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/pokedex_screen.s |
first commit
Diffstat (limited to 'asm/pokedex_screen.s')
-rw-r--r-- | asm/pokedex_screen.s | 9015 |
1 files changed, 9015 insertions, 0 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s new file mode 100644 index 000000000..c96b634fe --- /dev/null +++ b/asm/pokedex_screen.s @@ -0,0 +1,9015 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_81024C0 +sub_81024C0: @ 81024C0 + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_81024C0 + + thumb_func_start sub_81024D4 +sub_81024D4: @ 81024D4 + push {lr} + ldr r0, _08102500 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081024EC + bl sub_8001960 + lsls r0, 24 + cmp r0, 0 + beq _08102504 +_081024EC: + bl sub_8077578 + bl sub_8002DE8 + bl sub_8006B5C + bl sub_8006BA8 + b _08102508 + .align 2, 0 +_08102500: .4byte gUnknown_2037AB8 +_08102504: + bl sub_80704D0 +_08102508: + pop {r0} + bx r0 + thumb_func_end sub_81024D4 + + thumb_func_start sub_810250C +sub_810250C: @ 810250C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + bl sub_806E25C + lsls r0, 24 + lsrs r6, r0, 24 + bl m4aSoundVSyncOff + movs r0, 0 + bl sub_80006F4 + bl sub_8070528 + bl sub_8006B10 + bl sub_80773BC + bl sub_8087E64 + movs r0, 0x1 + bl sub_8001618 + ldr r1, _08102598 @ =gUnknown_8451EBC + movs r0, 0 + movs r2, 0x4 + bl sub_8001658 + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl sub_8002B9C + adds r1, r0, 0 + movs r0, 0x3 + bl sub_8001FA0 + adds r0, r4, 0 + bl sub_8002B9C + adds r1, r0, 0 + movs r0, 0x2 + bl sub_8001FA0 + adds r0, r4, 0 + bl sub_8002B9C + adds r1, r0, 0 + movs r0, 0x1 + bl sub_8001FA0 + adds r0, r4, 0 + bl sub_8002B9C + adds r1, r0, 0 + movs r0, 0 + bl sub_8001FA0 + cmp r6, 0 + beq _081025A0 + ldr r1, _0810259C @ =gUnknown_84403AC + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + adds r2, r4, 0 + movs r3, 0 + bl sub_80F696C + b _081025AE + .align 2, 0 +_08102598: .4byte gUnknown_8451EBC +_0810259C: .4byte gUnknown_84403AC +_081025A0: + ldr r1, _081026A4 @ =gUnknown_8440274 + str r6, [sp] + movs r0, 0x3 + adds r2, r4, 0 + movs r3, 0 + bl sub_80F696C +_081025AE: + ldr r0, _081026A8 @ =gUnknown_8451ECC + bl sub_8003B24 + bl sub_8002C28 + bl m4aSoundVSyncOn + ldr r0, _081026AC @ =sub_81024C0 + bl sub_80006F4 + movs r0, 0x1 + bl sub_8000B68 + ldr r0, _081026B0 @ =sub_810287C + movs r1, 0 + bl sub_807741C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _081026B4 @ =gUnknown_203ACF0 + movs r0, 0x70 + bl sub_8002B9C + str r0, [r5] + ldr r1, _081026B8 @ =gUnknown_8451EE4 + movs r2, 0x70 + bl memcpy + ldr r0, [r5] + strb r4, [r0] + movs r0, 0xC1 + lsls r0, 4 + bl sub_8002B9C + ldr r1, [r5] + str r0, [r1, 0x44] + movs r0, 0 + movs r1, 0x1 + bl sub_8104BBC + ldr r1, [r5] + adds r1, 0x6A + strh r0, [r1] + movs r0, 0x1 + movs r1, 0x1 + bl sub_8104BBC + ldr r1, [r5] + adds r1, 0x6C + strh r0, [r1] + movs r0, 0 + movs r1, 0 + bl sub_8104BBC + ldr r1, [r5] + adds r1, 0x66 + strh r0, [r1] + movs r0, 0x1 + movs r1, 0 + bl sub_8104BBC + ldr r1, [r5] + adds r1, 0x68 + strh r0, [r1] + movs r0, 0x80 + bl sub_8072474 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + ldr r2, _081026BC @ =gUnknown_2037AB8 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + cmp r6, 0 + beq _081026C4 + ldr r0, _081026C0 @ =gUnknown_84406E0 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl sub_80703EC + b _081026D0 + .align 2, 0 +_081026A4: .4byte gUnknown_8440274 +_081026A8: .4byte gUnknown_8451ECC +_081026AC: .4byte sub_81024C0 +_081026B0: .4byte sub_810287C +_081026B4: .4byte gUnknown_203ACF0 +_081026B8: .4byte gUnknown_8451EE4 +_081026BC: .4byte gUnknown_2037AB8 +_081026C0: .4byte gUnknown_84406E0 +_081026C4: + ldr r0, _08102758 @ =gUnknown_84404C8 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl sub_80703EC +_081026D0: + movs r4, 0x20 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r4, [sp] + str r4, [sp, 0x4] + movs r5, 0x11 + str r5, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r4, [sp] + movs r0, 0x2 + mov r8, r0 + str r0, [sp, 0x4] + movs r6, 0xF + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r4, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002554 + str r4, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0x12 + bl sub_8002554 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08102758: .4byte gUnknown_84404C8 + thumb_func_end sub_810250C + + thumb_func_start sub_810275C +sub_810275C: @ 810275C + push {lr} + bl sub_810250C + movs r1, 0xC0 + lsls r1, 7 + movs r0, 0 + bl sub_8000B14 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0 + bl sub_8000A38 + ldr r0, _08102794 @ =sub_81024D4 + bl sub_8000544 + movs r0, 0x4 + bl sub_812B1F0 + pop {r0} + bx r0 + .align 2, 0 +_08102794: .4byte sub_81024D4 + thumb_func_end sub_810275C + + thumb_func_start sub_8102798 +sub_8102798: @ 8102798 + push {r4,lr} + sub sp, 0x4 + ldr r0, _081027B4 @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r4, r0, r1 + ldrb r1, [r4] + cmp r1, 0x1 + beq _081027D8 + cmp r1, 0x1 + bgt _081027B8 + cmp r1, 0 + beq _081027BE + b _0810284A + .align 2, 0 +_081027B4: .4byte gUnknown_30030F0 +_081027B8: + cmp r1, 0x2 + beq _081027F2 + b _0810284A +_081027BE: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldrb r0, [r4] + adds r0, 0x1 +_081027D2: + strb r0, [r4] +_081027D4: + movs r0, 0 + b _0810284C +_081027D8: + ldr r0, _081027E8 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081027EC + movs r0, 0x2 + b _081027D2 + .align 2, 0 +_081027E8: .4byte gUnknown_2037AB8 +_081027EC: + bl sub_80704D0 + b _081027D4 +_081027F2: + ldr r4, _08102854 @ =gUnknown_203ACF0 + ldr r0, [r4] + ldr r0, [r0, 0x44] + cmp r0, 0 + beq _08102800 + bl sub_8002BC4 +_08102800: + ldr r0, [r4] + cmp r0, 0 + beq _0810280A + bl sub_8002BC4 +_0810280A: + bl sub_8003ECC + movs r0, 0 + bl sub_8002008 + cmp r0, 0 + beq _0810281C + bl sub_8002BC4 +_0810281C: + movs r0, 0x1 + bl sub_8002008 + cmp r0, 0 + beq _0810282A + bl sub_8002BC4 +_0810282A: + movs r0, 0x2 + bl sub_8002008 + cmp r0, 0 + beq _08102838 + bl sub_8002BC4 +_08102838: + movs r0, 0x3 + bl sub_8002008 + cmp r0, 0 + beq _08102846 + bl sub_8002BC4 +_08102846: + bl sub_807249C +_0810284A: + movs r0, 0x1 +_0810284C: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102854: .4byte gUnknown_203ACF0 + thumb_func_end sub_8102798 + + thumb_func_start sub_8102858 +sub_8102858: @ 8102858 + push {lr} + bl sub_8102798 + lsls r0, 24 + cmp r0, 0 + beq _08102874 + movs r1, 0xC0 + lsls r1, 7 + movs r0, 0 + bl sub_8000AF4 + ldr r0, _08102878 @ =sub_80568A8 + bl sub_8000544 +_08102874: + pop {r0} + bx r0 + .align 2, 0 +_08102878: .4byte sub_80568A8 + thumb_func_end sub_8102858 + + thumb_func_start sub_810287C +sub_810287C: @ 810287C + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0810289C @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x9 + bls _08102892 + b _08102C18 +_08102892: + lsls r0, 2 + ldr r1, _081028A0 @ =_081028A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810289C: .4byte gUnknown_203ACF0 +_081028A0: .4byte _081028A4 + .align 2, 0 +_081028A4: + .4byte _081028CC + .4byte _081028FC + .4byte _08102930 + .4byte _08102940 + .4byte _08102964 + .4byte _081029D0 + .4byte _08102A14 + .4byte _08102B24 + .4byte _08102B94 + .4byte _08102BD8 +_081028CC: + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x8] + movs r4, 0 +_081028D4: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_81068A0 + ldr r1, _081028F8 @ =gUnknown_203ACF0 + ldr r2, [r1] + lsls r0, 24 + lsrs r0, 24 + lsls r0, r4 + ldr r1, [r2, 0x8] + orrs r1, r0 + str r1, [r2, 0x8] + adds r4, 0x1 + cmp r4, 0x8 + ble _081028D4 + movs r0, 0x2 + strb r0, [r2, 0x1] + b _08102C18 + .align 2, 0 +_081028F8: .4byte gUnknown_203ACF0 +_081028FC: + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, [r4] + adds r0, 0x14 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x15 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x16 + bl sub_81047B0 + ldr r0, _0810292C @ =sub_8102858 + bl sub_8000544 + adds r0, r5, 0 + bl sub_8077508 + b _08102C18 + .align 2, 0 +_0810292C: .4byte sub_8102858 +_08102930: + bl sub_8102C28 + ldr r0, _0810293C @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x3 + b _08102C16 + .align 2, 0 +_0810293C: .4byte gUnknown_203ACF0 +_08102940: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08102960 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + b _08102C16 + .align 2, 0 +_08102960: .4byte gUnknown_203ACF0 +_08102964: + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x2 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + movs r0, 0 + bl sub_80019BC + ldr r2, _081029A4 @ =gUnknown_2037AB8 + ldrb r1, [r2, 0x8] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081029AC + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + movs r0, 0x1 + negs r0, r0 + ldr r1, _081029A8 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8070588 + b _081029BC + .align 2, 0 +_081029A4: .4byte gUnknown_2037AB8 +_081029A8: .4byte 0x0000ffff +_081029AC: + ldr r0, _081029C4 @ =0xffff7fff + ldr r1, _081029C8 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 +_081029BC: + ldr r0, _081029CC @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + b _08102C16 + .align 2, 0 +_081029C4: .4byte 0xffff7fff +_081029C8: .4byte 0x0000ffff +_081029CC: .4byte gUnknown_203ACF0 +_081029D0: + ldr r4, _081029EC @ =gUnknown_203ACF0 + ldr r1, [r4] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + bl sub_806E25C + cmp r0, 0 + beq _081029F4 + ldr r0, _081029F0 @ =gUnknown_84520E4 + b _081029F6 + .align 2, 0 +_081029EC: .4byte gUnknown_203ACF0 +_081029F0: .4byte gUnknown_84520E4 +_081029F4: + ldr r0, _08102A0C @ =gUnknown_84520D4 +_081029F6: + ldr r1, [r4] + adds r1, 0x62 + bl sub_8133A20 + ldr r1, [r4] + adds r1, 0x60 + strb r0, [r1] + ldr r0, _08102A10 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x6 + b _08102C16 + .align 2, 0 +_08102A0C: .4byte gUnknown_84520D4 +_08102A10: .4byte gUnknown_203ACF0 +_08102A14: + ldr r0, [r4] + ldrb r0, [r0, 0x17] + bl sub_8107078 + ldr r1, [r4] + str r0, [r1, 0xC] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + ldr r0, _08102A4C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r3, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08102B14 + ldr r2, [r4] + ldr r1, [r2, 0xC] + cmp r1, 0xD + bhi _08102A50 + cmp r1, 0xA + bcs _08102ADC + cmp r1, 0x8 + bls _08102A62 + b _08102AA4 + .align 2, 0 +_08102A4C: .4byte gUnknown_30030F0 +_08102A50: + cmp r1, 0xE + beq _08102AA4 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08102A5E + b _08102C18 +_08102A5E: + strb r3, [r2, 0x1] + b _08102C18 +_08102A62: + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81068A0 + lsls r0, 24 + cmp r0, 0 + bne _08102A72 + b _08102C18 +_08102A72: + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, [r4] + ldr r1, [r0, 0xC] + adds r0, 0x28 + strb r1, [r0] + ldr r0, _08102A9C @ =0xffff7fff + ldr r1, _08102AA0 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x7 + b _08102C16 + .align 2, 0 +_08102A9C: .4byte 0xffff7fff +_08102AA0: .4byte 0x0000ffff +_08102AA4: + ldr r4, _08102AD0 @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r1, [r4] + ldr r0, [r1, 0xC] + subs r0, 0x9 + adds r1, 0x42 + strb r0, [r1] + ldr r0, _08102AD4 @ =0xffff7fff + ldr r1, _08102AD8 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x9 + b _08102C16 + .align 2, 0 +_08102AD0: .4byte gUnknown_203ACF0 +_08102AD4: .4byte 0xffff7fff +_08102AD8: .4byte 0x0000ffff +_08102ADC: + adds r0, r2, 0 + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, [r4] + ldr r1, [r0, 0xC] + subs r1, 0x9 + adds r0, 0x42 + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + strh r2, [r0, 0x3A] + strh r2, [r0, 0x38] + ldr r0, _08102B0C @ =0xffff7fff + ldr r1, _08102B10 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x8 + b _08102C16 + .align 2, 0 +_08102B0C: .4byte 0xffff7fff +_08102B10: .4byte 0x0000ffff +_08102B14: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08102B1E + b _08102C18 +_08102B1E: + ldr r0, [r4] + strb r3, [r0, 0x1] + b _08102C18 +_08102B24: + ldr r2, [r4] + ldrb r0, [r2, 0x17] + adds r1, r2, 0 + adds r1, 0x12 + adds r2, 0x10 + bl sub_810713C + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + ldr r0, [r4] + adds r0, 0x14 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x15 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x16 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x2B + movs r2, 0 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0x2D + strb r2, [r0] + ldr r0, [r4] + adds r0, 0x2F + strb r2, [r0] + ldr r1, _08102B8C @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08102B90 @ =sub_8103AC8 + str r1, [r0] + ldr r0, [r4] + strb r2, [r0, 0x1] + b _08102C18 + .align 2, 0 +_08102B8C: .4byte gUnknown_3005090 +_08102B90: .4byte sub_8103AC8 +_08102B94: + ldr r2, [r4] + ldrb r0, [r2, 0x17] + adds r1, r2, 0 + adds r1, 0x12 + adds r2, 0x10 + bl sub_810713C + movs r0, 0x1 + bl sub_80019D0 + ldr r0, [r4] + adds r0, 0x14 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x15 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x16 + bl sub_81047B0 + ldr r1, _08102BD0 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08102BD4 @ =sub_8103238 + b _08102C10 + .align 2, 0 +_08102BD0: .4byte gUnknown_3005090 +_08102BD4: .4byte sub_8103238 +_08102BD8: + ldr r2, [r4] + ldrb r0, [r2, 0x17] + adds r1, r2, 0 + adds r1, 0x12 + adds r2, 0x10 + bl sub_810713C + movs r0, 0x1 + bl sub_80019D0 + ldr r0, [r4] + adds r0, 0x14 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x15 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x16 + bl sub_81047B0 + ldr r1, _08102C20 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08102C24 @ =sub_8102F80 +_08102C10: + str r1, [r0] + ldr r1, [r4] + movs r0, 0 +_08102C16: + strb r0, [r1, 0x1] +_08102C18: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102C20: .4byte gUnknown_3005090 +_08102C24: .4byte sub_8102F80 + thumb_func_end sub_810287C + + thumb_func_start sub_8102C28 +sub_8102C28: @ 8102C28 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x24 + movs r5, 0x1E + str r5, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0 + mov r9, r0 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0xE + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r5, [sp] + str r4, [sp, 0x4] + movs r6, 0x11 + str r6, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + str r5, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + ldr r0, _08102DA4 @ =gUnknown_8451F54 + bl sub_8003CE4 + ldr r7, _08102DA8 @ =gUnknown_203ACF0 + ldr r1, [r7] + strb r0, [r1, 0x14] + ldr r0, _08102DAC @ =gUnknown_8451F5C + bl sub_8003CE4 + ldr r1, [r7] + strb r0, [r1, 0x15] + ldr r0, _08102DB0 @ =gUnknown_8451F64 + bl sub_8003CE4 + ldr r1, [r7] + strb r0, [r1, 0x16] + bl sub_806E25C + adds r5, r0, 0 + cmp r5, 0 + bne _08102C9E + b _08102DC8 +_08102C9E: + add r1, sp, 0xC + ldr r0, _08102DB4 @ =gUnknown_84520BC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r2, sp, 0xC + ldr r0, [r7] + ldrb r1, [r0, 0x14] + strb r1, [r2, 0x10] + ldrh r1, [r0, 0x12] + ldrh r2, [r0, 0x10] + add r0, sp, 0xC + bl sub_8106FF8 + ldr r1, [r7] + strb r0, [r1, 0x17] + ldr r0, [r7] + ldrb r0, [r0, 0x16] + movs r1, 0 + bl sub_800445C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r2, _08102DB8 @ =gUnknown_8415DC4 + movs r5, 0x2 + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl sub_81047C8 + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r2, _08102DBC @ =gUnknown_8415DD1 + mov r8, r2 + movs r4, 0xD + str r4, [sp] + mov r3, r9 + str r3, [sp, 0x4] + movs r1, 0 + movs r3, 0x8 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x66 + ldrh r2, [r1] + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r3, 0x34 + bl sub_810491C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r6, _08102DC0 @ =gUnknown_8415DD7 + movs r4, 0x18 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0 + adds r2, r6, 0 + movs r3, 0x8 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x6A + ldrh r2, [r1] + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r3, 0x34 + bl sub_810491C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r2, _08102DC4 @ =gUnknown_8415DCA + movs r1, 0x25 + str r1, [sp] + mov r3, r9 + str r3, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl sub_81047C8 + ldr r0, [r7] + ldrb r0, [r0, 0x16] + movs r4, 0x30 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0 + mov r2, r8 + movs r3, 0x8 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x68 + ldrh r2, [r1] + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r3, 0x34 + bl sub_810491C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + movs r4, 0x3B + str r4, [sp] + mov r2, r9 + str r2, [sp, 0x4] + movs r1, 0 + adds r2, r6, 0 + movs r3, 0x8 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x6C + ldrh r2, [r1] + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r3, 0x34 + bl sub_810491C + b _08102E4A + .align 2, 0 +_08102DA4: .4byte gUnknown_8451F54 +_08102DA8: .4byte gUnknown_203ACF0 +_08102DAC: .4byte gUnknown_8451F5C +_08102DB0: .4byte gUnknown_8451F64 +_08102DB4: .4byte gUnknown_84520BC +_08102DB8: .4byte gUnknown_8415DC4 +_08102DBC: .4byte gUnknown_8415DD1 +_08102DC0: .4byte gUnknown_8415DD7 +_08102DC4: .4byte gUnknown_8415DCA +_08102DC8: + add r1, sp, 0xC + ldr r0, _08102EA8 @ =gUnknown_8452004 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r2, sp, 0xC + ldr r0, [r7] + ldrb r1, [r0, 0x14] + strb r1, [r2, 0x10] + ldrh r1, [r0, 0x12] + ldrh r2, [r0, 0x10] + add r0, sp, 0xC + bl sub_8106FF8 + ldr r1, [r7] + strb r0, [r1, 0x17] + ldr r0, [r7] + ldrb r0, [r0, 0x16] + movs r1, 0 + bl sub_800445C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r2, _08102EAC @ =gUnknown_8415DC4 + movs r1, 0x9 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x1 + movs r3, 0 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x66 + ldrh r2, [r1] + movs r1, 0x15 + str r1, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r1, 0x1 + movs r3, 0x20 + bl sub_810491C + ldr r0, [r7] + ldrb r0, [r0, 0x16] + ldr r2, _08102EB0 @ =gUnknown_8415DCA + movs r1, 0x25 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x1 + movs r3, 0 + bl sub_81047C8 + ldr r1, [r7] + ldrb r0, [r1, 0x16] + adds r1, 0x68 + ldrh r2, [r1] + movs r1, 0x31 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x1 + movs r3, 0x20 + bl sub_810491C +_08102E4A: + movs r0, 0 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08102EB4 @ =gUnknown_8415D9C + movs r1, 0x1 + bl sub_8106E78 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08102EB8 @ =gUnknown_8415DB8 + bl sub_8104C2C + movs r0, 0 + bl sub_8003FA0 + movs r0, 0 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + ldr r4, _08102EBC @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrb r0, [r0, 0x16] + bl sub_8003FA0 + ldr r0, [r4] + ldrb r0, [r0, 0x16] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x24 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08102EA8: .4byte gUnknown_8452004 +_08102EAC: .4byte gUnknown_8415DC4 +_08102EB0: .4byte gUnknown_8415DCA +_08102EB4: .4byte gUnknown_8415D9C +_08102EB8: .4byte gUnknown_8415DB8 +_08102EBC: .4byte gUnknown_203ACF0 + thumb_func_end sub_8102C28 + + thumb_func_start sub_8102EC0 +sub_8102EC0: @ 8102EC0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + bne _08102ED0 + movs r0, 0x5 + bl sub_80722CC +_08102ED0: + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + bne _08102F00 + ldr r0, _08102EF4 @ =gUnknown_203ACF0 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + ldr r1, _08102EF8 @ =gUnknown_8440EF0 + movs r2, 0 + movs r3, 0 + bl sub_8004404 + ldr r0, _08102EFC @ =gUnknown_8443460 + movs r1, 0x10 + movs r2, 0x20 + bl sub_80703EC + b _08102F24 + .align 2, 0 +_08102EF4: .4byte gUnknown_203ACF0 +_08102EF8: .4byte gUnknown_8440EF0 +_08102EFC: .4byte gUnknown_8443460 +_08102F00: + ldr r0, _08102F40 @ =gUnknown_203ACF0 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + ldr r4, _08102F44 @ =gUnknown_84520F4 + lsls r5, 3 + adds r1, r5, r4 + ldr r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8004404 + adds r4, 0x4 + adds r5, r4 + ldr r0, [r5] + movs r1, 0x10 + movs r2, 0x20 + bl sub_80703EC +_08102F24: + ldr r4, _08102F40 @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrb r0, [r0, 0x15] + bl sub_8003FA0 + ldr r0, [r4] + ldrb r0, [r0, 0x15] + movs r1, 0x2 + bl sub_8003F20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102F40: .4byte gUnknown_203ACF0 +_08102F44: .4byte gUnknown_84520F4 + thumb_func_end sub_8102EC0 + + thumb_func_start sub_8102F48 +sub_8102F48: @ 8102F48 + push {lr} + adds r2, r1, 0 + cmp r2, 0x8 + bhi _08102F60 + ldr r0, _08102F6C @ =gUnknown_203ACF0 + ldr r0, [r0] + movs r1, 0x1 + lsls r1, r2 + ldr r0, [r0, 0x8] + ands r0, r1 + cmp r0, 0 + beq _08102F70 +_08102F60: + movs r0, 0x1 + movs r1, 0 + movs r2, 0x3 + bl sub_8107A9C + b _08102F7A + .align 2, 0 +_08102F6C: .4byte gUnknown_203ACF0 +_08102F70: + movs r0, 0xA + movs r1, 0 + movs r2, 0xB + bl sub_8107A9C +_08102F7A: + pop {r0} + bx r0 + thumb_func_end sub_8102F48 + + thumb_func_start sub_8102F80 +sub_8102F80: @ 8102F80 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08102FA0 @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x7 + bls _08102F96 + b _0810316C +_08102F96: + lsls r0, 2 + ldr r1, _08102FA4 @ =_08102FA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08102FA0: .4byte gUnknown_203ACF0 +_08102FA4: .4byte _08102FA8 + .align 2, 0 +_08102FA8: + .4byte _08102FC8 + .4byte _08102FF8 + .4byte _08103028 + .4byte _08103038 + .4byte _08103050 + .4byte _0810307C + .4byte _08103098 + .4byte _0810312C +_08102FC8: + movs r0, 0x10 + movs r1, 0 + bl sub_8107D38 + movs r0, 0x20 + movs r1, 0x1 + bl sub_8107D38 + ldr r4, _08102FF4 @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103518 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x48 + strh r0, [r1] + movs r0, 0x2 + strb r0, [r2, 0x1] + b _0810316C + .align 2, 0 +_08102FF4: .4byte gUnknown_203ACF0 +_08102FF8: + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103988 + movs r0, 0x1 + bl sub_80019D0 + ldr r0, [r4] + adds r0, 0x40 + bl sub_81047B0 + ldr r1, _08103020 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08103024 @ =sub_810287C + b _08103164 + .align 2, 0 +_08103020: .4byte gUnknown_3005090 +_08103024: .4byte sub_810287C +_08103028: + bl sub_810317C + ldr r0, _08103034 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x3 + b _0810316A + .align 2, 0 +_08103034: .4byte gUnknown_203ACF0 +_08103038: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + ldr r0, _0810304C @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + b _0810316A + .align 2, 0 +_0810304C: .4byte gUnknown_203ACF0 +_08103050: + movs r0, 0x1 + bl sub_80019BC + ldr r0, _08103070 @ =0xffff7fff + ldr r1, _08103074 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + ldr r0, _08103078 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + b _0810316A + .align 2, 0 +_08103070: .4byte 0xffff7fff +_08103074: .4byte 0x0000ffff +_08103078: .4byte gUnknown_203ACF0 +_0810307C: + ldr r1, [r4] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + bl sub_81039F0 + ldr r1, [r4] + adds r1, 0x60 + strb r0, [r1] + ldr r1, [r4] + movs r0, 0x6 + b _0810316A +_08103098: + ldr r0, [r4] + adds r0, 0x41 + ldrb r0, [r0] + bl sub_8107078 + ldr r1, [r4] + str r0, [r1, 0x30] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + ldr r0, _081030F0 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _081030FC + ldr r1, [r4] + ldr r2, [r1, 0x30] + lsrs r0, r2, 16 + ands r0, r3 + cmp r0, 0 + beq _0810316C + adds r0, r1, 0 + adds r0, 0x5A + strh r2, [r0] + adds r0, 0x6 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, _081030F4 @ =0xffff7fff + ldr r1, _081030F8 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x7 + b _0810316A + .align 2, 0 +_081030F0: .4byte gUnknown_30030F0 +_081030F4: .4byte 0xffff7fff +_081030F8: .4byte 0x0000ffff +_081030FC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810316C + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, _08103124 @ =0xffff7fff + ldr r1, _08103128 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x1 + b _0810316A + .align 2, 0 +_08103124: .4byte 0xffff7fff +_08103128: .4byte 0x0000ffff +_0810312C: + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103988 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + ldr r0, [r4] + adds r0, 0x40 + bl sub_81047B0 + ldr r1, _08103174 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08103178 @ =sub_81042EC +_08103164: + str r1, [r0] + ldr r1, [r4] + movs r0, 0 +_0810316A: + strb r0, [r1, 0x1] +_0810316C: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103174: .4byte gUnknown_3005090 +_08103178: .4byte sub_81042EC + thumb_func_end sub_8102F80 + + thumb_func_start sub_810317C +sub_810317C: @ 810317C + push {r4,r5,lr} + sub sp, 0x24 + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0xE + movs r2, 0 + movs r3, 0 + bl sub_8002554 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + ldr r0, _08103224 @ =gUnknown_845216C + bl sub_8003CE4 + ldr r2, _08103228 @ =gUnknown_203ACF0 + ldr r1, [r2] + adds r1, 0x40 + strb r0, [r1] + add r1, sp, 0xC + ldr r0, _0810322C @ =gUnknown_8452174 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r2, [r2] + ldr r0, [r2, 0x44] + str r0, [sp, 0xC] + add r1, sp, 0xC + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + strb r0, [r1, 0x10] + adds r0, r2, 0 + adds r0, 0x48 + ldrh r0, [r0] + strh r0, [r1, 0xC] + adds r0, r2, 0 + adds r0, 0x42 + ldrb r1, [r0] + add r0, sp, 0xC + bl sub_8103924 + movs r0, 0 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08103230 @ =gUnknown_8415F3D + movs r1, 0x1 + bl sub_8106E78 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08103234 @ =gUnknown_8415F51 + bl sub_8104C2C + movs r0, 0 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x24 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103224: .4byte gUnknown_845216C +_08103228: .4byte gUnknown_203ACF0 +_0810322C: .4byte gUnknown_8452174 +_08103230: .4byte gUnknown_8415F3D +_08103234: .4byte gUnknown_8415F51 + thumb_func_end sub_810317C + + thumb_func_start sub_8103238 +sub_8103238: @ 8103238 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08103258 @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x7 + bls _0810324E + b _0810344C +_0810324E: + lsls r0, 2 + ldr r1, _0810325C @ =_08103260 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08103258: .4byte gUnknown_203ACF0 +_0810325C: .4byte _08103260 + .align 2, 0 +_08103260: + .4byte _08103280 + .4byte _081032B0 + .4byte _081032E8 + .4byte _081032FC + .4byte _08103318 + .4byte _08103344 + .4byte _08103362 + .4byte _08103404 +_08103280: + movs r0, 0x10 + movs r1, 0 + bl sub_8107D38 + movs r0, 0x20 + movs r1, 0x1 + bl sub_8107D38 + ldr r4, _081032AC @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103518 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x48 + strh r0, [r1] + movs r0, 0x2 + strb r0, [r2, 0x1] + b _0810344C + .align 2, 0 +_081032AC: .4byte gUnknown_203ACF0 +_081032B0: + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103988 + movs r0, 0x1 + bl sub_80019D0 + ldr r0, [r4] + adds r0, 0x40 + bl sub_81047B0 + ldr r1, _081032E0 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _081032E4 @ =sub_810287C + str r1, [r0] + ldr r1, [r4] + movs r0, 0 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_081032E0: .4byte gUnknown_3005090 +_081032E4: .4byte sub_810287C +_081032E8: + bl sub_810345C + ldr r0, _081032F8 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x3 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_081032F8: .4byte gUnknown_203ACF0 +_081032FC: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + ldr r0, _08103314 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_08103314: .4byte gUnknown_203ACF0 +_08103318: + movs r0, 0x1 + bl sub_80019BC + ldr r0, _08103338 @ =0xffff7fff + ldr r1, _0810333C @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + ldr r0, _08103340 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_08103338: .4byte 0xffff7fff +_0810333C: .4byte 0x0000ffff +_08103340: .4byte gUnknown_203ACF0 +_08103344: + ldr r1, [r4] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + bl sub_81039F0 + ldr r1, [r4] + adds r1, 0x60 + strb r0, [r1] + ldr r1, [r4] + movs r0, 0x6 + strb r0, [r1, 0x1] + b _0810344C +_08103362: + ldr r0, [r4] + adds r0, 0x41 + ldrb r0, [r0] + bl sub_8107078 + ldr r1, [r4] + str r0, [r1, 0x30] + ldrb r0, [r1, 0x17] + adds r1, 0x62 + movs r2, 0 + bl sub_81072D4 + ldr r0, _081033C4 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081033D0 + ldr r0, [r4] + ldr r1, [r0, 0x30] + lsrs r0, r1, 16 + ands r0, r2 + cmp r0, 0 + beq _0810344C + lsls r0, r1, 16 + lsrs r0, 16 + bl sub_8106A20 + lsls r0, 24 + cmp r0, 0 + bne _0810344C + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, _081033C8 @ =0xffff7fff + ldr r1, _081033CC @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x7 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_081033C4: .4byte gUnknown_30030F0 +_081033C8: .4byte 0xffff7fff +_081033CC: .4byte 0x0000ffff +_081033D0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810344C + ldr r0, [r4] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, _081033FC @ =0xffff7fff + ldr r1, _08103400 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x1] + b _0810344C + .align 2, 0 +_081033FC: .4byte 0xffff7fff +_08103400: .4byte 0x0000ffff +_08103404: + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + bl sub_8103988 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + ldr r0, [r4] + adds r0, 0x40 + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x2F + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r1, _08103454 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08103458 @ =sub_8103AC8 + str r1, [r0] + ldr r0, [r4] + strb r2, [r0, 0x1] +_0810344C: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103454: .4byte gUnknown_3005090 +_08103458: .4byte sub_8103AC8 + thumb_func_end sub_8103238 + + thumb_func_start sub_810345C +sub_810345C: @ 810345C + push {r4,r5,lr} + sub sp, 0x24 + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0xE + movs r2, 0 + movs r3, 0 + bl sub_8002554 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + ldr r0, _08103504 @ =gUnknown_845216C + bl sub_8003CE4 + ldr r2, _08103508 @ =gUnknown_203ACF0 + ldr r1, [r2] + adds r1, 0x40 + strb r0, [r1] + add r1, sp, 0xC + ldr r0, _0810350C @ =gUnknown_8452174 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r2, [r2] + ldr r0, [r2, 0x44] + str r0, [sp, 0xC] + add r1, sp, 0xC + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + strb r0, [r1, 0x10] + adds r0, r2, 0 + adds r0, 0x48 + ldrh r0, [r0] + strh r0, [r1, 0xC] + adds r0, r2, 0 + adds r0, 0x42 + ldrb r1, [r0] + add r0, sp, 0xC + bl sub_8103924 + movs r0, 0 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08103510 @ =gUnknown_8415F4A + movs r1, 0x1 + bl sub_8106E78 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + ldr r0, _08103514 @ =gUnknown_8415F51 + bl sub_8104C2C + movs r0, 0 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x24 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103504: .4byte gUnknown_845216C +_08103508: .4byte gUnknown_203ACF0 +_0810350C: .4byte gUnknown_8452174 +_08103510: .4byte gUnknown_8415F4A +_08103514: .4byte gUnknown_8415F51 + thumb_func_end sub_810345C + + thumb_func_start sub_8103518 +sub_8103518: @ 8103518 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_806E25C + movs r1, 0x97 + str r1, [sp] + cmp r0, 0 + beq _0810353A + movs r2, 0xC1 + lsls r2, 1 + str r2, [sp] +_0810353A: + movs r0, 0 + mov r10, r0 + cmp r4, 0x5 + bhi _08103568 + lsls r0, r4, 2 + ldr r1, _0810354C @ =_08103550 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810354C: .4byte _08103550 + .align 2, 0 +_08103550: + .4byte _08103568 + .4byte _08103604 + .4byte _0810369C + .4byte _0810373C + .4byte _081037D8 + .4byte _08103874 +_08103568: + movs r1, 0 + mov r8, r1 +_0810356C: + mov r4, r8 + adds r4, 0x1 + lsls r0, r4, 16 + lsrs r5, r0, 16 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + mov r9, r4 + cmp r7, 0 + beq _081035C4 + adds r0, r5, 0 + bl sub_8043200 + ldr r2, _081035BC @ =gUnknown_203ACF0 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r8 + lsls r3, r1, 3 + adds r2, r3, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _081035C0 @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + mov r10, r5 + adds r4, r3, 0 + b _081035D6 + .align 2, 0 +_081035BC: .4byte gUnknown_203ACF0 +_081035C0: .4byte gUnknown_8245EE0 +_081035C4: + ldr r2, _081035FC @ =gUnknown_203ACF0 + ldr r0, [r2] + ldr r1, [r0, 0x44] + mov r0, r8 + lsls r2, r0, 3 + adds r1, r2, r1 + ldr r0, _08103600 @ =gUnknown_8415F66 + str r0, [r1] + adds r4, r2, 0 +_081035D6: + adds r0, r5, 0 + bl sub_8043200 + ldr r2, _081035FC @ =gUnknown_203ACF0 + ldr r1, [r2] + ldr r3, [r1, 0x44] + adds r3, r4, r3 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r3, 0x4] + mov r8, r9 + mov r0, r8 + cmp r0, 0x96 + ble _0810356C + b _08103906 + .align 2, 0 +_081035FC: .4byte gUnknown_203ACF0 +_08103600: .4byte gUnknown_8415F66 +_08103604: + movs r1, 0 + mov r8, r1 + ldr r2, _08103690 @ =gUnknown_203ACF0 + mov r9, r2 +_0810360C: + ldr r1, _08103694 @ =gUnknown_8443FC0 + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r5, [r0] + ldr r0, [sp] + cmp r5, r0 + bgt _08103682 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r7, 0 + beq _08103682 + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r10 + lsls r4, r1, 3 + adds r2, r4, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _08103698 @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r1, [r1, 0x44] + adds r4, r1 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r4, 0x4] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 +_08103682: + movs r0, 0x1 + add r8, r0 + movs r0, 0xCD + lsls r0, 1 + cmp r8, r0 + ble _0810360C + b _08103906 + .align 2, 0 +_08103690: .4byte gUnknown_203ACF0 +_08103694: .4byte gUnknown_8443FC0 +_08103698: .4byte gUnknown_8245EE0 +_0810369C: + movs r1, 0 + mov r8, r1 + ldr r2, _08103730 @ =gUnknown_203ACF0 + mov r9, r2 +_081036A4: + ldr r1, _08103734 @ =gUnknown_84448FE + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + bl sub_8043298 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [sp] + cmp r5, r0 + bgt _08103722 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _08103722 + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r10 + lsls r4, r1, 3 + adds r2, r4, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _08103738 @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r1, [r1, 0x44] + adds r4, r1 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r4, 0x4] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 +_08103722: + movs r0, 0x1 + add r8, r0 + movs r0, 0xCD + lsls r0, 1 + cmp r8, r0 + ble _081036A4 + b _08103906 + .align 2, 0 +_08103730: .4byte gUnknown_203ACF0 +_08103734: .4byte gUnknown_84448FE +_08103738: .4byte gUnknown_8245EE0 +_0810373C: + movs r1, 0 + mov r8, r1 + ldr r2, _081037C8 @ =gUnknown_203ACF0 + mov r9, r2 +_08103744: + ldr r1, _081037CC @ =gUnknown_84442F6 + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r5, [r0] + ldr r0, [sp] + cmp r5, r0 + bgt _081037BA + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _081037BA + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r10 + lsls r4, r1, 3 + adds r2, r4, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _081037D0 @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r1, [r1, 0x44] + adds r4, r1 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r4, 0x4] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 +_081037BA: + movs r0, 0x1 + add r8, r0 + ldr r0, _081037D4 @ =0x00000181 + cmp r8, r0 + ble _08103744 + b _08103906 + .align 2, 0 +_081037C8: .4byte gUnknown_203ACF0 +_081037CC: .4byte gUnknown_84442F6 +_081037D0: .4byte gUnknown_8245EE0 +_081037D4: .4byte 0x00000181 +_081037D8: + movs r1, 0 + mov r8, r1 + ldr r2, _08103864 @ =gUnknown_203ACF0 + mov r9, r2 +_081037E0: + ldr r1, _08103868 @ =gUnknown_84445FA + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r5, [r0] + ldr r0, [sp] + cmp r5, r0 + bgt _08103856 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _08103856 + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r10 + lsls r4, r1, 3 + adds r2, r4, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _0810386C @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + adds r0, r5, 0 + bl sub_8043200 + mov r2, r9 + ldr r1, [r2] + ldr r1, [r1, 0x44] + adds r4, r1 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r4, 0x4] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 +_08103856: + movs r0, 0x1 + add r8, r0 + ldr r0, _08103870 @ =0x00000181 + cmp r8, r0 + ble _081037E0 + b _08103906 + .align 2, 0 +_08103864: .4byte gUnknown_203ACF0 +_08103868: .4byte gUnknown_84445FA +_0810386C: .4byte gUnknown_8245EE0 +_08103870: .4byte 0x00000181 +_08103874: + movs r1, 0 + mov r8, r1 +_08103878: + mov r4, r8 + adds r4, 0x1 + lsls r0, r4, 16 + lsrs r5, r0, 16 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + lsrs r6, r0, 24 + mov r9, r4 + cmp r7, 0 + beq _081038D0 + adds r0, r5, 0 + bl sub_8043200 + ldr r2, _081038C8 @ =gUnknown_203ACF0 + ldr r1, [r2] + ldr r2, [r1, 0x44] + mov r1, r8 + lsls r3, r1, 3 + adds r2, r3, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + muls r0, r1 + ldr r1, _081038CC @ =gUnknown_8245EE0 + adds r0, r1 + str r0, [r2] + mov r10, r5 + adds r4, r3, 0 + b _081038E2 + .align 2, 0 +_081038C8: .4byte gUnknown_203ACF0 +_081038CC: .4byte gUnknown_8245EE0 +_081038D0: + ldr r2, _08103918 @ =gUnknown_203ACF0 + ldr r0, [r2] + ldr r1, [r0, 0x44] + mov r0, r8 + lsls r2, r0, 3 + adds r1, r2, r1 + ldr r0, _0810391C @ =gUnknown_8415F66 + str r0, [r1] + adds r4, r2, 0 +_081038E2: + adds r0, r5, 0 + bl sub_8043200 + ldr r2, _08103918 @ =gUnknown_203ACF0 + ldr r1, [r2] + ldr r3, [r1, 0x44] + adds r3, r4, r3 + lsls r2, r6, 17 + lsls r1, r7, 16 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + adds r2, r0 + str r2, [r3, 0x4] + mov r8, r9 + ldr r0, _08103920 @ =0x00000181 + cmp r8, r0 + ble _08103878 +_08103906: + mov r0, r10 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08103918: .4byte gUnknown_203ACF0 +_0810391C: .4byte gUnknown_8415F66 +_08103920: .4byte 0x00000181 + thumb_func_end sub_8103518 + + thumb_func_start sub_8103924 +sub_8103924: @ 8103924 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x4 + bgt _08103936 + cmp r1, 0x1 + bge _08103950 + b _0810393A +_08103936: + cmp r1, 0x5 + beq _08103964 +_0810393A: + ldr r1, _08103948 @ =gUnknown_845218C + ldr r4, _0810394C @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrh r2, [r0, 0x36] + ldrh r3, [r0, 0x34] + b _0810396E + .align 2, 0 +_08103948: .4byte gUnknown_845218C +_0810394C: .4byte gUnknown_203ACF0 +_08103950: + ldr r1, _0810395C @ =gUnknown_845218C + ldr r4, _08103960 @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrh r2, [r0, 0x3A] + ldrh r3, [r0, 0x38] + b _0810396E + .align 2, 0 +_0810395C: .4byte gUnknown_845218C +_08103960: .4byte gUnknown_203ACF0 +_08103964: + ldr r1, _08103980 @ =gUnknown_845218C + ldr r4, _08103984 @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrh r2, [r0, 0x3E] + ldrh r3, [r0, 0x3C] +_0810396E: + adds r0, r5, 0 + bl sub_8107024 + ldr r1, [r4] + adds r1, 0x41 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103980: .4byte gUnknown_845218C +_08103984: .4byte gUnknown_203ACF0 + thumb_func_end sub_8103924 + + thumb_func_start sub_8103988 +sub_8103988: @ 8103988 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bgt _08103998 + cmp r0, 0x1 + bge _081039B8 + b _0810399C +_08103998: + cmp r0, 0x5 + beq _081039D4 +_0810399C: + ldr r0, _081039B4 @ =gUnknown_203ACF0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x41 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x36 + adds r2, 0x34 + bl sub_810713C + b _081039E8 + .align 2, 0 +_081039B4: .4byte gUnknown_203ACF0 +_081039B8: + ldr r0, _081039D0 @ =gUnknown_203ACF0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x41 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x3A + adds r2, 0x38 + bl sub_810713C + b _081039E8 + .align 2, 0 +_081039D0: .4byte gUnknown_203ACF0 +_081039D4: + ldr r0, _081039EC @ =gUnknown_203ACF0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x41 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x3E + adds r2, 0x3C + bl sub_810713C +_081039E8: + pop {r0} + bx r0 + .align 2, 0 +_081039EC: .4byte gUnknown_203ACF0 + thumb_func_end sub_8103988 + + thumb_func_start sub_81039F0 +sub_81039F0: @ 81039F0 + push {r4,lr} + sub sp, 0x10 + mov r1, sp + ldr r0, _08103A18 @ =gUnknown_84521B4 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r0] + str r0, [r1] + ldr r2, _08103A1C @ =gUnknown_203ACF0 + ldr r0, [r2] + adds r0, 0x48 + ldr r1, _08103A20 @ =gUnknown_8452174 + ldrh r3, [r0] + ldrh r0, [r1, 0xE] + cmp r3, r0 + bls _08103A24 + mov r1, sp + subs r0, r3, r0 + b _08103A28 + .align 2, 0 +_08103A18: .4byte gUnknown_84521B4 +_08103A1C: .4byte gUnknown_203ACF0 +_08103A20: .4byte gUnknown_8452174 +_08103A24: + mov r1, sp + movs r0, 0 +_08103A28: + strh r0, [r1, 0x8] + ldr r1, [r2] + adds r1, 0x62 + mov r0, sp + bl sub_8133A20 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81039F0 + + thumb_func_start sub_8103A40 +sub_8103A40: @ 8103A40 + push {r4-r7,lr} + sub sp, 0x4 + adds r4, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r0, r4, 16 + lsrs r5, r0, 16 + movs r0, 0x1 + lsrs r4, 17 + ands r4, r0 + ldr r7, _08103AC0 @ =gUnknown_203ACF0 + ldr r0, [r7] + adds r0, 0x40 + ldrb r0, [r0] + str r6, [sp] + movs r1, 0 + adds r2, r5, 0 + movs r3, 0xC + bl sub_8104A34 + cmp r4, 0 + beq _08103AB6 + ldr r0, [r7] + adds r0, 0x40 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0x28 + adds r3, r6, 0 + bl sub_8107D68 + ldr r0, _08103AC4 @ =gUnknown_8254784 + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + adds r4, r0 + ldrb r5, [r4, 0x6] + ldr r0, [r7] + adds r0, 0x40 + ldrb r0, [r0] + adds r1, r5, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x78 + adds r3, r6, 0 + bl sub_8107D68 + ldrb r1, [r4, 0x7] + cmp r5, r1 + beq _08103AB6 + ldr r0, [r7] + adds r0, 0x40 + ldrb r0, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x98 + adds r3, r6, 0 + bl sub_8107D68 +_08103AB6: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103AC0: .4byte gUnknown_203ACF0 +_08103AC4: .4byte gUnknown_8254784 + thumb_func_end sub_8103A40 + + thumb_func_start sub_8103AC8 +sub_8103AC8: @ 8103AC8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08103AE8 @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r5, r1, 0 + cmp r0, 0x1A + bls _08103ADE + b _08104228 +_08103ADE: + lsls r0, 2 + ldr r1, _08103AEC @ =_08103AF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08103AE8: .4byte gUnknown_203ACF0 +_08103AEC: .4byte _08103AF0 + .align 2, 0 +_08103AF0: + .4byte _08103B5C + .4byte _08103B98 + .4byte _08103BF8 + .4byte _08103C24 + .4byte _08103C5C + .4byte _08103C84 + .4byte _08103E6C + .4byte _08103E6C + .4byte _08103EA0 + .4byte _08103ED4 + .4byte _08103EA0 + .4byte _08103EFC + .4byte _08103F20 + .4byte _08103F42 + .4byte _08103F54 + .4byte _08103F68 + .4byte _08103F7A + .4byte _08103FF0 + .4byte _0810403A + .4byte _0810406C + .4byte _08104080 + .4byte _081040E4 + .4byte _081040F4 + .4byte _08104118 + .4byte _081041DE + .4byte _081041F0 + .4byte _0810421C +_08103B5C: + movs r0, 0x3 + bl sub_80019D0 + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x1 + bl sub_80019D0 + ldr r4, _08103B94 @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x28 + ldrb r0, [r0] + bl sub_810699C + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x2B + adds r0, 0x29 + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + bcs _08103B8C + strb r1, [r2] +_08103B8C: + ldr r1, [r4] + movs r0, 0x2 + b _08104226 + .align 2, 0 +_08103B94: .4byte gUnknown_203ACF0 +_08103B98: + bl sub_8104E90 + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x1 + bl sub_80019D0 + ldr r0, _08103BC8 @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r0, 0x2F + ldrb r0, [r0] + cmp r0, 0 + beq _08103BB8 + cmp r0, 0x1 + beq _08103BD4 +_08103BB8: + ldr r0, _08103BCC @ =gUnknown_3005090 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08103BD0 @ =sub_810287C + b _08103BE0 + .align 2, 0 +_08103BC8: .4byte gUnknown_203ACF0 +_08103BCC: .4byte gUnknown_3005090 +_08103BD0: .4byte sub_810287C +_08103BD4: + ldr r0, _08103BEC @ =gUnknown_3005090 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08103BF0 @ =sub_8103238 +_08103BE0: + str r0, [r1] + ldr r0, _08103BF4 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0 + b _08104226 + .align 2, 0 +_08103BEC: .4byte gUnknown_3005090 +_08103BF0: .4byte sub_8103238 +_08103BF4: .4byte gUnknown_203ACF0 +_08103BF8: + movs r0, 0 + bl sub_8104F0C + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0xFF + bl sub_8105058 + ldr r0, _08103C20 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x3 + b _08104226 + .align 2, 0 +_08103C20: .4byte gUnknown_203ACF0 +_08103C24: + ldr r0, _08103C50 @ =0xffff7fff + ldr r1, _08103C54 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x2 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + ldr r0, _08103C58 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + b _08104226 + .align 2, 0 +_08103C50: .4byte 0xffff7fff +_08103C54: .4byte 0x0000ffff +_08103C58: .4byte gUnknown_203ACF0 +_08103C5C: + bl sub_8104234 + ldr r4, _08103C7C @ =gUnknown_203ACF0 + ldr r1, [r4] + adds r1, 0x60 + strb r0, [r1] + ldr r0, _08103C80 @ =gUnknown_84524C4 + movs r1, 0 + bl sub_8133C90 + ldr r1, [r4] + adds r1, 0x61 + strb r0, [r1] + ldr r1, [r4] + movs r0, 0x5 + b _08104226 + .align 2, 0 +_08103C7C: .4byte gUnknown_203ACF0 +_08103C80: .4byte gUnknown_84524C4 +_08103C84: + ldr r0, [r5] + adds r0, 0x2D + ldrb r0, [r0] + bl sub_8105058 + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x61 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x2D + ldrb r1, [r1] + adds r2, 0x2C + ldrb r2, [r2] + bl sub_8105178 + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x2B + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x62 + strh r0, [r1] + movs r4, 0 + ldr r0, _08103CF8 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08103CFC + adds r0, r2, 0 + adds r0, 0x2D + ldrb r1, [r0] + lsls r1, 1 + subs r0, 0x15 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08103CFC + ldr r0, [r5] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, [r5] + adds r0, 0x61 + ldrb r0, [r0] + movs r1, 0 + bl sub_8133CD4 + ldr r1, [r5] + movs r0, 0xC + b _08104226 + .align 2, 0 +_08103CF8: .4byte gUnknown_30030F0 +_08103CFC: + ldr r2, _08103D28 @ =gUnknown_30030F0 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _08103D6E + ldrh r1, [r2, 0x30] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08103D32 + ldr r0, _08103D2C @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x2D + ldrb r0, [r1] + cmp r0, 0 + beq _08103D30 + subs r0, 0x1 + strb r0, [r1] + b _08103D60 + .align 2, 0 +_08103D28: .4byte gUnknown_30030F0 +_08103D2C: .4byte gUnknown_203ACF0 +_08103D30: + movs r4, 0x1 +_08103D32: + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _08103D6E + ldrh r1, [r2, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08103D6E + ldr r0, _08103D68 @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0x2D + ldrb r1, [r2] + adds r0, 0x2C + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bge _08103D6C + adds r0, r1, 0x1 + strb r0, [r2] +_08103D60: + movs r0, 0x5 + bl sub_80722CC + b _08104228 + .align 2, 0 +_08103D68: .4byte gUnknown_203ACF0 +_08103D6C: + movs r4, 0x2 +_08103D6E: + cmp r4, 0 + bne _08103D78 + bl sub_8104284 + adds r4, r0, 0 +_08103D78: + cmp r4, 0x1 + beq _08103D94 + cmp r4, 0x1 + ble _08103E4E + cmp r4, 0x2 + beq _08103DF8 + b _08103E4E +_08103D86: + ldr r1, [r4] + movs r0, 0x8 + strb r0, [r1, 0x1] + ldr r5, _08103D90 @ =gUnknown_203ACF0 + b _08103DDA + .align 2, 0 +_08103D90: .4byte gUnknown_203ACF0 +_08103D94: + ldr r0, _08103DE4 @ =gUnknown_203ACF0 + ldr r1, [r0] + adds r2, r1, 0 + adds r2, 0x2B + adds r1, 0x29 + ldrb r2, [r2] + adds r5, r0, 0 + ldrb r1, [r1] + cmp r2, r1 + bls _08103DDA + adds r4, r5, 0 +_08103DAA: + ldr r1, [r4] + adds r1, 0x2B + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + adds r1, 0x2B + ldrb r1, [r1] + bl sub_8106838 + lsls r0, 24 + cmp r0, 0 + bne _08103D86 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x2B + adds r1, 0x29 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _08103DAA +_08103DDA: + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0x8 + beq _08103E4E + b _08103E4A + .align 2, 0 +_08103DE4: .4byte gUnknown_203ACF0 +_08103DE8: + ldr r1, [r4] + movs r0, 0xA + strb r0, [r1, 0x1] + ldr r5, _08103DF4 @ =gUnknown_203ACF0 + b _08103E42 + .align 2, 0 +_08103DF4: .4byte gUnknown_203ACF0 +_08103DF8: + ldr r1, _08103E64 @ =gUnknown_203ACF0 + ldr r0, [r1] + adds r2, r0, 0 + adds r2, 0x2B + ldrb r2, [r2] + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x1 + adds r5, r1, 0 + cmp r2, r0 + bge _08103E42 + adds r4, r5, 0 +_08103E10: + ldr r1, [r4] + adds r1, 0x2B + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + adds r1, 0x2B + ldrb r1, [r1] + bl sub_8106838 + lsls r0, 24 + cmp r0, 0 + bne _08103DE8 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x2B + ldrb r1, [r1] + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + blt _08103E10 +_08103E42: + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0xA + beq _08103E4E +_08103E4A: + movs r0, 0x6 + strb r0, [r1, 0x1] +_08103E4E: + ldr r0, _08103E68 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08103E5C + b _08104228 +_08103E5C: + ldr r0, _08103E64 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x6 + b _08104226 + .align 2, 0 +_08103E64: .4byte gUnknown_203ACF0 +_08103E68: .4byte gUnknown_30030F0 +_08103E6C: + ldr r0, [r5] + adds r0, 0x60 + ldrb r0, [r0] + bl sub_8133C30 + ldr r0, [r5] + adds r0, 0x61 + ldrb r0, [r0] + movs r1, 0 + bl sub_8133CD4 + ldr r0, _08103E98 @ =0xffff7fff + ldr r1, _08103E9C @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r5] + movs r0, 0x1 + b _08104226 + .align 2, 0 +_08103E98: .4byte 0xffff7fff +_08103E9C: .4byte 0x0000ffff +_08103EA0: + bl sub_8104E90 + movs r0, 0xFF + bl sub_8105058 + ldr r4, _08103ED0 @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x61 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0xA0 + movs r3, 0 + bl sub_8133CAC + ldr r0, [r4] + adds r0, 0x2E + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + strb r1, [r0, 0x2] + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + b _08104226 + .align 2, 0 +_08103ED0: .4byte gUnknown_203ACF0 +_08103ED4: + movs r0, 0 + bl sub_81052D0 + lsls r0, 24 + cmp r0, 0 + bne _08103EE2 + b _08104228 +_08103EE2: + ldr r2, _08103EF8 @ =gUnknown_203ACF0 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x2C + ldrb r0, [r0] + subs r0, 0x1 + adds r1, 0x2D + strb r0, [r1] + ldr r1, [r2] + movs r0, 0x5 + b _08104226 + .align 2, 0 +_08103EF8: .4byte gUnknown_203ACF0 +_08103EFC: + movs r0, 0x1 + bl sub_81052D0 + lsls r0, 24 + cmp r0, 0 + bne _08103F0A + b _08104228 +_08103F0A: + ldr r2, _08103F1C @ =gUnknown_203ACF0 + ldr r0, [r2] + adds r0, 0x2D + movs r1, 0 + strb r1, [r0] + ldr r1, [r2] + movs r0, 0x5 + b _08104226 + .align 2, 0 +_08103F1C: .4byte gUnknown_203ACF0 +_08103F20: + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x2D + ldrb r1, [r0] + lsls r1, 1 + subs r0, 0x15 + adds r0, r1 + ldrh r1, [r0] + adds r0, r2, 0 + adds r0, 0x5A + strh r1, [r0] + movs r0, 0x5 + bl sub_80722CC + ldr r1, [r5] + movs r0, 0xE + b _08104226 +_08103F42: + bl sub_8106014 + ldr r0, _08103F50 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + b _08104226 + .align 2, 0 +_08103F50: .4byte gUnknown_203ACF0 +_08103F54: + movs r0, 0 + bl sub_8105E1C + ldr r0, _08103F64 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0xF + b _08104226 + .align 2, 0 +_08103F64: .4byte gUnknown_203ACF0 +_08103F68: + ldr r0, [r5] + movs r1, 0 + strb r1, [r0, 0x2] + ldr r0, [r5] + strb r1, [r0, 0x3] + ldr r1, [r5] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] +_08103F7A: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + cmp r0, 0x5 + bhi _08103FA8 + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _08103F8A + b _081040BE +_08103F8A: + ldrb r1, [r1, 0x3] + movs r0, 0 + bl sub_8105594 + movs r0, 0 + bl sub_80020BC + ldr r1, [r5] + movs r0, 0x4 + strb r0, [r1, 0x2] + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + b _08104228 +_08103FA8: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, [r5] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_8071E3C + ldr r1, [r5] + movs r0, 0 + strb r0, [r1, 0x2] + ldr r1, [r5] + movs r0, 0x11 + b _08104226 +_08103FF0: + ldr r0, _08104024 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810402C + bl sub_8106014 + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + ldr r0, _08104028 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x15 + b _08104226 + .align 2, 0 +_08104024: .4byte gUnknown_30030F0 +_08104028: .4byte gUnknown_203ACF0 +_0810402C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08104036 + b _081041D8 +_08104036: + ldr r1, [r5] + b _08104224 +_0810403A: + movs r0, 0 + bl sub_8104F0C + movs r0, 0 + movs r1, 0x6 + bl sub_8105594 + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08104068 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x13 + b _08104226 + .align 2, 0 +_08104068: .4byte gUnknown_203ACF0 +_0810406C: + ldr r1, [r5] + movs r0, 0 + strb r0, [r1, 0x2] + ldr r1, [r5] + movs r0, 0x6 + strb r0, [r1, 0x3] + ldr r1, [r5] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] +_08104080: + ldr r1, [r5] + ldrb r2, [r1, 0x3] + cmp r2, 0 + beq _081040C4 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _081040BE + subs r0, r2, 0x1 + strb r0, [r1, 0x3] + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + ldr r0, [r5] + ldrb r1, [r0, 0x3] + movs r0, 0 + bl sub_8105594 + movs r0, 0 + bl sub_80020BC + ldr r1, [r5] + movs r0, 0x1 + strb r0, [r1, 0x2] + b _08104228 +_081040BE: + subs r0, 0x1 + strb r0, [r1, 0x2] + b _08104228 +_081040C4: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0 + bl sub_80020BC + ldr r1, [r5] + movs r0, 0xD + b _08104226 +_081040E4: + bl sub_810603C + ldr r0, _081040F0 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x16 + b _08104226 + .align 2, 0 +_081040F0: .4byte gUnknown_203ACF0 +_081040F4: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08104114 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x17 + b _08104226 + .align 2, 0 +_08104114: .4byte gUnknown_203ACF0 +_08104118: + ldr r0, _08104174 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810417C + movs r5, 0x1E + str r5, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08104178 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x1A + b _08104226 + .align 2, 0 +_08104174: .4byte gUnknown_30030F0 +_08104178: .4byte gUnknown_203ACF0 +_0810417C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081041D8 + movs r5, 0x1E + str r5, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _081041D4 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x18 + b _08104226 + .align 2, 0 +_081041D4: .4byte gUnknown_203ACF0 +_081041D8: + bl sub_8106B34 + b _08104228 +_081041DE: + bl sub_81067C0 + ldr r0, _081041EC @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x19 + b _08104226 + .align 2, 0 +_081041EC: .4byte gUnknown_203ACF0 +_081041F0: + movs r0, 0 + bl sub_8105E1C + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08104218 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x11 + b _08104226 + .align 2, 0 +_08104218: .4byte gUnknown_203ACF0 +_0810421C: + bl sub_81067C0 + ldr r0, _08104230 @ =gUnknown_203ACF0 + ldr r1, [r0] +_08104224: + movs r0, 0x12 +_08104226: + strb r0, [r1, 0x1] +_08104228: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104230: .4byte gUnknown_203ACF0 + thumb_func_end sub_8103AC8 + + thumb_func_start sub_8104234 +sub_8104234: @ 8104234 + push {r4,lr} + sub sp, 0x10 + mov r1, sp + ldr r0, _0810427C @ =gUnknown_84524B4 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r0] + str r0, [r1] + mov r1, sp + ldr r0, _08104280 @ =gUnknown_203ACF0 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + strh r0, [r1, 0x6] + adds r0, r2, 0 + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x1 + strh r0, [r1, 0x8] + adds r0, r2, 0 + adds r0, 0x2B + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x62 + strh r0, [r1] + mov r0, sp + bl sub_8133A20 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810427C: .4byte gUnknown_84524B4 +_08104280: .4byte gUnknown_203ACF0 + thumb_func_end sub_8104234 + + thumb_func_start sub_8104284 +sub_8104284: @ 8104284 + push {lr} + ldr r0, _081042B0 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + beq _081042C0 + cmp r0, 0x1 + ble _081042E6 + cmp r0, 0x2 + bne _081042E6 + ldr r0, _081042B4 @ =gUnknown_30030F0 + ldr r2, [r0, 0x2C] + ldr r1, _081042B8 @ =0x00200100 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + beq _081042CE + ldr r0, _081042BC @ =0x00100100 + ands r2, r0 + cmp r2, r0 + beq _081042E2 + b _081042E6 + .align 2, 0 +_081042B0: .4byte gUnknown_300500C +_081042B4: .4byte gUnknown_30030F0 +_081042B8: .4byte 0x00200100 +_081042BC: .4byte 0x00100100 +_081042C0: + ldr r0, _081042D4 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _081042D8 +_081042CE: + movs r0, 0x1 + b _081042E8 + .align 2, 0 +_081042D4: .4byte gUnknown_30030F0 +_081042D8: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _081042E6 +_081042E2: + movs r0, 0x2 + b _081042E8 +_081042E6: + movs r0, 0 +_081042E8: + pop {r1} + bx r1 + thumb_func_end sub_8104284 + + thumb_func_start sub_81042EC +sub_81042EC: @ 81042EC + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0810430C @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r5, r1, 0 + cmp r0, 0xC + bls _08104302 + b _08104656 +_08104302: + lsls r0, 2 + ldr r1, _08104310 @ =_08104314 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810430C: .4byte gUnknown_203ACF0 +_08104310: .4byte _08104314 + .align 2, 0 +_08104314: + .4byte _08104348 + .4byte _08104368 + .4byte _08104398 + .4byte _081043AC + .4byte _081043E0 + .4byte _08104418 + .4byte _08104508 + .4byte _08104528 + .4byte _08104538 + .4byte _0810455C + .4byte _081045F2 + .4byte _08104604 + .4byte _08104630 +_08104348: + movs r0, 0x3 + bl sub_80019D0 + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x1 + bl sub_80019D0 + ldr r0, _08104364 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x2 + b _08104654 + .align 2, 0 +_08104364: .4byte gUnknown_203ACF0 +_08104368: + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x1 + bl sub_80019D0 + ldr r1, _0810438C @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08104390 @ =sub_8102F80 + str r1, [r0] + ldr r0, _08104394 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0 + b _08104654 + .align 2, 0 +_0810438C: .4byte gUnknown_3005090 +_08104390: .4byte sub_8102F80 +_08104394: .4byte gUnknown_203ACF0 +_08104398: + ldr r0, [r5] + adds r0, 0x2C + movs r1, 0x1 + strb r1, [r0] + movs r0, 0 + bl sub_8105E1C + ldr r1, [r5] + movs r0, 0x3 + b _08104654 +_081043AC: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r4, _081043DC @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_8071E3C + ldr r1, [r4] + movs r0, 0x4 + b _08104654 + .align 2, 0 +_081043DC: .4byte gUnknown_203ACF0 +_081043E0: + ldr r0, _0810440C @ =0xffff7fff + ldr r1, _08104410 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x2 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + ldr r0, _08104414 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + b _08104654 + .align 2, 0 +_0810440C: .4byte 0xffff7fff +_08104410: .4byte 0x0000ffff +_08104414: .4byte gUnknown_203ACF0 +_08104418: + ldr r0, _0810444C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08104454 + bl sub_8106014 + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + ldr r0, _08104450 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x7 + b _08104654 + .align 2, 0 +_0810444C: .4byte gUnknown_30030F0 +_08104450: .4byte gUnknown_203ACF0 +_08104454: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08104484 + bl sub_8106014 + ldr r0, _08104478 @ =0xffff7fff + ldr r1, _0810447C @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _08104480 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x1 + b _08104654 + .align 2, 0 +_08104478: .4byte 0xffff7fff +_0810447C: .4byte 0x0000ffff +_08104480: .4byte gUnknown_203ACF0 +_08104484: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081044C0 + movs r0, 0x1 + bl sub_8104664 + cmp r0, 0 + beq _081044C0 + bl sub_8106014 + ldr r0, _081044B4 @ =0xffff7fff + ldr r1, _081044B8 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _081044BC @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x6 + b _08104654 + .align 2, 0 +_081044B4: .4byte 0xffff7fff +_081044B8: .4byte 0x0000ffff +_081044BC: .4byte gUnknown_203ACF0 +_081044C0: + ldr r0, _081044F8 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081044CE + b _081045EC +_081044CE: + movs r0, 0 + bl sub_8104664 + cmp r0, 0 + bne _081044DA + b _081045EC +_081044DA: + bl sub_8106014 + ldr r0, _081044FC @ =0xffff7fff + ldr r1, _08104500 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _08104504 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x6 + b _08104654 + .align 2, 0 +_081044F8: .4byte gUnknown_30030F0 +_081044FC: .4byte 0xffff7fff +_08104500: .4byte 0x0000ffff +_08104504: .4byte gUnknown_203ACF0 +_08104508: + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x1 + bl sub_80019D0 + ldr r0, _08104524 @ =gUnknown_203ACF0 + ldr r1, [r0] + ldr r0, [r1, 0x30] + adds r2, r1, 0 + adds r2, 0x5A + strh r0, [r2] + movs r0, 0x2 + b _08104654 + .align 2, 0 +_08104524: .4byte gUnknown_203ACF0 +_08104528: + bl sub_810603C + ldr r0, _08104534 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x8 + b _08104654 + .align 2, 0 +_08104534: .4byte gUnknown_203ACF0 +_08104538: + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _08104558 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x9 + b _08104654 + .align 2, 0 +_08104558: .4byte gUnknown_203ACF0 +_0810455C: + ldr r0, _08104580 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08104590 + ldr r0, _08104584 @ =0xffff7fff + ldr r1, _08104588 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _0810458C @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0xC + b _08104654 + .align 2, 0 +_08104580: .4byte gUnknown_30030F0 +_08104584: .4byte 0xffff7fff +_08104588: .4byte 0x0000ffff +_0810458C: .4byte gUnknown_203ACF0 +_08104590: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081045EC + movs r5, 0x1E + str r5, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _081045E8 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0xA + b _08104654 + .align 2, 0 +_081045E8: .4byte gUnknown_203ACF0 +_081045EC: + bl sub_8106B34 + b _08104656 +_081045F2: + bl sub_81067C0 + ldr r0, _08104600 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0xB + b _08104654 + .align 2, 0 +_08104600: .4byte gUnknown_203ACF0 +_08104604: + movs r0, 0 + bl sub_8105E1C + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, _0810462C @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + b _08104654 + .align 2, 0 +_0810462C: .4byte gUnknown_203ACF0 +_08104630: + bl sub_81067C0 + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0 + bl sub_80020BC + ldr r0, _08104660 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x1 +_08104654: + strb r0, [r1, 0x1] +_08104656: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104660: .4byte gUnknown_203ACF0 + thumb_func_end sub_81042EC + + thumb_func_start sub_8104664 +sub_8104664: @ 8104664 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08104684 @ =gUnknown_203ACF0 + ldr r3, [r0] + adds r2, r3, 0 + adds r2, 0x42 + ldrb r2, [r2] + mov r8, r0 + cmp r2, 0x4 + bgt _08104688 + cmp r2, 0x1 + bge _0810469C + b _0810468C + .align 2, 0 +_08104684: .4byte gUnknown_203ACF0 +_08104688: + cmp r2, 0x5 + beq _081046A8 +_0810468C: + mov r1, r8 + ldr r0, [r1] + movs r2, 0x36 + adds r2, r0 + mov r12, r2 + adds r6, r0, 0 + adds r6, 0x34 + b _081046B2 +_0810469C: + movs r0, 0x3A + adds r0, r3 + mov r12, r0 + adds r6, r3, 0 + adds r6, 0x38 + b _081046B2 +_081046A8: + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + adds r6, r3, 0 + adds r6, 0x3C +_081046B2: + mov r2, r12 + ldrh r1, [r2] + ldrh r0, [r6] + adds r3, r1, r0 + cmp r4, 0 + beq _08104700 + cmp r3, 0 + beq _0810474C + subs r3, 0x1 + cmp r3, 0 + blt _0810474C + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, 0x44] + lsls r2, r3, 3 + adds r0, r2, r0 + ldrh r0, [r0, 0x6] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081046FA + mov r5, r8 + movs r4, 0x1 + adds r1, r2, 0 +_081046E2: + subs r1, 0x8 + subs r3, 0x1 + cmp r3, 0 + blt _0810474C + ldr r0, [r5] + ldr r0, [r0, 0x44] + adds r0, r1, r0 + ldrh r0, [r0, 0x6] + ands r0, r4 + adds r2, r1, 0 + cmp r0, 0 + beq _081046E2 +_081046FA: + cmp r3, 0 + bge _08104750 + b _0810474C +_08104700: + mov r2, r8 + ldr r5, [r2] + adds r0, r5, 0 + adds r0, 0x48 + ldrh r4, [r0] + subs r0, r4, 0x1 + cmp r3, r0 + beq _0810474C + adds r3, 0x1 + cmp r3, r4 + bge _0810474C + ldr r0, [r5, 0x44] + lsls r2, r3, 3 + adds r0, r2, r0 + ldrh r0, [r0, 0x6] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08104740 + adds r1, r2, 0 + movs r7, 0x1 +_0810472A: + adds r1, 0x8 + adds r3, 0x1 + cmp r3, r4 + bge _0810474C + ldr r0, [r5, 0x44] + adds r0, r1, r0 + ldrh r0, [r0, 0x6] + ands r0, r7 + adds r2, r1, 0 + cmp r0, 0 + beq _0810472A +_08104740: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x48 + ldrh r0, [r0] + cmp r3, r0 + blt _08104750 +_0810474C: + movs r0, 0 + b _081047A6 +_08104750: + mov r0, r8 + ldr r1, [r0] + ldr r0, [r1, 0x44] + adds r0, r2, r0 + ldr r0, [r0, 0x4] + str r0, [r1, 0x30] + adds r1, 0x48 + ldrh r0, [r1] + cmp r0, 0x9 + bls _0810479C + cmp r3, 0x3 + bgt _08104770 + movs r0, 0 + mov r1, r12 + strh r0, [r1] + b _081047A2 +_08104770: + ldrh r1, [r1] + subs r0, r1, 0x4 + cmp r3, r0 + blt _08104790 + subs r0, 0x5 + mov r2, r12 + strh r0, [r2] + adds r1, r3, 0 + adds r1, 0x9 + mov r2, r8 + ldr r0, [r2] + adds r0, 0x48 + ldrh r0, [r0] + subs r1, r0 + strh r1, [r6] + b _081047A4 +_08104790: + subs r0, r3, 0x4 + mov r1, r12 + strh r0, [r1] + movs r0, 0x4 + strh r0, [r6] + b _081047A4 +_0810479C: + movs r0, 0 + mov r2, r12 + strh r0, [r2] +_081047A2: + strh r3, [r6] +_081047A4: + movs r0, 0x1 +_081047A6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8104664 + + thumb_func_start sub_81047B0 +sub_81047B0: @ 81047B0 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081047C2 + bl sub_8003E3C + movs r0, 0xFF + strb r0, [r4] +_081047C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81047B0 + + thumb_func_start sub_81047C8 +sub_81047C8: @ 81047C8 + push {r4-r7,lr} + sub sp, 0x18 + mov r12, r2 + ldr r2, [sp, 0x2C] + ldr r4, [sp, 0x30] + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r3, 24 + lsrs r6, r3, 24 + lsls r2, 24 + lsrs r3, r2, 24 + lsls r4, 24 + lsrs r0, r4, 24 + cmp r0, 0x4 + bhi _08104852 + lsls r0, 2 + ldr r1, _081047F4 @ =_081047F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081047F4: .4byte _081047F8 + .align 2, 0 +_081047F8: + .4byte _0810480C + .4byte _0810481A + .4byte _08104828 + .4byte _08104836 + .4byte _08104844 +_0810480C: + add r1, sp, 0x14 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x3 + b _08104850 +_0810481A: + add r1, sp, 0x14 + movs r0, 0 + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x1 + b _08104850 +_08104828: + add r1, sp, 0x14 + movs r0, 0 + strb r0, [r1] + movs r0, 0xF + strb r0, [r1, 0x1] + movs r0, 0xE + b _08104850 +_08104836: + add r1, sp, 0x14 + movs r0, 0 + strb r0, [r1] + movs r0, 0xB + strb r0, [r1, 0x1] + movs r0, 0x1 + b _08104850 +_08104844: + add r1, sp, 0x14 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x2 +_08104850: + strb r0, [r1, 0x2] +_08104852: + negs r0, r5 + orrs r0, r5 + lsrs r0, 31 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + add r0, sp, 0x14 + str r0, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + mov r0, r12 + str r0, [sp, 0x10] + adds r0, r7, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_812E5A4 + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81047C8 + + thumb_func_start sub_8104880 +sub_8104880: @ 8104880 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r9, r0 + mov r10, r1 + adds r4, r2, 0 + ldr r6, [sp, 0x2C] + ldr r0, [sp, 0x30] + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r4, 16 + lsrs r4, 16 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + add r5, sp, 0x8 + adds r0, r4, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5] + add r5, sp, 0x8 + adds r0, r4, 0 + movs r1, 0x64 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5, 0x1] + add r5, sp, 0x8 + adds r0, r4, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r5, 0x2] + add r1, sp, 0x8 + movs r0, 0xFF + strb r0, [r1, 0x3] + str r6, [sp] + mov r0, r8 + str r0, [sp, 0x4] + mov r0, r9 + mov r1, r10 + add r2, sp, 0x8 + adds r3, r7, 0 + bl sub_81047C8 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8104880 + + thumb_func_start sub_810491C +sub_810491C: @ 810491C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r2, 0 + ldr r2, [sp, 0x30] + ldr r4, [sp, 0x34] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r5, 16 + lsrs r5, 16 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r4, 24 + lsrs r7, r4, 24 + add r4, sp, 0x8 + adds r0, r5, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + add r6, sp, 0x8 + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r6, 0x1] + add r5, sp, 0x8 + adds r0, r4, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r5, 0x2] + add r1, sp, 0x8 + movs r0, 0xFF + strb r0, [r1, 0x3] + adds r0, r1, 0 + ldrb r0, [r0] + cmp r0, 0xA1 + bne _081049A8 + movs r3, 0 + mov r2, sp + adds r2, 0xA +_0810499A: + strb r3, [r1] + adds r1, 0x1 + cmp r1, r2 + bgt _081049A8 + ldrb r0, [r1] + cmp r0, 0xA1 + beq _0810499A +_081049A8: + mov r0, r8 + str r0, [sp] + str r7, [sp, 0x4] + ldr r0, [sp, 0xC] + mov r1, r10 + add r2, sp, 0x8 + mov r3, r9 + bl sub_81047C8 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810491C + + thumb_func_start sub_81049CC +sub_81049CC: @ 81049CC + push {lr} + adds r1, r0, 0 + cmp r1, 0xC9 + beq _081049E8 + movs r0, 0x9A + lsls r0, 1 + cmp r1, r0 + bne _081049F4 + ldr r0, _081049E4 @ =gUnknown_300500C + ldr r0, [r0] + ldr r0, [r0, 0x20] + b _081049F6 + .align 2, 0 +_081049E4: .4byte gUnknown_300500C +_081049E8: + ldr r0, _081049F0 @ =gUnknown_300500C + ldr r0, [r0] + ldr r0, [r0, 0x1C] + b _081049F6 + .align 2, 0 +_081049F0: .4byte gUnknown_300500C +_081049F4: + movs r0, 0 +_081049F6: + pop {r1} + bx r1 + thumb_func_end sub_81049CC + + thumb_func_start sub_81049FC +sub_81049FC: @ 81049FC + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + adds r0, r5, 0 + bl sub_81049CC + adds r2, r0, 0 + lsrs r4, 20 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + str r6, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0x8 + movs r3, 0x1 + bl sub_810C228 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81049FC + + thumb_func_start sub_8104A34 +sub_8104A34: @ 8104A34 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + mov r8, r0 + mov r9, r1 + adds r0, r2, 0 + adds r4, r3, 0 + ldr r6, [sp, 0x24] + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + bl sub_8043298 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r2, _08104AAC @ =gUnknown_8415FFF + str r6, [sp] + movs r0, 0 + mov r10, r0 + str r0, [sp, 0x4] + mov r0, r8 + mov r1, r9 + adds r3, r4, 0 + bl sub_81047C8 + adds r4, 0x9 + lsls r4, 24 + lsrs r4, 24 + str r6, [sp] + mov r1, r10 + str r1, [sp, 0x4] + mov r0, r8 + mov r1, r9 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_8104880 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08104AAC: .4byte gUnknown_8415FFF + thumb_func_end sub_8104A34 + + thumb_func_start sub_8104AB0 +sub_8104AB0: @ 8104AB0 + push {r4-r7,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + lsls r2, 24 + cmp r2, 0 + beq _08104ACA + adds r0, r3, 0 + bl sub_8043298 + adds r3, r0, 0 +_08104ACA: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + lsrs r0, 19 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x7 + ands r3, r0 + movs r0, 0x80 + lsls r0, 17 + lsls r0, r3 + lsrs r6, r0, 24 + movs r0, 0 + mov r12, r0 + cmp r5, 0x1 + beq _08104B14 + cmp r5, 0x1 + bgt _08104AF4 + cmp r5, 0 + beq _08104AFE + b _08104BB0 +_08104AF4: + cmp r7, 0x2 + beq _08104B68 + cmp r7, 0x3 + beq _08104BA0 + b _08104BB0 +_08104AFE: + ldr r0, _08104B10 @ =gUnknown_300500C + ldr r0, [r0] + adds r0, 0x5C + adds r0, r4 + ldrb r1, [r0] + ands r1, r6 + cmp r1, 0 + beq _08104BB0 + b _08104B34 + .align 2, 0 +_08104B10: .4byte gUnknown_300500C +_08104B14: + ldr r0, _08104B5C @ =gUnknown_300500C + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x28 + adds r0, r4 + ldrb r1, [r0] + ands r1, r6 + cmp r1, 0 + beq _08104BB0 + adds r0, r2, 0 + adds r0, 0x5C + adds r0, r4 + ldrb r0, [r0] + ands r0, r6 + cmp r1, r0 + bne _08104BB0 +_08104B34: + ldr r0, _08104B60 @ =gUnknown_3005008 + ldr r2, [r0] + movs r3, 0xBF + lsls r3, 3 + adds r0, r2, r3 + adds r0, r4 + ldrb r0, [r0] + ands r0, r6 + cmp r1, r0 + bne _08104BB0 + ldr r3, _08104B64 @ =0x00003a18 + adds r0, r2, r3 + adds r0, r4 + ldrb r0, [r0] + ands r0, r6 + cmp r1, r0 + bne _08104BB0 + movs r0, 0x1 + mov r12, r0 + b _08104BB0 + .align 2, 0 +_08104B5C: .4byte gUnknown_300500C +_08104B60: .4byte gUnknown_3005008 +_08104B64: .4byte 0x00003a18 +_08104B68: + ldr r0, _08104B94 @ =gUnknown_300500C + ldr r1, [r0] + adds r1, 0x5C + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + orrs r0, r2 + strb r0, [r1] + ldr r3, _08104B98 @ =gUnknown_3005008 + ldr r1, [r3] + movs r0, 0xBF + lsls r0, 3 + adds r1, r0 + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + ldr r3, _08104B9C @ =0x00003a18 + adds r1, r3 + b _08104BA6 + .align 2, 0 +_08104B94: .4byte gUnknown_300500C +_08104B98: .4byte gUnknown_3005008 +_08104B9C: .4byte 0x00003a18 +_08104BA0: + ldr r0, _08104BB8 @ =gUnknown_300500C + ldr r1, [r0] + adds r1, 0x28 +_08104BA6: + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + orrs r0, r2 + strb r0, [r1] +_08104BB0: + mov r0, r12 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08104BB8: .4byte gUnknown_300500C + thumb_func_end sub_8104AB0 + + thumb_func_start sub_8104BBC +sub_8104BBC: @ 8104BBC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r5, 0 + cmp r1, 0 + beq _08104BD2 + cmp r1, 0x1 + beq _08104BF8 + b _08104C1E +_08104BD2: + movs r0, 0 +_08104BD4: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08104BF0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08104BF0: + adds r0, r4, 0 + cmp r0, 0x96 + bls _08104BD4 + b _08104C1E +_08104BF8: + movs r0, 0 + ldr r7, _08104C28 @ =0x00000181 +_08104BFC: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08104C18 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08104C18: + adds r0, r4, 0 + cmp r0, r7 + bls _08104BFC +_08104C1E: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08104C28: .4byte 0x00000181 + thumb_func_end sub_8104BBC + + thumb_func_start sub_8104C2C +sub_8104C2C: @ 8104C2C + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + movs r1, 0x14 + negs r1, r1 + adds r3, r1, 0 + subs r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + adds r2, r4, 0 + bl sub_81047C8 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104C2C + + thumb_func_start sub_8104C64 +sub_8104C64: @ 8104C64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x20 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + movs r0, 0xFF + lsls r0, 24 + adds r2, r0 + lsrs r2, 24 + mov r9, r2 + ldr r1, _08104D50 @ =gUnknown_845228C + ldr r2, _08104D54 @ =gUnknown_8452334 + mov r3, r9 + lsls r0, r3, 2 + adds r6, r0, r2 + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, r4, r0 + ldrb r2, [r0] + ldrb r3, [r0, 0x1] + movs r0, 0x8 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + movs r0, 0x3 + bl sub_8002228 + ldr r7, _08104D58 @ =gUnknown_203ACF0 + ldr r0, [r7] + adds r0, 0x20 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08104D6C + ldr r0, _08104D5C @ =gUnknown_84521C4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, [r6] + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, 8 + ldr r3, _08104D60 @ =0xffff00ff + ldr r2, [sp, 0x18] + ands r2, r3 + orrs r2, r0 + str r2, [sp, 0x18] + ldr r0, [r6] + adds r0, r4, r0 + ldrb r1, [r0, 0x1] + lsls r1, 16 + ldr r0, _08104D64 @ =0xff00ffff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x18] + adds r1, r5, 0x1 + lsls r1, 24 + lsrs r1, 16 + ldr r0, [sp, 0x1C] + ands r0, r3 + orrs r0, r1 + lsls r1, r5, 6 + adds r1, 0x8 + lsls r1, 16 + ldr r2, _08104D68 @ =0x0000ffff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x1C] + add r0, sp, 0x18 + bl sub_8003CE4 + ldr r1, [r7] + adds r1, 0x20 + adds r1, r5 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x20 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r0, [r7] + adds r0, 0x20 + adds r0, r5 + ldrb r0, [r0] + lsls r2, r5, 20 + movs r1, 0x80 + lsls r1, 13 + adds r2, r1 + lsrs r2, 16 + mov r1, r8 + bl sub_81049FC + ldr r0, [r7] + adds r0, 0x20 + adds r0, r5 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x20 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + b _08104D72 + .align 2, 0 +_08104D50: .4byte gUnknown_845228C +_08104D54: .4byte gUnknown_8452334 +_08104D58: .4byte gUnknown_203ACF0 +_08104D5C: .4byte gUnknown_84521C4 +_08104D60: .4byte 0xffff00ff +_08104D64: .4byte 0xff00ffff +_08104D68: .4byte 0x0000ffff +_08104D6C: + ldrb r0, [r1] + bl sub_8003FA0 +_08104D72: + ldr r6, _08104E60 @ =gUnknown_203ACF0 + ldr r0, [r6] + adds r0, 0x24 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08104E78 + mov r3, r8 + cmp r3, 0 + beq _08104E7E + ldr r0, _08104E64 @ =gUnknown_84521CC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _08104E68 @ =gUnknown_8452334 + mov r1, r9 + lsls r2, r1, 2 + adds r2, r0 + ldr r0, [r2] + lsls r1, r5, 2 + adds r0, r1, r0 + ldrb r0, [r0, 0x2] + add r3, sp, 0x18 + movs r4, 0 + strb r0, [r3, 0x1] + ldr r0, [r2] + adds r0, r1, r0 + ldrb r0, [r0, 0x3] + strb r0, [r3, 0x2] + adds r1, r5 + lsls r1, 3 + movs r0, 0x84 + lsls r0, 1 + adds r1, r0 + strh r1, [r3, 0x6] + adds r0, r3, 0 + bl sub_8003CE4 + ldr r1, [r6] + adds r1, 0x24 + adds r1, r5 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + ldr r1, _08104E6C @ =gUnknown_8440124 + movs r2, 0 + movs r3, 0 + bl sub_8004404 + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + str r4, [sp] + movs r1, 0 + mov r2, r8 + movs r3, 0xC + bl sub_8104A34 + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0xB + mov r2, r8 + muls r2, r1 + ldr r1, _08104E70 @ =gUnknown_8245EE0 + adds r2, r1 + movs r1, 0xD + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x2 + movs r3, 0x2 + bl sub_81047C8 + mov r0, r8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08104E42 + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + ldr r1, _08104E74 @ =gUnknown_8443600 + movs r3, 0x8 + str r3, [sp] + str r3, [sp, 0x4] + movs r2, 0x2 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + str r3, [sp, 0x10] + str r3, [sp, 0x14] + movs r2, 0 + movs r3, 0 + bl sub_80041F0 +_08104E42: + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r6] + adds r0, 0x24 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + b _08104E7E + .align 2, 0 +_08104E60: .4byte gUnknown_203ACF0 +_08104E64: .4byte gUnknown_84521CC +_08104E68: .4byte gUnknown_8452334 +_08104E6C: .4byte gUnknown_8440124 +_08104E70: .4byte gUnknown_8245EE0 +_08104E74: .4byte gUnknown_8443600 +_08104E78: + ldrb r0, [r1] + bl sub_8003FA0 +_08104E7E: + movs r0, 0x1 + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8104C64 + + thumb_func_start sub_8104E90 +sub_8104E90: @ 8104E90 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08104EBC @ =gUnknown_203ACF0 +_08104E96: + adds r1, r4, 0 + adds r1, 0x20 + ldr r0, [r5] + adds r0, r1 + bl sub_81047B0 + adds r1, r4, 0 + adds r1, 0x24 + ldr r0, [r5] + adds r0, r1 + bl sub_81047B0 + adds r4, 0x1 + cmp r4, 0x3 + ble _08104E96 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104EBC: .4byte gUnknown_203ACF0 + thumb_func_end sub_8104E90 + + thumb_func_start sub_8104EC0 +sub_8104EC0: @ 8104EC0 + push {r4,r5,lr} + sub sp, 0x20 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r1, _08104F08 @ =gUnknown_8416002 + mov r0, sp + bl sub_8008D84 + adds r1, r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + adds r1, r0, 0 + movs r0, 0xBA + strb r0, [r1] + adds r1, 0x1 + adds r0, r1, 0 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + mov r0, sp + movs r1, 0x2 + bl sub_8106E78 + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104F08: .4byte gUnknown_8416002 + thumb_func_end sub_8104EC0 + + thumb_func_start sub_8104F0C +sub_8104F0C: @ 8104F0C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x1E + str r0, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r5, 0x20 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + ldr r5, _08104F80 @ =gUnknown_203ACF0 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + adds r1, 0x2B + ldrb r1, [r1] + bl sub_81068DC + movs r0, 0 + movs r1, 0xFF + bl sub_800445C + cmp r6, 0 + beq _08104F88 + ldr r1, _08104F84 @ =gUnknown_8452344 + ldr r0, [r5] + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl sub_8106E78 + b _08104FD0 + .align 2, 0 +_08104F80: .4byte gUnknown_203ACF0 +_08104F84: .4byte gUnknown_8452344 +_08104F88: + ldr r1, _08105048 @ =gUnknown_8452344 + ldr r0, [r5] + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl sub_8106E78 + ldr r0, [r5] + adds r0, 0x2B + ldrb r0, [r0] + bl sub_8106AF8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, [r5] + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl sub_8106AF8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + adds r1, r4, 0 + movs r3, 0xA0 + bl sub_8104EC0 +_08104FD0: + movs r0, 0 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + cmp r6, 0 + bne _08104FEA + ldr r0, _0810504C @ =gUnknown_8415F6C + bl sub_8104C2C +_08104FEA: + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + ldr r5, _08105050 @ =gUnknown_203ACF0 + ldr r1, [r5] + ldrh r0, [r1, 0x18] + ldr r4, _08105054 @ =0x0000ffff + cmp r0, r4 + beq _08105008 + adds r1, 0x2C + ldrb r2, [r1] + movs r1, 0 + bl sub_8104C64 +_08105008: + ldr r1, [r5] + ldrh r0, [r1, 0x1A] + cmp r0, r4 + beq _0810501A + adds r1, 0x2C + ldrb r2, [r1] + movs r1, 0x1 + bl sub_8104C64 +_0810501A: + ldr r1, [r5] + ldrh r0, [r1, 0x1C] + cmp r0, r4 + beq _0810502C + adds r1, 0x2C + ldrb r2, [r1] + movs r1, 0x2 + bl sub_8104C64 +_0810502C: + ldr r1, [r5] + ldrh r0, [r1, 0x1E] + cmp r0, r4 + beq _0810503E + adds r1, 0x2C + ldrb r2, [r1] + movs r1, 0x3 + bl sub_8104C64 +_0810503E: + movs r0, 0 + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08105048: .4byte gUnknown_8452344 +_0810504C: .4byte gUnknown_8415F6C +_08105050: .4byte gUnknown_203ACF0 +_08105054: .4byte 0x0000ffff + thumb_func_end sub_8104F0C + + thumb_func_start sub_8105058 +sub_8105058: @ 8105058 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + cmp r0, 0xFF + bne _081050C0 + ldr r7, _081050B4 @ =gUnknown_84406C8 + movs r6, 0xB0 + lsls r6, 15 + movs r5, 0xA4 + lsls r5, 15 + movs r4, 0x3 +_0810507A: + lsrs r1, r5, 16 + adds r0, r7, 0 + movs r2, 0x2 + bl sub_80703EC + lsrs r1, r6, 16 + adds r0, r7, 0x2 + movs r2, 0x2 + bl sub_80703EC + movs r0, 0x80 + lsls r0, 13 + adds r6, r0 + adds r5, r0 + subs r4, 0x1 + cmp r4, 0 + bge _0810507A + ldr r0, _081050B4 @ =gUnknown_84406C8 + ldr r1, _081050B8 @ =0x00000141 + movs r2, 0x2 + bl sub_80703EC + ldr r0, _081050BC @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r0, 0x2E + movs r1, 0 + strb r1, [r0] + b _0810515E + .align 2, 0 +_081050B4: .4byte gUnknown_84406C8 +_081050B8: .4byte 0x00000141 +_081050BC: .4byte gUnknown_203ACF0 +_081050C0: + ldr r2, _08105120 @ =gUnknown_203ACF0 + ldr r1, [r2] + adds r1, 0x2E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x2E + ldrb r0, [r1] + cmp r0, 0x10 + bne _081050DC + movs r0, 0 + strb r0, [r1] +_081050DC: + ldr r0, [r2] + adds r0, 0x2E + ldrb r0, [r0] + lsrs r7, r0, 2 + movs r4, 0 + lsls r0, r7, 2 + mov r8, r0 + ldr r0, _08105124 @ =gUnknown_84406CC + mov r10, r0 + movs r6, 0xB0 + lsls r6, 15 + movs r5, 0xA4 + lsls r5, 15 + movs r0, 0x4 + negs r0, r0 + add r0, r10 + mov r9, r0 +_081050FE: + ldr r0, [sp] + cmp r4, r0 + bne _0810512C + lsrs r1, r5, 16 + mov r0, r8 + add r0, r10 + movs r2, 0x2 + bl sub_80703EC + lsrs r1, r6, 16 + ldr r0, _08105128 @ =gUnknown_84406CE + add r0, r8 + movs r2, 0x2 + bl sub_80703EC + b _08105142 + .align 2, 0 +_08105120: .4byte gUnknown_203ACF0 +_08105124: .4byte gUnknown_84406CC +_08105128: .4byte gUnknown_84406CE +_0810512C: + lsrs r1, r5, 16 + mov r0, r9 + movs r2, 0x2 + bl sub_80703EC + lsrs r1, r6, 16 + mov r0, r9 + adds r0, 0x2 + movs r2, 0x2 + bl sub_80703EC +_08105142: + lsls r1, r7, 2 + movs r0, 0x80 + lsls r0, 13 + adds r6, r0 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x3 + ble _081050FE + ldr r0, _08105170 @ =gUnknown_84406CC + adds r0, r1, r0 + ldr r1, _08105174 @ =0x00000141 + movs r2, 0x2 + bl sub_80703EC +_0810515E: + 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 +_08105170: .4byte gUnknown_84406CC +_08105174: .4byte 0x00000141 + thumb_func_end sub_8105058 + + thumb_func_start sub_8105178 +sub_8105178: @ 8105178 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 24 + movs r3, 0xFF + lsls r3, 24 + adds r2, r3 + ldr r3, _081051A8 @ =gUnknown_8452334 + lsrs r2, 22 + adds r2, r3 + ldr r2, [r2] + lsrs r1, 22 + adds r1, r2 + ldrb r3, [r1, 0x2] + lsls r3, 3 + ldrb r2, [r1, 0x3] + lsls r2, 3 + adds r1, r3, 0 + movs r3, 0 + bl sub_8133CAC + pop {r0} + bx r0 + .align 2, 0 +_081051A8: .4byte gUnknown_8452334 + thumb_func_end sub_8105178 + + thumb_func_start sub_81051AC +sub_81051AC: @ 81051AC + push {lr} + lsls r1, 24 + lsls r3, 24 + lsrs r1, 23 + adds r1, r0, r1 + lsrs r3, 23 + adds r2, r3 + movs r3, 0x13 +_081051BC: + ldrh r0, [r1] + strh r0, [r2] + adds r2, 0x40 + adds r1, 0x40 + subs r3, 0x1 + cmp r3, 0 + bge _081051BC + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_81051AC + + thumb_func_start sub_81051D0 +sub_81051D0: @ 81051D0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r2, 24 + lsrs r2, 23 + adds r1, r2 + movs r2, 0x13 +_081051DE: + strh r0, [r1] + adds r1, 0x40 + subs r2, 0x1 + cmp r2, 0 + bge _081051DE + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_81051D0 + + thumb_func_start sub_81051F0 +sub_81051F0: @ 81051F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl sub_8002008 + mov r10, r0 + movs r0, 0x2 + bl sub_8002008 + mov r9, r0 + movs r0, 0x3 + bl sub_8002008 + mov r8, r0 + ldr r0, _0810526C @ =gUnknown_203ACF0 + ldr r0, [r0] + ldr r0, [r0, 0x5C] + movs r1, 0x80 + lsls r1, 5 + adds r1, r0, r1 + str r1, [sp, 0x4] + movs r1, 0x80 + lsls r1, 4 + adds r1, r0, r1 + str r1, [sp, 0x8] + str r0, [sp, 0xC] + movs r0, 0 + str r0, [sp] + ldr r1, _08105270 @ =gUnknown_8452388 + movs r7, 0 + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 1 + adds r6, r0, r1 +_08105242: + ldrb r4, [r6] + cmp r4, 0x1E + bne _08105274 + lsrs r4, r7, 24 + movs r0, 0 + mov r1, r10 + adds r2, r4, 0 + bl sub_81051D0 + movs r0, 0 + mov r1, r9 + adds r2, r4, 0 + bl sub_81051D0 + movs r0, 0xC + mov r1, r8 + adds r2, r4, 0 + bl sub_81051D0 + b _0810529A + .align 2, 0 +_0810526C: .4byte gUnknown_203ACF0 +_08105270: .4byte gUnknown_8452388 +_08105274: + lsrs r5, r7, 24 + ldr r0, [sp, 0x4] + adds r1, r4, 0 + mov r2, r10 + adds r3, r5, 0 + bl sub_81051AC + ldr r0, [sp, 0x8] + adds r1, r4, 0 + mov r2, r9 + adds r3, r5, 0 + bl sub_81051AC + ldr r0, [sp, 0xC] + adds r1, r4, 0 + mov r2, r8 + adds r3, r5, 0 + bl sub_81051AC +_0810529A: + movs r1, 0x80 + lsls r1, 17 + adds r7, r1 + adds r6, 0x1 + ldr r0, [sp] + adds r0, 0x1 + str r0, [sp] + cmp r0, 0x1D + ble _08105242 + movs r0, 0x1 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x3 + bl sub_80020BC + movs r0, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81051F0 + + thumb_func_start sub_81052D0 +sub_81052D0: @ 81052D0 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_806E25C + cmp r0, 0 + beq _081052E8 + ldr r0, _081052E4 @ =gUnknown_84406E0 + b _081052EA + .align 2, 0 +_081052E4: .4byte gUnknown_84406E0 +_081052E8: + ldr r0, _08105304 @ =gUnknown_84404C8 +_081052EA: + ldrh r4, [r0, 0xE] + ldr r1, _08105308 @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x2] + adds r5, r1, 0 + cmp r0, 0x9 + bls _081052FA + b _0810557C +_081052FA: + lsls r0, 2 + ldr r1, _0810530C @ =_08105310 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08105304: .4byte gUnknown_84404C8 +_08105308: .4byte gUnknown_203ACF0 +_0810530C: .4byte _08105310 + .align 2, 0 +_08105310: + .4byte _08105338 + .4byte _08105358 + .4byte _08105364 + .4byte _08105384 + .4byte _081053DC + .4byte _0810547C + .4byte _08105492 + .4byte _081054F0 + .4byte _08105528 + .4byte _0810555C +_08105338: + movs r0, 0xC0 + lsls r0, 5 + bl sub_8002B9C + ldr r1, _08105350 @ =gUnknown_203ACF0 + ldr r1, [r1] + str r0, [r1, 0x5C] + cmp r6, 0 + beq _08105354 + movs r0, 0x6 + b _0810557A + .align 2, 0 +_08105350: .4byte gUnknown_203ACF0 +_08105354: + movs r0, 0x2 + b _0810557A +_08105358: + ldr r0, [r5] + ldr r0, [r0, 0x5C] + bl sub_8002BC4 + movs r0, 0x1 + b _0810557E +_08105364: + ldr r0, _0810537C @ =0x00007fff + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _08105380 @ =gUnknown_203ACF0 + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + b _0810557A + .align 2, 0 +_0810537C: .4byte 0x00007fff +_08105380: .4byte gUnknown_203ACF0 +_08105384: + movs r0, 0x1E + str r0, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0x3 + movs r1, 0xC + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r5, 0x20 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r0, 0x1 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x3 + bl sub_80020BC + ldr r0, _081053D8 @ =gUnknown_203ACF0 + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + b _0810557A + .align 2, 0 +_081053D8: .4byte gUnknown_203ACF0 +_081053DC: + ldr r0, _08105474 @ =0x00007fff + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8070588 + movs r0, 0 + bl sub_8104F0C + movs r0, 0x3 + bl sub_8002008 + ldr r6, _08105478 @ =gUnknown_203ACF0 + ldr r1, [r6] + ldr r1, [r1, 0x5C] + movs r4, 0x80 + lsls r4, 2 + adds r2, r4, 0 + bl CpuFastSet + movs r0, 0x2 + bl sub_8002008 + ldr r1, [r6] + ldr r1, [r1, 0x5C] + movs r2, 0x80 + lsls r2, 4 + adds r1, r2 + adds r2, r4, 0 + bl CpuFastSet + movs r0, 0x1 + bl sub_8002008 + ldr r1, [r6] + ldr r1, [r1, 0x5C] + movs r2, 0x80 + lsls r2, 5 + adds r1, r2 + adds r2, r4, 0 + bl CpuFastSet + movs r0, 0x1E + str r0, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0x3 + movs r1, 0xC + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r5, 0x20 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + ldr r1, [r6] + movs r0, 0 + strb r0, [r1, 0x3] + ldr r1, [r6] + b _081054DC + .align 2, 0 +_08105474: .4byte 0x00007fff +_08105478: .4byte gUnknown_203ACF0 +_0810547C: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + cmp r0, 0x9 + bhi _08105578 + bl sub_81051F0 + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + b _0810557C +_08105492: + movs r0, 0x3 + bl sub_8002008 + ldr r4, _081054EC @ =gUnknown_203ACF0 + ldr r1, [r4] + ldr r1, [r1, 0x5C] + movs r5, 0x80 + lsls r5, 2 + adds r2, r5, 0 + bl CpuFastSet + movs r0, 0x2 + bl sub_8002008 + ldr r1, [r4] + ldr r1, [r1, 0x5C] + movs r2, 0x80 + lsls r2, 4 + adds r1, r2 + adds r2, r5, 0 + bl CpuFastSet + movs r0, 0x1 + bl sub_8002008 + ldr r1, [r4] + ldr r1, [r1, 0x5C] + movs r2, 0x80 + lsls r2, 5 + adds r1, r2 + adds r2, r5, 0 + bl CpuFastSet + ldr r1, [r4] + movs r0, 0x9 + strb r0, [r1, 0x3] + ldr r1, [r4] +_081054DC: + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + movs r0, 0x6B + bl sub_80722CC + b _0810557C + .align 2, 0 +_081054EC: .4byte gUnknown_203ACF0 +_081054F0: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + cmp r0, 0 + beq _08105506 + bl sub_81051F0 + ldr r1, [r5] + ldrb r0, [r1, 0x3] + subs r0, 0x1 + strb r0, [r1, 0x3] + b _0810557C +_08105506: + ldrb r0, [r1, 0x2] + bl sub_81051F0 + ldr r0, _08105524 @ =0x00007fff + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl sub_8070588 + ldr r1, [r5] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + b _0810557A + .align 2, 0 +_08105524: .4byte 0x00007fff +_08105528: + ldr r2, _08105554 @ =gUnknown_2037AB8 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + movs r0, 0 + bl sub_8104F0C + movs r0, 0x1 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x3 + bl sub_80020BC + ldr r0, _08105558 @ =gUnknown_203ACF0 + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + b _0810557A + .align 2, 0 +_08105554: .4byte gUnknown_2037AB8 +_08105558: .4byte gUnknown_203ACF0 +_0810555C: + ldr r2, _08105588 @ =gUnknown_2037AB8 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0810558C @ =0x00007fff + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + ldr r0, _08105590 @ =gUnknown_203ACF0 + ldr r1, [r0] +_08105578: + movs r0, 0x1 +_0810557A: + strb r0, [r1, 0x2] +_0810557C: + movs r0, 0 +_0810557E: + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08105588: .4byte gUnknown_2037AB8 +_0810558C: .4byte 0x00007fff +_08105590: .4byte gUnknown_203ACF0 + thumb_func_end sub_81052D0 + + thumb_func_start sub_8105594 +sub_8105594: @ 8105594 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _081055C0 @ =gUnknown_203ACF0 + ldr r3, [r0] + adds r2, r3, 0 + adds r2, 0x2C + ldrb r0, [r2] + cmp r0, 0 + bne _081055C8 + ldr r0, _081055C4 @ =gUnknown_8452334 + ldr r0, [r0] + ldrb r3, [r0, 0x2] + ldrb r1, [r0, 0x3] + b _081055E2 + .align 2, 0 +_081055C0: .4byte gUnknown_203ACF0 +_081055C4: .4byte gUnknown_8452334 +_081055C8: + ldr r1, _08105634 @ =gUnknown_8452334 + ldrb r0, [r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + adds r1, r3, 0 + adds r1, 0x2D + ldrb r1, [r1] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r3, [r1, 0x2] + ldrb r1, [r1, 0x3] +_081055E2: + lsls r0, r4, 26 + movs r2, 0xC0 + lsls r2, 19 + adds r0, r2 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r2, r4, 1 + adds r0, r2, 0x3 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + ldr r0, [sp, 0x8] + cmp r0, 0x1B + bls _08105602 + movs r0, 0x1C + str r0, [sp, 0x8] +_08105602: + ldr r0, [sp, 0xC] + cmp r0, 0xD + bls _0810560C + movs r0, 0xE + str r0, [sp, 0xC] +_0810560C: + subs r0, r3, r2 + lsls r0, 16 + subs r1, r4 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x10] + lsrs r6, r0, 16 + asrs r1, r0, 16 + ldr r2, [sp, 0x8] + adds r0, r1, r2 + adds r0, 0x2 + cmp r0, 0x1D + ble _08105638 + adds r0, r1, 0 + adds r0, 0x1C + adds r1, r6, r2 + subs r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + b _0810563E + .align 2, 0 +_08105634: .4byte gUnknown_8452334 +_08105638: + cmp r1, 0 + bge _0810563E + movs r6, 0 +_0810563E: + ldr r3, [sp, 0x10] + lsls r0, r3, 16 + asrs r1, r0, 16 + ldr r2, [sp, 0xC] + adds r0, r1, r2 + adds r0, 0x2 + cmp r0, 0x11 + ble _0810565E + adds r0, r1, 0 + adds r0, 0x10 + adds r1, r3, r2 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + b _08105666 +_0810565E: + cmp r1, 0x1 + bgt _08105666 + movs r3, 0x2 + str r3, [sp, 0x10] +_08105666: + ldr r1, [sp, 0xC] + lsrs r0, r1, 1 + adds r0, 0x2 + ldr r2, [sp, 0x10] + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + add r10, r0 + mov r3, r10 + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + lsls r2, r6, 24 + lsrs r2, 24 + str r2, [sp, 0x14] + ldr r0, [sp, 0x10] + lsls r4, r0, 24 + lsrs r4, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x4 + adds r3, r4, 0 + bl sub_8002454 + adds r6, 0x1 + lsls r2, r6, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + ldr r1, [sp, 0x8] + str r1, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x5 + adds r3, r4, 0 + bl sub_8002454 + ldr r1, _081057EC @ =0x00000404 + ldr r2, [sp, 0x8] + lsls r2, 24 + asrs r2, 24 + mov r8, r2 + add r8, r6 + mov r3, r8 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + mov r2, r8 + adds r3, r4, 0 + bl sub_8002454 + ldr r6, [sp, 0x10] + adds r6, 0x1 + ldr r0, [sp, 0xC] + lsls r4, r0, 24 + asrs r4, 24 + adds r4, r6 + lsls r4, 24 + lsrs r4, 24 + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0xA + ldr r2, [sp, 0x14] + adds r3, r4, 0 + bl sub_8002454 + ldr r1, [sp, 0x8] + str r1, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0xB + ldr r2, [sp, 0x18] + adds r3, r4, 0 + bl sub_8002454 + ldr r1, _081057F0 @ =0x0000040a + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + mov r2, r8 + adds r3, r4, 0 + bl sub_8002454 + lsls r3, r6, 24 + lsrs r3, 24 + str r3, [sp, 0x1C] + str r5, [sp] + mov r2, r10 + ldr r3, [sp, 0x10] + subs r6, r2, r3 + subs r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x6 + ldr r2, [sp, 0x14] + ldr r3, [sp, 0x1C] + bl sub_8002454 + mov r0, r10 + lsls r3, r0, 24 + lsrs r3, 24 + str r3, [sp, 0x20] + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x7 + ldr r2, [sp, 0x14] + bl sub_8002454 + movs r1, 0x1 + add r1, r10 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + str r5, [sp] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + adds r4, r2, r3 + mov r0, r10 + subs r4, r0 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x9 + ldr r2, [sp, 0x14] + mov r3, r9 + bl sub_8002454 + ldr r1, _081057F4 @ =0x00000406 + str r5, [sp] + str r6, [sp, 0x4] + adds r0, r7, 0 + mov r2, r8 + ldr r3, [sp, 0x1C] + bl sub_8002454 + ldr r1, _081057F8 @ =0x00000407 + str r5, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + mov r2, r8 + ldr r3, [sp, 0x20] + bl sub_8002454 + ldr r1, _081057FC @ =0x00000409 + str r5, [sp] + str r4, [sp, 0x4] + adds r0, r7, 0 + mov r2, r8 + mov r3, r9 + bl sub_8002454 + ldr r1, [sp, 0x8] + str r1, [sp] + str r6, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x1 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl sub_8002454 + ldr r2, [sp, 0x8] + str r2, [sp] + str r5, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x8 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x20] + bl sub_8002454 + ldr r3, [sp, 0x8] + str r3, [sp] + str r4, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x2 + ldr r2, [sp, 0x18] + mov r3, r9 + bl sub_8002454 + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081057EC: .4byte 0x00000404 +_081057F0: .4byte 0x0000040a +_081057F4: .4byte 0x00000406 +_081057F8: .4byte 0x00000407 +_081057FC: .4byte 0x00000409 + thumb_func_end sub_8105594 + + thumb_func_start sub_8105800 +sub_8105800: @ 8105800 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + adds r0, r1, 0 + bl sub_8043298 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r2, _08105860 @ =gUnknown_844E850 + adds r5, r1, r2 + movs r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08105864 + ldrb r0, [r5] + cmp r0, 0 + beq _08105878 +_08105840: + mov r1, sp + adds r1, r4 + adds r1, 0x8 + adds r0, r5, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08105878 + cmp r4, 0xA + bls _08105840 + b _08105878 + .align 2, 0 +_08105860: .4byte gUnknown_844E850 +_08105864: + movs r1, 0xAC +_08105866: + mov r0, sp + adds r0, r4 + adds r0, 0x8 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xA + bls _08105866 +_08105878: + mov r1, sp + adds r1, r4 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + str r7, [sp] + movs r4, 0 + str r4, [sp, 0x4] + mov r0, r8 + movs r1, 0 + add r2, sp, 0x8 + adds r3, r6, 0 + bl sub_81047C8 + movs r0, 0 + add r1, sp, 0x8 + movs r2, 0 + bl sub_8005ED4 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _081058C0 @ =gUnknown_8415F8F + str r7, [sp] + str r4, [sp, 0x4] + mov r0, r8 + movs r1, 0 + adds r3, r6, 0 + bl sub_81047C8 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081058C0: .4byte gUnknown_8415F8F + thumb_func_end sub_8105800 + + thumb_func_start sub_81058C4 +sub_81058C4: @ 81058C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + adds r0, r1, 0 + bl sub_8043298 + ldr r2, _08105974 @ =gUnknown_844E850 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r4, [r1, 0xC] + ldr r1, _08105978 @ =gUnknown_8415F98 + mov r10, r1 + movs r3, 0 + add r2, sp, 0x8 + movs r1, 0xFC + strb r1, [r2] + adds r2, 0x1 + movs r1, 0x14 + strb r1, [r2] + adds r2, 0x1 + movs r1, 0x5 + strb r1, [r2] + mov r1, sp + adds r1, 0xB + strb r3, [r1] + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _081059CE + ldr r0, _0810597C @ =0x00002710 + muls r0, r4 + movs r1, 0xFE + bl __divsi3 + adds r5, r0, 0 + movs r1, 0xA + bl __umodsi3 + cmp r0, 0x4 + bls _0810593A + adds r5, 0xA +_0810593A: + adds r0, r5, 0 + movs r1, 0x78 + bl __udivsi3 + adds r6, r0, 0 + lsls r0, r6, 4 + subs r0, r6 + lsls r0, 3 + subs r0, r5, r0 + movs r1, 0xA + bl __udivsi3 + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0xA + bl __udivsi3 + adds r2, r0, 0 + cmp r2, 0 + bne _08105980 + add r0, sp, 0xC + strb r2, [r0] + mov r1, sp + adds r1, 0xD + adds r0, r6, 0 + adds r0, 0xA1 + strb r0, [r1] + b _08105998 + .align 2, 0 +_08105974: .4byte gUnknown_844E850 +_08105978: .4byte gUnknown_8415F98 +_0810597C: .4byte 0x00002710 +_08105980: + add r1, sp, 0xC + adds r0, r2, 0 + adds r0, 0xA1 + strb r0, [r1] + mov r4, sp + adds r4, 0xD + adds r0, r6, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4] +_08105998: + mov r1, sp + adds r1, 0xE + movs r0, 0xB4 + strb r0, [r1] + mov r4, sp + adds r4, 0xF + adds r0, r5, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + add r4, sp, 0x10 + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4] + mov r1, sp + adds r1, 0x11 + movs r0, 0xB2 + strb r0, [r1] + movs r2, 0xB + adds r1, 0x1 + movs r0, 0xFF + b _081059F2 +_081059CE: + add r0, sp, 0xC + movs r1, 0xAC + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + mov r2, sp + adds r2, 0xE + movs r0, 0xB4 + strb r0, [r2] + mov r0, sp + adds r0, 0xF + strb r1, [r0] + add r0, sp, 0x10 + strb r1, [r0] + movs r2, 0xA + mov r1, sp + adds r1, 0x11 + movs r0, 0xB2 +_081059F2: + strb r0, [r1] + mov r1, sp + adds r1, r2 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + mov r0, r8 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + mov r0, r9 + movs r1, 0 + mov r2, r10 + adds r3, r7, 0 + bl sub_81047C8 + adds r0, r7, 0 + adds r0, 0x1E + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r8 + str r1, [sp] + str r4, [sp, 0x4] + mov r0, r9 + movs r1, 0 + add r2, sp, 0x8 + adds r3, r7, 0 + bl sub_81047C8 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81058C4 + + thumb_func_start sub_8105A3C +sub_8105A3C: @ 8105A3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + adds r0, r1, 0 + bl sub_8043298 + ldr r2, _08105ACC @ =gUnknown_844E850 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r4, [r1, 0xE] + add r2, sp, 0x8 + movs r1, 0xFC + strb r1, [r2] + adds r2, 0x1 + movs r1, 0x14 + strb r1, [r2] + adds r2, 0x1 + movs r1, 0x5 + strb r1, [r2] + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + bne _08105A92 + b _08105BC4 +_08105A92: + ldr r7, _08105AD0 @ =0x000186a0 + adds r0, r4, 0 + muls r0, r7 + ldr r1, _08105AD4 @ =0x000011b8 + bl __divsi3 + adds r6, r0, 0 + movs r1, 0xA + bl __umodsi3 + cmp r0, 0x4 + bls _08105AAC + adds r6, 0xA +_08105AAC: + movs r5, 0 + mov r4, sp + adds r4, 0xB + adds r0, r6, 0 + adds r1, r7, 0 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _08105AD8 + movs r7, 0x4 + strb r5, [r4] + b _08105ADC + .align 2, 0 +_08105ACC: .4byte gUnknown_844E850 +_08105AD0: .4byte 0x000186a0 +_08105AD4: .4byte 0x000011b8 +_08105AD8: + movs r5, 0x1 + movs r7, 0x4 +_08105ADC: + ldr r1, _08105B14 @ =0x000186a0 + adds r0, r6, 0 + bl __umodsi3 + adds r6, r0, 0 + mov r4, sp + adds r4, r7 + adds r4, 0x8 + ldr r1, _08105B18 @ =0x00002710 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _08105B1C + cmp r5, 0 + bne _08105B1C + adds r0, r7, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r7, r1, 24 + add r0, sp + adds r0, 0x8 + strb r5, [r0] + b _08105B24 + .align 2, 0 +_08105B14: .4byte 0x000186a0 +_08105B18: .4byte 0x00002710 +_08105B1C: + movs r5, 0x1 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08105B24: + ldr r1, _08105B5C @ =0x00002710 + adds r0, r6, 0 + bl __umodsi3 + adds r6, r0, 0 + mov r4, sp + adds r4, r7 + adds r4, 0x8 + movs r1, 0xFA + lsls r1, 2 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _08105B60 + cmp r5, 0 + bne _08105B60 + adds r0, r7, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r7, r1, 24 + add r0, sp + adds r0, 0x8 + strb r5, [r0] + b _08105B66 + .align 2, 0 +_08105B5C: .4byte 0x00002710 +_08105B60: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08105B66: + movs r1, 0xFA + lsls r1, 2 + adds r0, r6, 0 + bl __umodsi3 + adds r6, r0, 0 + adds r1, r7, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r5, r7, 0 + mov r4, sp + adds r4, r1 + adds r4, 0x8 + adds r0, r6, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + adds r6, r0, 0 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r2, r7, 0 + mov r1, sp + adds r1, r5 + adds r1, 0x8 + movs r0, 0xAD + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + mov r4, sp + adds r4, r2 + adds r4, 0x8 + adds r0, r6, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + b _08105BE6 +_08105BC4: + mov r0, sp + adds r0, 0xB + movs r2, 0xAC + strb r2, [r0] + add r0, sp, 0xC + strb r2, [r0] + adds r0, 0x1 + strb r2, [r0] + adds r0, 0x1 + strb r2, [r0] + mov r1, sp + adds r1, 0xF + movs r0, 0xAD + strb r0, [r1] + movs r7, 0x9 + add r0, sp, 0x10 + strb r2, [r0] +_08105BE6: + adds r1, r7, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r2, r7, 0 + mov r0, sp + adds r0, r1 + adds r0, 0x8 + movs r4, 0 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r3, r7, 0 + mov r1, sp + adds r1, r2 + adds r1, 0x8 + movs r0, 0xFC + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r2, r7, 0 + mov r1, sp + adds r1, r3 + adds r1, 0x8 + movs r0, 0x14 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, sp + adds r0, r2 + adds r0, 0x8 + strb r4, [r0] + movs r2, 0 + movs r0, 0x21 + subs r1, r0, r7 + mov r5, r8 + adds r5, 0x1E + cmp r2, r1 + bcs _08105C60 + ldr r3, _08105CA8 @ =gUnknown_8415FA0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _08105C60 + adds r3, r1, 0 + ldr r4, _08105CA8 @ =gUnknown_8415FA0 + adds r1, r7, 0 + add r1, sp + adds r1, 0x8 +_08105C4C: + ldrb r0, [r4] + strb r0, [r1] + adds r4, 0x1 + adds r1, 0x1 + adds r2, 0x1 + cmp r2, r3 + bcs _08105C60 + ldrb r0, [r4] + cmp r0, 0xFF + bne _08105C4C +_08105C60: + adds r0, r7, r2 + mov r1, sp + adds r1, r0 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + mov r0, r9 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + mov r0, r10 + movs r1, 0 + ldr r2, _08105CAC @ =gUnknown_8415F9B + mov r3, r8 + bl sub_81047C8 + lsls r0, r5, 24 + lsrs r0, 24 + mov r8, r0 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + mov r0, r10 + movs r1, 0 + add r2, sp, 0x8 + mov r3, r8 + bl sub_81047C8 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08105CA8: .4byte gUnknown_8415FA0 +_08105CAC: .4byte gUnknown_8415F9B + thumb_func_end sub_8105A3C + + thumb_func_start sub_8105CB0 +sub_8105CB0: @ 8105CB0 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + adds r0, r1, 0 + bl sub_8043298 + adds r4, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08105D5C + ldr r1, _08105D44 @ =gUnknown_844E850 + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r1, 0x10 + adds r0, r1 + ldr r1, [r0] + str r1, [sp] + mov r0, sp + movs r3, 0 + strb r6, [r0, 0x4] + mov r2, sp + movs r0, 0x2 + strb r0, [r2, 0x5] + movs r0, 0x1 + strb r0, [r2, 0xA] + mov r0, sp + strb r3, [r0, 0xB] + mov r4, sp + ldrb r3, [r4, 0xC] + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r4, 0xC] + mov r3, sp + movs r0, 0x10 + strb r0, [r3, 0xC] + ldrb r0, [r3, 0xD] + ands r2, r0 + strb r2, [r3, 0xD] + mov r2, sp + movs r0, 0x20 + strb r0, [r2, 0xD] + movs r0, 0x2 + movs r2, 0 + bl sub_8005ED4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + adds r0, r5, r1 + cmp r0, 0 + ble _08105D48 + lsls r0, 24 + lsrs r5, r0, 24 + b _08105D4A + .align 2, 0 +_08105D44: .4byte gUnknown_844E850 +_08105D48: + movs r5, 0 +_08105D4A: + mov r0, sp + strb r5, [r0, 0x6] + strb r7, [r0, 0x7] + strb r5, [r0, 0x8] + strb r7, [r0, 0x9] + movs r1, 0xFF + movs r2, 0 + bl sub_8002CF4 +_08105D5C: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8105CB0 + + thumb_func_start sub_8105D64 +sub_8105D64: @ 8105D64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _08105E02 + ldr r1, _08105E14 @ =gUnknown_843FAB0 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + mov r12, r0 + ldr r7, _08105E18 @ =gUnknown_201C000 + movs r5, 0 + movs r1, 0 +_08105DA6: + mov r2, r12 + adds r0, r2, r1 + ldrb r3, [r0] + movs r4, 0 + adds r6, r1, 0x1 +_08105DB0: + lsls r1, r4, 1 + adds r2, r3, 0 + asrs r2, r1 + movs r0, 0x1 + ands r2, r0 + movs r0, 0x2 + lsls r0, r1 + ands r0, r3 + cmp r0, 0 + beq _08105DC8 + movs r0, 0x10 + orrs r2, r0 +_08105DC8: + adds r0, r7, r5 + strb r2, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08105DB0 + lsls r0, r6, 16 + lsrs r1, r0, 16 + cmp r1, 0x1F + bls _08105DA6 + movs r0, 0x10 + str r0, [sp] + str r0, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + mov r2, r8 + str r2, [sp, 0xC] + str r0, [sp, 0x10] + str r0, [sp, 0x14] + mov r0, r10 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0 + bl sub_80041F0 +_08105E02: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08105E14: .4byte gUnknown_843FAB0 +_08105E18: .4byte gUnknown_201C000 + thumb_func_end sub_8105D64 + + thumb_func_start sub_8105E1C +sub_8105E1C: @ 8105E1C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x3 + movs r1, 0x6 + bl sub_8105594 + movs r4, 0x1E + str r4, [sp] + movs r5, 0x14 + str r5, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r4, [sp] + str r5, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r4, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + ldr r0, _08105FD0 @ =gUnknown_84521D4 + bl sub_8003CE4 + ldr r4, _08105FD4 @ =gUnknown_203ACF0 + ldr r1, [r4] + adds r1, 0x4A + movs r2, 0 + mov r8, r2 + strb r0, [r1] + ldr r0, _08105FD8 @ =gUnknown_84521DC + bl sub_8003CE4 + ldr r1, [r4] + adds r1, 0x4B + strb r0, [r1] + ldr r0, _08105FDC @ =gUnknown_84521E4 + bl sub_8003CE4 + ldr r1, [r4] + adds r1, 0x4C + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x4A + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4A + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0x90 + bl sub_81049FC + ldr r0, [r4] + adds r0, 0x4A + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r4] + adds r0, 0x4A + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r4] + adds r0, 0x4B + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r2, [r1] + movs r5, 0x8 + str r5, [sp] + movs r1, 0 + movs r3, 0 + bl sub_8104A34 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r2, [r1] + movs r1, 0xB + muls r2, r1 + ldr r1, _08105FE0 @ =gUnknown_8245EE0 + adds r2, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0x2 + movs r3, 0x1C + bl sub_81047C8 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0 + movs r3, 0x18 + bl sub_8105800 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0 + movs r3, 0x24 + bl sub_81058C4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0 + movs r3, 0x30 + bl sub_8105A3C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4B + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0x58 + movs r3, 0x28 + bl sub_8105D64 + ldr r0, [r4] + adds r0, 0x4B + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r4] + adds r0, 0x4B + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r4] + adds r0, 0x4C + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x4C + ldrb r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + movs r2, 0 + movs r3, 0x8 + bl sub_8105CB0 + ldr r0, [r4] + adds r0, 0x4C + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r4] + adds r0, 0x4C + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + cmp r6, 0 + bne _08105FEC + ldr r2, _08105FE4 @ =gUnknown_8415FAD + movs r0, 0x2 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r3, 0x8 + bl sub_81047C8 + ldr r0, _08105FE8 @ =gUnknown_8415FB3 + bl sub_8104C2C + b _08105FF2 + .align 2, 0 +_08105FD0: .4byte gUnknown_84521D4 +_08105FD4: .4byte gUnknown_203ACF0 +_08105FD8: .4byte gUnknown_84521DC +_08105FDC: .4byte gUnknown_84521E4 +_08105FE0: .4byte gUnknown_8245EE0 +_08105FE4: .4byte gUnknown_8415FAD +_08105FE8: .4byte gUnknown_8415FB3 +_08105FEC: + ldr r0, _08106010 @ =gUnknown_8415FC8 + bl sub_8104C2C +_08105FF2: + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08106010: .4byte gUnknown_8415FC8 + thumb_func_end sub_8105E1C + + thumb_func_start sub_8106014 +sub_8106014: @ 8106014 + push {r4,lr} + ldr r4, _08106038 @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r0, 0x4A + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x4B + bl sub_81047B0 + ldr r0, [r4] + adds r0, 0x4C + bl sub_81047B0 + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08106038: .4byte gUnknown_203ACF0 + thumb_func_end sub_8106014 + + thumb_func_start sub_810603C +sub_810603C: @ 810603C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r6, _08106424 @ =gUnknown_203ACF0 + ldr r0, [r6] + adds r0, 0x5A + ldrh r0, [r0] + str r0, [sp, 0x1C] + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x18] + ldr r0, [sp, 0x1C] + movs r1, 0x1 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r7, 0x1C + movs r0, 0xE + mov r8, r0 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x4 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + ldr r1, _08106428 @ =0x00000404 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r2, 0x1D + movs r3, 0x2 + bl sub_8002454 + ldr r1, _0810642C @ =0x00000804 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r2, 0 + movs r3, 0x11 + bl sub_8002454 + ldr r1, _08106430 @ =0x00000c04 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r2, 0x1D + movs r3, 0x11 + bl sub_8002454 + str r7, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x5 + movs r2, 0x1 + movs r3, 0x2 + bl sub_8002454 + ldr r1, _08106434 @ =0x00000805 + str r7, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + movs r2, 0x1 + movs r3, 0x11 + bl sub_8002454 + str r4, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x6 + movs r2, 0 + movs r3, 0x3 + bl sub_8002454 + ldr r1, _08106438 @ =0x00000406 + str r4, [sp] + mov r2, r8 + str r2, [sp, 0x4] + movs r0, 0x3 + movs r2, 0x1D + movs r3, 0x3 + bl sub_8002454 + str r7, [sp] + mov r3, r8 + str r3, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8002454 + movs r5, 0x1E + str r5, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r7, 0xA + movs r0, 0x6 + mov r8, r0 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0x1D + movs r2, 0x1 + movs r3, 0x9 + bl sub_8002454 + ldr r1, _0810643C @ =0x0000041d + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r2, 0xC + movs r3, 0x9 + bl sub_8002454 + ldr r1, _08106440 @ =0x0000081d + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r2, 0x1 + movs r3, 0x10 + bl sub_8002454 + ldr r1, _08106444 @ =0x00000c1d + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r2, 0xC + movs r3, 0x10 + bl sub_8002454 + str r7, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0x1E + movs r2, 0x2 + movs r3, 0x9 + bl sub_8002454 + ldr r1, _08106448 @ =0x0000081e + str r7, [sp] + str r4, [sp, 0x4] + movs r0, 0 + movs r2, 0x2 + movs r3, 0x10 + bl sub_8002454 + str r4, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r0, 0 + movs r1, 0x1F + movs r2, 0x1 + movs r3, 0xA + bl sub_8002454 + ldr r1, _0810644C @ =0x0000041f + str r4, [sp] + mov r2, r8 + str r2, [sp, 0x4] + movs r0, 0 + movs r2, 0xC + movs r3, 0xA + bl sub_8002454 + str r5, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + bl sub_80CC204 + ldr r1, [r6] + adds r1, 0x64 + strb r0, [r1] + movs r3, 0x4 + mov r9, r3 + movs r4, 0x3 + ldr r0, [r6] + adds r0, 0x64 + ldrb r1, [r0] + movs r2, 0x1 +_081061E2: + adds r0, r1, 0 + asrs r0, r4 + ands r0, r2 + cmp r0, 0 + beq _081061F0 + movs r0, 0 + mov r9, r0 +_081061F0: + adds r4, 0x1 + cmp r4, 0x6 + ble _081061E2 + ldr r0, _08106450 @ =gUnknown_8452214 + bl sub_8003CE4 + ldr r5, _08106424 @ =gUnknown_203ACF0 + ldr r1, [r5] + adds r1, 0x4A + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x4A + ldrb r0, [r0] + ldr r1, _08106454 @ =gUnknown_8443620 + movs r2, 0 + movs r3, 0 + bl sub_8004404 + ldr r0, [r5] + adds r0, 0x4A + ldrb r4, [r0] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8004950 + adds r2, r0, 0 + add r2, r9 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80048BC + ldr r0, [r5] + adds r0, 0x4A + ldrb r0, [r0] + bl sub_8003FA0 + movs r4, 0 + mov r1, r9 + lsls r1, 27 + str r1, [sp, 0x20] + ldr r7, _08106458 @ =gUnknown_8452254 + adds r2, r7, 0x4 + mov r8, r2 +_08106246: + ldr r0, [r5] + adds r0, 0x64 + ldrb r1, [r0] + asrs r1, r4 + movs r0, 0x1 + ands r1, r0 + adds r6, r4, 0x1 + cmp r1, 0 + beq _081062B4 + lsls r4, 3 + adds r0, r4, r7 + ldr r0, [r0] + bl sub_8003CE4 + ldr r1, [r5] + adds r1, 0x4A + adds r1, r6 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x4A + adds r0, r6 + ldrb r0, [r0] + add r4, r8 + ldr r1, [r4] + movs r2, 0 + movs r3, 0 + bl sub_8004404 + ldr r0, [r5] + adds r0, 0x4A + adds r0, r6 + ldrb r4, [r0] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8004950 + adds r2, r0, 0 + add r2, r9 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80048BC + ldr r0, [r5] + adds r0, 0x4A + adds r0, r6 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r5] + adds r0, 0x4A + adds r0, r6 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 +_081062B4: + adds r4, r6, 0 + cmp r4, 0x6 + ble _08106246 + ldr r0, _0810645C @ =gUnknown_84521F4 + bl sub_8003CE4 + ldr r7, _08106424 @ =gUnknown_203ACF0 + ldr r1, [r7] + adds r1, 0x52 + movs r6, 0 + strb r0, [r1] + ldr r5, _08106460 @ =gUnknown_84521FC + adds r0, r5, 0 + bl sub_8003CE4 + ldr r1, [r7] + adds r1, 0x53 + strb r0, [r1] + ldr r3, _08106464 @ =gUnknown_8452204 + mov r8, r3 + mov r0, r8 + bl sub_8003CE4 + ldr r1, [r7] + adds r1, 0x54 + strb r0, [r1] + ldr r0, _08106468 @ =gUnknown_84521EC + bl sub_8003CE4 + ldr r1, [r7] + adds r1, 0x55 + strb r0, [r1] + ldr r0, _0810646C @ =gUnknown_845220C + bl sub_8003CE4 + ldr r1, [r7] + adds r1, 0x56 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x55 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + movs r0, 0xA0 + ldr r1, [sp, 0x1C] + bl sub_8107CD8 + ldr r0, [sp, 0x1C] + bl sub_81049CC + adds r2, r0, 0 + ldr r0, [r7] + adds r0, 0x55 + ldrb r0, [r0] + str r6, [sp] + ldr r1, [sp, 0x1C] + movs r3, 0 + bl sub_8107CF8 + ldr r0, [r7] + adds r0, 0x55 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x55 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r7] + adds r0, 0x53 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r4, _08106470 @ =gUnknown_8415FED + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + ldr r1, [r7] + adds r1, 0x53 + ldrb r1, [r1] + ldrb r3, [r5, 0x3] + lsls r3, 3 + subs r3, r0 + lsrs r0, r3, 31 + adds r3, r0 + asrs r3, 1 + lsls r3, 24 + lsrs r3, 24 + movs r5, 0x4 + str r5, [sp] + str r6, [sp, 0x4] + adds r0, r1, 0 + movs r1, 0 + adds r2, r4, 0 + bl sub_81047C8 + ldr r0, [r7] + adds r0, 0x53 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x53 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r7] + adds r0, 0x54 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r4, _08106474 @ =gUnknown_8415FE8 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + ldr r1, [r7] + adds r1, 0x54 + ldrb r1, [r1] + mov r2, r8 + ldrb r3, [r2, 0x3] + lsls r3, 3 + subs r3, r0 + lsrs r0, r3, 31 + adds r3, r0 + asrs r3, 1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + str r6, [sp, 0x4] + adds r0, r1, 0 + movs r1, 0 + adds r2, r4, 0 + bl sub_81047C8 + ldr r0, [r7] + adds r0, 0x54 + ldrb r4, [r0] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8004950 + adds r2, r0, 0 + add r2, r9 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80048BC + ldr r0, [r7] + adds r0, 0x54 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x54 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r7] + adds r0, 0x52 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + ldr r0, [r7] + adds r0, 0x52 + ldrb r0, [r0] + str r6, [sp] + movs r1, 0 + ldr r2, [sp, 0x1C] + movs r3, 0 + bl sub_8104A34 + b _08106478 + .align 2, 0 +_08106424: .4byte gUnknown_203ACF0 +_08106428: .4byte 0x00000404 +_0810642C: .4byte 0x00000804 +_08106430: .4byte 0x00000c04 +_08106434: .4byte 0x00000805 +_08106438: .4byte 0x00000406 +_0810643C: .4byte 0x0000041d +_08106440: .4byte 0x0000081d +_08106444: .4byte 0x00000c1d +_08106448: .4byte 0x0000081e +_0810644C: .4byte 0x0000041f +_08106450: .4byte gUnknown_8452214 +_08106454: .4byte gUnknown_8443620 +_08106458: .4byte gUnknown_8452254 +_0810645C: .4byte gUnknown_84521F4 +_08106460: .4byte gUnknown_84521FC +_08106464: .4byte gUnknown_8452204 +_08106468: .4byte gUnknown_84521EC +_0810646C: .4byte gUnknown_845220C +_08106470: .4byte gUnknown_8415FED +_08106474: .4byte gUnknown_8415FE8 +_08106478: + ldr r0, [r7] + adds r0, 0x52 + ldrb r0, [r0] + movs r1, 0xB + ldr r3, [sp, 0x1C] + adds r2, r3, 0 + muls r2, r1 + ldr r1, _081066B0 @ =gUnknown_8245EE0 + adds r2, r1 + movs r1, 0xC + str r1, [sp] + str r6, [sp, 0x4] + movs r1, 0x2 + movs r3, 0x3 + bl sub_81047C8 + ldr r0, [r7] + adds r0, 0x52 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x52 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + ldr r0, [r7] + adds r0, 0x56 + ldrb r0, [r0] + movs r1, 0 + bl sub_800445C + movs r0, 0xB0 + movs r1, 0x1 + bl sub_8107D38 + mov r0, r10 + cmp r0, 0 + beq _08106504 + ldr r0, [r7] + adds r0, 0x56 + ldrb r0, [r0] + ldr r1, _081066B4 @ =gUnknown_8254784 + ldr r2, [sp, 0x1C] + lsls r4, r2, 3 + subs r4, r2 + lsls r4, 2 + adds r4, r1 + ldrb r5, [r4, 0x6] + adds r1, r5, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + movs r3, 0x1 + bl sub_8107D68 + ldrb r1, [r4, 0x7] + cmp r5, r1 + beq _08106504 + ldr r0, [r7] + adds r0, 0x56 + ldrb r0, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x20 + movs r3, 0x1 + bl sub_8107D68 +_08106504: + ldr r7, _081066B8 @ =gUnknown_203ACF0 + ldr r0, [r7] + adds r0, 0x56 + ldrb r0, [r0] + bl sub_8003FA0 + ldr r0, [r7] + adds r0, 0x56 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + bl sub_810BB8C + ldr r0, _081066BC @ =gUnknown_8452368 + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl sub_80703EC + mov r3, r10 + cmp r3, 0 + bne _08106534 + b _081066D0 +_08106534: + ldr r0, [sp, 0x1C] + bl sub_81049CC + adds r2, r0, 0 + movs r0, 0x28 + str r0, [sp] + movs r0, 0x68 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + ldr r1, _081066C0 @ =0x0000ffff + str r1, [sp, 0xC] + ldr r0, [sp, 0x1C] + movs r1, 0x8 + movs r3, 0x1 + bl sub_810C1CC + ldr r1, [r7] + adds r1, 0x58 + strb r0, [r1] + ldr r2, _081066C4 @ =gUnknown_202063C + mov r10, r2 + ldr r0, [r7] + adds r0, 0x58 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x5] + movs r3, 0xF + mov r9, r3 + mov r0, r9 + ands r0, r2 + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [r7] + adds r0, 0x58 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x1] + subs r3, 0x13 + mov r8, r3 + mov r0, r8 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r7] + adds r0, 0x58 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x3] + movs r6, 0x3F + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1, 0x3] + ldr r0, [r7] + adds r0, 0x58 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r0, [r7] + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldr r1, _081066C8 @ =gUnknown_844E850 + ldr r2, [sp, 0x18] + lsls r4, r2, 3 + adds r4, r2 + lsls r4, 2 + adds r4, r1 + ldrh r1, [r4, 0x1C] + strh r1, [r0, 0x26] + ldrh r1, [r4, 0x1A] + str r1, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_80073BC + ldr r0, _081066CC @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + movs r1, 0x1 + bl sub_810C374 + lsls r0, 16 + lsrs r0, 16 + movs r3, 0 + str r3, [sp] + ldr r1, _081066C0 @ =0x0000ffff + str r1, [sp, 0x4] + movs r1, 0x1 + movs r2, 0x50 + movs r3, 0x68 + bl sub_810C2A4 + ldr r1, [r7] + adds r1, 0x59 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x59 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r1, [r0, 0x5] + mov r2, r9 + ands r2, r1 + movs r3, 0x20 + orrs r2, r3 + strb r2, [r0, 0x5] + ldr r0, [r7] + adds r0, 0x59 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r1, [r0, 0x1] + mov r2, r8 + ands r2, r1 + movs r3, 0x1 + orrs r2, r3 + strb r2, [r0, 0x1] + ldr r0, [r7] + adds r0, 0x59 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r1, [r0, 0x3] + ands r6, r1 + movs r1, 0x2 + orrs r6, r1 + strb r6, [r0, 0x3] + ldr r0, [r7] + adds r0, 0x59 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r1, [r0, 0x5] + ands r5, r1 + movs r1, 0x4 + orrs r5, r1 + strb r5, [r0, 0x5] + ldr r0, [r7] + adds r0, 0x59 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x26] + ldrh r1, [r4, 0x1E] + str r1, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80073BC + b _081066E2 + .align 2, 0 +_081066B0: .4byte gUnknown_8245EE0 +_081066B4: .4byte gUnknown_8254784 +_081066B8: .4byte gUnknown_203ACF0 +_081066BC: .4byte gUnknown_8452368 +_081066C0: .4byte 0x0000ffff +_081066C4: .4byte gUnknown_202063C +_081066C8: .4byte gUnknown_844E850 +_081066CC: .4byte gUnknown_300500C +_081066D0: + ldr r0, [r7] + adds r0, 0x58 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r7] + adds r0, 0x59 + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] +_081066E2: + ldr r1, _081067A8 @ =0x000007d1 + ldr r2, [sp, 0x20] + lsrs r3, r2, 24 + ldr r0, [sp, 0x1C] + movs r2, 0x3 + bl sub_8134230 + ldr r5, _081067AC @ =gUnknown_203ACF0 + ldr r1, [r5] + strb r0, [r1, 0x4] + ldr r0, [r5] + ldrb r0, [r0, 0x4] + bl sub_81344E0 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _0810675A + ldr r0, [r5] + adds r0, 0x4A + ldrb r0, [r0] + ldr r1, _081067B0 @ =gUnknown_8443D00 + movs r4, 0x58 + str r4, [sp] + movs r3, 0x10 + str r3, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + movs r2, 0x1C + str r2, [sp, 0xC] + str r4, [sp, 0x10] + str r3, [sp, 0x14] + movs r2, 0 + movs r3, 0 + bl sub_80041F0 + ldr r4, _081067B4 @ =gUnknown_8415FF2 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + ldr r1, [r5] + adds r1, 0x4A + ldrb r1, [r1] + movs r3, 0x60 + subs r3, r0 + lsrs r0, r3, 31 + adds r3, r0 + asrs r3, 1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1D + str r0, [sp] + str r6, [sp, 0x4] + adds r0, r1, 0 + movs r1, 0 + adds r2, r4, 0 + bl sub_81047C8 +_0810675A: + ldr r0, [r5] + adds r0, 0x4A + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + movs r1, 0xFF + bl sub_800445C + ldr r2, _081067B8 @ =gUnknown_8415FAD + movs r0, 0x2 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r3, 0x8 + bl sub_81047C8 + ldr r0, _081067BC @ =gUnknown_8415FCF + bl sub_8104C2C + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x1 + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081067A8: .4byte 0x000007d1 +_081067AC: .4byte gUnknown_203ACF0 +_081067B0: .4byte gUnknown_8443D00 +_081067B4: .4byte gUnknown_8415FF2 +_081067B8: .4byte gUnknown_8415FAD +_081067BC: .4byte gUnknown_8415FCF + thumb_func_end sub_810603C + + thumb_func_start sub_81067C0 +sub_81067C0: @ 81067C0 + push {r4,r5,lr} + ldr r4, _0810680C @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrb r0, [r0, 0x4] + bl sub_81343F4 + movs r5, 0 +_081067CE: + adds r1, r5, 0 + adds r1, 0x4A + ldr r0, [r4] + adds r0, r1 + bl sub_81047B0 + adds r5, 0x1 + cmp r5, 0xC + ble _081067CE + ldr r4, _0810680C @ =gUnknown_203ACF0 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x59 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081067F2 + bl sub_810C2E8 +_081067F2: + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x58 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08106802 + bl sub_810C214 +_08106802: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810680C: .4byte gUnknown_203ACF0 + thumb_func_end sub_81067C0 + + thumb_func_start sub_8106810 +sub_8106810: @ 8106810 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_806E25C + cmp r0, 0x1 + beq _08106830 + adds r0, r4, 0 + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x97 + bls _08106830 + movs r0, 0 + b _08106832 +_08106830: + movs r0, 0x1 +_08106832: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8106810 + + thumb_func_start sub_8106838 +sub_8106838: @ 8106838 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _08106888 @ =gUnknown_8452C4C + lsrs r0, 21 + adds r0, r1 + ldr r2, [r0] + lsls r1, r6, 3 + adds r1, r2 + ldrb r1, [r1, 0x4] + mov r8, r1 + movs r5, 0 + adds r7, r0, 0 +_08106858: + cmp r5, r8 + bge _0810688C + ldr r1, [r7] + lsls r0, r6, 3 + adds r0, r1 + ldr r1, [r0] + lsls r0, r5, 1 + adds r0, r1 + ldrh r4, [r0] + adds r0, r4, 0 + bl sub_8106810 + cmp r0, 0x1 + bne _0810688C + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _0810688C + movs r0, 0x1 + b _08106894 + .align 2, 0 +_08106888: .4byte gUnknown_8452C4C +_0810688C: + adds r5, 0x1 + cmp r5, 0x3 + ble _08106858 + movs r0, 0 +_08106894: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8106838 + + thumb_func_start sub_81068A0 +sub_81068A0: @ 81068A0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _081068C8 @ =gUnknown_8452C4C + lsls r0, r6, 3 + adds r0, r1 + ldrb r5, [r0, 0x4] + movs r4, 0 + cmp r4, r5 + bge _081068D2 +_081068B4: + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8106838 + lsls r0, 24 + cmp r0, 0 + beq _081068CC + movs r0, 0x1 + b _081068D4 + .align 2, 0 +_081068C8: .4byte gUnknown_8452C4C +_081068CC: + adds r4, 0x1 + cmp r4, r5 + blt _081068B4 +_081068D2: + movs r0, 0 +_081068D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81068A0 + + thumb_func_start sub_81068DC +sub_81068DC: @ 81068DC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _08106990 @ =gUnknown_8452C4C + lsls r0, r4, 3 + adds r0, r1 + ldr r1, [r0] + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0, 0x4] + mov r9, r0 + ldr r2, _08106994 @ =gUnknown_203ACF0 + ldr r0, [r2] + adds r0, 0x2C + movs r1, 0 + strb r1, [r0] + movs r5, 0 + ldr r0, _08106998 @ =0x0000ffff + adds r3, r0, 0 +_0810690C: + ldr r0, [r2] + lsls r1, r5, 1 + adds r0, 0x18 + adds r0, r1 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r5, 0x1 + cmp r5, 0x3 + ble _0810690C + movs r5, 0 + cmp r5, r9 + bge _08106982 + ldr r1, _08106990 @ =gUnknown_8452C4C + lsls r0, r4, 3 + adds r0, r1 + mov r8, r0 + lsls r7, r6, 3 +_08106930: + mov r1, r8 + ldr r0, [r1] + adds r0, r7, r0 + ldr r0, [r0] + lsls r6, r5, 1 + adds r0, r6, r0 + ldrh r4, [r0] + adds r0, r4, 0 + bl sub_8106810 + cmp r0, 0x1 + bne _0810697C + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + cmp r0, 0 + beq _0810697C + ldr r0, _08106994 @ =gUnknown_203ACF0 + ldr r1, [r0] + adds r2, r1, 0 + adds r2, 0x2C + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x18 + adds r1, r0 + mov r3, r8 + ldr r0, [r3] + adds r0, r7, r0 + ldr r0, [r0] + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] +_0810697C: + adds r5, 0x1 + cmp r5, r9 + blt _08106930 +_08106982: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08106990: .4byte gUnknown_8452C4C +_08106994: .4byte gUnknown_203ACF0 +_08106998: .4byte 0x0000ffff + thumb_func_end sub_81068DC + + thumb_func_start sub_810699C +sub_810699C: @ 810699C + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _081069F8 @ =gUnknown_8452C4C + lsls r0, r7, 3 + adds r0, r1 + ldrb r6, [r0, 0x4] + movs r2, 0xFF + movs r3, 0xFF + movs r5, 0 + cmp r5, r6 + bge _081069DE +_081069B6: + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r7, 0 + adds r1, r4, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl sub_8106838 + lsls r0, 24 + ldr r2, [sp] + ldr r3, [sp, 0x4] + cmp r0, 0 + beq _081069D8 + cmp r2, 0xFF + bne _081069D6 + adds r2, r4, 0 +_081069D6: + adds r3, r4, 0 +_081069D8: + adds r5, 0x1 + cmp r5, r6 + blt _081069B6 +_081069DE: + cmp r3, 0xFF + bne _08106A00 + ldr r2, _081069FC @ =gUnknown_203ACF0 + ldr r0, [r2] + adds r0, 0x29 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x2A + strb r1, [r0] + movs r0, 0x1 + b _08106A12 + .align 2, 0 +_081069F8: .4byte gUnknown_8452C4C +_081069FC: .4byte gUnknown_203ACF0 +_08106A00: + ldr r1, _08106A1C @ =gUnknown_203ACF0 + ldr r0, [r1] + adds r0, 0x29 + strb r2, [r0] + ldr r0, [r1] + adds r1, r3, 0x1 + adds r0, 0x2A + strb r1, [r0] + movs r0, 0 +_08106A12: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08106A1C: .4byte gUnknown_203ACF0 + thumb_func_end sub_810699C + + thumb_func_start sub_8106A20 +sub_8106A20: @ 8106A20 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r1, _08106A98 @ =gUnknown_8452C4C + str r1, [sp, 0x10] +_08106A3A: + ldr r2, [sp, 0x10] + ldrb r2, [r2, 0x4] + str r2, [sp, 0x8] + movs r7, 0 + cmp r7, r2 + bge _08106AD6 + ldr r0, [sp, 0x10] + str r0, [sp, 0xC] + movs r1, 0 + mov r9, r1 +_08106A4E: + ldr r2, [sp, 0xC] + ldr r0, [r2] + add r0, r9 + ldrb r6, [r0, 0x4] + movs r5, 0 + mov r8, r5 + cmp r5, r6 + bge _08106ACA + ldr r0, [sp, 0x10] + mov r10, r0 + ldr r3, _08106A9C @ =gUnknown_203ACF0 +_08106A64: + mov r1, r10 + ldr r0, [r1] + add r0, r9 + ldr r1, [r0] + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + adds r4, r0, 0 + ldr r2, [sp] + cmp r2, r4 + bne _08106AA0 + ldr r0, [r3] + adds r0, 0x28 + mov r1, sp + ldrb r1, [r1, 0x4] + strb r1, [r0] + ldr r0, [r3] + adds r0, 0x2B + strb r7, [r0] + ldr r0, [r3] + adds r0, 0x2D + mov r2, r8 + strb r2, [r0] + movs r0, 0 + b _08106AE8 + .align 2, 0 +_08106A98: .4byte gUnknown_8452C4C +_08106A9C: .4byte gUnknown_203ACF0 +_08106AA0: + adds r0, r4, 0 + str r3, [sp, 0x14] + bl sub_8106810 + ldr r3, [sp, 0x14] + cmp r0, 0x1 + bne _08106AC4 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_8104AB0 + lsls r0, 24 + ldr r3, [sp, 0x14] + cmp r0, 0 + beq _08106AC4 + movs r0, 0x1 + add r8, r0 +_08106AC4: + adds r5, 0x1 + cmp r5, r6 + blt _08106A64 +_08106ACA: + movs r1, 0x8 + add r9, r1 + adds r7, 0x1 + ldr r2, [sp, 0x8] + cmp r7, r2 + blt _08106A4E +_08106AD6: + ldr r0, [sp, 0x10] + adds r0, 0x8 + str r0, [sp, 0x10] + ldr r1, [sp, 0x4] + adds r1, 0x1 + str r1, [sp, 0x4] + cmp r1, 0x8 + bls _08106A3A + movs r0, 0x1 +_08106AE8: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8106A20 + + thumb_func_start sub_8106AF8 +sub_8106AF8: @ 8106AF8 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0 + movs r6, 0 + cmp r6, r5 + bge _08106B24 +_08106B06: + ldr r0, _08106B30 @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r0, 0x28 + ldrb r0, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_8106838 + lsls r0, 24 + cmp r0, 0 + beq _08106B1E + adds r6, 0x1 +_08106B1E: + adds r4, 0x1 + cmp r4, r5 + blt _08106B06 +_08106B24: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08106B30: .4byte gUnknown_203ACF0 + thumb_func_end sub_8106AF8 + + thumb_func_start sub_8106B34 +sub_8106B34: @ 8106B34 + push {lr} + ldr r0, _08106B58 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08106B54 + ldr r0, _08106B5C @ =gUnknown_203ACF0 + ldr r0, [r0] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_8071E3C +_08106B54: + pop {r0} + bx r0 + .align 2, 0 +_08106B58: .4byte gUnknown_30030F0 +_08106B5C: .4byte gUnknown_203ACF0 + thumb_func_end sub_8106B34 + + thumb_func_start sub_8106B60 +sub_8106B60: @ 8106B60 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r5, 0 + movs r1, 0x2 + movs r2, 0x1 + bl sub_8104AB0 + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x1 + bl sub_8104AB0 + bl sub_806E25C + cmp r0, 0 + bne _08106BA4 + adds r0, r5, 0 + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x97 + bls _08106BA4 + ldr r0, _08106BA0 @ =sub_8106BD8 + movs r1, 0 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + b _08106BC6 + .align 2, 0 +_08106BA0: .4byte sub_8106BD8 +_08106BA4: + bl sub_810250C + ldr r2, _08106BCC @ =gUnknown_3005090 + ldr r4, _08106BD0 @ =gUnknown_203ACF0 + ldr r0, [r4] + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _08106BD4 @ =sub_8106BE8 + str r1, [r0] + adds r0, r5, 0 + bl sub_8106A20 + ldr r0, [r4] + ldrb r0, [r0] +_08106BC6: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08106BCC: .4byte gUnknown_3005090 +_08106BD0: .4byte gUnknown_203ACF0 +_08106BD4: .4byte sub_8106BE8 + thumb_func_end sub_8106B60 + + thumb_func_start sub_8106BD8 +sub_8106BD8: @ 8106BD8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + pop {r0} + bx r0 + thumb_func_end sub_8106BD8 + + thumb_func_start sub_8106BE8 +sub_8106BE8: @ 8106BE8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08106C08 @ =gUnknown_203ACF0 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0xB + bls _08106BFE + b _08106E6A +_08106BFE: + lsls r0, 2 + ldr r1, _08106C0C @ =_08106C10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106C08: .4byte gUnknown_203ACF0 +_08106C0C: .4byte _08106C10 + .align 2, 0 +_08106C10: + .4byte _08106C40 + .4byte _08106C62 + .4byte _08106C84 + .4byte _08106C98 + .4byte _08106CD4 + .4byte _08106D1C + .4byte _08106D4C + .4byte _08106D9E + .4byte _08106DBA + .4byte _08106DCC + .4byte _08106DDE + .4byte _08106E58 +_08106C40: + ldr r0, [r4] + adds r0, 0x28 + ldrb r0, [r0] + bl sub_810699C + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x2B + adds r0, 0x29 + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + bcs _08106C5C + strb r1, [r2] +_08106C5C: + ldr r1, [r4] + movs r0, 0x3 + b _08106E68 +_08106C62: + bl sub_8106014 + bl sub_8104E90 + ldr r0, _08106C7C @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _08106C80 @ =gUnknown_203ACF0 + ldr r1, [r0] + b _08106E66 + .align 2, 0 +_08106C7C: .4byte gUnknown_30030F0 +_08106C80: .4byte gUnknown_203ACF0 +_08106C84: + bl sub_8102798 + lsls r0, 24 + cmp r0, 0 + bne _08106C90 + b _08106E6A +_08106C90: + adds r0, r5, 0 + bl sub_8077508 + b _08106E6A +_08106C98: + movs r0, 0x1 + bl sub_8104F0C + movs r0, 0 + bl sub_8003FA0 + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + movs r0, 0xFF + bl sub_8105058 + ldr r0, _08106CD0 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x4 + b _08106E68 + .align 2, 0 +_08106CD0: .4byte gUnknown_203ACF0 +_08106CD4: + ldr r2, _08106D10 @ =gUnknown_2037AB8 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + movs r0, 0x1 + negs r0, r0 + ldr r1, _08106D14 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x2 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + movs r0, 0 + bl sub_80019BC + ldr r0, _08106D18 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x5 + b _08106E68 + .align 2, 0 +_08106D10: .4byte gUnknown_2037AB8 +_08106D14: .4byte 0x0000ffff +_08106D18: .4byte gUnknown_203ACF0 +_08106D1C: + ldr r1, _08106D40 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1E + strh r1, [r0, 0x8] + ldr r0, _08106D44 @ =gUnknown_84524C4 + movs r1, 0 + bl sub_8133C90 + ldr r2, _08106D48 @ =gUnknown_203ACF0 + ldr r1, [r2] + adds r1, 0x61 + strb r0, [r1] + ldr r1, [r2] + movs r0, 0x6 + b _08106E68 + .align 2, 0 +_08106D40: .4byte gUnknown_3005090 +_08106D44: .4byte gUnknown_84524C4 +_08106D48: .4byte gUnknown_203ACF0 +_08106D4C: + ldr r0, [r4] + adds r0, 0x2D + ldrb r0, [r0] + bl sub_8105058 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x61 + ldrb r0, [r0] + adds r1, r2, 0 + adds r1, 0x2D + ldrb r1, [r1] + adds r2, 0x2C + ldrb r2, [r2] + bl sub_8105178 + ldr r1, _08106D88 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08106D8C + subs r0, r2, 0x1 + strh r0, [r1, 0x8] + b _08106E6A + .align 2, 0 +_08106D88: .4byte gUnknown_3005090 +_08106D8C: + ldr r0, [r4] + adds r0, 0x61 + ldrb r0, [r0] + movs r1, 0 + bl sub_8133CD4 + ldr r1, [r4] + movs r0, 0x7 + b _08106E68 +_08106D9E: + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x2D + ldrb r1, [r0] + lsls r1, 1 + subs r0, 0x15 + adds r0, r1 + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x5A + strh r0, [r1] + movs r0, 0x8 + strb r0, [r2, 0x1] + b _08106E6A +_08106DBA: + movs r0, 0x1 + bl sub_8105E1C + ldr r0, _08106DC8 @ =gUnknown_203ACF0 + ldr r1, [r0] + movs r0, 0x9 + b _08106E68 + .align 2, 0 +_08106DC8: .4byte gUnknown_203ACF0 +_08106DCC: + ldr r0, [r4] + movs r1, 0 + strb r1, [r0, 0x2] + ldr r0, [r4] + strb r1, [r0, 0x3] + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] +_08106DDE: + ldr r1, [r4] + ldrb r0, [r1, 0x3] + cmp r0, 0x5 + bhi _08106E10 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _08106E0A + ldrb r1, [r1, 0x3] + movs r0, 0 + bl sub_8105594 + movs r0, 0 + bl sub_80020BC + ldr r1, [r4] + movs r0, 0x4 + strb r0, [r1, 0x2] + ldr r1, [r4] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + b _08106E6A +_08106E0A: + subs r0, 0x1 + strb r0, [r1, 0x2] + b _08106E6A +_08106E10: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8002454 + movs r0, 0x3 + bl sub_80020BC + movs r0, 0x2 + bl sub_80020BC + movs r0, 0x1 + bl sub_80020BC + movs r0, 0 + bl sub_80020BC + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_8071E3C + ldr r1, [r4] + movs r0, 0 + strb r0, [r1, 0x2] + ldr r1, [r4] + movs r0, 0xB + b _08106E68 +_08106E58: + ldr r0, _08106E74 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08106E6A + ldr r1, [r4] +_08106E66: + movs r0, 0x2 +_08106E68: + strb r0, [r1, 0x1] +_08106E6A: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08106E74: .4byte gUnknown_30030F0 + thumb_func_end sub_8106BE8 + + thumb_func_start sub_8106E78 +sub_8106E78: @ 8106E78 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + cmp r1, 0x1 + beq _08106E8E + cmp r1, 0x1 + bgt _08106EA0 + cmp r1, 0 + bne _08106EA0 + movs r1, 0x8 + b _08106EAE +_08106E8E: + movs r0, 0x2 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + movs r1, 0xF0 + subs r1, r0 + lsrs r1, 1 + b _08106EAE +_08106EA0: + movs r0, 0x2 + adds r1, r4, 0 + movs r2, 0 + bl sub_8005ED4 + movs r1, 0xE8 + subs r1, r0 +_08106EAE: + lsls r3, r1, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl sub_81047C8 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8106E78 + + .align 2, 0 @ Don't pad with nop. |