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_ai_switch_items.s |
first commit
Diffstat (limited to 'asm/battle_ai_switch_items.s')
-rw-r--r-- | asm/battle_ai_switch_items.s | 2654 |
1 files changed, 2654 insertions, 0 deletions
diff --git a/asm/battle_ai_switch_items.s b/asm/battle_ai_switch_items.s new file mode 100644 index 000000000..f0ac1b0ed --- /dev/null +++ b/asm/battle_ai_switch_items.s @@ -0,0 +1,2654 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8039188 +sub_8039188: @ 8039188 + push {lr} + ldr r1, _080391D4 @ =gUnknown_2023DFC + ldr r0, _080391D8 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080391E4 + ldr r0, _080391DC @ =gUnknown_2023E0C + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xF] + lsls r0, 28 + cmp r0, 0 + bne _080391E4 + adds r0, r2, 0 + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _080391E0 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl sub_800E848 + movs r0, 0x1 + b _080391E6 + .align 2, 0 +_080391D4: .4byte gUnknown_2023DFC +_080391D8: .4byte gUnknown_2023BC4 +_080391DC: .4byte gUnknown_2023E0C +_080391E0: .4byte gUnknown_2023FE8 +_080391E4: + movs r0, 0 +_080391E6: + pop {r1} + bx r1 + thumb_func_end sub_8039188 + + thumb_func_start sub_80391EC +sub_80391EC: @ 80391EC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08039204 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039234 + b _0803935C + .align 2, 0 +_08039204: .4byte gUnknown_2022B4C +_08039208: + ldr r0, _0803922C @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08039230 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl sub_800E848 + movs r0, 0x1 + b _0803935E + .align 2, 0 +_0803922C: .4byte gUnknown_2023BC4 +_08039230: .4byte gUnknown_2023FE8 +_08039234: + ldr r4, _0803936C @ =gUnknown_2023BE4 + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + beq _08039250 + b _0803935C +_08039250: + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r2, r0, 24 + movs r6, 0 + adds r7, r4, 0 + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r4, r0, r7 + movs r0, 0x20 + adds r0, r4 + mov r8, r0 +_0803926C: + lsls r1, r6, 1 + ldr r0, _08039370 @ =gUnknown_2023BC4 + ldrb r0, [r0] + muls r0, r5 + adds r1, r0 + adds r0, r7, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08039298 + ldrh r1, [r4] + mov r3, r8 + ldrb r2, [r3] + bl sub_801EFCC + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + bne _0803935C +_08039298: + adds r6, 0x1 + cmp r6, 0x3 + ble _0803926C + movs r6, 0 + ldr r0, _08039374 @ =gUnknown_202402C + mov r9, r0 +_080392A4: + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + mov r3, r9 + adds r4, r5, r3 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08039356 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _08039356 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08039356 + ldr r1, _08039378 @ =gUnknown_2023BCE + ldr r0, _08039370 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _08039356 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r2, r0, 24 + movs r4, 0 + mov r8, r5 + ldr r1, _0803936C @ =gUnknown_2023BE4 + movs r0, 0x58 + muls r0, r2 + adds r5, r0, r1 + adds r7, r5, 0 + adds r7, 0x20 +_08039310: + adds r1, r4, 0 + adds r1, 0xD + mov r0, r8 + add r0, r9 + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _08039350 + ldrh r1, [r5] + ldrb r2, [r7] + bl sub_801EFCC + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08039350 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _08039350 + b _08039208 +_08039350: + adds r4, 0x1 + cmp r4, 0x3 + ble _08039310 +_08039356: + adds r6, 0x1 + cmp r6, 0x5 + ble _080392A4 +_0803935C: + movs r0, 0 +_0803935E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803936C: .4byte gUnknown_2023BE4 +_08039370: .4byte gUnknown_2023BC4 +_08039374: .4byte gUnknown_202402C +_08039378: .4byte gUnknown_2023BCE + thumb_func_end sub_80391EC + + thumb_func_start sub_803937C +sub_803937C: @ 803937C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0x1 + bl sub_8039698 + lsls r0, 24 + cmp r0, 0 + beq _080393A8 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _080393A8 + b _08039588 +_080393A8: + ldr r1, _08039410 @ =gUnknown_2023DA0 + ldr r5, _08039414 @ =gUnknown_2023BC4 + ldrb r3, [r5] + lsls r0, r3, 1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, 0 + bne _080393BA + b _08039588 +_080393BA: + ldr r0, _08039418 @ =0x0000ffff + cmp r1, r0 + bne _080393C2 + b _08039588 +_080393C2: + ldr r2, _0803941C @ =gUnknown_8250C04 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080393D6 + b _08039588 +_080393D6: + ldr r0, _08039420 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039442 + mov r8, r3 + mov r0, r8 + bl sub_80751D8 + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _08039424 @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _08039428 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0803942C + ldrb r7, [r5] + b _08039446 + .align 2, 0 +_08039410: .4byte gUnknown_2023DA0 +_08039414: .4byte gUnknown_2023BC4 +_08039418: .4byte 0x0000ffff +_0803941C: .4byte gUnknown_8250C04 +_08039420: .4byte gUnknown_2022B4C +_08039424: .4byte gUnknown_2023D70 +_08039428: .4byte gUnknown_825E45C +_0803942C: + ldrb r0, [r5] + bl sub_80751D8 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + lsls r0, 24 + lsrs r7, r0, 24 + b _08039446 +_08039442: + adds r7, r3, 0 + mov r8, r7 +_08039446: + ldr r3, _08039468 @ =gUnknown_8250C04 + ldr r1, _0803946C @ =gUnknown_2023DA0 + ldr r2, _08039470 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x2] + adds r1, r2, 0 + cmp r0, 0xA + bne _08039474 + movs r0, 0x12 + b _08039486 + .align 2, 0 +_08039468: .4byte gUnknown_8250C04 +_0803946C: .4byte gUnknown_2023DA0 +_08039470: .4byte gUnknown_2023BC4 +_08039474: + cmp r0, 0xB + bne _0803947E + movs r2, 0xB + mov r10, r2 + b _08039488 +_0803947E: + cmp r0, 0xD + beq _08039484 + b _08039588 +_08039484: + movs r0, 0xA +_08039486: + mov r10, r0 +_08039488: + ldr r2, _0803949C @ =gUnknown_2023BE4 + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r10 + bne _080394CC + b _08039588 + .align 2, 0 +_0803949C: .4byte gUnknown_2023BE4 +_080394A0: + ldr r0, _080394C4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _080394C8 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl sub_800E848 + movs r0, 0x1 + b _0803958A + .align 2, 0 +_080394C4: .4byte gUnknown_2023BC4 +_080394C8: .4byte gUnknown_2023FE8 +_080394CC: + movs r6, 0 + ldr r2, _08039558 @ =gUnknown_8254784 + mov r9, r2 +_080394D2: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _0803955C @ =gUnknown_202402C + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08039582 + adds r0, r5, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _08039582 + adds r0, r5, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08039582 + ldr r1, _08039560 @ =gUnknown_2023BCE + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _08039582 + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _08039582 + ldr r0, _08039564 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r6, r0 + beq _08039582 + adds r0, r7, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r6, r0 + beq _08039582 + adds r0, r5, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + movs r1, 0x2E + bl sub_803FBE8 + cmp r0, 0 + beq _08039568 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x17] + b _08039572 + .align 2, 0 +_08039558: .4byte gUnknown_8254784 +_0803955C: .4byte gUnknown_202402C +_08039560: .4byte gUnknown_2023BCE +_08039564: .4byte gUnknown_2023FE8 +_08039568: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x16] +_08039572: + cmp r10, r0 + bne _08039582 + bl sub_8044EC8 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080394A0 +_08039582: + adds r6, 0x1 + cmp r6, 0x5 + ble _080394D2 +_08039588: + movs r0, 0 +_0803958A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803937C + + thumb_func_start sub_8039598 +sub_8039598: @ 8039598 + push {r4,r5,lr} + ldr r3, _080395F0 @ =gUnknown_2023BE4 + ldr r5, _080395F4 @ =gUnknown_2023BC4 + ldrb r4, [r5] + movs r0, 0x58 + adds r2, r4, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08039660 + adds r1, r2, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _08039660 + ldrh r0, [r1, 0x2C] + ldrh r1, [r1, 0x28] + lsrs r0, 1 + cmp r1, r0 + bcc _08039660 + ldr r1, _080395F8 @ =gUnknown_2023DA0 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + beq _080395DE + ldr r0, _080395FC @ =0x0000ffff + cmp r1, r0 + bne _08039600 +_080395DE: + bl sub_8044EC8 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08039600 + ldrb r0, [r5] + b _08039668 + .align 2, 0 +_080395F0: .4byte gUnknown_2023BE4 +_080395F4: .4byte gUnknown_2023BC4 +_080395F8: .4byte gUnknown_2023DA0 +_080395FC: .4byte 0x0000ffff +_08039600: + ldr r2, _0803962C @ =gUnknown_8250C04 + ldr r1, _08039630 @ =gUnknown_2023DA0 + ldr r4, _08039634 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08039638 + bl sub_8044EC8 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08039638 + ldrb r0, [r4] + b _08039668 + .align 2, 0 +_0803962C: .4byte gUnknown_8250C04 +_08039630: .4byte gUnknown_2023DA0 +_08039634: .4byte gUnknown_2023BC4 +_08039638: + movs r0, 0x8 + movs r1, 0x1 + bl sub_8039828 + lsls r0, 24 + cmp r0, 0 + bne _08039686 + movs r0, 0x4 + movs r1, 0x1 + bl sub_8039828 + lsls r0, 24 + cmp r0, 0 + bne _08039686 + bl sub_8044EC8 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _08039664 +_08039660: + movs r0, 0 + b _08039688 +_08039664: + ldr r0, _08039690 @ =gUnknown_2023BC4 + ldrb r0, [r0] +_08039668: + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08039694 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl sub_800E848 +_08039686: + movs r0, 0x1 +_08039688: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08039690: .4byte gUnknown_2023BC4 +_08039694: .4byte gUnknown_2023FE8 + thumb_func_end sub_8039598 + + thumb_func_start sub_8039698 +sub_8039698: @ 8039698 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _08039730 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _08039734 @ =gUnknown_825E45C + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08039720 + movs r4, 0 + ldr r6, _08039738 @ =gUnknown_2023BE4 + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r0, 0x20 + adds r0, r5 + mov r9, r0 +_080396D4: + lsls r1, r4, 1 + ldr r0, _0803973C @ =gUnknown_2023BC4 + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _0803971A + ldrh r1, [r5] + mov r3, r9 + ldrb r2, [r3] + bl sub_801EFCC + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _0803971A + mov r0, r8 + cmp r0, 0 + bne _08039744 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08039744 +_0803971A: + adds r4, 0x1 + cmp r4, 0x3 + ble _080396D4 +_08039720: + ldr r0, _08039740 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08039748 + b _080397C2 + .align 2, 0 +_08039730: .4byte gUnknown_2023D70 +_08039734: .4byte gUnknown_825E45C +_08039738: .4byte gUnknown_2023BE4 +_0803973C: .4byte gUnknown_2023BC4 +_08039740: .4byte gUnknown_2022B4C +_08039744: + movs r0, 0x1 + b _080397C4 +_08039748: + movs r0, 0x2 + bl sub_80751E8 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080397D0 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _080397D4 @ =gUnknown_825E45C + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080397C2 + movs r4, 0 + ldr r6, _080397D8 @ =gUnknown_2023BE4 + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r3, 0x20 + adds r3, r5 + mov r9, r3 +_08039776: + lsls r1, r4, 1 + ldr r0, _080397DC @ =gUnknown_2023BC4 + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _080397BC + ldrh r1, [r5] + mov r3, r9 + ldrb r2, [r3] + bl sub_801EFCC + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _080397BC + mov r0, r8 + cmp r0, 0 + bne _08039744 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08039744 +_080397BC: + adds r4, 0x1 + cmp r4, 0x3 + ble _08039776 +_080397C2: + movs r0, 0 +_080397C4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080397D0: .4byte gUnknown_2023D70 +_080397D4: .4byte gUnknown_825E45C +_080397D8: .4byte gUnknown_2023BE4 +_080397DC: .4byte gUnknown_2023BC4 + thumb_func_end sub_8039698 + + thumb_func_start sub_80397E0 +sub_80397E0: @ 80397E0 + push {r4,lr} + movs r4, 0 + ldr r1, _08039820 @ =gUnknown_2023BE4 + ldr r0, _08039824 @ =gUnknown_2023BC4 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x18 + adds r2, r0, r1 + movs r3, 0x7 +_080397F4: + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x6 + ble _0803980A + subs r1, 0x6 + lsls r0, r4, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 +_0803980A: + adds r2, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _080397F4 + movs r0, 0 + cmp r4, 0x3 + bls _0803981A + movs r0, 0x1 +_0803981A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08039820: .4byte gUnknown_2023BE4 +_08039824: .4byte gUnknown_2023BC4 + thumb_func_end sub_80397E0 + + thumb_func_start sub_8039828 +sub_8039828: @ 8039828 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + ldr r1, _080398B4 @ =gUnknown_2023DA0 + ldr r5, _080398B8 @ =gUnknown_2023BC4 + ldrb r3, [r5] + lsls r0, r3, 1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, 0 + bne _08039852 + b _08039A54 +_08039852: + ldr r0, _080398BC @ =0x0000ffff + cmp r1, r0 + bne _0803985A + b _08039A54 +_0803985A: + ldr r0, _080398C0 @ =gUnknown_2023DC0 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08039866 + b _08039A54 +_08039866: + ldr r2, _080398C4 @ =gUnknown_8250C04 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0803987A + b _08039A54 +_0803987A: + ldr r0, _080398C8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039918 + mov r9, r3 + mov r0, r9 + bl sub_80751D8 + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _080398CC @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _080398D0 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080398D4 + ldrb r5, [r5] + mov r10, r5 + b _0803991C + .align 2, 0 +_080398B4: .4byte gUnknown_2023DA0 +_080398B8: .4byte gUnknown_2023BC4 +_080398BC: .4byte 0x0000ffff +_080398C0: .4byte gUnknown_2023DC0 +_080398C4: .4byte gUnknown_8250C04 +_080398C8: .4byte gUnknown_2022B4C +_080398CC: .4byte gUnknown_2023D70 +_080398D0: .4byte gUnknown_825E45C +_080398D4: + ldrb r0, [r5] + bl sub_80751D8 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + b _0803991C +_080398EC: + ldr r0, _08039910 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08039914 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + strb r7, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl sub_800E848 + movs r0, 0x1 + b _08039A56 + .align 2, 0 +_08039910: .4byte gUnknown_2023BC4 +_08039914: .4byte gUnknown_2023FE8 +_08039918: + mov r9, r3 + mov r10, r9 +_0803991C: + movs r7, 0 +_0803991E: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080399B0 @ =gUnknown_202402C + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + bne _08039936 + b _08039A4C +_08039936: + adds r0, r5, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + bne _08039944 + b _08039A4C +_08039944: + adds r0, r5, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08039A4C + ldr r1, _080399B4 @ =gUnknown_2023BCE + mov r2, r9 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r7, r0 + beq _08039A4C + mov r2, r10 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r7, r0 + beq _08039A4C + ldr r0, _080399B8 @ =gUnknown_2023FE8 + ldr r1, [r0] + mov r2, r9 + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08039A4C + mov r2, r10 + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08039A4C + adds r0, r5, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + movs r1, 0x2E + bl sub_803FBE8 + cmp r0, 0 + beq _080399C0 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080399BC @ =gUnknown_8254784 + adds r0, r1 + ldrb r2, [r0, 0x17] + b _080399CC + .align 2, 0 +_080399B0: .4byte gUnknown_202402C +_080399B4: .4byte gUnknown_2023BCE +_080399B8: .4byte gUnknown_2023FE8 +_080399BC: .4byte gUnknown_8254784 +_080399C0: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r2, _08039A68 @ =gUnknown_8254784 + adds r0, r2 + ldrb r2, [r0, 0x16] +_080399CC: + ldr r1, _08039A6C @ =gUnknown_2023DA0 + ldr r5, _08039A70 @ =gUnknown_2023BC4 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r1, r4, 0 + bl sub_801EFCC + ldr r1, [sp] + ands r1, r0 + cmp r1, 0 + beq _08039A4C + ldr r1, _08039A74 @ =gUnknown_2023DC0 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + mov r9, r0 + movs r4, 0 + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + mov r8, r1 + ldr r1, _08039A78 @ =gUnknown_2023BE4 + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r5, r0, r1 + adds r6, r5, 0 + adds r6, 0x20 +_08039A0A: + ldr r0, _08039A7C @ =gUnknown_202402C + adds r1, r4, 0 + adds r1, 0xD + add r0, r8 + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _08039A46 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_801EFCC + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08039A46 + bl sub_8044EC8 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x4] + bl __modsi3 + cmp r0, 0 + bne _08039A46 + b _080398EC +_08039A46: + adds r4, 0x1 + cmp r4, 0x3 + ble _08039A0A +_08039A4C: + adds r7, 0x1 + cmp r7, 0x5 + bgt _08039A54 + b _0803991E +_08039A54: + movs r0, 0 +_08039A56: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08039A68: .4byte gUnknown_8254784 +_08039A6C: .4byte gUnknown_2023DA0 +_08039A70: .4byte gUnknown_2023BC4 +_08039A74: .4byte gUnknown_2023DC0 +_08039A78: .4byte gUnknown_2023BE4 +_08039A7C: .4byte gUnknown_202402C + thumb_func_end sub_8039828 + + thumb_func_start sub_8039A80 +sub_8039A80: @ 8039A80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r6, _08039B5C @ =gUnknown_2023BE4 + ldr r4, _08039B60 @ =gUnknown_2023BC4 + ldrb r2, [r4] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r6, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08039B64 @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + beq _08039AA6 + b _08039C74 +_08039AA6: + ldr r0, _08039B68 @ =gUnknown_2023DFC + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + lsls r0, 3 + ands r1, r0 + cmp r1, 0 + beq _08039ABA + b _08039C74 +_08039ABA: + str r1, [sp] + movs r0, 0xC + adds r1, r2, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08039AD2 + b _08039C74 +_08039AD2: + ldrb r1, [r4] + str r0, [sp] + movs r0, 0xC + movs r2, 0x47 + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08039AEA + b _08039C74 +_08039AEA: + str r0, [sp] + movs r0, 0xE + movs r1, 0 + movs r2, 0x2A + movs r3, 0 + bl sub_8019F18 + lsls r0, 24 + cmp r0, 0 + beq _08039B1C + ldrb r0, [r4] + muls r0, r5 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x8 + bne _08039B10 + b _08039C74 +_08039B10: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x8 + bne _08039B1C + b _08039C74 +_08039B1C: + movs r0, 0 + mov r8, r0 + ldr r0, _08039B6C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039B8E + ldr r4, _08039B60 @ =gUnknown_2023BC4 + ldrb r7, [r4] + adds r0, r7, 0 + bl sub_80751D8 + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _08039B70 @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _08039B74 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08039B78 + ldrb r6, [r4] + b _08039B94 + .align 2, 0 +_08039B5C: .4byte gUnknown_2023BE4 +_08039B60: .4byte gUnknown_2023BC4 +_08039B64: .4byte 0x0400e000 +_08039B68: .4byte gUnknown_2023DFC +_08039B6C: .4byte gUnknown_2022B4C +_08039B70: .4byte gUnknown_2023D70 +_08039B74: .4byte gUnknown_825E45C +_08039B78: + ldrb r0, [r4] + bl sub_80751D8 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + lsls r0, 24 + lsrs r6, r0, 24 + b _08039B94 +_08039B8E: + ldr r0, _08039C64 @ =gUnknown_2023BC4 + ldrb r6, [r0] + adds r7, r6, 0 +_08039B94: + movs r5, 0 +_08039B96: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08039C68 @ =gUnknown_202402C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08039BFA + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _08039BFA + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08039BFA + ldr r1, _08039C6C @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08039BFA + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08039BFA + ldr r0, _08039C70 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r0, r7, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _08039BFA + adds r0, r6, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _08039BFA + movs r0, 0x1 + add r8, r0 +_08039BFA: + adds r5, 0x1 + cmp r5, 0x5 + ble _08039B96 + mov r0, r8 + cmp r0, 0 + beq _08039C74 + bl sub_8039188 + lsls r0, 24 + cmp r0, 0 + bne _08039C60 + bl sub_80391EC + lsls r0, 24 + cmp r0, 0 + bne _08039C60 + bl sub_803937C + lsls r0, 24 + cmp r0, 0 + bne _08039C60 + bl sub_8039598 + lsls r0, 24 + cmp r0, 0 + bne _08039C60 + movs r0, 0 + bl sub_8039698 + lsls r0, 24 + cmp r0, 0 + bne _08039C74 + bl sub_80397E0 + lsls r0, 24 + cmp r0, 0 + bne _08039C74 + movs r0, 0x8 + movs r1, 0x2 + bl sub_8039828 + lsls r0, 24 + cmp r0, 0 + bne _08039C60 + movs r0, 0x4 + movs r1, 0x3 + bl sub_8039828 + lsls r0, 24 + cmp r0, 0 + beq _08039C74 +_08039C60: + movs r0, 0x1 + b _08039C76 + .align 2, 0 +_08039C64: .4byte gUnknown_2023BC4 +_08039C68: .4byte gUnknown_202402C +_08039C6C: .4byte gUnknown_2023BCE +_08039C70: .4byte gUnknown_2023FE8 +_08039C74: + movs r0, 0 +_08039C76: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8039A80 + + thumb_func_start sub_8039C84 +sub_8039C84: @ 8039C84 + push {r4-r6,lr} + ldr r5, _08039CDC @ =gUnknown_2022B4C + ldr r0, [r5] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08039C94 + b _08039D96 +_08039C94: + bl sub_8039A80 + lsls r0, 24 + cmp r0, 0 + beq _08039D8C + ldr r0, _08039CE0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08039CE4 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + ldrb r0, [r0] + cmp r0, 0x6 + bne _08039D5A + bl sub_8039E3C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _08039D44 + ldr r0, [r5] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08039CE8 + movs r0, 0x1 + bl sub_80751E8 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + b _08039CFC + .align 2, 0 +_08039CDC: .4byte gUnknown_2022B4C +_08039CE0: .4byte gUnknown_2023BC4 +_08039CE4: .4byte gUnknown_2023FE8 +_08039CE8: + 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 +_08039CFC: + movs r4, 0 +_08039CFE: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08039D7C @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08039D3E + ldr r1, _08039D80 @ =gUnknown_2023BCE + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08039D3E + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08039D3E + ldr r0, _08039D84 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r0, r6, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r4, r0 + beq _08039D3E + adds r0, r5, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r4, r0 + bne _08039D44 +_08039D3E: + adds r4, 0x1 + cmp r4, 0x5 + ble _08039CFE +_08039D44: + ldr r0, _08039D88 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08039D84 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r0, r1 + adds r0, 0x92 + strb r4, [r0] +_08039D5A: + ldr r4, _08039D88 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80751D8 + ldrb r2, [r4] + ldr r1, _08039D84 @ =gUnknown_2023FE8 + ldr r1, [r1] + adds r2, r1 + adds r2, 0x5C + lsls r0, 24 + lsrs r0, 25 + adds r0, r1 + adds r0, 0x92 + ldrb r0, [r0] + strb r0, [r2] + b _08039DA8 + .align 2, 0 +_08039D7C: .4byte gUnknown_202402C +_08039D80: .4byte gUnknown_2023BCE +_08039D84: .4byte gUnknown_2023FE8 +_08039D88: .4byte gUnknown_2023BC4 +_08039D8C: + bl sub_803A1F4 + lsls r0, 24 + cmp r0, 0 + bne _08039DA8 +_08039D96: + ldr r0, _08039DB0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + movs r2, 0x1 + eors r2, r0 + lsls r2, 8 + movs r0, 0x1 + movs r1, 0 + bl sub_800E848 +_08039DA8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08039DB0: .4byte gUnknown_2023BC4 + thumb_func_end sub_8039C84 + + thumb_func_start sub_8039DB4 +sub_8039DB4: @ 8039DB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r7, 0 + ldr r0, _08039E38 @ =gUnknown_824F050 + mov r10, r0 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08039E26 + mov r5, r10 +_08039DE2: + ldrb r0, [r5] + cmp r0, 0xFE + beq _08039E18 + ldr r1, [sp] + cmp r0, r1 + bne _08039E18 + ldrb r4, [r5, 0x1] + cmp r4, r9 + bne _08039E02 + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08039E02: + cmp r4, r8 + bne _08039E18 + cmp r9, r8 + beq _08039E18 + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08039E18: + adds r5, 0x3 + adds r7, 0x3 + mov r1, r10 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08039DE2 +_08039E26: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08039E38: .4byte gUnknown_824F050 + thumb_func_end sub_8039DB4 + + thumb_func_start sub_8039E3C +sub_8039E3C: @ 8039E3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, _08039E98 @ =gUnknown_2023BC4 + ldrb r2, [r4] + ldr r0, _08039E9C @ =gUnknown_2023FE8 + ldr r0, [r0] + adds r0, r2, r0 + adds r1, r0, 0 + adds r1, 0x5C + ldrb r0, [r1] + cmp r0, 0x6 + beq _08039E5E + b _0803A160 +_08039E5E: + ldr r0, _08039EA0 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08039EF8 + str r2, [sp, 0xC] + adds r0, r2, 0 + bl sub_80751D8 + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _08039EA4 @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _08039EA8 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08039EAC + ldrb r4, [r4] + str r4, [sp, 0x10] + b _08039EC2 + .align 2, 0 +_08039E98: .4byte gUnknown_2023BC4 +_08039E9C: .4byte gUnknown_2023FE8 +_08039EA0: .4byte gUnknown_2022B4C +_08039EA4: .4byte gUnknown_2023D70 +_08039EA8: .4byte gUnknown_825E45C +_08039EAC: + ldrb r0, [r4] + bl sub_80751D8 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] +_08039EC2: + bl sub_8044EC8 + movs r3, 0x2 + ands r0, r3 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _08039EF0 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _08039EF4 @ =gUnknown_825E45C + mov r4, r10 + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08039F0A + eors r4, r3 + lsls r0, r4, 24 + lsrs r0, 24 + mov r10, r0 + b _08039F0A + .align 2, 0 +_08039EF0: .4byte gUnknown_2023D70 +_08039EF4: .4byte gUnknown_825E45C +_08039EF8: + movs r0, 0 + bl sub_80751E8 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r4, [r4] + str r4, [sp, 0x10] + str r4, [sp, 0xC] +_08039F0A: + movs r0, 0 + mov r9, r0 + mov r1, sp + str r1, [sp, 0x14] +_08039F12: + movs r2, 0 + str r2, [sp, 0x4] + movs r4, 0x6 + str r4, [sp, 0x8] + movs r7, 0 + ldr r0, _08039FD8 @ =gUnknown_825E45C + mov r8, r0 +_08039F20: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08039FDC @ =gUnknown_202402C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08039FF0 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _08039FF0 + mov r1, r8 + ldr r0, [r1] + mov r2, r9 + ands r0, r2 + cmp r0, 0 + bne _08039FF0 + ldr r1, _08039FE0 @ =gUnknown_2023BCE + ldr r4, [sp, 0xC] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08039FF0 + ldr r2, [sp, 0x10] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08039FF0 + ldr r0, _08039FE4 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r0, r4, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08039FF0 + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08039FF0 + ldr r1, _08039FE8 @ =gUnknown_8254784 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x6] + ldrb r6, [r0, 0x7] + movs r0, 0xA + ldr r4, [sp, 0x14] + strb r0, [r4] + movs r0, 0x58 + mov r4, r10 + muls r4, r0 + ldr r0, _08039FEC @ =gUnknown_2023BE4 + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8039DB4 + adds r4, 0x22 + ldrb r0, [r4] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8039DB4 + ldr r2, [sp, 0x4] + ldr r1, [sp, 0x14] + ldrb r1, [r1] + cmp r2, r1 + bcs _08039FFE + ldr r2, [sp, 0x14] + ldrb r2, [r2] + str r2, [sp, 0x4] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + b _08039FFE + .align 2, 0 +_08039FD8: .4byte gUnknown_825E45C +_08039FDC: .4byte gUnknown_202402C +_08039FE0: .4byte gUnknown_2023BCE +_08039FE4: .4byte gUnknown_2023FE8 +_08039FE8: .4byte gUnknown_8254784 +_08039FEC: .4byte gUnknown_2023BE4 +_08039FF0: + mov r4, r8 + ldr r0, [r4] + mov r1, r9 + orrs r1, r0 + lsls r0, r1, 24 + lsrs r0, 24 + mov r9, r0 +_08039FFE: + movs r2, 0x4 + add r8, r2 + adds r7, 0x1 + cmp r7, 0x5 + ble _08039F20 + ldr r4, [sp, 0x8] + cmp r4, 0x6 + beq _0803A06C + movs r7, 0 + movs r0, 0x64 + adds r5, r4, 0 + muls r5, r0 + ldr r6, _0803A060 @ =gUnknown_202402C +_0803A018: + adds r1, r7, 0 + adds r1, 0xD + adds r0, r5, r6 + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _0803A03E + ldr r0, _0803A064 @ =gUnknown_2023BC4 + ldrb r1, [r0] + adds r0, r4, 0 + mov r2, r10 + bl sub_801EDF4 + movs r1, 0x2 + ands r1, r0 + cmp r1, 0 + bne _0803A044 +_0803A03E: + adds r7, 0x1 + cmp r7, 0x3 + ble _0803A018 +_0803A044: + cmp r7, 0x4 + beq _0803A04A + b _0803A15E +_0803A04A: + ldr r1, [sp, 0x8] + lsls r0, r1, 2 + ldr r2, _0803A068 @ =gUnknown_825E45C + adds r0, r2 + ldr r0, [r0] + mov r4, r9 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r0, 24 + b _0803A06E + .align 2, 0 +_0803A060: .4byte gUnknown_202402C +_0803A064: .4byte gUnknown_2023BC4 +_0803A068: .4byte gUnknown_825E45C +_0803A06C: + movs r0, 0x3F +_0803A06E: + mov r9, r0 + mov r1, r9 + cmp r1, 0x3F + beq _0803A078 + b _08039F12 +_0803A078: + ldr r0, _0803A170 @ =gUnknown_2023F50 + movs r1, 0 + strh r1, [r0] + ldr r0, _0803A174 @ =gUnknown_2023FE8 + ldr r0, [r0] + strb r1, [r0, 0x13] + ldr r0, _0803A178 @ =gUnknown_2023FC4 + movs r2, 0x1 + strb r2, [r0, 0xE] + ldr r0, _0803A17C @ =gUnknown_2023DCC + strb r1, [r0] + ldr r0, _0803A180 @ =gUnknown_2023D71 + strb r2, [r0] + movs r2, 0 + str r2, [sp, 0x4] + movs r4, 0x6 + str r4, [sp, 0x8] + movs r7, 0 +_0803A09C: + movs r0, 0x64 + adds r6, r7, 0 + muls r6, r0 + ldr r0, _0803A184 @ =gUnknown_202402C + adds r4, r6, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + adds r1, r7, 0x1 + str r1, [sp, 0x18] + cmp r0, 0 + beq _0803A158 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _0803A158 + ldr r1, _0803A188 @ =gUnknown_2023BCE + ldr r2, [sp, 0xC] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _0803A158 + ldr r4, [sp, 0x10] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _0803A158 + ldr r0, _0803A174 @ =gUnknown_2023FE8 + ldr r1, [r0] + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _0803A158 + adds r0, r4, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _0803A158 + movs r5, 0 + mov r9, r6 + ldr r0, _0803A18C @ =gUnknown_2023D50 + mov r8, r0 + ldr r6, _0803A190 @ =gUnknown_2023BC4 +_0803A100: + adds r1, r5, 0 + adds r1, 0xD + ldr r0, _0803A184 @ =gUnknown_202402C + add r0, r9 + bl sub_803FBE8 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + mov r1, r8 + str r0, [r1] + cmp r4, 0 + beq _0803A13C + ldr r0, _0803A194 @ =gUnknown_8250C04 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + beq _0803A13C + ldrb r0, [r6] + mov r1, r10 + bl sub_801E68C + ldrb r1, [r6] + adds r0, r4, 0 + mov r2, r10 + bl sub_801EDF4 +_0803A13C: + mov r2, r8 + ldr r0, [r2] + ldr r4, [sp, 0x4] + cmp r4, r0 + bge _0803A152 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_0803A152: + adds r5, 0x1 + cmp r5, 0x3 + ble _0803A100 +_0803A158: + ldr r7, [sp, 0x18] + cmp r7, 0x5 + ble _0803A09C +_0803A15E: + ldr r0, [sp, 0x8] +_0803A160: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803A170: .4byte gUnknown_2023F50 +_0803A174: .4byte gUnknown_2023FE8 +_0803A178: .4byte gUnknown_2023FC4 +_0803A17C: .4byte gUnknown_2023DCC +_0803A180: .4byte gUnknown_2023D71 +_0803A184: .4byte gUnknown_202402C +_0803A188: .4byte gUnknown_2023BCE +_0803A18C: .4byte gUnknown_2023D50 +_0803A190: .4byte gUnknown_2023BC4 +_0803A194: .4byte gUnknown_8250C04 + thumb_func_end sub_8039E3C + + thumb_func_start sub_803A198 +sub_803A198: @ 803A198 + push {r4,lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bne _0803A1A8 + movs r0, 0x1 + b _0803A1EE +_0803A1A8: + ldrb r1, [r2, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803A1B6 + movs r0, 0x2 + b _0803A1EE +_0803A1B6: + ldrb r4, [r2, 0x3] + movs r3, 0x3F + adds r0, r3, 0 + ands r0, r4 + cmp r0, 0 + beq _0803A1C6 + movs r0, 0x3 + b _0803A1EE +_0803A1C6: + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0803A1DC + ldrb r0, [r2, 0x1] + cmp r0, 0 + bne _0803A1DC + ldrb r0, [r2, 0x2] + cmp r0, 0 + beq _0803A1E0 +_0803A1DC: + movs r0, 0x4 + b _0803A1EE +_0803A1E0: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + bne _0803A1EC + movs r0, 0x6 + b _0803A1EE +_0803A1EC: + movs r0, 0x5 +_0803A1EE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_803A198 + + thumb_func_start sub_803A1F4 +sub_803A1F4: @ 803A1F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r10, r0 + movs r7, 0 + movs r1, 0 + mov r8, r1 +_0803A20A: + movs r0, 0x64 + mov r1, r8 + muls r1, r0 + ldr r0, _0803A2A8 @ =gUnknown_202402C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + cmp r0, 0 + beq _0803A246 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + cmp r0, 0 + beq _0803A246 + adds r0, r4, 0 + movs r1, 0x41 + bl sub_803FBE8 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0803A246 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_0803A246: + movs r2, 0x1 + add r8, r2 + mov r0, r8 + cmp r0, 0x5 + ble _0803A20A + movs r1, 0 + mov r8, r1 +_0803A254: + ldr r1, _0803A2AC @ =gUnknown_2023FF4 + mov r2, r8 + cmp r2, 0 + beq _0803A26E + ldr r0, [r1] + ldr r0, [r0, 0x18] + adds r0, 0x2C + ldrb r0, [r0] + subs r0, r2 + adds r0, 0x1 + cmp r10, r0 + ble _0803A26E + b _0803A644 +_0803A26E: + ldr r0, [r1] + ldr r0, [r0, 0x18] + mov r2, r8 + lsls r1, r2, 1 + adds r0, 0x24 + adds r0, r1 + ldrh r0, [r0] + mov r9, r0 + str r1, [sp] + cmp r0, 0 + bne _0803A286 + b _0803A644 +_0803A286: + ldr r1, _0803A2B0 @ =gUnknown_82528BC + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + cmp r1, 0 + bne _0803A296 + b _0803A644 +_0803A296: + mov r0, r9 + cmp r0, 0xAF + bne _0803A2BC + ldr r0, _0803A2B4 @ =gUnknown_3005008 + ldr r0, [r0] + ldr r1, _0803A2B8 @ =0x00003108 + adds r5, r0, r1 + b _0803A2BE + .align 2, 0 +_0803A2A8: .4byte gUnknown_202402C +_0803A2AC: .4byte gUnknown_2023FF4 +_0803A2B0: .4byte gUnknown_82528BC +_0803A2B4: .4byte gUnknown_3005008 +_0803A2B8: .4byte 0x00003108 +_0803A2BC: + adds r5, r1, 0 +_0803A2BE: + mov r2, r9 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r5, 0 + bl sub_803A198 + ldr r4, _0803A2F8 @ =gUnknown_2023BC4 + ldrb r1, [r4] + lsrs r1, 1 + ldr r3, _0803A2FC @ =gUnknown_2023FE8 + ldr r2, [r3] + adds r1, r2 + adds r1, 0xC4 + strb r0, [r1] + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x5 + bls _0803A2EE + b _0803A5F8 +_0803A2EE: + lsls r0, 2 + ldr r1, _0803A300 @ =_0803A304 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803A2F8: .4byte gUnknown_2023BC4 +_0803A2FC: .4byte gUnknown_2023FE8 +_0803A300: .4byte _0803A304 + .align 2, 0 +_0803A304: + .4byte _0803A31C + .4byte _0803A348 + .4byte _0803A390 + .4byte _0803A4E8 + .4byte _0803A5C8 + .4byte _0803A650 +_0803A31C: + ldr r2, _0803A340 @ =gUnknown_2023BE4 + ldr r0, _0803A344 @ =gUnknown_2023BC4 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + lsrs r1, 2 + cmp r0, r1 + bcc _0803A334 + b _0803A5F8 +_0803A334: + cmp r0, 0 + bne _0803A33A + b _0803A5F8 +_0803A33A: + movs r7, 0x1 + b _0803A5FC + .align 2, 0 +_0803A340: .4byte gUnknown_2023BE4 +_0803A344: .4byte gUnknown_2023BC4 +_0803A348: + mov r0, r9 + movs r1, 0x4 + movs r2, 0x4 + bl sub_8042C08 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0803A35C + b _0803A5F8 +_0803A35C: + ldr r2, _0803A388 @ =gUnknown_2023BE4 + ldr r0, _0803A38C @ =gUnknown_2023BC4 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + ldrh r2, [r1, 0x28] + cmp r2, 0 + bne _0803A370 + b _0803A5F8 +_0803A370: + ldrh r3, [r1, 0x2C] + lsrs r0, r3, 2 + cmp r2, r0 + bcc _0803A33A + adds r0, r2, 0 + subs r0, r3, r0 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bgt _0803A386 + b _0803A5F8 +_0803A386: + b _0803A33A + .align 2, 0 +_0803A388: .4byte gUnknown_2023BE4 +_0803A38C: .4byte gUnknown_2023BC4 +_0803A390: + ldr r3, _0803A4DC @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsrs r0, 1 + ldr r2, _0803A4E0 @ =gUnknown_2023FE8 + ldr r1, [r2] + adds r0, r1 + adds r0, 0xC6 + movs r1, 0 + strb r1, [r0] + ldrb r1, [r5, 0x3] + movs r6, 0x20 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0803A3D4 + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0803A3D4 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0803A3D4: + ldrb r1, [r5, 0x3] + movs r6, 0x10 + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0803A40E + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0803A3FE + movs r0, 0x80 + ands r1, r0 + cmp r1, 0 + beq _0803A40E +_0803A3FE: + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0803A40E: + ldrb r1, [r5, 0x3] + movs r6, 0x8 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0803A440 + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0803A440 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0803A440: + ldrb r1, [r5, 0x3] + movs r6, 0x4 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803A472 + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0803A472 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0803A472: + ldrb r1, [r5, 0x3] + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803A4A4 + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0803A4A4 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0803A4A4: + ldrb r1, [r5, 0x3] + movs r4, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0803A4B2 + b _0803A5F8 +_0803A4B2: + ldr r1, _0803A4E4 @ =gUnknown_2023BE4 + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0803A4CA + b _0803A5F8 +_0803A4CA: + lsrs r1, r3, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + b _0803A33A + .align 2, 0 +_0803A4DC: .4byte gUnknown_2023BC4 +_0803A4E0: .4byte gUnknown_2023FE8 +_0803A4E4: .4byte gUnknown_2023BE4 +_0803A4E8: + ldr r4, _0803A5BC @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsrs r0, 1 + ldr r3, _0803A5C0 @ =gUnknown_2023FE8 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + movs r1, 0 + strb r1, [r0] + ldr r1, _0803A5C4 @ =gUnknown_2023E0C + ldrb r2, [r4] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _0803A5F8 + ldrb r1, [r5] + movs r6, 0xF + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0803A528 + lsrs r2, 1 + ldr r0, [r3] + adds r2, r0 + adds r2, 0xC6 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_0803A528: + ldrb r1, [r5, 0x1] + movs r7, 0xF0 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0803A546 + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_0803A546: + ldrb r1, [r5, 0x1] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0803A562 + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0803A562: + ldrb r1, [r5, 0x2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0803A57E + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_0803A57E: + ldrb r1, [r5, 0x2] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0803A59A + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] +_0803A59A: + ldrb r1, [r5] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + bne _0803A5A6 + b _0803A33A +_0803A5A6: + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _0803A33A + .align 2, 0 +_0803A5BC: .4byte gUnknown_2023BC4 +_0803A5C0: .4byte gUnknown_2023FE8 +_0803A5C4: .4byte gUnknown_2023E0C +_0803A5C8: + ldr r4, _0803A630 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _0803A634 @ =gUnknown_2023E0C + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _0803A5F8 + ldr r0, _0803A638 @ =gUnknown_2023DE4 + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0803A5F8 + b _0803A33A +_0803A5F8: + cmp r7, 0 + beq _0803A644 +_0803A5FC: + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_800E848 + ldr r0, _0803A630 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsrs r0, 1 + ldr r1, _0803A63C @ =gUnknown_2023FE8 + ldr r1, [r1] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC0 + mov r1, r9 + strb r1, [r0] + ldr r0, _0803A640 @ =gUnknown_2023FF4 + ldr r0, [r0] + ldr r0, [r0, 0x18] + adds r0, 0x24 + ldr r2, [sp] + adds r0, r2 + movs r1, 0 + strh r1, [r0] + adds r0, r7, 0 + b _0803A652 + .align 2, 0 +_0803A630: .4byte gUnknown_2023BC4 +_0803A634: .4byte gUnknown_2023E0C +_0803A638: .4byte gUnknown_2023DE4 +_0803A63C: .4byte gUnknown_2023FE8 +_0803A640: .4byte gUnknown_2023FF4 +_0803A644: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + bgt _0803A650 + b _0803A254 +_0803A650: + movs r0, 0 +_0803A652: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803A1F4 + + .align 2, 0 @ Don't pad with nop. |