diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/battle_script_commands.s |
first commit
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r-- | asm/battle_script_commands.s | 33196 |
1 files changed, 33196 insertions, 0 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s new file mode 100644 index 000000000..831a93b4e --- /dev/null +++ b/asm/battle_script_commands.s @@ -0,0 +1,33196 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_801D760 +sub_801D760: @ 801D760 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, _0801D77C @ =gUnknown_2023E8A + ldrb r0, [r0] + cmp r0, 0 + beq _0801D784 + ldr r1, _0801D780 @ =gUnknown_2023BE3 + movs r0, 0xC + strb r0, [r1] + b _0801DAFC + .align 2, 0 +_0801D77C: .4byte gUnknown_2023E8A +_0801D780: .4byte gUnknown_2023BE3 +_0801D784: + ldr r2, _0801D7B4 @ =gUnknown_2023BE4 + ldr r0, _0801D7B8 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0801D7C8 + ldr r2, _0801D7BC @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _0801D7C8 + movs r0, 0x80 + lsls r0, 12 + orrs r1, r0 + str r1, [r2] + ldr r1, _0801D7C0 @ =gUnknown_2023D74 + ldr r0, _0801D7C4 @ =gUnknown_81D694E + b _0801DAFA + .align 2, 0 +_0801D7B4: .4byte gUnknown_2023BE4 +_0801D7B8: .4byte gUnknown_2023D6B +_0801D7BC: .4byte gUnknown_2023DD0 +_0801D7C0: .4byte gUnknown_2023D74 +_0801D7C4: .4byte gUnknown_81D694E +_0801D7C8: + bl sub_80192D4 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0801D7D6 + b _0801DAFC +_0801D7D6: + ldr r0, _0801D844 @ =gUnknown_2023D6C + ldrb r1, [r0] + str r2, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _0801D7EE + b _0801DAFC +_0801D7EE: + ldr r4, _0801D848 @ =gUnknown_2023BE4 + ldr r0, _0801D84C @ =gUnknown_2023D48 + ldrb r1, [r0] + ldr r3, _0801D850 @ =gUnknown_2023D6B + ldrb r2, [r3] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r0, r4, 0 + adds r0, 0x24 + adds r1, r0 + ldrb r0, [r1] + ldr r5, _0801D854 @ =gUnknown_2023DD0 + cmp r0, 0 + bne _0801D86C + ldr r0, _0801D858 @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xA5 + beq _0801D86C + ldr r0, [r5] + ldr r1, _0801D85C @ =0x00800200 + ands r0, r1 + cmp r0, 0 + bne _0801D86C + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _0801D86C + ldr r1, _0801D860 @ =gUnknown_2023D74 + ldr r0, _0801D864 @ =gUnknown_81D8EA8 + str r0, [r1] + ldr r2, _0801D868 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + b _0801DAFC + .align 2, 0 +_0801D844: .4byte gUnknown_2023D6C +_0801D848: .4byte gUnknown_2023BE4 +_0801D84C: .4byte gUnknown_2023D48 +_0801D850: .4byte gUnknown_2023D6B +_0801D854: .4byte gUnknown_2023DD0 +_0801D858: .4byte gUnknown_2023D4A +_0801D85C: .4byte 0x00800200 +_0801D860: .4byte gUnknown_2023D74 +_0801D864: .4byte gUnknown_81D8EA8 +_0801D868: .4byte gUnknown_2023DCC +_0801D86C: + ldr r0, [r5] + ldr r1, _0801D8B0 @ =0xff7fffff + ands r0, r1 + str r0, [r5] + movs r6, 0x80 + lsls r6, 18 + ands r0, r6 + cmp r0, 0 + bne _0801D8C4 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r4, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _0801D8C4 + bl sub_801D438 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0801D8C4 + cmp r2, 0x2 + bne _0801D8B4 + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + b _0801DAFC + .align 2, 0 +_0801D8B0: .4byte 0xff7fffff +_0801D8B4: + ldr r0, _0801D8C0 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0801DAFC + .align 2, 0 +_0801D8C0: .4byte gUnknown_2023DCC +_0801D8C4: + ldr r2, _0801D928 @ =gUnknown_2023DD0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r2, _0801D92C @ =gUnknown_2023E8C + ldr r1, _0801D930 @ =gUnknown_2023D6C + ldrb r3, [r1] + lsls r0, r3, 4 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 27 + mov r8, r1 + mov r9, r2 + cmp r0, 0 + bge _0801D94C + ldr r2, _0801D934 @ =gUnknown_8250C04 + ldr r0, _0801D938 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801D94C + ldr r0, _0801D93C @ =gUnknown_2023D6B + ldrb r0, [r0] + ldr r2, _0801D940 @ =0x00000115 + adds r1, r3, 0 + bl sub_8016EC8 + mov r0, r8 + ldrb r1, [r0] + lsls r1, 4 + add r1, r9 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl sub_8017544 + ldr r1, _0801D944 @ =gUnknown_2023D74 + ldr r0, _0801D948 @ =gUnknown_81D8FAA + b _0801DAFA + .align 2, 0 +_0801D928: .4byte gUnknown_2023DD0 +_0801D92C: .4byte gUnknown_2023E8C +_0801D930: .4byte gUnknown_2023D6C +_0801D934: .4byte gUnknown_8250C04 +_0801D938: .4byte gUnknown_2023D4A +_0801D93C: .4byte gUnknown_2023D6B +_0801D940: .4byte 0x00000115 +_0801D944: .4byte gUnknown_2023D74 +_0801D948: .4byte gUnknown_81D8FAA +_0801D94C: + movs r2, 0 + ldr r0, _0801D9C8 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r2, r0 + bge _0801D98E + ldr r6, _0801D9CC @ =gUnknown_2023E8C + ldr r1, _0801D9D0 @ =gUnknown_8250C04 + mov r12, r1 + adds r5, r0, 0 + ldr r7, _0801D9D4 @ =gUnknown_2023BDE +_0801D960: + adds r4, r2, r7 + ldrb r3, [r4] + lsls r0, r3, 4 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0801D988 + ldr r0, _0801D9D8 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r1, [r0, 0x8] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801D988 + b _0801DAB4 +_0801D988: + adds r2, 0x1 + cmp r2, r5 + blt _0801D960 +_0801D98E: + ldr r0, _0801D9DC @ =gUnknown_2023ECC + mov r1, r8 + ldrb r2, [r1] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r3, [r1] + lsls r0, r3, 30 + cmp r0, 0 + bge _0801D9EC + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + strb r0, [r1] + ldr r4, _0801D9E0 @ =gUnknown_2023D6A + movs r0, 0x1F + strb r0, [r4] + bl sub_8017544 + ldr r1, _0801D9E4 @ =gUnknown_2023D74 + ldr r0, _0801D9E8 @ =gUnknown_81D938D + str r0, [r1] + mov r1, r8 + ldrb r0, [r1] + ldrb r1, [r4] + bl sub_80C71D0 + b _0801DAFC + .align 2, 0 +_0801D9C8: .4byte gUnknown_2023BCC +_0801D9CC: .4byte gUnknown_2023E8C +_0801D9D0: .4byte gUnknown_8250C04 +_0801D9D4: .4byte gUnknown_2023BDE +_0801D9D8: .4byte gUnknown_2023D4A +_0801D9DC: .4byte gUnknown_2023ECC +_0801D9E0: .4byte gUnknown_2023D6A +_0801D9E4: .4byte gUnknown_2023D74 +_0801D9E8: .4byte gUnknown_81D938D +_0801D9EC: + lsls r0, r2, 4 + add r0, r9 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _0801D9FA + b _0801DAF4 +_0801D9FA: + ldr r1, _0801DA90 @ =gUnknown_8250C04 + ldr r2, _0801DA94 @ =gUnknown_2023D4A + ldrh r3, [r2] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0 + beq _0801DAF4 + cmp r3, 0xAE + bne _0801DA38 + ldr r2, _0801DA98 @ =gUnknown_2023BE4 + ldr r0, _0801DA9C @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _0801DA38 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _0801DAF4 +_0801DA38: + ldrh r0, [r4] + bl sub_802A1C0 + lsls r0, 24 + cmp r0, 0 + beq _0801DA5E + ldr r1, _0801DA98 @ =gUnknown_2023BE4 + ldr r0, _0801DA9C @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _0801DAF4 +_0801DA5E: + ldr r0, _0801DA9C @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80172E8 + ldr r2, _0801DAA0 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801DAA4 @ =gUnknown_2023DA0 + ldr r3, _0801DAA8 @ =gUnknown_2023D6C + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801DAAC @ =gUnknown_2023DA8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, _0801DAB0 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x6] + b _0801DAF4 + .align 2, 0 +_0801DA90: .4byte gUnknown_8250C04 +_0801DA94: .4byte gUnknown_2023D4A +_0801DA98: .4byte gUnknown_2023BE4 +_0801DA9C: .4byte gUnknown_2023D6B +_0801DAA0: .4byte gUnknown_2023DCC +_0801DAA4: .4byte gUnknown_2023DA0 +_0801DAA8: .4byte gUnknown_2023D6C +_0801DAAC: .4byte gUnknown_2023DA8 +_0801DAB0: .4byte gUnknown_2023E82 +_0801DAB4: + ldr r0, _0801DAE0 @ =gUnknown_2023D6B + ldrb r0, [r0] + ldr r2, _0801DAE4 @ =0x00000121 + adds r1, r3, 0 + bl sub_8016EC8 + ldrb r1, [r4] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _0801DAE8 @ =gUnknown_2023FC4 + ldrb r0, [r4] + strb r0, [r1, 0x17] + bl sub_8017544 + ldr r1, _0801DAEC @ =gUnknown_2023D74 + ldr r0, _0801DAF0 @ =gUnknown_81D8FC2 + b _0801DAFA + .align 2, 0 +_0801DAE0: .4byte gUnknown_2023D6B +_0801DAE4: .4byte 0x00000121 +_0801DAE8: .4byte gUnknown_2023FC4 +_0801DAEC: .4byte gUnknown_2023D74 +_0801DAF0: .4byte gUnknown_81D8FC2 +_0801DAF4: + ldr r1, _0801DB0C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 +_0801DAFA: + str r0, [r1] +_0801DAFC: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801DB0C: .4byte gUnknown_2023D74 + thumb_func_end sub_801D760 + + thumb_func_start sub_801DB10 +sub_801DB10: @ 801DB10 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r1, _0801DB5C @ =gUnknown_2023D74 + ldr r5, [r1] + adds r4, r5, r0 + ldr r0, _0801DB60 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801DB70 + ldr r1, _0801DB64 @ =gUnknown_2023DA0 + ldr r3, _0801DB68 @ =gUnknown_2023D6C + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801DB6C @ =gUnknown_2023DA8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldrb r4, [r5, 0x1] + ldrb r0, [r5, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r5, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r5, 0x4] + lsls r0, 24 + orrs r4, r0 + b _0801DB8A + .align 2, 0 +_0801DB5C: .4byte gUnknown_2023D74 +_0801DB60: .4byte gUnknown_2023DCC +_0801DB64: .4byte gUnknown_2023DA0 +_0801DB68: .4byte gUnknown_2023D6C +_0801DB6C: .4byte gUnknown_2023DA8 +_0801DB70: + bl sub_802A3F8 + ldr r0, _0801DB98 @ =gUnknown_2023D6C + ldrb r1, [r0] + str r6, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _0801DB8E +_0801DB8A: + ldr r0, _0801DB9C @ =gUnknown_2023D74 + str r4, [r0] +_0801DB8E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801DB98: .4byte gUnknown_2023D6C +_0801DB9C: .4byte gUnknown_2023D74 + thumb_func_end sub_801DB10 + + thumb_func_start sub_801DBA0 +sub_801DBA0: @ 801DBA0 + push {lr} + ldr r1, _0801DBE8 @ =gUnknown_2023E8C + ldr r0, _0801DBEC @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _0801DC00 + ldr r2, _0801DBF0 @ =gUnknown_8250C04 + ldr r0, _0801DBF4 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801DC00 + ldr r2, _0801DBF8 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x5 + movs r1, 0 + bl sub_801DB10 + ldr r1, _0801DBFC @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x6] + b _0801DC08 + .align 2, 0 +_0801DBE8: .4byte gUnknown_2023E8C +_0801DBEC: .4byte gUnknown_2023D6C +_0801DBF0: .4byte gUnknown_8250C04 +_0801DBF4: .4byte gUnknown_2023D4A +_0801DBF8: .4byte gUnknown_2023DCC +_0801DBFC: .4byte gUnknown_2023E82 +_0801DC00: + ldr r1, _0801DC0C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0801DC08: + pop {r0} + bx r0 + .align 2, 0 +_0801DC0C: .4byte gUnknown_2023D74 + thumb_func_end sub_801DBA0 + + thumb_func_start sub_801DC10 +sub_801DC10: @ 801DC10 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _0801DC64 @ =gUnknown_2023E8C + ldr r0, _0801DC68 @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _0801DC5C + ldr r2, _0801DC6C @ =gUnknown_8250C04 + ldr r0, _0801DC70 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801DC5C + ldr r2, _0801DC74 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x7 + adds r1, r3, 0 + bl sub_801DB10 + ldr r1, _0801DC78 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x6] + movs r4, 0x1 +_0801DC5C: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801DC64: .4byte gUnknown_2023E8C +_0801DC68: .4byte gUnknown_2023D6C +_0801DC6C: .4byte gUnknown_8250C04 +_0801DC70: .4byte gUnknown_2023D4A +_0801DC74: .4byte gUnknown_2023DCC +_0801DC78: .4byte gUnknown_2023E82 + thumb_func_end sub_801DC10 + + thumb_func_start sub_801DC7C +sub_801DC7C: @ 801DC7C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, _0801DCDC @ =gUnknown_2023DFC + ldr r3, _0801DCE0 @ =gUnknown_2023D6C + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + adds r6, r2, 0 + cmp r1, 0 + beq _0801DCAE + ldr r1, _0801DCE4 @ =gUnknown_2023E0C + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _0801DCE8 @ =gUnknown_2023D6B + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + beq _0801DD98 +_0801DCAE: + ldr r0, _0801DCEC @ =gUnknown_2023DD0 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 9 + ands r1, r2 + adds r2, r0, 0 + cmp r1, 0 + bne _0801DCF4 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801DCF4 +_0801DCCE: + ldr r0, _0801DCF0 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0801DD98 + .align 2, 0 +_0801DCDC: .4byte gUnknown_2023DFC +_0801DCE0: .4byte gUnknown_2023D6C +_0801DCE4: .4byte gUnknown_2023E0C +_0801DCE8: .4byte gUnknown_2023D6B +_0801DCEC: .4byte gUnknown_2023DD0 +_0801DCF0: .4byte gUnknown_2023DCC +_0801DCF4: + ldr r0, [r2] + ldr r1, _0801DDA4 @ =0xfffeffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + bne _0801DD16 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0801DCCE +_0801DD16: + ldr r0, [r2] + ldr r1, _0801DDA8 @ =0xfffdffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + bne _0801DD36 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + bne _0801DCCE +_0801DD36: + ldr r0, [r2] + ldr r1, _0801DDAC @ =0xfffbffff + ands r0, r1 + str r0, [r2] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r5, 1 + cmp r0, 0 + bne _0801DD86 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _0801DD86 + ldr r0, _0801DDB0 @ =gUnknown_2023F1C + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0801DD86 + ldr r0, _0801DDB4 @ =gUnknown_8250C04 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x98 + beq _0801DD98 +_0801DD86: + ldr r1, _0801DDB4 @ =gUnknown_8250C04 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x11 + beq _0801DD98 + cmp r0, 0x4E + bne _0801DDB8 +_0801DD98: + movs r0, 0x7 + adds r1, r5, 0 + bl sub_801DB10 + movs r0, 0x1 + b _0801DDBA + .align 2, 0 +_0801DDA4: .4byte 0xfffeffff +_0801DDA8: .4byte 0xfffdffff +_0801DDAC: .4byte 0xfffbffff +_0801DDB0: .4byte gUnknown_2023F1C +_0801DDB4: .4byte gUnknown_8250C04 +_0801DDB8: + movs r0, 0 +_0801DDBA: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_801DC7C + + thumb_func_start sub_801DDC4 +sub_801DDC4: @ 801DDC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _0801DE60 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r6, [r0, 0x5] + ldrb r0, [r0, 0x6] + lsls r0, 8 + orrs r6, r0 + ldr r0, _0801DE64 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801DE48 + movs r0, 0x1 + bl sub_80EB2E0 + lsls r0, 24 + cmp r0, 0 + bne _0801DE12 + ldr r0, _0801DE68 @ =gUnknown_8250C04 + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801DE12 + ldr r0, _0801DE6C @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + beq _0801DE56 +_0801DE12: + ldr r0, _0801DE64 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801DE48 + movs r0, 0x2 + bl sub_80EB2E0 + lsls r0, 24 + cmp r0, 0 + bne _0801DE48 + ldr r0, _0801DE68 @ =gUnknown_8250C04 + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0801DE48 + ldr r0, _0801DE6C @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + beq _0801DE56 +_0801DE48: + ldr r0, _0801DE64 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 9 + ands r0, r1 + cmp r0, 0 + beq _0801DE70 +_0801DE56: + movs r0, 0x7 + adds r1, r6, 0 + bl sub_801DB10 + b _0801E1C2 + .align 2, 0 +_0801DE60: .4byte gUnknown_2023D74 +_0801DE64: .4byte gUnknown_2022B4C +_0801DE68: .4byte gUnknown_8250C04 +_0801DE6C: .4byte gUnknown_2023D6B +_0801DE70: + adds r0, r6, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _0801DF0C + ldr r2, _0801DED4 @ =gUnknown_2023DFC + ldr r3, _0801DED8 @ =gUnknown_2023D6C + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + cmp r1, 0 + beq _0801DEA8 + ldr r0, _0801DEDC @ =0x0000ffff + cmp r6, r0 + bne _0801DEA8 + ldr r1, _0801DEE0 @ =gUnknown_2023E0C + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _0801DEE4 @ =gUnknown_2023D6B + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + beq _0801DEFE +_0801DEA8: + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ldr r1, _0801DEE8 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _0801DEF0 + ldr r3, _0801DEEC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0801E1C2 + .align 2, 0 +_0801DED4: .4byte gUnknown_2023DFC +_0801DED8: .4byte gUnknown_2023D6C +_0801DEDC: .4byte 0x0000ffff +_0801DEE0: .4byte gUnknown_2023E0C +_0801DEE4: .4byte gUnknown_2023D6B +_0801DEE8: .4byte 0x000400c0 +_0801DEEC: .4byte gUnknown_2023D74 +_0801DEF0: + movs r0, 0 + bl sub_801DC10 + lsls r0, 24 + cmp r0, 0 + beq _0801DEFE + b _0801E1C2 +_0801DEFE: + ldr r1, _0801DF08 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] + b _0801E1C2 + .align 2, 0 +_0801DF08: .4byte gUnknown_2023D74 +_0801DF0C: + cmp r6, 0 + bne _0801DF14 + ldr r0, _0801DF2C @ =gUnknown_2023D4A + ldrh r6, [r0] +_0801DF14: + ldr r0, _0801DF30 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _0801DF34 + movs r1, 0x3F + mov r10, r1 + mov r2, r10 + ands r2, r0 + mov r10, r2 + b _0801DF42 + .align 2, 0 +_0801DF2C: .4byte gUnknown_2023D4A +_0801DF30: .4byte gUnknown_2023FE8 +_0801DF34: + ldr r1, _0801DF88 @ =gUnknown_8250C04 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + mov r10, r0 +_0801DF42: + adds r0, r6, 0 + bl sub_801DC10 + lsls r0, 24 + cmp r0, 0 + beq _0801DF50 + b _0801E1C2 +_0801DF50: + adds r0, r6, 0 + bl sub_801DC7C + lsls r0, 24 + cmp r0, 0 + beq _0801DF5E + b _0801E1C2 +_0801DF5E: + ldr r3, _0801DF8C @ =gUnknown_2023BE4 + ldr r0, _0801DF90 @ =gUnknown_2023D6C + ldrb r0, [r0] + movs r2, 0x58 + adds r4, r0, 0 + muls r4, r2 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801DF98 + ldr r0, _0801DF94 @ =gUnknown_2023D6B + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r5, [r0, 0x1E] + b _0801DFAE + .align 2, 0 +_0801DF88: .4byte gUnknown_8250C04 +_0801DF8C: .4byte gUnknown_2023BE4 +_0801DF90: .4byte gUnknown_2023D6C +_0801DF94: .4byte gUnknown_2023D6B +_0801DF98: + ldr r0, _0801E0FC @ =gUnknown_2023D6B + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r0, [r0, 0x1E] + adds r0, 0x6 + adds r1, r4, r3 + ldrb r1, [r1, 0x1F] + subs r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 +_0801DFAE: + lsls r0, r5, 24 + cmp r0, 0 + bge _0801DFB6 + movs r5, 0 +_0801DFB6: + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0xC + ble _0801DFC0 + movs r5, 0xC +_0801DFC0: + ldr r1, _0801E100 @ =gUnknown_8250C04 + lsls r4, r6, 1 + adds r0, r4, r6 + lsls r0, 2 + adds r7, r0, r1 + ldrb r3, [r7, 0x3] + mov r8, r3 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + str r4, [sp, 0x4] + cmp r0, 0 + bne _0801E012 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _0801E012 + ldr r0, _0801E104 @ =gUnknown_2023F1C + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0801E012 + ldrb r0, [r7] + cmp r0, 0x98 + bne _0801E012 + movs r0, 0x32 + mov r8, r0 +_0801E012: + ldr r1, _0801E108 @ =gUnknown_82504FC + lsls r0, r5, 24 + asrs r0, 22 + adds r0, r1 + ldrb r1, [r0] + mov r4, r8 + muls r4, r1 + ldrb r1, [r0, 0x1] + adds r0, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r7, _0801E10C @ =gUnknown_2023BE4 + ldr r0, _0801E0FC @ =gUnknown_2023D6B + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0xE + bne _0801E050 + lsls r0, r4, 6 + adds r0, r4 + lsls r0, 1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801E050: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0801E0A8 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _0801E0A8 + ldr r0, _0801E110 @ =gUnknown_2023D6C + ldrb r0, [r0] + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + bne _0801E0A8 + ldr r0, _0801E104 @ =gUnknown_2023F1C + ldrh r1, [r0] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _0801E0A8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801E0A8: + ldr r2, _0801E10C @ =gUnknown_2023BE4 + ldr r0, _0801E0FC @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r9, r2 + cmp r0, 0x37 + bne _0801E0D4 + mov r1, r10 + cmp r1, 0x8 + bhi _0801E0D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801E0D4: + ldr r2, _0801E110 @ =gUnknown_2023D6C + mov r8, r2 + ldrb r2, [r2] + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + mov r3, r9 + adds r1, r0, r3 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801E118 + ldr r1, _0801E114 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x7] + ldrb r2, [r0, 0x1A] + b _0801E134 + .align 2, 0 +_0801E0FC: .4byte gUnknown_2023D6B +_0801E100: .4byte gUnknown_8250C04 +_0801E104: .4byte gUnknown_2023F1C +_0801E108: .4byte gUnknown_82504FC +_0801E10C: .4byte gUnknown_2023BE4 +_0801E110: .4byte gUnknown_2023D6C +_0801E114: .4byte gUnknown_2023F54 +_0801E118: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + ldrb r0, [r1] + muls r0, r7 + add r0, r9 + ldrh r0, [r0, 0x2E] + bl sub_809A948 + lsls r0, 24 + lsrs r2, r0, 24 +_0801E134: + ldr r0, _0801E198 @ =gUnknown_2023D6F + ldr r1, _0801E19C @ =gUnknown_2023D6C + ldrb r1, [r1] + strb r1, [r0] + cmp r5, 0x16 + bne _0801E150 + movs r0, 0x64 + subs r0, r2 + muls r0, r4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801E150: + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + ble _0801E1BA + ldr r2, _0801E1A0 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0801E1A4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0801E1B0 + ldr r1, _0801E1A8 @ =gUnknown_8250C04 + ldr r2, [sp, 0x4] + adds r0, r2, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x6] + cmp r0, 0x8 + beq _0801E192 + cmp r0, 0x20 + bne _0801E1B0 +_0801E192: + ldr r1, _0801E1AC @ =gUnknown_2023E82 + movs r0, 0x2 + b _0801E1B4 + .align 2, 0 +_0801E198: .4byte gUnknown_2023D6F +_0801E19C: .4byte gUnknown_2023D6C +_0801E1A0: .4byte gUnknown_2023DCC +_0801E1A4: .4byte gUnknown_2022B4C +_0801E1A8: .4byte gUnknown_8250C04 +_0801E1AC: .4byte gUnknown_2023E82 +_0801E1B0: + ldr r1, _0801E1D4 @ =gUnknown_2023E82 + movs r0, 0 +_0801E1B4: + strb r0, [r1, 0x6] + bl sub_801EAB8 +_0801E1BA: + movs r0, 0x7 + adds r1, r6, 0 + bl sub_801DB10 +_0801E1C2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E1D4: .4byte gUnknown_2023E82 + thumb_func_end sub_801DDC4 + + thumb_func_start sub_801E1D8 +sub_801E1D8: @ 801E1D8 + push {r4,r5,lr} + ldr r0, _0801E218 @ =gUnknown_2023BC8 + ldr r5, [r0] + cmp r5, 0 + bne _0801E210 + ldr r4, _0801E21C @ =gUnknown_2023DD0 + ldr r0, [r4] + movs r1, 0xC0 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + bne _0801E204 + ldr r0, _0801E220 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x4 + bl sub_80173AC + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 3 + orrs r0, r1 + str r0, [r4] +_0801E204: + ldr r0, _0801E224 @ =gUnknown_2023D74 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _0801E228 @ =gUnknown_2023E82 + strb r5, [r0, 0x7] +_0801E210: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E218: .4byte gUnknown_2023BC8 +_0801E21C: .4byte gUnknown_2023DD0 +_0801E220: .4byte gUnknown_2023D6B +_0801E224: .4byte gUnknown_2023D74 +_0801E228: .4byte gUnknown_2023E82 + thumb_func_end sub_801E1D8 + + thumb_func_start sub_801E22C +sub_801E22C: @ 801E22C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0x1 + ldr r0, _0801E27C @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0801E244 + b _0801E3DE +_0801E244: + ldr r1, _0801E280 @ =gUnknown_2023ECC + ldr r2, _0801E284 @ =gUnknown_2023D6B + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r4, r0, 31 + mov r9, r2 + cmp r4, 0 + bne _0801E2E6 + ldr r2, _0801E288 @ =gUnknown_8250C04 + ldr r0, _0801E28C @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x6] + cmp r0, 0x20 + beq _0801E296 + cmp r0, 0x20 + bgt _0801E290 + cmp r0, 0x8 + beq _0801E2AC + b _0801E2C6 + .align 2, 0 +_0801E27C: .4byte gUnknown_2023BC8 +_0801E280: .4byte gUnknown_2023ECC +_0801E284: .4byte gUnknown_2023D6B +_0801E288: .4byte gUnknown_8250C04 +_0801E28C: .4byte gUnknown_2023D4A +_0801E290: + cmp r0, 0x40 + beq _0801E2AC + b _0801E2C6 +_0801E296: + str r4, [sp] + movs r0, 0x12 + adds r1, r3, 0 + movs r2, 0x2E + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0x1 + b _0801E2E6 +_0801E2AC: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + movs r2, 0x2E + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0 + b _0801E2E6 +_0801E2C6: + ldr r1, _0801E348 @ =gUnknown_2023D6C + mov r2, r9 + ldrb r0, [r2] + ldrb r7, [r1] + cmp r0, r7 + beq _0801E2E6 + ldr r2, _0801E34C @ =gUnknown_2023BE4 + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2E + bne _0801E2E6 + adds r6, 0x1 +_0801E2E6: + ldr r0, _0801E350 @ =gUnknown_2023DD0 + ldr r4, [r0] + movs r0, 0xA0 + lsls r0, 4 + ands r4, r0 + cmp r4, 0 + bne _0801E3CC + ldr r2, _0801E34C @ =gUnknown_2023BE4 + ldr r3, _0801E354 @ =gUnknown_2023D48 + ldr r1, _0801E358 @ =gUnknown_2023D6B + ldrb r5, [r1] + movs r0, 0x58 + mov r8, r0 + mov r0, r8 + muls r0, r5 + ldrb r7, [r3] + adds r0, r7 + movs r7, 0x24 + adds r7, r2 + mov r12, r7 + add r0, r12 + ldrb r0, [r0] + mov r9, r1 + mov r10, r2 + adds r7, r3, 0 + cmp r0, 0 + beq _0801E3CC + ldr r0, _0801E35C @ =gUnknown_2023E8C + lsls r1, r5, 4 + adds r1, r0 + ldrb r0, [r1, 0x2] + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x2] + mov r1, r9 + ldrb r0, [r1] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldrb r1, [r7] + adds r0, r1 + mov r1, r12 + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, r6 + ble _0801E360 + subs r0, r6 + strb r0, [r2] + b _0801E362 + .align 2, 0 +_0801E348: .4byte gUnknown_2023D6C +_0801E34C: .4byte gUnknown_2023BE4 +_0801E350: .4byte gUnknown_2023DD0 +_0801E354: .4byte gUnknown_2023D48 +_0801E358: .4byte gUnknown_2023D6B +_0801E35C: .4byte gUnknown_2023E8C +_0801E360: + strb r4, [r2] +_0801E362: + mov r2, r9 + ldrb r3, [r2] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0801E3CC + ldr r1, _0801E3F0 @ =gUnknown_2023E0C + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0801E3F4 @ =gUnknown_825E45C + ldrb r0, [r7] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0801E3CC + ldr r0, _0801E3F8 @ =gUnknown_2023BC4 + strb r3, [r0] + ldrb r1, [r7] + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + mov r2, r10 + adds r2, 0x24 + adds r0, r2 + ldrb r7, [r7] + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_800DFF0 + mov r7, r9 + ldrb r0, [r7] + bl sub_8017248 +_0801E3CC: + ldr r2, _0801E3FC @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _0801E400 @ =0xfffff7ff + ands r0, r1 + str r0, [r2] + ldr r1, _0801E404 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801E3DE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E3F0: .4byte gUnknown_2023E0C +_0801E3F4: .4byte gUnknown_825E45C +_0801E3F8: .4byte gUnknown_2023BC4 +_0801E3FC: .4byte gUnknown_2023DD0 +_0801E400: .4byte 0xfffff7ff +_0801E404: .4byte gUnknown_2023D74 + thumb_func_end sub_801E22C + + thumb_func_start sub_801E408 +sub_801E408: @ 801E408 + push {r4-r7,lr} + ldr r1, _0801E42C @ =gUnknown_2023BE4 + ldr r0, _0801E430 @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + cmp r0, 0xAF + bne _0801E438 + ldr r1, _0801E434 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x7] + b _0801E440 + .align 2, 0 +_0801E42C: .4byte gUnknown_2023BE4 +_0801E430: .4byte gUnknown_2023D6B +_0801E434: .4byte gUnknown_2023F54 +_0801E438: + bl sub_809A924 + lsls r0, 24 + lsrs r6, r0, 24 +_0801E440: + ldr r1, _0801E4CC @ =gUnknown_2023D6F + ldr r3, _0801E4D0 @ =gUnknown_2023D6B + ldrb r0, [r3] + strb r0, [r1] + ldr r4, _0801E4D4 @ =gUnknown_2023BE4 + ldrb r1, [r3] + movs r0, 0x58 + adds r7, r1, 0 + muls r7, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r7, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + negs r0, r0 + asrs r5, r0, 31 + movs r0, 0x2 + ands r5, r0 + ldr r2, _0801E4D8 @ =gUnknown_8250C04 + ldr r0, _0801E4DC @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + mov r12, r3 + cmp r1, 0x2B + bne _0801E480 + adds r5, 0x1 +_0801E480: + adds r0, r5, 0 + cmp r1, 0x4B + bne _0801E488 + adds r0, 0x1 +_0801E488: + cmp r1, 0xC8 + bne _0801E48E + adds r0, 0x1 +_0801E48E: + adds r2, r0, 0 + cmp r1, 0xD1 + bne _0801E496 + adds r2, 0x1 +_0801E496: + movs r1, 0 + cmp r6, 0x3F + bne _0801E4A6 + adds r0, r7, r4 + ldrh r0, [r0] + cmp r0, 0x71 + bne _0801E4A6 + movs r1, 0x1 +_0801E4A6: + lsls r5, r1, 1 + movs r3, 0 + cmp r6, 0x42 + bne _0801E4C0 + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x53 + bne _0801E4C0 + movs r3, 0x1 +_0801E4C0: + lsls r1, r3, 1 + cmp r6, 0x29 + bne _0801E4E0 + adds r0, r5, 0x1 + adds r0, r2, r0 + b _0801E4E2 + .align 2, 0 +_0801E4CC: .4byte gUnknown_2023D6F +_0801E4D0: .4byte gUnknown_2023D6B +_0801E4D4: .4byte gUnknown_2023BE4 +_0801E4D8: .4byte gUnknown_8250C04 +_0801E4DC: .4byte gUnknown_2023D4A +_0801E4E0: + adds r0, r2, r5 +_0801E4E2: + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + cmp r5, 0x4 + bls _0801E4F0 + movs r5, 0x4 +_0801E4F0: + ldr r0, _0801E56C @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x4 + beq _0801E580 + cmp r4, 0x4B + beq _0801E580 + ldr r1, _0801E570 @ =gUnknown_2023DFC + mov r2, r12 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _0801E580 + ldr r4, _0801E574 @ =gUnknown_2022B4C + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + bne _0801E580 + bl sub_8044EC8 + ldr r2, _0801E578 @ =gUnknown_8250530 + lsls r1, r5, 1 + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1] + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _0801E580 + ldr r0, [r4] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801E55A + movs r0, 0x1 + bl sub_80EB2E0 + lsls r0, 24 + cmp r0, 0 + beq _0801E580 +_0801E55A: + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 9 + ands r0, r1 + cmp r0, 0 + bne _0801E580 + ldr r1, _0801E57C @ =gUnknown_2023D71 + movs r0, 0x2 + b _0801E584 + .align 2, 0 +_0801E56C: .4byte gUnknown_2023D6C +_0801E570: .4byte gUnknown_2023DFC +_0801E574: .4byte gUnknown_2022B4C +_0801E578: .4byte gUnknown_8250530 +_0801E57C: .4byte gUnknown_2023D71 +_0801E580: + ldr r1, _0801E594 @ =gUnknown_2023D71 + movs r0, 0x1 +_0801E584: + strb r0, [r1] + ldr r1, _0801E598 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E594: .4byte gUnknown_2023D71 +_0801E598: .4byte gUnknown_2023D74 + thumb_func_end sub_801E408 + + thumb_func_start sub_801E59C +sub_801E59C: @ 801E59C + push {r4-r7,lr} + sub sp, 0x10 + ldr r4, _0801E654 @ =gUnknown_2023DDE + ldr r5, _0801E658 @ =gUnknown_2023D6C + ldrb r0, [r5] + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldr r6, _0801E65C @ =gUnknown_2023D6B + ldrb r0, [r6] + movs r4, 0x58 + muls r0, r4 + ldr r2, _0801E660 @ =gUnknown_2023BE4 + adds r0, r2 + ldrb r1, [r5] + muls r1, r4 + adds r1, r2 + ldr r7, _0801E664 @ =gUnknown_2023D4A + ldrh r2, [r7] + ldr r4, _0801E668 @ =gUnknown_2023F50 + ldrh r4, [r4] + str r4, [sp] + ldr r4, _0801E66C @ =gUnknown_2023FE8 + ldr r4, [r4] + ldrb r4, [r4, 0x13] + str r4, [sp, 0x4] + ldrb r4, [r6] + str r4, [sp, 0x8] + ldrb r4, [r5] + str r4, [sp, 0xC] + bl sub_803ECEC + ldr r4, _0801E670 @ =gUnknown_2023D50 + ldr r1, _0801E674 @ =gUnknown_2023D71 + ldrb r1, [r1] + muls r1, r0 + ldr r0, _0801E678 @ =gUnknown_2023FC4 + ldrb r0, [r0, 0xE] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, _0801E67C @ =gUnknown_2023DFC + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _0801E620 + ldr r2, _0801E680 @ =gUnknown_8250C04 + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _0801E620 + lsls r0, r3, 1 + str r0, [r4] +_0801E620: + ldr r1, _0801E684 @ =gUnknown_2023E8C + ldr r0, _0801E65C @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _0801E642 + ldr r4, _0801E670 @ =gUnknown_2023D50 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801E642: + ldr r1, _0801E688 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E654: .4byte gUnknown_2023DDE +_0801E658: .4byte gUnknown_2023D6C +_0801E65C: .4byte gUnknown_2023D6B +_0801E660: .4byte gUnknown_2023BE4 +_0801E664: .4byte gUnknown_2023D4A +_0801E668: .4byte gUnknown_2023F50 +_0801E66C: .4byte gUnknown_2023FE8 +_0801E670: .4byte gUnknown_2023D50 +_0801E674: .4byte gUnknown_2023D71 +_0801E678: .4byte gUnknown_2023FC4 +_0801E67C: .4byte gUnknown_2023DFC +_0801E680: .4byte gUnknown_8250C04 +_0801E684: .4byte gUnknown_2023E8C +_0801E688: .4byte gUnknown_2023D74 + thumb_func_end sub_801E59C + + thumb_func_start sub_801E68C +sub_801E68C: @ 801E68C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _0801E744 @ =gUnknown_2023DDE + adds r0, r5, 0 + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x58 + adds r0, r7, 0 + muls r0, r1 + ldr r2, _0801E748 @ =gUnknown_2023BE4 + adds r0, r2 + muls r1, r5 + adds r1, r2 + ldr r2, _0801E74C @ =gUnknown_2023D4A + mov r8, r2 + ldrh r2, [r2] + ldr r6, _0801E750 @ =gUnknown_2023F50 + ldrh r4, [r6] + str r4, [sp] + ldr r4, _0801E754 @ =gUnknown_2023FE8 + ldr r4, [r4] + ldrb r4, [r4, 0x13] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + str r5, [sp, 0xC] + bl sub_803ECEC + ldr r4, _0801E758 @ =gUnknown_2023D50 + movs r1, 0 + strh r1, [r6] + ldr r1, _0801E75C @ =gUnknown_2023D71 + ldrb r1, [r1] + muls r1, r0 + ldr r0, _0801E760 @ =gUnknown_2023FC4 + ldrb r0, [r0, 0xE] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, _0801E764 @ =gUnknown_2023DFC + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _0801E71A + ldr r2, _0801E768 @ =gUnknown_8250C04 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _0801E71A + lsls r0, r3, 1 + str r0, [r4] +_0801E71A: + ldr r0, _0801E76C @ =gUnknown_2023E8C + lsls r1, r7, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 28 + cmp r0, 0 + bge _0801E738 + ldr r4, _0801E758 @ =gUnknown_2023D50 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801E738: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E744: .4byte gUnknown_2023DDE +_0801E748: .4byte gUnknown_2023BE4 +_0801E74C: .4byte gUnknown_2023D4A +_0801E750: .4byte gUnknown_2023F50 +_0801E754: .4byte gUnknown_2023FE8 +_0801E758: .4byte gUnknown_2023D50 +_0801E75C: .4byte gUnknown_2023D71 +_0801E760: .4byte gUnknown_2023FC4 +_0801E764: .4byte gUnknown_2023DFC +_0801E768: .4byte gUnknown_8250C04 +_0801E76C: .4byte gUnknown_2023E8C + thumb_func_end sub_801E68C + + thumb_func_start sub_801E770 +sub_801E770: @ 801E770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _0801E7A0 @ =gUnknown_2023D50 + ldr r0, [r5] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _0801E790 + cmp r4, 0 + beq _0801E790 + movs r0, 0x1 + str r0, [r5] +_0801E790: + cmp r4, 0x5 + beq _0801E7C0 + cmp r4, 0x5 + bgt _0801E7A4 + cmp r4, 0 + beq _0801E7AA + b _0801E842 + .align 2, 0 +_0801E7A0: .4byte gUnknown_2023D50 +_0801E7A4: + cmp r4, 0x14 + beq _0801E800 + b _0801E842 +_0801E7AA: + ldr r2, _0801E7BC @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _0801E840 + .align 2, 0 +_0801E7BC: .4byte gUnknown_2023DCC +_0801E7C0: + ldr r2, _0801E7F0 @ =gUnknown_8250C04 + ldr r0, _0801E7F4 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801E842 + ldr r2, _0801E7F8 @ =gUnknown_2023DCC + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801E842 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801E7FC + movs r0, 0xFD + ands r0, r1 + b _0801E840 + .align 2, 0 +_0801E7F0: .4byte gUnknown_8250C04 +_0801E7F4: .4byte gUnknown_2023D4A +_0801E7F8: .4byte gUnknown_2023DCC +_0801E7FC: + movs r0, 0x4 + b _0801E83E +_0801E800: + ldr r2, _0801E830 @ =gUnknown_8250C04 + ldr r0, _0801E834 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801E842 + ldr r2, _0801E838 @ =gUnknown_2023DCC + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801E842 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801E83C + movs r0, 0xFB + ands r0, r1 + b _0801E840 + .align 2, 0 +_0801E830: .4byte gUnknown_8250C04 +_0801E834: .4byte gUnknown_2023D4A +_0801E838: .4byte gUnknown_2023DCC +_0801E83C: + movs r0, 0x2 +_0801E83E: + orrs r0, r1 +_0801E840: + strb r0, [r2] +_0801E842: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_801E770 + + thumb_func_start sub_801E848 +sub_801E848: @ 801E848 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r3, 0 + ldr r1, _0801E870 @ =gUnknown_2023D4A + ldrh r0, [r1] + cmp r0, 0xA5 + bne _0801E85C + b _0801EA70 +_0801E85C: + ldr r0, _0801E874 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _0801E878 + movs r1, 0x3F + mov r8, r1 + ands r1, r0 + mov r8, r1 + b _0801E888 + .align 2, 0 +_0801E870: .4byte gUnknown_2023D4A +_0801E874: .4byte gUnknown_2023FE8 +_0801E878: + ldr r2, _0801E910 @ =gUnknown_8250C04 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 +_0801E888: + ldr r2, _0801E914 @ =gUnknown_2023BE4 + ldr r0, _0801E918 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r5, r2, 0 + cmp r0, r8 + beq _0801E8AA + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r8 + bne _0801E8C0 +_0801E8AA: + ldr r4, _0801E91C @ =gUnknown_2023D50 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + str r3, [sp, 0x4] + bl __divsi3 + str r0, [r4] + ldr r3, [sp, 0x4] +_0801E8C0: + ldr r2, _0801E920 @ =gUnknown_2023D6C + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + adds r4, r2, 0 + cmp r0, 0x1A + bne _0801E938 + mov r1, r8 + cmp r1, 0x4 + bne _0801E938 + ldr r3, _0801E924 @ =gUnknown_2023D6A + strb r0, [r3] + ldr r2, _0801E928 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801E92C @ =gUnknown_2023DA0 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801E930 @ =gUnknown_2023DA8 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r0, _0801E934 @ =gUnknown_2023E82 + mov r1, r8 + strb r1, [r0, 0x6] + ldrb r0, [r4] + ldrb r1, [r3] + bl sub_80C71D0 + b _0801E9D4 + .align 2, 0 +_0801E910: .4byte gUnknown_8250C04 +_0801E914: .4byte gUnknown_2023BE4 +_0801E918: .4byte gUnknown_2023D6B +_0801E91C: .4byte gUnknown_2023D50 +_0801E920: .4byte gUnknown_2023D6C +_0801E924: .4byte gUnknown_2023D6A +_0801E928: .4byte gUnknown_2023DCC +_0801E92C: .4byte gUnknown_2023DA0 +_0801E930: .4byte gUnknown_2023DA8 +_0801E934: .4byte gUnknown_2023E82 +_0801E938: + ldr r1, _0801E944 @ =gUnknown_824F050 + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r1, 0 + b _0801E9B4 + .align 2, 0 +_0801E944: .4byte gUnknown_824F050 +_0801E948: + adds r3, 0x3 + b _0801E9B0 +_0801E94C: + ldr r5, _0801EA84 @ =gUnknown_824F050 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, r8 + bne _0801E9A8 + adds r1, r3, 0x1 + adds r1, r5 + ldr r2, _0801EA88 @ =gUnknown_2023BE4 + ldr r7, _0801EA8C @ =gUnknown_2023D6C + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + adds r0, r2 + adds r0, 0x21 + ldrb r4, [r1] + ldrb r0, [r0] + cmp r4, r0 + bne _0801E982 + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r2, [sp] + str r3, [sp, 0x4] + bl sub_801E770 + ldr r3, [sp, 0x4] + ldr r2, [sp] +_0801E982: + ldrb r0, [r7] + muls r0, r6 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r4, r1 + bne _0801E9A8 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r4 + beq _0801E9A8 + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r3, [sp, 0x4] + bl sub_801E770 + ldr r3, [sp, 0x4] +_0801E9A8: + adds r3, 0x3 + ldr r5, _0801EA88 @ =gUnknown_2023BE4 + ldr r4, _0801EA8C @ =gUnknown_2023D6C + ldr r2, _0801EA84 @ =gUnknown_824F050 +_0801E9B0: + adds r0, r3, r2 + ldrb r0, [r0] +_0801E9B4: + cmp r0, 0xFF + beq _0801E9D4 + cmp r0, 0xFE + bne _0801E94C + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801E948 +_0801E9D4: + ldr r2, _0801EA88 @ =gUnknown_2023BE4 + ldr r5, _0801EA8C @ =gUnknown_2023D6C + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _0801EA52 + ldr r0, _0801EA90 @ =gUnknown_2023D6B + ldrb r0, [r0] + ldr r7, _0801EA94 @ =gUnknown_2023D4A + ldrh r1, [r7] + bl sub_802A224 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0801EA52 + ldr r1, _0801EA98 @ =gUnknown_2023DCC + mov r8, r1 + ldrb r4, [r1] + ands r0, r4 + cmp r0, 0 + beq _0801EA10 + movs r0, 0x6 + ands r0, r4 + cmp r0, 0x6 + bne _0801EA52 +_0801EA10: + ldr r2, _0801EA9C @ =gUnknown_8250C04 + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801EA52 + ldr r3, _0801EAA0 @ =gUnknown_2023D6A + strb r6, [r3] + movs r0, 0x1 + orrs r0, r4 + mov r1, r8 + strb r0, [r1] + ldr r1, _0801EAA4 @ =gUnknown_2023DA0 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801EAA8 @ =gUnknown_2023DA8 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, _0801EAAC @ =gUnknown_2023E82 + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r5] + ldrb r1, [r3] + bl sub_80C71D0 +_0801EA52: + ldr r0, _0801EA98 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801EA70 + ldr r2, _0801EAB0 @ =gUnknown_2023E8C + ldr r0, _0801EA90 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_0801EA70: + ldr r1, _0801EAB4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801EA84: .4byte gUnknown_824F050 +_0801EA88: .4byte gUnknown_2023BE4 +_0801EA8C: .4byte gUnknown_2023D6C +_0801EA90: .4byte gUnknown_2023D6B +_0801EA94: .4byte gUnknown_2023D4A +_0801EA98: .4byte gUnknown_2023DCC +_0801EA9C: .4byte gUnknown_8250C04 +_0801EAA0: .4byte gUnknown_2023D6A +_0801EAA4: .4byte gUnknown_2023DA0 +_0801EAA8: .4byte gUnknown_2023DA8 +_0801EAAC: .4byte gUnknown_2023E82 +_0801EAB0: .4byte gUnknown_2023E8C +_0801EAB4: .4byte gUnknown_2023D74 + thumb_func_end sub_801E848 + + thumb_func_start sub_801EAB8 +sub_801EAB8: @ 801EAB8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r5, 0 + ldr r0, _0801EAF8 @ =gUnknown_2023D4A + ldrh r1, [r0] + mov r9, r0 + cmp r1, 0xA5 + bne _0801EAD0 + b _0801ED18 +_0801EAD0: + ldr r2, _0801EAFC @ =gUnknown_8250C04 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0801EAE2 + b _0801ED18 +_0801EAE2: + ldr r0, _0801EB00 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _0801EB04 + movs r1, 0x3F + mov r12, r1 + mov r2, r12 + ands r2, r0 + mov r12, r2 + b _0801EB08 + .align 2, 0 +_0801EAF8: .4byte gUnknown_2023D4A +_0801EAFC: .4byte gUnknown_8250C04 +_0801EB00: .4byte gUnknown_2023FE8 +_0801EB04: + ldrb r1, [r1, 0x2] + mov r12, r1 +_0801EB08: + ldr r2, _0801EB3C @ =gUnknown_2023BE4 + ldr r3, _0801EB40 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r1, [r0] + adds r7, r2, 0 + mov r8, r3 + cmp r1, 0x1A + bne _0801EB4C + mov r0, r12 + cmp r0, 0x4 + bne _0801EB4C + ldr r0, _0801EB44 @ =gUnknown_2023D6A + strb r1, [r0] + ldr r0, _0801EB48 @ =gUnknown_2023E82 + mov r1, r12 + strb r1, [r0, 0x6] + ldrb r0, [r3] + movs r1, 0x1A + bl sub_80C71D0 + b _0801ED18 + .align 2, 0 +_0801EB3C: .4byte gUnknown_2023BE4 +_0801EB40: .4byte gUnknown_2023D6C +_0801EB44: .4byte gUnknown_2023D6A +_0801EB48: .4byte gUnknown_2023E82 +_0801EB4C: + ldr r1, _0801EB58 @ =gUnknown_824F050 + adds r0, r5, r1 + ldrb r0, [r0] + adds r4, r1, 0 + b _0801EC9E + .align 2, 0 +_0801EB58: .4byte gUnknown_824F050 +_0801EB5C: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, r12 + beq _0801EB66 + b _0801EC98 +_0801EB66: + adds r2, r5, 0x1 + adds r3, r2, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _0801EBA6 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0801EBA6 + ldr r2, _0801ED24 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801ED28 @ =gUnknown_2023E8C + ldr r0, _0801ED2C @ =gUnknown_2023D6B + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_0801EBA6: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801EBEC + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801EBEC + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0801EBEC + ldr r2, _0801ED24 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801ED28 @ =gUnknown_2023E8C + ldr r0, _0801ED2C @ =gUnknown_2023D6B + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_0801EBEC: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _0801EC10 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0801EC10 + movs r0, 0x1 + orrs r6, r0 +_0801EC10: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801EC3E + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801EC3E + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0801EC3E + movs r0, 0x1 + orrs r6, r0 +_0801EC3E: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _0801EC66 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _0801EC66 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0801EC66: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801EC98 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801EC98 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _0801EC98 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0801EC98: + adds r5, 0x3 + adds r0, r5, r4 + ldrb r0, [r0] +_0801EC9E: + cmp r0, 0xFF + beq _0801ECC2 + cmp r0, 0xFE + beq _0801ECA8 + b _0801EB5C +_0801ECA8: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r1, r7, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801EC98 +_0801ECC2: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x19 + bne _0801ED18 + ldr r0, _0801ED2C @ =gUnknown_2023D6B + ldrb r0, [r0] + mov r2, r9 + ldrh r1, [r2] + bl sub_802A224 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0801ED18 + movs r0, 0x3 + ands r6, r0 + cmp r6, 0x1 + beq _0801ED18 + ldr r2, _0801ED30 @ =gUnknown_8250C04 + mov r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801ED18 + ldr r0, _0801ED34 @ =gUnknown_2023D6A + strb r4, [r0] + ldr r1, _0801ED38 @ =gUnknown_2023E82 + movs r0, 0x3 + strb r0, [r1, 0x6] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x19 + bl sub_80C71D0 +_0801ED18: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801ED24: .4byte gUnknown_2023DCC +_0801ED28: .4byte gUnknown_2023E8C +_0801ED2C: .4byte gUnknown_2023D6B +_0801ED30: .4byte gUnknown_8250C04 +_0801ED34: .4byte gUnknown_2023D6A +_0801ED38: .4byte gUnknown_2023E82 + thumb_func_end sub_801EAB8 + + thumb_func_start sub_801ED3C +sub_801ED3C: @ 801ED3C + push {r4-r7,lr} + adds r6, r2, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r7, _0801ED70 @ =gUnknown_2023D50 + ldr r0, [r7] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r7] + cmp r0, 0 + bne _0801ED62 + cmp r4, 0 + beq _0801ED62 + movs r0, 0x1 + str r0, [r7] +_0801ED62: + cmp r4, 0x5 + beq _0801ED8A + cmp r4, 0x5 + bgt _0801ED74 + cmp r4, 0 + beq _0801ED7A + b _0801EDEE + .align 2, 0 +_0801ED70: .4byte gUnknown_2023D50 +_0801ED74: + cmp r4, 0x14 + beq _0801EDBC + b _0801EDEE +_0801ED7A: + ldrb r0, [r6] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _0801EDEC +_0801ED8A: + ldr r0, _0801EDB4 @ =gUnknown_8250C04 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801EDEE + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801EDEE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801EDB8 + movs r0, 0xFD + ands r0, r1 + b _0801EDEC + .align 2, 0 +_0801EDB4: .4byte gUnknown_8250C04 +_0801EDB8: + movs r0, 0x4 + b _0801EDEA +_0801EDBC: + ldr r0, _0801EDE4 @ =gUnknown_8250C04 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801EDEE + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801EDEE + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801EDE8 + movs r0, 0xFB + ands r0, r1 + b _0801EDEC + .align 2, 0 +_0801EDE4: .4byte gUnknown_8250C04 +_0801EDE8: + movs r0, 0x2 +_0801EDEA: + orrs r0, r1 +_0801EDEC: + strb r0, [r6] +_0801EDEE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_801ED3C + + thumb_func_start sub_801EDF4 +sub_801EDF4: @ 801EDF4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + movs r0, 0 + mov r8, r0 + mov r0, sp + mov r1, r8 + strb r1, [r0] + mov r2, r10 + cmp r2, 0xA5 + bne _0801EE26 + movs r0, 0 + b _0801EFAE +_0801EE26: + ldr r1, _0801EE94 @ =gUnknown_8250C04 + mov r3, r10 + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x8] + ldr r1, _0801EE98 @ =gUnknown_2023BE4 + movs r0, 0x58 + ldr r3, [sp, 0x4] + muls r0, r3 + adds r3, r0, r1 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + str r2, [sp, 0xC] + adds r5, r1, 0 + ldr r1, [sp, 0x8] + cmp r0, r1 + beq _0801EE5A + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _0801EE6C +_0801EE5A: + ldr r4, _0801EE9C @ =gUnknown_2023D50 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801EE6C: + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + bne _0801EEA0 + ldr r3, [sp, 0x8] + cmp r3, 0x4 + bne _0801EEA0 + movs r1, 0x9 + mov r0, sp + ldrb r0, [r0] + orrs r0, r1 + mov r1, sp + strb r0, [r1] + b _0801EF50 + .align 2, 0 +_0801EE94: .4byte gUnknown_8250C04 +_0801EE98: .4byte gUnknown_2023BE4 +_0801EE9C: .4byte gUnknown_2023D50 +_0801EEA0: + ldr r1, _0801EEBC @ =gUnknown_824F050 + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xFF + beq _0801EF50 + cmp r0, 0xFE + bne _0801EEC6 + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + b _0801EF3E + .align 2, 0 +_0801EEBC: .4byte gUnknown_824F050 +_0801EEC0: + movs r0, 0x3 + add r8, r0 + b _0801EF28 +_0801EEC6: + ldr r7, _0801EFC0 @ =gUnknown_824F050 + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _0801EF20 + adds r1, 0x1 + adds r1, r7 + ldr r2, _0801EFC4 @ =gUnknown_2023BE4 + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r5, r0, r2 + adds r6, r5, 0 + adds r6, 0x21 + ldrb r4, [r1] + ldrb r0, [r6] + cmp r4, r0 + bne _0801EF00 + mov r0, r8 + adds r0, 0x2 + adds r0, r7 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + bl sub_801ED3C +_0801EF00: + adds r0, r5, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r4, r0 + bne _0801EF20 + ldrb r0, [r6] + cmp r0, r4 + beq _0801EF20 + mov r0, r8 + adds r0, 0x2 + adds r0, r7 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + bl sub_801ED3C +_0801EF20: + movs r1, 0x3 + add r8, r1 + ldr r5, _0801EFC4 @ =gUnknown_2023BE4 + ldr r2, _0801EFC0 @ =gUnknown_824F050 +_0801EF28: + mov r3, r8 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + beq _0801EF50 + cmp r0, 0xFE + bne _0801EEC6 + movs r0, 0x58 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 +_0801EF3E: + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801EEC0 +_0801EF50: + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + bne _0801EFAA + mov r0, sp + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0801EFAA + ldr r0, [sp, 0x4] + mov r1, r10 + bl sub_802A224 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _0801EFAA + mov r0, sp + ldrb r3, [r0] + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0801EF92 + movs r0, 0x6 + ands r0, r3 + cmp r0, 0x6 + bne _0801EFAA +_0801EF92: + ldr r0, _0801EFC8 @ =gUnknown_8250C04 + ldr r1, [sp, 0xC] + add r1, r10 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801EFAA + mov r0, sp + movs r1, 0x1 + orrs r1, r3 + strb r1, [r0] +_0801EFAA: + mov r0, sp + ldrb r0, [r0] +_0801EFAE: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801EFC0: .4byte gUnknown_824F050 +_0801EFC4: .4byte gUnknown_2023BE4 +_0801EFC8: .4byte gUnknown_8250C04 + thumb_func_end sub_801EDF4 + + thumb_func_start sub_801EFCC +sub_801EFCC: @ 801EFCC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + movs r7, 0 + mov r0, sp + strb r7, [r0] + ldr r2, _0801F008 @ =gUnknown_8254784 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + mov r9, r1 + ldrb r0, [r0, 0x7] + mov r8, r0 + cmp r6, 0xA5 + bne _0801F00C + movs r0, 0 + b _0801F0B0 + .align 2, 0 +_0801F008: .4byte gUnknown_8254784 +_0801F00C: + ldr r2, _0801F030 @ =gUnknown_8250C04 + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r10, r0 + str r1, [sp, 0x8] + ldr r3, [sp, 0x4] + cmp r3, 0x1A + bne _0801F034 + cmp r0, 0x4 + bne _0801F034 + movs r1, 0x9 + mov r0, sp + strb r1, [r0] + b _0801F07A + .align 2, 0 +_0801F030: .4byte gUnknown_8250C04 +_0801F034: + ldr r0, _0801F0C0 @ =gUnknown_824F050 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0801F07A + adds r4, r1, 0 +_0801F040: + ldrb r0, [r4] + cmp r0, 0xFE + beq _0801F06C + cmp r0, r10 + bne _0801F06C + ldrb r5, [r4, 0x1] + cmp r5, r9 + bne _0801F05A + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl sub_801ED3C +_0801F05A: + cmp r5, r8 + bne _0801F06C + cmp r9, r8 + beq _0801F06C + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl sub_801ED3C +_0801F06C: + adds r4, 0x3 + adds r7, 0x3 + ldr r1, _0801F0C0 @ =gUnknown_824F050 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _0801F040 +_0801F07A: + ldr r3, [sp, 0x4] + cmp r3, 0x19 + bne _0801F0AC + mov r0, sp + ldrb r2, [r0] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0801F094 + movs r0, 0x6 + ands r0, r2 + cmp r0, 0x6 + bne _0801F0AC +_0801F094: + ldr r0, _0801F0C4 @ =gUnknown_8250C04 + ldr r3, [sp, 0x8] + adds r1, r3, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801F0AC + mov r0, sp + movs r1, 0x8 + orrs r1, r2 + strb r1, [r0] +_0801F0AC: + mov r0, sp + ldrb r0, [r0] +_0801F0B0: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801F0C0: .4byte gUnknown_824F050 +_0801F0C4: .4byte gUnknown_8250C04 + thumb_func_end sub_801EFCC + + thumb_func_start sub_801F0C8 +sub_801F0C8: @ 801F0C8 + push {r4,lr} + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801F100 @ =gUnknown_2023D50 + ldr r0, [r4] + cmp r0, 0 + beq _0801F0FA + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801F0FA + movs r0, 0x1 + str r0, [r4] +_0801F0FA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801F100: .4byte gUnknown_2023D50 + thumb_func_end sub_801F0C8 + + thumb_func_start sub_801F104 +sub_801F104: @ 801F104 + push {r4-r7,lr} + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801F15C @ =gUnknown_2023D50 + ldr r0, [r4] + cmp r0, 0 + beq _0801F136 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801F136 + movs r0, 0x1 + str r0, [r4] +_0801F136: + ldr r7, _0801F160 @ =gUnknown_2023BE4 + ldr r6, _0801F164 @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801F16C + ldr r1, _0801F168 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0801F186 + .align 2, 0 +_0801F15C: .4byte gUnknown_2023D50 +_0801F160: .4byte gUnknown_2023BE4 +_0801F164: .4byte gUnknown_2023D6C +_0801F168: .4byte gUnknown_2023F54 +_0801F16C: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl sub_809A948 + lsls r0, 24 + lsrs r6, r0, 24 +_0801F186: + ldr r1, _0801F248 @ =gUnknown_2023D6F + ldr r5, _0801F24C @ =gUnknown_2023D6C + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0801F1C4 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0801F1C4 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_80C7208 + ldr r2, _0801F250 @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0801F1C4: + ldr r2, _0801F254 @ =gUnknown_2023BE4 + ldr r3, _0801F24C @ =gUnknown_2023D6C + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _0801F294 + ldr r2, _0801F258 @ =gUnknown_8250C04 + ldr r0, _0801F25C @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _0801F216 + ldr r0, _0801F260 @ =gUnknown_2023E8C + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _0801F216 + ldr r0, _0801F250 @ =gUnknown_2023ECC + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801F294 +_0801F216: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, _0801F264 @ =gUnknown_2023D50 + ldr r0, [r2] + cmp r1, r0 + bgt _0801F294 + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, _0801F260 @ =gUnknown_2023E8C + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0801F26C + ldr r0, _0801F268 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0801F294 + .align 2, 0 +_0801F248: .4byte gUnknown_2023D6F +_0801F24C: .4byte gUnknown_2023D6C +_0801F250: .4byte gUnknown_2023ECC +_0801F254: .4byte gUnknown_2023BE4 +_0801F258: .4byte gUnknown_8250C04 +_0801F25C: .4byte gUnknown_2023D4A +_0801F260: .4byte gUnknown_2023E8C +_0801F264: .4byte gUnknown_2023D50 +_0801F268: .4byte gUnknown_2023DCC +_0801F26C: + ldr r0, _0801F2A4 @ =gUnknown_2023ECC + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801F294 + ldr r2, _0801F2A8 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801F2AC @ =gUnknown_2023D68 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0801F294: + ldr r1, _0801F2B0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801F2A4: .4byte gUnknown_2023ECC +_0801F2A8: .4byte gUnknown_2023DCC +_0801F2AC: .4byte gUnknown_2023D68 +_0801F2B0: .4byte gUnknown_2023D74 + thumb_func_end sub_801F104 + + thumb_func_start sub_801F2B4 +sub_801F2B4: @ 801F2B4 + push {r4-r7,lr} + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801F30C @ =gUnknown_2023D50 + ldr r0, [r4] + cmp r0, 0 + beq _0801F2E6 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801F2E6 + movs r0, 0x1 + str r0, [r4] +_0801F2E6: + ldr r7, _0801F310 @ =gUnknown_2023BE4 + ldr r6, _0801F314 @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801F31C + ldr r1, _0801F318 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0801F336 + .align 2, 0 +_0801F30C: .4byte gUnknown_2023D50 +_0801F310: .4byte gUnknown_2023BE4 +_0801F314: .4byte gUnknown_2023D6C +_0801F318: .4byte gUnknown_2023F54 +_0801F31C: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl sub_809A948 + lsls r0, 24 + lsrs r6, r0, 24 +_0801F336: + ldr r1, _0801F3DC @ =gUnknown_2023D6F + ldr r5, _0801F3E0 @ =gUnknown_2023D6C + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0801F374 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0801F374 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_80C7208 + ldr r2, _0801F3E4 @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0801F374: + ldr r4, _0801F3E8 @ =gUnknown_2023BE4 + ldr r6, _0801F3E0 @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r7, 0x58 + adds r3, r2, 0 + muls r3, r7 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _0801F420 + ldr r5, _0801F3EC @ =gUnknown_2023E8C + lsls r0, r2, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + blt _0801F3B2 + ldr r0, _0801F3E4 @ =gUnknown_2023ECC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801F420 +_0801F3B2: + adds r0, r3, r4 + ldrh r1, [r0, 0x28] + ldr r2, _0801F3F0 @ =gUnknown_2023D50 + ldr r0, [r2] + cmp r1, r0 + bgt _0801F420 + subs r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r6] + lsls r0, r3, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0801F3F8 + ldr r0, _0801F3F4 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0801F420 + .align 2, 0 +_0801F3DC: .4byte gUnknown_2023D6F +_0801F3E0: .4byte gUnknown_2023D6C +_0801F3E4: .4byte gUnknown_2023ECC +_0801F3E8: .4byte gUnknown_2023BE4 +_0801F3EC: .4byte gUnknown_2023E8C +_0801F3F0: .4byte gUnknown_2023D50 +_0801F3F4: .4byte gUnknown_2023DCC +_0801F3F8: + ldr r0, _0801F430 @ =gUnknown_2023ECC + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801F420 + ldr r2, _0801F434 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801F438 @ =gUnknown_2023D68 + adds r0, r3, 0 + muls r0, r7 + adds r0, r4 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0801F420: + ldr r1, _0801F43C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801F430: .4byte gUnknown_2023ECC +_0801F434: .4byte gUnknown_2023DCC +_0801F438: .4byte gUnknown_2023D68 +_0801F43C: .4byte gUnknown_2023D74 + thumb_func_end sub_801F2B4 + + thumb_func_start sub_801F440 +sub_801F440: @ 801F440 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + ldr r0, _0801F488 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0801F452 + b _0801F572 +_0801F452: + ldr r0, _0801F48C @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + ldr r3, _0801F490 @ =gUnknown_2023D4A + cmp r0, 0 + beq _0801F4A0 + ldrh r0, [r3] + cmp r0, 0x90 + beq _0801F4A0 + cmp r0, 0xA4 + beq _0801F4A0 + ldr r4, _0801F494 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _0801F498 @ =gUnknown_81D89F1 + str r0, [r4] + ldr r1, _0801F49C @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x18] + adds r0, 0x1 + strb r0, [r1, 0x18] + ldrb r0, [r1, 0x19] + adds r0, 0x1 + strb r0, [r1, 0x19] + b _0801F572 + .align 2, 0 +_0801F488: .4byte gUnknown_2023BC8 +_0801F48C: .4byte gUnknown_2023DD0 +_0801F490: .4byte gUnknown_2023D4A +_0801F494: .4byte gUnknown_2023D74 +_0801F498: .4byte gUnknown_81D89F1 +_0801F49C: .4byte gUnknown_2023FC4 +_0801F4A0: + ldr r2, _0801F53C @ =gUnknown_8250C04 + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0801F4C6 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0801F4C6 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0801F4CE +_0801F4C6: + ldr r0, _0801F540 @ =gUnknown_2023FC4 + ldrb r0, [r0, 0x19] + cmp r0, 0 + bne _0801F530 +_0801F4CE: + ldr r0, _0801F544 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801F564 + ldr r1, _0801F548 @ =gUnknown_2023BC4 + ldr r0, _0801F54C @ =gUnknown_2023D6B + mov r8, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrh r1, [r3] + ldr r6, _0801F540 @ =gUnknown_2023FC4 + ldrb r2, [r6, 0x18] + ldr r0, _0801F550 @ =gUnknown_2024020 + ldrh r3, [r0] + ldr r0, _0801F554 @ =gUnknown_2023D50 + ldr r0, [r0] + str r0, [sp] + ldr r5, _0801F558 @ =gUnknown_2023BE4 + mov r0, r8 + ldrb r4, [r0] + movs r0, 0x58 + muls r0, r4 + adds r0, r5 + adds r0, 0x2B + ldrb r0, [r0] + str r0, [sp, 0x4] + mov r0, r8 + ldrb r4, [r0] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r4, _0801F55C @ =gUnknown_2023E0C + adds r0, r4 + str r0, [sp, 0x8] + movs r0, 0 + bl sub_800E1FC + ldrb r0, [r6, 0x18] + adds r0, 0x1 + strb r0, [r6, 0x18] + ldrb r0, [r6, 0x19] + adds r0, 0x1 + strb r0, [r6, 0x19] + mov r1, r8 + ldrb r0, [r1] + bl sub_8017248 +_0801F530: + ldr r1, _0801F560 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _0801F572 + .align 2, 0 +_0801F53C: .4byte gUnknown_8250C04 +_0801F540: .4byte gUnknown_2023FC4 +_0801F544: .4byte gUnknown_2023DCC +_0801F548: .4byte gUnknown_2023BC4 +_0801F54C: .4byte gUnknown_2023D6B +_0801F550: .4byte gUnknown_2024020 +_0801F554: .4byte gUnknown_2023D50 +_0801F558: .4byte gUnknown_2023BE4 +_0801F55C: .4byte gUnknown_2023E0C +_0801F560: .4byte gUnknown_2023D74 +_0801F564: + ldr r4, _0801F580 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _0801F584 @ =gUnknown_81D89F1 + str r0, [r4] +_0801F572: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801F580: .4byte gUnknown_2023D74 +_0801F584: .4byte gUnknown_81D89F1 + thumb_func_end sub_801F440 + + thumb_func_start sub_801F588 +sub_801F588: @ 801F588 + push {lr} + ldr r0, _0801F5A0 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801F59A + ldr r1, _0801F5A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801F59A: + pop {r0} + bx r0 + .align 2, 0 +_0801F5A0: .4byte gUnknown_2023BC8 +_0801F5A4: .4byte gUnknown_2023D74 + thumb_func_end sub_801F588 + + thumb_func_start sub_801F5A8 +sub_801F5A8: @ 801F5A8 + push {r4,lr} + ldr r0, _0801F60C @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801F66A + ldr r0, _0801F610 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801F662 + ldr r0, _0801F614 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r2, _0801F618 @ =gUnknown_2023BC4 + strb r0, [r2] + ldr r1, _0801F61C @ =gUnknown_2023BE4 + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0801F628 + ldr r0, _0801F620 @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + beq _0801F628 + ldr r0, _0801F624 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + bne _0801F628 + movs r0, 0x80 + adds r1, r2, 0 + bl sub_80173AC + b _0801F662 + .align 2, 0 +_0801F60C: .4byte gUnknown_2023BC8 +_0801F610: .4byte gUnknown_2023DCC +_0801F614: .4byte gUnknown_2023D74 +_0801F618: .4byte gUnknown_2023BC4 +_0801F61C: .4byte gUnknown_2023BE4 +_0801F620: .4byte gUnknown_2023E0C +_0801F624: .4byte gUnknown_2023DD0 +_0801F628: + ldr r0, _0801F670 @ =gUnknown_2023D50 + ldr r0, [r0] + ldr r1, _0801F674 @ =0x00002710 + cmp r0, r1 + bgt _0801F636 + lsls r0, 16 + lsrs r1, r0, 16 +_0801F636: + movs r0, 0 + bl sub_800E5EC + ldr r4, _0801F678 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_8017248 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _0801F662 + ldr r0, _0801F670 @ =gUnknown_2023D50 + ldr r0, [r0] + cmp r0, 0 + ble _0801F662 + ldr r0, _0801F67C @ =gUnknown_3004F90 + ldrb r1, [r0, 0x5] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x5] +_0801F662: + ldr r1, _0801F680 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0801F66A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801F670: .4byte gUnknown_2023D50 +_0801F674: .4byte 0x00002710 +_0801F678: .4byte gUnknown_2023BC4 +_0801F67C: .4byte gUnknown_3004F90 +_0801F680: .4byte gUnknown_2023D74 + thumb_func_end sub_801F5A8 + + thumb_func_start sub_801F684 +sub_801F684: @ 801F684 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _0801F6AC @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0801F692 + b _0801FA62 +_0801F692: + ldr r0, _0801F6B0 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x13] + cmp r1, 0 + beq _0801F6B4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0801F6B4 + movs r6, 0x3F + ands r6, r1 + b _0801F6C4 + .align 2, 0 +_0801F6AC: .4byte gUnknown_2023BC8 +_0801F6B0: .4byte gUnknown_2023FE8 +_0801F6B4: + ldr r2, _0801F750 @ =gUnknown_8250C04 + ldr r0, _0801F754 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r6, [r0, 0x2] +_0801F6C4: + ldr r0, _0801F758 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801F6D2 + b _0801FA34 +_0801F6D2: + ldr r0, _0801F75C @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r7, _0801F760 @ =gUnknown_2023BC4 + strb r0, [r7] + ldr r1, _0801F764 @ =gUnknown_2023BE4 + ldrb r2, [r7] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0801F7E8 + ldr r0, _0801F768 @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r4, r1, r0 + ldrb r1, [r4, 0xA] + mov r12, r0 + cmp r1, 0 + beq _0801F7E8 + ldr r0, _0801F76C @ =gUnknown_2023DD0 + ldr r3, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r3, r0 + cmp r3, 0 + bne _0801F7E8 + adds r5, r1, 0 + ldr r6, _0801F770 @ =gUnknown_2023D50 + ldr r4, [r6] + cmp r5, r4 + blt _0801F77C + ldr r0, _0801F774 @ =gUnknown_2023ECC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _0801F736 + str r4, [r1] +_0801F736: + ldrb r0, [r7] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r12 + ldr r2, [r6] + ldrb r0, [r1, 0xA] + subs r0, r2 + strb r0, [r1, 0xA] + ldr r1, _0801F778 @ =gUnknown_2023D54 + ldr r0, [r6] + str r0, [r1] + b _0801F7AC + .align 2, 0 +_0801F750: .4byte gUnknown_8250C04 +_0801F754: .4byte gUnknown_2023D4A +_0801F758: .4byte gUnknown_2023DCC +_0801F75C: .4byte gUnknown_2023D74 +_0801F760: .4byte gUnknown_2023BC4 +_0801F764: .4byte gUnknown_2023BE4 +_0801F768: .4byte gUnknown_2023E0C +_0801F76C: .4byte gUnknown_2023DD0 +_0801F770: .4byte gUnknown_2023D50 +_0801F774: .4byte gUnknown_2023ECC +_0801F778: .4byte gUnknown_2023D54 +_0801F77C: + ldr r0, _0801F7D4 @ =gUnknown_2023ECC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _0801F790 + str r5, [r1] +_0801F790: + ldr r2, _0801F7D8 @ =gUnknown_2023D54 + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + str r0, [r2] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + strb r3, [r0, 0xA] +_0801F7AC: + ldr r0, _0801F7DC @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _0801F7C0 + b _0801FA5A +_0801F7C0: + ldr r4, _0801F7E0 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + bl sub_8017544 + ldr r0, _0801F7E4 @ =gUnknown_81D9526 + str r0, [r4] + b _0801FA62 + .align 2, 0 +_0801F7D4: .4byte gUnknown_2023ECC +_0801F7D8: .4byte gUnknown_2023D54 +_0801F7DC: .4byte gUnknown_2023BC4 +_0801F7E0: .4byte gUnknown_2023D74 +_0801F7E4: .4byte gUnknown_81D9526 +_0801F7E8: + ldr r0, _0801F828 @ =gUnknown_2023DD0 + ldr r2, [r0] + ldr r1, _0801F82C @ =0xfffffeff + ands r2, r1 + str r2, [r0] + ldr r1, _0801F830 @ =gUnknown_2023D50 + ldr r5, [r1] + mov r12, r0 + adds r7, r1, 0 + cmp r5, 0 + bge _0801F83C + ldr r4, _0801F834 @ =gUnknown_2023BE4 + ldr r2, _0801F838 @ =gUnknown_2023BC4 + ldrb r0, [r2] + movs r3, 0x58 + adds r1, r0, 0 + muls r1, r3 + adds r1, r4 + ldrh r0, [r1, 0x28] + subs r0, r5 + strh r0, [r1, 0x28] + ldrb r0, [r2] + muls r0, r3 + adds r1, r0, r4 + ldrh r3, [r1, 0x2C] + ldrh r0, [r1, 0x28] + adds r5, r2, 0 + cmp r0, r3 + bhi _0801F824 + b _0801F9FA +_0801F824: + strh r3, [r1, 0x28] + b _0801F9FA + .align 2, 0 +_0801F828: .4byte gUnknown_2023DD0 +_0801F82C: .4byte 0xfffffeff +_0801F830: .4byte gUnknown_2023D50 +_0801F834: .4byte gUnknown_2023BE4 +_0801F838: .4byte gUnknown_2023BC4 +_0801F83C: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _0801F858 + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + mov r0, r12 + str r2, [r0] + ldr r5, _0801F854 @ =gUnknown_2023BC4 + b _0801F8A0 + .align 2, 0 +_0801F854: .4byte gUnknown_2023BC4 +_0801F858: + ldr r0, _0801F880 @ =gUnknown_2023D58 + ldr r2, _0801F884 @ =gUnknown_2023BC4 + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, r5 + str r0, [r1] + ldr r0, _0801F888 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + adds r5, r2, 0 + cmp r0, 0 + bne _0801F894 + ldr r1, _0801F88C @ =gUnknown_2023DD8 + ldrb r0, [r5] + adds r0, r1 + ldr r1, _0801F890 @ =gUnknown_2023D6B + b _0801F89C + .align 2, 0 +_0801F880: .4byte gUnknown_2023D58 +_0801F884: .4byte gUnknown_2023BC4 +_0801F888: .4byte gUnknown_2023D74 +_0801F88C: .4byte gUnknown_2023DD8 +_0801F890: .4byte gUnknown_2023D6B +_0801F894: + ldr r1, _0801F8C0 @ =gUnknown_2023DD8 + ldrb r0, [r5] + adds r0, r1 + ldr r1, _0801F8C4 @ =gUnknown_2023D6C +_0801F89C: + ldrb r1, [r1] + strb r1, [r0] +_0801F8A0: + ldr r4, _0801F8C8 @ =gUnknown_2023BE4 + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r4 + ldrh r0, [r2, 0x28] + ldr r1, [r7] + cmp r0, r1 + ble _0801F8D0 + subs r0, r1 + strh r0, [r2, 0x28] + ldr r0, _0801F8CC @ =gUnknown_2023D54 + str r1, [r0] + adds r7, r0, 0 + b _0801F8E0 + .align 2, 0 +_0801F8C0: .4byte gUnknown_2023DD8 +_0801F8C4: .4byte gUnknown_2023D6C +_0801F8C8: .4byte gUnknown_2023BE4 +_0801F8CC: .4byte gUnknown_2023D54 +_0801F8D0: + ldr r2, _0801F954 @ =gUnknown_2023D54 + str r0, [r2] + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + movs r1, 0 + strh r1, [r0, 0x28] + adds r7, r2, 0 +_0801F8E0: + ldr r2, _0801F958 @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0x4 + adds r3, r0, r1 + ldr r0, [r3] + adds r4, r2, 0 + cmp r0, 0 + bne _0801F908 + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801F908 + ldr r0, [r7] + str r0, [r3] +_0801F908: + cmp r6, 0x8 + bhi _0801F990 + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801F98C + ldr r0, _0801F95C @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xDC + beq _0801F98C + ldr r3, _0801F960 @ =gUnknown_2023E8C + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0x4 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x8 + adds r0, r1 + str r2, [r0] + ldr r0, _0801F964 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0801F96C + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801F968 @ =gUnknown_2023D6B + b _0801F974 + .align 2, 0 +_0801F954: .4byte gUnknown_2023D54 +_0801F958: .4byte gUnknown_2023ECC +_0801F95C: .4byte gUnknown_2023D4A +_0801F960: .4byte gUnknown_2023E8C +_0801F964: .4byte gUnknown_2023D74 +_0801F968: .4byte gUnknown_2023D6B +_0801F96C: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801F988 @ =gUnknown_2023D6C +_0801F974: + ldrb r1, [r2] + strb r1, [r0, 0xC] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x10] + b _0801F9FA + .align 2, 0 +_0801F988: .4byte gUnknown_2023D6C +_0801F98C: + cmp r6, 0x8 + bls _0801F9FA +_0801F990: + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801F9FA + ldr r3, _0801F9D4 @ =gUnknown_2023E8C + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0 + adds r1, 0x8 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0xC + adds r0, r1 + str r2, [r0] + ldr r0, _0801F9D8 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0801F9E0 + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801F9DC @ =gUnknown_2023D6B + b _0801F9E8 + .align 2, 0 +_0801F9D4: .4byte gUnknown_2023E8C +_0801F9D8: .4byte gUnknown_2023D74 +_0801F9DC: .4byte gUnknown_2023D6B +_0801F9E0: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801FA28 @ =gUnknown_2023D6C +_0801F9E8: + ldrb r1, [r2] + strb r1, [r0, 0xD] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x11] +_0801F9FA: + mov r1, r12 + ldr r0, [r1] + ldr r1, _0801FA2C @ =0xffefffff + ands r0, r1 + mov r1, r12 + str r0, [r1] + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + ldr r1, _0801FA30 @ =gUnknown_2023C0C + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r5] + bl sub_8017248 + b _0801FA5A + .align 2, 0 +_0801FA28: .4byte gUnknown_2023D6C +_0801FA2C: .4byte 0xffefffff +_0801FA30: .4byte gUnknown_2023C0C +_0801FA34: + ldr r0, _0801FA6C @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _0801FA70 @ =gUnknown_2023BC4 + strb r0, [r1] + ldr r2, _0801FA74 @ =gUnknown_2023ECC + ldrb r1, [r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, 0 + bne _0801FA5A + ldr r0, _0801FA78 @ =0x0000ffff + str r0, [r1] +_0801FA5A: + ldr r1, _0801FA6C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0801FA62: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801FA6C: .4byte gUnknown_2023D74 +_0801FA70: .4byte gUnknown_2023BC4 +_0801FA74: .4byte gUnknown_2023ECC +_0801FA78: .4byte 0x0000ffff + thumb_func_end sub_801F684 + + thumb_func_start sub_801FA7C +sub_801FA7C: @ 801FA7C + push {lr} + ldr r0, _0801FAB8 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801FAB2 + ldr r0, _0801FABC @ =gUnknown_2023D71 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0801FAAA + ldr r0, _0801FAC0 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801FAAA + ldr r0, _0801FAC4 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0xD9 + bl sub_80173AC + ldr r1, _0801FAC8 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x7] +_0801FAAA: + ldr r1, _0801FACC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801FAB2: + pop {r0} + bx r0 + .align 2, 0 +_0801FAB8: .4byte gUnknown_2023BC8 +_0801FABC: .4byte gUnknown_2023D71 +_0801FAC0: .4byte gUnknown_2023DCC +_0801FAC4: .4byte gUnknown_2023D6B +_0801FAC8: .4byte gUnknown_2023E82 +_0801FACC: .4byte gUnknown_2023D74 + thumb_func_end sub_801FA7C + + thumb_func_start sub_801FAD0 +sub_801FAD0: @ 801FAD0 + push {r4,lr} + ldr r0, _0801FB08 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801FB90 + ldr r4, _0801FB0C @ =gUnknown_2023BC4 + ldr r0, _0801FB10 @ =gUnknown_2023D6C + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _0801FB14 @ =gUnknown_2023DCC + ldrb r2, [r1] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0801FB88 + movs r0, 0xFE + ands r0, r2 + cmp r0, 0x10 + beq _0801FB42 + cmp r0, 0x10 + bgt _0801FB1E + cmp r0, 0x4 + beq _0801FB32 + cmp r0, 0x4 + bgt _0801FB18 + cmp r0, 0x2 + beq _0801FB2C + b _0801FB42 + .align 2, 0 +_0801FB08: .4byte gUnknown_2023BC8 +_0801FB0C: .4byte gUnknown_2023BC4 +_0801FB10: .4byte gUnknown_2023D6C +_0801FB14: .4byte gUnknown_2023DCC +_0801FB18: + cmp r0, 0x8 + beq _0801FB88 + b _0801FB42 +_0801FB1E: + cmp r0, 0x40 + beq _0801FB42 + cmp r0, 0x40 + bgt _0801FB42 + cmp r0, 0x20 + beq _0801FB88 + b _0801FB42 +_0801FB2C: + movs r0, 0 + movs r1, 0xE + b _0801FB36 +_0801FB32: + movs r0, 0 + movs r1, 0xC +_0801FB36: + bl sub_800E9C4 + ldrb r0, [r4] + bl sub_8017248 + b _0801FB88 +_0801FB42: + ldrb r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801FB52 + movs r0, 0 + movs r1, 0xE + b _0801FB5E +_0801FB52: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801FB70 + movs r0, 0 + movs r1, 0xC +_0801FB5E: + bl sub_800E9C4 + ldr r0, _0801FB6C @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + b _0801FB88 + .align 2, 0 +_0801FB6C: .4byte gUnknown_2023BC4 +_0801FB70: + movs r0, 0x28 + ands r0, r1 + cmp r0, 0 + bne _0801FB88 + movs r0, 0 + movs r1, 0xD + bl sub_800E9C4 + ldr r0, _0801FB98 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 +_0801FB88: + ldr r1, _0801FB9C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801FB90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FB98: .4byte gUnknown_2023BC4 +_0801FB9C: .4byte gUnknown_2023D74 + thumb_func_end sub_801FAD0 + + thumb_func_start sub_801FBA0 +sub_801FBA0: @ 801FBA0 + push {r4-r7,lr} + movs r3, 0 + ldr r0, _0801FBDC @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0801FBAE + b _0801FD40 +_0801FBAE: + ldr r1, _0801FBE0 @ =gUnknown_2023DCC + ldrb r2, [r1] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r2 + adds r6, r1, 0 + ldr r7, _0801FBE4 @ =gUnknown_2023E82 + cmp r0, 0 + beq _0801FBEC + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _0801FBCE + ldrb r0, [r7, 0x6] + cmp r0, 0x2 + bls _0801FBEC +_0801FBCE: + ldr r1, _0801FBE8 @ =gUnknown_83FE514 + ldrb r0, [r7, 0x6] + lsls r0, 1 + adds r0, r1 + ldrh r3, [r0] + strb r4, [r7, 0x7] + b _0801FD2A + .align 2, 0 +_0801FBDC: .4byte gUnknown_2023BC8 +_0801FBE0: .4byte gUnknown_2023DCC +_0801FBE4: .4byte gUnknown_2023E82 +_0801FBE8: .4byte gUnknown_83FE514 +_0801FBEC: + movs r0, 0x1 + strb r0, [r7, 0x7] + ldrb r5, [r6] + movs r0, 0xFE + ands r0, r5 + cmp r0, 0x10 + beq _0801FC30 + cmp r0, 0x10 + bgt _0801FC12 + cmp r0, 0x4 + beq _0801FC2C + cmp r0, 0x4 + bgt _0801FC0C + cmp r0, 0x2 + beq _0801FC28 + b _0801FC78 +_0801FC0C: + cmp r0, 0x8 + beq _0801FC84 + b _0801FC78 +_0801FC12: + cmp r0, 0x40 + beq _0801FC34 + cmp r0, 0x40 + bgt _0801FC22 + cmp r0, 0x20 + bne _0801FC20 + b _0801FD24 +_0801FC20: + b _0801FC78 +_0801FC22: + cmp r0, 0x80 + beq _0801FC38 + b _0801FC78 +_0801FC28: + movs r3, 0xDE + b _0801FD2E +_0801FC2C: + movs r3, 0xDD + b _0801FD2E +_0801FC30: + movs r3, 0xDA + b _0801FD2E +_0801FC34: + movs r3, 0x99 + b _0801FD2E +_0801FC38: + ldr r4, _0801FC60 @ =gUnknown_2023D68 + ldr r2, _0801FC64 @ =gUnknown_2023BE4 + ldr r3, _0801FC68 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, _0801FC6C @ =gUnknown_2023D6F + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl sub_8017544 + ldr r1, _0801FC70 @ =gUnknown_2023D74 + ldr r0, _0801FC74 @ =gUnknown_81D9641 + b _0801FD3E + .align 2, 0 +_0801FC60: .4byte gUnknown_2023D68 +_0801FC64: .4byte gUnknown_2023BE4 +_0801FC68: .4byte gUnknown_2023D6C +_0801FC6C: .4byte gUnknown_2023D6F +_0801FC70: .4byte gUnknown_2023D74 +_0801FC74: .4byte gUnknown_81D9641 +_0801FC78: + adds r2, r6, 0 + ldrb r5, [r2] + movs r0, 0x8 + ands r0, r5 + cmp r0, 0 + beq _0801FC88 +_0801FC84: + movs r3, 0x1B + b _0801FD2E +_0801FC88: + movs r0, 0x10 + ands r0, r5 + cmp r0, 0 + beq _0801FCB0 + movs r0, 0xEF + ands r0, r5 + movs r1, 0xFD + ands r0, r1 + movs r1, 0xFB + ands r0, r1 + strb r0, [r2] + bl sub_8017544 + ldr r1, _0801FCA8 @ =gUnknown_2023D74 + ldr r0, _0801FCAC @ =gUnknown_81D8FE4 + b _0801FD3E + .align 2, 0 +_0801FCA8: .4byte gUnknown_2023D74 +_0801FCAC: .4byte gUnknown_81D8FE4 +_0801FCB0: + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _0801FCD0 + movs r0, 0x3F + ands r0, r5 + strb r0, [r2] + bl sub_8017544 + ldr r1, _0801FCC8 @ =gUnknown_2023D74 + ldr r0, _0801FCCC @ =gUnknown_81D8FDD + b _0801FD3E + .align 2, 0 +_0801FCC8: .4byte gUnknown_2023D74 +_0801FCCC: .4byte gUnknown_81D8FDD +_0801FCD0: + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _0801FD18 + ldr r4, _0801FD00 @ =gUnknown_2023D68 + ldr r2, _0801FD04 @ =gUnknown_2023BE4 + ldr r3, _0801FD08 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, _0801FD0C @ =gUnknown_2023D6F + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl sub_8017544 + ldr r1, _0801FD10 @ =gUnknown_2023D74 + ldr r0, _0801FD14 @ =gUnknown_81D9641 + b _0801FD3E + .align 2, 0 +_0801FD00: .4byte gUnknown_2023D68 +_0801FD04: .4byte gUnknown_2023BE4 +_0801FD08: .4byte gUnknown_2023D6C +_0801FD0C: .4byte gUnknown_2023D6F +_0801FD10: .4byte gUnknown_2023D74 +_0801FD14: .4byte gUnknown_81D9641 +_0801FD18: + movs r0, 0x20 + ands r0, r5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0801FD28 +_0801FD24: + movs r3, 0xE5 + b _0801FD2E +_0801FD28: + strb r0, [r7, 0x7] +_0801FD2A: + cmp r3, 0 + beq _0801FD38 +_0801FD2E: + adds r0, r3, 0 + ldr r1, _0801FD48 @ =gUnknown_2023D6B + ldrb r1, [r1] + bl sub_80173AC +_0801FD38: + ldr r1, _0801FD4C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 +_0801FD3E: + str r0, [r1] +_0801FD40: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801FD48: .4byte gUnknown_2023D6B +_0801FD4C: .4byte gUnknown_2023D74 + thumb_func_end sub_801FBA0 + + thumb_func_start sub_801FD50 +sub_801FD50: @ 801FD50 + push {r4,lr} + ldr r0, _0801FD80 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801FD7A + ldr r4, _0801FD84 @ =gUnknown_2023D74 + ldr r1, [r4] + ldrb r0, [r1, 0x1] + ldrb r1, [r1, 0x2] + lsls r1, 8 + orrs r0, r1 + ldr r1, _0801FD88 @ =gUnknown_2023D6B + ldrb r1, [r1] + bl sub_80173AC + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, _0801FD8C @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x7] +_0801FD7A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801FD80: .4byte gUnknown_2023BC8 +_0801FD84: .4byte gUnknown_2023D74 +_0801FD88: .4byte gUnknown_2023D6B +_0801FD8C: .4byte gUnknown_2023E82 + thumb_func_end sub_801FD50 + + thumb_func_start sub_801FD90 +sub_801FD90: @ 801FD90 + push {r4,r5,lr} + ldr r5, _0801FDC4 @ =gUnknown_2023BC4 + ldr r0, _0801FDC8 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _0801FDCC @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl sub_800E3EC + ldrb r0, [r5] + bl sub_8017248 + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, _0801FDD0 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x7] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FDC4: .4byte gUnknown_2023BC4 +_0801FDC8: .4byte gUnknown_2023D6B +_0801FDCC: .4byte gUnknown_2023D74 +_0801FDD0: .4byte gUnknown_2023E82 + thumb_func_end sub_801FD90 + + thumb_func_start sub_801FDD4 +sub_801FDD4: @ 801FDD4 + push {r4-r6,lr} + ldr r0, _0801FDF0 @ =gUnknown_2023BC8 + ldr r4, [r0] + cmp r4, 0 + bne _0801FE22 + ldr r6, _0801FDF4 @ =gUnknown_2023E82 + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0801FDFC + ldr r1, _0801FDF8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] + b _0801FE22 + .align 2, 0 +_0801FDF0: .4byte gUnknown_2023BC8 +_0801FDF4: .4byte gUnknown_2023E82 +_0801FDF8: .4byte gUnknown_2023D74 +_0801FDFC: + ldr r5, _0801FE28 @ =gUnknown_2023D74 + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, _0801FE2C @ =gUnknown_2023E7C + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _0801FE22 + movs r1, 0 + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] + strb r1, [r6, 0x7] +_0801FE22: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801FE28: .4byte gUnknown_2023D74 +_0801FE2C: .4byte gUnknown_2023E7C + thumb_func_end sub_801FDD4 + + thumb_func_start sub_801FE30 +sub_801FE30: @ 801FE30 + push {r4,r5,lr} + ldr r0, _0801FE74 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801FE6E + ldr r4, _0801FE78 @ =gUnknown_2023D74 + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r5, _0801FE7C @ =gUnknown_2023E82 + ldrb r0, [r5, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + ldr r1, _0801FE80 @ =gUnknown_2023D6B + ldrb r1, [r1] + bl sub_80173AC + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + movs r0, 0x1 + strb r0, [r5, 0x7] +_0801FE6E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FE74: .4byte gUnknown_2023BC8 +_0801FE78: .4byte gUnknown_2023D74 +_0801FE7C: .4byte gUnknown_2023E82 +_0801FE80: .4byte gUnknown_2023D6B + thumb_func_end sub_801FE30 + + thumb_func_start sub_801FE84 +sub_801FE84: @ 801FE84 + push {r4-r6,lr} + ldr r0, _0801FED4 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _0801FECE + ldr r5, _0801FED8 @ =gUnknown_2023D74 + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r6, _0801FEDC @ =gUnknown_2023E82 + ldrb r0, [r6, 0x5] + lsls r0, 1 + adds r1, r0 + ldr r4, _0801FEE0 @ =gUnknown_2023BC4 + ldr r0, _0801FEE4 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r4] + ldrh r1, [r1] + movs r0, 0 + bl sub_800E3EC + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] + movs r0, 0x1 + strb r0, [r6, 0x7] +_0801FECE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801FED4: .4byte gUnknown_2023BC8 +_0801FED8: .4byte gUnknown_2023D74 +_0801FEDC: .4byte gUnknown_2023E82 +_0801FEE0: .4byte gUnknown_2023BC4 +_0801FEE4: .4byte gUnknown_2023D6B + thumb_func_end sub_801FE84 + + thumb_func_start sub_801FEE8 +sub_801FEE8: @ 801FEE8 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r0, _0801FF18 @ =gUnknown_2023BCC + ldrb r3, [r0] + cmp r1, r3 + bge _0801FF0E + ldr r4, _0801FF1C @ =gUnknown_2023BDE + ldrb r0, [r4] + cmp r0, r2 + beq _0801FF0E +_0801FF00: + adds r1, 0x1 + cmp r1, r3 + bge _0801FF0E + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r2 + bne _0801FF00 +_0801FF0E: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801FF18: .4byte gUnknown_2023BCC +_0801FF1C: .4byte gUnknown_2023BDE + thumb_func_end sub_801FEE8 + + thumb_func_start sub_801FF20 +sub_801FF20: @ 801FF20 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r0, 0 + mov r10, r0 + movs r7, 0 + movs r1, 0x1 + str r1, [sp, 0x4] + ldr r1, _0801FF64 @ =gUnknown_2023E82 + ldrb r3, [r1, 0x3] + movs r0, 0x40 + ands r0, r3 + adds r6, r1, 0 + cmp r0, 0 + beq _0801FF78 + ldr r2, _0801FF68 @ =gUnknown_2023D6E + ldr r0, _0801FF6C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0xBF + ands r0, r3 + strb r0, [r6, 0x3] + movs r7, 0x40 + ldr r1, _0801FF70 @ =gUnknown_2023FC4 + ldr r0, _0801FF74 @ =gUnknown_2023D6C + b _0801FF84 + .align 2, 0 +_0801FF64: .4byte gUnknown_2023E82 +_0801FF68: .4byte gUnknown_2023D6E +_0801FF6C: .4byte gUnknown_2023D6B +_0801FF70: .4byte gUnknown_2023FC4 +_0801FF74: .4byte gUnknown_2023D6C +_0801FF78: + ldr r2, _08020094 @ =gUnknown_2023D6E + ldr r0, _08020098 @ =gUnknown_2023D6C + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _0802009C @ =gUnknown_2023FC4 + ldr r0, _080200A0 @ =gUnknown_2023D6B +_0801FF84: + ldrb r0, [r0] + strb r0, [r1, 0x17] + mov r9, r2 + ldr r0, _080200A4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 9 + ands r0, r1 + cmp r0, 0 + beq _0801FFB2 + ldrb r0, [r6, 0x3] + cmp r0, 0x1 + beq _0801FFB2 + mov r2, r9 + ldrb r0, [r2] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0801FFB2 + bl _080210EC +_0801FFB2: + ldr r3, _080200A8 @ =gUnknown_2023BE4 + ldr r2, _08020094 @ =gUnknown_2023D6E + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + mov r9, r2 + cmp r0, 0x13 + bne _0801FFE6 + ldr r0, _080200AC @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _0801FFE6 + cmp r4, 0 + bne _0801FFE6 + ldr r0, _080200B0 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + cmp r0, 0x9 + bhi _0801FFE6 + bl _080210EC +_0801FFE6: + mov r3, r9 + ldrb r0, [r3] + bl sub_80751D8 + ldr r2, _080200B4 @ =gUnknown_2023DDE + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08020020 + ldr r0, _080200AC @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _08020020 + cmp r4, 0 + bne _08020020 + ldr r0, _080200B0 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + cmp r0, 0x7 + bhi _08020020 + bl _080210EC +_08020020: + ldr r3, _080200A8 @ =gUnknown_2023BE4 + ldr r2, _08020094 @ =gUnknown_2023D6E + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + mov r9, r2 + mov r8, r3 + cmp r0, 0 + bne _08020046 + ldr r0, _080200B0 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + cmp r0, 0xB + beq _08020046 + cmp r0, 0x1F + beq _08020046 + bl _080210EC +_08020046: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + mov r1, r8 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08020068 + cmp r7, 0x40 + beq _08020068 + bl _080210EC +_08020068: + ldr r0, _080200B0 @ =gUnknown_2023E82 + ldrb r1, [r0, 0x3] + adds r6, r0, 0 + cmp r1, 0x6 + bls _08020074 + b _080206A2 +_08020074: + ldr r1, _080200B8 @ =gUnknown_825053C + ldrb r0, [r6, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x10 + bne _08020084 + b _08020270 +_08020084: + cmp r0, 0x10 + bhi _080200BC + cmp r0, 0x7 + beq _080200D6 + cmp r0, 0x8 + bne _08020092 + b _0802018C +_08020092: + b _08020570 + .align 2, 0 +_08020094: .4byte gUnknown_2023D6E +_08020098: .4byte gUnknown_2023D6C +_0802009C: .4byte gUnknown_2023FC4 +_080200A0: .4byte gUnknown_2023D6B +_080200A4: .4byte gUnknown_2022B4C +_080200A8: .4byte gUnknown_2023BE4 +_080200AC: .4byte gUnknown_2023DD0 +_080200B0: .4byte gUnknown_2023E82 +_080200B4: .4byte gUnknown_2023DDE +_080200B8: .4byte gUnknown_825053C +_080200BC: + cmp r0, 0x40 + bne _080200C2 + b _080203E4 +_080200C2: + cmp r0, 0x40 + bhi _080200CE + cmp r0, 0x20 + bne _080200CC + b _08020346 +_080200CC: + b _08020570 +_080200CE: + cmp r0, 0x80 + bne _080200D4 + b _08020440 +_080200D4: + b _08020570 +_080200D6: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + beq _08020138 + ldr r0, _08020130 @ =gUnknown_2023BC4 + movs r1, 0 + strb r1, [r0] + ldr r1, _08020134 @ =gUnknown_2023BCC + ldrb r3, [r1] + adds r7, r0, 0 + mov r12, r1 + cmp r3, 0 + beq _08020144 + mov r4, r8 + ldr r0, [r4, 0x50] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + bne _08020144 + adds r1, r7, 0 + mov r6, r8 + adds r6, 0x50 + movs r5, 0x58 + movs r4, 0x70 +_08020110: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcs _08020144 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08020110 + b _08020144 + .align 2, 0 +_08020130: .4byte gUnknown_2023BC4 +_08020134: .4byte gUnknown_2023BCC +_08020138: + ldr r0, _08020184 @ =gUnknown_2023BC4 + ldr r2, _08020188 @ =gUnknown_2023BCC + ldrb r1, [r2] + strb r1, [r0] + adds r7, r0, 0 + mov r12, r2 +_08020144: + mov r0, r9 + ldrb r2, [r0] + movs r0, 0x58 + adds r1, r2, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802015C + b _08020570 +_0802015C: + ldrb r0, [r7] + mov r3, r12 + ldrb r3, [r3] + cmp r0, r3 + beq _08020168 + b _08020570 +_08020168: + mov r4, r8 + adds r0, r1, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x48 + bne _08020176 + b _08020570 +_08020176: + cmp r0, 0xF + bne _0802017C + b _08020570 +_0802017C: + adds r0, r2, 0 + bl sub_80172E8 + b _08020560 + .align 2, 0 +_08020184: .4byte gUnknown_2023BC4 +_08020188: .4byte gUnknown_2023BCC +_0802018C: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _080201E4 + cmp r4, 0x1 + beq _080201A6 + cmp r5, 0x80 + bne _080201E4 +_080201A6: + ldr r0, _080201D4 @ =gUnknown_2023D6A + strb r1, [r0] + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x11 + bl sub_80C71D0 + ldr r4, _080201D8 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _080201DC @ =gUnknown_81D9438 +_080201C0: + str r0, [r4] + ldr r2, _080201E0 @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _080201D2 + b _08020484 +_080201D2: + b _080204A8 + .align 2, 0 +_080201D4: .4byte gUnknown_2023D6A +_080201D8: .4byte gUnknown_2023D74 +_080201DC: .4byte gUnknown_81D9438 +_080201E0: .4byte gUnknown_2023DD0 +_080201E4: + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x58 + muls r0, r1 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _08020208 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08020208 + cmp r1, 0x8 + beq _08020208 + cmp r0, 0x8 + bne _08020222 +_08020208: + ldr r0, _0802026C @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08020222 + cmp r4, 0x1 + bne _0802021C + b _080204E8 +_0802021C: + cmp r5, 0x80 + bne _08020222 + b _080204E8 +_08020222: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r1, r0 + mov r4, r8 + adds r3, r1, r4 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0802023A + b _08020570 +_0802023A: + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08020244 + b _08020570 +_08020244: + cmp r4, 0x8 + bne _0802024A + b _08020570 +_0802024A: + cmp r0, 0x8 + bne _08020250 + b _08020570 +_08020250: + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802025E + b _08020570 +_0802025E: + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + bne _0802026A + b _08020570 +_0802026A: + b _08020560 + .align 2, 0 +_0802026C: .4byte gUnknown_2023DD0 +_08020270: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x29 + bne _080202B4 + cmp r4, 0x1 + beq _0802028A + cmp r5, 0x80 + bne _080202B4 +_0802028A: + ldr r0, _080202A8 @ =gUnknown_2023D6A + strb r1, [r0] + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x29 + bl sub_80C71D0 + ldr r4, _080202AC @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _080202B0 @ =gUnknown_81D9420 + b _080201C0 + .align 2, 0 +_080202A8: .4byte gUnknown_2023D6A +_080202AC: .4byte gUnknown_2023D74 +_080202B0: .4byte gUnknown_81D9420 +_080202B4: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + mov r2, r8 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + beq _080202D4 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _08020304 +_080202D4: + ldr r0, _080202F8 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08020304 + cmp r4, 0x1 + beq _080202EA + cmp r5, 0x80 + bne _08020304 +_080202EA: + ldr r4, _080202FC @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020300 @ =gUnknown_81D9420 + b _080204F4 + .align 2, 0 +_080202F8: .4byte gUnknown_2023DD0 +_080202FC: .4byte gUnknown_2023D74 +_08020300: .4byte gUnknown_81D9420 +_08020304: + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x58 + adds r2, r0, 0 + muls r2, r1 + mov r4, r8 + adds r1, r2, r4 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + bne _0802031E + b _08020570 +_0802031E: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _0802032A + b _08020570 +_0802032A: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x29 + bne _08020336 + b _08020570 +_08020336: + mov r0, r8 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08020344 + b _08020570 +_08020344: + b _08020560 +_08020346: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08020382 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _08020382 + ldr r0, _080203D8 @ =gUnknown_2023F1C + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08020382 + movs r1, 0 + str r1, [sp, 0x4] +_08020382: + ldr r4, _080203DC @ =gUnknown_2023BE4 + ldr r0, _080203E0 @ =gUnknown_2023D6E + ldrb r3, [r0] + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r1, r2, r4 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + bne _0802039C + b _08020570 +_0802039C: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + bne _080203A8 + b _08020570 +_080203A8: + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080203B6 + b _08020570 +_080203B6: + ldr r2, [sp, 0x4] + cmp r2, 0 + bne _080203BE + b _08020570 +_080203BE: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x28 + bne _080203CA + b _08020570 +_080203CA: + adds r0, r3, 0 + bl sub_80172E8 + movs r3, 0x1 + mov r10, r3 + b _08020570 + .align 2, 0 +_080203D8: .4byte gUnknown_2023F1C +_080203DC: .4byte gUnknown_2023BE4 +_080203E0: .4byte gUnknown_2023D6E +_080203E4: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + mov r2, r8 + adds r0, r1, r2 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x7 + bne _0802042C + cmp r4, 0x1 + beq _08020402 + cmp r5, 0x80 + beq _08020402 + b _08020570 +_08020402: + ldr r0, _08020420 @ =gUnknown_2023D6A + strb r2, [r0] + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x7 + bl sub_80C71D0 + ldr r4, _08020424 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020428 @ =gUnknown_81D942C + b _080201C0 + .align 2, 0 +_08020420: .4byte gUnknown_2023D6A +_08020424: .4byte gUnknown_2023D74 +_08020428: .4byte gUnknown_81D942C +_0802042C: + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802043A + b _08020570 +_0802043A: + movs r4, 0x1 + mov r10, r4 + b _08020570 +_08020440: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _080204AE + cmp r4, 0x1 + beq _0802045A + cmp r5, 0x80 + bne _080204AE +_0802045A: + ldr r0, _08020494 @ =gUnknown_2023D6A + strb r1, [r0] + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x11 + bl sub_80C71D0 + ldr r4, _08020498 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _0802049C @ =gUnknown_81D9438 + str r0, [r4] + ldr r2, _080204A0 @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _080204A8 +_08020484: + movs r0, 0x1 + strb r0, [r6, 0x5] + ldr r0, _080204A4 @ =0xffffdfff + ands r1, r0 + str r1, [r2] + bl _0802110A + .align 2, 0 +_08020494: .4byte gUnknown_2023D6A +_08020498: .4byte gUnknown_2023D74 +_0802049C: .4byte gUnknown_81D9438 +_080204A0: .4byte gUnknown_2023DD0 +_080204A4: .4byte 0xffffdfff +_080204A8: + strb r0, [r6, 0x5] + bl _0802110A +_080204AE: + mov r2, r9 + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _080204D2 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _080204D2 + cmp r1, 0x8 + beq _080204D2 + cmp r0, 0x8 + bne _08020510 +_080204D2: + ldr r0, _08020500 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08020510 + cmp r4, 0x1 + beq _080204E8 + cmp r5, 0x80 + bne _08020510 +_080204E8: + ldr r4, _08020504 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020508 @ =gUnknown_81D9438 +_080204F4: + str r0, [r4] + ldr r1, _0802050C @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + bl _0802110A + .align 2, 0 +_08020500: .4byte gUnknown_2023DD0 +_08020504: .4byte gUnknown_2023D74 +_08020508: .4byte gUnknown_81D9438 +_0802050C: .4byte gUnknown_2023E82 +_08020510: + mov r3, r9 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r2, r8 + adds r2, 0x4C + adds r5, r0, r2 + ldr r4, [r5] + cmp r4, 0 + bne _08020570 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r3, [r0] + cmp r3, 0x3 + beq _08020566 + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08020566 + cmp r3, 0x8 + beq _08020566 + cmp r0, 0x8 + beq _08020566 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + beq _08020570 + mov r4, r9 + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x9 + negs r2, r2 + ands r0, r2 + str r0, [r1] +_08020560: + movs r0, 0x1 + mov r10, r0 + b _08020570 +_08020566: + ldr r0, _080205B4 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_08020570: + mov r1, r10 + cmp r1, 0x1 + beq _08020578 + b _08020694 +_08020578: + ldr r0, _080205B8 @ =gUnknown_2023D74 + ldr r0, [r0] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _080205BC @ =gUnknown_825053C + ldr r0, _080205C0 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r3, [r0] + cmp r3, 0x7 + bne _080205CC + bl sub_8044EC8 + ldr r2, _080205C4 @ =gUnknown_2023BE4 + ldr r1, _080205C8 @ =gUnknown_2023D6E + ldrb r3, [r1] + movs r1, 0x58 + muls r3, r1 + adds r2, 0x4C + adds r3, r2 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + b _080205E0 + .align 2, 0 +_080205B4: .4byte gUnknown_2023DCC +_080205B8: .4byte gUnknown_2023D74 +_080205BC: .4byte gUnknown_825053C +_080205C0: .4byte gUnknown_2023E82 +_080205C4: .4byte gUnknown_2023BE4 +_080205C8: .4byte gUnknown_2023D6E +_080205CC: + ldr r2, _08020630 @ =gUnknown_2023BE4 + ldr r0, _08020634 @ =gUnknown_2023D6E + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r2, 0x4C + adds r1, r2 + ldr r0, [r1] + orrs r0, r3 + str r0, [r1] +_080205E0: + ldr r2, _08020638 @ =gUnknown_2023D74 + ldr r1, _0802063C @ =gUnknown_825062C + ldr r5, _08020640 @ =gUnknown_2023E82 + ldrb r0, [r5, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r4, _08020644 @ =gUnknown_2023BC4 + ldr r1, _08020634 @ =gUnknown_2023D6E + ldrb r0, [r1] + strb r0, [r4] + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + ldr r1, _08020648 @ =gUnknown_2023C30 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + ldr r2, _0802064C @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _08020654 + movs r0, 0x1 + strb r0, [r5, 0x5] + ldr r0, _08020650 @ =0xffffdfff + ands r1, r0 + str r1, [r2] + b _08020656 + .align 2, 0 +_08020630: .4byte gUnknown_2023BE4 +_08020634: .4byte gUnknown_2023D6E +_08020638: .4byte gUnknown_2023D74 +_0802063C: .4byte gUnknown_825062C +_08020640: .4byte gUnknown_2023E82 +_08020644: .4byte gUnknown_2023BC4 +_08020648: .4byte gUnknown_2023C30 +_0802064C: .4byte gUnknown_2023DD0 +_08020650: .4byte 0xffffdfff +_08020654: + strb r0, [r5, 0x5] +_08020656: + ldr r0, _08020688 @ =gUnknown_2023E82 + ldrb r2, [r0, 0x3] + adds r6, r0, 0 + cmp r2, 0x2 + beq _08020670 + cmp r2, 0x6 + beq _08020670 + cmp r2, 0x5 + beq _08020670 + cmp r2, 0x3 + beq _08020670 + bl _0802110A +_08020670: + ldr r0, _0802068C @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xB4 + ldrb r1, [r6, 0x3] + strb r1, [r0] + ldr r2, _08020690 @ =gUnknown_2023DD0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 7 + bl _08021008 + .align 2, 0 +_08020688: .4byte gUnknown_2023E82 +_0802068C: .4byte gUnknown_2023FE8 +_08020690: .4byte gUnknown_2023DD0 +_08020694: + mov r2, r10 + cmp r2, 0 + beq _0802069E + bl _0802110A +_0802069E: + bl _080210EC +_080206A2: + mov r3, r9 + ldrb r1, [r3] + movs r0, 0x58 + muls r1, r0 + mov r0, r8 + adds r0, 0x50 + adds r1, r0 + ldr r2, _080206DC @ =gUnknown_825053C + ldrb r3, [r6, 0x3] + lsls r0, r3, 2 + adds r0, r2 + ldr r1, [r1] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080206C6 + bl _080210EC +_080206C6: + subs r0, r3, 0x7 + cmp r0, 0x34 + bls _080206D0 + bl _0802110A +_080206D0: + lsls r0, 2 + ldr r1, _080206E0 @ =_080206E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080206DC: .4byte gUnknown_825053C +_080206E0: .4byte _080206E4 + .align 2, 0 +_080206E4: + .4byte _080207B8 + .4byte _0802082C + .4byte _080209A0 + .4byte _080208B8 + .4byte _08020934 + .4byte _080209D8 + .4byte _08020A20 + .4byte _08020AEC + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B30 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020B74 + .4byte _08020C40 + .4byte _08020C88 + .4byte _08020CA8 + .4byte _08020E78 + .4byte _08020EB4 + .4byte _08020ED0 + .4byte _08020EE8 + .4byte _08020F00 + .4byte _08020F60 + .4byte _08020F78 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BB8 + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020BFC + .4byte _08020FBC + .4byte _08021018 + .4byte _0802110A + .4byte _0802110A + .4byte _0802110A + .4byte _0802110A + .4byte _080210FC +_080207B8: + mov r4, r9 + ldrb r0, [r4] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + mov r2, r8 + adds r0, r1, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x14 + bne _080207D2 + bl _080210EC +_080207D2: + mov r4, r8 + adds r4, 0x50 + adds r0, r1, r4 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080207E6 + bl _080210EC +_080207E6: + bl sub_8044EC8 + mov r3, r9 + ldrb r1, [r3] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 16 + adds r1, 0x2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _08020820 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _08020824 @ =gUnknown_825062C + ldr r0, _08020828 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _08021108 + .align 2, 0 +_08020820: .4byte gUnknown_2023D74 +_08020824: .4byte gUnknown_825062C +_08020828: .4byte gUnknown_2023E82 +_0802082C: + mov r0, r9 + ldrb r2, [r0] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x27 + bne _08020870 + cmp r4, 0x1 + beq _0802084C + cmp r5, 0x80 + beq _0802084C + bl _080210EC +_0802084C: + ldr r0, _08020864 @ =gUnknown_2023D6A + strb r1, [r0] + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x27 + bl sub_80C71D0 + ldr r1, _08020868 @ =gUnknown_2023D74 + ldr r0, _0802086C @ =gUnknown_81D9452 + str r0, [r1] + bl _0802110A + .align 2, 0 +_08020864: .4byte gUnknown_2023D6A +_08020868: .4byte gUnknown_2023D74 +_0802086C: .4byte gUnknown_81D9452 +_08020870: + adds r0, r2, 0 + bl sub_801FEE8 + ldr r1, _080208AC @ =gUnknown_2023BE2 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bhi _08020886 + bl _080210EC +_08020886: + mov r2, r9 + ldrb r0, [r2] + adds r2, r0, 0 + muls r2, r6 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r1, _080208B0 @ =gUnknown_825053C + ldr r0, _080208B4 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] + bl _080210EC + .align 2, 0 +_080208AC: .4byte gUnknown_2023BE2 +_080208B0: .4byte gUnknown_825053C +_080208B4: .4byte gUnknown_2023E82 +_080208B8: + mov r3, r9 + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + mov r4, r8 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0x70 + ands r0, r1 + cmp r0, 0 + beq _080208D4 + bl _080210EC +_080208D4: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, _08020920 @ =gUnknown_2023DB8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _08020924 @ =gUnknown_2023D4A + ldrh r1, [r1] + strh r1, [r0] + bl sub_8044EC8 + mov r2, r9 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + lsls r1, 4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _08020928 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _0802092C @ =gUnknown_825062C + ldr r0, _08020930 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _08021108 + .align 2, 0 +_08020920: .4byte gUnknown_2023DB8 +_08020924: .4byte gUnknown_2023D4A +_08020928: .4byte gUnknown_2023D74 +_0802092C: .4byte gUnknown_825062C +_08020930: .4byte gUnknown_2023E82 +_08020934: + ldr r5, _08020984 @ =gUnknown_2023D6B + ldrb r0, [r5] + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0802096C + ldr r4, _08020988 @ =gUnknown_2023E7E + ldrh r3, [r4] + ldr r2, _0802098C @ =gUnknown_2023BE4 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r3, r0 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r3, r0 + bls _0802096C + ldr r3, _08020990 @ =0x0000ffff + adds r0, r3, 0 + strh r0, [r4] +_0802096C: + ldr r4, _08020994 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _08020998 @ =gUnknown_825062C + ldr r0, _0802099C @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _08021108 + .align 2, 0 +_08020984: .4byte gUnknown_2023D6B +_08020988: .4byte gUnknown_2023E7E +_0802098C: .4byte gUnknown_2023BE4 +_08020990: .4byte 0x0000ffff +_08020994: .4byte gUnknown_2023D74 +_08020998: .4byte gUnknown_825062C +_0802099C: .4byte gUnknown_2023E82 +_080209A0: + mov r4, r9 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + mov r1, r8 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080209B6 + b _080210EC +_080209B6: + bl sub_8044EC8 + ldr r4, _080209D4 @ =gUnknown_2023E82 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x3 + strb r0, [r4, 0x3] + movs r0, 0 + movs r1, 0 + bl sub_801FF20 + b _0802110A + .align 2, 0 +_080209D4: .4byte gUnknown_2023E82 +_080209D8: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, _08020A14 @ =gUnknown_2023DB8 + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldr r1, _08020A18 @ =gUnknown_2023D4A + ldrh r1, [r1] + strh r1, [r0] + ldr r0, _08020A1C @ =gUnknown_2023E8C + ldrb r1, [r2] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x1] + b _080210EC + .align 2, 0 +_08020A14: .4byte gUnknown_2023DB8 +_08020A18: .4byte gUnknown_2023D4A +_08020A1C: .4byte gUnknown_2023E8C +_08020A20: + mov r3, r9 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r4, r8 + adds r4, 0x50 + adds r0, r4 + ldr r5, [r0] + movs r0, 0xE0 + lsls r0, 8 + ands r5, r0 + cmp r5, 0 + beq _08020A3C + b _080210EC +_08020A3C: + bl sub_8044EC8 + mov r2, r9 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r6 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x3 + lsls r1, 13 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + mov r3, r9 + ldrb r1, [r3] + ldr r2, _08020AD0 @ =gUnknown_2023FE8 + ldr r0, [r2] + lsls r1, 1 + adds r1, r0 + ldr r6, _08020AD4 @ =gUnknown_2023D4A + ldrh r0, [r6] + strb r0, [r1, 0x4] + ldrb r1, [r3] + ldr r0, [r2] + lsls r1, 1 + adds r1, r0 + ldrh r0, [r6] + lsrs r0, 8 + strb r0, [r1, 0x5] + ldrb r1, [r3] + ldr r0, [r2] + adds r1, r0 + ldr r0, _08020AD8 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r1, 0x14] + ldr r4, _08020ADC @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _08020AE0 @ =gUnknown_825062C + ldr r2, _08020AE4 @ =gUnknown_2023E82 + ldrb r0, [r2, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4] + strb r5, [r2, 0x5] + ldr r3, _08020AE8 @ =gUnknown_83FE664 + ldrh r0, [r3] + ldrh r4, [r6] + cmp r0, r4 + bne _08020AAA + b _0802110A +_08020AAA: + adds r1, r2, 0 + adds r2, r6, 0 +_08020AAE: + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _08020ABE + b _0802110A +_08020ABE: + ldrb r0, [r1, 0x5] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + ldrh r4, [r2] + cmp r0, r4 + bne _08020AAE + b _0802110A + .align 2, 0 +_08020AD0: .4byte gUnknown_2023FE8 +_08020AD4: .4byte gUnknown_2023D4A +_08020AD8: .4byte gUnknown_2023D6B +_08020ADC: .4byte gUnknown_2023D74 +_08020AE0: .4byte gUnknown_825062C +_08020AE4: .4byte gUnknown_2023E82 +_08020AE8: .4byte gUnknown_83FE664 +_08020AEC: + ldr r1, _08020B1C @ =gUnknown_2023D50 + ldr r0, _08020B20 @ =gUnknown_2023D54 + ldr r0, [r0] + cmp r0, 0 + bge _08020AF8 + adds r0, 0x3 +_08020AF8: + asrs r0, 2 + str r0, [r1] + cmp r0, 0 + bne _08020B04 + movs r0, 0x1 + str r0, [r1] +_08020B04: + ldr r4, _08020B24 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _08020B28 @ =gUnknown_825062C + ldr r0, _08020B2C @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _08021108 + .align 2, 0 +_08020B1C: .4byte gUnknown_2023D50 +_08020B20: .4byte gUnknown_2023D54 +_08020B24: .4byte gUnknown_2023D74 +_08020B28: .4byte gUnknown_825062C +_08020B2C: .4byte gUnknown_2023E82 +_08020B30: + ldrb r1, [r6, 0x3] + adds r1, 0xF2 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x10 + adds r2, r7, 0 + movs r3, 0 + bl sub_8027BFC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08020B4C + b _080210EC +_08020B4C: + ldr r2, _08020B68 @ =gUnknown_2023FC4 + ldrb r1, [r6, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, _08020B6C @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020B70 @ =gUnknown_81D6BD1 + b _08021108 + .align 2, 0 +_08020B68: .4byte gUnknown_2023FC4 +_08020B6C: .4byte gUnknown_2023D74 +_08020B70: .4byte gUnknown_81D6BD1 +_08020B74: + movs r0, 0x70 + negs r0, r0 + ldrb r1, [r6, 0x3] + adds r1, 0xEB + lsls r1, 24 + lsrs r1, 24 + adds r2, r7, 0 + movs r3, 0 + bl sub_8027BFC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08020B92 + b _080210EC +_08020B92: + ldr r2, _08020BAC @ =gUnknown_2023FC4 + ldrb r1, [r6, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, _08020BB0 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020BB4 @ =gUnknown_81D6C62 + b _08021108 + .align 2, 0 +_08020BAC: .4byte gUnknown_2023FC4 +_08020BB0: .4byte gUnknown_2023D74 +_08020BB4: .4byte gUnknown_81D6C62 +_08020BB8: + ldrb r1, [r6, 0x3] + adds r1, 0xDA + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x20 + adds r2, r7, 0 + movs r3, 0 + bl sub_8027BFC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08020BD4 + b _080210EC +_08020BD4: + ldr r2, _08020BF0 @ =gUnknown_2023FC4 + ldrb r1, [r6, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, _08020BF4 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020BF8 @ =gUnknown_81D6BD1 + b _08021108 + .align 2, 0 +_08020BF0: .4byte gUnknown_2023FC4 +_08020BF4: .4byte gUnknown_2023D74 +_08020BF8: .4byte gUnknown_81D6BD1 +_08020BFC: + movs r0, 0x60 + negs r0, r0 + ldrb r1, [r6, 0x3] + adds r1, 0xD3 + lsls r1, 24 + lsrs r1, 24 + adds r2, r7, 0 + movs r3, 0 + bl sub_8027BFC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08020C1A + b _080210EC +_08020C1A: + ldr r2, _08020C34 @ =gUnknown_2023FC4 + ldrb r1, [r6, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, _08020C38 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020C3C @ =gUnknown_81D6C62 + b _08021108 + .align 2, 0 +_08020C34: .4byte gUnknown_2023FC4 +_08020C38: .4byte gUnknown_2023D74 +_08020C3C: .4byte gUnknown_81D6C62 +_08020C40: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r2] + ldr r2, _08020C7C @ =gUnknown_2023E0C + mov r3, r9 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x19] + ldr r1, _08020C80 @ =gUnknown_2023DB8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _08020C84 @ =gUnknown_2023D4A + ldrh r1, [r1] + strh r1, [r0] + b _080210EC + .align 2, 0 +_08020C7C: .4byte gUnknown_2023E0C +_08020C80: .4byte gUnknown_2023DB8 +_08020C84: .4byte gUnknown_2023D4A +_08020C88: + ldr r0, _08020CA4 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 16 +_08020C9E: + orrs r0, r1 + str r0, [r2] + b _080210EC + .align 2, 0 +_08020CA4: .4byte gUnknown_2023D6B +_08020CA8: + ldr r5, _08020D64 @ =gUnknown_2022B4C + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + beq _08020CB8 + b _080210EC +_08020CB8: + ldr r4, _08020D68 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08020CEA + ldr r0, [r5] + ldr r1, _08020D6C @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _08020D26 + ldr r0, _08020D70 @ =gUnknown_20386AE + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _08020CEA + b _080210EC +_08020CEA: + ldr r0, _08020D64 @ =gUnknown_2022B4C + ldr r0, [r0] + ldr r1, _08020D6C @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _08020D26 + ldr r0, _08020D70 @ =gUnknown_20386AE + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _08020D26 + ldr r0, _08020D74 @ =gUnknown_2023F20 + adds r0, 0x29 + adds r0, r6, r0 + ldrb r1, [r0] + ldr r3, _08020D78 @ =gUnknown_825E45C + ldr r2, _08020D7C @ =gUnknown_2023BCE + ldr r0, _08020D68 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08020D26 + b _080210EC +_08020D26: + ldr r2, _08020D80 @ =gUnknown_2023BE4 + ldr r1, _08020D84 @ =gUnknown_2023D6C + ldrb r0, [r1] + movs r3, 0x58 + muls r0, r3 + adds r4, r0, r2 + ldrh r0, [r4, 0x2E] + adds r7, r1, 0 + mov r8, r2 + cmp r0, 0 + beq _08020D94 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _08020D94 + ldr r1, _08020D88 @ =gUnknown_2023D74 + ldr r0, _08020D8C @ =gUnknown_81D948E + str r0, [r1] + ldr r1, _08020D90 @ =gUnknown_2023D6A + ldrb r0, [r7] + muls r0, r3 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl sub_80C71D0 + b _0802110A + .align 2, 0 +_08020D64: .4byte gUnknown_2022B4C +_08020D68: .4byte gUnknown_2023D6B +_08020D6C: .4byte 0x00000902 +_08020D70: .4byte gUnknown_20386AE +_08020D74: .4byte gUnknown_2023F20 +_08020D78: .4byte gUnknown_825E45C +_08020D7C: .4byte gUnknown_2023BCE +_08020D80: .4byte gUnknown_2023BE4 +_08020D84: .4byte gUnknown_2023D6C +_08020D88: .4byte gUnknown_2023D74 +_08020D8C: .4byte gUnknown_81D948E +_08020D90: .4byte gUnknown_2023D6A +_08020D94: + ldr r4, _08020E60 @ =gUnknown_2023D6B + mov r10, r4 + ldrb r2, [r4] + movs r0, 0x58 + mov r9, r0 + mov r0, r9 + muls r0, r2 + add r0, r8 + ldrh r4, [r0, 0x2E] + cmp r4, 0 + beq _08020DAC + b _080210EC +_08020DAC: + ldrb r0, [r7] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + ldrh r3, [r0, 0x2E] + adds r1, r3, 0 + cmp r1, 0xAF + bne _08020DC0 + b _080210EC +_08020DC0: + adds r0, r3, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _08020DCE + b _080210EC +_08020DCE: + cmp r1, 0 + bne _08020DD4 + b _080210EC +_08020DD4: + ldr r5, _08020E64 @ =gUnknown_2023FE8 + lsls r0, r2, 1 + adds r0, 0xD0 + ldr r1, [r5] + adds r1, r0 + ldr r2, _08020E68 @ =gUnknown_2023D68 + strh r3, [r1] + strh r3, [r2] + ldrb r0, [r7] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + add r0, r8 + movs r6, 0 + strh r4, [r0, 0x2E] + ldr r4, _08020E6C @ =gUnknown_2023BC4 + mov r1, r10 + ldrb r0, [r1] + strb r0, [r4] + str r2, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + mov r2, r10 + ldrb r0, [r2] + bl sub_8017248 + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + mov r1, r8 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r7] + bl sub_8017248 + ldr r4, _08020E70 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020E74 @ =gUnknown_81D9271 + str r0, [r4] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r6, [r0] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r6, [r0] + b _0802110A + .align 2, 0 +_08020E60: .4byte gUnknown_2023D6B +_08020E64: .4byte gUnknown_2023FE8 +_08020E68: .4byte gUnknown_2023D68 +_08020E6C: .4byte gUnknown_2023BC4 +_08020E70: .4byte gUnknown_2023D74 +_08020E74: .4byte gUnknown_81D9271 +_08020E78: + ldr r3, _08020EA8 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 19 + orrs r0, r1 + str r0, [r2] + ldr r2, _08020EAC @ =gUnknown_2023E0C + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _08020EB0 @ =gUnknown_2023D6B + ldrb r1, [r1] + strb r1, [r0, 0x14] + b _080210EC + .align 2, 0 +_08020EA8: .4byte gUnknown_2023D6C +_08020EAC: .4byte gUnknown_2023E0C +_08020EB0: .4byte gUnknown_2023D6B +_08020EB4: + ldr r0, _08020ECC @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 20 + b _08020C9E + .align 2, 0 +_08020ECC: .4byte gUnknown_2023D6C +_08020ED0: + ldr r4, _08020EE0 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020EE4 @ =gUnknown_81D8D55 + b _08021108 + .align 2, 0 +_08020EE0: .4byte gUnknown_2023D74 +_08020EE4: .4byte gUnknown_81D8D55 +_08020EE8: + ldr r4, _08020EF8 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020EFC @ =gUnknown_81D8DF1 + b _08021108 + .align 2, 0 +_08020EF8: .4byte gUnknown_2023D74 +_08020EFC: .4byte gUnknown_81D8DF1 +_08020F00: + ldr r6, _08020F50 @ =gUnknown_2023D6C + ldrb r0, [r6] + movs r2, 0x58 + muls r0, r2 + mov r1, r8 + adds r1, 0x4C + adds r5, r0, r1 + ldr r4, [r5] + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + bne _08020F1A + b _080210EC +_08020F1A: + movs r0, 0x41 + negs r0, r0 + ands r4, r0 + str r4, [r5] + ldr r4, _08020F54 @ =gUnknown_2023BC4 + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + ldr r4, _08020F58 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020F5C @ =gUnknown_81D9177 + b _08021108 + .align 2, 0 +_08020F50: .4byte gUnknown_2023D6C +_08020F54: .4byte gUnknown_2023BC4 +_08020F58: .4byte gUnknown_2023D74 +_08020F5C: .4byte gUnknown_81D9177 +_08020F60: + ldr r4, _08020F70 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08020F74 @ =gUnknown_81D8F35 + b _08021108 + .align 2, 0 +_08020F70: .4byte gUnknown_2023D74 +_08020F74: .4byte gUnknown_81D8F35 +_08020F78: + ldr r4, _08020FA8 @ =gUnknown_2023D50 + ldr r0, _08020FAC @ =gUnknown_2023D54 + ldr r0, [r0] + movs r1, 0x3 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08020F8E + movs r0, 0x1 + str r0, [r4] +_08020F8E: + ldr r4, _08020FB0 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r1, _08020FB4 @ =gUnknown_825062C + ldr r0, _08020FB8 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _08021108 + .align 2, 0 +_08020FA8: .4byte gUnknown_2023D50 +_08020FAC: .4byte gUnknown_2023D54 +_08020FB0: .4byte gUnknown_2023D74 +_08020FB4: .4byte gUnknown_825062C +_08020FB8: .4byte gUnknown_2023E82 +_08020FBC: + mov r4, r9 + ldrb r0, [r4] + movs r5, 0x58 + muls r0, r5 + mov r4, r8 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0xC0 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _08020FD8 + b _080210EC +_08020FD8: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, _08021010 @ =gUnknown_2023DB8 + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldr r1, _08021014 @ =gUnknown_2023D4A + ldrh r1, [r1] + strh r1, [r0] + bl sub_8044EC8 + mov r3, r9 + ldrb r1, [r3] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x1 + ands r1, r0 + adds r1, 0x2 + lsls r1, 10 + ldr r0, [r2] +_08021008: + orrs r0, r1 + str r0, [r2] + b _0802110A + .align 2, 0 +_08021010: .4byte gUnknown_2023DB8 +_08021014: .4byte gUnknown_2023D4A +_08021018: + mov r5, r9 + ldrb r3, [r5] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + mov r2, r8 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x3C + bne _08021058 + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _080210EC + ldr r0, _0802104C @ =gUnknown_2023D6A + strb r2, [r0] + ldr r1, _08021050 @ =gUnknown_2023D74 + ldr r0, _08021054 @ =gUnknown_81D948E + str r0, [r1] + ldrb r0, [r5] + movs r1, 0x3C + bl sub_80C71D0 + b _0802110A + .align 2, 0 +_0802104C: .4byte gUnknown_2023D6A +_08021050: .4byte gUnknown_2023D74 +_08021054: .4byte gUnknown_81D948E +_08021058: + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _080210EC + adds r0, r3, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080210D0 @ =gUnknown_2023D68 + mov r3, r9 + ldrb r0, [r3] + muls r0, r4 + add r0, r8 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r3] + muls r0, r4 + add r0, r8 + movs r5, 0 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r2, _080210D4 @ =gUnknown_2023F20 + adds r2, 0x29 + adds r2, r6, r2 + ldr r3, _080210D8 @ =gUnknown_825E45C + ldr r1, _080210DC @ =gUnknown_2023BCE + mov r4, r9 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r4, _080210E0 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _080210E4 @ =gUnknown_81D8F86 + str r0, [r4] + mov r1, r9 + ldrb r0, [r1] + ldr r2, _080210E8 @ =gUnknown_2023FE8 + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r5, [r0] + mov r3, r9 + ldrb r0, [r3] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r5, [r0] + b _0802110A + .align 2, 0 +_080210D0: .4byte gUnknown_2023D68 +_080210D4: .4byte gUnknown_2023F20 +_080210D8: .4byte gUnknown_825E45C +_080210DC: .4byte gUnknown_2023BCE +_080210E0: .4byte gUnknown_2023D74 +_080210E4: .4byte gUnknown_81D8F86 +_080210E8: .4byte gUnknown_2023FE8 +_080210EC: + ldr r1, _080210F8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _0802110A + .align 2, 0 +_080210F8: .4byte gUnknown_2023D74 +_080210FC: + ldr r4, _0802111C @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08021120 @ =gUnknown_81D8FEB +_08021108: + str r0, [r4] +_0802110A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802111C: .4byte gUnknown_2023D74 +_08021120: .4byte gUnknown_81D8FEB + thumb_func_end sub_801FF20 + + thumb_func_start sub_8021124 +sub_8021124: @ 8021124 + push {r4,lr} + ldr r2, _08021150 @ =gUnknown_2023BE4 + ldr r0, _08021154 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x20 + bne _08021160 + ldr r2, _08021158 @ =gUnknown_8250C04 + ldr r0, _0802115C @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsls r4, r0, 1 + b _08021170 + .align 2, 0 +_08021150: .4byte gUnknown_2023BE4 +_08021154: .4byte gUnknown_2023D6B +_08021158: .4byte gUnknown_8250C04 +_0802115C: .4byte gUnknown_2023D4A +_08021160: + ldr r2, _08021190 @ =gUnknown_8250C04 + ldr r0, _08021194 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x5] +_08021170: + ldr r3, _08021198 @ =gUnknown_2023E82 + ldrb r2, [r3, 0x3] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080211A0 + ldr r0, _0802119C @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080211A0 + movs r0, 0x7F + ands r0, r2 + strb r0, [r3, 0x3] + b _080211CE + .align 2, 0 +_08021190: .4byte gUnknown_8250C04 +_08021194: .4byte gUnknown_2023D4A +_08021198: .4byte gUnknown_2023E82 +_0802119C: .4byte gUnknown_2023DCC +_080211A0: + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bhi _080211EA + ldr r0, _080211D8 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _080211EA + ldr r0, _080211DC @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080211EA + cmp r4, 0x63 + bls _080211E0 +_080211CE: + movs r0, 0 + movs r1, 0x80 + bl sub_801FF20 + b _080211F2 + .align 2, 0 +_080211D8: .4byte gUnknown_2023E82 +_080211DC: .4byte gUnknown_2023DCC +_080211E0: + movs r0, 0 + movs r1, 0 + bl sub_801FF20 + b _080211F2 +_080211EA: + ldr r1, _08021204 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080211F2: + ldr r0, _08021208 @ =gUnknown_2023E82 + movs r1, 0 + strb r1, [r0, 0x3] + ldr r0, _0802120C @ =gUnknown_2023FC4 + strb r1, [r0, 0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08021204: .4byte gUnknown_2023D74 +_08021208: .4byte gUnknown_2023E82 +_0802120C: .4byte gUnknown_2023FC4 + thumb_func_end sub_8021124 + + thumb_func_start sub_8021210 +sub_8021210: @ 8021210 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl sub_801FF20 + pop {r0} + bx r0 + thumb_func_end sub_8021210 + + thumb_func_start sub_8021220 +sub_8021220: @ 8021220 + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_801FF20 + pop {r0} + bx r0 + thumb_func_end sub_8021220 + + thumb_func_start sub_8021230 +sub_8021230: @ 8021230 + push {lr} + ldr r0, _08021254 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r2, _08021258 @ =gUnknown_2023BC4 + strb r0, [r2] + ldr r3, _0802125C @ =gUnknown_2023E82 + ldrb r0, [r3, 0x3] + cmp r0, 0x6 + bhi _08021264 + ldr r1, _08021260 @ =gUnknown_2023BE4 + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x4C + b _0802126E + .align 2, 0 +_08021254: .4byte gUnknown_2023D74 +_08021258: .4byte gUnknown_2023BC4 +_0802125C: .4byte gUnknown_2023E82 +_08021260: .4byte gUnknown_2023BE4 +_08021264: + ldr r1, _08021298 @ =gUnknown_2023BE4 + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 +_0802126E: + adds r2, r1 + ldr r1, _0802129C @ =gUnknown_825053C + ldrb r0, [r3, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r0, _080212A0 @ =gUnknown_2023E82 + movs r2, 0 + strb r2, [r0, 0x3] + ldr r1, _080212A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + ldr r0, _080212A8 @ =gUnknown_2023FC4 + strb r2, [r0, 0x16] + pop {r0} + bx r0 + .align 2, 0 +_08021298: .4byte gUnknown_2023BE4 +_0802129C: .4byte gUnknown_825053C +_080212A0: .4byte gUnknown_2023E82 +_080212A4: .4byte gUnknown_2023D74 +_080212A8: .4byte gUnknown_2023FC4 + thumb_func_end sub_8021230 + + thumb_func_start sub_80212AC +sub_80212AC: @ 80212AC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, _08021318 @ =gUnknown_2023D74 + ldr r2, [r0] + ldrb r1, [r2, 0x2] + adds r6, r0, 0 + cmp r1, 0 + beq _08021330 + ldrb r0, [r2, 0x1] + bl sub_8016E24 + ldr r5, _0802131C @ =gUnknown_2023BC4 + strb r0, [r5] + ldr r2, _08021320 @ =gUnknown_2023DD0 + ldr r1, _08021324 @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _080212E4 + b _0802158C +_080212E4: + ldr r1, [r6] + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x5] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x6] + lsls r0, 24 + orrs r4, r0 + bl sub_801756C + str r4, [r6] + ldrb r0, [r5] + bl sub_80751C4 + ldr r1, _08021328 @ =gUnknown_2023DDE + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, _0802132C @ =0x0000fdff + ands r1, r2 + strh r1, [r0] + b _08021592 + .align 2, 0 +_08021318: .4byte gUnknown_2023D74 +_0802131C: .4byte gUnknown_2023BC4 +_08021320: .4byte gUnknown_2023DD0 +_08021324: .4byte gUnknown_825E45C +_08021328: .4byte gUnknown_2023DDE +_0802132C: .4byte 0x0000fdff +_08021330: + ldrb r0, [r2, 0x1] + cmp r0, 0x1 + bne _08021358 + ldr r1, _08021348 @ =gUnknown_2023BC4 + ldr r0, _0802134C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08021350 @ =gUnknown_2023D6C + ldrb r0, [r0] + mov r9, r0 + ldr r4, _08021354 @ =gUnknown_81D8674 + b _08021368 + .align 2, 0 +_08021348: .4byte gUnknown_2023BC4 +_0802134C: .4byte gUnknown_2023D6B +_08021350: .4byte gUnknown_2023D6C +_08021354: .4byte gUnknown_81D8674 +_08021358: + ldr r1, _080213D0 @ =gUnknown_2023BC4 + ldr r0, _080213D4 @ =gUnknown_2023D6C + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080213D8 @ =gUnknown_2023D6B + ldrb r0, [r0] + mov r9, r0 + ldr r4, _080213DC @ =gUnknown_81D8684 +_08021368: + mov r8, r1 + ldr r0, _080213E0 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _080213E4 @ =gUnknown_825E45C + mov r7, r8 + ldrb r3, [r7] + lsls r0, r3, 2 + adds r0, r2 + ldr r2, [r0] + ands r1, r2 + cmp r1, 0 + beq _08021382 + b _0802158C +_08021382: + ldr r1, _080213E8 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08021392 + b _0802158C +_08021392: + ldr r5, _080213EC @ =gUnknown_2023DD0 + lsls r1, r2, 28 + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + ldr r0, [r6] + adds r0, 0x7 + bl sub_8017520 + str r4, [r6] + ldrb r0, [r7] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _080213F4 + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r5] + ldr r1, _080213F0 @ =gUnknown_3004F90 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _080213C8 + adds r0, 0x1 + strb r0, [r1] +_080213C8: + ldrb r0, [r7] + bl sub_802E228 + b _0802142C + .align 2, 0 +_080213D0: .4byte gUnknown_2023BC4 +_080213D4: .4byte gUnknown_2023D6C +_080213D8: .4byte gUnknown_2023D6B +_080213DC: .4byte gUnknown_81D8684 +_080213E0: .4byte gUnknown_2023D70 +_080213E4: .4byte gUnknown_825E45C +_080213E8: .4byte gUnknown_2023BE4 +_080213EC: .4byte gUnknown_2023DD0 +_080213F0: .4byte gUnknown_3004F90 +_080213F4: + ldr r4, _0802154C @ =gUnknown_3004F90 + ldrb r0, [r4, 0x1] + cmp r0, 0xFE + bhi _08021400 + adds r0, 0x1 + strb r0, [r4, 0x1] +_08021400: + ldr r1, _08021550 @ =gUnknown_2023BCE + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021554 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + strh r0, [r4, 0x20] + ldr r0, _08021558 @ =gUnknown_2023FE8 + ldr r0, [r0] + movs r3, 0xC1 + lsls r3, 1 + adds r1, r0, r3 + ldr r0, _0802155C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r1] +_0802142C: + ldr r2, _08021560 @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802146A + ldr r6, _08021564 @ =gUnknown_2023BE4 + ldr r0, _0802155C @ =gUnknown_2023D6B + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0802146A + movs r0, 0x41 + negs r0, r0 + ands r1, r0 + str r1, [r2] + ldr r4, _08021568 @ =gUnknown_2023D74 + ldr r0, [r4] + bl sub_8017520 + ldr r1, _0802156C @ =gUnknown_2023D50 + mov r0, r9 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r0, _08021570 @ =gUnknown_81D8C6C + str r0, [r4] +_0802146A: + ldr r1, _08021574 @ =gUnknown_2023DFC + ldr r6, _08021578 @ =gUnknown_2023D6C + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 7 + ands r0, r1 + cmp r0, 0 + bne _08021482 + b _08021592 +_08021482: + ldr r0, _08021560 @ =gUnknown_2023DD0 + ldr r5, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r5, r0 + cmp r5, 0 + beq _08021492 + b _08021592 +_08021492: + ldr r0, _0802155C @ =gUnknown_2023D6B + mov r8, r0 + ldrb r0, [r0] + bl sub_80751C4 + adds r4, r0, 0 + ldrb r0, [r6] + bl sub_80751C4 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08021592 + ldr r1, _08021564 @ =gUnknown_2023BE4 + mov r9, r1 + mov r2, r8 + ldrb r1, [r2] + movs r7, 0x58 + adds r2, r1, 0 + muls r2, r7 + mov r3, r9 + adds r0, r2, r3 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08021592 + ldr r0, _0802157C @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xA5 + beq _08021592 + ldr r0, _08021558 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, r1, r0 + adds r0, 0x80 + ldrb r4, [r0] + adds r0, r4, r2 + mov r6, r9 + adds r6, 0x24 + adds r0, r6 + strb r5, [r0] + ldr r5, _08021568 @ =gUnknown_2023D74 + ldr r0, [r5] + bl sub_8017520 + ldr r0, _08021580 @ =gUnknown_81D8FA3 + str r0, [r5] + ldr r5, _08021584 @ =gUnknown_2023BC4 + mov r1, r8 + ldrb r0, [r1] + strb r0, [r5] + adds r1, r4, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_800DFF0 + ldrb r0, [r5] + bl sub_8017248 + ldr r1, _08021588 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r4, 1 + mov r2, r8 + ldrb r0, [r2] + muls r0, r7 + adds r0, r4, r0 + mov r2, r9 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + mov r3, r8 + ldrb r0, [r3] + muls r0, r7 + adds r4, r0 + adds r4, r2 + ldrh r0, [r4] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + b _08021592 + .align 2, 0 +_0802154C: .4byte gUnknown_3004F90 +_08021550: .4byte gUnknown_2023BCE +_08021554: .4byte gUnknown_202402C +_08021558: .4byte gUnknown_2023FE8 +_0802155C: .4byte gUnknown_2023D6B +_08021560: .4byte gUnknown_2023DD0 +_08021564: .4byte gUnknown_2023BE4 +_08021568: .4byte gUnknown_2023D74 +_0802156C: .4byte gUnknown_2023D50 +_08021570: .4byte gUnknown_81D8C6C +_08021574: .4byte gUnknown_2023DFC +_08021578: .4byte gUnknown_2023D6C +_0802157C: .4byte gUnknown_2023D4A +_08021580: .4byte gUnknown_81D8FA3 +_08021584: .4byte gUnknown_2023BC4 +_08021588: .4byte gUnknown_2022AB8 +_0802158C: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_08021592: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80212AC + + thumb_func_start sub_80215A0 +sub_80215A0: @ 80215A0 + push {r4,r5,lr} + ldr r0, _080215D0 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _080215CA + ldr r5, _080215D4 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _080215D8 @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + bl sub_800E134 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_080215CA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080215D0: .4byte gUnknown_2023BC8 +_080215D4: .4byte gUnknown_2023D74 +_080215D8: .4byte gUnknown_2023BC4 + thumb_func_end sub_80215A0 + + thumb_func_start sub_80215DC +sub_80215DC: @ 80215DC + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _08021630 @ =gUnknown_2023BC8 + ldr r6, [r0] + cmp r6, 0 + bne _08021628 + ldr r5, _08021634 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08021638 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r1, _0802163C @ =gUnknown_2023BE4 + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + str r6, [r0] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + bl sub_8012BC8 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_08021628: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08021630: .4byte gUnknown_2023BC8 +_08021634: .4byte gUnknown_2023D74 +_08021638: .4byte gUnknown_2023BC4 +_0802163C: .4byte gUnknown_2023BE4 + thumb_func_end sub_80215DC + + thumb_func_start sub_8021640 +sub_8021640: @ 8021640 + push {r4,r5,lr} + ldr r5, _0802169C @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, _080216A0 @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _080216A4 + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080216A4 + str r3, [r5] + b _080216AC + .align 2, 0 +_0802169C: .4byte gUnknown_2023D74 +_080216A0: .4byte gUnknown_2023BE4 +_080216A4: + ldr r1, _080216B4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_080216AC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080216B4: .4byte gUnknown_2023D74 + thumb_func_end sub_8021640 + + thumb_func_start sub_80216B8 +sub_80216B8: @ 80216B8 + push {r4,r5,lr} + ldr r5, _08021714 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, _08021718 @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _0802171C + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0802171C + str r3, [r5] + b _08021724 + .align 2, 0 +_08021714: .4byte gUnknown_2023D74 +_08021718: .4byte gUnknown_2023BE4 +_0802171C: + ldr r1, _0802172C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_08021724: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802172C: .4byte gUnknown_2023D74 + thumb_func_end sub_80216B8 + + thumb_func_start sub_8021730 +sub_8021730: @ 8021730 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r6, _08021784 @ =gUnknown_2023D74 + ldr r2, [r6] + ldrb r5, [r2, 0x2] + mov r8, r5 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r7, r1, r0 + ldrb r0, [r2, 0x1] + cmp r0, 0x8 + bne _08021790 + ldr r0, _08021788 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xD + adds r2, r5, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08021804 + ldr r1, _0802178C @ =gUnknown_2023D6A + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _080217EC + .align 2, 0 +_08021784: .4byte gUnknown_2023D74 +_08021788: .4byte gUnknown_2023D6B +_0802178C: .4byte gUnknown_2023D6A +_08021790: + cmp r0, 0x9 + bne _080217C8 + ldr r0, _080217C0 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xC + adds r2, r5, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08021804 + ldr r1, _080217C4 @ =gUnknown_2023D6A + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _080217EC + .align 2, 0 +_080217C0: .4byte gUnknown_2023D6B +_080217C4: .4byte gUnknown_2023D6A +_080217C8: + ldrb r0, [r2, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080217F8 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, r8 + bne _08021804 + ldr r0, _080217FC @ =gUnknown_2023D6A + strb r1, [r0] + str r7, [r6] + ldrb r1, [r0] + adds r0, r4, 0 +_080217EC: + bl sub_80C71D0 + ldr r0, _08021800 @ =gUnknown_2023FC4 + strb r4, [r0, 0x15] + b _0802180A + .align 2, 0 +_080217F8: .4byte gUnknown_2023BE4 +_080217FC: .4byte gUnknown_2023D6A +_08021800: .4byte gUnknown_2023FC4 +_08021804: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_0802180A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8021730 + + thumb_func_start sub_8021818 +sub_8021818: @ 8021818 + push {r4-r6,lr} + ldr r0, _08021830 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r4, [r0, 0x1] + cmp r4, 0x1 + bne _08021838 + ldr r0, _08021834 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751D8 + b _08021842 + .align 2, 0 +_08021830: .4byte gUnknown_2023D74 +_08021834: .4byte gUnknown_2023D6B +_08021838: + ldr r0, _08021878 @ =gUnknown_2023D6C + ldrb r0, [r0] + bl sub_80751D8 + movs r4, 0x1 +_08021842: + ands r4, r0 + ldr r6, _0802187C @ =gUnknown_2023D74 + ldr r3, [r6] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r1, [r3, 0x4] + ldrb r0, [r3, 0x5] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 24 + adds r5, r1, r0 + ldr r1, _08021880 @ =gUnknown_2023DDE + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _08021884 + str r5, [r6] + b _0802188A + .align 2, 0 +_08021878: .4byte gUnknown_2023D6C +_0802187C: .4byte gUnknown_2023D74 +_08021880: .4byte gUnknown_2023DDE +_08021884: + adds r0, r3, 0 + adds r0, 0x8 + str r0, [r6] +_0802188A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8021818 + + thumb_func_start sub_8021890 +sub_8021890: @ 8021890 + push {r4,r5,lr} + movs r5, 0 + ldr r4, _080218C4 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080218C8 @ =gUnknown_2023BE4 + ldr r3, [r4] + movs r1, 0x58 + muls r0, r1 + ldrb r1, [r3, 0x3] + adds r0, r1 + adds r2, 0x18 + adds r0, r2 + ldrb r2, [r0] + ldrb r0, [r3, 0x2] + cmp r0, 0x5 + bhi _0802194E + lsls r0, 2 + ldr r1, _080218CC @ =_080218D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080218C4: .4byte gUnknown_2023D74 +_080218C8: .4byte gUnknown_2023BE4 +_080218CC: .4byte _080218D0 + .align 2, 0 +_080218D0: + .4byte _080218E8 + .4byte _080218F8 + .4byte _08021908 + .4byte _08021918 + .4byte _08021928 + .4byte _0802193C +_080218E8: + ldr r0, _080218F4 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bne _0802194E + b _08021948 + .align 2, 0 +_080218F4: .4byte gUnknown_2023D74 +_080218F8: + ldr r0, _08021904 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + beq _0802194E + b _08021948 + .align 2, 0 +_08021904: .4byte gUnknown_2023D74 +_08021908: + ldr r0, _08021914 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bls _0802194E + b _08021948 + .align 2, 0 +_08021914: .4byte gUnknown_2023D74 +_08021918: + ldr r0, _08021924 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bcs _0802194E + b _08021948 + .align 2, 0 +_08021924: .4byte gUnknown_2023D74 +_08021928: + ldr r0, _08021938 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + beq _0802194E + b _08021948 + .align 2, 0 +_08021938: .4byte gUnknown_2023D74 +_0802193C: + ldr r0, _08021970 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + bne _0802194E +_08021948: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0802194E: + cmp r5, 0 + beq _08021974 + ldr r3, _08021970 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + b _0802197C + .align 2, 0 +_08021970: .4byte gUnknown_2023D74 +_08021974: + ldr r1, _08021984 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] +_0802197C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08021984: .4byte gUnknown_2023D74 + thumb_func_end sub_8021890 + + thumb_func_start sub_8021988 +sub_8021988: @ 8021988 + push {r4-r6,lr} + ldr r4, _080219DC @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r5, _080219E0 @ =gUnknown_2023BC4 + strb r0, [r5] + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r6, r1, r0 + ldrb r1, [r2, 0x7] + ldrb r0, [r2, 0x8] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0xA] + lsls r0, 24 + adds r3, r1, r0 + ldrb r0, [r2, 0x6] + cmp r0, 0 + beq _080219E8 + ldr r0, _080219E4 @ =gUnknown_2023DFC + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + bne _08021A00 + b _080219F8 + .align 2, 0 +_080219DC: .4byte gUnknown_2023D74 +_080219E0: .4byte gUnknown_2023BC4 +_080219E4: .4byte gUnknown_2023DFC +_080219E8: + ldr r0, _080219FC @ =gUnknown_2023DFC + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + beq _08021A00 +_080219F8: + str r3, [r4] + b _08021A06 + .align 2, 0 +_080219FC: .4byte gUnknown_2023DFC +_08021A00: + adds r0, r2, 0 + adds r0, 0xB + str r0, [r4] +_08021A06: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8021988 + + thumb_func_start sub_8021A0C +sub_8021A0C: @ 8021A0C + push {r4-r6,lr} + ldr r4, _08021A54 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldrb r5, [r3, 0x2] + ldrb r2, [r3, 0x3] + ldrb r1, [r3, 0x4] + lsls r1, 8 + adds r2, r1 + ldrb r1, [r3, 0x5] + lsls r1, 16 + adds r2, r1 + ldrb r1, [r3, 0x6] + lsls r1, 24 + adds r6, r2, r1 + ldr r2, _08021A58 @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r5 + beq _08021A50 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r5 + bne _08021A5C +_08021A50: + str r6, [r4] + b _08021A60 + .align 2, 0 +_08021A54: .4byte gUnknown_2023D74 +_08021A58: .4byte gUnknown_2023BE4 +_08021A5C: + adds r0, r3, 0x7 + str r0, [r4] +_08021A60: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8021A0C + + thumb_func_start sub_8021A68 +sub_8021A68: @ 8021A68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + ldr r0, _08021AB0 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x50 + mov r9, r0 + ldr r0, _08021AB4 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _08021AB8 @ =gUnknown_2023D6D + strb r0, [r1] + ldr r2, _08021ABC @ =gUnknown_2023F4E + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 25 + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r0, _08021AC0 @ =gUnknown_2023FC4 + ldrb r0, [r0, 0x1C] + cmp r0, 0x6 + bls _08021AA4 + bl _080223DA +_08021AA4: + lsls r0, 2 + ldr r1, _08021AC4 @ =_08021AC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08021AB0: .4byte gUnknown_2023FE8 +_08021AB4: .4byte gUnknown_2023D74 +_08021AB8: .4byte gUnknown_2023D6D +_08021ABC: .4byte gUnknown_2023F4E +_08021AC0: .4byte gUnknown_2023FC4 +_08021AC4: .4byte _08021AC8 + .align 2, 0 +_08021AC8: + .4byte _08021AE4 + .4byte _08021B50 + .4byte _08021C6A + .4byte _08021F78 + .4byte _0802207C + .4byte _08022368 + .4byte _080223B0 +_08021AE4: + ldr r4, _08021B34 @ =gUnknown_2023D6D + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08021AF8 + bl _080223A4 +_08021AF8: + ldr r0, _08021B38 @ =gUnknown_2022B4C + ldr r0, [r0] + ldr r1, _08021B3C @ =0x00080982 + ands r0, r1 + cmp r0, 0 + beq _08021B08 + bl _080223A4 +_08021B08: + ldr r1, _08021B40 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + strb r0, [r1, 0x1C] + ldr r0, _08021B44 @ =gUnknown_2023FE8 + ldr r2, [r0] + adds r2, 0xDF + ldr r3, _08021B48 @ =gUnknown_825E45C + ldr r1, _08021B4C @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bl _080223DA + .align 2, 0 +_08021B34: .4byte gUnknown_2023D6D +_08021B38: .4byte gUnknown_2022B4C +_08021B3C: .4byte 0x00080982 +_08021B40: .4byte gUnknown_2023FC4 +_08021B44: .4byte gUnknown_2023FE8 +_08021B48: .4byte gUnknown_825E45C +_08021B4C: .4byte gUnknown_2023BCE +_08021B50: + movs r5, 0 + movs r7, 0 +_08021B54: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08021BA4 @ =gUnknown_2024284 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08021BC2 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08021BC2 + ldr r0, _08021BA8 @ =gUnknown_825E45C + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + beq _08021B88 + adds r5, 0x1 +_08021B88: + adds r0, r4, 0 + movs r1, 0xC + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _08021BB4 + ldr r0, _08021BAC @ =gUnknown_3005008 + ldr r0, [r0] + ldr r2, _08021BB0 @ =0x0000311a + adds r0, r2 + ldrb r4, [r0] + b _08021BBC + .align 2, 0 +_08021BA4: .4byte gUnknown_2024284 +_08021BA8: .4byte gUnknown_825E45C +_08021BAC: .4byte gUnknown_3005008 +_08021BB0: .4byte 0x0000311a +_08021BB4: + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 +_08021BBC: + cmp r4, 0x19 + bne _08021BC2 + adds r6, 0x1 +_08021BC2: + adds r7, 0x1 + cmp r7, 0x5 + ble _08021B54 + ldr r3, _08021C28 @ =gUnknown_8254784 + ldr r2, _08021C2C @ =gUnknown_2023BE4 + ldr r0, _08021C30 @ =gUnknown_2023D6D + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x9] + adds r1, 0x2A + ldrb r0, [r1] + muls r0, r2 + movs r1, 0x7 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r6, 0 + beq _08021C38 + lsrs r4, r0, 17 + adds r0, r4, 0 + adds r1, r5, 0 + bl __divsi3 + mov r1, r9 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _08021C0E + movs r0, 0x1 + strh r0, [r1] +_08021C0E: + ldr r5, _08021C34 @ =gUnknown_2023F52 + adds r0, r4, 0 + adds r1, r6, 0 + bl __divsi3 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + bne _08021C52 + movs r0, 0x1 + strh r0, [r5] + b _08021C52 + .align 2, 0 +_08021C28: .4byte gUnknown_8254784 +_08021C2C: .4byte gUnknown_2023BE4 +_08021C30: .4byte gUnknown_2023D6D +_08021C34: .4byte gUnknown_2023F52 +_08021C38: + adds r0, r1, 0 + adds r1, r5, 0 + bl __divsi3 + mov r2, r9 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bne _08021C4E + movs r0, 0x1 + strh r0, [r2] +_08021C4E: + ldr r0, _08021C9C @ =gUnknown_2023F52 + strh r6, [r0] +_08021C52: + ldr r1, _08021CA0 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1, 0x1C] + ldr r1, _08021CA4 @ =gUnknown_2023FE8 + ldr r0, [r1] + strb r2, [r0, 0x10] + ldr r0, [r1] + adds r0, 0x53 + mov r4, r8 + strb r4, [r0] +_08021C6A: + ldr r0, _08021CA8 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _08021C74 + b _080223DA +_08021C74: + ldr r0, _08021CA4 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021CAC @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0xC + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _08021CB8 + ldr r0, _08021CB0 @ =gUnknown_3005008 + ldr r0, [r0] + ldr r1, _08021CB4 @ =0x0000311a + adds r0, r1 + ldrb r4, [r0] + b _08021CC0 + .align 2, 0 +_08021C9C: .4byte gUnknown_2023F52 +_08021CA0: .4byte gUnknown_2023FC4 +_08021CA4: .4byte gUnknown_2023FE8 +_08021CA8: .4byte gUnknown_2023BC8 +_08021CAC: .4byte gUnknown_2024284 +_08021CB0: .4byte gUnknown_3005008 +_08021CB4: .4byte 0x0000311a +_08021CB8: + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 +_08021CC0: + ldr r5, _08021CE0 @ =gUnknown_2023FE8 + cmp r4, 0x19 + beq _08021CE8 + ldr r0, [r5] + adds r1, r0, 0 + adds r1, 0x53 + ldrb r0, [r1] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + bne _08021CE8 + lsrs r0, 1 + strb r0, [r1] + ldr r1, _08021CE4 @ =gUnknown_2023FC4 + b _08021D0C + .align 2, 0 +_08021CE0: .4byte gUnknown_2023FE8 +_08021CE4: .4byte gUnknown_2023FC4 +_08021CE8: + ldr r0, [r5] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021D18 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x38 + bl sub_803FBE8 + cmp r0, 0x64 + bne _08021D24 + ldr r1, [r5] + adds r1, 0x53 + ldrb r0, [r1] + lsrs r0, 1 + strb r0, [r1] + ldr r1, _08021D1C @ =gUnknown_2023FC4 + movs r2, 0 +_08021D0C: + movs r0, 0x5 + strb r0, [r1, 0x1C] + ldr r0, _08021D20 @ =gUnknown_2023D50 + str r2, [r0] + b _080223DA + .align 2, 0 +_08021D18: .4byte gUnknown_2024284 +_08021D1C: .4byte gUnknown_2023FC4 +_08021D20: .4byte gUnknown_2023D50 +_08021D24: + ldr r0, _08021D88 @ =gUnknown_2022B4C + ldr r0, [r0] + ldr r1, _08021D8C @ =0x00010008 + ands r0, r1 + cmp r0, 0 + bne _08021D52 + ldr r0, _08021D90 @ =gUnknown_2023BE4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08021D52 + ldr r0, [r5] + ldrb r0, [r0, 0x12] + cmp r0, 0 + bne _08021D52 + bl sub_8035314 + ldr r0, _08021D94 @ =0x00000137 + bl sub_80722A0 + ldr r1, [r5] + ldrb r0, [r1, 0x12] + adds r0, 0x1 + strb r0, [r1, 0x12] +_08021D52: + ldr r5, _08021D98 @ =gUnknown_2023FE8 + ldr r0, [r5] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021D9C @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + bne _08021D6C + b _08021F4C +_08021D6C: + ldr r0, [r5] + adds r0, 0x53 + ldrb r0, [r0] + movs r3, 0x1 + ands r3, r0 + cmp r3, 0 + beq _08021DA4 + ldr r1, _08021DA0 @ =gUnknown_2023D50 + mov r2, r9 + ldrh r0, [r2] + str r0, [r1] + mov r9, r1 + b _08021DAA + .align 2, 0 +_08021D88: .4byte gUnknown_2022B4C +_08021D8C: .4byte 0x00010008 +_08021D90: .4byte gUnknown_2023BE4 +_08021D94: .4byte 0x00000137 +_08021D98: .4byte gUnknown_2023FE8 +_08021D9C: .4byte gUnknown_2024284 +_08021DA0: .4byte gUnknown_2023D50 +_08021DA4: + ldr r0, _08021E28 @ =gUnknown_2023D50 + str r3, [r0] + mov r9, r0 +_08021DAA: + cmp r4, 0x19 + bne _08021DBA + ldr r0, _08021E2C @ =gUnknown_2023F52 + ldrh r1, [r0] + mov r2, r9 + ldr r0, [r2] + adds r0, r1 + str r0, [r2] +_08021DBA: + cmp r4, 0x28 + bne _08021DCE + mov r4, r9 + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] +_08021DCE: + ldr r5, _08021E30 @ =gUnknown_2022B4C + ldr r0, [r5] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08021DEA + ldr r4, _08021E28 @ =gUnknown_2023D50 + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] +_08021DEA: + ldr r0, _08021E34 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021E38 @ =gUnknown_2024284 + adds r0, r1 + bl sub_804425C + lsls r0, 24 + cmp r0, 0 + beq _08021E3C + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 9 + ands r0, r1 + cmp r0, 0 + bne _08021E3C + ldr r4, _08021E28 @ =gUnknown_2023D50 + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + movs r7, 0xA5 + lsls r7, 1 + mov r9, r4 + b _08021E42 + .align 2, 0 +_08021E28: .4byte gUnknown_2023D50 +_08021E2C: .4byte gUnknown_2023F52 +_08021E30: .4byte gUnknown_2022B4C +_08021E34: .4byte gUnknown_2023FE8 +_08021E38: .4byte gUnknown_2024284 +_08021E3C: + ldr r7, _08021E78 @ =0x00000149 + ldr r0, _08021E7C @ =gUnknown_2023D50 + mov r9, r0 +_08021E42: + ldr r0, _08021E80 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08021EAE + ldr r0, _08021E84 @ =gUnknown_2023BCE + ldr r1, _08021E88 @ =gUnknown_2023FE8 + ldr r4, [r1] + ldrh r0, [r0, 0x4] + adds r5, r1, 0 + ldr r3, _08021E8C @ =gUnknown_825E45C + ldr r2, _08021E90 @ =gUnknown_2023D70 + ldrb r1, [r4, 0x10] + cmp r0, r1 + bne _08021E94 + ldrb r1, [r2] + ldr r0, [r3, 0x8] + ands r1, r0 + cmp r1, 0 + bne _08021E94 + adds r1, r4, 0 + adds r1, 0x8F + movs r0, 0x2 + strb r0, [r1] + b _08021EB6 + .align 2, 0 +_08021E78: .4byte 0x00000149 +_08021E7C: .4byte gUnknown_2023D50 +_08021E80: .4byte gUnknown_2022B4C +_08021E84: .4byte gUnknown_2023BCE +_08021E88: .4byte gUnknown_2023FE8 +_08021E8C: .4byte gUnknown_825E45C +_08021E90: .4byte gUnknown_2023D70 +_08021E94: + ldrb r2, [r2] + ldr r0, [r3] + ands r2, r0 + cmp r2, 0 + bne _08021EA6 + ldr r0, [r5] + adds r0, 0x8F + strb r2, [r0] + b _08021EB6 +_08021EA6: + ldr r0, [r5] + adds r0, 0x8F + movs r1, 0x2 + b _08021EB4 +_08021EAE: + ldr r0, _08021F5C @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x8F +_08021EB4: + strb r1, [r0] +_08021EB6: + ldr r1, _08021F60 @ =gUnknown_2022AB8 + movs r2, 0 + mov r12, r2 + movs r3, 0xFD + strb r3, [r1] + movs r5, 0x4 + strb r5, [r1, 0x1] + ldr r6, _08021F5C @ =gUnknown_2023FE8 + ldr r2, [r6] + movs r4, 0x8F + adds r4, r2 + mov r8, r4 + ldrb r0, [r4] + strb r0, [r1, 0x2] + ldrb r0, [r2, 0x10] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08021F64 @ =gUnknown_2022AC8 + strb r3, [r1] + mov r0, r12 + strb r0, [r1, 0x1] + strb r7, [r1, 0x2] + movs r4, 0xFF + lsls r4, 8 + ands r7, r4 + asrs r0, r7, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + ldr r1, _08021F68 @ =gUnknown_2022AD8 + strb r3, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + mov r0, r9 + ldr r2, [r0] + strb r2, [r1, 0x4] + adds r0, r2, 0 + ands r0, r4 + asrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r2 + asrs r0, 16 + strb r0, [r1, 0x6] + lsrs r2, 24 + strb r2, [r1, 0x7] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x8] + mov r2, r8 + ldrb r1, [r2] + movs r0, 0xD + bl sub_80173AC + ldr r0, [r6] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08021F6C @ =gUnknown_2024284 + adds r0, r1 + ldr r3, _08021F70 @ =gUnknown_2023BE4 + ldr r1, _08021F74 @ =gUnknown_2023D6D + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r1, [r1] + bl sub_8043890 +_08021F4C: + ldr r0, _08021F5C @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r1, 0x53 + ldrb r0, [r1] + lsrs r0, 1 + strb r0, [r1] + b _08022052 + .align 2, 0 +_08021F5C: .4byte gUnknown_2023FE8 +_08021F60: .4byte gUnknown_2022AB8 +_08021F64: .4byte gUnknown_2022AC8 +_08021F68: .4byte gUnknown_2022AD8 +_08021F6C: .4byte gUnknown_2024284 +_08021F70: .4byte gUnknown_2023BE4 +_08021F74: .4byte gUnknown_2023D6D +_08021F78: + ldr r0, _0802205C @ =gUnknown_2023BC8 + ldr r2, [r0] + cmp r2, 0 + beq _08021F82 + b _080223DA +_08021F82: + ldr r1, _08022060 @ =gUnknown_20233C4 + ldr r7, _08022064 @ =gUnknown_2023FE8 + ldr r0, [r7] + adds r0, 0x8F + ldrb r0, [r0] + lsls r0, 9 + adds r0, r1 + strb r2, [r0] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + movs r6, 0x64 + muls r0, r6 + ldr r5, _08022068 @ =gUnknown_2024284 + adds r0, r5 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08022052 + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x38 + bl sub_803FBE8 + cmp r0, 0x64 + beq _08022052 + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3A + bl sub_803FBE8 + ldr r4, _0802206C @ =gUnknown_2023FF4 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3B + bl sub_803FBE8 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x2] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3C + bl sub_803FBE8 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x4] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3D + bl sub_803FBE8 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x6] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3E + bl sub_803FBE8 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x8] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3F + bl sub_803FBE8 + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0xA] + ldr r4, _08022070 @ =gUnknown_2023BC4 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x8F + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r1, 0x10] + ldr r0, _08022074 @ =gUnknown_2023D50 + ldrh r2, [r0] + movs r0, 0 + bl sub_800E624 + ldrb r0, [r4] + bl sub_8017248 +_08022052: + ldr r1, _08022078 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + strb r0, [r1, 0x1C] + b _080223DA + .align 2, 0 +_0802205C: .4byte gUnknown_2023BC8 +_08022060: .4byte gUnknown_20233C4 +_08022064: .4byte gUnknown_2023FE8 +_08022068: .4byte gUnknown_2024284 +_0802206C: .4byte gUnknown_2023FF4 +_08022070: .4byte gUnknown_2023BC4 +_08022074: .4byte gUnknown_2023D50 +_08022078: .4byte gUnknown_2023FC4 +_0802207C: + ldr r0, _08022314 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _08022086 + b _080223DA +_08022086: + ldr r1, _08022318 @ =gUnknown_2023BC4 + ldr r0, _0802231C @ =gUnknown_2023FE8 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x8F + ldrb r0, [r0] + strb r0, [r1] + ldr r3, _08022320 @ =gUnknown_20233C4 + ldrb r2, [r1] + lsls r1, r2, 9 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x21 + beq _080220A4 + b _08022350 +_080220A4: + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0xB + beq _080220B0 + b _08022350 +_080220B0: + ldr r0, _08022324 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080220DA + ldr r0, _08022328 @ =gUnknown_2023BCE + lsls r1, r2, 1 + adds r1, r0 + ldrh r0, [r1] + ldrb r4, [r4, 0x10] + cmp r0, r4 + bne _080220DA + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802232C @ =gUnknown_2024284 + adds r0, r1 + adds r1, r2, 0 + bl sub_8035244 +_080220DA: + ldr r1, _08022330 @ =gUnknown_2022AB8 + movs r3, 0xFD + strb r3, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r6, _08022318 @ =gUnknown_2023BC4 + ldrb r0, [r6] + strb r0, [r1, 0x2] + ldr r4, _0802231C @ =gUnknown_2023FE8 + mov r9, r4 + ldr r2, [r4] + ldrb r0, [r2, 0x10] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, _08022334 @ =gUnknown_2022AC8 + strb r3, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + movs r0, 0x3 + strb r0, [r4, 0x3] + ldrb r0, [r2, 0x10] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r7, _0802232C @ =gUnknown_2024284 + adds r0, r7 + movs r1, 0x38 + bl sub_803FBE8 + strb r0, [r4, 0x4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x5] + bl sub_8017544 + ldr r2, _08022338 @ =gUnknown_3004FD4 + ldr r1, _0802233C @ =gUnknown_825E45C + mov r4, r9 + ldr r5, [r4] + ldrb r0, [r5, 0x10] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, _08022340 @ =gUnknown_2023D74 + ldr r0, _08022344 @ =gUnknown_81D89F5 + str r0, [r1] + ldr r4, _08022348 @ =gUnknown_2023D50 + ldr r2, _08022320 @ =gUnknown_20233C4 + ldrb r1, [r6] + lsls r1, 9 + adds r0, r2, 0x2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + str r3, [r4] + ldrb r0, [r5, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0 + bl sub_80436F8 + ldr r1, _08022328 @ =gUnknown_2023BCE + mov r2, r9 + ldr r0, [r2] + ldrb r2, [r0, 0x10] + ldrh r0, [r1] + cmp r0, r2 + bne _08022246 + ldr r4, _0802234C @ =gUnknown_2023BE4 + ldrh r0, [r4, 0x28] + cmp r0, 0 + beq _08022246 + mov r0, r8 + muls r0, r2 + adds r0, r7 + movs r1, 0x38 + bl sub_803FBE8 + adds r1, r4, 0 + adds r1, 0x2A + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x39 + bl sub_803FBE8 + strh r0, [r4, 0x28] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3A + bl sub_803FBE8 + strh r0, [r4, 0x2C] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3B + bl sub_803FBE8 + strh r0, [r4, 0x2] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3C + bl sub_803FBE8 + strh r0, [r4, 0x4] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3D + bl sub_803FBE8 + strh r0, [r4, 0x6] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3D + bl sub_803FBE8 + strh r0, [r4, 0x6] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3E + bl sub_803FBE8 + strh r0, [r4, 0x8] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3F + bl sub_803FBE8 + strh r0, [r4, 0xA] +_08022246: + ldr r0, _08022328 @ =gUnknown_2023BCE + ldr r7, _0802231C @ =gUnknown_2023FE8 + ldr r1, [r7] + ldrb r2, [r1, 0x10] + ldrh r0, [r0, 0x4] + cmp r0, r2 + beq _08022256 + b _08022356 +_08022256: + ldr r6, _0802234C @ =gUnknown_2023BE4 + movs r4, 0xD8 + adds r4, r6 + mov r8, r4 + ldrh r0, [r4] + cmp r0, 0 + beq _08022356 + ldr r0, _08022324 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08022356 + movs r5, 0x64 + adds r0, r2, 0 + muls r0, r5 + ldr r4, _0802232C @ =gUnknown_2024284 + adds r0, r4 + movs r1, 0x38 + bl sub_803FBE8 + adds r1, r6, 0 + adds r1, 0xDA + strb r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl sub_803FBE8 + mov r1, r8 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3A + bl sub_803FBE8 + adds r1, r6, 0 + adds r1, 0xDC + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3B + bl sub_803FBE8 + adds r1, r6, 0 + adds r1, 0xB2 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3C + bl sub_803FBE8 + adds r1, r6, 0 + adds r1, 0xB4 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl sub_803FBE8 + movs r2, 0xB6 + adds r2, r6 + mov r8, r2 + strh r0, [r2] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl sub_803FBE8 + mov r1, r8 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3E + bl sub_803FBE8 + adds r1, r6, 0 + adds r1, 0xB8 + strh r0, [r1] + b _08022356 + .align 2, 0 +_08022314: .4byte gUnknown_2023BC8 +_08022318: .4byte gUnknown_2023BC4 +_0802231C: .4byte gUnknown_2023FE8 +_08022320: .4byte gUnknown_20233C4 +_08022324: .4byte gUnknown_2022B4C +_08022328: .4byte gUnknown_2023BCE +_0802232C: .4byte gUnknown_2024284 +_08022330: .4byte gUnknown_2022AB8 +_08022334: .4byte gUnknown_2022AC8 +_08022338: .4byte gUnknown_3004FD4 +_0802233C: .4byte gUnknown_825E45C +_08022340: .4byte gUnknown_2023D74 +_08022344: .4byte gUnknown_81D89F5 +_08022348: .4byte gUnknown_2023D50 +_0802234C: .4byte gUnknown_2023BE4 +_08022350: + ldr r1, _08022360 @ =gUnknown_2023D50 + movs r0, 0 + str r0, [r1] +_08022356: + ldr r1, _08022364 @ =gUnknown_2023FC4 + movs r0, 0x5 + strb r0, [r1, 0x1C] + b _080223DA + .align 2, 0 +_08022360: .4byte gUnknown_2023D50 +_08022364: .4byte gUnknown_2023FC4 +_08022368: + ldr r0, _08022378 @ =gUnknown_2023D50 + ldr r0, [r0] + cmp r0, 0 + beq _08022380 + ldr r1, _0802237C @ =gUnknown_2023FC4 + movs r0, 0x3 + strb r0, [r1, 0x1C] + b _080223DA + .align 2, 0 +_08022378: .4byte gUnknown_2023D50 +_0802237C: .4byte gUnknown_2023FC4 +_08022380: + ldr r2, _0802239C @ =gUnknown_2023FE8 + ldr r1, [r2] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + ldr r0, [r2] + ldrb r0, [r0, 0x10] + cmp r0, 0x5 + bhi _080223A4 + ldr r1, _080223A0 @ =gUnknown_2023FC4 + movs r0, 0x2 + strb r0, [r1, 0x1C] + b _080223DA + .align 2, 0 +_0802239C: .4byte gUnknown_2023FE8 +_080223A0: .4byte gUnknown_2023FC4 +_080223A4: + ldr r1, _080223AC @ =gUnknown_2023FC4 + movs r0, 0x6 + strb r0, [r1, 0x1C] + b _080223DA + .align 2, 0 +_080223AC: .4byte gUnknown_2023FC4 +_080223B0: + ldr r0, _080223E8 @ =gUnknown_2023BC8 + ldr r5, [r0] + cmp r5, 0 + bne _080223DA + ldr r4, _080223EC @ =gUnknown_2023BE4 + ldr r2, _080223F0 @ =gUnknown_2023D6D + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + movs r3, 0 + strh r5, [r0, 0x2E] + ldrb r0, [r2] + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + strb r3, [r0] + ldr r1, _080223F4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_080223DA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080223E8: .4byte gUnknown_2023BC8 +_080223EC: .4byte gUnknown_2023BE4 +_080223F0: .4byte gUnknown_2023D6D +_080223F4: .4byte gUnknown_2023D74 + thumb_func_end sub_8021A68 + + thumb_func_start sub_80223F8 +sub_80223F8: @ 80223F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, _08022534 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0802240A + b _0802258A +_0802240A: + movs r5, 0 +_0802240C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08022538 @ =gUnknown_2024284 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _0802243C + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _0802243C + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_0802243C: + adds r5, 0x1 + cmp r5, 0x5 + ble _0802240C + cmp r6, 0 + bne _08022450 + ldr r0, _0802253C @ =gUnknown_2023E8A + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_08022450: + movs r6, 0 + movs r5, 0 +_08022454: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08022540 @ =gUnknown_202402C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08022484 + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _08022484 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_08022484: + adds r5, 0x1 + cmp r5, 0x5 + ble _08022454 + ldr r2, _0802253C @ =gUnknown_2023E8A + cmp r6, 0 + bne _08022498 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_08022498: + ldrb r0, [r2] + cmp r0, 0 + bne _08022582 + ldr r0, _08022544 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r2, 0x2 + ands r1, r2 + mov r8, r0 + cmp r1, 0 + beq _08022582 + movs r3, 0 + movs r5, 0 + ldr r0, _08022548 @ =gUnknown_2023BCC + ldrb r1, [r0] + mov r12, r0 + ldr r7, _0802254C @ =gUnknown_2023D74 + cmp r3, r1 + bge _080224E4 + ldr r0, _08022550 @ =gUnknown_2023DD0 + movs r6, 0x80 + lsls r6, 21 + ldr r4, [r0] + adds r2, r1, 0 + ldr r1, _08022554 @ =gUnknown_2023ECC +_080224C8: + adds r0, r6, 0 + lsls r0, r5 + ands r0, r4 + cmp r0, 0 + beq _080224DC + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _080224DC + adds r3, 0x1 +_080224DC: + adds r1, 0x28 + adds r5, 0x2 + cmp r5, r2 + blt _080224C8 +_080224E4: + movs r2, 0 + movs r5, 0x1 + mov r0, r12 + ldrb r1, [r0] + cmp r5, r1 + bge _0802251E + ldr r0, _08022550 @ =gUnknown_2023DD0 + movs r4, 0x80 + lsls r4, 21 + mov r12, r4 + ldr r6, [r0] + ldr r0, _08022554 @ =gUnknown_2023ECC + adds r4, r1, 0 + adds r1, r0, 0 + adds r1, 0x14 +_08022502: + mov r0, r12 + lsls r0, r5 + ands r0, r6 + cmp r0, 0 + beq _08022516 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022516 + adds r2, 0x1 +_08022516: + adds r1, 0x28 + adds r5, 0x2 + cmp r5, r4 + blt _08022502 +_0802251E: + mov r1, r8 + ldr r0, [r1] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08022558 + adds r0, r2, r3 + cmp r0, 0x1 + bgt _08022560 + b _0802257A + .align 2, 0 +_08022534: .4byte gUnknown_2023BC8 +_08022538: .4byte gUnknown_2024284 +_0802253C: .4byte gUnknown_2023E8A +_08022540: .4byte gUnknown_202402C +_08022544: .4byte gUnknown_2022B4C +_08022548: .4byte gUnknown_2023BCC +_0802254C: .4byte gUnknown_2023D74 +_08022550: .4byte gUnknown_2023DD0 +_08022554: .4byte gUnknown_2023ECC +_08022558: + cmp r2, 0 + beq _0802257A + cmp r3, 0 + beq _0802257A +_08022560: + ldr r2, [r7] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r7] + b _0802258A +_0802257A: + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _0802258A +_08022582: + ldr r1, _08022594 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802258A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08022594: .4byte gUnknown_2023D74 + thumb_func_end sub_80223F8 + + thumb_func_start sub_8022598 +sub_8022598: @ 8022598 + ldr r1, _080225C0 @ =gUnknown_2023DCC + movs r0, 0 + strb r0, [r1] + ldr r0, _080225C4 @ =gUnknown_2023FC4 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0, 0xE] + ldr r0, _080225C8 @ =gUnknown_2023D71 + strb r1, [r0] + ldr r0, _080225CC @ =gUnknown_2023E82 + strb r2, [r0, 0x3] + strb r2, [r0, 0x6] + ldr r2, _080225D0 @ =gUnknown_2023DD0 + ldr r0, [r2] + subs r1, 0x42 + ands r0, r1 + ldr r1, _080225D4 @ =0xffffbfff + ands r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_080225C0: .4byte gUnknown_2023DCC +_080225C4: .4byte gUnknown_2023FC4 +_080225C8: .4byte gUnknown_2023D71 +_080225CC: .4byte gUnknown_2023E82 +_080225D0: .4byte gUnknown_2023DD0 +_080225D4: .4byte 0xffffbfff + thumb_func_end sub_8022598 + + thumb_func_start sub_80225D8 +sub_80225D8: @ 80225D8 + push {lr} + bl sub_8022598 + ldr r1, _080225EC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080225EC: .4byte gUnknown_2023D74 + thumb_func_end sub_80225D8 + + thumb_func_start sub_80225F0 +sub_80225F0: @ 80225F0 + ldr r3, _08022600 @ =gUnknown_2023D72 + ldr r2, _08022604 @ =gUnknown_2023D74 + ldr r0, [r2] + ldrb r1, [r0, 0x1] + strb r1, [r3] + adds r0, 0x2 + str r0, [r2] + bx lr + .align 2, 0 +_08022600: .4byte gUnknown_2023D72 +_08022604: .4byte gUnknown_2023D74 + thumb_func_end sub_80225F0 + + thumb_func_start sub_8022608 +sub_8022608: @ 8022608 + push {lr} + ldr r1, _08022624 @ =gUnknown_2023D72 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0802262C + ldr r1, _08022628 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08022646 + .align 2, 0 +_08022624: .4byte gUnknown_2023D72 +_08022628: .4byte gUnknown_2023D74 +_0802262C: + ldr r3, _0802264C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] +_08022646: + pop {r0} + bx r0 + .align 2, 0 +_0802264C: .4byte gUnknown_2023D74 + thumb_func_end sub_8022608 + + thumb_func_start sub_8022650 +sub_8022650: @ 8022650 + ldr r3, _0802266C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_0802266C: .4byte gUnknown_2023D74 + thumb_func_end sub_8022650 + + thumb_func_start sub_8022670 +sub_8022670: @ 8022670 + push {r4-r6,lr} + ldr r3, _080226B4 @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r2, [r1, 0x7] + ldrb r0, [r1, 0x8] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x9] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 24 + adds r2, r0 + adds r1, 0xB + str r1, [r3] + cmp r6, 0x5 + bhi _08022708 + lsls r0, r6, 2 + ldr r1, _080226B8 @ =_080226BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080226B4: .4byte gUnknown_2023D74 +_080226B8: .4byte _080226BC + .align 2, 0 +_080226BC: + .4byte _080226D4 + .4byte _080226DC + .4byte _080226E4 + .4byte _080226EC + .4byte _080226F4 + .4byte _080226FE +_080226D4: + ldrb r0, [r5] + cmp r0, r4 + bne _08022708 + b _08022706 +_080226DC: + ldrb r0, [r5] + cmp r0, r4 + beq _08022708 + b _08022706 +_080226E4: + ldrb r0, [r5] + cmp r0, r4 + bls _08022708 + b _08022706 +_080226EC: + ldrb r0, [r5] + cmp r0, r4 + bcs _08022708 + b _08022706 +_080226F4: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _08022708 + b _08022706 +_080226FE: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _08022708 +_08022706: + str r2, [r3] +_08022708: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8022670 + + thumb_func_start sub_8022710 +sub_8022710: @ 8022710 + push {r4-r6,lr} + ldr r3, _0802275C @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r2, [r1, 0x8] + ldrb r0, [r1, 0x9] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 24 + adds r2, r0 + adds r1, 0xC + str r1, [r3] + cmp r6, 0x5 + bhi _080227B0 + lsls r0, r6, 2 + ldr r1, _08022760 @ =_08022764 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802275C: .4byte gUnknown_2023D74 +_08022760: .4byte _08022764 + .align 2, 0 +_08022764: + .4byte _0802277C + .4byte _08022784 + .4byte _0802278C + .4byte _08022794 + .4byte _0802279C + .4byte _080227A6 +_0802277C: + ldrh r0, [r5] + cmp r0, r4 + bne _080227B0 + b _080227AE +_08022784: + ldrh r0, [r5] + cmp r0, r4 + beq _080227B0 + b _080227AE +_0802278C: + ldrh r0, [r5] + cmp r0, r4 + bls _080227B0 + b _080227AE +_08022794: + ldrh r0, [r5] + cmp r0, r4 + bcs _080227B0 + b _080227AE +_0802279C: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _080227B0 + b _080227AE +_080227A6: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _080227B0 +_080227AE: + str r2, [r3] +_080227B0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8022710 + + thumb_func_start sub_80227B8 +sub_80227B8: @ 80227B8 + push {r4-r6,lr} + ldr r3, _08022810 @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x8] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x9] + lsls r0, 24 + orrs r4, r0 + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + adds r1, 0xE + str r1, [r3] + cmp r6, 0x5 + bhi _08022864 + lsls r0, r6, 2 + ldr r1, _08022814 @ =_08022818 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022810: .4byte gUnknown_2023D74 +_08022814: .4byte _08022818 + .align 2, 0 +_08022818: + .4byte _08022830 + .4byte _08022838 + .4byte _08022840 + .4byte _08022848 + .4byte _08022850 + .4byte _0802285A +_08022830: + ldr r0, [r5] + cmp r0, r4 + bne _08022864 + b _08022862 +_08022838: + ldr r0, [r5] + cmp r0, r4 + beq _08022864 + b _08022862 +_08022840: + ldr r0, [r5] + cmp r0, r4 + bls _08022864 + b _08022862 +_08022848: + ldr r0, [r5] + cmp r0, r4 + bcs _08022864 + b _08022862 +_08022850: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + beq _08022864 + b _08022862 +_0802285A: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + bne _08022864 +_08022862: + str r2, [r3] +_08022864: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80227B8 + + thumb_func_start sub_802286C +sub_802286C: @ 802286C + push {r4-r7,lr} + ldr r2, _080228C4 @ =gUnknown_2023D74 + ldr r3, [r2] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r5, r1, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 24 + adds r4, r1, r0 + ldrb r6, [r3, 0x9] + ldrb r1, [r3, 0xA] + ldrb r0, [r3, 0xB] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0xC] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0xD] + lsls r0, 24 + adds r1, r0 + mov r12, r1 + movs r1, 0 + cmp r1, r6 + bcs _080228E4 + ldrb r0, [r5] + ldrb r7, [r4] + cmp r0, r7 + beq _080228C8 + adds r0, r3, 0 + b _080228E0 + .align 2, 0 +_080228C4: .4byte gUnknown_2023D74 +_080228C8: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcs _080228E4 + ldrb r0, [r5] + ldrb r3, [r4] + cmp r0, r3 + beq _080228C8 + ldr r0, [r2] +_080228E0: + adds r0, 0xE + str r0, [r2] +_080228E4: + cmp r1, r6 + bne _080228EC + mov r7, r12 + str r7, [r2] +_080228EC: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802286C + + thumb_func_start sub_80228F4 +sub_80228F4: @ 80228F4 + push {r4-r7,lr} + movs r7, 0 + ldr r3, _08022968 @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r5, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r4, r2, r0 + ldrb r6, [r1, 0x9] + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + mov r12, r2 + movs r1, 0 + cmp r7, r6 + bcs _0802295E +_08022942: + ldrb r0, [r5] + ldrb r2, [r4] + cmp r0, r2 + bne _08022950 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08022950: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcc _08022942 +_0802295E: + cmp r7, r6 + beq _0802296C + mov r0, r12 + b _08022970 + .align 2, 0 +_08022968: .4byte gUnknown_2023D74 +_0802296C: + ldr r0, [r3] + adds r0, 0xE +_08022970: + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80228F4 + + thumb_func_start sub_8022978 +sub_8022978: @ 8022978 + ldr r3, _0802299C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_0802299C: .4byte gUnknown_2023D74 + thumb_func_end sub_8022978 + + thumb_func_start sub_80229A0 +sub_80229A0: @ 80229A0 + ldr r3, _080229C8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_080229C8: .4byte gUnknown_2023D74 + thumb_func_end sub_80229A0 + + thumb_func_start sub_80229CC +sub_80229CC: @ 80229CC + ldr r3, _080229F4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + subs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_080229F4: .4byte gUnknown_2023D74 + thumb_func_end sub_80229CC + + thumb_func_start sub_80229F8 +sub_80229F8: @ 80229F8 + push {r4-r6,lr} + ldr r3, _08022A48 @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x9] + movs r2, 0 + cmp r2, r4 + bge _08022A3C +_08022A2E: + adds r0, r6, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _08022A2E +_08022A3C: + ldr r0, [r3] + adds r0, 0xA + str r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08022A48: .4byte gUnknown_2023D74 + thumb_func_end sub_80229F8 + + thumb_func_start sub_8022A4C +sub_8022A4C: @ 8022A4C + push {r4-r7,lr} + ldr r3, _08022AB4 @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r7, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x9] + ldrb r0, [r1, 0xA] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0xD] + movs r2, 0 + cmp r2, r4 + bge _08022AA8 +_08022A96: + adds r0, r7, r2 + ldrb r1, [r5] + adds r1, r2, r1 + adds r1, r6, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _08022A96 +_08022AA8: + ldr r0, [r3] + adds r0, 0xE + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08022AB4: .4byte gUnknown_2023D74 + thumb_func_end sub_8022A4C + + thumb_func_start sub_8022AB8 +sub_8022AB8: @ 8022AB8 + ldr r3, _08022AE0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_08022AE0: .4byte gUnknown_2023D74 + thumb_func_end sub_8022AB8 + + thumb_func_start sub_8022AE4 +sub_8022AE4: @ 8022AE4 + push {r4,lr} + ldr r4, _08022B18 @ =gUnknown_2023D74 + ldr r3, [r4] + ldrb r2, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r2, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2] + orrs r1, r0 + strh r1, [r2] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022B18: .4byte gUnknown_2023D74 + thumb_func_end sub_8022AE4 + + thumb_func_start sub_8022B1C +sub_8022B1C: @ 8022B1C + push {r4,lr} + ldr r4, _08022B5C @ =gUnknown_2023D74 + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022B5C: .4byte gUnknown_2023D74 + thumb_func_end sub_8022B1C + + thumb_func_start sub_8022B60 +sub_8022B60: @ 8022B60 + ldr r3, _08022B88 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r2, 0x5] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_08022B88: .4byte gUnknown_2023D74 + thumb_func_end sub_8022B60 + + thumb_func_start sub_8022B8C +sub_8022B8C: @ 8022B8C + push {r4,lr} + ldr r4, _08022BC0 @ =gUnknown_2023D74 + ldr r3, [r4] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r2, r0 + ldrh r0, [r1] + bics r0, r2 + strh r0, [r1] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022BC0: .4byte gUnknown_2023D74 + thumb_func_end sub_8022B8C + + thumb_func_start sub_8022BC4 +sub_8022BC4: @ 8022BC4 + push {r4,lr} + ldr r4, _08022C04 @ =gUnknown_2023D74 + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022C04: .4byte gUnknown_2023D74 + thumb_func_end sub_8022BC4 + + thumb_func_start sub_8022C08 +sub_8022C08: @ 8022C08 + push {r4,r5,lr} + ldr r0, _08022C3C @ =gUnknown_2023BC8 + ldr r4, [r0] + cmp r4, 0 + bne _08022C34 + ldr r5, _08022C40 @ =gUnknown_2023D74 + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, _08022C44 @ =gUnknown_2023E7C + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _08022C34 + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] +_08022C34: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08022C3C: .4byte gUnknown_2023BC8 +_08022C40: .4byte gUnknown_2023D74 +_08022C44: .4byte gUnknown_2023E7C + thumb_func_end sub_8022C08 + + thumb_func_start sub_8022C48 +sub_8022C48: @ 8022C48 + push {lr} + ldr r0, _08022C60 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08022C5A + ldr r1, _08022C64 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08022C5A: + pop {r0} + bx r0 + .align 2, 0 +_08022C60: .4byte gUnknown_2023BC8 +_08022C64: .4byte gUnknown_2023D74 + thumb_func_end sub_8022C48 + + thumb_func_start sub_8022C68 +sub_8022C68: @ 8022C68 + push {lr} + ldr r0, _08022C7C @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08022C88 + ldr r0, _08022C80 @ =gUnknown_2023BC4 + ldr r1, _08022C84 @ =gUnknown_2023D6C + b _08022C8C + .align 2, 0 +_08022C7C: .4byte gUnknown_2023D74 +_08022C80: .4byte gUnknown_2023BC4 +_08022C84: .4byte gUnknown_2023D6C +_08022C88: + ldr r0, _08022CB0 @ =gUnknown_2023BC4 + ldr r1, _08022CB4 @ =gUnknown_2023D6B +_08022C8C: + ldrb r1, [r1] + strb r1, [r0] + ldr r0, _08022CB8 @ =gUnknown_2023D50 + ldrh r1, [r0] + movs r0, 0 + bl sub_800E5EC + ldr r0, _08022CB0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _08022CBC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08022CB0: .4byte gUnknown_2023BC4 +_08022CB4: .4byte gUnknown_2023D6B +_08022CB8: .4byte gUnknown_2023D50 +_08022CBC: .4byte gUnknown_2023D74 + thumb_func_end sub_8022C68 + + thumb_func_start sub_8022CC0 +sub_8022CC0: @ 8022CC0 + push {lr} + bl sub_801756C + pop {r0} + bx r0 + thumb_func_end sub_8022CC0 + + thumb_func_start sub_8022CCC +sub_8022CCC: @ 8022CCC + ldr r0, _08022CE0 @ =gUnknown_2023DCC + movs r1, 0 + strb r1, [r0] + ldr r0, _08022CE4 @ =gUnknown_2023BC4 + strb r1, [r0] + ldr r1, _08022CE8 @ =gUnknown_2023BE3 + movs r0, 0xB + strb r0, [r1] + bx lr + .align 2, 0 +_08022CE0: .4byte gUnknown_2023DCC +_08022CE4: .4byte gUnknown_2023BC4 +_08022CE8: .4byte gUnknown_2023BE3 + thumb_func_end sub_8022CCC + + thumb_func_start sub_8022CEC +sub_8022CEC: @ 8022CEC + ldr r1, _08022CFC @ =gUnknown_2023BC4 + movs r0, 0 + strb r0, [r1] + ldr r1, _08022D00 @ =gUnknown_2023BE3 + movs r0, 0xB + strb r0, [r1] + bx lr + .align 2, 0 +_08022CFC: .4byte gUnknown_2023BC4 +_08022D00: .4byte gUnknown_2023BE3 + thumb_func_end sub_8022CEC + + thumb_func_start sub_8022D04 +sub_8022D04: @ 8022D04 + push {lr} + bl sub_801756C + ldr r3, _08022D38 @ =gUnknown_2023FF4 + ldr r0, [r3] + ldr r0, [r0, 0xC] + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + beq _08022D1E + subs r0, 0x1 + strb r0, [r1] +_08022D1E: + ldr r2, _08022D3C @ =gUnknown_3004F84 + ldr r0, [r3] + ldr r1, [r0, 0xC] + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_08022D38: .4byte gUnknown_2023FF4 +_08022D3C: .4byte gUnknown_3004F84 + thumb_func_end sub_8022D04 + + thumb_func_start sub_8022D40 +sub_8022D40: @ 8022D40 + push {r4,lr} + ldr r4, _08022D6C @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x5 + bl sub_8017520 + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022D6C: .4byte gUnknown_2023D74 + thumb_func_end sub_8022D40 + + thumb_func_start sub_8022D70 +sub_8022D70: @ 8022D70 + push {r4,lr} + ldr r4, _08022DB8 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldr r2, _08022DBC @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r2, [r3, 0x2] + ldrb r1, [r1] + cmp r2, r1 + beq _08022D9E + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _08022DC0 +_08022D9E: + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08022DC4 + .align 2, 0 +_08022DB8: .4byte gUnknown_2023D74 +_08022DBC: .4byte gUnknown_2023BE4 +_08022DC0: + adds r0, r3, 0x7 + str r0, [r4] +_08022DC4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8022D70 + + thumb_func_start sub_8022DCC +sub_8022DCC: @ 8022DCC + push {r4,lr} + sub sp, 0x4 + ldr r4, _08022E04 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r2, [r0, 0x1] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _08022E08 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08022E0E + .align 2, 0 +_08022E04: .4byte gUnknown_2023D74 +_08022E08: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_08022E0E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8022DCC + + thumb_func_start sub_8022E18 +sub_8022E18: @ 8022E18 + ldr r0, _08022E2C @ =gUnknown_2023D6B + ldrb r0, [r0] + ldr r1, _08022E30 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x54 + movs r1, 0x1 + strb r1, [r0] + bx lr + .align 2, 0 +_08022E2C: .4byte gUnknown_2023D6B +_08022E30: .4byte gUnknown_2023FE8 + thumb_func_end sub_8022E18 + + thumb_func_start sub_8022E34 +sub_8022E34: @ 8022E34 + push {r4-r6,lr} + ldr r4, _08022E84 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r6, _08022E88 @ =gUnknown_2023BC4 + strb r0, [r6] + ldr r2, [r4] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r3, r1, r0 + ldrb r5, [r2, 0x2] + adds r0, r5, 0 + cmp r0, 0x1 + beq _08022E6E + cmp r0, 0x11 + beq _08022E6E + cmp r0, 0x2 + beq _08022E6E + cmp r0, 0x19 + bne _08022E8C +_08022E6E: + ldr r4, _08022E84 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r1, [r0, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl sub_800EB28 + ldr r0, _08022E88 @ =gUnknown_2023BC4 + ldrb r0, [r0] + b _08022EE4 + .align 2, 0 +_08022E84: .4byte gUnknown_2023D74 +_08022E88: .4byte gUnknown_2023BC4 +_08022E8C: + ldr r0, _08022EA4 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08022EAC + adds r0, r2, 0x7 + bl sub_8017520 + ldr r0, _08022EA8 @ =gUnknown_81D89F1 + b _08022EEC + .align 2, 0 +_08022EA4: .4byte gUnknown_2023DD0 +_08022EA8: .4byte gUnknown_81D89F1 +_08022EAC: + adds r0, r5, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08022ED8 + ldr r1, _08022ED0 @ =gUnknown_2023DFC + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08022ED4 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08022ED8 + adds r0, r2, 0x7 + b _08022EEC + .align 2, 0 +_08022ED0: .4byte gUnknown_2023DFC +_08022ED4: .4byte 0x000400c0 +_08022ED8: + ldrb r1, [r2, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl sub_800EB28 + ldrb r0, [r6] +_08022EE4: + bl sub_8017248 + ldr r0, [r4] + adds r0, 0x7 +_08022EEC: + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8022E34 + + thumb_func_start sub_8022EF4 +sub_8022EF4: @ 8022EF4 + push {r4-r7,lr} + ldr r6, _08022F5C @ =gUnknown_2023D74 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r7, _08022F60 @ =gUnknown_2023BC4 + strb r0, [r7] + ldr r2, [r6] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r3, r1, r0 + ldrb r1, [r2, 0x6] + ldrb r0, [r2, 0x7] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 24 + adds r4, r1, r0 + ldrb r5, [r3] + adds r0, r5, 0 + cmp r0, 0x1 + beq _08022F3E + cmp r0, 0x11 + beq _08022F3E + cmp r0, 0x2 + bne _08022F64 +_08022F3E: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl sub_800EB28 + ldr r0, _08022F60 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _08022F5C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _08022FBA + .align 2, 0 +_08022F5C: .4byte gUnknown_2023D74 +_08022F60: .4byte gUnknown_2023BC4 +_08022F64: + ldr r0, _08022F74 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08022F78 + adds r0, r2, 0 + b _08022FB6 + .align 2, 0 +_08022F74: .4byte gUnknown_2023DD0 +_08022F78: + adds r0, r5, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08022FA4 + ldr r1, _08022F9C @ =gUnknown_2023DFC + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08022FA0 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08022FA4 + adds r0, r2, 0 + b _08022FB6 + .align 2, 0 +_08022F9C: .4byte gUnknown_2023DFC +_08022FA0: .4byte 0x000400c0 +_08022FA4: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl sub_800EB28 + ldrb r0, [r7] + bl sub_8017248 + ldr r0, [r6] +_08022FB6: + adds r0, 0xA + str r0, [r6] +_08022FBA: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8022EF4 + + thumb_func_start sub_8022FC0 +sub_8022FC0: @ 8022FC0 + push {r4,lr} + movs r3, 0 + ldr r1, _08022FDC @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1A] + movs r2, 0xF0 + ands r2, r0 + adds r4, r1, 0 + cmp r2, 0x20 + beq _08022FEE + cmp r2, 0x20 + bgt _08022FE0 + cmp r2, 0x10 + beq _08022FEA + b _08022FF8 + .align 2, 0 +_08022FDC: .4byte gUnknown_2023FC4 +_08022FE0: + cmp r2, 0x90 + beq _08022FF2 + cmp r2, 0xA0 + beq _08022FF6 + b _08022FF8 +_08022FEA: + movs r3, 0xF + b _08022FF8 +_08022FEE: + movs r3, 0x27 + b _08022FF8 +_08022FF2: + movs r3, 0x16 + b _08022FF8 +_08022FF6: + movs r3, 0x2E +_08022FF8: + ldrb r1, [r4, 0x1A] + movs r0, 0xF + ands r0, r1 + adds r0, r3, r0 + subs r0, 0x1 + movs r1, 0 + strb r0, [r4, 0x10] + strb r1, [r4, 0x11] + ldr r1, _08023018 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08023018: .4byte gUnknown_2023D74 + thumb_func_end sub_8022FC0 + + thumb_func_start sub_802301C +sub_802301C: @ 802301C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r8, r0 + movs r3, 0 + ldr r5, _08023090 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + str r3, [sp] + bl sub_8016E24 + ldr r2, _08023094 @ =gUnknown_2023BC4 + strb r0, [r2] + ldr r0, [r5] + ldrb r4, [r0, 0x2] + ldrb r1, [r0, 0x3] + movs r0, 0x1 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _08023130 + movs r0, 0x2 + ands r0, r1 + movs r1, 0x15 + cmp r0, 0 + beq _0802305C + movs r1, 0x2D +_0802305C: + cmp r4, 0 + beq _08023104 + movs r0, 0x1 + mov r10, r0 + ldr r0, _08023098 @ =gUnknown_2023BFC + mov r9, r0 + lsls r5, r1, 16 +_0802306A: + adds r0, r4, 0 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + beq _080230F6 + ldr r0, _08023090 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802309C + ldr r0, _08023094 @ =gUnknown_2023BC4 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + b _080230E4 + .align 2, 0 +_08023090: .4byte gUnknown_2023D74 +_08023094: .4byte gUnknown_2023BC4 +_08023098: .4byte gUnknown_2023BFC +_0802309C: + ldr r6, _08023120 @ =gUnknown_2023BC4 + ldrb r0, [r6] + str r3, [sp] + bl sub_80751D8 + mov r1, r10 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08023124 @ =gUnknown_2023DE4 + adds r0, r1 + ldrb r0, [r0, 0x4] + ldr r3, [sp] + cmp r0, 0 + bne _080230F6 + ldr r0, _08023128 @ =gUnknown_2023BE4 + ldrb r2, [r6] + movs r1, 0x58 + muls r2, r1 + adds r0, r2, r0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1D + beq _080230F6 + cmp r0, 0x49 + beq _080230F6 + cmp r0, 0x33 + bne _080230DA + cmp r7, 0x6 + beq _080230F6 +_080230DA: + cmp r0, 0x34 + bne _080230E2 + cmp r7, 0x1 + beq _080230F6 +_080230E2: + adds r0, r7, r2 +_080230E4: + add r0, r9 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080230F6 + lsrs r0, r5, 16 + mov r8, r0 + adds r3, 0x1 +_080230F6: + lsrs r4, 1 + movs r1, 0x80 + lsls r1, 9 + adds r5, r1 + adds r7, 0x1 + cmp r4, 0 + bne _0802306A +_08023104: + ldr r0, _0802312C @ =gUnknown_2023D74 + mov r9, r0 + cmp r3, 0x1 + ble _08023192 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x39 + mov r8, r1 + cmp r0, 0 + beq _08023192 + movs r0, 0x3A + b _08023190 + .align 2, 0 +_08023120: .4byte gUnknown_2023BC4 +_08023124: .4byte gUnknown_2023DE4 +_08023128: .4byte gUnknown_2023BE4 +_0802312C: .4byte gUnknown_2023D74 +_08023130: + movs r0, 0x2 + ands r0, r1 + movs r1, 0xE + cmp r0, 0 + beq _0802313C + movs r1, 0x26 +_0802313C: + mov r9, r5 + cmp r4, 0 + beq _08023178 + ldr r6, _080231AC @ =gUnknown_2023BFC + adds r5, r2, 0 + lsls r2, r1, 16 +_08023148: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0802316A + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xB + bgt _0802316A + lsrs r1, r2, 16 + mov r8, r1 + adds r3, 0x1 +_0802316A: + lsrs r4, 1 + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 + adds r7, 0x1 + cmp r4, 0 + bne _08023148 +_08023178: + cmp r3, 0x1 + ble _08023192 + mov r1, r9 + ldr r0, [r1] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x37 + mov r8, r1 + cmp r0, 0 + beq _08023192 + movs r0, 0x38 +_08023190: + mov r8, r0 +_08023192: + mov r1, r9 + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080231B0 + cmp r3, 0x1 + bgt _080231B0 + adds r0, r2, 0x4 + mov r1, r9 + b _080231FE + .align 2, 0 +_080231AC: .4byte gUnknown_2023BFC +_080231B0: + cmp r3, 0 + beq _080231F8 + ldr r4, _080231EC @ =gUnknown_2023FC4 + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _080231F8 + movs r0, 0 + movs r1, 0x1 + mov r2, r8 + str r3, [sp] + bl sub_800EB28 + ldr r0, _080231F0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r0, _080231F4 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x4 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _080231E8 + cmp r3, 0x1 + ble _080231E8 + movs r0, 0x1 + strb r0, [r4, 0x1B] +_080231E8: + ldr r1, _080231F4 @ =gUnknown_2023D74 + b _080231FA + .align 2, 0 +_080231EC: .4byte gUnknown_2023FC4 +_080231F0: .4byte gUnknown_2023BC4 +_080231F4: .4byte gUnknown_2023D74 +_080231F8: + mov r1, r9 +_080231FA: + ldr r0, [r1] + adds r0, 0x4 +_080231FE: + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802301C + + thumb_func_start sub_8023210 +sub_8023210: @ 8023210 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + movs r0, 0 + mov r10, r0 + ldr r2, _08023260 @ =gUnknown_2023D4C + ldrh r1, [r2] + ldr r0, _08023264 @ =0x0000ffff + movs r3, 0 + str r3, [sp, 0x18] + cmp r1, r0 + beq _08023232 + ldrh r2, [r2] + str r2, [sp, 0x18] +_08023232: + ldr r0, _08023268 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r4, [r0, 0x1] + str r4, [sp, 0x10] + ldrb r0, [r0, 0x2] + str r0, [sp, 0x14] + ldr r1, _0802326C @ =gUnknown_2023BE4 + ldr r0, _08023270 @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08023278 + ldr r1, _08023274 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x7] + b _08023282 + .align 2, 0 +_08023260: .4byte gUnknown_2023D4C +_08023264: .4byte 0x0000ffff +_08023268: .4byte gUnknown_2023D74 +_0802326C: .4byte gUnknown_2023BE4 +_08023270: .4byte gUnknown_2023D6B +_08023274: .4byte gUnknown_2023F54 +_08023278: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r0, 24 +_08023282: + str r0, [sp, 0x8] + ldr r1, _080232A4 @ =gUnknown_2023FE8 + ldr r0, _080232A8 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 1 + adds r0, 0xC8 + ldr r1, [r1] + adds r0, r1, r0 + str r0, [sp, 0xC] + ldrb r0, [r1, 0x13] + cmp r0, 0 + beq _08023334 + movs r5, 0x3F + ands r5, r0 + str r5, [sp, 0x4] + b _08023346 + .align 2, 0 +_080232A4: .4byte gUnknown_2023FE8 +_080232A8: .4byte gUnknown_2023D6B +_080232AC: + ldr r4, _080232C0 @ =gUnknown_2023BC4 + strb r2, [r4] + movs r0, 0 + movs r1, 0x1 + bl sub_800EB04 + ldrb r0, [r4] + bl sub_8017248 + b _0802379E + .align 2, 0 +_080232C0: .4byte gUnknown_2023BC4 +_080232C4: + ldr r4, _080232E8 @ =gUnknown_2023BC4 + strb r2, [r4] + movs r0, 0 + movs r1, 0 + bl sub_800EB04 + ldrb r0, [r4] + bl sub_8017248 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r5 + ldr r0, [r1] + ldr r2, _080232EC @ =0xfffbff3f + ands r0, r2 + str r0, [r1] + b _0802379E + .align 2, 0 +_080232E8: .4byte gUnknown_2023BC4 +_080232EC: .4byte 0xfffbff3f +_080232F0: + strb r2, [r7] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r0, _08023324 @ =gUnknown_2023FC4 + strb r4, [r0, 0x14] + bl sub_8022598 + ldr r2, _08023328 @ =gUnknown_81D65A8 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + bl sub_8017520 + ldr r1, _0802332C @ =gUnknown_2023D74 + ldr r0, _08023330 @ =gUnknown_81D96A8 + bl _08023BFC + .align 2, 0 +_08023324: .4byte gUnknown_2023FC4 +_08023328: .4byte gUnknown_81D65A8 +_0802332C: .4byte gUnknown_2023D74 +_08023330: .4byte gUnknown_81D96A8 +_08023334: + ldr r2, _0802334C @ =gUnknown_8250C04 + ldr r0, _08023350 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x4] +_08023346: + ldr r1, _08023354 @ =gUnknown_2023FC4 + mov r12, r1 + b _08023362 + .align 2, 0 +_0802334C: .4byte gUnknown_8250C04 +_08023350: .4byte gUnknown_2023D4A +_08023354: .4byte gUnknown_2023FC4 +_08023358: + mov r2, r10 + cmp r2, 0 + beq _08023362 + bl _08023BE8 +_08023362: + mov r3, r12 + ldrb r0, [r3, 0x14] + cmp r0, 0x11 + bls _0802336E + bl _08023BB4 +_0802336E: + lsls r0, 2 + ldr r1, _08023378 @ =_0802337C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08023378: .4byte _0802337C + .align 2, 0 +_0802337C: + .4byte _080233C4 + .4byte _080234A0 + .4byte _0802355C + .4byte _08023580 + .4byte _08023598 + .4byte _080235C0 + .4byte _080235E4 + .4byte _0802368C + .4byte _08023702 + .4byte _08023738 + .4byte _080237D8 + .4byte _080236CC + .4byte _080236EC + .4byte _0802381C + .4byte _08023860 + .4byte _08023A40 + .4byte _08023B28 + .4byte _08023BB4 +_080233C4: + ldr r6, _0802347C @ =gUnknown_2023BE4 + ldr r5, _08023480 @ =gUnknown_2023D6C + ldrb r3, [r5] + movs r7, 0x58 + adds r2, r3, 0 + muls r2, r7 + adds r0, r6, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 16 + ands r0, r1 + cmp r0, 0 + bne _080233E4 + b _080237C8 +_080233E4: + adds r0, r2, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _080233EE + b _080237C8 +_080233EE: + ldr r0, _08023484 @ =gUnknown_2023D6B + ldrb r1, [r0] + cmp r1, r3 + bne _080233F8 + b _080237C8 +_080233F8: + adds r0, r1, 0 + bl sub_80751C4 + adds r4, r0, 0 + ldrb r0, [r5] + bl sub_80751C4 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _08023410 + b _080237C8 +_08023410: + ldr r0, _08023488 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0802341E + b _080237C8 +_0802341E: + ldr r2, _0802348C @ =gUnknown_2023ECC + ldrb r3, [r5] + lsls r0, r3, 2 + adds r0, r3 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08023442 + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08023442 + b _080237C8 +_08023442: + ldr r2, _08023490 @ =gUnknown_8250C04 + ldr r0, _08023494 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08023458 + b _080237C8 +_08023458: + adds r0, r3, 0 + muls r0, r7 + adds r1, r0, r6 + ldrb r2, [r1, 0x19] + movs r0, 0x19 + ldrsb r0, [r1, r0] + cmp r0, 0xB + ble _0802346A + b _080237C8 +_0802346A: + adds r0, r2, 0x1 + strb r0, [r1, 0x19] + bl sub_8017544 + ldr r1, _08023498 @ =gUnknown_2023D74 + ldr r0, _0802349C @ =gUnknown_81D8C48 + str r0, [r1] + b _080236FC + .align 2, 0 +_0802347C: .4byte gUnknown_2023BE4 +_08023480: .4byte gUnknown_2023D6C +_08023484: .4byte gUnknown_2023D6B +_08023488: .4byte gUnknown_2023DCC +_0802348C: .4byte gUnknown_2023ECC +_08023490: .4byte gUnknown_8250C04 +_08023494: .4byte gUnknown_2023D4A +_08023498: .4byte gUnknown_2023D74 +_0802349C: .4byte gUnknown_81D8C48 +_080234A0: + ldr r4, _0802353C @ =gUnknown_2023BE4 + ldr r6, _08023540 @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r5, 0x58 + mov r12, r5 + mov r1, r12 + muls r1, r2 + adds r7, r4, 0 + adds r7, 0x4C + adds r5, r1, r7 + ldr r3, [r5] + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + bne _080234C0 + b _080237C8 +_080234C0: + adds r0, r1, r4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _080234CA + b _080237C8 +_080234CA: + ldr r0, _08023544 @ =gUnknown_2023D6B + ldrb r0, [r0] + cmp r0, r2 + bne _080234D4 + b _080237C8 +_080234D4: + ldr r0, _08023548 @ =gUnknown_2023ECC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0xC + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _080234E8 + b _080237C8 +_080234E8: + ldr r0, _0802354C @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _080234F6 + b _080237C8 +_080234F6: + ldr r0, [sp, 0x4] + cmp r0, 0xA + beq _080234FE + b _080237C8 +_080234FE: + movs r0, 0x21 + negs r0, r0 + ands r3, r0 + str r3, [r5] + ldr r4, _08023550 @ =gUnknown_2023BC4 + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r6] + mov r1, r12 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + bl sub_8017544 + ldr r1, _08023554 @ =gUnknown_2023D74 + ldr r0, _08023558 @ =gUnknown_81D9098 + str r0, [r1] + movs r2, 0x1 + mov r10, r2 + b _080237C8 + .align 2, 0 +_0802353C: .4byte gUnknown_2023BE4 +_08023540: .4byte gUnknown_2023D6C +_08023544: .4byte gUnknown_2023D6B +_08023548: .4byte gUnknown_2023ECC +_0802354C: .4byte gUnknown_2023DCC +_08023550: .4byte gUnknown_2023BC4 +_08023554: .4byte gUnknown_2023D74 +_08023558: .4byte gUnknown_81D9098 +_0802355C: + ldr r0, _0802357C @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _08023576 + b _080237C8 +_08023576: + movs r3, 0x1 + mov r10, r3 + b _080237C8 + .align 2, 0 +_0802357C: .4byte gUnknown_2023D6C +_08023580: + ldr r0, _08023594 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + b _080236F6 + .align 2, 0 +_08023594: .4byte gUnknown_2023D6C +_08023598: + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _080235B0 + b _080237C8 +_080235B0: + movs r5, 0x1 + mov r10, r5 + ldr r0, _080235BC @ =gUnknown_2023FC4 + mov r12, r0 + b _08023BB4 + .align 2, 0 +_080235BC: .4byte gUnknown_2023FC4 +_080235C0: + ldr r0, _080235E0 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _080235DA + b _080237C8 +_080235DA: + movs r1, 0x1 + mov r10, r1 + b _080237C8 + .align 2, 0 +_080235E0: .4byte gUnknown_2023D6B +_080235E4: + ldr r0, _08023674 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08023628 + ldr r2, [sp, 0x8] + cmp r2, 0x1D + bne _08023628 + ldr r0, _08023678 @ =gUnknown_2023D4C + ldrh r2, [r0] + adds r3, r0, 0 + cmp r2, 0xA5 + beq _08023628 + ldr r4, [sp, 0xC] + ldrh r1, [r4] + cmp r1, 0 + beq _08023610 + ldr r0, _0802367C @ =0x0000ffff + cmp r1, r0 + bne _08023628 +_08023610: + cmp r2, 0xE2 + bne _08023622 + ldr r0, _08023680 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08023622 + b _08023AFA +_08023622: + ldrh r0, [r3] + ldr r1, [sp, 0xC] + strh r0, [r1] +_08023628: + movs r4, 0 + ldr r2, _08023684 @ =gUnknown_2023BE4 + ldr r3, _08023688 @ =gUnknown_2023D6B + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + ldr r5, [sp, 0xC] + ldrh r1, [r5] + mov r9, r3 + cmp r0, r1 + beq _08023660 + mov r6, r9 + movs r3, 0x58 + adds r5, r1, 0 +_0802364A: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08023660 + lsls r0, r4, 1 + ldrb r1, [r6] + muls r1, r3 + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r5 + bne _0802364A +_08023660: + cmp r4, 0x4 + bne _0802366A + movs r0, 0 + ldr r1, [sp, 0xC] + strh r0, [r1] +_0802366A: + mov r2, r12 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + b _08023BB4 + .align 2, 0 +_08023674: .4byte gUnknown_2023DD0 +_08023678: .4byte gUnknown_2023D4C +_0802367C: .4byte 0x0000ffff +_08023680: .4byte gUnknown_2023DCC +_08023684: .4byte gUnknown_2023BE4 +_08023688: .4byte gUnknown_2023D6B +_0802368C: + movs r4, 0 + ldr r0, _080236C0 @ =gUnknown_2023BCC + ldrb r3, [r0] + cmp r4, r3 + blt _08023698 + b _08023846 +_08023698: + ldr r7, _080236C4 @ =gUnknown_2023FE8 + movs r6, 0 + movs r3, 0xD0 + adds r5, r0, 0 + ldr r2, _080236C8 @ =gUnknown_2023BE4 +_080236A2: + ldr r0, [r7] + adds r0, r3 + ldrh r1, [r0] + cmp r1, 0 + beq _080236B0 + strh r1, [r2, 0x2E] + strh r6, [r0] +_080236B0: + adds r3, 0x2 + adds r2, 0x58 + adds r4, 0x1 + ldrb r0, [r5] + cmp r4, r0 + blt _080236A2 + b _08023846 + .align 2, 0 +_080236C0: .4byte gUnknown_2023BCC +_080236C4: .4byte gUnknown_2023FE8 +_080236C8: .4byte gUnknown_2023BE4 +_080236CC: + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_801BC68 + lsls r0, 24 + cmp r0, 0 + beq _080237C8 + movs r2, 0x1 + mov r10, r2 + ldr r3, _080236E8 @ =gUnknown_2023FC4 + mov r12, r3 + b _08023BB4 + .align 2, 0 +_080236E8: .4byte gUnknown_2023FC4 +_080236EC: + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + bl sub_801BC68 +_080236F6: + lsls r0, 24 + cmp r0, 0 + beq _080237C8 +_080236FC: + movs r4, 0x1 + mov r10, r4 + b _080237C8 +_08023702: + ldr r1, _08023728 @ =gUnknown_2023DFC + ldr r0, _0802372C @ =gUnknown_2023D6B + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08023730 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08023718 + b _08023AFA +_08023718: + ldr r0, _08023734 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08023726 + b _080232AC +_08023726: + b _08023AFA + .align 2, 0 +_08023728: .4byte gUnknown_2023DFC +_0802372C: .4byte gUnknown_2023D6B +_08023730: .4byte 0x000400c0 +_08023734: .4byte gUnknown_2023DD0 +_08023738: + ldr r0, _080237A8 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08023764 + ldr r1, _080237AC @ =gUnknown_2023DFC + ldr r0, _080237B0 @ =gUnknown_2023D6B + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080237B4 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08023764 + adds r0, r2, 0 + bl sub_8017354 + lsls r0, 24 + cmp r0, 0 + beq _080237C8 +_08023764: + ldr r4, _080237B8 @ =gUnknown_2023BC4 + ldr r5, _080237B0 @ =gUnknown_2023D6B + ldrb r0, [r5] + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl sub_800EB04 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, _080237AC @ =gUnknown_2023DFC + ldrb r2, [r5] + lsls r2, 2 + adds r2, r0 + ldr r0, [r2] + ldr r1, _080237BC @ =0xfffbff3f + ands r0, r1 + str r0, [r2] + ldr r2, _080237C0 @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0802379E: + ldr r1, _080237C4 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + b _08023BFE + .align 2, 0 +_080237A8: .4byte gUnknown_2023DCC +_080237AC: .4byte gUnknown_2023DFC +_080237B0: .4byte gUnknown_2023D6B +_080237B4: .4byte 0x000400c0 +_080237B8: .4byte gUnknown_2023BC4 +_080237BC: .4byte 0xfffbff3f +_080237C0: .4byte gUnknown_2023ECC +_080237C4: .4byte gUnknown_2023FC4 +_080237C8: + ldr r1, _080237D4 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + mov r12, r1 + b _08023BB4 + .align 2, 0 +_080237D4: .4byte gUnknown_2023FC4 +_080237D8: + ldr r0, _08023808 @ =gUnknown_2023ECC + ldr r6, _0802380C @ =gUnknown_2023D6C + ldrb r2, [r6] + lsls r3, r2, 2 + adds r1, r3, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + blt _08023846 + ldr r0, _08023810 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r2, r0 + bcs _08023846 + ldr r5, _08023814 @ =gUnknown_2023DFC + adds r0, r3, r5 + ldr r0, [r0] + ldr r1, _08023818 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08023806 + b _080232C4 +_08023806: + b _08023846 + .align 2, 0 +_08023808: .4byte gUnknown_2023ECC +_0802380C: .4byte gUnknown_2023D6C +_08023810: .4byte gUnknown_2023BCC +_08023814: .4byte gUnknown_2023DFC +_08023818: .4byte 0x000400c0 +_0802381C: + movs r4, 0 + ldr r0, _08023850 @ =gUnknown_2023BCC + ldrb r2, [r0] + cmp r4, r2 + bge _08023846 + ldr r2, _08023854 @ =gUnknown_2023E0C + ldr r5, _08023858 @ =0xfeffffff + adds r3, r0, 0 + ldr r1, _0802385C @ =gUnknown_2023C34 +_0802382E: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _0802383A + ldr r0, [r1] + ands r0, r5 + str r0, [r1] +_0802383A: + adds r2, 0x1C + adds r1, 0x58 + adds r4, 0x1 + ldrb r0, [r3] + cmp r4, r0 + blt _0802382E +_08023846: + mov r1, r12 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + b _08023BB4 + .align 2, 0 +_08023850: .4byte gUnknown_2023BCC +_08023854: .4byte gUnknown_2023E0C +_08023858: .4byte 0xfeffffff +_0802385C: .4byte gUnknown_2023C34 +_08023860: + ldr r1, _08023914 @ =gUnknown_2023DD0 + ldr r3, [r1] + movs r0, 0x80 + lsls r0, 5 + ands r0, r3 + ldr r2, _08023918 @ =gUnknown_2023D6B + mov r9, r2 + adds r5, r1, 0 + cmp r0, 0 + beq _0802388A + ldr r0, _0802391C @ =gUnknown_2023BC4 + ldrb r2, [r2] + strb r2, [r0] + ldr r1, _08023920 @ =gUnknown_2023D6C + ldrb r0, [r1] + mov r4, r9 + strb r0, [r4] + strb r2, [r1] + ldr r0, _08023924 @ =0xffffefff + ands r3, r0 + str r3, [r5] +_0802388A: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _080238A6 + ldr r0, _08023928 @ =gUnknown_2023D90 + mov r2, r9 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r0, _0802392C @ =gUnknown_2023D4C + ldrh r0, [r0] + strh r0, [r1] +_080238A6: + ldr r0, _08023930 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _08023934 @ =gUnknown_825E45C + mov r3, r9 + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r3, [r0] + ands r1, r3 + adds r6, r2, 0 + cmp r1, 0 + beq _080238C0 + b _08023A2C +_080238C0: + ldr r0, _08023938 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r1, 0x91 + ldrb r1, [r1] + ands r1, r3 + adds r7, r0, 0 + cmp r1, 0 + beq _080238D2 + b _08023A2C +_080238D2: + ldr r0, _0802393C @ =gUnknown_8250C04 + ldr r2, [sp, 0x18] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0x7F + bne _080238E8 + b _08023A2C +_080238E8: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0802394C + ldr r0, _08023940 @ =gUnknown_2023D98 + lsls r1, r4, 1 + adds r1, r0 + ldr r0, _0802392C @ =gUnknown_2023D4C + ldrh r0, [r0] + strh r0, [r1] + ldr r0, _08023944 @ =gUnknown_2023DB0 + mov r3, r9 + ldrb r1, [r3] + lsls r1, 1 + adds r1, r0 + ldr r0, _08023948 @ =gUnknown_2023D4A + ldrh r0, [r0] + strh r0, [r1] + b _08023966 + .align 2, 0 +_08023914: .4byte gUnknown_2023DD0 +_08023918: .4byte gUnknown_2023D6B +_0802391C: .4byte gUnknown_2023BC4 +_08023920: .4byte gUnknown_2023D6C +_08023924: .4byte 0xffffefff +_08023928: .4byte gUnknown_2023D90 +_0802392C: .4byte gUnknown_2023D4C +_08023930: .4byte gUnknown_2023D70 +_08023934: .4byte gUnknown_825E45C +_08023938: .4byte gUnknown_2023FE8 +_0802393C: .4byte gUnknown_8250C04 +_08023940: .4byte gUnknown_2023D98 +_08023944: .4byte gUnknown_2023DB0 +_08023948: .4byte gUnknown_2023D4A +_0802394C: + ldr r1, _080239B4 @ =gUnknown_2023D98 + lsls r0, r4, 1 + adds r0, r1 + ldr r1, _080239B8 @ =0x0000ffff + strh r1, [r0] + ldr r1, _080239BC @ =gUnknown_2023DB0 + mov r4, r9 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strh r1, [r0] +_08023966: + ldr r2, _080239C0 @ =gUnknown_2023D6C + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r6 + ldr r0, [r0] + lsls r0, 28 + ldr r1, [r5] + ands r1, r0 + cmp r1, 0 + bne _08023984 + ldr r0, _080239C4 @ =gUnknown_2023DC0 + adds r0, r3, r0 + mov r3, r9 + ldrb r1, [r3] + strb r1, [r0] +_08023984: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08023A20 + ldr r0, _080239C8 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08023A20 + ldr r0, _080239CC @ =gUnknown_2023D4C + ldrh r3, [r0] + ldr r0, _080239B8 @ =0x0000ffff + cmp r3, r0 + bne _080239D4 + ldr r1, _080239D0 @ =gUnknown_2023DA0 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r3, [r0] + b _08023A2C + .align 2, 0 +_080239B4: .4byte gUnknown_2023D98 +_080239B8: .4byte 0x0000ffff +_080239BC: .4byte gUnknown_2023DB0 +_080239C0: .4byte gUnknown_2023D6C +_080239C4: .4byte gUnknown_2023DC0 +_080239C8: .4byte gUnknown_2023DCC +_080239CC: .4byte gUnknown_2023D4C +_080239D0: .4byte gUnknown_2023DA0 +_080239D4: + ldr r0, _080239F8 @ =gUnknown_2023DA0 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r4, _080239FC @ =gUnknown_2023D4A + ldrh r0, [r4] + strh r0, [r1] + ldr r0, [r7] + ldrb r3, [r0, 0x13] + cmp r3, 0 + beq _08023A04 + ldr r0, _08023A00 @ =gUnknown_2023DA8 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + movs r0, 0x3F + ands r0, r3 + b _08023A2A + .align 2, 0 +_080239F8: .4byte gUnknown_2023DA0 +_080239FC: .4byte gUnknown_2023D4A +_08023A00: .4byte gUnknown_2023DA8 +_08023A04: + ldr r0, _08023A1C @ =gUnknown_2023DA8 + ldrb r2, [r2] + lsls r2, 1 + adds r2, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x2] + strh r0, [r2] + b _08023A2C + .align 2, 0 +_08023A1C: .4byte gUnknown_2023DA8 +_08023A20: + ldr r0, _08023A38 @ =gUnknown_2023DA0 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r0, _08023A3C @ =0x0000ffff +_08023A2A: + strh r0, [r1] +_08023A2C: + mov r4, r12 + ldrb r0, [r4, 0x14] + adds r0, 0x1 + strb r0, [r4, 0x14] + b _08023BB4 + .align 2, 0 +_08023A38: .4byte gUnknown_2023DA0 +_08023A3C: .4byte 0x0000ffff +_08023A40: + ldr r0, _08023B04 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r7, _08023B08 @ =gUnknown_825E45C + ldr r2, _08023B0C @ =gUnknown_2023D6B + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r7 + ldr r4, [r0] + ands r1, r4 + mov r9, r2 + cmp r1, 0 + bne _08023AFA + ldr r6, _08023B10 @ =gUnknown_2023FE8 + ldr r5, [r6] + adds r0, r5, 0 + adds r0, 0x91 + ldrb r0, [r0] + ands r0, r4 + cmp r0, 0 + bne _08023AFA + ldr r1, _08023B14 @ =gUnknown_8250C04 + ldr r2, [sp, 0x18] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08023AFA + ldr r0, _08023B18 @ =gUnknown_2023DD0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 18 + ands r0, r1 + cmp r0, 0 + beq _08023AFA + ldr r4, _08023B1C @ =gUnknown_2023D6C + ldrb r0, [r4] + cmp r3, r0 + beq _08023AFA + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + lsls r0, 28 + ands r1, r0 + cmp r1, 0 + bne _08023AFA + ldr r0, _08023B20 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08023AFA + lsls r1, r2, 1 + adds r1, r5 + adds r1, 0x98 + ldr r3, _08023B24 @ =gUnknown_2023D4C + ldrh r0, [r3] + strb r0, [r1] + ldrb r1, [r4] + ldr r0, [r6] + lsls r1, 1 + adds r1, r0 + adds r1, 0x99 + ldrh r0, [r3] + lsrs r0, 8 + strb r0, [r1] + ldrb r0, [r4] + mov r2, r9 + ldrb r1, [r2] + ldr r2, [r6] + lsls r0, 3 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + adds r0, 0xE0 + ldrh r1, [r3] + strb r1, [r0] + ldrb r1, [r4] + mov r4, r9 + ldrb r0, [r4] + ldr r2, [r6] + lsls r1, 3 + lsls r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0xE1 + ldrh r0, [r3] + lsrs r0, 8 + strb r0, [r1] +_08023AFA: + mov r5, r12 + ldrb r0, [r5, 0x14] + adds r0, 0x1 + strb r0, [r5, 0x14] + b _08023BB4 + .align 2, 0 +_08023B04: .4byte gUnknown_2023D70 +_08023B08: .4byte gUnknown_825E45C +_08023B0C: .4byte gUnknown_2023D6B +_08023B10: .4byte gUnknown_2023FE8 +_08023B14: .4byte gUnknown_8250C04 +_08023B18: .4byte gUnknown_2023DD0 +_08023B1C: .4byte gUnknown_2023D6C +_08023B20: .4byte gUnknown_2023DCC +_08023B24: .4byte gUnknown_2023D4C +_08023B28: + ldr r5, _08023C10 @ =gUnknown_2023DD0 + ldr r2, [r5] + movs r0, 0x80 + lsls r0, 12 + ands r0, r2 + cmp r0, 0 + bne _08023BAC + ldr r0, _08023C14 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023BAC + ldr r1, _08023C18 @ =gUnknown_2023E8C + ldr r0, _08023C1C @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r0, 0 + blt _08023BAC + ldr r0, _08023C20 @ =gUnknown_8250C04 + mov r9, r0 + ldr r1, _08023C24 @ =gUnknown_2023D4A + mov r8, r1 + ldrh r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r0, [r1, 0x6] + cmp r0, 0x8 + bne _08023BAC + movs r6, 0x80 + lsls r6, 2 + adds r4, r6, 0 + ands r4, r2 + cmp r4, 0 + bne _08023BAC + ldr r7, _08023C28 @ =gUnknown_2023D6C + ldrb r0, [r7] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08023C2C @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08023BA2 + bl _080232F0 +_08023BA2: + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r2, _08023C30 @ =gUnknown_2023FC4 + mov r12, r2 +_08023BAC: + mov r3, r12 + ldrb r0, [r3, 0x14] + adds r0, 0x1 + strb r0, [r3, 0x14] +_08023BB4: + ldr r4, [sp, 0x10] + cmp r4, 0x1 + bne _08023BC6 + mov r5, r10 + cmp r5, 0 + bne _08023BC6 + movs r0, 0x11 + mov r1, r12 + strb r0, [r1, 0x14] +_08023BC6: + ldr r2, [sp, 0x10] + cmp r2, 0x2 + bne _08023BDC + ldr r4, [sp, 0x14] + mov r3, r12 + ldrb r3, [r3, 0x14] + cmp r4, r3 + bne _08023BDC + movs r0, 0x11 + mov r4, r12 + strb r0, [r4, 0x14] +_08023BDC: + mov r5, r12 + ldrb r0, [r5, 0x14] + cmp r0, 0x11 + beq _08023BE8 + bl _08023358 +_08023BE8: + mov r1, r12 + ldrb r0, [r1, 0x14] + cmp r0, 0x11 + bne _08023BFE + mov r2, r10 + cmp r2, 0 + bne _08023BFE + ldr r1, _08023C34 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x3 +_08023BFC: + str r0, [r1] +_08023BFE: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023C10: .4byte gUnknown_2023DD0 +_08023C14: .4byte gUnknown_2022B4C +_08023C18: .4byte gUnknown_2023E8C +_08023C1C: .4byte gUnknown_2023D6B +_08023C20: .4byte gUnknown_8250C04 +_08023C24: .4byte gUnknown_2023D4A +_08023C28: .4byte gUnknown_2023D6C +_08023C2C: .4byte gUnknown_2023BE4 +_08023C30: .4byte gUnknown_2023FC4 +_08023C34: .4byte gUnknown_2023D74 + thumb_func_end sub_8023210 + + thumb_func_start sub_8023C38 +sub_8023C38: @ 8023C38 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + movs r5, 0 + ldr r2, _08023C9C @ =gUnknown_8250C04 + ldr r0, _08023CA0 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 + ldr r2, _08023CA4 @ =gUnknown_2023BE4 + ldr r3, _08023CA8 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r12, r2 + adds r7, r3, 0 + cmp r0, 0x1A + bne _08023CCC + mov r1, r8 + cmp r1, 0x4 + bne _08023CCC + ldr r3, _08023CAC @ =gUnknown_2023D6A + strb r0, [r3] + ldr r2, _08023CB0 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08023CB4 @ =gUnknown_2023DA0 + ldrb r0, [r7] + lsls r0, 1 + adds r0, r1 + strh r4, [r0] + ldr r0, _08023CB8 @ =gUnknown_2023E82 + mov r2, r8 + strb r2, [r0, 0x6] + ldrb r0, [r7] + ldrb r1, [r3] + bl sub_80C71D0 + b _08023DAE + .align 2, 0 +_08023C9C: .4byte gUnknown_8250C04 +_08023CA0: .4byte gUnknown_2023D4A +_08023CA4: .4byte gUnknown_2023BE4 +_08023CA8: .4byte gUnknown_2023D6C +_08023CAC: .4byte gUnknown_2023D6A +_08023CB0: .4byte gUnknown_2023DCC +_08023CB4: .4byte gUnknown_2023DA0 +_08023CB8: .4byte gUnknown_2023E82 +_08023CBC: + ldr r0, _08023CC8 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] + b _08023DAE + .align 2, 0 +_08023CC8: .4byte gUnknown_2023DCC +_08023CCC: + ldr r1, _08023CD8 @ =gUnknown_824F050 + adds r0, r5, r1 + ldrb r0, [r0] + adds r6, r1, 0 + b _08023D8E + .align 2, 0 +_08023CD8: .4byte gUnknown_824F050 +_08023CDC: + adds r0, r5, r6 + ldrb r0, [r0] + cmp r0, r8 + bne _08023D88 + adds r2, r5, 0x1 + adds r3, r2, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _08023D1A + adds r0, r5, 0x2 + adds r0, r6 + ldrb r1, [r0] + cmp r1, 0 + beq _08023CBC + cmp r1, 0x5 + bne _08023D0E + movs r0, 0x4 + orrs r4, r0 +_08023D0E: + cmp r1, 0x14 + bne _08023D1A + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08023D1A: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _08023D88 + adds r0, 0x21 + ldrb r1, [r0] + cmp r1, r2 + beq _08023D42 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _08023CBC +_08023D42: + cmp r1, r2 + beq _08023D58 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bne _08023D58 + movs r0, 0x4 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08023D58: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _08023D88 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _08023D88 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x14 + bne _08023D88 + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08023D88: + adds r5, 0x3 + adds r0, r5, r6 + ldrb r0, [r0] +_08023D8E: + cmp r0, 0xFF + beq _08023DAE + cmp r0, 0xFE + bne _08023CDC + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _08023D88 +_08023DAE: + ldr r2, _08023E5C @ =gUnknown_2023BE4 + ldr r0, _08023E60 @ =gUnknown_2023D6C + mov r8, r0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _08023E2A + movs r5, 0x29 + ands r5, r4 + cmp r5, 0 + bne _08023E2A + ldr r0, _08023E64 @ =gUnknown_2023D6B + ldrb r0, [r0] + ldr r7, _08023E68 @ =gUnknown_2023D4A + ldrh r1, [r7] + bl sub_802A224 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _08023E2A + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08023DF0 + movs r0, 0x6 + ands r4, r0 + cmp r4, 0x6 + bne _08023E2A +_08023DF0: + ldr r2, _08023E6C @ =gUnknown_8250C04 + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08023E2A + ldr r3, _08023E70 @ =gUnknown_2023D6A + strb r6, [r3] + ldr r2, _08023E74 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08023E78 @ =gUnknown_2023DA0 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r5, [r0] + ldr r1, _08023E7C @ =gUnknown_2023E82 + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r2] + ldrb r1, [r3] + bl sub_80C71D0 +_08023E2A: + ldr r0, _08023E74 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08023E48 + ldr r2, _08023E80 @ =gUnknown_2023E8C + ldr r0, _08023E64 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_08023E48: + ldr r1, _08023E84 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023E5C: .4byte gUnknown_2023BE4 +_08023E60: .4byte gUnknown_2023D6C +_08023E64: .4byte gUnknown_2023D6B +_08023E68: .4byte gUnknown_2023D4A +_08023E6C: .4byte gUnknown_8250C04 +_08023E70: .4byte gUnknown_2023D6A +_08023E74: .4byte gUnknown_2023DCC +_08023E78: .4byte gUnknown_2023DA0 +_08023E7C: .4byte gUnknown_2023E82 +_08023E80: .4byte gUnknown_2023E8C +_08023E84: .4byte gUnknown_2023D74 + thumb_func_end sub_8023C38 + + thumb_func_start sub_8023E88 +sub_8023E88: @ 8023E88 + push {r4,lr} + ldr r4, _08023EC4 @ =gUnknown_2023BC4 + ldr r0, _08023EC8 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _08023ECC @ =gUnknown_2023DD0 + ldr r1, _08023ED0 @ =gUnknown_825E45C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _08023EB6 + movs r0, 0 + movs r1, 0 + bl sub_800E0B4 + ldrb r0, [r4] + bl sub_8017248 +_08023EB6: + ldr r1, _08023ED4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08023EC4: .4byte gUnknown_2023BC4 +_08023EC8: .4byte gUnknown_2023D6B +_08023ECC: .4byte gUnknown_2023DD0 +_08023ED0: .4byte gUnknown_825E45C +_08023ED4: .4byte gUnknown_2023D74 + thumb_func_end sub_8023E88 + + thumb_func_start sub_8023ED8 +sub_8023ED8: @ 8023ED8 + push {r4,r5,lr} + ldr r0, _08023F30 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08023F28 + ldr r5, _08023F34 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08023F38 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r3, _08023F3C @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r3 + ldr r1, _08023F40 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + ldrb r0, [r0] + strh r0, [r2] + ldr r1, _08023F44 @ =gUnknown_825E45C + ldrb r0, [r4] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl sub_800DFA4 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_08023F28: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023F30: .4byte gUnknown_2023BC8 +_08023F34: .4byte gUnknown_2023D74 +_08023F38: .4byte gUnknown_2023BC4 +_08023F3C: .4byte gUnknown_2023BCE +_08023F40: .4byte gUnknown_2023FE8 +_08023F44: .4byte gUnknown_825E45C + thumb_func_end sub_8023ED8 + + thumb_func_start sub_8023F48 +sub_8023F48: @ 8023F48 + push {r4-r7,lr} + sub sp, 0x58 + ldr r0, _080240A0 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _08023F56 + b _08024098 +_08023F56: + ldr r0, _080240A4 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _080240A8 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r6, _080240AC @ =gUnknown_2023BE4 + ldrb r0, [r4] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + mov r0, sp + movs r2, 0x58 + bl memcpy + ldrb r0, [r4] + muls r0, r5 + adds r3, r0, r6 + movs r2, 0 + ldr r5, _080240B0 @ =gUnknown_20233C4 + adds r7, r4, 0 +_08023F84: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x57 + bls _08023F84 + ldr r4, _080240AC @ =gUnknown_2023BE4 + ldrb r0, [r7] + movs r6, 0x58 + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r3, _080240B4 @ =gUnknown_8254784 + ldrh r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x6] + adds r2, 0x21 + strb r0, [r2] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x7] + adds r1, 0x22 + strb r0, [r1] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldrh r0, [r1] + ldrb r1, [r1, 0x17] + lsrs r1, 7 + bl sub_8040D38 + ldrb r1, [r7] + muls r1, r6 + adds r1, r4 + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r7] + bl sub_80751C4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080240B8 @ =gUnknown_2023F20 + adds r0, 0x29 + adds r0, r2, r0 + ldrb r1, [r0] + ldr r3, _080240BC @ =gUnknown_825E45C + ldr r2, _080240C0 @ =gUnknown_2023BCE + ldrb r5, [r7] + lsls r0, r5, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + mov r12, r4 + cmp r1, 0 + beq _08024022 + adds r0, r5, 0 + muls r0, r6 + add r0, r12 + movs r1, 0 + strh r1, [r0, 0x2E] +_08024022: + ldr r2, _080240C4 @ =gUnknown_8250C04 + ldr r0, _080240C8 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x7F + bne _08024068 + movs r2, 0 + adds r4, r7, 0 + movs r6, 0x58 + mov r5, r12 + adds r5, 0x18 + add r3, sp, 0x18 +_08024042: + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2, r1 + adds r1, r5 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _08024042 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r1, [sp, 0x50] + str r1, [r0] +_08024068: + bl sub_8012760 + ldr r0, _080240CC @ =gUnknown_2023FC4 + ldr r3, _080240A8 @ =gUnknown_2023BC4 + ldrb r2, [r3] + strb r2, [r0, 0x17] + ldr r1, _080240D0 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + ldr r2, _080240C0 @ =gUnknown_2023BCE + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _080240A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08024098: + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080240A0: .4byte gUnknown_2023BC8 +_080240A4: .4byte gUnknown_2023D74 +_080240A8: .4byte gUnknown_2023BC4 +_080240AC: .4byte gUnknown_2023BE4 +_080240B0: .4byte gUnknown_20233C4 +_080240B4: .4byte gUnknown_8254784 +_080240B8: .4byte gUnknown_2023F20 +_080240BC: .4byte gUnknown_825E45C +_080240C0: .4byte gUnknown_2023BCE +_080240C4: .4byte gUnknown_8250C04 +_080240C8: .4byte gUnknown_2023D4A +_080240CC: .4byte gUnknown_2023FC4 +_080240D0: .4byte gUnknown_2022AB8 + thumb_func_end sub_8023F48 + + thumb_func_start sub_80240D4 +sub_80240D4: @ 80240D4 + push {r4-r6,lr} + ldr r0, _08024168 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08024160 + ldr r0, _0802416C @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r6, _08024170 @ =gUnknown_2023BC4 + strb r0, [r6] + ldrb r0, [r6] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802412A + ldr r0, _08024174 @ =gUnknown_2022B4C + ldr r0, [r0] + ldr r1, _08024178 @ =0x0001aa02 + ands r0, r1 + cmp r0, 0 + bne _0802412A + ldr r4, _0802417C @ =gUnknown_2023BE4 + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r0, r4 + ldrh r0, [r0] + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r6] + muls r1, r5 + adds r4, 0x48 + adds r1, r4 + ldr r2, [r1] + movs r1, 0x2 + bl sub_8044898 +_0802412A: + ldr r2, _08024180 @ =gUnknown_2023D70 + ldr r1, _08024184 @ =gUnknown_825E45C + ldr r5, _08024170 @ =gUnknown_2023BC4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, _08024188 @ =gUnknown_2023BCE + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrb r1, [r0] + ldr r4, _0802416C @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r2, [r0, 0x2] + movs r0, 0 + bl sub_800E090 + ldrb r0, [r5] + bl sub_8017248 + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] +_08024160: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08024168: .4byte gUnknown_2023BC8 +_0802416C: .4byte gUnknown_2023D74 +_08024170: .4byte gUnknown_2023BC4 +_08024174: .4byte gUnknown_2022B4C +_08024178: .4byte 0x0001aa02 +_0802417C: .4byte gUnknown_2023BE4 +_08024180: .4byte gUnknown_2023D70 +_08024184: .4byte gUnknown_825E45C +_08024188: .4byte gUnknown_2023BCE + thumb_func_end sub_80240D4 + + thumb_func_start sub_802418C +sub_802418C: @ 802418C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _080241F0 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + movs r0, 0x7F + ands r0, r1 + bl sub_8016E24 + ldr r3, _080241F4 @ =gUnknown_2023BC4 + strb r0, [r3] + ldr r2, [r4] + ldrb r1, [r2, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08024204 + ldr r1, _080241F8 @ =gUnknown_2023BE4 + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080241FC @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + bne _080241D8 + ldr r1, _08024200 @ =gUnknown_2023DFC + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _08024204 +_080241D8: + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08024388 + .align 2, 0 +_080241F0: .4byte gUnknown_2023D74 +_080241F4: .4byte gUnknown_2023BC4 +_080241F8: .4byte gUnknown_2023BE4 +_080241FC: .4byte 0x0400e000 +_08024200: .4byte gUnknown_2023DFC +_08024204: + ldr r5, _08024290 @ =gUnknown_2022B4C + ldr r0, [r5] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080242A4 + ldr r4, _08024294 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08024298 @ =gUnknown_2024284 + mov r8, r1 + cmp r0, 0x1 + bne _08024228 + ldr r0, _0802429C @ =gUnknown_202402C + mov r8, r0 +_08024228: + movs r5, 0 + ldrb r0, [r4] + bl sub_8043658 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043620 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _08024242 + movs r5, 0x3 +_08024242: + adds r6, r5, 0x3 + cmp r5, r6 + bge _0802428A + ldr r7, _080242A0 @ =gUnknown_2023BCE +_0802424A: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08024284 + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _08024284 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08024284 + ldr r0, _08024294 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r5 + bne _0802428A +_08024284: + adds r5, 0x1 + cmp r5, r6 + blt _0802424A +_0802428A: + cmp r5, r6 + beq _08024358 + b _08024380 + .align 2, 0 +_08024290: .4byte gUnknown_2022B4C +_08024294: .4byte gUnknown_2023BC4 +_08024298: .4byte gUnknown_2024284 +_0802429C: .4byte gUnknown_202402C +_080242A0: .4byte gUnknown_2023BCE +_080242A4: + ldr r0, _080242D4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _080242E4 + movs r0, 0x1 + bl sub_80751E8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + beq _080242D8 + movs r0, 0x3 + bl sub_80751E8 + lsls r0, 24 + lsrs r6, r0, 24 + b _080242DA + .align 2, 0 +_080242D4: .4byte gUnknown_2023BC4 +_080242D8: + adds r6, r7, 0 +_080242DA: + ldr r0, _080242E0 @ =gUnknown_202402C + mov r8, r0 + b _0802430A + .align 2, 0 +_080242E0: .4byte gUnknown_202402C +_080242E4: + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r5] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08024304 + movs r0, 0x2 + bl sub_80751E8 + lsls r0, 24 + lsrs r6, r0, 24 + b _08024306 +_08024304: + adds r6, r7, 0 +_08024306: + ldr r1, _08024374 @ =gUnknown_2024284 + mov r8, r1 +_0802430A: + movs r5, 0 +_0802430C: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _0802434E + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _0802434E + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _0802434E + ldr r1, _08024378 @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _0802434E + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + bne _08024354 +_0802434E: + adds r5, 0x1 + cmp r5, 0x5 + ble _0802430C +_08024354: + cmp r5, 0x6 + bne _08024380 +_08024358: + ldr r3, _0802437C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08024388 + .align 2, 0 +_08024374: .4byte gUnknown_2024284 +_08024378: .4byte gUnknown_2023BCE +_0802437C: .4byte gUnknown_2023D74 +_08024380: + ldr r1, _08024394 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_08024388: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024394: .4byte gUnknown_2023D74 + thumb_func_end sub_802418C + + thumb_func_start sub_8024398 +sub_8024398: @ 8024398 + push {r4,r5,lr} + sub sp, 0x4 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r4, _080243E0 @ =gUnknown_2023BC4 + ldrb r0, [r4] + ldr r5, _080243E4 @ =gUnknown_2023FE8 + ldr r1, [r5] + adds r1, r0, r1 + adds r1, 0x58 + ldr r3, _080243E8 @ =gUnknown_2023BCE + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0x60 + ldr r0, [r5] + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x1 + movs r3, 0 + bl sub_800E590 + ldrb r0, [r4] + bl sub_8017248 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080243E0: .4byte gUnknown_2023BC4 +_080243E4: .4byte gUnknown_2023FE8 +_080243E8: .4byte gUnknown_2023BCE + thumb_func_end sub_8024398 + + thumb_func_start sub_80243EC +sub_80243EC: @ 80243EC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r6, _08024498 @ =gUnknown_2023D74 + ldr r2, [r6] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + mov r8, r1 + ldrb r1, [r2, 0x1] + adds r0, r1, 0 + mov r12, r6 + cmp r0, 0x5 + beq _08024422 + b _080248B8 +_08024422: + ldr r0, _0802449C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x41 + ands r1, r0 + cmp r1, 0x1 + beq _08024510 + ldr r1, _080244A0 @ =gUnknown_2023BC4 + strb r7, [r1] + ldr r0, _080244A4 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r7, r0 + bcc _0802443C + b _080248A6 +_0802443C: + ldr r7, _080244A8 @ =gUnknown_2023DD0 + ldr r6, _080244AC @ =gUnknown_825E45C + adds r4, r1, 0 + ldr r2, _080244B0 @ =gUnknown_2023D70 + mov r8, r2 +_08024446: + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + ands r0, r1 + cmp r0, 0 + beq _080244E8 + adds r0, r2, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _080244B4 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 + b _080244F6 + .align 2, 0 +_08024498: .4byte gUnknown_2023D74 +_0802449C: .4byte gUnknown_2022B4C +_080244A0: .4byte gUnknown_2023BC4 +_080244A4: .4byte gUnknown_2023BCC +_080244A8: .4byte gUnknown_2023DD0 +_080244AC: .4byte gUnknown_825E45C +_080244B0: .4byte gUnknown_2023D70 +_080244B4: + ldr r5, _080244E4 @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _080244F6 + movs r0, 0x6 + bl sub_8024398 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _080244F6 + .align 2, 0 +_080244E4: .4byte gUnknown_2023ECC +_080244E8: + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 +_080244F6: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _0802450C @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08024446 + b _080248A6 + .align 2, 0 +_0802450C: .4byte gUnknown_2023BCC +_08024510: + ands r0, r1 + cmp r0, 0 + bne _08024518 + b _080248A6 +_08024518: + ldr r0, _08024570 @ =gUnknown_2023DD0 + mov r8, r0 + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r6, _08024574 @ =gUnknown_825E45C + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + beq _080245CE + ldr r4, _08024578 @ =gUnknown_2023BC4 + strb r7, [r4] + movs r0, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _08024580 + ldr r2, _0802457C @ =gUnknown_2023D70 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r4] + bl sub_8017248 + b _080245CE + .align 2, 0 +_08024570: .4byte gUnknown_2023DD0 +_08024574: .4byte gUnknown_825E45C +_08024578: .4byte gUnknown_2023BC4 +_0802457C: .4byte gUnknown_2023D70 +_08024580: + ldr r6, _080245B4 @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _080245BC + ldr r0, _080245B8 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5E + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _080245CE + .align 2, 0 +_080245B4: .4byte gUnknown_2023ECC +_080245B8: .4byte gUnknown_2023FE8 +_080245BC: + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 + movs r0, 0x1 + mov r9, r0 +_080245CE: + ldr r6, _08024628 @ =gUnknown_825E45C + ldr r0, [r6, 0x8] + ands r0, r5 + cmp r0, 0 + beq _0802468C + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + bne _0802468C + ldr r4, _0802462C @ =gUnknown_2023BC4 + movs r0, 0x2 + strb r0, [r4] + movs r0, 0x2 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _08024638 + ldr r2, _08024630 @ =gUnknown_2023D70 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _08024634 @ =gUnknown_2023DD0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r4] + bl sub_8017248 + b _0802468C + .align 2, 0 +_08024628: .4byte gUnknown_825E45C +_0802462C: .4byte gUnknown_2023BC4 +_08024630: .4byte gUnknown_2023D70 +_08024634: .4byte gUnknown_2023DD0 +_08024638: + ldr r6, _0802466C @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08024674 + ldr r0, _08024670 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5C + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0802468C + .align 2, 0 +_0802466C: .4byte gUnknown_2023ECC +_08024670: .4byte gUnknown_2023FE8 +_08024674: + movs r0, 0x1 + mov r1, r9 + ands r0, r1 + cmp r0, 0 + bne _0802468C + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 +_0802468C: + ldr r6, _080246DC @ =gUnknown_825E45C + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + beq _0802473E + ldr r4, _080246E0 @ =gUnknown_2023BC4 + movs r0, 0x1 + strb r0, [r4] + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _080246EC + ldr r2, _080246E4 @ =gUnknown_2023D70 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _080246E8 @ =gUnknown_2023DD0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r4] + bl sub_8017248 + b _0802473E + .align 2, 0 +_080246DC: .4byte gUnknown_825E45C +_080246E0: .4byte gUnknown_2023BC4 +_080246E4: .4byte gUnknown_2023D70 +_080246E8: .4byte gUnknown_2023DD0 +_080246EC: + ldr r6, _08024720 @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08024728 + ldr r0, _08024724 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5F + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0802473E + .align 2, 0 +_08024720: .4byte gUnknown_2023ECC +_08024724: .4byte gUnknown_2023FE8 +_08024728: + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 + movs r0, 0x2 + mov r2, r9 + orrs r2, r0 + mov r9, r2 +_0802473E: + ldr r6, _08024798 @ =gUnknown_825E45C + ldr r0, [r6, 0xC] + ands r0, r5 + cmp r0, 0 + beq _080247FC + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + bne _080247FC + ldr r4, _0802479C @ =gUnknown_2023BC4 + movs r0, 0x3 + strb r0, [r4] + movs r0, 0x3 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _080247A8 + ldr r2, _080247A0 @ =gUnknown_2023D70 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _080247A4 @ =gUnknown_2023DD0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r4] + bl sub_8017248 + b _080247FC + .align 2, 0 +_08024798: .4byte gUnknown_825E45C +_0802479C: .4byte gUnknown_2023BC4 +_080247A0: .4byte gUnknown_2023D70 +_080247A4: .4byte gUnknown_2023DD0 +_080247A8: + ldr r6, _080247DC @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _080247E4 + ldr r0, _080247E0 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5D + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _080247FC + .align 2, 0 +_080247DC: .4byte gUnknown_2023ECC +_080247E0: .4byte gUnknown_2023FE8 +_080247E4: + movs r0, 0x2 + mov r1, r9 + ands r1, r0 + cmp r1, 0 + bne _080247FC + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 +_080247FC: + ldr r1, _0802482C @ =gUnknown_2023ECC + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08024850 + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _08024850 + cmp r5, 0 + beq _08024850 + ldr r0, _08024830 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r0, _08024834 @ =gUnknown_825E45C + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802483C + ldr r1, _08024838 @ =gUnknown_2023BC4 + movs r0, 0x2 + strb r0, [r1] + b _08024840 + .align 2, 0 +_0802482C: .4byte gUnknown_2023ECC +_08024830: .4byte gUnknown_2023D70 +_08024834: .4byte gUnknown_825E45C +_08024838: .4byte gUnknown_2023BC4 +_0802483C: + ldr r0, _08024880 @ =gUnknown_2023BC4 + strb r1, [r0] +_08024840: + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldr r0, _08024880 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 +_08024850: + ldr r1, _08024884 @ =gUnknown_2023ECC + ldrb r0, [r1, 0x14] + lsls r0, 25 + cmp r0, 0 + blt _080248A6 + adds r0, r1, 0 + adds r0, 0x3C + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _080248A6 + cmp r5, 0 + beq _080248A6 + ldr r0, _08024888 @ =gUnknown_2023D70 + ldrb r0, [r0] + ldr r1, _0802488C @ =gUnknown_825E45C + ldr r1, [r1, 0x4] + ands r0, r1 + cmp r0, 0 + beq _08024890 + ldr r1, _08024880 @ =gUnknown_2023BC4 + movs r0, 0x3 + b _08024894 + .align 2, 0 +_08024880: .4byte gUnknown_2023BC4 +_08024884: .4byte gUnknown_2023ECC +_08024888: .4byte gUnknown_2023D70 +_0802488C: .4byte gUnknown_825E45C +_08024890: + ldr r1, _080248B0 @ =gUnknown_2023BC4 + movs r0, 0x1 +_08024894: + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldr r0, _080248B0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 +_080248A6: + ldr r1, _080248B4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + b _08024C2E + .align 2, 0 +_080248B0: .4byte gUnknown_2023BC4 +_080248B4: .4byte gUnknown_2023D74 +_080248B8: + cmp r0, 0x6 + beq _080248BE + b _08024AAC +_080248BE: + ldr r0, _08024934 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080248CC + b _08024A48 +_080248CC: + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080248D6 + b _08024A48 +_080248D6: + ldr r7, _08024938 @ =gUnknown_2023DD0 + ldr r0, [r7] + lsrs r5, r0, 28 + ldr r4, _0802493C @ =gUnknown_825E45C + ldr r0, [r4, 0x8] + ands r0, r5 + cmp r0, 0 + beq _0802497E + ldr r0, [r4] + ands r0, r5 + cmp r0, 0 + beq _0802497E + ldr r6, _08024940 @ =gUnknown_2023BC4 + movs r0, 0x2 + strb r0, [r6] + ldr r0, _08024944 @ =gUnknown_20233C4 + ldrb r1, [r0, 0x1] + movs r0, 0x2 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _0802494C + ldr r2, _08024948 @ =gUnknown_2023D70 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r6] + bl sub_8017248 + b _0802497E + .align 2, 0 +_08024934: .4byte gUnknown_2022B4C +_08024938: .4byte gUnknown_2023DD0 +_0802493C: .4byte gUnknown_825E45C +_08024940: .4byte gUnknown_2023BC4 +_08024944: .4byte gUnknown_20233C4 +_08024948: .4byte gUnknown_2023D70 +_0802494C: + ldr r4, _080249DC @ =gUnknown_2023ECC + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0802497E + ldr r0, _080249E0 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5C + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_0802497E: + ldr r4, _080249E4 @ =gUnknown_825E45C + ldr r0, [r4, 0xC] + ands r0, r5 + cmp r0, 0 + beq _08024A2E + ldr r0, [r4, 0x4] + ands r5, r0 + cmp r5, 0 + beq _08024A2E + ldr r5, _080249E8 @ =gUnknown_2023BC4 + movs r0, 0x3 + strb r0, [r5] + ldr r0, _080249EC @ =gUnknown_20233C4 + ldr r2, _080249F0 @ =0x00000201 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x3 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _080249FC + ldr r2, _080249F4 @ =gUnknown_2023D70 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _080249F8 @ =gUnknown_2023DD0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl sub_800E9A4 + ldrb r0, [r5] + bl sub_8017248 + b _08024A2E + .align 2, 0 +_080249DC: .4byte gUnknown_2023ECC +_080249E0: .4byte gUnknown_2023FE8 +_080249E4: .4byte gUnknown_825E45C +_080249E8: .4byte gUnknown_2023BC4 +_080249EC: .4byte gUnknown_20233C4 +_080249F0: .4byte 0x00000201 +_080249F4: .4byte gUnknown_2023D70 +_080249F8: .4byte gUnknown_2023DD0 +_080249FC: + ldr r4, _08024A3C @ =gUnknown_2023ECC + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08024A2E + ldr r0, _08024A40 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x5D + ldrb r0, [r0] + bl sub_8024398 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_08024A2E: + ldr r1, _08024A44 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + mov r12, r1 + b _08024A4C + .align 2, 0 +_08024A3C: .4byte gUnknown_2023ECC +_08024A40: .4byte gUnknown_2023FE8 +_08024A44: .4byte gUnknown_2023D74 +_08024A48: + adds r0, r2, 0x6 + str r0, [r6] +_08024A4C: + ldr r0, _08024A9C @ =gUnknown_2023DD0 + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r1, _08024AA0 @ =gUnknown_2023D6D + movs r0, 0 + strb r0, [r1] + ldr r4, _08024AA4 @ =gUnknown_825E45C + ldr r2, [r4] + ands r2, r5 + ldr r6, _08024AA8 @ =gUnknown_2023BCC + cmp r2, 0 + bne _08024A88 + adds r7, r6, 0 + ldrb r0, [r6] + cmp r2, r0 + bcs _08024A88 + adds r3, r1, 0 +_08024A6E: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _08024A88 + ldrb r0, [r7] + cmp r2, r0 + bcc _08024A6E +_08024A88: + ldrb r0, [r1] + ldrb r6, [r6] + cmp r0, r6 + beq _08024A92 + b _08024C2E +_08024A92: + mov r1, r8 + mov r2, r12 + str r1, [r2] + b _08024C2E + .align 2, 0 +_08024A9C: .4byte gUnknown_2023DD0 +_08024AA0: .4byte gUnknown_2023D6D +_08024AA4: .4byte gUnknown_825E45C +_08024AA8: .4byte gUnknown_2023BCC +_08024AAC: + movs r0, 0x80 + ands r0, r1 + movs r5, 0x1 + cmp r0, 0 + beq _08024AB8 + movs r5, 0 +_08024AB8: + movs r0, 0x7F + ands r0, r1 + bl sub_8016E24 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08024AE0 @ =gUnknown_2023ECC + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _08024AE4 + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + b _08024C2E + .align 2, 0 +_08024AE0: .4byte gUnknown_2023ECC +_08024AE4: + adds r0, r7, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8019C10 + lsls r0, 24 + cmp r0, 0 + beq _08024B34 + ldr r2, _08024B24 @ =gUnknown_2023BC4 + strb r7, [r2] + ldr r3, _08024B28 @ =gUnknown_2023D70 + ldr r4, _08024B2C @ =gUnknown_825E45C + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + ldr r3, _08024B30 @ =gUnknown_2023DD0 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + mov r0, r8 + str r0, [r6] + b _08024C2E + .align 2, 0 +_08024B24: .4byte gUnknown_2023BC4 +_08024B28: .4byte gUnknown_2023D70 +_08024B2C: .4byte gUnknown_825E45C +_08024B30: .4byte gUnknown_2023DD0 +_08024B34: + ldr r4, _08024BD8 @ =gUnknown_2023BC4 + strb r7, [r4] + ldrb r0, [r4] + ldr r3, _08024BDC @ =gUnknown_2023FE8 + ldr r1, [r3] + adds r1, r0, r1 + adds r1, 0x58 + ldr r2, _08024BE0 @ =gUnknown_2023BCE + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + ldr r3, [r3] + adds r0, r3 + adds r0, 0x5C + ldrb r2, [r0] + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + adds r0, 0x60 + adds r3, r0 + str r3, [sp] + movs r0, 0 + adds r1, r5, 0 + movs r3, 0 + bl sub_800E590 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + ldrb r0, [r4] + bl sub_80751D8 + lsls r0, 24 + cmp r0, 0 + bne _08024B94 + ldr r1, _08024BE4 @ =gUnknown_3004F90 + ldrb r0, [r1, 0x2] + cmp r0, 0xFE + bhi _08024B94 + adds r0, 0x1 + strb r0, [r1, 0x2] +_08024B94: + ldr r0, _08024BE8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08024BF0 + ldr r1, _08024BD8 @ =gUnknown_2023BC4 + movs r0, 0 + strb r0, [r1] + ldr r0, _08024BEC @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r0, 0 + beq _08024C2E + adds r4, r1, 0 +_08024BB0: + ldrb r0, [r4] + cmp r0, r7 + beq _08024BC4 + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 +_08024BC4: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08024BEC @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08024BB0 + b _08024C2E + .align 2, 0 +_08024BD8: .4byte gUnknown_2023BC4 +_08024BDC: .4byte gUnknown_2023FE8 +_08024BE0: .4byte gUnknown_2023BCE +_08024BE4: .4byte gUnknown_3004F90 +_08024BE8: .4byte gUnknown_2022B4C +_08024BEC: .4byte gUnknown_2023BCC +_08024BF0: + adds r0, r7, 0 + bl sub_80751D8 + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r4, _08024C3C @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r0, _08024C40 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _08024C44 @ =gUnknown_825E45C + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08024C20 + movs r0, 0x2 + eors r3, r0 + strb r3, [r4] +_08024C20: + movs r0, 0 + movs r1, 0x2 + bl sub_800EB54 + ldrb r0, [r4] + bl sub_8017248 +_08024C2E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024C3C: .4byte gUnknown_2023BC4 +_08024C40: .4byte gUnknown_2023D70 +_08024C44: .4byte gUnknown_825E45C + thumb_func_end sub_80243EC + + thumb_func_start sub_8024C48 +sub_8024C48: @ 8024C48 + push {r4-r7,lr} + ldr r0, _08024C74 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _08024C54 + b _08024E16 +_08024C54: + ldr r4, _08024C78 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r7, _08024C7C @ =gUnknown_2023BC4 + strb r0, [r7] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0x1 + beq _08024CC4 + cmp r0, 0x1 + bgt _08024C80 + cmp r0, 0 + beq _08024C86 + b _08024E0E + .align 2, 0 +_08024C74: .4byte gUnknown_2023BC8 +_08024C78: .4byte gUnknown_2023D74 +_08024C7C: .4byte gUnknown_2023BC4 +_08024C80: + cmp r0, 0x2 + beq _08024CE0 + b _08024E0E +_08024C86: + movs r3, 0 + ldr r0, _08024CB8 @ =gUnknown_2023BCC + ldrb r1, [r0] + cmp r3, r1 + blt _08024C92 + b _08024E0E +_08024C92: + ldr r6, _08024CBC @ =gUnknown_2023FE8 + ldr r2, _08024CC0 @ =gUnknown_20233C4 + movs r5, 0x80 + lsls r5, 2 + adds r4, r0, 0 +_08024C9C: + ldrb r0, [r2] + cmp r0, 0x22 + bne _08024CAC + ldr r0, [r6] + adds r0, r3, r0 + adds r0, 0x5C + ldrb r1, [r2, 0x1] + strb r1, [r0] +_08024CAC: + adds r2, r5 + adds r3, 0x1 + ldrb r0, [r4] + cmp r3, r0 + blt _08024C9C + b _08024E0E + .align 2, 0 +_08024CB8: .4byte gUnknown_2023BCC +_08024CBC: .4byte gUnknown_2023FE8 +_08024CC0: .4byte gUnknown_20233C4 +_08024CC4: + ldr r0, _08024CDC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08024CD2 + b _08024E0E +_08024CD2: + ldrb r0, [r7] + bl sub_8013F6C + b _08024E0E + .align 2, 0 +_08024CDC: .4byte gUnknown_2022B4C +_08024CE0: + ldr r1, _08024DAC @ =gUnknown_2023E82 + ldr r4, _08024DB0 @ =gUnknown_20233C4 + ldrb r0, [r7] + lsls r0, 9 + adds r2, r4, 0x1 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldr r6, _08024DB4 @ =gUnknown_2023FE8 + ldr r1, [r6] + adds r1, r0, r1 + adds r1, 0x5C + lsls r0, 9 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08024DB8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08024DBC + ldrb r0, [r7] + ldr r2, [r6] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + ldr r2, [r6] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + lsls r0, 9 + adds r5, r4, 0x2 + adds r0, r5 + ldrb r2, [r0] + movs r3, 0xF0 + adds r0, r3, 0 + ands r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r7] + ldr r2, [r6] + lsls r0, r1, 1 + adds r0, r1 + adds r0, r2 + adds r0, 0x61 + lsls r1, 9 + adds r4, 0x3 + mov r12, r4 + add r1, r12 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r7] + movs r4, 0x2 + eors r0, r4 + ldr r2, [r6] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + ldr r2, [r6] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r0, [r7] + lsls r0, 9 + adds r0, r5 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, 4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + ldr r0, [r6] + lsls r1, r4, 1 + adds r1, r4 + adds r1, r0 + adds r1, 0x62 + ldrb r0, [r7] + lsls r0, 9 + add r0, r12 + ldrb r0, [r0] + strb r0, [r1] + b _08024DC2 + .align 2, 0 +_08024DAC: .4byte gUnknown_2023E82 +_08024DB0: .4byte gUnknown_20233C4 +_08024DB4: .4byte gUnknown_2023FE8 +_08024DB8: .4byte gUnknown_2022B4C +_08024DBC: + ldrb r0, [r7] + bl sub_8013F6C +_08024DC2: + ldr r1, _08024E1C @ =gUnknown_2022AB8 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + ldr r4, _08024E20 @ =gUnknown_2023BE4 + ldr r3, _08024E24 @ =gUnknown_2023D6B + ldrb r0, [r3] + movs r2, 0x58 + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r2, _08024E28 @ =gUnknown_2022AC8 + strb r5, [r2] + movs r0, 0x7 + strb r0, [r2, 0x1] + ldr r3, _08024E2C @ =gUnknown_2023BC4 + ldrb r0, [r3] + strb r0, [r2, 0x2] + ldr r1, _08024E30 @ =gUnknown_20233C4 + ldrb r0, [r3] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r2, 0x4] +_08024E0E: + ldr r1, _08024E34 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] +_08024E16: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024E1C: .4byte gUnknown_2022AB8 +_08024E20: .4byte gUnknown_2023BE4 +_08024E24: .4byte gUnknown_2023D6B +_08024E28: .4byte gUnknown_2022AC8 +_08024E2C: .4byte gUnknown_2023BC4 +_08024E30: .4byte gUnknown_20233C4 +_08024E34: .4byte gUnknown_2023D74 + thumb_func_end sub_8024C48 + + thumb_func_start sub_8024E38 +sub_8024E38: @ 8024E38 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r6, _08024F40 @ =gUnknown_2023D74 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08024F44 @ =gUnknown_2023BC4 + strb r0, [r4] + ldrb r0, [r4] + bl sub_80174B8 + ldr r2, _08024F48 @ =gUnknown_2023DD0 + ldr r1, _08024F4C @ =gUnknown_825E45C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r2, _08024F50 @ =gUnknown_2023ECC + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r4] + bl sub_80751C4 + ldr r5, _08024F54 @ =gUnknown_2023DDE + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 2 + mov r8, r0 + ands r0, r1 + cmp r0, 0 + bne _08024F88 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08024F88 + ldr r1, _08024F58 @ =gUnknown_2023BE4 + mov r9, r1 + ldrb r2, [r4] + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + adds r1, r0, r1 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08024F88 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08024F88 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + beq _08024F88 + adds r0, r2, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r2, [r0] + mov r1, r8 + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r4] + bl sub_80751C4 + ldr r2, _08024F5C @ =gUnknown_2023DE4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0xA] + movs r1, 0x5 + subs r1, r0 + lsls r1, 25 + lsrs r1, 24 + ldr r5, _08024F60 @ =gUnknown_2023D50 + ldrb r0, [r4] + muls r0, r7 + add r0, r9 + ldrh r0, [r0, 0x2C] + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _08024F28 + movs r0, 0x1 + str r0, [r5] +_08024F28: + ldr r0, _08024F64 @ =gUnknown_2023FC4 + ldrb r1, [r4] + strb r1, [r0, 0x17] + bl sub_8017544 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08024F6C + ldr r0, _08024F68 @ =gUnknown_81D8CBE + str r0, [r6] + b _080250C6 + .align 2, 0 +_08024F40: .4byte gUnknown_2023D74 +_08024F44: .4byte gUnknown_2023BC4 +_08024F48: .4byte gUnknown_2023DD0 +_08024F4C: .4byte gUnknown_825E45C +_08024F50: .4byte gUnknown_2023ECC +_08024F54: .4byte gUnknown_2023DDE +_08024F58: .4byte gUnknown_2023BE4 +_08024F5C: .4byte gUnknown_2023DE4 +_08024F60: .4byte gUnknown_2023D50 +_08024F64: .4byte gUnknown_2023FC4 +_08024F68: .4byte gUnknown_81D8CBE +_08024F6C: + cmp r0, 0x1 + bne _08024F7C + ldr r0, _08024F78 @ =gUnknown_81D8C87 + str r0, [r6] + b _080250C6 + .align 2, 0 +_08024F78: .4byte gUnknown_81D8C87 +_08024F7C: + ldr r0, _08024F84 @ =gUnknown_81D8CF5 + str r0, [r6] + b _080250C6 + .align 2, 0 +_08024F84: .4byte gUnknown_81D8CF5 +_08024F88: + ldr r1, _08025064 @ =gUnknown_2023BE4 + ldr r5, _08025068 @ =gUnknown_2023BC4 + ldrb r2, [r5] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x36 + bne _08024FAE + ldr r1, _0802506C @ =gUnknown_2023E0C + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x18] +_08024FAE: + ldrb r1, [r5] + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _08024FC4 + b _080250C6 +_08024FC4: + ldrb r1, [r5] + movs r0, 0 + movs r2, 0 + bl sub_801BC68 + lsls r0, 24 + cmp r0, 0 + bne _080250C6 + ldrb r0, [r5] + bl sub_80751C4 + ldr r1, _08025070 @ =gUnknown_2023DDE + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, _08025074 @ =0x0000fdff + ands r1, r2 + strh r1, [r0] + movs r4, 0 + ldr r0, _08025078 @ =gUnknown_2023BCC + ldrb r3, [r0] + cmp r4, r3 + bge _08025012 + ldr r6, _0802507C @ =gUnknown_2023BDE + ldr r3, _08025080 @ =gUnknown_2023BDA + movs r2, 0xC + adds r1, r0, 0 +_08024FFC: + adds r0, r4, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _0802500A + adds r0, r4, r3 + strb r2, [r0] +_0802500A: + adds r4, 0x1 + ldrb r0, [r1] + cmp r4, r0 + blt _08024FFC +_08025012: + movs r4, 0 + ldr r0, _08025078 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r4, r0 + bge _08025046 + ldr r6, _08025084 @ =gUnknown_2023FE8 + ldr r5, _08025064 @ =gUnknown_2023BE4 +_08025020: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 23 + adds r0, 0xA8 + ldr r1, [r6] + adds r1, r0 + movs r0, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x28] + strh r0, [r1] + adds r4, 0x1 + ldr r0, _08025078 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r4, r0 + blt _08025020 +_08025046: + ldr r0, _08025088 @ =gUnknown_2023D74 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x5 + bne _080250C0 + ldr r0, _0802508C @ =gUnknown_2023DD0 + ldr r0, [r0] + lsrs r4, r0, 28 + ldr r1, _08025090 @ =gUnknown_2023D6D + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r2, _08025094 @ =gUnknown_825E45C + b _080250A6 + .align 2, 0 +_08025064: .4byte gUnknown_2023BE4 +_08025068: .4byte gUnknown_2023BC4 +_0802506C: .4byte gUnknown_2023E0C +_08025070: .4byte gUnknown_2023DDE +_08025074: .4byte 0x0000fdff +_08025078: .4byte gUnknown_2023BCC +_0802507C: .4byte gUnknown_2023BDE +_08025080: .4byte gUnknown_2023BDA +_08025084: .4byte gUnknown_2023FE8 +_08025088: .4byte gUnknown_2023D74 +_0802508C: .4byte gUnknown_2023DD0 +_08025090: .4byte gUnknown_2023D6D +_08025094: .4byte gUnknown_825E45C +_08025098: + ldr r0, _080250D4 @ =gUnknown_2023BCC + ldrb r3, [r1] + ldrb r0, [r0] + cmp r3, r0 + bcs _080250C0 + adds r0, r3, 0x1 + strb r0, [r1] +_080250A6: + ldrb r0, [r1] + lsls r0, 2 + adds r0, r2 + ldr r3, [r0] + adds r0, r4, 0 + ands r0, r3 + cmp r0, 0 + beq _08025098 + ldr r0, _080250D8 @ =gUnknown_2023D70 + ldrb r0, [r0] + ands r0, r3 + cmp r0, 0 + bne _08025098 +_080250C0: + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_080250C6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080250D4: .4byte gUnknown_2023BCC +_080250D8: .4byte gUnknown_2023D70 + thumb_func_end sub_8024E38 + + thumb_func_start sub_80250DC +sub_80250DC: @ 80250DC + push {lr} + ldr r0, _080250EC @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080250F0 + movs r0, 0 + b _080250F2 + .align 2, 0 +_080250EC: .4byte gUnknown_2023D74 +_080250F0: + movs r0, 0x1 +_080250F2: + bl sub_80751E8 + ldr r1, _08025114 @ =gUnknown_2023BC4 + strb r0, [r1] + movs r0, 0 + bl sub_800E0F4 + ldr r0, _08025114 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _08025118 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08025114: .4byte gUnknown_2023BC4 +_08025118: .4byte gUnknown_2023D74 + thumb_func_end sub_80250DC + + thumb_func_start sub_802511C +sub_802511C: @ 802511C + push {r4,r5,lr} + ldr r5, _0802514C @ =gUnknown_2023BC4 + ldr r0, _08025150 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _08025154 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl sub_800E9C4 + ldrb r0, [r5] + bl sub_8017248 + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802514C: .4byte gUnknown_2023BC4 +_08025150: .4byte gUnknown_2023D6B +_08025154: .4byte gUnknown_2023D74 + thumb_func_end sub_802511C + + thumb_func_start sub_8025158 +sub_8025158: @ 8025158 + push {r4,r5,lr} + ldr r5, _08025188 @ =gUnknown_2023BC4 + ldr r0, _0802518C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _08025190 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl sub_800E9F0 + ldrb r0, [r5] + bl sub_8017248 + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025188: .4byte gUnknown_2023BC4 +_0802518C: .4byte gUnknown_2023D6B +_08025190: .4byte gUnknown_2023D74 + thumb_func_end sub_8025158 + + thumb_func_start sub_8025194 +sub_8025194: @ 8025194 + push {r4,r5,lr} + ldr r5, _080251BC @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _080251C0 @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + bl sub_800EA1C + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080251BC: .4byte gUnknown_2023D74 +_080251C0: .4byte gUnknown_2023BC4 + thumb_func_end sub_8025194 + + thumb_func_start sub_80251C4 +sub_80251C4: @ 80251C4 + push {r4,lr} + movs r0, 0 + bl sub_80751E8 + ldr r4, _080251F0 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r0, _080251F4 @ =gUnknown_2023E8A + ldrb r1, [r0] + movs r0, 0 + bl sub_800EB94 + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _080251F8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080251F0: .4byte gUnknown_2023BC4 +_080251F4: .4byte gUnknown_2023E8A +_080251F8: .4byte gUnknown_2023D74 + thumb_func_end sub_80251C4 + + thumb_func_start sub_80251FC +sub_80251FC: @ 80251FC + push {r4,r5,lr} + ldr r5, _08025228 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _0802522C @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + movs r1, 0x1 + bl sub_800E0B4 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025228: .4byte gUnknown_2023D74 +_0802522C: .4byte gUnknown_2023BC4 + thumb_func_end sub_80251FC + + thumb_func_start sub_8025230 +sub_8025230: @ 8025230 + push {r4-r7,lr} + ldr r0, _080252A4 @ =gUnknown_2023D74 + ldr r2, [r0] + ldrb r6, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r6, r0 + ldrb r4, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r4, r0 + ldr r0, _080252A8 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080252AC @ =gUnknown_2024284 + adds r0, r1 + ldrb r1, [r2, 0x9] + bl sub_803EA88 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080252B0 @ =0x0000fffe + cmp r5, r0 + bne _0802529A + adds r7, r5, 0 +_0802527E: + ldr r0, _080252A8 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080252AC @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0 + bl sub_803EA88 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r7 + beq _0802527E +_0802529A: + cmp r5, 0 + bne _080252B4 + ldr r0, _080252A4 @ =gUnknown_2023D74 + str r4, [r0] + b _0802535C + .align 2, 0 +_080252A4: .4byte gUnknown_2023D74 +_080252A8: .4byte gUnknown_2023FE8 +_080252AC: .4byte gUnknown_2024284 +_080252B0: .4byte 0x0000fffe +_080252B4: + ldr r0, _080252C4 @ =0x0000ffff + cmp r5, r0 + bne _080252CC + ldr r1, _080252C8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _0802535C + .align 2, 0 +_080252C4: .4byte 0x0000ffff +_080252C8: .4byte gUnknown_2023D74 +_080252CC: + movs r0, 0 + bl sub_80751E8 + ldr r1, _08025364 @ =gUnknown_2023BC4 + strb r0, [r1] + ldr r2, _08025368 @ =gUnknown_2023BCE + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldr r1, _0802536C @ =gUnknown_2023FE8 + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _0802530C + ldr r4, _08025370 @ =gUnknown_2023BE4 + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0802530C + adds r0, r2, r4 + adds r1, r5, 0 + bl sub_803E920 +_0802530C: + ldr r0, _08025374 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08025358 + movs r0, 0x2 + bl sub_80751E8 + ldr r1, _08025364 @ =gUnknown_2023BC4 + strb r0, [r1] + ldr r2, _08025368 @ =gUnknown_2023BCE + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldr r1, _0802536C @ =gUnknown_2023FE8 + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _08025358 + ldr r4, _08025370 @ =gUnknown_2023BE4 + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08025358 + adds r0, r2, r4 + adds r1, r5, 0 + bl sub_803E920 +_08025358: + ldr r0, _08025378 @ =gUnknown_2023D74 + str r6, [r0] +_0802535C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025364: .4byte gUnknown_2023BC4 +_08025368: .4byte gUnknown_2023BCE +_0802536C: .4byte gUnknown_2023FE8 +_08025370: .4byte gUnknown_2023BE4 +_08025374: .4byte gUnknown_2022B4C +_08025378: .4byte gUnknown_2023D74 + thumb_func_end sub_8025230 + + thumb_func_start sub_802537C +sub_802537C: @ 802537C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r0, _080253A0 @ =gUnknown_2023BC4 + movs r1, 0 + strb r1, [r0] + ldr r0, _080253A4 @ =gUnknown_2023FC4 + ldrb r1, [r0, 0x1F] + adds r2, r0, 0 + cmp r1, 0x5 + bls _08025396 + b _080256D0 +_08025396: + lsls r0, r1, 2 + ldr r1, _080253A8 @ =_080253AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080253A0: .4byte gUnknown_2023BC4 +_080253A4: .4byte gUnknown_2023FC4 +_080253A8: .4byte _080253AC + .align 2, 0 +_080253AC: + .4byte _080253C4 + .4byte _080253FC + .4byte _080254A8 + .4byte _08025500 + .4byte _080256A4 + .4byte _080256C4 +_080253C4: + movs r4, 0 + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r0, _080253F0 @ =gUnknown_83FE791 + movs r1, 0xE + bl sub_80D87BC + ldr r1, _080253F4 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1F] + adds r0, 0x1 + strb r0, [r1, 0x1F] + ldr r0, _080253F8 @ =gUnknown_2023E82 + strb r4, [r0, 0x1] + bl sub_802DCB8 + b _080256D0 + .align 2, 0 +_080253F0: .4byte gUnknown_83FE791 +_080253F4: .4byte gUnknown_2023FC4 +_080253F8: .4byte gUnknown_2023E82 +_080253FC: + ldr r0, _08025484 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08025422 + ldr r4, _08025488 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08025422 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_08025422: + ldr r0, _08025484 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08025448 + ldr r4, _08025488 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08025448 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_08025448: + ldr r0, _08025484 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _0802548C + movs r0, 0x5 + bl sub_80722CC + ldr r0, _08025488 @ =gUnknown_2023E82 + ldrb r4, [r0, 0x1] + cmp r4, 0 + bne _0802549C + str r5, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + b _080254D8 + .align 2, 0 +_08025484: .4byte gUnknown_30030F0 +_08025488: .4byte gUnknown_2023E82 +_0802548C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08025496 + b _080256D0 +_08025496: + movs r0, 0x5 + bl sub_80722CC +_0802549C: + ldr r1, _080254A4 @ =gUnknown_2023FC4 + movs r0, 0x4 + strb r0, [r1, 0x1F] + b _080256D0 + .align 2, 0 +_080254A4: .4byte gUnknown_2023FC4 +_080254A8: + ldr r0, _080254E4 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080254B6 + b _080256D0 +_080254B6: + bl sub_8003ECC + ldr r0, _080254E8 @ =gUnknown_2024284 + ldr r1, _080254EC @ =gUnknown_2023FE8 + ldr r1, [r1] + ldrb r1, [r1, 0x10] + ldr r2, _080254F0 @ =gUnknown_2024029 + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080254F4 @ =sub_8077764 + ldr r4, _080254F8 @ =gUnknown_2024022 + ldrh r4, [r4] + str r4, [sp] + bl sub_8134738 +_080254D8: + ldr r1, _080254FC @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1F] + adds r0, 0x1 + strb r0, [r1, 0x1F] + b _080256D0 + .align 2, 0 +_080254E4: .4byte gUnknown_2037AB8 +_080254E8: .4byte gUnknown_2024284 +_080254EC: .4byte gUnknown_2023FE8 +_080254F0: .4byte gUnknown_2024029 +_080254F4: .4byte sub_8077764 +_080254F8: .4byte gUnknown_2024022 +_080254FC: .4byte gUnknown_2023FC4 +_08025500: + ldr r0, _0802552C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802550E + b _080256D0 +_0802550E: + ldr r0, _08025530 @ =gUnknown_30030F0 + ldr r1, [r0, 0x4] + ldr r0, _08025534 @ =sub_8011100 + cmp r1, r0 + beq _0802551A + b _080256D0 +_0802551A: + bl sub_8138B2C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bne _0802553C + ldr r0, _08025538 @ =gUnknown_2023FC4 + strb r5, [r0, 0x1F] + b _080256D0 + .align 2, 0 +_0802552C: .4byte gUnknown_2037AB8 +_08025530: .4byte gUnknown_30030F0 +_08025534: .4byte sub_8011100 +_08025538: .4byte gUnknown_2023FC4 +_0802553C: + ldr r6, _08025578 @ =gUnknown_2023FE8 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r7, _0802557C @ =gUnknown_2024284 + adds r0, r7 + adds r1, r5, 0 + adds r1, 0xD + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_80441B8 + cmp r0, 0 + beq _0802558C + ldr r0, _08025580 @ =0x0000013f + ldr r1, _08025584 @ =gUnknown_2023BC4 + ldrb r1, [r1] + bl sub_80173AC + ldr r1, _08025588 @ =gUnknown_2023FC4 + movs r0, 0x5 + strb r0, [r1, 0x1F] + b _080256D0 + .align 2, 0 +_08025578: .4byte gUnknown_2023FE8 +_0802557C: .4byte gUnknown_2024284 +_08025580: .4byte 0x0000013f +_08025584: .4byte gUnknown_2023BC4 +_08025588: .4byte gUnknown_2023FC4 +_0802558C: + ldr r3, _08025680 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + ldr r1, _08025684 @ =gUnknown_2022AC8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + lsrs r0, r4, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r0, [r6] + ldrb r0, [r0, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + adds r1, r5, 0 + bl sub_8041064 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + ldr r7, _08025688 @ =gUnknown_2024022 + ldrh r1, [r7] + adds r2, r5, 0 + bl sub_803E964 + ldr r0, _0802568C @ =gUnknown_2023BCE + ldr r1, [r6] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _08025622 + ldr r4, _08025690 @ =gUnknown_2023BE4 + ldr r0, [r4, 0x50] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08025622 + ldr r0, _08025694 @ =gUnknown_2023E0C + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _08025698 @ =gUnknown_825E45C + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08025622 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80410A0 + ldrh r1, [r7] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_803E9A4 +_08025622: + ldr r0, _0802569C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080256D0 + ldr r2, _0802568C @ =gUnknown_2023BCE + ldr r0, _080256A0 @ =gUnknown_2023FE8 + ldr r1, [r0] + ldrh r0, [r2, 0x4] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _080256D0 + ldr r4, _08025690 @ =gUnknown_2023BE4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _080256D0 + ldr r0, _08025694 @ =gUnknown_2023E0C + adds r0, 0x50 + ldrb r1, [r0] + lsrs r1, 4 + ldr r2, _08025698 @ =gUnknown_825E45C + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080256D0 + adds r4, 0xB0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80410A0 + ldr r0, _08025688 @ =gUnknown_2024022 + ldrh r1, [r0] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_803E9A4 + b _080256D0 + .align 2, 0 +_08025680: .4byte gUnknown_2023D74 +_08025684: .4byte gUnknown_2022AC8 +_08025688: .4byte gUnknown_2024022 +_0802568C: .4byte gUnknown_2023BCE +_08025690: .4byte gUnknown_2023BE4 +_08025694: .4byte gUnknown_2023E0C +_08025698: .4byte gUnknown_825E45C +_0802569C: .4byte gUnknown_2022B4C +_080256A0: .4byte gUnknown_2023FE8 +_080256A4: + movs r0, 0x1 + str r0, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r1, _080256C0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080256D0 + .align 2, 0 +_080256C0: .4byte gUnknown_2023D74 +_080256C4: + ldr r0, _080256DC @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _080256D0 + movs r0, 0x2 + strb r0, [r2, 0x1F] +_080256D0: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080256DC: .4byte gUnknown_2023BC8 + thumb_func_end sub_802537C + + thumb_func_start sub_80256E0 +sub_80256E0: @ 80256E0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080256F4 @ =gUnknown_2023FC4 + ldrb r4, [r5, 0x1F] + cmp r4, 0 + beq _080256F8 + cmp r4, 0x1 + beq _08025728 + b _0802580E + .align 2, 0 +_080256F4: .4byte gUnknown_2023FC4 +_080256F8: + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r0, _08025720 @ =gUnknown_83FE791 + movs r1, 0xE + bl sub_80D87BC + ldrb r0, [r5, 0x1F] + adds r0, 0x1 + strb r0, [r5, 0x1F] + ldr r0, _08025724 @ =gUnknown_2023E82 + strb r4, [r0, 0x1] + bl sub_802DCB8 + b _0802580E + .align 2, 0 +_08025720: .4byte gUnknown_83FE791 +_08025724: .4byte gUnknown_2023E82 +_08025728: + ldr r0, _080257AC @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802574E + ldr r4, _080257B0 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0802574E + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_0802574E: + ldr r0, _080257AC @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08025774 + ldr r4, _080257B0 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08025774 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_08025774: + ldr r0, _080257AC @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080257D8 + movs r0, 0x5 + bl sub_80722CC + ldr r0, _080257B0 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080257B8 + ldr r3, _080257B4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080257C0 + .align 2, 0 +_080257AC: .4byte gUnknown_30030F0 +_080257B0: .4byte gUnknown_2023E82 +_080257B4: .4byte gUnknown_2023D74 +_080257B8: + ldr r1, _080257D4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080257C0: + movs r0, 0x1 + str r0, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + b _0802580E + .align 2, 0 +_080257D4: .4byte gUnknown_2023D74 +_080257D8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802580E + movs r0, 0x5 + bl sub_80722CC + ldr r3, _08025818 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C +_0802580E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025818: .4byte gUnknown_2023D74 + thumb_func_end sub_80256E0 + + thumb_func_start sub_802581C +sub_802581C: @ 802581C + push {r4,lr} + ldr r4, _08025888 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r2, _0802588C @ =gUnknown_2023BC4 + strb r0, [r2] + ldr r0, _08025890 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080258A0 + ldr r0, _08025894 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _0802586E + ldr r1, _08025898 @ =gUnknown_2023BE4 + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0802586E + ldr r0, _0802589C @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _080258A0 +_0802586E: + movs r0, 0 + bl sub_800E984 + ldr r0, _0802588C @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _08025888 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + b _080258A6 + .align 2, 0 +_08025888: .4byte gUnknown_2023D74 +_0802588C: .4byte gUnknown_2023BC4 +_08025890: .4byte gUnknown_2023DCC +_08025894: .4byte gUnknown_2023DD0 +_08025898: .4byte gUnknown_2023BE4 +_0802589C: .4byte gUnknown_2023E0C +_080258A0: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] +_080258A6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802581C + + thumb_func_start sub_80258AC +sub_80258AC: @ 80258AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r5, 0 + ldr r0, _080258F0 @ =gUnknown_2023E8A + ldrb r0, [r0] + cmp r0, 0x1 + beq _080258C0 + b _080259FA +_080258C0: + ldr r0, _080258F4 @ =gUnknown_20386AE + ldrh r2, [r0] + movs r1, 0x80 + lsls r1, 3 + cmp r2, r1 + bne _08025904 + ldr r0, _080258F8 @ =gUnknown_2023FF4 + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x94 + ldrb r2, [r0] + ldr r0, _080258FC @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x4A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + muls r4, r0 + ldr r0, _08025900 @ =gUnknown_3005008 + mov r8, r0 + b _080259E8 + .align 2, 0 +_080258F0: .4byte gUnknown_2023E8A +_080258F4: .4byte gUnknown_20386AE +_080258F8: .4byte gUnknown_2023FF4 +_080258FC: .4byte gUnknown_2023FE8 +_08025900: .4byte gUnknown_3005008 +_08025904: + ldr r2, _08025920 @ =gUnknown_823EAC8 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r3, r0, 3 + adds r4, r3, r2 + ldrb r1, [r4] + cmp r1, 0x1 + beq _0802595A + cmp r1, 0x1 + bgt _08025924 + cmp r1, 0 + beq _0802592E + b _08025970 + .align 2, 0 +_08025920: .4byte gUnknown_823EAC8 +_08025924: + cmp r1, 0x2 + beq _08025944 + cmp r1, 0x3 + beq _0802595A + b _08025970 +_0802592E: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _0802596E +_08025944: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _0802596E +_0802595A: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + subs r0, 0x10 +_0802596E: + ldrb r5, [r0, 0x2] +_08025970: + ldr r0, _080259CC @ =gUnknown_824F220 + lsls r1, r6, 2 + adds r3, r1, r0 + ldrb r1, [r3] + ldr r7, _080259D0 @ =gUnknown_2023FE8 + mov r12, r0 + lsls r4, r5, 2 + ldr r5, _080259D4 @ =gUnknown_2022B4C + ldr r0, _080259D8 @ =gUnknown_3005008 + mov r8, r0 + cmp r1, 0xFF + beq _080259AA + ldr r2, _080259DC @ =gUnknown_823EAC8 + ldr r0, _080259E0 @ =gUnknown_20386AE + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0x1] + adds r1, r3, 0 +_0802599A: + ldrb r0, [r1] + cmp r0, r2 + beq _080259AA + adds r1, 0x4 + adds r6, 0x1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0802599A +_080259AA: + ldr r0, [r7] + adds r0, 0x4A + ldrb r0, [r0] + adds r3, r4, 0 + muls r3, r0 + lsls r0, r6, 2 + add r0, r12 + ldrb r2, [r0, 0x1] + ldr r0, [r5] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080259E4 + lsls r0, r2, 1 + adds r4, r3, 0 + muls r4, r0 + b _080259E8 + .align 2, 0 +_080259CC: .4byte gUnknown_824F220 +_080259D0: .4byte gUnknown_2023FE8 +_080259D4: .4byte gUnknown_2022B4C +_080259D8: .4byte gUnknown_3005008 +_080259DC: .4byte gUnknown_823EAC8 +_080259E0: .4byte gUnknown_20386AE +_080259E4: + adds r4, r3, 0 + muls r4, r2 +_080259E8: + mov r1, r8 + ldr r0, [r1] + movs r1, 0xA4 + lsls r1, 2 + adds r0, r1 + adds r1, r4, 0 + bl sub_809FDA0 + b _08025A00 +_080259FA: + bl sub_8054C04 + adds r4, r0, 0 +_08025A00: + ldr r1, _08025A40 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x4 + strb r0, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + strb r4, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r0, r4 + lsrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r4 + lsrs r0, 16 + strb r0, [r1, 0x6] + lsrs r0, r4, 24 + strb r0, [r1, 0x7] + movs r0, 0xFF + strb r0, [r1, 0x8] + cmp r4, 0 + beq _08025A48 + ldr r1, _08025A44 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08025A62 + .align 2, 0 +_08025A40: .4byte gUnknown_2022AB8 +_08025A44: .4byte gUnknown_2023D74 +_08025A48: + ldr r3, _08025A6C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08025A62: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025A6C: .4byte gUnknown_2023D74 + thumb_func_end sub_80258AC + + thumb_func_start sub_8025A70 +sub_8025A70: @ 8025A70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _08025A94 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r6, _08025A98 @ =gUnknown_2023BC4 + strb r0, [r6] + ldr r5, _08025A9C @ =gUnknown_2023E82 + ldrb r0, [r5] + mov r8, r4 + cmp r0, 0 + beq _08025AA0 + cmp r0, 0x1 + beq _08025AB8 + b _08025B0C + .align 2, 0 +_08025A94: .4byte gUnknown_2023D74 +_08025A98: .4byte gUnknown_2023BC4 +_08025A9C: .4byte gUnknown_2023E82 +_08025AA0: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_800DFA4 + ldrb r0, [r6] + bl sub_8017248 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _08025B0C +_08025AB8: + ldr r0, _08025B18 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08025B0C + ldrb r0, [r6] + lsls r0, 9 + ldr r1, _08025B1C @ =gUnknown_20233C8 + adds r0, r1 + mov r12, r0 + movs r2, 0 + adds r4, r6, 0 + movs r5, 0x58 + ldr r6, _08025B20 @ =gUnknown_2023C08 + adds r7, r6, 0 + subs r7, 0x18 + mov r3, r12 + adds r3, 0xC +_08025ADA: + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r5 + adds r1, r0 + adds r1, r7 + ldrh r0, [r3] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r2, r1 + adds r1, r6 + mov r0, r12 + adds r0, 0x24 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r3, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _08025ADA + mov r1, r8 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08025B0C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025B18: .4byte gUnknown_2023BC8 +_08025B1C: .4byte gUnknown_20233C8 +_08025B20: .4byte gUnknown_2023C08 + thumb_func_end sub_8025A70 + + thumb_func_start sub_8025B24 +sub_8025B24: @ 8025B24 + push {lr} + ldr r0, _08025B4C @ =gUnknown_2023BC4 + ldr r2, _08025B50 @ =gUnknown_2023D6B + ldrb r3, [r2] + strb r3, [r0] + ldr r1, _08025B54 @ =gUnknown_2023D6C + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + ldr r2, _08025B58 @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 5 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _08025B60 + ldr r0, _08025B5C @ =0xffffefff + ands r1, r0 + b _08025B62 + .align 2, 0 +_08025B4C: .4byte gUnknown_2023BC4 +_08025B50: .4byte gUnknown_2023D6B +_08025B54: .4byte gUnknown_2023D6C +_08025B58: .4byte gUnknown_2023DD0 +_08025B5C: .4byte 0xffffefff +_08025B60: + orrs r1, r3 +_08025B62: + str r1, [r2] + ldr r1, _08025B70 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08025B70: .4byte gUnknown_2023D74 + thumb_func_end sub_8025B24 + + thumb_func_start sub_8025B74 +sub_8025B74: @ 8025B74 + push {lr} + ldr r0, _08025B9C @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08025B8E + ldr r0, _08025BA0 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8054E90 +_08025B8E: + ldr r1, _08025BA0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08025B9C: .4byte gUnknown_2023D6B +_08025BA0: .4byte gUnknown_2023D74 + thumb_func_end sub_8025B74 + + thumb_func_start sub_8025BA4 +sub_8025BA4: @ 8025BA4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + ldr r0, _08025C08 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08025C58 + ldr r0, _08025C0C @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _08025C10 @ =gUnknown_2023BC4 + strb r0, [r1] + ldrb r0, [r1] + bl sub_80751C4 + lsls r0, 24 + ldr r1, _08025C14 @ =gUnknown_202402C + mov r8, r1 + cmp r0, 0 + bne _08025BD6 + ldr r0, _08025C18 @ =gUnknown_2024284 + mov r8, r0 +_08025BD6: + movs r7, 0 + add r6, sp, 0x4 + mov r5, sp +_08025BDC: + movs r0, 0x64 + muls r0, r7 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _08025C00 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _08025C20 +_08025C00: + ldr r0, _08025C1C @ =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _08025C32 + .align 2, 0 +_08025C08: .4byte gUnknown_2023BC8 +_08025C0C: .4byte gUnknown_2023D74 +_08025C10: .4byte gUnknown_2023BC4 +_08025C14: .4byte gUnknown_202402C +_08025C18: .4byte gUnknown_2024284 +_08025C1C: .4byte 0x0000ffff +_08025C20: + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl sub_803FBE8 +_08025C32: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _08025BDC + movs r0, 0 + mov r1, sp + movs r2, 0x1 + bl sub_800EA7C + ldr r0, _08025C64 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _08025C68 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08025C58: + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025C64: .4byte gUnknown_2023BC4 +_08025C68: .4byte gUnknown_2023D74 + thumb_func_end sub_8025BA4 + + thumb_func_start sub_8025C6C +sub_8025C6C: @ 8025C6C + push {r4,r5,lr} + ldr r5, _08025C94 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08025C98 @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + bl sub_800EAC4 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025C94: .4byte gUnknown_2023D74 +_08025C98: .4byte gUnknown_2023BC4 + thumb_func_end sub_8025C6C + + thumb_func_start sub_8025C9C +sub_8025C9C: @ 8025C9C + push {r4,lr} + ldr r0, _08025CB4 @ =gUnknown_2023D74 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0 + beq _08025CC0 + ldr r0, _08025CB8 @ =gUnknown_2023D4A + ldr r1, _08025CBC @ =gUnknown_2023D4E + ldrh r1, [r1] + strh r1, [r0] + b _08025CCE + .align 2, 0 +_08025CB4: .4byte gUnknown_2023D74 +_08025CB8: .4byte gUnknown_2023D4A +_08025CBC: .4byte gUnknown_2023D4E +_08025CC0: + ldr r2, _08025CEC @ =gUnknown_2023D4C + ldr r1, _08025CF0 @ =gUnknown_2023D4A + ldr r0, _08025CF4 @ =gUnknown_2023D4E + ldrh r0, [r0] + strh r0, [r1] + strh r0, [r2] + adds r0, r1, 0 +_08025CCE: + ldr r3, _08025CF8 @ =gUnknown_81D65A8 + ldr r2, _08025CFC @ =gUnknown_8250C04 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08025CEC: .4byte gUnknown_2023D4C +_08025CF0: .4byte gUnknown_2023D4A +_08025CF4: .4byte gUnknown_2023D4E +_08025CF8: .4byte gUnknown_81D65A8 +_08025CFC: .4byte gUnknown_8250C04 + thumb_func_end sub_8025C9C + + thumb_func_start sub_8025D00 +sub_8025D00: @ 8025D00 + push {r4,lr} + ldr r0, _08025D70 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08025D68 + ldr r0, _08025D74 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08025D78 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r1, _08025D7C @ =gUnknown_2023DFC + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08025D80 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08025D60 + ldr r0, _08025D84 @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _08025D60 + ldr r0, _08025D88 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08025D60 + ldr r1, _08025D8C @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + ldr r2, [r0] + movs r0, 0 + movs r1, 0 + bl sub_800E6AC + ldrb r0, [r4] + bl sub_8017248 +_08025D60: + ldr r1, _08025D74 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08025D68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08025D70: .4byte gUnknown_2023BC8 +_08025D74: .4byte gUnknown_2023D74 +_08025D78: .4byte gUnknown_2023BC4 +_08025D7C: .4byte gUnknown_2023DFC +_08025D80: .4byte 0x000400c0 +_08025D84: .4byte gUnknown_2023E0C +_08025D88: .4byte gUnknown_2023DD0 +_08025D8C: .4byte gUnknown_2023BE4 + thumb_func_end sub_8025D00 + + thumb_func_start sub_8025D90 +sub_8025D90: @ 8025D90 + push {r4,r5,lr} + ldr r0, _08025E18 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08025E10 + ldr r4, _08025E1C @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r5, _08025E20 @ =gUnknown_2023BC4 + strb r0, [r5] + ldr r1, [r4] + ldrb r3, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r1, _08025E24 @ =gUnknown_2023DFC + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08025E28 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08025E08 + ldr r0, _08025E2C @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _08025E08 + ldr r0, _08025E30 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08025E08 + ldr r1, _08025E34 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r2, [r0] + ands r2, r3 + movs r0, 0 + movs r1, 0x1 + bl sub_800E6AC + ldrb r0, [r5] + bl sub_8017248 +_08025E08: + ldr r1, _08025E1C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_08025E10: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025E18: .4byte gUnknown_2023BC8 +_08025E1C: .4byte gUnknown_2023D74 +_08025E20: .4byte gUnknown_2023BC4 +_08025E24: .4byte gUnknown_2023DFC +_08025E28: .4byte 0x000400c0 +_08025E2C: .4byte gUnknown_2023E0C +_08025E30: .4byte gUnknown_2023DD0 +_08025E34: .4byte gUnknown_2023BE4 + thumb_func_end sub_8025D90 + + thumb_func_start sub_8025E38 +sub_8025E38: @ 8025E38 + push {r4,r5,lr} + ldr r0, _08025EB0 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + bne _08025EAA + ldr r4, _08025EB4 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r5, _08025EB8 @ =gUnknown_2023BC4 + strb r0, [r5] + ldr r4, [r4] + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x4] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r4, 0x5] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r4, 0x6] + lsls r0, 24 + orrs r2, r0 + ldr r1, _08025EBC @ =gUnknown_2023DFC + ldrb r3, [r5] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08025EC0 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08025EA2 + ldr r0, _08025EC4 @ =gUnknown_2023E0C + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _08025EA2 + ldr r0, _08025EC8 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08025EA2 + ldrb r1, [r4, 0x2] + movs r0, 0 + bl sub_800E6AC + ldrb r0, [r5] + bl sub_8017248 +_08025EA2: + ldr r1, _08025EB4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] +_08025EAA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025EB0: .4byte gUnknown_2023BC8 +_08025EB4: .4byte gUnknown_2023D74 +_08025EB8: .4byte gUnknown_2023BC4 +_08025EBC: .4byte gUnknown_2023DFC +_08025EC0: .4byte 0x000400c0 +_08025EC4: .4byte gUnknown_2023E0C +_08025EC8: .4byte gUnknown_2023DD0 + thumb_func_end sub_8025E38 + + thumb_func_start sub_8025ECC +sub_8025ECC: @ 8025ECC + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _08025EE0 @ =gUnknown_2023E82 + ldrb r4, [r5] + cmp r4, 0 + beq _08025EE4 + cmp r4, 0x1 + beq _08025F0C + b _08025F9A + .align 2, 0 +_08025EE0: .4byte gUnknown_2023E82 +_08025EE4: + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r0, _08025F08 @ =gUnknown_83FE791 + movs r1, 0xE + bl sub_80D87BC + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + strb r4, [r5, 0x1] + bl sub_802DCB8 + b _08025F9A + .align 2, 0 +_08025F08: .4byte gUnknown_83FE791 +_08025F0C: + ldr r0, _08025F6C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08025F30 + ldrb r0, [r5, 0x1] + cmp r0, 0 + beq _08025F30 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0 + strb r0, [r5, 0x1] + bl sub_802DCB8 +_08025F30: + ldr r0, _08025F6C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08025F56 + ldr r4, _08025F70 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08025F56 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_08025F56: + ldr r0, _08025F6C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08025F74 + ldr r0, _08025F70 @ =gUnknown_2023E82 + movs r4, 0x1 + strb r4, [r0, 0x1] + b _08025F7E + .align 2, 0 +_08025F6C: .4byte gUnknown_30030F0 +_08025F70: .4byte gUnknown_2023E82 +_08025F74: + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08025F9A +_08025F7E: + movs r0, 0x5 + bl sub_80722CC + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r1, _08025FA4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08025F9A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025FA4: .4byte gUnknown_2023D74 + thumb_func_end sub_8025ECC + + thumb_func_start sub_8025FA8 +sub_8025FA8: @ 8025FA8 + push {r4,r5,lr} + movs r1, 0 + ldr r2, _08025FD4 @ =gUnknown_2023BCC + ldr r5, _08025FD8 @ =gUnknown_2023D74 + ldrb r0, [r2] + cmp r1, r0 + bge _08025FC6 + ldr r4, _08025FDC @ =gUnknown_2023BDA + movs r3, 0xC +_08025FBA: + adds r0, r1, r4 + strb r3, [r0] + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _08025FBA +_08025FC6: + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025FD4: .4byte gUnknown_2023BCC +_08025FD8: .4byte gUnknown_2023D74 +_08025FDC: .4byte gUnknown_2023BDA + thumb_func_end sub_8025FA8 + + thumb_func_start sub_8025FE0 +sub_8025FE0: @ 8025FE0 + push {r4-r7,lr} + ldr r7, _08026008 @ =gUnknown_2023BE4 + ldr r6, _0802600C @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08026014 + ldr r1, _08026010 @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0802602E + .align 2, 0 +_08026008: .4byte gUnknown_2023BE4 +_0802600C: .4byte gUnknown_2023D6C +_08026010: .4byte gUnknown_2023F54 +_08026014: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl sub_809A948 + lsls r0, 24 + lsrs r6, r0, 24 +_0802602E: + ldr r1, _080260F0 @ =gUnknown_2023D6F + ldr r5, _080260F4 @ =gUnknown_2023D6C + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0802606C + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0802606C + ldrb r0, [r5] + movs r1, 0x27 + bl sub_80C7208 + ldr r2, _080260F8 @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0802606C: + ldr r2, _080260FC @ =gUnknown_2023BE4 + ldr r3, _080260F4 @ =gUnknown_2023D6C + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _0802613C + ldr r2, _08026100 @ =gUnknown_8250C04 + ldr r0, _08026104 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _080260BE + ldr r0, _08026108 @ =gUnknown_2023E8C + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _080260BE + ldr r0, _080260F8 @ =gUnknown_2023ECC + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0802613C +_080260BE: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, _0802610C @ =gUnknown_2023D50 + ldr r0, [r2] + cmp r1, r0 + bgt _0802613C + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, _08026108 @ =gUnknown_2023E8C + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _08026114 + ldr r0, _08026110 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0802613C + .align 2, 0 +_080260F0: .4byte gUnknown_2023D6F +_080260F4: .4byte gUnknown_2023D6C +_080260F8: .4byte gUnknown_2023ECC +_080260FC: .4byte gUnknown_2023BE4 +_08026100: .4byte gUnknown_8250C04 +_08026104: .4byte gUnknown_2023D4A +_08026108: .4byte gUnknown_2023E8C +_0802610C: .4byte gUnknown_2023D50 +_08026110: .4byte gUnknown_2023DCC +_08026114: + ldr r0, _0802614C @ =gUnknown_2023ECC + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0802613C + ldr r2, _08026150 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08026154 @ =gUnknown_2023D68 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0802613C: + ldr r1, _08026158 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802614C: .4byte gUnknown_2023ECC +_08026150: .4byte gUnknown_2023DCC +_08026154: .4byte gUnknown_2023D68 +_08026158: .4byte gUnknown_2023D74 + thumb_func_end sub_8025FE0 + + thumb_func_start sub_802615C +sub_802615C: @ 802615C + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080261BC @ =gUnknown_2023D74 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r5, _080261C0 @ =gUnknown_2023BC4 + strb r0, [r5] + ldr r1, _080261C4 @ =gUnknown_2023FE8 + ldrb r4, [r5] + lsls r0, r4, 1 + adds r0, 0xB8 + ldr r1, [r1] + adds r1, r0 + ldr r2, _080261C8 @ =gUnknown_2023BE4 + movs r3, 0x58 + adds r0, r4, 0 + muls r0, r3 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r5] + muls r0, r3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + muls r0, r3 + adds r2, 0x2E + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r5] + bl sub_8017248 + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080261BC: .4byte gUnknown_2023D74 +_080261C0: .4byte gUnknown_2023BC4 +_080261C4: .4byte gUnknown_2023FE8 +_080261C8: .4byte gUnknown_2023BE4 + thumb_func_end sub_802615C + + thumb_func_start sub_80261CC +sub_80261CC: @ 80261CC + ldr r1, _080261F8 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + ldr r2, _080261FC @ =gUnknown_2023D6B + ldrb r0, [r2] + strb r0, [r1, 0x2] + ldr r3, _08026200 @ =gUnknown_2023BCE + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08026204 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_080261F8: .4byte gUnknown_2022AB8 +_080261FC: .4byte gUnknown_2023D6B +_08026200: .4byte gUnknown_2023BCE +_08026204: .4byte gUnknown_2023D74 + thumb_func_end sub_80261CC + + thumb_func_start sub_8026208 +sub_8026208: @ 8026208 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08026224 @ =gUnknown_2023FC4 + ldrb r1, [r0, 0x1E] + adds r4, r0, 0 + cmp r1, 0 + bne _0802622C + bl sub_802679C + cmp r0, 0 + beq _08026228 + movs r0, 0x3 + b _0802622A + .align 2, 0 +_08026224: .4byte gUnknown_2023FC4 +_08026228: + movs r0, 0x1 +_0802622A: + strb r0, [r4, 0x1E] +_0802622C: + ldrb r0, [r4, 0x1E] + subs r0, 0x1 + cmp r0, 0x9 + bls _08026236 + b _080263F6 +_08026236: + lsls r0, 2 + ldr r1, _08026240 @ =_08026244 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026240: .4byte _08026244 + .align 2, 0 +_08026244: + .4byte _0802626C + .4byte _08026298 + .4byte _080262B0 + .4byte _08026304 + .4byte _08026318 + .4byte _08026330 + .4byte _08026318 + .4byte _08026350 + .4byte _08026380 + .4byte _080263C4 +_0802626C: + ldr r1, _08026290 @ =gUnknown_202297E + movs r0, 0x60 + strh r0, [r1] + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0 + bl sub_80019E4 + movs r0, 0x2 + bl sub_80019BC + bl sub_8026480 + ldr r1, _08026294 @ =gUnknown_2023FC4 + movs r0, 0x2 + strb r0, [r1, 0x1E] + b _080263F6 + .align 2, 0 +_08026290: .4byte gUnknown_202297E +_08026294: .4byte gUnknown_2023FC4 +_08026298: + bl sub_80264D0 + lsls r0, 24 + cmp r0, 0 + beq _080262A4 + b _080263F6 +_080262A4: + ldr r1, _080262AC @ =gUnknown_2023FC4 + movs r0, 0x3 + strb r0, [r1, 0x1E] + b _080263F6 + .align 2, 0 +_080262AC: .4byte gUnknown_2023FC4 +_080262B0: + ldr r1, _080262F8 @ =gUnknown_2022978 + movs r0, 0 + strh r0, [r1] + ldr r1, _080262FC @ =gUnknown_202297A + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0x7 + movs r2, 0x1 + bl sub_80019E4 + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0 + bl sub_80019E4 + movs r0, 0 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + movs r0, 0x80 + str r0, [sp] + movs r0, 0x12 + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0x13 + bl sub_802DB7C + ldr r1, _08026300 @ =gUnknown_2023FC4 + movs r0, 0x4 + strb r0, [r1, 0x1E] + b _080263F6 + .align 2, 0 +_080262F8: .4byte gUnknown_2022978 +_080262FC: .4byte gUnknown_202297A +_08026300: .4byte gUnknown_2023FC4 +_08026304: + bl sub_8026404 + movs r0, 0xC + bl sub_8003FA0 + movs r0, 0xC + movs r1, 0x3 + bl sub_8003F20 + b _0802636E +_08026318: + bl sub_8001960 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080263F6 + ldr r0, _0802632C @ =gUnknown_202297A + strh r1, [r0] + b _0802636E + .align 2, 0 +_0802632C: .4byte gUnknown_202297A +_08026330: + ldr r0, _0802634C @ =gUnknown_30030F0 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _080263F6 + movs r0, 0x5 + bl sub_80722CC + bl sub_8026448 + movs r0, 0xC + movs r1, 0x2 + bl sub_8003F20 + b _0802636E + .align 2, 0 +_0802634C: .4byte gUnknown_30030F0 +_08026350: + ldr r0, _08026378 @ =gUnknown_30030F0 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _080263F6 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x81 + str r0, [sp] + movs r0, 0x12 + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0x13 + bl sub_802DB7C +_0802636E: + ldr r1, _0802637C @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x1E] + adds r0, 0x1 + strb r0, [r1, 0x1E] + b _080263F6 + .align 2, 0 +_08026378: .4byte gUnknown_30030F0 +_0802637C: .4byte gUnknown_2023FC4 +_08026380: + bl sub_8026648 + lsls r0, 24 + cmp r0, 0 + bne _080263F6 + movs r0, 0xD + bl sub_80040B8 + movs r0, 0xD + movs r1, 0x1 + bl sub_8003F20 + movs r0, 0xC + bl sub_80040B8 + movs r0, 0xC + movs r1, 0x1 + bl sub_8003F20 + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x2 + bl sub_80019E4 + movs r0, 0x2 + bl sub_80019BC + ldr r1, _080263C0 @ =gUnknown_2023FC4 + movs r0, 0xA + strb r0, [r1, 0x1E] + b _080263F6 + .align 2, 0 +_080263C0: .4byte gUnknown_2023FC4 +_080263C4: + bl sub_8001960 + lsls r0, 24 + cmp r0, 0 + bne _080263F6 + movs r0, 0 + movs r1, 0x7 + movs r2, 0 + bl sub_80019E4 + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x1 + bl sub_80019E4 + movs r0, 0 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + ldr r1, _08026400 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080263F6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08026400: .4byte gUnknown_2023D74 + thumb_func_end sub_8026208 + + thumb_func_start sub_8026404 +sub_8026404: @ 8026404 + push {lr} + sub sp, 0x14 + ldr r0, _0802643C @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08026440 @ =gUnknown_2024284 + adds r0, r1 + add r1, sp, 0x8 + bl sub_811D130 + ldr r0, _08026444 @ =gUnknown_2023FF4 + ldr r0, [r0] + ldr r1, [r0, 0x10] + movs r0, 0xD + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0xC + add r2, sp, 0x8 + movs r3, 0xE + bl sub_811E7F0 + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_0802643C: .4byte gUnknown_2023FE8 +_08026440: .4byte gUnknown_2024284 +_08026444: .4byte gUnknown_2023FF4 + thumb_func_end sub_8026404 + + thumb_func_start sub_8026448 +sub_8026448: @ 8026448 + push {lr} + sub sp, 0x10 + ldr r0, _08026478 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802647C @ =gUnknown_2024284 + adds r0, r1 + add r1, sp, 0x4 + bl sub_811D130 + movs r0, 0xF + str r0, [sp] + movs r0, 0xC + add r1, sp, 0x4 + movs r2, 0xE + movs r3, 0xD + bl sub_811E93C + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_08026478: .4byte gUnknown_2023FE8 +_0802647C: .4byte gUnknown_2024284 + thumb_func_end sub_8026448 + + thumb_func_start sub_8026480 +sub_8026480: @ 8026480 + push {lr} + ldr r1, _080264C0 @ =gUnknown_202297E + movs r0, 0 + strh r0, [r1] + ldr r1, _080264C4 @ =gUnknown_202297C + movs r2, 0xD0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080264C8 @ =gUnknown_82506D0 + movs r1, 0x60 + movs r2, 0x20 + bl sub_80703EC + ldr r1, _080264CC @ =gUnknown_82506F0 + movs r0, 0xD + movs r2, 0 + movs r3, 0 + bl sub_8004404 + movs r0, 0xD + bl sub_8003FA0 + movs r0, 0xD + movs r1, 0x3 + bl sub_8003F20 + bl sub_8026688 + pop {r0} + bx r0 + .align 2, 0 +_080264C0: .4byte gUnknown_202297E +_080264C4: .4byte gUnknown_202297C +_080264C8: .4byte gUnknown_82506D0 +_080264CC: .4byte gUnknown_82506F0 + thumb_func_end sub_8026480 + + thumb_func_start sub_80264D0 +sub_80264D0: @ 80264D0 + push {r4,r5,lr} + bl sub_8001960 + lsls r0, 24 + cmp r0, 0 + beq _080264E0 + movs r0, 0x1 + b _0802651A +_080264E0: + ldr r4, _080264F0 @ =gUnknown_202297C + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 2 + cmp r1, r5 + bne _080264F4 + movs r0, 0 + b _0802651A + .align 2, 0 +_080264F0: .4byte gUnknown_202297C +_080264F4: + movs r0, 0xD0 + lsls r0, 1 + cmp r1, r0 + bne _08026500 + bl sub_8026524 +_08026500: + ldrh r0, [r4] + adds r0, 0x8 + strh r0, [r4] + lsls r0, 16 + ldr r1, _08026520 @ =0x01ff0000 + cmp r0, r1 + bls _08026510 + strh r5, [r4] +_08026510: + ldrh r1, [r4] + eors r1, r5 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_0802651A: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08026520: .4byte 0x01ff0000 + thumb_func_end sub_80264D0 + + thumb_func_start sub_8026524 +sub_8026524: @ 8026524 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r6, _080265F8 @ =gUnknown_2023FE8 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080265FC @ =gUnknown_2024284 + adds r0, r4 + movs r1, 0x38 + bl sub_803FBE8 + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + bl sub_803F720 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + ldr r6, _08026600 @ =gUnknown_2021D18 + adds r1, r6, 0 + bl sub_81202E0 + str r6, [sp] + mov r1, sp + movs r4, 0 + movs r0, 0xD + strb r0, [r1, 0x4] + mov r0, sp + strb r4, [r0, 0x5] + movs r5, 0x20 + strb r5, [r0, 0x6] + strb r4, [r0, 0x7] + strb r5, [r0, 0x8] + strb r4, [r0, 0x9] + strb r4, [r0, 0xA] + strb r4, [r0, 0xB] + mov r3, sp + ldrb r2, [r3, 0xC] + movs r1, 0x10 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + mov r2, sp + movs r0, 0x10 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + mov r0, sp + strb r5, [r0, 0xD] + movs r1, 0xFF + movs r2, 0 + bl sub_8002CF4 + movs r0, 0xF9 + strb r0, [r6] + adds r6, 0x1 + movs r0, 0x5 + strb r0, [r6] + adds r6, 0x1 + strb r4, [r6] + adds r6, 0x1 + adds r4, r6, 0 + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl sub_8008E78 + adds r6, r0, 0 + movs r1, 0 + movs r2, 0x5 + bl sub_8009204 + adds r6, r4, 0x4 + cmp r7, 0xFF + beq _08026624 + cmp r7, 0 + bne _08026604 + adds r0, r6, 0 + movs r1, 0 + movs r2, 0xC + bl sub_80092F4 + adds r6, r0, 0 + movs r1, 0x1 + movs r2, 0xD + bl sub_80092F4 + adds r6, r0, 0 + movs r0, 0xB5 + b _0802661C + .align 2, 0 +_080265F8: .4byte gUnknown_2023FE8 +_080265FC: .4byte gUnknown_2024284 +_08026600: .4byte gUnknown_2021D18 +_08026604: + adds r0, r6, 0 + movs r1, 0 + movs r2, 0xE + bl sub_80092F4 + adds r6, r0, 0 + movs r1, 0x1 + movs r2, 0xF + bl sub_80092F4 + adds r6, r0, 0 + movs r0, 0xB6 +_0802661C: + strb r0, [r6] + adds r6, 0x1 + movs r0, 0xFF + strb r0, [r6] +_08026624: + mov r0, sp + movs r1, 0xA + strb r1, [r0, 0x7] + strb r1, [r0, 0x9] + movs r1, 0xFF + movs r2, 0 + bl sub_8002CF4 + movs r0, 0xD + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8026524 + + thumb_func_start sub_8026648 +sub_8026648: @ 8026648 + push {lr} + ldr r0, _0802665C @ =gUnknown_202297C + ldrh r1, [r0] + movs r3, 0xD0 + lsls r3, 1 + adds r2, r0, 0 + cmp r1, r3 + bne _08026660 + movs r0, 0 + b _08026684 + .align 2, 0 +_0802665C: .4byte gUnknown_202297C +_08026660: + ldrh r0, [r2] + adds r1, r0, 0 + subs r1, 0x10 + ldr r0, _08026670 @ =0x0000019f + cmp r1, r0 + bgt _08026674 + strh r3, [r2] + b _08026676 + .align 2, 0 +_08026670: .4byte 0x0000019f +_08026674: + strh r1, [r2] +_08026676: + ldrh r1, [r2] + movs r0, 0xD0 + lsls r0, 1 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_08026684: + pop {r1} + bx r1 + thumb_func_end sub_8026648 + + thumb_func_start sub_8026688 +sub_8026688: @ 8026688 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + ldr r0, _08026730 @ =gUnknown_2023FE8 + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + movs r6, 0x64 + muls r0, r6 + ldr r5, _08026734 @ =gUnknown_2024284 + adds r0, r5 + movs r1, 0xB + bl sub_803FBE8 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl sub_803FBE8 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_8097054 + str r0, [sp] + ldr r5, _08026738 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r5 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _0802673C @ =0x0000ffff + ands r0, r1 + ldr r1, _08026740 @ =0xd75a0000 + orrs r0, r1 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_80971CC + str r0, [sp, 0x8] + add r4, sp, 0x8 + ldr r0, [r4, 0x4] + ands r0, r5 + ldr r1, _08026744 @ =0x0000d75a + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + bl sub_80086DC + adds r0, r4, 0 + bl sub_8008928 + ldr r0, _08026748 @ =gUnknown_82507C8 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0xA + movs r3, 0 + bl sub_8006F8C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0802674C @ =gUnknown_202063C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _08026750 @ =gUnknown_202297C + ldrh r0, [r0] + strh r0, [r1, 0x30] + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08026730: .4byte gUnknown_2023FE8 +_08026734: .4byte gUnknown_2024284 +_08026738: .4byte 0xffff0000 +_0802673C: .4byte 0x0000ffff +_08026740: .4byte 0xd75a0000 +_08026744: .4byte 0x0000d75a +_08026748: .4byte gUnknown_82507C8 +_0802674C: .4byte gUnknown_202063C +_08026750: .4byte gUnknown_202297C + thumb_func_end sub_8026688 + + thumb_func_start sub_8026754 +sub_8026754: @ 8026754 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _08026770 @ =gUnknown_202297C + ldrh r1, [r2, 0x30] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x24] + lsls r1, 16 + cmp r1, 0 + beq _08026774 + movs r0, 0x1 + strh r0, [r2, 0x2E] + b _08026790 + .align 2, 0 +_08026770: .4byte gUnknown_202297C +_08026774: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08026790 + adds r0, r2, 0 + bl sub_8007280 + ldr r4, _08026798 @ =0x0000d75a + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 +_08026790: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08026798: .4byte 0x0000d75a + thumb_func_end sub_8026754 + + thumb_func_start sub_802679C +sub_802679C: @ 802679C + push {lr} + ldr r3, _080267C4 @ =gUnknown_2023BCE + ldr r0, _080267C8 @ =gUnknown_2023FE8 + ldr r0, [r0] + ldrh r1, [r3] + ldrb r2, [r0, 0x10] + cmp r1, r2 + beq _080267BE + ldr r0, _080267CC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080267D0 + ldrh r0, [r3, 0x4] + cmp r0, r2 + bne _080267D0 +_080267BE: + movs r0, 0x1 + b _080267D2 + .align 2, 0 +_080267C4: .4byte gUnknown_2023BCE +_080267C8: .4byte gUnknown_2023FE8 +_080267CC: .4byte gUnknown_2022B4C +_080267D0: + movs r0, 0 +_080267D2: + pop {r1} + bx r1 + thumb_func_end sub_802679C + + thumb_func_start sub_80267D8 +sub_80267D8: @ 80267D8 + push {lr} + bl sub_80173D0 + ldr r1, _080267EC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080267EC: .4byte gUnknown_2023D74 + thumb_func_end sub_80267D8 + + thumb_func_start sub_80267F0 +sub_80267F0: @ 80267F0 + push {lr} + movs r0, 0 + bl sub_80751E8 + ldr r1, _08026808 @ =gUnknown_2023D6B + strb r0, [r1] + ldr r1, _0802680C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08026808: .4byte gUnknown_2023D6B +_0802680C: .4byte gUnknown_2023D74 + thumb_func_end sub_80267F0 + + thumb_func_start sub_8026810 +sub_8026810: @ 8026810 + push {r4,r5,lr} + ldr r5, _0802683C @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _08026840 @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl sub_800EB04 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802683C: .4byte gUnknown_2023D74 +_08026840: .4byte gUnknown_2023BC4 + thumb_func_end sub_8026810 + + thumb_func_start sub_8026844 +sub_8026844: @ 8026844 + push {r4,lr} + ldr r4, _0802686C @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _08026870 @ =gUnknown_2023BC4 + strb r0, [r1] + ldrb r0, [r1] + ldr r1, _08026874 @ =gUnknown_2023D6A + ldrb r1, [r1] + bl sub_80C71D0 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802686C: .4byte gUnknown_2023D74 +_08026870: .4byte gUnknown_2023BC4 +_08026874: .4byte gUnknown_2023D6A + thumb_func_end sub_8026844 + + thumb_func_start sub_8026878 +sub_8026878: @ 8026878 + ldr r2, _08026898 @ =gUnknown_2022AC8 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x2 + strb r0, [r2, 0x1] + ldr r0, _0802689C @ =gUnknown_2024022 + ldrh r1, [r0] + strb r1, [r2, 0x2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r2, 0x3] + movs r0, 0xFF + strb r0, [r2, 0x4] + bx lr + .align 2, 0 +_08026898: .4byte gUnknown_2022AC8 +_0802689C: .4byte gUnknown_2024022 + thumb_func_end sub_8026878 + + thumb_func_start sub_80268A0 +sub_80268A0: @ 80268A0 + push {lr} + bl sub_8026878 + ldr r1, _080268B4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080268B4: .4byte gUnknown_2023D74 + thumb_func_end sub_80268A0 + + thumb_func_start sub_80268B8 +sub_80268B8: @ 80268B8 + push {lr} + ldr r0, _080268E4 @ =gUnknown_2023D6D + ldrb r0, [r0] + bl sub_8016748 + lsls r0, 24 + cmp r0, 0 + beq _080268EC + ldr r3, _080268E8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080268F4 + .align 2, 0 +_080268E4: .4byte gUnknown_2023D6D +_080268E8: .4byte gUnknown_2023D74 +_080268EC: + ldr r1, _080268F8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080268F4: + pop {r0} + bx r0 + .align 2, 0 +_080268F8: .4byte gUnknown_2023D74 + thumb_func_end sub_80268B8 + + thumb_func_start sub_80268FC +sub_80268FC: @ 80268FC + push {r4-r6,lr} + ldr r0, _0802694C @ =gUnknown_2022B4C + ldr r4, [r0] + movs r6, 0x1 + ands r4, r6 + cmp r4, 0 + bne _08026992 + ldr r0, _08026950 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _08026954 @ =gUnknown_2023BC4 + strb r0, [r1] + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08026958 @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r5, [r1, 0x28] + movs r0, 0x64 + muls r0, r5 + ldrh r1, [r1, 0x2C] + bl __divsi3 + cmp r0, 0 + bne _0802693A + movs r0, 0x1 +_0802693A: + cmp r0, 0x45 + bgt _08026942 + cmp r5, 0 + bne _08026960 +_08026942: + ldr r0, _0802695C @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xAD + strb r4, [r0] + b _08026992 + .align 2, 0 +_0802694C: .4byte gUnknown_2022B4C +_08026950: .4byte gUnknown_2023D74 +_08026954: .4byte gUnknown_2023BC4 +_08026958: .4byte gUnknown_2023BE4 +_0802695C: .4byte gUnknown_2023FE8 +_08026960: + cmp r0, 0x27 + ble _08026974 + ldr r0, _08026970 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xAD + strb r6, [r0] + b _08026992 + .align 2, 0 +_08026970: .4byte gUnknown_2023FE8 +_08026974: + cmp r0, 0x9 + ble _08026988 + ldr r0, _08026984 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xAD + movs r1, 0x2 + b _08026990 + .align 2, 0 +_08026984: .4byte gUnknown_2023FE8 +_08026988: + ldr r0, _080269A0 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xAD + movs r1, 0x3 +_08026990: + strb r1, [r0] +_08026992: + ldr r1, _080269A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080269A0: .4byte gUnknown_2023FE8 +_080269A4: .4byte gUnknown_2023D74 + thumb_func_end sub_80268FC + + thumb_func_start sub_80269A8 +sub_80269A8: @ 80269A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08026A0C @ =gUnknown_2022B4C + ldr r7, [r0] + movs r0, 0x1 + mov r8, r0 + ands r7, r0 + cmp r7, 0 + bne _08026A42 + ldr r0, _08026A10 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + adds r4, r0, 0 + ldr r0, _08026A14 @ =gUnknown_2023BC4 + strb r4, [r0] + movs r0, 0x1 + eors r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80751C4 + lsls r0, 24 + ldr r1, _08026A18 @ =gUnknown_2023FE8 + ldr r6, [r1] + lsrs r0, 23 + adds r0, r6 + adds r0, 0xA8 + ldrb r5, [r0] + ldr r1, _08026A1C @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r4, [r0, 0x28] + subs r1, r5, r4 + movs r0, 0x64 + muls r0, r1 + adds r1, r5, 0 + bl __divsi3 + adds r1, r0, 0 + cmp r4, r5 + bcc _08026A20 + adds r0, r6, 0 + adds r0, 0xAD + strb r7, [r0] + b _08026A42 + .align 2, 0 +_08026A0C: .4byte gUnknown_2022B4C +_08026A10: .4byte gUnknown_2023D74 +_08026A14: .4byte gUnknown_2023BC4 +_08026A18: .4byte gUnknown_2023FE8 +_08026A1C: .4byte gUnknown_2023BE4 +_08026A20: + cmp r0, 0x1D + bgt _08026A2E + adds r0, r6, 0 + adds r0, 0xAD + mov r1, r8 + strb r1, [r0] + b _08026A42 +_08026A2E: + cmp r1, 0x45 + bgt _08026A3A + adds r1, r6, 0 + adds r1, 0xAD + movs r0, 0x2 + b _08026A40 +_08026A3A: + adds r1, r6, 0 + adds r1, 0xAD + movs r0, 0x3 +_08026A40: + strb r0, [r1] +_08026A42: + ldr r1, _08026A54 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08026A54: .4byte gUnknown_2023D74 + thumb_func_end sub_80269A8 + + thumb_func_start sub_8026A58 +sub_8026A58: @ 8026A58 + push {lr} + sub sp, 0x4 + ldr r2, _08026A98 @ =gUnknown_2024004 + ldr r1, _08026A9C @ =gUnknown_2023D6B + ldrb r0, [r1] + strb r0, [r2] + ldr r2, _08026AA0 @ =gUnknown_2023BCE + ldrb r0, [r1] + lsls r0, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r1, _08026AA4 @ =gUnknown_202402C + adds r0, r1 + ldr r1, _08026AA8 @ =gUnknown_2023D68 + ldrh r1, [r1] + lsls r2, 24 + lsrs r2, 24 + movs r3, 0x1 + str r3, [sp] + movs r3, 0 + bl sub_80413E4 + ldr r1, _08026AAC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08026A98: .4byte gUnknown_2024004 +_08026A9C: .4byte gUnknown_2023D6B +_08026AA0: .4byte gUnknown_2023BCE +_08026AA4: .4byte gUnknown_202402C +_08026AA8: .4byte gUnknown_2023D68 +_08026AAC: .4byte gUnknown_2023D74 + thumb_func_end sub_8026A58 + + thumb_func_start sub_8026AB0 +sub_8026AB0: @ 8026AB0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _08026ADC @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _08026AE0 @ =gUnknown_2023BC4 + strb r0, [r1] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0xC + bls _08026AD2 + b _08026F4E +_08026AD2: + lsls r0, 2 + ldr r1, _08026AE4 @ =_08026AE8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08026ADC: .4byte gUnknown_2023D74 +_08026AE0: .4byte gUnknown_2023BC4 +_08026AE4: .4byte _08026AE8 + .align 2, 0 +_08026AE8: + .4byte _08026B1C + .4byte _08026B2C + .4byte _08026B8C + .4byte _08026B9C + .4byte _08026BB4 + .4byte _08026BF0 + .4byte _08026C28 + .4byte _08026CB4 + .4byte _08026CF4 + .4byte _08026D50 + .4byte _08026D64 + .4byte _08026DA0 + .4byte _08026F44 +_08026B1C: + ldr r0, _08026B28 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80172E8 + b _08026F4E + .align 2, 0 +_08026B28: .4byte gUnknown_2023BC4 +_08026B2C: + ldr r1, _08026B68 @ =gUnknown_2023D6B + ldr r4, _08026B6C @ =gUnknown_2023D6C + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r1] + bl sub_80751C4 + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08026B70 @ =gUnknown_2023DE4 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r2 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _08026B78 + ldr r1, _08026B74 @ =gUnknown_2023BE4 + ldrb r2, [r2, 0x9] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08026B78 + strb r2, [r4] + b _08026F4E + .align 2, 0 +_08026B68: .4byte gUnknown_2023D6B +_08026B6C: .4byte gUnknown_2023D6C +_08026B70: .4byte gUnknown_2023DE4 +_08026B74: .4byte gUnknown_2023BE4 +_08026B78: + ldr r0, _08026B84 @ =gUnknown_2023D6C + ldr r1, _08026B88 @ =gUnknown_2023BC4 + ldrb r1, [r1] + strb r1, [r0] + b _08026F4E + .align 2, 0 +_08026B84: .4byte gUnknown_2023D6C +_08026B88: .4byte gUnknown_2023BC4 +_08026B8C: + bl sub_8013D54 + ldr r1, _08026B98 @ =gUnknown_2023E82 + strb r0, [r1] + b _08026F4E + .align 2, 0 +_08026B98: .4byte gUnknown_2023E82 +_08026B9C: + ldr r0, _08026BAC @ =gUnknown_2023D4A + ldrh r0, [r0] + movs r1, 0 + bl sub_801D05C + ldr r1, _08026BB0 @ =gUnknown_2023D6C + strb r0, [r1] + b _08026F4E + .align 2, 0 +_08026BAC: .4byte gUnknown_2023D4A +_08026BB0: .4byte gUnknown_2023D6C +_08026BB4: + ldr r2, _08026BD4 @ =gUnknown_2023DD0 + ldr r1, _08026BD8 @ =gUnknown_825E45C + ldr r0, _08026BDC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 28 + ldr r2, [r2] + ands r2, r0 + cmp r2, 0 + beq _08026BE4 + ldr r1, _08026BE0 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1] + b _08026F4E + .align 2, 0 +_08026BD4: .4byte gUnknown_2023DD0 +_08026BD8: .4byte gUnknown_825E45C +_08026BDC: .4byte gUnknown_2023BC4 +_08026BE0: .4byte gUnknown_2023E82 +_08026BE4: + ldr r0, _08026BEC @ =gUnknown_2023E82 + strb r2, [r0] + b _08026F4E + .align 2, 0 +_08026BEC: .4byte gUnknown_2023E82 +_08026BF0: + ldr r4, _08026C20 @ =gUnknown_2023ECC + ldr r3, _08026C24 @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _08026F4E + .align 2, 0 +_08026C20: .4byte gUnknown_2023ECC +_08026C24: .4byte gUnknown_2023BC4 +_08026C28: + ldr r4, _08026C4C @ =gUnknown_2023BCE + ldr r1, _08026C50 @ =gUnknown_2023FE8 + ldr r0, [r1] + ldrh r3, [r4] + ldrb r2, [r0, 0x10] + adds r5, r1, 0 + cmp r3, r2 + beq _08026C44 + ldrh r0, [r4, 0x4] + cmp r0, r2 + beq _08026C40 + b _08026F4E +_08026C40: + cmp r3, r0 + bne _08026C58 +_08026C44: + ldr r1, _08026C54 @ =gUnknown_2023BC4 + movs r0, 0 + b _08026C5C + .align 2, 0 +_08026C4C: .4byte gUnknown_2023BCE +_08026C50: .4byte gUnknown_2023FE8 +_08026C54: .4byte gUnknown_2023BC4 +_08026C58: + ldr r1, _08026CAC @ =gUnknown_2023BC4 + movs r0, 0x2 +_08026C5C: + strb r0, [r1] + mov r8, r1 + mov r0, r8 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, 0xC8 + ldr r1, [r5] + adds r3, r1, r0 + movs r7, 0 + ldr r1, _08026CB0 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + ldrh r2, [r3] + cmp r0, r2 + beq _08026C9E + mov r5, r8 + movs r4, 0x58 + adds r2, r1, 0 +_08026C86: + adds r7, 0x1 + cmp r7, 0x3 + bgt _08026C9E + lsls r1, r7, 1 + ldrb r0, [r5] + muls r0, r4 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + ldrh r1, [r3] + cmp r0, r1 + bne _08026C86 +_08026C9E: + cmp r7, 0x4 + beq _08026CA4 + b _08026F4E +_08026CA4: + movs r0, 0 + strh r0, [r3] + b _08026F4E + .align 2, 0 +_08026CAC: .4byte gUnknown_2023BC4 +_08026CB0: .4byte gUnknown_2023BE4 +_08026CB4: + ldr r0, _08026CE4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0xB + ands r0, r1 + cmp r0, 0x8 + beq _08026CC2 + b _08026F4E +_08026CC2: + ldr r1, _08026CE8 @ =gUnknown_2023BE4 + ldrh r0, [r1, 0x28] + cmp r0, 0 + bne _08026CCC + b _08026F4E +_08026CCC: + adds r0, r1, 0 + adds r0, 0x80 + ldrh r0, [r0] + cmp r0, 0 + bne _08026CD8 + b _08026F4E +_08026CD8: + ldr r0, _08026CEC @ =gUnknown_2023DD0 + ldr r1, [r0] + ldr r2, _08026CF0 @ =0xffbfffff + ands r1, r2 + str r1, [r0] + b _08026F4E + .align 2, 0 +_08026CE4: .4byte gUnknown_2022B4C +_08026CE8: .4byte gUnknown_2023BE4 +_08026CEC: .4byte gUnknown_2023DD0 +_08026CF0: .4byte 0xffbfffff +_08026CF4: + movs r7, 0 + ldr r2, _08026D3C @ =gUnknown_2023E82 + strb r7, [r2, 0x5] + ldr r1, _08026D40 @ =gUnknown_2023BC4 + movs r0, 0x1 + strb r0, [r1] + mov r8, r1 + ldr r0, _08026D44 @ =gUnknown_2023BCC + mov r4, r8 + ldrb r5, [r0] + ldr r6, _08026D48 @ =gUnknown_2023BE4 + ldr r3, _08026D4C @ =gUnknown_825E45C +_08026D0C: + ldrb r0, [r4] + cmp r0, r5 + bcs _08026D2A + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08026D2A + ldr r0, [r3] + ldrb r1, [r2, 0x5] + orrs r0, r1 + strb r0, [r2, 0x5] +_08026D2A: + adds r3, 0x4 + ldrb r0, [r4] + adds r0, 0x2 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08026D0C + b _08026F4E + .align 2, 0 +_08026D3C: .4byte gUnknown_2023E82 +_08026D40: .4byte gUnknown_2023BC4 +_08026D44: .4byte gUnknown_2023BCC +_08026D48: .4byte gUnknown_2023BE4 +_08026D4C: .4byte gUnknown_825E45C +_08026D50: + ldr r4, _08026D5C @ =gUnknown_2023BC4 + movs r0, 0x1 + strb r0, [r4] + ldr r0, _08026D60 @ =gUnknown_2023BE4 + adds r0, 0x58 + b _08026D7C + .align 2, 0 +_08026D5C: .4byte gUnknown_2023BC4 +_08026D60: .4byte gUnknown_2023BE4 +_08026D64: + ldr r0, _08026D94 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r0, 0x3 + bhi _08026D6E + b _08026F4E +_08026D6E: + ldr r4, _08026D98 @ =gUnknown_2023BC4 + movs r0, 0x3 + strb r0, [r4] + ldr r0, _08026D9C @ =gUnknown_2023BE4 + movs r1, 0x84 + lsls r1, 1 + adds r0, r1 +_08026D7C: + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08026D84 + b _08026F4E +_08026D84: + movs r0, 0 + movs r1, 0 + bl sub_800E0B4 + ldrb r0, [r4] + bl sub_8017248 + b _08026F4E + .align 2, 0 +_08026D94: .4byte gUnknown_2023BCC +_08026D98: .4byte gUnknown_2023BC4 +_08026D9C: .4byte gUnknown_2023BE4 +_08026DA0: + ldr r0, _08026F28 @ =gUnknown_2023E82 + movs r1, 0 + strb r1, [r0, 0x5] + mov r8, r1 + movs r7, 0 + ldr r0, _08026F2C @ =gUnknown_2023BCC + mov r12, r0 + ldrb r2, [r0] + cmp r8, r2 + bge _08026DEE + ldr r4, _08026F30 @ =gUnknown_2023BE4 + adds r3, r4, 0 + adds r3, 0x50 + adds r6, r4, 0 + adds r6, 0x20 + movs r5, 0 +_08026DC0: + ldrb r0, [r6] + cmp r0, 0x2B + beq _08026DDE + adds r2, r4, 0 + adds r2, 0x4C + adds r2, r5, r2 + ldr r0, [r2] + movs r1, 0x8 + negs r1, r1 + ands r0, r1 + str r0, [r2] + ldr r0, [r3] + ldr r1, _08026F34 @ =0xf7ffffff + ands r0, r1 + str r0, [r3] +_08026DDE: + adds r3, 0x58 + adds r6, 0x58 + adds r5, 0x58 + adds r7, 0x1 + mov r0, r12 + ldrb r0, [r0] + cmp r7, r0 + blt _08026DC0 +_08026DEE: + movs r7, 0 + movs r1, 0xCE + lsls r1, 1 + mov r9, r1 +_08026DF6: + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _08026F38 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0x37 + bl sub_803FBE8 + adds r1, r0, 0 + str r1, [sp, 0x4] + cmp r5, 0 + beq _08026E4E + cmp r5, r9 + beq _08026E4E + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08026E4E + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8040D38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2B + beq _08026E4E + movs r0, 0x1 + lsls r0, r7 + mov r2, r8 + orrs r2, r0 + mov r8, r2 +_08026E4E: + adds r7, 0x1 + cmp r7, 0x5 + ble _08026DF6 + mov r0, r8 + cmp r0, 0 + beq _08026E88 + movs r0, 0 + bl sub_80751E8 + ldr r4, _08026F3C @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + str r0, [sp, 0x4] + mov r1, r8 + lsls r2, r1, 24 + lsrs r2, 24 + add r0, sp, 0x4 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _08026F28 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] +_08026E88: + movs r1, 0 + mov r8, r1 + movs r7, 0 + movs r2, 0xCE + lsls r2, 1 + mov r9, r2 +_08026E94: + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _08026F40 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0x37 + bl sub_803FBE8 + adds r1, r0, 0 + str r1, [sp, 0x4] + cmp r5, 0 + beq _08026EEC + cmp r5, r9 + beq _08026EEC + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08026EEC + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8040D38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2B + beq _08026EEC + movs r0, 0x1 + lsls r0, r7 + mov r1, r8 + orrs r1, r0 + mov r8, r1 +_08026EEC: + adds r7, 0x1 + cmp r7, 0x5 + ble _08026E94 + mov r2, r8 + cmp r2, 0 + beq _08026F4E + movs r0, 0x1 + bl sub_80751E8 + ldr r4, _08026F3C @ =gUnknown_2023BC4 + strb r0, [r4] + movs r0, 0 + str r0, [sp, 0x4] + mov r0, r8 + lsls r2, r0, 24 + lsrs r2, 24 + add r1, sp, 0x4 + str r1, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _08026F28 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08026F4E + .align 2, 0 +_08026F28: .4byte gUnknown_2023E82 +_08026F2C: .4byte gUnknown_2023BCC +_08026F30: .4byte gUnknown_2023BE4 +_08026F34: .4byte 0xf7ffffff +_08026F38: .4byte gUnknown_2024284 +_08026F3C: .4byte gUnknown_2023BC4 +_08026F40: .4byte gUnknown_202402C +_08026F44: + bl sub_8071C9C + lsls r0, 24 + cmp r0, 0 + beq _08026F56 +_08026F4E: + ldr r1, _08026F64 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] +_08026F56: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08026F64: .4byte gUnknown_2023D74 + thumb_func_end sub_8026AB0 + + thumb_func_start sub_8026F68 +sub_8026F68: @ 8026F68 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0x1 + ldr r2, _08027034 @ =gUnknown_2023DB0 + ldr r1, _08027038 @ =gUnknown_2023D6B + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + mov r8, r1 + ldr r7, _0802703C @ =gUnknown_2023E0C + cmp r0, 0xB6 + beq _08026F98 + cmp r0, 0xC5 + beq _08026F98 + cmp r0, 0xCB + beq _08026F98 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + strb r1, [r0, 0x8] +_08026F98: + ldr r0, _08027040 @ =gUnknown_2023BE2 + ldrb r1, [r0] + ldr r0, _08027044 @ =gUnknown_2023BCC + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _08026FA8 + movs r6, 0 +_08026FA8: + ldr r2, _08027048 @ =gUnknown_82507E0 + mov r5, r8 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r4, [r0, 0x8] + lsls r4, 1 + adds r4, r2 + bl sub_8044EC8 + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bcc _0802705C + cmp r6, 0 + beq _0802705C + ldr r4, _0802704C @ =gUnknown_8250C04 + ldr r3, _08027050 @ =gUnknown_2023D4A + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x6F + bne _08026FF8 + ldr r0, _08027054 @ =gUnknown_2023E8C + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _08027058 @ =gUnknown_2023E82 + movs r0, 0 + strb r0, [r1, 0x5] +_08026FF8: + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x74 + bne _0802701E + ldr r0, _08027054 @ =gUnknown_2023E8C + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + ldr r1, _08027058 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] +_0802701E: + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] + b _0802707E + .align 2, 0 +_08027034: .4byte gUnknown_2023DB0 +_08027038: .4byte gUnknown_2023D6B +_0802703C: .4byte gUnknown_2023E0C +_08027040: .4byte gUnknown_2023BE2 +_08027044: .4byte gUnknown_2023BCC +_08027048: .4byte gUnknown_82507E0 +_0802704C: .4byte gUnknown_8250C04 +_08027050: .4byte gUnknown_2023D4A +_08027054: .4byte gUnknown_2023E8C +_08027058: .4byte gUnknown_2023E82 +_0802705C: + ldr r2, _08027090 @ =gUnknown_2023E0C + ldr r0, _08027094 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x8] + ldr r1, _08027098 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + ldr r2, _0802709C @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_0802707E: + ldr r1, _080270A0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027090: .4byte gUnknown_2023E0C +_08027094: .4byte gUnknown_2023D6B +_08027098: .4byte gUnknown_2023E82 +_0802709C: .4byte gUnknown_2023DCC +_080270A0: .4byte gUnknown_2023D74 + thumb_func_end sub_8026F68 + + thumb_func_start sub_80270A4 +sub_80270A4: @ 80270A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08027160 @ =gUnknown_2023BC8 + ldr r2, [r0] + cmp r2, 0 + bne _080271A8 + ldr r1, _08027164 @ =gUnknown_2023D6C + strb r2, [r1] + ldr r0, _08027168 @ =gUnknown_2023BCC + ldrb r3, [r0] + adds r5, r1, 0 + mov r8, r0 + ldr r6, _0802716C @ =gUnknown_2023BE4 + cmp r2, r3 + bcs _080270F0 + adds r0, r6, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080270F0 + adds r2, r3, 0 + adds r4, r6, 0 + movs r3, 0x58 +_080270D4: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + bcs _080270F0 + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080270D4 +_080270F0: + ldrb r0, [r5] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bne _0802718C + ldr r4, _08027170 @ =gUnknown_2023BC4 + ldr r7, _08027174 @ =gUnknown_2023D6B + ldrb r0, [r7] + strb r0, [r4] + ldr r2, _08027178 @ =gUnknown_2023D50 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, _0802717C @ =0x00007fff + movs r0, 0 + bl sub_800E5EC + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _08027180 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + movs r0, 0 + strb r0, [r5] + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0 + beq _080271A8 + adds r3, r5, 0 + ldrb r5, [r7] + ldr r7, _08027184 @ =gUnknown_825E45C + adds r4, r0, 0 + ldr r6, _08027188 @ =gUnknown_2023D70 +_0802713C: + ldrb r2, [r3] + cmp r2, r5 + beq _08027152 + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r7 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _080271A8 +_08027152: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _0802713C + b _080271A8 + .align 2, 0 +_08027160: .4byte gUnknown_2023BC8 +_08027164: .4byte gUnknown_2023D6C +_08027168: .4byte gUnknown_2023BCC +_0802716C: .4byte gUnknown_2023BE4 +_08027170: .4byte gUnknown_2023BC4 +_08027174: .4byte gUnknown_2023D6B +_08027178: .4byte gUnknown_2023D50 +_0802717C: .4byte 0x00007fff +_08027180: .4byte gUnknown_2023D74 +_08027184: .4byte gUnknown_825E45C +_08027188: .4byte gUnknown_2023D70 +_0802718C: + ldr r1, _080271B4 @ =gUnknown_2023D6A + movs r0, 0x6 + strb r0, [r1] + ldrb r0, [r5] + movs r1, 0x58 + muls r1, r0 + adds r1, r6 + adds r1, 0x20 + ldrb r1, [r1] + bl sub_80C71D0 + ldr r1, _080271B8 @ =gUnknown_2023D74 + ldr r0, _080271BC @ =gUnknown_81D93AF + str r0, [r1] +_080271A8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080271B4: .4byte gUnknown_2023D6A +_080271B8: .4byte gUnknown_2023D74 +_080271BC: .4byte gUnknown_81D93AF + thumb_func_end sub_80270A4 + + thumb_func_start sub_80271C0 +sub_80271C0: @ 80271C0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0802720C @ =gUnknown_2023BC8 + ldr r3, [r0] + cmp r3, 0 + bne _08027204 + ldr r4, _08027210 @ =gUnknown_2023BC4 + ldr r0, _08027214 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _08027218 @ =gUnknown_2023BE4 + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r1 + strh r3, [r0, 0x28] + ldrb r0, [r4] + muls r0, r2 + adds r1, 0x28 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _0802721C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08027204: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802720C: .4byte gUnknown_2023BC8 +_08027210: .4byte gUnknown_2023BC4 +_08027214: .4byte gUnknown_2023D6B +_08027218: .4byte gUnknown_2023BE4 +_0802721C: .4byte gUnknown_2023D74 + thumb_func_end sub_80271C0 + + thumb_func_start sub_8027220 +sub_8027220: @ 8027220 + push {r4-r7,lr} + ldr r3, _08027298 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r4, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r0, _0802729C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + adds r7, r3, 0 + cmp r0, 0 + beq _080272B8 + ldr r0, _080272A0 @ =gUnknown_2023D6C + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r2, _080272A4 @ =gUnknown_2023D6B + lsls r1, 24 + lsrs r1, 24 + adds r3, r0, 0 + ldr r6, _080272A8 @ =gUnknown_2023D70 + ldr r5, _080272AC @ =gUnknown_825E45C + ldr r0, _080272B0 @ =gUnknown_2023BCC + mov r12, r0 + ldrb r0, [r2] + cmp r1, r0 + bne _08027276 +_08027266: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2] + cmp r0, r1 + beq _08027266 +_08027276: + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _08027266 + ldrb r0, [r3] + mov r2, r12 + ldrb r2, [r2] + cmp r0, r2 + bcc _080272B4 + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _080272BC + .align 2, 0 +_08027298: .4byte gUnknown_2023D74 +_0802729C: .4byte gUnknown_2022B4C +_080272A0: .4byte gUnknown_2023D6C +_080272A4: .4byte gUnknown_2023D6B +_080272A8: .4byte gUnknown_2023D70 +_080272AC: .4byte gUnknown_825E45C +_080272B0: .4byte gUnknown_2023BCC +_080272B4: + str r4, [r7] + b _080272BC +_080272B8: + adds r0, r2, 0x5 + str r0, [r3] +_080272BC: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8027220 + + thumb_func_start sub_80272C4 +sub_80272C4: @ 80272C4 + push {r4-r6,lr} + ldr r4, _08027320 @ =gUnknown_2023D74 + ldr r1, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldrb r0, [r1, 0x5] + ldr r3, _08027324 @ =gUnknown_2023D6C + cmp r0, 0x1 + bne _080272EC + ldr r0, _08027328 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r3] +_080272EC: + ldr r1, _0802732C @ =gUnknown_2023D50 + ldr r6, _08027330 @ =gUnknown_2023BE4 + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _08027306 + movs r0, 0x1 + str r0, [r1] +_08027306: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r3] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _08027334 + str r2, [r4] + b _0802733A + .align 2, 0 +_08027320: .4byte gUnknown_2023D74 +_08027324: .4byte gUnknown_2023D6C +_08027328: .4byte gUnknown_2023D6B +_0802732C: .4byte gUnknown_2023D50 +_08027330: .4byte gUnknown_2023BE4 +_08027334: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0802733A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80272C4 + + thumb_func_start sub_8027340 +sub_8027340: @ 8027340 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r2, _080273E0 @ =gUnknown_2023BCC + ldr r0, _080273E4 @ =gUnknown_2023FE8 + mov r10, r0 + movs r1, 0 + add r0, sp, 0x4 +_08027356: + strh r1, [r0] + subs r0, 0x2 + cmp r0, sp + bge _08027356 + movs r1, 0 + mov r8, r1 + movs r5, 0 + ldrb r1, [r2] + cmp r5, r1 + bge _080273AC + ldr r0, _080273E8 @ =gUnknown_2023D6B + ldrb r6, [r0] + ldr r2, _080273EC @ =0x0000ffff + mov r9, r2 + lsls r4, r6, 3 + mov r2, sp + ldr r0, _080273E4 @ =gUnknown_2023FE8 + mov r12, r0 + adds r7, r1, 0 +_0802737C: + cmp r5, r6 + beq _080273A4 + mov r1, r12 + ldr r0, [r1] + adds r0, r4, r0 + adds r1, r0, 0 + adds r1, 0xE0 + ldrb r3, [r1] + adds r0, 0xE1 + ldrb r0, [r0] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + beq _080273A4 + cmp r3, r9 + beq _080273A4 + strh r3, [r2] + adds r2, 0x2 + movs r0, 0x1 + add r8, r0 +_080273A4: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, r7 + blt _0802737C +_080273AC: + ldr r1, _080273E8 @ =gUnknown_2023D6B + ldrb r0, [r1] + mov r2, r10 + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r1, r0, 0 + adds r1, 0x98 + ldrb r3, [r1] + adds r0, 0x99 + ldrb r0, [r0] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + beq _080273FC + ldr r0, _080273EC @ =0x0000ffff + cmp r3, r0 + beq _080273FC + ldr r2, _080273F0 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _080273F4 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _080273F8 @ =gUnknown_2023D4A + strh r3, [r4] + b _08027426 + .align 2, 0 +_080273E0: .4byte gUnknown_2023BCC +_080273E4: .4byte gUnknown_2023FE8 +_080273E8: .4byte gUnknown_2023D6B +_080273EC: .4byte 0x0000ffff +_080273F0: .4byte gUnknown_2023DD0 +_080273F4: .4byte 0xfffffbff +_080273F8: .4byte gUnknown_2023D4A +_080273FC: + mov r0, r8 + cmp r0, 0 + beq _0802746C + ldr r2, _08027450 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _08027454 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + bl __modsi3 + adds r5, r0, 0 + ldr r4, _08027458 @ =gUnknown_2023D4A + lsls r0, r5, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4] +_08027426: + ldrh r0, [r4] + movs r1, 0 + bl sub_801D05C + ldr r1, _0802745C @ =gUnknown_2023D6C + strb r0, [r1] + ldr r5, _08027460 @ =gUnknown_2023D74 + ldr r3, _08027464 @ =gUnknown_81D65A8 + ldr r2, _08027468 @ =gUnknown_8250C04 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r5] + b _0802748A + .align 2, 0 +_08027450: .4byte gUnknown_2023DD0 +_08027454: .4byte 0xfffffbff +_08027458: .4byte gUnknown_2023D4A +_0802745C: .4byte gUnknown_2023D6C +_08027460: .4byte gUnknown_2023D74 +_08027464: .4byte gUnknown_81D65A8 +_08027468: .4byte gUnknown_8250C04 +_0802746C: + ldr r2, _0802749C @ =gUnknown_2023ECC + ldr r0, _080274A0 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r1, _080274A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0802748A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802749C: .4byte gUnknown_2023ECC +_080274A0: .4byte gUnknown_2023D6B +_080274A4: .4byte gUnknown_2023D74 + thumb_func_end sub_8027340 + + thumb_func_start sub_80274A8 +sub_80274A8: @ 80274A8 + push {lr} + ldr r2, _080274C8 @ =gUnknown_2023F1C + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080274D4 + ldr r2, _080274CC @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080274D0 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + b _080274E4 + .align 2, 0 +_080274C8: .4byte gUnknown_2023F1C +_080274CC: .4byte gUnknown_2023DCC +_080274D0: .4byte gUnknown_2023E82 +_080274D4: + movs r0, 0x1 + strh r0, [r2] + ldr r0, _080274F0 @ =gUnknown_2023E82 + strb r1, [r0, 0x5] + ldr r0, _080274F4 @ =gUnknown_2023F20 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_080274E4: + ldr r1, _080274F8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080274F0: .4byte gUnknown_2023E82 +_080274F4: .4byte gUnknown_2023F20 +_080274F8: .4byte gUnknown_2023D74 + thumb_func_end sub_80274A8 + + thumb_func_start sub_80274FC +sub_80274FC: @ 80274FC + push {r4-r6,lr} + ldr r6, _0802752C @ =gUnknown_2023D6B + ldrb r0, [r6] + bl sub_80751D8 + ldr r4, _08027530 @ =gUnknown_2023DDE + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _0802753C + ldr r2, _08027534 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08027538 @ =gUnknown_2023E82 + movs r0, 0 + b _080275B0 + .align 2, 0 +_0802752C: .4byte gUnknown_2023D6B +_08027530: .4byte gUnknown_2023DDE +_08027534: .4byte gUnknown_2023DCC +_08027538: .4byte gUnknown_2023E82 +_0802753C: + ldrb r0, [r6] + bl sub_80751D8 + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r6] + bl sub_80751D8 + ldr r4, _080275A0 @ =gUnknown_2023DE4 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x5 + strb r1, [r0] + ldrb r0, [r6] + bl sub_80751D8 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r6] + strb r1, [r0, 0x1] + ldr r0, _080275A4 @ =gUnknown_2022B4C + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + beq _080275AC + movs r0, 0x1 + bl sub_803F5B4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _080275AC + ldr r0, _080275A8 @ =gUnknown_2023E82 + strb r1, [r0, 0x5] + b _080275B2 + .align 2, 0 +_080275A0: .4byte gUnknown_2023DE4 +_080275A4: .4byte gUnknown_2022B4C +_080275A8: .4byte gUnknown_2023E82 +_080275AC: + ldr r1, _080275C0 @ =gUnknown_2023E82 + movs r0, 0x1 +_080275B0: + strb r0, [r1, 0x5] +_080275B2: + ldr r1, _080275C4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080275C0: .4byte gUnknown_2023E82 +_080275C4: .4byte gUnknown_2023D74 + thumb_func_end sub_80274FC + + thumb_func_start sub_80275C8 +sub_80275C8: @ 80275C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, _08027608 @ =gUnknown_2023DCC + ldrb r5, [r7] + movs r0, 0x29 + ands r0, r5 + cmp r0, 0 + bne _080275FA + ldr r0, _0802760C @ =gUnknown_2023DFC + mov r9, r0 + ldr r1, _08027610 @ =gUnknown_2023D6C + mov r8, r1 + ldrb r4, [r1] + lsls r0, r4, 2 + mov r2, r9 + adds r6, r0, r2 + ldr r2, [r6] + movs r0, 0x4 + mov r12, r0 + adds r3, r2, 0 + ands r3, r0 + cmp r3, 0 + beq _08027618 +_080275FA: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _08027614 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08027668 + .align 2, 0 +_08027608: .4byte gUnknown_2023DCC +_0802760C: .4byte gUnknown_2023DFC +_08027610: .4byte gUnknown_2023D6C +_08027614: .4byte gUnknown_2023E82 +_08027618: + ldr r1, _08027644 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r4 + adds r1, r0, r1 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xC + beq _08027634 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xC + bne _0802764C +_08027634: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _08027648 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08027668 + .align 2, 0 +_08027644: .4byte gUnknown_2023BE4 +_08027648: .4byte gUnknown_2023E82 +_0802764C: + ldr r0, _0802767C @ =gUnknown_2023D6B + ldrb r0, [r0] + orrs r2, r0 + str r2, [r6] + mov r2, r8 + ldrb r1, [r2] + lsls r1, 2 + add r1, r9 + ldr r0, [r1] + mov r2, r12 + orrs r0, r2 + str r0, [r1] + ldr r0, _08027680 @ =gUnknown_2023E82 + strb r3, [r0, 0x5] +_08027668: + ldr r1, _08027684 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802767C: .4byte gUnknown_2023D6B +_08027680: .4byte gUnknown_2023E82 +_08027684: .4byte gUnknown_2023D74 + thumb_func_end sub_80275C8 + + thumb_func_start sub_8027688 +sub_8027688: @ 8027688 + push {r4,lr} + ldr r1, _080276A0 @ =gUnknown_2023D74 + ldr r0, [r1] + ldrb r2, [r0, 0x1] + adds r4, r1, 0 + cmp r2, 0x1 + beq _080276B8 + cmp r2, 0x1 + bgt _080276A4 + cmp r2, 0 + beq _080276AA + b _080276F8 + .align 2, 0 +_080276A0: .4byte gUnknown_2023D74 +_080276A4: + cmp r2, 0x2 + beq _080276F0 + b _080276F8 +_080276AA: + ldr r1, _080276B4 @ =gUnknown_2023D50 + ldr r0, [r1] + negs r0, r0 + b _080276F6 + .align 2, 0 +_080276B4: .4byte gUnknown_2023D50 +_080276B8: + ldr r3, _080276E4 @ =gUnknown_2023D50 + ldr r0, [r3] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _080276CA + str r2, [r3] +_080276CA: + ldr r2, _080276E8 @ =gUnknown_2023BE4 + ldr r0, _080276EC @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r1, r0, 1 + ldr r0, [r3] + cmp r1, r0 + bge _080276F8 + str r1, [r3] + b _080276F8 + .align 2, 0 +_080276E4: .4byte gUnknown_2023D50 +_080276E8: .4byte gUnknown_2023BE4 +_080276EC: .4byte gUnknown_2023D6C +_080276F0: + ldr r1, _08027704 @ =gUnknown_2023D50 + ldr r0, [r1] + lsls r0, 1 +_080276F6: + str r0, [r1] +_080276F8: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08027704: .4byte gUnknown_2023D50 + thumb_func_end sub_8027688 + + thumb_func_start sub_8027708 +sub_8027708: @ 8027708 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _08027760 @ =gUnknown_2023D74 + mov r12, r0 + ldr r1, [r0] + ldrb r6, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r6, r0 + ldr r5, _08027764 @ =gUnknown_2023BC4 + ldr r2, _08027768 @ =gUnknown_2023D6C + ldr r0, _0802776C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r5] + ldr r4, _08027770 @ =gUnknown_2023D50 + ldr r1, _08027774 @ =gUnknown_2023BE4 + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r0, r1 + ldrh r0, [r0, 0x2C] + negs r0, r0 + str r0, [r4] + ldrb r0, [r2] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, r1 + ldrh r3, [r0, 0x28] + adds r7, r5, 0 + adds r5, r2, 0 + adds r2, r1, 0 + ldrh r0, [r0, 0x2C] + cmp r3, r0 + bne _08027778 + mov r0, r12 + str r6, [r0] + b _080277C8 + .align 2, 0 +_08027760: .4byte gUnknown_2023D74 +_08027764: .4byte gUnknown_2023BC4 +_08027768: .4byte gUnknown_2023D6C +_0802776C: .4byte gUnknown_2023D6B +_08027770: .4byte gUnknown_2023D50 +_08027774: .4byte gUnknown_2023BE4 +_08027778: + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0xF8 + ands r1, r0 + cmp r1, 0 + beq _08027794 + ldr r1, _08027790 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08027798 + .align 2, 0 +_08027790: .4byte gUnknown_2023E82 +_08027794: + ldr r0, _080277D0 @ =gUnknown_2023E82 + strb r1, [r0, 0x5] +_08027798: + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, 0x4C + adds r0, r2 + movs r1, 0x3 + str r1, [r0] + ldrb r0, [r7] + muls r0, r3 + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r7] + bl sub_8017248 + ldr r1, _080277D4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080277C8: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080277D0: .4byte gUnknown_2023E82 +_080277D4: .4byte gUnknown_2023D74 + thumb_func_end sub_8027708 + + thumb_func_start sub_80277D8 +sub_80277D8: @ 80277D8 + push {r4,r5,lr} + ldr r5, _0802780C @ =gUnknown_2023D74 + ldr r4, [r5] + ldrb r3, [r4, 0x1] + ldrb r0, [r4, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r4, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r4, 0x4] + lsls r0, 24 + orrs r3, r0 + ldr r2, _08027810 @ =gUnknown_2023E0C + ldr r0, _08027814 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _08027818 + adds r0, r4, 0x5 + str r0, [r5] + b _0802781A + .align 2, 0 +_0802780C: .4byte gUnknown_2023D74 +_08027810: .4byte gUnknown_2023E0C +_08027814: .4byte gUnknown_2023D6B +_08027818: + str r3, [r5] +_0802781A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80277D8 + + thumb_func_start sub_8027820 +sub_8027820: @ 8027820 + ldr r1, _0802782C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802782C: .4byte gUnknown_2023D74 + thumb_func_end sub_8027820 + + thumb_func_start sub_8027830 +sub_8027830: @ 8027830 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _08027888 @ =gUnknown_2023BCC + ldrb r1, [r0] + mov r8, r0 + cmp r2, r1 + bge _080278A4 + ldr r0, _0802788C @ =gUnknown_2023BE4 + mov r12, r0 + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r5, r0, 0 + adds r5, 0x20 + adds r4, r1, 0 + movs r3, 0 + ldr r6, _08027890 @ =gUnknown_2023FC4 + ldr r7, _08027894 @ =gUnknown_2023E82 +_0802785C: + mov r0, r12 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + beq _0802789C + ldrb r0, [r5] + cmp r0, 0x2B + beq _0802789C + movs r3, 0 + strb r2, [r6, 0x17] + ldr r1, _08027898 @ =gUnknown_2023D6C + ldrb r0, [r1] + cmp r0, 0xFF + beq _080278BC + cmp r0, r2 + beq _080278B0 + movs r0, 0x1 + strb r0, [r7, 0x5] + b _080278A4 + .align 2, 0 +_08027888: .4byte gUnknown_2023BCC +_0802788C: .4byte gUnknown_2023BE4 +_08027890: .4byte gUnknown_2023FC4 +_08027894: .4byte gUnknown_2023E82 +_08027898: .4byte gUnknown_2023D6C +_0802789C: + adds r3, 0x58 + adds r2, 0x1 + cmp r2, r4 + blt _0802785C +_080278A4: + mov r1, r8 + ldrb r1, [r1] + cmp r2, r1 + beq _080278C0 + movs r0, 0x1 + b _080278C2 +_080278B0: + ldr r0, _080278B8 @ =gUnknown_2023E82 + strb r3, [r0, 0x5] + b _080278A4 + .align 2, 0 +_080278B8: .4byte gUnknown_2023E82 +_080278BC: + strb r2, [r1] + b _080278A4 +_080278C0: + movs r0, 0 +_080278C2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8027830 + + thumb_func_start sub_80278CC +sub_80278CC: @ 80278CC + push {r4-r6,lr} + ldr r5, _080278F8 @ =gUnknown_2023D74 + ldr r1, [r5] + ldrb r4, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r6, _080278FC @ =gUnknown_2023D6C + ldrb r0, [r6] + bl sub_8027830 + lsls r0, 24 + cmp r0, 0 + beq _08027900 + str r4, [r5] + b _08027942 + .align 2, 0 +_080278F8: .4byte gUnknown_2023D74 +_080278FC: .4byte gUnknown_2023D6C +_08027900: + ldr r1, _08027930 @ =gUnknown_2023BE4 + ldrb r3, [r6] + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + adds r1, r0, 0 + cmp r1, 0xF + beq _08027918 + cmp r1, 0x48 + bne _0802793C +_08027918: + ldr r2, _08027934 @ =gUnknown_2023D6A + strb r0, [r2] + ldr r1, _08027938 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + str r4, [r5] + ldrb r1, [r2] + adds r0, r3, 0 + bl sub_80C71D0 + b _08027942 + .align 2, 0 +_08027930: .4byte gUnknown_2023BE4 +_08027934: .4byte gUnknown_2023D6A +_08027938: .4byte gUnknown_2023E82 +_0802793C: + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] +_08027942: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80278CC + + thumb_func_start sub_8027948 +sub_8027948: @ 8027948 + push {r4,r5,lr} + ldr r5, _08027970 @ =gUnknown_2023E0C + ldr r4, _08027974 @ =gUnknown_2023D6B + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x9] + cmp r0, 0x3 + bne _08027980 + ldr r2, _08027978 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802797C @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080279AA + .align 2, 0 +_08027970: .4byte gUnknown_2023E0C +_08027974: .4byte gUnknown_2023D6B +_08027978: .4byte gUnknown_2023DCC +_0802797C: .4byte gUnknown_2023E82 +_08027980: + adds r0, 0x1 + movs r3, 0 + strb r0, [r1, 0x9] + ldr r2, _080279B8 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x1 + strb r0, [r2, 0x1] + strb r0, [r2, 0x2] + strb r0, [r2, 0x3] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x9] + strb r0, [r2, 0x4] + movs r0, 0xFF + strb r0, [r2, 0x5] + ldr r0, _080279BC @ =gUnknown_2023E82 + strb r3, [r0, 0x5] +_080279AA: + ldr r1, _080279C0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080279B8: .4byte gUnknown_2022AB8 +_080279BC: .4byte gUnknown_2023E82 +_080279C0: .4byte gUnknown_2023D74 + thumb_func_end sub_8027948 + + thumb_func_start sub_80279C4 +sub_80279C4: @ 80279C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r3, _080279FC @ =gUnknown_2023D74 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r7, _08027A00 @ =gUnknown_2023E0C + ldr r6, _08027A04 @ =gUnknown_2023D6B + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _08027A08 + str r2, [r3] + b _08027AAA + .align 2, 0 +_080279FC: .4byte gUnknown_2023D74 +_08027A00: .4byte gUnknown_2023E0C +_08027A04: .4byte gUnknown_2023D6B +_08027A08: + ldr r0, _08027AB8 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _08027A90 + ldr r0, _08027ABC @ =gUnknown_2023D50 + mov r8, r0 + ldr r4, _08027AC0 @ =gUnknown_2023DDE + ldr r5, _08027AC4 @ =gUnknown_2023D6C + ldrb r0, [r5] + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r6] + movs r4, 0x58 + muls r0, r4 + ldr r2, _08027AC8 @ =gUnknown_2023BE4 + adds r0, r2 + ldrb r1, [r5] + muls r1, r4 + adds r1, r2 + ldr r2, _08027ACC @ =gUnknown_2023D4A + ldrh r2, [r2] + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + ldrb r4, [r6] + str r4, [sp, 0x8] + ldrb r4, [r5] + str r4, [sp, 0xC] + bl sub_803ECEC + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r7 + ldrb r1, [r1, 0x9] + adds r3, r0, 0 + muls r3, r1 + mov r1, r8 + str r3, [r1] + ldr r2, _08027AD0 @ =gUnknown_2023FC4 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + strb r0, [r2, 0x18] + ldr r1, _08027AD4 @ =gUnknown_2023E8C + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _08027A90 + lsls r0, r3, 4 + subs r0, r3 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_08027A90: + ldr r2, _08027AD8 @ =gUnknown_2023E0C + ldr r0, _08027ADC @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + ldr r1, _08027AE0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08027AAA: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027AB8: .4byte gUnknown_2023E82 +_08027ABC: .4byte gUnknown_2023D50 +_08027AC0: .4byte gUnknown_2023DDE +_08027AC4: .4byte gUnknown_2023D6C +_08027AC8: .4byte gUnknown_2023BE4 +_08027ACC: .4byte gUnknown_2023D4A +_08027AD0: .4byte gUnknown_2023FC4 +_08027AD4: .4byte gUnknown_2023E8C +_08027AD8: .4byte gUnknown_2023E0C +_08027ADC: .4byte gUnknown_2023D6B +_08027AE0: .4byte gUnknown_2023D74 + thumb_func_end sub_80279C4 + + thumb_func_start sub_8027AE4 +sub_8027AE4: @ 8027AE4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _08027B24 @ =gUnknown_2023D74 + ldr r1, [r7] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r0, _08027B28 @ =gUnknown_2023E0C + mov r8, r0 + ldr r6, _08027B2C @ =gUnknown_2023D6B + ldrb r3, [r6] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4, 0x9] + cmp r1, 0 + bne _08027B34 + str r2, [r7] + ldr r0, _08027B30 @ =gUnknown_2023E82 + strb r1, [r0, 0x5] + b _08027BB0 + .align 2, 0 +_08027B24: .4byte gUnknown_2023D74 +_08027B28: .4byte gUnknown_2023E0C +_08027B2C: .4byte gUnknown_2023D6B +_08027B30: .4byte gUnknown_2023E82 +_08027B34: + ldr r1, _08027B58 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r3 + adds r1, r0, r1 + ldrh r0, [r1, 0x2C] + ldrh r3, [r1, 0x28] + cmp r0, r3 + bne _08027B64 + movs r0, 0 + strb r0, [r4, 0x9] + str r2, [r7] + ldr r1, _08027B5C @ =gUnknown_2023D6C + ldrb r0, [r6] + strb r0, [r1] + ldr r1, _08027B60 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08027BB0 + .align 2, 0 +_08027B58: .4byte gUnknown_2023BE4 +_08027B5C: .4byte gUnknown_2023D6C +_08027B60: .4byte gUnknown_2023E82 +_08027B64: + ldr r5, _08027BBC @ =gUnknown_2023D50 + ldrh r0, [r1, 0x2C] + ldrb r1, [r4, 0x9] + movs r2, 0x3 + subs r2, r1 + movs r4, 0x1 + adds r1, r4, 0 + lsls r1, r2 + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _08027B80 + str r4, [r5] +_08027B80: + ldr r0, [r5] + negs r0, r0 + str r0, [r5] + ldr r3, _08027BC0 @ =gUnknown_2023FC4 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x9] + movs r2, 0 + strb r0, [r3, 0x18] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + strb r2, [r0, 0x9] + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + ldr r1, _08027BC4 @ =gUnknown_2023D6C + ldrb r0, [r6] + strb r0, [r1] +_08027BB0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027BBC: .4byte gUnknown_2023D50 +_08027BC0: .4byte gUnknown_2023FC4 +_08027BC4: .4byte gUnknown_2023D6C + thumb_func_end sub_8027AE4 + + thumb_func_start sub_8027BC8 +sub_8027BC8: @ 8027BC8 + push {lr} + ldr r2, _08027BF0 @ =gUnknown_2023D50 + ldr r0, _08027BF4 @ =gUnknown_2023D54 + ldr r0, [r0] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + str r0, [r2] + cmp r0, 0 + bne _08027BE4 + movs r0, 0x1 + negs r0, r0 + str r0, [r2] +_08027BE4: + ldr r1, _08027BF8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08027BF0: .4byte gUnknown_2023D50 +_08027BF4: .4byte gUnknown_2023D54 +_08027BF8: .4byte gUnknown_2023D74 + thumb_func_end sub_8027BC8 + + thumb_func_start sub_8027BFC +sub_8027BFC: @ 8027BFC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r3 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0 + mov r9, r0 + mov r10, r0 + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _08027C30 + ldr r0, _08027C28 @ =gUnknown_2023BC4 + ldr r1, _08027C2C @ =gUnknown_2023D6B + b _08027C34 + .align 2, 0 +_08027C28: .4byte gUnknown_2023BC4 +_08027C2C: .4byte gUnknown_2023D6B +_08027C30: + ldr r0, _08027CD4 @ =gUnknown_2023BC4 + ldr r1, _08027CD8 @ =gUnknown_2023D6C +_08027C34: + ldrb r1, [r1] + strb r1, [r0] + movs r0, 0xBF + ands r5, r0 + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _08027C4E + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08027C4E: + movs r0, 0x7F + ands r5, r0 + movs r0, 0x20 + ands r0, r5 + cmp r0, 0 + beq _08027C64 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_08027C64: + movs r0, 0xDF + ands r5, r0 + ldr r1, _08027CDC @ =gUnknown_2022AB8 + movs r4, 0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + strb r7, [r1, 0x2] + movs r3, 0x1 + negs r3, r3 + mov r12, r3 + movs r0, 0xFF + strb r0, [r1, 0x3] + lsls r0, r6, 24 + cmp r0, 0 + blt _08027C88 + b _08027F6C +_08027C88: + ldr r4, _08027CE0 @ =gUnknown_2023DE4 + ldr r1, _08027CD4 @ =gUnknown_2023BC4 + ldrb r0, [r1] + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08027D28 + mov r2, r9 + cmp r2, 0 + bne _08027D28 + ldr r0, _08027CE4 @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xAE + beq _08027D58 + cmp r5, 0x1 + bne _08027D48 + ldr r4, _08027CE8 @ =gUnknown_2023ECC + ldr r3, _08027CD4 @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 31 + cmp r0, 0 + beq _08027CF0 + ldr r0, _08027CEC @ =gUnknown_2023D74 + mov r4, r8 + str r4, [r0] + b _08027D48 + .align 2, 0 +_08027CD4: .4byte gUnknown_2023BC4 +_08027CD8: .4byte gUnknown_2023D6C +_08027CDC: .4byte gUnknown_2022AB8 +_08027CE0: .4byte gUnknown_2023DE4 +_08027CE4: .4byte gUnknown_2023D4A +_08027CE8: .4byte gUnknown_2023ECC +_08027CEC: .4byte gUnknown_2023D74 +_08027CF0: + mov r0, r8 + bl sub_8017520 + ldr r1, _08027D18 @ =gUnknown_2023FC4 + ldr r6, _08027D1C @ =gUnknown_2023BC4 + ldrb r0, [r6] + strb r0, [r1, 0x17] + ldr r1, _08027D20 @ =gUnknown_2023D74 + ldr r0, _08027D24 @ =gUnknown_81D8C3E + str r0, [r1] + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08027D48 + .align 2, 0 +_08027D18: .4byte gUnknown_2023FC4 +_08027D1C: .4byte gUnknown_2023BC4 +_08027D20: .4byte gUnknown_2023D74 +_08027D24: .4byte gUnknown_81D8C3E +_08027D28: + ldr r0, _08027D4C @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xAE + beq _08027D58 + mov r0, r10 + cmp r0, 0x1 + beq _08027D58 + movs r0, 0 + bl sub_801DC10 + lsls r0, 24 + cmp r0, 0 + beq _08027D58 + ldr r1, _08027D50 @ =gUnknown_2023D74 + ldr r0, _08027D54 @ =gUnknown_81D7DF2 + str r0, [r1] +_08027D48: + movs r0, 0x1 + b _08028060 + .align 2, 0 +_08027D4C: .4byte gUnknown_2023D4A +_08027D50: .4byte gUnknown_2023D74 +_08027D54: .4byte gUnknown_81D7DF2 +_08027D58: + ldr r2, _08027DA0 @ =gUnknown_2023BE4 + ldr r1, _08027DA4 @ =gUnknown_2023BC4 + ldrb r3, [r1] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r10, r2 + cmp r0, 0x1D + beq _08027D74 + cmp r0, 0x49 + bne _08027E0C +_08027D74: + mov r0, r9 + cmp r0, 0 + bne _08027E0C + ldr r0, _08027DA8 @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xAE + beq _08027E0C + cmp r5, 0x1 + bne _08027D48 + ldr r4, _08027DAC @ =gUnknown_2023ECC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _08027DB4 + ldr r0, _08027DB0 @ =gUnknown_2023D74 + mov r1, r8 + str r1, [r0] + b _08027D48 + .align 2, 0 +_08027DA0: .4byte gUnknown_2023BE4 +_08027DA4: .4byte gUnknown_2023BC4 +_08027DA8: .4byte gUnknown_2023D4A +_08027DAC: .4byte gUnknown_2023ECC +_08027DB0: .4byte gUnknown_2023D74 +_08027DB4: + mov r0, r8 + bl sub_8017520 + ldr r1, _08027DF8 @ =gUnknown_2023FC4 + ldr r2, _08027DFC @ =gUnknown_2023BC4 + ldrb r0, [r2] + strb r0, [r1, 0x17] + ldr r1, _08027E00 @ =gUnknown_2023D74 + ldr r0, _08027E04 @ =gUnknown_81D9416 + str r0, [r1] + ldr r1, _08027E08 @ =gUnknown_2023D6A + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl sub_80C71D0 + ldr r6, _08027DFC @ =gUnknown_2023BC4 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08027D48 + .align 2, 0 +_08027DF8: .4byte gUnknown_2023FC4 +_08027DFC: .4byte gUnknown_2023BC4 +_08027E00: .4byte gUnknown_2023D74 +_08027E04: .4byte gUnknown_81D9416 +_08027E08: .4byte gUnknown_2023D6A +_08027E0C: + ldr r1, _08027E58 @ =gUnknown_2023BC4 + ldrb r0, [r1] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x33 + bne _08027E6C + mov r2, r9 + cmp r2, 0 + bne _08027E6C + cmp r7, 0x6 + bne _08027E6C + cmp r5, 0x1 + bne _08027D48 + mov r0, r8 + bl sub_8017520 + ldr r1, _08027E5C @ =gUnknown_2023FC4 + ldr r3, _08027E58 @ =gUnknown_2023BC4 + ldrb r0, [r3] + strb r0, [r1, 0x17] + ldr r1, _08027E60 @ =gUnknown_2023D74 + ldr r0, _08027E64 @ =gUnknown_81D947E + str r0, [r1] + ldr r1, _08027E68 @ =gUnknown_2023D6A + ldrb r0, [r3] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r3] + ldrb r1, [r1] + bl sub_80C71D0 + b _08027D48 + .align 2, 0 +_08027E58: .4byte gUnknown_2023BC4 +_08027E5C: .4byte gUnknown_2023FC4 +_08027E60: .4byte gUnknown_2023D74 +_08027E64: .4byte gUnknown_81D947E +_08027E68: .4byte gUnknown_2023D6A +_08027E6C: + ldr r4, _08027EBC @ =gUnknown_2023BC4 + ldrb r0, [r4] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x34 + bne _08027ED0 + mov r0, r9 + cmp r0, 0 + bne _08027ED0 + cmp r7, 0x1 + bne _08027ED0 + cmp r5, 0x1 + beq _08027E8E + b _08027D48 +_08027E8E: + mov r0, r8 + bl sub_8017520 + ldr r1, _08027EC0 @ =gUnknown_2023FC4 + ldr r2, _08027EBC @ =gUnknown_2023BC4 + ldrb r0, [r2] + strb r0, [r1, 0x17] + ldr r1, _08027EC4 @ =gUnknown_2023D74 + ldr r0, _08027EC8 @ =gUnknown_81D947E + str r0, [r1] + ldr r1, _08027ECC @ =gUnknown_2023D6A + ldrb r0, [r2] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl sub_80C71D0 + b _08027D48 + .align 2, 0 +_08027EBC: .4byte gUnknown_2023BC4 +_08027EC0: .4byte gUnknown_2023FC4 +_08027EC4: .4byte gUnknown_2023D74 +_08027EC8: .4byte gUnknown_81D947E +_08027ECC: .4byte gUnknown_2023D6A +_08027ED0: + ldr r3, _08027F5C @ =gUnknown_2023BC4 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x13 + bne _08027EE8 + cmp r5, 0 + bne _08027EE8 + b _08027D48 +_08027EE8: + lsls r0, r6, 24 + asrs r0, 28 + movs r1, 0x7 + ands r0, r1 + negs r0, r0 + lsls r0, 24 + ldr r3, _08027F60 @ =gUnknown_2022AC8 + movs r4, 0 + movs r1, 0xFD + strb r1, [r3] + movs r2, 0x1 + lsrs r6, r0, 24 + asrs r0, 24 + subs r1, 0xFF + cmp r0, r1 + bne _08027F12 + strb r4, [r3, 0x1] + movs r0, 0xD3 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_08027F12: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD4 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xFF + strb r0, [r1] + ldr r4, _08027F5C @ =gUnknown_2023BC4 + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + mov r1, r10 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08027FC2 + movs r1, 0 + ldr r0, _08027F64 @ =gUnknown_2023D6C + ldrb r0, [r0] + ldr r3, _08027F68 @ =gUnknown_2023E82 + mov r8, r3 + cmp r0, r2 + bne _08027F56 + movs r1, 0x1 +_08027F56: + mov r4, r8 + strb r1, [r4, 0x5] + b _08027FF0 + .align 2, 0 +_08027F5C: .4byte gUnknown_2023BC4 +_08027F60: .4byte gUnknown_2022AC8 +_08027F64: .4byte gUnknown_2023D6C +_08027F68: .4byte gUnknown_2023E82 +_08027F6C: + asrs r6, r0, 28 + movs r0, 0x7 + ands r6, r0 + ldr r3, _08027FCC @ =gUnknown_2022AC8 + strb r2, [r3] + movs r2, 0x1 + cmp r6, 0x2 + bne _08027F86 + strb r4, [r3, 0x1] + movs r0, 0xD1 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_08027F86: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD2 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + ldrb r0, [r1] + mov r2, r12 + orrs r0, r2 + strb r0, [r1] + ldr r2, _08027FD0 @ =gUnknown_2023BE4 + ldr r4, _08027FD4 @ =gUnknown_2023BC4 + ldrb r3, [r4] + movs r0, 0x58 + muls r0, r3 + adds r0, r7, r0 + adds r1, r2, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + mov r10, r2 + cmp r0, 0xC + bne _08027FDC +_08027FC2: + ldr r1, _08027FD8 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + mov r8, r1 + b _08027FF0 + .align 2, 0 +_08027FCC: .4byte gUnknown_2022AC8 +_08027FD0: .4byte gUnknown_2023BE4 +_08027FD4: .4byte gUnknown_2023BC4 +_08027FD8: .4byte gUnknown_2023E82 +_08027FDC: + movs r1, 0 + ldr r0, _08028070 @ =gUnknown_2023D6C + ldrb r0, [r0] + ldr r2, _08028074 @ =gUnknown_2023E82 + mov r8, r2 + cmp r0, r3 + bne _08027FEC + movs r1, 0x1 +_08027FEC: + mov r3, r8 + strb r1, [r3, 0x5] +_08027FF0: + ldr r2, _08028078 @ =gUnknown_2023BC4 + ldrb r0, [r2] + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r1, r7, r1 + mov r3, r10 + adds r3, 0x18 + adds r1, r3 + lsls r0, r6, 24 + asrs r0, 24 + ldrb r6, [r1] + adds r0, r6 + strb r0, [r1] + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _08028020 + movs r0, 0 + strb r0, [r1] +_08028020: + ldr r1, _08028078 @ =gUnknown_2023BC4 + ldrb r0, [r1] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _08028036 + movs r0, 0xC + strb r0, [r1] +_08028036: + mov r2, r8 + ldrb r0, [r2, 0x5] + cmp r0, 0x2 + bne _0802805E + movs r3, 0x1 + ands r3, r5 + cmp r3, 0 + beq _08028050 + ldr r0, _0802807C @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] +_08028050: + mov r4, r8 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + bne _0802805E + cmp r3, 0 + bne _0802805E + b _08027D48 +_0802805E: + movs r0, 0 +_08028060: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08028070: .4byte gUnknown_2023D6C +_08028074: .4byte gUnknown_2023E82 +_08028078: .4byte gUnknown_2023BC4 +_0802807C: .4byte gUnknown_2023DCC + thumb_func_end sub_8027BFC + + thumb_func_start sub_8028080 +sub_8028080: @ 8028080 + push {r4,r5,lr} + ldr r5, _080280C4 @ =gUnknown_2023D74 + ldr r2, [r5] + ldrb r3, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r0, _080280C8 @ =gUnknown_2023FC4 + ldrb r4, [r0, 0x1A] + movs r0, 0xF0 + ands r0, r4 + lsls r0, 24 + asrs r0, 24 + movs r1, 0xF + ands r1, r4 + ldrb r2, [r2, 0x1] + bl sub_8027BFC + lsls r0, 24 + cmp r0, 0 + bne _080280BC + ldr r0, [r5] + adds r0, 0x6 + str r0, [r5] +_080280BC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080280C4: .4byte gUnknown_2023D74 +_080280C8: .4byte gUnknown_2023FC4 + thumb_func_end sub_8028080 + + thumb_func_start sub_80280CC +sub_80280CC: @ 80280CC + push {r4-r7,lr} + movs r2, 0 + ldr r0, _08028114 @ =gUnknown_2023BCC + ldrb r1, [r0] + ldr r0, _08028118 @ =gUnknown_2023D74 + mov r12, r0 + cmp r2, r1 + bge _08028104 + ldr r0, _0802811C @ =gUnknown_2023BE4 + movs r4, 0x6 + adds r5, r1, 0 + movs r7, 0x58 + adds r6, r0, 0 + adds r6, 0x18 +_080280E8: + adds r3, r2, 0x1 + movs r1, 0x7 + adds r0, r2, 0 + muls r0, r7 + adds r0, r6 + adds r0, 0x7 +_080280F4: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _080280F4 + adds r2, r3, 0 + cmp r2, r5 + blt _080280E8 +_08028104: + mov r1, r12 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028114: .4byte gUnknown_2023BCC +_08028118: .4byte gUnknown_2023D74 +_0802811C: .4byte gUnknown_2023BE4 + thumb_func_end sub_80280CC + + thumb_func_start sub_8028120 +sub_8028120: @ 8028120 + push {r4,r5,lr} + ldr r4, _08028178 @ =gUnknown_2023BE4 + ldr r3, _0802817C @ =gUnknown_2023D6B + ldrb r0, [r3] + movs r5, 0x58 + adds r2, r0, 0 + muls r2, r5 + adds r4, 0x50 + adds r2, r4 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, _08028180 @ =gUnknown_2023DB8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _08028184 @ =gUnknown_2023D4A + ldrh r1, [r1] + movs r2, 0 + strh r1, [r0] + ldr r1, _08028188 @ =gUnknown_2023D58 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + str r2, [r0] + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r1, _0802818C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08028178: .4byte gUnknown_2023BE4 +_0802817C: .4byte gUnknown_2023D6B +_08028180: .4byte gUnknown_2023DB8 +_08028184: .4byte gUnknown_2023D4A +_08028188: .4byte gUnknown_2023D58 +_0802818C: .4byte gUnknown_2023D74 + thumb_func_end sub_8028120 + + thumb_func_start sub_8028190 +sub_8028190: @ 8028190 + push {lr} + ldr r1, _080281C0 @ =gUnknown_2023BE4 + ldr r0, _080281C4 @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 4 + ands r0, r1 + cmp r0, 0 + bne _080281B2 + ldr r1, _080281C8 @ =gUnknown_2023E82 + movs r0, 0x75 + strb r0, [r1, 0x3] +_080281B2: + ldr r1, _080281CC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080281C0: .4byte gUnknown_2023BE4 +_080281C4: .4byte gUnknown_2023D6B +_080281C8: .4byte gUnknown_2023E82 +_080281CC: .4byte gUnknown_2023D74 + thumb_func_end sub_8028190 + + thumb_func_start sub_80281D0 +sub_80281D0: @ 80281D0 + push {r4,r5,lr} + ldr r0, _080281E4 @ =gUnknown_2023D74 + ldr r0, [r0] + ldrb r1, [r0, 0x1] + cmp r1, 0 + beq _080281EC + ldr r0, _080281E8 @ =gUnknown_2023D72 + strb r1, [r0] + b _08028206 + .align 2, 0 +_080281E4: .4byte gUnknown_2023D74 +_080281E8: .4byte gUnknown_2023D72 +_080281EC: + ldr r4, _08028214 @ =gUnknown_2023D72 + bl sub_8044EC8 + movs r5, 0x3 + ands r0, r5 + strb r0, [r4] + cmp r0, 0x1 + bls _08028202 + bl sub_8044EC8 + ands r0, r5 +_08028202: + adds r0, 0x2 + strb r0, [r4] +_08028206: + ldr r1, _08028218 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08028214: .4byte gUnknown_2023D72 +_08028218: .4byte gUnknown_2023D74 + thumb_func_end sub_80281D0 + + thumb_func_start sub_802821C +sub_802821C: @ 802821C + ldr r1, _0802823C @ =gUnknown_2023FC4 + movs r2, 0 + movs r0, 0xFD + strb r0, [r1, 0x8] + movs r0, 0x1 + strb r0, [r1, 0x9] + strb r0, [r1, 0xA] + strb r0, [r1, 0xB] + strb r2, [r1, 0xC] + movs r0, 0xFF + strb r0, [r1, 0xD] + ldr r1, _08028240 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802823C: .4byte gUnknown_2023FC4 +_08028240: .4byte gUnknown_2023D74 + thumb_func_end sub_802821C + + thumb_func_start sub_8028244 +sub_8028244: @ 8028244 + push {r4-r7,lr} + ldr r6, _08028278 @ =gUnknown_2023BE4 + ldr r7, _0802827C @ =gUnknown_2023D6B + ldrb r0, [r7] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + adds r1, 0x2A + ldr r4, _08028280 @ =gUnknown_2023D6C + ldrb r3, [r4] + adds r0, r3, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _0802828C + ldr r0, _08028284 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r1, r3, r1 + adds r1, 0x58 + ldr r2, _08028288 @ =gUnknown_2023BCE + lsls r0, r3, 1 + b _080282E8 + .align 2, 0 +_08028278: .4byte gUnknown_2023BE4 +_0802827C: .4byte gUnknown_2023D6B +_08028280: .4byte gUnknown_2023D6C +_08028284: .4byte gUnknown_2023FE8 +_08028288: .4byte gUnknown_2023BCE +_0802828C: + bl sub_8044EC8 + movs r3, 0xFF + ands r3, r0 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r2, [r0] + ldrb r4, [r4] + adds r0, r4, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r0] + adds r2, r1 + adds r0, r3, 0 + muls r0, r2 + asrs r0, 8 + adds r0, 0x1 + lsrs r1, 2 + cmp r0, r1 + bhi _080282DC + ldr r3, _080282D8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + movs r0, 0 + b _080282F6 + .align 2, 0 +_080282D8: .4byte gUnknown_2023D74 +_080282DC: + ldr r0, _080282FC @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r1, r4, r1 + adds r1, 0x58 + ldr r2, _08028300 @ =gUnknown_2023BCE + lsls r0, r4, 1 +_080282E8: + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r1, _08028304 @ =gUnknown_2023D74 + ldr r0, _08028308 @ =gUnknown_81D8C10 + str r0, [r1] + movs r0, 0x1 +_080282F6: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080282FC: .4byte gUnknown_2023FE8 +_08028300: .4byte gUnknown_2023BCE +_08028304: .4byte gUnknown_2023D74 +_08028308: .4byte gUnknown_81D8C10 + thumb_func_end sub_8028244 + + thumb_func_start sub_802830C +sub_802830C: @ 802830C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _080283A4 @ =gUnknown_2022B4C + ldr r0, [r4] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08028320 + b _080285F4 +_08028320: + ldr r5, _080283A8 @ =gUnknown_2023D6C + ldrb r0, [r5] + bl sub_80751C4 + lsls r0, 24 + ldr r1, _080283AC @ =gUnknown_202402C + mov r8, r1 + cmp r0, 0 + bne _08028336 + ldr r0, _080283B0 @ =gUnknown_2024284 + mov r8, r0 +_08028336: + ldr r0, [r4] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080283B4 + movs r7, 0 + movs r6, 0 + ldrb r0, [r5] + bl sub_8043658 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043620 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0802835C + movs r6, 0x3 +_0802835C: + adds r5, r6, 0 + adds r0, r5, 0x3 + cmp r5, r0 + bge _080283F4 +_08028364: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08028396 + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _08028396 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08028396 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08028396: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0x3 + cmp r5, r0 + blt _08028364 + b _080283F4 + .align 2, 0 +_080283A4: .4byte gUnknown_2022B4C +_080283A8: .4byte gUnknown_2023D6C +_080283AC: .4byte gUnknown_202402C +_080283B0: .4byte gUnknown_2024284 +_080283B4: + movs r7, 0 + movs r5, 0 +_080283B8: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _080283EA + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0 + bne _080283EA + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _080283EA + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080283EA: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080283B8 +_080283F4: + cmp r7, 0x1 + bhi _08028404 + ldr r0, _08028438 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x41 + ands r0, r1 + cmp r0, 0x1 + bne _0802841C +_08028404: + cmp r7, 0x2 + bhi _08028440 + ldr r0, _08028438 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08028440 + movs r0, 0x40 + ands r1, r0 + cmp r1, 0 + bne _08028440 +_0802841C: + ldr r3, _0802843C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080285F8 + .align 2, 0 +_08028438: .4byte gUnknown_2022B4C +_0802843C: .4byte gUnknown_2023D74 +_08028440: + bl sub_8028244 + lsls r0, 24 + cmp r0, 0 + bne _0802844C + b _080285F8 +_0802844C: + ldr r0, _0802848C @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080284F0 +_08028458: + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _08028490 @ =gUnknown_2023D6C + ldrb r0, [r0] + bl sub_8043658 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043620 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _08028494 + adds r0, r6, 0x3 + lsls r0, 24 + lsrs r5, r0, 24 + b _08028496 + .align 2, 0 +_0802848C: .4byte gUnknown_2022B4C +_08028490: .4byte gUnknown_2023D6C +_08028494: + adds r5, r6, 0 +_08028496: + ldr r4, _080284E8 @ =gUnknown_2023BCE + ldr r0, _080284EC @ =gUnknown_2023D6C + ldrb r2, [r0] + lsls r1, r2, 1 + adds r1, r4 + lsls r0, r5, 16 + lsrs r3, r0, 16 + ldrh r1, [r1] + cmp r3, r1 + beq _08028458 + movs r0, 0x2 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r3, r0 + beq _08028458 + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08028458 + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0x1 + beq _08028458 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08028458 + b _080285AE + .align 2, 0 +_080284E8: .4byte gUnknown_2023BCE +_080284EC: .4byte gUnknown_2023D6C +_080284F0: + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08028560 + ldr r6, _08028558 @ =gUnknown_2023BCE +_080284FA: + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0802855C @ =gUnknown_2023D6C + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r6 + adds r2, r5, 0 + ldrh r0, [r0] + cmp r2, r0 + beq _080284FA + movs r0, 0x2 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r2, r0 + beq _080284FA + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _080284FA + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0x1 + beq _080284FA + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _080284FA + b _080285AE + .align 2, 0 +_08028558: .4byte gUnknown_2023BCE +_0802855C: .4byte gUnknown_2023D6C +_08028560: + ldr r6, _080285E8 @ =gUnknown_2023BCE +_08028562: + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080285EC @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r5, r0 + beq _08028562 + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + cmp r0, 0 + beq _08028562 + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + cmp r0, 0x1 + beq _08028562 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08028562 +_080285AE: + ldr r4, _080285EC @ =gUnknown_2023D6C + ldrb r0, [r4] + ldr r1, _080285F0 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + strb r5, [r0] + bl sub_811FA20 + lsls r0, 24 + cmp r0, 0 + bne _080285CC + ldrb r0, [r4] + bl sub_8013F6C +_080285CC: + ldrb r0, [r4] + adds r1, r5, 0 + movs r2, 0 + bl sub_8127EC4 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8127EC4 + b _080285F8 + .align 2, 0 +_080285E8: .4byte gUnknown_2023BCE +_080285EC: .4byte gUnknown_2023D6C +_080285F0: .4byte gUnknown_2023FE8 +_080285F4: + bl sub_8028244 +_080285F8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802830C + + thumb_func_start sub_8028604 +sub_8028604: @ 8028604 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + ldr r2, _08028698 @ =gUnknown_2023BE4 + ldr r3, _0802869C @ =gUnknown_2023D6B + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r2, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + mov r8, r2 + cmp r0, 0 + beq _08028646 + movs r5, 0x58 + adds r2, r1, 0 +_0802862C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _08028646 + lsls r1, r6, 1 + ldrb r0, [r3] + muls r0, r5 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + cmp r0, 0 + bne _0802862C +_08028646: + movs r3, 0 + cmp r3, r6 + bcs _080286C8 + ldr r0, _080286A0 @ =gUnknown_8250C04 + mov r10, r0 + ldr r5, _08028698 @ =gUnknown_2023BE4 + mov r12, r5 + ldr r7, _0802869C @ =gUnknown_2023D6B + ldrb r0, [r7] + movs r4, 0x58 + adds r5, r0, 0 + muls r5, r4 + movs r0, 0xC + add r0, r12 + mov r9, r0 +_08028664: + lsls r0, r3, 1 + adds r0, r5 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r2, [r0, 0x2] + cmp r2, 0x9 + bne _080286A6 + mov r0, r8 + adds r1, r5, r0 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _08028692 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080286A4 +_08028692: + movs r2, 0x7 + b _080286A6 + .align 2, 0 +_08028698: .4byte gUnknown_2023BE4 +_0802869C: .4byte gUnknown_2023D6B +_080286A0: .4byte gUnknown_8250C04 +_080286A4: + movs r2, 0 +_080286A6: + ldrb r0, [r7] + muls r0, r4 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r2, r1 + beq _080286BE + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _080286C8 +_080286BE: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bcc _08028664 +_080286C8: + cmp r3, r6 + bne _080286EC + ldr r3, _080286E8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08028790 + .align 2, 0 +_080286E8: .4byte gUnknown_2023D74 +_080286EC: + movs r7, 0x3 + ldr r5, _08028744 @ =gUnknown_8250C04 + mov r9, r5 +_080286F2: + bl sub_8044EC8 + adds r3, r0, 0 + ands r3, r7 + cmp r3, r6 + bcs _080286F2 + ldr r4, _08028748 @ =gUnknown_2023BE4 + lsls r1, r3, 1 + ldr r3, _0802874C @ =gUnknown_2023D6B + ldrb r2, [r3] + movs r0, 0x58 + adds r5, r2, 0 + muls r5, r0 + adds r1, r5 + adds r0, r4, 0 + adds r0, 0xC + adds r1, r0 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r2, [r0, 0x2] + mov r8, r4 + adds r4, r3, 0 + cmp r2, 0x9 + bne _08028752 + mov r0, r8 + adds r2, r5, r0 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _08028740 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _08028750 +_08028740: + movs r2, 0x7 + b _08028752 + .align 2, 0 +_08028744: .4byte gUnknown_8250C04 +_08028748: .4byte gUnknown_2023BE4 +_0802874C: .4byte gUnknown_2023D6B +_08028750: + movs r2, 0 +_08028752: + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r5, [r1] + cmp r2, r5 + beq _080286F2 + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + beq _080286F2 + strb r2, [r1] + ldrb r0, [r4] + muls r0, r3 + add r0, r8 + adds r0, 0x22 + strb r2, [r0] + ldr r1, _080287A0 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _080287A4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08028790: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080287A0: .4byte gUnknown_2022AB8 +_080287A4: .4byte gUnknown_2023D74 + thumb_func_end sub_8028604 + + thumb_func_start sub_80287A8 +sub_80287A8: @ 80287A8 + push {r4,r5,lr} + ldr r0, _0802880C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r5, 0x2 + ands r0, r5 + cmp r0, 0 + bne _08028828 + ldr r1, _08028810 @ =gUnknown_2023E7E + ldrh r0, [r1] + cmp r0, 0 + beq _08028828 + adds r1, r0, 0 + ldr r0, _08028814 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x4A + ldrb r0, [r0] + adds r4, r1, 0 + muls r4, r0 + ldr r0, _08028818 @ =gUnknown_3005008 + ldr r0, [r0] + movs r1, 0xA4 + lsls r1, 2 + adds r0, r1 + adds r1, r4, 0 + bl sub_809FDA0 + ldr r1, _0802881C @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + strb r4, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r4, r0 + lsrs r4, 8 + strb r4, [r1, 0x5] + movs r0, 0xFF + strb r0, [r1, 0x6] + ldr r4, _08028820 @ =gUnknown_2023D74 + ldr r0, [r4] + adds r0, 0x1 + bl sub_8017520 + ldr r0, _08028824 @ =gUnknown_81D911D + str r0, [r4] + b _08028830 + .align 2, 0 +_0802880C: .4byte gUnknown_2022B4C +_08028810: .4byte gUnknown_2023E7E +_08028814: .4byte gUnknown_2023FE8 +_08028818: .4byte gUnknown_3005008 +_0802881C: .4byte gUnknown_2022AB8 +_08028820: .4byte gUnknown_2023D74 +_08028824: .4byte gUnknown_81D911D +_08028828: + ldr r1, _08028838 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08028830: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08028838: .4byte gUnknown_2023D74 + thumb_func_end sub_80287A8 + + thumb_func_start sub_802883C +sub_802883C: @ 802883C + push {r4-r6,lr} + ldr r5, _0802886C @ =gUnknown_2023D6B + ldrb r0, [r5] + bl sub_80751D8 + ldr r4, _08028870 @ =gUnknown_2023DDE + movs r6, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802887C + ldr r2, _08028874 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08028878 @ =gUnknown_2023E82 + movs r0, 0 + b _080288F0 + .align 2, 0 +_0802886C: .4byte gUnknown_2023D6B +_08028870: .4byte gUnknown_2023DDE +_08028874: .4byte gUnknown_2023DCC +_08028878: .4byte gUnknown_2023E82 +_0802887C: + ldrb r0, [r5] + bl sub_80751D8 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r5] + bl sub_80751D8 + ldr r4, _080288E0 @ =gUnknown_2023DE4 + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x5 + strb r1, [r0, 0x2] + ldrb r0, [r5] + bl sub_80751D8 + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r5] + strb r1, [r0, 0x3] + ldr r0, _080288E4 @ =gUnknown_2022B4C + ldr r0, [r0] + ands r0, r6 + cmp r0, 0 + beq _080288EC + movs r0, 0x1 + bl sub_803F5B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080288EC + ldr r1, _080288E8 @ =gUnknown_2023E82 + movs r0, 0x4 + b _080288F0 + .align 2, 0 +_080288E0: .4byte gUnknown_2023DE4 +_080288E4: .4byte gUnknown_2022B4C +_080288E8: .4byte gUnknown_2023E82 +_080288EC: + ldr r1, _08028900 @ =gUnknown_2023E82 + movs r0, 0x3 +_080288F0: + strb r0, [r1, 0x5] + ldr r1, _08028904 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08028900: .4byte gUnknown_2023E82 +_08028904: .4byte gUnknown_2023D74 + thumb_func_end sub_802883C + + thumb_func_start sub_8028908 +sub_8028908: @ 8028908 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, _08028934 @ =gUnknown_2023BE4 + ldr r6, _08028938 @ =gUnknown_2023D6C + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08028940 + ldr r1, _0802893C @ =gUnknown_2023F54 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0802895A + .align 2, 0 +_08028934: .4byte gUnknown_2023BE4 +_08028938: .4byte gUnknown_2023D6C +_0802893C: .4byte gUnknown_2023F54 +_08028940: + ldrh r0, [r1, 0x2E] + bl sub_809A924 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl sub_809A948 + lsls r0, 24 + lsrs r6, r0, 24 +_0802895A: + ldr r1, _080289D4 @ =gUnknown_2023D6F + ldr r5, _080289D8 @ =gUnknown_2023D6C + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _08028998 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _08028998 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_80C7208 + ldr r2, _080289DC @ =gUnknown_2023ECC + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08028998: + ldr r1, _080289E0 @ =gUnknown_2023BE4 + ldr r2, _080289D8 @ =gUnknown_2023D6C + ldrb r3, [r2] + movs r6, 0x58 + adds r0, r3, 0 + muls r0, r6 + adds r5, r0, r1 + adds r0, r5, 0 + adds r0, 0x20 + ldrb r4, [r0] + mov r8, r1 + mov r9, r2 + cmp r4, 0x5 + bne _080289F4 + ldr r2, _080289E4 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080289E8 @ =gUnknown_2023D6A + strb r4, [r0] + ldr r1, _080289EC @ =gUnknown_2023D74 + ldr r0, _080289F0 @ =gUnknown_81D93A1 + str r0, [r1] + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x5 + bl sub_80C71D0 + b _08028C48 + .align 2, 0 +_080289D4: .4byte gUnknown_2023D6F +_080289D8: .4byte gUnknown_2023D6C +_080289DC: .4byte gUnknown_2023ECC +_080289E0: .4byte gUnknown_2023BE4 +_080289E4: .4byte gUnknown_2023DCC +_080289E8: .4byte gUnknown_2023D6A +_080289EC: .4byte gUnknown_2023D74 +_080289F0: .4byte gUnknown_81D93A1 +_080289F4: + ldr r1, _08028A68 @ =gUnknown_2023DFC + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x18 + ands r0, r1 + cmp r0, 0 + bne _08028A78 + ldr r1, _08028A6C @ =gUnknown_8250C04 + ldr r0, _08028A70 @ =gUnknown_2023D4A + ldrh r0, [r0] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r7, _08028A74 @ =gUnknown_2023D6B + ldrb r0, [r7] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + ldrb r0, [r0] + adds r1, r5, 0 + adds r1, 0x2A + ldrb r1, [r1] + subs r0, r1 + ldrb r2, [r2, 0x3] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + blt _08028A48 + b _08028BE0 +_08028A48: + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r8 + adds r1, 0x2A + mov r2, r9 + ldrb r0, [r2] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + ldrb r1, [r1] + movs r4, 0x1 + ldrb r0, [r0] + cmp r1, r0 + bcs _08028B0E + b _08028BE0 + .align 2, 0 +_08028A68: .4byte gUnknown_2023DFC +_08028A6C: .4byte gUnknown_8250C04 +_08028A70: .4byte gUnknown_2023D4A +_08028A74: .4byte gUnknown_2023D6B +_08028A78: + ldr r1, _08028B44 @ =gUnknown_2023E0C + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldr r1, _08028B48 @ =gUnknown_2023D6B + ldrb r0, [r0, 0x15] + adds r7, r1, 0 + ldrb r3, [r7] + cmp r0, r3 + bne _08028AA2 + ldrb r0, [r7] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + adds r1, r5, 0 + adds r1, 0x2A + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _08028B1A +_08028AA2: + ldr r1, _08028B4C @ =gUnknown_8250C04 + ldr r0, _08028B50 @ =gUnknown_2023D4A + ldrh r0, [r0] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r6, _08028B54 @ =gUnknown_2023BE4 + ldrb r0, [r7] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r0] + ldr r0, _08028B58 @ =gUnknown_2023D6C + mov r8, r0 + ldrb r0, [r0] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r0, [r0] + subs r1, r0 + ldrb r2, [r2, 0x3] + adds r1, r2 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + bge _08028B0C + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + adds r1, 0x2A + mov r2, r8 + ldrb r0, [r2] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r1] + movs r4, 0x1 + ldrb r0, [r0] + cmp r1, r0 + bcs _08028B0E +_08028B0C: + movs r4, 0 +_08028B0E: + ldr r3, _08028B54 @ =gUnknown_2023BE4 + mov r8, r3 + ldr r0, _08028B58 @ =gUnknown_2023D6C + mov r9, r0 + cmp r4, 0 + beq _08028BE0 +_08028B1A: + ldr r0, _08028B5C @ =gUnknown_2023E8C + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + bge _08028B68 + ldr r1, _08028B60 @ =gUnknown_2023D50 + movs r0, 0x58 + muls r0, r2 + add r0, r8 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, _08028B64 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x40 + b _08028BC6 + .align 2, 0 +_08028B44: .4byte gUnknown_2023E0C +_08028B48: .4byte gUnknown_2023D6B +_08028B4C: .4byte gUnknown_8250C04 +_08028B50: .4byte gUnknown_2023D4A +_08028B54: .4byte gUnknown_2023BE4 +_08028B58: .4byte gUnknown_2023D6C +_08028B5C: .4byte gUnknown_2023E8C +_08028B60: .4byte gUnknown_2023D50 +_08028B64: .4byte gUnknown_2023DCC +_08028B68: + ldr r0, _08028BA4 @ =gUnknown_2023ECC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08028BB4 + ldr r1, _08028BA8 @ =gUnknown_2023D50 + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + add r0, r8 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, _08028BAC @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08028BB0 @ =gUnknown_2023D68 + mov r2, r9 + ldrb r0, [r2] + muls r0, r3 + add r0, r8 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + b _08028BCA + .align 2, 0 +_08028BA4: .4byte gUnknown_2023ECC +_08028BA8: .4byte gUnknown_2023D50 +_08028BAC: .4byte gUnknown_2023DCC +_08028BB0: .4byte gUnknown_2023D68 +_08028BB4: + ldr r1, _08028BD4 @ =gUnknown_2023D50 + movs r0, 0x58 + muls r0, r2 + add r0, r8 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r2, _08028BD8 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x10 +_08028BC6: + orrs r0, r1 + strb r0, [r2] +_08028BCA: + ldr r1, _08028BDC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08028C48 + .align 2, 0 +_08028BD4: .4byte gUnknown_2023D50 +_08028BD8: .4byte gUnknown_2023DCC +_08028BDC: .4byte gUnknown_2023D74 +_08028BE0: + ldr r2, _08028C14 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r3, _08028C18 @ =gUnknown_2023BE4 + ldr r0, _08028C1C @ =gUnknown_2023D6B + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + adds r1, r3 + adds r1, 0x2A + ldr r0, _08028C20 @ =gUnknown_2023D6C + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _08028C28 + ldr r1, _08028C24 @ =gUnknown_2023E82 + movs r0, 0 + b _08028C2C + .align 2, 0 +_08028C14: .4byte gUnknown_2023DCC +_08028C18: .4byte gUnknown_2023BE4 +_08028C1C: .4byte gUnknown_2023D6B +_08028C20: .4byte gUnknown_2023D6C +_08028C24: .4byte gUnknown_2023E82 +_08028C28: + ldr r1, _08028C54 @ =gUnknown_2023E82 + movs r0, 0x1 +_08028C2C: + strb r0, [r1, 0x5] + ldr r3, _08028C58 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08028C48: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028C54: .4byte gUnknown_2023E82 +_08028C58: .4byte gUnknown_2023D74 + thumb_func_end sub_8028908 + + thumb_func_start sub_8028C5C +sub_8028C5C: @ 8028C5C + push {lr} + ldr r3, _08028C88 @ =gUnknown_2023D50 + ldr r2, _08028C8C @ =gUnknown_2023BE4 + ldr r0, _08028C90 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + lsrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _08028C7A + movs r0, 0x1 + str r0, [r3] +_08028C7A: + ldr r1, _08028C94 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08028C88: .4byte gUnknown_2023D50 +_08028C8C: .4byte gUnknown_2023BE4 +_08028C90: .4byte gUnknown_2023D6C +_08028C94: .4byte gUnknown_2023D74 + thumb_func_end sub_8028C5C + + thumb_func_start sub_8028C98 +sub_8028C98: @ 8028C98 + push {lr} + ldr r2, _08028CB8 @ =gUnknown_2023F1C + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08028CC4 + ldr r2, _08028CBC @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08028CC0 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08028CD6 + .align 2, 0 +_08028CB8: .4byte gUnknown_2023F1C +_08028CBC: .4byte gUnknown_2023DCC +_08028CC0: .4byte gUnknown_2023E82 +_08028CC4: + movs r0, 0x8 + strh r0, [r2] + ldr r1, _08028CE4 @ =gUnknown_2023E82 + movs r0, 0x3 + strb r0, [r1, 0x5] + ldr r0, _08028CE8 @ =gUnknown_2023F20 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_08028CD6: + ldr r1, _08028CEC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08028CE4: .4byte gUnknown_2023E82 +_08028CE8: .4byte gUnknown_2023F20 +_08028CEC: .4byte gUnknown_2023D74 + thumb_func_end sub_8028C98 + + thumb_func_start sub_8028CF0 +sub_8028CF0: @ 8028CF0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _08028DBC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0xA0 + lsls r1, 8 + ands r0, r1 + movs r1, 0x80 + lsls r1, 8 + cmp r0, r1 + bne _08028D18 + ldr r0, _08028DC0 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08028D18 + b _08028E64 +_08028D18: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08028D32 + b _08028E48 +_08028D32: + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _08028D48 + b _08028E48 +_08028D48: + ldr r2, _08028DC4 @ =gUnknown_2023F1C + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + ldr r5, _08028DC0 @ =gUnknown_2023D6B + adds r4, r2, 0 + cmp r0, 0 + beq _08028DDA + ldr r0, _08028DC8 @ =gUnknown_2023BE4 + ldrb r2, [r5] + movs r1, 0x58 + muls r1, r2 + adds r3, r1, r0 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08028DD4 + cmp r0, 0x8 + beq _08028DD4 + cmp r0, 0x4 + beq _08028DD4 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08028DD4 + cmp r0, 0x8 + beq _08028DD4 + cmp r0, 0x4 + beq _08028DD4 + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + beq _08028DD4 + ldr r0, _08028DCC @ =gUnknown_2023DFC + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08028DD4 + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08028DD4 + ldr r1, _08028DD0 @ =gUnknown_2023D50 + ldrh r0, [r3, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08028DDA + movs r0, 0x1 + b _08028DD8 + .align 2, 0 +_08028DBC: .4byte gUnknown_2022B4C +_08028DC0: .4byte gUnknown_2023D6B +_08028DC4: .4byte gUnknown_2023F1C +_08028DC8: .4byte gUnknown_2023BE4 +_08028DCC: .4byte gUnknown_2023DFC +_08028DD0: .4byte gUnknown_2023D50 +_08028DD4: + ldr r1, _08028E30 @ =gUnknown_2023D50 + movs r0, 0 +_08028DD8: + str r0, [r1] +_08028DDA: + ldrh r1, [r4] + movs r4, 0x80 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08028E50 + ldr r1, _08028E34 @ =gUnknown_2023BE4 + ldrb r3, [r5] + movs r0, 0x58 + muls r0, r3 + adds r2, r0, r1 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + beq _08028E3C + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + beq _08028E3C + ldr r0, _08028E38 @ =gUnknown_2023DFC + lsls r1, r3, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r1, 0 + ands r0, r4 + cmp r0, 0 + bne _08028E3C + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08028E3C + ldr r1, _08028E30 @ =gUnknown_2023D50 + ldrh r0, [r2, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08028E50 + movs r0, 0x1 + str r0, [r1] + b _08028E50 + .align 2, 0 +_08028E30: .4byte gUnknown_2023D50 +_08028E34: .4byte gUnknown_2023BE4 +_08028E38: .4byte gUnknown_2023DFC +_08028E3C: + ldr r1, _08028E44 @ =gUnknown_2023D50 + movs r0, 0 + str r0, [r1] + b _08028E50 + .align 2, 0 +_08028E44: .4byte gUnknown_2023D50 +_08028E48: + ldr r1, _08028E7C @ =gUnknown_2023D50 + movs r0, 0 + str r0, [r1] + ldr r5, _08028E80 @ =gUnknown_2023D6B +_08028E50: + ldr r0, _08028E84 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _08028E88 @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08028E6A +_08028E64: + ldr r1, _08028E7C @ =gUnknown_2023D50 + movs r0, 0 + str r0, [r1] +_08028E6A: + ldr r1, _08028E8C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08028E7C: .4byte gUnknown_2023D50 +_08028E80: .4byte gUnknown_2023D6B +_08028E84: .4byte gUnknown_2023D70 +_08028E88: .4byte gUnknown_825E45C +_08028E8C: .4byte gUnknown_2023D74 + thumb_func_end sub_8028CF0 + + thumb_func_start sub_8028E90 +sub_8028E90: @ 8028E90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08028EBC @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08028EC8 + ldr r1, _08028EC0 @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08028EC4 @ =gUnknown_2024284 + b _08028ED8 + .align 2, 0 +_08028EBC: .4byte gUnknown_2023D6B +_08028EC0: .4byte gUnknown_2023BCE +_08028EC4: .4byte gUnknown_2024284 +_08028EC8: + ldr r1, _08028EFC @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08028F00 @ =gUnknown_202402C +_08028ED8: + adds r5, r1, r0 + ldr r4, _08028F04 @ =gUnknown_2023D6C + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08028F0C + ldr r1, _08028EFC @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08028F08 @ =gUnknown_2024284 + b _08028F1C + .align 2, 0 +_08028EFC: .4byte gUnknown_2023BCE +_08028F00: .4byte gUnknown_202402C +_08028F04: .4byte gUnknown_2023D6C +_08028F08: .4byte gUnknown_2024284 +_08028F0C: + ldr r1, _08028F78 @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08028F7C @ =gUnknown_202402C +_08028F1C: + adds r4, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0 + bl sub_803FBE8 + mov r9, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0 + bl sub_803FBE8 + adds r7, r0, 0 + ldr r5, _08028F80 @ =gUnknown_2023D6C + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + ldr r1, _08028F84 @ =gUnknown_2023BE4 + adds r0, r1 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0xC + bne _08028F94 + ldr r1, _08028F88 @ =gUnknown_2023D74 + ldr r0, _08028F8C @ =gUnknown_81D9444 + str r0, [r1] + ldr r0, _08028F90 @ =gUnknown_2023D6A + strb r2, [r0] + ldrb r0, [r5] + movs r1, 0xC + bl sub_80C71D0 + b _0802902C + .align 2, 0 +_08028F78: .4byte gUnknown_2023BCE +_08028F7C: .4byte gUnknown_202402C +_08028F80: .4byte gUnknown_2023D6C +_08028F84: .4byte gUnknown_2023BE4 +_08028F88: .4byte gUnknown_2023D74 +_08028F8C: .4byte gUnknown_81D9444 +_08028F90: .4byte gUnknown_2023D6A +_08028F94: + mov r0, r10 + mov r1, r9 + bl sub_803F78C + adds r4, r0, 0 + mov r0, r8 + adds r1, r7, 0 + bl sub_803F78C + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08028FE4 + ldrb r0, [r5] + muls r0, r6 + ldr r4, _08029000 @ =gUnknown_2023BE4 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + bne _08028FE4 + mov r0, r10 + mov r1, r9 + bl sub_803F78C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08028FE4 + mov r0, r8 + adds r1, r7, 0 + bl sub_803F78C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08029008 +_08028FE4: + ldr r3, _08029004 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802902C + .align 2, 0 +_08029000: .4byte gUnknown_2023BE4 +_08029004: .4byte gUnknown_2023D74 +_08029008: + ldrb r0, [r5] + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r1, _0802903C @ =gUnknown_825E45C + ldr r0, _08029040 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 16 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r1, _08029044 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802902C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802903C: .4byte gUnknown_825E45C +_08029040: .4byte gUnknown_2023D6B +_08029044: .4byte gUnknown_2023D74 + thumb_func_end sub_8028E90 + + thumb_func_start sub_8029048 +sub_8029048: @ 8029048 + push {r4-r7,lr} + ldr r0, _080290B8 @ =gUnknown_2023BC8 + ldr r1, [r0] + cmp r1, 0 + beq _08029054 + b _080291C0 +_08029054: + ldr r5, _080290BC @ =gUnknown_2023D74 + ldr r2, [r5] + ldrb r0, [r2, 0x1] + cmp r0, 0xD + bne _080290D4 + ldr r2, _080290C0 @ =gUnknown_2023BC4 + strb r1, [r2] + ldr r0, _080290C4 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r1, r0 + bcs _08029164 + ldr r7, _080290C8 @ =gUnknown_825E45C + adds r4, r2, 0 + ldr r5, _080290CC @ =gUnknown_2023BE4 + adds r6, r5, 0 + adds r6, 0x50 +_08029074: + ldr r0, _080290D0 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080290A2 + movs r0, 0x58 + muls r2, r0 + adds r0, r5, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r2, r6 + ldr r2, [r2] + movs r0, 0 + bl sub_800E658 + ldrb r0, [r4] + bl sub_8017248 +_080290A2: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _080290C4 @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08029074 + b _08029164 + .align 2, 0 +_080290B8: .4byte gUnknown_2023BC8 +_080290BC: .4byte gUnknown_2023D74 +_080290C0: .4byte gUnknown_2023BC4 +_080290C4: .4byte gUnknown_2023BCC +_080290C8: .4byte gUnknown_825E45C +_080290CC: .4byte gUnknown_2023BE4 +_080290D0: .4byte gUnknown_2023D70 +_080290D4: + cmp r0, 0x4 + bne _0802918C + ldr r4, _08029170 @ =gUnknown_2023BC4 + ldr r5, _08029174 @ =gUnknown_2023D6B + ldrb r0, [r5] + strb r0, [r4] + ldr r6, _08029178 @ =gUnknown_2023D70 + ldrb r1, [r6] + ldr r7, _0802917C @ =gUnknown_825E45C + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08029114 + ldr r3, _08029180 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl sub_800E658 + ldrb r0, [r4] + bl sub_8017248 +_08029114: + ldr r0, _08029184 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08029164 + ldrb r0, [r5] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + strb r0, [r4] + ldrb r1, [r6] + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08029164 + ldr r3, _08029180 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl sub_800E658 + ldrb r0, [r4] + bl sub_8017248 +_08029164: + ldr r1, _08029188 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + b _080291C0 + .align 2, 0 +_08029170: .4byte gUnknown_2023BC4 +_08029174: .4byte gUnknown_2023D6B +_08029178: .4byte gUnknown_2023D70 +_0802917C: .4byte gUnknown_825E45C +_08029180: .4byte gUnknown_2023BE4 +_08029184: .4byte gUnknown_2022B4C +_08029188: .4byte gUnknown_2023D74 +_0802918C: + ldrb r0, [r2, 0x1] + bl sub_8016E24 + ldr r4, _080291C8 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r3, _080291CC @ =gUnknown_2023BE4 + ldrb r1, [r4] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl sub_800E658 + ldrb r0, [r4] + bl sub_8017248 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_080291C0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080291C8: .4byte gUnknown_2023BC4 +_080291CC: .4byte gUnknown_2023BE4 + thumb_func_end sub_8029048 + + thumb_func_start sub_80291D0 +sub_80291D0: @ 80291D0 + push {r4-r6,lr} + ldr r6, _08029200 @ =gUnknown_2023DE4 + ldr r4, _08029204 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751D8 + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08029210 + ldr r2, _08029208 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0802920C @ =gUnknown_2023E82 + strb r5, [r0, 0x5] + b _0802925E + .align 2, 0 +_08029200: .4byte gUnknown_2023DE4 +_08029204: .4byte gUnknown_2023D6B +_08029208: .4byte gUnknown_2023DCC +_0802920C: .4byte gUnknown_2023E82 +_08029210: + ldrb r0, [r4] + bl sub_80751D8 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strb r1, [r0, 0x4] + ldrb r0, [r4] + bl sub_80751D8 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r4] + strb r1, [r0, 0x5] + ldrb r0, [r4] + bl sub_80751D8 + ldr r2, _0802926C @ =gUnknown_2023DDE + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + movs r3, 0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _08029270 @ =gUnknown_2023E82 + strb r3, [r0, 0x5] +_0802925E: + ldr r1, _08029274 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802926C: .4byte gUnknown_2023DDE +_08029270: .4byte gUnknown_2023E82 +_08029274: .4byte gUnknown_2023D74 + thumb_func_end sub_80291D0 + + thumb_func_start sub_8029278 +sub_8029278: @ 8029278 + push {lr} + ldr r1, _080292A8 @ =gUnknown_2023BE4 + ldr r0, _080292AC @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r3, 0x80 + lsls r3, 13 + adds r2, r1, 0 + ands r2, r3 + cmp r2, 0 + beq _080292B8 + ldr r2, _080292B0 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080292B4 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080292C0 + .align 2, 0 +_080292A8: .4byte gUnknown_2023BE4 +_080292AC: .4byte gUnknown_2023D6B +_080292B0: .4byte gUnknown_2023DCC +_080292B4: .4byte gUnknown_2023E82 +_080292B8: + orrs r1, r3 + str r1, [r0] + ldr r0, _080292CC @ =gUnknown_2023E82 + strb r2, [r0, 0x5] +_080292C0: + ldr r1, _080292D0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080292CC: .4byte gUnknown_2023E82 +_080292D0: .4byte gUnknown_2023D74 + thumb_func_end sub_8029278 + + thumb_func_start sub_80292D4 +sub_80292D4: @ 80292D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _0802932C @ =gUnknown_2023D4C + ldr r2, _08029330 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08029334 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r7, _08029338 @ =gUnknown_2023BE4 + ldr r0, _0802933C @ =gUnknown_2023D6C + mov r12, r0 + ldrb r1, [r0] + movs r6, 0x58 + adds r0, r1, 0 + muls r0, r6 + adds r5, r7, 0 + adds r5, 0x50 + adds r0, r5 + ldr r0, [r0] + movs r4, 0x80 + lsls r4, 14 + ands r0, r4 + cmp r0, 0 + bne _0802931A + ldr r0, _08029340 @ =gUnknown_2023DFC + lsls r1, 2 + adds r1, r0 + ldr r2, [r1] + ldr r0, _08029344 @ =0x000400c0 + ands r2, r0 + cmp r2, 0 + beq _08029350 +_0802931A: + ldr r2, _08029348 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802934C @ =gUnknown_2023E82 + movs r0, 0x1 + b _08029464 + .align 2, 0 +_0802932C: .4byte gUnknown_2023D4C +_08029330: .4byte 0x0000ffff +_08029334: .4byte gUnknown_2023D74 +_08029338: .4byte gUnknown_2023BE4 +_0802933C: .4byte gUnknown_2023D6C +_08029340: .4byte gUnknown_2023DFC +_08029344: .4byte 0x000400c0 +_08029348: .4byte gUnknown_2023DCC +_0802934C: .4byte gUnknown_2023E82 +_08029350: + ldr r3, _08029424 @ =gUnknown_2023D6B + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r6 + adds r1, r5 + ldr r0, [r1] + orrs r0, r4 + str r0, [r1] + ldr r4, _08029428 @ =gUnknown_2023E0C + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x4] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r12 + ldrb r1, [r2] + muls r1, r6 + adds r2, r7, 0 + adds r2, 0x48 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x18] + movs r0, 0xF + ands r0, r2 + strb r0, [r1, 0x18] + ldr r1, _0802942C @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + mov r2, r12 + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r0, [r3] + muls r0, r6 + adds r5, r0, r7 + ldrb r0, [r2] + muls r0, r6 + adds r2, r0, r7 + movs r4, 0 + adds r6, r3, 0 + ldr r0, _08029430 @ =gUnknown_2023BC4 + mov r8, r0 +_080293E8: + adds r0, r5, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x23 + bls _080293E8 + movs r4, 0 + ldr r7, _08029434 @ =gUnknown_8250C04 + ldr r3, _08029438 @ =gUnknown_2023BF0 + adds r5, r3, 0 + adds r5, 0x18 +_08029400: + lsls r1, r4, 1 + ldrb r2, [r6] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r1, r3 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x4] + cmp r1, 0x4 + bhi _0802943C + adds r0, r4, r2 + adds r0, r5 + b _08029442 + .align 2, 0 +_08029424: .4byte gUnknown_2023D6B +_08029428: .4byte gUnknown_2023E0C +_0802942C: .4byte gUnknown_2022AB8 +_08029430: .4byte gUnknown_2023BC4 +_08029434: .4byte gUnknown_8250C04 +_08029438: .4byte gUnknown_2023BF0 +_0802943C: + adds r0, r4, r2 + adds r0, r5 + movs r1, 0x5 +_08029442: + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x3 + ble _08029400 + ldrb r0, [r6] + mov r1, r8 + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl sub_800EB74 + mov r2, r8 + ldrb r0, [r2] + bl sub_8017248 + ldr r1, _08029470 @ =gUnknown_2023E82 + movs r0, 0 +_08029464: + strb r0, [r1, 0x5] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029470: .4byte gUnknown_2023E82 + thumb_func_end sub_80292D4 + + thumb_func_start sub_8029474 +sub_8029474: @ 8029474 + push {r4-r7,lr} + ldr r7, _080294A4 @ =gUnknown_2023BE4 + ldr r6, _080294A8 @ =gUnknown_2023D6B + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r3, r0, r7 + ldrh r0, [r3, 0x2C] + lsrs r1, r0, 2 + adds r2, r1, 0 + cmp r1, 0 + bne _0802948E + movs r2, 0x1 +_0802948E: + ldrh r0, [r3, 0x28] + cmp r0, r2 + bhi _080294B4 + ldr r1, _080294AC @ =gUnknown_2023D50 + movs r0, 0 + str r0, [r1] + ldr r1, _080294B0 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08029508 + .align 2, 0 +_080294A4: .4byte gUnknown_2023BE4 +_080294A8: .4byte gUnknown_2023D6B +_080294AC: .4byte gUnknown_2023D50 +_080294B0: .4byte gUnknown_2023E82 +_080294B4: + ldr r4, _08029518 @ =gUnknown_2023D50 + str r1, [r4] + cmp r1, 0 + bne _080294C0 + movs r0, 0x1 + str r0, [r4] +_080294C0: + ldrb r0, [r6] + adds r2, r0, 0 + muls r2, r5 + adds r3, r7, 0 + adds r3, 0x50 + adds r2, r3 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 17 + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r3 + ldr r0, [r1] + ldr r2, _0802951C @ =0xffff1fff + ands r0, r2 + str r0, [r1] + ldr r2, _08029520 @ =gUnknown_2023E0C + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, [r4] + movs r2, 0 + strb r1, [r0, 0xA] + ldr r0, _08029524 @ =gUnknown_2023E82 + strb r2, [r0, 0x5] + ldr r2, _08029528 @ =gUnknown_2023DD0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 1 + orrs r0, r1 + str r0, [r2] +_08029508: + ldr r1, _0802952C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029518: .4byte gUnknown_2023D50 +_0802951C: .4byte 0xffff1fff +_08029520: .4byte gUnknown_2023E0C +_08029524: .4byte gUnknown_2023E82 +_08029528: .4byte gUnknown_2023DD0 +_0802952C: .4byte gUnknown_2023D74 + thumb_func_end sub_8029474 + + thumb_func_start sub_8029530 +sub_8029530: @ 8029530 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r3, 0 + ldr r0, _08029570 @ =gUnknown_82507E8 + ldrh r1, [r0] + ldr r4, _08029574 @ =0x0000fffe + adds r5, r0, 0 + cmp r1, r4 + beq _08029558 + cmp r1, r2 + beq _08029558 + adds r1, r5, 0 +_0802954A: + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r1] + cmp r0, r4 + beq _08029558 + cmp r0, r2 + bne _0802954A +_08029558: + lsls r0, r3, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, _08029574 @ =0x0000fffe + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08029570: .4byte gUnknown_82507E8 +_08029574: .4byte 0x0000fffe + thumb_func_end sub_8029530 + + thumb_func_start sub_8029578 +sub_8029578: @ 8029578 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _080295F0 @ =gUnknown_2023D4C + ldr r1, _080295F4 @ =0x0000ffff + adds r7, r1, 0 + strh r7, [r0] + ldr r5, _080295F8 @ =gUnknown_2023D98 + ldr r6, _080295FC @ =gUnknown_2023D6C + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + bl sub_8029530 + lsls r0, 24 + cmp r0, 0 + bne _080295D2 + ldr r3, _08029600 @ =gUnknown_2023BE4 + ldr r2, _08029604 @ =gUnknown_2023D6B + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r9, r2 + cmp r1, 0 + bne _080295D2 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + cmp r1, 0 + beq _080295D2 + cmp r1, r7 + bne _0802960C +_080295D2: + ldr r3, _08029608 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08029744 + .align 2, 0 +_080295F0: .4byte gUnknown_2023D4C +_080295F4: .4byte 0x0000ffff +_080295F8: .4byte gUnknown_2023D98 +_080295FC: .4byte gUnknown_2023D6C +_08029600: .4byte gUnknown_2023BE4 +_08029604: .4byte gUnknown_2023D6B +_08029608: .4byte gUnknown_2023D74 +_0802960C: + movs r2, 0 + mov r3, r12 + adds r3, 0xC + adds r0, r4, r3 + ldrh r0, [r0] + ldr r4, _0802969C @ =gUnknown_2023D74 + mov r10, r4 + cmp r0, r1 + beq _08029646 + mov r8, r3 + adds r7, r5, 0 + adds r5, r6, 0 + mov r4, r9 + movs r3, 0x58 +_08029628: + adds r2, 0x1 + cmp r2, 0x3 + bgt _08029646 + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + add r1, r8 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r7 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bne _08029628 +_08029646: + cmp r2, 0x4 + bne _08029728 + ldr r5, _080296A0 @ =gUnknown_2023D48 + ldrb r1, [r5] + lsls r1, 1 + mov r2, r9 + ldrb r0, [r2] + movs r6, 0x58 + muls r0, r6 + adds r1, r0 + mov r0, r12 + adds r0, 0xC + adds r1, r0 + ldr r2, _080296A4 @ =gUnknown_2023D98 + ldr r3, _080296A8 @ =gUnknown_2023D6C + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r4, _080296AC @ =gUnknown_8250C04 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r4, [r0, 0x4] + cmp r4, 0x4 + bhi _080296B0 + mov r1, r9 + ldrb r0, [r1] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + strb r4, [r0] + b _080296C4 + .align 2, 0 +_0802969C: .4byte gUnknown_2023D74 +_080296A0: .4byte gUnknown_2023D48 +_080296A4: .4byte gUnknown_2023D98 +_080296A8: .4byte gUnknown_2023D6C +_080296AC: .4byte gUnknown_8250C04 +_080296B0: + mov r4, r9 + ldrb r0, [r4] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] +_080296C4: + ldr r1, _0802971C @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08029720 @ =gUnknown_2023E0C + mov r2, r9 + ldrb r0, [r2] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r4, [r2, 0x18] + lsrs r3, r4, 4 + ldr r1, _08029724 @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + orrs r1, r3 + lsls r1, 4 + movs r0, 0xF + ands r0, r4 + orrs r0, r1 + strb r0, [r2, 0x18] + mov r4, r10 + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + b _08029744 + .align 2, 0 +_0802971C: .4byte gUnknown_2022AB8 +_08029720: .4byte gUnknown_2023E0C +_08029724: .4byte gUnknown_825E45C +_08029728: + mov r0, r10 + ldr r2, [r0] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + mov r2, r10 + str r1, [r2] +_08029744: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8029578 + + thumb_func_start sub_8029754 +sub_8029754: @ 8029754 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _080297D4 @ =gUnknown_2023D4A + movs r6, 0xB1 + lsls r6, 1 + ldr r5, _080297D8 @ =gUnknown_82507E8 + ldr r0, _080297DC @ =gUnknown_2023D74 + mov r8, r0 +_08029766: + bl sub_8044EC8 + ldr r2, _080297E0 @ =0x000001ff + adds r1, r2, 0 + ands r0, r1 + adds r0, 0x1 + strh r0, [r7] + cmp r0, r6 + bhi _08029766 + movs r0, 0x3 +_0802977A: + subs r0, 0x1 + cmp r0, 0 + bge _0802977A + ldr r4, _080297D4 @ =gUnknown_2023D4A + ldrh r2, [r4] + ldr r3, _080297E4 @ =0x0000ffff + subs r0, r5, 0x2 +_08029788: + adds r0, 0x2 + ldrh r1, [r0] + cmp r1, r2 + beq _08029794 + cmp r1, r3 + bne _08029788 +_08029794: + ldr r0, _080297E4 @ =0x0000ffff + cmp r1, r0 + bne _08029766 + ldr r2, _080297E8 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _080297EC @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r3, _080297F0 @ =gUnknown_81D65A8 + ldr r2, _080297F4 @ =gUnknown_8250C04 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + mov r1, r8 + str r0, [r1] + ldrh r0, [r4] + movs r1, 0 + bl sub_801D05C + ldr r1, _080297F8 @ =gUnknown_2023D6C + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080297D4: .4byte gUnknown_2023D4A +_080297D8: .4byte gUnknown_82507E8 +_080297DC: .4byte gUnknown_2023D74 +_080297E0: .4byte 0x000001ff +_080297E4: .4byte 0x0000ffff +_080297E8: .4byte gUnknown_2023DD0 +_080297EC: .4byte 0xfffffbff +_080297F0: .4byte gUnknown_81D65A8 +_080297F4: .4byte gUnknown_8250C04 +_080297F8: .4byte gUnknown_2023D6C + thumb_func_end sub_8029754 + + thumb_func_start sub_80297FC +sub_80297FC: @ 80297FC + ldr r3, _0802981C @ =gUnknown_2023D50 + ldr r2, _08029820 @ =gUnknown_2023BE4 + ldr r0, _08029824 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r0, [r0] + str r0, [r3] + ldr r1, _08029828 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802981C: .4byte gUnknown_2023D50 +_08029820: .4byte gUnknown_2023BE4 +_08029824: .4byte gUnknown_2023D6B +_08029828: .4byte gUnknown_2023D74 + thumb_func_end sub_80297FC + + thumb_func_start sub_802982C +sub_802982C: @ 802982C + push {r4,lr} + movs r4, 0xF +_08029830: + bl sub_8044EC8 + adds r3, r4, 0 + ands r3, r0 + cmp r3, 0xA + bgt _08029830 + lsls r0, r3, 2 + adds r0, r3 + lsls r3, r0, 1 + ldr r4, _08029870 @ =gUnknown_2023D50 + ldr r2, _08029874 @ =gUnknown_2023BE4 + ldr r0, _08029878 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + adds r0, r3, 0 + adds r0, 0x32 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + ldr r1, _0802987C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08029870: .4byte gUnknown_2023D50 +_08029874: .4byte gUnknown_2023BE4 +_08029878: .4byte gUnknown_2023D6B +_0802987C: .4byte gUnknown_2023D74 + thumb_func_end sub_802982C + + thumb_func_start sub_8029880 +sub_8029880: @ 8029880 + push {r4-r6,lr} + ldr r4, _080298F0 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080298F4 @ =gUnknown_2023E8C + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xC] + bl sub_80751C4 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0x4 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _08029934 + cmp r6, r2 + beq _08029934 + ldr r6, _080298F8 @ =gUnknown_2023BE4 + adds r0, r1, r5 + ldrb r0, [r0, 0xC] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08029934 + ldr r1, _080298FC @ =gUnknown_2023D50 + lsls r0, r3, 1 + str r0, [r1] + ldr r1, _08029900 @ =gUnknown_2023DE4 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08029908 + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08029908 + ldr r0, _08029904 @ =gUnknown_2023D6C + strb r1, [r0] + b _08029918 + .align 2, 0 +_080298F0: .4byte gUnknown_2023D6B +_080298F4: .4byte gUnknown_2023E8C +_080298F8: .4byte gUnknown_2023BE4 +_080298FC: .4byte gUnknown_2023D50 +_08029900: .4byte gUnknown_2023DE4 +_08029904: .4byte gUnknown_2023D6C +_08029908: + ldr r2, _08029924 @ =gUnknown_2023D6C + ldr r1, _08029928 @ =gUnknown_2023E8C + ldr r0, _0802992C @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xC] + strb r0, [r2] +_08029918: + ldr r1, _08029930 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029964 + .align 2, 0 +_08029924: .4byte gUnknown_2023D6C +_08029928: .4byte gUnknown_2023E8C +_0802992C: .4byte gUnknown_2023D6B +_08029930: .4byte gUnknown_2023D74 +_08029934: + ldr r2, _0802996C @ =gUnknown_2023ECC + ldr r0, _08029970 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08029974 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029964: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802996C: .4byte gUnknown_2023ECC +_08029970: .4byte gUnknown_2023D6B +_08029974: .4byte gUnknown_2023D74 + thumb_func_end sub_8029880 + + thumb_func_start sub_8029978 +sub_8029978: @ 8029978 + push {r4-r6,lr} + ldr r4, _080299E8 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080299EC @ =gUnknown_2023E8C + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xD] + bl sub_80751C4 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _08029A2C + cmp r6, r2 + beq _08029A2C + ldr r6, _080299F0 @ =gUnknown_2023BE4 + adds r0, r1, r5 + ldrb r0, [r0, 0xD] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08029A2C + ldr r1, _080299F4 @ =gUnknown_2023D50 + lsls r0, r3, 1 + str r0, [r1] + ldr r1, _080299F8 @ =gUnknown_2023DE4 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08029A00 + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08029A00 + ldr r0, _080299FC @ =gUnknown_2023D6C + strb r1, [r0] + b _08029A10 + .align 2, 0 +_080299E8: .4byte gUnknown_2023D6B +_080299EC: .4byte gUnknown_2023E8C +_080299F0: .4byte gUnknown_2023BE4 +_080299F4: .4byte gUnknown_2023D50 +_080299F8: .4byte gUnknown_2023DE4 +_080299FC: .4byte gUnknown_2023D6C +_08029A00: + ldr r2, _08029A1C @ =gUnknown_2023D6C + ldr r1, _08029A20 @ =gUnknown_2023E8C + ldr r0, _08029A24 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xD] + strb r0, [r2] +_08029A10: + ldr r1, _08029A28 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029A5C + .align 2, 0 +_08029A1C: .4byte gUnknown_2023D6C +_08029A20: .4byte gUnknown_2023E8C +_08029A24: .4byte gUnknown_2023D6B +_08029A28: .4byte gUnknown_2023D74 +_08029A2C: + ldr r2, _08029A64 @ =gUnknown_2023ECC + ldr r0, _08029A68 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08029A6C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029A5C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08029A64: .4byte gUnknown_2023ECC +_08029A68: .4byte gUnknown_2023D6B +_08029A6C: .4byte gUnknown_2023D74 + thumb_func_end sub_8029978 + + thumb_func_start sub_8029A70 +sub_8029A70: @ 8029A70 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0 + ldr r2, _08029B70 @ =gUnknown_2023BE4 + ldr r3, _08029B74 @ =gUnknown_2023D6C + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r7, r2, 0 + adds r7, 0xC + adds r0, r7 + ldr r5, _08029B78 @ =gUnknown_2023D98 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r0] + mov r9, r2 + adds r6, r3, 0 + ldr r2, _08029B7C @ =gUnknown_2023E0C + mov r8, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _08029AC4 + mov r12, r6 + movs r3, 0x58 +_08029AA4: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08029AC4 + lsls r2, r4, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08029AA4 +_08029AC4: + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _08029B88 + cmp r4, 0x4 + beq _08029B88 + movs r5, 0x58 + adds r0, r1, 0 + muls r0, r5 + adds r0, r4, r0 + mov r1, r9 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08029B88 + ldr r1, _08029B80 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r2, r4, 1 + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + mov r3, r9 + adds r3, 0xC + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + muls r1, r5 + adds r2, r1 + adds r2, r3 + ldrh r1, [r2] + strh r1, [r0, 0x4] + bl sub_8044EC8 + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x2 + ldrb r3, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r3, [r1, 0xB] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldr r1, _08029B84 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029BA2 + .align 2, 0 +_08029B70: .4byte gUnknown_2023BE4 +_08029B74: .4byte gUnknown_2023D6C +_08029B78: .4byte gUnknown_2023D98 +_08029B7C: .4byte gUnknown_2023E0C +_08029B80: .4byte gUnknown_2022AB8 +_08029B84: .4byte gUnknown_2023D74 +_08029B88: + ldr r3, _08029BB0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029BA2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029BB0: .4byte gUnknown_2023D74 + thumb_func_end sub_8029A70 + + thumb_func_start sub_8029BB4 +sub_8029BB4: @ 8029BB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r3, _08029CA8 @ =gUnknown_2023BE4 + ldr r4, _08029CAC @ =gUnknown_2023D6C + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r6, r3, 0 + adds r6, 0xC + adds r0, r6 + ldr r2, _08029CB0 @ =gUnknown_2023D98 + lsls r1, 1 + adds r1, r2 + ldrh r0, [r0] + mov r10, r3 + mov r8, r2 + ldr r2, _08029CB4 @ =gUnknown_2023E0C + mov r9, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _08029C0E + mov r12, r4 + adds r7, r6, 0 + mov r6, r8 + movs r3, 0x58 +_08029BEE: + adds r5, 0x1 + cmp r5, 0x3 + bgt _08029C0E + lsls r2, r5, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08029BEE +_08029C0E: + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r2, [r0] + cmp r2, 0xA5 + beq _08029C22 + cmp r2, 0xE3 + beq _08029C22 + cmp r2, 0x77 + bne _08029C24 +_08029C22: + movs r5, 0x4 +_08029C24: + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r2, r9 + adds r3, r0, r2 + ldrh r0, [r3, 0x6] + cmp r0, 0 + bne _08029CBC + cmp r5, 0x4 + beq _08029CBC + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r5, r2 + mov r1, r10 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08029CBC + lsls r0, r5, 1 + adds r0, r2 + subs r1, 0x18 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x6] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + strb r5, [r0, 0xC] + bl sub_8044EC8 + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r9 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x3 + ldrb r3, [r1, 0xE] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldrb r0, [r4] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r3, [r1, 0xE] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldr r1, _08029CB8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029CD6 + .align 2, 0 +_08029CA8: .4byte gUnknown_2023BE4 +_08029CAC: .4byte gUnknown_2023D6C +_08029CB0: .4byte gUnknown_2023D98 +_08029CB4: .4byte gUnknown_2023E0C +_08029CB8: .4byte gUnknown_2023D74 +_08029CBC: + ldr r3, _08029CE4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029CD6: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029CE4: .4byte gUnknown_2023D74 + thumb_func_end sub_8029BB4 + + thumb_func_start sub_8029CE8 +sub_8029CE8: @ 8029CE8 + push {r4-r7,lr} + ldr r6, _08029D68 @ =gUnknown_2023BE4 + ldr r0, _08029D6C @ =gUnknown_2023D6C + mov r12, r0 + ldrb r0, [r0] + movs r7, 0x58 + adds r2, r0, 0 + muls r2, r7 + adds r0, r6, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _08029D88 + ldr r5, _08029D70 @ =gUnknown_2023D6B + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + ldrh r3, [r0, 0x28] + adds r0, r2, r6 + ldrh r1, [r0, 0x28] + adds r3, r1 + asrs r3, 1 + ldr r4, _08029D74 @ =gUnknown_2023D50 + subs r1, r3 + str r1, [r4] + ldr r2, _08029D78 @ =gUnknown_2023FC4 + strb r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + asrs r0, 8 + strb r0, [r2, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + asrs r0, 16 + strb r0, [r2, 0x2] + lsrs r1, 24 + strb r1, [r2, 0x3] + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + ldrh r0, [r0, 0x28] + subs r0, r3 + str r0, [r4] + ldr r2, _08029D7C @ =gUnknown_2023ECC + mov r0, r12 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r0, r2 + ldr r1, _08029D80 @ =0x0000ffff + str r1, [r0] + ldr r1, _08029D84 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029DA2 + .align 2, 0 +_08029D68: .4byte gUnknown_2023BE4 +_08029D6C: .4byte gUnknown_2023D6C +_08029D70: .4byte gUnknown_2023D6B +_08029D74: .4byte gUnknown_2023D50 +_08029D78: .4byte gUnknown_2023FC4 +_08029D7C: .4byte gUnknown_2023ECC +_08029D80: .4byte 0x0000ffff +_08029D84: .4byte gUnknown_2023D74 +_08029D88: + ldr r3, _08029DA8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029DA2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029DA8: .4byte gUnknown_2023D74 + thumb_func_end sub_8029CE8 + + thumb_func_start sub_8029DAC +sub_8029DAC: @ 8029DAC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, _08029E14 @ =gUnknown_2023DA0 + ldr r4, _08029E18 @ =gUnknown_2023D6B + ldrb r0, [r4] + lsls r0, 1 + adds r2, r0, r1 + ldrh r1, [r2] + cmp r1, 0 + beq _08029DF6 + ldr r0, _08029E1C @ =0x0000ffff + cmp r1, r0 + beq _08029DF6 + ldrh r0, [r2] + bl sub_802A1C0 + lsls r0, 24 + cmp r0, 0 + beq _08029E94 + ldr r1, _08029E20 @ =gUnknown_2023BE4 + ldr r2, _08029E24 @ =gUnknown_2023DC0 + ldrb r0, [r4] + adds r0, r2 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _08029E94 +_08029DF6: + ldr r3, _08029E28 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08029F80 + .align 2, 0 +_08029E14: .4byte gUnknown_2023DA0 +_08029E18: .4byte gUnknown_2023D6B +_08029E1C: .4byte 0x0000ffff +_08029E20: .4byte gUnknown_2023BE4 +_08029E24: .4byte gUnknown_2023DC0 +_08029E28: .4byte gUnknown_2023D74 +_08029E2C: + mov r0, r12 + strb r5, [r0] + mov r1, r10 + ldrb r0, [r1] + muls r0, r2 + adds r0, r7 + adds r0, 0x22 + strb r5, [r0] + ldr r1, _08029E50 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _08029E54 @ =gUnknown_2023D74 + b _08029E82 + .align 2, 0 +_08029E50: .4byte gUnknown_2022AB8 +_08029E54: .4byte gUnknown_2023D74 +_08029E58: + mov r0, r8 + adds r0, 0x1 + adds r0, r3 + ldrb r2, [r0] + strb r2, [r4] + mov r4, r10 + ldrb r0, [r4] + muls r0, r6 + ldr r7, _08029E8C @ =gUnknown_2023BE4 + adds r0, r7 + adds r0, 0x22 + strb r2, [r0] + ldr r1, _08029E90 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + mov r1, r12 +_08029E82: + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029F80 + .align 2, 0 +_08029E8C: .4byte gUnknown_2023BE4 +_08029E90: .4byte gUnknown_2022AB8 +_08029E94: + movs r4, 0 + mov r8, r4 + movs r7, 0x7F + mov r9, r7 +_08029E9C: + bl sub_8044EC8 + mov r4, r9 + ands r4, r0 + cmp r4, 0x70 + bhi _08029E9C + lsls r0, r4, 1 + adds r4, r0, r4 + ldr r6, _08029F90 @ =gUnknown_824F050 + adds r3, r4, r6 + ldr r1, _08029F94 @ =gUnknown_2023DA8 + ldr r2, _08029F98 @ =gUnknown_2023D6B + ldrb r5, [r2] + lsls r0, r5, 1 + adds r0, r1 + ldrb r1, [r3] + mov r10, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _08029EF8 + adds r0, r4, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08029EF8 + ldr r7, _08029F9C @ =gUnknown_2023BE4 + movs r2, 0x58 + adds r0, r5, 0 + muls r0, r2 + adds r3, r0, r7 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + adds r0, r4, 0x1 + adds r0, r6 + ldrb r5, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r5, 0 + cmp r0, r1 + beq _08029EF8 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _08029E2C +_08029EF8: + movs r7, 0x1 + add r8, r7 + ldr r0, _08029FA0 @ =0x000003e7 + cmp r8, r0 + ble _08029E9C + movs r0, 0 + mov r8, r0 + ldr r1, _08029FA4 @ =gUnknown_2023D74 + mov r12, r1 + ldr r3, _08029F90 @ =gUnknown_824F050 + adds r0, r4, 0x1 + adds r0, r3 + mov r9, r0 + adds r5, r3, 0 +_08029F14: + ldrb r1, [r5] + cmp r1, 0xFF + bgt _08029F1E + cmp r1, 0xFE + bge _08029F58 +_08029F1E: + mov r4, r10 + ldrb r2, [r4] + lsls r0, r2, 1 + ldr r7, _08029F94 @ =gUnknown_2023DA8 + adds r0, r7 + ldrh r0, [r0] + cmp r1, r0 + bne _08029F58 + ldrb r0, [r5, 0x2] + cmp r0, 0x5 + bhi _08029F58 + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + ldr r1, _08029F9C @ =gUnknown_2023BE4 + adds r2, r0, r1 + adds r4, r2, 0 + adds r4, 0x21 + ldrb r0, [r4] + mov r7, r9 + ldrb r1, [r7] + cmp r0, r1 + beq _08029F58 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _08029F58 + b _08029E58 +_08029F58: + adds r5, 0x3 + movs r0, 0x3 + add r8, r0 + ldr r0, _08029FA8 @ =0x0000014f + cmp r8, r0 + bls _08029F14 + mov r1, r12 + ldr r2, [r1] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + mov r4, r12 + str r1, [r4] +_08029F80: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029F90: .4byte gUnknown_824F050 +_08029F94: .4byte gUnknown_2023DA8 +_08029F98: .4byte gUnknown_2023D6B +_08029F9C: .4byte gUnknown_2023BE4 +_08029FA0: .4byte 0x000003e7 +_08029FA4: .4byte gUnknown_2023D74 +_08029FA8: .4byte 0x0000014f + thumb_func_end sub_8029DAC + + thumb_func_start sub_8029FAC +sub_8029FAC: @ 8029FAC + push {r4,lr} + ldr r4, _08029FF0 @ =gUnknown_2023DFC + ldr r3, _08029FF4 @ =gUnknown_2023D6C + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + str r0, [r1] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x10 + orrs r0, r2 + str r0, [r1] + ldr r2, _08029FF8 @ =gUnknown_2023E0C + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _08029FFC @ =gUnknown_2023D6B + ldrb r1, [r1] + strb r1, [r0, 0x15] + ldr r1, _0802A000 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08029FF0: .4byte gUnknown_2023DFC +_08029FF4: .4byte gUnknown_2023D6C +_08029FF8: .4byte gUnknown_2023E0C +_08029FFC: .4byte gUnknown_2023D6B +_0802A000: .4byte gUnknown_2023D74 + thumb_func_end sub_8029FAC + + thumb_func_start sub_802A004 +sub_802A004: @ 802A004 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, _0802A164 @ =gUnknown_2023D4C + ldr r1, _0802A168 @ =0x0000ffff + adds r5, r1, 0 + strh r5, [r0] + ldr r3, _0802A16C @ =gUnknown_2023BE4 + ldr r2, _0802A170 @ =gUnknown_2023D6B + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r10, r2 + cmp r1, 0 + beq _0802A03C + b _0802A190 +_0802A03C: + ldr r0, _0802A174 @ =gUnknown_2023D90 + ldr r2, _0802A178 @ =gUnknown_2023D6C + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldrh r1, [r1] + mov r9, r0 + mov r8, r2 + cmp r1, 0xA5 + bne _0802A052 + b _0802A190 +_0802A052: + cmp r1, 0 + bne _0802A058 + b _0802A190 +_0802A058: + cmp r1, r5 + bne _0802A05E + b _0802A190 +_0802A05E: + cmp r1, 0xA6 + bne _0802A064 + b _0802A190 +_0802A064: + movs r7, 0 + mov r5, r9 + mov r0, r12 + adds r0, 0xC + adds r1, r4, r0 + mov r3, r8 +_0802A070: + ldrh r2, [r1] + cmp r2, 0xA6 + beq _0802A082 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r2, r0 + beq _0802A08A +_0802A082: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _0802A070 +_0802A08A: + cmp r7, 0x4 + beq _0802A090 + b _0802A190 +_0802A090: + ldr r4, _0802A17C @ =gUnknown_2023D48 + ldrb r1, [r4] + lsls r1, 1 + mov r2, r10 + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r1, r0 + mov r6, r12 + adds r6, 0xC + adds r1, r6 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + mov r1, r10 + ldrb r0, [r1] + adds r2, r0, 0 + muls r2, r3 + ldrb r4, [r4] + adds r2, r4 + mov r5, r12 + adds r5, 0x24 + adds r2, r5 + ldr r4, _0802A180 @ =gUnknown_8250C04 + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + strb r0, [r2] + ldr r1, _0802A184 @ =gUnknown_2023BC4 + mov r2, r10 + ldrb r0, [r2] + strb r0, [r1] + movs r7, 0 + ldrb r0, [r2] + muls r0, r3 + adds r4, r0, r5 + adds r3, r0, 0 + add r2, sp, 0x4 + add r5, sp, 0xC +_0802A0F2: + adds r0, r3, r6 + ldrh r0, [r0] + strh r0, [r2] + adds r1, r5, r7 + ldrb r0, [r4] + strb r0, [r1] + adds r4, 0x1 + adds r3, 0x2 + adds r2, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _0802A0F2 + add r2, sp, 0x4 + mov r0, r10 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x3B + ldrb r0, [r0] + strb r0, [r2, 0xC] + str r2, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl sub_800DFF0 + ldr r0, _0802A184 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _0802A188 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r3, _0802A174 @ =gUnknown_2023D90 + ldr r2, _0802A178 @ =gUnknown_2023D6C + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802A18C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A1AA + .align 2, 0 +_0802A164: .4byte gUnknown_2023D4C +_0802A168: .4byte 0x0000ffff +_0802A16C: .4byte gUnknown_2023BE4 +_0802A170: .4byte gUnknown_2023D6B +_0802A174: .4byte gUnknown_2023D90 +_0802A178: .4byte gUnknown_2023D6C +_0802A17C: .4byte gUnknown_2023D48 +_0802A180: .4byte gUnknown_8250C04 +_0802A184: .4byte gUnknown_2023BC4 +_0802A188: .4byte gUnknown_2022AB8 +_0802A18C: .4byte gUnknown_2023D74 +_0802A190: + ldr r3, _0802A1BC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802A1AA: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A1BC: .4byte gUnknown_2023D74 + thumb_func_end sub_802A004 + + thumb_func_start sub_802A1C0 +sub_802A1C0: @ 802A1C0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, _0802A1F0 @ =gUnknown_8250C04 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0x91 + beq _0802A1EA + cmp r0, 0x27 + beq _0802A1EA + cmp r0, 0x4B + beq _0802A1EA + cmp r0, 0x97 + beq _0802A1EA + cmp r0, 0x9B + beq _0802A1EA + cmp r0, 0x1A + bne _0802A1F4 +_0802A1EA: + movs r0, 0x1 + b _0802A1F6 + .align 2, 0 +_0802A1F0: .4byte gUnknown_8250C04 +_0802A1F4: + movs r0, 0 +_0802A1F6: + pop {r1} + bx r1 + thumb_func_end sub_802A1C0 + + thumb_func_start sub_802A1FC +sub_802A1FC: @ 802A1FC + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0802A21A + cmp r1, 0xD6 + beq _0802A21A + movs r0, 0x89 + lsls r0, 1 + cmp r1, r0 + beq _0802A21A + cmp r1, 0x77 + beq _0802A21A + cmp r1, 0x76 + bne _0802A21E +_0802A21A: + movs r0, 0x1 + b _0802A220 +_0802A21E: + movs r0, 0 +_0802A220: + pop {r1} + bx r1 + thumb_func_end sub_802A1FC + + thumb_func_start sub_802A224 +sub_802A224: @ 802A224 + push {lr} + lsls r1, 16 + lsrs r2, r1, 16 + ldr r1, _0802A27C @ =gUnknown_8250C04 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x97 + bne _0802A248 + ldr r0, _0802A280 @ =gUnknown_2023F1C + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _0802A288 +_0802A248: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x91 + beq _0802A26A + cmp r0, 0x27 + beq _0802A26A + cmp r0, 0x4B + beq _0802A26A + cmp r0, 0x97 + beq _0802A26A + cmp r0, 0x9B + beq _0802A26A + cmp r0, 0x1A + bne _0802A288 +_0802A26A: + ldr r0, _0802A284 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 20 + ands r0, r1 + cmp r0, 0 + beq _0802A288 + movs r0, 0x1 + b _0802A28A + .align 2, 0 +_0802A27C: .4byte gUnknown_8250C04 +_0802A280: .4byte gUnknown_2023F1C +_0802A284: .4byte gUnknown_2023DD0 +_0802A288: + movs r0, 0x2 +_0802A28A: + pop {r1} + bx r1 + thumb_func_end sub_802A224 + + thumb_func_start sub_802A290 +sub_802A290: @ 802A290 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r5, 0 + ldr r0, _0802A320 @ =gUnknown_2023D6B + mov r9, r0 + movs r1, 0x58 + mov r8, r1 + ldr r7, _0802A324 @ =gUnknown_2023BF0 + movs r0, 0x84 + lsls r0, 1 + mov r10, r0 +_0802A2AE: + lsls r4, r5, 1 + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r0, [r0] + bl sub_802A1FC + lsls r0, 24 + cmp r0, 0 + bne _0802A2EE + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r1, [r0] + cmp r1, r10 + beq _0802A2EE + cmp r1, 0xFD + beq _0802A2EE + adds r0, r1, 0 + bl sub_802A1C0 + lsls r0, 24 + cmp r0, 0 + beq _0802A2FC +_0802A2EE: + ldr r1, _0802A328 @ =gUnknown_825E45C + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0802A2FC: + adds r5, 0x1 + cmp r5, 0x3 + ble _0802A2AE + ldr r0, _0802A320 @ =gUnknown_2023D6B + ldrb r0, [r0] + adds r1, r6, 0 + movs r2, 0xFD + bl sub_801779C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xF + bne _0802A330 + ldr r1, _0802A32C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A394 + .align 2, 0 +_0802A320: .4byte gUnknown_2023D6B +_0802A324: .4byte gUnknown_2023BF0 +_0802A328: .4byte gUnknown_825E45C +_0802A32C: .4byte gUnknown_2023D74 +_0802A330: + movs r7, 0x3 + ldr r4, _0802A3A4 @ =gUnknown_825E45C +_0802A334: + bl sub_8044EC8 + adds r5, r7, 0 + ands r5, r0 + lsls r0, r5, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r6 + cmp r0, 0 + bne _0802A334 + ldr r4, _0802A3A8 @ =gUnknown_2023D4E + ldr r2, _0802A3AC @ =gUnknown_2023BE4 + lsls r1, r5, 1 + ldr r0, _0802A3B0 @ =gUnknown_2023D6B + ldrb r3, [r0] + movs r0, 0x58 + muls r0, r3 + adds r1, r0 + adds r2, 0xC + adds r1, r2 + ldrh r0, [r1] + strh r0, [r4] + ldr r0, _0802A3B4 @ =gUnknown_2023D48 + strb r5, [r0] + ldr r2, _0802A3B8 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _0802A3BC @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldrh r0, [r4] + movs r1, 0 + bl sub_801D05C + ldr r1, _0802A3C0 @ =gUnknown_2023D6C + strb r0, [r1] + ldr r3, _0802A3C4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802A394: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A3A4: .4byte gUnknown_825E45C +_0802A3A8: .4byte gUnknown_2023D4E +_0802A3AC: .4byte gUnknown_2023BE4 +_0802A3B0: .4byte gUnknown_2023D6B +_0802A3B4: .4byte gUnknown_2023D48 +_0802A3B8: .4byte gUnknown_2023DD0 +_0802A3BC: .4byte 0xfffffbff +_0802A3C0: .4byte gUnknown_2023D6C +_0802A3C4: .4byte gUnknown_2023D74 + thumb_func_end sub_802A290 + + thumb_func_start sub_802A3C8 +sub_802A3C8: @ 802A3C8 + ldr r1, _0802A3EC @ =gUnknown_2023BE4 + ldr r0, _0802A3F0 @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r1, _0802A3F4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802A3EC: .4byte gUnknown_2023BE4 +_0802A3F0: .4byte gUnknown_2023D6B +_0802A3F4: .4byte gUnknown_2023D74 + thumb_func_end sub_802A3C8 + + thumb_func_start sub_802A3F8 +sub_802A3F8: @ 802A3F8 + push {r4,r5,lr} + ldr r0, _0802A448 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0802A44C @ =gUnknown_2023D6C + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0802A450 @ =gUnknown_2023BE4 + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0802A442 + cmp r5, r3 + beq _0802A442 + ldr r2, _0802A454 @ =gUnknown_2023DD0 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 17 + ands r0, r1 + cmp r0, 0 + bne _0802A442 + movs r0, 0x40 + orrs r1, r0 + str r1, [r2] +_0802A442: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802A448: .4byte gUnknown_2023D6B +_0802A44C: .4byte gUnknown_2023D6C +_0802A450: .4byte gUnknown_2023BE4 +_0802A454: .4byte gUnknown_2023DD0 + thumb_func_end sub_802A3F8 + + thumb_func_start sub_802A458 +sub_802A458: @ 802A458 + push {lr} + bl sub_802A3F8 + ldr r1, _0802A46C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802A46C: .4byte gUnknown_2023D74 + thumb_func_end sub_802A458 + + thumb_func_start sub_802A470 +sub_802A470: @ 802A470 + push {lr} + ldr r2, _0802A4C4 @ =gUnknown_2023BE4 + ldr r0, _0802A4C8 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + movs r2, 0x28 + ldrsh r0, [r1, r2] + movs r2, 0x2C + ldrsh r1, [r1, r2] + movs r2, 0x30 + bl sub_804A5E8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0 + ldr r0, _0802A4CC @ =gUnknown_8250810 + ldrb r2, [r0] + cmp r1, r2 + ble _0802A4AA + adds r2, r0, 0 +_0802A49C: + adds r3, 0x2 + cmp r3, 0xB + bgt _0802A4AA + adds r0, r3, r2 + ldrb r0, [r0] + cmp r1, r0 + bgt _0802A49C +_0802A4AA: + ldr r2, _0802A4D0 @ =gUnknown_2023F50 + ldr r1, _0802A4CC @ =gUnknown_8250810 + adds r0, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldr r1, _0802A4D4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802A4C4: .4byte gUnknown_2023BE4 +_0802A4C8: .4byte gUnknown_2023D6B +_0802A4CC: .4byte gUnknown_8250810 +_0802A4D0: .4byte gUnknown_2023F50 +_0802A4D4: .4byte gUnknown_2023D74 + thumb_func_end sub_802A470 + + thumb_func_start sub_802A4D8 +sub_802A4D8: @ 802A4D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, _0802A658 @ =gUnknown_2023D98 + ldr r1, _0802A65C @ =gUnknown_2023D6C + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r4 + ldrh r2, [r0] + mov r8, r1 + cmp r2, 0 + bne _0802A4F8 + b _0802A680 +_0802A4F8: + ldr r0, _0802A660 @ =0x0000ffff + cmp r2, r0 + bne _0802A500 + b _0802A680 +_0802A500: + movs r7, 0 + ldr r0, _0802A664 @ =gUnknown_2023BE4 + movs r1, 0x58 + muls r1, r3 + adds r3, r0, 0 + adds r3, 0xC + adds r1, r3 + ldrh r1, [r1] + cmp r2, r1 + beq _0802A538 + adds r6, r4, 0 + mov r5, r8 + adds r4, r3, 0 + movs r3, 0x58 +_0802A51C: + adds r7, 0x1 + cmp r7, 0x3 + bgt _0802A538 + ldrb r0, [r5] + lsls r2, r0, 1 + adds r2, r6 + lsls r1, r7, 1 + muls r0, r3 + adds r1, r0 + adds r1, r4 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _0802A51C +_0802A538: + cmp r7, 0x4 + bne _0802A53E + b _0802A680 +_0802A53E: + mov r4, r8 + ldrb r0, [r4] + movs r1, 0x58 + mov r9, r1 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + ldr r1, _0802A664 @ =gUnknown_2023BE4 + adds r1, 0x24 + mov r10, r1 + add r0, r10 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _0802A55E + b _0802A680 +_0802A55E: + bl sub_8044EC8 + movs r1, 0x3 + ands r1, r0 + adds r6, r1, 0x2 + ldrb r0, [r4] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + add r0, r10 + ldrb r0, [r0] + cmp r0, r6 + bge _0802A57C + adds r6, r0, 0 +_0802A57C: + ldr r1, _0802A668 @ =gUnknown_2022AB8 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r2, _0802A658 @ =gUnknown_2023D98 + mov r3, r8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, _0802A66C @ =gUnknown_2022AC8 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8008E78 + strb r5, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + strb r6, [r4, 0x4] + subs r0, 0x2 + strb r0, [r4, 0x5] + mov r1, r8 + ldrb r0, [r1] + mov r1, r9 + muls r1, r0 + adds r1, r7, r1 + add r1, r10 + ldrb r0, [r1] + subs r0, r6 + strb r0, [r1] + ldr r4, _0802A670 @ =gUnknown_2023BC4 + mov r3, r8 + ldrb r0, [r3] + strb r0, [r4] + ldr r1, _0802A674 @ =gUnknown_2023E0C + ldrb r3, [r4] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0802A678 @ =gUnknown_825E45C + lsls r0, r7, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802A630 + mov r2, r9 + muls r2, r3 + ldr r0, _0802A664 @ =gUnknown_2023BE4 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0802A630 + adds r1, r7, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r3, r10 + adds r0, r2, r3 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 +_0802A630: + ldr r1, _0802A67C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, _0802A664 @ =gUnknown_2023BE4 + ldr r0, _0802A65C @ =gUnknown_2023D6C + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0802A69A + adds r0, r2, 0 + bl sub_80172E8 + b _0802A69A + .align 2, 0 +_0802A658: .4byte gUnknown_2023D98 +_0802A65C: .4byte gUnknown_2023D6C +_0802A660: .4byte 0x0000ffff +_0802A664: .4byte gUnknown_2023BE4 +_0802A668: .4byte gUnknown_2022AB8 +_0802A66C: .4byte gUnknown_2022AC8 +_0802A670: .4byte gUnknown_2023BC4 +_0802A674: .4byte gUnknown_2023E0C +_0802A678: .4byte gUnknown_825E45C +_0802A67C: .4byte gUnknown_2023D74 +_0802A680: + ldr r3, _0802A6AC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802A69A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A6AC: .4byte gUnknown_2023D74 + thumb_func_end sub_802A4D8 + + thumb_func_start sub_802A6B0 +sub_802A6B0: @ 802A6B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r4, 0 + str r4, [sp, 0x4] + mov r8, r4 + ldr r0, _0802A720 @ =gUnknown_2023D4A + ldrh r0, [r0] + cmp r0, 0xD7 + beq _0802A6CC + b _0802A8B6 +_0802A6CC: + ldr r6, _0802A724 @ =gUnknown_2023E82 + mov r0, r8 + strb r0, [r6, 0x5] + ldr r5, _0802A728 @ =gUnknown_2023D6B + ldrb r0, [r5] + bl sub_80751C4 + lsls r0, 24 + ldr r1, _0802A72C @ =gUnknown_202402C + mov r10, r1 + cmp r0, 0 + bne _0802A6E8 + ldr r2, _0802A730 @ =gUnknown_2024284 + mov r10, r2 +_0802A6E8: + ldr r4, _0802A734 @ =gUnknown_2023BE4 + ldrb r3, [r5] + movs r7, 0x58 + adds r2, r3, 0 + muls r2, r7 + adds r0, r2, r4 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _0802A73C + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + mov r1, r8 + str r1, [r0] + ldrb r0, [r5] + adds r2, r0, 0 + muls r2, r7 + adds r0, r4, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, _0802A738 @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + b _0802A74C + .align 2, 0 +_0802A720: .4byte gUnknown_2023D4A +_0802A724: .4byte gUnknown_2023E82 +_0802A728: .4byte gUnknown_2023D6B +_0802A72C: .4byte gUnknown_202402C +_0802A730: .4byte gUnknown_2024284 +_0802A734: .4byte gUnknown_2023BE4 +_0802A738: .4byte 0xf7ffffff +_0802A73C: + ldrb r1, [r1] + adds r0, r3, 0 + bl sub_80C71D0 + ldrb r0, [r6, 0x5] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r6, 0x5] +_0802A74C: + ldr r7, _0802A7C0 @ =gUnknown_2023BC4 + ldr r0, _0802A7C4 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751D8 + movs r2, 0x2 + mov r9, r2 + mov r1, r9 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _0802A7C8 @ =gUnknown_2023FC4 + strb r0, [r1, 0x17] + strb r0, [r7] + ldr r0, _0802A7CC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802A7F2 + ldr r0, _0802A7D0 @ =gUnknown_2023D70 + ldrb r2, [r0] + ldr r1, _0802A7D4 @ =gUnknown_825E45C + ldrb r3, [r7] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _0802A7F2 + ldr r5, _0802A7D8 @ =gUnknown_2023BE4 + movs r6, 0x58 + adds r4, r3, 0 + muls r4, r6 + adds r0, r4, r5 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _0802A7E0 + adds r0, r5, 0 + adds r0, 0x4C + adds r0, r4, r0 + str r2, [r0] + ldrb r0, [r7] + adds r2, r0, 0 + muls r2, r6 + adds r0, r5, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, _0802A7DC @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + b _0802A7F2 + .align 2, 0 +_0802A7C0: .4byte gUnknown_2023BC4 +_0802A7C4: .4byte gUnknown_2023D6B +_0802A7C8: .4byte gUnknown_2023FC4 +_0802A7CC: .4byte gUnknown_2022B4C +_0802A7D0: .4byte gUnknown_2023D70 +_0802A7D4: .4byte gUnknown_825E45C +_0802A7D8: .4byte gUnknown_2023BE4 +_0802A7DC: .4byte 0xf7ffffff +_0802A7E0: + ldrb r1, [r1] + adds r0, r3, 0 + bl sub_80C71D0 + ldr r1, _0802A838 @ =gUnknown_2023E82 + ldrb r0, [r1, 0x5] + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] +_0802A7F2: + movs r6, 0 + ldr r7, _0802A83C @ =gUnknown_2023BE4 +_0802A7F6: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0 + beq _0802A8AE + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _0802A8AE + ldr r2, _0802A840 @ =gUnknown_2023BCE + ldr r0, _0802A844 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _0802A848 + movs r0, 0x58 + muls r0, r1 + b _0802A878 + .align 2, 0 +_0802A838: .4byte gUnknown_2023E82 +_0802A83C: .4byte gUnknown_2023BE4 +_0802A840: .4byte gUnknown_2023BCE +_0802A844: .4byte gUnknown_2023D6B +_0802A848: + ldr r0, _0802A880 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802A890 + ldr r0, _0802A884 @ =gUnknown_2023BC4 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _0802A890 + ldr r0, _0802A888 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0802A88C @ =gUnknown_825E45C + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802A890 + movs r0, 0x58 + muls r0, r3 +_0802A878: + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + b _0802A89C + .align 2, 0 +_0802A880: .4byte gUnknown_2022B4C +_0802A884: .4byte gUnknown_2023BC4 +_0802A888: .4byte gUnknown_2023D70 +_0802A88C: .4byte gUnknown_825E45C +_0802A890: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8040D38 + lsls r0, 24 + lsrs r0, 24 +_0802A89C: + cmp r0, 0x2B + beq _0802A8AE + movs r0, 0x1 + lsls r0, r6 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 +_0802A8AE: + adds r6, 0x1 + cmp r6, 0x5 + ble _0802A7F6 + b _0802A934 +_0802A8B6: + ldr r1, _0802A970 @ =gUnknown_2023E82 + movs r0, 0x4 + strb r0, [r1, 0x5] + movs r2, 0x3F + mov r8, r2 + ldr r3, _0802A974 @ =gUnknown_2023BE4 + ldr r2, _0802A978 @ =gUnknown_2023D6B + ldrb r0, [r2] + movs r5, 0x58 + muls r0, r5 + movs r1, 0x4C + adds r1, r3 + mov r9, r1 + add r0, r9 + str r4, [r0] + ldrb r0, [r2] + adds r1, r0, 0 + muls r1, r5 + adds r7, r3, 0 + adds r7, 0x50 + adds r1, r7 + ldr r0, [r1] + ldr r6, _0802A97C @ =0xf7ffffff + ands r0, r6 + str r0, [r1] + ldrb r0, [r2] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r4, _0802A980 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r0, _0802A984 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802A934 + ldr r0, _0802A988 @ =gUnknown_2023D70 + ldrb r2, [r0] + ldr r1, _0802A98C @ =gUnknown_825E45C + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _0802A934 + adds r0, r3, 0 + muls r0, r5 + add r0, r9 + str r2, [r0] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r7 + ldr r0, [r1] + ands r0, r6 + str r0, [r1] +_0802A934: + mov r2, r8 + cmp r2, 0 + beq _0802A956 + ldr r4, _0802A980 @ =gUnknown_2023BC4 + ldr r0, _0802A978 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r4] + add r0, sp, 0x4 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 +_0802A956: + ldr r1, _0802A990 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A970: .4byte gUnknown_2023E82 +_0802A974: .4byte gUnknown_2023BE4 +_0802A978: .4byte gUnknown_2023D6B +_0802A97C: .4byte 0xf7ffffff +_0802A980: .4byte gUnknown_2023BC4 +_0802A984: .4byte gUnknown_2022B4C +_0802A988: .4byte gUnknown_2023D70 +_0802A98C: .4byte gUnknown_825E45C +_0802A990: .4byte gUnknown_2023D74 + thumb_func_end sub_802A6B0 + + thumb_func_start sub_802A994 +sub_802A994: @ 802A994 + push {r4,r5,lr} + ldr r5, _0802A9D4 @ =gUnknown_2023BE4 + ldr r0, _0802A9D8 @ =gUnknown_2023D6C + ldrb r0, [r0] + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r0, r5, 0 + adds r0, 0x50 + adds r1, r0 + ldr r2, [r1] + movs r3, 0x80 + lsls r3, 21 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _0802A9E0 + ldr r3, _0802A9DC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802AA04 + .align 2, 0 +_0802A9D4: .4byte gUnknown_2023BE4 +_0802A9D8: .4byte gUnknown_2023D6C +_0802A9DC: .4byte gUnknown_2023D74 +_0802A9E0: + orrs r2, r3 + str r2, [r1] + ldr r1, _0802AA0C @ =gUnknown_2023D50 + ldr r0, _0802AA10 @ =gUnknown_2023D6B + ldrb r0, [r0] + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _0802A9FC + movs r0, 0x1 + str r0, [r1] +_0802A9FC: + ldr r1, _0802AA14 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802AA04: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802AA0C: .4byte gUnknown_2023D50 +_0802AA10: .4byte gUnknown_2023D6B +_0802AA14: .4byte gUnknown_2023D74 + thumb_func_end sub_802A994 + + thumb_func_start sub_802AA18 +sub_802AA18: @ 802AA18 + push {r4,lr} + ldr r4, _0802AA6C @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0802AA70 @ =gUnknown_2023DE4 + lsls r2, r0, 1 + adds r0, r2, r0 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0xA] + cmp r0, 0x3 + bne _0802AA7C + ldr r2, _0802AA74 @ =gUnknown_2023ECC + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _0802AA78 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802AA96 + .align 2, 0 +_0802AA6C: .4byte gUnknown_2023D6B +_0802AA70: .4byte gUnknown_2023DE4 +_0802AA74: .4byte gUnknown_2023ECC +_0802AA78: .4byte gUnknown_2023D74 +_0802AA7C: + ldr r1, _0802AA9C @ =gUnknown_2023DDE + adds r1, r2, r1 + ldrh r2, [r1] + movs r0, 0x10 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r3, 0xA] + adds r0, 0x1 + strb r0, [r3, 0xA] + ldr r1, _0802AAA0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802AA96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AA9C: .4byte gUnknown_2023DDE +_0802AAA0: .4byte gUnknown_2023D74 + thumb_func_end sub_802AA18 + + thumb_func_start sub_802AAA4 +sub_802AAA4: @ 802AAA4 + ldr r1, _0802AAC8 @ =gUnknown_2023BE4 + ldr r0, _0802AACC @ =gUnknown_2023D6C + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 22 + orrs r0, r1 + str r0, [r2] + ldr r1, _0802AAD0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802AAC8: .4byte gUnknown_2023BE4 +_0802AACC: .4byte gUnknown_2023D6C +_0802AAD0: .4byte gUnknown_2023D74 + thumb_func_end sub_802AAA4 + + thumb_func_start sub_802AAD4 +sub_802AAD4: @ 802AAD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r3, 0 + ldr r0, _0802AB18 @ =gUnknown_2023BCC + adds r7, r0, 0 + ldr r0, _0802AB1C @ =gUnknown_2023D6B + mov r8, r0 + ldrb r1, [r7] + cmp r6, r1 + bge _0802AB40 + movs r5, 0x20 + ldr r0, _0802AB20 @ =gUnknown_2023BE4 + mov r12, r0 + ldr r0, _0802AB24 @ =gUnknown_2023E0C + adds r4, r0, 0 + adds r4, 0xF + ldr r2, _0802AB28 @ =gUnknown_2023DFC +_0802AAFC: + ldr r1, [r2] + adds r0, r1, 0 + ands r0, r5 + cmp r0, 0 + bne _0802AB14 + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + bne _0802AB2C +_0802AB14: + adds r6, 0x1 + b _0802AB34 + .align 2, 0 +_0802AB18: .4byte gUnknown_2023BCC +_0802AB1C: .4byte gUnknown_2023D6B +_0802AB20: .4byte gUnknown_2023BE4 +_0802AB24: .4byte gUnknown_2023E0C +_0802AB28: .4byte gUnknown_2023DFC +_0802AB2C: + orrs r1, r5 + str r1, [r2] + movs r0, 0x33 + strb r0, [r4] +_0802AB34: + adds r4, 0x1C + adds r2, 0x4 + adds r3, 0x1 + ldrb r0, [r7] + cmp r3, r0 + blt _0802AAFC +_0802AB40: + mov r1, r8 + ldrb r0, [r1] + bl sub_80170C4 + ldr r0, _0802AB6C @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r6, r0 + bne _0802AB74 + ldr r3, _0802AB70 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802AB7C + .align 2, 0 +_0802AB6C: .4byte gUnknown_2023BCC +_0802AB70: .4byte gUnknown_2023D74 +_0802AB74: + ldr r1, _0802AB88 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802AB7C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802AB88: .4byte gUnknown_2023D74 + thumb_func_end sub_802AAD4 + + thumb_func_start sub_802AB8C +sub_802AB8C: @ 802AB8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0802ABB0 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0802ABC0 + ldr r0, _0802ABB4 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80172E8 + ldr r1, _0802ABB8 @ =gUnknown_2023D74 + ldr r0, _0802ABBC @ =gUnknown_81D6960 + str r0, [r1] + b _0802ACD8 + .align 2, 0 +_0802ABB0: .4byte gUnknown_2023DCC +_0802ABB4: .4byte gUnknown_2023D6B +_0802ABB8: .4byte gUnknown_2023D74 +_0802ABBC: .4byte gUnknown_81D6960 +_0802ABC0: + ldr r2, _0802ACE4 @ =gUnknown_2023BE4 + ldr r1, _0802ACE8 @ =gUnknown_2023D6B + ldrb r3, [r1] + movs r5, 0x58 + adds r0, r3, 0 + muls r0, r5 + adds r4, r2, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r7, 0x80 + lsls r7, 5 + ands r0, r7 + adds r6, r1, 0 + mov r9, r2 + ldr r1, _0802ACEC @ =gUnknown_2023E0C + mov r12, r1 + ldr r2, _0802ACF0 @ =gUnknown_2023D4A + mov r8, r2 + cmp r0, 0 + bne _0802AC32 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x5 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0xF + ands r1, r2 + movs r2, 0x50 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + orrs r0, r7 + str r0, [r1] + ldr r1, _0802ACF4 @ =gUnknown_2023DB8 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + mov r2, r8 + ldrh r1, [r2] + strh r1, [r0] +_0802AC32: + ldrb r0, [r6] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + add r2, r12 + ldrb r3, [r2, 0x11] + lsls r1, r3, 28 + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x11] + cmp r1, 0 + bne _0802AC66 + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + ldr r2, _0802ACF8 @ =0xffffefff + ands r0, r2 + str r0, [r1] +_0802AC66: + ldr r3, _0802ACFC @ =gUnknown_2023F50 + ldr r2, _0802AD00 @ =gUnknown_8250C04 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r1, r12 + adds r4, r0, r1 + ldrb r0, [r4, 0x11] + lsls r0, 28 + lsrs r0, 28 + movs r1, 0x5 + subs r1, r0 + ldr r7, _0802AD04 @ =gUnknown_2023D74 + adds r5, r3, 0 + cmp r2, r1 + bge _0802ACB4 + adds r1, r5, 0 + adds r3, r4, 0 + movs r4, 0x5 +_0802ACA0: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x11] + lsls r0, 28 + lsrs r0, 28 + subs r0, r4, r0 + cmp r2, r0 + blt _0802ACA0 +_0802ACB4: + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + mov r1, r9 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 23 + ands r0, r1 + cmp r0, 0 + beq _0802ACD2 + ldrh r0, [r5] + lsls r0, 1 + strh r0, [r5] +_0802ACD2: + ldr r0, [r7] + adds r0, 0x1 + str r0, [r7] +_0802ACD8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ACE4: .4byte gUnknown_2023BE4 +_0802ACE8: .4byte gUnknown_2023D6B +_0802ACEC: .4byte gUnknown_2023E0C +_0802ACF0: .4byte gUnknown_2023D4A +_0802ACF4: .4byte gUnknown_2023DB8 +_0802ACF8: .4byte 0xffffefff +_0802ACFC: .4byte gUnknown_2023F50 +_0802AD00: .4byte gUnknown_8250C04 +_0802AD04: .4byte gUnknown_2023D74 + thumb_func_end sub_802AB8C + + thumb_func_start sub_802AD08 +sub_802AD08: @ 802AD08 + push {r4,r5,lr} + ldr r5, _0802AD58 @ =gUnknown_2023BE4 + ldr r0, _0802AD5C @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r5, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + ldr r4, _0802AD60 @ =gUnknown_2023D74 + cmp r0, 0 + beq _0802AD64 + ldr r2, [r4] + ldrb r0, [r2, 0x1] + adds r0, r3 + adds r1, r5, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xC + bne _0802AD64 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0802AD6A + .align 2, 0 +_0802AD58: .4byte gUnknown_2023BE4 +_0802AD5C: .4byte gUnknown_2023D6C +_0802AD60: .4byte gUnknown_2023D74 +_0802AD64: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0802AD6A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_802AD08 + + thumb_func_start sub_802AD70 +sub_802AD70: @ 802AD70 + push {r4,r5,lr} + ldr r0, _0802AD98 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0802ADAC + ldr r2, _0802AD9C @ =gUnknown_2023E0C + ldr r0, _0802ADA0 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x10] + ldr r1, _0802ADA4 @ =gUnknown_2023D74 + ldr r0, _0802ADA8 @ =gUnknown_81D6960 + str r0, [r1] + b _0802AE04 + .align 2, 0 +_0802AD98: .4byte gUnknown_2023DCC +_0802AD9C: .4byte gUnknown_2023E0C +_0802ADA0: .4byte gUnknown_2023D6B +_0802ADA4: .4byte gUnknown_2023D74 +_0802ADA8: .4byte gUnknown_81D6960 +_0802ADAC: + ldr r5, _0802AE0C @ =gUnknown_2023E0C + ldr r4, _0802AE10 @ =gUnknown_2023D6B + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x10] + cmp r0, 0x5 + beq _0802ADC4 + adds r0, 0x1 + strb r0, [r1, 0x10] +_0802ADC4: + ldr r3, _0802AE14 @ =gUnknown_2023F50 + ldr r2, _0802AE18 @ =gUnknown_8250C04 + ldr r0, _0802AE1C @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r4, _0802AE20 @ =gUnknown_2023D74 + ldrb r1, [r0, 0x10] + cmp r2, r1 + bge _0802ADFE + adds r1, r3, 0 + adds r3, r0, 0 +_0802ADF0: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x10] + cmp r2, r0 + blt _0802ADF0 +_0802ADFE: + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] +_0802AE04: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802AE0C: .4byte gUnknown_2023E0C +_0802AE10: .4byte gUnknown_2023D6B +_0802AE14: .4byte gUnknown_2023F50 +_0802AE18: .4byte gUnknown_8250C04 +_0802AE1C: .4byte gUnknown_2023D4A +_0802AE20: .4byte gUnknown_2023D74 + thumb_func_end sub_802AD70 + + thumb_func_start sub_802AE24 +sub_802AE24: @ 802AE24 + push {r4,lr} + ldr r2, _0802AE50 @ =gUnknown_8250C04 + ldr r0, _0802AE54 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x79 + bne _0802AE64 + ldr r4, _0802AE58 @ =gUnknown_2023F50 + ldr r2, _0802AE5C @ =gUnknown_2023BE4 + ldr r0, _0802AE60 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r1, [r0] + b _0802AE7A + .align 2, 0 +_0802AE50: .4byte gUnknown_8250C04 +_0802AE54: .4byte gUnknown_2023D4A +_0802AE58: .4byte gUnknown_2023F50 +_0802AE5C: .4byte gUnknown_2023BE4 +_0802AE60: .4byte gUnknown_2023D6B +_0802AE64: + ldr r4, _0802AE98 @ =gUnknown_2023F50 + ldr r2, _0802AE9C @ =gUnknown_2023BE4 + ldr r0, _0802AEA0 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + movs r1, 0xFF + subs r1, r0 +_0802AE7A: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + movs r1, 0x19 + bl __divsi3 + strh r0, [r4] + ldr r1, _0802AEA4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AE98: .4byte gUnknown_2023F50 +_0802AE9C: .4byte gUnknown_2023BE4 +_0802AEA0: .4byte gUnknown_2023D6B +_0802AEA4: .4byte gUnknown_2023D74 + thumb_func_end sub_802AE24 + + thumb_func_start sub_802AEA8 +sub_802AEA8: @ 802AEA8 + push {r4,lr} + bl sub_8044EC8 + movs r4, 0xFF + ands r4, r0 + cmp r4, 0x65 + bgt _0802AEC4 + ldr r1, _0802AEC0 @ =gUnknown_2023F50 + movs r0, 0x28 + strh r0, [r1] + b _0802AF06 + .align 2, 0 +_0802AEC0: .4byte gUnknown_2023F50 +_0802AEC4: + cmp r4, 0xB1 + bgt _0802AED4 + ldr r1, _0802AED0 @ =gUnknown_2023F50 + movs r0, 0x50 + strh r0, [r1] + b _0802AF06 + .align 2, 0 +_0802AED0: .4byte gUnknown_2023F50 +_0802AED4: + cmp r4, 0xCB + bgt _0802AEE4 + ldr r1, _0802AEE0 @ =gUnknown_2023F50 + movs r0, 0x78 + strh r0, [r1] + b _0802AF06 + .align 2, 0 +_0802AEE0: .4byte gUnknown_2023F50 +_0802AEE4: + ldr r3, _0802AF10 @ =gUnknown_2023D50 + ldr r2, _0802AF14 @ =gUnknown_2023BE4 + ldr r0, _0802AF18 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r3] + cmp r0, 0 + bne _0802AF00 + movs r0, 0x1 + str r0, [r3] +_0802AF00: + ldr r0, [r3] + negs r0, r0 + str r0, [r3] +_0802AF06: + cmp r4, 0xCB + bgt _0802AF24 + ldr r1, _0802AF1C @ =gUnknown_2023D74 + ldr r0, _0802AF20 @ =gUnknown_81D6930 + b _0802AF5E + .align 2, 0 +_0802AF10: .4byte gUnknown_2023D50 +_0802AF14: .4byte gUnknown_2023BE4 +_0802AF18: .4byte gUnknown_2023D6C +_0802AF1C: .4byte gUnknown_2023D74 +_0802AF20: .4byte gUnknown_81D6930 +_0802AF24: + ldr r2, _0802AF40 @ =gUnknown_2023BE4 + ldr r0, _0802AF44 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + cmp r1, r0 + bne _0802AF50 + ldr r1, _0802AF48 @ =gUnknown_2023D74 + ldr r0, _0802AF4C @ =gUnknown_81D7DD1 + b _0802AF5E + .align 2, 0 +_0802AF40: .4byte gUnknown_2023BE4 +_0802AF44: .4byte gUnknown_2023D6C +_0802AF48: .4byte gUnknown_2023D74 +_0802AF4C: .4byte gUnknown_81D7DD1 +_0802AF50: + ldr r2, _0802AF68 @ =gUnknown_2023DCC + ldrb r1, [r2] + movs r0, 0xF7 + ands r0, r1 + strb r0, [r2] + ldr r1, _0802AF6C @ =gUnknown_2023D74 + ldr r0, _0802AF70 @ =gUnknown_81D7DB7 +_0802AF5E: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802AF68: .4byte gUnknown_2023DCC +_0802AF6C: .4byte gUnknown_2023D74 +_0802AF70: .4byte gUnknown_81D7DB7 + thumb_func_end sub_802AEA8 + + thumb_func_start sub_802AF74 +sub_802AF74: @ 802AF74 + push {r4-r7,lr} + ldr r7, _0802AFA8 @ =gUnknown_2023D6B + ldrb r0, [r7] + bl sub_80751D8 + ldr r4, _0802AFAC @ =gUnknown_2023DDE + movs r6, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802AFB8 + ldr r2, _0802AFB0 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802AFB4 @ =gUnknown_2023E82 + movs r0, 0 + strb r0, [r1, 0x5] + b _0802B000 + .align 2, 0 +_0802AFA8: .4byte gUnknown_2023D6B +_0802AFAC: .4byte gUnknown_2023DDE +_0802AFB0: .4byte gUnknown_2023DCC +_0802AFB4: .4byte gUnknown_2023E82 +_0802AFB8: + ldrb r0, [r7] + bl sub_80751D8 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x20 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r7] + bl sub_80751D8 + ldr r5, _0802B010 @ =gUnknown_2023DE4 + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r4, 0x5 + strb r4, [r0, 0x6] + ldrb r0, [r7] + bl sub_80751D8 + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r7] + strb r1, [r0, 0x7] + ldr r0, _0802B014 @ =gUnknown_2023E82 + strb r4, [r0, 0x5] +_0802B000: + ldr r1, _0802B018 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B010: .4byte gUnknown_2023DE4 +_0802B014: .4byte gUnknown_2023E82 +_0802B018: .4byte gUnknown_2023D74 + thumb_func_end sub_802AF74 + + thumb_func_start sub_802B01C +sub_802B01C: @ 802B01C + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bgt _0802B048 + ldr r1, _0802B044 @ =gUnknown_2023F50 + movs r0, 0xA + strh r0, [r1] + movs r3, 0x4 + b _0802B0B4 + .align 2, 0 +_0802B044: .4byte gUnknown_2023F50 +_0802B048: + cmp r3, 0xE + bgt _0802B05C + ldr r1, _0802B058 @ =gUnknown_2023F50 + movs r0, 0x1E + strh r0, [r1] + movs r3, 0x5 + b _0802B0B4 + .align 2, 0 +_0802B058: .4byte gUnknown_2023F50 +_0802B05C: + cmp r3, 0x22 + bgt _0802B070 + ldr r1, _0802B06C @ =gUnknown_2023F50 + movs r0, 0x32 + strh r0, [r1] + movs r3, 0x6 + b _0802B0B4 + .align 2, 0 +_0802B06C: .4byte gUnknown_2023F50 +_0802B070: + cmp r3, 0x40 + bgt _0802B084 + ldr r1, _0802B080 @ =gUnknown_2023F50 + movs r0, 0x46 + strh r0, [r1] + movs r3, 0x7 + b _0802B0B4 + .align 2, 0 +_0802B080: .4byte gUnknown_2023F50 +_0802B084: + cmp r3, 0x54 + bgt _0802B098 + ldr r1, _0802B094 @ =gUnknown_2023F50 + movs r0, 0x5A + strh r0, [r1] + movs r3, 0x8 + b _0802B0B4 + .align 2, 0 +_0802B094: .4byte gUnknown_2023F50 +_0802B098: + cmp r3, 0x5E + bgt _0802B0AC + ldr r1, _0802B0A8 @ =gUnknown_2023F50 + movs r0, 0x6E + strh r0, [r1] + movs r3, 0x9 + b _0802B0B4 + .align 2, 0 +_0802B0A8: .4byte gUnknown_2023F50 +_0802B0AC: + ldr r1, _0802B120 @ =gUnknown_2023F50 + movs r0, 0x96 + strh r0, [r1] + movs r3, 0xA +_0802B0B4: + ldr r1, _0802B124 @ =gUnknown_2022AB8 + movs r2, 0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r0, [r1, 0x2] + movs r0, 0x2 + strb r0, [r1, 0x3] + strb r3, [r1, 0x4] + movs r0, 0xFF + strb r0, [r1, 0x5] + ldr r1, _0802B128 @ =gUnknown_2023D6C + strb r2, [r1] + ldr r0, _0802B12C @ =gUnknown_2023BCC + ldrb r3, [r0] + adds r6, r1, 0 + ldr r0, _0802B130 @ =gUnknown_2023D74 + mov r8, r0 + cmp r2, r3 + bcs _0802B10C + adds r4, r6, 0 + ldr r0, _0802B134 @ =gUnknown_2023D6B + ldrb r5, [r0] + ldr r1, _0802B138 @ =gUnknown_825E45C + mov r12, r1 + ldr r7, _0802B13C @ =gUnknown_2023D70 +_0802B0EA: + ldrb r2, [r4] + cmp r2, r5 + beq _0802B100 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _0802B10C +_0802B100: + adds r0, r2, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcc _0802B0EA +_0802B10C: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B120: .4byte gUnknown_2023F50 +_0802B124: .4byte gUnknown_2022AB8 +_0802B128: .4byte gUnknown_2023D6C +_0802B12C: .4byte gUnknown_2023BCC +_0802B130: .4byte gUnknown_2023D74 +_0802B134: .4byte gUnknown_2023D6B +_0802B138: .4byte gUnknown_825E45C +_0802B13C: .4byte gUnknown_2023D70 + thumb_func_end sub_802B01C + + thumb_func_start sub_802B140 +sub_802B140: @ 802B140 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0802B164 @ =gUnknown_2023D72 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0802B170 + ldr r0, _0802B168 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _0802B16C + movs r0, 0x1 + b _0802B18A + .align 2, 0 +_0802B164: .4byte gUnknown_2023D72 +_0802B168: .4byte gUnknown_2023D6B +_0802B16C: + movs r0, 0 + b _0802B18A +_0802B170: + ldr r0, _0802B184 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _0802B188 + movs r0, 0x3 + b _0802B18A + .align 2, 0 +_0802B184: .4byte gUnknown_2023D6B +_0802B188: + movs r0, 0x2 +_0802B18A: + bl sub_80751E8 + ldr r1, _0802B264 @ =gUnknown_2023D6C + strb r0, [r1] + ldr r0, _0802B268 @ =gUnknown_2023D7C + ldr r1, _0802B264 @ =gUnknown_2023D6C + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0802B1A2 + b _0802B2A8 +_0802B1A2: + ldr r5, _0802B26C @ =gUnknown_2023D6B + ldr r0, _0802B270 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r1, r3, r1 + ldrb r2, [r5] + ldrb r1, [r1, 0xC] + cmp r2, r1 + bne _0802B2A8 + ldr r4, _0802B274 @ =gUnknown_2023BE4 + movs r2, 0x58 + adds r0, r3, 0 + muls r0, r2 + adds r1, r4, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x27 + ands r0, r1 + cmp r0, 0 + bne _0802B2A8 + ldrb r0, [r5] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0802B2A8 + ldr r0, _0802B278 @ =gUnknown_2023E0C + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x18] + lsls r0, 31 + cmp r0, 0 + bne _0802B2A8 + ldr r0, _0802B27C @ =gUnknown_2023DC4 + lsls r1, r3, 1 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0xE4 + bne _0802B2A8 + movs r1, 0 + ldr r0, _0802B280 @ =gUnknown_2023BCC + ldr r2, _0802B284 @ =gUnknown_2023D4A + mov r8, r2 + ldr r7, _0802B288 @ =gUnknown_2023D48 + mov r10, r7 + ldr r2, _0802B28C @ =gUnknown_2023D49 + mov r9, r2 + ldr r7, _0802B290 @ =gUnknown_2023DD0 + mov r12, r7 + ldrb r2, [r0] + cmp r1, r2 + bge _0802B22E + ldr r6, _0802B294 @ =gUnknown_2023BDE + ldr r5, _0802B264 @ =gUnknown_2023D6C + ldr r4, _0802B298 @ =gUnknown_2023BDA + movs r3, 0xB + adds r2, r0, 0 +_0802B218: + adds r0, r1, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _0802B226 + adds r0, r1, r4 + strb r3, [r0] +_0802B226: + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _0802B218 +_0802B22E: + movs r0, 0xE4 + mov r1, r8 + strh r0, [r1] + ldr r2, _0802B264 @ =gUnknown_2023D6C + ldrb r0, [r2] + ldr r7, _0802B270 @ =gUnknown_2023FE8 + ldr r1, [r7] + adds r0, r1 + adds r0, 0x80 + ldrb r0, [r0] + mov r1, r9 + strb r0, [r1] + mov r2, r10 + strb r0, [r2] + ldr r7, _0802B29C @ =gUnknown_2023D74 + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + movs r0, 0x1 + ldr r1, _0802B2A0 @ =gUnknown_2023FC4 + strb r0, [r1, 0x18] + mov r2, r12 + ldr r0, [r2] + ldr r1, _0802B2A4 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + b _0802B2C2 + .align 2, 0 +_0802B264: .4byte gUnknown_2023D6C +_0802B268: .4byte gUnknown_2023D7C +_0802B26C: .4byte gUnknown_2023D6B +_0802B270: .4byte gUnknown_2023FE8 +_0802B274: .4byte gUnknown_2023BE4 +_0802B278: .4byte gUnknown_2023E0C +_0802B27C: .4byte gUnknown_2023DC4 +_0802B280: .4byte gUnknown_2023BCC +_0802B284: .4byte gUnknown_2023D4A +_0802B288: .4byte gUnknown_2023D48 +_0802B28C: .4byte gUnknown_2023D49 +_0802B290: .4byte gUnknown_2023DD0 +_0802B294: .4byte gUnknown_2023BDE +_0802B298: .4byte gUnknown_2023BDA +_0802B29C: .4byte gUnknown_2023D74 +_0802B2A0: .4byte gUnknown_2023FC4 +_0802B2A4: .4byte 0xfffffbff +_0802B2A8: + ldr r3, _0802B2D0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802B2C2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B2D0: .4byte gUnknown_2023D74 + thumb_func_end sub_802B140 + + thumb_func_start sub_802B2D4 +sub_802B2D4: @ 802B2D4 + push {lr} + ldr r2, _0802B2F4 @ =gUnknown_2023F1C + ldrh r1, [r2] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0802B300 + ldr r2, _0802B2F8 @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802B2FC @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0802B312 + .align 2, 0 +_0802B2F4: .4byte gUnknown_2023F1C +_0802B2F8: .4byte gUnknown_2023DCC +_0802B2FC: .4byte gUnknown_2023E82 +_0802B300: + movs r0, 0x20 + strh r0, [r2] + ldr r1, _0802B320 @ =gUnknown_2023E82 + movs r0, 0x4 + strb r0, [r1, 0x5] + ldr r0, _0802B324 @ =gUnknown_2023F20 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_0802B312: + ldr r1, _0802B328 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802B320: .4byte gUnknown_2023E82 +_0802B324: .4byte gUnknown_2023F20 +_0802B328: .4byte gUnknown_2023D74 + thumb_func_end sub_802B2D4 + + thumb_func_start sub_802B32C +sub_802B32C: @ 802B32C + push {r4,r5,lr} + ldr r5, _0802B378 @ =gUnknown_2023BE4 + ldr r4, _0802B37C @ =gUnknown_2023D6B + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r5 + ldrh r0, [r2, 0x2C] + lsrs r1, r0, 1 + cmp r1, 0 + bne _0802B344 + movs r1, 0x1 +_0802B344: + movs r0, 0x19 + ldrsb r0, [r2, r0] + cmp r0, 0xB + bgt _0802B388 + ldrh r0, [r2, 0x28] + cmp r0, r1 + bls _0802B388 + movs r0, 0xC + strb r0, [r2, 0x19] + ldr r1, _0802B380 @ =gUnknown_2023D50 + ldrb r0, [r4] + muls r0, r3 + adds r0, r5 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _0802B36C + movs r0, 0x1 + str r0, [r1] +_0802B36C: + ldr r1, _0802B384 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802B3A2 + .align 2, 0 +_0802B378: .4byte gUnknown_2023BE4 +_0802B37C: .4byte gUnknown_2023D6B +_0802B380: .4byte gUnknown_2023D50 +_0802B384: .4byte gUnknown_2023D74 +_0802B388: + ldr r3, _0802B3A8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802B3A2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B3A8: .4byte gUnknown_2023D74 + thumb_func_end sub_802B32C + + thumb_func_start sub_802B3AC +sub_802B3AC: @ 802B3AC + push {r4-r7,lr} + movs r2, 0 + ldr r7, _0802B3E4 @ =gUnknown_2023D74 + ldr r6, _0802B3E8 @ =gUnknown_2023D6B + movs r4, 0x58 + ldr r3, _0802B3EC @ =gUnknown_2023BFC + ldr r5, _0802B3F0 @ =gUnknown_2023D6C +_0802B3BA: + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r4 + adds r1, r2, r1 + adds r1, r3 + ldrb r0, [r5] + muls r0, r4 + adds r0, r2, r0 + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _0802B3BA + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B3E4: .4byte gUnknown_2023D74 +_0802B3E8: .4byte gUnknown_2023D6B +_0802B3EC: .4byte gUnknown_2023BFC +_0802B3F0: .4byte gUnknown_2023D6C + thumb_func_end sub_802B3AC + + thumb_func_start sub_802B3F4 +sub_802B3F4: @ 802B3F4 + push {r4-r6,lr} + ldr r1, _0802B464 @ =gUnknown_2023BE4 + ldr r5, _0802B468 @ =gUnknown_2023D6B + ldrb r2, [r5] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + adds r4, r1, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xE0 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0802B488 + ldr r1, _0802B46C @ =gUnknown_2023FC4 + ldr r3, _0802B470 @ =gUnknown_2023D6C + ldrb r0, [r3] + strb r0, [r1, 0x17] + ldrb r0, [r5] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldr r0, [r1] + ldr r2, _0802B474 @ =0xffff1fff + ands r0, r2 + str r0, [r1] + ldrb r0, [r5] + ldr r1, _0802B478 @ =gUnknown_2023FE8 + ldr r2, [r1] + adds r0, r2 + ldrb r0, [r0, 0x14] + strb r0, [r3] + ldr r1, _0802B47C @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0, 0x4] + strb r0, [r1, 0x2] + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0, 0x5] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + bl sub_8017544 + ldr r1, _0802B480 @ =gUnknown_2023D74 + ldr r0, _0802B484 @ =gUnknown_81D8DF3 + b _0802B532 + .align 2, 0 +_0802B464: .4byte gUnknown_2023BE4 +_0802B468: .4byte gUnknown_2023D6B +_0802B46C: .4byte gUnknown_2023FC4 +_0802B470: .4byte gUnknown_2023D6C +_0802B474: .4byte 0xffff1fff +_0802B478: .4byte gUnknown_2023FE8 +_0802B47C: .4byte gUnknown_2022AB8 +_0802B480: .4byte gUnknown_2023D74 +_0802B484: .4byte gUnknown_81D8DF3 +_0802B488: + ldr r4, _0802B4BC @ =gUnknown_2023DFC + lsls r0, r2, 2 + adds r3, r0, r4 + ldr r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802B4C8 + movs r0, 0x5 + negs r0, r0 + ands r1, r0 + str r1, [r3] + ldrb r1, [r5] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x4 + negs r2, r2 + ands r0, r2 + str r0, [r1] + bl sub_8017544 + ldr r1, _0802B4C0 @ =gUnknown_2023D74 + ldr r0, _0802B4C4 @ =gUnknown_81D8E04 + b _0802B532 + .align 2, 0 +_0802B4BC: .4byte gUnknown_2023DFC +_0802B4C0: .4byte gUnknown_2023D74 +_0802B4C4: .4byte gUnknown_81D8E04 +_0802B4C8: + adds r0, r2, 0 + bl sub_80751C4 + ldr r4, _0802B518 @ =gUnknown_2023DDE + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802B52C + ldrb r0, [r5] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r2, [r0] + ldr r1, _0802B51C @ =0x0000ffef + ands r1, r2 + movs r4, 0 + strh r1, [r0] + ldrb r0, [r5] + bl sub_80751C4 + ldr r2, _0802B520 @ =gUnknown_2023DE4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strb r4, [r1, 0xA] + bl sub_8017544 + ldr r1, _0802B524 @ =gUnknown_2023D74 + ldr r0, _0802B528 @ =gUnknown_81D8E0B + b _0802B532 + .align 2, 0 +_0802B518: .4byte gUnknown_2023DDE +_0802B51C: .4byte 0x0000ffef +_0802B520: .4byte gUnknown_2023DE4 +_0802B524: .4byte gUnknown_2023D74 +_0802B528: .4byte gUnknown_81D8E0B +_0802B52C: + ldr r1, _0802B53C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 +_0802B532: + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802B53C: .4byte gUnknown_2023D74 + thumb_func_end sub_802B3F4 + + thumb_func_start sub_802B540 +sub_802B540: @ 802B540 + ldr r1, _0802B564 @ =gUnknown_2023BE4 + ldr r0, _0802B568 @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 23 + orrs r0, r1 + str r0, [r2] + ldr r1, _0802B56C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802B564: .4byte gUnknown_2023BE4 +_0802B568: .4byte gUnknown_2023D6B +_0802B56C: .4byte gUnknown_2023D74 + thumb_func_end sub_802B540 + + thumb_func_start sub_802B570 +sub_802B570: @ 802B570 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _0802B5DC @ =gUnknown_2023D6C + ldr r5, _0802B5E0 @ =gUnknown_2023D6B + ldrb r0, [r5] + strb r0, [r1] + ldr r7, _0802B5E4 @ =gUnknown_2023BE4 + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + beq _0802B650 + ldr r4, _0802B5E8 @ =gUnknown_2023F1C + ldrh r0, [r4] + cmp r0, 0 + beq _0802B5C2 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0802B5C2 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _0802B5F0 +_0802B5C2: + ldr r3, _0802B5EC @ =gUnknown_2023D50 + ldr r2, _0802B5E4 @ =gUnknown_2023BE4 + ldr r0, _0802B5E0 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r3] + adds r1, r3, 0 + b _0802B62A + .align 2, 0 +_0802B5DC: .4byte gUnknown_2023D6C +_0802B5E0: .4byte gUnknown_2023D6B +_0802B5E4: .4byte gUnknown_2023BE4 +_0802B5E8: .4byte gUnknown_2023F1C +_0802B5EC: .4byte gUnknown_2023D50 +_0802B5F0: + ldrh r1, [r4] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0802B61C + ldr r4, _0802B618 @ =gUnknown_2023D50 + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x2C] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1E + bl __divsi3 + str r0, [r4] + adds r1, r4, 0 + b _0802B62A + .align 2, 0 +_0802B618: .4byte gUnknown_2023D50 +_0802B61C: + ldr r1, _0802B648 @ =gUnknown_2023D50 + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r1] +_0802B62A: + adds r2, r1, 0 + ldr r0, [r2] + cmp r0, 0 + bne _0802B636 + movs r0, 0x1 + str r0, [r2] +_0802B636: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldr r1, _0802B64C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802B66A + .align 2, 0 +_0802B648: .4byte gUnknown_2023D50 +_0802B64C: .4byte gUnknown_2023D74 +_0802B650: + ldr r3, _0802B674 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802B66A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B674: .4byte gUnknown_2023D74 + thumb_func_end sub_802B570 + + thumb_func_start sub_802B678 +sub_802B678: @ 802B678 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _0802B760 @ =gUnknown_2023BE4 + ldr r0, _0802B764 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrb r0, [r1, 0x14] + mov r9, r0 + mov r7, r9 + lsls r7, 27 + adds r0, r7, 0 + lsrs r0, 27 + mov r9, r0 + movs r4, 0x2 + mov r2, r9 + ands r2, r4 + asrs r2, 1 + ldrh r7, [r1, 0x14] + mov r8, r7 + mov r0, r8 + lsls r0, 22 + lsrs r0, 27 + mov r8, r0 + ands r0, r4 + orrs r2, r0 + ldrb r6, [r1, 0x15] + lsls r6, 25 + lsrs r6, 27 + adds r0, r6, 0 + ands r0, r4 + lsls r0, 1 + orrs r2, r0 + ldr r5, [r1, 0x14] + lsls r5, 12 + lsrs r5, 27 + adds r0, r5, 0 + ands r0, r4 + lsls r0, 2 + orrs r2, r0 + ldrh r3, [r1, 0x16] + lsls r3, 23 + lsrs r3, 27 + adds r0, r3, 0 + ands r0, r4 + lsls r0, 3 + orrs r2, r0 + ldrb r1, [r1, 0x17] + lsls r1, 26 + lsrs r1, 27 + adds r0, r1, 0 + ands r0, r4 + lsls r0, 4 + orrs r2, r0 + movs r0, 0x1 + adds r4, r0, 0 + mov r7, r9 + ands r4, r7 + mov r7, r8 + ands r7, r0 + lsls r7, 1 + orrs r4, r7 + ands r6, r0 + lsls r6, 2 + orrs r4, r6 + ands r5, r0 + lsls r5, 3 + orrs r4, r5 + ands r3, r0 + lsls r3, 4 + orrs r4, r3 + ands r1, r0 + lsls r1, 5 + orrs r4, r1 + ldr r5, _0802B768 @ =gUnknown_2023F50 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + movs r1, 0x3F + bl __divsi3 + adds r0, 0x1E + strh r0, [r5] + ldr r6, _0802B76C @ =gUnknown_2023FE8 + ldr r5, [r6] + lsls r0, r4, 4 + subs r0, r4 + movs r1, 0x3F + bl __divsi3 + adds r0, 0x1 + strb r0, [r5, 0x13] + ldr r1, [r6] + ldrb r0, [r1, 0x13] + cmp r0, 0x8 + bls _0802B742 + adds r0, 0x1 + strb r0, [r1, 0x13] +_0802B742: + ldr r2, [r6] + ldrb r0, [r2, 0x13] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r2, 0x13] + ldr r1, _0802B770 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B760: .4byte gUnknown_2023BE4 +_0802B764: .4byte gUnknown_2023D6B +_0802B768: .4byte gUnknown_2023F50 +_0802B76C: .4byte gUnknown_2023FE8 +_0802B770: .4byte gUnknown_2023D74 + thumb_func_end sub_802B678 + + thumb_func_start sub_802B774 +sub_802B774: @ 802B774 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0802B7D0 @ =gUnknown_2023D6C + movs r1, 0 + strb r1, [r0] + ldr r1, _0802B7D4 @ =gUnknown_2023BCC + ldrb r1, [r1] + adds r6, r0, 0 + ldr r0, _0802B7D8 @ =gUnknown_2023D74 + mov r8, r0 + cmp r1, 0 + beq _0802B7BE + adds r3, r6, 0 + ldr r0, _0802B7DC @ =gUnknown_2023D6B + ldrb r5, [r0] + ldr r0, _0802B7E0 @ =gUnknown_825E45C + mov r12, r0 + adds r4, r1, 0 + ldr r7, _0802B7E4 @ =gUnknown_2023D70 +_0802B79C: + ldrb r2, [r3] + cmp r2, r5 + beq _0802B7B2 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _0802B7BE +_0802B7B2: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _0802B79C +_0802B7BE: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B7D0: .4byte gUnknown_2023D6C +_0802B7D4: .4byte gUnknown_2023BCC +_0802B7D8: .4byte gUnknown_2023D74 +_0802B7DC: .4byte gUnknown_2023D6B +_0802B7E0: .4byte gUnknown_825E45C +_0802B7E4: .4byte gUnknown_2023D70 + thumb_func_end sub_802B774 + + thumb_func_start sub_802B7E8 +sub_802B7E8: @ 802B7E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r0, _0802B820 @ =gUnknown_2023F20 + mov r8, r0 + ldr r7, _0802B824 @ =gUnknown_2023D6C + ldrb r1, [r7] + adds r0, r1, r0 + ldrb r6, [r0] + cmp r6, 0 + beq _0802B82C + ldr r3, _0802B828 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802B8F6 + .align 2, 0 +_0802B820: .4byte gUnknown_2023F20 +_0802B824: .4byte gUnknown_2023D6C +_0802B828: .4byte gUnknown_2023D74 +_0802B82C: + lsls r1, 1 + mov r0, r8 + adds r0, 0x18 + adds r1, r0 + ldr r2, _0802B8CC @ =gUnknown_2023D4A + mov r9, r2 + ldrh r0, [r2] + strh r0, [r1] + mov r0, r8 + adds r0, 0x4 + ldrb r4, [r7] + adds r0, r4 + ldr r5, _0802B8D0 @ =gUnknown_2023D6B + ldrb r1, [r5] + strb r1, [r0] + ldrb r0, [r7] + add r0, r8 + movs r1, 0x3 + strb r1, [r0] + ldr r4, _0802B8D4 @ =gUnknown_2023DDE + ldrb r0, [r7] + bl sub_80751D8 + movs r1, 0x1 + mov r10, r1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + ldr r2, _0802B8D8 @ =gUnknown_2023BE4 + adds r0, r2 + ldrb r1, [r7] + muls r1, r4 + adds r1, r2 + mov r4, r9 + ldrh r2, [r4] + str r6, [sp] + str r6, [sp, 0x4] + ldrb r4, [r5] + str r4, [sp, 0x8] + ldrb r4, [r7] + str r4, [sp, 0xC] + bl sub_803ECEC + ldrb r1, [r7] + lsls r1, 2 + mov r2, r8 + adds r2, 0x8 + adds r1, r2 + str r0, [r1] + ldr r1, _0802B8DC @ =gUnknown_2023E8C + ldrb r0, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _0802B8BA + ldrb r4, [r7] + lsls r4, 2 + adds r4, r2 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0802B8BA: + mov r0, r9 + ldrh r1, [r0] + ldr r0, _0802B8E0 @ =0x00000161 + cmp r1, r0 + bne _0802B8E8 + ldr r0, _0802B8E4 @ =gUnknown_2023E82 + mov r1, r10 + strb r1, [r0, 0x5] + b _0802B8EE + .align 2, 0 +_0802B8CC: .4byte gUnknown_2023D4A +_0802B8D0: .4byte gUnknown_2023D6B +_0802B8D4: .4byte gUnknown_2023DDE +_0802B8D8: .4byte gUnknown_2023BE4 +_0802B8DC: .4byte gUnknown_2023E8C +_0802B8E0: .4byte 0x00000161 +_0802B8E4: .4byte gUnknown_2023E82 +_0802B8E8: + ldr r1, _0802B908 @ =gUnknown_2023E82 + movs r0, 0 + strb r0, [r1, 0x5] +_0802B8EE: + ldr r1, _0802B90C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802B8F6: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B908: .4byte gUnknown_2023E82 +_0802B90C: .4byte gUnknown_2023D74 + thumb_func_end sub_802B7E8 + + thumb_func_start sub_802B910 +sub_802B910: @ 802B910 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0802B954 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + ldr r7, _0802B958 @ =gUnknown_202402C + cmp r0, 0 + bne _0802B92A + ldr r7, _0802B95C @ =gUnknown_2024284 +_0802B92A: + ldr r2, _0802B960 @ =gUnknown_2023BE4 + ldr r0, _0802B964 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0802B96C + ldr r3, _0802B968 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + b _0802BB08 + .align 2, 0 +_0802B954: .4byte gUnknown_2023D6B +_0802B958: .4byte gUnknown_202402C +_0802B95C: .4byte gUnknown_2024284 +_0802B960: .4byte gUnknown_2023BE4 +_0802B964: .4byte gUnknown_2023D6C +_0802B968: .4byte gUnknown_2023D74 +_0802B96C: + ldr r6, _0802BAA8 @ =gUnknown_2023E82 + ldrb r0, [r6] + mov r8, r0 + cmp r0, 0x5 + bls _0802B978 + b _0802BAD4 +_0802B978: + adds r4, r6, 0 + movs r5, 0x64 +_0802B97C: + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _0802B9C0 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _0802B9C0 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0802B9C0 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x37 + bl sub_803FBE8 + cmp r0, 0 + beq _0802B9D0 +_0802B9C0: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r6, r4, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _0802B97C +_0802B9D0: + ldr r1, _0802BAA8 @ =gUnknown_2023E82 + mov r9, r1 + ldrb r2, [r1] + cmp r2, 0x5 + bhi _0802BAD4 + ldr r1, _0802BAAC @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r6, _0802BAB0 @ =gUnknown_2023D6B + ldrb r0, [r6] + strb r0, [r1, 0x2] + strb r2, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802BAB4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] + ldr r2, _0802BAB8 @ =gUnknown_2023D50 + mov r8, r2 + ldr r5, _0802BABC @ =gUnknown_8254784 + mov r1, r9 + ldrb r0, [r1] + movs r4, 0x64 + muls r0, r4 + adds r0, r7, r0 + movs r1, 0xB + bl sub_803FBE8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x1] + mov r2, r8 + str r3, [r2] + ldr r2, _0802BAC0 @ =gUnknown_8250C04 + ldr r0, _0802BAC4 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + muls r0, r3 + mov r1, r8 + str r0, [r1] + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + movs r1, 0x38 + bl sub_803FBE8 + lsls r0, 1 + movs r1, 0x5 + bl __udivsi3 + adds r0, 0x2 + mov r2, r8 + ldr r1, [r2] + muls r0, r1 + str r0, [r2] + ldr r3, _0802BAC8 @ =gUnknown_2023BE4 + ldr r1, _0802BACC @ =gUnknown_2023D6C + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + ldrb r1, [r1, 0x2] + bl __divsi3 + mov r1, r8 + str r0, [r1] + movs r1, 0x32 + bl __divsi3 + adds r2, r0, 0x2 + mov r0, r8 + str r2, [r0] + ldr r1, _0802BAD0 @ =gUnknown_2023E8C + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _0802BA9C + lsls r0, r2, 4 + subs r0, r2 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_0802BA9C: + mov r2, r9 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _0802BB0E + .align 2, 0 +_0802BAA8: .4byte gUnknown_2023E82 +_0802BAAC: .4byte gUnknown_2022AB8 +_0802BAB0: .4byte gUnknown_2023D6B +_0802BAB4: .4byte gUnknown_2023D74 +_0802BAB8: .4byte gUnknown_2023D50 +_0802BABC: .4byte gUnknown_8254784 +_0802BAC0: .4byte gUnknown_8250C04 +_0802BAC4: .4byte gUnknown_2023D4A +_0802BAC8: .4byte gUnknown_2023BE4 +_0802BACC: .4byte gUnknown_2023D6C +_0802BAD0: .4byte gUnknown_2023E8C +_0802BAD4: + mov r0, r8 + cmp r0, 0 + beq _0802BAF4 + ldr r3, _0802BAF0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + b _0802BB08 + .align 2, 0 +_0802BAF0: .4byte gUnknown_2023D74 +_0802BAF4: + ldr r3, _0802BB1C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] +_0802BB08: + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802BB0E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BB1C: .4byte gUnknown_2023D74 + thumb_func_end sub_802B910 + + thumb_func_start sub_802BB20 +sub_802BB20: @ 802BB20 + push {lr} + ldr r0, _0802BB34 @ =gUnknown_2023D4A + ldrh r1, [r0] + cmp r1, 0x5B + beq _0802BB60 + cmp r1, 0x5B + bgt _0802BB38 + cmp r1, 0x13 + beq _0802BB44 + b _0802BB8C + .align 2, 0 +_0802BB34: .4byte gUnknown_2023D4A +_0802BB38: + ldr r0, _0802BB54 @ =0x00000123 + cmp r1, r0 + beq _0802BB78 + adds r0, 0x31 + cmp r1, r0 + bne _0802BB8C +_0802BB44: + ldr r2, _0802BB58 @ =gUnknown_2023DFC + ldr r0, _0802BB5C @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x40 + b _0802BB88 + .align 2, 0 +_0802BB54: .4byte 0x00000123 +_0802BB58: .4byte gUnknown_2023DFC +_0802BB5C: .4byte gUnknown_2023D6B +_0802BB60: + ldr r2, _0802BB70 @ =gUnknown_2023DFC + ldr r0, _0802BB74 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + b _0802BB88 + .align 2, 0 +_0802BB70: .4byte gUnknown_2023DFC +_0802BB74: .4byte gUnknown_2023D6B +_0802BB78: + ldr r2, _0802BB98 @ =gUnknown_2023DFC + ldr r0, _0802BB9C @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 11 +_0802BB88: + orrs r0, r2 + str r0, [r1] +_0802BB8C: + ldr r1, _0802BBA0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802BB98: .4byte gUnknown_2023DFC +_0802BB9C: .4byte gUnknown_2023D6B +_0802BBA0: .4byte gUnknown_2023D74 + thumb_func_end sub_802BB20 + + thumb_func_start sub_802BBA4 +sub_802BBA4: @ 802BBA4 + push {lr} + ldr r0, _0802BBB8 @ =gUnknown_2023D4A + ldrh r1, [r0] + cmp r1, 0x5B + beq _0802BBE8 + cmp r1, 0x5B + bgt _0802BBBC + cmp r1, 0x13 + beq _0802BBC8 + b _0802BC16 + .align 2, 0 +_0802BBB8: .4byte gUnknown_2023D4A +_0802BBBC: + ldr r0, _0802BBDC @ =0x00000123 + cmp r1, r0 + beq _0802BC04 + adds r0, 0x31 + cmp r1, r0 + bne _0802BC16 +_0802BBC8: + ldr r2, _0802BBE0 @ =gUnknown_2023DFC + ldr r0, _0802BBE4 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x41 + negs r2, r2 + b _0802BC12 + .align 2, 0 +_0802BBDC: .4byte 0x00000123 +_0802BBE0: .4byte gUnknown_2023DFC +_0802BBE4: .4byte gUnknown_2023D6B +_0802BBE8: + ldr r2, _0802BBFC @ =gUnknown_2023DFC + ldr r0, _0802BC00 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x81 + negs r2, r2 + b _0802BC12 + .align 2, 0 +_0802BBFC: .4byte gUnknown_2023DFC +_0802BC00: .4byte gUnknown_2023D6B +_0802BC04: + ldr r2, _0802BC24 @ =gUnknown_2023DFC + ldr r0, _0802BC28 @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + ldr r2, _0802BC2C @ =0xfffbffff +_0802BC12: + ands r0, r2 + str r0, [r1] +_0802BC16: + ldr r1, _0802BC30 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802BC24: .4byte gUnknown_2023DFC +_0802BC28: .4byte gUnknown_2023D6B +_0802BC2C: .4byte 0xfffbffff +_0802BC30: .4byte gUnknown_2023D74 + thumb_func_end sub_802BBA4 + + thumb_func_start sub_802BC34 +sub_802BC34: @ 802BC34 + push {lr} + ldr r0, _0802BC64 @ =gUnknown_2023DD0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0802BC58 + ldr r2, _0802BC68 @ =gUnknown_2023DFC + ldr r0, _0802BC6C @ =gUnknown_2023D6B + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 1 + orrs r0, r2 + str r0, [r1] +_0802BC58: + ldr r1, _0802BC70 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802BC64: .4byte gUnknown_2023DD0 +_0802BC68: .4byte gUnknown_2023DFC +_0802BC6C: .4byte gUnknown_2023D6B +_0802BC70: .4byte gUnknown_2023D74 + thumb_func_end sub_802BC34 + + thumb_func_start sub_802BC74 +sub_802BC74: @ 802BC74 + push {lr} + ldr r3, _0802BC98 @ =gUnknown_2023F1C + ldrh r1, [r3] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802BCA4 + ldr r2, _0802BC9C @ =gUnknown_2023DCC + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802BCA0 @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0802BCB2 + .align 2, 0 +_0802BC98: .4byte gUnknown_2023F1C +_0802BC9C: .4byte gUnknown_2023DCC +_0802BCA0: .4byte gUnknown_2023E82 +_0802BCA4: + strh r2, [r3] + ldr r0, _0802BCC0 @ =gUnknown_2023E82 + movs r1, 0x5 + strb r1, [r0, 0x5] + ldr r0, _0802BCC4 @ =gUnknown_2023F20 + adds r0, 0x28 + strb r1, [r0] +_0802BCB2: + ldr r1, _0802BCC8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802BCC0: .4byte gUnknown_2023E82 +_0802BCC4: .4byte gUnknown_2023F20 +_0802BCC8: .4byte gUnknown_2023D74 + thumb_func_end sub_802BC74 + + thumb_func_start sub_802BCCC +sub_802BCCC: @ 802BCCC + push {r4,lr} + ldr r2, _0802BD10 @ =gUnknown_2023BE4 + ldr r0, _0802BD14 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + movs r0, 0x19 + ldrsb r0, [r1, r0] + adds r3, r2, 0 + cmp r0, 0 + bne _0802BD20 + movs r0, 0x1C + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _0802BD20 + ldr r0, _0802BD18 @ =gUnknown_2023E82 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _0802BD20 + ldr r3, _0802BD1C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802BD4C + .align 2, 0 +_0802BD10: .4byte gUnknown_2023BE4 +_0802BD14: .4byte gUnknown_2023D6C +_0802BD18: .4byte gUnknown_2023E82 +_0802BD1C: .4byte gUnknown_2023D74 +_0802BD20: + ldr r4, _0802BD54 @ =gUnknown_2023BC4 + ldr r0, _0802BD58 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _0802BD5C @ =gUnknown_2023D50 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, _0802BD60 @ =0x00007fff + movs r0, 0 + bl sub_800E5EC + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _0802BD64 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802BD4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BD54: .4byte gUnknown_2023BC4 +_0802BD58: .4byte gUnknown_2023D6B +_0802BD5C: .4byte gUnknown_2023D50 +_0802BD60: .4byte 0x00007fff +_0802BD64: .4byte gUnknown_2023D74 + thumb_func_end sub_802BCCC + + thumb_func_start sub_802BD68 +sub_802BD68: @ 802BD68 + push {r4,r5,lr} + ldr r4, _0802BDA8 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751C4 + ldr r5, _0802BDAC @ =gUnknown_2023DE4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x1 + strb r0, [r1, 0x8] + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r4] + strb r0, [r1, 0x9] + ldr r1, _0802BDB0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BDA8: .4byte gUnknown_2023D6B +_0802BDAC: .4byte gUnknown_2023DE4 +_0802BDB0: .4byte gUnknown_2023D74 + thumb_func_end sub_802BD68 + + thumb_func_start sub_802BDB4 +sub_802BDB4: @ 802BDB4 + push {r4,lr} + ldr r0, _0802BE08 @ =gUnknown_2023DFC + ldr r3, _0802BE0C @ =gUnknown_2023D6B + ldrb r1, [r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r4, _0802BE10 @ =gUnknown_2023E0C + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x12] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x12] + ldr r1, _0802BE14 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BE08: .4byte gUnknown_2023DFC +_0802BE0C: .4byte gUnknown_2023D6B +_0802BE10: .4byte gUnknown_2023E0C +_0802BE14: .4byte gUnknown_2023D74 + thumb_func_end sub_802BDB4 + + thumb_func_start sub_802BE18 +sub_802BE18: @ 802BE18 + push {r4,lr} + ldr r2, _0802BE68 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _0802BE6C @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _0802BE70 @ =gUnknown_2023D4A + ldr r1, _0802BE74 @ =gUnknown_825081C + ldr r0, _0802BE78 @ =gUnknown_2022B50 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_801D05C + ldr r1, _0802BE7C @ =gUnknown_2023D6C + strb r0, [r1] + ldr r3, _0802BE80 @ =gUnknown_81D65A8 + ldr r2, _0802BE84 @ =gUnknown_8250C04 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + bl sub_8017520 + ldr r1, _0802BE88 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BE68: .4byte gUnknown_2023DD0 +_0802BE6C: .4byte 0xfffffbff +_0802BE70: .4byte gUnknown_2023D4A +_0802BE74: .4byte gUnknown_825081C +_0802BE78: .4byte gUnknown_2022B50 +_0802BE7C: .4byte gUnknown_2023D6C +_0802BE80: .4byte gUnknown_81D65A8 +_0802BE84: .4byte gUnknown_8250C04 +_0802BE88: .4byte gUnknown_2023D74 + thumb_func_end sub_802BE18 + + thumb_func_start sub_802BE8C +sub_802BE8C: @ 802BE8C + push {r4-r6,lr} + sub sp, 0x4 + ldr r1, _0802BED8 @ =gUnknown_2023BE4 + ldr r3, _0802BEDC @ =gUnknown_2023D6B + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + adds r5, r1, 0 + adds r5, 0x4C + adds r2, r0, r5 + ldr r0, [r2] + movs r1, 0xD8 + ands r0, r1 + cmp r0, 0 + beq _0802BEE8 + movs r0, 0 + str r0, [r2] + ldr r1, _0802BEE0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r4, _0802BEE4 @ =gUnknown_2023BC4 + ldrb r0, [r3] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r6 + adds r0, r5 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 + b _0802BF02 + .align 2, 0 +_0802BED8: .4byte gUnknown_2023BE4 +_0802BEDC: .4byte gUnknown_2023D6B +_0802BEE0: .4byte gUnknown_2023D74 +_0802BEE4: .4byte gUnknown_2023BC4 +_0802BEE8: + ldr r3, _0802BF0C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802BF02: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802BF0C: .4byte gUnknown_2023D74 + thumb_func_end sub_802BE8C + + thumb_func_start sub_802BF10 +sub_802BF10: @ 802BF10 + push {lr} + ldr r1, _0802BF48 @ =gUnknown_2023BE4 + ldr r0, _0802BF4C @ =gUnknown_2023D6C + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 24 + cmp r1, 0 + bge _0802BF54 + ldr r3, _0802BF50 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802BF60 + .align 2, 0 +_0802BF48: .4byte gUnknown_2023BE4 +_0802BF4C: .4byte gUnknown_2023D6C +_0802BF50: .4byte gUnknown_2023D74 +_0802BF54: + orrs r1, r2 + str r1, [r0] + ldr r1, _0802BF64 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802BF60: + pop {r0} + bx r0 + .align 2, 0 +_0802BF64: .4byte gUnknown_2023D74 + thumb_func_end sub_802BF10 + + thumb_func_start sub_802BF68 +sub_802BF68: @ 802BF68 + push {lr} + ldr r2, _0802BF94 @ =gUnknown_2023E8C + ldr r0, _0802BF98 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r1, r0, 4 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0802BF88 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802BFA0 +_0802BF88: + ldr r1, _0802BF9C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802BFBA + .align 2, 0 +_0802BF94: .4byte gUnknown_2023E8C +_0802BF98: .4byte gUnknown_2023D6B +_0802BF9C: .4byte gUnknown_2023D74 +_0802BFA0: + ldr r3, _0802BFC0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802BFBA: + pop {r0} + bx r0 + .align 2, 0 +_0802BFC0: .4byte gUnknown_2023D74 + thumb_func_end sub_802BF68 + + thumb_func_start sub_802BFC4 +sub_802BFC4: @ 802BFC4 + push {r4,lr} + ldr r4, _0802C008 @ =gUnknown_2023E0C + ldr r3, _0802C00C @ =gUnknown_2023D6C + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r2, r1, r4 + ldrb r1, [r2, 0x13] + lsls r0, r1, 28 + cmp r0, 0 + bne _0802C014 + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x13] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x13] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x13] + ldr r1, _0802C010 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802C02E + .align 2, 0 +_0802C008: .4byte gUnknown_2023E0C +_0802C00C: .4byte gUnknown_2023D6C +_0802C010: .4byte gUnknown_2023D74 +_0802C014: + ldr r3, _0802C034 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802C02E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C034: .4byte gUnknown_2023D74 + thumb_func_end sub_802BFC4 + + thumb_func_start sub_802C038 +sub_802C038: @ 802C038 + push {r4,lr} + ldr r4, _0802C0A0 @ =gUnknown_2023D6B + ldrb r0, [r4] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r3, _0802C0A4 @ =gUnknown_2023D6C + strb r0, [r3] + ldr r0, _0802C0A8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802C0BC + ldr r0, _0802C0AC @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0802C0B0 @ =gUnknown_825E45C + ldrb r3, [r3] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802C0BC + ldr r1, _0802C0B4 @ =gUnknown_2023E8C + ldrb r0, [r4] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + blt _0802C0BC + lsls r0, r3, 4 + adds r2, r0, r1 + ldrb r1, [r2] + lsls r0, r1, 28 + cmp r0, 0 + blt _0802C0BC + movs r0, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802C0B8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802C0D6 + .align 2, 0 +_0802C0A0: .4byte gUnknown_2023D6B +_0802C0A4: .4byte gUnknown_2023D6C +_0802C0A8: .4byte gUnknown_2022B4C +_0802C0AC: .4byte gUnknown_2023D70 +_0802C0B0: .4byte gUnknown_825E45C +_0802C0B4: .4byte gUnknown_2023E8C +_0802C0B8: .4byte gUnknown_2023D74 +_0802C0BC: + ldr r3, _0802C0DC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802C0D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C0DC: .4byte gUnknown_2023D74 + thumb_func_end sub_802C038 + + thumb_func_start sub_802C0E0 +sub_802C0E0: @ 802C0E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, _0802C1FC @ =gUnknown_2022B4C + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + bne _0802C1DE + ldr r0, _0802C200 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802C120 + ldr r0, [r4] + ldr r1, _0802C204 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0802C120 + ldr r0, _0802C208 @ =gUnknown_20386AE + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _0802C1DE +_0802C120: + ldr r6, _0802C200 @ =gUnknown_2023D6B + ldrb r0, [r6] + bl sub_80751C4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r7, _0802C20C @ =gUnknown_2023D6C + ldrb r0, [r7] + bl sub_80751C4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0802C1FC @ =gUnknown_2022B4C + ldr r0, [r0] + ldr r1, _0802C204 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0802C18A + ldr r0, _0802C208 @ =gUnknown_20386AE + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _0802C18A + ldr r0, _0802C210 @ =gUnknown_2023F20 + adds r2, r0, 0 + adds r2, 0x29 + adds r0, r4, r2 + ldrb r1, [r0] + ldr r4, _0802C214 @ =gUnknown_825E45C + ldr r3, _0802C218 @ =gUnknown_2023BCE + ldrb r0, [r6] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802C1DE + adds r0, r5, r2 + ldrb r1, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802C1DE +_0802C18A: + ldr r0, _0802C21C @ =gUnknown_2023BE4 + mov r8, r0 + ldr r1, _0802C200 @ =gUnknown_2023D6B + ldrb r4, [r1] + movs r5, 0x58 + adds r0, r4, 0 + muls r0, r5 + add r0, r8 + mov r9, r0 + ldrh r3, [r0, 0x2E] + adds r1, r3, 0 + cmp r1, 0 + bne _0802C1B2 + ldr r0, _0802C20C @ =gUnknown_2023D6C + ldrb r0, [r0] + muls r0, r5 + add r0, r8 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _0802C1DE +_0802C1B2: + cmp r1, 0xAF + beq _0802C1DE + ldr r7, _0802C20C @ =gUnknown_2023D6C + ldrb r0, [r7] + muls r0, r5 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0x2E] + cmp r2, 0xAF + beq _0802C1DE + adds r0, r3, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bls _0802C1DE + adds r0, r2, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _0802C224 +_0802C1DE: + ldr r3, _0802C220 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C37A + .align 2, 0 +_0802C1FC: .4byte gUnknown_2022B4C +_0802C200: .4byte gUnknown_2023D6B +_0802C204: .4byte 0x00000902 +_0802C208: .4byte gUnknown_20386AE +_0802C20C: .4byte gUnknown_2023D6C +_0802C210: .4byte gUnknown_2023F20 +_0802C214: .4byte gUnknown_825E45C +_0802C218: .4byte gUnknown_2023BCE +_0802C21C: .4byte gUnknown_2023BE4 +_0802C220: .4byte gUnknown_2023D74 +_0802C224: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _0802C258 + ldr r1, _0802C24C @ =gUnknown_2023D74 + ldr r0, _0802C250 @ =gUnknown_81D948E + str r0, [r1] + ldr r1, _0802C254 @ =gUnknown_2023D6A + ldrb r0, [r7] + muls r0, r5 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl sub_80C71D0 + b _0802C37A + .align 2, 0 +_0802C24C: .4byte gUnknown_2023D74 +_0802C250: .4byte gUnknown_81D948E +_0802C254: .4byte gUnknown_2023D6A +_0802C258: + ldr r3, _0802C344 @ =gUnknown_2023FE8 + mov r10, r3 + lsls r0, r4, 1 + adds r0, 0xD0 + ldr r1, [r3] + adds r6, r1, r0 + mov r0, r9 + ldrh r0, [r0, 0x2E] + mov r9, r0 + strh r2, [r6] + ldr r1, _0802C348 @ =gUnknown_2023D6B + ldrb r0, [r1] + muls r0, r5 + add r0, r8 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + muls r0, r5 + add r0, r8 + mov r2, r9 + strh r2, [r0, 0x2E] + ldr r4, _0802C34C @ =gUnknown_2023BC4 + ldr r3, _0802C348 @ =gUnknown_2023D6B + ldrb r0, [r3] + strb r0, [r4] + str r6, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldr r1, _0802C348 @ =gUnknown_2023D6B + ldrb r0, [r1] + bl sub_8017248 + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + muls r0, r5 + mov r1, r8 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r7] + bl sub_8017248 + ldrb r0, [r7] + mov r2, r10 + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + movs r3, 0 + strb r3, [r0] + ldrb r0, [r7] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r3, [r0] + ldr r1, _0802C348 @ =gUnknown_2023D6B + ldrb r0, [r1] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r3, [r0] + ldr r2, _0802C348 @ =gUnknown_2023D6B + ldrb r0, [r2] + mov r3, r10 + ldr r1, [r3] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + movs r1, 0 + strb r1, [r0] + ldr r1, _0802C350 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, _0802C354 @ =gUnknown_2022AB8 + movs r3, 0xFD + strb r3, [r1] + movs r2, 0xA + strb r2, [r1, 0x1] + ldrh r0, [r6] + strb r0, [r1, 0x2] + ldrh r0, [r6] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802C358 @ =gUnknown_2022AC8 + strb r3, [r1] + strb r2, [r1, 0x1] + mov r2, r9 + strb r2, [r1, 0x2] + mov r3, r9 + lsrs r0, r3, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + cmp r3, 0 + beq _0802C360 + ldrh r0, [r6] + cmp r0, 0 + beq _0802C374 + ldr r1, _0802C35C @ =gUnknown_2023E82 + movs r0, 0x2 + b _0802C378 + .align 2, 0 +_0802C344: .4byte gUnknown_2023FE8 +_0802C348: .4byte gUnknown_2023D6B +_0802C34C: .4byte gUnknown_2023BC4 +_0802C350: .4byte gUnknown_2023D74 +_0802C354: .4byte gUnknown_2022AB8 +_0802C358: .4byte gUnknown_2022AC8 +_0802C35C: .4byte gUnknown_2023E82 +_0802C360: + ldrh r0, [r6] + cmp r0, 0 + beq _0802C374 + ldr r0, _0802C370 @ =gUnknown_2023E82 + movs r1, 0 + strb r1, [r0, 0x5] + b _0802C37A + .align 2, 0 +_0802C370: .4byte gUnknown_2023E82 +_0802C374: + ldr r1, _0802C38C @ =gUnknown_2023E82 + movs r0, 0x1 +_0802C378: + strb r0, [r1, 0x5] +_0802C37A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C38C: .4byte gUnknown_2023E82 + thumb_func_end sub_802C0E0 + + thumb_func_start sub_802C390 +sub_802C390: @ 802C390 + push {r4,lr} + ldr r3, _0802C3D0 @ =gUnknown_2023BE4 + ldr r4, _0802C3D4 @ =gUnknown_2023D6C + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r1, [r0] + adds r0, r1, 0 + cmp r0, 0 + beq _0802C3E4 + cmp r0, 0x19 + beq _0802C3E4 + ldr r0, _0802C3D8 @ =gUnknown_2023D6B + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + strb r1, [r0] + ldr r1, _0802C3DC @ =gUnknown_2023D6A + ldrb r0, [r4] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0802C3E0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802C3FE + .align 2, 0 +_0802C3D0: .4byte gUnknown_2023BE4 +_0802C3D4: .4byte gUnknown_2023D6C +_0802C3D8: .4byte gUnknown_2023D6B +_0802C3DC: .4byte gUnknown_2023D6A +_0802C3E0: .4byte gUnknown_2023D74 +_0802C3E4: + ldr r3, _0802C404 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802C3FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C404: .4byte gUnknown_2023D74 + thumb_func_end sub_802C390 + + thumb_func_start sub_802C408 +sub_802C408: @ 802C408 + push {r4-r7,lr} + ldr r7, _0802C41C @ =gUnknown_2023D74 + ldr r2, [r7] + ldrb r3, [r2, 0x1] + cmp r3, 0 + beq _0802C420 + cmp r3, 0x1 + beq _0802C458 + b _0802C4D4 + .align 2, 0 +_0802C41C: .4byte gUnknown_2023D74 +_0802C420: + ldr r1, _0802C44C @ =gUnknown_2023F20 + ldr r4, _0802C450 @ =gUnknown_2023D6B + adds r0, r1, 0 + adds r0, 0x20 + ldrb r5, [r4] + adds r3, r0, r5 + ldrb r0, [r3] + cmp r0, 0 + bne _0802C4A4 + movs r0, 0x2 + strb r0, [r3] + ldrb r0, [r4] + adds r1, 0x24 + adds r1, r0, r1 + ldr r2, _0802C454 @ =gUnknown_2023BCE + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x6 + b _0802C4D2 + .align 2, 0 +_0802C44C: .4byte gUnknown_2023F20 +_0802C450: .4byte gUnknown_2023D6B +_0802C454: .4byte gUnknown_2023BCE +_0802C458: + ldr r1, _0802C4BC @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r4, _0802C4C0 @ =gUnknown_2023D6C + ldrb r0, [r4] + strb r0, [r1, 0x2] + ldr r0, _0802C4C4 @ =gUnknown_2023F20 + adds r0, 0x24 + ldrb r5, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802C4C8 @ =gUnknown_2023D50 + ldr r6, _0802C4CC @ =gUnknown_2023BE4 + ldrb r0, [r4] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _0802C490 + str r3, [r1] +_0802C490: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r4] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _0802C4D0 +_0802C4A4: + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r7] + b _0802C4D4 + .align 2, 0 +_0802C4BC: .4byte gUnknown_2022AB8 +_0802C4C0: .4byte gUnknown_2023D6C +_0802C4C4: .4byte gUnknown_2023F20 +_0802C4C8: .4byte gUnknown_2023D50 +_0802C4CC: .4byte gUnknown_2023BE4 +_0802C4D0: + adds r0, r2, 0x6 +_0802C4D2: + str r0, [r7] +_0802C4D4: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802C408 + + thumb_func_start sub_802C4DC +sub_802C4DC: @ 802C4DC + push {lr} + ldr r1, _0802C514 @ =gUnknown_2023DFC + ldr r0, _0802C518 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0802C520 + ldr r3, _0802C51C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C52C + .align 2, 0 +_0802C514: .4byte gUnknown_2023DFC +_0802C518: .4byte gUnknown_2023D6B +_0802C51C: .4byte gUnknown_2023D74 +_0802C520: + orrs r1, r3 + str r1, [r2] + ldr r1, _0802C530 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802C52C: + pop {r0} + bx r0 + .align 2, 0 +_0802C530: .4byte gUnknown_2023D74 + thumb_func_end sub_802C4DC + + thumb_func_start sub_802C534 +sub_802C534: @ 802C534 + push {lr} + ldr r3, _0802C580 @ =gUnknown_2023E8C + ldr r0, _0802C584 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r2, r0, 4 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802C554 + adds r0, r2, r3 + ldr r1, _0802C588 @ =gUnknown_2023D6C + ldrb r0, [r0, 0xC] + ldrb r1, [r1] + cmp r0, r1 + beq _0802C56C +_0802C554: + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802C572 + adds r0, r2, r3 + ldr r1, _0802C588 @ =gUnknown_2023D6C + ldrb r0, [r0, 0xD] + ldrb r1, [r1] + cmp r0, r1 + bne _0802C572 +_0802C56C: + ldr r1, _0802C58C @ =gUnknown_2023FC4 + movs r0, 0x2 + strb r0, [r1, 0xE] +_0802C572: + ldr r1, _0802C590 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802C580: .4byte gUnknown_2023E8C +_0802C584: .4byte gUnknown_2023D6B +_0802C588: .4byte gUnknown_2023D6C +_0802C58C: .4byte gUnknown_2023FC4 +_0802C590: .4byte gUnknown_2023D74 + thumb_func_end sub_802C534 + + thumb_func_start sub_802C594 +sub_802C594: @ 802C594 + push {r4,lr} + ldr r1, _0802C5D8 @ =gUnknown_2023DFC + ldr r0, _0802C5DC @ =gUnknown_2023D6C + ldrb r3, [r0] + lsls r0, r3, 2 + adds r4, r0, r1 + ldr r2, [r4] + movs r0, 0xC0 + lsls r0, 5 + ands r0, r2 + cmp r0, 0 + bne _0802C5BC + ldr r1, _0802C5E0 @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r3 + adds r1, 0x4C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0802C5E8 +_0802C5BC: + ldr r3, _0802C5E4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C5F8 + .align 2, 0 +_0802C5D8: .4byte gUnknown_2023DFC +_0802C5DC: .4byte gUnknown_2023D6C +_0802C5E0: .4byte gUnknown_2023BE4 +_0802C5E4: .4byte gUnknown_2023D74 +_0802C5E8: + movs r0, 0x80 + lsls r0, 5 + orrs r2, r0 + str r2, [r4] + ldr r1, _0802C600 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802C5F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C600: .4byte gUnknown_2023D74 + thumb_func_end sub_802C594 + + thumb_func_start sub_802C604 +sub_802C604: @ 802C604 + push {lr} + ldr r2, _0802C640 @ =gUnknown_2023BE4 + ldr r0, _0802C644 @ =gUnknown_2023D6C + ldrb r0, [r0] + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + ldr r0, _0802C648 @ =gUnknown_2023D6B + ldrb r0, [r0] + muls r0, r1 + adds r1, r0, r2 + ldrh r0, [r3, 0x28] + ldrh r2, [r1, 0x28] + cmp r0, r2 + bhi _0802C650 + ldr r3, _0802C64C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C662 + .align 2, 0 +_0802C640: .4byte gUnknown_2023BE4 +_0802C644: .4byte gUnknown_2023D6C +_0802C648: .4byte gUnknown_2023D6B +_0802C64C: .4byte gUnknown_2023D74 +_0802C650: + ldr r2, _0802C668 @ =gUnknown_2023D50 + ldrh r0, [r3, 0x28] + ldrh r1, [r1, 0x28] + subs r0, r1 + str r0, [r2] + ldr r1, _0802C66C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802C662: + pop {r0} + bx r0 + .align 2, 0 +_0802C668: .4byte gUnknown_2023D50 +_0802C66C: .4byte gUnknown_2023D74 + thumb_func_end sub_802C604 + + thumb_func_start sub_802C670 +sub_802C670: @ 802C670 + push {r4,lr} + ldr r4, _0802C6BC @ =gUnknown_2023F50 + ldrh r0, [r4] + cmp r0, 0 + bne _0802C6AC + ldr r2, _0802C6C0 @ =gUnknown_8250C04 + ldr r0, _0802C6C4 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r3, [r0, 0x1] + ldr r2, _0802C6C8 @ =gUnknown_2023BE4 + ldr r0, _0802C6CC @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r0, [r1, 0x28] + muls r0, r3 + ldrh r1, [r1, 0x2C] + bl __divsi3 + strh r0, [r4] + lsls r0, 16 + cmp r0, 0 + bne _0802C6AC + movs r0, 0x1 + strh r0, [r4] +_0802C6AC: + ldr r1, _0802C6D0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C6BC: .4byte gUnknown_2023F50 +_0802C6C0: .4byte gUnknown_8250C04 +_0802C6C4: .4byte gUnknown_2023D4A +_0802C6C8: .4byte gUnknown_2023BE4 +_0802C6CC: .4byte gUnknown_2023D6B +_0802C6D0: .4byte gUnknown_2023D74 + thumb_func_end sub_802C670 + + thumb_func_start sub_802C6D4 +sub_802C6D4: @ 802C6D4 + push {r4-r6,lr} + ldr r5, _0802C738 @ =gUnknown_2023BE4 + ldr r0, _0802C73C @ =gUnknown_2023D6B + ldrb r0, [r0] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r1, [r2] + cmp r1, 0 + bne _0802C6FC + ldr r0, _0802C740 @ =gUnknown_2023D6C + ldrb r0, [r0] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _0802C71C +_0802C6FC: + cmp r1, 0x19 + beq _0802C71C + ldr r6, _0802C740 @ =gUnknown_2023D6C + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r3, [r0] + cmp r3, 0x19 + beq _0802C71C + ldr r0, _0802C744 @ =gUnknown_2023DCC + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0802C74C +_0802C71C: + ldr r3, _0802C748 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C762 + .align 2, 0 +_0802C738: .4byte gUnknown_2023BE4 +_0802C73C: .4byte gUnknown_2023D6B +_0802C740: .4byte gUnknown_2023D6C +_0802C744: .4byte gUnknown_2023DCC +_0802C748: .4byte gUnknown_2023D74 +_0802C74C: + ldrb r1, [r2] + strb r3, [r2] + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + strb r1, [r0] + ldr r1, _0802C768 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802C762: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802C768: .4byte gUnknown_2023D74 + thumb_func_end sub_802C6D4 + + thumb_func_start sub_802C76C +sub_802C76C: @ 802C76C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, _0802C78C @ =gUnknown_2023DFC + ldr r4, _0802C790 @ =gUnknown_2023D6B + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _0802C7BC + b _0802C83E + .align 2, 0 +_0802C78C: .4byte gUnknown_2023DFC +_0802C790: .4byte gUnknown_2023D6B +_0802C794: + ldr r0, _0802C7B4 @ =gUnknown_2023DFC + mov r2, r9 + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 6 + orrs r0, r2 + str r0, [r1] + ldr r1, _0802C7B8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802C836 + .align 2, 0 +_0802C7B4: .4byte gUnknown_2023DFC +_0802C7B8: .4byte gUnknown_2023D74 +_0802C7BC: + adds r0, r2, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + bl sub_8016F90 + movs r6, 0 + b _0802C82E +_0802C7D2: + adds r0, r6, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r8, r0 + beq _0802C828 + movs r4, 0 + ldr r7, _0802C864 @ =gUnknown_2023D6B + mov r9, r7 + ldr r0, _0802C868 @ =gUnknown_2023BE4 + mov r12, r0 + mov r1, r9 + ldrb r0, [r1] + mov r2, r12 + adds r2, 0xC + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + adds r5, r6, 0 + muls r5, r1 +_0802C7FC: + movs r2, 0 + ldrh r1, [r3] + mov r0, r12 + adds r0, 0xC + adds r0, r5, r0 +_0802C806: + ldrh r7, [r0] + cmp r1, r7 + bne _0802C810 + cmp r1, 0 + bne _0802C818 +_0802C810: + adds r0, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _0802C806 +_0802C818: + cmp r2, 0x4 + bne _0802C824 + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0802C7FC +_0802C824: + cmp r4, 0x4 + bne _0802C794 +_0802C828: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0802C82E: + ldr r0, _0802C86C @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r6, r0 + bcc _0802C7D2 +_0802C836: + ldr r0, _0802C86C @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r6, r0 + bne _0802C858 +_0802C83E: + ldr r3, _0802C870 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802C858: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C864: .4byte gUnknown_2023D6B +_0802C868: .4byte gUnknown_2023BE4 +_0802C86C: .4byte gUnknown_2023BCC +_0802C870: .4byte gUnknown_2023D74 + thumb_func_end sub_802C76C + + thumb_func_start sub_802C874 +sub_802C874: @ 802C874 + push {lr} + ldr r1, _0802C8AC @ =gUnknown_2023DFC + ldr r0, _0802C8B0 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 7 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0802C8B8 + ldr r3, _0802C8B4 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802C8C4 + .align 2, 0 +_0802C8AC: .4byte gUnknown_2023DFC +_0802C8B0: .4byte gUnknown_2023D6B +_0802C8B4: .4byte gUnknown_2023D74 +_0802C8B8: + orrs r1, r3 + str r1, [r2] + ldr r1, _0802C8C8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802C8C4: + pop {r0} + bx r0 + .align 2, 0 +_0802C8C8: .4byte gUnknown_2023D74 + thumb_func_end sub_802C874 + + thumb_func_start sub_802C8CC +sub_802C8CC: @ 802C8CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r2, _0802C930 @ =gUnknown_8250830 + ldrh r0, [r2] + ldr r1, _0802C934 @ =0x0000ffff + cmp r0, r1 + beq _0802C944 + adds r6, r2, 0 + ldr r0, _0802C938 @ =gUnknown_2023BE4 + mov r8, r0 + adds r7, r1, 0 + adds r4, r6, 0 +_0802C8E8: + ldr r0, _0802C93C @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + ldrh r0, [r0] + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8088E38 + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bhi _0802C916 + adds r4, 0x4 + adds r5, 0x2 + ldrh r0, [r4] + cmp r0, r7 + bne _0802C8E8 +_0802C916: + lsls r0, r5, 1 + adds r0, r6 + ldrh r1, [r0] + ldr r0, _0802C934 @ =0x0000ffff + cmp r1, r0 + beq _0802C944 + ldr r0, _0802C940 @ =gUnknown_2023F50 + adds r1, r5, 0x1 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + strh r1, [r0] + b _0802C94A + .align 2, 0 +_0802C930: .4byte gUnknown_8250830 +_0802C934: .4byte 0x0000ffff +_0802C938: .4byte gUnknown_2023BE4 +_0802C93C: .4byte gUnknown_2023D6C +_0802C940: .4byte gUnknown_2023F50 +_0802C944: + ldr r1, _0802C95C @ =gUnknown_2023F50 + movs r0, 0x78 + strh r0, [r1] +_0802C94A: + ldr r1, _0802C960 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C95C: .4byte gUnknown_2023F50 +_0802C960: .4byte gUnknown_2023D74 + thumb_func_end sub_802C8CC + + thumb_func_start sub_802C964 +sub_802C964: @ 802C964 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r10, r0 + ldr r0, _0802CA84 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x18 + str r0, [sp, 0x4] + ldr r0, _0802CA88 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751D8 + movs r1, 0x1 + ands r1, r0 + ldr r0, _0802CA8C @ =gUnknown_2024284 + str r0, [sp] + cmp r1, 0 + beq _0802C994 + ldr r1, _0802CA90 @ =gUnknown_202402C + str r1, [sp] +_0802C994: + movs r2, 0 +_0802C996: + ldr r1, _0802CA94 @ =gUnknown_2023BCE + ldr r0, _0802CA88 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + adds r1, r2, 0x1 + str r1, [sp, 0x8] + ldrh r0, [r0] + cmp r2, r0 + beq _0802CA3C + movs r0, 0x64 + adds r6, r2, 0 + muls r6, r0 + ldr r0, [sp] + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _0802CA3C + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0802CA3C + movs r5, 0 + ldr r1, _0802CA98 @ =0x0000ffff + mov r8, r1 + mov r9, r6 + mov r1, r10 + lsls r0, r1, 1 + ldr r1, [sp, 0x4] + adds r6, r0, r1 +_0802C9E0: + movs r7, 0 + adds r1, r5, 0 + adds r1, 0xD + ldr r0, [sp] + add r0, r9 + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_802A1FC + lsls r0, 24 + adds r1, r5, 0x1 + cmp r0, 0 + bne _0802CA36 + ldr r0, _0802CA9C @ =gUnknown_82507E8 + ldrh r2, [r0] + adds r3, r0, 0 + cmp r2, r8 + beq _0802CA2A + cmp r4, r2 + beq _0802CA20 + ldr r5, _0802CA98 @ =0x0000ffff + adds r2, r3, 0 +_0802CA12: + adds r2, 0x2 + adds r7, 0x1 + ldrh r0, [r2] + cmp r0, r5 + beq _0802CA2A + cmp r4, r0 + bne _0802CA12 +_0802CA20: + lsls r0, r7, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r8 + bne _0802CA36 +_0802CA2A: + cmp r4, 0 + beq _0802CA36 + strh r4, [r6] + adds r6, 0x2 + movs r0, 0x1 + add r10, r0 +_0802CA36: + adds r5, r1, 0 + cmp r5, 0x3 + ble _0802C9E0 +_0802CA3C: + ldr r2, [sp, 0x8] + cmp r2, 0x5 + ble _0802C996 + mov r1, r10 + cmp r1, 0 + beq _0802CAB4 + ldr r2, _0802CAA0 @ =gUnknown_2023DD0 + ldr r0, [r2] + ldr r1, _0802CAA4 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _0802CAA8 @ =gUnknown_2023D4E + bl sub_8044EC8 + movs r1, 0xFF + ands r1, r0 + mov r0, r10 + muls r0, r1 + asrs r0, 8 + lsls r0, 1 + ldr r1, [sp, 0x4] + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_801D05C + ldr r1, _0802CAAC @ =gUnknown_2023D6C + strb r0, [r1] + ldr r1, _0802CAB0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802CACE + .align 2, 0 +_0802CA84: .4byte gUnknown_2023FE8 +_0802CA88: .4byte gUnknown_2023D6B +_0802CA8C: .4byte gUnknown_2024284 +_0802CA90: .4byte gUnknown_202402C +_0802CA94: .4byte gUnknown_2023BCE +_0802CA98: .4byte 0x0000ffff +_0802CA9C: .4byte gUnknown_82507E8 +_0802CAA0: .4byte gUnknown_2023DD0 +_0802CAA4: .4byte 0xfffffbff +_0802CAA8: .4byte gUnknown_2023D4E +_0802CAAC: .4byte gUnknown_2023D6C +_0802CAB0: .4byte gUnknown_2023D74 +_0802CAB4: + ldr r3, _0802CAE0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802CACE: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CAE0: .4byte gUnknown_2023D74 + thumb_func_end sub_802C964 + + thumb_func_start sub_802CAE4 +sub_802CAE4: @ 802CAE4 + push {lr} + ldr r1, _0802CB2C @ =gUnknown_2023D6C + ldr r3, _0802CB30 @ =gUnknown_2023D6B + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _0802CB34 @ =gUnknown_2023ECC + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0802CB38 @ =gUnknown_2023BE2 + ldrb r1, [r0] + ldr r0, _0802CB3C @ =gUnknown_2023BCC + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0802CB44 + ldr r3, _0802CB40 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802CB5C + .align 2, 0 +_0802CB2C: .4byte gUnknown_2023D6C +_0802CB30: .4byte gUnknown_2023D6B +_0802CB34: .4byte gUnknown_2023ECC +_0802CB38: .4byte gUnknown_2023BE2 +_0802CB3C: .4byte gUnknown_2023BCC +_0802CB40: .4byte gUnknown_2023D74 +_0802CB44: + ldr r0, _0802CB60 @ =gUnknown_2023E8C + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x10 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0802CB64 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802CB5C: + pop {r0} + bx r0 + .align 2, 0 +_0802CB60: .4byte gUnknown_2023E8C +_0802CB64: .4byte gUnknown_2023D74 + thumb_func_end sub_802CAE4 + + thumb_func_start sub_802CB68 +sub_802CB68: @ 802CB68 + push {lr} + ldr r2, _0802CBAC @ =gUnknown_2023ECC + ldr r3, _0802CBB0 @ =gUnknown_2023D6B + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0802CBB4 @ =gUnknown_2023BE2 + ldrb r1, [r0] + ldr r0, _0802CBB8 @ =gUnknown_2023BCC + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0802CBC0 + ldr r3, _0802CBBC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802CBD6 + .align 2, 0 +_0802CBAC: .4byte gUnknown_2023ECC +_0802CBB0: .4byte gUnknown_2023D6B +_0802CBB4: .4byte gUnknown_2023BE2 +_0802CBB8: .4byte gUnknown_2023BCC +_0802CBBC: .4byte gUnknown_2023D74 +_0802CBC0: + ldr r0, _0802CBDC @ =gUnknown_2023E8C + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, _0802CBE0 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802CBD6: + pop {r0} + bx r0 + .align 2, 0 +_0802CBDC: .4byte gUnknown_2023E8C +_0802CBE0: .4byte gUnknown_2023D74 + thumb_func_end sub_802CB68 + + thumb_func_start sub_802CBE4 +sub_802CBE4: @ 802CBE4 + push {r4-r6,lr} + ldr r4, _0802CC88 @ =gUnknown_2023FC4 + ldr r0, _0802CC8C @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0xD8 + ldrb r0, [r0] + strb r0, [r4, 0x17] + ldrb r0, [r4, 0x17] + bl sub_80751C4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _0802CC90 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x9 + strb r0, [r2, 0x1] + ldr r3, _0802CC94 @ =gUnknown_2023BE4 + ldrb r1, [r4, 0x17] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, _0802CC98 @ =gUnknown_2023D6C + ldr r1, _0802CC9C @ =gUnknown_2023BCC + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bcs _0802CC6A + adds r4, r2, 0 + ldr r6, _0802CCA0 @ =gUnknown_825E45C +_0802CC2A: + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + beq _0802CC4C + ldr r0, _0802CCA4 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r1, r0 + ldr r2, _0802CC9C @ =gUnknown_2023BCC + cmp r1, 0 + beq _0802CC60 +_0802CC4C: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _0802CC9C @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + adds r2, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bcc _0802CC2A +_0802CC60: + ldr r0, _0802CC98 @ =gUnknown_2023D6C + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + bcc _0802CCAC +_0802CC6A: + ldr r3, _0802CCA8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802CCB4 + .align 2, 0 +_0802CC88: .4byte gUnknown_2023FC4 +_0802CC8C: .4byte gUnknown_2023FE8 +_0802CC90: .4byte gUnknown_2022AB8 +_0802CC94: .4byte gUnknown_2023BE4 +_0802CC98: .4byte gUnknown_2023D6C +_0802CC9C: .4byte gUnknown_2023BCC +_0802CCA0: .4byte gUnknown_825E45C +_0802CCA4: .4byte gUnknown_2023D70 +_0802CCA8: .4byte gUnknown_2023D74 +_0802CCAC: + ldr r1, _0802CCBC @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802CCB4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802CCBC: .4byte gUnknown_2023D74 + thumb_func_end sub_802CBE4 + + thumb_func_start sub_802CCC0 +sub_802CCC0: @ 802CCC0 + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, _0802CD28 @ =gUnknown_2023D74 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r4, _0802CD2C @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r3, _0802CD30 @ =gUnknown_2023BE4 + ldrb r0, [r4] + movs r6, 0x58 + adds r1, r0, 0 + muls r1, r6 + adds r0, r1, r3 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _0802CD1A + adds r3, 0x4C + adds r1, r3 + movs r0, 0 + str r0, [r1] + ldr r2, _0802CD34 @ =gUnknown_825E45C + ldrb r1, [r4] + ldr r0, _0802CD38 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, r1, r0 + adds r0, 0x58 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0] + adds r0, r1, 0 + muls r0, r6 + adds r0, r3 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl sub_800DFF0 + ldrb r0, [r4] + bl sub_8017248 +_0802CD1A: + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802CD28: .4byte gUnknown_2023D74 +_0802CD2C: .4byte gUnknown_2023BC4 +_0802CD30: .4byte gUnknown_2023BE4 +_0802CD34: .4byte gUnknown_825E45C +_0802CD38: .4byte gUnknown_2023FE8 + thumb_func_end sub_802CCC0 + + thumb_func_start sub_802CD3C +sub_802CD3C: @ 802CD3C + push {r4,lr} + ldr r4, _0802CD78 @ =gUnknown_2023D74 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8016E24 + ldr r1, _0802CD7C @ =gUnknown_2023BC4 + strb r0, [r1] + ldr r2, _0802CD80 @ =gUnknown_2023BE4 + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0802CD84 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0802CD8A + .align 2, 0 +_0802CD78: .4byte gUnknown_2023D74 +_0802CD7C: .4byte gUnknown_2023BC4 +_0802CD80: .4byte gUnknown_2023BE4 +_0802CD84: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0802CD8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802CD3C + + thumb_func_start sub_802CD90 +sub_802CD90: @ 802CD90 + push {lr} + ldr r0, _0802CDA4 @ =gUnknown_2022B50 + ldrb r0, [r0] + cmp r0, 0x7 + bhi _0802CE2C + lsls r0, 2 + ldr r1, _0802CDA8 @ =_0802CDAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802CDA4: .4byte gUnknown_2022B50 +_0802CDA8: .4byte _0802CDAC + .align 2, 0 +_0802CDAC: + .4byte _0802CDCC + .4byte _0802CDD8 + .4byte _0802CDE4 + .4byte _0802CDF0 + .4byte _0802CDFC + .4byte _0802CE08 + .4byte _0802CE14 + .4byte _0802CE20 +_0802CDCC: + ldr r1, _0802CDD4 @ =gUnknown_2023E82 + movs r0, 0x2 + b _0802CE30 + .align 2, 0 +_0802CDD4: .4byte gUnknown_2023E82 +_0802CDD8: + ldr r1, _0802CDE0 @ =gUnknown_2023E82 + movs r0, 0x1 + b _0802CE30 + .align 2, 0 +_0802CDE0: .4byte gUnknown_2023E82 +_0802CDE4: + ldr r1, _0802CDEC @ =gUnknown_2023E82 + movs r0, 0x1B + b _0802CE30 + .align 2, 0 +_0802CDEC: .4byte gUnknown_2023E82 +_0802CDF0: + ldr r1, _0802CDF8 @ =gUnknown_2023E82 + movs r0, 0x17 + b _0802CE30 + .align 2, 0 +_0802CDF8: .4byte gUnknown_2023E82 +_0802CDFC: + ldr r1, _0802CE04 @ =gUnknown_2023E82 + movs r0, 0x16 + b _0802CE30 + .align 2, 0 +_0802CE04: .4byte gUnknown_2023E82 +_0802CE08: + ldr r1, _0802CE10 @ =gUnknown_2023E82 + movs r0, 0x18 + b _0802CE30 + .align 2, 0 +_0802CE10: .4byte gUnknown_2023E82 +_0802CE14: + ldr r1, _0802CE1C @ =gUnknown_2023E82 + movs r0, 0x7 + b _0802CE30 + .align 2, 0 +_0802CE1C: .4byte gUnknown_2023E82 +_0802CE20: + ldr r1, _0802CE28 @ =gUnknown_2023E82 + movs r0, 0x8 + b _0802CE30 + .align 2, 0 +_0802CE28: .4byte gUnknown_2023E82 +_0802CE2C: + ldr r1, _0802CE40 @ =gUnknown_2023E82 + movs r0, 0x5 +_0802CE30: + strb r0, [r1, 0x3] + ldr r1, _0802CE44 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802CE40: .4byte gUnknown_2023E82 +_0802CE44: .4byte gUnknown_2023D74 + thumb_func_end sub_802CD90 + + thumb_func_start sub_802CE48 +sub_802CE48: @ 802CE48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + ldr r0, _0802CE90 @ =gUnknown_8254784 + mov r8, r0 +_0802CE54: + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _0802CE94 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0xC + bl sub_803FBE8 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + cmp r0, 0 + beq _0802CE98 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x17] + b _0802CEA2 + .align 2, 0 +_0802CE90: .4byte gUnknown_8254784 +_0802CE94: .4byte gUnknown_2024284 +_0802CE98: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x16] +_0802CEA2: + adds r4, r7, 0x1 + cmp r0, 0x35 + bne _0802CF0A + cmp r5, 0 + beq _0802CF0A + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _0802CF0A + cmp r6, 0 + bne _0802CF0A + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _0802CF0A + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r1, _0802CEE4 @ =gUnknown_8250848 + b _0802CEF0 + .align 2, 0 +_0802CEE4: .4byte gUnknown_8250848 +_0802CEE8: + adds r1, 0x4 + adds r2, 0x1 + cmp r2, 0xE + bhi _0802CEF6 +_0802CEF0: + ldrb r0, [r1, 0x2] + cmp r0, r3 + ble _0802CEE8 +_0802CEF6: + movs r0, 0x64 + muls r0, r7 + ldr r1, _0802CF24 @ =gUnknown_2024284 + adds r0, r1 + lsls r2, 2 + ldr r1, _0802CF28 @ =gUnknown_8250848 + adds r2, r1 + movs r1, 0xC + bl sub_804037C +_0802CF0A: + adds r7, r4, 0 + cmp r7, 0x5 + ble _0802CE54 + ldr r1, _0802CF2C @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CF24: .4byte gUnknown_2024284 +_0802CF28: .4byte gUnknown_8250848 +_0802CF2C: .4byte gUnknown_2023D74 + thumb_func_end sub_802CE48 + + thumb_func_start sub_802CF30 +sub_802CF30: @ 802CF30 + push {r4,lr} + ldr r4, _0802CF84 @ =gUnknown_2023BC4 + ldr r0, _0802CF88 @ =gUnknown_2023FC4 + ldrb r0, [r0, 0x17] + strb r0, [r4] + ldr r1, _0802CF8C @ =gUnknown_2023BE4 + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + ldr r3, _0802CF90 @ =gUnknown_2023FE8 + cmp r0, 0 + beq _0802CF60 + ldr r0, [r3] + adds r0, 0x7F + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0802CF60: + ldr r0, [r3] + adds r0, 0x7F + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl sub_800EB28 + ldrb r0, [r4] + bl sub_8017248 + ldr r1, _0802CF94 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CF84: .4byte gUnknown_2023BC4 +_0802CF88: .4byte gUnknown_2023FC4 +_0802CF8C: .4byte gUnknown_2023BE4 +_0802CF90: .4byte gUnknown_2023FE8 +_0802CF94: .4byte gUnknown_2023D74 + thumb_func_end sub_802CF30 + + thumb_func_start sub_802CF98 +sub_802CF98: @ 802CF98 + push {r4,lr} + ldr r1, _0802CFC8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _0802CFCC @ =gUnknown_2023FC4 + ldrb r0, [r0, 0x17] + bl sub_8019DAC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0802CFC2 + ldr r0, _0802CFD0 @ =gUnknown_81D92F8 + bl sub_801BC24 + ldr r0, _0802CFD4 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x7F + subs r1, r4, 0x1 + strb r1, [r0] +_0802CFC2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CFC8: .4byte gUnknown_2023D74 +_0802CFCC: .4byte gUnknown_2023FC4 +_0802CFD0: .4byte gUnknown_81D92F8 +_0802CFD4: .4byte gUnknown_2023FE8 + thumb_func_end sub_802CF98 + + thumb_func_start sub_802CFD8 +sub_802CFD8: @ 802CFD8 + push {r4,lr} + movs r4, 0 + ldr r2, _0802D014 @ =gUnknown_8250C04 + ldr r0, _0802D018 @ =gUnknown_2023D4A + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xC9 + bne _0802D028 + ldr r1, _0802D01C @ =gUnknown_2023DFC + ldr r0, _0802D020 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 9 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _0802D04C + orrs r1, r3 + str r1, [r2] + ldr r0, _0802D024 @ =gUnknown_2023E82 + strb r4, [r0, 0x5] + b _0802D050 + .align 2, 0 +_0802D014: .4byte gUnknown_8250C04 +_0802D018: .4byte gUnknown_2023D4A +_0802D01C: .4byte gUnknown_2023DFC +_0802D020: .4byte gUnknown_2023D6B +_0802D024: .4byte gUnknown_2023E82 +_0802D028: + ldr r1, _0802D05C @ =gUnknown_2023DFC + ldr r0, _0802D060 @ =gUnknown_2023D6B + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 10 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _0802D04C + orrs r1, r3 + str r1, [r2] + ldr r1, _0802D064 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + movs r4, 0x1 +_0802D04C: + cmp r4, 0 + beq _0802D06C +_0802D050: + ldr r1, _0802D068 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802D086 + .align 2, 0 +_0802D05C: .4byte gUnknown_2023DFC +_0802D060: .4byte gUnknown_2023D6B +_0802D064: .4byte gUnknown_2023E82 +_0802D068: .4byte gUnknown_2023D74 +_0802D06C: + ldr r3, _0802D08C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802D086: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D08C: .4byte gUnknown_2023D74 + thumb_func_end sub_802CFD8 + + thumb_func_start sub_802D090 +sub_802D090: @ 802D090 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0802D130 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + bne _0802D130 + ldr r2, _0802D0E0 @ =gUnknown_2023F1C + ldrb r0, [r2] + cmp r0, 0 + beq _0802D0CE + ldr r1, _0802D0E4 @ =gUnknown_2023FC4 + movs r0, 0x2 + strb r0, [r1, 0xE] +_0802D0CE: + ldrh r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0802D0EC + ldr r0, _0802D0E8 @ =gUnknown_2023FE8 + ldr r1, [r0] + movs r0, 0x8B + b _0802D12E + .align 2, 0 +_0802D0E0: .4byte gUnknown_2023F1C +_0802D0E4: .4byte gUnknown_2023FC4 +_0802D0E8: .4byte gUnknown_2023FE8 +_0802D0EC: + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _0802D100 + ldr r0, _0802D0FC @ =gUnknown_2023FE8 + ldr r1, [r0] + movs r0, 0x85 + b _0802D12E + .align 2, 0 +_0802D0FC: .4byte gUnknown_2023FE8 +_0802D100: + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0802D114 + ldr r0, _0802D110 @ =gUnknown_2023FE8 + ldr r1, [r0] + movs r0, 0x8A + b _0802D12E + .align 2, 0 +_0802D110: .4byte gUnknown_2023FE8 +_0802D114: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802D128 + ldr r0, _0802D124 @ =gUnknown_2023FE8 + ldr r1, [r0] + movs r0, 0x8F + b _0802D12E + .align 2, 0 +_0802D124: .4byte gUnknown_2023FE8 +_0802D128: + ldr r0, _0802D140 @ =gUnknown_2023FE8 + ldr r1, [r0] + movs r0, 0x80 +_0802D12E: + strb r0, [r1, 0x13] +_0802D130: + ldr r1, _0802D144 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802D140: .4byte gUnknown_2023FE8 +_0802D144: .4byte gUnknown_2023D74 + thumb_func_end sub_802D090 + + thumb_func_start sub_802D148 +sub_802D148: @ 802D148 + push {r4-r7,lr} + sub sp, 0x4 + ldr r7, _0802D1B0 @ =gUnknown_2023BC4 + ldr r0, _0802D1B4 @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r7] + ldr r1, _0802D1B8 @ =gUnknown_2023FE8 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, 0xB8 + ldr r1, [r1] + adds r6, r1, r0 + ldrh r5, [r6] + cmp r5, 0 + beq _0802D1C8 + ldr r4, _0802D1BC @ =gUnknown_2023BE4 + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + adds r0, r4 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + bne _0802D1C8 + ldr r1, _0802D1C0 @ =gUnknown_2023D68 + strh r5, [r1] + strh r0, [r6] + ldrb r0, [r7] + muls r0, r3 + adds r0, r4 + ldrh r1, [r1] + strh r1, [r0, 0x2E] + ldrb r0, [r7] + muls r0, r3 + adds r1, r4, 0 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_800DFF0 + ldrb r0, [r7] + bl sub_8017248 + ldr r1, _0802D1C4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802D1E2 + .align 2, 0 +_0802D1B0: .4byte gUnknown_2023BC4 +_0802D1B4: .4byte gUnknown_2023D6B +_0802D1B8: .4byte gUnknown_2023FE8 +_0802D1BC: .4byte gUnknown_2023BE4 +_0802D1C0: .4byte gUnknown_2023D68 +_0802D1C4: .4byte gUnknown_2023D74 +_0802D1C8: + ldr r3, _0802D1EC @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802D1E2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D1EC: .4byte gUnknown_2023D74 + thumb_func_end sub_802D148 + + thumb_func_start sub_802D1F0 +sub_802D1F0: @ 802D1F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0802D260 @ =gUnknown_2023BE4 + mov r8, r0 + ldr r7, _0802D264 @ =gUnknown_2023D6B + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + mov r1, r8 + adds r3, r0, r1 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + ldr r5, _0802D268 @ =gUnknown_8250888 + ldr r4, _0802D26C @ =gUnknown_2022B50 + ldrb r0, [r4] + adds r0, r5 + ldrb r2, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r2, 0 + cmp r0, r1 + beq _0802D278 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _0802D278 + mov r0, r12 + strb r2, [r0] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r8 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + adds r1, 0x22 + strb r0, [r1] + ldr r1, _0802D270 @ =gUnknown_2022AB8 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _0802D274 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802D292 + .align 2, 0 +_0802D260: .4byte gUnknown_2023BE4 +_0802D264: .4byte gUnknown_2023D6B +_0802D268: .4byte gUnknown_8250888 +_0802D26C: .4byte gUnknown_2022B50 +_0802D270: .4byte gUnknown_2022AB8 +_0802D274: .4byte gUnknown_2023D74 +_0802D278: + ldr r3, _0802D29C @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802D292: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D29C: .4byte gUnknown_2023D74 + thumb_func_end sub_802D1F0 + + thumb_func_start sub_802D2A0 +sub_802D2A0: @ 802D2A0 + push {r4-r6,lr} + ldr r5, _0802D314 @ =gUnknown_2023D6B + ldrb r0, [r5] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r4, _0802D318 @ =gUnknown_2023BC4 + strb r0, [r4] + ldr r0, _0802D31C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r6, 0x1 + ands r0, r6 + cmp r0, 0 + beq _0802D340 + ldr r0, _0802D320 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0802D324 @ =gUnknown_825E45C + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802D340 + ldr r0, _0802D328 @ =gUnknown_2023D7C + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802D340 + ldr r1, _0802D32C @ =gUnknown_2023DC4 + lsls r0, r3, 1 + adds r0, r1 + ldrh r2, [r0] + cmp r2, 0xE4 + bne _0802D340 + ldr r0, _0802D330 @ =gUnknown_2023BDA + adds r0, r3, r0 + movs r1, 0xB + strb r1, [r0] + ldr r0, _0802D334 @ =gUnknown_2023D4A + strh r2, [r0] + ldr r1, _0802D338 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r0, _0802D33C @ =gUnknown_2023FC4 + strb r6, [r0, 0x18] + ldrb r1, [r5] + adds r0, 0x20 + strb r1, [r0] + ldrb r0, [r4] + strb r0, [r5] + b _0802D35A + .align 2, 0 +_0802D314: .4byte gUnknown_2023D6B +_0802D318: .4byte gUnknown_2023BC4 +_0802D31C: .4byte gUnknown_2022B4C +_0802D320: .4byte gUnknown_2023D70 +_0802D324: .4byte gUnknown_825E45C +_0802D328: .4byte gUnknown_2023D7C +_0802D32C: .4byte gUnknown_2023DC4 +_0802D330: .4byte gUnknown_2023BDA +_0802D334: .4byte gUnknown_2023D4A +_0802D338: .4byte gUnknown_2023D74 +_0802D33C: .4byte gUnknown_2023FC4 +_0802D340: + ldr r3, _0802D360 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802D35A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D360: .4byte gUnknown_2023D74 + thumb_func_end sub_802D2A0 + + thumb_func_start sub_802D364 +sub_802D364: @ 802D364 + push {r4,lr} + ldr r1, _0802D388 @ =gUnknown_2023D6E + ldr r3, _0802D38C @ =gUnknown_2023D6B + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _0802D390 @ =gUnknown_2023D6C + lsls r0, 24 + lsrs r0, 24 + adds r4, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bne _0802D398 + ldr r1, _0802D394 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x17] + strb r0, [r2] + strb r0, [r3] + b _0802D39E + .align 2, 0 +_0802D388: .4byte gUnknown_2023D6E +_0802D38C: .4byte gUnknown_2023D6B +_0802D390: .4byte gUnknown_2023D6C +_0802D394: .4byte gUnknown_2023FC4 +_0802D398: + ldr r1, _0802D3B0 @ =gUnknown_2023FC4 + ldrb r0, [r1, 0x17] + strb r0, [r2] +_0802D39E: + ldrb r0, [r4] + strb r0, [r1, 0x17] + ldr r1, _0802D3B4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D3B0: .4byte gUnknown_2023FC4 +_0802D3B4: .4byte gUnknown_2023D74 + thumb_func_end sub_802D364 + + thumb_func_start sub_802D3B8 +sub_802D3B8: @ 802D3B8 + push {r4,lr} + ldr r0, _0802D400 @ =gUnknown_2023D6B + ldrb r0, [r0] + bl sub_80751C4 + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0802D404 @ =gUnknown_2023DE4 + lsls r3, r0, 1 + adds r0, r3, r0 + lsls r0, 2 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + bne _0802D3E0 + ldrb r1, [r4, 0x2] + cmp r1, 0 + beq _0802D418 +_0802D3E0: + ldr r2, _0802D408 @ =gUnknown_2023DDE + adds r2, r3, r2 + ldrh r1, [r2] + ldr r0, _0802D40C @ =0x0000fffe + ands r0, r1 + movs r3, 0 + ldr r1, _0802D410 @ =0x0000fffd + ands r0, r1 + strh r0, [r2] + strb r3, [r4] + strb r3, [r4, 0x2] + ldr r1, _0802D414 @ =gUnknown_2023FC4 + movs r0, 0x1 + strb r0, [r1, 0x18] + strb r0, [r1, 0x19] + b _0802D41E + .align 2, 0 +_0802D400: .4byte gUnknown_2023D6B +_0802D404: .4byte gUnknown_2023DE4 +_0802D408: .4byte gUnknown_2023DDE +_0802D40C: .4byte 0x0000fffe +_0802D410: .4byte 0x0000fffd +_0802D414: .4byte gUnknown_2023FC4 +_0802D418: + ldr r0, _0802D42C @ =gUnknown_2023FC4 + strb r1, [r0, 0x18] + strb r1, [r0, 0x19] +_0802D41E: + ldr r1, _0802D430 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D42C: .4byte gUnknown_2023FC4 +_0802D430: .4byte gUnknown_2023D74 + thumb_func_end sub_802D3B8 + + thumb_func_start sub_802D434 +sub_802D434: @ 802D434 + push {r4-r6,lr} + movs r4, 0 + ldr r0, _0802D474 @ =gUnknown_2023BC8 + ldr r0, [r0] + cmp r0, 0 + beq _0802D442 + b _0802D7EE +_0802D442: + ldr r5, _0802D478 @ =gUnknown_2023BC4 + ldr r0, _0802D47C @ =gUnknown_2023D6B + ldrb r0, [r0] + strb r0, [r5] + ldr r6, _0802D480 @ =gUnknown_2023D6C + movs r1, 0x1 + eors r0, r1 + strb r0, [r6] + ldr r0, _0802D484 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _0802D490 + movs r0, 0 + movs r1, 0x6 + bl sub_800E194 + ldrb r0, [r5] + bl sub_8017248 + ldr r1, _0802D488 @ =gUnknown_2023D74 + ldr r0, _0802D48C @ =gUnknown_81D9AD1 + b _0802D7EC + .align 2, 0 +_0802D474: .4byte gUnknown_2023BC8 +_0802D478: .4byte gUnknown_2023BC4 +_0802D47C: .4byte gUnknown_2023D6B +_0802D480: .4byte gUnknown_2023D6C +_0802D484: .4byte gUnknown_2022B4C +_0802D488: .4byte gUnknown_2023D74 +_0802D48C: .4byte gUnknown_81D9AD1 +_0802D490: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802D4B4 + movs r0, 0 + movs r1, 0x5 + bl sub_800E194 + ldrb r0, [r5] + bl sub_8017248 + ldr r1, _0802D4AC @ =gUnknown_2023D74 + ldr r0, _0802D4B0 @ =gUnknown_81D9AC1 + b _0802D7EC + .align 2, 0 +_0802D4AC: .4byte gUnknown_2023D74 +_0802D4B0: .4byte gUnknown_81D9AC1 +_0802D4B4: + movs r0, 0x81 + lsls r0, 9 + ands r1, r0 + cmp r1, 0 + beq _0802D4DC + movs r0, 0 + movs r1, 0x4 + bl sub_800E194 + ldrb r0, [r5] + bl sub_8017248 + ldr r1, _0802D4D4 @ =gUnknown_2023D74 + ldr r0, _0802D4D8 @ =gUnknown_81D9A88 + b _0802D7EC + .align 2, 0 +_0802D4D4: .4byte gUnknown_2023D74 +_0802D4D8: .4byte gUnknown_81D9A88 +_0802D4DC: + ldr r0, _0802D500 @ =gUnknown_2023D68 + ldrh r0, [r0] + cmp r0, 0x5 + bne _0802D508 + ldr r0, _0802D504 @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, 0x7C + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 8 + subs r0, r1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 24 + lsrs r5, r0, 24 + b _0802D520 + .align 2, 0 +_0802D500: .4byte gUnknown_2023D68 +_0802D504: .4byte gUnknown_2023FE8 +_0802D508: + ldr r3, _0802D53C @ =gUnknown_8254784 + ldr r2, _0802D540 @ =gUnknown_2023BE4 + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r5, [r0, 0x8] +_0802D520: + ldr r2, _0802D544 @ =gUnknown_2023D68 + ldrh r0, [r2] + cmp r0, 0x5 + bhi _0802D52A + b _0802D620 +_0802D52A: + subs r0, 0x6 + cmp r0, 0x6 + bls _0802D532 + b _0802D62A +_0802D532: + lsls r0, 2 + ldr r1, _0802D548 @ =_0802D54C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D53C: .4byte gUnknown_8254784 +_0802D540: .4byte gUnknown_2023BE4 +_0802D544: .4byte gUnknown_2023D68 +_0802D548: .4byte _0802D54C + .align 2, 0 +_0802D54C: + .4byte _0802D568 + .4byte _0802D598 + .4byte _0802D5AA + .4byte _0802D5D8 + .4byte _0802D608 + .4byte _0802D5CA + .4byte _0802D5CA +_0802D568: + ldr r2, _0802D590 @ =gUnknown_2023BE4 + ldr r0, _0802D594 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0xB + beq _0802D5FC + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xB + beq _0802D5FC + cmp r1, 0x6 + beq _0802D5FC + cmp r0, 0x6 + beq _0802D5FC + b _0802D5CA + .align 2, 0 +_0802D590: .4byte gUnknown_2023BE4 +_0802D594: .4byte gUnknown_2023D6C +_0802D598: + bl sub_8056188 + lsls r0, 24 + lsrs r0, 24 + movs r4, 0xA + cmp r0, 0x5 + bne _0802D62A + movs r4, 0x23 + b _0802D62A +_0802D5AA: + ldr r2, _0802D5D0 @ =gUnknown_2023BE4 + ldr r0, _0802D5D4 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + cmp r1, 0x27 + bhi _0802D5CA + movs r0, 0x28 + subs r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bhi _0802D62A +_0802D5CA: + movs r4, 0xA + b _0802D62A + .align 2, 0 +_0802D5D0: .4byte gUnknown_2023BE4 +_0802D5D4: .4byte gUnknown_2023D6C +_0802D5D8: + ldr r2, _0802D600 @ =gUnknown_2023BE4 + ldr r0, _0802D604 @ =gUnknown_2023D6C + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0] + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8088E74 + lsls r0, 24 + movs r4, 0xA + cmp r0, 0 + beq _0802D62A +_0802D5FC: + movs r4, 0x1E + b _0802D62A + .align 2, 0 +_0802D600: .4byte gUnknown_2023BE4 +_0802D604: .4byte gUnknown_2023D6C +_0802D608: + ldr r0, _0802D61C @ =gUnknown_3004F90 + ldrb r0, [r0, 0x13] + adds r0, 0xA + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x28 + bls _0802D62A + movs r4, 0x28 + b _0802D62A + .align 2, 0 +_0802D61C: .4byte gUnknown_3004F90 +_0802D620: + ldr r1, _0802D694 @ =gUnknown_8250892 + ldrh r0, [r2] + subs r0, 0x2 + adds r0, r1 + ldrb r4, [r0] +_0802D62A: + adds r0, r5, 0 + muls r0, r4 + movs r1, 0xA + bl __divsi3 + ldr r5, _0802D698 @ =gUnknown_2023BE4 + ldr r1, _0802D69C @ =gUnknown_2023D6C + ldrb r2, [r1] + movs r1, 0x58 + adds r4, r2, 0 + muls r4, r1 + adds r3, r4, r5 + ldrh r2, [r3, 0x2C] + lsls r1, r2, 1 + adds r1, r2 + ldrh r2, [r3, 0x28] + lsls r2, 1 + subs r2, r1, r2 + muls r0, r2 + bl __divsi3 + adds r6, r0, 0 + adds r5, 0x4C + adds r4, r5 + ldr r4, [r4] + movs r0, 0x27 + ands r0, r4 + cmp r0, 0 + beq _0802D666 + lsls r6, 1 +_0802D666: + movs r0, 0xD8 + ands r4, r0 + cmp r4, 0 + beq _0802D67A + lsls r0, r6, 4 + subs r0, r6 + movs r1, 0xA + bl __udivsi3 + adds r6, r0, 0 +_0802D67A: + ldr r1, _0802D6A0 @ =gUnknown_2023D68 + ldrh r0, [r1] + cmp r0, 0x5 + beq _0802D6BC + cmp r0, 0x1 + bne _0802D6A8 + ldr r0, _0802D6A4 @ =gUnknown_3004F90 + ldrb r1, [r0, 0x5] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x5] + b _0802D6BC + .align 2, 0 +_0802D694: .4byte gUnknown_8250892 +_0802D698: .4byte gUnknown_2023BE4 +_0802D69C: .4byte gUnknown_2023D6C +_0802D6A0: .4byte gUnknown_2023D68 +_0802D6A4: .4byte gUnknown_3004F90 +_0802D6A8: + ldr r0, _0802D700 @ =gUnknown_3004F90 + ldrh r1, [r1] + adds r0, r1 + adds r1, r0, 0 + adds r1, 0x34 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _0802D6BC + adds r0, 0x1 + strb r0, [r1] +_0802D6BC: + cmp r6, 0xFE + bls _0802D720 + movs r0, 0 + movs r1, 0x4 + bl sub_800E194 + ldr r0, _0802D704 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + ldr r1, _0802D708 @ =gUnknown_2023D74 + ldr r0, _0802D70C @ =gUnknown_81D9A42 + str r0, [r1] + ldr r1, _0802D710 @ =gUnknown_2023BCE + ldr r0, _0802D714 @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802D718 @ =gUnknown_202402C + adds r0, r1 + ldr r2, _0802D71C @ =gUnknown_2023D68 + movs r1, 0x26 + bl sub_804037C + bl sub_8040C3C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _0802D7AE + b _0802D7D8 + .align 2, 0 +_0802D700: .4byte gUnknown_3004F90 +_0802D704: .4byte gUnknown_2023BC4 +_0802D708: .4byte gUnknown_2023D74 +_0802D70C: .4byte gUnknown_81D9A42 +_0802D710: .4byte gUnknown_2023BCE +_0802D714: .4byte gUnknown_2023D6C +_0802D718: .4byte gUnknown_202402C +_0802D71C: .4byte gUnknown_2023D68 +_0802D720: + movs r0, 0xFF + lsls r0, 16 + adds r1, r6, 0 + bl __udivsi3 + bl Sqrt + lsls r0, 16 + lsrs r0, 16 + bl Sqrt + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _0802D748 @ =0x000ffff0 + adds r1, r6, 0 + bl __udivsi3 + adds r6, r0, 0 + movs r4, 0 + b _0802D752 + .align 2, 0 +_0802D748: .4byte 0x000ffff0 +_0802D74C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0802D752: + cmp r4, 0x3 + bhi _0802D762 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcc _0802D74C +_0802D762: + ldr r5, _0802D7B8 @ =gUnknown_2023D68 + ldrh r0, [r5] + cmp r0, 0x1 + bne _0802D76C + movs r4, 0x4 +_0802D76C: + movs r0, 0 + adds r1, r4, 0 + bl sub_800E194 + ldr r0, _0802D7BC @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_8017248 + cmp r4, 0x4 + bne _0802D7E4 + ldr r1, _0802D7C0 @ =gUnknown_2023D74 + ldr r0, _0802D7C4 @ =gUnknown_81D9A42 + str r0, [r1] + ldr r1, _0802D7C8 @ =gUnknown_2023BCE + ldr r0, _0802D7CC @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802D7D0 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x26 + adds r2, r5, 0 + bl sub_804037C + bl sub_8040C3C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0802D7D8 +_0802D7AE: + ldr r1, _0802D7D4 @ =gUnknown_2023E82 + movs r0, 0 + strb r0, [r1, 0x5] + b _0802D7EE + .align 2, 0 +_0802D7B8: .4byte gUnknown_2023D68 +_0802D7BC: .4byte gUnknown_2023BC4 +_0802D7C0: .4byte gUnknown_2023D74 +_0802D7C4: .4byte gUnknown_81D9A42 +_0802D7C8: .4byte gUnknown_2023BCE +_0802D7CC: .4byte gUnknown_2023D6C +_0802D7D0: .4byte gUnknown_202402C +_0802D7D4: .4byte gUnknown_2023E82 +_0802D7D8: + ldr r1, _0802D7E0 @ =gUnknown_2023E82 + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0802D7EE + .align 2, 0 +_0802D7E0: .4byte gUnknown_2023E82 +_0802D7E4: + ldr r0, _0802D7F4 @ =gUnknown_2023E82 + strb r4, [r0, 0x5] + ldr r1, _0802D7F8 @ =gUnknown_2023D74 + ldr r0, _0802D7FC @ =gUnknown_81D9A93 +_0802D7EC: + str r0, [r1] +_0802D7EE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D7F4: .4byte gUnknown_2023E82 +_0802D7F8: .4byte gUnknown_2023D74 +_0802D7FC: .4byte gUnknown_81D9A93 + thumb_func_end sub_802D434 + + thumb_func_start sub_802D800 +sub_802D800: @ 802D800 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0802D870 @ =gUnknown_2023BCE + mov r9, r0 + ldr r5, _0802D874 @ =gUnknown_2023D6B + ldrb r0, [r5] + movs r6, 0x1 + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r1, _0802D878 @ =gUnknown_202402C + mov r8, r1 + add r0, r8 + bl sub_8040B14 + lsls r0, 24 + cmp r0, 0 + beq _0802D8EA + bl sub_80CC7B4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0802D88C + ldr r0, _0802D87C @ =gUnknown_2023E82 + strb r1, [r0, 0x5] + ldr r4, _0802D880 @ =gUnknown_2021CD0 + ldr r0, _0802D884 @ =0x00004037 + bl sub_806E568 + lsls r0, 24 + lsrs r0, 24 + bl sub_808BD6C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8008D84 + ldrb r0, [r5] + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + add r0, r8 + ldr r2, _0802D888 @ =gUnknown_2021CF0 + movs r1, 0x2 + bl sub_803FBE8 + b _0802D8D6 + .align 2, 0 +_0802D870: .4byte gUnknown_2023BCE +_0802D874: .4byte gUnknown_2023D6B +_0802D878: .4byte gUnknown_202402C +_0802D87C: .4byte gUnknown_2023E82 +_0802D880: .4byte gUnknown_2021CD0 +_0802D884: .4byte 0x00004037 +_0802D888: .4byte gUnknown_2021CF0 +_0802D88C: + ldr r4, _0802D92C @ =gUnknown_2021CD0 + ldr r0, _0802D930 @ =0x00004037 + bl sub_806E568 + lsls r0, 24 + lsrs r0, 24 + bl sub_808BD6C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8008D84 + ldrb r0, [r5] + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + add r0, r8 + ldr r2, _0802D934 @ =gUnknown_2021CF0 + movs r1, 0x2 + bl sub_803FBE8 + ldr r4, _0802D938 @ =gUnknown_2021D04 + bl sub_80CC7A8 + lsls r0, 24 + lsrs r0, 24 + bl sub_808BD6C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8008D84 + ldr r1, _0802D93C @ =gUnknown_2023E82 + movs r0, 0x2 + strb r0, [r1, 0x5] +_0802D8D6: + ldr r0, _0802D940 @ =0x00000834 + bl sub_806E6D0 + lsls r0, 24 + cmp r0, 0 + beq _0802D8EA + ldr r1, _0802D93C @ =gUnknown_2023E82 + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] +_0802D8EA: + ldr r2, _0802D944 @ =gUnknown_3004F90 + ldr r3, _0802D948 @ =gUnknown_2023BE4 + ldr r0, _0802D94C @ =gUnknown_2023D6B + ldrb r0, [r0] + movs r1, 0x1 + eors r1, r0 + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x28] + ldr r0, _0802D950 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r0 + ldrh r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802D954 @ =gUnknown_202402C + adds r0, r1 + adds r2, 0x2A + movs r1, 0x2 + bl sub_803FBE8 + ldr r1, _0802D958 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D92C: .4byte gUnknown_2021CD0 +_0802D930: .4byte 0x00004037 +_0802D934: .4byte gUnknown_2021CF0 +_0802D938: .4byte gUnknown_2021D04 +_0802D93C: .4byte gUnknown_2023E82 +_0802D940: .4byte 0x00000834 +_0802D944: .4byte gUnknown_3004F90 +_0802D948: .4byte gUnknown_2023BE4 +_0802D94C: .4byte gUnknown_2023D6B +_0802D950: .4byte gUnknown_2023BCE +_0802D954: .4byte gUnknown_202402C +_0802D958: .4byte gUnknown_2023D74 + thumb_func_end sub_802D800 + + thumb_func_start sub_802D95C +sub_802D95C: @ 802D95C + push {r4,r5,lr} + ldr r4, _0802D9AC @ =gUnknown_202402C + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl sub_803FBE8 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8088E74 + lsls r0, 24 + cmp r0, 0 + beq _0802D9B4 + ldr r3, _0802D9B0 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0802D9CE + .align 2, 0 +_0802D9AC: .4byte gUnknown_202402C +_0802D9B0: .4byte gUnknown_2023D74 +_0802D9B4: + adds r0, r5, 0 + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + adds r2, r4, 0 + bl sub_8044898 + ldr r1, _0802D9D4 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802D9CE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D9D4: .4byte gUnknown_2023D74 + thumb_func_end sub_802D95C + + thumb_func_start sub_802D9D8 +sub_802D9D8: @ 802D9D8 + push {r4,r5,lr} + sub sp, 0x18 + ldr r0, _0802DA00 @ =gUnknown_202402C + movs r1, 0xB + movs r2, 0 + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0802DA04 @ =gUnknown_2023E82 + ldrb r0, [r0] + cmp r0, 0x5 + bls _0802D9F4 + b _0802DB6C +_0802D9F4: + lsls r0, 2 + ldr r1, _0802DA08 @ =_0802DA0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802DA00: .4byte gUnknown_202402C +_0802DA04: .4byte gUnknown_2023E82 +_0802DA08: .4byte _0802DA0C + .align 2, 0 +_0802DA0C: + .4byte _0802DA24 + .4byte _0802DA3C + .4byte _0802DA64 + .4byte _0802DAC8 + .4byte _0802DAE0 + .4byte _0802DB58 +_0802DA24: + movs r0, 0x1 + negs r0, r0 + ldr r1, _0802DA38 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + b _0802DB34 + .align 2, 0 +_0802DA38: .4byte 0x00007fff +_0802DA3C: + ldr r0, _0802DA5C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802DA4A + b _0802DB6C +_0802DA4A: + bl sub_8003ECC + adds r0, r5, 0 + bl sub_8106B60 + ldr r1, _0802DA60 @ =gUnknown_2023E82 + strb r0, [r1, 0x1] + b _0802DB36 + .align 2, 0 +_0802DA5C: .4byte gUnknown_2037AB8 +_0802DA60: .4byte gUnknown_2023E82 +_0802DA64: + ldr r0, _0802DAAC @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802DA72 + b _0802DB6C +_0802DA72: + ldr r0, _0802DAB0 @ =gUnknown_30030F0 + ldr r1, [r0, 0x4] + ldr r0, _0802DAB4 @ =sub_8011100 + cmp r1, r0 + bne _0802DB6C + ldr r2, _0802DAB8 @ =gUnknown_3005090 + ldr r4, _0802DABC @ =gUnknown_2023E82 + ldrb r1, [r4, 0x1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _0802DB6C + str r0, [sp, 0x10] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _0802DAC0 @ =0x05006000 + add r0, sp, 0x10 + bl CpuSet + ldr r0, _0802DAC4 @ =sub_80116F4 + bl sub_80006F4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0802DB6C + .align 2, 0 +_0802DAAC: .4byte gUnknown_2037AB8 +_0802DAB0: .4byte gUnknown_30030F0 +_0802DAB4: .4byte sub_8011100 +_0802DAB8: .4byte gUnknown_3005090 +_0802DABC: .4byte gUnknown_2023E82 +_0802DAC0: .4byte 0x05006000 +_0802DAC4: .4byte sub_80116F4 +_0802DAC8: + bl sub_800F34C + bl sub_800F420 + ldr r1, _0802DADC @ =gUnknown_2022980 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _0802DB34 + .align 2, 0 +_0802DADC: .4byte gUnknown_2022980 +_0802DAE0: + bl sub_8001960 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0802DB6C + ldr r0, _0802DB40 @ =gUnknown_2023BE4 + adds r1, r0, 0 + adds r1, 0xAC + ldr r1, [r1] + adds r0, 0xA0 + ldr r2, [r0] + movs r0, 0x78 + str r0, [sp] + movs r0, 0x40 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + ldr r0, _0802DB44 @ =0x0000ffff + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r3, 0x1 + bl sub_810C1CC + str r4, [sp, 0x14] + add r0, sp, 0x14 + ldr r1, _0802DB48 @ =gUnknown_20375F8 + ldr r2, _0802DB4C @ =0x05000080 + bl CpuSet + ldr r0, _0802DB50 @ =0x0001ffff + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0 + bl sub_80019BC + movs r0, 0x3 + bl sub_80019BC +_0802DB34: + ldr r1, _0802DB54 @ =gUnknown_2023E82 +_0802DB36: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0802DB6C + .align 2, 0 +_0802DB40: .4byte gUnknown_2023BE4 +_0802DB44: .4byte 0x0000ffff +_0802DB48: .4byte gUnknown_20375F8 +_0802DB4C: .4byte 0x05000080 +_0802DB50: .4byte 0x0001ffff +_0802DB54: .4byte gUnknown_2023E82 +_0802DB58: + ldr r0, _0802DB74 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802DB6C + ldr r1, _0802DB78 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0802DB6C: + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802DB74: .4byte gUnknown_2037AB8 +_0802DB78: .4byte gUnknown_2023D74 + thumb_func_end sub_802D9D8 + + thumb_func_start sub_802DB7C +sub_802DB7C: @ 802DB7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + movs r1, 0 + add r0, sp, 0xC + strh r1, [r0] + ldr r6, [sp, 0x10] + cmp r6, r3 + ble _0802DBB6 + b _0802DCA2 +_0802DBB6: + mov r4, r8 + adds r0, r6, 0x1 + str r0, [sp, 0x18] + ldr r2, [sp, 0x1C] + cmp r4, r2 + bgt _0802DC98 + add r5, sp, 0xC + lsls r7, r6, 24 + mov r9, r7 +_0802DBC8: + ldr r0, [sp, 0x10] + cmp r6, r0 + bne _0802DBF4 + cmp r4, r8 + bne _0802DBDC + ldr r0, _0802DBD8 @ =0x00001022 + b _0802DC3E + .align 2, 0 +_0802DBD8: .4byte 0x00001022 +_0802DBDC: + ldr r2, [sp, 0x1C] + cmp r4, r2 + bne _0802DBEC + ldr r0, _0802DBE8 @ =0x00001024 + b _0802DC3E + .align 2, 0 +_0802DBE8: .4byte 0x00001024 +_0802DBEC: + ldr r0, _0802DBF0 @ =0x00001023 + b _0802DC3E + .align 2, 0 +_0802DBF0: .4byte 0x00001023 +_0802DBF4: + ldr r7, [sp, 0x14] + cmp r6, r7 + bne _0802DC20 + cmp r4, r8 + bne _0802DC08 + ldr r0, _0802DC04 @ =0x00001028 + b _0802DC3E + .align 2, 0 +_0802DC04: .4byte 0x00001028 +_0802DC08: + ldr r0, [sp, 0x1C] + cmp r4, r0 + bne _0802DC18 + ldr r0, _0802DC14 @ =0x0000102a + b _0802DC3E + .align 2, 0 +_0802DC14: .4byte 0x0000102a +_0802DC18: + ldr r0, _0802DC1C @ =0x00001029 + b _0802DC3E + .align 2, 0 +_0802DC1C: .4byte 0x00001029 +_0802DC20: + cmp r4, r8 + bne _0802DC2C + ldr r0, _0802DC28 @ =0x00001025 + b _0802DC3E + .align 2, 0 +_0802DC28: .4byte 0x00001025 +_0802DC2C: + ldr r2, [sp, 0x1C] + cmp r4, r2 + bne _0802DC3C + ldr r0, _0802DC38 @ =0x00001027 + b _0802DC3E + .align 2, 0 +_0802DC38: .4byte 0x00001027 +_0802DC3C: + ldr r0, _0802DC74 @ =0x00001026 +_0802DC3E: + strh r0, [r5] + movs r1, 0x1 + mov r0, r10 + ands r0, r1 + cmp r0, 0 + beq _0802DC4E + movs r0, 0 + strh r0, [r5] +_0802DC4E: + movs r0, 0x80 + mov r7, r10 + ands r0, r7 + cmp r0, 0 + beq _0802DC78 + lsls r2, r4, 24 + lsrs r2, 24 + str r1, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + add r1, sp, 0xC + mov r7, r9 + lsrs r3, r7, 24 + bl sub_8002228 + b _0802DC90 + .align 2, 0 +_0802DC74: .4byte 0x00001026 +_0802DC78: + lsls r2, r4, 24 + lsrs r2, 24 + str r1, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + mov r7, r9 + lsrs r3, r7, 24 + bl sub_8002228 +_0802DC90: + adds r4, 0x1 + ldr r0, [sp, 0x1C] + cmp r4, r0 + ble _0802DBC8 +_0802DC98: + ldr r6, [sp, 0x18] + ldr r2, [sp, 0x14] + cmp r6, r2 + bgt _0802DCA2 + b _0802DBB6 +_0802DCA2: + movs r0, 0x1 + bl sub_80020BC + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802DB7C + + thumb_func_start sub_802DCB8 +sub_802DCB8: @ 802DCB8 + push {lr} + sub sp, 0x10 + add r0, sp, 0xC + movs r2, 0x1 + strh r2, [r0] + movs r1, 0x2 + strh r1, [r0, 0x2] + ldr r0, _0802DCF4 @ =gUnknown_2023E82 + ldrb r3, [r0, 0x1] + lsls r3, 25 + movs r0, 0x90 + lsls r0, 20 + adds r3, r0 + lsrs r3, 24 + str r2, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + movs r2, 0x18 + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_0802DCF4: .4byte gUnknown_2023E82 + thumb_func_end sub_802DCB8 + + thumb_func_start sub_802DCF8 +sub_802DCF8: @ 802DCF8 + push {lr} + sub sp, 0x10 + add r0, sp, 0xC + movs r1, 0x20 + strh r1, [r0] + strh r1, [r0, 0x2] + ldr r0, _0802DD34 @ =gUnknown_2023E82 + ldrb r3, [r0, 0x1] + lsls r3, 25 + movs r0, 0x90 + lsls r0, 20 + adds r3, r0 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + movs r2, 0x18 + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_0802DD34: .4byte gUnknown_2023E82 + thumb_func_end sub_802DCF8 + + thumb_func_start sub_802DD38 +sub_802DD38: @ 802DD38 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _0802DD5C @ =gUnknown_2023E82 + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x4 + bls _0802DD50 + b _0802DFA6 +_0802DD50: + lsls r0, r1, 2 + ldr r1, _0802DD60 @ =_0802DD64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802DD5C: .4byte gUnknown_2023E82 +_0802DD60: .4byte _0802DD64 + .align 2, 0 +_0802DD64: + .4byte _0802DD78 + .4byte _0802DDA8 + .4byte _0802DE40 + .4byte _0802DF18 + .4byte _0802DF70 +_0802DD78: + movs r4, 0 + str r4, [sp] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802DB7C + ldr r0, _0802DDA0 @ =gUnknown_83FE791 + movs r1, 0xE + bl sub_80D87BC + ldr r1, _0802DDA4 @ =gUnknown_2023E82 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + strb r4, [r1, 0x1] + bl sub_802DCB8 + b _0802DFA6 + .align 2, 0 +_0802DDA0: .4byte gUnknown_83FE791 +_0802DDA4: .4byte gUnknown_2023E82 +_0802DDA8: + ldr r0, _0802DE1C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802DDCC + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0802DDCC + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_0802DDCC: + ldr r0, _0802DE1C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802DDF2 + ldr r4, _0802DE20 @ =gUnknown_2023E82 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _0802DDF2 + movs r0, 0x5 + bl sub_80722CC + bl sub_802DCF8 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802DCB8 +_0802DDF2: + ldr r0, _0802DE1C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802DE24 + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802DE20 @ =gUnknown_2023E82 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0802DE36 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x3 + bl sub_8070E44 + b _0802DFA6 + .align 2, 0 +_0802DE1C: .4byte gUnknown_30030F0 +_0802DE20: .4byte gUnknown_2023E82 +_0802DE24: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0802DE2E + b _0802DFA6 +_0802DE2E: + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802DE3C @ =gUnknown_2023E82 +_0802DE36: + movs r0, 0x4 + strb r0, [r1] + b _0802DFA6 + .align 2, 0 +_0802DE3C: .4byte gUnknown_2023E82 +_0802DE40: + ldr r0, _0802DEFC @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802DE4E + b _0802DFA6 +_0802DE4E: + ldr r7, _0802DF00 @ =gUnknown_2023BCE + ldr r0, _0802DF04 @ =gUnknown_2023D6B + mov r10, r0 + ldrb r0, [r0] + movs r4, 0x1 + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r9, r1 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + ldr r1, _0802DF08 @ =gUnknown_202402C + mov r8, r1 + add r0, r8 + ldr r1, _0802DF0C @ =gUnknown_2023FE8 + ldr r2, [r1] + adds r2, 0x6D + movs r1, 0x2 + bl sub_803FBE8 + bl sub_8003ECC + mov r2, r10 + ldrb r0, [r2] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0xB + bl sub_803FBE8 + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + mov r2, r10 + ldrb r0, [r2] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + bl sub_803F720 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r2, r10 + ldrb r0, [r2] + eors r4, r0 + lsls r4, 1 + adds r4, r7 + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0 + movs r2, 0 + bl sub_803FBE8 + ldr r2, _0802DF0C @ =gUnknown_2023FE8 + ldr r1, [r2] + adds r1, 0x6D + str r0, [sp] + ldr r0, _0802DF10 @ =sub_8011100 + str r0, [sp, 0x4] + movs r0, 0x2 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_809D954 + ldr r1, _0802DF14 @ =gUnknown_2023E82 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0802DFA6 + .align 2, 0 +_0802DEFC: .4byte gUnknown_2037AB8 +_0802DF00: .4byte gUnknown_2023BCE +_0802DF04: .4byte gUnknown_2023D6B +_0802DF08: .4byte gUnknown_202402C +_0802DF0C: .4byte gUnknown_2023FE8 +_0802DF10: .4byte sub_8011100 +_0802DF14: .4byte gUnknown_2023E82 +_0802DF18: + ldr r0, _0802DF54 @ =gUnknown_30030F0 + ldr r1, [r0, 0x4] + ldr r0, _0802DF58 @ =sub_8011100 + cmp r1, r0 + bne _0802DFA6 + ldr r0, _0802DF5C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802DFA6 + ldr r2, _0802DF60 @ =gUnknown_2023BCE + ldr r0, _0802DF64 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802DF68 @ =gUnknown_202402C + adds r0, r1 + ldr r1, _0802DF6C @ =gUnknown_2023FE8 + ldr r2, [r1] + adds r2, 0x6D + movs r1, 0x2 + bl sub_804037C + b _0802DF8C + .align 2, 0 +_0802DF54: .4byte gUnknown_30030F0 +_0802DF58: .4byte sub_8011100 +_0802DF5C: .4byte gUnknown_2037AB8 +_0802DF60: .4byte gUnknown_2023BCE +_0802DF64: .4byte gUnknown_2023D6B +_0802DF68: .4byte gUnknown_202402C +_0802DF6C: .4byte gUnknown_2023FE8 +_0802DF70: + bl sub_8040C3C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0802DF8C + ldr r1, _0802DF88 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802DFA6 + .align 2, 0 +_0802DF88: .4byte gUnknown_2023D74 +_0802DF8C: + ldr r3, _0802DFB8 @ =gUnknown_2023D74 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0802DFA6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DFB8: .4byte gUnknown_2023D74 + thumb_func_end sub_802DD38 + + thumb_func_start sub_802DFBC +sub_802DFBC: @ 802DFBC + ldr r2, _0802DFDC @ =gUnknown_2023BE4 + ldr r0, _0802DFE0 @ =gUnknown_2023D6B + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldr r0, _0802DFE4 @ =gUnknown_2023D50 + ldr r2, [r0] + ldrh r0, [r1, 0x28] + subs r0, r2 + strh r0, [r1, 0x28] + ldr r1, _0802DFE8 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802DFDC: .4byte gUnknown_2023BE4 +_0802DFE0: .4byte gUnknown_2023D6B +_0802DFE4: .4byte gUnknown_2023D50 +_0802DFE8: .4byte gUnknown_2023D74 + thumb_func_end sub_802DFBC + + thumb_func_start sub_802DFEC +sub_802DFEC: @ 802DFEC + ldr r1, _0802E008 @ =gUnknown_2023BE4 + ldr r0, _0802E00C @ =gUnknown_2023D6B + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldr r1, _0802E010 @ =gUnknown_2023D74 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802E008: .4byte gUnknown_2023BE4 +_0802E00C: .4byte gUnknown_2023D6B +_0802E010: .4byte gUnknown_2023D74 + thumb_func_end sub_802DFEC + + thumb_func_start sub_802E014 +sub_802E014: @ 802E014 + ldr r1, _0802E01C @ =gUnknown_2023BE3 + movs r0, 0xC + strb r0, [r1] + bx lr + .align 2, 0 +_0802E01C: .4byte gUnknown_2023BE3 + thumb_func_end sub_802E014 + + thumb_func_start sub_802E020 +sub_802E020: @ 802E020 + ldr r1, _0802E030 @ =gUnknown_2023BE3 + movs r0, 0xC + strb r0, [r1] + ldr r1, _0802E034 @ =gUnknown_2023BE2 + ldr r0, _0802E038 @ =gUnknown_2023BCC + ldrb r0, [r0] + strb r0, [r1] + bx lr + .align 2, 0 +_0802E030: .4byte gUnknown_2023BE3 +_0802E034: .4byte gUnknown_2023BE2 +_0802E038: .4byte gUnknown_2023BCC + thumb_func_end sub_802E020 + + .align 2, 0 @ Don't pad with nop. |