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_controller_opponent.s |
first commit
Diffstat (limited to 'asm/battle_controller_opponent.s')
-rw-r--r-- | asm/battle_controller_opponent.s | 6736 |
1 files changed, 6736 insertions, 0 deletions
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s new file mode 100644 index 000000000..e422eedf8 --- /dev/null +++ b/asm/battle_controller_opponent.s @@ -0,0 +1,6736 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_17 +nullsub_17: @ 8035A78 + bx lr + thumb_func_end nullsub_17 + + thumb_func_start sub_8035A7C +sub_8035A7C: @ 8035A7C + ldr r1, _08035A8C @ =gUnknown_3004FE0 + ldr r0, _08035A90 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035A94 @ =sub_8035A98 + str r1, [r0] + bx lr + .align 2, 0 +_08035A8C: .4byte gUnknown_3004FE0 +_08035A90: .4byte gUnknown_2023BC4 +_08035A94: .4byte sub_8035A98 + thumb_func_end sub_8035A7C + + thumb_func_start sub_8035A98 +sub_8035A98: @ 8035A98 + push {lr} + ldr r2, _08035ACC @ =gUnknown_2023BC8 + ldr r1, _08035AD0 @ =gUnknown_825E45C + ldr r0, _08035AD4 @ =gUnknown_2023BC4 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08035AE4 + ldr r0, _08035AD8 @ =gUnknown_2022BC4 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _08035AE0 + ldr r0, _08035ADC @ =gUnknown_8250A34 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08035AE4 + .align 2, 0 +_08035ACC: .4byte gUnknown_2023BC8 +_08035AD0: .4byte gUnknown_825E45C +_08035AD4: .4byte gUnknown_2023BC4 +_08035AD8: .4byte gUnknown_2022BC4 +_08035ADC: .4byte gUnknown_8250A34 +_08035AE0: + bl sub_8036530 +_08035AE4: + pop {r0} + bx r0 + thumb_func_end sub_8035A98 + + thumb_func_start sub_8035AE8 +sub_8035AE8: @ 8035AE8 + push {lr} + ldr r2, _08035B10 @ =gUnknown_202063C + ldr r1, _08035B14 @ =gUnknown_2023D44 + ldr r0, _08035B18 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08035B1C @ =nullsub_8 + cmp r1, r0 + bne _08035B0C + bl sub_8036530 +_08035B0C: + pop {r0} + bx r0 + .align 2, 0 +_08035B10: .4byte gUnknown_202063C +_08035B14: .4byte gUnknown_2023D44 +_08035B18: .4byte gUnknown_2023BC4 +_08035B1C: .4byte nullsub_8 + thumb_func_end sub_8035AE8 + + thumb_func_start sub_8035B20 +sub_8035B20: @ 8035B20 + push {lr} + ldr r2, _08035B48 @ =gUnknown_202063C + ldr r1, _08035B4C @ =gUnknown_2023D44 + ldr r0, _08035B50 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08035B54 @ =nullsub_8 + cmp r1, r0 + bne _08035B44 + bl sub_8036530 +_08035B44: + pop {r0} + bx r0 + .align 2, 0 +_08035B48: .4byte gUnknown_202063C +_08035B4C: .4byte gUnknown_2023D44 +_08035B50: .4byte gUnknown_2023BC4 +_08035B54: .4byte nullsub_8 + thumb_func_end sub_8035B20 + + thumb_func_start sub_8035B58 +sub_8035B58: @ 8035B58 + push {r4-r6,lr} + ldr r4, _08035BD0 @ =gUnknown_202063C + ldr r6, _08035BD4 @ =gUnknown_2023D44 + ldr r5, _08035BD8 @ =gUnknown_2023BC4 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08035BDC @ =nullsub_8 + cmp r1, r0 + bne _08035BC8 + adds r0, r2, r4 + ldrh r0, [r0, 0x6] + bl sub_803477C + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x38] + ldr r2, _08035BE0 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08035BE4 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80077D8 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + bl sub_8036530 +_08035BC8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08035BD0: .4byte gUnknown_202063C +_08035BD4: .4byte gUnknown_2023D44 +_08035BD8: .4byte gUnknown_2023BC4 +_08035BDC: .4byte nullsub_8 +_08035BE0: .4byte 0x000003ff +_08035BE4: .4byte 0xfffffc00 + thumb_func_end sub_8035B58 + + thumb_func_start sub_8035BE8 +sub_8035BE8: @ 8035BE8 + push {r4,lr} + ldr r4, _08035C28 @ =gUnknown_2024018 + ldr r1, [r4] + ldr r3, _08035C2C @ =gUnknown_2023BC4 + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08035C20 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl sub_8036530 +_08035C20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035C28: .4byte gUnknown_2024018 +_08035C2C: .4byte gUnknown_2023BC4 + thumb_func_end sub_8035BE8 + + thumb_func_start sub_8035C30 +sub_8035C30: @ 8035C30 + push {r4-r7,lr} + movs r6, 0 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _08035C54 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _08035C88 + ldr r0, _08035C74 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08035C88 +_08035C54: + ldr r2, _08035C78 @ =gUnknown_202063C + ldr r1, _08035C7C @ =gUnknown_3004FF0 + ldr r0, _08035C80 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08035C84 @ =nullsub_8 + cmp r1, r0 + bne _08035CBE + b _08035CBC + .align 2, 0 +_08035C74: .4byte gUnknown_2022B4C +_08035C78: .4byte gUnknown_202063C +_08035C7C: .4byte gUnknown_3004FF0 +_08035C80: .4byte gUnknown_2023BC4 +_08035C84: .4byte nullsub_8 +_08035C88: + ldr r2, _08035D84 @ =gUnknown_202063C + ldr r5, _08035D88 @ =gUnknown_3004FF0 + ldr r0, _08035D8C @ =gUnknown_2023BC4 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, _08035D90 @ =nullsub_8 + cmp r4, r0 + bne _08035CBE + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08035CBE +_08035CBC: + movs r6, 0x1 +_08035CBE: + bl sub_80721F0 + lsls r0, 24 + cmp r0, 0 + beq _08035CCA + movs r6, 0 +_08035CCA: + cmp r6, 0 + bne _08035CD0 + b _08035DD2 +_08035CD0: + ldr r0, _08035D94 @ =gUnknown_2024018 + mov r12, r0 + ldr r0, [r0] + ldr r7, _08035D8C @ =gUnknown_2023BC4 + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4, 0x1] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08035DD2 + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08035DD2 + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r12 + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r12 + ldr r2, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r12 + ldr r2, [r1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, _08035D98 @ =0x000027f9 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + ldr r0, _08035D9C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08035DA4 + ldr r0, _08035DA0 @ =gMPlay_BGM + bl m4aMPlayContinue + b _08035DB0 + .align 2, 0 +_08035D84: .4byte gUnknown_202063C +_08035D88: .4byte gUnknown_3004FF0 +_08035D8C: .4byte gUnknown_2023BC4 +_08035D90: .4byte nullsub_8 +_08035D94: .4byte gUnknown_2024018 +_08035D98: .4byte 0x000027f9 +_08035D9C: .4byte gUnknown_2022B4C +_08035DA0: .4byte gMPlay_BGM +_08035DA4: + ldr r0, _08035DD8 @ =gMPlay_BGM + ldr r1, _08035DDC @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08035DB0: + ldr r0, _08035DE0 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r3, _08035DE4 @ =gUnknown_2023BC4 + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _08035DE8 @ =gUnknown_3004FE0 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035DEC @ =sub_8035BE8 + str r1, [r0] +_08035DD2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08035DD8: .4byte gMPlay_BGM +_08035DDC: .4byte 0x0000ffff +_08035DE0: .4byte gUnknown_2024018 +_08035DE4: .4byte gUnknown_2023BC4 +_08035DE8: .4byte gUnknown_3004FE0 +_08035DEC: .4byte sub_8035BE8 + thumb_func_end sub_8035C30 + + thumb_func_start sub_8035DF0 +sub_8035DF0: @ 8035DF0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _08035FC0 @ =gUnknown_2024018 + ldr r0, [r4] + ldr r1, _08035FC4 @ =gUnknown_2023BC4 + mov r9, r1 + ldrb r2, [r1] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r5, 0x88 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08035E2C + ldr r0, _08035FC8 @ =gUnknown_2023BCE + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08035FCC @ =gUnknown_202402C + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_08035E2C: + ldr r1, [r4] + mov r2, r9 + ldrb r0, [r2] + movs r7, 0x2 + adds r2, r7, 0 + eors r2, r0 + ldr r1, [r1, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08035E60 + ldr r0, _08035FC8 @ =gUnknown_2023BCE + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08035FCC @ =gUnknown_202402C + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_08035E60: + ldr r0, [r4] + mov r1, r9 + ldrb r2, [r1] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + movs r4, 0x8 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08035E7E + b _08035FB4 +_08035E7E: + adds r1, r7, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08035E96 + b _08035FB4 +_08035E96: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _08035F28 + ldr r0, _08035FD0 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08035F28 + ldr r1, _08035FD4 @ =gUnknown_3004FFC + mov r2, r9 + ldrb r0, [r2] + eors r0, r7 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08035FD8 @ =gUnknown_202063C + adds r0, r1 + bl sub_8007280 + ldr r4, _08035FDC @ =gUnknown_3004FF0 + mov r1, r9 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08035FC8 @ =gUnknown_2023BCE + mov r8, r2 + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + movs r6, 0x64 + muls r1, r6 + ldr r5, _08035FCC @ =gUnknown_202402C + adds r1, r5 + movs r2, 0 + bl sub_8049D98 + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + bl sub_804BD94 + mov r2, r9 + ldrb r0, [r2] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_80481D4 + mov r1, r9 + ldrb r0, [r1] + adds r4, r7, 0 + eors r4, r0 + lsls r0, r4, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0xB + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8035708 +_08035F28: + ldr r1, _08035FD4 @ =gUnknown_3004FFC + ldr r5, _08035FC4 @ =gUnknown_2023BC4 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08035FD8 @ =gUnknown_202063C + adds r0, r1 + bl sub_8007280 + ldr r4, _08035FDC @ =gUnknown_3004FF0 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08035FC8 @ =gUnknown_2023BCE + mov r9, r2 + lsls r1, 1 + add r1, r9 + ldrh r1, [r1] + movs r2, 0x64 + mov r8, r2 + mov r2, r8 + muls r2, r1 + adds r1, r2, 0 + ldr r6, _08035FCC @ =gUnknown_202402C + adds r1, r6 + movs r2, 0 + bl sub_8049D98 + ldrb r0, [r5] + bl sub_804BD94 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80481D4 + ldrb r4, [r5] + lsls r0, r4, 1 + add r0, r9 + ldrh r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8035708 + ldr r0, _08035FC0 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08035FE0 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035FE4 @ =sub_8035C30 + str r1, [r0] +_08035FB4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08035FC0: .4byte gUnknown_2024018 +_08035FC4: .4byte gUnknown_2023BC4 +_08035FC8: .4byte gUnknown_2023BCE +_08035FCC: .4byte gUnknown_202402C +_08035FD0: .4byte gUnknown_2022B4C +_08035FD4: .4byte gUnknown_3004FFC +_08035FD8: .4byte gUnknown_202063C +_08035FDC: .4byte gUnknown_3004FF0 +_08035FE0: .4byte gUnknown_3004FE0 +_08035FE4: .4byte sub_8035C30 + thumb_func_end sub_8035DF0 + + thumb_func_start sub_8035FE8 +sub_8035FE8: @ 8035FE8 + push {r4-r7,lr} + ldr r2, _08036044 @ =gUnknown_202063C + ldr r0, _08036048 @ =gUnknown_2023D44 + ldr r7, _0803604C @ =gUnknown_2023BC4 + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + lsrs r2, r0, 31 + cmp r2, 0x1 + bne _08036094 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + bne _08036094 + ldr r6, _08036050 @ =gUnknown_2024018 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r4, r3, 1 + adds r0, r4, r3 + lsls r0, 2 + adds r1, r0, r1 + ldrb r5, [r1] + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + bne _0803605C + ldr r0, _08036054 @ =gUnknown_2023BCE + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08036058 @ =gUnknown_202402C + adds r1, r0 + adds r0, r3, 0 + bl sub_80F1720 + b _08036094 + .align 2, 0 +_08036044: .4byte gUnknown_202063C +_08036048: .4byte gUnknown_2023D44 +_0803604C: .4byte gUnknown_2023BC4 +_08036050: .4byte gUnknown_2024018 +_08036054: .4byte gUnknown_2023BCE +_08036058: .4byte gUnknown_202402C +_0803605C: + ldrb r0, [r1, 0x1] + ands r2, r0 + cmp r2, 0 + beq _08036094 + movs r0, 0x7F + ands r0, r5 + strb r0, [r1] + ldr r0, [r6] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _0803609C @ =0x000027f9 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + bl sub_8036530 +_08036094: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803609C: .4byte 0x000027f9 + thumb_func_end sub_8035FE8 + + thumb_func_start sub_80360A0 +sub_80360A0: @ 80360A0 + push {r4-r6,lr} + ldr r6, _080360E0 @ =gUnknown_2023BC4 + ldrb r0, [r6] + ldr r5, _080360E4 @ =gUnknown_3004FF0 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8049FD8 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_80481D4 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080360E8 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl sub_8048440 + b _08036124 + .align 2, 0 +_080360E0: .4byte gUnknown_2023BC4 +_080360E4: .4byte gUnknown_3004FF0 +_080360E8: + movs r0, 0x1 + bl sub_80EB2E0 + lsls r0, 24 + cmp r0, 0 + bne _08036120 + ldr r0, _08036114 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08036120 + movs r0, 0x1 + bl sub_80EB2F4 + ldr r0, _08036118 @ =gUnknown_3004FE0 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _0803611C @ =sub_80E8570 + str r0, [r1] + b _08036124 + .align 2, 0 +_08036114: .4byte gUnknown_2022B4C +_08036118: .4byte gUnknown_3004FE0 +_0803611C: .4byte sub_80E8570 +_08036120: + bl sub_8036530 +_08036124: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80360A0 + + thumb_func_start sub_803612C +sub_803612C: @ 803612C + push {lr} + ldr r2, _08036160 @ =gUnknown_202063C + ldr r0, _08036164 @ =gUnknown_2023D44 + ldr r1, _08036168 @ =gUnknown_2023BC4 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _0803615A + ldr r0, _0803616C @ =gUnknown_3004FF0 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8048188 + bl sub_8036530 +_0803615A: + pop {r0} + bx r0 + .align 2, 0 +_08036160: .4byte gUnknown_202063C +_08036164: .4byte gUnknown_2023D44 +_08036168: .4byte gUnknown_2023BC4 +_0803616C: .4byte gUnknown_3004FF0 + thumb_func_end sub_803612C + + thumb_func_start sub_8036170 +sub_8036170: @ 8036170 + push {r4-r6,lr} + ldr r0, _080361D0 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r6, _080361D4 @ =gUnknown_2023BC4 + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080361CA + ldr r5, _080361D8 @ =gUnknown_2023D44 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080361DC @ =gUnknown_202063C + adds r0, r4 + bl sub_80077D8 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + ldrb r0, [r6] + bl sub_8035794 + ldr r1, _080361E0 @ =gUnknown_3004FF0 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8048188 + bl sub_8036530 +_080361CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080361D0: .4byte gUnknown_2024018 +_080361D4: .4byte gUnknown_2023BC4 +_080361D8: .4byte gUnknown_2023D44 +_080361DC: .4byte gUnknown_202063C +_080361E0: .4byte gUnknown_3004FF0 + thumb_func_end sub_8036170 + + thumb_func_start sub_80361E4 +sub_80361E4: @ 80361E4 + push {lr} + movs r0, 0 + bl sub_8002E64 + lsls r0, 16 + cmp r0, 0 + bne _080361F6 + bl sub_8036530 +_080361F6: + pop {r0} + bx r0 + thumb_func_end sub_80361E4 + + thumb_func_start sub_80361FC +sub_80361FC: @ 80361FC + push {r4,lr} + ldr r1, _08036238 @ =gUnknown_2023D44 + ldr r0, _0803623C @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _08036240 @ =gUnknown_202063C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08036248 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08036244 @ =gUnknown_2024005 + strb r3, [r0] + bl sub_8036530 + b _08036272 + .align 2, 0 +_08036238: .4byte gUnknown_2023D44 +_0803623C: .4byte gUnknown_2023BC4 +_08036240: .4byte gUnknown_202063C +_08036244: .4byte gUnknown_2024005 +_08036248: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0803626C + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0803626C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_08036272: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80361FC + + thumb_func_start sub_8036278 +sub_8036278: @ 8036278 + push {r4,lr} + ldr r2, _080362CC @ =gUnknown_202063C + ldr r0, _080362D0 @ =gUnknown_3004FF0 + ldr r4, _080362D4 @ =gUnknown_2023BC4 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080362D8 @ =nullsub_8 + cmp r1, r0 + bne _080362C4 + ldr r0, _080362DC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080362B8 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl sub_80341D8 +_080362B8: + ldr r0, _080362E0 @ =gUnknown_3004FE0 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _080362E4 @ =sub_80362E8 + str r0, [r1] +_080362C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080362CC: .4byte gUnknown_202063C +_080362D0: .4byte gUnknown_3004FF0 +_080362D4: .4byte gUnknown_2023BC4 +_080362D8: .4byte nullsub_8 +_080362DC: .4byte gUnknown_2024018 +_080362E0: .4byte gUnknown_3004FE0 +_080362E4: .4byte sub_80362E8 + thumb_func_end sub_8036278 + + thumb_func_start sub_80362E8 +sub_80362E8: @ 80362E8 + push {lr} + ldr r0, _08036324 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _08036328 @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08036320 + bl sub_80721F0 + lsls r0, 24 + cmp r0, 0 + bne _08036320 + ldr r0, _0803632C @ =gMPlay_BGM + ldr r1, _08036330 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl sub_8036530 +_08036320: + pop {r0} + bx r0 + .align 2, 0 +_08036324: .4byte gUnknown_2024018 +_08036328: .4byte gUnknown_2023BC4 +_0803632C: .4byte gMPlay_BGM +_08036330: .4byte 0x0000ffff + thumb_func_end sub_80362E8 + + thumb_func_start sub_8036334 +sub_8036334: @ 8036334 + push {r4,r5,lr} + ldr r3, _080363E0 @ =gUnknown_2024018 + ldr r0, [r3] + ldr r5, _080363E4 @ =gUnknown_2023BC4 + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080363D8 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _080363E8 @ =0x000027f9 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + ldr r1, _080363EC @ =gUnknown_2023D44 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080363F0 @ =gUnknown_202063C + adds r0, r1 + movs r1, 0 + bl sub_800838C + ldr r4, _080363F4 @ =gUnknown_3004FF0 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _080363F8 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _080363FC @ =gUnknown_202402C + adds r1, r2 + movs r2, 0 + bl sub_8049D98 + ldrb r0, [r5] + bl sub_804BD94 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80481D4 + ldrb r0, [r5] + bl sub_8034BB4 + ldr r1, _08036400 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08036404 @ =sub_8036278 + str r1, [r0] +_080363D8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080363E0: .4byte gUnknown_2024018 +_080363E4: .4byte gUnknown_2023BC4 +_080363E8: .4byte 0x000027f9 +_080363EC: .4byte gUnknown_2023D44 +_080363F0: .4byte gUnknown_202063C +_080363F4: .4byte gUnknown_3004FF0 +_080363F8: .4byte gUnknown_2023BCE +_080363FC: .4byte gUnknown_202402C +_08036400: .4byte gUnknown_3004FE0 +_08036404: .4byte sub_8036278 + thumb_func_end sub_8036334 + + thumb_func_start sub_8036408 +sub_8036408: @ 8036408 + push {r4-r6,lr} + ldr r6, _080364AC @ =gUnknown_2024018 + ldr r0, [r6] + ldr r5, _080364B0 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0803643A + ldr r0, _080364B4 @ =gUnknown_2023BCE + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080364B8 @ =gUnknown_202402C + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_0803643A: + ldr r4, _080364BC @ =gUnknown_202063C + ldr r0, _080364C0 @ =gUnknown_3004FFC + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _080364C4 @ =nullsub_8 + cmp r1, r0 + bne _080364A4 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080364A4 + adds r0, r3, r4 + bl sub_8007280 + ldrb r4, [r5] + ldr r1, _080364B4 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080364B8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8035708 + ldr r1, _080364C8 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080364CC @ =sub_8036334 + str r1, [r0] +_080364A4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080364AC: .4byte gUnknown_2024018 +_080364B0: .4byte gUnknown_2023BC4 +_080364B4: .4byte gUnknown_2023BCE +_080364B8: .4byte gUnknown_202402C +_080364BC: .4byte gUnknown_202063C +_080364C0: .4byte gUnknown_3004FFC +_080364C4: .4byte nullsub_8 +_080364C8: .4byte gUnknown_3004FE0 +_080364CC: .4byte sub_8036334 + thumb_func_end sub_8036408 + + thumb_func_start sub_80364D0 +sub_80364D0: @ 80364D0 + push {lr} + ldr r0, _080364F8 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _080364FC @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080364F2 + bl sub_8036530 +_080364F2: + pop {r0} + bx r0 + .align 2, 0 +_080364F8: .4byte gUnknown_2024018 +_080364FC: .4byte gUnknown_2023BC4 + thumb_func_end sub_80364D0 + + thumb_func_start sub_8036500 +sub_8036500: @ 8036500 + push {lr} + ldr r0, _08036528 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _0803652C @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08036522 + bl sub_8036530 +_08036522: + pop {r0} + bx r0 + .align 2, 0 +_08036528: .4byte gUnknown_2024018 +_0803652C: .4byte gUnknown_2023BC4 + thumb_func_end sub_8036500 + + thumb_func_start sub_8036530 +sub_8036530: @ 8036530 + ldr r1, _08036554 @ =gUnknown_3004FE0 + ldr r2, _08036558 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803655C @ =sub_8035A98 + str r1, [r0] + ldr r3, _08036560 @ =gUnknown_2023BC8 + ldr r1, _08036564 @ =gUnknown_825E45C + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + bx lr + .align 2, 0 +_08036554: .4byte gUnknown_3004FE0 +_08036558: .4byte gUnknown_2023BC4 +_0803655C: .4byte sub_8035A98 +_08036560: .4byte gUnknown_2023BC8 +_08036564: .4byte gUnknown_825E45C + thumb_func_end sub_8036530 + + thumb_func_start sub_8036568 +sub_8036568: @ 8036568 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _08036594 @ =gUnknown_2022BC4 + ldr r0, _08036598 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _080365A0 + ldr r0, _0803659C @ =gUnknown_2023BCE + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_80365DC + adds r6, r0, 0 + b _080365C2 + .align 2, 0 +_08036594: .4byte gUnknown_2022BC4 +_08036598: .4byte gUnknown_2023BC4 +_0803659C: .4byte gUnknown_2023BCE +_080365A0: + ldrb r4, [r1] + movs r5, 0 +_080365A4: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080365BA + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_80365DC + adds r6, r0 +_080365BA: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _080365A4 +_080365C2: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl sub_800E708 + bl sub_8036530 + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8036568 + + thumb_func_start sub_80365DC +sub_80365DC: @ 80365DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _08036610 @ =gUnknown_2022BC4 + ldr r3, _08036614 @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _08036606 + bl _08036D72 +_08036606: + lsls r0, 2 + ldr r1, _08036618 @ =_0803661C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036610: .4byte gUnknown_2022BC4 +_08036614: .4byte gUnknown_2023BC4 +_08036618: .4byte _0803661C + .align 2, 0 +_0803661C: + .4byte _0803670C + .4byte _08036930 + .4byte _08036940 + .4byte _08036950 + .4byte _080369B8 + .4byte _080369B8 + .4byte _080369B8 + .4byte _080369B8 + .4byte _080369D4 + .4byte _08036A10 + .4byte _08036A10 + .4byte _08036A10 + .4byte _08036A10 + .4byte _08036D72 + .4byte _08036D72 + .4byte _08036D72 + .4byte _08036D72 + .4byte _08036A2C + .4byte _08036A3C + .4byte _08036A6C + .4byte _08036A7C + .4byte _08036A8C + .4byte _08036A9C + .4byte _08036AAC + .4byte _08036ABC + .4byte _08036ACC + .4byte _08036ADC + .4byte _08036AEC + .4byte _08036AFC + .4byte _08036B0C + .4byte _08036B1C + .4byte _08036B2C + .4byte _08036B7C + .4byte _08036B8C + .4byte _08036B9C + .4byte _08036BAC + .4byte _08036BBC + .4byte _08036BCC + .4byte _08036BDC + .4byte _08036BEC + .4byte _08036BFC + .4byte _08036C30 + .4byte _08036C40 + .4byte _08036C50 + .4byte _08036C60 + .4byte _08036C70 + .4byte _08036C80 + .4byte _08036C90 + .4byte _08036CA0 + .4byte _08036CC0 + .4byte _08036CD0 + .4byte _08036CE0 + .4byte _08036CF0 + .4byte _08036D00 + .4byte _08036D10 + .4byte _08036D20 + .4byte _08036D30 + .4byte _08036D40 + .4byte _08036D50 + .4byte _08036D60 +_0803670C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08036920 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08036758: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl sub_803FBE8 + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl sub_803FBE8 + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08036758 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08036920 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl sub_803FBE8 + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl sub_803FBE8 + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl sub_803FBE8 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl sub_803FBE8 + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl sub_803FBE8 + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _08036924 @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl sub_803FBE8 + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl sub_803FBE8 + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _08036928 @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl sub_803FBE8 + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _0803692C @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl sub_803FBE8 + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl sub_803FBE8 + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl sub_803FBE8 + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl sub_803FBE8 + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_803FBE8 + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl sub_803FBE8 + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl sub_8008CF4 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl sub_803FBE8 + mov r2, sp + movs r6, 0 +_08036910: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08036910 + b _08036D72 + .align 2, 0 +_08036920: .4byte gUnknown_202402C +_08036924: .4byte 0xfffffc1f +_08036928: .4byte 0xfff07fff +_0803692C: .4byte 0xfffffe0f +_08036930: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803693C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xB + b _08036CAA + .align 2, 0 +_0803693C: .4byte gUnknown_202402C +_08036940: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803694C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xC + b _08036CAA + .align 2, 0 +_0803694C: .4byte gUnknown_202402C +_08036950: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080369B4 @ =gUnknown_202402C + adds r4, r1, r0 + mov r8, r9 +_08036966: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl sub_803FBE8 + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl sub_803FBE8 + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _08036966 + movs r0, 0x64 + muls r0, r5 + ldr r1, _080369B4 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x15 + bl sub_803FBE8 + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_080369A4: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _080369A4 + b _08036D72 + .align 2, 0 +_080369B4: .4byte gUnknown_202402C +_080369B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080369D0 @ =gUnknown_202402C + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _08036CAA + .align 2, 0 +_080369D0: .4byte gUnknown_202402C +_080369D4: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _08036A0C @ =gUnknown_202402C + mov r8, r2 +_080369E0: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl sub_803FBE8 + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _080369E0 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A0C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x15 + bl sub_803FBE8 + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _08036D72 + .align 2, 0 +_08036A0C: .4byte gUnknown_202402C +_08036A10: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A28 @ =gUnknown_202402C + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _08036D6A + .align 2, 0 +_08036A28: .4byte gUnknown_202402C +_08036A2C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A38 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1 + b _08036A46 + .align 2, 0 +_08036A38: .4byte gUnknown_202402C +_08036A3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A68 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x19 +_08036A46: + bl sub_803FBE8 + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _08036D72 + .align 2, 0 +_08036A68: .4byte gUnknown_202402C +_08036A6C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A78 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1A + b _08036D6A + .align 2, 0 +_08036A78: .4byte gUnknown_202402C +_08036A7C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A88 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1B + b _08036D6A + .align 2, 0 +_08036A88: .4byte gUnknown_202402C +_08036A8C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036A98 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1C + b _08036D6A + .align 2, 0 +_08036A98: .4byte gUnknown_202402C +_08036A9C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AA8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1D + b _08036D6A + .align 2, 0 +_08036AA8: .4byte gUnknown_202402C +_08036AAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AB8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1E + b _08036D6A + .align 2, 0 +_08036AB8: .4byte gUnknown_202402C +_08036ABC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AC8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x1F + b _08036D6A + .align 2, 0 +_08036AC8: .4byte gUnknown_202402C +_08036ACC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AD8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x20 + b _08036D6A + .align 2, 0 +_08036AD8: .4byte gUnknown_202402C +_08036ADC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AE8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x22 + b _08036D6A + .align 2, 0 +_08036AE8: .4byte gUnknown_202402C +_08036AEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036AF8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x23 + b _08036D6A + .align 2, 0 +_08036AF8: .4byte gUnknown_202402C +_08036AFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036B08 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x24 + b _08036D6A + .align 2, 0 +_08036B08: .4byte gUnknown_202402C +_08036B0C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036B18 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x25 + b _08036D6A + .align 2, 0 +_08036B18: .4byte gUnknown_202402C +_08036B1C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036B28 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x26 + b _08036D6A + .align 2, 0 +_08036B28: .4byte gUnknown_202402C +_08036B2C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08036B78 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl sub_803FBE8 + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl sub_803FBE8 + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl sub_803FBE8 + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl sub_803FBE8 + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl sub_803FBE8 + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl sub_803FBE8 + strb r0, [r7, 0x5] + movs r6, 0x6 + b _08036D72 + .align 2, 0 +_08036B78: .4byte gUnknown_202402C +_08036B7C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036B88 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x27 + b _08036D6A + .align 2, 0 +_08036B88: .4byte gUnknown_202402C +_08036B8C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036B98 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x28 + b _08036D6A + .align 2, 0 +_08036B98: .4byte gUnknown_202402C +_08036B9C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BA8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x29 + b _08036D6A + .align 2, 0 +_08036BA8: .4byte gUnknown_202402C +_08036BAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BB8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x2A + b _08036D6A + .align 2, 0 +_08036BB8: .4byte gUnknown_202402C +_08036BBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BC8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x2B + b _08036D6A + .align 2, 0 +_08036BC8: .4byte gUnknown_202402C +_08036BCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BD8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x2C + b _08036D6A + .align 2, 0 +_08036BD8: .4byte gUnknown_202402C +_08036BDC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BE8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0 + b _08036C06 + .align 2, 0 +_08036BE8: .4byte gUnknown_202402C +_08036BEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036BF8 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x9 + b _08036CAA + .align 2, 0 +_08036BF8: .4byte gUnknown_202402C +_08036BFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C2C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x37 +_08036C06: + bl sub_803FBE8 + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _08036D72 + .align 2, 0 +_08036C2C: .4byte gUnknown_202402C +_08036C30: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C3C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x38 + b _08036D6A + .align 2, 0 +_08036C3C: .4byte gUnknown_202402C +_08036C40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C4C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x39 + b _08036CAA + .align 2, 0 +_08036C4C: .4byte gUnknown_202402C +_08036C50: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C5C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3A + b _08036CAA + .align 2, 0 +_08036C5C: .4byte gUnknown_202402C +_08036C60: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C6C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3B + b _08036CAA + .align 2, 0 +_08036C6C: .4byte gUnknown_202402C +_08036C70: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C7C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3C + b _08036CAA + .align 2, 0 +_08036C7C: .4byte gUnknown_202402C +_08036C80: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C8C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3D + b _08036CAA + .align 2, 0 +_08036C8C: .4byte gUnknown_202402C +_08036C90: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036C9C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3E + b _08036CAA + .align 2, 0 +_08036C9C: .4byte gUnknown_202402C +_08036CA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036CBC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3F +_08036CAA: + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _08036D72 + .align 2, 0 +_08036CBC: .4byte gUnknown_202402C +_08036CC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036CCC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x16 + b _08036D6A + .align 2, 0 +_08036CCC: .4byte gUnknown_202402C +_08036CD0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036CDC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x17 + b _08036D6A + .align 2, 0 +_08036CDC: .4byte gUnknown_202402C +_08036CE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036CEC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x18 + b _08036D6A + .align 2, 0 +_08036CEC: .4byte gUnknown_202402C +_08036CF0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036CFC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x21 + b _08036D6A + .align 2, 0 +_08036CFC: .4byte gUnknown_202402C +_08036D00: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D0C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x2F + b _08036D6A + .align 2, 0 +_08036D0C: .4byte gUnknown_202402C +_08036D10: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D1C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x30 + b _08036D6A + .align 2, 0 +_08036D1C: .4byte gUnknown_202402C +_08036D20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D2C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x32 + b _08036D6A + .align 2, 0 +_08036D2C: .4byte gUnknown_202402C +_08036D30: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D3C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x33 + b _08036D6A + .align 2, 0 +_08036D3C: .4byte gUnknown_202402C +_08036D40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D4C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x34 + b _08036D6A + .align 2, 0 +_08036D4C: .4byte gUnknown_202402C +_08036D50: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D5C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x35 + b _08036D6A + .align 2, 0 +_08036D5C: .4byte gUnknown_202402C +_08036D60: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08036D84 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x36 +_08036D6A: + bl sub_803FBE8 + strb r0, [r7] + movs r6, 0x1 +_08036D72: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08036D84: .4byte gUnknown_202402C + thumb_func_end sub_80365DC + + thumb_func_start sub_8036D88 +sub_8036D88: @ 8036D88 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, _08036E00 @ =gUnknown_2023BCE + ldr r5, _08036E04 @ =gUnknown_2023BC4 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, _08036E08 @ =gUnknown_2022BC4 + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _08036E0C @ =gUnknown_202402C + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _08036DDE + adds r3, r0, 0 +_08036DC4: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _08036DC4 +_08036DDE: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl sub_800E708 + bl sub_8036530 + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08036E00: .4byte gUnknown_2023BCE +_08036E04: .4byte gUnknown_2023BC4 +_08036E08: .4byte gUnknown_2022BC4 +_08036E0C: .4byte gUnknown_202402C + thumb_func_end sub_8036D88 + + thumb_func_start sub_8036E10 +sub_8036E10: @ 8036E10 + push {r4,r5,lr} + ldr r1, _08036E34 @ =gUnknown_2022BC4 + ldr r0, _08036E38 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08036E40 + ldr r0, _08036E3C @ =gUnknown_2023BCE + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8036E68 + b _08036E5E + .align 2, 0 +_08036E34: .4byte gUnknown_2022BC4 +_08036E38: .4byte gUnknown_2023BC4 +_08036E3C: .4byte gUnknown_2023BCE +_08036E40: + ldrb r4, [r1] + movs r5, 0 +_08036E44: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08036E52 + adds r0, r5, 0 + bl sub_8036E68 +_08036E52: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08036E44 +_08036E5E: + bl sub_8036530 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8036E10 + + thumb_func_start sub_8036E68 +sub_8036E68: @ 8036E68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, _08036EA0 @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsls r0, 9 + ldr r2, _08036EA4 @ =gUnknown_2022BC7 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _08036E96 + bl _08037774 +_08036E96: + lsls r0, 2 + ldr r1, _08036EA8 @ =_08036EAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08036EA0: .4byte gUnknown_2023BC4 +_08036EA4: .4byte gUnknown_2022BC7 +_08036EA8: .4byte _08036EAC + .align 2, 0 +_08036EAC: + .4byte _08036F9C + .4byte _08037134 + .4byte _08037150 + .4byte _0803716C + .4byte _080371C0 + .4byte _080371C0 + .4byte _080371C0 + .4byte _080371C0 + .4byte _080371E0 + .4byte _08037248 + .4byte _08037248 + .4byte _08037248 + .4byte _08037248 + .4byte _08037774 + .4byte _08037774 + .4byte _08037774 + .4byte _08037774 + .4byte _08037270 + .4byte _0803728C + .4byte _080372A8 + .4byte _080372C4 + .4byte _080372E0 + .4byte _080372FC + .4byte _08037318 + .4byte _08037334 + .4byte _08037350 + .4byte _0803736C + .4byte _08037388 + .4byte _080373A4 + .4byte _080373C0 + .4byte _080373DC + .4byte _080373F8 + .4byte _0803746C + .4byte _08037488 + .4byte _080374A4 + .4byte _080374C0 + .4byte _080374DC + .4byte _080374F8 + .4byte _08037514 + .4byte _08037530 + .4byte _0803754C + .4byte _08037568 + .4byte _08037584 + .4byte _080375A0 + .4byte _080375BC + .4byte _080375D8 + .4byte _080375F4 + .4byte _08037610 + .4byte _0803762C + .4byte _08037648 + .4byte _08037664 + .4byte _08037680 + .4byte _0803769C + .4byte _080376B8 + .4byte _080376D4 + .4byte _080376F0 + .4byte _0803770C + .4byte _08037728 + .4byte _08037744 + .4byte _08037760 +_08036F9C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08037130 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl sub_804037C + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl sub_804037C + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08037002: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl sub_804037C + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl sub_804037C + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08037002 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08037130 @ =gUnknown_202402C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl sub_804037C + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl sub_804037C + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl sub_804037C + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl sub_804037C + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl sub_804037C + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl sub_804037C + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl sub_804037C + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl sub_804037C + b _08037774 + .align 2, 0 +_08037130: .4byte gUnknown_202402C +_08037134: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803714C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl sub_804037C + b _08037774 + .align 2, 0 +_0803714C: .4byte gUnknown_202402C +_08037150: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037168 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl sub_804037C + b _08037774 + .align 2, 0 +_08037168: .4byte gUnknown_202402C +_0803716C: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080371BC @ =gUnknown_202402C + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08037184: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_804037C + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl sub_804037C + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08037184 + movs r0, 0x64 + muls r0, r5 + ldr r1, _080371BC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl sub_804037C + b _08037774 + .align 2, 0 +_080371BC: .4byte gUnknown_202402C +_080371C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080371D8 @ =gUnknown_202402C + adds r0, r1 + ldr r3, _080371DC @ =gUnknown_2022BC4 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0803725E + .align 2, 0 +_080371D8: .4byte gUnknown_202402C +_080371DC: .4byte gUnknown_2022BC4 +_080371E0: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08037244 @ =gUnknown_202402C + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037244: .4byte gUnknown_202402C +_08037248: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037268 @ =gUnknown_202402C + adds r0, r1 + ldr r3, _0803726C @ =gUnknown_2022BC4 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0803725E: + adds r3, 0x3 + adds r2, r3 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037268: .4byte gUnknown_202402C +_0803726C: .4byte gUnknown_2022BC4 +_08037270: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037288 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037288: .4byte gUnknown_202402C +_0803728C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080372A4 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl sub_804037C + b _08037774 + .align 2, 0 +_080372A4: .4byte gUnknown_202402C +_080372A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080372C0 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl sub_804037C + b _08037774 + .align 2, 0 +_080372C0: .4byte gUnknown_202402C +_080372C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080372DC @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl sub_804037C + b _08037774 + .align 2, 0 +_080372DC: .4byte gUnknown_202402C +_080372E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080372F8 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl sub_804037C + b _08037774 + .align 2, 0 +_080372F8: .4byte gUnknown_202402C +_080372FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037314 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl sub_804037C + b _08037774 + .align 2, 0 +_08037314: .4byte gUnknown_202402C +_08037318: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037330 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl sub_804037C + b _08037774 + .align 2, 0 +_08037330: .4byte gUnknown_202402C +_08037334: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803734C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl sub_804037C + b _08037774 + .align 2, 0 +_0803734C: .4byte gUnknown_202402C +_08037350: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037368 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037368: .4byte gUnknown_202402C +_0803736C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037384 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037384: .4byte gUnknown_202402C +_08037388: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080373A0 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl sub_804037C + b _08037774 + .align 2, 0 +_080373A0: .4byte gUnknown_202402C +_080373A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080373BC @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl sub_804037C + b _08037774 + .align 2, 0 +_080373BC: .4byte gUnknown_202402C +_080373C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080373D8 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl sub_804037C + b _08037774 + .align 2, 0 +_080373D8: .4byte gUnknown_202402C +_080373DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080373F4 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl sub_804037C + b _08037774 + .align 2, 0 +_080373F4: .4byte gUnknown_202402C +_080373F8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08037468 @ =gUnknown_202402C + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl sub_804037C + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08037506 + .align 2, 0 +_08037468: .4byte gUnknown_202402C +_0803746C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037484 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037484: .4byte gUnknown_202402C +_08037488: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080374A0 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl sub_804037C + b _08037774 + .align 2, 0 +_080374A0: .4byte gUnknown_202402C +_080374A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080374BC @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl sub_804037C + b _08037774 + .align 2, 0 +_080374BC: .4byte gUnknown_202402C +_080374C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080374D8 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl sub_804037C + b _08037774 + .align 2, 0 +_080374D8: .4byte gUnknown_202402C +_080374DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080374F4 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl sub_804037C + b _08037774 + .align 2, 0 +_080374F4: .4byte gUnknown_202402C +_080374F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037510 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_08037506: + movs r1, 0x2C + bl sub_804037C + b _08037774 + .align 2, 0 +_08037510: .4byte gUnknown_202402C +_08037514: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803752C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl sub_804037C + b _08037774 + .align 2, 0 +_0803752C: .4byte gUnknown_202402C +_08037530: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037548 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037548: .4byte gUnknown_202402C +_0803754C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037564 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037564: .4byte gUnknown_202402C +_08037568: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037580 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037580: .4byte gUnknown_202402C +_08037584: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803759C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl sub_804037C + b _08037774 + .align 2, 0 +_0803759C: .4byte gUnknown_202402C +_080375A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080375B8 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl sub_804037C + b _08037774 + .align 2, 0 +_080375B8: .4byte gUnknown_202402C +_080375BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080375D4 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl sub_804037C + b _08037774 + .align 2, 0 +_080375D4: .4byte gUnknown_202402C +_080375D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080375F0 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl sub_804037C + b _08037774 + .align 2, 0 +_080375F0: .4byte gUnknown_202402C +_080375F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803760C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl sub_804037C + b _08037774 + .align 2, 0 +_0803760C: .4byte gUnknown_202402C +_08037610: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037628 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl sub_804037C + b _08037774 + .align 2, 0 +_08037628: .4byte gUnknown_202402C +_0803762C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037644 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl sub_804037C + b _08037774 + .align 2, 0 +_08037644: .4byte gUnknown_202402C +_08037648: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037660 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037660: .4byte gUnknown_202402C +_08037664: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803767C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl sub_804037C + b _08037774 + .align 2, 0 +_0803767C: .4byte gUnknown_202402C +_08037680: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037698 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037698: .4byte gUnknown_202402C +_0803769C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080376B4 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl sub_804037C + b _08037774 + .align 2, 0 +_080376B4: .4byte gUnknown_202402C +_080376B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080376D0 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl sub_804037C + b _08037774 + .align 2, 0 +_080376D0: .4byte gUnknown_202402C +_080376D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080376EC @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl sub_804037C + b _08037774 + .align 2, 0 +_080376EC: .4byte gUnknown_202402C +_080376F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037708 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037708: .4byte gUnknown_202402C +_0803770C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037724 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037724: .4byte gUnknown_202402C +_08037728: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037740 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl sub_804037C + b _08037774 + .align 2, 0 +_08037740: .4byte gUnknown_202402C +_08037744: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803775C @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl sub_804037C + b _08037774 + .align 2, 0 +_0803775C: .4byte gUnknown_202402C +_08037760: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08037784 @ =gUnknown_202402C + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl sub_804037C +_08037774: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08037784: .4byte gUnknown_202402C + thumb_func_end sub_8036E68 + + thumb_func_start sub_8037788 +sub_8037788: @ 8037788 + push {r4-r7,lr} + ldr r1, _080377EC @ =gUnknown_2023BCE + ldr r7, _080377F0 @ =gUnknown_2023BC4 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _080377F4 @ =gUnknown_2022BC4 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _080377F8 @ =gUnknown_202402C + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _080377E0 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_080377BE: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _080377BE +_080377E0: + bl sub_8036530 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080377EC: .4byte gUnknown_2023BCE +_080377F0: .4byte gUnknown_2023BC4 +_080377F4: .4byte gUnknown_2022BC4 +_080377F8: .4byte gUnknown_202402C + thumb_func_end sub_8037788 + + thumb_func_start sub_80377FC +sub_80377FC: @ 80377FC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _0803787C @ =gUnknown_2023BCE + ldr r4, _08037880 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r6, _08037884 @ =gUnknown_202402C + adds r0, r6 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _08037888 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _08037890 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r5 + adds r0, r6 + bl sub_8034658 + ldrb r0, [r4] + bl sub_8074900 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, _0803788C @ =gUnknown_2024018 + ldr r0, [r3] + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] + b _080378AA + .align 2, 0 +_0803787C: .4byte gUnknown_2023BCE +_08037880: .4byte gUnknown_2023BC4 +_08037884: .4byte gUnknown_202402C +_08037888: .4byte gUnknown_2022B4C +_0803788C: .4byte gUnknown_2024018 +_08037890: + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r5 + adds r0, r6 + bl sub_8034320 + ldrb r0, [r4] + bl sub_80748A8 + lsls r0, 24 + lsrs r5, r0, 24 +_080378AA: + ldr r7, _0803799C @ =gUnknown_2023BC4 + ldrb r0, [r7] + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_803F7D4 + ldr r6, _080379A0 @ =gUnknown_20244DC + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r7] + bl sub_807685C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8006F8C + ldr r4, _080379A4 @ =gUnknown_2023D44 + ldrb r1, [r7] + adds r1, r4 + strb r0, [r1] + ldr r5, _080379A8 @ =gUnknown_202063C + ldrb r0, [r7] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080379AC @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r7] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r3, [r7] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r7] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080379B0 @ =gUnknown_2024024 + adds r2, r1 + ldrb r1, [r2] + bl sub_800838C + ldr r0, _080379B4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _08037986 + ldrb r4, [r7] + ldr r1, _080379B8 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080379BC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8035708 +_08037986: + ldr r0, _080379C0 @ =gUnknown_3004FE0 + ldrb r1, [r7] + lsls r1, 2 + adds r1, r0 + ldr r0, _080379C4 @ =sub_8035FE8 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803799C: .4byte gUnknown_2023BC4 +_080379A0: .4byte gUnknown_20244DC +_080379A4: .4byte gUnknown_2023D44 +_080379A8: .4byte gUnknown_202063C +_080379AC: .4byte 0x0000ff10 +_080379B0: .4byte gUnknown_2024024 +_080379B4: .4byte gUnknown_2022B4C +_080379B8: .4byte gUnknown_2023BCE +_080379BC: .4byte gUnknown_202402C +_080379C0: .4byte gUnknown_3004FE0 +_080379C4: .4byte sub_8035FE8 + thumb_func_end sub_80377FC + + thumb_func_start sub_80379C8 +sub_80379C8: @ 80379C8 + push {r4,lr} + ldr r4, _08037A10 @ =gUnknown_2023BC4 + ldrb r0, [r4] + ldr r1, _08037A14 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + movs r1, 0x6 + strb r1, [r0] + ldr r1, _08037A18 @ =gUnknown_2023BCE + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, _08037A1C @ =gUnknown_2022BC4 + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_8037A28 + ldr r1, _08037A20 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037A24 @ =sub_8036408 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037A10: .4byte gUnknown_2023BC4 +_08037A14: .4byte gUnknown_2023FE8 +_08037A18: .4byte gUnknown_2023BCE +_08037A1C: .4byte gUnknown_2022BC4 +_08037A20: .4byte gUnknown_3004FE0 +_08037A24: .4byte sub_8036408 + thumb_func_end sub_80379C8 + + thumb_func_start sub_8037A28 +sub_8037A28: @ 8037A28 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_803589C + ldr r0, _08037B84 @ =gUnknown_2023BCE + lsls r4, r6, 1 + adds r4, r0 + ldr r0, _08037B88 @ =gUnknown_2022BC4 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, _08037B8C @ =gUnknown_202402C + adds r0, r5 + movs r1, 0xB + bl sub_803FBE8 + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _08037B90 @ =sub_8033E3C + bl sub_8044EF8 + ldr r1, _08037B94 @ =gUnknown_3004FFC + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_8034320 + adds r0, r6, 0 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_803F7D4 + ldr r0, _08037B98 @ =gUnknown_20244DC + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80748A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_807685C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8006F8C + ldr r4, _08037B9C @ =gUnknown_2023D44 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _08037BA0 @ =gUnknown_202063C + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08037BA4 @ =gUnknown_2024024 + adds r6, r1 + ldrb r1, [r6] + bl sub_800838C + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08037BA8 @ =nullsub_8 + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_804A938 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037B84: .4byte gUnknown_2023BCE +_08037B88: .4byte gUnknown_2022BC4 +_08037B8C: .4byte gUnknown_202402C +_08037B90: .4byte sub_8033E3C +_08037B94: .4byte gUnknown_3004FFC +_08037B98: .4byte gUnknown_20244DC +_08037B9C: .4byte gUnknown_2023D44 +_08037BA0: .4byte gUnknown_202063C +_08037BA4: .4byte gUnknown_2024024 +_08037BA8: .4byte nullsub_8 + thumb_func_end sub_8037A28 + + thumb_func_start sub_8037BAC +sub_8037BAC: @ 8037BAC + push {r4-r6,lr} + ldr r1, _08037BE0 @ =gUnknown_2022BC4 + ldr r6, _08037BE4 @ =gUnknown_2023BC4 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _08037BF4 + ldr r0, _08037BE8 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _08037BEC @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037BF0 @ =sub_8037C44 + str r1, [r0] + b _08037C30 + .align 2, 0 +_08037BE0: .4byte gUnknown_2022BC4 +_08037BE4: .4byte gUnknown_2023BC4 +_08037BE8: .4byte gUnknown_2024018 +_08037BEC: .4byte gUnknown_3004FE0 +_08037BF0: .4byte sub_8037C44 +_08037BF4: + ldr r5, _08037C38 @ =gUnknown_2023D44 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08037C3C @ =gUnknown_202063C + adds r0, r4 + bl sub_80077D8 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + ldrb r0, [r6] + bl sub_8035794 + ldr r1, _08037C40 @ =gUnknown_3004FF0 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8048188 + bl sub_8036530 +_08037C30: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037C38: .4byte gUnknown_2023D44 +_08037C3C: .4byte gUnknown_202063C +_08037C40: .4byte gUnknown_3004FF0 + thumb_func_end sub_8037BAC + + thumb_func_start sub_8037C44 +sub_8037C44: @ 8037C44 + push {r4-r6,lr} + ldr r6, _08037C64 @ =gUnknown_2024018 + ldr r4, [r6] + ldr r5, _08037C68 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08037C6C + cmp r0, 0x1 + beq _08037C9A + b _08037CC2 + .align 2, 0 +_08037C64: .4byte gUnknown_2024018 +_08037C68: .4byte gUnknown_2023BC4 +_08037C6C: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08037C86 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_08037C86: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08037CC2 +_08037C9A: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08037CC2 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl sub_80341D8 + ldr r1, _08037CC8 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037CCC @ =sub_8036170 + str r1, [r0] +_08037CC2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037CC8: .4byte gUnknown_3004FE0 +_08037CCC: .4byte sub_8036170 + thumb_func_end sub_8037C44 + + thumb_func_start sub_8037CD0 +sub_8037CD0: @ 8037CD0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r3, _08037CEC @ =gUnknown_20386AE + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _08037CF0 + bl sub_8040EEC + b _08037D26 + .align 2, 0 +_08037CEC: .4byte gUnknown_20386AE +_08037CF0: + ldr r0, _08037D04 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08037D08 + bl sub_80E6078 + b _08037D26 + .align 2, 0 +_08037D04: .4byte gUnknown_2022B4C +_08037D08: + movs r0, 0x80 + lsls r0, 12 + ands r0, r1 + cmp r0, 0 + beq _08037D18 + bl sub_815DA3C + b _08037D26 +_08037D18: + movs r0, 0x80 + lsls r0, 4 + ands r1, r0 + cmp r1, 0 + beq _08037D2C + bl sub_80E7420 +_08037D26: + lsls r0, 24 + lsrs r0, 24 + b _08037D3A +_08037D2C: + ldr r2, _08037E6C @ =gUnknown_823EAC8 + ldrh r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] +_08037D3A: + mov r9, r0 + ldr r0, _08037E70 @ =gUnknown_2023BC4 + mov r8, r0 + ldrb r1, [r0] + mov r0, r9 + bl sub_80346C4 + mov r1, r8 + ldrb r0, [r1] + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + bl sub_803F864 + ldr r5, _08037E74 @ =gUnknown_20244DC + ldr r1, _08037E78 @ =gUnknown_823932C + mov r2, r9 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + mov r1, r8 + ldrb r0, [r1] + bl sub_807685C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + movs r1, 0xB0 + adds r2, r4, 0 + bl sub_8006F8C + ldr r5, _08037E7C @ =gUnknown_2023D44 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + strb r0, [r1] + ldr r4, _08037E80 @ =gUnknown_202063C + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08037E84 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r0, _08037E88 @ =gUnknown_8239A1C + mov r1, r9 + lsls r6, r1, 3 + adds r0, r6, r0 + ldrh r0, [r0, 0x4] + bl sub_80089E8 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1, 0x38] + ldr r0, _08037E8C @ =gUnknown_823957C + adds r6, r0 + ldrh r0, [r6, 0x6] + bl sub_8008804 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08037E90 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08037E94 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r9 + strh r2, [r0, 0x6] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _08037E98 @ =sub_8033EEC + str r1, [r0] + ldr r1, _08037E9C @ =gUnknown_3004FE0 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037EA0 @ =sub_8035AE8 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037E6C: .4byte gUnknown_823EAC8 +_08037E70: .4byte gUnknown_2023BC4 +_08037E74: .4byte gUnknown_20244DC +_08037E78: .4byte gUnknown_823932C +_08037E7C: .4byte gUnknown_2023D44 +_08037E80: .4byte gUnknown_202063C +_08037E84: .4byte 0x0000ff10 +_08037E88: .4byte gUnknown_8239A1C +_08037E8C: .4byte gUnknown_823957C +_08037E90: .4byte 0x000003ff +_08037E94: .4byte 0xfffffc00 +_08037E98: .4byte sub_8033EEC +_08037E9C: .4byte gUnknown_3004FE0 +_08037EA0: .4byte sub_8035AE8 + thumb_func_end sub_8037CD0 + + thumb_func_start sub_8037EA4 +sub_8037EA4: @ 8037EA4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r3, _08037EC0 @ =gUnknown_20386AE + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _08037EC4 + bl sub_8040EEC + b _08037EFA + .align 2, 0 +_08037EC0: .4byte gUnknown_20386AE +_08037EC4: + ldr r0, _08037ED8 @ =gUnknown_2022B4C + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08037EDC + bl sub_80E6078 + b _08037EFA + .align 2, 0 +_08037ED8: .4byte gUnknown_2022B4C +_08037EDC: + movs r0, 0x80 + lsls r0, 12 + ands r0, r1 + cmp r0, 0 + beq _08037EEC + bl sub_815DA3C + b _08037EFA +_08037EEC: + movs r0, 0x80 + lsls r0, 4 + ands r1, r0 + cmp r1, 0 + beq _08037F00 + bl sub_80E7420 +_08037EFA: + lsls r0, 24 + lsrs r0, 24 + b _08037F0E +_08037F00: + ldr r2, _08038040 @ =gUnknown_823EAC8 + ldrh r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] +_08037F0E: + mov r9, r0 + ldr r0, _08038044 @ =gUnknown_2023BC4 + mov r8, r0 + ldrb r1, [r0] + mov r0, r9 + bl sub_80346C4 + mov r1, r8 + ldrb r0, [r1] + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + bl sub_803F864 + ldr r0, _08038048 @ =gUnknown_20244DC + ldr r2, _0803804C @ =gUnknown_823932C + mov r3, r9 + lsls r1, r3, 2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 14 + adds r2, r1 + asrs r2, 16 + movs r1, 0xB0 + movs r3, 0x1E + bl sub_8006F8C + ldr r5, _08038050 @ =gUnknown_2023D44 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + strb r0, [r1] + ldr r4, _08038054 @ =gUnknown_202063C + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x60 + strh r1, [r0, 0x24] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + adds r1, 0x20 + strh r1, [r0, 0x20] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08038058 @ =0x0000fffe + strh r1, [r0, 0x2E] + ldr r0, _0803805C @ =gUnknown_8239A1C + mov r3, r9 + lsls r6, r3, 3 + adds r0, r6, r0 + ldrh r0, [r0, 0x4] + bl sub_80089E8 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r3, r8 + ldrb r0, [r3] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1, 0x38] + ldr r0, _08038060 @ =gUnknown_823957C + adds r6, r0 + ldrh r0, [r6, 0x6] + bl sub_8008804 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08038064 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08038068 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + mov r3, r8 + ldrb r0, [r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r9 + strh r1, [r0, 0x6] + ldrb r0, [r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _0803806C @ =sub_8033EEC + str r1, [r0] + ldr r1, _08038070 @ =gUnknown_3004FE0 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038074 @ =sub_8035B20 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08038040: .4byte gUnknown_823EAC8 +_08038044: .4byte gUnknown_2023BC4 +_08038048: .4byte gUnknown_20244DC +_0803804C: .4byte gUnknown_823932C +_08038050: .4byte gUnknown_2023D44 +_08038054: .4byte gUnknown_202063C +_08038058: .4byte 0x0000fffe +_0803805C: .4byte gUnknown_8239A1C +_08038060: .4byte gUnknown_823957C +_08038064: .4byte 0x000003ff +_08038068: .4byte 0xfffffc00 +_0803806C: .4byte sub_8033EEC +_08038070: .4byte gUnknown_3004FE0 +_08038074: .4byte sub_8035B20 + thumb_func_end sub_8037EA4 + + thumb_func_start sub_8038078 +sub_8038078: @ 8038078 + push {r4-r6,lr} + ldr r6, _08038108 @ =gUnknown_2023D44 + ldr r4, _0803810C @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08038110 @ =gUnknown_202063C + adds r0, r5 + bl sub_80750FC + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08038114 @ =sub_8075590 + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08038118 @ =nullsub_8 + bl sub_8074A68 + ldr r1, _0803811C @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038120 @ =sub_8035B58 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08038108: .4byte gUnknown_2023D44 +_0803810C: .4byte gUnknown_2023BC4 +_08038110: .4byte gUnknown_202063C +_08038114: .4byte sub_8075590 +_08038118: .4byte nullsub_8 +_0803811C: .4byte gUnknown_3004FE0 +_08038120: .4byte sub_8035B58 + thumb_func_end sub_8038078 + + thumb_func_start sub_8038124 +sub_8038124: @ 8038124 + push {r4-r6,lr} + ldr r6, _08038170 @ =gUnknown_2024018 + ldr r4, [r6] + ldr r5, _08038174 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _08038178 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08038158 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_08038158: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _080381B4 + .align 2, 0 +_08038170: .4byte gUnknown_2024018 +_08038174: .4byte gUnknown_2023BC4 +_08038178: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080381B4 + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl sub_80722F4 + ldr r2, _080381BC @ =gUnknown_202063C + ldr r1, _080381C0 @ =gUnknown_2023D44 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080381C4 @ =sub_8011EA0 + str r1, [r0] + ldr r1, _080381C8 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080381CC @ =sub_803612C + str r1, [r0] +_080381B4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080381BC: .4byte gUnknown_202063C +_080381C0: .4byte gUnknown_2023D44 +_080381C4: .4byte sub_8011EA0 +_080381C8: .4byte gUnknown_3004FE0 +_080381CC: .4byte sub_803612C + thumb_func_end sub_8038124 + + thumb_func_start sub_80381D0 +sub_80381D0: @ 80381D0 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_80381D0 + + thumb_func_start sub_80381DC +sub_80381DC: @ 80381DC + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_80381DC + + thumb_func_start sub_80381E8 +sub_80381E8: @ 80381E8 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_80381E8 + + thumb_func_start sub_80381F4 +sub_80381F4: @ 80381F4 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_80381F4 + + thumb_func_start sub_8038200 +sub_8038200: @ 8038200 + push {r4-r6,lr} + ldr r6, _080382E4 @ =gUnknown_2023BC4 + ldrb r0, [r6] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08038212 + b _08038326 +_08038212: + ldr r0, _080382E8 @ =gUnknown_2022BC4 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _080382EC @ =gUnknown_2037F16 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _080382F0 @ =gUnknown_2037EEC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _080382F4 @ =gUnknown_2037EE8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _080382F8 @ =gUnknown_2037EFE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _080382FC @ =gUnknown_2037F00 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _08038300 @ =gUnknown_2037EE4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _08038304 @ =gUnknown_2024008 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_80342A0 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08038308 + bl sub_8036530 + b _08038326 + .align 2, 0 +_080382E4: .4byte gUnknown_2023BC4 +_080382E8: .4byte gUnknown_2022BC4 +_080382EC: .4byte gUnknown_2037F16 +_080382F0: .4byte gUnknown_2037EEC +_080382F4: .4byte gUnknown_2037EE8 +_080382F8: .4byte gUnknown_2037EFE +_080382FC: .4byte gUnknown_2037F00 +_08038300: .4byte gUnknown_2037EE4 +_08038304: .4byte gUnknown_2024008 +_08038308: + ldr r0, _0803832C @ =gUnknown_2024018 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, _08038330 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038334 @ =sub_8038338 + str r1, [r0] +_08038326: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803832C: .4byte gUnknown_2024018 +_08038330: .4byte gUnknown_3004FE0 +_08038334: .4byte sub_8038338 + thumb_func_end sub_8038200 + + thumb_func_start sub_8038338 +sub_8038338: @ 8038338 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _08038384 @ =gUnknown_2022BC4 + ldr r6, _08038388 @ =gUnknown_2023BC4 + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _0803838C @ =gUnknown_2024018 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _080383D0 + cmp r2, 0x1 + bgt _08038390 + cmp r2, 0 + beq _0803839A + b _080384AC + .align 2, 0 +_08038384: .4byte gUnknown_2022BC4 +_08038388: .4byte gUnknown_2023BC4 +_0803838C: .4byte gUnknown_2024018 +_08038390: + cmp r2, 0x2 + beq _080383FA + cmp r2, 0x3 + beq _08038470 + b _080384AC +_0803839A: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _080383BC + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_080383BC: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _080384AC +_080383D0: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080384AC + movs r0, 0 + bl sub_8035450 + adds r0, r4, 0 + bl sub_807259C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _080384AC +_080383FA: + ldr r0, _08038460 @ =gUnknown_2037EDC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08038464 @ =gUnknown_2037EE1 + ldrb r0, [r0] + cmp r0, 0 + bne _080384AC + movs r0, 0x1 + bl sub_8035450 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08038448 + mov r0, r8 + cmp r0, 0x1 + bhi _08038448 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl sub_80341D8 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08038448: + ldr r0, _08038468 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _0803846C @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _080384AC + .align 2, 0 +_08038460: .4byte gUnknown_2037EDC +_08038464: .4byte gUnknown_2037EE1 +_08038468: .4byte gUnknown_2024018 +_0803846C: .4byte gUnknown_2023BC4 +_08038470: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080384AC + bl sub_8034B40 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_8035200 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl sub_8036530 +_080384AC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8038338 + + thumb_func_start sub_80384BC +sub_80384BC: @ 80384BC + push {r4,lr} + ldr r0, _080384F0 @ =gUnknown_2022974 + movs r1, 0 + strh r1, [r0] + ldr r0, _080384F4 @ =gUnknown_2022976 + strh r1, [r0] + ldr r0, _080384F8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + ldr r1, _080384FC @ =gUnknown_2022BC6 + adds r4, r0, r1 + ldrh r0, [r4] + bl sub_80D7274 + ldrh r0, [r4] + bl sub_80D89B0 + lsls r0, 24 + cmp r0, 0 + beq _08038504 + ldr r0, _08038500 @ =gUnknown_202298C + movs r1, 0x40 + bl sub_80D87BC + b _0803850C + .align 2, 0 +_080384F0: .4byte gUnknown_2022974 +_080384F4: .4byte gUnknown_2022976 +_080384F8: .4byte gUnknown_2023BC4 +_080384FC: .4byte gUnknown_2022BC6 +_08038500: .4byte gUnknown_202298C +_08038504: + ldr r0, _08038534 @ =gUnknown_202298C + movs r1, 0 + bl sub_80D87BC +_0803850C: + ldr r0, _08038538 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08038568 + ldrh r1, [r4] + cmp r1, 0xE3 + beq _0803854C + ldr r0, _0803853C @ =0x0000017f + cmp r1, r0 + bne _08038568 + ldr r1, _08038540 @ =gUnknown_3004FE0 + ldr r0, _08038544 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038548 @ =sub_80E85C0 + b _08038574 + .align 2, 0 +_08038534: .4byte gUnknown_202298C +_08038538: .4byte gUnknown_2022B4C +_0803853C: .4byte 0x0000017f +_08038540: .4byte gUnknown_3004FE0 +_08038544: .4byte gUnknown_2023BC4 +_08038548: .4byte sub_80E85C0 +_0803854C: + ldr r1, _0803855C @ =gUnknown_3004FE0 + ldr r0, _08038560 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038564 @ =sub_80E8598 + b _08038574 + .align 2, 0 +_0803855C: .4byte gUnknown_3004FE0 +_08038560: .4byte gUnknown_2023BC4 +_08038564: .4byte sub_80E8598 +_08038568: + ldr r1, _0803857C @ =gUnknown_3004FE0 + ldr r0, _08038580 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038584 @ =sub_80361E4 +_08038574: + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803857C: .4byte gUnknown_3004FE0 +_08038580: .4byte gUnknown_2023BC4 +_08038584: .4byte sub_80361E4 + thumb_func_end sub_80384BC + + thumb_func_start sub_8038588 +sub_8038588: @ 8038588 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038588 + + thumb_func_start sub_8038594 +sub_8038594: @ 8038594 + push {lr} + bl sub_8039C84 + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038594 + + thumb_func_start sub_80385A4 +sub_80385A4: @ 80385A4 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_80385A4 + + thumb_func_start sub_80385B0 +sub_80385B0: @ 80385B0 + push {r4-r6,lr} + ldr r6, _080385E4 @ =gUnknown_2023BC4 + ldrb r0, [r6] + lsls r0, 9 + ldr r1, _080385E8 @ =gUnknown_2022BC8 + adds r5, r0, r1 + ldr r0, _080385EC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x93 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _08038680 + bl sub_80C6DA0 + bl sub_80C6F44 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + beq _080385F0 + cmp r4, 0x5 + bne _080385FC + movs r0, 0x1 + movs r1, 0x4 + b _080385F4 + .align 2, 0 +_080385E4: .4byte gUnknown_2023BC4 +_080385E8: .4byte gUnknown_2022BC8 +_080385EC: .4byte gUnknown_2022B4C +_080385F0: + movs r0, 0x1 + movs r1, 0x3 +_080385F4: + movs r2, 0 + bl sub_800E848 + b _08038668 +_080385FC: + ldr r3, _08038670 @ =gUnknown_8250C04 + lsls r0, r4, 1 + adds r2, r5, r0 + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _0803861C + ldr r1, _08038674 @ =gUnknown_2023D6C + ldrb r0, [r6] + strb r0, [r1] +_0803861C: + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08038656 + movs r0, 0 + bl sub_80751E8 + ldr r5, _08038674 @ =gUnknown_2023D6C + strb r0, [r5] + ldr r0, _08038678 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0803867C @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08038656 + movs r0, 0x2 + bl sub_80751E8 + strb r0, [r5] +_08038656: + ldr r0, _08038674 @ =gUnknown_2023D6C + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl sub_800E848 +_08038668: + bl sub_8036530 + b _08038712 + .align 2, 0 +_08038670: .4byte gUnknown_8250C04 +_08038674: .4byte gUnknown_2023D6C +_08038678: .4byte gUnknown_2023D70 +_0803867C: .4byte gUnknown_825E45C +_08038680: + movs r6, 0x3 +_08038682: + bl sub_8044EC8 + adds r4, r0, 0 + ands r4, r6 + lsls r0, r4, 1 + adds r0, r5, r0 + ldrh r2, [r0] + cmp r2, 0 + beq _08038682 + ldr r1, _080386BC @ =gUnknown_8250C04 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _080386C4 + ldr r0, _080386C0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl sub_800E848 + b _0803870E + .align 2, 0 +_080386BC: .4byte gUnknown_8250C04 +_080386C0: .4byte gUnknown_2023BC4 +_080386C4: + ldr r0, _080386F4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080386F8 + bl sub_8044EC8 + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + bl sub_80751E8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl sub_800E848 + b _0803870E + .align 2, 0 +_080386F4: .4byte gUnknown_2022B4C +_080386F8: + movs r0, 0 + bl sub_80751E8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl sub_800E848 +_0803870E: + bl sub_8036530 +_08038712: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80385B0 + + thumb_func_start sub_8038718 +sub_8038718: @ 8038718 + push {lr} + ldr r0, _0803873C @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsrs r0, 1 + ldr r1, _08038740 @ =gUnknown_2023FE8 + ldr r1, [r1] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC0 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_800E8AC + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_0803873C: .4byte gUnknown_2023BC4 +_08038740: .4byte gUnknown_2023FE8 + thumb_func_end sub_8038718 + + thumb_func_start sub_8038744 +sub_8038744: @ 8038744 + push {r4-r6,lr} + ldr r6, _08038788 @ =gUnknown_2023BC4 + ldrb r0, [r6] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r5, _0803878C @ =gUnknown_2023FE8 + ldr r1, [r5] + adds r0, r1 + adds r0, 0x92 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080387E4 + bl sub_8039E3C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _0803880A + ldr r0, _08038790 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08038794 + movs r0, 0x1 + bl sub_80751E8 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + b _080387A8 + .align 2, 0 +_08038788: .4byte gUnknown_2023BC4 +_0803878C: .4byte gUnknown_2023FE8 +_08038790: .4byte gUnknown_2022B4C +_08038794: + movs r0, 0x1 + bl sub_80751E8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x3 + bl sub_80751E8 + lsls r0, 24 + lsrs r5, r0, 24 +_080387A8: + movs r4, 0 + b _080387AE +_080387AC: + adds r4, 0x1 +_080387AE: + cmp r4, 0x5 + bgt _0803880A + movs r0, 0x64 + muls r0, r4 + ldr r1, _080387DC @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _080387AC + ldr r1, _080387E0 @ =gUnknown_2023BCE + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _080387AC + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _080387AC + b _0803880A + .align 2, 0 +_080387DC: .4byte gUnknown_202402C +_080387E0: .4byte gUnknown_2023BCE +_080387E4: + ldrb r0, [r6] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, [r5] + adds r0, r1 + adds r0, 0x92 + ldrb r4, [r0] + ldrb r0, [r6] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, [r5] + adds r0, r1 + adds r0, 0x92 + movs r1, 0x6 + strb r1, [r0] +_0803880A: + ldr r0, _08038830 @ =gUnknown_2023BC4 + ldrb r0, [r0] + ldr r1, _08038834 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + strb r4, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl sub_800E874 + bl sub_8036530 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08038830: .4byte gUnknown_2023BC4 +_08038834: .4byte gUnknown_2023FE8 + thumb_func_end sub_8038744 + + thumb_func_start sub_8038838 +sub_8038838: @ 8038838 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038838 + + thumb_func_start sub_8038844 +sub_8038844: @ 8038844 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl sub_8034964 + ldr r3, _080388BC @ =gUnknown_2022BC4 + ldr r0, _080388C0 @ =gUnknown_2023BC4 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, 8 + adds r3, 0x2 + adds r2, r3 + ldrb r0, [r2] + orrs r0, r1 + lsls r0, 16 + asrs r7, r0, 16 + ldr r0, _080388C4 @ =0x00007fff + cmp r7, r0 + beq _080388D4 + ldr r6, _080388C8 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080388CC @ =gUnknown_202402C + adds r0, r4 + movs r1, 0x3A + bl sub_803FBE8 + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl sub_803FBE8 + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _080388D0 @ =gUnknown_3004FF0 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8048150 + b _080388FE + .align 2, 0 +_080388BC: .4byte gUnknown_2022BC4 +_080388C0: .4byte gUnknown_2023BC4 +_080388C4: .4byte 0x00007fff +_080388C8: .4byte gUnknown_2023BCE +_080388CC: .4byte gUnknown_202402C +_080388D0: .4byte gUnknown_3004FF0 +_080388D4: + ldr r1, _0803891C @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08038920 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x3A + bl sub_803FBE8 + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08038924 @ =gUnknown_3004FF0 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8048150 +_080388FE: + ldr r1, _08038928 @ =gUnknown_3004FE0 + ldr r0, _0803892C @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038930 @ =sub_80360A0 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803891C: .4byte gUnknown_2023BCE +_08038920: .4byte gUnknown_202402C +_08038924: .4byte gUnknown_3004FF0 +_08038928: .4byte gUnknown_3004FE0 +_0803892C: .4byte gUnknown_2023BC4 +_08038930: .4byte sub_80360A0 + thumb_func_end sub_8038844 + + thumb_func_start sub_8038934 +sub_8038934: @ 8038934 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038934 + + thumb_func_start sub_8038940 +sub_8038940: @ 8038940 + push {r4,lr} + ldr r4, _0803899C @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08038994 + ldr r0, _080389A0 @ =gUnknown_3004FF0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _080389A4 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _080389A8 @ =gUnknown_202402C + adds r1, r2 + movs r2, 0x9 + bl sub_8049D98 + ldrb r2, [r4] + ldr r0, _080389AC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _080389B0 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _080389B4 @ =sub_80364D0 + str r1, [r0] +_08038994: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803899C: .4byte gUnknown_2023BC4 +_080389A0: .4byte gUnknown_3004FF0 +_080389A4: .4byte gUnknown_2023BCE +_080389A8: .4byte gUnknown_202402C +_080389AC: .4byte gUnknown_2024018 +_080389B0: .4byte gUnknown_3004FE0 +_080389B4: .4byte sub_80364D0 + thumb_func_end sub_8038940 + + thumb_func_start sub_80389B8 +sub_80389B8: @ 80389B8 + push {r4,r5,lr} + ldr r5, _08038A10 @ =gUnknown_2023BC4 + ldrb r0, [r5] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08038A08 + ldr r4, _08038A14 @ =gUnknown_2022BC4 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl sub_8033F1C + ldr r1, _08038A18 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038A1C @ =sub_80364D0 + str r1, [r0] +_08038A08: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08038A10: .4byte gUnknown_2023BC4 +_08038A14: .4byte gUnknown_2022BC4 +_08038A18: .4byte gUnknown_3004FE0 +_08038A1C: .4byte sub_80364D0 + thumb_func_end sub_80389B8 + + thumb_func_start sub_8038A20 +sub_8038A20: @ 8038A20 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A20 + + thumb_func_start sub_8038A2C +sub_8038A2C: @ 8038A2C + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A2C + + thumb_func_start sub_8038A38 +sub_8038A38: @ 8038A38 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A38 + + thumb_func_start sub_8038A44 +sub_8038A44: @ 8038A44 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A44 + + thumb_func_start sub_8038A50 +sub_8038A50: @ 8038A50 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A50 + + thumb_func_start sub_8038A5C +sub_8038A5C: @ 8038A5C + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A5C + + thumb_func_start sub_8038A68 +sub_8038A68: @ 8038A68 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A68 + + thumb_func_start sub_8038A74 +sub_8038A74: @ 8038A74 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A74 + + thumb_func_start sub_8038A80 +sub_8038A80: @ 8038A80 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038A80 + + thumb_func_start sub_8038A8C +sub_8038A8C: @ 8038A8C + push {lr} + ldr r2, _08038AA4 @ =gUnknown_2022870 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038AA4: .4byte gUnknown_2022870 + thumb_func_end sub_8038A8C + + thumb_func_start sub_8038AA8 +sub_8038AA8: @ 8038AA8 + push {lr} + ldr r3, _08038AD4 @ =gUnknown_2022870 + ldr r1, _08038AD8 @ =gUnknown_2022BC4 + ldr r0, _08038ADC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038AD4: .4byte gUnknown_2022870 +_08038AD8: .4byte gUnknown_2022BC4 +_08038ADC: .4byte gUnknown_2023BC4 + thumb_func_end sub_8038AA8 + + thumb_func_start sub_8038AE0 +sub_8038AE0: @ 8038AE0 + push {lr} + ldr r2, _08038AF4 @ =gUnknown_2022870 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038AF4: .4byte gUnknown_2022870 + thumb_func_end sub_8038AE0 + + thumb_func_start sub_8038AF8 +sub_8038AF8: @ 8038AF8 + push {lr} + ldr r3, _08038B1C @ =gUnknown_2022870 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038B1C: .4byte gUnknown_2022870 + thumb_func_end sub_8038AF8 + + thumb_func_start sub_8038B20 +sub_8038B20: @ 8038B20 + push {r4,lr} + ldr r3, _08038B48 @ =gUnknown_202063C + ldr r2, _08038B4C @ =gUnknown_2023D44 + ldr r4, _08038B50 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08038B54 + bl sub_8036530 + b _08038B7E + .align 2, 0 +_08038B48: .4byte gUnknown_202063C +_08038B4C: .4byte gUnknown_2023D44 +_08038B50: .4byte gUnknown_2023BC4 +_08038B54: + ldr r1, _08038B84 @ =gUnknown_2024005 + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_804BE70 + ldr r1, _08038B88 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038B8C @ =sub_80361FC + str r1, [r0] +_08038B7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038B84: .4byte gUnknown_2024005 +_08038B88: .4byte gUnknown_3004FE0 +_08038B8C: .4byte sub_80361FC + thumb_func_end sub_8038B20 + + thumb_func_start sub_8038B90 +sub_8038B90: @ 8038B90 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8038B90 + + thumb_func_start sub_8038B9C +sub_8038B9C: @ 8038B9C + push {r4,lr} + ldr r4, _08038BD8 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _08038BB0 + movs r3, 0xC0 +_08038BB0: + ldr r2, _08038BDC @ =gUnknown_2022BC4 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl sub_80722F4 + bl sub_8036530 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038BD8: .4byte gUnknown_2023BC4 +_08038BDC: .4byte gUnknown_2022BC4 + thumb_func_end sub_8038B9C + + thumb_func_start sub_8038BE0 +sub_8038BE0: @ 8038BE0 + push {lr} + ldr r2, _08038C08 @ =gUnknown_2022BC4 + ldr r0, _08038C0C @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl sub_8071C60 + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038C08: .4byte gUnknown_2022BC4 +_08038C0C: .4byte gUnknown_2023BC4 + thumb_func_end sub_8038BE0 + + thumb_func_start sub_8038C10 +sub_8038C10: @ 8038C10 + push {lr} + ldr r1, _08038C40 @ =gUnknown_2023BCE + ldr r0, _08038C44 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08038C48 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl sub_8071E60 + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038C40: .4byte gUnknown_2023BCE +_08038C44: .4byte gUnknown_2023BC4 +_08038C48: .4byte gUnknown_202402C + thumb_func_end sub_8038C10 + + thumb_func_start sub_8038C4C +sub_8038C4C: @ 8038C4C + push {lr} + ldr r1, _08038C74 @ =gUnknown_2022BC4 + ldr r0, _08038C78 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80BC3A0 + ldr r2, _08038C7C @ =gUnknown_2023F4C + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08038C74: .4byte gUnknown_2022BC4 +_08038C78: .4byte gUnknown_2023BC4 +_08038C7C: .4byte gUnknown_2023F4C + thumb_func_end sub_8038C4C + + thumb_func_start sub_8038C80 +sub_8038C80: @ 8038C80 + push {r4-r6,lr} + ldr r5, _08038D60 @ =gUnknown_2023D44 + ldr r6, _08038D64 @ =gUnknown_2023BC4 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08038D68 @ =gUnknown_202063C + adds r0, r4 + bl sub_80750FC + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08038D6C @ =sub_8075590 + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08038D70 @ =sub_8038D90 + bl sub_8074A68 + ldr r0, _08038D74 @ =sub_8038DC4 + movs r1, 0x5 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08038D78 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldr r3, _08038D7C @ =gUnknown_2024018 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08038D42 + ldr r0, _08038D80 @ =gUnknown_2024000 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _08038D84 @ =sub_80491B0 + str r1, [r0] +_08038D42: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08038D88 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038D8C @ =nullsub_17 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08038D60: .4byte gUnknown_2023D44 +_08038D64: .4byte gUnknown_2023BC4 +_08038D68: .4byte gUnknown_202063C +_08038D6C: .4byte sub_8075590 +_08038D70: .4byte sub_8038D90 +_08038D74: .4byte sub_8038DC4 +_08038D78: .4byte gUnknown_3005090 +_08038D7C: .4byte gUnknown_2024018 +_08038D80: .4byte gUnknown_2024000 +_08038D84: .4byte sub_80491B0 +_08038D88: .4byte gUnknown_3004FE0 +_08038D8C: .4byte nullsub_17 + thumb_func_end sub_8038C80 + + thumb_func_start sub_8038D90 +sub_8038D90: @ 8038D90 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_803477C + ldrh r0, [r4, 0x38] + ldr r1, _08038DBC @ =0x000003ff + ands r1, r0 + ldrh r2, [r4, 0x4] + ldr r0, _08038DC0 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + bl sub_80077D8 + adds r0, r4, 0 + bl sub_8007280 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038DBC: .4byte 0x000003ff +_08038DC0: .4byte 0xfffffc00 + thumb_func_end sub_8038D90 + + thumb_func_start sub_8038DC4 +sub_8038DC4: @ 8038DC4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, _08038E1C @ =gUnknown_2023BC4 + ldrb r0, [r7] + mov r9, r0 + ldr r1, _08038E20 @ =gUnknown_3005090 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _08038DFE + ldr r0, _08038E24 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08038E30 +_08038DFE: + ldr r0, _08038E28 @ =gUnknown_2022BC4 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _08038E2C @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_8037A28 + b _08038E70 + .align 2, 0 +_08038E1C: .4byte gUnknown_2023BC4 +_08038E20: .4byte gUnknown_3005090 +_08038E24: .4byte gUnknown_2022B4C +_08038E28: .4byte gUnknown_2022BC4 +_08038E2C: .4byte gUnknown_2023BCE +_08038E30: + ldr r4, _08038E94 @ =gUnknown_2022BC4 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, _08038E98 @ =gUnknown_2023BCE + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8037A28 + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8037A28 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_08038E70: + ldr r1, _08038E9C @ =gUnknown_3004FE0 + ldr r2, _08038EA0 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08038EA4 @ =sub_8035DF0 + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl sub_8077508 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08038E94: .4byte gUnknown_2022BC4 +_08038E98: .4byte gUnknown_2023BCE +_08038E9C: .4byte gUnknown_3004FE0 +_08038EA0: .4byte gUnknown_2023BC4 +_08038EA4: .4byte sub_8035DF0 + thumb_func_end sub_8038DC4 + + thumb_func_start sub_8038EA8 +sub_8038EA8: @ 8038EA8 + push {r4-r7,lr} + ldr r1, _08038ED0 @ =gUnknown_2022BC4 + ldr r0, _08038ED4 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08038ED8 + adds r0, r2, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08038ED8 + bl sub_8036530 + b _08038FA2 + .align 2, 0 +_08038ED0: .4byte gUnknown_2022BC4 +_08038ED4: .4byte gUnknown_2023BC4 +_08038ED8: + ldr r4, _08038F30 @ =gUnknown_2024018 + ldr r0, [r4] + ldr r3, _08038F34 @ =gUnknown_2023BC4 + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _08038F38 @ =gUnknown_2022BC4 + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r3, 0 + cmp r0, 0 + beq _08038F44 + ldr r0, [r4] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r2, [r3, 0x1] + lsls r1, r2, 26 + lsrs r0, r1, 27 + cmp r0, 0x1 + bhi _08038F3C + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _08038FA2 + .align 2, 0 +_08038F30: .4byte gUnknown_2024018 +_08038F34: .4byte gUnknown_2023BC4 +_08038F38: .4byte gUnknown_2022BC4 +_08038F3C: + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_08038F44: + adds r5, r7, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _08038FA8 @ =gUnknown_2022BC8 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8048D14 + ldr r2, _08038FAC @ =gUnknown_2024000 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r6, _08038FB0 @ =gUnknown_2024018 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08038F96 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08038F96: + ldr r0, _08038FB4 @ =gUnknown_3004FE0 + ldrb r1, [r7] + lsls r1, 2 + adds r1, r0 + ldr r0, _08038FB8 @ =sub_8038FBC + str r0, [r1] +_08038FA2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08038FA8: .4byte gUnknown_2022BC8 +_08038FAC: .4byte gUnknown_2024000 +_08038FB0: .4byte gUnknown_2024018 +_08038FB4: .4byte gUnknown_3004FE0 +_08038FB8: .4byte sub_8038FBC + thumb_func_end sub_8038EA8 + + thumb_func_start sub_8038FBC +sub_8038FBC: @ 8038FBC + push {r4,lr} + ldr r4, _08038FFC @ =gUnknown_2024018 + ldr r0, [r4] + ldr r3, _08039000 @ =gUnknown_2023BC4 + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08038FF4 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl sub_8036530 +_08038FF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038FFC: .4byte gUnknown_2024018 +_08039000: .4byte gUnknown_2023BC4 + thumb_func_end sub_8038FBC + + thumb_func_start sub_8039004 +sub_8039004: @ 8039004 + push {lr} + ldr r0, _08039040 @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _08039044 @ =gUnknown_2023BC4 + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039036 + ldr r2, _08039048 @ =gUnknown_3005090 + ldr r0, _0803904C @ =gUnknown_2024000 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _08039050 @ =sub_80491B0 + str r1, [r0] +_08039036: + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08039040: .4byte gUnknown_2024018 +_08039044: .4byte gUnknown_2023BC4 +_08039048: .4byte gUnknown_3005090 +_0803904C: .4byte gUnknown_2024000 +_08039050: .4byte sub_80491B0 + thumb_func_end sub_8039004 + + thumb_func_start sub_8039054 +sub_8039054: @ 8039054 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8039054 + + thumb_func_start sub_8039060 +sub_8039060: @ 8039060 + push {r4,lr} + ldr r4, _080390B0 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_8075224 + lsls r0, 24 + cmp r0, 0 + beq _080390A6 + ldr r3, _080390B4 @ =gUnknown_202063C + ldr r0, _080390B8 @ =gUnknown_2023D44 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _080390BC @ =gUnknown_2022BC4 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8034BB4 +_080390A6: + bl sub_8036530 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080390B0: .4byte gUnknown_2023BC4 +_080390B4: .4byte gUnknown_202063C +_080390B8: .4byte gUnknown_2023D44 +_080390BC: .4byte gUnknown_2022BC4 + thumb_func_end sub_8039060 + + thumb_func_start sub_80390C0 +sub_80390C0: @ 80390C0 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _08039104 @ =gUnknown_2023BC4 + ldrb r0, [r6] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08039118 + ldr r5, _08039108 @ =gUnknown_2022BC4 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl sub_803401C + lsls r0, 24 + cmp r0, 0 + beq _0803910C + bl sub_8036530 + b _08039118 + .align 2, 0 +_08039104: .4byte gUnknown_2023BC4 +_08039108: .4byte gUnknown_2022BC4 +_0803910C: + ldr r0, _08039120 @ =gUnknown_3004FE0 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _08039124 @ =sub_8036500 + str r0, [r1] +_08039118: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08039120: .4byte gUnknown_3004FE0 +_08039124: .4byte sub_8036500 + thumb_func_end sub_80390C0 + + thumb_func_start sub_8039128 +sub_8039128: @ 8039128 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8039128 + + thumb_func_start sub_8039134 +sub_8039134: @ 8039134 + push {lr} + bl sub_8036530 + pop {r0} + bx r0 + thumb_func_end sub_8039134 + + thumb_func_start sub_8039140 +sub_8039140: @ 8039140 + push {lr} + ldr r0, _08039174 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x6 + ands r0, r1 + cmp r0, 0x2 + bne _0803916A + ldr r2, _08039178 @ =gUnknown_30030F0 + ldr r0, _0803917C @ =0x00000439 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _08039180 @ =gUnknown_3004F80 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl sub_8000544 +_0803916A: + bl sub_8036530 + pop {r0} + bx r0 + .align 2, 0 +_08039174: .4byte gUnknown_2022B4C +_08039178: .4byte gUnknown_30030F0 +_0803917C: .4byte 0x00000439 +_08039180: .4byte gUnknown_3004F80 + thumb_func_end sub_8039140 + + thumb_func_start nullsub_18 +nullsub_18: @ 8039184 + bx lr + thumb_func_end nullsub_18 + + .align 2, 0 @ Don't pad with nop. |