diff options
author | camthesaxman <cameronghall@cox.net> | 2017-09-08 21:53:51 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-09-08 21:53:51 -0500 |
commit | 3ca2cec4f0cca98664feabae80aa5b0d3c691bf6 (patch) | |
tree | 8aa1d130561728e83fc4c9ee606af5cd4a9f6147 | |
parent | 0194be655696ca411368bce1a507b4c33cc9ca44 (diff) |
decompile more evolution_scene.c functions
-rw-r--r-- | src/evolution_scene.c | 4654 |
1 files changed, 2361 insertions, 2293 deletions
diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 5d34d0d41..eeeb04f56 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -31,6 +31,28 @@ struct EvoInfo u8 postEvoSpriteID; u8 evoTaskID; u8 field_3; + + u8 unk4[0x40]; + u8 unk44[0x40]; + u8 unk84[0x40]; + + u8 unkC4[0x40][0x20]; // 0x20148C4 + u8 unk8C4[0x40][0x20]; // 0x20150C4 + u8 unk10C4[0x40][0x20]; // 0x20158C4 + u8 unk18C4[0x40][0x20]; // 0x20160C4 + u8 unk20C4[0x40][0x20]; // 0x20168C4 + u8 unk28C4[0x40][0x20]; // 0x20170C4 + u8 unk30C4[0x40][0x20]; // 0x20178C4 + u8 unk38C4[0x40][0x20]; // 0x20180C4 + + u8 *unk40C4[0x40][0x20]; // 0x20188C4 + + u16 unk60C4[0x40][0x20]; // 0x201A8C4 + u16 unk70C4[0x40][0x20]; // 0x201B8C4 + u16 unk80C4[0x40][0x20]; // 0x201C8C4 + u16 unk90C4[0x40][0x20]; // 0x201D8C4 + + u8 unkA0C4; // 0x201E8C4 }; #define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800))) @@ -1201,151 +1223,446 @@ NOTE: functions. */ +/* +void unref_sub_8113B50(u8 *a, u8 *b) +{ + //u8 *sp0 = a; + //u8 *sp4 = b; +#define sp0 a +#define sp4 b + s32 sp8; + s32 spC = 0; + u32 sp10 = 0; + s32 sp14; + s32 r6; + u32 r8; + + for (sp8 = 0; sp8 < 64; sp8++) + { + sEvoInfo.unk84[sp8] = 0; + sEvoInfo.unk4[sp8] = 0; + sEvoInfo.unk44[sp8] = 0; + for (r6 = 0; r6 < 32; r6++) + { + sEvoInfo.unk10C4[sp8][r6] = 0; + sEvoInfo.unk18C4[sp8][r6] = 0; + sEvoInfo.unk20C4[sp8][r6] = 0; + sEvoInfo.unk28C4[sp8][r6] = 0; + sEvoInfo.unkC4[sp8][r6] = 0; + sEvoInfo.unk8C4[sp8][r6] = 0; + sEvoInfo.unk30C4[sp8][r6] = 0; + sEvoInfo.unk38C4[sp8][r6] = 0; + + sEvoInfo.unk60C4[sp8][r6] = 0; + sEvoInfo.unk70C4[sp8][r6] = 0; + sEvoInfo.unk80C4[sp8][r6] = 0; + sEvoInfo.unk90C4[sp8][r6] = 0; + } + } + + sEvoInfo.unkA0C4 = 64; + r8 = 0; + for (sp8 = 0; sp8 < 64; sp8++) + { + //_08113C32 + u32 r3 = 0; + u8 *r2 = sp0 + r8; + + for (r6 = 0; r6 < 64; r6++) + { + sEvoInfo.unk40C4[sp8][r6 >> 1] = r2; + switch (r3) + { + case 0: + switch (r6 & 1) + { + case 0: + if (*r2 & 0xF) + { + sEvoInfo.unk10C4[sp8][sEvoInfo.unk4[sp8]] = r6; + r3 = 1; + } + break; + case 1: + if (*r2 & 0xF0) + { + sEvoInfo.unk10C4[sp8][sEvoInfo.unk4[sp8]] = r6; + r3 = 1; + } + break; + } + break; + case 1: + switch (r6 & r3) + { + case 0: + if (*r2 & 0xF) + { + sEvoInfo.unk18C4[sp8][sEvoInfo.unk4[sp8]] = r6 - 1; + sEvoInfo.unk4[sp8]++; + r3 = 0; + } + break; + case 1: + if (*r2 & 0xF0) + { + sEvoInfo.unk18C4[sp8][sEvoInfo.unk4[sp8]] = r6 - 1; + sEvoInfo.unk4[sp8]++; + r3 = 0; + } + break; + } + } + //if (!((r6 + 1) & 7)) + if ((r6 + 1) % 8 == 0) + r2 += 0x1D; + else if (r6 & 1) + r2 += 1; + } + if (r3) + { + sEvoInfo.unk18C4[sp8][sEvoInfo.unk4[sp8]] = r6; + sEvoInfo.unk4[sp8]++; + } + //_08113D26 + if (!((sp8 + 1) & 7)) + r8 += 0xE4; + else + r8 += 4; + } + //_08113D4A + r8 = 0; + for (sp8 = 0; sp8 < 64; sp8++) + { + //_08113D6A + u32 r3 = 0; + u8 *r2 = sp4 + r8; + + for (r6 = 0; r6 < 64; r6++) + { + switch (r3) + { + case 0: + switch (r6 & 1) + { + case 0: + if (*r2 & 0xF) + { + sEvoInfo.unk20C4[sp8][sEvoInfo.unk44[sp8]] = r6; + r3 = 1; + } + break; + case 1: + if (*r2 & 0xF0) + { + sEvoInfo.unk20C4[sp8][sEvoInfo.unk44[sp8]] = r6; + r3 = 1; + } + break; + } + break; + case 1: + switch (r6 & r3) + { + case 0: + if (*r2 & 0xF) + { + sEvoInfo.unk28C4[sp8][sEvoInfo.unk44[sp8]] = r6 - 1; + sEvoInfo.unk44[sp8]++; + r3 = 0; + } + break; + case 1: + if (*r2 & 0xF0) + { + sEvoInfo.unk28C4[sp8][sEvoInfo.unk44[sp8]] = r6 - 1; + sEvoInfo.unk44[sp8]++; + r3 = 0; + } + break; + } + } + //_08113DE4 + if (!((r6 + 1) & 7)) + r2 += 0x1D; + else if (r6 & 1) + r2 += 1; + + } + if (r3) + { + sEvoInfo.unk28C4[sp8][sEvoInfo.unk44[sp8]] = r6; + sEvoInfo.unk44[sp8]++; + } + //if (!((sp8 + 1) & 7)) + if ((sp8 + 1) % 8 == 0) + r8 += 0xE4; + else + r8 += 4; + } + + for (sp8 = 0; sp8 < 0x40; sp8++) //_08113E3A + { + if (sEvoInfo.unk4[sp8] < sEvoInfo.unk44[sp8]) + { + for (spC = 0; spC < sEvoInfo.unk4[sp8]; spC++) + { + sp14 = 0x100; + + for (r6 = 0; r6 < sEvoInfo.unk44[sp8]; r6++) + { + s32 r3; + + //_08113EA4 + if (sEvoInfo.unk10C4[sp8][spC] > sEvoInfo.unk20C4[sp8][r6]) + r3 = sEvoInfo.unk10C4[sp8][spC] - sEvoInfo.unk20C4[sp8][r6]; + else + r3 = sEvoInfo.unk20C4[sp8][r6] - sEvoInfo.unk10C4[sp8][spC]; + + if (sEvoInfo.unk18C4[sp8][spC] > sEvoInfo.unk28C4[sp8][spC]) + r3 += sEvoInfo.unk18C4[sp8][spC] - sEvoInfo.unk28C4[sp8][spC]; + else + r3 += sEvoInfo.unk28C4[sp8][spC] - sEvoInfo.unk18C4[sp8][spC]; + + if (sp14 >= r3 && sEvoInfo.unkC4[sp8][r6] == 0 && sEvoInfo.unk8C4[sp8][r6] == 0) + { + sp10 = r6; + sp14 = r3; + } + } + //_08113F3E + sub_81141F0(spC, sp10, sp8); + } + //_08113F54 + + for (r6 = 0; r6 < sEvoInfo.unk44[sp8]; r6++) + { + if (sEvoInfo.unkC4[sp8][r6] == 0 && sEvoInfo.unk8C4[sp8][r6] == 0) + sub_811430C(r6, sp8); + } + } + //_08113F9E + if (sEvoInfo.unk4[sp8] == sEvoInfo.unk44[sp8]) + { + for (r6 = 0; r6 < sEvoInfo.unk4[sp8]; r6++) + sub_81141F0(r6, r6, sp8); + } + //_08113FCC + if (sEvoInfo.unk4[sp8] > sEvoInfo.unk44[sp8]) + { + for (sp10 = 0; sp10 < sEvoInfo.unk44[sp8]; sp10++) + { + sp14 = 0x100; + + for (r6 = 0; r6 < sEvoInfo.unk4[sp8]; r6++) + { + s32 r3; + + if (sEvoInfo.unk10C4[sp8][r6] > sEvoInfo.unk20C4[sp8][sp10]) + r3 = sEvoInfo.unk10C4[sp8][r6] - sEvoInfo.unk20C4[sp8][sp10]; + else + r3 = sEvoInfo.unk20C4[sp8][sp10] - sEvoInfo.unk10C4[sp8][r6]; + + if (sEvoInfo.unk18C4[sp8][r6] > sEvoInfo.unk28C4[sp8][sp10]) + r3 += sEvoInfo.unk18C4[sp8][r6] - sEvoInfo.unk28C4[sp8][sp10]; + else + r3 += sEvoInfo.unk28C4[sp8][sp10] - sEvoInfo.unk18C4[sp8][r6]; + + //r3 = abs(sEvoInfo.unk10C4[sp8][r6] - sEvoInfo.unk20C4[sp8][sp10]); + //r3 += abs(sEvoInfo.unk18C4[sp8][r6] - sEvoInfo.unk28C4[sp8][sp10]); + + if (sp14 > r3 && sEvoInfo.unkC4[sp8][r6] == 0) + { + spC = r6; + sp14 = r3; + } + } + //_081140C4 + sEvoInfo.unk30C4[sp8][spC] = sEvoInfo.unk20C4[sp8][sp10]; + sEvoInfo.unk38C4[sp8][spC] = sEvoInfo.unk28C4[sp8][sp10]; + sEvoInfo.unkC4[sp8][spC] = 1; + } + //_08114104 + for (r6 = 0; r6 < sEvoInfo.unk4[sp8]; r6++) + { + sEvoInfo.unk20C4[sp8][r6] = sEvoInfo.unk30C4[sp8][r6]; + sEvoInfo.unk28C4[sp8][r6] = sEvoInfo.unk38C4[sp8][r6]; + if (sEvoInfo.unkC4[sp8][r6] != 0) + { + sEvoInfo.unkC4[sp8][r6] = 0; + sub_81141F0(r6, r6, sp8); + } + else + { + // Ugh, can't get this part right + //u8 *ptr1 = &sEvoInfo.unk10C4[sp8][r6]; + //u8 *ptr2 = &sEvoInfo.unk18C4[sp8][r6]; + //s32 r2 = *ptr1 + (*ptr2 - *ptr1) / 2; + + //u8 r0_ = sEvoInfo.unk10C4[sp8][r6]; + //u8 r2_ = sEvoInfo.unk18C4[sp8][r6]; + //s32 r2 = (r0_ - r2_) / 2; + + s32 r2 = (sEvoInfo.unk18C4[sp8][r6] - sEvoInfo.unk10C4[sp8][r6]); + s32 r2_ = sEvoInfo.unk10C4[sp8][r6]; + + sEvoInfo.unk20C4[sp8][r6] = sEvoInfo.unk28C4[sp8][r6] = r2_ + r2 / 2; + sEvoInfo.unk28C4[sp8][r6]++; + sub_81141F0(r6, r6, sp8); + } + } + } + //_081141C4 + } +#undef sp0 +#undef sp4 +} +*/ __attribute__((naked)) void unref_sub_8113B50() { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x3C\n\ - str r0, [sp]\n\ - str r1, [sp, 0x4]\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - movs r1, 0\n\ - str r1, [sp, 0x10]\n\ - movs r2, 0\n\ - str r2, [sp, 0x8]\n\ - ldr r3, _08113C60 @ =0x02014800\n\ - mov r12, r3\n\ - ldr r4, _08113C64 @ =0x000018c4\n\ - add r4, r12\n\ - mov r10, r4\n\ - ldr r5, _08113C68 @ =0x000020c4\n\ - add r5, r12\n\ - mov r8, r5\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x3C\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + movs r1, 0\n\ + str r1, [sp, 0x10]\n\ + movs r2, 0\n\ + str r2, [sp, 0x8]\n\ + ldr r3, _08113C60 @ =0x02014800\n\ + mov r12, r3\n\ + ldr r4, _08113C64 @ =0x000018c4\n\ + add r4, r12\n\ + mov r10, r4\n\ + ldr r5, _08113C68 @ =0x000020c4\n\ + add r5, r12\n\ + mov r8, r5\n\ _08113B7C:\n\ - adds r0, r3, 0\n\ - adds r0, 0x84\n\ - ldr r1, [sp, 0x8]\n\ - adds r0, r1, r0\n\ - strb r2, [r0]\n\ - adds r0, r3, 0x4\n\ - adds r0, r1, r0\n\ - strb r2, [r0]\n\ - ldr r4, _08113C6C @ =0x02014844\n\ - adds r0, r1, r4\n\ - strb r2, [r0]\n\ - movs r6, 0\n\ - lsls r1, 5\n\ - mov r9, r1\n\ - ldr r5, [sp, 0x8]\n\ - lsls r4, r5, 6\n\ + adds r0, r3, 0\n\ + adds r0, 0x84\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r0\n\ + strb r2, [r0]\n\ + adds r0, r3, 0x4\n\ + adds r0, r1, r0\n\ + strb r2, [r0]\n\ + ldr r4, _08113C6C @ =0x02014844\n\ + adds r0, r1, r4\n\ + strb r2, [r0]\n\ + movs r6, 0\n\ + lsls r1, 5\n\ + mov r9, r1\n\ + ldr r5, [sp, 0x8]\n\ + lsls r4, r5, 6\n\ _08113B9C:\n\ - mov r0, r9\n\ - adds r1, r6, r0\n\ - ldr r5, _08113C70 @ =0x020158c4\n\ - adds r0, r1, r5\n\ - strb r2, [r0]\n\ - mov r5, r10\n\ - adds r0, r1, r5\n\ - strb r2, [r0]\n\ - mov r5, r8\n\ - adds r0, r1, r5\n\ - strb r2, [r0]\n\ - ldr r5, _08113C74 @ =0x020170c4\n\ - adds r0, r1, r5\n\ - strb r2, [r0]\n\ - adds r7, r3, 0\n\ - adds r7, 0xC4\n\ - adds r0, r1, r7\n\ - strb r2, [r0]\n\ - ldr r5, _08113C78 @ =0x000008c4\n\ - adds r0, r3, r5\n\ - adds r0, r1, r0\n\ - strb r2, [r0]\n\ - ldr r5, _08113C7C @ =0x000030c4\n\ - adds r0, r3, r5\n\ - adds r0, r1, r0\n\ - strb r2, [r0]\n\ - ldr r5, _08113C80 @ =0x000038c4\n\ - adds r0, r3, r5\n\ - adds r1, r0\n\ - strb r2, [r1]\n\ - lsls r1, r6, 1\n\ - adds r1, r4\n\ - ldr r5, _08113C84 @ =0x000060c4\n\ - adds r0, r3, r5\n\ - adds r0, r1, r0\n\ - strh r2, [r0]\n\ - ldr r5, _08113C88 @ =0x000070c4\n\ - adds r0, r3, r5\n\ - adds r0, r1, r0\n\ - strh r2, [r0]\n\ - ldr r5, _08113C8C @ =0x000080c4\n\ - adds r0, r3, r5\n\ - adds r0, r1, r0\n\ - strh r2, [r0]\n\ - ldr r5, _08113C90 @ =0x000090c4\n\ - adds r0, r3, r5\n\ - adds r1, r0\n\ - strh r2, [r1]\n\ - adds r6, 0x1\n\ - cmp r6, 0x1F\n\ - ble _08113B9C\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - str r0, [sp, 0x8]\n\ - cmp r0, 0x3F\n\ - ble _08113B7C\n\ - ldr r1, _08113C94 @ =0x0000a0c4\n\ - add r1, r12\n\ - movs r0, 0x40\n\ - strb r0, [r1]\n\ - movs r1, 0\n\ - mov r8, r1\n\ - movs r2, 0\n\ - str r2, [sp, 0x8]\n\ - movs r3, 0x80\n\ - lsls r3, 5\n\ - adds r3, r7\n\ - mov r12, r3\n\ - movs r4, 0xC0\n\ - lsls r4, 5\n\ - adds r4, r7\n\ - mov r9, r4\n\ - movs r5, 0\n\ - adds r4, r7, 0\n\ - subs r4, 0xC0\n\ + mov r0, r9\n\ + adds r1, r6, r0\n\ + ldr r5, _08113C70 @ =0x020158c4\n\ + adds r0, r1, r5\n\ + strb r2, [r0]\n\ + mov r5, r10\n\ + adds r0, r1, r5\n\ + strb r2, [r0]\n\ + mov r5, r8\n\ + adds r0, r1, r5\n\ + strb r2, [r0]\n\ + ldr r5, _08113C74 @ =0x020170c4\n\ + adds r0, r1, r5\n\ + strb r2, [r0]\n\ + adds r7, r3, 0\n\ + adds r7, 0xC4\n\ + adds r0, r1, r7\n\ + strb r2, [r0]\n\ + ldr r5, _08113C78 @ =0x000008c4\n\ + adds r0, r3, r5\n\ + adds r0, r1, r0\n\ + strb r2, [r0]\n\ + ldr r5, _08113C7C @ =0x000030c4\n\ + adds r0, r3, r5\n\ + adds r0, r1, r0\n\ + strb r2, [r0]\n\ + ldr r5, _08113C80 @ =0x000038c4\n\ + adds r0, r3, r5\n\ + adds r1, r0\n\ + strb r2, [r1]\n\ + lsls r1, r6, 1\n\ + adds r1, r4\n\ + ldr r5, _08113C84 @ =0x000060c4\n\ + adds r0, r3, r5\n\ + adds r0, r1, r0\n\ + strh r2, [r0]\n\ + ldr r5, _08113C88 @ =0x000070c4\n\ + adds r0, r3, r5\n\ + adds r0, r1, r0\n\ + strh r2, [r0]\n\ + ldr r5, _08113C8C @ =0x000080c4\n\ + adds r0, r3, r5\n\ + adds r0, r1, r0\n\ + strh r2, [r0]\n\ + ldr r5, _08113C90 @ =0x000090c4\n\ + adds r0, r3, r5\n\ + adds r1, r0\n\ + strh r2, [r1]\n\ + adds r6, 0x1\n\ + cmp r6, 0x1F\n\ + ble _08113B9C\n\ + ldr r0, [sp, 0x8]\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x8]\n\ + cmp r0, 0x3F\n\ + ble _08113B7C\n\ + ldr r1, _08113C94 @ =0x0000a0c4\n\ + add r1, r12\n\ + movs r0, 0x40\n\ + strb r0, [r1]\n\ + movs r1, 0\n\ + mov r8, r1\n\ + movs r2, 0\n\ + str r2, [sp, 0x8]\n\ + movs r3, 0x80\n\ + lsls r3, 5\n\ + adds r3, r7\n\ + mov r12, r3\n\ + movs r4, 0xC0\n\ + lsls r4, 5\n\ + adds r4, r7\n\ + mov r9, r4\n\ + movs r5, 0\n\ + adds r4, r7, 0\n\ + subs r4, 0xC0\n\ _08113C32:\n\ - movs r3, 0\n\ - ldr r2, [sp]\n\ - add r2, r8\n\ - movs r6, 0\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - str r0, [sp, 0x30]\n\ - ldr r1, [sp, 0x8]\n\ - lsls r1, 7\n\ - mov r10, r1\n\ - movs r7, 0x1\n\ - negs r7, r7\n\ + movs r3, 0\n\ + ldr r2, [sp]\n\ + add r2, r8\n\ + movs r6, 0\n\ + ldr r0, [sp, 0x8]\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x30]\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 7\n\ + mov r10, r1\n\ + movs r7, 0x1\n\ + negs r7, r7\n\ _08113C4A:\n\ - asrs r0, r6, 1\n\ - lsls r0, 2\n\ - add r0, r10\n\ - ldr r1, _08113C98 @ =0x020188c4\n\ - adds r0, r1\n\ - str r2, [r0]\n\ - cmp r3, 0\n\ - beq _08113C9C\n\ - cmp r3, 0x1\n\ - beq _08113CC6\n\ - b _08113CF4\n\ - .align 2, 0\n\ + asrs r0, r6, 1\n\ + lsls r0, 2\n\ + add r0, r10\n\ + ldr r1, _08113C98 @ =0x020188c4\n\ + adds r0, r1\n\ + str r2, [r0]\n\ + cmp r3, 0\n\ + beq _08113C9C\n\ + cmp r3, 0x1\n\ + beq _08113CC6\n\ + b _08113CF4\n\ + .align 2, 0\n\ _08113C60: .4byte 0x02014800\n\ _08113C64: .4byte 0x000018c4\n\ _08113C68: .4byte 0x000020c4\n\ @@ -1362,518 +1679,518 @@ _08113C90: .4byte 0x000090c4\n\ _08113C94: .4byte 0x0000a0c4\n\ _08113C98: .4byte 0x020188c4\n\ _08113C9C:\n\ - movs r0, 0x1\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _08113CAA\n\ - cmp r0, 0x1\n\ - beq _08113CB0\n\ - b _08113CF4\n\ + movs r0, 0x1\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + beq _08113CAA\n\ + cmp r0, 0x1\n\ + beq _08113CB0\n\ + b _08113CF4\n\ _08113CAA:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF\n\ - b _08113CB4\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF\n\ + b _08113CB4\n\ _08113CB0:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF0\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF0\n\ _08113CB4:\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08113CF4\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - add r0, r12\n\ - strb r6, [r0]\n\ - movs r3, 0x1\n\ - b _08113CF4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08113CF4\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + add r0, r12\n\ + strb r6, [r0]\n\ + movs r3, 0x1\n\ + b _08113CF4\n\ _08113CC6:\n\ - adds r0, r6, 0\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08113CD4\n\ - cmp r0, 0x1\n\ - beq _08113CDA\n\ - b _08113CF4\n\ + adds r0, r6, 0\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08113CD4\n\ + cmp r0, 0x1\n\ + beq _08113CDA\n\ + b _08113CF4\n\ _08113CD4:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF\n\ - b _08113CDE\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF\n\ + b _08113CDE\n\ _08113CDA:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF0\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF0\n\ _08113CDE:\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08113CF4\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - add r0, r9\n\ - strb r7, [r0]\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - movs r3, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08113CF4\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + add r0, r9\n\ + strb r7, [r0]\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + movs r3, 0\n\ _08113CF4:\n\ - adds r0, r6, 0x1\n\ - movs r1, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08113D02\n\ - adds r2, 0x1D\n\ - b _08113D0C\n\ + adds r0, r6, 0x1\n\ + movs r1, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08113D02\n\ + adds r2, 0x1D\n\ + b _08113D0C\n\ _08113D02:\n\ - movs r0, 0x1\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _08113D0C\n\ - adds r2, 0x1\n\ + movs r0, 0x1\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + beq _08113D0C\n\ + adds r2, 0x1\n\ _08113D0C:\n\ - adds r7, 0x1\n\ - adds r6, 0x1\n\ - cmp r6, 0x3F\n\ - ble _08113C4A\n\ - cmp r3, 0\n\ - beq _08113D26\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - add r0, r9\n\ - strb r6, [r0]\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ + adds r7, 0x1\n\ + adds r6, 0x1\n\ + cmp r6, 0x3F\n\ + ble _08113C4A\n\ + cmp r3, 0\n\ + beq _08113D26\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + add r0, r9\n\ + strb r6, [r0]\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ _08113D26:\n\ - movs r0, 0x7\n\ - ldr r2, [sp, 0x30]\n\ - ands r2, r0\n\ - cmp r2, 0\n\ - bne _08113D36\n\ - movs r3, 0xE4\n\ - add r8, r3\n\ - b _08113D3A\n\ + movs r0, 0x7\n\ + ldr r2, [sp, 0x30]\n\ + ands r2, r0\n\ + cmp r2, 0\n\ + bne _08113D36\n\ + movs r3, 0xE4\n\ + add r8, r3\n\ + b _08113D3A\n\ _08113D36:\n\ - movs r0, 0x4\n\ - add r8, r0\n\ + movs r0, 0x4\n\ + add r8, r0\n\ _08113D3A:\n\ - adds r5, 0x20\n\ - adds r4, 0x1\n\ - ldr r1, [sp, 0x8]\n\ - adds r1, 0x1\n\ - str r1, [sp, 0x8]\n\ - cmp r1, 0x3F\n\ - bgt _08113D4A\n\ - b _08113C32\n\ + adds r5, 0x20\n\ + adds r4, 0x1\n\ + ldr r1, [sp, 0x8]\n\ + adds r1, 0x1\n\ + str r1, [sp, 0x8]\n\ + cmp r1, 0x3F\n\ + bgt _08113D4A\n\ + b _08113C32\n\ _08113D4A:\n\ - movs r2, 0\n\ - mov r8, r2\n\ - movs r3, 0\n\ - str r3, [sp, 0x8]\n\ - ldr r0, _08113D84 @ =0x02014844\n\ - movs r4, 0x82\n\ - lsls r4, 6\n\ - adds r4, r0\n\ - mov r10, r4\n\ - movs r5, 0xA2\n\ - lsls r5, 6\n\ - adds r7, r0, r5\n\ - movs r5, 0\n\ - adds r4, r0, 0\n\ - movs r0, 0x1\n\ - mov r9, r0\n\ + movs r2, 0\n\ + mov r8, r2\n\ + movs r3, 0\n\ + str r3, [sp, 0x8]\n\ + ldr r0, _08113D84 @ =0x02014844\n\ + movs r4, 0x82\n\ + lsls r4, 6\n\ + adds r4, r0\n\ + mov r10, r4\n\ + movs r5, 0xA2\n\ + lsls r5, 6\n\ + adds r7, r0, r5\n\ + movs r5, 0\n\ + adds r4, r0, 0\n\ + movs r0, 0x1\n\ + mov r9, r0\n\ _08113D6A:\n\ - movs r3, 0\n\ - ldr r2, [sp, 0x4]\n\ - add r2, r8\n\ - movs r6, 0\n\ - ldr r1, [sp, 0x8]\n\ - adds r1, 0x1\n\ - str r1, [sp, 0x30]\n\ + movs r3, 0\n\ + ldr r2, [sp, 0x4]\n\ + add r2, r8\n\ + movs r6, 0\n\ + ldr r1, [sp, 0x8]\n\ + adds r1, 0x1\n\ + str r1, [sp, 0x30]\n\ _08113D78:\n\ - cmp r3, 0\n\ - beq _08113D88\n\ - cmp r3, 0x1\n\ - beq _08113DB4\n\ - b _08113DE4\n\ - .align 2, 0\n\ + cmp r3, 0\n\ + beq _08113D88\n\ + cmp r3, 0x1\n\ + beq _08113DB4\n\ + b _08113DE4\n\ + .align 2, 0\n\ _08113D84: .4byte 0x02014844\n\ _08113D88:\n\ - adds r0, r6, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08113D98\n\ - cmp r0, 0x1\n\ - beq _08113D9E\n\ - b _08113DE4\n\ + adds r0, r6, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08113D98\n\ + cmp r0, 0x1\n\ + beq _08113D9E\n\ + b _08113DE4\n\ _08113D98:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF\n\ - b _08113DA2\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF\n\ + b _08113DA2\n\ _08113D9E:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF0\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF0\n\ _08113DA2:\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08113DE4\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - add r0, r10\n\ - strb r6, [r0]\n\ - movs r3, 0x1\n\ - b _08113DE4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08113DE4\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + add r0, r10\n\ + strb r6, [r0]\n\ + movs r3, 0x1\n\ + b _08113DE4\n\ _08113DB4:\n\ - adds r0, r6, 0\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08113DC2\n\ - cmp r0, 0x1\n\ - beq _08113DC8\n\ - b _08113DE4\n\ + adds r0, r6, 0\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08113DC2\n\ + cmp r0, 0x1\n\ + beq _08113DC8\n\ + b _08113DE4\n\ _08113DC2:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF\n\ - b _08113DCC\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF\n\ + b _08113DCC\n\ _08113DC8:\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF0\n\ + ldrb r1, [r2]\n\ + movs r0, 0xF0\n\ _08113DCC:\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08113DE4\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - adds r0, r7\n\ - subs r1, r6, 0x1\n\ - strb r1, [r0]\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - movs r3, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08113DE4\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + adds r0, r7\n\ + subs r1, r6, 0x1\n\ + strb r1, [r0]\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + movs r3, 0\n\ _08113DE4:\n\ - adds r1, r6, 0x1\n\ - movs r0, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08113DF2\n\ - adds r2, 0x1D\n\ - b _08113DFC\n\ + adds r1, r6, 0x1\n\ + movs r0, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08113DF2\n\ + adds r2, 0x1D\n\ + b _08113DFC\n\ _08113DF2:\n\ - mov r0, r9\n\ - ands r6, r0\n\ - cmp r6, 0\n\ - beq _08113DFC\n\ - adds r2, 0x1\n\ + mov r0, r9\n\ + ands r6, r0\n\ + cmp r6, 0\n\ + beq _08113DFC\n\ + adds r2, 0x1\n\ _08113DFC:\n\ - adds r6, r1, 0\n\ - cmp r6, 0x3F\n\ - ble _08113D78\n\ - cmp r3, 0\n\ - beq _08113E14\n\ - ldrb r0, [r4]\n\ - adds r0, r5\n\ - adds r0, r7\n\ - strb r6, [r0]\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ + adds r6, r1, 0\n\ + cmp r6, 0x3F\n\ + ble _08113D78\n\ + cmp r3, 0\n\ + beq _08113E14\n\ + ldrb r0, [r4]\n\ + adds r0, r5\n\ + adds r0, r7\n\ + strb r6, [r0]\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ _08113E14:\n\ - movs r0, 0x7\n\ - ldr r1, [sp, 0x30]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _08113E24\n\ - movs r2, 0xE4\n\ - add r8, r2\n\ - b _08113E28\n\ + movs r0, 0x7\n\ + ldr r1, [sp, 0x30]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _08113E24\n\ + movs r2, 0xE4\n\ + add r8, r2\n\ + b _08113E28\n\ _08113E24:\n\ - movs r3, 0x4\n\ - add r8, r3\n\ + movs r3, 0x4\n\ + add r8, r3\n\ _08113E28:\n\ - adds r5, 0x20\n\ - adds r4, 0x1\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - str r0, [sp, 0x8]\n\ - cmp r0, 0x3F\n\ - ble _08113D6A\n\ - movs r1, 0\n\ - str r1, [sp, 0x8]\n\ + adds r5, 0x20\n\ + adds r4, 0x1\n\ + ldr r0, [sp, 0x8]\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x8]\n\ + cmp r0, 0x3F\n\ + ble _08113D6A\n\ + movs r1, 0\n\ + str r1, [sp, 0x8]\n\ _08113E3A:\n\ - ldr r3, [sp, 0x8]\n\ - ldr r4, _08113EBC @ =0x02014804\n\ - adds r2, r3, r4\n\ - ldr r5, _08113EC0 @ =0x02014844\n\ - adds r1, r3, r5\n\ - ldrb r0, [r2]\n\ - adds r3, 0x1\n\ - str r3, [sp, 0x30]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc _08113E52\n\ - b _08113F9E\n\ + ldr r3, [sp, 0x8]\n\ + ldr r4, _08113EBC @ =0x02014804\n\ + adds r2, r3, r4\n\ + ldr r5, _08113EC0 @ =0x02014844\n\ + adds r1, r3, r5\n\ + ldrb r0, [r2]\n\ + adds r3, 0x1\n\ + str r3, [sp, 0x30]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc _08113E52\n\ + b _08113F9E\n\ _08113E52:\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - ldrb r2, [r2]\n\ - cmp r0, r2\n\ - bge _08113F54\n\ - ldr r0, _08113EC4 @ =0x02014800\n\ - adds r0, 0x4\n\ - ldr r1, [sp, 0x8]\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x18]\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrb r2, [r2]\n\ + cmp r0, r2\n\ + bge _08113F54\n\ + ldr r0, _08113EC4 @ =0x02014800\n\ + adds r0, 0x4\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x18]\n\ _08113E66:\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - str r2, [sp, 0x14]\n\ - movs r6, 0\n\ - ldr r3, [sp, 0x8]\n\ - ldr r4, _08113EC0 @ =0x02014844\n\ - adds r0, r3, r4\n\ - ldr r5, [sp, 0xC]\n\ - adds r5, 0x1\n\ - str r5, [sp, 0x34]\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bge _08113F3E\n\ - ldr r0, _08113EC4 @ =0x02014800\n\ - mov r10, r0\n\ - lsls r0, r3, 5\n\ - ldr r2, [sp, 0xC]\n\ - adds r1, r2, r0\n\ - mov r9, r0\n\ - ldr r0, _08113EC4 @ =0x02014800\n\ - adds r0, 0xC4\n\ - mov r3, r9\n\ - adds r7, r3, r0\n\ - mov r5, r9\n\ - ldr r4, _08113EC4 @ =0x02014800\n\ - ldr r2, _08113EC8 @ =0x000010c4\n\ - adds r0, r4, r2\n\ - adds r1, r0\n\ - mov r8, r1\n\ - ldrb r3, [r1]\n\ - str r3, [sp, 0x1C]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + str r2, [sp, 0x14]\n\ + movs r6, 0\n\ + ldr r3, [sp, 0x8]\n\ + ldr r4, _08113EC0 @ =0x02014844\n\ + adds r0, r3, r4\n\ + ldr r5, [sp, 0xC]\n\ + adds r5, 0x1\n\ + str r5, [sp, 0x34]\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bge _08113F3E\n\ + ldr r0, _08113EC4 @ =0x02014800\n\ + mov r10, r0\n\ + lsls r0, r3, 5\n\ + ldr r2, [sp, 0xC]\n\ + adds r1, r2, r0\n\ + mov r9, r0\n\ + ldr r0, _08113EC4 @ =0x02014800\n\ + adds r0, 0xC4\n\ + mov r3, r9\n\ + adds r7, r3, r0\n\ + mov r5, r9\n\ + ldr r4, _08113EC4 @ =0x02014800\n\ + ldr r2, _08113EC8 @ =0x000010c4\n\ + adds r0, r4, r2\n\ + adds r1, r0\n\ + mov r8, r1\n\ + ldrb r3, [r1]\n\ + str r3, [sp, 0x1C]\n\ _08113EA4:\n\ - ldr r0, _08113ECC @ =0x000020c4\n\ - add r0, r10\n\ - adds r0, r5, r0\n\ - ldr r4, [sp, 0x1C]\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - bls _08113ED0\n\ - mov r2, r8\n\ - ldrb r1, [r2]\n\ - ldrb r0, [r0]\n\ - b _08113ED6\n\ - .align 2, 0\n\ + ldr r0, _08113ECC @ =0x000020c4\n\ + add r0, r10\n\ + adds r0, r5, r0\n\ + ldr r4, [sp, 0x1C]\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + bls _08113ED0\n\ + mov r2, r8\n\ + ldrb r1, [r2]\n\ + ldrb r0, [r0]\n\ + b _08113ED6\n\ + .align 2, 0\n\ _08113EBC: .4byte 0x02014804\n\ _08113EC0: .4byte 0x02014844\n\ _08113EC4: .4byte 0x02014800\n\ _08113EC8: .4byte 0x000010c4\n\ _08113ECC: .4byte 0x000020c4\n\ _08113ED0:\n\ - ldrb r1, [r0]\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ + ldrb r1, [r0]\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ _08113ED6:\n\ - subs r3, r1, r0\n\ - ldr r1, [sp, 0xC]\n\ - add r1, r9\n\ - ldr r0, _08113EFC @ =0x000018c4\n\ - add r0, r10\n\ - adds r4, r1, r0\n\ - ldr r0, _08113F00 @ =0x000028c4\n\ - add r0, r10\n\ - adds r2, r5, r0\n\ - ldrb r0, [r4]\n\ - ldr r1, _08113F04 @ =0x02014800\n\ - mov r12, r1\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bls _08113F08\n\ - adds r1, r0, 0\n\ - ldrb r0, [r2]\n\ - b _08113F0C\n\ - .align 2, 0\n\ + subs r3, r1, r0\n\ + ldr r1, [sp, 0xC]\n\ + add r1, r9\n\ + ldr r0, _08113EFC @ =0x000018c4\n\ + add r0, r10\n\ + adds r4, r1, r0\n\ + ldr r0, _08113F00 @ =0x000028c4\n\ + add r0, r10\n\ + adds r2, r5, r0\n\ + ldrb r0, [r4]\n\ + ldr r1, _08113F04 @ =0x02014800\n\ + mov r12, r1\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bls _08113F08\n\ + adds r1, r0, 0\n\ + ldrb r0, [r2]\n\ + b _08113F0C\n\ + .align 2, 0\n\ _08113EFC: .4byte 0x000018c4\n\ _08113F00: .4byte 0x000028c4\n\ _08113F04: .4byte 0x02014800\n\ _08113F08:\n\ - ldrb r1, [r2]\n\ - ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + ldrb r0, [r4]\n\ _08113F0C:\n\ - subs r1, r0\n\ - adds r3, r1\n\ - ldr r2, [sp, 0x14]\n\ - cmp r2, r3\n\ - ble _08113F2C\n\ - ldrb r0, [r7]\n\ - cmp r0, 0\n\ - bne _08113F2C\n\ - ldr r0, _08114050 @ =0x000008c4\n\ - add r0, r12\n\ - adds r0, r5, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08113F2C\n\ - str r6, [sp, 0x10]\n\ - str r3, [sp, 0x14]\n\ + subs r1, r0\n\ + adds r3, r1\n\ + ldr r2, [sp, 0x14]\n\ + cmp r2, r3\n\ + ble _08113F2C\n\ + ldrb r0, [r7]\n\ + cmp r0, 0\n\ + bne _08113F2C\n\ + ldr r0, _08114050 @ =0x000008c4\n\ + add r0, r12\n\ + adds r0, r5, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08113F2C\n\ + str r6, [sp, 0x10]\n\ + str r3, [sp, 0x14]\n\ _08113F2C:\n\ - adds r7, 0x1\n\ - adds r5, 0x1\n\ - adds r6, 0x1\n\ - ldr r3, [sp, 0x8]\n\ - ldr r4, _08114054 @ =0x02014844\n\ - adds r0, r3, r4\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - blt _08113EA4\n\ + adds r7, 0x1\n\ + adds r5, 0x1\n\ + adds r6, 0x1\n\ + ldr r3, [sp, 0x8]\n\ + ldr r4, _08114054 @ =0x02014844\n\ + adds r0, r3, r4\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + blt _08113EA4\n\ _08113F3E:\n\ - ldr r0, [sp, 0xC]\n\ - ldr r1, [sp, 0x10]\n\ - ldr r2, [sp, 0x8]\n\ - bl sub_81141F0\n\ - ldr r5, [sp, 0x34]\n\ - str r5, [sp, 0xC]\n\ - ldr r0, [sp, 0x18]\n\ - ldrb r0, [r0]\n\ - cmp r5, r0\n\ - blt _08113E66\n\ + ldr r0, [sp, 0xC]\n\ + ldr r1, [sp, 0x10]\n\ + ldr r2, [sp, 0x8]\n\ + bl sub_81141F0\n\ + ldr r5, [sp, 0x34]\n\ + str r5, [sp, 0xC]\n\ + ldr r0, [sp, 0x18]\n\ + ldrb r0, [r0]\n\ + cmp r5, r0\n\ + blt _08113E66\n\ _08113F54:\n\ - movs r6, 0\n\ - ldr r2, _08114058 @ =0x02014800\n\ - ldr r1, [sp, 0x8]\n\ - ldr r3, _08114054 @ =0x02014844\n\ - adds r0, r1, r3\n\ - adds r4, r2, 0\n\ - mov r12, r4\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bge _08113F9E\n\ - mov r0, r12\n\ - adds r0, 0x44\n\ - adds r4, r1, r0\n\ + movs r6, 0\n\ + ldr r2, _08114058 @ =0x02014800\n\ + ldr r1, [sp, 0x8]\n\ + ldr r3, _08114054 @ =0x02014844\n\ + adds r0, r1, r3\n\ + adds r4, r2, 0\n\ + mov r12, r4\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bge _08113F9E\n\ + mov r0, r12\n\ + adds r0, 0x44\n\ + adds r4, r1, r0\n\ _08113F6E:\n\ - ldr r5, [sp, 0x8]\n\ - lsls r0, r5, 5\n\ - adds r1, r6, r0\n\ - adds r0, r2, 0\n\ - adds r0, 0xC4\n\ - adds r0, r1, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08113F94\n\ - ldr r3, _08114050 @ =0x000008c4\n\ - adds r0, r2, r3\n\ - adds r0, r1, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08113F94\n\ - adds r0, r6, 0\n\ - adds r1, r5, 0\n\ - bl sub_811430C\n\ + ldr r5, [sp, 0x8]\n\ + lsls r0, r5, 5\n\ + adds r1, r6, r0\n\ + adds r0, r2, 0\n\ + adds r0, 0xC4\n\ + adds r0, r1, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08113F94\n\ + ldr r3, _08114050 @ =0x000008c4\n\ + adds r0, r2, r3\n\ + adds r0, r1, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08113F94\n\ + adds r0, r6, 0\n\ + adds r1, r5, 0\n\ + bl sub_811430C\n\ _08113F94:\n\ - adds r6, 0x1\n\ - ldr r2, _08114058 @ =0x02014800\n\ - ldrb r5, [r4]\n\ - cmp r6, r5\n\ - blt _08113F6E\n\ + adds r6, 0x1\n\ + ldr r2, _08114058 @ =0x02014800\n\ + ldrb r5, [r4]\n\ + cmp r6, r5\n\ + blt _08113F6E\n\ _08113F9E:\n\ - ldr r0, [sp, 0x8]\n\ - ldr r1, _0811405C @ =0x02014804\n\ - adds r2, r0, r1\n\ - ldr r3, _08114054 @ =0x02014844\n\ - adds r1, r0, r3\n\ - ldrb r0, [r2]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bne _08113FCC\n\ - movs r6, 0\n\ - ldrb r4, [r2]\n\ - cmp r6, r4\n\ - bge _08113FCC\n\ - adds r4, r2, 0\n\ + ldr r0, [sp, 0x8]\n\ + ldr r1, _0811405C @ =0x02014804\n\ + adds r2, r0, r1\n\ + ldr r3, _08114054 @ =0x02014844\n\ + adds r1, r0, r3\n\ + ldrb r0, [r2]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bne _08113FCC\n\ + movs r6, 0\n\ + ldrb r4, [r2]\n\ + cmp r6, r4\n\ + bge _08113FCC\n\ + adds r4, r2, 0\n\ _08113FBA:\n\ - adds r0, r6, 0\n\ - adds r1, r6, 0\n\ - ldr r2, [sp, 0x8]\n\ - bl sub_81141F0\n\ - adds r6, 0x1\n\ - ldrb r5, [r4]\n\ - cmp r6, r5\n\ - blt _08113FBA\n\ + adds r0, r6, 0\n\ + adds r1, r6, 0\n\ + ldr r2, [sp, 0x8]\n\ + bl sub_81141F0\n\ + adds r6, 0x1\n\ + ldrb r5, [r4]\n\ + cmp r6, r5\n\ + blt _08113FBA\n\ _08113FCC:\n\ - ldr r0, [sp, 0x8]\n\ - ldr r1, _0811405C @ =0x02014804\n\ - adds r2, r0, r1\n\ - ldr r3, _08114054 @ =0x02014844\n\ - adds r1, r0, r3\n\ - ldrb r0, [r2]\n\ - ldr r4, _08114058 @ =0x02014800\n\ - ldrb r5, [r1]\n\ - cmp r0, r5\n\ - bhi _08113FE2\n\ - b _081141C4\n\ + ldr r0, [sp, 0x8]\n\ + ldr r1, _0811405C @ =0x02014804\n\ + adds r2, r0, r1\n\ + ldr r3, _08114054 @ =0x02014844\n\ + adds r1, r0, r3\n\ + ldrb r0, [r2]\n\ + ldr r4, _08114058 @ =0x02014800\n\ + ldrb r5, [r1]\n\ + cmp r0, r5\n\ + bhi _08113FE2\n\ + b _081141C4\n\ _08113FE2:\n\ - movs r0, 0\n\ - str r0, [sp, 0x10]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - blt _08113FEE\n\ - b _08114104\n\ + movs r0, 0\n\ + str r0, [sp, 0x10]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + blt _08113FEE\n\ + b _08114104\n\ _08113FEE:\n\ - str r2, [sp, 0x2C]\n\ - ldr r1, [sp, 0x8]\n\ - lsls r1, 5\n\ - mov r9, r1\n\ - adds r0, r4, 0\n\ - adds r0, 0x44\n\ - ldr r2, [sp, 0x8]\n\ - adds r0, r2, r0\n\ - str r0, [sp, 0x20]\n\ - mov r3, r9\n\ - str r3, [sp, 0x24]\n\ + str r2, [sp, 0x2C]\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 5\n\ + mov r9, r1\n\ + adds r0, r4, 0\n\ + adds r0, 0x44\n\ + ldr r2, [sp, 0x8]\n\ + adds r0, r2, r0\n\ + str r0, [sp, 0x20]\n\ + mov r3, r9\n\ + str r3, [sp, 0x24]\n\ _08114004:\n\ - movs r4, 0x80\n\ - lsls r4, 1\n\ - str r4, [sp, 0x14]\n\ - movs r6, 0\n\ - ldr r5, [sp, 0x10]\n\ - adds r5, 0x1\n\ - str r5, [sp, 0x38]\n\ - ldr r0, [sp, 0x2C]\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bge _081140C4\n\ - ldr r1, [sp, 0x10]\n\ - ldr r2, [sp, 0x24]\n\ - adds r1, r2\n\ - mov r10, r1\n\ - ldr r0, _08114058 @ =0x02014800\n\ - adds r0, 0xC4\n\ - adds r2, r0\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x24]\n\ - ldr r3, _08114058 @ =0x02014800\n\ - ldr r4, _08114060 @ =0x000010c4\n\ - adds r0, r3, r4\n\ - adds r5, r7, r0\n\ - ldr r0, _08114064 @ =0x020168c4\n\ - add r0, r10\n\ - mov r12, r0\n\ - ldrb r1, [r0]\n\ - str r1, [sp, 0x28]\n\ + movs r4, 0x80\n\ + lsls r4, 1\n\ + str r4, [sp, 0x14]\n\ + movs r6, 0\n\ + ldr r5, [sp, 0x10]\n\ + adds r5, 0x1\n\ + str r5, [sp, 0x38]\n\ + ldr r0, [sp, 0x2C]\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bge _081140C4\n\ + ldr r1, [sp, 0x10]\n\ + ldr r2, [sp, 0x24]\n\ + adds r1, r2\n\ + mov r10, r1\n\ + ldr r0, _08114058 @ =0x02014800\n\ + adds r0, 0xC4\n\ + adds r2, r0\n\ + mov r8, r2\n\ + ldr r7, [sp, 0x24]\n\ + ldr r3, _08114058 @ =0x02014800\n\ + ldr r4, _08114060 @ =0x000010c4\n\ + adds r0, r3, r4\n\ + adds r5, r7, r0\n\ + ldr r0, _08114064 @ =0x020168c4\n\ + add r0, r10\n\ + mov r12, r0\n\ + ldrb r1, [r0]\n\ + str r1, [sp, 0x28]\n\ _0811403E:\n\ - ldrb r0, [r5]\n\ - ldr r2, [sp, 0x28]\n\ - cmp r0, r2\n\ - bls _08114068\n\ - adds r1, r0, 0\n\ - mov r3, r12\n\ - ldrb r0, [r3]\n\ - b _0811406E\n\ - .align 2, 0\n\ + ldrb r0, [r5]\n\ + ldr r2, [sp, 0x28]\n\ + cmp r0, r2\n\ + bls _08114068\n\ + adds r1, r0, 0\n\ + mov r3, r12\n\ + ldrb r0, [r3]\n\ + b _0811406E\n\ + .align 2, 0\n\ _08114050: .4byte 0x000008c4\n\ _08114054: .4byte 0x02014844\n\ _08114058: .4byte 0x02014800\n\ @@ -1881,135 +2198,135 @@ _0811405C: .4byte 0x02014804\n\ _08114060: .4byte 0x000010c4\n\ _08114064: .4byte 0x020168c4\n\ _08114068:\n\ - mov r4, r12\n\ - ldrb r1, [r4]\n\ - ldrb r0, [r5]\n\ + mov r4, r12\n\ + ldrb r1, [r4]\n\ + ldrb r0, [r5]\n\ _0811406E:\n\ - subs r3, r1, r0\n\ - ldr r1, _0811408C @ =0x02014800\n\ - ldr r2, _08114090 @ =0x000018c4\n\ - adds r0, r1, r2\n\ - adds r4, r7, r0\n\ - ldr r2, _08114094 @ =0x020170c4\n\ - add r2, r10\n\ - ldrb r0, [r4]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bls _08114098\n\ - adds r1, r0, 0\n\ - ldrb r0, [r2]\n\ - b _0811409C\n\ - .align 2, 0\n\ + subs r3, r1, r0\n\ + ldr r1, _0811408C @ =0x02014800\n\ + ldr r2, _08114090 @ =0x000018c4\n\ + adds r0, r1, r2\n\ + adds r4, r7, r0\n\ + ldr r2, _08114094 @ =0x020170c4\n\ + add r2, r10\n\ + ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bls _08114098\n\ + adds r1, r0, 0\n\ + ldrb r0, [r2]\n\ + b _0811409C\n\ + .align 2, 0\n\ _0811408C: .4byte 0x02014800\n\ _08114090: .4byte 0x000018c4\n\ _08114094: .4byte 0x020170c4\n\ _08114098:\n\ - ldrb r1, [r2]\n\ - ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + ldrb r0, [r4]\n\ _0811409C:\n\ - subs r1, r0\n\ - adds r3, r1\n\ - ldr r2, [sp, 0x14]\n\ - cmp r2, r3\n\ - ble _081140B2\n\ - mov r4, r8\n\ - ldrb r0, [r4]\n\ - cmp r0, 0\n\ - bne _081140B2\n\ - str r6, [sp, 0xC]\n\ - str r3, [sp, 0x14]\n\ + subs r1, r0\n\ + adds r3, r1\n\ + ldr r2, [sp, 0x14]\n\ + cmp r2, r3\n\ + ble _081140B2\n\ + mov r4, r8\n\ + ldrb r0, [r4]\n\ + cmp r0, 0\n\ + bne _081140B2\n\ + str r6, [sp, 0xC]\n\ + str r3, [sp, 0x14]\n\ _081140B2:\n\ - movs r0, 0x1\n\ - add r8, r0\n\ - adds r7, 0x1\n\ - adds r5, 0x1\n\ - adds r6, 0x1\n\ - ldr r1, [sp, 0x2C]\n\ - ldrb r1, [r1]\n\ - cmp r6, r1\n\ - blt _0811403E\n\ + movs r0, 0x1\n\ + add r8, r0\n\ + adds r7, 0x1\n\ + adds r5, 0x1\n\ + adds r6, 0x1\n\ + ldr r1, [sp, 0x2C]\n\ + ldrb r1, [r1]\n\ + cmp r6, r1\n\ + blt _0811403E\n\ _081140C4:\n\ - ldr r3, [sp, 0xC]\n\ - add r3, r9\n\ - ldr r2, _08114164 @ =0x02014800\n\ - ldr r4, _08114168 @ =0x000030c4\n\ - adds r1, r2, r4\n\ - adds r1, r3, r1\n\ - ldr r2, [sp, 0x10]\n\ - add r2, r9\n\ - ldr r5, _0811416C @ =0x020168c4\n\ - adds r0, r2, r5\n\ - ldrb r0, [r0]\n\ - strb r0, [r1]\n\ - ldr r0, _08114164 @ =0x02014800\n\ - ldr r4, _08114170 @ =0x000038c4\n\ - adds r1, r0, r4\n\ - adds r1, r3, r1\n\ - ldr r5, _08114174 @ =0x020170c4\n\ - adds r2, r5\n\ - ldrb r0, [r2]\n\ - strb r0, [r1]\n\ - ldr r0, _08114164 @ =0x02014800\n\ - adds r0, 0xC4\n\ - adds r3, r0\n\ - movs r0, 0x1\n\ - strb r0, [r3]\n\ - ldr r0, [sp, 0x38]\n\ - str r0, [sp, 0x10]\n\ - ldr r1, [sp, 0x20]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bge _08114104\n\ - b _08114004\n\ + ldr r3, [sp, 0xC]\n\ + add r3, r9\n\ + ldr r2, _08114164 @ =0x02014800\n\ + ldr r4, _08114168 @ =0x000030c4\n\ + adds r1, r2, r4\n\ + adds r1, r3, r1\n\ + ldr r2, [sp, 0x10]\n\ + add r2, r9\n\ + ldr r5, _0811416C @ =0x020168c4\n\ + adds r0, r2, r5\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + ldr r0, _08114164 @ =0x02014800\n\ + ldr r4, _08114170 @ =0x000038c4\n\ + adds r1, r0, r4\n\ + adds r1, r3, r1\n\ + ldr r5, _08114174 @ =0x020170c4\n\ + adds r2, r5\n\ + ldrb r0, [r2]\n\ + strb r0, [r1]\n\ + ldr r0, _08114164 @ =0x02014800\n\ + adds r0, 0xC4\n\ + adds r3, r0\n\ + movs r0, 0x1\n\ + strb r0, [r3]\n\ + ldr r0, [sp, 0x38]\n\ + str r0, [sp, 0x10]\n\ + ldr r1, [sp, 0x20]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bge _08114104\n\ + b _08114004\n\ _08114104:\n\ - movs r6, 0\n\ - ldr r4, _08114164 @ =0x02014800\n\ - ldr r2, [sp, 0x8]\n\ - ldr r3, _08114178 @ =0x02014804\n\ - adds r0, r2, r3\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bge _081141C4\n\ - adds r7, r4, 0\n\ - mov r9, r6\n\ - movs r5, 0xC4\n\ - adds r5, r7\n\ - mov r8, r5\n\ + movs r6, 0\n\ + ldr r4, _08114164 @ =0x02014800\n\ + ldr r2, [sp, 0x8]\n\ + ldr r3, _08114178 @ =0x02014804\n\ + adds r0, r2, r3\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bge _081141C4\n\ + adds r7, r4, 0\n\ + mov r9, r6\n\ + movs r5, 0xC4\n\ + adds r5, r7\n\ + mov r8, r5\n\ _0811411E:\n\ - ldr r1, [sp, 0x8]\n\ - lsls r0, r1, 5\n\ - adds r2, r6, r0\n\ - ldr r3, _0811417C @ =0x000020c4\n\ - adds r0, r7, r3\n\ - adds r0, r2\n\ - mov r10, r0\n\ - ldr r5, _08114168 @ =0x000030c4\n\ - adds r0, r7, r5\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - mov r1, r10\n\ - strb r0, [r1]\n\ - ldr r3, _08114180 @ =0x000028c4\n\ - adds r0, r7, r3\n\ - adds r3, r2, r0\n\ - ldr r5, _08114170 @ =0x000038c4\n\ - adds r0, r7, r5\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - strb r0, [r3]\n\ - mov r0, r8\n\ - adds r1, r2, r0\n\ - ldrb r0, [r1]\n\ - cmp r0, 0\n\ - beq _08114184\n\ - mov r2, r9\n\ - strb r2, [r1]\n\ - adds r0, r6, 0\n\ - adds r1, r6, 0\n\ - ldr r2, [sp, 0x8]\n\ - bl sub_81141F0\n\ - b _081141B4\n\ - .align 2, 0\n\ + ldr r1, [sp, 0x8]\n\ + lsls r0, r1, 5\n\ + adds r2, r6, r0\n\ + ldr r3, _0811417C @ =0x000020c4\n\ + adds r0, r7, r3\n\ + adds r0, r2\n\ + mov r10, r0\n\ + ldr r5, _08114168 @ =0x000030c4\n\ + adds r0, r7, r5\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + mov r1, r10\n\ + strb r0, [r1]\n\ + ldr r3, _08114180 @ =0x000028c4\n\ + adds r0, r7, r3\n\ + adds r3, r2, r0\n\ + ldr r5, _08114170 @ =0x000038c4\n\ + adds r0, r7, r5\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + strb r0, [r3]\n\ + mov r0, r8\n\ + adds r1, r2, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0\n\ + beq _08114184\n\ + mov r2, r9\n\ + strb r2, [r1]\n\ + adds r0, r6, 0\n\ + adds r1, r6, 0\n\ + ldr r2, [sp, 0x8]\n\ + bl sub_81141F0\n\ + b _081141B4\n\ + .align 2, 0\n\ _08114164: .4byte 0x02014800\n\ _08114168: .4byte 0x000030c4\n\ _0811416C: .4byte 0x020168c4\n\ @@ -2019,54 +2336,54 @@ _08114178: .4byte 0x02014804\n\ _0811417C: .4byte 0x000020c4\n\ _08114180: .4byte 0x000028c4\n\ _08114184:\n\ - ldr r5, _081141E0 @ =0x000010c4\n\ - adds r1, r4, r5\n\ - adds r1, r2, r1\n\ - ldr r5, _081141E4 @ =0x000018c4\n\ - adds r0, r4, r5\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - ldrb r2, [r1]\n\ - subs r0, r2\n\ - lsrs r1, r0, 31\n\ - adds r0, r1\n\ - asrs r0, 1\n\ - adds r2, r0\n\ - strb r2, [r3]\n\ - mov r0, r10\n\ - strb r2, [r0]\n\ - ldrb r0, [r3]\n\ - subs r0, 0x1\n\ - strb r0, [r3]\n\ - adds r0, r6, 0\n\ - adds r1, r6, 0\n\ - ldr r2, [sp, 0x8]\n\ - bl sub_81141F0\n\ + ldr r5, _081141E0 @ =0x000010c4\n\ + adds r1, r4, r5\n\ + adds r1, r2, r1\n\ + ldr r5, _081141E4 @ =0x000018c4\n\ + adds r0, r4, r5\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + ldrb r2, [r1]\n\ + subs r0, r2\n\ + lsrs r1, r0, 31\n\ + adds r0, r1\n\ + asrs r0, 1\n\ + adds r2, r0\n\ + strb r2, [r3]\n\ + mov r0, r10\n\ + strb r2, [r0]\n\ + ldrb r0, [r3]\n\ + subs r0, 0x1\n\ + strb r0, [r3]\n\ + adds r0, r6, 0\n\ + adds r1, r6, 0\n\ + ldr r2, [sp, 0x8]\n\ + bl sub_81141F0\n\ _081141B4:\n\ - adds r6, 0x1\n\ - ldr r4, _081141E8 @ =0x02014800\n\ - ldr r1, [sp, 0x8]\n\ - ldr r2, _081141EC @ =0x02014804\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - blt _0811411E\n\ + adds r6, 0x1\n\ + ldr r4, _081141E8 @ =0x02014800\n\ + ldr r1, [sp, 0x8]\n\ + ldr r2, _081141EC @ =0x02014804\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + blt _0811411E\n\ _081141C4:\n\ - ldr r3, [sp, 0x30]\n\ - str r3, [sp, 0x8]\n\ - cmp r3, 0x3F\n\ - bgt _081141CE\n\ - b _08113E3A\n\ + ldr r3, [sp, 0x30]\n\ + str r3, [sp, 0x8]\n\ + cmp r3, 0x3F\n\ + bgt _081141CE\n\ + b _08113E3A\n\ _081141CE:\n\ - add sp, 0x3C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x3C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _081141E0: .4byte 0x000010c4\n\ _081141E4: .4byte 0x000018c4\n\ _081141E8: .4byte 0x02014800\n\ @@ -2074,1557 +2391,1308 @@ _081141EC: .4byte 0x02014804\n\ .syntax divided"); } -__attribute__((naked)) -void sub_81141F0() +void sub_81141F0(s32 a, s32 b, s32 c) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - adds r6, r0, 0\n\ - mov r8, r1\n\ - mov r9, r2\n\ - ldr r3, _0811424C @ =0x02014800\n\ - lsls r1, r2, 5\n\ - mov r0, r8\n\ - adds r4, r0, r1\n\ - ldr r5, _08114250 @ =0x000030c4\n\ - adds r2, r3, r5\n\ - adds r2, r4, r2\n\ - adds r1, r6, r1\n\ - ldr r7, _08114254 @ =0x000010c4\n\ - adds r0, r3, r7\n\ - adds r5, r1, r0\n\ - ldrb r0, [r5]\n\ - strb r0, [r2]\n\ - ldr r0, _08114258 @ =0x000038c4\n\ - adds r2, r3, r0\n\ - adds r2, r4, r2\n\ - ldr r7, _0811425C @ =0x000018c4\n\ - adds r0, r3, r7\n\ - adds r1, r0\n\ - ldrb r0, [r1]\n\ - strb r0, [r2]\n\ - movs r7, 0\n\ - ldr r1, _08114260 @ =0x000020c4\n\ - adds r0, r3, r1\n\ - adds r2, r4, r0\n\ - ldrb r1, [r5]\n\ - ldrb r0, [r2]\n\ - mov r12, r3\n\ - cmp r1, r0\n\ - bcs _08114264\n\ - mov r0, r12\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0x4\n\ - strb r1, [r0]\n\ - ldrb r1, [r2]\n\ - ldrb r0, [r5]\n\ - b _08114276\n\ - .align 2, 0\n\ -_0811424C: .4byte 0x02014800\n\ -_08114250: .4byte 0x000030c4\n\ -_08114254: .4byte 0x000010c4\n\ -_08114258: .4byte 0x000038c4\n\ -_0811425C: .4byte 0x000018c4\n\ -_08114260: .4byte 0x000020c4\n\ -_08114264:\n\ - cmp r1, r0\n\ - bls _08114278\n\ - mov r0, r12\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0x1\n\ - strb r1, [r0]\n\ - ldrb r1, [r5]\n\ - ldrb r0, [r2]\n\ -_08114276:\n\ - subs r7, r1, r0\n\ -_08114278:\n\ - mov r5, r8\n\ - lsls r3, r5, 1\n\ - mov r0, r9\n\ - lsls r4, r0, 6\n\ - adds r0, r3, r4\n\ - ldr r1, _081142BC @ =0x000080c4\n\ - add r1, r12\n\ - adds r0, r1\n\ - lsls r1, r7, 4\n\ - strh r1, [r0]\n\ - movs r7, 0\n\ - mov r1, r9\n\ - lsls r2, r1, 5\n\ - adds r1, r6, r2\n\ - ldr r0, _081142C0 @ =0x000018c4\n\ - add r0, r12\n\ - adds r6, r1, r0\n\ - adds r1, r5, r2\n\ - ldr r0, _081142C4 @ =0x000028c4\n\ - add r0, r12\n\ - adds r5, r1, r0\n\ - ldrb r2, [r6]\n\ - ldrb r0, [r5]\n\ - cmp r2, r0\n\ - bcs _081142CC\n\ - ldr r0, _081142C8 @ =0x000008c4\n\ - add r0, r12\n\ - adds r0, r1, r0\n\ - movs r1, 0x3\n\ - strb r1, [r0]\n\ - ldrb r1, [r5]\n\ - ldrb r0, [r6]\n\ - b _081142DE\n\ - .align 2, 0\n\ -_081142BC: .4byte 0x000080c4\n\ -_081142C0: .4byte 0x000018c4\n\ -_081142C4: .4byte 0x000028c4\n\ -_081142C8: .4byte 0x000008c4\n\ -_081142CC:\n\ - cmp r2, r0\n\ - bls _081142E0\n\ - ldr r0, _08114304 @ =0x000008c4\n\ - add r0, r12\n\ - adds r0, r1, r0\n\ - movs r1, 0x2\n\ - strb r1, [r0]\n\ - ldrb r1, [r6]\n\ - ldrb r0, [r5]\n\ -_081142DE:\n\ - subs r7, r1, r0\n\ -_081142E0:\n\ - adds r0, r3, r4\n\ - ldr r1, _08114308 @ =0x000090c4\n\ - add r1, r12\n\ - adds r0, r1\n\ - lsls r1, r7, 4\n\ - strh r1, [r0]\n\ - mov r1, r12\n\ - adds r1, 0x84\n\ - add r1, r9\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08114304: .4byte 0x000008c4\n\ -_08114308: .4byte 0x000090c4\n\ - .syntax divided"); + u32 r7; + + sEvoInfo.unk30C4[c][b] = sEvoInfo.unk10C4[c][a]; + sEvoInfo.unk38C4[c][b] = sEvoInfo.unk18C4[c][a]; + + r7 = 0; + if (sEvoInfo.unk10C4[c][a] < sEvoInfo.unk20C4[c][b]) + { + sEvoInfo.unkC4[c][b] = 4; + r7 = sEvoInfo.unk20C4[c][b] - sEvoInfo.unk10C4[c][a]; + } + else if (sEvoInfo.unk10C4[c][a] > sEvoInfo.unk20C4[c][b]) + { + sEvoInfo.unkC4[c][b] = 1; + r7 = sEvoInfo.unk10C4[c][a] - sEvoInfo.unk20C4[c][b]; + } + sEvoInfo.unk80C4[c][b] = r7 * 16; + + r7 = 0; + if (sEvoInfo.unk18C4[c][a] < sEvoInfo.unk28C4[c][b]) + { + sEvoInfo.unk8C4[c][b] = 3; + r7 = sEvoInfo.unk28C4[c][b] - sEvoInfo.unk18C4[c][a]; + } + else if (sEvoInfo.unk18C4[c][a] > sEvoInfo.unk28C4[c][b]) + { + sEvoInfo.unk8C4[c][b] = 2; + r7 = sEvoInfo.unk18C4[c][a] - sEvoInfo.unk28C4[c][b]; + } + sEvoInfo.unk90C4[c][b] = r7 * 16; + + sEvoInfo.unk84[c]++; } -__attribute__((naked)) -void sub_811430C() +void sub_811430C(u32 a, u32 b) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - ldr r5, _081143AC @ =0x02014800\n\ - lsls r4, r1, 5\n\ - adds r4, r0, r4\n\ - ldr r2, _081143B0 @ =0x000028c4\n\ - adds r2, r5\n\ - mov r10, r2\n\ - add r10, r4\n\ - mov r3, r10\n\ - ldrb r2, [r3]\n\ - ldr r6, _081143B4 @ =0x000020c4\n\ - adds r6, r5\n\ - mov r8, r6\n\ - add r8, r4\n\ - mov r6, r8\n\ - ldrb r3, [r6]\n\ - subs r7, r2, r3\n\ - ldr r2, _081143B8 @ =0x000030c4\n\ - adds r6, r5, r2\n\ - adds r6, r4, r6\n\ - ldr r2, _081143BC @ =0x000038c4\n\ - adds r2, r5\n\ - mov r9, r2\n\ - add r9, r4\n\ - lsrs r2, r7, 31\n\ - adds r2, r7, r2\n\ - asrs r2, 1\n\ - adds r3, r2\n\ - mov r2, r9\n\ - strb r3, [r2]\n\ - strb r3, [r6]\n\ - adds r2, r5, 0\n\ - adds r2, 0xC4\n\ - adds r2, r4, r2\n\ - movs r3, 0x5\n\ - strb r3, [r2]\n\ - ldr r3, _081143C0 @ =0x000008c4\n\ - adds r2, r5, r3\n\ - adds r4, r2\n\ - movs r2, 0x7\n\ - strb r2, [r4]\n\ - adds r3, r5, 0\n\ - adds r3, 0x84\n\ - adds r3, r1, r3\n\ - ldrb r2, [r3]\n\ - adds r2, 0x1\n\ - strb r2, [r3]\n\ - ldrb r3, [r6]\n\ - mov r4, r8\n\ - ldrb r2, [r4]\n\ - subs r7, r3, r2\n\ - lsls r0, 1\n\ - lsls r1, 6\n\ - adds r0, r1\n\ - ldr r6, _081143C4 @ =0x000080c4\n\ - adds r1, r5, r6\n\ - adds r1, r0, r1\n\ - lsls r2, r7, 4\n\ - strh r2, [r1]\n\ - mov r1, r10\n\ - ldrb r2, [r1]\n\ - mov r3, r9\n\ - ldrb r1, [r3]\n\ - subs r7, r2, r1\n\ - ldr r4, _081143C8 @ =0x000090c4\n\ - adds r5, r4\n\ - adds r0, r5\n\ - lsls r1, r7, 4\n\ - strh r1, [r0]\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081143AC: .4byte 0x02014800\n\ -_081143B0: .4byte 0x000028c4\n\ -_081143B4: .4byte 0x000020c4\n\ -_081143B8: .4byte 0x000030c4\n\ -_081143BC: .4byte 0x000038c4\n\ -_081143C0: .4byte 0x000008c4\n\ -_081143C4: .4byte 0x000080c4\n\ -_081143C8: .4byte 0x000090c4\n\ - .syntax divided"); + u8 r2 = sEvoInfo.unk28C4[b][a]; + u8 r3 = sEvoInfo.unk20C4[b][a]; + s32 r7 = r2 - r3; + + sEvoInfo.unk30C4[b][a] = sEvoInfo.unk38C4[b][a] = r3 + r7 / 2; + sEvoInfo.unkC4[b][a] = 5; + sEvoInfo.unk8C4[b][a] = 7; + sEvoInfo.unk84[b]++; + r7 = sEvoInfo.unk30C4[b][a] - sEvoInfo.unk20C4[b][a]; + sEvoInfo.unk80C4[b][a] = r7 * 16; + r7 = sEvoInfo.unk28C4[b][a] - sEvoInfo.unk38C4[b][a]; + sEvoInfo.unk90C4[b][a] = r7 * 16; } __attribute__((naked)) void unref_sub_81143CC() { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - movs r0, 0x1\n\ - str r0, [sp, 0x4]\n\ - ldr r0, _08114408 @ =0x02014800\n\ - ldr r2, _0811440C @ =0x0000a0c4\n\ - adds r1, r0, r2\n\ - ldrb r3, [r1]\n\ - adds r4, r0, 0\n\ - cmp r3, 0\n\ - beq _081143EE\n\ - subs r0, r3, 0x1\n\ - strb r0, [r1]\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + movs r0, 0x1\n\ + str r0, [sp, 0x4]\n\ + ldr r0, _08114408 @ =0x02014800\n\ + ldr r2, _0811440C @ =0x0000a0c4\n\ + adds r1, r0, r2\n\ + ldrb r3, [r1]\n\ + adds r4, r0, 0\n\ + cmp r3, 0\n\ + beq _081143EE\n\ + subs r0, r3, 0x1\n\ + strb r0, [r1]\n\ _081143EE:\n\ - movs r5, 0\n\ - str r5, [sp]\n\ + movs r5, 0\n\ + str r5, [sp]\n\ _081143F2:\n\ - movs r3, 0\n\ - adds r2, r4, 0\n\ - adds r0, r4, 0\n\ - adds r0, 0x84\n\ - ldr r1, [sp]\n\ - adds r0, r1, r0\n\ - adds r1, 0x1\n\ - str r1, [sp, 0x8]\n\ - bl _08114D84\n\ - .align 2, 0\n\ + movs r3, 0\n\ + adds r2, r4, 0\n\ + adds r0, r4, 0\n\ + adds r0, 0x84\n\ + ldr r1, [sp]\n\ + adds r0, r1, r0\n\ + adds r1, 0x1\n\ + str r1, [sp, 0x8]\n\ + bl _08114D84\n\ + .align 2, 0\n\ _08114408: .4byte 0x02014800\n\ _0811440C: .4byte 0x0000a0c4\n\ _08114410:\n\ - ldr r5, [sp]\n\ - lsls r0, r5, 5\n\ - adds r1, r3, r0\n\ - adds r2, 0xC4\n\ - adds r1, r2\n\ - ldrb r2, [r1]\n\ - mov r8, r0\n\ - adds r0, r3, 0x1\n\ - mov r10, r0\n\ - cmp r2, 0xC\n\ - bls _08114428\n\ - b _081148D2\n\ + ldr r5, [sp]\n\ + lsls r0, r5, 5\n\ + adds r1, r3, r0\n\ + adds r2, 0xC4\n\ + adds r1, r2\n\ + ldrb r2, [r1]\n\ + mov r8, r0\n\ + adds r0, r3, 0x1\n\ + mov r10, r0\n\ + cmp r2, 0xC\n\ + bls _08114428\n\ + b _081148D2\n\ _08114428:\n\ - lsls r0, r2, 2\n\ - ldr r1, _08114434 @ =_08114438\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ + lsls r0, r2, 2\n\ + ldr r1, _08114434 @ =_08114438\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ _08114434: .4byte _08114438\n\ - .align 2, 0\n\ + .align 2, 0\n\ _08114438:\n\ - .4byte _081148D2\n\ - .4byte _0811446C\n\ - .4byte _081144F0\n\ - .4byte _0811457C\n\ - .4byte _08114600\n\ - .4byte _0811468C\n\ - .4byte _081146C8\n\ - .4byte _08114704\n\ - .4byte _08114740\n\ - .4byte _0811477C\n\ - .4byte _081147D0\n\ - .4byte _08114810\n\ - .4byte _08114858\n\ + .4byte _081148D2\n\ + .4byte _0811446C\n\ + .4byte _081144F0\n\ + .4byte _0811457C\n\ + .4byte _08114600\n\ + .4byte _0811468C\n\ + .4byte _081146C8\n\ + .4byte _08114704\n\ + .4byte _08114740\n\ + .4byte _0811477C\n\ + .4byte _081147D0\n\ + .4byte _08114810\n\ + .4byte _08114858\n\ _0811446C:\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - lsls r0, r3, 1\n\ - ldr r2, [sp]\n\ - lsls r1, r2, 6\n\ - adds r0, r1\n\ - ldr r5, _081144E0 @ =0x000060c4\n\ - adds r2, r4, r5\n\ - adds r2, r0, r2\n\ - ldr r5, _081144E4 @ =0x000080c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - adds r1, r3, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - cmp r2, r5\n\ - blt _081144A6\n\ - b _081148D2\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + lsls r0, r3, 1\n\ + ldr r2, [sp]\n\ + lsls r1, r2, 6\n\ + adds r0, r1\n\ + ldr r5, _081144E0 @ =0x000060c4\n\ + adds r2, r4, r5\n\ + adds r2, r0, r2\n\ + ldr r5, _081144E4 @ =0x000080c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + adds r1, r3, 0x1\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + cmp r2, r5\n\ + blt _081144A6\n\ + b _081148D2\n\ _081144A6:\n\ - mov r9, r4\n\ - mov r4, r8\n\ - adds r7, r3, r4\n\ - ldr r0, _081144E8 @ =0x000030c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _081144EC @ =0x000020c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r4, r8\n\ + adds r7, r3, r4\n\ + ldr r0, _081144E8 @ =0x000030c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _081144EC @ =0x000020c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _081144B8:\n\ - ldrb r0, [r4]\n\ - subs r0, 0x1\n\ - strb r0, [r4]\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldrb r0, [r4]\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _081144D8\n\ - b _081148A0\n\ + ldrb r0, [r4]\n\ + subs r0, 0x1\n\ + strb r0, [r4]\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldrb r0, [r4]\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _081144D8\n\ + b _081148A0\n\ _081144D8:\n\ - adds r6, 0x1\n\ - cmp r6, r5\n\ - blt _081144B8\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r6, 0x1\n\ + cmp r6, r5\n\ + blt _081144B8\n\ + b _081148D2\n\ + .align 2, 0\n\ _081144E0: .4byte 0x000060c4\n\ _081144E4: .4byte 0x000080c4\n\ _081144E8: .4byte 0x000030c4\n\ _081144EC: .4byte 0x000020c4\n\ _081144F0:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r4, _08114568 @ =0x02014800\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _0811456C @ =0x000060c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _08114570 @ =0x000080c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - adds r1, r3, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - cmp r2, r5\n\ - blt _0811452C\n\ - b _081148D2\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r4, _08114568 @ =0x02014800\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _0811456C @ =0x000060c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _08114570 @ =0x000080c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + adds r1, r3, 0x1\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + cmp r2, r5\n\ + blt _0811452C\n\ + b _081148D2\n\ _0811452C:\n\ - mov r9, r4\n\ - mov r4, r8\n\ - adds r7, r3, r4\n\ - ldr r0, _08114574 @ =0x000030c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _08114578 @ =0x000020c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r4, r8\n\ + adds r7, r3, r4\n\ + ldr r0, _08114574 @ =0x000030c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _08114578 @ =0x000020c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _0811453E:\n\ - ldrb r0, [r4]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _08114548\n\ - b _081148B8\n\ + ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _08114548\n\ + b _081148B8\n\ _08114548:\n\ - adds r1, r0, 0\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DF0\n\ - ldrb r0, [r4]\n\ - subs r0, 0x1\n\ - strb r0, [r4]\n\ - adds r6, 0x1\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - cmp r6, r5\n\ - blt _0811453E\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r1, r0, 0\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DF0\n\ + ldrb r0, [r4]\n\ + subs r0, 0x1\n\ + strb r0, [r4]\n\ + adds r6, 0x1\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + cmp r6, r5\n\ + blt _0811453E\n\ + b _081148D2\n\ + .align 2, 0\n\ _08114568: .4byte 0x02014800\n\ _0811456C: .4byte 0x000060c4\n\ _08114570: .4byte 0x000080c4\n\ _08114574: .4byte 0x000030c4\n\ _08114578: .4byte 0x000020c4\n\ _0811457C:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _081145F0 @ =0x000060c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _081145F4 @ =0x000080c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - adds r1, r3, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - cmp r2, r5\n\ - blt _081145B6\n\ - b _081148D2\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _081145F0 @ =0x000060c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _081145F4 @ =0x000080c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + adds r1, r3, 0x1\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + cmp r2, r5\n\ + blt _081145B6\n\ + b _081148D2\n\ _081145B6:\n\ - mov r9, r4\n\ - mov r4, r8\n\ - adds r7, r3, r4\n\ - ldr r0, _081145F8 @ =0x000030c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _081145FC @ =0x000020c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r4, r8\n\ + adds r7, r3, r4\n\ + ldr r0, _081145F8 @ =0x000030c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _081145FC @ =0x000020c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _081145C8:\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldrb r0, [r4]\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _081145E8\n\ - b _081148AC\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldrb r0, [r4]\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _081145E8\n\ + b _081148AC\n\ _081145E8:\n\ - adds r6, 0x1\n\ - cmp r6, r5\n\ - blt _081145C8\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r6, 0x1\n\ + cmp r6, r5\n\ + blt _081145C8\n\ + b _081148D2\n\ + .align 2, 0\n\ _081145F0: .4byte 0x000060c4\n\ _081145F4: .4byte 0x000080c4\n\ _081145F8: .4byte 0x000030c4\n\ _081145FC: .4byte 0x000020c4\n\ _08114600:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r4, _08114678 @ =0x02014800\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _0811467C @ =0x000060c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _08114680 @ =0x000080c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - adds r1, r3, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - cmp r2, r5\n\ - blt _0811463C\n\ - b _081148D2\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r4, _08114678 @ =0x02014800\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _0811467C @ =0x000060c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _08114680 @ =0x000080c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + adds r1, r3, 0x1\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + cmp r2, r5\n\ + blt _0811463C\n\ + b _081148D2\n\ _0811463C:\n\ - mov r9, r4\n\ - mov r4, r8\n\ - adds r7, r3, r4\n\ - ldr r0, _08114684 @ =0x000030c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _08114688 @ =0x000020c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r4, r8\n\ + adds r7, r3, r4\n\ + ldr r0, _08114684 @ =0x000030c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _08114688 @ =0x000020c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _0811464E:\n\ - ldrb r0, [r4]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _08114658\n\ - b _081148B8\n\ + ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _08114658\n\ + b _081148B8\n\ _08114658:\n\ - adds r1, r0, 0\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DF0\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - adds r6, 0x1\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - cmp r6, r5\n\ - blt _0811464E\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r1, r0, 0\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DF0\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + adds r6, 0x1\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + cmp r6, r5\n\ + blt _0811464E\n\ + b _081148D2\n\ + .align 2, 0\n\ _08114678: .4byte 0x02014800\n\ _0811467C: .4byte 0x000060c4\n\ _08114680: .4byte 0x000080c4\n\ _08114684: .4byte 0x000030c4\n\ _08114688: .4byte 0x000020c4\n\ _0811468C:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r5, _081146C0 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _081146C4 @ =0x000030c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - ldr r3, [sp, 0x10]\n\ - adds r2, r3, 0x1\n\ - mov r10, r2\n\ - cmp r0, 0\n\ - bne _081146B4\n\ - b _081148D2\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r5, _081146C0 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _081146C4 @ =0x000030c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + ldr r3, [sp, 0x10]\n\ + adds r2, r3, 0x1\n\ + mov r10, r2\n\ + cmp r0, 0\n\ + bne _081146B4\n\ + b _081148D2\n\ _081146B4:\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0x9\n\ - strb r1, [r0]\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r4, r0\n\ + movs r1, 0x9\n\ + strb r1, [r0]\n\ + b _081148D2\n\ + .align 2, 0\n\ _081146C0: .4byte 0x02014800\n\ _081146C4: .4byte 0x000030c4\n\ _081146C8:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _081146FC @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114700 @ =0x000030c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - ldr r3, [sp, 0x10]\n\ - adds r2, r3, 0x1\n\ - mov r10, r2\n\ - cmp r0, 0\n\ - bne _081146F0\n\ - b _081148D2\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _081146FC @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114700 @ =0x000030c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + ldr r3, [sp, 0x10]\n\ + adds r2, r3, 0x1\n\ + mov r10, r2\n\ + cmp r0, 0\n\ + bne _081146F0\n\ + b _081148D2\n\ _081146F0:\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0xA\n\ - strb r1, [r0]\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r4, r0\n\ + movs r1, 0xA\n\ + strb r1, [r0]\n\ + b _081148D2\n\ + .align 2, 0\n\ _081146FC: .4byte 0x02014800\n\ _08114700: .4byte 0x000030c4\n\ _08114704:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _08114738 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _0811473C @ =0x000030c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - ldr r3, [sp, 0x10]\n\ - adds r2, r3, 0x1\n\ - mov r10, r2\n\ - cmp r0, 0\n\ - bne _0811472C\n\ - b _081148D2\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _08114738 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _0811473C @ =0x000030c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + ldr r3, [sp, 0x10]\n\ + adds r2, r3, 0x1\n\ + mov r10, r2\n\ + cmp r0, 0\n\ + bne _0811472C\n\ + b _081148D2\n\ _0811472C:\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0xB\n\ - strb r1, [r0]\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r4, r0\n\ + movs r1, 0xB\n\ + strb r1, [r0]\n\ + b _081148D2\n\ + .align 2, 0\n\ _08114738: .4byte 0x02014800\n\ _0811473C: .4byte 0x000030c4\n\ _08114740:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _08114774 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114778 @ =0x000030c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - ldr r3, [sp, 0x10]\n\ - adds r2, r3, 0x1\n\ - mov r10, r2\n\ - cmp r0, 0\n\ - bne _08114768\n\ - b _081148D2\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _08114774 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114778 @ =0x000030c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + ldr r3, [sp, 0x10]\n\ + adds r2, r3, 0x1\n\ + mov r10, r2\n\ + cmp r0, 0\n\ + bne _08114768\n\ + b _081148D2\n\ _08114768:\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r4, r0\n\ - movs r1, 0xC\n\ - strb r1, [r0]\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r4, r0\n\ + movs r1, 0xC\n\ + strb r1, [r0]\n\ + b _081148D2\n\ + .align 2, 0\n\ _08114774: .4byte 0x02014800\n\ _08114778: .4byte 0x000030c4\n\ _0811477C:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r6, _081147B4 @ =0x02014800\n\ - mov r0, r8\n\ - adds r5, r3, r0\n\ - ldr r1, _081147B8 @ =0x000030c4\n\ - adds r4, r6, r1\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldr r2, _081147BC @ =0x000020c4\n\ - adds r0, r6, r2\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - bne _081147C0\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - mov r4, sp\n\ - ldrb r4, [r4, 0x4]\n\ - strb r4, [r0]\n\ - b _08114844\n\ - .align 2, 0\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r6, _081147B4 @ =0x02014800\n\ + mov r0, r8\n\ + adds r5, r3, r0\n\ + ldr r1, _081147B8 @ =0x000030c4\n\ + adds r4, r6, r1\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldr r2, _081147BC @ =0x000020c4\n\ + adds r0, r6, r2\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + bne _081147C0\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + mov r4, sp\n\ + ldrb r4, [r4, 0x4]\n\ + strb r4, [r0]\n\ + b _08114844\n\ + .align 2, 0\n\ _081147B4: .4byte 0x02014800\n\ _081147B8: .4byte 0x000030c4\n\ _081147BC: .4byte 0x000020c4\n\ _081147C0:\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - movs r1, 0x1\n\ - strb r1, [r0]\n\ - adds r0, r3, 0x1\n\ - mov r10, r0\n\ - b _081148D2\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + movs r1, 0x1\n\ + strb r1, [r0]\n\ + adds r0, r3, 0x1\n\ + mov r10, r0\n\ + b _081148D2\n\ _081147D0:\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - ldr r6, _08114804 @ =0x02014800\n\ - mov r2, r8\n\ - adds r5, r3, r2\n\ - ldr r0, _08114808 @ =0x000030c4\n\ - adds r4, r6, r0\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DF0\n\ - ldr r1, _0811480C @ =0x000020c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - beq _08114882\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - movs r1, 0x2\n\ - b _08114842\n\ - .align 2, 0\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + ldr r6, _08114804 @ =0x02014800\n\ + mov r2, r8\n\ + adds r5, r3, r2\n\ + ldr r0, _08114808 @ =0x000030c4\n\ + adds r4, r6, r0\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DF0\n\ + ldr r1, _0811480C @ =0x000020c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + beq _08114882\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + movs r1, 0x2\n\ + b _08114842\n\ + .align 2, 0\n\ _08114804: .4byte 0x02014800\n\ _08114808: .4byte 0x000030c4\n\ _0811480C: .4byte 0x000020c4\n\ _08114810:\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - ldr r6, _0811484C @ =0x02014800\n\ - mov r1, r8\n\ - adds r5, r3, r1\n\ - ldr r2, _08114850 @ =0x000030c4\n\ - adds r4, r6, r2\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldr r1, _08114854 @ =0x000020c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - beq _08114882\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - movs r1, 0x3\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + ldr r6, _0811484C @ =0x02014800\n\ + mov r1, r8\n\ + adds r5, r3, r1\n\ + ldr r2, _08114850 @ =0x000030c4\n\ + adds r4, r6, r2\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldr r1, _08114854 @ =0x000020c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + beq _08114882\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + movs r1, 0x3\n\ _08114842:\n\ - strb r1, [r0]\n\ + strb r1, [r0]\n\ _08114844:\n\ - adds r5, r3, 0x1\n\ - mov r10, r5\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r5, r3, 0x1\n\ + mov r10, r5\n\ + b _081148D2\n\ + .align 2, 0\n\ _0811484C: .4byte 0x02014800\n\ _08114850: .4byte 0x000030c4\n\ _08114854: .4byte 0x000020c4\n\ _08114858:\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - ldr r6, _08114894 @ =0x02014800\n\ - mov r1, r8\n\ - adds r5, r3, r1\n\ - ldr r2, _08114898 @ =0x000030c4\n\ - adds r4, r6, r2\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DF0\n\ - ldr r1, _0811489C @ =0x000020c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - bne _081148C4\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + ldr r6, _08114894 @ =0x02014800\n\ + mov r1, r8\n\ + adds r5, r3, r1\n\ + ldr r2, _08114898 @ =0x000030c4\n\ + adds r4, r6, r2\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DF0\n\ + ldr r1, _0811489C @ =0x000020c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + bne _081148C4\n\ _08114882:\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - mov r2, sp\n\ - ldrb r2, [r2, 0x4]\n\ - strb r2, [r0]\n\ - adds r4, r3, 0x1\n\ - mov r10, r4\n\ - b _081148D2\n\ - .align 2, 0\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + mov r2, sp\n\ + ldrb r2, [r2, 0x4]\n\ + strb r2, [r0]\n\ + adds r4, r3, 0x1\n\ + mov r10, r4\n\ + b _081148D2\n\ + .align 2, 0\n\ _08114894: .4byte 0x02014800\n\ _08114898: .4byte 0x000030c4\n\ _0811489C: .4byte 0x000020c4\n\ _081148A0:\n\ - mov r0, r9\n\ - adds r0, 0xC4\n\ - adds r0, r7, r0\n\ - movs r5, 0\n\ - strb r5, [r0]\n\ - b _081148D2\n\ + mov r0, r9\n\ + adds r0, 0xC4\n\ + adds r0, r7, r0\n\ + movs r5, 0\n\ + strb r5, [r0]\n\ + b _081148D2\n\ _081148AC:\n\ - mov r0, r9\n\ - adds r0, 0xC4\n\ - adds r0, r7, r0\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - b _081148D2\n\ + mov r0, r9\n\ + adds r0, 0xC4\n\ + adds r0, r7, r0\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + b _081148D2\n\ _081148B8:\n\ - mov r0, r9\n\ - adds r0, 0xC4\n\ - adds r0, r7, r0\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - b _081148D2\n\ + mov r0, r9\n\ + adds r0, 0xC4\n\ + adds r0, r7, r0\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + b _081148D2\n\ _081148C4:\n\ - adds r0, r6, 0\n\ - adds r0, 0xC4\n\ - adds r0, r5, r0\n\ - movs r1, 0x4\n\ - strb r1, [r0]\n\ - adds r2, r3, 0x1\n\ - mov r10, r2\n\ + adds r0, r6, 0\n\ + adds r0, 0xC4\n\ + adds r0, r5, r0\n\ + movs r1, 0x4\n\ + strb r1, [r0]\n\ + adds r2, r3, 0x1\n\ + mov r10, r2\n\ _081148D2:\n\ - ldr r0, _081148F4 @ =0x02014800\n\ - mov r4, r8\n\ - adds r1, r3, r4\n\ - ldr r5, _081148F8 @ =0x000008c4\n\ - adds r2, r0, r5\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - adds r4, r0, 0\n\ - cmp r1, 0xC\n\ - bls _081148E8\n\ - b _08114D76\n\ + ldr r0, _081148F4 @ =0x02014800\n\ + mov r4, r8\n\ + adds r1, r3, r4\n\ + ldr r5, _081148F8 @ =0x000008c4\n\ + adds r2, r0, r5\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + adds r4, r0, 0\n\ + cmp r1, 0xC\n\ + bls _081148E8\n\ + b _08114D76\n\ _081148E8:\n\ - lsls r0, r1, 2\n\ - ldr r1, _081148FC @ =_08114900\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ + lsls r0, r1, 2\n\ + ldr r1, _081148FC @ =_08114900\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ _081148F4: .4byte 0x02014800\n\ _081148F8: .4byte 0x000008c4\n\ _081148FC: .4byte _08114900\n\ - .align 2, 0\n\ + .align 2, 0\n\ _08114900:\n\ - .4byte _08114D76\n\ - .4byte _08114934\n\ - .4byte _081149B8\n\ - .4byte _08114A3C\n\ - .4byte _08114AC0\n\ - .4byte _08114B44\n\ - .4byte _08114B7C\n\ - .4byte _08114BB4\n\ - .4byte _08114BEC\n\ - .4byte _08114C24\n\ - .4byte _08114C78\n\ - .4byte _08114CB8\n\ - .4byte _08114CF8\n\ + .4byte _08114D76\n\ + .4byte _08114934\n\ + .4byte _081149B8\n\ + .4byte _08114A3C\n\ + .4byte _08114AC0\n\ + .4byte _08114B44\n\ + .4byte _08114B7C\n\ + .4byte _08114BB4\n\ + .4byte _08114BEC\n\ + .4byte _08114C24\n\ + .4byte _08114C78\n\ + .4byte _08114CB8\n\ + .4byte _08114CF8\n\ _08114934:\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - lsls r0, r3, 1\n\ - ldr r2, [sp]\n\ - lsls r1, r2, 6\n\ - adds r0, r1\n\ - ldr r5, _081149A8 @ =0x000070c4\n\ - adds r2, r4, r5\n\ - adds r2, r0, r2\n\ - ldr r5, _081149AC @ =0x000090c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - ldr r1, [sp, 0x4]\n\ - cmp r1, r5\n\ - blt _0811496A\n\ - b _08114D76\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + lsls r0, r3, 1\n\ + ldr r2, [sp]\n\ + lsls r1, r2, 6\n\ + adds r0, r1\n\ + ldr r5, _081149A8 @ =0x000070c4\n\ + adds r2, r4, r5\n\ + adds r2, r0, r2\n\ + ldr r5, _081149AC @ =0x000090c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + ldr r1, [sp, 0x4]\n\ + cmp r1, r5\n\ + blt _0811496A\n\ + b _08114D76\n\ _0811496A:\n\ - mov r9, r4\n\ - mov r2, r8\n\ - adds r7, r3, r2\n\ - ldr r0, _081149B0 @ =0x000038c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - movs r3, 0\n\ - ldr r0, _081149B4 @ =0x000028c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r2, r8\n\ + adds r7, r3, r2\n\ + ldr r0, _081149B0 @ =0x000038c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + movs r3, 0\n\ + ldr r0, _081149B4 @ =0x000028c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _0811497E:\n\ - ldrb r0, [r4]\n\ - subs r0, 0x1\n\ - strb r0, [r4]\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldrb r0, [r4]\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _0811499E\n\ - b _08114D4C\n\ + ldrb r0, [r4]\n\ + subs r0, 0x1\n\ + strb r0, [r4]\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldrb r0, [r4]\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _0811499E\n\ + b _08114D4C\n\ _0811499E:\n\ - adds r6, 0x1\n\ - cmp r6, r5\n\ - blt _0811497E\n\ - b _08114D76\n\ - .align 2, 0\n\ + adds r6, 0x1\n\ + cmp r6, r5\n\ + blt _0811497E\n\ + b _08114D76\n\ + .align 2, 0\n\ _081149A8: .4byte 0x000070c4\n\ _081149AC: .4byte 0x000090c4\n\ _081149B0: .4byte 0x000038c4\n\ _081149B4: .4byte 0x000028c4\n\ _081149B8:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r4, _08114A28 @ =0x02014800\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _08114A2C @ =0x000070c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _08114A30 @ =0x000090c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - ldr r1, [sp, 0x4]\n\ - cmp r1, r5\n\ - blt _081149F0\n\ - b _08114D76\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r4, _08114A28 @ =0x02014800\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _08114A2C @ =0x000070c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _08114A30 @ =0x000090c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + ldr r1, [sp, 0x4]\n\ + cmp r1, r5\n\ + blt _081149F0\n\ + b _08114D76\n\ _081149F0:\n\ - mov r9, r4\n\ - mov r2, r8\n\ - adds r7, r3, r2\n\ - ldr r0, _08114A34 @ =0x000038c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _08114A38 @ =0x000028c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r2, r8\n\ + adds r7, r3, r2\n\ + ldr r0, _08114A34 @ =0x000038c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _08114A38 @ =0x000028c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _08114A02:\n\ - ldrb r0, [r4]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _08114A0C\n\ - b _08114D3C\n\ + ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _08114A0C\n\ + b _08114D3C\n\ _08114A0C:\n\ - adds r1, r0, 0\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - bl sub_8114DF0\n\ - ldrb r0, [r4]\n\ - subs r0, 0x1\n\ - strb r0, [r4]\n\ - adds r6, 0x1\n\ - ldr r2, [sp, 0xC]\n\ - cmp r6, r5\n\ - blt _08114A02\n\ - b _08114D76\n\ - .align 2, 0\n\ + adds r1, r0, 0\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + bl sub_8114DF0\n\ + ldrb r0, [r4]\n\ + subs r0, 0x1\n\ + strb r0, [r4]\n\ + adds r6, 0x1\n\ + ldr r2, [sp, 0xC]\n\ + cmp r6, r5\n\ + blt _08114A02\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114A28: .4byte 0x02014800\n\ _08114A2C: .4byte 0x000070c4\n\ _08114A30: .4byte 0x000090c4\n\ _08114A34: .4byte 0x000038c4\n\ _08114A38: .4byte 0x000028c4\n\ _08114A3C:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _08114AB0 @ =0x000070c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _08114AB4 @ =0x000090c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - ldr r1, [sp, 0x4]\n\ - cmp r1, r5\n\ - blt _08114A72\n\ - b _08114D76\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _08114AB0 @ =0x000070c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _08114AB4 @ =0x000090c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + ldr r1, [sp, 0x4]\n\ + cmp r1, r5\n\ + blt _08114A72\n\ + b _08114D76\n\ _08114A72:\n\ - mov r9, r4\n\ - mov r2, r8\n\ - adds r7, r3, r2\n\ - ldr r0, _08114AB8 @ =0x000038c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - movs r3, 0\n\ - ldr r0, _08114ABC @ =0x000028c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r2, r8\n\ + adds r7, r3, r2\n\ + ldr r0, _08114AB8 @ =0x000038c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + movs r3, 0\n\ + ldr r0, _08114ABC @ =0x000028c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _08114A86:\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - str r3, [sp, 0x10]\n\ - bl sub_8114DB4\n\ - ldrb r0, [r4]\n\ - ldr r2, [sp, 0xC]\n\ - ldr r3, [sp, 0x10]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _08114AA6\n\ - b _08114D4C\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + str r3, [sp, 0x10]\n\ + bl sub_8114DB4\n\ + ldrb r0, [r4]\n\ + ldr r2, [sp, 0xC]\n\ + ldr r3, [sp, 0x10]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _08114AA6\n\ + b _08114D4C\n\ _08114AA6:\n\ - adds r6, 0x1\n\ - cmp r6, r5\n\ - blt _08114A86\n\ - b _08114D76\n\ - .align 2, 0\n\ + adds r6, 0x1\n\ + cmp r6, r5\n\ + blt _08114A86\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114AB0: .4byte 0x000070c4\n\ _08114AB4: .4byte 0x000090c4\n\ _08114AB8: .4byte 0x000038c4\n\ _08114ABC: .4byte 0x000028c4\n\ _08114AC0:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r4, _08114B30 @ =0x02014800\n\ - lsls r0, r3, 1\n\ - ldr r5, [sp]\n\ - lsls r1, r5, 6\n\ - adds r0, r1\n\ - ldr r1, _08114B34 @ =0x000070c4\n\ - adds r2, r4, r1\n\ - adds r2, r0, r2\n\ - ldr r5, _08114B38 @ =0x000090c4\n\ - adds r1, r4, r5\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldrh r0, [r2]\n\ - adds r1, r0\n\ - movs r0, 0xFF\n\ - lsls r0, 8\n\ - ands r0, r1\n\ - lsrs r5, r0, 8\n\ - movs r0, 0xFF\n\ - ands r1, r0\n\ - strh r1, [r2]\n\ - movs r6, 0\n\ - ldr r1, [sp, 0x4]\n\ - cmp r1, r5\n\ - blt _08114AF8\n\ - b _08114D76\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r4, _08114B30 @ =0x02014800\n\ + lsls r0, r3, 1\n\ + ldr r5, [sp]\n\ + lsls r1, r5, 6\n\ + adds r0, r1\n\ + ldr r1, _08114B34 @ =0x000070c4\n\ + adds r2, r4, r1\n\ + adds r2, r0, r2\n\ + ldr r5, _08114B38 @ =0x000090c4\n\ + adds r1, r4, r5\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldrh r0, [r2]\n\ + adds r1, r0\n\ + movs r0, 0xFF\n\ + lsls r0, 8\n\ + ands r0, r1\n\ + lsrs r5, r0, 8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r2]\n\ + movs r6, 0\n\ + ldr r1, [sp, 0x4]\n\ + cmp r1, r5\n\ + blt _08114AF8\n\ + b _08114D76\n\ _08114AF8:\n\ - mov r9, r4\n\ - mov r2, r8\n\ - adds r7, r3, r2\n\ - ldr r0, _08114B3C @ =0x000038c4\n\ - add r0, r9\n\ - adds r4, r7, r0\n\ - ldr r0, _08114B40 @ =0x000028c4\n\ - add r0, r9\n\ - adds r2, r7, r0\n\ + mov r9, r4\n\ + mov r2, r8\n\ + adds r7, r3, r2\n\ + ldr r0, _08114B3C @ =0x000038c4\n\ + add r0, r9\n\ + adds r4, r7, r0\n\ + ldr r0, _08114B40 @ =0x000028c4\n\ + add r0, r9\n\ + adds r2, r7, r0\n\ _08114B0A:\n\ - ldrb r0, [r4]\n\ - ldrb r1, [r2]\n\ - cmp r0, r1\n\ - bne _08114B14\n\ - b _08114D5C\n\ + ldrb r0, [r4]\n\ + ldrb r1, [r2]\n\ + cmp r0, r1\n\ + bne _08114B14\n\ + b _08114D5C\n\ _08114B14:\n\ - adds r1, r0, 0\n\ - ldr r0, [sp]\n\ - str r2, [sp, 0xC]\n\ - bl sub_8114DF0\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - adds r6, 0x1\n\ - ldr r2, [sp, 0xC]\n\ - cmp r6, r5\n\ - blt _08114B0A\n\ - b _08114D76\n\ - .align 2, 0\n\ + adds r1, r0, 0\n\ + ldr r0, [sp]\n\ + str r2, [sp, 0xC]\n\ + bl sub_8114DF0\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + adds r6, 0x1\n\ + ldr r2, [sp, 0xC]\n\ + cmp r6, r5\n\ + blt _08114B0A\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114B30: .4byte 0x02014800\n\ _08114B34: .4byte 0x000070c4\n\ _08114B38: .4byte 0x000090c4\n\ _08114B3C: .4byte 0x000038c4\n\ _08114B40: .4byte 0x000028c4\n\ _08114B44:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r5, _08114B70 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114B74 @ =0x000038c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08114B64\n\ - b _08114D76\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r5, _08114B70 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114B74 @ =0x000038c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08114B64\n\ + b _08114D76\n\ _08114B64:\n\ - ldr r2, _08114B78 @ =0x000008c4\n\ - adds r0, r5, r2\n\ - adds r0, r4, r0\n\ - movs r1, 0x9\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r2, _08114B78 @ =0x000008c4\n\ + adds r0, r5, r2\n\ + adds r0, r4, r0\n\ + movs r1, 0x9\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114B70: .4byte 0x02014800\n\ _08114B74: .4byte 0x000038c4\n\ _08114B78: .4byte 0x000008c4\n\ _08114B7C:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _08114BA8 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114BAC @ =0x000038c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08114B9C\n\ - b _08114D76\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _08114BA8 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114BAC @ =0x000038c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08114B9C\n\ + b _08114D76\n\ _08114B9C:\n\ - ldr r2, _08114BB0 @ =0x000008c4\n\ - adds r0, r5, r2\n\ - adds r0, r4, r0\n\ - movs r1, 0xA\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r2, _08114BB0 @ =0x000008c4\n\ + adds r0, r5, r2\n\ + adds r0, r4, r0\n\ + movs r1, 0xA\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114BA8: .4byte 0x02014800\n\ _08114BAC: .4byte 0x000038c4\n\ _08114BB0: .4byte 0x000008c4\n\ _08114BB4:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _08114BE0 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114BE4 @ =0x000038c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08114BD4\n\ - b _08114D76\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _08114BE0 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114BE4 @ =0x000038c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08114BD4\n\ + b _08114D76\n\ _08114BD4:\n\ - ldr r2, _08114BE8 @ =0x000008c4\n\ - adds r0, r5, r2\n\ - adds r0, r4, r0\n\ - movs r1, 0xB\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r2, _08114BE8 @ =0x000008c4\n\ + adds r0, r5, r2\n\ + adds r0, r4, r0\n\ + movs r1, 0xB\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114BE0: .4byte 0x02014800\n\ _08114BE4: .4byte 0x000038c4\n\ _08114BE8: .4byte 0x000008c4\n\ _08114BEC:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r5, _08114C18 @ =0x02014800\n\ - mov r0, r8\n\ - adds r4, r3, r0\n\ - ldr r1, _08114C1C @ =0x000038c4\n\ - adds r0, r5, r1\n\ - adds r0, r4, r0\n\ - ldrb r1, [r0]\n\ - ldr r0, [sp]\n\ - bl sub_8114E48\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08114C0C\n\ - b _08114D76\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r5, _08114C18 @ =0x02014800\n\ + mov r0, r8\n\ + adds r4, r3, r0\n\ + ldr r1, _08114C1C @ =0x000038c4\n\ + adds r0, r5, r1\n\ + adds r0, r4, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [sp]\n\ + bl sub_8114E48\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08114C0C\n\ + b _08114D76\n\ _08114C0C:\n\ - ldr r2, _08114C20 @ =0x000008c4\n\ - adds r0, r5, r2\n\ - adds r0, r4, r0\n\ - movs r1, 0xC\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r2, _08114C20 @ =0x000008c4\n\ + adds r0, r5, r2\n\ + adds r0, r4, r0\n\ + movs r1, 0xC\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114C18: .4byte 0x02014800\n\ _08114C1C: .4byte 0x000038c4\n\ _08114C20: .4byte 0x000008c4\n\ _08114C24:\n\ - movs r4, 0\n\ - str r4, [sp, 0x4]\n\ - ldr r6, _08114C58 @ =0x02014800\n\ - mov r0, r8\n\ - adds r5, r3, r0\n\ - ldr r1, _08114C5C @ =0x000038c4\n\ - adds r4, r6, r1\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - bl sub_8114DB4\n\ - ldr r2, _08114C60 @ =0x000028c4\n\ - adds r0, r6, r2\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - bne _08114C68\n\ - ldr r4, _08114C64 @ =0x000008c4\n\ - adds r0, r6, r4\n\ - adds r0, r5, r0\n\ - mov r5, sp\n\ - ldrb r5, [r5, 0x4]\n\ - strb r5, [r0]\n\ - b _08114D76\n\ - .align 2, 0\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r6, _08114C58 @ =0x02014800\n\ + mov r0, r8\n\ + adds r5, r3, r0\n\ + ldr r1, _08114C5C @ =0x000038c4\n\ + adds r4, r6, r1\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + bl sub_8114DB4\n\ + ldr r2, _08114C60 @ =0x000028c4\n\ + adds r0, r6, r2\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + bne _08114C68\n\ + ldr r4, _08114C64 @ =0x000008c4\n\ + adds r0, r6, r4\n\ + adds r0, r5, r0\n\ + mov r5, sp\n\ + ldrb r5, [r5, 0x4]\n\ + strb r5, [r0]\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114C58: .4byte 0x02014800\n\ _08114C5C: .4byte 0x000038c4\n\ _08114C60: .4byte 0x000028c4\n\ _08114C64: .4byte 0x000008c4\n\ _08114C68:\n\ - ldr r1, _08114C74 @ =0x000008c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - movs r1, 0x1\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r1, _08114C74 @ =0x000008c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + movs r1, 0x1\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114C74: .4byte 0x000008c4\n\ _08114C78:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r6, _08114CA8 @ =0x02014800\n\ - mov r4, r8\n\ - adds r5, r3, r4\n\ - ldr r0, _08114CAC @ =0x000038c4\n\ - adds r4, r6, r0\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - bl sub_8114DF0\n\ - ldr r1, _08114CB0 @ =0x000028c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - beq _08114D1E\n\ - ldr r1, _08114CB4 @ =0x000008c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - movs r1, 0x2\n\ - b _08114D74\n\ - .align 2, 0\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r6, _08114CA8 @ =0x02014800\n\ + mov r4, r8\n\ + adds r5, r3, r4\n\ + ldr r0, _08114CAC @ =0x000038c4\n\ + adds r4, r6, r0\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + bl sub_8114DF0\n\ + ldr r1, _08114CB0 @ =0x000028c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + beq _08114D1E\n\ + ldr r1, _08114CB4 @ =0x000008c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + movs r1, 0x2\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114CA8: .4byte 0x02014800\n\ _08114CAC: .4byte 0x000038c4\n\ _08114CB0: .4byte 0x000028c4\n\ _08114CB4: .4byte 0x000008c4\n\ _08114CB8:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r6, _08114CE8 @ =0x02014800\n\ - mov r4, r8\n\ - adds r5, r3, r4\n\ - ldr r0, _08114CEC @ =0x000038c4\n\ - adds r4, r6, r0\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - bl sub_8114DB4\n\ - ldr r1, _08114CF0 @ =0x000028c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - beq _08114D1E\n\ - ldr r1, _08114CF4 @ =0x000008c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - movs r1, 0x3\n\ - b _08114D74\n\ - .align 2, 0\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r6, _08114CE8 @ =0x02014800\n\ + mov r4, r8\n\ + adds r5, r3, r4\n\ + ldr r0, _08114CEC @ =0x000038c4\n\ + adds r4, r6, r0\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + bl sub_8114DB4\n\ + ldr r1, _08114CF0 @ =0x000028c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + beq _08114D1E\n\ + ldr r1, _08114CF4 @ =0x000008c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + movs r1, 0x3\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114CE8: .4byte 0x02014800\n\ _08114CEC: .4byte 0x000038c4\n\ _08114CF0: .4byte 0x000028c4\n\ _08114CF4: .4byte 0x000008c4\n\ _08114CF8:\n\ - movs r2, 0\n\ - str r2, [sp, 0x4]\n\ - ldr r6, _08114D2C @ =0x02014800\n\ - mov r4, r8\n\ - adds r5, r3, r4\n\ - ldr r0, _08114D30 @ =0x000038c4\n\ - adds r4, r6, r0\n\ - adds r4, r5, r4\n\ - ldrb r1, [r4]\n\ - ldr r0, [sp]\n\ - bl sub_8114DF0\n\ - ldr r1, _08114D34 @ =0x000028c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - ldrb r1, [r4]\n\ - ldrb r0, [r0]\n\ - cmp r1, r0\n\ - bne _08114D6C\n\ + movs r2, 0\n\ + str r2, [sp, 0x4]\n\ + ldr r6, _08114D2C @ =0x02014800\n\ + mov r4, r8\n\ + adds r5, r3, r4\n\ + ldr r0, _08114D30 @ =0x000038c4\n\ + adds r4, r6, r0\n\ + adds r4, r5, r4\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + bl sub_8114DF0\n\ + ldr r1, _08114D34 @ =0x000028c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + ldrb r1, [r4]\n\ + ldrb r0, [r0]\n\ + cmp r1, r0\n\ + bne _08114D6C\n\ _08114D1E:\n\ - ldr r2, _08114D38 @ =0x000008c4\n\ - adds r0, r6, r2\n\ - adds r0, r5, r0\n\ - mov r4, sp\n\ - ldrb r4, [r4, 0x4]\n\ - strb r4, [r0]\n\ - b _08114D76\n\ - .align 2, 0\n\ + ldr r2, _08114D38 @ =0x000008c4\n\ + adds r0, r6, r2\n\ + adds r0, r5, r0\n\ + mov r4, sp\n\ + ldrb r4, [r4, 0x4]\n\ + strb r4, [r0]\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114D2C: .4byte 0x02014800\n\ _08114D30: .4byte 0x000038c4\n\ _08114D34: .4byte 0x000028c4\n\ _08114D38: .4byte 0x000008c4\n\ _08114D3C:\n\ - ldr r0, _08114D48 @ =0x000008c4\n\ - add r0, r9\n\ - adds r0, r7, r0\n\ - movs r1, 0\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r0, _08114D48 @ =0x000008c4\n\ + add r0, r9\n\ + adds r0, r7, r0\n\ + movs r1, 0\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114D48: .4byte 0x000008c4\n\ _08114D4C:\n\ - ldr r0, _08114D58 @ =0x000008c4\n\ - add r0, r9\n\ - adds r0, r7, r0\n\ - strb r3, [r0]\n\ - b _08114D76\n\ - .align 2, 0\n\ + ldr r0, _08114D58 @ =0x000008c4\n\ + add r0, r9\n\ + adds r0, r7, r0\n\ + strb r3, [r0]\n\ + b _08114D76\n\ + .align 2, 0\n\ _08114D58: .4byte 0x000008c4\n\ _08114D5C:\n\ - ldr r0, _08114D68 @ =0x000008c4\n\ - add r0, r9\n\ - adds r0, r7, r0\n\ - movs r1, 0\n\ - b _08114D74\n\ - .align 2, 0\n\ + ldr r0, _08114D68 @ =0x000008c4\n\ + add r0, r9\n\ + adds r0, r7, r0\n\ + movs r1, 0\n\ + b _08114D74\n\ + .align 2, 0\n\ _08114D68: .4byte 0x000008c4\n\ _08114D6C:\n\ - ldr r1, _08114DAC @ =0x000008c4\n\ - adds r0, r6, r1\n\ - adds r0, r5, r0\n\ - movs r1, 0x4\n\ + ldr r1, _08114DAC @ =0x000008c4\n\ + adds r0, r6, r1\n\ + adds r0, r5, r0\n\ + movs r1, 0x4\n\ _08114D74:\n\ - strb r1, [r0]\n\ + strb r1, [r0]\n\ _08114D76:\n\ - mov r3, r10\n\ - ldr r2, _08114DB0 @ =0x02014800\n\ - adds r0, r2, 0\n\ - adds r0, 0x84\n\ - ldr r4, [sp]\n\ - adds r0, r4, r0\n\ - adds r4, r2, 0\n\ + mov r3, r10\n\ + ldr r2, _08114DB0 @ =0x02014800\n\ + adds r0, r2, 0\n\ + adds r0, 0x84\n\ + ldr r4, [sp]\n\ + adds r0, r4, r0\n\ + adds r4, r2, 0\n\ _08114D84:\n\ - ldrb r0, [r0]\n\ - cmp r3, r0\n\ - bge _08114D8E\n\ - bl _08114410\n\ + ldrb r0, [r0]\n\ + cmp r3, r0\n\ + bge _08114D8E\n\ + bl _08114410\n\ _08114D8E:\n\ - ldr r5, [sp, 0x8]\n\ - str r5, [sp]\n\ - cmp r5, 0x3F\n\ - bgt _08114D9A\n\ - bl _081143F2\n\ + ldr r5, [sp, 0x8]\n\ + str r5, [sp]\n\ + cmp r5, 0x3F\n\ + bgt _08114D9A\n\ + bl _081143F2\n\ _08114D9A:\n\ - ldr r0, [sp, 0x4]\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + ldr r0, [sp, 0x4]\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08114DAC: .4byte 0x000008c4\n\ _08114DB0: .4byte 0x02014800\n\ .syntax divided"); } -__attribute__((naked)) -void sub_8114DB4() +void sub_8114DB4(u32 a, u8 b) { - asm(".syntax unified\n\ - push {lr}\n\ - lsls r1, 24\n\ - lsrs r3, r1, 24\n\ - ldr r2, _08114DDC @ =0x02014800\n\ - lsrs r1, 25\n\ - lsls r1, 2\n\ - lsls r0, 7\n\ - adds r1, r0\n\ - ldr r0, _08114DE0 @ =0x000040c4\n\ - adds r2, r0\n\ - adds r1, r2\n\ - ldr r2, [r1]\n\ - movs r0, 0x1\n\ - ands r3, r0\n\ - cmp r3, 0\n\ - beq _08114DE4\n\ - ldrb r0, [r2]\n\ - movs r1, 0xF0\n\ - b _08114DE8\n\ - .align 2, 0\n\ -_08114DDC: .4byte 0x02014800\n\ -_08114DE0: .4byte 0x000040c4\n\ -_08114DE4:\n\ - ldrb r0, [r2]\n\ - movs r1, 0xF\n\ -_08114DE8:\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); + u8 *r2 = sEvoInfo.unk40C4[a][b / 2]; + + if (b % 2 != 0) + *r2 |= 0xF0; + else + *r2 |= 0x0F; } -__attribute__((naked)) -void sub_8114DF0() +void sub_8114DF0(u32 a, u8 b) { - asm(".syntax unified\n\ - push {lr}\n\ - lsls r1, 24\n\ - lsrs r3, r1, 24\n\ - ldr r2, _08114E28 @ =0x02014800\n\ - lsrs r1, 25\n\ - lsls r1, 2\n\ - lsls r0, 7\n\ - adds r1, r0\n\ - ldr r0, _08114E2C @ =0x000040c4\n\ - adds r2, r0\n\ - adds r1, r2\n\ - ldr r2, [r1]\n\ - movs r0, 0xC0\n\ - lsls r0, 7\n\ - adds r1, r2, r0\n\ - movs r0, 0x1\n\ - ands r3, r0\n\ - cmp r3, 0\n\ - beq _08114E30\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08114E42\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF\n\ - b _08114E3E\n\ - .align 2, 0\n\ -_08114E28: .4byte 0x02014800\n\ -_08114E2C: .4byte 0x000040c4\n\ -_08114E30:\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08114E42\n\ - ldrb r1, [r2]\n\ - movs r0, 0xF0\n\ -_08114E3E:\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ -_08114E42:\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); + u8 *r2 = sEvoInfo.unk40C4[a][b / 2]; + u8 *r1 = r2 + 0x6000; + + if (b % 2 != 0) + { + if (!(*r1 & 0xF0)) + *r2 &= 0x0F; + } + else + { + if (!(*r1 & 0x0F)) + *r2 &= 0xF0; + } } __attribute__((naked)) @@ -3632,218 +3700,218 @@ void sub_8114E48() { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - adds r4, r0, 0\n\ - lsls r1, 24\n\ - lsrs r6, r1, 24\n\ - ldr r1, _08114E6C @ =0x02014800\n\ - ldr r2, _08114E70 @ =0x0000a0c4\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r5, r1, 0\n\ - cmp r0, 0\n\ - bne _08114E60\n\ - b _08114F5E\n\ + adds r4, r0, 0\n\ + lsls r1, 24\n\ + lsrs r6, r1, 24\n\ + ldr r1, _08114E6C @ =0x02014800\n\ + ldr r2, _08114E70 @ =0x0000a0c4\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r5, r1, 0\n\ + cmp r0, 0\n\ + bne _08114E60\n\ + b _08114F5E\n\ _08114E60:\n\ - movs r1, 0\n\ - movs r3, 0\n\ - cmp r4, 0\n\ - bne _08114E74\n\ - movs r1, 0x1\n\ - b _08114EA6\n\ - .align 2, 0\n\ + movs r1, 0\n\ + movs r3, 0\n\ + cmp r4, 0\n\ + bne _08114E74\n\ + movs r1, 0x1\n\ + b _08114EA6\n\ + .align 2, 0\n\ _08114E6C: .4byte 0x02014800\n\ _08114E70: .4byte 0x0000a0c4\n\ _08114E74:\n\ - subs r0, r4, 0x1\n\ - lsls r0, 5\n\ - adds r2, r3, r0\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08114EA6\n\ - ldr r7, _08114EC4 @ =0x000008c4\n\ - adds r0, r5, r7\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08114EA6\n\ - adds r3, 0x1\n\ - cmp r3, 0x1F\n\ - bgt _08114EA6\n\ - cmp r4, 0\n\ - bne _08114E74\n\ - lsls r0, r1, 24\n\ - movs r1, 0x80\n\ - lsls r1, 17\n\ - adds r0, r1\n\ - lsrs r1, r0, 24\n\ + subs r0, r4, 0x1\n\ + lsls r0, 5\n\ + adds r2, r3, r0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08114EA6\n\ + ldr r7, _08114EC4 @ =0x000008c4\n\ + adds r0, r5, r7\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08114EA6\n\ + adds r3, 0x1\n\ + cmp r3, 0x1F\n\ + bgt _08114EA6\n\ + cmp r4, 0\n\ + bne _08114E74\n\ + lsls r0, r1, 24\n\ + movs r1, 0x80\n\ + lsls r1, 17\n\ + adds r0, r1\n\ + lsrs r1, r0, 24\n\ _08114EA6:\n\ - cmp r3, 0x20\n\ - bne _08114EB4\n\ - lsls r0, r1, 24\n\ - movs r2, 0x80\n\ - lsls r2, 17\n\ - adds r0, r2\n\ - lsrs r1, r0, 24\n\ + cmp r3, 0x20\n\ + bne _08114EB4\n\ + lsls r0, r1, 24\n\ + movs r2, 0x80\n\ + lsls r2, 17\n\ + adds r0, r2\n\ + lsrs r1, r0, 24\n\ _08114EB4:\n\ - movs r3, 0\n\ - cmp r4, 0x3F\n\ - bne _08114EC8\n\ - lsls r0, r1, 24\n\ - movs r7, 0x80\n\ - lsls r7, 17\n\ - adds r0, r7\n\ - b _08114EF8\n\ - .align 2, 0\n\ + movs r3, 0\n\ + cmp r4, 0x3F\n\ + bne _08114EC8\n\ + lsls r0, r1, 24\n\ + movs r7, 0x80\n\ + lsls r7, 17\n\ + adds r0, r7\n\ + b _08114EF8\n\ + .align 2, 0\n\ _08114EC4: .4byte 0x000008c4\n\ _08114EC8:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 5\n\ - adds r2, r3, r0\n\ - adds r0, r5, 0\n\ - adds r0, 0xC4\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08114EFA\n\ - ldr r7, _08114F64 @ =0x000008c4\n\ - adds r0, r5, r7\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _08114EFA\n\ - adds r3, 0x1\n\ - cmp r3, 0x1F\n\ - bgt _08114EFA\n\ - cmp r4, 0x3F\n\ - bne _08114EC8\n\ - lsls r0, r1, 24\n\ - movs r1, 0x80\n\ - lsls r1, 17\n\ - adds r0, r1\n\ + adds r0, r4, 0x1\n\ + lsls r0, 5\n\ + adds r2, r3, r0\n\ + adds r0, r5, 0\n\ + adds r0, 0xC4\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08114EFA\n\ + ldr r7, _08114F64 @ =0x000008c4\n\ + adds r0, r5, r7\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08114EFA\n\ + adds r3, 0x1\n\ + cmp r3, 0x1F\n\ + bgt _08114EFA\n\ + cmp r4, 0x3F\n\ + bne _08114EC8\n\ + lsls r0, r1, 24\n\ + movs r1, 0x80\n\ + lsls r1, 17\n\ + adds r0, r1\n\ _08114EF8:\n\ - lsrs r1, r0, 24\n\ + lsrs r1, r0, 24\n\ _08114EFA:\n\ - cmp r3, 0x20\n\ - bne _08114F08\n\ - lsls r0, r1, 24\n\ - movs r2, 0x80\n\ - lsls r2, 17\n\ - adds r0, r2\n\ - lsrs r1, r0, 24\n\ + cmp r3, 0x20\n\ + bne _08114F08\n\ + lsls r0, r1, 24\n\ + movs r2, 0x80\n\ + lsls r2, 17\n\ + adds r0, r2\n\ + lsrs r1, r0, 24\n\ _08114F08:\n\ - cmp r1, 0x2\n\ - beq _08114F5E\n\ - subs r0, r6, 0x2\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r0, 0\n\ - bge _08114F18\n\ - movs r1, 0\n\ + cmp r1, 0x2\n\ + beq _08114F5E\n\ + subs r0, r6, 0x2\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r0, 0\n\ + bge _08114F18\n\ + movs r1, 0\n\ _08114F18:\n\ - adds r0, r6, 0x2\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3F\n\ - ble _08114F26\n\ - movs r2, 0x3F\n\ + adds r0, r6, 0x2\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3F\n\ + ble _08114F26\n\ + movs r2, 0x3F\n\ _08114F26:\n\ - lsls r1, 24\n\ - asrs r3, r1, 24\n\ - lsls r0, r2, 24\n\ - asrs r2, r0, 24\n\ - adds r6, r1, 0\n\ - adds r7, r0, 0\n\ - cmp r3, r2\n\ - bge _08114F7C\n\ - cmp r4, 0\n\ - beq _08114F7C\n\ - subs r0, r4, 0x1\n\ - lsls r5, r0, 7\n\ - ldr r0, _08114F68 @ =0x020188c4\n\ - mov r12, r0\n\ + lsls r1, 24\n\ + asrs r3, r1, 24\n\ + lsls r0, r2, 24\n\ + asrs r2, r0, 24\n\ + adds r6, r1, 0\n\ + adds r7, r0, 0\n\ + cmp r3, r2\n\ + bge _08114F7C\n\ + cmp r4, 0\n\ + beq _08114F7C\n\ + subs r0, r4, 0x1\n\ + lsls r5, r0, 7\n\ + ldr r0, _08114F68 @ =0x020188c4\n\ + mov r12, r0\n\ _08114F42:\n\ - asrs r0, r3, 1\n\ - lsls r0, 2\n\ - adds r0, r5\n\ - add r0, r12\n\ - ldr r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08114F6C\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF0\n\ + asrs r0, r3, 1\n\ + lsls r0, 2\n\ + adds r0, r5\n\ + add r0, r12\n\ + ldr r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08114F6C\n\ + ldrb r1, [r1]\n\ + movs r0, 0xF0\n\ _08114F58:\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08114F72\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08114F72\n\ _08114F5E:\n\ - movs r0, 0x1\n\ - b _08114FCA\n\ - .align 2, 0\n\ + movs r0, 0x1\n\ + b _08114FCA\n\ + .align 2, 0\n\ _08114F64: .4byte 0x000008c4\n\ _08114F68: .4byte 0x020188c4\n\ _08114F6C:\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF\n\ - b _08114F58\n\ + ldrb r1, [r1]\n\ + movs r0, 0xF\n\ + b _08114F58\n\ _08114F72:\n\ - adds r3, 0x1\n\ - cmp r3, r2\n\ - bge _08114F7C\n\ - cmp r4, 0\n\ - bne _08114F42\n\ + adds r3, 0x1\n\ + cmp r3, r2\n\ + bge _08114F7C\n\ + cmp r4, 0\n\ + bne _08114F42\n\ _08114F7C:\n\ - asrs r3, r6, 24\n\ - asrs r1, r7, 24\n\ - cmp r3, r1\n\ - bge _08114FC8\n\ - cmp r4, 0x3F\n\ - beq _08114FC8\n\ - adds r0, r4, 0x1\n\ - lsls r5, r0, 7\n\ - ldr r6, _08114FB0 @ =0x020188c4\n\ - adds r2, r1, 0\n\ + asrs r3, r6, 24\n\ + asrs r1, r7, 24\n\ + cmp r3, r1\n\ + bge _08114FC8\n\ + cmp r4, 0x3F\n\ + beq _08114FC8\n\ + adds r0, r4, 0x1\n\ + lsls r5, r0, 7\n\ + ldr r6, _08114FB0 @ =0x020188c4\n\ + adds r2, r1, 0\n\ _08114F90:\n\ - asrs r0, r3, 1\n\ - lsls r0, 2\n\ - adds r0, r5\n\ - adds r0, r6\n\ - ldr r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08114FB4\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08114FBE\n\ - b _08114F5E\n\ - .align 2, 0\n\ + asrs r0, r3, 1\n\ + lsls r0, 2\n\ + adds r0, r5\n\ + adds r0, r6\n\ + ldr r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08114FB4\n\ + ldrb r1, [r1]\n\ + movs r0, 0xF0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08114FBE\n\ + b _08114F5E\n\ + .align 2, 0\n\ _08114FB0: .4byte 0x020188c4\n\ _08114FB4:\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08114F5E\n\ + ldrb r1, [r1]\n\ + movs r0, 0xF\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08114F5E\n\ _08114FBE:\n\ - adds r3, 0x1\n\ - cmp r3, r2\n\ - bge _08114FC8\n\ - cmp r4, 0x3F\n\ - bne _08114F90\n\ + adds r3, 0x1\n\ + cmp r3, r2\n\ + bge _08114FC8\n\ + cmp r4, 0x3F\n\ + bne _08114F90\n\ _08114FC8:\n\ - movs r0, 0\n\ + movs r0, 0\n\ _08114FCA:\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ .syntax divided"); } |