nonmatch sub_8006E94

This commit is contained in:
Kermalis
2023-08-05 22:34:59 -04:00
parent d6baf52f33
commit d3f7533f1c
2 changed files with 783 additions and 600 deletions

View File

@@ -5,600 +5,6 @@
.text
thumb_func_start sub_8006E94
sub_8006E94:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x30
str r0, [sp]
adds r4, r1, 0
adds r7, r2, 0
str r3, [sp, 0x4]
movs r1, 0
ldrsh r0, [r0, r1]
mov r10, r0
movs r2, 0x1
negs r2, r2
add r2, r10
movs r3, 0
str r3, [sp, 0x8]
cmp r4, 0x1C
ble _08006EBE
b _080072FE
_08006EBE:
cmp r4, 0
bge _08006EC4
b _080072FE
_08006EC4:
lsls r1, r2, 1
lsls r4, 6
ldr r6, [sp, 0x50]
adds r5, r4, r6
adds r1, r5
ldr r0, _08006F9C
adds r3, r0, 0
strh r3, [r1]
movs r2, 0x80
lsls r2, 4
adds r0, r1, r2
ldr r6, _08006FA0
adds r2, r6, 0
strh r2, [r0]
adds r0, r1, 0
adds r0, 0x40
strh r3, [r0]
movs r0, 0x84
lsls r0, 4
adds r0, r1, r0
strh r2, [r0]
adds r2, r1, 0
adds r2, 0x80
ldr r3, _08006FA4
adds r0, r3, 0
strh r0, [r2]
movs r6, 0x88
lsls r6, 4
adds r1, r6
ldr r2, _08006FA8
adds r0, r2, 0
strh r0, [r1]
mov r12, r10
movs r3, 0
str r4, [sp, 0x18]
ldr r4, [sp, 0x4]
ldrb r4, [r4]
cmp r3, r4
blt _08006F14
b _08007238
_08006F14:
adds r2, r5, 0
mov r5, r12
lsls r1, r5, 1
ldr r0, [sp, 0x50]
adds r0, 0x80
ldr r6, [sp, 0x18]
adds r0, r6, r0
adds r0, r1
mov r9, r0
ldr r0, [sp, 0x50]
adds r0, 0x40
adds r0, r6, r0
adds r0, r1
mov r8, r0
ldr r4, [sp, 0x50]
movs r5, 0x80
lsls r5, 4
adds r0, r4, r5
adds r0, r6, r0
adds r0, r1, r0
str r0, [sp, 0x20]
movs r6, 0x84
lsls r6, 4
adds r0, r4, r6
ldr r4, [sp, 0x18]
adds r0, r4, r0
adds r0, r1
mov r10, r0
adds r4, r1, r2
ldr r5, [sp, 0x18]
str r5, [sp, 0x10]
str r2, [sp, 0x1C]
str r1, [sp, 0x24]
_08006F56:
ldr r6, [sp, 0x4]
ldrb r6, [r6, 0x1]
cmp r3, r6
bne _08006F60
b _080070C8
_08006F60:
ldr r0, [sp, 0x8]
cmp r0, 0
bne _08007008
ldr r1, [sp, 0x4]
ldrb r0, [r1, 0x3]
asrs r0, r3
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08006FB8
movs r1, 0x1F
cmp r3, 0
bne _08006F7C
movs r1, 0x1B
_08006F7C:
movs r2, 0x9E
lsls r2, 2
adds r0, r1, r2
ldr r5, _08006FAC
adds r1, r5, 0
orrs r0, r1
strh r0, [r4]
ldr r6, _08006FB0
adds r0, r6, 0
mov r1, r8
strh r0, [r1]
ldr r5, _08006FB4
mov r2, r9
strh r5, [r2]
b _08006FDC
.align 2, 0
_08006F9C: .4byte 0x0000f278
_08006FA0: .4byte 0x0000f27a
_08006FA4: .4byte 0x0000f2d8
_08006FA8: .4byte 0x0000f2db
_08006FAC: .4byte 0xfffff400
_08006FB0: .4byte 0x0000f2b6
_08006FB4: .4byte 0x0000f2d9
_08006FB8:
movs r1, 0x6B
cmp r3, 0
bne _08006FC0
movs r1, 0x67
_08006FC0:
movs r6, 0x9E
lsls r6, 2
adds r0, r1, r6
ldr r2, _08006FF4
adds r1, r2, 0
orrs r0, r1
strh r0, [r4]
ldr r5, _08006FF8
adds r0, r5, 0
mov r6, r8
strh r0, [r6]
ldr r1, _08006FFC
mov r0, r9
strh r1, [r0]
_08006FDC:
ldr r2, _08007000
adds r0, r2, 0
ldr r5, [sp, 0x20]
strh r0, [r5]
ldr r0, _08007004
mov r6, r10
strh r0, [r6]
movs r1, 0x88
lsls r1, 4
adds r0, r4, r1
adds r2, 0x61
b _0800708E
.align 2, 0
_08006FF4: .4byte 0xfffff400
_08006FF8: .4byte 0x0000f2ef
_08006FFC: .4byte 0x0000f2d9
_08007000: .4byte 0x0000f27a
_08007004: .4byte 0x0000f2db
_08007008:
ldr r5, [sp, 0x4]
ldrb r0, [r5, 0x3]
asrs r0, r3
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0800704C
ldrb r0, [r5]
subs r0, 0x1
movs r1, 0x1F
cmp r3, r0
bne _08007022
movs r1, 0x1B
_08007022:
movs r6, 0x9E
lsls r6, 2
adds r0, r1, r6
ldr r2, _08007040
adds r1, r2, 0
orrs r0, r1
strh r0, [r4]
ldr r5, _08007044
adds r0, r5, 0
mov r6, r8
strh r0, [r6]
ldr r1, _08007048
mov r0, r9
strh r1, [r0]
b _08007076
.align 2, 0
_08007040: .4byte 0xfffff000
_08007044: .4byte 0x0000f6b6
_08007048: .4byte 0x0000f2d9
_0800704C:
ldr r2, [sp, 0x4]
ldrb r0, [r2]
subs r0, 0x1
movs r1, 0x6B
cmp r3, r0
bne _0800705A
movs r1, 0x67
_0800705A:
movs r5, 0x9E
lsls r5, 2
adds r0, r1, r5
ldr r6, _080070B0
adds r1, r6, 0
orrs r0, r1
strh r0, [r4]
ldr r1, _080070B4
adds r0, r1, 0
mov r2, r8
strh r0, [r2]
ldr r6, _080070B8
mov r5, r9
strh r6, [r5]
_08007076:
ldr r1, _080070BC
adds r0, r1, 0
ldr r2, [sp, 0x20]
strh r0, [r2]
ldr r5, _080070C0
adds r0, r5, 0
mov r6, r10
strh r0, [r6]
movs r1, 0x88
lsls r1, 4
adds r0, r4, r1
ldr r2, _080070C4
_0800708E:
strh r2, [r0]
movs r5, 0x2
add r9, r5
add r8, r5
ldr r6, [sp, 0x20]
adds r6, 0x2
str r6, [sp, 0x20]
add r10, r5
adds r4, 0x2
ldr r0, [sp, 0x24]
adds r0, 0x2
str r0, [sp, 0x24]
movs r1, 0x1
add r12, r1
adds r3, 0x1
str r3, [sp, 0x14]
b _08007226
.align 2, 0
_080070B0: .4byte 0xfffff000
_080070B4: .4byte 0x0000f6ef
_080070B8: .4byte 0x0000f2d9
_080070BC: .4byte 0x0000f27a
_080070C0: .4byte 0x0000f6db
_080070C4: .4byte 0x0000f2db
_080070C8:
movs r2, 0x1
str r2, [sp, 0x8]
ldr r5, _08007128
adds r0, r5, 0
strh r0, [r4]
ldr r6, _0800712C
adds r0, r6, 0
ldr r1, [sp, 0x20]
strh r0, [r1]
ldr r2, _08007130
adds r0, r2, 0
mov r5, r8
strh r0, [r5]
ldr r0, _08007134
mov r6, r10
strh r0, [r6]
ldr r1, _08007138
adds r0, r1, 0
mov r2, r9
strh r0, [r2]
movs r5, 0x88
lsls r5, 4
adds r0, r4, r5
ldr r6, _08007134
strh r6, [r0]
movs r0, 0x2
add r9, r0
add r8, r0
ldr r1, [sp, 0x20]
adds r1, 0x2
str r1, [sp, 0x20]
add r10, r0
adds r4, 0x2
ldr r2, [sp, 0x24]
adds r2, 0x2
str r2, [sp, 0x24]
movs r5, 0x1
add r12, r5
cmp r7, 0
beq _0800713C
adds r7, 0x1
cmp r7, 0
beq _0800713C
ldr r6, [sp]
movs r1, 0x4
ldrsh r0, [r6, r1]
adds r2, r7, r0
b _0800713E
.align 2, 0
_08007128: .4byte 0x0000f2e0
_0800712C: .4byte 0x0000f2e2
_08007130: .4byte 0x0000f2da
_08007134: .4byte 0x0000f2db
_08007138: .4byte 0x0000f6e7
_0800713C:
movs r2, 0
_0800713E:
movs r5, 0
str r5, [sp, 0xC]
adds r3, 0x1
str r3, [sp, 0x14]
ldr r6, [sp, 0x4]
ldrb r6, [r6, 0x2]
cmp r5, r6
bge _080071E0
ldr r0, [sp, 0x50]
adds r0, 0x80
ldr r1, [sp, 0x10]
adds r0, r1, r0
ldr r3, [sp, 0x24]
adds r0, r3, r0
str r0, [sp, 0x2C]
ldr r0, [sp, 0x50]
adds r0, 0x40
adds r0, r1, r0
adds r5, r3, r0
ldr r6, [sp, 0x1C]
adds r3, r6
_08007168:
ldr r1, _08007310
adds r0, r1, 0
strh r0, [r3]
movs r6, 0x80
lsls r6, 4
adds r6, r3, r6
str r6, [sp, 0x28]
adds r1, 0x1
adds r0, r1, 0
strh r0, [r6]
adds r0, r7, 0
ldr r6, _08007314
orrs r0, r6
strh r0, [r5]
movs r1, 0x84
lsls r1, 4
adds r0, r3, r1
ldr r6, _08007318
strh r6, [r0]
adds r0, r2, 0
ldr r1, _08007314
orrs r0, r1
ldr r6, [sp, 0x2C]
strh r0, [r6]
movs r1, 0x88
lsls r1, 4
adds r0, r3, r1
ldr r6, _08007318
strh r6, [r0]
ldr r0, [sp, 0x2C]
adds r0, 0x2
str r0, [sp, 0x2C]
adds r5, 0x2
adds r3, 0x2
movs r1, 0x2
add r9, r1
add r8, r1
ldr r6, [sp, 0x20]
adds r6, 0x2
str r6, [sp, 0x20]
add r10, r1
adds r4, 0x2
ldr r0, [sp, 0x24]
adds r0, 0x2
str r0, [sp, 0x24]
movs r1, 0x1
add r12, r1
cmp r7, 0
beq _080071CC
adds r7, 0x1
_080071CC:
cmp r2, 0
beq _080071D2
adds r2, 0x1
_080071D2:
ldr r6, [sp, 0xC]
adds r6, 0x1
str r6, [sp, 0xC]
ldr r0, [sp, 0x4]
ldrb r0, [r0, 0x2]
cmp r6, r0
blt _08007168
_080071E0:
ldr r1, _0800731C
adds r0, r1, 0
strh r0, [r4]
ldr r2, _08007320
adds r0, r2, 0
ldr r3, [sp, 0x20]
strh r0, [r3]
ldr r5, _08007324
adds r0, r5, 0
mov r6, r8
strh r0, [r6]
ldr r1, _08007318
mov r0, r10
strh r1, [r0]
adds r2, 0x5
adds r0, r2, 0
mov r3, r9
strh r0, [r3]
movs r5, 0x88
lsls r5, 4
adds r0, r4, r5
strh r1, [r0]
movs r6, 0x2
add r9, r6
add r8, r6
ldr r0, [sp, 0x20]
adds r0, 0x2
str r0, [sp, 0x20]
add r10, r6
adds r4, 0x2
ldr r1, [sp, 0x24]
adds r1, 0x2
str r1, [sp, 0x24]
movs r2, 0x1
add r12, r2
_08007226:
cmp r7, 0
beq _0800722C
adds r7, 0x1
_0800722C:
ldr r3, [sp, 0x14]
ldr r5, [sp, 0x4]
ldrb r5, [r5]
cmp r3, r5
bge _08007238
b _08006F56
_08007238:
ldr r6, [sp]
movs r0, 0
ldrsh r1, [r6, r0]
movs r2, 0x4
ldrsh r0, [r6, r2]
adds r0, r1, r0
cmp r12, r0
bge _080072BC
ldr r3, _08007328
adds r4, r3, 0
mov r8, r0
mov r5, r12
lsls r1, r5, 1
ldr r0, [sp, 0x50]
adds r0, 0x80
ldr r6, [sp, 0x18]
adds r0, r6, r0
adds r5, r1, r0
ldr r0, [sp, 0x50]
adds r0, 0x40
adds r0, r6, r0
adds r3, r1, r0
ldr r0, [sp, 0x50]
adds r6, r0
adds r2, r1, r6
movs r1, 0x80
lsls r1, 4
mov r10, r1
movs r6, 0x84
lsls r6, 4
mov r9, r6
mov r0, r8
mov r1, r12
subs r0, r1
mov r12, r0
_0800727E:
strh r4, [r2]
mov r6, r10
adds r0, r2, r6
ldr r1, _0800732C
strh r1, [r0]
strh r4, [r3]
mov r6, r9
adds r0, r2, r6
strh r1, [r0]
adds r1, 0x5F
adds r0, r1, 0
strh r0, [r5]
movs r6, 0x88
lsls r6, 4
adds r1, r2, r6
ldr r6, _08007318
adds r0, r6, 0
strh r0, [r1]
adds r5, 0x2
adds r3, 0x2
adds r2, 0x2
movs r0, 0x1
negs r0, r0
add r12, r0
cmp r7, 0
beq _080072B4
adds r7, 0x1
_080072B4:
mov r1, r12
cmp r1, 0
bne _0800727E
mov r12, r8
_080072BC:
mov r2, r12
lsls r1, r2, 1
ldr r3, [sp, 0x18]
ldr r4, [sp, 0x50]
adds r0, r3, r4
adds r1, r0
ldr r5, _08007328
adds r3, r5, 0
strh r3, [r1]
movs r6, 0x80
lsls r6, 4
adds r0, r1, r6
ldr r4, _0800732C
adds r2, r4, 0
strh r2, [r0]
adds r0, r1, 0
adds r0, 0x40
strh r3, [r0]
movs r5, 0x84
lsls r5, 4
adds r0, r1, r5
strh r2, [r0]
adds r2, r1, 0
adds r2, 0x80
ldr r6, _08007330
adds r0, r6, 0
strh r0, [r2]
movs r0, 0x88
lsls r0, 4
adds r1, r0
ldr r2, _08007318
adds r0, r2, 0
strh r0, [r1]
_080072FE:
add sp, 0x30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08007310: .4byte 0x0000f2e1
_08007314: .4byte 0xfffff000
_08007318: .4byte 0x0000f2db
_0800731C: .4byte 0x0000f6e0
_08007320: .4byte 0x0000f2e2
_08007324: .4byte 0x0000f6da
_08007328: .4byte 0x0000f278
_0800732C: .4byte 0x0000f27a
_08007330: .4byte 0x0000f6d8
thumb_func_end sub_8006E94
thumb_func_start sub_8007334
sub_8007334:
push {r4-r7,lr}

View File

@@ -138,7 +138,6 @@ void sub_800677C(struct UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3)
if (a1 > 28)
return;
// Cannot combine these ifs for matching
if (a1 < 0)
return;
@@ -207,7 +206,6 @@ void sub_80069CC(struct UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4)
{
if (a2 > 28)
return;
// Cannot combine these ifs for matching
if (a2 < 0)
return;
@@ -249,7 +247,6 @@ void sub_8006AC4(struct UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4)
{
if (a2 > 28)
return;
// Cannot combine these ifs for matching
if (a2 < 0)
return;
@@ -277,7 +274,6 @@ void sub_8006B70(struct UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4)
{
if (a2 > 28)
return;
// Cannot combine these ifs for matching
if (a2 < 0)
return;
@@ -324,7 +320,6 @@ void sub_8006C44(struct UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3)
if (a1 > 28)
return;
// Cannot combine these ifs for matching
if (a1 < 0)
return;
@@ -387,4 +382,786 @@ void sub_8006C44(struct UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3)
(a2 + a1 * 0x20)[iVar5] = 0xFE93;
break;
}
}
}
#ifdef NONMATCHING
// Not even close but I don't feel like continuing atm https://decomp.me/scratch/F58jg
void sub_8006E94(struct UnkTextStruct1 *a0, s32 a1, u32 a2, const u8 *a3, u16 *a4)
{
s32 bVar1;
s32 iVar2;
s32 iVar3;
s32 sVar4;
u16 *puVar5;
u16 *puVar6;
u16 *puVar7;
s32 iVar8;
u16 *puVar9;
u16 *puVar10;
u16 *puVar11;
s32 local_44;
u32 local_3c;
u16 *local_30;
s32 local_2c;
u16 *local_24;
iVar2 = a0->unk0;
bVar1 = -1;
if (a1 > 28)
return;
if (a1 < 0)
return;
(a4 + a1 * 0x20)[iVar2 - 1] = 0xF278;
(a4 + a1 * 0x20)[iVar2 - 1 + 0x400] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 - 1 + 0x20] = 0xF278;
(a4 + a1 * 0x20)[iVar2 - 1 + 0x420] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 - 1 + 0x40] = 0xF2D8;
(a4 + a1 * 0x20)[iVar2 - 1 + 0x440] = 0xF2DB;
local_2c = iVar2 * 2;
puVar5 = a4 + a1 * 0x20 + iVar2 + 0x40;
puVar7 = a4 + a1 * 0x20 + iVar2 + 0x20;
local_30 = a4 + a1 * 0x20 + iVar2 + 0x400;
puVar11 = a4 + a1 * 0x20 + iVar2 + 0x420;
puVar9 = a4 + a1 * 0x20 + iVar2;
iVar8 = a1 * 0x40;
for (local_3c = 0; local_3c < a3[0]; local_3c++) {
if (local_3c == a3[1]) {
bVar1 = TRUE;
*puVar9 = 0xF2E0;
*local_30 = 0xF2E2;
*puVar7 = 0xF2DA;
*puVar11 = 0xF2DB;
*puVar5 = 0xF6E7;
puVar9[0x440] = 0xF2DB;
puVar5++;
puVar7++;
local_30++;
puVar11++;
puVar9++;
local_2c += 2;
iVar2++;
if (a2 == 0 || ++a2 == 0)
iVar3 = 0;
else
iVar3 = a2 + a0->unk4;
local_24 = a4 + local_2c + iVar8 + 0x80;
puVar10 = a4 + local_2c + iVar8 + 0x40;
puVar6 = a4 + local_2c + iVar8;
for (local_44 = 0; local_44 < a3[2]; local_44++) {
*puVar6 = 0xF2E1;
puVar6[0x400] = 0xF2E2;
*puVar10 = a2 | 0xF000;
puVar6[0x420] = 0xF2DB;
*local_24 = iVar3 | 0xF000;
puVar6[0x440] = 0xF2DB;
local_24++;
puVar10++;
puVar6++;
puVar5++;
puVar7++;
local_30++;
puVar11++;
puVar9++;
local_2c += 2;
iVar2++;
if (a2 != 0)
a2++;
if (iVar3 != 0)
iVar3++;
}
*puVar9 = 0xF6E0;
*local_30 = 0xF2E2;
*puVar7 = 0xF6DA;
*puVar11 = 0xF2DB;
*puVar5 = 0xF2E7;
puVar9[0x440] = 0xF2DB;
}
else {
if (bVar1) {
if ((a3[3] >> (local_3c & 0xFF) & 1) == 0) {
sVar4 = 107;
if (local_3c == a3[0] - 1)
sVar4 = 103;
*puVar9 = (sVar4 + 0x278) | 0xF000;
*puVar7 = 0xF6EF;
*puVar5 = 0xF2D9;
}
else {
sVar4 = 31;
if (local_3c == a3[0] - 1)
sVar4 = 27;
*puVar9 = (sVar4 + 0x278) | 0xF000;
*puVar7 = 0xF6B6;
*puVar5 = 0xF2D9;
}
*local_30 = 0xF27A;
*puVar11 = 0xF6DB;
}
else {
if ((a3[3] >> (local_3c & 0xFF) & 1) == 0) {
sVar4 = 107;
if (local_3c == 0)
sVar4 = 103;
*puVar9 = (sVar4 + 0x278) | 0xF400;
*puVar7 = 0xF2EF;
*puVar5 = 0xF2D9;
}
else {
sVar4 = 31;
if (local_3c == 0)
sVar4 = 27;
*puVar9 = (sVar4 + 0x278) | 0xF400;
*puVar7 = 0xF2B6;
*puVar5 = 0xF2D9;
}
*local_30 = 0xF27A;
*puVar11 = 0xF2DB;
}
puVar9[0x440] = 0xF2DB;
}
local_2c += 2;
local_30++;
iVar2++;
puVar11++;
puVar5++;
puVar7++;
puVar9++;
if (a2 != 0)
a2++;
}
iVar8 = a0->unk0 + a0->unk4;
if (iVar2 < iVar8) {
for (iVar3 = iVar8 - iVar2; iVar3 != 0; iVar3--) {
(a4 + a1 * 0x20)[iVar2 + iVar3] = 0xF278;
(a4 + a1 * 0x20)[iVar2 + 0x400 + iVar3] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 + 0x20 + iVar3] = 0xF278;
(a4 + a1 * 0x20)[iVar2 + 0x420 + iVar3] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 + 0x40 + iVar3] = 0xF2D9;
(a4 + a1 * 0x20)[iVar2 + 0x440 + iVar3] = 0xF2DB;
if (a2 != 0)
a2++;
iVar2 = iVar8;
}
}
(a4 + a1 * 0x20)[iVar2] = 0xF278;
(a4 + a1 * 0x20)[iVar2 + 0x400] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 + 0x20] = 0xF278;
(a4 + a1 * 0x20)[iVar2 + 0x420] = 0xF27A;
(a4 + a1 * 0x20)[iVar2 + 0x40] = 0xF6D8;
(a4 + a1 * 0x20)[iVar2 + 0x440] = 0xF2DB;
}
#else
NAKED
void sub_8006E94(struct UnkTextStruct1 *a0, s32 a1, u32 a2, const u8 *a3, u16 *a4)
{
asm_unified(
"\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
"\tmov r6, r9\n"
"\tmov r5, r8\n"
"\tpush {r5-r7}\n"
"\tsub sp, 0x30\n"
"\tstr r0, [sp]\n"
"\tadds r4, r1, 0\n"
"\tadds r7, r2, 0\n"
"\tstr r3, [sp, 0x4]\n"
"\tmovs r1, 0\n"
"\tldrsh r0, [r0, r1]\n"
"\tmov r10, r0\n"
"\tmovs r2, 0x1\n"
"\tnegs r2, r2\n"
"\tadd r2, r10\n"
"\tmovs r3, 0\n"
"\tstr r3, [sp, 0x8]\n"
"\tcmp r4, 0x1C\n"
"\tble _08006EBE\n"
"\tb _080072FE\n"
"_08006EBE:\n"
"\tcmp r4, 0\n"
"\tbge _08006EC4\n"
"\tb _080072FE\n"
"_08006EC4:\n"
"\tlsls r1, r2, 1\n"
"\tlsls r4, 6\n"
"\tldr r6, [sp, 0x50]\n"
"\tadds r5, r4, r6\n"
"\tadds r1, r5\n"
"\tldr r0, _08006F9C\n"
"\tadds r3, r0, 0\n"
"\tstrh r3, [r1]\n"
"\tmovs r2, 0x80\n"
"\tlsls r2, 4\n"
"\tadds r0, r1, r2\n"
"\tldr r6, _08006FA0\n"
"\tadds r2, r6, 0\n"
"\tstrh r2, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x40\n"
"\tstrh r3, [r0]\n"
"\tmovs r0, 0x84\n"
"\tlsls r0, 4\n"
"\tadds r0, r1, r0\n"
"\tstrh r2, [r0]\n"
"\tadds r2, r1, 0\n"
"\tadds r2, 0x80\n"
"\tldr r3, _08006FA4\n"
"\tadds r0, r3, 0\n"
"\tstrh r0, [r2]\n"
"\tmovs r6, 0x88\n"
"\tlsls r6, 4\n"
"\tadds r1, r6\n"
"\tldr r2, _08006FA8\n"
"\tadds r0, r2, 0\n"
"\tstrh r0, [r1]\n"
"\tmov r12, r10\n"
"\tmovs r3, 0\n"
"\tstr r4, [sp, 0x18]\n"
"\tldr r4, [sp, 0x4]\n"
"\tldrb r4, [r4]\n"
"\tcmp r3, r4\n"
"\tblt _08006F14\n"
"\tb _08007238\n"
"_08006F14:\n"
"\tadds r2, r5, 0\n"
"\tmov r5, r12\n"
"\tlsls r1, r5, 1\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x80\n"
"\tldr r6, [sp, 0x18]\n"
"\tadds r0, r6, r0\n"
"\tadds r0, r1\n"
"\tmov r9, r0\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x40\n"
"\tadds r0, r6, r0\n"
"\tadds r0, r1\n"
"\tmov r8, r0\n"
"\tldr r4, [sp, 0x50]\n"
"\tmovs r5, 0x80\n"
"\tlsls r5, 4\n"
"\tadds r0, r4, r5\n"
"\tadds r0, r6, r0\n"
"\tadds r0, r1, r0\n"
"\tstr r0, [sp, 0x20]\n"
"\tmovs r6, 0x84\n"
"\tlsls r6, 4\n"
"\tadds r0, r4, r6\n"
"\tldr r4, [sp, 0x18]\n"
"\tadds r0, r4, r0\n"
"\tadds r0, r1\n"
"\tmov r10, r0\n"
"\tadds r4, r1, r2\n"
"\tldr r5, [sp, 0x18]\n"
"\tstr r5, [sp, 0x10]\n"
"\tstr r2, [sp, 0x1C]\n"
"\tstr r1, [sp, 0x24]\n"
"_08006F56:\n"
"\tldr r6, [sp, 0x4]\n"
"\tldrb r6, [r6, 0x1]\n"
"\tcmp r3, r6\n"
"\tbne _08006F60\n"
"\tb _080070C8\n"
"_08006F60:\n"
"\tldr r0, [sp, 0x8]\n"
"\tcmp r0, 0\n"
"\tbne _08007008\n"
"\tldr r1, [sp, 0x4]\n"
"\tldrb r0, [r1, 0x3]\n"
"\tasrs r0, r3\n"
"\tmovs r1, 0x1\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _08006FB8\n"
"\tmovs r1, 0x1F\n"
"\tcmp r3, 0\n"
"\tbne _08006F7C\n"
"\tmovs r1, 0x1B\n"
"_08006F7C:\n"
"\tmovs r2, 0x9E\n"
"\tlsls r2, 2\n"
"\tadds r0, r1, r2\n"
"\tldr r5, _08006FAC\n"
"\tadds r1, r5, 0\n"
"\torrs r0, r1\n"
"\tstrh r0, [r4]\n"
"\tldr r6, _08006FB0\n"
"\tadds r0, r6, 0\n"
"\tmov r1, r8\n"
"\tstrh r0, [r1]\n"
"\tldr r5, _08006FB4\n"
"\tmov r2, r9\n"
"\tstrh r5, [r2]\n"
"\tb _08006FDC\n"
"\t.align 2, 0\n"
"_08006F9C: .4byte 0x0000f278\n"
"_08006FA0: .4byte 0x0000f27a\n"
"_08006FA4: .4byte 0x0000f2d8\n"
"_08006FA8: .4byte 0x0000f2db\n"
"_08006FAC: .4byte 0xfffff400\n"
"_08006FB0: .4byte 0x0000f2b6\n"
"_08006FB4: .4byte 0x0000f2d9\n"
"_08006FB8:\n"
"\tmovs r1, 0x6B\n"
"\tcmp r3, 0\n"
"\tbne _08006FC0\n"
"\tmovs r1, 0x67\n"
"_08006FC0:\n"
"\tmovs r6, 0x9E\n"
"\tlsls r6, 2\n"
"\tadds r0, r1, r6\n"
"\tldr r2, _08006FF4\n"
"\tadds r1, r2, 0\n"
"\torrs r0, r1\n"
"\tstrh r0, [r4]\n"
"\tldr r5, _08006FF8\n"
"\tadds r0, r5, 0\n"
"\tmov r6, r8\n"
"\tstrh r0, [r6]\n"
"\tldr r1, _08006FFC\n"
"\tmov r0, r9\n"
"\tstrh r1, [r0]\n"
"_08006FDC:\n"
"\tldr r2, _08007000\n"
"\tadds r0, r2, 0\n"
"\tldr r5, [sp, 0x20]\n"
"\tstrh r0, [r5]\n"
"\tldr r0, _08007004\n"
"\tmov r6, r10\n"
"\tstrh r0, [r6]\n"
"\tmovs r1, 0x88\n"
"\tlsls r1, 4\n"
"\tadds r0, r4, r1\n"
"\tadds r2, 0x61\n"
"\tb _0800708E\n"
"\t.align 2, 0\n"
"_08006FF4: .4byte 0xfffff400\n"
"_08006FF8: .4byte 0x0000f2ef\n"
"_08006FFC: .4byte 0x0000f2d9\n"
"_08007000: .4byte 0x0000f27a\n"
"_08007004: .4byte 0x0000f2db\n"
"_08007008:\n"
"\tldr r5, [sp, 0x4]\n"
"\tldrb r0, [r5, 0x3]\n"
"\tasrs r0, r3\n"
"\tmovs r1, 0x1\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _0800704C\n"
"\tldrb r0, [r5]\n"
"\tsubs r0, 0x1\n"
"\tmovs r1, 0x1F\n"
"\tcmp r3, r0\n"
"\tbne _08007022\n"
"\tmovs r1, 0x1B\n"
"_08007022:\n"
"\tmovs r6, 0x9E\n"
"\tlsls r6, 2\n"
"\tadds r0, r1, r6\n"
"\tldr r2, _08007040\n"
"\tadds r1, r2, 0\n"
"\torrs r0, r1\n"
"\tstrh r0, [r4]\n"
"\tldr r5, _08007044\n"
"\tadds r0, r5, 0\n"
"\tmov r6, r8\n"
"\tstrh r0, [r6]\n"
"\tldr r1, _08007048\n"
"\tmov r0, r9\n"
"\tstrh r1, [r0]\n"
"\tb _08007076\n"
"\t.align 2, 0\n"
"_08007040: .4byte 0xfffff000\n"
"_08007044: .4byte 0x0000f6b6\n"
"_08007048: .4byte 0x0000f2d9\n"
"_0800704C:\n"
"\tldr r2, [sp, 0x4]\n"
"\tldrb r0, [r2]\n"
"\tsubs r0, 0x1\n"
"\tmovs r1, 0x6B\n"
"\tcmp r3, r0\n"
"\tbne _0800705A\n"
"\tmovs r1, 0x67\n"
"_0800705A:\n"
"\tmovs r5, 0x9E\n"
"\tlsls r5, 2\n"
"\tadds r0, r1, r5\n"
"\tldr r6, _080070B0\n"
"\tadds r1, r6, 0\n"
"\torrs r0, r1\n"
"\tstrh r0, [r4]\n"
"\tldr r1, _080070B4\n"
"\tadds r0, r1, 0\n"
"\tmov r2, r8\n"
"\tstrh r0, [r2]\n"
"\tldr r6, _080070B8\n"
"\tmov r5, r9\n"
"\tstrh r6, [r5]\n"
"_08007076:\n"
"\tldr r1, _080070BC\n"
"\tadds r0, r1, 0\n"
"\tldr r2, [sp, 0x20]\n"
"\tstrh r0, [r2]\n"
"\tldr r5, _080070C0\n"
"\tadds r0, r5, 0\n"
"\tmov r6, r10\n"
"\tstrh r0, [r6]\n"
"\tmovs r1, 0x88\n"
"\tlsls r1, 4\n"
"\tadds r0, r4, r1\n"
"\tldr r2, _080070C4\n"
"_0800708E:\n"
"\tstrh r2, [r0]\n"
"\tmovs r5, 0x2\n"
"\tadd r9, r5\n"
"\tadd r8, r5\n"
"\tldr r6, [sp, 0x20]\n"
"\tadds r6, 0x2\n"
"\tstr r6, [sp, 0x20]\n"
"\tadd r10, r5\n"
"\tadds r4, 0x2\n"
"\tldr r0, [sp, 0x24]\n"
"\tadds r0, 0x2\n"
"\tstr r0, [sp, 0x24]\n"
"\tmovs r1, 0x1\n"
"\tadd r12, r1\n"
"\tadds r3, 0x1\n"
"\tstr r3, [sp, 0x14]\n"
"\tb _08007226\n"
"\t.align 2, 0\n"
"_080070B0: .4byte 0xfffff000\n"
"_080070B4: .4byte 0x0000f6ef\n"
"_080070B8: .4byte 0x0000f2d9\n"
"_080070BC: .4byte 0x0000f27a\n"
"_080070C0: .4byte 0x0000f6db\n"
"_080070C4: .4byte 0x0000f2db\n"
"_080070C8:\n"
"\tmovs r2, 0x1\n"
"\tstr r2, [sp, 0x8]\n"
"\tldr r5, _08007128\n"
"\tadds r0, r5, 0\n"
"\tstrh r0, [r4]\n"
"\tldr r6, _0800712C\n"
"\tadds r0, r6, 0\n"
"\tldr r1, [sp, 0x20]\n"
"\tstrh r0, [r1]\n"
"\tldr r2, _08007130\n"
"\tadds r0, r2, 0\n"
"\tmov r5, r8\n"
"\tstrh r0, [r5]\n"
"\tldr r0, _08007134\n"
"\tmov r6, r10\n"
"\tstrh r0, [r6]\n"
"\tldr r1, _08007138\n"
"\tadds r0, r1, 0\n"
"\tmov r2, r9\n"
"\tstrh r0, [r2]\n"
"\tmovs r5, 0x88\n"
"\tlsls r5, 4\n"
"\tadds r0, r4, r5\n"
"\tldr r6, _08007134\n"
"\tstrh r6, [r0]\n"
"\tmovs r0, 0x2\n"
"\tadd r9, r0\n"
"\tadd r8, r0\n"
"\tldr r1, [sp, 0x20]\n"
"\tadds r1, 0x2\n"
"\tstr r1, [sp, 0x20]\n"
"\tadd r10, r0\n"
"\tadds r4, 0x2\n"
"\tldr r2, [sp, 0x24]\n"
"\tadds r2, 0x2\n"
"\tstr r2, [sp, 0x24]\n"
"\tmovs r5, 0x1\n"
"\tadd r12, r5\n"
"\tcmp r7, 0\n"
"\tbeq _0800713C\n"
"\tadds r7, 0x1\n"
"\tcmp r7, 0\n"
"\tbeq _0800713C\n"
"\tldr r6, [sp]\n"
"\tmovs r1, 0x4\n"
"\tldrsh r0, [r6, r1]\n"
"\tadds r2, r7, r0\n"
"\tb _0800713E\n"
"\t.align 2, 0\n"
"_08007128: .4byte 0x0000f2e0\n"
"_0800712C: .4byte 0x0000f2e2\n"
"_08007130: .4byte 0x0000f2da\n"
"_08007134: .4byte 0x0000f2db\n"
"_08007138: .4byte 0x0000f6e7\n"
"_0800713C:\n"
"\tmovs r2, 0\n"
"_0800713E:\n"
"\tmovs r5, 0\n"
"\tstr r5, [sp, 0xC]\n"
"\tadds r3, 0x1\n"
"\tstr r3, [sp, 0x14]\n"
"\tldr r6, [sp, 0x4]\n"
"\tldrb r6, [r6, 0x2]\n"
"\tcmp r5, r6\n"
"\tbge _080071E0\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x80\n"
"\tldr r1, [sp, 0x10]\n"
"\tadds r0, r1, r0\n"
"\tldr r3, [sp, 0x24]\n"
"\tadds r0, r3, r0\n"
"\tstr r0, [sp, 0x2C]\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x40\n"
"\tadds r0, r1, r0\n"
"\tadds r5, r3, r0\n"
"\tldr r6, [sp, 0x1C]\n"
"\tadds r3, r6\n"
"_08007168:\n"
"\tldr r1, _08007310\n"
"\tadds r0, r1, 0\n"
"\tstrh r0, [r3]\n"
"\tmovs r6, 0x80\n"
"\tlsls r6, 4\n"
"\tadds r6, r3, r6\n"
"\tstr r6, [sp, 0x28]\n"
"\tadds r1, 0x1\n"
"\tadds r0, r1, 0\n"
"\tstrh r0, [r6]\n"
"\tadds r0, r7, 0\n"
"\tldr r6, _08007314\n"
"\torrs r0, r6\n"
"\tstrh r0, [r5]\n"
"\tmovs r1, 0x84\n"
"\tlsls r1, 4\n"
"\tadds r0, r3, r1\n"
"\tldr r6, _08007318\n"
"\tstrh r6, [r0]\n"
"\tadds r0, r2, 0\n"
"\tldr r1, _08007314\n"
"\torrs r0, r1\n"
"\tldr r6, [sp, 0x2C]\n"
"\tstrh r0, [r6]\n"
"\tmovs r1, 0x88\n"
"\tlsls r1, 4\n"
"\tadds r0, r3, r1\n"
"\tldr r6, _08007318\n"
"\tstrh r6, [r0]\n"
"\tldr r0, [sp, 0x2C]\n"
"\tadds r0, 0x2\n"
"\tstr r0, [sp, 0x2C]\n"
"\tadds r5, 0x2\n"
"\tadds r3, 0x2\n"
"\tmovs r1, 0x2\n"
"\tadd r9, r1\n"
"\tadd r8, r1\n"
"\tldr r6, [sp, 0x20]\n"
"\tadds r6, 0x2\n"
"\tstr r6, [sp, 0x20]\n"
"\tadd r10, r1\n"
"\tadds r4, 0x2\n"
"\tldr r0, [sp, 0x24]\n"
"\tadds r0, 0x2\n"
"\tstr r0, [sp, 0x24]\n"
"\tmovs r1, 0x1\n"
"\tadd r12, r1\n"
"\tcmp r7, 0\n"
"\tbeq _080071CC\n"
"\tadds r7, 0x1\n"
"_080071CC:\n"
"\tcmp r2, 0\n"
"\tbeq _080071D2\n"
"\tadds r2, 0x1\n"
"_080071D2:\n"
"\tldr r6, [sp, 0xC]\n"
"\tadds r6, 0x1\n"
"\tstr r6, [sp, 0xC]\n"
"\tldr r0, [sp, 0x4]\n"
"\tldrb r0, [r0, 0x2]\n"
"\tcmp r6, r0\n"
"\tblt _08007168\n"
"_080071E0:\n"
"\tldr r1, _0800731C\n"
"\tadds r0, r1, 0\n"
"\tstrh r0, [r4]\n"
"\tldr r2, _08007320\n"
"\tadds r0, r2, 0\n"
"\tldr r3, [sp, 0x20]\n"
"\tstrh r0, [r3]\n"
"\tldr r5, _08007324\n"
"\tadds r0, r5, 0\n"
"\tmov r6, r8\n"
"\tstrh r0, [r6]\n"
"\tldr r1, _08007318\n"
"\tmov r0, r10\n"
"\tstrh r1, [r0]\n"
"\tadds r2, 0x5\n"
"\tadds r0, r2, 0\n"
"\tmov r3, r9\n"
"\tstrh r0, [r3]\n"
"\tmovs r5, 0x88\n"
"\tlsls r5, 4\n"
"\tadds r0, r4, r5\n"
"\tstrh r1, [r0]\n"
"\tmovs r6, 0x2\n"
"\tadd r9, r6\n"
"\tadd r8, r6\n"
"\tldr r0, [sp, 0x20]\n"
"\tadds r0, 0x2\n"
"\tstr r0, [sp, 0x20]\n"
"\tadd r10, r6\n"
"\tadds r4, 0x2\n"
"\tldr r1, [sp, 0x24]\n"
"\tadds r1, 0x2\n"
"\tstr r1, [sp, 0x24]\n"
"\tmovs r2, 0x1\n"
"\tadd r12, r2\n"
"_08007226:\n"
"\tcmp r7, 0\n"
"\tbeq _0800722C\n"
"\tadds r7, 0x1\n"
"_0800722C:\n"
"\tldr r3, [sp, 0x14]\n"
"\tldr r5, [sp, 0x4]\n"
"\tldrb r5, [r5]\n"
"\tcmp r3, r5\n"
"\tbge _08007238\n"
"\tb _08006F56\n"
"_08007238:\n"
"\tldr r6, [sp]\n"
"\tmovs r0, 0\n"
"\tldrsh r1, [r6, r0]\n"
"\tmovs r2, 0x4\n"
"\tldrsh r0, [r6, r2]\n"
"\tadds r0, r1, r0\n"
"\tcmp r12, r0\n"
"\tbge _080072BC\n"
"\tldr r3, _08007328\n"
"\tadds r4, r3, 0\n"
"\tmov r8, r0\n"
"\tmov r5, r12\n"
"\tlsls r1, r5, 1\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x80\n"
"\tldr r6, [sp, 0x18]\n"
"\tadds r0, r6, r0\n"
"\tadds r5, r1, r0\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r0, 0x40\n"
"\tadds r0, r6, r0\n"
"\tadds r3, r1, r0\n"
"\tldr r0, [sp, 0x50]\n"
"\tadds r6, r0\n"
"\tadds r2, r1, r6\n"
"\tmovs r1, 0x80\n"
"\tlsls r1, 4\n"
"\tmov r10, r1\n"
"\tmovs r6, 0x84\n"
"\tlsls r6, 4\n"
"\tmov r9, r6\n"
"\tmov r0, r8\n"
"\tmov r1, r12\n"
"\tsubs r0, r1\n"
"\tmov r12, r0\n"
"_0800727E:\n"
"\tstrh r4, [r2]\n"
"\tmov r6, r10\n"
"\tadds r0, r2, r6\n"
"\tldr r1, _0800732C\n"
"\tstrh r1, [r0]\n"
"\tstrh r4, [r3]\n"
"\tmov r6, r9\n"
"\tadds r0, r2, r6\n"
"\tstrh r1, [r0]\n"
"\tadds r1, 0x5F\n"
"\tadds r0, r1, 0\n"
"\tstrh r0, [r5]\n"
"\tmovs r6, 0x88\n"
"\tlsls r6, 4\n"
"\tadds r1, r2, r6\n"
"\tldr r6, _08007318\n"
"\tadds r0, r6, 0\n"
"\tstrh r0, [r1]\n"
"\tadds r5, 0x2\n"
"\tadds r3, 0x2\n"
"\tadds r2, 0x2\n"
"\tmovs r0, 0x1\n"
"\tnegs r0, r0\n"
"\tadd r12, r0\n"
"\tcmp r7, 0\n"
"\tbeq _080072B4\n"
"\tadds r7, 0x1\n"
"_080072B4:\n"
"\tmov r1, r12\n"
"\tcmp r1, 0\n"
"\tbne _0800727E\n"
"\tmov r12, r8\n"
"_080072BC:\n"
"\tmov r2, r12\n"
"\tlsls r1, r2, 1\n"
"\tldr r3, [sp, 0x18]\n"
"\tldr r4, [sp, 0x50]\n"
"\tadds r0, r3, r4\n"
"\tadds r1, r0\n"
"\tldr r5, _08007328\n"
"\tadds r3, r5, 0\n"
"\tstrh r3, [r1]\n"
"\tmovs r6, 0x80\n"
"\tlsls r6, 4\n"
"\tadds r0, r1, r6\n"
"\tldr r4, _0800732C\n"
"\tadds r2, r4, 0\n"
"\tstrh r2, [r0]\n"
"\tadds r0, r1, 0\n"
"\tadds r0, 0x40\n"
"\tstrh r3, [r0]\n"
"\tmovs r5, 0x84\n"
"\tlsls r5, 4\n"
"\tadds r0, r1, r5\n"
"\tstrh r2, [r0]\n"
"\tadds r2, r1, 0\n"
"\tadds r2, 0x80\n"
"\tldr r6, _08007330\n"
"\tadds r0, r6, 0\n"
"\tstrh r0, [r2]\n"
"\tmovs r0, 0x88\n"
"\tlsls r0, 4\n"
"\tadds r1, r0\n"
"\tldr r2, _08007318\n"
"\tadds r0, r2, 0\n"
"\tstrh r0, [r1]\n"
"_080072FE:\n"
"\tadd sp, 0x30\n"
"\tpop {r3-r5}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tmov r10, r5\n"
"\tpop {r4-r7}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_08007310: .4byte 0x0000f2e1\n"
"_08007314: .4byte 0xfffff000\n"
"_08007318: .4byte 0x0000f2db\n"
"_0800731C: .4byte 0x0000f6e0\n"
"_08007320: .4byte 0x0000f2e2\n"
"_08007324: .4byte 0x0000f6da\n"
"_08007328: .4byte 0x0000f278\n"
"_0800732C: .4byte 0x0000f27a\n"
"_08007330: .4byte 0x0000f6d8");
}
#endif // NONMATCHING