.include "asm/macros.inc" .include "global.inc" .text thumb_func_start FUN_02006864 FUN_02006864: ; 0x02006864 add r3, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, _02006870 ; =0x020D180C bx r3 nop _02006870: .word 0x020D180C thumb_func_start FUN_02006874 FUN_02006874: ; 0x02006874 add r0, #0x50 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0200687C FUN_0200687C: ; 0x0200687C push {r3-r7, lr} sub sp, #0x8 add r6, r2, #0x0 mov r2, #0x0 add r5, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] bl FUN_02006C98 add r7, r0, #0x0 beq _020068C2 add r1, sp, #0x4 blx FUN_020B0030 cmp r0, #0x0 beq _020068BC cmp r4, #0x0 bne _020068A8 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _020068A8: ldr r0, [sp, #0x20] lsl r1, r5, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r6, #0x0 ldr r2, [r2, #0x14] lsr r1, r1, #0x18 add r3, r4, #0x0 bl FUN_02017E14 _020068BC: add r0, r7, #0x0 bl FUN_02016A18 _020068C2: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020068C8 FUN_020068C8: ; 0x020068C8 push {r3-r7, lr} sub sp, #0x8 add r6, r2, #0x0 mov r2, #0x1 add r5, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] bl FUN_02006C98 add r7, r0, #0x0 beq _0200692C add r1, sp, #0x4 blx FUN_020B0180 cmp r0, #0x0 beq _02006926 cmp r4, #0x0 bne _020068F4 ldr r0, [sp, #0x4] ldr r4, [r0, #0x8] _020068F4: lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 bl FUN_0201886C cmp r0, #0x0 beq _02006912 ldr r2, [sp, #0x4] lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 bl FUN_02017DFC _02006912: ldr r0, [sp, #0x20] lsl r1, r5, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 bl FUN_02017CE8 _02006926: add r0, r7, #0x0 bl FUN_02016A18 _0200692C: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02006930 FUN_02006930: ; 0x02006930 push {lr} sub sp, #0xc str r3, [sp, #0x0] ldr r3, [sp, #0x10] str r3, [sp, #0x4] ldr r3, [sp, #0x14] str r3, [sp, #0x8] mov r3, #0x0 bl FUN_02006948 add sp, #0xc pop {pc} thumb_func_start FUN_02006948 FUN_02006948: ; 0x02006948 push {r4-r7, lr} sub sp, #0xc add r4, r2, #0x0 add r7, r3, #0x0 mov r2, #0x1 str r2, [sp, #0x0] ldr r3, [sp, #0x28] mov r2, #0x0 ldr r6, [sp, #0x20] ldr r5, [sp, #0x24] bl FUN_02006C98 str r0, [sp, #0x4] cmp r0, #0x0 beq _02006A2A add r1, sp, #0x8 blx FUN_020B0138 cmp r0, #0x0 beq _02006A24 ldr r0, [sp, #0x8] ldr r1, [r0, #0xc] add r1, r1, r7 str r1, [r0, #0xc] cmp r5, #0x0 bne _02006982 ldr r0, [sp, #0x8] ldr r0, [r0, #0x8] sub r5, r0, r7 _02006982: ldr r0, [sp, #0x8] add r1, r5, #0x0 ldr r0, [r0, #0xc] blx DC_FlushRange cmp r4, #0x7 bhi _02006A14 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200699C: ; jump table (using 16-bit offset) .short _02006A14 - _0200699C - 2; case 0 .short _02006A14 - _0200699C - 2; case 1 .short _020069AC - _0200699C - 2; case 2 .short _020069E0 - _0200699C - 2; case 3 .short _02006A14 - _0200699C - 2; case 4 .short _02006A14 - _0200699C - 2; case 5 .short _020069C6 - _0200699C - 2; case 6 .short _020069FA - _0200699C - 2; case 7 _020069AC: blx GX_BeginLoadBGExtPltt ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx GX_EndLoadBGExtPltt b _02006A24 _020069C6: blx GXS_BeginLoadBGExtPltt ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx GXS_EndLoadBGExtPltt b _02006A24 _020069E0: blx GX_BeginLoadOBJExtPltt ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx GX_EndLoadOBJExtPltt b _02006A24 _020069FA: blx GXS_BeginLoadOBJExtPltt ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx GXS_EndLoadOBJExtPltt b _02006A24 _02006A14: ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 _02006A24: ldr r0, [sp, #0x4] bl FUN_02016A18 _02006A2A: add sp, #0xc pop {r4-r7, pc} nop _02006A30: .word 0x020ECBB0 thumb_func_start FUN_02006A34 FUN_02006A34: ; 0x02006A34 push {r3-r7, lr} sub sp, #0x8 add r5, r2, #0x0 mov r2, #0x1 add r6, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] ldr r4, [sp, #0x20] bl FUN_02006C98 add r7, r0, #0x0 beq _02006A80 add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006A7A cmp r4, #0x0 bne _02006A60 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _02006A60: ldr r0, [sp, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0x14] blx DC_FlushRange ldr r0, [sp, #0x4] ldr r3, _02006A88 ; =0x020ECBA0 lsl r5, r5, #0x2 ldr r0, [r0, #0x14] ldr r3, [r3, r5] add r1, r6, #0x0 add r2, r4, #0x0 blx r3 _02006A7A: add r0, r7, #0x0 bl FUN_02016A18 _02006A80: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} nop _02006A88: .word 0x020ECBA0 thumb_func_start FUN_02006A8C FUN_02006A8C: ; 0x02006A8C push {r4-r7, lr} sub sp, #0xc add r5, r2, #0x0 add r4, r3, #0x0 mov r2, #0x1 str r2, [sp, #0x0] ldr r3, [sp, #0x20] mov r2, #0x0 bl FUN_02006C98 add r6, r0, #0x0 beq _02006AE0 add r1, sp, #0x4 blx FUN_020B00F0 add r7, r0, #0x0 add r0, r6, #0x0 add r1, sp, #0x8 blx FUN_020B0138 cmp r0, #0x0 beq _02006ADA cmp r7, #0x0 beq _02006ACE ldr r0, [sp, #0x24] add r2, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r3, r5, #0x0 blx FUN_020B10E8 b _02006ADA _02006ACE: ldr r0, [sp, #0x8] ldr r3, [sp, #0x24] add r1, r4, #0x0 add r2, r5, #0x0 blx FUN_020B1240 _02006ADA: add r0, r6, #0x0 bl FUN_02016A18 _02006AE0: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02006AE4 FUN_02006AE4: ; 0x02006AE4 push {r4-r6, lr} sub sp, #0x8 add r5, r3, #0x0 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] bl FUN_02006C98 add r6, r0, #0x0 ldr r4, _02006B30 ; =0x00000000 beq _02006B28 add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006B22 ldr r1, [sp, #0x18] cmp r1, #0x0 beq _02006B0E ldr r0, [sp, #0x4] str r1, [r0, #0x10] _02006B0E: ldr r4, _02006B34 ; =0x020ECBA8 lsl r5, r5, #0x2 ldr r0, [sp, #0x4] ldr r1, [sp, #0x20] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x28] ldr r4, [r4, r5] blx r4 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _02006B22: add r0, r6, #0x0 bl FUN_02016A18 _02006B28: add r0, r4, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02006B30: .word 0x00000000 _02006B34: .word 0x020ECBA8 thumb_func_start FUN_02006B38 FUN_02006B38: ; 0x02006B38 push {r4-r6, lr} sub sp, #0x8 add r5, r3, #0x0 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] bl FUN_02006C98 add r4, r0, #0x0 beq _02006B9E add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006B98 ldr r1, [sp, #0x18] cmp r1, #0x0 beq _02006B60 ldr r0, [sp, #0x4] str r1, [r0, #0x10] _02006B60: ldr r0, [sp, #0x1c] cmp r0, #0x1 beq _02006B6C cmp r0, #0x2 beq _02006B7C b _02006B88 _02006B6C: mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02006BA4 ; =0x00300010 and r1, r0 ldr r0, [sp, #0x4] str r1, [r0, #0x8] b _02006B88 _02006B7C: ldr r0, _02006BA8 ; =0x04001000 ldr r1, [r0, #0x0] ldr r0, _02006BA4 ; =0x00300010 and r1, r0 ldr r0, [sp, #0x4] str r1, [r0, #0x8] _02006B88: lsl r6, r5, #0x2 ldr r5, _02006BAC ; =0x020ECB98 ldr r0, [sp, #0x4] ldr r1, [sp, #0x20] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x28] ldr r5, [r5, r6] blx r5 _02006B98: add r0, r4, #0x0 bl FUN_02016A18 _02006B9E: add sp, #0x8 pop {r4-r6, pc} nop _02006BA4: .word 0x00300010 _02006BA8: .word 0x04001000 _02006BAC: .word 0x020ECB98 thumb_func_start FUN_02006BB0 FUN_02006BB0: ; 0x02006BB0 push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006BD6 add r1, r4, #0x0 blx FUN_020B0030 cmp r0, #0x0 bne _02006BD6 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006BD6: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006BDC FUN_02006BDC: ; 0x02006BDC push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C02 add r1, r4, #0x0 blx FUN_020B0180 cmp r0, #0x0 bne _02006C02 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C02: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C08 FUN_02006C08: ; 0x02006C08 push {r3-r5, lr} add r5, r2, #0x0 mov r2, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 add r4, r0, #0x0 beq _02006C2C add r1, r5, #0x0 blx FUN_020B0138 cmp r0, #0x0 bne _02006C2C add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C2C: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02006C30 FUN_02006C30: ; 0x02006C30 push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C56 add r1, r4, #0x0 blx FUN_020AFEB8 cmp r0, #0x0 bne _02006C56 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C56: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C5C FUN_02006C5C: ; 0x02006C5C push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C82 add r1, r4, #0x0 blx thunk_FUN_020afda0_2 cmp r0, #0x0 bne _02006C82 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C82: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C88 FUN_02006C88: ; 0x02006C88 push {r3, lr} add r3, r2, #0x0 mov r2, #0x0 str r2, [sp, #0x0] mov r2, #0x1 bl FUN_02006C98 pop {r3, pc} thumb_func_start FUN_02006C98 FUN_02006C98: ; 0x02006C98 push {r3-r7, lr} add r5, r2, #0x0 add r7, r0, #0x0 add r6, r3, #0x0 str r1, [sp, #0x0] cmp r5, #0x0 bne _02006CAC ldr r2, [sp, #0x18] cmp r2, #0x1 bne _02006CC0 _02006CAC: ldr r1, [sp, #0x0] add r0, r7, #0x0 bl LoadFromNARC_7 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020169D8 add r4, r0, #0x0 b _02006CCE _02006CC0: bl LoadFromNARC_7 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_02016998 add r4, r0, #0x0 _02006CCE: cmp r4, #0x0 beq _02006D12 ldr r2, [sp, #0x0] add r0, r4, #0x0 add r1, r7, #0x0 bl LoadFromNARC cmp r5, #0x0 beq _02006D12 ldr r0, [sp, #0x18] cmp r0, #0x0 bne _02006CF2 ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_02016998 b _02006CFC _02006CF2: ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_020169D8 _02006CFC: add r5, r0, #0x0 cmp r5, #0x0 beq _02006D10 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D10: add r4, r5, #0x0 _02006D12: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02006D18 FUN_02006D18: ; 0x02006D18 push {r3-r7, lr} sub sp, #0x8 ldr r5, [sp, #0x24] str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r2, #0x0 add r7, r3, #0x0 bl LoadFromNARC_7 str r0, [r5, #0x0] cmp r6, #0x0 bne _02006D36 ldr r0, [sp, #0x20] cmp r0, #0x1 bne _02006D42 _02006D36: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_020169D8 add r4, r0, #0x0 b _02006D4C _02006D42: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_02016998 add r4, r0, #0x0 _02006D4C: cmp r4, #0x0 beq _02006D92 ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r4, #0x0 bl LoadFromNARC cmp r6, #0x0 beq _02006D92 ldr r0, [r4, #0x0] lsr r0, r0, #0x8 str r0, [r5, #0x0] ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02006D74 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_02016998 b _02006D7C _02006D74: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_020169D8 _02006D7C: add r5, r0, #0x0 cmp r5, #0x0 beq _02006D90 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D90: add r4, r5, #0x0 _02006D92: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02006D98 FUN_02006D98: ; 0x02006D98 push {r3-r7, lr} sub sp, #0x10 mov r1, #0xba lsl r1, r1, #0x2 add r5, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xa6 lsl r0, r0, #0x2 add r1, r0, #0x0 add r3, r0, #0x0 str r5, [r4, r0] mov r2, #0x0 add r1, #0x48 strb r2, [r4, r1] add r1, r0, #0x4 str r2, [r4, r1] mov r1, #0x2 lsl r1, r1, #0xe add r3, #0x8 str r1, [r4, r3] add r3, r0, #0x0 add r3, #0xc str r2, [r4, r3] mov r2, #0x80 add r0, #0x10 str r2, [r4, r0] add r0, r5, #0x0 bl FUN_02016998 mov r1, #0xab lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 mov r1, #0x2b lsl r1, r1, #0x4 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 mov r1, #0xad lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 blx MIi_CpuClearFast mov r6, #0x0 add r5, r4, #0x0 add r7, r6, #0x0 _02006E12: add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0x98 blx MIi_CpuClearFast add r6, r6, #0x1 add r5, #0x98 cmp r6, #0x4 blt _02006E12 blx FUN_020B02C8 ldr r2, _02006EC8 ; =0x000002E3 mov r0, #0x0 strb r0, [r4, r2] sub r2, #0x4b ldr r2, [r4, r2] mov r0, #0x75 mov r1, #0xd3 bl LoadFromNarc_2 add r1, sp, #0xc str r0, [sp, #0x4] blx FUN_020B0088 ldr r0, [sp, #0xc] mov r1, #0xaf ldr r0, [r0, #0x4] lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [sp, #0xc] ldr r2, [r0, #0x8] add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [sp, #0xc] add r1, #0x8 ldr r0, [r0, #0xc] str r0, [r4, r1] ldr r0, [sp, #0xc] ldr r0, [r0, #0x14] str r0, [sp, #0x8] bl FUN_02008A74 ldr r1, [sp, #0x8] mov r0, #0xab lsl r0, r0, #0x2 mov r2, #0x2 ldrb r1, [r1, #0x0] ldr r0, [r4, r0] lsl r2, r2, #0xe blx MI_CpuFill8 mov r0, #0x0 mov r7, #0xab ldr r6, _02006ECC ; =0x00005050 mov r12, r0 str r0, [sp, #0x0] add r3, r0, #0x0 lsl r7, r7, #0x2 _02006E86: ldr r2, [sp, #0x8] ldr r0, [sp, #0x0] mov r1, #0x0 add r2, r2, r0 _02006E8E: ldr r5, [r4, r7] ldrb r0, [r2, #0x0] add r5, r3, r5 add r5, r1, r5 add r1, r1, #0x1 add r2, r2, #0x1 strb r0, [r5, r6] cmp r1, #0x28 blt _02006E8E ldr r0, [sp, #0x0] add r3, #0x80 add r0, #0x50 str r0, [sp, #0x0] mov r0, r12 add r0, r0, #0x1 mov r12, r0 cmp r0, #0x50 blt _02006E86 ldr r0, [sp, #0x4] bl FUN_02016A18 ldr r0, _02006ED0 ; =0x000002E1 mov r1, #0x1 strb r1, [r4, r0] add r0, r0, #0x1 strb r1, [r4, r0] add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02006EC8: .word 0x000002E3 _02006ECC: .word 0x00005050 _02006ED0: .word 0x000002E1 thumb_func_start FUN_02006ED4 FUN_02006ED4: ; 0x02006ED4 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 bl FUN_020082A8 add r0, r5, #0x0 bl FUN_020086F4 blx FUN_020BB394 mov r6, #0x9f mov r0, #0x0 ldr r4, _02007250 ; =0x04000444 lsl r6, r6, #0x2 str r0, [r4, #0x0] str r0, [sp, #0x18] add r0, r6, #0x0 sub r0, #0xc ldr r1, [r5, r0] add r3, r6, #0x0 ldr r2, [r5, r6] add r0, r6, #0x0 sub r3, #0x8 add r6, #0x20 ldr r3, [r5, r3] ldr r6, [r5, r6] sub r0, #0x10 ldr r0, [r5, r0] lsr r6, r6, #0x3 lsl r3, r3, #0x1a orr r6, r3 mov r3, #0x1 lsl r3, r3, #0x1e lsl r0, r0, #0x14 orr r3, r6 lsl r1, r1, #0x17 orr r0, r3 lsl r2, r2, #0x1d orr r0, r1 orr r0, r2 str r0, [r4, #0x64] ldr r0, [sp, #0x18] add r4, r5, #0x0 str r0, [sp, #0x14] ldr r0, _02007254 ; =0x020ECD4C str r0, [sp, #0x1c] _02006F30: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _02006F46 ldr r0, [r4, #0x54] lsl r1, r0, #0x1f lsr r1, r1, #0x1f bne _02006F46 lsl r0, r0, #0x14 lsr r0, r0, #0x1f beq _02006F48 _02006F46: b _020072BC _02006F48: ldr r2, [r4, #0x68] cmp r2, #0x0 beq _02006F56 add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x24 blx r2 _02006F56: blx FUN_020BB394 ldr r0, _02007258 ; =0x000002E3 ldrb r0, [r5, r0] cmp r0, #0x1 beq _02006F68 ldr r0, _0200725C ; =0x04000454 mov r1, #0x0 str r1, [r0, #0x0] _02006F68: add r0, r4, #0x0 bl FUN_02007F48 mov r0, #0x9d lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x2 bne _02006F7C mov r0, #0x1 b _02006F7E _02006F7C: mov r0, #0x0 _02006F7E: mov r1, #0xa9 lsl r1, r1, #0x2 ldr r2, [r5, r1] ldr r1, [sp, #0x14] add r2, r2, r1 mov r1, #0x4 sub r0, r1, r0 add r1, r2, #0x0 lsr r1, r0 ldr r0, _02007260 ; =0x040004AC str r1, [r0, #0x0] ldr r0, [r4, #0x28] lsl r1, r0, #0xc mov r0, #0x26 ldrsh r2, [r4, r0] mov r0, #0x42 ldrsh r0, [r4, r0] add r0, r2, r0 mov r2, #0x24 ldrsh r3, [r4, r2] mov r2, #0x40 ldrsh r2, [r4, r2] lsl r0, r0, #0xc add r2, r3, r2 lsl r3, r2, #0xc ldr r2, _02007264 ; =0x04000470 str r3, [r2, #0x0] str r0, [r2, #0x0] add r0, r2, #0x0 str r1, [r0, #0x0] ldrh r0, [r4, #0x38] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx G3_RotX ldrh r0, [r4, #0x3a] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx G3_RotY ldrh r0, [r4, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx G3_RotZ ldr r0, [r4, #0x28] lsl r0, r0, #0xc neg r1, r0 mov r0, #0x26 ldrsh r2, [r4, r0] mov r0, #0x42 ldrsh r0, [r4, r0] add r0, r2, r0 mov r2, #0x24 ldrsh r3, [r4, r2] mov r2, #0x40 ldrsh r2, [r4, r2] lsl r0, r0, #0xc neg r0, r0 add r2, r3, r2 lsl r2, r2, #0xc neg r3, r2 ldr r2, _02007264 ; =0x04000470 str r3, [r2, #0x0] str r0, [r2, #0x0] add r0, r2, #0x0 str r1, [r0, #0x0] ldr r3, [r4, #0x50] lsl r0, r3, #0x11 lsr r0, r0, #0x1b lsl r2, r3, #0x16 lsl r1, r0, #0xa lsl r0, r3, #0x1b lsr r2, r2, #0x1b lsr r0, r0, #0x1b lsl r2, r2, #0x5 orr r0, r2 orr r0, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 lsl r0, r3, #0x2 lsr r0, r0, #0x1b lsl r1, r0, #0xa lsl r0, r3, #0xc lsl r3, r3, #0x7 lsr r3, r3, #0x1b lsr r0, r0, #0x1b lsl r3, r3, #0x5 orr r0, r3 orr r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x10 add r1, r2, #0x0 orr r1, r0 mov r0, #0x2 lsl r0, r0, #0xe orr r1, r0 ldr r0, _0200726C ; =0x040004C0 str r1, [r0, #0x0] ldr r1, _02007270 ; =0x00004210 add r0, r0, #0x4 str r1, [r0, #0x0] ldr r1, [r4, #0x0] ldr r0, [r4, #0x54] lsl r1, r1, #0x19 lsl r0, r0, #0x19 lsr r1, r1, #0x1a lsr r0, r0, #0x1b lsl r2, r1, #0x18 mov r1, #0xc0 lsl r0, r0, #0x10 orr r1, r2 orr r1, r0 ldr r0, _02007274 ; =0x040004A4 str r1, [r0, #0x0] ldr r0, [r4, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _02007104 add r0, r4, #0x0 add r0, #0x5b ldrb r0, [r0, #0x0] add r2, r4, #0x0 add r2, #0x44 lsl r1, r0, #0x4 ldr r0, [sp, #0x1c] ldrb r3, [r2, #0x0] add r0, r0, r1 ldr r2, [sp, #0x1c] ldr r0, [r0, #0x4] ldr r1, [r2, r1] add r6, r3, r1 add r1, r4, #0x0 add r1, #0x46 ldrb r1, [r1, #0x0] mov r12, r1 add r1, r4, #0x0 add r1, #0x45 ldrb r2, [r1, #0x0] add r1, r2, r0 add r0, r4, #0x0 add r0, #0x47 ldrb r7, [r0, #0x0] mov r0, r12 add r0, r0, r6 str r7, [sp, #0x0] str r6, [sp, #0x4] str r1, [sp, #0x8] str r0, [sp, #0xc] add r0, r7, r1 str r0, [sp, #0x10] mov r1, #0x24 ldrsh r1, [r4, r1] mov r0, #0x2c ldrsh r0, [r4, r0] sub r1, #0x28 add r1, r1, r3 add r0, r0, r1 mov r3, #0x26 ldrsh r3, [r4, r3] mov r1, #0x2e lsl r0, r0, #0x10 sub r3, #0x28 add r2, r3, r2 ldrsh r1, [r4, r1] ldr r3, [r4, #0x28] asr r0, r0, #0x10 add r2, r1, r2 mov r1, #0x6e ldrsb r1, [r4, r1] sub r1, r2, r1 ldr r2, [r4, #0x30] lsl r1, r1, #0x10 add r2, r3, r2 asr r1, r1, #0x10 mov r3, r12 blx FUN_020B0250 b _02007174 _02007104: mov r0, #0x34 ldrsh r1, [r4, r0] mov r0, #0x50 ldr r2, [sp, #0x1c] mul r0, r1 asr r3, r0, #0x8 mov r0, #0x36 ldrsh r1, [r4, r0] mov r0, #0x50 ldr r6, [sp, #0x1c] mul r0, r1 asr r1, r0, #0x8 add r0, r4, #0x0 add r0, #0x5b ldrb r0, [r0, #0x0] lsl r0, r0, #0x4 str r1, [sp, #0x0] add r2, r2, r0 ldr r0, [r6, r0] lsr r6, r1, #0x1f str r0, [sp, #0x4] ldr r0, [r2, #0x4] add r6, r1, r6 str r0, [sp, #0x8] ldr r0, [r2, #0x8] asr r1, r6, #0x1 str r0, [sp, #0xc] ldr r0, [r2, #0xc] str r0, [sp, #0x10] mov r0, #0x24 ldrsh r2, [r4, r0] lsr r0, r3, #0x1f add r0, r3, r0 asr r0, r0, #0x1 sub r2, r2, r0 mov r0, #0x2c ldrsh r0, [r4, r0] ldr r6, [r4, #0x28] add r0, r2, r0 mov r2, #0x26 ldrsh r2, [r4, r2] lsl r0, r0, #0x10 asr r0, r0, #0x10 sub r2, r2, r1 mov r1, #0x2e ldrsh r1, [r4, r1] add r2, r2, r1 mov r1, #0x6e ldrsb r1, [r4, r1] sub r1, r2, r1 ldr r2, [r4, #0x30] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r6, r2 blx FUN_020B0250 _02007174: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r1, r0, #0x1e lsr r1, r1, #0x1e beq _0200719A lsl r0, r0, #0x19 lsr r0, r0, #0x1e beq _0200719A ldr r0, [r4, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _0200719A mov r0, #0xb9 lsl r0, r0, #0x2 ldr r1, [r5, r0] mov r0, #0x1 tst r0, r1 beq _0200719C _0200719A: b _020072BC _0200719C: ldr r0, _02007258 ; =0x000002E3 ldrb r0, [r5, r0] cmp r0, #0x1 beq _020071AA ldr r0, _0200725C ; =0x04000454 mov r1, #0x0 str r1, [r0, #0x0] _020071AA: mov r0, #0x9d lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x2 bne _020071B8 mov r1, #0x1 b _020071BA _020071B8: mov r1, #0x0 _020071BA: add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] mov r0, #0xa9 lsl r0, r0, #0x2 lsl r2, r2, #0x1e lsr r2, r2, #0x1e add r2, r2, #0x3 ldr r0, [r5, r0] lsl r2, r2, #0x5 add r2, r0, r2 mov r0, #0x4 sub r0, r0, r1 add r1, r2, #0x0 lsr r1, r0 ldr r0, _02007260 ; =0x040004AC str r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _020071FA mov r0, #0x34 ldrsh r0, [r4, r0] lsl r0, r0, #0x6 asr r3, r0, #0x8 mov r0, #0x36 ldrsh r0, [r4, r0] lsl r0, r0, #0x4 asr r1, r0, #0x8 b _020071FE _020071FA: mov r3, #0x40 mov r1, #0x10 _020071FE: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _02007220 mov r0, #0x74 ldrsh r2, [r4, r0] mov r0, #0x24 mov r6, #0x2c ldrsh r0, [r4, r0] ldrsh r6, [r4, r6] add r0, r0, r6 add r2, r2, r0 add r0, r4, #0x0 add r0, #0x70 strh r2, [r0, #0x0] _02007220: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _02007242 mov r0, #0x76 ldrsh r2, [r4, r0] mov r0, #0x26 mov r6, #0x2e ldrsh r0, [r4, r0] ldrsh r6, [r4, r6] add r0, r0, r6 add r2, r2, r0 add r0, r4, #0x0 add r0, #0x72 strh r2, [r0, #0x0] _02007242: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] ldr r2, _02007278 ; =0x020ECBD0 ldr r6, _02007278 ; =0x020ECBD0 b _0200727C nop _02007250: .word 0x04000444 _02007254: .word 0x020ECD4C _02007258: .word 0x000002E3 _0200725C: .word 0x04000454 _02007260: .word 0x040004AC _02007264: .word 0x04000470 _02007268: .word 0x020FFA38 _0200726C: .word 0x040004C0 _02007270: .word 0x00004210 _02007274: .word 0x040004A4 _02007278: .word 0x020ECBD0 _0200727C: lsl r0, r0, #0x19 lsr r0, r0, #0x1e lsl r0, r0, #0x4 str r1, [sp, #0x0] add r2, r2, r0 ldr r0, [r6, r0] lsr r6, r1, #0x1f str r0, [sp, #0x4] ldr r0, [r2, #0x4] add r6, r1, r6 str r0, [sp, #0x8] ldr r0, [r2, #0x8] asr r1, r6, #0x1 str r0, [sp, #0xc] ldr r0, [r2, #0xc] str r0, [sp, #0x10] mov r0, #0x70 ldrsh r2, [r4, r0] lsr r0, r3, #0x1f add r0, r3, r0 asr r0, r0, #0x1 sub r0, r2, r0 mov r2, #0x72 ldrsh r2, [r4, r2] lsl r0, r0, #0x10 asr r0, r0, #0x10 sub r1, r2, r1 lsl r1, r1, #0x10 ldr r2, _020072E0 ; =0xFFFFFC18 asr r1, r1, #0x10 blx FUN_020B0250 _020072BC: ldr r0, [sp, #0x14] add r4, #0x98 add r0, #0x20 str r0, [sp, #0x14] ldr r0, [sp, #0x1c] add r0, #0x20 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r0, r0, #0x1 str r0, [sp, #0x18] cmp r0, #0x4 bge _020072D6 b _02006F30 _020072D6: ldr r0, _020072E4 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] add sp, #0x20 pop {r3-r7, pc} .balign 4 _020072E0: .word 0xFFFFFC18 _020072E4: .word 0x04000448 thumb_func_start FUN_020072E8 FUN_020072E8: ; 0x020072E8 push {r4, lr} add r4, r0, #0x0 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x2b lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02007314 FUN_02007314: ; 0x02007314 push {r3-r4} add r1, r0, #0x0 mov r3, #0x0 add r1, #0x59 strb r3, [r1, #0x0] add r1, r3, #0x0 _02007320: add r2, r0, r3 add r2, #0x5c add r3, r3, #0x1 strb r1, [r2, #0x0] cmp r3, #0xa blt _02007320 add r2, r0, #0x0 add r2, #0x59 ldrb r2, [r2, #0x0] lsl r2, r2, #0x1 add r3, r0, r2 mov r2, #0x84 ldrsb r4, [r3, r2] add r3, r2, #0x0 sub r3, #0x85 cmp r4, r3 bne _0200734A add r0, #0x5b strb r1, [r0, #0x0] pop {r3-r4} bx lr _0200734A: add r1, r0, #0x0 mov r3, #0x1 add r1, #0x58 strb r3, [r1, #0x0] add r1, r0, #0x0 add r1, #0x59 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 ldrsb r2, [r1, r2] add r1, r0, #0x0 add r1, #0x5b strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x59 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 add r1, #0x85 ldrb r1, [r1, #0x0] add r0, #0x5a strb r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0200737C FUN_0200737C: ; 0x0200737C add r2, r0, #0x0 ldr r3, _0200738C ; =MI_CpuCopy8 add r2, #0x84 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x14 bx r3 nop _0200738C: .word MI_CpuCopy8 thumb_func_start FUN_02007390 FUN_02007390: ; 0x02007390 add r0, #0x58 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0200739C mov r0, #0x1 bx lr _0200739C: mov r0, #0x0 bx lr thumb_func_start FUN_020073A0 FUN_020073A0: ; 0x020073A0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x14] mov r4, #0x0 _020073AE: ldr r1, [r0, #0x0] lsl r1, r1, #0x1f lsr r1, r1, #0x1f beq _020073BE add r4, r4, #0x1 add r0, #0x98 cmp r4, #0x4 blt _020073AE _020073BE: cmp r4, #0x4 bne _020073C6 bl ErrorHandling _020073C6: ldr r0, [sp, #0x30] ldr r3, [sp, #0x14] str r0, [sp, #0x0] ldr r0, [sp, #0x34] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x38] str r4, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x3c] add r2, r7, #0x0 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_020073E8 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_020073E8 FUN_020073E8: ; 0x020073E8 push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x8] ldr r1, [sp, #0x28] add r4, r0, #0x0 mov r0, #0x98 add r6, r1, #0x0 mul r6, r0 ldr r0, [r4, r6] str r2, [sp, #0x0] lsl r0, r0, #0x1f str r3, [sp, #0x4] lsr r0, r0, #0x1f beq _02007408 bl ErrorHandling _02007408: add r5, r4, r6 mov r0, #0x0 add r1, r5, #0x0 mov r2, #0x98 blx MIi_CpuClearFast ldr r1, [r4, r6] mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 str r0, [r4, r6] ldr r1, [r4, r6] mov r0, #0x80 orr r0, r1 str r0, [r4, r6] mov r0, #0x80 ldr r1, [r4, r6] add r0, #0x80 orr r0, r1 str r0, [r4, r6] add r2, r5, #0x0 ldr r0, [r4, r6] mov r1, #0x7e bic r0, r1 ldr r1, [sp, #0x24] add r7, r2, #0x4 lsl r1, r1, #0x1a lsr r1, r1, #0x19 orr r0, r1 str r0, [r4, r6] ldr r0, [sp, #0x8] mov r12, r0 mov r3, r12 ldmia r3!, {r0-r1} stmia r7!, {r0-r1} ldmia r3!, {r0-r1} stmia r7!, {r0-r1} add r7, r2, #0x0 ldr r3, [sp, #0x8] add r7, #0x14 ldmia r3!, {r0-r1} stmia r7!, {r0-r1} str r3, [sp, #0x8] ldmia r3!, {r0-r1} stmia r7!, {r0-r1} ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] lsl r0, r0, #0x10 asr r0, r0, #0x10 lsl r1, r1, #0x10 asr r7, r1, #0x10 strh r0, [r2, #0x24] str r3, [sp, #0x8] ldr r1, [sp, #0x20] strh r7, [r2, #0x26] str r1, [r2, #0x28] mov r1, #0x80 add r1, #0x80 strh r1, [r2, #0x34] strh r1, [r2, #0x36] ldr r1, [r5, #0x54] mov r3, #0x7c bic r1, r3 mov r3, #0x7c orr r1, r3 str r1, [r5, #0x54] ldr r1, [r5, #0x50] mov r3, #0x1f bic r1, r3 mov r3, #0x1f orr r3, r1 ldr r1, _02007520 ; =0xFFFFFC1F and r1, r3 mov r3, #0x1f lsl r3, r3, #0x5 orr r3, r1 ldr r1, _02007524 ; =0xFFFF83FF and r1, r3 mov r3, #0x1f lsl r3, r3, #0xa orr r3, r1 ldr r1, _02007528 ; =0xFFF07FFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0xc orr r3, r1 ldr r1, _0200752C ; =0xFE0FFFFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0x11 orr r3, r1 ldr r1, _02007530 ; =0xC1FFFFFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0x16 orr r1, r3 str r1, [r5, #0x50] ldr r1, [sp, #0x30] str r1, [r2, #0x68] add r1, r2, #0x0 add r1, #0x70 strh r0, [r1, #0x0] add r2, #0x72 add r0, r5, #0x0 strh r7, [r2, #0x0] add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x4 orr r1, r0 add r0, r5, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x8 orr r1, r0 add r0, r5, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x10 add r5, #0x6c orr r0, r1 strh r0, [r5, #0x0] ldr r0, [sp, #0x2c] cmp r0, #0x0 beq _02007518 add r1, r4, r6 add r1, #0x84 mov r2, #0x14 blx MI_CpuCopy8 _02007518: add r0, r4, r6 add sp, #0xc pop {r4-r7, pc} nop _02007520: .word 0xFFFFFC1F _02007524: .word 0xFFFF83FF _02007528: .word 0xFFF07FFF _0200752C: .word 0xFE0FFFFF _02007530: .word 0xC1FFFFFF thumb_func_start FUN_02007534 FUN_02007534: ; 0x02007534 ldr r2, [r0, #0x0] mov r1, #0x1 bic r2, r1 str r2, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02007540 FUN_02007540: ; 0x02007540 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02007546: add r0, r5, #0x0 bl FUN_02007534 add r4, r4, #0x1 add r5, #0x98 cmp r4, #0x4 blt _02007546 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02007558 FUN_02007558: ; 0x02007558 cmp r1, #0x2e bls _0200755E b _02007800 _0200755E: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0200756A: ; jump table (using 16-bit offset) .short _020075C8 - _0200756A - 2; case 0 .short _020075CC - _0200756A - 2; case 1 .short _020075D0 - _0200756A - 2; case 2 .short _020075D4 - _0200756A - 2; case 3 .short _020075D8 - _0200756A - 2; case 4 .short _020075DC - _0200756A - 2; case 5 .short _020075E0 - _0200756A - 2; case 6 .short _020075F0 - _0200756A - 2; case 7 .short _020075F4 - _0200756A - 2; case 8 .short _020075F8 - _0200756A - 2; case 9 .short _020075FC - _0200756A - 2; case 10 .short _02007602 - _0200756A - 2; case 11 .short _02007608 - _0200756A - 2; case 12 .short _0200760C - _0200756A - 2; case 13 .short _02007610 - _0200756A - 2; case 14 .short _02007620 - _0200756A - 2; case 15 .short _02007626 - _0200756A - 2; case 16 .short _0200762C - _0200756A - 2; case 17 .short _02007632 - _0200756A - 2; case 18 .short _02007638 - _0200756A - 2; case 19 .short _0200763E - _0200756A - 2; case 20 .short _02007644 - _0200756A - 2; case 21 .short _0200764A - _0200756A - 2; case 22 .short _02007650 - _0200756A - 2; case 23 .short _02007660 - _0200756A - 2; case 24 .short _02007670 - _0200756A - 2; case 25 .short _02007680 - _0200756A - 2; case 26 .short _02007690 - _0200756A - 2; case 27 .short _020076A0 - _0200756A - 2; case 28 .short _020076B0 - _0200756A - 2; case 29 .short _020076C0 - _0200756A - 2; case 30 .short _020076DA - _0200756A - 2; case 31 .short _020076E8 - _0200756A - 2; case 32 .short _020076FA - _0200756A - 2; case 33 .short _0200770C - _0200756A - 2; case 34 .short _02007712 - _0200756A - 2; case 35 .short _0200772A - _0200756A - 2; case 36 .short _02007742 - _0200756A - 2; case 37 .short _02007752 - _0200756A - 2; case 38 .short _02007800 - _0200756A - 2; case 39 .short _02007758 - _0200756A - 2; case 40 .short _02007770 - _0200756A - 2; case 41 .short _02007776 - _0200756A - 2; case 42 .short _0200779A - _0200756A - 2; case 43 .short _020077B4 - _0200756A - 2; case 44 .short _020077CE - _0200756A - 2; case 45 .short _020077E8 - _0200756A - 2; case 46 _020075C8: strh r2, [r0, #0x24] bx lr _020075CC: strh r2, [r0, #0x26] bx lr _020075D0: str r2, [r0, #0x28] bx lr _020075D4: strh r2, [r0, #0x2c] bx lr _020075D8: strh r2, [r0, #0x2e] bx lr _020075DC: str r2, [r0, #0x30] bx lr _020075E0: ldr r3, [r0, #0x54] mov r1, #0x1 bic r3, r1 mov r1, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x54] bx lr _020075F0: strh r2, [r0, #0x38] bx lr _020075F4: strh r2, [r0, #0x3a] bx lr _020075F8: strh r2, [r0, #0x3c] bx lr _020075FC: add r0, #0x40 strh r2, [r0, #0x0] bx lr _02007602: add r0, #0x42 strh r2, [r0, #0x0] bx lr _02007608: strh r2, [r0, #0x34] bx lr _0200760C: strh r2, [r0, #0x36] bx lr _02007610: ldr r3, [r0, #0x54] mov r1, #0x2 bic r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x1e orr r1, r3 str r1, [r0, #0x54] bx lr _02007620: add r0, #0x44 strb r2, [r0, #0x0] bx lr _02007626: add r0, #0x45 strb r2, [r0, #0x0] bx lr _0200762C: add r0, #0x46 strb r2, [r0, #0x0] bx lr _02007632: add r0, #0x47 strb r2, [r0, #0x0] bx lr _02007638: add r0, #0x70 strh r2, [r0, #0x0] bx lr _0200763E: add r0, #0x72 strh r2, [r0, #0x0] bx lr _02007644: add r0, #0x74 strh r2, [r0, #0x0] bx lr _0200764A: add r0, #0x76 strh r2, [r0, #0x0] bx lr _02007650: ldr r3, [r0, #0x54] mov r1, #0x7c bic r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x19 orr r1, r3 str r1, [r0, #0x54] bx lr _02007660: ldr r3, [r0, #0x50] mov r1, #0x1f bic r3, r1 mov r1, #0x1f and r1, r2 orr r1, r3 str r1, [r0, #0x50] bx lr _02007670: ldr r3, [r0, #0x50] ldr r1, _02007804 ; =0xFFFFFC1F and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x16 orr r1, r3 str r1, [r0, #0x50] bx lr _02007680: ldr r3, [r0, #0x50] ldr r1, _02007808 ; =0xFFFF83FF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x11 orr r1, r3 str r1, [r0, #0x50] bx lr _02007690: ldr r3, [r0, #0x50] ldr r1, _0200780C ; =0xFFF07FFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0xc orr r1, r3 str r1, [r0, #0x50] bx lr _020076A0: ldr r3, [r0, #0x50] ldr r1, _02007810 ; =0xFE0FFFFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x7 orr r1, r3 str r1, [r0, #0x50] bx lr _020076B0: ldr r3, [r0, #0x50] ldr r1, _02007814 ; =0xC1FFFFFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x2 orr r1, r3 str r1, [r0, #0x50] bx lr _020076C0: ldr r3, [r0, #0x54] ldr r1, _02007818 ; =0xFFFFEFFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x13 orr r1, r3 str r1, [r0, #0x54] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076DA: str r2, [r0, #0x4c] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076E8: add r1, r0, #0x0 add r1, #0x48 strb r2, [r1, #0x0] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076FA: add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _0200770C: add r0, #0x4a strb r2, [r0, #0x0] bx lr _02007712: ldr r3, [r0, #0x54] ldr r1, _0200781C ; =0xFFFFFDFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x16 orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _0200772A: ldr r3, [r0, #0x54] ldr r1, _02007820 ; =0xFFFFFBFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x15 orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _02007742: ldr r3, [r0, #0x54] ldr r1, _02007824 ; =0xFFFFF7FF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x14 orr r1, r3 str r1, [r0, #0x54] bx lr _02007752: add r0, #0x5b strb r2, [r0, #0x0] bx lr _02007758: ldr r3, [r0, #0x54] ldr r1, _02007828 ; =0xFFFE1FFF and r3, r1 lsl r1, r2, #0x1c lsr r1, r1, #0xf orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _02007770: add r0, #0x6e strb r2, [r0, #0x0] bx lr _02007776: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x3 bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 mov r2, #0x3 and r1, r2 orr r3, r1 add r1, r0, #0x0 add r1, #0x6c strh r3, [r1, #0x0] ldr r1, [r0, #0x0] add r2, #0xfd orr r1, r2 str r1, [r0, #0x0] bx lr _0200779A: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x4 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1d orr r1, r3 strh r1, [r0, #0x0] bx lr _020077B4: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x8 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1c orr r1, r3 strh r1, [r0, #0x0] bx lr _020077CE: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x10 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r1, r3 strh r1, [r0, #0x0] bx lr _020077E8: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x60 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e lsr r1, r1, #0x19 orr r1, r3 strh r1, [r0, #0x0] _02007800: bx lr nop _02007804: .word 0xFFFFFC1F _02007808: .word 0xFFFF83FF _0200780C: .word 0xFFF07FFF _02007810: .word 0xFE0FFFFF _02007814: .word 0xC1FFFFFF _02007818: .word 0xFFFFEFFF _0200781C: .word 0xFFFFFDFF _02007820: .word 0xFFFFFBFF _02007824: .word 0xFFFFF7FF _02007828: .word 0xFFFE1FFF thumb_func_start FUN_0200782C FUN_0200782C: ; 0x0200782C push {r3, lr} cmp r1, #0x2e bls _02007834 b _020079D6 _02007834: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02007840: ; jump table (using 16-bit offset) .short _0200789E - _02007840 - 2; case 0 .short _020078A4 - _02007840 - 2; case 1 .short _020078AA - _02007840 - 2; case 2 .short _020078AE - _02007840 - 2; case 3 .short _020078B4 - _02007840 - 2; case 4 .short _020078BA - _02007840 - 2; case 5 .short _020078BE - _02007840 - 2; case 6 .short _020078C6 - _02007840 - 2; case 7 .short _020078CA - _02007840 - 2; case 8 .short _020078CE - _02007840 - 2; case 9 .short _020078D2 - _02007840 - 2; case 10 .short _020078D8 - _02007840 - 2; case 11 .short _020078DE - _02007840 - 2; case 12 .short _020078E4 - _02007840 - 2; case 13 .short _020078EA - _02007840 - 2; case 14 .short _020078F2 - _02007840 - 2; case 15 .short _020078F8 - _02007840 - 2; case 16 .short _020078FE - _02007840 - 2; case 17 .short _02007904 - _02007840 - 2; case 18 .short _0200790A - _02007840 - 2; case 19 .short _02007910 - _02007840 - 2; case 20 .short _02007916 - _02007840 - 2; case 21 .short _0200791C - _02007840 - 2; case 22 .short _02007922 - _02007840 - 2; case 23 .short _0200792A - _02007840 - 2; case 24 .short _02007932 - _02007840 - 2; case 25 .short _0200793A - _02007840 - 2; case 26 .short _02007942 - _02007840 - 2; case 27 .short _0200794A - _02007840 - 2; case 28 .short _02007952 - _02007840 - 2; case 29 .short _0200795A - _02007840 - 2; case 30 .short _02007962 - _02007840 - 2; case 31 .short _02007966 - _02007840 - 2; case 32 .short _0200796C - _02007840 - 2; case 33 .short _02007972 - _02007840 - 2; case 34 .short _02007978 - _02007840 - 2; case 35 .short _02007980 - _02007840 - 2; case 36 .short _02007988 - _02007840 - 2; case 37 .short _02007990 - _02007840 - 2; case 38 .short _020079D6 - _02007840 - 2; case 39 .short _02007996 - _02007840 - 2; case 40 .short _0200799E - _02007840 - 2; case 41 .short _020079A4 - _02007840 - 2; case 42 .short _020079AE - _02007840 - 2; case 43 .short _020079B8 - _02007840 - 2; case 44 .short _020079C2 - _02007840 - 2; case 45 .short _020079CC - _02007840 - 2; case 46 _0200789E: mov r1, #0x24 ldrsh r0, [r0, r1] pop {r3, pc} _020078A4: mov r1, #0x26 ldrsh r0, [r0, r1] pop {r3, pc} _020078AA: ldr r0, [r0, #0x28] pop {r3, pc} _020078AE: mov r1, #0x2c ldrsh r0, [r0, r1] pop {r3, pc} _020078B4: mov r1, #0x2e ldrsh r0, [r0, r1] pop {r3, pc} _020078BA: ldr r0, [r0, #0x30] pop {r3, pc} _020078BE: ldr r0, [r0, #0x54] lsl r0, r0, #0x1f lsr r0, r0, #0x1f pop {r3, pc} _020078C6: ldrh r0, [r0, #0x38] pop {r3, pc} _020078CA: ldrh r0, [r0, #0x3a] pop {r3, pc} _020078CE: ldrh r0, [r0, #0x3c] pop {r3, pc} _020078D2: mov r1, #0x40 ldrsh r0, [r0, r1] pop {r3, pc} _020078D8: mov r1, #0x42 ldrsh r0, [r0, r1] pop {r3, pc} _020078DE: mov r1, #0x34 ldrsh r0, [r0, r1] pop {r3, pc} _020078E4: mov r1, #0x36 ldrsh r0, [r0, r1] pop {r3, pc} _020078EA: ldr r0, [r0, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f pop {r3, pc} _020078F2: add r0, #0x44 ldrb r0, [r0, #0x0] pop {r3, pc} _020078F8: add r0, #0x45 ldrb r0, [r0, #0x0] pop {r3, pc} _020078FE: add r0, #0x46 ldrb r0, [r0, #0x0] pop {r3, pc} _02007904: add r0, #0x47 ldrb r0, [r0, #0x0] pop {r3, pc} _0200790A: mov r1, #0x70 ldrsh r0, [r0, r1] pop {r3, pc} _02007910: mov r1, #0x72 ldrsh r0, [r0, r1] pop {r3, pc} _02007916: mov r1, #0x74 ldrsh r0, [r0, r1] pop {r3, pc} _0200791C: mov r1, #0x76 ldrsh r0, [r0, r1] pop {r3, pc} _02007922: ldr r0, [r0, #0x54] lsl r0, r0, #0x19 lsr r0, r0, #0x1b pop {r3, pc} _0200792A: ldr r0, [r0, #0x50] lsl r0, r0, #0x1b lsr r0, r0, #0x1b pop {r3, pc} _02007932: ldr r0, [r0, #0x50] lsl r0, r0, #0x16 lsr r0, r0, #0x1b pop {r3, pc} _0200793A: ldr r0, [r0, #0x50] lsl r0, r0, #0x11 lsr r0, r0, #0x1b pop {r3, pc} _02007942: ldr r0, [r0, #0x50] lsl r0, r0, #0xc lsr r0, r0, #0x1b pop {r3, pc} _0200794A: ldr r0, [r0, #0x50] lsl r0, r0, #0x7 lsr r0, r0, #0x1b pop {r3, pc} _02007952: ldr r0, [r0, #0x50] lsl r0, r0, #0x2 lsr r0, r0, #0x1b pop {r3, pc} _0200795A: ldr r0, [r0, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f pop {r3, pc} _02007962: ldr r0, [r0, #0x4c] pop {r3, pc} _02007966: add r0, #0x48 ldrb r0, [r0, #0x0] pop {r3, pc} _0200796C: add r0, #0x49 ldrb r0, [r0, #0x0] pop {r3, pc} _02007972: add r0, #0x4a ldrb r0, [r0, #0x0] pop {r3, pc} _02007978: ldr r0, [r0, #0x54] lsl r0, r0, #0x16 lsr r0, r0, #0x1f pop {r3, pc} _02007980: ldr r0, [r0, #0x54] lsl r0, r0, #0x15 lsr r0, r0, #0x1f pop {r3, pc} _02007988: ldr r0, [r0, #0x54] lsl r0, r0, #0x14 lsr r0, r0, #0x1f pop {r3, pc} _02007990: add r0, #0x5b ldrb r0, [r0, #0x0] pop {r3, pc} _02007996: ldr r0, [r0, #0x54] lsl r0, r0, #0xf lsr r0, r0, #0x1c pop {r3, pc} _0200799E: mov r1, #0x6e ldrsb r0, [r0, r1] pop {r3, pc} _020079A4: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e pop {r3, pc} _020079AE: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f pop {r3, pc} _020079B8: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f pop {r3, pc} _020079C2: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f pop {r3, pc} _020079CC: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1e pop {r3, pc} _020079D6: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020079E0 FUN_020079E0: ; 0x020079E0 push {r3-r4} add r3, r0, #0x0 add r0, r2, #0x0 cmp r1, #0x2e bls _020079EC b _02007E12 _020079EC: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020079F8: ; jump table (using 16-bit offset) .short _02007A56 - _020079F8 - 2; case 0 .short _02007A62 - _020079F8 - 2; case 1 .short _02007A6E - _020079F8 - 2; case 2 .short _02007A78 - _020079F8 - 2; case 3 .short _02007A84 - _020079F8 - 2; case 4 .short _02007A90 - _020079F8 - 2; case 5 .short _02007A9A - _020079F8 - 2; case 6 .short _02007AB4 - _020079F8 - 2; case 7 .short _02007ABE - _020079F8 - 2; case 8 .short _02007AC8 - _020079F8 - 2; case 9 .short _02007AD2 - _020079F8 - 2; case 10 .short _02007AE0 - _020079F8 - 2; case 11 .short _02007AEE - _020079F8 - 2; case 12 .short _02007AFA - _020079F8 - 2; case 13 .short _02007B06 - _020079F8 - 2; case 14 .short _02007B20 - _020079F8 - 2; case 15 .short _02007B30 - _020079F8 - 2; case 16 .short _02007B40 - _020079F8 - 2; case 17 .short _02007B50 - _020079F8 - 2; case 18 .short _02007B60 - _020079F8 - 2; case 19 .short _02007B6E - _020079F8 - 2; case 20 .short _02007B7C - _020079F8 - 2; case 21 .short _02007B8A - _020079F8 - 2; case 22 .short _02007B98 - _020079F8 - 2; case 23 .short _02007BB2 - _020079F8 - 2; case 24 .short _02007BCC - _020079F8 - 2; case 25 .short _02007BE4 - _020079F8 - 2; case 26 .short _02007BFC - _020079F8 - 2; case 27 .short _02007C14 - _020079F8 - 2; case 28 .short _02007C2C - _020079F8 - 2; case 29 .short _02007C44 - _020079F8 - 2; case 30 .short _02007C66 - _020079F8 - 2; case 31 .short _02007C7A - _020079F8 - 2; case 32 .short _02007C96 - _020079F8 - 2; case 33 .short _02007CB2 - _020079F8 - 2; case 34 .short _02007CC2 - _020079F8 - 2; case 35 .short _02007CE2 - _020079F8 - 2; case 36 .short _02007D02 - _020079F8 - 2; case 37 .short _02007D1A - _020079F8 - 2; case 38 .short _02007E12 - _020079F8 - 2; case 39 .short _02007D2A - _020079F8 - 2; case 40 .short _02007D4A - _020079F8 - 2; case 41 .short _02007D58 - _020079F8 - 2; case 42 .short _02007D86 - _020079F8 - 2; case 43 .short _02007DAA - _020079F8 - 2; case 44 .short _02007DCE - _020079F8 - 2; case 45 .short _02007DF2 - _020079F8 - 2; case 46 _02007A56: mov r1, #0x24 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x24] pop {r3-r4} bx lr _02007A62: mov r1, #0x26 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x26] pop {r3-r4} bx lr _02007A6E: ldr r1, [r3, #0x28] add r0, r1, r0 str r0, [r3, #0x28] pop {r3-r4} bx lr _02007A78: mov r1, #0x2c ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x2c] pop {r3-r4} bx lr _02007A84: mov r1, #0x2e ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x2e] pop {r3-r4} bx lr _02007A90: ldr r1, [r3, #0x30] add r0, r1, r0 str r0, [r3, #0x30] pop {r3-r4} bx lr _02007A9A: ldr r4, [r3, #0x54] mov r2, #0x1 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1f lsr r2, r2, #0x1f add r2, r2, r0 mov r0, #0x1 and r0, r2 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007AB4: ldrh r1, [r3, #0x38] add r0, r1, r0 strh r0, [r3, #0x38] pop {r3-r4} bx lr _02007ABE: ldrh r1, [r3, #0x3a] add r0, r1, r0 strh r0, [r3, #0x3a] pop {r3-r4} bx lr _02007AC8: ldrh r1, [r3, #0x3c] add r0, r1, r0 strh r0, [r3, #0x3c] pop {r3-r4} bx lr _02007AD2: mov r1, #0x40 ldrsh r1, [r3, r1] add r3, #0x40 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007AE0: mov r1, #0x42 ldrsh r1, [r3, r1] add r3, #0x42 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007AEE: mov r1, #0x34 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x34] pop {r3-r4} bx lr _02007AFA: mov r1, #0x36 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x36] pop {r3-r4} bx lr _02007B06: ldr r4, [r3, #0x54] mov r2, #0x2 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1e lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x1e orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007B20: add r1, r3, #0x0 add r1, #0x44 ldrb r1, [r1, #0x0] add r3, #0x44 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B30: add r1, r3, #0x0 add r1, #0x45 ldrb r1, [r1, #0x0] add r3, #0x45 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B40: add r1, r3, #0x0 add r1, #0x46 ldrb r1, [r1, #0x0] add r3, #0x46 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B50: add r1, r3, #0x0 add r1, #0x47 ldrb r1, [r1, #0x0] add r3, #0x47 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B60: mov r1, #0x70 ldrsh r1, [r3, r1] add r3, #0x70 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B6E: mov r1, #0x72 ldrsh r1, [r3, r1] add r3, #0x72 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B7C: mov r1, #0x74 ldrsh r1, [r3, r1] add r3, #0x74 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B8A: mov r1, #0x76 ldrsh r1, [r3, r1] add r3, #0x76 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B98: ldr r4, [r3, #0x54] mov r2, #0x7c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x19 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x19 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007BB2: ldr r4, [r3, #0x50] mov r2, #0x1f add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1b lsr r2, r2, #0x1b add r2, r2, r0 mov r0, #0x1f and r0, r2 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BCC: ldr r2, [r3, #0x50] ldr r1, _02007E18 ; =0xFFFFFC1F and r1, r2 lsl r2, r2, #0x16 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x16 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BE4: ldr r2, [r3, #0x50] ldr r1, _02007E1C ; =0xFFFF83FF and r1, r2 lsl r2, r2, #0x11 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x11 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BFC: ldr r2, [r3, #0x50] ldr r1, _02007E20 ; =0xFFF07FFF and r1, r2 lsl r2, r2, #0xc lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0xc orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C14: ldr r2, [r3, #0x50] ldr r1, _02007E24 ; =0xFE0FFFFF and r1, r2 lsl r2, r2, #0x7 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x7 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C2C: ldr r2, [r3, #0x50] ldr r1, _02007E28 ; =0xC1FFFFFF and r1, r2 lsl r2, r2, #0x2 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x2 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C44: ldr r2, [r3, #0x54] ldr r1, _02007E2C ; =0xFFFFEFFF and r1, r2 lsl r2, r2, #0x13 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x13 orr r0, r1 str r0, [r3, #0x54] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C66: ldr r1, [r3, #0x4c] add r0, r1, r0 str r0, [r3, #0x4c] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C7A: add r1, r3, #0x0 add r1, #0x48 ldrb r1, [r1, #0x0] add r1, r1, r0 add r0, r3, #0x0 add r0, #0x48 strb r1, [r0, #0x0] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C96: add r1, r3, #0x0 add r1, #0x49 ldrb r1, [r1, #0x0] add r1, r1, r0 add r0, r3, #0x0 add r0, #0x49 strb r1, [r0, #0x0] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007CB2: add r1, r3, #0x0 add r1, #0x4a ldrb r1, [r1, #0x0] add r3, #0x4a add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007CC2: ldr r2, [r3, #0x54] ldr r1, _02007E30 ; =0xFFFFFDFF and r1, r2 lsl r2, r2, #0x16 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x16 orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007CE2: ldr r2, [r3, #0x54] ldr r1, _02007E34 ; =0xFFFFFBFF and r1, r2 lsl r2, r2, #0x15 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x15 orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D02: ldr r2, [r3, #0x54] ldr r1, _02007E38 ; =0xFFFFF7FF and r1, r2 lsl r2, r2, #0x14 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x14 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007D1A: add r1, r3, #0x0 add r1, #0x5b ldrb r1, [r1, #0x0] add r3, #0x5b add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007D2A: ldr r2, [r3, #0x54] ldr r1, _02007E3C ; =0xFFFE1FFF and r1, r2 lsl r2, r2, #0xf lsr r2, r2, #0x1c add r0, r2, r0 lsl r0, r0, #0x1c lsr r0, r0, #0xf orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D4A: mov r1, #0x6e ldrsb r1, [r3, r1] add r3, #0x6e add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007D58: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x3 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1e lsr r2, r2, #0x1e add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #0x3 and r0, r2 orr r1, r0 add r0, r3, #0x0 add r0, #0x6c strh r1, [r0, #0x0] ldr r0, [r3, #0x0] add r2, #0xfd orr r0, r2 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D86: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x4 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1d lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1d orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DAA: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x8 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1c lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1c orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DCE: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x10 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1b lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1b orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DF2: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x60 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x19 lsr r2, r2, #0x1e add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1e lsr r0, r0, #0x19 orr r0, r1 strh r0, [r3, #0x0] _02007E12: pop {r3-r4} bx lr nop _02007E18: .word 0xFFFFFC1F _02007E1C: .word 0xFFFF83FF _02007E20: .word 0xFFF07FFF _02007E24: .word 0xFE0FFFFF _02007E28: .word 0xC1FFFFFF _02007E2C: .word 0xFFFFEFFF _02007E30: .word 0xFFFFFDFF _02007E34: .word 0xFFFFFBFF _02007E38: .word 0xFFFFF7FF _02007E3C: .word 0xFFFE1FFF thumb_func_start FUN_02007E40 FUN_02007E40: ; 0x02007E40 push {r4-r5} ldr r5, [r0, #0x54] mov r4, #0x2 orr r4, r5 str r4, [r0, #0x54] add r4, r0, #0x0 add r4, #0x44 strb r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x45 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x46 strb r3, [r1, #0x0] ldr r1, [sp, #0x8] add r0, #0x47 strb r1, [r0, #0x0] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02007E68 FUN_02007E68: ; 0x02007E68 push {r4-r5} mov r4, #0x1 ldr r5, [r0, #0x54] lsl r4, r4, #0xc orr r4, r5 str r4, [r0, #0x54] add r4, r0, #0x0 add r4, #0x48 strb r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] add r1, r0, #0x0 mov r2, #0x0 add r1, #0x4a strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4b strb r3, [r1, #0x0] ldr r1, [sp, #0x8] str r1, [r0, #0x4c] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02007E98 FUN_02007E98: ; 0x02007E98 push {r4-r7} add r4, r0, #0x0 add r0, r1, #0x0 add r5, r2, #0x0 lsl r0, r0, #0x18 lsr r6, r0, #0x18 lsl r0, r5, #0x18 lsr r5, r0, #0x18 lsl r0, r3, #0x18 ldr r2, [sp, #0x10] mov r1, #0x0 lsr r0, r0, #0x18 _02007EB0: ldr r3, [r4, #0x0] lsl r3, r3, #0x1f lsr r3, r3, #0x1f beq _02007EDE mov r3, #0x1 ldr r7, [r4, #0x54] lsl r3, r3, #0xc orr r3, r7 str r3, [r4, #0x54] add r3, r4, #0x0 add r3, #0x48 strb r6, [r3, #0x0] add r3, r4, #0x0 add r3, #0x49 add r7, r4, #0x0 strb r5, [r3, #0x0] add r7, #0x4a mov r3, #0x0 strb r3, [r7, #0x0] add r3, r4, #0x0 add r3, #0x4b strb r0, [r3, #0x0] str r2, [r4, #0x4c] _02007EDE: add r1, r1, #0x1 add r4, #0x98 cmp r1, #0x4 blt _02007EB0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02007EEC FUN_02007EEC: ; 0x02007EEC ldr r2, [r0, #0x54] ldr r1, _02007F1C ; =0xFFFFEFFF and r1, r2 str r1, [r0, #0x54] add r1, r0, #0x0 mov r2, #0x0 add r1, #0x48 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4a strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4b strb r2, [r1, #0x0] str r2, [r0, #0x4c] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 _02007F1C: .word 0xFFFFEFFF thumb_func_start FUN_02007F20 FUN_02007F20: ; 0x02007F20 ldr r0, [r0, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f cmp r0, #0x1 bne _02007F2E mov r0, #0x1 bx lr _02007F2E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02007F34 FUN_02007F34: ; 0x02007F34 mov r2, #0x28 sub r2, r2, r1 mov r1, #0x36 ldrsh r1, [r0, r1] mul r1, r2 asr r1, r1, #0x8 sub r1, r2, r1 strh r1, [r0, #0x2e] bx lr .balign 4 thumb_func_start FUN_02007F48 FUN_02007F48: ; 0x02007F48 push {r4-r7} add r1, r0, #0x0 add r1, #0x58 ldrb r1, [r1, #0x0] add r6, r0, #0x0 add r6, #0x59 cmp r1, #0x0 beq _0200800A add r1, r0, #0x0 add r1, #0x5a ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02007FFE ldrb r1, [r6, #0x0] add r1, r1, #0x1 strb r1, [r6, #0x0] ldrb r3, [r6, #0x0] mov r1, #0x84 lsl r4, r3, #0x1 add r2, r0, r4 ldrsb r2, [r2, r1] sub r1, #0x85 cmp r2, r1 bge _02007FC6 mov r2, #0x0 sub r1, r2, #0x2 _02007F7C: add r4, r0, r3 add r4, #0x5c ldrb r4, [r4, #0x0] add r3, r0, r3 add r3, #0x5c add r4, r4, #0x1 strb r4, [r3, #0x0] ldrb r5, [r6, #0x0] lsl r3, r5, #0x1 add r4, r0, r3 add r3, r4, #0x0 add r7, r0, r5 add r3, #0x85 add r7, #0x5c ldrb r3, [r3, #0x0] ldrb r7, [r7, #0x0] cmp r3, r7 beq _02007FA4 cmp r3, #0x0 bne _02007FAE _02007FA4: add r3, r0, r5 add r3, #0x5c strb r2, [r3, #0x0] add r6, r6, #0x1 b _02007FB6 _02007FAE: mov r3, #0x84 ldrsb r3, [r4, r3] sub r3, r1, r3 strb r3, [r6, #0x0] _02007FB6: ldrb r3, [r6, #0x0] mov r5, #0x84 lsl r4, r3, #0x1 add r7, r0, r4 ldrsb r7, [r7, r5] sub r5, #0x85 cmp r7, r5 blt _02007F7C _02007FC6: add r2, r0, r4 mov r1, #0x84 ldrsb r2, [r2, r1] sub r1, #0x85 cmp r2, r1 beq _02007FD6 cmp r3, #0xa blo _02007FE6 _02007FD6: add r1, r0, #0x0 mov r2, #0x0 add r1, #0x5b strb r2, [r1, #0x0] add r0, #0x58 strb r2, [r0, #0x0] pop {r4-r7} bx lr _02007FE6: add r1, r0, #0x0 add r1, #0x5b strb r2, [r1, #0x0] ldrb r1, [r6, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 add r1, #0x85 ldrb r1, [r1, #0x0] add r0, #0x5a strb r1, [r0, #0x0] pop {r4-r7} bx lr _02007FFE: add r1, r0, #0x0 add r1, #0x5a ldrb r1, [r1, #0x0] add r0, #0x5a sub r1, r1, #0x1 strb r1, [r0, #0x0] _0200800A: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02008010 FUN_02008010: ; 0x02008010 mov r2, #0x1 strb r2, [r0, #0x0] mov r3, #0x0 strb r3, [r0, #0x2] ldrsb r2, [r1, r3] strb r2, [r0, #0x1] ldrb r2, [r1, #0x1] strb r2, [r0, #0x3] str r1, [r0, #0x10] add r2, r3, #0x0 _02008024: add r1, r0, r3 add r3, r3, #0x1 strb r2, [r1, #0x4] cmp r3, #0xa blt _02008024 bx lr thumb_func_start FUN_02008030 FUN_02008030: ; 0x02008030 push {r4-r7} ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _020080C6 add r3, r0, #0x2 ldr r4, [r0, #0x10] cmp r1, #0x0 beq _020080C0 ldrb r1, [r0, #0x3] cmp r1, #0x0 bne _020080BC ldrb r1, [r3, #0x0] add r1, r1, #0x1 strb r1, [r3, #0x0] ldrb r2, [r3, #0x0] mov r1, #0x0 mvn r1, r1 lsl r5, r2, #0x1 ldrsb r6, [r4, r5] cmp r6, r1 bge _02008098 mov r1, #0x0 _0200805C: add r5, r0, r2 ldrb r2, [r5, #0x4] add r2, r2, #0x1 strb r2, [r5, #0x4] ldrb r2, [r3, #0x0] add r5, r0, r2 lsl r2, r2, #0x1 add r2, r4, r2 ldrb r7, [r2, #0x1] ldrb r6, [r5, #0x4] cmp r7, r6 beq _02008078 cmp r7, #0x0 bne _0200807E _02008078: strb r1, [r5, #0x4] add r3, r3, #0x1 b _0200808A _0200807E: mov r5, #0x0 ldrsb r5, [r2, r5] mov r2, #0x1 mvn r2, r2 sub r2, r2, r5 strb r2, [r3, #0x0] _0200808A: ldrb r2, [r3, #0x0] mov r6, #0x0 mvn r6, r6 lsl r5, r2, #0x1 ldrsb r7, [r4, r5] cmp r7, r6 blt _0200805C _02008098: ldrsb r5, [r4, r5] mov r1, #0x0 mvn r1, r1 cmp r5, r1 beq _020080A6 cmp r2, #0xa blo _020080AE _020080A6: mov r1, #0x0 strb r1, [r0, #0x1] strb r1, [r0, #0x0] b _020080C0 _020080AE: strb r5, [r0, #0x1] ldrb r1, [r3, #0x0] lsl r1, r1, #0x1 add r1, r4, r1 ldrb r1, [r1, #0x1] strb r1, [r0, #0x3] b _020080C0 _020080BC: sub r1, r1, #0x1 strb r1, [r0, #0x3] _020080C0: ldrb r0, [r0, #0x1] pop {r4-r7} bx lr _020080C6: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_020080D0 FUN_020080D0: ; 0x020080D0 ldr r2, [r0, #0x0] mov r1, #0x80 orr r2, r1 add r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020080E0 FUN_020080E0: ; 0x020080E0 push {r3-r4} add r2, r0, #0x0 add r3, r2, #0x0 add r4, r2, #0x4 add r3, #0x14 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x78 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6e ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7a strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x70 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7c strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x72 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7e strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x74 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x80 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x76 ldrh r0, [r0, #0x0] add r2, #0x82 strh r0, [r2, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0200813C FUN_0200813C: ; 0x0200813C push {r3-r4} add r2, r0, #0x0 add r4, r2, #0x0 add r4, #0x14 add r3, r2, #0x4 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 add r0, #0x78 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7a ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6e strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7c ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x70 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7e ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x72 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x80 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x74 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x82 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x76 strh r1, [r0, #0x0] ldr r1, [r2, #0x0] mov r0, #0x80 orr r1, r0 add r0, #0x80 orr r0, r1 str r0, [r2, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_020081A8 FUN_020081A8: ; 0x020081A8 mov r3, #0xa7 lsl r3, r3, #0x2 str r1, [r0, r3] add r1, r3, #0x4 str r2, [r0, r1] bx lr thumb_func_start FUN_020081B4 FUN_020081B4: ; 0x020081B4 mov r3, #0xa9 lsl r3, r3, #0x2 str r1, [r0, r3] add r1, r3, #0x4 str r2, [r0, r1] bx lr thumb_func_start FUN_020081C0 FUN_020081C0: ; 0x020081C0 add r0, r0, #0x4 bx lr thumb_func_start FUN_020081C4 FUN_020081C4: ; 0x020081C4 push {r4, lr} add r4, r0, #0x0 ldr r0, _02008254 ; =0x000002E1 ldrb r1, [r4, r0] cmp r1, #0x0 beq _02008212 mov r1, #0x0 strb r1, [r4, r0] sub r0, #0x81 add r0, r4, r0 blx FUN_020B1A24 mov r3, #0xae lsl r3, r3, #0x2 mov r1, #0x20 strh r1, [r4, r3] add r0, r3, #0x2 strh r1, [r4, r0] add r0, r3, #0x0 sub r0, #0x18 ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x10 str r1, [r4, r0] add r0, r3, #0x0 sub r0, #0xc ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x14 str r1, [r4, r0] add r1, r3, #0x0 sub r1, #0x1c add r0, r4, r3 sub r3, #0x58 ldr r1, [r4, r1] mov r2, #0x0 add r3, r4, r3 blx FUN_020B1528 _02008212: ldr r0, _02008258 ; =0x000002E2 ldrb r1, [r4, r0] cmp r1, #0x0 beq _02008252 mov r1, #0x0 strb r1, [r4, r0] sub r0, #0x5e add r0, r4, r0 blx FUN_020B19DC mov r3, #0xaa lsl r3, r3, #0x2 add r0, r3, #0x0 ldr r1, [r4, r3] add r0, #0x30 str r1, [r4, r0] add r0, r3, #0x0 add r0, #0x8 ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x34 str r1, [r4, r0] add r0, r3, #0x0 sub r1, r3, #0x4 add r0, #0x28 sub r3, #0x24 ldr r1, [r4, r1] add r0, r4, r0 mov r2, #0x0 add r3, r4, r3 blx FUN_020B1240 _02008252: pop {r4, pc} .balign 4 _02008254: .word 0x000002E1 _02008258: .word 0x000002E2 thumb_func_start FUN_0200825C FUN_0200825C: ; 0x0200825C ldr r2, _02008264 ; =0x000002E3 strb r1, [r0, r2] bx lr nop _02008264: .word 0x000002E3 thumb_func_start FUN_02008268 FUN_02008268: ; 0x02008268 push {r4, lr} add r4, r0, #0x0 bne _02008272 bl ErrorHandling _02008272: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0200827E mov r0, #0x1 pop {r4, pc} _0200827E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02008284 FUN_02008284: ; 0x02008284 mov r2, #0xb9 lsl r2, r2, #0x2 ldr r3, [r0, r2] orr r1, r3 str r1, [r0, r2] bx lr thumb_func_start FUN_02008290 FUN_02008290: ; 0x02008290 push {r3-r4} mov r3, #0xb9 lsl r3, r3, #0x2 mov r2, #0x0 mvn r2, r2 ldr r4, [r0, r3] eor r1, r2 and r1, r4 str r1, [r0, r3] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_020082A8 FUN_020082A8: ; 0x020082A8 push {r4-r7, lr} sub sp, #0x5c add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x48] str r0, [sp, #0x54] ldr r0, [sp, #0x48] str r6, [sp, #0x44] str r0, [sp, #0x38] _020082BA: ldr r0, [sp, #0x44] ldr r1, [r0, #0x0] lsl r0, r1, #0x1f lsr r0, r0, #0x1f beq _020082CA lsl r0, r1, #0x18 lsr r0, r0, #0x1f bne _020082CC _020082CA: b _020086C2 _020082CC: mov r0, #0x80 bic r1, r0 ldr r0, [sp, #0x44] mov r2, #0xa6 str r1, [r0, #0x0] mov r0, #0x1 str r0, [sp, #0x48] ldr r0, [sp, #0x44] ldr r1, [sp, #0x44] lsl r2, r2, #0x2 ldrh r0, [r0, #0x4] ldrh r1, [r1, #0x6] ldr r2, [r6, r2] bl LoadFromNarc_2 add r1, sp, #0x58 str r0, [sp, #0x4c] blx FUN_020B0088 ldr r0, [sp, #0x58] mov r1, #0xaf ldr r0, [r0, #0x4] lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x58] ldr r2, [r0, #0x8] add r0, r1, #0x4 str r2, [r6, r0] ldr r0, [sp, #0x58] add r1, #0x8 ldr r0, [r0, #0xc] str r0, [r6, r1] ldr r0, [sp, #0x58] ldr r0, [r0, #0x14] str r0, [sp, #0x50] bl FUN_02008A74 ldr r0, [sp, #0x44] ldr r1, [sp, #0x50] bl FUN_020088EC ldr r0, [sp, #0x54] cmp r0, #0x3 beq _02008326 b _02008554 _02008326: mov r5, #0x0 add r0, r5, #0x0 str r5, [sp, #0x14] str r0, [sp, #0x24] _0200832E: ldr r0, [sp, #0x14] mov r1, #0x4f sub r2, r1, r0 mov r0, #0x50 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x50] mov r4, #0x0 add r0, r0, r1 str r0, [sp, #0x20] ldr r1, [sp, #0x50] ldr r0, [sp, #0x24] add r7, r1, r0 ldr r0, [sp, #0x20] str r7, [sp, #0x18] str r0, [sp, #0x1c] ldr r0, [sp, #0x14] sub r0, r0, #0x1 lsl r0, r0, #0x7 str r0, [sp, #0x10] _02008356: cmp r4, #0x28 bge _02008442 ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _02008386 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _02008386 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x1c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008386: cmp r0, #0x0 beq _020083A6 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x18] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083A6: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _020083C4 mov r1, #0xab lsl r1, r1, #0x2 ldr r0, [sp, #0x20] ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083C4: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0xc] beq _02008430 ldr r1, [sp, #0xc] ldr r0, [sp, #0x14] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _020083F4 mov r0, #0xab lsl r0, r0, #0x2 ldr r1, [r6, r0] ldr r0, [sp, #0x10] add r0, r0, r1 add r0, r4, r0 add r0, #0x50 add r1, r5, r1 add r1, r4, r1 ldrb r0, [r0, #0x0] add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083F4: ldr r1, [sp, #0xc] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008416 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] add r2, r5, r0 add r0, r2, r4 add r0, #0x4f ldrb r1, [r0, #0x0] add r0, r2, r4 add r0, #0x50 strb r1, [r0, #0x0] b _0200852E _02008416: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008430: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008442: ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _02008472 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _02008472 add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x1c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _02008472: cmp r0, #0x0 beq _02008496 add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x18] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _02008496: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _020084B4 mov r1, #0xab lsl r1, r1, #0x2 ldr r0, [sp, #0x20] ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _020084B4: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0x8] beq _0200851E ldr r1, [sp, #0x8] ldr r0, [sp, #0x14] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _020084E4 mov r0, #0xab lsl r0, r0, #0x2 ldr r1, [r6, r0] ldr r0, [sp, #0x10] add r0, r0, r1 add r2, r4, r0 ldr r0, _020086E8 ; =0x00002828 add r1, r5, r1 ldrb r0, [r2, r0] add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _020084E4: ldr r1, [sp, #0x8] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008504 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] ldr r1, _020086EC ; =0x00002827 add r0, r5, r0 add r0, r0, r4 ldrb r2, [r0, r1] add r1, r1, #0x1 strb r2, [r0, r1] b _0200852E _02008504: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _0200851E: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] _0200852E: ldr r0, [sp, #0x20] add r4, r4, #0x1 add r0, r0, #0x1 add r7, r7, #0x1 str r0, [sp, #0x20] cmp r4, #0x50 bge _0200853E b _02008356 _0200853E: ldr r0, [sp, #0x24] add r5, #0x80 add r0, #0x50 str r0, [sp, #0x24] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x50 bge _02008552 b _0200832E _02008552: b _020086BC _02008554: mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x40] str r0, [sp, #0x3c] _0200855C: ldr r0, [sp, #0x0] mov r1, #0x4f sub r2, r1, r0 mov r0, #0x50 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x50] mov r4, #0x0 add r0, r0, r1 str r0, [sp, #0x34] ldr r1, [sp, #0x50] ldr r0, [sp, #0x3c] add r7, r1, r0 ldr r0, [sp, #0x34] ldr r1, [sp, #0x38] str r0, [sp, #0x30] ldr r0, [sp, #0x40] str r7, [sp, #0x2c] add r5, r1, r0 ldr r0, [sp, #0x0] sub r0, r0, #0x1 lsl r1, r0, #0x7 ldr r0, [sp, #0x38] add r0, r0, r1 str r0, [sp, #0x28] _0200858E: ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _020085D6 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _020085D6 cmp r4, #0x28 bge _020085BA mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x30] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085BA: add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x30] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085D6: cmp r0, #0x0 beq _02008612 cmp r4, #0x28 bge _020085F6 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x2c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085F6: add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x2c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _02008612: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _0200862C ldr r0, [sp, #0x34] mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _0200862C: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0x4] beq _02008688 ldr r1, [sp, #0x4] ldr r0, [sp, #0x0] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _02008654 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] ldr r1, [sp, #0x28] add r1, r1, r0 ldrb r1, [r4, r1] add r0, r5, r0 strb r1, [r4, r0] b _02008694 _02008654: ldr r1, [sp, #0x4] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008672 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r5, r0 add r0, r1, r4 sub r0, r0, #0x1 ldrb r0, [r0, #0x0] strb r0, [r1, r4] b _02008694 _02008672: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _02008688: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 strb r0, [r4, r1] _02008694: ldr r0, [sp, #0x34] add r4, r4, #0x1 add r0, r0, #0x1 add r7, r7, #0x1 str r0, [sp, #0x34] cmp r4, #0x50 bge _020086A4 b _0200858E _020086A4: ldr r0, [sp, #0x40] add r0, #0x80 str r0, [sp, #0x40] ldr r0, [sp, #0x3c] add r0, #0x50 str r0, [sp, #0x3c] ldr r0, [sp, #0x0] add r0, r0, #0x1 str r0, [sp, #0x0] cmp r0, #0x50 bge _020086BC b _0200855C _020086BC: ldr r0, [sp, #0x4c] bl FUN_02016A18 _020086C2: ldr r0, [sp, #0x44] mov r1, #0xa add r0, #0x98 str r0, [sp, #0x44] ldr r0, [sp, #0x38] lsl r1, r1, #0xa add r0, r0, r1 str r0, [sp, #0x38] ldr r0, [sp, #0x54] add r0, r0, #0x1 str r0, [sp, #0x54] cmp r0, #0x4 bge _020086DE b _020082BA _020086DE: ldr r1, _020086F0 ; =0x000002E1 ldr r0, [sp, #0x48] strb r0, [r6, r1] add sp, #0x5c pop {r4-r7, pc} .balign 4 _020086E8: .word 0x00002828 _020086EC: .word 0x00002827 _020086F0: .word 0x000002E1 thumb_func_start FUN_020086F4 FUN_020086F4: ; 0x020086F4 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x14] ldr r0, [sp, #0xc] add r4, r5, #0x0 str r0, [sp, #0x8] _02008706: ldr r1, [r4, #0x0] lsl r0, r1, #0x1f lsr r0, r0, #0x1f beq _020087E0 lsl r0, r1, #0x17 lsr r0, r0, #0x1f beq _020087E0 ldr r0, _020088CC ; =0xFFFFFEFF mov r2, #0xa6 and r0, r1 str r0, [r4, #0x0] mov r0, #0x1 str r0, [sp, #0xc] lsl r2, r2, #0x2 ldrh r0, [r4, #0x4] ldrh r1, [r4, #0x8] ldr r2, [r5, r2] bl LoadFromNarc_2 add r1, sp, #0x18 str r0, [sp, #0x10] blx FUN_020B0138 ldr r0, [sp, #0x18] mov r7, #0x0 ldr r1, [r0, #0x0] mov r0, #0x2d lsl r0, r0, #0x4 str r1, [r5, r0] ldr r0, [sp, #0x18] add r2, r7, #0x0 ldr r1, [r0, #0xc] ldr r0, [sp, #0x8] lsl r3, r0, #0x1 _0200874A: mov r6, #0x2b lsl r6, r6, #0x4 ldr r6, [r5, r6] ldrh r0, [r1, #0x0] add r6, r3, r6 add r7, r7, #0x1 strh r0, [r2, r6] mov r6, #0xad lsl r6, r6, #0x2 ldrh r0, [r1, #0x0] ldr r6, [r5, r6] add r1, r1, #0x2 add r6, r3, r6 strh r0, [r2, r6] add r2, r2, #0x2 cmp r7, #0x10 blt _0200874A ldr r0, [sp, #0x10] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _020087E0 mov r2, #0xa6 lsl r2, r2, #0x2 ldr r2, [r5, r2] mov r0, #0x75 mov r1, #0xd4 bl LoadFromNarc_2 add r1, sp, #0x18 str r0, [sp, #0x4] blx FUN_020B0138 ldr r0, [sp, #0x18] mov r7, #0xad ldr r0, [r0, #0xc] mov r1, #0x0 lsl r7, r7, #0x2 _0200879E: add r6, r4, #0x0 add r6, #0x6c ldrh r6, [r6, #0x0] mov r2, #0x2b lsl r2, r2, #0x4 lsl r6, r6, #0x1e lsr r6, r6, #0x1e add r6, r6, #0x3 lsl r6, r6, #0x4 add r6, r1, r6 ldrh r3, [r0, #0x0] ldr r2, [r5, r2] lsl r6, r6, #0x1 strh r3, [r2, r6] add r6, r4, #0x0 add r6, #0x6c ldrh r6, [r6, #0x0] ldrh r3, [r0, #0x0] ldr r2, [r5, r7] lsl r6, r6, #0x1e lsr r6, r6, #0x1e add r6, r6, #0x3 lsl r6, r6, #0x4 add r6, r1, r6 lsl r6, r6, #0x1 add r1, r1, #0x1 add r0, r0, #0x2 strh r3, [r2, r6] cmp r1, #0x10 blt _0200879E ldr r0, [sp, #0x4] bl FUN_02016A18 _020087E0: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _020088AE ldr r0, [r4, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f beq _020088AE add r0, r4, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020088A0 mov r0, #0x1 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0x4b ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4a strb r1, [r0, #0x0] ldr r0, [sp, #0x8] mov r2, #0xad lsl r1, r0, #0x1 ldr r0, [r4, #0x4c] add r3, r4, #0x0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r2, r2, #0x2 str r0, [sp, #0x0] ldr r0, [r5, r2] sub r2, r2, #0x4 add r3, #0x48 ldr r2, [r5, r2] add r0, r0, r1 add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 bl FUN_02003974 add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _02008862 add r0, r0, #0x3 lsl r1, r0, #0x5 ldr r0, [r4, #0x4c] mov r2, #0xad lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r3, r4, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x0] ldr r0, [r5, r2] sub r2, r2, #0x4 add r3, #0x48 ldr r2, [r5, r2] add r0, r0, r1 add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 bl FUN_02003974 _02008862: add r0, r4, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, r1 bne _0200887C ldr r1, [r4, #0x54] ldr r0, _020088D0 ; =0xFFFFEFFF and r0, r1 str r0, [r4, #0x54] b _020088AE _0200887C: cmp r0, r1 bls _02008890 add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x48 strb r1, [r0, #0x0] b _020088AE _02008890: add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] add r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x48 strb r1, [r0, #0x0] b _020088AE _020088A0: add r0, r4, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x4a strb r1, [r0, #0x0] _020088AE: ldr r0, [sp, #0x8] add r4, #0x98 add r0, #0x10 str r0, [sp, #0x8] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x4 bge _020088C2 b _02008706 _020088C2: ldr r1, _020088D4 ; =0x000002E2 ldr r0, [sp, #0xc] strb r0, [r5, r1] add sp, #0x1c pop {r4-r7, pc} .balign 4 _020088CC: .word 0xFFFFFEFF _020088D0: .word 0xFFFFEFFF _020088D4: .word 0x000002E2 thumb_func_start FUN_020088D8 FUN_020088D8: ; 0x020088D8 mov r1, #0xf0 and r1, r0 lsl r1, r1, #0x14 lsl r0, r0, #0x1c lsr r1, r1, #0x18 lsr r0, r0, #0x18 orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_020088EC FUN_020088EC: ; 0x020088EC push {r3, lr} add r2, r0, #0x0 ldrh r0, [r2, #0xa] cmp r0, #0x0 beq _02008900 add r0, r1, #0x0 ldr r1, [r2, #0x10] mov r2, #0x1 bl FUN_02008904 _02008900: pop {r3, pc} .balign 4 thumb_func_start FUN_02008904 FUN_02008904: ; 0x02008904 push {r4-r7, lr} sub sp, #0x1c add r3, r0, #0x0 add r0, r1, #0x0 mov lr, r0 mov r0, #0x0 mov r12, r0 ldr r0, _02008A50 ; =0x02105AE8 str r1, [sp, #0x0] str r2, [sp, #0x4] str r0, [sp, #0x10] _0200891A: ldr r0, [sp, #0x10] mov r1, #0x0 ldr r6, [r0, #0x0] ldrb r0, [r6, #0x0] cmp r0, #0xff beq _02008992 ldr r0, [sp, #0x0] mov r2, #0xf and r0, r2 str r0, [sp, #0xc] sub r0, #0x8 str r0, [sp, #0xc] ldr r0, [sp, #0x0] mov r2, #0xf0 and r0, r2 lsr r7, r0, #0x4 sub r7, #0x8 _0200893C: lsl r0, r1, #0x1 add r2, r6, r0 ldrb r4, [r6, r0] ldrb r2, [r2, #0x1] ldr r0, [sp, #0xc] add r0, r0, r4 add r2, r7, r2 lsl r0, r0, #0x18 lsl r2, r2, #0x18 lsr r0, r0, #0x18 lsr r4, r2, #0x18 mov r2, #0x50 mul r2, r4 lsr r5, r0, #0x1 add r2, r5, r2 mov r4, #0x1 tst r0, r4 ldrb r4, [r3, r2] beq _02008974 mov r0, #0xf0 and r0, r4 cmp r0, #0x10 blt _02008984 cmp r0, #0x30 bgt _02008984 add r4, #0x50 strb r4, [r3, r2] b _02008984 _02008974: mov r0, #0xf and r0, r4 cmp r0, #0x1 blt _02008984 cmp r0, #0x3 bgt _02008984 add r0, r4, #0x5 strb r0, [r3, r2] _02008984: add r0, r1, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 lsl r0, r1, #0x1 ldrb r0, [r6, r0] cmp r0, #0xff bne _0200893C _02008992: ldr r0, [sp, #0x0] lsr r0, r0, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x10] add r0, r0, #0x4 str r0, [sp, #0x10] mov r0, r12 add r0, r0, #0x1 mov r12, r0 cmp r0, #0x4 blt _0200891A mov r0, lr str r0, [sp, #0x0] ldr r0, [sp, #0x4] cmp r0, #0x0 beq _02008A4A mov r0, #0x0 str r0, [sp, #0x8] ldr r0, _02008A50 ; =0x02105AE8 str r0, [sp, #0x18] _020089BA: ldr r0, [sp, #0x18] mov r4, #0x0 ldr r2, [r0, #0x0] ldrb r0, [r2, #0x0] cmp r0, #0xff beq _02008A34 ldr r0, [sp, #0x0] mov r1, #0xf and r0, r1 str r0, [sp, #0x14] add r0, #0x48 str r0, [sp, #0x14] ldr r0, [sp, #0x0] mov r1, #0xf0 and r0, r1 lsr r7, r0, #0x4 sub r7, #0x8 _020089DC: lsl r0, r4, #0x1 add r5, r2, r0 ldrb r1, [r2, r0] ldrb r5, [r5, #0x1] ldr r0, [sp, #0x14] sub r1, #0xe add r0, r0, r1 add r5, r7, r5 lsl r0, r0, #0x18 lsl r5, r5, #0x18 lsr r1, r0, #0x18 lsr r6, r5, #0x18 mov r5, #0x50 lsr r0, r1, #0x1 mul r5, r6 add r0, r0, r5 mov r5, #0x1 tst r1, r5 ldrb r5, [r3, r0] beq _02008A16 mov r1, #0xf0 and r1, r5 cmp r1, #0x10 blt _02008A26 cmp r1, #0x30 bgt _02008A26 add r5, #0x50 strb r5, [r3, r0] b _02008A26 _02008A16: mov r1, #0xf and r1, r5 cmp r1, #0x1 blt _02008A26 cmp r1, #0x3 bgt _02008A26 add r1, r5, #0x5 strb r1, [r3, r0] _02008A26: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 lsl r0, r4, #0x1 ldrb r0, [r2, r0] cmp r0, #0xff bne _020089DC _02008A34: ldr r0, [sp, #0x0] lsr r0, r0, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r0, r0, #0x4 str r0, [sp, #0x18] ldr r0, [sp, #0x8] add r0, r0, #0x1 str r0, [sp, #0x8] cmp r0, #0x4 blt _020089BA _02008A4A: add sp, #0x1c pop {r4-r7, pc} nop _02008A50: .word 0x02105AE8 thumb_func_start FUN_02008A54 FUN_02008A54: ; 0x02008A54 ldr r2, [r0, #0x0] ldr r1, _02008A6C ; =0x41C64E6D add r3, r2, #0x0 mul r3, r1 ldr r1, _02008A70 ; =0x00006073 add r1, r3, r1 str r1, [r0, #0x0] lsr r0, r1, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr nop _02008A6C: .word 0x41C64E6D _02008A70: .word 0x00006073 thumb_func_start FUN_02008A74 FUN_02008A74: ; 0x02008A74 push {r3-r7, lr} ldr r1, _02008AA0 ; =0x000018FE mov r6, #0x0 ldrh r2, [r0, r1] lsr r4, r1, #0x1 add r5, r0, r1 str r2, [sp, #0x0] add r7, sp, #0x0 mvn r6, r6 _02008A86: ldrh r1, [r5, #0x0] ldr r0, [sp, #0x0] eor r0, r1 strh r0, [r5, #0x0] add r0, r7, #0x0 bl FUN_02008A54 sub r4, r4, #0x1 sub r5, r5, #0x2 cmp r4, r6 bgt _02008A86 pop {r3-r7, pc} nop _02008AA0: .word 0x000018FE thumb_func_start FUN_02008AA4 FUN_02008AA4: ; 0x02008AA4 push {r3-r7, lr} sub sp, #0x18 mov r4, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x44] add r6, r1, #0x0 str r2, [sp, #0x0] str r3, [sp, #0x4] str r4, [sp, #0xc] cmp r0, #0x0 bne _02008AC2 bl ErrorHandling _02008AC2: ldr r0, [sp, #0x48] cmp r0, #0x0 bne _02008ACC bl ErrorHandling _02008ACC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _02008AD6 bl ErrorHandling _02008AD6: ldr r0, [sp, #0x4c] cmp r0, #0x0 bne _02008AE0 bl ErrorHandling _02008AE0: cmp r5, #0x0 bne _02008AE8 bl ErrorHandling _02008AE8: ldr r0, [sp, #0x44] add r1, r6, #0x0 bl FUN_020094F0 add r7, r0, #0x0 bne _02008AF8 bl ErrorHandling _02008AF8: ldr r0, [sp, #0x48] ldr r1, [sp, #0x0] bl FUN_020094F0 str r0, [sp, #0x14] cmp r0, #0x0 bne _02008B0A bl ErrorHandling _02008B0A: ldr r0, [sp, #0x4c] ldr r1, [sp, #0x4] bl FUN_020094F0 str r0, [sp, #0x10] cmp r0, #0x0 bne _02008B1C bl ErrorHandling _02008B1C: ldr r0, [sp, #0x50] cmp r0, #0x0 beq _02008B3A mov r2, #0x0 ldr r1, [sp, #0x30] mvn r2, r2 cmp r1, r2 beq _02008B3A bl FUN_020094F0 str r0, [sp, #0xc] cmp r0, #0x0 bne _02008B3A bl ErrorHandling _02008B3A: ldr r0, [sp, #0x54] cmp r0, #0x0 beq _02008B62 mov r2, #0x0 ldr r1, [sp, #0x34] mvn r2, r2 cmp r1, r2 beq _02008B50 bl FUN_020094F0 add r4, r0, #0x0 _02008B50: mov r0, #0x0 ldr r1, [sp, #0x38] mvn r0, r0 cmp r1, r0 beq _02008B62 ldr r0, [sp, #0x58] bl FUN_020094F0 str r0, [sp, #0x8] _02008B62: ldr r0, [sp, #0x3c] cmp r0, #0x0 beq _02008B82 ldr r1, [sp, #0x10] add r0, r7, #0x0 bl FUN_02009C80 add r6, r0, #0x0 bne _02008B78 bl ErrorHandling _02008B78: add r0, r7, #0x0 bl FUN_02009544 str r0, [r5, #0x4] b _02008B94 _02008B82: add r0, r7, #0x0 bl FUN_02009C5C add r6, r0, #0x0 bne _02008B90 bl ErrorHandling _02008B90: mov r0, #0x0 str r0, [r5, #0x4] _02008B94: ldr r0, [sp, #0x14] add r1, r6, #0x0 bl FUN_02009E54 str r0, [r5, #0x8] ldr r0, [sp, #0x10] str r6, [r5, #0x0] bl FUN_02009574 str r0, [r5, #0xc] ldr r0, [sp, #0xc] cmp r0, #0x0 beq _02008BB4 bl FUN_0200958C b _02008BB6 _02008BB4: mov r0, #0x0 _02008BB6: str r0, [r5, #0x10] cmp r4, #0x0 beq _02008BCC add r0, r4, #0x0 bl FUN_020095A4 str r0, [r5, #0x14] ldr r0, [sp, #0x8] bl FUN_020095BC b _02008BD0 _02008BCC: mov r0, #0x0 str r0, [r5, #0x14] _02008BD0: str r0, [r5, #0x18] ldr r0, [sp, #0x3c] str r0, [r5, #0x1c] ldr r0, [sp, #0x40] add r5, #0x20 strb r0, [r5, #0x0] add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_02008BE0 FUN_02008BE0: ; 0x02008BE0 push {r4-r7, lr} sub sp, #0x34 add r5, r0, #0x0 ldr r0, [sp, #0x48] add r7, r1, #0x0 str r0, [sp, #0x48] ldr r0, [sp, #0x4c] mov r4, #0x0 str r0, [sp, #0x4c] ldr r0, [sp, #0x50] ldr r1, [r5, #0x0] str r0, [sp, #0x50] ldr r0, [sp, #0x54] str r2, [sp, #0x2c] str r0, [sp, #0x54] sub r0, r4, #0x2 str r3, [sp, #0x30] cmp r1, r0 beq _02008C14 add r2, r5, #0x0 sub r0, r4, #0x2 _02008C0A: add r2, #0x20 ldr r1, [r2, #0x0] add r4, r4, #0x1 cmp r1, r0 bne _02008C0A _02008C14: add r0, r7, #0x0 mov r1, #0x8 bl FUN_02016998 mov r1, #0x24 add r6, r0, #0x0 add r0, r7, #0x0 mul r1, r4 bl FUN_02016998 str r0, [r6, #0x0] mov r7, #0x0 str r4, [r6, #0x4] cmp r4, #0x0 ble _02008C7A add r4, r7, #0x0 _02008C34: ldr r0, [r5, #0xc] str r0, [sp, #0x0] ldr r0, [r5, #0x10] str r0, [sp, #0x4] ldr r0, [r5, #0x14] str r0, [sp, #0x8] ldr r0, [r5, #0x18] str r0, [sp, #0xc] ldr r0, [r5, #0x1c] str r0, [sp, #0x10] ldr r0, [sp, #0x2c] str r0, [sp, #0x14] ldr r0, [sp, #0x30] str r0, [sp, #0x18] ldr r0, [sp, #0x48] str r0, [sp, #0x1c] ldr r0, [sp, #0x4c] str r0, [sp, #0x20] ldr r0, [sp, #0x50] str r0, [sp, #0x24] ldr r0, [sp, #0x54] str r0, [sp, #0x28] ldr r0, [r6, #0x0] ldr r1, [r5, #0x0] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r0, r4 bl FUN_02008AA4 ldr r0, [r6, #0x4] add r7, r7, #0x1 add r5, #0x20 add r4, #0x24 cmp r7, r0 blt _02008C34 _02008C7A: add r0, r6, #0x0 add sp, #0x34 pop {r4-r7, pc} thumb_func_start FUN_02008C80 FUN_02008C80: ; 0x02008C80 push {r4, lr} add r4, r0, #0x0 bne _02008C8A bl ErrorHandling _02008C8A: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02008C94 bl FUN_02016A18 _02008C94: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02008C9C FUN_02008C9C: ; 0x02008C9C push {r3-r6, lr} sub sp, #0x1c add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, _02008D00 ; =0xFFFFF000 add r0, r4, #0x0 add r6, r2, #0x0 bl FUN_0202134C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #0x8] mov r0, #0x3 lsl r0, r0, #0x12 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0x98 add r1, sp, #0x0 mov r2, #0x1 add r3, r4, #0x0 bl FUN_02009FD8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xff mov r1, #0x3 lsl r1, r1, #0x12 lsl r0, r0, #0xc str r0, [sp, #0x8] add r0, r4, #0x0 str r1, [sp, #0x4] str r1, [sp, #0xc] add r0, #0xe0 add r1, sp, #0x0 mov r2, #0x2 add r3, r4, #0x0 bl FUN_02009FD8 add r0, sp, #0x10 str r5, [sp, #0x10] str r4, [sp, #0x14] str r6, [sp, #0x18] bl FUN_0201FCB0 add sp, #0x1c pop {r3-r6, pc} nop _02008D00: .word 0xFFFFF000 thumb_func_start FUN_02008D04 FUN_02008D04: ; 0x02008D04 push {r3, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0xff lsl r1, r1, #0xc str r1, [sp, #0x8] mov r1, #0x3 lsl r1, r1, #0x12 str r1, [sp, #0xc] add r0, #0x98 add r1, sp, #0x0 str r2, [sp, #0x4] bl FUN_02021390 add sp, #0x10 pop {r3, pc} thumb_func_start FUN_02008D24 FUN_02008D24: ; 0x02008D24 push {r3, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0xff lsl r1, r1, #0xc str r1, [sp, #0x8] mov r1, #0x3 lsl r1, r1, #0x12 str r1, [sp, #0xc] add r0, #0xe0 add r1, sp, #0x0 str r2, [sp, #0x4] bl FUN_02021390 add sp, #0x10 pop {r3, pc} thumb_func_start FUN_02008D44 FUN_02008D44: ; 0x02008D44 push {r4, lr} add r4, r0, #0x0 cmp r1, #0x10 beq _02008D5A ldr r2, _02008DCC ; =0x00100010 cmp r1, r2 beq _02008D8A ldr r0, _02008DD0 ; =0x00200010 cmp r1, r0 beq _02008D98 b _02008DC4 _02008D5A: blx GX_GetBankForOBJ cmp r0, #0x40 beq _02008D6A blx GX_GetBankForOBJ cmp r0, #0x20 bne _02008D7A _02008D6A: mov r0, #0x3e mov r1, #0x2 lsl r0, r0, #0x8 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D7A: mov r0, #0x7e mov r1, #0x2 lsl r0, r0, #0x8 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D8A: mov r0, #0xfe lsr r1, r2, #0xb lsl r0, r0, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D98: blx GX_GetBankForOBJ cmp r0, #0x30 beq _02008DA8 blx GX_GetBankForOBJ cmp r0, #0x50 bne _02008DB6 _02008DA8: mov r1, #0x2 ldr r0, _02008DD4 ; =0x00013E00 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008DB6: mov r1, #0x2 ldr r0, _02008DD8 ; =0x0001FE00 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008DC4: bl ErrorHandling pop {r4, pc} nop _02008DCC: .word 0x00100010 _02008DD0: .word 0x00200010 _02008DD4: .word 0x00013E00 _02008DD8: .word 0x0001FE00 thumb_func_start FUN_02008DDC FUN_02008DDC: ; 0x02008DDC ldr r3, _02008DE8 ; =0x0201E069 add r1, r0, #0x0 mov r0, #0x3 lsl r0, r0, #0xe bx r3 nop _02008DE8: .word 0x0201E069 thumb_func_start FUN_02008DEC FUN_02008DEC: ; 0x02008DEC push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 str r2, [sp, #0x0] add r0, r2, #0x0 mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02020C44 str r0, [r4, #0x0] mov r0, #0xc add r7, r5, #0x0 mul r7, r0 ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_02016998 mov r1, #0x0 add r2, r7, #0x0 str r0, [r4, #0x4] blx Call_FillMemWithValue str r5, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0xc] str r6, [r4, #0x10] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02008E2C FUN_02008E2C: ; 0x02008E2C push {r4, lr} add r4, r0, #0x0 bne _02008E36 bl ErrorHandling _02008E36: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02008E40 bl ErrorHandling _02008E40: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02008E4A bl ErrorHandling _02008E4A: add r0, r4, #0x0 bl FUN_020094C4 ldr r0, [r4, #0x0] bl FUN_02020C90 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [r4, #0x4] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x4] add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02008E6C FUN_02008E6C: ; 0x02008E6C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _02008E80 bl ErrorHandling _02008E80: cmp r4, #0x0 bne _02008E88 bl ErrorHandling _02008E88: ldr r0, [r4, #0x4] cmp r0, r6 bgt _02008E92 bl ErrorHandling _02008E92: ldr r1, [r5, #0x10] ldr r0, [r4, #0x8] cmp r1, r0 beq _02008E9E bl ErrorHandling _02008E9E: add r0, r5, #0x0 bl FUN_020097D0 str r0, [sp, #0x1c] cmp r0, #0x0 bne _02008EAE bl ErrorHandling _02008EAE: ldrb r0, [r4, #0xc] cmp r0, #0x0 bne _02008EEA ldr r2, [r4, #0x0] mov r0, #0x4c add r1, r6, #0x0 mul r1, r0 add r6, r2, r1 ldr r1, [r2, r1] add r0, r5, #0x0 bl FUN_0200945C cmp r0, #0x1 beq _02008ECE bl ErrorHandling _02008ECE: ldr r0, [r6, #0x44] ldr r1, [sp, #0x1c] str r0, [sp, #0x0] ldr r0, [r6, #0x48] add r2, r6, #0x4 str r0, [sp, #0x4] ldr r0, [r4, #0x8] str r0, [sp, #0x8] str r7, [sp, #0xc] ldr r3, [r6, #0x0] add r0, r5, #0x0 bl FUN_0200994C b _02008F28 _02008EEA: mov r0, #0x18 ldr r1, [r4, #0x0] mul r0, r6 add r6, r1, r0 ldr r1, [r6, #0xc] add r0, r5, #0x0 bl FUN_0200945C cmp r0, #0x1 beq _02008F02 bl ErrorHandling _02008F02: ldr r0, [r6, #0x8] ldr r1, [sp, #0x1c] str r0, [sp, #0x0] ldr r0, [r6, #0xc] str r0, [sp, #0x4] ldr r0, [r6, #0x10] str r0, [sp, #0x8] ldr r0, [r6, #0x14] str r0, [sp, #0xc] ldr r0, [r4, #0x8] str r0, [sp, #0x10] str r7, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] ldr r2, [r6, #0x0] ldr r3, [r6, #0x4] add r0, r5, #0x0 bl FUN_02009978 _02008F28: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] ldr r0, [sp, #0x1c] add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02008F34 FUN_02008F34: ; 0x02008F34 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008F48 bl ErrorHandling _02008F48: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008F52 bl ErrorHandling _02008F52: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008F60 bl ErrorHandling _02008F60: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x40] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02008F90 FUN_02008F90: ; 0x02008F90 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008FA4 bl ErrorHandling _02008FA4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008FAE bl ErrorHandling _02008FAE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008FBC bl ErrorHandling _02008FBC: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02008FEC FUN_02008FEC: ; 0x02008FEC push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009000 bl ErrorHandling _02009000: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200900A bl ErrorHandling _0200900A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009018 bl ErrorHandling _02009018: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200904C FUN_0200904C: ; 0x0200904C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009060 bl ErrorHandling _02009060: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200906A bl ErrorHandling _0200906A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009078 bl ErrorHandling _02009078: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x48] str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020090AC FUN_020090AC: ; 0x020090AC push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020090C0 bl ErrorHandling _020090C0: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020090CE bl ErrorHandling _020090CE: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [sp, #0x3c] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] ldr r3, [sp, #0x1c] str r0, [sp, #0x14] str r1, [sp, #0x18] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_020090FC FUN_020090FC: ; 0x020090FC push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x1c] str r3, [sp, #0x20] cmp r5, #0x0 bne _02009110 bl ErrorHandling _02009110: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200911A bl ErrorHandling _0200911A: cmp r4, #0x0 bne _02009122 bl ErrorHandling _02009122: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200912C bl ErrorHandling _0200912C: add r0, r4, #0x0 bl FUN_02009530 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020095E4 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009490 ldr r0, [sp, #0x38] mov r1, #0x0 str r0, [sp, #0x0] str r6, [sp, #0x4] str r7, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x3c] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009978 add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_02009168 FUN_02009168: ; 0x02009168 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x1c] str r3, [sp, #0x20] cmp r5, #0x0 bne _0200917C bl ErrorHandling _0200917C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009186 bl ErrorHandling _02009186: cmp r4, #0x0 bne _0200918E bl ErrorHandling _0200918E: ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02009198 bl ErrorHandling _02009198: add r0, r4, #0x0 bl FUN_02009530 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020095E4 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x24] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009490 ldr r0, [sp, #0x40] ldr r2, [sp, #0x1c] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0x24] str r7, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] ldr r3, [sp, #0x20] str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009978 add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_020091E0 FUN_020091E0: ; 0x020091E0 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020091F4 bl ErrorHandling _020091F4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _020091FE bl ErrorHandling _020091FE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200920C bl ErrorHandling _0200920C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x40] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200923C FUN_0200923C: ; 0x0200923C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009250 bl ErrorHandling _02009250: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200925A bl ErrorHandling _0200925A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009268 bl ErrorHandling _02009268: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02009298 FUN_02009298: ; 0x02009298 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020092AC bl ErrorHandling _020092AC: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _020092B6 bl ErrorHandling _020092B6: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020092C4 bl ErrorHandling _020092C4: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020092F8 FUN_020092F8: ; 0x020092F8 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200930C bl ErrorHandling _0200930C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009316 bl ErrorHandling _02009316: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009324 bl ErrorHandling _02009324: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x48] str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02009358 FUN_02009358: ; 0x02009358 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200936C bl ErrorHandling _0200936C: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200937A bl ErrorHandling _0200937A: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [sp, #0x3c] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] ldr r3, [sp, #0x1c] str r0, [sp, #0x14] str r1, [sp, #0x18] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_020093A8 FUN_020093A8: ; 0x020093A8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _020093BC bl ErrorHandling _020093BC: cmp r4, #0x0 bne _020093C4 bl ErrorHandling _020093C4: str r6, [sp, #0x0] str r7, [sp, #0x4] ldr r3, [r4, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020093DC ldr r0, [r4, #0x4] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020093DC FUN_020093DC: ; 0x020093DC push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r5, r2, #0x0 ldr r0, [sp, #0x24] add r7, r5, r3 str r1, [sp, #0x4] ldr r4, [sp, #0x20] str r0, [sp, #0x24] cmp r5, r7 bge _02009420 add r6, r4, #0x0 add r6, #0x8 _020093F6: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [sp, #0x24] add r2, r5, #0x0 bl FUN_02008E6C cmp r4, #0x0 beq _0200941A ldr r2, [r4, #0x8] ldr r1, [r4, #0x4] cmp r1, r2 ble _0200941A ldr r1, [r4, #0x0] lsl r2, r2, #0x2 str r0, [r1, r2] ldr r0, [r6, #0x0] add r0, r0, #0x1 str r0, [r6, #0x0] _0200941A: add r5, r5, #0x1 cmp r5, r7 blt _020093F6 _02009420: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02009424 FUN_02009424: ; 0x02009424 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 lsl r1, r5, #0x2 bl FUN_02016998 str r0, [r4, #0x0] str r5, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02009448 FUN_02009448: ; 0x02009448 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0200945C FUN_0200945C: ; 0x0200945C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200946A bl ErrorHandling _0200946A: ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020CB0 pop {r3-r5, pc} thumb_func_start FUN_02009474 FUN_02009474: ; 0x02009474 push {r4, lr} add r4, r0, #0x0 bne _0200947E bl ErrorHandling _0200947E: add r0, r4, #0x0 bl FUN_02009920 ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_02020E1C pop {r4, pc} .balign 4 thumb_func_start FUN_02009490 FUN_02009490: ; 0x02009490 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200949E bl ErrorHandling _0200949E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020094A8 bl ErrorHandling _020094A8: add r0, r4, #0x0 bl FUN_02009920 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_02020D68 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0xc] sub r0, r0, #0x1 str r0, [r5, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020094C4 FUN_020094C4: ; 0x020094C4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] mov r6, #0x0 cmp r0, #0x0 ble _020094EC add r4, r6, #0x0 _020094D2: ldr r1, [r5, #0x4] ldr r0, [r1, r4] cmp r0, #0x0 beq _020094E2 add r0, r5, #0x0 add r1, r1, r4 bl FUN_02009490 _020094E2: ldr r0, [r5, #0x8] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _020094D2 _020094EC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020094F0 FUN_020094F0: ; 0x020094F0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _020094FE bl ErrorHandling _020094FE: ldr r0, [r5, #0x8] mov r6, #0x0 cmp r0, #0x0 ble _0200952C add r4, r6, #0x0 _02009508: ldr r0, [r5, #0x4] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009522 bl FUN_02020E38 cmp r0, r7 bne _02009522 mov r0, #0xc ldr r1, [r5, #0x4] mul r0, r6 add r0, r1, r0 pop {r3-r7, pc} _02009522: ldr r0, [r5, #0x8] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02009508 _0200952C: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02009530 FUN_02009530: ; 0x02009530 push {r4, lr} add r4, r0, #0x0 bne _0200953A bl ErrorHandling _0200953A: ldr r0, [r4, #0x0] bl FUN_02020E38 pop {r4, pc} .balign 4 thumb_func_start FUN_02009544 FUN_02009544: ; 0x02009544 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02009552 bl ErrorHandling _02009552: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_0200955C FUN_0200955C: ; 0x0200955C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 beq _0200956A bl ErrorHandling _0200956A: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02009574 FUN_02009574: ; 0x02009574 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x2 beq _02009582 bl ErrorHandling _02009582: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_0200958C FUN_0200958C: ; 0x0200958C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x3 beq _0200959A bl ErrorHandling _0200959A: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095A4 FUN_020095A4: ; 0x020095A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x4 beq _020095B2 bl ErrorHandling _020095B2: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095BC FUN_020095BC: ; 0x020095BC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x5 beq _020095CA bl ErrorHandling _020095CA: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095D4 FUN_020095D4: ; 0x020095D4 push {r4, lr} add r4, r0, #0x0 bne _020095DE bl ErrorHandling _020095DE: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020095E4 FUN_020095E4: ; 0x020095E4 push {r4, lr} add r4, r0, #0x0 bne _020095EE bl ErrorHandling _020095EE: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _020095FE add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x4] pop {r4, pc} _020095FE: cmp r0, #0x1 bne _0200960C add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x4] pop {r4, pc} _0200960C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02009610 FUN_02009610: ; 0x02009610 push {r4, lr} add r4, r0, #0x0 bne _0200961A bl ErrorHandling _0200961A: ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0200962A add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x8] pop {r4, pc} _0200962A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02009630 FUN_02009630: ; 0x02009630 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200963E bl ErrorHandling _0200963E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0200964C add r0, r5, #0x0 bl FUN_02009934 str r4, [r0, #0x4] _0200964C: ldr r0, [r5, #0x4] cmp r0, #0x1 bne _0200965A add r0, r5, #0x0 bl FUN_02009934 str r4, [r0, #0x4] _0200965A: pop {r3-r5, pc} thumb_func_start FUN_0200965C FUN_0200965C: ; 0x0200965C mov r0, #0x10 bx lr thumb_func_start FUN_02009660 FUN_02009660: ; 0x02009660 lsl r1, r1, #0x4 add r0, r0, r1 bx lr .balign 4 thumb_func_start FUN_02009668 FUN_02009668: ; 0x02009668 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 bne _02009678 bl ErrorHandling _02009678: ldr r0, [r5, #0x0] str r0, [r4, #0x8] mov r0, #0x1 strb r0, [r4, #0xc] add r0, r5, #0x4 bl FUN_020099E8 add r2, r0, #0x0 str r0, [r4, #0x4] cmp r2, #0x0 ble _0200969A mov r1, #0x18 add r0, r6, #0x0 mul r1, r2 bl FUN_02016998 b _0200969C _0200969A: mov r0, #0x0 _0200969C: str r0, [r4, #0x0] ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020096B0 ldr r3, [r4, #0x4] mov r2, #0x18 add r1, r5, #0x4 mul r2, r3 blx memcpy _020096B0: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020096B4 FUN_020096B4: ; 0x020096B4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020096C2 bl FUN_02016A18 _020096C2: mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020096CC FUN_020096CC: ; 0x020096CC push {r4, lr} add r4, r0, #0x0 bne _020096D6 bl ErrorHandling _020096D6: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020096DC FUN_020096DC: ; 0x020096DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020096EA bl ErrorHandling _020096EA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020096F4 bl ErrorHandling _020096F4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _02009704 mov r0, #0x4c mul r0, r4 ldr r0, [r1, r0] pop {r3-r5, pc} _02009704: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009710 FUN_02009710: ; 0x02009710 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200971E bl ErrorHandling _0200971E: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009728 bl ErrorHandling _02009728: ldrb r0, [r5, #0xc] cmp r0, #0x1 bne _02009738 mov r0, #0x18 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r6, [r0, #0x4] _02009738: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0200973C FUN_0200973C: ; 0x0200973C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200974A bl ErrorHandling _0200974A: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009754 bl ErrorHandling _02009754: ldrb r0, [r5, #0xc] cmp r0, #0x1 bne _02009764 mov r0, #0x18 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r6, [r0, #0x8] _02009764: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02009768 FUN_02009768: ; 0x02009768 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02009776 bl ErrorHandling _02009776: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009780 bl ErrorHandling _02009780: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _02009792 mov r0, #0x4c mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x44] pop {r3-r5, pc} _02009792: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x10] pop {r3-r5, pc} thumb_func_start FUN_0200979C FUN_0200979C: ; 0x0200979C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020097AA bl ErrorHandling _020097AA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020097B4 bl ErrorHandling _020097B4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _020097C6 mov r0, #0x4c mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x48] pop {r3-r5, pc} _020097C6: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x14] pop {r3-r5, pc} thumb_func_start FUN_020097D0 FUN_020097D0: ; 0x020097D0 push {r3-r4} ldr r4, [r0, #0x8] mov r1, #0x0 cmp r4, #0x0 ble _020097F6 ldr r3, [r0, #0x4] add r2, r3, #0x0 _020097DE: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _020097EE mov r0, #0xc mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _020097EE: add r1, r1, #0x1 add r2, #0xc cmp r1, r4 blt _020097DE _020097F6: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_020097FC FUN_020097FC: ; 0x020097FC push {r3-r7, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] ldr r5, [sp, #0x18] bl FUN_02020E0C cmp r6, #0x5 bhi _0200986A add r1, r6, r6 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0200981E: ; jump table (using 16-bit offset) .short _0200982A - _0200981E - 2; case 0 .short _02009836 - _0200981E - 2; case 1 .short _02009844 - _0200981E - 2; case 2 .short _0200984E - _0200981E - 2; case 3 .short _02009858 - _0200981E - 2; case 4 .short _02009862 - _0200981E - 2; case 5 _0200982A: add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0200986C str r0, [r4, #0x8] pop {r3-r7, pc} _02009836: ldr r2, [sp, #0x0] add r1, r7, #0x0 add r3, r5, #0x0 bl FUN_0200988C str r0, [r4, #0x8] pop {r3-r7, pc} _02009844: add r1, r5, #0x0 bl FUN_020098B0 str r0, [r4, #0x8] pop {r3-r7, pc} _0200984E: add r1, r5, #0x0 bl FUN_020098CC str r0, [r4, #0x8] pop {r3-r7, pc} _02009858: add r1, r5, #0x0 bl FUN_020098E8 str r0, [r4, #0x8] pop {r3-r7, pc} _02009862: add r1, r5, #0x0 bl FUN_02009904 str r0, [r4, #0x8] _0200986A: pop {r3-r7, pc} thumb_func_start FUN_0200986C FUN_0200986C: ; 0x0200986C push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r2, #0x0 mov r1, #0x8 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_020B0088 str r5, [r4, #0x4] add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200988C FUN_0200988C: ; 0x0200988C push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 mov r1, #0xc add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 blx FUN_020B0138 str r5, [r4, #0x4] str r6, [r4, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020098B0 FUN_020098B0: ; 0x020098B0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFEB8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020098CC FUN_020098CC: ; 0x020098CC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx thunk_FUN_020afda0_2 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020098E8 FUN_020098E8: ; 0x020098E8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFFD8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009904 FUN_02009904: ; 0x02009904 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx thunk_FUN_020afda0 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009920 FUN_02009920: ; 0x02009920 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x8] cmp r0, #0x0 beq _0200992E bl FUN_02016A18 _0200992E: mov r0, #0x0 str r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_02009934 FUN_02009934: ; 0x02009934 push {r4, lr} add r4, r0, #0x0 bne _0200993E bl ErrorHandling _0200993E: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02009948 bl ErrorHandling _02009948: ldr r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_0200994C FUN_0200994C: ; 0x0200994C push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r0, [r0, #0x0] ldr r3, [sp, #0x1c] bl FUN_02020D10 str r0, [r4, #0x0] ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r4, #0x0 bl FUN_020097FC add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02009978 FUN_02009978: ; 0x02009978 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x28] add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] bl FUN_02006C98 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] bl FUN_02020CD4 str r0, [r4, #0x0] ldr r1, [sp, #0x20] ldr r0, [sp, #0x24] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r4, #0x0 bl FUN_020097FC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020099B0 FUN_020099B0: ; 0x020099B0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x28] add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] bl FUN_02009A04 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] bl FUN_02020CD4 str r0, [r4, #0x0] ldr r1, [sp, #0x20] ldr r0, [sp, #0x24] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r4, #0x0 bl FUN_020097FC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020099E8 FUN_020099E8: ; 0x020099E8 mov r3, #0x0 ldr r2, [r0, #0x0] sub r1, r3, #0x2 cmp r2, r1 beq _020099FE sub r1, r3, #0x2 _020099F4: add r0, #0x18 ldr r2, [r0, #0x0] add r3, r3, #0x1 cmp r2, r1 bne _020099F4 _020099FE: add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_02009A04 FUN_02009A04: ; 0x02009A04 push {r4-r6, lr} add r6, r3, #0x0 add r5, r2, #0x0 add r2, r6, #0x0 bl FUN_02006704 add r4, r0, #0x0 beq _02009A4A cmp r5, #0x0 beq _02009A4A ldr r0, [sp, #0x10] cmp r0, #0x0 bne _02009A2A ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_02016998 b _02009A34 _02009A2A: ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_020169D8 _02009A34: add r5, r0, #0x0 cmp r5, #0x0 beq _02009A48 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02009A48: add r4, r5, #0x0 _02009A4A: add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02009A50 FUN_02009A50: ; 0x02009A50 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009A5C bl ErrorHandling _02009A5C: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009A6A bl ErrorHandling _02009A6A: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D1F8 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009A90 FUN_02009A90: ; 0x02009A90 push {r4-r6, lr} add r5, r0, #0x0 bne _02009A9A bl ErrorHandling _02009A9A: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009AC2 add r4, r6, #0x0 _02009AA4: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009AB8 bl FUN_02009A50 cmp r0, #0x0 bne _02009AB8 bl ErrorHandling _02009AB8: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009AA4 _02009AC2: pop {r4-r6, pc} thumb_func_start FUN_02009AC4 FUN_02009AC4: ; 0x02009AC4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009AD0 bl ErrorHandling _02009AD0: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009ADE bl ErrorHandling _02009ADE: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D250 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009B04 FUN_02009B04: ; 0x02009B04 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009B10 bl ErrorHandling _02009B10: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B1E bl ErrorHandling _02009B1E: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D1F8 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009B44 FUN_02009B44: ; 0x02009B44 push {r4-r6, lr} add r5, r0, #0x0 bne _02009B4E bl ErrorHandling _02009B4E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009B76 add r4, r6, #0x0 _02009B58: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009B6C bl FUN_02009B04 cmp r0, #0x0 bne _02009B6C bl ErrorHandling _02009B6C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009B58 _02009B76: pop {r4-r6, pc} thumb_func_start FUN_02009B78 FUN_02009B78: ; 0x02009B78 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009B84 bl ErrorHandling _02009B84: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B92 bl ErrorHandling _02009B92: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D250 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009BB8 FUN_02009BB8: ; 0x02009BB8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _02009BC6 bl ErrorHandling _02009BC6: cmp r5, #0x0 bne _02009BCE bl ErrorHandling _02009BCE: add r0, r4, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009544 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201D2DC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009BE8 FUN_02009BE8: ; 0x02009BE8 push {r3-r5, lr} add r5, r0, #0x0 bne _02009BF2 bl ErrorHandling _02009BF2: add r0, r5, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009544 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201D2DC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009C0C FUN_02009C0C: ; 0x02009C0C push {r4, lr} add r4, r0, #0x0 bne _02009C16 bl ErrorHandling _02009C16: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C24 bl ErrorHandling _02009C24: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201D324 pop {r4, pc} thumb_func_start FUN_02009C30 FUN_02009C30: ; 0x02009C30 push {r4-r6, lr} add r5, r0, #0x0 bne _02009C3A bl ErrorHandling _02009C3A: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009C5A add r4, r6, #0x0 _02009C44: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009C50 bl FUN_02009C0C _02009C50: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009C44 _02009C5A: pop {r4-r6, pc} thumb_func_start FUN_02009C5C FUN_02009C5C: ; 0x02009C5C push {r4, lr} add r4, r0, #0x0 bne _02009C66 bl ErrorHandling _02009C66: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C74 bl ErrorHandling _02009C74: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201D3B0 pop {r4, pc} thumb_func_start FUN_02009C80 FUN_02009C80: ; 0x02009C80 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _02009C8E bl ErrorHandling _02009C8E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C9C bl ErrorHandling _02009C9C: cmp r5, #0x0 bne _02009CA4 bl ErrorHandling _02009CA4: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x2 beq _02009CB2 bl ErrorHandling _02009CB2: add r0, r4, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009574 add r1, r0, #0x0 ldr r1, [r1, #0xc] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0201D3D4 cmp r0, #0x0 bne _02009CDA add r0, r4, #0x0 bl FUN_0201D3B0 bl FUN_0201D458 _02009CDA: pop {r3-r5, pc} thumb_func_start FUN_02009CDC FUN_02009CDC: ; 0x02009CDC push {r4, lr} add r4, r0, #0x0 bne _02009CE6 bl ErrorHandling _02009CE6: add r0, r4, #0x0 bl FUN_0201D4F0 pop {r4, pc} .balign 4 thumb_func_start FUN_02009CF0 FUN_02009CF0: ; 0x02009CF0 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009CFC bl ErrorHandling _02009CFC: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D0A bl ErrorHandling _02009D0A: add r0, r4, #0x0 bl FUN_0200955C str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x8] add r0, sp, #0x0 bl FUN_0201E0E4 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009D34 FUN_02009D34: ; 0x02009D34 push {r4-r6, lr} add r5, r0, #0x0 bne _02009D3E bl ErrorHandling _02009D3E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009D66 add r4, r6, #0x0 _02009D48: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009D5C bl FUN_02009CF0 cmp r0, #0x0 bne _02009D5C bl ErrorHandling _02009D5C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009D48 _02009D66: pop {r4-r6, pc} thumb_func_start FUN_02009D68 FUN_02009D68: ; 0x02009D68 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009D74 bl ErrorHandling _02009D74: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D82 bl ErrorHandling _02009D82: add r0, r4, #0x0 bl FUN_0200955C str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x8] add r0, sp, #0x0 bl FUN_0201E128 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009DAC FUN_02009DAC: ; 0x02009DAC push {r4-r6, lr} add r5, r0, #0x0 bne _02009DB6 bl ErrorHandling _02009DB6: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009DDE add r4, r6, #0x0 _02009DC0: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009DD4 bl FUN_02009D68 cmp r0, #0x0 bne _02009DD4 bl ErrorHandling _02009DD4: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009DC0 _02009DDE: pop {r4-r6, pc} thumb_func_start FUN_02009DE0 FUN_02009DE0: ; 0x02009DE0 push {r3-r5, lr} add r5, r0, #0x0 bne _02009DEA bl ErrorHandling _02009DEA: add r0, r5, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200955C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201E168 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009E04 FUN_02009E04: ; 0x02009E04 push {r4, lr} add r4, r0, #0x0 bne _02009E0E bl ErrorHandling _02009E0E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E1C bl ErrorHandling _02009E1C: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201E1C8 pop {r4, pc} thumb_func_start FUN_02009E28 FUN_02009E28: ; 0x02009E28 push {r4-r6, lr} add r5, r0, #0x0 bne _02009E32 bl ErrorHandling _02009E32: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009E52 add r4, r6, #0x0 _02009E3C: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009E48 bl FUN_02009E04 _02009E48: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009E3C _02009E52: pop {r4-r6, pc} thumb_func_start FUN_02009E54 FUN_02009E54: ; 0x02009E54 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02009E62 bl ErrorHandling _02009E62: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E70 bl ErrorHandling _02009E70: add r0, r5, #0x0 bl FUN_02009530 cmp r4, #0x0 beq _02009E82 add r1, r4, #0x0 bl FUN_0201E258 pop {r3-r5, pc} _02009E82: bl FUN_0201E230 pop {r3-r5, pc} thumb_func_start FUN_02009E88 FUN_02009E88: ; 0x02009E88 push {r4, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_02009E54 add r1, r4, #0x0 blx FUN_020B19C4 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02009EA8 asr r1, r0, #0x4 lsr r1, r1, #0x1b add r1, r0, r1 asr r0, r1, #0x5 _02009EA8: pop {r4, pc} .balign 4 thumb_func_start FUN_02009EAC FUN_02009EAC: ; 0x02009EAC push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 cmp r4, #0x4 bge _02009EC0 mov r0, #0x4 cmp r1, #0x7c ble _02009EC0 sub r4, r0, r4 sub r1, r1, r4 _02009EC0: cmp r2, #0x1 bge _02009ED0 mov r4, #0x1 cmp r3, #0x1e ble _02009ED2 sub r2, r4, r2 sub r3, r3, r2 b _02009ED2 _02009ED0: add r4, r2, #0x0 _02009ED2: ldr r2, [sp, #0x20] str r2, [sp, #0x0] ldr r2, [sp, #0x24] str r2, [sp, #0x4] ldr r2, [sp, #0x28] str r2, [sp, #0x8] ldr r2, [sp, #0x2c] str r2, [sp, #0xc] ldr r2, [sp, #0x30] str r2, [sp, #0x10] add r2, r4, #0x0 bl FUN_02009EF0 add sp, #0x14 pop {r3-r4, pc} thumb_func_start FUN_02009EF0 FUN_02009EF0: ; 0x02009EF0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _02009F7C ; =0x021C4670 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 beq _02009F08 bl ErrorHandling _02009F08: ldr r0, [sp, #0x30] mov r1, #0x3c bl FUN_02016998 ldr r1, _02009F7C ; =0x021C4670 cmp r0, #0x0 str r0, [r1, #0x0] bne _02009F1C bl ErrorHandling _02009F1C: ldr r1, _02009F7C ; =0x021C4670 lsl r3, r6, #0x10 ldr r2, [sp, #0x30] ldr r0, [r1, #0x0] lsr r3, r3, #0x10 str r2, [r0, #0x38] lsl r0, r7, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [r1, #0x0] lsl r1, r5, #0x10 lsl r2, r4, #0x10 lsr r1, r1, #0x10 lsr r2, r2, #0x10 blx FUN_020B0E34 cmp r0, #0x0 bne _02009F48 bl ErrorHandling _02009F48: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x20] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _02009F7C ; =0x021C4670 ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] ldr r0, [r0, #0x0] lsl r1, r1, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r0, #0x1c lsr r1, r1, #0x10 lsr r2, r2, #0x10 lsr r3, r3, #0x10 blx FUN_020B0E34 cmp r0, #0x0 bne _02009F78 bl ErrorHandling _02009F78: add sp, #0x8 pop {r3-r7, pc} .balign 4 _02009F7C: .word 0x021C4670 thumb_func_start FUN_02009F80 FUN_02009F80: ; 0x02009F80 push {r3, lr} ldr r0, _02009F9C ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02009F98 blx FUN_020B0870 ldr r0, _02009F9C ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c blx FUN_020B0870 _02009F98: pop {r3, pc} nop _02009F9C: .word 0x021C4670 thumb_func_start FUN_02009FA0 FUN_02009FA0: ; 0x02009FA0 push {r3, lr} ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02009FAE bl ErrorHandling _02009FAE: ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0200A064 ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0200A06C ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _02009FD4 ; =0x021C4670 mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} nop _02009FD4: .word 0x021C4670 thumb_func_start FUN_02009FD8 FUN_02009FD8: ; 0x02009FD8 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 ldr r0, _0200A024 ; =0x021C4670 add r7, r1, #0x0 ldr r0, [r0, #0x0] add r5, r2, #0x0 add r4, r3, #0x0 cmp r0, #0x0 bne _02009FF0 bl ErrorHandling _02009FF0: cmp r5, #0x1 bne _0200A00C ldr r0, _0200A028 ; =FUN_020213A0 ldr r2, _0200A02C ; =FUN_0200A074 str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r3, _0200A030 ; =FUN_0200A0B8 add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0x8] bl FUN_0202135C add sp, #0xc pop {r4-r7, pc} _0200A00C: ldr r0, _0200A028 ; =FUN_020213A0 ldr r2, _0200A034 ; =FUN_0200A094 str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r3, _0200A038 ; =FUN_0200A0DC add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0x8] bl FUN_0202135C add sp, #0xc pop {r4-r7, pc} .balign 4 _0200A024: .word 0x021C4670 _0200A028: .word FUN_020213A0 _0200A02C: .word FUN_0200A074 _0200A030: .word FUN_0200A0B8 _0200A034: .word FUN_0200A094 _0200A038: .word FUN_0200A0DC thumb_func_start FUN_0200A03C FUN_0200A03C: ; 0x0200A03C push {r4, lr} add r4, r0, #0x0 ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0200A04C bl ErrorHandling _0200A04C: cmp r4, #0x0 bne _0200A056 ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] pop {r4, pc} _0200A056: ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c pop {r4, pc} nop _0200A060: .word 0x021C4670 thumb_func_start FUN_0200A064 FUN_0200A064: ; 0x0200A064 ldr r3, _0200A068 ; =FUN_020203CC bx r3 .balign 4 _0200A068: .word FUN_020203CC thumb_func_start FUN_0200A06C FUN_0200A06C: ; 0x0200A06C ldr r3, _0200A070 ; =FUN_02020404 bx r3 .balign 4 _0200A070: .word FUN_02020404 thumb_func_start FUN_0200A074 FUN_0200A074: ; 0x0200A074 push {r4, lr} add r3, r0, #0x0 ldr r0, _0200A090 ; =0x021C4670 add r2, r1, #0x0 ldr r0, [r0, #0x0] add r1, r3, #0x0 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A08C bl ErrorHandling _0200A08C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0200A090: .word 0x021C4670 thumb_func_start FUN_0200A094 FUN_0200A094: ; 0x0200A094 push {r4, lr} add r3, r0, #0x0 ldr r0, _0200A0B4 ; =0x021C4670 add r2, r1, #0x0 ldr r0, [r0, #0x0] add r1, r3, #0x0 add r0, #0x1c blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A0AE bl ErrorHandling _0200A0AE: add r0, r4, #0x0 pop {r4, pc} nop _0200A0B4: .word 0x021C4670 thumb_func_start FUN_0200A0B8 FUN_0200A0B8: ; 0x0200A0B8 push {r4, lr} add r1, r0, #0x0 ldr r0, _0200A0D4 ; =0x021C4670 ldr r0, [r0, #0x0] blx FUN_020B0BB0 add r4, r0, #0x0 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 bne _0200A0D0 bl ErrorHandling _0200A0D0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0200A0D4: .word 0x021C4670 _0200A0D8: .word 0x0000FFFE thumb_func_start FUN_0200A0DC FUN_0200A0DC: ; 0x0200A0DC push {r4, lr} add r1, r0, #0x0 ldr r0, _0200A0FC ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c blx FUN_020B0BB0 add r4, r0, #0x0 ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 bne _0200A0F6 bl ErrorHandling _0200A0F6: add r0, r4, #0x0 pop {r4, pc} nop _0200A0FC: .word 0x021C4670 _0200A100: .word 0x0000FFFE thumb_func_start FUN_0200A104 FUN_0200A104: ; 0x0200A104 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x10 ldrsb r2, [r5, r0] mov r0, #0x14 ldrsh r0, [r5, r0] add r1, r2, #0x0 mov r7, #0x1a ldrsh r2, [r5, r7] mul r1, r0 mov r6, #0xa ldrsh r0, [r5, r6] add r1, r2, r1 mov r4, #0x0 cmp r0, r1 beq _0200A162 cmp r2, r0 beq _0200A162 strh r1, [r5, #0x1a] ldrh r3, [r5, #0x18] ldrh r0, [r5, #0x16] add r2, r5, #0x0 add r1, r5, #0x0 add r0, r3, r0 strh r0, [r5, #0x18] ldrh r3, [r5, #0x18] ldrh r0, [r5, #0x8] add r2, #0x1a add r1, #0x18 cmp r3, r0 blo _0200A166 mov r3, #0x10 ldrsh r0, [r2, r4] ldrsb r3, [r5, r3] add r0, r0, r3 strh r0, [r2, #0x0] ldrsh r2, [r5, r7] ldrsh r0, [r5, r6] cmp r2, r0 beq _0200A15E ldrh r2, [r1, #0x0] ldrh r0, [r5, #0x8] sub r0, r2, r0 strh r0, [r1, #0x0] b _0200A166 _0200A15E: mov r4, #0x1 b _0200A166 _0200A162: strh r0, [r5, #0x1a] mov r4, #0x1 _0200A166: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0200A17C mov r2, #0x1a ldrsh r2, [r5, r2] ldr r0, _0200A198 ; =0x04000050 ldr r1, [r5, #0x0] blx G2x_SetBlendBrightness_ b _0200A18E _0200A17C: mov r0, #0x2 tst r0, r1 beq _0200A18E mov r2, #0x1a ldrsh r2, [r5, r2] ldr r0, _0200A19C ; =0x04001050 ldr r1, [r5, #0x0] blx G2x_SetBlendBrightness_ _0200A18E: cmp r4, #0x1 bne _0200A196 mov r0, #0x0 str r0, [r5, #0x1c] _0200A196: pop {r3-r7, pc} .balign 4 _0200A198: .word 0x04000050 _0200A19C: .word 0x04001050 thumb_func_start FUN_0200A1A0 FUN_0200A1A0: ; 0x0200A1A0 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x1c] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 beq _0200A1B4 bl ErrorHandling _0200A1B4: ldr r1, [sp, #0x18] mov r0, #0x1 lsl r1, r1, #0x18 str r0, [r5, #0x1c] lsr r1, r1, #0x18 str r1, [r5, #0x0] ldr r1, [sp, #0x1c] lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [r5, #0x4] strh r4, [r5, #0x8] strh r6, [r5, #0xa] strh r7, [r5, #0x1a] sub r1, r7, r6 strh r1, [r5, #0x12] mov r1, #0x12 ldrsh r2, [r5, r1] cmp r2, #0x0 ble _0200A1E0 sub r1, #0x13 strb r1, [r5, #0x10] b _0200A1EA _0200A1E0: strb r0, [r5, #0x10] ldrsh r0, [r5, r1] sub r1, #0x13 mul r1, r0 strh r1, [r5, #0x12] _0200A1EA: mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 blx _s32_div_f strh r0, [r5, #0x14] mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 blx _s32_div_f strh r1, [r5, #0x16] mov r0, #0x0 strh r0, [r5, #0x18] pop {r3-r7, pc} thumb_func_start FUN_0200A208 FUN_0200A208: ; 0x0200A208 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 cmp r5, #0x0 beq _0200A25E ldr r1, [sp, #0x20] mov r0, #0x1 tst r0, r1 beq _0200A23A ldr r0, _0200A264 ; =0x04000050 add r1, r4, #0x0 blx G2x_SetBlendBrightness_ str r4, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _0200A268 ; =0x021C4694 add r1, r5, #0x0 add r2, r7, #0x0 add r3, r6, #0x0 bl FUN_0200A1A0 _0200A23A: ldr r1, [sp, #0x20] mov r0, #0x2 tst r0, r1 beq _0200A25E ldr r0, _0200A26C ; =0x04001050 add r1, r4, #0x0 add r2, r6, #0x0 blx G2x_SetBlendBrightness_ str r4, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, _0200A270 ; =0x021C4674 add r1, r5, #0x0 add r2, r7, #0x0 add r3, r6, #0x0 bl FUN_0200A1A0 _0200A25E: add sp, #0x8 pop {r3-r7, pc} nop _0200A264: .word 0x04000050 _0200A268: .word 0x021C4694 _0200A26C: .word 0x04001050 _0200A270: .word 0x021C4674 thumb_func_start FUN_0200A274 FUN_0200A274: ; 0x0200A274 push {r4-r6, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r0, #0x1 add r6, r1, #0x0 tst r0, r4 beq _0200A28A ldr r0, _0200A2A4 ; =0x04000050 add r2, r5, #0x0 blx G2x_SetBlendBrightness_ _0200A28A: mov r0, #0x2 tst r0, r4 beq _0200A29A ldr r0, _0200A2A8 ; =0x04001050 add r1, r6, #0x0 add r2, r5, #0x0 blx G2x_SetBlendBrightness_ _0200A29A: add r0, r4, #0x0 bl FUN_0200A2D8 pop {r4-r6, pc} nop _0200A2A4: .word 0x04000050 _0200A2A8: .word 0x04001050 thumb_func_start FUN_0200A2AC FUN_0200A2AC: ; 0x0200A2AC push {r3, lr} ldr r0, _0200A2CC ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A2D0 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A2D4 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] str r1, [r0, #0x1c] pop {r3, pc} .balign 4 _0200A2CC: .word 0x021C4694 _0200A2D0: .word 0x021C4674 _0200A2D4: .word 0x021C4674 thumb_func_start FUN_0200A2D8 FUN_0200A2D8: ; 0x0200A2D8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 tst r0, r4 beq _0200A2F2 ldr r0, _0200A30C ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] _0200A2F2: mov r0, #0x2 tst r0, r4 beq _0200A308 ldr r0, _0200A314 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x1c] _0200A308: pop {r4, pc} nop _0200A30C: .word 0x021C4694 _0200A310: .word 0x021C4674 _0200A314: .word 0x021C4674 thumb_func_start FUN_0200A318 FUN_0200A318: ; 0x0200A318 push {r3, lr} ldr r0, _0200A338 ; =0x021C4674 ldr r0, [r0, #0x3c] cmp r0, #0x0 beq _0200A328 ldr r0, _0200A33C ; =0x021C4694 bl FUN_0200A104 _0200A328: ldr r0, _0200A338 ; =0x021C4674 ldr r0, [r0, #0x1c] cmp r0, #0x0 beq _0200A336 ldr r0, _0200A340 ; =0x021C4674 bl FUN_0200A104 _0200A336: pop {r3, pc} .balign 4 _0200A338: .word 0x021C4674 _0200A33C: .word 0x021C4694 _0200A340: .word 0x021C4674 thumb_func_start FUN_0200A344 FUN_0200A344: ; 0x0200A344 cmp r0, #0x3 bne _0200A35A ldr r0, _0200A380 ; =0x021C4674 ldr r1, [r0, #0x3c] cmp r1, #0x0 bne _0200A37A ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A35A: cmp r0, #0x1 bne _0200A36A ldr r0, _0200A380 ; =0x021C4674 ldr r0, [r0, #0x3c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A36A: cmp r0, #0x2 bne _0200A37A ldr r0, _0200A380 ; =0x021C4674 ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A37A: mov r0, #0x0 bx lr nop _0200A380: .word 0x021C4674 thumb_func_start FUN_0200A384 FUN_0200A384: ; 0x0200A384 ldr r3, _0200A388 ; =LoadFromNarc_2 bx r3 .balign 4 _0200A388: .word LoadFromNarc_2 thumb_func_start FUN_0200A38C FUN_0200A38C: ; 0x0200A38C ldr r3, _0200A390 ; =FUN_02016A18 bx r3 .balign 4 _0200A390: .word FUN_02016A18 thumb_func_start FUN_0200A394 FUN_0200A394: ; 0x0200A394 push {r3-r7, lr} sub sp, #0x8 add r3, r0, #0x0 ldrh r0, [r3, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 cmp r5, r0 bhs _0200A404 lsl r0, r5, #0x3 add r0, r3, r0 ldr r2, [r0, #0x4] ldr r1, [r0, #0x8] ldr r6, _0200A40C ; =0x000002FD str r2, [sp, #0x0] str r1, [sp, #0x4] ldrh r0, [r3, #0x2] add r7, r5, #0x1 mul r6, r0 add r0, r7, #0x0 mul r0, r6 lsl r0, r0, #0x10 lsr r6, r0, #0x10 lsl r0, r6, #0x10 orr r0, r6 eor r2, r0 eor r0, r1 str r0, [sp, #0x4] str r2, [sp, #0x0] add r1, r3, r2 add r0, r4, #0x0 add r2, sp, #0x0 bl FUN_0200A4C0 ldr r2, [sp, #0x4] ldr r0, _0200A410 ; =0x00091BD3 add r1, r7, #0x0 mul r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 sub r3, r2, #0x1 cmp r2, #0x0 beq _0200A408 ldr r0, _0200A414 ; =0x0000493D _0200A3EA: ldrh r1, [r4, #0x0] eor r1, r5 strh r1, [r4, #0x0] add r1, r5, r0 lsl r1, r1, #0x10 lsr r5, r1, #0x10 add r1, r3, #0x0 add r4, r4, #0x2 sub r3, r3, #0x1 cmp r1, #0x0 bne _0200A3EA add sp, #0x8 pop {r3-r7, pc} _0200A404: bl ErrorHandling _0200A408: add sp, #0x8 pop {r3-r7, pc} .balign 4 _0200A40C: .word 0x000002FD _0200A410: .word 0x00091BD3 _0200A414: .word 0x0000493D thumb_func_start FUN_0200A418 FUN_0200A418: ; 0x0200A418 push {r4-r6, lr} sub sp, #0x10 add r5, r1, #0x0 add r1, r3, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r6, r0, #0x0 beq _0200A4AE add r1, sp, #0xc str r1, [sp, #0x0] add r1, r5, #0x0 mov r2, #0x0 mov r3, #0x4 bl FUN_02006814 add r0, sp, #0x4 lsl r2, r4, #0x3 str r0, [sp, #0x0] add r0, r6, #0x0 add r1, r5, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0x4 ldrh r2, [r0, #0xa] ldr r0, _0200A4B4 ; =0x000002FD add r1, r4, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0x4] eor r0, r1 str r0, [sp, #0x4] ldr r0, [sp, #0x8] eor r0, r1 str r0, [sp, #0x8] ldr r0, [sp, #0x20] add r1, r5, #0x0 str r0, [sp, #0x0] ldr r3, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r6, #0x0 lsl r3, r3, #0x1 bl FUN_02006814 ldr r2, _0200A4B8 ; =0x00091BD3 add r3, r4, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0x8] lsr r3, r2, #0x10 sub r2, r0, #0x1 ldr r1, [sp, #0x20] cmp r0, #0x0 beq _0200A4A8 ldr r0, _0200A4BC ; =0x0000493D _0200A492: ldrh r4, [r1, #0x0] eor r4, r3 strh r4, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r4, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r4, #0x0 bne _0200A492 _0200A4A8: add r0, r6, #0x0 bl FUN_020066F4 _0200A4AE: add sp, #0x10 pop {r4-r6, pc} nop _0200A4B4: .word 0x000002FD _0200A4B8: .word 0x00091BD3 _0200A4BC: .word 0x0000493D thumb_func_start FUN_0200A4C0 FUN_0200A4C0: ; 0x0200A4C0 add r3, r0, #0x0 add r0, r1, #0x0 add r1, r3, #0x0 ldr r2, [r2, #0x4] ldr r3, _0200A4D0 ; =MIi_CpuCopy16 lsl r2, r2, #0x1 bx r3 nop _0200A4D0: .word MIi_CpuCopy16 thumb_func_start FUN_0200A4D4 FUN_0200A4D4: ; 0x0200A4D4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldrh r0, [r5, #0x0] add r4, r1, #0x0 str r2, [sp, #0x0] cmp r4, r0 bhs _0200A56A lsl r0, r4, #0x3 add r0, r5, r0 ldr r3, [r0, #0x4] ldr r2, [r0, #0x8] ldrh r1, [r5, #0x2] ldr r6, _0200A578 ; =0x000002FD add r0, r4, #0x1 mul r6, r1 add r1, r0, #0x0 mul r1, r6 lsl r0, r1, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 add r0, r3, #0x0 add r6, r2, #0x0 str r3, [sp, #0x8] eor r0, r1 eor r6, r1 str r0, [sp, #0x8] lsl r0, r6, #0x1 str r0, [sp, #0x4] str r2, [sp, #0xc] ldr r1, [sp, #0x4] mov r0, #0x0 str r6, [sp, #0xc] bl FUN_020169D8 add r7, r0, #0x0 beq _0200A574 ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 blx MIi_CpuCopy16 ldr r1, _0200A57C ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 lsl r1, r1, #0x10 lsr r2, r1, #0x10 add r0, r7, #0x0 sub r1, r6, #0x1 cmp r6, #0x0 beq _0200A556 ldr r3, _0200A580 ; =0x0000493D _0200A540: ldrh r4, [r0, #0x0] eor r4, r2 strh r4, [r0, #0x0] add r2, r2, r3 lsl r2, r2, #0x10 add r4, r1, #0x0 add r0, r0, #0x2 lsr r2, r2, #0x10 sub r1, r1, #0x1 cmp r4, #0x0 bne _0200A540 _0200A556: ldr r0, [sp, #0x0] add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02021E8C add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x10 pop {r3-r7, pc} _0200A56A: bl ErrorHandling ldr r0, [sp, #0x0] bl FUN_02021A4C _0200A574: add sp, #0x10 pop {r3-r7, pc} .balign 4 _0200A578: .word 0x000002FD _0200A57C: .word 0x00091BD3 _0200A580: .word 0x0000493D thumb_func_start FUN_0200A584 FUN_0200A584: ; 0x0200A584 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldrh r0, [r5, #0x0] add r4, r1, #0x0 str r2, [sp, #0x0] cmp r4, r0 bhs _0200A62C lsl r0, r4, #0x3 add r0, r5, r0 ldr r3, [r0, #0x4] ldr r2, [r0, #0x8] ldrh r1, [r5, #0x2] ldr r6, _0200A63C ; =0x000002FD add r0, r4, #0x1 mul r6, r1 add r1, r0, #0x0 mul r1, r6 lsl r0, r1, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 add r0, r3, #0x0 add r6, r2, #0x0 str r3, [sp, #0x8] eor r0, r1 eor r6, r1 str r0, [sp, #0x8] lsl r0, r6, #0x1 str r0, [sp, #0x4] str r2, [sp, #0xc] ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] str r6, [sp, #0xc] bl FUN_020169D8 add r7, r0, #0x0 beq _0200A626 ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 blx MIi_CpuCopy16 ldr r1, _0200A640 ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 lsl r1, r1, #0x10 lsr r2, r1, #0x10 add r0, r7, #0x0 sub r1, r6, #0x1 cmp r6, #0x0 beq _0200A606 ldr r3, _0200A644 ; =0x0000493D _0200A5F0: ldrh r4, [r0, #0x0] eor r4, r2 strh r4, [r0, #0x0] add r2, r2, r3 lsl r2, r2, #0x10 add r4, r1, #0x0 add r0, r0, #0x2 lsr r2, r2, #0x10 sub r1, r1, #0x1 cmp r4, #0x0 bne _0200A5F0 _0200A606: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020219F4 add r4, r0, #0x0 beq _0200A61A add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02021E8C _0200A61A: add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x10 add r0, r4, #0x0 pop {r3-r7, pc} _0200A626: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0200A62C: bl ErrorHandling ldr r1, [sp, #0x0] mov r0, #0x4 bl FUN_020219F4 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0200A63C: .word 0x000002FD _0200A640: .word 0x00091BD3 _0200A644: .word 0x0000493D thumb_func_start FUN_0200A648 FUN_0200A648: ; 0x0200A648 push {r3-r7, lr} add r7, r3, #0x0 add r5, r1, #0x0 add r1, r7, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r6, r0, #0x0 beq _0200A66E ldr r1, [sp, #0x18] add r2, r4, #0x0 str r1, [sp, #0x0] add r1, r5, #0x0 add r3, r7, #0x0 bl FUN_0200A670 add r0, r6, #0x0 bl FUN_020066F4 _0200A66E: pop {r3-r7, pc} thumb_func_start FUN_0200A670 FUN_0200A670: ; 0x0200A670 push {r4-r7, lr} sub sp, #0x14 add r5, r2, #0x0 add r2, sp, #0x10 add r4, r3, #0x0 str r2, [sp, #0x0] mov r2, #0x0 mov r3, #0x4 add r7, r0, #0x0 str r1, [sp, #0x4] bl FUN_02006814 add r0, sp, #0x8 ldrh r0, [r0, #0x8] cmp r5, r0 bhs _0200A71E add r0, sp, #0x8 lsl r2, r5, #0x3 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r7, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0x8 ldrh r2, [r0, #0xa] ldr r0, _0200A72C ; =0x000002FD add r1, r5, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0x8] eor r0, r1 str r0, [sp, #0x8] ldr r0, [sp, #0xc] eor r0, r1 lsl r6, r0, #0x1 str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020169D8 add r4, r0, #0x0 beq _0200A728 str r4, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r7, #0x0 add r3, r6, #0x0 bl FUN_02006814 ldr r2, _0200A730 ; =0x00091BD3 add r3, r5, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0xc] lsr r3, r2, #0x10 add r1, r4, #0x0 sub r2, r0, #0x1 cmp r0, #0x0 beq _0200A70A ldr r0, _0200A734 ; =0x0000493D _0200A6F4: ldrh r5, [r1, #0x0] eor r5, r3 strh r5, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r5, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r5, #0x0 bne _0200A6F4 _0200A70A: ldr r0, [sp, #0x28] ldr r2, [sp, #0xc] add r1, r4, #0x0 bl FUN_02021E8C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} _0200A71E: bl ErrorHandling ldr r0, [sp, #0x28] bl FUN_02021A4C _0200A728: add sp, #0x14 pop {r4-r7, pc} .balign 4 _0200A72C: .word 0x000002FD _0200A730: .word 0x00091BD3 _0200A734: .word 0x0000493D thumb_func_start FUN_0200A738 FUN_0200A738: ; 0x0200A738 push {r3-r7, lr} add r6, r3, #0x0 add r5, r1, #0x0 add r1, r6, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r7, r0, #0x0 beq _0200A75E add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0200A76C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_020066F4 b _0200A768 _0200A75E: mov r0, #0x4 add r1, r6, #0x0 bl FUN_020219F4 add r4, r0, #0x0 _0200A768: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200A76C FUN_0200A76C: ; 0x0200A76C push {r3-r7, lr} sub sp, #0x18 add r4, r2, #0x0 add r2, sp, #0x14 add r5, r3, #0x0 str r2, [sp, #0x0] mov r2, #0x0 mov r3, #0x4 add r7, r0, #0x0 str r1, [sp, #0x4] bl FUN_02006814 add r0, sp, #0xc ldrh r0, [r0, #0x8] cmp r4, r0 bhs _0200A82A add r0, sp, #0xc lsl r2, r4, #0x3 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r7, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0xc ldrh r2, [r0, #0xa] ldr r0, _0200A83C ; =0x000002FD add r1, r4, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0xc] eor r0, r1 str r0, [sp, #0xc] ldr r0, [sp, #0x10] eor r0, r1 add r1, r5, #0x0 str r0, [sp, #0x10] bl FUN_020219F4 str r0, [sp, #0x8] cmp r0, #0x0 beq _0200A824 ldr r0, [sp, #0x10] lsl r6, r0, #0x1 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020169D8 add r5, r0, #0x0 beq _0200A824 str r5, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0xc] add r0, r7, #0x0 add r3, r6, #0x0 bl FUN_02006814 ldr r2, _0200A840 ; =0x00091BD3 add r3, r4, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0x10] lsr r3, r2, #0x10 add r1, r5, #0x0 sub r2, r0, #0x1 cmp r0, #0x0 beq _0200A814 ldr r0, _0200A844 ; =0x0000493D _0200A7FE: ldrh r4, [r1, #0x0] eor r4, r3 strh r4, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r4, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r4, #0x0 bne _0200A7FE _0200A814: ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] add r1, r5, #0x0 bl FUN_02021E8C add r0, r5, #0x0 bl FUN_02016A18 _0200A824: ldr r0, [sp, #0x8] add sp, #0x18 pop {r3-r7, pc} _0200A82A: bl ErrorHandling mov r0, #0x4 add r1, r5, #0x0 bl FUN_020219F4 add sp, #0x18 pop {r3-r7, pc} nop _0200A83C: .word 0x000002FD _0200A840: .word 0x00091BD3 _0200A844: .word 0x0000493D thumb_func_start FUN_0200A848 FUN_0200A848: ; 0x0200A848 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_0200A84C FUN_0200A84C: ; 0x0200A84C push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 mov r0, #0x4 add r2, r1, #0x0 str r0, [sp, #0x0] add r1, r3, #0x0 add r0, sp, #0x4 mov r3, #0x0 bl FUN_02006548 add r0, sp, #0x4 ldrh r0, [r0, #0x0] add sp, #0x8 pop {r3, pc} .balign 4 thumb_func_start FUN_0200A86C FUN_0200A86C: ; 0x0200A86C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r3, #0x0 mov r1, #0xc add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 add r4, r0, #0x0 beq _0200A8B4 cmp r5, #0x0 bne _0200A8A0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200A384 str r0, [r4, #0x8] cmp r0, #0x0 bne _0200A8AA add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r7, pc} _0200A8A0: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_02006670 str r0, [r4, #0x8] _0200A8AA: strh r5, [r4, #0x0] strh r6, [r4, #0x4] ldr r0, [sp, #0x0] strh r7, [r4, #0x6] strh r0, [r4, #0x2] _0200A8B4: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200A8B8 FUN_0200A8B8: ; 0x0200A8B8 push {r4, lr} add r4, r0, #0x0 beq _0200A8DE ldrh r0, [r4, #0x0] cmp r0, #0x0 beq _0200A8CA cmp r0, #0x1 beq _0200A8D2 b _0200A8D8 _0200A8CA: ldr r0, [r4, #0x8] bl FUN_0200A38C b _0200A8D8 _0200A8D2: ldr r0, [r4, #0x8] bl FUN_020066F4 _0200A8D8: add r0, r4, #0x0 bl FUN_02016A18 _0200A8DE: pop {r4, pc} thumb_func_start FUN_0200A8E0 FUN_0200A8E0: ; 0x0200A8E0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldrh r0, [r4, #0x0] add r3, r1, #0x0 cmp r0, #0x0 beq _0200A8F6 cmp r0, #0x1 beq _0200A900 add sp, #0x4 pop {r3-r4, pc} _0200A8F6: ldr r0, [r4, #0x8] bl FUN_0200A4D4 add sp, #0x4 pop {r3-r4, pc} _0200A900: str r2, [sp, #0x0] add r2, r3, #0x0 ldrh r1, [r4, #0x6] ldrh r3, [r4, #0x2] ldr r0, [r4, #0x8] bl FUN_0200A670 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200A914 FUN_0200A914: ; 0x0200A914 push {r3, lr} add r3, r0, #0x0 ldrh r0, [r3, #0x0] add r2, r1, #0x0 cmp r0, #0x0 beq _0200A926 cmp r0, #0x1 beq _0200A930 b _0200A93C _0200A926: ldrh r2, [r3, #0x2] ldr r0, [r3, #0x8] bl FUN_0200A584 pop {r3, pc} _0200A930: ldr r0, [r3, #0x8] ldrh r1, [r3, #0x6] ldrh r3, [r3, #0x2] bl FUN_0200A76C pop {r3, pc} _0200A93C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0200A940 FUN_0200A940: ; 0x0200A940 push {r3, lr} add r1, r0, #0x0 ldrh r0, [r1, #0x0] cmp r0, #0x0 beq _0200A950 cmp r0, #0x1 beq _0200A958 b _0200A962 _0200A950: ldr r0, [r1, #0x8] bl FUN_0200A848 pop {r3, pc} _0200A958: ldrh r0, [r1, #0x4] ldrh r1, [r1, #0x6] bl FUN_0200A84C pop {r3, pc} _0200A962: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0200A968 FUN_0200A968: ; 0x0200A968 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldrh r0, [r4, #0x0] add r3, r1, #0x0 cmp r0, #0x0 beq _0200A97E cmp r0, #0x1 beq _0200A988 add sp, #0x4 pop {r3-r4, pc} _0200A97E: ldr r0, [r4, #0x8] bl FUN_0200A394 add sp, #0x4 pop {r3-r4, pc} _0200A988: str r2, [sp, #0x0] add r2, r3, #0x0 ldrh r0, [r4, #0x4] ldrh r1, [r4, #0x6] ldrh r3, [r4, #0x2] bl FUN_0200A418 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200A99C FUN_0200A99C: ; 0x0200A99C push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r3, r1, #0x0 ldr r2, _0200A9C0 ; =0x0000016A mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0200A968 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} .balign 4 _0200A9C0: .word 0x0000016A thumb_func_start FUN_0200A9C4 FUN_0200A9C4: ; 0x0200A9C4 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] add r5, r1, #0x0 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0xa add r6, r2, #0x0 str r3, [sp, #0x0] bl FUN_020219F4 add r4, r0, #0x0 beq _0200AA0E add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200A914 add r5, r0, #0x0 beq _0200AA08 add r0, r7, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200B7B8 ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_02021ACC str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02021A20 _0200AA08: add r0, r4, #0x0 bl FUN_02021A20 _0200AA0E: ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0200AA14 FUN_0200AA14: ; 0x0200AA14 push {r4-r6, lr} add r5, r1, #0x0 mov r2, #0x93 add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 add r3, r5, #0x0 bl FUN_0200A86C add r4, r0, #0x0 beq _0200AA4C mov r0, #0x10 add r1, r5, #0x0 bl FUN_020219F4 add r5, r0, #0x0 beq _0200AA42 add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0200A8E0 _0200AA42: add r0, r4, #0x0 bl FUN_0200A8B8 add r0, r5, #0x0 pop {r4-r6, pc} _0200AA4C: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0200AA50 FUN_0200AA50: ; 0x0200AA50 push {r3-r5, lr} ldr r2, _0200AA7C ; =0x0000016A add r4, r0, #0x0 add r3, r1, #0x0 mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r5, r0, #0x0 beq _0200AA76 add r1, r4, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 pop {r3-r5, pc} _0200AA76: mov r0, #0x0 pop {r3-r5, pc} nop _0200AA7C: .word 0x0000016A thumb_func_start FUN_0200AA80 FUN_0200AA80: ; 0x0200AA80 ldr r3, _0200AA8C ; =FUN_0200AA90 add r2, r0, #0x0 mov r0, #0x8 mov r1, #0x20 bx r3 nop _0200AA8C: .word FUN_0200AA90 thumb_func_start FUN_0200AA90 FUN_0200AA90: ; 0x0200AA90 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] bne _0200AAA0 bl ErrorHandling _0200AAA0: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0200AAAA bl ErrorHandling _0200AAAA: ldr r0, [sp, #0x4] mov r1, #0x10 bl FUN_020169D8 add r4, r0, #0x0 beq _0200AB10 ldr r0, [sp, #0x4] str r7, [r4, #0x0] str r0, [r4, #0x4] ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_020219F4 str r0, [r4, #0xc] cmp r0, #0x0 beq _0200AB10 ldr r0, [sp, #0x4] lsl r1, r7, #0x3 bl FUN_020169D8 str r0, [r4, #0x8] cmp r0, #0x0 beq _0200AB10 mov r6, #0x0 cmp r7, #0x0 bls _0200AB06 add r5, r6, #0x0 _0200AAE0: add r0, r0, r5 bl FUN_0200AB6C ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_020219F4 ldr r1, [r4, #0x8] add r1, r1, r5 str r0, [r1, #0x4] ldr r0, [r4, #0x8] add r1, r0, r5 ldr r1, [r1, #0x4] cmp r1, #0x0 beq _0200AB06 add r6, r6, #0x1 add r5, #0x8 cmp r6, r7 blo _0200AAE0 _0200AB06: cmp r6, r7 bne _0200AB10 add sp, #0x8 add r0, r4, #0x0 pop {r3-r7, pc} _0200AB10: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AB18 FUN_0200AB18: ; 0x0200AB18 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 bne _0200AB26 bl ErrorHandling _0200AB26: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0200AB54 ldr r0, [r5, #0x0] mov r6, #0x0 cmp r0, #0x0 bls _0200AB4E add r4, r6, #0x0 _0200AB36: ldr r0, [r5, #0x8] add r0, r0, r4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0200AB4E bl FUN_02021A20 ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blo _0200AB36 _0200AB4E: ldr r0, [r5, #0x8] bl FUN_02016A18 _0200AB54: ldr r0, [r5, #0xc] cmp r0, #0x0 beq _0200AB5E bl FUN_02021A20 _0200AB5E: mov r0, #0x0 str r0, [r5, #0x0] add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200AB6C FUN_0200AB6C: ; 0x0200AB6C bx lr .balign 4 thumb_func_start FUN_0200AB70 FUN_0200AB70: ; 0x0200AB70 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 cmp r6, r0 blo _0200AB84 bl ErrorHandling _0200AB84: ldr r0, [r5, #0x0] cmp r6, r0 bhs _0200ABB2 cmp r4, #0x0 beq _0200ABA4 ldrb r0, [r4, #0x0] ldr r3, [r5, #0x8] lsl r2, r6, #0x3 strb r0, [r3, r2] ldrb r0, [r4, #0x1] add r1, r3, r2 strb r0, [r1, #0x1] ldrb r0, [r4, #0x2] strb r0, [r1, #0x2] ldrb r0, [r4, #0x3] strb r0, [r1, #0x3] _0200ABA4: ldr r1, [r5, #0x8] lsl r0, r6, #0x3 add r0, r1, r0 ldr r0, [r0, #0x4] add r1, r7, #0x0 bl FUN_02021A74 _0200ABB2: pop {r3-r7, pc} thumb_func_start FUN_0200ABB4 FUN_0200ABB4: ; 0x0200ABB4 push {r3, lr} mov r3, #0x0 bl FUN_0200AB70 pop {r3, pc} .balign 4 thumb_func_start FUN_0200ABC0 FUN_0200ABC0: ; 0x0200ABC0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_0202398C add r1, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200ABE4 FUN_0200ABE4: ; 0x0200ABE4 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02024EC0 bl FUN_02024EE8 add r1, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AC0C FUN_0200AC0C: ; 0x0200AC0C push {r3-r7, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r6, r1, #0x0 bl FUN_020238F4 add r7, r0, #0x0 ldr r2, _0200AC5C ; =0x000001F1 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_020239CC cmp r0, #0x0 bne _0200AC3E ldr r2, [r5, #0xc] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200A8E0 b _0200AC48 _0200AC3E: ldr r2, [r5, #0xc] add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200A8E0 _0200AC48: ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 _0200AC5C: .word 0x000001F1 thumb_func_start FUN_0200AC60 FUN_0200AC60: ; 0x0200AC60 push {r3-r7, lr} add r5, r0, #0x0 add r7, r2, #0x0 add r6, r1, #0x0 ldr r2, _0200ACA0 ; =0x0000016A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r1, r0, #0x0 ldr r2, [r5, #0xc] add r0, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} nop _0200ACA0: .word 0x0000016A thumb_func_start FUN_0200ACA4 FUN_0200ACA4: ; 0x0200ACA4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200ACC0 pop {r3-r5, pc} thumb_func_start FUN_0200ACC0 FUN_0200ACC0: ; 0x0200ACC0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200ACF4 ; =0x0000016B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C ldr r2, [r5, #0xc] add r1, r6, #0x0 add r7, r0, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} nop _0200ACF4: .word 0x0000016B thumb_func_start FUN_0200ACF8 FUN_0200ACF8: ; 0x0200ACF8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x76 bl FUN_020672BC ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AD18 FUN_0200AD18: ; 0x0200AD18 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x90 bl FUN_020672BC ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AD38 FUN_0200AD38: ; 0x0200AD38 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x14] add r4, r1, #0x0 str r0, [sp, #0x0] add r1, r2, #0x0 add r2, r3, #0x0 ldr r0, [r5, #0xc] ldr r3, [sp, #0x10] bl FUN_02021B04 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} thumb_func_start FUN_0200AD5C FUN_0200AD5C: ; 0x0200AD5C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x93 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AD90 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AD90: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AD94 FUN_0200AD94: ; 0x0200AD94 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x79 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200ADC8 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200ADC8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200ADCC FUN_0200ADCC: ; 0x0200ADCC push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8a add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AE00 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AE00: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE04 FUN_0200AE04: ; 0x0200AE04 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbe bl FUN_0200A86C ldr r2, [r5, #0xc] add r1, r6, #0x0 add r7, r0, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE38 FUN_0200AE38: ; 0x0200AE38 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x56 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AE6C ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AE6C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE70 FUN_0200AE70: ; 0x0200AE70 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AEA4 ; =0x0000015A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AEA2 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AEA2: pop {r3-r7, pc} .balign 4 _0200AEA4: .word 0x0000015A thumb_func_start FUN_0200AEA8 FUN_0200AEA8: ; 0x0200AEA8 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AEDC ; =0x0000015B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AEDA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AEDA: pop {r3-r7, pc} .balign 4 _0200AEDC: .word 0x0000015B thumb_func_start FUN_0200AEE0 FUN_0200AEE0: ; 0x0200AEE0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF14 ; =0x0000015D ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF12 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF12: pop {r3-r7, pc} .balign 4 _0200AF14: .word 0x0000015D thumb_func_start FUN_0200AF18 FUN_0200AF18: ; 0x0200AF18 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF4C ; =0x00000235 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF4A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF4A: pop {r3-r7, pc} .balign 4 _0200AF4C: .word 0x00000235 thumb_func_start FUN_0200AF50 FUN_0200AF50: ; 0x0200AF50 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF84 ; =0x000001EF ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF82 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF82: pop {r3-r7, pc} .balign 4 _0200AF84: .word 0x000001EF thumb_func_start FUN_0200AF88 FUN_0200AF88: ; 0x0200AF88 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xcd bl FUN_0200A86C add r7, r0, #0x0 beq _0200AFBA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AFBA: pop {r3-r7, pc} thumb_func_start FUN_0200AFBC FUN_0200AFBC: ; 0x0200AFBC push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x89 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AFF0 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AFF0: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AFF4 FUN_0200AFF4: ; 0x0200AFF4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B028 ; =0x0000017E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B026 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B026: pop {r3-r7, pc} .balign 4 _0200B028: .word 0x0000017E thumb_func_start FUN_0200B02C FUN_0200B02C: ; 0x0200B02C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B060 ; =0x00000196 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B05E ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B05E: pop {r3-r7, pc} .balign 4 _0200B060: .word 0x00000196 thumb_func_start FUN_0200B064 FUN_0200B064: ; 0x0200B064 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x23 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x4 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B098 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B098: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B09C FUN_0200B09C: ; 0x0200B09C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B0D0 ; =0x00000231 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B0CE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B0CE: pop {r3-r7, pc} .balign 4 _0200B0D0: .word 0x00000231 thumb_func_start FUN_0200B0D4 FUN_0200B0D4: ; 0x0200B0D4 push {r3-r7, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r2, #0x23 add r6, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x4 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B108 ldrb r1, [r4, #0x1] ldr r2, [r5, #0xc] bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B108: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B10C FUN_0200B10C: ; 0x0200B10C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B140 ; =0x0000022F ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B13E ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B13E: pop {r3-r7, pc} .balign 4 _0200B140: .word 0x0000022F thumb_func_start FUN_0200B144 FUN_0200B144: ; 0x0200B144 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r2, #0x14 add r4, r1, #0x0 add r1, r2, #0x0 bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200B164 FUN_0200B164: ; 0x0200B164 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B198 ; =0x00000239 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B196 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B196: pop {r3-r7, pc} .balign 4 _0200B198: .word 0x00000239 thumb_func_start FUN_0200B19C FUN_0200B19C: ; 0x0200B19C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B1D0 ; =0x0000023A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B1CE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B1CE: pop {r3-r7, pc} .balign 4 _0200B1D0: .word 0x0000023A thumb_func_start FUN_0200B1D4 FUN_0200B1D4: ; 0x0200B1D4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B208 ; =0x0000023B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B206 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B206: pop {r3-r7, pc} .balign 4 _0200B208: .word 0x0000023B thumb_func_start FUN_0200B20C FUN_0200B20C: ; 0x0200B20C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8f add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B240 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B240: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B244 FUN_0200B244: ; 0x0200B244 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B276 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B276: pop {r3-r7, pc} thumb_func_start FUN_0200B278 FUN_0200B278: ; 0x0200B278 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbf bl FUN_0200A86C add r7, r0, #0x0 beq _0200B2AA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B2AA: pop {r3-r7, pc} thumb_func_start FUN_0200B2AC FUN_0200B2AC: ; 0x0200B2AC push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbf bl FUN_0200A86C add r7, r0, #0x0 beq _0200B2DE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B2DE: pop {r3-r7, pc} thumb_func_start FUN_0200B2E0 FUN_0200B2E0: ; 0x0200B2E0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B314 ; =0x0000023E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B312 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B312: pop {r3-r7, pc} .balign 4 _0200B314: .word 0x0000023E thumb_func_start FUN_0200B318 FUN_0200B318: ; 0x0200B318 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B34C ; =0x0000023D ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B34A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B34A: pop {r3-r7, pc} .balign 4 _0200B34C: .word 0x0000023D thumb_func_start FUN_0200B350 FUN_0200B350: ; 0x0200B350 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B384 ; =0x00000237 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B382 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B382: pop {r3-r7, pc} .balign 4 _0200B384: .word 0x00000237 thumb_func_start FUN_0200B388 FUN_0200B388: ; 0x0200B388 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8e add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B3BC ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B3BC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B3C0 FUN_0200B3C0: ; 0x0200B3C0 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r6, r1, #0x0 add r4, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc7 bl FUN_0200A86C add r7, r0, #0x0 cmp r4, #0x0 beq _0200B3E0 cmp r4, #0x1 beq _0200B3EA b _0200B3F4 _0200B3E0: ldr r2, [r5, #0xc] mov r1, #0x44 bl FUN_0200A8E0 b _0200B3FA _0200B3EA: ldr r2, [r5, #0xc] mov r1, #0x45 bl FUN_0200A8E0 b _0200B3FA _0200B3F4: ldr r0, [r5, #0xc] bl FUN_02021A4C _0200B3FA: ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B410 FUN_0200B410: ; 0x0200B410 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] add r1, r3, #0x0 bl FUN_0206B484 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200B430 FUN_0200B430: ; 0x0200B430 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B464 ; =0x0000014B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B462 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B462: pop {r3-r7, pc} .balign 4 _0200B464: .word 0x0000014B thumb_func_start FUN_0200B468 FUN_0200B468: ; 0x0200B468 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B49C ; =0x00000226 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B49A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B49A: pop {r3-r7, pc} .balign 4 _0200B49C: .word 0x00000226 thumb_func_start FUN_0200B4A0 FUN_0200B4A0: ; 0x0200B4A0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x99 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B4D4 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B4D4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B4D8 FUN_0200B4D8: ; 0x0200B4D8 push {r3-r7, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r6, r1, #0x0 add r4, r3, #0x0 bl FUN_02088D40 add r2, r0, #0x0 beq _0200B516 cmp r4, #0x0 beq _0200B516 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B516 ldr r2, [r5, #0xc] add r1, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B516: pop {r3-r7, pc} thumb_func_start FUN_0200B518 FUN_0200B518: ; 0x0200B518 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0xc] add r0, r2, #0x0 bl FUN_02013A58 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} thumb_func_start FUN_0200B534 FUN_0200B534: ; 0x0200B534 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xa bl FUN_0200A86C add r7, r0, #0x0 beq _0200B566 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B566: pop {r3-r7, pc} thumb_func_start FUN_0200B568 FUN_0200B568: ; 0x0200B568 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xb bl FUN_0200A86C add r7, r0, #0x0 beq _0200B59A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B59A: pop {r3-r7, pc} thumb_func_start FUN_0200B59C FUN_0200B59C: ; 0x0200B59C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r1, #0x0 bl FUN_02015CC0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02015CE0 add r4, r0, #0x0 ldr r2, _0200B620 ; =0x020ECE64 lsl r3, r6, #0x1 ldrh r2, [r2, r3] ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r6, r0, #0x0 beq _0200B61E bl FUN_0200A940 cmp r4, r0 bhs _0200B5EE ldr r2, [r5, #0xc] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} _0200B5EE: add r0, r6, #0x0 bl FUN_0200A8B8 ldr r2, _0200B624 ; =0x0000017E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 beq _0200B61E ldr r2, [r5, #0xc] mov r1, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 _0200B61E: pop {r3-r7, pc} .balign 4 _0200B620: .word 0x020ECE64 _0200B624: .word 0x0000017E thumb_func_start FUN_0200B628 FUN_0200B628: ; 0x0200B628 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B65C ; =0x0000019E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B65A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B65A: pop {r3-r7, pc} .balign 4 _0200B65C: .word 0x0000019E thumb_func_start FUN_0200B660 FUN_0200B660: ; 0x0200B660 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B694 ; =0x00000152 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B692 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B692: pop {r3-r7, pc} .balign 4 _0200B694: .word 0x00000152 thumb_func_start FUN_0200B698 FUN_0200B698: ; 0x0200B698 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B6CC ; =0x00000153 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B6CA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B6CA: pop {r3-r7, pc} .balign 4 _0200B6CC: .word 0x00000153 thumb_func_start FUN_0200B6D0 FUN_0200B6D0: ; 0x0200B6D0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x55 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B704 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B704: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B708 FUN_0200B708: ; 0x0200B708 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x8] add r5, r2, #0x0 add r0, r1, #0x0 str r3, [sp, #0xc] bl FUN_0202881C add r6, r0, #0x0 add r1, r5, #0x0 bl FUN_020287F8 str r0, [sp, #0x10] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02028804 add r7, r0, #0x0 mov r0, #0x40 mov r1, #0x4 bl FUN_020219F4 add r4, r0, #0x0 ldr r2, [sp, #0x28] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_020287A8 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02021E28 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] ldr r3, [sp, #0x10] add r2, r4, #0x0 str r7, [sp, #0x4] bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0200B764 FUN_0200B764: ; 0x0200B764 push {r3-r7, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r2, #0x5b add r7, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r6, r0, #0x0 beq _0200B7A4 cmp r4, #0x1 blo _0200B786 cmp r4, #0xc bls _0200B788 _0200B786: mov r4, #0x1 _0200B788: ldr r2, [r5, #0xc] add r0, r6, #0x0 sub r1, r4, #0x1 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r6, #0x0 bl FUN_0200A8B8 _0200B7A4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B7A8 FUN_0200B7A8: ; 0x0200B7A8 ldr r2, [r0, #0x8] lsl r0, r1, #0x3 add r0, r2, r0 ldr r3, _0200B7B4 ; =FUN_02021FF8 ldr r0, [r0, #0x4] bx r3 .balign 4 _0200B7B4: .word FUN_02021FF8 thumb_func_start FUN_0200B7B8 FUN_0200B7B8: ; 0x0200B7B8 push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 bl FUN_02021F2C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02021A4C ldrh r1, [r5, #0x0] ldr r0, _0200B844 ; =0x0000FFFF cmp r1, r0 beq _0200B840 _0200B7D4: ldr r0, _0200B848 ; =0x0000FFFE cmp r1, r0 bne _0200B82E add r0, r5, #0x0 bl FUN_0201B8F8 cmp r0, #0x0 beq _0200B810 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0201B914 add r4, r0, #0x0 ldr r0, [r7, #0x0] cmp r4, r0 blo _0200B7F8 bl ErrorHandling _0200B7F8: ldr r2, [r7, #0x8] lsl r1, r4, #0x3 add r1, r2, r1 ldr r1, [r1, #0x4] add r0, r6, #0x0 bl FUN_02022048 add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _0200B838 _0200B810: add r0, r5, #0x0 add r4, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 cmp r4, r5 bhs _0200B838 _0200B81E: ldrh r1, [r4, #0x0] add r0, r6, #0x0 add r4, r4, #0x2 bl FUN_02021FB0 cmp r4, r5 blo _0200B81E b _0200B838 _0200B82E: ldrh r1, [r5, #0x0] add r0, r6, #0x0 add r5, r5, #0x2 bl FUN_02021FB0 _0200B838: ldrh r1, [r5, #0x0] ldr r0, _0200B844 ; =0x0000FFFF cmp r1, r0 bne _0200B7D4 _0200B840: pop {r3-r7, pc} nop _0200B844: .word 0x0000FFFF _0200B848: .word 0x0000FFFE thumb_func_start FUN_0200B84C FUN_0200B84C: ; 0x0200B84C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r6, #0x0 cmp r0, #0x0 bls _0200B86E add r4, r6, #0x0 _0200B85A: ldr r0, [r5, #0x8] add r0, r0, r4 ldr r0, [r0, #0x4] bl FUN_02021A4C ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blo _0200B85A _0200B86E: pop {r4-r6, pc} thumb_func_start FUN_0200B870 FUN_0200B870: ; 0x0200B870 push {r4-r7, lr} sub sp, #0x2c add r4, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r4, #0x0 mov r1, #0x2c str r2, [sp, #0x4] bl FUN_02016998 str r0, [sp, #0x8] cmp r0, #0x0 beq _0200B98A ldr r3, [sp, #0x8] mov r0, #0xe mov r1, #0x4 mov r2, #0x1 add r3, r3, #0x4 str r4, [sp, #0x0] bl FUN_02006BB0 ldr r1, [sp, #0x8] mov r3, #0x0 str r0, [r1, #0x0] add r0, r1, #0x0 ldr r0, [r0, #0x4] ldr r4, [r0, #0x14] ldr r0, [r0, #0x10] cmp r0, #0x0 bls _0200B984 ldr r0, [sp, #0x4] ldr r1, [sp, #0x4] lsl r0, r0, #0x4 orr r1, r0 str r1, [sp, #0xc] add r1, r0, #0x0 orr r1, r5 str r1, [sp, #0x10] orr r0, r6 str r0, [sp, #0x14] ldr r1, [sp, #0x4] lsl r0, r5, #0x4 orr r1, r0 str r1, [sp, #0x18] add r1, r5, #0x0 orr r1, r0 str r1, [sp, #0x1c] orr r0, r6 lsl r2, r6, #0x4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x4] add r7, r2, #0x0 orr r7, r1 add r1, r2, #0x0 orr r1, r5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 orr r2, r6 str r1, [sp, #0x28] lsl r1, r7, #0x18 lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, [sp, #0x18] lsl r2, r2, #0x18 lsr r2, r2, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 mov r12, r2 str r1, [sp, #0x24] lsr r6, r0, #0x18 ldr r0, [sp, #0x14] ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] lsl r0, r0, #0x18 lsl r1, r1, #0x18 lsl r2, r2, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 _0200B914: ldrb r5, [r4, r3] cmp r5, #0x12 bgt _0200B93C bge _0200B962 cmp r5, #0x10 bgt _0200B936 bge _0200B95A cmp r5, #0x2 bgt _0200B978 cmp r5, #0x0 blt _0200B978 beq _0200B94E cmp r5, #0x1 beq _0200B952 cmp r5, #0x2 beq _0200B956 b _0200B978 _0200B936: cmp r5, #0x11 beq _0200B95E b _0200B978 _0200B93C: cmp r5, #0x21 bgt _0200B948 bge _0200B96E cmp r5, #0x20 beq _0200B968 b _0200B978 _0200B948: cmp r5, #0x22 beq _0200B974 b _0200B978 _0200B94E: strb r2, [r4, r3] b _0200B978 _0200B952: strb r1, [r4, r3] b _0200B978 _0200B956: strb r0, [r4, r3] b _0200B978 _0200B95A: strb r6, [r4, r3] b _0200B978 _0200B95E: strb r7, [r4, r3] b _0200B978 _0200B962: ldr r5, [sp, #0x20] strb r5, [r4, r3] b _0200B978 _0200B968: ldr r5, [sp, #0x24] strb r5, [r4, r3] b _0200B978 _0200B96E: ldr r5, [sp, #0x28] strb r5, [r4, r3] b _0200B978 _0200B974: mov r5, r12 strb r5, [r4, r3] _0200B978: ldr r5, [sp, #0x8] add r3, r3, #0x1 ldr r5, [r5, #0x4] ldr r5, [r5, #0x10] cmp r3, r5 blo _0200B914 _0200B984: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] str r1, [r0, #0x28] _0200B98A: ldr r0, [sp, #0x8] add sp, #0x2c pop {r4-r7, pc} thumb_func_start FUN_0200B990 FUN_0200B990: ; 0x0200B990 push {r4, lr} add r4, r0, #0x0 beq _0200B9A6 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200B9A0 bl FUN_02016A18 _0200B9A0: add r0, r4, #0x0 bl FUN_02016A18 _0200B9A6: pop {r4, pc} thumb_func_start FUN_0200B9A8 FUN_0200B9A8: ; 0x0200B9A8 push {r3-r5, lr} sub sp, #0x18 add r4, r0, #0x0 ldr r0, _0200B9E4 ; =0x020ECE6E lsl r5, r1, #0x2 ldrh r1, [r0, r5] lsl r3, r3, #0x10 mov r0, #0x8 str r1, [sp, #0x0] str r0, [sp, #0x4] lsr r3, r3, #0x10 str r3, [sp, #0x8] ldr r3, [sp, #0x28] lsl r3, r3, #0x10 lsr r3, r3, #0x10 str r3, [sp, #0xc] str r1, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r4, #0x4] add r0, r2, #0x0 ldr r2, [r1, #0x14] ldr r1, _0200B9E8 ; =0x020ECE6C ldrh r1, [r1, r5] add r1, r2, r1 mov r2, #0x0 add r3, r2, #0x0 bl FUN_02019658 add sp, #0x18 pop {r3-r5, pc} .balign 4 _0200B9E4: .word 0x020ECE6E _0200B9E8: .word 0x020ECE6C thumb_func_start FUN_0200B9EC FUN_0200B9EC: ; 0x0200B9EC push {r3-r7, lr} sub sp, #0x18 add r6, r0, #0x0 ldr r0, [sp, #0x30] add r4, r2, #0x0 str r0, [sp, #0x30] add r0, r6, #0x0 add r2, r3, #0x0 add r0, #0x8 add r3, r4, #0x0 ldr r5, [sp, #0x34] ldr r7, [sp, #0x38] bl ConvertUIntToDecimalString ldrh r1, [r6, #0x8] ldr r0, _0200BA74 ; =0x0000FFFF cmp r1, r0 beq _0200BA6E lsl r0, r7, #0x10 add r4, r6, #0x0 lsr r7, r0, #0x10 _0200BA16: ldrh r2, [r4, #0x8] cmp r2, #0xa2 blo _0200BA4A cmp r2, #0xab bhi _0200BA4A mov r0, #0x8 str r0, [sp, #0x0] str r0, [sp, #0x4] lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] str r7, [sp, #0xc] mov r0, #0x8 str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r6, #0x4] sub r2, #0xa2 ldr r1, [r1, #0x14] lsl r2, r2, #0x5 add r1, r1, r2 mov r2, #0x0 ldr r0, [sp, #0x30] add r3, r2, #0x0 bl FUN_02019658 b _0200BA62 _0200BA4A: mov r0, #0x8 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r1, [r6, #0x28] lsl r2, r5, #0x10 lsl r1, r1, #0x18 ldr r0, [sp, #0x30] lsr r1, r1, #0x18 lsr r2, r2, #0x10 add r3, r7, #0x0 bl FUN_020196F4 _0200BA62: add r4, r4, #0x2 ldrh r1, [r4, #0x8] ldr r0, _0200BA74 ; =0x0000FFFF add r5, #0x8 cmp r1, r0 bne _0200BA16 _0200BA6E: add sp, #0x18 pop {r3-r7, pc} nop _0200BA74: .word 0x0000FFFF thumb_func_start FUN_0200BA78 FUN_0200BA78: ; 0x0200BA78 push {r3-r6, lr} sub sp, #0xc add r4, r2, #0x0 ldr r2, [sp, #0x2c] add r6, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] add r5, r0, #0x0 bl FUN_0200B9A8 ldr r0, [sp, #0x24] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x28] add r1, r4, #0x0 add r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x2c] add r2, r6, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_0200B9EC add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_0200BAAC FUN_0200BAAC: ; 0x0200BAAC push {r3-r7, lr} add r7, r0, #0x0 add r4, r2, #0x0 ldr r2, [r7, #0x28] ldr r6, [sp, #0x18] lsl r0, r2, #0x4 orr r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, r7, #0x0 add r2, r3, #0x0 add r0, #0x8 add r3, r4, #0x0 bl ConvertUIntToDecimalString ldrh r1, [r7, #0x8] ldr r0, _0200BB10 ; =0x0000FFFF cmp r1, r0 beq _0200BB0C add r4, r7, #0x0 mov r5, #0x0 _0200BAD8: ldrh r2, [r4, #0x8] cmp r2, #0xa2 blo _0200BAF6 cmp r2, #0xab bhi _0200BAF6 ldr r0, [r7, #0x4] sub r2, #0xa2 ldr r1, [r0, #0x14] lsl r0, r2, #0x5 add r0, r1, r0 add r1, r6, r5 mov r2, #0x20 blx MIi_CpuCopy32 b _0200BB00 _0200BAF6: ldr r1, [sp, #0x0] add r0, r6, r5 mov r2, #0x20 blx MI_CpuFill8 _0200BB00: add r4, r4, #0x2 ldrh r1, [r4, #0x8] ldr r0, _0200BB10 ; =0x0000FFFF add r5, #0x20 cmp r1, r0 bne _0200BAD8 _0200BB0C: pop {r3-r7, pc} nop _0200BB10: .word 0x0000FFFF thumb_func_start FUN_0200BB14 FUN_0200BB14: ; 0x0200BB14 push {r4, lr} mov r1, #0x4e lsl r1, r1, #0x2 add r4, r0, #0x0 bl FUN_02016998 cmp r0, #0x0 bne _0200BB28 mov r0, #0x0 pop {r4, pc} _0200BB28: str r4, [r0, #0x0] mov r1, #0x0 str r1, [r0, #0x4] mov r1, #0x1 str r1, [r0, #0x8] pop {r4, pc} thumb_func_start FUN_0200BB34 FUN_0200BB34: ; 0x0200BB34 push {r4, lr} add r4, r0, #0x0 bne _0200BB3E bl ErrorHandling _0200BB3E: ldr r0, [r4, #0x0] mov r1, #0x58 bl FUN_02016998 cmp r0, #0x0 bne _0200BB4E mov r0, #0x0 pop {r4, pc} _0200BB4E: ldr r1, [r4, #0x4] mov r2, #0x0 add r1, r1, #0x1 str r1, [r4, #0x4] add r3, r0, #0x0 add r1, r2, #0x0 _0200BB5A: add r2, r2, #0x1 str r1, [r3, #0xc] add r3, r3, #0x4 cmp r2, #0x6 blt _0200BB5A pop {r4, pc} .balign 4 thumb_func_start FUN_0200BB68 FUN_0200BB68: ; 0x0200BB68 add r0, #0x10 bx lr thumb_func_start FUN_0200BB6C FUN_0200BB6C: ; 0x0200BB6C push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _0200BB80 bl ErrorHandling _0200BB80: cmp r5, #0x0 bne _0200BB8A add sp, #0x24 mov r0, #0x0 pop {r4-r7, pc} _0200BB8A: ldr r0, [r6, #0x0] str r0, [sp, #0x14] ldr r0, [r6, #0x4] str r0, [sp, #0x18] ldr r0, [r6, #0x8] str r0, [sp, #0x1c] ldr r0, [r5, #0x0] str r0, [sp, #0x20] ldr r1, [r6, #0xc] ldr r2, [r6, #0x10] add r0, sp, #0x14 bl FUN_0201D060 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0201E00C blx FUN_020B0FC0 ldr r0, [r5, #0x8] cmp r0, #0x1 bne _0200BBD6 ldr r0, [r4, #0x10] str r0, [sp, #0x0] ldr r0, [r4, #0x14] str r0, [sp, #0x4] ldr r0, [r4, #0x18] str r0, [sp, #0x8] ldr r0, [r4, #0x1c] str r0, [sp, #0xc] ldr r0, [r5, #0x0] str r0, [sp, #0x10] ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_02009EAC _0200BBD6: ldr r1, [r5, #0x0] mov r0, #0x20 bl FUN_0201C328 str r0, [r5, #0xc] bl FUN_0201D168 bl FUN_0201E0BC mov r0, #0x1 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200BBF0 FUN_0200BBF0: ; 0x0200BBF0 push {r4, lr} add r3, r0, #0x0 add r4, r1, #0x0 cmp r3, #0x0 beq _0200BBFE cmp r4, #0x0 bne _0200BC02 _0200BBFE: mov r0, #0x0 pop {r4, pc} _0200BC02: add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [r3, #0x0] add r1, #0x10 bl FUN_02008C9C str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0200BC14 FUN_0200BC14: ; 0x0200BC14 ldr r3, _0200BC18 ; =FUN_0201FFC8 bx r3 .balign 4 _0200BC18: .word FUN_0201FFC8 thumb_func_start FUN_0200BC1C FUN_0200BC1C: ; 0x0200BC1C push {r4, lr} add r4, r0, #0x0 bne _0200BC26 bl ErrorHandling _0200BC26: ldr r0, [r4, #0x0] bl FUN_0201FDEC pop {r4, pc} .balign 4 thumb_func_start FUN_0200BC30 FUN_0200BC30: ; 0x0200BC30 ldr r3, _0200BC34 ; =FUN_02009F80 bx r3 .balign 4 _0200BC34: .word FUN_02009F80 thumb_func_start FUN_0200BC38 FUN_0200BC38: ; 0x0200BC38 ldr r3, _0200BC3C ; =FUN_0201C348 bx r3 .balign 4 _0200BC3C: .word FUN_0201C348 thumb_func_start FUN_0200BC40 FUN_0200BC40: ; 0x0200BC40 ldr r3, _0200BC48 ; =FUN_0201FD58 ldr r0, [r0, #0x0] bx r3 nop _0200BC48: .word FUN_0201FD58 thumb_func_start FUN_0200BC4C FUN_0200BC4C: ; 0x0200BC4C push {r3, lr} ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0200BC58 bl FUN_02008C80 _0200BC58: pop {r3, pc} .balign 4 thumb_func_start FUN_0200BC5C FUN_0200BC5C: ; 0x0200BC5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x54] mov r4, #0x0 cmp r0, #0x0 ble _0200BC7C _0200BC68: ldr r0, [r5, #0x8] add r1, r4, #0x0 bl FUN_02009660 bl FUN_020096B4 ldr r0, [r5, #0x54] add r4, r4, #0x1 cmp r4, r0 blt _0200BC68 _0200BC7C: ldr r0, [r5, #0x8] bl FUN_02016A18 ldr r0, [r5, #0x24] bl FUN_02009C30 ldr r0, [r5, #0x28] bl FUN_02009E28 ldr r0, [r5, #0x54] mov r6, #0x0 cmp r0, #0x0 ble _0200BCAE add r4, r5, #0x0 _0200BC98: ldr r0, [r4, #0x24] bl FUN_02009448 ldr r0, [r4, #0xc] bl FUN_02008E2C ldr r0, [r5, #0x54] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200BC98 _0200BCAE: pop {r4-r6, pc} thumb_func_start FUN_0200BCB0 FUN_0200BCB0: ; 0x0200BCB0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0201C350 bl FUN_0201D12C bl FUN_0201E08C ldr r0, [r4, #0x8] cmp r0, #0x1 bne _0200BCCC bl FUN_02009FA0 _0200BCCC: pop {r4, pc} .balign 4 thumb_func_start FUN_0200BCD0 FUN_0200BCD0: ; 0x0200BCD0 ldr r2, [r0, #0x4] ldr r3, _0200BCDC ; =FUN_02016A18 sub r2, r2, #0x1 str r2, [r0, #0x4] add r0, r1, #0x0 bx r3 .balign 4 _0200BCDC: .word FUN_02016A18 thumb_func_start FUN_0200BCE0 FUN_0200BCE0: ; 0x0200BCE0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0200BC40 add r0, r4, #0x0 bl FUN_0200BC4C add r0, r4, #0x0 bl FUN_0200BC5C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200BCD0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200BD04 FUN_0200BD04: ; 0x0200BD04 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200BD12 bl ErrorHandling _0200BD12: add r0, r4, #0x0 bl FUN_0200BCB0 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_0200BD20 FUN_0200BD20: ; 0x0200BD20 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 mov r0, #0x6 add r4, r1, #0x0 str r2, [sp, #0x10] str r0, [sp, #0x14] cmp r5, #0x0 beq _0200BD36 cmp r4, #0x0 bne _0200BD3C _0200BD36: add sp, #0x24 mov r0, #0x0 pop {r4-r7, pc} _0200BD3C: add r0, r2, #0x0 ldr r0, [r0, #0x10] cmp r0, #0x0 bne _0200BD48 mov r0, #0x4 str r0, [sp, #0x14] _0200BD48: ldr r0, [sp, #0x14] str r0, [r4, #0x54] bl FUN_0200965C add r2, r0, #0x0 ldr r1, [sp, #0x14] ldr r0, [r5, #0x0] mul r1, r2 bl FUN_02016998 str r0, [r4, #0x8] ldr r0, [sp, #0x14] mov r7, #0x0 cmp r0, #0x0 ble _0200BD94 ldr r6, [sp, #0x10] _0200BD68: ldr r0, [r4, #0x8] add r1, r7, #0x0 bl FUN_02009660 str r0, [sp, #0x18] ldr r0, [r5, #0x0] ldr r1, [r6, #0x0] bl FUN_020161A4 ldr r1, [sp, #0x18] ldr r2, [r5, #0x0] str r0, [sp, #0x1c] bl FUN_02009668 ldr r0, [sp, #0x1c] bl FUN_02016A18 ldr r0, [sp, #0x14] add r7, r7, #0x1 add r6, r6, #0x4 cmp r7, r0 blt _0200BD68 _0200BD94: ldr r0, [sp, #0x14] mov r6, #0x0 cmp r0, #0x0 ble _0200BDBE add r7, r4, #0x0 _0200BD9E: ldr r0, [r4, #0x8] add r1, r6, #0x0 bl FUN_02009660 bl FUN_020096CC ldr r2, [r5, #0x0] add r1, r6, #0x0 bl FUN_02008DEC str r0, [r7, #0xc] ldr r0, [sp, #0x14] add r6, r6, #0x1 add r7, r7, #0x4 cmp r6, r0 blt _0200BD9E _0200BDBE: ldr r0, [sp, #0x14] mov r7, #0x0 cmp r0, #0x0 ble _0200BDF6 add r6, r4, #0x0 _0200BDC8: ldr r0, [r4, #0x8] add r1, r7, #0x0 bl FUN_02009660 str r0, [sp, #0x20] bl FUN_020096CC ldr r1, [r5, #0x0] bl FUN_02009424 add r2, r0, #0x0 str r2, [r6, #0x24] ldr r0, [r6, #0xc] ldr r1, [sp, #0x20] ldr r3, [r5, #0x0] bl FUN_020093A8 str r0, [r6, #0x3c] ldr r0, [sp, #0x14] add r7, r7, #0x1 add r6, r6, #0x4 cmp r7, r0 blt _0200BDC8 _0200BDF6: ldr r0, [r4, #0x24] bl FUN_02009A90 ldr r0, [r4, #0x28] bl FUN_02009D34 ldr r1, [sp, #0x10] ldr r0, [r5, #0x0] ldr r1, [r1, #0x18] bl FUN_020161A4 ldr r1, [r4, #0x14] add r6, r0, #0x0 str r1, [sp, #0x0] ldr r1, [r4, #0x18] str r1, [sp, #0x4] ldr r1, [r4, #0x1c] str r1, [sp, #0x8] ldr r1, [r4, #0x20] str r1, [sp, #0xc] ldr r1, [r5, #0x0] ldr r2, [r4, #0xc] ldr r3, [r4, #0x10] bl FUN_02008BE0 str r0, [r4, #0x4] add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x1 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200BE38 FUN_0200BE38: ; 0x0200BE38 push {r4, lr} sub sp, #0x28 mov r3, #0x4 mov r4, #0x6 ldrsh r3, [r2, r3] ldrsh r4, [r2, r4] str r4, [sp, #0x0] str r3, [sp, #0x4] ldrh r4, [r2, #0xa] str r4, [sp, #0x8] ldr r4, [r2, #0xc] str r4, [sp, #0xc] ldr r4, [r2, #0x10] str r4, [sp, #0x10] ldr r4, [r2, #0x14] str r4, [sp, #0x14] ldr r4, [r2, #0x18] str r4, [sp, #0x18] ldr r4, [r2, #0x1c] str r4, [sp, #0x1c] ldr r4, [r2, #0x20] str r4, [sp, #0x20] ldr r4, [r2, #0x24] str r4, [sp, #0x24] ldr r2, [r2, #0x0] bl FUN_0200BE74 add sp, #0x28 pop {r4, pc} .balign 4 thumb_func_start FUN_0200BE74 FUN_0200BE74: ; 0x0200BE74 push {r4, lr} sub sp, #0x30 add r4, r0, #0x0 ldr r0, [r1, #0x0] str r0, [sp, #0x0] ldr r0, [r1, #0x4] ldr r1, [r0, #0x0] mov r0, #0x24 mul r0, r2 add r0, r1, r0 str r0, [sp, #0x4] cmp r3, #0x0 ble _0200BEA0 lsl r0, r3, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200BEAE _0200BEA0: lsl r0, r3, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200BEAE: blx _ffix str r0, [sp, #0x8] add r1, sp, #0x28 mov r0, #0x10 ldrsh r0, [r1, r0] cmp r0, #0x0 ble _0200BED0 lsl r0, r0, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200BEDE _0200BED0: lsl r0, r0, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200BEDE: blx _ffix str r0, [sp, #0xc] add r1, sp, #0x28 mov r0, #0x14 ldrsh r0, [r1, r0] cmp r0, #0x0 ble _0200BF00 lsl r0, r0, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200BF0E _0200BF00: lsl r0, r0, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200BF0E: blx _ffix str r0, [sp, #0x10] ldr r0, [sp, #0x4c] cmp r0, #0x2 bne _0200BF24 mov r0, #0x3 ldr r1, [sp, #0xc] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0xc] _0200BF24: mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] mov r1, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x20] ldr r0, [sp, #0x44] str r0, [sp, #0x24] ldr r0, [sp, #0x4c] str r0, [sp, #0x28] ldr r0, [r4, #0x0] str r0, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201FE94 add r4, r0, #0x0 beq _0200BF5A add r1, sp, #0x28 ldrh r1, [r1, #0x18] bl FUN_02020130 ldr r1, [sp, #0x48] add r0, r4, #0x0 bl FUN_02020248 _0200BF5A: add r0, r4, #0x0 add sp, #0x30 pop {r4, pc} thumb_func_start FUN_0200BF60 FUN_0200BF60: ; 0x0200BF60 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r5, r1, #0x0 add r6, r2, #0x0 cmp r0, #0x0 beq _0200BF78 cmp r5, #0x0 bne _0200BF7E _0200BF78: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200BF7E: ldr r0, [r6, #0x10] cmp r0, #0x0 beq _0200BF8A ldr r0, [r6, #0x14] cmp r0, #0x0 bne _0200BF8E _0200BF8A: mov r0, #0x4 str r0, [sp, #0x4] _0200BF8E: ldr r0, [sp, #0x4] str r0, [r5, #0x54] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0200BFBE add r7, r6, #0x0 add r4, r5, #0x0 _0200BFA0: ldr r2, [sp, #0x0] ldr r0, [r7, #0x0] ldr r1, [sp, #0x8] ldr r2, [r2, #0x0] bl FUN_02008DEC str r0, [r4, #0xc] ldr r0, [sp, #0x8] add r7, r7, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x4] add r4, r4, #0x4 str r1, [sp, #0x8] cmp r1, r0 blt _0200BFA0 _0200BFBE: ldr r0, [sp, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _0200C004 add r4, r7, #0x0 _0200BFC8: ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0200BFF8 ldr r1, [sp, #0x0] ldr r1, [r1, #0x0] bl FUN_02009424 str r0, [r5, #0x24] mov r0, #0x0 str r0, [r5, #0x3c] ldr r3, [r5, #0x24] add r1, r0, #0x0 ldr r0, [r3, #0x4] cmp r0, #0x0 ble _0200BFF8 add r2, r1, #0x0 _0200BFE8: ldr r0, [r3, #0x0] add r1, r1, #0x1 str r4, [r0, r2] ldr r3, [r5, #0x24] add r2, r2, #0x4 ldr r0, [r3, #0x4] cmp r1, r0 blt _0200BFE8 _0200BFF8: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r6, r6, #0x4 add r5, r5, #0x4 cmp r7, r0 blt _0200BFC8 _0200C004: mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200C00C FUN_0200C00C: ; 0x0200C00C push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C02A add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C02A: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C058 bl FUN_02009B04 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C058: bl ErrorHandling cmp r5, #0x0 beq _0200C066 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C066: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C06C FUN_0200C06C: ; 0x0200C06C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x10] ldr r1, [sp, #0x34] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C08C mov r0, #0x0 add sp, #0x10 mvn r0, r0 pop {r3-r7, pc} _0200C08C: ldr r0, [sp, #0x34] ldr r3, [sp, #0x28] str r0, [sp, #0x0] ldr r0, [sp, #0x30] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x2c] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] str r0, [sp, #0xc] ldr r0, [r4, #0x10] bl FUN_02008FEC add r5, r0, #0x0 beq _0200C0D0 bl FUN_02009D68 cmp r0, #0x1 beq _0200C0B8 bl ErrorHandling _0200C0B8: ldr r0, [r4, #0x28] add r1, r5, #0x0 bl FUN_0200C474 ldr r1, [sp, #0x30] add r0, r5, #0x0 bl FUN_02009E88 lsl r0, r0, #0x18 add sp, #0x10 asr r0, r0, #0x18 pop {r3-r7, pc} _0200C0D0: bl ErrorHandling mov r0, #0x0 mvn r0, r0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0200C0DC FUN_0200C0DC: ; 0x0200C0DC push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [sp, #0x28] add r6, r1, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] add r1, r3, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x30] ldr r3, [sp, #0x24] str r0, [sp, #0x8] ldr r0, [sp, #0x34] str r0, [sp, #0xc] add r0, r2, #0x0 ldr r2, [sp, #0x20] bl FUN_0200C06C add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0200C11A ldr r3, [sp, #0x2c] lsl r2, r4, #0x14 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 lsl r3, r3, #0x5 bl FUN_02003108 _0200C11A: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add sp, #0x10 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200C124 FUN_0200C124: ; 0x0200C124 push {r3-r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp, #0x0] mov r4, #0x2 str r4, [sp, #0x4] ldr r4, [sp, #0x1c] str r4, [sp, #0x8] bl FUN_0200C404 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C13C FUN_0200C13C: ; 0x0200C13C push {r3-r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp, #0x0] mov r4, #0x3 str r4, [sp, #0x4] ldr r4, [sp, #0x1c] str r4, [sp, #0x8] bl FUN_0200C404 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C154 FUN_0200C154: ; 0x0200C154 push {r4-r7, lr} sub sp, #0x74 add r7, r0, #0x0 ldr r0, [r7, #0x0] add r6, r1, #0x0 mov r1, #0x10 add r5, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _0200C170 add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C170: ldr r0, [r7, #0x0] mov r1, #0x8 bl FUN_02016998 str r0, [r4, #0x8] cmp r0, #0x0 bne _0200C184 add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C184: ldr r0, [r7, #0x0] mov r1, #0x24 bl FUN_02016998 ldr r1, [r4, #0x8] str r0, [r1, #0x0] ldr r0, [r4, #0x8] ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r4, #0x8] ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0200C1AC cmp r0, #0x0 beq _0200C1A6 bl FUN_02016A18 _0200C1A6: add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C1AC: mov r1, #0x0 add r2, r5, #0x0 add r3, sp, #0x2c _0200C1B2: ldr r0, [r2, #0x14] add r1, r1, #0x1 add r2, r2, #0x4 stmia r3!, {r0} cmp r1, #0x6 blt _0200C1B2 ldr r0, [r6, #0x1c] cmp r0, #0x0 beq _0200C1CA ldr r1, [r6, #0x20] cmp r1, #0x0 bne _0200C1D4 _0200C1CA: mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x3c] str r0, [sp, #0x40] b _0200C206 _0200C1D4: mov r2, #0x0 ldr r1, [sp, #0x3c] mvn r2, r2 cmp r1, r2 beq _0200C1EC bl FUN_0200945C cmp r0, #0x0 bne _0200C1EC mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x3c] _0200C1EC: mov r0, #0x0 ldr r1, [sp, #0x40] mvn r0, r0 cmp r1, r0 beq _0200C206 ldr r0, [r6, #0x20] bl FUN_0200945C cmp r0, #0x0 bne _0200C206 mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x40] _0200C206: ldr r0, [sp, #0x38] str r0, [sp, #0x0] ldr r0, [sp, #0x3c] str r0, [sp, #0x4] ldr r0, [sp, #0x40] str r0, [sp, #0x8] ldr r0, [r5, #0x30] str r0, [sp, #0xc] ldr r0, [r5, #0x2c] str r0, [sp, #0x10] ldr r0, [r6, #0xc] str r0, [sp, #0x14] ldr r0, [r6, #0x10] str r0, [sp, #0x18] ldr r0, [r6, #0x14] str r0, [sp, #0x1c] ldr r0, [r6, #0x18] str r0, [sp, #0x20] ldr r0, [r6, #0x1c] str r0, [sp, #0x24] ldr r0, [r6, #0x20] str r0, [sp, #0x28] ldr r0, [r4, #0x4] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] ldr r3, [sp, #0x34] bl FUN_02008AA4 ldr r0, [r6, #0x0] str r0, [sp, #0x44] ldr r0, [r4, #0x4] str r0, [sp, #0x48] mov r0, #0x0 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C260 lsl r0, r0, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200C26E _0200C260: lsl r0, r0, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200C26E: blx _ffix str r0, [sp, #0x4c] mov r0, #0x2 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C28E lsl r0, r0, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200C29C _0200C28E: lsl r0, r0, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200C29C: blx _ffix str r0, [sp, #0x50] mov r0, #0x4 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C2BC lsl r0, r0, #0xc blx _fflt add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx _fadd b _0200C2CA _0200C2BC: lsl r0, r0, #0xc blx _fflt mov r1, #0x3f lsl r1, r1, #0x18 blx _fsub _0200C2CA: blx _ffix str r0, [sp, #0x54] ldr r0, [r5, #0x10] cmp r0, #0x2 bne _0200C2E0 mov r0, #0x3 ldr r1, [sp, #0x50] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x50] _0200C2E0: mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x58] str r0, [sp, #0x5c] str r0, [sp, #0x60] mov r1, #0x0 add r0, sp, #0x2c strh r1, [r0, #0x38] ldr r0, [r5, #0x8] str r0, [sp, #0x68] ldr r0, [r5, #0x10] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x70] add r0, sp, #0x44 bl FUN_0201FE94 str r0, [r4, #0x0] ldr r0, [r5, #0x30] str r0, [r4, #0xc] ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200C328 bl FUN_020202A0 add r6, r0, #0x0 ldrh r1, [r5, #0x6] ldr r0, [r4, #0x0] bl FUN_02020130 ldr r1, [r5, #0xc] ldr r0, [r4, #0x0] add r1, r6, r1 bl FUN_02020248 b _0200C32C _0200C328: bl ErrorHandling _0200C32C: add r0, r4, #0x0 add sp, #0x74 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200C334 FUN_0200C334: ; 0x0200C334 push {r3, lr} ldr r0, [r0, #0x10] bl FUN_020094F0 mov r1, #0x0 bl FUN_02009E54 pop {r3, pc} thumb_func_start FUN_0200C344 FUN_0200C344: ; 0x0200C344 push {r4, lr} ldr r0, [r0, #0x10] add r4, r2, #0x0 bl FUN_020094F0 add r1, r4, #0x0 bl FUN_02009E88 pop {r4, pc} .balign 4 thumb_func_start FUN_0200C358 FUN_0200C358: ; 0x0200C358 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0xc] ldr r1, [r3, #0x24] ldr r3, _0200C364 ; =FUN_0200C4F4 bx r3 .balign 4 _0200C364: .word FUN_0200C4F4 thumb_func_start FUN_0200C368 FUN_0200C368: ; 0x0200C368 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x10] ldr r1, [r3, #0x28] ldr r3, _0200C374 ; =FUN_0200C548 bx r3 .balign 4 _0200C374: .word FUN_0200C548 thumb_func_start FUN_0200C378 FUN_0200C378: ; 0x0200C378 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x14] ldr r1, [r3, #0x2c] ldr r3, _0200C384 ; =FUN_0200C4A8 bx r3 .balign 4 _0200C384: .word FUN_0200C4A8 thumb_func_start FUN_0200C388 FUN_0200C388: ; 0x0200C388 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x18] ldr r1, [r3, #0x30] ldr r3, _0200C394 ; =FUN_0200C4A8 bx r3 .balign 4 _0200C394: .word FUN_0200C4A8 thumb_func_start FUN_0200C398 FUN_0200C398: ; 0x0200C398 push {r3-r7, lr} add r6, r1, #0x0 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0200BC40 ldr r0, [r6, #0x24] bl FUN_02009C30 ldr r0, [r6, #0x28] bl FUN_02009E28 ldr r0, [r6, #0x54] mov r4, #0x0 cmp r0, #0x0 ble _0200C3D0 add r5, r6, #0x0 _0200C3BA: ldr r0, [r5, #0x24] bl FUN_02009448 ldr r0, [r5, #0xc] bl FUN_02008E2C ldr r0, [r6, #0x54] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r0 blt _0200C3BA _0200C3D0: add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_0200BCD0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C3DC FUN_0200C3DC: ; 0x0200C3DC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] cmp r0, #0x0 beq _0200C3EE ldr r0, [r4, #0x4] ldr r0, [r0, #0x0] bl FUN_02009CDC _0200C3EE: ldr r0, [r4, #0x0] bl FUN_0201FFC8 ldr r0, [r4, #0x8] bl FUN_02008C80 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0200C404 FUN_0200C404: ; 0x0200C404 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 add r7, r0, #0x0 ldr r0, [sp, #0x2c] add r5, r6, #0x0 lsl r4, r0, #0x2 add r5, #0xc ldr r0, [r5, r4] ldr r1, [sp, #0x30] str r2, [sp, #0xc] str r3, [sp, #0x10] bl FUN_0200945C cmp r0, #0x0 bne _0200C42A add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0200C42A: ldr r0, [sp, #0x30] ldr r1, [sp, #0xc] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x10] str r0, [sp, #0x4] ldr r0, [r7, #0x0] ldr r3, [sp, #0x28] str r0, [sp, #0x8] ldr r0, [r5, r4] bl FUN_020090AC add r5, r0, #0x0 beq _0200C460 add r0, r6, r4 ldr r0, [r0, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add r4, r0, #0x0 cmp r4, #0x1 beq _0200C45A bl ErrorHandling _0200C45A: add sp, #0x14 add r0, r4, #0x0 pop {r4-r7, pc} _0200C460: bl ErrorHandling cmp r5, #0x0 beq _0200C46E add sp, #0x14 mov r0, #0x1 pop {r4-r7, pc} _0200C46E: mov r0, #0x0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0200C474 FUN_0200C474: ; 0x0200C474 push {r3-r6} ldr r6, [r0, #0x4] mov r3, #0x0 cmp r6, #0x0 ble _0200C4A0 ldr r5, [r0, #0x0] add r4, r5, #0x0 _0200C482: ldr r2, [r4, #0x0] cmp r2, #0x0 bne _0200C498 lsl r2, r3, #0x2 str r1, [r5, r2] ldr r1, [r0, #0x8] add r1, r1, #0x1 str r1, [r0, #0x8] mov r0, #0x1 pop {r3-r6} bx lr _0200C498: add r3, r3, #0x1 add r4, r4, #0x4 cmp r3, r6 blt _0200C482 _0200C4A0: mov r0, #0x0 pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_0200C4A8 FUN_0200C4A8: ; 0x0200C4A8 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C4F0 add r4, r6, #0x0 _0200C4BA: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C4E6 bl FUN_02009530 cmp r0, r7 bne _0200C4E6 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C4E6: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C4BA _0200C4F0: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200C4F4 FUN_0200C4F4: ; 0x0200C4F4 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C542 add r4, r6, #0x0 _0200C506: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C538 bl FUN_02009530 cmp r0, r7 bne _0200C538 add r0, r7, #0x0 bl FUN_0201D324 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C538: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C506 _0200C542: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C548 FUN_0200C548: ; 0x0200C548 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C596 add r4, r6, #0x0 _0200C55A: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C58C bl FUN_02009530 cmp r0, r7 bne _0200C58C add r0, r7, #0x0 bl FUN_0201E1C8 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C58C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C55A _0200C596: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C59C FUN_0200C59C: ; 0x0200C59C ldr r3, _0200C5A4 ; =FUN_020201E4 mov r1, #0x1 lsl r1, r1, #0xc bx r3 .balign 4 _0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8 FUN_0200C5A8: ; 0x0200C5A8 ldr r3, _0200C5B0 ; =0x0200C59D ldr r0, [r0, #0x0] bx r3 nop _0200C5B0: .word 0x0200C59D thumb_func_start FUN_0200C5B4 FUN_0200C5B4: ; 0x0200C5B4 ldr r3, _0200C5BC ; =FUN_020201E4 ldr r0, [r0, #0x0] bx r3 nop _0200C5BC: .word FUN_020201E4 thumb_func_start FUN_0200C5C0 FUN_0200C5C0: ; 0x0200C5C0 ldr r3, _0200C5C8 ; =FUN_02020130 ldr r0, [r0, #0x0] bx r3 nop _0200C5C8: .word FUN_02020130 thumb_func_start FUN_0200C5CC FUN_0200C5CC: ; 0x0200C5CC ldr r3, _0200C5D4 ; =FUN_020201DC ldr r0, [r0, #0x0] bx r3 nop _0200C5D4: .word FUN_020201DC thumb_func_start FUN_0200C5D8 FUN_0200C5D8: ; 0x0200C5D8 ldr r3, _0200C5DC ; =FUN_020200BC bx r3 .balign 4 _0200C5DC: .word FUN_020200BC thumb_func_start FUN_0200C5E0 FUN_0200C5E0: ; 0x0200C5E0 ldr r3, _0200C5E8 ; =FUN_0200C5D8 ldr r0, [r0, #0x0] bx r3 nop _0200C5E8: .word FUN_0200C5D8 thumb_func_start FUN_0200C5EC FUN_0200C5EC: ; 0x0200C5EC ldr r3, _0200C5F0 ; =FUN_020200D8 bx r3 .balign 4 _0200C5F0: .word FUN_020200D8 thumb_func_start FUN_0200C5F4 FUN_0200C5F4: ; 0x0200C5F4 ldr r3, _0200C5FC ; =FUN_0200C5EC ldr r0, [r0, #0x0] bx r3 nop _0200C5FC: .word FUN_0200C5EC thumb_func_start FUN_0200C600 FUN_0200C600: ; 0x0200C600 ldr r3, _0200C604 ; =FUN_02020388 bx r3 .balign 4 _0200C604: .word FUN_02020388 thumb_func_start FUN_0200C608 FUN_0200C608: ; 0x0200C608 ldr r3, _0200C610 ; =FUN_0200C600 ldr r0, [r0, #0x0] bx r3 nop _0200C610: .word FUN_0200C600 thumb_func_start FUN_0200C614 FUN_0200C614: ; 0x0200C614 ldr r3, _0200C618 ; =FUN_02020208 bx r3 .balign 4 _0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C FUN_0200C61C: ; 0x0200C61C ldr r3, _0200C624 ; =0x0200C615 ldr r0, [r0, #0x0] bx r3 nop _0200C624: .word 0x0200C615 thumb_func_start FUN_0200C628 FUN_0200C628: ; 0x0200C628 ldr r3, _0200C62C ; =FUN_0202022C bx r3 .balign 4 _0200C62C: .word FUN_0202022C thumb_func_start FUN_0200C630 FUN_0200C630: ; 0x0200C630 ldr r3, _0200C638 ; =FUN_0200C628 ldr r0, [r0, #0x0] bx r3 nop _0200C638: .word FUN_0200C628 thumb_func_start FUN_0200C63C FUN_0200C63C: ; 0x0200C63C ldr r3, _0200C640 ; =FUN_020200A0 bx r3 .balign 4 _0200C640: .word FUN_020200A0 thumb_func_start FUN_0200C644 FUN_0200C644: ; 0x0200C644 ldr r3, _0200C64C ; =FUN_0200C63C ldr r0, [r0, #0x0] bx r3 nop _0200C64C: .word FUN_0200C63C thumb_func_start FUN_0200C650 FUN_0200C650: ; 0x0200C650 ldr r3, _0200C654 ; =FUN_02020128 bx r3 .balign 4 _0200C654: .word FUN_02020128 thumb_func_start FUN_0200C658 FUN_0200C658: ; 0x0200C658 ldr r3, _0200C660 ; =FUN_0200C650 ldr r0, [r0, #0x0] bx r3 nop _0200C660: .word FUN_0200C650 thumb_func_start FUN_0200C664 FUN_0200C664: ; 0x0200C664 ldr r3, _0200C668 ; =FUN_02020248 bx r3 .balign 4 _0200C668: .word FUN_02020248 thumb_func_start FUN_0200C66C FUN_0200C66C: ; 0x0200C66C ldr r3, _0200C674 ; =FUN_0200C664 ldr r0, [r0, #0x0] bx r3 nop _0200C674: .word FUN_0200C664 thumb_func_start FUN_0200C678 FUN_0200C678: ; 0x0200C678 ldr r3, _0200C67C ; =FUN_020202A8 bx r3 .balign 4 _0200C67C: .word FUN_020202A8 thumb_func_start FUN_0200C680 FUN_0200C680: ; 0x0200C680 ldr r3, _0200C688 ; =FUN_0200C678 ldr r0, [r0, #0x0] bx r3 nop _0200C688: .word FUN_0200C678 thumb_func_start FUN_0200C68C FUN_0200C68C: ; 0x0200C68C ldr r3, _0200C694 ; =FUN_02020300 ldr r0, [r0, #0x0] bx r3 nop _0200C694: .word FUN_02020300 thumb_func_start FUN_0200C698 FUN_0200C698: ; 0x0200C698 ldr r3, _0200C6A0 ; =FUN_02020238 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bx r3 .balign 4 _0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4 FUN_0200C6A4: ; 0x0200C6A4 ldr r3, _0200C6AC ; =0x02020241 ldr r0, [r0, #0x0] bx r3 nop _0200C6AC: .word 0x02020241 thumb_func_start FUN_0200C6B0 FUN_0200C6B0: ; 0x0200C6B0 ldr r3, _0200C6B8 ; =FUN_0200C698 ldr r0, [r0, #0x0] bx r3 nop _0200C6B8: .word FUN_0200C698 thumb_func_start FUN_0200C6BC FUN_0200C6BC: ; 0x0200C6BC ldr r3, _0200C6C0 ; =FUN_02020310 bx r3 .balign 4 _0200C6C0: .word FUN_02020310 thumb_func_start FUN_0200C6C4 FUN_0200C6C4: ; 0x0200C6C4 ldr r3, _0200C6CC ; =FUN_0200C6BC ldr r0, [r0, #0x0] bx r3 nop _0200C6CC: .word FUN_0200C6BC thumb_func_start FUN_0200C6D0 FUN_0200C6D0: ; 0x0200C6D0 ldr r3, _0200C6D4 ; =FUN_0202032C bx r3 .balign 4 _0200C6D4: .word FUN_0202032C thumb_func_start FUN_0200C6D8 FUN_0200C6D8: ; 0x0200C6D8 ldr r3, _0200C6E0 ; =FUN_0200C6D0 ldr r0, [r0, #0x0] bx r3 nop _0200C6E0: .word FUN_0200C6D0 thumb_func_start FUN_0200C6E4 FUN_0200C6E4: ; 0x0200C6E4 push {r3-r4, lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc add r4, r0, #0x0 str r1, [sp, #0x4] bl FUN_02020380 cmp r0, #0x2 bne _0200C704 mov r0, #0x3 ldr r1, [sp, #0x4] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x4] _0200C704: mov r0, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C714 FUN_0200C714: ; 0x0200C714 ldr r3, _0200C71C ; =FUN_0200C6E4 ldr r0, [r0, #0x0] bx r3 nop _0200C71C: .word FUN_0200C6E4 thumb_func_start FUN_0200C720 FUN_0200C720: ; 0x0200C720 push {r4-r5, lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc add r5, r0, #0x0 add r4, r3, #0x0 str r1, [sp, #0x4] bl FUN_02020380 cmp r0, #0x2 bne _0200C73E ldr r0, [sp, #0x4] add r0, r0, r4 str r0, [sp, #0x4] _0200C73E: mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02020044 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0200C750 FUN_0200C750: ; 0x0200C750 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_0200C720 pop {r3, pc} .balign 4 thumb_func_start FUN_0200C75C FUN_0200C75C: ; 0x0200C75C push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 add r5, r2, #0x0 bl FUN_0202011C add r4, r0, #0x0 ldr r1, [r4, #0x0] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r6, #0x0] add r0, r7, #0x0 bl FUN_02020380 cmp r0, #0x2 ldr r1, [r4, #0x4] bne _0200C794 mov r0, #0x3 lsl r0, r0, #0x12 sub r1, r1, r0 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} _0200C794: asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0200C7A0 FUN_0200C7A0: ; 0x0200C7A0 ldr r3, _0200C7A8 ; =FUN_0200C75C ldr r0, [r0, #0x0] bx r3 nop _0200C7A8: .word FUN_0200C75C thumb_func_start FUN_0200C7AC FUN_0200C7AC: ; 0x0200C7AC push {r3-r7, lr} str r0, [sp, #0x0] add r6, r1, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 bl FUN_0202011C add r4, r0, #0x0 ldr r1, [r4, #0x0] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r6, #0x0] ldr r0, [sp, #0x0] bl FUN_02020380 cmp r0, #0x2 bne _0200C7E2 ldr r0, [r4, #0x4] sub r1, r0, r7 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} _0200C7E2: ldr r1, [r4, #0x4] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0200C7F0 FUN_0200C7F0: ; 0x0200C7F0 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_0200C7AC pop {r3, pc} .balign 4 thumb_func_start FUN_0200C7FC FUN_0200C7FC: ; 0x0200C7FC push {r3-r6, lr} sub sp, #0xc add r6, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202011C ldr r2, [r0, #0x0] lsl r1, r5, #0xc add r1, r2, r1 str r1, [sp, #0x0] ldr r2, [r0, #0x4] lsl r1, r4, #0xc add r1, r2, r1 str r1, [sp, #0x4] ldr r0, [r0, #0x8] add r1, sp, #0x0 str r0, [sp, #0x8] add r0, r6, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0200C82C FUN_0200C82C: ; 0x0200C82C ldr r3, _0200C834 ; =FUN_0200C7FC ldr r0, [r0, #0x0] bx r3 nop _0200C834: .word FUN_0200C7FC thumb_func_start FUN_0200C838 FUN_0200C838: ; 0x0200C838 ldr r3, _0200C83C ; =FUN_020200EC bx r3 .balign 4 _0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840 FUN_0200C840: ; 0x0200C840 ldr r3, _0200C848 ; =0x0200C839 ldr r0, [r0, #0x0] bx r3 nop _0200C848: .word 0x0200C839 thumb_func_start FUN_0200C84C FUN_0200C84C: ; 0x0200C84C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02020120 add r4, r0, #0x0 ldr r0, _0200C880 ; =0x45800000 add r1, r6, #0x0 blx _fmul blx _ffix str r0, [r4, #0x0] ldr r0, _0200C880 ; =0x45800000 add r1, r7, #0x0 blx _fmul blx _ffix str r0, [r4, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02020064 pop {r3-r7, pc} .balign 4 _0200C880: .word 0x45800000 thumb_func_start FUN_0200C884 FUN_0200C884: ; 0x0200C884 ldr r3, _0200C88C ; =FUN_0200C84C ldr r0, [r0, #0x0] bx r3 nop _0200C88C: .word FUN_0200C84C thumb_func_start FUN_0200C890 FUN_0200C890: ; 0x0200C890 ldr r3, _0200C894 ; =FUN_02020088 bx r3 .balign 4 _0200C894: .word FUN_02020088 thumb_func_start FUN_0200C898 FUN_0200C898: ; 0x0200C898 ldr r3, _0200C8A0 ; =FUN_0200C890 ldr r0, [r0, #0x0] bx r3 nop _0200C8A0: .word FUN_0200C890 thumb_func_start FUN_0200C8A4 FUN_0200C8A4: ; 0x0200C8A4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 bl FUN_02020124 add r0, r0, r5 lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r4, #0x0 bl FUN_02020088 pop {r3-r5, pc} thumb_func_start FUN_0200C8BC FUN_0200C8BC: ; 0x0200C8BC ldr r3, _0200C8C4 ; =FUN_0200C8A4 ldr r0, [r0, #0x0] bx r3 nop _0200C8C4: .word FUN_0200C8A4 thumb_func_start FUN_0200C8C8 FUN_0200C8C8: ; 0x0200C8C8 ldr r3, _0200C8CC ; =FUN_02020100 bx r3 .balign 4 _0200C8CC: .word FUN_02020100 thumb_func_start FUN_0200C8D0 FUN_0200C8D0: ; 0x0200C8D0 ldr r3, _0200C8D8 ; =FUN_0200C8C8 ldr r0, [r0, #0x0] bx r3 nop _0200C8D8: .word FUN_0200C8C8 thumb_func_start FUN_0200C8DC FUN_0200C8DC: ; 0x0200C8DC push {lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [r0, #0x0] add r1, sp, #0x0 bl FUN_02020054 add sp, #0xc pop {pc} thumb_func_start FUN_0200C8F8 FUN_0200C8F8: ; 0x0200C8F8 ldr r3, _0200C900 ; =0x02020359 ldr r0, [r0, #0x0] bx r3 nop _0200C900: .word 0x02020359 thumb_func_start FUN_0200C904 FUN_0200C904: ; 0x0200C904 ldr r3, _0200C908 ; =FUN_02020398 bx r3 .balign 4 _0200C908: .word FUN_02020398 thumb_func_start FUN_0200C90C FUN_0200C90C: ; 0x0200C90C ldr r3, _0200C914 ; =FUN_0200C904 ldr r0, [r0, #0x0] bx r3 nop _0200C914: .word FUN_0200C904 thumb_func_start FUN_0200C918 FUN_0200C918: ; 0x0200C918 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C936 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C936: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C964 bl FUN_02009AC4 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C964: bl ErrorHandling cmp r5, #0x0 beq _0200C972 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C972: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C978 FUN_0200C978: ; 0x0200C978 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C996 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C996: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C9C4 bl FUN_02009B78 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C9C4: bl ErrorHandling cmp r5, #0x0 beq _0200C9D2 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C9D2: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C9D8 FUN_0200C9D8: ; 0x0200C9D8 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x24] add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_020094F0 add r6, r0, #0x0 ldr r0, [sp, #0x20] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r4, #0xc] add r2, r7, #0x0 bl FUN_020090FC add r0, r6, #0x0 bl FUN_02009BE8 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200CA0C FUN_0200CA0C: ; 0x0200CA0C push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x10] ldr r1, [sp, #0x24] add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_020094F0 add r6, r0, #0x0 ldr r0, [sp, #0x20] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r4, #0x10] add r2, r7, #0x0 bl FUN_02009168 add r0, r6, #0x0 bl FUN_02009DE0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200CA40 FUN_0200CA40: ; 0x0200CA40 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_0200CA44 FUN_0200CA44: ; 0x0200CA44 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA5C ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x18] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA5C: .word 0x021C48B8 thumb_func_start FUN_0200CA60 FUN_0200CA60: ; 0x0200CA60 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA78 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x1c] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA78: .word 0x021C48B8 thumb_func_start FUN_0200CA7C FUN_0200CA7C: ; 0x0200CA7C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA94 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x24] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA94: .word 0x021C48B8 thumb_func_start FUN_0200CA98 FUN_0200CA98: ; 0x0200CA98 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CAB0 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x20] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CAB0: .word 0x021C48B8 thumb_func_start FUN_0200CAB4 FUN_0200CAB4: ; 0x0200CAB4 ldr r3, _0200CAB8 ; =FUN_0201B6A0 bx r3 .balign 4 _0200CAB8: .word FUN_0201B6A0 thumb_func_start FUN_0200CABC FUN_0200CABC: ; 0x0200CABC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 cmp r3, #0x0 str r2, [sp, #0x0] bne _0200CAE2 mov r1, #0x0 str r1, [sp, #0x4] ldr r0, [sp, #0x20] str r1, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} _0200CAE2: mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x20] mov r1, #0x1 str r0, [sp, #0xc] mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200CAFC FUN_0200CAFC: ; 0x0200CAFC mov r0, #0x18 bx lr thumb_func_start FUN_0200CB00 FUN_0200CB00: ; 0x0200CB00 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] add r5, r1, #0x0 add r4, r3, #0x0 cmp r0, #0x0 beq _0200CB16 mov r1, #0x1 b _0200CB18 _0200CB16: mov r1, #0x0 _0200CB18: str r2, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x24] add r2, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 bl FUN_0200687C add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x2 bne _0200CB3A mov r1, #0x2d b _0200CB3C _0200CB3A: mov r1, #0x18 _0200CB3C: cmp r5, #0x4 bhs _0200CB56 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x24] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x10 pop {r4-r6, pc} _0200CB56: mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x24] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0200CB6C FUN_0200CB6C: ; 0x0200CB6C push {r4-r7, lr} sub sp, #0x24 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r2, [sp, #0x1c] ldr r5, [sp, #0x40] sub r7, r2, #0x1 ldr r2, [sp, #0x18] str r0, [sp, #0x10] sub r6, r2, #0x1 lsl r2, r7, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] lsl r3, r6, #0x18 str r5, [sp, #0xc] add r2, sp, #0x28 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 bl FUN_02018540 add r1, sp, #0x28 ldrh r4, [r1, #0x1c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldrb r0, [r1, #0x10] add r2, r4, #0x1 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FUN_02018540 add r0, sp, #0x28 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x18] add r2, r4, #0x2 add r0, r0, r1 str r0, [sp, #0x20] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x3 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, sp, #0x28 ldrb r0, [r0, #0x14] lsl r2, r2, #0x10 lsl r3, r6, #0x18 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, sp, #0x28 ldrb r0, [r0, #0x14] add r2, r4, #0x5 lsl r2, r2, #0x10 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, sp, #0x28 ldrb r1, [r0, #0x14] ldr r0, [sp, #0x1c] add r2, r4, #0x6 add r7, r0, r1 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r6, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x28 ldrb r0, [r0, #0x10] add r2, r4, #0x7 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r4, #0x8 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200CCA4 FUN_0200CCA4: ; 0x0200CCA4 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x1c] add r0, r5, #0x0 bl FUN_0201AB10 ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] str r1, [sp, #0x0] str r0, [sp, #0x4] str r7, [sp, #0x8] str r6, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] ldr r3, [sp, #0x18] bl FUN_0200CB6C cmp r4, #0x0 bne _0200CCF4 add r0, r5, #0x0 bl FUN_020191D0 _0200CCF4: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_0200CCF8 FUN_0200CCF8: ; 0x0200CCF8 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] ldr r1, [sp, #0x14] add r0, r0, #0x2 add r1, r1, #0x2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r6, #0x1 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x0 bne _0200CD5A add r0, r5, #0x0 bl FUN_02019570 _0200CD5A: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200CD60 FUN_0200CD60: ; 0x0200CD60 add r0, r0, #0x2 bx lr thumb_func_start FUN_0200CD64 FUN_0200CD64: ; 0x0200CD64 add r0, #0x19 bx lr thumb_func_start FUN_0200CD68 FUN_0200CD68: ; 0x0200CD68 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x10] add r0, sp, #0x18 ldrb r7, [r0, #0x10] add r6, r2, #0x0 add r5, r1, #0x0 add r0, r7, #0x0 add r4, r3, #0x0 bl FUN_0200CD60 add r1, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x10] str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 bl FUN_0200687C cmp r5, #0x4 bhs _0200CDB8 add r0, r7, #0x0 bl FUN_0200CD64 add r1, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x14 pop {r4-r7, pc} _0200CDB8: add r0, r7, #0x0 bl FUN_0200CD64 add r1, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200CDD8 FUN_0200CDD8: ; 0x0200CDD8 push {r3-r7, lr} sub sp, #0x30 str r1, [sp, #0x10] str r2, [sp, #0x14] str r3, [sp, #0x18] ldr r2, [sp, #0x4c] add r7, r0, #0x0 str r2, [sp, #0x4c] ldr r2, [sp, #0x18] ldr r5, [sp, #0x50] sub r6, r2, #0x1 ldr r2, [sp, #0x14] sub r2, r2, #0x2 str r2, [sp, #0x28] lsl r2, r6, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, sp, #0x38 lsl r3, r3, #0x18 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x14] sub r0, r0, #0x1 str r0, [sp, #0x24] add r0, sp, #0x38 ldrh r4, [r0, #0x1c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x24] str r5, [sp, #0xc] add r2, r4, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x38 ldrb r0, [r0, #0x10] add r2, r4, #0x2 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r1, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 bl FUN_02018540 add r0, sp, #0x38 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x14] add r2, r4, #0x3 add r0, r0, r1 str r0, [sp, #0x2c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x2c] add r2, r4, #0x4 add r0, r0, #0x1 str r0, [sp, #0x20] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x2c] add r2, r4, #0x5 add r0, r0, #0x2 str r0, [sp, #0x1c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x1c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] ldr r3, [sp, #0x28] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] add r2, r4, #0x6 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] ldr r3, [sp, #0x24] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] add r2, r4, #0x7 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x2c] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0x9 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x20] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0xb lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r2, r4, #0x0 ldr r3, [sp, #0x28] add r2, #0xc lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x18] ldr r0, [sp, #0x4c] lsr r2, r2, #0x10 add r6, r1, r0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x24] str r5, [sp, #0xc] add r2, #0xd lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x38 ldrb r0, [r0, #0x10] add r2, r4, #0x0 add r2, #0xe str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 ldr r1, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0xf lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r2, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x1c] str r5, [sp, #0xc] add r4, #0x11 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D06C FUN_0200D06C: ; 0x0200D06C push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] bl FUN_0200CDD8 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200D0BC FUN_0200D0BC: ; 0x0200D0BC push {r4-r6, lr} add r6, r2, #0x0 add r4, r1, #0x0 add r1, r6, #0x0 add r2, r3, #0x0 add r5, r0, #0x0 bl FUN_0200D06C cmp r4, #0x0 bne _0200D0D6 add r0, r5, #0x0 bl FUN_020191D0 _0200D0D6: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200D18C pop {r4-r6, pc} thumb_func_start FUN_0200D0E0 FUN_0200D0E0: ; 0x0200D0E0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] ldr r1, [sp, #0x14] add r0, r0, #0x2 add r1, r1, #0x5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r6, #0x2 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x0 bne _0200D142 add r0, r5, #0x0 bl FUN_02019570 _0200D142: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D148 FUN_0200D148: ; 0x0200D148 push {r4-r5, lr} sub sp, #0x24 add r5, r1, #0x0 str r0, [sp, #0x1c] add r1, sp, #0x14 strh r3, [r1, #0xc] add r4, r2, #0x0 add r0, sp, #0x20 ldrh r2, [r0, #0x10] add r3, r4, #0x0 strh r2, [r1, #0xe] ldr r2, [sp, #0x34] str r2, [sp, #0x14] ldrh r2, [r0, #0x18] strh r2, [r1, #0x4] ldrh r2, [r0, #0x1c] strh r2, [r1, #0x6] ldrh r1, [r0, #0x20] add r2, r5, #0x0 str r1, [sp, #0x0] ldrh r1, [r0, #0x24] str r1, [sp, #0x4] ldrh r1, [r0, #0x28] str r1, [sp, #0x8] ldrh r0, [r0, #0x2c] add r1, sp, #0x14 str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018A60 add sp, #0x24 pop {r4-r5, pc} thumb_func_start FUN_0200D18C FUN_0200D18C: ; 0x0200D18C push {r3-r7, lr} sub sp, #0x40 str r1, [sp, #0x24] str r0, [sp, #0x20] ldr r0, [r0, #0x0] bl FUN_02016BB8 add r6, r0, #0x0 ldr r0, [sp, #0x20] bl FUN_0201AB08 mov r1, #0x6 str r0, [sp, #0x28] add r0, r6, #0x0 lsl r1, r1, #0x6 bl FUN_02016998 add r5, r0, #0x0 ldr r0, [sp, #0x28] bl FUN_020187B0 add r4, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x26 mov r1, #0x16 mov r2, #0x0 add r3, sp, #0x3c bl FUN_02006BB0 str r0, [sp, #0x2c] ldr r0, [sp, #0x3c] mov r7, #0x0 ldr r0, [r0, #0x14] str r0, [sp, #0x30] ldr r0, [sp, #0x24] add r0, #0xa lsl r0, r0, #0x5 str r0, [sp, #0x34] ldr r0, [sp, #0x24] add r0, #0xb lsl r0, r0, #0x5 str r0, [sp, #0x38] _0200D1E0: ldr r1, [sp, #0x34] lsl r6, r7, #0x7 add r0, r5, r6 add r1, r4, r1 mov r2, #0x20 blx memcpy add r0, r6, #0x0 ldr r1, [sp, #0x38] add r0, #0x20 add r0, r5, r0 add r1, r4, r1 mov r2, #0x20 blx memcpy add r0, r6, #0x0 ldr r1, [sp, #0x34] add r0, #0x40 add r0, r5, r0 add r1, r4, r1 mov r2, #0x20 blx memcpy ldr r1, [sp, #0x38] add r6, #0x60 add r0, r5, r6 add r1, r4, r1 mov r2, #0x20 blx memcpy add r0, r7, #0x1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #0x3 blo _0200D1E0 mov r1, #0x30 str r1, [sp, #0x0] str r5, [sp, #0x4] mov r3, #0xc str r3, [sp, #0x8] str r1, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] mov r2, #0x0 str r2, [sp, #0x14] str r3, [sp, #0x18] str r1, [sp, #0x1c] ldr r0, [sp, #0x30] mov r1, #0x4 bl FUN_0200D148 ldr r0, [sp, #0x24] mov r3, #0x6 add r0, #0x12 str r0, [sp, #0x0] ldr r0, [sp, #0x20] ldr r1, [sp, #0x28] ldr r0, [r0, #0x0] add r2, r5, #0x0 lsl r3, r3, #0x6 bl FUN_02017E14 ldr r0, [sp, #0x24] bl FUN_02002840 ldr r0, [sp, #0x2c] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x40 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D274 FUN_0200D274: ; 0x0200D274 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x4] str r1, [sp, #0x8] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_0200CD60 add r1, r0, #0x0 ldr r0, [sp, #0x2c] mov r2, #0x0 str r0, [sp, #0x0] mov r0, #0x26 add r3, sp, #0x10 bl FUN_02006BB0 str r0, [sp, #0xc] mov r1, #0x9 ldr r0, [sp, #0x2c] lsl r1, r1, #0x6 bl FUN_02016998 ldr r1, [sp, #0x10] mov r2, #0x9 ldr r1, [r1, #0x14] lsl r2, r2, #0x6 add r4, r0, #0x0 blx memcpy mov r0, #0x9 mov r3, #0x0 lsl r0, r0, #0x6 mov r1, #0xf _0200D2BA: ldrb r2, [r4, r3] lsl r6, r2, #0x14 and r2, r1 lsl r2, r2, #0x18 lsr r6, r6, #0x18 lsr r2, r2, #0x18 cmp r6, #0x0 bne _0200D2CC add r6, r5, #0x0 _0200D2CC: cmp r2, #0x0 bne _0200D2D2 add r2, r5, #0x0 _0200D2D2: lsl r6, r6, #0x4 orr r2, r6 strb r2, [r4, r3] add r3, r3, #0x1 cmp r3, r0 blo _0200D2BA str r7, [sp, #0x0] mov r3, #0x9 ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] add r2, r4, #0x0 lsl r3, r3, #0x6 bl FUN_02017E14 ldr r0, [sp, #0xc] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200D300 FUN_0200D300: ; 0x0200D300 push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x10] add r5, r2, #0x0 mov r0, #0xf add r6, r1, #0x0 add r7, r3, #0x0 str r5, [sp, #0x0] lsl r0, r0, #0x6 str r0, [sp, #0x4] mov r1, #0x0 ldr r4, [sp, #0x38] str r1, [sp, #0x8] ldr r2, [sp, #0x10] mov r0, #0x24 add r3, r6, #0x0 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0x24 mov r1, #0x1 add r2, r4, #0x0 bl LoadFromNarc_2 add r1, sp, #0x18 str r0, [sp, #0x14] blx FUN_020B0138 add r2, sp, #0x20 ldr r1, [sp, #0x18] ldrb r2, [r2, #0x10] lsl r3, r7, #0x15 ldr r1, [r1, #0xc] lsl r2, r2, #0x5 add r1, r1, r2 add r0, r6, #0x0 mov r2, #0x20 lsr r3, r3, #0x10 bl FUN_02017FB4 ldr r1, [sp, #0x14] add r0, r4, #0x0 bl FUN_02016A8C add r0, sp, #0x20 ldrb r3, [r0, #0x10] cmp r3, #0x1 bhi _0200D374 ldrh r0, [r0, #0x14] add r5, #0x1e lsl r2, r5, #0x10 str r0, [sp, #0x0] ldr r0, [sp, #0x10] add r1, r6, #0x0 lsr r2, r2, #0x10 str r4, [sp, #0x4] bl FUN_0200D378 _0200D374: add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_0200D378 FUN_0200D378: ; 0x0200D378 push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, [sp, #0x20] cmp r3, #0x0 bne _0200D38C add r1, #0x21 lsl r0, r1, #0x10 b _0200D390 _0200D38C: add r0, r1, #0x2 lsl r0, r0, #0x10 _0200D390: lsr r1, r0, #0x10 mov r0, #0x3 str r2, [sp, #0x0] lsl r0, r0, #0x8 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x24] add r2, r5, #0x0 str r0, [sp, #0xc] mov r0, #0x24 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200D3B0 FUN_0200D3B0: ; 0x0200D3B0 push {r3-r7, lr} sub sp, #0x40 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r2, [sp, #0x1c] ldr r6, [sp, #0x5c] sub r7, r2, #0x1 ldr r2, [sp, #0x18] ldr r5, [sp, #0x60] str r2, [sp, #0x34] sub r2, #0x9 str r2, [sp, #0x34] lsl r2, r7, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] ldr r3, [sp, #0x34] str r5, [sp, #0xc] add r2, sp, #0x48 lsl r3, r3, #0x18 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 str r0, [sp, #0x10] bl FUN_02018540 ldr r0, [sp, #0x18] str r0, [sp, #0x30] sub r0, #0x8 str r0, [sp, #0x30] add r0, sp, #0x48 ldrh r4, [r0, #0x1c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x30] str r5, [sp, #0xc] add r2, r4, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, sp, #0x48 ldrb r0, [r0, #0x10] add r2, r4, #0x2 lsl r2, r2, #0x10 str r0, [sp, #0x3c] add r0, r0, #0x7 str r0, [sp, #0x24] ldr r0, [sp, #0x18] lsr r2, r2, #0x10 sub r0, r0, #0x7 str r0, [sp, #0x20] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r3, [sp, #0x20] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 add r2, r4, #0x3 lsl r2, r2, #0x10 ldr r1, [sp, #0x18] ldr r0, [sp, #0x3c] lsr r2, r2, #0x10 add r0, r1, r0 str r0, [sp, #0x38] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x38] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x38] add r2, r4, #0x4 add r0, r0, #0x1 str r0, [sp, #0x2c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x38] add r0, r0, #0x2 str r0, [sp, #0x28] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, r4, #0x5 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x34] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] add r2, r4, #0x6 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x30] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] add r2, r4, #0x7 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] ldr r3, [sp, #0x18] add r2, #0x8 sub r3, r3, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x38] str r5, [sp, #0xc] add r2, #0x9 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, #0xb lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 add r6, r0, r6 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x34] str r5, [sp, #0xc] add r2, #0xc lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x30] str r5, [sp, #0xc] add r2, #0xd lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r2, r4, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r2, #0xe lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x38] str r5, [sp, #0xc] add r2, #0xf lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r4, #0x11 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x40 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D678 FUN_0200D678: ; 0x0200D678 push {r3-r7, lr} sub sp, #0x28 str r1, [sp, #0x10] add r7, r0, #0x0 str r2, [sp, #0x14] bl FUN_0201AB08 str r0, [sp, #0x20] add r0, r7, #0x0 bl FUN_0201AB14 sub r0, r0, #0x7 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0x0 bl FUN_0201AB18 str r0, [sp, #0x1c] mov r0, #0x0 str r0, [sp, #0x24] _0200D6A2: ldr r2, [sp, #0x24] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x24] add r3, r2, #0x0 add r0, r1, r0 mov r1, #0x6 mul r3, r1 ldr r1, [sp, #0x10] lsl r0, r0, #0x18 mov r4, #0x0 add r5, r1, r3 lsr r6, r0, #0x18 _0200D6BA: str r6, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x14] ldr r3, [sp, #0x18] str r0, [sp, #0xc] add r2, r4, r5 add r3, r3, r4 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r7, #0x0] ldr r1, [sp, #0x20] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x6 blo _0200D6BA ldr r0, [sp, #0x24] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x24] cmp r0, #0x4 blo _0200D6A2 add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_0200D6F8 FUN_0200D6F8: ; 0x0200D6F8 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 str r1, [sp, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_0201AB08 str r0, [sp, #0x14] add r0, sp, #0x30 ldrb r0, [r0, #0x10] cmp r0, #0x1 bhi _0200D756 add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x1c] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] str r4, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl FUN_0200D3B0 add r1, r4, #0x0 add r1, #0x1e lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 add r2, r6, #0x0 bl FUN_0200D678 b _0200D788 _0200D756: add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x20] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x24] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] str r4, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] bl FUN_0200CDD8 _0200D788: ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0200D794 add r0, r5, #0x0 bl FUN_020191D0 _0200D794: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200D18C add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_0200D7A0 FUN_0200D7A0: ; 0x0200D7A0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x10] bl FUN_0201AB08 str r0, [sp, #0x14] cmp r4, #0x1 bhi _0200D7FE add r0, r5, #0x0 bl FUN_0201AB14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r0, r0, #0x2 lsl r0, r0, #0x18 sub r4, #0x9 lsl r3, r4, #0x18 add r6, #0xb str r1, [sp, #0x0] lsl r1, r6, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 b _0200D846 _0200D7FE: add r0, r5, #0x0 bl FUN_0201AB14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r6, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] add r1, r7, #0x4 lsl r1, r1, #0x18 add r0, r0, #0x2 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r4, #0x2 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 _0200D846: ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0200D852 add r0, r5, #0x0 bl FUN_02019570 _0200D852: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D858 FUN_0200D858: ; 0x0200D858 push {r4-r7, lr} sub sp, #0x34 str r0, [sp, #0x20] ldr r0, [r0, #0x0] str r1, [sp, #0x24] bl FUN_02016BB8 str r0, [sp, #0x28] ldr r0, [sp, #0x20] bl FUN_0201AB08 bl FUN_020187B0 add r5, r0, #0x0 ldr r0, [sp, #0x28] ldr r1, _0200D970 ; =0x0000048C bl FUN_02016998 ldr r1, [sp, #0x24] add r4, r0, #0x0 ldr r0, _0200D974 ; =0x00000404 add r1, #0x12 lsl r1, r1, #0x5 add r0, r4, r0 add r1, r5, r1 mov r2, #0x80 blx memcpy ldr r0, [sp, #0x28] mov r1, #0x80 bl FUN_02016998 ldr r1, [sp, #0x24] mov r2, #0x20 add r1, #0xa lsl r1, r1, #0x5 str r1, [sp, #0x2c] add r1, r5, r1 add r6, r0, #0x0 blx memcpy ldr r0, [sp, #0x24] mov r2, #0x20 add r0, #0xb lsl r7, r0, #0x5 add r0, r6, #0x0 add r0, #0x20 add r1, r5, r7 blx memcpy ldr r1, [sp, #0x2c] add r0, r6, #0x0 add r0, #0x40 add r1, r5, r1 mov r2, #0x20 blx memcpy add r0, r6, #0x0 add r0, #0x60 add r1, r5, r7 mov r2, #0x20 blx memcpy mov r5, #0x0 add r7, r4, #0x4 _0200D8DA: lsl r0, r5, #0x7 add r0, r7, r0 add r1, r6, #0x0 mov r2, #0x80 blx memcpy add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0200D8DA add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x28] mov r1, #0x17 str r0, [sp, #0x0] mov r0, #0x26 mov r2, #0x0 add r3, sp, #0x30 bl FUN_02006BB0 mov r2, #0x80 add r5, r0, #0x0 str r2, [sp, #0x0] add r0, r4, #0x4 str r0, [sp, #0x4] mov r3, #0x10 str r3, [sp, #0x8] str r2, [sp, #0xc] mov r1, #0x0 str r1, [sp, #0x10] str r1, [sp, #0x14] str r3, [sp, #0x18] str r2, [sp, #0x1c] ldr r0, [sp, #0x30] add r2, r1, #0x0 ldr r0, [r0, #0x14] bl FUN_0200D148 add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x20] ldr r1, _0200D978 ; =0x00000484 str r0, [r4, #0x0] ldr r0, [sp, #0x24] mov r2, #0x0 strh r0, [r4, r1] add r0, r1, #0x2 strb r2, [r4, r0] add r0, r1, #0x3 ldrb r3, [r4, r0] mov r0, #0x7f bic r3, r0 add r0, r1, #0x3 strb r3, [r4, r0] add r0, r1, #0x4 ldrb r3, [r4, r0] mov r0, #0x3 bic r3, r0 add r0, r1, #0x4 strb r3, [r4, r0] ldr r0, _0200D97C ; =FUN_0200DB7C add r1, r4, #0x0 bl FUN_0200CA60 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200D980 add r0, r4, #0x0 add sp, #0x34 pop {r4-r7, pc} nop _0200D970: .word 0x0000048C _0200D974: .word 0x00000404 _0200D978: .word 0x00000484 _0200D97C: .word FUN_0200DB7C thumb_func_start FUN_0200D980 FUN_0200D980: ; 0x0200D980 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0201AB08 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0201AB14 str r0, [sp, #0x18] ldr r0, [r5, #0x0] bl FUN_0201AB18 str r0, [sp, #0x1c] ldr r0, [r5, #0x0] bl FUN_0201AB0C str r0, [sp, #0x20] cmp r6, #0x2 bne _0200DA8A ldr r2, _0200DB78 ; =0x00000484 add r1, r4, #0x0 ldrh r0, [r5, r2] sub r2, #0x80 add r2, r5, r2 add r0, #0x12 str r0, [sp, #0x0] ldr r0, [r5, #0x0] mov r3, #0x80 ldr r0, [r0, #0x0] bl FUN_02017E14 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r7, r0, #0x2 ldr r0, [sp, #0x20] ldr r2, _0200DB78 ; =0x00000484 add r6, r1, r0 add r0, r6, #0x1 str r0, [sp, #0x14] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrh r2, [r5, r2] ldr r0, [r5, #0x0] ldr r3, [sp, #0x14] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] add r6, r6, #0x2 lsl r3, r6, #0x18 add r2, #0xb lsl r2, r2, #0x10 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x14] add r7, r0, #0x3 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r2, #0xa lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r6, #0x18 ldr r0, [r0, #0x0] add r2, #0xb lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] bl FUN_02017CD0 add sp, #0x24 pop {r4-r7, pc} _0200DA8A: ldr r3, _0200DB78 ; =0x00000484 add r2, r5, #0x4 ldrh r0, [r5, r3] add r3, r3, #0x3 add r1, r4, #0x0 add r0, #0x12 str r0, [sp, #0x0] ldrb r3, [r5, r3] ldr r0, [r5, #0x0] lsl r3, r3, #0x19 lsr r3, r3, #0x19 lsl r3, r3, #0x7 add r2, r2, r3 ldr r0, [r0, #0x0] mov r3, #0x80 bl FUN_02017E14 cmp r6, #0x0 beq _0200DB72 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r7, r0, #0x2 ldr r0, [sp, #0x20] ldr r2, _0200DB78 ; =0x00000484 add r6, r1, r0 add r0, r6, #0x1 str r0, [sp, #0x10] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrh r2, [r5, r2] ldr r0, [r5, #0x0] ldr r3, [sp, #0x10] add r2, #0x12 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] add r6, r6, #0x2 lsl r3, r6, #0x18 add r2, #0x13 lsl r2, r2, #0x10 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x10] add r7, r0, #0x3 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r2, #0x14 lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r6, #0x18 ldr r0, [r0, #0x0] add r2, #0x15 lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] bl FUN_02017CD0 _0200DB72: add sp, #0x24 pop {r4-r7, pc} nop _0200DB78: .word 0x00000484 thumb_func_start FUN_0200DB7C FUN_0200DB7C: ; 0x0200DB7C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _0200DBE4 ; =0x00000488 ldrb r2, [r1, r0] lsl r2, r2, #0x1e lsr r2, r2, #0x1e beq _0200DB9E cmp r2, #0x1 bne _0200DB96 add r0, r1, #0x0 mov r1, #0x2 bl FUN_0200D980 _0200DB96: add r0, r4, #0x0 bl FUN_0200CAB4 pop {r3-r5, pc} _0200DB9E: sub r2, r0, #0x2 ldrb r2, [r1, r2] add r3, r2, #0x1 sub r2, r0, #0x2 strb r3, [r1, r2] ldrb r2, [r1, r2] cmp r2, #0x10 bne _0200DBE0 mov r3, #0x0 sub r2, r0, #0x2 strb r3, [r1, r2] sub r2, r0, #0x1 ldrb r2, [r1, r2] mov r4, #0x7f bic r2, r4 sub r4, r0, #0x1 ldrb r4, [r1, r4] sub r0, r0, #0x1 lsl r4, r4, #0x19 lsr r4, r4, #0x19 add r5, r4, #0x1 mov r4, #0x7 and r4, r5 lsl r4, r4, #0x18 lsr r5, r4, #0x18 mov r4, #0x7f and r4, r5 orr r2, r4 strb r2, [r1, r0] add r0, r1, #0x0 add r1, r3, #0x0 bl FUN_0200D980 _0200DBE0: pop {r3-r5, pc} nop _0200DBE4: .word 0x00000488 thumb_func_start FUN_0200DBE8 FUN_0200DBE8: ; 0x0200DBE8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02016A18 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_0200DBFC FUN_0200DBFC: ; 0x0200DBFC push {r4, lr} add r4, r0, #0x0 ldr r0, _0200DC1C ; =FUN_0200DBE8 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA98 ldr r1, _0200DC20 ; =0x00000488 mov r0, #0x3 ldrb r2, [r4, r1] bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r4, r1] pop {r4, pc} nop _0200DC1C: .word FUN_0200DBE8 _0200DC20: .word 0x00000488 thumb_func_start FUN_0200DC24 FUN_0200DC24: ; 0x0200DC24 push {r4, lr} add r4, r0, #0x0 ldr r0, _0200DC44 ; =FUN_0200DBE8 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA98 ldr r1, _0200DC48 ; =0x00000488 mov r0, #0x3 ldrb r2, [r4, r1] bic r2, r0 mov r0, #0x2 orr r0, r2 strb r0, [r4, r1] pop {r4, pc} nop _0200DC44: .word FUN_0200DBE8 _0200DC48: .word 0x00000488 thumb_func_start FUN_0200DC4C FUN_0200DC4C: ; 0x0200DC4C push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] ldr r5, [sp, #0x30] str r3, [sp, #0x8] add r6, r0, #0x0 add r7, r1, #0x0 str r5, [sp, #0x0] bl FUN_0200DD70 add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_0200DDAC add r0, r4, #0x0 bl FUN_0200DDD8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r4, #0x0 bl FUN_0200DE30 add r2, sp, #0x10 ldrh r1, [r2, #0x18] ldrb r2, [r2, #0x1c] add r0, r4, #0x0 bl FUN_0200DE80 add r2, sp, #0x10 ldrb r1, [r2, #0x10] ldrh r2, [r2, #0x14] add r0, r4, #0x0 bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02017CD0 ldr r0, _0200DCA0 ; =0x0000016F add r0, r4, r0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0200DCA0: .word 0x0000016F thumb_func_start FUN_0200DCA4 FUN_0200DCA4: ; 0x0200DCA4 push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] ldr r5, [sp, #0x2c] str r3, [sp, #0x8] add r6, r0, #0x0 add r7, r1, #0x0 str r5, [sp, #0x0] bl FUN_0200DD70 add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_0200DDAC add r0, r4, #0x0 bl FUN_0200DDD8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r4, #0x0 bl FUN_0200DE30 ldr r1, [sp, #0x28] add r0, r4, #0x0 bl FUN_0200DEC0 add r2, sp, #0x10 ldrb r1, [r2, #0x10] ldrh r2, [r2, #0x14] add r0, r4, #0x0 bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02017CD0 ldr r0, _0200DCF4 ; =0x0000016F add r0, r4, r0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0200DCF4: .word 0x0000016F thumb_func_start FUN_0200DCF8 FUN_0200DCF8: ; 0x0200DCF8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200DD6C ; =0x0000016F add r4, r1, #0x0 ldrb r1, [r4, r0] cmp r1, #0x1 beq _0200DD10 cmp r1, #0x2 beq _0200DD2E cmp r1, #0x3 beq _0200DD40 b _0200DD54 _0200DD10: add r0, r4, #0x0 bl FUN_0200E188 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0200C3DC add r0, r4, #0x0 bl FUN_021D99F8 add r0, r5, #0x0 bl FUN_0200621C pop {r3-r5, pc} _0200DD2E: mov r1, #0x3 strb r1, [r4, r0] sub r0, #0xb ldr r0, [r4, r0] mov r1, #0x1 ldr r0, [r0, #0x0] bl FUN_02020130 b _0200DD54 _0200DD40: sub r0, #0xb ldr r0, [r4, r0] ldr r0, [r0, #0x0] bl FUN_0202022C cmp r0, #0x6 bne _0200DD54 ldr r0, _0200DD6C ; =0x0000016F mov r1, #0x0 strb r1, [r4, r0] _0200DD54: mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x0] bl FUN_0201FDEC pop {r3-r5, pc} .balign 4 _0200DD6C: .word 0x0000016F thumb_func_start FUN_0200DD70 FUN_0200DD70: ; 0x0200DD70 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r7, r3, #0x0 mov r1, #0x17 add r6, r2, #0x0 ldr r0, _0200DDA4 ; =FUN_0200DCF8 ldr r3, [sp, #0x18] lsl r1, r1, #0x4 mov r2, #0x0 bl FUN_020061E8 bl FUN_0201B6C8 ldr r1, _0200DDA8 ; =0x0000016F mov r2, #0x0 strb r2, [r0, r1] sub r2, r1, #0x7 str r5, [r0, r2] sub r2, r1, #0x3 strb r4, [r0, r2] sub r2, r1, #0x2 strb r6, [r0, r2] sub r1, r1, #0x1 strb r7, [r0, r1] pop {r3-r7, pc} .balign 4 _0200DDA4: .word FUN_0200DCF8 _0200DDA8: .word 0x0000016F thumb_func_start FUN_0200DDAC FUN_0200DDAC: ; 0x0200DDAC push {r4-r6, lr} sub sp, #0x18 ldr r5, _0200DDD4 ; =0x020ECEA8 add r4, sp, #0x0 add r6, r0, #0x0 add r3, r1, #0x0 add r2, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r1, r2, #0x0 add r0, r6, #0x0 mov r2, #0x1 bl FUN_021D959C add sp, #0x18 pop {r4-r6, pc} .balign 4 _0200DDD4: .word 0x020ECEA8 thumb_func_start FUN_0200DDD8 FUN_0200DDD8: ; 0x0200DDD8 push {r3-r4, lr} sub sp, #0xc mov r1, #0x1 str r1, [sp, #0x0] str r1, [sp, #0x4] ldr r1, _0200DE2C ; =0x00015CD5 mov r2, #0x31 str r1, [sp, #0x8] mov r1, #0x26 mov r3, #0x0 add r4, r0, #0x0 bl FUN_021D967C ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x0] add r0, r4, #0x0 mov r2, #0x2f mov r3, #0x0 bl FUN_021D96F4 ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x0] add r0, r4, #0x0 mov r2, #0x2e mov r3, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x4] add r0, r4, #0x0 mov r2, #0x30 mov r3, #0x0 bl FUN_021D971C add sp, #0xc pop {r3-r4, pc} nop _0200DE2C: .word 0x00015CD5 thumb_func_start FUN_0200DE30 FUN_0200DE30: ; 0x0200DE30 push {r4-r7, lr} sub sp, #0x34 ldr r5, _0200DE7C ; =0x020ECEC0 add r6, r2, #0x0 add r4, r0, #0x0 add r7, r1, #0x0 add r3, sp, #0x0 mov r2, #0x6 _0200DE40: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0200DE40 ldr r0, [r5, #0x0] str r0, [r3, #0x0] add r0, r7, #0x5 lsl r1, r0, #0x3 add r0, sp, #0x0 strh r1, [r0, #0x0] add r1, r6, #0x5 lsl r1, r1, #0x3 strh r1, [r0, #0x2] add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_021D9820 mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x0] bl FUN_0201FDEC mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C add sp, #0x34 pop {r4-r7, pc} nop _0200DE7C: .word 0x020ECEC0 thumb_func_start FUN_0200DE80 FUN_0200DE80: ; 0x0200DE80 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, _0200DEBC ; =0x00000162 add r4, r1, #0x0 ldrh r0, [r5, r0] add r6, r2, #0x0 bl FUN_02006D98 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] add r0, sp, #0xc add r1, r4, #0x0 add r2, r6, #0x0 mov r3, #0x2 bl FUN_02068C00 add r0, r5, #0x0 add r1, sp, #0xc bl FUN_0200DEF4 add r0, r7, #0x0 bl FUN_020072E8 add sp, #0x1c pop {r4-r7, pc} nop _0200DEBC: .word 0x00000162 thumb_func_start FUN_0200DEC0 FUN_0200DEC0: ; 0x0200DEC0 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, _0200DEF0 ; =0x00000162 add r4, r1, #0x0 ldrh r0, [r5, r0] bl FUN_02006D98 add r6, r0, #0x0 add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02068B68 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_0200DEF4 add r0, r6, #0x0 bl FUN_020072E8 add sp, #0x10 pop {r4-r6, pc} nop _0200DEF0: .word 0x00000162 thumb_func_start FUN_0200DEF4 FUN_0200DEF4: ; 0x0200DEF4 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, _0200DFC8 ; =0x00000162 add r6, r1, #0x0 mov r1, #0x19 ldrh r0, [r5, r0] lsl r1, r1, #0x8 bl FUN_02016998 add r2, sp, #0x18 ldr r3, _0200DFCC ; =0x020ECE98 add r4, r0, #0x0 add r7, r2, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} str r4, [sp, #0x0] ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x2] ldrh r2, [r5, r2] add r3, r7, #0x0 bl FUN_02012400 ldr r3, _0200DFD0 ; =0x020ECE88 add r2, sp, #0x8 add r7, r2, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x32 lsl r0, r0, #0x6 add r0, r4, r0 str r0, [sp, #0x0] ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x2] ldrh r2, [r5, r2] add r3, r7, #0x0 bl FUN_02012400 mov r0, #0x13 lsl r0, r0, #0x4 ldr r0, [r5, r0] ldr r1, _0200DFD4 ; =0x00015CD5 bl FUN_020094F0 bl FUN_02009C5C mov r1, #0x1 str r0, [sp, #0x4] blx FUN_020B1A14 mov r1, #0x19 add r7, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x8 blx DC_FlushRange mov r2, #0x19 add r0, r4, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x8 blx GX_LoadOBJ add r0, r4, #0x0 bl FUN_02016A18 ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x4] ldrh r2, [r5, r2] bl FUN_02012470 add r4, r0, #0x0 mov r0, #0x4d lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, _0200DFD4 ; =0x00015CD5 bl FUN_020094F0 ldr r1, [sp, #0x4] bl FUN_02009E54 mov r1, #0x1 blx FUN_020B19C4 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x20 blx DC_FlushRange add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x20 blx GX_LoadOBJPltt add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 pop {r3-r7, pc} nop _0200DFC8: .word 0x00000162 _0200DFCC: .word 0x020ECE98 _0200DFD0: .word 0x020ECE88 _0200DFD4: .word 0x00015CD5 thumb_func_start FUN_0200DFD8 FUN_0200DFD8: ; 0x0200DFD8 push {r4-r6, lr} sub sp, #0x10 ldr r3, _0200E184 ; =0x0000016E add r5, r0, #0x0 ldrb r0, [r5, r3] add r4, r1, #0x0 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 add r6, r2, #0x0 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x1 ldrb r0, [r5, r3] sub r1, r3, #0x2 lsl r2, r2, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x2 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x4 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x3 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0xa str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x5 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0xa str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x6 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x7 ldrb r0, [r5, r3] sub r1, r3, #0x2 lsl r2, r2, #0x10 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r6, #0x8 ldrb r0, [r5, r3] lsl r2, r6, #0x10 sub r1, r3, #0x2 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r5, r1] add r1, r1, #0x4 ldrb r1, [r5, r1] bl FUN_0201AC68 add sp, #0x10 pop {r4-r6, pc} nop _0200E184: .word 0x0000016E thumb_func_start FUN_0200E188 FUN_0200E188: ; 0x0200E188 push {r4, lr} sub sp, #0x10 ldr r3, _0200E1CC ; =0x0000016E add r4, r0, #0x0 ldrb r0, [r4, r3] mov r2, #0x0 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] str r0, [sp, #0x8] str r2, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r4, r3] ldrb r1, [r4, r1] ldr r0, [r4, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02018540 mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, r1, #0x4 ldrb r1, [r4, r1] bl FUN_0201AC68 add sp, #0x10 pop {r4, pc} .balign 4 _0200E1CC: .word 0x0000016E thumb_func_start FUN_0200E1D0 FUN_0200E1D0: ; 0x0200E1D0 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, [sp, #0x30] add r4, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r0, #0x0 bne _0200E1E6 bl ErrorHandling _0200E1E6: ldr r0, [sp, #0x34] cmp r0, #0x0 bne _0200E1F0 bl ErrorHandling _0200E1F0: ldr r0, _0200E2AC ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E1FC bl ErrorHandling _0200E1FC: ldr r0, _0200E2B0 ; =0x021C46B4 bl FUN_0200E808 ldr r1, _0200E2B0 ; =0x021C46B4 add r0, r5, #0x0 bl FUN_0200E558 ldr r0, _0200E2B4 ; =0x021C4728 bl FUN_0200E5F4 ldr r0, _0200E2B0 ; =0x021C46B4 add r1, r6, #0x0 bl FUN_0200E75C add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, _0200E2B8 ; =0x021C4740 ldr r2, [sp, #0x30] str r0, [sp, #0xc] ldr r0, _0200E2B4 ; =0x021C4728 ldr r3, [sp, #0x34] str r0, [sp, #0x10] ldr r0, [sp, #0x38] add r1, r4, #0x0 str r0, [sp, #0x14] ldr r0, _0200E2BC ; =0x021C46C8 str r5, [sp, #0x18] bl FUN_0200E5C8 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, _0200E2B8 ; =0x021C4740 ldr r2, [sp, #0x30] str r0, [sp, #0xc] ldr r0, _0200E2B4 ; =0x021C4728 ldr r3, [sp, #0x34] str r0, [sp, #0x10] ldr r0, [sp, #0x38] add r1, r7, #0x0 str r0, [sp, #0x14] ldr r0, _0200E2C0 ; =0x021C46F8 str r5, [sp, #0x18] bl FUN_0200E5C8 ldr r0, _0200E2AC ; =0x021C47F4 mov r1, #0x1 strh r1, [r0, #0xc] ldr r0, _0200E2C4 ; =0x021C46B8 ldr r1, _0200E2BC ; =0x021C46C8 bl FUN_0200E528 ldr r0, _0200E2C8 ; =0x021C46BC ldr r1, _0200E2C0 ; =0x021C46F8 bl FUN_0200E528 ldr r0, _0200E2CC ; =0x021C46B4 ldr r0, [r0, #0xc] cmp r0, #0x0 beq _0200E28E ldr r0, _0200E2B0 ; =0x021C46B4 add r0, #0x14 bl FUN_0200E7A8 ldr r1, _0200E2D0 ; =0x0000014E ldr r0, _0200E2B0 ; =0x021C46B4 mov r2, #0x1 strb r2, [r0, r1] _0200E28E: ldr r0, _0200E2B0 ; =0x021C46B4 ldr r0, [r0, #0x10] cmp r0, #0x0 beq _0200E2A6 ldr r0, _0200E2B0 ; =0x021C46B4 add r0, #0x44 bl FUN_0200E7A8 ldr r1, _0200E2D4 ; =0x0000014F ldr r0, _0200E2B0 ; =0x021C46B4 mov r2, #0x1 strb r2, [r0, r1] _0200E2A6: add sp, #0x1c pop {r4-r7, pc} nop _0200E2AC: .word 0x021C47F4 _0200E2B0: .word 0x021C46B4 _0200E2B4: .word 0x021C4728 _0200E2B8: .word 0x021C4740 _0200E2BC: .word 0x021C46C8 _0200E2C0: .word 0x021C46F8 _0200E2C4: .word 0x021C46B8 _0200E2C8: .word 0x021C46BC _0200E2CC: .word 0x021C46B4 _0200E2D0: .word 0x0000014E _0200E2D4: .word 0x0000014F thumb_func_start FUN_0200E2D8 FUN_0200E2D8: ; 0x0200E2D8 push {r4, lr} ldr r0, _0200E300 ; =0x021C47F4 ldr r4, _0200E304 ; =0x021C46B4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E2FC add r1, r4, #0x0 add r2, r4, #0x0 add r0, r4, #0x0 add r1, #0x14 add r2, #0x44 bl FUN_0200E4B8 cmp r0, #0x1 bne _0200E2FC add r0, r4, #0x0 bl FUN_0200E460 _0200E2FC: pop {r4, pc} nop _0200E300: .word 0x021C47F4 _0200E304: .word 0x021C46B4 thumb_func_start FUN_0200E308 FUN_0200E308: ; 0x0200E308 ldr r0, _0200E318 ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 bne _0200E314 mov r0, #0x1 bx lr _0200E314: mov r0, #0x0 bx lr .balign 4 _0200E318: .word 0x021C47F4 thumb_func_start FUN_0200E31C FUN_0200E31C: ; 0x0200E31C push {r3, lr} ldr r0, _0200E368 ; =0x021C4728 mov r1, #0x0 bl FUN_0200E6A0 ldr r0, _0200E368 ; =0x021C4728 mov r1, #0x1 bl FUN_0200E6A0 ldr r0, _0200E36C ; =0x021C46B4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0200E33A mov r1, #0x2 str r1, [r0, #0x20] _0200E33A: ldr r0, _0200E36C ; =0x021C46B4 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0200E346 mov r1, #0x2 str r1, [r0, #0x50] _0200E346: ldr r0, _0200E370 ; =0x021C46B8 ldr r1, _0200E374 ; =0x021C46C8 bl FUN_0200E528 ldr r0, _0200E378 ; =0x021C46BC ldr r1, _0200E37C ; =0x021C46F8 bl FUN_0200E528 ldr r0, _0200E380 ; =0x021C47F4 mov r1, #0x0 strh r1, [r0, #0xc] strb r1, [r0, #0xe] strb r1, [r0, #0xf] ldr r0, _0200E384 ; =0x021C46B4 bl FUN_0200E808 pop {r3, pc} .balign 4 _0200E368: .word 0x021C4728 _0200E36C: .word 0x021C46B4 _0200E370: .word 0x021C46B8 _0200E374: .word 0x021C46C8 _0200E378: .word 0x021C46BC _0200E37C: .word 0x021C46F8 _0200E380: .word 0x021C47F4 _0200E384: .word 0x021C46B4 thumb_func_start FUN_0200E388 FUN_0200E388: ; 0x0200E388 ldr r3, _0200E390 ; =FUN_02011480 add r1, r0, #0x0 mov r0, #0x0 bx r3 .balign 4 _0200E390: .word FUN_02011480 thumb_func_start FUN_0200E394 FUN_0200E394: ; 0x0200E394 ldr r3, _0200E39C ; =FUN_0200E440 mov r1, #0x0 bx r3 nop _0200E39C: .word FUN_0200E440 thumb_func_start FUN_0200E3A0 FUN_0200E3A0: ; 0x0200E3A0 ldr r2, _0200E3B4 ; =0x00007FFF cmp r1, r2 bne _0200E3AA mov r1, #0x10 b _0200E3AE _0200E3AA: mov r1, #0xf mvn r1, r1 _0200E3AE: ldr r3, _0200E3B8 ; =FUN_0200E440 bx r3 nop _0200E3B4: .word 0x00007FFF _0200E3B8: .word FUN_0200E440 thumb_func_start FUN_0200E3BC FUN_0200E3BC: ; 0x0200E3BC push {r0-r3} push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 add r0, sp, #0x1c bne _0200E3D2 mov r1, #0x0 mov r2, #0x2 blx GX_LoadBGPltt b _0200E3DA _0200E3D2: mov r1, #0x0 mov r2, #0x2 blx GXS_LoadBGPltt _0200E3DA: ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x1 add r2, r4, #0x0 bl FUN_02011634 mov r2, #0x0 ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x3f add r3, r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] ldr r0, _0200E41C ; =0x021C4740 add r2, r1, #0x0 add r3, r1, #0x0 str r4, [sp, #0x8] bl FUN_02011698 ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x20 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 add sp, #0xc pop {r3-r4} pop {r3} add sp, #0x10 bx r3 nop _0200E41C: .word 0x021C4740 thumb_func_start FUN_0200E420 FUN_0200E420: ; 0x0200E420 push {r0-r3} push {r3, lr} add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x2 blx GX_LoadBGPltt add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x2 blx GXS_LoadBGPltt pop {r3} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_0200E440 FUN_0200E440: ; 0x0200E440 push {r3, lr} cmp r0, #0x0 bne _0200E44E ldr r0, _0200E458 ; =0x0400006C blx GXx_SetMasterBrightness_ pop {r3, pc} _0200E44E: ldr r0, _0200E45C ; =0x0400106C blx GXx_SetMasterBrightness_ pop {r3, pc} nop _0200E458: .word 0x0400006C _0200E45C: .word 0x0400106C thumb_func_start FUN_0200E460 FUN_0200E460: ; 0x0200E460 push {r4, lr} mov r1, #0x53 add r4, r0, #0x0 mov r2, #0x0 lsl r1, r1, #0x2 strh r2, [r4, r1] bl FUN_0200E770 mov r1, #0x15 lsl r1, r1, #0x4 strh r0, [r4, r1] ldr r0, [r4, #0xc] cmp r0, #0x0 beq _0200E490 add r0, r4, #0x0 add r0, #0x14 bl FUN_0200E7D8 ldr r0, [r4, #0x3c] cmp r0, #0x0 bne _0200E490 ldr r0, _0200E4B4 ; =0x021C47F4 mov r1, #0x0 strb r1, [r0, #0xe] _0200E490: ldr r0, [r4, #0x10] cmp r0, #0x0 beq _0200E4AA add r0, r4, #0x0 add r0, #0x44 bl FUN_0200E7D8 ldr r0, [r4, #0x3c] cmp r0, #0x0 bne _0200E4AA ldr r0, _0200E4B4 ; =0x021C47F4 mov r1, #0x0 strb r1, [r0, #0xf] _0200E4AA: add r0, r4, #0x0 bl FUN_0200E808 pop {r4, pc} nop _0200E4B4: .word 0x021C47F4 thumb_func_start FUN_0200E4B8 FUN_0200E4B8: ; 0x0200E4B8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r2, #0x0 cmp r0, #0x0 beq _0200E4CE cmp r0, #0x1 beq _0200E4E0 cmp r0, #0x2 beq _0200E4FA b _0200E512 _0200E4CE: add r0, r5, #0x4 bl FUN_0200E528 add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E4E0: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _0200E4EE add r0, r5, #0x4 bl FUN_0200E528 b _0200E512 _0200E4EE: add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E4FA: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0200E50C add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E50C: add r0, r5, #0x4 bl FUN_0200E528 _0200E512: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0200E522 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _0200E522 mov r0, #0x1 pop {r3-r5, pc} _0200E522: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200E528 FUN_0200E528: ; 0x0200E528 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200E540 add r0, r1, #0x0 bl FUN_0200E544 cmp r0, #0x1 bne _0200E540 mov r0, #0x0 str r0, [r4, #0x0] _0200E540: pop {r4, pc} .balign 4 thumb_func_start FUN_0200E544 FUN_0200E544: ; 0x0200E544 push {r3, lr} ldr r1, [r0, #0x0] lsl r2, r1, #0x2 ldr r1, _0200E554 ; =0x020ECEF4 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _0200E554: .word 0x020ECEF4 thumb_func_start FUN_0200E558 FUN_0200E558: ; 0x0200E558 push {r3, lr} cmp r0, #0x4 bhi _0200E5B8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200E56A: ; jump table (using 16-bit offset) .short _0200E574 - _0200E56A - 2; case 0 .short _0200E582 - _0200E56A - 2; case 1 .short _0200E590 - _0200E56A - 2; case 2 .short _0200E59E - _0200E56A - 2; case 3 .short _0200E5AC - _0200E56A - 2; case 4 _0200E574: mov r2, #0x1 add r0, r1, #0x0 mov r1, #0x0 add r3, r2, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E582: add r0, r1, #0x0 mov r1, #0x1 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E590: mov r2, #0x1 add r0, r1, #0x0 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E59E: add r0, r1, #0x0 mov r1, #0x1 add r2, r1, #0x0 mov r3, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E5AC: add r0, r1, #0x0 mov r1, #0x2 mov r2, #0x0 mov r3, #0x1 bl FUN_0200E5BC _0200E5B8: pop {r3, pc} .balign 4 thumb_func_start FUN_0200E5BC FUN_0200E5BC: ; 0x0200E5BC str r1, [r0, #0x0] str r2, [r0, #0x4] str r3, [r0, #0x8] str r2, [r0, #0xc] str r3, [r0, #0x10] bx lr thumb_func_start FUN_0200E5C8 FUN_0200E5C8: ; 0x0200E5C8 str r1, [r0, #0x0] str r2, [r0, #0x4] ldr r1, [sp, #0x0] str r3, [r0, #0x8] str r1, [r0, #0xc] ldr r1, [sp, #0x4] str r1, [r0, #0x14] ldr r1, [sp, #0x8] str r1, [r0, #0x10] ldr r1, [sp, #0xc] str r1, [r0, #0x18] ldr r1, [sp, #0x10] str r1, [r0, #0x1c] ldr r1, [sp, #0x14] str r1, [r0, #0x20] ldr r1, _0200E5F0 ; =0xFFFFFFF0 add r1, sp ldrh r1, [r1, #0x28] strh r1, [r0, #0x24] bx lr .balign 4 _0200E5F0: .word 0xFFFFFFF0 thumb_func_start FUN_0200E5F4 FUN_0200E5F4: ; 0x0200E5F4 mov r3, #0x0 ldr r1, _0200E60C ; =FUN_0200E758 add r2, r3, #0x0 _0200E5FA: str r2, [r0, #0x0] str r1, [r0, #0x8] str r2, [r0, #0x10] add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x2 blt _0200E5FA bx lr nop _0200E60C: .word FUN_0200E758 thumb_func_start FUN_0200E610 FUN_0200E610: ; 0x0200E610 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0200E616: ldr r0, [r5, #0x0] ldr r1, [r5, #0x8] blx r1 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x2 blt _0200E616 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200E628 FUN_0200E628: ; 0x0200E628 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 str r0, [sp, #0x8] add r0, #0x10 lsl r4, r3, #0x2 str r0, [sp, #0x8] ldr r0, [r0, r4] add r7, r2, #0x0 str r1, [sp, #0x0] cmp r0, #0x0 beq _0200E64A bl ErrorHandling _0200E64A: add r6, r5, #0x0 add r6, #0x8 ldr r0, [r6, r4] cmp r0, #0x0 bne _0200E658 bl ErrorHandling _0200E658: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _0200E672 ldr r0, [r5, #0x14] cmp r0, #0x0 bne _0200E672 ldr r0, _0200E698 ; =FUN_0200E610 add r1, r5, #0x0 bl FUN_02015F34 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] _0200E672: ldr r0, [sp, #0x4] cmp r0, #0x1 beq _0200E67C bl ErrorHandling _0200E67C: ldr r0, [sp, #0x0] cmp r7, #0x0 str r0, [r5, r4] beq _0200E688 str r7, [r6, r4] b _0200E68C _0200E688: ldr r0, _0200E69C ; =FUN_0200E758 str r0, [r6, r4] _0200E68C: ldr r0, [sp, #0x8] mov r1, #0x1 str r1, [r0, r4] add sp, #0xc pop {r4-r7, pc} nop _0200E698: .word FUN_0200E610 _0200E69C: .word FUN_0200E758 thumb_func_start FUN_0200E6A0 FUN_0200E6A0: ; 0x0200E6A0 push {r3-r5, lr} lsl r4, r1, #0x2 add r5, r0, #0x0 mov r1, #0x0 add r0, r5, r4 str r1, [r0, #0x10] ldr r0, [r5, #0x10] cmp r0, #0x0 bne _0200E6BC ldr r0, [r5, #0x14] cmp r0, #0x0 bne _0200E6BC bl FUN_02015F1C _0200E6BC: ldr r1, _0200E6C8 ; =FUN_0200E758 add r0, r5, r4 str r1, [r0, #0x8] mov r0, #0x0 str r0, [r5, r4] pop {r3-r5, pc} .balign 4 _0200E6C8: .word FUN_0200E758 thumb_func_start FUN_0200E6CC FUN_0200E6CC: ; 0x0200E6CC push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r0, [sp, #0x18] mov r1, #0x10 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020169D8 add r1, r0, #0x0 str r5, [r1, #0x0] str r4, [r1, #0x4] mov r2, #0x1 str r6, [r1, #0x8] ldr r0, _0200E6F4 ; =FUN_0200E71C lsl r2, r2, #0xa str r7, [r1, #0xc] bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 _0200E6F4: .word FUN_0200E71C thumb_func_start FUN_0200E6F8 FUN_0200E6F8: ; 0x0200E6F8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x8 bl FUN_020169D8 add r1, r0, #0x0 mov r2, #0x1 str r5, [r1, #0x0] ldr r0, _0200E718 ; =FUN_0200E73C lsl r2, r2, #0xa str r4, [r1, #0x4] bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 _0200E718: .word FUN_0200E73C thumb_func_start FUN_0200E71C FUN_0200E71C: ; 0x0200E71C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_0200E628 add r0, r5, #0x0 bl FUN_0200CAB4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_0200E73C FUN_0200E73C: ; 0x0200E73C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] bl FUN_0200E6A0 add r0, r5, #0x0 bl FUN_0200CAB4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_0200E758 FUN_0200E758: ; 0x0200E758 bx lr .balign 4 thumb_func_start FUN_0200E75C FUN_0200E75C: ; 0x0200E75C ldr r2, _0200E76C ; =0x0000FFFF cmp r1, r2 bne _0200E768 mov r1, #0x15 lsl r1, r1, #0x4 ldrh r1, [r0, r1] _0200E768: add r0, r1, #0x0 bx lr .balign 4 _0200E76C: .word 0x0000FFFF thumb_func_start FUN_0200E770 FUN_0200E770: ; 0x0200E770 ldr r1, [r0, #0xc] cmp r1, #0x1 bne _0200E77C add r2, r0, #0x0 add r2, #0x14 b _0200E780 _0200E77C: add r2, r0, #0x0 add r2, #0x44 _0200E780: ldr r1, [r2, #0x28] cmp r1, #0x1 bne _0200E78A ldrh r0, [r2, #0x24] bx lr _0200E78A: mov r1, #0x15 lsl r1, r1, #0x4 ldrh r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0200E794 FUN_0200E794: ; 0x0200E794 push {r4, lr} add r4, r0, #0x0 ldr r0, [r1, #0x10] mov r1, #0x0 bl FUN_0200E440 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_0200E7A8 FUN_0200E7A8: ; 0x0200E7A8 push {r3, lr} add r1, r0, #0x0 ldr r0, [r1, #0x28] cmp r0, #0x0 bne _0200E7CE ldrh r2, [r1, #0x24] ldr r0, _0200E7D0 ; =0x00007FFF cmp r2, r0 beq _0200E7BE cmp r2, #0x0 bne _0200E7CE _0200E7BE: ldr r0, [r1, #0x2c] cmp r0, #0x0 bne _0200E7CE mov r2, #0x1 ldr r0, _0200E7D4 ; =FUN_0200E794 lsl r2, r2, #0xa bl FUN_0200CA98 _0200E7CE: pop {r3, pc} .balign 4 _0200E7D0: .word 0x00007FFF _0200E7D4: .word FUN_0200E794 thumb_func_start FUN_0200E7D8 FUN_0200E7D8: ; 0x0200E7D8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x28] cmp r0, #0x1 bne _0200E800 ldrh r1, [r4, #0x24] ldr r0, _0200E804 ; =0x00007FFF cmp r1, r0 beq _0200E7EE cmp r1, #0x0 bne _0200E800 _0200E7EE: ldr r0, [r4, #0x2c] cmp r0, #0x0 bne _0200E800 ldr r0, [r4, #0x10] bl FUN_0200E3A0 ldr r0, [r4, #0x10] bl FUN_0200E388 _0200E800: pop {r4, pc} nop _0200E804: .word 0x00007FFF thumb_func_start FUN_0200E808 FUN_0200E808: ; 0x0200E808 push {r4, lr} add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _0200E812: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0200E812 add r0, r4, #0x0 add r0, #0x14 mov r1, #0x0 mov r2, #0x30 blx Call_FillMemWithValue add r0, r4, #0x0 add r0, #0x44 mov r1, #0x0 mov r2, #0x30 blx Call_FillMemWithValue add r2, r4, #0x0 add r2, #0x74 mov r1, #0x18 mov r0, #0x0 _0200E83A: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0200E83A add r4, #0x8c add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xc0 blx Call_FillMemWithValue pop {r4, pc} thumb_func_start FUN_0200E850 FUN_0200E850: ; 0x0200E850 push {r3, lr} ldr r1, [r0, #0xc] cmp r1, #0x0 bne _0200E866 mov r1, #0x1 str r1, [r0, #0x28] str r1, [r0, #0x2c] bl FUN_0200F20C mov r0, #0x0 pop {r3, pc} _0200E866: bl FUN_0200F2AC pop {r3, pc} thumb_func_start FUN_0200E86C FUN_0200E86C: ; 0x0200E86C push {r3, lr} ldr r1, [r0, #0xc] cmp r1, #0x0 bne _0200E884 mov r1, #0x0 str r1, [r0, #0x28] mov r2, #0x1 str r2, [r0, #0x2c] bl FUN_0200F20C mov r0, #0x0 pop {r3, pc} _0200E884: bl FUN_0200F2AC pop {r3, pc} .balign 4 thumb_func_start FUN_0200E88C FUN_0200E88C: ; 0x0200E88C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E8B4 ldr r1, _0200E8BC ; =0x020ECF9F ldr r0, _0200E8C0 ; =0x02105AF8 str r1, [r0, #0x30] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E8C4 ; =0x02105B28 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E8B4: bl FUN_02010F70 pop {r4, pc} nop _0200E8BC: .word 0x020ECF9F _0200E8C0: .word 0x02105AF8 _0200E8C4: .word 0x02105B28 thumb_func_start FUN_0200E8C8 FUN_0200E8C8: ; 0x0200E8C8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E8EE ldr r1, _0200E8F4 ; =0x020ECF9C ldr r0, _0200E8F8 ; =0x02105AF8 str r1, [r0, #0x40] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E8FC ; =0x02105B38 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E8EE: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200E8F4: .word 0x020ECF9C _0200E8F8: .word 0x02105AF8 _0200E8FC: .word 0x02105B38 thumb_func_start FUN_0200E900 FUN_0200E900: ; 0x0200E900 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E928 ldr r1, _0200E930 ; =0x020ECFA5 ldr r0, _0200E934 ; =0x02105AF8 str r1, [r0, #0x48] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E938 ; =0x02105B40 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E928: bl FUN_02010F70 pop {r4, pc} nop _0200E930: .word 0x020ECFA5 _0200E934: .word 0x02105AF8 _0200E938: .word 0x02105B40 thumb_func_start FUN_0200E93C FUN_0200E93C: ; 0x0200E93C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E962 ldr r1, _0200E968 ; =0x020ECFA2 ldr r0, _0200E96C ; =0x02105AF8 str r1, [r0, #0x38] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E970 ; =0x02105B30 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E962: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200E968: .word 0x020ECFA2 _0200E96C: .word 0x02105AF8 _0200E970: .word 0x02105B30 thumb_func_start FUN_0200E974 FUN_0200E974: ; 0x0200E974 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E996 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E99C ; =0x020ED0E8 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E996: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200E99C: .word 0x020ED0E8 thumb_func_start FUN_0200E9A0 FUN_0200E9A0: ; 0x0200E9A0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E9C0 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E9C8 ; =0x020ED154 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E9C0: bl FUN_0200FD1C pop {r4, pc} nop _0200E9C8: .word 0x020ED154 thumb_func_start FUN_0200E9CC FUN_0200E9CC: ; 0x0200E9CC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E9F4 ldr r1, _0200E9FC ; =0x020ECFC0 ldr r0, _0200EA00 ; =0x02105AF8 str r1, [r0, #0x20] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA04 ; =0x02105B18 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E9F4: bl FUN_02010F70 pop {r4, pc} nop _0200E9FC: .word 0x020ECFC0 _0200EA00: .word 0x02105AF8 _0200EA04: .word 0x02105B18 thumb_func_start FUN_0200EA08 FUN_0200EA08: ; 0x0200EA08 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EA2E ldr r1, _0200EA34 ; =0x020ECFC6 ldr r0, _0200EA38 ; =0x02105AF8 str r1, [r0, #0x28] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA3C ; =0x02105B20 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EA2E: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EA34: .word 0x020ECFC6 _0200EA38: .word 0x02105AF8 _0200EA3C: .word 0x02105B20 thumb_func_start FUN_0200EA40 FUN_0200EA40: ; 0x0200EA40 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EA68 ldr r1, _0200EA70 ; =0x020ECFA8 ldr r0, _0200EA74 ; =0x02105AF8 str r1, [r0, #0x10] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA78 ; =0x02105B08 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EA68: bl FUN_02010F70 pop {r4, pc} nop _0200EA70: .word 0x020ECFA8 _0200EA74: .word 0x02105AF8 _0200EA78: .word 0x02105B08 thumb_func_start FUN_0200EA7C FUN_0200EA7C: ; 0x0200EA7C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EAA2 ldr r1, _0200EAA8 ; =0x020ECFB4 ldr r0, _0200EAAC ; =0x02105AF8 str r1, [r0, #0x18] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EAB0 ; =0x02105B10 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EAA2: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EAA8: .word 0x020ECFB4 _0200EAAC: .word 0x02105AF8 _0200EAB0: .word 0x02105B10 thumb_func_start FUN_0200EAB4 FUN_0200EAB4: ; 0x0200EAB4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EAD6 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EADC ; =0x020ED1C0 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EAD6: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200EADC: .word 0x020ED1C0 thumb_func_start FUN_0200EAE0 FUN_0200EAE0: ; 0x0200EAE0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB00 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB08 ; =0x020ED1E4 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EB00: bl FUN_0200FD1C pop {r4, pc} nop _0200EB08: .word 0x020ED1E4 thumb_func_start FUN_0200EB0C FUN_0200EB0C: ; 0x0200EB0C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB30 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB38 ; =0x020ED208 ldr r2, _0200EB3C ; =0x020ED22C add r0, r4, #0x0 bl FUN_0200FD6C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EB30: bl FUN_0200FDC4 pop {r4, pc} nop _0200EB38: .word 0x020ED208 _0200EB3C: .word 0x020ED22C thumb_func_start FUN_0200EB40 FUN_0200EB40: ; 0x0200EB40 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB62 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB68 ; =0x020ED250 ldr r2, _0200EB6C ; =0x020ED274 add r0, r4, #0x0 bl FUN_0200FD6C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EB62: bl FUN_0200FDC4 pop {r4, pc} .balign 4 _0200EB68: .word 0x020ED250 _0200EB6C: .word 0x020ED274 thumb_func_start FUN_0200EB70 FUN_0200EB70: ; 0x0200EB70 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB92 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB98 ; =0x020ED090 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EB92: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EB98: .word 0x020ED090 thumb_func_start FUN_0200EB9C FUN_0200EB9C: ; 0x0200EB9C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EBBC ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EBC4 ; =0x020ED040 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EBBC: bl FUN_0200FF50 pop {r4, pc} nop _0200EBC4: .word 0x020ED040 thumb_func_start FUN_0200EBC8 FUN_0200EBC8: ; 0x0200EBC8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EBEA ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EBF0 ; =0x020ED050 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EBEA: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EBF0: .word 0x020ED050 thumb_func_start FUN_0200EBF4 FUN_0200EBF4: ; 0x0200EBF4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC14 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC1C ; =0x020ED060 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EC14: bl FUN_0200FF50 pop {r4, pc} nop _0200EC1C: .word 0x020ED060 thumb_func_start FUN_0200EC20 FUN_0200EC20: ; 0x0200EC20 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC42 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC48 ; =0x020ECFE0 add r0, r4, #0x0 bl FUN_020101EC mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EC42: bl FUN_02010224 pop {r4, pc} .balign 4 _0200EC48: .word 0x020ECFE0 thumb_func_start FUN_0200EC4C FUN_0200EC4C: ; 0x0200EC4C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC6C ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC74 ; =0x020ECFEC add r0, r4, #0x0 bl FUN_020101EC mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EC6C: bl FUN_02010224 pop {r4, pc} nop _0200EC74: .word 0x020ECFEC thumb_func_start FUN_0200EC78 FUN_0200EC78: ; 0x0200EC78 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC9A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECA0 ; =0x020ED0A0 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EC9A: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200ECA0: .word 0x020ED0A0 thumb_func_start FUN_0200ECA4 FUN_0200ECA4: ; 0x0200ECA4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ECC4 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECCC ; =0x020ED0C4 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ECC4: bl FUN_0200FD1C pop {r4, pc} nop _0200ECCC: .word 0x020ED0C4 thumb_func_start FUN_0200ECD0 FUN_0200ECD0: ; 0x0200ECD0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ECF2 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECF8 ; =0x020ED10C add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200ECF2: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200ECF8: .word 0x020ED10C thumb_func_start FUN_0200ECFC FUN_0200ECFC: ; 0x0200ECFC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED1C ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED24 ; =0x020ED178 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ED1C: bl FUN_0200FD1C pop {r4, pc} nop _0200ED24: .word 0x020ED178 thumb_func_start FUN_0200ED28 FUN_0200ED28: ; 0x0200ED28 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED4A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED50 ; =0x020ED004 add r0, r4, #0x0 bl FUN_020103F0 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200ED4A: bl FUN_02010428 pop {r4, pc} .balign 4 _0200ED50: .word 0x020ED004 thumb_func_start FUN_0200ED54 FUN_0200ED54: ; 0x0200ED54 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED74 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED7C ; =0x020ED010 add r0, r4, #0x0 bl FUN_020103F0 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ED74: bl FUN_02010428 pop {r4, pc} nop _0200ED7C: .word 0x020ED010 thumb_func_start FUN_0200ED80 FUN_0200ED80: ; 0x0200ED80 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EDC4 ldr r0, _0200EDCC ; =0x020ED298 mov r1, #0x4 str r0, [sp, #0x0] ldr r0, _0200EDD0 ; =0x020ED2D8 str r0, [sp, #0x4] add r0, sp, #0x0 strb r1, [r0, #0x8] mov r1, #0x0 strb r1, [r0, #0x9] mov r1, #0x3f strb r1, [r0, #0xa] mov r1, #0x20 strb r1, [r0, #0xb] mov r1, #0x1 strb r1, [r0, #0xc] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010688 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0x10 str r0, [r4, #0x2c] pop {r4, pc} _0200EDC4: bl FUN_020106C0 add sp, #0x10 pop {r4, pc} .balign 4 _0200EDCC: .word 0x020ED298 _0200EDD0: .word 0x020ED2D8 thumb_func_start FUN_0200EDD4 FUN_0200EDD4: ; 0x0200EDD4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE14 ldr r0, _0200EE1C ; =0x020ED318 mov r1, #0x4 str r0, [sp, #0x0] ldr r0, _0200EE20 ; =0x020ED358 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x0 strb r1, [r0, #0x8] strb r2, [r0, #0x9] mov r1, #0x3f strb r1, [r0, #0xa] mov r1, #0x20 strb r1, [r0, #0xb] strb r2, [r0, #0xc] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010688 mov r0, #0x0 str r0, [r4, #0x28] add sp, #0x10 str r0, [r4, #0x2c] pop {r4, pc} _0200EE14: bl FUN_020106C0 add sp, #0x10 pop {r4, pc} .balign 4 _0200EE1C: .word 0x020ED318 _0200EE20: .word 0x020ED358 thumb_func_start FUN_0200EE24 FUN_0200EE24: ; 0x0200EE24 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE4C ldr r1, _0200EE54 ; =0x020ECFD5 ldr r0, _0200EE58 ; =0x02105AF8 str r1, [r0, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EE5C ; =0x02105AF8 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EE4C: bl FUN_02010F70 pop {r4, pc} nop _0200EE54: .word 0x020ECFD5 _0200EE58: .word 0x02105AF8 _0200EE5C: .word 0x02105AF8 thumb_func_start FUN_0200EE60 FUN_0200EE60: ; 0x0200EE60 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE86 ldr r1, _0200EE8C ; =0x020ECFCC ldr r0, _0200EE90 ; =0x02105AF8 str r1, [r0, #0x8] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EE94 ; =0x02105B00 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EE86: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EE8C: .word 0x020ECFCC _0200EE90: .word 0x02105AF8 _0200EE94: .word 0x02105B00 thumb_func_start FUN_0200EE98 FUN_0200EE98: ; 0x0200EE98 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EECA ldr r3, _0200EED4 ; =0x020ECFF8 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010948 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EECA: bl FUN_02010988 add sp, #0xc pop {r3-r4, pc} nop _0200EED4: .word 0x020ECFF8 thumb_func_start FUN_0200EED8 FUN_0200EED8: ; 0x0200EED8 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF08 ldr r3, _0200EF10 ; =0x020ED034 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010948 mov r0, #0x0 str r0, [r4, #0x28] add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF08: bl FUN_02010988 add sp, #0xc pop {r3-r4, pc} .balign 4 _0200EF10: .word 0x020ED034 thumb_func_start FUN_0200EF14 FUN_0200EF14: ; 0x0200EF14 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF46 ldr r3, _0200EF50 ; =0x020ED01C add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010C7C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF46: bl FUN_02010CBC add sp, #0xc pop {r3-r4, pc} nop _0200EF50: .word 0x020ED01C thumb_func_start FUN_0200EF54 FUN_0200EF54: ; 0x0200EF54 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF84 ldr r3, _0200EF8C ; =0x020ED028 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010C7C mov r0, #0x0 str r0, [r4, #0x28] add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF84: bl FUN_02010CBC add sp, #0xc pop {r3-r4, pc} .balign 4 _0200EF8C: .word 0x020ED028 thumb_func_start FUN_0200EF90 FUN_0200EF90: ; 0x0200EF90 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EFB2 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EFB8 ; =0x020ED080 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EFB2: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EFB8: .word 0x020ED080 thumb_func_start FUN_0200EFBC FUN_0200EFBC: ; 0x0200EFBC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EFDC ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EFE4 ; =0x020ED070 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EFDC: bl FUN_0200FF50 pop {r4, pc} nop _0200EFE4: .word 0x020ED070 thumb_func_start FUN_0200EFE8 FUN_0200EFE8: ; 0x0200EFE8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F00A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F010 ; =0x020ED130 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200F00A: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200F010: .word 0x020ED130 thumb_func_start FUN_0200F014 FUN_0200F014: ; 0x0200F014 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F034 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F03C ; =0x020ED19C add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200F034: bl FUN_0200FD1C pop {r4, pc} nop _0200F03C: .word 0x020ED19C thumb_func_start FUN_0200F040 FUN_0200F040: ; 0x0200F040 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F068 ldr r1, _0200F070 ; =0x020ECFAE ldr r0, _0200F074 ; =0x02105AF8 str r1, [r0, #0x74] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F078 ; =0x02105B48 add r0, r4, #0x0 bl FUN_020111AC mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200F068: bl FUN_02011214 pop {r4, pc} nop _0200F070: .word 0x020ECFAE _0200F074: .word 0x02105AF8 _0200F078: .word 0x02105B48 thumb_func_start FUN_0200F07C FUN_0200F07C: ; 0x0200F07C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F0A2 ldr r1, _0200F0A8 ; =0x020ECFBA ldr r0, _0200F0AC ; =0x02105B78 str r1, [r0, #0x24] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F0B0 ; =0x02105B78 add r0, r4, #0x0 bl FUN_020111AC mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200F0A2: bl FUN_02011214 pop {r4, pc} .balign 4 _0200F0A8: .word 0x020ECFBA _0200F0AC: .word 0x02105B78 _0200F0B0: .word 0x02105B78 thumb_func_start FUN_0200F0B4 FUN_0200F0B4: ; 0x0200F0B4 asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 ldr r2, _0200F0C8 ; =0x020FFA38 add r1, r1, #0x1 lsl r1, r1, #0x1 ldr r3, _0200F0CC ; =FX_Div ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] bx r3 .balign 4 _0200F0C8: .word 0x020FFA38 _0200F0CC: .word FX_Div thumb_func_start FUN_0200F0D0 FUN_0200F0D0: ; 0x0200F0D0 push {r4, lr} add r4, r1, #0x0 bl FUN_0200F0B4 lsl r2, r4, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r0, r1, #0xc pop {r4, pc} .balign 4 thumb_func_start FUN_0200F0F8 FUN_0200F0F8: ; 0x0200F0F8 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_0200F0B4 cmp r6, r7 bge _0200F142 lsl r1, r6, #0x2 str r0, [sp, #0x0] asr r0, r0, #0x1f lsl r4, r6, #0xc add r5, r5, r1 str r0, [sp, #0x4] _0200F116: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] asr r3, r4, #0x1f add r2, r4, #0x0 blx _ll_mul mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0200F148 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r0, r0, #0xc stmia r5!, {r0} mov r0, #0x1 lsl r0, r0, #0xc add r6, r6, #0x1 add r4, r4, r0 cmp r6, r7 blt _0200F116 _0200F142: add sp, #0x8 pop {r3-r7, pc} nop _0200F148: .word 0x00000000 thumb_func_start FUN_0200F14C FUN_0200F14C: ; 0x0200F14C push {r4, lr} add r4, r1, #0x0 bl FUN_0200F0B4 add r1, r0, #0x0 lsr r0, r4, #0x1f add r0, r4, r0 asr r0, r0, #0x1 lsl r0, r0, #0xc blx FX_Div pop {r4, pc} thumb_func_start FUN_0200F164 FUN_0200F164: ; 0x0200F164 ldr r3, _0200F170 ; =_s32_div_f sub r0, r1, r0 lsl r0, r0, #0x7 add r1, r2, #0x0 bx r3 nop _0200F170: .word _s32_div_f thumb_func_start FUN_0200F174 FUN_0200F174: ; 0x0200F174 add r0, r0, r1 bpl _0200F17A mov r0, #0x0 _0200F17A: cmp r0, #0xff ble _0200F180 mov r0, #0xff _0200F180: bx lr .balign 4 thumb_func_start FUN_0200F184 FUN_0200F184: ; 0x0200F184 ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] add r2, r3, r2 str r2, [r0, #0x0] ldr r3, [r0, #0x4] ldr r2, [r1, #0x4] add r2, r3, r2 str r2, [r0, #0x4] ldr r3, [r0, #0x8] ldr r2, [r1, #0x8] add r2, r3, r2 str r2, [r0, #0x8] ldr r2, [r0, #0xc] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_0200F1A8 FUN_0200F1A8: ; 0x0200F1A8 push {r3-r7, lr} add r7, r1, #0x0 ldr r1, [sp, #0x1c] add r5, r3, #0x0 str r1, [sp, #0x1c] ldr r1, [r5, #0x0] ldr r4, [sp, #0x18] lsl r1, r1, #0x7 str r1, [r0, #0x0] ldr r1, [r5, #0x4] add r6, r2, #0x0 lsl r1, r1, #0x7 str r1, [r0, #0x4] ldr r1, [r5, #0x8] add r2, r4, #0x0 lsl r1, r1, #0x7 str r1, [r0, #0x8] ldr r1, [r5, #0xc] lsl r1, r1, #0x7 str r1, [r0, #0xc] ldmia r2!, {r0-r1} stmia r7!, {r0-r1} ldmia r2!, {r0-r1} stmia r7!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x0] ldr r0, [r5, #0x4] ldr r1, [r4, #0x4] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x4] ldr r0, [r5, #0x8] ldr r1, [r4, #0x8] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x8] ldr r0, [r5, #0xc] ldr r1, [r4, #0xc] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0xc] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F20C FUN_0200F20C: ; 0x0200F20C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x1c bl FUN_02016998 str r0, [r5, #0x14] mov r2, #0x1c mov r1, #0x0 _0200F220: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _0200F220 ldr r4, [r5, #0x14] cmp r6, #0x0 ldrh r1, [r5, #0x24] ldr r0, _0200F2A8 ; =0x00007FFF bne _0200F254 cmp r1, r0 bne _0200F23C mov r7, #0x10 mov r6, #0x0 b _0200F274 _0200F23C: cmp r1, #0x0 bne _0200F248 mov r7, #0xf mvn r7, r7 mov r6, #0x0 b _0200F274 _0200F248: mov r7, #0xf mvn r7, r7 mov r6, #0x0 bl ErrorHandling b _0200F274 _0200F254: cmp r1, r0 bne _0200F25E mov r7, #0x0 mov r6, #0x10 b _0200F274 _0200F25E: cmp r1, #0x0 bne _0200F26A mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 b _0200F274 _0200F26A: mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 bl ErrorHandling _0200F274: ldr r0, [r5, #0x10] add r1, r7, #0x0 bl FUN_0200E440 ldr r0, [r5, #0x4] add r1, r6, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0x8] str r0, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] lsl r0, r7, #0x7 str r0, [r4, #0xc] lsl r0, r6, #0x7 str r0, [r4, #0x10] ldr r2, [r5, #0x4] add r0, r7, #0x0 bl FUN_0200F164 str r0, [r4, #0x14] ldr r0, [r5, #0x10] str r0, [r4, #0x18] ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] pop {r3-r7, pc} .balign 4 _0200F2A8: .word 0x00007FFF thumb_func_start FUN_0200F2AC FUN_0200F2AC: ; 0x0200F2AC push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0xc] mov r4, #0x0 ldr r0, [r5, #0x14] cmp r1, #0x1 beq _0200F2C4 cmp r1, #0x2 beq _0200F2D4 cmp r1, #0x3 beq _0200F2E6 b _0200F2E8 _0200F2C4: bl FUN_0200F2EC cmp r0, #0x1 bne _0200F2E8 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200F2E8 _0200F2D4: bl FUN_02016A18 add r0, r4, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r4, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200F2E8 _0200F2E6: mov r4, #0x1 _0200F2E8: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0200F2EC FUN_0200F2EC: ; 0x0200F2EC push {r4, lr} add r1, r0, #0x0 ldr r0, [r1, #0x8] mov r4, #0x0 add r2, r0, #0x1 str r2, [r1, #0x8] ldr r0, [r1, #0x4] cmp r2, r0 blt _0200F32A str r4, [r1, #0x8] ldr r0, [r1, #0x0] sub r0, r0, #0x1 cmp r0, #0x0 ble _0200F314 str r0, [r1, #0x0] ldr r2, [r1, #0xc] ldr r0, [r1, #0x14] add r0, r2, r0 str r0, [r1, #0xc] b _0200F31A _0200F314: ldr r0, [r1, #0x10] mov r4, #0x1 str r0, [r1, #0xc] _0200F31A: ldr r2, [r1, #0xc] ldr r0, [r1, #0x18] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 asr r1, r1, #0x7 bl FUN_0200E440 _0200F32A: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0200F330 FUN_0200F330: ; 0x0200F330 push {r4-r6, lr} add r4, r0, #0x0 bne _0200F33A bl ErrorHandling _0200F33A: ldr r0, _0200F54C ; =0x04000006 ldrh r0, [r0, #0x0] cmp r0, #0xc0 bge _0200F3E0 add r5, r0, #0x1 cmp r5, #0xbf ble _0200F34A sub r5, #0xc0 _0200F34A: ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0200F3FA add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r3, [r4, #0x8] lsl r5, r5, #0x1 mov r4, #0x6 add r1, r0, r5 lsl r4, r4, #0x6 ldrsh r2, [r1, r4] lsl r4, r4, #0x2 ldrsh r1, [r0, r5] ldr r0, [r0, r4] cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F3B4 cmp r3, #0x0 bne _0200F394 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F3E0 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F394: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F3E0 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F3B4: cmp r3, #0x0 bne _0200F3D8 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F3E0 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F3D8: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 bne _0200F3E2 _0200F3E0: b _0200F548 _0200F3E2: mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F3FA: add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200F5D8 add r3, r0, #0x0 lsl r5, r5, #0x1 mov r6, #0x6 add r1, r3, r5 lsl r6, r6, #0x6 ldrsh r2, [r1, r6] lsl r6, r6, #0x2 ldrsh r1, [r3, r5] ldr r3, [r3, r6] ldr r0, [r4, #0x8] cmp r3, #0x0 bne _0200F460 cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F440 ldrh r6, [r0, #0x0] mov r3, #0x2 tst r3, r6 beq _0200F4A4 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] b _0200F4A4 _0200F440: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F4A4 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] b _0200F4A4 _0200F460: cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F486 ldrh r6, [r0, #0x0] mov r3, #0x2 tst r3, r6 beq _0200F4A4 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] b _0200F4A4 _0200F486: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F4A4 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] _0200F4A4: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200F5D8 ldr r3, [r4, #0x8] mov r4, #0x6 add r1, r0, r5 lsl r4, r4, #0x6 ldrsh r2, [r1, r4] lsl r4, r4, #0x2 ldrsh r1, [r0, r5] ldr r0, [r0, r4] cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F506 cmp r3, #0x0 bne _0200F4E6 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F548 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F4E6: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F548 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F506: cmp r3, #0x0 bne _0200F52A ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F548 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F52A: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F548 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] _0200F548: pop {r4-r6, pc} nop _0200F54C: .word 0x04000006 _0200F550: .word 0x04000004 _0200F554: .word 0x04001040 _0200F558: .word 0x04001042 thumb_func_start FUN_0200F55C FUN_0200F55C: ; 0x0200F55C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 beq _0200F572 cmp r4, #0x1 beq _0200F572 cmp r4, #0x2 beq _0200F58C pop {r4-r6, pc} _0200F572: ldr r1, _0200F5B8 ; =0x00000604 add r0, r3, #0x0 bl FUN_02016998 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r5, #0x4] str r6, [r5, #0x8] mov r0, #0x6 ldr r1, [r5, #0x0] lsl r0, r0, #0x8 str r4, [r1, r0] pop {r4-r6, pc} _0200F58C: ldr r1, _0200F5BC ; =0x00000C08 add r0, r3, #0x0 bl FUN_02016998 str r0, [r5, #0x0] mov r0, #0x2 str r0, [r5, #0x4] mov r0, #0x6 mov r3, #0x0 lsl r0, r0, #0x8 str r6, [r5, #0x8] add r4, r3, #0x0 add r1, r0, #0x4 _0200F5A6: ldr r2, [r5, #0x0] add r2, r2, r4 str r3, [r2, r0] add r3, r3, #0x1 add r4, r4, r1 cmp r3, #0x2 blt _0200F5A6 pop {r4-r6, pc} nop _0200F5B8: .word 0x00000604 _0200F5BC: .word 0x00000C08 thumb_func_start FUN_0200F5C0 FUN_0200F5C0: ; 0x0200F5C0 ldr r3, _0200F5C4 ; =FUN_0200F5C8 bx r3 .balign 4 _0200F5C4: .word FUN_0200F5C8 thumb_func_start FUN_0200F5C8 FUN_0200F5C8: ; 0x0200F5C8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0200F5D8 FUN_0200F5D8: ; 0x0200F5D8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] add r4, r1, #0x0 cmp r0, r4 bgt _0200F5E8 bl ErrorHandling _0200F5E8: ldr r0, _0200F5F4 ; =0x00000604 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} nop _0200F5F4: .word 0x00000604 thumb_func_start FUN_0200F5F8 FUN_0200F5F8: ; 0x0200F5F8 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] mov r4, #0x0 cmp r0, #0x0 ble _0200F624 mov r7, #0x3 lsl r7, r7, #0x8 add r6, r7, #0x0 _0200F60C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200F5D8 add r1, r0, r6 add r2, r7, #0x0 blx memcpy ldr r0, [r5, #0x4] add r4, r4, #0x1 cmp r4, r0 blt _0200F60C _0200F624: ldr r0, [sp, #0x0] bl FUN_0200CAB4 pop {r3-r7, pc} thumb_func_start FUN_0200F62C FUN_0200F62C: ; 0x0200F62C push {r4-r5, lr} sub sp, #0xc add r5, r1, #0x0 add r4, r2, #0x0 cmp r0, #0x0 bne _0200F644 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02011634 add sp, #0xc pop {r4-r5, pc} _0200F644: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02011634 mov r2, #0x0 add r0, r5, #0x0 mov r1, #0x3f add r3, r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, r5, #0x0 add r2, r1, #0x0 add r3, r1, #0x0 str r4, [sp, #0x8] bl FUN_02011698 add r0, r5, #0x0 mov r1, #0x20 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_0200F67C FUN_0200F67C: ; 0x0200F67C push {r4-r7, lr} sub sp, #0xc add r7, r2, #0x0 ldr r2, [sp, #0x34] add r6, r0, #0x0 add r5, r3, #0x0 ldr r4, [sp, #0x20] cmp r2, #0x0 bne _0200F6B8 add r0, r1, #0x0 mov r1, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_020114AC add r0, r7, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02011534 str r5, [sp, #0x0] ldr r0, [sp, #0x24] ldr r1, [sp, #0x28] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] str r4, [sp, #0x4] bl FUN_02011574 add sp, #0xc pop {r4-r7, pc} _0200F6B8: mov r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 add r0, r6, #0x0 add r1, r7, #0x0 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 ldr r0, [sp, #0x30] ldr r1, [sp, #0x24] str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, r6, #0x0 str r4, [sp, #0x8] bl FUN_02011698 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200F6E4 FUN_0200F6E4: ; 0x0200F6E4 push {r3, lr} cmp r3, #0x0 bne _0200F6F4 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_02011480 pop {r3, pc} _0200F6F4: bl FUN_02011634 pop {r3, pc} .balign 4 thumb_func_start FUN_0200F6FC FUN_0200F6FC: ; 0x0200F6FC push {r3-r7, lr} add r4, r2, #0x0 mov r2, #0xc3 add r6, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 add r5, r0, #0x0 add r7, r3, #0x0 blx Call_FillMemWithValue cmp r4, #0x1 bne _0200F726 mov r0, #0x6 lsl r0, r0, #0x6 str r7, [r5, r0] mov r0, #0xc2 lsl r0, r0, #0x2 strb r4, [r5, r0] add r0, r0, #0x1 strb r6, [r5, r0] pop {r3-r7, pc} _0200F726: mov r0, #0x6 lsl r0, r0, #0x6 str r7, [r5, r0] mov r0, #0xc1 ldr r1, [sp, #0x18] lsl r0, r0, #0x2 str r1, [r5, r0] add r1, r0, #0x4 strb r4, [r5, r1] add r0, r0, #0x5 strb r6, [r5, r0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F740 FUN_0200F740: ; 0x0200F740 ldr r3, _0200F74C ; =FUN_0200CA98 add r1, r0, #0x0 ldr r0, _0200F750 ; =FUN_0200F780 ldr r2, _0200F754 ; =0x000003FF bx r3 nop _0200F74C: .word FUN_0200CA98 _0200F750: .word FUN_0200F780 _0200F754: .word 0x000003FF thumb_func_start FUN_0200F758 FUN_0200F758: ; 0x0200F758 push {r3, lr} ldr r3, _0200F768 ; =0x00000309 str r2, [sp, #0x0] ldrb r3, [r1, r3] ldr r2, _0200F76C ; =FUN_0200F7AC bl FUN_0200E6CC pop {r3, pc} .balign 4 _0200F768: .word 0x00000309 _0200F76C: .word FUN_0200F7AC thumb_func_start FUN_0200F770 FUN_0200F770: ; 0x0200F770 ldr r3, _0200F778 ; =0x00000309 ldrb r1, [r1, r3] ldr r3, _0200F77C ; =FUN_0200E6F8 bx r3 .balign 4 _0200F778: .word 0x00000309 _0200F77C: .word FUN_0200E6F8 thumb_func_start FUN_0200F780 FUN_0200F780: ; 0x0200F780 push {r3-r7, lr} mov r7, #0xc0 add r6, r7, #0x0 str r0, [sp, #0x0] add r5, r1, #0x0 mov r4, #0x0 add r6, #0xc4 _0200F78E: add r0, r5, #0x0 add r0, #0xc0 add r1, r5, #0x0 add r2, r7, #0x0 blx memcpy add r4, r4, #0x1 add r5, r5, r6 cmp r4, #0x2 blt _0200F78E ldr r0, [sp, #0x0] bl FUN_0200CAB4 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F7AC FUN_0200F7AC: ; 0x0200F7AC push {r3-r5, lr} add r4, r0, #0x0 bne _0200F7B6 bl ErrorHandling _0200F7B6: ldr r0, _0200FAC0 ; =0x04000006 ldrh r0, [r0, #0x0] cmp r0, #0xc0 bge _0200F838 add r0, r0, #0x1 cmp r0, #0xbf ble _0200F7C6 sub r0, #0xc0 _0200F7C6: mov r2, #0xc2 lsl r2, r2, #0x2 ldrb r1, [r4, r2] cmp r1, #0x1 beq _0200F7D2 b _0200F96C _0200F7D2: add r0, r4, r0 add r0, #0xc0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0200F8A2 add r0, r2, #0x1 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F802 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F81C add r0, #0x46 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] b _0200F81C _0200F802: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F81C ldr r1, _0200FAC8 ; =0x0400104A mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] _0200F81C: ldr r0, _0200FACC ; =0x00000309 ldrb r1, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 bne _0200F868 cmp r1, #0x0 bne _0200F84C ldr r2, _0200FAC4 ; =0x04000004 mov r0, #0x2 ldrh r1, [r2, #0x0] tst r0, r1 bne _0200F83A _0200F838: b _0200FCB0 _0200F83A: add r2, #0x44 ldrh r1, [r2, #0x0] mov r0, #0x3f bic r1, r0 mov r0, #0x20 orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F84C: ldr r0, _0200FAC4 ; =0x04000004 ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r1, _0200FAD0 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200F868: cmp r1, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F888 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FAD4 ; =0xFFFFC0FF and r3, r1 lsl r1, r2, #0xc orr r3, r1 orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F888: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r2, _0200FAD0 ; =0x04001048 ldr r0, _0200FAD4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 lsr r0, r2, #0xd orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F8A2: add r0, r2, #0x1 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F8C6 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F8DE add r0, #0x46 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x20 orr r2, r1 orr r1, r2 strh r1, [r0, #0x0] b _0200F8DE _0200F8C6: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F8DE ldr r1, _0200FAC8 ; =0x0400104A mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] _0200F8DE: ldr r0, _0200FACC ; =0x00000309 ldrb r1, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F92A cmp r1, #0x0 bne _0200F90E ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F90E: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r1, _0200FAD0 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200F92A: cmp r1, #0x0 bne _0200F94C ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FAD4 ; =0xFFFFC0FF and r3, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r3, r1 lsl r1, r2, #0xc orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F94C: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 bne _0200F956 _0200F954: b _0200FCB0 _0200F956: ldr r2, _0200FAD0 ; =0x04001048 ldr r0, _0200FAD4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 mov r0, #0x3f lsl r0, r0, #0x8 orr r1, r0 lsr r0, r2, #0xd orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F96C: add r1, r4, r0 add r1, #0xc0 ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _0200FA38 add r1, r2, #0x1 ldrb r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200F99C ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200F9B6 add r1, #0x46 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r1, #0x0] b _0200F9B6 _0200F99C: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F9B6 ldr r2, _0200FAC8 ; =0x0400104A mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x3f orr r3, r1 mov r1, #0x20 orr r1, r3 strh r1, [r2, #0x0] _0200F9B6: ldr r1, _0200FACC ; =0x00000309 ldrb r2, [r4, r1] mov r1, #0x6 lsl r1, r1, #0x6 ldr r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200F9FE cmp r2, #0x0 bne _0200F9E4 ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FA0A add r1, #0x44 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r1, #0x0] b _0200FB16 _0200F9E4: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FA0A ldr r2, _0200FAD0 ; =0x04001048 mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x20 orr r3, r1 orr r1, r3 strh r1, [r2, #0x0] b _0200FB16 _0200F9FE: cmp r2, #0x0 bne _0200FA1E ldrh r2, [r1, #0x0] mov r3, #0x2 tst r2, r3 bne _0200FA0C _0200FA0A: b _0200FB16 _0200FA0C: add r1, #0x44 ldrh r5, [r1, #0x0] ldr r2, _0200FAD4 ; =0xFFFFC0FF and r5, r2 lsl r2, r3, #0xc orr r5, r2 orr r2, r5 strh r2, [r1, #0x0] b _0200FB16 _0200FA1E: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r3, _0200FAD0 ; =0x04001048 ldr r1, _0200FAD4 ; =0xFFFFC0FF ldrh r2, [r3, #0x0] and r2, r1 lsr r1, r3, #0xd orr r2, r1 orr r1, r2 strh r1, [r3, #0x0] b _0200FB16 _0200FA38: add r1, r2, #0x1 ldrb r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200FA5C ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FA74 add r1, #0x46 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r1, #0x0] b _0200FA74 _0200FA5C: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FA74 ldr r2, _0200FAC8 ; =0x0400104A mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x20 orr r3, r1 orr r1, r3 strh r1, [r2, #0x0] _0200FA74: ldr r1, _0200FACC ; =0x00000309 ldrb r2, [r4, r1] mov r1, #0x6 lsl r1, r1, #0x6 ldr r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200FAD8 cmp r2, #0x0 bne _0200FAA4 ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FB16 add r1, #0x44 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r1, #0x0] b _0200FB16 _0200FAA4: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r2, _0200FAD0 ; =0x04001048 mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x3f orr r3, r1 mov r1, #0x20 orr r1, r3 strh r1, [r2, #0x0] b _0200FB16 .balign 4 _0200FAC0: .word 0x04000006 _0200FAC4: .word 0x04000004 _0200FAC8: .word 0x0400104A _0200FACC: .word 0x00000309 _0200FAD0: .word 0x04001048 _0200FAD4: .word 0xFFFFC0FF _0200FAD8: cmp r2, #0x0 bne _0200FAFA ldrh r2, [r1, #0x0] mov r3, #0x2 tst r2, r3 beq _0200FB16 add r1, #0x44 ldrh r5, [r1, #0x0] ldr r2, _0200FCB4 ; =0xFFFFC0FF and r5, r2 mov r2, #0x3f lsl r2, r2, #0x8 orr r5, r2 lsl r2, r3, #0xc orr r2, r5 strh r2, [r1, #0x0] b _0200FB16 _0200FAFA: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r3, _0200FCB8 ; =0x04001048 ldr r1, _0200FCB4 ; =0xFFFFC0FF ldrh r2, [r3, #0x0] and r2, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r2, r1 lsr r1, r3, #0xd orr r1, r2 strh r1, [r3, #0x0] _0200FB16: mov r1, #0x61 lsl r1, r1, #0x2 add r1, r4, r1 add r0, r1, r0 add r0, #0xc0 ldrb r0, [r0, #0x0] cmp r0, #0x0 ldr r0, _0200FCBC ; =0x00000309 bne _0200FBEC ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FB4C ldrh r3, [r0, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FB66 add r0, #0x46 ldrh r3, [r0, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r0, #0x0] b _0200FB66 _0200FB4C: ldrh r2, [r0, #0x0] mov r0, #0x2 tst r0, r2 beq _0200FB66 ldr r2, _0200FCC4 ; =0x0400104A mov r0, #0x3f ldrh r3, [r2, #0x0] bic r3, r0 mov r0, #0x3f orr r3, r0 mov r0, #0x20 orr r0, r3 strh r0, [r2, #0x0] _0200FB66: ldr r0, _0200FCBC ; =0x00000309 ldrb r2, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r1, r0] cmp r0, #0x0 bne _0200FBB2 cmp r2, #0x0 bne _0200FB94 ldr r2, _0200FCC0 ; =0x04000004 mov r0, #0x2 ldrh r1, [r2, #0x0] tst r0, r1 beq _0200FB9E add r2, #0x44 ldrh r1, [r2, #0x0] mov r0, #0x3f bic r1, r0 mov r0, #0x20 orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200FB94: ldr r0, _0200FCC0 ; =0x04000004 ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 bne _0200FBA0 _0200FB9E: b _0200FCB0 _0200FBA0: ldr r1, _0200FCB8 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200FBB2: cmp r2, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FBD2 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FCB4 ; =0xFFFFC0FF and r3, r1 lsl r1, r2, #0xc orr r3, r1 orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FBD2: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r2, _0200FCB8 ; =0x04001048 ldr r0, _0200FCB4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 lsr r0, r2, #0xd orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200FBEC: ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FC0E ldrh r3, [r0, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FC26 add r0, #0x46 ldrh r3, [r0, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r0, #0x0] b _0200FC26 _0200FC0E: ldrh r2, [r0, #0x0] mov r0, #0x2 tst r0, r2 beq _0200FC26 ldr r2, _0200FCC4 ; =0x0400104A mov r0, #0x3f ldrh r3, [r2, #0x0] bic r3, r0 mov r0, #0x20 orr r3, r0 orr r0, r3 strh r0, [r2, #0x0] _0200FC26: ldr r0, _0200FCBC ; =0x00000309 ldrb r2, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r1, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FC72 cmp r2, #0x0 bne _0200FC56 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FC56: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r1, _0200FCB8 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200FC72: cmp r2, #0x0 bne _0200FC94 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FCB4 ; =0xFFFFC0FF and r3, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r3, r1 lsl r1, r2, #0xc orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FC94: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r2, _0200FCB8 ; =0x04001048 ldr r0, _0200FCB4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 mov r0, #0x3f lsl r0, r0, #0x8 orr r1, r0 lsr r0, r2, #0xd orr r0, r1 strh r0, [r2, #0x0] _0200FCB0: pop {r3-r5, pc} nop _0200FCB4: .word 0xFFFFC0FF _0200FCB8: .word 0x04001048 _0200FCBC: .word 0x00000309 _0200FCC0: .word 0x04000004 _0200FCC4: .word 0x0400104A thumb_func_start FUN_0200FCC8 FUN_0200FCC8: ; 0x0200FCC8 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x4c bl FUN_02016998 str r0, [r5, #0x14] add r4, r0, #0x0 ldr r0, [r5, #0x10] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r4, #0x0 bl FUN_0200FE20 add r6, #0x20 ldrb r0, [r6, #0x0] cmp r0, #0x0 ldr r0, [r5, #0x18] bne _0200FD06 ldr r2, [r4, #0x30] ldr r3, [r4, #0x44] mov r1, #0x1 bl FUN_0200F6E4 b _0200FD10 _0200FD06: ldr r2, [r4, #0x30] ldr r3, [r4, #0x44] mov r1, #0x2 bl FUN_0200F6E4 _0200FD10: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FD1C FUN_0200FD1C: ; 0x0200FD1C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FD34 cmp r0, #0x2 beq _0200FD50 cmp r0, #0x3 beq _0200FD64 b _0200FD66 _0200FD34: add r0, r4, #0x0 bl FUN_0200FE90 cmp r0, #0x1 bne _0200FD66 ldr r0, [r4, #0x44] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FD66 _0200FD50: add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FD66 _0200FD64: mov r6, #0x1 _0200FD66: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FD6C FUN_0200FD6C: ; 0x0200FD6C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x98 add r7, r2, #0x0 bl FUN_02016998 str r0, [r5, #0x14] add r4, r0, #0x0 ldr r0, [r5, #0x10] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r4, #0x0 bl FUN_0200FE20 ldr r0, [r5, #0x10] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] add r0, r4, #0x0 ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, #0x4c bl FUN_0200FE20 ldr r0, [r5, #0x18] ldr r2, [r5, #0x10] ldr r3, [r4, #0x44] mov r1, #0x3 bl FUN_0200F6E4 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FDC4 FUN_0200FDC4: ; 0x0200FDC4 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FDDC cmp r0, #0x2 beq _0200FE04 cmp r0, #0x3 beq _0200FE18 b _0200FE1A _0200FDDC: add r0, r4, #0x0 bl FUN_0200FE90 add r7, r0, #0x0 add r0, r4, #0x0 add r0, #0x4c bl FUN_0200FE90 add r0, r7, r0 cmp r0, #0x2 bne _0200FE1A ldr r0, [r4, #0x44] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FE1A _0200FE04: add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FE1A _0200FE18: mov r6, #0x1 _0200FE1A: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FE20 FUN_0200FE20: ; 0x0200FE20 push {r3-r7, lr} sub sp, #0x18 add r4, r1, #0x0 add r1, #0x10 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 str r1, [sp, #0x0] add r1, r5, #0x0 add r2, r5, #0x0 add r1, #0x20 add r2, #0x10 add r3, r4, #0x0 str r6, [sp, #0x4] bl FUN_0200F1A8 ldr r1, [sp, #0x30] add r0, r4, #0x0 add r2, r4, #0x0 str r1, [r5, #0x30] add r0, #0x20 ldrb r0, [r0, #0x0] add r2, #0x23 str r0, [r5, #0x34] str r6, [r5, #0x38] str r7, [r5, #0x3c] mov r0, #0x0 str r0, [r5, #0x40] ldr r0, [sp, #0x34] str r0, [r5, #0x48] ldrb r2, [r2, #0x0] str r2, [r5, #0x44] str r1, [sp, #0x0] ldr r1, [r4, #0x0] add r2, r4, #0x0 str r1, [sp, #0x4] ldr r1, [r4, #0x4] add r2, #0x22 str r1, [sp, #0x8] ldr r1, [r4, #0x8] str r1, [sp, #0xc] ldr r1, [r4, #0xc] str r1, [sp, #0x10] ldr r1, [r5, #0x44] str r1, [sp, #0x14] add r1, r4, #0x0 add r1, #0x21 add r4, #0x20 ldrb r1, [r1, #0x0] ldrb r2, [r2, #0x0] ldrb r3, [r4, #0x0] bl FUN_0200F67C add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FE90 FUN_0200FE90: ; 0x0200FE90 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0x40] add r2, r1, #0x1 str r2, [r4, #0x40] ldr r1, [r4, #0x3c] cmp r2, r1 blt _0200FF10 mov r1, #0x0 str r1, [r4, #0x40] ldr r1, [r4, #0x38] sub r1, r1, #0x1 cmp r1, #0x0 ble _0200FEBA str r1, [r4, #0x38] add r1, r4, #0x0 add r1, #0x10 bl FUN_0200F184 b _0200FED8 _0200FEBA: ldr r0, [r4, #0x2c] str r0, [sp, #0x0] ldr r0, [r4, #0x34] str r0, [sp, #0x4] ldr r0, [r4, #0x30] str r0, [sp, #0x8] ldr r0, [r4, #0x48] ldr r1, [r4, #0x20] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] bl FUN_02011698 add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _0200FED8: ldr r1, [r4, #0xc] asr r0, r1, #0x6 lsr r0, r0, #0x19 add r0, r1, r0 asr r0, r0, #0x7 str r0, [sp, #0x0] ldr r0, [r4, #0x34] str r0, [sp, #0x4] ldr r0, [r4, #0x30] str r0, [sp, #0x8] ldr r2, [r4, #0x0] ldr r3, [r4, #0x4] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 ldr r0, [r4, #0x48] asr r2, r3, #0x6 lsr r2, r2, #0x19 add r2, r3, r2 ldr r4, [r4, #0x8] asr r1, r1, #0x7 asr r3, r4, #0x6 lsr r3, r3, #0x19 add r3, r4, r3 asr r2, r2, #0x7 asr r3, r3, #0x7 bl FUN_02011698 _0200FF10: mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200FF18 FUN_0200FF18: ; 0x0200FF18 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_0200FFAC ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200FF50 FUN_0200FF50: ; 0x0200FF50 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FF68 cmp r0, #0x2 beq _0200FF84 cmp r0, #0x3 beq _0200FF9E b _0200FFA2 _0200FF68: add r0, r4, #0x0 bl FUN_02010084 cmp r0, #0x1 bne _0200FFA6 ldr r0, [r4, #0x2c] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FFA6 _0200FF84: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FFA6 _0200FF9E: mov r6, #0x1 b _0200FFA6 _0200FFA2: bl ErrorHandling _0200FFA6: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FFAC FUN_0200FFAC: ; 0x0200FFAC push {r4-r7, lr} sub sp, #0x24 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] bl FUN_0200F164 str r0, [sp, #0x20] ldrb r1, [r4, #0xc] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C ldr r0, [r4, #0x0] lsl r0, r0, #0x7 str r0, [r5, #0xc] mov r0, #0x8 ldrsh r0, [r4, r0] str r0, [r5, #0x10] mov r0, #0xa ldrsh r0, [r4, r0] str r0, [r5, #0x14] ldr r0, [sp, #0x20] str r0, [r5, #0x18] ldr r0, [sp, #0x18] str r0, [r5, #0x1c] ldr r0, [sp, #0x1c] str r0, [r5, #0x20] mov r0, #0x0 str r0, [r5, #0x24] ldr r0, [sp, #0x40] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x44] str r0, [r5, #0x28] ldrb r0, [r4, #0xf] str r0, [r5, #0x2c] add r0, r5, #0x0 bl FUN_02010168 ldr r0, _02010078 ; =FUN_0200F5F8 ldr r2, _0201007C ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0x3 str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x2c] str r0, [sp, #0x14] ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xe] ldrb r3, [r4, #0xc] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0xc] cmp r0, #0x0 bne _02010058 ldr r3, [r5, #0x2c] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010064 _02010058: ldr r3, [r5, #0x2c] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010064: ldr r0, [sp, #0x44] ldr r2, _02010080 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} .balign 4 _02010078: .word FUN_0200F5F8 _0201007C: .word 0x000003FF _02010080: .word FUN_0200F330 thumb_func_start FUN_02010084 FUN_02010084: ; 0x02010084 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x24] add r2, r1, #0x1 str r2, [r4, #0x24] ldr r1, [r4, #0x20] cmp r2, r1 blt _020100C8 mov r1, #0x0 str r1, [r4, #0x24] ldr r1, [r4, #0x1c] sub r1, r1, #0x1 cmp r1, #0x0 ble _020100BA str r1, [r4, #0x1c] ldr r2, [r4, #0xc] ldr r1, [r4, #0x18] add r1, r2, r1 str r1, [r4, #0xc] bl FUN_02010168 ldr r0, _020100CC ; =FUN_0200F5F8 ldr r2, _020100D0 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _020100C8 _020100BA: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x28] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _020100C8: mov r0, #0x0 pop {r4, pc} .balign 4 _020100CC: .word FUN_0200F5F8 _020100D0: .word 0x000003FF thumb_func_start FUN_020100D4 FUN_020100D4: ; 0x020100D4 push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x0] asr r1, r0, #0x6 lsr r1, r1, #0x19 add r1, r0, r1 asr r1, r1, #0x7 ldr r5, [sp, #0x20] ldr r4, [sp, #0x24] sub r0, r3, r2 bpl _020100EC neg r0, r0 _020100EC: cmp r0, r1 blt _020100FA mov r0, #0x0 str r0, [r5, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r4-r7, pc} _020100FA: lsl r0, r0, #0xc str r0, [sp, #0x4] asr r7, r0, #0x1f lsl r0, r1, #0xc asr r1, r0, #0x1f add r2, r0, #0x0 add r3, r1, #0x0 blx _ll_mul str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r6, r1, #0x0 add r1, r7, #0x0 add r2, r0, #0x0 add r3, r7, #0x0 blx _ll_mul add r2, r0, #0x0 add r3, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x8] mov r7, #0x0 lsl r0, r0, #0xa add r0, r1, r0 adc r6, r7 lsl r1, r6, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0x2 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r7 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 sub r0, r0, r2 blx FX_Sqrt asr r2, r0, #0xc ldr r0, [sp, #0x0] sub r0, r0, r2 str r0, [r5, #0x0] bpl _02010154 add r0, r7, #0x0 str r0, [r5, #0x0] _02010154: ldr r1, [r5, #0x0] lsl r0, r2, #0x1 add r0, r1, r0 str r0, [r4, #0x0] cmp r0, #0xff ble _02010164 mov r0, #0xff str r0, [r4, #0x0] _02010164: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02010168 FUN_02010168: ; 0x02010168 push {r3-r7, lr} sub sp, #0x10 mov r1, #0x0 add r5, r0, #0x0 bl FUN_0200F5D8 add r7, r0, #0x0 mov r4, #0x0 add r6, r7, #0x0 _0201017A: ldr r2, [r5, #0x14] cmp r4, r2 bgt _02010194 add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r5, #0xc] ldr r1, [r5, #0x10] add r3, r4, #0x0 bl FUN_020100D4 b _020101CE _02010194: lsl r0, r2, #0x1 cmp r4, r0 bgt _020101BC sub r0, r0, r4 lsl r0, r0, #0x1 add r1, r7, r0 mov r0, #0x3 lsl r0, r0, #0x8 ldrsh r0, [r1, r0] str r0, [sp, #0xc] ldr r0, [r5, #0x14] lsl r0, r0, #0x1 sub r0, r0, r4 lsl r0, r0, #0x1 add r1, r7, r0 mov r0, #0x12 lsl r0, r0, #0x6 ldrsh r0, [r1, r0] str r0, [sp, #0x8] b _020101CE _020101BC: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r5, #0xc] ldr r1, [r5, #0x10] add r3, r4, #0x0 bl FUN_020100D4 _020101CE: mov r0, #0x3 ldr r1, [sp, #0xc] lsl r0, r0, #0x8 strh r1, [r6, r0] mov r0, #0x12 ldr r1, [sp, #0x8] lsl r0, r0, #0x6 strh r1, [r6, r0] add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, #0xc0 blt _0201017A add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020101EC FUN_020101EC: ; 0x020101EC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x30 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010280 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010224 FUN_02010224: ; 0x02010224 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0201023C cmp r0, #0x2 beq _02010258 cmp r0, #0x3 beq _02010272 b _02010276 _0201023C: add r0, r4, #0x0 bl FUN_02010348 cmp r0, #0x1 bne _0201027A ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0201027A _02010258: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0201027A _02010272: mov r6, #0x1 b _0201027A _02010276: bl ErrorHandling _0201027A: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02010280 FUN_02010280: ; 0x02010280 push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] bl FUN_0200F164 str r0, [r5, #0x10] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C ldr r0, [r4, #0x0] lsl r0, r0, #0x7 str r0, [r5, #0xc] ldr r0, [sp, #0x18] str r0, [r5, #0x14] ldr r0, [sp, #0x1c] str r0, [r5, #0x18] mov r0, #0x0 str r0, [r5, #0x1c] ldr r0, [sp, #0x40] str r7, [r5, #0x24] str r0, [r5, #0x28] ldr r0, [sp, #0x44] str r0, [r5, #0x2c] ldrb r0, [r4, #0xb] str r0, [r5, #0x20] add r0, r5, #0x0 bl FUN_02010398 ldr r0, _0201033C ; =FUN_0200F5F8 ldr r2, _02010340 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0x3 str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x20] str r0, [sp, #0x14] ldrb r1, [r4, #0x9] ldrb r2, [r4, #0xa] ldrb r3, [r4, #0x8] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0x8] cmp r0, #0x0 bne _0201031C ldr r3, [r5, #0x20] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010328 _0201031C: ldr r3, [r5, #0x20] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010328: ldr r0, [sp, #0x44] ldr r2, _02010344 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x28] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x20 pop {r3-r7, pc} .balign 4 _0201033C: .word FUN_0200F5F8 _02010340: .word 0x000003FF _02010344: .word FUN_0200F330 thumb_func_start FUN_02010348 FUN_02010348: ; 0x02010348 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x1c] add r2, r1, #0x1 str r2, [r4, #0x1c] ldr r1, [r4, #0x18] cmp r2, r1 blt _0201038C mov r1, #0x0 str r1, [r4, #0x1c] ldr r1, [r4, #0x14] sub r1, r1, #0x1 cmp r1, #0x0 ble _0201037E str r1, [r4, #0x14] ldr r2, [r4, #0xc] ldr r1, [r4, #0x10] add r1, r2, r1 str r1, [r4, #0xc] bl FUN_02010398 ldr r0, _02010390 ; =FUN_0200F5F8 ldr r2, _02010394 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _0201038C _0201037E: ldr r0, [r4, #0x28] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _0201038C: mov r0, #0x0 pop {r4, pc} .balign 4 _02010390: .word FUN_0200F5F8 _02010394: .word 0x000003FF thumb_func_start FUN_02010398 FUN_02010398: ; 0x02010398 push {r3-r7, lr} sub sp, #0x1fc sub sp, #0x104 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r1, [r4, #0xc] add r5, r0, #0x0 asr r0, r1, #0x6 lsr r0, r0, #0x19 add r0, r1, r0 asr r0, r0, #0x7 add r1, sp, #0x0 mov r2, #0xc0 mov r3, #0x0 bl FUN_0200F0F8 mov r7, #0x12 mov r6, #0x0 add r4, sp, #0x0 lsl r7, r7, #0x6 _020103C4: ldr r1, [r4, #0x0] mov r0, #0x80 neg r1, r1 bl FUN_0200F174 mov r1, #0x3 lsl r1, r1, #0x8 strh r0, [r5, r1] ldr r1, [r4, #0x0] mov r0, #0x80 bl FUN_0200F174 strh r0, [r5, r7] add r6, r6, #0x1 add r4, r4, #0x4 add r5, r5, #0x2 cmp r6, #0xc0 blt _020103C4 add sp, #0x1fc add sp, #0x104 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020103F0 FUN_020103F0: ; 0x020103F0 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x34 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_0201047C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010428 FUN_02010428: ; 0x02010428 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010440 cmp r0, #0x2 beq _0201045C cmp r0, #0x3 beq _02010476 b _02010478 _02010440: add r0, r4, #0x0 bl FUN_02010550 cmp r0, #0x1 bne _02010478 ldr r0, [r4, #0x24] ldr r1, [r4, #0x28] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010478 _0201045C: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010478 _02010476: mov r6, #0x1 _02010478: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201047C FUN_0201047C: ; 0x0201047C push {r4-r7, lr} sub sp, #0x24 add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r4, #0x0] str r2, [sp, #0x18] sub r0, r1, r0 add r1, r2, #0x0 str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] blx _s32_div_f str r0, [sp, #0x20] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C mov r0, #0x2 lsl r0, r0, #0x12 str r0, [r5, #0xc] ldr r0, [r4, #0x0] str r0, [r5, #0x10] ldr r0, [sp, #0x20] str r0, [r5, #0x14] ldr r0, [sp, #0x18] str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r0, [r5, #0x1c] mov r0, #0x0 str r0, [r5, #0x20] ldr r0, [sp, #0x40] str r7, [r5, #0x28] str r0, [r5, #0x2c] ldr r0, [sp, #0x44] str r0, [r5, #0x30] ldrb r0, [r4, #0xb] str r0, [r5, #0x24] add r0, r5, #0x0 bl FUN_020105A0 ldr r0, _02010544 ; =FUN_0200F5F8 ldr r2, _02010548 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0xf str r6, [sp, #0x0] lsl r1, r1, #0x6 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x15 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x24] str r0, [sp, #0x14] ldrb r1, [r4, #0x9] ldrb r2, [r4, #0xa] ldrb r3, [r4, #0x8] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0x8] cmp r0, #0x0 bne _02010524 ldr r3, [r5, #0x24] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010530 _02010524: ldr r3, [r5, #0x24] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010530: ldr r0, [sp, #0x44] ldr r2, _0201054C ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x2c] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} .balign 4 _02010544: .word FUN_0200F5F8 _02010548: .word 0x000003FF _0201054C: .word FUN_0200F330 thumb_func_start FUN_02010550 FUN_02010550: ; 0x02010550 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x20] add r2, r1, #0x1 str r2, [r4, #0x20] ldr r1, [r4, #0x1c] cmp r2, r1 blt _02010594 mov r1, #0x0 str r1, [r4, #0x20] ldr r1, [r4, #0x18] sub r1, r1, #0x1 cmp r1, #0x0 ble _02010586 str r1, [r4, #0x18] ldr r2, [r4, #0x10] ldr r1, [r4, #0x14] add r1, r2, r1 str r1, [r4, #0x10] bl FUN_020105A0 ldr r0, _02010598 ; =FUN_0200F5F8 ldr r2, _0201059C ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010594 _02010586: ldr r0, [r4, #0x2c] ldr r1, [r4, #0x8] ldr r2, [r4, #0x30] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010594: mov r0, #0x0 pop {r4, pc} .balign 4 _02010598: .word FUN_0200F5F8 _0201059C: .word 0x000003FF thumb_func_start FUN_020105A0 FUN_020105A0: ; 0x020105A0 push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x110 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x0] ldr r0, [r4, #0x10] ldr r2, [r4, #0xc] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02010680 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r7, r1, #0xc lsl r0, r7, #0x1 mov r1, #0x15 blx _s32_div_f add r0, r0, #0x1 lsl r0, r0, #0x1 mov r1, #0xb4 sub r2, r1, r0 ldr r0, _02010684 ; =0x0000FFFF add r1, #0xb4 mul r0, r2 blx _s32_div_f lsr r1, r0, #0x1f add r1, r0, r1 asr r4, r1, #0x1 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x8 bl FUN_0200F14C asr r0, r0, #0xc str r0, [sp, #0x4] cmp r0, #0xc0 blt _0201060C bl ErrorHandling _0201060C: ldr r2, [sp, #0x4] add r0, r4, #0x0 add r1, sp, #0xc mov r3, #0x0 bl FUN_0200F0F8 ldr r5, [sp, #0x0] mov r4, #0x0 _0201061C: ldr r0, [sp, #0x4] add r1, r4, #0x1 sub r0, r0, r1 add r6, r7, #0x0 cmp r0, #0x0 ble _02010634 lsl r1, r0, #0x2 add r0, sp, #0xc ldr r0, [r0, r1] cmp r0, r7 ble _02010634 add r6, r0, #0x0 _02010634: mov r0, #0x80 neg r1, r6 bl FUN_0200F174 str r0, [sp, #0x8] mov r0, #0x80 add r1, r6, #0x0 bl FUN_0200F174 ldr r1, [sp, #0x8] lsl r0, r0, #0x10 lsl r1, r1, #0x10 asr r2, r1, #0x10 mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r5, r1] asr r1, r0, #0x10 mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r5, r0] mov r0, #0xbf sub r0, r0, r4 lsl r3, r0, #0x1 ldr r0, [sp, #0x0] add r4, r4, #0x1 add r0, r0, r3 mov r3, #0x3 lsl r3, r3, #0x8 strh r2, [r0, r3] mov r2, #0x12 lsl r2, r2, #0x6 add r5, r5, #0x2 strh r1, [r0, r2] cmp r4, #0x60 blt _0201061C add sp, #0x1fc add sp, #0x110 pop {r4-r7, pc} .balign 4 _02010680: .word 0x020FFA38 _02010684: .word 0x0000FFFF thumb_func_start FUN_02010688 FUN_02010688: ; 0x02010688 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x30 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010720 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_020106C0 FUN_020106C0: ; 0x020106C0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _020106D8 cmp r0, #0x2 beq _020106F4 cmp r0, #0x3 beq _02010714 b _02010718 _020106D8: add r0, r4, #0x0 bl FUN_02010834 cmp r0, #0x1 bne _0201071C ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0201071C _020106F4: add r0, r4, #0x0 bl FUN_02010884 add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0201071C _02010714: mov r6, #0x1 b _0201071C _02010718: bl ErrorHandling _0201071C: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010720 FUN_02010720: ; 0x02010720 push {r4-r7, lr} sub sp, #0x24 add r5, r1, #0x0 add r7, r0, #0x0 str r2, [sp, #0x18] ldr r0, [sp, #0x38] ldrb r2, [r5, #0x8] str r0, [sp, #0x38] ldr r0, [sp, #0x44] mov r1, #0x30 mul r1, r2 str r3, [sp, #0x1c] str r0, [sp, #0x44] bl FUN_02016998 str r0, [r7, #0xc] cmp r0, #0x0 bne _02010748 bl ErrorHandling _02010748: ldrb r0, [r5, #0x8] str r0, [r7, #0x10] mov r0, #0x0 str r0, [sp, #0x20] ldrb r0, [r5, #0x8] cmp r0, #0x0 ble _02010788 ldr r6, [sp, #0x20] add r4, r6, #0x0 _0201075A: ldr r0, [r5, #0x4] ldr r2, [r7, #0xc] add r0, r0, r6 str r0, [sp, #0x0] ldr r0, [sp, #0x18] str r0, [sp, #0x4] add r0, r2, r4 ldr r3, [r5, #0x0] add r1, r0, #0x0 add r2, r2, r4 add r1, #0x20 add r2, #0x10 add r3, r3, r6 bl FUN_0200F1A8 ldr r0, [sp, #0x20] ldrb r1, [r5, #0x8] add r0, r0, #0x1 add r6, #0x10 add r4, #0x30 str r0, [sp, #0x20] cmp r0, r1 blt _0201075A _02010788: ldrb r1, [r5, #0x9] ldr r2, [sp, #0x38] ldr r3, [sp, #0x44] add r0, r7, #0x0 bl FUN_0200F55C ldr r0, [sp, #0x18] str r0, [r7, #0x14] ldr r0, [sp, #0x1c] str r0, [r7, #0x18] mov r0, #0x0 str r0, [r7, #0x1c] ldr r0, [sp, #0x3c] str r0, [r7, #0x24] ldr r0, [sp, #0x40] str r0, [r7, #0x28] ldr r0, [sp, #0x44] str r0, [r7, #0x2c] ldrb r0, [r5, #0xc] str r0, [r7, #0x20] add r0, r7, #0x0 bl FUN_02010894 ldr r0, _02010828 ; =FUN_0200F5F8 ldr r2, _0201082C ; =0x000003FF add r1, r7, #0x0 bl FUN_0200CA98 add r0, r7, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r1, [sp, #0x38] str r1, [sp, #0x0] mov r1, #0x3 lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r7, #0x20] str r0, [sp, #0x14] ldrb r1, [r5, #0xa] ldrb r2, [r5, #0xb] ldrb r3, [r5, #0x9] ldr r0, [sp, #0x3c] bl FUN_0200F67C ldrb r0, [r5, #0x9] cmp r0, #0x0 ldr r0, [r7, #0x24] bne _02010808 ldr r2, [sp, #0x38] ldr r3, [r7, #0x20] mov r1, #0x1 bl FUN_0200F6E4 b _02010812 _02010808: ldr r2, [sp, #0x38] ldr r3, [r7, #0x20] mov r1, #0x2 bl FUN_0200F6E4 _02010812: ldr r0, [sp, #0x44] ldr r2, _02010830 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r7, #0x28] ldr r3, [sp, #0x38] add r1, r7, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} nop _02010828: .word FUN_0200F5F8 _0201082C: .word 0x000003FF _02010830: .word FUN_0200F330 thumb_func_start FUN_02010834 FUN_02010834: ; 0x02010834 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x1c] add r2, r1, #0x1 str r2, [r4, #0x1c] ldr r1, [r4, #0x18] cmp r2, r1 blt _02010876 mov r1, #0x0 str r1, [r4, #0x1c] ldr r1, [r4, #0x14] sub r1, r1, #0x1 cmp r1, #0x0 ble _02010868 str r1, [r4, #0x14] bl FUN_02010920 add r0, r4, #0x0 bl FUN_02010894 ldr r0, _0201087C ; =FUN_0200F5F8 ldr r2, _02010880 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010876 _02010868: ldr r0, [r4, #0x28] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010876: mov r0, #0x0 pop {r4, pc} nop _0201087C: .word FUN_0200F5F8 _02010880: .word 0x000003FF thumb_func_start FUN_02010884 FUN_02010884: ; 0x02010884 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0xc] pop {r4, pc} thumb_func_start FUN_02010894 FUN_02010894: ; 0x02010894 push {r4-r6, lr} mov r1, #0x0 add r6, r0, #0x0 bl FUN_0200F5D8 mov r2, #0x3 lsl r2, r2, #0x8 add r0, r0, r2 mov r1, #0x0 blx Call_FillMemWithValue ldr r0, [r6, #0x10] sub r4, r0, #0x1 bmi _020108C6 mov r0, #0x30 add r5, r4, #0x0 mul r5, r0 _020108B6: ldr r1, [r6, #0xc] add r0, r6, #0x0 add r1, r1, r5 bl FUN_020108C8 sub r5, #0x30 sub r4, r4, #0x1 bpl _020108B6 _020108C6: pop {r4-r6, pc} thumb_func_start FUN_020108C8 FUN_020108C8: ; 0x020108C8 push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r2, [r4, #0x0] ldr r3, [r4, #0x8] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 asr r2, r1, #0x7 asr r1, r3, #0x6 ldr r5, [r4, #0xc] lsr r1, r1, #0x19 add r1, r3, r1 asr r3, r5, #0x6 lsr r3, r3, #0x19 add r3, r5, r3 ldr r4, [r4, #0x4] asr r5, r3, #0x7 asr r3, r4, #0x6 lsr r3, r3, #0x19 add r3, r4, r3 asr r3, r3, #0x7 asr r1, r1, #0x7 cmp r3, r5 bge _0201091E lsl r4, r3, #0x1 lsl r1, r1, #0x10 add r4, r0, r4 lsl r0, r2, #0x10 asr r6, r1, #0x10 mov r1, #0x3 mov r2, #0x12 asr r0, r0, #0x10 lsl r1, r1, #0x8 lsl r2, r2, #0x6 _02010912: strh r0, [r4, r1] strh r6, [r4, r2] add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, r5 blt _02010912 _0201091E: pop {r4-r6, pc} thumb_func_start FUN_02010920 FUN_02010920: ; 0x02010920 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] mov r6, #0x0 cmp r0, #0x0 ble _02010944 add r4, r6, #0x0 _0201092E: ldr r1, [r5, #0xc] add r0, r1, r4 add r1, r1, r4 add r1, #0x10 bl FUN_0200F184 ldr r0, [r5, #0x10] add r6, r6, #0x1 add r4, #0x30 cmp r6, r0 blt _0201092E _02010944: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02010948 FUN_02010948: ; 0x02010948 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 blx Call_FillMemWithValue ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_020109E8 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010988 FUN_02010988: ; 0x02010988 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _020109A0 cmp r0, #0x2 beq _020109BC cmp r0, #0x3 beq _020109DC b _020109E0 _020109A0: add r0, r4, #0x0 bl FUN_02010AE4 cmp r0, #0x1 bne _020109E4 ldr r0, [r4, #0x28] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _020109E4 _020109BC: add r0, r4, #0x0 bl FUN_02010B3C add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _020109E4 _020109DC: mov r6, #0x1 b _020109E4 _020109E0: bl ErrorHandling _020109E4: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020109E8 FUN_020109E8: ; 0x020109E8 push {r3-r7, lr} sub sp, #0x28 add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 str r1, [r5, #0xc] ldr r1, [r4, #0x0] str r2, [sp, #0x18] str r1, [r5, #0x10] str r3, [sp, #0x1c] ldr r2, [r4, #0x4] ldr r1, [r4, #0x0] ldr r6, [sp, #0x40] sub r1, r2, r1 str r1, [r5, #0x14] ldr r3, [sp, #0x4c] mov r1, #0x2 add r2, r6, #0x0 ldr r7, [sp, #0x44] bl FUN_0200F55C ldr r0, [sp, #0x18] mov r1, #0x0 str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r1, [r5, #0x1c] str r0, [r5, #0x20] str r1, [r5, #0x24] ldr r0, [sp, #0x48] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x4c] str r0, [r5, #0x2c] ldrb r0, [r4, #0xa] str r0, [r5, #0x28] add r0, r5, #0x0 ldr r1, [r5, #0x1c] ldr r2, [r5, #0x18] add r0, #0xc bl FUN_02010C64 add r0, r5, #0x0 bl FUN_02010B40 ldr r0, _02010AD8 ; =FUN_0200F5F8 ldr r2, _02010ADC ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x20] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r0, [sp, #0x24] mov r1, #0x3 ldr r0, [sp, #0x20] str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r0, [r0, r1] mov r1, #0x12 mov r3, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x20] str r3, [sp, #0x8] lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C mov r1, #0x3 ldr r0, [sp, #0x24] str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r0, [r0, r1] mov r1, #0x12 lsl r1, r1, #0x6 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x24] mov r3, #0x1 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C ldr r3, [r5, #0x28] add r0, r7, #0x0 mov r1, #0x3 add r2, r6, #0x0 bl FUN_0200F6E4 ldr r0, [sp, #0x4c] ldr r2, _02010AE0 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x28 pop {r3-r7, pc} .balign 4 _02010AD8: .word FUN_0200F5F8 _02010ADC: .word 0x000003FF _02010AE0: .word FUN_0200F330 thumb_func_start FUN_02010AE4 FUN_02010AE4: ; 0x02010AE4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] add r1, r0, #0x1 str r1, [r4, #0x24] ldr r0, [r4, #0x20] cmp r1, r0 blt _02010B2E mov r0, #0x0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] add r1, r0, #0x1 ldr r0, [r4, #0x18] cmp r1, r0 bgt _02010B20 str r1, [r4, #0x1c] add r0, r4, #0x0 ldr r2, [r4, #0x18] add r0, #0xc bl FUN_02010C64 add r0, r4, #0x0 bl FUN_02010B40 ldr r0, _02010B34 ; =FUN_0200F5F8 ldr r2, _02010B38 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010B2E _02010B20: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010B2E: mov r0, #0x0 pop {r4, pc} nop _02010B34: .word FUN_0200F5F8 _02010B38: .word 0x000003FF thumb_func_start FUN_02010B3C FUN_02010B3C: ; 0x02010B3C bx lr .balign 4 thumb_func_start FUN_02010B40 FUN_02010B40: ; 0x02010B40 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] ldr r0, [r0, #0xc] ldr r1, _02010C60 ; =0x00003FFF blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x0 bl FUN_0200F5D8 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_0200F5D8 add r4, r0, #0x0 mov r6, #0x0 add r5, r4, #0x0 _02010B6C: ldr r0, [sp, #0x0] ldr r1, [r0, #0xc] ldr r0, _02010C60 ; =0x00003FFF cmp r1, r0 bge _02010BB0 mov r1, #0x60 ldr r0, [sp, #0x4] sub r1, r1, r6 bl FUN_0200F0D0 cmp r0, #0x7f ble _02010B86 mov r0, #0x7f _02010B86: mov r1, #0xbf sub r1, r1, r6 lsl r1, r1, #0x1 add r3, r7, r1 mov r1, #0x80 sub r2, r1, r0 mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r3, r1] mov r1, #0x12 mov r2, #0x80 lsl r1, r1, #0x6 strh r2, [r3, r1] mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r5, r1] mov r1, #0x12 add r0, #0x80 lsl r1, r1, #0x6 strh r0, [r5, r1] b _02010BD8 _02010BB0: mov r0, #0xbf sub r0, r0, r6 lsl r0, r0, #0x1 mov r1, #0x3 add r0, r7, r0 mov r2, #0x0 lsl r1, r1, #0x8 strh r2, [r0, r1] mov r1, #0x12 mov r2, #0x80 lsl r1, r1, #0x6 strh r2, [r0, r1] mov r0, #0x3 add r1, r2, #0x0 lsl r0, r0, #0x8 strh r1, [r5, r0] mov r0, #0x12 mov r1, #0xff lsl r0, r0, #0x6 strh r1, [r5, r0] _02010BD8: add r6, r6, #0x1 add r5, r5, #0x2 cmp r6, #0x60 blt _02010B6C ldr r1, _02010C60 ; =0x00003FFF ldr r0, [sp, #0x4] mov r5, #0x60 add r4, #0xc0 sub r6, r1, r0 _02010BEA: ldr r0, [sp, #0x0] ldr r1, [r0, #0xc] ldr r0, _02010C60 ; =0x00003FFF cmp r1, r0 bge _02010C1A mov r0, #0xbf sub r0, r0, r5 lsl r0, r0, #0x1 mov r1, #0x3 add r0, r7, r0 mov r2, #0x80 lsl r1, r1, #0x8 strh r2, [r0, r1] mov r1, #0x12 lsl r1, r1, #0x6 strh r2, [r0, r1] mov r0, #0x3 add r1, r2, #0x0 lsl r0, r0, #0x8 strh r1, [r4, r0] mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r4, r0] b _02010C54 _02010C1A: add r1, r5, #0x0 add r0, r6, #0x0 sub r1, #0x60 bl FUN_0200F0D0 add r1, r0, #0x0 cmp r1, #0x7f ble _02010C2C mov r1, #0x7f _02010C2C: mov r0, #0xbf sub r0, r0, r5 lsl r0, r0, #0x1 mov r2, #0x3 add r0, r7, r0 mov r3, #0x0 lsl r2, r2, #0x8 strh r3, [r0, r2] mov r2, #0x80 sub r3, r2, r1 mov r2, #0x12 lsl r2, r2, #0x6 strh r3, [r0, r2] mov r0, #0x3 add r1, #0x80 lsl r0, r0, #0x8 strh r1, [r4, r0] mov r1, #0xff add r0, r2, #0x0 strh r1, [r4, r0] _02010C54: add r5, r5, #0x1 add r4, r4, #0x2 cmp r5, #0xc0 blt _02010BEA add sp, #0x8 pop {r3-r7, pc} .balign 4 _02010C60: .word 0x00003FFF thumb_func_start FUN_02010C64 FUN_02010C64: ; 0x02010C64 push {r4, lr} add r4, r0, #0x0 ldr r3, [r4, #0x8] add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02010C7C FUN_02010C7C: ; 0x02010C7C push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 blx Call_FillMemWithValue ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010D1C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010CBC FUN_02010CBC: ; 0x02010CBC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010CD4 cmp r0, #0x2 beq _02010CF0 cmp r0, #0x3 beq _02010D10 b _02010D14 _02010CD4: add r0, r4, #0x0 bl FUN_02010DEC cmp r0, #0x1 bne _02010D18 ldr r0, [r4, #0x28] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010D18 _02010CF0: add r0, r4, #0x0 bl FUN_02010E44 add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010D18 _02010D10: mov r6, #0x1 b _02010D18 _02010D14: bl ErrorHandling _02010D18: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010D1C FUN_02010D1C: ; 0x02010D1C push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 ldr r1, [r4, #0x0] add r5, r0, #0x0 str r1, [r5, #0xc] ldr r1, [r4, #0x0] str r3, [sp, #0x1c] str r1, [r5, #0x10] str r2, [sp, #0x18] ldr r2, [r4, #0x4] ldr r1, [r4, #0x0] ldr r6, [sp, #0x38] sub r1, r2, r1 str r1, [r5, #0x14] ldr r3, [sp, #0x44] mov r1, #0x2 add r2, r6, #0x0 ldr r7, [sp, #0x3c] bl FUN_0200F55C ldr r0, [sp, #0x18] mov r1, #0x0 str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r1, [r5, #0x1c] str r0, [r5, #0x20] str r1, [r5, #0x24] ldr r0, [sp, #0x40] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x44] str r0, [r5, #0x2c] ldrb r0, [r4, #0xa] str r0, [r5, #0x28] add r0, r5, #0x0 bl FUN_02010E48 ldr r0, _02010DE0 ; =FUN_0200F5F8 ldr r2, _02010DE4 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r6, [sp, #0x0] mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] mov r0, #0xff str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xff str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] mov r3, #0x1 str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C ldr r3, [r5, #0x28] add r0, r7, #0x0 mov r1, #0x3 add r2, r6, #0x0 bl FUN_0200F6E4 ldr r0, [sp, #0x44] ldr r2, _02010DE8 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x20 pop {r3-r7, pc} .balign 4 _02010DE0: .word FUN_0200F5F8 _02010DE4: .word 0x000003FF _02010DE8: .word FUN_0200F330 thumb_func_start FUN_02010DEC FUN_02010DEC: ; 0x02010DEC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] add r1, r0, #0x1 str r1, [r4, #0x24] ldr r0, [r4, #0x20] cmp r1, r0 blt _02010E36 mov r0, #0x0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] add r1, r0, #0x1 ldr r0, [r4, #0x18] cmp r1, r0 bgt _02010E28 str r1, [r4, #0x1c] add r0, r4, #0x0 ldr r2, [r4, #0x18] add r0, #0xc bl FUN_02010F14 add r0, r4, #0x0 bl FUN_02010E48 ldr r0, _02010E3C ; =FUN_0200F5F8 ldr r2, _02010E40 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010E36 _02010E28: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010E36: mov r0, #0x0 pop {r4, pc} nop _02010E3C: .word FUN_0200F5F8 _02010E40: .word 0x000003FF thumb_func_start FUN_02010E44 FUN_02010E44: ; 0x02010E44 bx lr .balign 4 thumb_func_start FUN_02010E48 FUN_02010E48: ; 0x02010E48 push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 ldr r1, [r4, #0xc] lsl r1, r1, #0x10 lsr r1, r1, #0x10 str r1, [sp, #0x8] mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r0, [sp, #0xc] add r5, r0, #0x0 ldr r1, _02010F10 ; =0x00003FFF ldr r0, [sp, #0x8] ldr r6, [sp, #0x10] sub r0, r1, r0 mov r7, #0x0 str r0, [sp, #0x4] _02010E76: mov r0, #0x60 sub r0, r0, r7 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x0] bl FUN_0200F0D0 add r4, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] bl FUN_0200F0D0 cmp r4, #0x7f ble _02010E94 mov r4, #0x7f _02010E94: cmp r0, #0x7f ble _02010E9A mov r0, #0x7f _02010E9A: mov r1, #0x80 sub r1, r1, r0 lsl r1, r1, #0x10 mov r2, #0x3 asr r1, r1, #0x10 lsl r2, r2, #0x8 str r1, [sp, #0x14] strh r1, [r6, r2] mov r1, #0x80 sub r1, r1, r4 lsl r1, r1, #0x10 asr r2, r1, #0x10 mov r1, #0x12 lsl r1, r1, #0x6 strh r2, [r6, r1] mov r1, #0xbf sub r1, r1, r7 mov r12, r2 lsl r1, r1, #0x1 ldr r2, [sp, #0x10] add r0, #0x80 add r3, r2, r1 str r1, [sp, #0x18] mov r2, #0x3 ldr r1, [sp, #0x14] lsl r2, r2, #0x8 strh r1, [r3, r2] mov r1, #0x12 mov r2, r12 lsl r1, r1, #0x6 strh r2, [r3, r1] add r4, #0x80 lsl r1, r4, #0x10 asr r2, r1, #0x10 mov r1, #0x3 lsl r1, r1, #0x8 lsl r0, r0, #0x10 strh r2, [r5, r1] asr r1, r0, #0x10 mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r5, r0] ldr r3, [sp, #0xc] ldr r0, [sp, #0x18] add r7, r7, #0x1 add r0, r3, r0 mov r3, #0x3 lsl r3, r3, #0x8 strh r2, [r0, r3] mov r2, #0x12 lsl r2, r2, #0x6 strh r1, [r0, r2] add r6, r6, #0x2 add r5, r5, #0x2 cmp r7, #0x60 blt _02010E76 add sp, #0x1c pop {r4-r7, pc} nop _02010F10: .word 0x00003FFF thumb_func_start FUN_02010F14 FUN_02010F14: ; 0x02010F14 push {r4, lr} add r4, r0, #0x0 ldr r3, [r4, #0x8] add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02010F2C FUN_02010F2C: ; 0x02010F2C push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0xcd ldr r0, [r5, #0x20] lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0xcd str r0, [r5, #0x14] mov r1, #0x0 lsl r2, r2, #0x2 blx Call_FillMemWithValue ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010FD0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010F70 FUN_02010F70: ; 0x02010F70 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010F88 cmp r0, #0x2 beq _02010FAA cmp r0, #0x3 beq _02010FC4 b _02010FC8 _02010F88: add r0, r4, #0x0 bl FUN_020110BC cmp r0, #0x1 bne _02010FCC mov r1, #0xc9 lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, #0x8 ldr r1, [r4, r1] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010FCC _02010FAA: add r0, r4, #0x0 bl FUN_0201111C ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010FCC _02010FC4: mov r6, #0x1 b _02010FCC _02010FC8: bl ErrorHandling _02010FCC: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010FD0 FUN_02010FD0: ; 0x02010FD0 push {r3-r7, lr} sub sp, #0x20 ldr r7, [sp, #0x38] str r3, [sp, #0x1c] mov r3, #0x0 add r4, r1, #0x0 str r2, [sp, #0x18] str r3, [sp, #0x0] add r1, r7, #0x0 mov r2, #0x1 add r5, r0, #0x0 ldr r6, [sp, #0x3c] bl FUN_0200F6FC ldrb r0, [r4, #0x5] cmp r0, #0x0 bne _0201100A add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xc0 blx Call_FillMemWithValue add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x1 mov r2, #0xc0 blx Call_FillMemWithValue b _02011020 _0201100A: add r0, r5, #0x0 mov r1, #0x0 mov r2, #0xc0 blx Call_FillMemWithValue add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x0 mov r2, #0xc0 blx Call_FillMemWithValue _02011020: mov r1, #0xc3 lsl r1, r1, #0x2 ldr r0, [r4, #0x0] add r3, r1, #0x0 str r0, [r5, r1] ldrb r2, [r4, #0x4] add r0, r1, #0x4 add r3, #0x8 str r2, [r5, r0] add r0, r1, #0x0 ldrb r2, [r4, #0x5] add r0, #0x18 str r2, [r5, r0] add r0, r1, #0x0 ldr r2, [sp, #0x44] add r0, #0x1c str r2, [r5, r0] ldr r0, [sp, #0x18] str r0, [r5, r3] add r3, r1, #0x0 add r3, #0xc mov r0, #0x0 str r0, [r5, r3] add r3, r1, #0x0 ldr r0, [sp, #0x1c] add r3, #0x10 str r0, [r5, r3] add r3, r1, #0x0 add r3, #0x14 mov r0, #0x0 str r0, [r5, r3] add r0, r1, #0x0 add r0, #0x20 str r6, [r5, r0] ldr r0, [sp, #0x40] add r1, #0x24 str r0, [r5, r1] add r1, r5, #0x0 bl FUN_0200F758 ldrb r0, [r4, #0x5] cmp r0, #0x1 str r7, [sp, #0x0] bne _02011090 mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x20 mov r2, #0x3f bl FUN_0200F67C b _020110A6 _02011090: mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x3f mov r2, #0x20 bl FUN_0200F67C _020110A6: mov r3, #0xc9 lsl r3, r3, #0x2 ldr r3, [r5, r3] add r0, r6, #0x0 mov r1, #0x1 add r2, r7, #0x0 bl FUN_0200F6E4 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020110BC FUN_020110BC: ; 0x020110BC push {r4, lr} mov r2, #0x32 add r4, r0, #0x0 lsl r2, r2, #0x4 ldr r1, [r4, r2] add r1, r1, #0x1 str r1, [r4, r2] sub r1, r2, #0x4 ldr r3, [r4, r2] ldr r1, [r4, r1] cmp r3, r1 blt _02011116 mov r1, #0x0 str r1, [r4, r2] add r1, r2, #0x0 sub r1, #0x8 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x0 sub r1, #0xc ldr r1, [r4, r1] cmp r3, r1 bgt _02011102 add r1, r2, #0x0 sub r1, #0x8 ldr r1, [r4, r1] sub r2, #0x8 add r1, r1, #0x1 str r1, [r4, r2] bl FUN_02011120 add r0, r4, #0x0 bl FUN_0200F740 b _02011116 _02011102: add r0, r2, #0x0 add r0, #0x10 add r2, #0x8 ldr r0, [r4, r0] ldr r2, [r4, r2] add r1, r4, #0x0 bl FUN_0200F770 mov r0, #0x1 pop {r4, pc} _02011116: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201111C FUN_0201111C: ; 0x0201111C bx lr .balign 4 thumb_func_start FUN_02011120 FUN_02011120: ; 0x02011120 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x31 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r6, #0x0 cmp r0, #0x0 ble _0201115A mov r7, #0x31 add r4, r6, #0x0 lsl r7, r7, #0x4 _02011136: mov r0, #0xc3 lsl r0, r0, #0x2 mov r2, #0xc6 mov r3, #0xc5 ldr r0, [r5, r0] lsl r2, r2, #0x2 lsl r3, r3, #0x2 ldr r2, [r5, r2] ldr r3, [r5, r3] add r0, r0, r4 add r1, r5, #0x0 bl FUN_0201115C ldr r0, [r5, r7] add r6, r6, #0x1 add r4, r4, #0x3 cmp r6, r0 blt _02011136 _0201115A: pop {r3-r7, pc} thumb_func_start FUN_0201115C FUN_0201115C: ; 0x0201115C push {r3-r7, lr} add r7, r0, #0x0 ldrb r6, [r7, #0x0] ldrb r4, [r7, #0x1] add r5, r1, #0x0 add r1, r3, #0x0 sub r0, r4, r6 mul r0, r2 blx _s32_div_f add r0, r0, r6 cmp r6, r4 bhi _0201117C add r1, r6, #0x0 ldrb r6, [r7, #0x2] b _0201118C _0201117C: ldrb r2, [r7, #0x2] add r1, r4, #0x0 add r4, r6, #0x0 cmp r2, #0x0 bne _0201118A mov r6, #0x1 b _0201118C _0201118A: mov r6, #0x0 _0201118C: cmp r1, r4 bge _020111AA mov r2, #0x0 mov r3, #0x1 _02011194: cmp r1, r0 bne _020111A2 cmp r6, #0x0 bne _020111A0 add r6, r3, #0x0 b _020111A2 _020111A0: add r6, r2, #0x0 _020111A2: strb r6, [r5, r1] add r1, r1, #0x1 cmp r1, r4 blt _02011194 _020111AA: pop {r3-r7, pc} thumb_func_start FUN_020111AC FUN_020111AC: ; 0x020111AC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0xe2 ldr r0, [r5, #0x20] lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0xe2 mov r1, #0x0 lsl r2, r2, #0x2 str r0, [r5, #0x14] blx Call_FillMemWithValue add r1, r4, #0x0 add r1, #0x23 ldrb r1, [r1, #0x0] ldr r0, [r5, #0x14] cmp r1, #0x0 ldr r1, [r5, #0x10] bne _020111F2 str r1, [sp, #0x0] ldr r1, [r5, #0x18] str r1, [sp, #0x4] ldr r1, [r5, #0x1c] str r1, [sp, #0x8] ldr r1, [r5, #0x20] str r1, [sp, #0xc] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r1, r4, #0x0 bl FUN_0201127C b _0201120A _020111F2: str r1, [sp, #0x0] ldr r1, [r5, #0x18] str r1, [sp, #0x4] ldr r1, [r5, #0x1c] str r1, [sp, #0x8] ldr r1, [r5, #0x20] str r1, [sp, #0xc] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r1, r4, #0x0 bl FUN_0201137C _0201120A: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02011214 FUN_02011214: ; 0x02011214 push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0xc] mov r4, #0x0 ldr r0, [r5, #0x14] cmp r1, #0x1 beq _0201122C cmp r1, #0x2 beq _02011258 cmp r1, #0x3 beq _0201126A b _0201126E _0201122C: ldr r1, _02011278 ; =0x00000386 ldrb r1, [r0, r1] cmp r1, #0x0 bne _0201123C add r1, r5, #0x0 bl FUN_02011308 b _02011242 _0201123C: add r1, r5, #0x0 bl FUN_020113EC _02011242: cmp r0, #0x1 bne _02011272 ldr r0, [r5, #0x28] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02011272 _02011258: bl FUN_02016A18 add r0, r4, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r4, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02011272 _0201126A: mov r4, #0x1 b _02011272 _0201126E: bl ErrorHandling _02011272: add r0, r4, #0x0 pop {r3-r5, pc} nop _02011278: .word 0x00000386 thumb_func_start FUN_0201127C FUN_0201127C: ; 0x0201127C push {r3-r7, lr} sub sp, #0x8 add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 lsl r0, r6, #0xc ldr r2, [r4, #0x2c] add r7, r3, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul add r2, r0, #0x0 mov r0, #0x2 mov r3, #0x0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r2, r0, #0xc mov r0, #0xe1 sub r1, r6, r2 lsl r0, r0, #0x2 strb r1, [r5, r0] sub r1, r0, #0x4 str r4, [r5, r1] add r1, r4, #0x0 add r1, #0x23 ldrb r1, [r1, #0x0] add r0, r0, #0x2 add r3, r7, #0x0 strb r1, [r5, r0] ldr r0, [sp, #0x20] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x24] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_0200FE20 add r0, r4, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020112EA add r4, #0x23 ldrb r3, [r4, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x20] mov r1, #0x1 bl FUN_0200F6E4 b _020112F8 _020112EA: add r4, #0x23 ldrb r3, [r4, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x20] mov r1, #0x2 bl FUN_0200F6E4 _020112F8: ldr r0, _02011304 ; =0x00000385 mov r1, #0x0 strb r1, [r5, r0] add sp, #0x8 pop {r3-r7, pc} nop _02011304: .word 0x00000385 thumb_func_start FUN_02011308 FUN_02011308: ; 0x02011308 push {r4-r6, lr} sub sp, #0x10 add r4, r1, #0x0 ldr r1, _02011378 ; =0x00000385 add r5, r0, #0x0 ldrb r1, [r5, r1] mov r6, #0x0 cmp r1, #0x0 beq _02011324 cmp r1, #0x1 beq _0201135A cmp r1, #0x2 beq _02011370 b _02011372 _02011324: bl FUN_0200FE90 cmp r0, #0x1 bne _02011372 ldr r2, _02011378 ; =0x00000385 ldrb r0, [r5, r2] sub r1, r2, #0x5 add r0, r0, #0x1 strb r0, [r5, r2] ldr r0, [r4, #0x10] sub r2, r2, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, [r4, #0x1c] str r0, [sp, #0x8] ldr r0, [r4, #0x20] str r0, [sp, #0xc] ldr r1, [r5, r1] add r0, r5, #0x0 ldrb r2, [r5, r2] ldr r3, [r4, #0x8] add r0, #0x4c add r1, #0x24 bl FUN_02010FD0 b _02011372 _0201135A: add r0, #0x4c bl FUN_020110BC cmp r0, #0x1 bne _02011372 ldr r0, _02011378 ; =0x00000385 mov r6, #0x1 ldrb r1, [r5, r0] add r1, r1, #0x1 strb r1, [r5, r0] b _02011372 _02011370: mov r6, #0x1 _02011372: add r0, r6, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _02011378: .word 0x00000385 thumb_func_start FUN_0201137C FUN_0201137C: ; 0x0201137C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 lsl r0, r6, #0xc ldr r2, [r4, #0x2c] add r7, r3, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul add r2, r0, #0x0 mov r0, #0x2 mov r3, #0x0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0xe1 asr r0, r0, #0xc lsl r1, r1, #0x2 strb r0, [r5, r1] ldrb r0, [r5, r1] sub r2, r6, r0 sub r0, r1, #0x4 str r4, [r5, r0] add r4, #0x23 add r0, r1, #0x2 ldrb r3, [r4, #0x0] sub r1, r1, #0x4 strb r3, [r5, r0] ldr r0, [sp, #0x28] add r3, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x4] ldr r0, [sp, #0x30] str r0, [sp, #0x8] ldr r0, [sp, #0x34] str r0, [sp, #0xc] ldr r1, [r5, r1] add r0, r5, #0x0 add r0, #0x4c add r1, #0x24 bl FUN_02010FD0 ldr r0, _020113E8 ; =0x00000385 mov r1, #0x0 strb r1, [r5, r0] add sp, #0x10 pop {r3-r7, pc} .balign 4 _020113E8: .word 0x00000385 thumb_func_start FUN_020113EC FUN_020113EC: ; 0x020113EC push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 ldr r1, _0201147C ; =0x00000385 add r5, r0, #0x0 ldrb r1, [r5, r1] mov r6, #0x0 cmp r1, #0x0 beq _02011408 cmp r1, #0x1 beq _02011460 cmp r1, #0x2 beq _02011474 b _02011476 _02011408: add r0, #0x4c bl FUN_020110BC cmp r0, #0x1 bne _02011476 ldr r2, _0201147C ; =0x00000385 ldrb r0, [r5, r2] sub r1, r2, #0x5 add r0, r0, #0x1 strb r0, [r5, r2] ldr r0, [r4, #0x10] sub r2, r2, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldrb r2, [r5, r2] ldr r1, [r5, r1] ldr r3, [r4, #0x8] add r0, r5, #0x0 bl FUN_0200FE20 mov r0, #0xe lsl r0, r0, #0x6 ldr r3, [r5, r0] add r0, r3, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 ldr r0, [r4, #0x18] bne _02011452 add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x1 bl FUN_0200F6E4 b _02011476 _02011452: add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x2 bl FUN_0200F6E4 b _02011476 _02011460: bl FUN_0200FE90 cmp r0, #0x1 bne _02011476 ldr r0, _0201147C ; =0x00000385 mov r6, #0x1 ldrb r1, [r5, r0] add r1, r1, #0x1 strb r1, [r5, r0] b _02011476 _02011474: mov r6, #0x1 _02011476: add r0, r6, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0201147C: .word 0x00000385 thumb_func_start FUN_02011480 FUN_02011480: ; 0x02011480 cmp r1, #0x0 ldr r1, _020114A4 ; =0xFFFF1FFF bne _02011496 mov r3, #0x1 lsl r3, r3, #0x1a ldr r2, [r3, #0x0] lsl r0, r0, #0xd and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr _02011496: ldr r3, _020114A8 ; =0x04001000 lsl r0, r0, #0xd ldr r2, [r3, #0x0] and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr .balign 4 _020114A4: .word 0xFFFF1FFF _020114A8: .word 0x04001000 thumb_func_start FUN_020114AC FUN_020114AC: ; 0x020114AC push {r3-r4} cmp r2, #0x0 bne _020114EE cmp r3, #0x0 bne _020114D2 ldr r2, _02011528 ; =0x04000048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114CA mov r0, #0x20 orr r2, r0 _020114CA: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114D2: ldr r2, _0201152C ; =0x04001048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114E6 mov r0, #0x20 orr r2, r0 _020114E6: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114EE: cmp r3, #0x0 ldr r2, _02011530 ; =0xFFFFC0FF bne _0201150E ldr r4, _02011528 ; =0x04000048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011506 lsr r0, r4, #0xd orr r2, r0 _02011506: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _0201150E: ldr r4, _0201152C ; =0x04001048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011520 lsr r0, r4, #0xd orr r2, r0 _02011520: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr .balign 4 _02011528: .word 0x04000048 _0201152C: .word 0x04001048 _02011530: .word 0xFFFFC0FF thumb_func_start FUN_02011534 FUN_02011534: ; 0x02011534 cmp r2, #0x0 bne _02011552 ldr r2, _0201156C ; =0x0400004A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _0201154C mov r0, #0x20 orr r2, r0 _0201154C: ldr r0, _0201156C ; =0x0400004A strh r2, [r0, #0x0] bx lr _02011552: ldr r2, _02011570 ; =0x0400104A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _02011566 mov r0, #0x20 orr r2, r0 _02011566: ldr r0, _02011570 ; =0x0400104A strh r2, [r0, #0x0] bx lr .balign 4 _0201156C: .word 0x0400004A _02011570: .word 0x0400104A thumb_func_start FUN_02011574 FUN_02011574: ; 0x02011574 push {r4-r5} add r4, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x8] cmp r3, #0x0 bne _020115D2 ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115AC lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011624 ; =0x04000040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115AC: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011628 ; =0x04001040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115D2: ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115FE lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _0201162C ; =0x04000042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115FE: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011630 ; =0x04001042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr .balign 4 _02011624: .word 0x04000040 _02011628: .word 0x04001040 _0201162C: .word 0x04000042 _02011630: .word 0x04001042 thumb_func_start FUN_02011634 FUN_02011634: ; 0x02011634 push {r4, lr} lsl r3, r2, #0x3 add r4, r0, r3 str r1, [r0, r3] str r2, [r4, #0x4] ldr r0, _0201164C ; =FUN_020116CC add r1, r4, #0x0 mov r2, #0x1 bl FUN_0200CA98 pop {r4, pc} nop _0201164C: .word FUN_020116CC thumb_func_start FUN_02011650 FUN_02011650: ; 0x02011650 push {r4-r6, lr} ldr r5, [sp, #0x10] add r0, #0x10 lsl r4, r5, #0x5 add r6, r0, r4 lsl r0, r3, #0x4 add r4, r6, r0 str r1, [r6, r0] str r2, [r4, #0x4] str r3, [r4, #0x8] ldr r0, _02011674 ; =FUN_020116E0 add r1, r4, #0x0 mov r2, #0x1 str r5, [r4, #0xc] bl FUN_0200CA98 pop {r4-r6, pc} nop _02011674: .word FUN_020116E0 thumb_func_start FUN_02011678 FUN_02011678: ; 0x02011678 push {r3-r5, lr} mov r4, #0xc add r0, #0x68 mul r4, r3 add r5, r0, r4 str r1, [r0, r4] str r2, [r5, #0x4] ldr r0, _02011694 ; =FUN_020116FC add r1, r5, #0x0 mov r2, #0x1 str r3, [r5, #0x8] bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 _02011694: .word FUN_020116FC thumb_func_start FUN_02011698 FUN_02011698: ; 0x02011698 push {r3-r7, lr} ldr r5, [sp, #0x20] add r7, r1, #0x0 add r0, #0x80 lsl r1, r5, #0x5 add r6, r0, r1 add r4, r2, #0x0 ldr r0, [sp, #0x1c] add r2, r3, #0x0 lsl r3, r0, #0x4 add r1, r6, r3 strh r7, [r6, r3] strh r4, [r1, #0x2] strh r2, [r1, #0x4] ldr r2, [sp, #0x18] strh r2, [r1, #0x6] str r0, [r1, #0x8] ldr r0, _020116C8 ; =FUN_02011714 mov r2, #0x1 str r5, [r1, #0xc] bl FUN_0200CA98 pop {r3-r7, pc} nop _020116C8: .word FUN_02011714 thumb_func_start FUN_020116CC FUN_020116CC: ; 0x020116CC push {r4, lr} add r4, r0, #0x0 ldmia r1!, {r0-r1} bl FUN_02011480 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116E0 FUN_020116E0: ; 0x020116E0 push {r4, lr} add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x0] ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_020114AC add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116FC FUN_020116FC: ; 0x020116FC push {r4, lr} add r2, r1, #0x0 add r4, r0, #0x0 ldr r0, [r2, #0x0] ldr r1, [r2, #0x4] ldr r2, [r2, #0x8] bl FUN_02011534 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_02011714 FUN_02011714: ; 0x02011714 push {r3-r5, lr} sub sp, #0x8 add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x8] mov r1, #0x2 str r0, [sp, #0x0] ldr r0, [r3, #0xc] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x0 mov r5, #0x6 ldrsh r0, [r3, r0] ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldrsh r3, [r3, r5] bl FUN_02011574 add r0, r4, #0x0 bl FUN_0200CAB4 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02011744 FUN_02011744: ; 0x02011744 push {r4-r7, lr} sub sp, #0xc add r7, r1, #0x0 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x68 bl FUN_02016998 str r0, [sp, #0x8] cmp r0, #0x0 bne _0201175E bl ErrorHandling _0201175E: ldr r4, [sp, #0x8] ldr r5, [sp, #0x8] mov r6, #0x0 add r4, #0x30 _02011766: mov r0, #0x23 add r1, r6, #0x0 mov r2, #0x0 add r3, r4, #0x0 str r7, [sp, #0x0] bl FUN_02006C30 str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E bl ErrorHandling _0201177E: add r6, r6, #0x1 add r4, r4, #0x4 add r5, r5, #0x4 cmp r6, #0xc blt _02011766 ldr r0, [sp, #0x4] mov r1, #0x14 add r4, r0, #0x0 mul r4, r1 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02016998 ldr r1, [sp, #0x8] cmp r0, #0x0 str r0, [r1, #0x60] bne _020117A4 bl ErrorHandling _020117A4: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r2, r4, #0x0 str r1, [r0, #0x64] ldr r0, [r0, #0x60] mov r1, #0x0 blx Call_FillMemWithValue ldr r0, [sp, #0x8] add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020117BC FUN_020117BC: ; 0x020117BC push {r4-r6, lr} add r6, r0, #0x0 bne _020117C6 bl ErrorHandling _020117C6: mov r4, #0x0 add r5, r6, #0x0 _020117CA: ldr r0, [r5, #0x0] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0xc blt _020117CA ldr r0, [r6, #0x60] bl FUN_02016A18 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020117E8 FUN_020117E8: ; 0x020117E8 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 bne _020117F4 bl ErrorHandling _020117F4: ldr r0, [r5, #0x0] bl FUN_02011BA0 add r4, r0, #0x0 bne _02011802 bl ErrorHandling _02011802: ldr r0, [r5, #0x10] add r3, sp, #0x8 str r0, [r4, #0x8] ldr r0, [r5, #0x18] str r0, [r4, #0xc] ldr r0, [r5, #0x1c] str r0, [r4, #0x10] str r3, [sp, #0x14] str r3, [sp, #0x18] ldr r1, [r5, #0x4] ldr r2, [r5, #0x2c] ldrb r0, [r1, #0x7] ldrb r1, [r1, #0x8] bl FUN_02011CA4 add r6, r0, #0x0 mov r1, #0x24 ldr r0, [r5, #0x2c] mul r1, r6 bl FUN_020169D8 add r7, r0, #0x0 mov r1, #0xc ldr r0, [r5, #0x2c] mul r1, r6 bl FUN_02016998 str r0, [r4, #0x0] str r6, [r4, #0x4] ldr r0, [r5, #0x28] add r1, sp, #0x8 str r0, [sp, #0x0] ldr r0, [r5, #0x2c] add r2, r7, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x4] ldr r3, [r5, #0x14] bl FUN_02011D2C add r0, r5, #0x0 add r1, sp, #0x8 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_02011EAC add r0, r7, #0x0 bl FUN_02016A18 add r0, sp, #0x8 bl FUN_02011FDC add r0, r4, #0x0 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02011870 FUN_02011870: ; 0x02011870 push {r4, lr} add r4, r0, #0x0 bne _0201187A bl ErrorHandling _0201187A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02011884 bl ErrorHandling _02011884: add r0, r4, #0x0 bl FUN_02011F00 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02011B90 pop {r4, pc} thumb_func_start FUN_02011898 FUN_02011898: ; 0x02011898 push {r4-r5, lr} sub sp, #0x14 add r3, sp, #0x0 add r5, r0, #0x0 str r3, [sp, #0xc] str r3, [sp, #0x10] add r4, r1, #0x0 ldrb r0, [r5, #0x7] ldrb r1, [r5, #0x8] bl FUN_02011CA4 add r0, sp, #0x0 add r1, r4, #0x0 bl FUN_02011E58 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02011FDC add r0, r4, #0x0 add sp, #0x14 pop {r4-r5, pc} thumb_func_start FUN_020118C4 FUN_020118C4: ; 0x020118C4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r7, r2, #0x0 str r1, [sp, #0x0] cmp r5, #0x0 bne _020118D6 bl ErrorHandling _020118D6: ldr r0, [sp, #0x0] str r0, [r5, #0xc] str r7, [r5, #0x10] lsl r0, r0, #0xc str r0, [sp, #0x0] ldr r0, [r5, #0x8] lsl r7, r7, #0xc cmp r0, #0x0 beq _020118F8 bl FUN_0202011C ldr r2, [r0, #0x0] ldr r1, [sp, #0x0] ldr r0, [r0, #0x4] add r1, r1, r2 str r1, [sp, #0x0] add r7, r7, r0 _020118F8: mov r6, #0x0 str r6, [sp, #0xc] ldr r0, [r5, #0x4] cmp r0, #0x0 ble _02011932 add r4, r6, #0x0 _02011904: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] lsl r1, r0, #0xc ldr r0, [sp, #0x0] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r1, sp, #0x4 add r0, r0, r4 ldr r0, [r0, #0x8] lsl r0, r0, #0xc add r0, r7, r0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_02020044 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011904 _02011932: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011938 FUN_02011938: ; 0x02011938 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bne _02011944 bl ErrorHandling _02011944: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0201199E ldr r1, [r5, #0xc] lsl r1, r1, #0xc str r1, [sp, #0x0] ldr r1, [r5, #0x10] lsl r7, r1, #0xc bl FUN_0202011C ldr r2, [r0, #0x0] ldr r0, [r0, #0x4] mov r6, #0x0 ldr r1, [sp, #0x0] str r6, [sp, #0xc] add r7, r7, r0 add r1, r1, r2 ldr r0, [r5, #0x4] str r1, [sp, #0x0] cmp r0, #0x0 ble _0201199E add r4, r6, #0x0 _02011970: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] lsl r1, r0, #0xc ldr r0, [sp, #0x0] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r1, sp, #0x4 add r0, r0, r4 ldr r0, [r0, #0x8] lsl r0, r0, #0xc add r0, r7, r0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_02020044 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011970 _0201199E: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020119A4 FUN_020119A4: ; 0x020119A4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _020119B4 bl ErrorHandling _020119B4: cmp r4, #0x0 bne _020119BC bl ErrorHandling _020119BC: cmp r6, #0x0 bne _020119C4 bl ErrorHandling _020119C4: ldr r0, [r5, #0xc] str r0, [r4, #0x0] ldr r0, [r5, #0x10] str r0, [r6, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020119D0 FUN_020119D0: ; 0x020119D0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _020119DE bl ErrorHandling _020119DE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _020119FC add r4, r6, #0x0 _020119E8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020200A0 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _020119E8 _020119FC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A00 FUN_02011A00: ; 0x02011A00 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A0E bl ErrorHandling _02011A0E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A2C add r4, r6, #0x0 _02011A18: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020238 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A18 _02011A2C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A30 FUN_02011A30: ; 0x02011A30 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A3E bl ErrorHandling _02011A3E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A5C add r4, r6, #0x0 _02011A48: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020310 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A48 _02011A5C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A60 FUN_02011A60: ; 0x02011A60 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A6E bl ErrorHandling _02011A6E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A8C add r4, r6, #0x0 _02011A78: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020248 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A78 _02011A8C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A90 FUN_02011A90: ; 0x02011A90 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A9E bl ErrorHandling _02011A9E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011ABC add r4, r6, #0x0 _02011AA8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020202A8 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011AA8 _02011ABC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011AC0 FUN_02011AC0: ; 0x02011AC0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011ACE bl ErrorHandling _02011ACE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011AEC add r4, r6, #0x0 _02011AD8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020202DC ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011AD8 _02011AEC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011AF0 FUN_02011AF0: ; 0x02011AF0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011AFE bl ErrorHandling _02011AFE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011B1C add r4, r6, #0x0 _02011B08: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020398 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011B08 _02011B1C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011B20 FUN_02011B20: ; 0x02011B20 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 ldr r0, [sp, #0x20] add r7, r1, #0x0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] ldrb r1, [r6, #0x7] str r0, [sp, #0x24] add r0, r3, #0x0 add r0, r7, r0 str r2, [sp, #0x0] str r3, [sp, #0x4] cmp r1, r0 bge _02011B42 bl ErrorHandling _02011B42: ldrb r2, [r6, #0x8] ldr r1, [sp, #0x0] ldr r0, [sp, #0x20] add r0, r1, r0 cmp r2, r0 bge _02011B52 bl ErrorHandling _02011B52: ldr r0, [sp, #0x0] mov r4, #0x0 cmp r0, #0x0 ble _02011B8A lsl r0, r7, #0x5 add r5, r4, #0x0 str r0, [sp, #0x8] _02011B60: ldrb r1, [r6, #0x7] ldr r0, [sp, #0x20] add r2, r1, #0x0 add r0, r4, r0 mul r2, r0 ldr r0, [sp, #0x4] lsl r1, r5, #0x5 add r2, r2, r0 ldr r0, [sp, #0x24] lsl r2, r2, #0x5 add r0, r0, r1 ldr r1, [r6, #0xc] add r1, r1, r2 ldr r2, [sp, #0x8] blx memcpy ldr r0, [sp, #0x0] add r4, r4, #0x1 add r5, r5, r7 cmp r4, r0 blt _02011B60 _02011B8A: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02011B90 FUN_02011B90: ; 0x02011B90 mov r2, #0x14 mov r1, #0x0 _02011B94: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _02011B94 bx lr .balign 4 thumb_func_start FUN_02011BA0 FUN_02011BA0: ; 0x02011BA0 ldr r1, [r0, #0x64] mov r2, #0x0 cmp r1, #0x0 ble _02011BC4 ldr r3, [r0, #0x60] _02011BAA: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _02011BBA ldr r1, [r0, #0x60] mov r0, #0x14 mul r0, r2 add r0, r1, r0 bx lr _02011BBA: ldr r1, [r0, #0x64] add r2, r2, #0x1 add r3, #0x14 cmp r2, r1 blt _02011BAA _02011BC4: mov r0, #0x0 bx lr thumb_func_start FUN_02011BC8 FUN_02011BC8: ; 0x02011BC8 push {r3-r4} ldr r4, _02011BF0 ; =0x020ED398 mov r3, #0x0 _02011BCE: ldrb r2, [r4, #0x0] cmp r2, r0 bgt _02011BE0 ldrb r2, [r4, #0x1] cmp r2, r1 bgt _02011BE0 add r0, r3, #0x0 pop {r3-r4} bx lr _02011BE0: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, #0xc blt _02011BCE mov r0, #0xc pop {r3-r4} bx lr nop _02011BF0: .word 0x020ED398 thumb_func_start FUN_02011BF4 FUN_02011BF4: ; 0x02011BF4 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 bl FUN_02011FAC ldr r1, [r6, #0x10] add r4, r0, #0x0 bl FUN_02011FF4 ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] bl FUN_02011BC8 str r0, [r4, #0x8] ldr r0, [r5, #0x4] ldr r1, _02011C9C ; =0x020ED398 str r0, [r4, #0x0] ldr r0, [r5, #0x0] ldr r6, _02011CA0 ; =0x020ED399 str r0, [r4, #0x4] ldr r0, [r4, #0x8] ldr r2, [r5, #0x8] lsl r3, r0, #0x1 ldrb r0, [r1, r3] ldrb r3, [r6, r3] sub r2, r2, r0 ldr r0, [r5, #0xc] sub r6, r0, r3 cmp r2, #0x0 ble _02011C5C str r0, [r5, #0x1c] str r2, [r5, #0x18] ldr r0, [r5, #0x0] str r0, [r5, #0x10] ldr r2, [r4, #0x8] ldr r0, [r5, #0x4] lsl r2, r2, #0x1 ldrb r1, [r1, r2] add r0, r0, r1 str r0, [r5, #0x14] add r0, r5, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C54 bl ErrorHandling _02011C54: add r0, r5, #0x0 mov r1, #0x1 add r0, #0x20 strb r1, [r0, #0x0] _02011C5C: cmp r6, #0x0 ble _02011C72 ldr r0, [r4, #0x8] ldr r2, [r5, #0x0] lsl r1, r0, #0x1 ldr r0, _02011CA0 ; =0x020ED399 ldrb r0, [r0, r1] add r0, r2, r0 str r0, [r5, #0x0] str r6, [r5, #0xc] b _02011C96 _02011C72: add r0, r5, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C92 add r3, r5, #0x0 add r3, #0x10 add r2, r5, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 add r5, #0x20 strb r0, [r5, #0x0] b _02011C96 _02011C92: mov r0, #0x1 pop {r4-r6, pc} _02011C96: mov r0, #0x0 pop {r4-r6, pc} nop _02011C9C: .word 0x020ED398 _02011CA0: .word 0x020ED399 thumb_func_start FUN_02011CA4 FUN_02011CA4: ; 0x02011CA4 push {r3-r7, lr} sub sp, #0x38 add r7, r0, #0x0 str r1, [sp, #0x0] add r5, r2, #0x0 add r6, r3, #0x0 cmp r7, #0x0 bne _02011CB8 bl ErrorHandling _02011CB8: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02011CC2 bl ErrorHandling _02011CC2: ldr r0, [sp, #0x0] mov r4, #0x0 str r0, [sp, #0x10] str r4, [sp, #0x4] str r4, [sp, #0x8] str r7, [sp, #0xc] add r0, sp, #0x24 strb r4, [r0, #0x0] ldr r0, [sp, #0x0] str r4, [sp, #0x2c] str r7, [sp, #0x30] cmp r0, #0x0 beq _02011D20 add r7, sp, #0x4 _02011CDE: ldr r0, [sp, #0xc] ldr r1, [sp, #0x0] bl FUN_02011BC8 lsl r1, r0, #0x1 ldr r0, _02011D28 ; =0x020ED398 add r0, r0, r1 ldrb r0, [r0, #0x1] ldr r1, [sp, #0x4] add r1, r1, r0 str r1, [sp, #0x28] ldr r1, [sp, #0x10] sub r1, r1, r0 str r1, [sp, #0x34] str r0, [sp, #0x10] _02011CFC: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r4, r4, #0x1 bl FUN_02011BF4 cmp r0, #0x0 beq _02011CFC add r3, sp, #0x28 add r2, sp, #0x4 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [sp, #0x10] str r0, [sp, #0x0] cmp r0, #0x0 bne _02011CDE _02011D20: add r0, r4, #0x0 add sp, #0x38 pop {r3-r7, pc} nop _02011D28: .word 0x020ED398 thumb_func_start FUN_02011D2C FUN_02011D2C: ; 0x02011D2C push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x10] ldr r0, [sp, #0x30] str r1, [sp, #0x14] str r0, [sp, #0x30] ldr r0, [sp, #0x34] add r5, r2, #0x0 str r0, [sp, #0x34] ldr r0, [sp, #0x30] add r6, r3, #0x0 cmp r0, #0x1 bne _02011D4E mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011D52 _02011D4E: ldr r0, _02011D98 ; =0x04001000 ldr r1, [r0, #0x0] _02011D52: ldr r0, _02011D9C ; =0x00300010 add r7, r1, #0x0 and r7, r0 add r0, r7, #0x0 bl FUN_0201DED0 str r0, [sp, #0x18] ldr r0, [sp, #0x14] ldr r4, [r0, #0xc] cmp r4, r0 beq _02011D92 _02011D68: add r0, r5, #0x0 blx FUN_020B1A24 str r7, [sp, #0x0] ldr r0, [sp, #0x30] str r6, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x34] ldr r3, [sp, #0x18] str r0, [sp, #0xc] ldr r0, [sp, #0x10] add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_02011DA0 add r6, r0, #0x0 ldr r4, [r4, #0xc] ldr r0, [sp, #0x14] add r5, #0x24 cmp r4, r0 bne _02011D68 _02011D92: add sp, #0x1c pop {r4-r7, pc} nop _02011D98: .word 0x04001000 _02011D9C: .word 0x00300010 thumb_func_start FUN_02011DA0 FUN_02011DA0: ; 0x02011DA0 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 str r0, [sp, #0x8] ldr r0, [r6, #0x8] add r5, r2, #0x0 lsl r1, r0, #0x1 ldr r0, _02011E44 ; =0x020ED398 ldrb r0, [r0, r1] str r0, [sp, #0x10] ldr r0, _02011E48 ; =0x020ED399 ldrb r0, [r0, r1] ldr r1, [sp, #0x10] add r4, r1, #0x0 mul r4, r0 str r0, [sp, #0xc] cmp r4, r3 bge _02011DC6 add r4, r3, #0x0 _02011DC6: lsl r4, r4, #0x5 ldr r0, [sp, #0x34] add r1, r4, #0x0 bl FUN_020169D8 add r7, r0, #0x0 ldr r0, [r6, #0x4] ldr r1, [sp, #0x10] str r0, [sp, #0x0] str r7, [sp, #0x4] ldr r0, [sp, #0x8] ldr r2, [sp, #0xc] ldr r3, [r6, #0x0] bl FUN_02011B20 add r0, r7, #0x0 add r1, r4, #0x0 blx DC_FlushRange ldr r0, [sp, #0x30] cmp r0, #0x1 bne _02011E08 ldr r6, [sp, #0x2c] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 blx GX_LoadOBJ mov r0, #0x1 str r6, [r5, #0x4] lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011E1A _02011E08: ldr r6, [sp, #0x2c] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 blx GXS_LoadOBJ ldr r0, _02011E4C ; =0x04001000 str r6, [r5, #0x8] ldr r1, [r0, #0x0] _02011E1A: ldr r0, _02011E50 ; =0x00300010 and r0, r1 str r0, [r5, #0x20] ldr r0, _02011E54 ; =0x0000FFFF str r0, [r5, #0xc] str r0, [r5, #0x10] mov r0, #0x3 str r0, [r5, #0x14] mov r0, #0x0 str r0, [r5, #0x18] mov r0, #0x1 str r0, [r5, #0x1c] ldr r0, [sp, #0x28] str r0, [r5, #0x20] add r0, r7, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x2c] add r0, r0, r4 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02011E44: .word 0x020ED398 _02011E48: .word 0x020ED399 _02011E4C: .word 0x04001000 _02011E50: .word 0x00300010 _02011E54: .word 0x0000FFFF thumb_func_start FUN_02011E58 FUN_02011E58: ; 0x02011E58 push {r3-r7, lr} add r4, r0, #0x0 cmp r1, #0x1 bne _02011E68 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011E6C _02011E68: ldr r0, _02011EA0 ; =0x04001000 ldr r1, [r0, #0x0] _02011E6C: ldr r0, _02011EA4 ; =0x00300010 and r0, r1 bl FUN_0201DED0 ldr r2, [r4, #0xc] mov r3, #0x0 cmp r2, r4 beq _02011E9A ldr r1, _02011EA8 ; =0x020ED398 _02011E7E: ldr r5, [r2, #0x8] lsl r5, r5, #0x1 add r7, r1, r5 ldrb r6, [r1, r5] ldrb r5, [r7, #0x1] mul r5, r6 cmp r5, r0 bge _02011E90 add r5, r0, #0x0 _02011E90: ldr r2, [r2, #0xc] lsl r5, r5, #0x5 add r3, r3, r5 cmp r2, r4 bne _02011E7E _02011E9A: add r0, r3, #0x0 pop {r3-r7, pc} nop _02011EA0: .word 0x04001000 _02011EA4: .word 0x00300010 _02011EA8: .word 0x020ED398 thumb_func_start FUN_02011EAC FUN_02011EAC: ; 0x02011EAC push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r0, r1, #0x0 ldr r4, [r0, #0xc] str r1, [sp, #0x4] add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, r0 beq _02011EFC mov r5, #0x0 _02011EC2: ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_02011F24 ldr r1, [r6, #0x0] str r0, [r1, r5] ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r0, #0x0 bne _02011EDC bl ErrorHandling _02011EDC: ldr r0, [r4, #0x0] add r7, #0x24 lsl r1, r0, #0x3 ldr r0, [r6, #0x0] add r0, r0, r5 str r1, [r0, #0x4] ldr r0, [r4, #0x4] lsl r1, r0, #0x3 ldr r0, [r6, #0x0] add r0, r0, r5 str r1, [r0, #0x8] ldr r4, [r4, #0xc] ldr r0, [sp, #0x4] add r5, #0xc cmp r4, r0 bne _02011EC2 _02011EFC: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02011F00 FUN_02011F00: ; 0x02011F00 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011F20 add r4, r6, #0x0 _02011F0E: ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_0201FFC8 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011F0E _02011F20: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02011F24 FUN_02011F24: ; 0x02011F24 push {r4-r5, lr} sub sp, #0x44 add r5, r0, #0x0 mov r0, #0x0 str r2, [sp, #0x0] str r0, [sp, #0x4] add r4, r1, #0x0 ldr r1, [r5, #0xc] str r1, [sp, #0x8] ldr r1, [r4, #0x8] ldr r2, [r5, #0x0] lsl r1, r1, #0x2 add r1, r2, r1 ldr r1, [r1, #0x30] str r1, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] ldr r2, [r5, #0x20] add r1, sp, #0x20 strb r2, [r1, #0x0] ldr r1, [r5, #0x8] str r1, [sp, #0x24] add r1, sp, #0x0 str r1, [sp, #0x28] ldr r1, [r5, #0x24] str r1, [sp, #0x38] ldr r1, [r5, #0x28] str r1, [sp, #0x3c] ldr r1, [r5, #0x2c] str r1, [sp, #0x40] str r0, [sp, #0x2c] str r0, [sp, #0x30] str r0, [sp, #0x34] ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02011F80 bl FUN_0202011C add r3, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x2c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _02011F80: ldr r1, [r4, #0x0] ldr r2, [r5, #0x18] lsl r1, r1, #0x3 add r1, r2, r1 ldr r0, [sp, #0x2c] lsl r1, r1, #0xc add r0, r0, r1 str r0, [sp, #0x2c] ldr r1, [r4, #0x4] ldr r2, [r5, #0x1c] lsl r1, r1, #0x3 add r1, r2, r1 ldr r0, [sp, #0x30] lsl r1, r1, #0xc add r0, r0, r1 str r0, [sp, #0x30] add r0, sp, #0x24 bl FUN_0201FF84 add sp, #0x44 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02011FAC FUN_02011FAC: ; 0x02011FAC push {r4, lr} mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 bne _02011FBC bl ErrorHandling _02011FBC: mov r0, #0x0 str r0, [r4, #0xc] str r0, [r4, #0x10] add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02011FC8 FUN_02011FC8: ; 0x02011FC8 push {r4, lr} add r4, r0, #0x0 bne _02011FD2 bl ErrorHandling _02011FD2: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02011FDC FUN_02011FDC: ; 0x02011FDC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] cmp r0, r5 beq _02011FF2 _02011FE6: ldr r4, [r0, #0xc] bl FUN_02011FC8 add r0, r4, #0x0 cmp r4, r5 bne _02011FE6 _02011FF2: pop {r3-r5, pc} thumb_func_start FUN_02011FF4 FUN_02011FF4: ; 0x02011FF4 ldr r2, [r1, #0xc] str r2, [r0, #0xc] str r1, [r0, #0x10] ldr r2, [r1, #0xc] str r0, [r2, #0x10] str r0, [r1, #0xc] bx lr .balign 4 thumb_func_start FUN_02012004 FUN_02012004: ; 0x02012004 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r6, [sp, #0x20] str r1, [sp, #0x4] add r5, r2, #0x0 add r4, r3, #0x0 str r0, [sp, #0x24] mov r7, #0x0 _02012018: ldr r1, [r4, #0x0] ldr r0, [sp, #0x4] ldr r2, [r5, #0x0] add r0, r0, r1 ldr r1, [sp, #0x0] add r1, r1, r2 add r2, r6, #0x0 blx memcpy ldr r1, [r5, #0x0] ldr r0, [sp, #0x24] add r7, r7, #0x1 add r0, r1, r0 str r0, [r5, #0x0] ldr r0, [r4, #0x0] add r0, r0, r6 str r0, [r4, #0x0] cmp r7, #0x8 blt _02012018 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02012044 FUN_02012044: ; 0x02012044 push {r4-r6, lr} add r5, r3, #0x0 bl LoadFromNarc_2 add r4, r0, #0x0 bne _02012054 bl ErrorHandling _02012054: add r0, r4, #0x0 add r1, r5, #0x0 blx FUN_020B0088 add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 bl ErrorHandling _02012066: cmp r6, #0x0 bne _0201206E bl ErrorHandling _0201206E: add r0, r4, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02012078 FUN_02012078: ; 0x02012078 push {r4-r7, lr} sub sp, #0x2c ldr r4, [sp, #0x40] str r0, [sp, #0x8] add r6, r0, r2 ldrh r0, [r4, #0x2] str r1, [sp, #0xc] add r5, r3, #0x0 cmp r0, r6 bge _02012090 bl ErrorHandling _02012090: ldr r0, [sp, #0xc] ldrh r1, [r4, #0x0] add r0, r0, r5 str r0, [sp, #0x14] cmp r1, r0 bge _020120A0 bl ErrorHandling _020120A0: ldr r0, [r4, #0x14] str r0, [sp, #0x20] ldr r0, [sp, #0x44] str r0, [sp, #0x1c] ldrh r0, [r4, #0x2] lsl r7, r0, #0x2 ldr r0, [sp, #0xc] add r1, r0, #0x0 mul r1, r7 ldr r0, [sp, #0x8] str r1, [sp, #0x18] lsl r1, r0, #0x2 ldr r0, [sp, #0x18] str r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x0 str r0, [sp, #0x24] ldr r1, [sp, #0xc] ldr r0, [sp, #0x14] cmp r1, r0 bge _0201210A _020120CC: ldr r4, [sp, #0x8] add r0, r4, #0x0 cmp r0, r6 bge _020120F8 ldr r0, [sp, #0x18] lsl r1, r0, #0x3 ldr r0, [sp, #0x10] add r5, r0, r1 _020120DC: str r5, [sp, #0x28] mov r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x20] ldr r1, [sp, #0x1c] add r2, sp, #0x28 add r3, sp, #0x24 str r7, [sp, #0x4] bl FUN_02012004 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _020120DC _020120F8: ldr r0, [sp, #0x18] add r0, r0, r7 str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r1, r0, #0x1 ldr r0, [sp, #0x14] str r1, [sp, #0xc] cmp r1, r0 blt _020120CC _0201210A: add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02012110 FUN_02012110: ; 0x02012110 push {r4-r5} sub sp, #0x8 ldr r2, _02012148 ; =0x020ED3B0 add r1, sp, #0x0 ldr r3, [r2, #0x0] ldr r2, [r2, #0x4] str r3, [sp, #0x0] str r2, [sp, #0x4] ldr r2, _0201214C ; =0x000001EF mov r5, #0x0 add r3, r2, #0x0 _02012126: ldr r4, [r1, #0x0] cmp r4, r3 beq _02012140 cmp r4, r0 bne _02012138 add sp, #0x8 mov r0, #0x1 pop {r4-r5} bx lr _02012138: add r5, r5, #0x1 add r1, r1, #0x4 cmp r5, r2 blt _02012126 _02012140: mov r0, #0x0 add sp, #0x8 pop {r4-r5} bx lr .balign 4 _02012148: .word 0x020ED3B0 _0201214C: .word 0x000001EF thumb_func_start FUN_02012150 FUN_02012150: ; 0x02012150 push {r3-r4, lr} sub sp, #0xc add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x8] add r3, sp, #0x8 bl FUN_02012044 ldr r0, [sp, #0x8] ldr r0, [r0, #0x14] bl FUN_02008A74 ldr r0, [sp, #0x34] bl FUN_02012110 ldr r1, [sp, #0x30] cmp r1, #0x2 bne _02012184 cmp r0, #0x1 bne _02012184 ldr r0, [sp, #0x8] ldr r1, [sp, #0x28] ldr r0, [r0, #0x14] ldr r2, [sp, #0x2c] bl FUN_02008904 _02012184: ldr r0, [sp, #0x8] ldr r1, [sp, #0x18] str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x1c] str r0, [sp, #0x4] ldr r3, [sp, #0x20] add r0, r4, #0x0 bl FUN_02012078 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0201219C FUN_0201219C: ; 0x0201219C push {r4-r7, lr} sub sp, #0x24 add r7, r1, #0x0 add r5, r2, #0x0 ldr r2, [sp, #0x3c] ldr r1, [sp, #0x40] add r6, r0, #0x0 mul r1, r2 add r0, r5, #0x0 lsl r1, r1, #0x5 str r3, [sp, #0x20] bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x38] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x3c] add r1, r7, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x40] add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x44] str r4, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x48] str r0, [sp, #0x14] ldr r0, [sp, #0x4c] str r0, [sp, #0x18] ldr r0, [sp, #0x50] str r0, [sp, #0x1c] add r0, r6, #0x0 bl FUN_02012150 add r0, r4, #0x0 add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_020121E8 FUN_020121E8: ; 0x020121E8 push {r3-r7, lr} sub sp, #0x30 str r3, [sp, #0x8] ldr r3, [sp, #0x48] str r3, [sp, #0x48] mov r3, #0x0 str r3, [sp, #0x2c] bl LoadFromNarc_2 str r0, [sp, #0x20] cmp r0, #0x0 bne _02012204 bl ErrorHandling _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c blx FUN_020B0088 cmp r0, #0x0 bne _02012214 bl ErrorHandling _02012214: ldr r1, [sp, #0x4c] ldr r0, [sp, #0x8] add r6, r0, r1 ldr r0, [sp, #0x2c] ldrh r0, [r0, #0x2] cmp r0, r6 bge _02012226 bl ErrorHandling _02012226: ldr r1, [sp, #0x50] ldr r0, [sp, #0x48] add r0, r0, r1 str r0, [sp, #0x10] ldr r0, [sp, #0x2c] ldrh r1, [r0, #0x0] ldr r0, [sp, #0x10] cmp r1, r0 bge _0201223C bl ErrorHandling _0201223C: ldr r0, [sp, #0x2c] ldr r0, [r0, #0x14] str r0, [sp, #0x1c] bl FUN_02008A74 ldr r0, [sp, #0x54] str r0, [sp, #0x18] ldr r0, [sp, #0x2c] ldrh r0, [r0, #0x2] lsl r7, r0, #0x2 ldr r0, [sp, #0x48] add r1, r0, #0x0 mul r1, r7 ldr r0, [sp, #0x8] str r1, [sp, #0x14] lsl r1, r0, #0x2 ldr r0, [sp, #0x14] str r1, [sp, #0xc] add r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x0 str r0, [sp, #0x24] ldr r1, [sp, #0x48] ldr r0, [sp, #0x10] cmp r1, r0 bge _020122AE _02012270: ldr r4, [sp, #0x8] add r0, r4, #0x0 cmp r0, r6 bge _0201229C ldr r0, [sp, #0x14] lsl r1, r0, #0x3 ldr r0, [sp, #0xc] add r5, r0, r1 _02012280: str r5, [sp, #0x28] mov r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r2, sp, #0x28 add r3, sp, #0x24 str r7, [sp, #0x4] bl FUN_02012004 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _02012280 _0201229C: ldr r0, [sp, #0x14] add r0, r0, r7 str r0, [sp, #0x14] ldr r0, [sp, #0x48] add r1, r0, #0x1 ldr r0, [sp, #0x10] str r1, [sp, #0x48] cmp r1, r0 blt _02012270 _020122AE: ldr r0, [sp, #0x20] bl FUN_02016A18 add sp, #0x30 pop {r3-r7, pc} thumb_func_start FUN_020122B8 FUN_020122B8: ; 0x020122B8 push {r4-r7, lr} sub sp, #0x14 add r7, r1, #0x0 add r5, r2, #0x0 ldr r2, [sp, #0x2c] ldr r1, [sp, #0x30] add r6, r0, #0x0 mul r1, r2 add r0, r5, #0x0 lsl r1, r1, #0x5 str r3, [sp, #0x10] bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x28] ldr r3, [sp, #0x10] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] add r1, r7, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x30] add r2, r5, #0x0 str r0, [sp, #0x8] add r0, r6, #0x0 str r4, [sp, #0xc] bl FUN_020121E8 add r0, r4, #0x0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020122F4 FUN_020122F4: ; 0x020122F4 push {r3-r7, lr} sub sp, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x44] ldr r1, [sp, #0x38] str r0, [sp, #0x18] ldr r0, [sp, #0x48] str r2, [sp, #0x4] str r0, [sp, #0x14] add r0, r2, #0x0 add r7, r0, r1 ldr r1, [sp, #0x3c] add r0, r3, #0x0 add r0, r0, r1 add r1, r3, #0x0 str r3, [sp, #0x8] ldr r5, [sp, #0x40] str r0, [sp, #0x10] cmp r1, r0 bge _0201236C add r0, r3, #0x0 lsl r0, r0, #0x5 str r0, [sp, #0xc] add r0, r2, #0x0 lsl r0, r0, #0x5 str r0, [sp, #0x1c] _02012328: ldr r6, [sp, #0x4] add r0, r6, #0x0 cmp r0, r7 bge _0201235A ldr r1, [sp, #0x0] ldr r0, [sp, #0xc] add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x1c] add r4, r0, r2 _0201233C: ldr r1, [r5, #0x0] ldr r0, [sp, #0x14] mov r2, #0x20 add r0, r0, r1 ldr r1, [sp, #0x18] add r1, r1, r4 blx memcpy ldr r0, [r5, #0x0] add r6, r6, #0x1 add r0, #0x20 str r0, [r5, #0x0] add r4, #0x20 cmp r6, r7 blt _0201233C _0201235A: ldr r0, [sp, #0xc] add r0, #0x20 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 ldr r0, [sp, #0x10] str r1, [sp, #0x8] cmp r1, r0 blt _02012328 _0201236C: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02012370 FUN_02012370: ; 0x02012370 push {r3-r4, lr} sub sp, #0x14 add r4, r2, #0x0 ldr r2, [r4, #0x8] str r2, [sp, #0x0] ldr r2, [r4, #0xc] str r2, [sp, #0x4] ldr r2, [sp, #0x20] str r3, [sp, #0x8] str r2, [sp, #0xc] ldr r2, [sp, #0x24] str r2, [sp, #0x10] ldr r2, [r4, #0x0] ldr r3, [r4, #0x4] bl FUN_020122F4 add sp, #0x14 pop {r3-r4, pc} thumb_func_start FUN_02012394 FUN_02012394: ; 0x02012394 push {r4-r7, lr} sub sp, #0x7c str r0, [sp, #0xc] ldr r0, [sp, #0x9c] mov r12, r3 add r5, r2, #0x0 ldr r6, [sp, #0x94] ldr r7, [sp, #0x98] ldr r3, _020123FC ; =0x020ED3D8 str r1, [sp, #0x10] str r0, [sp, #0x9c] add r2, sp, #0x1c mov r4, #0xc _020123AE: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r4, r4, #0x1 bne _020123AE mov r0, #0x0 str r0, [sp, #0x18] ldr r0, [sp, #0x90] ldr r1, [sp, #0x10] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0xc] add r2, r5, #0x0 mov r3, r12 str r7, [sp, #0x8] bl FUN_020122B8 str r0, [sp, #0x14] mov r4, #0x0 add r5, sp, #0x1c _020123D4: ldr r0, [sp, #0x14] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x9c] add r2, r5, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 add r3, sp, #0x18 bl FUN_02012370 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x6 blt _020123D4 ldr r0, [sp, #0x14] bl FUN_02016A18 add sp, #0x7c pop {r4-r7, pc} nop _020123FC: .word 0x020ED3D8 thumb_func_start FUN_02012400 FUN_02012400: ; 0x02012400 push {r4, lr} sub sp, #0x10 ldr r4, [r3, #0x4] str r4, [sp, #0x0] ldr r4, [r3, #0x8] str r4, [sp, #0x4] ldr r4, [r3, #0xc] str r4, [sp, #0x8] ldr r4, [sp, #0x18] str r4, [sp, #0xc] ldr r3, [r3, #0x0] bl FUN_02012394 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_02012420 FUN_02012420: ; 0x02012420 push {r4-r7, lr} sub sp, #0x14 ldr r4, _02012448 ; =0x020ED3B8 add r5, r3, #0x0 add r3, sp, #0x4 add r7, r0, #0x0 mov r12, r1 add r6, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r7, #0x0 mov r1, r12 add r3, r6, #0x0 str r5, [sp, #0x0] bl FUN_02012400 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02012448: .word 0x020ED3B8 thumb_func_start FUN_0201244C FUN_0201244C: ; 0x0201244C push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x32 add r7, r2, #0x0 add r5, r0, #0x0 add r0, r7, #0x0 lsl r1, r1, #0x6 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_02012420 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02012470 FUN_02012470: ; 0x02012470 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r7, #0x0 mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl LoadFromNarc_2 add r1, sp, #0x0 add r5, r0, #0x0 blx FUN_020B0138 cmp r0, #0x1 beq _0201249C bl ErrorHandling _0201249C: ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx MIi_CpuCopy16 add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020124B4 FUN_020124B4: ; 0x020124B4 push {r4-r7, lr} sub sp, #0x8c str r0, [sp, #0x1c] ldr r0, [sp, #0xac] mov r12, r3 add r5, r2, #0x0 ldr r6, [sp, #0xa4] ldr r7, [sp, #0xa8] ldr r3, _0201252C ; =0x020ED438 str r1, [sp, #0x20] str r0, [sp, #0xac] add r2, sp, #0x2c mov r4, #0xc _020124CE: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r4, r4, #0x1 bne _020124CE mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0xa0] ldr r1, [sp, #0x20] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0xb0] str r7, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0xb4] add r2, r5, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0xb8] mov r3, r12 str r0, [sp, #0x14] ldr r0, [sp, #0xbc] str r0, [sp, #0x18] ldr r0, [sp, #0x1c] bl FUN_0201219C str r0, [sp, #0x24] mov r4, #0x0 add r5, sp, #0x2c _02012504: ldr r0, [sp, #0x24] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0xac] add r2, r5, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 add r3, sp, #0x28 bl FUN_02012370 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x6 blt _02012504 ldr r0, [sp, #0x24] bl FUN_02016A18 add sp, #0x8c pop {r4-r7, pc} nop _0201252C: .word 0x020ED438 thumb_func_start FUN_02012530 FUN_02012530: ; 0x02012530 push {r4, lr} sub sp, #0x20 ldr r4, [r3, #0x4] str r4, [sp, #0x0] ldr r4, [r3, #0x8] str r4, [sp, #0x4] ldr r4, [r3, #0xc] str r4, [sp, #0x8] ldr r4, [sp, #0x28] str r4, [sp, #0xc] ldr r4, [sp, #0x2c] str r4, [sp, #0x10] ldr r4, [sp, #0x30] str r4, [sp, #0x14] ldr r4, [sp, #0x34] str r4, [sp, #0x18] ldr r4, [sp, #0x38] str r4, [sp, #0x1c] ldr r3, [r3, #0x0] bl FUN_020124B4 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02012560 FUN_02012560: ; 0x02012560 push {r4-r7, lr} sub sp, #0x24 ldr r4, _02012598 ; =0x020ED3C8 add r5, r3, #0x0 add r3, sp, #0x14 add r7, r0, #0x0 mov r12, r1 add r6, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [sp, #0x38] str r5, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, r12 str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r3, r6, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x44] str r0, [sp, #0x10] add r0, r7, #0x0 bl FUN_02012530 add sp, #0x24 pop {r4-r7, pc} .balign 4 _02012598: .word 0x020ED3C8 thumb_func_start FUN_0201259C FUN_0201259C: ; 0x0201259C push {r3, lr} blx RTC_Init ldr r3, _020125CC ; =0x021C4808 mov r0, #0x0 add r2, r3, #0x0 add r1, r0, #0x0 stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} ldr r1, _020125D0 ; =0x021C4808 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] add r0, r3, #0x0 bl FUN_02012634 pop {r3, pc} .balign 4 _020125CC: .word 0x021C4808 _020125D0: .word 0x021C4808 thumb_func_start FUN_020125D4 FUN_020125D4: ; 0x020125D4 push {r3, lr} ldr r0, _020125F4 ; =0x021C4808 ldr r1, [r0, #0x4] cmp r1, #0x0 bne _020125F2 ldr r1, [r0, #0x8] add r1, r1, #0x1 str r1, [r0, #0x8] cmp r1, #0xa ble _020125F2 mov r1, #0x0 str r1, [r0, #0x8] ldr r0, _020125F8 ; =0x021C4808 bl FUN_02012634 _020125F2: pop {r3, pc} .balign 4 _020125F4: .word 0x021C4808 _020125F8: .word 0x021C4808 thumb_func_start FUN_020125FC FUN_020125FC: ; 0x020125FC push {r4, lr} add r4, r1, #0x0 str r0, [r4, #0xc] cmp r0, #0x0 beq _0201260A bl ErrorHandling _0201260A: add r3, r4, #0x0 mov r0, #0x1 add r2, r4, #0x0 add r3, #0x2c str r0, [r4, #0x0] ldmia r3!, {r0-r1} add r2, #0x10 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} add r3, r4, #0x0 add r3, #0x3c add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] mov r0, #0x0 str r0, [r4, #0x4] pop {r4, pc} thumb_func_start FUN_02012634 FUN_02012634: ; 0x02012634 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 str r0, [r4, #0x4] add r0, r4, #0x0 add r1, r4, #0x0 ldr r2, _02012658 ; =FUN_020125FC add r0, #0x2c add r1, #0x3c add r3, r4, #0x0 blx RTC_GetDateTimeAsync str r0, [r4, #0xc] cmp r0, #0x0 beq _02012656 bl ErrorHandling _02012656: pop {r4, pc} .balign 4 _02012658: .word FUN_020125FC thumb_func_start FUN_0201265C FUN_0201265C: ; 0x0201265C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02012684 ; =0x021C4808 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0201266E bl ErrorHandling _0201266E: ldr r2, _02012688 ; =0x021C4818 ldmia r2!, {r0-r1} stmia r5!, {r0-r1} ldmia r2!, {r0-r1} ldr r2, _0201268C ; =0x021C4828 stmia r5!, {r0-r1} ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _02012684: .word 0x021C4808 _02012688: .word 0x021C4818 _0201268C: .word 0x021C4828 thumb_func_start FUN_02012690 FUN_02012690: ; 0x02012690 push {r4, lr} add r4, r0, #0x0 ldr r0, _020126AC ; =0x021C4808 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126A0 bl ErrorHandling _020126A0: ldr r2, _020126B0 ; =0x021C4828 ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] pop {r4, pc} .balign 4 _020126AC: .word 0x021C4808 _020126B0: .word 0x021C4828 thumb_func_start FUN_020126B4 FUN_020126B4: ; 0x020126B4 push {r4, lr} add r4, r0, #0x0 ldr r0, _020126D0 ; =0x021C4808 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126C4 bl ErrorHandling _020126C4: ldr r2, _020126D4 ; =0x021C4818 ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldmia r2!, {r0-r1} stmia r4!, {r0-r1} pop {r4, pc} .balign 4 _020126D0: .word 0x021C4808 _020126D4: .word 0x021C4818 thumb_func_start FUN_020126D8 FUN_020126D8: ; 0x020126D8 push {r3-r4} ldr r4, _020126F8 ; =0x021C4828 mov r0, #0x3c ldr r1, [r4, #0x4] ldr r3, [r4, #0x8] add r2, r1, #0x0 mul r2, r0 mov r0, #0xe1 ldr r1, [r4, #0x0] lsl r0, r0, #0x4 mul r0, r1 add r0, r2, r0 add r0, r3, r0 pop {r3-r4} bx lr nop _020126F8: .word 0x021C4828 thumb_func_start FUN_020126FC FUN_020126FC: ; 0x020126FC ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond ldr r0, _02012708 ; =0x021C4818 ldr r1, _0201270C ; =0x021C4828 bx r3 .balign 4 _02012704: .word RTC_ConvertDateTimeToSecond _02012708: .word 0x021C4818 _0201270C: .word 0x021C4828 thumb_func_start FUN_02012710 FUN_02012710: ; 0x02012710 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r2, [r5, #0x4] ldr r0, _02012778 ; =0x020ED4B2 lsl r1, r2, #0x1 ldrh r0, [r0, r1] ldr r3, [r5, #0x8] add r4, r3, r0 cmp r2, #0x3 blo _02012752 ldr r6, [r5, #0x0] mov r0, #0x1e lsr r2, r6, #0x1f lsl r1, r6, #0x1e sub r1, r1, r2 ror r1, r0 add r0, r2, r1 bne _02012742 add r0, r6, #0x0 mov r1, #0x64 blx _s32_div_f cmp r1, #0x0 bne _02012750 _02012742: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 blx _s32_div_f cmp r1, #0x0 bne _02012752 _02012750: add r4, r4, #0x1 _02012752: add r6, r5, #0x0 add r3, sp, #0x0 add r2, r3, #0x0 ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r0, r2, #0x0 blx RTC_ConvertDateToDay add r0, r5, #0x0 blx RTC_ConvertDateToDay add r0, r4, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _02012778: .word 0x020ED4B2 thumb_func_start FUN_0201277C FUN_0201277C: ; 0x0201277C push {r3, lr} bl FUN_02012794 cmp r0, #0x3 beq _0201278A cmp r0, #0x4 bne _0201278E _0201278A: mov r0, #0x1 pop {r3, pc} _0201278E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02012794 FUN_02012794: ; 0x02012794 push {lr} sub sp, #0xc add r0, sp, #0x0 bl FUN_02012690 ldr r0, [sp, #0x0] bl FUN_020127A8 add sp, #0xc pop {pc} thumb_func_start FUN_020127A8 FUN_020127A8: ; 0x020127A8 push {r4, lr} add r4, r0, #0x0 bmi _020127B2 cmp r4, #0x18 blt _020127B6 _020127B2: bl ErrorHandling _020127B6: ldr r0, _020127BC ; =0x020ED4CC ldrb r0, [r0, r4] pop {r4, pc} .balign 4 _020127BC: .word 0x020ED4CC thumb_func_start FUN_020127C0 FUN_020127C0: ; 0x020127C0 push {r4-r7, lr} sub sp, #0x24 add r6, r3, #0x0 ldr r3, _0201282C ; =0x020ED4A4 add r4, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r2, sp, #0x14 ldmia r3!, {r0-r1} str r2, [sp, #0x0] stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r3, _02012830 ; =0x020ED498 add r2, sp, #0x8 ldmia r3!, {r0-r1} str r2, [sp, #0x4] stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r1, [sp, #0x4] str r0, [r2, #0x0] ldr r0, [sp, #0x0] blx RTC_ConvertDateTimeToSecond add r2, r1, #0x0 add r3, r0, #0x0 mov r1, #0x0 ldr r0, _02012834 ; =0xBC19137F eor r1, r2 eor r0, r3 orr r0, r1 beq _02012804 bl ErrorHandling _02012804: sub r0, r4, r5 mov r12, r7 mov r0, r12 sbc r0, r6 bge _02012818 sub r0, r5, r4 sbc r6, r7 add sp, #0x24 add r1, r6, #0x0 pop {r4-r7, pc} _02012818: ldr r0, _02012834 ; =0xBC19137F mov r1, #0x0 sub r0, r0, r4 sbc r1, r7 add r0, r5, r0 adc r6, r1 add r1, r6, #0x0 add sp, #0x24 pop {r4-r7, pc} nop _0201282C: .word 0x020ED4A4 _02012830: .word 0x020ED498 _02012834: .word 0xBC19137F thumb_func_start FUN_02012838 FUN_02012838: ; 0x02012838 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x3 bl FUN_02016998 cmp r0, #0x0 beq _0201286E mov r2, #0x0 cmp r5, #0x0 bls _02012862 add r3, r0, #0x0 add r1, r2, #0x0 _02012856: str r1, [r3, #0x0] str r1, [r3, #0x4] add r2, r2, #0x1 add r3, #0x8 cmp r2, r5 blo _02012856 _02012862: mov r1, #0x0 lsl r2, r2, #0x3 mvn r1, r1 str r1, [r0, r2] add r1, r0, r2 str r4, [r1, #0x4] _0201286E: pop {r3-r5, pc} thumb_func_start FUN_02012870 FUN_02012870: ; 0x02012870 push {r4, lr} add r4, r0, #0x0 bl FUN_0201291C add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02012880 FUN_02012880: ; 0x02012880 push {r3-r7, lr} add r6, r1, #0x0 add r1, sp, #0x0 add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_020128E0 add r4, r0, #0x0 beq _0201289E add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200A914 str r0, [r4, #0x0] str r5, [r4, #0x4] _0201289E: pop {r3-r7, pc} thumb_func_start FUN_020128A0 FUN_020128A0: ; 0x020128A0 push {r3-r6, lr} sub sp, #0x4 add r6, r1, #0x0 add r1, sp, #0x0 add r5, r2, #0x0 bl FUN_020128E0 add r4, r0, #0x0 beq _020128BE ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_02021ACC str r0, [r4, #0x0] str r5, [r4, #0x4] _020128BE: add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020128C4 FUN_020128C4: ; 0x020128C4 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 add r1, sp, #0x0 bl FUN_020128E0 cmp r0, #0x0 beq _020128DC ldr r1, [r4, #0x0] str r1, [r0, #0x0] ldr r1, [r4, #0x4] str r1, [r0, #0x4] _020128DC: add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020128E0 FUN_020128E0: ; 0x020128E0 push {r4, lr} ldr r3, [r0, #0x0] cmp r3, #0x0 beq _02012900 mov r2, #0x0 mvn r2, r2 _020128EC: cmp r3, r2 bne _020128F8 bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020128F8: add r0, #0x8 ldr r3, [r0, #0x0] cmp r3, #0x0 bne _020128EC _02012900: mov r2, #0x0 mvn r2, r2 add r4, r0, #0x0 cmp r3, r2 beq _02012912 _0201290A: add r0, #0x8 ldr r3, [r0, #0x0] cmp r3, r2 bne _0201290A _02012912: ldr r0, [r0, #0x4] str r0, [r1, #0x0] add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201291C FUN_0201291C: ; 0x0201291C push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x0 ldr r1, [r5, #0x0] mvn r0, r0 cmp r1, r0 beq _02012942 mov r4, #0x0 add r6, r0, #0x0 _0201292E: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02012942 bl FUN_02021A20 str r4, [r5, #0x0] add r5, #0x8 ldr r0, [r5, #0x0] cmp r0, r6 bne _0201292E _02012942: pop {r4-r6, pc} thumb_func_start FUN_02012944 FUN_02012944: ; 0x02012944 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0xc add r4, r2, #0x0 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] mov r1, #0x1 strb r1, [r0, #0x9] str r5, [r0, #0x0] str r4, [r0, #0x4] pop {r3-r5, pc} thumb_func_start FUN_02012974 FUN_02012974: ; 0x02012974 push {r4, lr} add r4, r0, #0x0 bne _0201297E bl ErrorHandling _0201297E: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02012988 FUN_02012988: ; 0x02012988 push {r4, lr} add r4, r0, #0x0 bne _02012992 bl ErrorHandling _02012992: ldrb r0, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_0201299C FUN_0201299C: ; 0x0201299C push {r4, lr} add r4, r0, #0x0 bne _020129A6 bl ErrorHandling _020129A6: ldrb r1, [r4, #0x8] mov r0, #0x1 eor r0, r1 lsl r0, r0, #0x2 ldr r0, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_020129B4 FUN_020129B4: ; 0x020129B4 cmp r0, #0x0 beq _020129C6 ldrb r1, [r0, #0x9] cmp r1, #0x0 beq _020129C6 ldrb r2, [r0, #0x8] mov r1, #0x1 eor r1, r2 strb r1, [r0, #0x8] _020129C6: bx lr thumb_func_start FUN_020129C8 FUN_020129C8: ; 0x020129C8 push {r3, lr} mov r0, #0x0 blx MI_StopDma mov r0, #0x0 blx MI_WaitDma pop {r3, pc} thumb_func_start FUN_020129D8 FUN_020129D8: ; 0x020129D8 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 cmp r3, #0x1 bne _020129F2 mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 blx MI_HBlankDmaCopy32 pop {r4-r6, pc} _020129F2: mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 blx MI_HBlankDmaCopy16 pop {r4-r6, pc} thumb_func_start FUN_02012A00 FUN_02012A00: ; 0x02012A00 push {r3-r5, lr} ldr r1, _02012A2C ; =0x0000079C add r5, r0, #0x0 bl FUN_02016998 ldr r2, _02012A2C ; =0x0000079C mov r1, #0x0 add r4, r0, #0x0 blx Call_FillMemWithValue mov r2, #0x3 lsl r2, r2, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r4, r2 bl FUN_02012944 mov r1, #0x6 lsl r1, r1, #0x8 str r0, [r4, r1] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02012A2C: .word 0x0000079C thumb_func_start FUN_02012A30 FUN_02012A30: ; 0x02012A30 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _02012A42 bl ErrorHandling _02012A42: ldr r0, _02012AB0 ; =0x00000604 ldr r0, [r5, r0] cmp r0, #0x0 beq _02012A4E bl ErrorHandling _02012A4E: ldr r0, _02012AB4 ; =0x0000078C mov r2, #0x0 strb r4, [r5, r0] add r1, r0, #0x1 strb r6, [r5, r1] add r1, r0, #0x0 add r1, #0xc strh r2, [r5, r1] add r2, sp, #0x8 mov r1, #0x14 ldrsh r2, [r2, r1] add r1, r0, #0x0 add r1, #0xe strh r2, [r5, r1] add r1, r0, #0x4 ldr r2, [sp, #0x20] add r0, #0x8 str r2, [r5, r1] ldr r1, [sp, #0x24] ldr r3, [sp, #0x18] str r1, [r5, r0] ldr r0, _02012AB8 ; =0x0000060C mov r1, #0xc0 add r0, r5, r0 add r2, r7, #0x0 bl FUN_02012B88 ldr r0, _02012ABC ; =FUN_02012BE4 ldr r2, [sp, #0x28] add r1, r5, #0x0 bl FUN_0200CA44 ldr r1, _02012AB0 ; =0x00000604 mov r2, #0x3 str r0, [r5, r1] ldr r0, _02012AC0 ; =0x00000794 add r1, r5, #0x0 ldr r0, [r5, r0] lsl r2, r2, #0x8 blx MIi_CpuClear32 ldr r0, _02012AC0 ; =0x00000794 mov r2, #0x3 lsl r2, r2, #0x8 ldr r0, [r5, r0] add r1, r5, r2 blx MIi_CpuClear32 pop {r3-r7, pc} .balign 4 _02012AB0: .word 0x00000604 _02012AB4: .word 0x0000078C _02012AB8: .word 0x0000060C _02012ABC: .word FUN_02012BE4 _02012AC0: .word 0x00000794 thumb_func_start FUN_02012AC4 FUN_02012AC4: ; 0x02012AC4 push {r4, lr} add r4, r0, #0x0 bne _02012ACE bl ErrorHandling _02012ACE: ldr r0, _02012AF8 ; =0x00000604 ldr r0, [r4, r0] cmp r0, #0x0 beq _02012AF4 bl FUN_0200CAB4 ldr r0, _02012AF8 ; =0x00000604 mov r1, #0x0 str r1, [r4, r0] sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02012988 ldr r1, _02012AFC ; =0x00000794 mov r2, #0x3 ldr r1, [r4, r1] lsl r2, r2, #0x8 blx Call_FillMemWithValue _02012AF4: pop {r4, pc} nop _02012AF8: .word 0x00000604 _02012AFC: .word 0x00000794 thumb_func_start FUN_02012B00 FUN_02012B00: ; 0x02012B00 push {r4, lr} add r4, r0, #0x0 bl FUN_02012AC4 bl FUN_02012C90 mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_02012974 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02012B20 FUN_02012B20: ; 0x02012B20 mov r1, #0x6 lsl r1, r1, #0x8 ldr r3, _02012B2C ; =FUN_02012988 ldr r0, [r0, r1] bx r3 nop _02012B2C: .word FUN_02012988 thumb_func_start FUN_02012B30 FUN_02012B30: ; 0x02012B30 push {r4, lr} add r4, r0, #0x0 beq _02012B5E ldr r0, _02012B60 ; =0x00000604 ldr r1, [r4, r0] cmp r1, #0x0 beq _02012B5E sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020129B4 mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_02012988 add r1, r0, #0x0 ldr r0, _02012B64 ; =0x00000794 mov r2, #0x3 ldr r0, [r4, r0] lsl r2, r2, #0x8 blx MIi_CpuClear32 _02012B5E: pop {r4, pc} .balign 4 _02012B60: .word 0x00000604 _02012B64: .word 0x00000794 thumb_func_start FUN_02012B68 FUN_02012B68: ; 0x02012B68 push {r4, lr} add r4, r0, #0x0 beq _02012B80 ldr r0, _02012B84 ; =0x00000604 ldr r0, [r4, r0] cmp r0, #0x0 beq _02012B80 bl FUN_02012C90 add r0, r4, #0x0 bl FUN_02012C98 _02012B80: pop {r4, pc} nop _02012B84: .word 0x00000604 thumb_func_start FUN_02012B88 FUN_02012B88: ; 0x02012B88 push {r4-r7, lr} sub sp, #0xc mov r4, #0x0 add r7, r1, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 str r2, [sp, #0x0] cmp r7, #0x0 bls _02012BD6 asr r0, r3, #0x1f str r3, [sp, #0x4] str r0, [sp, #0x8] _02012BA0: asr r0, r4, #0x4 lsl r1, r0, #0x2 ldr r0, _02012BDC ; =0x020FFA38 ldr r2, [sp, #0x4] ldrsh r0, [r0, r1] ldr r3, [sp, #0x8] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _02012BE0 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r0, r0, #0xc strh r0, [r5, #0x0] ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r5, r5, #0x2 cmp r6, r7 blo _02012BA0 _02012BD6: add sp, #0xc pop {r4-r7, pc} nop _02012BDC: .word 0x020FFA38 _02012BE0: .word 0x00000000 thumb_func_start FUN_02012BE4 FUN_02012BE4: ; 0x02012BE4 push {r3-r7, lr} mov r0, #0x6 add r6, r1, #0x0 lsl r0, r0, #0x8 ldr r0, [r6, r0] bl FUN_02012988 add r5, r0, #0x0 ldr r0, _02012C80 ; =0x00000798 mov r1, #0x64 ldrsh r0, [r6, r0] blx _s32_div_f lsl r0, r0, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C84 ; =0x0000078C ldrb r4, [r6, r0] add r0, r0, #0x1 ldrb r0, [r6, r0] cmp r4, r0 bgt _02012C4C lsl r0, r4, #0x2 add r5, r5, r0 _02012C12: ldr r2, [r5, #0x0] lsl r0, r2, #0x10 asr r7, r0, #0x10 lsl r0, r3, #0x1 add r1, r6, r0 ldr r0, _02012C88 ; =0x0000060C ldrsh r0, [r1, r0] add r0, r7, r0 lsl r0, r0, #0x10 asr r1, r0, #0x10 lsr r0, r2, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r1, r1, #0x10 lsl r0, r0, #0x10 lsr r1, r1, #0x10 orr r0, r1 stmia r5!, {r0} add r0, r3, #0x1 mov r1, #0xc0 blx _s32_div_f lsl r0, r1, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C8C ; =0x0000078D add r4, r4, #0x1 ldrb r0, [r6, r0] cmp r4, r0 ble _02012C12 _02012C4C: ldr r1, _02012C80 ; =0x00000798 add r0, r1, #0x2 ldrsh r2, [r6, r1] ldrsh r0, [r6, r0] add r4, r6, r1 add r0, r2, r0 strh r0, [r4, #0x0] ldrsh r0, [r6, r1] mov r1, #0x4b lsl r1, r1, #0x8 cmp r0, r1 blt _02012C70 mov r0, #0x0 ldrsh r0, [r4, r0] blx _s32_div_f strh r1, [r4, #0x0] pop {r3-r7, pc} _02012C70: cmp r0, #0x0 bge _02012C7C mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, r1 strh r0, [r4, #0x0] _02012C7C: pop {r3-r7, pc} nop _02012C80: .word 0x00000798 _02012C84: .word 0x0000078C _02012C88: .word 0x0000060C _02012C8C: .word 0x0000078D thumb_func_start FUN_02012C90 FUN_02012C90: ; 0x02012C90 ldr r3, _02012C94 ; =FUN_020129C8 bx r3 .balign 4 _02012C94: .word FUN_020129C8 thumb_func_start FUN_02012C98 FUN_02012C98: ; 0x02012C98 push {r3-r5, lr} add r4, r0, #0x0 bne _02012CA2 bl ErrorHandling _02012CA2: mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_0201299C mov r1, #0x3 lsl r1, r1, #0x8 add r5, r0, #0x0 blx DC_FlushRange mov r1, #0x79 lsl r1, r1, #0x4 ldr r1, [r4, r1] add r0, r5, #0x0 mov r2, #0x4 mov r3, #0x1 bl FUN_020129D8 pop {r3-r5, pc} thumb_func_start FUN_02012CC8 FUN_02012CC8: ; 0x02012CC8 mov r1, #0x0 ldr r2, _02012CD8 ; =0x021C4858 add r0, r1, #0x0 _02012CCE: add r1, r1, #0x1 stmia r2!, {r0} cmp r1, #0x10 blt _02012CCE bx lr .balign 4 _02012CD8: .word 0x021C4858 thumb_func_start FUN_02012CDC FUN_02012CDC: ; 0x02012CDC push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x8] ldr r1, _02012DD0 ; =0x021C4858 add r7, r0, #0x0 add r6, r2, #0x0 str r3, [sp, #0xc] mov r5, #0x0 _02012CEC: ldr r0, [r1, #0x0] cmp r0, #0x0 beq _02012CFA add r5, r5, #0x1 add r1, r1, #0x4 cmp r5, #0x10 blt _02012CEC _02012CFA: cmp r5, #0x10 blt _02012D04 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _02012D04: ldr r0, [sp, #0x2c] mov r1, #0xdc bl FUN_02016998 add r4, r0, #0x0 bne _02012D14 bl ErrorHandling _02012D14: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xdc blx Call_FillMemWithValue add r2, r4, #0x0 ldr r0, [sp, #0x8] str r7, [r4, #0x18] ldr r3, _02012DD4 ; =0x020ED4FC str r0, [r4, #0x1c] ldmia r3!, {r0-r1} add r2, #0x34 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r3, _02012DD8 ; =0x020ED4E4 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x40 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r3, _02012DDC ; =0x020ED4F0 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x4c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] mov r1, #0x0 str r0, [r2, #0x0] ldr r2, [sp, #0xc] add r0, r6, #0x0 blx Call_FillMemWithValue ldr r0, [sp, #0xc] str r6, [r4, #0xc] str r6, [r4, #0x10] add r0, r6, r0 str r0, [r4, #0x14] add r0, r4, #0x0 add r0, #0xda strb r5, [r0, #0x0] ldr r0, _02012DD0 ; =0x021C4858 lsl r5, r5, #0x2 str r4, [r0, r5] ldr r0, [sp, #0x28] cmp r0, #0x1 bne _02012DA8 ldr r0, [sp, #0x2c] bl FUN_0201EB64 str r0, [r4, #0x20] mov r3, #0x0 str r3, [r4, #0x24] str r3, [r4, #0x28] mov r0, #0x2 str r3, [r4, #0x2c] lsl r0, r0, #0xc strh r0, [r4, #0x30] str r3, [sp, #0x0] ldr r0, [r4, #0x20] ldr r1, _02012DD4 ; =0x020ED4FC str r0, [sp, #0x4] ldrh r2, [r4, #0x30] ldr r0, _02012DDC ; =0x020ED4F0 bl FUN_0201ED5C add r0, r4, #0x0 mov r1, #0x0 add r0, #0xdb strb r1, [r0, #0x0] ldr r0, [r4, #0x20] bl FUN_0201EB8C _02012DA8: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x3f str r0, [sp, #0x4] ldr r0, _02012DE0 ; =0x020ED508 mov r1, #0x14 ldr r0, [r0, r5] mov r2, #0xc8 mov r3, #0x5 blx FUN_0208B4A0 str r0, [r4, #0x0] ldr r1, _02012DD8 ; =0x020ED4E4 add r0, r4, #0x0 bl FUN_020133FC add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _02012DD0: .word 0x021C4858 _02012DD4: .word 0x020ED4FC _02012DD8: .word 0x020ED4E4 _02012DDC: .word 0x020ED4F0 _02012DE0: .word 0x020ED508 thumb_func_start FUN_02012DE4 FUN_02012DE4: ; 0x02012DE4 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020133D0 add r0, r5, #0x0 add r0, #0xd8 ldrb r1, [r0, #0x0] mov r0, #0x1 tst r0, r1 beq _02012E02 add r0, r5, #0x0 add r0, #0x58 blx FUN_020AE8CC b _02012E22 _02012E02: mov r0, #0x2 tst r0, r1 beq _02012E22 mov r6, #0x0 add r4, r5, #0x0 add r7, r6, #0x0 _02012E0E: ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02012E1A blx FUN_020AF894 str r7, [r4, #0x58] _02012E1A: add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x10 blt _02012E0E _02012E22: add r0, r5, #0x0 add r0, #0xd8 ldrb r1, [r0, #0x0] mov r0, #0x4 tst r0, r1 beq _02012E38 add r0, r5, #0x0 add r0, #0x98 blx FUN_020AEC7C b _02012E60 _02012E38: mov r0, #0x8 tst r0, r1 beq _02012E60 mov r6, #0x0 add r4, r5, #0x0 add r7, r6, #0x0 _02012E44: add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02012E58 blx FUN_020AFA80 add r0, r4, #0x0 add r0, #0x98 str r7, [r0, #0x0] _02012E58: add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x10 blt _02012E44 _02012E60: add r0, r5, #0x0 mov r1, #0x0 add r0, #0xd8 strb r1, [r0, #0x0] str r1, [r5, #0x8] ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02012E78 bl FUN_02016A18 mov r0, #0x0 str r0, [r5, #0x4] _02012E78: ldr r2, _02012EA8 ; =0x021C4858 mov r1, #0x0 _02012E7C: ldr r0, [r2, #0x0] cmp r0, r5 bne _02012E8C ldr r0, _02012EA8 ; =0x021C4858 mov r2, #0x0 lsl r1, r1, #0x2 str r2, [r0, r1] b _02012E94 _02012E8C: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _02012E7C _02012E94: ldr r0, [r5, #0x20] cmp r0, #0x0 beq _02012E9E bl FUN_0201EB70 _02012E9E: add r0, r5, #0x0 bl FUN_02016A18 pop {r3-r7, pc} nop _02012EA8: .word 0x021C4858 thumb_func_start FUN_02012EAC FUN_02012EAC: ; 0x02012EAC push {r3-r5, lr} ldr r5, _02012EC8 ; =0x021C4858 mov r4, #0x0 _02012EB2: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02012EBC bl FUN_02012DE4 _02012EBC: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x10 blt _02012EB2 pop {r3-r5, pc} nop _02012EC8: .word 0x021C4858 thumb_func_start FUN_02012ECC FUN_02012ECC: ; 0x02012ECC push {r4, lr} ldr r1, _02012EF4 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x8] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012EE4 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012EE4: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012EF0 bl ErrorHandling _02012EF0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012EF4: .word 0x021C4850 thumb_func_start FUN_02012EF8 FUN_02012EF8: ; 0x02012EF8 push {r4, lr} ldr r1, _02012F20 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0xc] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F10 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F10: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F1C bl ErrorHandling _02012F1C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F20: .word 0x021C4850 thumb_func_start FUN_02012F24 FUN_02012F24: ; 0x02012F24 push {r4, lr} ldr r1, _02012F4C ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x10] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F3C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F3C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F48 bl ErrorHandling _02012F48: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F4C: .word 0x021C4850 thumb_func_start FUN_02012F50 FUN_02012F50: ; 0x02012F50 push {r4, lr} ldr r1, _02012F78 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x14] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F68 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F68: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F74 bl ErrorHandling _02012F74: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F78: .word 0x021C4850 thumb_func_start FUN_02012F7C FUN_02012F7C: ; 0x02012F7C push {r4, lr} ldr r1, _02012FA4 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x18] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F94 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F94: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FA0 bl ErrorHandling _02012FA0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FA4: .word 0x021C4850 thumb_func_start FUN_02012FA8 FUN_02012FA8: ; 0x02012FA8 push {r4, lr} ldr r1, _02012FD0 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x1c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012FC0 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012FC0: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FCC bl ErrorHandling _02012FCC: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FD0: .word 0x021C4850 thumb_func_start FUN_02012FD4 FUN_02012FD4: ; 0x02012FD4 push {r4, lr} ldr r1, _02012FFC ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x20] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012FEC mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012FEC: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FF8 bl ErrorHandling _02012FF8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FFC: .word 0x021C4850 thumb_func_start FUN_02013000 FUN_02013000: ; 0x02013000 push {r4, lr} ldr r1, _02013028 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x24] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013018 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013018: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013024 bl ErrorHandling _02013024: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013028: .word 0x021C4850 thumb_func_start FUN_0201302C FUN_0201302C: ; 0x0201302C push {r4, lr} ldr r1, _02013054 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x28] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013044 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013044: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013050 bl ErrorHandling _02013050: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013054: .word 0x021C4850 thumb_func_start FUN_02013058 FUN_02013058: ; 0x02013058 push {r4, lr} ldr r1, _02013080 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x2c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013070 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013070: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _0201307C bl ErrorHandling _0201307C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013080: .word 0x021C4850 thumb_func_start FUN_02013084 FUN_02013084: ; 0x02013084 push {r4, lr} ldr r1, _020130AC ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x30] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _0201309C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _0201309C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _020130A8 bl ErrorHandling _020130A8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _020130AC: .word 0x021C4850 thumb_func_start FUN_020130B0 FUN_020130B0: ; 0x020130B0 push {r4, lr} ldr r1, _020130D8 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x34] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _020130C8 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _020130C8: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _020130D4 bl ErrorHandling _020130D4: add r0, r4, #0x0 pop {r4, pc} .balign 4 _020130D8: .word 0x021C4850 thumb_func_start FUN_020130DC FUN_020130DC: ; 0x020130DC push {r4, lr} ldr r1, _02013104 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x38] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _020130F4 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _020130F4: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013100 bl ErrorHandling _02013100: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013104: .word 0x021C4850 thumb_func_start FUN_02013108 FUN_02013108: ; 0x02013108 push {r4, lr} ldr r1, _02013130 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x3c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013120 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013120: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _0201312C bl ErrorHandling _0201312C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013130: .word 0x021C4850 thumb_func_start FUN_02013134 FUN_02013134: ; 0x02013134 push {r4, lr} ldr r1, _0201315C ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x40] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _0201314C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _0201314C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013158 bl ErrorHandling _02013158: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0201315C: .word 0x021C4850 thumb_func_start FUN_02013160 FUN_02013160: ; 0x02013160 push {r4, lr} ldr r1, _02013188 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x44] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013178 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013178: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013184 bl ErrorHandling _02013184: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013188: .word 0x021C4850 thumb_func_start FUN_0201318C FUN_0201318C: ; 0x0201318C ldr r3, _02013190 ; =LoadFromNarc_2 bx r3 .balign 4 _02013190: .word LoadFromNarc_2 thumb_func_start FUN_02013194 FUN_02013194: ; 0x02013194 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 add r4, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 bne _020131A8 bl ErrorHandling _020131A8: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _020131B2 bl ErrorHandling _020131B2: add r0, r5, #0x0 add r0, #0xd8 strb r4, [r0, #0x0] mov r0, #0x1 tst r0, r4 beq _020131C8 add r0, r5, #0x0 add r0, #0x58 blx FUN_020AE918 b _020131DE _020131C8: mov r0, #0x2 tst r0, r4 beq _020131DE mov r1, #0x0 add r2, r5, #0x0 add r0, r1, #0x0 _020131D4: add r1, r1, #0x1 str r0, [r2, #0x58] add r2, r2, #0x4 cmp r1, #0x10 blt _020131D4 _020131DE: mov r0, #0x4 tst r0, r4 beq _020131EE add r0, r5, #0x0 add r0, #0x98 blx FUN_020AEC98 b _02013208 _020131EE: mov r0, #0x8 tst r0, r4 beq _02013208 mov r2, #0x0 add r3, r5, #0x0 add r1, r2, #0x0 _020131FA: add r0, r3, #0x0 add r0, #0x98 add r2, r2, #0x1 add r3, r3, #0x4 str r1, [r0, #0x0] cmp r2, #0x10 blt _020131FA _02013208: str r6, [r5, #0x4] cmp r7, #0x1 bne _02013216 add r0, r5, #0x0 bl FUN_02013228 pop {r3-r7, pc} _02013216: ldr r0, _02013224 ; =FUN_02013268 add r1, r5, #0x0 mov r2, #0x5 bl FUN_0200CA98 pop {r3-r7, pc} nop _02013224: .word FUN_02013268 thumb_func_start FUN_02013228 FUN_02013228: ; 0x02013228 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] blx FUN_0208B128 ldr r0, _02013264 ; =0x021C4850 str r4, [r0, #0x0] ldr r1, [r4, #0x18] ldr r0, [r4, #0x0] cmp r1, #0x0 bne _02013246 blx FUN_0208AF94 b _0201324A _02013246: blx FUN_0208B05C _0201324A: ldr r1, [r4, #0x1c] ldr r0, [r4, #0x0] cmp r1, #0x0 bne _02013258 blx FUN_0208AF80 b _0201325C _02013258: blx FUN_0208AFA8 _0201325C: ldr r0, _02013264 ; =0x021C4850 mov r1, #0x0 str r1, [r0, #0x0] pop {r4, pc} .balign 4 _02013264: .word 0x021C4850 thumb_func_start FUN_02013268 FUN_02013268: ; 0x02013268 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02013228 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_0201327C FUN_0201327C: ; 0x0201327C push {r4, lr} add r4, r0, #0x0 bne _02013286 bl ErrorHandling _02013286: ldr r0, _020132B8 ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02013292 bl ErrorHandling _02013292: ldr r0, _020132B8 ; =0x021C4850 mov r1, #0x0 ldr r3, [r0, #0x0] add r2, r3, #0x0 _0201329A: ldr r0, [r2, #0x58] cmp r0, #0x0 bne _020132A8 lsl r0, r1, #0x2 add r0, r3, r0 str r4, [r0, #0x58] pop {r4, pc} _020132A8: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _0201329A bl ErrorHandling pop {r4, pc} nop _020132B8: .word 0x021C4850 thumb_func_start FUN_020132BC FUN_020132BC: ; 0x020132BC push {r4, lr} add r4, r0, #0x0 bne _020132C6 bl ErrorHandling _020132C6: ldr r0, _020132FC ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132D2 bl ErrorHandling _020132D2: ldr r0, _020132FC ; =0x021C4850 mov r1, #0x0 ldr r3, [r0, #0x0] add r2, r3, #0x0 _020132DA: add r0, r2, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132EE lsl r0, r1, #0x2 add r0, r3, r0 add r0, #0x98 str r4, [r0, #0x0] pop {r4, pc} _020132EE: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _020132DA bl ErrorHandling pop {r4, pc} .balign 4 _020132FC: .word 0x021C4850 thumb_func_start FUN_02013300 FUN_02013300: ; 0x02013300 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x20] cmp r1, #0x0 beq _0201331C add r0, #0xdb ldrb r0, [r0, #0x0] bl FUN_0201EE2C ldr r0, [r4, #0x20] bl FUN_0201EB8C bl FUN_0201EBA4 _0201331C: blx FUN_020B849C ldr r0, [r4, #0x0] ldr r1, _02013338 ; =0x021CED64 blx FUN_0208AD80 ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02013332 bl FUN_0201EB98 _02013332: blx FUN_020B849C pop {r4, pc} .balign 4 _02013338: .word 0x021CED64 thumb_func_start FUN_0201333C FUN_0201333C: ; 0x0201333C ldr r3, _02013344 ; =0x0208AE48 ldr r0, [r0, #0x0] bx r3 nop _02013344: .word 0x0208AE48 thumb_func_start FUN_02013348 FUN_02013348: ; 0x02013348 mov r0, #0x0 ldr r3, _02013360 ; =0x021C4858 add r2, r0, #0x0 _0201334E: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02013356 add r0, r0, #0x1 _02013356: add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x10 blt _0201334E bx lr .balign 4 _02013360: .word 0x021C4858 thumb_func_start FUN_02013364 FUN_02013364: ; 0x02013364 push {r4-r6, lr} mov r4, #0x0 ldr r5, _02013384 ; =0x021C4858 add r6, r4, #0x0 _0201336C: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02013378 bl FUN_02013300 add r4, r4, #0x1 _02013378: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x10 blt _0201336C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02013384: .word 0x021C4858 thumb_func_start FUN_02013388 FUN_02013388: ; 0x02013388 push {r4-r6, lr} mov r4, #0x0 ldr r5, _020133A8 ; =0x021C4858 add r6, r4, #0x0 _02013390: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0201339C bl FUN_0201333C add r4, r4, #0x1 _0201339C: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x10 blt _02013390 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _020133A8: .word 0x021C4858 thumb_func_start FUN_020133AC FUN_020133AC: ; 0x020133AC push {r4, lr} add r4, r0, #0x0 ldr r0, _020133C4 ; =0x021C4850 str r3, [r0, #0x4] ldr r0, [r4, #0x0] blx FUN_0208ACEC ldr r1, _020133C4 ; =0x021C4850 mov r2, #0x0 str r2, [r1, #0x4] str r0, [r4, #0x8] pop {r4, pc} .balign 4 _020133C4: .word 0x021C4850 thumb_func_start FUN_020133C8 FUN_020133C8: ; 0x020133C8 ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_020133D0 FUN_020133D0: ; 0x020133D0 ldr r3, _020133D8 ; =0x0208AC14 ldr r0, [r0, #0x0] bx r3 nop _020133D8: .word 0x0208AC14 thumb_func_start FUN_020133DC FUN_020133DC: ; 0x020133DC ldr r3, _020133E4 ; =0x0208AC58 ldr r0, [r0, #0x0] bx r3 nop _020133E4: .word 0x0208AC58 thumb_func_start FUN_020133E8 FUN_020133E8: ; 0x020133E8 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020133EC FUN_020133EC: ; 0x020133EC add r2, r0, #0x0 add r2, #0x40 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_020133FC FUN_020133FC: ; 0x020133FC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r3, r4, #0x0 add r2, r5, #0x0 ldmia r3!, {r0-r1} add r2, #0x40 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r1, [r5, #0x20] add r0, r4, #0x0 bl FUN_0201EC58 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201341C FUN_0201341C: ; 0x0201341C ldr r0, _02013424 ; =0x021C4850 ldr r0, [r0, #0x4] bx lr nop _02013424: .word 0x021C4850 thumb_func_start FUN_02013428 FUN_02013428: ; 0x02013428 ldr r2, _02013438 ; =0x020ED4E4 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _02013438: .word 0x020ED4E4 thumb_func_start FUN_0201343C FUN_0201343C: ; 0x0201343C ldr r0, [r0, #0x20] bx lr thumb_func_start FUN_02013440 FUN_02013440: ; 0x02013440 add r0, #0xdb strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013448 FUN_02013448: ; 0x02013448 add r0, #0xdb ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013450 FUN_02013450: ; 0x02013450 ldr r0, [r0, #0x20] ldr r0, [r0, #0x0] str r1, [r0, #0x10] bx lr thumb_func_start FUN_02013458 FUN_02013458: ; 0x02013458 push {r4-r7} ldr r0, [r0, #0x20] add r4, r1, #0x0 ldrh r2, [r0, #0x1c] cmp r2, #0x0 bne _0201346A mov r0, #0x0 pop {r4-r7} bx lr _0201346A: mov r1, #0x0 cmp r2, #0x0 ble _020134F4 ldr r3, [r0, #0x18] ldr r7, _020134FC ; =0x020908DC ldr r0, _02013500 ; =0x020909A4 _02013476: cmp r3, #0x0 beq _020134EC cmp r4, #0x5 bhi _020134E6 add r5, r4, r4 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _0201348A: ; jump table (using 16-bit offset) .short _02013496 - _0201348A - 2; case 0 .short _020134A2 - _0201348A - 2; case 1 .short _020134AE - _0201348A - 2; case 2 .short _020134BC - _0201348A - 2; case 3 .short _020134CA - _0201348A - 2; case 4 .short _020134D8 - _0201348A - 2; case 5 _02013496: ldr r5, [r3, #0x0] cmp r5, r0 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134A2: ldr r5, [r3, #0x0] cmp r5, r7 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134AE: ldr r6, [r3, #0x0] ldr r5, _02013504 ; =0x02090858 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134BC: ldr r6, [r3, #0x0] ldr r5, _02013508 ; =0x02090780 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134CA: ldr r6, [r3, #0x0] ldr r5, _0201350C ; =0x02090664 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134D8: ldr r6, [r3, #0x0] ldr r5, _02013510 ; =0x020905D0 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134E6: mov r0, #0x0 pop {r4-r7} bx lr _020134EC: add r1, r1, #0x1 add r3, #0x8 cmp r1, r2 blt _02013476 _020134F4: mov r0, #0x0 pop {r4-r7} bx lr nop _020134FC: .word 0x020908DC _02013500: .word 0x020909A4 _02013504: .word 0x02090858 _02013508: .word 0x02090780 _0201350C: .word 0x02090664 _02013510: .word 0x020905D0 thumb_func_start FUN_02013514 FUN_02013514: ; 0x02013514 push {r4, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_02013458 cmp r0, #0x0 beq _0201352E ldrh r1, [r4, #0x0] strh r1, [r0, #0x0] ldrh r1, [r4, #0x2] strh r1, [r0, #0x2] ldrh r1, [r4, #0x4] strh r1, [r0, #0x4] _0201352E: pop {r4, pc} thumb_func_start FUN_02013530 FUN_02013530: ; 0x02013530 push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 add r2, r0, #0x0 beq _02013546 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] _02013546: pop {r4, pc} thumb_func_start FUN_02013548 FUN_02013548: ; 0x02013548 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 add r2, r0, #0x0 bne _0201356E add r2, sp, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r0, [r2, #0x8] ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r3-r4, pc} _0201356E: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201357C FUN_0201357C: ; 0x0201357C push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 cmp r0, #0x0 beq _02013590 mov r1, #0x0 ldrsh r1, [r4, r1] strh r1, [r0, #0xc] _02013590: pop {r4, pc} .balign 4 thumb_func_start FUN_02013594 FUN_02013594: ; 0x02013594 push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 cmp r0, #0x0 bne _020135A8 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _020135A8: mov r1, #0xc ldrsh r0, [r0, r1] strh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_020135B0 FUN_020135B0: ; 0x020135B0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 beq _020135C2 ldrh r1, [r4, #0x0] strh r1, [r0, #0x0] _020135C2: pop {r4, pc} thumb_func_start FUN_020135C4 FUN_020135C4: ; 0x020135C4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 bne _020135D8 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _020135D8: ldrh r0, [r0, #0x0] strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_020135E0 FUN_020135E0: ; 0x020135E0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 beq _020135F2 ldrh r1, [r4, #0x0] strh r1, [r0, #0x2] _020135F2: pop {r4, pc} thumb_func_start FUN_020135F4 FUN_020135F4: ; 0x020135F4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 bne _02013608 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _02013608: ldrh r0, [r0, #0x2] strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02013610 FUN_02013610: ; 0x02013610 push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 add r2, r0, #0x0 beq _02013626 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] _02013626: pop {r4, pc} thumb_func_start FUN_02013628 FUN_02013628: ; 0x02013628 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 add r2, r0, #0x0 bne _0201364E add r2, sp, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r0, [r2, #0x8] ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r3-r4, pc} _0201364E: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201365C FUN_0201365C: ; 0x0201365C push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 cmp r0, #0x0 beq _02013670 mov r1, #0x0 ldrsh r1, [r4, r1] strh r1, [r0, #0xc] _02013670: pop {r4, pc} .balign 4 thumb_func_start FUN_02013674 FUN_02013674: ; 0x02013674 push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 cmp r0, #0x0 bne _02013688 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _02013688: mov r1, #0xc ldrsh r0, [r0, r1] strh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02013690 FUN_02013690: ; 0x02013690 push {r3-r5, lr} mov r1, #0x8 add r5, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _020136B2 ldr r0, _020136B8 ; =0x0001020F add r1, r5, #0x0 str r0, [r4, #0x0] mov r0, #0x4 bl FUN_020219F4 ldr r1, _020136BC ; =0x020ED548 str r0, [r4, #0x4] bl FUN_02021E28 _020136B2: add r0, r4, #0x0 pop {r3-r5, pc} nop _020136B8: .word 0x0001020F _020136BC: .word 0x020ED548 thumb_func_start FUN_020136C0 FUN_020136C0: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA bl ErrorHandling _020136CA: cmp r4, #0x0 beq _020136DE ldr r0, [r4, #0x4] cmp r0, #0x0 beq _020136D8 bl FUN_02021A20 _020136D8: add r0, r4, #0x0 bl FUN_02016A18 _020136DE: pop {r4, pc} thumb_func_start FUN_020136E0 FUN_020136E0: ; 0x020136E0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020136EE bl ErrorHandling _020136EE: cmp r5, #0x0 beq _020136F4 str r4, [r5, #0x0] _020136F4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020136F8 FUN_020136F8: ; 0x020136F8 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 str r3, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r5, r1, #0x0 str r0, [sp, #0x8] mov r1, #0x0 add r4, r2, #0x0 str r1, [sp, #0xc] ldr r2, [r6, #0x4] add r0, r5, #0x0 add r3, r4, #0x0 bl FUN_0201BDE0 add r0, r5, #0x0 bl FUN_02019548 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_02013724 FUN_02013724: ; 0x02013724 ldr r1, _02013738 ; =0x0000FFFF mov r2, #0x0 strh r1, [r0, #0x0] _0201372A: add r2, r2, #0x1 strh r1, [r0, #0x4] add r0, r0, #0x2 cmp r2, #0x2 blt _0201372A bx lr nop _02013738: .word 0x0000FFFF thumb_func_start FUN_0201373C FUN_0201373C: ; 0x0201373C strh r1, [r0, #0x0] mov r2, #0x0 ldr r1, _02013750 ; =0x0000FFFF strh r2, [r0, #0x2] _02013744: add r2, r2, #0x1 strh r1, [r0, #0x4] add r0, r0, #0x2 cmp r2, #0x2 blt _02013744 bx lr .balign 4 _02013750: .word 0x0000FFFF thumb_func_start FUN_02013754 FUN_02013754: ; 0x02013754 push {r4, lr} mov r1, #0x4 add r4, r0, #0x0 bl FUN_0201373C mov r0, #0x5 strh r0, [r4, #0x2] pop {r4, pc} thumb_func_start FUN_02013764 FUN_02013764: ; 0x02013764 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0x4 blo _02013772 bl ErrorHandling _02013772: cmp r6, #0x4 bhs _020137B8 mov r0, #0xa add r4, r6, #0x0 mul r4, r0 ldr r1, _020137BC ; =0x020ED556 add r0, r5, #0x0 ldrb r1, [r1, r4] bl FUN_0201373C ldr r0, _020137C0 ; =0x020ED557 mov r1, #0x0 ldrb r0, [r0, r4] mvn r1, r1 strh r0, [r5, #0x2] ldr r0, _020137C4 ; =0x020ED558 ldrsh r0, [r0, r4] cmp r0, r1 beq _020137A2 ldr r1, _020137C8 ; =0x020ED55A ldrh r1, [r1, r4] bl FUN_02013A9C strh r0, [r5, #0x4] _020137A2: ldr r0, _020137CC ; =0x020ED55C mov r1, #0x0 ldrsh r0, [r0, r4] mvn r1, r1 cmp r0, r1 beq _020137B8 ldr r1, _020137D0 ; =0x020ED55E ldrh r1, [r1, r4] bl FUN_02013A9C strh r0, [r5, #0x6] _020137B8: pop {r4-r6, pc} nop _020137BC: .word 0x020ED556 _020137C0: .word 0x020ED557 _020137C4: .word 0x020ED558 _020137C8: .word 0x020ED55A _020137CC: .word 0x020ED55C _020137D0: .word 0x020ED55E thumb_func_start FUN_020137D4 FUN_020137D4: ; 0x020137D4 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r0, r1, #0x0 str r1, [sp, #0x4] bl FUN_0200AA80 ldr r5, [sp, #0x0] ldr r7, _02013838 ; =0x0000FFFF add r6, r0, #0x0 mov r4, #0x0 _020137EA: ldrh r2, [r5, #0x4] cmp r2, r7 beq _02013800 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0200B518 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x2 blt _020137EA _02013800: ldr r2, [sp, #0x0] mov r0, #0x1 ldrh r2, [r2, #0x0] mov r1, #0x1a lsl r3, r2, #0x1 ldr r2, _0201383C ; =0x020ED54C ldrh r2, [r2, r3] ldr r3, [sp, #0x4] bl FUN_0200A86C add r5, r0, #0x0 ldr r2, [sp, #0x0] ldr r3, [sp, #0x4] ldrh r2, [r2, #0x2] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0200A9C4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r6, #0x0 bl FUN_0200AB18 add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02013838: .word 0x0000FFFF _0201383C: .word 0x020ED54C thumb_func_start FUN_02013840 FUN_02013840: ; 0x02013840 push {r4, lr} add r4, r0, #0x0 add r3, r1, #0x0 ldrh r1, [r4, #0x0] mov r0, #0x1a lsl r2, r1, #0x1 ldr r1, _02013858 ; =0x020ED54C ldrh r1, [r1, r2] ldrh r2, [r4, #0x2] bl FUN_0200A738 pop {r4, pc} .balign 4 _02013858: .word 0x020ED54C thumb_func_start FUN_0201385C FUN_0201385C: ; 0x0201385C ldrh r1, [r0, #0x0] ldr r0, _0201386C ; =0x0000FFFF cmp r1, r0 beq _02013868 mov r0, #0x1 bx lr _02013868: mov r0, #0x0 bx lr .balign 4 _0201386C: .word 0x0000FFFF thumb_func_start FUN_02013870 FUN_02013870: ; 0x02013870 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x0] ldrh r1, [r4, #0x2] bl FUN_020138A0 mov r3, #0x0 cmp r0, #0x0 bls _02013896 ldr r1, _0201389C ; =0x0000FFFF _02013884: ldrh r2, [r4, #0x4] cmp r2, r1 bne _0201388E mov r0, #0x0 pop {r4, pc} _0201388E: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, r0 blo _02013884 _02013896: mov r0, #0x1 pop {r4, pc} nop _0201389C: .word 0x0000FFFF thumb_func_start FUN_020138A0 FUN_020138A0: ; 0x020138A0 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x5 blo _020138AE bl ErrorHandling _020138AE: add r0, r5, #0x0 bl FUN_02013974 cmp r4, r0 blo _020138BC bl ErrorHandling _020138BC: ldr r1, _02013910 ; =0x020ED54C lsl r2, r5, #0x1 ldrh r1, [r1, r2] mov r0, #0x1a add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200A738 str r0, [sp, #0x0] bl FUN_02021F2C add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _02013914 ; =0x0000FFFF mov r5, #0x0 cmp r1, r0 beq _02013904 add r7, r0, #0x0 sub r6, r0, #0x1 _020138E2: cmp r1, r6 bne _020138FC add r0, r4, #0x0 bl FUN_0201B8F8 cmp r0, #0x0 beq _020138F2 add r5, r5, #0x1 _020138F2: add r0, r4, #0x0 bl FUN_0201B8B8 add r4, r0, #0x0 b _020138FE _020138FC: add r4, r4, #0x2 _020138FE: ldrh r1, [r4, #0x0] cmp r1, r7 bne _020138E2 _02013904: ldr r0, [sp, #0x0] bl FUN_02021A20 add r0, r5, #0x0 pop {r3-r7, pc} nop _02013910: .word 0x020ED54C _02013914: .word 0x0000FFFF thumb_func_start FUN_02013918 FUN_02013918: ; 0x02013918 lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x4] bx lr thumb_func_start FUN_02013920 FUN_02013920: ; 0x02013920 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02013924 FUN_02013924: ; 0x02013924 ldrh r0, [r0, #0x2] bx lr thumb_func_start FUN_02013928 FUN_02013928: ; 0x02013928 push {r3-r4} ldrh r3, [r0, #0x0] ldrh r2, [r1, #0x0] cmp r3, r2 bne _0201393A ldrh r3, [r0, #0x2] ldrh r2, [r1, #0x2] cmp r3, r2 beq _02013940 _0201393A: mov r0, #0x0 pop {r3-r4} bx lr _02013940: mov r4, #0x0 _02013942: ldrh r3, [r0, #0x4] ldrh r2, [r1, #0x4] cmp r3, r2 beq _02013950 mov r0, #0x0 pop {r3-r4} bx lr _02013950: add r4, r4, #0x1 add r1, r1, #0x2 add r0, r0, #0x2 cmp r4, #0x2 blt _02013942 mov r0, #0x1 pop {r3-r4} bx lr thumb_func_start FUN_02013960 FUN_02013960: ; 0x02013960 ldrh r2, [r1, #0x0] strh r2, [r0, #0x0] ldrh r2, [r1, #0x2] strh r2, [r0, #0x2] ldrh r2, [r1, #0x4] strh r2, [r0, #0x4] ldrh r1, [r1, #0x6] strh r1, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02013974 FUN_02013974: ; 0x02013974 cmp r0, #0x5 bhs _0201397C mov r0, #0x14 bx lr _0201397C: mov r0, #0x0 bx lr thumb_func_start FUN_02013980 FUN_02013980: ; 0x02013980 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x5 blo _02013990 bl ErrorHandling _02013990: strh r4, [r5, #0x0] strh r6, [r5, #0x2] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02013998 FUN_02013998: ; 0x02013998 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x2 blo _020139A8 bl ErrorHandling _020139A8: lsl r0, r4, #0x1 add r0, r5, r0 strh r6, [r0, #0x4] pop {r4-r6, pc} thumb_func_start FUN_020139B0 FUN_020139B0: ; 0x020139B0 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x0] ldrh r1, [r4, #0x2] bl FUN_020138A0 cmp r0, #0x2 bhs _020139D0 lsl r1, r0, #0x1 add r2, r4, r1 ldr r1, _020139D4 ; =0x0000FFFF _020139C6: add r0, r0, #0x1 strh r1, [r2, #0x4] add r2, r2, #0x2 cmp r0, #0x2 blo _020139C6 _020139D0: pop {r4, pc} nop _020139D4: .word 0x0000FFFF thumb_func_start FUN_020139D8 FUN_020139D8: ; 0x020139D8 push {r3-r7, lr} mov r1, #0x30 add r6, r0, #0x0 bl FUN_02016998 ldr r4, _02013A0C ; =0x020ED5C0 str r0, [sp, #0x0] mov r7, #0x0 add r5, r0, #0x0 _020139EA: ldr r0, [sp, #0x0] mov r1, #0x1a str r6, [r0, #0x0] ldrh r2, [r4, #0x0] mov r0, #0x1 add r3, r6, #0x0 bl FUN_0200A86C str r0, [r5, #0x4] add r7, r7, #0x1 add r4, r4, #0x2 add r5, r5, #0x4 cmp r7, #0xb blt _020139EA ldr r0, [sp, #0x0] pop {r3-r7, pc} nop _02013A0C: .word 0x020ED5C0 thumb_func_start FUN_02013A10 FUN_02013A10: ; 0x02013A10 push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _02013A18: ldr r0, [r5, #0x4] bl FUN_0200A8B8 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0xb blt _02013A18 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02013A30 FUN_02013A30: ; 0x02013A30 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r2, #0x0 add r0, r1, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_02013AEC ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x4] add r2, r4, #0x0 bl FUN_0200A8E0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013A58 FUN_02013A58: ; 0x02013A58 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 ldr r1, _02013A94 ; =0x0000FFFF cmp r0, r1 beq _02013A88 add r1, sp, #0x8 add r2, sp, #0x4 bl FUN_02013AEC ldr r0, [sp, #0x8] mov r3, #0x0 lsl r1, r0, #0x1 ldr r0, _02013A98 ; =0x020ED5C0 ldrh r0, [r0, r1] str r0, [sp, #0x8] str r4, [sp, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] mov r0, #0x1a bl FUN_0200A648 add sp, #0xc pop {r3-r4, pc} _02013A88: add r0, r4, #0x0 bl FUN_02021A4C add sp, #0xc pop {r3-r4, pc} nop _02013A94: .word 0x0000FFFF _02013A98: .word 0x020ED5C0 thumb_func_start FUN_02013A9C FUN_02013A9C: ; 0x02013A9C push {r4-r5} ldr r4, _02013AE0 ; =0x020ED5C0 mov r2, #0x0 _02013AA2: ldrh r3, [r4, #0x0] cmp r0, r3 bne _02013AD0 mov r4, #0x0 add r3, r4, #0x0 cmp r2, #0x0 bls _02013AC6 ldr r0, _02013AE4 ; =0x020ED5D6 _02013AB2: lsl r5, r4, #0x1 ldrh r5, [r0, r5] add r4, r4, #0x1 lsl r4, r4, #0x10 add r3, r3, r5 lsl r3, r3, #0x10 lsr r4, r4, #0x10 lsr r3, r3, #0x10 cmp r4, r2 blo _02013AB2 _02013AC6: add r0, r3, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4-r5} bx lr _02013AD0: add r2, r2, #0x1 add r4, r4, #0x2 cmp r2, #0xb blo _02013AA2 ldr r0, _02013AE8 ; =0x0000FFFF pop {r4-r5} bx lr nop _02013AE0: .word 0x020ED5C0 _02013AE4: .word 0x020ED5D6 _02013AE8: .word 0x0000FFFF thumb_func_start FUN_02013AEC FUN_02013AEC: ; 0x02013AEC push {r3-r6} ldr r3, _02013B20 ; =0x00000FFF ldr r6, _02013B24 ; =0x020ED5D6 and r3, r0 mov r0, #0x0 add r5, r0, #0x0 _02013AF8: ldrh r4, [r6, #0x0] add r0, r0, r4 cmp r3, r0 bhs _02013B12 str r5, [r1, #0x0] ldr r1, _02013B24 ; =0x020ED5D6 lsl r4, r5, #0x1 ldrh r1, [r1, r4] sub r0, r0, r1 sub r0, r3, r0 str r0, [r2, #0x0] pop {r3-r6} bx lr _02013B12: add r5, r5, #0x1 add r6, r6, #0x2 cmp r5, #0xb blo _02013AF8 pop {r3-r6} bx lr nop _02013B20: .word 0x00000FFF _02013B24: .word 0x020ED5D6 thumb_func_start FUN_02013B28 FUN_02013B28: ; 0x02013B28 mov r0, #0x8 bx lr thumb_func_start FUN_02013B2C FUN_02013B2C: ; 0x02013B2C push {r3, lr} mov r2, #0x0 str r2, [r0, #0x0] ldr r3, _02013B54 ; =0x020ED5B4 str r2, [r0, #0x4] _02013B36: ldrb r1, [r3, #0x0] cmp r1, #0x2 bne _02013B48 ldr r1, _02013B58 ; =0x020ED5B5 lsl r2, r2, #0x1 ldrb r1, [r1, r2] bl FUN_02013C18 pop {r3, pc} _02013B48: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x6 blo _02013B36 pop {r3, pc} nop _02013B54: .word 0x020ED5B4 _02013B58: .word 0x020ED5B5 thumb_func_start FUN_02013B5C FUN_02013B5C: ; 0x02013B5C ldr r3, _02013B64 ; =FUN_02022610 mov r1, #0x22 bx r3 nop _02013B64: .word FUN_02022610 thumb_func_start FUN_02013B68 FUN_02013B68: ; 0x02013B68 ldr r0, [r0, #0x4] add r2, r0, #0x0 lsr r2, r1 mov r0, #0x1 and r0, r2 bx lr thumb_func_start FUN_02013B74 FUN_02013B74: ; 0x02013B74 push {r3-r5, lr} add r5, r0, #0x0 mov r2, #0x0 ldr r3, [r5, #0x4] add r4, r2, #0x0 mov r0, #0x1 _02013B80: add r1, r3, #0x0 lsr r1, r2 tst r1, r0 bne _02013B8A add r4, r4, #0x1 _02013B8A: add r2, r2, #0x1 cmp r2, #0x20 blo _02013B80 cmp r4, #0x0 beq _02013BC4 bl FUN_0201B9EC add r1, r4, #0x0 blx _u32_div_f ldr r4, [r5, #0x4] mov r0, #0x0 mov r2, #0x1 _02013BA4: add r3, r4, #0x0 lsr r3, r0 tst r3, r2 bne _02013BBE cmp r1, #0x0 bne _02013BBC mov r1, #0x1 ldr r2, [r5, #0x4] lsl r1, r0 orr r1, r2 str r1, [r5, #0x4] pop {r3-r5, pc} _02013BBC: sub r1, r1, #0x1 _02013BBE: add r0, r0, #0x1 cmp r0, #0x20 blo _02013BA4 _02013BC4: mov r0, #0x20 pop {r3-r5, pc} thumb_func_start FUN_02013BC8 FUN_02013BC8: ; 0x02013BC8 ldr r3, [r0, #0x4] mov r2, #0x0 mov r0, #0x1 _02013BCE: add r1, r3, #0x0 lsr r1, r2 tst r1, r0 bne _02013BDA mov r0, #0x0 bx lr _02013BDA: add r2, r2, #0x1 cmp r2, #0x20 blo _02013BCE mov r0, #0x1 bx lr thumb_func_start FUN_02013BE4 FUN_02013BE4: ; 0x02013BE4 push {r3-r4} mov r3, #0x0 ldr r4, _02013C08 ; =0x020ED5D6 add r2, r3, #0x0 _02013BEC: ldrh r1, [r4, #0x0] add r2, r2, #0x1 add r4, r4, #0x2 add r1, r3, r1 lsl r1, r1, #0x10 lsr r3, r1, #0x10 cmp r2, #0x9 blt _02013BEC add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3-r4} bx lr nop _02013C08: .word 0x020ED5D6 thumb_func_start FUN_02013C0C FUN_02013C0C: ; 0x02013C0C ldr r0, [r0, #0x0] add r2, r0, #0x0 lsr r2, r1 mov r0, #0x1 and r0, r2 bx lr thumb_func_start FUN_02013C18 FUN_02013C18: ; 0x02013C18 mov r2, #0x1 ldr r3, [r0, #0x0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013C28 FUN_02013C28: ; 0x02013C28 push {r4-r7} mov r3, #0x0 ldr r5, _02013C64 ; =0x020ED5EC add r2, r3, #0x0 _02013C30: ldr r7, [r5, #0x4] add r4, r2, #0x0 cmp r7, #0x0 ble _02013C54 ldr r6, [r5, #0x0] _02013C3A: ldrh r1, [r6, #0x0] cmp r0, r1 bne _02013C4C ldr r0, _02013C68 ; =0x020ED5F0 lsl r1, r3, #0x3 ldr r0, [r0, r1] sub r0, r0, #0x1 pop {r4-r7} bx lr _02013C4C: add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, r7 blt _02013C3A _02013C54: add r3, r3, #0x1 add r5, #0x8 cmp r3, #0xc blo _02013C30 mov r0, #0x0 pop {r4-r7} bx lr nop _02013C64: .word 0x020ED5EC _02013C68: .word 0x020ED5F0 thumb_func_start FUN_02013C6C FUN_02013C6C: ; 0x02013C6C push {r3-r7, lr} ldr r3, _02013CC8 ; =0x020ED5EC add r6, r1, #0x0 mov r7, #0x0 _02013C74: ldr r5, [r3, #0x4] mov r2, #0x0 cmp r5, #0x0 ble _02013CBC ldr r4, [r3, #0x0] _02013C7E: ldrh r1, [r4, #0x0] cmp r0, r1 bne _02013CB4 ldr r2, _02013CCC ; =0x020ED5F0 lsl r1, r7, #0x3 ldr r2, [r2, r1] mov r0, #0x0 cmp r2, #0x0 beq _02013CAC ldr r2, _02013CC8 ; =0x020ED5EC add r2, r2, r1 ldr r2, [r2, #0x4] _02013C96: cmp r6, #0x0 bne _02013CA4 ldr r2, _02013CC8 ; =0x020ED5EC lsl r0, r0, #0x1 ldr r1, [r2, r1] ldrh r0, [r1, r0] pop {r3-r7, pc} _02013CA4: sub r6, r6, #0x1 add r0, r0, #0x1 cmp r2, #0x0 bne _02013C96 _02013CAC: bl ErrorHandling ldr r0, _02013CD0 ; =0x0000FFFF pop {r3-r7, pc} _02013CB4: add r2, r2, #0x1 add r4, r4, #0x2 cmp r2, r5 blt _02013C7E _02013CBC: add r7, r7, #0x1 add r3, #0x8 cmp r7, #0xc blo _02013C74 pop {r3-r7, pc} nop _02013CC8: .word 0x020ED5EC _02013CCC: .word 0x020ED5F0 _02013CD0: .word 0x0000FFFF thumb_func_start FUN_02013CD4 FUN_02013CD4: ; 0x02013CD4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 bne _02013CE8 bl ErrorHandling _02013CE8: ldr r0, [r5, #0x0] ldr r1, [r5, #0xc] bl FUN_02013F68 str r0, [r4, #0x0] ldr r0, [r5, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0x4] ldr r1, [r5, #0xc] bl FUN_02013F98 str r0, [r4, #0x8] ldr r0, [r5, #0x4] str r0, [r4, #0xc] ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] bl FUN_02013FC8 str r0, [r4, #0x10] ldr r0, [r5, #0x8] str r0, [r4, #0x14] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013D18 FUN_02013D18: ; 0x02013D18 push {r4, lr} add r4, r0, #0x0 bne _02013D22 bl ErrorHandling _02013D22: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02013D2C bl ErrorHandling _02013D2C: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02013D36 bl ErrorHandling _02013D36: ldr r0, [r4, #0x10] cmp r0, #0x0 bne _02013D40 bl ErrorHandling _02013D40: ldr r0, [r4, #0x0] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 ldr r0, [r4, #0x10] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02013D5C FUN_02013D5C: ; 0x02013D5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02013D90 ; =0x04000444 mov r6, #0x0 str r6, [r0, #0x0] ldr r0, [r5, #0x4] cmp r0, #0x0 ble _02013D86 add r4, r6, #0x0 _02013D6E: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r1, [r0, #0x20] cmp r1, #0x0 beq _02013D7C bl FUN_020140D8 _02013D7C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x40 cmp r6, r0 blt _02013D6E _02013D86: ldr r0, _02013D94 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] pop {r4-r6, pc} nop _02013D90: .word 0x04000444 _02013D94: .word 0x04000448 thumb_func_start FUN_02013D98 FUN_02013D98: ; 0x02013D98 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02014024 add r4, r0, #0x0 bne _02013DAA bl ErrorHandling _02013DAA: ldr r0, [r5, #0x4] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02013DB6 bl ErrorHandling _02013DB6: ldr r0, [r5, #0x4] bl FUN_0201407C str r0, [r4, #0x0] cmp r0, #0x0 bne _02013DC6 bl ErrorHandling _02013DC6: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] add r2, r4, #0x4 bl FUN_020140A4 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013DD4 FUN_02013DD4: ; 0x02013DD4 push {r4, lr} ldr r1, _02013DE8 ; =0x021064BC add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] blx r1 add r0, r4, #0x0 bl FUN_02013F50 pop {r4, pc} .balign 4 _02013DE8: .word 0x021064BC thumb_func_start FUN_02013DEC FUN_02013DEC: ; 0x02013DEC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 cmp r0, #0x0 ble _02013E12 add r4, r6, #0x0 _02013DFA: ldr r1, [r5, #0x8] ldr r0, [r1, r4] cmp r0, #0x0 beq _02013E08 add r0, r1, r4 bl FUN_02013DD4 _02013E08: ldr r0, [r5, #0xc] add r6, r6, #0x1 add r4, #0x28 cmp r6, r0 blt _02013DFA _02013E12: pop {r4-r6, pc} thumb_func_start FUN_02013E14 FUN_02013E14: ; 0x02013E14 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02014050 add r4, r0, #0x0 bne _02013E26 bl ErrorHandling _02013E26: ldr r0, [r5, #0x8] bl FUN_02014090 str r0, [r4, #0x0] cmp r0, #0x0 bne _02013E36 bl ErrorHandling _02013E36: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] add r2, r4, #0x4 bl FUN_020140B4 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013E44 FUN_02013E44: ; 0x02013E44 push {r4, lr} ldr r1, _02013E58 ; =0x021064C4 add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] blx r1 add r0, r4, #0x0 bl FUN_02013F5C pop {r4, pc} .balign 4 _02013E58: .word 0x021064C4 thumb_func_start FUN_02013E5C FUN_02013E5C: ; 0x02013E5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] mov r6, #0x0 cmp r0, #0x0 ble _02013E82 add r4, r6, #0x0 _02013E6A: ldr r1, [r5, #0x10] ldr r0, [r1, r4] cmp r0, #0x0 beq _02013E78 add r0, r1, r4 bl FUN_02013E44 _02013E78: ldr r0, [r5, #0x14] add r6, r6, #0x1 add r4, #0x18 cmp r6, r0 blt _02013E6A _02013E82: pop {r4-r6, pc} thumb_func_start FUN_02013E84 FUN_02013E84: ; 0x02013E84 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02013FF8 add r4, r0, #0x0 bne _02013E96 bl ErrorHandling _02013E96: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02014218 mov r0, #0x1 str r0, [r4, #0x1c] str r0, [r4, #0x20] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013EA8 FUN_02013EA8: ; 0x02013EA8 ldr r3, _02013EAC ; =FUN_02013F30 bx r3 .balign 4 _02013EAC: .word FUN_02013F30 thumb_func_start FUN_02013EB0 FUN_02013EB0: ; 0x02013EB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02013EBE bl ErrorHandling _02013EBE: str r4, [r5, #0x20] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013EC4 FUN_02013EC4: ; 0x02013EC4 strh r1, [r0, #0x0] strh r2, [r0, #0x2] bx lr .balign 4 thumb_func_start FUN_02013ECC FUN_02013ECC: ; 0x02013ECC ldrh r1, [r0, #0x2] ldrh r0, [r0, #0x0] lsl r1, r1, #0x10 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_02013ED8 FUN_02013ED8: ; 0x02013ED8 strh r1, [r0, #0x4] strh r2, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02013EE0 FUN_02013EE0: ; 0x02013EE0 str r1, [r0, #0xc] str r2, [r0, #0x10] bx lr .balign 4 thumb_func_start FUN_02013EE8 FUN_02013EE8: ; 0x02013EE8 strh r1, [r0, #0x8] strh r2, [r0, #0xa] bx lr .balign 4 thumb_func_start FUN_02013EF0 FUN_02013EF0: ; 0x02013EF0 ldrh r1, [r0, #0xa] ldrh r0, [r0, #0x8] lsl r1, r1, #0x10 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_02013EFC FUN_02013EFC: ; 0x02013EFC str r1, [r0, #0x14] bx lr thumb_func_start FUN_02013F00 FUN_02013F00: ; 0x02013F00 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_02013F04 FUN_02013F04: ; 0x02013F04 add r0, #0x3e strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013F0C FUN_02013F0C: ; 0x02013F0C strh r1, [r0, #0x3c] bx lr thumb_func_start FUN_02013F10 FUN_02013F10: ; 0x02013F10 str r1, [r0, #0x24] bx lr thumb_func_start FUN_02013F14 FUN_02013F14: ; 0x02013F14 str r1, [r0, #0x28] bx lr thumb_func_start FUN_02013F18 FUN_02013F18: ; 0x02013F18 str r1, [r0, #0x2c] bx lr thumb_func_start FUN_02013F1C FUN_02013F1C: ; 0x02013F1C str r1, [r0, #0x30] bx lr thumb_func_start FUN_02013F20 FUN_02013F20: ; 0x02013F20 cmp r1, #0x0 bne _02013F28 str r2, [r0, #0x34] bx lr _02013F28: str r2, [r0, #0x38] bx lr thumb_func_start FUN_02013F2C FUN_02013F2C: ; 0x02013F2C str r1, [r0, #0x18] bx lr thumb_func_start FUN_02013F30 FUN_02013F30: ; 0x02013F30 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x40 blx Call_FillMemWithValue add r0, r4, #0x0 mov r1, #0x1f add r0, #0x3e strb r1, [r0, #0x0] ldr r0, _02013F4C ; =0x00007FFF strh r0, [r4, #0x3c] pop {r4, pc} nop _02013F4C: .word 0x00007FFF thumb_func_start FUN_02013F50 FUN_02013F50: ; 0x02013F50 ldr r3, _02013F58 ; =FUN_020B1A24 mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 _02013F58: .word FUN_020B1A24 thumb_func_start FUN_02013F5C FUN_02013F5C: ; 0x02013F5C ldr r3, _02013F64 ; =FUN_020B19DC mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 _02013F64: .word FUN_020B19DC thumb_func_start FUN_02013F68 FUN_02013F68: ; 0x02013F68 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 lsl r1, r6, #0x6 bl FUN_02016998 add r7, r0, #0x0 bne _02013F7C bl ErrorHandling _02013F7C: mov r4, #0x0 cmp r6, #0x0 ble _02013F92 add r5, r7, #0x0 _02013F84: add r0, r5, #0x0 bl FUN_02013F30 add r4, r4, #0x1 add r5, #0x40 cmp r4, r6 blt _02013F84 _02013F92: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02013F98 FUN_02013F98: ; 0x02013F98 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 mov r1, #0x28 mul r1, r6 bl FUN_02016998 add r7, r0, #0x0 bne _02013FAE bl ErrorHandling _02013FAE: mov r4, #0x0 cmp r6, #0x0 ble _02013FC4 add r5, r7, #0x0 _02013FB6: add r0, r5, #0x0 bl FUN_02013F50 add r4, r4, #0x1 add r5, #0x28 cmp r4, r6 blt _02013FB6 _02013FC4: add r0, r7, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02013FC8 FUN_02013FC8: ; 0x02013FC8 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 mov r1, #0x18 mul r1, r6 bl FUN_02016998 add r7, r0, #0x0 bne _02013FDE bl ErrorHandling _02013FDE: mov r4, #0x0 cmp r6, #0x0 ble _02013FF4 add r5, r7, #0x0 _02013FE6: add r0, r5, #0x0 bl FUN_02013F5C add r4, r4, #0x1 add r5, #0x18 cmp r4, r6 blt _02013FE6 _02013FF4: add r0, r7, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02013FF8 FUN_02013FF8: ; 0x02013FF8 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _0201401C ldr r3, [r0, #0x0] add r2, r3, #0x0 _02014006: ldr r0, [r2, #0x1c] cmp r0, #0x0 bne _02014014 lsl r0, r1, #0x6 add r0, r3, r0 pop {r3-r4} bx lr _02014014: add r1, r1, #0x1 add r2, #0x40 cmp r1, r4 blt _02014006 _0201401C: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02014024 FUN_02014024: ; 0x02014024 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _0201404A ldr r3, [r0, #0x8] add r2, r3, #0x0 _02014032: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _02014042 mov r0, #0x28 mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _02014042: add r1, r1, #0x1 add r2, #0x28 cmp r1, r4 blt _02014032 _0201404A: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02014050 FUN_02014050: ; 0x02014050 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _02014076 ldr r3, [r0, #0x10] add r2, r3, #0x0 _0201405E: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _0201406E mov r0, #0x18 mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _0201406E: add r1, r1, #0x1 add r2, #0x18 cmp r1, r4 blt _0201405E _02014076: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_0201407C FUN_0201407C: ; 0x0201407C push {r3, lr} ldr r3, _0201408C ; =0x021064B8 mov r1, #0x0 ldr r0, [r0, #0x10] ldr r3, [r3, #0x0] add r2, r1, #0x0 blx r3 pop {r3, pc} .balign 4 _0201408C: .word 0x021064B8 thumb_func_start FUN_02014090 FUN_02014090: ; 0x02014090 push {r3, lr} ldr r3, _020140A0 ; =0x021064C0 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0x5 add r2, r1, #0x0 blx r3 pop {r3, pc} .balign 4 _020140A0: .word 0x021064C0 thumb_func_start FUN_020140A4 FUN_020140A4: ; 0x020140A4 push {r3, lr} lsl r1, r1, #0x10 add r3, r2, #0x0 lsr r1, r1, #0xd mov r2, #0x0 blx FUN_020B1528 pop {r3, pc} thumb_func_start FUN_020140B4 FUN_020140B4: ; 0x020140B4 push {r3-r5, lr} add r3, r2, #0x0 ldr r2, _020140D4 ; =0xFFFF0000 add r5, r0, #0x0 and r2, r1 lsr r2, r2, #0x10 lsl r1, r1, #0x10 ldr r4, [r5, #0x8] lsl r2, r2, #0x3 str r2, [r5, #0x8] lsr r1, r1, #0xd mov r2, #0x0 blx FUN_020B1240 str r4, [r5, #0x8] pop {r3-r5, pc} .balign 4 _020140D4: .word 0xFFFF0000 thumb_func_start FUN_020140D8 FUN_020140D8: ; 0x020140D8 push {r3-r7, lr} sub sp, #0x18 ldr r7, _020141F8 ; =0x04000444 mov r6, #0x0 add r5, r0, #0x0 str r6, [r7, #0x0] ldrh r1, [r5, #0x3c] ldr r0, _020141FC ; =0x7FFF8000 orr r0, r1 str r0, [r7, #0x7c] add r0, r7, #0x0 ldr r1, _02014200 ; =0x00004210 add r0, #0x80 str r1, [r0, #0x0] ldr r3, [r5, #0x24] ldr r4, [r3, #0x8] ldr r2, [r3, #0x10] ldr r1, [r3, #0x4] ldr r0, [r3, #0x0] lsl r3, r2, #0x1d lsl r2, r1, #0x17 lsl r1, r0, #0x14 ldr r0, [r5, #0x28] lsl r4, r4, #0x1a lsr r0, r0, #0x3 orr r4, r0 mov r0, #0x1 lsl r0, r0, #0x1e orr r0, r4 orr r0, r1 orr r0, r2 orr r0, r3 str r0, [r7, #0x64] ldr r0, [r5, #0x24] ldr r0, [r0, #0x8] cmp r0, #0x2 bne _02014124 mov r6, #0x1 _02014124: ldr r0, [r5, #0x30] ldr r1, [r5, #0x2c] lsl r0, r0, #0x5 add r1, r1, r0 mov r0, #0x4 sub r0, r0, r6 lsr r1, r0 ldr r2, _02014204 ; =0x040004AC add r0, r5, #0x0 str r1, [r2, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] sub r2, #0x8 lsl r1, r0, #0x10 mov r0, #0xc0 orr r0, r1 str r0, [r2, #0x0] ldr r0, [r5, #0x34] cmp r0, #0x0 beq _02014156 mov r0, #0x8 ldrsh r0, [r5, r0] mov r7, #0x0 str r0, [sp, #0x14] b _0201415E _02014156: mov r0, #0x8 ldrsh r7, [r5, r0] mov r0, #0x0 str r0, [sp, #0x14] _0201415E: ldr r0, [r5, #0x38] cmp r0, #0x0 beq _0201416C mov r0, #0xa ldrsh r6, [r5, r0] mov r4, #0x0 b _02014172 _0201416C: mov r0, #0xa ldrsh r4, [r5, r0] mov r6, #0x0 _02014172: ldr r0, [r5, #0x14] mov r1, #0x6 lsl r2, r0, #0xc mov r0, #0x2 ldrsh r0, [r5, r0] ldrsh r1, [r5, r1] mov r3, #0x4 ldrsh r3, [r5, r3] add r0, r0, r1 lsl r1, r0, #0xc mov r0, #0x0 ldrsh r0, [r5, r0] add r0, r0, r3 ldr r3, _02014208 ; =0x04000470 lsl r0, r0, #0xc str r0, [r3, #0x0] str r1, [r3, #0x0] str r2, [r3, #0x0] ldr r0, [r5, #0x18] ldr r1, _0201420C ; =0x020FFA38 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r0, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r1, r0] ldrsh r1, [r1, r2] blx G3_RotZ ldr r2, [r5, #0x10] ldr r0, [r5, #0xc] ldr r1, _02014210 ; =0x0400046C mov r3, #0x8 str r0, [r1, #0x0] str r2, [r1, #0x0] lsr r0, r1, #0xe str r0, [r1, #0x0] mov r2, #0x4 mov r0, #0x6 ldrsh r2, [r5, r2] ldrsh r0, [r5, r0] neg r2, r2 neg r0, r0 lsl r2, r2, #0xc lsl r0, r0, #0xc str r2, [r1, #0x4] str r0, [r1, #0x4] mov r0, #0x0 str r0, [r1, #0x4] mov r1, #0xa ldrsh r1, [r5, r1] add r2, r0, #0x0 str r1, [sp, #0x0] ldr r1, [sp, #0x14] str r1, [sp, #0x4] str r6, [sp, #0x8] str r7, [sp, #0xc] str r4, [sp, #0x10] ldrsh r3, [r5, r3] add r1, r0, #0x0 blx FUN_020B0250 ldr r0, _02014214 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] add sp, #0x18 pop {r3-r7, pc} .balign 4 _020141F8: .word 0x04000444 _020141FC: .word 0x7FFF8000 _02014200: .word 0x00004210 _02014204: .word 0x040004AC _02014208: .word 0x04000470 _0201420C: .word 0x020FFA38 _02014210: .word 0x0400046C _02014214: .word 0x04000448 thumb_func_start FUN_02014218 FUN_02014218: ; 0x02014218 push {r3-r7, lr} add r5, r1, #0x0 ldr r1, [r5, #0x4] add r7, r0, #0x0 ldr r2, [r1, #0x10] mov r6, #0x8 mov r0, #0x0 cmp r2, #0x0 ble _02014236 _0201422A: ldr r2, [r5, #0x4] add r0, r0, #0x1 ldr r2, [r2, #0x10] lsl r6, r6, #0x1 cmp r0, r2 blt _0201422A _02014236: ldr r1, [r1, #0x14] mov r4, #0x8 mov r0, #0x0 cmp r1, #0x0 ble _0201424C _02014240: ldr r1, [r5, #0x4] add r0, r0, #0x1 ldr r1, [r1, #0x14] lsl r4, r4, #0x1 cmp r0, r1 blt _02014240 _0201424C: mov r1, #0xc mov r2, #0xe ldrsh r1, [r5, r1] ldrsh r2, [r5, r2] add r0, r7, #0x0 bl FUN_02013EC4 lsr r1, r6, #0x1f lsr r2, r4, #0x1f add r1, r6, r1 add r2, r4, r2 lsl r1, r1, #0xf lsl r2, r2, #0xf add r0, r7, #0x0 asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_02013ED8 mov r0, #0x1 lsl r0, r0, #0xc str r0, [r7, #0xc] str r0, [r7, #0x10] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02013EE8 ldr r1, [r5, #0x18] add r0, r7, #0x0 bl FUN_02013EFC ldr r1, [r5, #0x14] add r0, r7, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02013F04 ldr r1, [r5, #0x4] add r0, r7, #0x0 add r1, #0x10 bl FUN_02013F10 ldr r0, [r5, #0x4] mov r1, #0x0 add r0, r0, #0x4 blx FUN_020B1A14 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F14 ldr r0, [r5, #0x8] mov r1, #0x0 add r0, r0, #0x4 blx FUN_020B19C4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F18 ldrh r1, [r5, #0x1c] add r0, r7, #0x0 bl FUN_02013F1C mov r1, #0x0 add r0, r7, #0x0 add r2, r1, #0x0 bl FUN_02013F20 add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_02013F20 ldrh r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02013F2C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020142EC FUN_020142EC: ; 0x020142EC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 ldr r0, _02014394 ; =FUN_020143DC mov r1, #0x50 mov r2, #0x0 bl FUN_020061E8 str r0, [sp, #0x4] bl FUN_0201B6C8 add r4, r0, #0x0 cmp r5, #0x0 beq _02014330 cmp r6, #0x0 bne _02014320 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020031FC str r0, [sp, #0x0] ldr r0, _02014398 ; =FUN_020144E0 str r0, [r4, #0x4] b _0201434A _02014320: add r0, r5, #0x0 mov r1, #0x1 bl FUN_020031FC str r0, [sp, #0x0] ldr r0, _0201439C ; =FUN_020144FC str r0, [r4, #0x4] b _0201434A _02014330: cmp r6, #0x0 bne _02014340 bl FUN_020222E8 str r0, [sp, #0x0] ldr r0, _020143A0 ; =FUN_020144B0 str r0, [r4, #0x4] b _0201434A _02014340: bl FUN_020222F8 str r0, [sp, #0x0] ldr r0, _020143A4 ; =FUN_020144C8 str r0, [r4, #0x4] _0201434A: ldr r1, [sp, #0x0] lsl r0, r7, #0x5 str r0, [sp, #0x8] add r0, r1, r0 add r1, r4, #0x0 add r1, #0xc mov r2, #0x20 blx MIi_CpuCopy16 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] mov r2, #0x20 add r0, r1, r0 add r1, r4, #0x0 add r1, #0x2c blx MIi_CpuCopy16 ldr r0, [sp, #0x4] mov r1, #0x1 str r0, [r4, #0x0] add r0, r4, #0x0 str r5, [r4, #0x8] add r0, #0x4c strb r6, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4d strb r7, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4e strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x4f strb r1, [r0, #0x0] add r0, r4, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _02014394: .word FUN_020143DC _02014398: .word FUN_020144E0 _0201439C: .word FUN_020144FC _020143A0: .word FUN_020144B0 _020143A4: .word FUN_020144C8 thumb_func_start FUN_020143A8 FUN_020143A8: ; 0x020143A8 cmp r1, #0x0 beq _020143B6 cmp r1, #0x1 beq _020143BE cmp r1, #0x2 beq _020143C6 bx lr _020143B6: mov r1, #0x0 add r0, #0x4e strb r1, [r0, #0x0] bx lr _020143BE: mov r1, #0x2 add r0, #0x4e strb r1, [r0, #0x0] bx lr _020143C6: mov r1, #0x3 add r0, #0x4e strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020143D0 FUN_020143D0: ; 0x020143D0 ldr r3, _020143D8 ; =FUN_0200621C ldr r0, [r0, #0x0] bx r3 nop _020143D8: .word FUN_0200621C thumb_func_start FUN_020143DC FUN_020143DC: ; 0x020143DC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x3 bhi _02014452 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020143F8: ; jump table (using 16-bit offset) .short _02014400 - _020143F8 - 2; case 0 .short _02014410 - _020143F8 - 2; case 1 .short _02014452 - _020143F8 - 2; case 2 .short _02014444 - _020143F8 - 2; case 3 _02014400: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x4f strb r1, [r0, #0x0] mov r0, #0x1 add r4, #0x4e strb r0, [r4, #0x0] pop {r3-r5, pc} _02014410: add r0, r4, #0x0 bl FUN_02014454 cmp r0, #0x1 bne _02014424 add r1, r4, #0x0 ldr r2, [r4, #0x4] add r0, r4, #0x0 add r1, #0x2c blx r2 _02014424: add r0, r4, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] add r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x4f strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] cmp r0, #0x20 bne _02014452 mov r0, #0x0 add r4, #0x4f strb r0, [r4, #0x0] pop {r3-r5, pc} _02014444: ldr r2, [r4, #0x4] add r0, r4, #0x0 add r1, #0xc blx r2 add r0, r5, #0x0 bl FUN_0200621C _02014452: pop {r3-r5, pc} thumb_func_start FUN_02014454 FUN_02014454: ; 0x02014454 push {r4-r5} add r1, r0, #0x0 add r1, #0x4f ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02014482 mov r1, #0x1e mov r4, #0x0 mov r3, #0x1 lsl r1, r1, #0xa _02014468: add r2, r3, #0x0 lsl r2, r4 tst r2, r1 beq _02014474 ldrh r2, [r0, #0xc] strh r2, [r0, #0x2c] _02014474: add r4, r4, #0x1 add r0, r0, #0x2 cmp r4, #0x10 blo _02014468 mov r0, #0x1 pop {r4-r5} bx lr _02014482: cmp r1, #0x18 bne _020144AA mov r1, #0x1e mov r5, #0x0 add r4, r0, #0x0 mov r3, #0x1 lsl r1, r1, #0xa _02014490: add r2, r3, #0x0 lsl r2, r5 tst r2, r1 beq _0201449C ldrh r2, [r0, #0x2a] strh r2, [r4, #0x2c] _0201449C: add r5, r5, #0x1 add r4, r4, #0x2 cmp r5, #0x10 blo _02014490 mov r0, #0x1 pop {r4-r5} bx lr _020144AA: mov r0, #0x0 pop {r4-r5} bx lr thumb_func_start FUN_020144B0 FUN_020144B0: ; 0x020144B0 push {r3, lr} add r3, r0, #0x0 add r3, #0x4d ldrb r3, [r3, #0x0] mov r0, #0x0 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r3, pc} .balign 4 thumb_func_start FUN_020144C8 FUN_020144C8: ; 0x020144C8 push {r3, lr} add r3, r0, #0x0 add r3, #0x4d ldrb r3, [r3, #0x0] mov r0, #0x4 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r3, pc} .balign 4 thumb_func_start FUN_020144E0 FUN_020144E0: ; 0x020144E0 push {r3, lr} add r3, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [r3, #0x8] add r3, #0x4d ldrb r3, [r3, #0x0] mov r2, #0x0 lsl r3, r3, #0x14 lsr r3, r3, #0x10 bl FUN_02003054 pop {r3, pc} .balign 4 thumb_func_start FUN_020144FC FUN_020144FC: ; 0x020144FC push {r3, lr} add r3, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [r3, #0x8] add r3, #0x4d ldrb r3, [r3, #0x0] mov r2, #0x1 lsl r3, r3, #0x14 lsr r3, r3, #0x10 bl FUN_02003054 pop {r3, pc} .balign 4 thumb_func_start FUN_02014518 FUN_02014518: ; 0x02014518 push {r3-r7, lr} mov r1, #0x78 add r7, r0, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x78 add r6, r0, #0x0 blx MI_CpuFill8 ldr r2, _02014560 ; =0x0000019E mov r0, #0x0 mov r1, #0x1a add r3, r7, #0x0 bl FUN_0200A86C str r0, [r6, #0x0] mov r4, #0x0 add r5, r6, #0x0 _0201453E: mov r0, #0x16 add r1, r7, #0x0 bl FUN_020219F4 str r0, [r5, #0x4] ldr r0, [r6, #0x0] ldr r2, [r5, #0x4] add r1, r4, #0x0 bl FUN_0200A8E0 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x1d blt _0201453E add r0, r6, #0x0 pop {r3-r7, pc} nop _02014560: .word 0x0000019E thumb_func_start FUN_02014564 FUN_02014564: ; 0x02014564 push {r4-r6, lr} add r6, r0, #0x0 add r5, r6, #0x0 mov r4, #0x1c add r5, #0x70 _0201456E: ldr r0, [r5, #0x4] bl FUN_02021A20 sub r5, r5, #0x4 sub r4, r4, #0x1 bpl _0201456E ldr r0, [r6, #0x0] bl FUN_0200A8B8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_02014588 FUN_02014588: ; 0x02014588 lsl r1, r1, #0x2 add r0, r0, r1 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02014590 FUN_02014590: ; 0x02014590 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x9c bl FUN_02016998 add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_020146F0 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020145A8 FUN_020145A8: ; 0x020145A8 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x9b ldrb r1, [r1, #0x0] lsl r1, r1, #0x1c lsr r1, r1, #0x1c cmp r1, #0x1 bne _020145BE bl FUN_020146C4 _020145BE: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020145C8 FUN_020145C8: ; 0x020145C8 push {r3-r5, lr} add r4, r1, #0x0 ldr r2, [r4, #0x0] add r5, r0, #0x0 str r2, [r5, #0x7c] add r2, r5, #0x0 ldr r3, [r4, #0x4] add r2, #0x80 str r3, [r2, #0x0] add r2, r5, #0x0 ldrb r3, [r4, #0x10] add r2, #0x98 strb r3, [r2, #0x0] add r2, r5, #0x0 ldrb r3, [r4, #0x11] add r2, #0x99 strb r3, [r2, #0x0] bl FUN_02014730 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014754 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014784 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014814 add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 mov r0, #0x1 orr r1, r0 add r0, r5, #0x0 add r0, #0x9b strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf0 add r5, #0x9b bic r1, r0 mov r0, #0x80 orr r0, r1 strb r0, [r5, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014630 FUN_02014630: ; 0x02014630 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x9b ldrb r2, [r1, #0x0] mov r1, #0xf0 bic r2, r1 mov r1, #0x80 orr r2, r1 add r1, r4, #0x0 add r1, #0x9b strb r2, [r1, #0x0] bl FUN_0201466C cmp r0, #0x0 bne _0201466A add r1, r4, #0x0 add r1, #0x9b ldrb r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x1c bne _0201466A add r4, #0x9a ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02014668 mov r0, #0x3 pop {r4, pc} _02014668: mov r0, #0x4 _0201466A: pop {r4, pc} thumb_func_start FUN_0201466C FUN_0201466C: ; 0x0201466C push {r4, lr} add r4, r0, #0x0 add r0, #0x9b ldrb r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0x1 beq _02014680 bl ErrorHandling _02014680: add r0, r4, #0x0 add r0, #0x9a ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _02014690 ldr r0, [r4, #0x0] bl FUN_02022144 _02014690: add r1, r4, #0x0 add r1, #0x9a ldrb r2, [r1, #0x0] mov r0, #0x0 cmp r2, #0x3 beq _020146AA add r1, r4, #0x0 mov r0, #0x38 add r1, #0xc mul r0, r2 add r0, r1, r0 bl FUN_02014930 _020146AA: cmp r0, #0x1 bne _020146BE add r4, #0x9a ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _020146BA mov r0, #0x1 pop {r4, pc} _020146BA: mov r0, #0x2 pop {r4, pc} _020146BE: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020146C4 FUN_020146C4: ; 0x020146C4 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0202212C add r5, r6, #0x0 mov r4, #0x0 add r5, #0xc _020146D4: add r0, r5, #0x0 bl FUN_02014970 add r4, r4, #0x1 add r5, #0x38 cmp r4, #0x2 blt _020146D4 add r0, r6, #0x0 add r6, #0x84 ldr r1, [r6, #0x0] bl FUN_020146F0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020146F0 FUN_020146F0: ; 0x020146F0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 mov r2, #0x9c blx Call_FillMemWithValue add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 add r0, r5, #0x0 add r0, #0x9b strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x84 str r4, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x3 add r0, #0x9a strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf0 add r5, #0x9b bic r1, r0 mov r0, #0x80 orr r0, r1 strb r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02014730 FUN_02014730: ; 0x02014730 push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 ldr r0, [r1, #0x8] mov r1, #0x1 str r0, [sp, #0x0] add r0, r3, #0x0 add r0, #0x84 ldr r0, [r0, #0x0] str r0, [sp, #0x4] ldr r2, [r3, #0x7c] add r3, #0x80 ldr r3, [r3, #0x0] mov r0, #0x54 bl FUN_02014A3C add sp, #0x8 pop {r3, pc} thumb_func_start FUN_02014754 FUN_02014754: ; 0x02014754 push {r3, lr} sub sp, #0x8 add r3, r1, #0x0 add r1, r0, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] cmp r1, #0x4 bhs _02014768 mov r2, #0x0 b _0201476A _02014768: mov r2, #0x4 _0201476A: mov r1, #0x40 str r1, [sp, #0x0] add r0, #0x84 ldr r0, [r0, #0x0] mov r1, #0x0 str r0, [sp, #0x4] ldr r3, [r3, #0xc] mov r0, #0x54 lsl r3, r3, #0x5 bl FUN_02014A8C add sp, #0x8 pop {r3, pc} thumb_func_start FUN_02014784 FUN_02014784: ; 0x02014784 push {r3-r7, lr} sub sp, #0x30 add r7, r0, #0x0 mov r3, #0x0 add r4, r7, #0x0 _0201478E: add r0, r4, #0x0 add r3, r3, #0x1 lsl r2, r3, #0xc add r0, #0x88 add r4, r4, #0x4 str r2, [r0, #0x0] cmp r3, #0x4 blt _0201478E ldr r0, [r7, #0x7c] mov r5, #0x0 str r0, [sp, #0x0] add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r4, r7, #0x0 str r0, [sp, #0x4] mov r0, #0x54 str r0, [sp, #0x8] ldr r0, [r1, #0x8] add r6, r5, #0x0 str r0, [sp, #0x1c] ldr r0, [r1, #0xc] add r4, #0xc str r0, [sp, #0x20] add r0, r7, #0x0 add r0, #0x88 str r0, [sp, #0x24] mov r0, #0x4 str r0, [sp, #0x28] add r0, r7, #0x0 add r0, #0x98 ldrb r1, [r0, #0x0] add r0, sp, #0x20 strb r1, [r0, #0xc] _020147D2: mov r1, #0x0 mov r2, #0x2 add r3, sp, #0x0 _020147D8: add r0, r5, r2 str r0, [r3, #0xc] add r1, r1, #0x1 add r2, r2, #0x2 add r3, r3, #0x4 cmp r1, #0x4 blt _020147D8 add r0, r7, #0x0 add r0, #0x99 ldrb r0, [r0, #0x0] add r2, r7, #0x0 add r2, #0x84 add r1, r0, r6 add r0, sp, #0x20 strb r1, [r0, #0xd] ldr r0, [sp, #0x20] add r1, sp, #0x0 add r0, r0, r5 str r0, [sp, #0x20] ldr r2, [r2, #0x0] add r0, r4, #0x0 bl FUN_020148A8 add r5, r5, #0x1 add r6, r6, #0x4 add r4, #0x38 cmp r5, #0x2 blt _020147D2 add sp, #0x30 pop {r3-r7, pc} thumb_func_start FUN_02014814 FUN_02014814: ; 0x02014814 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 add r2, r4, #0x0 _02014820: add r3, r4, #0x0 add r3, #0x99 ldrb r3, [r3, #0x0] add r0, r0, #0x1 lsl r3, r3, #0x3 add r3, r3, r1 strb r3, [r2, #0x4] add r3, r4, #0x0 add r3, #0x99 ldrb r3, [r3, #0x0] lsl r3, r3, #0x3 add r3, r3, r1 add r3, #0x20 strb r3, [r2, #0x5] add r3, r4, #0x0 add r3, #0x98 ldrb r3, [r3, #0x0] add r1, #0x20 lsl r3, r3, #0x3 strb r3, [r2, #0x6] add r3, r4, #0x0 add r3, #0x98 ldrb r3, [r3, #0x0] lsl r3, r3, #0x3 add r3, #0x30 strb r3, [r2, #0x7] add r2, r2, #0x4 cmp r0, #0x2 blt _02014820 add r0, r4, #0x0 add r0, #0x84 ldr r0, [r0, #0x0] ldr r2, _02014874 ; =FUN_02014878 str r0, [sp, #0x0] add r0, r4, #0x4 mov r1, #0x2 add r3, r4, #0x0 bl FUN_020220C4 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r4, pc} .balign 4 _02014874: .word FUN_02014878 thumb_func_start FUN_02014878 FUN_02014878: ; 0x02014878 push {r4, lr} add r3, r2, #0x0 add r3, #0x9b ldrb r3, [r3, #0x0] mov r4, #0xf0 bic r3, r4 lsl r4, r1, #0x18 lsr r4, r4, #0x18 lsl r4, r4, #0x1c lsr r4, r4, #0x18 orr r4, r3 add r3, r2, #0x0 add r3, #0x9b strb r4, [r3, #0x0] cmp r1, #0x0 bne _020148A2 add r2, #0x9a strb r0, [r2, #0x0] ldr r0, _020148A4 ; =0x000005E4 bl FUN_020054C8 _020148A2: pop {r4, pc} .balign 4 _020148A4: .word 0x000005E4 thumb_func_start FUN_020148A8 FUN_020148A8: ; 0x020148A8 push {r3-r7, lr} sub sp, #0x10 add r5, r1, #0x0 str r2, [sp, #0x8] str r0, [sp, #0x4] ldr r1, [r5, #0x24] ldr r2, [r5, #0x28] add r0, #0x28 bl FUN_020149FC ldr r1, [r5, #0x0] ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] str r1, [r0, #0x0] ldr r1, [r5, #0x4] ldr r4, [sp, #0x4] str r1, [r0, #0x4] add r0, r5, #0x0 add r0, #0x2c ldrb r1, [r0, #0x0] ldr r0, [sp, #0x4] add r6, #0x18 add r0, #0x34 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x2d ldrb r1, [r0, #0x0] ldr r0, [sp, #0x4] add r7, r5, #0x0 add r0, #0x35 strb r1, [r0, #0x0] mov r0, #0x0 str r0, [sp, #0xc] _020148EA: ldr r0, [sp, #0x8] mov r2, #0x1 str r0, [sp, #0x0] ldr r0, [r5, #0x8] ldr r1, [r7, #0xc] add r3, r6, #0x0 bl FUN_02006BDC str r0, [r4, #0x8] ldr r0, [r4, #0x18] ldr r1, [r5, #0x1c] bl FUN_02014BA4 ldr r0, [r4, #0x18] ldr r1, [r5, #0x20] bl FUN_02014BC4 ldr r0, [sp, #0xc] add r6, r6, #0x4 add r0, r0, #0x1 add r7, r7, #0x4 add r4, r4, #0x4 str r0, [sp, #0xc] cmp r0, #0x4 blt _020148EA ldr r0, [sp, #0x4] bl FUN_020149D0 ldr r0, [sp, #0x4] mov r1, #0x0 add r0, #0x36 str r0, [sp, #0x4] strb r1, [r0, #0x0] add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_02014930 FUN_02014930: ; 0x02014930 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x28 bl FUN_02014A10 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x36 ldrb r0, [r0, #0x0] cmp r0, r4 beq _02014952 add r0, r5, #0x0 bl FUN_020149D0 add r0, r5, #0x0 add r0, #0x36 strb r4, [r0, #0x0] _02014952: ldr r0, [r5, #0x2c] sub r0, r0, #0x1 cmp r4, r0 bne _0201495E mov r0, #0x1 pop {r3-r5, pc} _0201495E: add r5, #0x28 mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc bl FUN_02014A08 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014970 FUN_02014970: ; 0x02014970 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 add r0, #0x35 ldrb r0, [r0, #0x0] ldr r1, [r6, #0x18] add r3, r6, #0x0 str r0, [sp, #0x0] ldrh r0, [r1, #0x0] mov r2, #0x0 add r3, #0x34 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #0x4] ldrh r0, [r1, #0x2] lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #0x8] str r2, [sp, #0xc] ldr r1, [r6, #0x4] ldrb r3, [r3, #0x0] lsl r1, r1, #0x18 ldr r0, [r6, #0x0] lsr r1, r1, #0x18 bl FUN_02018540 ldr r1, [r6, #0x4] ldr r0, [r6, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201AC68 mov r4, #0x0 add r5, r6, #0x0 _020149B4: ldr r0, [r5, #0x8] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _020149B4 add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x38 blx Call_FillMemWithValue add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_020149D0 FUN_020149D0: ; 0x020149D0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, #0x28 bl FUN_02014A10 add r2, r0, #0x0 add r0, r4, #0x0 add r0, #0x35 ldrb r0, [r0, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] add r4, #0x34 ldrb r3, [r4, #0x0] ldr r2, [r2, #0x18] bl FUN_02014B58 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020149FC FUN_020149FC: ; 0x020149FC str r1, [r0, #0x0] str r2, [r0, #0x4] mov r1, #0x0 str r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02014A08 FUN_02014A08: ; 0x02014A08 ldr r2, [r0, #0x8] add r1, r2, r1 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02014A10 FUN_02014A10: ; 0x02014A10 push {r4-r5} ldr r5, [r0, #0x4] mov r2, #0x0 cmp r5, #0x0 bls _02014A34 ldr r3, [r0, #0x0] ldr r4, [r0, #0x8] _02014A1E: ldr r1, [r3, #0x0] cmp r1, r4 blt _02014A2A add r0, r2, #0x0 pop {r4-r5} bx lr _02014A2A: ldr r1, [r0, #0x4] add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, r1 blo _02014A1E _02014A34: sub r0, r5, #0x1 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02014A3C FUN_02014A3C: ; 0x02014A3C push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 str r1, [sp, #0x4] ldr r0, [sp, #0x24] mov r1, #0x14 add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _02014A58: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _02014A58 ldr r0, [sp, #0x24] ldr r1, [sp, #0x4] str r0, [sp, #0x0] add r0, r7, #0x0 mov r2, #0x1 add r3, r4, #0x4 bl FUN_02006BB0 str r0, [r4, #0x8] str r5, [r4, #0x0] ldr r0, [sp, #0x20] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _02014A88 ; =FUN_02014AD4 add r1, r4, #0x0 mov r2, #0x80 bl FUN_0200CA98 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02014A88: .word FUN_02014AD4 thumb_func_start FUN_02014A8C FUN_02014A8C: ; 0x02014A8C push {r3-r7, lr} add r7, r0, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x1c] mov r1, #0x14 add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _02014AA6: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _02014AA6 ldr r1, [sp, #0x0] ldr r3, [sp, #0x1c] add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_02006C08 str r0, [r4, #0x4] str r5, [r4, #0x8] ldr r0, [sp, #0x18] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _02014AD0 ; =FUN_02014B10 add r1, r4, #0x0 mov r2, #0x80 bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 _02014AD0: .word FUN_02014B10 thumb_func_start FUN_02014AD4 FUN_02014AD4: ; 0x02014AD4 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r4, #0x4] add r5, r0, #0x0 ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] blx DC_FlushRange ldr r3, [r4, #0x4] ldr r0, [r4, #0x10] str r0, [sp, #0x0] ldr r1, [r4, #0xc] ldr r2, [r3, #0x14] lsl r1, r1, #0x18 ldr r0, [r4, #0x0] ldr r3, [r3, #0x10] lsr r1, r1, #0x18 bl FUN_02017E14 add r0, r5, #0x0 bl FUN_0200CAB4 ldr r0, [r4, #0x8] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014B10 FUN_02014B10: ; 0x02014B10 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x10] ldr r0, [r0, #0xc] blx DC_FlushRange ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02014B34 ldr r0, [r4, #0x0] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] blx GX_LoadBGPltt b _02014B44 _02014B34: cmp r0, #0x4 bne _02014B44 ldr r0, [r4, #0x0] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] blx GXS_LoadBGPltt _02014B44: add r0, r5, #0x0 bl FUN_0200CAB4 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_02014B58 FUN_02014B58: ; 0x02014B58 push {r3-r6, lr} sub sp, #0x1c add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldrh r6, [r1, #0x0] ldrh r3, [r1, #0x2] lsl r2, r2, #0x18 lsl r6, r6, #0x15 lsr r6, r6, #0x18 lsl r3, r3, #0x15 str r6, [sp, #0x0] lsr r3, r3, #0x18 str r3, [sp, #0x4] add r1, #0xc str r1, [sp, #0x8] mov r1, #0x0 str r1, [sp, #0xc] str r1, [sp, #0x10] str r6, [sp, #0x14] str r3, [sp, #0x18] ldr r3, [sp, #0x30] lsl r1, r4, #0x18 lsl r3, r3, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 add r5, r0, #0x0 bl FUN_02018170 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0201AC68 add sp, #0x1c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02014BA4 FUN_02014BA4: ; 0x02014BA4 push {r3-r4} ldr r2, [r0, #0x8] add r0, #0xc lsr r4, r2, #0x1 mov r3, #0x0 cmp r4, #0x0 ble _02014BC0 _02014BB2: ldrh r2, [r0, #0x0] add r3, r3, #0x1 add r2, r2, r1 strh r2, [r0, #0x0] add r0, r0, #0x2 cmp r3, r4 blt _02014BB2 _02014BC0: pop {r3-r4} bx lr thumb_func_start FUN_02014BC4 FUN_02014BC4: ; 0x02014BC4 push {r4-r5} ldr r2, [r0, #0x8] add r0, #0xc lsr r3, r2, #0x1 mov r2, #0x0 cmp r3, #0x0 ble _02014BEA ldr r4, _02014BF0 ; =0x00000FFF lsl r1, r1, #0xc _02014BD6: ldrh r5, [r0, #0x0] add r2, r2, #0x1 and r5, r4 strh r5, [r0, #0x0] ldrh r5, [r0, #0x0] orr r5, r1 strh r5, [r0, #0x0] add r0, r0, #0x2 cmp r2, r3 blt _02014BD6 _02014BEA: pop {r4-r5} bx lr nop _02014BF0: .word 0x00000FFF thumb_func_start FUN_02014BF4 FUN_02014BF4: ; 0x02014BF4 push {r3-r7, lr} add r7, r1, #0x0 mov r1, #0xc add r5, r0, #0x0 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 strb r6, [r4, #0x8] mov r0, #0x1d strb r7, [r4, #0x9] lsl r0, r0, #0x4 add r6, r7, #0x0 mul r6, r0 add r0, r5, #0x0 add r1, r6, #0x0 str r5, [r4, #0x4] bl FUN_02016998 mov r1, #0x0 add r2, r6, #0x0 str r0, [r4, #0x0] blx MI_CpuFill8 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02014C28 FUN_02014C28: ; 0x02014C28 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02014C3C FUN_02014C3C: ; 0x02014C3C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x19 blo _02014C48 bl ErrorHandling _02014C48: ldr r0, _02014C50 ; =0x020ED64C ldrb r0, [r0, r4] pop {r4, pc} nop _02014C50: .word 0x020ED64C thumb_func_start FUN_02014C54 FUN_02014C54: ; 0x02014C54 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 str r3, [sp, #0x4] add r0, r2, #0x0 ldrh r6, [r0, #0x0] ldrh r0, [r0, #0x2] add r7, r1, #0x0 ldrb r1, [r5, #0x9] str r0, [sp, #0x8] ldr r0, [sp, #0x4] str r2, [sp, #0x0] cmp r0, r1 blo _02014C74 bl ErrorHandling _02014C74: ldr r0, [sp, #0x4] mov r1, #0x1d add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, #0x0] mul r4, r1 add r0, r0, r4 ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02014C8C bl ErrorHandling _02014C8C: ldr r0, [r5, #0x0] mov r2, #0x1d add r0, r0, r4 mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 ldr r0, [r5, #0x0] mov r1, #0x1 add r0, r0, r4 str r1, [r0, #0x10] ldr r0, [r5, #0x0] cmp r6, #0x86 str r7, [r0, r4] blt _02014CAE mov r6, #0x0 str r6, [sp, #0x8] _02014CAE: ldr r0, [r5, #0x0] add r0, r0, r4 str r6, [r0, #0x14] ldrb r0, [r5, #0x8] cmp r0, #0x0 beq _02014CC0 ldr r0, [sp, #0x0] ldrb r2, [r0, #0x4] b _02014CC2 _02014CC0: mov r2, #0x0 _02014CC2: ldr r0, [r5, #0x0] add r1, r0, r4 mov r0, #0x73 lsl r0, r0, #0x2 strb r2, [r1, r0] ldr r1, [r5, #0x0] ldr r2, [r5, #0x4] add r1, r1, r4 ldr r1, [r1, #0x14] mov r0, #0x5e bl FUN_02006528 ldr r1, [r5, #0x0] mov r2, #0x0 add r1, r1, r4 str r0, [r1, #0x8] ldr r0, [r5, #0x0] mov r6, #0x1c add r1, r0, r4 ldr r0, [r1, #0x8] str r0, [r1, #0xc] ldr r0, [r5, #0x0] add r0, r0, r4 str r2, [r0, #0x1c] ldr r0, [r5, #0x0] add r0, r0, r4 str r2, [r0, #0x20] ldr r0, [r5, #0x0] add r1, r0, r4 ldr r0, _02014D74 ; =0x000001CD strb r2, [r1, r0] ldr r1, [r5, #0x0] add r3, r1, r4 add r1, r0, #0x1 strb r6, [r3, r1] ldr r1, [r5, #0x0] add r0, r0, #0x2 add r1, r1, r4 strb r2, [r1, r0] ldr r1, [r5, #0x0] ldr r0, _02014D78 ; =FUN_02014DD8 add r1, r1, r4 bl FUN_0200CA44 ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x4] ldr r0, [r5, #0x0] add r1, r0, r4 ldr r0, [sp, #0x8] str r0, [r1, #0x54] add r0, r7, #0x0 mov r1, #0x0 bl FUN_0200782C ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x58] add r0, r7, #0x0 mov r1, #0x1 bl FUN_0200782C ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x5c] ldr r1, [r5, #0x0] mov r0, #0x0 add r1, r1, r4 str r0, [r1, #0x60] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x64] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x68] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x6c] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x70] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x74] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x78] add sp, #0xc pop {r4-r7, pc} .balign 4 _02014D74: .word 0x000001CD _02014D78: .word FUN_02014DD8 thumb_func_start FUN_02014D7C FUN_02014D7C: ; 0x02014D7C push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x9] add r4, r1, #0x0 cmp r4, r0 blo _02014D8C bl ErrorHandling _02014D8C: mov r0, #0x1d lsl r0, r0, #0x4 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x20] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014D9C FUN_02014D9C: ; 0x02014D9C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x4 add r4, r1, #0x0 mul r4, r0 ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02014DD6 bl FUN_0200CAB4 ldr r1, [r5, #0x0] mov r0, #0x0 add r1, r1, r4 str r0, [r1, #0x4] ldr r1, [r5, #0x0] mov r2, #0x1 add r1, r1, r4 str r2, [r1, #0x20] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x10] ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x8] bl FUN_02016A18 _02014DD6: pop {r3-r5, pc} thumb_func_start FUN_02014DD8 FUN_02014DD8: ; 0x02014DD8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x54] cmp r0, #0x0 bne _02014DEC add r0, r4, #0x0 bl FUN_02014E10 b _02014DF0 _02014DEC: sub r0, r0, #0x1 str r0, [r4, #0x54] _02014DF0: ldr r0, [r4, #0x1c] cmp r0, #0x0 beq _02014E0E mov r0, #0x1 str r0, [r4, #0x20] mov r0, #0x0 str r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_0200CAB4 mov r0, #0x0 str r0, [r4, #0x4] ldr r0, [r4, #0x8] bl FUN_02016A18 _02014E0E: pop {r3-r5, pc} thumb_func_start FUN_02014E10 FUN_02014E10: ; 0x02014E10 push {r3-r7, lr} add r5, r0, #0x0 mov r6, #0x0 str r6, [r5, #0x18] add r7, r5, #0x0 str r6, [r5, #0x44] add r4, r6, #0x0 add r7, #0x7c _02014E20: mov r0, #0x54 add r1, r4, #0x0 mul r1, r0 add r0, r7, r1 ldr r1, [r7, r1] cmp r1, #0x0 beq _02014E4E add r1, r0, #0x0 add r1, #0x2d ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02014E40 ldr r2, [r0, #0x50] add r1, r5, #0x0 blx r2 b _02014E54 _02014E40: add r1, r0, #0x0 add r1, #0x2d ldrb r1, [r1, #0x0] add r0, #0x2d sub r1, r1, #0x1 strb r1, [r0, #0x0] b _02014E54 _02014E4E: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02014E54: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _02014E20 cmp r6, #0x4 bne _02014E68 ldr r0, _02014EFC ; =0x000001CD mov r1, #0x0 strb r1, [r5, r0] _02014E68: ldr r0, _02014EFC ; =0x000001CD ldrb r1, [r5, r0] cmp r1, #0x0 beq _02014E7E add r0, r5, #0x0 bl FUN_020156E8 add r0, r5, #0x0 bl FUN_02015730 pop {r3-r7, pc} _02014E7E: add r0, r0, #0x2 ldrb r0, [r5, r0] cmp r0, #0x0 beq _02014E96 ldr r0, [r5, #0x0] bl FUN_02007F20 cmp r0, #0x0 bne _02014EF8 ldr r0, _02014F00 ; =0x000001CF mov r1, #0x0 strb r1, [r5, r0] _02014E96: add r6, r5, #0x0 add r4, r5, #0x0 ldr r7, _02014F04 ; =0x020ED6A4 add r6, #0xc add r4, #0x44 _02014EA0: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x0] cmp r0, #0x22 blo _02014EB2 bl ErrorHandling _02014EB2: ldr r1, [r5, #0xc] add r0, r5, #0x0 ldr r1, [r1, #0x0] lsl r1, r1, #0x2 ldr r1, [r7, r1] blx r1 ldr r0, [r5, #0x1c] cmp r0, #0x0 bne _02014EF8 ldr r0, [r6, #0x0] add r0, r0, #0x4 str r0, [r6, #0x0] ldr r0, [r5, #0x18] cmp r0, #0x0 bne _02014EF8 ldr r0, _02014EFC ; =0x000001CD ldrb r0, [r5, r0] cmp r0, #0x0 beq _02014EE6 add r0, r5, #0x0 bl FUN_020156E8 add r0, r5, #0x0 bl FUN_02015730 pop {r3-r7, pc} _02014EE6: mov r0, #0x1 ldr r1, [r5, #0x44] lsl r0, r0, #0x8 cmp r1, r0 blt _02014EA0 bl ErrorHandling mov r0, #0x1 str r0, [r5, #0x1c] _02014EF8: pop {r3-r7, pc} nop _02014EFC: .word 0x000001CD _02014F00: .word 0x000001CF _02014F04: .word 0x020ED6A4 thumb_func_start FUN_02014F08 FUN_02014F08: ; 0x02014F08 push {r4, lr} lsl r1, r1, #0x2 ldr r4, [r0, r1] cmp r2, #0x1 beq _02014F16 bl ErrorHandling _02014F16: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02014F1C FUN_02014F1C: ; 0x02014F1C ldr r3, _02014F24 ; =FUN_02014F08 add r2, r1, #0x0 mov r1, #0x0 bx r3 .balign 4 _02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28 FUN_02014F28: ; 0x02014F28 ldr r3, _02014F30 ; =0x02014F1D mov r1, #0x1 bx r3 nop _02014F30: .word 0x02014F1D thumb_func_start FUN_02014F34 FUN_02014F34: ; 0x02014F34 push {r3-r5, lr} add r5, r1, #0x0 mov r3, #0x0 add r0, #0x7c mov r2, #0x54 _02014F3E: add r1, r3, #0x0 mul r1, r2 add r4, r0, r1 ldr r1, [r0, r1] cmp r1, #0x0 bne _02014F68 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x54 blx MI_CpuFill8 mov r0, #0x1 str r0, [r4, #0x0] mov r0, #0xc add r1, r5, #0x0 mul r1, r0 ldr r0, _02014F7C ; =0x020ED668 ldr r0, [r0, r1] str r0, [r4, #0x50] add r0, r4, #0x0 pop {r3-r5, pc} _02014F68: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x4 blo _02014F3E bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} nop _02014F7C: .word 0x020ED668 thumb_func_start FUN_02014F80 FUN_02014F80: ; 0x02014F80 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02014F94 FUN_02014F94: ; 0x02014F94 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02014FA8 FUN_02014FA8: ; 0x02014FA8 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x8 blo _02014FC4 bl ErrorHandling _02014FC4: pop {r4, pc} .balign 4 thumb_func_start FUN_02014FC8 FUN_02014FC8: ; 0x02014FC8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02014FA8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014FA8 pop {r3-r5, pc} thumb_func_start FUN_02014FDC FUN_02014FDC: ; 0x02014FDC push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02014FA8 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x12 bne _0201501C add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] add r1, r6, #0x0 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02014F80 add sp, #0x4 pop {r3-r6, pc} _0201501C: cmp r0, #0x13 bne _02015048 add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 add r2, #0x1 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x2] add sp, #0x4 lsl r1, r1, #0x2 add r1, r5, r1 ldr r1, [r1, #0x24] str r1, [r4, #0x0] ldrb r0, [r0, #0x1] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] pop {r3-r6, pc} _02015048: bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02015050 FUN_02015050: ; 0x02015050 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02014FA8 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x12 bne _02015082 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014F80 b _020150A2 _02015082: cmp r0, #0x13 bne _0201509E add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x0] b _020150A2 _0201509E: bl ErrorHandling _020150A2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x12 bne _020150B6 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02014F80 add sp, #0x4 pop {r3-r6, pc} _020150B6: cmp r0, #0x13 bne _020150D4 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] add sp, #0x4 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] pop {r3-r6, pc} _020150D4: bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_020150DC FUN_020150DC: ; 0x020150DC push {r3-r7, lr} sub sp, #0x8 add r4, r2, #0x0 add r2, sp, #0x0 add r2, #0x3 add r5, r0, #0x0 add r6, r3, #0x0 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] add r1, sp, #0x0 lsl r0, r0, #0x2 add r0, r5, r0 ldr r7, [r0, #0x24] add r0, r5, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _02015112 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02014F80 b _02015132 _02015112: cmp r0, #0x15 bne _0201512E add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] b _02015132 _0201512E: bl ErrorHandling _02015132: add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _0201514C add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _0201516C _0201514C: cmp r0, #0x15 bne _02015168 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x1] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _0201516C _02015168: bl ErrorHandling _0201516C: ldr r0, [sp, #0x4] add r0, r7, r0 lsr r2, r0, #0x1f lsl r1, r0, #0x10 sub r1, r1, r2 mov r0, #0x10 ror r1, r0 add r0, r2, r1 str r0, [r4, #0x0] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02015184 FUN_02015184: ; 0x02015184 ldr r2, [r0, #0x0] ldr r0, [r1, #0x0] sub r0, r2, r0 bpl _02015190 mov r0, #0xf bx lr _02015190: cmp r0, #0x0 ble _02015198 mov r0, #0x10 bx lr _02015198: mov r0, #0x11 bx lr thumb_func_start FUN_0201519C FUN_0201519C: ; 0x0201519C add r2, r0, #0x0 ldr r0, [r2, #0x0] ldr r2, [r2, #0x74] mov r1, #0x1 neg r3, r2 asr r2, r3, #0x2 lsr r2, r2, #0x1d add r2, r3, r2 ldr r3, _020151B4 ; =FUN_020079E0 asr r2, r2, #0x3 bx r3 nop _020151B4: .word FUN_020079E0 thumb_func_start FUN_020151B8 FUN_020151B8: ; 0x020151B8 push {r4, lr} add r4, r0, #0x0 bl FUN_020151D0 mov r0, #0x1 str r0, [r4, #0x18] str r0, [r4, #0x1c] pop {r4, pc} thumb_func_start FUN_020151C8 FUN_020151C8: ; 0x020151C8 mov r1, #0x1 str r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_020151D0 FUN_020151D0: ; 0x020151D0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r4, #0x58] mov r1, #0x0 bl FUN_02007558 ldr r0, [r4, #0x0] ldr r2, [r4, #0x5c] mov r1, #0x1 bl FUN_02007558 ldr r0, [r4, #0x0] mov r1, #0x9 mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x0] mov r1, #0xa mov r2, #0x0 bl FUN_02007558 mov r1, #0xc add r2, r1, #0x0 ldr r0, [r4, #0x0] add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r0, [r4, #0x0] add r2, #0xf3 bl FUN_02007558 pop {r4, pc} .balign 4 thumb_func_start FUN_02015218 FUN_02015218: ; 0x02015218 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r1, #0x1 add r2, sp, #0x0 add r4, r0, #0x0 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x0] ldrb r0, [r0, #0x1] lsl r1, r1, #0x2 add r1, r4, r1 lsl r0, r0, #0x2 ldr r1, [r1, #0x24] add r0, r4, r0 str r1, [r0, #0x24] add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015240 FUN_02015240: ; 0x02015240 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02014FDC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] add r1, r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_02015264 FUN_02015264: ; 0x02015264 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02014FDC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] add r2, r1, #0x0 mul r2, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r2, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201528C FUN_0201528C: ; 0x0201528C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] sub r1, r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_020152B0 FUN_020152B0: ; 0x020152B0 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] blx _s32_div_f add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 str r0, [r1, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020152D8 FUN_020152D8: ; 0x020152D8 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015300 FUN_02015300: ; 0x02015300 push {r3-r5, lr} sub sp, #0x10 add r1, sp, #0x0 add r5, r0, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _02015334 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] add r1, sp, #0x8 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02014F80 b _02015362 _02015334: cmp r0, #0x15 bne _0201535E add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 add r2, #0x2 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x3] lsl r1, r1, #0x2 add r1, r5, r1 ldr r1, [r1, #0x24] str r1, [sp, #0xc] ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x8] b _02015362 _0201535E: bl ErrorHandling _02015362: add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x11 bls _02015378 bl ErrorHandling _02015378: add r0, sp, #0xc add r1, sp, #0x8 bl FUN_02015184 add r4, r0, #0x0 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _020153A6 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020153CA _020153A6: cmp r0, #0x15 bne _020153C6 add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 add r2, #0x2 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020153CA _020153C6: bl ErrorHandling _020153CA: add r0, sp, #0x0 ldrb r1, [r0, #0x1] cmp r1, r4 bne _020153DC ldrb r0, [r0, #0x3] ldr r1, [sp, #0x4] lsl r0, r0, #0x2 add r0, r5, r0 str r1, [r0, #0x24] _020153DC: add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_020153E0 FUN_020153E0: ; 0x020153E0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] bl FUN_02014F28 add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 str r0, [r1, #0x24] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02015404 FUN_02015404: ; 0x02015404 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _02015412 bl ErrorHandling _02015412: ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] str r0, [r4, #0x50] ldr r0, [r4, #0xc] bl FUN_02014F28 str r0, [r4, #0x48] mov r0, #0x0 str r0, [r4, #0x4c] pop {r4, pc} thumb_func_start FUN_02015428 FUN_02015428: ; 0x02015428 ldr r1, [r0, #0x4c] add r2, r1, #0x1 str r2, [r0, #0x4c] ldr r1, [r0, #0x48] cmp r2, r1 blt _0201543E mov r1, #0x0 str r1, [r0, #0x50] str r1, [r0, #0x4c] str r1, [r0, #0x48] bx lr _0201543E: ldr r1, [r0, #0x50] str r1, [r0, #0xc] bx lr thumb_func_start FUN_02015444 FUN_02015444: ; 0x02015444 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 bl FUN_02014F80 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 add r2, sp, #0x0 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x0] ldr r1, [sp, #0x4] lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0x24] bl FUN_02007558 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_02015470 FUN_02015470: ; 0x02015470 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 bl FUN_02014F80 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 add r2, sp, #0x0 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x0] ldr r1, [sp, #0x4] lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0x24] bl FUN_020079E0 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_0201549C FUN_0201549C: ; 0x0201549C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x8 add r4, r0, #0x0 bl FUN_02014F80 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x14 bne _020154C4 add r0, r4, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020154E4 _020154C4: cmp r0, #0x15 bne _020154E0 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020154E4 _020154E0: bl ErrorHandling _020154E4: add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x16 bne _02015502 ldr r0, [r4, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] bl FUN_02007558 add sp, #0xc pop {r3-r4, pc} _02015502: cmp r0, #0x17 bne _02015514 ldr r0, [r4, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] bl FUN_020079E0 add sp, #0xc pop {r3-r4, pc} _02015514: bl ErrorHandling add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0201551C FUN_0201551C: ; 0x0201551C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_020150DC ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201554C ; =0x020FFA38 ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} nop _0201554C: .word 0x020FFA38 thumb_func_start FUN_02015550 FUN_02015550: ; 0x02015550 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_020150DC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015584 ; =0x020FFA38 ldrsh r1, [r1, r2] mul r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] asr r1, r1, #0xc lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} nop _02015584: .word 0x020FFA38 thumb_func_start FUN_02015588 FUN_02015588: ; 0x02015588 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r4, r0, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r1, [r0, #0x0] cmp r1, #0x8 bne _020155B4 ldrb r0, [r0, #0x1] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x60] pop {r3-r4, pc} _020155B4: cmp r1, #0x9 bne _020155C6 ldrb r0, [r0, #0x1] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x64] pop {r3-r4, pc} _020155C6: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020155D0 FUN_020155D0: ; 0x020155D0 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r4, r0, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r1, [r0, #0x0] cmp r1, #0x8 bne _02015600 ldrb r0, [r0, #0x1] ldr r1, [r4, #0x60] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] add r0, r1, r0 str r0, [r4, #0x60] pop {r3-r4, pc} _02015600: cmp r1, #0x9 bne _02015616 ldrb r0, [r0, #0x1] ldr r1, [r4, #0x64] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] add r0, r1, r0 str r0, [r4, #0x64] pop {r3-r4, pc} _02015616: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015620 FUN_02015620: ; 0x02015620 push {r3-r5, lr} sub sp, #0x8 add r1, sp, #0x0 add r1, #0x3 add r5, r0, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x3] cmp r0, #0x8 bne _0201563C add r4, r5, #0x0 add r4, #0x60 b _0201567C _0201563C: cmp r0, #0x9 bne _02015646 add r4, r5, #0x0 add r4, #0x64 b _0201567C _02015646: cmp r0, #0xa bne _02015650 add r4, r5, #0x0 add r4, #0x68 b _0201567C _02015650: cmp r0, #0xb bne _0201565A add r4, r5, #0x0 add r4, #0x6c b _0201567C _0201565A: cmp r0, #0xc bne _02015664 add r4, r5, #0x0 add r4, #0x70 b _0201567C _02015664: cmp r0, #0xd bne _0201566E add r4, r5, #0x0 add r4, #0x74 b _0201567C _0201566E: cmp r0, #0xe bne _02015678 add r4, r5, #0x0 add r4, #0x78 b _0201567C _02015678: bl ErrorHandling _0201567C: add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x14 bne _02015698 add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020156B8 _02015698: cmp r0, #0x15 bne _020156B4 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020156B8 _020156B4: bl ErrorHandling _020156B8: add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x16 bne _020156D0 ldr r0, [sp, #0x4] add sp, #0x8 str r0, [r4, #0x0] pop {r3-r5, pc} _020156D0: cmp r0, #0x17 bne _020156E0 ldr r0, [sp, #0x4] ldr r1, [r4, #0x0] add sp, #0x8 add r0, r1, r0 str r0, [r4, #0x0] pop {r3-r5, pc} _020156E0: bl ErrorHandling add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_020156E8 FUN_020156E8: ; 0x020156E8 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x73 lsl r0, r0, #0x2 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, [r4, #0x0] beq _0201570A ldr r3, [r4, #0x60] ldr r2, [r4, #0x68] ldr r5, [r4, #0x58] add r2, r3, r2 mov r1, #0x0 sub r2, r5, r2 bl FUN_02007558 b _0201571A _0201570A: ldr r3, [r4, #0x58] ldr r2, [r4, #0x60] ldr r5, [r4, #0x68] add r2, r3, r2 mov r1, #0x0 add r2, r5, r2 bl FUN_02007558 _0201571A: ldr r3, [r4, #0x5c] ldr r2, [r4, #0x64] ldr r5, [r4, #0x6c] add r2, r3, r2 ldr r0, [r4, #0x0] mov r1, #0x1 add r2, r5, r2 bl FUN_02007558 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02015730 FUN_02015730: ; 0x02015730 push {r4, lr} add r4, r0, #0x0 mov r1, #0xc add r2, r1, #0x0 ldr r3, [r4, #0x70] add r2, #0xf4 ldr r0, [r4, #0x0] add r2, r3, r2 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r3, [r4, #0x74] add r2, #0xf3 ldr r0, [r4, #0x0] add r2, r3, r2 bl FUN_02007558 ldr r2, [r4, #0x78] ldr r0, [r4, #0x0] lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 bl FUN_02007558 ldr r0, _02015794 ; =0x000001CE ldrb r0, [r4, r0] cmp r0, #0x1b bne _02015778 ldr r0, [r4, #0x74] cmp r0, #0x0 bge _02015792 add r0, r4, #0x0 bl FUN_0201519C pop {r4, pc} _02015778: cmp r0, #0x1d bne _0201578A ldr r0, [r4, #0x74] cmp r0, #0x0 beq _02015792 add r0, r4, #0x0 bl FUN_0201519C pop {r4, pc} _0201578A: cmp r0, #0x1c beq _02015792 bl ErrorHandling _02015792: pop {r4, pc} .balign 4 _02015794: .word 0x000001CE thumb_func_start FUN_02015798 FUN_02015798: ; 0x02015798 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] bl FUN_02014F28 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x8 beq _020157BA cmp r0, #0xa bne _020157CA _020157BA: add r0, sp, #0x0 ldrb r0, [r0, #0x0] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x68] pop {r3-r4, pc} _020157CA: cmp r0, #0x9 beq _020157D2 cmp r0, #0xb bne _020157E2 _020157D2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x6c] pop {r3-r4, pc} _020157E2: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020157EC FUN_020157EC: ; 0x020157EC push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x54 bl FUN_02014F80 mov r0, #0x1 str r0, [r4, #0x18] pop {r4, pc} .balign 4 thumb_func_start FUN_02015800 FUN_02015800: ; 0x02015800 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x4 add r1, #0x2 add r4, r0, #0x0 bl FUN_02014F94 add r1, sp, #0x4 add r0, r4, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, r4, #0x0 add r1, sp, #0x4 bl FUN_02014F94 add r0, r4, #0x0 add r1, sp, #0x8 bl FUN_02014F80 ldr r0, [sp, #0x8] add r3, sp, #0x4 str r0, [sp, #0x0] ldrb r1, [r3, #0x2] ldrb r2, [r3, #0x1] ldrb r3, [r3, #0x0] ldr r0, [r4, #0x0] bl FUN_02007E68 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015840 FUN_02015840: ; 0x02015840 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02007F20 cmp r0, #0x0 beq _02015856 ldr r0, _02015858 ; =0x000001CF mov r1, #0x1 strb r1, [r4, r0] str r1, [r4, #0x18] _02015856: pop {r4, pc} .balign 4 _02015858: .word 0x000001CF thumb_func_start FUN_0201585C FUN_0201585C: ; 0x0201585C ldr r1, _02015864 ; =0x000001CD mov r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _02015864: .word 0x000001CD thumb_func_start FUN_02015868 FUN_02015868: ; 0x02015868 push {r4, lr} ldr r1, _0201589C ; =0x000001CE add r4, r0, #0x0 add r1, r4, r1 bl FUN_02014F94 ldr r0, _0201589C ; =0x000001CE mov r1, #0x1 ldrb r0, [r4, r0] add r2, r1, #0x0 cmp r0, #0x1b beq _02015886 cmp r0, #0x1d beq _02015886 mov r2, #0x0 _02015886: cmp r2, #0x0 bne _02015890 cmp r0, #0x1c beq _02015890 mov r1, #0x0 _02015890: cmp r1, #0x0 bne _02015898 bl ErrorHandling _02015898: pop {r4, pc} nop _0201589C: .word 0x000001CE thumb_func_start FUN_020158A0 FUN_020158A0: ; 0x020158A0 ldr r3, _020158A8 ; =FUN_0201598C mov r1, #0x0 bx r3 nop _020158A8: .word FUN_0201598C thumb_func_start FUN_020158AC FUN_020158AC: ; 0x020158AC ldr r3, _020158B4 ; =FUN_0201598C mov r1, #0x1 bx r3 nop _020158B4: .word FUN_0201598C thumb_func_start FUN_020158B8 FUN_020158B8: ; 0x020158B8 ldr r3, _020158C0 ; =FUN_0201598C mov r1, #0x2 bx r3 nop _020158C0: .word FUN_0201598C thumb_func_start FUN_020158C4 FUN_020158C4: ; 0x020158C4 ldr r3, _020158CC ; =FUN_0201598C mov r1, #0x3 bx r3 nop _020158CC: .word FUN_0201598C thumb_func_start FUN_020158D0 FUN_020158D0: ; 0x020158D0 ldr r3, _020158D8 ; =FUN_0201598C mov r1, #0x4 bx r3 nop _020158D8: .word FUN_0201598C thumb_func_start FUN_020158DC FUN_020158DC: ; 0x020158DC push {r3, lr} cmp r0, #0x18 bne _020158E8 ldr r0, [r2, #0x0] str r0, [r3, #0x0] pop {r3, pc} _020158E8: cmp r0, #0x19 bne _020158F6 ldr r1, [r1, #0x0] ldr r0, [r2, #0x0] add r0, r1, r0 str r0, [r3, #0x0] pop {r3, pc} _020158F6: cmp r0, #0x1a bne _02015904 ldr r1, [r3, #0x0] ldr r0, [r2, #0x0] add r0, r1, r0 str r0, [r3, #0x0] pop {r3, pc} _02015904: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0201590C FUN_0201590C: ; 0x0201590C push {r3, lr} sub r0, #0x23 cmp r0, #0x4 bhi _02015984 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015920: ; jump table (using 16-bit offset) .short _0201592A - _02015920 - 2; case 0 .short _0201593C - _02015920 - 2; case 1 .short _0201594E - _02015920 - 2; case 2 .short _02015960 - _02015920 - 2; case 3 .short _02015972 - _02015920 - 2; case 4 _0201592A: add r0, r1, #0x0 add r0, #0x3c str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x68 str r0, [r1, #0x28] ldr r0, [r2, #0x68] str r0, [r1, #0x30] pop {r3, pc} _0201593C: add r0, r1, #0x0 add r0, #0x40 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x6c str r0, [r1, #0x28] ldr r0, [r2, #0x6c] str r0, [r1, #0x30] pop {r3, pc} _0201594E: add r0, r1, #0x0 add r0, #0x44 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x70 str r0, [r1, #0x28] ldr r0, [r2, #0x70] str r0, [r1, #0x30] pop {r3, pc} _02015960: add r0, r1, #0x0 add r0, #0x48 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x74 str r0, [r1, #0x28] ldr r0, [r2, #0x74] str r0, [r1, #0x30] pop {r3, pc} _02015972: add r0, r1, #0x0 add r0, #0x4c str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x78 str r0, [r1, #0x28] ldr r0, [r2, #0x78] str r0, [r1, #0x30] pop {r3, pc} _02015984: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0201598C FUN_0201598C: ; 0x0201598C push {r3-r7, lr} sub sp, #0x8 add r6, r1, #0x0 lsl r1, r6, #0x18 lsr r1, r1, #0x18 add r5, r0, #0x0 bl FUN_02014F34 str r0, [sp, #0x4] ldr r1, [sp, #0x4] add r0, r5, #0x0 add r1, #0x2c bl FUN_02014F94 ldr r1, [sp, #0x4] add r0, r5, #0x0 add r1, #0x2d bl FUN_02014F94 mov r0, #0xc mul r0, r6 ldr r1, _02015A28 ; =0x020ED66C str r0, [sp, #0x0] ldr r0, [r1, r0] mov r4, #0x0 cmp r0, #0x0 ble _020159E2 ldr r1, _02015A2C ; =0x020ED668 ldr r0, [sp, #0x0] add r6, r1, r0 ldr r0, [sp, #0x4] add r7, r0, #0x4 _020159CC: lsl r1, r4, #0x2 add r0, r5, #0x0 add r1, r7, r1 bl FUN_02014F80 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [r6, #0x4] cmp r4, r0 blt _020159CC _020159E2: ldr r1, _02015A30 ; =0x020ED670 ldr r0, [sp, #0x0] add r2, r5, #0x0 ldr r0, [r1, r0] lsl r1, r0, #0x2 ldr r0, [sp, #0x4] add r0, r0, r1 ldr r0, [r0, #0x4] ldr r1, [sp, #0x4] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201590C ldr r0, [sp, #0x4] add r0, #0x2d ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02015A14 ldr r0, [sp, #0x4] add r1, r5, #0x0 add r2, r0, #0x0 ldr r2, [r2, #0x50] blx r2 add sp, #0x8 pop {r3-r7, pc} _02015A14: ldr r0, [sp, #0x4] add r0, #0x2d ldrb r0, [r0, #0x0] sub r1, r0, #0x1 ldr r0, [sp, #0x4] add r0, #0x2d str r0, [sp, #0x4] strb r1, [r0, #0x0] add sp, #0x8 pop {r3-r7, pc} .balign 4 _02015A28: .word 0x020ED66C _02015A2C: .word 0x020ED668 _02015A30: .word 0x020ED670 thumb_func_start FUN_02015A34 FUN_02015A34: ; 0x02015A34 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r1, [r4, #0x10] add r0, r0, #0x1 ldr r2, [r4, #0x14] mul r0, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [r4, #0x4] sub r0, #0x1e cmp r0, #0x3 bhi _02015AC0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015A5C: ; jump table (using 16-bit offset) .short _02015A64 - _02015A5C - 2; case 0 .short _02015A78 - _02015A5C - 2; case 1 .short _02015A90 - _02015A5C - 2; case 2 .short _02015AA6 - _02015A5C - 2; case 3 _02015A64: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015AE8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015A78: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015AE8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 ldr r0, [r4, #0x24] asr r1, r1, #0xc str r1, [r0, #0x0] b _02015AC4 _02015A90: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015AE8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r0, r0, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015AA6: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015AE8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 asr r0, r1, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015AC0: bl ErrorHandling _02015AC4: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x1c] add r1, r0, #0x1 str r1, [r4, #0x1c] ldr r0, [r4, #0x18] cmp r1, r0 blt _02015AE6 mov r0, #0x0 str r0, [r4, #0x0] _02015AE6: pop {r4, pc} .balign 4 _02015AE8: .word 0x020FFA38 thumb_func_start FUN_02015AEC FUN_02015AEC: ; 0x02015AEC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r1, [r4, #0x10] add r0, r0, #0x1 mul r0, r1 ldr r1, [r4, #0x18] blx _s32_div_f ldr r1, [r4, #0x14] add r0, r1, r0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [r4, #0x4] sub r0, #0x1e cmp r0, #0x3 bhi _02015B7E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015B1A: ; jump table (using 16-bit offset) .short _02015B22 - _02015B1A - 2; case 0 .short _02015B36 - _02015B1A - 2; case 1 .short _02015B4E - _02015B1A - 2; case 2 .short _02015B64 - _02015B1A - 2; case 3 _02015B22: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015BA8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B36: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015BA8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 ldr r0, [r4, #0x24] asr r1, r1, #0xc str r1, [r0, #0x0] b _02015B82 _02015B4E: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015BA8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r0, r0, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B64: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015BA8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 asr r0, r1, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B7E: bl ErrorHandling _02015B82: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x1c] add r1, r0, #0x1 str r1, [r4, #0x1c] ldr r0, [r4, #0x18] cmp r1, r0 blt _02015BA4 mov r0, #0x0 str r0, [r4, #0x0] _02015BA4: pop {r4, pc} nop _02015BA8: .word 0x020FFA38 thumb_func_start FUN_02015BAC FUN_02015BAC: ; 0x02015BAC push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x24] ldr r3, [r4, #0xc] ldr r2, [r4, #0x14] ldr r5, [r4, #0x8] mul r2, r3 ldr r0, [r1, #0x0] add r2, r5, r2 add r0, r0, r2 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c add r1, r4, #0x0 ldrb r0, [r0, #0x0] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x14] add r1, r0, #0x1 str r1, [r4, #0x14] ldr r0, [r4, #0x10] cmp r1, r0 blt _02015BE4 mov r0, #0x0 str r0, [r4, #0x0] _02015BE4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02015BE8 FUN_02015BE8: ; 0x02015BE8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] add r1, r0, #0x1 ldr r0, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0xc] blx _s32_div_f ldr r1, [r4, #0x24] str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c add r1, r4, #0x0 ldrb r0, [r0, #0x0] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x10] add r1, r0, #0x1 str r1, [r4, #0x10] ldr r0, [r4, #0xc] cmp r1, r0 blt _02015C20 mov r0, #0x0 str r0, [r4, #0x0] _02015C20: pop {r4, pc} .balign 4 thumb_func_start FUN_02015C24 FUN_02015C24: ; 0x02015C24 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] ldr r0, [r4, #0x14] ldr r2, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0x24] add r2, r2, r0 ldr r0, [r1, #0x0] add r0, r0, r2 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x18 beq _02015C48 cmp r0, #0x1a bne _02015C6E _02015C48: cmp r2, #0x0 ldr r2, [r4, #0x10] bge _02015C5E ldr r1, [r4, #0x24] ldr r0, [r1, #0x0] cmp r0, r2 bgt _02015CA4 str r2, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C5E: ldr r1, [r4, #0x24] ldr r0, [r1, #0x0] cmp r0, r2 blt _02015CA4 str r2, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C6E: cmp r0, #0x19 bne _02015CA0 ldr r1, [r4, #0x24] ldr r3, [r4, #0x30] ldr r0, [r1, #0x0] add r3, r3, r0 cmp r2, #0x0 ldr r2, [r4, #0x10] bge _02015C90 cmp r3, r2 bgt _02015CA4 sub r2, r2, r3 add r0, r0, r2 str r0, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C90: cmp r3, r2 blt _02015CA4 sub r2, r3, r2 sub r0, r0, r2 str r0, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015CA0: bl ErrorHandling _02015CA4: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] pop {r4, pc} .balign 4 thumb_func_start FUN_02015CC0 FUN_02015CC0: ; 0x02015CC0 ldr r3, _02015CDC ; =0x020ED72C mov r2, #0x0 _02015CC4: ldrh r1, [r3, #0x2] cmp r0, r1 bhs _02015CCE add r0, r2, #0x0 bx lr _02015CCE: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x2 blt _02015CC4 add r0, r2, #0x0 bx lr nop _02015CDC: .word 0x020ED72C thumb_func_start FUN_02015CE0 FUN_02015CE0: ; 0x02015CE0 push {r4, lr} add r4, r0, #0x0 bl FUN_02015CC0 lsl r1, r0, #0x1 ldr r0, _02015CF4 ; =0x020ED72C ldrh r0, [r0, r1] sub r0, r4, r0 pop {r4, pc} nop _02015CF4: .word 0x020ED72C thumb_func_start FUN_02015CF8 FUN_02015CF8: ; 0x02015CF8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x3 blt _02015D06 bl ErrorHandling _02015D06: ldr r0, _02015D10 ; =0x020ED72C lsl r1, r5, #0x1 ldrh r0, [r0, r1] add r0, r4, r0 pop {r3-r5, pc} .balign 4 _02015D10: .word 0x020ED72C thumb_func_start FUN_02015D14 FUN_02015D14: ; 0x02015D14 cmp r0, #0x7 bhi _02015D34 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015D24: ; jump table (using 16-bit offset) .short _02015D34 - _02015D24 - 2; case 0 .short _02015D34 - _02015D24 - 2; case 1 .short _02015D38 - _02015D24 - 2; case 2 .short _02015D3E - _02015D24 - 2; case 3 .short _02015D38 - _02015D24 - 2; case 4 .short _02015D42 - _02015D24 - 2; case 5 .short _02015D34 - _02015D24 - 2; case 6 .short _02015D38 - _02015D24 - 2; case 7 _02015D34: mov r0, #0xea bx lr _02015D38: mov r0, #0x6d lsl r0, r0, #0x2 bx lr _02015D3E: ldr r0, _02015D48 ; =0x000001B7 bx lr _02015D42: ldr r0, _02015D4C ; =0x000001B6 bx lr nop _02015D48: .word 0x000001B7 _02015D4C: .word 0x000001B6 thumb_func_start FUN_02015D50 FUN_02015D50: ; 0x02015D50 cmp r0, #0x7 bhi _02015D70 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015D60: ; jump table (using 16-bit offset) .short _02015D70 - _02015D60 - 2; case 0 .short _02015D70 - _02015D60 - 2; case 1 .short _02015D74 - _02015D60 - 2; case 2 .short _02015D78 - _02015D60 - 2; case 3 .short _02015D74 - _02015D60 - 2; case 4 .short _02015D7E - _02015D60 - 2; case 5 .short _02015D70 - _02015D60 - 2; case 6 .short _02015D74 - _02015D60 - 2; case 7 _02015D70: mov r0, #0xeb bx lr _02015D74: ldr r0, _02015D84 ; =0x000001B5 bx lr _02015D78: mov r0, #0x6e lsl r0, r0, #0x2 bx lr _02015D7E: mov r0, #0x6d lsl r0, r0, #0x2 bx lr .balign 4 _02015D84: .word 0x000001B5 thumb_func_start FUN_02015D88 FUN_02015D88: ; 0x02015D88 push {r3-r7, lr} sub sp, #0x10 add r6, r3, #0x0 str r0, [sp, #0x0] str r1, [sp, #0x4] str r2, [sp, #0x8] cmp r6, #0x1 beq _02015D9C mov r2, #0x1 b _02015D9E _02015D9C: mov r2, #0x0 _02015D9E: ldr r0, [sp, #0x8] mov r4, #0x0 sub r0, r0, #0x1 str r0, [sp, #0xc] beq _02015E18 ldr r1, _02015E28 ; =0x020ED734 lsl r0, r2, #0x1 ldr r5, [sp, #0x4] add r7, r1, r0 _02015DB0: ldr r0, [sp, #0x0] ldrb r0, [r0, r4] cmp r0, #0xff beq _02015E18 cmp r0, #0xf7 blo _02015DEA ldr r0, [sp, #0x8] sub r3, r0, #0x1 cmp r3, #0xa blo _02015DC6 mov r3, #0xa _02015DC6: mov r1, #0x0 cmp r3, #0x0 ble _02015DDC mov r0, #0x6b ldr r2, [sp, #0x4] lsl r0, r0, #0x2 _02015DD2: add r1, r1, #0x1 strh r0, [r2, #0x0] add r2, r2, #0x2 cmp r1, r3 blt _02015DD2 _02015DDC: ldr r0, [sp, #0x4] ldr r2, _02015E2C ; =0x0000FFFF lsl r1, r1, #0x1 strh r2, [r0, r1] add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _02015DEA: lsl r0, r0, #0x2 ldrh r0, [r7, r0] cmp r0, #0xea beq _02015DF8 cmp r0, #0xeb beq _02015E02 b _02015E0C _02015DF8: add r0, r6, #0x0 bl FUN_02015D14 strh r0, [r5, #0x0] b _02015E0E _02015E02: add r0, r6, #0x0 bl FUN_02015D50 strh r0, [r5, #0x0] b _02015E0E _02015E0C: strh r0, [r5, #0x0] _02015E0E: ldr r0, [sp, #0xc] add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, r0 blo _02015DB0 _02015E18: ldr r2, _02015E2C ; =0x0000FFFF ldr r0, [sp, #0x4] lsl r1, r4, #0x1 strh r2, [r0, r1] mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop _02015E28: .word 0x020ED734 _02015E2C: .word 0x0000FFFF thumb_func_start FUN_02015E30 FUN_02015E30: ; 0x02015E30 ldr r0, _02015E38 ; =0x021C4898 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _02015E38: .word 0x021C4898 thumb_func_start FUN_02015E3C FUN_02015E3C: ; 0x02015E3C push {r3, lr} ldr r1, _02015E5C ; =0x021C4898 mov r2, #0x1 str r2, [r1, #0x0] mov r2, #0x0 str r2, [r1, #0x10] str r2, [r1, #0x14] str r2, [r1, #0x8] str r2, [r1, #0xc] str r0, [r1, #0x4] bl FUN_02020BF4 ldr r2, _02015E5C ; =0x021C4898 str r0, [r2, #0x18] str r1, [r2, #0x1c] pop {r3, pc} .balign 4 _02015E5C: .word 0x021C4898 thumb_func_start FUN_02015E60 FUN_02015E60: ; 0x02015E60 push {r3-r5, lr} ldr r0, _02015E9C ; =0x021C4898 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02015E9A bl FUN_02020BF4 ldr r2, _02015E9C ; =0x021C4898 ldr r3, [r2, #0x18] ldr r2, [r2, #0x1c] sub r0, r0, r3 sbc r1, r2 bl FUN_02020C14 add r5, r1, #0x0 ldr r1, _02015E9C ; =0x021C4898 add r4, r0, #0x0 ldr r3, [r1, #0x8] ldr r2, [r1, #0xc] sub r0, r3, r4 sbc r2, r5 bhs _02015E9A ldr r0, [r1, #0x4] sub r1, r4, r3 bl FUN_02029E54 ldr r0, _02015E9C ; =0x021C4898 str r4, [r0, #0x8] str r5, [r0, #0xc] _02015E9A: pop {r3-r5, pc} .balign 4 _02015E9C: .word 0x021C4898 thumb_func_start FUN_02015EA0 FUN_02015EA0: ; 0x02015EA0 push {r3, lr} ldr r3, _02015EC8 ; =0x027E0000 ldr r1, _02015ECC ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] mov r0, #0x3 blx MI_WaitDma ldr r0, _02015ED0 ; =0x021C48B8 ldr r0, [r0, #0x1c] bl FUN_0201B5CC ldr r0, _02015ED0 ; =0x021C48B8 ldr r1, [r0, #0x30] add r1, r1, #0x1 str r1, [r0, #0x30] pop {r3, pc} nop _02015EC8: .word 0x027E0000 _02015ECC: .word 0x00003FF8 _02015ED0: .word 0x021C48B8 thumb_func_start FUN_02015ED4 FUN_02015ED4: ; 0x02015ED4 ldr r3, _02015EE8 ; =0x027E0000 ldr r1, _02015EEC ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] ldr r3, _02015EF0 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02015EE8: .word 0x027E0000 _02015EEC: .word 0x00003FF8 _02015EF0: .word MI_WaitDma thumb_func_start FUN_02015EF4 FUN_02015EF4: ; 0x02015EF4 push {r3, lr} mov r0, #0x1 blx OS_DisableIrqMask ldr r1, _02015F0C ; =FUN_02015ED4 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02015F0C: .word FUN_02015ED4 thumb_func_start FUN_02015F10 FUN_02015F10: ; 0x02015F10 ldr r2, _02015F18 ; =0x021C48B8 str r0, [r2, #0x0] str r1, [r2, #0x4] bx lr .balign 4 _02015F18: .word 0x021C48B8 thumb_func_start FUN_02015F1C FUN_02015F1C: ; 0x02015F1C push {r3, lr} mov r0, #0x0 bl FUN_02015F80 ldr r0, _02015F30 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x8] str r1, [r0, #0xc] pop {r3, pc} nop _02015F30: .word 0x021C48B8 thumb_func_start FUN_02015F34 FUN_02015F34: ; 0x02015F34 push {r3, lr} cmp r0, #0x0 bne _02015F4C mov r0, #0x0 bl FUN_02015F80 ldr r0, _02015F68 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x8] str r1, [r0, #0xc] mov r0, #0x1 pop {r3, pc} _02015F4C: ldr r2, _02015F68 ; =0x021C48B8 ldr r3, [r2, #0x8] cmp r3, #0x0 bne _02015F62 str r1, [r2, #0xc] str r0, [r2, #0x8] mov r0, #0x1 bl FUN_02015F80 mov r0, #0x1 pop {r3, pc} _02015F62: mov r0, #0x0 pop {r3, pc} nop _02015F68: .word 0x021C48B8 thumb_func_start FUN_02015F6C FUN_02015F6C: ; 0x02015F6C push {r3, lr} ldr r0, _02015F7C ; =0x021C48B8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _02015F7A ldr r0, [r0, #0xc] blx r1 _02015F7A: pop {r3, pc} .balign 4 _02015F7C: .word 0x021C48B8 thumb_func_start FUN_02015F80 FUN_02015F80: ; 0x02015F80 push {r3, lr} ldr r2, _02015FC0 ; =0x04000208 ldrh r1, [r2, #0x0] mov r1, #0x0 strh r1, [r2, #0x0] cmp r0, #0x0 bne _02015F9E ldr r0, [r2, #0x8] mov r0, #0x2 blx OS_DisableIrqMask mov r0, #0x0 blx GX_HBlankIntr b _02015FB4 _02015F9E: ldr r0, [r2, #0x8] ldr r1, _02015FC4 ; =FUN_02015F6C mov r0, #0x2 blx OS_SetIrqFunction mov r0, #0x2 blx OS_EnableIrqMask mov r0, #0x1 blx GX_HBlankIntr _02015FB4: ldr r1, _02015FC0 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] pop {r3, pc} nop _02015FC0: .word 0x04000208 _02015FC4: .word FUN_02015F6C thumb_func_start FUN_02015FC8 FUN_02015FC8: ; 0x02015FC8 push {r3, lr} sub sp, #0x30 add r0, sp, #0x10 blx OS_GetLowEntropyData add r0, sp, #0x0 add r1, sp, #0x10 mov r2, #0x20 blx MATH_CalcMD5 mov r3, #0x0 add r1, r3, #0x0 add r2, sp, #0x0 _02015FE2: ldrb r0, [r2, #0x0] add r1, r1, #0x1 add r2, r2, #0x1 add r3, r3, r0 cmp r1, #0x10 blo _02015FE2 lsl r0, r3, #0x18 lsr r3, r0, #0x18 mov r0, #0x3 tst r0, r3 beq _02016002 mov r0, #0x3 _02015FFA: add r3, r3, #0x1 add r1, r3, #0x0 tst r1, r0 bne _02015FFA _02016002: ldr r0, _02016010 ; =0x020EDB10 mov r1, #0x4 mov r2, #0x5c bl FUN_020166C8 add sp, #0x30 pop {r3, pc} .balign 4 _02016010: .word 0x020EDB10 thumb_func_start InitSystemForTheGame InitSystemForTheGame: ; 0x02016014 push {r3-r5, lr} blx OS_Init blx FX_Init ldr r2, _02016124 ; =0x04000304 ldr r0, _02016128 ; =0xFFFFFDF1 ldrh r1, [r2, #0x0] and r1, r0 ldr r0, _0201612C ; =0x0000020E orr r0, r1 strh r0, [r2, #0x0] blx GX_Init blx OS_InitTick bl FUN_02015FC8 mov r0, #0xa0 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0xa0 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x18] mov r0, #0x10 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x10 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x1c] mov r0, #0x20 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x20 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x20] mov r0, #0x4 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x4 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x24] blx GX_DispOff ldr r2, _02016134 ; =0x04001000 ldr r0, _02016138 ; =0xFFFEFFFF ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r2, _02016124 ; =0x04000304 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2, #0x0] ldr r1, _0201613C ; =FUN_02015EA0 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask mov r0, #0x1 lsl r0, r0, #0x12 blx OS_EnableIrqMask ldr r1, _02016140 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] blx GX_VBlankIntr mov r0, #0x1 blx FS_Init bl FUN_02022450 mov r0, #0x0 add r1, r0, #0x0 blx FS_TryLoadTable add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r5, r0, #0x0 bne _02016108 bl ErrorHandling _02016108: add r0, r5, #0x0 add r1, r4, #0x0 blx FS_TryLoadTable ldr r0, _02016130 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x8] str r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #0x2c] ldr r0, _02016144 ; =0x021C4918 strb r1, [r0, #0x5] pop {r3-r5, pc} .balign 4 _02016124: .word 0x04000304 _02016128: .word 0xFFFFFDF1 _0201612C: .word 0x0000020E _02016130: .word 0x021C48B8 _02016134: .word 0x04001000 _02016138: .word 0xFFFEFFFF _0201613C: .word FUN_02015EA0 _02016140: .word 0x04000208 _02016144: .word 0x021C4918 thumb_func_start InitGraphicMemory InitGraphicMemory: ; 0x02016148 push {r3, lr} ldr r0, _02016198 ; =0x000001FF blx GX_SetBankForLCDC mov r1, #0x1a mov r2, #0x29 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0xe blx MIi_CpuClearFast blx GX_DisableBankForLCDC mov r1, #0x7 mov r2, #0x1 mov r0, #0xc0 lsl r1, r1, #0x18 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _0201619C ; =0x07000400 mov r0, #0xc0 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r1, #0x5 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _020161A0 ; =0x05000400 mov r0, #0x0 lsl r2, r2, #0xa blx MIi_CpuClearFast pop {r3, pc} .balign 4 _02016198: .word 0x000001FF _0201619C: .word 0x07000400 _020161A0: .word 0x05000400 thumb_func_start FUN_020161A4 FUN_020161A4: ; 0x020161A4 push {r4-r6, lr} sub sp, #0x48 add r6, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020161F0 ldr r1, [sp, #0x28] ldr r0, [sp, #0x24] sub r5, r1, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _020161E8 add r0, sp, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 blx FS_ReadFile cmp r5, r0 beq _020161E8 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02016A8C mov r4, #0x0 _020161E8: add r0, sp, #0x0 blx FS_CloseFile b _020161F2 _020161F0: mov r4, #0x0 _020161F2: add r0, r4, #0x0 add sp, #0x48 pop {r4-r6, pc} thumb_func_start FUN_020161F8 FUN_020161F8: ; 0x020161F8 push {r3-r5, lr} sub sp, #0x48 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r5, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _0201622A ldr r1, [sp, #0x28] ldr r0, [sp, #0x24] sub r2, r1, r0 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02016224 add r0, sp, #0x0 blx FS_ReadFile _02016224: add r0, sp, #0x0 blx FS_CloseFile _0201622A: add sp, #0x48 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02016230 FUN_02016230: ; 0x02016230 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] blx strlen lsl r0, r0, #0x10 lsr r3, r0, #0x10 lsr r2, r3, #0x1f lsl r1, r3, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 beq _02016258 lsr r0, r3, #0x2 add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] b _0201625E _02016258: lsl r0, r3, #0xe lsr r0, r0, #0x10 str r0, [sp, #0x4] _0201625E: ldr r0, [sp, #0x4] mov r7, #0x0 mov r12, r7 cmp r0, #0x0 ble _0201629A add r6, r7, #0x0 add r4, r7, #0x0 _0201626C: ldr r2, [sp, #0x0] mov r1, #0x0 add r0, r1, #0x0 add r2, r2, r6 add r3, r1, #0x0 _02016276: ldrsb r5, [r2, r4] cmp r5, #0x0 beq _0201628A lsl r5, r3 add r0, r0, #0x1 orr r1, r5 add r2, r2, #0x1 add r3, #0x8 cmp r0, #0x4 blt _02016276 _0201628A: mov r0, r12 eor r7, r1 add r1, r0, #0x1 ldr r0, [sp, #0x4] add r6, r6, #0x4 mov r12, r1 cmp r1, r0 blt _0201626C _0201629A: add r0, r7, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020162A0 FUN_020162A0: ; 0x020162A0 ldr r3, _020162C4 ; =0x021C4928 mov r2, #0x0 _020162A4: ldr r1, [r3, #0x4] cmp r0, r1 bne _020162B4 ldr r1, [r3, #0x0] cmp r1, #0x0 beq _020162B4 add r0, r2, #0x0 bx lr _020162B4: add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x80 blt _020162A4 mov r0, #0x0 mvn r0, r0 bx lr nop _020162C4: .word 0x021C4928 thumb_func_start FUN_020162C8 FUN_020162C8: ; 0x020162C8 push {r3-r4} ldr r3, _020162F4 ; =0x021C4928 mov r4, #0x0 _020162CE: ldr r2, [r3, #0x0] cmp r2, #0x0 bne _020162E4 ldr r2, _020162F4 ; =0x021C4928 lsl r3, r4, #0x3 str r0, [r2, r3] ldr r0, _020162F8 ; =0x021C492C str r1, [r0, r3] add r0, r4, #0x0 pop {r3-r4} bx lr _020162E4: add r4, r4, #0x1 add r3, #0x8 cmp r4, #0x80 blt _020162CE mov r0, #0x0 mvn r0, r0 pop {r3-r4} bx lr .balign 4 _020162F4: .word 0x021C4928 _020162F8: .word 0x021C492C thumb_func_start FUN_020162FC FUN_020162FC: ; 0x020162FC push {r3-r7, lr} mov r6, #0x0 ldr r5, _02016320 ; =0x021C4D20 mov r4, #0x7f sub r7, r6, #0x1 _02016306: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02016314 bl FUN_02016A18 str r6, [r5, #0x0] str r6, [r5, #0x4] _02016314: sub r4, r4, #0x1 sub r5, #0x8 cmp r4, r7 bgt _02016306 pop {r3-r7, pc} nop _02016320: .word 0x021C4D20 thumb_func_start FUN_02016324 FUN_02016324: ; 0x02016324 push {r3-r7, lr} sub sp, #0x68 add r2, r0, #0x0 mov r5, #0x0 ldrsb r0, [r2, r5] add r4, r1, #0x0 cmp r0, #0x21 add r0, sp, #0x0 bne _02016340 add r1, r2, #0x1 blx strcpy mov r5, #0x1 b _02016346 _02016340: add r1, r2, #0x0 blx strcpy _02016346: add r0, sp, #0x0 bl FUN_02016230 add r7, r0, #0x0 bl FUN_020162A0 cmp r0, #0x0 blt _02016362 cmp r5, #0x0 bne _02016362 lsl r1, r0, #0x3 ldr r0, _020163B8 ; =0x021C4928 ldr r4, [r0, r1] b _020163B2 _02016362: add r0, sp, #0x20 blx FS_InitFile add r0, sp, #0x20 add r1, sp, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020163B0 ldr r1, [sp, #0x48] ldr r0, [sp, #0x44] sub r6, r1, r0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _0201639C add r0, sp, #0x20 add r1, r4, #0x0 add r2, r6, #0x0 blx FS_ReadFile cmp r6, r0 beq _0201639C add r0, r4, #0x0 bl FUN_02016A18 mov r4, #0x0 _0201639C: add r0, sp, #0x20 blx FS_CloseFile cmp r5, #0x0 bne _020163B2 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_020162C8 b _020163B2 _020163B0: mov r4, #0x0 _020163B2: add r0, r4, #0x0 add sp, #0x68 pop {r3-r7, pc} .balign 4 _020163B8: .word 0x021C4928 thumb_func_start FUN_020163BC FUN_020163BC: ; 0x020163BC push {r3, lr} sub sp, #0x8 ldr r0, _0201641C ; =0x021C48B8 mov r2, #0x0 str r2, [r0, #0x34] str r2, [r0, #0x38] str r2, [r0, #0x3c] str r2, [r0, #0x40] str r2, [r0, #0x44] str r2, [r0, #0x48] str r2, [r0, #0x4c] str r2, [r0, #0x50] mov r1, #0x8 str r1, [r0, #0x54] mov r1, #0xf str r1, [r0, #0x58] ldr r0, _02016420 ; =0x021C48F8 strh r2, [r0, #0x1c] strh r2, [r0, #0x1e] strh r2, [r0, #0x20] strh r2, [r0, #0x22] ldr r0, _02016424 ; =0x021C4918 strb r2, [r0, #0x4] blx TP_Init add r0, sp, #0x0 blx TP_GetUserInfo cmp r0, #0x1 add r0, sp, #0x0 bne _02016402 blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} _02016402: ldr r1, _02016428 ; =0x000002AE strh r1, [r0, #0x0] ldr r1, _0201642C ; =0x0000058C strh r1, [r0, #0x2] ldr r1, _02016430 ; =0x00000E25 strh r1, [r0, #0x4] ldr r1, _02016434 ; =0x00001208 strh r1, [r0, #0x6] add r0, sp, #0x0 blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} .balign 4 _0201641C: .word 0x021C48B8 _02016420: .word 0x021C48F8 _02016424: .word 0x021C4918 _02016428: .word 0x000002AE _0201642C: .word 0x0000058C _02016430: .word 0x00000E25 _02016434: .word 0x00001208 thumb_func_start FUN_02016438 FUN_02016438: ; 0x02016438 ldr r1, _02016440 ; =0x021C4918 strb r0, [r1, #0x6] bx lr nop _02016440: .word 0x021C4918 thumb_func_start FUN_02016444 FUN_02016444: ; 0x02016444 ldr r1, _02016450 ; =0x021C4918 ldrb r2, [r1, #0x7] orr r0, r2 strb r0, [r1, #0x7] bx lr nop _02016450: .word 0x021C4918 thumb_func_start FUN_02016454 FUN_02016454: ; 0x02016454 ldr r1, _02016460 ; =0x021C4918 mvn r0, r0 ldrb r2, [r1, #0x7] and r0, r2 strb r0, [r1, #0x7] bx lr .balign 4 _02016460: .word 0x021C4918 thumb_func_start FUN_02016464 FUN_02016464: ; 0x02016464 push {r4, lr} sub sp, #0x10 ldr r2, _02016550 ; =0x027FFFA8 mov r0, #0x2 ldrh r1, [r2, #0x0] lsl r0, r0, #0xe and r0, r1 asr r0, r0, #0xf beq _0201648A ldr r0, _02016554 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x48] str r1, [r0, #0x44] str r1, [r0, #0x4c] ldr r0, _02016558 ; =0x021C48F8 add sp, #0x10 strh r1, [r0, #0x20] strh r1, [r0, #0x22] pop {r4, pc} _0201648A: ldr r0, _0201655C ; =0x04000130 ldrh r1, [r0, #0x0] ldrh r0, [r2, #0x0] orr r1, r0 ldr r0, _02016560 ; =0x00002FFF eor r1, r0 and r0, r1 ldr r1, _02016554 ; =0x021C48B8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 ldr r2, [r1, #0x38] add r3, r0, #0x0 eor r3, r2 and r3, r0 str r3, [r1, #0x3c] str r3, [r1, #0x40] cmp r0, #0x0 beq _020164C2 cmp r2, r0 bne _020164C2 ldr r2, [r1, #0x50] sub r2, r2, #0x1 str r2, [r1, #0x50] bne _020164C8 str r0, [r1, #0x40] ldr r2, [r1, #0x54] str r2, [r1, #0x50] b _020164C8 _020164C2: ldr r1, _02016554 ; =0x021C48B8 ldr r2, [r1, #0x58] str r2, [r1, #0x50] _020164C8: ldr r1, _02016554 ; =0x021C48B8 str r0, [r1, #0x38] ldr r2, [r1, #0x3c] str r2, [r1, #0x48] str r0, [r1, #0x44] ldr r0, [r1, #0x40] str r0, [r1, #0x4c] bl FUN_02016568 ldr r0, _02016564 ; =0x021C4918 ldrb r0, [r0, #0x4] cmp r0, #0x0 bne _020164F4 add r4, sp, #0x8 _020164E4: blx TP_RequestSamplingAsync add r0, r4, #0x0 blx TP_WaitRawResult cmp r0, #0x0 bne _020164E4 b _020164FA _020164F4: add r0, sp, #0x8 blx TP_GetLatestRawPointInAuto _020164FA: add r0, sp, #0x0 add r1, sp, #0x8 blx TP_GetCalibratedPoint add r1, sp, #0x0 ldrh r3, [r1, #0x6] cmp r3, #0x0 bne _02016516 ldrh r2, [r1, #0x0] ldr r0, _02016558 ; =0x021C48F8 strh r2, [r0, #0x1c] ldrh r1, [r1, #0x2] strh r1, [r0, #0x1e] b _0201653A _02016516: ldr r0, _02016558 ; =0x021C48F8 ldrh r2, [r0, #0x22] cmp r2, #0x0 beq _02016536 cmp r3, #0x1 beq _0201652A cmp r3, #0x2 beq _02016530 cmp r3, #0x3 b _0201653A _0201652A: ldrh r1, [r1, #0x2] strh r1, [r0, #0x1e] b _0201653A _02016530: ldrh r1, [r1, #0x0] strh r1, [r0, #0x1c] b _0201653A _02016536: mov r0, #0x0 strh r0, [r1, #0x4] _0201653A: add r0, sp, #0x0 ldrh r2, [r0, #0x4] ldr r0, _02016558 ; =0x021C48F8 ldrh r1, [r0, #0x22] eor r1, r2 and r1, r2 strh r1, [r0, #0x20] strh r2, [r0, #0x22] add sp, #0x10 pop {r4, pc} nop _02016550: .word 0x027FFFA8 _02016554: .word 0x021C48B8 _02016558: .word 0x021C48F8 _0201655C: .word 0x04000130 _02016560: .word 0x00002FFF _02016564: .word 0x021C4918 thumb_func_start FUN_02016568 FUN_02016568: ; 0x02016568 ldr r0, _02016690 ; =0x021C48B8 ldr r1, [r0, #0x34] cmp r1, #0x3 bls _02016572 b _0201668C _02016572: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201657E: ; jump table (using 16-bit offset) .short _0201668C - _0201657E - 2; case 0 .short _02016586 - _0201657E - 2; case 1 .short _020165BC - _0201657E - 2; case 2 .short _02016642 - _0201657E - 2; case 3 _02016586: ldr r2, [r0, #0x48] mov r1, #0x8 add r3, r2, #0x0 tst r3, r1 beq _02016596 lsl r1, r1, #0x7 orr r1, r2 str r1, [r0, #0x48] _02016596: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x8 ldr r2, [r1, #0x44] add r3, r2, #0x0 tst r3, r0 beq _020165A8 lsl r0, r0, #0x7 orr r0, r2 str r0, [r1, #0x44] _020165A8: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x8 ldr r2, [r1, #0x4c] add r3, r2, #0x0 tst r3, r0 beq _0201668C lsl r0, r0, #0x7 orr r0, r2 str r0, [r1, #0x4c] bx lr _020165BC: ldr r3, [r0, #0x48] mov r0, #0x1 lsl r0, r0, #0xa add r2, r3, #0x0 mov r1, #0x0 tst r2, r0 beq _020165CE lsl r0, r0, #0x1 orr r1, r0 _020165CE: mov r0, #0x2 lsl r0, r0, #0xa add r2, r3, #0x0 tst r2, r0 beq _020165DC lsr r0, r0, #0x1 orr r1, r0 _020165DC: ldr r2, _02016690 ; =0x021C48B8 ldr r0, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x48] and r0, r3 orr r0, r1 str r0, [r2, #0x48] ldr r3, [r2, #0x44] mov r1, #0x1 lsl r1, r1, #0xa add r2, r3, #0x0 mov r0, #0x0 tst r2, r1 beq _020165FA lsl r1, r1, #0x1 orr r0, r1 _020165FA: mov r1, #0x2 lsl r1, r1, #0xa add r2, r3, #0x0 tst r2, r1 beq _02016608 lsr r1, r1, #0x1 orr r0, r1 _02016608: ldr r2, _02016690 ; =0x021C48B8 ldr r1, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x44] and r1, r3 orr r0, r1 str r0, [r2, #0x44] ldr r3, [r2, #0x4c] mov r1, #0x1 lsl r1, r1, #0xa add r2, r3, #0x0 mov r0, #0x0 tst r2, r1 beq _02016626 lsl r1, r1, #0x1 orr r0, r1 _02016626: mov r1, #0x2 lsl r1, r1, #0xa add r2, r3, #0x0 tst r2, r1 beq _02016634 lsr r1, r1, #0x1 orr r0, r1 _02016634: ldr r2, _02016690 ; =0x021C48B8 ldr r1, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x4c] and r1, r3 orr r0, r1 str r0, [r2, #0x4c] bx lr _02016642: mov r1, #0x2 ldr r2, [r0, #0x48] lsl r1, r1, #0x8 tst r1, r2 beq _02016652 mov r1, #0x1 orr r1, r2 str r1, [r0, #0x48] _02016652: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x2 ldr r2, [r1, #0x44] lsl r0, r0, #0x8 tst r0, r2 beq _02016664 mov r0, #0x1 orr r0, r2 str r0, [r1, #0x44] _02016664: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x2 ldr r2, [r1, #0x4c] lsl r0, r0, #0x8 tst r0, r2 beq _02016676 mov r0, #0x1 orr r0, r2 str r0, [r1, #0x4c] _02016676: ldr r1, _02016690 ; =0x021C48B8 ldr r0, _02016698 ; =0x0000FCFF ldr r2, [r1, #0x48] and r2, r0 str r2, [r1, #0x48] ldr r2, [r1, #0x44] and r2, r0 str r2, [r1, #0x44] ldr r2, [r1, #0x4c] and r0, r2 str r0, [r1, #0x4c] _0201668C: bx lr nop _02016690: .word 0x021C48B8 _02016694: .word 0x0000F3FF _02016698: .word 0x0000FCFF thumb_func_start FUN_0201669C FUN_0201669C: ; 0x0201669C ldr r2, _020166A4 ; =0x021C48B8 str r0, [r2, #0x54] str r1, [r2, #0x58] bx lr .balign 4 _020166A4: .word 0x021C48B8 thumb_func_start FUN_020166A8 FUN_020166A8: ; 0x020166A8 ldr r1, _020166B4 ; =0x021C4918 ldrb r2, [r1, #0x8] orr r0, r2 strb r0, [r1, #0x8] bx lr nop _020166B4: .word 0x021C4918 thumb_func_start FUN_020166B8 FUN_020166B8: ; 0x020166B8 ldr r1, _020166C4 ; =0x021C4918 mvn r0, r0 ldrb r2, [r1, #0x8] and r0, r2 strb r0, [r1, #0x8] bx lr .balign 4 _020166C4: .word 0x021C4918 thumb_func_start FUN_020166C8 FUN_020166C8: ; 0x020166C8 push {r3-r7, lr} sub sp, #0x8 add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 str r0, [sp, #0x4] add r0, #0x18 add r6, r2, #0x0 str r0, [sp, #0x4] cmp r6, r0 bhs _020166E0 add r6, r0, #0x0 _020166E0: cmp r3, #0x0 beq _020166FE mov r0, #0x3 tst r0, r3 beq _020166F4 mov r0, #0x3 _020166EC: add r3, r3, #0x1 add r1, r3, #0x0 tst r1, r0 bne _020166EC _020166F4: mov r0, #0x0 add r1, r3, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo _020166FE: ldr r1, [sp, #0x4] lsl r7, r6, #0x1 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r1, #0x1 lsl r1, r1, #0x2 add r1, r7, r1 mov r0, #0x0 add r1, r6, r1 mov r2, #0x4 blx OS_AllocFromArenaLo ldr r1, _020167F0 ; =0x021C4D28 str r0, [r1, #0x0] ldr r1, [sp, #0x4] add r1, r1, #0x1 lsl r1, r1, #0x2 add r1, r0, r1 ldr r0, _020167F0 ; =0x021C4D28 str r1, [r0, #0x4] ldr r0, [sp, #0x4] lsl r0, r0, #0x2 add r2, r1, r0 ldr r1, _020167F0 ; =0x021C4D28 str r2, [r1, #0x8] add r1, r2, r0 ldr r0, _020167F0 ; =0x021C4D28 str r1, [r0, #0xc] add r1, r1, r7 str r1, [r0, #0x10] strh r6, [r0, #0x14] strh r4, [r0, #0x16] ldr r0, [sp, #0x4] mov r7, #0x0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _020167F0 ; =0x021C4D28 cmp r4, #0x0 strh r1, [r0, #0x1a] strh r1, [r0, #0x18] bls _020167A0 str r7, [sp, #0x0] _02016752: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _0201675C cmp r0, #0x2 beq _02016768 _0201675C: ldr r1, [r5, #0x0] mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo b _02016772 _02016768: ldr r1, [r5, #0x0] mov r0, #0x2 mov r2, #0x4 blx OS_AllocFromArenaHi _02016772: cmp r0, #0x0 beq _0201678E ldr r1, [r5, #0x0] mov r2, #0x0 blx tempName_NNS_FndCreateExpHeapEx ldr r1, _020167F0 ; =0x021C4D28 ldr r2, [r1, #0x0] ldr r1, [sp, #0x0] str r0, [r2, r1] ldr r0, _020167F0 ; =0x021C4D28 ldr r0, [r0, #0x10] strb r7, [r0, r7] b _02016792 _0201678E: bl ErrorHandling _02016792: ldr r0, [sp, #0x0] add r7, r7, #0x1 add r0, r0, #0x4 add r5, #0x8 str r0, [sp, #0x0] cmp r7, r4 blo _02016752 _020167A0: ldr r0, [sp, #0x4] add r1, r0, #0x1 cmp r4, r1 bhs _020167C0 ldr r3, _020167F0 ; =0x021C4D28 lsl r2, r4, #0x2 mov r0, #0x0 _020167AE: ldr r5, [r3, #0x0] str r0, [r5, r2] ldrh r7, [r3, #0x1a] ldr r5, [r3, #0x10] add r2, r2, #0x4 strb r7, [r5, r4] add r4, r4, #0x1 cmp r4, r1 blo _020167AE _020167C0: cmp r4, r6 bhs _020167D2 ldr r0, _020167F0 ; =0x021C4D28 _020167C6: ldrh r2, [r0, #0x1a] ldr r1, [r0, #0x10] strb r2, [r1, r4] add r4, r4, #0x1 cmp r4, r6 blo _020167C6 _020167D2: mov r4, #0x0 cmp r6, #0x0 bls _020167EA ldr r0, _020167F0 ; =0x021C4D28 add r3, r4, #0x0 add r2, r4, #0x0 _020167DE: ldr r1, [r0, #0xc] add r4, r4, #0x1 strh r2, [r1, r3] add r3, r3, #0x2 cmp r4, r6 blo _020167DE _020167EA: add sp, #0x8 pop {r3-r7, pc} nop _020167F0: .word 0x021C4D28 thumb_func_start FUN_020167F4 FUN_020167F4: ; 0x020167F4 ldr r1, _02016818 ; =0x021C4D28 ldrh r0, [r1, #0x16] ldrh r3, [r1, #0x18] cmp r0, r3 bge _02016812 ldr r2, [r1, #0x0] lsl r1, r0, #0x2 add r2, r2, r1 _02016804: ldr r1, [r2, #0x0] cmp r1, #0x0 beq _02016816 add r0, r0, #0x1 add r2, r2, #0x4 cmp r0, r3 blt _02016804 _02016812: mov r0, #0x0 mvn r0, r0 _02016816: bx lr .balign 4 _02016818: .word 0x021C4D28 thumb_func_start FUN_0201681C FUN_0201681C: ; 0x0201681C push {r3, lr} mov r3, #0x4 bl FUN_02016834 pop {r3, pc} .balign 4 thumb_func_start FUN_02016828 FUN_02016828: ; 0x02016828 push {r3, lr} mov r3, #0x3 mvn r3, r3 bl FUN_02016834 pop {r3, pc} thumb_func_start FUN_02016834 FUN_02016834: ; 0x02016834 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] add r7, r3, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _0201684C bl ErrorHandling _0201684C: ldr r1, _020168CC ; =0x021C4D28 ldr r0, [r1, #0x10] ldrh r3, [r1, #0x1a] ldrb r2, [r0, r5] cmp r3, r2 bne _020168C2 ldrb r0, [r0, r4] ldr r1, [r1, #0x0] lsl r0, r0, #0x2 ldr r6, [r1, r0] cmp r6, #0x0 beq _020168BC ldr r1, [sp, #0x0] add r0, r6, #0x0 add r2, r7, #0x0 blx tempName_NNS_FndAllocFromExpHeapEx str r0, [sp, #0x4] cmp r0, #0x0 beq _020168B6 bl FUN_020167F4 add r7, r0, #0x0 bmi _020168B0 ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] mov r2, #0x0 lsl r4, r7, #0x2 blx tempName_NNS_FndCreateExpHeapEx ldr r1, _020168CC ; =0x021C4D28 ldr r2, [r1, #0x0] str r0, [r2, r4] ldr r0, [r1, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _020168AA ldr r0, [r1, #0x4] str r6, [r0, r4] ldr r0, [sp, #0x4] ldr r2, [r1, #0x8] add sp, #0x8 str r0, [r2, r4] ldr r0, [r1, #0x10] strb r7, [r0, r5] mov r0, #0x1 pop {r3-r7, pc} _020168AA: bl ErrorHandling b _020168C6 _020168B0: bl ErrorHandling b _020168C6 _020168B6: bl ErrorHandling b _020168C6 _020168BC: bl ErrorHandling b _020168C6 _020168C2: bl ErrorHandling _020168C6: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020168CC: .word 0x021C4D28 thumb_func_start FUN_020168D0 FUN_020168D0: ; 0x020168D0 push {r4, lr} add r4, r0, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _020168E0 bl ErrorHandling _020168E0: ldr r0, _02016940 ; =0x021C4D28 ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r4] lsl r0, r0, #0x2 ldr r0, [r1, r0] cmp r0, #0x0 beq _0201693E blx thunk_FUN_020adc8c ldr r1, _02016940 ; =0x021C4D28 ldr r0, [r1, #0x10] ldrb r0, [r0, r4] lsl r2, r0, #0x2 ldr r0, [r1, #0x4] ldr r1, [r1, #0x8] ldr r0, [r0, r2] ldr r1, [r1, r2] cmp r0, #0x0 beq _02016912 cmp r1, #0x0 beq _02016912 blx FUN_020ADDF0 b _02016916 _02016912: bl ErrorHandling _02016916: ldr r1, _02016940 ; =0x021C4D28 mov r0, #0x0 ldr r2, [r1, #0x10] ldr r3, [r1, #0x0] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldr r2, [r1, #0x10] ldr r3, [r1, #0x4] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldr r2, [r1, #0x10] ldr r3, [r1, #0x8] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldrh r2, [r1, #0x1a] ldr r0, [r1, #0x10] strb r2, [r0, r4] _0201693E: pop {r4, pc} .balign 4 _02016940: .word 0x021C4D28 thumb_func_start FUN_02016944 FUN_02016944: ; 0x02016944 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r5, #0x0 bne _02016956 bl ErrorHandling _02016956: blx OS_DisableInterrupts add r4, #0x10 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 blx tempName_NNS_FndAllocFromExpHeapEx add r4, r0, #0x0 ldr r0, [sp, #0x0] blx OS_RestoreInterrupts cmp r4, #0x0 beq _02016984 ldr r1, [r4, #0xc] mov r0, #0xff bic r1, r0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 orr r0, r1 str r0, [r4, #0xc] add r4, #0x10 _02016984: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02016988 FUN_02016988: ; 0x02016988 push {r3, lr} bl FUN_02031810 cmp r0, #0x0 beq _02016996 bl FUN_0208A9B8 _02016996: pop {r3, pc} thumb_func_start FUN_02016998 FUN_02016998: ; 0x02016998 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020169D4 ; =0x021C4D28 mov r4, #0x0 ldrh r2, [r0, #0x14] cmp r5, r2 bhs _020169BA ldr r2, [r0, #0x0] ldr r0, [r0, #0x10] add r3, r5, #0x0 ldrb r0, [r0, r5] lsl r0, r0, #0x2 ldr r0, [r2, r0] mov r2, #0x4 bl FUN_02016944 add r4, r0, #0x0 _020169BA: cmp r4, #0x0 beq _020169CC ldr r0, _020169D4 ; =0x021C4D28 lsl r1, r5, #0x1 ldr r2, [r0, #0xc] ldrh r0, [r2, r1] add r0, r0, #0x1 strh r0, [r2, r1] b _020169D0 _020169CC: bl FUN_02016988 _020169D0: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _020169D4: .word 0x021C4D28 thumb_func_start FUN_020169D8 FUN_020169D8: ; 0x020169D8 push {r3-r5, lr} ldr r2, _02016A14 ; =0x021C4D28 add r5, r0, #0x0 ldrh r0, [r2, #0x14] mov r4, #0x0 cmp r5, r0 bhs _020169FA ldr r0, [r2, #0x0] ldr r2, [r2, #0x10] add r3, r5, #0x0 ldrb r2, [r2, r5] lsl r2, r2, #0x2 ldr r0, [r0, r2] sub r2, r4, #0x4 bl FUN_02016944 add r4, r0, #0x0 _020169FA: cmp r4, #0x0 beq _02016A0C ldr r0, _02016A14 ; =0x021C4D28 lsl r1, r5, #0x1 ldr r2, [r0, #0xc] ldrh r0, [r2, r1] add r0, r0, #0x1 strh r0, [r2, r1] b _02016A10 _02016A0C: bl FUN_02016988 _02016A10: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02016A14: .word 0x021C4D28 thumb_func_start FUN_02016A18 FUN_02016A18: ; 0x02016A18 push {r3-r7, lr} add r6, r0, #0x0 sub r0, r6, #0x4 ldr r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, _02016A88 ; =0x021C4D28 ldrh r1, [r0, #0x14] cmp r4, r1 bhs _02016A80 ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r4] lsl r0, r0, #0x2 ldr r7, [r1, r0] cmp r7, #0x0 bne _02016A3E bl ErrorHandling _02016A3E: ldr r0, _02016A88 ; =0x021C4D28 lsl r5, r4, #0x1 ldr r0, [r0, #0xc] ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A50 add r0, r4, #0x0 bl FUN_02016B90 _02016A50: ldr r0, _02016A88 ; =0x021C4D28 ldr r0, [r0, #0xc] ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A5E bl ErrorHandling _02016A5E: ldr r0, _02016A88 ; =0x021C4D28 ldr r1, [r0, #0xc] ldrh r0, [r1, r5] sub r0, r0, #0x1 strh r0, [r1, r5] blx OS_DisableInterrupts sub r6, #0x10 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 blx FUN_020ADDF0 add r0, r4, #0x0 blx OS_RestoreInterrupts pop {r3-r7, pc} _02016A80: bl ErrorHandling pop {r3-r7, pc} nop _02016A88: .word 0x021C4D28 thumb_func_start FUN_02016A8C FUN_02016A8C: ; 0x02016A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _02016A9E bl ErrorHandling _02016A9E: ldr r0, _02016AF4 ; =0x021C4D28 ldrh r1, [r0, #0x14] cmp r5, r1 bhs _02016AEE ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r5] lsl r0, r0, #0x2 ldr r6, [r1, r0] cmp r6, #0x0 bne _02016AB8 bl ErrorHandling _02016AB8: sub r0, r4, #0x4 ldr r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r5 beq _02016AC8 bl ErrorHandling _02016AC8: sub r4, #0x10 add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_020ADDF0 ldr r0, _02016AF4 ; =0x021C4D28 lsl r4, r5, #0x1 ldr r0, [r0, #0xc] ldrh r0, [r0, r4] cmp r0, #0x0 bne _02016AE2 bl ErrorHandling _02016AE2: ldr r0, _02016AF4 ; =0x021C4D28 ldr r1, [r0, #0xc] ldrh r0, [r1, r4] sub r0, r0, #0x1 strh r0, [r1, r4] pop {r4-r6, pc} _02016AEE: bl ErrorHandling pop {r4-r6, pc} .balign 4 _02016AF4: .word 0x021C4D28 thumb_func_start FUN_02016AF8 FUN_02016AF8: ; 0x02016AF8 push {r3, lr} ldr r1, _02016B1C ; =0x021C4D28 ldrh r2, [r1, #0x14] cmp r0, r2 bhs _02016B12 ldr r2, [r1, #0x0] ldr r1, [r1, #0x10] ldrb r0, [r1, r0] lsl r0, r0, #0x2 ldr r0, [r2, r0] blx FUN_020ADDC8 pop {r3, pc} _02016B12: bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _02016B1C: .word 0x021C4D28 thumb_func_start FUN_02016B20 FUN_02016B20: ; 0x02016B20 push {r4, lr} ldr r4, _02016B40 ; =0x021C4D28 ldrh r3, [r4, #0x14] cmp r1, r3 bhs _02016B3A ldr r3, [r4, #0x0] ldr r4, [r4, #0x10] ldrb r1, [r4, r1] lsl r1, r1, #0x2 ldr r1, [r3, r1] blx FUN_020AE82C pop {r4, pc} _02016B3A: bl ErrorHandling pop {r4, pc} .balign 4 _02016B40: .word 0x021C4D28 thumb_func_start FUN_02016B44 FUN_02016B44: ; 0x02016B44 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _02016B56 bl ErrorHandling _02016B56: add r0, r5, #0x0 sub r0, #0x10 blx FUN_020ADDC0 add r4, #0x10 cmp r0, r4 blo _02016B84 sub r2, r5, #0x4 ldr r0, _02016B8C ; =0x021C4D28 ldr r2, [r2, #0x0] ldr r1, [r0, #0x0] lsl r2, r2, #0x18 ldr r0, [r0, #0x10] lsr r2, r2, #0x18 ldrb r0, [r0, r2] sub r5, #0x10 add r2, r4, #0x0 lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r5, #0x0 blx FUN_020ADE2C pop {r3-r5, pc} _02016B84: bl ErrorHandling pop {r3-r5, pc} nop _02016B8C: .word 0x021C4D28 thumb_func_start FUN_02016B90 FUN_02016B90: ; 0x02016B90 mov r0, #0x1 bx lr thumb_func_start FUN_02016B94 FUN_02016B94: ; 0x02016B94 push {r3-r5, lr} mov r1, #0x5a lsl r1, r1, #0x2 add r5, r0, #0x0 bl FUN_02016998 mov r2, #0x5a mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx Call_FillMemWithValue str r5, [r4, #0x0] mov r0, #0x0 strh r0, [r4, #0x4] strh r0, [r4, #0x6] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02016BB8 FUN_02016BB8: ; 0x02016BB8 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02016BBC FUN_02016BBC: ; 0x02016BBC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0xc] blx GX_SetGraphicsMode ldr r0, [r4, #0x8] blx GXS_SetGraphicsMode mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02016BF0 ; =0xC7FFFFFF and r1, r0 str r1, [r2, #0x0] ldr r1, [r2, #0x0] asr r0, r0, #0x3 and r0, r1 str r0, [r2, #0x0] bl FUN_0201E6D8 bl FUN_0201E740 pop {r4, pc} nop _02016BF0: .word 0xC7FFFFFF thumb_func_start FUN_02016BF4 FUN_02016BF4: ; 0x02016BF4 push {r3, lr} add r2, r0, #0x0 cmp r1, #0x0 bne _02016C0C ldr r0, [r2, #0x0] ldr r1, [r2, #0x4] ldr r2, [r2, #0xc] blx GX_SetGraphicsMode bl FUN_0201E6D8 pop {r3, pc} _02016C0C: ldr r0, [r2, #0x8] blx GXS_SetGraphicsMode bl FUN_0201E740 pop {r3, pc} thumb_func_start FUN_02016C18 FUN_02016C18: ; 0x02016C18 push {r3-r7, lr} sub sp, #0x18 str r1, [sp, #0x4] str r3, [sp, #0x8] add r4, r2, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, #0x10] ldr r1, [sp, #0x8] bl FUN_020177DC add r5, r0, #0x0 ldr r0, [sp, #0x4] cmp r0, #0x7 bls _02016C36 b _0201705A _02016C36: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02016C42: ; jump table (using 16-bit offset) .short _02016C52 - _02016C42 - 2; case 0 .short _02016CAA - _02016C42 - 2; case 1 .short _02016D02 - _02016C42 - 2; case 2 .short _02016DA4 - _02016C42 - 2; case 3 .short _02016E46 - _02016C42 - 2; case 4 .short _02016E9E - _02016C42 - 2; case 5 .short _02016EF6 - _02016C42 - 2; case 6 .short _02016F98 - _02016C42 - 2; case 7 _02016C52: mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0xc] ldr r2, _02016FB4 ; =0x04000008 lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0xc] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016CA0 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016CA0: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016CAA: mov r0, #0x2 mov r1, #0x1 bl FUN_0201E6E4 ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0x10] ldr r2, _02016FB8 ; =0x0400000A lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0x10] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016CF8 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016CF8: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016D02: mov r0, #0x4 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016D18 cmp r0, #0x1 beq _02016D3A cmp r0, #0x2 beq _02016D5C _02016D18: ldrb r1, [r4, #0x12] ldr r7, _02016FBC ; =0x0400000C ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016D7C _02016D3A: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FBC ; =0x0400000C lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016D7C _02016D5C: ldrb r1, [r4, #0x12] ldr r7, _02016FBC ; =0x0400000C ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016D7C: ldr r0, _02016FBC ; =0x0400000C mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016D9A ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016D9A: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016DA4: mov r0, #0x8 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016DBA cmp r0, #0x1 beq _02016DDC cmp r0, #0x2 beq _02016DFE _02016DBA: ldrb r1, [r4, #0x12] ldr r7, _02016FC0 ; =0x0400000E ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016E1E _02016DDC: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FC0 ; =0x0400000E lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016E1E _02016DFE: ldrb r1, [r4, #0x12] ldr r7, _02016FC0 ; =0x0400000E ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016E1E: ldr r0, _02016FC0 ; =0x0400000E mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016E3C ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016E3C: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016E46: mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E74C ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0x14] ldr r2, _02016FC4 ; =0x04001008 lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0x14] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016E94 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016E94: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016E9E: mov r0, #0x2 mov r1, #0x1 bl FUN_0201E74C ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrb r3, [r4, #0x14] lsl r0, r0, #0x7 mov r12, r0 ldr r2, _02016FC8 ; =0x0400100A lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 lsl r3, r3, #0xd and r0, r1 lsl r1, r5, #0xe orr r0, r1 mov r1, r12 orr r0, r1 orr r0, r7 orr r0, r6 orr r0, r3 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016EEC ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016EEC: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016EF6: mov r0, #0x4 mov r1, #0x1 bl FUN_0201E74C ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016F0C cmp r0, #0x1 beq _02016F2E cmp r0, #0x2 beq _02016F50 _02016F0C: ldrb r1, [r4, #0x12] ldr r7, _02016FCC ; =0x0400100C ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016F70 _02016F2E: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FCC ; =0x0400100C lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016F70 _02016F50: ldrb r1, [r4, #0x12] ldr r7, _02016FCC ; =0x0400100C ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016F70: ldr r0, _02016FCC ; =0x0400100C mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016F8E ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016F8E: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016F98: mov r0, #0x8 mov r1, #0x1 bl FUN_0201E74C ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016FAE cmp r0, #0x1 beq _02016FF2 cmp r0, #0x2 beq _02017014 _02016FAE: ldrb r1, [r4, #0x12] ldr r7, _02016FD0 ; =0x0400100E b _02016FD4 .balign 4 _02016FB4: .word 0x04000008 _02016FB8: .word 0x0400000A _02016FBC: .word 0x0400000C _02016FC0: .word 0x0400000E _02016FC4: .word 0x04001008 _02016FC8: .word 0x0400100A _02016FCC: .word 0x0400100C _02016FD0: .word 0x0400100E _02016FD4: ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02017034 _02016FF2: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _020170F0 ; =0x0400100E lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02017034 _02017014: ldrb r1, [r4, #0x12] ldr r7, _020170F0 ; =0x0400100E ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02017034: ldr r0, _020170F0 ; =0x0400100E mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02017052 ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02017052: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] _0201705A: ldr r0, [sp, #0x4] mov r1, #0x2c add r5, r0, #0x0 ldr r0, [sp, #0x0] mul r5, r1 add r2, r0, r5 mov r3, #0x0 mov r0, #0x1 strh r3, [r2, #0x20] lsl r0, r0, #0xc str r0, [r2, #0x24] str r0, [r2, #0x28] str r3, [r2, #0x2c] str r3, [r2, #0x30] ldr r1, [r4, #0x8] cmp r1, #0x0 beq _020170A2 ldr r0, [sp, #0x0] ldr r6, [sp, #0x0] ldr r0, [r0, #0x0] add r6, #0x8 bl FUN_02016998 str r0, [r6, r5] ldr r1, [r6, r5] ldr r2, [r4, #0x8] mov r0, #0x0 blx MIi_CpuClear16 ldr r0, [sp, #0x0] ldr r2, [r4, #0x8] add r1, r0, r5 str r2, [r1, #0xc] ldr r0, [r4, #0xc] str r0, [r1, #0x10] b _020170A8 _020170A2: str r3, [r2, #0x8] str r3, [r2, #0xc] str r3, [r2, #0x10] _020170A8: ldr r0, [sp, #0x0] ldrb r1, [r4, #0x10] add r0, r0, r5 strb r1, [r0, #0x1d] ldr r1, [sp, #0x8] strb r1, [r0, #0x1c] ldrb r1, [r4, #0x11] strb r1, [r0, #0x1e] ldr r1, [sp, #0x8] cmp r1, #0x0 bne _020170CA ldrb r1, [r4, #0x11] cmp r1, #0x0 bne _020170CA mov r1, #0x20 strb r1, [r0, #0x1f] b _020170D2 _020170CA: ldr r0, [sp, #0x0] mov r1, #0x40 add r0, r0, r5 strb r1, [r0, #0x1f] _020170D2: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [r4, #0x0] mov r2, #0x0 bl FUN_020179E0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [r4, #0x4] mov r2, #0x3 bl FUN_020179E0 add sp, #0x18 pop {r3-r7, pc} nop _020170F0: .word 0x0400100E thumb_func_start FUN_020170F4 FUN_020170F4: ; 0x020170F4 push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 add r0, r3, #0x0 cmp r1, #0x0 bne _0201710C mov r2, #0x2c mul r2, r4 add r2, r5, r2 strb r0, [r2, #0x1e] _0201710C: cmp r4, #0x7 bls _02017112 b _020177C4 _02017112: add r2, r4, r4 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0201711E: ; jump table (using 16-bit offset) .short _0201712E - _0201711E - 2; case 0 .short _0201719A - _0201711E - 2; case 1 .short _02017206 - _0201711E - 2; case 2 .short _0201733A - _0201711E - 2; case 3 .short _0201746E - _0201711E - 2; case 4 .short _020174F4 - _0201711E - 2; case 5 .short _02017560 - _0201711E - 2; case 6 .short _02017694 - _0201711E - 2; case 7 _0201712E: ldr r2, _02017480 ; =0x04000008 cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x1e] bne _0201714A ldrh r3, [r2, #0x1e] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x1e] b _0201715C _0201714A: cmp r1, #0x2 bne _0201715C ldrh r3, [r2, #0x1e] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x1e] _0201715C: add r0, sp, #0x0 ldrh r3, [r0, #0x1e] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _02017480 ; =0x04000008 mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _0201719A: ldr r2, _02017488 ; =0x0400000A cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x1c] bne _020171B6 ldrh r3, [r2, #0x1c] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x1c] b _020171C8 _020171B6: cmp r1, #0x2 bne _020171C8 ldrh r3, [r2, #0x1c] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x1c] _020171C8: add r0, sp, #0x0 ldrh r3, [r0, #0x1c] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _02017488 ; =0x0400000A mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _02017206: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _0201721A cmp r3, #0x1 beq _0201727A cmp r3, #0x2 beq _020172DA _0201721A: ldr r3, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x1a] bne _02017236 ldrh r4, [r3, #0x1a] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x1a] b _02017248 _02017236: cmp r1, #0x2 bne _02017248 ldrh r4, [r3, #0x1a] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x1a] _02017248: add r0, sp, #0x0 ldrh r3, [r0, #0x1a] add r2, r5, r2 ldr r6, _0201748C ; =0x0400000C lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201727A: ldr r2, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x18] bne _02017296 ldrh r3, [r2, #0x18] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x18] b _020172A8 _02017296: cmp r1, #0x2 bne _020172A8 ldrh r3, [r2, #0x18] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x18] _020172A8: add r0, sp, #0x0 ldrh r3, [r0, #0x18] ldr r6, _0201748C ; =0x0400000C add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _020172DA: ldr r2, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x16] bne _020172F6 ldrh r3, [r2, #0x16] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x16] b _02017308 _020172F6: cmp r1, #0x2 bne _02017308 ldrh r3, [r2, #0x16] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x16] _02017308: add r0, sp, #0x0 ldrh r3, [r0, #0x16] ldr r6, _0201748C ; =0x0400000C add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201733A: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _0201734E cmp r3, #0x1 beq _020173AE cmp r3, #0x2 beq _0201740E _0201734E: ldr r3, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x14] bne _0201736A ldrh r4, [r3, #0x14] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x14] b _0201737C _0201736A: cmp r1, #0x2 bne _0201737C ldrh r4, [r3, #0x14] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x14] _0201737C: add r0, sp, #0x0 ldrh r3, [r0, #0x14] add r2, r5, r2 ldr r6, _02017490 ; =0x0400000E lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _020173AE: ldr r2, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x12] bne _020173CA ldrh r3, [r2, #0x12] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x12] b _020173DC _020173CA: cmp r1, #0x2 bne _020173DC ldrh r3, [r2, #0x12] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x12] _020173DC: add r0, sp, #0x0 ldrh r3, [r0, #0x12] ldr r6, _02017490 ; =0x0400000E add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201740E: ldr r2, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x10] bne _0201742A ldrh r3, [r2, #0x10] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x10] b _0201743C _0201742A: cmp r1, #0x2 bne _0201743C ldrh r3, [r2, #0x10] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x10] _0201743C: add r0, sp, #0x0 ldrh r3, [r0, #0x10] ldr r6, _02017490 ; =0x0400000E add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201746E: ldr r2, _02017494 ; =0x04001008 cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0xe] bne _020174A4 ldrh r3, [r2, #0xe] ldr r1, _02017484 ; =0xFFFFE0FF b _02017498 .balign 4 _02017480: .word 0x04000008 _02017484: .word 0xFFFFE0FF _02017488: .word 0x0400000A _0201748C: .word 0x0400000C _02017490: .word 0x0400000E _02017494: .word 0x04001008 _02017498: lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0xe] b _020174B6 _020174A4: cmp r1, #0x2 bne _020174B6 ldrh r3, [r2, #0xe] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0xe] _020174B6: add r0, sp, #0x0 ldrh r3, [r0, #0xe] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _020177C8 ; =0x04001008 mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _020174F4: ldr r2, _020177CC ; =0x0400100A cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0xc] bne _02017510 ldrh r3, [r2, #0xc] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0xc] b _02017522 _02017510: cmp r1, #0x2 bne _02017522 ldrh r3, [r2, #0xc] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0xc] _02017522: add r0, sp, #0x0 ldrh r3, [r0, #0xc] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _020177CC ; =0x0400100A mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _02017560: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _02017574 cmp r3, #0x1 beq _020175D4 cmp r3, #0x2 beq _02017634 _02017574: ldr r3, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0xa] bne _02017590 ldrh r4, [r3, #0xa] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0xa] b _020175A2 _02017590: cmp r1, #0x2 bne _020175A2 ldrh r4, [r3, #0xa] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0xa] _020175A2: add r0, sp, #0x0 ldrh r3, [r0, #0xa] add r2, r5, r2 ldr r6, _020177D4 ; =0x0400100C lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _020175D4: ldr r2, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x8] bne _020175F0 ldrh r3, [r2, #0x8] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x8] b _02017602 _020175F0: cmp r1, #0x2 bne _02017602 ldrh r3, [r2, #0x8] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x8] _02017602: add r0, sp, #0x0 ldrh r3, [r0, #0x8] ldr r6, _020177D4 ; =0x0400100C add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017634: ldr r2, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x6] bne _02017650 ldrh r3, [r2, #0x6] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x6] b _02017662 _02017650: cmp r1, #0x2 bne _02017662 ldrh r3, [r2, #0x6] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x6] _02017662: add r0, sp, #0x0 ldrh r3, [r0, #0x6] ldr r6, _020177D4 ; =0x0400100C add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017694: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _020176A8 cmp r3, #0x1 beq _02017708 cmp r3, #0x2 beq _02017768 _020176A8: ldr r3, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x4] bne _020176C4 ldrh r4, [r3, #0x4] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x4] b _020176D6 _020176C4: cmp r1, #0x2 bne _020176D6 ldrh r4, [r3, #0x4] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x4] _020176D6: add r0, sp, #0x0 ldrh r3, [r0, #0x4] add r2, r5, r2 ldr r6, _020177D8 ; =0x0400100E lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017708: ldr r2, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x2] bne _02017724 ldrh r3, [r2, #0x2] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x2] b _02017736 _02017724: cmp r1, #0x2 bne _02017736 ldrh r3, [r2, #0x2] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x2] _02017736: add r0, sp, #0x0 ldrh r3, [r0, #0x2] ldr r6, _020177D8 ; =0x0400100E add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017768: ldr r2, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x0] bne _02017784 ldrh r3, [r2, #0x0] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x0] b _02017796 _02017784: cmp r1, #0x2 bne _02017796 ldrh r3, [r2, #0x0] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x0] _02017796: add r0, sp, #0x0 ldrh r3, [r0, #0x0] ldr r6, _020177D8 ; =0x0400100E lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] _020177C4: add sp, #0x20 pop {r3-r7, pc} .balign 4 _020177C8: .word 0x04001008 _020177CC: .word 0x0400100A _020177D0: .word 0xFFFFE0FF _020177D4: .word 0x0400100C _020177D8: .word 0x0400100E thumb_func_start FUN_020177DC FUN_020177DC: ; 0x020177DC cmp r1, #0x0 beq _020177EA cmp r1, #0x1 beq _0201780A cmp r1, #0x2 beq _0201782A b _0201784A _020177EA: cmp r0, #0x1 bne _020177F2 mov r0, #0x0 bx lr _020177F2: cmp r0, #0x2 bne _020177FA mov r0, #0x2 bx lr _020177FA: cmp r0, #0x3 bne _02017802 mov r0, #0x1 bx lr _02017802: cmp r0, #0x4 bne _0201784A mov r0, #0x3 bx lr _0201780A: cmp r0, #0x0 bne _02017812 mov r0, #0x0 bx lr _02017812: cmp r0, #0x1 bne _0201781A mov r0, #0x1 bx lr _0201781A: cmp r0, #0x4 bne _02017822 mov r0, #0x2 bx lr _02017822: cmp r0, #0x5 bne _0201784A mov r0, #0x3 bx lr _0201782A: cmp r0, #0x0 bne _02017832 mov r0, #0x0 bx lr _02017832: cmp r0, #0x1 bne _0201783A mov r0, #0x1 bx lr _0201783A: cmp r0, #0x4 bne _02017842 mov r0, #0x2 bx lr _02017842: cmp r0, #0x5 bne _0201784A mov r0, #0x3 bx lr _0201784A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02017850 FUN_02017850: ; 0x02017850 cmp r0, #0x5 bhi _0201789E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017860: ; jump table (using 16-bit offset) .short _0201786C - _02017860 - 2; case 0 .short _02017874 - _02017860 - 2; case 1 .short _0201787C - _02017860 - 2; case 2 .short _02017886 - _02017860 - 2; case 3 .short _02017890 - _02017860 - 2; case 4 .short _02017898 - _02017860 - 2; case 5 _0201786C: mov r0, #0x10 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _02017874: mov r0, #0x20 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _0201787C: mov r0, #0x20 strb r0, [r1, #0x0] mov r0, #0x40 strb r0, [r2, #0x0] bx lr _02017886: mov r0, #0x40 strb r0, [r1, #0x0] mov r0, #0x20 strb r0, [r2, #0x0] bx lr _02017890: mov r0, #0x40 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _02017898: mov r0, #0x80 strb r0, [r1, #0x0] strb r0, [r2, #0x0] _0201789E: bx lr thumb_func_start FUN_020178A0 FUN_020178A0: ; 0x020178A0 push {r3-r5, lr} add r4, r0, #0x0 mov r2, #0x2c add r5, r1, #0x0 mul r5, r2 add r4, #0x8 ldr r0, [r4, r5] cmp r0, #0x0 beq _020178BA bl FUN_02016A18 mov r0, #0x0 str r0, [r4, r5] _020178BA: pop {r3-r5, pc} thumb_func_start FUN_020178BC FUN_020178BC: ; 0x020178BC cmp r0, #0x7 bhi _0201795A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020178CC: ; jump table (using 16-bit offset) .short _020178DC - _020178CC - 2; case 0 .short _020178EC - _020178CC - 2; case 1 .short _020178FC - _020178CC - 2; case 2 .short _0201790C - _020178CC - 2; case 3 .short _0201791C - _020178CC - 2; case 4 .short _0201792C - _020178CC - 2; case 5 .short _0201793C - _020178CC - 2; case 6 .short _0201794C - _020178CC - 2; case 7 _020178DC: ldr r2, _0201795C ; =0x04000008 mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _020178EC: ldr r2, _02017960 ; =0x0400000A mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _020178FC: ldr r2, _02017964 ; =0x0400000C mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201790C: ldr r2, _02017968 ; =0x0400000E mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201791C: ldr r2, _0201796C ; =0x04001008 mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201792C: ldr r2, _02017970 ; =0x0400100A mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201793C: ldr r2, _02017974 ; =0x0400100C mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201794C: ldr r2, _02017978 ; =0x0400100E mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] _0201795A: bx lr .balign 4 _0201795C: .word 0x04000008 _02017960: .word 0x0400000A _02017964: .word 0x0400000C _02017968: .word 0x0400000E _0201796C: .word 0x04001008 _02017970: .word 0x0400100A _02017974: .word 0x0400100C _02017978: .word 0x0400100E thumb_func_start FUN_0201797C FUN_0201797C: ; 0x0201797C push {r3, lr} cmp r0, #0x7 bhi _020179DC add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201798E: ; jump table (using 16-bit offset) .short _0201799E - _0201798E - 2; case 0 .short _020179A6 - _0201798E - 2; case 1 .short _020179AE - _0201798E - 2; case 2 .short _020179B6 - _0201798E - 2; case 3 .short _020179BE - _0201798E - 2; case 4 .short _020179C6 - _0201798E - 2; case 5 .short _020179CE - _0201798E - 2; case 6 .short _020179D6 - _0201798E - 2; case 7 _0201799E: mov r0, #0x1 bl FUN_0201E6E4 pop {r3, pc} _020179A6: mov r0, #0x2 bl FUN_0201E6E4 pop {r3, pc} _020179AE: mov r0, #0x4 bl FUN_0201E6E4 pop {r3, pc} _020179B6: mov r0, #0x8 bl FUN_0201E6E4 pop {r3, pc} _020179BE: mov r0, #0x1 bl FUN_0201E74C pop {r3, pc} _020179C6: mov r0, #0x2 bl FUN_0201E74C pop {r3, pc} _020179CE: mov r0, #0x4 bl FUN_0201E74C pop {r3, pc} _020179D6: mov r0, #0x8 bl FUN_0201E74C _020179DC: pop {r3, pc} .balign 4 thumb_func_start FUN_020179E0 FUN_020179E0: ; 0x020179E0 push {r4-r6, lr} add r5, r1, #0x0 add r4, r0, #0x0 mov r0, #0x2c add r6, r5, #0x0 mul r6, r0 add r0, r4, #0x0 add r0, #0x8 add r1, r2, #0x0 add r2, r3, #0x0 add r0, r0, r6 bl FUN_02017B8C add r0, r4, r6 ldr r1, [r0, #0x14] ldr r0, [r0, #0x18] cmp r5, #0x7 bls _02017A06 b _02017B1C _02017A06: add r2, r5, r5 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02017A12: ; jump table (using 16-bit offset) .short _02017A22 - _02017A12 - 2; case 0 .short _02017A38 - _02017A12 - 2; case 1 .short _02017A4E - _02017A12 - 2; case 2 .short _02017A78 - _02017A12 - 2; case 3 .short _02017AA2 - _02017A12 - 2; case 4 .short _02017AB8 - _02017A12 - 2; case 5 .short _02017ACE - _02017A12 - 2; case 6 .short _02017AF6 - _02017A12 - 2; case 7 _02017A22: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B24 ; =0x04000010 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A38: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B28 ; =0x04000014 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A4E: add r2, r4, #0x0 add r2, #0x74 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _02017A6E ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B2C ; =0x04000018 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A6E: add r0, r4, #0x0 mov r1, #0x2 bl FUN_02017C6C pop {r4-r6, pc} _02017A78: add r2, r4, #0x0 add r2, #0xa0 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _02017A98 ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B30 ; =0x0400001C str r1, [r0, #0x0] pop {r4-r6, pc} _02017A98: add r0, r4, #0x0 mov r1, #0x3 bl FUN_02017C6C pop {r4-r6, pc} _02017AA2: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B34 ; =0x04001010 str r1, [r0, #0x0] pop {r4-r6, pc} _02017AB8: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B38 ; =0x04001014 str r1, [r0, #0x0] pop {r4-r6, pc} _02017ACE: mov r2, #0x49 lsl r2, r2, #0x2 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02017AEC add r2, #0xdb and r2, r1 lsl r1, r0, #0x10 ldr r0, _02017B3C ; =0x01FF0000 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _02017B40 ; =0x04001018 str r1, [r0, #0x0] pop {r4-r6, pc} _02017AEC: add r0, r4, #0x0 mov r1, #0x6 bl FUN_02017C6C pop {r4-r6, pc} _02017AF6: mov r2, #0x15 lsl r2, r2, #0x4 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02017B14 add r2, #0xaf and r2, r1 lsl r1, r0, #0x10 ldr r0, _02017B3C ; =0x01FF0000 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _02017B44 ; =0x0400101C str r1, [r0, #0x0] pop {r4-r6, pc} _02017B14: add r0, r4, #0x0 mov r1, #0x7 bl FUN_02017C6C _02017B1C: pop {r4-r6, pc} nop _02017B20: .word 0x000001FF _02017B24: .word 0x04000010 _02017B28: .word 0x04000014 _02017B2C: .word 0x04000018 _02017B30: .word 0x0400001C _02017B34: .word 0x04001010 _02017B38: .word 0x04001014 _02017B3C: .word 0x01FF0000 _02017B40: .word 0x04001018 _02017B44: .word 0x0400101C thumb_func_start FUN_02017B48 FUN_02017B48: ; 0x02017B48 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02017B54 FUN_02017B54: ; 0x02017B54 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_02017B60 FUN_02017B60: ; 0x02017B60 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_02017B8C ldr r0, [sp, #0x18] ldr r2, [sp, #0x10] str r0, [sp, #0x0] ldr r3, [sp, #0x14] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017BD0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02017B8C FUN_02017B8C: ; 0x02017B8C cmp r1, #0x5 bhi _02017BCE add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02017B9C: ; jump table (using 16-bit offset) .short _02017BA8 - _02017B9C - 2; case 0 .short _02017BAC - _02017B9C - 2; case 1 .short _02017BB4 - _02017B9C - 2; case 2 .short _02017BBC - _02017B9C - 2; case 3 .short _02017BC0 - _02017B9C - 2; case 4 .short _02017BC8 - _02017B9C - 2; case 5 _02017BA8: str r2, [r0, #0xc] bx lr _02017BAC: ldr r1, [r0, #0xc] add r1, r1, r2 str r1, [r0, #0xc] bx lr _02017BB4: ldr r1, [r0, #0xc] sub r1, r1, r2 str r1, [r0, #0xc] bx lr _02017BBC: str r2, [r0, #0x10] bx lr _02017BC0: ldr r1, [r0, #0x10] add r1, r1, r2 str r1, [r0, #0x10] bx lr _02017BC8: ldr r1, [r0, #0x10] sub r1, r1, r2 str r1, [r0, #0x10] _02017BCE: bx lr thumb_func_start FUN_02017BD0 FUN_02017BD0: ; 0x02017BD0 push {r3-r5, lr} sub sp, #0x8 add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x18] cmp r4, #0x7 bhi _02017C58 add r5, r4, r4 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _02017BEC: ; jump table (using 16-bit offset) .short _02017C58 - _02017BEC - 2; case 0 .short _02017C58 - _02017BEC - 2; case 1 .short _02017BFC - _02017BEC - 2; case 2 .short _02017C14 - _02017BEC - 2; case 3 .short _02017C58 - _02017BEC - 2; case 4 .short _02017C58 - _02017BEC - 2; case 5 .short _02017C2C - _02017BEC - 2; case 6 .short _02017C44 - _02017BEC - 2; case 7 _02017BFC: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C5C ; =0x04000020 blx G2x_SetBGyAffine_ add sp, #0x8 pop {r3-r5, pc} _02017C14: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C60 ; =0x04000030 blx G2x_SetBGyAffine_ add sp, #0x8 pop {r3-r5, pc} _02017C2C: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C64 ; =0x04001020 blx G2x_SetBGyAffine_ add sp, #0x8 pop {r3-r5, pc} _02017C44: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C68 ; =0x04001030 blx G2x_SetBGyAffine_ _02017C58: add sp, #0x8 pop {r3-r5, pc} .balign 4 _02017C5C: .word 0x04000020 _02017C60: .word 0x04000030 _02017C64: .word 0x04001020 _02017C68: .word 0x04001030 thumb_func_start FUN_02017C6C FUN_02017C6C: ; 0x02017C6C push {r4-r5, lr} sub sp, #0x14 mov r2, #0x1 lsl r2, r2, #0xc add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0x0 add r0, sp, #0x4 add r3, r2, #0x0 str r1, [sp, #0x0] bl FUN_0201BB74 mov r3, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0x4 str r3, [sp, #0x0] bl FUN_02017BD0 add sp, #0x14 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02017C98 FUN_02017C98: ; 0x02017C98 push {r3-r5, lr} cmp r2, #0x0 bne _02017CA4 blx MI_UncompressLZ8 pop {r3-r5, pc} _02017CA4: mov r4, #0x3 add r3, r0, #0x0 tst r3, r4 bne _02017CCA add r3, r1, #0x0 tst r3, r4 bne _02017CCA lsl r3, r2, #0x10 lsr r3, r3, #0x10 lsr r4, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r4 mov r3, #0x1e ror r5, r3 add r3, r4, r5 bne _02017CCA blx MIi_CpuCopy32 pop {r3-r5, pc} _02017CCA: blx MIi_CpuCopy16 pop {r3-r5, pc} thumb_func_start FUN_02017CD0 FUN_02017CD0: ; 0x02017CD0 push {r3, lr} mov r2, #0x2c mul r2, r1 add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 pop {r3, pc} .balign 4 thumb_func_start FUN_02017CE8 FUN_02017CE8: ; 0x02017CE8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x0 bne _02017D56 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 add r0, r5, r7 ldr r0, [r0, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _02017D26 ldr r1, [sp, #0x4] add r0, r6, #0x0 add r2, r3, #0x0 bl FUN_02017C98 add r3, r5, r7 ldr r2, [r3, #0x10] ldr r1, [sp, #0x4] ldr r3, [r3, #0xc] add r0, r4, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 add sp, #0x8 pop {r3-r7, pc} _02017D26: ldr r0, [r6, #0x0] lsr r7, r0, #0x8 ldr r0, [r5, #0x0] add r1, r7, #0x0 bl FUN_020169D8 add r5, r0, #0x0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02017C98 ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r5, #0x0 lsl r2, r2, #0x1 add r3, r7, #0x0 bl FUN_02017D68 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x8 pop {r3-r7, pc} _02017D56: ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017D68 FUN_02017D68: ; 0x02017D68 push {r3-r7, lr} add r4, r1, #0x0 add r6, r3, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 blx DC_FlushRange cmp r7, #0x7 bhi _02017DF8 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017D8A: ; jump table (using 16-bit offset) .short _02017D9A - _02017D8A - 2; case 0 .short _02017DA6 - _02017D8A - 2; case 1 .short _02017DB2 - _02017D8A - 2; case 2 .short _02017DBE - _02017D8A - 2; case 3 .short _02017DCA - _02017D8A - 2; case 4 .short _02017DD6 - _02017D8A - 2; case 5 .short _02017DE2 - _02017D8A - 2; case 6 .short _02017DEE - _02017D8A - 2; case 7 _02017D9A: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG0Scr pop {r3-r7, pc} _02017DA6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG1Scr pop {r3-r7, pc} _02017DB2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG2Scr pop {r3-r7, pc} _02017DBE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG3Scr pop {r3-r7, pc} _02017DCA: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG0Scr pop {r3-r7, pc} _02017DD6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG1Scr pop {r3-r7, pc} _02017DE2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG2Scr pop {r3-r7, pc} _02017DEE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG3Scr _02017DF8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017DFC FUN_02017DFC: ; 0x02017DFC push {r4, lr} add r4, r0, #0x0 add r0, r2, #0x0 mov r2, #0x2c mul r2, r1 add r1, r4, r2 ldr r1, [r1, #0x8] add r2, r3, #0x0 bl FUN_02017C98 pop {r4, pc} .balign 4 thumb_func_start FUN_02017E14 FUN_02017E14: ; 0x02017E14 push {r3-r4, lr} sub sp, #0x4 mov r4, #0x2c mul r4, r1 add r4, r0, r4 ldrb r4, [r4, #0x1e] cmp r4, #0x0 bne _02017E32 ldr r4, [sp, #0x10] lsl r4, r4, #0x5 str r4, [sp, #0x0] bl FUN_02017E40 add sp, #0x4 pop {r3-r4, pc} _02017E32: ldr r4, [sp, #0x10] lsl r4, r4, #0x6 str r4, [sp, #0x0] bl FUN_02017E40 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02017E40 FUN_02017E40: ; 0x02017E40 push {r3-r7, lr} add r7, r1, #0x0 add r5, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x0 bne _02017E78 ldr r1, [r5, #0x0] ldr r0, [r0, #0x0] lsr r4, r1, #0x8 add r1, r4, #0x0 bl FUN_020169D8 add r6, r0, #0x0 ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02017C98 ldr r2, [sp, #0x18] add r0, r7, #0x0 add r1, r6, #0x0 add r3, r4, #0x0 bl FUN_02017E84 add r0, r6, #0x0 bl FUN_02016A18 pop {r3-r7, pc} _02017E78: ldr r2, [sp, #0x18] add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02017E84 pop {r3-r7, pc} thumb_func_start FUN_02017E84 FUN_02017E84: ; 0x02017E84 push {r3-r7, lr} add r4, r1, #0x0 add r6, r3, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 blx DC_FlushRange cmp r7, #0x7 bhi _02017F14 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017EA6: ; jump table (using 16-bit offset) .short _02017EB6 - _02017EA6 - 2; case 0 .short _02017EC2 - _02017EA6 - 2; case 1 .short _02017ECE - _02017EA6 - 2; case 2 .short _02017EDA - _02017EA6 - 2; case 3 .short _02017EE6 - _02017EA6 - 2; case 4 .short _02017EF2 - _02017EA6 - 2; case 5 .short _02017EFE - _02017EA6 - 2; case 6 .short _02017F0A - _02017EA6 - 2; case 7 _02017EB6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG0Char pop {r3-r7, pc} _02017EC2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG1Char pop {r3-r7, pc} _02017ECE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG2Char pop {r3-r7, pc} _02017EDA: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GX_LoadBG3Char pop {r3-r7, pc} _02017EE6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG0Char pop {r3-r7, pc} _02017EF2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG1Char pop {r3-r7, pc} _02017EFE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG2Char pop {r3-r7, pc} _02017F0A: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx GXS_LoadBG3Char _02017F14: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017F18 FUN_02017F18: ; 0x02017F18 push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 add r4, r0, #0x0 mov r1, #0x0 add r2, r5, #0x0 blx Call_FillMemWithValue add r0, r6, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 add r3, r5, #0x0 bl FUN_02017E84 ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_02016A8C pop {r3-r7, pc} thumb_func_start FUN_02017F48 FUN_02017F48: ; 0x02017F48 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 add r4, r0, #0x0 mov r1, #0x2c add r6, r7, #0x0 add r4, #0x1f mul r6, r1 ldrb r1, [r4, r6] ldr r0, [r0, #0x0] add r5, r2, #0x0 mul r1, r3 str r1, [sp, #0x0] bl FUN_020169D8 str r0, [sp, #0x4] ldrb r0, [r4, r6] cmp r0, #0x20 bne _02017F82 lsl r2, r5, #0xc lsl r1, r5, #0x8 lsl r0, r5, #0x4 orr r1, r2 orr r0, r1 add r1, r5, #0x0 orr r1, r0 lsl r0, r1, #0x10 add r5, r1, #0x0 b _02017F8C _02017F82: lsl r2, r5, #0x18 lsl r1, r5, #0x10 lsl r0, r5, #0x8 orr r1, r2 orr r0, r1 _02017F8C: orr r5, r0 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 blx MIi_CpuClearFast lsl r0, r7, #0x18 ldrb r2, [r4, r6] ldr r3, [sp, #0x20] ldr r1, [sp, #0x4] mul r2, r3 ldr r3, [sp, #0x0] lsr r0, r0, #0x18 bl FUN_02017E84 ldr r0, [sp, #0x4] bl FUN_02016A18 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02017FB4 FUN_02017FB4: ; 0x02017FB4 push {r3-r7, lr} add r5, r1, #0x0 add r4, r2, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 blx DC_FlushRange cmp r6, #0x4 bhs _02017FD6 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r4, #0x0 blx GX_LoadBGPltt pop {r3-r7, pc} _02017FD6: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r4, #0x0 blx GXS_LoadBGPltt pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017FE4 FUN_02017FE4: ; 0x02017FE4 push {r0-r3} push {r3, lr} add r1, sp, #0xc mov r2, #0x2 mov r3, #0x0 bl FUN_02017FB4 pop {r3} pop {r3} add sp, #0x10 bx r3 .balign 4 thumb_func_start FUN_02017FFC FUN_02017FFC: ; 0x02017FFC cmp r2, #0x5 bhi _02018066 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0201800C: ; jump table (using 16-bit offset) .short _02018018 - _0201800C - 2; case 0 .short _02018022 - _0201800C - 2; case 1 .short _02018022 - _0201800C - 2; case 2 .short _0201802C - _0201800C - 2; case 3 .short _02018042 - _0201800C - 2; case 4 .short _02018064 - _0201800C - 2; case 5 _02018018: lsl r1, r1, #0x4 add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018022: lsl r1, r1, #0x5 add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _0201802C: mov r2, #0x1f add r3, r0, #0x0 and r3, r2 mov r2, #0x1f bic r0, r2 add r0, r1, r0 lsl r0, r0, #0x5 add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018042: asr r2, r1, #0x5 asr r3, r0, #0x5 lsl r2, r2, #0x1 add r2, r3, r2 lsl r2, r2, #0x10 lsr r2, r2, #0x10 lsl r2, r2, #0x1a lsr r3, r2, #0x10 mov r2, #0x1f and r2, r0 lsl r0, r1, #0x1b lsr r0, r0, #0x16 add r0, r2, r0 add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018064: mov r0, #0x0 _02018066: bx lr thumb_func_start FUN_02018068 FUN_02018068: ; 0x02018068 push {r3-r7} sub sp, #0x4 str r3, [sp, #0x0] add r6, r2, #0x0 ldr r5, [sp, #0x0] add r4, r6, #0x0 sub r4, #0x20 sub r5, #0x20 mov r2, #0x0 lsl r4, r4, #0x10 lsl r5, r5, #0x10 add r3, r2, #0x0 asr r4, r4, #0x10 asr r7, r5, #0x10 lsr r5, r0, #0x5 beq _0201808E add r2, r2, #0x1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _0201808E: lsr r5, r1, #0x5 beq _02018098 add r2, r2, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _02018098: cmp r2, #0x3 bhi _02018140 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020180A8: ; jump table (using 16-bit offset) .short _020180B0 - _020180A8 - 2; case 0 .short _020180CE - _020180A8 - 2; case 1 .short _020180F4 - _020180A8 - 2; case 2 .short _02018120 - _020180A8 - 2; case 3 _020180B0: cmp r4, #0x0 blt _020180C0 lsl r1, r1, #0x5 add r0, r0, r1 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180C0: add r2, r1, #0x0 mul r2, r6 add r0, r0, r2 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180CE: cmp r7, #0x0 blt _020180D8 mov r2, #0x1 lsl r2, r2, #0xa b _020180DC _020180D8: ldr r2, [sp, #0x0] lsl r2, r2, #0x5 _020180DC: add r2, r3, r2 lsl r2, r2, #0x10 lsr r3, r2, #0x10 mov r2, #0x1f and r2, r0 add r0, r1, #0x0 mul r0, r4 add r0, r2, r0 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180F4: lsl r2, r6, #0x5 add r2, r3, r2 lsl r2, r2, #0x10 lsr r2, r2, #0x10 cmp r4, #0x0 blt _0201810E lsl r1, r1, #0x1b lsr r1, r1, #0x16 add r0, r0, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _0201810E: mov r3, #0x1f and r1, r3 add r3, r1, #0x0 mul r3, r6 add r0, r0, r3 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _02018120: add r2, r6, r7 lsl r2, r2, #0x5 add r2, r3, r2 add r5, r0, #0x0 mov r3, #0x1f add r0, r1, #0x0 and r0, r3 add r1, r0, #0x0 lsl r2, r2, #0x10 and r5, r3 mul r1, r4 lsr r2, r2, #0x10 add r0, r5, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 _02018140: add r0, r3, #0x0 add sp, #0x4 pop {r3-r7} bx lr thumb_func_start FUN_02018148 FUN_02018148: ; 0x02018148 push {r3-r6, lr} sub sp, #0x1c add r6, sp, #0x20 ldrb r5, [r6, #0x14] str r5, [sp, #0x0] ldrb r4, [r6, #0x18] str r4, [sp, #0x4] str r2, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] str r2, [sp, #0x10] str r5, [sp, #0x14] str r4, [sp, #0x18] add r2, r3, #0x0 ldrb r3, [r6, #0x10] bl FUN_02018170 add sp, #0x1c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02018170 FUN_02018170: ; 0x02018170 push {r4-r5, lr} sub sp, #0x1c add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x18 cmp r1, #0x1 beq _020181BA ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x0 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018268 add sp, #0x1c pop {r4-r5, pc} _020181BA: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x0 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_020183DC add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_020181EC FUN_020181EC: ; 0x020181EC push {r4-r5, lr} sub sp, #0x1c add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x18 cmp r1, #0x1 beq _02018236 ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x1 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018268 add sp, #0x1c pop {r4-r5, pc} _02018236: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x1 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_020183DC add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_02018268 FUN_02018268: ; 0x02018268 push {r4-r7, lr} sub sp, #0x44 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x58] add r6, r3, #0x0 str r0, [sp, #0x58] ldr r0, [sp, #0x5c] ldr r4, [sp, #0x68] str r0, [sp, #0x5c] ldr r0, [sp, #0x6c] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x2c] cmp r0, #0x0 bne _0201828C b _020183D6 _0201828C: ldrb r0, [r7, #0x15] add r1, sp, #0x40 add r1, #0x1 add r2, sp, #0x40 bl FUN_02017850 add r0, sp, #0x70 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201833A mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _020182CA add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x1c] ldrb r0, [r1, #0x18] str r0, [sp, #0x18] lsl r1, r0, #0x1 ldr r0, [sp, #0x5c] add r0, r0, r1 str r0, [sp, #0x14] _020182BC: ldr r1, [sp, #0x4] ldr r0, [sp, #0x28] add r0, r1, r0 add r1, sp, #0x40 ldrb r1, [r1, #0x0] cmp r0, r1 blt _020182CC _020182CA: b _020183D6 _020182CC: ldr r2, [sp, #0x1c] ldr r1, [sp, #0x28] add r2, r2, r1 ldr r1, [sp, #0x6c] cmp r2, r1 bge _020183D6 mov r5, #0x0 cmp r6, #0x0 bls _02018326 add r1, r4, #0x0 mul r1, r2 lsl r2, r1, #0x1 ldr r1, [sp, #0x14] lsl r0, r0, #0x18 add r1, r1, r2 lsr r0, r0, #0x18 str r1, [sp, #0x10] str r0, [sp, #0x30] _020182F0: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _02018326 ldr r1, [sp, #0x18] add r1, r1, r5 cmp r1, r4 bge _02018326 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x30] lsr r0, r0, #0x18 bl FUN_02017FFC ldr r1, [sp, #0x10] lsl r2, r5, #0x1 ldrh r1, [r1, r2] lsl r2, r0, #0x1 ldr r0, [sp, #0x2c] strh r1, [r0, r2] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _020182F0 _02018326: ldr r0, [sp, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x28] ldr r0, [sp, #0x58] cmp r1, r0 blo _020182BC add sp, #0x44 pop {r4-r7, pc} _0201833A: mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _020183D6 add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x24] ldrb r0, [r1, #0x18] str r0, [sp, #0x20] _0201834E: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r1, r1, r0 add r0, sp, #0x40 ldrb r0, [r0, #0x0] cmp r1, r0 bge _020183D6 ldr r2, [sp, #0x24] ldr r0, [sp, #0x8] add r0, r2, r0 ldr r2, [sp, #0x6c] cmp r0, r2 bge _020183D6 mov r5, #0x0 cmp r6, #0x0 bls _020183C6 lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x34] str r0, [sp, #0x3c] _0201837A: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _020183C6 ldr r1, [sp, #0x20] add r1, r1, r5 str r1, [sp, #0xc] cmp r1, r4 bge _020183C6 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x34] lsr r0, r0, #0x18 bl FUN_02017FFC str r0, [sp, #0x38] ldr r0, [sp, #0xc] ldr r1, [sp, #0x3c] lsl r0, r0, #0x18 ldr r3, [sp, #0x6c] lsr r0, r0, #0x18 add r2, r4, #0x0 bl FUN_02018068 lsl r1, r0, #0x1 ldr r0, [sp, #0x5c] ldrh r0, [r0, r1] ldr r1, [sp, #0x38] lsl r2, r1, #0x1 ldr r1, [sp, #0x2c] strh r0, [r1, r2] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _0201837A _020183C6: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x8] ldr r0, [sp, #0x58] cmp r1, r0 blo _0201834E _020183D6: add sp, #0x44 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020183DC FUN_020183DC: ; 0x020183DC push {r4-r7, lr} sub sp, #0x44 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x58] add r6, r3, #0x0 str r0, [sp, #0x58] ldr r0, [sp, #0x5c] ldr r4, [sp, #0x68] str r0, [sp, #0x5c] ldr r0, [sp, #0x6c] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x2c] cmp r0, #0x0 bne _02018400 b _0201853C _02018400: ldrb r0, [r7, #0x15] add r1, sp, #0x40 add r1, #0x1 add r2, sp, #0x40 bl FUN_02017850 add r0, sp, #0x70 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020184A4 mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0x58] cmp r0, #0x0 bhi _02018420 b _0201853C _02018420: add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x1c] ldrb r0, [r1, #0x18] ldr r1, [sp, #0x5c] str r0, [sp, #0x18] add r0, r1, r0 str r0, [sp, #0x14] _02018430: ldr r1, [sp, #0x4] ldr r0, [sp, #0x28] add r0, r1, r0 add r1, sp, #0x40 ldrb r1, [r1, #0x0] cmp r0, r1 bge _0201853C ldr r2, [sp, #0x1c] ldr r1, [sp, #0x28] add r2, r2, r1 ldr r1, [sp, #0x6c] cmp r2, r1 bge _0201853C mov r5, #0x0 cmp r6, #0x0 bls _02018490 ldr r1, [sp, #0x14] mul r2, r4 lsl r0, r0, #0x18 add r1, r1, r2 lsr r0, r0, #0x18 str r1, [sp, #0x10] str r0, [sp, #0x30] _0201845E: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _02018490 ldr r1, [sp, #0x18] add r1, r1, r5 cmp r1, r4 bge _02018490 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x30] lsr r0, r0, #0x18 bl FUN_02017FFC ldr r1, [sp, #0x10] ldrb r2, [r1, r5] ldr r1, [sp, #0x2c] strb r2, [r1, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _0201845E _02018490: ldr r0, [sp, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x28] ldr r0, [sp, #0x58] cmp r1, r0 blo _02018430 add sp, #0x44 pop {r4-r7, pc} _020184A4: mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _0201853C add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x24] ldrb r0, [r1, #0x18] str r0, [sp, #0x20] _020184B8: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r1, r1, r0 add r0, sp, #0x40 ldrb r0, [r0, #0x0] cmp r1, r0 bge _0201853C ldr r2, [sp, #0x24] ldr r0, [sp, #0x8] add r0, r2, r0 ldr r2, [sp, #0x6c] cmp r0, r2 bge _0201853C mov r5, #0x0 cmp r6, #0x0 bls _0201852C lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x34] str r0, [sp, #0x3c] _020184E4: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _0201852C ldr r1, [sp, #0x20] add r1, r1, r5 str r1, [sp, #0xc] cmp r1, r4 bge _0201852C ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x34] lsr r0, r0, #0x18 bl FUN_02017FFC str r0, [sp, #0x38] ldr r0, [sp, #0xc] ldr r1, [sp, #0x3c] lsl r0, r0, #0x18 ldr r3, [sp, #0x6c] lsr r0, r0, #0x18 add r2, r4, #0x0 bl FUN_02018068 ldr r1, [sp, #0x5c] ldrb r2, [r1, r0] ldr r1, [sp, #0x2c] ldr r0, [sp, #0x38] strb r2, [r1, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _020184E4 _0201852C: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x8] ldr r0, [sp, #0x58] cmp r1, r0 blo _020184B8 _0201853C: add sp, #0x44 pop {r4-r7, pc} thumb_func_start FUN_02018540 FUN_02018540: ; 0x02018540 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x8 cmp r1, #0x1 beq _02018574 ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldrb r1, [r3, #0x18] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018590 add sp, #0xc pop {r4-r5, pc} _02018574: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldrb r1, [r3, #0x18] str r1, [sp, #0x4] lsl r1, r4, #0x18 ldrb r3, [r3, #0x10] lsr r1, r1, #0x18 bl FUN_02018640 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02018590 FUN_02018590: ; 0x02018590 push {r4-r7, lr} sub sp, #0x1c str r2, [sp, #0x4] str r3, [sp, #0x8] ldr r4, [r0, #0x0] add r7, r1, #0x0 str r0, [sp, #0x0] ldr r6, [sp, #0x38] cmp r4, #0x0 beq _0201863A ldrb r0, [r0, #0x15] add r1, sp, #0x18 add r1, #0x1 add r2, sp, #0x18 bl FUN_02017850 add r0, sp, #0x20 ldrb r2, [r0, #0x14] ldr r1, [sp, #0x8] add r1, r1, r2 ldr r2, [sp, #0x8] str r1, [sp, #0xc] cmp r2, r1 bge _0201863A ldrb r2, [r0, #0x10] ldr r0, [sp, #0x4] lsl r1, r6, #0xc add r0, r0, r2 add r1, r1, r7 str r0, [sp, #0x10] lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] _020185D2: add r0, sp, #0x18 ldrb r1, [r0, #0x0] ldr r0, [sp, #0x8] cmp r0, r1 bhs _0201863A ldr r5, [sp, #0x4] ldr r0, [sp, #0x10] add r1, r5, #0x0 cmp r1, r0 bge _0201862A _020185E6: add r0, sp, #0x18 ldrb r0, [r0, #0x1] cmp r5, r0 bhs _0201862A ldr r2, [sp, #0x0] ldr r1, [sp, #0x8] ldrb r2, [r2, #0x15] add r0, r5, #0x0 bl FUN_02017FFC cmp r6, #0x11 bne _02018604 lsl r0, r0, #0x1 strh r7, [r4, r0] b _0201861E _02018604: cmp r6, #0x10 bne _02018618 lsl r0, r0, #0x1 ldrh r2, [r4, r0] mov r1, #0xf lsl r1, r1, #0xc and r1, r2 add r1, r7, r1 strh r1, [r4, r0] b _0201861E _02018618: lsl r1, r0, #0x1 ldr r0, [sp, #0x14] strh r0, [r4, r1] _0201861E: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x10] cmp r5, r0 blt _020185E6 _0201862A: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0xc] str r1, [sp, #0x8] cmp r1, r0 blt _020185D2 _0201863A: add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02018640 FUN_02018640: ; 0x02018640 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] add r7, r0, #0x0 str r2, [sp, #0x4] ldr r0, [r7, #0x0] add r5, r3, #0x0 str r0, [sp, #0xc] cmp r0, #0x0 beq _020186B0 ldrb r0, [r7, #0x15] add r1, sp, #0x10 add r1, #0x1 add r2, sp, #0x10 bl FUN_02017850 add r1, sp, #0x18 ldrb r0, [r1, #0x14] add r0, r5, r0 str r0, [sp, #0x8] cmp r5, r0 bge _020186B0 ldrb r1, [r1, #0x10] ldr r0, [sp, #0x4] add r6, r0, r1 _02018672: add r0, sp, #0x10 ldrb r0, [r0, #0x0] cmp r5, r0 bhs _020186B0 ldr r4, [sp, #0x4] add r0, r4, #0x0 cmp r0, r6 bge _020186A4 _02018682: add r0, sp, #0x10 ldrb r0, [r0, #0x1] cmp r4, r0 bhs _020186A4 ldrb r2, [r7, #0x15] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02017FFC ldr r2, [sp, #0x0] ldr r1, [sp, #0xc] strb r2, [r1, r0] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, r6 blt _02018682 _020186A4: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x8] cmp r5, r0 blt _02018672 _020186B0: add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020186B4 FUN_020186B4: ; 0x020186B4 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x2c add r7, r1, #0x0 mul r7, r0 str r2, [sp, #0x0] add r0, r5, r7 ldr r4, [r0, #0x8] add r6, r3, #0x0 cmp r4, #0x0 beq _0201873C ldrb r0, [r0, #0x1d] add r1, sp, #0x10 add r1, #0x1 add r2, sp, #0x10 bl FUN_02017850 add r0, sp, #0x18 ldrb r1, [r0, #0x14] add r1, r6, r1 str r1, [sp, #0x4] cmp r6, r1 bge _0201873C add r1, r5, r7 str r1, [sp, #0xc] ldrb r1, [r0, #0x18] lsl r1, r1, #0xc str r1, [sp, #0x8] ldrb r1, [r0, #0x10] ldr r0, [sp, #0x0] add r7, r0, r1 _020186F4: add r0, sp, #0x10 ldrb r0, [r0, #0x0] cmp r6, r0 bhs _0201873C ldr r5, [sp, #0x0] add r0, r5, #0x0 cmp r0, r7 bge _02018730 _02018704: add r0, sp, #0x10 ldrb r0, [r0, #0x1] cmp r5, r0 bhs _02018730 ldr r2, [sp, #0xc] add r0, r5, #0x0 ldrb r2, [r2, #0x1d] add r1, r6, #0x0 bl FUN_02017FFC lsl r0, r0, #0x1 ldrh r2, [r4, r0] ldr r1, _02018740 ; =0x00000FFF and r2, r1 ldr r1, [sp, #0x8] orr r1, r2 strh r1, [r4, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r7 blt _02018704 _02018730: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp, #0x4] cmp r6, r0 blt _020186F4 _0201873C: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02018740: .word 0x00000FFF thumb_func_start FUN_02018744 FUN_02018744: ; 0x02018744 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r2, r5, r0 ldr r1, [r2, #0x8] cmp r1, #0x0 beq _02018766 ldr r2, [r2, #0xc] mov r0, #0x0 blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 _02018766: pop {r3-r5, pc} thumb_func_start FUN_02018768 FUN_02018768: ; 0x02018768 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r3, r5, r0 ldr r1, [r3, #0x8] cmp r1, #0x0 beq _0201878A add r0, r2, #0x0 ldr r2, [r3, #0xc] blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 _0201878A: pop {r3-r5, pc} thumb_func_start FUN_0201878C FUN_0201878C: ; 0x0201878C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r3, r5, r0 ldr r1, [r3, #0x8] cmp r1, #0x0 beq _020187AE add r0, r2, #0x0 ldr r2, [r3, #0xc] blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201AC68 _020187AE: pop {r3-r5, pc} thumb_func_start FUN_020187B0 FUN_020187B0: ; 0x020187B0 push {r3, lr} cmp r0, #0x7 bhi _02018802 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020187C2: ; jump table (using 16-bit offset) .short _020187D2 - _020187C2 - 2; case 0 .short _020187D8 - _020187C2 - 2; case 1 .short _020187DE - _020187C2 - 2; case 2 .short _020187E4 - _020187C2 - 2; case 3 .short _020187EA - _020187C2 - 2; case 4 .short _020187F0 - _020187C2 - 2; case 5 .short _020187F6 - _020187C2 - 2; case 6 .short _020187FC - _020187C2 - 2; case 7 _020187D2: blx G2_GetBG0CharPtr pop {r3, pc} _020187D8: blx G2_GetBG1CharPtr pop {r3, pc} _020187DE: blx G2_GetBG2CharPtr pop {r3, pc} _020187E4: blx G2_GetBG3CharPtr pop {r3, pc} _020187EA: blx G2S_GetBG0CharPtr pop {r3, pc} _020187F0: blx G2S_GetBG1CharPtr pop {r3, pc} _020187F6: blx G2S_GetBG2CharPtr pop {r3, pc} _020187FC: blx G2S_GetBG3CharPtr pop {r3, pc} _02018802: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02018808 FUN_02018808: ; 0x02018808 push {r4-r7} lsl r3, r3, #0x1c lsr r3, r3, #0x18 mov r4, #0x0 cmp r1, #0x0 bls _02018842 mov r5, #0xf add r6, r5, #0x0 _02018818: ldrb r7, [r0, r4] and r7, r6 strb r7, [r2, #0x0] ldrb r7, [r2, #0x0] cmp r7, #0x0 beq _02018828 add r7, r7, r3 strb r7, [r2, #0x0] _02018828: ldrb r7, [r0, r4] asr r7, r7, #0x4 and r7, r5 strb r7, [r2, #0x1] ldrb r7, [r2, #0x1] cmp r7, #0x0 beq _0201883A add r7, r7, r3 strb r7, [r2, #0x1] _0201883A: add r4, r4, #0x1 add r2, r2, #0x2 cmp r4, r1 blo _02018818 _02018842: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02018848 FUN_02018848: ; 0x02018848 push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r0, r3, #0x0 lsl r1, r5, #0x1 add r7, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02018808 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201886C FUN_0201886C: ; 0x0201886C mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02018878 FUN_02018878: ; 0x02018878 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrh r0, [r0, #0x20] bx lr .balign 4 thumb_func_start FUN_02018884 FUN_02018884: ; 0x02018884 sub sp, #0x20 cmp r1, #0x7 bls _0201888C b _02018A38 _0201888C: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02018898: ; jump table (using 16-bit offset) .short _020188A8 - _02018898 - 2; case 0 .short _020188BC - _02018898 - 2; case 1 .short _020188D0 - _02018898 - 2; case 2 .short _02018920 - _02018898 - 2; case 3 .short _02018970 - _02018898 - 2; case 4 .short _02018984 - _02018898 - 2; case 5 .short _02018998 - _02018898 - 2; case 6 .short _020189E8 - _02018898 - 2; case 7 _020188A8: ldr r0, _02018A40 ; =0x04000008 ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1e] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188BC: ldr r0, _02018A44 ; =0x0400000A ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1c] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188D0: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020188E4 cmp r0, #0x1 beq _020188F8 cmp r0, #0x2 beq _0201890C _020188E4: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1a] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188F8: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x18] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _0201890C: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x16] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018920: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _02018934 cmp r0, #0x1 beq _02018948 cmp r0, #0x2 beq _0201895C _02018934: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x14] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018948: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x12] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _0201895C: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x10] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018970: ldr r0, _02018A50 ; =0x04001008 ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xe] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018984: ldr r0, _02018A54 ; =0x0400100A ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xc] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018998: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020189AC cmp r0, #0x1 beq _020189C0 cmp r0, #0x2 beq _020189D4 _020189AC: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xa] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189C0: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x8] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189D4: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x6] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189E8: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020189FC cmp r0, #0x1 beq _02018A10 cmp r0, #0x2 beq _02018A24 _020189FC: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x4] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A10: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x2] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A24: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x0] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A38: mov r0, #0x0 add sp, #0x20 bx lr nop _02018A40: .word 0x04000008 _02018A44: .word 0x0400000A _02018A48: .word 0x0400000C _02018A4C: .word 0x0400000E _02018A50: .word 0x04001008 _02018A54: .word 0x0400100A _02018A58: .word 0x0400100C _02018A5C: .word 0x0400100E thumb_func_start FUN_02018A60 FUN_02018A60: ; 0x02018A60 push {r3-r7, lr} sub sp, #0x68 str r2, [sp, #0x8] str r3, [sp, #0xc] add r2, sp, #0x70 str r0, [sp, #0x0] ldrh r0, [r2, #0x10] str r1, [sp, #0x4] ldrh r2, [r2, #0x18] str r0, [sp, #0x10] add r0, r1, #0x0 ldrh r1, [r0, #0x4] ldr r0, [sp, #0x10] sub r3, r1, r0 cmp r3, r2 bge _02018A88 ldr r0, [sp, #0x8] add r0, r0, r3 str r0, [sp, #0x50] b _02018A8E _02018A88: ldr r0, [sp, #0x8] add r0, r2, r0 str r0, [sp, #0x50] _02018A8E: ldr r2, [sp, #0x4] add r3, sp, #0x70 ldrh r0, [r3, #0x14] ldrh r2, [r2, #0x6] ldrh r3, [r3, #0x1c] sub r4, r2, r0 cmp r4, r3 bge _02018AA6 ldr r2, [sp, #0xc] add r2, r2, r4 str r2, [sp, #0x4c] b _02018AAC _02018AA6: ldr r2, [sp, #0xc] add r2, r3, r2 str r2, [sp, #0x4c] _02018AAC: ldr r2, [sp, #0x0] mov r3, #0x7 ldrh r4, [r2, #0x4] add r2, r4, #0x0 and r2, r3 add r2, r4, r2 asr r2, r2, #0x3 str r2, [sp, #0x48] add r2, r1, #0x0 and r2, r3 add r1, r1, r2 asr r1, r1, #0x3 str r1, [sp, #0x44] add r1, sp, #0x70 ldrh r1, [r1, #0x20] ldr r2, _02018C98 ; =0x0000FFFF str r1, [sp, #0x38] cmp r1, r2 bne _02018BB4 ldr r2, [sp, #0xc] ldr r1, [sp, #0x4c] cmp r2, r1 bge _02018ADE cmp r2, r1 blt _02018AE0 _02018ADE: b _02018C92 _02018AE0: add r1, r2, #0x0 lsl r1, r1, #0x2 lsl r0, r0, #0x2 str r1, [sp, #0x28] str r0, [sp, #0x24] _02018AEA: ldr r3, [sp, #0x8] ldr r0, [sp, #0x50] add r1, r3, #0x0 ldr r4, [sp, #0x10] cmp r1, r0 bge _02018B96 cmp r1, r0 bge _02018B96 add r0, r3, #0x0 lsl r5, r0, #0x2 add r0, r4, #0x0 lsl r6, r0, #0x2 ldr r0, _02018C9C ; =0x00003FE0 ldr r1, [sp, #0x28] ldr r2, [sp, #0x48] and r1, r0 mul r2, r1 str r2, [sp, #0x20] ldr r2, [sp, #0x28] mov r1, #0x1c and r2, r1 str r2, [sp, #0x1c] ldr r2, [sp, #0x24] and r0, r2 ldr r2, [sp, #0x44] mul r2, r0 ldr r0, [sp, #0x24] str r2, [sp, #0x18] and r0, r1 str r0, [sp, #0x14] _02018B26: ldr r0, [sp, #0x4] asr r2, r4, #0x1 mov r1, #0x3 ldr r0, [r0, #0x0] and r1, r2 add r1, r0, r1 ldr r0, _02018C9C ; =0x00003FE0 and r0, r6 add r1, r1, r0 ldr r0, [sp, #0x18] add r6, r6, #0x4 add r0, r1, r0 str r0, [sp, #0x64] lsl r0, r4, #0x1f lsr r2, r0, #0x1d ldr r0, [sp, #0x0] asr r1, r3, #0x1 ldr r7, [r0, #0x0] mov r0, #0x3 and r0, r1 ldr r1, _02018C9C ; =0x00003FE0 add r4, r4, #0x1 and r1, r5 str r1, [sp, #0x54] add r1, r7, r0 ldr r0, [sp, #0x54] add r5, r5, #0x4 add r1, r0, r1 ldr r0, [sp, #0x20] add r1, r0, r1 ldr r0, [sp, #0x1c] ldrb r1, [r0, r1] lsl r0, r3, #0x1f lsr r0, r0, #0x1d asr r1, r0 mov r0, #0xf and r0, r1 add r7, r0, #0x0 ldr r1, [sp, #0x14] ldr r0, [sp, #0x64] lsl r7, r2 ldrb r0, [r0, r1] add r3, r3, #0x1 str r0, [sp, #0x58] mov r0, #0xf0 asr r0, r2 ldr r1, [sp, #0x58] add r2, r7, #0x0 and r0, r1 orr r2, r0 ldr r1, [sp, #0x14] ldr r0, [sp, #0x64] strb r2, [r0, r1] ldr r0, [sp, #0x50] cmp r3, r0 blt _02018B26 _02018B96: ldr r0, [sp, #0x28] add r0, r0, #0x4 str r0, [sp, #0x28] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x24] ldr r1, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0x24] ldr r0, [sp, #0x4c] cmp r1, r0 blt _02018AEA add sp, #0x68 pop {r3-r7, pc} _02018BB4: ldr r2, [sp, #0xc] ldr r1, [sp, #0x4c] cmp r2, r1 bge _02018C92 cmp r2, r1 bge _02018C92 add r1, r2, #0x0 lsl r1, r1, #0x2 lsl r0, r0, #0x2 str r1, [sp, #0x40] str r0, [sp, #0x3c] _02018BCA: ldr r3, [sp, #0x8] ldr r0, [sp, #0x50] add r1, r3, #0x0 ldr r4, [sp, #0x10] cmp r1, r0 bge _02018C78 cmp r1, r0 bge _02018C78 add r0, r3, #0x0 lsl r1, r0, #0x2 add r0, r4, #0x0 lsl r2, r0, #0x2 ldr r0, _02018C9C ; =0x00003FE0 ldr r5, [sp, #0x40] ldr r6, [sp, #0x48] and r5, r0 mul r6, r5 str r6, [sp, #0x34] ldr r6, [sp, #0x40] mov r5, #0x1c and r6, r5 str r6, [sp, #0x30] ldr r6, [sp, #0x3c] and r0, r6 ldr r6, [sp, #0x44] mul r6, r0 ldr r0, [sp, #0x3c] str r6, [sp, #0x2c] and r0, r5 str r0, [sp, #0x60] _02018C06: ldr r0, [sp, #0x4] asr r6, r4, #0x1 mov r5, #0x3 and r5, r6 ldr r0, [r0, #0x0] asr r6, r3, #0x1 add r5, r0, r5 ldr r0, _02018C9C ; =0x00003FE0 and r0, r2 add r5, r5, r0 ldr r0, [sp, #0x2c] add r5, r5, r0 ldr r0, [sp, #0x0] ldr r7, [r0, #0x0] mov r0, #0x3 and r0, r6 ldr r6, _02018C9C ; =0x00003FE0 and r6, r1 str r6, [sp, #0x5c] add r6, r7, r0 ldr r0, [sp, #0x5c] add r6, r0, r6 ldr r0, [sp, #0x34] add r6, r0, r6 ldr r0, [sp, #0x30] ldrb r6, [r0, r6] lsl r0, r3, #0x1f lsr r0, r0, #0x1d asr r6, r0 mov r0, #0xf and r0, r6 ldr r6, [sp, #0x38] cmp r0, r6 beq _02018C6A lsl r6, r4, #0x1f lsr r7, r6, #0x1d lsl r0, r7 mov lr, r0 ldr r0, [sp, #0x60] ldrb r0, [r5, r0] mov r12, r0 mov r0, #0xf0 add r6, r0, #0x0 asr r6, r7 mov r0, r12 and r0, r6 mov r6, lr orr r6, r0 ldr r0, [sp, #0x60] strb r6, [r5, r0] _02018C6A: ldr r0, [sp, #0x50] add r3, r3, #0x1 add r1, r1, #0x4 add r2, r2, #0x4 add r4, r4, #0x1 cmp r3, r0 blt _02018C06 _02018C78: ldr r0, [sp, #0x40] add r0, r0, #0x4 str r0, [sp, #0x40] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x3c] ldr r1, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0x3c] ldr r0, [sp, #0x4c] cmp r1, r0 blt _02018BCA _02018C92: add sp, #0x68 pop {r3-r7, pc} nop _02018C98: .word 0x0000FFFF _02018C9C: .word 0x00003FE0 thumb_func_start FUN_02018CA0 FUN_02018CA0: ; 0x02018CA0 push {r3-r7, lr} sub sp, #0x50 str r2, [sp, #0x8] str r3, [sp, #0xc] add r2, sp, #0x58 str r0, [sp, #0x0] ldrh r0, [r2, #0x10] str r1, [sp, #0x4] ldrh r2, [r2, #0x18] str r0, [sp, #0x10] add r0, r1, #0x0 ldrh r1, [r0, #0x4] ldr r0, [sp, #0x10] sub r3, r1, r0 cmp r3, r2 bge _02018CC6 ldr r0, [sp, #0x8] add r0, r0, r3 b _02018CCA _02018CC6: ldr r0, [sp, #0x8] add r0, r2, r0 _02018CCA: ldr r2, [sp, #0x4] add r3, sp, #0x58 mov r12, r0 ldrh r0, [r3, #0x14] ldrh r2, [r2, #0x6] ldrh r3, [r3, #0x1c] sub r4, r2, r0 cmp r4, r3 bge _02018CE2 ldr r2, [sp, #0xc] add r2, r2, r4 b _02018CE6 _02018CE2: ldr r2, [sp, #0xc] add r2, r3, r2 _02018CE6: mov lr, r2 ldr r2, [sp, #0x0] mov r3, #0x7 ldrh r4, [r2, #0x4] add r2, r4, #0x0 and r2, r3 add r2, r4, r2 asr r2, r2, #0x3 str r2, [sp, #0x4c] add r2, r1, #0x0 and r2, r3 add r1, r1, r2 asr r1, r1, #0x3 str r1, [sp, #0x48] add r1, sp, #0x58 ldrh r1, [r1, #0x20] ldr r2, _02018E80 ; =0x0000FFFF str r1, [sp, #0x3c] cmp r1, r2 bne _02018DC6 ldr r2, [sp, #0xc] mov r1, lr cmp r2, r1 bge _02018D1C mov r1, lr cmp r2, r1 blt _02018D1E _02018D1C: b _02018E7C _02018D1E: add r1, r2, #0x0 lsl r1, r1, #0x3 lsl r0, r0, #0x3 str r1, [sp, #0x28] str r0, [sp, #0x24] _02018D28: ldr r1, [sp, #0x8] mov r0, r12 add r2, r1, #0x0 ldr r7, [sp, #0x10] cmp r2, r0 bge _02018DA8 mov r0, r12 cmp r2, r0 bge _02018DA8 add r0, r1, #0x0 lsl r2, r0, #0x3 add r0, r7, #0x0 lsl r3, r0, #0x3 ldr r6, _02018E84 ; =0x00007FC0 ldr r0, [sp, #0x28] ldr r4, [sp, #0x4c] and r0, r6 mul r4, r0 str r4, [sp, #0x20] ldr r0, [sp, #0x28] mov r5, #0x38 and r0, r5 str r0, [sp, #0x1c] ldr r0, [sp, #0x24] ldr r4, [sp, #0x48] and r0, r6 mul r4, r0 ldr r0, [sp, #0x24] str r4, [sp, #0x18] and r0, r5 str r0, [sp, #0x14] _02018D66: ldr r0, [sp, #0x0] add r5, r1, #0x0 mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r2 add r4, r4, r0 ldr r0, [sp, #0x20] add r5, r7, #0x0 add r4, r0, r4 ldr r0, [sp, #0x1c] add r1, r1, #0x1 ldrb r6, [r0, r4] ldr r0, [sp, #0x4] mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r3 add r4, r4, r0 ldr r0, [sp, #0x18] add r2, #0x8 add r4, r0, r4 ldr r0, [sp, #0x14] add r3, #0x8 strb r6, [r0, r4] mov r0, r12 add r7, r7, #0x1 cmp r1, r0 blt _02018D66 _02018DA8: ldr r0, [sp, #0x28] add r0, #0x8 str r0, [sp, #0x28] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x24] ldr r1, [sp, #0xc] add r0, #0x8 str r0, [sp, #0x24] mov r0, lr cmp r1, r0 blt _02018D28 add sp, #0x50 pop {r3-r7, pc} _02018DC6: ldr r2, [sp, #0xc] mov r1, lr cmp r2, r1 bge _02018E7C mov r1, lr cmp r2, r1 bge _02018E7C add r1, r2, #0x0 lsl r1, r1, #0x3 lsl r0, r0, #0x3 str r1, [sp, #0x44] str r0, [sp, #0x40] _02018DDE: ldr r2, [sp, #0x8] mov r0, r12 add r1, r2, #0x0 ldr r3, [sp, #0x10] cmp r1, r0 bge _02018E62 mov r0, r12 cmp r1, r0 bge _02018E62 add r0, r2, #0x0 lsl r6, r0, #0x3 add r0, r3, #0x0 lsl r1, r0, #0x3 ldr r7, _02018E84 ; =0x00007FC0 ldr r0, [sp, #0x44] ldr r4, [sp, #0x4c] and r0, r7 mul r4, r0 str r4, [sp, #0x38] ldr r0, [sp, #0x44] mov r5, #0x38 and r0, r5 str r0, [sp, #0x34] ldr r0, [sp, #0x40] ldr r4, [sp, #0x48] and r0, r7 mul r4, r0 ldr r0, [sp, #0x40] str r4, [sp, #0x30] and r0, r5 str r0, [sp, #0x2c] _02018E1C: ldr r0, [sp, #0x4] mov r4, #0x7 ldr r0, [r0, #0x0] and r4, r3 add r0, r0, r4 ldr r4, _02018E84 ; =0x00007FC0 add r5, r2, #0x0 and r4, r1 add r4, r0, r4 ldr r0, [sp, #0x30] add r7, r4, r0 ldr r0, [sp, #0x0] mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r6 add r4, r4, r0 ldr r0, [sp, #0x38] add r4, r0, r4 ldr r0, [sp, #0x34] ldrb r0, [r0, r4] ldr r4, [sp, #0x3c] cmp r0, r4 beq _02018E54 ldr r4, [sp, #0x2c] strb r0, [r7, r4] _02018E54: add r2, r2, #0x1 mov r0, r12 add r6, #0x8 add r1, #0x8 add r3, r3, #0x1 cmp r2, r0 blt _02018E1C _02018E62: ldr r0, [sp, #0x44] add r0, #0x8 str r0, [sp, #0x44] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x40] ldr r1, [sp, #0xc] add r0, #0x8 str r0, [sp, #0x40] mov r0, lr cmp r1, r0 blt _02018DDE _02018E7C: add sp, #0x50 pop {r3-r7, pc} .balign 4 _02018E80: .word 0x0000FFFF _02018E84: .word 0x00007FC0 thumb_func_start FUN_02018E88 FUN_02018E88: ; 0x02018E88 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x4] str r2, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x2c] ldr r0, [sp, #0x4] add r6, r0, r3 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] cmp r6, r0 ble _02018EA4 add r6, r0, #0x0 _02018EA4: add r1, sp, #0x18 ldrh r2, [r1, #0x10] ldr r1, [sp, #0x8] add r1, r1, r2 mov r12, r1 ldr r1, [sp, #0x0] ldrh r2, [r1, #0x6] mov r1, r12 cmp r1, r2 ble _02018EBA mov r12, r2 _02018EBA: mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 mov lr, r0 ldr r1, [sp, #0x8] mov r0, r12 cmp r1, r0 bge _02018F44 add r0, r1, #0x0 lsl r0, r0, #0x2 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] lsl r0, r0, #0x4 str r0, [sp, #0x10] _02018ED8: ldr r1, [sp, #0x4] add r0, r1, #0x0 cmp r0, r6 bge _02018F32 lsl r5, r0, #0x2 ldr r2, _02018F48 ; =0x00003FE0 ldr r0, [sp, #0xc] and r0, r2 add r7, r0, #0x0 mov r2, lr mul r7, r2 ldr r0, [sp, #0xc] mov r2, #0x1c and r2, r0 _02018EF4: ldr r0, [sp, #0x0] asr r3, r1, #0x1 ldr r4, [r0, #0x0] mov r0, #0x3 and r0, r3 ldr r3, _02018F48 ; =0x00003FE0 add r0, r4, r0 and r3, r5 add r0, r0, r3 add r0, r0, r7 mov r3, #0x1 tst r3, r1 ldrb r4, [r0, r2] beq _02018F1C mov r3, #0xf and r3, r4 strb r3, [r0, r2] ldrb r4, [r0, r2] ldr r3, [sp, #0x10] b _02018F26 _02018F1C: mov r3, #0xf0 and r3, r4 strb r3, [r0, r2] ldrb r4, [r0, r2] ldr r3, [sp, #0x2c] _02018F26: orr r3, r4 add r1, r1, #0x1 strb r3, [r0, r2] add r5, r5, #0x4 cmp r1, r6 blt _02018EF4 _02018F32: ldr r0, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 mov r0, r12 str r1, [sp, #0x8] cmp r1, r0 blt _02018ED8 _02018F44: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02018F48: .word 0x00003FE0 thumb_func_start FUN_02018F4C FUN_02018F4C: ; 0x02018F4C push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x4] str r2, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x2c] ldr r0, [sp, #0x4] add r5, r0, r3 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] cmp r5, r0 ble _02018F68 add r5, r0, #0x0 _02018F68: add r1, sp, #0x18 ldrh r2, [r1, #0x10] ldr r1, [sp, #0x8] add r1, r1, r2 mov lr, r1 ldr r1, [sp, #0x0] ldrh r2, [r1, #0x6] mov r1, lr cmp r1, r2 ble _02018F7E mov lr, r2 _02018F7E: mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x10] ldr r1, [sp, #0x8] mov r0, lr cmp r1, r0 bge _02018FEA add r0, r1, #0x0 lsl r0, r0, #0x3 str r0, [sp, #0xc] ldr r0, [sp, #0x4] lsl r0, r0, #0x3 mov r12, r0 _02018F9C: ldr r2, [sp, #0x4] add r0, r2, #0x0 cmp r0, r5 bge _02018FD8 ldr r1, [sp, #0xc] ldr r0, _02018FF0 ; =0x00007FC0 mov r3, r12 and r0, r1 add r7, r0, #0x0 ldr r1, [sp, #0x10] mov r0, #0x38 mul r7, r1 ldr r1, [sp, #0xc] add r6, r1, #0x0 and r6, r0 _02018FBA: ldr r0, [sp, #0x0] ldr r4, _02018FF0 ; =0x00007FC0 ldr r1, [r0, #0x0] mov r0, #0x7 and r0, r2 and r4, r3 add r0, r1, r0 add r0, r4, r0 add r1, r7, r0 ldr r0, [sp, #0x2c] add r2, r2, #0x1 strb r0, [r6, r1] add r3, #0x8 cmp r2, r5 blt _02018FBA _02018FD8: ldr r0, [sp, #0xc] add r0, #0x8 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 mov r0, lr str r1, [sp, #0x8] cmp r1, r0 blt _02018F9C _02018FEA: add sp, #0x14 pop {r4-r7, pc} nop _02018FF0: .word 0x00007FC0 thumb_func_start FUN_02018FF4 FUN_02018FF4: ; 0x02018FF4 push {r4-r6, lr} add r5, r1, #0x0 lsl r1, r5, #0x4 bl FUN_02016998 add r6, r0, #0x0 mov r4, #0x0 cmp r5, #0x0 ble _02019018 _02019006: lsl r0, r4, #0x4 add r0, r6, r0 bl FUN_0201901C add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r5 blt _02019006 _02019018: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201901C FUN_0201901C: ; 0x0201901C mov r3, #0x0 str r3, [r0, #0x0] mov r1, #0xff strb r1, [r0, #0x4] strb r3, [r0, #0x5] strb r3, [r0, #0x6] strb r3, [r0, #0x7] strb r3, [r0, #0x8] strb r3, [r0, #0x9] ldrh r2, [r0, #0xa] ldr r1, _02019044 ; =0xFFFF8000 and r2, r1 strh r2, [r0, #0xa] str r3, [r0, #0xc] ldrh r2, [r0, #0xa] sub r1, r1, #0x1 and r1, r2 strh r1, [r0, #0xa] bx lr nop _02019044: .word 0xFFFF8000 thumb_func_start FUN_02019048 FUN_02019048: ; 0x02019048 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0201905A ldrb r1, [r0, #0x4] cmp r1, #0xff beq _0201905A ldr r0, [r0, #0xc] cmp r0, #0x0 bne _0201905E _0201905A: mov r0, #0x0 bx lr _0201905E: mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_02019064 FUN_02019064: ; 0x02019064 push {r3-r7, lr} add r6, r2, #0x0 add r5, r0, #0x0 mov r0, #0x2c add r7, r6, #0x0 mul r7, r0 add r4, r1, #0x0 str r3, [sp, #0x0] add r1, r5, r7 ldr r0, [r1, #0x8] cmp r0, #0x0 beq _020190E0 add r3, sp, #0x8 ldrb r2, [r1, #0x1f] ldrb r1, [r3, #0x14] ldrb r3, [r3, #0x18] ldr r0, [r5, #0x0] mul r3, r1 add r1, r2, #0x0 mul r1, r3 bl FUN_02016998 add r1, r0, #0x0 beq _020190E0 str r5, [r4, #0x0] strb r6, [r4, #0x4] ldr r0, [sp, #0x0] add r3, sp, #0x8 strb r0, [r4, #0x5] ldrb r0, [r3, #0x10] ldr r2, _020190E4 ; =0xFFFF8000 strb r0, [r4, #0x6] ldrb r0, [r3, #0x14] strb r0, [r4, #0x7] ldrb r0, [r3, #0x18] strb r0, [r4, #0x8] ldrb r0, [r3, #0x1c] strb r0, [r4, #0x9] ldrh r0, [r4, #0xa] ldrh r3, [r3, #0x20] and r0, r2 lsr r2, r2, #0x11 and r2, r3 orr r0, r2 strh r0, [r4, #0xa] str r1, [r4, #0xc] add r0, r5, r7 ldrb r0, [r0, #0x1e] cmp r0, #0x0 bne _020190CC mov r2, #0x0 b _020190CE _020190CC: mov r2, #0x1 _020190CE: ldrh r1, [r4, #0xa] ldr r0, _020190E8 ; =0xFFFF7FFF and r1, r0 lsl r0, r2, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x10 orr r0, r1 strh r0, [r4, #0xa] _020190E0: pop {r3-r7, pc} nop _020190E4: .word 0xFFFF8000 _020190E8: .word 0xFFFF7FFF thumb_func_start FUN_020190EC FUN_020190EC: ; 0x020190EC push {r3-r7, lr} sub sp, #0x8 str r3, [sp, #0x0] add r5, r0, #0x0 ldr r0, [sp, #0x24] add r6, r2, #0x0 str r0, [sp, #0x24] ldr r0, [sp, #0x0] add r4, r1, #0x0 mul r0, r6 lsl r0, r0, #0x5 str r0, [sp, #0x4] ldr r0, [r5, #0x0] ldr r1, [sp, #0x4] bl FUN_02016998 ldr r1, [sp, #0x24] add r7, r0, #0x0 lsl r2, r1, #0x4 orr r1, r2 lsl r1, r1, #0x18 ldr r2, [sp, #0x4] lsr r1, r1, #0x18 blx Call_FillMemWithValue cmp r7, #0x0 beq _02019148 str r5, [r4, #0x0] strb r6, [r4, #0x7] ldr r0, [sp, #0x0] strb r0, [r4, #0x8] ldrh r1, [r4, #0xa] ldr r0, _0201914C ; =0xFFFF8000 add r3, r1, #0x0 add r1, sp, #0x10 ldrh r2, [r1, #0x10] lsr r1, r0, #0x11 and r3, r0 and r1, r2 orr r1, r3 strh r1, [r4, #0xa] str r7, [r4, #0xc] ldrh r1, [r4, #0xa] sub r0, r0, #0x1 and r0, r1 strh r0, [r4, #0xa] _02019148: add sp, #0x8 pop {r3-r7, pc} .balign 4 _0201914C: .word 0xFFFF8000 thumb_func_start FUN_02019150 FUN_02019150: ; 0x02019150 push {lr} sub sp, #0x14 add r3, r2, #0x0 ldrb r2, [r3, #0x2] str r2, [sp, #0x0] ldrb r2, [r3, #0x3] str r2, [sp, #0x4] ldrb r2, [r3, #0x4] str r2, [sp, #0x8] ldrb r2, [r3, #0x5] str r2, [sp, #0xc] ldrh r2, [r3, #0x6] str r2, [sp, #0x10] ldrb r2, [r3, #0x0] ldrb r3, [r3, #0x1] bl FUN_02019064 add sp, #0x14 pop {pc} .balign 4 thumb_func_start FUN_02019178 FUN_02019178: ; 0x02019178 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02016A18 mov r2, #0x0 str r2, [r4, #0x0] mov r0, #0xff strb r0, [r4, #0x4] strb r2, [r4, #0x5] strb r2, [r4, #0x6] strb r2, [r4, #0x7] strb r2, [r4, #0x8] strb r2, [r4, #0x9] ldrh r1, [r4, #0xa] ldr r0, _020191A0 ; =0xFFFF8000 and r0, r1 strh r0, [r4, #0xa] str r2, [r4, #0xc] pop {r4, pc} .balign 4 _020191A0: .word 0xFFFF8000 thumb_func_start FUN_020191A4 FUN_020191A4: ; 0x020191A4 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 mov r4, #0x0 cmp r6, #0x0 ble _020191C8 _020191B0: lsl r0, r4, #0x4 add r0, r5, r0 ldr r0, [r0, #0xc] cmp r0, #0x0 beq _020191BE bl FUN_02016A18 _020191BE: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r6 blt _020191B0 _020191C8: add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_020191D0 FUN_020191D0: ; 0x020191D0 push {r4, lr} add r4, r0, #0x0 bne _020191DA bl ErrorHandling _020191DA: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _020191E4 bl ErrorHandling _020191E4: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _020191EE bl ErrorHandling _020191EE: ldrb r1, [r4, #0x4] mov r0, #0x2c ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019202 bl ErrorHandling _02019202: ldrb r2, [r4, #0x4] mov r1, #0x2c ldr r3, [r4, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201921C ; =0x020EDB68 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0201921C: .word 0x020EDB68 thumb_func_start FUN_02019220 FUN_02019220: ; 0x02019220 push {r4, lr} add r4, r0, #0x0 bne _0201922A bl ErrorHandling _0201922A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02019234 bl ErrorHandling _02019234: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _0201923E bl ErrorHandling _0201923E: ldrb r1, [r4, #0x4] mov r0, #0x2c ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019252 bl ErrorHandling _02019252: ldrb r2, [r4, #0x4] mov r1, #0x2c ldr r3, [r4, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201926C ; =0x020EDB5C ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0201926C: .word 0x020EDB5C thumb_func_start FUN_02019270 FUN_02019270: ; 0x02019270 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _02019288 ; =0x020EDB38 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _02019288: .word 0x020EDB38 thumb_func_start FUN_0201928C FUN_0201928C: ; 0x0201928C push {r4-r6, lr} add r5, r0, #0x0 ldrb r6, [r5, #0x7] ldrb r4, [r5, #0x8] strb r1, [r5, #0x7] strb r2, [r5, #0x8] ldrb r3, [r5, #0x4] mov r2, #0x2c ldr r1, [r5, #0x0] mul r2, r3 add r1, r1, r2 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020192B4 ; =0x020EDB38 ldr r1, [r1, r2] blx r1 strb r6, [r5, #0x7] strb r4, [r5, #0x8] pop {r4-r6, pc} nop _020192B4: .word 0x020EDB38 thumb_func_start FUN_020192B8 FUN_020192B8: ; 0x020192B8 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020192D0 ; =0x020EDB74 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _020192D0: .word 0x020EDB74 thumb_func_start FUN_020192D4 FUN_020192D4: ; 0x020192D4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldrb r1, [r5, #0x4] mov r0, #0x2c ldr r2, [r5, #0x0] mul r0, r1 add r0, r2, r0 ldr r0, [r0, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _02019354 ldrh r0, [r5, #0xa] ldrb r1, [r5, #0x5] lsl r0, r0, #0x11 lsr r3, r0, #0x11 ldrb r0, [r5, #0x7] add r7, r1, r0 ldrb r0, [r5, #0x6] ldrb r1, [r5, #0x8] mov r12, r0 add r0, r0, r1 mov r1, r12 mov lr, r0 cmp r1, r0 bhs _02019354 _02019308: ldrb r2, [r5, #0x5] cmp r2, r7 bhs _02019348 mov r0, r12 lsl r0, r0, #0x1b lsr r0, r0, #0x16 lsl r1, r0, #0x1 ldr r0, [sp, #0x4] add r0, r0, r1 mov r1, r12 str r0, [sp, #0x0] mov r0, #0x20 add r6, r1, #0x0 and r6, r0 _02019324: ldrb r0, [r5, #0x9] mov r4, #0x20 add r1, r3, #0x0 lsl r0, r0, #0xc and r4, r2 orr r1, r0 mov r0, #0x1f add r4, r6, r4 and r0, r2 lsl r4, r4, #0x5 add r0, r0, r4 lsl r4, r0, #0x1 ldr r0, [sp, #0x0] add r2, r2, #0x1 strh r1, [r0, r4] add r3, r3, #0x1 cmp r2, r7 blo _02019324 _02019348: mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _02019308 _02019354: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02019358 FUN_02019358: ; 0x02019358 push {r4-r7} ldrb r3, [r0, #0x4] mov r1, #0x2c add r2, r3, #0x0 mul r2, r1 ldr r1, [r0, #0x0] add r1, r1, r2 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _020193AC ldrb r2, [r1, #0x1d] ldr r1, _020193B0 ; =0x020EDB30 ldrb r6, [r1, r2] ldrb r1, [r0, #0x6] add r2, r1, #0x0 mul r2, r6 add r2, r3, r2 ldrb r1, [r0, #0x5] mov r3, #0x0 add r4, r2, r1 ldrh r1, [r0, #0xa] lsl r1, r1, #0x11 lsr r5, r1, #0x11 ldrb r1, [r0, #0x8] cmp r1, #0x0 ble _020193AC add r1, r3, #0x0 _0201938E: ldrb r7, [r0, #0x7] add r2, r1, #0x0 cmp r7, #0x0 ble _020193A2 _02019396: strb r5, [r4, r2] ldrb r7, [r0, #0x7] add r2, r2, #0x1 add r5, r5, #0x1 cmp r2, r7 blt _02019396 _020193A2: ldrb r2, [r0, #0x8] add r3, r3, #0x1 add r4, r4, r6 cmp r3, r2 blt _0201938E _020193AC: pop {r4-r7} bx lr .balign 4 _020193B0: .word 0x020EDB30 thumb_func_start FUN_020193B4 FUN_020193B4: ; 0x020193B4 push {r4-r7, lr} sub sp, #0xc ldrb r2, [r0, #0x4] str r0, [sp, #0x0] mov r0, #0x2c add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] add r1, r0, r1 ldr r0, [r1, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _0201943C ldrb r1, [r1, #0x1d] ldr r0, _02019440 ; =0x020EDB30 ldrb r0, [r0, r1] str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldrb r1, [r0, #0x5] ldrb r0, [r0, #0x7] add r2, r1, r0 ldr r0, [sp, #0x0] ldrb r0, [r0, #0x6] mov r12, r0 ldr r0, [sp, #0x0] ldrb r1, [r0, #0x8] mov r0, r12 add r0, r0, r1 mov r1, r12 mov lr, r0 cmp r1, r0 bhs _0201943C mov r6, #0x0 mov r7, #0x20 _020193FA: ldr r0, [sp, #0x0] ldrb r1, [r0, #0x5] cmp r1, r2 bhs _02019430 mov r3, r12 mov r0, #0x1f and r3, r0 ldr r0, [sp, #0x8] mul r0, r3 lsl r3, r0, #0x1 ldr r0, [sp, #0x4] add r5, r0, r3 mov r3, r12 mov r0, #0x20 and r3, r0 _02019418: add r4, r1, #0x0 and r4, r7 mov r0, #0x1f add r4, r3, r4 and r0, r1 lsl r4, r4, #0x5 add r0, r0, r4 lsl r0, r0, #0x1 add r1, r1, #0x1 strh r6, [r5, r0] cmp r1, r2 blo _02019418 _02019430: mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _020193FA _0201943C: add sp, #0xc pop {r4-r7, pc} .balign 4 _02019440: .word 0x020EDB30 thumb_func_start FUN_02019444 FUN_02019444: ; 0x02019444 push {r4-r7} ldrb r3, [r0, #0x4] mov r1, #0x2c add r2, r3, #0x0 mul r2, r1 ldr r1, [r0, #0x0] add r1, r1, r2 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _02019492 ldrb r2, [r1, #0x1d] ldr r1, _02019498 ; =0x020EDB30 mov r4, #0x0 ldrb r6, [r1, r2] ldrb r1, [r0, #0x6] add r2, r1, #0x0 mul r2, r6 ldrb r1, [r0, #0x5] add r2, r3, r2 add r5, r2, r1 ldrb r1, [r0, #0x8] cmp r1, #0x0 ble _02019492 add r1, r4, #0x0 add r2, r4, #0x0 _02019476: ldrb r7, [r0, #0x7] add r3, r2, #0x0 cmp r7, #0x0 ble _02019488 _0201947E: strb r1, [r5, r3] ldrb r7, [r0, #0x7] add r3, r3, #0x1 cmp r3, r7 blt _0201947E _02019488: ldrb r3, [r0, #0x8] add r4, r4, #0x1 add r5, r5, r6 cmp r4, r3 blt _02019476 _02019492: pop {r4-r7} bx lr nop _02019498: .word 0x020EDB30 thumb_func_start FUN_0201949C FUN_0201949C: ; 0x0201949C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_020192D4 add r0, r4, #0x0 bl FUN_02019548 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020194C8 FUN_020194C8: ; 0x020194C8 push {r4, lr} add r4, r0, #0x0 bl FUN_020192D4 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019548 pop {r4, pc} thumb_func_start FUN_020194E0 FUN_020194E0: ; 0x020194E0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02019358 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 ldrh r0, [r4, #0xa] lsl r0, r0, #0x11 lsr r0, r0, #0x11 str r0, [sp, #0x0] ldrb r5, [r4, #0x7] ldrb r3, [r4, #0x8] ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] mul r3, r5 ldr r2, [r4, #0xc] lsl r3, r3, #0x6 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_0201951C FUN_0201951C: ; 0x0201951C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02019358 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 ldrh r0, [r4, #0xa] lsl r0, r0, #0x11 lsr r0, r0, #0x11 str r0, [sp, #0x0] ldrb r5, [r4, #0x7] ldrb r3, [r4, #0x8] ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] mul r3, r5 ldr r2, [r4, #0xc] lsl r3, r3, #0x6 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_02019548 FUN_02019548: ; 0x02019548 push {r3-r5, lr} add r3, r0, #0x0 ldrh r2, [r3, #0xa] ldrb r1, [r3, #0x4] mov r4, #0x2c lsl r2, r2, #0x11 ldr r0, [r3, #0x0] lsr r2, r2, #0x11 str r2, [sp, #0x0] mul r4, r1 add r4, r0, r4 ldr r2, [r3, #0xc] ldrb r5, [r3, #0x7] ldrb r3, [r3, #0x8] ldrb r4, [r4, #0x1f] mul r3, r5 mul r3, r4 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_02019570 FUN_02019570: ; 0x02019570 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _02019588 ; =0x020EDB50 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _02019588: .word 0x020EDB50 thumb_func_start FUN_0201958C FUN_0201958C: ; 0x0201958C push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020195A4 ; =0x020EDB44 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _020195A4: .word 0x020EDB44 thumb_func_start FUN_020195A8 FUN_020195A8: ; 0x020195A8 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_020193B4 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020195D0 FUN_020195D0: ; 0x020195D0 push {r4, lr} add r4, r0, #0x0 bl FUN_020193B4 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 pop {r4, pc} .balign 4 thumb_func_start FUN_020195E4 FUN_020195E4: ; 0x020195E4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02019444 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201960C FUN_0201960C: ; 0x0201960C push {r4, lr} add r4, r0, #0x0 bl FUN_02019444 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 pop {r4, pc} .balign 4 thumb_func_start FUN_02019620 FUN_02019620: ; 0x02019620 push {r3-r5, lr} add r4, r0, #0x0 ldrb r2, [r4, #0x4] mov r0, #0x2c ldr r3, [r4, #0x0] mul r0, r2 add r0, r3, r0 ldrb r2, [r0, #0x1f] cmp r2, #0x20 bne _0201963C lsl r0, r1, #0x4 orr r0, r1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 _0201963C: lsl r3, r1, #0x18 lsl r0, r1, #0x10 orr r0, r3 lsl r5, r1, #0x8 orr r0, r5 orr r0, r1 ldr r1, [r4, #0xc] ldrb r3, [r4, #0x8] ldrb r4, [r4, #0x7] mul r2, r4 mul r2, r3 blx MIi_CpuClearFast pop {r3-r5, pc} thumb_func_start FUN_02019658 FUN_02019658: ; 0x02019658 push {r4-r5, lr} sub sp, #0x1c add r4, sp, #0x18 ldrh r5, [r4, #0x10] str r5, [sp, #0x0] ldrh r5, [r4, #0x14] str r5, [sp, #0x4] ldrh r5, [r4, #0x18] str r5, [sp, #0x8] ldrh r5, [r4, #0x1c] str r5, [sp, #0xc] ldrh r5, [r4, #0x20] str r5, [sp, #0x10] ldrh r4, [r4, #0x24] str r4, [sp, #0x14] mov r4, #0x0 str r4, [sp, #0x18] bl FUN_02019684 add sp, #0x1c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02019684 FUN_02019684: ; 0x02019684 push {r4-r5, lr} sub sp, #0x24 str r1, [sp, #0x1c] add r4, sp, #0x20 ldrh r5, [r4, #0x10] add r1, sp, #0x14 strh r5, [r1, #0xc] ldrh r5, [r4, #0x14] strh r5, [r1, #0xe] ldr r5, [r0, #0xc] str r5, [sp, #0x14] ldrb r5, [r0, #0x7] lsl r5, r5, #0x3 strh r5, [r1, #0x4] ldrb r5, [r0, #0x8] lsl r5, r5, #0x3 strh r5, [r1, #0x6] ldrb r5, [r0, #0x4] ldr r1, [r0, #0x0] mov r0, #0x2c mul r0, r5 add r0, r1, r0 ldrb r0, [r0, #0x1e] add r1, sp, #0x14 cmp r0, #0x0 ldrh r0, [r4, #0x18] bne _020196D6 str r0, [sp, #0x0] ldrh r0, [r4, #0x1c] str r0, [sp, #0x4] ldrh r0, [r4, #0x20] str r0, [sp, #0x8] ldrh r0, [r4, #0x24] str r0, [sp, #0xc] ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018A60 add sp, #0x24 pop {r4-r5, pc} _020196D6: str r0, [sp, #0x0] ldrh r0, [r4, #0x1c] str r0, [sp, #0x4] ldrh r0, [r4, #0x20] str r0, [sp, #0x8] ldrh r0, [r4, #0x24] str r0, [sp, #0xc] ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018CA0 add sp, #0x24 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_020196F4 FUN_020196F4: ; 0x020196F4 push {r3-r5, lr} sub sp, #0x10 add r5, r1, #0x0 ldr r1, [r0, #0xc] add r4, r2, #0x0 str r1, [sp, #0x8] ldrb r1, [r0, #0x7] add r2, r3, #0x0 lsl r3, r1, #0x3 add r1, sp, #0x8 strh r3, [r1, #0x4] ldrb r3, [r0, #0x8] lsl r3, r3, #0x3 strh r3, [r1, #0x6] ldrb r3, [r0, #0x4] ldr r1, [r0, #0x0] mov r0, #0x2c mul r0, r3 add r0, r1, r0 ldrb r0, [r0, #0x1e] add r3, sp, #0x10 cmp r0, #0x0 bne _02019736 ldrh r0, [r3, #0x14] add r1, r4, #0x0 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x10] add r0, sp, #0x8 bl FUN_02018E88 add sp, #0x10 pop {r3-r5, pc} _02019736: ldrh r0, [r3, #0x14] add r1, r4, #0x0 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x10] add r0, sp, #0x8 bl FUN_02018F4C add sp, #0x10 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201974C FUN_0201974C: ; 0x0201974C push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x118 add r5, r0, #0x0 ldr r0, [sp, #0x330] str r1, [sp, #0x0] str r0, [sp, #0x330] add r1, sp, #0x318 ldrh r1, [r1, #0x10] ldr r0, [r5, #0xc] str r1, [sp, #0x5c] ldrb r1, [r5, #0x7] str r0, [sp, #0x278] ldrb r0, [r5, #0x8] lsl r1, r1, #0x13 lsr r4, r1, #0x10 ldr r1, [sp, #0x5c] lsl r0, r0, #0x13 sub r1, r4, r1 lsr r0, r0, #0x10 str r4, [sp, #0x58] str r1, [sp, #0x8] cmp r1, r2 blt _0201977E str r2, [sp, #0x8] _0201977E: add r1, sp, #0x318 ldrh r1, [r1, #0x14] sub r0, r0, r1 str r1, [sp, #0x48] str r0, [sp, #0x4] cmp r0, r3 blt _0201978E str r3, [sp, #0x4] _0201978E: ldr r0, [sp, #0x8] mov r4, #0x0 cmp r0, #0x8 ble _0201979E mov r0, #0x1 orr r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0201979E: ldr r0, [sp, #0x4] cmp r0, #0x8 ble _020197AC mov r0, #0x2 orr r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _020197AC: ldrh r0, [r5, #0xa] lsl r0, r0, #0x10 lsr r0, r0, #0x1f beq _020197B8 bl FUN_0201A12C _020197B8: cmp r4, #0x3 bls _020197C0 bl FUN_0201A8BC _020197C0: add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020197CC: ; jump table (using 16-bit offset) .short _020197D4 - _020197CC - 2; case 0 .short _020198D6 - _020197CC - 2; case 1 .short _02019AE6 - _020197CC - 2; case 2 .short _02019D06 - _020197CC - 2; case 3 _020197D4: ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x70] mov r0, #0x0 str r0, [sp, #0x274] ldr r0, [sp, #0x4] cmp r0, #0x0 bgt _020197EA bl FUN_0201A8BC _020197EA: ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x6c] _020197F6: ldr r0, [sp, #0x0] ldr r1, [sp, #0x70] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x26c] ldr r0, [sp, #0x274] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x270] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _020198AA ble _020198AA add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x6c] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0x68] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x6c] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x64] str r0, [sp, #0x60] _02019848: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x68] str r5, [sp, #0x27c] add r0, r5, r0 ldr r5, [sp, #0x26c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _0201989C lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x280] ldrb r5, [r0, r7] str r5, [sp, #0x284] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x284] and r6, r5 ldr r5, [sp, #0x280] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x270] cmp r0, #0x0 beq _0201989C ldr r6, [sp, #0x27c] ldr r0, [sp, #0x64] add r6, r6, r0 ldr r0, [sp, #0x60] strb r5, [r0, r6] _0201989C: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019848 _020198AA: ldr r0, [sp, #0x270] cmp r0, #0x0 beq _020198B8 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _020198BE _020198B8: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _020198BE: ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x274] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x274] cmp r1, r0 blt _020197F6 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _020198D6: ldr r0, [sp, #0x0] str r0, [sp, #0x25c] ldr r0, [sp, #0x48] str r0, [sp, #0x264] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x54] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x84] mov r0, #0x0 str r0, [sp, #0x268] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _020199D2 ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x80] _02019902: ldr r0, [sp, #0x25c] ldr r1, [sp, #0x84] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x258] ldr r0, [sp, #0x268] ldr r6, [sp, #0x80] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x260] add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x264] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x264] str r6, [sp, #0x7c] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x80] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x78] str r0, [sp, #0x74] _0201994C: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x7c] str r5, [sp, #0x288] add r0, r5, r0 ldr r5, [sp, #0x258] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _020199A0 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x28c] ldrb r5, [r0, r7] str r5, [sp, #0x290] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x290] and r6, r5 ldr r5, [sp, #0x28c] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x260] cmp r0, #0x0 beq _020199A0 ldr r6, [sp, #0x288] ldr r0, [sp, #0x78] add r6, r6, r0 ldr r0, [sp, #0x74] strb r5, [r0, r6] _020199A0: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _0201994C ldr r0, [sp, #0x260] cmp r0, #0x0 beq _020199BA ldr r0, [sp, #0x264] add r0, r0, #0x2 str r0, [sp, #0x264] b _020199C0 _020199BA: ldr r0, [sp, #0x264] add r0, r0, #0x1 str r0, [sp, #0x264] _020199C0: ldr r0, [sp, #0x25c] add r0, r0, #0x4 str r0, [sp, #0x25c] ldr r0, [sp, #0x268] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x268] cmp r1, r0 blt _02019902 _020199D2: ldr r0, [sp, #0x0] add r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x54] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x98] mov r0, #0x0 str r0, [sp, #0x254] ldr r0, [sp, #0x4] cmp r0, #0x0 bgt _020199EE bl FUN_0201A8BC _020199EE: ldr r0, [sp, #0x5c] mov r1, #0x7 add r0, #0x8 str r0, [sp, #0x5c] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x94] _02019A00: ldr r0, [sp, #0x0] ldr r1, [sp, #0x98] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x24c] ldr r0, [sp, #0x254] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x250] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x294] sub r0, #0x8 str r0, [sp, #0x294] cmp r0, #0x0 ble _02019ABA ble _02019ABA add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x94] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0x90] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x94] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x8c] str r0, [sp, #0x88] _02019A58: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x90] str r5, [sp, #0x298] add r0, r5, r0 ldr r5, [sp, #0x24c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019AAC lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x29c] ldrb r5, [r0, r7] str r5, [sp, #0x2a0] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2a0] and r6, r5 ldr r5, [sp, #0x29c] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x250] cmp r0, #0x0 beq _02019AAC ldr r6, [sp, #0x298] ldr r0, [sp, #0x8c] add r6, r6, r0 ldr r0, [sp, #0x88] strb r5, [r0, r6] _02019AAC: ldr r0, [sp, #0x294] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019A58 _02019ABA: ldr r0, [sp, #0x250] cmp r0, #0x0 beq _02019AC8 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _02019ACE _02019AC8: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019ACE: ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x254] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x254] cmp r1, r0 blt _02019A00 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _02019AE6: ldr r0, [sp, #0x0] mov r1, #0x7 str r0, [sp, #0x23c] ldr r0, [sp, #0x48] str r0, [sp, #0x244] mov r0, #0x0 str r0, [sp, #0x248] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xa8] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x40] _02019B06: ldr r0, [sp, #0x23c] ldr r1, [sp, #0xa8] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x238] ldr r0, [sp, #0x248] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x240] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _02019BC2 ble _02019BC2 add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x244] ldr r6, [sp, #0x40] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x244] str r6, [sp, #0xa4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x40] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xa0] str r0, [sp, #0x9c] _02019B58: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 b _02019B6C nop _02019B68: .word 0x00003FE0 _02019B6C: and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xa4] str r5, [sp, #0x2a4] add r0, r5, r0 ldr r5, [sp, #0x238] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019BB4 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2a8] ldrb r5, [r0, r7] str r5, [sp, #0x2ac] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2ac] and r6, r5 ldr r5, [sp, #0x2a8] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x240] cmp r0, #0x0 beq _02019BB4 ldr r6, [sp, #0x2a4] ldr r0, [sp, #0xa0] add r6, r6, r0 ldr r0, [sp, #0x9c] strb r5, [r0, r6] _02019BB4: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019B58 _02019BC2: ldr r0, [sp, #0x240] cmp r0, #0x0 beq _02019BD0 ldr r0, [sp, #0x244] add r0, r0, #0x2 str r0, [sp, #0x244] b _02019BD6 _02019BD0: ldr r0, [sp, #0x244] add r0, r0, #0x1 str r0, [sp, #0x244] _02019BD6: ldr r0, [sp, #0x23c] add r0, r0, #0x4 str r0, [sp, #0x23c] ldr r0, [sp, #0x248] add r0, r0, #0x1 str r0, [sp, #0x248] cmp r0, #0x8 blt _02019B06 ldr r0, [sp, #0x0] mov r2, #0x0 add r0, #0x40 str r0, [sp, #0x0] ldr r0, [sp, #0x48] mov r1, #0x1 add r0, #0x8 str r0, [sp, #0x48] _02019BF6: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _02019C04 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019C04: add r2, r2, #0x1 cmp r2, #0x8 blt _02019BF6 ldr r0, [sp, #0x330] asr r0, r0, #0x8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xb8] mov r0, #0x0 str r0, [sp, #0x20] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 bgt _02019C24 bl FUN_0201A8BC _02019C24: ldr r0, [sp, #0x0] ldr r1, [sp, #0xb8] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x230] ldr r0, [sp, #0x20] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x234] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _02019CD8 ble _02019CD8 add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x40] lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0xb4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x40] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xb0] str r0, [sp, #0xac] _02019C76: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xb4] str r5, [sp, #0x2b0] add r0, r5, r0 ldr r5, [sp, #0x230] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019CCA lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2b4] ldrb r5, [r0, r7] str r5, [sp, #0x2b8] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2b8] and r6, r5 ldr r5, [sp, #0x2b4] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x234] cmp r0, #0x0 beq _02019CCA ldr r6, [sp, #0x2b0] ldr r0, [sp, #0xb0] add r6, r6, r0 ldr r0, [sp, #0xac] strb r5, [r0, r6] _02019CCA: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019C76 _02019CD8: ldr r0, [sp, #0x234] cmp r0, #0x0 beq _02019CE6 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _02019CEC _02019CE6: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019CEC: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x20] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x20] cmp r0, r1 blt _02019C24 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _02019D06: ldr r0, [sp, #0x0] str r0, [sp, #0x220] ldr r0, [sp, #0x48] str r0, [sp, #0x228] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x0 str r0, [sp, #0x22c] lsl r0, r1, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x3c] ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x38] _02019D2A: ldr r0, [sp, #0x220] ldr r1, [sp, #0x3c] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x21c] ldr r0, [sp, #0x22c] ldr r6, [sp, #0x38] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x224] add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x228] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x228] str r6, [sp, #0xc4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 str r3, [sp, #0x34] add r4, r1, #0x0 str r5, [sp, #0xc0] str r0, [sp, #0xbc] _02019D76: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xc4] str r5, [sp, #0x2bc] add r0, r5, r0 ldr r5, [sp, #0x21c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019DCA lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2c0] ldrb r5, [r0, r7] str r5, [sp, #0x2c4] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2c4] and r6, r5 ldr r5, [sp, #0x2c0] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x224] cmp r0, #0x0 beq _02019DCA ldr r6, [sp, #0x2bc] ldr r0, [sp, #0xc0] add r6, r6, r0 ldr r0, [sp, #0xbc] strb r5, [r0, r6] _02019DCA: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _02019D76 ldr r0, [sp, #0x224] cmp r0, #0x0 beq _02019DE4 ldr r0, [sp, #0x228] add r0, r0, #0x2 str r0, [sp, #0x228] b _02019DEA _02019DE4: ldr r0, [sp, #0x228] add r0, r0, #0x1 str r0, [sp, #0x228] _02019DEA: ldr r0, [sp, #0x220] add r0, r0, #0x4 str r0, [sp, #0x220] ldr r0, [sp, #0x22c] add r0, r0, #0x1 str r0, [sp, #0x22c] cmp r0, #0x8 blt _02019D2A ldr r0, [sp, #0x0] str r0, [sp, #0x20c] add r0, #0x20 str r0, [sp, #0x20c] ldr r0, [sp, #0x48] str r0, [sp, #0x214] mov r0, #0x0 str r0, [sp, #0x218] ldr r0, [sp, #0x5c] str r0, [sp, #0xd4] add r0, #0x8 str r0, [sp, #0xd4] _02019E12: ldr r0, [sp, #0x20c] ldr r1, [sp, #0x3c] ldr r0, [r0, #0x0] ldr r2, [sp, #0xd4] str r0, [sp, #0x208] ldr r0, [sp, #0x218] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x210] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x2c8] sub r0, #0x8 str r0, [sp, #0x2c8] cmp r0, #0x0 ble _02019ECC ble _02019ECC add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x214] ldr r6, [sp, #0x38] lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x214] str r6, [sp, #0xd0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xcc] str r0, [sp, #0xc8] _02019E6A: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xd0] str r5, [sp, #0x2cc] add r0, r5, r0 ldr r5, [sp, #0x208] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019EBE lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2d0] ldrb r5, [r0, r7] str r5, [sp, #0x2d4] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2d4] and r6, r5 ldr r5, [sp, #0x2d0] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x210] cmp r0, #0x0 beq _02019EBE ldr r6, [sp, #0x2cc] ldr r0, [sp, #0xcc] add r6, r6, r0 ldr r0, [sp, #0xc8] strb r5, [r0, r6] _02019EBE: ldr r0, [sp, #0x2c8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019E6A _02019ECC: ldr r0, [sp, #0x210] cmp r0, #0x0 beq _02019EDA ldr r0, [sp, #0x214] add r0, r0, #0x2 str r0, [sp, #0x214] b _02019EE0 _02019EDA: ldr r0, [sp, #0x214] add r0, r0, #0x1 str r0, [sp, #0x214] _02019EE0: ldr r0, [sp, #0x20c] add r0, r0, #0x4 str r0, [sp, #0x20c] ldr r0, [sp, #0x218] add r0, r0, #0x1 str r0, [sp, #0x218] cmp r0, #0x8 blt _02019E12 ldr r0, [sp, #0x0] mov r2, #0x0 str r0, [sp, #0x1fc] add r0, #0x40 str r0, [sp, #0x1fc] ldr r0, [sp, #0x48] mov r1, #0x1 add r0, #0x8 str r0, [sp, #0x48] str r0, [sp, #0x204] _02019F04: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _02019F12 ldr r0, [sp, #0x204] add r0, r0, #0x1 str r0, [sp, #0x204] _02019F12: add r2, r2, #0x1 cmp r2, #0x8 blt _02019F04 ldr r0, [sp, #0x330] asr r0, r0, #0x8 str r0, [sp, #0x50] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xe4] mov r0, #0x0 str r0, [sp, #0x1c] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A008 _02019F30: ldr r0, [sp, #0x1fc] ldr r1, [sp, #0xe4] ldr r0, [r0, #0x0] ldr r6, [sp, #0x38] str r0, [sp, #0x1f8] ldr r0, [sp, #0x1c] ldr r2, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x200] ldr r0, [sp, #0x204] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x204] str r6, [sp, #0xe0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 ldr r3, [sp, #0x34] add r4, r1, #0x0 str r5, [sp, #0xdc] str r0, [sp, #0xd8] _02019F78: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 b _02019F8C nop _02019F88: .word 0x00003FE0 _02019F8C: and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xe0] str r5, [sp, #0x2d8] add r0, r5, r0 ldr r5, [sp, #0x1f8] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019FD4 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2dc] ldrb r5, [r0, r7] str r5, [sp, #0x2e0] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2e0] and r6, r5 ldr r5, [sp, #0x2dc] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x200] cmp r0, #0x0 beq _02019FD4 ldr r6, [sp, #0x2d8] ldr r0, [sp, #0xdc] add r6, r6, r0 ldr r0, [sp, #0xd8] strb r5, [r0, r6] _02019FD4: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _02019F78 ldr r0, [sp, #0x200] cmp r0, #0x0 beq _02019FEE ldr r0, [sp, #0x204] add r0, r0, #0x2 str r0, [sp, #0x204] b _02019FF4 _02019FEE: ldr r0, [sp, #0x204] add r0, r0, #0x1 str r0, [sp, #0x204] _02019FF4: ldr r0, [sp, #0x1fc] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x1fc] ldr r0, [sp, #0x1c] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1c] cmp r0, r1 blt _02019F30 _0201A008: ldr r0, [sp, #0x0] mov r2, #0x0 add r0, #0x60 str r0, [sp, #0x0] mov r1, #0x1 _0201A012: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _0201A020 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A020: add r2, r2, #0x1 cmp r2, #0x8 blt _0201A012 ldr r0, [sp, #0x50] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xf4] mov r0, #0x0 str r0, [sp, #0x18] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 bgt _0201A03E bl FUN_0201A8BC _0201A03E: ldr r0, [sp, #0x5c] add r0, #0x8 str r0, [sp, #0x5c] _0201A044: ldr r0, [sp, #0x0] ldr r1, [sp, #0xf4] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x1f0] ldr r0, [sp, #0x18] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1f4] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x2e4] sub r0, #0x8 str r0, [sp, #0x2e4] cmp r0, #0x0 ble _0201A0FE ble _0201A0FE add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x38] lsl r5, r0, #0x2 ldr r0, _0201A3A8 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0xf0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _0201A3A8 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xec] str r0, [sp, #0xe8] _0201A09C: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _0201A3A8 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xf0] str r5, [sp, #0x2e8] add r0, r5, r0 ldr r5, [sp, #0x1f0] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _0201A0F0 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2ec] ldrb r5, [r0, r7] mov r12, r5 mov r5, #0xf0 asr r5, r6 mov r6, r12 and r6, r5 ldr r5, [sp, #0x2ec] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x1f4] cmp r0, #0x0 beq _0201A0F0 ldr r6, [sp, #0x2e8] ldr r0, [sp, #0xec] add r6, r6, r0 ldr r0, [sp, #0xe8] strb r5, [r0, r6] _0201A0F0: ldr r0, [sp, #0x2e4] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _0201A09C _0201A0FE: ldr r0, [sp, #0x1f4] cmp r0, #0x0 beq _0201A10C ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A112 _0201A10C: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A112: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x18] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x18] cmp r0, r1 blt _0201A044 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} thumb_func_start FUN_0201A12C FUN_0201A12C: ; 0x0201A12C lsl r1, r2, #0x2 mul r1, r3 ldr r3, [r5, #0x0] ldrb r2, [r5, #0x9] ldr r0, [sp, #0x0] ldr r3, [r3, #0x0] lsl r1, r1, #0x3 bl FUN_02018848 str r0, [sp, #0x1ec] cmp r4, #0x3 bhi _0201A21E add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201A150: ; jump table (using 16-bit offset) .short _0201A158 - _0201A150 - 2; case 0 .short _0201A220 - _0201A150 - 2; case 1 .short _0201A3CA - _0201A150 - 2; case 2 .short _0201A56E - _0201A150 - 2; case 3 _0201A158: ldr r0, [sp, #0x330] ldr r7, [sp, #0x1ec] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10c] mov r0, #0x0 str r0, [sp, #0x1e8] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A21E ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x108] _0201A178: ldr r1, [sp, #0x10c] ldr r0, [sp, #0x1e8] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x310] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A1FC ble _0201A1FC add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x108] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x100] ldr r0, [sp, #0x48] str r2, [sp, #0x104] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x108] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0xfc] str r0, [sp, #0xf8] _0201A1C4: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x104] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A1F0 ldr r0, [sp, #0x100] strb r1, [r2, r0] ldr r0, [sp, #0x310] cmp r0, #0x0 beq _0201A1F0 ldr r0, [sp, #0xfc] add r2, r3, r0 ldr r0, [sp, #0xf8] strb r1, [r0, r2] _0201A1F0: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A1C4 _0201A1FC: ldr r0, [sp, #0x310] cmp r0, #0x0 beq _0201A20A ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A210 _0201A20A: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A210: ldr r0, [sp, #0x1e8] add r7, #0x8 add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1e8] cmp r1, r0 blt _0201A178 _0201A21E: b _0201A8B6 _0201A220: ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] str r0, [sp, #0x1e0] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x124] mov r0, #0x0 str r0, [sp, #0x1e4] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A2E6 ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x120] _0201A24A: ldr r1, [sp, #0x124] ldr r0, [sp, #0x1e4] ldr r5, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x30c] add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1e0] ldr r2, [sp, #0x120] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x118] ldr r0, [sp, #0x1e0] str r2, [sp, #0x11c] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x120] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 mov r4, #0x0 str r2, [sp, #0x114] str r0, [sp, #0x110] _0201A28E: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x11c] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A2BA ldr r0, [sp, #0x118] strb r1, [r2, r0] ldr r0, [sp, #0x30c] cmp r0, #0x0 beq _0201A2BA ldr r0, [sp, #0x114] add r2, r3, r0 ldr r0, [sp, #0x110] strb r1, [r0, r2] _0201A2BA: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A28E ldr r0, [sp, #0x30c] cmp r0, #0x0 beq _0201A2D2 ldr r0, [sp, #0x1e0] add r0, r0, #0x2 str r0, [sp, #0x1e0] b _0201A2D8 _0201A2D2: ldr r0, [sp, #0x1e0] add r0, r0, #0x1 str r0, [sp, #0x1e0] _0201A2D8: ldr r0, [sp, #0x1e4] add r7, #0x8 add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1e4] cmp r1, r0 blt _0201A24A _0201A2E6: ldr r0, [sp, #0x1ec] str r0, [sp, #0x308] add r0, #0x40 str r0, [sp, #0x308] ldr r0, [sp, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x13c] mov r0, #0x0 str r0, [sp, #0x1dc] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A3C8 ldr r0, [sp, #0x5c] mov r1, #0x7 add r0, #0x8 str r0, [sp, #0x5c] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x138] _0201A312: ldr r1, [sp, #0x13c] ldr r0, [sp, #0x1dc] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1d8] ldr r5, [sp, #0x5c] cmp r7, #0x0 ble _0201A398 ble _0201A398 add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x138] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x130] ldr r0, [sp, #0x48] str r2, [sp, #0x134] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x138] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x12c] str r0, [sp, #0x128] _0201A360: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x134] add r2, r3, r0 ldr r0, [sp, #0x308] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A38E ldr r0, [sp, #0x130] strb r1, [r2, r0] ldr r0, [sp, #0x1d8] cmp r0, #0x0 beq _0201A38E ldr r0, [sp, #0x12c] add r2, r3, r0 ldr r0, [sp, #0x128] strb r1, [r0, r2] _0201A38E: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A360 _0201A398: ldr r0, [sp, #0x1d8] cmp r0, #0x0 beq _0201A3B0 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A3B6 nop _0201A3A8: .word 0x00003FE0 _0201A3AC: .word 0x00007FC0 _0201A3B0: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A3B6: ldr r0, [sp, #0x308] add r0, #0x8 str r0, [sp, #0x308] ldr r0, [sp, #0x1dc] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1dc] cmp r1, r0 blt _0201A312 _0201A3C8: b _0201A8B6 _0201A3CA: ldr r0, [sp, #0x48] mov r1, #0x7 str r0, [sp, #0x1d0] mov r0, #0x0 str r0, [sp, #0x1d4] ldr r0, [sp, #0x330] ldr r7, [sp, #0x1ec] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x150] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x30] _0201A3E8: ldr r1, [sp, #0x150] ldr r0, [sp, #0x1d4] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x304] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A46C ble _0201A46C add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1d0] ldr r2, [sp, #0x30] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x148] ldr r0, [sp, #0x1d0] str r2, [sp, #0x14c] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x30] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x144] str r0, [sp, #0x140] _0201A434: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x14c] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A460 ldr r0, [sp, #0x148] strb r1, [r2, r0] ldr r0, [sp, #0x304] cmp r0, #0x0 beq _0201A460 ldr r0, [sp, #0x144] add r2, r3, r0 ldr r0, [sp, #0x140] strb r1, [r0, r2] _0201A460: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A434 _0201A46C: ldr r0, [sp, #0x304] cmp r0, #0x0 beq _0201A47A ldr r0, [sp, #0x1d0] add r0, r0, #0x2 str r0, [sp, #0x1d0] b _0201A480 _0201A47A: ldr r0, [sp, #0x1d0] add r0, r0, #0x1 str r0, [sp, #0x1d0] _0201A480: ldr r0, [sp, #0x1d4] add r7, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1d4] cmp r0, #0x8 blt _0201A3E8 ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] add r0, #0x8 str r0, [sp, #0x48] add r7, #0x80 mov r0, #0x0 mov r2, #0x1 _0201A49A: ldr r1, [sp, #0x330] asr r1, r0 tst r1, r2 beq _0201A4A8 ldr r1, [sp, #0x48] add r1, r1, #0x1 str r1, [sp, #0x48] _0201A4A8: add r0, r0, #0x1 cmp r0, #0x8 blt _0201A49A ldr r0, [sp, #0x330] asr r0, r0, #0x8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x164] mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A56C _0201A4C4: ldr r1, [sp, #0x164] ldr r0, [sp, #0x14] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x300] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A548 ble _0201A548 add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x30] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x15c] ldr r0, [sp, #0x48] str r2, [sp, #0x160] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x30] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x158] str r0, [sp, #0x154] _0201A510: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x160] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A53C ldr r0, [sp, #0x15c] strb r1, [r2, r0] ldr r0, [sp, #0x300] cmp r0, #0x0 beq _0201A53C ldr r0, [sp, #0x158] add r2, r3, r0 ldr r0, [sp, #0x154] strb r1, [r0, r2] _0201A53C: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A510 _0201A548: ldr r0, [sp, #0x300] cmp r0, #0x0 beq _0201A556 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A55C _0201A556: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A55C: ldr r0, [sp, #0x14] ldr r1, [sp, #0x4] add r0, r0, #0x1 sub r1, #0x8 add r7, #0x8 str r0, [sp, #0x14] cmp r0, r1 blt _0201A4C4 _0201A56C: b _0201A8B6 _0201A56E: ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] str r0, [sp, #0x1c8] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x0 str r0, [sp, #0x1cc] lsl r0, r1, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2c] ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x28] _0201A590: ldr r1, [sp, #0x2c] ldr r0, [sp, #0x1cc] ldr r5, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2fc] add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1c8] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x170] ldr r0, [sp, #0x1c8] str r2, [sp, #0x174] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 mov r4, #0x0 str r6, [sp, #0x24] str r2, [sp, #0x16c] str r0, [sp, #0x168] _0201A5D6: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x174] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A602 ldr r0, [sp, #0x170] strb r1, [r2, r0] ldr r0, [sp, #0x2fc] cmp r0, #0x0 beq _0201A602 ldr r0, [sp, #0x16c] add r2, r3, r0 ldr r0, [sp, #0x168] strb r1, [r0, r2] _0201A602: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A5D6 ldr r0, [sp, #0x2fc] cmp r0, #0x0 beq _0201A61A ldr r0, [sp, #0x1c8] add r0, r0, #0x2 str r0, [sp, #0x1c8] b _0201A620 _0201A61A: ldr r0, [sp, #0x1c8] add r0, r0, #0x1 str r0, [sp, #0x1c8] _0201A620: ldr r0, [sp, #0x1cc] add r7, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1cc] cmp r0, #0x8 blt _0201A590 ldr r0, [sp, #0x1ec] str r0, [sp, #0x2f8] add r0, #0x40 str r0, [sp, #0x2f8] ldr r0, [sp, #0x48] str r0, [sp, #0x1c0] mov r0, #0x0 str r0, [sp, #0x1c4] ldr r0, [sp, #0x5c] str r0, [sp, #0x188] add r0, #0x8 str r0, [sp, #0x188] _0201A644: ldr r1, [sp, #0x2c] ldr r0, [sp, #0x1c4] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1bc] ldr r5, [sp, #0x188] cmp r7, #0x0 ble _0201A6CA ble _0201A6CA add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1c0] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x180] ldr r0, [sp, #0x1c0] str r2, [sp, #0x184] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x17c] str r0, [sp, #0x178] _0201A692: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x184] add r2, r3, r0 ldr r0, [sp, #0x2f8] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A6C0 ldr r0, [sp, #0x180] strb r1, [r2, r0] ldr r0, [sp, #0x1bc] cmp r0, #0x0 beq _0201A6C0 ldr r0, [sp, #0x17c] add r2, r3, r0 ldr r0, [sp, #0x178] strb r1, [r0, r2] _0201A6C0: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A692 _0201A6CA: ldr r0, [sp, #0x1bc] cmp r0, #0x0 beq _0201A6D8 ldr r0, [sp, #0x1c0] add r0, r0, #0x2 str r0, [sp, #0x1c0] b _0201A6DE _0201A6D8: ldr r0, [sp, #0x1c0] add r0, r0, #0x1 str r0, [sp, #0x1c0] _0201A6DE: ldr r0, [sp, #0x2f8] add r0, #0x8 str r0, [sp, #0x2f8] ldr r0, [sp, #0x1c4] add r0, r0, #0x1 str r0, [sp, #0x1c4] cmp r0, #0x8 blt _0201A644 ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] add r0, #0x8 add r7, #0x80 str r0, [sp, #0x48] str r0, [sp, #0x1b8] mov r0, #0x0 mov r2, #0x1 _0201A6FE: ldr r1, [sp, #0x330] asr r1, r0 tst r1, r2 beq _0201A70C ldr r1, [sp, #0x1b8] add r1, r1, #0x1 str r1, [sp, #0x1b8] _0201A70C: add r0, r0, #0x1 cmp r0, #0x8 blt _0201A6FE ldr r0, [sp, #0x330] asr r0, r0, #0x8 str r0, [sp, #0x44] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x19c] mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A7CE _0201A72A: ldr r1, [sp, #0x19c] ldr r0, [sp, #0x10] ldr r2, [sp, #0x28] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2f4] ldr r0, [sp, #0x1b8] mov r3, #0x38 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 b _0201A74C nop _0201A748: .word 0x00007FC0 _0201A74C: ldr r5, [sp, #0x5c] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x194] ldr r0, [sp, #0x1b8] str r2, [sp, #0x198] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 ldr r6, [sp, #0x24] mov r4, #0x0 str r2, [sp, #0x190] str r0, [sp, #0x18c] _0201A774: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A8C4 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x198] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A7A0 ldr r0, [sp, #0x194] strb r1, [r2, r0] ldr r0, [sp, #0x2f4] cmp r0, #0x0 beq _0201A7A0 ldr r0, [sp, #0x190] add r2, r3, r0 ldr r0, [sp, #0x18c] strb r1, [r0, r2] _0201A7A0: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A774 ldr r0, [sp, #0x2f4] cmp r0, #0x0 beq _0201A7B8 ldr r0, [sp, #0x1b8] add r0, r0, #0x2 str r0, [sp, #0x1b8] b _0201A7BE _0201A7B8: ldr r0, [sp, #0x1b8] add r0, r0, #0x1 str r0, [sp, #0x1b8] _0201A7BE: ldr r0, [sp, #0x10] ldr r1, [sp, #0x4] add r0, r0, #0x1 sub r1, #0x8 add r7, #0x8 str r0, [sp, #0x10] cmp r0, r1 blt _0201A72A _0201A7CE: ldr r0, [sp, #0x1ec] mov r2, #0x0 str r0, [sp, #0x2f0] add r0, #0xc0 str r0, [sp, #0x2f0] mov r1, #0x1 _0201A7DA: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _0201A7E8 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A7E8: add r2, r2, #0x1 cmp r2, #0x8 blt _0201A7DA ldr r0, [sp, #0x44] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1b0] mov r0, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A8B6 ldr r0, [sp, #0x5c] add r0, #0x8 str r0, [sp, #0x5c] _0201A808: ldr r1, [sp, #0x1b0] ldr r0, [sp, #0xc] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1b4] ldr r5, [sp, #0x5c] cmp r7, #0x0 ble _0201A88E ble _0201A88E add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x1a8] ldr r0, [sp, #0x48] str r2, [sp, #0x1ac] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x1a4] str r0, [sp, #0x1a0] _0201A856: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A8C4 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x1ac] add r2, r3, r0 ldr r0, [sp, #0x2f0] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A884 ldr r0, [sp, #0x1a8] strb r1, [r2, r0] ldr r0, [sp, #0x1b4] cmp r0, #0x0 beq _0201A884 ldr r0, [sp, #0x1a4] add r2, r3, r0 ldr r0, [sp, #0x1a0] strb r1, [r0, r2] _0201A884: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A856 _0201A88E: ldr r0, [sp, #0x1b4] cmp r0, #0x0 beq _0201A89C ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A8A2 _0201A89C: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A8A2: ldr r0, [sp, #0x2f0] ldr r1, [sp, #0x4] add r0, #0x8 str r0, [sp, #0x2f0] ldr r0, [sp, #0xc] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0xc] cmp r0, r1 blt _0201A808 _0201A8B6: ldr r0, [sp, #0x1ec] bl FUN_02016A18 thumb_func_start FUN_0201A8BC FUN_0201A8BC: ; 0x0201A8BC add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} nop _0201A8C4: .word 0x00007FC0 thumb_func_start FUN_0201A8C8 FUN_0201A8C8: ; 0x0201A8C8 push {r4-r6, lr} ldrb r6, [r0, #0x4] mov r5, #0x2c ldr r4, [r0, #0x0] mul r5, r6 add r4, r4, r5 ldrb r4, [r4, #0x1e] cmp r4, #0x0 bne _0201A8E0 bl FUN_0201A8E8 pop {r4-r6, pc} _0201A8E0: bl FUN_0201A9D4 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201A8E8 FUN_0201A8E8: ; 0x0201A8E8 push {r3-r7, lr} sub sp, #0x10 add r6, r3, #0x0 add r4, r0, #0x0 add r0, r1, #0x0 lsl r3, r6, #0x18 lsl r1, r6, #0x10 str r2, [sp, #0x0] orr r1, r3 lsl r5, r6, #0x8 orr r1, r5 orr r1, r6 str r1, [sp, #0x4] ldrb r1, [r4, #0x7] ldrb r3, [r4, #0x8] ldr r2, [r4, #0xc] str r1, [sp, #0x8] mul r1, r3 lsl r1, r1, #0x5 str r1, [sp, #0xc] cmp r0, #0x3 bhi _0201A9CE add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201A920: ; jump table (using 16-bit offset) .short _0201A928 - _0201A920 - 2; case 0 .short _0201A976 - _0201A920 - 2; case 1 .short _0201A9CE - _0201A920 - 2; case 2 .short _0201A9CE - _0201A920 - 2; case 3 _0201A928: add r0, r1, #0x0 mov r7, #0x0 cmp r0, #0x0 ble _0201A9CE mov r0, #0x7 mov lr, r0 _0201A934: ldr r3, [sp, #0x0] mov r4, #0x0 add r5, r7, #0x0 _0201A93A: mov r0, #0x7 add r6, r3, #0x0 and r6, r0 add r1, r3, #0x0 mov r0, lr bic r1, r0 ldr r0, [sp, #0x8] mul r1, r0 add r0, r6, #0x0 orr r0, r1 lsl r0, r0, #0x2 add r1, r7, r0 ldr r0, [sp, #0xc] cmp r1, r0 bge _0201A95C ldr r0, [r2, r1] b _0201A95E _0201A95C: ldr r0, [sp, #0x4] _0201A95E: add r4, r4, #0x1 str r0, [r2, r5] add r3, r3, #0x1 add r5, r5, #0x4 cmp r4, #0x8 blt _0201A93A ldr r0, [sp, #0xc] add r7, #0x20 cmp r7, r0 blt _0201A934 add sp, #0x10 pop {r3-r7, pc} _0201A976: add r0, r1, #0x0 sub r0, r0, #0x4 add r2, r2, r0 add r0, r1, #0x0 mov r7, #0x0 cmp r0, #0x0 ble _0201A9CE mov r0, #0x7 mov r12, r0 _0201A988: ldr r4, [sp, #0x0] mov r5, #0x0 add r3, r7, #0x0 _0201A98E: mov r0, #0x7 add r6, r4, #0x0 and r6, r0 add r1, r4, #0x0 mov r0, r12 bic r1, r0 ldr r0, [sp, #0x8] mul r1, r0 add r0, r6, #0x0 orr r0, r1 lsl r0, r0, #0x2 add r1, r7, r0 ldr r0, [sp, #0xc] cmp r1, r0 bge _0201A9B6 sub r0, r2, r1 ldr r1, [r0, #0x0] sub r0, r2, r3 str r1, [r0, #0x0] b _0201A9BC _0201A9B6: ldr r0, [sp, #0x4] sub r1, r2, r3 str r0, [r1, #0x0] _0201A9BC: add r5, r5, #0x1 add r4, r4, #0x1 add r3, r3, #0x4 cmp r5, #0x8 blt _0201A98E ldr r0, [sp, #0xc] add r7, #0x20 cmp r7, r0 blt _0201A988 _0201A9CE: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201A9D4 FUN_0201A9D4: ; 0x0201A9D4 push {r3-r7, lr} sub sp, #0x20 add r6, r3, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] lsl r2, r6, #0x18 lsl r0, r6, #0x10 orr r0, r2 ldrb r2, [r4, #0x7] ldr r3, [r4, #0xc] lsl r5, r6, #0x8 orr r0, r5 ldrb r4, [r4, #0x8] str r2, [sp, #0x10] orr r0, r6 mul r2, r4 lsl r2, r2, #0x6 str r2, [sp, #0x1c] cmp r1, #0x3 bls _0201A9FE b _0201AB04 _0201A9FE: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201AA0A: ; jump table (using 16-bit offset) .short _0201AA12 - _0201AA0A - 2; case 0 .short _0201AA80 - _0201AA0A - 2; case 1 .short _0201AB04 - _0201AA0A - 2; case 2 .short _0201AB04 - _0201AA0A - 2; case 3 _0201AA12: mov r1, #0x0 str r1, [sp, #0xc] add r1, r2, #0x0 cmp r1, #0x0 ble _0201AB04 add r1, r1, #0x4 str r1, [sp, #0x14] mov r1, #0x7 mov lr, r1 _0201AA24: ldr r4, [sp, #0x0] ldr r5, [sp, #0xc] mov r7, #0x0 _0201AA2A: mov r1, #0x7 add r6, r4, #0x0 and r6, r1 add r2, r4, #0x0 mov r1, lr bic r2, r1 ldr r1, [sp, #0x10] mul r2, r1 add r1, r6, #0x0 orr r1, r2 lsl r2, r1, #0x3 ldr r1, [sp, #0xc] add r1, r1, r2 ldr r2, [sp, #0x1c] cmp r1, r2 bge _0201AA50 ldr r2, [r3, r1] str r2, [r3, r5] b _0201AA52 _0201AA50: str r0, [r3, r5] _0201AA52: add r2, r1, #0x4 ldr r1, [sp, #0x14] cmp r2, r1 bge _0201AA62 ldr r2, [r3, r2] add r1, r5, #0x4 str r2, [r3, r1] b _0201AA66 _0201AA62: add r1, r5, #0x4 str r0, [r3, r1] _0201AA66: add r7, r7, #0x1 add r4, r4, #0x1 add r5, #0x8 cmp r7, #0x8 blt _0201AA2A ldr r2, [sp, #0xc] ldr r1, [sp, #0x1c] add r2, #0x40 str r2, [sp, #0xc] cmp r2, r1 blt _0201AA24 add sp, #0x20 pop {r3-r7, pc} _0201AA80: add r1, r2, #0x0 sub r1, #0x8 add r3, r3, r1 mov r1, #0x0 str r1, [sp, #0x8] add r1, r2, #0x0 cmp r1, #0x0 ble _0201AB04 _0201AA90: mov r1, #0x0 str r1, [sp, #0x4] ldr r1, [sp, #0x1c] ldr r5, [sp, #0x0] sub r1, r1, #0x4 str r1, [sp, #0x18] mov r1, #0x7 ldr r4, [sp, #0x8] mov r12, r1 _0201AAA2: mov r1, #0x7 add r6, r5, #0x0 and r6, r1 add r2, r5, #0x0 mov r1, r12 bic r2, r1 ldr r1, [sp, #0x10] mul r2, r1 add r1, r6, #0x0 orr r1, r2 lsl r2, r1, #0x3 ldr r1, [sp, #0x8] add r6, r1, r2 ldr r1, [sp, #0x1c] cmp r6, r1 bge _0201AACC sub r1, r3, r6 ldr r2, [r1, #0x0] sub r1, r3, r4 str r2, [r1, #0x0] b _0201AAD0 _0201AACC: sub r1, r3, r4 str r0, [r1, #0x0] _0201AAD0: ldr r1, [sp, #0x18] sub r2, r6, #0x4 cmp r2, r1 bge _0201AAE4 sub r1, r3, r2 sub r2, r4, #0x4 ldr r1, [r1, #0x0] sub r2, r3, r2 str r1, [r2, #0x0] b _0201AAEA _0201AAE4: sub r1, r4, #0x4 sub r1, r3, r1 str r0, [r1, #0x0] _0201AAEA: ldr r1, [sp, #0x4] add r5, r5, #0x1 add r1, r1, #0x1 add r4, #0x8 str r1, [sp, #0x4] cmp r1, #0x8 blt _0201AAA2 ldr r2, [sp, #0x8] ldr r1, [sp, #0x1c] add r2, #0x40 str r2, [sp, #0x8] cmp r2, r1 blt _0201AA90 _0201AB04: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_0201AB08 FUN_0201AB08: ; 0x0201AB08 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_0201AB0C FUN_0201AB0C: ; 0x0201AB0C ldrb r0, [r0, #0x7] bx lr thumb_func_start FUN_0201AB10 FUN_0201AB10: ; 0x0201AB10 ldrb r0, [r0, #0x8] bx lr thumb_func_start FUN_0201AB14 FUN_0201AB14: ; 0x0201AB14 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_0201AB18 FUN_0201AB18: ; 0x0201AB18 ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_0201AB1C FUN_0201AB1C: ; 0x0201AB1C strb r1, [r0, #0x5] bx lr thumb_func_start FUN_0201AB20 FUN_0201AB20: ; 0x0201AB20 strb r1, [r0, #0x6] bx lr thumb_func_start FUN_0201AB24 FUN_0201AB24: ; 0x0201AB24 strb r1, [r0, #0x9] bx lr thumb_func_start FUN_0201AB28 FUN_0201AB28: ; 0x0201AB28 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] blx FUN_020B0030 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0201AB44 FUN_0201AB44: ; 0x0201AB44 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] blx FUN_020B0138 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0201AB60 FUN_0201AB60: ; 0x0201AB60 push {r4, lr} add r4, r0, #0x0 bl FUN_0201AC78 add r0, r4, #0x0 bl FUN_0201AB78 mov r0, #0x0 strh r0, [r4, #0x4] strh r0, [r4, #0x6] pop {r4, pc} .balign 4 thumb_func_start FUN_0201AB78 FUN_0201AB78: ; 0x0201AB78 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x6] mov r0, #0x1 tst r0, r1 beq _0201AB92 ldr r2, [r4, #0x10] ldr r1, [r4, #0x8] ldr r3, [r4, #0xc] mov r0, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AB92: ldrh r1, [r4, #0x6] mov r0, #0x2 tst r0, r1 beq _0201ABA8 ldr r2, [r4, #0x3c] ldr r1, [r4, #0x34] ldr r3, [r4, #0x38] mov r0, #0x1 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABA8: ldrh r1, [r4, #0x6] mov r0, #0x4 tst r0, r1 beq _0201ABBE ldr r2, [r4, #0x68] ldr r1, [r4, #0x60] ldr r3, [r4, #0x64] mov r0, #0x2 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABBE: ldrh r1, [r4, #0x6] mov r0, #0x8 tst r0, r1 beq _0201ABE0 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0x94 add r3, r4, #0x0 add r1, #0x8c ldr r2, [r2, #0x0] add r3, #0x90 ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x3 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABE0: ldrh r1, [r4, #0x6] mov r0, #0x10 tst r0, r1 beq _0201AC02 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0xc0 add r3, r4, #0x0 add r1, #0xb8 ldr r2, [r2, #0x0] add r3, #0xbc ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x4 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC02: ldrh r1, [r4, #0x6] mov r0, #0x20 tst r0, r1 beq _0201AC24 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0xec add r3, r4, #0x0 add r1, #0xe4 ldr r2, [r2, #0x0] add r3, #0xe8 ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x5 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC24: ldrh r0, [r4, #0x6] mov r3, #0x40 tst r0, r3 beq _0201AC44 add r2, r3, #0x0 add r1, r3, #0x0 add r2, #0xd8 add r1, #0xd0 ldr r2, [r4, r2] add r3, #0xd4 ldr r1, [r4, r1] ldr r3, [r4, r3] mov r0, #0x6 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC44: ldrh r0, [r4, #0x6] mov r3, #0x80 tst r0, r3 beq _0201AC64 add r2, r3, #0x0 add r1, r3, #0x0 add r2, #0xc4 add r1, #0xbc ldr r2, [r4, r2] add r3, #0xc0 ldr r1, [r4, r1] ldr r3, [r4, r3] mov r0, #0x7 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC64: pop {r4, pc} .balign 4 thumb_func_start FUN_0201AC68 FUN_0201AC68: ; 0x0201AC68 ldrh r3, [r0, #0x6] mov r2, #0x1 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strh r1, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_0201AC78 FUN_0201AC78: ; 0x0201AC78 push {r4, lr} sub sp, #0x48 add r4, r0, #0x0 ldrh r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201AC9E ldr r1, [r4, #0x14] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x18] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEB4 ; =0x04000010 str r1, [r0, #0x0] _0201AC9E: ldrh r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201ACBE ldr r1, [r4, #0x40] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x44] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEB8 ; =0x04000014 str r1, [r0, #0x0] _0201ACBE: ldrh r1, [r4, #0x4] mov r0, #0x4 tst r0, r1 beq _0201AD1E add r0, r4, #0x0 add r0, #0x74 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201ACEA ldr r1, [r4, #0x6c] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x70] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEBC ; =0x04000018 str r1, [r0, #0x0] b _0201AD1E _0201ACEA: mov r0, #0x2 str r0, [sp, #0x0] add r1, r4, #0x0 add r1, #0x78 add r3, r4, #0x0 add r3, #0x80 ldrh r1, [r1, #0x0] ldr r2, [r4, #0x7c] ldr r3, [r3, #0x0] add r0, sp, #0x38 bl FUN_0201BB74 ldr r0, [r4, #0x6c] add r2, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x70] add r3, r4, #0x0 str r0, [sp, #0x4] add r2, #0x84 add r3, #0x88 ldr r0, _0201AEC0 ; =0x04000020 ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r1, sp, #0x38 blx G2x_SetBGyAffine_ _0201AD1E: ldrh r1, [r4, #0x4] mov r0, #0x8 tst r0, r1 beq _0201AD8E add r0, r4, #0x0 add r0, #0xa0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201AD4E add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0x98 add r2, #0x9c ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AEC4 ; =0x0400001C str r1, [r0, #0x0] b _0201AD8E _0201AD4E: mov r0, #0x2 add r1, r4, #0x0 str r0, [sp, #0x0] add r1, #0xa4 add r2, r4, #0x0 add r3, r4, #0x0 add r2, #0xa8 add r3, #0xac ldrh r1, [r1, #0x0] ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r0, sp, #0x28 bl FUN_0201BB74 add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] add r2, r4, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0x9c ldr r0, [r0, #0x0] add r3, r4, #0x0 str r0, [sp, #0x4] add r2, #0xb0 add r3, #0xb4 ldr r0, _0201AEC8 ; =0x04000030 ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r1, sp, #0x28 blx G2x_SetBGyAffine_ _0201AD8E: ldrh r1, [r4, #0x4] mov r0, #0x10 tst r0, r1 beq _0201ADB2 add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0xc4 add r2, #0xc8 ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AECC ; =0x04001010 str r1, [r0, #0x0] _0201ADB2: ldrh r1, [r4, #0x4] mov r0, #0x20 tst r0, r1 beq _0201ADD6 add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0xf0 add r2, #0xf4 ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AED0 ; =0x04001014 str r1, [r0, #0x0] _0201ADD6: ldrh r0, [r4, #0x4] mov r3, #0x40 tst r0, r3 beq _0201AE3E add r0, r3, #0x0 add r0, #0xe4 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0201AE04 ldr r1, _0201AEB0 ; =0x000001FF add r3, #0xdc add r2, r1, #0x0 sub r2, #0xdf ldr r0, [r4, r3] ldr r2, [r4, r2] and r0, r1 lsl r2, r2, #0x10 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AED4 ; =0x04001018 str r1, [r0, #0x0] b _0201AE3E _0201AE04: mov r0, #0x2 add r1, r3, #0x0 add r2, r3, #0x0 str r0, [sp, #0x0] add r1, #0xe8 add r2, #0xec add r3, #0xf0 ldrh r1, [r4, r1] ldr r2, [r4, r2] ldr r3, [r4, r3] add r0, sp, #0x18 bl FUN_0201BB74 mov r3, #0x47 lsl r3, r3, #0x2 ldr r0, [r4, r3] add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r3, #0x4 ldr r0, [r4, r0] add r2, #0x18 str r0, [sp, #0x4] add r3, #0x1c ldr r0, _0201AED8 ; =0x04001020 ldr r2, [r4, r2] ldr r3, [r4, r3] add r1, sp, #0x18 blx G2x_SetBGyAffine_ _0201AE3E: ldrh r0, [r4, #0x4] mov r3, #0x80 tst r0, r3 beq _0201AEAC add r0, r3, #0x0 add r0, #0xd0 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0201AE72 add r3, #0xc8 ldr r1, [r4, r3] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 add r1, r0, #0x0 sub r1, #0xb3 ldr r1, [r4, r1] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEDC ; =0x0400101C add sp, #0x48 str r1, [r0, #0x0] pop {r4, pc} _0201AE72: mov r0, #0x2 add r1, r3, #0x0 add r2, r3, #0x0 str r0, [sp, #0x0] add r1, #0xd4 add r2, #0xd8 add r3, #0xdc ldrh r1, [r4, r1] ldr r2, [r4, r2] ldr r3, [r4, r3] add r0, sp, #0x8 bl FUN_0201BB74 mov r3, #0x52 lsl r3, r3, #0x2 ldr r0, [r4, r3] add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r3, #0x4 ldr r0, [r4, r0] add r2, #0x18 str r0, [sp, #0x4] add r3, #0x1c ldr r0, _0201AEE0 ; =0x04001030 ldr r2, [r4, r2] ldr r3, [r4, r3] add r1, sp, #0x8 blx G2x_SetBGyAffine_ _0201AEAC: add sp, #0x48 pop {r4, pc} .balign 4 _0201AEB0: .word 0x000001FF _0201AEB4: .word 0x04000010 _0201AEB8: .word 0x04000014 _0201AEBC: .word 0x04000018 _0201AEC0: .word 0x04000020 _0201AEC4: .word 0x0400001C _0201AEC8: .word 0x04000030 _0201AECC: .word 0x04001010 _0201AED0: .word 0x04001014 _0201AED4: .word 0x04001018 _0201AED8: .word 0x04001020 _0201AEDC: .word 0x0400101C _0201AEE0: .word 0x04001030 thumb_func_start FUN_0201AEE4 FUN_0201AEE4: ; 0x0201AEE4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_02017B8C mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF08 FUN_0201AF08: ; 0x0201AF08 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_0201AF2C mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF2C FUN_0201AF2C: ; 0x0201AF2C cmp r1, #0x0 beq _0201AF3A cmp r1, #0x1 beq _0201AF3E cmp r1, #0x2 beq _0201AF46 bx lr _0201AF3A: strh r2, [r0, #0x18] bx lr _0201AF3E: ldrh r1, [r0, #0x18] add r1, r1, r2 strh r1, [r0, #0x18] bx lr _0201AF46: ldrh r1, [r0, #0x18] sub r1, r1, r2 strh r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_0201AF50 FUN_0201AF50: ; 0x0201AF50 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_0201AF74 mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF74 FUN_0201AF74: ; 0x0201AF74 sub r1, #0x9 cmp r1, #0x5 bhi _0201AFB8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201AF86: ; jump table (using 16-bit offset) .short _0201AF92 - _0201AF86 - 2; case 0 .short _0201AF96 - _0201AF86 - 2; case 1 .short _0201AF9E - _0201AF86 - 2; case 2 .short _0201AFA6 - _0201AF86 - 2; case 3 .short _0201AFAA - _0201AF86 - 2; case 4 .short _0201AFB2 - _0201AF86 - 2; case 5 _0201AF92: str r2, [r0, #0x24] bx lr _0201AF96: ldr r1, [r0, #0x24] add r1, r1, r2 str r1, [r0, #0x24] bx lr _0201AF9E: ldr r1, [r0, #0x24] sub r1, r1, r2 str r1, [r0, #0x24] bx lr _0201AFA6: str r2, [r0, #0x28] bx lr _0201AFAA: ldr r1, [r0, #0x28] add r1, r1, r2 str r1, [r0, #0x28] bx lr _0201AFB2: ldr r1, [r0, #0x28] sub r1, r1, r2 str r1, [r0, #0x28] _0201AFB8: bx lr .balign 4 thumb_func_start FUN_0201AFBC FUN_0201AFBC: ; 0x0201AFBC push {r4-r7, lr} sub sp, #0x1c str r1, [sp, #0x0] add r7, r0, #0x0 str r2, [sp, #0x4] ldr r0, [sp, #0x30] str r3, [sp, #0x8] str r0, [sp, #0x30] ldr r0, [sp, #0x0] add r4, r7, #0x0 mov r1, #0x2c add r5, r0, #0x0 mul r5, r1 add r4, #0x8 ldr r0, [r4, r5] cmp r0, #0x0 bne _0201AFE4 add sp, #0x1c mov r0, #0x0 pop {r4-r7, pc} _0201AFE4: ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] add r2, r7, r5 lsl r0, r0, #0x15 lsl r1, r1, #0x15 ldrb r2, [r2, #0x1d] lsr r0, r0, #0x18 lsr r1, r1, #0x18 bl FUN_02017FFC add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020187B0 str r0, [sp, #0x18] ldr r1, [sp, #0x4] mov r0, #0x7 and r1, r0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x14] ldr r1, [sp, #0x8] and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r7, r5 str r0, [sp, #0x10] ldrb r0, [r1, #0x1e] cmp r0, #0x0 bne _0201B096 ldr r0, [r4, r5] mov r1, #0x40 str r0, [sp, #0xc] ldr r0, [r7, #0x0] bl FUN_020169D8 add r4, r0, #0x0 lsl r0, r6, #0x1 ldr r1, [sp, #0xc] mov r12, r0 ldrh r0, [r1, r0] mov r3, #0x0 mov r6, #0xf lsl r0, r0, #0x16 lsr r1, r0, #0x11 ldr r0, [sp, #0x18] add r2, r0, r1 _0201B042: ldrb r5, [r2, r3] lsl r0, r3, #0x1 add r1, r4, r0 and r5, r6 strb r5, [r4, r0] ldrb r0, [r2, r3] asr r0, r0, #0x4 strb r0, [r1, #0x1] add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x20 blo _0201B042 ldr r2, [sp, #0xc] mov r1, r12 ldrh r1, [r2, r1] add r0, r7, #0x0 asr r2, r1, #0xa mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r4, #0x0 bl FUN_0201B118 ldr r0, [sp, #0x10] lsl r1, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r1 ldrb r5, [r4, r0] add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x30] ldrh r2, [r0, #0x0] mov r0, #0x1 add r1, r0, #0x0 lsl r1, r5 tst r1, r2 beq _0201B10C add sp, #0x1c pop {r4-r7, pc} _0201B096: ldrb r0, [r1, #0x1c] cmp r0, #0x1 beq _0201B0E0 ldr r0, [r7, #0x0] ldr r4, [r4, r5] mov r1, #0x40 bl FUN_020169D8 lsl r6, r6, #0x1 ldrh r1, [r4, r6] add r5, r0, #0x0 lsl r1, r1, #0x16 lsr r2, r1, #0x10 ldr r1, [sp, #0x18] add r1, r1, r2 mov r2, #0x40 blx memcpy ldrh r1, [r4, r6] add r0, r7, #0x0 asr r2, r1, #0xa mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r5, #0x0 bl FUN_0201B118 ldr r0, [sp, #0x10] lsl r1, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r1 ldrb r4, [r5, r0] add r0, r5, #0x0 bl FUN_02016A18 b _0201B0F4 _0201B0E0: ldr r1, [r4, r5] ldr r0, [sp, #0x10] ldrb r1, [r1, r6] lsl r0, r0, #0x3 lsl r2, r1, #0x6 ldr r1, [sp, #0x14] add r1, r1, r2 add r1, r0, r1 ldr r0, [sp, #0x18] ldrb r4, [r0, r1] _0201B0F4: ldr r0, [sp, #0x30] ldrh r2, [r0, #0x0] lsl r0, r2, #0x18 lsr r1, r0, #0x18 ldr r0, _0201B114 ; =0x0000FFFF _0201B0FE: cmp r2, r0 beq _0201B10C cmp r4, r1 bne _0201B0FE add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0201B10C: mov r0, #0x0 add sp, #0x1c pop {r4-r7, pc} nop _0201B114: .word 0x0000FFFF thumb_func_start FUN_0201B118 FUN_0201B118: ; 0x0201B118 push {r3-r7, lr} str r1, [sp, #0x0] ldr r1, [sp, #0x0] add r7, r2, #0x0 cmp r1, #0x0 beq _0201B1A4 ldr r0, [r0, #0x0] mov r1, #0x40 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x1 tst r0, r1 beq _0201B166 mov r0, #0x0 mov r5, #0x7 _0201B13A: lsl r3, r0, #0x3 add r2, r7, r3 mov r1, #0x0 add r3, r4, r3 _0201B142: sub r6, r5, r1 ldrb r6, [r2, r6] strb r6, [r3, r1] add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x8 blo _0201B142 add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x8 blo _0201B13A add r0, r7, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx memcpy _0201B166: ldr r0, [sp, #0x0] mov r1, #0x2 tst r0, r1 beq _0201B19E mov r5, #0x0 mov r6, #0x7 _0201B172: lsl r0, r5, #0x3 add r3, r4, r0 sub r0, r6, r5 lsl r0, r0, #0x3 add r2, r7, r0 mov r1, #0x8 _0201B17E: ldrb r0, [r2, #0x0] add r2, r2, #0x1 strb r0, [r3, #0x0] add r3, r3, #0x1 sub r1, r1, #0x1 bne _0201B17E add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0201B172 add r0, r7, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx memcpy _0201B19E: add r0, r4, #0x0 bl FUN_02016A18 _0201B1A4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201B1A8 FUN_0201B1A8: ; 0x0201B1A8 push {r3-r5, lr} add r5, r3, #0x0 add r4, r2, #0x0 bl FUN_020161A4 str r0, [r5, #0x0] blx FUN_020BC0FC cmp r0, #0x0 beq _0201B1D2 bl FUN_0201B254 cmp r0, #0x0 bne _0201B1D2 ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B1D2: ldr r0, [r5, #0x0] blx FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201B1E4 FUN_0201B1E4: ; 0x0201B1E4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0x0] blx FUN_020BC0FC cmp r0, #0x0 beq _0201B20A bl FUN_0201B254 cmp r0, #0x0 bne _0201B20A ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B20A: ldr r0, [r5, #0x0] blx FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201B21C FUN_0201B21C: ; 0x0201B21C push {r3-r5, lr} add r4, r3, #0x0 add r5, r2, #0x0 ldr r3, [sp, #0x10] add r2, r4, #0x0 bl FUN_0201B1A8 ldr r1, [r4, #0x0] add r0, r5, #0x0 blx FUN_020B80B4 pop {r3-r5, pc} thumb_func_start FUN_0201B234 FUN_0201B234: ; 0x0201B234 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r2, #0x0 bl FUN_0201B1E4 cmp r4, #0x0 bne _0201B24A bl ErrorHandling _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 blx FUN_020B80B4 pop {r3-r5, pc} thumb_func_start FUN_0201B254 FUN_0201B254: ; 0x0201B254 ldrh r2, [r0, #0x10] mov r1, #0x1 tst r2, r1 bne _0201B262 ldrh r0, [r0, #0x20] tst r0, r1 beq _0201B266 _0201B262: mov r0, #0x1 bx lr _0201B266: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0201B26C FUN_0201B26C: ; 0x0201B26C push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 blx FUN_020B8474 ldr r1, _0201B2A0 ; =0x021CEDD4 add r0, r4, #0x0 blx MI_Copy36B ldr r1, _0201B2A4 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r6, #0x0 str r2, [r1, #0x7c] blx FUN_020B844C blx FUN_020B849C add r0, r5, #0x0 blx FUN_020BAC98 pop {r4-r6, pc} nop _0201B2A0: .word 0x021CEDD4 _0201B2A4: .word 0x021CED98 thumb_func_start FUN_0201B2A8 FUN_0201B2A8: ; 0x0201B2A8 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 blx FUN_020B8474 ldr r1, _0201B2E4 ; =0x021CEDD4 add r0, r4, #0x0 blx MI_Copy36B ldr r1, _0201B2E8 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] add r0, r6, #0x0 blx FUN_020B844C blx FUN_020B849C mov r1, #0x0 ldr r0, [r5, #0x4] add r2, r1, #0x0 mov r3, #0x1 blx FUN_020BAFB8 blx FUN_020BB394 pop {r4-r6, pc} .balign 4 _0201B2E4: .word 0x021CEDD4 _0201B2E8: .word 0x021CED98 thumb_func_start FUN_0201B2EC FUN_0201B2EC: ; 0x0201B2EC push {r3, lr} sub sp, #0x8 mov r1, #0x4 str r1, [sp, #0x0] ldr r1, _0201B30C ; =FUN_0201B314 mov r2, #0x2 str r1, [sp, #0x4] mov r1, #0x0 add r3, r1, #0x0 bl FUN_02022318 ldr r1, _0201B310 ; =0x021C4D44 str r0, [r1, #0x0] add sp, #0x8 pop {r3, pc} nop _0201B30C: .word FUN_0201B314 _0201B310: .word 0x021C4D44 thumb_func_start FUN_0201B314 FUN_0201B314: ; 0x0201B314 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _0201B380 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _0201B384 ; =0xFFFFCFFD and r2, r1 strh r2, [r0, #0x0] add r2, r1, #0x2 ldrh r3, [r0, #0x0] add r1, r1, #0x2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0, #0x0] ldrh r3, [r0, #0x0] ldr r2, _0201B388 ; =0x0000CFFB and r3, r2 strh r3, [r0, #0x0] ldrh r3, [r0, #0x0] sub r2, #0x1c and r3, r1 mov r1, #0x8 orr r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx G3X_SetFog mov r0, #0x0 ldr r2, _0201B38C ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx G3X_SetClearColor ldr r1, _0201B390 ; =0xBFFF0000 ldr r0, _0201B394 ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _0201B380: .word 0x04000008 _0201B384: .word 0xFFFFCFFD _0201B388: .word 0x0000CFFB _0201B38C: .word 0x00007FFF _0201B390: .word 0xBFFF0000 _0201B394: .word 0x04000580 thumb_func_start FUN_0201B398 FUN_0201B398: ; 0x0201B398 ldr r0, _0201B3A0 ; =0x021C4D44 ldr r3, _0201B3A4 ; =FUN_020223BC ldr r0, [r0, #0x0] bx r3 .balign 4 _0201B3A0: .word 0x021C4D44 _0201B3A4: .word FUN_020223BC thumb_func_start FUN_0201B3A8 FUN_0201B3A8: ; 0x0201B3A8 push {r4, lr} add r4, r1, #0x0 blx FUN_020BC13C cmp r4, #0x0 beq _0201B3BE add r1, r4, #0x0 blx FUN_020B7790 mov r0, #0x1 pop {r4, pc} _0201B3BE: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201B3C4 FUN_0201B3C4: ; 0x0201B3C4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bne _0201B3D2 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B3D2: mov r1, #0x0 str r1, [r5, #0x8] mov r1, #0x1 str r1, [sp, #0x8] str r1, [sp, #0x4] str r1, [sp, #0x0] cmp r5, #0x0 beq _0201B4D0 blx FUN_020B7E1C add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r4, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 str r0, [sp, #0xc] cmp r6, #0x0 beq _0201B412 ldr r3, _0201B4D8 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r6, #0x0 add r2, r1, #0x0 blx r3 add r7, r0, #0x0 bne _0201B414 mov r0, #0x0 str r0, [sp, #0x8] b _0201B414 _0201B412: mov r7, #0x0 _0201B414: cmp r4, #0x0 beq _0201B42E ldr r3, _0201B4D8 ; =0x021064B8 add r0, r4, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 mov r2, #0x0 blx r3 add r6, r0, #0x0 bne _0201B430 mov r0, #0x0 str r0, [sp, #0x4] b _0201B430 _0201B42E: mov r6, #0x0 _0201B430: ldr r0, [sp, #0xc] cmp r0, #0x0 beq _0201B450 ldr r3, _0201B4DC ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 mov r2, #0x0 blx r3 add r4, r0, #0x0 bne _0201B452 mov r0, #0x0 str r0, [sp, #0x0] b _0201B452 _0201B450: mov r4, #0x0 _0201B452: ldr r0, [sp, #0x8] cmp r0, #0x0 bne _0201B46E ldr r1, _0201B4E0 ; =0x021064BC add r0, r7, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B468 bl ErrorHandling _0201B468: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B46E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _0201B48A ldr r1, _0201B4E0 ; =0x021064BC add r0, r6, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B484 bl ErrorHandling _0201B484: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B48A: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0201B4A6 ldr r1, _0201B4E4 ; =0x021064C4 add r0, r4, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B4A0 bl ErrorHandling _0201B4A0: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B4A6: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 blx FUN_020B7DFC add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020B7CDC ldr r1, [r5, #0x4] add r0, r5, #0x0 blx DC_FlushRange add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7D28 add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7C78 _0201B4D0: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop _0201B4D8: .word 0x021064B8 _0201B4DC: .word 0x021064C0 _0201B4E0: .word 0x021064BC _0201B4E4: .word 0x021064C4 thumb_func_start FUN_0201B4E8 FUN_0201B4E8: ; 0x0201B4E8 str r0, [r1, #0x0] add r0, r0, #0x4 str r0, [r1, #0x8] str r0, [r1, #0x4] mov r0, #0x0 str r0, [r1, #0xc] str r0, [r1, #0x10] str r0, [r1, #0x14] bx lr .balign 4 thumb_func_start FUN_0201B4FC FUN_0201B4FC: ; 0x0201B4FC push {r3-r7, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x0] mov r7, #0x0 cmp r0, #0x0 ble _0201B52A add r4, r7, #0x0 add r6, r7, #0x0 _0201B50C: ldr r1, [r5, #0x24] add r0, r5, #0x0 add r1, r1, r4 bl FUN_0201B4E8 ldr r0, [r5, #0x24] add r7, r7, #0x1 add r1, r0, r4 ldr r0, [r5, #0x20] add r4, #0x1c str r1, [r0, r6] ldrh r0, [r5, #0x0] add r6, r6, #0x4 cmp r7, r0 blt _0201B50C _0201B52A: mov r0, #0x0 strh r0, [r5, #0x2] pop {r3-r7, pc} thumb_func_start FUN_0201B530 FUN_0201B530: ; 0x0201B530 ldrh r3, [r0, #0x2] ldrh r1, [r0, #0x0] cmp r3, r1 bne _0201B53C mov r0, #0x0 bx lr _0201B53C: ldr r2, [r0, #0x20] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r3, #0x1 strh r1, [r0, #0x2] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_0201B54C FUN_0201B54C: ; 0x0201B54C ldrh r2, [r0, #0x2] cmp r2, #0x0 bne _0201B556 mov r0, #0x0 bx lr _0201B556: str r0, [r1, #0x0] add r2, r0, #0x4 str r2, [r1, #0x8] str r2, [r1, #0x4] mov r2, #0x0 str r2, [r1, #0xc] str r2, [r1, #0x10] str r2, [r1, #0x14] ldrh r2, [r0, #0x2] sub r2, r2, #0x1 strh r2, [r0, #0x2] ldr r2, [r0, #0x20] ldrh r0, [r0, #0x2] lsl r0, r0, #0x2 str r1, [r2, r0] mov r0, #0x1 bx lr thumb_func_start FUN_0201B578 FUN_0201B578: ; 0x0201B578 lsl r0, r0, #0x5 add r0, #0x34 bx lr .balign 4 thumb_func_start FUN_0201B580 FUN_0201B580: ; 0x0201B580 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bne _0201B58C bl ErrorHandling _0201B58C: add r1, r4, #0x0 add r1, #0x34 lsl r0, r5, #0x2 str r1, [r4, #0x20] add r0, r1, r0 str r0, [r4, #0x24] strh r5, [r4, #0x0] mov r0, #0x0 strh r0, [r4, #0x2] str r0, [r4, #0x28] add r0, r4, #0x0 bl FUN_0201B5AC add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B5AC FUN_0201B5AC: ; 0x0201B5AC push {r4, lr} add r4, r0, #0x0 bl FUN_0201B4FC str r4, [r4, #0x4] add r0, r4, #0x4 str r0, [r4, #0xc] str r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0x10] str r0, [r4, #0x14] str r0, [r4, #0x18] ldr r0, [r4, #0xc] str r0, [r4, #0x2c] pop {r4, pc} .balign 4 thumb_func_start FUN_0201B5CC FUN_0201B5CC: ; 0x0201B5CC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x28] cmp r0, #0x0 bne _0201B608 ldr r1, [r5, #0xc] add r4, r5, #0x4 str r1, [r5, #0x2c] cmp r1, r4 beq _0201B604 mov r6, #0x0 _0201B5E2: ldr r0, [r1, #0x8] str r0, [r5, #0x30] ldr r0, [r5, #0x2c] ldr r1, [r0, #0x18] cmp r1, #0x0 bne _0201B5FA ldr r2, [r0, #0x14] cmp r2, #0x0 beq _0201B5FC ldr r1, [r0, #0x10] blx r2 b _0201B5FC _0201B5FA: str r6, [r0, #0x18] _0201B5FC: ldr r1, [r5, #0x30] str r1, [r5, #0x2c] cmp r1, r4 bne _0201B5E2 _0201B604: mov r0, #0x0 str r0, [r1, #0x14] _0201B608: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201B60C FUN_0201B60C: ; 0x0201B60C push {r3-r5, lr} add r4, r0, #0x0 mov r5, #0x1 str r5, [r4, #0x28] bl FUN_0201B620 mov r1, #0x0 str r1, [r4, #0x28] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B620 FUN_0201B620: ; 0x0201B620 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_0201B530 cmp r0, #0x0 bne _0201B636 mov r0, #0x0 pop {r3-r7, pc} _0201B636: str r4, [r0, #0xc] str r7, [r0, #0x10] str r6, [r0, #0x14] ldr r2, [r5, #0x2c] ldr r1, [r2, #0x14] cmp r1, #0x0 beq _0201B656 ldr r1, [r2, #0xc] cmp r1, r4 bhi _0201B650 mov r1, #0x1 str r1, [r0, #0x18] b _0201B65A _0201B650: mov r1, #0x0 str r1, [r0, #0x18] b _0201B65A _0201B656: mov r1, #0x0 str r1, [r0, #0x18] _0201B65A: ldr r3, [r5, #0xc] add r2, r5, #0x4 cmp r3, r2 beq _0201B686 ldr r4, [r0, #0xc] _0201B664: ldr r1, [r3, #0xc] cmp r1, r4 bls _0201B680 ldr r1, [r3, #0x4] str r1, [r0, #0x4] str r3, [r0, #0x8] ldr r1, [r3, #0x4] str r0, [r1, #0x8] str r0, [r3, #0x4] ldr r1, [r5, #0x30] cmp r3, r1 bne _0201B69E str r0, [r5, #0x30] pop {r3-r7, pc} _0201B680: ldr r3, [r3, #0x8] cmp r3, r2 bne _0201B664 _0201B686: ldr r2, [r5, #0x30] add r1, r5, #0x4 cmp r2, r1 bne _0201B690 str r0, [r5, #0x30] _0201B690: ldr r1, [r5, #0x8] str r1, [r0, #0x4] add r1, r5, #0x4 str r1, [r0, #0x8] ldr r1, [r5, #0x8] str r0, [r1, #0x8] str r0, [r5, #0x8] _0201B69E: pop {r3-r7, pc} thumb_func_start FUN_0201B6A0 FUN_0201B6A0: ; 0x0201B6A0 add r1, r0, #0x0 ldr r2, [r1, #0x0] ldr r0, [r2, #0x30] cmp r0, r1 bne _0201B6AE ldr r0, [r1, #0x8] str r0, [r2, #0x30] _0201B6AE: ldr r2, [r1, #0x8] ldr r0, [r1, #0x4] ldr r3, _0201B6C0 ; =0x0201B54D str r2, [r0, #0x8] ldr r2, [r1, #0x4] ldr r0, [r1, #0x8] str r2, [r0, #0x4] ldr r0, [r1, #0x0] bx r3 .balign 4 _0201B6C0: .word 0x0201B54D thumb_func_start FUN_0201B6C4 FUN_0201B6C4: ; 0x0201B6C4 str r1, [r0, #0x14] bx lr thumb_func_start FUN_0201B6C8 FUN_0201B6C8: ; 0x0201B6C8 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_0201B6CC FUN_0201B6CC: ; 0x0201B6CC ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_0201B6D0 FUN_0201B6D0: ; 0x0201B6D0 push {r4-r7, lr} sub sp, #0x34 add r6, r1, #0x0 add r4, r0, #0x0 add r5, r2, #0x0 ldmia r6!, {r0-r1} add r2, sp, #0x1c stmia r2!, {r0-r1} ldr r0, [r6, #0x0] add r4, #0x14 str r0, [r2, #0x0] mov r0, #0x20 ldrsh r0, [r4, r0] add r7, r3, #0x0 mov r1, #0x1a str r0, [sp, #0x0] mov r0, #0x22 ldrsh r0, [r4, r0] mov r2, #0x1c mov r3, #0x1e str r0, [sp, #0x4] add r0, sp, #0x28 str r0, [sp, #0x8] mov r0, #0x18 ldrsh r0, [r4, r0] ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldrsh r3, [r4, r3] bl FUN_0201B808 add r0, sp, #0x1c blx FUN_020B8474 ldr r1, _0201B764 ; =0x021CEDD4 add r0, r5, #0x0 blx MI_Copy36B ldr r1, _0201B768 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r7, #0x0 str r2, [r1, #0x7c] blx FUN_020B844C blx FUN_020B849C mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 blx FUN_020BB1C0 ldr r0, [r4, #0x24] add r1, sp, #0x10 str r0, [sp, #0x10] str r0, [sp, #0x14] str r0, [sp, #0x18] mov r0, #0x1b mov r2, #0x3 blx FUN_020BB1C0 add r0, sp, #0x28 bl FUN_0201B82C add r4, r0, #0x0 mov r2, #0x1 mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] blx FUN_020BB1C0 add r0, r4, #0x0 add sp, #0x34 pop {r4-r7, pc} .balign 4 _0201B764: .word 0x021CEDD4 _0201B768: .word 0x021CED98 thumb_func_start FUN_0201B76C FUN_0201B76C: ; 0x0201B76C push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2 ldrsh r0, [r4, r0] str r0, [sp, #0x0] mov r0, #0x4 ldrsh r0, [r4, r0] str r0, [sp, #0x4] add r0, sp, #0x1c str r0, [sp, #0x8] mov r0, #0x0 ldrsh r3, [r4, r0] add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0201B808 add r0, r5, #0x0 blx FUN_020B8474 blx FUN_020B849C mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 blx FUN_020BB1C0 ldr r0, [r4, #0x10] lsl r2, r0, #0xc ldr r0, [r4, #0xc] lsl r1, r0, #0xc ldr r0, [r4, #0x8] lsl r0, r0, #0xc str r0, [sp, #0x10] str r1, [sp, #0x14] str r2, [sp, #0x18] mov r0, #0x1b add r1, sp, #0x10 mov r2, #0x3 blx FUN_020BB1C0 add r0, sp, #0x1c bl FUN_0201B82C add r4, r0, #0x0 mov r2, #0x1 mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] blx FUN_020BB1C0 add r0, r4, #0x0 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B7DC FUN_0201B7DC: ; 0x0201B7DC push {r4-r6, lr} add r6, r3, #0x0 add r4, r2, #0x0 add r2, r6, #0x0 add r5, r1, #0x0 add r1, r6, #0x0 add r2, #0x8 bl FUN_0201B880 add r2, r6, #0x0 add r0, r5, #0x0 add r1, r6, #0x2 add r2, #0xc bl FUN_0201B880 add r1, r6, #0x4 add r6, #0x10 add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_0201B880 pop {r4-r6, pc} thumb_func_start FUN_0201B808 FUN_0201B808: ; 0x0201B808 push {r3-r4} ldr r4, [sp, #0x10] strh r0, [r4, #0x0] strh r1, [r4, #0x2] ldr r1, _0201B828 ; =0xFFFFFFF8 strh r2, [r4, #0x4] strh r3, [r4, #0x6] add r1, sp mov r0, #0x10 ldrsh r0, [r1, r0] strh r0, [r4, #0x8] mov r0, #0x14 ldrsh r0, [r1, r0] strh r0, [r4, #0xa] pop {r3-r4} bx lr .balign 4 _0201B828: .word 0xFFFFFFF8 thumb_func_start FUN_0201B82C FUN_0201B82C: ; 0x0201B82C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, _0201B87C ; =0x000030C1 mov r2, #0x1 str r0, [sp, #0x4] mov r0, #0x29 add r1, sp, #0x4 str r2, [sp, #0x8] blx FUN_020BB1C0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x40 add r1, sp, #0x0 mov r2, #0x1 blx FUN_020BB1C0 mov r1, #0x0 mov r0, #0x41 add r2, r1, #0x0 blx FUN_020BB1C0 mov r0, #0x70 add r1, r4, #0x0 mov r2, #0x3 blx FUN_020BB1C0 blx FUN_020BB394 add r4, sp, #0x8 _0201B86A: add r0, r4, #0x0 blx G3X_GetBoxTestResult cmp r0, #0x0 bne _0201B86A ldr r0, [sp, #0x8] add sp, #0xc pop {r3-r4, pc} nop _0201B87C: .word 0x000030C1 thumb_func_start FUN_0201B880 FUN_0201B880: ; 0x0201B880 push {r3-r4} ldr r4, _0201B8B4 ; =0x00007FFF mov r3, #0x0 cmp r0, r4 blo _0201B896 _0201B88A: add r3, r3, #0x1 lsl r3, r3, #0x18 lsr r0, r0, #0x1 lsr r3, r3, #0x18 cmp r0, r4 bhs _0201B88A _0201B896: strh r0, [r1, #0x0] mov r0, #0x1 mov r1, #0x0 str r0, [r2, #0x0] cmp r3, #0x0 ble _0201B8AE _0201B8A2: ldr r0, [r2, #0x0] add r1, r1, #0x1 lsl r0, r0, #0x1 str r0, [r2, #0x0] cmp r1, r3 blt _0201B8A2 _0201B8AE: pop {r3-r4} bx lr nop _0201B8B4: .word 0x00007FFF thumb_func_start FUN_0201B8B8 FUN_0201B8B8: ; 0x0201B8B8 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 beq _0201B8C8 bl ErrorHandling _0201B8C8: ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 bne _0201B8D8 ldrh r0, [r4, #0x4] add r1, r4, #0x6 lsl r0, r0, #0x1 add r4, r1, r0 _0201B8D8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0201B8DC: .word 0x0000FFFE thumb_func_start FUN_0201B8E0 FUN_0201B8E0: ; 0x0201B8E0 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0201B8F4 ; =0x0000FFFE cmp r1, r0 beq _0201B8F0 bl ErrorHandling _0201B8F0: ldrh r0, [r4, #0x2] pop {r4, pc} .balign 4 _0201B8F4: .word 0x0000FFFE thumb_func_start FUN_0201B8F8 FUN_0201B8F8: ; 0x0201B8F8 push {r3, lr} bl FUN_0201B8E0 mov r1, #0xff lsl r1, r1, #0x8 and r1, r0 mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 bne _0201B910 mov r0, #0x1 pop {r3, pc} _0201B910: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0201B914 FUN_0201B914: ; 0x0201B914 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldrh r1, [r5, #0x0] ldr r0, _0201B938 ; =0x0000FFFE cmp r1, r0 beq _0201B926 bl ErrorHandling _0201B926: ldrh r0, [r5, #0x4] cmp r4, r0 blo _0201B930 bl ErrorHandling _0201B930: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, #0x6] pop {r3-r5, pc} .balign 4 _0201B938: .word 0x0000FFFE thumb_func_start FUN_0201B93C FUN_0201B93C: ; 0x0201B93C mov r1, #0x5a lsl r1, r1, #0x2 cmp r0, r1 blo _0201B948 mov r0, #0x0 bx lr _0201B948: lsl r1, r0, #0x2 ldr r0, _0201B950 ; =0x020EDF50 ldr r0, [r0, r1] bx lr .balign 4 _0201B950: .word 0x020EDF50 thumb_func_start FUN_0201B954 FUN_0201B954: ; 0x0201B954 mov r1, #0x5a lsl r1, r1, #0x2 cmp r0, r1 blo _0201B960 mov r0, #0x0 bx lr _0201B960: add r0, #0x5a lsl r1, r0, #0x2 ldr r0, _0201B96C ; =0x020EDF50 ldr r0, [r0, r1] bx lr nop _0201B96C: .word 0x020EDF50 thumb_func_start FUN_0201B970 FUN_0201B970: ; 0x0201B970 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B984 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} nop _0201B984: .word 0x020EDF50 thumb_func_start FUN_0201B988 FUN_0201B988: ; 0x0201B988 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f add r1, #0x5a ldr r0, _0201B99C ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} .balign 4 _0201B99C: .word 0x020EDF50 thumb_func_start FUN_0201B9A0 FUN_0201B9A0: ; 0x0201B9A0 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B9B4 ; =0x020EDC7E lsl r1, r1, #0x1 ldrh r0, [r0, r1] pop {r3, pc} nop _0201B9B4: .word 0x020EDC7E thumb_func_start FUN_0201B9B8 FUN_0201B9B8: ; 0x0201B9B8 push {r3, lr} lsl r0, r0, #0x4 mov r1, #0x5a lsr r0, r0, #0x10 lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B9D0 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} nop _0201B9D0: .word 0x020EDF50 thumb_func_start FUN_0201B9D4 FUN_0201B9D4: ; 0x0201B9D4 ldr r0, _0201B9DC ; =0x021C4D48 ldr r0, [r0, #0x0] bx lr nop _0201B9DC: .word 0x021C4D48 thumb_func_start FUN_0201B9E0 FUN_0201B9E0: ; 0x0201B9E0 ldr r1, _0201B9E8 ; =0x021C4D48 str r0, [r1, #0x0] bx lr nop _0201B9E8: .word 0x021C4D48 thumb_func_start FUN_0201B9EC FUN_0201B9EC: ; 0x0201B9EC ldr r1, _0201BA04 ; =0x021C4D48 ldr r0, _0201BA08 ; =0x41C64E6D ldr r2, [r1, #0x0] add r3, r2, #0x0 mul r3, r0 ldr r0, _0201BA0C ; =0x00006073 add r0, r3, r0 str r0, [r1, #0x0] lsr r0, r0, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr .balign 4 _0201BA04: .word 0x021C4D48 _0201BA08: .word 0x41C64E6D _0201BA0C: .word 0x00006073 thumb_func_start FUN_0201BA10 FUN_0201BA10: ; 0x0201BA10 ldr r1, _0201BA18 ; =0x6C078965 mul r1, r0 add r0, r1, #0x1 bx lr .balign 4 _0201BA18: .word 0x6C078965 thumb_func_start FUN_0201BA1C FUN_0201BA1C: ; 0x0201BA1C push {r4-r5} ldr r1, _0201BA50 ; =0x021C4D48 mov r4, #0x27 str r0, [r1, #0x4] ldr r1, _0201BA54 ; =0x02105BA8 mov r0, #0x1 str r0, [r1, #0x0] ldr r1, _0201BA58 ; =0x021C4D50 ldr r3, _0201BA5C ; =0x6C078965 lsl r4, r4, #0x4 _0201BA30: sub r2, r1, #0x4 ldr r5, [r2, #0x0] lsr r2, r5, #0x1e eor r2, r5 add r5, r2, #0x0 mul r5, r3 add r2, r0, r5 add r0, r0, #0x1 stmia r1!, {r2} cmp r0, r4 blt _0201BA30 ldr r1, _0201BA54 ; =0x02105BA8 str r0, [r1, #0x0] pop {r4-r5} bx lr nop _0201BA50: .word 0x021C4D48 _0201BA54: .word 0x02105BA8 _0201BA58: .word 0x021C4D50 _0201BA5C: .word 0x6C078965 thumb_func_start FUN_0201BA60 FUN_0201BA60: ; 0x0201BA60 push {r3-r7, lr} ldr r0, _0201BB44 ; =0x02105BA8 ldr r1, [r0, #0x0] mov r0, #0x27 lsl r0, r0, #0x4 cmp r1, r0 blt _0201BB18 add r0, r0, #0x1 cmp r1, r0 bne _0201BA7A ldr r0, _0201BB48 ; =0x00001571 bl FUN_0201BA1C _0201BA7A: ldr r4, _0201BB4C ; =0x021C4D4C ldr r1, _0201BB50 ; =0x02105BAC ldr r5, _0201BB54 ; =0x7FFFFFFF ldr r6, _0201BB58 ; =0x00000634 mov r0, #0x0 _0201BA84: mov r2, #0x2 ldr r3, [r4, #0x0] lsl r2, r2, #0x1e and r3, r2 ldr r2, [r4, #0x4] add r0, r0, #0x1 and r2, r5 orr r3, r2 lsr r7, r3, #0x1 lsl r3, r3, #0x1f ldr r2, [r4, r6] lsr r3, r3, #0x1d ldr r3, [r1, r3] eor r2, r7 eor r2, r3 stmia r4!, {r2} cmp r0, #0xe3 blt _0201BA84 ldr r1, _0201BB5C ; =0x0000026F cmp r0, r1 bge _0201BAE4 ldr r2, _0201BB4C ; =0x021C4D4C lsl r1, r0, #0x2 add r1, r2, r1 mov r2, #0xe3 ldr r4, _0201BB50 ; =0x02105BAC ldr r3, _0201BB5C ; =0x0000026F lsl r2, r2, #0x2 _0201BABC: mov r5, #0x2 ldr r6, [r1, #0x0] lsl r5, r5, #0x1e and r5, r6 ldr r7, [r1, #0x4] ldr r6, _0201BB54 ; =0x7FFFFFFF add r0, r0, #0x1 and r6, r7 orr r6, r5 lsr r5, r6, #0x1 sub r7, r1, r2 lsl r6, r6, #0x1f ldr r7, [r7, #0x0] lsr r6, r6, #0x1d ldr r6, [r4, r6] eor r5, r7 eor r5, r6 stmia r1!, {r5} cmp r0, r3 blt _0201BABC _0201BAE4: ldr r2, _0201BB60 ; =0x021C56C8 mov r0, #0x2 ldr r1, [r2, #0x40] lsl r0, r0, #0x1e add r3, r1, #0x0 ldr r1, _0201BB64 ; =0x021C4D48 and r3, r0 ldr r1, [r1, #0x4] sub r0, r0, #0x1 and r0, r1 add r4, r3, #0x0 orr r4, r0 ldr r0, _0201BB68 ; =0x021C5348 ldr r1, [r0, #0x34] lsr r0, r4, #0x1 add r3, r1, #0x0 eor r3, r0 lsl r0, r4, #0x1f lsr r1, r0, #0x1d ldr r0, _0201BB50 ; =0x02105BAC ldr r0, [r0, r1] mov r1, #0x0 eor r0, r3 str r0, [r2, #0x40] ldr r0, _0201BB44 ; =0x02105BA8 str r1, [r0, #0x0] _0201BB18: ldr r0, _0201BB44 ; =0x02105BA8 ldr r2, [r0, #0x0] add r1, r2, #0x1 str r1, [r0, #0x0] ldr r0, _0201BB4C ; =0x021C4D4C lsl r1, r2, #0x2 ldr r1, [r0, r1] lsr r0, r1, #0xb add r2, r1, #0x0 eor r2, r0 ldr r0, _0201BB6C ; =0x9D2C5680 lsl r1, r2, #0x7 and r0, r1 eor r2, r0 ldr r0, _0201BB70 ; =0xEFC60000 lsl r1, r2, #0xf and r0, r1 add r1, r2, #0x0 eor r1, r0 lsr r0, r1, #0x12 eor r0, r1 pop {r3-r7, pc} .balign 4 _0201BB44: .word 0x02105BA8 _0201BB48: .word 0x00001571 _0201BB4C: .word 0x021C4D4C _0201BB50: .word 0x02105BAC _0201BB54: .word 0x7FFFFFFF _0201BB58: .word 0x00000634 _0201BB5C: .word 0x0000026F _0201BB60: .word 0x021C56C8 _0201BB64: .word 0x021C4D48 _0201BB68: .word 0x021C5348 _0201BB6C: .word 0x9D2C5680 _0201BB70: .word 0xEFC60000 thumb_func_start FUN_0201BB74 FUN_0201BB74: ; 0x0201BB74 push {r4-r6, lr} add r5, r0, #0x0 add r0, sp, #0x0 ldrb r0, [r0, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 cmp r0, #0x1 bne _0201BB8E ldr r0, _0201BBC8 ; =0x0000FFFF mul r0, r1 lsl r0, r0, #0x8 lsr r1, r0, #0x10 b _0201BBA2 _0201BB8E: cmp r0, #0x2 bne _0201BBA2 ldr r0, _0201BBC8 ; =0x0000FFFF mul r0, r1 mov r1, #0x5a lsl r1, r1, #0x2 blx _u32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0201BBA2: asr r0, r1, #0x4 lsl r3, r0, #0x1 lsl r1, r3, #0x1 ldr r2, _0201BBCC ; =0x020FFA38 add r3, r3, #0x1 lsl r3, r3, #0x1 ldrsh r1, [r2, r1] ldrsh r2, [r2, r3] add r0, r5, #0x0 bl MTX_Rot22_ add r0, r5, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 blx MTX_ScaleApply22 pop {r4-r6, pc} nop _0201BBC8: .word 0x0000FFFF _0201BBCC: .word 0x020FFA38 thumb_func_start FUN_0201BBD0 FUN_0201BBD0: ; 0x0201BBD0 push {r3-r7, lr} sub sp, #0x38 lsl r5, r0, #0xc lsl r4, r1, #0xc mov r1, #0x0 lsl r0, r2, #0xc lsl r6, r3, #0xc str r1, [sp, #0x34] str r0, [sp, #0x0] str r0, [sp, #0x20] str r1, [sp, #0x28] str r1, [sp, #0x8] str r1, [sp, #0xc] asr r1, r5, #0x1f add r0, r5, #0x0 asr r3, r6, #0x1f add r2, r6, #0x0 str r5, [sp, #0x2c] str r4, [sp, #0x30] str r6, [sp, #0x24] blx _ll_mul str r0, [sp, #0x4] add r2, r4, #0x0 ldr r0, [sp, #0x20] add r7, r1, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 ldr r3, [sp, #0x4] lsl r2, r2, #0xa add r3, r3, r2 ldr r2, _0201BC80 ; =0x00000000 str r4, [sp, #0x2c] adc r7, r2 lsl r2, r7, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0201BC80 ; =0x00000000 str r5, [sp, #0x30] adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 sub r2, r3, r0 ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] str r2, [sp, #0x10] add r0, r1, r0 add r7, r2, r0 mov r0, #0x0 str r0, [sp, #0x34] add r0, sp, #0x2c add r1, sp, #0x14 blx VEC_Normalize mov r1, #0x0 ldr r0, [sp, #0x0] str r1, [sp, #0x34] str r0, [sp, #0x20] str r1, [sp, #0x28] add r0, sp, #0x20 add r1, sp, #0x2c add r2, sp, #0x8 str r5, [sp, #0x2c] str r4, [sp, #0x30] str r6, [sp, #0x24] blx VEC_Subtract add r0, sp, #0x14 add r1, sp, #0x8 blx VEC_DotProduct asr r0, r0, #0xc bpl _0201BC72 neg r0, r0 _0201BC72: cmp r7, #0x0 bgt _0201BC7C mov r1, #0x0 mvn r1, r1 mul r0, r1 _0201BC7C: add sp, #0x38 pop {r3-r7, pc} .balign 4 _0201BC80: .word 0x00000000 thumb_func_start FUN_0201BC84 FUN_0201BC84: ; 0x0201BC84 push {r3-r5, lr} lsl r0, r0, #0xd add r4, r1, #0x0 ldr r2, _0201BCB4 ; =0x0000323D asr r1, r0, #0x1f mov r3, #0x0 blx _ll_mul add r5, r0, #0x0 ldr r0, _0201BCB8 ; =0x0000FFFF mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa mul r0, r4 add r2, r5, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r2, r2, #0xc orr r2, r1 asr r1, r2, #0xc blx _s32_div_f pop {r3-r5, pc} nop _0201BCB4: .word 0x0000323D _0201BCB8: .word 0x0000FFFF thumb_func_start FUN_0201BCBC FUN_0201BCBC: ; 0x0201BCBC ldr r1, _0201BCC4 ; =0x02105BB4 str r0, [r1, #0x0] bx lr nop _0201BCC4: .word 0x02105BB4 thumb_func_start FUN_0201BCC8 FUN_0201BCC8: ; 0x0201BCC8 push {r4-r6, lr} ldr r4, _0201BCF8 ; =0x021C5714 mov r5, #0x0 _0201BCCE: ldr r3, [r4, #0x0] cmp r3, #0x0 bne _0201BCE8 ldr r6, _0201BCF8 ; =0x021C5714 lsl r4, r5, #0x2 bl FUN_0200CA7C str r0, [r6, r4] ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BCF0 mov r5, #0x8 b _0201BCF0 _0201BCE8: add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x8 blt _0201BCCE _0201BCF0: lsl r0, r5, #0x18 lsr r0, r0, #0x18 pop {r4-r6, pc} nop _0201BCF8: .word 0x021C5714 thumb_func_start FUN_0201BCFC FUN_0201BCFC: ; 0x0201BCFC push {r4-r6, lr} add r5, r0, #0x0 cmp r5, #0x8 blo _0201BD08 bl ErrorHandling _0201BD08: ldr r6, _0201BD40 ; =0x021C5714 lsl r4, r5, #0x2 ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BD16 bl ErrorHandling _0201BD16: cmp r5, #0x8 bhs _0201BD3C ldr r0, [r6, r4] cmp r0, #0x0 beq _0201BD3C bl FUN_0201B6C8 add r5, r0, #0x0 beq _0201BD32 bl FUN_0201C238 add r0, r5, #0x0 bl FUN_02016A18 _0201BD32: ldr r0, [r6, r4] bl FUN_0200CAB4 mov r0, #0x0 str r0, [r6, r4] _0201BD3C: pop {r4-r6, pc} nop _0201BD40: .word 0x021C5714 thumb_func_start FUN_0201BD44 FUN_0201BD44: ; 0x0201BD44 lsl r1, r0, #0x2 ldr r0, _0201BD58 ; =0x021C5714 ldr r0, [r0, r1] cmp r0, #0x0 beq _0201BD52 mov r0, #0x1 bx lr _0201BD52: mov r0, #0x0 bx lr nop _0201BD58: .word 0x021C5714 thumb_func_start FUN_0201BD5C FUN_0201BD5C: ; 0x0201BD5C mov r1, #0x0 ldr r2, _0201BD6C ; =0x021C5714 add r0, r1, #0x0 _0201BD62: add r1, r1, #0x1 stmia r2!, {r0} cmp r1, #0x8 blt _0201BD62 bx lr .balign 4 _0201BD6C: .word 0x021C5714 thumb_func_start FUN_0201BD70 FUN_0201BD70: ; 0x0201BD70 push {r3, lr} bl FUN_0201BD44 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} thumb_func_start FUN_0201BD7C FUN_0201BD7C: ; 0x0201BD7C ldr r3, _0201BD80 ; =FUN_0201BCFC bx r3 .balign 4 _0201BD80: .word FUN_0201BCFC thumb_func_start FUN_0201BD84 FUN_0201BD84: ; 0x0201BD84 push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, _0201BDDC ; =0x02105BB4 lsl r1, r1, #0x3 ldr r0, [r0, #0x0] add r1, r0, r1 ldrb r0, [r1, #0x2] strb r0, [r2, #0xe] ldrb r0, [r1, #0x3] strb r0, [r2, #0xf] ldrb r0, [r1, #0x4] strb r0, [r2, #0x10] ldrb r0, [r1, #0x5] strb r0, [r2, #0x11] ldrb r0, [r1, #0x6] strb r0, [r2, #0x12] ldrb r0, [r1, #0x7] ldr r1, [sp, #0x24] strb r0, [r2, #0x13] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r2, [sp, #0x28] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BDDC: .word 0x02105BB4 thumb_func_start FUN_0201BDE0 FUN_0201BDE0: ; 0x0201BDE0 push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, _0201BE38 ; =0x02105BB4 lsl r1, r1, #0x3 ldr r0, [r0, #0x0] add r1, r0, r1 ldrb r0, [r1, #0x2] strb r0, [r2, #0xe] ldrb r0, [r1, #0x3] strb r0, [r2, #0xf] ldrb r0, [r1, #0x4] ldr r1, [sp, #0x28] strb r0, [r2, #0x10] lsr r0, r1, #0x10 strb r0, [r2, #0x11] lsr r0, r1, #0x8 strb r0, [r2, #0x13] strb r1, [r2, #0x12] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r1, [sp, #0x24] ldr r2, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BE38: .word 0x02105BB4 thumb_func_start FUN_0201BE3C FUN_0201BE3C: ; 0x0201BE3C push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, [sp, #0x2c] strb r0, [r2, #0xe] ldr r0, [sp, #0x30] strb r0, [r2, #0xf] ldr r0, _0201BE94 ; =0x02105BB4 ldr r3, [r0, #0x0] lsl r0, r1, #0x3 add r0, r3, r0 ldrb r0, [r0, #0x4] ldr r1, [sp, #0x28] strb r0, [r2, #0x10] lsr r0, r1, #0x10 strb r0, [r2, #0x11] lsr r0, r1, #0x8 strb r0, [r2, #0x13] strb r1, [r2, #0x12] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r1, [sp, #0x24] ldr r2, [sp, #0x34] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BE94: .word 0x02105BB4 thumb_func_start FUN_0201BE98 FUN_0201BE98: ; 0x0201BE98 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0201BFD0 ; =0x02105BB4 add r6, r1, #0x0 ldr r0, [r0, #0x0] add r5, r2, #0x0 cmp r0, #0x0 bne _0201BEAC mov r0, #0xff pop {r3-r7, pc} _0201BEAC: mov r0, #0x0 mov r1, #0x30 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x1 add r0, #0x23 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r3, #0x0 add r0, #0x24 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r2, [r0, #0x0] mov r0, #0x7f bic r2, r0 lsl r0, r6, #0x18 lsr r1, r0, #0x18 mov r0, #0x7f and r0, r1 add r1, r2, #0x0 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x26 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x27 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x29 strb r3, [r0, #0x0] add r1, r3, #0x0 _0201BEF4: add r0, r4, r3 add r3, r3, #0x1 strb r1, [r0, #0x1c] cmp r3, #0x7 blt _0201BEF4 add r3, r7, #0x0 add r2, r4, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] bl FUN_02021F2C str r0, [r4, #0x0] ldr r0, _0201BFD4 ; =0x021C570C str r5, [r4, #0x18] mov r1, #0x0 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201C1A8 cmp r6, #0xff beq _0201BF74 cmp r6, #0x0 beq _0201BF74 add r0, r4, #0x0 add r0, #0x25 ldrb r2, [r0, #0x0] mov r1, #0x7f add r0, r2, #0x0 bic r0, r1 lsl r1, r2, #0x19 lsr r1, r1, #0x19 add r1, #0xff lsl r1, r1, #0x18 lsr r2, r1, #0x18 mov r1, #0x7f and r1, r2 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x80 mov r2, #0x1 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] ldr r0, _0201BFD8 ; =FUN_0201BFDC add r1, r4, #0x0 bl FUN_0201BCC8 add r1, r4, #0x0 add r1, #0x28 strb r0, [r1, #0x0] add r4, #0x28 ldrb r0, [r4, #0x0] pop {r3-r7, pc} _0201BF74: add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x7f mov r5, #0x0 bic r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x80 bic r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] ldrb r0, [r7, #0x11] ldrb r1, [r7, #0x12] ldrb r2, [r7, #0x13] bl FUN_0201C05C mov r7, #0x1 lsl r7, r7, #0xa _0201BFA4: add r0, r4, #0x0 bl FUN_0201C048 cmp r0, #0x1 beq _0201BFB4 add r5, r5, #0x1 cmp r5, r7 blo _0201BFA4 _0201BFB4: cmp r6, #0xff beq _0201BFBE ldr r0, [r4, #0x4] bl FUN_020191D0 _0201BFBE: add r0, r4, #0x0 bl FUN_0201C238 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x8 pop {r3-r7, pc} nop _0201BFD0: .word 0x02105BB4 _0201BFD4: .word 0x021C570C _0201BFD8: .word FUN_0201BFDC thumb_func_start FUN_0201BFDC FUN_0201BFDC: ; 0x0201BFDC push {r4, lr} ldr r0, _0201C044 ; =0x021C570C add r4, r1, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201C042 add r0, r4, #0x0 add r0, #0x29 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201C036 mov r0, #0x0 strh r0, [r4, #0x2a] ldrb r0, [r4, #0x11] ldrb r1, [r4, #0x12] ldrb r2, [r4, #0x13] bl FUN_0201C05C add r0, r4, #0x0 bl FUN_0201C048 cmp r0, #0x0 beq _0201C014 cmp r0, #0x1 beq _0201C02C cmp r0, #0x3 beq _0201C01A pop {r4, pc} _0201C014: ldr r0, [r4, #0x4] bl FUN_020191D0 _0201C01A: ldr r2, [r4, #0x18] cmp r2, #0x0 beq _0201C042 ldrh r1, [r4, #0x2a] add r0, r4, #0x0 blx r2 add r4, #0x29 strb r0, [r4, #0x0] pop {r4, pc} _0201C02C: add r4, #0x28 ldrb r0, [r4, #0x0] bl FUN_0201BCFC pop {r4, pc} _0201C036: ldrh r1, [r4, #0x2a] ldr r2, [r4, #0x18] add r0, r4, #0x0 blx r2 add r4, #0x29 strb r0, [r4, #0x0] _0201C042: pop {r4, pc} .balign 4 _0201C044: .word 0x021C570C thumb_func_start FUN_0201C048 FUN_0201C048: ; 0x0201C048 push {r4, lr} add r4, r0, #0x0 _0201C04C: ldrb r0, [r4, #0x9] add r1, r4, #0x0 bl FUN_02002DB0 cmp r0, #0x2 beq _0201C04C pop {r4, pc} .balign 4 thumb_func_start FUN_0201C05C FUN_0201C05C: ; 0x0201C05C push {r3-r7, lr} sub sp, #0x30 ldr r3, _0201C0F8 ; =0x021C570C mov r5, #0x0 str r5, [sp, #0x20] str r0, [sp, #0x24] str r2, [sp, #0x28] str r1, [sp, #0x2c] strh r1, [r3, #0x6] strh r0, [r3, #0x2] add r0, sp, #0x20 strh r2, [r3, #0x4] str r5, [sp, #0x14] str r0, [sp, #0x8] mov r12, r0 mov lr, r0 str r0, [sp, #0x18] _0201C07E: mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x18] str r0, [sp, #0x4] ldr r0, [sp, #0x8] ldr r0, [r0, #0x0] str r0, [sp, #0x1c] _0201C08C: mov r0, #0x0 str r0, [sp, #0xc] mov r0, lr str r0, [sp, #0x0] ldr r0, [sp, #0x4] ldr r0, [r0, #0x0] lsl r7, r0, #0x4 _0201C09A: ldr r0, [sp, #0x0] mov r3, #0x0 ldr r0, [r0, #0x0] mov r4, r12 lsl r6, r0, #0x8 _0201C0A4: ldr r0, [r4, #0x0] add r1, r7, #0x0 lsl r0, r0, #0xc orr r0, r6 orr r1, r0 ldr r0, [sp, #0x1c] add r3, r3, #0x1 add r2, r0, #0x0 orr r2, r1 lsl r1, r5, #0x1 ldr r0, _0201C0FC ; =0x021C5734 add r5, r5, #0x1 add r4, r4, #0x4 strh r2, [r0, r1] cmp r3, #0x4 blt _0201C0A4 ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] cmp r0, #0x4 blt _0201C09A ldr r0, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x4] ldr r0, [sp, #0x10] add r0, r0, #0x1 str r0, [sp, #0x10] cmp r0, #0x4 blt _0201C08C ldr r0, [sp, #0x8] add r0, r0, #0x4 str r0, [sp, #0x8] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x4 blt _0201C07E add sp, #0x30 pop {r3-r7, pc} .balign 4 _0201C0F8: .word 0x021C570C _0201C0FC: .word 0x021C5734 thumb_func_start FUN_0201C100 FUN_0201C100: ; 0x0201C100 ldrh r2, [r0, #0x0] lsr r2, r2, #0x8 lsl r3, r2, #0x1 ldr r2, _0201C1A4 ; =0x021C5734 ldrh r3, [r2, r3] strh r3, [r1, #0x0] ldrh r3, [r0, #0x0] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x2] ldrh r3, [r0, #0x2] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x4] ldrh r3, [r0, #0x2] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x6] ldrh r3, [r0, #0x4] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x8] ldrh r3, [r0, #0x4] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0xa] ldrh r3, [r0, #0x6] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0xc] ldrh r3, [r0, #0x6] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0xe] ldrh r3, [r0, #0x8] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x10] ldrh r3, [r0, #0x8] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x12] ldrh r3, [r0, #0xa] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x14] ldrh r3, [r0, #0xa] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x16] ldrh r3, [r0, #0xc] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x18] ldrh r3, [r0, #0xc] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x1a] ldrh r3, [r0, #0xe] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x1c] ldrh r0, [r0, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x17 ldrh r0, [r2, r0] strh r0, [r1, #0x1e] bx lr .balign 4 _0201C1A4: .word 0x021C5734 thumb_func_start FUN_0201C1A8 FUN_0201C1A8: ; 0x0201C1A8 mov r1, #0x0 str r1, [r0, #0x2c] bx lr .balign 4 thumb_func_start FUN_0201C1B0 FUN_0201C1B0: ; 0x0201C1B0 push {r3-r5, lr} sub sp, #0x8 mov r1, #0x6 mov r0, #0x0 lsl r1, r1, #0x8 bl FUN_02016998 mov r2, #0x0 add r5, r0, #0x0 str r2, [sp, #0x0] mov r0, #0xe mov r1, #0x5 add r3, sp, #0x4 bl FUN_02006BB0 add r4, r0, #0x0 ldr r0, [sp, #0x4] mov r2, #0x6 ldr r0, [r0, #0x14] add r1, r5, #0x0 lsl r2, r2, #0x8 blx MIi_CpuCopy32 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201C1EC FUN_0201C1EC: ; 0x0201C1EC push {r3-r7, lr} sub sp, #0x18 add r4, r0, #0x0 ldr r0, [r4, #0x2c] add r7, r3, #0x0 ldr r5, [r4, #0x4] cmp r0, #0x0 bne _0201C202 bl FUN_0201C1B0 str r0, [r4, #0x2c] _0201C202: mov r0, #0x6 lsl r0, r0, #0x6 add r6, r7, #0x0 mul r6, r0 add r0, r5, #0x0 ldr r4, [r4, #0x2c] bl FUN_0201AB0C sub r0, r0, #0x3 lsl r0, r0, #0x13 mov r1, #0x18 lsr r2, r0, #0x10 str r1, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r2, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] str r1, [sp, #0x10] str r0, [sp, #0x14] add r0, r5, #0x0 add r1, r4, r6 add r3, r2, #0x0 bl FUN_02019658 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_0201C238 FUN_0201C238: ; 0x0201C238 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x2c] cmp r0, #0x0 beq _0201C24A bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x2c] _0201C24A: pop {r4, pc} thumb_func_start FUN_0201C24C FUN_0201C24C: ; 0x0201C24C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0201C298 ; =0x021C5934 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C25E bl ErrorHandling _0201C25E: add r0, r4, #0x0 mov r1, #0xc bl FUN_02016998 ldr r1, _0201C298 ; =0x021C5934 cmp r0, #0x0 str r0, [r1, #0x0] bne _0201C272 bl ErrorHandling _0201C272: add r0, r4, #0x0 lsl r1, r5, #0x4 bl FUN_02016998 ldr r1, _0201C298 ; =0x021C5934 ldr r2, [r1, #0x0] str r0, [r2, #0x8] ldr r0, [r1, #0x0] mov r2, #0x0 str r5, [r0, #0x0] ldr r0, [r1, #0x0] str r2, [r0, #0x4] ldr r1, [r1, #0x0] ldr r0, [r1, #0x8] ldr r1, [r1, #0x0] blx FUN_020AEF1C pop {r3-r5, pc} nop _0201C298: .word 0x021C5934 thumb_func_start FUN_0201C29C FUN_0201C29C: ; 0x0201C29C push {r3, lr} ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201C2AA bl ErrorHandling _0201C2AA: ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bl FUN_02016A18 ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201C2C4 ; =0x021C5934 mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _0201C2C4: .word 0x021C5934 thumb_func_start FUN_0201C2C8 FUN_0201C2C8: ; 0x0201C2C8 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0201C308 ; =0x021C5934 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 bne _0201C2DE bl ErrorHandling _0201C2DE: ldr r1, _0201C308 ; =0x021C5934 ldr r0, [r1, #0x0] ldr r2, [r0, #0x4] add r2, r2, #0x1 str r2, [r0, #0x4] ldr r0, [r1, #0x0] ldr r1, [r0, #0x4] ldr r0, [r0, #0x0] cmp r1, r0 blo _0201C2FA bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201C2FA: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 blx FUN_020AEE40 pop {r3-r7, pc} .balign 4 _0201C308: .word 0x021C5934 thumb_func_start FUN_0201C30C FUN_0201C30C: ; 0x0201C30C push {r3, lr} ldr r0, _0201C324 ; =0x021C5934 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C322 blx FUN_020AEEB8 ldr r0, _0201C324 ; =0x021C5934 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x4] _0201C322: pop {r3, pc} .balign 4 _0201C324: .word 0x021C5934 thumb_func_start FUN_0201C328 FUN_0201C328: ; 0x0201C328 push {r3-r5, lr} add r4, r0, #0x0 add r0, r1, #0x0 mov r1, #0x30 mul r1, r4 bl FUN_02016998 ldr r2, _0201C344 ; =FUN_0201C358 add r1, r4, #0x0 add r5, r0, #0x0 blx FUN_020B4568 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _0201C344: .word FUN_0201C358 thumb_func_start FUN_0201C348 FUN_0201C348: ; 0x0201C348 ldr r3, _0201C34C ; =FUN_020B442C bx r3 .balign 4 _0201C34C: .word FUN_020B442C thumb_func_start FUN_0201C350 FUN_0201C350: ; 0x0201C350 ldr r3, _0201C354 ; =FUN_02016A18 bx r3 .balign 4 _0201C354: .word FUN_02016A18 thumb_func_start FUN_0201C358 FUN_0201C358: ; 0x0201C358 push {r3, lr} bl FUN_0201C2C8 pop {r3, pc} thumb_func_start FUN_0201C360 FUN_0201C360: ; 0x0201C360 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x8 bl FUN_02016998 mov r1, #0x14 add r4, r0, #0x0 add r0, r6, #0x0 mul r1, r5 bl FUN_02016998 str r0, [r4, #0x0] mov r6, #0x0 str r5, [r4, #0x4] cmp r5, #0x0 ble _0201C398 add r5, r6, #0x0 _0201C386: ldr r0, [r4, #0x0] add r0, r0, r5 bl FUN_0201C444 ldr r0, [r4, #0x4] add r6, r6, #0x1 add r5, #0x14 cmp r6, r0 blt _0201C386 _0201C398: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201C39C FUN_0201C39C: ; 0x0201C39C push {r4, lr} add r4, r0, #0x0 bl FUN_0201C414 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C3B4 FUN_0201C3B4: ; 0x0201C3B4 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r4, #0x0 add r7, r2, #0x0 mov r12, r1 add r6, r3, #0x0 add r2, r4, #0x0 cmp r0, #0x0 ble _0201C3E2 ldr r5, [r5, #0x0] add r3, r5, #0x0 _0201C3CC: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _0201C3DA mov r0, #0x14 mul r0, r2 add r4, r5, r0 b _0201C3E2 _0201C3DA: add r2, r2, #0x1 add r3, #0x14 cmp r2, r0 blt _0201C3CC _0201C3E2: cmp r4, #0x0 bne _0201C3EA mov r0, #0x0 pop {r3-r7, pc} _0201C3EA: mov r0, r12 str r0, [r4, #0x0] str r7, [r4, #0x4] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x18] str r6, [r4, #0x8] str r0, [r4, #0xc] mov r0, #0xff strb r0, [r4, #0x10] lsl r1, r1, #0x4 strb r0, [r4, #0x11] add r0, r4, #0x0 lsr r1, r1, #0x10 bl FUN_0201C454 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0201C40C FUN_0201C40C: ; 0x0201C40C ldr r3, _0201C410 ; =FUN_0201C444 bx r3 .balign 4 _0201C410: .word FUN_0201C444 thumb_func_start FUN_0201C414 FUN_0201C414: ; 0x0201C414 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _0201C434 add r4, r6, #0x0 _0201C422: ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201C444 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x14 cmp r6, r0 blt _0201C422 _0201C434: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201C438 FUN_0201C438: ; 0x0201C438 ldr r3, _0201C440 ; =FUN_0201C454 lsl r1, r1, #0x4 lsr r1, r1, #0x10 bx r3 .balign 4 _0201C440: .word FUN_0201C454 thumb_func_start FUN_0201C444 FUN_0201C444: ; 0x0201C444 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] str r1, [r0, #0xc] strb r1, [r0, #0x10] strb r1, [r0, #0x11] bx lr thumb_func_start FUN_0201C454 FUN_0201C454: ; 0x0201C454 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02022244 add r2, sp, #0x0 strb r0, [r2, #0x0] lsr r0, r0, #0x8 strb r0, [r2, #0x1] ldrb r0, [r2, #0x0] add r1, sp, #0x0 add r1, #0x2 strb r0, [r2, #0x2] ldrb r0, [r2, #0x1] strb r0, [r2, #0x3] ldrb r3, [r4, #0x10] ldrb r0, [r2, #0x2] cmp r3, r0 beq _0201C482 add r0, r4, #0x0 bl FUN_0201C49C _0201C482: add r0, sp, #0x0 ldrb r1, [r4, #0x11] ldrb r0, [r0, #0x3] cmp r1, r0 beq _0201C496 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x2 bl FUN_0201C4C8 _0201C496: add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201C49C FUN_0201C49C: ; 0x0201C49C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201C4F4 ldr r3, [r5, #0x8] add r2, r0, #0x0 lsl r1, r3, #0x10 ldr r6, _0201C4C4 ; =0x7FFF0000 mov r0, #0x0 and r3, r6 lsr r3, r3, #0x10 lsr r1, r1, #0xd lsl r3, r3, #0x4 bl FUN_0201C2C8 ldrb r0, [r4, #0x0] strb r0, [r5, #0x10] pop {r4-r6, pc} nop _0201C4C4: .word 0x7FFF0000 thumb_func_start FUN_0201C4C8 FUN_0201C4C8: ; 0x0201C4C8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201C500 ldr r3, [r5, #0xc] add r2, r0, #0x0 lsl r1, r3, #0x10 ldr r6, _0201C4F0 ; =0xFFFF0000 mov r0, #0x1 and r3, r6 lsr r3, r3, #0x10 lsr r1, r1, #0xd lsl r3, r3, #0x3 bl FUN_0201C2C8 ldrb r0, [r4, #0x1] strb r0, [r5, #0x11] pop {r4-r6, pc} nop _0201C4F0: .word 0xFFFF0000 thumb_func_start FUN_0201C4F4 FUN_0201C4F4: ; 0x0201C4F4 ldr r3, _0201C4FC ; =0x0201C50D ldr r0, [r0, #0x4] ldrb r1, [r1, #0x0] bx r3 .balign 4 _0201C4FC: .word 0x0201C50D thumb_func_start FUN_0201C500 FUN_0201C500: ; 0x0201C500 ldr r3, _0201C508 ; =0x0201C541 ldr r0, [r0, #0x4] ldrb r1, [r1, #0x1] bx r3 .balign 4 _0201C508: .word 0x0201C541 thumb_func_start FUN_0201C50C FUN_0201C50C: ; 0x0201C50C push {r3-r4} add r2, r0, #0x0 add r2, #0x42 ldrh r2, [r2, #0x0] add r4, r0, #0x0 add r4, #0x3c add r3, r4, r2 ldrh r2, [r4, r2] add r3, r3, #0x4 mul r1, r2 add r3, r3, r1 bne _0201C52A mov r0, #0x0 pop {r3-r4} bx lr _0201C52A: ldr r1, [r0, #0x14] add r2, r0, r1 ldr r1, [r3, #0x0] ldr r0, [r0, #0x8] lsl r1, r1, #0x10 lsr r1, r1, #0x10 add r0, r1, r0 lsl r0, r0, #0x3 add r0, r2, r0 pop {r3-r4} bx lr thumb_func_start FUN_0201C540 FUN_0201C540: ; 0x0201C540 push {r3-r4} ldrh r2, [r0, #0x34] add r4, r0, r2 ldrh r2, [r4, #0x6] add r3, r4, r2 ldrh r2, [r4, r2] add r3, r3, #0x4 mul r1, r2 add r2, r3, r1 bne _0201C55A mov r0, #0x0 pop {r3-r4} bx lr _0201C55A: ldr r1, [r0, #0x38] add r1, r0, r1 ldrh r0, [r2, #0x0] lsl r0, r0, #0x3 add r0, r1, r0 pop {r3-r4} bx lr thumb_func_start FUN_0201C568 FUN_0201C568: ; 0x0201C568 ldr r1, [r1, #0x0] ldr r0, [r0, #0x8] lsl r1, r1, #0x10 lsl r0, r0, #0x10 lsr r1, r1, #0xd lsr r0, r0, #0xd add r0, r1, r0 bx lr thumb_func_start FUN_0201C578 FUN_0201C578: ; 0x0201C578 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_0201C750 add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 blx FUN_020BC2A0 add r1, r0, #0x0 bne _0201C598 add sp, #0x10 mov r0, #0x0 pop {r4, pc} _0201C598: add r0, r4, #0x0 bl FUN_0201C568 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C5A4 FUN_0201C5A4: ; 0x0201C5A4 push {r3, lr} ldr r0, [r1, #0x0] mov r1, #0x7 lsl r1, r1, #0x1a and r1, r0 lsr r1, r1, #0x1a cmp r1, #0x4 bhi _0201C5DA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201C5C0: ; jump table (using 16-bit offset) .short _0201C5DA - _0201C5C0 - 2; case 0 .short _0201C5D6 - _0201C5C0 - 2; case 1 .short _0201C5CA - _0201C5C0 - 2; case 2 .short _0201C5CE - _0201C5C0 - 2; case 3 .short _0201C5D2 - _0201C5C0 - 2; case 4 _0201C5CA: mov r1, #0x4 b _0201C5DE _0201C5CE: mov r1, #0x2 b _0201C5DE _0201C5D2: mov r1, #0x1 b _0201C5DE _0201C5D6: mov r1, #0x1 b _0201C5DE _0201C5DA: mov r0, #0x0 pop {r3, pc} _0201C5DE: mov r3, #0x7 lsl r3, r3, #0x14 add r2, r0, #0x0 and r2, r3 lsl r3, r3, #0x3 and r0, r3 lsr r2, r2, #0x14 lsr r0, r0, #0x17 lsl r2, r2, #0x4 lsl r0, r0, #0x4 mul r0, r2 blx _u32_div_f pop {r3, pc} .balign 4 thumb_func_start FUN_0201C5FC FUN_0201C5FC: ; 0x0201C5FC push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_0201C750 add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 blx FUN_020BC2A0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201C5A4 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C620 FUN_0201C620: ; 0x0201C620 ldrb r3, [r0, #0x0] strb r3, [r1, #0x0] ldrb r0, [r0, #0x1] strb r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0201C62C FUN_0201C62C: ; 0x0201C62C ldrb r3, [r0, #0x2] strb r3, [r1, #0x0] ldrb r0, [r0, #0x3] strb r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0201C638 FUN_0201C638: ; 0x0201C638 push {r4-r5} ldr r5, _0201C6B0 ; =0xFFFFFFF8 ldr r4, [sp, #0xc] add r5, sp ldrb r5, [r5, #0x18] cmp r5, #0x3 bhi _0201C678 add r5, r5, r5 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _0201C652: ; jump table (using 16-bit offset) .short _0201C65A - _0201C652 - 2; case 0 .short _0201C662 - _0201C652 - 2; case 1 .short _0201C66A - _0201C652 - 2; case 2 .short _0201C672 - _0201C652 - 2; case 3 _0201C65A: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x4] b _0201C678 _0201C662: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x5] b _0201C678 _0201C66A: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x6] b _0201C678 _0201C672: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x7] _0201C678: cmp r1, #0x0 beq _0201C682 lsl r5, r4, #0x3 ldrb r5, [r0, r5] strb r5, [r1, #0x0] _0201C682: cmp r2, #0x0 beq _0201C68E lsl r1, r4, #0x3 add r1, r0, r1 ldrb r1, [r1, #0x1] strb r1, [r2, #0x0] _0201C68E: cmp r3, #0x0 beq _0201C69A lsl r1, r4, #0x3 add r1, r0, r1 ldrb r1, [r1, #0x2] strb r1, [r3, #0x0] _0201C69A: ldr r2, [sp, #0x8] cmp r2, #0x0 beq _0201C6A8 lsl r1, r4, #0x3 add r0, r0, r1 ldrb r0, [r0, #0x3] strb r0, [r2, #0x0] _0201C6A8: add r0, r4, #0x0 pop {r4-r5} bx lr nop _0201C6B0: .word 0xFFFFFFF8 thumb_func_start FUN_0201C6B4 FUN_0201C6B4: ; 0x0201C6B4 mov r2, #0x0 ldrsb r1, [r0, r2] cmp r1, #0x0 beq _0201C6C4 _0201C6BC: add r2, r2, #0x1 ldrsb r1, [r0, r2] cmp r1, #0x0 bne _0201C6BC _0201C6C4: add r0, r2, #0x0 bx lr thumb_func_start FUN_0201C6C8 FUN_0201C6C8: ; 0x0201C6C8 push {r4-r5} mov r4, #0x1 mov r3, #0x0 lsl r4, r4, #0x8 _0201C6D0: ldrsb r5, [r0, r3] strb r5, [r1, r3] ldrsb r5, [r0, r3] cmp r2, r5 beq _0201C6DE cmp r5, #0x0 bne _0201C6FE _0201C6DE: mov r4, #0x0 strb r4, [r1, r3] cmp r2, #0xd bne _0201C6F6 add r1, r3, #0x1 ldrsb r1, [r0, r1] cmp r1, #0xa bne _0201C6F6 add r1, r3, #0x2 add r0, r0, r1 pop {r4-r5} bx lr _0201C6F6: add r1, r3, #0x1 add r0, r0, r1 pop {r4-r5} bx lr _0201C6FE: add r3, r3, #0x1 cmp r3, r4 blt _0201C6D0 mov r0, #0x0 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0201C70C FUN_0201C70C: ; 0x0201C70C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_0201C6B4 mov r5, #0x1 mov r6, #0x0 sub r3, r0, #0x1 bmi _0201C74A sub r1, r6, #0x1 mov r0, #0xa _0201C720: ldrsb r2, [r4, r3] cmp r2, #0x30 blt _0201C732 cmp r2, #0x39 bgt _0201C732 sub r2, #0x30 mul r2, r5 add r6, r6, r2 b _0201C744 _0201C732: cmp r3, #0x0 bne _0201C73E cmp r2, #0x2d bne _0201C744 mul r6, r1 b _0201C744 _0201C73E: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _0201C744: mul r5, r0 sub r3, r3, #0x1 bpl _0201C720 _0201C74A: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201C750 FUN_0201C750: ; 0x0201C750 push {r3-r5, lr} mov r2, #0x0 add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 _0201C75A: lsl r0, r2, #0x2 str r1, [r5, r0] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0x4 blo _0201C75A add r0, r4, #0x0 bl FUN_0201C6B4 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r2, _0201C788 ; =0x00000000 beq _0201C784 _0201C776: ldrsb r0, [r4, r2] strb r0, [r5, r2] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, r1 blo _0201C776 _0201C784: pop {r3-r5, pc} nop _0201C788: .word 0x00000000 thumb_func_start FUN_0201C78C FUN_0201C78C: ; 0x0201C78C ldr r1, _0201C79C ; =0x00000121 cmp r0, r1 bhs _0201C796 mov r0, #0x1 bx lr _0201C796: mov r0, #0x0 bx lr nop _0201C79C: .word 0x00000121 thumb_func_start FUN_0201C7A0 FUN_0201C7A0: ; 0x0201C7A0 cmp r0, r1 blt _0201C7A6 add r0, r1, #0x0 _0201C7A6: bx lr thumb_func_start FUN_0201C7A8 FUN_0201C7A8: ; 0x0201C7A8 cmp r0, r1 bgt _0201C7AE add r0, r1, #0x0 _0201C7AE: bx lr thumb_func_start FUN_0201C7B0 FUN_0201C7B0: ; 0x0201C7B0 push {r3-r7, lr} sub sp, #0x30 add r4, r1, #0x0 add r1, sp, #0x24 blx VEC_Normalize add r0, r4, #0x0 add r1, sp, #0x18 blx VEC_Normalize ldr r0, [sp, #0x24] ldr r4, [sp, #0x18] str r0, [sp, #0x0] asr r0, r0, #0x1f str r0, [sp, #0x4] ldr r0, [sp, #0x20] asr r6, r4, #0x1f str r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x8] asr r7, r0, #0x1f ldr r3, [sp, #0xc] add r1, r7, #0x0 str r0, [sp, #0x10] blx _ll_mul str r0, [sp, #0x14] add r5, r1, #0x0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r2, r4, #0x0 add r3, r6, #0x0 blx _ll_mul mov r2, #0x2 ldr r3, [sp, #0x14] lsl r2, r2, #0xa add r3, r3, r2 ldr r2, _0201C874 ; =0x00000000 adc r5, r2 lsl r2, r5, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0201C874 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 add r5, r3, r0 ldr r0, [sp, #0x10] add r1, r7, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 blx _ll_mul add r6, r0, #0x0 add r4, r1, #0x0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r6, r6, r2 adc r4, r3 lsl r4, r4, #0x14 lsr r6, r6, #0xc orr r6, r4 add r4, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r4, #0xc orr r1, r0 sub r0, r6, r1 cmp r5, #0x0 bne _0201C86A cmp r0, #0x0 ble _0201C862 add sp, #0x30 lsl r0, r2, #0x3 pop {r3-r7, pc} _0201C862: mov r0, #0x3 add sp, #0x30 lsl r0, r0, #0xe pop {r3-r7, pc} _0201C86A: add r1, r5, #0x0 blx FX_Atan2 add sp, #0x30 pop {r3-r7, pc} .balign 4 _0201C874: .word 0x00000000 thumb_func_start FUN_0201C878 FUN_0201C878: ; 0x0201C878 push {r0-r3} push {r4-r7, lr} sub sp, #0x54 ldr r0, [sp, #0x7c] ldr r2, [sp, #0x80] str r0, [sp, #0x8] ldr r0, [sp, #0x94] ldr r1, [sp, #0x8c] str r0, [sp, #0xc] ldr r0, [sp, #0x88] ldr r4, [sp, #0x70] str r0, [sp, #0x10] sub r0, r2, r1 str r0, [sp, #0x14] asr r0, r0, #0x1f str r0, [sp, #0x18] ldr r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0x1c] ldr r0, [sp, #0x74] sub r3, r0, r2 sub r0, r1, r0 str r3, [sp, #0x20] asr r3, r3, #0x1f str r3, [sp, #0x24] ldr r3, [sp, #0xc] str r0, [sp, #0x2c] asr r0, r0, #0x1f str r0, [sp, #0x30] ldr r0, [sp, #0x10] asr r3, r3, #0x1f str r3, [sp, #0x28] asr r0, r0, #0x1f ldr r3, [sp, #0x68] str r0, [sp, #0x34] asr r0, r4, #0x1f str r0, [sp, #0x38] sub r2, r2, r3 ldr r0, [sp, #0x8] ldr r1, [sp, #0x1c] asr r3, r2, #0x1f blx _ll_mul add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x74] ldr r0, [sp, #0x10] sub r2, r3, r2 ldr r1, [sp, #0x34] asr r3, r2, #0x1f blx _ll_mul add r5, r1, #0x0 str r0, [sp, #0x3c] ldr r1, [sp, #0x38] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] add r0, r4, #0x0 blx _ll_mul mov r2, #0x2 str r0, [sp, #0x4c] add r0, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0xa add r3, r7, r2 adc r6, r1 lsl r2, r6, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 ldr r6, [sp, #0x3c] lsl r2, r2, #0xa add r2, r6, r2 adc r5, r1 mov r6, #0x2 lsl r5, r5, #0x14 lsr r2, r2, #0xc orr r2, r5 ldr r5, [sp, #0x4c] lsl r6, r6, #0xa add r5, r5, r6 adc r0, r1 lsl r0, r0, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r2, r1 add r0, r3, r0 str r0, [sp, #0x4] ldr r3, [sp, #0x8c] ldr r2, [sp, #0x68] ldr r0, [sp, #0x10] sub r2, r3, r2 ldr r1, [sp, #0x34] asr r3, r2, #0x1f blx _ll_mul add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x80] ldr r0, [sp, #0xc] sub r2, r3, r2 ldr r1, [sp, #0x28] asr r3, r2, #0x1f blx _ll_mul str r0, [sp, #0x40] add r5, r1, #0x0 ldr r1, [sp, #0x38] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] add r0, r4, #0x0 blx _ll_mul mov r2, #0x2 str r0, [sp, #0x50] add r0, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0xa add r3, r7, r2 adc r6, r1 lsl r2, r6, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 ldr r6, [sp, #0x40] lsl r2, r2, #0xa add r2, r6, r2 adc r5, r1 mov r6, #0x2 lsl r5, r5, #0x14 lsr r2, r2, #0xc orr r2, r5 ldr r5, [sp, #0x50] lsl r6, r6, #0xa add r5, r5, r6 adc r0, r1 lsl r0, r0, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r2, r1 add r0, r3, r0 str r0, [sp, #0x0] ldr r3, [sp, #0x74] ldr r2, [sp, #0x68] ldr r0, [sp, #0xc] sub r2, r3, r2 ldr r1, [sp, #0x28] asr r3, r2, #0x1f blx _ll_mul add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x8c] ldr r0, [sp, #0x8] sub r2, r3, r2 ldr r1, [sp, #0x1c] asr r3, r2, #0x1f blx _ll_mul add r5, r1, #0x0 str r0, [sp, #0x44] ldr r1, [sp, #0x38] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] add r0, r4, #0x0 blx _ll_mul mov r3, #0x2 mov r2, #0x0 lsl r3, r3, #0xa add r4, r7, r3 adc r6, r2 lsl r3, r6, #0x14 lsr r4, r4, #0xc orr r4, r3 mov r3, #0x2 ldr r6, [sp, #0x44] lsl r3, r3, #0xa add r3, r6, r3 adc r5, r2 lsl r5, r5, #0x14 lsr r3, r3, #0xc orr r3, r5 mov r5, #0x2 lsl r5, r5, #0xa add r5, r0, r5 adc r1, r2 lsl r0, r1, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r3, r1 add r6, r4, r0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] blx _ll_mul add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x28] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] blx _ll_mul str r0, [sp, #0x48] add r4, r1, #0x0 ldr r0, [sp, #0x8] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] blx _ll_mul mov r12, r0 mov r0, #0x2 add r2, r1, #0x0 mov r1, #0x0 lsl r0, r0, #0xa add r0, r7, r0 adc r5, r1 lsl r3, r5, #0x14 lsr r0, r0, #0xc orr r0, r3 mov r3, #0x2 ldr r5, [sp, #0x48] lsl r3, r3, #0xa add r3, r5, r3 adc r4, r1 lsl r4, r4, #0x14 lsr r3, r3, #0xc orr r3, r4 mov r4, #0x2 lsl r4, r4, #0xa mov r5, r12 add r4, r5, r4 adc r2, r1 lsl r2, r2, #0x14 lsr r4, r4, #0xc orr r4, r2 add r2, r3, r4 add r0, r0, r2 bpl _0201CA72 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA72: ldr r0, [sp, #0x4] cmp r0, #0x0 bge _0201CA84 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA84: ldr r0, [sp, #0x0] cmp r0, #0x0 bge _0201CA96 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA96: cmp r6, #0x0 blt _0201CA9C mov r1, #0x1 _0201CA9C: add r0, r1, #0x0 add sp, #0x54 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_0201CAA8 FUN_0201CAA8: ; 0x0201CAA8 push {r4-r5, lr} sub sp, #0x24 add r4, r1, #0x0 ldr r1, [r4, #0x0] ldr r3, _0201CB1C ; =0x020FFA38 lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #0x4 lsl r2, r1, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r5, r0, #0x0 bl MTX_RotX33_ ldr r0, [r4, #0x4] ldr r3, _0201CB1C ; =0x020FFA38 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0x0 bl MTX_RotY33_ add r0, r5, #0x0 add r1, sp, #0x0 add r2, r5, #0x0 blx MTX_Concat33 ldr r0, [r4, #0x8] ldr r3, _0201CB1C ; =0x020FFA38 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0x0 bl MTX_RotZ33_ add r0, r5, #0x0 add r1, sp, #0x0 add r2, r5, #0x0 blx MTX_Concat33 add sp, #0x24 pop {r4-r5, pc} nop _0201CB1C: .word 0x020FFA38 thumb_func_start FUN_0201CB20 FUN_0201CB20: ; 0x0201CB20 push {r4-r7, lr} sub sp, #0x24 add r6, r1, #0x0 add r5, r2, #0x0 lsl r1, r6, #0x2 ldr r2, _0201CB78 ; =0x020EDF50 add r6, #0x5a add r4, r3, #0x0 lsl r3, r6, #0x2 ldr r1, [r2, r1] ldr r2, [r2, r3] add r7, r0, #0x0 bl MTX_RotX33_ lsl r1, r5, #0x2 ldr r3, _0201CB78 ; =0x020EDF50 add r5, #0x5a lsl r2, r5, #0x2 ldr r1, [r3, r1] ldr r2, [r3, r2] add r0, sp, #0x0 bl MTX_RotY33_ add r0, r7, #0x0 add r1, sp, #0x0 add r2, r7, #0x0 blx MTX_Concat33 lsl r1, r4, #0x2 ldr r3, _0201CB78 ; =0x020EDF50 add r4, #0x5a lsl r2, r4, #0x2 ldr r1, [r3, r1] ldr r2, [r3, r2] add r0, sp, #0x0 bl MTX_RotZ33_ add r0, r7, #0x0 add r1, sp, #0x0 add r2, r7, #0x0 blx MTX_Concat33 add sp, #0x24 pop {r4-r7, pc} .balign 4 _0201CB78: .word 0x020EDF50 thumb_func_start FUN_0201CB7C FUN_0201CB7C: ; 0x0201CB7C push {r3-r7, lr} asr r0, r0, #0x4 add r7, r2, #0x0 lsl r2, r0, #0x1 add r6, r1, #0x0 lsl r0, r2, #0x1 ldr r1, _0201CBE8 ; =0x020FFA38 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r1, r0] ldrsh r1, [r1, r2] add r5, r3, #0x0 ldr r4, [sp, #0x18] blx FX_Div add r2, r0, #0x0 asr r1, r6, #0x1f add r0, r6, #0x0 asr r3, r2, #0x1f blx _ll_mul mov r6, #0x2 mov r2, #0x0 lsl r6, r6, #0xa add r0, r0, r6 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r3, r0, #0x1f lsr r1, r0, #0x13 lsl r3, r3, #0xd orr r3, r1 lsl r0, r0, #0xd add r0, r0, r6 adc r3, r2 lsl r1, r3, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r7, #0x1f add r2, r7, #0x0 str r0, [r4, #0x0] blx _ll_mul mov r3, #0x0 add r2, r6, #0x0 add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [r5, #0x0] pop {r3-r7, pc} .balign 4 _0201CBE8: .word 0x020FFA38 thumb_func_start FUN_0201CBEC FUN_0201CBEC: ; 0x0201CBEC push {r3, lr} sub r0, r0, r2 sub r2, r1, r3 add r1, r0, #0x0 mul r1, r0 add r0, r2, #0x0 mul r0, r2 add r0, r1, r0 lsl r0, r0, #0xc blx FX_Sqrt asr r0, r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_0201CC08 FUN_0201CC08: ; 0x0201CC08 push {r3, lr} ldr r0, _0201CC20 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC16 bl ErrorHandling _0201CC16: ldr r0, _0201CC20 ; =0x021C5978 mov r1, #0x0 strh r1, [r0, #0x18] strh r1, [r0, #0x1a] pop {r3, pc} .balign 4 _0201CC20: .word 0x021C5978 thumb_func_start FUN_0201CC24 FUN_0201CC24: ; 0x0201CC24 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _0201CC74 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC36 bl ErrorHandling _0201CC36: cmp r4, #0x5 bhs _0201CC3E cmp r4, #0x0 bne _0201CC44 _0201CC3E: add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0201CC44: ldr r0, _0201CC74 ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CC52 add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0201CC52: add r0, r4, #0x0 bl FUN_0201CE2C cmp r0, #0x1 bne _0201CC70 mov r2, #0x0 str r2, [sp, #0x0] lsl r0, r4, #0x1 str r0, [sp, #0x4] mov r0, #0x2 mov r1, #0x1 add r3, r2, #0x0 bl FUN_0201CC78 mov r0, #0x1 _0201CC70: add sp, #0x8 pop {r4, pc} .balign 4 _0201CC74: .word 0x021C5978 thumb_func_start FUN_0201CC78 FUN_0201CC78: ; 0x0201CC78 push {r4, lr} ldr r4, _0201CC9C ; =0x021C5978 strh r0, [r4, #0x18] ldr r0, _0201CCA0 ; =0x021C4918 strb r1, [r0, #0x4] ldr r0, _0201CCA4 ; =0x021C5938 ldr r1, [sp, #0xc] str r2, [r0, #0x0] str r3, [r0, #0x4] str r1, [r0, #0x8] ldr r1, [sp, #0x8] str r1, [r0, #0x54] ldr r0, _0201CCA8 ; =0x021C5944 mov r1, #0x9 bl FUN_0201CCAC pop {r4, pc} nop _0201CC9C: .word 0x021C5978 _0201CCA0: .word 0x021C4918 _0201CCA4: .word 0x021C5938 _0201CCA8: .word 0x021C5944 thumb_func_start FUN_0201CCAC FUN_0201CCAC: ; 0x0201CCAC mov r3, #0x0 cmp r1, #0x0 ble _0201CCBE add r2, r3, #0x0 _0201CCB4: add r3, r3, #0x1 strh r2, [r0, #0x4] add r0, #0x8 cmp r3, r1 blt _0201CCB4 _0201CCBE: bx lr thumb_func_start FUN_0201CCC0 FUN_0201CCC0: ; 0x0201CCC0 push {r4-r6, lr} ldr r0, _0201CD00 ; =0x021C5978 mov r5, #0x0 ldrh r0, [r0, #0x18] cmp r0, #0x0 bne _0201CCD0 mov r0, #0x1 pop {r4-r6, pc} _0201CCD0: mov r4, #0x4 add r6, r4, #0x0 _0201CCD4: blx TP_RequestAutoSamplingStopAsync add r0, r4, #0x0 blx TP_WaitBusy add r0, r6, #0x0 blx TP_CheckError cmp r0, #0x0 beq _0201CCEA add r5, r5, #0x1 _0201CCEA: cmp r0, #0x0 beq _0201CCF2 cmp r5, #0x5 bls _0201CCD4 _0201CCF2: cmp r5, #0x5 bls _0201CCFA mov r0, #0x2 pop {r4-r6, pc} _0201CCFA: mov r0, #0x1 pop {r4-r6, pc} nop _0201CD00: .word 0x021C5978 thumb_func_start FUN_0201CD04 FUN_0201CD04: ; 0x0201CD04 push {r4, lr} sub sp, #0x8 ldr r0, _0201CD34 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CD14 bl ErrorHandling _0201CD14: bl FUN_0201CCC0 add r4, r0, #0x0 cmp r4, #0x1 bne _0201CD2E mov r0, #0x0 str r0, [sp, #0x0] add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 str r0, [sp, #0x4] bl FUN_0201CC78 _0201CD2E: add r0, r4, #0x0 add sp, #0x8 pop {r4, pc} .balign 4 _0201CD34: .word 0x021C5978 thumb_func_start FUN_0201CD38 FUN_0201CD38: ; 0x0201CD38 push {r3-r7, lr} add r4, r0, #0x0 ldr r0, _0201CD8C ; =0x021C5978 add r6, r1, #0x0 ldrh r0, [r0, #0x1a] add r7, r2, #0x0 mov r5, #0x3 cmp r0, #0x0 beq _0201CD4E bl ErrorHandling _0201CD4E: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CD88 blx TP_GetLatestIndexInAuto add r5, r0, #0x0 ldr r0, _0201CD90 ; =0x021C5944 mov r1, #0x9 bl FUN_0201CD94 cmp r4, #0x0 beq _0201CD70 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201CFD0 _0201CD70: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x1 bne _0201CD86 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_0201CE70 add r5, r0, #0x0 b _0201CD88 _0201CD86: mov r5, #0x1 _0201CD88: add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _0201CD8C: .word 0x021C5978 _0201CD90: .word 0x021C5944 thumb_func_start FUN_0201CD94 FUN_0201CD94: ; 0x0201CD94 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r7, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 beq _0201CDCA add r4, r5, #0x0 add r6, sp, #0x4 _0201CDA6: add r0, sp, #0x4 add r1, r5, #0x0 blx TP_GetCalibratedPoint ldrh r0, [r6, #0x0] add r7, r7, #0x1 add r5, #0x8 strh r0, [r4, #0x0] ldrh r0, [r6, #0x2] strh r0, [r4, #0x2] ldrh r0, [r6, #0x4] strh r0, [r4, #0x4] ldrh r0, [r6, #0x6] strh r0, [r4, #0x6] ldr r0, [sp, #0x0] add r4, #0x8 cmp r7, r0 blo _0201CDA6 _0201CDCA: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0201CDD0 FUN_0201CDD0: ; 0x0201CDD0 push {r3, lr} ldr r0, _0201CDFC ; =0x021C5978 ldrh r1, [r0, #0x1a] cmp r1, #0x0 beq _0201CDF8 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CDF8 ldr r0, _0201CE00 ; =0x021C5938 ldr r0, [r0, #0x8] lsr r0, r0, #0x1 bl FUN_0201CE2C cmp r0, #0x1 beq _0201CDF2 bl ErrorHandling _0201CDF2: ldr r0, _0201CDFC ; =0x021C5978 mov r1, #0x0 strh r1, [r0, #0x1a] _0201CDF8: pop {r3, pc} nop _0201CDFC: .word 0x021C5978 _0201CE00: .word 0x021C5938 thumb_func_start FUN_0201CE04 FUN_0201CE04: ; 0x0201CE04 push {r3, lr} ldr r0, _0201CE28 ; =0x021C5978 ldrh r1, [r0, #0x1a] cmp r1, #0x1 beq _0201CE26 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CE26 bl FUN_0201CCC0 cmp r0, #0x1 beq _0201CE20 bl ErrorHandling _0201CE20: ldr r0, _0201CE28 ; =0x021C5978 mov r1, #0x1 strh r1, [r0, #0x1a] _0201CE26: pop {r3, pc} .balign 4 _0201CE28: .word 0x021C5978 thumb_func_start FUN_0201CE2C FUN_0201CE2C: ; 0x0201CE2C push {r3-r7, lr} mov r5, #0x0 lsl r0, r0, #0x10 ldr r7, _0201CE6C ; =0x021C5944 add r6, r5, #0x0 lsr r4, r0, #0x10 _0201CE38: add r0, r6, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 mov r3, #0x9 blx TP_RequestAutoSamplingStartAsync mov r0, #0x2 blx TP_WaitBusy mov r0, #0x2 blx TP_CheckError cmp r0, #0x0 beq _0201CE56 add r5, r5, #0x1 _0201CE56: cmp r0, #0x0 beq _0201CE5E cmp r5, #0x5 ble _0201CE38 _0201CE5E: cmp r5, #0x5 ble _0201CE66 mov r0, #0x2 pop {r3-r7, pc} _0201CE66: mov r0, #0x1 pop {r3-r7, pc} nop _0201CE6C: .word 0x021C5944 thumb_func_start FUN_0201CE70 FUN_0201CE70: ; 0x0201CE70 push {r3, lr} cmp r0, #0x5 bhi _0201CE9A add r3, r0, r0 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0201CE82: ; jump table (using 16-bit offset) .short _0201CE9A - _0201CE82 - 2; case 0 .short _0201CE8E - _0201CE82 - 2; case 1 .short _0201CE9A - _0201CE82 - 2; case 2 .short _0201CE8E - _0201CE82 - 2; case 3 .short _0201CE94 - _0201CE82 - 2; case 4 .short _0201CE94 - _0201CE82 - 2; case 5 _0201CE8E: bl FUN_0201CEA0 pop {r3, pc} _0201CE94: bl FUN_0201CF58 pop {r3, pc} _0201CE9A: mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0201CEA0 FUN_0201CEA0: ; 0x0201CEA0 push {r3-r7, lr} sub sp, #0x8 ldr r5, _0201CF50 ; =0x021C5938 str r1, [sp, #0x4] ldr r1, [r5, #0x8] str r0, [sp, #0x0] add r7, r2, #0x0 mov r4, #0x0 cmp r1, #0x0 bls _0201CF46 _0201CEB4: ldr r0, [sp, #0x4] sub r0, r0, r1 add r0, r4, r0 add r0, r0, #0x1 lsl r0, r0, #0x10 asr r0, r0, #0x10 bpl _0201CEC8 add r0, #0x9 lsl r0, r0, #0x10 asr r0, r0, #0x10 _0201CEC8: lsl r1, r0, #0x3 ldr r0, _0201CF54 ; =0x021C5938 add r1, r0, r1 ldrh r0, [r1, #0x10] cmp r0, #0x1 bne _0201CF3E ldrh r0, [r1, #0x12] cmp r0, #0x0 bne _0201CF3E ldr r2, [r5, #0x54] ldr r0, [r5, #0x0] lsl r2, r2, #0x3 add r2, r0, r2 add r0, r2, #0x0 sub r0, #0x8 ldrh r3, [r1, #0xc] ldrh r0, [r0, #0x0] cmp r0, r3 blt _0201CEF2 sub r3, r0, r3 b _0201CEF4 _0201CEF2: sub r3, r3, r0 _0201CEF4: sub r6, r2, #0x6 ldrh r0, [r1, #0xe] ldrh r6, [r6, #0x0] cmp r6, r0 blt _0201CF02 sub r0, r6, r0 b _0201CF04 _0201CF02: sub r0, r0, r6 _0201CF04: cmp r3, r7 bhs _0201CF0C cmp r0, r7 blo _0201CF3E _0201CF0C: ldrh r0, [r1, #0xc] strh r0, [r2, #0x0] ldrh r0, [r1, #0xe] strh r0, [r2, #0x2] ldrh r0, [r1, #0x10] strh r0, [r2, #0x4] ldrh r0, [r1, #0x12] strh r0, [r2, #0x6] ldr r0, [r5, #0x54] add r0, r0, #0x1 str r0, [r5, #0x54] ldr r1, [r5, #0x4] cmp r0, r1 blo _0201CF3E ldr r2, [sp, #0x0] cmp r2, #0x1 bne _0201CF36 blx _u32_div_f str r1, [r5, #0x54] b _0201CF3E _0201CF36: mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r7, pc} _0201CF3E: ldr r1, [r5, #0x8] add r4, r4, #0x1 cmp r4, r1 blo _0201CEB4 _0201CF46: ldr r0, _0201CF50 ; =0x021C5938 ldr r0, [r0, #0x54] add sp, #0x8 pop {r3-r7, pc} nop _0201CF50: .word 0x021C5938 _0201CF54: .word 0x021C5938 thumb_func_start FUN_0201CF58 FUN_0201CF58: ; 0x0201CF58 push {r3-r7, lr} ldr r5, _0201CFC8 ; =0x021C5938 str r1, [sp, #0x0] ldr r1, [r5, #0x8] add r7, r0, #0x0 mov r4, #0x0 cmp r1, #0x0 bls _0201CFC0 _0201CF68: ldr r0, [sp, #0x0] sub r0, r0, r1 add r0, r4, r0 add r0, r0, #0x1 lsl r0, r0, #0x10 asr r1, r0, #0x10 bpl _0201CF7C add r1, #0x9 lsl r0, r1, #0x10 asr r1, r0, #0x10 _0201CF7C: ldr r0, [r5, #0x54] lsl r1, r1, #0x3 lsl r3, r0, #0x3 ldr r0, _0201CFCC ; =0x021C5938 ldr r6, [r5, #0x0] add r2, r0, r1 ldrh r0, [r2, #0xc] add r1, r6, r3 strh r0, [r6, r3] ldrh r0, [r2, #0xe] strh r0, [r1, #0x2] ldrh r0, [r2, #0x10] strh r0, [r1, #0x4] ldrh r0, [r2, #0x12] strh r0, [r1, #0x6] ldr r0, [r5, #0x54] add r0, r0, #0x1 str r0, [r5, #0x54] ldr r1, [r5, #0x4] cmp r0, r1 blo _0201CFB8 cmp r7, #0x4 bne _0201CFB2 blx _u32_div_f str r1, [r5, #0x54] b _0201CFB8 _0201CFB2: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0201CFB8: ldr r1, [r5, #0x8] add r4, r4, #0x1 cmp r4, r1 blo _0201CF68 _0201CFC0: ldr r0, _0201CFC8 ; =0x021C5938 ldr r0, [r0, #0x54] pop {r3-r7, pc} nop _0201CFC8: .word 0x021C5938 _0201CFCC: .word 0x021C5938 thumb_func_start FUN_0201CFD0 FUN_0201CFD0: ; 0x0201CFD0 push {r4-r7} mov r2, #0x0 strh r2, [r0, #0x0] add r3, r0, #0x0 add r6, r2, #0x0 _0201CFDA: strh r6, [r3, #0x8] strh r6, [r3, #0x6] strh r6, [r3, #0x2] strh r6, [r3, #0x4] add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x8 blt _0201CFDA ldr r2, _0201D038 ; =0x021C5938 ldr r3, [r2, #0x8] cmp r3, #0x0 bls _0201D034 ldr r4, _0201D03C ; =0x021C5938 _0201CFF4: sub r3, r1, r3 add r3, r6, r3 add r3, r3, #0x1 lsl r3, r3, #0x10 asr r3, r3, #0x10 bpl _0201D006 add r3, #0x9 lsl r3, r3, #0x10 asr r3, r3, #0x10 _0201D006: lsl r3, r3, #0x3 add r5, r4, r3 ldrh r3, [r5, #0x12] cmp r3, #0x0 bne _0201D02C ldrh r3, [r0, #0x0] ldrh r7, [r5, #0xc] lsl r3, r3, #0x3 add r3, r0, r3 strh r7, [r3, #0x2] ldrh r7, [r5, #0xe] strh r7, [r3, #0x4] ldrh r7, [r5, #0x10] strh r7, [r3, #0x6] ldrh r5, [r5, #0x12] strh r5, [r3, #0x8] ldrh r3, [r0, #0x0] add r3, r3, #0x1 strh r3, [r0, #0x0] _0201D02C: ldr r3, [r2, #0x8] add r6, r6, #0x1 cmp r6, r3 blo _0201CFF4 _0201D034: pop {r4-r7} bx lr .balign 4 _0201D038: .word 0x021C5938 _0201D03C: .word 0x021C5938 thumb_func_start FUN_0201D040 FUN_0201D040: ; 0x0201D040 ldr r1, _0201D054 ; =0x04001000 ldr r2, [r1, #0x0] ldr r1, _0201D058 ; =0x00300010 lsl r3, r1, #0x16 ldr r3, [r3, #0x0] and r2, r1 and r1, r3 ldr r3, _0201D05C ; =FUN_0201D060 bx r3 nop _0201D054: .word 0x04001000 _0201D058: .word 0x00300010 _0201D05C: .word FUN_0201D060 thumb_func_start FUN_0201D060 FUN_0201D060: ; 0x0201D060 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0201D120 ; =0x021C5994 str r1, [sp, #0x0] ldr r0, [r0, #0x0] str r2, [sp, #0x4] cmp r0, #0x0 bne _0201D11A ldr r0, [r5, #0xc] mov r1, #0x3c bl FUN_02016998 add r1, r0, #0x0 ldr r0, _0201D120 ; =0x021C5994 mov r2, #0x3c str r1, [r0, #0x0] mov r0, #0x0 blx MIi_CpuClear32 ldr r1, _0201D120 ; =0x021C5994 ldr r2, [r5, #0x0] ldr r0, [r1, #0x0] str r2, [r0, #0x4] ldr r1, [r1, #0x0] ldr r0, [r5, #0xc] ldr r2, [r1, #0x4] mov r1, #0x54 mul r1, r2 bl FUN_02016998 ldr r7, _0201D120 ; =0x021C5994 mov r6, #0x0 ldr r1, [r7, #0x0] str r0, [r1, #0x0] ldr r0, [r5, #0x0] cmp r0, #0x0 ble _0201D0C2 add r4, r6, #0x0 _0201D0AE: ldr r0, [r7, #0x0] ldr r0, [r0, #0x0] add r0, r0, r4 bl FUN_0201D690 ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x54 cmp r6, r0 blt _0201D0AE _0201D0C2: ldr r0, [sp, #0x0] bl FUN_0201DED0 ldr r1, _0201D120 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x2c] ldr r0, [sp, #0x4] bl FUN_0201DED0 ldr r2, _0201D120 ; =0x021C5994 mov r3, #0x1 ldr r1, [r2, #0x0] lsl r3, r3, #0x1a str r0, [r1, #0x30] ldr r0, [r3, #0x0] ldr r1, _0201D124 ; =0xFFCFFFEF add r4, r0, #0x0 ldr r0, [sp, #0x0] and r4, r1 orr r0, r4 str r0, [r3, #0x0] ldr r3, _0201D128 ; =0x04001000 ldr r0, [r3, #0x0] and r1, r0 ldr r0, [sp, #0x4] orr r0, r1 str r0, [r3, #0x0] ldr r1, [r2, #0x0] ldr r0, [r5, #0x4] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D120 ; =0x021C5994 add r4, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r5, #0x8] ldr r1, [r1, #0x30] bl FUN_0201DF2C add r1, r0, #0x0 ldr r2, [r5, #0xc] add r0, r4, #0x0 bl FUN_0201DC58 _0201D11A: add sp, #0x8 pop {r3-r7, pc} nop _0201D120: .word 0x021C5994 _0201D124: .word 0xFFCFFFEF _0201D128: .word 0x04001000 thumb_func_start FUN_0201D12C FUN_0201D12C: ; 0x0201D12C push {r3, lr} ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D162 ldr r0, [r0, #0x34] bl FUN_0201DCC0 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DCC0 bl FUN_0201D374 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201D164 ; =0x021C5994 mov r1, #0x0 str r1, [r0, #0x0] _0201D162: pop {r3, pc} .balign 4 _0201D164: .word 0x021C5994 thumb_func_start FUN_0201D168 FUN_0201D168: ; 0x0201D168 push {r3, lr} ldr r0, _0201D190 ; =0x021C5994 mov r2, #0x0 ldr r1, [r0, #0x0] str r2, [r1, #0xc] ldr r1, [r0, #0x0] str r2, [r1, #0x10] ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_0201DD00 ldr r0, _0201D190 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DD00 bl FUN_0201DAE8 pop {r3, pc} nop _0201D190: .word 0x021C5994 thumb_func_start FUN_0201D194 FUN_0201D194: ; 0x0201D194 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 add r3, r1, #0x0 cmp r2, #0x1 add r0, sp, #0x4 bne _0201D1CA str r0, [sp, #0x0] ldr r0, _0201D1F4 ; =0x021C5994 add r2, r3, #0x0 ldr r0, [r0, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x1c] add r3, sp, #0x8 bl FUN_0201DFF0 ldr r3, [sp, #0x4] cmp r3, #0x0 ble _0201D1F0 mov r2, #0x0 str r2, [sp, #0x0] ldr r1, [sp, #0x8] mov r0, #0x1 bl FUN_0201D948 add sp, #0xc pop {r3-r4, pc} _0201D1CA: str r0, [sp, #0x0] ldr r0, _0201D1F4 ; =0x021C5994 add r2, r3, #0x0 ldr r0, [r0, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x20] add r3, sp, #0x8 bl FUN_0201DFF0 ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201D1F0 str r0, [sp, #0x0] mov r1, #0x0 ldr r2, [sp, #0x8] mov r0, #0x2 add r3, r1, #0x0 bl FUN_0201D948 _0201D1F0: add sp, #0xc pop {r3-r4, pc} .balign 4 _0201D1F4: .word 0x021C5994 thumb_func_start FUN_0201D1F8 FUN_0201D1F8: ; 0x0201D1F8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_0201D2AC cmp r0, #0x1 bne _0201D20A bl ErrorHandling _0201D20A: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D21A bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D21A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201D6B4 cmp r0, #0x0 bne _0201D22A mov r0, #0x0 pop {r3-r5, pc} _0201D22A: add r0, r4, #0x0 bl FUN_0201D724 cmp r0, #0x0 bne _0201D23E ldr r0, [r4, #0xc] bl FUN_0201D324 mov r0, #0x0 pop {r3-r5, pc} _0201D23E: ldr r0, _0201D24C ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] add r0, r0, #0x1 str r0, [r1, #0x8] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0201D24C: .word 0x021C5994 thumb_func_start FUN_0201D250 FUN_0201D250: ; 0x0201D250 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_0201D2AC cmp r0, #0x1 bne _0201D262 bl ErrorHandling _0201D262: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D272 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D272: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201D6B4 cmp r0, #0x0 bne _0201D282 mov r0, #0x0 pop {r3-r5, pc} _0201D282: mov r0, #0x1 str r0, [r4, #0x40] add r0, r4, #0x0 bl FUN_0201D724 cmp r0, #0x0 bne _0201D29A ldr r0, [r4, #0xc] bl FUN_0201D324 mov r0, #0x0 pop {r3-r5, pc} _0201D29A: ldr r0, _0201D2A8 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] add r0, r0, #0x1 str r0, [r1, #0x8] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0201D2A8: .word 0x021C5994 thumb_func_start FUN_0201D2AC FUN_0201D2AC: ; 0x0201D2AC push {r3-r4} ldr r1, _0201D2D8 ; =0x021C5994 mov r2, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201D2D2 ldr r3, [r4, #0x0] _0201D2BC: ldr r1, [r3, #0xc] cmp r0, r1 bne _0201D2C8 mov r0, #0x1 pop {r3-r4} bx lr _0201D2C8: ldr r1, [r4, #0x4] add r2, r2, #0x1 add r3, #0x54 cmp r2, r1 blt _0201D2BC _0201D2D2: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 _0201D2D8: .word 0x021C5994 thumb_func_start FUN_0201D2DC FUN_0201D2DC: ; 0x0201D2DC push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bne _0201D2E8 bl ErrorHandling _0201D2E8: add r0, r4, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D2F6 bl ErrorHandling _0201D2F6: str r5, [r4, #0x0] ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201D30C ldr r1, [r4, #0x34] ldr r2, [r5, #0x14] ldr r3, [r5, #0x10] mov r0, #0x13 bl FUN_0201C2C8 _0201D30C: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201D320 ldr r1, [r4, #0x38] ldr r2, [r5, #0x14] ldr r3, [r5, #0x10] mov r0, #0x23 bl FUN_0201C2C8 _0201D320: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D324 FUN_0201D324: ; 0x0201D324 push {r3-r7, lr} add r6, r0, #0x0 mov r5, #0x1 mov r7, #0x0 _0201D32C: add r0, r6, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D33A bl ErrorHandling _0201D33A: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0201D34E add r0, r4, #0x0 add r0, #0x10 bl FUN_0201D4F0 b _0201D350 _0201D34E: add r5, r7, #0x0 _0201D350: cmp r5, #0x0 bne _0201D32C add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0201D36E add r0, r4, #0x0 bl FUN_0201D7E0 ldr r0, _0201D370 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] sub r0, r0, #0x1 str r0, [r1, #0x8] _0201D36E: pop {r3-r7, pc} .balign 4 _0201D370: .word 0x021C5994 thumb_func_start FUN_0201D374 FUN_0201D374: ; 0x0201D374 push {r4-r6, lr} ldr r6, _0201D3AC ; =0x021C5994 mov r4, #0x0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x4] cmp r0, #0x0 ble _0201D3AA add r5, r4, #0x0 _0201D384: ldr r1, [r1, #0x0] add r0, r1, r5 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0201D39E add r0, r1, r5 bl FUN_0201D7E0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x8] sub r0, r0, #0x1 str r0, [r1, #0x8] _0201D39E: ldr r1, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r1, #0x4] add r5, #0x54 cmp r4, r0 blt _0201D384 _0201D3AA: pop {r4-r6, pc} .balign 4 _0201D3AC: .word 0x021C5994 thumb_func_start FUN_0201D3B0 FUN_0201D3B0: ; 0x0201D3B0 push {r4, lr} bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3BE bl ErrorHandling _0201D3BE: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201D3CC mov r0, #0x0 pop {r4, pc} _0201D3CC: add r4, #0x10 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201D3D4 FUN_0201D3D4: ; 0x0201D3D4 push {r3-r5, lr} sub sp, #0x18 add r5, r1, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3E6 bl ErrorHandling _0201D3E6: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201D3F6 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D3F6: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r4, #0x4] add r1, sp, #0x14 add r2, sp, #0x10 add r3, r5, #0x0 bl FUN_0201D86C add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _0201D41A add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D41A: add r0, r4, #0x0 mov r1, #0x3 add r0, #0x3c strb r1, [r0, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r4, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r4, #0x48] ldr r0, [sp, #0xc] str r0, [r4, #0x4c] ldr r0, [sp, #0x8] str r0, [r4, #0x50] add r0, r4, #0x0 bl FUN_0201DA38 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r4, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 add r4, #0x10 add r0, r4, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D458 FUN_0201D458: ; 0x0201D458 push {r3-r5, lr} sub sp, #0x18 bl FUN_0201D6D8 add r4, r0, #0x0 bne _0201D468 bl ErrorHandling _0201D468: bl FUN_0201DAAC add r5, r0, #0x0 bne _0201D474 bl ErrorHandling _0201D474: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0201D484 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D484: add r3, r5, #0x0 mov r2, #0xa _0201D488: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0201D488 ldr r0, [r4, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r5, #0x0 add r0, #0x3c strb r1, [r0, #0x0] ldr r0, [r5, #0x4] mov r1, #0x1 tst r1, r0 beq _0201D4A8 ldr r3, [r5, #0x4c] b _0201D4AA _0201D4A8: ldr r3, [r5, #0x50] _0201D4AA: add r1, sp, #0xc str r1, [sp, #0x0] add r1, sp, #0x8 str r1, [sp, #0x4] add r1, sp, #0x14 add r2, sp, #0x10 bl FUN_0201D86C ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r5, #0x48] ldr r0, [sp, #0xc] str r0, [r5, #0x4c] ldr r0, [sp, #0x8] str r0, [r5, #0x50] add r0, r5, #0x0 bl FUN_0201DA38 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 add r5, #0x10 add r0, r5, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D4F0 FUN_0201D4F0: ; 0x0201D4F0 push {r4-r6, lr} ldr r2, _0201D564 ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r4, [r5, #0x4] cmp r4, #0x0 ble _0201D52E ldr r2, [r5, #0x0] add r3, r1, #0x0 _0201D502: add r6, r2, #0x0 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x3 beq _0201D518 ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x4 bne _0201D522 _0201D518: ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x10 cmp r6, r0 beq _0201D52E _0201D522: ldr r6, [r5, #0x4] add r1, r1, #0x1 add r2, #0x54 add r3, #0x54 cmp r1, r6 blt _0201D502 _0201D52E: cmp r1, r4 bge _0201D562 mov r0, #0x54 add r4, r1, #0x0 mul r4, r0 ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201DE4C ldr r0, _0201D564 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r2, [r1, #0x0] add r2, #0x3c ldrb r1, [r2, r4] cmp r1, #0x3 bne _0201D554 mov r0, #0x2 strb r0, [r2, r4] pop {r4-r6, pc} _0201D554: mov r1, #0x0 strb r1, [r2, r4] ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] add r0, r0, r4 bl FUN_0201D690 _0201D562: pop {r4-r6, pc} .balign 4 _0201D564: .word 0x021C5994 thumb_func_start FUN_0201D568 FUN_0201D568: ; 0x0201D568 push {r3-r7, lr} sub sp, #0x18 add r6, r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 cmp r1, #0x0 bne _0201D5A0 add r1, r5, #0x0 add r2, sp, #0x14 add r3, sp, #0x10 bl FUN_0201DF44 add r7, r0, #0x0 beq _0201D5E0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201DF94 str r5, [r4, #0x8] str r6, [r4, #0x0] cmp r5, #0x1 bne _0201D59A ldr r0, [sp, #0x14] str r0, [r4, #0x4] b _0201D5E0 _0201D59A: ldr r0, [sp, #0x10] str r0, [r4, #0x4] b _0201D5E0 _0201D5A0: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x14 add r2, sp, #0x10 add r3, r6, #0x0 bl FUN_0201D86C add r7, r0, #0x0 beq _0201D5E0 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] add r0, r5, #0x0 bl FUN_0201D948 str r5, [r4, #0x8] cmp r5, #0x1 bne _0201D5D8 ldr r0, [sp, #0xc] str r0, [r4, #0x0] ldr r0, [sp, #0x14] str r0, [r4, #0x4] b _0201D5E0 _0201D5D8: ldr r0, [sp, #0x8] str r0, [r4, #0x0] ldr r0, [sp, #0x10] str r0, [r4, #0x4] _0201D5E0: add r0, r7, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201D5E8 FUN_0201D5E8: ; 0x0201D5E8 push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x8] mov r0, #0x1 tst r0, r1 beq _0201D61E ldr r1, _0201D654 ; =0x021C5994 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C add r5, r0, #0x0 ldr r0, _0201D654 ; =0x021C5994 ldr r1, [r4, #0x4] ldr r2, [r0, #0x0] ldr r0, [r2, #0x1c] sub r0, r1, r0 ldr r1, [r2, #0x2c] bl FUN_0201DF2C ldr r2, _0201D654 ; =0x021C5994 add r1, r5, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x34] bl FUN_0201DDFC _0201D61E: ldr r1, [r4, #0x8] mov r0, #0x2 tst r0, r1 beq _0201D650 ldr r1, _0201D654 ; =0x021C5994 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C add r5, r0, #0x0 ldr r0, _0201D654 ; =0x021C5994 ldr r1, [r4, #0x4] ldr r2, [r0, #0x0] ldr r0, [r2, #0x20] sub r0, r1, r0 ldr r1, [r2, #0x30] bl FUN_0201DF2C ldr r2, _0201D654 ; =0x021C5994 add r1, r5, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x38] bl FUN_0201DDFC _0201D650: pop {r3-r5, pc} nop _0201D654: .word 0x021C5994 thumb_func_start FUN_0201D658 FUN_0201D658: ; 0x0201D658 push {r3, lr} ldr r0, _0201D670 ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201D666 bl ErrorHandling _0201D666: ldr r1, _0201D670 ; =0x021C5994 mov r2, #0x0 ldr r0, [r1, #0x0] str r2, [r1, #0x0] pop {r3, pc} .balign 4 _0201D670: .word 0x021C5994 thumb_func_start FUN_0201D674 FUN_0201D674: ; 0x0201D674 push {r4, lr} add r4, r0, #0x0 ldr r0, _0201D68C ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D684 bl ErrorHandling _0201D684: ldr r0, _0201D68C ; =0x021C5994 str r4, [r0, #0x0] pop {r4, pc} nop _0201D68C: .word 0x021C5994 thumb_func_start FUN_0201D690 FUN_0201D690: ; 0x0201D690 mov r2, #0x0 str r2, [r0, #0x0] str r2, [r0, #0x4] strb r2, [r0, #0x8] sub r1, r2, #0x1 str r1, [r0, #0xc] str r2, [r0, #0x34] add r1, r0, #0x0 str r2, [r0, #0x38] add r1, #0x3c strb r2, [r1, #0x0] str r2, [r0, #0x40] ldr r3, _0201D6B0 ; =FUN_020B1A24 add r0, #0x10 bx r3 nop _0201D6B0: .word FUN_020B1A24 thumb_func_start FUN_0201D6B4 FUN_0201D6B4: ; 0x0201D6B4 ldr r2, [r0, #0x0] str r2, [r1, #0x0] ldr r2, [r0, #0x8] str r2, [r1, #0xc] ldr r2, [r0, #0x4] str r2, [r1, #0x4] ldr r2, [r1, #0x0] ldr r2, [r2, #0xc] lsr r2, r2, #0x8 strb r2, [r1, #0x8] ldr r0, [r0, #0xc] str r0, [r1, #0x44] mov r0, #0x0 str r0, [r1, #0x48] str r0, [r1, #0x4c] str r0, [r1, #0x50] mov r0, #0x1 bx lr thumb_func_start FUN_0201D6D8 FUN_0201D6D8: ; 0x0201D6D8 push {r3-r6} ldr r2, _0201D720 ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r4, [r5, #0x4] cmp r4, #0x0 ble _0201D70A ldr r2, [r5, #0x0] add r3, r1, #0x0 _0201D6EA: add r6, r2, #0x0 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x0 beq _0201D6FE ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x10 cmp r6, r0 beq _0201D70A _0201D6FE: ldr r6, [r5, #0x4] add r1, r1, #0x1 add r2, #0x54 add r3, #0x54 cmp r1, r6 blt _0201D6EA _0201D70A: cmp r1, r4 blt _0201D714 mov r0, #0x0 pop {r3-r6} bx lr _0201D714: mov r0, #0x54 ldr r2, [r5, #0x0] mul r0, r1 add r0, r2, r0 pop {r3-r6} bx lr .balign 4 _0201D720: .word 0x021C5994 thumb_func_start FUN_0201D724 FUN_0201D724: ; 0x0201D724 push {r3, lr} ldrb r1, [r0, #0x8] mov r2, #0x1 cmp r1, #0x0 beq _0201D736 mov r1, #0x2 add r0, #0x3c strb r1, [r0, #0x0] b _0201D750 _0201D736: add r1, r0, #0x0 add r1, #0x3c strb r2, [r1, #0x0] ldr r1, [r0, #0x44] cmp r1, #0x0 bne _0201D74A bl FUN_0201D754 add r2, r0, #0x0 b _0201D750 _0201D74A: bl FUN_0201D788 add r2, r0, #0x0 _0201D750: add r0, r2, #0x0 pop {r3, pc} thumb_func_start FUN_0201D754 FUN_0201D754: ; 0x0201D754 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r0, [r0, #0x10] add r2, sp, #0x4 add r3, sp, #0x0 bl FUN_0201DF44 add r4, r0, #0x0 beq _0201D780 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0201D858 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r0, [r0, #0x10] bl FUN_0201DF94 _0201D780: add r0, r4, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D788 FUN_0201D788: ; 0x0201D788 push {r4, lr} sub sp, #0x18 add r4, r0, #0x0 add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r3, [r4, #0x0] ldr r0, [r4, #0x4] ldr r3, [r3, #0x10] add r1, sp, #0x14 add r2, sp, #0x10 bl FUN_0201D86C cmp r0, #0x0 bne _0201D7AE add sp, #0x18 mov r0, #0x0 pop {r4, pc} _0201D7AE: ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r4, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r4, #0x48] ldr r0, [sp, #0xc] str r0, [r4, #0x4c] ldr r0, [sp, #0x8] str r0, [r4, #0x50] add r0, r4, #0x0 bl FUN_0201D9B0 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r4, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 mov r0, #0x1 add sp, #0x18 pop {r4, pc} thumb_func_start FUN_0201D7E0 FUN_0201D7E0: ; 0x0201D7E0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x48] cmp r1, #0x0 beq _0201D7EE bl FUN_0201DE4C _0201D7EE: add r0, r4, #0x0 bl FUN_0201D690 pop {r4, pc} .balign 4 thumb_func_start FUN_0201D7F8 FUN_0201D7F8: ; 0x0201D7F8 push {r4-r5} ldr r2, _0201D82C ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r2, [r5, #0x4] cmp r2, #0x0 ble _0201D824 ldr r2, [r5, #0x0] add r4, r2, #0x0 _0201D80A: ldr r3, [r4, #0xc] cmp r0, r3 bne _0201D81A mov r0, #0x54 mul r0, r1 add r0, r2, r0 pop {r4-r5} bx lr _0201D81A: ldr r3, [r5, #0x4] add r1, r1, #0x1 add r4, #0x54 cmp r1, r3 blt _0201D80A _0201D824: mov r0, #0x0 pop {r4-r5} bx lr nop _0201D82C: .word 0x021C5994 thumb_func_start FUN_0201D830 FUN_0201D830: ; 0x0201D830 cmp r1, #0x1 bne _0201D83C mov r1, #0x1 lsl r1, r1, #0x1a ldr r2, [r1, #0x0] b _0201D840 _0201D83C: ldr r1, _0201D850 ; =0x04001000 ldr r2, [r1, #0x0] _0201D840: ldr r1, _0201D854 ; =0x00300010 and r2, r1 ldr r1, [r0, #0x0] str r2, [r1, #0x8] ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bx lr nop _0201D850: .word 0x04001000 _0201D854: .word 0x00300010 thumb_func_start FUN_0201D858 FUN_0201D858: ; 0x0201D858 push {r3, lr} str r1, [r0, #0x34] str r2, [r0, #0x38] ldrb r1, [r0, #0x8] cmp r1, #0x0 bne _0201D868 bl FUN_0201D9B0 _0201D868: pop {r3, pc} .balign 4 thumb_func_start FUN_0201D86C FUN_0201D86C: ; 0x0201D86C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [sp, #0x1c] add r6, r2, #0x0 str r0, [sp, #0x1c] mov r2, #0x1 add r0, r5, #0x0 add r4, r1, #0x0 str r3, [sp, #0x0] ldr r7, [sp, #0x18] tst r0, r2 beq _0201D8C4 ldr r1, _0201D914 ; =0x021C5994 add r0, r3, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF10 ldr r1, _0201D914 ; =0x021C5994 str r0, [r7, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x34] bl FUN_0201DD74 mov r1, #0x0 mvn r1, r1 str r0, [r4, #0x0] cmp r0, r1 bne _0201D8B8 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D8B8: ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF3C str r0, [r4, #0x0] _0201D8C4: mov r0, #0x2 tst r0, r5 beq _0201D90E ldr r1, _0201D914 ; =0x021C5994 ldr r0, [sp, #0x0] ldr r1, [r1, #0x0] mov r2, #0x1 ldr r1, [r1, #0x30] bl FUN_0201DF10 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x38] bl FUN_0201DD74 mov r1, #0x0 mvn r1, r1 str r0, [r6, #0x0] cmp r0, r1 bne _0201D902 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D902: ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF3C str r0, [r6, #0x0] _0201D90E: mov r0, #0x1 pop {r3-r7, pc} nop _0201D914: .word 0x021C5994 thumb_func_start FUN_0201D918 FUN_0201D918: ; 0x0201D918 push {r3-r4} ldr r4, [r0, #0x4] mov r3, #0x1 tst r3, r4 beq _0201D92C ldr r3, _0201D944 ; =0x021C5994 ldr r3, [r3, #0x0] ldr r3, [r3, #0x1c] add r1, r1, r3 str r1, [r0, #0x34] _0201D92C: ldr r3, [r0, #0x4] mov r1, #0x2 tst r1, r3 beq _0201D93E ldr r1, _0201D944 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x20] add r1, r2, r1 str r1, [r0, #0x38] _0201D93E: pop {r3-r4} bx lr nop _0201D944: .word 0x021C5994 thumb_func_start FUN_0201D948 FUN_0201D948: ; 0x0201D948 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x1 add r4, r1, #0x0 add r6, r2, #0x0 tst r0, r5 beq _0201D97C ldr r1, _0201D9AC ; =0x021C5994 add r0, r3, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D9AC ; =0x021C5994 add r7, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r2, _0201D9AC ; =0x021C5994 add r1, r7, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x34] bl FUN_0201DD18 _0201D97C: mov r0, #0x2 tst r0, r5 beq _0201D9A8 ldr r1, _0201D9AC ; =0x021C5994 ldr r0, [sp, #0x18] ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r1, _0201D9AC ; =0x021C5994 add r4, r0, #0x0 ldr r1, [r1, #0x0] add r0, r6, #0x0 ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r2, _0201D9AC ; =0x021C5994 add r1, r4, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x38] bl FUN_0201DD18 _0201D9A8: pop {r3-r7, pc} nop _0201D9AC: .word 0x021C5994 thumb_func_start FUN_0201D9B0 FUN_0201D9B0: ; 0x0201D9B0 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B1A24 ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201D9C8 add r0, r4, #0x0 bl FUN_0201D9DC pop {r4, pc} _0201D9C8: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0201D9DC add r0, r4, #0x0 mov r1, #0x2 bl FUN_0201D9DC pop {r4, pc} .balign 4 thumb_func_start FUN_0201D9DC FUN_0201D9DC: ; 0x0201D9DC push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x40] add r4, r1, #0x0 cmp r2, #0x0 beq _0201D9EE bl FUN_0201D830 b _0201D9F0 _0201D9EE: add r0, r4, #0x0 _0201D9F0: cmp r4, #0x1 bne _0201D9FE mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r5, #0x34] ldr r2, [r2, #0x0] b _0201DA04 _0201D9FE: ldr r2, _0201DA34 ; =0x04001000 ldr r1, [r5, #0x38] ldr r2, [r2, #0x0] _0201DA04: cmp r0, #0x0 ldr r0, [r5, #0x0] bne _0201DA16 add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1528 b _0201DA20 _0201DA16: add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1768 _0201DA20: cmp r4, #0x1 bne _0201DA2C mov r0, #0x1 lsl r0, r0, #0x1a ldr r0, [r0, #0x0] pop {r3-r5, pc} _0201DA2C: ldr r0, _0201DA34 ; =0x04001000 ldr r0, [r0, #0x0] pop {r3-r5, pc} nop _0201DA34: .word 0x04001000 thumb_func_start FUN_0201DA38 FUN_0201DA38: ; 0x0201DA38 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B1A24 ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201DA50 add r0, r4, #0x0 bl FUN_0201DA64 pop {r4, pc} _0201DA50: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0201DA64 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0201DA64 pop {r4, pc} .balign 4 thumb_func_start FUN_0201DA64 FUN_0201DA64: ; 0x0201DA64 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x40] add r4, r1, #0x0 cmp r2, #0x0 beq _0201DA74 bl FUN_0201D830 _0201DA74: cmp r4, #0x1 bne _0201DA82 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r5, #0x34] ldr r0, [r0, #0x0] b _0201DA88 _0201DA82: ldr r0, _0201DAA8 ; =0x04001000 ldr r1, [r5, #0x38] ldr r0, [r0, #0x0] _0201DA88: ldr r0, [r5, #0x0] add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1340 cmp r4, #0x1 bne _0201DAA0 mov r0, #0x1 lsl r0, r0, #0x1a ldr r0, [r0, #0x0] pop {r3-r5, pc} _0201DAA0: ldr r0, _0201DAA8 ; =0x04001000 ldr r0, [r0, #0x0] pop {r3-r5, pc} nop _0201DAA8: .word 0x04001000 thumb_func_start FUN_0201DAAC FUN_0201DAAC: ; 0x0201DAAC push {r3-r4} ldr r1, _0201DAE4 ; =0x021C5994 mov r0, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201DADC ldr r1, [r4, #0x0] add r3, r1, #0x0 _0201DABE: add r2, r3, #0x0 add r2, #0x3c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0201DAD2 mov r2, #0x54 mul r2, r0 add r0, r1, r2 pop {r3-r4} bx lr _0201DAD2: ldr r2, [r4, #0x4] add r0, r0, #0x1 add r3, #0x54 cmp r0, r2 blt _0201DABE _0201DADC: mov r0, #0x0 pop {r3-r4} bx lr nop _0201DAE4: .word 0x021C5994 thumb_func_start FUN_0201DAE8 FUN_0201DAE8: ; 0x0201DAE8 push {r3, lr} blx GX_GetBankForOBJ cmp r0, #0x30 bgt _0201DB18 bge _0201DB60 cmp r0, #0x10 bgt _0201DB12 bge _0201DB54 cmp r0, #0x3 bhi _0201DB90 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201DB0A: ; jump table (using 16-bit offset) .short _0201DB32 - _0201DB0A - 2; case 0 .short _0201DB78 - _0201DB0A - 2; case 1 .short _0201DB78 - _0201DB0A - 2; case 2 .short _0201DB84 - _0201DB0A - 2; case 3 _0201DB12: cmp r0, #0x20 beq _0201DB3C b _0201DB90 _0201DB18: cmp r0, #0x50 bgt _0201DB24 bge _0201DB60 cmp r0, #0x40 beq _0201DB3C b _0201DB90 _0201DB24: cmp r0, #0x60 bgt _0201DB2C beq _0201DB48 b _0201DB90 _0201DB2C: cmp r0, #0x70 beq _0201DB6C b _0201DB90 _0201DB32: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x14] b _0201DB98 _0201DB3C: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB48: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB54: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x14] b _0201DB98 _0201DB60: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x5 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB6C: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x6 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB78: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x14] b _0201DB98 _0201DB84: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0x12 str r1, [r0, #0x14] b _0201DB98 _0201DB90: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x14] _0201DB98: blx GX_GetBankForSubOBJ cmp r0, #0x0 beq _0201DBAE cmp r0, #0x8 beq _0201DBC2 mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 beq _0201DBB8 b _0201DBCE _0201DBAE: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x18] b _0201DBD6 _0201DBB8: ldr r0, _0201DC38 ; =0x021C5994 lsl r1, r1, #0x6 ldr r0, [r0, #0x0] str r1, [r0, #0x18] b _0201DBD6 _0201DBC2: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x18] b _0201DBD6 _0201DBCE: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x18] _0201DBD6: ldr r0, _0201DC38 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x24] ldr r1, [r1, #0x2c] bl FUN_0201DF3C ldr r1, _0201DC38 ; =0x021C5994 ldr r3, [r1, #0x0] ldr r2, [r3, #0x14] sub r0, r2, r0 str r0, [r3, #0x1c] ldr r1, [r1, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0201DF3C ldr r1, _0201DC38 ; =0x021C5994 ldr r3, [r1, #0x0] ldr r2, [r3, #0x18] sub r0, r2, r0 str r0, [r3, #0x20] ldr r1, [r1, #0x0] mov r2, #0x0 ldr r0, [r1, #0x1c] cmp r0, #0x0 blt _0201DC12 ldr r0, [r1, #0x20] cmp r0, #0x0 blt _0201DC12 mov r2, #0x1 _0201DC12: cmp r2, #0x0 bne _0201DC1A bl ErrorHandling _0201DC1A: ldr r0, _0201DC38 ; =0x021C5994 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, [r1, #0x1c] cmp r0, #0x0 blt _0201DC2E ldr r0, [r1, #0x20] cmp r0, #0x0 blt _0201DC2E mov r2, #0x1 _0201DC2E: cmp r2, #0x0 bne _0201DC36 bl ErrorHandling _0201DC36: pop {r3, pc} .balign 4 _0201DC38: .word 0x021C5994 thumb_func_start FUN_0201DC3C FUN_0201DC3C: ; 0x0201DC3C push {r3, lr} ldr r0, _0201DC54 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_0201DD00 ldr r0, _0201DC54 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DD00 pop {r3, pc} .balign 4 _0201DC54: .word 0x021C5994 thumb_func_start FUN_0201DC58 FUN_0201DC58: ; 0x0201DC58 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0201DCBC ; =0x021C5994 add r4, r1, #0x0 ldr r1, [r0, #0x0] add r6, r2, #0x0 str r5, [r1, #0x24] ldr r1, [r0, #0x0] str r4, [r1, #0x28] ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] cmp r0, #0x0 beq _0201DC76 bl FUN_02016A18 _0201DC76: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] cmp r0, #0x0 beq _0201DC84 bl FUN_02016A18 _0201DC84: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x24] cmp r0, #0x0 beq _0201DC9C add r0, r6, #0x0 lsr r1, r5, #0x3 bl FUN_02016998 ldr r1, _0201DCBC ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x34] _0201DC9C: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] cmp r0, #0x0 beq _0201DCB4 add r0, r6, #0x0 lsr r1, r4, #0x3 bl FUN_02016998 ldr r1, _0201DCBC ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x38] _0201DCB4: bl FUN_0201DC3C pop {r4-r6, pc} nop _0201DCBC: .word 0x021C5994 thumb_func_start FUN_0201DCC0 FUN_0201DCC0: ; 0x0201DCC0 push {r3, lr} cmp r0, #0x0 beq _0201DCE2 ldr r1, _0201DCE4 ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x34] cmp r0, r1 bne _0201DCDA mov r1, #0x0 str r1, [r2, #0x24] bl FUN_02016A18 pop {r3, pc} _0201DCDA: mov r1, #0x0 str r1, [r2, #0x28] bl FUN_02016A18 _0201DCE2: pop {r3, pc} .balign 4 _0201DCE4: .word 0x021C5994 thumb_func_start FUN_0201DCE8 FUN_0201DCE8: ; 0x0201DCE8 ldr r1, _0201DCFC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x34] cmp r0, r1 bne _0201DCF6 ldr r0, [r2, #0x24] bx lr _0201DCF6: ldr r0, [r2, #0x28] bx lr nop _0201DCFC: .word 0x021C5994 thumb_func_start FUN_0201DD00 FUN_0201DD00: ; 0x0201DD00 push {r4, lr} add r4, r0, #0x0 beq _0201DD16 bl FUN_0201DCE8 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 lsr r2, r2, #0x3 blx Call_FillMemWithValue _0201DD16: pop {r4, pc} thumb_func_start FUN_0201DD18 FUN_0201DD18: ; 0x0201DD18 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 beq _0201DD6E add r0, r4, #0x0 bl FUN_0201DCE8 add r6, r5, r6 add r7, r0, #0x0 cmp r5, r6 bhs _0201DD6E _0201DD32: cmp r5, r7 bhs _0201DD6E add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_0201DFE4 add r0, sp, #0x0 ldrb r1, [r0, #0x0] mov r0, #0x1 lsl r0, r1 ldr r1, [sp, #0x4] ldrb r1, [r4, r1] tst r0, r1 beq _0201DD54 bl ErrorHandling _0201DD54: add r2, sp, #0x0 ldrb r3, [r2, #0x0] ldr r1, [sp, #0x4] mov r2, #0x1 lsl r2, r3 lsl r2, r2, #0x18 ldrb r0, [r4, r1] lsr r2, r2, #0x18 add r5, r5, #0x1 orr r0, r2 strb r0, [r4, r1] cmp r5, r6 blo _0201DD32 _0201DD6E: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DD74 FUN_0201DD74: ; 0x0201DD74 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 str r1, [sp, #0x0] cmp r1, #0x0 beq _0201DDF2 add r0, r1, #0x0 bl FUN_0201DCE8 mov r6, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 bls _0201DDF2 _0201DD8E: add r0, r6, #0x0 add r1, sp, #0xc add r2, sp, #0x8 bl FUN_0201DFE4 add r0, sp, #0x8 ldrb r1, [r0, #0x0] mov r0, #0x1 mov r4, #0x0 lsl r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 b _0201DDD0 _0201DDA8: add r5, r6, r4 add r0, r5, #0x0 add r1, sp, #0xc add r2, sp, #0x8 bl FUN_0201DFE4 add r0, sp, #0x8 ldrb r1, [r0, #0x0] mov r0, #0x1 lsl r0, r1 lsl r0, r0, #0x18 ldr r1, [sp, #0x4] lsr r0, r0, #0x18 cmp r5, r1 blo _0201DDCE mov r0, #0x0 add sp, #0x10 mvn r0, r0 pop {r3-r7, pc} _0201DDCE: add r4, r4, #0x1 _0201DDD0: ldr r2, [sp, #0xc] ldr r1, [sp, #0x0] ldrb r1, [r1, r2] tst r0, r1 bne _0201DDDE cmp r4, r7 bls _0201DDA8 _0201DDDE: cmp r4, r7 bls _0201DDE8 add sp, #0x10 add r0, r6, #0x0 pop {r3-r7, pc} _0201DDE8: add r0, r6, r4 add r6, r0, #0x1 ldr r0, [sp, #0x4] cmp r6, r0 blo _0201DD8E _0201DDF2: mov r0, #0x0 mvn r0, r0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DDFC FUN_0201DDFC: ; 0x0201DDFC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r2, #0x0 beq _0201DE46 add r6, r5, r1 cmp r5, r6 bhs _0201DE46 add r7, sp, #0x0 _0201DE0E: add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_0201DFE4 ldrb r1, [r7, #0x0] mov r0, #0x1 lsl r0, r1 ldr r1, [sp, #0x4] ldrb r1, [r4, r1] tst r0, r1 bne _0201DE2A bl ErrorHandling _0201DE2A: ldrb r0, [r7, #0x0] mov r1, #0x1 ldr r3, [sp, #0x4] lsl r1, r0 mov r0, #0xff eor r0, r1 lsl r0, r0, #0x18 ldrb r2, [r4, r3] lsr r0, r0, #0x18 add r5, r5, #0x1 and r0, r2 strb r0, [r4, r3] cmp r5, r6 blo _0201DE0E _0201DE46: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DE4C FUN_0201DE4C: ; 0x0201DE4C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] mov r1, #0x1 tst r0, r1 beq _0201DE8A add r0, r4, #0x0 add r0, #0x10 blx FUN_020B1A14 ldr r1, _0201DECC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x1c] sub r0, r0, r1 ldr r1, [r2, #0x2c] bl FUN_0201DF2C ldr r1, _0201DECC ; =0x021C5994 add r5, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r4, #0x4c] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r2, _0201DECC ; =0x021C5994 add r1, r0, #0x0 ldr r2, [r2, #0x0] add r0, r5, #0x0 ldr r2, [r2, #0x34] bl FUN_0201DDFC _0201DE8A: ldr r0, [r4, #0x4] mov r1, #0x2 tst r0, r1 beq _0201DEC4 add r0, r4, #0x0 add r0, #0x10 blx FUN_020B1A14 ldr r1, _0201DECC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x20] sub r0, r0, r1 ldr r1, [r2, #0x30] bl FUN_0201DF2C ldr r1, _0201DECC ; =0x021C5994 add r5, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r4, #0x50] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r2, _0201DECC ; =0x021C5994 add r1, r0, #0x0 ldr r2, [r2, #0x0] add r0, r5, #0x0 ldr r2, [r2, #0x38] bl FUN_0201DDFC _0201DEC4: mov r0, #0x0 str r0, [r4, #0x48] pop {r3-r5, pc} nop _0201DECC: .word 0x021C5994 thumb_func_start FUN_0201DED0 FUN_0201DED0: ; 0x0201DED0 ldr r1, _0201DF04 ; =0x00100010 cmp r0, r1 bgt _0201DEDE bge _0201DEF4 cmp r0, #0x10 beq _0201DEF0 b _0201DF00 _0201DEDE: ldr r1, _0201DF08 ; =0x00200010 cmp r0, r1 bgt _0201DEE8 beq _0201DEF8 b _0201DF00 _0201DEE8: ldr r1, _0201DF0C ; =0x00300010 cmp r0, r1 beq _0201DEFC b _0201DF00 _0201DEF0: mov r0, #0x1 bx lr _0201DEF4: mov r0, #0x2 bx lr _0201DEF8: mov r0, #0x4 bx lr _0201DEFC: mov r0, #0x8 bx lr _0201DF00: mov r0, #0x1 bx lr .balign 4 _0201DF04: .word 0x00100010 _0201DF08: .word 0x00200010 _0201DF0C: .word 0x00300010 thumb_func_start FUN_0201DF10 FUN_0201DF10: ; 0x0201DF10 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 blx _s32_div_f cmp r1, #0x0 beq _0201DF28 sub r5, r5, r1 cmp r6, #0x1 bne _0201DF28 add r5, r5, r4 _0201DF28: add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201DF2C FUN_0201DF2C: ; 0x0201DF2C asr r2, r0, #0x4 lsr r2, r2, #0x1b add r2, r0, r2 ldr r3, _0201DF38 ; =_s32_div_f asr r0, r2, #0x5 bx r3 .balign 4 _0201DF38: .word _s32_div_f thumb_func_start FUN_0201DF3C FUN_0201DF3C: ; 0x0201DF3C mul r1, r0 lsl r0, r1, #0x5 bx lr .balign 4 thumb_func_start FUN_0201DF44 FUN_0201DF44: ; 0x0201DF44 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 mov r0, #0x1 add r2, r4, #0x0 add r7, r3, #0x0 tst r2, r0 beq _0201DF6E ldr r2, _0201DF90 ; =0x021C5994 ldr r2, [r2, #0x0] ldr r6, [r2, #0xc] ldr r2, [r2, #0x1c] add r3, r6, r5 cmp r3, r2 bls _0201DF6C bl ErrorHandling mov r0, #0x0 b _0201DF6E _0201DF6C: str r6, [r1, #0x0] _0201DF6E: mov r1, #0x2 tst r1, r4 beq _0201DF8C ldr r1, _0201DF90 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r3, [r1, #0x10] ldr r1, [r1, #0x20] add r2, r3, r5 cmp r2, r1 bls _0201DF8A bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201DF8A: str r3, [r7, #0x0] _0201DF8C: pop {r3-r7, pc} nop _0201DF90: .word 0x021C5994 thumb_func_start FUN_0201DF94 FUN_0201DF94: ; 0x0201DF94 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r2, #0x1 add r0, r4, #0x0 tst r0, r2 beq _0201DFBC ldr r0, _0201DFE0 ; =0x021C5994 ldr r3, [r0, #0x0] ldr r1, [r3, #0xc] add r1, r1, r5 str r1, [r3, #0xc] ldr r1, [r0, #0x0] ldr r0, [r1, #0xc] ldr r1, [r1, #0x2c] bl FUN_0201DF10 ldr r1, _0201DFE0 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0xc] _0201DFBC: mov r0, #0x2 tst r0, r4 beq _0201DFDE ldr r0, _0201DFE0 ; =0x021C5994 ldr r2, [r0, #0x0] ldr r1, [r2, #0x10] add r1, r1, r5 str r1, [r2, #0x10] ldr r1, [r0, #0x0] mov r2, #0x1 ldr r0, [r1, #0x10] ldr r1, [r1, #0x30] bl FUN_0201DF10 ldr r1, _0201DFE0 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x10] _0201DFDE: pop {r3-r5, pc} .balign 4 _0201DFE0: .word 0x021C5994 thumb_func_start FUN_0201DFE4 FUN_0201DFE4: ; 0x0201DFE4 asr r3, r0, #0x3 str r3, [r1, #0x0] mov r1, #0x7 and r0, r1 strb r0, [r2, #0x0] bx lr thumb_func_start FUN_0201DFF0 FUN_0201DFF0: ; 0x0201DFF0 push {r3-r4} sub r0, r1, r0 ldr r4, [sp, #0x8] str r0, [r3, #0x0] bpl _0201E006 add r0, r2, r0 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r3, #0x0] pop {r3-r4} bx lr _0201E006: str r2, [r4, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0201E00C FUN_0201E00C: ; 0x0201E00C push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _0201E064 ; =0x021C5998 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201E060 add r0, r4, #0x0 mov r1, #0x28 bl FUN_02016998 add r1, r0, #0x0 ldr r0, _0201E064 ; =0x021C5998 mov r2, #0x28 str r1, [r0, #0x0] mov r0, #0x0 blx MIi_CpuClear32 ldr r0, _0201E064 ; =0x021C5998 mov r1, #0x30 ldr r0, [r0, #0x0] mul r1, r6 str r6, [r0, #0x4] add r0, r4, #0x0 bl FUN_02016998 ldr r7, _0201E064 ; =0x021C5998 mov r4, #0x0 ldr r1, [r7, #0x0] cmp r6, #0x0 str r0, [r1, #0x0] ble _0201E060 add r5, r4, #0x0 _0201E04E: ldr r0, [r7, #0x0] ldr r0, [r0, #0x0] add r0, r0, r5 bl FUN_0201E2F8 add r4, r4, #0x1 add r5, #0x30 cmp r4, r6 blt _0201E04E _0201E060: pop {r3-r7, pc} nop _0201E064: .word 0x021C5998 thumb_func_start FUN_0201E068 FUN_0201E068: ; 0x0201E068 cmp r1, #0x1 bne _0201E078 ldr r1, _0201E088 ; =0x021C5998 ldr r2, [r1, #0x0] ldrh r1, [r2, #0x24] orr r0, r1 strh r0, [r2, #0x24] bx lr _0201E078: cmp r1, #0x2 bne _0201E086 ldr r1, _0201E088 ; =0x021C5998 ldr r2, [r1, #0x0] ldrh r1, [r2, #0x26] orr r0, r1 strh r0, [r2, #0x26] _0201E086: bx lr .balign 4 _0201E088: .word 0x021C5998 thumb_func_start FUN_0201E08C FUN_0201E08C: ; 0x0201E08C push {r3, lr} ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201E0B2 bl FUN_0201E1F0 ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201E0B4 ; =0x021C5998 mov r1, #0x0 str r1, [r0, #0x0] _0201E0B2: pop {r3, pc} .balign 4 _0201E0B4: .word 0x021C5998 thumb_func_start FUN_0201E0B8 FUN_0201E0B8: ; 0x0201E0B8 bx lr .balign 4 thumb_func_start FUN_0201E0BC FUN_0201E0BC: ; 0x0201E0BC push {r3, lr} ldr r0, _0201E0E0 ; =0x021C5998 mov r2, #0x0 ldr r1, [r0, #0x0] str r2, [r1, #0xc] ldr r1, [r0, #0x0] str r2, [r1, #0x10] ldr r1, [r0, #0x0] str r2, [r1, #0x14] ldr r0, [r0, #0x0] str r2, [r0, #0x18] bl FUN_0201E464 ldr r0, _0201E0E0 ; =0x021C5998 ldr r0, [r0, #0x0] bl FUN_0201E574 pop {r3, pc} .balign 4 _0201E0E0: .word 0x021C5998 thumb_func_start FUN_0201E0E4 FUN_0201E0E4: ; 0x0201E0E4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E0F8 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E0F8: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E2C4 cmp r0, #0x0 bne _0201E108 mov r0, #0x0 pop {r3-r5, pc} _0201E108: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E314 cmp r0, #0x0 bne _0201E11E ldr r0, [r5, #0xc] bl FUN_0201E1C8 mov r0, #0x0 pop {r3-r5, pc} _0201E11E: add r0, r4, #0x0 bl FUN_0201E57C mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0201E128 FUN_0201E128: ; 0x0201E128 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E13C bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E13C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E2C4 cmp r0, #0x0 bne _0201E14C mov r0, #0x0 pop {r3-r5, pc} _0201E14C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E36C cmp r0, #0x0 bne _0201E162 ldr r0, [r5, #0xc] bl FUN_0201E1C8 mov r0, #0x0 pop {r3-r5, pc} _0201E162: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E168 FUN_0201E168: ; 0x0201E168 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bne _0201E174 bl ErrorHandling _0201E174: add r0, r4, #0x0 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E182 bl ErrorHandling _0201E182: str r5, [r4, #0x0] ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E19A ldr r3, [r4, #0x8] ldr r1, [r4, #0x24] ldr r2, [r5, #0xc] mov r0, #0xe lsl r3, r3, #0x5 bl FUN_0201C2C8 _0201E19A: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E1B0 ldr r3, [r4, #0x8] ldr r1, [r4, #0x28] ldr r2, [r5, #0xc] mov r0, #0x1e lsl r3, r3, #0x5 bl FUN_0201C2C8 _0201E1B0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E1B4 FUN_0201E1B4: ; 0x0201E1B4 push {r3, lr} bl FUN_0201E3F0 cmp r0, #0x0 beq _0201E1C2 mov r0, #0x1 pop {r3, pc} _0201E1C2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0201E1C8 FUN_0201E1C8: ; 0x0201E1C8 push {r4, lr} bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E1D6 bl ErrorHandling _0201E1D6: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201E1EC add r0, r4, #0x0 bl FUN_0201E5B8 add r0, r4, #0x0 bl FUN_0201E2BC _0201E1EC: pop {r4, pc} .balign 4 thumb_func_start FUN_0201E1F0 FUN_0201E1F0: ; 0x0201E1F0 push {r4-r6, lr} ldr r6, _0201E22C ; =0x021C5998 mov r4, #0x0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x4] cmp r0, #0x0 ble _0201E228 add r5, r4, #0x0 _0201E200: ldr r1, [r1, #0x0] add r0, r1, r5 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201E21C add r0, r1, r5 bl FUN_0201E5B8 ldr r0, [r6, #0x0] ldr r0, [r0, #0x0] add r0, r0, r5 bl FUN_0201E2BC _0201E21C: ldr r1, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r1, #0x4] add r5, #0x30 cmp r4, r0 blt _0201E200 _0201E228: pop {r4-r6, pc} nop _0201E22C: .word 0x021C5998 thumb_func_start FUN_0201E230 FUN_0201E230: ; 0x0201E230 push {r3, lr} bl FUN_0201E3F0 cmp r0, #0x0 bne _0201E244 bne _0201E240 bl ErrorHandling _0201E240: mov r0, #0x0 pop {r3, pc} _0201E244: add r1, r0, #0x0 add r1, #0x2c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _0201E252 add r0, #0x10 pop {r3, pc} _0201E252: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0201E258 FUN_0201E258: ; 0x0201E258 push {r4, lr} add r4, r1, #0x0 bl FUN_0201E3F0 cmp r0, #0x0 bne _0201E26E bne _0201E26A bl ErrorHandling _0201E26A: mov r0, #0x0 pop {r4, pc} _0201E26E: add r1, r0, #0x0 add r1, #0x2c ldrb r1, [r1, #0x0] cmp r1, #0x1 beq _0201E27C mov r0, #0x0 pop {r4, pc} _0201E27C: ldr r1, [r0, #0x0] ldr r1, [r1, #0x4] cmp r1, #0x0 beq _0201E288 mov r1, #0x1 str r1, [r4, #0x18] _0201E288: add r0, #0x10 pop {r4, pc} thumb_func_start FUN_0201E28C FUN_0201E28C: ; 0x0201E28C push {r4, lr} ldr r2, [r0, #0x4] cmp r2, #0x0 beq _0201E29A mov r4, #0x2 lsl r4, r4, #0x8 b _0201E2A6 _0201E29A: ldr r2, [r0, #0x0] cmp r2, #0x4 bne _0201E2A4 mov r4, #0x0 b _0201E2A6 _0201E2A4: mov r4, #0x20 _0201E2A6: cmp r4, #0x0 beq _0201E2B6 blx FUN_020B19C4 add r1, r4, #0x0 blx _u32_div_f pop {r4, pc} _0201E2B6: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201E2BC FUN_0201E2BC: ; 0x0201E2BC ldr r3, _0201E2C0 ; =FUN_0201E2F8 bx r3 .balign 4 _0201E2C0: .word FUN_0201E2F8 thumb_func_start FUN_0201E2C4 FUN_0201E2C4: ; 0x0201E2C4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0201E1B4 cmp r0, #0x1 bne _0201E2E0 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E2E0: ldr r0, [r5, #0xc] add r1, r4, #0x0 str r0, [r4, #0xc] ldr r0, [r5, #0x4] add r1, #0x2c str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r1, #0x0] ldr r1, [r5, #0x8] str r1, [r4, #0x8] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E2F8 FUN_0201E2F8: ; 0x0201E2F8 push {r4, lr} mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx Call_FillMemWithValue mov r0, #0x0 mvn r0, r0 str r0, [r4, #0xc] add r4, #0x10 add r0, r4, #0x0 blx FUN_020B19DC pop {r4, pc} thumb_func_start FUN_0201E314 FUN_0201E314: ; 0x0201E314 push {r3-r6, lr} sub sp, #0x4 add r6, r1, #0x0 ldr r0, [r6, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E334 ldr r0, _0201E368 ; =0x021C5998 ldr r0, [r0, #0x0] add r4, r0, #0x0 add r5, r0, #0x0 ldr r3, [r0, #0x1c] add r4, #0x14 add r5, #0x18 ldr r0, [r0, #0x20] b _0201E344 _0201E334: ldr r0, _0201E368 ; =0x021C5998 mov r3, #0x2 ldr r5, [r0, #0x0] lsl r3, r3, #0x8 add r4, r5, #0x0 add r4, #0xc add r5, #0x10 add r0, r3, #0x0 _0201E344: str r0, [sp, #0x0] ldr r1, [r4, #0x0] ldr r2, [r5, #0x0] add r0, r6, #0x0 bl FUN_0201E5F4 add r0, r6, #0x0 bl FUN_0201E4AC add r0, r6, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0201E640 mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} nop _0201E368: .word 0x021C5998 thumb_func_start FUN_0201E36C FUN_0201E36C: ; 0x0201E36C push {r4-r6, lr} add r5, r1, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E37C bl ErrorHandling _0201E37C: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E39E ldr r0, _0201E3EC ; =0x021C5998 ldr r1, [r5, #0x8] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x24] bl FUN_0201E534 add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r6, r0 bne _0201E39E mov r0, #0x0 pop {r4-r6, pc} _0201E39E: ldr r1, [r5, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E3C0 ldr r0, _0201E3EC ; =0x021C5998 ldr r1, [r5, #0x8] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x26] bl FUN_0201E534 add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0201E3C0 mov r0, #0x0 pop {r4-r6, pc} _0201E3C0: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E3CA str r6, [r5, #0x24] _0201E3CA: ldr r1, [r5, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E3D4 str r4, [r5, #0x28] _0201E3D4: ldr r0, [r5, #0x8] lsl r1, r0, #0x5 ldr r0, [r5, #0x0] str r1, [r0, #0x8] add r0, r5, #0x0 bl FUN_0201E4BC add r0, r5, #0x0 bl FUN_0201E57C mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0201E3EC: .word 0x021C5998 thumb_func_start FUN_0201E3F0 FUN_0201E3F0: ; 0x0201E3F0 push {r4-r5} ldr r2, _0201E424 ; =0x021C5998 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r2, [r5, #0x4] cmp r2, #0x0 ble _0201E41C ldr r2, [r5, #0x0] add r4, r2, #0x0 _0201E402: ldr r3, [r4, #0xc] cmp r0, r3 bne _0201E412 mov r0, #0x30 mul r0, r1 add r0, r2, r0 pop {r4-r5} bx lr _0201E412: ldr r3, [r5, #0x4] add r1, r1, #0x1 add r4, #0x30 cmp r1, r3 blt _0201E402 _0201E41C: mov r0, #0x0 pop {r4-r5} bx lr nop _0201E424: .word 0x021C5998 thumb_func_start FUN_0201E428 FUN_0201E428: ; 0x0201E428 push {r3-r4} ldr r1, _0201E460 ; =0x021C5998 mov r0, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201E458 ldr r1, [r4, #0x0] add r3, r1, #0x0 _0201E43A: add r2, r3, #0x0 add r2, #0x2c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0201E44E mov r2, #0x30 mul r2, r0 add r0, r1, r2 pop {r3-r4} bx lr _0201E44E: ldr r2, [r4, #0x4] add r0, r0, #0x1 add r3, #0x30 cmp r0, r2 blt _0201E43A _0201E458: mov r0, #0x0 pop {r3-r4} bx lr nop _0201E460: .word 0x021C5998 thumb_func_start FUN_0201E464 FUN_0201E464: ; 0x0201E464 push {r3, lr} blx GX_GetBankForOBJExtPltt cmp r0, #0x20 beq _0201E472 cmp r0, #0x40 bne _0201E47E _0201E472: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0xc str r1, [r0, #0x1c] b _0201E486 _0201E47E: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x1c] _0201E486: blx GX_GetBankForSubOBJExtPltt mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 bne _0201E49C ldr r0, _0201E4A8 ; =0x021C5998 lsl r1, r1, #0x5 ldr r0, [r0, #0x0] str r1, [r0, #0x20] pop {r3, pc} _0201E49C: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x20] pop {r3, pc} nop _0201E4A8: .word 0x021C5998 thumb_func_start FUN_0201E4AC FUN_0201E4AC: ; 0x0201E4AC ldr r1, [r0, #0x8] ldr r3, _0201E4B8 ; =FUN_0201E4BC lsl r2, r1, #0x5 ldr r1, [r0, #0x0] str r2, [r1, #0x8] bx r3 .balign 4 _0201E4B8: .word FUN_0201E4BC thumb_func_start FUN_0201E4BC FUN_0201E4BC: ; 0x0201E4BC push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B19DC ldr r0, [r4, #0x4] mov r2, #0x1 tst r0, r2 beq _0201E4DA add r3, r4, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x24] add r3, #0x10 blx FUN_020B1240 _0201E4DA: ldr r0, [r4, #0x4] mov r2, #0x2 tst r0, r2 beq _0201E4EE ldr r0, [r4, #0x0] ldr r1, [r4, #0x28] add r4, #0x10 add r3, r4, #0x0 blx FUN_020B1240 _0201E4EE: pop {r4, pc} thumb_func_start FUN_0201E4F0 FUN_0201E4F0: ; 0x0201E4F0 push {r4-r7} mov r3, #0x0 cmp r1, #0x0 ble _0201E50E mov r5, #0x1 _0201E4FA: ldrh r7, [r0, #0x0] add r4, r2, r3 add r6, r5, #0x0 lsl r6, r4 add r4, r7, #0x0 orr r4, r6 add r3, r3, #0x1 strh r4, [r0, #0x0] cmp r3, r1 blt _0201E4FA _0201E50E: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_0201E514 FUN_0201E514: ; 0x0201E514 push {r4-r7} mov r4, #0x0 cmp r1, #0x0 ble _0201E530 mov r6, #0x1 _0201E51E: add r5, r2, r4 add r7, r6, #0x0 ldrh r3, [r0, #0x0] lsl r7, r5 bic r3, r7 add r4, r4, #0x1 strh r3, [r0, #0x0] cmp r4, r1 blt _0201E51E _0201E530: pop {r4-r7} bx lr thumb_func_start FUN_0201E534 FUN_0201E534: ; 0x0201E534 push {r4-r7} mov r3, #0x0 mov r6, #0x1 add r2, r3, #0x0 _0201E53C: add r4, r2, #0x0 b _0201E546 _0201E540: cmp r5, #0x10 bge _0201E554 add r4, r4, #0x1 _0201E546: add r5, r3, r4 add r7, r6, #0x0 lsl r7, r5 tst r7, r0 bne _0201E554 cmp r4, r1 blt _0201E540 _0201E554: cmp r4, r1 bge _0201E560 add r3, r3, r4 add r3, r3, #0x1 cmp r3, #0x10 blt _0201E53C _0201E560: cmp r3, #0x10 blt _0201E56C mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr _0201E56C: lsl r0, r3, #0x5 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_0201E574 FUN_0201E574: ; 0x0201E574 mov r1, #0x0 strh r1, [r0, #0x24] strh r1, [r0, #0x26] bx lr thumb_func_start FUN_0201E57C FUN_0201E57C: ; 0x0201E57C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E598 ldr r0, _0201E5B4 ; =0x021C5998 ldr r2, [r4, #0x24] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x24 lsr r2, r2, #0x5 bl FUN_0201E4F0 _0201E598: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E5B0 ldr r0, _0201E5B4 ; =0x021C5998 ldr r2, [r4, #0x28] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x26 lsr r2, r2, #0x5 bl FUN_0201E4F0 _0201E5B0: pop {r4, pc} nop _0201E5B4: .word 0x021C5998 thumb_func_start FUN_0201E5B8 FUN_0201E5B8: ; 0x0201E5B8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E5D4 ldr r0, _0201E5F0 ; =0x021C5998 ldr r2, [r4, #0x24] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x24 lsr r2, r2, #0x5 bl FUN_0201E514 _0201E5D4: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E5EC ldr r0, _0201E5F0 ; =0x021C5998 ldr r2, [r4, #0x28] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x26 lsr r2, r2, #0x5 bl FUN_0201E514 _0201E5EC: pop {r4, pc} nop _0201E5F0: .word 0x021C5998 thumb_func_start FUN_0201E5F4 FUN_0201E5F4: ; 0x0201E5F4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 ldr r2, [r5, #0x4] mov r0, #0x1 tst r2, r0 beq _0201E61A ldr r2, [r5, #0x8] lsl r2, r2, #0x5 add r2, r1, r2 cmp r2, r3 bls _0201E618 bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 b _0201E61A _0201E618: str r1, [r5, #0x24] _0201E61A: ldr r2, [r5, #0x4] mov r1, #0x2 tst r1, r2 beq _0201E63C ldr r1, [r5, #0x8] lsl r1, r1, #0x5 add r2, r4, r1 ldr r1, [sp, #0x10] cmp r2, r1 bls _0201E63A bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 pop {r3-r5, pc} _0201E63A: str r4, [r5, #0x28] _0201E63C: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E640 FUN_0201E640: ; 0x0201E640 push {r3-r4} ldr r4, [r0, #0x4] mov r3, #0x1 tst r3, r4 beq _0201E654 ldr r3, [r0, #0x8] ldr r4, [r1, #0x0] lsl r3, r3, #0x5 add r3, r4, r3 str r3, [r1, #0x0] _0201E654: ldr r3, [r0, #0x4] mov r1, #0x2 tst r1, r3 beq _0201E666 ldr r0, [r0, #0x8] ldr r1, [r2, #0x0] lsl r0, r0, #0x5 add r0, r1, r0 str r0, [r2, #0x0] _0201E666: pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0201E66C FUN_0201E66C: ; 0x0201E66C push {r4, lr} add r4, r0, #0x0 blx GX_ResetBankForBG blx GX_ResetBankForBGExtPltt blx GX_ResetBankForSubBG blx FUN_020C6034 blx GX_ResetBankForOBJ blx GX_ResetBankForOBJExtPltt blx FUN_020C605C blx GX_ResetBankForSubOBJ blx GX_ResetBankForTex blx GX_ResetBankForTexPltt ldr r0, [r4, #0x0] blx GX_SetBankForBG ldr r0, [r4, #0x4] blx GX_SetBankForBGExtPltt ldr r0, [r4, #0x8] blx GX_SetBankForSubBG ldr r0, [r4, #0xc] blx GX_SetBankForSubBGExtPltt ldr r0, [r4, #0x10] blx GX_SetBankForOBJ ldr r0, [r4, #0x14] blx GX_SetBankForOBJExtPltt ldr r0, [r4, #0x18] blx GX_SetBankForSubOBJ ldr r0, [r4, #0x1c] blx GX_SetBankForSubOBJExtPltt ldr r0, [r4, #0x20] blx GX_SetBankForTex ldr r0, [r4, #0x24] blx GX_SetBankForTexPltt pop {r4, pc} .balign 4 thumb_func_start FUN_0201E6D8 FUN_0201E6D8: ; 0x0201E6D8 ldr r0, _0201E6E0 ; =0x021C599C mov r1, #0x0 str r1, [r0, #0x4] bx lr .balign 4 _0201E6E0: .word 0x021C599C thumb_func_start FUN_0201E6E4 FUN_0201E6E4: ; 0x0201E6E4 cmp r1, #0x1 bne _0201E6F2 ldr r1, _0201E718 ; =0x021C599C ldr r1, [r1, #0x4] tst r1, r0 beq _0201E6FA bx lr _0201E6F2: ldr r1, _0201E718 ; =0x021C599C ldr r1, [r1, #0x4] tst r1, r0 beq _0201E714 _0201E6FA: ldr r1, _0201E718 ; =0x021C599C ldr r2, [r1, #0x4] add r3, r2, #0x0 eor r3, r0 mov r2, #0x1 lsl r2, r2, #0x1a str r3, [r1, #0x4] ldr r1, [r2, #0x0] ldr r0, _0201E71C ; =0xFFFFE0FF and r1, r0 lsl r0, r3, #0x8 orr r0, r1 str r0, [r2, #0x0] _0201E714: bx lr nop _0201E718: .word 0x021C599C _0201E71C: .word 0xFFFFE0FF thumb_func_start FUN_0201E720 FUN_0201E720: ; 0x0201E720 ldr r1, _0201E738 ; =0x021C599C mov r3, #0x1 str r0, [r1, #0x4] lsl r3, r3, #0x1a ldr r2, [r3, #0x0] ldr r1, _0201E73C ; =0xFFFFE0FF lsl r0, r0, #0x8 and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr nop _0201E738: .word 0x021C599C _0201E73C: .word 0xFFFFE0FF thumb_func_start FUN_0201E740 FUN_0201E740: ; 0x0201E740 ldr r0, _0201E748 ; =0x021C599C mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _0201E748: .word 0x021C599C thumb_func_start FUN_0201E74C FUN_0201E74C: ; 0x0201E74C cmp r1, #0x1 bne _0201E75A ldr r1, _0201E77C ; =0x021C599C ldr r1, [r1, #0x0] tst r1, r0 beq _0201E762 bx lr _0201E75A: ldr r1, _0201E77C ; =0x021C599C ldr r1, [r1, #0x0] tst r1, r0 beq _0201E77A _0201E762: ldr r1, _0201E77C ; =0x021C599C ldr r2, [r1, #0x0] add r3, r2, #0x0 eor r3, r0 ldr r2, _0201E780 ; =0x04001000 str r3, [r1, #0x0] ldr r1, [r2, #0x0] ldr r0, _0201E784 ; =0xFFFFE0FF and r1, r0 lsl r0, r3, #0x8 orr r0, r1 str r0, [r2, #0x0] _0201E77A: bx lr .balign 4 _0201E77C: .word 0x021C599C _0201E780: .word 0x04001000 _0201E784: .word 0xFFFFE0FF thumb_func_start FUN_0201E788 FUN_0201E788: ; 0x0201E788 push {r3, lr} blx GX_DispOn ldr r2, _0201E79C ; =0x04001000 mov r0, #0x1 ldr r1, [r2, #0x0] lsl r0, r0, #0x10 orr r0, r1 str r0, [r2, #0x0] pop {r3, pc} .balign 4 _0201E79C: .word 0x04001000 thumb_func_start FUN_0201E7A0 FUN_0201E7A0: ; 0x0201E7A0 ldr r0, _0201E7C0 ; =0x021C4918 ldr r2, _0201E7C4 ; =0x04000304 ldrb r0, [r0, #0x5] cmp r0, #0x0 bne _0201E7B4 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2, #0x0] bx lr _0201E7B4: ldrh r1, [r2, #0x0] ldr r0, _0201E7C8 ; =0xFFFF7FFF and r0, r1 strh r0, [r2, #0x0] bx lr nop _0201E7C0: .word 0x021C4918 _0201E7C4: .word 0x04000304 _0201E7C8: .word 0xFFFF7FFF thumb_func_start FUN_0201E7CC FUN_0201E7CC: ; 0x0201E7CC ldr r0, _0201E7D4 ; =0x021C599C ldr r0, [r0, #0x4] bx lr nop _0201E7D4: .word 0x021C599C thumb_func_start FUN_0201E7D8 FUN_0201E7D8: ; 0x0201E7D8 push {r3-r5, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E8B4 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 asr r2, r4, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E8B4 ; =0x020FFA38 lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [r5, #0x14] ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] asr r0, r0, #0x4 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 ldr r0, _0201E8B4 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 lsl r2, r2, #0xa mov r3, #0x0 add r0, r0, r2 adc r1, r3 ldrh r2, [r5, #0x3c] lsl r1, r1, #0x14 lsr r0, r0, #0xc asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E8B4 ; =0x020FFA38 orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r1, [r5, #0x1c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E8B4 ; =0x020FFA38 ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 add r0, r5, #0x0 str r1, [r5, #0x18] add r0, #0x14 add r5, #0x20 add r1, r5, #0x0 add r2, r0, #0x0 blx VEC_Add pop {r3-r5, pc} nop _0201E8B4: .word 0x020FFA38 thumb_func_start FUN_0201E8B8 FUN_0201E8B8: ; 0x0201E8B8 push {r3-r5, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E998 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 asr r2, r4, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E998 ; =0x020FFA38 lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x20] ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] asr r0, r0, #0x4 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 ldr r0, _0201E998 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 lsl r2, r2, #0xa mov r3, #0x0 add r0, r0, r2 adc r1, r3 ldrh r2, [r5, #0x3c] lsl r1, r1, #0x14 lsr r0, r0, #0xc asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E998 ; =0x020FFA38 orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f asr r3, r2, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x28] neg r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E998 ; =0x020FFA38 ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f asr r1, r0, #0x1f blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x24] add r0, r5, #0x0 add r0, #0x20 add r5, #0x14 add r1, r5, #0x0 add r2, r0, #0x0 blx VEC_Add pop {r3-r5, pc} .balign 4 _0201E998: .word 0x020FFA38 thumb_func_start FUN_0201E99C FUN_0201E99C: ; 0x0201E99C add r2, r1, #0x0 add r2, #0x46 strh r0, [r2, #0x0] asr r0, r0, #0x4 lsl r3, r0, #0x1 ldr r2, _0201E9E0 ; =0x020FFA38 lsl r0, r3, #0x1 ldrsh r0, [r2, r0] str r0, [r1, #0x0] add r0, r3, #0x1 lsl r0, r0, #0x1 ldrsh r0, [r2, r0] mov r2, #0x0 str r0, [r1, #0x4] ldr r0, _0201E9E4 ; =0x00001555 str r0, [r1, #0x8] mov r0, #0x96 lsl r0, r0, #0xc str r0, [r1, #0xc] mov r0, #0xe1 lsl r0, r0, #0xe str r0, [r1, #0x10] mov r0, #0x1 str r2, [r1, #0x2c] lsl r0, r0, #0xc str r0, [r1, #0x30] str r2, [r1, #0x34] str r2, [r1, #0x54] str r2, [r1, #0x58] str r2, [r1, #0x5c] str r2, [r1, #0x60] str r2, [r1, #0x64] bx lr nop _0201E9E0: .word 0x020FFA38 _0201E9E4: .word 0x00001555 thumb_func_start FUN_0201E9E8 FUN_0201E9E8: ; 0x0201E9E8 ldr r2, [r0, #0x58] cmp r2, #0x0 bne _0201E9F2 mov r2, #0x0 str r2, [r1, #0x0] _0201E9F2: ldr r2, [r0, #0x5c] cmp r2, #0x0 bne _0201E9FC mov r2, #0x0 str r2, [r1, #0x4] _0201E9FC: ldr r0, [r0, #0x60] cmp r0, #0x0 bne _0201EA06 mov r0, #0x0 str r0, [r1, #0x8] _0201EA06: bx lr thumb_func_start FUN_0201EA08 FUN_0201EA08: ; 0x0201EA08 push {r3-r7, lr} add r5, r0, #0x0 ldr r7, [r5, #0x64] add r4, r1, #0x0 add r6, r2, #0x0 cmp r7, #0x0 bne _0201EA20 ldmia r4!, {r0-r1} stmia r6!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r6, #0x0] pop {r3-r7, pc} _0201EA20: add r0, r7, #0x0 str r0, [sp, #0x0] add r0, #0x8 str r0, [sp, #0x0] ldr r0, [r7, #0x10] cmp r0, #0x0 bne _0201EA48 add r3, r4, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [r5, #0x64] ldr r2, [r7, #0x4] ldr r1, [r0, #0xc] cmp r2, r1 bne _0201EA5C mov r1, #0x1 str r1, [r0, #0x10] b _0201EA5C _0201EA48: ldr r2, [r7, #0x4] mov r1, #0xc mul r1, r2 ldr r0, [r7, #0x20] add r2, r6, #0x0 add r3, r0, r1 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _0201EA5C: ldr r1, [r5, #0x64] ldr r0, [r7, #0x4] ldr r1, [r1, #0x0] add r0, r0, #0x1 blx _s32_div_f str r1, [r7, #0x4] ldr r1, [sp, #0x0] ldr r0, [r5, #0x64] ldr r2, [r1, #0x0] mov r1, #0xc ldr r0, [r0, #0x20] mul r1, r2 add r3, r4, #0x0 add r2, r0, r1 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [sp, #0x0] ldr r1, [r5, #0x64] ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, r0, #0x1 blx _s32_div_f ldr r0, [sp, #0x0] str r1, [r0, #0x0] ldr r0, [r5, #0x64] ldr r0, [r0, #0x14] cmp r0, #0x0 bne _0201EAA0 ldr r0, [r4, #0x0] str r0, [r6, #0x0] _0201EAA0: ldr r0, [r5, #0x64] ldr r0, [r0, #0x18] cmp r0, #0x0 bne _0201EAAC ldr r0, [r4, #0x4] str r0, [r6, #0x4] _0201EAAC: ldr r0, [r5, #0x64] ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0201EAB8 ldr r0, [r4, #0x8] str r0, [r6, #0x8] _0201EAB8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201EABC FUN_0201EABC: ; 0x0201EABC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [sp, #0x18] add r7, r1, #0x0 str r0, [sp, #0x18] ldr r0, [r0, #0x54] add r6, r2, #0x0 str r3, [sp, #0x0] cmp r0, #0x0 beq _0201EB46 add r0, r7, #0x1 cmp r0, r5 ble _0201EADA bl ErrorHandling _0201EADA: ldr r0, [sp, #0x0] mov r1, #0x24 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0xc ldr r0, [sp, #0x0] mul r1, r5 bl FUN_02016998 mov r1, #0x0 str r0, [r4, #0x20] cmp r5, #0x0 ble _0201EB12 add r2, r1, #0x0 add r0, r1, #0x0 _0201EAFA: ldr r3, [r4, #0x20] add r1, r1, #0x1 str r0, [r3, r2] ldr r3, [r4, #0x20] add r3, r3, r2 str r0, [r3, #0x4] ldr r3, [r4, #0x20] add r3, r3, r2 str r0, [r3, #0x8] add r2, #0xc cmp r1, r5 blt _0201EAFA _0201EB12: str r5, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] str r7, [r4, #0x8] str r7, [r4, #0xc] str r0, [r4, #0x10] str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] mov r0, #0x1 add r1, r6, #0x0 tst r1, r0 beq _0201EB2E str r0, [r4, #0x14] _0201EB2E: mov r0, #0x2 tst r0, r6 beq _0201EB38 mov r0, #0x1 str r0, [r4, #0x18] _0201EB38: mov r0, #0x4 tst r0, r6 beq _0201EB42 mov r0, #0x1 str r0, [r4, #0x1c] _0201EB42: ldr r0, [sp, #0x18] str r4, [r0, #0x64] _0201EB46: pop {r3-r7, pc} thumb_func_start FUN_0201EB48 FUN_0201EB48: ; 0x0201EB48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x64] cmp r0, #0x0 beq _0201EB62 ldr r0, [r0, #0x20] bl FUN_02016A18 ldr r0, [r4, #0x64] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x64] _0201EB62: pop {r4, pc} thumb_func_start FUN_0201EB64 FUN_0201EB64: ; 0x0201EB64 ldr r3, _0201EB6C ; =FUN_02016998 mov r1, #0x68 bx r3 nop _0201EB6C: .word FUN_02016998 thumb_func_start FUN_0201EB70 FUN_0201EB70: ; 0x0201EB70 ldr r3, _0201EB74 ; =FUN_02016A18 bx r3 .balign 4 _0201EB74: .word FUN_02016A18 thumb_func_start FUN_0201EB78 FUN_0201EB78: ; 0x0201EB78 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0xd _0201EB80: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0201EB80 pop {r3-r4} bx lr thumb_func_start FUN_0201EB8C FUN_0201EB8C: ; 0x0201EB8C ldr r1, _0201EB94 ; =0x021C59A4 str r0, [r1, #0x0] bx lr nop _0201EB94: .word 0x021C59A4 thumb_func_start FUN_0201EB98 FUN_0201EB98: ; 0x0201EB98 ldr r0, _0201EBA0 ; =0x021C59A4 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _0201EBA0: .word 0x021C59A4 thumb_func_start FUN_0201EBA4 FUN_0201EBA4: ; 0x0201EBA4 push {r3-r6, lr} sub sp, #0x1c ldr r0, _0201EC40 ; =0x021C59A4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0201EC3A ldr r0, [r1, #0x54] cmp r0, #0x0 beq _0201EBEE add r1, #0x48 add r2, sp, #0x10 blx VEC_Subtract ldr r0, _0201EC40 ; =0x021C59A4 add r1, sp, #0x10 ldr r0, [r0, #0x0] bl FUN_0201E9E8 ldr r0, _0201EC40 ; =0x021C59A4 add r1, sp, #0x10 ldr r0, [r0, #0x0] add r2, sp, #0x4 bl FUN_0201EA08 ldr r1, _0201EC40 ; =0x021C59A4 add r0, sp, #0x4 ldr r1, [r1, #0x0] bl FUN_0201EF70 ldr r0, _0201EC40 ; =0x021C59A4 ldr r3, [r0, #0x0] ldr r2, [r3, #0x54] add r3, #0x48 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] _0201EBEE: ldr r0, _0201EC40 ; =0x021C59A4 ldr r5, _0201EC44 ; =0x021CEF58 ldr r4, [r0, #0x0] add r3, r4, #0x0 add r2, r4, #0x0 add r4, #0x14 add r6, r4, #0x0 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r2, #0x2c str r0, [r5, #0x0] add r6, r2, #0x0 ldr r5, _0201EC48 ; =0x021CEF64 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r3, #0x20 str r0, [r5, #0x0] add r6, r3, #0x0 ldr r5, _0201EC4C ; =0x021CEF70 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r1, r2, #0x0 str r0, [r5, #0x0] ldr r0, _0201EC50 ; =0x021CED64 add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r3, #0x0 blx G3i_LookAt_ ldr r1, _0201EC54 ; =0x021CED98 mov r0, #0xe8 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] _0201EC3A: add sp, #0x1c pop {r3-r6, pc} nop _0201EC40: .word 0x021C59A4 _0201EC44: .word 0x021CEF58 _0201EC48: .word 0x021CEF64 _0201EC4C: .word 0x021CEF70 _0201EC50: .word 0x021CED64 _0201EC54: .word 0x021CED98 thumb_func_start FUN_0201EC58 FUN_0201EC58: ; 0x0201EC58 add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x2c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201EC68 FUN_0201EC68: ; 0x0201EC68 push {r3-r4} add r3, r1, #0x0 add r4, r0, #0x0 str r4, [r3, #0x54] add r2, r3, #0x0 ldmia r4!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r3, #0x58] str r0, [r3, #0x5c] str r0, [r3, #0x60] pop {r3-r4} bx lr thumb_func_start FUN_0201EC88 FUN_0201EC88: ; 0x0201EC88 mov r1, #0x0 str r1, [r0, #0x54] str r1, [r0, #0x58] str r1, [r0, #0x5c] str r1, [r0, #0x60] bx lr thumb_func_start FUN_0201EC94 FUN_0201EC94: ; 0x0201EC94 str r0, [r2, #0xc] add r0, r2, #0x0 str r1, [r2, #0x10] add r0, #0x44 ldr r3, _0201ECA4 ; =FUN_0201EE2C ldrb r0, [r0, #0x0] add r1, r2, #0x0 bx r3 .balign 4 _0201ECA4: .word FUN_0201EE2C thumb_func_start FUN_0201ECA8 FUN_0201ECA8: ; 0x0201ECA8 push {r3-r7, lr} ldr r4, [sp, #0x20] add r5, r0, #0x0 add r7, r1, #0x0 add r0, r3, #0x0 add r1, r4, #0x0 add r6, r2, #0x0 bl FUN_0201E99C add r3, r5, #0x0 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] str r7, [r4, #0x38] ldrh r0, [r6, #0x0] strh r0, [r4, #0x3c] ldrh r0, [r6, #0x2] strh r0, [r4, #0x3e] add r0, r4, #0x0 ldrh r1, [r6, #0x4] add r0, #0x40 strh r1, [r0, #0x0] add r0, r4, #0x0 ldrh r1, [r6, #0x6] add r0, #0x42 strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201E7D8 add r0, sp, #0x8 ldrb r0, [r0, #0x10] add r1, r4, #0x0 bl FUN_0201EE2C ldr r0, [sp, #0x1c] cmp r0, #0x0 beq _0201ED0E str r5, [r4, #0x54] add r2, r4, #0x0 ldmia r5!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r4, #0x58] str r0, [r4, #0x5c] str r0, [r4, #0x60] _0201ED0E: pop {r3-r7, pc} thumb_func_start FUN_0201ED10 FUN_0201ED10: ; 0x0201ED10 push {r3-r7, lr} ldr r4, [sp, #0x1c] add r6, r0, #0x0 add r7, r1, #0x0 add r0, r3, #0x0 add r1, r4, #0x0 add r5, r2, #0x0 bl FUN_0201E99C add r2, r4, #0x0 ldmia r6!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r6, #0x0] str r0, [r2, #0x0] str r7, [r4, #0x38] ldrh r0, [r5, #0x0] strh r0, [r4, #0x3c] ldrh r0, [r5, #0x2] strh r0, [r4, #0x3e] add r0, r4, #0x0 ldrh r1, [r5, #0x4] add r0, #0x40 strh r1, [r0, #0x0] add r0, r4, #0x0 ldrh r1, [r5, #0x6] add r0, #0x42 strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201E8B8 add r0, sp, #0x8 ldrb r0, [r0, #0x10] add r1, r4, #0x0 bl FUN_0201EE2C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201ED5C FUN_0201ED5C: ; 0x0201ED5C push {r4-r7, lr} sub sp, #0x3c ldr r4, [sp, #0x54] add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 bl FUN_0201E99C add r3, r5, #0x0 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r3, r6, #0x0 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r5, #0x0 str r0, [r2, #0x0] add r0, r6, #0x0 add r2, sp, #0x30 blx VEC_Subtract add r0, sp, #0x30 blx VEC_Mag str r0, [r4, #0x38] mov r6, #0x0 add r0, sp, #0x24 str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] add r0, sp, #0x18 str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] add r0, sp, #0xc str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] mov r0, #0x1 lsl r0, r0, #0xc add r3, sp, #0x30 str r0, [sp, #0x8] ldmia r3!, {r0-r1} add r2, sp, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r6, [sp, #0x0] str r0, [r2, #0x0] str r6, [sp, #0x4] str r6, [sp, #0x10] add r0, sp, #0x0 add r1, sp, #0xc bl FUN_0201C7B0 strh r0, [r4, #0x3e] add r1, r6, #0x0 mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x0] ldr r0, [sp, #0x38] str r1, [sp, #0x4] str r0, [sp, #0xc] ldr r0, [sp, #0x34] str r1, [sp, #0x8] str r0, [sp, #0x14] str r1, [sp, #0x10] add r0, sp, #0x0 add r1, sp, #0xc bl FUN_0201C7B0 strh r0, [r4, #0x3c] add r0, r4, #0x0 add r1, r6, #0x0 add r0, #0x40 strh r1, [r0, #0x0] add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0201EE2C ldr r0, [sp, #0x50] cmp r0, #0x0 beq _0201EE26 str r5, [r4, #0x54] add r2, r4, #0x0 ldmia r5!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r4, #0x58] str r0, [r4, #0x5c] str r0, [r4, #0x60] _0201EE26: add sp, #0x3c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0201EE2C FUN_0201EE2C: ; 0x0201EE2C push {r3-r6, lr} sub sp, #0x14 add r5, r1, #0x0 cmp r0, #0x0 bne _0201EE6C ldr r0, [r5, #0x10] str r0, [sp, #0x0] mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, _0201EEE4 ; =0x021CED20 str r0, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] ldr r3, [r5, #0xc] blx G3i_PerspectiveW_ ldr r1, _0201EEE8 ; =0x021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 bic r2, r0 str r2, [r1, #0x7c] mov r1, #0x0 ldr r0, _0201EEEC ; =0x02105BB8 strb r1, [r5, #0x0] str r1, [r0, #0x0] add sp, #0x14 pop {r3-r6, pc} _0201EE6C: ldr r4, [r5, #0x38] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] blx FX_Div asr r1, r0, #0x1f asr r3, r4, #0x1f add r2, r4, #0x0 blx _ll_mul mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsr r4, r2, #0xc lsl r0, r1, #0x14 orr r4, r0 ldr r2, [r5, #0x8] asr r1, r4, #0x1f add r0, r4, #0x0 asr r3, r2, #0x1f blx _ll_mul mov r6, #0x2 mov r2, #0x0 lsl r6, r6, #0xa add r3, r0, r6 adc r1, r2 lsl r0, r1, #0x14 lsr r3, r3, #0xc orr r3, r0 ldr r0, [r5, #0xc] neg r1, r4 str r0, [sp, #0x0] ldr r0, [r5, #0x10] str r0, [sp, #0x4] lsl r0, r6, #0x1 str r0, [sp, #0x8] str r2, [sp, #0xc] ldr r0, _0201EEE4 ; =0x021CED20 neg r2, r3 str r0, [sp, #0x10] add r0, r4, #0x0 blx G3i_OrthoW_ ldr r1, _0201EEE8 ; =0x021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 bic r2, r0 str r2, [r1, #0x7c] mov r0, #0x1 strb r0, [r5, #0x0] ldr r0, _0201EEEC ; =0x02105BB8 mov r1, #0x0 str r1, [r0, #0x0] add sp, #0x14 pop {r3-r6, pc} nop _0201EEE4: .word 0x021CED20 _0201EEE8: .word 0x021CED98 _0201EEEC: .word 0x02105BB8 thumb_func_start FUN_0201EEF0 FUN_0201EEF0: ; 0x0201EEF0 add r2, r1, #0x0 add r2, #0x46 strh r0, [r2, #0x0] add r0, r1, #0x0 add r0, #0x46 ldrh r0, [r0, #0x0] ldr r3, _0201EF24 ; =FUN_0201EE2C asr r0, r0, #0x4 lsl r2, r0, #0x2 ldr r0, _0201EF28 ; =0x020FFA38 ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r0, r2] str r0, [r1, #0x4] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] bx r3 nop _0201EF24: .word FUN_0201EE2C _0201EF28: .word 0x020FFA38 thumb_func_start FUN_0201EF2C FUN_0201EF2C: ; 0x0201EF2C add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] ldr r3, _0201EF68 ; =FUN_0201EE2C add r2, r2, r0 add r0, r1, #0x0 add r0, #0x46 strh r2, [r0, #0x0] add r0, r1, #0x0 add r0, #0x46 ldrh r0, [r0, #0x0] asr r0, r0, #0x4 lsl r2, r0, #0x2 ldr r0, _0201EF6C ; =0x020FFA38 ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r0, r2] str r0, [r1, #0x4] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] bx r3 nop _0201EF68: .word FUN_0201EE2C _0201EF6C: .word 0x020FFA38 thumb_func_start FUN_0201EF70 FUN_0201EF70: ; 0x0201EF70 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 add r2, r0, #0x0 blx VEC_Add add r4, #0x20 add r0, r4, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 blx VEC_Add pop {r3-r5, pc} thumb_func_start FUN_0201EF90 FUN_0201EF90: ; 0x0201EF90 ldrh r2, [r0, #0x0] strh r2, [r1, #0x3c] ldrh r2, [r0, #0x2] strh r2, [r1, #0x3e] add r2, r1, #0x0 ldrh r3, [r0, #0x4] add r2, #0x40 strh r3, [r2, #0x0] ldrh r2, [r0, #0x6] add r0, r1, #0x0 add r0, #0x42 strh r2, [r0, #0x0] ldr r3, _0201EFB0 ; =FUN_0201E7D8 add r0, r1, #0x0 bx r3 nop _0201EFB0: .word FUN_0201E7D8 thumb_func_start FUN_0201EFB4 FUN_0201EFB4: ; 0x0201EFB4 ldrh r3, [r1, #0x3c] ldrh r2, [r0, #0x0] add r2, r3, r2 strh r2, [r1, #0x3c] ldrh r3, [r1, #0x3e] ldrh r2, [r0, #0x2] add r2, r3, r2 strh r2, [r1, #0x3e] add r2, r1, #0x0 add r2, #0x40 ldrh r2, [r2, #0x0] ldrh r0, [r0, #0x4] ldr r3, _0201EFDC ; =FUN_0201E8B8 add r2, r2, r0 add r0, r1, #0x0 add r0, #0x40 strh r2, [r0, #0x0] add r0, r1, #0x0 bx r3 nop _0201EFDC: .word FUN_0201E8B8 thumb_func_start FUN_0201EFE0 FUN_0201EFE0: ; 0x0201EFE0 ldr r3, _0201EFE8 ; =FUN_0201E7D8 str r0, [r1, #0x38] add r0, r1, #0x0 bx r3 .balign 4 _0201EFE8: .word FUN_0201E7D8 thumb_func_start FUN_0201EFEC FUN_0201EFEC: ; 0x0201EFEC push {r4, lr} add r3, r1, #0x0 add r4, r0, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] add r0, r3, #0x0 bl FUN_0201E7D8 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F008 FUN_0201F008: ; 0x0201F008 add r0, #0x46 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0201F010 FUN_0201F010: ; 0x0201F010 ldr r0, [r0, #0x38] bx lr thumb_func_start FUN_0201F014 FUN_0201F014: ; 0x0201F014 ldrh r2, [r1, #0x3c] strh r2, [r0, #0x0] ldrh r2, [r1, #0x3e] strh r2, [r0, #0x2] add r2, r1, #0x0 add r2, #0x40 ldrh r2, [r2, #0x0] add r1, #0x42 strh r2, [r0, #0x4] ldrh r1, [r1, #0x0] strh r1, [r0, #0x6] bx lr thumb_func_start FUN_0201F02C FUN_0201F02C: ; 0x0201F02C add r2, r1, #0x0 add r2, #0x20 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_0201F03C FUN_0201F03C: ; 0x0201F03C add r2, r1, #0x0 add r2, #0x14 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_0201F04C FUN_0201F04C: ; 0x0201F04C add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201F05C FUN_0201F05C: ; 0x0201F05C add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201F06C FUN_0201F06C: ; 0x0201F06C mov r2, #0x0 strb r2, [r0, #0x0] strb r2, [r0, #0x1] str r2, [r0, #0x4] add r1, r0, #0x0 str r2, [r0, #0x8] add r1, #0xc4 str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xc8 str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xcc str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xd0 str r2, [r1, #0x0] strb r2, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_0201F094 FUN_0201F094: ; 0x0201F094 mov r3, #0x0 str r3, [r0, #0x1c] str r3, [r0, #0x20] str r3, [r0, #0x78] add r1, r0, #0x0 str r3, [r0, #0x7c] add r1, #0x80 str r3, [r1, #0x0] add r1, r0, #0x0 add r1, #0x84 add r2, r0, #0x0 str r3, [r1, #0x0] add r2, #0x94 mov r1, #0x10 _0201F0B0: strb r3, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0201F0B0 add r2, r0, #0x0 mov r1, #0x0 add r2, #0x88 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0x8c str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0x90 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xa4 str r1, [r2, #0x0] str r1, [r0, #0x0] str r1, [r0, #0x4] mov r2, #0x1 str r1, [r0, #0x8] lsl r2, r2, #0xc str r2, [r0, #0xc] str r2, [r0, #0x10] str r2, [r0, #0x14] add r2, r0, #0x0 add r2, #0xaa strh r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xa8 strb r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb0 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb4 str r1, [r2, #0x0] strb r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_0201F100 FUN_0201F100: ; 0x0201F100 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _0201F13C ; =0x021C59A8 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F112 bl ErrorHandling _0201F112: mov r1, #0xd4 add r0, r4, #0x0 mul r1, r6 bl FUN_02016998 ldr r7, _0201F13C ; =0x021C59A8 mov r4, #0x0 str r0, [r7, #0x0] str r6, [r7, #0x4] cmp r6, #0x0 ble _0201F13A add r5, r4, #0x0 _0201F12A: ldr r0, [r7, #0x0] add r0, r0, r5 bl FUN_0201F06C add r4, r4, #0x1 add r5, #0xd4 cmp r4, r6 blt _0201F12A _0201F13A: pop {r3-r7, pc} .balign 4 _0201F13C: .word 0x021C59A8 thumb_func_start FUN_0201F140 FUN_0201F140: ; 0x0201F140 push {r4-r6, lr} ldr r6, _0201F174 ; =0x021C59A8 mov r4, #0x0 ldr r0, [r6, #0x4] cmp r0, #0x0 ble _0201F160 add r5, r4, #0x0 _0201F14E: ldr r0, [r6, #0x0] add r0, r0, r5 bl FUN_0201F23C ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, #0xd4 cmp r4, r0 blt _0201F14E _0201F160: ldr r0, _0201F174 ; =0x021C59A8 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201F174 ; =0x021C59A8 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] pop {r4-r6, pc} nop _0201F174: .word 0x021C59A8 thumb_func_start FUN_0201F178 FUN_0201F178: ; 0x0201F178 push {r3-r7, lr} ldr r6, _0201F1B0 ; =0x021C59A8 mov r4, #0x0 ldr r0, [r6, #0x4] cmp r0, #0x0 ble _0201F1AC add r5, r4, #0x0 mov r7, #0x2 _0201F188: ldr r0, [r6, #0x0] add r0, r0, r5 ldrb r1, [r0, #0x1] cmp r1, #0x1 bne _0201F196 bl FUN_0201F318 _0201F196: ldr r0, [r6, #0x0] add r1, r0, r5 ldrb r0, [r1, #0x3] cmp r0, #0x1 bne _0201F1A2 strb r7, [r1, #0x3] _0201F1A2: ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, #0xd4 cmp r4, r0 blt _0201F188 _0201F1AC: pop {r3-r7, pc} nop _0201F1B0: .word 0x021C59A8 thumb_func_start FUN_0201F1B4 FUN_0201F1B4: ; 0x0201F1B4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201F2E4 add r4, r0, #0x0 bne _0201F1C8 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201F1C8: mov r0, #0x1 strb r0, [r4, #0x0] strb r0, [r4, #0x1] ldr r2, [r5, #0x0] mov r1, #0xb8 ldr r0, [r5, #0x4] mul r1, r2 bl FUN_02016998 str r0, [r4, #0x4] ldr r0, [r5, #0x0] str r0, [r4, #0x8] add r0, r4, #0x0 add r0, #0xc bl FUN_0201F094 add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0xc add r0, #0xbc str r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0xc0 str r1, [r0, #0x0] ldr r1, [r5, #0x0] ldr r0, [r5, #0x4] lsl r1, r1, #0x2 bl FUN_02016998 add r1, r4, #0x0 add r1, #0xc4 str r0, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201FABC ldr r0, [r5, #0x4] mov r1, #0x10 bl FUN_02016998 add r1, r4, #0x0 add r1, #0xcc str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0xcc ldr r0, [r0, #0x0] ldr r1, [r5, #0x4] mov r2, #0x4 bl FUN_02016B20 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] bl FUN_0201C360 add r1, r4, #0x0 add r1, #0xd0 str r0, [r1, #0x0] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0201F23C FUN_0201F23C: ; 0x0201F23C push {r4, lr} add r4, r0, #0x0 bne _0201F24A bl ErrorHandling mov r0, #0x0 pop {r4, pc} _0201F24A: ldrb r1, [r4, #0x0] cmp r1, #0x0 beq _0201F27E bl FUN_0201F284 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xcc ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] bl FUN_0201C39C add r0, r4, #0x0 bl FUN_0201F06C _0201F27E: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F284 FUN_0201F284: ; 0x0201F284 push {r3-r5, lr} cmp r0, #0x0 bne _0201F294 bne _0201F290 bl ErrorHandling _0201F290: mov r0, #0x0 pop {r3-r5, pc} _0201F294: ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _0201F2BA add r1, r0, #0x0 add r1, #0xbc add r4, r0, #0x0 ldr r1, [r1, #0x0] add r4, #0xc cmp r1, r4 beq _0201F2BA _0201F2A8: add r0, r1, #0x0 add r0, #0xb0 ldr r5, [r0, #0x0] add r0, r1, #0x0 bl FUN_0201F744 add r1, r5, #0x0 cmp r5, r4 bne _0201F2A8 _0201F2BA: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F2C0 FUN_0201F2C0: ; 0x0201F2C0 push {r4, lr} add r4, r0, #0x0 bne _0201F2CA bl ErrorHandling _0201F2CA: ldrb r0, [r4, #0x3] cmp r0, #0x0 bne _0201F2D4 mov r0, #0x0 pop {r4, pc} _0201F2D4: mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0201F2D8 FUN_0201F2D8: ; 0x0201F2D8 ldrb r1, [r0, #0x3] cmp r1, #0x2 bne _0201F2E2 mov r1, #0x0 strb r1, [r0, #0x3] _0201F2E2: bx lr thumb_func_start FUN_0201F2E4 FUN_0201F2E4: ; 0x0201F2E4 push {r3-r4} ldr r0, _0201F314 ; =0x021C59A8 mov r1, #0x0 ldr r3, [r0, #0x4] cmp r3, #0x0 ble _0201F30C ldr r4, [r0, #0x0] add r2, r4, #0x0 _0201F2F4: ldrb r0, [r2, #0x0] cmp r0, #0x0 bne _0201F304 mov r0, #0xd4 mul r0, r1 add r0, r4, r0 pop {r3-r4} bx lr _0201F304: add r1, r1, #0x1 add r2, #0xd4 cmp r1, r3 blt _0201F2F4 _0201F30C: mov r0, #0x0 pop {r3-r4} bx lr nop _0201F314: .word 0x021C59A8 thumb_func_start FUN_0201F318 FUN_0201F318: ; 0x0201F318 push {r3-r6, lr} sub sp, #0x24 add r5, r0, #0x0 bne _0201F324 bl ErrorHandling _0201F324: add r0, sp, #0x0 blx MTX_Identity33_ add r0, r5, #0x0 add r0, #0xbc ldr r4, [r0, #0x0] add r5, #0xc cmp r4, r5 beq _0201F37E add r6, sp, #0x0 _0201F338: ldrb r0, [r4, #0x18] cmp r0, #0x1 bne _0201F376 add r0, r4, #0x0 bl FUN_0201FC54 add r0, r4, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _0201F356 add r0, r4, #0x0 bl FUN_0201F90C b _0201F360 _0201F356: cmp r0, #0x2 bne _0201F360 add r0, r4, #0x0 bl FUN_0201F8F0 _0201F360: add r0, r4, #0x0 add r3, r4, #0x0 add r0, #0x24 add r1, r4, #0x0 add r2, r6, #0x0 add r3, #0xc bl FUN_0201B26C add r0, r4, #0x0 bl FUN_0201FC70 _0201F376: add r4, #0xb0 ldr r4, [r4, #0x0] cmp r4, r5 bne _0201F338 _0201F37E: add sp, #0x24 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0201F384 FUN_0201F384: ; 0x0201F384 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x1c] add r4, r1, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F5D4 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201F648 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F3BA add r6, #0xc add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201FB58 _0201F3BA: add r0, r5, #0x0 mov r1, #0x2 add r0, #0xa8 strb r1, [r0, #0x0] ldr r0, [r4, #0x8] mov r1, #0x0 str r0, [r5, #0x20] add r0, r5, #0x0 add r0, #0xaa strh r1, [r0, #0x0] add r5, #0xac str r1, [r5, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0201F3D4 FUN_0201F3D4: ; 0x0201F3D4 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x1c] add r4, r1, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F3FE add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F3FE: add r0, r5, #0x0 ldr r1, [r4, #0x1c] add r0, #0x88 str r1, [r0, #0x0] add r0, r5, #0x0 ldr r1, [r4, #0x20] add r0, #0x8c str r1, [r0, #0x0] add r0, r5, #0x0 ldr r1, [r4, #0x24] add r0, #0x90 str r1, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F69C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F6C8 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F43A add r6, #0xc add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201FB58 _0201F43A: add r0, r5, #0x0 mov r1, #0x3 add r0, #0xa8 strb r1, [r0, #0x0] ldr r0, [r4, #0x8] mov r1, #0x0 str r0, [r5, #0x20] add r0, r5, #0x0 add r0, #0xaa strh r1, [r0, #0x0] add r5, #0xac str r1, [r5, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0201F454 FUN_0201F454: ; 0x0201F454 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 blx FUN_020B7E1C str r0, [sp, #0x8] add r0, r5, #0x0 blx FUN_020B7E10 str r0, [sp, #0x4] add r0, r5, #0x0 blx FUN_020B7CE4 str r0, [sp, #0x0] ldr r0, [sp, #0x8] cmp r0, #0x0 beq _0201F492 ldr r3, _0201F4E4 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r2, r1, #0x0 blx r3 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201F496 bl ErrorHandling b _0201F496 _0201F492: mov r0, #0x0 str r0, [r4, #0x0] _0201F496: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0201F4B2 ldr r3, _0201F4E4 ; =0x021064B8 mov r1, #0x1 ldr r3, [r3, #0x0] mov r2, #0x0 blx r3 str r0, [r6, #0x0] cmp r0, #0x0 bne _0201F4B6 bl ErrorHandling b _0201F4B6 _0201F4B2: mov r0, #0x0 str r0, [r6, #0x0] _0201F4B6: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0201F4DA ldr r3, _0201F4E8 ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 mov r2, #0x0 blx r3 str r0, [r7, #0x0] cmp r0, #0x0 bne _0201F4DE bl ErrorHandling add sp, #0xc pop {r4-r7, pc} _0201F4DA: mov r0, #0x0 str r0, [r7, #0x0] _0201F4DE: add sp, #0xc pop {r4-r7, pc} nop _0201F4E4: .word 0x021064B8 _0201F4E8: .word 0x021064C0 thumb_func_start FUN_0201F4EC FUN_0201F4EC: ; 0x0201F4EC push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 blx FUN_020B7CF0 add r0, r5, #0x0 blx FUN_020B7C58 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F500 FUN_0201F500: ; 0x0201F500 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r2, #0x0] ldr r2, [r3, #0x0] add r5, r0, #0x0 blx FUN_020B7DFC ldr r1, [sp, #0x10] add r0, r5, #0x0 ldr r1, [r1, #0x0] blx FUN_020B7CDC add r0, r4, #0x0 add r1, r5, #0x0 blx FUN_020B7790 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F524 FUN_0201F524: ; 0x0201F524 push {r3-r5, lr} ldr r0, [r0, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 cmp r0, #0x0 beq _0201F536 ldr r1, _0201F550 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 _0201F536: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0201F542 ldr r1, _0201F550 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 _0201F542: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0201F54E ldr r1, _0201F554 ; =0x021064C4 ldr r1, [r1, #0x0] blx r1 _0201F54E: pop {r3-r5, pc} .balign 4 _0201F550: .word 0x021064BC _0201F554: .word 0x021064C4 thumb_func_start FUN_0201F558 FUN_0201F558: ; 0x0201F558 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 beq _0201F568 cmp r5, #0x0 bne _0201F56E _0201F568: add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0201F56E: blx FUN_020B7E1C str r0, [sp, #0x0] add r0, r4, #0x0 blx FUN_020B7E10 str r0, [sp, #0x4] add r0, r4, #0x0 blx FUN_020B7CE4 add r4, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E1C add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r7, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 ldr r1, [sp, #0x0] cmp r1, r6 bne _0201F5AA ldr r1, [sp, #0x4] cmp r1, r7 bne _0201F5AA cmp r4, r0 beq _0201F5B0 _0201F5AA: add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0201F5B0: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201F5B8 FUN_0201F5B8: ; 0x0201F5B8 push {r4, lr} add r4, r1, #0x0 add r0, r4, #0x0 add r0, #0xa4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F5D0 bl FUN_0201C40C mov r0, #0x0 add r4, #0xa4 str r0, [r4, #0x0] _0201F5D0: pop {r4, pc} .balign 4 thumb_func_start FUN_0201F5D4 FUN_0201F5D4: ; 0x0201F5D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] add r0, r1, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r1, #0x7c add r2, #0x80 bl FUN_0201FB9C str r0, [r5, #0x78] add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 blx FUN_020B80B4 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0201F60E add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201F558 b _0201F610 _0201F60E: mov r0, #0x0 _0201F610: cmp r0, #0x0 bne _0201F644 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F62E add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F62E: add r0, r5, #0x0 add r0, #0x80 add r1, r5, #0x0 add r2, r5, #0x0 add r5, #0x90 ldr r0, [r0, #0x0] add r1, #0x88 add r2, #0x8c add r3, r5, #0x0 bl FUN_0201F454 _0201F644: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F648 FUN_0201F648: ; 0x0201F648 push {r4-r6, lr} sub sp, #0x8 add r4, r2, #0x0 add r6, r0, #0x0 add r5, r1, #0x0 add r0, r4, #0x0 bl FUN_0201FBCC add r1, r5, #0x0 add r1, #0x84 add r3, r5, #0x0 add r3, #0x94 str r0, [r1, #0x0] add r4, #0xc add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] add r1, r2, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r0, #0xac ldr r0, [r0, #0x0] add r2, r5, #0x0 add r3, r5, #0x0 str r0, [sp, #0x4] add r6, #0xd0 add r2, #0x84 add r3, #0x88 ldr r0, [r6, #0x0] ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] bl FUN_0201C3B4 add r5, #0xa4 str r0, [r5, #0x0] add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_0201F69C FUN_0201F69C: ; 0x0201F69C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, r4, #0x0 add r1, #0x7c add r2, #0x80 bl FUN_0201FB9C str r0, [r5, #0x78] add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 blx FUN_020B80B4 add r0, r4, #0x0 bl FUN_0201FBCC add r5, #0x84 str r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F6C8 FUN_0201F6C8: ; 0x0201F6C8 push {r3-r4} add r4, r0, #0x0 add r2, r4, #0x0 add r3, r1, #0x0 add r3, #0xc add r2, #0x94 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 add r4, #0xa4 str r0, [r4, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0201F6E8 FUN_0201F6E8: ; 0x0201F6E8 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x0] cmp r6, #0x0 bne _0201F6F6 mov r0, #0x0 pop {r4-r6, pc} _0201F6F6: add r0, r6, #0x0 bl FUN_0201FAF4 add r4, r0, #0x0 bne _0201F704 mov r0, #0x0 pop {r4-r6, pc} _0201F704: add r3, r5, #0x0 str r6, [r4, #0x1c] add r3, #0x8 ldmia r3!, {r0-r1} add r2, r4, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r3, r5, #0x0 str r0, [r2, #0x0] add r3, #0x14 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] mov r1, #0x0 str r0, [r2, #0x0] add r0, r4, #0x0 add r0, #0xaa strh r1, [r0, #0x0] mov r1, #0x1 add r0, r4, #0x0 strb r1, [r4, #0x18] add r0, #0xa8 strb r1, [r0, #0x0] ldr r1, [r5, #0x4] add r0, r4, #0x0 bl FUN_0201FBD8 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201F744 FUN_0201F744: ; 0x0201F744 push {r3-r5, lr} add r5, r0, #0x0 bne _0201F74E bl ErrorHandling _0201F74E: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F75C bl ErrorHandling _0201F75C: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] ldr r4, [r5, #0x1c] cmp r0, #0x0 bne _0201F76C mov r0, #0x0 pop {r3-r5, pc} _0201F76C: add r0, r5, #0x0 bl FUN_0201FB7C add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F78C add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F78C: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201FB20 mov r0, #0x1 strb r0, [r4, #0x3] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F7A4 FUN_0201F7A4: ; 0x0201F7A4 push {r3-r4} add r4, r0, #0x0 str r1, [r4, #0x0] str r2, [r4, #0x4] str r3, [r4, #0x8] ldr r3, [sp, #0x8] add r2, r4, #0x0 add r2, #0xc ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 str r0, [r4, #0x1c] str r0, [r4, #0x20] str r0, [r4, #0x24] pop {r3-r4} bx lr thumb_func_start FUN_0201F7C8 FUN_0201F7C8: ; 0x0201F7C8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7D6 bl ErrorHandling _0201F7D6: ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F7E0 FUN_0201F7E0: ; 0x0201F7E0 push {r4, lr} add r4, r0, #0x0 bne _0201F7EA bl ErrorHandling _0201F7EA: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F7F0 FUN_0201F7F0: ; 0x0201F7F0 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7FE bl ErrorHandling _0201F7FE: ldmia r5!, {r0-r1} add r4, #0xc stmia r4!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F80C FUN_0201F80C: ; 0x0201F80C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F81A bl ErrorHandling _0201F81A: strb r4, [r5, #0x18] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F820 FUN_0201F820: ; 0x0201F820 push {r4, lr} add r4, r0, #0x0 bne _0201F82A bl ErrorHandling _0201F82A: ldrb r0, [r4, #0x18] pop {r4, pc} .balign 4 thumb_func_start FUN_0201F830 FUN_0201F830: ; 0x0201F830 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F83E bl ErrorHandling _0201F83E: add r5, #0xaa strh r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F844 FUN_0201F844: ; 0x0201F844 push {r4, lr} add r4, r0, #0x0 bne _0201F84E bl ErrorHandling _0201F84E: add r4, #0xaa ldrh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0201F854 FUN_0201F854: ; 0x0201F854 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F862 bl ErrorHandling _0201F862: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201FBFC pop {r3-r5, pc} thumb_func_start FUN_0201F86C FUN_0201F86C: ; 0x0201F86C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F87A bl ErrorHandling _0201F87A: add r5, #0xac str r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F880 FUN_0201F880: ; 0x0201F880 push {r4, lr} add r4, r0, #0x0 bne _0201F88A bl ErrorHandling _0201F88A: add r4, #0xac ldr r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0201F890 FUN_0201F890: ; 0x0201F890 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F89E bl ErrorHandling _0201F89E: add r1, r5, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] add r0, r5, #0x0 bl FUN_0201FBEC add r1, r5, #0x0 add r1, #0xac str r0, [r1, #0x0] add r0, r5, #0x0 add r0, #0xac ldr r0, [r0, #0x0] add r5, #0xac add r0, r0, r4 str r0, [r5, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F8C0 FUN_0201F8C0: ; 0x0201F8C0 push {r4, lr} add r4, r0, #0x0 bne _0201F8CA bl ErrorHandling _0201F8CA: add r1, r4, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201FBEC add r4, #0xac ldr r1, [r4, #0x0] sub r0, r1, r0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F8E0 FUN_0201F8E0: ; 0x0201F8E0 push {r4, lr} add r4, r0, #0x0 bne _0201F8EA bl ErrorHandling _0201F8EA: ldr r0, [r4, #0x7c] pop {r4, pc} .balign 4 thumb_func_start FUN_0201F8F0 FUN_0201F8F0: ; 0x0201F8F0 push {r3, lr} add r1, r0, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F90A add r0, r1, #0x0 add r0, #0xa4 add r1, #0xac ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] bl FUN_0201C438 _0201F90A: pop {r3, pc} thumb_func_start FUN_0201F90C FUN_0201F90C: ; 0x0201F90C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0xac ldr r1, [r1, #0x0] add r0, #0x94 lsl r1, r1, #0x4 lsr r1, r1, #0x10 bl FUN_02022244 add r2, sp, #0x0 strb r0, [r2, #0x0] lsr r0, r0, #0x8 strb r0, [r2, #0x1] ldrb r0, [r2, #0x0] add r1, r4, #0x0 add r1, #0x84 strb r0, [r2, #0x2] ldrb r0, [r2, #0x1] strb r0, [r2, #0x3] ldrb r2, [r2, #0x2] ldr r0, [r4, #0x7c] ldr r1, [r1, #0x0] bl FUN_0201F954 add r2, sp, #0x0 ldr r0, [r4, #0x7c] add r4, #0x84 ldrb r2, [r2, #0x3] ldr r1, [r4, #0x0] bl FUN_0201FA04 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201F954 FUN_0201F954: ; 0x0201F954 push {r3-r7, lr} ldr r3, [r0, #0x8] mov r5, #0x0 add r6, r0, r3 ldrh r0, [r0, r3] add r3, r1, #0x0 add r1, #0x42 ldrh r1, [r1, #0x0] add r3, #0x3c add r4, r6, r0 add r0, r3, r1 ldrh r1, [r3, r1] mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x4] lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldrb r0, [r4, #0x1] cmp r0, #0x0 ble _0201F9A2 _0201F97C: ldrh r0, [r4, #0x6] add r1, r4, r0 ldrh r0, [r4, r0] add r2, r1, #0x4 add r1, r0, #0x0 mul r1, r5 add r1, r2, r1 ldrb r2, [r1, #0x3] mov r0, #0x1 tst r0, r2 beq _0201F99A add r0, r6, #0x0 add r2, r7, #0x0 bl FUN_0201F9A4 _0201F99A: ldrb r0, [r4, #0x1] add r5, r5, #0x1 cmp r5, r0 blt _0201F97C _0201F9A2: pop {r3-r7, pc} thumb_func_start FUN_0201F9A4 FUN_0201F9A4: ; 0x0201F9A4 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r0, r1, #0x0 ldrh r0, [r0, #0x0] str r1, [sp, #0x0] add r7, r2, #0x0 add r0, r6, r0 str r0, [sp, #0x4] add r0, r1, #0x0 ldrb r0, [r0, #0x2] mov r4, #0x0 cmp r0, #0x0 ble _0201F9FC add r0, r6, #0x4 str r0, [sp, #0x8] _0201F9C4: ldrh r2, [r6, #0xa] ldr r0, [sp, #0x8] ldr r1, [sp, #0x8] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] ldrb r1, [r1, r4] mul r1, r2 add r0, r0, r1 ldr r0, [r0, #0x4] add r5, r6, r0 ldr r0, [r5, #0x14] lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r0, r7 ldr r0, _0201FA00 ; =0x0000FFFF cmp r1, r0 bls _0201F9EC bl ErrorHandling _0201F9EC: ldr r0, [r5, #0x14] add r4, r4, #0x1 add r0, r0, r7 str r0, [r5, #0x14] ldr r0, [sp, #0x0] ldrb r0, [r0, #0x2] cmp r4, r0 blt _0201F9C4 _0201F9FC: add sp, #0xc pop {r4-r7, pc} .balign 4 _0201FA00: .word 0x0000FFFF thumb_func_start FUN_0201FA04 FUN_0201FA04: ; 0x0201FA04 push {r3-r7, lr} ldr r3, [r0, #0x8] add r7, r0, r3 ldrh r0, [r7, #0x2] add r4, r7, r0 ldrh r0, [r1, #0x34] add r5, r1, r0 ldrh r0, [r5, #0x6] add r1, r5, r0 ldrh r0, [r5, r0] add r3, r1, #0x4 add r1, r0, #0x0 mul r1, r2 add r0, r3, r1 ldrh r6, [r3, r1] ldrh r1, [r0, #0x2] mov r0, #0x1 tst r0, r1 bne _0201FA2C lsr r6, r6, #0x1 _0201FA2C: ldrb r0, [r4, #0x1] mov r5, #0x0 cmp r0, #0x0 bls _0201FA5A _0201FA34: ldrh r0, [r4, #0x6] add r1, r4, r0 ldrh r0, [r4, r0] add r2, r1, #0x4 add r1, r0, #0x0 mul r1, r5 add r1, r2, r1 ldrb r2, [r1, #0x3] mov r0, #0x1 tst r0, r2 beq _0201FA52 add r0, r7, #0x0 add r2, r6, #0x0 bl FUN_0201FA5C _0201FA52: ldrb r0, [r4, #0x1] add r5, r5, #0x1 cmp r5, r0 blo _0201FA34 _0201FA5A: pop {r3-r7, pc} thumb_func_start FUN_0201FA5C FUN_0201FA5C: ; 0x0201FA5C push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r0, r1, #0x0 ldrh r0, [r0, #0x0] str r1, [sp, #0x0] add r7, r2, #0x0 add r0, r6, r0 str r0, [sp, #0x4] add r0, r1, #0x0 ldrb r0, [r0, #0x2] mov r4, #0x0 cmp r0, #0x0 bls _0201FAB4 add r0, r6, #0x4 str r0, [sp, #0x8] _0201FA7C: ldrh r2, [r6, #0xa] ldr r0, [sp, #0x8] ldr r1, [sp, #0x8] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] ldrb r1, [r1, r4] mul r1, r2 add r0, r0, r1 ldr r0, [r0, #0x4] add r5, r6, r0 ldrh r1, [r5, #0x1c] ldr r0, _0201FAB8 ; =0x00001FFF and r0, r1 add r1, r0, r7 ldr r0, _0201FAB8 ; =0x00001FFF cmp r1, r0 bls _0201FAA4 bl ErrorHandling _0201FAA4: ldrh r0, [r5, #0x1c] add r4, r4, #0x1 add r0, r0, r7 strh r0, [r5, #0x1c] ldr r0, [sp, #0x0] ldrb r0, [r0, #0x2] cmp r4, r0 blo _0201FA7C _0201FAB4: add sp, #0xc pop {r4-r7, pc} .balign 4 _0201FAB8: .word 0x00001FFF thumb_func_start FUN_0201FABC FUN_0201FABC: ; 0x0201FABC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] mov r7, #0x0 cmp r0, #0x0 ble _0201FAEC add r4, r7, #0x0 add r6, r7, #0x0 _0201FACC: ldr r0, [r5, #0x4] add r0, r0, r4 bl FUN_0201F094 ldr r0, [r5, #0x4] add r7, r7, #0x1 add r1, r0, r4 add r0, r5, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] add r4, #0xb8 str r1, [r0, r6] ldr r0, [r5, #0x8] add r6, r6, #0x4 cmp r7, r0 blt _0201FACC _0201FAEC: mov r0, #0x0 add r5, #0xc8 str r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0201FAF4 FUN_0201FAF4: ; 0x0201FAF4 add r1, r0, #0x0 add r1, #0xc8 ldr r3, [r1, #0x0] ldr r1, [r0, #0x8] cmp r3, r1 blt _0201FB04 mov r0, #0x0 bx lr _0201FB04: add r1, r0, #0x0 add r1, #0xc4 ldr r2, [r1, #0x0] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r0, #0x0 add r1, #0xc8 ldr r1, [r1, #0x0] add r0, #0xc8 add r1, r1, #0x1 str r1, [r0, #0x0] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_0201FB20 FUN_0201FB20: ; 0x0201FB20 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0xc8 ldr r0, [r0, #0x0] add r4, r1, #0x0 cmp r0, #0x0 bgt _0201FB32 mov r0, #0x0 pop {r3-r5, pc} _0201FB32: add r0, r4, #0x0 bl FUN_0201F094 add r0, r5, #0x0 add r0, #0xc8 ldr r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r5, #0x0 add r0, #0xc8 str r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0xc4 add r5, #0xc8 ldr r1, [r0, #0x0] ldr r0, [r5, #0x0] lsl r0, r0, #0x2 str r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0201FB58 FUN_0201FB58: ; 0x0201FB58 add r2, r0, #0x0 add r2, #0xb4 ldr r3, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb4 str r3, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb4 ldr r2, [r2, #0x0] add r2, #0xb0 str r1, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb0 str r0, [r2, #0x0] add r0, #0xb4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0201FB7C FUN_0201FB7C: ; 0x0201FB7C add r1, r0, #0x0 add r1, #0xb0 ldr r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xb4 ldr r1, [r1, #0x0] add r1, #0xb0 str r2, [r1, #0x0] add r1, r0, #0x0 add r0, #0xb0 add r1, #0xb4 ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, #0xb4 str r1, [r0, #0x0] bx lr thumb_func_start FUN_0201FB9C FUN_0201FB9C: ; 0x0201FB9C push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x0 add r5, r2, #0x0 bl FUN_0201FC90 add r7, r0, #0x0 blx FUN_020BC13C add r4, r0, #0x0 ldrh r0, [r4, #0xe] add r0, r4, r0 ldr r0, [r0, #0xc] add r0, r4, r0 str r0, [r6, #0x0] cmp r5, #0x0 beq _0201FBC6 add r0, r7, #0x0 blx FUN_020BC0FC str r0, [r5, #0x0] _0201FBC6: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201FBCC FUN_0201FBCC: ; 0x0201FBCC ldr r3, _0201FBD4 ; =FUN_0201FC90 mov r1, #0x1 bx r3 nop _0201FBD4: .word FUN_0201FC90 thumb_func_start FUN_0201FBD8 FUN_0201FBD8: ; 0x0201FBD8 push {r3, lr} ldr r2, [r1, #0x1c] cmp r2, #0x0 bne _0201FBE6 bl FUN_0201F384 pop {r3, pc} _0201FBE6: bl FUN_0201F3D4 pop {r3, pc} thumb_func_start FUN_0201FBEC FUN_0201FBEC: ; 0x0201FBEC push {r3, lr} ldr r0, [r0, #0x20] bl FUN_0201FCA8 ldr r0, [r0, #0x0] lsl r0, r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_0201FBFC FUN_0201FBFC: ; 0x0201FBFC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] ldr r0, [r5, #0x20] bl FUN_0201FCA8 add r5, #0xac add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201FC1C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201FC1C FUN_0201FC1C: ; 0x0201FC1C push {r3-r6} ldr r4, [r0, #0x0] ldr r6, [r1, #0x0] lsl r4, r4, #0xc mov r3, #0x0 cmp r4, r6 bgt _0201FC32 ldr r5, [r0, #0x4] lsl r5, r5, #0xc cmp r5, r6 bge _0201FC36 _0201FC32: str r4, [r1, #0x0] b _0201FC4E _0201FC36: add r2, r6, r2 cmp r5, r2 bge _0201FC4C ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0201FC46 str r4, [r1, #0x0] b _0201FC4E _0201FC46: mov r3, #0x1 str r5, [r1, #0x0] b _0201FC4E _0201FC4C: str r2, [r1, #0x0] _0201FC4E: add r0, r3, #0x0 pop {r3-r6} bx lr thumb_func_start FUN_0201FC54 FUN_0201FC54: ; 0x0201FC54 push {r3, lr} add r3, r0, #0x0 add r0, #0x90 str r0, [sp, #0x0] add r0, r3, #0x0 add r0, #0x80 add r2, r3, #0x0 ldr r1, [r3, #0x78] ldr r0, [r0, #0x0] add r2, #0x88 add r3, #0x8c bl FUN_0201F500 pop {r3, pc} thumb_func_start FUN_0201FC70 FUN_0201FC70: ; 0x0201FC70 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, [r4, #0x78] blx FUN_020B772C add r4, #0x80 ldr r0, [r4, #0x0] add r1, sp, #0x4 add r2, sp, #0x8 add r3, sp, #0x0 bl FUN_0201F4EC add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201FC90 FUN_0201FC90: ; 0x0201FC90 cmp r1, #0x0 beq _0201FC9A cmp r1, #0x1 beq _0201FC9E b _0201FCA2 _0201FC9A: ldr r0, [r0, #0x0] bx lr _0201FC9E: ldr r0, [r0, #0x4] bx lr _0201FCA2: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0201FCA8 FUN_0201FCA8: ; 0x0201FCA8 mov r2, #0xc mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_0201FCB0 FUN_0201FCB0: ; 0x0201FCB0 push {r3-r5, lr} add r5, r0, #0x0 bne _0201FCBA bl ErrorHandling _0201FCBA: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0201FCC4 bl ErrorHandling _0201FCC4: mov r1, #0x49 ldr r0, [r5, #0x8] lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bne _0201FCD6 bl ErrorHandling _0201FCD6: add r0, r4, #0x0 bl FUN_0201FE44 ldr r2, [r5, #0x0] ldr r0, [r5, #0x8] lsl r1, r2, #0x6 add r1, r2, r1 lsl r1, r1, #0x2 bl FUN_02016998 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201FCF4 bl ErrorHandling _0201FCF4: ldr r0, [r5, #0x0] str r0, [r4, #0x4] ldr r1, [r5, #0x0] ldr r0, [r5, #0x8] lsl r1, r1, #0x2 bl FUN_02016998 str r0, [r4, #0x8] cmp r0, #0x0 bne _0201FD0C bl ErrorHandling _0201FD0C: add r0, r4, #0x0 bl FUN_0202083C add r0, r4, #0x0 add r0, #0x10 bl FUN_0201FE6C add r2, r4, #0x0 mov r1, #0x43 lsl r1, r1, #0x2 add r2, #0x10 str r2, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x4] add r1, #0x8 str r0, [r4, r1] ldr r0, [r5, #0x8] ldr r1, _0201FD54 ; =0x02105BBC bl FUN_020161A4 mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] add r1, r1, #0x4 add r1, r4, r1 blx thunk_FUN_020afda0_2 mov r0, #0x12 mov r1, #0x1 lsl r0, r0, #0x4 str r1, [r4, r0] add r0, r4, #0x0 pop {r3-r5, pc} nop _0201FD54: .word 0x02105BBC thumb_func_start FUN_0201FD58 FUN_0201FD58: ; 0x0201FD58 push {r4, lr} add r4, r0, #0x0 bne _0201FD62 mov r0, #0x0 pop {r4, pc} _0201FD62: ldr r1, [r4, #0x0] cmp r1, #0x0 bne _0201FD6C mov r0, #0x1 pop {r4, pc} _0201FD6C: bl FUN_0201FDB4 mov r0, #0x46 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_0201FE44 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0201FD98 FUN_0201FD98: ; 0x0201FD98 cmp r0, #0x0 bne _0201FDA0 mov r0, #0x0 bx lr _0201FDA0: ldr r2, [r0, #0x0] cmp r2, #0x0 bne _0201FDAA mov r0, #0x0 bx lr _0201FDAA: mov r2, #0x12 lsl r2, r2, #0x4 str r1, [r0, r2] mov r0, #0x1 bx lr thumb_func_start FUN_0201FDB4 FUN_0201FDB4: ; 0x0201FDB4 push {r4-r6, lr} cmp r0, #0x0 bne _0201FDBE mov r0, #0x0 pop {r4-r6, pc} _0201FDBE: ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0201FDC8 mov r0, #0x1 pop {r4-r6, pc} _0201FDC8: mov r1, #0x11 lsl r1, r1, #0x4 add r4, r0, #0x0 ldr r1, [r0, r1] add r4, #0x10 cmp r1, r4 beq _0201FDE8 mov r6, #0x1 lsl r6, r6, #0x8 _0201FDDA: ldr r5, [r1, r6] add r0, r1, #0x0 bl FUN_0201FFC8 add r1, r5, #0x0 cmp r5, r4 bne _0201FDDA _0201FDE8: mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0201FDEC FUN_0201FDEC: ; 0x0201FDEC push {r3-r7, lr} add r5, r0, #0x0 bne _0201FDF6 bl ErrorHandling _0201FDF6: mov r0, #0x12 lsl r0, r0, #0x4 ldr r1, [r5, r0] cmp r1, #0x0 beq _0201FE38 sub r0, #0x10 add r6, r5, #0x0 ldr r4, [r5, r0] add r6, #0x10 cmp r4, r6 beq _0201FE38 ldr r7, _0201FE3C ; =0x020EE658 _0201FE0E: add r2, r4, #0x0 add r2, #0x34 ldrb r2, [r2, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r7, r2] blx r2 add r1, r4, #0x0 add r1, #0x35 ldrb r1, [r1, #0x0] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201FE40 ; =0x020EE660 ldr r1, [r1, r2] blx r1 mov r0, #0x1 lsl r0, r0, #0x8 ldr r4, [r4, r0] cmp r4, r6 bne _0201FE0E _0201FE38: pop {r3-r7, pc} nop _0201FE3C: .word 0x020EE658 _0201FE40: .word 0x020EE660 thumb_func_start FUN_0201FE44 FUN_0201FE44: ; 0x0201FE44 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 str r1, [r4, #0x0] str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x45 str r1, [r4, #0xc] lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, #0x0 add r0, #0x10 bl FUN_0201FE6C mov r0, #0x12 mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_0201FE6C FUN_0201FE6C: ; 0x0201FE6C push {r4, lr} mov r2, #0x41 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 str r1, [r4, #0x3c] blx Call_FillMemWithValue add r0, r4, #0x0 add r0, #0xb4 blx FUN_020B1A24 add r0, r4, #0x0 add r0, #0xd8 blx FUN_020B19DC mov r0, #0x0 str r0, [r4, #0x30] pop {r4, pc} .balign 4 thumb_func_start FUN_0201FE94 FUN_0201FE94: ; 0x0201FE94 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02020874 add r4, r0, #0x0 bne _0201FEA6 mov r0, #0x0 pop {r4-r6, pc} _0201FEA6: ldr r0, [r5, #0x0] add r6, r5, #0x0 str r0, [r4, #0x3c] add r0, r4, #0x0 mov r2, #0x0 add r0, #0xf0 add r6, #0x8 strh r2, [r0, #0x0] ldmia r6!, {r0-r1} add r3, r4, #0x0 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] add r6, r5, #0x0 str r0, [r3, #0x0] add r6, #0x14 add r3, r4, #0x0 ldmia r6!, {r0-r1} add r3, #0x18 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] str r0, [r3, #0x0] ldrh r0, [r5, #0x20] strh r0, [r4, #0x24] add r0, r4, #0x0 ldr r1, [r5, #0x28] add r0, #0xf8 str r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x24] add r0, #0xf4 strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x26 strb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x27 strb r2, [r0, #0x0] str r2, [r4, #0x2c] add r0, r4, #0x0 str r2, [r4, #0x30] mov r1, #0x11 add r0, #0x28 strb r1, [r0, #0x0] mov r0, #0x45 ldr r1, [r5, #0x0] lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r4, #0x0 add r1, #0x26 ldrb r1, [r1, #0x0] blx FUN_020B502C add r0, r4, #0x0 add r0, #0x27 ldrb r2, [r0, #0x0] mov r0, #0x45 ldr r1, [r5, #0x0] lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x1 mov r3, #0x2 and r1, r2 and r2, r3 blx FUN_020B4F38 add r0, r4, #0x0 mov r2, #0x1 add r0, #0x34 strb r2, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x35 strb r1, [r0, #0x0] lsl r0, r2, #0xd str r0, [r4, #0x38] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r3, [r5, #0x2c] add r2, r4, #0x0 bl FUN_02020434 cmp r0, #0x0 bne _0201FF56 add r0, r4, #0x0 bl FUN_0201FFC8 mov r0, #0x0 pop {r4-r6, pc} _0201FF56: add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x2a strb r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2a ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x29 strb r1, [r0, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020788 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201FF84 FUN_0201FF84: ; 0x0201FF84 push {r4, lr} sub sp, #0x30 add r2, r0, #0x0 ldr r0, [r2, #0x0] add r4, r2, #0x0 str r0, [sp, #0x0] ldr r0, [r2, #0x4] add r4, #0x8 str r0, [sp, #0x4] ldmia r4!, {r0-r1} add r3, sp, #0x8 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] mov r1, #0x0 str r0, [r3, #0x0] mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] add r0, sp, #0x0 strh r1, [r0, #0x20] ldr r0, [r2, #0x14] str r0, [sp, #0x24] ldr r0, [r2, #0x18] str r0, [sp, #0x28] ldr r0, [r2, #0x1c] str r0, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201FE94 add sp, #0x30 pop {r4, pc} .balign 4 thumb_func_start FUN_0201FFC8 FUN_0201FFC8: ; 0x0201FFC8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0xec ldr r1, [r1, #0x0] cmp r1, #0x0 beq _02020040 add r1, r5, #0x0 add r1, #0xfc ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0201FFE4 bl FUN_02020820 _0201FFE4: add r0, r5, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x3 bne _0202000E add r1, r5, #0x0 add r1, #0xf8 add r0, r5, #0x0 add r4, r5, #0x0 ldr r1, [r1, #0x0] add r0, #0xb4 add r4, #0x40 blx FUN_020B1A14 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0202000E ldr r0, [r4, #0x5c] blx FUN_020B4358 _0202000E: add r0, r5, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x2 bne _02020030 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x70] cmp r0, #0x0 beq _02020026 bl FUN_02016A18 _02020026: ldr r0, [r4, #0x74] cmp r0, #0x0 beq _02020030 bl FUN_02016A18 _02020030: add r0, r5, #0x0 mov r1, #0x0 add r0, #0xec str r1, [r0, #0x0] ldr r0, [r5, #0x3c] add r1, r5, #0x0 bl FUN_02020890 _02020040: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020044 FUN_02020044: ; 0x02020044 add r2, r1, #0x0 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr .balign 4 thumb_func_start FUN_02020054 FUN_02020054: ; 0x02020054 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02020064 FUN_02020064: ; 0x02020064 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x18 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02020074 FUN_02020074: ; 0x02020074 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02020064 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020200EC pop {r3-r5, pc} thumb_func_start FUN_02020088 FUN_02020088: ; 0x02020088 strh r1, [r0, #0x24] bx lr thumb_func_start FUN_0202008C FUN_0202008C: ; 0x0202008C push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02020088 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020200EC pop {r3-r5, pc} thumb_func_start FUN_020200A0 FUN_020200A0: ; 0x020200A0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200AE bl ErrorHandling _020200AE: cmp r4, #0x2 blt _020200B6 bl ErrorHandling _020200B6: add r5, #0x34 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020200BC FUN_020200BC: ; 0x020200BC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200CA bl ErrorHandling _020200CA: cmp r4, #0x2 blt _020200D2 bl ErrorHandling _020200D2: add r5, #0x35 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020200D8 FUN_020200D8: ; 0x020200D8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200E6 bl ErrorHandling _020200E6: str r4, [r5, #0x38] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020200EC FUN_020200EC: ; 0x020200EC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200FA bl ErrorHandling _020200FA: add r5, #0x26 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02020100 FUN_02020100: ; 0x02020100 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202010E bl ErrorHandling _0202010E: add r0, r5, #0x0 add r0, #0x27 strb r4, [r0, #0x0] mov r0, #0x0 add r5, #0x26 strb r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202011C FUN_0202011C: ; 0x0202011C bx lr .balign 4 thumb_func_start FUN_02020120 FUN_02020120: ; 0x02020120 add r0, #0x18 bx lr thumb_func_start FUN_02020124 FUN_02020124: ; 0x02020124 ldrh r0, [r0, #0x24] bx lr thumb_func_start FUN_02020128 FUN_02020128: ; 0x02020128 add r0, #0x34 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020130 FUN_02020130: ; 0x02020130 push {r4, lr} lsl r2, r1, #0x10 lsr r3, r2, #0x10 add r2, r0, #0x0 add r2, #0xf0 strh r3, [r2, #0x0] add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _0202014A cmp r2, #0x3 bne _02020168 _0202014A: add r4, r0, #0x0 add r4, #0x40 lsl r1, r1, #0x10 ldr r0, [r4, #0x4] lsr r1, r1, #0x10 blx FUN_020AFC04 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 blx FUN_020B1EE4 mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} _02020168: add r4, r0, #0x0 add r4, #0x40 ldr r0, [r4, #0x6c] add r1, r3, #0x0 blx FUN_020AFC04 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 blx FUN_020B242C mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} thumb_func_start FUN_02020184 FUN_02020184: ; 0x02020184 push {r3, lr} add r2, r0, #0x0 add r2, #0xf0 ldrh r2, [r2, #0x0] cmp r2, r1 beq _02020194 bl FUN_02020130 _02020194: pop {r3, pc} .balign 4 thumb_func_start FUN_02020198 FUN_02020198: ; 0x02020198 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020201A8 cmp r0, #0x3 bne _020201C2 _020201A8: add r5, r4, #0x0 add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 blx FUN_020B0448 mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02020208 pop {r3-r5, pc} _020201C2: add r5, r4, #0x0 add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 blx FUN_020B0448 mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02020208 pop {r3-r5, pc} thumb_func_start FUN_020201DC FUN_020201DC: ; 0x020201DC add r0, #0xf0 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020201E4 FUN_020201E4: ; 0x020201E4 push {r3, lr} add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _020201F4 cmp r2, #0x3 bne _020201FE _020201F4: add r0, #0x40 add r0, #0x8 blx FUN_020B1EC4 pop {r3, pc} _020201FE: add r0, #0x40 add r0, #0x8 blx FUN_020B224C pop {r3, pc} thumb_func_start FUN_02020208 FUN_02020208: ; 0x02020208 push {r3, lr} add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _02020218 cmp r2, #0x3 bne _02020222 _02020218: add r0, #0x40 add r0, #0x8 blx FUN_020B1EA4 pop {r3, pc} _02020222: add r0, #0x40 add r0, #0x8 blx FUN_020B2194 pop {r3, pc} thumb_func_start FUN_0202022C FUN_0202022C: ; 0x0202022C ldr r3, _02020234 ; =0x020B04FC add r0, #0x40 add r0, #0x8 bx r3 .balign 4 _02020234: .word 0x020B04FC thumb_func_start FUN_02020238 FUN_02020238: ; 0x02020238 add r0, #0xf2 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020240 FUN_02020240: ; 0x02020240 add r0, #0xf2 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020248 FUN_02020248: ; 0x02020248 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020256 bl ErrorHandling _02020256: add r0, r5, #0x0 add r0, #0x29 strb r4, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x2 orr r1, r0 add r0, r5, #0x0 add r0, #0x28 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x10 add r5, #0x28 bic r1, r0 strb r1, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202027C FUN_0202027C: ; 0x0202027C push {r4, lr} add r4, r0, #0x0 bl FUN_02020248 add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x29 ldrb r1, [r1, #0x0] add r4, #0x29 add r0, r1, r0 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_020202A0 FUN_020202A0: ; 0x020202A0 add r0, #0x29 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020202A8 FUN_020202A8: ; 0x020202A8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020202B6 bl ErrorHandling _020202B6: add r0, r5, #0x0 add r0, #0x2a strb r4, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x10 orr r1, r0 add r0, r5, #0x0 add r0, #0x28 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x2 add r5, #0x28 bic r1, r0 strb r1, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020202DC FUN_020202DC: ; 0x020202DC push {r4, lr} add r4, r0, #0x0 bl FUN_020202A8 add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x2a ldrb r1, [r1, #0x0] add r4, #0x2a add r0, r1, r0 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02020300 FUN_02020300: ; 0x02020300 push {r4, lr} add r4, r0, #0x0 bne _0202030A bl ErrorHandling _0202030A: add r4, #0x2a ldrb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02020310 FUN_02020310: ; 0x02020310 push {r3-r5, lr} add r5, r0, #0x0 add r2, r5, #0x0 ldr r4, [r5, #0x3c] add r2, #0xf4 strh r1, [r2, #0x0] bl FUN_02020820 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02020788 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202032C FUN_0202032C: ; 0x0202032C add r0, #0xf4 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020334 FUN_02020334: ; 0x02020334 push {r3-r4} add r3, r0, #0x0 add r4, r1, #0x0 add r3, #0xb4 mov r2, #0x4 _0202033E: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0202033E ldr r0, [r4, #0x0] str r0, [r3, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02020350 FUN_02020350: ; 0x02020350 add r0, #0xb4 bx lr thumb_func_start FUN_02020354 FUN_02020354: ; 0x02020354 add r0, #0xd8 bx lr thumb_func_start FUN_02020358 FUN_02020358: ; 0x02020358 str r1, [r0, #0x2c] cmp r1, #0x1 bne _0202036E add r1, r0, #0x0 add r1, #0x28 ldrb r2, [r1, #0x0] mov r1, #0x4 add r0, #0x28 orr r1, r2 strb r1, [r0, #0x0] bx lr _0202036E: add r1, r0, #0x0 add r1, #0x28 ldrb r2, [r1, #0x0] mov r1, #0x4 eor r1, r2 add r0, #0x28 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020380 FUN_02020380: ; 0x02020380 add r0, #0xf8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020388 FUN_02020388: ; 0x02020388 push {r4, lr} add r4, r0, #0x0 bne _02020392 bl ErrorHandling _02020392: ldr r0, [r4, #0x50] pop {r4, pc} .balign 4 thumb_func_start FUN_02020398 FUN_02020398: ; 0x02020398 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _020203A6 bl ErrorHandling _020203A6: str r5, [r4, #0x30] cmp r5, #0x0 bne _020203BC add r0, r4, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x8 add r4, #0x28 eor r0, r1 strb r0, [r4, #0x0] pop {r3-r5, pc} _020203BC: add r0, r4, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x8 orr r0, r1 add r4, #0x28 strb r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020203CC FUN_020203CC: ; 0x020203CC push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xb mov r2, #0x1 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa blx MIi_CpuClear16 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xa blx DC_FlushRange mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0xa blx GX_LoadOAM add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02020404 FUN_02020404: ; 0x02020404 push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xb mov r2, #0x1 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa blx MIi_CpuClear16 mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0xa blx GXS_LoadOAM add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02020434 FUN_02020434: ; 0x02020434 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] add r4, r2, #0x0 add r0, r5, #0x0 add r7, r3, #0x0 bl FUN_020204DC add r1, r4, #0x0 add r1, #0xec str r0, [r1, #0x0] add r3, r4, #0x0 ldr r6, [r5, #0x0] add r3, #0xb4 mov r2, #0x4 _02020452: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02020452 ldr r0, [r6, #0x0] add r2, r4, #0x0 str r0, [r3, #0x0] ldr r3, [r5, #0x8] add r2, #0xd8 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r4, #0x0 str r0, [r2, #0x0] ldr r0, [r5, #0xc] bl FUN_020204F4 ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02020486 add r1, r4, #0x0 bl FUN_020204F8 b _02020494 _02020486: mov r1, #0x47 ldr r0, [sp, #0x0] lsl r1, r1, #0x2 ldr r0, [r0, r1] add r1, r4, #0x0 bl FUN_020204F8 _02020494: add r0, r4, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x2 bne _020204B8 ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_020204FC ldr r0, [r5, #0x18] add r1, r4, #0x0 bl FUN_02020504 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02020588 b _020204D0 _020204B8: cmp r0, #0x3 bne _020204C8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0202052C b _020204D0 _020204C8: add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0202050C _020204D0: add r5, #0x20 ldrb r0, [r5, #0x0] add r4, #0xf2 strb r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_020204DC FUN_020204DC: ; 0x020204DC ldr r1, [r0, #0x14] cmp r1, #0x0 beq _020204E6 mov r0, #0x2 bx lr _020204E6: ldr r0, [r0, #0x1c] cmp r0, #0x1 bne _020204F0 mov r0, #0x3 bx lr _020204F0: mov r0, #0x1 bx lr thumb_func_start FUN_020204F4 FUN_020204F4: ; 0x020204F4 str r0, [r1, #0x40] bx lr thumb_func_start FUN_020204F8 FUN_020204F8: ; 0x020204F8 str r0, [r1, #0x44] bx lr thumb_func_start FUN_020204FC FUN_020204FC: ; 0x020204FC add r1, #0xa8 str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_02020504 FUN_02020504: ; 0x02020504 add r1, #0xac str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_0202050C FUN_0202050C: ; 0x0202050C push {r3-r5, lr} add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x4] mov r1, #0x0 blx FUN_020AFC04 add r4, #0x8 add r1, r0, #0x0 ldr r2, [r5, #0x40] add r0, r4, #0x0 blx FUN_020B1F80 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202052C FUN_0202052C: ; 0x0202052C push {r4-r7, lr} sub sp, #0x1c add r6, r1, #0x0 add r4, r6, #0x0 add r4, #0x40 add r5, r0, #0x0 blx FUN_020B43A4 str r0, [r4, #0x5c] ldr r0, [r4, #0x4] mov r1, #0x0 ldr r5, [r5, #0x4] blx FUN_020AFC04 str r0, [sp, #0x18] add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x1 blx FUN_020B1A14 add r7, r0, #0x0 add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x2 blx FUN_020B1A14 mov r1, #0x0 mvn r1, r1 str r1, [sp, #0x0] str r7, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x14] ldr r1, [sp, #0x18] str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [r5, #0x10] str r0, [sp, #0x14] add r0, r4, #0x0 ldr r2, [r6, #0x40] ldr r3, [r4, #0x5c] add r0, #0x8 blx FUN_020B1EFC add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_02020588 FUN_02020588: ; 0x02020588 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x6c] add r7, r1, #0x0 mov r1, #0x0 blx FUN_020AFC04 str r0, [sp, #0xc] ldr r0, [r4, #0x68] blx FUN_020B23D8 add r6, r0, #0x0 mov r1, #0x28 add r0, r7, #0x0 mul r1, r6 bl FUN_02016998 mov r1, #0x54 str r0, [r4, #0x70] add r0, r7, #0x0 mul r1, r6 bl FUN_02016998 str r0, [r4, #0x74] ldr r0, [r4, #0x4] add r3, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x40] str r0, [sp, #0x4] ldr r0, [r4, #0x68] str r0, [sp, #0x8] add r0, r4, #0x0 ldr r1, [r4, #0x70] ldr r2, [r4, #0x74] add r0, #0x8 blx FUN_020B20C8 add r4, #0x8 ldr r1, [sp, #0xc] add r0, r4, #0x0 blx FUN_020B242C add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020205E8 FUN_020205E8: ; 0x020205E8 push {r4, lr} ldr r2, [r0, #0x4] cmp r2, #0x0 beq _020205F6 mov r4, #0x2 lsl r4, r4, #0x8 b _02020602 _020205F6: ldr r2, [r0, #0x0] cmp r2, #0x4 bne _02020600 mov r4, #0x0 b _02020602 _02020600: mov r4, #0x20 _02020602: cmp r4, #0x0 beq _02020612 blx FUN_020B19C4 add r1, r4, #0x0 blx _u32_div_f pop {r4, pc} _02020612: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02020618 FUN_02020618: ; 0x02020618 push {r3-r6, lr} sub sp, #0xc add r4, r1, #0x0 add r3, r4, #0x0 add r5, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r4, #0x0 str r0, [r2, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 add r2, r4, #0x0 ldr r0, [r5, r0] add r1, #0xb4 add r2, #0xd8 blx thunk_FUN_020b5040 mov r0, #0x45 lsl r0, r0, #0x2 ldr r0, [r5, r0] blx FUN_020B326C blx FUN_020B2B58 add r1, r4, #0x0 mov r0, #0x45 add r1, #0x26 lsl r0, r0, #0x2 ldrb r1, [r1, #0x0] ldr r0, [r5, r0] blx FUN_020B502C add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02020680 add r0, r4, #0x0 add r0, #0x27 ldrb r2, [r0, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 mov r1, #0x1 ldr r0, [r5, r0] mov r3, #0x2 and r1, r2 and r2, r3 blx FUN_020B4F38 b _0202068E _02020680: mov r0, #0x45 lsl r0, r0, #0x2 mov r1, #0x0 ldr r0, [r5, r0] add r2, r1, #0x0 blx FUN_020B4F38 _0202068E: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] blx FUN_020B2A08 add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020206DC ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] blx FUN_020B2A08 ldr r0, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r2, [r4, #0x20] blx FUN_020B28B4 ldrh r0, [r4, #0x24] ldr r2, _02020770 ; =0x020FFA38 asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 add r1, r1, #0x1 lsl r1, r1, #0x1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] blx FUN_020B2794 ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] neg r0, r0 neg r1, r1 neg r2, r2 blx FUN_020B2A08 _020206DC: add r0, r4, #0x0 add r0, #0x28 ldrb r3, [r0, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 ldr r2, [r5, r0] add r1, r2, #0x0 add r1, #0x84 ldr r1, [r1, #0x0] add r2, #0x84 orr r1, r3 str r1, [r2, #0x0] add r1, r4, #0x0 add r1, #0x28 ldrb r1, [r1, #0x0] mvn r6, r1 ldr r1, [r5, r0] add r2, r1, #0x0 add r2, #0x84 ldr r3, [r2, #0x0] mvn r2, r6 and r2, r3 add r1, #0x84 str r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0x29 ldrb r2, [r1, #0x0] ldr r1, [r5, r0] add r1, #0x8a strh r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0x2a ldrb r2, [r1, #0x0] ldr r1, [r5, r0] add r1, #0x94 strh r2, [r1, #0x0] ldr r1, [r5, r0] ldr r2, [r4, #0x2c] add r1, #0x90 str r2, [r1, #0x0] ldr r1, [r5, r0] ldr r2, [r4, #0x30] add r1, #0x8c str r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0xf2 ldr r0, [r5, r0] ldrb r1, [r1, #0x0] add r0, #0x88 strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0202074E cmp r0, #0x3 bne _0202075A _0202074E: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 blx FUN_020B317C b _02020764 _0202075A: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 blx FUN_020B2D9C _02020764: blx FUN_020B2B08 blx FUN_020B31F0 add sp, #0xc pop {r3-r6, pc} .balign 4 _02020770: .word 0x020FFA38 thumb_func_start FUN_02020774 FUN_02020774: ; 0x02020774 bx lr .balign 4 thumb_func_start FUN_02020778 FUN_02020778: ; 0x02020778 ldr r3, _02020780 ; =FUN_020201E4 ldr r1, [r0, #0x38] bx r3 nop _02020780: .word FUN_020201E4 thumb_func_start FUN_02020784 FUN_02020784: ; 0x02020784 bx lr .balign 4 thumb_func_start FUN_02020788 FUN_02020788: ; 0x02020788 push {r4-r7} mov r2, #0x11 lsl r2, r2, #0x4 add r4, r0, #0x0 ldr r5, [r0, r2] add r4, #0x10 cmp r5, r4 bne _020207AC str r1, [r0, r2] sub r3, r2, #0x4 str r1, [r0, r3] add r0, r1, #0x0 add r0, #0xfc str r4, [r0, #0x0] sub r2, #0x10 str r4, [r1, r2] pop {r4-r7} bx lr _020207AC: add r3, r1, #0x0 add r3, #0xf4 ldrh r6, [r3, #0x0] sub r3, r2, #0x4 ldr r3, [r0, r3] add r7, r3, #0x0 add r7, #0xf4 ldrh r7, [r7, #0x0] cmp r7, r6 bhi _020207DE add r5, r1, #0x0 add r5, #0xfc str r3, [r5, #0x0] sub r3, r2, #0x4 ldr r5, [r0, r3] add r3, r2, #0x0 sub r3, #0x10 str r1, [r5, r3] add r3, r2, #0x0 sub r3, #0x10 str r4, [r1, r3] sub r2, r2, #0x4 str r1, [r0, r2] pop {r4-r7} bx lr _020207DE: cmp r5, r4 beq _0202081A add r0, r2, #0x0 sub r0, #0x10 _020207E6: add r2, r5, #0x0 add r2, #0xf4 ldrh r2, [r2, #0x0] cmp r2, r6 bls _02020814 add r0, r5, #0x0 add r0, #0xfc mov r2, #0x1 ldr r0, [r0, #0x0] lsl r2, r2, #0x8 str r1, [r0, r2] add r0, r5, #0x0 add r0, #0xfc ldr r3, [r0, #0x0] add r0, r1, #0x0 add r0, #0xfc str r3, [r0, #0x0] add r0, r5, #0x0 add r0, #0xfc str r1, [r0, #0x0] str r5, [r1, r2] pop {r4-r7} bx lr _02020814: ldr r5, [r5, r0] cmp r5, r4 bne _020207E6 _0202081A: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02020820 FUN_02020820: ; 0x02020820 mov r2, #0x1 add r1, r0, #0x0 lsl r2, r2, #0x8 add r1, #0xfc ldr r3, [r0, r2] ldr r1, [r1, #0x0] str r3, [r1, r2] add r1, r0, #0x0 add r1, #0xfc ldr r0, [r0, r2] ldr r1, [r1, #0x0] add r0, #0xfc str r1, [r0, #0x0] bx lr thumb_func_start FUN_0202083C FUN_0202083C: ; 0x0202083C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _0202086C add r4, r7, #0x0 add r6, r7, #0x0 _0202084C: ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201FE6C ldr r0, [r5, #0x0] add r7, r7, #0x1 add r1, r0, r4 ldr r0, [r5, #0x8] str r1, [r0, r6] mov r0, #0x41 lsl r0, r0, #0x2 add r4, r4, r0 ldr r0, [r5, #0x4] add r6, r6, #0x4 cmp r7, r0 blt _0202084C _0202086C: mov r0, #0x0 str r0, [r5, #0xc] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020874 FUN_02020874: ; 0x02020874 ldr r3, [r0, #0xc] ldr r1, [r0, #0x4] cmp r3, r1 blt _02020880 mov r0, #0x0 bx lr _02020880: ldr r2, [r0, #0x8] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r3, #0x1 str r1, [r0, #0xc] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02020890 FUN_02020890: ; 0x02020890 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 cmp r0, #0x0 bgt _020208A0 mov r0, #0x0 pop {r3-r5, pc} _020208A0: add r0, r4, #0x0 bl FUN_0201FE6C ldr r0, [r5, #0xc] sub r0, r0, #0x1 str r0, [r5, #0xc] ldr r1, [r5, #0x8] lsl r0, r0, #0x2 str r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020208B8 FUN_020208B8: ; 0x020208B8 push {r4-r7} ldrb r3, [r0, #0x0] mov r4, #0x0 cmp r3, #0xff beq _020208FA _020208C2: ldrb r7, [r0, #0x2] ldrb r3, [r0, #0x3] ldrb r5, [r0, #0x0] sub r6, r1, r7 sub r3, r3, r7 cmp r6, r3 bhs _020208D4 mov r6, #0x1 b _020208D6 _020208D4: mov r6, #0x0 _020208D6: ldrb r7, [r0, #0x1] sub r3, r2, r5 sub r5, r7, r5 cmp r3, r5 bhs _020208E4 mov r3, #0x1 b _020208E6 _020208E4: mov r3, #0x0 _020208E6: tst r3, r6 beq _020208F0 add r0, r4, #0x0 pop {r4-r7} bx lr _020208F0: add r0, r0, #0x4 ldrb r3, [r0, #0x0] add r4, r4, #0x1 cmp r3, #0xff bne _020208C2 _020208FA: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02020904 FUN_02020904: ; 0x02020904 push {r3-r4} ldrb r3, [r0, #0x1] sub r4, r3, r1 ldrb r1, [r0, #0x2] sub r3, r1, r2 ldrb r2, [r0, #0x3] add r1, r4, #0x0 add r0, r3, #0x0 mul r1, r4 mul r0, r3 add r1, r1, r0 add r0, r2, #0x0 mul r0, r2 cmp r1, r0 bhs _02020928 mov r0, #0x1 pop {r3-r4} bx lr _02020928: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02020930 FUN_02020930: ; 0x02020930 push {r4-r5} ldrb r5, [r0, #0x2] ldrb r3, [r0, #0x0] sub r4, r1, r5 ldrb r1, [r0, #0x3] sub r1, r1, r5 cmp r4, r1 bhs _02020944 mov r4, #0x1 b _02020946 _02020944: mov r4, #0x0 _02020946: ldrb r0, [r0, #0x1] sub r1, r2, r3 sub r0, r0, r3 cmp r1, r0 bhs _02020954 mov r0, #0x1 b _02020956 _02020954: mov r0, #0x0 _02020956: tst r0, r4 beq _02020960 mov r0, #0x1 pop {r4-r5} bx lr _02020960: mov r0, #0x0 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02020968 FUN_02020968: ; 0x02020968 push {r3, lr} ldr r2, _02020984 ; =0x021C48F8 ldrh r1, [r2, #0x22] cmp r1, #0x0 beq _0202097C ldrh r1, [r2, #0x1c] ldrh r2, [r2, #0x1e] bl FUN_020208B8 pop {r3, pc} _0202097C: mov r0, #0x0 mvn r0, r0 pop {r3, pc} nop _02020984: .word 0x021C48F8 thumb_func_start FUN_02020988 FUN_02020988: ; 0x02020988 push {r3, lr} ldr r2, _020209A4 ; =0x021C48F8 ldrh r1, [r2, #0x20] cmp r1, #0x0 beq _0202099C ldrh r1, [r2, #0x1c] ldrh r2, [r2, #0x1e] bl FUN_020208B8 pop {r3, pc} _0202099C: mov r0, #0x0 mvn r0, r0 pop {r3, pc} nop _020209A4: .word 0x021C48F8 thumb_func_start FUN_020209A8 FUN_020209A8: ; 0x020209A8 push {r3-r7, lr} ldr r7, _020209F0 ; =0x021C48F8 add r5, r0, #0x0 ldrh r0, [r7, #0x22] cmp r0, #0x0 beq _020209EA mov r6, #0x0 add r4, r5, #0x0 _020209B8: ldrb r0, [r5, #0x0] cmp r0, #0xfe bne _020209D0 ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020904 cmp r0, #0x0 beq _020209E2 add r0, r6, #0x0 pop {r3-r7, pc} _020209D0: ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020930 cmp r0, #0x0 beq _020209E2 add r0, r6, #0x0 pop {r3-r7, pc} _020209E2: add r5, r5, #0x4 add r4, r4, #0x4 add r6, r6, #0x1 b _020209B8 _020209EA: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} .balign 4 _020209F0: .word 0x021C48F8 thumb_func_start FUN_020209F4 FUN_020209F4: ; 0x020209F4 push {r3-r7, lr} ldr r7, _02020A3C ; =0x021C48F8 add r5, r0, #0x0 ldrh r0, [r7, #0x20] cmp r0, #0x0 beq _02020A36 mov r6, #0x0 add r4, r5, #0x0 _02020A04: ldrb r0, [r5, #0x0] cmp r0, #0xfe bne _02020A1C ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020904 cmp r0, #0x0 beq _02020A2E add r0, r6, #0x0 pop {r3-r7, pc} _02020A1C: ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020930 cmp r0, #0x0 beq _02020A2E add r0, r6, #0x0 pop {r3-r7, pc} _02020A2E: add r5, r5, #0x4 add r4, r4, #0x4 add r6, r6, #0x1 b _02020A04 _02020A36: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} .balign 4 _02020A3C: .word 0x021C48F8 thumb_func_start FUN_02020A40 FUN_02020A40: ; 0x02020A40 push {r3, lr} ldr r2, _02020A68 ; =0x021C48F8 ldrh r1, [r2, #0x22] cmp r1, #0x0 beq _02020A62 ldrb r1, [r0, #0x0] cmp r1, #0xfe ldrh r1, [r2, #0x1c] bne _02020A5A ldrh r2, [r2, #0x1e] bl FUN_02020904 pop {r3, pc} _02020A5A: ldrh r2, [r2, #0x1e] bl FUN_02020930 pop {r3, pc} _02020A62: mov r0, #0x0 pop {r3, pc} nop _02020A68: .word 0x021C48F8 thumb_func_start FUN_02020A6C FUN_02020A6C: ; 0x02020A6C push {r3, lr} ldr r2, _02020A94 ; =0x021C48F8 ldrh r1, [r2, #0x20] cmp r1, #0x0 beq _02020A8E ldrb r1, [r0, #0x0] cmp r1, #0xfe ldrh r1, [r2, #0x1c] bne _02020A86 ldrh r2, [r2, #0x1e] bl FUN_02020904 pop {r3, pc} _02020A86: ldrh r2, [r2, #0x1e] bl FUN_02020930 pop {r3, pc} _02020A8E: mov r0, #0x0 pop {r3, pc} nop _02020A94: .word 0x021C48F8 thumb_func_start FUN_02020A98 FUN_02020A98: ; 0x02020A98 ldr r0, _02020AA0 ; =0x021C48F8 ldrh r0, [r0, #0x22] bx lr nop _02020AA0: .word 0x021C48F8 thumb_func_start FUN_02020AA4 FUN_02020AA4: ; 0x02020AA4 ldr r0, _02020AAC ; =0x021C48F8 ldrh r0, [r0, #0x20] bx lr nop _02020AAC: .word 0x021C48F8 thumb_func_start FUN_02020AB0 FUN_02020AB0: ; 0x02020AB0 ldr r2, _02020AC8 ; =0x021C48F8 ldrh r3, [r2, #0x22] cmp r3, #0x0 beq _02020AC4 ldrh r3, [r2, #0x1c] str r3, [r0, #0x0] ldrh r0, [r2, #0x1e] str r0, [r1, #0x0] mov r0, #0x1 bx lr _02020AC4: mov r0, #0x0 bx lr .balign 4 _02020AC8: .word 0x021C48F8 thumb_func_start FUN_02020ACC FUN_02020ACC: ; 0x02020ACC ldr r2, _02020AE4 ; =0x021C48F8 ldrh r3, [r2, #0x20] cmp r3, #0x0 beq _02020AE0 ldrh r3, [r2, #0x1c] str r3, [r0, #0x0] ldrh r0, [r2, #0x1e] str r0, [r1, #0x0] mov r0, #0x1 bx lr _02020AE0: mov r0, #0x0 bx lr .balign 4 _02020AE4: .word 0x021C48F8 thumb_func_start FUN_02020AE8 FUN_02020AE8: ; 0x02020AE8 push {r3, lr} ldrb r3, [r0, #0x0] cmp r3, #0xfe bne _02020AF6 bl FUN_02020904 pop {r3, pc} _02020AF6: bl FUN_02020930 pop {r3, pc} thumb_func_start FUN_02020AFC FUN_02020AFC: ; 0x02020AFC push {r3, lr} ldr r0, _02020B24 ; =0x021C59B0 mov r2, #0x0 str r2, [r0, #0x4] str r2, [r0, #0x8] ldr r1, _02020B28 ; =0x0400010E str r2, [r0, #0x0] strh r2, [r1, #0x0] sub r0, r1, #0x2 strh r2, [r0, #0x0] mov r0, #0xc1 strh r0, [r1, #0x0] ldr r1, _02020B2C ; =FUN_02020B30 mov r0, #0x40 blx OS_SetIrqFunction mov r0, #0x40 blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02020B24: .word 0x021C59B0 _02020B28: .word 0x0400010E _02020B2C: .word FUN_02020B30 thumb_func_start FUN_02020B30 FUN_02020B30: ; 0x02020B30 ldr r0, _02020B68 ; =0x021C59B0 mov r3, #0x0 ldr r1, [r0, #0x4] ldr r2, [r0, #0x8] add r1, r1, #0x1 adc r2, r3 str r1, [r0, #0x4] str r2, [r0, #0x8] ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02020B54 ldr r2, _02020B6C ; =0x0400010E strh r3, [r2, #0x0] sub r1, r2, #0x2 strh r3, [r1, #0x0] mov r1, #0xc1 strh r1, [r2, #0x0] str r3, [r0, #0x0] _02020B54: ldr r3, _02020B70 ; =0x027E0000 ldr r1, _02020B74 ; =0x00003FF8 mov r0, #0x40 ldr r2, [r3, r1] orr r2, r0 str r2, [r3, r1] ldr r3, _02020B78 ; =OS_SetIrqFunction ldr r1, _02020B7C ; =FUN_02020B30 bx r3 nop _02020B68: .word 0x021C59B0 _02020B6C: .word 0x0400010E _02020B70: .word 0x027E0000 _02020B74: .word 0x00003FF8 _02020B78: .word OS_SetIrqFunction _02020B7C: .word FUN_02020B30 thumb_func_start FUN_02020B80 FUN_02020B80: ; 0x02020B80 push {r4-r5, lr} sub sp, #0xc blx OS_DisableInterrupts ldr r1, _02020BE4 ; =0x0400010C add r3, sp, #0x0 ldrh r1, [r1, #0x0] ldr r2, _02020BE8 ; =0x0000FFFF strh r1, [r3, #0x0] ldr r1, _02020BEC ; =0x021C59B0 ldr r5, [r1, #0x4] ldr r4, [r1, #0x8] mov r1, #0x0 mvn r1, r1 and r1, r5 str r1, [sp, #0x4] and r2, r4 ldr r1, _02020BF0 ; =0x04000214 str r2, [sp, #0x8] ldr r2, [r1, #0x0] mov r1, #0x40 tst r2, r1 beq _02020BC4 ldrh r2, [r3, #0x0] lsl r1, r1, #0x9 tst r1, r2 bne _02020BC4 ldr r2, [sp, #0x4] mov r1, #0x0 ldr r3, [sp, #0x8] add r2, r2, #0x1 adc r3, r1 str r2, [sp, #0x4] str r3, [sp, #0x8] _02020BC4: blx OS_RestoreInterrupts ldr r2, [sp, #0x4] ldr r1, [sp, #0x8] lsr r0, r2, #0x10 lsl r1, r1, #0x10 orr r1, r0 add r0, sp, #0x0 lsl r3, r2, #0x10 ldrh r2, [r0, #0x0] asr r0, r2, #0x1f orr r1, r0 add r0, r3, #0x0 orr r0, r2 add sp, #0xc pop {r4-r5, pc} .balign 4 _02020BE4: .word 0x0400010C _02020BE8: .word 0x0000FFFF _02020BEC: .word 0x021C59B0 _02020BF0: .word 0x04000214 thumb_func_start FUN_02020BF4 FUN_02020BF4: ; 0x02020BF4 ldr r3, _02020BF8 ; =FUN_02020B80 bx r3 .balign 4 _02020BF8: .word FUN_02020B80 thumb_func_start FUN_02020BFC FUN_02020BFC: ; 0x02020BFC push {r3, lr} lsr r2, r0, #0x1a lsl r1, r1, #0x6 orr r1, r2 ldr r2, _02020C10 ; =0x000082EA lsl r0, r0, #0x6 mov r3, #0x0 blx _ll_udiv pop {r3, pc} .balign 4 _02020C10: .word 0x000082EA thumb_func_start FUN_02020C14 FUN_02020C14: ; 0x02020C14 push {r3, lr} lsr r2, r0, #0x1a lsl r1, r1, #0x6 orr r1, r2 ldr r2, _02020C28 ; =0x01FF6210 lsl r0, r0, #0x6 mov r3, #0x0 blx _ll_udiv pop {r3, pc} .balign 4 _02020C28: .word 0x01FF6210 thumb_func_start ErrorHandling ErrorHandling: ; 0x02020C2C push {r3, lr} bl FUN_02031810 cmp r0, #0x0 beq _02020C42 blx OS_GetProcMode cmp r0, #0x12 beq _02020C42 bl FUN_0208A9B8 _02020C42: pop {r3, pc} thumb_func_start FUN_02020C44 FUN_02020C44: ; 0x02020C44 push {r3-r7, lr} add r4, r1, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0xc bl FUN_02016998 add r6, r0, #0x0 bne _02020C5A bl ErrorHandling _02020C5A: add r0, r4, #0x0 lsl r1, r7, #0x3 bl FUN_02016998 str r0, [r6, #0x0] cmp r0, #0x0 bne _02020C6C bl ErrorHandling _02020C6C: mov r4, #0x0 cmp r7, #0x0 ble _02020C84 add r5, r4, #0x0 _02020C74: ldr r0, [r6, #0x0] add r0, r0, r5 bl FUN_02020E78 add r4, r4, #0x1 add r5, #0x8 cmp r4, r7 blt _02020C74 _02020C84: str r7, [r6, #0x4] mov r0, #0x0 str r0, [r6, #0x8] add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020C90 FUN_02020C90: ; 0x02020C90 push {r4, lr} add r4, r0, #0x0 bne _02020C9A bl ErrorHandling _02020C9A: add r0, r4, #0x0 bl FUN_02020D9C ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02020CB0 FUN_02020CB0: ; 0x02020CB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020CBE bl ErrorHandling _02020CBE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02020DD8 cmp r0, #0x0 bne _02020CCE mov r0, #0x1 pop {r3-r5, pc} _02020CCE: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020CD4 FUN_02020CD4: ; 0x02020CD4 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _02020CE4 bl ErrorHandling _02020CE4: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020CF2 bl ErrorHandling _02020CF2: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D02 bl ErrorHandling _02020D02: str r7, [r4, #0x4] str r6, [r4, #0x0] ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02020D10 FUN_02020D10: ; 0x02020D10 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] cmp r5, #0x0 bne _02020D22 bl ErrorHandling _02020D22: cmp r6, #0x0 bne _02020D2A bl ErrorHandling _02020D2A: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020D38 bl ErrorHandling _02020D38: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D48 bl ErrorHandling _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_020161A4 str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A bl ErrorHandling _02020D5A: str r7, [r4, #0x0] ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020D68 FUN_02020D68: ; 0x02020D68 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020D76 bl ErrorHandling _02020D76: cmp r4, #0x0 bne _02020D7E bl ErrorHandling _02020D7E: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02020D8C bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x4] _02020D8C: mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x0] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020D9C FUN_02020D9C: ; 0x02020D9C push {r3-r7, lr} add r5, r0, #0x0 bne _02020DA6 bl ErrorHandling _02020DA6: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02020DB0 bl ErrorHandling _02020DB0: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02020DD6 add r4, r6, #0x0 sub r7, r6, #0x1 _02020DBC: ldr r1, [r5, #0x0] ldr r0, [r1, r4] cmp r0, r7 beq _02020DCC add r0, r5, #0x0 add r1, r1, r4 bl FUN_02020D68 _02020DCC: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blt _02020DBC _02020DD6: pop {r3-r7, pc} thumb_func_start FUN_02020DD8 FUN_02020DD8: ; 0x02020DD8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020DE6 bl ErrorHandling _02020DE6: ldr r6, [r5, #0x4] mov r1, #0x0 cmp r6, #0x0 ble _02020E06 ldr r3, [r5, #0x0] add r2, r3, #0x0 _02020DF2: ldr r0, [r2, #0x0] cmp r4, r0 bne _02020DFE lsl r0, r1, #0x3 add r0, r3, r0 pop {r4-r6, pc} _02020DFE: add r1, r1, #0x1 add r2, #0x8 cmp r1, r6 blt _02020DF2 _02020E06: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02020E0C FUN_02020E0C: ; 0x02020E0C push {r4, lr} add r4, r0, #0x0 bne _02020E16 bl ErrorHandling _02020E16: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E1C FUN_02020E1C: ; 0x02020E1C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020E2A bl ErrorHandling _02020E2A: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02020E34 bl FUN_02016A18 _02020E34: str r4, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_02020E38 FUN_02020E38: ; 0x02020E38 push {r4, lr} add r4, r0, #0x0 bne _02020E42 bl ErrorHandling _02020E42: ldr r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E48 FUN_02020E48: ; 0x02020E48 push {r3-r5, lr} add r4, r0, #0x0 bne _02020E52 bl ErrorHandling _02020E52: ldr r5, [r4, #0x4] mov r2, #0x0 cmp r5, #0x0 ble _02020E74 ldr r4, [r4, #0x0] sub r0, r2, #0x1 add r3, r4, #0x0 _02020E60: ldr r1, [r3, #0x0] cmp r1, r0 bne _02020E6C lsl r0, r2, #0x3 add r0, r4, r0 pop {r3-r5, pc} _02020E6C: add r2, r2, #0x1 add r3, #0x8 cmp r2, r5 blt _02020E60 _02020E74: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02020E78 FUN_02020E78: ; 0x02020E78 push {r4, lr} add r4, r0, #0x0 bne _02020E82 bl ErrorHandling _02020E82: mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E90 FUN_02020E90: ; 0x02020E90 push {r3-r7, lr} add r4, r1, #0x0 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02016998 add r7, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02020C44 mov r1, #0x18 str r0, [r7, #0x0] add r0, r4, #0x0 mul r1, r6 bl FUN_02016998 mov r4, #0x0 str r0, [r7, #0x4] cmp r6, #0x0 ble _02020ECE add r5, r4, #0x0 _02020EBE: ldr r0, [r7, #0x4] add r0, r0, r5 bl FUN_0202120C add r4, r4, #0x1 add r5, #0x18 cmp r4, r6 blt _02020EBE _02020ECE: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020ED4 FUN_02020ED4: ; 0x02020ED4 push {r4, lr} add r4, r0, #0x0 bne _02020EDE bl ErrorHandling _02020EDE: add r0, r4, #0x0 bl FUN_02021010 ldr r0, [r4, #0x0] bl FUN_02020C90 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02020EF8 FUN_02020EF8: ; 0x02020EF8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F06 bl ErrorHandling _02020F06: ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020CB0 pop {r3-r5, pc} thumb_func_start FUN_02020F10 FUN_02020F10: ; 0x02020F10 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r3, #0x0 str r2, [sp, #0x0] cmp r5, #0x0 bne _02020F22 bl ErrorHandling _02020F22: add r0, r5, #0x0 bl FUN_020211DC add r4, r0, #0x0 strh r7, [r4, #0x16] ldrh r0, [r4, #0x16] cmp r0, #0x1 bne _02020F40 ldr r1, [sp, #0x18] add r0, r6, #0x0 bl FUN_02021310 add r1, r0, #0x0 str r6, [r4, #0x10] b _02020F46 _02020F40: mov r0, #0x0 add r1, r6, #0x0 str r0, [r4, #0x10] _02020F46: ldr r0, [r5, #0x0] ldr r2, [sp, #0x0] bl FUN_02020CD4 str r0, [r4, #0x0] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02020F54 FUN_02020F54: ; 0x02020F54 push {r3-r4, lr} sub sp, #0x4 ldr r4, [sp, #0x10] str r4, [sp, #0x0] bl FUN_02020F10 add r4, r0, #0x0 bl FUN_02021174 add r0, r4, #0x0 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02020F6C FUN_02020F6C: ; 0x02020F6C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F7A bl ErrorHandling _02020F7A: cmp r4, #0x0 bne _02020F82 bl ErrorHandling _02020F82: ldrh r0, [r4, #0x16] cmp r0, #0x1 bne _02020F98 ldrh r0, [r4, #0x14] cmp r0, #0x0 bne _02020F98 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 strh r0, [r4, #0x16] _02020F98: ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02020FA4 ldr r0, [r5, #0x0] bl FUN_02020D68 _02020FA4: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02020FB8 ldr r1, _02020FE8 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FB8 bl ErrorHandling _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02020FCC ldr r1, _02020FE8 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FCC bl ErrorHandling _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02020FE0 ldr r1, _02020FEC ; =0x021064C4 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FE0 bl ErrorHandling _02020FE0: add r0, r4, #0x0 bl FUN_0202120C pop {r3-r5, pc} .balign 4 _02020FE8: .word 0x021064BC _02020FEC: .word 0x021064C4 thumb_func_start FUN_02020FF0 FUN_02020FF0: ; 0x02020FF0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020FFE bl ErrorHandling _02020FFE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02020F6C pop {r3-r5, pc} thumb_func_start FUN_02021010 FUN_02021010: ; 0x02021010 push {r4-r6, lr} add r5, r0, #0x0 bne _0202101A bl ErrorHandling _0202101A: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02021024 bl ErrorHandling _02021024: ldr r0, [r5, #0x0] mov r6, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 ble _0202104C add r4, r6, #0x0 _02021030: ldr r1, [r5, #0x4] ldr r0, [r1, r4] cmp r0, #0x0 beq _02021040 add r0, r5, #0x0 add r1, r1, r4 bl FUN_02020F6C _02021040: ldr r0, [r5, #0x0] add r6, r6, #0x1 ldr r0, [r0, #0x4] add r4, #0x18 cmp r6, r0 blt _02021030 _0202104C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021050 FUN_02021050: ; 0x02021050 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 cmp r6, #0x0 bne _0202105E bl ErrorHandling _0202105E: ldr r0, [r6, #0x0] mov r4, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 ble _02021092 add r5, r4, #0x0 _0202106A: ldr r1, [r6, #0x4] ldr r0, [r1, r5] cmp r0, #0x0 beq _02021086 add r0, r1, r5 bl FUN_02021098 cmp r0, r7 bne _02021086 mov r0, #0x18 ldr r1, [r6, #0x4] mul r0, r4 add r0, r1, r0 pop {r3-r7, pc} _02021086: ldr r0, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r0, #0x4] add r5, #0x18 cmp r4, r0 blt _0202106A _02021092: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02021098 FUN_02021098: ; 0x02021098 push {r4, lr} add r4, r0, #0x0 bne _020210A2 bl ErrorHandling _020210A2: ldr r0, [r4, #0x0] bl FUN_02020E38 pop {r4, pc} .balign 4 thumb_func_start FUN_020210AC FUN_020210AC: ; 0x020210AC push {r4, lr} add r4, r0, #0x0 bne _020210B6 bl ErrorHandling _020210B6: add r0, r4, #0x0 bl FUN_02021220 pop {r4, pc} .balign 4 thumb_func_start FUN_020210C0 FUN_020210C0: ; 0x020210C0 push {r4, lr} add r4, r0, #0x0 bne _020210CA bl ErrorHandling _020210CA: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _020210D4 bl ErrorHandling _020210D4: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _020210E0 bl ErrorHandling pop {r4, pc} _020210E0: add r0, r4, #0x0 bl FUN_02021230 add r1, r4, #0x0 bl FUN_020212B8 pop {r4, pc} .balign 4 thumb_func_start FUN_020210F0 FUN_020210F0: ; 0x020210F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020210FE bl ErrorHandling _020210FE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 bl FUN_020210C0 pop {r3-r5, pc} thumb_func_start FUN_0202110C FUN_0202110C: ; 0x0202110C push {r4, lr} add r4, r0, #0x0 bne _02021116 bl ErrorHandling _02021116: ldrh r0, [r4, #0x16] cmp r0, #0x0 bne _02021122 bl ErrorHandling pop {r4, pc} _02021122: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _0202112E bl ErrorHandling pop {r4, pc} _0202112E: add r0, r4, #0x0 bl FUN_02021230 bl FUN_020212F8 add r0, r4, #0x0 bl FUN_02021220 ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_020212E4 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x10] mov r0, #0x1 strh r0, [r4, #0x14] pop {r4, pc} thumb_func_start FUN_02021158 FUN_02021158: ; 0x02021158 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021166 bl ErrorHandling _02021166: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 bl FUN_0202110C pop {r3-r5, pc} thumb_func_start FUN_02021174 FUN_02021174: ; 0x02021174 push {r4, lr} add r4, r0, #0x0 bne _0202117E bl ErrorHandling _0202117E: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _02021188 bl ErrorHandling _02021188: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02021194 bl ErrorHandling pop {r4, pc} _02021194: add r0, r4, #0x0 bl FUN_02021230 add r2, r4, #0x0 add r1, r4, #0x4 add r4, #0xc add r2, #0x8 add r3, r4, #0x0 bl FUN_02021248 pop {r4, pc} .balign 4 thumb_func_start FUN_020211AC FUN_020211AC: ; 0x020211AC push {r4, lr} add r4, r0, #0x0 bne _020211B6 bl ErrorHandling _020211B6: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020211BC FUN_020211BC: ; 0x020211BC push {r4, lr} add r4, r0, #0x0 bne _020211C6 bl ErrorHandling _020211C6: ldr r0, [r4, #0x8] pop {r4, pc} .balign 4 thumb_func_start FUN_020211CC FUN_020211CC: ; 0x020211CC push {r4, lr} add r4, r0, #0x0 bne _020211D6 bl ErrorHandling _020211D6: ldr r0, [r4, #0xc] pop {r4, pc} .balign 4 thumb_func_start FUN_020211DC FUN_020211DC: ; 0x020211DC push {r3-r4} ldr r1, [r0, #0x0] mov r2, #0x0 ldr r4, [r1, #0x4] cmp r4, #0x0 ble _02021204 ldr r3, [r0, #0x4] _020211EA: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _020211FC ldr r1, [r0, #0x4] mov r0, #0x18 mul r0, r2 add r0, r1, r0 pop {r3-r4} bx lr _020211FC: add r2, r2, #0x1 add r3, #0x18 cmp r2, r4 blt _020211EA _02021204: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202120C FUN_0202120C: ; 0x0202120C mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] str r1, [r0, #0xc] strh r1, [r0, #0x14] str r1, [r0, #0x10] strh r1, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02021220 FUN_02021220: ; 0x02021220 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_02020E0C blx FUN_020BC0FC pop {r3, pc} .balign 4 thumb_func_start FUN_02021230 FUN_02021230: ; 0x02021230 push {r3, lr} ldrh r1, [r0, #0x16] cmp r1, #0x0 bne _02021240 ldr r0, [r0, #0x0] bl FUN_02020E0C b _02021242 _02021240: ldr r0, [r0, #0x10] _02021242: blx FUN_020BC0FC pop {r3, pc} thumb_func_start FUN_02021248 FUN_02021248: ; 0x02021248 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] str r3, [sp, #0x8] blx FUN_020B7E1C add r7, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 add r4, r0, #0x0 cmp r7, #0x0 beq _0202127E ldr r3, _020212B0 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r7, #0x0 add r2, r1, #0x0 blx r3 ldr r1, [sp, #0x0] str r0, [r1, #0x0] _0202127E: cmp r6, #0x0 beq _02021292 ldr r3, _020212B0 ; =0x021064B8 add r0, r6, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 mov r2, #0x0 blx r3 ldr r1, [sp, #0x4] str r0, [r1, #0x0] _02021292: cmp r4, #0x0 beq _020212AC ldr r3, _020212B4 ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 add r0, r4, #0x0 mov r2, #0x0 blx r3 ldr r1, [sp, #0x8] str r0, [r1, #0x0] _020212AC: add sp, #0xc pop {r4-r7, pc} .balign 4 _020212B0: .word 0x021064B8 _020212B4: .word 0x021064C0 thumb_func_start FUN_020212B8 FUN_020212B8: ; 0x020212B8 push {r4, lr} add r3, r1, #0x0 ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] add r4, r0, #0x0 bl FUN_020212E4 ldr r1, [r4, #0x4] add r0, r4, #0x0 blx DC_FlushRange add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7D28 add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7C78 pop {r4, pc} .balign 4 thumb_func_start FUN_020212E4 FUN_020212E4: ; 0x020212E4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 blx FUN_020B7DFC add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020B7CDC pop {r3-r5, pc} thumb_func_start FUN_020212F8 FUN_020212F8: ; 0x020212F8 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 blx FUN_020B7CF0 add r0, r4, #0x0 blx FUN_020B7C58 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02021310 FUN_02021310: ; 0x02021310 push {r4-r6, lr} add r6, r0, #0x0 add r4, r1, #0x0 bl FUN_02021334 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02016998 add r1, r6, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx memcpy add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021334 FUN_02021334: ; 0x02021334 push {r3-r5, lr} add r5, r0, #0x0 blx FUN_020BC0FC add r4, r0, #0x0 bne _02021344 bl ErrorHandling _02021344: ldr r0, [r4, #0x14] add r0, r4, r0 sub r0, r0, r5 pop {r3-r5, pc} thumb_func_start FUN_0202134C FUN_0202134C: ; 0x0202134C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx FUN_020B33A0 add r5, #0x80 str r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202135C FUN_0202135C: ; 0x0202135C push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 blx FUN_020B3334 add r2, r5, #0x0 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r6, [r5, #0x28] ldr r0, [sp, #0x18] str r7, [r5, #0x2c] str r0, [r5, #0x34] ldr r0, [sp, #0x1c] str r0, [r5, #0x14] ldr r0, [sp, #0x20] cmp r0, #0x0 beq _0202138C add r1, r5, #0x0 blx FUN_020B3390 _0202138C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02021390 FUN_02021390: ; 0x02021390 add r3, r0, #0x0 add r2, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} bx lr .balign 4 thumb_func_start FUN_020213A0 FUN_020213A0: ; 0x020213A0 push {r3-r7, lr} sub sp, #0x60 add r5, r1, #0x0 add r6, r2, #0x0 ldr r4, [r5, #0x10] ldr r3, [r6, #0x0] add r2, r0, #0x0 sub r3, r4, r3 ldrh r1, [r0, #0x2] mov r0, #0x3f str r3, [sp, #0x18] and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a ldr r4, [r5, #0x14] ldr r3, [r6, #0x4] add r2, #0x8 sub r3, r4, r3 str r3, [sp, #0x14] asr r3, r1, #0xb mov r1, #0x1 and r1, r3 lsr r0, r0, #0x18 cmp r1, #0x1 bne _020213F4 mov r0, #0x6 ldrsh r0, [r2, r0] lsl r4, r0, #0xc mov r0, #0x2 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0x10] mov r0, #0x4 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0xc] mov r0, #0x0 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0x8] b _02021400 _020213F4: neg r1, r0 lsl r0, r0, #0xc lsl r4, r1, #0xc str r0, [sp, #0x10] str r4, [sp, #0xc] str r0, [sp, #0x8] _02021400: ldr r0, [r5, #0xc] str r0, [sp, #0x1c] asr r0, r0, #0x1f str r0, [sp, #0x20] asr r0, r4, #0x1f str r0, [sp, #0x24] ldr r0, [r5, #0x4] ldr r1, [sp, #0x24] str r0, [sp, #0x28] asr r0, r0, #0x1f str r0, [sp, #0x2c] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, r4, #0x0 blx _ll_mul add r7, r1, #0x0 str r0, [sp, #0x30] ldr r1, [sp, #0x24] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r4, #0x0 blx _ll_mul add r2, r0, #0x0 add r3, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x30] mov r4, #0x0 lsl r0, r0, #0xa add r0, r1, r0 adc r7, r4 lsl r1, r7, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0x2 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r4 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 add r1, r0, r2 ldr r0, [sp, #0x14] ldr r2, [sp, #0x28] add r0, r0, r1 str r0, [sp, #0x5c] ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] asr r0, r0, #0x1f str r0, [sp, #0x34] ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] blx _ll_mul str r0, [sp, #0x38] add r4, r1, #0x0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] blx _ll_mul mov r2, #0x2 ldr r3, [sp, #0x38] lsl r2, r2, #0xa add r2, r3, r2 ldr r3, _0202158C ; =0x00000000 adc r4, r3 lsl r3, r4, #0x14 lsr r2, r2, #0xc orr r2, r3 mov r3, #0x2 lsl r3, r3, #0xa add r3, r0, r3 ldr r0, _0202158C ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 ldr r0, [sp, #0x14] add r1, r2, r1 add r4, r0, r1 ldr r0, [r5, #0x8] str r0, [sp, #0x3c] asr r0, r0, #0x1f str r0, [sp, #0x40] ldr r0, [sp, #0xc] asr r0, r0, #0x1f str r0, [sp, #0x44] ldr r0, [r5, #0x0] ldr r1, [sp, #0x44] str r0, [sp, #0x48] asr r0, r0, #0x1f str r0, [sp, #0x4c] ldr r0, [sp, #0xc] ldr r2, [sp, #0x48] ldr r3, [sp, #0x4c] blx _ll_mul str r0, [sp, #0x50] add r5, r1, #0x0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x44] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x40] blx _ll_mul mov r2, #0x2 ldr r3, [sp, #0x50] lsl r2, r2, #0xa add r2, r3, r2 ldr r3, _0202158C ; =0x00000000 adc r5, r3 lsl r3, r5, #0x14 lsr r2, r2, #0xc orr r2, r3 mov r3, #0x2 lsl r3, r3, #0xa add r3, r0, r3 ldr r0, _0202158C ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 ldr r0, [sp, #0x18] add r1, r2, r1 add r5, r0, r1 ldr r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0x54] ldr r0, [sp, #0x8] ldr r1, [sp, #0x54] ldr r2, [sp, #0x48] ldr r3, [sp, #0x4c] blx _ll_mul str r0, [sp, #0x58] str r1, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [sp, #0x54] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x40] blx _ll_mul mov r12, r0 add r2, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x58] lsl r0, r0, #0xa add r3, r1, r0 ldr r1, [sp, #0x4] ldr r0, _0202158C ; =0x00000000 adc r1, r0 str r1, [sp, #0x4] lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 mov r0, #0x2 lsl r0, r0, #0xa mov r3, r12 add r0, r3, r0 ldr r3, _0202158C ; =0x00000000 adc r2, r3 lsl r2, r2, #0x14 lsr r0, r0, #0xc orr r0, r2 add r1, r1, r0 ldr r0, [sp, #0x18] add r0, r0, r1 ldr r1, [sp, #0x5c] cmp r4, r1 bge _02021560 add r1, r4, #0x0 ldr r4, [sp, #0x5c] str r1, [sp, #0x5c] _02021560: cmp r0, r5 bge _0202156A add r1, r0, #0x0 add r0, r5, #0x0 add r5, r1, #0x0 _0202156A: cmp r4, #0x0 ble _02021586 ldr r2, [r6, #0xc] ldr r1, [sp, #0x5c] cmp r1, r2 bge _02021586 cmp r0, #0x0 ble _02021586 ldr r0, [r6, #0x8] cmp r5, r0 bge _02021586 add sp, #0x60 mov r0, #0x1 pop {r3-r7, pc} _02021586: mov r0, #0x0 add sp, #0x60 pop {r3-r7, pc} .balign 4 _0202158C: .word 0x00000000 thumb_func_start FUN_02021590 FUN_02021590: ; 0x02021590 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 ldr r0, [sp, #0x20] mov r1, #0x78 add r7, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 beq _020215C0 ldr r1, [sp, #0x20] ldr r3, [sp, #0x4] str r1, [sp, #0x0] add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02021600 ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_020216D4 _020215C0: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020215C8 FUN_020215C8: ; 0x020215C8 push {r4, lr} add r4, r0, #0x0 bl FUN_02021728 add r0, r4, #0x0 bl FUN_020216B8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020215E0 FUN_020215E0: ; 0x020215E0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] add r6, r2, #0x0 cmp r1, r4 beq _020215FC bl FUN_02021728 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020216D4 _020215FC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021600 FUN_02021600: ; 0x02021600 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r0, r1, #0x0 ldr r1, [sp, #0x18] add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02006670 str r0, [r5, #0x54] cmp r0, #0x0 beq _020216A6 add r1, r5, #0x0 add r1, #0x5c str r1, [sp, #0x0] add r1, r4, #0x0 mov r2, #0x0 mov r3, #0x10 bl FUN_02006814 str r6, [r5, #0x6c] cmp r6, #0x0 beq _02021638 mov r0, #0x0 str r0, [r5, #0x74] ldr r0, _020216AC ; =FUN_0202192C str r0, [r5, #0x70] b _02021660 _02021638: ldr r0, [r5, #0x60] cmp r0, #0x0 bne _02021642 bl ErrorHandling _02021642: ldr r0, [sp, #0x18] ldr r1, [r5, #0x64] bl FUN_02016998 str r0, [r5, #0x74] ldr r0, _020216B0 ; =FUN_02021924 add r1, r4, #0x0 str r0, [r5, #0x70] ldr r0, [r5, #0x74] str r0, [sp, #0x0] ldr r0, [r5, #0x54] ldr r2, [r5, #0x60] ldr r3, [r5, #0x64] bl FUN_02006814 _02021660: add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] cmp r0, #0x2 bhi _02021674 add r0, r5, #0x0 add r0, #0x6b ldrb r0, [r0, #0x0] cmp r0, #0x2 bls _02021678 _02021674: bl ErrorHandling _02021678: add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] ldr r2, _020216B4 ; =0x020EE668 sub r0, r0, #0x1 lsl r3, r0, #0x1 add r0, r5, #0x0 add r0, #0x6b ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r2, r3 ldrb r0, [r1, r0] str r0, [r5, #0x8] add r0, r5, #0x0 add r0, #0x6b ldrb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] lsl r0, r0, #0x4 mul r0, r1 str r0, [r5, #0xc] str r4, [r5, #0x58] _020216A6: add sp, #0x4 pop {r3-r6, pc} nop _020216AC: .word FUN_0202192C _020216B0: .word FUN_02021924 _020216B4: .word 0x020EE668 thumb_func_start FUN_020216B8 FUN_020216B8: ; 0x020216B8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x74] cmp r0, #0x0 beq _020216C6 bl FUN_02016A18 _020216C6: ldr r0, [r4, #0x54] cmp r0, #0x0 beq _020216D0 bl FUN_020066F4 _020216D0: pop {r4, pc} .balign 4 thumb_func_start FUN_020216D4 FUN_020216D4: ; 0x020216D4 push {r3, lr} add r3, r1, #0x0 add r1, r2, #0x0 str r3, [r0, #0x0] ldr r2, _020216E8 ; =0x020EE66C lsl r3, r3, #0x2 ldr r2, [r2, r3] blx r2 pop {r3, pc} nop _020216E8: .word 0x020EE66C thumb_func_start FUN_020216EC FUN_020216EC: ; 0x020216EC push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0xc] ldr r0, [r5, #0x64] add r4, r2, #0x0 mul r4, r0 add r0, r1, #0x0 add r1, r4, #0x0 bl FUN_02016998 str r0, [r5, #0x10] ldr r0, _02021718 ; =FUN_02021774 add r3, r4, #0x0 str r0, [r5, #0x4] ldr r0, [r5, #0x10] str r0, [sp, #0x0] ldr r0, [r5, #0x54] ldr r1, [r5, #0x58] ldr r2, [r5, #0x5c] bl FUN_02006814 pop {r3-r5, pc} .balign 4 _02021718: .word FUN_02021774 thumb_func_start FUN_0202171C FUN_0202171C: ; 0x0202171C ldr r1, _02021724 ; =FUN_0202181C str r1, [r0, #0x4] bx lr nop _02021724: .word FUN_0202181C thumb_func_start FUN_02021728 FUN_02021728: ; 0x02021728 push {r3, lr} ldr r1, [r0, #0x0] lsl r2, r1, #0x2 ldr r1, _02021738 ; =0x020EE674 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _02021738: .word 0x020EE674 thumb_func_start FUN_0202173C FUN_0202173C: ; 0x0202173C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} thumb_func_start FUN_0202174C FUN_0202174C: ; 0x0202174C bx lr .balign 4 thumb_func_start FUN_02021750 FUN_02021750: ; 0x02021750 push {r3, lr} ldr r3, [r0, #0x64] cmp r1, r3 bhi _02021764 sub r1, r1, #0x1 lsl r1, r1, #0x10 ldr r3, [r0, #0x4] lsr r1, r1, #0x10 blx r3 pop {r3, pc} _02021764: add r0, r2, #0x0 mov r1, #0x0 add r0, #0x80 strb r1, [r0, #0x0] add r2, #0x81 strb r1, [r2, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_02021774 FUN_02021774: ; 0x02021774 push {r3-r7, lr} str r1, [sp, #0x0] add r7, r0, #0x0 ldr r0, [sp, #0x0] ldr r1, [r7, #0xc] add r5, r0, #0x0 ldr r0, [r7, #0x8] add r6, r2, #0x0 mul r5, r1 ldr r4, [r7, #0x10] cmp r0, #0x3 bhi _02021802 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02021798: ; jump table (using 16-bit offset) .short _020217A0 - _02021798 - 2; case 0 .short _020217AA - _02021798 - 2; case 1 .short _020217C0 - _02021798 - 2; case 2 .short _020217D6 - _02021798 - 2; case 3 _020217A0: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 b _02021802 _020217AA: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x40 bl FUN_0201C100 b _02021802 _020217C0: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x20 bl FUN_0201C100 b _02021802 _020217D6: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x20 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x20 add r1, #0x40 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x30 add r1, #0x60 bl FUN_0201C100 _02021802: ldr r1, [sp, #0x0] ldr r2, [r7, #0x70] add r0, r7, #0x0 blx r2 add r1, r6, #0x0 add r1, #0x80 add r7, #0x69 strb r0, [r1, #0x0] ldrb r0, [r7, #0x0] add r6, #0x81 strb r0, [r6, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202181C FUN_0202181C: ; 0x0202181C push {r3-r7, lr} add r4, r0, #0x0 ldr r6, [r4, #0xc] add r0, #0x14 str r0, [sp, #0x0] add r7, r1, #0x0 add r5, r2, #0x0 add r2, r7, #0x0 ldr r3, [r4, #0x5c] mul r2, r6 add r2, r3, r2 ldr r0, [r4, #0x54] ldr r1, [r4, #0x58] add r3, r6, #0x0 bl FUN_02006814 ldr r0, [r4, #0x8] cmp r0, #0x3 bhi _020218C0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202184E: ; jump table (using 16-bit offset) .short _02021856 - _0202184E - 2; case 0 .short _02021862 - _0202184E - 2; case 1 .short _0202187A - _0202184E - 2; case 2 .short _02021892 - _0202184E - 2; case 3 _02021856: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 b _020218C0 _02021862: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x40 bl FUN_0201C100 b _020218C0 _0202187A: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x20 bl FUN_0201C100 b _020218C0 _02021892: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x20 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x34 add r1, #0x40 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x44 add r1, #0x60 bl FUN_0201C100 _020218C0: ldr r2, [r4, #0x70] add r0, r4, #0x0 add r1, r7, #0x0 blx r2 add r1, r5, #0x0 add r1, #0x80 add r4, #0x69 strb r0, [r1, #0x0] ldrb r0, [r4, #0x0] add r5, #0x81 strb r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_020218D8 FUN_020218D8: ; 0x020218D8 push {r3-r7, lr} add r4, r1, #0x0 ldrh r1, [r4, #0x0] add r5, r0, #0x0 ldr r0, _0202191C ; =0x0000FFFF add r7, r2, #0x0 mov r6, #0x0 cmp r1, r0 beq _02021916 _020218EA: ldr r0, _02021920 ; =0x0000FFFE cmp r1, r0 bne _02021900 add r0, r4, #0x0 bl FUN_0201B8B8 add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0202191C ; =0x0000FFFF cmp r1, r0 beq _02021916 _02021900: ldr r2, [r5, #0x70] add r0, r5, #0x0 sub r1, r1, #0x1 blx r2 add r4, r4, #0x2 add r0, r7, r0 add r6, r6, r0 ldrh r1, [r4, #0x0] ldr r0, _0202191C ; =0x0000FFFF cmp r1, r0 bne _020218EA _02021916: sub r0, r6, r7 pop {r3-r7, pc} nop _0202191C: .word 0x0000FFFF _02021920: .word 0x0000FFFE thumb_func_start FUN_02021924 FUN_02021924: ; 0x02021924 ldr r0, [r0, #0x74] ldrb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0202192C FUN_0202192C: ; 0x0202192C add r0, #0x68 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02021934 FUN_02021934: ; 0x02021934 push {r3-r7, lr} add r5, r1, #0x0 ldrh r1, [r5, #0x0] add r7, r0, #0x0 mov r4, #0x0 ldr r0, _02021994 ; =0x0000FFFF add r6, r2, #0x0 str r4, [sp, #0x0] cmp r1, r0 beq _02021986 _02021948: ldr r0, _02021998 ; =0x0000FFFE cmp r1, r0 bne _02021958 add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _0202197E _02021958: mov r0, #0xe lsl r0, r0, #0xc cmp r1, r0 bne _02021970 ldr r0, [sp, #0x0] sub r1, r4, r6 cmp r0, r1 bhs _0202196A str r1, [sp, #0x0] _0202196A: mov r4, #0x0 add r5, r5, #0x2 b _0202197E _02021970: ldr r2, [r7, #0x70] add r0, r7, #0x0 sub r1, r1, #0x1 blx r2 add r0, r6, r0 add r4, r4, r0 add r5, r5, #0x2 _0202197E: ldrh r1, [r5, #0x0] ldr r0, _02021994 ; =0x0000FFFF cmp r1, r0 bne _02021948 _02021986: ldr r0, [sp, #0x0] sub r1, r4, r6 cmp r0, r1 bhs _02021990 str r1, [sp, #0x0] _02021990: ldr r0, [sp, #0x0] pop {r3-r7, pc} .balign 4 _02021994: .word 0x0000FFFF _02021998: .word 0x0000FFFE thumb_func_start FUN_0202199C FUN_0202199C: ; 0x0202199C push {r3-r7, lr} add r5, r1, #0x0 ldrh r1, [r5, #0x0] add r6, r0, #0x0 ldr r0, _020219EC ; =0x0000FFFF mov r4, #0x0 cmp r1, r0 beq _020219E8 sub r7, r0, #0x1 _020219AE: cmp r1, r7 bne _020219D4 add r0, r5, #0x0 bl FUN_0201B8E0 ldr r1, _020219F0 ; =0x00000203 cmp r0, r1 bne _020219CA add r0, r5, #0x0 mov r1, #0x0 bl FUN_0201B914 add r4, r0, #0x0 sub r4, #0xc _020219CA: add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _020219E0 _020219D4: ldr r2, [r6, #0x70] add r0, r6, #0x0 sub r1, r1, #0x1 blx r2 add r4, r4, r0 add r5, r5, #0x2 _020219E0: ldrh r1, [r5, #0x0] ldr r0, _020219EC ; =0x0000FFFF cmp r1, r0 bne _020219AE _020219E8: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _020219EC: .word 0x0000FFFF _020219F0: .word 0x00000203 thumb_func_start FUN_020219F4 FUN_020219F4: ; 0x020219F4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 lsl r1, r4, #0x1 add r1, #0xa bl FUN_02016998 cmp r0, #0x0 beq _02021A14 ldr r1, _02021A18 ; =0xB6F8D2EC str r1, [r0, #0x4] strh r4, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] ldr r1, _02021A1C ; =0x0000FFFF strh r1, [r0, #0x8] _02021A14: pop {r4, pc} nop _02021A18: .word 0xB6F8D2EC _02021A1C: .word 0x0000FFFF thumb_func_start FUN_02021A20 FUN_02021A20: ; 0x02021A20 push {r4, lr} add r4, r0, #0x0 bne _02021A2A bl ErrorHandling _02021A2A: ldr r1, [r4, #0x4] ldr r0, _02021A44 ; =0xB6F8D2EC cmp r1, r0 beq _02021A36 bl ErrorHandling _02021A36: ldr r0, _02021A48 ; =0xB6F8D2ED str r0, [r4, #0x4] add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} nop _02021A44: .word 0xB6F8D2EC _02021A48: .word 0xB6F8D2ED thumb_func_start FUN_02021A4C FUN_02021A4C: ; 0x02021A4C push {r4, lr} add r4, r0, #0x0 bne _02021A56 bl ErrorHandling _02021A56: ldr r1, [r4, #0x4] ldr r0, _02021A6C ; =0xB6F8D2EC cmp r1, r0 beq _02021A62 bl ErrorHandling _02021A62: mov r0, #0x0 strh r0, [r4, #0x2] ldr r0, _02021A70 ; =0x0000FFFF strh r0, [r4, #0x8] pop {r4, pc} .balign 4 _02021A6C: .word 0xB6F8D2EC _02021A70: .word 0x0000FFFF thumb_func_start FUN_02021A74 FUN_02021A74: ; 0x02021A74 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021A82 bl ErrorHandling _02021A82: ldr r1, [r5, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021A8E bl ErrorHandling _02021A8E: cmp r4, #0x0 bne _02021A96 bl ErrorHandling _02021A96: ldr r1, [r4, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021AA2 bl ErrorHandling _02021AA2: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x0] cmp r0, r2 bls _02021AC0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r2, #0x1 add r0, #0x8 add r1, #0x8 lsl r2, r2, #0x1 blx memcpy ldrh r0, [r4, #0x2] strh r0, [r5, #0x2] pop {r3-r5, pc} _02021AC0: bl ErrorHandling pop {r3-r5, pc} nop _02021AC8: .word 0xB6F8D2EC thumb_func_start FUN_02021ACC FUN_02021ACC: ; 0x02021ACC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021ADA bl ErrorHandling _02021ADA: ldr r1, [r5, #0x4] ldr r0, _02021B00 ; =0xB6F8D2EC cmp r1, r0 beq _02021AE6 bl ErrorHandling _02021AE6: ldrh r0, [r5, #0x2] add r1, r4, #0x0 add r0, r0, #0x1 bl FUN_020219F4 add r4, r0, #0x0 beq _02021AFA add r1, r5, #0x0 bl FUN_02021A74 _02021AFA: add r0, r4, #0x0 pop {r3-r5, pc} nop _02021B00: .word 0xB6F8D2EC thumb_func_start FUN_02021B04 FUN_02021B04: ; 0x02021B04 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [sp, #0x20] add r6, r1, #0x0 add r7, r3, #0x0 str r2, [sp, #0x0] str r0, [sp, #0x20] cmp r5, #0x0 bne _02021B1C bl ErrorHandling _02021B1C: ldr r1, [r5, #0x4] ldr r0, _02021C1C ; =0xB6F8D2EC cmp r1, r0 beq _02021B28 bl ErrorHandling _02021B28: cmp r6, #0x0 bge _02021B30 mov r4, #0x1 b _02021B32 _02021B30: mov r4, #0x0 _02021B32: ldr r0, [sp, #0x0] ldrh r1, [r5, #0x0] add r0, r0, r4 cmp r1, r0 bls _02021C14 ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021B48 ldr r0, _02021C20 ; =0x020EE67C str r0, [sp, #0x4] b _02021B4C _02021B48: ldr r0, _02021C24 ; =0x020EE690 str r0, [sp, #0x4] _02021B4C: add r0, r5, #0x0 bl FUN_02021A4C cmp r4, #0x0 beq _02021B74 mov r0, #0x0 mvn r0, r0 mul r6, r0 ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021B66 mov r0, #0xf1 b _02021B68 _02021B66: ldr r0, _02021C28 ; =0x000001BE _02021B68: ldrh r2, [r5, #0x2] add r1, r2, #0x1 strh r1, [r5, #0x2] lsl r1, r2, #0x1 add r1, r5, r1 strh r0, [r1, #0x8] _02021B74: ldr r0, [sp, #0x0] lsl r1, r0, #0x2 ldr r0, _02021C2C ; =0x020EE6A0 ldr r4, [r0, r1] cmp r4, #0x0 beq _02021C06 _02021B80: add r0, r6, #0x0 add r1, r4, #0x0 blx _u32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r4, #0x0 mul r0, r1 sub r6, r6, r0 cmp r7, #0x2 bne _02021BB4 cmp r1, #0xa bhs _02021BA2 ldr r0, [sp, #0x4] lsl r1, r1, #0x1 ldrh r1, [r0, r1] b _02021BA4 _02021BA2: mov r1, #0xe2 _02021BA4: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] b _02021BFA _02021BB4: cmp r1, #0x0 bne _02021BBC cmp r4, #0x1 bne _02021BDC _02021BBC: mov r7, #0x2 cmp r1, #0xa bhs _02021BCA ldr r0, [sp, #0x4] lsl r1, r1, #0x1 ldrh r1, [r0, r1] b _02021BCC _02021BCA: mov r1, #0xe2 _02021BCC: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] b _02021BFA _02021BDC: cmp r7, #0x1 bne _02021BFA ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021BEA mov r1, #0x1 b _02021BEC _02021BEA: ldr r1, _02021C30 ; =0x000001E2 _02021BEC: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] _02021BFA: add r0, r4, #0x0 mov r1, #0xa blx _u32_div_f add r4, r0, #0x0 bne _02021B80 _02021C06: ldrh r0, [r5, #0x2] ldr r1, _02021C34 ; =0x0000FFFF add sp, #0x8 lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r7, pc} _02021C14: bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 _02021C1C: .word 0xB6F8D2EC _02021C20: .word 0x020EE67C _02021C24: .word 0x020EE690 _02021C28: .word 0x000001BE _02021C2C: .word 0x020EE6A0 _02021C30: .word 0x000001E2 _02021C34: .word 0x0000FFFF thumb_func_start FUN_02021C38 FUN_02021C38: ; 0x02021C38 push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x8] str r1, [sp, #0xc] add r5, r1, #0x0 ldrh r1, [r0, #0x2] mov r7, #0x1 cmp r1, #0x12 bls _02021C56 ldr r0, [sp, #0x8] add sp, #0x10 add r1, r0, #0x0 pop {r3-r7, pc} _02021C56: sub r1, r1, #0x1 str r1, [sp, #0x4] bmi _02021CCC lsl r1, r1, #0x1 add r4, r0, r1 _02021C60: ldrh r6, [r4, #0x8] mov r3, #0xa mov r0, #0x0 add r1, r6, #0x0 sub r1, #0xa2 asr r2, r1, #0x1f sub r3, r1, r3 mov r12, r2 mov r3, r12 sbc r3, r0 blo _02021C98 ldr r0, _02021CDC ; =0x00000121 mov r3, #0xa sub r1, r6, r0 asr r2, r1, #0x1f mov r0, #0x0 sub r3, r1, r3 mov r12, r2 mov r3, r12 sbc r3, r0 blo _02021C98 ldr r0, [sp, #0x0] mov r1, #0x0 str r1, [r0, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} _02021C98: add r0, r1, #0x0 add r1, r2, #0x0 add r2, r7, #0x0 add r3, r5, #0x0 blx _ll_mul add r2, r1, #0x0 ldr r1, [sp, #0x8] add r0, r1, r0 str r0, [sp, #0x8] ldr r0, [sp, #0xc] adc r0, r2 str r0, [sp, #0xc] add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0xa mov r3, #0x0 blx _ll_mul add r7, r0, #0x0 ldr r0, [sp, #0x4] add r5, r1, #0x0 sub r4, r4, #0x2 sub r0, r0, #0x1 str r0, [sp, #0x4] bpl _02021C60 _02021CCC: ldr r0, [sp, #0x0] mov r1, #0x1 str r1, [r0, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} nop _02021CDC: .word 0x00000121 thumb_func_start FUN_02021CE0 FUN_02021CE0: ; 0x02021CE0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021CEE bl ErrorHandling _02021CEE: ldr r1, [r5, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021CFA bl ErrorHandling _02021CFA: cmp r4, #0x0 bne _02021D02 bl ErrorHandling _02021D02: ldr r1, [r4, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021D0E bl ErrorHandling _02021D0E: ldrh r1, [r5, #0x8] ldrh r0, [r4, #0x8] cmp r1, r0 bne _02021D2E ldr r0, _02021D38 ; =0x0000FFFF _02021D18: ldrh r1, [r5, #0x8] cmp r1, r0 bne _02021D22 mov r0, #0x0 pop {r3-r5, pc} _02021D22: add r5, r5, #0x2 add r4, r4, #0x2 ldrh r2, [r5, #0x8] ldrh r1, [r4, #0x8] cmp r2, r1 beq _02021D18 _02021D2E: mov r0, #0x1 pop {r3-r5, pc} nop _02021D34: .word 0xB6F8D2EC _02021D38: .word 0x0000FFFF thumb_func_start FUN_02021D3C FUN_02021D3C: ; 0x02021D3C push {r4, lr} add r4, r0, #0x0 bne _02021D46 bl ErrorHandling _02021D46: ldr r1, [r4, #0x4] ldr r0, _02021D58 ; =0xB6F8D2EC cmp r1, r0 beq _02021D52 bl ErrorHandling _02021D52: ldrh r0, [r4, #0x2] pop {r4, pc} nop _02021D58: .word 0xB6F8D2EC thumb_func_start FUN_02021D5C FUN_02021D5C: ; 0x02021D5C push {r3-r5, lr} add r4, r0, #0x0 bne _02021D66 bl ErrorHandling _02021D66: ldr r1, [r4, #0x4] ldr r0, _02021D98 ; =0xB6F8D2EC cmp r1, r0 beq _02021D72 bl ErrorHandling _02021D72: ldrh r1, [r4, #0x2] mov r3, #0x0 mov r0, #0x1 cmp r1, #0x0 ble _02021D94 mov r1, #0xe add r5, r4, #0x0 lsl r1, r1, #0xc _02021D82: ldrh r2, [r5, #0x8] cmp r2, r1 bne _02021D8A add r0, r0, #0x1 _02021D8A: ldrh r2, [r4, #0x2] add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, r2 blt _02021D82 _02021D94: pop {r3-r5, pc} nop _02021D98: .word 0xB6F8D2EC thumb_func_start FUN_02021D9C FUN_02021D9C: ; 0x02021D9C push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _02021DAC bl ErrorHandling _02021DAC: ldr r1, [r5, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DB8 bl ErrorHandling _02021DB8: cmp r7, #0x0 bne _02021DC0 bl ErrorHandling _02021DC0: ldr r1, [r7, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DCC bl ErrorHandling _02021DCC: mov r4, #0x0 cmp r6, #0x0 beq _02021DF6 ldrh r0, [r5, #0x2] cmp r0, #0x0 ble _02021DF6 mov r1, #0xe add r0, r5, #0x0 lsl r1, r1, #0xc _02021DDE: ldrh r2, [r0, #0x8] cmp r2, r1 bne _02021DEC sub r6, r6, #0x1 bne _02021DEC add r4, r4, #0x1 b _02021DF6 _02021DEC: ldrh r2, [r5, #0x2] add r4, r4, #0x1 add r0, r0, #0x2 cmp r4, r2 blt _02021DDE _02021DF6: add r0, r7, #0x0 bl FUN_02021A4C ldrh r0, [r5, #0x2] cmp r4, r0 bge _02021E20 lsl r0, r4, #0x1 add r6, r5, r0 _02021E06: ldrh r1, [r6, #0x8] mov r0, #0xe lsl r0, r0, #0xc cmp r1, r0 beq _02021E20 add r0, r7, #0x0 bl FUN_02021FB0 ldrh r0, [r5, #0x2] add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, r0 blt _02021E06 _02021E20: pop {r3-r7, pc} nop _02021E24: .word 0xB6F8D2EC thumb_func_start FUN_02021E28 FUN_02021E28: ; 0x02021E28 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021E36 bl ErrorHandling _02021E36: ldr r1, [r5, #0x4] ldr r0, _02021E84 ; =0xB6F8D2EC cmp r1, r0 beq _02021E42 bl ErrorHandling _02021E42: mov r0, #0x0 strh r0, [r5, #0x2] ldrh r1, [r4, #0x0] ldr r0, _02021E88 ; =0x0000FFFF cmp r1, r0 beq _02021E76 add r1, r0, #0x0 _02021E50: ldrh r2, [r5, #0x0] ldrh r0, [r5, #0x2] sub r2, r2, #0x1 cmp r0, r2 blt _02021E60 bl ErrorHandling b _02021E76 _02021E60: add r2, r0, #0x0 add r2, r2, #0x1 strh r2, [r5, #0x2] ldrh r2, [r4, #0x0] lsl r0, r0, #0x1 add r0, r5, r0 add r4, r4, #0x2 strh r2, [r0, #0x8] ldrh r0, [r4, #0x0] cmp r0, r1 bne _02021E50 _02021E76: ldrh r0, [r5, #0x2] ldr r1, _02021E88 ; =0x0000FFFF lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r5, pc} nop _02021E84: .word 0xB6F8D2EC _02021E88: .word 0x0000FFFF thumb_func_start FUN_02021E8C FUN_02021E8C: ; 0x02021E8C push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021E9C bl ErrorHandling _02021E9C: ldr r1, [r5, #0x4] ldr r0, _02021EE8 ; =0xB6F8D2EC cmp r1, r0 beq _02021EA8 bl ErrorHandling _02021EA8: ldrh r0, [r5, #0x0] cmp r4, r0 bhi _02021EE2 lsl r6, r4, #0x1 add r0, r5, #0x0 add r0, #0x8 add r1, r7, #0x0 add r2, r6, #0x0 blx memcpy mov r2, #0x0 cmp r4, #0x0 bls _02021ED4 ldr r0, _02021EEC ; =0x0000FFFF add r3, r5, #0x0 _02021EC6: ldrh r1, [r3, #0x8] cmp r1, r0 beq _02021ED4 add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, r4 blo _02021EC6 _02021ED4: strh r2, [r5, #0x2] cmp r2, r4 bne _02021EE6 ldr r1, _02021EEC ; =0x0000FFFF add r0, r5, r6 strh r1, [r0, #0x6] pop {r3-r7, pc} _02021EE2: bl ErrorHandling _02021EE6: pop {r3-r7, pc} .balign 4 _02021EE8: .word 0xB6F8D2EC _02021EEC: .word 0x0000FFFF thumb_func_start FUN_02021EF0 FUN_02021EF0: ; 0x02021EF0 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021F00 bl ErrorHandling _02021F00: ldr r1, [r5, #0x4] ldr r0, _02021F28 ; =0xB6F8D2EC cmp r1, r0 beq _02021F0C bl ErrorHandling _02021F0C: ldrh r0, [r5, #0x2] add r2, r0, #0x1 cmp r2, r4 bhi _02021F22 add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 lsl r2, r2, #0x1 blx memcpy pop {r4-r6, pc} _02021F22: bl ErrorHandling pop {r4-r6, pc} .balign 4 _02021F28: .word 0xB6F8D2EC thumb_func_start FUN_02021F2C FUN_02021F2C: ; 0x02021F2C push {r4, lr} add r4, r0, #0x0 bne _02021F36 bl ErrorHandling _02021F36: ldr r1, [r4, #0x4] ldr r0, _02021F48 ; =0xB6F8D2EC cmp r1, r0 beq _02021F42 bl ErrorHandling _02021F42: add r4, #0x8 add r0, r4, #0x0 pop {r4, pc} .balign 4 _02021F48: .word 0xB6F8D2EC thumb_func_start FUN_02021F4C FUN_02021F4C: ; 0x02021F4C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021F5A bl ErrorHandling _02021F5A: ldr r1, [r5, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F66 bl ErrorHandling _02021F66: cmp r4, #0x0 bne _02021F6E bl ErrorHandling _02021F6E: ldr r1, [r4, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F7A bl ErrorHandling _02021F7A: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x2] add r1, r0, r2 add r3, r1, #0x1 ldrh r1, [r5, #0x0] cmp r3, r1 bgt _02021FA6 add r1, r5, #0x0 add r1, #0x8 lsl r0, r0, #0x1 add r0, r1, r0 add r1, r4, #0x0 add r2, r2, #0x1 add r1, #0x8 lsl r2, r2, #0x1 blx memcpy ldrh r1, [r5, #0x2] ldrh r0, [r4, #0x2] add r0, r1, r0 strh r0, [r5, #0x2] pop {r3-r5, pc} _02021FA6: bl ErrorHandling pop {r3-r5, pc} .balign 4 _02021FAC: .word 0xB6F8D2EC thumb_func_start FUN_02021FB0 FUN_02021FB0: ; 0x02021FB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021FBE bl ErrorHandling _02021FBE: ldr r1, [r5, #0x4] ldr r0, _02021FF0 ; =0xB6F8D2EC cmp r1, r0 beq _02021FCA bl ErrorHandling _02021FCA: ldrh r2, [r5, #0x2] ldrh r0, [r5, #0x0] add r1, r2, #0x1 cmp r1, r0 bge _02021FE8 lsl r0, r2, #0x1 strh r1, [r5, #0x2] add r0, r5, r0 strh r4, [r0, #0x8] ldrh r0, [r5, #0x2] ldr r1, _02021FF4 ; =0x0000FFFF lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r5, pc} _02021FE8: bl ErrorHandling pop {r3-r5, pc} nop _02021FF0: .word 0xB6F8D2EC _02021FF4: .word 0x0000FFFF thumb_func_start FUN_02021FF8 FUN_02021FF8: ; 0x02021FF8 push {r4, lr} add r4, r0, #0x0 bne _02022002 bl ErrorHandling _02022002: ldr r1, [r4, #0x4] ldr r0, _02022028 ; =0xB6F8D2EC cmp r1, r0 beq _0202200E bl ErrorHandling _0202200E: ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _02022026 ldrh r1, [r4, #0x8] ldr r0, _0202202C ; =0x00000145 cmp r1, r0 blo _02022026 add r0, #0x19 cmp r1, r0 bhi _02022026 sub r1, #0x1a strh r1, [r4, #0x8] _02022026: pop {r4, pc} .balign 4 _02022028: .word 0xB6F8D2EC _0202202C: .word 0x00000145 thumb_func_start FUN_02022030 FUN_02022030: ; 0x02022030 ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _02022044 ldrh r1, [r0, #0x8] mov r0, #0xf1 lsl r0, r0, #0x8 cmp r1, r0 bne _02022044 mov r0, #0x1 bx lr _02022044: mov r0, #0x0 bx lr thumb_func_start FUN_02022048 FUN_02022048: ; 0x02022048 push {r3-r7, lr} add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02022030 cmp r0, #0x0 beq _020220B2 ldr r0, [sp, #0x0] ldr r1, [sp, #0x0] ldrh r0, [r0, #0x2] add r1, #0x8 ldr r7, _020220BC ; =0x000001FF lsl r0, r0, #0x1 add r3, r1, r0 mov r0, #0x0 add r4, #0xa add r1, r0, #0x0 _0202206C: ldrh r2, [r4, #0x0] asr r2, r0 and r2, r7 lsl r2, r2, #0x10 add r0, #0x9 lsr r2, r2, #0x10 cmp r0, #0xf blt _02022094 add r4, r4, #0x2 sub r0, #0xf beq _02022094 ldrh r6, [r4, #0x0] mov r5, #0x9 sub r5, r5, r0 lsl r6, r5 ldr r5, _020220BC ; =0x000001FF and r5, r6 orr r2, r5 lsl r2, r2, #0x10 lsr r2, r2, #0x10 _02022094: ldr r5, _020220BC ; =0x000001FF cmp r2, r5 beq _020220A2 strh r2, [r3, #0x0] add r3, r3, #0x2 add r1, r1, #0x1 b _0202206C _020220A2: ldr r0, _020220C0 ; =0x0000FFFF strh r0, [r3, #0x0] ldr r0, [sp, #0x0] ldrh r0, [r0, #0x2] add r1, r0, r1 ldr r0, [sp, #0x0] strh r1, [r0, #0x2] pop {r3-r7, pc} _020220B2: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_02021F4C pop {r3-r7, pc} .balign 4 _020220BC: .word 0x000001FF _020220C0: .word 0x0000FFFF thumb_func_start FUN_020220C4 FUN_020220C4: ; 0x020220C4 push {r3-r7, lr} add r7, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] cmp r7, #0x0 bne _020220D6 bl ErrorHandling _020220D6: ldr r0, [sp, #0x18] mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 beq _0202211C str r5, [r4, #0x0] str r7, [r4, #0x4] ldr r0, [sp, #0x0] str r6, [r4, #0x8] str r0, [r4, #0xc] ldr r0, [sp, #0x18] lsl r1, r7, #0x2 bl FUN_02016998 str r0, [r4, #0x10] cmp r0, #0x0 beq _02022114 mov r6, #0x0 cmp r7, #0x0 bls _0202211C add r5, r6, #0x0 _02022102: ldr r0, [r4, #0x10] add r0, r0, r5 bl FUN_02022120 add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, r7 blo _02022102 b _0202211C _02022114: add r0, r4, #0x0 bl FUN_02016A18 mov r4, #0x0 _0202211C: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02022120 FUN_02022120: ; 0x02022120 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strh r1, [r0, #0x2] bx lr .balign 4 thumb_func_start FUN_0202212C FUN_0202212C: ; 0x0202212C push {r4, lr} add r4, r0, #0x0 bne _02022136 bl ErrorHandling _02022136: ldr r0, [r4, #0x10] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02022144 FUN_02022144: ; 0x02022144 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02020A98 str r0, [sp, #0x0] cmp r0, #0x0 beq _02022190 bl FUN_02020AA4 str r0, [sp, #0x4] ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 bls _020221AE add r4, r6, #0x0 _02022164: ldr r0, [r5, #0x10] add r0, r0, r4 ldrb r0, [r0, #0x1] cmp r0, #0x0 ldr r0, [r5, #0x0] beq _02022178 add r0, r0, r4 bl FUN_02020A40 b _0202217E _02022178: add r0, r0, r4 bl FUN_02020A6C _0202217E: ldr r1, [r5, #0x10] add r6, r6, #0x1 add r1, r1, r4 strb r0, [r1, #0x1] ldr r0, [r5, #0x4] add r4, r4, #0x4 cmp r6, r0 blo _02022164 b _020221AE _02022190: ldr r0, [r5, #0x4] mov r3, #0x0 str r3, [sp, #0x4] cmp r0, #0x0 bls _020221AE add r2, r3, #0x0 add r1, r3, #0x0 _0202219E: ldr r0, [r5, #0x10] add r3, r3, #0x1 add r0, r0, r2 strb r1, [r0, #0x1] ldr r0, [r5, #0x4] add r2, r2, #0x4 cmp r3, r0 blo _0202219E _020221AE: mov r4, #0x0 cmp r0, #0x0 bls _020221E4 add r7, r4, #0x0 _020221B6: ldr r3, [r5, #0x10] ldr r1, [sp, #0x0] add r0, r3, r7 ldrb r3, [r3, r7] ldr r2, [sp, #0x4] lsl r6, r3, #0x2 ldr r3, _020221E8 ; =0x020EE6CC ldr r3, [r3, r6] blx r3 add r1, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r1, r0 beq _020221DA ldr r2, [r5, #0xc] ldr r3, [r5, #0x8] add r0, r4, #0x0 blx r3 _020221DA: ldr r0, [r5, #0x4] add r4, r4, #0x1 add r7, r7, #0x4 cmp r4, r0 blo _020221B6 _020221E4: add sp, #0x8 pop {r3-r7, pc} .balign 4 _020221E8: .word 0x020EE6CC thumb_func_start FUN_020221EC FUN_020221EC: ; 0x020221EC push {r3, lr} ldrb r1, [r0, #0x1] cmp r1, #0x0 beq _02022202 cmp r2, #0x0 beq _02022202 mov r1, #0x1 bl FUN_0202223C mov r0, #0x0 pop {r3, pc} _02022202: mov r0, #0x0 mvn r0, r0 pop {r3, pc} thumb_func_start FUN_02022208 FUN_02022208: ; 0x02022208 push {r3, lr} ldrb r2, [r0, #0x1] cmp r2, #0x0 beq _02022220 ldrh r2, [r0, #0x2] ldr r1, _02022238 ; =0x0000FFFF cmp r2, r1 bhs _0202221C add r1, r2, #0x1 strh r1, [r0, #0x2] _0202221C: mov r0, #0x2 pop {r3, pc} _02022220: cmp r1, #0x0 beq _0202222E mov r1, #0x0 bl FUN_0202223C mov r0, #0x3 pop {r3, pc} _0202222E: mov r1, #0x0 bl FUN_0202223C mov r0, #0x1 pop {r3, pc} .balign 4 _02022238: .word 0x0000FFFF thumb_func_start FUN_0202223C FUN_0202223C: ; 0x0202223C strb r1, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] bx lr thumb_func_start FUN_02022244 FUN_02022244: ; 0x02022244 push {r3-r4} ldr r3, [r0, #0xc] mov r2, #0x0 sub r3, r3, #0x1 beq _02022262 ldr r4, [r0, #0x0] _02022250: ldrh r3, [r4, #0x2] cmp r3, r1 bhi _02022262 ldr r3, [r0, #0xc] add r2, r2, #0x1 sub r3, r3, #0x1 add r4, r4, #0x2 cmp r2, r3 blo _02022250 _02022262: ldr r1, [r0, #0x4] ldrb r3, [r1, r2] add r1, sp, #0x0 strb r3, [r1, #0x0] ldr r0, [r0, #0x8] ldrb r2, [r0, r2] strb r2, [r1, #0x1] ldrb r0, [r1, #0x0] lsl r1, r2, #0x8 orr r0, r1 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202227C FUN_0202227C: ; 0x0202227C ldr r2, [r0, #0x0] str r2, [r1, #0xc] add r2, r0, #0x4 str r2, [r1, #0x0] ldr r0, [r1, #0xc] lsl r0, r0, #0x1 add r2, r2, r0 str r2, [r1, #0x4] ldr r0, [r1, #0xc] add r0, r2, r0 str r0, [r1, #0x8] bx lr thumb_func_start FUN_02022294 FUN_02022294: ; 0x02022294 ldr r0, _020222A4 ; =0x021C59BC mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] ldr r0, _020222A8 ; =0x021C59BC str r1, [r0, #0x0] bx lr .balign 4 _020222A4: .word 0x021C59BC _020222A8: .word 0x021C59BC thumb_func_start FUN_020222AC FUN_020222AC: ; 0x020222AC ldr r3, _020222B0 ; =G3X_ResetMtxStack bx r3 .balign 4 _020222B0: .word G3X_ResetMtxStack thumb_func_start FUN_020222B4 FUN_020222B4: ; 0x020222B4 ldr r2, _020222C0 ; =0x021C59BC str r0, [r2, #0x4] str r1, [r2, #0x8] mov r0, #0x1 str r0, [r2, #0x0] bx lr .balign 4 _020222C0: .word 0x021C59BC thumb_func_start FUN_020222C4 FUN_020222C4: ; 0x020222C4 ldr r0, _020222E0 ; =0x021C59BC ldr r1, [r0, #0x0] cmp r1, #0x0 beq _020222DC ldr r1, [r0, #0x8] ldr r2, [r0, #0x4] lsl r1, r1, #0x1 orr r2, r1 ldr r1, _020222E4 ; =0x04000540 str r2, [r1, #0x0] mov r1, #0x0 str r1, [r0, #0x0] _020222DC: bx lr nop _020222E0: .word 0x021C59BC _020222E4: .word 0x04000540 thumb_func_start FUN_020222E8 FUN_020222E8: ; 0x020222E8 mov r0, #0x5 lsl r0, r0, #0x18 bx lr .balign 4 thumb_func_start FUN_020222F0 FUN_020222F0: ; 0x020222F0 mov r0, #0x2 lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_020222F8 FUN_020222F8: ; 0x020222F8 ldr r0, _020222FC ; =0x05000400 bx lr .balign 4 _020222FC: .word 0x05000400 thumb_func_start FUN_02022300 FUN_02022300: ; 0x02022300 mov r0, #0x2 lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_02022308 FUN_02022308: ; 0x02022308 ldr r0, _0202230C ; =0x05000200 bx lr .balign 4 _0202230C: .word 0x05000200 thumb_func_start FUN_02022310 FUN_02022310: ; 0x02022310 ldr r0, _02022314 ; =0x05000600 bx lr .balign 4 _02022314: .word 0x05000600 thumb_func_start FUN_02022318 FUN_02022318: ; 0x02022318 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 mov r1, #0xc add r6, r0, #0x0 add r5, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 str r6, [r4, #0x0] blx FUN_020BB7F4 blx G3X_InitMtxStack mov r1, #0x2 ldr r0, _020223B8 ; =0x04000540 cmp r7, #0x0 str r1, [r0, #0x0] bne _02022364 lsl r0, r5, #0x7 blx FUN_020AFA28 add r6, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_02016998 str r0, [r4, #0x8] mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [r4, #0x8] lsl r0, r5, #0x11 mov r1, #0x0 add r3, r6, #0x0 blx FUN_020AF9C4 b _0202236E _02022364: lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 blx FUN_020AEB70 _0202236E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _02022398 ldr r0, [sp, #0x20] lsl r0, r0, #0x8 blx FUN_020AFBFC add r5, r0, #0x0 ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_02016998 str r0, [r4, #0x4] ldr r0, [sp, #0x20] ldr r1, [r4, #0x4] lsl r0, r0, #0xd add r2, r5, #0x0 mov r3, #0x1 blx FUN_020AFBA8 b _020223A4 _02022398: ldr r0, [sp, #0x20] mov r1, #0x1 lsl r0, r0, #0x1d lsr r0, r0, #0x10 blx FUN_020AEB70 _020223A4: ldr r0, [sp, #0x24] cmp r0, #0x0 beq _020223AE blx r0 b _020223B2 _020223AE: bl FUN_020223D4 _020223B2: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020223B8: .word 0x04000540 thumb_func_start FUN_020223BC FUN_020223BC: ; 0x020223BC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_020223D4 FUN_020223D4: ; 0x020223D4 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _02022438 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 strh r2, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _0202243C ; =0xFFFFCFFD and r1, r2 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] ldr r2, _02022440 ; =0x0000CFEF and r1, r2 strh r1, [r0, #0x0] add r1, r2, #0x0 ldrh r3, [r0, #0x0] add r1, #0xc and r1, r3 strh r1, [r0, #0x0] add r1, r2, #0x0 ldrh r3, [r0, #0x0] add r1, #0x8 sub r2, #0x10 and r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx G3X_SetFog mov r0, #0x0 ldr r2, _02022444 ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx G3X_SetClearColor ldr r1, _02022448 ; =0xBFFF0000 ldr r0, _0202244C ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _02022438: .word 0x04000008 _0202243C: .word 0xFFFFCFFD _02022440: .word 0x0000CFEF _02022444: .word 0x00007FFF _02022448: .word 0xBFFF0000 _0202244C: .word 0x04000580 thumb_func_start FUN_02022450 FUN_02022450: ; 0x02022450 push {r3, lr} blx FS_IsAvailable cmp r0, #0x0 bne _02022460 blx OS_Terminate pop {r3, pc} _02022460: ldr r0, _020224BC ; =0x027FF00C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202248A blx CARD_Init mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C4 ; =0x027FF000 lsl r2, r2, #0x4 blx MI_CpuCopy8 mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C8 ; =0x027FFA80 lsl r2, r2, #0x4 blx MI_CpuCopy8 ldr r1, _020224CC ; =0x4A414441 ldr r0, _020224BC ; =0x027FF00C str r1, [r0, #0x0] _0202248A: ldr r0, _020224D0 ; =0x020EE6D4 mov r1, #0x3 blx FS_FindArchive ldr r1, _020224C4 ; =0x027FF000 ldr r2, [r1, #0x48] str r2, [r0, #0x2c] ldr r2, [r1, #0x4c] str r2, [r0, #0x30] ldr r2, [r1, #0x40] str r2, [r0, #0x34] ldr r2, [r1, #0x44] str r2, [r0, #0x38] ldr r2, [r1, #0xc] ldr r0, _020224CC ; =0x4A414441 cmp r2, r0 bne _020224B4 ldrh r1, [r1, #0x10] ldr r0, _020224D4 ; =0x00003130 cmp r1, r0 beq _020224B8 _020224B4: blx OS_Terminate _020224B8: pop {r3, pc} nop _020224BC: .word 0x027FF00C _020224C0: .word 0x027FFE00 _020224C4: .word 0x027FF000 _020224C8: .word 0x027FFA80 _020224CC: .word 0x4A414441 _020224D0: .word 0x020EE6D4 _020224D4: .word 0x00003130 thumb_func_start FUN_020224D8 FUN_020224D8: ; 0x020224D8 push {r4, lr} sub sp, #0x48 add r4, r0, #0x0 add r0, sp, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020224FC ldr r1, [sp, #0x24] ldr r0, _02022500 ; =0x027FFC2C str r1, [r0, #0x0] mov r0, #0x0 blx OS_ResetSystem _020224FC: add sp, #0x48 pop {r4, pc} .balign 4 _02022500: .word 0x027FFC2C thumb_func_start FUN_02022504 FUN_02022504: ; 0x02022504 ldr r3, _0202250C ; =FUN_02022610 mov r1, #0x1b bx r3 nop _0202250C: .word FUN_02022610 thumb_func_start FUN_02022510 FUN_02022510: ; 0x02022510 ldr r3, _02022518 ; =FUN_02022610 mov r1, #0x23 bx r3 nop _02022518: .word FUN_02022610 thumb_func_start FUN_0202251C FUN_0202251C: ; 0x0202251C ldr r3, _02022524 ; =FUN_02022610 mov r1, #0x1f bx r3 nop _02022524: .word FUN_02022610 thumb_func_start FUN_02022528 FUN_02022528: ; 0x02022528 ldr r3, _02022530 ; =FUN_02022610 mov r1, #0x20 bx r3 nop _02022530: .word FUN_02022610 thumb_func_start FUN_02022534 FUN_02022534: ; 0x02022534 push {r3, lr} add r3, r2, #0x0 mov r2, #0x0 bl FUN_02023408 pop {r3, pc} thumb_func_start FUN_02022540 FUN_02022540: ; 0x02022540 ldr r3, _02022548 ; =FUN_020232BC add r2, r1, #0x0 mov r1, #0x0 bx r3 .balign 4 _02022548: .word FUN_020232BC thumb_func_start FUN_0202254C FUN_0202254C: ; 0x0202254C push {r4, lr} ldr r1, _020225E0 ; =0x000204A8 mov r0, #0x1 bl FUN_02016998 add r4, r0, #0x0 ldr r2, _020225E0 ; =0x000204A8 mov r0, #0x0 add r1, r4, #0x0 blx MIi_CpuClearFast ldr r0, _020225E4 ; =0x021C59C8 str r4, [r0, #0x0] bl FUN_02023570 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x1 str r0, [r4, #0x8] str r0, [r4, #0xc] add r0, r4, #0x0 ldr r1, _020225E8 ; =0x00001021 add r0, #0x14 blx MATHi_CRC16InitTable ldr r0, _020225EC ; =0x00020224 add r0, r4, r0 bl FUN_020230E4 ldr r0, _020225F0 ; =0x00020464 ldr r1, _020225EC ; =0x00020224 add r0, r4, r0 add r1, r4, r1 bl FUN_02023160 ldr r1, _020225F4 ; =0x00020218 mov r0, #0x0 add r1, r4, r1 mov r2, #0x8 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02022AD8 str r0, [r4, #0x10] cmp r0, #0x3 bhi _020225DA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020225B8: ; jump table (using 16-bit offset) .short _020225D4 - _020225B8 - 2; case 0 .short _020225C0 - _020225B8 - 2; case 1 .short _020225C4 - _020225B8 - 2; case 2 .short _020225D4 - _020225B8 - 2; case 3 _020225C0: mov r0, #0x0 str r0, [r4, #0xc] _020225C4: add r0, r4, #0x0 bl FUN_02022D08 mov r0, #0x1 str r0, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] b _020225DA _020225D4: add r0, r4, #0x0 bl FUN_020227DC _020225DA: add r0, r4, #0x0 pop {r4, pc} nop _020225E0: .word 0x000204A8 _020225E4: .word 0x021C59C8 _020225E8: .word 0x00001021 _020225EC: .word 0x00020224 _020225F0: .word 0x00020464 _020225F4: .word 0x00020218 thumb_func_start FUN_020225F8 FUN_020225F8: ; 0x020225F8 push {r3, lr} ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02022606 bl ErrorHandling _02022606: ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] pop {r3, pc} .balign 4 _0202260C: .word 0x021C59C8 thumb_func_start FUN_02022610 FUN_02022610: ; 0x02022610 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x24 blt _0202261E bl ErrorHandling _0202261E: mov r0, #0x85 lsl r0, r0, #0x2 add r2, r5, r0 lsl r0, r4, #0x4 add r1, r5, r0 ldr r0, _02022630 ; =0x0002022C ldr r0, [r1, r0] add r0, r2, r0 pop {r3-r5, pc} .balign 4 _02022630: .word 0x0002022C thumb_func_start FUN_02022634 FUN_02022634: ; 0x02022634 ldr r3, _02022638 ; =FUN_02022610 bx r3 .balign 4 _02022638: .word FUN_02022610 thumb_func_start FUN_0202263C FUN_0202263C: ; 0x0202263C push {r3-r7, lr} mov r1, #0x1 str r0, [sp, #0x0] mov r0, #0x3 lsl r1, r1, #0xc bl FUN_020169D8 add r6, r0, #0x0 mov r0, #0x1 bl FUN_02016444 ldr r1, _020226F4 ; =0x00020220 ldr r0, [sp, #0x0] ldrb r0, [r0, r1] cmp r0, #0x0 bne _02022660 mov r2, #0x1 b _02022662 _02022660: mov r2, #0x0 _02022662: ldr r0, [sp, #0x0] mov r1, #0x0 bl FUN_02023074 ldr r1, _020226F8 ; =0x00020221 ldr r0, [sp, #0x0] ldrb r0, [r0, r1] cmp r0, #0x0 bne _02022678 mov r2, #0x1 b _0202267A _02022678: mov r2, #0x0 _0202267A: ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_02023074 ldr r0, [sp, #0x0] ldr r3, _020226F4 ; =0x00020220 add r2, r0, #0x0 ldrb r2, [r2, r3] mov r1, #0x0 bl FUN_02023074 ldr r0, [sp, #0x0] ldr r3, _020226F8 ; =0x00020221 add r2, r0, #0x0 ldrb r2, [r2, r3] mov r1, #0x1 bl FUN_02023074 mov r0, #0x0 mov r2, #0x1 mvn r0, r0 add r1, r6, #0x0 lsl r2, r2, #0xc blx MIi_CpuClearFast mov r4, #0x0 mov r7, #0x1 add r5, r4, #0x0 lsl r7, r7, #0xc _020226B4: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020235D0 add r0, r4, #0x0 add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020235D0 mov r0, #0x1 lsl r0, r0, #0xc add r4, r4, #0x1 add r5, r5, r0 cmp r4, #0x40 blt _020226B4 add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x0] bl FUN_020227DC ldr r0, [sp, #0x0] mov r1, #0x0 str r1, [r0, #0x4] mov r0, #0x1 bl FUN_02016454 mov r0, #0x1 pop {r3-r7, pc} .balign 4 _020226F4: .word 0x00020220 _020226F8: .word 0x00020221 thumb_func_start FUN_020226FC FUN_020226FC: ; 0x020226FC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x0 bne _0202270A mov r0, #0x0 pop {r4, pc} _0202270A: bl FUN_02022D08 cmp r0, #0x0 beq _0202271C mov r0, #0x1 str r0, [r4, #0x4] mov r1, #0x0 str r1, [r4, #0x8] pop {r4, pc} _0202271C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02022720 FUN_02022720: ; 0x02022720 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0202272E mov r0, #0x3 pop {r4, pc} _0202272E: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02022784 mov r0, #0x1 bl FUN_02016444 ldr r0, _02022798 ; =0x00020220 ldrb r0, [r4, r0] cmp r0, #0x0 bne _02022746 mov r2, #0x1 b _02022748 _02022746: mov r2, #0x0 _02022748: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02023074 ldr r0, _0202279C ; =0x00020221 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0202275C mov r2, #0x1 b _0202275E _0202275C: mov r2, #0x0 _0202275E: add r0, r4, #0x0 mov r1, #0x1 bl FUN_02023074 ldr r2, _02022798 ; =0x00020220 add r0, r4, #0x0 ldrb r2, [r4, r2] mov r1, #0x0 bl FUN_02023074 ldr r2, _0202279C ; =0x00020221 add r0, r4, #0x0 ldrb r2, [r4, r2] mov r1, #0x1 bl FUN_02023074 mov r0, #0x1 bl FUN_02016454 _02022784: add r0, r4, #0x0 bl FUN_02023044 cmp r0, #0x2 bne _02022796 mov r1, #0x1 str r1, [r4, #0x4] mov r1, #0x0 str r1, [r4, #0x8] _02022796: pop {r4, pc} .balign 4 _02022798: .word 0x00020220 _0202279C: .word 0x00020221 thumb_func_start FUN_020227A0 FUN_020227A0: ; 0x020227A0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2 blt _020227AE bl ErrorHandling _020227AE: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _020227B8 bl ErrorHandling _020227B8: ldr r0, [r5, #0x4] cmp r0, #0x1 beq _020227C2 bl ErrorHandling _020227C2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02022840 _020227CA: add r0, r5, #0x0 bl FUN_02022854 cmp r0, #0x0 beq _020227CA cmp r0, #0x1 beq _020227CA pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020227DC FUN_020227DC: ; 0x020227DC add r2, r0, #0x0 mov r0, #0x1 str r0, [r2, #0x8] str r0, [r2, #0xc] mov r0, #0x85 ldr r1, _020227F4 ; =0x00020224 lsl r0, r0, #0x2 ldr r3, _020227F8 ; =FUN_020231F4 add r0, r2, r0 add r1, r2, r1 bx r3 nop _020227F4: .word 0x00020224 _020227F8: .word FUN_020231F4 thumb_func_start FUN_020227FC FUN_020227FC: ; 0x020227FC ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02022800 FUN_02022800: ; 0x02022800 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02022804 FUN_02022804: ; 0x02022804 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02022808 FUN_02022808: ; 0x02022808 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_0202280C FUN_0202280C: ; 0x0202280C push {r4, lr} add r4, r0, #0x0 bl FUN_02022808 cmp r0, #0x0 beq _02022826 add r0, r4, #0x0 bl FUN_02022804 cmp r0, #0x0 beq _02022826 mov r0, #0x1 pop {r4, pc} _02022826: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202282C FUN_0202282C: ; 0x0202282C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02022830 FUN_02022830: ; 0x02022830 ldr r0, _0202283C ; =0x021C59C8 mov r1, #0x1 ldr r0, [r0, #0x0] str r1, [r0, #0xc] bx lr nop _0202283C: .word 0x021C59C8 thumb_func_start FUN_02022840 FUN_02022840: ; 0x02022840 add r2, r1, #0x0 ldr r1, _0202284C ; =0x0002047C ldr r3, _02022850 ; =FUN_02022DFC add r1, r0, r1 bx r3 nop _0202284C: .word 0x0002047C _02022850: .word FUN_02022DFC thumb_func_start FUN_02022854 FUN_02022854: ; 0x02022854 push {r3-r5, lr} ldr r1, _02022878 ; =0x0002047C add r5, r0, #0x0 add r1, r5, r1 bl FUN_02022E78 add r4, r0, #0x0 beq _02022874 cmp r4, #0x1 beq _02022874 ldr r1, _02022878 ; =0x0002047C add r0, r5, #0x0 add r1, r5, r1 add r2, r4, #0x0 bl FUN_02022F80 _02022874: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02022878: .word 0x0002047C thumb_func_start FUN_0202287C FUN_0202287C: ; 0x0202287C ldr r1, _02022884 ; =0x0002047C ldr r3, _02022888 ; =FUN_02022FF0 add r1, r0, r1 bx r3 .balign 4 _02022884: .word 0x0002047C _02022888: .word FUN_02022FF0 thumb_func_start FUN_0202288C FUN_0202288C: ; 0x0202288C mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02022898 FUN_02022898: ; 0x02022898 ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT add r0, #0x14 sub r2, #0x14 bx r3 .balign 4 _020228A0: .word MATH_CalcCRC16CCITT thumb_func_start FUN_020228A4 FUN_020228A4: ; 0x020228A4 cmp r0, #0x0 bne _020228AC mov r2, #0x0 b _020228B0 _020228AC: mov r2, #0x1 lsl r2, r2, #0x12 _020228B0: ldr r0, [r1, #0x4] add r0, r2, r0 bx lr .balign 4 thumb_func_start FUN_020228B8 FUN_020228B8: ; 0x020228B8 push {r3-r5, lr} ldr r3, _020228DC ; =0x00020464 add r3, r0, r3 mov r0, #0xc mul r0, r2 add r5, r3, r0 ldr r0, [r5, #0x4] add r4, r1, r0 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _020228D2 bl ErrorHandling _020228D2: ldr r0, [r5, #0x8] add r0, r4, r0 sub r0, #0x14 pop {r3-r5, pc} nop _020228DC: .word 0x00020464 thumb_func_start FUN_020228E0 FUN_020228E0: ; 0x020228E0 push {r3-r7, lr} ldr r4, _02022934 ; =0x00020464 add r3, r0, #0x0 add r3, r3, r4 add r5, r2, #0x0 mov r4, #0xc mul r4, r5 str r0, [sp, #0x0] add r7, r1, #0x0 add r6, r3, r4 bl FUN_020228B8 add r4, r0, #0x0 ldr r2, [r6, #0x8] ldr r0, [r4, #0x8] ldr r1, [r6, #0x4] cmp r0, r2 beq _02022908 mov r0, #0x0 pop {r3-r7, pc} _02022908: ldr r3, [r4, #0xc] ldr r0, _02022938 ; =0x20060623 cmp r3, r0 beq _02022914 mov r0, #0x0 pop {r3-r7, pc} _02022914: ldrb r0, [r4, #0x10] cmp r0, r5 beq _0202291E mov r0, #0x0 pop {r3-r7, pc} _0202291E: ldr r0, [sp, #0x0] add r1, r7, r1 bl FUN_02022898 ldrh r1, [r4, #0x12] cmp r1, r0 bne _02022930 mov r0, #0x1 pop {r3-r7, pc} _02022930: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02022934: .word 0x00020464 _02022938: .word 0x20060623 thumb_func_start FUN_0202293C FUN_0202293C: ; 0x0202293C push {r3-r7, lr} add r7, r2, #0x0 add r6, r1, #0x0 add r5, r0, #0x0 str r3, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 add r2, r3, #0x0 bl FUN_020228B8 add r4, r0, #0x0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_020228E0 str r0, [r5, #0x0] ldr r0, [r4, #0x0] str r0, [r5, #0x4] ldr r0, [r4, #0x4] str r0, [r5, #0x8] pop {r3-r7, pc} thumb_func_start FUN_02022968 FUN_02022968: ; 0x02022968 push {r3-r7, lr} ldr r3, _020229AC ; =0x00020464 add r5, r0, #0x0 add r7, r2, #0x0 mov r4, #0xc add r3, r5, r3 mul r4, r7 str r1, [sp, #0x0] add r6, r3, r4 bl FUN_020228B8 ldr r2, _020229B0 ; =0x00020214 add r4, r0, #0x0 ldr r0, [r5, r2] ldr r1, [r6, #0x4] add r2, r2, #0x4 str r0, [r4, #0x0] lsl r0, r7, #0x2 add r0, r5, r0 ldr r0, [r0, r2] ldr r2, [sp, #0x0] str r0, [r4, #0x4] ldr r0, [r6, #0x8] add r1, r2, r1 str r0, [r4, #0x8] ldr r0, _020229B4 ; =0x20060623 str r0, [r4, #0xc] strb r7, [r4, #0x10] ldr r2, [r6, #0x8] add r0, r5, #0x0 bl FUN_02022898 strh r0, [r4, #0x12] pop {r3-r7, pc} .balign 4 _020229AC: .word 0x00020464 _020229B0: .word 0x00020214 _020229B4: .word 0x20060623 thumb_func_start FUN_020229B8 FUN_020229B8: ; 0x020229B8 mov r2, #0x0 mvn r2, r2 cmp r0, r2 bne _020229C8 cmp r1, #0x0 bne _020229C8 add r0, r2, #0x0 bx lr _020229C8: cmp r0, #0x0 bne _020229D8 mov r2, #0x0 mvn r2, r2 cmp r1, r2 bne _020229D8 mov r0, #0x1 bx lr _020229D8: cmp r0, r1 bls _020229E0 mov r0, #0x1 bx lr _020229E0: cmp r0, r1 bhs _020229E8 mov r0, #0x1 b _020229EA _020229E8: mov r0, #0x0 _020229EA: neg r0, r0 bx lr .balign 4 thumb_func_start FUN_020229F0 FUN_020229F0: ; 0x020229F0 push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 ldr r0, [r7, #0x4] ldr r1, [r6, #0x4] add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_020229B8 str r0, [sp, #0x0] ldr r0, [r7, #0x8] ldr r1, [r6, #0x8] bl FUN_020229B8 ldr r2, [r7, #0x0] cmp r2, #0x0 beq _02022A6A ldr r1, [r6, #0x0] cmp r1, #0x0 beq _02022A6A ldr r1, [sp, #0x0] cmp r1, #0x0 ble _02022A30 cmp r0, #0x0 bgt _02022A26 bl ErrorHandling _02022A26: mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] b _02022A66 _02022A30: bge _02022A44 cmp r0, #0x0 blt _02022A3A bl ErrorHandling _02022A3A: mov r0, #0x1 str r0, [r5, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02022A66 _02022A44: cmp r0, #0x0 ble _02022A52 mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] b _02022A66 _02022A52: bge _02022A5E mov r0, #0x1 str r0, [r5, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02022A66 _02022A5E: mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] _02022A66: mov r0, #0x2 pop {r3-r7, pc} _02022A6A: cmp r2, #0x0 beq _02022A80 ldr r0, [r6, #0x0] cmp r0, #0x0 bne _02022A80 mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x2 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} _02022A80: cmp r2, #0x0 bne _02022A94 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _02022A94 mov r0, #0x1 str r0, [r5, #0x0] mov r1, #0x2 str r1, [r4, #0x0] pop {r3-r7, pc} _02022A94: mov r0, #0x2 str r0, [r5, #0x0] str r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02022AA0 FUN_02022AA0: ; 0x02022AA0 push {r3-r6} mov r4, #0xc add r5, r3, #0x0 mul r5, r4 add r6, r1, r5 ldr r5, [r6, #0x4] ldr r1, _02022AD4 ; =0x00020214 str r5, [r0, r1] ldr r6, [r6, #0x8] add r5, r1, #0x4 str r6, [r0, r5] ldr r5, [sp, #0x10] mul r4, r5 add r2, r2, r4 ldr r4, [r2, #0x8] add r2, r1, #0x0 add r2, #0x8 str r4, [r0, r2] add r2, r1, #0x0 add r2, #0xc strb r3, [r0, r2] add r1, #0xd strb r5, [r0, r1] pop {r3-r6} bx lr nop _02022AD4: .word 0x00020214 thumb_func_start FUN_02022AD8 FUN_02022AD8: ; 0x02022AD8 push {r3-r6, lr} sub sp, #0x44 mov r1, #0x2 add r5, r0, #0x0 mov r0, #0x3 lsl r1, r1, #0x10 bl FUN_020169D8 mov r1, #0x2 add r6, r0, #0x0 mov r0, #0x3 lsl r1, r1, #0x10 bl FUN_020169D8 mov r2, #0x2 add r4, r0, #0x0 mov r0, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x10 bl FUN_020235EC cmp r0, #0x0 add r0, sp, #0x2c beq _02022B20 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x0 bl FUN_0202293C add r0, sp, #0x14 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x1 bl FUN_0202293C b _02022B2A _02022B20: bl FUN_0202288C add r0, sp, #0x14 bl FUN_0202288C _02022B2A: mov r0, #0x1 lsl r0, r0, #0x12 add r1, r4, #0x0 lsr r2, r0, #0x1 bl FUN_020235EC cmp r0, #0x0 add r0, sp, #0x38 beq _02022B54 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0202293C add r0, sp, #0x20 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x1 bl FUN_0202293C b _02022B5E _02022B54: bl FUN_0202288C add r0, sp, #0x20 bl FUN_0202288C _02022B5E: add r0, r6, #0x0 bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add r0, sp, #0x2c add r1, sp, #0x38 add r2, sp, #0x10 add r3, sp, #0x8 bl FUN_020229F0 add r4, r0, #0x0 add r0, sp, #0x14 add r1, sp, #0x20 add r2, sp, #0xc add r3, sp, #0x4 bl FUN_020229F0 cmp r4, #0x0 bne _02022B92 cmp r0, #0x0 bne _02022B92 add sp, #0x44 mov r0, #0x0 pop {r3-r6, pc} _02022B92: cmp r4, #0x0 beq _02022B9A cmp r0, #0x0 bne _02022BA0 _02022B9A: add sp, #0x44 mov r0, #0x3 pop {r3-r6, pc} _02022BA0: cmp r4, #0x2 bne _02022BE4 cmp r0, #0x2 bne _02022BE4 ldr r3, [sp, #0x10] ldr r1, [sp, #0xc] mov r2, #0xc add r4, r3, #0x0 mul r4, r2 add r0, sp, #0x30 ldr r0, [r0, r4] add r4, r1, #0x0 mul r4, r2 add r2, sp, #0x18 ldr r2, [r2, r4] cmp r0, r2 str r1, [sp, #0x0] add r1, sp, #0x2c bne _02022BD4 add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022BD4: ldr r3, [sp, #0x8] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022BE4: cmp r4, #0x1 bne _02022C3A cmp r0, #0x2 bne _02022C3A ldr r3, [sp, #0x10] ldr r0, [sp, #0xc] mov r4, #0xc add r2, r3, #0x0 add r6, r0, #0x0 mul r2, r4 add r1, sp, #0x30 ldr r2, [r1, r2] mul r6, r4 add r1, sp, #0x18 ldr r6, [r1, r6] cmp r2, r6 bne _02022C18 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, sp, #0x2c add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C18: ldr r0, [sp, #0x4] mul r4, r0 ldr r1, [r1, r4] cmp r2, r1 bne _02022C34 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, sp, #0x2c add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C34: add sp, #0x44 mov r0, #0x3 pop {r3-r6, pc} _02022C3A: cmp r4, #0x2 bne _02022C7E cmp r0, #0x1 bne _02022C7E ldr r3, [sp, #0x10] ldr r1, [sp, #0xc] mov r2, #0xc add r4, r3, #0x0 mul r4, r2 add r0, sp, #0x30 ldr r0, [r0, r4] add r4, r1, #0x0 mul r4, r2 add r2, sp, #0x18 ldr r2, [r2, r4] cmp r0, r2 str r1, [sp, #0x0] add r1, sp, #0x2c bne _02022C6E add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022C6E: ldr r3, [sp, #0x8] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C7E: cmp r4, #0x1 bne _02022CBC cmp r0, #0x1 bne _02022CBC ldr r0, [sp, #0xc] ldr r2, [sp, #0x10] cmp r2, r0 bne _02022CBC add r3, r2, #0x0 mov r1, #0xc mul r3, r1 add r2, sp, #0x30 mul r1, r0 add r0, sp, #0x18 ldr r2, [r2, r3] ldr r0, [r0, r1] cmp r2, r0 beq _02022CA6 bl ErrorHandling _02022CA6: ldr r0, [sp, #0xc] add r1, sp, #0x2c str r0, [sp, #0x0] ldr r3, [sp, #0x10] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022CBC: ldr r1, [sp, #0x10] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 add r1, sp, #0x30 ldr r3, [r1, r2] ldr r1, [sp, #0xc] add r2, r1, #0x0 mul r2, r0 add r0, sp, #0x18 ldr r0, [r0, r2] cmp r3, r0 beq _02022CDA bl ErrorHandling _02022CDA: ldr r0, [sp, #0xc] add r1, sp, #0x2c str r0, [sp, #0x0] ldr r3, [sp, #0x10] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 mov r0, #0x2 add sp, #0x44 pop {r3-r6, pc} thumb_func_start FUN_02022CF0 FUN_02022CF0: ; 0x02022CF0 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020228A4 ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r1, r4, r1 bl FUN_020235EC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02022D08 FUN_02022D08: ; 0x02022D08 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02022D4C ; =0x00020464 mov r7, #0x85 mov r4, #0x0 add r6, r5, r0 lsl r7, r7, #0x2 _02022D16: ldr r0, _02022D50 ; =0x00020220 add r1, r5, r4 ldrb r0, [r1, r0] add r1, r6, #0x0 add r2, r5, r7 bl FUN_02022CF0 cmp r0, #0x0 bne _02022D2C mov r0, #0x0 pop {r3-r7, pc} _02022D2C: add r0, r5, #0x0 add r1, r5, r7 add r2, r4, #0x0 bl FUN_020228E0 cmp r0, #0x0 bne _02022D3E mov r0, #0x0 pop {r3-r7, pc} _02022D3E: add r4, r4, #0x1 add r6, #0xc cmp r4, #0x2 blt _02022D16 mov r0, #0x1 pop {r3-r7, pc} nop _02022D4C: .word 0x00020464 _02022D50: .word 0x00020220 thumb_func_start FUN_02022D54 FUN_02022D54: ; 0x02022D54 push {r4-r6, lr} add r3, r1, #0x0 ldr r1, _02022D90 ; =0x00020464 add r5, r0, #0x0 add r6, r2, #0x0 add r2, r5, r1 mov r1, #0xc mul r1, r3 add r4, r2, r1 mov r1, #0x85 lsl r1, r1, #0x2 add r1, r5, r1 add r2, r3, #0x0 bl FUN_02022968 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020228A4 mov r1, #0x85 lsl r1, r1, #0x2 add r2, r5, r1 ldr r1, [r4, #0x4] add r1, r2, r1 ldr r2, [r4, #0x8] sub r2, #0x14 bl FUN_02023668 pop {r4-r6, pc} nop _02022D90: .word 0x00020464 thumb_func_start FUN_02022D94 FUN_02022D94: ; 0x02022D94 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, _02022DC4 ; =0x00020464 add r3, r6, r0 mov r0, #0xc mul r0, r1 add r4, r3, r0 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] bl FUN_020228A4 mov r1, #0x2 lsl r1, r1, #0x8 add r2, r6, r1 ldr r1, [r4, #0x4] add r0, r5, r0 add r1, r2, r1 sub r0, #0x14 add r1, r1, r5 mov r2, #0x14 bl FUN_02023668 pop {r4-r6, pc} .balign 4 _02022DC4: .word 0x00020464 thumb_func_start FUN_02022DC8 FUN_02022DC8: ; 0x02022DC8 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, _02022DF8 ; =0x00020464 add r3, r6, r0 mov r0, #0xc mul r0, r1 add r4, r3, r0 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] bl FUN_020228A4 mov r1, #0x82 lsl r1, r1, #0x2 add r2, r6, r1 ldr r1, [r4, #0x4] add r0, r5, r0 add r1, r2, r1 sub r0, #0xc add r1, r1, r5 mov r2, #0x8 bl FUN_02023668 pop {r4-r6, pc} .balign 4 _02022DF8: .word 0x00020464 thumb_func_start FUN_02022DFC FUN_02022DFC: ; 0x02022DFC push {r3-r7, lr} ldr r7, _02022E70 ; =0x00020218 add r4, r1, #0x0 mov r12, r2 mov r1, #0x0 add r2, r0, #0x0 add r3, r4, #0x0 add r6, r7, #0x0 _02022E0C: ldr r5, _02022E70 ; =0x00020218 add r1, r1, #0x1 ldr r5, [r2, r5] str r5, [r3, #0x1c] ldr r5, [r2, r7] add r3, r3, #0x4 add r5, r5, #0x1 str r5, [r2, r6] add r2, r2, #0x4 cmp r1, #0x2 blt _02022E0C mov r1, #0x0 str r1, [r4, #0x14] mov r2, r12 str r1, [r4, #0x0] cmp r2, #0x2 bne _02022E58 ldr r2, [r0, #0xc] cmp r2, #0x0 beq _02022E4E mov r2, #0x1 str r2, [r4, #0x0] ldr r2, _02022E74 ; =0x00020214 ldr r3, [r0, r2] str r3, [r4, #0x18] ldr r3, [r0, r2] add r3, r3, #0x1 str r3, [r0, r2] str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x2 str r0, [r4, #0xc] b _02022E66 _02022E4E: str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x1 str r0, [r4, #0xc] b _02022E66 _02022E58: mov r0, r12 str r0, [r4, #0x4] mov r0, r12 str r0, [r4, #0x8] mov r0, r12 add r0, r0, #0x1 str r0, [r4, #0xc] _02022E66: mov r0, #0x1 bl FUN_02016444 pop {r3-r7, pc} nop _02022E70: .word 0x00020218 _02022E74: .word 0x00020214 thumb_func_start FUN_02022E78 FUN_02022E78: ; 0x02022E78 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x5 bhi _02022F78 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02022E90: ; jump table (using 16-bit offset) .short _02022E9C - _02022E90 - 2; case 0 .short _02022EC0 - _02022E90 - 2; case 1 .short _02022EDC - _02022E90 - 2; case 2 .short _02022F00 - _02022E90 - 2; case 3 .short _02022F2A - _02022E90 - 2; case 4 .short _02022F4E - _02022E90 - 2; case 5 _02022E9C: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022EAC mov r2, #0x1 b _02022EAE _02022EAC: mov r2, #0x0 _02022EAE: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022D54 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022EC0: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022ED6 mov r0, #0x3 pop {r3-r5, pc} _02022ED6: ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022EDC: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022EEC mov r2, #0x1 b _02022EEE _02022EEC: mov r2, #0x0 _02022EEE: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022DC8 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022F00: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022F16 mov r0, #0x3 pop {r3-r5, pc} _02022F16: ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] ldr r0, [r4, #0x8] add r1, r0, #0x1 ldr r0, [r4, #0xc] cmp r1, r0 bne _02022F2A mov r0, #0x1 pop {r3-r5, pc} _02022F2A: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022F3A mov r2, #0x1 b _02022F3C _02022F3A: mov r2, #0x0 _02022F3C: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022D94 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022F4E: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022F64 mov r0, #0x3 pop {r3-r5, pc} _02022F64: ldr r0, [r4, #0x8] add r1, r0, #0x1 str r1, [r4, #0x8] ldr r0, [r4, #0xc] cmp r1, r0 bne _02022F74 mov r0, #0x2 pop {r3-r5, pc} _02022F74: mov r0, #0x0 str r0, [r4, #0x14] _02022F78: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02022F7C: .word 0x00020220 thumb_func_start FUN_02022F80 FUN_02022F80: ; 0x02022F80 push {r3-r7, lr} add r3, r0, #0x0 add r0, r1, #0x0 cmp r2, #0x3 bne _02022FAA ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02022F96 ldr r2, [r0, #0x18] ldr r1, _02022FE4 ; =0x00020214 str r2, [r3, r1] _02022F96: ldr r1, _02022FE8 ; =0x00020218 mov r4, #0x0 _02022F9A: ldr r2, [r0, #0x1c] add r4, r4, #0x1 str r2, [r3, r1] add r0, r0, #0x4 add r3, r3, #0x4 cmp r4, #0x2 blt _02022F9A b _02022FDA _02022FAA: ldr r6, [r0, #0x4] ldr r1, [r0, #0xc] cmp r6, r1 bge _02022FD0 ldr r1, _02022FEC ; =0x00020220 mov r7, #0x1 add r2, r1, #0x0 _02022FB8: add r5, r3, r6 ldrb r4, [r5, r2] cmp r4, #0x0 bne _02022FC4 add r4, r7, #0x0 b _02022FC6 _02022FC4: mov r4, #0x0 _02022FC6: strb r4, [r5, r1] ldr r4, [r0, #0xc] add r6, r6, #0x1 cmp r6, r4 blt _02022FB8 _02022FD0: mov r0, #0x1 str r0, [r3, #0x4] mov r0, #0x0 str r0, [r3, #0x8] str r0, [r3, #0xc] _02022FDA: mov r0, #0x1 bl FUN_02016454 pop {r3-r7, pc} nop _02022FE4: .word 0x00020214 _02022FE8: .word 0x00020218 _02022FEC: .word 0x00020220 thumb_func_start FUN_02022FF0 FUN_02022FF0: ; 0x02022FF0 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02023000 ldr r2, [r4, #0x18] ldr r1, _0202303C ; =0x00020214 str r2, [r0, r1] _02023000: ldr r1, _02023040 ; =0x00020218 mov r3, #0x0 add r5, r4, #0x0 _02023006: ldr r2, [r5, #0x1c] add r3, r3, #0x1 str r2, [r0, r1] add r5, r5, #0x4 add r0, r0, #0x4 cmp r3, #0x2 blt _02023006 blx CARD_TryWaitBackupAsync cmp r0, #0x0 bne _02023034 blx CARD_CancelBackupAsync ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 blx CARD_UnlockBackup ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID _02023034: mov r0, #0x1 bl FUN_02016454 pop {r3-r5, pc} .balign 4 _0202303C: .word 0x00020214 _02023040: .word 0x00020218 thumb_func_start FUN_02023044 FUN_02023044: ; 0x02023044 push {r3-r6, lr} sub sp, #0x24 add r1, sp, #0x0 mov r2, #0x2 add r5, r0, #0x0 bl FUN_02022DFC add r6, sp, #0x0 _02023054: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02022E78 add r4, r0, #0x0 beq _02023054 cmp r4, #0x1 beq _02023054 add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 bl FUN_02022F80 add r0, r4, #0x0 add sp, #0x24 pop {r3-r6, pc} thumb_func_start FUN_02023074 FUN_02023074: ; 0x02023074 push {r4-r5, lr} sub sp, #0x14 add r4, r2, #0x0 ldr r2, _020230A8 ; =0x00020464 add r2, r0, r2 mov r0, #0xc mul r0, r1 add r5, r2, r0 add r0, sp, #0x0 mov r1, #0xff mov r2, #0x14 blx MI_CpuFill8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020228A4 ldr r1, [r5, #0x8] mov r2, #0x14 add r0, r1, r0 sub r0, #0x14 add r1, sp, #0x0 bl FUN_020235D0 add sp, #0x14 pop {r4-r5, pc} .balign 4 _020230A8: .word 0x00020464 thumb_func_start FUN_020230AC FUN_020230AC: ; 0x020230AC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020230DC ; =0x020EE6DC ldr r4, _020230E0 ; =0x020EE700 ldr r0, [r0, #0x0] cmp r5, r0 blt _020230BE bl ErrorHandling _020230BE: lsl r0, r5, #0x4 add r0, r4, r0 ldr r0, [r0, #0x8] blx r0 lsr r3, r0, #0x1f lsl r2, r0, #0x1e sub r2, r2, r3 mov r1, #0x1e ror r2, r1 add r2, r3, r2 mov r1, #0x4 sub r1, r1, r2 add r0, r0, r1 pop {r3-r5, pc} nop _020230DC: .word 0x020EE6DC _020230E0: .word 0x020EE700 thumb_func_start FUN_020230E4 FUN_020230E4: ; 0x020230E4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _02023158 ; =0x020EE6DC ldr r4, _0202315C ; =0x020EE700 ldr r0, [r0, #0x0] mov r7, #0x0 str r0, [sp, #0x0] cmp r0, #0x24 beq _020230FC bl ErrorHandling _020230FC: ldr r0, [sp, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _02023148 sub r0, r0, #0x1 str r0, [sp, #0x4] _02023108: ldr r0, [r4, #0x0] cmp r6, r0 beq _02023112 bl ErrorHandling _02023112: ldr r0, [r4, #0x0] str r0, [r5, #0x0] add r0, r6, #0x0 bl FUN_020230AC str r0, [r5, #0x4] str r7, [r5, #0x8] mov r0, #0x0 strh r0, [r5, #0xc] ldr r0, [r4, #0x4] strh r0, [r5, #0xe] ldr r0, [r5, #0x4] add r7, r7, r0 ldr r0, [sp, #0x4] cmp r6, r0 beq _0202313A ldr r1, [r4, #0x4] ldr r0, [r4, #0x14] cmp r1, r0 beq _0202313C _0202313A: add r7, #0x14 _0202313C: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r4, #0x10 add r5, #0x10 cmp r6, r0 blt _02023108 _02023148: mov r0, #0x2 lsl r0, r0, #0x10 cmp r7, r0 ble _02023154 bl ErrorHandling _02023154: add sp, #0x8 pop {r3-r7, pc} .balign 4 _02023158: .word 0x020EE6DC _0202315C: .word 0x020EE700 thumb_func_start FUN_02023160 FUN_02023160: ; 0x02023160 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] mov r12, r0 add r3, r0, #0x0 add r6, r0, #0x0 ldr r0, _020231EC ; =0x020EE6DC ldr r4, [sp, #0x0] ldr r7, [r0, #0x0] add r5, r1, #0x0 _02023178: add r2, r4, #0x0 strb r6, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x8] add r2, #0x8 b _02023190 _02023184: ldr r0, [r5, #0x4] ldr r1, [r2, #0x0] add r5, #0x10 add r0, r1, r0 str r0, [r2, #0x0] add r3, r3, #0x1 _02023190: ldrh r0, [r5, #0xe] cmp r6, r0 bne _0202319A cmp r3, r7 blt _02023184 _0202319A: ldr r0, [r4, #0x8] add r6, r6, #0x1 add r0, #0x14 str r0, [r4, #0x8] ldr r0, [sp, #0x4] strb r0, [r4, #0x1] mov r0, r12 str r0, [r4, #0x4] ldr r1, [r4, #0x8] ldr r0, _020231F0 ; =0x00000FFF add r0, r1, r0 lsr r0, r0, #0xc strb r0, [r4, #0x2] ldrb r1, [r4, #0x2] ldr r0, [sp, #0x4] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r4, #0x8] mov r1, r12 add r0, r1, r0 add r4, #0xc mov r12, r0 cmp r6, #0x2 blt _02023178 ldr r0, [sp, #0x0] ldrb r1, [r0, #0xd] ldrb r0, [r0, #0xe] add r1, r1, r0 ldr r0, [sp, #0x4] cmp r0, r1 beq _020231DC bl ErrorHandling _020231DC: ldr r0, [sp, #0x4] cmp r0, #0x20 ble _020231E6 bl ErrorHandling _020231E6: add sp, #0x8 pop {r3-r7, pc} nop _020231EC: .word 0x020EE6DC _020231F0: .word 0x00000FFF thumb_func_start FUN_020231F4 FUN_020231F4: ; 0x020231F4 push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 mov r2, #0x2 add r5, r1, #0x0 mov r0, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x10 ldr r4, _02023240 ; =0x020EE700 blx MIi_CpuClearFast ldr r0, _02023244 ; =0x020EE6DC mov r7, #0x0 ldr r0, [r0, #0x0] str r0, [sp, #0x0] cmp r0, #0x0 ble _0202323A _02023216: ldr r0, [r5, #0x8] ldr r2, [r5, #0x4] str r0, [sp, #0x4] ldr r1, [sp, #0x4] mov r0, #0x0 add r1, r6, r1 blx MIi_CpuClearFast ldr r0, [sp, #0x4] ldr r1, [r4, #0xc] add r0, r6, r0 blx r1 ldr r0, [sp, #0x0] add r7, r7, #0x1 add r5, #0x10 add r4, #0x10 cmp r7, r0 blt _02023216 _0202323A: add sp, #0x8 pop {r3-r7, pc} nop _02023240: .word 0x020EE700 _02023244: .word 0x020EE6DC thumb_func_start FUN_02023248 FUN_02023248: ; 0x02023248 push {r3-r5, lr} ldr r5, _0202326C ; =0x20060623 add r4, r1, r3 str r5, [r1, r3] ldr r5, _02023270 ; =0x000204A4 ldr r5, [r0, r5] add r0, #0x14 add r5, r5, #0x1 str r5, [r4, #0x4] str r3, [r4, #0x8] add r3, #0xe strh r2, [r4, #0xc] add r2, r3, #0x0 blx MATH_CalcCRC16CCITT strh r0, [r4, #0xe] pop {r3-r5, pc} nop _0202326C: .word 0x20060623 _02023270: .word 0x000204A4 thumb_func_start FUN_02023274 FUN_02023274: ; 0x02023274 push {r4-r6, lr} ldr r6, [r1, r3] ldr r5, _020232B0 ; =0x20060623 add r4, r1, r3 cmp r6, r5 beq _02023284 mov r0, #0x0 pop {r4-r6, pc} _02023284: ldr r5, [r4, #0x8] cmp r5, r3 beq _0202328E mov r0, #0x0 pop {r4-r6, pc} _0202328E: ldrh r5, [r4, #0xc] cmp r5, r2 beq _02023298 mov r0, #0x0 pop {r4-r6, pc} _02023298: add r3, #0xe add r0, #0x14 add r2, r3, #0x0 blx MATH_CalcCRC16CCITT ldrh r1, [r4, #0xe] cmp r1, r0 bne _020232AC mov r0, #0x1 pop {r4-r6, pc} _020232AC: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _020232B0: .word 0x20060623 thumb_func_start FUN_020232B4 FUN_020232B4: ; 0x020232B4 add r0, r0, r1 ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_020232BC FUN_020232BC: ; 0x020232BC push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02016444 ldr r0, _020233FC ; =0x020EE6D8 ldr r0, [r0, #0x0] cmp r5, r0 blt _020232D8 bl ErrorHandling _020232D8: ldr r1, _02023400 ; =0x020EE6E0 lsl r0, r5, #0x4 add r4, r1, r0 ldr r0, [r1, r0] cmp r0, r5 beq _020232E8 bl ErrorHandling _020232E8: ldr r0, [r4, #0x8] blx r0 str r0, [sp, #0x4] add r0, #0x10 str r0, [sp, #0x4] ldr r0, _02023404 ; =0x000204A0 ldr r0, [r7, r0] cmp r0, #0x1 ldr r0, [r4, #0x8] bne _0202336E blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _02023330 bl ErrorHandling _02023330: ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233DE bl ErrorHandling b _020233DE _0202336E: blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233A4 bl ErrorHandling _020233A4: ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233DE bl ErrorHandling _020233DE: ldr r0, [sp, #0x0] cmp r0, #0x1 bne _020233F0 mov r0, #0x1 bl FUN_02016454 add sp, #0x8 mov r0, #0x2 pop {r3-r7, pc} _020233F0: mov r0, #0x1 bl FUN_02016454 mov r0, #0x3 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020233FC: .word 0x020EE6D8 _02023400: .word 0x020EE6E0 _02023404: .word 0x000204A0 thumb_func_start FUN_02023408 FUN_02023408: ; 0x02023408 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 ldr r0, _02023564 ; =0x020EE6D8 add r7, r2, #0x0 ldr r0, [r0, #0x0] add r6, r1, #0x0 str r3, [sp, #0x0] cmp r7, r0 blt _02023420 bl ErrorHandling _02023420: ldr r1, _02023568 ; =0x020EE6E0 lsl r0, r7, #0x4 add r4, r1, r0 ldr r0, [r1, r0] cmp r0, r7 beq _02023430 bl ErrorHandling _02023430: ldr r0, [r4, #0x8] blx r0 str r0, [sp, #0x10] add r0, #0x10 str r0, [sp, #0x10] ldr r1, [sp, #0x10] add r0, r6, #0x0 bl FUN_02016998 add r6, r0, #0x0 ldr r0, [r4, #0x4] ldr r2, [sp, #0x10] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235EC ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02023274 str r0, [sp, #0xc] ldr r0, [r4, #0x8] blx r0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020232B4 str r0, [sp, #0x8] ldr r0, [r4, #0x4] ldr r2, [sp, #0x10] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235EC ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02023274 add r7, r0, #0x0 ldr r0, [r4, #0x8] blx r0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020232B4 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x1 str r1, [r0, #0x0] ldr r0, [sp, #0xc] cmp r0, #0x1 bne _020234CC cmp r7, #0x0 bne _020234CC ldr r0, _0202356C ; =0x000204A0 mov r1, #0x0 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _020234CC: ldr r0, [sp, #0xc] cmp r0, #0x0 bne _020234F6 cmp r7, #0x1 bne _020234F6 ldr r0, _0202356C ; =0x000204A0 mov r1, #0x1 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x4] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _020234F6: ldr r0, [sp, #0xc] cmp r0, #0x1 bne _0202354C cmp r7, #0x1 bne _0202354C ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] bl FUN_020229B8 mov r1, #0x0 mvn r1, r1 cmp r0, r1 ldr r0, _0202356C ; =0x000204A0 beq _0202352E mov r1, #0x0 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0202352E: mov r1, #0x1 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x4] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0202354C: ldr r0, [sp, #0x0] mov r1, #0x2 str r1, [r0, #0x0] ldr r0, _0202356C ; =0x000204A0 mov r1, #0x0 str r1, [r5, r0] add r0, r0, #0x4 str r1, [r5, r0] add r0, r6, #0x0 add sp, #0x14 pop {r4-r7, pc} nop _02023564: .word 0x020EE6D8 _02023568: .word 0x020EE6E0 _0202356C: .word 0x000204A0 thumb_func_start FUN_02023570 FUN_02023570: ; 0x02023570 push {r3-r5, lr} blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023584 bl ErrorHandling _02023584: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx CARD_LockBackup ldr r0, _020235C8 ; =0x00001302 blx CARD_IdentifyBackup cmp r0, #0x0 beq _0202359A ldr r5, _020235C8 ; =0x00001302 b _020235AA _0202359A: ldr r0, _020235CC ; =0x00001202 blx CARD_IdentifyBackup cmp r0, #0x0 beq _020235A8 ldr r5, _020235CC ; =0x00001202 b _020235AA _020235A8: mov r5, #0x0 _020235AA: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx CARD_UnlockBackup lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID cmp r5, #0x0 beq _020235C2 mov r0, #0x1 pop {r3-r5, pc} _020235C2: mov r0, #0x0 pop {r3-r5, pc} nop _020235C8: .word 0x00001302 _020235CC: .word 0x00001202 thumb_func_start FUN_020235D0 FUN_020235D0: ; 0x020235D0 push {r3-r5, lr} bl FUN_02023668 add r5, r0, #0x0 add r4, sp, #0x0 _020235DA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _020235DA ldr r0, [sp, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020235EC FUN_020235EC: ; 0x020235EC push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023608 bl ErrorHandling _02023608: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx CARD_LockBackup mov r3, #0x0 str r3, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 str r3, [sp, #0x10] blx CARDi_RequestStreamCommand blx CARD_WaitBackupAsync add r5, r0, #0x0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx CARD_UnlockBackup lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID cmp r5, #0x0 bne _02023652 ldr r0, _02023658 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0x1 bl FUN_02089D90 _02023652: add r0, r5, #0x0 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02023658: .word 0x021C59C8 thumb_func_start FUN_0202365C FUN_0202365C: ; 0x0202365C ldr r0, _02023664 ; =0x021C59C8 mov r1, #0x1 str r1, [r0, #0x4] bx lr .balign 4 _02023664: .word 0x021C59C8 thumb_func_start FUN_02023668 FUN_02023668: ; 0x02023668 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023684 bl ErrorHandling _02023684: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx CARD_LockBackup mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x6 str r1, [sp, #0x8] mov r1, #0x1 str r1, [sp, #0xc] add r1, sp, #0x14 mov r2, #0x4 add r3, r0, #0x0 str r0, [sp, #0x10] blx CARDi_RequestStreamCommand cmp r0, #0x0 bne _020236B2 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02023740 _020236B2: ldr r0, _020236DC ; =0x021C59C8 mov r1, #0x0 str r1, [r0, #0x4] str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x7 str r0, [sp, #0x8] mov r0, #0xa str r0, [sp, #0xc] mov r0, #0x2 str r0, [sp, #0x10] ldr r3, _020236E0 ; =FUN_0202365C add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 blx CARDi_RequestStreamCommand add r0, r4, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _020236DC: .word 0x021C59C8 _020236E0: .word FUN_0202365C thumb_func_start FUN_020236E4 FUN_020236E4: ; 0x020236E4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202373C ; =0x021C59C8 add r4, r1, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x1 bne _02023738 lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx CARD_UnlockBackup lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID blx CARD_GetResultCode cmp r0, #0x0 beq _02023714 cmp r0, #0x4 beq _0202371E cmp r0, #0x6 beq _02023728 b _0202371A _02023714: mov r0, #0x1 str r0, [r4, #0x0] b _02023734 _0202371A: bl ErrorHandling _0202371E: mov r1, #0x0 add r0, r5, #0x0 str r1, [r4, #0x0] bl FUN_02023740 _02023728: mov r0, #0x0 str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_02023740 _02023734: mov r0, #0x1 pop {r3-r5, pc} _02023738: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202373C: .word 0x021C59C8 thumb_func_start FUN_02023740 FUN_02023740: ; 0x02023740 push {r3-r5, lr} add r5, r0, #0x0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 add r4, r1, #0x0 blx CARD_UnlockBackup lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID ldr r0, _02023768 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0x1 add r1, r4, #0x0 bl FUN_0208A0B8 pop {r3-r5, pc} .balign 4 _02023768: .word 0x021C59C8 thumb_func_start FUN_0202376C FUN_0202376C: ; 0x0202376C mov r0, #0x5c bx lr thumb_func_start FUN_02023770 FUN_02023770: ; 0x02023770 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x5c blx MIi_CpuClearFast add r4, #0x10 add r0, r4, #0x0 bl FUN_02023840 pop {r4, pc} thumb_func_start FUN_02023788 FUN_02023788: ; 0x02023788 ldr r3, _02023790 ; =FUN_02022610 mov r1, #0x0 bx r3 nop _02023790: .word FUN_02022610 thumb_func_start FUN_02023794 FUN_02023794: ; 0x02023794 push {r3, lr} bl FUN_02023788 add r0, #0x10 pop {r3, pc} .balign 4 thumb_func_start FUN_020237A0 FUN_020237A0: ; 0x020237A0 push {r4, lr} sub sp, #0x50 add r4, r0, #0x0 blx OS_GetOwnerRtcOffset str r0, [r4, #0x0] add r0, r4, #0x0 add r0, #0x8 str r1, [r4, #0x4] blx OS_GetMacAddress add r0, sp, #0x0 blx OS_GetOwnerInfo add r0, sp, #0x0 ldrb r1, [r0, #0x2] strb r1, [r4, #0xe] ldrb r0, [r0, #0x3] strb r0, [r4, #0xf] add sp, #0x50 pop {r4, pc} .balign 4 thumb_func_start FUN_020237CC FUN_020237CC: ; 0x020237CC push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 blx OS_GetMacAddress mov r2, #0x0 add r3, sp, #0x0 _020237DC: add r0, r4, r2 ldrb r1, [r3, #0x0] ldrb r0, [r0, #0x8] cmp r1, r0 beq _020237EC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _020237EC: add r2, r2, #0x1 add r3, r3, #0x1 cmp r2, #0x6 blt _020237DC mov r0, #0x1 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_020237FC FUN_020237FC: ; 0x020237FC push {r4, lr} add r4, r0, #0x0 blx OS_GetOwnerRtcOffset ldr r3, [r4, #0x0] ldr r2, [r4, #0x4] eor r0, r3 eor r1, r2 orr r0, r1 bne _02023814 mov r0, #0x1 pop {r4, pc} _02023814: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02023818 FUN_02023818: ; 0x02023818 ldrb r0, [r0, #0xe] bx lr thumb_func_start FUN_0202381C FUN_0202381C: ; 0x0202381C ldrb r0, [r0, #0xf] bx lr thumb_func_start FUN_02023820 FUN_02023820: ; 0x02023820 add r0, #0x48 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023828 FUN_02023828: ; 0x02023828 add r0, #0x48 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023830 FUN_02023830: ; 0x02023830 ldr r0, [r0, #0x4c] bx lr thumb_func_start FUN_02023834 FUN_02023834: ; 0x02023834 ldr r2, [r0, #0x4c] cmp r2, #0x0 bne _0202383C str r1, [r0, #0x4c] _0202383C: bx lr .balign 4 thumb_func_start FUN_02023840 FUN_02023840: ; 0x02023840 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 add r1, r4, #0x0 str r0, [r4, #0x0] add r0, r4, #0x4 add r1, #0x14 bl FUN_0201265C add r0, r4, #0x4 blx RTC_ConvertDateToDay add r1, r4, #0x0 str r0, [r4, #0x20] add r0, r4, #0x4 add r1, #0x14 blx RTC_ConvertDateTimeToSecond str r0, [r4, #0x24] str r1, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] str r0, [r4, #0x30] str r0, [r4, #0x34] pop {r4, pc} .balign 4 thumb_func_start FUN_02023874 FUN_02023874: ; 0x02023874 ldr r0, [r0, #0x34] cmp r0, #0x0 beq _0202387E mov r0, #0x1 bx lr _0202387E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02023884 FUN_02023884: ; 0x02023884 mov r2, #0x5a ldr r3, [r0, #0x34] lsl r2, r2, #0x4 cmp r3, r2 bls _02023890 str r2, [r0, #0x34] _02023890: ldr r2, [r0, #0x34] cmp r2, r1 bhs _0202389C mov r1, #0x0 str r1, [r0, #0x34] bx lr _0202389C: sub r1, r2, r1 str r1, [r0, #0x34] bx lr .balign 4 thumb_func_start FUN_020238A4 FUN_020238A4: ; 0x020238A4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x4 add r1, r4, #0x0 str r0, [r4, #0x34] add r0, r4, #0x4 add r1, #0x14 bl FUN_0201265C add r0, r4, #0x4 blx RTC_ConvertDateToDay str r0, [r4, #0x20] pop {r4, pc} .balign 4 thumb_func_start FUN_020238C4 FUN_020238C4: ; 0x020238C4 mov r0, #0x2c bx lr thumb_func_start FUN_020238C8 FUN_020238C8: ; 0x020238C8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x2c blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02024F50 add r0, r4, #0x4 bl FUN_02023948 add r0, r4, #0x0 add r0, #0x24 bl FUN_02028910 add r4, #0x26 add r0, r4, #0x0 bl FUN_02029E48 pop {r4, pc} thumb_func_start FUN_020238F4 FUN_020238F4: ; 0x020238F4 push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, r0, #0x4 pop {r3, pc} thumb_func_start LoadPlayerDataAddress LoadPlayerDataAddress: ; 0x02023900 ldr r3, _02023908 ; =FUN_02022610 mov r1, #0x1 bx r3 nop _02023908: .word FUN_02022610 thumb_func_start FUN_0202390C FUN_0202390C: ; 0x0202390C push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, #0x24 pop {r3, pc} thumb_func_start FUN_02023918 FUN_02023918: ; 0x02023918 push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, #0x26 pop {r3, pc} thumb_func_start FUN_02023924 FUN_02023924: ; 0x02023924 mov r0, #0x20 bx lr thumb_func_start FUN_02023928 FUN_02023928: ; 0x02023928 push {r4, lr} mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02023948 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202393C FUN_0202393C: ; 0x0202393C ldr r3, _02023944 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop _02023944: .word MI_CpuCopy8 thumb_func_start FUN_02023948 FUN_02023948: ; 0x02023948 push {r4, lr} mov r1, #0x0 mov r2, #0x20 add r4, r0, #0x0 blx Call_FillMemWithValue mov r0, #0x2 strb r0, [r4, #0x19] pop {r4, pc} .balign 4 thumb_func_start FUN_0202395C FUN_0202395C: ; 0x0202395C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl StringLength cmp r0, #0x8 blt _02023970 bl ErrorHandling _02023970: add r0, r5, #0x0 add r1, r4, #0x0 bl StringCopy pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202397C FUN_0202397C: ; 0x0202397C ldr r3, _02023988 ; =FUN_02021EF0 add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x8 bx r3 .balign 4 _02023988: .word FUN_02021EF0 thumb_func_start FUN_0202398C FUN_0202398C: ; 0x0202398C bx lr .balign 4 thumb_func_start FUN_02023990 FUN_02023990: ; 0x02023990 ldr r3, _0202399C ; =FUN_02021E28 add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bx r3 nop _0202399C: .word FUN_02021E28 thumb_func_start FUN_020239A0 FUN_020239A0: ; 0x020239A0 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x8 bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023990 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020239B8 FUN_020239B8: ; 0x020239B8 str r1, [r0, #0x10] bx lr thumb_func_start FUN_020239BC FUN_020239BC: ; 0x020239BC ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_020239C0 FUN_020239C0: ; 0x020239C0 ldr r0, [r0, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_020239C8 FUN_020239C8: ; 0x020239C8 strb r1, [r0, #0x18] bx lr thumb_func_start FUN_020239CC FUN_020239CC: ; 0x020239CC ldrb r0, [r0, #0x18] bx lr thumb_func_start FUN_020239D0 FUN_020239D0: ; 0x020239D0 ldrb r3, [r0, #0x1a] mov r0, #0x1 add r2, r0, #0x0 lsl r2, r1 add r1, r3, #0x0 tst r1, r2 bne _020239E0 mov r0, #0x0 _020239E0: bx lr .balign 4 thumb_func_start FUN_020239E4 FUN_020239E4: ; 0x020239E4 ldrb r3, [r0, #0x1a] mov r2, #0x1 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r0, #0x1a] bx lr .balign 4 thumb_func_start FUN_020239F4 FUN_020239F4: ; 0x020239F4 ldrb r3, [r0, #0x1a] mov r2, #0x0 cmp r3, #0x0 beq _02023A0A mov r0, #0x1 _020239FE: add r1, r3, #0x0 tst r1, r0 beq _02023A06 add r2, r2, #0x1 _02023A06: lsr r3, r3, #0x1 bne _020239FE _02023A0A: add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02023A10 FUN_02023A10: ; 0x02023A10 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_02023A14 FUN_02023A14: ; 0x02023A14 ldr r2, _02023A24 ; =0x000F423F cmp r1, r2 bls _02023A1C add r1, r2, #0x0 _02023A1C: str r1, [r0, #0x14] add r0, r1, #0x0 bx lr nop _02023A24: .word 0x000F423F thumb_func_start FUN_02023A28 FUN_02023A28: ; 0x02023A28 ldrb r0, [r0, #0x1b] bx lr thumb_func_start FUN_02023A2C FUN_02023A2C: ; 0x02023A2C strb r1, [r0, #0x1b] bx lr thumb_func_start FUN_02023A30 FUN_02023A30: ; 0x02023A30 ldr r2, _02023A50 ; =0x000F423F cmp r1, r2 bls _02023A3A str r2, [r0, #0x14] b _02023A40 _02023A3A: ldr r2, [r0, #0x14] add r1, r2, r1 str r1, [r0, #0x14] _02023A40: ldr r2, [r0, #0x14] ldr r1, _02023A50 ; =0x000F423F cmp r2, r1 bls _02023A4A str r1, [r0, #0x14] _02023A4A: ldr r0, [r0, #0x14] bx lr nop _02023A50: .word 0x000F423F thumb_func_start FUN_02023A54 FUN_02023A54: ; 0x02023A54 ldr r2, [r0, #0x14] cmp r2, r1 bhs _02023A5E mov r1, #0x0 b _02023A60 _02023A5E: sub r1, r2, r1 _02023A60: str r1, [r0, #0x14] ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02023A68 FUN_02023A68: ; 0x02023A68 ldrb r0, [r0, #0x1c] bx lr thumb_func_start FUN_02023A6C FUN_02023A6C: ; 0x02023A6C strb r1, [r0, #0x1c] bx lr thumb_func_start FUN_02023A70 FUN_02023A70: ; 0x02023A70 ldrb r0, [r0, #0x19] bx lr thumb_func_start FUN_02023A74 FUN_02023A74: ; 0x02023A74 strb r1, [r0, #0x19] bx lr thumb_func_start FUN_02023A78 FUN_02023A78: ; 0x02023A78 ldrb r2, [r0, #0x1d] mov r1, #0x1 bic r2, r1 mov r1, #0x1 orr r1, r2 strb r1, [r0, #0x1d] bx lr .balign 4 thumb_func_start FUN_02023A88 FUN_02023A88: ; 0x02023A88 ldrb r0, [r0, #0x1d] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02023A90 FUN_02023A90: ; 0x02023A90 ldrb r2, [r0, #0x1d] mov r1, #0x2 orr r1, r2 strb r1, [r0, #0x1d] bx lr .balign 4 thumb_func_start FUN_02023A9C FUN_02023A9C: ; 0x02023A9C ldrb r0, [r0, #0x1d] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02023AA4 FUN_02023AA4: ; 0x02023AA4 push {r3-r5, lr} mov r2, #0x7 add r5, r0, #0x0 add r4, r1, #0x0 bl StringNotEqualN cmp r0, #0x0 bne _02023AC0 ldr r1, [r5, #0x10] ldr r0, [r4, #0x10] cmp r1, r0 bne _02023AC0 mov r0, #0x1 pop {r3-r5, pc} _02023AC0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02023AC4 FUN_02023AC4: ; 0x02023AC4 mov r0, #0x20 bx lr thumb_func_start FUN_02023AC8 FUN_02023AC8: ; 0x02023AC8 mov r0, #0x20 bx lr thumb_func_start FUN_02023ACC FUN_02023ACC: ; 0x02023ACC ldr r3, _02023AD4 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop _02023AD4: .word MI_CpuCopy8 thumb_func_start FUN_02023AD8 FUN_02023AD8: ; 0x02023AD8 ldr r3, _02023AE0 ; =Call_FillMemWithValue mov r1, #0x0 mov r2, #0x20 bx r3 .balign 4 _02023AE0: .word Call_FillMemWithValue thumb_func_start FUN_02023AE4 FUN_02023AE4: ; 0x02023AE4 ldr r3, _02023AF0 ; =FUN_02021E8C add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xc bx r3 .balign 4 _02023AF0: .word FUN_02021E8C thumb_func_start FUN_02023AF4 FUN_02023AF4: ; 0x02023AF4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x18 bl FUN_020219F4 add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_02021E28 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023B0C FUN_02023B0C: ; 0x02023B0C mov r2, #0x0 cmp r1, #0xc bhi _02023B9E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02023B1E: ; jump table (using 16-bit offset) .short _02023B9E - _02023B1E - 2; case 0 .short _02023B38 - _02023B1E - 2; case 1 .short _02023B3C - _02023B1E - 2; case 2 .short _02023B40 - _02023B1E - 2; case 3 .short _02023B44 - _02023B1E - 2; case 4 .short _02023B4C - _02023B1E - 2; case 5 .short _02023B52 - _02023B1E - 2; case 6 .short _02023B66 - _02023B1E - 2; case 7 .short _02023B6C - _02023B1E - 2; case 8 .short _02023B80 - _02023B1E - 2; case 9 .short _02023B88 - _02023B1E - 2; case 10 .short _02023B90 - _02023B1E - 2; case 11 .short _02023B98 - _02023B1E - 2; case 12 _02023B38: ldrb r2, [r0, #0x1a] b _02023B9E _02023B3C: ldrb r2, [r0, #0x1b] b _02023B9E _02023B40: ldrh r2, [r0, #0x18] b _02023B9E _02023B44: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1f lsr r2, r0, #0x1f b _02023B9E _02023B4C: mov r1, #0x1c ldrsb r2, [r0, r1] b _02023B9E _02023B52: mov r1, #0x1c ldrsb r0, [r0, r1] cmp r0, #0x0 ble _02023B5E mov r2, #0x1 b _02023B9E _02023B5E: bge _02023B9E add r2, r1, #0x0 sub r2, #0x1d b _02023B9E _02023B66: mov r1, #0x1d ldrsb r2, [r0, r1] b _02023B9E _02023B6C: mov r1, #0x1d ldrsb r0, [r0, r1] cmp r0, #0x0 ble _02023B78 mov r2, #0x1 b _02023B9E _02023B78: bge _02023B9E add r2, r1, #0x0 sub r2, #0x1e b _02023B9E _02023B80: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1c lsr r2, r0, #0x1f b _02023B9E _02023B88: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1d lsr r2, r0, #0x1f b _02023B9E _02023B90: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1e lsr r2, r0, #0x1f b _02023B9E _02023B98: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1b lsr r2, r0, #0x1f _02023B9E: add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02023BA4 FUN_02023BA4: ; 0x02023BA4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x1 blt _02023BB2 bl ErrorHandling _02023BB2: add r0, r4, #0x0 mov r1, #0xd bl FUN_02022610 add r4, r0, #0x0 lsl r5, r5, #0x5 add r0, r4, r5 mov r1, #0x1 bl FUN_02023B0C cmp r0, #0x0 beq _02023BCE add r0, r4, r5 pop {r3-r5, pc} _02023BCE: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023BD4 FUN_02023BD4: ; 0x02023BD4 push {r4, lr} add r4, r1, #0x0 mov r1, #0xd bl FUN_02022610 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02023ACC pop {r4, pc} thumb_func_start FUN_02023BE8 FUN_02023BE8: ; 0x02023BE8 push {r3, lr} cmp r1, #0x5 bhs _02023BF6 ldr r2, _02023C00 ; =0x02105BD4 lsl r0, r1, #0x5 add r0, r2, r0 pop {r3, pc} _02023BF6: mov r1, #0xd bl FUN_02022610 pop {r3, pc} nop _02023C00: .word 0x02105BD4 thumb_func_start FUN_02023C04 FUN_02023C04: ; 0x02023C04 push {r4-r6, lr} add r5, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x5 bhs _02023C2C ldr r2, _02023C3C ; =0x0000013A mov r0, #0x0 mov r1, #0x1a bl FUN_0200A86C add r5, #0x38 add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} _02023C2C: mov r1, #0x0 bl FUN_02023BA4 add r1, r4, #0x0 bl FUN_02023AE4 pop {r4-r6, pc} nop _02023C3C: .word 0x0000013A thumb_func_start FUN_02023C40 FUN_02023C40: ; 0x02023C40 mov r0, #0x1e lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02023C48 FUN_02023C48: ; 0x02023C48 push {r4, lr} mov r2, #0x1e add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx Call_FillMemWithValue add r0, r4, #0x0 bl FUN_020669A0 add r0, r4, #0x0 add r0, #0xec bl FUN_020669A0 mov r0, #0x76 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r0, #0x4 strb r1, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_02023C74 FUN_02023C74: ; 0x02023C74 mov r2, #0xec mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_02023C7C FUN_02023C7C: ; 0x02023C7C bx lr .balign 4 thumb_func_start FUN_02023C80 FUN_02023C80: ; 0x02023C80 add r0, #0x88 bx lr thumb_func_start FUN_02023C84 FUN_02023C84: ; 0x02023C84 add r0, #0xe8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023C8C FUN_02023C8C: ; 0x02023C8C bx lr .balign 4 thumb_func_start FUN_02023C90 FUN_02023C90: ; 0x02023C90 mov r1, #0x76 lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_02023C98 FUN_02023C98: ; 0x02023C98 mov r1, #0x77 lsl r1, r1, #0x2 ldrb r0, [r0, r1] bx lr thumb_func_start FUN_02023CA0 FUN_02023CA0: ; 0x02023CA0 add r0, #0xe8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023CA8 FUN_02023CA8: ; 0x02023CA8 add r2, r0, #0x0 add r2, #0xe8 ldr r2, [r2, #0x0] add r0, #0xe8 add r1, r2, r1 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023CB8 FUN_02023CB8: ; 0x02023CB8 mov r2, #0x76 lsl r2, r2, #0x2 str r1, [r0, r2] bx lr thumb_func_start FUN_02023CC0 FUN_02023CC0: ; 0x02023CC0 mov r2, #0x77 lsl r2, r2, #0x2 strb r1, [r0, r2] bx lr thumb_func_start FUN_02023CC8 FUN_02023CC8: ; 0x02023CC8 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0xc mov r2, #0x0 bl FUN_020672BC add r5, #0xec add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 bl FUN_020672BC cmp r4, r0 beq _02023CEA mov r0, #0x1 pop {r3-r5, pc} _02023CEA: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023CF0 FUN_02023CF0: ; 0x02023CF0 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0x1d _02023CF8: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _02023CF8 ldr r0, [r3, #0x0] str r0, [r4, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_02023D08 FUN_02023D08: ; 0x02023D08 push {r3-r4} mov r1, #0x0 add r2, r0, #0x0 add r4, r1, #0x0 _02023D10: add r1, r1, #0x1 strh r4, [r2, #0x38] add r2, r2, #0x2 cmp r1, #0x8 blt _02023D10 add r3, r0, #0x0 mov r2, #0x0 _02023D1E: add r1, r3, #0x0 add r1, #0x48 add r4, r4, #0x1 add r3, r3, #0x2 strh r2, [r1, #0x0] cmp r4, #0xb blt _02023D1E ldr r1, _02023D38 ; =0x0000FFFF strh r1, [r0, #0x38] add r0, #0x48 strh r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 _02023D38: .word 0x0000FFFF thumb_func_start FUN_02023D3C FUN_02023D3C: ; 0x02023D3C push {r4, lr} add r4, r0, #0x0 bl FUN_020669A0 add r0, r4, #0x0 mov r1, #0x0 add r0, #0xe8 add r4, #0x88 str r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_02023D08 pop {r4, pc} .balign 4 thumb_func_start FUN_02023D58 FUN_02023D58: ; 0x02023D58 ldr r3, _02023D60 ; =FUN_02022610 mov r1, #0x8 bx r3 nop _02023D60: .word FUN_02022610 thumb_func_start FUN_02023D64 FUN_02023D64: ; 0x02023D64 mov r0, #0x4f lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02023D6C FUN_02023D6C: ; 0x02023D6C push {r4, lr} mov r1, #0x4f lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02024378 add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_02023D80 FUN_02023D80: ; 0x02023D80 ldr r3, _02023D88 ; =MI_CpuCopy8 mov r2, #0x4f lsl r2, r2, #0x2 bx r3 .balign 4 _02023D88: .word MI_CpuCopy8 thumb_func_start FUN_02023D8C FUN_02023D8C: ; 0x02023D8C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02023DE8 ; =0x000001A6 add r4, r1, #0x0 cmp r4, r0 beq _02023DA2 add r0, r0, #0x1 cmp r4, r0 beq _02023DA2 bl ErrorHandling _02023DA2: lsl r1, r4, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023DB4 mov r0, #0x0 pop {r3-r5, pc} _02023DB4: ldr r0, _02023DE8 ; =0x000001A6 cmp r4, r0 bne _02023DBE sub r0, #0x9e b _02023DC0 _02023DBE: sub r0, #0x9d _02023DC0: add r0, r5, r0 ldrb r1, [r0, #0x0] mov r2, #0x1 add r0, r1, #0x0 tst r0, r2 bne _02023DCE mov r2, #0x0 _02023DCE: mov r0, #0x2 tst r0, r1 beq _02023DD8 mov r0, #0x1 b _02023DDA _02023DD8: mov r0, #0x0 _02023DDA: cmp r2, r0 bne _02023DE2 mov r0, #0x1 pop {r3-r5, pc} _02023DE2: mov r0, #0x2 pop {r3-r5, pc} nop _02023DE8: .word 0x000001A6 thumb_func_start FUN_02023DEC FUN_02023DEC: ; 0x02023DEC push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _02023E6C ; =0x000001A6 add r6, r1, #0x0 add r5, r2, #0x0 cmp r6, r0 beq _02023E04 add r0, r0, #0x1 cmp r6, r0 beq _02023E04 bl ErrorHandling _02023E04: lsl r1, r6, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023E16 mov r0, #0x0 pop {r3-r7, pc} _02023E16: ldr r0, _02023E6C ; =0x000001A6 cmp r6, r0 bne _02023E20 sub r0, #0x9e b _02023E22 _02023E20: sub r0, #0x9d _02023E22: add r4, r7, r0 add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_02023D8C mov r6, #0x0 cmp r0, #0x0 bls _02023E66 mov r1, #0x1 _02023E34: add r2, r6, #0x1 lsl r2, r2, #0x10 lsr r2, r2, #0x10 sub r2, r2, #0x1 lsl r2, r2, #0x10 lsr r3, r2, #0x10 add r7, r3, #0x0 mov r2, #0x7 asr r3, r3, #0x3 and r7, r2 add r2, r1, #0x0 ldrb r3, [r4, r3] lsl r2, r7 tst r2, r3 beq _02023E56 add r2, r1, #0x0 b _02023E58 _02023E56: mov r2, #0x0 _02023E58: cmp r2, r5 bne _02023E60 mov r0, #0x1 pop {r3-r7, pc} _02023E60: add r6, r6, #0x1 cmp r6, r0 blo _02023E34 _02023E66: mov r0, #0x0 pop {r3-r7, pc} nop _02023E6C: .word 0x000001A6 thumb_func_start FUN_02023E70 FUN_02023E70: ; 0x02023E70 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _02023F28 ; =0x000001A6 add r5, r1, #0x0 add r7, r2, #0x0 cmp r5, r0 beq _02023E88 add r0, r0, #0x1 cmp r5, r0 beq _02023E88 bl ErrorHandling _02023E88: lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02023DEC cmp r0, #0x0 bne _02023F26 ldr r0, _02023F28 ; =0x000001A6 cmp r5, r0 bne _02023EA2 sub r0, #0x9e b _02023EA4 _02023EA2: sub r0, #0x9d _02023EA4: add r4, r6, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02023D8C add r5, r0, #0x0 cmp r5, #0x2 bge _02023F26 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 lsl r0, r7, #0x18 lsr r0, r0, #0x18 cmp r0, #0x2 blo _02023EC6 bl ErrorHandling _02023EC6: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r2, r1, #0x0 mov r0, #0x7 and r2, r0 asr r1, r1, #0x3 mov r3, #0x1 lsl r3, r2 ldrb r0, [r4, r1] mvn r3, r3 and r0, r3 strb r0, [r4, r1] lsl r0, r7, #0x18 lsr r6, r0, #0x18 add r0, r6, #0x0 ldrb r3, [r4, r1] lsl r0, r2 orr r0, r3 strb r0, [r4, r1] cmp r5, #0x0 bne _02023F26 add r0, r5, #0x2 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r6, #0x2 blo _02023F00 bl ErrorHandling _02023F00: sub r0, r5, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x7 add r1, r2, #0x0 and r1, r0 asr r0, r2, #0x3 mov r2, #0x1 lsl r2, r1 ldrb r3, [r4, r0] mvn r2, r2 and r2, r3 strb r2, [r4, r0] add r2, r6, #0x0 ldrb r3, [r4, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r4, r0] _02023F26: pop {r3-r7, pc} .balign 4 _02023F28: .word 0x000001A6 thumb_func_start FUN_02023F2C FUN_02023F2C: ; 0x02023F2C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x67 add r4, r1, #0x0 lsl r0, r0, #0x2 cmp r4, r0 beq _02023F44 add r0, r0, #0x1 cmp r4, r0 beq _02023F44 bl ErrorHandling _02023F44: lsl r1, r4, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023F56 mov r0, #0x0 pop {r3-r5, pc} _02023F56: mov r0, #0x67 lsl r0, r0, #0x2 cmp r4, r0 bne _02023F62 sub r0, #0x92 b _02023F64 _02023F62: sub r0, #0x91 _02023F64: add r1, r5, r0 mov r0, #0x0 mov r3, #0x3 _02023F6A: lsl r2, r0, #0x10 lsr r5, r2, #0x10 asr r2, r5, #0x2 ldrb r4, [r1, r2] lsl r2, r5, #0x1e lsr r2, r2, #0x1d asr r4, r2 add r2, r4, #0x0 and r2, r3 cmp r2, #0x3 beq _02023F86 add r0, r0, #0x1 cmp r0, #0x3 blt _02023F6A _02023F86: pop {r3-r5, pc} thumb_func_start FUN_02023F88 FUN_02023F88: ; 0x02023F88 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x67 add r5, r1, #0x0 lsl r0, r0, #0x2 add r4, r2, #0x0 cmp r5, r0 beq _02023FA2 add r0, r0, #0x1 cmp r5, r0 beq _02023FA2 bl ErrorHandling _02023FA2: lsl r1, r5, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023FB4 mov r0, #0x0 pop {r4-r6, pc} _02023FB4: mov r0, #0x67 lsl r0, r0, #0x2 cmp r5, r0 bne _02023FC0 sub r0, #0x92 b _02023FC2 _02023FC0: sub r0, #0x91 _02023FC2: add r1, r6, r0 mov r0, #0x0 mov r3, #0x3 _02023FC8: lsl r2, r0, #0x10 lsr r6, r2, #0x10 asr r2, r6, #0x2 ldrb r5, [r1, r2] lsl r2, r6, #0x1e lsr r2, r2, #0x1d asr r5, r2 add r2, r5, #0x0 and r2, r3 cmp r2, r4 bne _02023FE2 mov r0, #0x1 pop {r4-r6, pc} _02023FE2: add r0, r0, #0x1 cmp r0, #0x3 blt _02023FC8 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02023FEC FUN_02023FEC: ; 0x02023FEC push {r3-r7, lr} add r6, r0, #0x0 mov r0, #0x67 add r5, r1, #0x0 lsl r0, r0, #0x2 add r7, r2, #0x0 cmp r5, r0 beq _02024006 add r0, r0, #0x1 cmp r5, r0 beq _02024006 bl ErrorHandling _02024006: lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02023F88 cmp r0, #0x0 bne _02024064 mov r0, #0x67 lsl r0, r0, #0x2 cmp r5, r0 bne _02024022 sub r0, #0x92 b _02024024 _02024022: sub r0, #0x91 _02024024: add r4, r6, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02023F2C add r5, r0, #0x0 cmp r5, #0x3 bge _02024064 lsl r0, r7, #0x18 lsr r0, r0, #0x18 cmp r0, #0x4 blo _02024040 bl ErrorHandling _02024040: lsl r0, r5, #0x10 lsr r2, r0, #0x10 lsl r0, r2, #0x1e lsr r1, r0, #0x1d asr r0, r2, #0x2 mov r2, #0x3 lsl r2, r1 ldrb r3, [r4, r0] mvn r2, r2 and r2, r3 strb r2, [r4, r0] lsl r2, r7, #0x18 lsr r2, r2, #0x18 ldrb r3, [r4, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r4, r0] _02024064: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02024068 FUN_02024068: ; 0x02024068 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0x4 blo _02024078 bl ErrorHandling _02024078: cmp r4, #0xf bls _02024080 bl ErrorHandling _02024080: cmp r6, #0x2 bhs _0202409E lsl r0, r6, #0x2 add r0, #0x18 mov r1, #0xf lsl r1, r0 ldr r2, [r5, #0x40] mvn r1, r1 and r2, r1 add r1, r4, #0x0 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 str r0, [r5, #0x40] pop {r4-r6, pc} _0202409E: sub r0, r6, #0x2 lsl r0, r0, #0x18 add r1, r5, #0x0 lsr r0, r0, #0x16 add r1, #0x80 ldr r2, [r1, #0x0] add r0, #0x18 mov r1, #0xf lsl r1, r0 mvn r1, r1 and r2, r1 add r1, r5, #0x0 add r1, #0x80 str r2, [r1, #0x0] add r1, r5, #0x0 add r1, #0x80 ldr r2, [r1, #0x0] add r1, r4, #0x0 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 add r5, #0x80 str r0, [r5, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020240D0 FUN_020240D0: ; 0x020240D0 push {r3-r6} mov r3, #0xf mov r1, #0x0 add r4, r3, #0x0 _020240D8: lsl r2, r1, #0x18 lsr r6, r2, #0x18 cmp r6, #0x2 bhs _020240EE lsl r2, r6, #0x2 ldr r5, [r0, #0x40] add r2, #0x18 lsr r5, r2 add r2, r5, #0x0 and r2, r4 b _02024102 _020240EE: add r2, r0, #0x0 add r2, #0x80 ldr r5, [r2, #0x0] sub r2, r6, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x16 add r2, #0x18 lsr r5, r2 add r2, r5, #0x0 and r2, r3 _02024102: cmp r2, #0xf beq _0202410C add r1, r1, #0x1 cmp r1, #0x4 blt _020240D8 _0202410C: add r0, r1, #0x0 pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02024114 FUN_02024114: ; 0x02024114 push {r4-r7} mov r2, #0xf mov r6, #0x0 add r3, r2, #0x0 _0202411C: lsl r4, r6, #0x18 lsr r5, r4, #0x18 cmp r5, #0x2 bhs _02024134 ldr r7, [r0, #0x40] lsl r4, r5, #0x2 add r4, #0x18 add r5, r7, #0x0 lsr r5, r4 add r4, r5, #0x0 and r4, r3 b _02024146 _02024134: add r4, r0, #0x0 sub r5, r5, #0x2 add r4, #0x80 lsl r5, r5, #0x18 lsr r5, r5, #0x16 ldr r4, [r4, #0x0] add r5, #0x18 lsr r4, r5 and r4, r2 _02024146: cmp r1, r4 bne _02024150 mov r0, #0x1 pop {r4-r7} bx lr _02024150: add r6, r6, #0x1 cmp r6, #0x4 blt _0202411C mov r0, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_0202415C FUN_0202415C: ; 0x0202415C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, _02024198 ; =0x00000182 cmp r6, r0 bne _02024196 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024114 cmp r0, #0x0 bne _02024196 add r0, r5, #0x0 bl FUN_020240D0 add r2, r0, #0x0 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x18 bl FUN_02024068 _02024196: pop {r4-r6, pc} .balign 4 _02024198: .word 0x00000182 thumb_func_start FUN_0202419C FUN_0202419C: ; 0x0202419C push {r4-r6, lr} add r5, r0, #0x0 mov r4, #0x0 mov r6, #0xf _020241A4: lsl r2, r4, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02024068 add r4, r4, #0x1 cmp r4, #0x4 blt _020241A4 pop {r4-r6, pc} thumb_func_start FUN_020241B8 FUN_020241B8: ; 0x020241B8 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xc9 bne _02024210 add r0, r2, #0x0 bl FUN_020690CC lsl r1, r0, #0x18 lsr r3, r1, #0x18 mov r1, #0x43 mov r4, #0x0 add r6, r5, #0x0 lsl r1, r1, #0x2 _020241D4: ldrb r2, [r6, r1] cmp r3, r2 bne _020241DE mov r1, #0x1 b _020241E8 _020241DE: add r4, r4, #0x1 add r6, r6, #0x1 cmp r4, #0x1c blt _020241D4 mov r1, #0x0 _020241E8: cmp r1, #0x0 bne _02024290 mov r1, #0x43 mov r3, #0x0 add r4, r5, #0x0 lsl r1, r1, #0x2 _020241F4: ldrb r2, [r4, r1] cmp r2, #0xff beq _02024202 add r3, r3, #0x1 add r4, r4, #0x1 cmp r3, #0x1c blt _020241F4 _02024202: cmp r3, #0x1c bge _02024290 mov r1, #0x43 add r2, r5, r3 lsl r1, r1, #0x2 strb r0, [r2, r1] pop {r4-r6, pc} _02024210: mov r6, #0x67 lsl r6, r6, #0x2 cmp r4, r6 bne _0202422E add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023FEC pop {r4-r6, pc} _0202422E: add r3, r6, #0x1 cmp r4, r3 bne _0202424A add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023FEC pop {r4-r6, pc} _0202424A: add r3, r6, #0x0 add r3, #0xa cmp r4, r3 bne _02024268 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023E70 pop {r4-r6, pc} _02024268: add r3, r6, #0x0 add r3, #0xb cmp r4, r3 bne _02024286 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023E70 pop {r4-r6, pc} _02024286: sub r6, #0x1a cmp r4, r6 bne _02024290 bl FUN_0202415C _02024290: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02024294 FUN_02024294: ; 0x02024294 push {r4-r6, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r0, r1, #0x0 bl FUN_02087A50 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02087A1C cmp r4, #0xe beq _020242C0 cmp r0, #0x6 beq _020242C0 ldr r1, _020242C4 ; =0x00000129 add r3, r5, r1 ldrb r2, [r3, r4] mov r1, #0x1 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 strb r0, [r3, r4] _020242C0: pop {r4-r6, pc} nop _020242C4: .word 0x00000129 thumb_func_start FUN_020242C8 FUN_020242C8: ; 0x020242C8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x12 add r4, r2, #0x0 bl FUN_02068678 cmp r0, #0xff bne _020242EA cmp r4, #0x0 bne _020242E4 mov r0, #0x2 pop {r4-r6, pc} _020242E4: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _020242EA: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r1, #0x1 mov r0, #0x7 add r3, r2, #0x0 and r3, r0 add r0, r1, #0x0 lsl r0, r3 asr r3, r2, #0x3 add r3, r5, r3 add r3, #0x84 ldrb r3, [r3, #0x0] tst r0, r3 bne _0202430A mov r1, #0x0 _0202430A: lsl r0, r1, #0x18 lsr r1, r0, #0x18 cmp r4, #0x1 bne _0202433A add r4, r2, #0x0 asr r2, r2, #0x3 add r2, r5, r2 mov r0, #0x7 add r2, #0xc4 mov r3, #0x1 and r4, r0 add r0, r3, #0x0 ldrb r2, [r2, #0x0] lsl r0, r4 tst r0, r2 bne _0202432C mov r3, #0x0 _0202432C: lsl r0, r3, #0x18 lsr r0, r0, #0x18 cmp r0, r1 bne _0202433C mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _0202433A: add r0, r1, #0x0 _0202433C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02024340 FUN_02024340: ; 0x02024340 push {r4-r5} mov r3, #0x0 ldr r5, _02024360 ; =0x020EE942 mov r4, #0x1 add r1, r3, #0x0 _0202434A: ldrh r2, [r5, #0x0] cmp r0, r2 bne _02024352 add r4, r1, #0x0 _02024352: add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, #0xb blt _0202434A add r0, r4, #0x0 pop {r4-r5} bx lr .balign 4 _02024360: .word 0x020EE942 thumb_func_start FUN_02024364 FUN_02024364: ; 0x02024364 ldr r1, _02024374 ; =0x000001EA mov r2, #0x1 cmp r0, r1 bne _0202436E mov r2, #0x0 _0202436E: add r0, r2, #0x0 bx lr nop _02024374: .word 0x000001EA thumb_func_start FUN_02024378 FUN_02024378: ; 0x02024378 push {r4, lr} mov r2, #0x4f mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx Call_FillMemWithValue ldr r0, _020243C0 ; =0xBEEFCAFE mov r1, #0x0 str r0, [r4, #0x0] ldr r0, _020243C4 ; =0x00000139 mov r2, #0x1c strb r1, [r4, r0] sub r0, #0x2d add r0, r4, r0 mov r1, #0xff blx Call_FillMemWithValue mov r1, #0xff add r0, r1, #0x0 add r0, #0x9 strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xa strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xb strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xc strb r1, [r4, r0] add r0, r4, #0x0 bl FUN_0202419C pop {r4, pc} nop _020243C0: .word 0xBEEFCAFE _020243C4: .word 0x00000139 thumb_func_start FUN_020243C8 FUN_020243C8: ; 0x020243C8 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _020243FC ; =0xBEEFCAFE cmp r1, r0 beq _020243D8 bl ErrorHandling _020243D8: ldr r7, _02024400 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _020243DE: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _020243EE add r5, r5, #0x1 _020243EE: add r4, r4, #0x1 cmp r4, r7 ble _020243DE lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _020243FC: .word 0xBEEFCAFE _02024400: .word 0x000001ED thumb_func_start FUN_02024404 FUN_02024404: ; 0x02024404 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _02024438 ; =0xBEEFCAFE cmp r1, r0 beq _02024414 bl ErrorHandling _02024414: ldr r7, _0202443C ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _0202441A: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _0202442A add r5, r5, #0x1 _0202442A: add r4, r4, #0x1 cmp r4, r7 ble _0202441A lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _02024438: .word 0xBEEFCAFE _0202443C: .word 0x000001ED thumb_func_start FUN_02024440 FUN_02024440: ; 0x02024440 push {r4, lr} add r4, r0, #0x0 bl FUN_02024CA4 cmp r0, #0x0 beq _02024454 add r0, r4, #0x0 bl FUN_02024404 pop {r4, pc} _02024454: add r0, r4, #0x0 bl FUN_020244A4 pop {r4, pc} thumb_func_start FUN_0202445C FUN_0202445C: ; 0x0202445C push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _0202449C ; =0xBEEFCAFE cmp r1, r0 beq _0202446C bl ErrorHandling _0202446C: ldr r7, _020244A0 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _02024472: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _0202448E lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _0202448E add r5, r5, #0x1 _0202448E: add r4, r4, #0x1 cmp r4, r7 ble _02024472 lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _0202449C: .word 0xBEEFCAFE _020244A0: .word 0x000001ED thumb_func_start FUN_020244A4 FUN_020244A4: ; 0x020244A4 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _020244E4 ; =0xBEEFCAFE cmp r1, r0 beq _020244B4 bl ErrorHandling _020244B4: ldr r7, _020244E8 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _020244BA: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _020244D6 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _020244D6 add r5, r5, #0x1 _020244D6: add r4, r4, #0x1 cmp r4, r7 ble _020244BA lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _020244E4: .word 0xBEEFCAFE _020244E8: .word 0x000001ED thumb_func_start FUN_020244EC FUN_020244EC: ; 0x020244EC push {r3, lr} bl FUN_02024518 ldr r1, _02024500 ; =0x000001E2 cmp r0, r1 blo _020244FC mov r0, #0x1 pop {r3, pc} _020244FC: mov r0, #0x0 pop {r3, pc} .balign 4 _02024500: .word 0x000001E2 thumb_func_start FUN_02024504 FUN_02024504: ; 0x02024504 push {r3, lr} bl FUN_02024550 cmp r0, #0x96 blo _02024512 mov r0, #0x1 pop {r3, pc} _02024512: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02024518 FUN_02024518: ; 0x02024518 push {r3-r7, lr} ldr r7, _0202454C ; =0x000001ED add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _02024522: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _02024542 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02024340 cmp r0, #0x1 bne _02024542 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02024542: add r4, r4, #0x1 cmp r4, r7 ble _02024522 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _0202454C: .word 0x000001ED thumb_func_start FUN_02024550 FUN_02024550: ; 0x02024550 push {r3-r7, lr} ldr r7, _02024590 ; =0x000001ED add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _0202455A: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _02024586 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _02024586 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02024364 cmp r0, #0x1 bne _02024586 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02024586: add r4, r4, #0x1 cmp r4, r7 ble _0202455A add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _02024590: .word 0x000001ED thumb_func_start FUN_02024594 FUN_02024594: ; 0x02024594 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020245E8 ; =0xBEEFCAFE cmp r1, r0 beq _020245A6 bl ErrorHandling _020245A6: cmp r4, #0x0 beq _020245B0 ldr r0, _020245EC ; =0x000001ED cmp r4, r0 bls _020245B8 _020245B0: bl ErrorHandling mov r0, #0x1 b _020245BA _020245B8: mov r0, #0x0 _020245BA: cmp r0, #0x0 beq _020245C2 mov r0, #0x0 pop {r3-r5, pc} _020245C2: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 ldrb r1, [r2, #0x4] tst r1, r3 beq _020245E4 add r2, #0x44 ldrb r1, [r2, #0x0] tst r1, r3 bne _020245E6 _020245E4: mov r0, #0x0 _020245E6: pop {r3-r5, pc} .balign 4 _020245E8: .word 0xBEEFCAFE _020245EC: .word 0x000001ED thumb_func_start FUN_020245F0 FUN_020245F0: ; 0x020245F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024640 ; =0xBEEFCAFE cmp r1, r0 beq _02024602 bl ErrorHandling _02024602: cmp r4, #0x0 beq _0202460C ldr r0, _02024644 ; =0x000001ED cmp r4, r0 bls _02024614 _0202460C: bl ErrorHandling mov r0, #0x1 b _02024616 _02024614: mov r0, #0x0 _02024616: cmp r0, #0x0 beq _0202461E mov r0, #0x0 pop {r3-r5, pc} _0202461E: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r3, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r3 add r2, r0, #0x0 lsl r2, r1 asr r1, r3, #0x3 add r1, r5, r1 add r1, #0x44 ldrb r1, [r1, #0x0] tst r1, r2 bne _0202463C mov r0, #0x0 _0202463C: pop {r3-r5, pc} nop _02024640: .word 0xBEEFCAFE _02024644: .word 0x000001ED thumb_func_start FUN_02024648 FUN_02024648: ; 0x02024648 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024670 ; =0xBEEFCAFE cmp r1, r0 beq _0202465A bl ErrorHandling _0202465A: cmp r4, #0x0 bne _02024666 mov r0, #0x41 lsl r0, r0, #0x2 ldr r6, [r5, r0] b _0202466A _02024666: bl ErrorHandling _0202466A: add r0, r6, #0x0 pop {r4-r6, pc} nop _02024670: .word 0xBEEFCAFE thumb_func_start FUN_02024674 FUN_02024674: ; 0x02024674 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020246D4 ; =0xBEEFCAFE add r6, r2, #0x0 cmp r1, r0 beq _02024688 bl ErrorHandling _02024688: cmp r4, #0x0 beq _02024692 ldr r0, _020246D8 ; =0x000001ED cmp r4, r0 bls _0202469A _02024692: bl ErrorHandling mov r0, #0x1 b _0202469C _0202469A: mov r0, #0x0 _0202469C: cmp r0, #0x0 beq _020246A6 mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _020246A6: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 add r3, r2, #0x0 asr r2, r2, #0x3 add r2, r5, r2 mov r0, #0x7 add r2, #0x44 mov r1, #0x1 and r3, r0 ldrb r2, [r2, #0x0] lsl r1, r3 tst r1, r2 beq _020246CE add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020242C8 pop {r4-r6, pc} _020246CE: sub r0, #0x8 pop {r4-r6, pc} nop _020246D4: .word 0xBEEFCAFE _020246D8: .word 0x000001ED thumb_func_start FUN_020246DC FUN_020246DC: ; 0x020246DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024718 ; =0xBEEFCAFE cmp r1, r0 beq _020246EE bl ErrorHandling _020246EE: mov r0, #0x43 mov r2, #0x0 lsl r0, r0, #0x2 _020246F4: add r1, r5, r2 ldrb r1, [r1, r0] cmp r1, #0xff beq _02024702 add r2, r2, #0x1 cmp r2, #0x1c blt _020246F4 _02024702: cmp r2, r4 bgt _0202470C mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0202470C: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] pop {r3-r5, pc} nop _02024718: .word 0xBEEFCAFE thumb_func_start FUN_0202471C FUN_0202471C: ; 0x0202471C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024744 ; =0xBEEFCAFE cmp r1, r0 beq _0202472C bl ErrorHandling _0202472C: mov r1, #0x43 mov r0, #0x0 lsl r1, r1, #0x2 _02024732: add r2, r4, r0 ldrb r2, [r2, r1] cmp r2, #0xff beq _02024740 add r0, r0, #0x1 cmp r0, #0x1c blt _02024732 _02024740: pop {r4, pc} nop _02024744: .word 0xBEEFCAFE thumb_func_start FUN_02024748 FUN_02024748: ; 0x02024748 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202479C ; =0xBEEFCAFE cmp r1, r0 beq _0202475A bl ErrorHandling _0202475A: ldr r1, _020247A0 ; =0x000001A6 add r0, r5, #0x0 bl FUN_02023D8C cmp r0, r4 bgt _0202476C mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0202476C: cmp r4, #0x2 blt _02024774 bl ErrorHandling _02024774: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 mov r1, #0x42 lsl r1, r1, #0x2 ldrb r1, [r2, r1] tst r1, r3 bne _0202479A mov r0, #0x0 _0202479A: pop {r3-r5, pc} .balign 4 _0202479C: .word 0xBEEFCAFE _020247A0: .word 0x000001A6 thumb_func_start FUN_020247A4 FUN_020247A4: ; 0x020247A4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020247C0 ; =0xBEEFCAFE cmp r1, r0 beq _020247B4 bl ErrorHandling _020247B4: ldr r1, _020247C4 ; =0x000001A6 add r0, r4, #0x0 bl FUN_02023D8C pop {r4, pc} nop _020247C0: .word 0xBEEFCAFE _020247C4: .word 0x000001A6 thumb_func_start FUN_020247C8 FUN_020247C8: ; 0x020247C8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202481C ; =0xBEEFCAFE cmp r1, r0 beq _020247DA bl ErrorHandling _020247DA: ldr r1, _02024820 ; =0x000001A7 add r0, r5, #0x0 bl FUN_02023D8C cmp r0, r4 bgt _020247EC mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _020247EC: cmp r4, #0x2 blt _020247F4 bl ErrorHandling _020247F4: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 ldr r1, _02024824 ; =0x00000109 ldrb r1, [r2, r1] tst r1, r3 bne _02024818 mov r0, #0x0 _02024818: pop {r3-r5, pc} nop _0202481C: .word 0xBEEFCAFE _02024820: .word 0x000001A7 _02024824: .word 0x00000109 thumb_func_start FUN_02024828 FUN_02024828: ; 0x02024828 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024844 ; =0xBEEFCAFE cmp r1, r0 beq _02024838 bl ErrorHandling _02024838: ldr r1, _02024848 ; =0x000001A7 add r0, r4, #0x0 bl FUN_02023D8C pop {r4, pc} nop _02024844: .word 0xBEEFCAFE _02024848: .word 0x000001A7 thumb_func_start FUN_0202484C FUN_0202484C: ; 0x0202484C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024894 ; =0xBEEFCAFE cmp r1, r0 beq _0202485E bl ErrorHandling _0202485E: mov r1, #0x67 add r0, r5, #0x0 lsl r1, r1, #0x2 bl FUN_02023F2C cmp r0, r4 bgt _02024872 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _02024872: cmp r4, #0x3 blt _0202487A bl ErrorHandling _0202487A: lsl r0, r4, #0x10 lsr r2, r0, #0x10 asr r0, r2, #0x2 add r1, r5, r0 ldr r0, _02024898 ; =0x0000010A ldrb r1, [r1, r0] lsl r0, r2, #0x1e lsr r0, r0, #0x1d asr r1, r0 mov r0, #0x3 and r0, r1 pop {r3-r5, pc} nop _02024894: .word 0xBEEFCAFE _02024898: .word 0x0000010A thumb_func_start FUN_0202489C FUN_0202489C: ; 0x0202489C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020248B8 ; =0xBEEFCAFE cmp r1, r0 beq _020248AC bl ErrorHandling _020248AC: mov r1, #0x67 add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_02023F2C pop {r4, pc} .balign 4 _020248B8: .word 0xBEEFCAFE thumb_func_start FUN_020248BC FUN_020248BC: ; 0x020248BC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024900 ; =0xBEEFCAFE cmp r1, r0 beq _020248CE bl ErrorHandling _020248CE: ldr r1, _02024904 ; =0x0000019D add r0, r5, #0x0 bl FUN_02023F2C cmp r0, r4 bgt _020248E0 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _020248E0: cmp r4, #0x3 blt _020248E8 bl ErrorHandling _020248E8: lsl r0, r4, #0x10 lsr r2, r0, #0x10 asr r0, r2, #0x2 add r1, r5, r0 ldr r0, _02024908 ; =0x0000010B ldrb r1, [r1, r0] lsl r0, r2, #0x1e lsr r0, r0, #0x1d asr r1, r0 mov r0, #0x3 and r0, r1 pop {r3-r5, pc} .balign 4 _02024900: .word 0xBEEFCAFE _02024904: .word 0x0000019D _02024908: .word 0x0000010B thumb_func_start FUN_0202490C FUN_0202490C: ; 0x0202490C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024928 ; =0xBEEFCAFE cmp r1, r0 beq _0202491C bl ErrorHandling _0202491C: ldr r1, _0202492C ; =0x0000019D add r0, r4, #0x0 bl FUN_02023F2C pop {r4, pc} nop _02024928: .word 0xBEEFCAFE _0202492C: .word 0x0000019D thumb_func_start FUN_02024930 FUN_02024930: ; 0x02024930 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202496C ; =0xBEEFCAFE cmp r1, r0 beq _02024942 bl ErrorHandling _02024942: lsl r0, r4, #0x18 lsr r0, r0, #0x18 cmp r0, #0x2 bhs _02024958 lsl r0, r0, #0x2 ldr r1, [r5, #0x40] add r0, #0x18 lsr r1, r0 mov r0, #0xf and r0, r1 pop {r3-r5, pc} _02024958: add r5, #0x80 sub r0, r0, #0x2 lsl r0, r0, #0x18 ldr r1, [r5, #0x0] lsr r0, r0, #0x16 add r0, #0x18 lsr r1, r0 mov r0, #0xf and r0, r1 pop {r3-r5, pc} .balign 4 _0202496C: .word 0xBEEFCAFE thumb_func_start FUN_02024970 FUN_02024970: ; 0x02024970 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024988 ; =0xBEEFCAFE cmp r1, r0 beq _02024980 bl ErrorHandling _02024980: add r0, r4, #0x0 bl FUN_020240D0 pop {r4, pc} .balign 4 _02024988: .word 0xBEEFCAFE thumb_func_start FUN_0202498C FUN_0202498C: ; 0x0202498C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 bl FUN_020671BC add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020689E0 add r6, r0, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024AE4 ; =0xBEEFCAFE cmp r1, r0 beq _020249C4 bl ErrorHandling _020249C4: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _020249D0 ldr r1, _02024AE8 ; =0x000001ED cmp r0, r1 bls _020249D8 _020249D0: bl ErrorHandling mov r0, #0x1 b _020249DA _020249D8: mov r0, #0x0 _020249DA: cmp r0, #0x0 bne _02024ADE ldr r0, [sp, #0x4] mov r2, #0x1 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 mov r0, #0x7 and r0, r4 add r1, r2, #0x0 lsl r1, r0 asr r0, r4, #0x3 add r3, r5, r0 add r3, #0x44 ldrb r3, [r3, #0x0] tst r3, r1 bne _02024A70 ldr r1, _02024AEC ; =0x00000147 ldr r0, [sp, #0x4] cmp r0, r1 bne _02024A08 sub r1, #0x43 str r7, [r5, r1] _02024A08: lsl r0, r6, #0x18 lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A14 bl ErrorHandling _02024A14: cmp r6, #0x2 bne _02024A1A mov r6, #0x0 _02024A1A: cmp r6, #0x2 blo _02024A22 bl ErrorHandling _02024A22: add r2, r5, #0x0 mov r0, #0x7 add r3, r4, #0x0 and r3, r0 mov r0, #0x1 lsl r0, r3 add r2, #0xc4 asr r1, r4, #0x3 ldrb r7, [r2, r1] mvn r0, r0 and r0, r7 strb r0, [r2, r1] add r0, r6, #0x0 ldrb r7, [r2, r1] lsl r0, r3 orr r0, r7 strb r0, [r2, r1] cmp r6, #0x2 blo _02024A4C bl ErrorHandling _02024A4C: add r1, r5, #0x0 mov r0, #0x7 add r2, r4, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0x84 asr r0, r4, #0x3 ldrb r7, [r1, r0] mvn r3, r3 lsl r6, r2 and r3, r7 strb r3, [r1, r0] ldrb r3, [r1, r0] add r2, r3, #0x0 orr r2, r6 strb r2, [r1, r0] b _02024AC0 _02024A70: add r0, r5, r0 add r0, #0x84 ldrb r0, [r0, #0x0] tst r0, r1 bne _02024A7C mov r2, #0x0 _02024A7C: lsl r0, r2, #0x18 lsr r0, r0, #0x18 cmp r0, r6 beq _02024AC0 lsl r0, r6, #0x18 lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A90 bl ErrorHandling _02024A90: cmp r6, #0x2 bne _02024A96 mov r6, #0x0 _02024A96: cmp r6, #0x2 blo _02024A9E bl ErrorHandling _02024A9E: add r1, r5, #0x0 mov r0, #0x7 add r2, r4, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0xc4 asr r0, r4, #0x3 ldrb r7, [r1, r0] mvn r3, r3 lsl r6, r2 and r3, r7 strb r3, [r1, r0] ldrb r3, [r1, r0] add r2, r3, #0x0 orr r2, r6 strb r2, [r1, r0] _02024AC0: ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_020241B8 mov r1, #0x7 add r5, #0x44 asr r0, r4, #0x3 ldrb r3, [r5, r0] mov r2, #0x1 and r1, r4 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r5, r0] _02024ADE: add sp, #0x8 pop {r3-r7, pc} nop _02024AE4: .word 0xBEEFCAFE _02024AE8: .word 0x000001ED _02024AEC: .word 0x00000147 thumb_func_start FUN_02024AF0 FUN_02024AF0: ; 0x02024AF0 push {r4-r7, lr} sub sp, #0x14 add r4, r0, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] mov r1, #0xc mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 bl FUN_020671BC str r0, [sp, #0x4] ldr r0, [sp, #0x0] bl FUN_020689E0 add r7, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C78 ; =0xBEEFCAFE cmp r1, r0 beq _02024B32 bl ErrorHandling _02024B32: cmp r6, #0x0 beq _02024B3C ldr r0, _02024C7C ; =0x000001ED cmp r6, r0 bls _02024B44 _02024B3C: bl ErrorHandling mov r0, #0x1 b _02024B46 _02024B44: mov r0, #0x0 _02024B46: cmp r0, #0x0 beq _02024B4C b _02024C72 _02024B4C: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r5 add r2, r0, #0x0 asr r3, r5, #0x3 lsl r2, r1 add r1, r4, r3 add r1, #0x44 ldrb r1, [r1, #0x0] tst r1, r2 bne _02024BEA ldr r1, _02024C80 ; =0x00000147 cmp r6, r1 bne _02024B74 ldr r0, [sp, #0x4] sub r1, #0x43 str r0, [r4, r1] _02024B74: lsl r0, r7, #0x18 lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024B80 bl ErrorHandling _02024B80: cmp r7, #0x2 bne _02024B86 mov r7, #0x0 _02024B86: cmp r7, #0x2 blo _02024B8E bl ErrorHandling _02024B8E: mov r0, #0x7 and r0, r5 str r0, [sp, #0x10] add r0, r4, #0x0 add r0, #0xc4 asr r3, r5, #0x3 ldrb r1, [r0, r3] mov r2, #0x1 str r1, [sp, #0xc] ldr r1, [sp, #0x10] lsl r2, r1 ldr r1, [sp, #0xc] mvn r2, r2 and r1, r2 strb r1, [r0, r3] ldrb r1, [r0, r3] add r2, r7, #0x0 mov r12, r1 ldr r1, [sp, #0x10] lsl r2, r1 mov r1, r12 orr r1, r2 strb r1, [r0, r3] cmp r7, #0x2 blo _02024BC4 bl ErrorHandling _02024BC4: add r1, r4, #0x0 mov r0, #0x7 add r2, r5, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0x84 asr r0, r5, #0x3 ldrb r5, [r1, r0] mvn r3, r3 and r3, r5 strb r3, [r1, r0] add r5, r7, #0x0 ldrb r3, [r1, r0] lsl r5, r2 add r2, r3, #0x0 orr r2, r5 strb r2, [r1, r0] b _02024C3C _02024BEA: add r1, r4, r3 add r1, #0x84 ldrb r1, [r1, #0x0] tst r1, r2 bne _02024BF6 mov r0, #0x0 _02024BF6: lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r7 beq _02024C3C lsl r0, r7, #0x18 lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024C0A bl ErrorHandling _02024C0A: cmp r7, #0x2 bne _02024C10 mov r7, #0x0 _02024C10: cmp r7, #0x2 blo _02024C18 bl ErrorHandling _02024C18: add r1, r4, #0x0 mov r0, #0x7 add r2, r5, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0xc4 asr r0, r5, #0x3 ldrb r5, [r1, r0] mvn r3, r3 and r3, r5 strb r3, [r1, r0] add r5, r7, #0x0 ldrb r3, [r1, r0] lsl r5, r2 add r2, r3, #0x0 orr r2, r5 strb r2, [r1, r0] _02024C3C: ldr r2, [sp, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020241B8 ldr r2, [sp, #0x8] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02024294 sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r1, r4, #0x4 asr r0, r6, #0x3 mov r2, #0x7 ldrb r5, [r1, r0] mov r3, #0x1 and r2, r6 lsl r3, r2 add r2, r5, #0x0 orr r2, r3 add r4, #0x44 strb r2, [r1, r0] ldrb r1, [r4, r0] orr r1, r3 strb r1, [r4, r0] _02024C72: add sp, #0x14 pop {r4-r7, pc} nop _02024C78: .word 0xBEEFCAFE _02024C7C: .word 0x000001ED _02024C80: .word 0x00000147 thumb_func_start FUN_02024C84 FUN_02024C84: ; 0x02024C84 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C9C ; =0xBEEFCAFE cmp r1, r0 beq _02024C94 bl ErrorHandling _02024C94: ldr r0, _02024CA0 ; =0x00000139 mov r1, #0x1 strb r1, [r4, r0] pop {r4, pc} .balign 4 _02024C9C: .word 0xBEEFCAFE _02024CA0: .word 0x00000139 thumb_func_start FUN_02024CA4 FUN_02024CA4: ; 0x02024CA4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CBC ; =0xBEEFCAFE cmp r1, r0 beq _02024CB4 bl ErrorHandling _02024CB4: ldr r0, _02024CC0 ; =0x00000139 ldrb r0, [r4, r0] pop {r4, pc} nop _02024CBC: .word 0xBEEFCAFE _02024CC0: .word 0x00000139 thumb_func_start FUN_02024CC4 FUN_02024CC4: ; 0x02024CC4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CDC ; =0xBEEFCAFE cmp r1, r0 beq _02024CD4 bl ErrorHandling _02024CD4: mov r0, #0x4a lsl r0, r0, #0x2 ldrb r0, [r4, r0] pop {r4, pc} .balign 4 _02024CDC: .word 0xBEEFCAFE thumb_func_start FUN_02024CE0 FUN_02024CE0: ; 0x02024CE0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CFC ; =0xBEEFCAFE cmp r1, r0 beq _02024CF0 bl ErrorHandling _02024CF0: mov r0, #0x4a mov r1, #0x1 lsl r0, r0, #0x2 strb r1, [r4, r0] pop {r4, pc} nop _02024CFC: .word 0xBEEFCAFE thumb_func_start FUN_02024D00 FUN_02024D00: ; 0x02024D00 push {r4-r6, lr} add r6, r2, #0x0 add r4, r0, #0x0 add r5, r1, #0x0 cmp r6, #0x8 blo _02024D10 bl ErrorHandling _02024D10: ldr r1, [r4, #0x0] ldr r0, _02024D44 ; =0xBEEFCAFE cmp r1, r0 beq _02024D1C bl ErrorHandling _02024D1C: add r0, r5, #0x0 bl FUN_02087A50 add r5, r0, #0x0 cmp r5, #0xe bne _02024D2C mov r0, #0x0 pop {r4-r6, pc} _02024D2C: add r0, r6, #0x0 bl FUN_02087A1C mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02024D48 ; =0x00000129 add r1, r4, r5 ldrb r0, [r1, r0] and r0, r2 pop {r4-r6, pc} nop _02024D44: .word 0xBEEFCAFE _02024D48: .word 0x00000129 thumb_func_start FUN_02024D4C FUN_02024D4C: ; 0x02024D4C ldr r1, _02024D54 ; =0x00000137 mov r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _02024D54: .word 0x00000137 thumb_func_start FUN_02024D58 FUN_02024D58: ; 0x02024D58 ldr r1, _02024D60 ; =0x00000137 ldrb r0, [r0, r1] bx lr nop _02024D60: .word 0x00000137 thumb_func_start FUN_02024D64 FUN_02024D64: ; 0x02024D64 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024D7C ; =0xBEEFCAFE cmp r1, r0 beq _02024D74 bl ErrorHandling _02024D74: mov r0, #0x4e lsl r0, r0, #0x2 ldrb r0, [r4, r0] pop {r4, pc} .balign 4 _02024D7C: .word 0xBEEFCAFE thumb_func_start FUN_02024D80 FUN_02024D80: ; 0x02024D80 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024D9C ; =0xBEEFCAFE cmp r1, r0 beq _02024D90 bl ErrorHandling _02024D90: mov r0, #0x4e mov r1, #0x1 lsl r0, r0, #0x2 strb r1, [r4, r0] pop {r4, pc} nop _02024D9C: .word 0xBEEFCAFE thumb_func_start FUN_02024DA0 FUN_02024DA0: ; 0x02024DA0 ldr r3, _02024DA8 ; =FUN_02022610 mov r1, #0x7 bx r3 nop _02024DA8: .word FUN_02022610 thumb_func_start FUN_02024DAC FUN_02024DAC: ; 0x02024DAC push {r3-r5, lr} add r4, r2, #0x0 ldr r2, _02024E60 ; =0x0000019D add r5, r0, #0x0 cmp r1, r2 bgt _02024DD6 sub r3, r2, #0x1 cmp r1, r3 blt _02024DC6 beq _02024E24 cmp r1, r2 beq _02024E36 b _02024E5A _02024DC6: cmp r1, #0xc9 bgt _02024DCE beq _02024DEE b _02024E5A _02024DCE: sub r2, #0x1b cmp r1, r2 beq _02024E48 b _02024E5A _02024DD6: add r3, r2, #0x0 add r3, #0x9 cmp r1, r3 bgt _02024DE6 add r2, #0x9 cmp r1, r2 beq _02024E00 b _02024E5A _02024DE6: add r2, #0xa cmp r1, r2 beq _02024E12 b _02024E5A _02024DEE: bl FUN_0202471C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020246DC pop {r3-r5, pc} _02024E00: bl FUN_020247A4 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024748 pop {r3-r5, pc} _02024E12: bl FUN_02024828 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020247C8 pop {r3-r5, pc} _02024E24: bl FUN_0202489C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202484C pop {r3-r5, pc} _02024E36: bl FUN_0202490C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020248BC pop {r3-r5, pc} _02024E48: bl FUN_02024970 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024930 pop {r3-r5, pc} _02024E5A: mov r0, #0x0 pop {r3-r5, pc} nop _02024E60: .word 0x0000019D thumb_func_start FUN_02024E64 FUN_02024E64: ; 0x02024E64 ldr r0, _02024E68 ; =0x0000074C bx lr .balign 4 _02024E68: .word 0x0000074C thumb_func_start FUN_02024E6C FUN_02024E6C: ; 0x02024E6C push {r4, lr} add r4, r0, #0x0 ldr r2, _02024EA4 ; =0x0000074C mov r0, #0x0 add r1, r4, #0x0 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_020250A4 mov r0, #0x7 lsl r0, r0, #0x8 add r0, r4, r0 bl FUN_02025484 ldr r1, _02024EA8 ; =0x00000724 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0x8 blx MIi_CpuClear16 ldr r1, _02024EB0 ; =0x00000734 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0xb blx MIi_CpuClear16 pop {r4, pc} .balign 4 _02024EA4: .word 0x0000074C _02024EA8: .word 0x00000724 _02024EAC: .word 0x0000FFFF _02024EB0: .word 0x00000734 thumb_func_start FUN_02024EB4 FUN_02024EB4: ; 0x02024EB4 ldr r3, _02024EBC ; =FUN_02022610 mov r1, #0xa bx r3 nop _02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0 FUN_02024EC0: ; 0x02024EC0 ldr r3, _02024EC8 ; =0x02022635 mov r1, #0xa bx r3 nop _02024EC8: .word 0x02022635 thumb_func_start FUN_02024ECC FUN_02024ECC: ; 0x02024ECC ldr r3, _02024ED4 ; =FUN_02022610 mov r1, #0xa bx r3 nop _02024ED4: .word FUN_02022610 thumb_func_start FUN_02024ED8 FUN_02024ED8: ; 0x02024ED8 push {r3, lr} mov r1, #0xa bl FUN_02022610 mov r1, #0x7 lsl r1, r1, #0x8 add r0, r0, r1 pop {r3, pc} thumb_func_start FUN_02024EE8 FUN_02024EE8: ; 0x02024EE8 ldr r1, _02024EF0 ; =0x00000724 add r0, r0, r1 bx lr nop _02024EF0: .word 0x00000724 thumb_func_start FUN_02024EF4 FUN_02024EF4: ; 0x02024EF4 add r2, r0, #0x0 add r0, r1, #0x0 ldr r1, _02024F04 ; =0x00000724 ldr r3, _02024F08 ; =FUN_02021EF0 add r1, r2, r1 mov r2, #0x8 bx r3 nop _02024F04: .word 0x00000724 _02024F08: .word FUN_02021EF0 thumb_func_start FUN_02024F0C FUN_02024F0C: ; 0x02024F0C ldr r1, _02024F14 ; =0x00000734 add r0, r0, r1 bx lr nop _02024F14: .word 0x00000734 thumb_func_start FUN_02024F18 FUN_02024F18: ; 0x02024F18 add r2, r0, #0x0 add r0, r1, #0x0 ldr r1, _02024F28 ; =0x00000734 ldr r3, _02024F2C ; =FUN_02021EF0 add r1, r2, r1 mov r2, #0xb bx r3 nop _02024F28: .word 0x00000734 _02024F2C: .word FUN_02021EF0 thumb_func_start FUN_02024F30 FUN_02024F30: ; 0x02024F30 push {r4, lr} mov r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02024F50 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02024F44 FUN_02024F44: ; 0x02024F44 ldr r3, _02024F4C ; =MI_CpuCopy8 mov r2, #0x2 bx r3 nop _02024F4C: .word MI_CpuCopy8 thumb_func_start FUN_02024F50 FUN_02024F50: ; 0x02024F50 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2 blx MI_CpuFill8 ldrh r1, [r4, #0x0] mov r0, #0xf bic r1, r0 mov r0, #0x1 orr r0, r1 strh r0, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x30 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x80 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] ldr r0, _02024F94 ; =0xFFFFFCFF and r0, r1 strh r0, [r4, #0x0] ldrh r1, [r4, #0x0] ldr r0, _02024F98 ; =0xFFFF83FF and r0, r1 strh r0, [r4, #0x0] pop {r4, pc} nop _02024F94: .word 0xFFFFFCFF _02024F98: .word 0xFFFF83FF thumb_func_start FUN_02024F9C FUN_02024F9C: ; 0x02024F9C push {r3, lr} cmp r0, #0x0 beq _02024FAC bl LoadPlayerDataAddress bl FUN_02025064 add r1, r0, #0x0 _02024FAC: cmp r1, #0x0 beq _02024FCA cmp r1, #0x1 beq _02024FBA cmp r1, #0x2 beq _02024FC2 b _02024FCA _02024FBA: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x1 str r1, [r0, #0x34] pop {r3, pc} _02024FC2: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x3 str r1, [r0, #0x34] pop {r3, pc} _02024FCA: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x34] pop {r3, pc} nop _02024FD4: .word 0x021C48B8 thumb_func_start FUN_02024FD8 FUN_02024FD8: ; 0x02024FD8 ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr thumb_func_start FUN_02024FE0 FUN_02024FE0: ; 0x02024FE0 ldrh r3, [r0, #0x0] mov r2, #0xf lsl r1, r1, #0x10 bic r3, r2 lsr r2, r1, #0x10 mov r1, #0xf and r1, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02024FF4 FUN_02024FF4: ; 0x02024FF4 push {r3, lr} bl FUN_02024FD8 cmp r0, #0x0 bne _02025002 mov r0, #0x8 pop {r3, pc} _02025002: cmp r0, #0x1 bne _0202500A mov r0, #0x4 pop {r3, pc} _0202500A: mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02025010 FUN_02025010: ; 0x02025010 ldrh r0, [r0, #0x0] lsl r0, r0, #0x1a lsr r0, r0, #0x1e bx lr thumb_func_start FUN_02025018 FUN_02025018: ; 0x02025018 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e ldrh r3, [r0, #0x0] mov r2, #0x30 lsr r1, r1, #0x1a bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_0202502C FUN_0202502C: ; 0x0202502C ldrh r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02025034 FUN_02025034: ; 0x02025034 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f ldrh r3, [r0, #0x0] mov r2, #0x80 lsr r1, r1, #0x18 bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02025048 FUN_02025048: ; 0x02025048 ldrh r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02025050 FUN_02025050: ; 0x02025050 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f ldrh r3, [r0, #0x0] mov r2, #0x40 lsr r1, r1, #0x19 bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02025064 FUN_02025064: ; 0x02025064 ldrh r0, [r0, #0x0] lsl r0, r0, #0x16 lsr r0, r0, #0x1e bx lr thumb_func_start FUN_0202506C FUN_0202506C: ; 0x0202506C lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e ldrh r3, [r0, #0x0] ldr r2, _02025080 ; =0xFFFFFCFF lsr r1, r1, #0x16 and r2, r3 orr r1, r2 strh r1, [r0, #0x0] bx lr .balign 4 _02025080: .word 0xFFFFFCFF thumb_func_start FUN_02025084 FUN_02025084: ; 0x02025084 ldrh r0, [r0, #0x0] lsl r0, r0, #0x11 lsr r0, r0, #0x1b bx lr thumb_func_start FUN_0202508C FUN_0202508C: ; 0x0202508C lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1b ldrh r3, [r0, #0x0] ldr r2, _020250A0 ; =0xFFFF83FF lsr r1, r1, #0x11 and r2, r3 orr r1, r2 strh r1, [r0, #0x0] bx lr .balign 4 _020250A0: .word 0xFFFF83FF thumb_func_start FUN_020250A4 FUN_020250A4: ; 0x020250A4 push {r4, lr} mov r2, #0x7 mov r1, #0x0 lsl r2, r2, #0x8 add r4, r0, #0x0 blx MI_CpuFill8 mov r1, #0x0 add r0, r1, #0x0 _020250B6: strb r0, [r4, #0x1] strb r0, [r4, #0x0] add r1, r1, #0x1 add r4, #0xe cmp r1, #0x80 blt _020250B6 pop {r4, pc} thumb_func_start FUN_020250C4 FUN_020250C4: ; 0x020250C4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, r1, #0x0 str r2, [sp, #0x0] str r3, [sp, #0x4] bl FUN_02025128 mov r4, #0x0 str r0, [sp, #0x8] add r6, r4, #0x0 b _02025112 _020250DC: add r0, r5, #0x0 bl FUN_02025184 ldr r0, [sp, #0x0] lsl r1, r6, #0x1 add r7, r0, r1 ldrh r0, [r0, r1] sub r0, #0x94 strb r0, [r5, #0x0] mov r0, #0x5 strb r0, [r5, #0x1] ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] ldr r0, [sp, #0x8] bl FUN_020251B0 lsl r0, r0, #0x2 strh r0, [r5, #0x2] ldrh r0, [r7, #0x2] add r6, r6, #0x2 add r4, r4, #0x1 strh r0, [r5, #0x8] mov r0, #0x64 strb r0, [r5, #0xa] mov r0, #0x3 strb r0, [r5, #0xb] add r5, #0xe _02025112: cmp r4, #0x80 blt _020250DC ldr r0, [sp, #0x4] cmp r4, r0 blt _020250DC ldr r0, [sp, #0x8] bl FUN_02016A18 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02025128 FUN_02025128: ; 0x02025128 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 bl FUN_02085258 str r0, [sp, #0x0] add r0, r7, #0x0 mov r1, #0xc0 bl FUN_02016998 str r0, [sp, #0x4] mov r6, #0x0 add r5, r0, #0x0 _02025142: ldr r0, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02085264 add r4, r0, #0x0 mov r1, #0x3 bl FUN_02085290 strb r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x4 bl FUN_02085290 strb r0, [r5, #0x1] add r0, r4, #0x0 mov r1, #0x2 bl FUN_02085290 strb r0, [r5, #0x2] add r0, r4, #0x0 bl FUN_02016A18 add r6, r6, #0x1 add r5, r5, #0x3 cmp r6, #0x40 blt _02025142 ldr r0, [sp, #0x0] bl FUN_0208526C ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02025184 FUN_02025184: ; 0x02025184 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strh r1, [r0, #0x2] strh r1, [r0, #0x4] strb r1, [r0, #0x6] strh r1, [r0, #0x8] strb r1, [r0, #0xa] strb r1, [r0, #0xb] strb r1, [r0, #0xc] strb r1, [r0, #0xd] bx lr thumb_func_start FUN_0202519C FUN_0202519C: ; 0x0202519C ldrb r2, [r0, #0xb] ldrb r0, [r0, #0x0] sub r3, r0, #0x1 lsl r0, r3, #0x1 add r0, r3, r0 add r0, r1, r0 ldrb r0, [r0, #0x2] mul r0, r2 bx lr .balign 4 thumb_func_start FUN_020251B0 FUN_020251B0: ; 0x020251B0 sub r3, r1, #0x1 lsl r1, r3, #0x1 add r1, r3, r1 ldrb r1, [r0, r1] mov r0, #0x3c mul r0, r1 cmp r2, #0x1 bne _020251CE lsl r1, r0, #0x1 add r1, r0, r1 asr r0, r1, #0x1 lsr r0, r0, #0x1e add r0, r1, r0 asr r0, r0, #0x2 bx lr _020251CE: cmp r2, #0x2 bne _020251DA lsr r1, r0, #0x1f add r1, r0, r1 asr r1, r1, #0x1 add r0, r0, r1 _020251DA: bx lr thumb_func_start FUN_020251DC FUN_020251DC: ; 0x020251DC sub r3, r1, #0x1 lsl r1, r3, #0x1 add r1, r3, r1 add r0, r0, r1 ldrb r0, [r0, #0x1] cmp r2, #0x2 bne _020251F2 lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #0x1 bx lr _020251F2: cmp r2, #0x1 bne _020251FE lsr r1, r0, #0x1f add r1, r0, r1 asr r1, r1, #0x1 add r0, r0, r1 _020251FE: bx lr thumb_func_start FUN_02025200 FUN_02025200: ; 0x02025200 ldrb r0, [r0, #0xc] cmp r0, #0x3 bne _0202520A mov r0, #0x6 bx lr _0202520A: mov r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02025210 FUN_02025210: ; 0x02025210 ldrb r0, [r0, #0xc] cmp r0, #0x4 bne _0202521A mov r0, #0xf bx lr _0202521A: mov r0, #0xa bx lr .balign 4 thumb_func_start FUN_02025220 FUN_02025220: ; 0x02025220 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02025200 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02025210 add r1, r4, #0x3 mul r0, r1 add r0, r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_02025238 FUN_02025238: ; 0x02025238 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1] bx lr .balign 4 thumb_func_start FUN_02025244 FUN_02025244: ; 0x02025244 mov r2, #0xe mul r2, r1 ldrb r0, [r0, r2] bx lr thumb_func_start FUN_0202524C FUN_0202524C: ; 0x0202524C mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xa] cmp r0, #0x0 bne _0202525C mov r0, #0x0 bx lr _0202525C: cmp r0, #0x32 bgt _02025264 mov r0, #0x1 bx lr _02025264: mov r0, #0x2 bx lr thumb_func_start FUN_02025268 FUN_02025268: ; 0x02025268 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xb] bx lr .balign 4 thumb_func_start FUN_02025274 FUN_02025274: ; 0x02025274 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xe mul r4, r0 strb r3, [r5, r4] mov r0, #0x1 add r6, r5, r4 strb r0, [r6, #0x1] add r0, r2, #0x0 ldrb r2, [r6, #0xc] add r1, r3, #0x0 bl FUN_020251B0 add r1, r6, #0x0 strh r0, [r1, #0x2] mov r0, #0x0 strh r0, [r1, #0x4] strb r0, [r1, #0x6] strh r0, [r1, #0x8] mov r0, #0x64 strb r0, [r1, #0xa] mov r0, #0x5 strb r0, [r1, #0xb] mov r0, #0x1 strb r0, [r1, #0xd] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020252AC FUN_020252AC: ; 0x020252AC mov r2, #0xe mul r2, r1 mov r3, #0x64 add r0, r0, r2 strb r3, [r0, #0xa] bx lr thumb_func_start FUN_020252B8 FUN_020252B8: ; 0x020252B8 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xd] bx lr .balign 4 thumb_func_start FUN_020252C4 FUN_020252C4: ; 0x020252C4 mov r3, #0xe mul r3, r1 add r0, r0, r3 strb r2, [r0, #0xd] bx lr .balign 4 thumb_func_start FUN_020252D0 FUN_020252D0: ; 0x020252D0 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_020252DC FUN_020252DC: ; 0x020252DC mov r3, #0xe mul r3, r1 add r0, r0, r3 strb r2, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_020252E8 FUN_020252E8: ; 0x020252E8 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrh r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_020252F4 FUN_020252F4: ; 0x020252F4 push {r4, lr} mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrh r4, [r0, #0x8] bl FUN_02025184 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02025308 FUN_02025308: ; 0x02025308 push {r4, lr} add r4, r0, #0x0 ldrb r2, [r4, #0x1] cmp r2, #0x5 bhi _02025370 add r3, r2, r2 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0202531E: ; jump table (using 16-bit offset) .short _0202532A - _0202531E - 2; case 0 .short _02025330 - _0202531E - 2; case 1 .short _02025330 - _0202531E - 2; case 2 .short _02025330 - _0202531E - 2; case 3 .short _02025336 - _0202531E - 2; case 4 .short _0202534E - _0202531E - 2; case 5 _0202532A: bl ErrorHandling pop {r4, pc} _02025330: add r0, r2, #0x1 strb r0, [r4, #0x1] pop {r4, pc} _02025336: bl FUN_0202519C strh r0, [r4, #0x8] ldrh r0, [r4, #0x8] cmp r0, #0x2 bhs _02025346 mov r0, #0x2 strh r0, [r4, #0x8] _02025346: ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] pop {r4, pc} _0202534E: mov r1, #0x0 strh r1, [r4, #0x8] mov r1, #0x2 strb r1, [r4, #0x1] mov r1, #0x5 strb r1, [r4, #0xb] ldrb r1, [r4, #0x6] add r1, r1, #0x1 strb r1, [r4, #0x6] bl FUN_02025210 ldrb r1, [r4, #0x6] cmp r1, r0 bne _02025370 add r0, r4, #0x0 bl FUN_02025184 _02025370: pop {r4, pc} .balign 4 thumb_func_start FUN_02025374 FUN_02025374: ; 0x02025374 push {r3-r7, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x1] add r7, r2, #0x0 cmp r0, #0x5 beq _020253DE add r0, r1, #0x0 ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] bl FUN_020251DC add r6, r0, #0x0 ldrh r0, [r5, #0x4] mov r1, #0x3c str r0, [sp, #0x0] add r0, r7, r0 blx _s32_div_f add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x3c add r0, r7, r0 blx _s32_div_f strh r1, [r5, #0x4] cmp r4, #0x0 beq _020253DE ldrb r1, [r5, #0xa] add r0, r6, #0x0 mul r0, r4 cmp r1, r0 blt _020253BA sub r0, r1, r0 strb r0, [r5, #0xa] pop {r3-r7, pc} _020253BA: cmp r1, #0x0 beq _020253CE sub r0, r6, #0x1 add r0, r1, r0 add r1, r6, #0x0 blx _s32_div_f sub r4, r4, r0 mov r0, #0x0 strb r0, [r5, #0xa] _020253CE: ldrb r0, [r5, #0xb] cmp r0, r4 ble _020253DA sub r0, r0, r4 strb r0, [r5, #0xb] pop {r3-r7, pc} _020253DA: mov r0, #0x0 strb r0, [r5, #0xb] _020253DE: pop {r3-r7, pc} thumb_func_start FUN_020253E0 FUN_020253E0: ; 0x020253E0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r0, [sp, #0x0] _020253EC: ldrb r1, [r5, #0x0] cmp r1, #0x0 beq _02025474 ldrb r0, [r5, #0x1] cmp r0, #0x0 beq _02025474 ldrb r0, [r5, #0xd] cmp r0, #0x0 beq _02025474 ldrb r2, [r5, #0xc] add r0, r6, #0x0 bl FUN_020251B0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02025220 mul r0, r4 cmp r7, r0 blt _0202541C add r0, r5, #0x0 bl FUN_02025184 b _02025474 _0202541C: add r4, r7, #0x0 b _0202546A _02025420: ldrh r2, [r5, #0x2] cmp r2, r4 ble _02025438 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02025374 ldrh r0, [r5, #0x2] sub r0, r0, r4 strh r0, [r5, #0x2] b _02025474 _02025438: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02025374 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02025308 ldrh r0, [r5, #0x2] ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] sub r4, r4, r0 add r0, r6, #0x0 bl FUN_020251B0 strh r0, [r5, #0x2] ldrb r0, [r5, #0x1] cmp r0, #0x5 bne _0202546A add r0, r5, #0x0 bl FUN_02025200 ldrh r1, [r5, #0x2] mul r0, r1 strh r0, [r5, #0x2] _0202546A: ldrb r0, [r5, #0x1] cmp r0, #0x0 beq _02025474 cmp r4, #0x0 bne _02025420 _02025474: ldr r0, [sp, #0x0] add r5, #0xe add r0, r0, #0x1 str r0, [sp, #0x0] cmp r0, #0x80 blt _020253EC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02025484 FUN_02025484: ; 0x02025484 ldr r3, _0202548C ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x24 bx r3 .balign 4 _0202548C: .word MI_CpuFill8 thumb_func_start FUN_02025490 FUN_02025490: ; 0x02025490 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025484 str r4, [r5, #0x0] add r0, r5, #0x4 pop {r3-r5, pc} thumb_func_start FUN_020254A0 FUN_020254A0: ; 0x020254A0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, r1 beq _020254AE bl ErrorHandling _020254AE: add r0, r4, #0x4 pop {r4, pc} .balign 4 thumb_func_start FUN_020254B4 FUN_020254B4: ; 0x020254B4 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020254B8 FUN_020254B8: ; 0x020254B8 mov r0, #0x22 lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_020254C0 FUN_020254C0: ; 0x020254C0 ldr r3, _020254C8 ; =FUN_02022610 mov r1, #0x9 bx r3 nop _020254C8: .word FUN_02022610 thumb_func_start FUN_020254CC FUN_020254CC: ; 0x020254CC push {r3-r7, lr} mov r4, #0x0 ldr r6, _020254EC ; =0x0000FFFF add r5, r0, #0x0 add r7, r4, #0x0 _020254D6: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x88 blx Call_FillMemWithValue strh r6, [r5, #0x0] add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 blt _020254D6 pop {r3-r7, pc} .balign 4 _020254EC: .word 0x0000FFFF thumb_func_start FUN_020254F0 FUN_020254F0: ; 0x020254F0 mov r2, #0x88 mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_020254F8 FUN_020254F8: ; 0x020254F8 add r0, r0, r1 add r0, #0x68 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02025500 FUN_02025500: ; 0x02025500 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl StringNotEqual cmp r0, #0x0 bne _0202551A ldr r1, [r5, #0x10] ldr r0, [r4, #0x10] cmp r1, r0 bne _0202551A mov r0, #0x1 pop {r3-r5, pc} _0202551A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025520 FUN_02025520: ; 0x02025520 push {r4-r7, lr} sub sp, #0x2c str r1, [sp, #0x4] mov r1, #0x22 str r0, [sp, #0x0] add r0, r3, #0x0 lsl r1, r1, #0x6 str r2, [sp, #0x8] bl FUN_02016998 str r0, [sp, #0x10] bl FUN_020254CC mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x8] cmp r0, #0x0 ble _02025578 ldr r7, [sp, #0x4] add r6, sp, #0x18 _02025548: mov r0, #0x0 mvn r0, r0 ldr r5, [sp, #0x0] str r0, [r6, #0x0] mov r4, #0x0 _02025552: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02025500 cmp r0, #0x0 beq _02025560 str r4, [r6, #0x0] _02025560: add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 blt _02025552 ldr r0, [sp, #0x14] add r6, r6, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x8] add r7, #0x88 str r1, [sp, #0x14] cmp r1, r0 blt _02025548 _02025578: ldr r0, [sp, #0x8] mov r4, #0x0 str r4, [sp, #0xc] cmp r0, #0x0 ble _020255BE ldr r5, [sp, #0x10] add r6, sp, #0x18 _02025586: ldr r3, [sp, #0x4] add r7, r5, #0x0 mov r2, #0x11 _0202558C: ldmia r3!, {r0-r1} stmia r7!, {r0-r1} sub r2, r2, #0x1 bne _0202558C ldr r1, [r6, #0x0] cmp r1, #0x0 blt _020255A6 add r2, r1, #0x0 mov r0, #0x88 mul r2, r0 ldr r1, _02025610 ; =0x0000FFFF ldr r0, [sp, #0x0] strh r1, [r0, r2] _020255A6: ldr r0, [sp, #0x4] add r5, #0x88 add r0, #0x88 str r0, [sp, #0x4] ldr r0, [sp, #0xc] add r4, r4, #0x1 add r1, r0, #0x1 ldr r0, [sp, #0x8] add r6, r6, #0x4 str r1, [sp, #0xc] cmp r1, r0 blt _02025586 _020255BE: mov r0, #0x0 mov r12, r0 mov r0, #0x88 add r1, r4, #0x0 mul r1, r0 ldr r0, [sp, #0x10] ldr r3, [sp, #0x0] add r5, r0, r1 _020255CE: ldrh r1, [r3, #0x0] ldr r0, _02025610 ; =0x0000FFFF cmp r1, r0 beq _020255EC add r6, r3, #0x0 add r7, r5, #0x0 mov r2, #0x11 _020255DC: ldmia r6!, {r0-r1} stmia r7!, {r0-r1} sub r2, r2, #0x1 bne _020255DC add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 bge _020255F8 _020255EC: mov r0, r12 add r0, r0, #0x1 add r3, #0x88 mov r12, r0 cmp r0, #0x10 blt _020255CE _020255F8: mov r2, #0x22 ldr r0, [sp, #0x0] ldr r1, [sp, #0x10] lsl r2, r2, #0x6 blx memcpy ldr r0, [sp, #0x10] bl FUN_02016A18 add sp, #0x2c pop {r4-r7, pc} nop _02025610: .word 0x0000FFFF thumb_func_start FUN_02025614 FUN_02025614: ; 0x02025614 push {r3-r6} mov r3, #0x0 add r4, r0, #0x0 _0202561A: ldr r2, [r4, #0x10] cmp r1, r2 bne _02025626 mov r0, #0x1 pop {r3-r6} bx lr _02025626: add r3, r3, #0x1 add r4, #0x88 cmp r3, #0x10 blt _0202561A mov r6, #0x0 add r3, r6, #0x0 _02025632: add r4, r3, #0x0 add r5, r0, #0x0 _02025636: ldr r2, [r5, #0x18] cmp r1, r2 bne _02025642 add r0, r6, #0x2 pop {r3-r6} bx lr _02025642: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x10 blt _02025636 add r6, r6, #0x1 add r0, #0x88 cmp r6, #0x10 blt _02025632 mov r0, #0x0 pop {r3-r6} bx lr thumb_func_start FUN_02025658 FUN_02025658: ; 0x02025658 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] strb r0, [r4, #0x4] ldr r0, _020256A0 ; =0x020ECAC4 mov r1, #0x8 ldrb r0, [r0, #0x0] strb r0, [r4, #0x5] ldr r0, _020256A4 ; =0x020ECAC0 ldrb r0, [r0, #0x0] strb r0, [r4, #0x6] mov r0, #0xff strb r0, [r4, #0x7] add r0, r4, #0x0 add r0, #0x8 bl StringFillEOS ldr r0, _020256A8 ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 _02025682: add r1, r1, #0x1 strh r0, [r2, #0x18] add r2, r2, #0x2 cmp r1, #0x3 blt _02025682 mov r5, #0x0 add r4, #0x20 _02025690: add r0, r4, #0x0 bl FUN_02013724 add r5, r5, #0x1 add r4, #0x8 cmp r5, #0x3 blt _02025690 pop {r3-r5, pc} .balign 4 _020256A0: .word 0x020ECAC4 _020256A4: .word 0x020ECAC0 _020256A8: .word 0x0000FFFF thumb_func_start FUN_020256AC FUN_020256AC: ; 0x020256AC ldrb r0, [r0, #0x7] cmp r0, #0xb bhi _020256B6 mov r0, #0x1 bx lr _020256B6: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020256BC FUN_020256BC: ; 0x020256BC push {r4, lr} mov r1, #0x38 bl FUN_020169D8 add r4, r0, #0x0 bl FUN_02025658 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020256D0 FUN_020256D0: ; 0x020256D0 ldr r3, _020256D8 ; =MI_CpuCopy8 mov r2, #0x38 bx r3 nop _020256D8: .word MI_CpuCopy8 thumb_func_start FUN_020256DC FUN_020256DC: ; 0x020256DC push {r4-r7, lr} sub sp, #0x14 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_02025658 add r0, r7, #0x0 strb r6, [r5, #0x7] bl FUN_0206BB1C str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_020238F4 add r6, r0, #0x0 bl FUN_0202398C add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x8 bl StringCopy add r0, r6, #0x0 bl FUN_020239CC strb r0, [r5, #0x4] add r0, r6, #0x0 bl FUN_020239BC str r0, [r5, #0x0] ldr r0, [sp, #0x0] mov r6, #0x0 bl FUN_0206B9AC cmp r4, r0 bge _020257AE add r5, #0x18 _0202572A: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r7, #0x0 bl FUN_0206B6C8 str r0, [sp, #0x10] ldr r0, [sp, #0x4] ldr r1, [sp, #0xc] ldr r2, [sp, #0x8] bl FUN_0206B7BC lsl r3, r6, #0x1 ldrh r1, [r5, r3] add r7, r0, #0x0 ldr r0, _020257B4 ; =0xFFFFF000 add r2, r1, #0x0 and r2, r0 ldr r0, [sp, #0x10] lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _020257B8 ; =0x00000FFF and r0, r1 orr r0, r2 strh r0, [r5, r3] add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldrh r1, [r5, r3] ldr r0, _020257BC ; =0xFFFF0FFF and r0, r1 lsl r1, r7, #0x1c lsr r1, r1, #0x10 orr r0, r1 strh r0, [r5, r3] cmp r6, #0x3 bhs _020257AE add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x0] bl FUN_0206B9AC cmp r4, r0 blt _0202572A _020257AE: add sp, #0x14 pop {r4-r7, pc} nop _020257B4: .word 0xFFFFF000 _020257B8: .word 0x00000FFF _020257BC: .word 0xFFFF0FFF thumb_func_start FUN_020257C0 FUN_020257C0: ; 0x020257C0 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020257C4 FUN_020257C4: ; 0x020257C4 add r0, #0x8 bx lr thumb_func_start FUN_020257C8 FUN_020257C8: ; 0x020257C8 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_020257CC FUN_020257CC: ; 0x020257CC ldrb r0, [r0, #0x7] bx lr thumb_func_start FUN_020257D0 FUN_020257D0: ; 0x020257D0 cmp r1, #0xc bhs _020257D6 strb r1, [r0, #0x7] _020257D6: bx lr thumb_func_start FUN_020257D8 FUN_020257D8: ; 0x020257D8 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_020257DC FUN_020257DC: ; 0x020257DC ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_020257E0 FUN_020257E0: ; 0x020257E0 cmp r1, #0x3 bhs _02025810 cmp r2, #0x0 beq _020257F0 cmp r2, #0x1 beq _020257FC cmp r2, #0x2 b _02025808 _020257F0: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] lsl r0, r0, #0x14 lsr r0, r0, #0x14 bx lr _020257FC: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] lsl r0, r0, #0x10 lsr r0, r0, #0x1c bx lr _02025808: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] bx lr _02025810: mov r0, #0x0 bx lr thumb_func_start FUN_02025814 FUN_02025814: ; 0x02025814 cmp r1, #0x3 bhs _02025820 add r0, #0x20 lsl r1, r1, #0x3 add r0, r0, r1 bx lr _02025820: add r0, #0x20 bx lr thumb_func_start FUN_02025824 FUN_02025824: ; 0x02025824 push {r3, lr} cmp r2, #0x3 bhs _02025834 add r0, #0x20 lsl r2, r2, #0x3 add r0, r0, r2 bl FUN_02013960 _02025834: pop {r3, pc} .balign 4 thumb_func_start FUN_02025838 FUN_02025838: ; 0x02025838 ldr r3, _02025840 ; =FUN_02022610 mov r1, #0xf bx r3 nop _02025840: .word FUN_02022610 thumb_func_start FUN_02025844 FUN_02025844: ; 0x02025844 mov r0, #0x46 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202584C FUN_0202584C: ; 0x0202584C push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02025852: add r0, r5, #0x0 bl FUN_02025658 add r4, r4, #0x1 add r5, #0x38 cmp r4, #0x14 blt _02025852 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025864 FUN_02025864: ; 0x02025864 push {r3, lr} cmp r1, #0x0 bne _02025872 mov r1, #0x14 bl FUN_020258F0 pop {r3, pc} _02025872: mov r0, #0x0 mvn r0, r0 pop {r3, pc} thumb_func_start FUN_02025878 FUN_02025878: ; 0x02025878 push {r3, lr} bl FUN_02025940 cmp r0, #0x0 beq _02025886 bl FUN_02025658 _02025886: pop {r3, pc} thumb_func_start FUN_02025888 FUN_02025888: ; 0x02025888 push {r4, lr} add r4, r3, #0x0 bl FUN_02025940 add r1, r0, #0x0 beq _0202589A add r0, r4, #0x0 bl FUN_020256D0 _0202589A: pop {r4, pc} thumb_func_start FUN_0202589C FUN_0202589C: ; 0x0202589C push {r3, lr} cmp r1, #0x0 bne _020258AA mov r1, #0x14 bl FUN_02025918 pop {r3, pc} _020258AA: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020258B0 FUN_020258B0: ; 0x020258B0 push {r3-r5, lr} add r5, r3, #0x0 bl FUN_02025940 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020256BC add r5, r0, #0x0 cmp r4, #0x0 beq _020258CE add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020256D0 _020258CE: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020258D4 FUN_020258D4: ; 0x020258D4 push {r4, lr} add r4, r3, #0x0 bl FUN_02025940 cmp r0, #0x0 bne _020258E8 add r0, r4, #0x0 bl FUN_02025658 pop {r4, pc} _020258E8: add r1, r4, #0x0 bl FUN_020256D0 pop {r4, pc} thumb_func_start FUN_020258F0 FUN_020258F0: ; 0x020258F0 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 mov r4, #0x0 cmp r6, #0x0 ble _02025912 _020258FC: add r0, r5, #0x0 bl FUN_020256AC cmp r0, #0x0 bne _0202590A add r0, r4, #0x0 pop {r4-r6, pc} _0202590A: add r4, r4, #0x1 add r5, #0x38 cmp r4, r6 blt _020258FC _02025912: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} thumb_func_start FUN_02025918 FUN_02025918: ; 0x02025918 push {r3-r7, lr} mov r4, #0x0 add r7, r1, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 cmp r7, #0x0 ble _0202593A _02025926: add r0, r5, #0x0 bl FUN_020256AC cmp r0, #0x0 beq _02025932 add r4, r4, #0x1 _02025932: add r6, r6, #0x1 add r5, #0x38 cmp r6, r7 blt _02025926 _0202593A: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02025940 FUN_02025940: ; 0x02025940 mov r3, #0x0 cmp r1, #0x0 bne _02025950 cmp r2, #0x14 bge _02025950 mov r1, #0x38 mul r1, r2 add r3, r0, r1 _02025950: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025954 FUN_02025954: ; 0x02025954 ldr r0, _02025958 ; =0x000009B4 bx lr .balign 4 _02025958: .word 0x000009B4 thumb_func_start FUN_0202595C FUN_0202595C: ; 0x0202595C mov r0, #0x94 bx lr thumb_func_start FUN_02025960 FUN_02025960: ; 0x02025960 mov r0, #0x3c bx lr thumb_func_start FUN_02025964 FUN_02025964: ; 0x02025964 push {r4, lr} mov r1, #0x3c bl FUN_02016998 mov r1, #0x0 mov r2, #0x3c add r4, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202597C FUN_0202597C: ; 0x0202597C push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 add r0, sp, #0xc add r1, sp, #0x0 bl FUN_0201265C ldr r0, _020259D8 ; =0x021C48B8 ldr r6, [sp, #0xc] ldr r1, [sp, #0x8] ldr r0, [r0, #0x2c] lsl r6, r6, #0x5 add r5, r1, r0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] add r0, r0, r6 lsl r0, r0, #0x5 add r0, r1, r0 mov r7, #0x0 ldr r2, [sp, #0x0] lsl r0, r0, #0x5 add r0, r2, r0 ldr r3, [sp, #0x4] lsl r0, r0, #0x5 add r0, r3, r0 lsl r0, r0, #0x5 add r5, r5, r0 ldr r2, _020259DC ; =0x000009B4 add r0, r4, #0x0 add r1, r7, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x94 mov r1, #0x9b str r5, [r0, #0x0] lsl r1, r1, #0x4 ldrb r2, [r4, r1] mov r0, #0xf bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r4, r1] add sp, #0x1c pop {r4-r7, pc} nop _020259D8: .word 0x021C48B8 _020259DC: .word 0x000009B4 thumb_func_start FUN_020259E0 FUN_020259E0: ; 0x020259E0 mov r1, #0x9 mov r3, #0x0 lsl r1, r1, #0x8 _020259E6: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _020259F2 add r0, r3, #0x0 bx lr _020259F2: add r3, r3, #0x1 cmp r3, #0x28 blt _020259E6 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 thumb_func_start FUN_02025A00 FUN_02025A00: ; 0x02025A00 mov r1, #0x95 mov r3, #0x0 lsl r1, r1, #0x4 _02025A06: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A12 add r0, r3, #0x0 bx lr _02025A12: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A06 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 thumb_func_start FUN_02025A20 FUN_02025A20: ; 0x02025A20 ldr r1, _02025A3C ; =0x00000928 mov r3, #0x0 _02025A24: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A30 add r0, r3, #0x0 bx lr _02025A30: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A24 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 _02025A3C: .word 0x00000928 thumb_func_start FUN_02025A40 FUN_02025A40: ; 0x02025A40 ldr r1, _02025A5C ; =0x000008D8 mov r3, #0x0 _02025A44: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A50 add r0, r3, #0x0 bx lr _02025A50: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A44 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 _02025A5C: .word 0x000008D8 thumb_func_start FUN_02025A60 FUN_02025A60: ; 0x02025A60 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] bl FUN_02026CC4 ldr r1, _02025B50 ; =0x020EE958 add r6, r0, #0x0 ldrb r2, [r1, #0x0] add r0, sp, #0x8 strb r2, [r0, #0x6] ldrb r2, [r1, #0x1] strb r2, [r0, #0x7] ldrb r2, [r1, #0x2] strb r2, [r0, #0x8] ldrb r2, [r1, #0x3] strb r2, [r0, #0x9] ldrb r2, [r1, #0x4] strb r2, [r0, #0xa] ldrb r2, [r1, #0x5] strb r2, [r0, #0xb] ldrb r2, [r1, #0x6] strb r2, [r0, #0x0] ldrb r2, [r1, #0x7] strb r2, [r0, #0x1] ldrb r2, [r1, #0x8] strb r2, [r0, #0x2] ldrb r2, [r1, #0x9] strb r2, [r0, #0x3] ldrb r2, [r1, #0xa] strb r2, [r0, #0x4] ldrb r1, [r1, #0xb] strb r1, [r0, #0x5] ldr r0, [sp, #0x0] cmp r0, #0x0 ble _02025B4C str r0, [sp, #0x4] cmp r0, #0x63 ble _02025AB0 mov r0, #0x63 str r0, [sp, #0x4] _02025AB0: add r0, r6, #0x0 add r0, #0x94 ldr r3, [r0, #0x0] mov r0, #0x0 mov r12, r0 ldr r0, [sp, #0x4] cmp r0, #0x0 ble _02025B28 add r7, sp, #0xc add r7, #0x2 _02025AC4: mov r2, #0x0 _02025AC6: ldr r0, _02025B54 ; =0x0000055C add r4, r6, r2 ldrb r5, [r4, r0] cmp r5, #0x0 beq _02025B16 ldr r0, _02025B58 ; =0x5D588B65 ldrb r1, [r7, r5] mul r0, r3 ldr r3, _02025B5C ; =0x00269EC3 add r3, r0, r3 cmp r1, #0x0 bne _02025AE2 lsr r0, r3, #0x10 b _02025AE8 _02025AE2: lsr r0, r3, #0x10 mul r1, r0 lsr r0, r1, #0x10 _02025AE8: lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, sp, #0x8 ldrb r0, [r0, r5] add r0, r0, r1 mov r1, #0x17 lsl r1, r1, #0x6 ldrb r1, [r4, r1] add r1, r0, r1 cmp r1, #0x63 bge _02025B0E mov r1, #0x17 lsl r1, r1, #0x6 ldrb r1, [r4, r1] add r1, r1, r0 mov r0, #0x17 lsl r0, r0, #0x6 strb r1, [r4, r0] b _02025B16 _02025B0E: mov r0, #0x17 mov r1, #0x63 lsl r0, r0, #0x6 strb r1, [r4, r0] _02025B16: add r2, r2, #0x1 cmp r2, #0x64 blt _02025AC6 mov r0, r12 add r1, r0, #0x1 ldr r0, [sp, #0x4] mov r12, r1 cmp r1, r0 blt _02025AC4 _02025B28: add r0, r6, #0x0 add r0, #0x94 ldr r1, [r0, #0x0] ldr r0, [sp, #0x0] add r0, r1, r0 bl FUN_0201BA10 add r1, r6, #0x0 add r1, #0x94 str r0, [r1, #0x0] mov r1, #0x9b lsl r1, r1, #0x4 ldrb r2, [r6, r1] mov r0, #0xf bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r6, r1] _02025B4C: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02025B50: .word 0x020EE958 _02025B54: .word 0x0000055C _02025B58: .word 0x5D588B65 _02025B5C: .word 0x00269EC3 thumb_func_start FUN_02025B60 FUN_02025B60: ; 0x02025B60 push {r3-r5, lr} add r4, r1, #0x0 add r5, r2, #0x0 bl FUN_02026CC4 cmp r4, #0x0 blt _02025B90 cmp r5, #0x0 bne _02025B90 add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, r4 bge _02025B84 mov r1, #0x0 add r0, #0x98 str r1, [r0, #0x0] pop {r3-r5, pc} _02025B84: add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] add r0, #0x98 sub r1, r1, r4 str r1, [r0, #0x0] _02025B90: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025B94 FUN_02025B94: ; 0x02025B94 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _02025BB6 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x2 bne _02025BB6 add r1, r0, #0x0 mov r2, #0x0 add r1, #0x9c strb r2, [r1, #0x0] _02025BB6: add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _02025BD4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025BD4 mov r2, #0x5a add r1, r0, #0x0 lsl r2, r2, #0x4 add r1, #0x98 str r2, [r1, #0x0] _02025BD4: add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025BE4 mov r1, #0x2 add r0, #0x9c strb r1, [r0, #0x0] _02025BE4: pop {r3, pc} .balign 4 thumb_func_start FUN_02025BE8 FUN_02025BE8: ; 0x02025BE8 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02025BFE mov r1, #0x1 add r0, #0x9c strb r1, [r0, #0x0] _02025BFE: pop {r3, pc} thumb_func_start FUN_02025C00 FUN_02025C00: ; 0x02025C00 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025C16 mov r1, #0x0 add r0, #0x9c strb r1, [r0, #0x0] _02025C16: pop {r3, pc} thumb_func_start FUN_02025C18 FUN_02025C18: ; 0x02025C18 push {r3, lr} bl FUN_02026CC4 add r0, #0x9c ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _02025C2A mov r0, #0x1 pop {r3, pc} _02025C2A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02025C30 FUN_02025C30: ; 0x02025C30 mov r1, #0x1 add r0, #0x9d strb r1, [r0, #0x0] bx lr thumb_func_start FUN_02025C38 FUN_02025C38: ; 0x02025C38 add r0, #0x9d ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02025C40 FUN_02025C40: ; 0x02025C40 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _02025CD0 ; =0x0000010E add r6, r1, #0x0 ldrb r0, [r7, r0] mov r4, #0x0 add r5, r7, #0x0 str r0, [sp, #0x0] _02025C50: add r0, r6, #0x0 bl FUN_020239BC add r1, r5, #0x0 add r1, #0xa0 ldr r1, [r1, #0x0] cmp r1, r0 beq _02025CCC add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x5 blt _02025C50 ldr r0, [sp, #0x0] cmp r0, #0x5 blt _02025C72 bl ErrorHandling _02025C72: add r0, r6, #0x0 bl FUN_0202398C ldr r1, [sp, #0x0] add r2, r7, #0x0 add r2, #0xb4 lsl r1, r1, #0x4 add r1, r2, r1 mov r2, #0x10 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_020239BC ldr r1, [sp, #0x0] lsl r1, r1, #0x2 add r1, r7, r1 add r1, #0xa0 str r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02023A70 ldr r1, [sp, #0x0] add r2, r7, r1 mov r1, #0x41 lsl r1, r1, #0x2 strb r0, [r2, r1] add r0, r6, #0x0 bl FUN_02023A68 ldr r1, [sp, #0x0] add r2, r7, r1 ldr r1, _02025CD4 ; =0x00000109 strb r0, [r2, r1] add r0, r1, #0x5 ldrb r0, [r7, r0] add r2, r0, #0x1 add r0, r1, #0x5 strb r2, [r7, r0] ldrb r0, [r7, r0] cmp r0, #0x5 blo _02025CCC mov r2, #0x0 add r0, r1, #0x5 strb r2, [r7, r0] _02025CCC: pop {r3-r7, pc} nop _02025CD0: .word 0x0000010E _02025CD4: .word 0x00000109 thumb_func_start FUN_02025CD8 FUN_02025CD8: ; 0x02025CD8 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02025D38 ; =0x0000010E ldrb r0, [r5, r0] sub r0, r0, r2 sub r4, r0, #0x1 bpl _02025CE8 add r4, r4, #0x5 _02025CE8: add r7, r5, #0x0 lsl r0, r4, #0x4 add r7, #0xb4 str r0, [sp, #0x0] ldrh r0, [r7, r0] cmp r0, #0x0 beq _02025D32 add r0, r1, #0x0 bl FUN_02023928 ldr r1, [sp, #0x0] add r6, r0, #0x0 add r1, r7, r1 bl FUN_0202395C ldr r1, _02025D3C ; =0x00000109 add r2, r5, r4 ldrb r1, [r2, r1] add r0, r6, #0x0 bl FUN_02023A6C mov r1, #0x41 add r2, r5, r4 lsl r1, r1, #0x2 ldrb r1, [r2, r1] add r0, r6, #0x0 bl FUN_02023A74 lsl r1, r4, #0x2 add r1, r5, r1 add r1, #0xa0 ldr r1, [r1, #0x0] add r0, r6, #0x0 bl FUN_020239B8 add r0, r6, #0x0 pop {r3-r7, pc} _02025D32: mov r0, #0x0 pop {r3-r7, pc} nop _02025D38: .word 0x0000010E _02025D3C: .word 0x00000109 thumb_func_start FUN_02025D40 FUN_02025D40: ; 0x02025D40 add r0, #0x94 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02025D48 FUN_02025D48: ; 0x02025D48 push {r4, lr} add r4, r0, #0x0 cmp r4, #0xb bge _02025D54 bl ErrorHandling _02025D54: cmp r4, #0x3c blt _02025D5C bl ErrorHandling _02025D5C: sub r4, #0xb ldr r0, _02025D68 ; =0x02105C74 lsl r1, r4, #0x1 ldrh r0, [r0, r1] pop {r4, pc} nop _02025D68: .word 0x02105C74 thumb_func_start FUN_02025D6C FUN_02025D6C: ; 0x02025D6C push {r4-r5} mov r2, #0x81 mov r5, #0x0 lsl r2, r2, #0x4 _02025D74: add r4, r0, r5 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02025D88 mov r0, #0x81 lsl r0, r0, #0x4 strb r1, [r4, r0] mov r0, #0x1 pop {r4-r5} bx lr _02025D88: add r5, r5, #0x1 cmp r5, #0xc8 blt _02025D74 mov r0, #0x0 pop {r4-r5} bx lr thumb_func_start FUN_02025D94 FUN_02025D94: ; 0x02025D94 mov r1, #0x81 mov r3, #0x0 lsl r1, r1, #0x4 _02025D9A: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025DA6 mov r0, #0x1 bx lr _02025DA6: add r3, r3, #0x1 cmp r3, #0xc8 blt _02025D9A mov r0, #0x0 bx lr thumb_func_start FUN_02025DB0 FUN_02025DB0: ; 0x02025DB0 mov r1, #0x81 mov r3, #0x0 lsl r1, r1, #0x4 _02025DB6: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02025DC4 add r3, r3, #0x1 cmp r3, #0xc8 blt _02025DB6 _02025DC4: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025DC8 FUN_02025DC8: ; 0x02025DC8 add r1, r0, r1 mov r0, #0x81 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02025DD4 FUN_02025DD4: ; 0x02025DD4 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025F0C cmp r0, #0x0 beq _02025DE6 bl ErrorHandling _02025DE6: mov r0, #0x81 add r1, r5, r4 lsl r0, r0, #0x4 add r6, r4, #0x0 ldrb r7, [r1, r0] cmp r4, #0xc7 bge _02025E06 mov r1, #0x81 add r0, r0, #0x1 lsl r1, r1, #0x4 _02025DFA: add r3, r5, r6 ldrb r2, [r3, r0] add r6, r6, #0x1 cmp r6, #0xc7 strb r2, [r3, r1] blt _02025DFA _02025E06: ldr r0, _02025E1C ; =0x000008D7 mov r2, #0x0 strb r2, [r5, r0] add r0, r5, #0x0 add r1, r4, #0x0 sub r2, r2, #0x1 bl FUN_02025F58 add r0, r7, #0x0 pop {r3-r7, pc} nop _02025E1C: .word 0x000008D7 thumb_func_start FUN_02025E20 FUN_02025E20: ; 0x02025E20 push {r4-r7, lr} sub sp, #0xd4 mov r4, #0x0 add r5, r0, #0x0 sub r0, r4, #0x1 str r0, [sp, #0x4] mov r0, #0x81 lsl r0, r0, #0x4 str r1, [sp, #0x8] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0xc mov r2, #0xc8 blx MI_CpuCopy8 ldr r2, [sp, #0x8] add r1, sp, #0xc add r0, r4, #0x0 add r7, r1, r2 _02025E46: ldr r2, [sp, #0x8] cmp r0, r2 beq _02025E58 ldrb r6, [r1, #0x0] mov r2, #0x81 add r3, r5, r4 lsl r2, r2, #0x4 strb r6, [r3, r2] add r4, r4, #0x1 _02025E58: ldr r2, [sp, #0x0] cmp r0, r2 bne _02025E6A ldrb r6, [r7, #0x0] mov r2, #0x81 add r3, r5, r4 lsl r2, r2, #0x4 strb r6, [r3, r2] add r4, r4, #0x1 _02025E6A: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0xc8 blt _02025E46 ldr r0, [sp, #0x8] mov r3, #0x0 add r2, r0, #0x1 mov r0, #0x9a lsl r0, r0, #0x4 _02025E7C: add r1, r5, r3 ldrb r1, [r1, r0] cmp r2, r1 bne _02025E88 str r3, [sp, #0x4] b _02025E8E _02025E88: add r3, r3, #0x1 cmp r3, #0xf blt _02025E7C _02025E8E: ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x1 bl FUN_02025F58 mov r2, #0x0 ldr r1, [sp, #0x8] add r0, r5, #0x0 mvn r2, r2 bl FUN_02025F58 mov r1, #0x0 ldr r0, [sp, #0x4] mvn r1, r1 cmp r0, r1 beq _02025ED6 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] cmp r0, r1 bge _02025EC8 add r0, r1, #0x0 add r2, r0, #0x1 ldr r0, [sp, #0x4] add sp, #0xd4 add r1, r5, r0 mov r0, #0x9a lsl r0, r0, #0x4 strb r2, [r1, r0] pop {r4-r7, pc} _02025EC8: add r0, r1, #0x0 add r2, r0, #0x2 ldr r0, [sp, #0x4] add r1, r5, r0 mov r0, #0x9a lsl r0, r0, #0x4 strb r2, [r1, r0] _02025ED6: add sp, #0xd4 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02025EDC FUN_02025EDC: ; 0x02025EDC push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0x1 bge _02025EEC bl ErrorHandling _02025EEC: cmp r6, #0xf ble _02025EF4 bl ErrorHandling _02025EF4: sub r0, r6, #0x1 add r1, r5, r0 mov r0, #0x9a add r2, r4, #0x1 lsl r0, r0, #0x4 strb r2, [r1, r0] mov r0, #0x81 add r1, r5, r4 lsl r0, r0, #0x4 ldrb r0, [r1, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02025F0C FUN_02025F0C: ; 0x02025F0C push {r3-r4} add r3, r1, #0x1 mov r1, #0x9a mov r4, #0x0 lsl r1, r1, #0x4 _02025F16: add r2, r0, r4 ldrb r2, [r2, r1] cmp r3, r2 bne _02025F24 mov r0, #0x1 pop {r3-r4} bx lr _02025F24: add r4, r4, #0x1 cmp r4, #0xf blt _02025F16 mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02025F30 FUN_02025F30: ; 0x02025F30 sub r1, r1, #0x1 cmp r1, #0xf bge _02025F40 add r1, r0, r1 mov r0, #0x9a mov r2, #0x0 lsl r0, r0, #0x4 strb r2, [r1, r0] _02025F40: bx lr .balign 4 thumb_func_start FUN_02025F44 FUN_02025F44: ; 0x02025F44 mov r1, #0x9a lsl r1, r1, #0x4 add r0, r0, r1 ldr r3, _02025F54 ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0xf bx r3 nop _02025F54: .word MI_CpuFill8 thumb_func_start FUN_02025F58 FUN_02025F58: ; 0x02025F58 push {r4-r7} mov r6, #0x9a lsl r6, r6, #0x4 mov r4, #0x0 add r1, r1, #0x1 add r7, r6, #0x0 _02025F64: add r3, r0, r4 ldrb r5, [r3, r7] cmp r5, r1 ble _02025F76 mov r5, #0x9a lsl r5, r5, #0x4 ldrb r5, [r3, r5] add r5, r5, r2 strb r5, [r3, r6] _02025F76: add r4, r4, #0x1 cmp r4, #0xf blt _02025F64 pop {r4-r7} bx lr thumb_func_start FUN_02025F80 FUN_02025F80: ; 0x02025F80 mov r1, #0x9 mov r3, #0x0 lsl r1, r1, #0x8 _02025F86: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02025F94 add r3, r3, #0x1 cmp r3, #0x28 blt _02025F86 _02025F94: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025F98 FUN_02025F98: ; 0x02025F98 add r1, r0, r1 mov r0, #0x9 lsl r0, r0, #0x8 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02025FA4 FUN_02025FA4: ; 0x02025FA4 push {r3-r6} mov r2, #0x9 add r3, r0, r1 lsl r2, r2, #0x8 ldrb r2, [r3, r2] cmp r1, #0x27 bge _02025FC2 ldr r3, _02025FD0 ; =0x00000901 sub r4, r3, #0x1 _02025FB6: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _02025FB6 _02025FC2: ldr r1, _02025FD4 ; =0x00000927 mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr nop _02025FD0: .word 0x00000901 _02025FD4: .word 0x00000927 thumb_func_start FUN_02025FD8 FUN_02025FD8: ; 0x02025FD8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020259E0 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02025FF6 add r1, r5, r0 mov r0, #0x9 lsl r0, r0, #0x8 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _02025FF6: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025FFC FUN_02025FFC: ; 0x02025FFC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 mov r0, #0x9 lsl r0, r0, #0x8 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _0202601E: ldr r2, [sp, #0x4] cmp r0, r2 beq _02026030 ldrb r6, [r1, #0x0] mov r2, #0x9 add r3, r5, r4 lsl r2, r2, #0x8 strb r6, [r3, r2] add r4, r4, #0x1 _02026030: ldr r2, [sp, #0x0] cmp r0, r2 bne _02026042 ldrb r6, [r7, #0x0] mov r2, #0x9 add r3, r5, r4 lsl r2, r2, #0x8 strb r6, [r3, r2] add r4, r4, #0x1 _02026042: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _0202601E add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026050 FUN_02026050: ; 0x02026050 mov r1, #0x95 mov r3, #0x0 lsl r1, r1, #0x4 _02026056: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02026064 add r3, r3, #0x1 cmp r3, #0x28 blt _02026056 _02026064: add r0, r3, #0x0 bx lr thumb_func_start FUN_02026068 FUN_02026068: ; 0x02026068 add r1, r0, r1 mov r0, #0x95 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02026074 FUN_02026074: ; 0x02026074 add r1, r0, r1 ldr r0, _0202607C ; =0x00000978 ldrb r0, [r1, r0] bx lr .balign 4 _0202607C: .word 0x00000978 thumb_func_start FUN_02026080 FUN_02026080: ; 0x02026080 push {r4-r7} add r2, r0, #0x0 mov r0, #0x95 add r3, r2, r1 lsl r0, r0, #0x4 ldrb r0, [r3, r0] cmp r1, #0x27 mov r12, r0 bge _020260AE ldr r7, _020260BC ; =0x00000951 add r4, r7, #0x0 add r5, r7, #0x0 sub r3, r7, #0x1 add r4, #0x28 add r5, #0x27 _0202609E: add r0, r2, r1 ldrb r6, [r0, r7] add r1, r1, #0x1 cmp r1, #0x27 strb r6, [r0, r3] ldrb r6, [r0, r4] strb r6, [r0, r5] blt _0202609E _020260AE: ldr r0, _020260C0 ; =0x00000977 mov r1, #0x0 strb r1, [r2, r0] mov r0, r12 pop {r4-r7} bx lr nop _020260BC: .word 0x00000951 _020260C0: .word 0x00000977 thumb_func_start FUN_020260C4 FUN_020260C4: ; 0x020260C4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02025A00 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020260E8 add r1, r5, r0 mov r0, #0x95 lsl r0, r0, #0x4 strb r4, [r1, r0] add r0, #0x28 strb r6, [r1, r0] mov r0, #0x1 pop {r4-r6, pc} _020260E8: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020260EC FUN_020260EC: ; 0x020260EC push {r4-r7, lr} sub sp, #0x5c add r7, r0, #0x0 mov r0, #0x95 lsl r0, r0, #0x4 str r1, [sp, #0x0] str r2, [sp, #0x4] add r0, r7, r0 add r1, sp, #0x34 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r0, _02026168 ; =0x00000978 add r1, sp, #0xc add r0, r7, r0 mov r2, #0x28 blx MI_CpuCopy8 ldr r3, [sp, #0x0] add r1, sp, #0x34 add r3, r1, r3 mov r12, r3 ldr r3, [sp, #0x0] add r2, sp, #0xc add r3, r2, r3 add r0, r4, #0x0 str r3, [sp, #0x8] _02026124: ldr r3, [sp, #0x0] cmp r0, r3 beq _0202613C ldrb r5, [r1, #0x0] mov r3, #0x95 add r6, r7, r4 lsl r3, r3, #0x4 strb r5, [r6, r3] ldrb r5, [r2, #0x0] add r3, #0x28 add r4, r4, #0x1 strb r5, [r6, r3] _0202613C: ldr r3, [sp, #0x4] cmp r0, r3 bne _02026158 mov r3, r12 ldrb r5, [r3, #0x0] mov r3, #0x95 add r6, r7, r4 lsl r3, r3, #0x4 strb r5, [r6, r3] ldr r3, [sp, #0x8] add r4, r4, #0x1 ldrb r5, [r3, #0x0] ldr r3, _02026168 ; =0x00000978 strb r5, [r6, r3] _02026158: add r0, r0, #0x1 add r1, r1, #0x1 add r2, r2, #0x1 cmp r0, #0x28 blt _02026124 add sp, #0x5c pop {r4-r7, pc} nop _02026168: .word 0x00000978 thumb_func_start FUN_0202616C FUN_0202616C: ; 0x0202616C ldr r1, _02026184 ; =0x00000928 mov r3, #0x0 _02026170: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _0202617E add r3, r3, #0x1 cmp r3, #0x28 blt _02026170 _0202617E: add r0, r3, #0x0 bx lr nop _02026184: .word 0x00000928 thumb_func_start FUN_02026188 FUN_02026188: ; 0x02026188 add r1, r0, r1 ldr r0, _02026190 ; =0x00000928 ldrb r0, [r1, r0] bx lr .balign 4 _02026190: .word 0x00000928 thumb_func_start FUN_02026194 FUN_02026194: ; 0x02026194 push {r3-r6} ldr r2, _020261BC ; =0x00000928 add r3, r0, r1 ldrb r2, [r3, r2] cmp r1, #0x27 bge _020261B0 ldr r3, _020261C0 ; =0x00000929 sub r4, r3, #0x1 _020261A4: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _020261A4 _020261B0: ldr r1, _020261C4 ; =0x0000094F mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr .balign 4 _020261BC: .word 0x00000928 _020261C0: .word 0x00000929 _020261C4: .word 0x0000094F thumb_func_start FUN_020261C8 FUN_020261C8: ; 0x020261C8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025A20 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020261E4 add r1, r5, r0 ldr r0, _020261E8 ; =0x00000928 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _020261E4: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020261E8: .word 0x00000928 thumb_func_start FUN_020261EC FUN_020261EC: ; 0x020261EC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 ldr r0, _02026238 ; =0x00000928 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _0202620C: ldr r2, [sp, #0x4] cmp r0, r2 beq _0202621C ldrb r6, [r1, #0x0] ldr r2, _02026238 ; =0x00000928 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _0202621C: ldr r2, [sp, #0x0] cmp r0, r2 bne _0202622C ldrb r6, [r7, #0x0] ldr r2, _02026238 ; =0x00000928 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _0202622C: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _0202620C add sp, #0x30 pop {r3-r7, pc} .balign 4 _02026238: .word 0x00000928 thumb_func_start FUN_0202623C FUN_0202623C: ; 0x0202623C ldr r1, _02026254 ; =0x000008D8 mov r3, #0x0 _02026240: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _0202624E add r3, r3, #0x1 cmp r3, #0x28 blt _02026240 _0202624E: add r0, r3, #0x0 bx lr nop _02026254: .word 0x000008D8 thumb_func_start FUN_02026258 FUN_02026258: ; 0x02026258 add r1, r0, r1 ldr r0, _02026260 ; =0x000008D8 ldrb r0, [r1, r0] bx lr .balign 4 _02026260: .word 0x000008D8 thumb_func_start FUN_02026264 FUN_02026264: ; 0x02026264 push {r3-r6} ldr r2, _0202628C ; =0x000008D8 add r3, r0, r1 ldrb r2, [r3, r2] cmp r1, #0x27 bge _02026280 ldr r3, _02026290 ; =0x000008D9 sub r4, r3, #0x1 _02026274: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _02026274 _02026280: ldr r1, _02026294 ; =0x000008FF mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr .balign 4 _0202628C: .word 0x000008D8 _02026290: .word 0x000008D9 _02026294: .word 0x000008FF thumb_func_start FUN_02026298 FUN_02026298: ; 0x02026298 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025A40 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020262B4 add r1, r5, r0 ldr r0, _020262B8 ; =0x000008D8 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _020262B4: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020262B8: .word 0x000008D8 thumb_func_start FUN_020262BC FUN_020262BC: ; 0x020262BC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 ldr r0, _02026308 ; =0x000008D8 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _020262DC: ldr r2, [sp, #0x4] cmp r0, r2 beq _020262EC ldrb r6, [r1, #0x0] ldr r2, _02026308 ; =0x000008D8 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _020262EC: ldr r2, [sp, #0x0] cmp r0, r2 bne _020262FC ldrb r6, [r7, #0x0] ldr r2, _02026308 ; =0x000008D8 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _020262FC: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _020262DC add sp, #0x30 pop {r3-r7, pc} .balign 4 _02026308: .word 0x000008D8 thumb_func_start FUN_0202630C FUN_0202630C: ; 0x0202630C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 cmp r4, #0x40 blt _0202631E bl ErrorHandling _0202631E: ldr r0, _02026350 ; =0x0000010F add r1, r5, r4 strb r7, [r1, r0] lsl r1, r4, #0x1 add r1, r4, r1 add r2, r0, #0x0 add r1, r5, r1 add r2, #0x40 strb r6, [r1, r2] mov r2, #0xf lsl r2, r2, #0x8 add r3, r6, #0x0 and r3, r2 asr r4, r3, #0x8 ldr r3, [sp, #0x18] and r2, r3 asr r2, r2, #0x4 add r4, r4, r2 add r2, r0, #0x0 add r2, #0x41 strb r4, [r1, r2] add r0, #0x42 strb r3, [r1, r0] pop {r3-r7, pc} nop _02026350: .word 0x0000010F thumb_func_start FUN_02026354 FUN_02026354: ; 0x02026354 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _02026362 bl ErrorHandling _02026362: ldr r0, _0202636C ; =0x0000010F add r1, r5, r4 ldrb r0, [r1, r0] pop {r3-r5, pc} nop _0202636C: .word 0x0000010F thumb_func_start FUN_02026370 FUN_02026370: ; 0x02026370 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _0202637E bl ErrorHandling _0202637E: lsl r0, r4, #0x1 add r0, r4, r0 add r1, r5, r0 ldr r0, _02026398 ; =0x0000014F ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 pop {r3-r5, pc} .balign 4 _02026398: .word 0x0000014F thumb_func_start FUN_0202639C FUN_0202639C: ; 0x0202639C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _020263AA bl ErrorHandling _020263AA: lsl r0, r4, #0x1 add r0, r4, r0 add r1, r5, r0 ldr r0, _020263C4 ; =0x00000151 ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 pop {r3-r5, pc} .balign 4 _020263C4: .word 0x00000151 thumb_func_start FUN_020263C8 FUN_020263C8: ; 0x020263C8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _020263D6 bl ErrorHandling _020263D6: ldr r0, _020263F0 ; =0x0000010F mov r1, #0x0 add r2, r5, r4 strb r1, [r2, r0] add r0, #0x40 add r2, r5, r0 lsl r0, r4, #0x1 add r0, r4, r0 add r0, r2, r0 mov r2, #0x3 blx MI_CpuFill8 pop {r3-r5, pc} .balign 4 _020263F0: .word 0x0000010F thumb_func_start FUN_020263F4 FUN_020263F4: ; 0x020263F4 push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 cmp r4, #0x10 blt _02026406 bl ErrorHandling _02026406: lsl r2, r4, #0x1 ldr r1, _02026440 ; =0x0000050C add r0, r5, r4 add r2, r4, r2 add r4, r5, r2 add r2, r1, #0x0 mov r5, #0xf strb r7, [r0, r1] add r2, #0x10 strb r6, [r4, r2] lsl r5, r5, #0x8 add r2, r6, #0x0 and r2, r5 asr r3, r2, #0x8 ldr r2, [sp, #0x18] and r5, r2 asr r5, r5, #0x4 add r5, r3, r5 add r3, r1, #0x0 add r3, #0x11 strb r5, [r4, r3] add r3, r1, #0x0 add r3, #0x12 strb r2, [r4, r3] ldr r2, [sp, #0x1c] add r1, #0x40 strb r2, [r0, r1] pop {r3-r7, pc} nop _02026440: .word 0x0000050C thumb_func_start FUN_02026444 FUN_02026444: ; 0x02026444 add r1, r0, r1 ldr r0, _0202644C ; =0x0000050C ldrb r0, [r1, r0] bx lr .balign 4 _0202644C: .word 0x0000050C thumb_func_start FUN_02026450 FUN_02026450: ; 0x02026450 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202646C ; =0x0000051C ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202646C: .word 0x0000051C thumb_func_start FUN_02026470 FUN_02026470: ; 0x02026470 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202648C ; =0x0000051E ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202648C: .word 0x0000051E thumb_func_start FUN_02026490 FUN_02026490: ; 0x02026490 add r1, r0, r1 ldr r0, _02026498 ; =0x0000054C ldrb r0, [r1, r0] bx lr .balign 4 _02026498: .word 0x0000054C thumb_func_start FUN_0202649C FUN_0202649C: ; 0x0202649C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r3, #0x0 cmp r4, #0x64 blt _020264AE bl ErrorHandling _020264AE: ldr r1, _020264E8 ; =0x0000055C add r0, r5, r4 strb r6, [r0, r1] lsl r1, r4, #0x1 add r1, r4, r1 add r4, r5, r1 mov r5, #0xf lsl r5, r5, #0x8 add r2, r7, #0x0 and r2, r5 asr r3, r2, #0x8 ldr r2, [sp, #0x18] ldr r1, _020264EC ; =0x00000688 and r5, r2 asr r5, r5, #0x4 add r5, r3, r5 strb r7, [r4, r1] add r3, r1, #0x1 strb r5, [r4, r3] add r3, r1, #0x2 strb r2, [r4, r3] add r2, r1, #0x0 ldr r3, [sp, #0x1c] sub r2, #0x64 strb r3, [r0, r2] ldr r2, [sp, #0x20] sub r1, #0xc8 strb r2, [r0, r1] pop {r3-r7, pc} .balign 4 _020264E8: .word 0x0000055C _020264EC: .word 0x00000688 thumb_func_start FUN_020264F0 FUN_020264F0: ; 0x020264F0 add r1, r0, r1 ldr r0, _020264F8 ; =0x0000055C ldrb r0, [r1, r0] bx lr .balign 4 _020264F8: .word 0x0000055C thumb_func_start FUN_020264FC FUN_020264FC: ; 0x020264FC lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _02026518 ; =0x00000688 ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _02026518: .word 0x00000688 thumb_func_start FUN_0202651C FUN_0202651C: ; 0x0202651C lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _02026538 ; =0x0000068A ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _02026538: .word 0x0000068A thumb_func_start FUN_0202653C FUN_0202653C: ; 0x0202653C add r1, r0, r1 ldr r0, _02026544 ; =0x00000624 ldrb r0, [r1, r0] bx lr .balign 4 _02026544: .word 0x00000624 thumb_func_start FUN_02026548 FUN_02026548: ; 0x02026548 add r1, r0, r1 mov r0, #0x17 lsl r0, r0, #0x6 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02026554 FUN_02026554: ; 0x02026554 push {r4-r7} ldr r3, _020265B0 ; =0x00000211 add r7, r0, #0x0 mov r12, r1 mov r0, #0x0 add r1, r7, #0x0 sub r4, r3, #0x1 sub r5, r3, #0x2 _02026564: ldrb r6, [r1, r5] cmp r6, #0x0 bne _020265A0 ldrb r6, [r1, r4] cmp r6, #0x0 bne _020265A0 ldrb r6, [r1, r3] cmp r6, #0x0 bne _020265A0 lsl r1, r0, #0x1 add r1, r0, r1 mov r5, #0xf ldr r4, _020265B4 ; =0x0000020F add r1, r7, r1 mov r3, r12 strb r3, [r1, r4] lsl r5, r5, #0x8 mov r3, r12 and r3, r5 asr r6, r3, #0x8 add r3, r2, #0x0 and r3, r5 asr r3, r3, #0x4 add r5, r6, r3 add r3, r4, #0x1 strb r5, [r1, r3] add r3, r4, #0x2 strb r2, [r1, r3] pop {r4-r7} bx lr _020265A0: add r0, r0, #0x1 add r1, r1, #0x3 cmp r0, #0xff blt _02026564 mov r0, #0x0 pop {r4-r7} bx lr nop _020265B0: .word 0x00000211 _020265B4: .word 0x0000020F thumb_func_start FUN_020265B8 FUN_020265B8: ; 0x020265B8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xff blt _020265C6 bl ErrorHandling _020265C6: ldr r0, _020265DC ; =0x0000020F mov r2, #0x3 add r1, r5, r0 lsl r0, r4, #0x1 add r0, r4, r0 add r0, r1, r0 mov r1, #0x0 blx MI_CpuFill8 pop {r3-r5, pc} nop _020265DC: .word 0x0000020F thumb_func_start FUN_020265E0 FUN_020265E0: ; 0x020265E0 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _020265FC ; =0x0000020F ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _020265FC: .word 0x0000020F thumb_func_start FUN_02026600 FUN_02026600: ; 0x02026600 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202661C ; =0x00000211 ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202661C: .word 0x00000211 thumb_func_start FUN_02026620 FUN_02026620: ; 0x02026620 mov r1, #0x9b lsl r1, r1, #0x4 ldrb r0, [r0, r1] lsl r0, r0, #0x18 lsr r0, r0, #0x1c bne _02026630 mov r0, #0x1 bx lr _02026630: mov r0, #0x0 bx lr thumb_func_start FUN_02026634 FUN_02026634: ; 0x02026634 mov r2, #0x9b lsl r2, r2, #0x4 ldrb r3, [r0, r2] mov r1, #0xf0 bic r3, r1 mov r1, #0x10 orr r1, r3 strb r1, [r0, r2] bx lr .balign 4 thumb_func_start FUN_02026648 FUN_02026648: ; 0x02026648 mov r1, #0x9b lsl r1, r1, #0x4 ldrb r0, [r0, r1] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr thumb_func_start FUN_02026654 FUN_02026654: ; 0x02026654 mov r2, #0x9b lsl r2, r2, #0x4 ldrb r3, [r0, r2] mov r1, #0xf bic r3, r1 strb r3, [r0, r2] bx lr .balign 4 thumb_func_start FUN_02026664 FUN_02026664: ; 0x02026664 push {r3-r4} cmp r1, #0x2c blt _0202667E cmp r1, #0x3b bgt _0202667E ldr r2, _02026684 ; =0x0000080C mov r3, #0x1 sub r1, #0x2c ldr r4, [r0, r2] lsl r3, r1 add r1, r4, #0x0 orr r1, r3 str r1, [r0, r2] _0202667E: pop {r3-r4} bx lr nop _02026684: .word 0x0000080C thumb_func_start FUN_02026688 FUN_02026688: ; 0x02026688 cmp r1, #0x2c blt _02026690 cmp r1, #0x3b ble _02026694 _02026690: mov r0, #0x1 bx lr _02026694: ldr r2, _020266AC ; =0x0000080C sub r1, #0x2c ldr r3, [r0, r2] mov r0, #0x1 add r2, r0, #0x0 lsl r2, r1 add r1, r3, #0x0 tst r1, r2 beq _020266A8 mov r0, #0x0 _020266A8: bx lr nop _020266AC: .word 0x0000080C thumb_func_start FUN_020266B0 FUN_020266B0: ; 0x020266B0 ldr r1, _020266C4 ; =0x000009AF ldrb r2, [r0, r1] cmp r2, #0x63 blo _020266BE mov r2, #0x0 strb r2, [r0, r1] bx lr _020266BE: add r2, r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _020266C4: .word 0x000009AF thumb_func_start FUN_020266C8 FUN_020266C8: ; 0x020266C8 ldr r1, _020266D0 ; =0x000009AF ldrb r0, [r0, r1] bx lr nop _020266D0: .word 0x000009AF thumb_func_start FUN_020266D4 FUN_020266D4: ; 0x020266D4 ldr r3, _020266DC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x94 bx r3 .balign 4 _020266DC: .word MI_CpuFill8 thumb_func_start FUN_020266E0 FUN_020266E0: ; 0x020266E0 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2d blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x2d mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x8c strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x8e strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x90 strb r1, [r0, #0x0] add r4, #0x91 strb r1, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02026714 FUN_02026714: ; 0x02026714 mov r1, #0x0 add r0, #0x91 strb r1, [r0, #0x0] bx lr thumb_func_start FUN_0202671C FUN_0202671C: ; 0x0202671C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x20 blt _0202672E bl ErrorHandling _0202672E: cmp r6, #0x20 blt _02026736 bl ErrorHandling _02026736: ldr r0, [sp, #0x18] cmp r0, #0x20 blt _02026740 bl ErrorHandling _02026740: cmp r5, #0x0 bne _02026748 bl ErrorHandling _02026748: cmp r4, #0x0 beq _02026774 cmp r4, #0x10 bge _02026762 sub r1, r4, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 strb r6, [r5, r0] ldr r1, [sp, #0x18] add r0, r5, r0 strb r1, [r0, #0x1] strb r7, [r0, #0x2] pop {r3-r7, pc} _02026762: sub r4, #0x10 lsl r2, r4, #0x1 add r0, r5, r2 add r0, #0x2d strb r6, [r0, #0x0] add r0, r5, r2 ldr r1, [sp, #0x18] add r0, #0x2e strb r1, [r0, #0x0] _02026774: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026778 FUN_02026778: ; 0x02026778 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_020267C4 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r3, r7, #0x0 str r4, [sp, #0x0] bl FUN_0202671C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026798 FUN_02026798: ; 0x02026798 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blt _020267A8 mov r0, #0x5 bx lr _020267A8: cmp r0, #0xa blt _020267B0 mov r0, #0x4 bx lr _020267B0: cmp r0, #0x3 blt _020267B8 mov r0, #0x3 bx lr _020267B8: cmp r0, #0x1 blt _020267C0 mov r0, #0x2 bx lr _020267C0: mov r0, #0x1 bx lr thumb_func_start FUN_020267C4 FUN_020267C4: ; 0x020267C4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _020267D2 bl ErrorHandling _020267D2: cmp r5, #0x0 bne _020267DE add r0, r4, #0x0 bl FUN_02026798 pop {r3-r5, pc} _020267DE: cmp r5, #0x10 bge _020267EE sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 add r0, r4, r0 ldrb r0, [r0, #0x2] pop {r3-r5, pc} _020267EE: sub r5, #0x10 lsl r1, r5, #0x1 add r0, r4, r1 add r0, #0x2d ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202680A add r0, r4, r1 add r0, #0x2e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202680A mov r0, #0x6 pop {r3-r5, pc} _0202680A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026810 FUN_02026810: ; 0x02026810 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _0202681E bl ErrorHandling _0202681E: cmp r5, #0x0 bne _02026826 mov r0, #0xf pop {r3-r5, pc} _02026826: cmp r5, #0x10 bge _02026834 sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 ldrb r0, [r4, r0] pop {r3-r5, pc} _02026834: sub r5, #0x10 lsl r0, r5, #0x1 add r0, r4, r0 add r0, #0x2d ldrb r0, [r0, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02026840 FUN_02026840: ; 0x02026840 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _0202684E bl ErrorHandling _0202684E: cmp r5, #0x0 bne _02026856 mov r0, #0xc pop {r3-r5, pc} _02026856: cmp r5, #0x10 bge _02026866 sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 add r0, r4, r0 ldrb r0, [r0, #0x1] pop {r3-r5, pc} _02026866: sub r5, #0x10 lsl r0, r5, #0x1 add r0, r4, r0 add r0, #0x2e ldrb r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026874 FUN_02026874: ; 0x02026874 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blo _02026884 mov r0, #0x0 bx lr _02026884: cmp r0, #0xa blo _0202688C mov r0, #0x6 bx lr _0202688C: cmp r0, #0x3 blo _02026894 mov r0, #0xb bx lr _02026894: cmp r0, #0x1 blo _0202689C mov r0, #0xf bx lr _0202689C: mov r0, #0x10 bx lr thumb_func_start FUN_020268A0 FUN_020268A0: ; 0x020268A0 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blo _020268B0 mov r0, #0xf bx lr _020268B0: cmp r0, #0xa blo _020268B8 mov r0, #0xf bx lr _020268B8: cmp r0, #0x3 blo _020268C0 mov r0, #0xf bx lr _020268C0: cmp r0, #0x1 blo _020268C8 mov r0, #0xc bx lr _020268C8: mov r0, #0xa bx lr thumb_func_start FUN_020268CC FUN_020268CC: ; 0x020268CC ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_020268D4 FUN_020268D4: ; 0x020268D4 push {r3, lr} bl FUN_020269A0 cmp r0, #0x4 bne _020268E2 mov r0, #0x1 pop {r3, pc} _020268E2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020268E8 FUN_020268E8: ; 0x020268E8 ldr r3, [r0, #0x0] ldr r2, _020268F8 ; =0xFFF00000 and r3, r2 ldr r2, _020268FC ; =0x000FFFFF and r1, r2 orr r1, r3 str r1, [r0, #0x0] bx lr .balign 4 _020268F8: .word 0xFFF00000 _020268FC: .word 0x000FFFFF thumb_func_start FUN_02026900 FUN_02026900: ; 0x02026900 ldr r0, [r0, #0x4] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026908 FUN_02026908: ; 0x02026908 push {r3-r4} ldr r2, [r0, #0x4] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _0202692C ; =0x000F423F cmp r4, r1 bhs _02026926 ldr r1, _02026930 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026934 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x4] _02026926: pop {r3-r4} bx lr nop _0202692C: .word 0x000F423F _02026930: .word 0xFFF00000 _02026934: .word 0x000FFFFF thumb_func_start FUN_02026938 FUN_02026938: ; 0x02026938 ldr r0, [r0, #0x8] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026940 FUN_02026940: ; 0x02026940 push {r3-r4} ldr r2, [r0, #0x8] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026964 ; =0x000F423F cmp r4, r1 bhs _0202695E ldr r1, _02026968 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _0202696C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x8] _0202695E: pop {r3-r4} bx lr nop _02026964: .word 0x000F423F _02026968: .word 0xFFF00000 _0202696C: .word 0x000FFFFF thumb_func_start FUN_02026970 FUN_02026970: ; 0x02026970 push {r3-r4} ldr r2, [r0, #0xc] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026994 ; =0x000F423F cmp r4, r1 bhs _0202698E ldr r1, _02026998 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _0202699C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0xc] _0202698E: pop {r3-r4} bx lr nop _02026994: .word 0x000F423F _02026998: .word 0xFFF00000 _0202699C: .word 0x000FFFFF thumb_func_start FUN_020269A0 FUN_020269A0: ; 0x020269A0 ldr r0, [r0, #0x38] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blt _020269AE mov r0, #0x4 bx lr _020269AE: cmp r0, #0xa blt _020269B6 mov r0, #0x3 bx lr _020269B6: cmp r0, #0x3 blt _020269BE mov r0, #0x2 bx lr _020269BE: cmp r0, #0x1 blt _020269C6 mov r0, #0x1 bx lr _020269C6: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020269CC FUN_020269CC: ; 0x020269CC ldr r0, [r0, #0x38] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_020269D4 FUN_020269D4: ; 0x020269D4 push {r3-r4} ldr r2, [r0, #0x38] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _020269F8 ; =0x000F423F cmp r4, r1 bhs _020269F2 ldr r1, _020269FC ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026A00 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x38] _020269F2: pop {r3-r4} bx lr nop _020269F8: .word 0x000F423F _020269FC: .word 0xFFF00000 _02026A00: .word 0x000FFFFF thumb_func_start FUN_02026A04 FUN_02026A04: ; 0x02026A04 ldr r0, [r0, #0x10] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026A0C FUN_02026A0C: ; 0x02026A0C push {r4-r5} cmp r1, #0x0 ble _02026A2C ldr r4, [r0, #0x10] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026A44 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026A2C ldr r1, _02026A48 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x10] pop {r4-r5} bx lr _02026A2C: ldr r3, [r0, #0x10] ldr r2, _02026A48 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026A4C ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x10] pop {r4-r5} bx lr .balign 4 _02026A44: .word 0x000F423F _02026A48: .word 0xFFF00000 _02026A4C: .word 0x000FFFFF thumb_func_start FUN_02026A50 FUN_02026A50: ; 0x02026A50 ldr r0, [r0, #0x14] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026A58 FUN_02026A58: ; 0x02026A58 push {r4-r5} cmp r1, #0x0 ble _02026A78 ldr r4, [r0, #0x14] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026A90 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026A78 ldr r1, _02026A94 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x14] pop {r4-r5} bx lr _02026A78: ldr r3, [r0, #0x14] ldr r2, _02026A94 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026A98 ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x14] pop {r4-r5} bx lr .balign 4 _02026A90: .word 0x000F423F _02026A94: .word 0xFFF00000 _02026A98: .word 0x000FFFFF thumb_func_start FUN_02026A9C FUN_02026A9C: ; 0x02026A9C push {r4-r5} cmp r1, #0x0 ble _02026ABC ldr r4, [r0, #0x18] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026AD4 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026ABC ldr r1, _02026AD8 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x18] pop {r4-r5} bx lr _02026ABC: ldr r3, [r0, #0x18] ldr r2, _02026AD8 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026ADC ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x18] pop {r4-r5} bx lr .balign 4 _02026AD4: .word 0x000F423F _02026AD8: .word 0xFFF00000 _02026ADC: .word 0x000FFFFF thumb_func_start FUN_02026AE0 FUN_02026AE0: ; 0x02026AE0 ldr r0, [r0, #0x1c] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026AE8 FUN_02026AE8: ; 0x02026AE8 push {r3-r4} ldr r2, [r0, #0x1c] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B0C ; =0x000F423F cmp r4, r1 bhs _02026B06 ldr r1, _02026B10 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B14 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x1c] _02026B06: pop {r3-r4} bx lr nop _02026B0C: .word 0x000F423F _02026B10: .word 0xFFF00000 _02026B14: .word 0x000FFFFF thumb_func_start FUN_02026B18 FUN_02026B18: ; 0x02026B18 ldr r0, [r0, #0x20] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B20 FUN_02026B20: ; 0x02026B20 push {r3-r4} ldr r2, [r0, #0x20] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B44 ; =0x000F423F cmp r4, r1 bhs _02026B3E ldr r1, _02026B48 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B4C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x20] _02026B3E: pop {r3-r4} bx lr nop _02026B44: .word 0x000F423F _02026B48: .word 0xFFF00000 _02026B4C: .word 0x000FFFFF thumb_func_start FUN_02026B50 FUN_02026B50: ; 0x02026B50 ldr r0, [r0, #0x24] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B58 FUN_02026B58: ; 0x02026B58 push {r3-r4} ldr r2, [r0, #0x24] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B7C ; =0x000F423F cmp r4, r1 bhs _02026B76 ldr r1, _02026B80 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B84 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x24] _02026B76: pop {r3-r4} bx lr nop _02026B7C: .word 0x000F423F _02026B80: .word 0xFFF00000 _02026B84: .word 0x000FFFFF thumb_func_start FUN_02026B88 FUN_02026B88: ; 0x02026B88 ldr r0, [r0, #0x28] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B90 FUN_02026B90: ; 0x02026B90 push {r3-r4} ldr r2, [r0, #0x28] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026BB4 ; =0x000F423F cmp r4, r1 bhs _02026BAE ldr r1, _02026BB8 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026BBC ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x28] _02026BAE: pop {r3-r4} bx lr nop _02026BB4: .word 0x000F423F _02026BB8: .word 0xFFF00000 _02026BBC: .word 0x000FFFFF thumb_func_start FUN_02026BC0 FUN_02026BC0: ; 0x02026BC0 ldr r0, [r0, #0x2c] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026BC8 FUN_02026BC8: ; 0x02026BC8 push {r3-r4} ldr r2, [r0, #0x2c] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026BEC ; =0x000F423F cmp r4, r1 bhs _02026BE6 ldr r1, _02026BF0 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026BF4 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x2c] _02026BE6: pop {r3-r4} bx lr nop _02026BEC: .word 0x000F423F _02026BF0: .word 0xFFF00000 _02026BF4: .word 0x000FFFFF thumb_func_start FUN_02026BF8 FUN_02026BF8: ; 0x02026BF8 ldr r0, [r0, #0x30] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026C00 FUN_02026C00: ; 0x02026C00 push {r3-r4} ldr r2, [r0, #0x30] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026C24 ; =0x000F423F cmp r4, r1 bhs _02026C1E ldr r1, _02026C28 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026C2C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x30] _02026C1E: pop {r3-r4} bx lr nop _02026C24: .word 0x000F423F _02026C28: .word 0xFFF00000 _02026C2C: .word 0x000FFFFF thumb_func_start FUN_02026C30 FUN_02026C30: ; 0x02026C30 ldr r0, [r0, #0x34] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026C38 FUN_02026C38: ; 0x02026C38 push {r3-r4} ldr r2, [r0, #0x34] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026C5C ; =0x000F423F cmp r4, r1 bhs _02026C56 ldr r1, _02026C60 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026C64 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x34] _02026C56: pop {r3-r4} bx lr nop _02026C5C: .word 0x000F423F _02026C60: .word 0xFFF00000 _02026C64: .word 0x000FFFFF thumb_func_start FUN_02026C68 FUN_02026C68: ; 0x02026C68 push {r3-r4} add r4, r0, #0x0 add r4, #0x8c strh r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x8e strh r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x90 strb r3, [r1, #0x0] mov r1, #0x1 add r0, #0x91 strb r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02026C88 FUN_02026C88: ; 0x02026C88 add r0, #0x8c ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026C90 FUN_02026C90: ; 0x02026C90 add r0, #0x8e ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026C98 FUN_02026C98: ; 0x02026C98 add r0, #0x90 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026CA0 FUN_02026CA0: ; 0x02026CA0 add r0, #0x91 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026CA8 FUN_02026CA8: ; 0x02026CA8 ldr r3, _02026CB0 ; =FUN_02022610 mov r1, #0xc bx r3 nop _02026CB0: .word FUN_02022610 thumb_func_start FUN_02026CB4 FUN_02026CB4: ; 0x02026CB4 push {r3, lr} mov r1, #0xc bl FUN_02022610 add r0, #0x50 pop {r3, pc} thumb_func_start FUN_02026CC0 FUN_02026CC0: ; 0x02026CC0 add r0, #0x50 bx lr thumb_func_start FUN_02026CC4 FUN_02026CC4: ; 0x02026CC4 ldr r3, _02026CCC ; =FUN_02022610 mov r1, #0xc bx r3 nop _02026CCC: .word FUN_02022610 thumb_func_start FUN_02026CD0 FUN_02026CD0: ; 0x02026CD0 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 bl FUN_020671BC add r2, r5, #0x0 strh r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa bl FUN_020671BC mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] add r0, r5, #0x0 add r0, #0x31 strb r6, [r0, #0x0] add r0, r5, #0x0 add r0, #0x32 strb r7, [r0, #0x0] add r1, sp, #0x8 mov r0, #0x10 ldrsb r0, [r1, r0] add r5, #0x30 strb r0, [r5, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026D34 FUN_02026D34: ; 0x02026D34 push {r3-r6, lr} sub sp, #0xc add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r4, #0x0 add r1, sp, #0x4 add r2, sp, #0x8 bl FUN_021DB858 add r0, r4, #0x0 bl FUN_021DB7E8 add r4, r0, #0x0 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D5E bl ErrorHandling _02026D5E: mov r0, #0x1 ldr r1, [sp, #0x8] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D6C bl ErrorHandling _02026D6C: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _02026D78 bl ErrorHandling _02026D78: lsl r0, r4, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] ldr r3, [sp, #0x8] lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026CD0 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02026D98 FUN_02026D98: ; 0x02026D98 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r1, r5, #0x0 add r4, r2, #0x0 add r1, #0x20 mov r2, #0x8 bl FUN_02021EF0 add r5, #0x34 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02026DB0 FUN_02026DB0: ; 0x02026DB0 strb r1, [r0, #0x0] ldr r1, _02026DC0 ; =0xFFFFFFF0 strb r2, [r0, #0x1] strb r3, [r0, #0x2] add r1, sp ldrb r1, [r1, #0x10] strb r1, [r0, #0x3] bx lr .balign 4 _02026DC0: .word 0xFFFFFFF0 thumb_func_start FUN_02026DC4 FUN_02026DC4: ; 0x02026DC4 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x3d blo _02026DD4 bl ErrorHandling _02026DD4: lsr r2, r4, #0x1f lsl r1, r4, #0x1d sub r1, r1, r2 mov r0, #0x1d ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a lsr r1, r0, #0x18 lsr r0, r4, #0x3 lsl r0, r0, #0x18 mov r2, #0xf lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r6, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026E08 FUN_02026E08: ; 0x02026E08 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3d blo _02026E16 bl ErrorHandling _02026E16: lsr r3, r4, #0x1f lsl r2, r4, #0x1d lsr r0, r4, #0x3 lsl r0, r0, #0x18 lsr r0, r0, #0x16 sub r2, r2, r3 mov r1, #0x1d ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 ldr r0, [r5, r0] lsr r1, r1, #0x18 lsl r1, r1, #0x1a add r2, r0, #0x0 lsr r1, r1, #0x18 lsr r2, r1 mov r0, #0xf and r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x9 bls _02026E44 mov r0, #0x9 _02026E44: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026E48 FUN_02026E48: ; 0x02026E48 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x2 blo _02026E58 bl ErrorHandling _02026E58: lsr r2, r6, #0x1f lsl r1, r6, #0x1b sub r1, r1, r2 mov r0, #0x1b ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 lsr r0, r6, #0x5 lsl r0, r0, #0x18 mov r2, #0x1 lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r4, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026E88 FUN_02026E88: ; 0x02026E88 lsr r2, r1, #0x5 lsl r2, r2, #0x18 lsr r2, r2, #0x16 ldr r3, [r0, r2] lsr r2, r1, #0x1f lsl r1, r1, #0x1b sub r1, r1, r2 mov r0, #0x1b ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r3, #0x0 lsr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr .balign 4 thumb_func_start FUN_02026EB0 FUN_02026EB0: ; 0x02026EB0 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x12 bls _02026EC0 bl ErrorHandling _02026EC0: lsr r2, r6, #0x1f lsl r1, r6, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1b lsr r1, r0, #0x18 lsr r0, r6, #0x2 lsl r0, r0, #0x18 mov r2, #0xff lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r4, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026EF4 FUN_02026EF4: ; 0x02026EF4 lsr r2, r1, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x16 ldr r0, [r0, r2] lsr r3, r1, #0x1f lsl r2, r1, #0x1e sub r2, r2, r3 mov r1, #0x1e ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1b lsr r1, r1, #0x18 lsr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_02026F18 FUN_02026F18: ; 0x02026F18 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02026F20: lsl r1, r4, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 bl FUN_02026EF4 cmp r0, #0x12 beq _02026F30 add r5, r5, #0x1 _02026F30: add r4, r4, #0x1 cmp r4, #0x12 blt _02026F20 lsl r0, r5, #0x18 lsr r0, r0, #0x18 pop {r4-r6, pc} thumb_func_start FUN_02026F3C FUN_02026F3C: ; 0x02026F3C push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x2 add r4, r2, #0x0 bl FUN_02068E14 mov r1, #0x80 strb r1, [r5, #0x0] mov r1, #0x28 sub r1, r1, r0 mov r0, #0x8d sub r0, r0, r1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] add r0, #0x28 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026F60 FUN_02026F60: ; 0x02026F60 push {r3-r7, lr} add r7, r0, #0x0 ldr r6, _02026FC8 ; =0x00001234 mov r4, #0x0 add r5, r7, #0x0 _02026F6A: add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x74 blx Call_FillMemWithValue str r6, [r5, #0x0] add r4, r4, #0x1 add r5, #0x74 cmp r4, #0xb blt _02026F6A ldr r0, _02026FCC ; =0x000004FC mov r6, #0x0 add r4, r7, r0 add r5, r7, #0x0 _02026F86: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x98 blx Call_FillMemWithValue ldr r1, _02026FC8 ; =0x00001234 ldr r0, _02026FCC ; =0x000004FC add r6, r6, #0x1 str r1, [r5, r0] add r4, #0x98 add r5, #0x98 cmp r6, #0x5 blt _02026F86 ldr r0, _02026FD0 ; =0x000007F4 mov r1, #0x0 add r0, r7, r0 mov r2, #0x40 blx Call_FillMemWithValue ldr r5, _02026FD4 ; =0x0000081C mov r4, #0x0 mov r6, #0x12 _02026FB2: lsl r2, r4, #0x18 add r0, r7, r5 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02026EB0 add r4, r4, #0x1 cmp r4, #0x12 blt _02026FB2 pop {r3-r7, pc} nop _02026FC8: .word 0x00001234 _02026FCC: .word 0x000004FC _02026FD0: .word 0x000007F4 _02026FD4: .word 0x0000081C thumb_func_start FUN_02026FD8 FUN_02026FD8: ; 0x02026FD8 ldr r0, _02026FDC ; =0x00000834 bx lr .balign 4 _02026FDC: .word 0x00000834 thumb_func_start FUN_02026FE0 FUN_02026FE0: ; 0x02026FE0 mov r0, #0x74 bx lr thumb_func_start FUN_02026FE4 FUN_02026FE4: ; 0x02026FE4 mov r0, #0x98 bx lr thumb_func_start FUN_02026FE8 FUN_02026FE8: ; 0x02026FE8 push {r4, lr} mov r1, #0x98 bl FUN_02016998 mov r1, #0x0 mov r2, #0x98 add r4, r0, #0x0 blx Call_FillMemWithValue ldr r0, _02027004 ; =0x00001234 str r0, [r4, #0x0] add r0, r4, #0x0 pop {r4, pc} nop _02027004: .word 0x00001234 thumb_func_start FUN_02027008 FUN_02027008: ; 0x02027008 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0xb blt _02027016 bl ErrorHandling _02027016: mov r0, #0x74 add r4, r6, #0x0 mul r4, r0 ldr r1, [r5, r4] ldr r0, _0202703C ; =0x00001234 cmp r1, r0 beq _0202702A ldr r0, _02027040 ; =0x00002345 cmp r1, r0 bne _0202702E _0202702A: mov r0, #0x1 b _02027030 _0202702E: mov r0, #0x0 _02027030: cmp r0, #0x0 bne _02027038 bl ErrorHandling _02027038: add r0, r5, r4 pop {r4-r6, pc} .balign 4 _0202703C: .word 0x00001234 _02027040: .word 0x00002345 thumb_func_start FUN_02027044 FUN_02027044: ; 0x02027044 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0x5 blt _02027052 bl ErrorHandling _02027052: mov r0, #0x98 add r4, r6, #0x0 mul r4, r0 ldr r0, _02027080 ; =0x000004FC add r1, r5, r4 ldr r1, [r1, r0] ldr r0, _02027084 ; =0x00001234 cmp r1, r0 beq _0202706A ldr r0, _02027088 ; =0x00002345 cmp r1, r0 bne _0202706E _0202706A: mov r0, #0x1 b _02027070 _0202706E: mov r0, #0x0 _02027070: cmp r0, #0x0 bne _02027078 bl ErrorHandling _02027078: ldr r0, _02027080 ; =0x000004FC add r0, r5, r0 add r0, r0, r4 pop {r4-r6, pc} .balign 4 _02027080: .word 0x000004FC _02027084: .word 0x00001234 _02027088: .word 0x00002345 thumb_func_start FUN_0202708C FUN_0202708C: ; 0x0202708C ldr r1, _02027094 ; =0x000007F4 add r0, r0, r1 bx lr nop _02027094: .word 0x000007F4 thumb_func_start FUN_02027098 FUN_02027098: ; 0x02027098 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xb blt _020270A6 bl ErrorHandling _020270A6: mov r0, #0x74 mul r0, r4 add r0, r5, r0 bl FUN_0202729C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020270B4 FUN_020270B4: ; 0x020270B4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x5 blt _020270C2 bl ErrorHandling _020270C2: ldr r0, _020270D4 ; =0x000004FC add r1, r5, r0 mov r0, #0x98 mul r0, r4 add r0, r1, r0 bl FUN_020276D8 pop {r3-r5, pc} nop _020270D4: .word 0x000004FC thumb_func_start FUN_020270D8 FUN_020270D8: ; 0x020270D8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r2, #0x0 mov r4, #0x1 bl FUN_02027114 cmp r6, #0x3d bhs _020270F2 add r0, r0, r5 cmp r0, #0x9 bls _020270FA mov r4, #0x0 b _020270FA _020270F2: add r0, r0, r5 cmp r0, #0x1 bls _020270FA mov r4, #0x0 _020270FA: add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02027100 FUN_02027100: ; 0x02027100 push {r3, lr} bl FUN_0202714C cmp r0, #0x12 beq _0202710E mov r0, #0x1 pop {r3, pc} _0202710E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02027114 FUN_02027114: ; 0x02027114 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x64 blo _02027122 bl ErrorHandling _02027122: cmp r5, #0x3d bhs _02027132 lsl r1, r5, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 pop {r3-r5, pc} _02027132: bhs _02027138 bl ErrorHandling _02027138: sub r5, #0x3d lsl r0, r5, #0x18 lsr r1, r0, #0x18 add r4, #0x20 lsl r1, r1, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02026E88 pop {r3-r5, pc} thumb_func_start FUN_0202714C FUN_0202714C: ; 0x0202714C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x12 blo _0202715A bl ErrorHandling _0202715A: add r5, #0x28 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026EF4 pop {r3-r5, pc} thumb_func_start FUN_02027168 FUN_02027168: ; 0x02027168 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02027170: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02027114 add r4, r4, #0x1 add r5, r5, r0 cmp r4, #0x64 blt _02027170 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02027184 FUN_02027184: ; 0x02027184 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0202718C: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202714C cmp r0, #0x12 beq _0202719A add r5, r5, #0x1 _0202719A: add r4, r4, #0x1 cmp r4, #0x12 blt _0202718C add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020271A4 FUN_020271A4: ; 0x020271A4 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x64 blo _020271B4 bl ErrorHandling _020271B4: cmp r4, #0x3d bhs _020271DA lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 add r0, r0, r6 lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r1, #0x9 bls _020271CE mov r1, #0x9 _020271CE: lsl r2, r4, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026DC4 pop {r4-r6, pc} _020271DA: add r0, r5, #0x0 lsl r1, r4, #0x18 add r0, #0x20 lsr r1, r1, #0x18 bl FUN_02026E88 add r0, r0, r6 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x1 bls _020271F2 mov r6, #0x1 _020271F2: cmp r4, #0x3d bhs _020271FA bl ErrorHandling _020271FA: sub r4, #0x3d lsl r0, r4, #0x18 lsr r2, r0, #0x18 add r5, #0x20 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02026E48 pop {r4-r6, pc} thumb_func_start FUN_02027210 FUN_02027210: ; 0x02027210 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x64 blo _02027220 bl ErrorHandling _02027220: cmp r4, #0x3d bhs _02027248 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 cmp r0, r6 bls _0202723A sub r0, r0, r6 lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _0202723C _0202723A: mov r1, #0x0 _0202723C: lsl r2, r4, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026DC4 pop {r4-r6, pc} _02027248: bhs _0202724E bl ErrorHandling _0202724E: sub r4, #0x3d lsl r0, r4, #0x18 lsr r2, r0, #0x18 add r5, #0x20 lsl r2, r2, #0x18 add r0, r5, #0x0 mov r1, #0x0 lsr r2, r2, #0x18 bl FUN_02026E48 pop {r4-r6, pc} thumb_func_start FUN_02027264 FUN_02027264: ; 0x02027264 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x12 blo _02027272 bl ErrorHandling _02027272: add r0, r5, #0x0 lsl r1, r4, #0x18 add r0, #0x28 lsr r1, r1, #0x18 bl FUN_02026EF4 cmp r0, #0x12 bne _02027298 add r0, r5, #0x0 add r0, #0x28 bl FUN_02026F18 lsl r2, r4, #0x18 add r5, #0x28 add r1, r0, #0x0 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026EB0 _02027298: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202729C FUN_0202729C: ; 0x0202729C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020272CC ; =0x00001234 cmp r1, r0 beq _020272AE ldr r0, _020272D0 ; =0x00002345 cmp r1, r0 bne _020272B2 _020272AE: mov r0, #0x1 b _020272B4 _020272B2: mov r0, #0x0 _020272B4: cmp r0, #0x0 bne _020272BC bl ErrorHandling _020272BC: ldr r1, [r4, #0x0] ldr r0, _020272D0 ; =0x00002345 cmp r1, r0 bne _020272C8 mov r0, #0x1 pop {r4, pc} _020272C8: mov r0, #0x0 pop {r4, pc} .balign 4 _020272CC: .word 0x00001234 _020272D0: .word 0x00002345 thumb_func_start FUN_020272D4 FUN_020272D4: ; 0x020272D4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027304 ; =0x00001234 cmp r1, r0 beq _020272E6 ldr r0, _02027308 ; =0x00002345 cmp r1, r0 bne _020272EA _020272E6: mov r0, #0x1 b _020272EC _020272EA: mov r0, #0x0 _020272EC: cmp r0, #0x0 bne _020272F4 bl ErrorHandling _020272F4: ldr r0, _02027308 ; =0x00002345 str r0, [r4, #0x0] ldr r0, _0202730C ; =0x020ECAC4 add r4, #0x71 ldrb r0, [r0, #0x0] strb r0, [r4, #0x0] pop {r4, pc} nop _02027304: .word 0x00001234 _02027308: .word 0x00002345 _0202730C: .word 0x020ECAC4 thumb_func_start FUN_02027310 FUN_02027310: ; 0x02027310 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027340 ; =0x00001234 cmp r1, r0 beq _02027322 ldr r0, _02027344 ; =0x00002345 cmp r1, r0 bne _02027326 _02027322: mov r0, #0x1 b _02027328 _02027326: mov r0, #0x0 _02027328: cmp r0, #0x0 bne _02027330 bl ErrorHandling _02027330: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x74 blx Call_FillMemWithValue ldr r0, _02027340 ; =0x00001234 str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02027340: .word 0x00001234 _02027344: .word 0x00002345 thumb_func_start FUN_02027348 FUN_02027348: ; 0x02027348 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027378 ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202735E ldr r0, _0202737C ; =0x00002345 cmp r1, r0 bne _02027362 _0202735E: mov r0, #0x1 b _02027364 _02027362: mov r0, #0x0 _02027364: cmp r0, #0x0 bne _0202736C bl ErrorHandling _0202736C: add r0, r5, #0x4 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D34 pop {r4-r6, pc} .balign 4 _02027378: .word 0x00001234 _0202737C: .word 0x00002345 thumb_func_start FUN_02027380 FUN_02027380: ; 0x02027380 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] add r6, r2, #0x0 bl FUN_02013ECC add r1, sp, #0xc strh r0, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] ldrh r0, [r1, #0x0] strh r0, [r1, #0x4] ldrh r0, [r1, #0x2] strh r0, [r1, #0x6] ldr r0, [r4, #0x4] bl FUN_02013F00 str r0, [sp, #0x8] cmp r6, #0xa blt _020273B0 bl ErrorHandling _020273B0: add r1, sp, #0xc mov r0, #0x4 ldrsh r1, [r1, r0] add r0, #0xfc cmp r1, r0 blt _020273C0 bl ErrorHandling _020273C0: add r1, sp, #0xc mov r0, #0x6 ldrsh r7, [r1, r0] add r0, #0xfa cmp r7, r0 blt _020273D0 bl ErrorHandling _020273D0: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _020273DE bl ErrorHandling _020273DE: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x3c] str r0, [sp, #0x4] tst r0, r1 beq _020273EE bl ErrorHandling _020273EE: ldr r1, [r5, #0x0] ldr r0, _02027440 ; =0x00001234 cmp r1, r0 beq _020273FC ldr r0, _02027444 ; =0x00002345 cmp r1, r0 bne _02027400 _020273FC: mov r0, #0x1 b _02027402 _02027400: mov r0, #0x0 _02027402: cmp r0, #0x0 bne _0202740A bl ErrorHandling _0202740A: ldr r0, [sp, #0x8] add r1, r5, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0xc mov r2, #0x4 ldrsh r2, [r3, r2] lsl r3, r7, #0x18 add r1, #0x48 lsl r0, r6, #0x2 add r0, r1, r0 ldr r1, [r4, #0x0] lsl r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026DB0 ldr r1, [r5, #0x3c] ldr r0, [sp, #0x4] orr r0, r1 str r0, [r5, #0x3c] add sp, #0x14 pop {r4-r7, pc} nop _02027440: .word 0x00001234 _02027444: .word 0x00002345 thumb_func_start FUN_02027448 FUN_02027448: ; 0x02027448 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027470 ; =0x00001234 cmp r1, r0 beq _0202745C ldr r0, _02027474 ; =0x00002345 cmp r1, r0 bne _02027460 _0202745C: mov r0, #0x1 b _02027462 _02027460: mov r0, #0x0 _02027462: cmp r0, #0x0 bne _0202746A bl ErrorHandling _0202746A: add r5, #0x70 strb r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _02027470: .word 0x00001234 _02027474: .word 0x00002345 thumb_func_start FUN_02027478 FUN_02027478: ; 0x02027478 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020274B0 ; =0x00001234 cmp r1, r0 beq _0202748C ldr r0, _020274B4 ; =0x00002345 cmp r1, r0 bne _02027490 _0202748C: mov r0, #0x1 b _02027492 _02027490: mov r0, #0x0 _02027492: cmp r0, #0x0 bne _0202749A bl ErrorHandling _0202749A: add r0, r5, #0x0 add r0, #0x40 bl FUN_02013724 add r5, #0x40 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02013998 pop {r3-r5, pc} .balign 4 _020274B0: .word 0x00001234 _020274B4: .word 0x00002345 thumb_func_start FUN_020274B8 FUN_020274B8: ; 0x020274B8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020274E8 ; =0x00001234 cmp r1, r0 beq _020274CC ldr r0, _020274EC ; =0x00002345 cmp r1, r0 bne _020274D0 _020274CC: mov r0, #0x1 b _020274D2 _020274D0: mov r0, #0x0 _020274D2: cmp r0, #0x0 bne _020274DA bl ErrorHandling _020274DA: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x74 blx memcpy pop {r3-r5, pc} nop _020274E8: .word 0x00001234 _020274EC: .word 0x00002345 thumb_func_start FUN_020274F0 FUN_020274F0: ; 0x020274F0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027520 ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _02027506 ldr r0, _02027524 ; =0x00002345 cmp r1, r0 bne _0202750A _02027506: mov r0, #0x1 b _0202750C _0202750A: mov r0, #0x0 _0202750C: cmp r0, #0x0 bne _02027514 bl ErrorHandling _02027514: add r0, r5, #0x4 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D98 pop {r4-r6, pc} .balign 4 _02027520: .word 0x00001234 _02027524: .word 0x00002345 thumb_func_start FUN_02027528 FUN_02027528: ; 0x02027528 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xa blt _02027536 bl ErrorHandling _02027536: ldr r1, [r5, #0x0] ldr r0, _0202755C ; =0x00001234 cmp r1, r0 beq _02027544 ldr r0, _02027560 ; =0x00002345 cmp r1, r0 bne _02027548 _02027544: mov r0, #0x1 b _0202754A _02027548: mov r0, #0x0 _0202754A: cmp r0, #0x0 bne _02027552 bl ErrorHandling _02027552: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 and r0, r1 pop {r3-r5, pc} .balign 4 _0202755C: .word 0x00001234 _02027560: .word 0x00002345 thumb_func_start FUN_02027564 FUN_02027564: ; 0x02027564 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027588 ; =0x00001234 cmp r1, r0 beq _02027576 ldr r0, _0202758C ; =0x00002345 cmp r1, r0 bne _0202757A _02027576: mov r0, #0x1 b _0202757C _0202757A: mov r0, #0x0 _0202757C: cmp r0, #0x0 bne _02027584 bl ErrorHandling _02027584: add r0, r4, #0x4 pop {r4, pc} .balign 4 _02027588: .word 0x00001234 _0202758C: .word 0x00002345 thumb_func_start FUN_02027590 FUN_02027590: ; 0x02027590 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xa blt _0202759E bl ErrorHandling _0202759E: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 tst r0, r1 bne _020275AC bl ErrorHandling _020275AC: ldr r1, [r5, #0x0] ldr r0, _020275D0 ; =0x00001234 cmp r1, r0 beq _020275BA ldr r0, _020275D4 ; =0x00002345 cmp r1, r0 bne _020275BE _020275BA: mov r0, #0x1 b _020275C0 _020275BE: mov r0, #0x0 _020275C0: cmp r0, #0x0 bne _020275C8 bl ErrorHandling _020275C8: add r5, #0x48 lsl r0, r4, #0x2 add r0, r5, r0 pop {r3-r5, pc} .balign 4 _020275D0: .word 0x00001234 _020275D4: .word 0x00002345 thumb_func_start FUN_020275D8 FUN_020275D8: ; 0x020275D8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027600 ; =0x00001234 cmp r1, r0 beq _020275EA ldr r0, _02027604 ; =0x00002345 cmp r1, r0 bne _020275EE _020275EA: mov r0, #0x1 b _020275F0 _020275EE: mov r0, #0x0 _020275F0: cmp r0, #0x0 bne _020275F8 bl ErrorHandling _020275F8: add r0, r4, #0x4 bl FUN_02027C84 pop {r4, pc} .balign 4 _02027600: .word 0x00001234 _02027604: .word 0x00002345 thumb_func_start FUN_02027608 FUN_02027608: ; 0x02027608 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027634 ; =0x00001234 cmp r1, r0 beq _0202761C ldr r0, _02027638 ; =0x00002345 cmp r1, r0 bne _02027620 _0202761C: mov r0, #0x1 b _02027622 _02027620: mov r0, #0x0 _02027622: cmp r0, #0x0 bne _0202762A bl ErrorHandling _0202762A: add r0, r5, #0x4 add r1, r4, #0x0 bl FUN_02027C88 pop {r3-r5, pc} .balign 4 _02027634: .word 0x00001234 _02027638: .word 0x00002345 thumb_func_start FUN_0202763C FUN_0202763C: ; 0x0202763C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027664 ; =0x00001234 cmp r1, r0 beq _0202764E ldr r0, _02027668 ; =0x00002345 cmp r1, r0 bne _02027652 _0202764E: mov r0, #0x1 b _02027654 _02027652: mov r0, #0x0 _02027654: cmp r0, #0x0 bne _0202765C bl ErrorHandling _0202765C: add r0, r4, #0x4 bl FUN_02027C98 pop {r4, pc} .balign 4 _02027664: .word 0x00001234 _02027668: .word 0x00002345 thumb_func_start FUN_0202766C FUN_0202766C: ; 0x0202766C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027694 ; =0x00001234 cmp r1, r0 beq _0202767E ldr r0, _02027698 ; =0x00002345 cmp r1, r0 bne _02027682 _0202767E: mov r0, #0x1 b _02027684 _02027682: mov r0, #0x0 _02027684: cmp r0, #0x0 bne _0202768C bl ErrorHandling _0202768C: add r4, #0x70 ldrb r0, [r4, #0x0] pop {r4, pc} nop _02027694: .word 0x00001234 _02027698: .word 0x00002345 thumb_func_start FUN_0202769C FUN_0202769C: ; 0x0202769C ldr r3, _020276A4 ; =FUN_02013918 add r0, #0x40 mov r1, #0x0 bx r3 .balign 4 _020276A4: .word FUN_02013918 thumb_func_start FUN_020276A8 FUN_020276A8: ; 0x020276A8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020276D0 ; =0x00001234 cmp r1, r0 beq _020276BA ldr r0, _020276D4 ; =0x00002345 cmp r1, r0 bne _020276BE _020276BA: mov r0, #0x1 b _020276C0 _020276BE: mov r0, #0x0 _020276C0: cmp r0, #0x0 bne _020276C8 bl ErrorHandling _020276C8: add r4, #0x71 ldrb r0, [r4, #0x0] pop {r4, pc} nop _020276D0: .word 0x00001234 _020276D4: .word 0x00002345 thumb_func_start FUN_020276D8 FUN_020276D8: ; 0x020276D8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027708 ; =0x00001234 cmp r1, r0 beq _020276EA ldr r0, _0202770C ; =0x00002345 cmp r1, r0 bne _020276EE _020276EA: mov r0, #0x1 b _020276F0 _020276EE: mov r0, #0x0 _020276F0: cmp r0, #0x0 bne _020276F8 bl ErrorHandling _020276F8: ldr r1, [r4, #0x0] ldr r0, _0202770C ; =0x00002345 cmp r1, r0 bne _02027704 mov r0, #0x1 pop {r4, pc} _02027704: mov r0, #0x0 pop {r4, pc} .balign 4 _02027708: .word 0x00001234 _0202770C: .word 0x00002345 thumb_func_start FUN_02027710 FUN_02027710: ; 0x02027710 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027738 ; =0x00001234 cmp r1, r0 beq _02027722 ldr r0, _0202773C ; =0x00002345 cmp r1, r0 bne _02027726 _02027722: mov r0, #0x1 b _02027728 _02027726: mov r0, #0x0 _02027728: cmp r0, #0x0 bne _02027730 bl ErrorHandling _02027730: ldr r0, _0202773C ; =0x00002345 str r0, [r4, #0x0] pop {r4, pc} nop _02027738: .word 0x00001234 _0202773C: .word 0x00002345 thumb_func_start FUN_02027740 FUN_02027740: ; 0x02027740 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027770 ; =0x00001234 cmp r1, r0 beq _02027752 ldr r0, _02027774 ; =0x00002345 cmp r1, r0 bne _02027756 _02027752: mov r0, #0x1 b _02027758 _02027756: mov r0, #0x0 _02027758: cmp r0, #0x0 bne _02027760 bl ErrorHandling _02027760: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x98 blx Call_FillMemWithValue ldr r0, _02027770 ; =0x00001234 str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02027770: .word 0x00001234 _02027774: .word 0x00002345 thumb_func_start FUN_02027778 FUN_02027778: ; 0x02027778 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020277AC ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202778E ldr r0, _020277B0 ; =0x00002345 cmp r1, r0 bne _02027792 _0202778E: mov r0, #0x1 b _02027794 _02027792: mov r0, #0x0 _02027794: cmp r0, #0x0 bne _0202779C bl ErrorHandling _0202779C: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D34 pop {r4-r6, pc} nop _020277AC: .word 0x00001234 _020277B0: .word 0x00002345 thumb_func_start FUN_020277B4 FUN_020277B4: ; 0x020277B4 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] add r6, r2, #0x0 bl FUN_02013ECC add r1, sp, #0xc strh r0, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] ldrh r0, [r1, #0x0] strh r0, [r1, #0x4] ldrh r0, [r1, #0x2] strh r0, [r1, #0x6] ldr r0, [r4, #0x4] bl FUN_02013F00 str r0, [sp, #0x8] cmp r6, #0x14 blt _020277E4 bl ErrorHandling _020277E4: add r1, sp, #0xc mov r0, #0x4 ldrsh r1, [r1, r0] add r0, #0xfc cmp r1, r0 blt _020277F4 bl ErrorHandling _020277F4: add r1, sp, #0xc mov r0, #0x6 ldrsh r7, [r1, r0] add r0, #0xfa cmp r7, r0 blt _02027804 bl ErrorHandling _02027804: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _02027812 bl ErrorHandling _02027812: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x40] str r0, [sp, #0x4] tst r0, r1 beq _02027822 bl ErrorHandling _02027822: ldr r1, [r5, #0x0] ldr r0, _02027874 ; =0x00001234 cmp r1, r0 beq _02027830 ldr r0, _02027878 ; =0x00002345 cmp r1, r0 bne _02027834 _02027830: mov r0, #0x1 b _02027836 _02027834: mov r0, #0x0 _02027836: cmp r0, #0x0 bne _0202783E bl ErrorHandling _0202783E: ldr r0, [sp, #0x8] add r1, r5, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0xc mov r2, #0x4 ldrsh r2, [r3, r2] lsl r3, r7, #0x18 add r1, #0x44 lsl r0, r6, #0x2 add r0, r1, r0 ldr r1, [r4, #0x0] lsl r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026DB0 ldr r1, [r5, #0x40] ldr r0, [sp, #0x4] orr r0, r1 str r0, [r5, #0x40] add sp, #0x14 pop {r4-r7, pc} nop _02027874: .word 0x00001234 _02027878: .word 0x00002345 thumb_func_start FUN_0202787C FUN_0202787C: ; 0x0202787C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020278A4 ; =0x00001234 cmp r1, r0 beq _02027890 ldr r0, _020278A8 ; =0x00002345 cmp r1, r0 bne _02027894 _02027890: mov r0, #0x1 b _02027896 _02027894: mov r0, #0x0 _02027896: cmp r0, #0x0 bne _0202789E bl ErrorHandling _0202789E: add r5, #0x94 strb r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _020278A4: .word 0x00001234 _020278A8: .word 0x00002345 thumb_func_start FUN_020278AC FUN_020278AC: ; 0x020278AC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020278D4 ; =0x00001234 cmp r1, r0 beq _020278C0 ldr r0, _020278D8 ; =0x00002345 cmp r1, r0 bne _020278C4 _020278C0: mov r0, #0x1 b _020278C6 _020278C4: mov r0, #0x0 _020278C6: cmp r0, #0x0 bne _020278CE bl ErrorHandling _020278CE: str r4, [r5, #0x4] pop {r3-r5, pc} nop _020278D4: .word 0x00001234 _020278D8: .word 0x00002345 thumb_func_start FUN_020278DC FUN_020278DC: ; 0x020278DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202790C ; =0x00001234 cmp r1, r0 beq _020278F0 ldr r0, _02027910 ; =0x00002345 cmp r1, r0 bne _020278F4 _020278F0: mov r0, #0x1 b _020278F6 _020278F4: mov r0, #0x0 _020278F6: cmp r0, #0x0 bne _020278FE bl ErrorHandling _020278FE: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x98 blx memcpy pop {r3-r5, pc} nop _0202790C: .word 0x00001234 _02027910: .word 0x00002345 thumb_func_start FUN_02027914 FUN_02027914: ; 0x02027914 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202795C ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202792C ldr r0, _02027960 ; =0x00002345 cmp r1, r0 bne _02027930 _0202792C: mov r0, #0x1 b _02027932 _02027930: mov r0, #0x0 _02027932: cmp r0, #0x0 bne _0202793A bl ErrorHandling _0202793A: add r1, sp, #0x4 add r0, r4, #0x0 add r1, #0x1 add r2, sp, #0x4 bl FUN_02026F3C add r5, #0x8 str r6, [sp, #0x0] add r3, sp, #0x4 ldrb r2, [r3, #0x1] ldrb r3, [r3, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02026CD0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0202795C: .word 0x00001234 _02027960: .word 0x00002345 thumb_func_start FUN_02027964 FUN_02027964: ; 0x02027964 push {r4-r7, lr} sub sp, #0xc str r3, [sp, #0x4] add r6, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 ldr r4, [sp, #0x24] cmp r6, #0x14 blo _0202797A bl ErrorHandling _0202797A: cmp r7, #0x64 blo _02027982 bl ErrorHandling _02027982: mov r1, #0x1 ldr r0, [sp, #0x4] lsl r1, r1, #0x8 cmp r0, r1 blt _02027990 bl ErrorHandling _02027990: add r0, sp, #0x10 ldrb r1, [r0, #0x10] mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 blt _020279A0 bl ErrorHandling _020279A0: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _020279AC bl ErrorHandling _020279AC: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x40] str r0, [sp, #0x8] tst r0, r1 beq _020279BC bl ErrorHandling _020279BC: ldr r1, [r5, #0x0] ldr r0, _02027A0C ; =0x00001234 cmp r1, r0 beq _020279CA ldr r0, _02027A10 ; =0x00002345 cmp r1, r0 bne _020279CE _020279CA: mov r0, #0x1 b _020279D0 _020279CE: mov r0, #0x0 _020279D0: cmp r0, #0x0 bne _020279D8 bl ErrorHandling _020279D8: mov r0, #0x38 ldrsb r0, [r5, r0] cmp r0, r4 blt _020279E6 add r0, r0, #0x1 lsl r0, r0, #0x18 asr r4, r0, #0x18 _020279E6: lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0x10 add r1, r5, #0x0 ldrb r3, [r3, #0x10] add r1, #0x44 lsl r0, r6, #0x2 add r0, r1, r0 ldr r2, [sp, #0x4] add r1, r7, #0x0 bl FUN_02026DB0 ldr r1, [r5, #0x40] ldr r0, [sp, #0x8] orr r0, r1 str r0, [r5, #0x40] add sp, #0xc pop {r4-r7, pc} .balign 4 _02027A0C: .word 0x00001234 _02027A10: .word 0x00002345 thumb_func_start FUN_02027A14 FUN_02027A14: ; 0x02027A14 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027A22 bl ErrorHandling _02027A22: ldr r1, [r5, #0x0] ldr r0, _02027A50 ; =0x00001234 cmp r1, r0 beq _02027A30 ldr r0, _02027A54 ; =0x00002345 cmp r1, r0 bne _02027A34 _02027A30: mov r0, #0x1 b _02027A36 _02027A34: mov r0, #0x0 _02027A36: cmp r0, #0x0 bne _02027A3E bl ErrorHandling _02027A3E: mov r0, #0x1 add r1, r0, #0x0 ldr r2, [r5, #0x40] lsl r1, r4 tst r1, r2 bne _02027A4C mov r0, #0x0 _02027A4C: pop {r3-r5, pc} nop _02027A50: .word 0x00001234 _02027A54: .word 0x00002345 thumb_func_start FUN_02027A58 FUN_02027A58: ; 0x02027A58 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027A8C ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _02027A6E ldr r0, _02027A90 ; =0x00002345 cmp r1, r0 bne _02027A72 _02027A6E: mov r0, #0x1 b _02027A74 _02027A72: mov r0, #0x0 _02027A74: cmp r0, #0x0 bne _02027A7C bl ErrorHandling _02027A7C: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D98 pop {r4-r6, pc} nop _02027A8C: .word 0x00001234 _02027A90: .word 0x00002345 thumb_func_start FUN_02027A94 FUN_02027A94: ; 0x02027A94 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027ABC ; =0x00001234 cmp r1, r0 beq _02027AA6 ldr r0, _02027AC0 ; =0x00002345 cmp r1, r0 bne _02027AAA _02027AA6: mov r0, #0x1 b _02027AAC _02027AAA: mov r0, #0x0 _02027AAC: cmp r0, #0x0 bne _02027AB4 bl ErrorHandling _02027AB4: add r4, #0x8 add r0, r4, #0x0 pop {r4, pc} nop _02027ABC: .word 0x00001234 _02027AC0: .word 0x00002345 thumb_func_start FUN_02027AC4 FUN_02027AC4: ; 0x02027AC4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027AD2 bl ErrorHandling _02027AD2: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027AE0 bl ErrorHandling _02027AE0: ldr r1, [r5, #0x0] ldr r0, _02027B04 ; =0x00001234 cmp r1, r0 beq _02027AEE ldr r0, _02027B08 ; =0x00002345 cmp r1, r0 bne _02027AF2 _02027AEE: mov r0, #0x1 b _02027AF4 _02027AF2: mov r0, #0x0 _02027AF4: cmp r0, #0x0 bne _02027AFC bl ErrorHandling _02027AFC: add r5, #0x44 lsl r0, r4, #0x2 add r0, r5, r0 pop {r3-r5, pc} .balign 4 _02027B04: .word 0x00001234 _02027B08: .word 0x00002345 thumb_func_start FUN_02027B0C FUN_02027B0C: ; 0x02027B0C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027B3C ; =0x00001234 cmp r1, r0 beq _02027B20 ldr r0, _02027B40 ; =0x00002345 cmp r1, r0 bne _02027B24 _02027B20: mov r0, #0x1 b _02027B26 _02027B24: mov r0, #0x0 _02027B26: cmp r0, #0x0 bne _02027B2E bl ErrorHandling _02027B2E: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02027C88 pop {r3-r5, pc} nop _02027B3C: .word 0x00001234 _02027B40: .word 0x00002345 thumb_func_start FUN_02027B44 FUN_02027B44: ; 0x02027B44 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027B70 ; =0x00001234 cmp r1, r0 beq _02027B56 ldr r0, _02027B74 ; =0x00002345 cmp r1, r0 bne _02027B5A _02027B56: mov r0, #0x1 b _02027B5C _02027B5A: mov r0, #0x0 _02027B5C: cmp r0, #0x0 bne _02027B64 bl ErrorHandling _02027B64: add r4, #0x8 add r0, r4, #0x0 bl FUN_02027C98 pop {r4, pc} nop _02027B70: .word 0x00001234 _02027B74: .word 0x00002345 thumb_func_start FUN_02027B78 FUN_02027B78: ; 0x02027B78 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027BD4 ; =0x00001234 cmp r1, r0 beq _02027B8E ldr r0, _02027BD8 ; =0x00002345 cmp r1, r0 bne _02027B92 _02027B8E: mov r0, #0x1 b _02027B94 _02027B92: mov r0, #0x0 _02027B94: cmp r0, #0x0 bne _02027B9C bl ErrorHandling _02027B9C: mov r1, #0x1 str r1, [sp, #0x0] ldr r0, [r5, #0x8] mov r2, #0x0 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r5, #0xc] add r3, r2, #0x0 str r0, [sp, #0xc] ldrh r1, [r5, #0x10] add r0, r4, #0x0 bl FUN_02066ACC add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0x12 bl FUN_02067830 add r5, #0x3b add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 bl FUN_02067830 add sp, #0x10 pop {r3-r5, pc} nop _02027BD4: .word 0x00001234 _02027BD8: .word 0x00002345 thumb_func_start FUN_02027BDC FUN_02027BDC: ; 0x02027BDC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027BEA bl ErrorHandling _02027BEA: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027BF8 bl ErrorHandling _02027BF8: ldr r1, [r5, #0x0] ldr r0, _02027C20 ; =0x00001234 cmp r1, r0 beq _02027C06 ldr r0, _02027C24 ; =0x00002345 cmp r1, r0 bne _02027C0A _02027C06: mov r0, #0x1 b _02027C0C _02027C0A: mov r0, #0x0 _02027C0C: cmp r0, #0x0 bne _02027C14 bl ErrorHandling _02027C14: add r5, #0x44 lsl r0, r4, #0x2 add r0, r5, r0 bl FUN_02027CF8 pop {r3-r5, pc} .balign 4 _02027C20: .word 0x00001234 _02027C24: .word 0x00002345 thumb_func_start FUN_02027C28 FUN_02027C28: ; 0x02027C28 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027C50 ; =0x00001234 cmp r1, r0 beq _02027C3A ldr r0, _02027C54 ; =0x00002345 cmp r1, r0 bne _02027C3E _02027C3A: mov r0, #0x1 b _02027C40 _02027C3E: mov r0, #0x0 _02027C40: cmp r0, #0x0 bne _02027C48 bl ErrorHandling _02027C48: add r4, #0x94 ldrb r0, [r4, #0x0] pop {r4, pc} nop _02027C50: .word 0x00001234 _02027C54: .word 0x00002345 thumb_func_start FUN_02027C58 FUN_02027C58: ; 0x02027C58 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027C7C ; =0x00001234 cmp r1, r0 beq _02027C6A ldr r0, _02027C80 ; =0x00002345 cmp r1, r0 bne _02027C6E _02027C6A: mov r0, #0x1 b _02027C70 _02027C6E: mov r0, #0x0 _02027C70: cmp r0, #0x0 bne _02027C78 bl ErrorHandling _02027C78: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 _02027C7C: .word 0x00001234 _02027C80: .word 0x00002345 thumb_func_start FUN_02027C84 FUN_02027C84: ; 0x02027C84 ldrh r0, [r0, #0x8] bx lr thumb_func_start FUN_02027C88 FUN_02027C88: ; 0x02027C88 add r2, r0, #0x0 ldr r3, _02027C94 ; =FUN_02021E28 add r2, #0x20 add r0, r1, #0x0 add r1, r2, #0x0 bx r3 .balign 4 _02027C94: .word FUN_02021E28 thumb_func_start FUN_02027C98 FUN_02027C98: ; 0x02027C98 add r0, #0x34 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CA0 FUN_02027CA0: ; 0x02027CA0 mov r1, #0x30 ldrsb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02027CA8 FUN_02027CA8: ; 0x02027CA8 add r0, #0x31 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CB0 FUN_02027CB0: ; 0x02027CB0 add r0, #0x32 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CB8 FUN_02027CB8: ; 0x02027CB8 push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 str r1, [sp, #0x0] ldr r0, [r5, #0x0] mov r2, #0x0 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r5, #0x4] add r3, r2, #0x0 str r0, [sp, #0xc] ldrh r1, [r5, #0x8] add r0, r4, #0x0 bl FUN_02066ACC add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa bl FUN_02067830 add r5, #0x33 add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 bl FUN_02067830 add sp, #0x10 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02027CF8 FUN_02027CF8: ; 0x02027CF8 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02027CFC FUN_02027CFC: ; 0x02027CFC ldrb r0, [r0, #0x1] bx lr thumb_func_start FUN_02027D00 FUN_02027D00: ; 0x02027D00 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02027D04 FUN_02027D04: ; 0x02027D04 mov r1, #0x3 ldrsb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02027D0C FUN_02027D0C: ; 0x02027D0C push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0xc add r7, r0, #0x0 mov r0, #0x1 add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_0202729C cmp r0, #0x1 bne _02027D6A ldr r1, _02027D78 ; =0xEDB88320 add r0, sp, #0x4 blx MATHi_CRC32InitTableRev add r0, sp, #0x4 add r1, r4, #0x0 mov r2, #0x74 blx MATH_CalcCRC32 add r6, r0, #0x0 mov r5, #0x0 _02027D3C: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02027008 add r4, r0, #0x0 ldr r1, _02027D78 ; =0xEDB88320 add r0, sp, #0x4 blx MATHi_CRC32InitTableRev add r0, sp, #0x4 add r1, r4, #0x0 mov r2, #0x74 blx MATH_CalcCRC32 cmp r0, r6 bne _02027D62 mov r0, #0x0 str r0, [sp, #0x0] b _02027D6E _02027D62: add r5, r5, #0x1 cmp r5, #0xb blt _02027D3C b _02027D6E _02027D6A: mov r0, #0x0 str r0, [sp, #0x0] _02027D6E: ldr r0, [sp, #0x0] add sp, #0x1fc add sp, #0x1fc add sp, #0xc pop {r4-r7, pc} .balign 4 _02027D78: .word 0xEDB88320 thumb_func_start FUN_02027D7C FUN_02027D7C: ; 0x02027D7C push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r7, #0x0 ldr r0, [sp, #0x0] str r1, [sp, #0x4] add r5, r2, #0x0 add r6, r7, #0x0 str r3, [sp, #0x8] cmp r0, #0x0 ble _02027DB6 add r4, r3, #0x0 _02027D94: ldr r0, [sp, #0x4] cmp r6, r0 beq _02027DAC ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02027DAC add r0, r5, #0x0 bl FUN_02027D0C cmp r0, #0x1 bne _02027DAC add r7, r7, #0x1 _02027DAC: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02027D94 _02027DB6: mov r4, #0xa _02027DB8: add r1, r4, r7 cmp r1, #0xb bge _02027DD6 add r0, r5, #0x0 bl FUN_02027008 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02027008 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020274B8 _02027DD6: sub r4, r4, #0x1 cmp r4, #0x1 bge _02027DB8 ldr r0, [sp, #0x0] mov r6, #0x1 mov r4, #0x0 cmp r0, #0x0 ble _02027E1E _02027DE6: ldr r0, [sp, #0x4] cmp r4, r0 beq _02027E10 ldr r0, [sp, #0x8] ldr r7, [r0, #0x0] cmp r7, #0x0 beq _02027E10 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02027D0C cmp r0, #0x1 bne _02027E10 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02027008 add r1, r7, #0x0 add r6, r6, #0x1 bl FUN_020274B8 _02027E10: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r0, r0, #0x4 str r0, [sp, #0x8] ldr r0, [sp, #0x0] cmp r4, r0 blt _02027DE6 _02027E1E: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02027E24 FUN_02027E24: ; 0x02027E24 ldr r3, _02027E2C ; =FUN_02022610 mov r1, #0xe bx r3 nop _02027E2C: .word FUN_02022610 thumb_func_start FUN_02027E30 FUN_02027E30: ; 0x02027E30 mov r0, #0x8 bx lr thumb_func_start FUN_02027E34 FUN_02027E34: ; 0x02027E34 ldrb r0, [r0, #0x0] cmp r0, #0x1e beq _02027E3E mov r0, #0x1 bx lr _02027E3E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02027E44 FUN_02027E44: ; 0x02027E44 mov r1, #0x1e strb r1, [r0, #0x0] mov r1, #0x0 strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] bx lr .balign 4 thumb_func_start FUN_02027E5C FUN_02027E5C: ; 0x02027E5C push {r4, lr} mov r1, #0x8 bl FUN_020169D8 add r4, r0, #0x0 bl FUN_02027E44 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02027E70 FUN_02027E70: ; 0x02027E70 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r2, [r0, #0x1] strb r2, [r1, #0x1] ldrb r2, [r0, #0x2] strb r2, [r1, #0x2] ldrb r2, [r0, #0x3] strb r2, [r1, #0x3] ldrb r2, [r0, #0x4] strb r2, [r1, #0x4] ldrb r2, [r0, #0x5] strb r2, [r1, #0x5] ldrb r2, [r0, #0x6] strb r2, [r1, #0x6] ldrb r0, [r0, #0x7] strb r0, [r1, #0x7] bx lr .balign 4 thumb_func_start FUN_02027E94 FUN_02027E94: ; 0x02027E94 cmp r1, #0x6 bhi _02027ECA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02027EA4: ; jump table (using 16-bit offset) .short _02027EB2 - _02027EA4 - 2; case 0 .short _02027EB6 - _02027EA4 - 2; case 1 .short _02027EBA - _02027EA4 - 2; case 2 .short _02027EBE - _02027EA4 - 2; case 3 .short _02027EC2 - _02027EA4 - 2; case 4 .short _02027EC6 - _02027EA4 - 2; case 5 .short _02027ECA - _02027EA4 - 2; case 6 _02027EB2: ldrb r0, [r0, #0x0] bx lr _02027EB6: ldrb r0, [r0, #0x1] bx lr _02027EBA: ldrb r0, [r0, #0x2] bx lr _02027EBE: ldrb r0, [r0, #0x3] bx lr _02027EC2: ldrb r0, [r0, #0x4] bx lr _02027EC6: ldrb r0, [r0, #0x5] bx lr _02027ECA: ldrb r0, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02027ED0 FUN_02027ED0: ; 0x02027ED0 push {r3-r7, lr} add r5, r0, #0x0 str r1, [sp, #0x0] mov r4, #0x0 mov r6, #0x2 mov r7, #0x5 _02027EDC: bl FUN_0201B9EC add r1, r7, #0x0 blx _s32_div_f lsl r0, r1, #0x18 lsr r0, r0, #0x18 add r1, r5, r0 ldrb r0, [r1, #0x1] cmp r0, #0x0 bne _02027EF6 strb r6, [r1, #0x1] add r4, r4, #0x1 _02027EF6: cmp r4, #0x3 blt _02027EDC mov r0, #0x1b strb r0, [r5, #0x0] ldr r0, [sp, #0x0] strb r0, [r5, #0x6] pop {r3-r7, pc} thumb_func_start FUN_02027F04 FUN_02027F04: ; 0x02027F04 push {r3-r7, lr} sub sp, #0x8 mov r12, r2 mov r2, #0x0 add r6, r2, #0x0 mov r5, #0x1b cmp r3, #0x0 beq _02027F20 mov r1, r12 bl FUN_02027ED0 add sp, #0x8 add r0, r5, #0x0 pop {r3-r7, pc} _02027F20: add r4, r2, #0x0 add r7, sp, #0x0 _02027F24: ldrb r3, [r1, r4] cmp r3, #0x0 beq _02027F34 cmp r3, #0x32 blo _02027F30 mov r6, #0x1 _02027F30: strb r4, [r7, r2] add r2, r2, #0x1 _02027F34: add r4, r4, #0x1 cmp r4, #0x5 blt _02027F24 cmp r2, #0x5 bhi _02027F9C add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02027F4A: ; jump table (using 16-bit offset) .short _02027F56 - _02027F4A - 2; case 0 .short _02027F62 - _02027F4A - 2; case 1 .short _02027F70 - _02027F4A - 2; case 2 .short _02027F96 - _02027F4A - 2; case 3 .short _02027F9A - _02027F4A - 2; case 4 .short _02027F9A - _02027F4A - 2; case 5 _02027F56: mov r1, r12 bl FUN_02027ED0 add sp, #0x8 mov r0, #0x1b pop {r3-r7, pc} _02027F62: add r2, sp, #0x0 ldrb r3, [r2, #0x0] mov r2, #0x6 mul r2, r3 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F70: add r2, sp, #0x0 ldrb r3, [r2, #0x1] ldrb r2, [r2, #0x0] ldrb r4, [r1, r3] ldrb r5, [r1, r2] cmp r5, r4 blo _02027F8A lsl r4, r2, #0x2 add r2, r2, r4 add r2, r3, r2 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F8A: lsl r4, r3, #0x2 add r3, r3, r4 add r2, r2, r3 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F96: mov r5, #0x19 b _02027F9C _02027F9A: mov r5, #0x1a _02027F9C: cmp r6, #0x0 beq _02027FA2 mov r5, #0x1c _02027FA2: mov r4, #0x0 _02027FA4: ldrb r3, [r1, r4] add r2, r0, r4 add r4, r4, #0x1 strb r3, [r2, #0x1] cmp r4, #0x5 blt _02027FA4 strb r5, [r0, #0x0] mov r1, r12 strb r1, [r0, #0x6] add r0, r5, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02027FBC FUN_02027FBC: ; 0x02027FBC ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r2, [r0, #0x1] strb r2, [r1, #0x1] ldrb r2, [r0, #0x2] strb r2, [r1, #0x2] ldrb r2, [r0, #0x3] strb r2, [r1, #0x3] ldrb r2, [r0, #0x4] strb r2, [r1, #0x4] ldrb r2, [r0, #0x5] strb r2, [r1, #0x5] ldrb r0, [r0, #0x6] strb r0, [r1, #0x6] bx lr .balign 4 thumb_func_start FUN_02027FDC FUN_02027FDC: ; 0x02027FDC push {r4, lr} add r4, r0, #0x0 ldrb r0, [r4, #0x0] mov r1, #0x5 blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x5 bhi _0202801C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02027FFC: ; jump table (using 16-bit offset) .short _02028008 - _02027FFC - 2; case 0 .short _0202800C - _02027FFC - 2; case 1 .short _02028010 - _02027FFC - 2; case 2 .short _02028014 - _02027FFC - 2; case 3 .short _02028018 - _02027FFC - 2; case 4 .short _0202801C - _02027FFC - 2; case 5 _02028008: ldrb r0, [r4, #0x1] b _0202803E _0202800C: ldrb r0, [r4, #0x2] b _0202803E _02028010: ldrb r0, [r4, #0x3] b _0202803E _02028014: ldrb r0, [r4, #0x4] b _0202803E _02028018: ldrb r0, [r4, #0x5] b _0202803E _0202801C: ldrb r0, [r4, #0x1] ldrb r1, [r4, #0x2] cmp r0, r1 bhs _02028026 add r0, r1, #0x0 _02028026: ldrb r1, [r4, #0x3] cmp r0, r1 bhs _0202802E add r0, r1, #0x0 _0202802E: ldrb r1, [r4, #0x4] cmp r0, r1 bhs _02028036 add r0, r1, #0x0 _02028036: ldrb r1, [r4, #0x5] cmp r0, r1 bhs _0202803E add r0, r1, #0x0 _0202803E: cmp r0, #0x63 bls _02028044 mov r0, #0x63 _02028044: pop {r4, pc} .balign 4 thumb_func_start FUN_02028048 FUN_02028048: ; 0x02028048 ldr r3, _02028050 ; =FUN_02022610 mov r1, #0x10 bx r3 nop _02028050: .word FUN_02022610 thumb_func_start FUN_02028054 FUN_02028054: ; 0x02028054 mov r0, #0x32 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202805C FUN_0202805C: ; 0x0202805C push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02028062: add r0, r5, #0x0 bl FUN_02027E44 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x64 blt _02028062 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028074 FUN_02028074: ; 0x02028074 mov r2, #0x0 _02028076: lsl r1, r2, #0x3 ldrb r1, [r0, r1] cmp r1, #0x1e bne _02028082 add r0, r2, #0x0 bx lr _02028082: add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x64 blo _02028076 ldr r0, _02028090 ; =0x0000FFFF bx lr .balign 4 _02028090: .word 0x0000FFFF thumb_func_start FUN_02028094 FUN_02028094: ; 0x02028094 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02028074 ldr r1, _020280B4 ; =0x0000FFFF add r4, r0, #0x0 cmp r4, r1 beq _020280B2 lsl r1, r4, #0x3 add r0, r6, #0x0 add r1, r5, r1 bl FUN_02027E70 add r0, r4, #0x0 _020280B2: pop {r4-r6, pc} .balign 4 _020280B4: .word 0x0000FFFF thumb_func_start FUN_020280B8 FUN_020280B8: ; 0x020280B8 push {r3, lr} cmp r1, #0x64 blo _020280C2 mov r0, #0x0 pop {r3, pc} _020280C2: lsl r1, r1, #0x3 add r0, r0, r1 bl FUN_02027E44 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_020280D0 FUN_020280D0: ; 0x020280D0 cmp r1, #0x64 bhs _020280EA _020280D4: lsl r2, r1, #0x3 ldrb r2, [r0, r2] cmp r2, #0x1e beq _020280E0 add r0, r1, #0x0 bx lr _020280E0: add r1, r1, #0x1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 cmp r1, #0x64 blo _020280D4 _020280EA: ldr r0, _020280F0 ; =0x0000FFFF bx lr nop _020280F0: .word 0x0000FFFF thumb_func_start FUN_020280F4 FUN_020280F4: ; 0x020280F4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x0 mov r7, #0x64 str r0, [sp, #0x4] _02028100: ldr r0, [sp, #0x4] lsl r0, r0, #0x3 ldrb r0, [r5, r0] cmp r0, #0x1e bne _0202815C ldr r6, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020280D0 add r4, r0, #0x0 ldr r0, _02028170 ; =0x0000FFFF cmp r4, r0 beq _0202816A ldr r0, [sp, #0x4] sub r0, r4, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] cmp r4, r7 bhs _02028154 cmp r4, r7 bhs _02028154 _0202812E: lsl r0, r4, #0x3 lsl r1, r6, #0x3 str r0, [sp, #0x8] add r0, r5, r0 add r1, r5, r1 bl FUN_02027E70 ldr r0, [sp, #0x8] add r0, r5, r0 bl FUN_02027E44 add r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r7 blo _0202812E _02028154: ldr r0, [sp, #0x0] sub r0, r7, r0 lsl r0, r0, #0x10 lsr r7, r0, #0x10 _0202815C: ldr r0, [sp, #0x4] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] cmp r0, r7 blo _02028100 _0202816A: add sp, #0xc pop {r4-r7, pc} nop _02028170: .word 0x0000FFFF thumb_func_start FUN_02028174 FUN_02028174: ; 0x02028174 push {r3, lr} cmp r1, #0x64 blo _02028182 add r0, r2, #0x0 bl FUN_02027E44 pop {r3, pc} _02028182: lsl r1, r1, #0x3 add r0, r0, r1 add r1, r2, #0x0 bl FUN_02027E70 pop {r3, pc} .balign 4 thumb_func_start FUN_02028190 FUN_02028190: ; 0x02028190 push {r4-r6, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02027E5C add r6, r0, #0x0 cmp r4, #0x64 blo _020281AA bl FUN_02027E44 mov r0, #0x0 pop {r4-r6, pc} _020281AA: lsl r0, r4, #0x3 add r0, r5, r0 add r1, r6, #0x0 bl FUN_02027E70 add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020281B8 FUN_020281B8: ; 0x020281B8 push {r4-r6, lr} mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 _020281C0: lsl r0, r5, #0x3 add r0, r6, r0 bl FUN_02027E34 cmp r0, #0x0 beq _020281D2 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020281D2: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x64 blo _020281C0 add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020281E0 FUN_020281E0: ; 0x020281E0 mov r0, #0x1f lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_020281E8 FUN_020281E8: ; 0x020281E8 push {r3-r7, lr} add r7, r0, #0x0 mov r2, #0x1f mov r0, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x6 blx MIi_CpuClearFast mov r0, #0x1d lsl r0, r0, #0x4 add r1, r0, #0x0 add r2, r0, #0x0 ldr r4, _02028224 ; =0x0000FFFF mov r5, #0x0 add r6, r7, #0x0 mov r3, #0x2 sub r1, #0x10 add r2, #0x1e _0202820C: strh r4, [r6, r0] strh r4, [r6, r1] strb r3, [r6, r2] add r5, r5, #0x1 add r6, #0x30 cmp r5, #0x20 blt _0202820C add r0, r7, #0x0 bl FUN_0203380C pop {r3-r7, pc} nop _02028224: .word 0x0000FFFF thumb_func_start FUN_02028228 FUN_02028228: ; 0x02028228 bx lr .balign 4 thumb_func_start FUN_0202822C FUN_0202822C: ; 0x0202822C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 cmp r4, #0x20 blt _0202823C bl ErrorHandling _0202823C: cmp r7, #0x8 bhi _020282D0 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202824C: ; jump table (using 16-bit offset) .short _0202825E - _0202824C - 2; case 0 .short _0202826C - _0202824C - 2; case 1 .short _0202827A - _0202824C - 2; case 2 .short _02028286 - _0202824C - 2; case 3 .short _02028294 - _0202824C - 2; case 4 .short _020282A0 - _0202824C - 2; case 5 .short _020282AE - _0202824C - 2; case 6 .short _020282C6 - _0202824C - 2; case 7 .short _020282BA - _0202824C - 2; case 8 _0202825E: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x1e lsl r0, r0, #0x4 ldr r6, [r1, r0] b _020282D0 _0202826C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x79 lsl r0, r0, #0x2 ldrh r6, [r1, r0] b _020282D0 _0202827A: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282D4 ; =0x000001E6 ldrh r6, [r1, r0] b _020282D0 _02028286: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7a lsl r0, r0, #0x2 ldrh r6, [r1, r0] b _020282D0 _02028294: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282D8 ; =0x000001EA ldrh r6, [r1, r0] b _020282D0 _020282A0: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7b lsl r0, r0, #0x2 ldrb r6, [r1, r0] b _020282D0 _020282AE: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282DC ; =0x000001ED ldrb r6, [r1, r0] b _020282D0 _020282BA: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282E0 ; =0x000001EE ldrb r6, [r1, r0] b _020282D0 _020282C6: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282E4 ; =0x000001EF ldrb r6, [r1, r0] _020282D0: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 _020282D4: .word 0x000001E6 _020282D8: .word 0x000001EA _020282DC: .word 0x000001ED _020282E0: .word 0x000001EE _020282E4: .word 0x000001EF thumb_func_start FUN_020282E8 FUN_020282E8: ; 0x020282E8 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x20 blt _020282FA bl ErrorHandling _020282FA: cmp r7, #0x8 bhi _02028378 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202830A: ; jump table (using 16-bit offset) .short _0202831C - _0202830A - 2; case 0 .short _0202832A - _0202830A - 2; case 1 .short _02028330 - _0202830A - 2; case 2 .short _02028336 - _0202830A - 2; case 3 .short _0202833C - _0202830A - 2; case 4 .short _02028348 - _0202830A - 2; case 5 .short _02028356 - _0202830A - 2; case 6 .short _0202836E - _0202830A - 2; case 7 .short _02028362 - _0202830A - 2; case 8 _0202831C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x1e lsl r0, r0, #0x4 str r6, [r1, r0] pop {r3-r7, pc} _0202832A: bl ErrorHandling pop {r3-r7, pc} _02028330: bl ErrorHandling pop {r3-r7, pc} _02028336: bl ErrorHandling pop {r3-r7, pc} _0202833C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _0202837C ; =0x000001EA strh r6, [r1, r0] pop {r3-r7, pc} _02028348: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7b lsl r0, r0, #0x2 strb r6, [r1, r0] pop {r3-r7, pc} _02028356: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028380 ; =0x000001ED strb r6, [r1, r0] pop {r3-r7, pc} _02028362: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028384 ; =0x000001EE strb r6, [r1, r0] pop {r3-r7, pc} _0202836E: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028388 ; =0x000001EF strb r6, [r1, r0] _02028378: pop {r3-r7, pc} nop _0202837C: .word 0x000001EA _02028380: .word 0x000001ED _02028384: .word 0x000001EE _02028388: .word 0x000001EF thumb_func_start FUN_0202838C FUN_0202838C: ; 0x0202838C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _0202839A bl ErrorHandling _0202839A: mov r0, #0xc add r5, #0x40 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} thumb_func_start FUN_020283A4 FUN_020283A4: ; 0x020283A4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _020283B2 bl ErrorHandling _020283B2: mov r0, #0x1d lsl r0, r0, #0x4 add r1, r5, r0 mov r0, #0x30 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} thumb_func_start FUN_020283C0 FUN_020283C0: ; 0x020283C0 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x20 blt _020283D0 bl ErrorHandling _020283D0: mov r1, #0x1d lsl r1, r1, #0x4 add r2, r5, r1 mov r1, #0x30 mul r1, r4 add r1, r2, r1 add r0, r6, #0x0 mov r2, #0x10 bl FUN_02021EF0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020283E8 FUN_020283E8: ; 0x020283E8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _020283F6 bl ErrorHandling _020283F6: mov r0, #0x7 lsl r0, r0, #0x6 add r1, r5, r0 mov r0, #0x30 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} thumb_func_start FUN_02028404 FUN_02028404: ; 0x02028404 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x20 blt _02028414 bl ErrorHandling _02028414: mov r1, #0x7 lsl r1, r1, #0x6 add r2, r5, r1 mov r1, #0x30 mul r1, r4 add r1, r2, r1 add r0, r6, #0x0 mov r2, #0x10 bl FUN_02021EF0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202842C FUN_0202842C: ; 0x0202842C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _0202843A bl ErrorHandling _0202843A: mov r0, #0xc add r5, #0x40 mul r0, r4 add r0, r5, r0 blx FUN_0209700C pop {r3-r5, pc} thumb_func_start FUN_02028448 FUN_02028448: ; 0x02028448 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02028450: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202842C cmp r0, #0x0 beq _0202845E add r5, r5, #0x1 _0202845E: add r4, r4, #0x1 cmp r4, #0x20 blt _02028450 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02028468 FUN_02028468: ; 0x02028468 push {r4-r7, lr} sub sp, #0xc add r5, r1, #0x0 str r0, [sp, #0x0] cmp r5, #0x20 blt _02028478 bl ErrorHandling _02028478: cmp r5, #0x1f bge _020284D2 mov r1, #0x7 ldr r0, [sp, #0x0] lsl r1, r1, #0x6 add r0, r0, r1 str r0, [sp, #0x4] mov r0, #0x30 add r1, r5, #0x0 mul r1, r0 ldr r0, [sp, #0x4] add r6, r0, r1 ldr r0, [sp, #0x0] add r1, r5, #0x0 str r0, [sp, #0x8] add r0, #0x40 str r0, [sp, #0x8] mov r0, #0xc mul r1, r0 ldr r0, [sp, #0x8] add r4, r0, r1 _020284A2: add r7, r5, #0x1 mov r0, #0x30 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x4] mov r2, #0x30 add r0, r0, r1 add r1, r6, #0x0 blx MI_CpuCopy8 mov r0, #0xc add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x8] mov r2, #0xc add r0, r0, r1 add r1, r4, #0x0 blx MI_CpuCopy8 add r5, r5, #0x1 add r6, #0x30 add r4, #0xc cmp r5, #0x1f blt _020284A2 _020284D2: mov r2, #0x7 ldr r1, [sp, #0x0] lsl r2, r2, #0x6 add r2, r1, r2 mov r1, #0x5d lsl r1, r1, #0x4 add r1, r2, r1 mov r0, #0x0 mov r2, #0x30 blx MIi_CpuClearFast ldr r2, [sp, #0x0] mov r1, #0x5d add r2, #0x40 lsl r1, r1, #0x2 add r1, r2, r1 mov r0, #0x0 mov r2, #0xc blx MIi_CpuClearFast mov r2, #0x7a lsl r2, r2, #0x4 add r1, r2, #0x0 ldr r3, _02028514 ; =0x0000FFFF ldr r0, [sp, #0x0] sub r1, #0x10 strh r3, [r0, r2] strh r3, [r0, r1] mov r1, #0x2 add r2, #0x1e strb r1, [r0, r2] add sp, #0xc pop {r4-r7, pc} .balign 4 _02028514: .word 0x0000FFFF thumb_func_start FUN_02028518 FUN_02028518: ; 0x02028518 push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x4] mov r2, #0x30 add r5, r0, #0x0 mov r0, #0x7 lsl r0, r0, #0x6 add r3, r1, #0x0 mul r5, r2 add r4, r7, r0 mul r3, r2 str r1, [sp, #0x0] add r0, r4, r5 add r1, r4, r3 blx MI_CpuCopy8 ldr r0, [sp, #0x4] add r6, r7, #0x0 mov r3, #0xc add r1, r0, #0x0 mul r1, r3 add r6, #0x40 str r1, [sp, #0x8] add r0, r6, r1 ldr r1, [sp, #0x0] add r2, r1, #0x0 mul r2, r3 add r1, r6, r2 add r2, r3, #0x0 blx MI_CpuCopy8 mov r0, #0x0 add r1, r4, r5 mov r2, #0x30 blx MIi_CpuClearFast ldr r1, [sp, #0x8] mov r0, #0x0 add r1, r6, r1 mov r2, #0xc blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _02028588 ; =0x0000FFFF add r2, r7, r5 lsl r0, r0, #0x4 strh r1, [r2, r0] strh r1, [r4, r5] mov r1, #0x2 add r0, #0x1e strb r1, [r2, r0] add sp, #0xc pop {r4-r7, pc} nop _02028588: .word 0x0000FFFF thumb_func_start FUN_0202858C FUN_0202858C: ; 0x0202858C push {r3-r7, lr} mov r5, #0x0 mvn r5, r5 add r6, r0, #0x0 mov r4, #0x0 add r7, r5, #0x0 _02028598: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202842C cmp r0, #0x0 beq _020285BC mov r0, #0x0 mvn r0, r0 cmp r5, r0 beq _020285C6 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02028518 add r4, r7, #0x0 add r5, r7, #0x0 b _020285C6 _020285BC: mov r0, #0x0 mvn r0, r0 cmp r5, r0 bne _020285C6 add r5, r4, #0x0 _020285C6: add r4, r4, #0x1 cmp r4, #0x20 blt _02028598 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020285D0 FUN_020285D0: ; 0x020285D0 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 bl FUN_020126B4 mov r0, #0x30 add r2, r4, #0x0 mul r2, r0 mov r0, #0x7d ldr r1, [sp, #0x0] lsl r0, r0, #0x4 add r1, r1, r0 ldr r0, _02028604 ; =0x000001EA add r3, r5, r2 strh r1, [r3, r0] add r1, r0, #0x2 ldr r2, [sp, #0x4] add r0, r0, #0x3 strb r2, [r3, r1] ldr r1, [sp, #0x8] strb r1, [r3, r0] add sp, #0x10 pop {r3-r5, pc} nop _02028604: .word 0x000001EA thumb_func_start FUN_02028608 FUN_02028608: ; 0x02028608 push {r4-r6, lr} mov r5, #0x79 add r4, r0, #0x0 mov r0, #0x30 lsl r5, r5, #0x2 mul r0, r1 add r5, r4, r5 ldrh r6, [r5, r0] add r2, r6, r2 strh r2, [r5, r0] ldrh r6, [r5, r0] ldr r2, _0202865C ; =0x0000270F cmp r6, r2 bls _02028626 strh r2, [r5, r0] _02028626: ldr r2, _02028660 ; =0x000001E6 add r2, r4, r2 ldrh r5, [r2, r0] add r3, r5, r3 strh r3, [r2, r0] ldrh r5, [r2, r0] ldr r3, _0202865C ; =0x0000270F cmp r5, r3 bls _0202863A strh r3, [r2, r0] _0202863A: mov r2, #0x7a lsl r2, r2, #0x2 add r2, r4, r2 ldrh r5, [r2, r0] ldr r3, [sp, #0x10] add r3, r5, r3 strh r3, [r2, r0] ldrh r5, [r2, r0] ldr r3, _0202865C ; =0x0000270F cmp r5, r3 bls _02028652 strh r3, [r2, r0] _02028652: add r0, r4, #0x0 bl FUN_020285D0 pop {r4-r6, pc} nop _0202865C: .word 0x0000270F _02028660: .word 0x000001E6 thumb_func_start FUN_02028664 FUN_02028664: ; 0x02028664 push {r4-r6, lr} add r5, r0, #0x0 mov r3, #0x79 mov r0, #0x30 add r4, r1, #0x0 mul r4, r0 lsl r3, r3, #0x2 mul r0, r2 add r2, r5, r3 add r6, r5, r4 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _0202868A strh r1, [r2, r0] _0202868A: ldr r3, _020286E4 ; =0x000001E6 add r6, r5, r4 add r2, r5, r3 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _020286A2 strh r1, [r2, r0] _020286A2: mov r3, #0x7a lsl r3, r3, #0x2 add r2, r5, r3 add r6, r5, r4 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _020286BC strh r1, [r2, r0] _020286BC: mov r0, #0x7 lsl r0, r0, #0x6 add r6, r5, r0 mov r0, #0x0 add r1, r6, r4 mov r2, #0x30 blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _020286E8 ; =0x0000FFFF add r2, r5, r4 lsl r0, r0, #0x4 strh r1, [r2, r0] strh r1, [r6, r4] mov r1, #0x2 add r0, #0x1e strb r1, [r2, r0] pop {r4-r6, pc} .balign 4 _020286E0: .word 0x0000270F _020286E4: .word 0x000001E6 _020286E8: .word 0x0000FFFF thumb_func_start FUN_020286EC FUN_020286EC: ; 0x020286EC ldr r3, _020286F4 ; =FUN_02022610 mov r1, #0x1d bx r3 nop _020286F4: .word FUN_02022610 thumb_func_start FUN_020286F8 FUN_020286F8: ; 0x020286F8 mov r0, #0x42 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02028700 FUN_02028700: ; 0x02028700 push {r4-r5} add r5, r2, #0x0 mov r3, #0x2c add r2, r1, #0x0 mul r2, r3 mul r5, r3 add r4, r0, r2 add r3, r0, r5 mov r2, #0x5 _02028712: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02028712 ldr r0, [r4, #0x0] str r0, [r3, #0x0] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02028724 FUN_02028724: ; 0x02028724 push {r4, lr} add r4, r0, #0x0 mov r2, #0x42 mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClearFast ldr r0, _0202874C ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 _0202873A: strh r0, [r2, #0x0] strh r0, [r2, #0x10] add r1, r1, #0x1 add r2, #0x2c cmp r1, #0x6 blt _0202873A ldr r0, _02028750 ; =0x021C59D0 str r4, [r0, #0x0] pop {r4, pc} .balign 4 _0202874C: .word 0x0000FFFF _02028750: .word 0x021C59D0 thumb_func_start FUN_02028754 FUN_02028754: ; 0x02028754 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r7, #0x0 _0202875C: mov r4, #0x0 cmp r6, #0x0 bls _02028770 _02028762: ldr r0, [r5, #0x28] bl FUN_0201BA10 add r4, r4, #0x1 str r0, [r5, #0x28] cmp r4, r6 blo _02028762 _02028770: add r7, r7, #0x1 add r5, #0x2c cmp r7, #0x6 blo _0202875C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202877C FUN_0202877C: ; 0x0202877C mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x24] bx lr .balign 4 thumb_func_start FUN_02028788 FUN_02028788: ; 0x02028788 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2c add r4, r1, #0x0 mul r4, r0 add r0, r5, r4 str r2, [r0, #0x24] add r0, r2, #0x0 bl FUN_0201BA10 add r1, r5, r4 str r0, [r1, #0x28] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020287A4 FUN_020287A4: ; 0x020287A4 ldr r0, [r0, #0x54] bx lr thumb_func_start FUN_020287A8 FUN_020287A8: ; 0x020287A8 cmp r2, #0x0 bne _020287B4 mov r2, #0x2c mul r2, r1 add r0, r0, r2 bx lr _020287B4: mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x10 bx lr .balign 4 thumb_func_start FUN_020287C0 FUN_020287C0: ; 0x020287C0 push {r4, lr} add r4, r0, #0x0 cmp r2, #0x0 bne _020287D8 mov r2, #0x2c mul r2, r1 add r1, r4, r2 add r0, r3, #0x0 mov r2, #0x8 bl FUN_02021EF0 pop {r4, pc} _020287D8: mov r2, #0x2c mul r2, r1 add r1, r4, r2 add r0, r3, #0x0 add r1, #0x10 mov r2, #0x8 bl FUN_02021EF0 pop {r4, pc} .balign 4 thumb_func_start FUN_020287EC FUN_020287EC: ; 0x020287EC mov r3, #0x2c mul r3, r1 add r0, r0, r3 add r0, #0x20 strb r2, [r0, #0x0] bx lr thumb_func_start FUN_020287F8 FUN_020287F8: ; 0x020287F8 mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x20 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02028804 FUN_02028804: ; 0x02028804 mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x21 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02028810 FUN_02028810: ; 0x02028810 mov r3, #0x2c mul r3, r1 add r0, r0, r3 add r0, #0x21 strb r2, [r0, #0x0] bx lr thumb_func_start FUN_0202881C FUN_0202881C: ; 0x0202881C ldr r3, _02028824 ; =FUN_02022610 mov r1, #0x11 bx r3 nop _02028824: .word FUN_02022610 thumb_func_start FUN_02028828 FUN_02028828: ; 0x02028828 push {r3, lr} mov r2, #0x2c mul r2, r1 add r0, r0, r2 bl FUN_0202888C cmp r0, #0x0 bne _0202883C mov r0, #0x1 pop {r3, pc} _0202883C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02028840 FUN_02028840: ; 0x02028840 mov r2, #0x2c add r3, r0, #0x0 mul r2, r1 add r1, r3, r2 ldr r3, _02028850 ; =FUN_020288AC add r0, #0x2c bx r3 nop _02028850: .word FUN_020288AC thumb_func_start FUN_02028854 FUN_02028854: ; 0x02028854 push {r3-r7, lr} add r6, r1, #0x0 ldrh r1, [r6, #0x0] add r5, r0, #0x0 ldr r0, _02028888 ; =0x0000FFFF cmp r1, r0 bne _02028866 mov r0, #0x0 pop {r3-r7, pc} _02028866: mov r4, #0x0 mov r7, #0x8 _0202886A: add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl StringNotEqualN cmp r0, #0x0 bne _0202887C mov r0, #0x1 pop {r3-r7, pc} _0202887C: add r4, r4, #0x1 add r5, #0x2c cmp r4, #0x6 blt _0202886A mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02028888: .word 0x0000FFFF thumb_func_start FUN_0202888C FUN_0202888C: ; 0x0202888C ldrh r2, [r0, #0x0] ldr r1, _020288A8 ; =0x0000FFFF cmp r2, r1 bne _02028898 mov r0, #0x1 bx lr _02028898: ldrh r0, [r0, #0x10] cmp r0, r1 bne _020288A2 mov r0, #0x1 bx lr _020288A2: mov r0, #0x0 bx lr nop _020288A8: .word 0x0000FFFF thumb_func_start FUN_020288AC FUN_020288AC: ; 0x020288AC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, #0x10 add r1, #0x10 mov r2, #0x8 bl StringNotEqualN cmp r0, #0x0 beq _020288C4 mov r0, #0x0 pop {r3-r5, pc} _020288C4: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x8 bl StringNotEqualN cmp r0, #0x0 beq _020288D6 mov r0, #0x0 pop {r3-r5, pc} _020288D6: add r0, r5, #0x0 add r0, #0x20 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r1, r0 beq _020288EA mov r0, #0x0 pop {r3-r5, pc} _020288EA: add r0, r5, #0x0 add r0, #0x21 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] cmp r1, r0 beq _020288FE mov r0, #0x0 pop {r3-r5, pc} _020288FE: ldr r1, [r5, #0x24] ldr r0, [r4, #0x24] cmp r1, r0 bne _0202890A mov r0, #0x1 pop {r3-r5, pc} _0202890A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028910 FUN_02028910: ; 0x02028910 mov r1, #0x0 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02028918 FUN_02028918: ; 0x02028918 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202892C ; =0x0000C350 add r4, r1, #0x0 cmp r4, r0 bls _02028928 bl ErrorHandling _02028928: strh r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _0202892C: .word 0x0000C350 thumb_func_start FUN_02028930 FUN_02028930: ; 0x02028930 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02028934 FUN_02028934: ; 0x02028934 ldrh r3, [r0, #0x0] ldr r2, _02028950 ; =0x0000C350 cmp r3, r2 blo _02028940 mov r0, #0x0 bx lr _02028940: add r1, r3, r1 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] cmp r1, r2 bls _0202894C strh r2, [r0, #0x0] _0202894C: mov r0, #0x1 bx lr .balign 4 _02028950: .word 0x0000C350 thumb_func_start FUN_02028954 FUN_02028954: ; 0x02028954 ldrh r0, [r0, #0x0] add r1, r1, r0 ldr r0, _02028968 ; =0x0000C350 cmp r1, r0 bhi _02028962 mov r0, #0x1 bx lr _02028962: mov r0, #0x0 bx lr nop _02028968: .word 0x0000C350 thumb_func_start FUN_0202896C FUN_0202896C: ; 0x0202896C ldrh r2, [r0, #0x0] cmp r2, r1 bhs _02028976 mov r0, #0x0 bx lr _02028976: sub r1, r2, r1 strh r1, [r0, #0x0] mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_02028980 FUN_02028980: ; 0x02028980 mov r0, #0x46 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02028988 FUN_02028988: ; 0x02028988 ldr r3, _02028990 ; =Call_FillMemWithValue mov r1, #0x0 mov r2, #0x70 bx r3 .balign 4 _02028990: .word Call_FillMemWithValue thumb_func_start FUN_02028994 FUN_02028994: ; 0x02028994 ldr r3, _020289A0 ; =Call_FillMemWithValue mov r2, #0x46 mov r1, #0x0 lsl r2, r2, #0x4 bx r3 nop _020289A0: .word Call_FillMemWithValue thumb_func_start FUN_020289A4 FUN_020289A4: ; 0x020289A4 ldr r3, _020289AC ; =FUN_02022610 mov r1, #0x12 bx r3 nop _020289AC: .word FUN_02022610 thumb_func_start FUN_020289B0 FUN_020289B0: ; 0x020289B0 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 cmp r1, #0x1 beq _020289C0 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _020289C0: add r0, sp, #0x0 bl FUN_020126B4 ldr r0, [r7, #0x0] lsl r1, r0, #0x15 lsr r3, r1, #0x1c beq _02028A18 lsl r1, r0, #0x19 lsr r2, r1, #0x19 ldr r1, [sp, #0x0] cmp r2, r1 bne _020289F2 ldr r1, [sp, #0x4] cmp r3, r1 bne _020289F2 lsl r1, r0, #0xd lsr r2, r1, #0x1b ldr r1, [sp, #0x8] cmp r2, r1 bne _020289F2 lsl r0, r0, #0x12 lsr r1, r0, #0x1d ldr r0, [sp, #0xc] cmp r1, r0 beq _02028A18 _020289F2: mov r0, #0x3f lsl r0, r0, #0x4 mov r5, #0x9 add r6, r7, r0 _020289FA: add r4, r6, #0x0 sub r4, #0x70 add r3, r6, #0x0 mov r2, #0xe _02028A02: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02028A02 sub r5, r5, #0x1 sub r6, #0x70 cmp r5, #0x1 bge _020289FA add r0, r7, #0x0 bl FUN_02028988 _02028A18: add r0, r7, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02028A20 FUN_02028A20: ; 0x02028A20 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 cmp r1, #0x1 beq _02028A30 add sp, #0x20 mov r0, #0x0 pop {r4, pc} _02028A30: add r0, sp, #0x0 bl FUN_020126B4 ldr r0, [r4, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x19 str r0, [sp, #0x10] ldr r0, [r4, #0x0] lsl r0, r0, #0x15 lsr r0, r0, #0x1c str r0, [sp, #0x14] ldr r0, [r4, #0x0] lsl r0, r0, #0xd lsr r0, r0, #0x1b str r0, [sp, #0x18] ldr r0, [r4, #0x0] lsl r0, r0, #0x12 lsr r0, r0, #0x1d str r0, [sp, #0x1c] add r0, sp, #0x0 bl FUN_02012710 add r4, r0, #0x0 add r0, sp, #0x10 bl FUN_02012710 ldr r2, [sp, #0x4] sub r0, r4, r0 cmp r2, #0xc bne _02028A7E ldr r1, [sp, #0x8] cmp r1, #0x1f bne _02028A7E ldr r1, [sp, #0x14] cmp r1, #0x1 bne _02028A7E ldr r1, [sp, #0x18] cmp r1, #0x1 beq _02028A94 _02028A7E: cmp r2, #0x1 bne _02028AAC ldr r1, [sp, #0x8] cmp r1, #0x1 bne _02028AAC ldr r1, [sp, #0x14] cmp r1, #0xc bne _02028AAC ldr r1, [sp, #0x18] cmp r1, #0x1f bne _02028AAC _02028A94: ldr r1, [sp, #0x0] ldr r0, [sp, #0x10] sub r1, r1, r0 cmp r1, #0x2 bge _02028AA6 mov r0, #0x1 mvn r0, r0 cmp r1, r0 bgt _02028ACC _02028AA6: add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028AAC: mov r1, #0x1 mvn r1, r1 cmp r0, r1 ble _02028AB8 cmp r0, #0x2 blt _02028ABE _02028AB8: add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028ABE: ldr r1, [sp, #0x0] ldr r0, [sp, #0x10] cmp r1, r0 beq _02028ACC add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028ACC: mov r0, #0x0 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02028AD4 FUN_02028AD4: ; 0x02028AD4 push {r4, lr} add r4, r1, #0x0 cmp r0, #0x0 beq _02028B12 cmp r2, #0x4 bhi _02028B12 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02028AEC: ; jump table (using 16-bit offset) .short _02028AF6 - _02028AEC - 2; case 0 .short _02028AFC - _02028AEC - 2; case 1 .short _02028B02 - _02028AEC - 2; case 2 .short _02028B08 - _02028AEC - 2; case 3 .short _02028B0E - _02028AEC - 2; case 4 _02028AF6: bl FUN_02028B1C b _02028B12 _02028AFC: bl FUN_02028B5C b _02028B12 _02028B02: bl FUN_02028BF0 b _02028B12 _02028B08: bl FUN_02028BFC b _02028B12 _02028B0E: bl FUN_02028C08 _02028B12: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02028B1C FUN_02028B1C: ; 0x02028B1C push {r4-r5} ldr r3, [r0, #0x0] lsl r2, r3, #0x19 lsr r5, r2, #0x19 ldr r2, [r1, #0x0] lsl r4, r2, #0x19 lsr r4, r4, #0x19 cmp r5, r4 bne _02028B52 lsl r4, r3, #0x15 lsr r5, r4, #0x1c lsl r4, r2, #0x15 lsr r4, r4, #0x1c cmp r5, r4 bne _02028B52 lsl r4, r3, #0xd lsr r5, r4, #0x1b lsl r4, r2, #0xd lsr r4, r4, #0x1b cmp r5, r4 bne _02028B52 lsl r3, r3, #0x12 lsl r2, r2, #0x12 lsr r3, r3, #0x1d lsr r2, r2, #0x1d cmp r3, r2 beq _02028B56 _02028B52: ldr r1, [r1, #0x0] str r1, [r0, #0x0] _02028B56: pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02028B5C FUN_02028B5C: ; 0x02028B5C push {r3, lr} ldrb r2, [r1, #0x0] cmp r2, #0x23 bhi _02028BEE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02028B70: ; jump table (using 16-bit offset) .short _02028BEE - _02028B70 - 2; case 0 .short _02028BB8 - _02028B70 - 2; case 1 .short _02028BB8 - _02028B70 - 2; case 2 .short _02028BB8 - _02028B70 - 2; case 3 .short _02028BB8 - _02028B70 - 2; case 4 .short _02028BB8 - _02028B70 - 2; case 5 .short _02028BB8 - _02028B70 - 2; case 6 .short _02028BB8 - _02028B70 - 2; case 7 .short _02028BB8 - _02028B70 - 2; case 8 .short _02028BC0 - _02028B70 - 2; case 9 .short _02028BC0 - _02028B70 - 2; case 10 .short _02028BC8 - _02028B70 - 2; case 11 .short _02028BD0 - _02028B70 - 2; case 12 .short _02028BD8 - _02028B70 - 2; case 13 .short _02028BD8 - _02028B70 - 2; case 14 .short _02028BD8 - _02028B70 - 2; case 15 .short _02028BB8 - _02028B70 - 2; case 16 .short _02028BB8 - _02028B70 - 2; case 17 .short _02028BE0 - _02028B70 - 2; case 18 .short _02028BE8 - _02028B70 - 2; case 19 .short _02028BE8 - _02028B70 - 2; case 20 .short _02028BE8 - _02028B70 - 2; case 21 .short _02028BE8 - _02028B70 - 2; case 22 .short _02028BE8 - _02028B70 - 2; case 23 .short _02028BE8 - _02028B70 - 2; case 24 .short _02028BE8 - _02028B70 - 2; case 25 .short _02028BE8 - _02028B70 - 2; case 26 .short _02028BE8 - _02028B70 - 2; case 27 .short _02028BE8 - _02028B70 - 2; case 28 .short _02028BE8 - _02028B70 - 2; case 29 .short _02028BE8 - _02028B70 - 2; case 30 .short _02028BEE - _02028B70 - 2; case 31 .short _02028BE8 - _02028B70 - 2; case 32 .short _02028BE8 - _02028B70 - 2; case 33 .short _02028BB8 - _02028B70 - 2; case 34 .short _02028BB8 - _02028B70 - 2; case 35 _02028BB8: add r0, r0, #0x4 bl FUN_02028CE8 pop {r3, pc} _02028BC0: add r0, r0, #0x4 bl FUN_02028D98 pop {r3, pc} _02028BC8: add r0, r0, #0x4 bl FUN_02028D44 pop {r3, pc} _02028BD0: add r0, r0, #0x4 bl FUN_02028D24 pop {r3, pc} _02028BD8: add r0, r0, #0x4 bl FUN_02028DFC pop {r3, pc} _02028BE0: add r0, r0, #0x4 bl FUN_02028E44 pop {r3, pc} _02028BE8: add r0, r0, #0x4 bl FUN_02028E8C _02028BEE: pop {r3, pc} thumb_func_start FUN_02028BF0 FUN_02028BF0: ; 0x02028BF0 ldrh r2, [r1, #0x0] strh r2, [r0, #0x14] ldrh r1, [r1, #0x2] strh r1, [r0, #0x16] bx lr .balign 4 thumb_func_start FUN_02028BFC FUN_02028BFC: ; 0x02028BFC ldrh r2, [r1, #0x0] strh r2, [r0, #0x18] ldrh r1, [r1, #0x2] strh r1, [r0, #0x1a] bx lr .balign 4 thumb_func_start FUN_02028C08 FUN_02028C08: ; 0x02028C08 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_02028CA8 ldrb r1, [r4, #0x0] cmp r1, #0x10 bhi _02028C6E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02028C24: ; jump table (using 16-bit offset) .short _02028C6E - _02028C24 - 2; case 0 .short _02028C46 - _02028C24 - 2; case 1 .short _02028C46 - _02028C24 - 2; case 2 .short _02028C46 - _02028C24 - 2; case 3 .short _02028C46 - _02028C24 - 2; case 4 .short _02028C46 - _02028C24 - 2; case 5 .short _02028C4E - _02028C24 - 2; case 6 .short _02028C56 - _02028C24 - 2; case 7 .short _02028C5E - _02028C24 - 2; case 8 .short _02028C56 - _02028C24 - 2; case 9 .short _02028C5E - _02028C24 - 2; case 10 .short _02028C46 - _02028C24 - 2; case 11 .short _02028C5E - _02028C24 - 2; case 12 .short _02028C68 - _02028C24 - 2; case 13 .short _02028C5E - _02028C24 - 2; case 14 .short _02028C56 - _02028C24 - 2; case 15 .short _02028C5E - _02028C24 - 2; case 16 _02028C46: add r1, r4, #0x0 bl FUN_02028ED4 pop {r3-r5, pc} _02028C4E: add r1, r4, #0x0 bl FUN_02028F10 pop {r3-r5, pc} _02028C56: add r1, r4, #0x0 bl FUN_02028F2C pop {r3-r5, pc} _02028C5E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02028F60 pop {r3-r5, pc} _02028C68: add r1, r4, #0x0 bl FUN_02028F94 _02028C6E: pop {r3-r5, pc} thumb_func_start FUN_02028C70 FUN_02028C70: ; 0x02028C70 push {r3-r4} mov r3, #0x0 add r4, r0, #0x0 mov r1, #0x3f _02028C78: ldr r2, [r4, #0x0] tst r2, r1 bne _02028C86 lsl r1, r3, #0x2 add r0, r0, r1 pop {r3-r4} bx lr _02028C86: add r3, r3, #0x1 add r4, r4, #0x4 cmp r3, #0x4 blo _02028C78 mov r3, #0x0 add r2, r0, #0x0 _02028C92: ldr r1, [r2, #0x4] add r3, r3, #0x1 stmia r2!, {r1} cmp r3, #0x3 blo _02028C92 lsl r2, r3, #0x2 mov r1, #0x0 str r1, [r0, r2] add r0, r0, r2 pop {r3-r4} bx lr thumb_func_start FUN_02028CA8 FUN_02028CA8: ; 0x02028CA8 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 add r2, r4, #0x0 _02028CB0: ldrb r0, [r2, #0x1c] cmp r0, #0x0 bne _02028CC0 mov r0, #0x2a add r4, #0x1c mul r0, r1 add r0, r4, r0 pop {r4, pc} _02028CC0: add r1, r1, #0x1 add r2, #0x2a cmp r1, #0x2 blo _02028CB0 add r0, r4, #0x0 add r1, r4, #0x0 add r0, #0x1c add r1, #0x46 mov r2, #0x2a blx memcpy add r4, #0x46 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x2a blx Call_FillMemWithValue add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02028CE8 FUN_02028CE8: ; 0x02028CE8 push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028CF0: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028CFE add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028CF0 _02028CFE: cmp r2, #0x0 beq _02028D14 lsl r2, r2, #0x2 add r2, r0, r2 sub r2, r2, #0x4 ldr r3, [r2, #0x0] mov r2, #0x3f ldrb r1, [r4, #0x0] and r2, r3 cmp r1, r2 beq _02028D20 _02028D14: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 str r1, [r0, #0x0] _02028D20: pop {r4, pc} .balign 4 thumb_func_start FUN_02028D24 FUN_02028D24: ; 0x02028D24 push {r4, lr} add r4, r1, #0x0 bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02028D44 FUN_02028D44: ; 0x02028D44 push {r3-r5, lr} add r4, r1, #0x0 mov r2, #0x0 mov r3, #0x3f _02028D4C: lsl r1, r2, #0x2 ldr r5, [r0, r1] and r5, r3 cmp r5, #0xb bne _02028D72 mov r3, #0x0 str r3, [r0, r1] cmp r2, #0x3 bhs _02028D7C _02028D5E: lsl r3, r2, #0x2 add r1, r0, r3 ldr r1, [r1, #0x4] str r1, [r0, r3] add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x3 blo _02028D5E b _02028D7C _02028D72: add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x4 blo _02028D4C _02028D7C: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02028D98 FUN_02028D98: ; 0x02028D98 push {r4-r6, lr} add r4, r1, #0x0 mov r6, #0x0 mov r1, #0x3f _02028DA0: lsl r5, r6, #0x2 ldr r3, [r0, r5] add r2, r3, #0x0 and r2, r1 cmp r2, #0x9 bne _02028DD4 lsr r3, r3, #0x10 lsl r3, r3, #0x10 ldrh r2, [r4, #0x2] lsr r3, r3, #0x10 cmp r2, r3 bne _02028DD4 mov r1, #0x0 str r1, [r0, r5] cmp r6, #0x3 bhs _02028DDE _02028DC0: lsl r2, r6, #0x2 add r1, r0, r2 ldr r1, [r1, #0x4] str r1, [r0, r2] add r1, r6, #0x1 lsl r1, r1, #0x10 lsr r6, r1, #0x10 cmp r6, #0x3 blo _02028DC0 b _02028DDE _02028DD4: add r2, r6, #0x1 lsl r2, r2, #0x10 lsr r6, r2, #0x10 cmp r6, #0x4 blo _02028DA0 _02028DDE: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02028DFC FUN_02028DFC: ; 0x02028DFC push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E04: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028E12 add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E04 _02028E12: cmp r2, #0x0 beq _02028E30 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028E30 ldrh r2, [r4, #0x2] lsr r1, r3, #0x10 cmp r2, r1 beq _02028E42 _02028E30: bl FUN_02028C70 ldrh r1, [r4, #0x2] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028E42: pop {r4, pc} thumb_func_start FUN_02028E44 FUN_02028E44: ; 0x02028E44 push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E4C: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028E5A add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E4C _02028E5A: cmp r2, #0x0 beq _02028E78 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028E78 ldrh r2, [r4, #0x6] lsr r1, r3, #0x10 cmp r2, r1 beq _02028E8A _02028E78: bl FUN_02028C70 ldrh r1, [r4, #0x6] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028E8A: pop {r4, pc} thumb_func_start FUN_02028E8C FUN_02028E8C: ; 0x02028E8C push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E94: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028EA2 add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E94 _02028EA2: cmp r2, #0x0 beq _02028EC0 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028EC0 ldrh r2, [r4, #0x2] lsr r1, r3, #0x10 cmp r2, r1 beq _02028ED2 _02028EC0: bl FUN_02028C70 ldrh r1, [r4, #0x2] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028ED2: pop {r4, pc} thumb_func_start FUN_02028ED4 FUN_02028ED4: ; 0x02028ED4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r0, [r4, #0x0] strb r0, [r5, #0x0] ldrb r3, [r4, #0x1] lsl r1, r3, #0x1c lsr r2, r1, #0x1a lsl r1, r3, #0x1b lsr r1, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r1, #0x1 orr r1, r2 lsr r0, r0, #0x1f orr r0, r1 strb r0, [r5, #0x1] add r0, r4, #0x2 add r1, r5, #0x2 mov r2, #0x8 bl FUN_020292D4 add r4, #0x12 add r5, #0x12 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028F10 FUN_02028F10: ; 0x02028F10 add r2, r0, #0x0 ldrb r0, [r1, #0x0] ldr r3, _02028F28 ; =FUN_020292D4 strb r0, [r2, #0x0] ldrb r0, [r1, #0x1] lsl r0, r0, #0x1b lsr r0, r0, #0x1f strb r0, [r2, #0x1] add r0, r1, #0x2 add r1, r2, #0x2 mov r2, #0x8 bx r3 .balign 4 _02028F28: .word FUN_020292D4 thumb_func_start FUN_02028F2C FUN_02028F2C: ; 0x02028F2C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r0, [r4, #0x0] mov r2, #0x8 strb r0, [r5, #0x0] ldrb r0, [r4, #0x1] lsl r1, r0, #0x1b lsr r1, r1, #0x1f lsl r0, r0, #0x18 lsl r1, r1, #0x2 lsr r0, r0, #0x1e orr r0, r1 strb r0, [r5, #0x1] add r0, r4, #0x2 add r1, r5, #0x2 bl FUN_020292D4 add r4, #0x22 add r5, #0x12 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0xc bl FUN_020292D4 pop {r3-r5, pc} thumb_func_start FUN_02028F60 FUN_02028F60: ; 0x02028F60 push {r4, lr} add r4, r1, #0x0 mov r3, #0x0 add r2, r0, #0x0 _02028F68: ldrb r1, [r2, #0x1c] cmp r1, #0x0 beq _02028F76 add r3, r3, #0x1 add r2, #0x2a cmp r3, #0x2 blo _02028F68 _02028F76: cmp r3, #0x0 beq _02028F8A mov r1, #0x2a mul r1, r3 add r1, r0, r1 sub r1, #0xe ldrb r2, [r4, #0x0] ldrb r1, [r1, #0x0] cmp r2, r1 beq _02028F92 _02028F8A: bl FUN_02028CA8 ldrb r1, [r4, #0x0] strb r1, [r0, #0x0] _02028F92: pop {r4, pc} thumb_func_start FUN_02028F94 FUN_02028F94: ; 0x02028F94 ldrb r2, [r1, #0x0] strb r2, [r0, #0x0] ldrb r1, [r1, #0x1] lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r0, #0x1] bx lr .balign 4 thumb_func_start FUN_02028FA4 FUN_02028FA4: ; 0x02028FA4 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_020126B4 ldr r2, [r4, #0x0] mov r0, #0x7f bic r2, r0 ldr r1, [sp, #0x0] mov r0, #0x7f and r0, r1 add r1, r2, #0x0 orr r1, r0 str r1, [r4, #0x0] add r2, r1, #0x0 ldr r1, [sp, #0x4] ldr r0, _02029008 ; =0xFFFFF87F lsl r1, r1, #0x1c and r2, r0 lsr r1, r1, #0x15 orr r2, r1 ldr r1, _0202900C ; =0xFFF83FFF str r2, [r4, #0x0] and r2, r1 ldr r1, [sp, #0x8] lsr r0, r0, #0xd lsl r1, r1, #0x1b lsr r1, r1, #0xd orr r2, r1 ldr r1, _02029010 ; =0xFFFFC7FF str r2, [r4, #0x0] and r2, r1 ldr r1, [sp, #0xc] lsl r1, r1, #0x1d lsr r1, r1, #0x12 orr r1, r2 and r1, r0 lsl r0, r5, #0x13 orr r0, r1 str r0, [r4, #0x0] add r0, r4, #0x0 add sp, #0x10 pop {r3-r5, pc} nop _02029008: .word 0xFFFFF87F _0202900C: .word 0xFFF83FFF _02029010: .word 0xFFFFC7FF thumb_func_start FUN_02029014 FUN_02029014: ; 0x02029014 push {r3, lr} mov r1, #0x8 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] pop {r3, pc} thumb_func_start FUN_02029030 FUN_02029030: ; 0x02029030 push {r3, lr} bl FUN_02029014 mov r1, #0x1 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202903C FUN_0202903C: ; 0x0202903C push {r3, lr} bl FUN_02029014 mov r1, #0x2 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029048 FUN_02029048: ; 0x02029048 push {r3, lr} bl FUN_02029014 mov r1, #0x3 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029054 FUN_02029054: ; 0x02029054 push {r3, lr} bl FUN_02029014 mov r1, #0x4 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029060 FUN_02029060: ; 0x02029060 push {r3, lr} bl FUN_02029014 mov r1, #0x5 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202906C FUN_0202906C: ; 0x0202906C push {r3, lr} bl FUN_02029014 mov r1, #0x6 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029078 FUN_02029078: ; 0x02029078 push {r3, lr} bl FUN_02029014 mov r1, #0x7 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029084 FUN_02029084: ; 0x02029084 push {r3, lr} bl FUN_02029014 mov r1, #0x8 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029090 FUN_02029090: ; 0x02029090 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0x9 strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_020290A4 FUN_020290A4: ; 0x020290A4 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02029014 mov r1, #0xa strb r1, [r0, #0x0] strh r5, [r0, #0x2] strh r4, [r0, #0x4] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020290BC FUN_020290BC: ; 0x020290BC push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xb strb r1, [r0, #0x0] strh r4, [r0, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020290D0 FUN_020290D0: ; 0x020290D0 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xc strb r1, [r0, #0x0] strh r4, [r0, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020290E4 FUN_020290E4: ; 0x020290E4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xd strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_020290F8 FUN_020290F8: ; 0x020290F8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xe strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_0202910C FUN_0202910C: ; 0x0202910C push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xf strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_02029120 FUN_02029120: ; 0x02029120 push {r3, lr} bl FUN_02029014 mov r1, #0x10 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202912C FUN_0202912C: ; 0x0202912C push {r3, lr} bl FUN_02029014 mov r1, #0x11 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029138 FUN_02029138: ; 0x02029138 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0x12 strb r1, [r0, #0x0] strh r4, [r0, #0x6] pop {r4, pc} .balign 4 thumb_func_start FUN_0202914C FUN_0202914C: ; 0x0202914C push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02029014 add r5, #0x13 strb r5, [r0, #0x0] strh r4, [r0, #0x2] pop {r3-r5, pc} thumb_func_start FUN_02029160 FUN_02029160: ; 0x02029160 push {r3, lr} bl FUN_02029014 mov r1, #0x22 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202916C FUN_0202916C: ; 0x0202916C push {r3, lr} bl FUN_02029014 mov r1, #0x23 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029178 FUN_02029178: ; 0x02029178 push {r3, lr} mov r1, #0x4 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] pop {r3, pc} thumb_func_start FUN_0202918C FUN_0202918C: ; 0x0202918C push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02029178 add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] strh r5, [r4, #0x2] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x3c bic r1, r0 lsl r0, r7, #0x1c lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _020291DA cmp r0, #0x2 beq _020291DA cmp r0, #0x4 bne _020291E4 _020291DA: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 strb r1, [r4, #0x1] b _02029206 _020291E4: cmp r0, #0x1 beq _020291EC cmp r0, #0x3 bne _020291FA _020291EC: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r4, #0x1] b _02029206 _020291FA: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x1] _02029206: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202920C FUN_0202920C: ; 0x0202920C push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02029178 add r4, r0, #0x0 mov r0, #0x2 strb r0, [r4, #0x0] strh r5, [r4, #0x2] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x3c bic r1, r0 lsl r0, r7, #0x1c lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 beq _0202925C cmp r0, #0x3 beq _0202925C cmp r0, #0x5 bne _02029266 _0202925C: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 strb r1, [r4, #0x1] b _02029288 _02029266: cmp r0, #0x2 beq _0202926E cmp r0, #0x4 bne _0202927C _0202926E: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r4, #0x1] b _02029288 _0202927C: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x1] _02029288: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0202928C FUN_0202928C: ; 0x0202928C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x4 bl FUN_02016998 ldrh r2, [r0, #0x0] mov r1, #0x1 bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] strh r5, [r0, #0x2] ldrh r2, [r0, #0x0] ldr r1, _020292B8 ; =0xFFFF0001 and r2, r1 lsl r1, r4, #0x11 lsr r1, r1, #0x10 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} .balign 4 _020292B8: .word 0xFFFF0001 thumb_func_start FUN_020292BC FUN_020292BC: ; 0x020292BC push {r4, lr} mov r1, #0x3a bl FUN_02016998 mov r1, #0x0 mov r2, #0x3a add r4, r0, #0x0 blx Call_FillMemWithValue add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020292D4 FUN_020292D4: ; 0x020292D4 push {r4-r5} mov r4, #0x0 cmp r2, #0x0 bls _020292EA ldr r3, _02029308 ; =0x0000FFFF add r5, r1, #0x0 _020292E0: add r4, r4, #0x1 strh r3, [r5, #0x0] add r5, r5, #0x2 cmp r4, r2 blo _020292E0 _020292EA: mov r5, #0x0 cmp r2, #0x0 bls _02029304 ldr r3, _02029308 ; =0x0000FFFF _020292F2: ldrh r4, [r0, #0x0] cmp r4, r3 beq _02029304 add r5, r5, #0x1 strh r4, [r1, #0x0] add r0, r0, #0x2 add r1, r1, #0x2 cmp r5, r2 blo _020292F2 _02029304: pop {r4-r5} bx lr .balign 4 _02029308: .word 0x0000FFFF thumb_func_start FUN_0202930C FUN_0202930C: ; 0x0202930C push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202934C FUN_0202934C: ; 0x0202934C push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x2 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202938C FUN_0202938C: ; 0x0202938C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x1c] str r1, [sp, #0x0] add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x3 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf bic r0, r1 add r1, sp, #0x8 ldrb r2, [r1, #0x10] mov r1, #0xf and r1, r2 orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x20 bic r1, r0 lsl r0, r6, #0x1f lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x12 mov r2, #0x8 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020293EC FUN_020293EC: ; 0x020293EC push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x4 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202942C FUN_0202942C: ; 0x0202942C push {r4-r6, lr} add r6, r0, #0x0 add r0, r2, #0x0 add r5, r1, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x6 strb r0, [r4, #0x0] ldrb r1, [r4, #0x1] mov r0, #0x10 mov r2, #0x8 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r6, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202945C FUN_0202945C: ; 0x0202945C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x18] add r5, r1, #0x0 str r2, [sp, #0x0] add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x7 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x22 mov r2, #0xc bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020294A8 FUN_020294A8: ; 0x020294A8 push {r3, lr} bl FUN_020292BC mov r1, #0x8 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_020294B4 FUN_020294B4: ; 0x020294B4 push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0xb strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020294F4 FUN_020294F4: ; 0x020294F4 push {r3, lr} bl FUN_020292BC mov r1, #0xc strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029500 FUN_02029500: ; 0x02029500 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_020292BC mov r1, #0xd strb r1, [r0, #0x0] ldrb r2, [r0, #0x1] mov r1, #0xf bic r2, r1 mov r1, #0xf and r1, r4 orr r1, r2 strb r1, [r0, #0x1] pop {r4, pc} .balign 4 thumb_func_start FUN_02029520 FUN_02029520: ; 0x02029520 push {r3, lr} bl FUN_020292BC mov r1, #0xe strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202952C FUN_0202952C: ; 0x0202952C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x18] add r5, r1, #0x0 str r2, [sp, #0x0] add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0xf strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x22 mov r2, #0xc bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02029578 FUN_02029578: ; 0x02029578 push {r3, lr} bl FUN_020292BC mov r1, #0x10 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029584 FUN_02029584: ; 0x02029584 push {r3, lr} cmp r2, #0x4 bhi _020295DA add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02029596: ; jump table (using 16-bit offset) .short _020295A0 - _02029596 - 2; case 0 .short _020295AC - _02029596 - 2; case 1 .short _020295B8 - _02029596 - 2; case 2 .short _020295C4 - _02029596 - 2; case 3 .short _020295D0 - _02029596 - 2; case 4 _020295A0: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020295DC pop {r3, pc} _020295AC: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020295E4 pop {r3, pc} _020295B8: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_02029690 pop {r3, pc} _020295C4: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_0202969C pop {r3, pc} _020295D0: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020296A8 _020295DA: pop {r3, pc} thumb_func_start FUN_020295DC FUN_020295DC: ; 0x020295DC ldr r0, [r0, #0x0] str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_020295E4 FUN_020295E4: ; 0x020295E4 push {r3-r7, lr} mov r6, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 add r7, r6, #0x0 _020295EE: strb r7, [r4, #0x0] strb r7, [r4, #0x1] strb r7, [r4, #0x2] strb r7, [r4, #0x3] strb r7, [r4, #0x4] strb r7, [r4, #0x5] strb r7, [r4, #0x6] strb r7, [r4, #0x7] ldr r0, [r5, #0x4] mov r1, #0x3f and r1, r0 cmp r1, #0x23 bhi _02029682 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02029614: ; jump table (using 16-bit offset) .short _02029682 - _02029614 - 2; case 0 .short _0202965C - _02029614 - 2; case 1 .short _0202965C - _02029614 - 2; case 2 .short _0202965C - _02029614 - 2; case 3 .short _0202965C - _02029614 - 2; case 4 .short _0202965C - _02029614 - 2; case 5 .short _0202965C - _02029614 - 2; case 6 .short _0202965C - _02029614 - 2; case 7 .short _0202965C - _02029614 - 2; case 8 .short _02029664 - _02029614 - 2; case 9 .short _02029664 - _02029614 - 2; case 10 .short _02029664 - _02029614 - 2; case 11 .short _02029664 - _02029614 - 2; case 12 .short _0202966C - _02029614 - 2; case 13 .short _0202966C - _02029614 - 2; case 14 .short _0202966C - _02029614 - 2; case 15 .short _0202965C - _02029614 - 2; case 16 .short _0202965C - _02029614 - 2; case 17 .short _02029674 - _02029614 - 2; case 18 .short _0202967C - _02029614 - 2; case 19 .short _0202967C - _02029614 - 2; case 20 .short _0202967C - _02029614 - 2; case 21 .short _0202967C - _02029614 - 2; case 22 .short _0202967C - _02029614 - 2; case 23 .short _0202967C - _02029614 - 2; case 24 .short _0202967C - _02029614 - 2; case 25 .short _0202967C - _02029614 - 2; case 26 .short _0202967C - _02029614 - 2; case 27 .short _0202967C - _02029614 - 2; case 28 .short _0202967C - _02029614 - 2; case 29 .short _0202967C - _02029614 - 2; case 30 .short _02029682 - _02029614 - 2; case 31 .short _0202967C - _02029614 - 2; case 32 .short _0202967C - _02029614 - 2; case 33 .short _0202965C - _02029614 - 2; case 34 .short _0202965C - _02029614 - 2; case 35 _0202965C: add r1, r4, #0x0 bl FUN_02029730 b _02029682 _02029664: add r1, r4, #0x0 bl FUN_02029738 b _02029682 _0202966C: add r1, r4, #0x0 bl FUN_02029750 b _02029682 _02029674: add r1, r4, #0x0 bl FUN_0202975C b _02029682 _0202967C: add r1, r4, #0x0 bl FUN_02029768 _02029682: add r6, r6, #0x1 add r4, #0x8 add r5, r5, #0x4 cmp r6, #0x4 blo _020295EE pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02029690 FUN_02029690: ; 0x02029690 ldrh r2, [r0, #0x14] strh r2, [r1, #0x0] ldrh r0, [r0, #0x16] strh r0, [r1, #0x2] bx lr .balign 4 thumb_func_start FUN_0202969C FUN_0202969C: ; 0x0202969C ldrh r2, [r0, #0x18] strh r2, [r1, #0x0] ldrh r0, [r0, #0x1a] strh r0, [r1, #0x2] bx lr .balign 4 thumb_func_start FUN_020296A8 FUN_020296A8: ; 0x020296A8 push {r3-r7, lr} add r6, r0, #0x0 add r5, r6, #0x0 add r4, r1, #0x0 mov r7, #0x0 add r5, #0x1c _020296B4: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x3a blx Call_FillMemWithValue ldrb r0, [r6, #0x1c] cmp r0, #0x10 bhi _02029722 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020296D0: ; jump table (using 16-bit offset) .short _02029722 - _020296D0 - 2; case 0 .short _020296F2 - _020296D0 - 2; case 1 .short _020296F2 - _020296D0 - 2; case 2 .short _020296F2 - _020296D0 - 2; case 3 .short _020296F2 - _020296D0 - 2; case 4 .short _020296F2 - _020296D0 - 2; case 5 .short _020296FC - _020296D0 - 2; case 6 .short _02029706 - _020296D0 - 2; case 7 .short _02029710 - _020296D0 - 2; case 8 .short _02029706 - _020296D0 - 2; case 9 .short _02029710 - _020296D0 - 2; case 10 .short _020296F2 - _020296D0 - 2; case 11 .short _02029710 - _020296D0 - 2; case 12 .short _0202971A - _020296D0 - 2; case 13 .short _02029710 - _020296D0 - 2; case 14 .short _02029706 - _020296D0 - 2; case 15 .short _02029710 - _020296D0 - 2; case 16 _020296F2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029774 b _02029722 _020296FC: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020297E4 b _02029722 _02029706: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029808 b _02029722 _02029710: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029860 b _02029722 _0202971A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029868 _02029722: add r7, r7, #0x1 add r4, #0x3a add r6, #0x2a add r5, #0x2a cmp r7, #0x2 blo _020296B4 pop {r3-r7, pc} thumb_func_start FUN_02029730 FUN_02029730: ; 0x02029730 mov r2, #0x3f and r0, r2 strb r0, [r1, #0x0] bx lr thumb_func_start FUN_02029738 FUN_02029738: ; 0x02029738 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r3, r0, #0x6 ldr r2, _0202974C ; =0x000003FF lsr r0, r0, #0x10 and r2, r3 strh r2, [r1, #0x4] strh r0, [r1, #0x2] bx lr .balign 4 _0202974C: .word 0x000003FF thumb_func_start FUN_02029750 FUN_02029750: ; 0x02029750 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] bx lr thumb_func_start FUN_0202975C FUN_0202975C: ; 0x0202975C mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x6] bx lr thumb_func_start FUN_02029768 FUN_02029768: ; 0x02029768 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] bx lr thumb_func_start FUN_02029774 FUN_02029774: ; 0x02029774 push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x0] add r4, r1, #0x0 mov r1, #0xf strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] bic r0, r1 ldrb r1, [r5, #0x1] asr r2, r1, #0x2 mov r1, #0x1f and r1, r2 lsl r1, r1, #0x18 lsr r2, r1, #0x18 mov r1, #0xf and r1, r2 orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x1 bic r0, r1 ldrb r1, [r5, #0x1] asr r1, r1, #0x1 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x20 bic r0, r1 ldrb r1, [r5, #0x1] and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1a orr r0, r1 strb r0, [r4, #0x1] add r0, r5, #0x2 add r1, r4, #0x2 mov r2, #0x8 bl FUN_020292D4 add r5, #0x12 add r4, #0x12 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x8 bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020297E4 FUN_020297E4: ; 0x020297E4 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r3, [r1, #0x1] mov r2, #0x10 bic r3, r2 ldrb r2, [r0, #0x1] add r0, r0, #0x2 lsl r2, r2, #0x1f lsr r2, r2, #0x1b orr r2, r3 strb r2, [r1, #0x1] ldr r3, _02029804 ; =FUN_020292D4 add r1, r1, #0x2 mov r2, #0x8 bx r3 nop _02029804: .word FUN_020292D4 thumb_func_start FUN_02029808 FUN_02029808: ; 0x02029808 push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x0] add r4, r1, #0x0 mov r1, #0x10 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] bic r0, r1 ldrb r1, [r5, #0x1] asr r2, r1, #0x2 mov r1, #0x1 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0xc0 ldrb r2, [r5, #0x1] bic r0, r1 mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1e lsr r1, r1, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r5, #0x2 add r1, r4, #0x2 mov r2, #0x8 bl FUN_020292D4 add r5, #0x12 add r4, #0x22 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xc bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029860 FUN_02029860: ; 0x02029860 ldrb r0, [r0, #0x0] strb r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_02029868 FUN_02029868: ; 0x02029868 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r3, [r1, #0x1] mov r2, #0xf bic r3, r2 ldrb r2, [r0, #0x1] mov r0, #0xf and r0, r2 orr r0, r3 strb r0, [r1, #0x1] bx lr .balign 4 thumb_func_start FUN_02029880 FUN_02029880: ; 0x02029880 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 mov r0, #0x0 add r4, r3, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 str r1, [sp, #0x0] add r5, r2, #0x0 ldr r6, [sp, #0x20] bl FUN_02034930 cmp r0, #0x1 bne _020298BA add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 add r0, r4, #0x0 bl FUN_02034824 lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r6, #0x0 bl FUN_020290F8 str r0, [sp, #0x4] b _02029942 _020298BA: add r0, r4, #0x0 bl FUN_02034944 cmp r0, #0x1 bne _0202991A add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 ldr r0, _02029958 ; =0x0000019E cmp r4, r0 bne _020298DE add r0, r6, #0x0 bl FUN_02029030 str r0, [sp, #0x4] b _02029942 _020298DE: add r0, #0x8 cmp r4, r0 bne _020298EE add r0, r6, #0x0 bl FUN_0202903C str r0, [sp, #0x4] b _02029942 _020298EE: add r0, r4, #0x0 bl FUN_02034824 add r7, r0, #0x0 lsl r0, r7, #0x10 lsr r0, r0, #0x10 ldr r5, _0202995C ; =0x020EE9A4 mov r4, #0x0 str r0, [sp, #0x8] _02029900: ldr r0, [r5, #0x0] cmp r7, r0 bne _02029910 ldr r0, [sp, #0x8] add r1, r6, #0x0 bl FUN_0202910C str r0, [sp, #0x4] _02029910: add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x1b blo _02029900 b _02029942 _0202991A: add r0, r4, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 add r0, r5, #0x0 bl FUN_02034944 cmp r0, #0x1 bne _02029942 add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02029988 cmp r0, #0xff beq _02029942 add r1, r6, #0x0 bl FUN_02029090 str r0, [sp, #0x4] _02029942: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _02029952 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] mov r2, #0x1 bl FUN_02028AD4 _02029952: add sp, #0xc pop {r4-r7, pc} nop _02029958: .word 0x0000019E _0202995C: .word 0x020EE9A4 thumb_func_start FUN_02029960 FUN_02029960: ; 0x02029960 ldr r3, _02029980 ; =0x020EE9A4 mov r2, #0x0 _02029964: ldr r1, [r3, #0x0] cmp r0, r1 bne _02029972 ldr r0, _02029984 ; =0x020EE9A8 lsl r1, r2, #0x3 ldr r0, [r0, r1] bx lr _02029972: add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x1b blo _02029964 mov r0, #0x0 bx lr nop _02029980: .word 0x020EE9A4 _02029984: .word 0x020EE9A8 thumb_func_start FUN_02029988 FUN_02029988: ; 0x02029988 push {r3-r5, lr} ldr r2, _020299B8 ; =0x020EE964 mov r4, #0x0 _0202998E: lsl r3, r4, #0x3 add r5, r2, r3 ldrh r5, [r5, #0x4] cmp r1, r5 bne _020299A8 ldr r1, _020299BC ; =0x020EE96A ldrh r1, [r1, r3] bl FUN_020239D0 cmp r0, #0x0 bne _020299B2 add r0, r4, #0x0 pop {r3-r5, pc} _020299A8: add r3, r4, #0x1 lsl r3, r3, #0x18 lsr r4, r3, #0x18 cmp r4, #0x8 blo _0202998E _020299B2: mov r0, #0xff pop {r3-r5, pc} nop _020299B8: .word 0x020EE964 _020299BC: .word 0x020EE96A thumb_func_start FUN_020299C0 FUN_020299C0: ; 0x020299C0 push {r4, lr} add r4, r0, #0x0 lsl r0, r1, #0x10 lsr r0, r0, #0x10 add r1, r2, #0x0 bl FUN_020290E4 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r4, pc} .balign 4 thumb_func_start FUN_020299DC FUN_020299DC: ; 0x020299DC push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 bl FUN_02029A48 cmp r0, #0x8 bhs _02029A04 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020290A4 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A04: bne _02029A1A add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020290BC add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A1A: cmp r0, #0x9 bne _02029A32 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020290D0 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A32: add r0, r7, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0202928C add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x3 bl FUN_02028AD4 pop {r3-r7, pc} thumb_func_start FUN_02029A48 FUN_02029A48: ; 0x02029A48 ldr r2, _02029A7C ; =0x020EE964 mov r3, #0x0 _02029A4C: lsl r1, r3, #0x3 ldr r1, [r2, r1] cmp r0, r1 bne _02029A58 add r0, r3, #0x0 bx lr _02029A58: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x8 blo _02029A4C ldr r1, _02029A80 ; =0x00000105 sub r2, r0, r1 cmp r2, #0x3 bhi _02029A6E mov r0, #0x8 bx lr _02029A6E: add r1, r1, #0x6 cmp r0, r1 bne _02029A78 mov r0, #0x9 bx lr _02029A78: mov r0, #0xa bx lr .balign 4 _02029A7C: .word 0x020EE964 _02029A80: .word 0x00000105 thumb_func_start FUN_02029A84 FUN_02029A84: ; 0x02029A84 mov r0, #0x62 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02029A8C FUN_02029A8C: ; 0x02029A8C push {r4-r6, lr} mov r2, #0x62 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx Call_FillMemWithValue add r0, r4, #0x0 bl FUN_02029ACC add r5, r0, #0x0 mov r4, #0x0 mov r6, #0x8c _02029AA6: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02029AD8 add r4, r4, #0x1 cmp r4, #0x8 blt _02029AA6 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029ABC FUN_02029ABC: ; 0x02029ABC ldr r3, _02029AC4 ; =FUN_02022610 mov r1, #0x13 bx r3 nop _02029AC4: .word FUN_02022610 thumb_func_start FUN_02029AC8 FUN_02029AC8: ; 0x02029AC8 add r0, #0x20 bx lr thumb_func_start FUN_02029ACC FUN_02029ACC: ; 0x02029ACC bx lr .balign 4 thumb_func_start FUN_02029AD0 FUN_02029AD0: ; 0x02029AD0 lsl r0, r0, #0x2 ldr r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02029AD8 FUN_02029AD8: ; 0x02029AD8 lsl r0, r0, #0x2 str r1, [r2, r0] bx lr .balign 4 thumb_func_start FUN_02029AE0 FUN_02029AE0: ; 0x02029AE0 ldr r0, _02029AE4 ; =0x00000FF8 bx lr .balign 4 _02029AE4: .word 0x00000FF8 thumb_func_start FUN_02029AE8 FUN_02029AE8: ; 0x02029AE8 ldr r3, _02029AF4 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _02029AF8 ; =0x00000FF8 bx r3 nop _02029AF4: .word MIi_CpuClear32 _02029AF8: .word 0x00000FF8 thumb_func_start FUN_02029AFC FUN_02029AFC: ; 0x02029AFC ldr r3, _02029B04 ; =FUN_02022610 mov r1, #0x1e bx r3 nop _02029B04: .word FUN_02022610 thumb_func_start FUN_02029B08 FUN_02029B08: ; 0x02029B08 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 lsl r0, r0, #0x8 add r4, r2, #0x0 cmp r5, r0 blt _02029B1C bl ErrorHandling _02029B1C: cmp r4, #0x40 blt _02029B24 bl ErrorHandling _02029B24: strb r5, [r6, #0x5] add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x3 strb r4, [r6, #0x6] bl FUN_02029B90 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029B38 FUN_02029B38: ; 0x02029B38 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_02029B3C FUN_02029B3C: ; 0x02029B3C ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_02029B40 FUN_02029B40: ; 0x02029B40 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 lsl r0, r0, #0x8 add r4, r2, #0x0 cmp r5, r0 blt _02029B54 bl ErrorHandling _02029B54: cmp r4, #0x40 blt _02029B5C bl ErrorHandling _02029B5C: cmp r5, #0x0 bne _02029B64 mov r0, #0x0 pop {r4-r6, pc} _02029B64: asr r0, r4, #0x1 lsr r0, r0, #0x1e add r0, r4, r0 asr r1, r0, #0x2 sub r0, r5, #0x1 lsl r0, r0, #0x4 add r0, r1, r0 add r0, r6, r0 ldrb r3, [r0, #0x7] lsr r2, r4, #0x1f lsl r1, r4, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x1 add r1, r3, #0x0 asr r1, r0 mov r0, #0x3 and r0, r1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029B90 FUN_02029B90: ; 0x02029B90 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x4 blt _02029BA2 bl ErrorHandling _02029BA2: mov r0, #0x1 lsl r0, r0, #0x8 cmp r5, r0 blt _02029BAE bl ErrorHandling _02029BAE: cmp r4, #0x40 blt _02029BB6 bl ErrorHandling _02029BB6: cmp r5, #0x0 beq _02029BFE asr r0, r4, #0x1 lsr r0, r0, #0x1e add r0, r4, r0 asr r2, r0, #0x2 sub r0, r5, #0x1 lsl r0, r0, #0x4 add r0, r2, r0 lsr r2, r4, #0x1f lsl r4, r4, #0x1e sub r4, r4, r2 mov r3, #0x1e ror r4, r3 add r2, r2, r4 lsl r6, r2, #0x1 mov r2, #0x3 add r3, r2, #0x0 add r1, r7, #0x7 ldrb r4, [r1, r0] lsl r3, r6 mov r2, #0xff eor r2, r3 and r2, r4 ldr r3, [sp, #0x0] strb r2, [r1, r0] ldrb r2, [r1, r0] lsl r3, r6 orr r2, r3 strb r2, [r1, r0] cmp r5, #0x67 beq _02029BFE add r0, r7, #0x0 mov r1, #0x1 bl FUN_02029C04 _02029BFE: pop {r3-r7, pc} thumb_func_start FUN_02029C00 FUN_02029C00: ; 0x02029C00 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_02029C04 FUN_02029C04: ; 0x02029C04 strb r1, [r0, #0x4] bx lr thumb_func_start FUN_02029C08 FUN_02029C08: ; 0x02029C08 push {r3-r7, lr} mov lr, r0 mov r0, #0x3 mov r7, #0x0 mov r4, #0x2 mov r6, #0xff add r3, r0, #0x0 _02029C16: mov r1, lr add r1, r1, r7 ldrb r2, [r1, #0x7] mov r12, r1 mov r1, #0x0 _02029C20: add r5, r2, #0x0 asr r5, r1 and r5, r3 cmp r5, #0x1 bne _02029C40 add r5, r0, #0x0 lsl r5, r1 eor r5, r6 and r2, r5 lsl r2, r2, #0x18 lsr r5, r2, #0x18 add r2, r4, #0x0 lsl r2, r1 orr r2, r5 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _02029C40: add r1, r1, #0x2 cmp r1, #0x8 blt _02029C20 mov r1, r12 strb r2, [r1, #0x7] mov r1, #0xff add r7, r7, #0x1 lsl r1, r1, #0x4 cmp r7, r1 blt _02029C16 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02029C58 FUN_02029C58: ; 0x02029C58 mov r0, #0x17 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02029C60 FUN_02029C60: ; 0x02029C60 push {r4, lr} add r4, r0, #0x0 bl FUN_02029C58 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 blx MI_CpuFill8 pop {r4, pc} thumb_func_start FUN_02029C74 FUN_02029C74: ; 0x02029C74 ldr r3, _02029C7C ; =MI_CpuCopy8 mov r2, #0x18 bx r3 nop _02029C7C: .word MI_CpuCopy8 thumb_func_start FUN_02029C80 FUN_02029C80: ; 0x02029C80 ldr r3, _02029C88 ; =FUN_02022610 mov r1, #0x15 bx r3 nop _02029C88: .word FUN_02022610 thumb_func_start FUN_02029C8C FUN_02029C8C: ; 0x02029C8C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xc blt _02029C9A bl ErrorHandling _02029C9A: mov r0, #0x18 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029CA4 FUN_02029CA4: ; 0x02029CA4 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0xc blt _02029CB4 bl ErrorHandling _02029CB4: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029C8C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02029C74 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029CC8 FUN_02029CC8: ; 0x02029CC8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blt _02029CD6 bl ErrorHandling _02029CD6: lsl r0, r4, #0x1 add r0, r4, r0 add r0, r5, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029CE0 FUN_02029CE0: ; 0x02029CE0 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02029CE4 FUN_02029CE4: ; 0x02029CE4 ldrb r0, [r0, #0x1] bx lr thumb_func_start FUN_02029CE8 FUN_02029CE8: ; 0x02029CE8 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02029CEC FUN_02029CEC: ; 0x02029CEC mov r1, #0x12 lsl r1, r1, #0x4 add r0, r0, r1 bx lr thumb_func_start FUN_02029CF4 FUN_02029CF4: ; 0x02029CF4 ldrb r0, [r0, r1] bx lr thumb_func_start FUN_02029CF8 FUN_02029CF8: ; 0x02029CF8 mov r3, #0x0 add r2, r1, #0x1 _02029CFC: ldrb r1, [r0, #0x0] cmp r2, r1 bne _02029D06 mov r0, #0x1 bx lr _02029D06: add r3, r3, #0x1 add r0, r0, #0x3 cmp r3, #0x8 blt _02029CFC mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02029D14 FUN_02029D14: ; 0x02029D14 push {r4-r7} mov r6, #0x0 add r4, r6, #0x0 add r2, r1, #0x1 add r3, r6, #0x0 _02029D1E: add r5, r3, #0x0 add r7, r0, #0x0 _02029D22: ldrb r1, [r7, #0x0] cmp r2, r1 bne _02029D2A add r6, r6, #0x1 _02029D2A: add r5, r5, #0x1 add r7, r7, #0x3 cmp r5, #0x8 blt _02029D22 add r4, r4, #0x1 add r0, #0x18 cmp r4, #0xc blt _02029D1E add r0, r6, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_02029D40 FUN_02029D40: ; 0x02029D40 strb r2, [r0, r1] bx lr thumb_func_start FUN_02029D44 FUN_02029D44: ; 0x02029D44 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 mov r1, #0x12 lsl r1, r1, #0x4 add r2, r6, r1 sub r1, r5, #0x1 ldrb r3, [r2, r1] add r0, r0, r3 cmp r4, #0x0 bge _02029D6E add r0, r4, r3 bmi _02029D6A strb r0, [r2, r1] b _02029D7E _02029D6A: mov r0, #0x0 pop {r4-r6, pc} _02029D6E: add r0, r0, r4 cmp r0, #0x63 bgt _02029D7A add r0, r3, r4 strb r0, [r2, r1] b _02029D7E _02029D7A: mov r0, #0x0 pop {r4-r6, pc} _02029D7E: mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029D84 FUN_02029D84: ; 0x02029D84 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 cmp r4, #0x0 bge _02029DAC mov r0, #0x12 lsl r0, r0, #0x4 add r2, r6, r0 sub r1, r5, #0x1 ldrb r0, [r2, r1] add r0, r4, r0 bmi _02029DA8 strb r0, [r2, r1] b _02029DD0 _02029DA8: mov r0, #0x0 pop {r4-r6, pc} _02029DAC: add r0, r0, r4 cmp r0, #0x63 bgt _02029DCC mov r0, #0x12 lsl r0, r0, #0x4 add r2, r6, r0 sub r1, r5, #0x1 ldrb r0, [r2, r1] add r0, r0, r4 strb r0, [r2, r1] ldrb r0, [r2, r1] cmp r0, #0x63 blo _02029DD0 mov r0, #0x63 strb r0, [r2, r1] b _02029DD0 _02029DCC: mov r0, #0x0 pop {r4-r6, pc} _02029DD0: mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_02029DD4 FUN_02029DD4: ; 0x02029DD4 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 sub r1, r5, #0x1 add r2, r6, r1 mov r1, #0x12 lsl r1, r1, #0x4 ldrb r1, [r2, r1] add r0, r0, r1 cmp r4, #0x0 bge _02029DFE add r0, r4, r1 bmi _02029DFA mov r0, #0x1 pop {r4-r6, pc} _02029DFA: mov r0, #0x0 pop {r4-r6, pc} _02029DFE: add r0, r0, r4 cmp r0, #0x63 bgt _02029E08 mov r0, #0x1 pop {r4-r6, pc} _02029E08: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02029E0C FUN_02029E0C: ; 0x02029E0C push {r4-r6, lr} add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _02029E14: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02029E2C cmp r0, #0x0 beq _02029E22 add r5, r5, #0x1 _02029E22: add r4, r4, #0x1 cmp r4, #0x51 blt _02029E14 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02029E2C FUN_02029E2C: ; 0x02029E2C push {r3-r5, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r4, r0, #0x0 bl FUN_02029D14 sub r1, r5, #0x1 add r2, r4, r1 mov r1, #0x12 lsl r1, r1, #0x4 ldrb r1, [r2, r1] add r0, r0, r1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029E48 FUN_02029E48: ; 0x02029E48 mov r1, #0x0 strh r1, [r0, #0x0] strb r1, [r0, #0x2] strb r1, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_02029E54 FUN_02029E54: ; 0x02029E54 push {r3-r7, lr} add r5, r0, #0x0 ldrh r6, [r5, #0x0] ldr r0, _02029EB8 ; =0x000003E7 cmp r6, r0 bne _02029E6C ldrb r0, [r5, #0x2] cmp r0, #0x3b bne _02029E6C ldrb r0, [r5, #0x3] cmp r0, #0x3b beq _02029EB4 _02029E6C: ldrb r0, [r5, #0x3] ldrb r4, [r5, #0x2] add r7, r0, r1 cmp r7, #0x3b bls _02029EAE add r0, r7, #0x0 mov r1, #0x3c blx _u32_div_f add r4, r4, r0 add r0, r7, #0x0 mov r1, #0x3c blx _u32_div_f add r7, r1, #0x0 cmp r4, #0x3b bls _02029EAE add r0, r4, #0x0 mov r1, #0x3c blx _u32_div_f add r6, r6, r0 add r0, r4, #0x0 mov r1, #0x3c blx _u32_div_f ldr r0, _02029EB8 ; =0x000003E7 add r4, r1, #0x0 cmp r6, r0 blo _02029EAE mov r4, #0x3b add r6, r0, #0x0 add r7, r4, #0x0 _02029EAE: strh r6, [r5, #0x0] strb r4, [r5, #0x2] strb r7, [r5, #0x3] _02029EB4: pop {r3-r7, pc} nop _02029EB8: .word 0x000003E7 thumb_func_start FUN_02029EBC FUN_02029EBC: ; 0x02029EBC ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02029EC0 FUN_02029EC0: ; 0x02029EC0 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02029EC4 FUN_02029EC4: ; 0x02029EC4 mov r0, #0xfb lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02029ECC FUN_02029ECC: ; 0x02029ECC push {r4, lr} add r4, r0, #0x0 mov r2, #0xfb mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClear32 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02029EE4 FUN_02029EE4: ; 0x02029EE4 push {r4, lr} mov r1, #0xfb lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02029ECC add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_02029EF8 FUN_02029EF8: ; 0x02029EF8 ldr r3, _02029F00 ; =FUN_02022610 mov r1, #0x16 bx r3 nop _02029F00: .word FUN_02022610 thumb_func_start FUN_02029F04 FUN_02029F04: ; 0x02029F04 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02029F08 FUN_02029F08: ; 0x02029F08 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02029F10 FUN_02029F10: ; 0x02029F10 add r0, r0, #0x4 bx lr thumb_func_start FUN_02029F14 FUN_02029F14: ; 0x02029F14 push {r4-r7} mov r5, #0x0 mov r2, #0xfa add r4, r5, #0x0 mov r6, #0xf lsl r2, r2, #0x2 _02029F20: ldrsb r7, [r1, r4] add r3, r0, r5 and r7, r6 lsl r7, r7, #0x18 lsr r7, r7, #0x18 sub r7, #0x8 lsl r7, r7, #0x18 asr r7, r7, #0x14 strb r7, [r0, r5] ldrsb r7, [r1, r4] add r4, r4, #0x1 add r5, r5, #0x2 lsl r7, r7, #0x14 lsr r7, r7, #0x18 sub r7, #0x8 lsl r7, r7, #0x18 asr r7, r7, #0x14 strb r7, [r3, #0x1] cmp r4, r2 blt _02029F20 pop {r4-r7} bx lr thumb_func_start FUN_02029F4C FUN_02029F4C: ; 0x02029F4C push {r4-r7} add r3, r0, #0x0 add r2, r1, #0x0 mov r0, #0x1 mov r1, #0x0 str r0, [r3, #0x0] add r0, r1, #0x0 _02029F5A: ldrsb r4, [r2, r0] add r6, r3, r1 add r7, r2, r0 asr r5, r4, #0x3 lsr r5, r5, #0x1c add r5, r4, r5 lsl r4, r5, #0x14 asr r4, r4, #0x18 add r4, #0x8 strb r4, [r6, #0x4] mov r4, #0x4 ldrsb r5, [r6, r4] mov r4, #0x1 ldrsb r4, [r7, r4] add r0, r0, #0x2 add r1, r1, #0x1 asr r7, r4, #0x3 lsr r7, r7, #0x1c add r7, r4, r7 lsl r4, r7, #0x14 asr r4, r4, #0x18 add r4, #0x8 lsl r4, r4, #0x18 lsr r4, r4, #0x14 orr r4, r5 strb r4, [r6, #0x4] mov r4, #0x7d lsl r4, r4, #0x4 cmp r0, r4 blt _02029F5A pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02029F9C FUN_02029F9C: ; 0x02029F9C add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xfb ldr r3, _02029FAC ; =MIi_CpuCopyFast lsl r2, r2, #0x2 bx r3 nop _02029FAC: .word MIi_CpuCopyFast thumb_func_start FUN_02029FB0 FUN_02029FB0: ; 0x02029FB0 mov r0, #0x53 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02029FB8 FUN_02029FB8: ; 0x02029FB8 ldr r3, _02029FC4 ; =MIi_CpuClear32 mov r2, #0x53 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0x2 bx r3 .balign 4 _02029FC4: .word MIi_CpuClear32 thumb_func_start FUN_02029FC8 FUN_02029FC8: ; 0x02029FC8 ldr r3, _02029FD0 ; =FUN_02022610 mov r1, #0x14 bx r3 nop _02029FD0: .word FUN_02022610 thumb_func_start FUN_02029FD4 FUN_02029FD4: ; 0x02029FD4 push {r3, lr} cmp r1, #0x2c bge _02029FE0 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} _02029FE0: cmp r1, #0x79 bge _02029FF0 sub r1, #0x2c lsl r1, r1, #0x1 add r0, r0, r1 add r0, #0xb0 ldrh r0, [r0, #0x0] pop {r3, pc} _02029FF0: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02029FF8 FUN_02029FF8: ; 0x02029FF8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2c bge _0202A008 lsl r0, r4, #0x2 str r2, [r5, r0] b _0202A01E _0202A008: cmp r4, #0x79 bge _0202A01A add r0, r4, #0x0 sub r0, #0x2c lsl r0, r0, #0x1 add r0, r5, r0 add r0, #0xb0 strh r2, [r0, #0x0] b _0202A01E _0202A01A: bl ErrorHandling _0202A01E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FD4 pop {r3-r5, pc} thumb_func_start FUN_0202A028 FUN_0202A028: ; 0x0202A028 push {r3, lr} cmp r0, #0x2c bge _0202A03E ldr r1, _0202A05C ; =0x02105CD8 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202A03A ldr r0, _0202A060 ; =0x3B9AC9FF pop {r3, pc} _0202A03A: ldr r0, _0202A064 ; =0x000F423F pop {r3, pc} _0202A03E: cmp r0, #0x79 bge _0202A052 ldr r1, _0202A05C ; =0x02105CD8 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202A04E ldr r0, _0202A068 ; =0x0000FFFF pop {r3, pc} _0202A04E: ldr r0, _0202A06C ; =0x0000270F pop {r3, pc} _0202A052: bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _0202A05C: .word 0x02105CD8 _0202A060: .word 0x3B9AC9FF _0202A064: .word 0x000F423F _0202A068: .word 0x0000FFFF _0202A06C: .word 0x0000270F thumb_func_start FUN_0202A070 FUN_0202A070: ; 0x0202A070 lsl r1, r0, #0x1 ldr r0, _0202A078 ; =0x020EEA7C ldrh r0, [r0, r1] bx lr .balign 4 _0202A078: .word 0x020EEA7C thumb_func_start FUN_0202A07C FUN_0202A07C: ; 0x0202A07C push {r4-r6, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 add r4, r2, #0x0 bl FUN_0202A028 add r2, r0, #0x0 cmp r4, r2 bhs _0202A09C add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} _0202A09C: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202A0A8 FUN_0202A0A8: ; 0x0202A0A8 push {r3-r7, lr} add r6, r1, #0x0 add r7, r0, #0x0 add r0, r6, #0x0 add r5, r2, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 cmp r5, r4 bls _0202A0C6 add r5, r4, #0x0 _0202A0C6: cmp r0, r5 bhs _0202A0D6 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} _0202A0D6: cmp r0, r4 bls _0202A0E4 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 _0202A0E4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202A0E8 FUN_0202A0E8: ; 0x0202A0E8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 add r2, r0, #0x1 cmp r2, r4 bhs _0202A10E add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} _0202A10E: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202A11C FUN_0202A11C: ; 0x0202A11C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r2, #0x0 bl FUN_0202A028 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FD4 add r2, r0, r7 cmp r2, r6 bhs _0202A144 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} _0202A144: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} thumb_func_start FUN_0202A150 FUN_0202A150: ; 0x0202A150 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 cmp r0, r4 bhi _0202A16C add r4, r0, #0x0 _0202A16C: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0202A170 FUN_0202A170: ; 0x0202A170 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x26 blt _0202A17E bl ErrorHandling _0202A17E: add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A150 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A070 ldr r2, _0202A1B4 ; =0x05F5E0FF add r0, r6, r0 cmp r0, r2 bls _0202A1A0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A07C pop {r4-r6, pc} _0202A1A0: add r0, r4, #0x0 bl FUN_0202A070 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A11C pop {r4-r6, pc} nop _0202A1B4: .word 0x05F5E0FF thumb_func_start FUN_0202A1B8 FUN_0202A1B8: ; 0x0202A1B8 ldr r3, _0202A1C0 ; =FUN_0202A150 mov r1, #0x0 bx r3 nop _0202A1C0: .word FUN_0202A150 thumb_func_start FUN_0202A1C4 FUN_0202A1C4: ; 0x0202A1C4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_02024594 cmp r0, #0x0 bne _0202A1DC add r0, r4, #0x0 mov r1, #0x16 bl FUN_0202A170 _0202A1DC: pop {r4, pc} .balign 4 thumb_func_start FUN_0202A1E0 FUN_0202A1E0: ; 0x0202A1E0 mov r0, #0xe4 bx lr thumb_func_start FUN_0202A1E4 FUN_0202A1E4: ; 0x0202A1E4 ldr r3, _0202A1EC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x3c bx r3 .balign 4 _0202A1EC: .word MI_CpuFill8 thumb_func_start FUN_0202A1F0 FUN_0202A1F0: ; 0x0202A1F0 push {r4, lr} mov r2, #0x5a mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x1 strb r0, [r4, #0x3] pop {r4, pc} thumb_func_start FUN_0202A204 FUN_0202A204: ; 0x0202A204 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 bl FUN_02013764 add r0, r4, #0x0 add r0, #0x8 mov r1, #0x1 bl FUN_02013764 add r0, r4, #0x0 add r0, #0x10 mov r1, #0x2 bl FUN_02013764 add r4, #0x18 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02013764 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A230 FUN_0202A230: ; 0x0202A230 ldr r3, _0202A238 ; =MI_CpuFill8 mov r1, #0x0 ldr r2, _0202A23C ; =0x00000B3C bx r3 .balign 4 _0202A238: .word MI_CpuFill8 _0202A23C: .word 0x00000B3C thumb_func_start FUN_0202A240 FUN_0202A240: ; 0x0202A240 push {r3, lr} cmp r1, #0xa bhi _0202A2BE add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202A252: ; jump table (using 16-bit offset) .short _0202A268 - _0202A252 - 2; case 0 .short _0202A270 - _0202A252 - 2; case 1 .short _0202A274 - _0202A252 - 2; case 2 .short _0202A278 - _0202A252 - 2; case 3 .short _0202A27C - _0202A252 - 2; case 4 .short _0202A280 - _0202A252 - 2; case 5 .short _0202A28E - _0202A252 - 2; case 6 .short _0202A29C - _0202A252 - 2; case 7 .short _0202A2A4 - _0202A252 - 2; case 8 .short _0202A2B2 - _0202A252 - 2; case 9 .short _0202A2BA - _0202A252 - 2; case 10 _0202A268: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1d pop {r3, pc} _0202A270: ldrb r0, [r0, #0x2] pop {r3, pc} _0202A274: ldrb r0, [r0, #0x3] pop {r3, pc} _0202A278: ldrh r0, [r0, #0x4] pop {r3, pc} _0202A27C: ldrh r0, [r0, #0x6] pop {r3, pc} _0202A280: add r1, r2, #0x0 add r0, #0x8 mov r2, #0x4 blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A28E: add r1, r2, #0x0 add r0, #0x2c mov r2, #0x10 blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A29C: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f pop {r3, pc} _0202A2A4: add r1, r2, #0x0 add r0, #0xc mov r2, #0x1c blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A2B2: ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1d pop {r3, pc} _0202A2BA: ldr r0, [r0, #0x28] pop {r3, pc} _0202A2BE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A2C4 FUN_0202A2C4: ; 0x0202A2C4 push {r4, lr} add r3, r0, #0x0 cmp r1, #0xa bhi _0202A36A add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202A2D8: ; jump table (using 16-bit offset) .short _0202A2EE - _0202A2D8 - 2; case 0 .short _0202A300 - _0202A2D8 - 2; case 1 .short _0202A306 - _0202A2D8 - 2; case 2 .short _0202A30C - _0202A2D8 - 2; case 3 .short _0202A312 - _0202A2D8 - 2; case 4 .short _0202A318 - _0202A2D8 - 2; case 5 .short _0202A326 - _0202A2D8 - 2; case 6 .short _0202A334 - _0202A2D8 - 2; case 7 .short _0202A346 - _0202A2D8 - 2; case 8 .short _0202A35A - _0202A2D8 - 2; case 9 .short _0202A354 - _0202A2D8 - 2; case 10 _0202A2EE: ldrb r1, [r3, #0x0] mov r0, #0x1c bic r1, r0 ldrb r0, [r2, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1b orr r0, r1 strb r0, [r3, #0x0] pop {r4, pc} _0202A300: ldrb r0, [r2, #0x0] strb r0, [r3, #0x2] pop {r4, pc} _0202A306: ldrb r0, [r2, #0x0] strb r0, [r3, #0x3] pop {r4, pc} _0202A30C: ldrh r0, [r2, #0x0] strh r0, [r3, #0x4] pop {r4, pc} _0202A312: ldrh r0, [r2, #0x0] strh r0, [r3, #0x6] pop {r4, pc} _0202A318: add r3, #0x8 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x4 blx MI_CpuCopy8 pop {r4, pc} _0202A326: add r3, #0x2c add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x10 blx MI_CpuCopy8 pop {r4, pc} _0202A334: ldrb r4, [r3, #0x0] ldrb r1, [r2, #0x0] mov r0, #0x1 bic r4, r0 mov r0, #0x1 and r0, r1 orr r0, r4 strb r0, [r3, #0x0] pop {r4, pc} _0202A346: add r3, #0xc add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x1c blx MI_CpuCopy8 pop {r4, pc} _0202A354: ldr r0, [r2, #0x0] str r0, [r3, #0x28] pop {r4, pc} _0202A35A: ldrb r1, [r3, #0x0] mov r0, #0xe0 bic r1, r0 ldrb r0, [r2, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x18 orr r0, r1 strb r0, [r3, #0x0] _0202A36A: pop {r4, pc} thumb_func_start FUN_0202A36C FUN_0202A36C: ; 0x0202A36C push {r3-r4} ldrb r4, [r0, #0x3] add r1, r4, r1 cmp r1, #0xff bge _0202A378 strb r1, [r0, #0x3] _0202A378: ldrh r1, [r0, #0x4] add r2, r1, r2 ldr r1, _0202A394 ; =0x0000FFFF cmp r2, r1 bge _0202A384 strh r2, [r0, #0x4] _0202A384: ldrh r1, [r0, #0x6] add r2, r1, r3 ldr r1, _0202A394 ; =0x0000FFFF cmp r2, r1 bge _0202A390 strh r2, [r0, #0x6] _0202A390: pop {r3-r4} bx lr .balign 4 _0202A394: .word 0x0000FFFF thumb_func_start FUN_0202A398 FUN_0202A398: ; 0x0202A398 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr thumb_func_start FUN_0202A3A0 FUN_0202A3A0: ; 0x0202A3A0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f ldrb r3, [r0, #0x0] mov r2, #0x2 lsr r1, r1, #0x1e bic r3, r2 orr r1, r3 strb r1, [r0, #0x0] bx lr thumb_func_start FUN_0202A3B4 FUN_0202A3B4: ; 0x0202A3B4 cmp r2, #0x6 bhi _0202A402 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0202A3C4: ; jump table (using 16-bit offset) .short _0202A402 - _0202A3C4 - 2; case 0 .short _0202A3D2 - _0202A3C4 - 2; case 1 .short _0202A402 - _0202A3C4 - 2; case 2 .short _0202A402 - _0202A3C4 - 2; case 3 .short _0202A402 - _0202A3C4 - 2; case 4 .short _0202A3E0 - _0202A3C4 - 2; case 5 .short _0202A3F2 - _0202A3C4 - 2; case 6 _0202A3D2: ldr r2, _0202A408 ; =0x0000270F cmp r1, r2 bls _0202A3DC strh r2, [r0, #0x0] b _0202A402 _0202A3DC: strh r1, [r0, #0x0] b _0202A402 _0202A3E0: ldrh r2, [r0, #0x0] add r2, r2, r1 ldr r1, _0202A408 ; =0x0000270F cmp r2, r1 ble _0202A3EE strh r1, [r0, #0x0] b _0202A402 _0202A3EE: strh r2, [r0, #0x0] b _0202A402 _0202A3F2: ldrh r2, [r0, #0x0] cmp r2, r1 bhs _0202A3FE mov r1, #0x0 strh r1, [r0, #0x0] b _0202A402 _0202A3FE: sub r1, r2, r1 strh r1, [r0, #0x0] _0202A402: ldrh r0, [r0, #0x0] bx lr nop _0202A408: .word 0x0000270F thumb_func_start FUN_0202A40C FUN_0202A40C: ; 0x0202A40C cmp r1, #0x2 beq _0202A416 cmp r1, #0x3 beq _0202A424 b _0202A440 _0202A416: mov r1, #0x0 strb r1, [r0, #0x2] ldrh r2, [r0, #0x8] mov r1, #0x10 bic r2, r1 strh r2, [r0, #0x8] b _0202A440 _0202A424: ldrh r1, [r0, #0x8] lsl r1, r1, #0x1b lsr r1, r1, #0x1f beq _0202A434 ldrb r1, [r0, #0x2] add r1, r1, #0x1 strb r1, [r0, #0x2] b _0202A440 _0202A434: mov r1, #0x1 strb r1, [r0, #0x2] ldrh r2, [r0, #0x8] mov r1, #0x10 orr r1, r2 strh r1, [r0, #0x8] _0202A440: ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_0202A444 FUN_0202A444: ; 0x0202A444 cmp r1, #0x2 beq _0202A452 cmp r1, #0x3 beq _0202A458 cmp r1, #0x4 beq _0202A464 b _0202A46E _0202A452: mov r1, #0x1 strb r1, [r0, #0x3] b _0202A46E _0202A458: ldrb r1, [r0, #0x3] cmp r1, #0xa bhs _0202A46E add r1, r1, #0x1 strb r1, [r0, #0x3] b _0202A46E _0202A464: ldrb r1, [r0, #0x3] cmp r1, #0x1 bls _0202A46E sub r1, r1, #0x1 strb r1, [r0, #0x3] _0202A46E: ldrb r0, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_0202A474 FUN_0202A474: ; 0x0202A474 push {r3, lr} add r3, r0, #0x0 cmp r1, #0x0 bne _0202A48A add r3, #0xc0 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} _0202A48A: add r3, #0x18 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} thumb_func_start FUN_0202A498 FUN_0202A498: ; 0x0202A498 push {r3, lr} cmp r1, #0x0 bne _0202A4AA add r1, r2, #0x0 add r0, #0xc0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} _0202A4AA: add r1, r2, #0x0 add r0, #0x18 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A4B8 FUN_0202A4B8: ; 0x0202A4B8 push {r4-r6, lr} add r6, r0, #0x0 ldrb r0, [r1, #0x2] mov r2, #0xfa lsl r2, r2, #0x2 sub r0, r0, #0x1 add r3, r0, #0x0 mul r3, r2 lsl r0, r3, #0x10 lsr r4, r0, #0x10 ldrh r3, [r1, #0x4] mov r0, #0xa ldrb r5, [r1, #0x3] mul r0, r3 mov r3, #0x14 mul r3, r5 lsl r0, r0, #0x10 lsl r3, r3, #0x10 lsr r0, r0, #0x10 lsr r3, r3, #0x10 add r3, r0, r3 add r0, r2, #0x0 sub r0, #0x32 cmp r3, r0 ble _0202A4EE mov r5, #0x0 b _0202A4F6 _0202A4EE: sub r2, #0x32 sub r0, r2, r3 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _0202A4F6: ldrh r1, [r1, #0x6] ldr r0, _0202A51C ; =0x000003CA cmp r1, r0 bls _0202A502 mov r1, #0x0 b _0202A510 _0202A502: add r0, #0x1e sub r0, r0, r1 mov r1, #0x1e blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0202A510: add r0, r4, r5 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 strh r0, [r6, #0x16] pop {r4-r6, pc} .balign 4 _0202A51C: .word 0x000003CA thumb_func_start FUN_0202A520 FUN_0202A520: ; 0x0202A520 ldrh r0, [r0, #0x16] bx lr thumb_func_start FUN_0202A524 FUN_0202A524: ; 0x0202A524 push {r3, lr} ldrh r0, [r0, #0x16] mov r1, #0xfa lsl r1, r1, #0x2 blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A538 FUN_0202A538: ; 0x0202A538 push {r4-r5} cmp r1, #0x5 bne _0202A544 mov r0, #0x0 pop {r4-r5} bx lr _0202A544: cmp r2, #0x2 beq _0202A54E cmp r2, #0x3 beq _0202A558 b _0202A56A _0202A54E: lsl r2, r1, #0x1 mov r3, #0x0 add r2, r0, r2 strh r3, [r2, #0xc] b _0202A56A _0202A558: add r5, r0, #0x0 add r5, #0xc lsl r4, r1, #0x1 ldrh r3, [r5, r4] ldr r2, _0202A574 ; =0x0000FFFE cmp r3, r2 bhs _0202A56A add r2, r3, #0x1 strh r2, [r5, r4] _0202A56A: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0xc] pop {r4-r5} bx lr .balign 4 _0202A574: .word 0x0000FFFE thumb_func_start FUN_0202A578 FUN_0202A578: ; 0x0202A578 push {r3-r4} mov r3, #0x1 mov r4, #0x0 cmp r1, #0x0 bls _0202A590 _0202A582: add r4, r4, #0x1 lsl r4, r4, #0x10 lsl r3, r3, #0x11 lsr r4, r4, #0x10 lsr r3, r3, #0x10 cmp r4, r1 blo _0202A582 _0202A590: cmp r2, #0x0 beq _0202A5B4 cmp r2, #0x1 beq _0202A5AC cmp r2, #0x2 bne _0202A5C2 ldr r1, _0202A5C8 ; =0x0000FFFF eor r1, r3 lsl r1, r1, #0x10 lsr r2, r1, #0x10 ldrh r1, [r0, #0x8] and r1, r2 strh r1, [r0, #0x8] b _0202A5C2 _0202A5AC: ldrh r1, [r0, #0x8] orr r1, r3 strh r1, [r0, #0x8] b _0202A5C2 _0202A5B4: ldrh r0, [r0, #0x8] add r2, r0, #0x0 asr r2, r1 mov r0, #0x1 and r0, r2 pop {r3-r4} bx lr _0202A5C2: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 _0202A5C8: .word 0x0000FFFF thumb_func_start FUN_0202A5CC FUN_0202A5CC: ; 0x0202A5CC str r1, [r0, #0x4] bx lr thumb_func_start FUN_0202A5D0 FUN_0202A5D0: ; 0x0202A5D0 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0202A5D4 FUN_0202A5D4: ; 0x0202A5D4 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x17 add r4, r2, #0x0 bl FUN_02022610 mov r1, #0x69 lsl r1, r1, #0x2 add r1, r0, r1 lsl r0, r5, #0x3 add r0, r1, r0 add r1, r4, #0x0 bl FUN_02013960 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202A5F4 FUN_0202A5F4: ; 0x0202A5F4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x17 bl FUN_02022610 mov r1, #0x69 lsl r1, r1, #0x2 add r1, r0, r1 lsl r0, r4, #0x3 add r0, r1, r0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A60C FUN_0202A60C: ; 0x0202A60C push {r3-r6} add r4, r3, #0x0 mov r3, #0x1 cmp r2, #0x0 beq _0202A66C cmp r2, #0xc8 bhi _0202A66C cmp r1, #0x0 beq _0202A66C cmp r1, #0xa bhi _0202A66C sub r5, r2, #0x1 sub r2, r1, #0x1 mov r1, #0xc8 mul r1, r2 add r1, r5, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsr r6, r1, #0x1f lsl r5, r1, #0x1d sub r5, r5, r6 mov r2, #0x1d ror r5, r2 add r2, r6, r5 lsl r2, r2, #0x18 lsr r2, r2, #0x18 lsl r3, r2 lsl r2, r3, #0x18 lsl r1, r1, #0x15 lsr r5, r2, #0x18 add r3, r0, #0x4 lsr r2, r1, #0x18 ldrb r1, [r3, r2] orr r1, r5 strb r1, [r3, r2] ldr r3, [r4, #0x0] ldr r1, [r4, #0x8] lsl r5, r3, #0x18 ldr r3, [r4, #0x4] lsl r1, r1, #0x18 lsl r3, r3, #0x18 lsr r3, r3, #0x8 ldr r2, [r4, #0xc] lsr r1, r1, #0x10 orr r3, r5 orr r1, r3 orr r1, r2 str r1, [r0, #0x0] _0202A66C: pop {r3-r6} bx lr thumb_func_start FUN_0202A670 FUN_0202A670: ; 0x0202A670 push {r4, lr} add r4, r0, #0x0 add r0, r4, #0x4 mov r1, #0x0 mov r2, #0xfa blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A68C FUN_0202A68C: ; 0x0202A68C ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] cmp r3, r2 bls _0202A698 mov r0, #0x1 bx lr _0202A698: ldr r3, [r0, #0x4] ldr r2, [r1, #0x4] cmp r3, r2 bls _0202A6A4 mov r0, #0x1 bx lr _0202A6A4: ldr r2, [r0, #0x8] ldr r0, [r1, #0x8] cmp r2, r0 bls _0202A6B0 mov r0, #0x1 bx lr _0202A6B0: mov r0, #0x0 bx lr thumb_func_start FUN_0202A6B4 FUN_0202A6B4: ; 0x0202A6B4 push {r3-r7, lr} sub sp, #0x10 add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 mov r7, #0x1 cmp r6, #0xc8 bhi _0202A6C8 cmp r4, #0xa bls _0202A6CE _0202A6C8: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202A6CE: ldr r0, [r5, #0x0] lsr r1, r0, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] lsr r1, r0, #0x10 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x4] lsr r1, r0, #0x8 lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x8] str r0, [sp, #0xc] add r0, r3, #0x0 add r1, sp, #0x0 bl FUN_0202A68C cmp r0, #0x0 beq _0202A706 add r0, r5, #0x0 bl FUN_0202A670 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202A706: sub r1, r4, #0x1 mov r0, #0xc8 mul r0, r1 sub r2, r6, #0x1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsr r3, r0, #0x1f lsl r2, r0, #0x1d lsl r0, r0, #0x15 lsr r0, r0, #0x18 add r0, r5, r0 sub r2, r2, r3 mov r1, #0x1d ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r7, #0x0 lsl r2, r1 lsl r1, r2, #0x18 ldrb r0, [r0, #0x4] lsr r1, r1, #0x18 tst r0, r1 beq _0202A73E add sp, #0x10 add r0, r7, #0x0 pop {r3-r7, pc} _0202A73E: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0202A744 FUN_0202A744: ; 0x0202A744 add r0, #0xfe ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202A74C FUN_0202A74C: ; 0x0202A74C add r0, #0xff ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202A754 FUN_0202A754: ; 0x0202A754 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x41 add r4, r2, #0x0 lsl r1, r1, #0x2 ldr r2, _0202A77C ; =0x0000063C add r1, r5, r1 add r6, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202A780 ; =0x00000101 strb r4, [r5, r0] sub r0, r0, #0x1 strb r6, [r5, r0] mov r0, #0x1 add r5, #0xfe strb r0, [r5, #0x0] pop {r4-r6, pc} nop _0202A77C: .word 0x0000063C _0202A780: .word 0x00000101 thumb_func_start FUN_0202A784 FUN_0202A784: ; 0x0202A784 ldr r2, _0202A794 ; =0x00000101 ldrb r3, [r0, r2] sub r2, r2, #0x1 strb r3, [r1, #0x0] ldrb r0, [r0, r2] strb r0, [r1, #0x1] bx lr nop _0202A794: .word 0x00000101 thumb_func_start FUN_0202A798 FUN_0202A798: ; 0x0202A798 push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x41 lsl r1, r1, #0x2 add r5, r0, r1 mov r0, #0xe4 add r4, r2, #0x0 mul r4, r0 ldr r0, _0202A834 ; =0x00002710 add r7, r6, #0x0 str r0, [r6, #0x0] add r0, r5, r4 add r0, #0xc9 ldrb r0, [r0, #0x0] add r7, #0x30 strh r0, [r6, #0x4] add r0, r5, r4 add r0, #0xc8 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0202A7EE mov r0, #0x0 mov r1, #0x1a mov r2, #0x11 mov r3, #0xb bl FUN_0200A86C add r1, r5, r4 add r1, #0xc8 ldrb r1, [r1, #0x0] add r2, r6, #0x0 str r0, [sp, #0x0] lsl r1, r1, #0x1e lsr r1, r1, #0x1f add r1, #0x16 add r2, #0x8 bl FUN_0200A968 ldr r0, [sp, #0x0] bl FUN_0200A8B8 b _0202A7FC _0202A7EE: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xa8 add r1, #0x8 mov r2, #0x10 blx MI_CpuCopy8 _0202A7FC: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xca add r1, #0x18 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r1, r6, #0x0 add r0, #0xd2 add r1, #0x20 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r6, #0x28 add r0, #0xda add r1, r6, #0x0 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r1, r7, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3-r7, pc} nop _0202A834: .word 0x00002710 thumb_func_start FUN_0202A838 FUN_0202A838: ; 0x0202A838 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x1d add r4, r2, #0x0 lsl r1, r1, #0x6 mov r2, #0xff add r1, r5, r1 lsl r2, r2, #0x2 add r6, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202A860 ; =0x00000103 strb r4, [r5, r0] sub r0, r0, #0x1 strb r6, [r5, r0] mov r0, #0x1 add r5, #0xff strb r0, [r5, #0x0] pop {r4-r6, pc} .balign 4 _0202A860: .word 0x00000103 thumb_func_start FUN_0202A864 FUN_0202A864: ; 0x0202A864 ldr r2, _0202A874 ; =0x00000103 ldrb r3, [r0, r2] sub r2, r2, #0x1 strb r3, [r1, #0x0] ldrb r0, [r0, r2] strb r0, [r1, #0x1] bx lr nop _0202A874: .word 0x00000103 thumb_func_start FUN_0202A878 FUN_0202A878: ; 0x0202A878 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0xff lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x6 mov r2, #0xff add r0, r5, r0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MI_CpuCopy8 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202A89C FUN_0202A89C: ; 0x0202A89C mov r0, #0xd lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_0202A8A4 FUN_0202A8A4: ; 0x0202A8A4 push {r4, lr} add r4, r0, #0x0 bl FUN_0202A1E4 add r0, r4, #0x0 add r0, #0x3c bl FUN_0202A1F0 mov r0, #0x69 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0202A204 mov r0, #0x71 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0202A230 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A8CC FUN_0202A8CC: ; 0x0202A8CC ldr r3, _0202A8D4 ; =FUN_02022610 mov r1, #0x17 bx r3 nop _0202A8D4: .word FUN_02022610 thumb_func_start FUN_0202A8D8 FUN_0202A8D8: ; 0x0202A8D8 push {r3, lr} mov r1, #0x17 bl FUN_02022610 add r0, #0x3c pop {r3, pc} thumb_func_start FUN_0202A8E4 FUN_0202A8E4: ; 0x0202A8E4 push {r3, lr} mov r1, #0x17 bl FUN_02022610 mov r1, #0x71 lsl r1, r1, #0x2 add r0, r0, r1 pop {r3, pc} thumb_func_start FUN_0202A8F4 FUN_0202A8F4: ; 0x0202A8F4 mov r0, #0xe bx lr thumb_func_start FUN_0202A8F8 FUN_0202A8F8: ; 0x0202A8F8 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] strb r1, [r0, #0xc] strb r1, [r0, #0xd] bx lr thumb_func_start FUN_0202A918 FUN_0202A918: ; 0x0202A918 ldr r3, _0202A920 ; =FUN_02022610 mov r1, #0x18 bx r3 nop _0202A920: .word FUN_02022610 thumb_func_start FUN_0202A924 FUN_0202A924: ; 0x0202A924 mov r0, #0x45 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0202A92C FUN_0202A92C: ; 0x0202A92C push {r4, lr} mov r2, #0x45 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 blx Call_FillMemWithValue bl FUN_0201BA60 str r0, [r4, #0x0] bl FUN_0201BA60 str r0, [r4, #0x4] mov r1, #0x0 add r3, r4, #0x0 ldr r0, _0202A980 ; =0x0000FFFF str r1, [r4, #0x8] strh r0, [r4, #0xc] strh r0, [r4, #0xe] mov r0, #0x15 add r3, #0x10 strb r0, [r4, #0x10] add r2, r1, #0x0 _0202A95A: str r2, [r3, #0x4] strb r2, [r3, #0x8] strb r2, [r3, #0x9] strb r2, [r3, #0xa] strb r2, [r3, #0xb] add r1, r1, #0x1 add r3, #0x8 cmp r1, #0x15 blt _0202A95A ldr r0, _0202A984 ; =0x0000010F strb r2, [r4, r0] add r1, r0, #0x1 strb r2, [r4, r1] add r1, r0, #0x2 strb r2, [r4, r1] add r0, r0, #0x3 strb r2, [r4, r0] pop {r4, pc} nop _0202A980: .word 0x0000FFFF _0202A984: .word 0x0000010F thumb_func_start FUN_0202A988 FUN_0202A988: ; 0x0202A988 str r1, [r0, #0x0] str r1, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_0202A990 FUN_0202A990: ; 0x0202A990 push {r3, lr} cmp r1, #0x1 beq _0202A99C cmp r1, #0x2 beq _0202A9A0 b _0202A9A4 _0202A99C: ldr r0, [r0, #0x0] pop {r3, pc} _0202A9A0: ldr r0, [r0, #0x4] pop {r3, pc} _0202A9A4: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0202A9AC FUN_0202A9AC: ; 0x0202A9AC add r0, #0xbc bx lr thumb_func_start FUN_0202A9B0 FUN_0202A9B0: ; 0x0202A9B0 ldr r3, _0202A9B8 ; =FUN_02022610 mov r1, #0x19 bx r3 nop _0202A9B8: .word FUN_02022610 thumb_func_start FUN_0202A9BC FUN_0202A9BC: ; 0x0202A9BC add r0, #0x10 bx lr thumb_func_start FUN_0202A9C0 FUN_0202A9C0: ; 0x0202A9C0 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_0202A9C4 FUN_0202A9C4: ; 0x0202A9C4 strb r0, [r1, #0x0] bx lr thumb_func_start FUN_0202A9C8 FUN_0202A9C8: ; 0x0202A9C8 add r1, r1, #0x4 lsl r0, r0, #0x3 add r0, r1, r0 bx lr thumb_func_start FUN_0202A9D0 FUN_0202A9D0: ; 0x0202A9D0 push {r3-r7, lr} add r5, r1, #0x0 bl FUN_0202A9B0 add r6, r0, #0x0 mov r4, #0x0 add r6, #0x10 add r7, r4, #0x0 _0202A9E0: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r6, #0x0 bl FUN_0202A9C8 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202A9F8 sub r1, r1, r5 str r1, [r0, #0x0] bpl _0202A9F8 str r7, [r0, #0x0] _0202A9F8: add r4, r4, #0x1 cmp r4, #0x15 blt _0202A9E0 pop {r3-r7, pc} thumb_func_start FUN_0202AA00 FUN_0202AA00: ; 0x0202AA00 push {r3, lr} bl FUN_0202A9B0 ldr r1, _0202AA10 ; =0x0000010F mov r2, #0x1 strb r2, [r0, r1] pop {r3, pc} nop _0202AA10: .word 0x0000010F thumb_func_start FUN_0202AA14 FUN_0202AA14: ; 0x0202AA14 ldr r1, _0202AA1C ; =0x0000010F ldrb r0, [r0, r1] bx lr nop _0202AA1C: .word 0x0000010F thumb_func_start FUN_0202AA20 FUN_0202AA20: ; 0x0202AA20 add r2, r0, #0x0 add r2, #0xc8 ldr r3, [r2, #0x0] cmp r3, r1 beq _0202AA34 add r2, r0, #0x0 add r2, #0xcc str r3, [r2, #0x0] add r0, #0xc8 str r1, [r0, #0x0] _0202AA34: bx lr .balign 4 thumb_func_start FUN_0202AA38 FUN_0202AA38: ; 0x0202AA38 add r0, #0xcc ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AA40 FUN_0202AA40: ; 0x0202AA40 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA4E bl ErrorHandling _0202AA4E: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_0202AA58 FUN_0202AA58: ; 0x0202AA58 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x3 blo _0202AA68 bl ErrorHandling _0202AA68: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 strb r6, [r1, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202AA74 FUN_0202AA74: ; 0x0202AA74 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA82 bl ErrorHandling _0202AA82: mov r0, #0x14 mul r0, r4 add r0, r5, r0 add r0, #0xe2 ldrb r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202AA90 FUN_0202AA90: ; 0x0202AA90 ldr r2, [r0, #0x0] mov r1, #0x14 mov r0, #0x0 _0202AA96: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202AA96 bx lr thumb_func_start FUN_0202AAA0 FUN_0202AAA0: ; 0x0202AAA0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AAAE bl ErrorHandling _0202AAAE: mov r0, #0x14 add r5, #0xd0 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} thumb_func_start FUN_0202AAB8 FUN_0202AAB8: ; 0x0202AAB8 cmp r1, #0x8 bhi _0202AAF8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202AAC8: ; jump table (using 16-bit offset) .short _0202AAF8 - _0202AAC8 - 2; case 0 .short _0202AADA - _0202AAC8 - 2; case 1 .short _0202AADE - _0202AAC8 - 2; case 2 .short _0202AAE2 - _0202AAC8 - 2; case 3 .short _0202AAE6 - _0202AAC8 - 2; case 4 .short _0202AAEA - _0202AAC8 - 2; case 5 .short _0202AAEE - _0202AAC8 - 2; case 6 .short _0202AAF2 - _0202AAC8 - 2; case 7 .short _0202AAF6 - _0202AAC8 - 2; case 8 _0202AADA: ldr r0, [r0, #0x0] bx lr _0202AADE: ldr r0, [r0, #0x4] bx lr _0202AAE2: ldr r0, [r0, #0x8] bx lr _0202AAE6: ldrh r0, [r0, #0xc] bx lr _0202AAEA: ldrh r0, [r0, #0xe] bx lr _0202AAEE: ldrb r0, [r0, #0x10] bx lr _0202AAF2: ldrb r0, [r0, #0x11] bx lr _0202AAF6: ldrb r0, [r0, #0x12] _0202AAF8: bx lr .balign 4 thumb_func_start FUN_0202AAFC FUN_0202AAFC: ; 0x0202AAFC cmp r1, #0x8 bhi _0202AB3C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202AB0C: ; jump table (using 16-bit offset) .short _0202AB3C - _0202AB0C - 2; case 0 .short _0202AB1E - _0202AB0C - 2; case 1 .short _0202AB22 - _0202AB0C - 2; case 2 .short _0202AB26 - _0202AB0C - 2; case 3 .short _0202AB2A - _0202AB0C - 2; case 4 .short _0202AB2E - _0202AB0C - 2; case 5 .short _0202AB32 - _0202AB0C - 2; case 6 .short _0202AB36 - _0202AB0C - 2; case 7 .short _0202AB3A - _0202AB0C - 2; case 8 _0202AB1E: str r2, [r0, #0x0] bx lr _0202AB22: str r2, [r0, #0x4] bx lr _0202AB26: str r2, [r0, #0x8] bx lr _0202AB2A: strh r2, [r0, #0xc] bx lr _0202AB2E: strh r2, [r0, #0xe] bx lr _0202AB32: strb r2, [r0, #0x10] bx lr _0202AB36: strb r2, [r0, #0x11] bx lr _0202AB3A: strb r2, [r0, #0x12] _0202AB3C: bx lr .balign 4 thumb_func_start FUN_0202AB40 FUN_0202AB40: ; 0x0202AB40 ldr r1, _0202AB48 ; =0x00000111 add r0, r0, r1 bx lr nop _0202AB48: .word 0x00000111 thumb_func_start FUN_0202AB4C FUN_0202AB4C: ; 0x0202AB4C mov r1, #0x11 lsl r1, r1, #0x4 add r0, r0, r1 bx lr thumb_func_start FUN_0202AB54 FUN_0202AB54: ; 0x0202AB54 mov r1, #0x11 lsl r1, r1, #0x4 ldrb r0, [r0, r1] cmp r0, #0x0 bne _0202AB62 mov r0, #0x1 bx lr _0202AB62: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202AB68 FUN_0202AB68: ; 0x0202AB68 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2 bls _0202AB76 bl ErrorHandling _0202AB76: ldr r0, _0202AB7C ; =0x00000112 strb r4, [r5, r0] pop {r3-r5, pc} .balign 4 _0202AB7C: .word 0x00000112 thumb_func_start FUN_0202AB80 FUN_0202AB80: ; 0x0202AB80 ldr r1, _0202AB88 ; =0x00000112 ldrb r0, [r0, r1] bx lr nop _0202AB88: .word 0x00000112 thumb_func_start FUN_0202AB8C FUN_0202AB8C: ; 0x0202AB8C push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202A9B0 ldrh r1, [r0, #0xc] strh r1, [r5, #0x0] ldrh r0, [r0, #0xe] strh r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202ABA0 FUN_0202ABA0: ; 0x0202ABA0 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_0202A9B0 add r4, r0, #0x0 cmp r5, #0x10 blo _0202ABB2 bl ErrorHandling _0202ABB2: ldrh r0, [r4, #0xc] strh r0, [r4, #0xe] strh r5, [r4, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202ABBC FUN_0202ABBC: ; 0x0202ABBC ldr r3, _0202ABC4 ; =FUN_02022610 mov r1, #0x1a bx r3 nop _0202ABC4: .word FUN_02022610 thumb_func_start FUN_0202ABC8 FUN_0202ABC8: ; 0x0202ABC8 mov r0, #0xf4 bx lr thumb_func_start FUN_0202ABCC FUN_0202ABCC: ; 0x0202ABCC ldr r3, _0202ABD8 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 mov r2, #0xf4 bx r3 nop _0202ABD8: .word MIi_CpuClearFast thumb_func_start FUN_0202ABDC FUN_0202ABDC: ; 0x0202ABDC add r0, #0xec ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202ABE4 FUN_0202ABE4: ; 0x0202ABE4 add r0, #0xec strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202ABEC FUN_0202ABEC: ; 0x0202ABEC ldr r3, _0202ABF4 ; =MIi_CpuCopyFast mov r2, #0xec bx r3 nop _0202ABF4: .word MIi_CpuCopyFast thumb_func_start FUN_0202ABF8 FUN_0202ABF8: ; 0x0202ABF8 ldr r3, _0202AC04 ; =MIi_CpuCopyFast add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xec bx r3 .balign 4 _0202AC04: .word MIi_CpuCopyFast thumb_func_start FUN_0202AC08 FUN_0202AC08: ; 0x0202AC08 add r0, #0xf0 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC10 FUN_0202AC10: ; 0x0202AC10 add r0, #0xf0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC18 FUN_0202AC18: ; 0x0202AC18 add r0, #0xee ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC20 FUN_0202AC20: ; 0x0202AC20 ldr r0, _0202AC24 ; =0x00001354 bx lr .balign 4 _0202AC24: .word 0x00001354 thumb_func_start FUN_0202AC28 FUN_0202AC28: ; 0x0202AC28 bx lr .balign 4 thumb_func_start FUN_0202AC2C FUN_0202AC2C: ; 0x0202AC2C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blt _0202AC3A bl ErrorHandling _0202AC3A: mov r0, #0x1 lsl r0, r0, #0x8 add r6, r5, r0 lsl r3, r4, #0x2 ldr r2, [r6, r3] ldr r1, _0202AC60 ; =0xEDB88320 cmp r2, r1 bne _0202AC58 add r0, #0x2c add r1, r5, r0 lsl r0, r4, #0x6 add r0, r4, r0 lsl r0, r0, #0x2 add r0, r1, r0 pop {r4-r6, pc} _0202AC58: mov r0, #0x0 str r0, [r6, r3] pop {r4-r6, pc} nop _0202AC60: .word 0xEDB88320 thumb_func_start FUN_0202AC64 FUN_0202AC64: ; 0x0202AC64 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blt _0202AC72 bl ErrorHandling _0202AC72: lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0202AC8E ldr r0, _0202AC94 ; =0x0000094C add r1, r5, r0 mov r0, #0xd6 lsl r0, r0, #0x2 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} _0202AC8E: mov r0, #0x0 pop {r3-r5, pc} nop _0202AC94: .word 0x0000094C thumb_func_start FUN_0202AC98 FUN_0202AC98: ; 0x0202AC98 push {r3-r7, lr} add r5, r0, #0x0 str r1, [sp, #0x0] add r7, r2, #0x0 bl FUN_0202ADF0 cmp r0, #0x0 bne _0202ACAC mov r0, #0x0 pop {r3-r7, pc} _0202ACAC: mov r0, #0x1 mov r4, #0x0 add r2, r5, #0x0 lsl r0, r0, #0x8 _0202ACB4: ldr r1, [r2, r0] cmp r1, #0x0 bne _0202ACF6 lsl r0, r4, #0x6 mov r2, #0x4b add r0, r4, r0 lsl r2, r2, #0x2 lsl r6, r0, #0x2 add r1, r5, r2 ldr r0, [sp, #0x0] add r1, r1, r6 sub r2, #0x28 blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 ldr r2, _0202AD04 ; =0xEDB88320 lsl r0, r0, #0x8 str r2, [r1, r0] add r0, #0x2e add r1, r5, r0 ldrh r0, [r1, r6] mov r2, #0x3 bic r0, r2 lsl r2, r7, #0x10 lsr r3, r2, #0x10 mov r2, #0x3 and r2, r3 orr r0, r2 strh r0, [r1, r6] mov r0, #0x1 pop {r3-r7, pc} _0202ACF6: add r4, r4, #0x1 add r2, r2, #0x4 cmp r4, #0x8 blt _0202ACB4 mov r0, #0x0 pop {r3-r7, pc} nop _0202AD04: .word 0xEDB88320 thumb_func_start FUN_0202AD08 FUN_0202AD08: ; 0x0202AD08 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_0202AE0C cmp r0, #0x0 bne _0202AD1A mov r0, #0x0 pop {r4-r6, pc} _0202AD1A: ldr r0, _0202AD88 ; =0x00000152 ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #0x1 bne _0202AD34 add r0, r5, #0x0 bl FUN_0202ADF0 cmp r0, #0x0 bne _0202AD34 mov r0, #0x0 pop {r4-r6, pc} _0202AD34: mov r0, #0x12 mov r4, #0x0 add r2, r5, #0x0 lsl r0, r0, #0x4 _0202AD3C: ldr r1, [r2, r0] cmp r1, #0x0 bne _0202AD7C ldr r1, _0202AD8C ; =0x0000094C mov r2, #0xd6 add r3, r5, r1 lsl r2, r2, #0x2 add r1, r4, #0x0 mul r1, r2 add r0, r6, #0x0 add r1, r3, r1 blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 ldr r2, _0202AD90 ; =0xEDB88320 lsl r0, r0, #0x4 str r2, [r1, r0] add r0, #0x32 ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #0x1 bne _0202AD78 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x1 bl FUN_0202AC98 _0202AD78: mov r0, #0x1 pop {r4-r6, pc} _0202AD7C: add r4, r4, #0x1 add r2, r2, #0x4 cmp r4, #0x3 blt _0202AD3C mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0202AD88: .word 0x00000152 _0202AD8C: .word 0x0000094C _0202AD90: .word 0xEDB88320 thumb_func_start FUN_0202AD94 FUN_0202AD94: ; 0x0202AD94 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 sub r0, r4, #0x1 cmp r0, #0x8 blt _0202ADA4 bl ErrorHandling _0202ADA4: sub r4, r4, #0x1 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 mov r2, #0x0 lsl r0, r0, #0x8 str r2, [r1, r0] add r0, #0x2e add r3, r5, r0 lsl r0, r4, #0x6 add r0, r4, r0 lsl r2, r0, #0x2 ldrh r1, [r3, r2] mov r0, #0x3 bic r1, r0 strh r1, [r3, r2] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202ADC8 FUN_0202ADC8: ; 0x0202ADC8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blt _0202ADD6 bl ErrorHandling _0202ADD6: lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 mov r2, #0x0 lsl r0, r0, #0x4 str r2, [r1, r0] add r0, r5, #0x0 add r1, r4, #0x1 bl FUN_0202AEC4 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202ADF0 FUN_0202ADF0: ; 0x0202ADF0 mov r1, #0x1 mov r3, #0x0 lsl r1, r1, #0x8 _0202ADF6: ldr r2, [r0, r1] cmp r2, #0x0 bne _0202AE00 mov r0, #0x1 bx lr _0202AE00: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x8 blt _0202ADF6 mov r0, #0x0 bx lr thumb_func_start FUN_0202AE0C FUN_0202AE0C: ; 0x0202AE0C mov r1, #0x12 mov r3, #0x0 lsl r1, r1, #0x4 _0202AE12: ldr r2, [r0, r1] cmp r2, #0x0 bne _0202AE1C mov r0, #0x1 bx lr _0202AE1C: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x3 blt _0202AE12 mov r0, #0x0 bx lr thumb_func_start FUN_0202AE28 FUN_0202AE28: ; 0x0202AE28 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x8 blt _0202AE36 bl ErrorHandling _0202AE36: lsl r0, r5, #0x2 add r1, r4, r0 mov r0, #0x1 lsl r0, r0, #0x8 ldr r0, [r1, r0] cmp r0, #0x0 bne _0202AE48 mov r0, #0x0 pop {r3-r5, pc} _0202AE48: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202AE4C FUN_0202AE4C: ; 0x0202AE4C push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x3 blt _0202AE5A bl ErrorHandling _0202AE5A: lsl r0, r5, #0x2 add r1, r4, r0 mov r0, #0x12 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 bne _0202AE6C mov r0, #0x0 pop {r3-r5, pc} _0202AE6C: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202AE70 FUN_0202AE70: ; 0x0202AE70 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0202AE76: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202AE4C cmp r0, #0x1 bne _0202AE86 mov r0, #0x1 pop {r3-r5, pc} _0202AE86: add r4, r4, #0x1 cmp r4, #0x3 blt _0202AE76 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202AE90 FUN_0202AE90: ; 0x0202AE90 push {r3-r4} cmp r1, #0x0 beq _0202AEB8 ldr r2, _0202AEC0 ; =0x0000012E mov r3, #0x0 add r4, r0, r2 add r0, r2, #0x0 sub r0, #0x2a _0202AEA0: ldrh r2, [r4, #0x0] lsl r2, r2, #0x1e lsr r2, r2, #0x1e cmp r1, r2 bne _0202AEB0 mov r0, #0x1 pop {r3-r4} bx lr _0202AEB0: add r3, r3, #0x1 add r4, r4, r0 cmp r3, #0x8 blt _0202AEA0 _0202AEB8: mov r0, #0x0 pop {r3-r4} bx lr nop _0202AEC0: .word 0x0000012E thumb_func_start FUN_0202AEC4 FUN_0202AEC4: ; 0x0202AEC4 push {r3-r5, lr} cmp r1, #0x0 beq _0202AEEE ldr r3, _0202AEF0 ; =0x0000012E mov r4, #0x41 mov r2, #0x0 add r3, r0, r3 lsl r4, r4, #0x2 _0202AED4: ldrh r5, [r3, #0x0] lsl r5, r5, #0x1e lsr r5, r5, #0x1e cmp r1, r5 bne _0202AEE6 add r1, r2, #0x1 bl FUN_0202AD94 pop {r3-r5, pc} _0202AEE6: add r2, r2, #0x1 add r3, r3, r4 cmp r2, #0x8 blt _0202AED4 _0202AEEE: pop {r3-r5, pc} .balign 4 _0202AEF0: .word 0x0000012E thumb_func_start FUN_0202AEF4 FUN_0202AEF4: ; 0x0202AEF4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF06 bl ErrorHandling _0202AF06: mov r0, #0x1 mov r1, #0x7 add r2, r4, #0x0 and r2, r1 add r1, r0, #0x0 lsl r1, r2 asr r2, r4, #0x2 lsr r2, r2, #0x1d add r2, r4, r2 asr r2, r2, #0x3 ldrb r2, [r5, r2] tst r1, r2 bne _0202AF22 mov r0, #0x0 _0202AF22: pop {r3-r5, pc} thumb_func_start FUN_0202AF24 FUN_0202AF24: ; 0x0202AF24 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF36 bl ErrorHandling _0202AF36: asr r0, r4, #0x2 lsr r0, r0, #0x1d add r0, r4, r0 asr r0, r0, #0x3 mov r1, #0x7 ldrb r3, [r5, r0] mov r2, #0x1 and r1, r4 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r5, r0] pop {r3-r5, pc} thumb_func_start FUN_0202AF50 FUN_0202AF50: ; 0x0202AF50 ldr r3, _0202AF58 ; =FUN_0202AEF4 ldr r1, _0202AF5C ; =0x000007FF bx r3 nop _0202AF58: .word FUN_0202AEF4 _0202AF5C: .word 0x000007FF thumb_func_start FUN_0202AF60 FUN_0202AF60: ; 0x0202AF60 ldr r3, _0202AF68 ; =FUN_0202AF24 ldr r1, _0202AF6C ; =0x000007FF bx r3 nop _0202AF68: .word FUN_0202AF24 _0202AF6C: .word 0x000007FF thumb_func_start FUN_0202AF70 FUN_0202AF70: ; 0x0202AF70 push {r3, lr} ldr r1, _0202AF84 ; =0x021C59D4 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0202AF82 bl FUN_0202251C ldr r1, _0202AF84 ; =0x021C59D4 str r0, [r1, #0x0] _0202AF82: pop {r3, pc} .balign 4 _0202AF84: .word 0x021C59D4 thumb_func_start FUN_0202AF88 FUN_0202AF88: ; 0x0202AF88 ldr r0, _0202AF98 ; =0x021C59D4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202AF94 mov r1, #0x0 str r1, [r0, #0x0] _0202AF94: bx lr nop _0202AF98: .word 0x021C59D4 thumb_func_start FUN_0202AF9C FUN_0202AF9C: ; 0x0202AF9C push {r3-r5, lr} ldr r4, _0202AFBC ; =0x021C59D4 mov r5, #0x0 _0202AFA2: ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_0202AE28 cmp r0, #0x1 bne _0202AFB2 add r0, r5, #0x1 pop {r3-r5, pc} _0202AFB2: add r5, r5, #0x1 cmp r5, #0x8 blt _0202AFA2 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202AFBC: .word 0x021C59D4 thumb_func_start FUN_0202AFC0 FUN_0202AFC0: ; 0x0202AFC0 push {r4, lr} add r4, r0, #0x0 bne _0202AFCA mov r0, #0x0 pop {r4, pc} _0202AFCA: sub r0, r4, #0x1 cmp r0, #0x8 blt _0202AFD4 bl ErrorHandling _0202AFD4: ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 ldr r0, [r0, #0x0] bl FUN_0202AE28 cmp r0, #0x1 bne _0202AFF4 ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 ldr r0, [r0, #0x0] bl FUN_0202AC2C cmp r0, #0x0 beq _0202AFF4 ldrh r0, [r0, #0x0] pop {r4, pc} _0202AFF4: mov r0, #0x0 pop {r4, pc} .balign 4 _0202AFF8: .word 0x021C59D4 thumb_func_start FUN_0202AFFC FUN_0202AFFC: ; 0x0202AFFC cmp r0, #0x0 beq _0202B016 ldr r1, _0202B01C ; =0x021C59D4 ldr r2, [r1, #0x0] mov r1, #0x13 lsl r1, r1, #0x4 add r2, r2, r1 sub r1, r0, #0x1 lsl r0, r1, #0x6 add r0, r1, r0 lsl r0, r0, #0x2 add r0, r2, r0 bx lr _0202B016: mov r0, #0x0 bx lr nop _0202B01C: .word 0x021C59D4 thumb_func_start FUN_0202B020 FUN_0202B020: ; 0x0202B020 add r1, r0, #0x0 ldr r0, _0202B02C ; =0x021C59D4 ldr r3, _0202B030 ; =FUN_0202AD94 ldr r0, [r0, #0x0] bx r3 nop _0202B02C: .word 0x021C59D4 _0202B030: .word FUN_0202AD94 thumb_func_start FUN_0202B034 FUN_0202B034: ; 0x0202B034 ldr r0, _0202B038 ; =0x00002AB0 bx lr .balign 4 _0202B038: .word 0x00002AB0 thumb_func_start FUN_0202B03C FUN_0202B03C: ; 0x0202B03C ldr r3, _0202B048 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B04C ; =0x00002AB0 bx r3 nop _0202B048: .word MIi_CpuClear32 _0202B04C: .word 0x00002AB0 thumb_func_start FUN_0202B050 FUN_0202B050: ; 0x0202B050 push {r3-r7, lr} sub sp, #0x18 str r0, [sp, #0x0] str r1, [sp, #0x4] str r2, [sp, #0x8] cmp r0, #0x0 bne _0202B062 bl ErrorHandling _0202B062: ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B070 bl ErrorHandling _0202B070: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] ldr r2, [r0, r1] ldr r0, _0202B1E8 ; =0x0000270F cmp r2, r0 blo _0202B07E b _0202B1DC _0202B07E: ldr r0, [sp, #0x0] sub r1, r1, #0x4 ldr r1, [r0, r1] mov r0, #0x5b lsl r0, r0, #0x2 add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x0] add r0, r0, r2 str r0, [sp, #0x14] ldr r0, [sp, #0x4] bl FUN_0206B9AC str r0, [sp, #0x10] mov r0, #0xb mov r1, #0x0 bl FUN_020219F4 mov r2, #0x5a add r6, r0, #0x0 ldr r1, [sp, #0x14] mov r0, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClear16 ldr r0, [sp, #0x10] mov r7, #0x0 cmp r0, #0x0 ble _0202B18E ldr r5, [sp, #0x14] _0202B0BA: ldr r0, [sp, #0x4] add r1, r7, #0x0 bl FUN_0206B9B0 add r4, r0, #0x0 bl FUN_020669D4 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0202B17E add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC strb r0, [r5, #0x2] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC mov r1, #0x0 strb r0, [r5, #0x3] add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x32] add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x34] add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x36] add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x38] cmp r6, #0x0 beq _0202B176 add r0, r4, #0x0 mov r1, #0x76 add r2, r6, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0xc mov r2, #0xb bl FUN_02021EF0 add r0, r4, #0x0 mov r1, #0x90 add r2, r6, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0x22 mov r2, #0x8 bl FUN_02021EF0 b _0202B17C _0202B176: ldr r0, _0202B1EC ; =0x0000FFFF strh r0, [r5, #0xc] strh r0, [r5, #0x22] _0202B17C: add r5, #0x3c _0202B17E: ldr r1, [sp, #0xc] add r0, r4, #0x0 bl FUN_02066A20 ldr r0, [sp, #0x10] add r7, r7, #0x1 cmp r7, r0 blt _0202B0BA _0202B18E: ldr r0, [sp, #0x8] mov r1, #0x5a ldr r2, [r0, #0x0] ldr r0, [sp, #0x14] lsl r1, r1, #0x2 strh r2, [r0, r1] ldr r0, [sp, #0x8] add r2, r1, #0x2 ldr r3, [r0, #0x4] ldr r0, [sp, #0x14] add r1, r1, #0x3 strb r3, [r0, r2] ldr r0, [sp, #0x8] ldr r2, [r0, #0x8] ldr r0, [sp, #0x14] strb r2, [r0, r1] ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] str r2, [r0, r1] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B1C6 ldr r0, [sp, #0x0] mov r2, #0x0 str r2, [r0, r1] _0202B1C6: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] ldr r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] cmp r6, #0x0 str r2, [r0, r1] beq _0202B1DC add r0, r6, #0x0 bl FUN_02021A20 _0202B1DC: add sp, #0x18 pop {r3-r7, pc} .balign 4 _0202B1E0: .word 0x00002AA8 _0202B1E4: .word 0x00002AAC _0202B1E8: .word 0x0000270F _0202B1EC: .word 0x0000FFFF thumb_func_start FUN_0202B1F0 FUN_0202B1F0: ; 0x0202B1F0 push {r4, lr} add r4, r0, #0x0 bne _0202B1FA bl ErrorHandling _0202B1FA: ldr r0, _0202B214 ; =0x00002AA8 ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B206 bl ErrorHandling _0202B206: ldr r0, _0202B218 ; =0x00002AAC ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B210 mov r0, #0x1e _0202B210: pop {r4, pc} nop _0202B214: .word 0x00002AA8 _0202B218: .word 0x00002AAC thumb_func_start FUN_0202B21C FUN_0202B21C: ; 0x0202B21C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B22A bl ErrorHandling _0202B22A: ldr r0, _0202B248 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B236 bl ErrorHandling _0202B236: cmp r4, #0x1e blt _0202B23E bl ErrorHandling _0202B23E: ldr r0, _0202B24C ; =0x00002AAC ldr r0, [r5, r0] sub r0, r0, r4 pop {r3-r5, pc} nop _0202B248: .word 0x00002AA8 _0202B24C: .word 0x00002AAC thumb_func_start FUN_0202B250 FUN_0202B250: ; 0x0202B250 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B25E bl ErrorHandling _0202B25E: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B26A bl ErrorHandling _0202B26A: cmp r4, #0x1e blt _0202B272 bl ErrorHandling _0202B272: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r2, r0, r4 bpl _0202B27E add r2, #0x1e _0202B27E: mov r1, #0x5b lsl r1, r1, #0x2 mul r1, r2 mov r0, #0x0 add r2, r5, r1 _0202B288: ldrh r1, [r2, #0x0] cmp r1, #0x0 beq _0202B296 add r0, r0, #0x1 add r2, #0x3c cmp r0, #0x6 blo _0202B288 _0202B296: pop {r3-r5, pc} .balign 4 _0202B298: .word 0x00002AA8 thumb_func_start FUN_0202B29C FUN_0202B29C: ; 0x0202B29C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 cmp r5, #0x0 bne _0202B2AE bl ErrorHandling _0202B2AE: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B2BA bl ErrorHandling _0202B2BA: cmp r6, #0x1e blt _0202B2C2 bl ErrorHandling _0202B2C2: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r1, r0, r6 bpl _0202B2CE add r1, #0x1e _0202B2CE: mov r0, #0x5b lsl r0, r0, #0x2 mul r0, r1 add r1, r5, r0 mov r0, #0x3c mul r0, r7 add r5, r1, r0 ldrh r0, [r1, r0] add r1, r5, #0x0 add r1, #0xc strh r0, [r4, #0x10] ldrb r0, [r5, #0x2] strb r0, [r4, #0x12] ldr r0, [r5, #0x4] str r0, [r4, #0x8] ldr r0, [r5, #0x8] str r0, [r4, #0xc] ldrb r0, [r5, #0x3] strb r0, [r4, #0x13] ldr r0, [r4, #0x0] bl FUN_02021E28 add r1, r5, #0x0 ldr r0, [r4, #0x4] add r1, #0x22 bl FUN_02021E28 mov r1, #0x0 _0202B306: ldrh r0, [r5, #0x32] add r1, r1, #0x1 add r5, r5, #0x2 strh r0, [r4, #0x14] add r4, r4, #0x2 cmp r1, #0x4 blt _0202B306 pop {r3-r7, pc} nop _0202B318: .word 0x00002AA8 thumb_func_start FUN_0202B31C FUN_0202B31C: ; 0x0202B31C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _0202B32C bl ErrorHandling _0202B32C: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B338 bl ErrorHandling _0202B338: cmp r6, #0x1e blt _0202B340 bl ErrorHandling _0202B340: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r2, r0, r6 bpl _0202B34C add r2, #0x1e _0202B34C: mov r0, #0x5b lsl r0, r0, #0x2 add r1, r2, #0x0 mul r1, r0 add r2, r5, r1 sub r1, r0, #0x4 ldrh r1, [r2, r1] str r1, [r4, #0x0] sub r1, r0, #0x2 ldrb r1, [r2, r1] sub r0, r0, #0x1 str r1, [r4, #0x4] ldrb r0, [r2, r0] str r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0xc] pop {r4-r6, pc} nop _0202B370: .word 0x00002AA8 thumb_func_start FUN_0202B374 FUN_0202B374: ; 0x0202B374 ldr r0, _0202B378 ; =0x00000B88 bx lr .balign 4 _0202B378: .word 0x00000B88 thumb_func_start FUN_0202B37C FUN_0202B37C: ; 0x0202B37C ldr r3, _0202B388 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B38C ; =0x00000B88 bx r3 nop _0202B388: .word MIi_CpuClearFast _0202B38C: .word 0x00000B88 thumb_func_start FUN_0202B390 FUN_0202B390: ; 0x0202B390 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 mov r0, #0x0 add r1, #0xc mov r2, #0xc0 blx MIi_CpuClearFast add r1, r4, #0x0 mov r0, #0x0 add r1, #0xcc mov r2, #0xc0 blx MIi_CpuClearFast mov r1, #0x63 lsl r1, r1, #0x2 mov r0, #0x0 add r1, r4, r1 mov r2, #0xc0 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_0202B3F8 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B3C4 FUN_0202B3C4: ; 0x0202B3C4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, r1 ble _0202B3D4 sub r0, r0, r1 str r0, [r4, #0x4] pop {r4, pc} _0202B3D4: add r0, r2, #0x0 mov r1, #0xf blx _s32_div_f mov r0, #0xf sub r1, r0, r1 str r1, [r4, #0x4] bne _0202B3E6 str r0, [r4, #0x4] _0202B3E6: mov r1, #0x0 strb r1, [r4, #0x8] add r0, r1, #0x0 _0202B3EC: strb r0, [r4, r1] add r1, r1, #0x1 cmp r1, #0x4 blt _0202B3EC pop {r4, pc} .balign 4 thumb_func_start FUN_0202B3F8 FUN_0202B3F8: ; 0x0202B3F8 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 bl FUN_0202B40C add r0, r4, #0x0 bl FUN_0202B430 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B40C FUN_0202B40C: ; 0x0202B40C strb r1, [r0, #0x8] bx lr thumb_func_start FUN_0202B410 FUN_0202B410: ; 0x0202B410 ldrb r0, [r0, #0x8] bx lr thumb_func_start FUN_0202B414 FUN_0202B414: ; 0x0202B414 push {r3, lr} mov r3, #0x0 _0202B418: ldrb r2, [r0, r3] cmp r2, #0x0 bne _0202B422 strb r1, [r0, r3] pop {r3, pc} _0202B422: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B418 bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0202B430 FUN_0202B430: ; 0x0202B430 mov r2, #0x0 add r1, r2, #0x0 _0202B434: strb r1, [r0, r2] add r2, r2, #0x1 cmp r2, #0x4 blt _0202B434 bx lr .balign 4 thumb_func_start FUN_0202B440 FUN_0202B440: ; 0x0202B440 mov r3, #0x0 _0202B442: ldrb r2, [r0, r3] cmp r1, r2 bne _0202B44C mov r0, #0x1 bx lr _0202B44C: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B442 mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B458 FUN_0202B458: ; 0x0202B458 mov r2, #0x0 add r3, r2, #0x0 _0202B45C: ldrb r1, [r0, r2] cmp r1, #0x0 beq _0202B464 add r3, r3, #0x1 _0202B464: add r2, r2, #0x1 cmp r2, #0x4 blt _0202B45C add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B470 FUN_0202B470: ; 0x0202B470 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020126B4 ldr r0, [sp, #0x8] ldr r3, [sp, #0x4] lsl r0, r0, #0x18 lsr r1, r0, #0x10 ldr r0, [sp, #0x0] lsl r3, r3, #0x18 lsl r0, r0, #0x18 lsr r3, r3, #0x8 orr r0, r3 ldr r2, [sp, #0xc] orr r0, r1 orr r0, r2 str r0, [r5, #0x4] strb r4, [r5, #0x0] mov r0, #0x0 strb r0, [r5, #0x1] add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x28 blx MIi_CpuCopyFast add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0202B4B0 FUN_0202B4B0: ; 0x0202B4B0 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_0202B548 mov r2, #0x0 add r3, r0, #0x0 _0202B4BE: ldrb r1, [r3, #0x0] cmp r5, r1 bne _0202B4E0 mov r1, #0x30 mul r1, r2 add r0, r0, r1 ldrb r1, [r0, #0x1] cmp r1, #0x3 blo _0202B4DC add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B4DC: mov r0, #0x0 pop {r3-r5, pc} _0202B4E0: add r2, r2, #0x1 add r3, #0x30 cmp r2, #0x4 blt _0202B4BE mov r1, #0x0 add r3, r0, #0x0 _0202B4EC: ldrb r2, [r3, #0x0] cmp r2, #0x0 bne _0202B504 mov r2, #0x30 mul r2, r1 add r0, r0, r2 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B504: add r1, r1, #0x1 add r3, #0x30 cmp r1, #0x4 blt _0202B4EC mov r1, #0x0 add r3, r0, #0x0 _0202B510: ldrb r2, [r3, #0x1] cmp r2, #0x3 blo _0202B528 mov r2, #0x30 mul r2, r1 add r0, r0, r2 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B528: add r1, r1, #0x1 add r3, #0x30 cmp r1, #0x4 blt _0202B510 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202B534 FUN_0202B534: ; 0x0202B534 add r0, #0x8 bx lr thumb_func_start FUN_0202B538 FUN_0202B538: ; 0x0202B538 ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_0202B53C FUN_0202B53C: ; 0x0202B53C ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_0202B540 FUN_0202B540: ; 0x0202B540 add r0, #0x18 bx lr thumb_func_start FUN_0202B544 FUN_0202B544: ; 0x0202B544 bx lr .balign 4 thumb_func_start FUN_0202B548 FUN_0202B548: ; 0x0202B548 push {r4, lr} mov r4, #0x0 cmp r1, #0x4 bhi _0202B57E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B55C: ; jump table (using 16-bit offset) .short _0202B57E - _0202B55C - 2; case 0 .short _0202B566 - _0202B55C - 2; case 1 .short _0202B56E - _0202B55C - 2; case 2 .short _0202B574 - _0202B55C - 2; case 3 .short _0202B57A - _0202B55C - 2; case 4 _0202B566: mov r1, #0x63 lsl r1, r1, #0x2 add r4, r0, r1 b _0202B57E _0202B56E: add r4, r0, #0x0 add r4, #0xc b _0202B57E _0202B574: add r4, r0, #0x0 add r4, #0xcc b _0202B57E _0202B57A: bl ErrorHandling _0202B57E: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B584 FUN_0202B584: ; 0x0202B584 push {r4, lr} mov r4, #0x0 cmp r1, #0x4 bhi _0202B5BA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B598: ; jump table (using 16-bit offset) .short _0202B5BA - _0202B598 - 2; case 0 .short _0202B5B0 - _0202B598 - 2; case 1 .short _0202B5A2 - _0202B598 - 2; case 2 .short _0202B5AA - _0202B598 - 2; case 3 .short _0202B5B6 - _0202B598 - 2; case 4 _0202B5A2: mov r1, #0x93 lsl r1, r1, #0x2 add r4, r0, r1 b _0202B5BA _0202B5AA: ldr r1, _0202B5C0 ; =0x000006CC add r4, r0, r1 b _0202B5BA _0202B5B0: ldr r1, _0202B5C4 ; =0x0000090C add r4, r0, r1 b _0202B5BA _0202B5B6: bl ErrorHandling _0202B5BA: add r0, r4, #0x0 pop {r4, pc} nop _0202B5C0: .word 0x000006CC _0202B5C4: .word 0x0000090C thumb_func_start FUN_0202B5C8 FUN_0202B5C8: ; 0x0202B5C8 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_0202B5CC FUN_0202B5CC: ; 0x0202B5CC ldrb r1, [r0, #0x1] cmp r1, #0x3 bhs _0202B5D6 add r1, r1, #0x1 strb r1, [r0, #0x1] _0202B5D6: bx lr thumb_func_start FUN_0202B5D8 FUN_0202B5D8: ; 0x0202B5D8 add r0, #0x8 bx lr thumb_func_start FUN_0202B5DC FUN_0202B5DC: ; 0x0202B5DC push {r4-r7} mov r5, #0x0 add r4, r5, #0x0 ldr r6, [sp, #0x10] cmp r1, #0x0 ble _0202B616 _0202B5E8: ldrb r7, [r0, #0x0] cmp r2, r7 bne _0202B60E ldrb r7, [r0, #0x1] cmp r3, #0x0 beq _0202B600 cmp r7, #0x0 beq _0202B600 add r7, r4, #0x1 strb r7, [r6, r5] add r5, r5, #0x1 b _0202B60E _0202B600: cmp r3, #0x0 bne _0202B60E cmp r7, #0x0 bne _0202B60E add r7, r4, #0x1 strb r7, [r6, r5] add r5, r5, #0x1 _0202B60E: add r4, r4, #0x1 add r0, #0x30 cmp r4, r1 blt _0202B5E8 _0202B616: add r0, r5, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_0202B61C FUN_0202B61C: ; 0x0202B61C push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 mov r5, #0x0 add r0, r1, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] str r3, [sp, #0x8] ldr r7, [sp, #0x20] cmp r0, #0x0 ble _0202B672 _0202B634: ldrb r2, [r6, #0x18] ldr r1, [sp, #0x4] ldrb r0, [r6, #0x19] cmp r1, r2 bne _0202B668 ldr r1, [sp, #0x8] cmp r1, #0x0 beq _0202B654 cmp r0, #0x0 beq _0202B654 add r0, r4, #0x1 bl FUN_0202B830 strb r0, [r7, r5] add r5, r5, #0x1 b _0202B668 _0202B654: ldr r1, [sp, #0x8] cmp r1, #0x0 bne _0202B668 cmp r0, #0x0 bne _0202B668 add r0, r4, #0x1 bl FUN_0202B830 strb r0, [r7, r5] add r5, r5, #0x1 _0202B668: ldr r0, [sp, #0x0] add r4, r4, #0x1 add r6, #0x48 cmp r4, r0 blt _0202B634 _0202B672: add r0, r5, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202B678 FUN_0202B678: ; 0x0202B678 push {r3-r5, lr} ldr r5, [sp, #0x10] ldr r4, [sp, #0x14] cmp r1, #0x4 bhi _0202B702 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B68E: ; jump table (using 16-bit offset) .short _0202B702 - _0202B68E - 2; case 0 .short _0202B6DA - _0202B68E - 2; case 1 .short _0202B698 - _0202B68E - 2; case 2 .short _0202B6BA - _0202B68E - 2; case 3 .short _0202B6FE - _0202B68E - 2; case 4 _0202B698: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6AA add r0, #0xc mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6AA: mov r1, #0x93 lsl r1, r1, #0x2 add r0, r0, r1 mov r1, #0x10 add r3, r5, #0x0 bl FUN_0202B61C pop {r3-r5, pc} _0202B6BA: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6CC add r0, #0xcc mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6CC: ldr r1, _0202B708 ; =0x000006CC add r3, r5, #0x0 add r0, r0, r1 mov r1, #0x8 bl FUN_0202B61C pop {r3-r5, pc} _0202B6DA: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6F0 mov r1, #0x63 lsl r1, r1, #0x2 add r0, r0, r1 mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6F0: ldr r1, _0202B70C ; =0x0000090C add r3, r5, #0x0 add r0, r0, r1 mov r1, #0x8 bl FUN_0202B61C pop {r3-r5, pc} _0202B6FE: mov r0, #0x0 pop {r3-r5, pc} _0202B702: mov r0, #0x0 pop {r3-r5, pc} nop _0202B708: .word 0x000006CC _0202B70C: .word 0x0000090C thumb_func_start FUN_0202B710 FUN_0202B710: ; 0x0202B710 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r6, r1, #0x0 add r5, r2, #0x0 add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 mov r0, #0x0 str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 mov r3, #0x1 bl FUN_0202B678 cmp r0, #0x0 beq _0202B742 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0202B742: mov r3, #0x1 str r3, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0202B678 cmp r0, #0x0 beq _0202B79E add r0, sp, #0x8 ldrb r0, [r0, #0x0] mov r7, #0x0 cmp r0, #0x0 beq _0202B798 add r5, sp, #0x8 _0202B764: ldrb r2, [r5, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0202B7C8 ldrb r0, [r0, #0x1] cmp r0, #0x3 blo _0202B77A add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202B77A: add r7, r7, #0x1 add r5, r5, #0x1 cmp r7, #0x4 bge _0202B786 mov r1, #0x1 b _0202B788 _0202B786: mov r1, #0x0 _0202B788: ldrb r0, [r5, #0x0] cmp r0, #0x0 beq _0202B792 mov r0, #0x1 b _0202B794 _0202B792: mov r0, #0x0 _0202B794: tst r0, r1 bne _0202B764 _0202B798: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0202B79E: mov r5, #0x1 _0202B7A0: add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0202B7C8 ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _0202B7B6 ldrb r0, [r0, #0x1] cmp r0, #0x3 blo _0202B7BC _0202B7B6: add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202B7BC: add r5, r5, #0x1 cmp r5, #0x4 ble _0202B7A0 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202B7C8 FUN_0202B7C8: ; 0x0202B7C8 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r1, #0x0 bl FUN_0202B820 cmp r0, #0x1 beq _0202B7DE bl ErrorHandling _0202B7DE: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202B548 mov r1, #0x80 bic r4, r1 sub r2, r4, #0x1 mov r1, #0x30 mul r1, r2 add r0, r0, r1 pop {r4-r6, pc} thumb_func_start FUN_0202B7F4 FUN_0202B7F4: ; 0x0202B7F4 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r1, #0x0 bl FUN_0202B820 cmp r0, #0x0 beq _0202B80A bl ErrorHandling _0202B80A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202B584 mov r1, #0x80 bic r4, r1 sub r2, r4, #0x1 mov r1, #0x48 mul r1, r2 add r0, r0, r1 pop {r4-r6, pc} thumb_func_start FUN_0202B820 FUN_0202B820: ; 0x0202B820 mov r1, #0x80 tst r0, r1 bne _0202B82A mov r0, #0x1 bx lr _0202B82A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B830 FUN_0202B830: ; 0x0202B830 mov r1, #0x80 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_0202B838 FUN_0202B838: ; 0x0202B838 ldr r1, _0202B840 ; =0x00000B4C add r0, r0, r1 bx lr nop _0202B840: .word 0x00000B4C thumb_func_start FUN_0202B844 FUN_0202B844: ; 0x0202B844 ldr r1, _0202B84C ; =0x00000B56 add r0, r0, r1 bx lr nop _0202B84C: .word 0x00000B56 thumb_func_start FUN_0202B850 FUN_0202B850: ; 0x0202B850 ldr r1, _0202B858 ; =0x00000B7A add r0, r0, r1 bx lr nop _0202B858: .word 0x00000B7A thumb_func_start FUN_0202B85C FUN_0202B85C: ; 0x0202B85C ldr r1, _0202B864 ; =0x00000B7C add r0, r0, r1 bx lr nop _0202B864: .word 0x00000B7C thumb_func_start FUN_0202B868 FUN_0202B868: ; 0x0202B868 mov r1, #0x2e lsl r1, r1, #0x6 add r0, r0, r1 bx lr thumb_func_start FUN_0202B870 FUN_0202B870: ; 0x0202B870 lsl r1, r0, #0x1 ldr r0, _0202B878 ; =0x020EEAC8 ldrb r0, [r0, r1] bx lr .balign 4 _0202B878: .word 0x020EEAC8 thumb_func_start FUN_0202B87C FUN_0202B87C: ; 0x0202B87C lsl r1, r0, #0x1 ldr r0, _0202B884 ; =0x020EEAC9 ldrb r0, [r0, r1] bx lr .balign 4 _0202B884: .word 0x020EEAC9 thumb_func_start FUN_0202B888 FUN_0202B888: ; 0x0202B888 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] ldr r3, _0202B898 ; =StringFillEOS add r0, #0x8 mov r1, #0x8 bx r3 nop _0202B898: .word StringFillEOS thumb_func_start FUN_0202B89C FUN_0202B89C: ; 0x0202B89C push {r3, lr} add r0, #0x8 bl StringLength cmp r0, #0x0 beq _0202B8AC mov r0, #0x1 pop {r3, pc} _0202B8AC: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0202B8B0 FUN_0202B8B0: ; 0x0202B8B0 mov r0, #0xea lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202B8B8 FUN_0202B8B8: ; 0x0202B8B8 push {r3-r7, lr} mov r2, #0xea mov r1, #0x0 lsl r2, r2, #0x4 add r6, r0, #0x0 blx MI_CpuFill8 mov r7, #0x0 _0202B8C8: mov r4, #0x0 add r5, r6, #0x0 _0202B8CC: add r0, r5, #0x0 bl FUN_0202B888 add r4, r4, #0x1 add r5, #0x18 cmp r4, #0x6 blt _0202B8CC add r7, r7, #0x1 add r6, #0x90 cmp r7, #0x1a blt _0202B8C8 pop {r3-r7, pc} thumb_func_start FUN_0202B8E4 FUN_0202B8E4: ; 0x0202B8E4 ldr r3, _0202B8EC ; =FUN_02022610 mov r1, #0x1c bx r3 nop _0202B8EC: .word FUN_02022610 thumb_func_start FUN_0202B8F0 FUN_0202B8F0: ; 0x0202B8F0 push {r4-r6, lr} cmp r2, #0x6 blo _0202B8FE blo _0202B930 bl ErrorHandling pop {r4-r6, pc} _0202B8FE: mov r3, #0x90 mul r3, r1 add r3, r0, r3 cmp r2, #0x5 bge _0202B928 mov r0, #0x18 mul r0, r2 add r6, r3, r0 _0202B90E: add r5, r6, #0x0 add r5, #0x18 add r4, r6, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} add r2, r2, #0x1 add r6, #0x18 stmia r4!, {r0-r1} cmp r2, #0x5 blt _0202B90E _0202B928: add r3, #0x78 add r0, r3, #0x0 bl FUN_0202B888 _0202B930: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202B934 FUN_0202B934: ; 0x0202B934 mov r0, #0x4e lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0202B93C FUN_0202B93C: ; 0x0202B93C push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 bl FUN_02029FC8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x34 bl FUN_020169D8 str r0, [sp, #0x4] add r5, r0, #0x0 ldr r0, _0202B9E8 ; =0x020EEAD0 mov r6, #0x0 str r0, [sp, #0x0] _0202B95A: cmp r6, #0x5 beq _0202B968 cmp r6, #0xa beq _0202B988 cmp r6, #0xb beq _0202B9A0 b _0202B9C8 _0202B968: add r0, r4, #0x0 mov r1, #0xf bl FUN_0202A150 add r7, r0, #0x0 beq _0202B984 add r0, r4, #0x0 mov r1, #0x1d bl FUN_0202A150 add r1, r7, #0x0 blx _u32_div_f add r7, r0, #0x0 _0202B984: str r7, [r5, #0x0] b _0202B9D4 _0202B988: add r0, r4, #0x0 mov r1, #0x41 bl FUN_0202A150 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x42 bl FUN_0202A150 add r0, r7, r0 str r0, [r5, #0x0] b _0202B9D4 _0202B9A0: add r0, r4, #0x0 mov r1, #0x3f bl FUN_0202A150 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x40 bl FUN_0202A150 add r1, r7, r0 beq _0202B9C4 ldr r0, [sp, #0x4] ldr r2, [r0, #0x28] mov r0, #0x64 mul r0, r2 blx _u32_div_f add r1, r0, #0x0 _0202B9C4: str r1, [r5, #0x0] b _0202B9D4 _0202B9C8: ldr r1, [sp, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0202A150 str r0, [r5, #0x0] _0202B9D4: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r0, #0x4 add r5, r5, #0x4 str r0, [sp, #0x0] cmp r6, #0xd blt _0202B95A ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} .balign 4 _0202B9E8: .word 0x020EEAD0 thumb_func_start FUN_0202B9EC FUN_0202B9EC: ; 0x0202B9EC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020238F4 mov r1, #0x4e add r6, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_020169D8 mov r2, #0x4e mov r1, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x4] blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C str r0, [sp, #0x8] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020239A0 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202B93C ldr r4, [sp, #0x4] str r0, [sp, #0x0] mov r6, #0x0 add r5, r0, #0x0 _0202BA38: ldr r0, [sp, #0x8] add r1, r4, #0x0 str r0, [r4, #0x0] add r0, r7, #0x0 add r1, #0x8 mov r2, #0x8 bl FUN_02021EF0 ldr r0, [r5, #0x0] add r6, r6, #0x1 str r0, [r4, #0x4] add r4, #0x18 add r5, r5, #0x4 cmp r6, #0xd blt _0202BA38 ldr r0, [sp, #0x0] bl FUN_02016A18 add r0, r7, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x4] add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202BA68 FUN_0202BA68: ; 0x0202BA68 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0202BA6E: add r0, r5, #0x0 bl FUN_0202B888 add r4, r4, #0x1 add r5, #0x18 cmp r4, #0x6 blt _0202BA6E pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202BA80 FUN_0202BA80: ; 0x0202BA80 push {r3, lr} ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] cmp r3, r2 beq _0202BA8E mov r0, #0x0 pop {r3, pc} _0202BA8E: add r0, #0x8 add r1, #0x8 bl StringNotEqual cmp r0, #0x0 bne _0202BA9E mov r0, #0x1 pop {r3, pc} _0202BA9E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202BAA4 FUN_0202BAA4: ; 0x0202BAA4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x4] add r7, r1, #0x0 mov r4, #0x0 cmp r0, #0x0 ble _0202BACE add r5, r6, #0x0 _0202BAB4: ldr r0, [r5, #0xc] add r1, r7, #0x0 bl FUN_0202BA80 cmp r0, #0x0 beq _0202BAC4 mov r0, #0x1 pop {r3-r7, pc} _0202BAC4: ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r0 blt _0202BAB4 _0202BACE: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202BAD4 FUN_0202BAD4: ; 0x0202BAD4 push {r4-r7, lr} sub sp, #0xc add r6, r1, #0x0 add r5, r0, #0x0 str r2, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x0 mov r2, #0xe0 add r4, r3, #0x0 blx MI_CpuFill8 add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x0 bne _0202BB64 mov r2, #0x90 add r0, r4, #0x0 mul r0, r2 add r1, r6, #0x0 add r0, r5, r0 add r1, #0x50 str r0, [sp, #0x8] blx MI_CpuCopy8 add r1, sp, #0x10 ldrb r3, [r1, #0x18] mov r0, #0x0 cmp r3, #0x0 ble _0202BB2E mov r2, #0x18 ldr r1, [sp, #0x24] mul r2, r4 _0202BB14: ldr r5, [r6, #0x4] add r0, r0, #0x1 add r4, r5, #0x0 add r4, r4, #0x1 str r4, [r6, #0x4] ldr r4, [r1, #0x0] lsl r5, r5, #0x2 add r4, r4, r2 add r5, r6, r5 str r4, [r5, #0xc] add r1, r1, #0x4 cmp r0, r3 blt _0202BB14 _0202BB2E: add r4, r6, #0x0 add r4, #0x50 mov r7, #0x0 add r5, r4, #0x0 _0202BB36: add r0, r4, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BB58 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0202BAA4 cmp r0, #0x0 bne _0202BB58 ldr r1, [r6, #0x0] add r0, r1, #0x1 str r0, [r6, #0x0] lsl r0, r1, #0x2 add r0, r6, r0 str r4, [r0, #0x38] _0202BB58: add r7, r7, #0x1 add r4, #0x18 add r5, #0x18 cmp r7, #0x6 blt _0202BB36 b _0202BBF8 _0202BB64: add r0, r4, #0x0 add r0, #0xd mov r2, #0x90 add r1, r0, #0x0 mul r1, r2 add r0, r5, r1 add r1, r6, #0x0 add r1, #0x50 str r0, [sp, #0x8] blx MI_CpuCopy8 add r0, sp, #0x10 ldrb r2, [r0, #0x18] mov r3, #0x0 cmp r2, #0x0 ble _0202BBB2 mov r1, #0x18 ldr r0, [sp, #0x24] mul r1, r4 _0202BB8A: ldr r4, [r0, #0x0] ldr r5, [r1, r4] cmp r5, #0x0 beq _0202BBAA ldr r4, [sp, #0x0] cmp r4, r5 bne _0202BBAA ldr r5, [r6, #0x4] add r4, r5, #0x0 add r4, r4, #0x1 str r4, [r6, #0x4] ldr r4, [r0, #0x0] lsl r5, r5, #0x2 add r4, r4, r1 add r5, r6, r5 str r4, [r5, #0xc] _0202BBAA: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, r2 blt _0202BB8A _0202BBB2: add r4, r6, #0x0 mov r0, #0x0 add r4, #0x50 str r0, [sp, #0x4] add r5, r6, #0x0 add r7, r4, #0x0 _0202BBBE: add r0, r4, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BBE8 ldr r1, [r5, #0x50] ldr r0, [sp, #0x0] cmp r0, r1 bne _0202BBE8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0202BAA4 cmp r0, #0x0 bne _0202BBE8 ldr r1, [r6, #0x0] add r0, r1, #0x1 str r0, [r6, #0x0] lsl r0, r1, #0x2 add r0, r6, r0 str r4, [r0, #0x38] _0202BBE8: ldr r0, [sp, #0x4] add r4, #0x18 add r0, r0, #0x1 add r5, #0x18 add r7, #0x18 str r0, [sp, #0x4] cmp r0, #0x6 blt _0202BBBE _0202BBF8: ldr r1, [r6, #0x4] ldr r0, [r6, #0x0] mov r2, #0x0 add r0, r1, r0 str r0, [r6, #0x8] ldr r0, [r6, #0x0] cmp r0, #0x0 ble _0202BC20 add r1, r6, #0x0 _0202BC0A: ldr r3, [r6, #0x4] ldr r0, [r1, #0x38] add r3, r2, r3 lsl r3, r3, #0x2 add r3, r6, r3 str r0, [r3, #0xc] ldr r0, [r6, #0x0] add r2, r2, #0x1 add r1, r1, #0x4 cmp r2, r0 blt _0202BC0A _0202BC20: mov r0, #0x0 mov r12, r0 ldr r0, [r6, #0x8] sub r5, r0, #0x1 cmp r5, #0x0 ble _0202BC64 add r3, r6, #0x0 _0202BC2E: mov r0, r12 cmp r5, r0 ble _0202BC52 lsl r0, r5, #0x2 add r4, r6, r0 _0202BC38: ldr r2, [r4, #0xc] ldr r7, [r3, #0xc] ldr r0, [r2, #0x4] ldr r1, [r7, #0x4] cmp r1, r0 bhs _0202BC48 str r2, [r3, #0xc] str r7, [r4, #0xc] _0202BC48: sub r5, r5, #0x1 mov r0, r12 sub r4, r4, #0x4 cmp r5, r0 bgt _0202BC38 _0202BC52: mov r0, r12 add r0, r0, #0x1 mov r12, r0 ldr r0, [r6, #0x8] add r3, r3, #0x4 sub r5, r0, #0x1 mov r0, r12 cmp r0, r5 blt _0202BC2E _0202BC64: ldr r0, [sp, #0x8] bl FUN_0202BA68 mov r3, #0x0 add r2, r6, #0x0 b _0202BC8A _0202BC70: ldr r5, [r2, #0xc] ldr r4, [sp, #0x8] ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [sp, #0x8] add r2, r2, #0x4 add r0, #0x18 str r0, [sp, #0x8] add r3, r3, #0x1 _0202BC8A: cmp r3, #0x6 bge _0202BC94 ldr r0, [r6, #0x8] cmp r3, r0 blt _0202BC70 _0202BC94: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202BC98 FUN_0202BC98: ; 0x0202BC98 push {r4-r7, lr} sub sp, #0x14 add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0x2c] mov r1, #0xe0 str r2, [sp, #0x10] add r4, r3, #0x0 bl FUN_020169D8 add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r4, [sp, #0x4] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r1, r6, #0x0 add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x2c] str r0, [sp, #0xc] ldr r3, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202BAD4 cmp r5, #0x0 beq _0202BCEA mov r0, #0x1 str r0, [sp, #0x0] str r4, [sp, #0x4] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r1, r6, #0x0 add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x2c] str r0, [sp, #0xc] ldr r3, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202BAD4 _0202BCEA: add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0202BCF4 FUN_0202BCF4: ; 0x0202BCF4 push {r4-r7, lr} sub sp, #0x24 add r6, r1, #0x0 ldr r1, [sp, #0x38] add r4, r0, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 str r1, [sp, #0x38] bl FUN_0202B8E4 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C mov r4, #0x0 add r3, r4, #0x0 str r0, [sp, #0xc] cmp r5, #0x0 bls _0202BD44 _0202BD20: cmp r3, r6 beq _0202BD3A lsl r0, r3, #0x2 ldr r2, [r7, r0] cmp r2, #0x0 beq _0202BD3A add r1, r4, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x18 lsr r4, r1, #0x18 lsl r1, r0, #0x2 add r0, sp, #0x10 str r2, [r0, r1] _0202BD3A: add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, r5 blo _0202BD20 _0202BD44: cmp r4, #0x0 beq _0202BD68 mov r5, #0x0 add r6, sp, #0x10 _0202BD4C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add r2, r5, #0x0 add r3, r6, #0x0 bl FUN_0202BC98 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0xd blo _0202BD4C _0202BD68: add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_0202BD6C FUN_0202BD6C: ; 0x0202BD6C push {r3-r7, lr} sub sp, #0x10 str r2, [sp, #0x0] add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020238F4 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x4c bl FUN_02016998 mov r1, #0x0 mov r2, #0x4c add r7, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C str r0, [sp, #0xc] ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_0202B93C str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_0202B870 str r0, [r7, #0x0] add r0, r5, #0x0 bl FUN_0202B87C ldr r1, [r7, #0x0] mov r6, #0x0 cmp r1, #0x0 ble _0202BDE2 lsl r1, r0, #0x2 ldr r0, [sp, #0x8] add r4, r7, #0x0 add r5, r0, r1 _0202BDC4: ldr r0, [sp, #0xc] ldr r1, [sp, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0x0] str r0, [r4, #0x8] ldr r0, [sp, #0x4] bl FUN_020239A0 str r0, [r4, #0xc] ldr r0, [r7, #0x0] add r6, r6, #0x1 add r4, #0xc add r5, r5, #0x4 cmp r6, r0 blt _0202BDC4 _0202BDE2: ldr r0, [sp, #0x8] bl FUN_02016A18 add r0, r7, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202BDF0 FUN_0202BDF0: ; 0x0202BDF0 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] add r0, r7, #0x0 mov r1, #0x4c bl FUN_02016998 mov r1, #0x0 mov r2, #0x4c add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [sp, #0x0] mov r1, #0x90 mul r1, r0 mov r6, #0x0 add r5, r5, r1 _0202BE14: add r0, r5, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BE60 ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 ldr r0, [r5, #0x0] add r1, r4, r1 str r0, [r1, #0x4] ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 ldr r0, [r5, #0x4] add r1, r4, r1 str r0, [r1, #0x8] mov r0, #0x8 add r1, r7, #0x0 bl FUN_020219F4 ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 add r1, r4, r1 str r0, [r1, #0xc] ldr r1, [r4, #0x0] mov r0, #0xc mul r0, r1 add r0, r4, r0 add r1, r5, #0x0 ldr r0, [r0, #0xc] add r1, #0x8 bl FUN_02021E28 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _0202BE60: add r6, r6, #0x1 add r5, #0x18 cmp r6, #0x6 blt _0202BE14 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0202BE6C FUN_0202BE6C: ; 0x0202BE6C push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _0202BE74: ldr r0, [r5, #0xc] cmp r0, #0x0 beq _0202BE7E bl FUN_02021A20 _0202BE7E: add r4, r4, #0x1 add r5, #0xc cmp r4, #0x6 blt _0202BE74 add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x4c blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_0202BE98 FUN_0202BE98: ; 0x0202BE98 ldr r0, _0202BE9C ; =0x00000688 bx lr .balign 4 _0202BE9C: .word 0x00000688 thumb_func_start FUN_0202BEA0 FUN_0202BEA0: ; 0x0202BEA0 push {r3-r7, lr} add r5, r0, #0x0 ldr r2, _0202BED8 ; =0x00000688 mov r0, #0x0 add r1, r5, #0x0 blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 _0202BEB4: add r0, r5, #0x0 bl FUN_02066978 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202BECC bl ErrorHandling _0202BECC: add r4, r4, #0x1 add r5, #0xec cmp r4, #0x6 blt _0202BEB4 pop {r3-r7, pc} nop _0202BED8: .word 0x00000688 thumb_func_start FUN_0202BEDC FUN_0202BEDC: ; 0x0202BEDC push {r3-r7, lr} add r5, r0, #0x0 ldr r2, _0202BF14 ; =0x00000588 mov r0, #0x0 add r1, r5, #0x0 blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 _0202BEF0: add r0, r5, #0x0 bl FUN_02066978 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202BF08 bl ErrorHandling _0202BF08: add r4, r4, #0x1 add r5, #0xec cmp r4, #0x6 blt _0202BEF0 pop {r3-r7, pc} nop _0202BF14: .word 0x00000588 thumb_func_start FUN_0202BF18 FUN_0202BF18: ; 0x0202BF18 push {r4-r7} add r2, r0, #0x0 ldr r3, _0202BF70 ; =0x00000588 mov r0, #0x0 add r5, r2, #0x0 _0202BF22: ldr r4, [r5, r3] cmp r1, r4 beq _0202BF6C add r0, r0, #0x1 add r5, r5, #0x4 cmp r0, #0x14 blt _0202BF22 ldr r1, _0202BF70 ; =0x00000588 mov r0, #0x0 add r4, r2, #0x0 _0202BF36: ldr r3, [r4, r1] cmp r3, #0x0 beq _0202BF6C add r0, r0, #0x1 add r4, r4, #0x4 cmp r0, #0x14 blt _0202BF36 mov r3, #0x0 ldr r4, _0202BF74 ; =0x7FFFFFFF add r5, r3, #0x0 _0202BF4A: ldr r0, _0202BF78 ; =0x000005D8 ldr r1, [r2, r0] add r0, r0, #0x4 ldr r0, [r2, r0] sub r6, r1, r4 mov r12, r0 mov r6, r12 sbc r6, r3 bge _0202BF62 add r4, r1, #0x0 add r3, r0, #0x0 add r7, r5, #0x0 _0202BF62: add r5, r5, #0x1 add r2, #0x8 cmp r5, #0x14 blt _0202BF4A add r0, r7, #0x0 _0202BF6C: pop {r4-r7} bx lr .balign 4 _0202BF70: .word 0x00000588 _0202BF74: .word 0x7FFFFFFF _0202BF78: .word 0x000005D8 thumb_func_start FUN_0202BF7C FUN_0202BF7C: ; 0x0202BF7C add r3, r0, #0x0 add r0, r1, #0x0 mov r1, #0xec mul r1, r2 add r1, r3, r1 ldr r3, _0202BF8C ; =FUN_02069A64 bx r3 nop _0202BF8C: .word FUN_02069A64 thumb_func_start FUN_0202BF90 FUN_0202BF90: ; 0x0202BF90 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202BF18 add r6, r0, #0x0 lsl r0, r6, #0x2 add r1, r5, r0 ldr r0, _0202BFCC ; =0x00000588 str r4, [r1, r0] bl FUN_020126FC lsl r2, r6, #0x3 add r3, r5, r2 ldr r2, _0202BFD0 ; =0x000005D8 str r0, [r3, r2] add r0, r2, #0x4 str r1, [r3, r0] blx OS_GetOwnerRtcOffset ldr r2, _0202BFD4 ; =0x00000678 str r0, [r5, r2] add r0, r2, #0x4 add r2, #0x8 str r1, [r5, r0] add r0, r5, r2 blx OS_GetMacAddress pop {r4-r6, pc} nop _0202BFCC: .word 0x00000588 _0202BFD0: .word 0x000005D8 _0202BFD4: .word 0x00000678 thumb_func_start FUN_0202BFD8 FUN_0202BFD8: ; 0x0202BFD8 push {r4-r6, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r4, r2, #0x0 cmp r5, #0x6 blt _0202BFE8 bl ErrorHandling _0202BFE8: mov r0, #0xec mul r0, r5 add r3, r6, r0 mov r2, #0x1d _0202BFF0: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _0202BFF0 ldr r0, [r3, #0x0] str r0, [r4, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202C000 FUN_0202C000: ; 0x0202C000 push {r3-r7, lr} mov r4, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 mov r7, #0xab _0202C00A: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202C01A add r4, r4, #0x1 _0202C01A: add r6, r6, #0x1 add r5, #0xec cmp r6, #0x6 blt _0202C00A add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202C028 FUN_0202C028: ; 0x0202C028 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020126FC ldr r1, _0202C058 ; =0x00000588 mov r3, #0x0 add r6, r5, #0x0 _0202C038: ldr r2, [r6, r1] cmp r4, r2 bne _0202C04A lsl r1, r3, #0x3 add r2, r5, r1 ldr r1, _0202C05C ; =0x000005D8 ldr r1, [r2, r1] sub r0, r0, r1 pop {r4-r6, pc} _0202C04A: add r3, r3, #0x1 add r6, r6, #0x4 cmp r3, #0x14 blt _0202C038 mov r0, #0x0 pop {r4-r6, pc} nop _0202C058: .word 0x00000588 _0202C05C: .word 0x000005D8 thumb_func_start FUN_0202C060 FUN_0202C060: ; 0x0202C060 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 blx OS_GetMacAddress mov r0, #0x1a mov r3, #0x0 add r5, sp, #0x0 lsl r0, r0, #0x6 _0202C074: add r1, r4, r3 ldrb r2, [r5, #0x0] ldrb r1, [r1, r0] cmp r2, r1 beq _0202C084 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202C084: add r3, r3, #0x1 add r5, r5, #0x1 cmp r3, #0x6 blt _0202C074 mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202C094 FUN_0202C094: ; 0x0202C094 push {r4, lr} add r4, r0, #0x0 blx OS_GetOwnerRtcOffset ldr r2, _0202C0B4 ; =0x00000678 ldr r3, [r4, r2] add r2, r2, #0x4 ldr r2, [r4, r2] eor r0, r3 eor r1, r2 orr r0, r1 bne _0202C0B0 mov r0, #0x1 pop {r4, pc} _0202C0B0: mov r0, #0x0 pop {r4, pc} .balign 4 _0202C0B4: .word 0x00000678 thumb_func_start FUN_0202C0B8 FUN_0202C0B8: ; 0x0202C0B8 push {r3-r4} mov r4, #0x0 mov r1, #0x1a add r3, r4, #0x0 lsl r1, r1, #0x6 _0202C0C2: add r2, r0, r3 ldrb r2, [r2, r1] add r3, r3, #0x1 orr r4, r2 cmp r3, #0x6 blt _0202C0C2 cmp r4, #0x0 bne _0202C0D8 mov r0, #0x1 pop {r3-r4} bx lr _0202C0D8: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202C0E0 FUN_0202C0E0: ; 0x0202C0E0 mov r0, #0x28 bx lr thumb_func_start FUN_0202C0E4 FUN_0202C0E4: ; 0x0202C0E4 push {r4-r5} mov r4, #0x0 add r1, r4, #0x0 add r2, r4, #0x0 _0202C0EC: add r3, r2, #0x0 add r5, r0, #0x0 _0202C0F0: add r3, r3, #0x1 strh r1, [r5, #0x0] add r5, r5, #0x2 cmp r3, #0x4 blt _0202C0F0 add r4, r4, #0x1 add r0, #0x8 cmp r4, #0x5 blt _0202C0EC pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0202C108 FUN_0202C108: ; 0x0202C108 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x21 add r4, r2, #0x0 bl FUN_02022610 lsl r1, r5, #0x3 add r3, r0, r1 lsl r2, r4, #0x1 ldrh r1, [r3, r2] ldr r0, _0202C128 ; =0x0000270F cmp r1, r0 bhs _0202C126 add r0, r1, #0x1 strh r0, [r3, r2] _0202C126: pop {r3-r5, pc} .balign 4 _0202C128: .word 0x0000270F thumb_func_start FUN_0202C12C FUN_0202C12C: ; 0x0202C12C push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x21 add r4, r2, #0x0 bl FUN_02022610 lsl r2, r5, #0x3 lsl r1, r4, #0x1 add r0, r0, r2 ldrh r0, [r1, r0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202C144 FUN_0202C144: ; 0x0202C144 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0202C194 add r0, r5, #0x0 bl FUN_02024DA0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02029FC8 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 lsl r2, r2, #0x10 add r0, r7, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 bl FUN_0202A1C4 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02024AF0 add r0, r5, #0x0 bl FUN_0204C1A8 add r1, r4, #0x0 bl FUN_0204C104 _0202C194: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202C198 FUN_0202C198: ; 0x0202C198 ldr r1, _0202C1A4 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202C1A8 ; =0x00001310 str r0, [r2, r1] bx lr nop _0202C1A4: .word 0x021C59D8 _0202C1A8: .word 0x00001310 thumb_func_start FUN_0202C1AC FUN_0202C1AC: ; 0x0202C1AC ldr r1, _0202C1C0 ; =0x021C59D8 ldr r3, [r1, #0x4] ldr r1, _0202C1C4 ; =0x00001310 ldr r2, [r3, r1] sub r2, #0x9 cmp r2, #0x1 bls _0202C1BE add r1, #0x20 str r0, [r3, r1] _0202C1BE: bx lr .balign 4 _0202C1C0: .word 0x021C59D8 _0202C1C4: .word 0x00001310 thumb_func_start FUN_0202C1C8 FUN_0202C1C8: ; 0x0202C1C8 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r1, _0202C1F0 ; =0x021C59D8 ldr r0, _0202C1F4 ; =FUN_0202C1F8 ldr r1, [r1, #0x4] blx WM_SetParentParameter cmp r0, #0x2 beq _0202C1EC bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202C1EC: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C1F0: .word 0x021C59D8 _0202C1F4: .word FUN_0202C1F8 thumb_func_start FUN_0202C1F8 FUN_0202C1F8: ; 0x0202C1F8 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C20C bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C20C: bl FUN_0202C21C cmp r0, #0x0 bne _0202C21A mov r0, #0x9 bl FUN_0202C198 _0202C21A: pop {r3, pc} thumb_func_start FUN_0202C21C FUN_0202C21C: ; 0x0202C21C push {r4, lr} ldr r0, _0202C278 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C27C ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C230 mov r0, #0x1 pop {r4, pc} _0202C230: blx WMi_GetStatusAddress add r4, r0, #0x0 mov r0, #0x66 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x4 blx DC_InvalidateRange mov r0, #0x66 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, r0 mov r1, #0x4 blx DC_FlushRange ldr r0, _0202C280 ; =FUN_0202C288 blx WM_StartParent cmp r0, #0x2 beq _0202C264 bl FUN_0202C1AC mov r0, #0x0 pop {r4, pc} _0202C264: ldr r2, _0202C278 ; =0x021C59D8 ldr r1, _0202C284 ; =0x0000132C ldr r0, [r2, #0x4] mov r3, #0x0 strh r3, [r0, r1] ldr r2, [r2, #0x4] mov r0, #0x1 add r1, r1, #0x2 strh r0, [r2, r1] pop {r4, pc} .balign 4 _0202C278: .word 0x021C59D8 _0202C27C: .word 0x00001310 _0202C280: .word FUN_0202C288 _0202C284: .word 0x0000132C thumb_func_start FUN_0202C288 FUN_0202C288: ; 0x0202C288 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x10] mov r1, #0x1 lsl r1, r0 lsl r0, r1, #0x10 lsr r4, r0, #0x10 ldrh r0, [r5, #0x2] cmp r0, #0x0 beq _0202C2A8 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4-r6, pc} _0202C2A8: ldrh r0, [r5, #0x8] cmp r0, #0x7 bgt _0202C2C0 bge _0202C2DA cmp r0, #0x2 bgt _0202C378 cmp r0, #0x0 blt _0202C378 beq _0202C36A cmp r0, #0x2 beq _0202C2CC pop {r4-r6, pc} _0202C2C0: cmp r0, #0x9 bgt _0202C2C8 beq _0202C34C pop {r4-r6, pc} _0202C2C8: cmp r0, #0x1a pop {r4-r6, pc} _0202C2CC: ldr r0, _0202C37C ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C380 ; =0x00001345 ldrb r1, [r2, r0] add r1, r1, #0x1 strb r1, [r2, r0] pop {r4-r6, pc} _0202C2DA: ldr r0, _0202C37C ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C384 ; =0x00001343 ldrb r1, [r2, r0] cmp r1, #0x1 beq _0202C318 sub r0, r0, #0x1 ldrb r0, [r2, r0] cmp r0, #0x1 beq _0202C318 bl FUN_0202CBA0 ldr r1, _0202C37C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202C388 ; =0x00001334 ldrb r1, [r2, r1] cmp r0, r1 bge _0202C318 bl FUN_02033534 ldrb r1, [r5, #0x14] cmp r1, r0 bne _0202C318 add r1, r5, #0x0 ldr r0, _0202C38C ; =0x02105D54 add r1, #0x15 mov r2, #0x3 blx memcmp cmp r0, #0x0 beq _0202C330 _0202C318: ldrh r1, [r5, #0x10] mov r0, #0x0 blx WM_Disconnect cmp r0, #0x2 beq _0202C378 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4-r6, pc} _0202C330: ldr r1, _0202C37C ; =0x021C59D8 ldr r0, _0202C390 ; =0x0000132E ldr r3, [r1, #0x4] ldrh r2, [r3, r0] orr r2, r4 strh r2, [r3, r0] ldr r1, [r1, #0x4] sub r0, r0, #0x6 ldr r1, [r1, r0] cmp r1, #0x0 beq _0202C378 ldrh r0, [r5, #0x10] blx r1 pop {r4-r6, pc} _0202C34C: ldr r2, _0202C37C ; =0x021C59D8 ldr r1, _0202C390 ; =0x0000132E ldr r0, [r2, #0x4] mvn r3, r4 ldrh r6, [r0, r1] and r3, r6 strh r3, [r0, r1] ldr r0, [r2, #0x4] sub r1, #0xa ldr r1, [r0, r1] cmp r1, #0x0 beq _0202C378 ldrh r0, [r5, #0x10] blx r1 pop {r4-r6, pc} _0202C36A: bl FUN_0202C394 cmp r0, #0x0 bne _0202C378 mov r0, #0x9 bl FUN_0202C198 _0202C378: pop {r4-r6, pc} nop _0202C37C: .word 0x021C59D8 _0202C380: .word 0x00001345 _0202C384: .word 0x00001343 _0202C388: .word 0x00001334 _0202C38C: .word 0x02105D54 _0202C390: .word 0x0000132E thumb_func_start FUN_0202C394 FUN_0202C394: ; 0x0202C394 push {r4, lr} sub sp, #0x8 ldr r0, _0202C3F0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C3F4 ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C3AC add sp, #0x8 mov r0, #0x1 pop {r4, pc} _0202C3AC: mov r0, #0x4 bl FUN_0202C198 ldr r0, _0202C3F0 ; =0x021C59D8 ldr r2, _0202C3F8 ; =0x00001304 ldr r4, [r0, #0x4] ldr r3, _0202C3FC ; =0x00001020 ldr r0, [r4, r2] add r2, r2, #0x4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [r4, r2] add r1, r4, r3 lsl r2, r2, #0x10 sub r3, #0xe0 ldr r0, _0202C400 ; =FUN_0202C404 lsr r2, r2, #0x10 add r3, r4, r3 blx WM_StartMP cmp r0, #0x2 beq _0202C3E8 bl FUN_0202C1AC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0202C3E8: mov r0, #0x1 add sp, #0x8 pop {r4, pc} nop _0202C3F0: .word 0x021C59D8 _0202C3F4: .word 0x00001310 _0202C3F8: .word 0x00001304 _0202C3FC: .word 0x00001020 _0202C400: .word FUN_0202C404 thumb_func_start FUN_0202C404 FUN_0202C404: ; 0x0202C404 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202C41A add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C41A: ldrh r0, [r0, #0x4] sub r0, #0xa cmp r0, #0x3 bhi _0202C454 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202C42E: ; jump table (using 16-bit offset) .short _0202C436 - _0202C42E - 2; case 0 .short _0202C454 - _0202C42E - 2; case 1 .short _0202C454 - _0202C42E - 2; case 2 .short _0202C454 - _0202C42E - 2; case 3 _0202C436: ldr r0, _0202C458 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C45C ; =0x00001314 ldr r1, [r2, r0] cmp r1, #0x2 bne _0202C44E sub r0, r0, #0x4 ldr r0, [r2, r0] cmp r0, #0x4 beq _0202C44E cmp r0, #0x6 beq _0202C454 _0202C44E: mov r0, #0x4 bl FUN_0202C198 _0202C454: pop {r3, pc} nop _0202C458: .word 0x021C59D8 _0202C45C: .word 0x00001314 thumb_func_start FUN_0202C460 FUN_0202C460: ; 0x0202C460 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202C480 ; =FUN_0202C484 blx WM_EndMP cmp r0, #0x2 beq _0202C47A bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C47A: mov r0, #0x1 pop {r3, pc} nop _0202C480: .word FUN_0202C484 thumb_func_start FUN_0202C484 FUN_0202C484: ; 0x0202C484 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C496 bl FUN_0202C1AC bl FUN_0202D0D8 pop {r3, pc} _0202C496: bl FUN_0202C4A4 cmp r0, #0x0 bne _0202C4A2 bl FUN_0202D0D8 _0202C4A2: pop {r3, pc} thumb_func_start FUN_0202C4A4 FUN_0202C4A4: ; 0x0202C4A4 push {r3, lr} ldr r0, _0202C4BC ; =FUN_0202C4C0 blx WM_EndParent cmp r0, #0x2 beq _0202C4B8 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C4B8: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C4BC: .word FUN_0202C4C0 thumb_func_start FUN_0202C4C0 FUN_0202C4C0: ; 0x0202C4C0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C4CE bl FUN_0202C1AC pop {r3, pc} _0202C4CE: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} .balign 4 thumb_func_start FUN_0202C4D8 FUN_0202C4D8: ; 0x0202C4D8 push {r3-r7, lr} add r6, r2, #0x0 ldr r2, _0202C564 ; =0x021C59D8 add r5, r0, #0x0 add r4, r1, #0x0 mov r3, #0x2 ldr r0, [r2, #0x4] ldr r1, _0202C568 ; =0x00001308 lsl r3, r3, #0x8 str r3, [r0, r1] ldr r2, [r2, #0x4] mov r0, #0x40 sub r1, r1, #0x4 str r0, [r2, r1] mov r0, #0x2 bl FUN_0202C198 ldr r1, _0202C564 ; =0x021C59D8 ldr r0, _0202C56C ; =0x00001256 ldr r3, [r1, #0x4] mov r2, #0x1 strh r2, [r3, r0] add r7, r0, #0x0 ldrh r3, [r4, #0x4] ldr r2, [r1, #0x4] add r7, #0x96 strh r3, [r2, r7] add r7, r0, #0x0 ldrh r3, [r4, #0x2] ldr r2, [r1, #0x4] add r7, #0x94 strh r3, [r2, r7] add r2, r0, #0x0 ldrh r4, [r4, #0x0] ldr r3, [r1, #0x4] add r2, #0x92 strh r4, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] add r2, #0xbe str r5, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] mov r2, #0x0 add r3, #0xaa str r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0xb6 strh r6, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x8e strh r2, [r4, r3] ldr r2, [r1, #0x4] add r0, #0xb8 mov r1, #0x1 strh r1, [r2, r0] bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C55E mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3-r7, pc} _0202C55E: mov r0, #0x1 pop {r3-r7, pc} nop _0202C564: .word 0x021C59D8 _0202C568: .word 0x00001308 _0202C56C: .word 0x00001256 thumb_func_start FUN_0202C570 FUN_0202C570: ; 0x0202C570 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0202C198 ldr r1, _0202C5D4 ; =0x021C59D8 mov r0, #0x13 ldr r2, [r1, #0x4] lsl r0, r0, #0x8 str r5, [r2, r0] add r2, r0, #0x0 ldr r3, [r1, #0x4] add r2, #0xc strh r6, [r3, r2] add r3, r0, #0x0 ldr r5, [r1, #0x4] mov r2, #0x0 sub r3, #0x1c strh r2, [r5, r3] add r3, r0, #0x0 ldr r5, [r1, #0x4] add r3, #0xe strh r2, [r5, r3] add r2, r0, #0x0 ldrh r5, [r4, #0x4] ldr r3, [r1, #0x4] sub r2, #0x14 strh r5, [r3, r2] add r2, r0, #0x0 ldrh r5, [r4, #0x2] ldr r3, [r1, #0x4] sub r2, #0x16 strh r5, [r3, r2] ldrh r2, [r4, #0x0] ldr r1, [r1, #0x4] sub r0, #0x18 strh r2, [r1, r0] bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C5D0 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r4-r6, pc} _0202C5D0: mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0202C5D4: .word 0x021C59D8 thumb_func_start FUN_0202C5D8 FUN_0202C5D8: ; 0x0202C5D8 push {r3-r7, lr} blx WM_GetAllowedChannel add r5, r0, #0x0 mov r0, #0x2 lsl r0, r0, #0xe cmp r5, r0 bne _0202C5F8 mov r0, #0x3 bl FUN_0202C1AC mov r0, #0x1 bl FUN_020336A0 mov r0, #0x0 pop {r3-r7, pc} _0202C5F8: cmp r5, #0x0 bne _0202C60C mov r0, #0x16 bl FUN_0202C1AC mov r0, #0x1 bl FUN_020336A0 mov r0, #0x0 pop {r3-r7, pc} _0202C60C: ldr r1, _0202C684 ; =0x021C59D8 ldr r0, _0202C688 ; =0x0000130C ldr r3, [r1, #0x4] ldrh r2, [r3, r0] cmp r2, #0x0 bne _0202C64C add r7, r0, #0x0 mov r3, #0x1 add r2, r3, #0x0 sub r7, #0x28 sub r0, #0x28 _0202C622: ldr r4, [r1, #0x4] ldr r6, _0202C68C ; =0x000012E4 ldrh r6, [r4, r6] add r6, r6, #0x1 strh r6, [r4, r7] ldr r4, [r1, #0x4] ldrh r6, [r4, r0] cmp r6, #0x10 bls _0202C638 ldr r6, _0202C68C ; =0x000012E4 strh r3, [r4, r6] _0202C638: ldr r6, [r1, #0x4] ldr r4, _0202C68C ; =0x000012E4 ldrh r4, [r6, r4] add r6, r2, #0x0 sub r4, r4, #0x1 lsl r6, r4 add r4, r5, #0x0 tst r4, r6 bne _0202C650 b _0202C622 _0202C64C: sub r0, #0x28 strh r2, [r3, r0] _0202C650: blx WM_GetDispersionScanPeriod ldr r2, _0202C684 ; =0x021C59D8 ldr r1, _0202C690 ; =0x000012E6 ldr r3, [r2, #0x4] strh r0, [r3, r1] add r0, r1, #0x0 ldr r3, [r2, #0x4] sub r0, #0xc6 add r4, r3, r0 sub r0, r1, #0x6 str r4, [r3, r0] ldr r2, [r2, #0x4] sub r1, r1, #0x6 ldr r0, _0202C694 ; =FUN_0202C698 add r1, r2, r1 blx WM_StartScan cmp r0, #0x2 beq _0202C680 bl FUN_0202C1AC mov r0, #0x0 pop {r3-r7, pc} _0202C680: mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0202C684: .word 0x021C59D8 _0202C688: .word 0x0000130C _0202C68C: .word 0x000012E4 _0202C690: .word 0x000012E6 _0202C694: .word FUN_0202C698 thumb_func_start FUN_0202C698 FUN_0202C698: ; 0x0202C698 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202C6AE bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C6AE: ldr r0, _0202C760 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C764 ; =0x00001310 ldr r1, [r2, r0] cmp r1, #0x2 beq _0202C6D0 mov r1, #0x0 sub r0, r0, #0x2 strh r1, [r2, r0] bl FUN_0202C794 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C6D0: ldrh r1, [r4, #0x8] cmp r1, #0x3 beq _0202C75C cmp r1, #0x4 beq _0202C74E cmp r1, #0x5 bne _0202C74E sub r0, #0xf0 add r0, r2, r0 mov r1, #0xc0 blx DC_InvalidateRange ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C768 ; =0x00001320 ldr r2, [r1, r0] cmp r2, #0x0 beq _0202C704 ldrh r0, [r4, #0x36] cmp r0, #0x8 blo _0202C704 add r1, r4, #0x0 add r1, #0x48 ldrb r1, [r1, #0x4] ldr r0, [r4, #0x3c] blx r2 _0202C704: ldrh r0, [r4, #0x36] cmp r0, #0x8 blo _0202C74E ldr r0, _0202C760 ; =0x021C59D8 ldr r2, [r4, #0x3c] ldr r0, [r0, #0x4] ldr r1, [r0, #0x8] cmp r2, r1 bne _0202C74E add r4, #0x43 ldrb r2, [r4, #0x0] mov r1, #0x3 and r1, r2 cmp r1, #0x1 bne _0202C74E mov r1, #0x13 lsl r1, r1, #0x8 ldr r2, [r0, r1] cmp r2, #0x0 beq _0202C732 sub r1, #0xe0 add r0, r0, r1 blx r2 _0202C732: ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C76C ; =0x0000130E ldrh r0, [r1, r0] cmp r0, #0x0 beq _0202C74E bl FUN_0202C794 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C74E: bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 _0202C75C: pop {r4, pc} nop _0202C760: .word 0x021C59D8 _0202C764: .word 0x00001310 _0202C768: .word 0x00001320 _0202C76C: .word 0x0000130E thumb_func_start FUN_0202C770 FUN_0202C770: ; 0x0202C770 push {r3, lr} ldr r0, _0202C78C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C790 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 beq _0202C782 mov r0, #0x0 pop {r3, pc} _0202C782: mov r0, #0x3 bl FUN_0202C198 mov r0, #0x1 pop {r3, pc} .balign 4 _0202C78C: .word 0x021C59D8 _0202C790: .word 0x00001310 thumb_func_start FUN_0202C794 FUN_0202C794: ; 0x0202C794 push {r3, lr} ldr r0, _0202C7AC ; =FUN_0202C7B0 blx WM_EndScan cmp r0, #0x2 beq _0202C7A8 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C7A8: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C7AC: .word FUN_0202C7B0 thumb_func_start FUN_0202C7B0 FUN_0202C7B0: ; 0x0202C7B0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C7BE bl FUN_0202C1AC pop {r3, pc} _0202C7BE: mov r0, #0x1 bl FUN_0202C198 ldr r0, _0202C7E0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C7E4 ; =0x0000130E ldrh r0, [r1, r0] cmp r0, #0x0 beq _0202C7DE bl FUN_0202C7E8 cmp r0, #0x0 bne _0202C7DE mov r0, #0x9 bl FUN_0202C198 _0202C7DE: pop {r3, pc} .balign 4 _0202C7E0: .word 0x021C59D8 _0202C7E4: .word 0x0000130E thumb_func_start FUN_0202C7E8 FUN_0202C7E8: ; 0x0202C7E8 push {lr} sub sp, #0x24 ldr r0, _0202C844 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C848 ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C800 add sp, #0x24 mov r0, #0x1 pop {pc} _0202C800: mov r0, #0x3 bl FUN_0202C198 add r1, sp, #0x4 ldr r0, _0202C84C ; =0x02105D54 add r1, #0x1 mov r2, #0x3 blx MI_CpuCopy8 bl FUN_02033534 add r1, sp, #0x4 strb r0, [r1, #0x0] mov r0, #0x0 str r0, [sp, #0x0] ldr r1, _0202C844 ; =0x021C59D8 ldr r0, _0202C850 ; =FUN_0202C858 ldr r2, [r1, #0x4] ldr r1, _0202C854 ; =0x00001220 mov r3, #0x1 add r1, r2, r1 add r2, sp, #0x4 blx WM_StartConnectEx cmp r0, #0x2 beq _0202C83E bl FUN_0202C1AC add sp, #0x24 mov r0, #0x0 pop {pc} _0202C83E: mov r0, #0x1 add sp, #0x24 pop {pc} .balign 4 _0202C844: .word 0x021C59D8 _0202C848: .word 0x00001310 _0202C84C: .word 0x02105D54 _0202C850: .word FUN_0202C858 _0202C854: .word 0x00001220 thumb_func_start FUN_0202C858 FUN_0202C858: ; 0x0202C858 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202C894 bl FUN_0202C1AC ldrh r0, [r4, #0x2] cmp r0, #0xc bne _0202C874 mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C874: cmp r0, #0xb bne _0202C880 mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C880: cmp r0, #0x1 bne _0202C88C mov r0, #0x8 bl FUN_0202C198 pop {r4, pc} _0202C88C: mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C894: ldrh r0, [r4, #0x8] cmp r0, #0x8 beq _0202C8FA cmp r0, #0x7 bne _0202C8DA ldr r0, _0202C8FC ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C900 ; =0x00001335 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202C8B8 mov r0, #0x14 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C8B8: mov r0, #0x4 bl FUN_0202C198 bl FUN_0202C908 cmp r0, #0x0 bne _0202C8CE mov r0, #0x3 bl FUN_0202C198 pop {r4, pc} _0202C8CE: ldr r0, _0202C8FC ; =0x021C59D8 ldrh r2, [r4, #0xa] ldr r1, [r0, #0x4] ldr r0, _0202C904 ; =0x0000132C strh r2, [r1, r0] pop {r4, pc} _0202C8DA: cmp r0, #0x6 beq _0202C8FA cmp r0, #0x9 bne _0202C8F0 mov r0, #0x14 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C8F0: cmp r0, #0x1a beq _0202C8FA mov r0, #0x9 bl FUN_0202C198 _0202C8FA: pop {r4, pc} .balign 4 _0202C8FC: .word 0x021C59D8 _0202C900: .word 0x00001335 _0202C904: .word 0x0000132C thumb_func_start FUN_0202C908 FUN_0202C908: ; 0x0202C908 push {r4, lr} sub sp, #0x8 ldr r0, _0202C948 ; =0x021C59D8 ldr r2, _0202C94C ; =0x00001304 ldr r4, [r0, #0x4] ldr r3, _0202C950 ; =0x00001020 ldr r0, [r4, r2] add r1, r4, r3 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r2, r2, #0x4 ldr r2, [r4, r2] sub r3, #0xe0 lsl r2, r2, #0x10 ldr r0, _0202C954 ; =FUN_0202C958 lsr r2, r2, #0x10 add r3, r4, r3 blx WM_StartMP cmp r0, #0x2 beq _0202C942 bl FUN_0202C1AC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0202C942: mov r0, #0x1 add sp, #0x8 pop {r4, pc} .balign 4 _0202C948: .word 0x021C59D8 _0202C94C: .word 0x00001304 _0202C950: .word 0x00001020 _0202C954: .word FUN_0202C958 thumb_func_start FUN_0202C958 FUN_0202C958: ; 0x0202C958 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202C97A cmp r1, #0xf beq _0202C9B0 cmp r1, #0x9 beq _0202C9B0 cmp r1, #0xd beq _0202C9B0 add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C97A: ldrh r0, [r0, #0x4] sub r0, #0xa cmp r0, #0x3 bhi _0202C9B0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202C98E: ; jump table (using 16-bit offset) .short _0202C996 - _0202C98E - 2; case 0 .short _0202C9B0 - _0202C98E - 2; case 1 .short _0202C9B0 - _0202C98E - 2; case 2 .short _0202C9B0 - _0202C98E - 2; case 3 _0202C996: ldr r0, _0202C9B4 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C9B8 ; =0x00001314 ldr r1, [r2, r0] cmp r1, #0x3 bne _0202C9AA sub r0, r0, #0x4 ldr r0, [r2, r0] cmp r0, #0x6 beq _0202C9B0 _0202C9AA: mov r0, #0x4 bl FUN_0202C198 _0202C9B0: pop {r3, pc} nop _0202C9B4: .word 0x021C59D8 _0202C9B8: .word 0x00001314 thumb_func_start FUN_0202C9BC FUN_0202C9BC: ; 0x0202C9BC push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202C9DC ; =FUN_0202C9E0 blx WM_EndMP cmp r0, #0x2 beq _0202C9D6 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C9D6: mov r0, #0x1 pop {r3, pc} nop _0202C9DC: .word FUN_0202C9E0 thumb_func_start FUN_0202C9E0 FUN_0202C9E0: ; 0x0202C9E0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C9F2 bl FUN_0202C1AC bl FUN_0202D100 pop {r3, pc} _0202C9F2: bl FUN_0202CA04 cmp r0, #0x0 bne _0202CA00 mov r0, #0x9 bl FUN_0202C198 _0202CA00: pop {r3, pc} .balign 4 thumb_func_start FUN_0202CA04 FUN_0202CA04: ; 0x0202CA04 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CA28 ; =FUN_0202CA2C mov r1, #0x0 blx WM_Disconnect cmp r0, #0x2 beq _0202CA24 bl FUN_0202C1AC bl FUN_0202D0D8 mov r0, #0x0 pop {r3, pc} _0202CA24: mov r0, #0x1 pop {r3, pc} .balign 4 _0202CA28: .word FUN_0202CA2C thumb_func_start FUN_0202CA2C FUN_0202CA2C: ; 0x0202CA2C push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CA3A bl FUN_0202C1AC pop {r3, pc} _0202CA3A: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} .balign 4 thumb_func_start FUN_0202CA44 FUN_0202CA44: ; 0x0202CA44 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CA64 ; =FUN_0202CA68 blx WM_Reset cmp r0, #0x2 beq _0202CA5E bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202CA5E: mov r0, #0x1 pop {r3, pc} nop _0202CA64: .word FUN_0202CA68 thumb_func_start FUN_0202CA68 FUN_0202CA68: ; 0x0202CA68 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202CA80 mov r0, #0x9 bl FUN_0202C198 ldrh r0, [r4, #0x2] bl FUN_0202C1AC pop {r4, pc} _0202CA80: mov r0, #0x1 bl FUN_0202C198 pop {r4, pc} thumb_func_start FUN_0202CA88 FUN_0202CA88: ; 0x0202CA88 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, _0202CAD0 ; =0x021C59D8 add r6, r1, #0x0 add r4, r2, #0x0 ldr r1, [r0, #0x4] mov r0, #0x3d lsl r0, r0, #0x6 ldr r2, _0202CAD4 ; =0x00001304 add r0, r1, r0 ldr r1, [r1, r2] add r7, r3, #0x0 blx DC_FlushRange ldr r0, _0202CAD8 ; =0x0000FFFF add r1, r7, #0x0 str r0, [sp, #0x0] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] ldr r0, _0202CADC ; =FUN_0202CAE0 add r2, r5, #0x0 add r3, r6, #0x0 blx WM_SetMPDataToPortEx cmp r0, #0x2 bne _0202CACA add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202CACA: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0202CAD0: .word 0x021C59D8 _0202CAD4: .word 0x00001304 _0202CAD8: .word 0x0000FFFF _0202CADC: .word FUN_0202CAE0 thumb_func_start FUN_0202CAE0 FUN_0202CAE0: ; 0x0202CAE0 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202CAF4 cmp r1, #0xf beq _0202CAF4 add r0, r1, #0x0 bl FUN_0202C1AC pop {r3, pc} _0202CAF4: ldr r2, [r0, #0x20] cmp r2, #0x0 beq _0202CB06 cmp r1, #0x0 bne _0202CB02 mov r0, #0x1 b _0202CB04 _0202CB02: mov r0, #0x0 _0202CB04: blx r2 _0202CB06: pop {r3, pc} thumb_func_start FUN_0202CB08 FUN_0202CB08: ; 0x0202CB08 push {r3, lr} add r2, r0, #0x0 ldrh r0, [r2, #0x2] cmp r0, #0x0 beq _0202CB18 bl FUN_0202C1AC pop {r3, pc} _0202CB18: ldr r0, _0202CB48 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CB4C ; =0x00001318 ldr r3, [r1, r0] cmp r3, #0x0 beq _0202CB44 ldrh r0, [r2, #0x4] cmp r0, #0x19 beq _0202CB44 cmp r0, #0x15 bne _0202CB38 ldrh r0, [r2, #0x12] ldr r1, [r2, #0xc] ldrh r2, [r2, #0x10] blx r3 pop {r3, pc} _0202CB38: cmp r0, #0x9 bne _0202CB44 ldrh r0, [r2, #0x12] mov r1, #0x0 add r2, r1, #0x0 blx r3 _0202CB44: pop {r3, pc} nop _0202CB48: .word 0x021C59D8 _0202CB4C: .word 0x00001318 thumb_func_start FUN_0202CB50 FUN_0202CB50: ; 0x0202CB50 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CB60 mov r0, #0xa bl FUN_0202C198 pop {r3, pc} _0202CB60: mov r0, #0x0 add r1, r0, #0x0 blx FUN_02090CC8 mov r0, #0x0 bl FUN_0202C198 pop {r3, pc} thumb_func_start FUN_0202CB70 FUN_0202CB70: ; 0x0202CB70 ldr r1, _0202CB78 ; =0x021C59D8 ldr r1, [r1, #0x4] str r0, [r1, #0x8] bx lr .balign 4 _0202CB78: .word 0x021C59D8 thumb_func_start FUN_0202CB7C FUN_0202CB7C: ; 0x0202CB7C ldr r2, _0202CB88 ; =0x021C59D8 ldr r3, [r2, #0x4] str r0, [r3, #0x0] ldr r0, [r2, #0x4] strh r1, [r0, #0x4] bx lr .balign 4 _0202CB88: .word 0x021C59D8 thumb_func_start FUN_0202CB8C FUN_0202CB8C: ; 0x0202CB8C ldr r0, _0202CB98 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CB9C ; =0x0000132E ldrh r0, [r1, r0] bx lr nop _0202CB98: .word 0x021C59D8 _0202CB9C: .word 0x0000132E thumb_func_start FUN_0202CBA0 FUN_0202CBA0: ; 0x0202CBA0 push {r3-r4} ldr r0, _0202CBCC ; =0x021C59D8 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202CBD0 ; =0x0000132E add r3, r2, #0x0 ldrh r4, [r1, r0] mov r1, #0x1 _0202CBB0: add r0, r4, #0x0 tst r0, r1 beq _0202CBB8 add r2, r2, #0x1 _0202CBB8: lsl r0, r4, #0xf add r3, r3, #0x1 lsr r4, r0, #0x10 cmp r3, #0x10 blt _0202CBB0 lsl r0, r2, #0x10 lsr r0, r0, #0x10 pop {r3-r4} bx lr nop _0202CBCC: .word 0x021C59D8 _0202CBD0: .word 0x0000132E thumb_func_start FUN_0202CBD4 FUN_0202CBD4: ; 0x0202CBD4 ldr r0, _0202CBE0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CBE4 ; =0x00001310 ldr r0, [r1, r0] bx lr nop _0202CBE0: .word 0x021C59D8 _0202CBE4: .word 0x00001310 thumb_func_start FUN_0202CBE8 FUN_0202CBE8: ; 0x0202CBE8 ldr r0, _0202CBF4 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CBF8 ; =0x00001330 ldr r0, [r1, r0] bx lr nop _0202CBF4: .word 0x021C59D8 _0202CBF8: .word 0x00001330 thumb_func_start FUN_0202CBFC FUN_0202CBFC: ; 0x0202CBFC push {r3-r5, lr} sub sp, #0x8 add r0, sp, #0x0 blx OS_GetMacAddress ldr r0, _0202CC84 ; =0x027FFC3C ldr r3, [r0, #0x0] add r0, sp, #0x0 ldrh r2, [r0, #0x4] ldrh r1, [r0, #0x2] ldrh r0, [r0, #0x0] add r0, r0, r3 add r0, r1, r0 add r1, r2, r0 ldr r3, _0202CC88 ; =0x021C59D8 ldr r2, _0202CC8C ; =0x00001338 ldr r0, [r3, #0x4] str r1, [r0, r2] ldr r0, [r3, #0x4] ldr r1, _0202CC90 ; =0x00010DCD ldr r4, [r0, r2] add r5, r4, #0x0 mul r5, r1 ldr r1, _0202CC94 ; =0x00003039 mov r4, #0x0 add r1, r5, r1 str r1, [r0, r2] ldr r1, [r3, #0x4] add r0, r2, #0x4 strh r4, [r1, r0] ldr r1, [r3, #0x4] mov r4, #0x65 add r0, r2, #0x6 strh r4, [r1, r0] mov r0, #0x3 bl FUN_0202C198 mov r0, #0x1 bl FUN_0202CC98 cmp r0, #0x18 bne _0202CC68 mov r0, #0x18 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202CC68: cmp r0, #0x2 beq _0202CC7C bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202CC7C: mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _0202CC84: .word 0x027FFC3C _0202CC88: .word 0x021C59D8 _0202CC8C: .word 0x00001338 _0202CC90: .word 0x00010DCD _0202CC94: .word 0x00003039 thumb_func_start FUN_0202CC98 FUN_0202CC98: ; 0x0202CC98 push {r4, lr} add r4, r0, #0x0 blx WM_GetAllowedChannel mov r1, #0x2 lsl r1, r1, #0xe cmp r0, r1 bne _0202CCBE mov r0, #0x3 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 mov r0, #0x3 pop {r4, pc} _0202CCBE: cmp r0, #0x0 bne _0202CCD8 mov r0, #0x16 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 mov r0, #0x18 pop {r4, pc} _0202CCD8: mov r2, #0x1 sub r1, r4, #0x1 lsl r2, r1 add r1, r2, #0x0 tst r1, r0 bne _0202CD00 mov r2, #0x1 _0202CCE6: add r1, r4, #0x1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r4, #0x10 bls _0202CCF4 mov r0, #0x18 pop {r4, pc} _0202CCF4: sub r1, r4, #0x1 add r3, r2, #0x0 lsl r3, r1 add r1, r3, #0x0 tst r1, r0 beq _0202CCE6 _0202CD00: ldr r0, _0202CD10 ; =FUN_0202CD14 add r1, r4, #0x0 bl FUN_0202CD90 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4, pc} nop _0202CD10: .word FUN_0202CD14 thumb_func_start FUN_0202CD14 FUN_0202CD14: ; 0x0202CD14 push {r3-r5, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202CD30 add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3-r5, pc} _0202CD30: ldr r2, _0202CD88 ; =0x021C59D8 ldrh r1, [r0, #0x8] ldrh r5, [r0, #0xa] ldr r0, [r2, #0x4] ldr r3, _0202CD8C ; =0x0000133E ldrh r4, [r0, r3] cmp r4, r5 bls _0202CD50 strh r5, [r0, r3] mov r4, #0x1 sub r0, r1, #0x1 lsl r4, r0 ldr r2, [r2, #0x4] add r0, r3, #0x2 strh r4, [r2, r0] b _0202CD64 _0202CD50: cmp r4, r5 bne _0202CD64 add r2, r3, #0x2 ldrh r5, [r0, r2] mov r4, #0x1 sub r2, r1, #0x1 lsl r4, r2 orr r4, r5 add r2, r3, #0x2 strh r4, [r0, r2] _0202CD64: add r0, r1, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202CC98 cmp r0, #0x18 bne _0202CD7A mov r0, #0x7 bl FUN_0202C198 pop {r3-r5, pc} _0202CD7A: cmp r0, #0x2 beq _0202CD84 mov r0, #0x9 bl FUN_0202C198 _0202CD84: pop {r3-r5, pc} nop _0202CD88: .word 0x021C59D8 _0202CD8C: .word 0x0000133E thumb_func_start FUN_0202CD90 FUN_0202CD90: ; 0x0202CD90 push {r3, lr} add r3, r1, #0x0 mov r1, #0x1e str r1, [sp, #0x0] mov r1, #0x3 mov r2, #0x11 blx WM_MeasureChannel pop {r3, pc} .balign 4 thumb_func_start FUN_0202CDA4 FUN_0202CDA4: ; 0x0202CDA4 push {r3, lr} mov r0, #0x1 bl FUN_0202C198 ldr r0, _0202CDC8 ; =0x021C59D8 ldr r1, [r0, #0x4] mov r0, #0x4d lsl r0, r0, #0x6 ldrh r0, [r1, r0] bl FUN_0202CDD0 ldr r2, _0202CDC8 ; =0x021C59D8 ldr r1, _0202CDCC ; =0x0000133C ldr r3, [r2, #0x4] strh r0, [r3, r1] ldr r0, [r2, #0x4] ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _0202CDC8: .word 0x021C59D8 _0202CDCC: .word 0x0000133C thumb_func_start FUN_0202CDD0 FUN_0202CDD0: ; 0x0202CDD0 push {r4-r7} add r4, r0, #0x0 mov r0, #0x0 add r3, r0, #0x0 add r2, r0, #0x0 mov r1, #0x1 _0202CDDC: add r5, r1, #0x0 lsl r5, r2 tst r5, r4 beq _0202CDF0 add r0, r2, #0x1 add r3, r3, #0x1 lsl r0, r0, #0x10 lsl r3, r3, #0x10 asr r0, r0, #0x10 lsr r3, r3, #0x10 _0202CDF0: add r2, r2, #0x1 lsl r2, r2, #0x10 asr r2, r2, #0x10 cmp r2, #0x10 blt _0202CDDC cmp r3, #0x1 bls _0202CE4E ldr r5, _0202CE54 ; =0x021C59D8 ldr r2, _0202CE58 ; =0x00001338 ldr r0, [r5, #0x4] ldr r1, _0202CE5C ; =0x00010DCD ldr r6, [r0, r2] add r7, r6, #0x0 mul r7, r1 ldr r1, _0202CE60 ; =0x00003039 add r1, r7, r1 str r1, [r0, r2] ldr r0, [r5, #0x4] mov r1, #0x1 ldr r0, [r0, r2] lsl r0, r0, #0x18 lsr r0, r0, #0x18 mul r0, r3 lsl r0, r0, #0x8 lsr r2, r0, #0x10 mov r3, #0x0 _0202CE24: add r0, r4, #0x0 tst r0, r1 beq _0202CE3E cmp r2, #0x0 bne _0202CE38 add r0, r3, #0x1 lsl r0, r0, #0x10 asr r0, r0, #0x10 pop {r4-r7} bx lr _0202CE38: sub r0, r2, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0202CE3E: lsl r0, r4, #0xf lsr r4, r0, #0x10 add r0, r3, #0x1 lsl r0, r0, #0x10 asr r3, r0, #0x10 cmp r3, #0x10 blt _0202CE24 mov r0, #0x0 _0202CE4E: pop {r4-r7} bx lr nop _0202CE54: .word 0x021C59D8 _0202CE58: .word 0x00001338 _0202CE5C: .word 0x00010DCD _0202CE60: .word 0x00003039 thumb_func_start FUN_0202CE64 FUN_0202CE64: ; 0x0202CE64 push {r3-r5, lr} lsl r1, r0, #0x1b lsr r2, r1, #0x1b beq _0202CE72 mov r1, #0x20 sub r1, r1, r2 add r0, r0, r1 _0202CE72: ldr r2, _0202CEE4 ; =0x021C59D8 ldr r1, _0202CEE8 ; =0x00001308 str r0, [r2, #0x4] mov r3, #0x0 str r3, [r0, r1] ldr r4, [r2, #0x4] sub r0, r1, #0x4 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x10 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x24 strh r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] mov r5, #0x1 add r0, #0x26 strh r5, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x28 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x8 str r3, [r4, r0] ldr r0, [r2, #0x4] mov r5, #0x8 str r3, [r0, #0x0] ldr r0, [r2, #0x4] strh r3, [r0, #0x4] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x14 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x2c strb r5, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x2d strb r3, [r4, r0] ldr r0, [r2, #0x4] add r1, #0x3a strb r3, [r0, r1] bl FUN_0202CF0C cmp r0, #0x0 bne _0202CEE0 mov r0, #0x0 pop {r3-r5, pc} _0202CEE0: mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0202CEE4: .word 0x021C59D8 _0202CEE8: .word 0x00001308 thumb_func_start FUN_0202CEEC FUN_0202CEEC: ; 0x0202CEEC mov r0, #0x4e lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_0202CEF4 FUN_0202CEF4: ; 0x0202CEF4 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x8 bne _0202CF08 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x19 bl FUN_0202C1AC _0202CF08: pop {r3, pc} .balign 4 thumb_func_start FUN_0202CF0C FUN_0202CF0C: ; 0x0202CF0C push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CF38 ; =0x021C59D8 ldr r1, _0202CF3C ; =FUN_0202CF40 ldr r0, [r0, #0x4] mov r2, #0x2 add r0, #0x40 blx WM_Initialize cmp r0, #0x2 beq _0202CF34 bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202CF34: mov r0, #0x1 pop {r3, pc} .balign 4 _0202CF38: .word 0x021C59D8 _0202CF3C: .word FUN_0202CF40 thumb_func_start FUN_0202CF40 FUN_0202CF40: ; 0x0202CF40 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CF5A bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3, pc} _0202CF5A: ldr r0, _0202CF80 ; =FUN_0202CEF4 blx WM_SetIndCallback cmp r0, #0x0 beq _0202CF76 bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3, pc} _0202CF76: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} nop _0202CF80: .word FUN_0202CEF4 thumb_func_start FUN_0202CF84 FUN_0202CF84: ; 0x0202CF84 push {r3-r7, lr} add r6, r1, #0x0 ldr r1, _0202D02C ; =0x021C59D8 add r5, r0, #0x0 add r7, r2, #0x0 mov r0, #0x7 ldr r2, [r1, #0x4] ldr r1, _0202D030 ; =0x00001308 lsl r0, r0, #0x6 str r0, [r2, r1] ldr r0, _0202D02C ; =0x021C59D8 add r4, r3, #0x0 ldr r2, [r0, #0x4] sub r0, r1, #0x4 mov r3, #0xe0 str r3, [r2, r0] ldr r0, _0202D02C ; =0x021C59D8 add r1, #0xc ldr r0, [r0, #0x4] str r5, [r0, r1] mov r0, #0x3 bl FUN_0202C198 ldr r1, _0202D02C ; =0x021C59D8 cmp r5, #0x0 ldr r0, [r1, #0x4] strh r6, [r0, #0xc] ldr r0, [r1, #0x4] strh r7, [r0, #0x32] add r0, sp, #0x8 ldrh r2, [r0, #0x10] ldr r0, [r1, #0x4] strh r2, [r0, #0x18] beq _0202CFCE cmp r5, #0x4 beq _0202CFE8 b _0202CFF4 _0202CFCE: ldr r0, [r1, #0x4] mov r2, #0xc0 strh r2, [r0, #0x34] cmp r4, #0x5 blo _0202CFE0 ldr r0, [r1, #0x4] mov r2, #0xc strh r2, [r0, #0x36] b _0202CFF4 _0202CFE0: ldr r0, [r1, #0x4] mov r2, #0x26 strh r2, [r0, #0x36] b _0202CFF4 _0202CFE8: ldr r0, [r1, #0x4] mov r2, #0x64 strh r2, [r0, #0x34] ldr r0, [r1, #0x4] mov r2, #0xc strh r2, [r0, #0x36] _0202CFF4: ldr r1, _0202D02C ; =0x021C59D8 ldr r0, [r1, #0x4] strh r4, [r0, #0x10] ldr r2, [r1, #0x4] mov r0, #0x0 strh r0, [r2, #0x16] ldr r2, [r1, #0x4] cmp r5, #0x2 strh r0, [r2, #0x12] ldr r2, [sp, #0x1c] ldr r1, [r1, #0x4] strh r2, [r1, #0xe] bne _0202D010 mov r0, #0x1 _0202D010: ldr r1, _0202D02C ; =0x021C59D8 cmp r5, #0x0 ldr r1, [r1, #0x4] strh r0, [r1, #0x14] beq _0202D022 cmp r5, #0x2 beq _0202D022 cmp r5, #0x4 bne _0202D028 _0202D022: bl FUN_0202C1C8 pop {r3-r7, pc} _0202D028: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0202D02C: .word 0x021C59D8 _0202D030: .word 0x00001308 thumb_func_start FUN_0202D034 FUN_0202D034: ; 0x0202D034 push {r4-r6, lr} ldr r2, _0202D094 ; =0x021C59D8 add r5, r0, #0x0 add r4, r1, #0x0 mov r3, #0x2 ldr r0, [r2, #0x4] ldr r1, _0202D098 ; =0x00001308 lsl r3, r3, #0x8 str r3, [r0, r1] sub r0, r1, #0x4 ldr r3, [r2, #0x4] mov r6, #0x40 str r6, [r3, r0] ldr r0, [r2, #0x4] add r1, #0xc str r5, [r0, r1] mov r0, #0x3 bl FUN_0202C198 cmp r5, #0x1 beq _0202D066 cmp r5, #0x3 beq _0202D066 cmp r5, #0x5 bne _0202D08E _0202D066: ldr r1, _0202D094 ; =0x021C59D8 add r0, r4, #0x0 ldr r2, [r1, #0x4] ldr r1, _0202D09C ; =0x00001220 add r1, r2, r1 mov r2, #0xc0 blx MI_CpuCopy8 ldr r0, _0202D094 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D09C ; =0x00001220 add r0, r1, r0 mov r1, #0xc0 blx DC_FlushRange blx DC_WaitWriteBufferEmpty bl FUN_0202C7E8 pop {r4-r6, pc} _0202D08E: mov r0, #0x0 pop {r4-r6, pc} nop _0202D094: .word 0x021C59D8 _0202D098: .word 0x00001308 _0202D09C: .word 0x00001220 thumb_func_start FUN_0202D0A0 FUN_0202D0A0: ; 0x0202D0A0 push {r3, lr} ldr r2, _0202D0C4 ; =0x021C59D8 ldr r3, [r2, #0x4] ldr r2, _0202D0C8 ; =0x00001318 str r0, [r3, r2] lsl r0, r1, #0x10 ldr r1, _0202D0CC ; =FUN_0202CB08 lsr r0, r0, #0x10 mov r2, #0x0 blx WM_SetPortCallback cmp r0, #0x0 beq _0202D0C2 mov r0, #0x9 bl FUN_0202C198 _0202D0C0: b _0202D0C0 _0202D0C2: pop {r3, pc} .balign 4 _0202D0C4: .word 0x021C59D8 _0202D0C8: .word 0x00001318 _0202D0CC: .word FUN_0202CB08 thumb_func_start FUN_0202D0D0 FUN_0202D0D0: ; 0x0202D0D0 push {r3, lr} bl FUN_0202CA88 pop {r3, pc} thumb_func_start FUN_0202D0D8 FUN_0202D0D8: ; 0x0202D0D8 push {r3, lr} ldr r0, _0202D0F8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D0FC ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 bne _0202D0E8 _0202D0E6: b _0202D0E6 _0202D0E8: bl FUN_0202CA44 cmp r0, #0x0 bne _0202D0F6 mov r0, #0xa bl FUN_0202C198 _0202D0F6: pop {r3, pc} .balign 4 _0202D0F8: .word 0x021C59D8 _0202D0FC: .word 0x00001310 thumb_func_start FUN_0202D100 FUN_0202D100: ; 0x0202D100 push {r3, lr} ldr r0, _0202D16C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D170 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x1 beq _0202D16A cmp r0, #0x6 beq _0202D126 cmp r0, #0x5 beq _0202D126 cmp r0, #0x4 beq _0202D126 mov r0, #0x3 bl FUN_0202C198 bl FUN_0202D0D8 pop {r3, pc} _0202D126: mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202D16C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D174 ; =0x00001314 ldr r0, [r1, r0] cmp r0, #0x5 bhi _0202D16A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202D144: ; jump table (using 16-bit offset) .short _0202D15E - _0202D144 - 2; case 0 .short _0202D150 - _0202D144 - 2; case 1 .short _0202D16A - _0202D144 - 2; case 2 .short _0202D16A - _0202D144 - 2; case 3 .short _0202D15E - _0202D144 - 2; case 4 .short _0202D150 - _0202D144 - 2; case 5 _0202D150: bl FUN_0202C9BC cmp r0, #0x0 bne _0202D16A bl FUN_0202D0D8 pop {r3, pc} _0202D15E: bl FUN_0202C460 cmp r0, #0x0 bne _0202D16A bl FUN_0202D0D8 _0202D16A: pop {r3, pc} .balign 4 _0202D16C: .word 0x021C59D8 _0202D170: .word 0x00001310 _0202D174: .word 0x00001314 thumb_func_start FUN_0202D178 FUN_0202D178: ; 0x0202D178 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202D198 ; =FUN_0202CB50 blx WM_End cmp r0, #0x2 beq _0202D194 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202D194: mov r0, #0x1 pop {r3, pc} .balign 4 _0202D198: .word FUN_0202CB50 thumb_func_start FUN_0202D19C FUN_0202D19C: ; 0x0202D19C ldr r0, _0202D1A8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1AC ; =0x0000132C ldrh r0, [r1, r0] bx lr nop _0202D1A8: .word 0x021C59D8 _0202D1AC: .word 0x0000132C thumb_func_start FUN_0202D1B0 FUN_0202D1B0: ; 0x0202D1B0 ldr r1, _0202D1C0 ; =0x021C59D8 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _0202D1BC ldr r1, _0202D1C4 ; =0x00001334 strb r0, [r2, r1] _0202D1BC: bx lr nop _0202D1C0: .word 0x021C59D8 _0202D1C4: .word 0x00001334 thumb_func_start FUN_0202D1C8 FUN_0202D1C8: ; 0x0202D1C8 ldr r0, _0202D1DC ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1E0 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x1 bne _0202D1D8 mov r0, #0x1 bx lr _0202D1D8: mov r0, #0x0 bx lr .balign 4 _0202D1DC: .word 0x021C59D8 _0202D1E0: .word 0x00001310 thumb_func_start FUN_0202D1E4 FUN_0202D1E4: ; 0x0202D1E4 ldr r0, _0202D1F8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1FC ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x3 bne _0202D1F4 mov r0, #0x1 bx lr _0202D1F4: mov r0, #0x0 bx lr .balign 4 _0202D1F8: .word 0x021C59D8 _0202D1FC: .word 0x00001310 thumb_func_start FUN_0202D200 FUN_0202D200: ; 0x0202D200 ldr r0, _0202D214 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D218 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x9 bne _0202D210 mov r0, #0x1 bx lr _0202D210: mov r0, #0x0 bx lr .balign 4 _0202D214: .word 0x021C59D8 _0202D218: .word 0x00001310 thumb_func_start FUN_0202D21C FUN_0202D21C: ; 0x0202D21C ldr r0, _0202D238 ; =0x021C59D8 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0202D234 ldr r0, _0202D23C ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 bne _0202D230 mov r0, #0x1 bx lr _0202D230: mov r0, #0x0 bx lr _0202D234: mov r0, #0x0 bx lr .balign 4 _0202D238: .word 0x021C59D8 _0202D23C: .word 0x00001310 thumb_func_start FUN_0202D240 FUN_0202D240: ; 0x0202D240 push {r4-r6, lr} sub sp, #0x8 add r6, r0, #0x0 ldr r0, _0202D274 ; =0x021C59D8 add r5, r1, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202D278 ; =0x00001310 add r4, r2, #0x0 ldr r0, [r1, r0] cmp r0, #0x4 bne _0202D26E lsl r0, r3, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 lsl r2, r5, #0x10 str r0, [sp, #0x4] mov r0, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 add r3, r4, #0x0 blx WM_SetGameInfo _0202D26E: add sp, #0x8 pop {r4-r6, pc} nop _0202D274: .word 0x021C59D8 _0202D278: .word 0x00001310 thumb_func_start FUN_0202D27C FUN_0202D27C: ; 0x0202D27C ldrh r0, [r0, #0x2] cmp r0, #0x0 bne _0202D28C ldr r0, _0202D290 ; =0x021C59D8 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _0202D294 ; =0x00001344 strb r2, [r1, r0] _0202D28C: bx lr nop _0202D290: .word 0x021C59D8 _0202D294: .word 0x00001344 thumb_func_start FUN_0202D298 FUN_0202D298: ; 0x0202D298 push {r4, lr} ldr r2, _0202D2C4 ; =0x021C59D8 add r1, r0, #0x0 ldr r3, [r2, #0x4] ldr r0, _0202D2C8 ; =0x00001344 mov r4, #0x0 strb r4, [r3, r0] ldr r2, [r2, #0x4] sub r0, #0x34 ldr r0, [r2, r0] cmp r0, #0x4 bne _0202D2BE ldr r0, _0202D2CC ; =FUN_0202D27C blx WM_SetEntry cmp r0, #0x2 bne _0202D2BE mov r0, #0x1 pop {r4, pc} _0202D2BE: mov r0, #0x0 pop {r4, pc} nop _0202D2C4: .word 0x021C59D8 _0202D2C8: .word 0x00001344 _0202D2CC: .word FUN_0202D27C thumb_func_start FUN_0202D2D0 FUN_0202D2D0: ; 0x0202D2D0 ldr r0, _0202D2EC ; =0x021C59D8 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0202D2E8 ldr r0, _0202D2F0 ; =0x00001345 ldrb r0, [r1, r0] cmp r0, #0x6 blo _0202D2E4 mov r0, #0x1 bx lr _0202D2E4: mov r0, #0x0 bx lr _0202D2E8: mov r0, #0x0 bx lr .balign 4 _0202D2EC: .word 0x021C59D8 _0202D2F0: .word 0x00001345 thumb_func_start FUN_0202D2F4 FUN_0202D2F4: ; 0x0202D2F4 ldr r0, _0202D300 ; =0x021C59D8 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202D304 ; =0x00001345 strb r2, [r1, r0] bx lr .balign 4 _0202D300: .word 0x021C59D8 _0202D304: .word 0x00001345 thumb_func_start FUN_0202D308 FUN_0202D308: ; 0x0202D308 ldr r1, _0202D314 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D318 ; =0x00001320 str r0, [r2, r1] bx lr nop _0202D314: .word 0x021C59D8 _0202D318: .word 0x00001320 thumb_func_start FUN_0202D31C FUN_0202D31C: ; 0x0202D31C ldr r1, _0202D328 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D32C ; =0x00001324 str r0, [r2, r1] bx lr nop _0202D328: .word 0x021C59D8 _0202D32C: .word 0x00001324 thumb_func_start FUN_0202D330 FUN_0202D330: ; 0x0202D330 ldr r1, _0202D33C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D340 ; =0x00001328 str r0, [r2, r1] bx lr nop _0202D33C: .word 0x021C59D8 _0202D340: .word 0x00001328 thumb_func_start FUN_0202D344 FUN_0202D344: ; 0x0202D344 ldr r1, _0202D350 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D354 ; =0x00001342 strb r0, [r2, r1] bx lr nop _0202D350: .word 0x021C59D8 _0202D354: .word 0x00001342 thumb_func_start FUN_0202D358 FUN_0202D358: ; 0x0202D358 ldr r0, _0202D364 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D368 ; =0x00001342 ldrb r0, [r1, r0] bx lr nop _0202D364: .word 0x021C59D8 _0202D368: .word 0x00001342 thumb_func_start FUN_0202D36C FUN_0202D36C: ; 0x0202D36C ldr r1, _0202D378 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D37C ; =0x00001343 strb r0, [r2, r1] bx lr nop _0202D378: .word 0x021C59D8 _0202D37C: .word 0x00001343 thumb_func_start FUN_0202D380 FUN_0202D380: ; 0x0202D380 ldr r1, _0202D38C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D390 ; =0x00001335 strb r0, [r2, r1] bx lr nop _0202D38C: .word 0x021C59D8 _0202D390: .word 0x00001335 thumb_func_start FUN_0202D394 FUN_0202D394: ; 0x0202D394 str r1, [r0, #0x0] strh r2, [r0, #0xa] mov r1, #0x0 strh r1, [r0, #0x4] strh r1, [r0, #0x6] strh r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_0202D3A4 FUN_0202D3A4: ; 0x0202D3A4 push {r3-r7, lr} str r2, [sp, #0x0] add r5, r0, #0x0 add r7, r1, #0x0 bl FUN_0202D498 ldr r1, [sp, #0x0] cmp r0, r1 bgt _0202D3BC bl FUN_02031454 pop {r3-r7, pc} _0202D3BC: mov r0, #0x8 ldrsh r4, [r5, r0] ldrsh r1, [r5, r0] ldr r0, [sp, #0x0] mov r6, #0x0 add r0, r1, r0 cmp r4, r0 bge _0202D3F2 _0202D3CC: cmp r7, #0x0 bne _0202D3D4 bl ErrorHandling _0202D3D4: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 ldrb r2, [r7, r6] ldr r1, [r5, #0x0] add r4, r4, #0x1 strb r2, [r1, r0] mov r0, #0x8 ldrsh r1, [r5, r0] ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r1, r0 cmp r4, r0 blt _0202D3CC _0202D3F2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 strh r0, [r5, #0x8] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D400 FUN_0202D400: ; 0x0202D400 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0202D42C mov r1, #0x4 add r4, r0, #0x0 ldrsh r1, [r5, r1] add r0, r5, #0x0 add r1, r1, r4 bl FUN_0202D4A8 strh r0, [r5, #0x4] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202D41C FUN_0202D41C: ; 0x0202D41C push {r3, lr} add r1, sp, #0x0 mov r2, #0x1 bl FUN_0202D400 add r0, sp, #0x0 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202D42C FUN_0202D42C: ; 0x0202D42C push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x4 ldrsh r4, [r5, r0] add r7, r2, #0x0 str r1, [sp, #0x0] add r0, r4, r7 mov r6, #0x0 cmp r4, r0 bge _0202D472 _0202D440: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 mov r1, #0x6 ldrsh r1, [r5, r1] cmp r1, r0 bne _0202D454 add r0, r6, #0x0 pop {r3-r7, pc} _0202D454: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 ldr r1, [r5, #0x0] add r4, r4, #0x1 ldrb r1, [r1, r0] ldr r0, [sp, #0x0] strb r1, [r0, r6] mov r0, #0x4 ldrsh r0, [r5, r0] add r6, r6, #0x1 add r0, r0, r7 cmp r4, r0 blt _0202D440 _0202D472: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D478 FUN_0202D478: ; 0x0202D478 mov r1, #0x4 mov r3, #0x6 ldrsh r1, [r0, r1] ldrsh r2, [r0, r3] cmp r1, r2 ble _0202D490 mov r2, #0xa ldrsh r2, [r0, r2] ldrsh r0, [r0, r3] add r0, r2, r0 sub r0, r0, r1 bx lr _0202D490: ldrsh r0, [r0, r3] sub r0, r0, r1 bx lr .balign 4 thumb_func_start FUN_0202D498 FUN_0202D498: ; 0x0202D498 push {r4, lr} add r4, r0, #0x0 bl FUN_0202D478 mov r1, #0xa ldrsh r1, [r4, r1] sub r0, r1, r0 pop {r4, pc} thumb_func_start FUN_0202D4A8 FUN_0202D4A8: ; 0x0202D4A8 push {r3, lr} add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0xa ldrsh r1, [r2, r1] blx _s32_div_f add r0, r1, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202D4BC FUN_0202D4BC: ; 0x0202D4BC mov r1, #0x8 ldrsh r1, [r0, r1] strh r1, [r0, #0x6] bx lr thumb_func_start FUN_0202D4C4 FUN_0202D4C4: ; 0x0202D4C4 ldr r3, [r0, #0x1c] mov r2, #0x0 ldr r1, [r0, #0x18] cmp r3, #0x0 ble _0202D4E0 _0202D4CE: ldrb r0, [r1, #0xe] cmp r0, #0x0 bne _0202D4D8 add r0, r1, #0x0 bx lr _0202D4D8: add r2, r2, #0x1 add r1, #0x10 cmp r2, r3 blt _0202D4CE _0202D4E0: mov r0, #0x0 bx lr thumb_func_start FUN_0202D4E4 FUN_0202D4E4: ; 0x0202D4E4 ldr r3, [r0, #0x1c] mov r2, #0x0 ldr r1, [r0, #0x18] cmp r3, #0x0 ble _0202D500 _0202D4EE: ldrb r0, [r1, #0xe] cmp r0, #0x0 beq _0202D4F8 mov r0, #0x0 bx lr _0202D4F8: add r2, r2, #0x1 add r1, #0x10 cmp r2, r3 blt _0202D4EE _0202D500: mov r0, #0x1 bx lr thumb_func_start FUN_0202D504 FUN_0202D504: ; 0x0202D504 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202D522 ldr r1, [r1, #0x8] cmp r1, #0x0 beq _0202D518 str r1, [r0, #0x0] mov r0, #0x0 str r0, [r1, #0x4] b _0202D51E _0202D518: mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] _0202D51E: mov r0, #0x1 bx lr _0202D522: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202D528 FUN_0202D528: ; 0x0202D528 ldr r2, [r0, #0x0] strb r1, [r2, #0x0] ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] ldr r1, [r0, #0x4] sub r1, r1, #0x1 str r1, [r0, #0x4] bne _0202D53E mov r0, #0x1 bx lr _0202D53E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202D544 FUN_0202D544: ; 0x0202D544 push {r4-r6, lr} add r5, r0, #0x0 ldrb r0, [r5, #0xe] add r4, r1, #0x0 bl FUN_0202D9A0 add r6, r0, #0x0 ldr r0, _0202D5B8 ; =0x0000FFFF cmp r6, r0 ldr r0, [r4, #0x4] bne _0202D56A cmp r0, #0x3 bge _0202D57A ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 strb r1, [r5, #0xf] mov r0, #0x1 pop {r4-r6, pc} _0202D56A: cmp r0, #0x1 bge _0202D57A ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 strb r1, [r5, #0xf] mov r0, #0x1 pop {r4-r6, pc} _0202D57A: ldrb r1, [r5, #0xe] add r0, r4, #0x0 bl FUN_0202D528 ldr r0, _0202D5B8 ; =0x0000FFFF cmp r6, r0 bne _0202D5A4 ldrh r1, [r5, #0xc] add r0, r4, #0x0 asr r1, r1, #0x8 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0202D528 ldrh r1, [r5, #0xc] add r0, r4, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0202D528 b _0202D5A6 _0202D5A4: strh r6, [r5, #0xc] _0202D5A6: ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r5, #0xf] mov r0, #0x0 pop {r4-r6, pc} nop _0202D5B8: .word 0x0000FFFF thumb_func_start FUN_0202D5BC FUN_0202D5BC: ; 0x0202D5BC push {r3-r7, lr} add r5, r0, #0x0 ldrb r0, [r5, #0xe] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0202D9A0 ldr r1, _0202D680 ; =0x0000FFFF cmp r0, r1 bne _0202D5D6 mov r2, #0x3 b _0202D5D8 _0202D5D6: mov r2, #0x1 _0202D5D8: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x4] add r0, r0, r2 cmp r1, r0 bge _0202D5EA cmp r7, #0x0 bne _0202D5EA mov r0, #0x0 pop {r3-r7, pc} _0202D5EA: ldrb r0, [r5, #0xf] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #0x1 beq _0202D604 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D544 cmp r0, #0x0 beq _0202D604 mov r0, #0x0 pop {r3-r7, pc} _0202D604: ldrh r3, [r5, #0xc] ldr r2, [r4, #0x4] cmp r2, r3 ldrb r0, [r5, #0xf] bge _0202D64E lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _0202D61E ldr r1, [r4, #0x0] add r0, r6, #0x0 bl FUN_0202D400 b _0202D634 _0202D61E: mov r3, #0x0 cmp r2, #0x0 ble _0202D634 _0202D624: ldr r0, [r5, #0x0] ldrb r1, [r0, r3] ldr r0, [r4, #0x0] strb r1, [r0, r3] ldr r0, [r4, #0x4] add r3, r3, #0x1 cmp r3, r0 blt _0202D624 _0202D634: ldr r1, [r5, #0x0] ldr r0, [r4, #0x4] add r0, r1, r0 str r0, [r5, #0x0] ldrh r1, [r5, #0xc] ldr r0, [r4, #0x4] sub r0, r1, r0 strh r0, [r5, #0xc] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r7, pc} _0202D64E: lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _0202D660 ldr r1, [r4, #0x0] add r0, r6, #0x0 add r2, r3, #0x0 bl FUN_0202D400 b _0202D66A _0202D660: ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] add r2, r3, #0x0 blx MI_CpuCopy8 _0202D66A: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x0] add r0, r1, r0 str r0, [r4, #0x0] ldrh r0, [r5, #0xc] ldr r1, [r4, #0x4] sub r0, r1, r0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r7, pc} nop _0202D680: .word 0x0000FFFF thumb_func_start FUN_0202D684 FUN_0202D684: ; 0x0202D684 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r3, #0x0 bl FUN_0202D4C4 add r4, r0, #0x0 bne _0202D69E add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0202D69E: ldr r0, _0202D710 ; =0x0000FFFE cmp r7, r0 blt _0202D6A8 bl ErrorHandling _0202D6A8: ldr r0, [sp, #0x0] bl FUN_0202D9A0 add r6, r0, #0x0 ldr r0, _0202D714 ; =0x0000FFFF cmp r6, r0 bne _0202D6B8 add r6, r7, #0x0 _0202D6B8: ldr r0, [sp, #0x24] cmp r0, #0x0 beq _0202D6EA ldr r0, [r5, #0x14] bl FUN_0202D498 add r1, r6, #0x3 cmp r1, r0 blt _0202D6D0 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0202D6D0: ldr r0, [r5, #0x14] ldr r1, [sp, #0x4] ldr r3, _0202D718 ; =0x00000109 add r2, r6, #0x0 bl FUN_0202D3A4 ldr r0, [r5, #0x14] bl FUN_0202D4BC ldrb r1, [r4, #0xf] mov r0, #0x2 orr r0, r1 strb r0, [r4, #0xf] _0202D6EA: ldr r0, [sp, #0x0] strh r6, [r4, #0xc] strb r0, [r4, #0xe] ldr r0, [sp, #0x4] str r0, [r4, #0x0] ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0202D700 str r4, [r5, #0x4] str r4, [r5, #0x0] b _0202D708 _0202D700: str r4, [r0, #0x8] ldr r0, [r5, #0x4] str r0, [r4, #0x4] str r4, [r5, #0x4] _0202D708: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0202D710: .word 0x0000FFFE _0202D714: .word 0x0000FFFF _0202D718: .word 0x00000109 thumb_func_start FUN_0202D71C FUN_0202D71C: ; 0x0202D71C ldr r1, [r0, #0x10] cmp r1, #0x0 beq _0202D726 add r0, r1, #0x0 bx lr _0202D726: ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202D730 add r0, r1, #0x0 bx lr _0202D730: ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202D738 mov r0, #0x0 _0202D738: bx lr .balign 4 thumb_func_start FUN_0202D73C FUN_0202D73C: ; 0x0202D73C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x10] cmp r1, #0x0 beq _0202D74C mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} _0202D74C: bl FUN_0202D504 cmp r0, #0x0 bne _0202D75C add r4, #0x8 add r0, r4, #0x0 bl FUN_0202D504 _0202D75C: pop {r4, pc} .balign 4 thumb_func_start FUN_0202D760 FUN_0202D760: ; 0x0202D760 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] mov r7, #0x1 str r2, [sp, #0x0] cmp r0, #0x0 ble _0202D7B6 _0202D770: add r0, r5, #0x0 bl FUN_0202D71C add r6, r0, #0x0 beq _0202D7B6 add r0, r5, #0x0 bl FUN_0202D73C ldr r2, [r5, #0x14] add r0, r6, #0x0 add r1, r4, #0x0 add r3, r7, #0x0 bl FUN_0202D5BC cmp r0, #0x0 bne _0202D794 str r6, [r5, #0x10] b _0202D7B6 _0202D794: mov r0, #0x0 ldr r1, [r4, #0x4] mvn r0, r0 cmp r1, r0 bne _0202D7A4 str r6, [r5, #0x10] mov r0, #0x0 pop {r3-r7, pc} _0202D7A4: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x10 blx MI_CpuFill8 ldr r0, [r4, #0x4] ldr r7, [sp, #0x0] cmp r0, #0x0 bgt _0202D770 _0202D7B6: ldr r0, [r4, #0x4] mov r2, #0x0 cmp r0, #0x0 ble _0202D7D2 mov r1, #0xee _0202D7C0: ldr r0, [r4, #0x0] add r2, r2, #0x1 strb r1, [r0, #0x0] ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] ldr r0, [r4, #0x4] cmp r2, r0 blt _0202D7C0 _0202D7D2: mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D7D8 FUN_0202D7D8: ; 0x0202D7D8 push {r3-r7, lr} add r4, r1, #0x0 add r6, r2, #0x0 mov r1, #0x0 mov r2, #0x20 add r5, r0, #0x0 blx MI_CpuFill8 lsl r7, r4, #0x4 mov r0, #0xf add r1, r7, #0x0 bl FUN_02016998 mov r1, #0x0 add r2, r7, #0x0 str r0, [r5, #0x18] blx MI_CpuFill8 str r4, [r5, #0x1c] str r6, [r5, #0x14] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D804 FUN_0202D804: ; 0x0202D804 push {r4, lr} add r4, r0, #0x0 ldr r2, [r4, #0x1c] ldr r0, [r4, #0x18] mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] str r0, [r4, #0x8] str r0, [r4, #0xc] str r0, [r4, #0x10] pop {r4, pc} .balign 4 thumb_func_start FUN_0202D824 FUN_0202D824: ; 0x0202D824 ldr r3, _0202D82C ; =FUN_02016A18 ldr r0, [r0, #0x18] bx r3 nop _0202D82C: .word FUN_02016A18 thumb_func_start FUN_0202D830 FUN_0202D830: ; 0x0202D830 push {r3-r4} ldr r4, [r0, #0x1c] mov r2, #0x0 ldr r3, [r0, #0x18] cmp r4, #0x0 ble _0202D850 _0202D83C: ldrb r0, [r3, #0xe] cmp r0, r1 bne _0202D848 mov r0, #0x1 pop {r3-r4} bx lr _0202D848: add r2, r2, #0x1 add r3, #0x10 cmp r2, r4 blt _0202D83C _0202D850: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202D858 FUN_0202D858: ; 0x0202D858 push {r3-r4, lr} sub sp, #0x1c ldr r3, _0202D880 ; =0x020EEB04 add r4, r0, #0x0 add r2, sp, #0x0 mov r1, #0x1a _0202D864: ldrb r0, [r3, #0x0] add r3, r3, #0x1 strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202D864 cmp r4, #0x1a blo _0202D878 bl ErrorHandling _0202D878: add r0, sp, #0x0 ldrb r0, [r0, r4] add sp, #0x1c pop {r3-r4, pc} .balign 4 _0202D880: .word 0x020EEB04 thumb_func_start FUN_0202D884 FUN_0202D884: ; 0x0202D884 push {r3-r4, lr} sub sp, #0x1c ldr r3, _0202D8AC ; =0x020EEB1E add r4, r0, #0x0 add r2, sp, #0x0 mov r1, #0x1a _0202D890: ldrb r0, [r3, #0x0] add r3, r3, #0x1 strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202D890 cmp r4, #0x1a blo _0202D8A4 bl ErrorHandling _0202D8A4: add r0, sp, #0x0 ldrb r0, [r0, r4] add sp, #0x1c pop {r3-r4, pc} .balign 4 _0202D8AC: .word 0x020EEB1E thumb_func_start FUN_0202D8B0 FUN_0202D8B0: ; 0x0202D8B0 cmp r0, #0xd bgt _0202D8C4 cmp r0, #0x7 blt _0202D8CC beq _0202D8C8 cmp r0, #0x9 beq _0202D8C8 cmp r0, #0xd beq _0202D8C8 b _0202D8CC _0202D8C4: cmp r0, #0x12 bne _0202D8CC _0202D8C8: mov r0, #0x1 bx lr _0202D8CC: mov r0, #0x0 bx lr thumb_func_start FUN_0202D8D0 FUN_0202D8D0: ; 0x0202D8D0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0202D914 ; =0x021C59E0 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 cmp r0, #0x0 bne _0202D8EC mov r0, #0xf mov r1, #0x18 bl FUN_02016998 ldr r1, _0202D914 ; =0x021C59E0 str r0, [r1, #0x0] _0202D8EC: ldr r0, _0202D914 ; =0x021C59E0 mov r3, #0x0 ldr r1, [r0, #0x0] add r2, r3, #0x0 str r5, [r1, #0x0] ldr r1, [r0, #0x0] str r4, [r1, #0x4] ldr r1, [r0, #0x0] str r6, [r1, #0x8] _0202D8FE: ldr r1, [r0, #0x0] add r1, r1, r3 add r3, r3, #0x1 strb r2, [r1, #0xc] cmp r3, #0x8 blt _0202D8FE ldr r0, _0202D914 ; =0x021C59E0 ldr r0, [r0, #0x0] strb r2, [r0, #0x14] pop {r4-r6, pc} nop _0202D914: .word 0x021C59E0 thumb_func_start FUN_0202D918 FUN_0202D918: ; 0x0202D918 push {r3, lr} ldr r0, _0202D930 ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202D92C bl FUN_02016A18 ldr r0, _0202D930 ; =0x021C59E0 mov r1, #0x0 str r1, [r0, #0x0] _0202D92C: pop {r3, pc} nop _0202D930: .word 0x021C59E0 thumb_func_start FUN_0202D934 FUN_0202D934: ; 0x0202D934 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x16 bge _0202D94C mov r0, #0xc mul r1, r0 ldr r0, _0202D998 ; =0x020EEB38 ldr r4, [r0, r1] b _0202D974 _0202D94C: ldr r0, _0202D99C ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D958 bl ErrorHandling _0202D958: ldr r0, _0202D99C ; =0x021C59E0 ldr r1, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x16 cmp r4, r0 ble _0202D96A bl FUN_02031454 pop {r3-r7, pc} _0202D96A: ldr r1, [r1, #0x0] sub r4, #0x16 mov r0, #0xc mul r0, r4 ldr r4, [r1, r0] _0202D974: cmp r4, #0x0 beq _0202D996 ldr r0, _0202D99C ; =0x021C59E0 ldr r3, [r0, #0x0] cmp r3, #0x0 beq _0202D98C ldr r3, [r3, #0x8] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 blx r4 pop {r3-r7, pc} _0202D98C: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x0 blx r4 _0202D996: pop {r3-r7, pc} .balign 4 _0202D998: .word 0x020EEB38 _0202D99C: .word 0x021C59E0 thumb_func_start FUN_0202D9A0 FUN_0202D9A0: ; 0x0202D9A0 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x16 bge _0202D9B6 mov r0, #0xc add r1, r5, #0x0 mul r1, r0 ldr r0, _0202D9FC ; =0x020EEB3C ldr r0, [r0, r1] b _0202D9EE _0202D9B6: ldr r0, _0202DA00 ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D9C2 bl ErrorHandling _0202D9C2: ldr r0, _0202DA00 ; =0x021C59E0 ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0202D9D2 bl FUN_02031454 mov r0, #0x0 pop {r3-r5, pc} _0202D9D2: ldr r0, [r1, #0x4] add r0, #0x16 cmp r5, r0 ble _0202D9E2 bl FUN_02031454 mov r0, #0x0 pop {r3-r5, pc} _0202D9E2: ldr r1, [r1, #0x0] sub r5, #0x16 mov r0, #0xc mul r0, r5 add r0, r1, r0 ldr r0, [r0, #0x4] _0202D9EE: cmp r0, #0x0 beq _0202D9F6 blx r0 add r4, r0, #0x0 _0202D9F6: add r0, r4, #0x0 pop {r3-r5, pc} nop _0202D9FC: .word 0x020EEB3C _0202DA00: .word 0x021C59E0 thumb_func_start FUN_0202DA04 FUN_0202DA04: ; 0x0202DA04 cmp r0, #0x16 bge _0202DA1C mov r1, #0xc mul r1, r0 ldr r0, _0202DA38 ; =0x020EEB40 ldr r0, [r0, r1] cmp r0, #0x0 beq _0202DA18 mov r0, #0x1 bx lr _0202DA18: mov r0, #0x0 bx lr _0202DA1C: ldr r1, _0202DA3C ; =0x021C59E0 sub r0, #0x16 ldr r1, [r1, #0x0] ldr r2, [r1, #0x0] mov r1, #0xc mul r1, r0 add r0, r2, r1 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202DA34 mov r0, #0x1 bx lr _0202DA34: mov r0, #0x0 bx lr .balign 4 _0202DA38: .word 0x020EEB40 _0202DA3C: .word 0x021C59E0 thumb_func_start FUN_0202DA40 FUN_0202DA40: ; 0x0202DA40 push {r3-r5, lr} add r3, r0, #0x0 cmp r3, #0x16 bge _0202DA58 mov r4, #0xc mul r4, r3 ldr r3, _0202DA70 ; =0x020EEB40 add r0, r1, #0x0 ldr r3, [r3, r4] mov r1, #0x0 blx r3 pop {r3-r5, pc} _0202DA58: ldr r0, _0202DA74 ; =0x021C59E0 sub r3, #0x16 ldr r4, [r0, #0x0] add r0, r1, #0x0 ldr r1, [r4, #0x8] ldr r5, [r4, #0x0] mov r4, #0xc mul r4, r3 add r3, r5, r4 ldr r3, [r3, #0x8] blx r3 pop {r3-r5, pc} .balign 4 _0202DA70: .word 0x020EEB40 _0202DA74: .word 0x021C59E0 thumb_func_start FUN_0202DA78 FUN_0202DA78: ; 0x0202DA78 ldr r0, _0202DA7C ; =0x0000FFFF bx lr .balign 4 _0202DA7C: .word 0x0000FFFF thumb_func_start FUN_0202DA80 FUN_0202DA80: ; 0x0202DA80 mov r0, #0x0 bx lr thumb_func_start FUN_0202DA84 FUN_0202DA84: ; 0x0202DA84 mov r0, #0x1 bx lr thumb_func_start FUN_0202DA88 FUN_0202DA88: ; 0x0202DA88 mov r0, #0x2 bx lr thumb_func_start FUN_0202DA8C FUN_0202DA8C: ; 0x0202DA8C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202DACA ldr r4, _0202DACC ; =0x021C59E0 mov r1, #0x1 ldr r0, [r4, #0x0] add r0, r0, r5 strb r1, [r0, #0xc] mov r5, #0x0 _0202DAA4: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202DABA ldr r0, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, #0xc] cmp r0, #0x0 beq _0202DACA _0202DABA: add r5, r5, #0x1 cmp r5, #0x8 blt _0202DAA4 mov r1, #0x0 mov r0, #0xe add r2, r1, #0x0 bl FUN_02030BC4 _0202DACA: pop {r3-r5, pc} .balign 4 _0202DACC: .word 0x021C59E0 thumb_func_start FUN_0202DAD0 FUN_0202DAD0: ; 0x0202DAD0 ldr r0, _0202DAF0 ; =0x021C59E0 mov r3, #0x0 ldr r1, [r0, #0x0] str r3, [r1, #0x0] ldr r1, [r0, #0x0] str r3, [r1, #0x4] ldr r1, [r0, #0x0] str r3, [r1, #0x8] ldr r0, [r0, #0x0] mov r1, #0x1 strb r1, [r0, #0x14] ldr r3, _0202DAF4 ; =FUN_020311D0 mov r0, #0xf add r1, r2, #0x0 bx r3 nop _0202DAF0: .word 0x021C59E0 _0202DAF4: .word FUN_020311D0 thumb_func_start FUN_0202DAF8 FUN_0202DAF8: ; 0x0202DAF8 push {r4, lr} add r4, r0, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202DB0E ldr r0, _0202DB10 ; =0x021C59E0 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 strb r1, [r0, #0xc] _0202DB0E: pop {r4, pc} .balign 4 _0202DB10: .word 0x021C59E0 thumb_func_start FUN_0202DB14 FUN_0202DB14: ; 0x0202DB14 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] str r1, [sp, #0x4] bl FUN_020238F4 str r0, [sp, #0x8] ldr r0, _0202DBA0 ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202DB9A mov r1, #0xe9 mov r0, #0xf lsl r1, r1, #0x2 bl FUN_02016998 ldr r1, _0202DBA0 ; =0x021C59E4 mov r2, #0xe9 str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 blx MI_CpuFill8 mov r6, #0x0 ldr r7, _0202DBA0 ; =0x021C59E4 add r4, r6, #0x0 add r5, r6, #0x0 _0202DB4A: ldr r1, [r7, #0x0] add r0, r1, #0x0 add r0, #0x28 add r2, r0, r4 mov r0, #0xd2 add r1, r1, r5 lsl r0, r0, #0x2 str r2, [r1, r0] add r0, r6, #0x0 bl FUN_0202DE78 add r6, r6, #0x1 add r4, #0x68 add r5, r5, #0x4 cmp r6, #0x8 blt _0202DB4A ldr r2, _0202DBA0 ; =0x021C59E4 mov r1, #0x3a ldr r3, [r2, #0x0] mov r0, #0x0 lsl r1, r1, #0x4 strb r0, [r3, r1] ldr r4, [r2, #0x0] add r3, r1, #0x1 strb r0, [r4, r3] add r3, r1, #0x2 ldr r4, [r2, #0x0] sub r1, #0x58 strb r0, [r4, r3] ldr r3, [r2, #0x0] ldr r0, [sp, #0x0] str r0, [r3, #0x4] ldr r3, [r2, #0x0] ldr r0, [sp, #0x4] str r0, [r3, #0x0] ldr r2, [r2, #0x0] ldr r0, [sp, #0x8] ldr r1, [r2, r1] bl FUN_0202393C _0202DB9A: add sp, #0xc pop {r4-r7, pc} nop _0202DBA0: .word 0x021C59E4 thumb_func_start FUN_0202DBA4 FUN_0202DBA4: ; 0x0202DBA4 push {r3-r5, lr} ldr r1, _0202DBDC ; =0x021C59E4 ldr r0, [r1, #0x0] cmp r0, #0x0 beq _0202DBD8 mov r4, #0x0 mov r0, #0xd2 add r5, r4, #0x0 add r3, r4, #0x0 lsl r0, r0, #0x2 _0202DBB8: ldr r2, [r1, #0x0] add r4, r4, #0x1 add r2, r2, r5 add r5, r5, #0x4 str r3, [r2, r0] cmp r4, #0x8 blt _0202DBB8 ldr r0, _0202DBDC ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202DBD2 bl FUN_02016A18 _0202DBD2: ldr r0, _0202DBDC ; =0x021C59E4 mov r1, #0x0 str r1, [r0, #0x0] _0202DBD8: pop {r3-r5, pc} nop _0202DBDC: .word 0x021C59E4 thumb_func_start FUN_0202DBE0 FUN_0202DBE0: ; 0x0202DBE0 push {r3-r7, lr} bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_0202881C add r7, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_020286EC str r0, [sp, #0x0] ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_02029AFC add r6, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_020238F4 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 add r2, r2, r1 mov r1, #0xd2 lsl r1, r1, #0x2 ldr r1, [r2, r1] bl FUN_0202393C mov r0, #0x68 add r5, r4, #0x0 mul r5, r0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r5 blx OS_GetMacAddress add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_020287A8 ldr r1, _0202DCD8 ; =0x021C59E4 mov r2, #0x10 ldr r1, [r1, #0x0] add r1, #0x54 add r1, r1, r5 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02029B38 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, r1, r5 add r1, #0x6b strb r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02029B3C ldr r2, _0202DCD8 ; =0x021C59E4 ldr r1, [r2, #0x0] add r1, r1, r5 add r1, #0x6c strb r0, [r1, #0x0] ldr r0, [r2, #0x0] ldr r0, [r0, #0x4] bl FUN_02025C18 ldr r2, _0202DCD8 ; =0x021C59E4 ldr r1, [r2, #0x0] add r1, r1, r5 add r1, #0x6d strb r0, [r1, #0x0] ldr r2, [r2, #0x0] mov r0, #0x1 add r2, #0x6d ldrb r1, [r2, r5] sub r0, r0, r1 strb r0, [r2, r5] ldr r0, [sp, #0x0] bl FUN_02028228 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, #0x48 add r1, r1, r5 blx FUN_02096CCC ldr r0, _0202DCD8 ; =0x021C59E4 mov r1, #0x0 ldr r0, [r0, #0x0] mov r2, #0x20 add r0, #0x8 add r0, r0, r5 blx MI_CpuFill8 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, [r1, #0x0] cmp r0, #0x0 beq _0202DCC4 add r1, #0x8 add r1, r1, r5 bl FUN_02023ACC _0202DCC4: ldr r1, _0202DCD8 ; =0x021C59E4 mov r0, #0x3 ldr r1, [r1, #0x0] mov r2, #0x68 add r1, #0x8 add r1, r1, r5 bl FUN_02030ADC pop {r3-r7, pc} nop _0202DCD8: .word 0x021C59E4 thumb_func_start FUN_0202DCDC FUN_0202DCDC: ; 0x0202DCDC mov r0, #0x68 bx lr thumb_func_start FUN_0202DCE0 FUN_0202DCE0: ; 0x0202DCE0 ldr r0, _0202DCF4 ; =0x021C59E4 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _0202DCF0 mov r0, #0x3a mov r1, #0x1 lsl r0, r0, #0x4 strb r1, [r2, r0] _0202DCF0: bx lr nop _0202DCF4: .word 0x021C59E4 thumb_func_start FUN_0202DCF8 FUN_0202DCF8: ; 0x0202DCF8 ldr r0, _0202DD04 ; =0x021C59E4 ldr r1, [r0, #0x0] mov r0, #0x3a lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 _0202DD04: .word 0x021C59E4 thumb_func_start FUN_0202DD08 FUN_0202DD08: ; 0x0202DD08 push {r3-r5, lr} ldr r1, _0202DD78 ; =0x021C59E4 add r4, r2, #0x0 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0202DD74 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202DD74 ldr r1, _0202DD78 ; =0x021C59E4 mov r2, #0x68 ldr r5, [r1, #0x0] add r1, r4, #0x0 add r1, #0x62 ldrb r1, [r1, #0x0] add r5, #0x8 add r0, r4, #0x0 add r3, r1, #0x0 mul r3, r2 add r1, r5, r3 blx MI_CpuCopy8 add r4, #0x62 ldr r2, _0202DD78 ; =0x021C59E4 ldrb r3, [r4, #0x0] ldr r0, [r2, #0x0] ldr r1, _0202DD7C ; =0x000003A2 strb r3, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x0] sub r0, #0xa add r4, r3, r0 ldrb r3, [r3, r1] ldrb r0, [r4, r3] cmp r0, #0x2 bhs _0202DD74 mov r0, #0x1 strb r0, [r4, r3] ldr r0, [r2, #0x0] ldrb r4, [r0, r1] bl FUN_02031190 cmp r4, r0 bne _0202DD74 ldr r0, _0202DD78 ; =0x021C59E4 mov r2, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] _0202DD74: pop {r3-r5, pc} nop _0202DD78: .word 0x021C59E4 _0202DD7C: .word 0x000003A2 thumb_func_start FUN_0202DD80 FUN_0202DD80: ; 0x0202DD80 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202DDE0 ; =0x021C59E4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202DDDC mov r3, #0x68 add r4, r5, #0x0 add r0, r2, #0x0 mul r4, r3 add r1, #0x8 add r1, r1, r4 add r2, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202DDE0 ; =0x021C59E4 add r1, r5, #0x0 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r4 bl FUN_0202EFAC ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x1 ldr r0, [r0, #0x0] add r1, r0, r5 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bl FUN_02031190 cmp r5, r0 bne _0202DDD2 ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x3 ldr r0, [r0, #0x0] add r1, r0, r5 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r3-r5, pc} _0202DDD2: ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0202DDE4 ; =0x000003A1 strb r2, [r1, r0] _0202DDDC: pop {r3-r5, pc} nop _0202DDE0: .word 0x021C59E4 _0202DDE4: .word 0x000003A1 thumb_func_start FUN_0202DDE8 FUN_0202DDE8: ; 0x0202DDE8 push {r3-r7, lr} ldr r0, _0202DE70 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, _0202DE74 ; =0x000003A1 ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202DDFA mov r0, #0x0 pop {r3-r7, pc} _0202DDFA: mov r0, #0x5 bl FUN_02031354 cmp r0, #0x0 bne _0202DE6C mov r4, #0x0 add r5, r4, #0x0 add r7, r4, #0x0 _0202DE0A: ldr r0, _0202DE70 ; =0x021C59E4 ldr r2, [r0, #0x0] mov r0, #0xe6 add r1, r2, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202DE4A add r0, r2, r5 add r0, #0x6a strb r4, [r0, #0x0] ldr r0, _0202DE70 ; =0x021C59E4 ldr r6, [r0, #0x0] bl FUN_02023924 add r2, r0, #0x0 mov r0, #0xd2 add r1, r6, r7 lsl r0, r0, #0x2 ldr r0, [r1, r0] add r6, #0x28 add r1, r6, r5 blx MI_CpuCopy8 ldr r1, _0202DE70 ; =0x021C59E4 mov r0, #0x4 ldr r1, [r1, #0x0] mov r2, #0x68 add r1, #0x8 add r1, r1, r5 bl FUN_02031000 _0202DE4A: add r4, r4, #0x1 add r5, #0x68 add r7, r7, #0x4 cmp r4, #0x8 blt _0202DE0A mov r1, #0x0 mov r0, #0x5 add r2, r1, #0x0 bl FUN_02031000 ldr r0, _0202DE70 ; =0x021C59E4 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0202DE74 ; =0x000003A1 strb r2, [r1, r0] mov r0, #0x1 pop {r3-r7, pc} _0202DE6C: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0202DE70: .word 0x021C59E4 _0202DE74: .word 0x000003A1 thumb_func_start FUN_0202DE78 FUN_0202DE78: ; 0x0202DE78 push {r4, lr} add r4, r0, #0x0 ldr r0, _0202DEA0 ; =0x021C59E4 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r1, r1, r0 mov r0, #0xd2 lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_02023948 ldr r0, _0202DEA0 ; =0x021C59E4 mov r2, #0x0 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r4, pc} nop _0202DEA0: .word 0x021C59E4 thumb_func_start FUN_0202DEA4 FUN_0202DEA4: ; 0x0202DEA4 ldr r1, _0202DEBC ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x1 bne _0202DEB8 mov r0, #0x1 bx lr _0202DEB8: mov r0, #0x0 bx lr .balign 4 _0202DEBC: .word 0x021C59E4 thumb_func_start FUN_0202DEC0 FUN_0202DEC0: ; 0x0202DEC0 ldr r1, _0202DEDC ; =0x021C59E4 mov r2, #0x1 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x2 beq _0202DED8 cmp r0, #0x1 beq _0202DED8 mov r2, #0x0 _0202DED8: add r0, r2, #0x0 bx lr .balign 4 _0202DEDC: .word 0x021C59E4 thumb_func_start FUN_0202DEE0 FUN_0202DEE0: ; 0x0202DEE0 ldr r1, _0202DEF0 ; =0x021C59E4 mov r2, #0x2 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bx lr .balign 4 _0202DEF0: .word 0x021C59E4 thumb_func_start FUN_0202DEF4 FUN_0202DEF4: ; 0x0202DEF4 ldr r1, _0202DF04 ; =0x021C59E4 mov r2, #0x3 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bx lr .balign 4 _0202DF04: .word 0x021C59E4 thumb_func_start FUN_0202DF08 FUN_0202DF08: ; 0x0202DF08 ldr r1, _0202DF24 ; =0x021C59E4 mov r0, #0x0 ldr r3, [r1, #0x0] mov r1, #0xe6 lsl r1, r1, #0x2 _0202DF12: ldrb r2, [r3, r1] cmp r2, #0x1 beq _0202DF22 add r0, r0, #0x1 add r3, r3, #0x1 cmp r0, #0x8 blt _0202DF12 mov r0, #0xff _0202DF22: bx lr .balign 4 _0202DF24: .word 0x021C59E4 thumb_func_start FUN_0202DF28 FUN_0202DF28: ; 0x0202DF28 push {r3-r4} ldr r1, _0202DF50 ; =0x021C59E4 mov r0, #0x0 ldr r4, [r1, #0x0] mov r1, #0xe6 add r3, r0, #0x0 lsl r1, r1, #0x2 _0202DF36: ldrb r2, [r4, r1] cmp r2, #0x2 beq _0202DF40 cmp r2, #0x3 bne _0202DF42 _0202DF40: add r0, r0, #0x1 _0202DF42: add r3, r3, #0x1 add r4, r4, #0x1 cmp r3, #0x8 blt _0202DF36 pop {r3-r4} bx lr nop _0202DF50: .word 0x021C59E4 thumb_func_start FUN_0202DF54 FUN_0202DF54: ; 0x0202DF54 push {r4-r6, lr} ldr r0, _0202DFA0 ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202DF9C bl FUN_02030F20 cmp r0, #0x0 beq _0202DF9C mov r6, #0xe6 ldr r4, _0202DFA0 ; =0x021C59E4 mov r5, #0x0 lsl r6, r6, #0x2 _0202DF6E: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0202DF96 cmp r5, #0x0 bne _0202DF86 bl FUN_02031280 cmp r0, #0x0 bne _0202DF96 _0202DF86: ldr r0, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, r6] cmp r0, #0x0 beq _0202DF96 add r0, r5, #0x0 bl FUN_0202DE78 _0202DF96: add r5, r5, #0x1 cmp r5, #0x8 blt _0202DF6E _0202DF9C: pop {r4-r6, pc} nop _0202DFA0: .word 0x021C59E4 thumb_func_start FUN_0202DFA4 FUN_0202DFA4: ; 0x0202DFA4 ldr r1, _0202DFD4 ; =0x021C59E4 ldr r3, [r1, #0x0] cmp r3, #0x0 bne _0202DFB0 mov r0, #0x0 bx lr _0202DFB0: mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x1 beq _0202DFC4 cmp r1, #0x2 beq _0202DFC4 cmp r1, #0x3 bne _0202DFD0 _0202DFC4: lsl r0, r0, #0x2 add r1, r3, r0 mov r0, #0xd2 lsl r0, r0, #0x2 ldr r0, [r1, r0] bx lr _0202DFD0: mov r0, #0x0 bx lr .balign 4 _0202DFD4: .word 0x021C59E4 thumb_func_start FUN_0202DFD8 FUN_0202DFD8: ; 0x0202DFD8 ldr r1, _0202DFF8 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202DFF2 mov r1, #0x68 add r3, #0x48 mul r1, r0 add r0, r3, r1 bx lr _0202DFF2: mov r0, #0x0 bx lr nop _0202DFF8: .word 0x021C59E4 thumb_func_start FUN_0202DFFC FUN_0202DFFC: ; 0x0202DFFC ldr r1, _0202E01C ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E016 mov r1, #0x68 add r3, #0x54 mul r1, r0 add r0, r3, r1 bx lr _0202E016: mov r0, #0x0 bx lr nop _0202E01C: .word 0x021C59E4 thumb_func_start FUN_0202E020 FUN_0202E020: ; 0x0202E020 ldr r1, _0202E040 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E03C mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6b ldrb r0, [r0, #0x0] bx lr _0202E03C: mov r0, #0x0 bx lr .balign 4 _0202E040: .word 0x021C59E4 thumb_func_start FUN_0202E044 FUN_0202E044: ; 0x0202E044 ldr r1, _0202E064 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E060 mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6c ldrb r0, [r0, #0x0] bx lr _0202E060: mov r0, #0x0 bx lr .balign 4 _0202E064: .word 0x021C59E4 thumb_func_start FUN_0202E068 FUN_0202E068: ; 0x0202E068 ldr r1, _0202E088 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E084 mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6d ldrb r0, [r0, #0x0] bx lr _0202E084: mov r0, #0x0 bx lr .balign 4 _0202E088: .word 0x021C59E4 thumb_func_start FUN_0202E08C FUN_0202E08C: ; 0x0202E08C push {r4-r6, lr} mov r4, #0x0 add r5, r4, #0x0 add r6, r4, #0x0 _0202E094: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E0E8 ldr r0, _0202E0F4 ; =0x021C59E4 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202E0E8 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E0E8 ldr r0, _0202E0F4 ; =0x021C59E4 ldr r1, _0202E0F8 ; =0x00000399 ldr r0, [r0, #0x0] add r2, r0, r4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E0E8 add r1, r6, #0x0 add r2, r0, r5 _0202E0D0: add r3, r2, #0x0 add r3, #0x70 ldrb r0, [r2, #0x8] ldrb r3, [r3, #0x0] cmp r0, r3 beq _0202E0E0 mov r0, #0x0 pop {r4-r6, pc} _0202E0E0: add r1, r1, #0x1 add r2, r2, #0x1 cmp r1, #0x20 blt _0202E0D0 _0202E0E8: add r4, r4, #0x1 add r5, #0x68 cmp r4, #0x7 blt _0202E094 mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0202E0F4: .word 0x021C59E4 _0202E0F8: .word 0x00000399 thumb_func_start FUN_0202E0FC FUN_0202E0FC: ; 0x0202E0FC push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0202E1B4 ; =0x021C59E4 add r6, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202E1B0 cmp r7, #0x2 beq _0202E11C bl FUN_02031190 bl FUN_020313CC mov r1, #0x1 and r0, r1 str r0, [sp, #0x0] _0202E11C: mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _0202E1B0 add r5, r4, #0x0 _0202E128: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 mov r1, #0xe6 ldr r0, [r0, #0x0] lsl r1, r1, #0x2 add r2, r0, r4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E1A4 cmp r7, #0x0 bne _0202E16E add r0, r4, #0x0 bl FUN_020313CC mov r1, #0x1 and r1, r0 ldr r0, [sp, #0x0] cmp r0, r1 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 mov r1, #0xda ldr r0, [r0, #0x0] lsl r1, r1, #0x2 add r0, r0, r5 ldrh r1, [r0, r1] add r2, r1, r6 mov r1, #0xda lsl r1, r1, #0x2 strh r2, [r0, r1] b _0202E1A4 _0202E16E: cmp r7, #0x1 bne _0202E194 add r0, r4, #0x0 bl FUN_020313CC mov r1, #0x1 and r1, r0 ldr r0, [sp, #0x0] cmp r0, r1 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 ldr r1, _0202E1B8 ; =0x0000036A ldr r0, [r0, #0x0] add r0, r0, r5 ldrh r1, [r0, r1] add r2, r1, r6 ldr r1, _0202E1B8 ; =0x0000036A strh r2, [r0, r1] b _0202E1A4 _0202E194: mov r1, #0xdb add r0, r0, r5 lsl r1, r1, #0x2 ldrh r1, [r0, r1] add r2, r1, r6 mov r1, #0xdb lsl r1, r1, #0x2 strh r2, [r0, r1] _0202E1A4: add r5, r5, #0x6 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _0202E128 _0202E1B0: pop {r3-r7, pc} nop _0202E1B4: .word 0x021C59E4 _0202E1B8: .word 0x0000036A thumb_func_start FUN_0202E1BC FUN_0202E1BC: ; 0x0202E1BC push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_020286EC str r0, [sp, #0x4] mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _0202E224 add r5, r4, #0x0 _0202E1D4: add r0, r4, #0x0 bl FUN_0202DFD8 add r1, r0, #0x0 beq _0202E218 add r0, r7, #0x0 add r2, sp, #0x8 bl FUN_02033874 cmp r0, #0x0 beq _0202E1EE cmp r0, #0x1 bne _0202E218 _0202E1EE: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _0202E1F8 bl ErrorHandling _0202E1F8: ldr r0, _0202E254 ; =0x021C59E4 mov r2, #0xda ldr r0, [r0, #0x0] ldr r3, _0202E258 ; =0x0000036A add r6, r0, r5 mov r0, #0xdb lsl r0, r0, #0x2 ldrh r0, [r6, r0] lsl r2, r2, #0x2 str r0, [sp, #0x0] ldrh r2, [r6, r2] ldrh r3, [r6, r3] ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] bl FUN_02028608 _0202E218: add r5, r5, #0x6 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _0202E1D4 _0202E224: mov r3, #0xda mov r2, #0x0 lsl r3, r3, #0x2 ldr r6, _0202E254 ; =0x021C59E4 add r1, r2, #0x0 add r0, r2, #0x0 add r4, r3, #0x2 add r5, r3, #0x4 _0202E234: ldr r7, [r6, #0x0] add r2, r2, #0x1 add r7, r7, r1 strh r0, [r7, r3] ldr r7, [r6, #0x0] add r7, r7, r1 strh r0, [r7, r4] ldr r7, [r6, #0x0] add r7, r7, r1 add r1, r1, #0x6 strh r0, [r7, r5] cmp r2, #0x8 blt _0202E234 add sp, #0xc pop {r4-r7, pc} nop _0202E254: .word 0x021C59E4 _0202E258: .word 0x0000036A thumb_func_start FUN_0202E25C FUN_0202E25C: ; 0x0202E25C push {r4, lr} add r4, r0, #0x0 cmp r1, #0x1 bne _0202E26E mov r0, #0x0 mov r1, #0x1 bl FUN_0202E0FC b _0202E27E _0202E26E: mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0202E27E mov r0, #0x1 add r1, r0, #0x0 bl FUN_0202E0FC _0202E27E: add r0, r4, #0x0 bl FUN_0202E1BC pop {r4, pc} .balign 4 thumb_func_start FUN_0202E288 FUN_0202E288: ; 0x0202E288 push {r4, lr} add r4, r0, #0x0 mov r0, #0x2 bl FUN_0202E0FC add r0, r4, #0x0 bl FUN_0202E1BC pop {r4, pc} .balign 4 thumb_func_start FUN_0202E29C FUN_0202E29C: ; 0x0202E29C push {r4, lr} add r4, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202E332 mov r1, #0xdb mov r0, #0xf lsl r1, r1, #0x4 bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 mov r2, #0xdb str r0, [r1, #0x8] mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 bl FUN_0202CEEC add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 ldr r2, [r1, #0x8] ldr r1, _0202E338 ; =0x00000CA4 str r0, [r2, r1] bl FUN_0202CEEC add r2, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E338 ; =0x00000CA4 ldr r0, [r1, r0] mov r1, #0x0 blx MI_CpuFill8 bl FUN_02023AC4 add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 ldr r2, [r1, #0x8] ldr r1, _0202E33C ; =0x00000CBC str r0, [r2, r1] bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E33C ; =0x00000CBC ldr r0, [r1, r0] mov r1, #0x0 blx MI_CpuFill8 ldr r2, _0202E334 ; =0x021C59E8 mov r1, #0x33 ldr r3, _0202E340 ; =0x00000333 ldr r0, [r2, #0x8] lsl r1, r1, #0x6 str r3, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x8] sub r0, #0x8 str r4, [r3, r0] ldr r0, [r2, #0x8] sub r1, #0x18 add r0, r0, r1 bl FUN_02013724 bl FUN_0202E500 _0202E332: pop {r4, pc} .balign 4 _0202E334: .word 0x021C59E8 _0202E338: .word 0x00000CA4 _0202E33C: .word 0x00000CBC _0202E340: .word 0x00000333 thumb_func_start FUN_0202E344 FUN_0202E344: ; 0x0202E344 ldr r0, _0202E354 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202E350 mov r0, #0x1 bx lr _0202E350: mov r0, #0x0 bx lr .balign 4 _0202E354: .word 0x021C59E8 thumb_func_start FUN_0202E358 FUN_0202E358: ; 0x0202E358 push {r4-r5} mov r5, #0x0 cmp r2, #0x0 ble _0202E378 _0202E360: ldrb r4, [r0, #0x0] ldrb r3, [r1, #0x0] cmp r4, r3 beq _0202E36E mov r0, #0x0 pop {r4-r5} bx lr _0202E36E: add r5, r5, #0x1 add r0, r0, #0x1 add r1, r1, #0x1 cmp r5, r2 blt _0202E360 _0202E378: mov r0, #0x1 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0202E380 FUN_0202E380: ; 0x0202E380 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02033534 add r5, r0, #0x0 bl FUN_0203354C add r4, r7, #0x0 add r6, r0, #0x0 add r4, #0x50 cmp r5, #0xe beq _0202E3C2 ldrb r0, [r4, #0x4] bl FUN_0202D8B0 cmp r0, #0x0 beq _0202E3AC add r0, r5, #0x0 bl FUN_0202D8B0 cmp r0, #0x0 bne _0202E3C2 _0202E3AC: add r0, r4, #0x0 add r0, #0x54 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202E3BC ldrb r0, [r4, #0x4] cmp r0, #0xa beq _0202E460 _0202E3BC: ldrb r0, [r4, #0x4] cmp r0, r5 bne _0202E460 _0202E3C2: cmp r5, #0xe beq _0202E3CC ldrb r0, [r4, #0x5] cmp r0, r6 bne _0202E460 _0202E3CC: mov r6, #0x0 add r4, r6, #0x0 add r5, r6, #0x0 _0202E3D2: ldr r0, _0202E464 ; =0x021C59E8 ldr r1, _0202E468 ; =0x00000C84 ldr r0, [r0, #0x8] add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E412 add r0, #0x58 add r0, r0, r5 add r1, r7, #0x4 mov r2, #0x6 bl FUN_0202E358 cmp r0, #0x0 beq _0202E412 ldr r2, _0202E464 ; =0x021C59E8 lsl r1, r6, #0x1 ldr r3, [r2, #0x8] mov r0, #0x96 add r3, r3, r1 ldr r1, _0202E468 ; =0x00000C84 strh r0, [r3, r1] ldr r3, [r2, #0x8] mov r2, #0xc0 add r1, r6, #0x0 add r3, #0x54 mul r1, r2 add r0, r7, #0x0 add r1, r3, r1 blx MI_CpuCopy8 pop {r3-r7, pc} _0202E412: add r6, r6, #0x1 add r4, r4, #0x2 add r5, #0xc0 cmp r6, #0x10 blt _0202E3D2 ldr r0, _0202E464 ; =0x021C59E8 ldr r2, _0202E468 ; =0x00000C84 ldr r0, [r0, #0x8] mov r1, #0x0 add r4, r0, #0x0 _0202E426: ldrh r3, [r4, r2] cmp r3, #0x0 beq _0202E434 add r1, r1, #0x1 add r4, r4, #0x2 cmp r1, #0x10 blt _0202E426 _0202E434: cmp r1, #0x10 bge _0202E460 lsl r2, r1, #0x1 add r2, r0, r2 ldr r0, _0202E468 ; =0x00000C84 mov r3, #0x96 strh r3, [r2, r0] ldr r2, _0202E464 ; =0x021C59E8 add r3, r1, #0x0 ldr r4, [r2, #0x8] mov r2, #0xc0 add r4, #0x54 mul r3, r2 add r0, r7, #0x0 add r1, r4, r3 blx MI_CpuCopy8 ldr r0, _0202E464 ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E46C ; =0x00000CB4 strb r2, [r1, r0] _0202E460: pop {r3-r7, pc} nop _0202E464: .word 0x021C59E8 _0202E468: .word 0x00000C84 _0202E46C: .word 0x00000CB4 thumb_func_start FUN_0202E470 FUN_0202E470: ; 0x0202E470 push {r3, lr} cmp r1, #0x0 beq _0202E47A blx OS_Terminate _0202E47A: ldr r0, _0202E484 ; =0x021C59E8 mov r1, #0x2 str r1, [r0, #0x4] pop {r3, pc} nop _0202E484: .word 0x021C59E8 thumb_func_start FUN_0202E488 FUN_0202E488: ; 0x0202E488 ldr r0, _0202E494 ; =0x021C59E8 mov r1, #0x0 str r1, [r0, #0x4] ldr r3, _0202E498 ; =FUN_02016454 mov r0, #0x4 bx r3 .balign 4 _0202E494: .word 0x021C59E8 _0202E498: .word FUN_02016454 thumb_func_start FUN_0202E49C FUN_0202E49C: ; 0x0202E49C push {r3, lr} mov r0, #0x4 bl FUN_02016444 ldr r0, _0202E4C0 ; =0x021C59E8 mov r1, #0x1 str r1, [r0, #0x4] ldr r1, _0202E4C4 ; =FUN_0202E470 mov r0, #0x8 mov r2, #0x0 blx FUN_02090DB8 cmp r0, #0x1 beq _0202E4BC blx OS_Terminate _0202E4BC: pop {r3, pc} nop _0202E4C0: .word 0x021C59E8 _0202E4C4: .word FUN_0202E470 thumb_func_start FUN_0202E4C8 FUN_0202E4C8: ; 0x0202E4C8 ldr r0, _0202E4D8 ; =0x021C59E8 ldr r0, [r0, #0x4] cmp r0, #0x2 bne _0202E4D4 mov r0, #0x1 bx lr _0202E4D4: mov r0, #0x0 bx lr .balign 4 _0202E4D8: .word 0x021C59E8 thumb_func_start FUN_0202E4DC FUN_0202E4DC: ; 0x0202E4DC ldr r0, _0202E4EC ; =0x021C59E8 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202E4E8 mov r0, #0x1 bx lr _0202E4E8: mov r0, #0x0 bx lr .balign 4 _0202E4EC: .word 0x021C59E8 thumb_func_start FUN_0202E4F0 FUN_0202E4F0: ; 0x0202E4F0 ldr r3, _0202E4F8 ; =FUN_02090CC8 ldr r0, _0202E4FC ; =FUN_0202E488 mov r1, #0x0 bx r3 .balign 4 _0202E4F8: .word FUN_02090CC8 _0202E4FC: .word FUN_0202E488 thumb_func_start FUN_0202E500 FUN_0202E500: ; 0x0202E500 push {r3, lr} ldr r1, _0202E534 ; =0x021C59E8 mov r0, #0xcb ldr r2, [r1, #0x8] mov r3, #0x0 lsl r0, r0, #0x4 str r3, [r2, r0] ldr r1, [r1, #0x8] sub r0, #0xc ldr r2, [r1, r0] mov r0, #0x1f add r1, r2, #0x0 and r1, r0 mov r0, #0x20 sub r0, r0, r1 add r0, r2, r0 bl FUN_0202CE64 ldr r0, _0202E534 ; =0x021C59E8 ldr r1, [r0, #0x8] mov r0, #0x33 lsl r0, r0, #0x6 ldr r0, [r1, r0] bl FUN_0202CB70 pop {r3, pc} .balign 4 _0202E534: .word 0x021C59E8 thumb_func_start FUN_0202E538 FUN_0202E538: ; 0x0202E538 push {r3-r5, lr} mov r4, #0x0 ldr r2, _0202E564 ; =0x021C59E8 ldr r0, _0202E568 ; =0x00000C84 add r5, r4, #0x0 add r1, r4, #0x0 _0202E544: ldr r3, [r2, #0x8] add r4, r4, #0x1 add r3, r3, r5 add r5, r5, #0x2 strh r1, [r3, r0] cmp r4, #0x10 blt _0202E544 ldr r0, _0202E564 ; =0x021C59E8 mov r2, #0x3 ldr r0, [r0, #0x8] lsl r2, r2, #0xa add r0, #0x54 blx MI_CpuFill8 pop {r3-r5, pc} nop _0202E564: .word 0x021C59E8 _0202E568: .word 0x00000C84 thumb_func_start FUN_0202E56C FUN_0202E56C: ; 0x0202E56C push {r3-r4} ldr r1, _0202E58C ; =0x021C59E8 lsl r0, r0, #0x18 ldr r2, [r1, #0x8] ldr r4, _0202E590 ; =0x00000DAD lsr r0, r0, #0x18 ldrb r1, [r2, r4] mov r3, #0x8 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1c orr r0, r1 strb r0, [r2, r4] pop {r3-r4} bx lr nop _0202E58C: .word 0x021C59E8 _0202E590: .word 0x00000DAD thumb_func_start FUN_0202E594 FUN_0202E594: ; 0x0202E594 push {r4-r5} ldr r1, _0202E5F0 ; =0x021C59E8 ldr r0, _0202E5F4 ; =0x00000CB4 ldr r3, [r1, #0x8] mov r2, #0x0 strb r2, [r3, r0] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x1 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x4 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r4, [r1, #0x8] add r3, #0xf6 strb r2, [r4, r3] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x10 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r4, [r1, #0x8] add r3, #0xf8 strb r2, [r4, r3] ldr r1, [r1, #0x8] add r0, #0xf7 strb r2, [r1, r0] pop {r4-r5} bx lr .balign 4 _0202E5F0: .word 0x021C59E8 _0202E5F4: .word 0x00000CB4 thumb_func_start FUN_0202E5F8 FUN_0202E5F8: ; 0x0202E5F8 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202E594 add r0, r5, #0x0 bl FUN_0202E56C bl FUN_0202D2F4 ldr r0, _0202E65C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E660 ; =0x00000DAB ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202E62A ldr r0, _0202E664 ; =FUN_020303BC mov r1, #0xe bl FUN_0202D0A0 ldr r0, _0202E65C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E660 ; =0x00000DAB strb r2, [r1, r0] _0202E62A: ldr r0, _0202E65C ; =0x021C59E8 ldr r3, _0202E668 ; =0x00000DAD ldr r1, [r0, #0x8] mov r2, #0x20 ldrb r0, [r1, r3] bic r0, r2 lsl r2, r4, #0x18 lsr r2, r2, #0x18 lsl r2, r2, #0x1f lsr r2, r2, #0x1a orr r0, r2 strb r0, [r1, r3] bl FUN_0202CBD4 cmp r0, #0x1 bne _0202E656 bl FUN_0202CBFC cmp r0, #0x0 beq _0202E656 mov r0, #0x1 pop {r3-r5, pc} _0202E656: mov r0, #0x0 pop {r3-r5, pc} nop _0202E65C: .word 0x021C59E8 _0202E660: .word 0x00000DAB _0202E664: .word FUN_020303BC _0202E668: .word 0x00000DAD thumb_func_start FUN_0202E66C FUN_0202E66C: ; 0x0202E66C push {r4, lr} sub sp, #0x8 add r4, r1, #0x0 bl FUN_0202E594 cmp r4, #0x0 beq _0202E67E bl FUN_0202E538 _0202E67E: ldr r0, _0202E6DC ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E6E0 ; =0x00000DAB ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202E69C ldr r0, _0202E6E4 ; =FUN_02030238 mov r1, #0xe bl FUN_0202D0A0 ldr r0, _0202E6DC ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E6E0 ; =0x00000DAB strb r2, [r1, r0] _0202E69C: bl FUN_0202CBD4 cmp r0, #0x1 bne _0202E6D4 ldr r2, _0202E6E8 ; =0x020EEC40 add r0, sp, #0x0 ldrb r3, [r2, #0x0] add r1, sp, #0x0 strb r3, [r0, #0x0] ldrb r3, [r2, #0x1] strb r3, [r0, #0x1] ldrb r3, [r2, #0x2] strb r3, [r0, #0x2] ldrb r3, [r2, #0x3] strb r3, [r0, #0x3] ldrb r3, [r2, #0x4] ldrb r2, [r2, #0x5] strb r3, [r0, #0x4] strb r2, [r0, #0x5] ldr r0, _0202E6EC ; =FUN_0202E380 mov r2, #0x0 bl FUN_0202C570 cmp r0, #0x0 beq _0202E6D4 add sp, #0x8 mov r0, #0x1 pop {r4, pc} _0202E6D4: mov r0, #0x0 add sp, #0x8 pop {r4, pc} nop _0202E6DC: .word 0x021C59E8 _0202E6E0: .word 0x00000DAB _0202E6E4: .word FUN_02030238 _0202E6E8: .word 0x020EEC40 _0202E6EC: .word FUN_0202E380 thumb_func_start FUN_0202E6F0 FUN_0202E6F0: ; 0x0202E6F0 push {r3, lr} ldr r0, _0202E77C ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 bne _0202E6FE mov r0, #0x1 pop {r3, pc} _0202E6FE: ldr r0, _0202E780 ; =0x00000DAC ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202E710 cmp r0, #0x1 beq _0202E740 cmp r0, #0x2 beq _0202E758 b _0202E776 _0202E710: bl FUN_0202D21C cmp r0, #0x0 beq _0202E728 bl FUN_0202C770 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E728: bl FUN_0202D1E4 cmp r0, #0x0 bne _0202E776 bl FUN_0202D100 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x2 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E740: bl FUN_0202D1E4 cmp r0, #0x0 bne _0202E776 bl FUN_0202D100 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x2 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E758: bl FUN_0202D1C8 cmp r0, #0x0 beq _0202E764 mov r0, #0x1 pop {r3, pc} _0202E764: bl FUN_0202D200 cmp r0, #0x0 beq _0202E776 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] _0202E776: mov r0, #0x0 pop {r3, pc} nop _0202E77C: .word 0x021C59E8 _0202E780: .word 0x00000DAC thumb_func_start FUN_0202E784 FUN_0202E784: ; 0x0202E784 push {r3, lr} ldr r0, _0202E7A8 ; =0x021C59E8 ldr r2, [r0, #0x8] cmp r2, #0x0 beq _0202E7A2 ldr r0, _0202E7AC ; =0x00000DAA ldrb r1, [r2, r0] cmp r1, #0x0 bne _0202E7A2 mov r1, #0x1 strb r1, [r2, r0] bl FUN_0202D100 mov r0, #0x1 pop {r3, pc} _0202E7A2: mov r0, #0x0 pop {r3, pc} nop _0202E7A8: .word 0x021C59E8 _0202E7AC: .word 0x00000DAA thumb_func_start FUN_0202E7B0 FUN_0202E7B0: ; 0x0202E7B0 push {r3, lr} ldr r1, _0202E7D0 ; =0x021C59E8 ldr r2, [r1, #0x8] cmp r2, #0x0 beq _0202E7CE cmp r0, #0x0 ldr r0, _0202E7D4 ; =0x00000DAA beq _0202E7C6 mov r1, #0x2 strb r1, [r2, r0] pop {r3, pc} _0202E7C6: mov r1, #0x0 strb r1, [r2, r0] bl FUN_0202E500 _0202E7CE: pop {r3, pc} .balign 4 _0202E7D0: .word 0x021C59E8 _0202E7D4: .word 0x00000DAA thumb_func_start FUN_0202E7D8 FUN_0202E7D8: ; 0x0202E7D8 push {r3, lr} ldr r0, _0202E804 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E808 ; =0x00000CBC ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E80C ; =0x00000CA4 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 ldr r0, [r0, #0x8] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 mov r1, #0x0 str r1, [r0, #0x8] pop {r3, pc} nop _0202E804: .word 0x021C59E8 _0202E808: .word 0x00000CBC _0202E80C: .word 0x00000CA4 thumb_func_start FUN_0202E810 FUN_0202E810: ; 0x0202E810 push {r4, lr} bl FUN_02030F40 cmp r0, #0x0 bne _0202E81E mov r0, #0x0 pop {r4, pc} _0202E81E: ldr r1, _0202E83C ; =0x021C59E8 mov r0, #0x0 ldr r4, [r1, #0x8] ldr r1, _0202E840 ; =0x00000C84 add r3, r0, #0x0 _0202E828: ldrh r2, [r4, r1] cmp r2, #0x0 beq _0202E830 add r0, r0, #0x1 _0202E830: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, #0x10 blt _0202E828 pop {r4, pc} nop _0202E83C: .word 0x021C59E8 _0202E840: .word 0x00000C84 thumb_func_start FUN_0202E844 FUN_0202E844: ; 0x0202E844 push {r3-r5, lr} ldr r1, _0202E870 ; =0x021C59E8 mov r4, #0x0 ldr r5, [r1, #0x8] ldr r1, _0202E874 ; =0x00000C84 add r3, r4, #0x0 _0202E850: ldrh r2, [r5, r1] cmp r2, #0x0 beq _0202E860 cmp r4, r0 bne _0202E85E add r0, r3, #0x0 pop {r3-r5, pc} _0202E85E: add r4, r4, #0x1 _0202E860: add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, #0x10 blt _0202E850 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202E870: .word 0x021C59E8 _0202E874: .word 0x00000C84 thumb_func_start FUN_0202E878 FUN_0202E878: ; 0x0202E878 ldr r0, _0202E884 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E888 ; =0x00000CB4 ldrb r0, [r1, r0] bx lr nop _0202E884: .word 0x021C59E8 _0202E888: .word 0x00000CB4 thumb_func_start FUN_0202E88C FUN_0202E88C: ; 0x0202E88C ldr r0, _0202E898 ; =0x021C59E8 mov r2, #0x0 ldr r1, [r0, #0x8] ldr r0, _0202E89C ; =0x00000CB4 strb r2, [r1, r0] bx lr .balign 4 _0202E898: .word 0x021C59E8 _0202E89C: .word 0x00000CB4 thumb_func_start FUN_0202E8A0 FUN_0202E8A0: ; 0x0202E8A0 ldr r1, _0202E8C8 ; =0x021C59E8 ldr r3, [r1, #0x8] lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202E8CC ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E8C2 mov r1, #0xc0 mul r1, r0 add r0, r3, r1 add r0, #0xaa ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0202E8C4 mov r0, #0x1 bx lr _0202E8C2: mov r0, #0x0 _0202E8C4: bx lr nop _0202E8C8: .word 0x021C59E8 _0202E8CC: .word 0x00000C84 thumb_func_start FUN_0202E8D0 FUN_0202E8D0: ; 0x0202E8D0 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0xf _0202E8D6: add r0, r4, #0x0 bl FUN_0202E8A0 cmp r0, r5 ble _0202E8E8 cmp r0, #0x8 bge _0202E8E8 add r0, r4, #0x0 pop {r3-r5, pc} _0202E8E8: sub r4, r4, #0x1 bpl _0202E8D6 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202E8F4 FUN_0202E8F4: ; 0x0202E8F4 push {r3-r7, lr} bl FUN_0202E810 cmp r0, #0x0 bne _0202E904 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0202E904: mov r5, #0x2d ldr r7, _0202E948 ; =0x021C59E8 mov r6, #0xf mov r4, #0x1e lsl r5, r5, #0x6 _0202E90E: ldr r0, [r7, #0x8] ldr r1, _0202E94C ; =0x00000C84 add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E938 add r0, #0x58 add r0, r0, r5 bl FUN_0202EFE4 cmp r0, #0x0 beq _0202E938 add r0, r6, #0x0 bl FUN_0202E8A0 cmp r0, #0x1 ble _0202E938 cmp r0, #0x8 bge _0202E938 add r0, r6, #0x0 pop {r3-r7, pc} _0202E938: sub r4, r4, #0x2 sub r5, #0xc0 sub r6, r6, #0x1 bpl _0202E90E mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} nop _0202E948: .word 0x021C59E8 _0202E94C: .word 0x00000C84 thumb_func_start FUN_0202E950 FUN_0202E950: ; 0x0202E950 push {r3-r7, lr} bl FUN_0202E810 cmp r0, #0x0 bne _0202E960 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0202E960: mov r5, #0x2d ldr r7, _0202E9A4 ; =0x021C59E8 mov r6, #0xf mov r4, #0x1e lsl r5, r5, #0x6 _0202E96A: ldr r0, [r7, #0x8] ldr r1, _0202E9A8 ; =0x00000C84 add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E986 add r0, #0x58 add r0, r0, r5 bl FUN_0202EFE4 cmp r0, #0x0 beq _0202E986 add r0, r6, #0x0 pop {r3-r7, pc} _0202E986: sub r4, r4, #0x2 sub r5, #0xc0 sub r6, r6, #0x1 bpl _0202E96A mov r0, #0x1 bl FUN_0202E8D0 mov r1, #0x0 mvn r1, r1 cmp r0, r1 bne _0202E9A2 mov r0, #0x0 bl FUN_0202E8D0 _0202E9A2: pop {r3-r7, pc} .balign 4 _0202E9A4: .word 0x021C59E8 _0202E9A8: .word 0x00000C84 thumb_func_start FUN_0202E9AC FUN_0202E9AC: ; 0x0202E9AC push {r4-r6, lr} add r4, r1, #0x0 ldr r1, _0202E9E0 ; =0x021C59E8 mov r5, #0x0 ldr r6, [r1, #0x8] ldr r1, _0202E9E4 ; =0x00000C84 add r3, r5, #0x0 _0202E9BA: ldrh r2, [r6, r1] cmp r2, #0x0 beq _0202E9D4 cmp r0, r5 bne _0202E9D2 add r0, r3, #0x0 bl FUN_0202EF84 add r1, r4, #0x0 bl FUN_0202393C pop {r4-r6, pc} _0202E9D2: add r5, r5, #0x1 _0202E9D4: add r3, r3, #0x1 add r6, r6, #0x2 cmp r3, #0x10 blt _0202E9BA pop {r4-r6, pc} nop _0202E9E0: .word 0x021C59E8 _0202E9E4: .word 0x00000C84 thumb_func_start FUN_0202E9E8 FUN_0202E9E8: ; 0x0202E9E8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0202CBD4 cmp r0, #0x2 bne _0202E9FC bl FUN_0202C770 mov r0, #0x0 pop {r3-r5, pc} _0202E9FC: bl FUN_0202CBD4 cmp r0, #0x1 bne _0202EA48 bl FUN_02033534 mov r1, #0xc0 add r4, r5, #0x0 mul r4, r1 ldr r1, _0202EA4C ; =0x021C59E8 ldr r3, [r1, #0x8] add r1, r3, r4 add r1, #0x8a ldrh r2, [r1, #0x0] ldr r1, _0202EA50 ; =0x00000DA8 strb r2, [r3, r1] bl FUN_0202D8B0 cmp r0, #0x0 beq _0202EA36 ldr r1, _0202EA4C ; =0x021C59E8 mov r0, #0x1 ldr r1, [r1, #0x8] mov r2, #0x0 add r1, #0x58 add r1, r1, r4 bl FUN_0202C4D8 b _0202EA44 _0202EA36: ldr r1, _0202EA4C ; =0x021C59E8 mov r0, #0x1 ldr r1, [r1, #0x8] add r1, #0x54 add r1, r1, r4 bl FUN_0202D034 _0202EA44: mov r0, #0x1 pop {r3-r5, pc} _0202EA48: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202EA4C: .word 0x021C59E8 _0202EA50: .word 0x00000DA8 thumb_func_start FUN_0202EA54 FUN_0202EA54: ; 0x0202EA54 push {r4-r7} mov r4, #0x0 ldr r1, _0202EA90 ; =0x021C59E8 ldr r0, _0202EA94 ; =0x00000C84 add r5, r4, #0x0 mov r2, #0x1 _0202EA60: ldr r3, [r1, #0x8] add r3, r3, r5 ldrh r6, [r3, r0] cmp r6, #0x0 beq _0202EA84 beq _0202EA84 ldr r6, _0202EA94 ; =0x00000C84 ldrh r6, [r3, r6] sub r7, r6, #0x1 ldr r6, _0202EA94 ; =0x00000C84 strh r7, [r3, r6] ldr r3, [r1, #0x8] add r7, r3, r5 ldrh r6, [r7, r6] cmp r6, #0x0 bne _0202EA84 ldr r6, _0202EA98 ; =0x00000CB4 strb r2, [r3, r6] _0202EA84: add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x10 blt _0202EA60 pop {r4-r7} bx lr .balign 4 _0202EA90: .word 0x021C59E8 _0202EA94: .word 0x00000C84 _0202EA98: .word 0x00000CB4 thumb_func_start FUN_0202EA9C FUN_0202EA9C: ; 0x0202EA9C push {r3-r5, lr} bl FUN_02033534 add r5, r0, #0x0 bl FUN_0202EF70 add r4, r0, #0x0 cmp r5, #0xf beq _0202EB24 ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r5, r1, r0 bl FUN_02023AC4 cmp r0, #0x20 ble _0202EAC2 bl ErrorHandling _0202EAC2: bl FUN_02023924 cmp r0, #0x20 beq _0202EACE bl ErrorHandling _0202EACE: bl FUN_02023924 add r1, r5, #0x0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, #0x10 blx MI_CpuCopy8 bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB74 ; =0x00000CBC ldr r0, [r1, r0] add r1, r5, #0x0 add r1, #0x30 blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC str r0, [r5, #0x0] bl FUN_02033534 strb r0, [r5, #0x4] bl FUN_0203354C strb r0, [r5, #0x5] ldr r0, _0202EB6C ; =0x021C59E8 mov r2, #0x8 ldr r1, [r0, #0x8] ldr r0, _0202EB78 ; =0x00000CA8 add r0, r1, r0 add r1, r5, #0x0 add r1, #0x8 blx MI_CpuCopy8 bl FUN_0202D358 add r5, #0x54 strb r0, [r5, #0x0] b _0202EB4E _0202EB24: ldr r1, _0202EB6C ; =0x021C59E8 ldr r4, [r1, #0x8] ldr r1, _0202EB70 ; =0x00000CC4 add r5, r4, r1 bl FUN_020239BC ldr r1, _0202EB70 ; =0x00000CC4 str r0, [r4, r1] bl FUN_02033534 strb r0, [r5, #0x4] bl FUN_0203354C strb r0, [r5, #0x5] ldr r0, _0202EB6C ; =0x021C59E8 add r5, #0x8 ldr r0, [r0, #0x8] add r1, r5, #0x0 mov r2, #0x54 blx MI_CpuCopy8 _0202EB4E: ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c blx DC_FlushRange ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c bl FUN_0202CB7C pop {r3-r5, pc} .balign 4 _0202EB6C: .word 0x021C59E8 _0202EB70: .word 0x00000CC4 _0202EB74: .word 0x00000CBC _0202EB78: .word 0x00000CA8 thumb_func_start FUN_0202EB7C FUN_0202EB7C: ; 0x0202EB7C push {r4, lr} ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r4, r1, r0 bl FUN_0202EDB8 ldrb r1, [r4, #0x6] cmp r1, r0 beq _0202EBC6 bl FUN_0202EDB8 strb r0, [r4, #0x6] ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c blx DC_FlushRange ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c bl FUN_0202CB7C ldr r3, _0202EBC8 ; =0x021C59E8 ldr r2, _0202EBCC ; =0x00000CC4 ldr r4, [r3, #0x8] ldrh r3, [r3, #0x0] add r0, r4, r2 sub r2, r2, #0x4 ldr r2, [r4, r2] mov r1, #0x5c bl FUN_0202D240 _0202EBC6: pop {r4, pc} .balign 4 _0202EBC8: .word 0x021C59E8 _0202EBCC: .word 0x00000CC4 thumb_func_start FUN_0202EBD0 FUN_0202EBD0: ; 0x0202EBD0 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0202CBD4 add r5, r0, #0x0 bl FUN_0202DF54 bl FUN_0202EB7C bl FUN_0202D19C cmp r0, #0x0 bne _0202EC0C bl FUN_0202EE24 cmp r0, #0x0 bne _0202EC0C ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED54 ; =0x00000DAD ldrb r1, [r2, r0] lsl r3, r1, #0x1d lsr r3, r3, #0x1f beq _0202EC0C mov r3, #0x1 bic r1, r3 mov r3, #0x1 orr r1, r3 strb r1, [r2, r0] _0202EC0C: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, _0202ED58 ; =0x0000FFFF ldr r3, [r0, #0x8] ldr r0, _0202ED5C ; =0x00000DA6 ldrh r2, [r3, r0] cmp r2, r1 bne _0202EC1C strh r4, [r3, r0] _0202EC1C: ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED54 ; =0x00000DAD ldrb r1, [r2, r0] lsl r3, r1, #0x1e lsr r3, r3, #0x1f beq _0202EC3C sub r3, r0, #0x7 ldrh r3, [r2, r3] cmp r3, r4 bls _0202EC3C mov r3, #0x1 bic r1, r3 mov r3, #0x1 orr r1, r3 strb r1, [r2, r0] _0202EC3C: bl FUN_0202CBE8 cmp r0, #0x19 bne _0202EC4A mov r0, #0x0 bl FUN_020335D0 _0202EC4A: cmp r5, #0x9 bhi _0202ED4C add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202EC5A: ; jump table (using 16-bit offset) .short _0202EC6E - _0202EC5A - 2; case 0 .short _0202EC8E - _0202EC5A - 2; case 1 .short _0202ED4C - _0202EC5A - 2; case 2 .short _0202ED4C - _0202EC5A - 2; case 3 .short _0202ED4C - _0202EC5A - 2; case 4 .short _0202ED4C - _0202EC5A - 2; case 5 .short _0202ED4C - _0202EC5A - 2; case 6 .short _0202ECD2 - _0202EC5A - 2; case 7 .short _0202ECB8 - _0202EC5A - 2; case 8 .short _0202ECB8 - _0202EC5A - 2; case 9 _0202EC6E: ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r1, [r2, r0] cmp r1, #0x1 bne _0202EC82 bl FUN_0202E7D8 add sp, #0x8 pop {r3-r5, pc} _0202EC82: cmp r1, #0x2 bne _0202ED4C mov r1, #0x3 strb r1, [r2, r0] add sp, #0x8 pop {r3-r5, pc} _0202EC8E: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x1 bne _0202ECA2 bl FUN_0202D178 cmp r0, #0x0 bne _0202ED4C _0202ECA2: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x2 bne _0202ED4C bl FUN_0202D178 add sp, #0x8 cmp r0, #0x0 pop {r3-r5, pc} _0202ECB8: ldr r0, _0202ED50 ; =0x021C59E8 ldr r3, [r0, #0x8] cmp r3, #0x0 beq _0202ED4C ldr r1, _0202ED54 ; =0x00000DAD mov r0, #0x1 ldrb r2, [r3, r1] add sp, #0x8 bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r3, r1] pop {r3-r5, pc} _0202ECD2: bl FUN_0202CDA4 ldr r3, _0202ED50 ; =0x021C59E8 ldr r2, _0202ED64 ; =0x00000DA9 ldr r4, [r3, #0x8] ldrb r1, [r4, r2] cmp r1, #0x0 bne _0202ECEE sub r1, r2, #0x5 strh r0, [r4, r1] ldr r0, [r3, #0x8] mov r1, #0x5 strb r1, [r0, r2] b _0202ECF2 _0202ECEE: sub r0, r1, #0x1 strb r0, [r4, r2] _0202ECF2: ldr r1, _0202ED50 ; =0x021C59E8 ldr r0, _0202ED68 ; =0x00000DA4 ldr r2, [r1, #0x8] ldrh r5, [r2, r0] add r0, #0x9 ldrb r0, [r2, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _0202ED0A ldrh r0, [r1, #0x0] add r0, r0, #0x1 strh r0, [r1, #0x0] _0202ED0A: bl FUN_0202EA9C bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202EEE8 str r0, [sp, #0x0] ldr r1, _0202ED50 ; =0x021C59E8 ldr r0, _0202ED54 ; =0x00000DAD ldr r2, [r1, #0x8] add r3, r4, #0x0 ldrb r0, [r2, r0] add r2, r5, #0x0 lsl r0, r0, #0x1a lsr r0, r0, #0x1f str r0, [sp, #0x4] ldrh r1, [r1, #0x0] mov r0, #0x0 bl FUN_0202CF84 ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED6C ; =0x00000DA8 strb r5, [r1, r0] _0202ED4C: add sp, #0x8 pop {r3-r5, pc} .balign 4 _0202ED50: .word 0x021C59E8 _0202ED54: .word 0x00000DAD _0202ED58: .word 0x0000FFFF _0202ED5C: .word 0x00000DA6 _0202ED60: .word 0x00000DAA _0202ED64: .word 0x00000DA9 _0202ED68: .word 0x00000DA4 _0202ED6C: .word 0x00000DA8 thumb_func_start FUN_0202ED70 FUN_0202ED70: ; 0x0202ED70 push {r3, lr} ldr r1, _0202ED80 ; =0x021C59E8 ldr r1, [r1, #0x8] cmp r1, #0x0 beq _0202ED7E bl FUN_0202EBD0 _0202ED7E: pop {r3, pc} .balign 4 _0202ED80: .word 0x021C59E8 thumb_func_start FUN_0202ED84 FUN_0202ED84: ; 0x0202ED84 push {r4, lr} add r4, r0, #0x0 ldr r0, _0202EDB4 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202ED94 mov r0, #0x0 pop {r4, pc} _0202ED94: bl FUN_0202CBD4 cmp r0, #0x4 beq _0202EDA0 mov r0, #0x0 pop {r4, pc} _0202EDA0: bl FUN_0202CB8C mov r2, #0x1 add r1, r2, #0x0 lsl r1, r4 tst r0, r1 bne _0202EDB0 mov r2, #0x0 _0202EDB0: add r0, r2, #0x0 pop {r4, pc} .balign 4 _0202EDB4: .word 0x021C59E8 thumb_func_start FUN_0202EDB8 FUN_0202EDB8: ; 0x0202EDB8 push {r3-r5, lr} mov r4, #0x0 add r5, r4, #0x0 _0202EDBE: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_0202ED84 cmp r0, #0x0 beq _0202EDCC add r4, r4, #0x1 _0202EDCC: add r5, r5, #0x1 cmp r5, #0x8 blt _0202EDBE add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202EDD8 FUN_0202EDD8: ; 0x0202EDD8 ldr r0, _0202EDF0 ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202EDEC ldr r0, _0202EDF4 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x3 bne _0202EDEC mov r0, #0x1 bx lr _0202EDEC: mov r0, #0x0 bx lr .balign 4 _0202EDF0: .word 0x021C59E8 _0202EDF4: .word 0x00000DAA thumb_func_start FUN_0202EDF8 FUN_0202EDF8: ; 0x0202EDF8 ldr r0, _0202EE08 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE04 mov r0, #0x1 bx lr _0202EE04: mov r0, #0x0 bx lr .balign 4 _0202EE08: .word 0x021C59E8 thumb_func_start FUN_0202EE0C FUN_0202EE0C: ; 0x0202EE0C push {r3, lr} ldr r0, _0202EE20 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE1C bl FUN_0202D1C8 pop {r3, pc} _0202EE1C: mov r0, #0x1 pop {r3, pc} .balign 4 _0202EE20: .word 0x021C59E8 thumb_func_start FUN_0202EE24 FUN_0202EE24: ; 0x0202EE24 push {r3, lr} ldr r0, _0202EE3C ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE38 bl FUN_0202CB8C ldr r1, _0202EE40 ; =0x0000FFFE and r0, r1 pop {r3, pc} _0202EE38: mov r0, #0x0 pop {r3, pc} .balign 4 _0202EE3C: .word 0x021C59E8 _0202EE40: .word 0x0000FFFE thumb_func_start FUN_0202EE44 FUN_0202EE44: ; 0x0202EE44 push {r3, lr} bl FUN_0202EE60 cmp r0, #0x0 beq _0202EE5A bl FUN_0202CBE8 cmp r0, #0x14 bne _0202EE5A mov r0, #0x1 pop {r3, pc} _0202EE5A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202EE60 FUN_0202EE60: ; 0x0202EE60 ldr r0, _0202EE7C ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202EE76 ldr r0, _0202EE80 ; =0x00000DAD ldrb r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0202EE76 mov r0, #0x1 bx lr _0202EE76: mov r0, #0x0 bx lr nop _0202EE7C: .word 0x021C59E8 _0202EE80: .word 0x00000DAD thumb_func_start FUN_0202EE84 FUN_0202EE84: ; 0x0202EE84 push {r3-r4} ldr r1, _0202EEA8 ; =0x021C59E8 ldr r2, [r1, #0x8] cmp r2, #0x0 beq _0202EEA2 ldr r4, _0202EEAC ; =0x00000DAD lsl r0, r0, #0x18 ldrb r1, [r2, r4] lsr r0, r0, #0x18 mov r3, #0x4 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1d orr r0, r1 strb r0, [r2, r4] _0202EEA2: pop {r3-r4} bx lr nop _0202EEA8: .word 0x021C59E8 _0202EEAC: .word 0x00000DAD thumb_func_start FUN_0202EEB0 FUN_0202EEB0: ; 0x0202EEB0 push {r4-r5} ldr r5, _0202EEDC ; =0x021C59E8 ldr r2, [r5, #0x8] cmp r2, #0x0 beq _0202EED6 ldr r4, _0202EEE0 ; =0x00000DAD lsl r0, r0, #0x18 ldrb r1, [r2, r4] lsr r0, r0, #0x18 mov r3, #0x2 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1e orr r0, r1 strb r0, [r2, r4] ldr r2, _0202EEE4 ; =0x0000FFFF ldr r1, [r5, #0x8] sub r0, r4, #0x7 strh r2, [r1, r0] _0202EED6: pop {r4-r5} bx lr nop _0202EEDC: .word 0x021C59E8 _0202EEE0: .word 0x00000DAD _0202EEE4: .word 0x0000FFFF thumb_func_start FUN_0202EEE8 FUN_0202EEE8: ; 0x0202EEE8 push {r3-r5, lr} add r5, r0, #0x0 blx WM_GetDispersionBeaconPeriod add r4, r0, #0x0 cmp r5, #0x1a blo _0202EEFA bl ErrorHandling _0202EEFA: cmp r5, #0xa bne _0202EF04 lsl r0, r4, #0xe lsr r0, r0, #0x10 pop {r3-r5, pc} _0202EF04: cmp r5, #0x9 beq _0202EF0C cmp r5, #0xd bne _0202EF12 _0202EF0C: lsl r0, r4, #0xe lsr r0, r0, #0x10 pop {r3-r5, pc} _0202EF12: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202EF18 FUN_0202EF18: ; 0x0202EF18 ldr r1, _0202EF3C ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202EF36 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EF40 ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202EF36 mov r1, #0xc0 add r3, #0x54 mul r1, r0 add r0, r3, r1 bx lr _0202EF36: mov r0, #0x0 bx lr nop _0202EF3C: .word 0x021C59E8 _0202EF40: .word 0x00000C84 thumb_func_start FUN_0202EF44 FUN_0202EF44: ; 0x0202EF44 ldr r1, _0202EF68 ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202EF62 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EF6C ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202EF62 mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 bx lr _0202EF62: mov r0, #0x0 bx lr nop _0202EF68: .word 0x021C59E8 _0202EF6C: .word 0x00000C84 thumb_func_start FUN_0202EF70 FUN_0202EF70: ; 0x0202EF70 ldr r0, _0202EF7C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EF80 ; =0x00000CB8 ldr r0, [r1, r0] bx lr nop _0202EF7C: .word 0x021C59E8 _0202EF80: .word 0x00000CB8 thumb_func_start FUN_0202EF84 FUN_0202EF84: ; 0x0202EF84 ldr r1, _0202EFA4 ; =0x021C59E8 ldr r3, [r1, #0x8] lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EFA8 ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 bne _0202EF98 mov r0, #0x0 bx lr _0202EF98: mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 add r0, #0x10 bx lr .balign 4 _0202EFA4: .word 0x021C59E8 _0202EFA8: .word 0x00000C84 thumb_func_start FUN_0202EFAC FUN_0202EFAC: ; 0x0202EFAC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202EFDC ; =0x021C59E8 add r4, r1, #0x0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EFD8 cmp r4, #0x8 blt _0202EFC2 bl ErrorHandling _0202EFC2: ldr r1, _0202EFDC ; =0x021C59E8 add r0, r5, #0x0 ldr r2, [r1, #0x8] ldr r1, _0202EFE0 ; =0x00000C54 add r3, r2, r1 mov r2, #0x6 add r1, r4, #0x0 mul r1, r2 add r1, r3, r1 blx MI_CpuCopy8 _0202EFD8: pop {r3-r5, pc} nop _0202EFDC: .word 0x021C59E8 _0202EFE0: .word 0x00000C54 thumb_func_start FUN_0202EFE4 FUN_0202EFE4: ; 0x0202EFE4 push {r4-r5} ldr r2, _0202F034 ; =0x021C59E8 mov r1, #0x0 ldr r3, [r2, #0x8] ldr r2, _0202F038 ; =0x00000C54 add r2, r3, r2 ldrb r3, [r0, #0x0] _0202EFF2: ldrb r4, [r2, #0x0] cmp r4, r3 bne _0202F026 ldrb r5, [r2, #0x1] ldrb r4, [r0, #0x1] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x2] ldrb r4, [r0, #0x2] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x3] ldrb r4, [r0, #0x3] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x4] ldrb r4, [r0, #0x4] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x5] ldrb r4, [r0, #0x5] cmp r5, r4 bne _0202F026 mov r0, #0x1 pop {r4-r5} bx lr _0202F026: add r1, r1, #0x1 add r2, r2, #0x6 cmp r1, #0x8 blt _0202EFF2 mov r0, #0x0 pop {r4-r5} bx lr .balign 4 _0202F034: .word 0x021C59E8 _0202F038: .word 0x00000C54 thumb_func_start FUN_0202F03C FUN_0202F03C: ; 0x0202F03C ldr r0, _0202F054 ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202F04E ldr r0, _0202F058 ; =0x00000DAD ldrb r0, [r1, r0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bx lr _0202F04E: mov r0, #0x0 bx lr nop _0202F054: .word 0x021C59E8 _0202F058: .word 0x00000DAD thumb_func_start FUN_0202F05C FUN_0202F05C: ; 0x0202F05C ldr r0, _0202F070 ; =0x021C59E8 ldr r3, [r0, #0x8] cmp r3, #0x0 beq _0202F06E ldr r1, _0202F074 ; =0x00000DAD mov r0, #0x10 ldrb r2, [r3, r1] orr r0, r2 strb r0, [r3, r1] _0202F06E: bx lr .balign 4 _0202F070: .word 0x021C59E8 _0202F074: .word 0x00000DAD thumb_func_start FUN_0202F078 FUN_0202F078: ; 0x0202F078 ldr r1, _0202F088 ; =0x021C59E8 ldr r3, _0202F08C ; =MI_CpuCopy8 ldr r2, [r1, #0x8] ldr r1, _0202F090 ; =0x00000CA8 add r1, r2, r1 mov r2, #0x8 bx r3 nop _0202F088: .word 0x021C59E8 _0202F08C: .word MI_CpuCopy8 _0202F090: .word 0x00000CA8 thumb_func_start FUN_0202F094 FUN_0202F094: ; 0x0202F094 push {r4, lr} add r4, r0, #0x0 bl FUN_02023AC4 ldr r1, _0202F0B0 ; =0x021C59E8 add r2, r0, #0x0 ldr r3, [r1, #0x8] ldr r1, _0202F0B4 ; =0x00000CBC add r0, r4, #0x0 ldr r1, [r3, r1] blx MI_CpuCopy8 pop {r4, pc} nop _0202F0B0: .word 0x021C59E8 _0202F0B4: .word 0x00000CBC thumb_func_start FUN_0202F0B8 FUN_0202F0B8: ; 0x0202F0B8 push {r4, lr} bl FUN_0202EA9C ldr r3, _0202F0D4 ; =0x021C59E8 ldr r2, _0202F0D8 ; =0x00000CC4 ldr r4, [r3, #0x8] ldrh r3, [r3, #0x0] add r0, r4, r2 sub r2, r2, #0x4 ldr r2, [r4, r2] mov r1, #0x5c bl FUN_0202D240 pop {r4, pc} .balign 4 _0202F0D4: .word 0x021C59E8 _0202F0D8: .word 0x00000CC4 thumb_func_start FUN_0202F0DC FUN_0202F0DC: ; 0x0202F0DC push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0202F0E4: add r0, r4, #0x0 bl FUN_0202EF44 cmp r0, #0x0 beq _0202F0F8 ldrb r1, [r0, #0x4] cmp r1, r6 bne _0202F0F8 ldrb r0, [r0, #0x6] add r5, r5, r0 _0202F0F8: add r4, r4, #0x1 cmp r4, #0x10 blt _0202F0E4 add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202F104 FUN_0202F104: ; 0x0202F104 ldr r3, _0202F108 ; =FUN_0202D2D0 bx r3 .balign 4 _0202F108: .word FUN_0202D2D0 thumb_func_start FUN_0202F10C FUN_0202F10C: ; 0x0202F10C push {r3, lr} ldr r1, _0202F120 ; =0x021C59E8 mov r2, #0x54 ldr r1, [r1, #0x8] blx MI_CpuCopy8 bl FUN_0202F0B8 pop {r3, pc} nop _0202F120: .word 0x021C59E8 thumb_func_start FUN_0202F124 FUN_0202F124: ; 0x0202F124 ldr r1, _0202F148 ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202F144 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202F14C ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202F144 mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 add r0, #0x8 bx lr _0202F144: mov r0, #0x0 bx lr .balign 4 _0202F148: .word 0x021C59E8 _0202F14C: .word 0x00000C84 thumb_func_start FUN_0202F150 FUN_0202F150: ; 0x0202F150 push {r4-r6, lr} add r6, r1, #0x0 mov r4, #0x0 ldr r1, _0202F2BC ; =0x021C59F4 cmp r0, #0x0 strb r4, [r1, #0x0] beq _0202F25C bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r5, r0, #0x1 ldr r0, _0202F2BC ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202F178 mov r0, #0x1 pop {r4-r6, pc} _0202F178: mov r0, #0xf bl FUN_02031480 ldr r1, _0202F2C0 ; =0x0000068C mov r0, #0xf bl FUN_02016998 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, _0202F2C0 ; =0x0000068C str r0, [r1, #0x4] add r1, r4, #0x0 blx MI_CpuFill8 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C4 ; =0x00000658 ldr r0, [r2, #0x4] add r6, #0x40 str r6, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x4] add r6, r4, #0x0 add r0, #0x25 strb r6, [r3, r0] add r0, r1, #0x0 ldr r3, [r2, #0x4] mov r6, #0x1b add r0, #0x26 strb r6, [r3, r0] ldr r2, [r2, #0x4] mov r0, #0xf ldr r1, [r2, r1] lsl r1, r1, #0x1 bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C8 ; =0x0000045C ldr r3, [r2, #0x4] str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 mov r1, #0x46 ldr r3, [r2, #0x4] lsl r1, r1, #0x4 str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] mul r1, r5 bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2CC ; =0x00000458 ldr r3, [r2, #0x4] str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] mul r1, r5 bl FUN_02016998 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _0202F2D0 ; =0x00000454 str r0, [r2, r1] bl FUN_02033534 cmp r0, #0xa ldr r2, _0202F2D4 ; =0x0000054C bne _0202F236 ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x64 ldr r3, [r0, #0x4] add r0, r3, r2 sub r2, #0xe8 add r2, r3, r2 bl FUN_0202D7D8 ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x32 ldr r3, [r0, #0x4] ldr r2, _0202F2D8 ; =0x0000056C lsl r1, r1, #0x4 add r0, r3, r2 sub r2, #0x90 add r2, r3, r2 bl FUN_0202D7D8 b _0202F268 _0202F236: ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x14 ldr r3, [r0, #0x4] add r0, r3, r2 sub r2, #0xe8 add r2, r3, r2 bl FUN_0202D7D8 ldr r0, _0202F2BC ; =0x021C59F4 add r1, r6, #0x0 ldr r3, [r0, #0x4] ldr r2, _0202F2D8 ; =0x0000056C add r1, #0xfd add r0, r3, r2 sub r2, #0x90 add r2, r3, r2 bl FUN_0202D7D8 b _0202F268 _0202F25C: ldr r0, [r1, #0x4] mov r4, #0x1 cmp r0, #0x0 bne _0202F268 bl ErrorHandling _0202F268: ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2DC ; =0x0000065C ldr r3, [r2, #0x4] mov r0, #0x0 strh r0, [r3, r1] mov r5, #0xff add r1, #0x1b _0202F276: ldr r3, [r2, #0x4] add r3, r3, r0 add r0, r0, #0x1 strb r5, [r3, r1] cmp r0, #0x4 blt _0202F276 cmp r4, #0x0 bne _0202F28A bl FUN_0202F2F0 _0202F28A: ldr r0, _0202F2BC ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F2E0 ; =0x000005F8 add r0, r1, r0 bl FUN_020312BC cmp r4, #0x0 bne _0202F2AC mov r1, #0x0 ldr r0, _0202F2E4 ; =FUN_0202FB20 add r2, r1, #0x0 bl FUN_0200CA60 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _0202F2E8 ; =0x00000548 str r0, [r2, r1] _0202F2AC: ldr r0, _0202F2BC ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F2EC ; =0x00000687 strb r2, [r1, r0] mov r0, #0x1 pop {r4-r6, pc} nop _0202F2BC: .word 0x021C59F4 _0202F2C0: .word 0x0000068C _0202F2C4: .word 0x00000658 _0202F2C8: .word 0x0000045C _0202F2CC: .word 0x00000458 _0202F2D0: .word 0x00000454 _0202F2D4: .word 0x0000054C _0202F2D8: .word 0x0000056C _0202F2DC: .word 0x0000065C _0202F2E0: .word 0x000005F8 _0202F2E4: .word FUN_0202FB20 _0202F2E8: .word 0x00000548 _0202F2EC: .word 0x00000687 thumb_func_start FUN_0202F2F0 FUN_0202F2F0: ; 0x0202F2F0 push {r3-r7, lr} ldr r3, _0202F54C ; =0x021C59F4 ldr r2, _0202F550 ; =0x0000062C ldr r1, [r3, #0x4] mov r0, #0x0 strb r0, [r1, r2] ldr r4, [r3, #0x4] add r1, r2, #0x1 strb r0, [r4, r1] add r1, r2, #0x0 ldr r4, [r3, #0x4] add r1, #0x53 strb r0, [r4, r1] ldr r1, [r3, #0x4] add r2, #0x54 strb r0, [r1, r2] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F558 ; =0x00000458 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F360 ldr r7, _0202F54C ; =0x021C59F4 add r5, r4, #0x0 _0202F33E: ldr r3, [r7, #0x4] ldr r0, _0202F554 ; =0x00000658 ldr r1, _0202F558 ; =0x00000458 ldr r2, [r3, r0] ldr r0, _0202F55C ; =0x000004E8 add r0, r3, r0 ldr r3, [r3, r1] add r1, r4, #0x0 mul r1, r2 add r0, r0, r5 add r1, r3, r1 bl FUN_0202D394 add r4, r4, #0x1 add r5, #0xc cmp r4, r6 blt _0202F33E _0202F360: ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F560 ; =0x00000454 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F3A2 ldr r7, _0202F54C ; =0x021C59F4 add r4, r5, #0x0 _0202F380: ldr r3, [r7, #0x4] ldr r0, _0202F554 ; =0x00000658 ldr r1, _0202F560 ; =0x00000454 ldr r2, [r3, r0] ldr r0, _0202F564 ; =0x0000047C add r0, r3, r0 ldr r3, [r3, r1] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 add r5, r5, #0x1 add r4, #0xc cmp r5, r6 blt _0202F380 _0202F3A2: ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x6 ldr r1, [r0, #0x4] mov r0, #0xb5 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] ldr r0, _0202F568 ; =0x000004DC lsl r1, r1, #0x2 add r0, r2, r0 add r1, r2, r1 mov r2, #0x6 lsl r2, r2, #0x6 bl FUN_0202D394 mov r0, #0xee add r2, r0, #0x0 mov r3, #0x85 ldr r4, _0202F54C ; =0x021C59F4 mov r1, #0x0 add r2, #0x66 lsl r3, r3, #0x2 _0202F3DA: ldr r5, [r4, #0x4] add r5, r5, r1 strb r0, [r5, r2] ldr r5, [r4, #0x4] add r5, r5, r1 add r1, r1, #0x1 strb r0, [r5, r3] cmp r1, #0xc0 blt _0202F3DA ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r0, [r0, #0x4] mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] ldr r0, _0202F56C ; =0x00000464 lsl r2, r2, #0x2 add r0, r1, r0 add r1, #0x4c bl FUN_0202D394 ldr r1, _0202F54C ; =0x021C59F4 mov r2, #0xff ldr r0, [r1, #0x4] mov r3, #0x1 strb r2, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x26 strb r2, [r0, #0x0] mov r2, #0xee _0202F420: ldr r0, [r1, #0x4] strb r2, [r0, r3] ldr r0, [r1, #0x4] add r0, r0, r3 add r0, #0x26 add r3, r3, #0x1 strb r2, [r0, #0x0] cmp r3, #0x26 blt _0202F420 ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F570 ; =0x0000045C ldr r2, [r3, r2] ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] ldr r2, _0202F554 ; =0x00000658 lsl r1, r1, #0x4 add r0, r3, r1 sub r1, #0x14 ldr r2, [r3, r2] ldr r1, [r3, r1] lsl r2, r2, #0x1 bl FUN_0202D394 mov r2, #0x0 ldr r0, _0202F54C ; =0x021C59F4 ldr r1, _0202F574 ; =0x00000684 ldr r3, [r0, #0x4] mov r12, r2 strb r2, [r3, r1] ldr r3, [r0, #0x4] add r1, r1, #0x1 strb r2, [r3, r1] add r1, r2, #0x0 add r7, r2, #0x0 add r6, r2, #0x0 _0202F476: ldr r3, [r0, #0x4] add r4, r3, r2 ldr r3, _0202F578 ; =0x0000065F strb r6, [r4, r3] ldr r3, [r0, #0x4] ldr r4, _0202F57C ; =0x00000667 add r5, r3, r2 mov r3, #0x1 strb r3, [r5, r4] ldr r3, [r0, #0x4] add r4, #0x8 add r5, r3, r2 mov r3, #0x1 strb r3, [r5, r4] ldr r4, [r0, #0x4] mov r3, r12 add r4, r4, r3 mov r3, #0x61 lsl r3, r3, #0x4 strh r6, [r4, r3] ldr r3, [r0, #0x4] mov r4, #0xee add r5, r3, r1 ldr r3, _0202F580 ; =0x00000596 add r2, r2, #0x1 strb r4, [r5, r3] ldr r3, [r0, #0x4] ldr r4, _0202F584 ; =0x0000FFFF add r5, r3, r1 ldr r3, _0202F588 ; =0x00000594 strh r4, [r5, r3] ldr r3, [r0, #0x4] add r4, r3, r1 mov r3, #0x59 lsl r3, r3, #0x4 str r6, [r4, r3] ldr r3, [r0, #0x4] add r4, r3, r1 ldr r3, _0202F58C ; =0x0000058C add r1, #0xc str r6, [r4, r3] ldr r3, [r0, #0x4] add r4, r3, r7 ldr r3, _0202F590 ; =0x00000638 add r7, r7, #0x4 str r6, [r4, r3] mov r3, r12 add r3, r3, #0x2 mov r12, r3 cmp r2, #0x8 blt _0202F476 ldr r1, _0202F54C ; =0x021C59F4 ldr r0, _0202F594 ; =0x00000634 ldr r2, [r1, #0x4] sub r3, r0, #0x4 str r6, [r2, r0] ldr r4, [r1, #0x4] mov r2, #0x1 str r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] sub r3, #0x3e mov r2, #0xee strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] ldr r2, _0202F584 ; =0x0000FFFF sub r3, #0x40 strh r2, [r4, r3] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x44 str r6, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x48 str r6, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x4e mov r2, #0x1 strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x4f strb r2, [r4, r3] ldr r2, _0202F598 ; =0x02105D58 mov r3, #0x4 strb r3, [r2, #0x1] strb r3, [r2, #0x0] ldr r1, [r1, #0x4] sub r0, #0xe8 add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F54C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F59C ; =0x0000056C add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F5A0 ; =0x00000688 strb r2, [r1, r0] pop {r3-r7, pc} .balign 4 _0202F54C: .word 0x021C59F4 _0202F550: .word 0x0000062C _0202F554: .word 0x00000658 _0202F558: .word 0x00000458 _0202F55C: .word 0x000004E8 _0202F560: .word 0x00000454 _0202F564: .word 0x0000047C _0202F568: .word 0x000004DC _0202F56C: .word 0x00000464 _0202F570: .word 0x0000045C _0202F574: .word 0x00000684 _0202F578: .word 0x0000065F _0202F57C: .word 0x00000667 _0202F580: .word 0x00000596 _0202F584: .word 0x0000FFFF _0202F588: .word 0x00000594 _0202F58C: .word 0x0000058C _0202F590: .word 0x00000638 _0202F594: .word 0x00000634 _0202F598: .word 0x02105D58 _0202F59C: .word 0x0000056C _0202F5A0: .word 0x00000688 thumb_func_start FUN_0202F5A4 FUN_0202F5A4: ; 0x0202F5A4 push {r3-r7, lr} ldr r1, _0202F7D4 ; =0x021C59F4 ldr r0, _0202F7D8 ; =0x0000062C ldr r2, [r1, #0x4] mov r3, #0x0 strb r3, [r2, r0] ldr r1, [r1, #0x4] add r0, r0, #0x1 strb r3, [r1, r0] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7E0 ; =0x00000458 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F606 ldr r7, _0202F7D4 ; =0x021C59F4 add r5, r4, #0x0 _0202F5E4: ldr r3, [r7, #0x4] ldr r0, _0202F7DC ; =0x00000658 ldr r1, _0202F7E0 ; =0x00000458 ldr r2, [r3, r0] ldr r0, _0202F7E4 ; =0x000004E8 add r0, r3, r0 ldr r3, [r3, r1] add r1, r4, #0x0 mul r1, r2 add r0, r0, r5 add r1, r3, r1 bl FUN_0202D394 add r4, r4, #0x1 add r5, #0xc cmp r4, r6 blt _0202F5E4 _0202F606: ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7E8 ; =0x00000454 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F648 ldr r7, _0202F7D4 ; =0x021C59F4 add r4, r5, #0x0 _0202F626: ldr r3, [r7, #0x4] ldr r0, _0202F7DC ; =0x00000658 ldr r1, _0202F7E8 ; =0x00000454 ldr r2, [r3, r0] ldr r0, _0202F7EC ; =0x0000047C add r0, r3, r0 ldr r3, [r3, r1] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 add r5, r5, #0x1 add r4, #0xc cmp r5, r6 blt _0202F626 _0202F648: ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x6 ldr r1, [r0, #0x4] mov r0, #0xb5 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] ldr r0, _0202F7F0 ; =0x000004DC lsl r1, r1, #0x2 add r0, r2, r0 add r1, r2, r1 mov r2, #0x6 lsl r2, r2, #0x6 bl FUN_0202D394 mov r0, #0xee add r2, r0, #0x0 mov r3, #0x85 ldr r4, _0202F7D4 ; =0x021C59F4 mov r1, #0x0 add r2, #0x66 lsl r3, r3, #0x2 _0202F680: ldr r5, [r4, #0x4] add r5, r5, r1 strb r0, [r5, r2] ldr r5, [r4, #0x4] add r5, r5, r1 add r1, r1, #0x1 strb r0, [r5, r3] cmp r1, #0xc0 blt _0202F680 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r0, [r0, #0x4] mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] ldr r0, _0202F7F4 ; =0x00000464 lsl r2, r2, #0x2 add r0, r1, r0 add r1, #0x4c bl FUN_0202D394 ldr r1, _0202F7D4 ; =0x021C59F4 mov r2, #0xff ldr r0, [r1, #0x4] mov r3, #0x1 strb r2, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x26 strb r2, [r0, #0x0] mov r2, #0xee _0202F6C6: ldr r0, [r1, #0x4] strb r2, [r0, r3] ldr r0, [r1, #0x4] add r0, r0, r3 add r0, #0x26 add r3, r3, #0x1 strb r2, [r0, #0x0] cmp r3, #0x26 blt _0202F6C6 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7F8 ; =0x0000045C ldr r2, [r3, r2] ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] ldr r2, _0202F7DC ; =0x00000658 lsl r1, r1, #0x4 add r0, r3, r1 sub r1, #0x14 ldr r2, [r3, r2] ldr r1, [r3, r1] lsl r2, r2, #0x1 bl FUN_0202D394 ldr r0, _0202F7D4 ; =0x021C59F4 mov r3, #0x0 ldr r2, [r0, #0x4] ldr r1, _0202F7FC ; =0x00000684 add r7, r3, #0x0 strb r3, [r2, r1] ldr r2, [r0, #0x4] add r1, r1, #0x1 strb r3, [r2, r1] add r1, r3, #0x0 add r2, r3, #0x0 _0202F71A: ldr r4, [r0, #0x4] add r5, r4, r3 ldr r4, _0202F800 ; =0x0000065F strb r7, [r5, r4] ldr r4, [r0, #0x4] ldr r5, _0202F804 ; =0x00000667 add r6, r4, r3 mov r4, #0x1 strb r4, [r6, r5] ldr r4, [r0, #0x4] add r5, #0x8 add r6, r4, r3 mov r4, #0x1 strb r4, [r6, r5] ldr r4, [r0, #0x4] add r3, r3, #0x1 add r5, r4, r1 mov r4, #0x61 lsl r4, r4, #0x4 strh r7, [r5, r4] ldr r4, [r0, #0x4] ldr r5, _0202F808 ; =0x00000596 add r6, r4, r2 mov r4, #0xee strb r4, [r6, r5] ldr r4, [r0, #0x4] ldr r5, _0202F80C ; =0x0000FFFF add r6, r4, r2 ldr r4, _0202F810 ; =0x00000594 add r1, r1, #0x2 strh r5, [r6, r4] ldr r4, [r0, #0x4] add r5, r4, r2 mov r4, #0x59 lsl r4, r4, #0x4 str r7, [r5, r4] ldr r4, [r0, #0x4] add r5, r4, r2 ldr r4, _0202F814 ; =0x0000058C add r2, #0xc str r7, [r5, r4] cmp r3, #0x8 blt _0202F71A ldr r1, _0202F7D4 ; =0x021C59F4 add r0, r4, #0x0 ldr r3, [r1, #0x4] add r0, #0xa4 mov r2, #0x1 str r2, [r3, r0] add r3, r0, #0x0 ldr r4, [r1, #0x4] sub r3, #0x3a mov r2, #0xee strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] ldr r2, _0202F80C ; =0x0000FFFF sub r3, #0x3c strh r2, [r4, r3] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x40 str r7, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x44 str r7, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x52 mov r2, #0x1 strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x53 strb r2, [r4, r3] ldr r1, [r1, #0x4] sub r0, #0xe4 add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F818 ; =0x0000056C add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F81C ; =0x00000688 strb r2, [r1, r0] pop {r3-r7, pc} .balign 4 _0202F7D4: .word 0x021C59F4 _0202F7D8: .word 0x0000062C _0202F7DC: .word 0x00000658 _0202F7E0: .word 0x00000458 _0202F7E4: .word 0x000004E8 _0202F7E8: .word 0x00000454 _0202F7EC: .word 0x0000047C _0202F7F0: .word 0x000004DC _0202F7F4: .word 0x00000464 _0202F7F8: .word 0x0000045C _0202F7FC: .word 0x00000684 _0202F800: .word 0x0000065F _0202F804: .word 0x00000667 _0202F808: .word 0x00000596 _0202F80C: .word 0x0000FFFF _0202F810: .word 0x00000594 _0202F814: .word 0x0000058C _0202F818: .word 0x0000056C _0202F81C: .word 0x00000688 thumb_func_start FUN_0202F820 FUN_0202F820: ; 0x0202F820 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0202F8B8 ; =0x021C59F4 ldr r3, _0202F8BC ; =0x0000065F ldr r1, [r0, #0x4] mov r2, #0x0 add r1, r1, r5 strb r2, [r1, r3] ldr r4, [r0, #0x4] mov r1, #0x1 add r6, r4, r5 add r4, r3, #0x0 add r4, #0x8 strb r1, [r6, r4] ldr r6, [r0, #0x4] lsl r4, r5, #0x2 add r6, r6, r4 add r4, r3, #0x0 sub r4, #0x27 str r2, [r6, r4] ldr r2, [r0, #0x4] add r4, r2, r5 add r2, r3, #0x0 add r2, #0x10 strb r1, [r4, r2] ldr r1, [r0, #0x4] sub r0, r3, #0x7 ldr r2, [r1, r0] ldr r3, _0202F8C0 ; =0x0000047C mov r0, #0xc add r4, r5, #0x0 mul r4, r0 add r0, r1, r3 sub r3, #0x28 ldr r3, [r1, r3] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 ldr r0, _0202F8B8 ; =0x021C59F4 ldr r3, _0202F8C4 ; =0x000004E8 ldr r1, [r0, #0x4] ldr r0, _0202F8C8 ; =0x00000658 ldr r2, [r1, r0] add r0, r1, r3 sub r3, #0x90 ldr r3, [r1, r3] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 ldr r3, _0202F8B8 ; =0x021C59F4 ldr r2, _0202F8CC ; =0x00000596 ldr r0, [r3, #0x4] mov r1, #0xee add r0, r0, r4 strb r1, [r0, r2] ldr r0, [r3, #0x4] ldr r5, _0202F8D0 ; =0x0000FFFF add r1, r0, r4 sub r0, r2, #0x2 strh r5, [r1, r0] ldr r1, [r3, #0x4] mov r0, #0x0 add r5, r1, r4 sub r1, r2, #0x6 str r0, [r5, r1] ldr r1, [r3, #0x4] sub r2, #0xa add r1, r1, r4 str r0, [r1, r2] pop {r4-r6, pc} .balign 4 _0202F8B8: .word 0x021C59F4 _0202F8BC: .word 0x0000065F _0202F8C0: .word 0x0000047C _0202F8C4: .word 0x000004E8 _0202F8C8: .word 0x00000658 _0202F8CC: .word 0x00000596 _0202F8D0: .word 0x0000FFFF thumb_func_start FUN_0202F8D4 FUN_0202F8D4: ; 0x0202F8D4 push {r4-r6, lr} ldr r4, _0202F908 ; =0x021C59F4 ldr r6, _0202F90C ; =0x00000667 mov r5, #0x1 _0202F8DC: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0202F900 ldr r0, [r4, #0x4] add r0, r0, r5 ldrb r0, [r0, r6] cmp r0, #0x0 bne _0202F900 bl FUN_02031280 cmp r0, #0x0 bne _0202F900 add r0, r5, #0x0 bl FUN_0202F820 _0202F900: add r5, r5, #0x1 cmp r5, #0x8 blt _0202F8DC pop {r4-r6, pc} .balign 4 _0202F908: .word 0x021C59F4 _0202F90C: .word 0x00000667 thumb_func_start FUN_0202F910 FUN_0202F910: ; 0x0202F910 ldr r3, _0202F914 ; =FUN_0202F820 bx r3 .balign 4 _0202F914: .word FUN_0202F820 thumb_func_start FUN_0202F918 FUN_0202F918: ; 0x0202F918 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] mov r4, #0x1 bl FUN_02033534 cmp r0, #0x13 bge _0202F93E ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202E5F8 add r4, r0, #0x0 ldr r0, _0202F94C ; =FUN_0202F910 bl FUN_0202D330 _0202F93E: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0202F150 add r0, r4, #0x0 pop {r3-r7, pc} nop _0202F94C: .word FUN_0202F910 thumb_func_start FUN_0202F950 FUN_0202F950: ; 0x0202F950 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 mov r4, #0x1 bl FUN_02033534 cmp r0, #0x13 bge _0202F96C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202E66C add r4, r0, #0x0 _0202F96C: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0202F150 ldr r0, _0202F980 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x0] add r0, r4, #0x0 pop {r3-r7, pc} nop _0202F980: .word 0x02105D58 thumb_func_start FUN_0202F984 FUN_0202F984: ; 0x0202F984 push {r4, lr} mov r4, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202F99A ldr r0, _0202F9D4 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 beq _0202F9A2 pop {r4, pc} _0202F99A: ldr r0, _0202F9D4 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0202F9D0 _0202F9A2: ldr r0, _0202F9D8 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202F9DC ; =0x0000067D ldrb r1, [r2, r0] cmp r1, #0x2 bne _0202F9B4 mov r1, #0x0 strb r1, [r2, r0] mov r4, #0x1 _0202F9B4: ldr r0, _0202F9D8 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202F9DC ; =0x0000067D ldrb r1, [r2, r0] cmp r1, #0x3 bne _0202F9C4 mov r4, #0x1 strb r4, [r2, r0] _0202F9C4: cmp r4, #0x0 beq _0202F9CC bl FUN_0202F5A4 _0202F9CC: bl FUN_02031088 _0202F9D0: pop {r4, pc} nop _0202F9D4: .word 0x02105D58 _0202F9D8: .word 0x021C59F4 _0202F9DC: .word 0x0000067D thumb_func_start FUN_0202F9E0 FUN_0202F9E0: ; 0x0202F9E0 ldr r1, _0202FA08 ; =0x021C59F4 ldr r3, [r1, #0x4] ldr r1, _0202FA0C ; =0x0000067D ldrb r2, [r3, r1] cmp r2, #0x0 bne _0202F9F6 cmp r0, #0x1 bne _0202F9F6 mov r0, #0x3 strb r0, [r3, r1] bx lr _0202F9F6: cmp r2, #0x1 bne _0202FA04 cmp r0, #0x0 bne _0202FA04 ldr r0, _0202FA0C ; =0x0000067D mov r1, #0x2 strb r1, [r3, r0] _0202FA04: bx lr nop _0202FA08: .word 0x021C59F4 _0202FA0C: .word 0x0000067D thumb_func_start FUN_0202FA10 FUN_0202FA10: ; 0x0202FA10 ldr r3, _0202FA18 ; =FUN_0202F9E0 mov r0, #0x1 bx r3 nop _0202FA18: .word FUN_0202F9E0 thumb_func_start FUN_0202FA1C FUN_0202FA1C: ; 0x0202FA1C ldr r3, _0202FA24 ; =FUN_0202F9E0 mov r0, #0x0 bx r3 nop _0202FA24: .word FUN_0202F9E0 thumb_func_start FUN_0202FA28 FUN_0202FA28: ; 0x0202FA28 ldr r0, _0202FA40 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FA44 ; =0x0000067D ldrb r0, [r1, r0] cmp r0, #0x2 bne _0202FA38 mov r0, #0x1 bx lr _0202FA38: cmp r0, #0x3 bne _0202FA3E mov r0, #0x0 _0202FA3E: bx lr .balign 4 _0202FA40: .word 0x021C59F4 _0202FA44: .word 0x0000067D thumb_func_start FUN_0202FA48 FUN_0202FA48: ; 0x0202FA48 push {r3, lr} bl FUN_0202FA28 cmp r0, #0x1 bne _0202FA56 mov r0, #0x1 pop {r3, pc} _0202FA56: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202FA5C FUN_0202FA5C: ; 0x0202FA5C push {r4, lr} ldr r0, _0202FB00 ; =0x021C59F4 mov r4, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FA82 bl FUN_02033534 cmp r0, #0x13 blt _0202FA78 bl FUN_021D83C0 mov r4, #0x1 b _0202FA82 _0202FA78: bl FUN_0202E784 cmp r0, #0x0 beq _0202FA82 mov r4, #0x1 _0202FA82: cmp r4, #0x0 beq _0202FAFE bl FUN_020314D0 bl FUN_0202DBA4 ldr r0, _0202FB00 ; =0x021C59F4 mov r1, #0x0 strb r1, [r0, #0x0] ldr r1, [r0, #0x4] ldr r0, _0202FB04 ; =0x00000548 ldr r0, [r1, r0] bl FUN_0200CAB4 ldr r1, _0202FB00 ; =0x021C59F4 ldr r0, _0202FB04 ; =0x00000548 ldr r2, [r1, #0x4] mov r3, #0x0 str r3, [r2, r0] ldr r1, [r1, #0x4] sub r0, #0xec ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x46 lsl r0, r0, #0x4 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB08 ; =0x00000458 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB0C ; =0x00000454 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB10 ; =0x0000056C add r0, r1, r0 bl FUN_0202D824 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB14 ; =0x0000054C add r0, r1, r0 bl FUN_0202D824 ldr r0, _0202FB00 ; =0x021C59F4 ldr r0, [r0, #0x4] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 mov r1, #0x0 str r1, [r0, #0x4] _0202FAFE: pop {r4, pc} .balign 4 _0202FB00: .word 0x021C59F4 _0202FB04: .word 0x00000548 _0202FB08: .word 0x00000458 _0202FB0C: .word 0x00000454 _0202FB10: .word 0x0000056C _0202FB14: .word 0x0000054C thumb_func_start FUN_0202FB18 FUN_0202FB18: ; 0x0202FB18 ldr r3, _0202FB1C ; =FUN_0202E9E8 bx r3 .balign 4 _0202FB1C: .word FUN_0202E9E8 thumb_func_start FUN_0202FB20 FUN_0202FB20: ; 0x0202FB20 push {r3, lr} ldr r0, _0202FB54 ; =0x021C59F4 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202FB52 bl FUN_0203050C bl FUN_02031190 cmp r0, #0x0 bne _0202FB40 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _0202FB48 _0202FB40: bl FUN_02031280 cmp r0, #0x0 beq _0202FB4C _0202FB48: bl FUN_0202FEEC _0202FB4C: ldr r0, _0202FB54 ; =0x021C59F4 mov r1, #0x0 strb r1, [r0, #0x0] _0202FB52: pop {r3, pc} .balign 4 _0202FB54: .word 0x021C59F4 thumb_func_start FUN_0202FB58 FUN_0202FB58: ; 0x0202FB58 push {r3, lr} bl FUN_0202F03C cmp r0, #0x0 beq _0202FB7C bl FUN_02031190 cmp r0, #0x0 bne _0202FB78 bl FUN_0202EE24 cmp r0, #0x0 bne _0202FB7C bl FUN_0202FA5C pop {r3, pc} _0202FB78: bl FUN_0202FA5C _0202FB7C: pop {r3, pc} .balign 4 thumb_func_start FUN_0202FB80 FUN_0202FB80: ; 0x0202FB80 push {r4, lr} bl FUN_02031CDC ldr r1, _0202FC48 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _0202FC34 ldr r0, _0202FC4C ; =0x0000068A ldrb r0, [r2, r0] cmp r0, #0x0 bne _0202FC16 mov r0, #0x0 strb r0, [r1, #0x0] bl FUN_0202F984 ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, _0202FC50 ; =0x021C48B8 ldr r0, [r0, #0x4] ldr r2, _0202FC54 ; =0x00000628 ldr r3, [r1, #0x44] ldr r1, _0202FC58 ; =0x00007FFF ldrh r4, [r0, r2] and r1, r3 orr r1, r4 strh r1, [r0, r2] bl FUN_02030674 bl FUN_0202FCCC ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, _0202FC54 ; =0x00000628 ldr r3, [r0, #0x4] mov r0, #0x2 ldrh r2, [r3, r1] lsl r0, r0, #0xe and r0, r2 strh r0, [r3, r1] bl FUN_0202FA28 cmp r0, #0x0 bne _0202FBD6 bl FUN_02030DA4 _0202FBD6: bl FUN_02031190 cmp r0, #0x0 bne _0202FBE8 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _0202FBF0 _0202FBE8: bl FUN_02031280 cmp r0, #0x0 beq _0202FBF4 _0202FBF0: bl FUN_02030074 _0202FBF4: bl FUN_02031190 cmp r0, #0x0 beq _0202FC0C bl FUN_0202FA28 cmp r0, #0x1 beq _0202FC0C bl FUN_02031280 cmp r0, #0x0 beq _0202FC10 _0202FC0C: bl FUN_02030DFC _0202FC10: ldr r0, _0202FC48 ; =0x021C59F4 mov r1, #0x1 strb r1, [r0, #0x0] _0202FC16: ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FC5C ; =0x0000065C ldrh r0, [r1, r0] bl FUN_0202ED70 bl FUN_02031190 cmp r0, #0x0 bne _0202FC2E bl FUN_0202F8D4 _0202FC2E: bl FUN_0202FB58 b _0202FC3A _0202FC34: mov r0, #0x0 bl FUN_0202ED70 _0202FC3A: mov r0, #0x0 bl FUN_020335F4 bl FUN_020315A4 mov r0, #0x1 pop {r4, pc} .balign 4 _0202FC48: .word 0x021C59F4 _0202FC4C: .word 0x0000068A _0202FC50: .word 0x021C48B8 _0202FC54: .word 0x00000628 _0202FC58: .word 0x00007FFF _0202FC5C: .word 0x0000065C thumb_func_start FUN_0202FC60 FUN_0202FC60: ; 0x0202FC60 push {r4, lr} ldr r0, _0202FC7C ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FC74 bl FUN_0202F2F0 _0202FC74: ldr r0, _0202FC7C ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} nop _0202FC7C: .word 0x021C59F4 thumb_func_start FUN_0202FC80 FUN_0202FC80: ; 0x0202FC80 push {r4, lr} ldr r0, _0202FCA0 ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r2, [r0, #0x4] cmp r2, #0x0 beq _0202FC9A ldr r0, _0202FCA4 ; =0x0000067D mov r1, #0x1 strb r1, [r2, r0] bl FUN_0202F2F0 _0202FC9A: ldr r0, _0202FCA0 ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 _0202FCA0: .word 0x021C59F4 _0202FCA4: .word 0x0000067D thumb_func_start FUN_0202FCA8 FUN_0202FCA8: ; 0x0202FCA8 push {r4, lr} ldr r0, _0202FCC8 ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FCC0 bl FUN_0202F2F0 bl FUN_0202E538 _0202FCC0: ldr r0, _0202FCC8 ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} nop _0202FCC8: .word 0x021C59F4 thumb_func_start FUN_0202FCCC FUN_0202FCCC: ; 0x0202FCCC push {r3, lr} ldr r0, _0202FE14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202FD40 bl FUN_02033534 cmp r0, #0x13 blt _0202FD06 ldr r0, _0202FE14 ; =0x021C59F4 ldr r1, _0202FE1C ; =0x00000687 ldr r0, [r0, #0x4] ldrb r1, [r0, r1] cmp r1, #0x0 beq _0202FCF8 mov r1, #0x26 bl FUN_021D78FC cmp r0, #0x0 bne _0202FCFA _0202FCF8: b _0202FE10 _0202FCFA: ldr r0, _0202FE14 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 strb r2, [r1, r0] pop {r3, pc} _0202FD06: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FD1A bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _0202FD22 _0202FD1A: bl FUN_02031280 cmp r0, #0x0 beq _0202FE10 _0202FD22: ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x0] bl FUN_0203050C ldr r0, _0202FE20 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE14 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 strb r2, [r1, r0] pop {r3, pc} _0202FD40: bl FUN_02033534 cmp r0, #0x13 blt _0202FDB2 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, _0202FE1C ; =0x00000687 ldr r0, [r0, #0x4] ldrb r1, [r0, r2] cmp r1, #0x0 beq _0202FE10 add r1, r2, #0x0 sub r1, #0x57 ldr r1, [r0, r1] cmp r1, #0x0 beq _0202FD7A sub r2, #0x53 ldr r1, [r0, r2] cmp r1, #0x3 bgt _0202FE10 ldr r1, _0202FE20 ; =0x02105D58 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _0202FD90 bl FUN_02030930 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x0] b _0202FD90 _0202FD7A: ldr r1, _0202FE20 ; =0x02105D58 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _0202FD90 bl FUN_02030930 cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x0] _0202FD90: ldr r0, _0202FE14 ; =0x021C59F4 mov r1, #0x26 ldr r0, [r0, #0x4] bl FUN_021D78FC cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x0] ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE24 ; =0x00000634 ldr r1, [r2, r0] add r1, r1, #0x1 str r1, [r2, r0] pop {r3, pc} _0202FDB2: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FDC6 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _0202FDCE _0202FDC6: bl FUN_02031280 cmp r0, #0x0 beq _0202FE10 _0202FDCE: ldr r0, _0202FE20 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0202FE10 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE24 ; =0x00000634 ldr r1, [r2, r0] cmp r1, #0x3 bgt _0202FE10 add r0, #0x4b ldrb r1, [r2, r0] mov r0, #0x26 mul r0, r1 add r0, r2, r0 bl FUN_02030930 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE28 ; =0x0000067F ldrb r1, [r2, r0] mov r0, #0x1 sub r1, r0, r1 mov r0, #0x26 mul r0, r1 add r0, r2, r0 bl FUN_02030930 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x0] bl FUN_0203050C _0202FE10: pop {r3, pc} nop _0202FE14: .word 0x021C59F4 _0202FE18: .word 0x00000683 _0202FE1C: .word 0x00000687 _0202FE20: .word 0x02105D58 _0202FE24: .word 0x00000634 _0202FE28: .word 0x0000067F thumb_func_start FUN_0202FE2C FUN_0202FE2C: ; 0x0202FE2C push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 str r0, [sp, #0xc] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 mov r7, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 ble _0202FED0 ldr r0, [sp, #0x0] mov r1, #0xc0 add r6, r0, #0x0 add r4, r7, #0x0 add r5, r7, #0x0 mul r6, r1 _0202FE66: ldr r0, _0202FEE4 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FEE8 ; =0x0000047C add r0, r1, r0 add r0, r0, r4 bl FUN_0202D4BC lsl r0, r7, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202FE90 ldr r0, _0202FEE4 ; =0x021C59F4 mov r1, #0xe ldr r0, [r0, #0x4] add r0, r6, r0 add r2, r5, r0 mov r0, #0x55 lsl r0, r0, #0x2 strb r1, [r2, r0] _0202FE90: ldr r0, _0202FEE4 ; =0x021C59F4 mov r2, #0x55 ldr r1, [r0, #0x4] ldr r0, _0202FEE8 ; =0x0000047C lsl r2, r2, #0x2 add r0, r1, r0 add r1, r1, r2 add r1, r1, r6 ldr r2, [sp, #0xc] add r0, r0, r4 add r1, r1, r5 bl FUN_0202D400 ldr r0, _0202FEE4 ; =0x021C59F4 ldr r0, [r0, #0x4] add r0, r6, r0 add r1, r5, r0 mov r0, #0x55 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0xe bne _0202FEC2 ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] _0202FEC2: ldr r0, [sp, #0xc] add r7, r7, #0x1 add r5, r5, r0 ldr r0, [sp, #0x8] add r4, #0xc cmp r7, r0 blt _0202FE66 _0202FED0: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] cmp r1, r0 bne _0202FEDE add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202FEDE: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0202FEE4: .word 0x021C59F4 _0202FEE8: .word 0x0000047C thumb_func_start FUN_0202FEEC FUN_0202FEEC: ; 0x0202FEEC push {r3-r7, lr} ldr r0, _02030064 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FEFE bl FUN_02033534 cmp r0, #0x13 blt _0202FF00 _0202FEFE: b _02030062 _0202FF00: bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 str r0, [sp, #0x0] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] cmp r1, #0x2 beq _0202FF2C ldrb r0, [r0, #0x1] cmp r0, #0x0 beq _0202FF2C b _02030062 _0202FF2C: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] bl FUN_0202FA28 cmp r0, #0x1 bne _0202FF4A ldr r0, _02030064 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x1a lsl r0, r0, #0x6 ldrb r0, [r1, r0] bl FUN_0202FE2C _0202FF4A: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FF86 bl FUN_02031280 cmp r0, #0x0 bne _0202FF86 ldr r0, _02030064 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r3, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r0, [r1, r0] mov r1, #0xc0 add r2, r0, #0x0 mul r2, r1 add r0, r3, r2 ldr r3, _0203006C ; =FUN_020304F0 mov r2, #0xe bl FUN_0202D0D0 cmp r0, #0x0 bne _0202FF86 ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] sub r1, r1, #0x1 strb r1, [r0, #0x1] _0202FF86: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] cmp r1, #0x1 beq _0202FF94 ldrb r0, [r0, #0x1] cmp r0, #0x3 bne _0203000A _0202FF94: mov r4, #0x0 cmp r6, #0x0 ble _0202FFDC ldr r7, _02030064 ; =0x021C59F4 add r5, r4, #0x0 _0202FF9E: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202FFBA ldr r0, [r7, #0x4] ldr r1, _02030070 ; =0x00000638 add r0, r0, r5 ldr r1, [r0, r1] add r2, r1, #0x1 ldr r1, _02030070 ; =0x00000638 str r2, [r0, r1] b _0202FFD4 _0202FFBA: bl FUN_02031280 cmp r0, #0x0 beq _0202FFD4 cmp r4, #0x0 bne _0202FFD4 ldr r0, [r7, #0x4] ldr r1, _02030070 ; =0x00000638 add r0, r0, r5 ldr r1, [r0, r1] add r2, r1, #0x1 ldr r1, _02030070 ; =0x00000638 str r2, [r0, r1] _0202FFD4: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _0202FF9E _0202FFDC: ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x55 ldr r2, [r0, #0x4] lsl r1, r1, #0x2 add r4, r2, r1 mov r1, #0x1a lsl r1, r1, #0x6 ldrb r1, [r2, r1] mov r2, #0xc0 mov r0, #0x0 add r3, r1, #0x0 mul r3, r2 add r1, r4, r3 bl FUN_0203026C ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x1a ldr r3, [r0, #0x4] lsl r1, r1, #0x6 ldrb r2, [r3, r1] mov r0, #0x1 sub r0, r0, r2 strb r0, [r3, r1] _0203000A: mov r5, #0x0 cmp r6, #0x0 ble _0203004A add r4, r5, #0x0 mov r7, #0xff _02030014: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _02030040 bl FUN_0202FA28 cmp r0, #0x1 bne _02030040 ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x1a ldr r0, [r0, #0x4] lsl r1, r1, #0x6 ldrb r2, [r0, r1] mov r1, #0xc0 mul r1, r2 add r0, r0, r1 add r1, r4, r0 mov r0, #0x55 lsl r0, r0, #0x2 strb r7, [r1, r0] _02030040: ldr r0, [sp, #0x0] add r5, r5, #0x1 add r4, r4, r0 cmp r5, r6 blt _02030014 _0203004A: bl FUN_0202CBD4 cmp r0, #0x4 bne _0203005A bl FUN_02031280 cmp r0, #0x0 beq _02030062 _0203005A: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] _02030062: pop {r3-r7, pc} .balign 4 _02030064: .word 0x021C59F4 _02030068: .word 0x02105D58 _0203006C: .word FUN_020304F0 _02030070: .word 0x00000638 thumb_func_start FUN_02030074 FUN_02030074: ; 0x02030074 push {r3-r7, lr} ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 ldrb r0, [r1, r0] cmp r0, #0x0 beq _020300DC bl FUN_02033534 cmp r0, #0x13 blt _020300B4 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 beq _020300DC ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x4c bl FUN_021D79B4 cmp r0, #0x0 beq _020300DC ldr r0, _02030228 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 strb r2, [r1, r0] pop {r3-r7, pc} _020300B4: bl FUN_0202CBD4 cmp r0, #0x4 beq _020300C4 bl FUN_02031280 cmp r0, #0x0 beq _020300DC _020300C4: bl FUN_0202FEEC ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x2 bne _020300DC ldr r0, _02030228 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 strb r2, [r1, r0] pop {r3-r7, pc} _020300DC: bl FUN_02033534 cmp r0, #0x13 blt _02030184 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _020300F0 b _02030224 _020300F0: ldr r0, _02030228 ; =0x021C59F4 mov r1, #0x63 ldr r2, [r0, #0x4] lsl r1, r1, #0x4 ldr r0, [r2, r1] cmp r0, #0x0 beq _02030130 add r0, r1, #0x0 add r0, #0xc ldr r0, [r2, r0] cmp r0, #0x3 bgt _02030110 add r1, #0x8 ldr r0, [r2, r1] cmp r0, #0x3 ble _02030112 _02030110: b _02030224 _02030112: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _02030150 bl FUN_0202FA28 cmp r0, #0x1 bne _02030128 mov r0, #0x0 bl FUN_0202FE2C _02030128: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x1] b _02030150 _02030130: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _0203014A bl FUN_0202FA28 cmp r0, #0x1 bne _0203014A mov r0, #0x0 bl FUN_0202FE2C cmp r0, #0x0 beq _02030224 _0203014A: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x1] _02030150: ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x4c bl FUN_021D79B4 cmp r0, #0x0 beq _02030224 ldr r0, _02030230 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x1] ldr r1, _02030228 ; =0x021C59F4 ldr r0, _02030234 ; =0x00000638 ldr r3, [r1, #0x4] ldr r2, [r3, r0] add r2, r2, #0x1 str r2, [r3, r0] ldr r2, [r1, #0x4] add r1, r0, #0x4 ldr r1, [r2, r1] add r0, r0, #0x4 add r1, r1, #0x1 str r1, [r2, r0] pop {r3-r7, pc} _02030184: bl FUN_0202CBD4 cmp r0, #0x4 beq _02030194 bl FUN_02031280 cmp r0, #0x0 beq _02030224 _02030194: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _02030224 ldr r6, _02030228 ; =0x021C59F4 ldr r7, _02030234 ; =0x00000638 mov r4, #0x1 mov r5, #0x4 _020301A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _020301BC ldr r0, [r6, #0x4] add r0, r0, r5 ldr r0, [r0, r7] cmp r0, #0x3 ble _020301D2 pop {r3-r7, pc} _020301BC: cmp r4, #0x0 bne _020301D2 bl FUN_02031280 cmp r0, #0x0 beq _020301D2 ldr r1, [r6, #0x4] ldr r0, _02030234 ; =0x00000638 ldr r0, [r1, r0] cmp r0, #0x3 bgt _02030224 _020301D2: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x8 blt _020301A4 bl FUN_0202FA28 cmp r0, #0x0 bne _0203021A ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r2, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r1, [r1, r0] mov r0, #0xc0 mul r0, r1 add r0, r2, r0 bl FUN_02030A00 ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r2, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r1, [r1, r0] mov r0, #0x1 sub r1, r0, r1 mov r0, #0xc0 mul r0, r1 add r0, r2, r0 bl FUN_02030A00 _0203021A: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x1] bl FUN_0202FEEC _02030224: pop {r3-r7, pc} nop _02030228: .word 0x021C59F4 _0203022C: .word 0x00000683 _02030230: .word 0x02105D58 _02030234: .word 0x00000638 thumb_func_start FUN_02030238 FUN_02030238: ; 0x02030238 push {r4-r6, lr} ldr r4, _02030264 ; =0x021C59F4 ldr r3, _02030268 ; =0x0000066F ldr r5, [r4, #0x4] ldrb r6, [r5, r3] cmp r6, #0x0 beq _0203025C add r0, r3, #0x0 sub r0, #0x3b ldr r0, [r5, r0] sub r1, r0, #0x1 add r0, r3, #0x0 sub r0, #0x3b str r1, [r5, r0] ldr r0, [r4, #0x4] mov r1, #0x0 strb r1, [r0, r3] pop {r4-r6, pc} _0203025C: bl FUN_0203026C pop {r4-r6, pc} nop _02030264: .word 0x021C59F4 _02030268: .word 0x0000066F thumb_func_start FUN_0203026C FUN_0203026C: ; 0x0203026C push {r3-r7, lr} sub sp, #0x8 ldr r0, _020303A0 ; =0x021C59F4 add r5, r1, #0x0 ldr r2, [r0, #0x4] ldr r0, _020303A4 ; =0x00000634 ldr r1, [r2, r0] sub r1, r1, #0x1 str r1, [r2, r0] cmp r5, #0x0 beq _02030290 ldrb r0, [r5, #0x0] cmp r0, #0xb bne _02030296 bl FUN_0202FA28 cmp r0, #0x1 bne _02030292 _02030290: b _0203039C _02030292: add r5, r5, #0x1 b _0203029E _02030296: bl FUN_0202FA28 cmp r0, #0x0 beq _0203039C _0203029E: ldr r0, _020303A0 ; =0x021C59F4 ldr r1, _020303A8 ; =0x00000682 ldr r0, [r0, #0x4] ldrb r1, [r0, r1] cmp r1, #0x0 beq _020302B2 ldrb r2, [r5, #0x0] mov r1, #0x1 tst r1, r2 bne _0203039C _020302B2: ldr r1, _020303A8 ; =0x00000682 mov r2, #0x0 strb r2, [r0, r1] bl FUN_0202FA28 cmp r0, #0x1 bne _0203036E bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r6, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 mov r4, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 ble _0203039C sub r0, r6, #0x1 add r7, r4, #0x0 str r0, [sp, #0x0] _020302EA: ldrb r0, [r5, #0x0] cmp r0, #0xff bne _02030302 ldr r0, _020303A0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020303AC ; =0x0000065C lsl r2, r4 ldrh r0, [r1, r0] mvn r2, r2 and r2, r0 b _02030310 _02030302: ldr r0, _020303A0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020303AC ; =0x0000065C lsl r2, r4 ldrh r0, [r1, r0] orr r2, r0 _02030310: ldr r0, _020303AC ; =0x0000065C strh r2, [r1, r0] ldrb r2, [r5, #0x0] cmp r2, #0xff bne _0203031E add r5, r5, r6 b _02030360 _0203031E: cmp r2, #0xe bne _02030326 add r5, r5, r6 b _02030360 _02030326: ldr r0, _020303A0 ; =0x021C59F4 ldr r3, [r0, #0x4] ldr r0, _020303B0 ; =0x00000667 add r1, r3, r4 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0203033E mov r0, #0x1 tst r0, r2 beq _0203033E add r5, r5, r6 b _02030360 _0203033E: ldr r0, _020303B4 ; =0x000004E8 add r5, r5, #0x1 add r0, r3, r0 ldr r2, [sp, #0x0] ldr r3, _020303B8 ; =0x000005E6 add r0, r0, r7 add r1, r5, #0x0 bl FUN_0202D3A4 ldr r0, [sp, #0x0] mov r1, #0x0 add r5, r5, r0 ldr r0, _020303A0 ; =0x021C59F4 ldr r0, [r0, #0x4] add r2, r0, r4 ldr r0, _020303B0 ; =0x00000667 strb r1, [r2, r0] _02030360: ldr r0, [sp, #0x4] add r4, r4, #0x1 add r7, #0xc cmp r4, r0 blt _020302EA add sp, #0x8 pop {r3-r7, pc} _0203036E: ldr r0, _020303A0 ; =0x021C59F4 ldrb r2, [r5, #0x1] ldr r1, [r0, #0x4] ldr r3, _020303AC ; =0x0000065C strh r2, [r1, r3] ldr r2, [r0, #0x4] ldrh r1, [r2, r3] lsl r1, r1, #0x8 strh r1, [r2, r3] ldr r4, [r0, #0x4] ldrb r1, [r5, #0x2] ldrh r2, [r4, r3] add r1, r2, r1 strh r1, [r4, r3] ldr r1, [r0, #0x4] mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 ldrb r2, [r5, #0x3] add r1, r5, #0x4 sub r3, #0x5d bl FUN_0202D3A4 _0203039C: add sp, #0x8 pop {r3-r7, pc} .balign 4 _020303A0: .word 0x021C59F4 _020303A4: .word 0x00000634 _020303A8: .word 0x00000682 _020303AC: .word 0x0000065C _020303B0: .word 0x00000667 _020303B4: .word 0x000004E8 _020303B8: .word 0x000005E6 thumb_func_start FUN_020303BC FUN_020303BC: ; 0x020303BC push {r4-r6, lr} ldr r3, _020303EC ; =0x021C59F4 ldr r6, _020303F0 ; =0x0000066F ldr r5, [r3, #0x4] add r4, r5, r0 ldrb r4, [r4, r6] cmp r4, #0x0 beq _020303E4 add r1, r6, #0x0 sub r1, #0x37 add r4, r5, r1 lsl r2, r0, #0x2 ldr r1, [r4, r2] sub r1, r1, #0x1 str r1, [r4, r2] ldr r1, [r3, #0x4] mov r2, #0x0 add r0, r1, r0 strb r2, [r0, r6] pop {r4-r6, pc} _020303E4: bl FUN_020303F4 pop {r4-r6, pc} nop _020303EC: .word 0x021C59F4 _020303F0: .word 0x0000066F thumb_func_start FUN_020303F4 FUN_020303F4: ; 0x020303F4 push {r4-r6, lr} ldr r3, _020304B8 ; =0x021C59F4 add r5, r0, #0x0 ldr r0, [r3, #0x4] ldr r2, _020304BC ; =0x00000638 add r4, r1, #0x0 add r1, r0, r2 lsl r0, r5, #0x2 ldr r6, [r1, r0] sub r6, r6, #0x1 str r6, [r1, r0] cmp r4, #0x0 beq _020304B4 ldr r0, [r3, #0x4] add r2, #0x2f add r0, r0, r2 ldrb r1, [r0, r5] cmp r1, #0x0 beq _02030422 ldrb r2, [r4, #0x0] mov r1, #0x1 tst r1, r2 bne _020304B4 _02030422: mov r1, #0x0 strb r1, [r0, r5] bl FUN_0202FA28 cmp r0, #0x1 bne _02030478 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r6, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 ldrb r1, [r4, #0x0] mov r0, #0x2 tst r0, r1 bne _02030468 ldr r0, _020304B8 ; =0x021C59F4 ldr r3, _020304C0 ; =0x0000065E ldr r1, [r0, #0x4] ldr r0, _020304C4 ; =0x0000047C add r2, r6, #0x0 add r1, r1, r0 mov r0, #0xc mul r0, r5 add r0, r1, r0 add r1, r4, #0x0 bl FUN_0202D3A4 _02030468: ldr r0, _020304B8 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020304C8 ; =0x0000065F add r1, r1, r0 ldrb r0, [r1, r5] add r0, r0, #0x1 strb r0, [r1, r5] pop {r4-r6, pc} _02030478: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020307E4 ldrb r1, [r4, #0x0] mov r0, #0x2 tst r0, r1 bne _020304B4 mov r0, #0xc add r6, r5, #0x0 mul r6, r0 ldr r0, _020304B8 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020304CC ; =0x000004E8 add r0, r1, r0 add r0, r0, r6 bl FUN_0202D498 cmp r0, #0xb blt _020304B4 ldr r0, _020304B8 ; =0x021C59F4 ldr r3, _020304D0 ; =0x0000066E ldr r1, [r0, #0x4] ldr r0, _020304CC ; =0x000004E8 mov r2, #0xb add r0, r1, r0 add r0, r0, r6 add r1, r4, #0x1 bl FUN_0202D3A4 _020304B4: pop {r4-r6, pc} nop _020304B8: .word 0x021C59F4 _020304BC: .word 0x00000638 _020304C0: .word 0x0000065E _020304C4: .word 0x0000047C _020304C8: .word 0x0000065F _020304CC: .word 0x000004E8 _020304D0: .word 0x0000066E thumb_func_start FUN_020304D4 FUN_020304D4: ; 0x020304D4 push {r3, lr} cmp r0, #0x0 beq _020304E4 ldr r0, _020304EC ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] pop {r3, pc} _020304E4: bl ErrorHandling pop {r3, pc} nop _020304EC: .word 0x02105D58 thumb_func_start FUN_020304F0 FUN_020304F0: ; 0x020304F0 push {r3, lr} cmp r0, #0x0 beq _02030500 ldr r0, _02030508 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] pop {r3, pc} _02030500: bl ErrorHandling pop {r3, pc} nop _02030508: .word 0x02105D58 thumb_func_start FUN_0203050C FUN_0203050C: ; 0x0203050C push {r4, lr} ldr r0, _02030660 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0203051E bl FUN_02033534 cmp r0, #0x13 blt _02030520 _0203051E: b _0203065E _02030520: bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 bl FUN_02031280 cmp r0, #0x0 beq _02030594 ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] cmp r1, #0x2 beq _02030550 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02030594 _02030550: ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x1 bl FUN_020304D4 ldr r0, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r3, [r0, #0x4] mov r0, #0x0 ldrb r2, [r3, r1] mov r1, #0x26 mul r1, r2 lsl r2, r4, #0x10 add r1, r3, r1 lsr r2, r2, #0x10 bl FUN_020303F4 ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] pop {r4, pc} _02030594: bl FUN_0202CBD4 cmp r0, #0x4 bne _0203065E bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _020305AE bl FUN_02031190 pop {r4, pc} _020305AE: ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] cmp r1, #0x2 beq _020305BC ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0203065E _020305BC: bl FUN_02031190 cmp r0, #0x0 beq _02030612 ldr r0, _02030664 ; =0x02105D58 ldr r3, _0203066C ; =FUN_020304D4 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] ldr r0, _02030660 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _02030668 ; =0x0000067F ldrb r1, [r2, r0] mov r0, #0x26 mul r0, r1 lsl r1, r4, #0x10 add r0, r2, r0 lsr r1, r1, #0x10 mov r2, #0xe bl FUN_0202D0D0 cmp r0, #0x0 bne _020305F4 ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] sub r1, r1, #0x1 strb r1, [r0, #0x0] pop {r4, pc} _020305F4: ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] pop {r4, pc} _02030612: bl FUN_0202CB8C ldr r1, _02030670 ; =0x0000FFFE tst r0, r1 beq _0203065E ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x1 bl FUN_020304D4 ldr r0, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r3, [r0, #0x4] mov r0, #0x0 ldrb r2, [r3, r1] mov r1, #0x26 mul r1, r2 lsl r2, r4, #0x10 add r1, r3, r1 lsr r2, r2, #0x10 bl FUN_020303F4 ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] _0203065E: pop {r4, pc} .balign 4 _02030660: .word 0x021C59F4 _02030664: .word 0x02105D58 _02030668: .word 0x0000067F _0203066C: .word FUN_020304D4 _02030670: .word 0x0000FFFE thumb_func_start FUN_02030674 FUN_02030674: ; 0x02030674 push {r3-r7, lr} ldr r7, _02030798 ; =0x021C59F4 mov r6, #0x0 ldr r5, [r7, #0x4] ldr r2, _0203079C ; =0x0000062C add r4, r6, #0x0 ldrb r0, [r5, r2] cmp r0, #0x0 beq _02030690 sub r1, r2, #0x4 ldrh r1, [r5, r1] mov r3, #0xf0 tst r3, r1 bne _02030692 _02030690: b _02030794 _02030692: cmp r0, #0x2 bne _020306D0 mov r0, #0x20 tst r0, r1 beq _020306A4 mov r0, #0x10 orr r0, r6 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306A4: mov r0, #0x10 tst r0, r1 beq _020306B2 mov r0, #0x20 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306B2: mov r0, #0x40 tst r0, r1 beq _020306C0 mov r0, #0x80 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306C0: mov r0, #0x80 tst r0, r1 beq _0203077E mov r0, #0x40 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203077E _020306D0: add r0, r2, #0x2 ldrh r0, [r5, r0] cmp r0, #0x0 beq _020306F2 add r4, r0, #0x0 add r0, r2, #0x1 ldrsb r0, [r5, r0] sub r1, r0, #0x1 add r0, r2, #0x1 strb r1, [r5, r0] ldr r1, [r7, #0x4] ldrsb r0, [r1, r0] cmp r0, #0x0 bge _0203077E add r0, r2, #0x2 strh r6, [r1, r0] b _0203077E _020306F2: add r0, r2, #0x0 sub r0, #0x34 add r6, r5, r0 sub r2, #0x34 ldr r0, [r6, #0x8] ldr r1, [r6, #0xc] ldr r2, [r5, r2] ldr r3, [r6, #0x4] blx _ll_mul add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r6, #0x10] ldr r1, [r6, #0x14] add r0, r0, r3 adc r1, r2 ldr r2, _020307A0 ; =0x000005F8 str r0, [r5, r2] mov r2, #0x0 str r1, [r6, #0x4] lsr r0, r1, #0x1e lsl r1, r2, #0x2 orr r1, r0 cmp r1, #0x3 bhi _02030746 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02030730: ; jump table (using 16-bit offset) .short _02030738 - _02030730 - 2; case 0 .short _0203073C - _02030730 - 2; case 1 .short _02030740 - _02030730 - 2; case 2 .short _02030744 - _02030730 - 2; case 3 _02030738: mov r4, #0x20 b _02030746 _0203073C: mov r4, #0x10 b _02030746 _02030740: mov r4, #0x40 b _02030746 _02030744: mov r4, #0x80 _02030746: ldr r0, _02030798 ; =0x021C59F4 ldr r5, [r0, #0x4] ldr r0, _020307A0 ; =0x000005F8 add r6, r5, r0 ldr r0, [r6, #0x8] ldr r1, [r6, #0xc] ldr r2, [r6, #0x0] ldr r3, [r6, #0x4] blx _ll_mul ldr r3, [r6, #0x10] ldr r2, [r6, #0x14] add r0, r3, r0 adc r2, r1 ldr r1, _020307A0 ; =0x000005F8 mov r3, #0x0 str r0, [r5, r1] str r2, [r6, #0x4] lsr r0, r2, #0x1c lsl r2, r3, #0x4 orr r2, r0 add r0, r1, #0x0 add r0, #0x35 strb r2, [r5, r0] ldr r0, _02030798 ; =0x021C59F4 add r1, #0x36 ldr r0, [r0, #0x4] strh r4, [r0, r1] _0203077E: ldr r2, _02030798 ; =0x021C59F4 ldr r1, _020307A4 ; =0x00000628 ldr r5, [r2, #0x4] mov r0, #0xf0 ldrh r3, [r5, r1] bic r3, r0 strh r3, [r5, r1] ldr r2, [r2, #0x4] ldrh r0, [r2, r1] add r0, r0, r4 strh r0, [r2, r1] _02030794: pop {r3-r7, pc} nop _02030798: .word 0x021C59F4 _0203079C: .word 0x0000062C _020307A0: .word 0x000005F8 _020307A4: .word 0x00000628 thumb_func_start FUN_020307A8 FUN_020307A8: ; 0x020307A8 ldr r0, _020307B4 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020307B8 ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307B4: .word 0x021C59F4 _020307B8: .word 0x0000062C thumb_func_start FUN_020307BC FUN_020307BC: ; 0x020307BC ldr r0, _020307C8 ; =0x021C59F4 mov r2, #0x2 ldr r1, [r0, #0x4] ldr r0, _020307CC ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307C8: .word 0x021C59F4 _020307CC: .word 0x0000062C thumb_func_start FUN_020307D0 FUN_020307D0: ; 0x020307D0 ldr r0, _020307DC ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _020307E0 ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307DC: .word 0x021C59F4 _020307E0: .word 0x0000062C thumb_func_start FUN_020307E4 FUN_020307E4: ; 0x020307E4 push {r4-r7} ldr r4, _02030868 ; =0x021C59F4 lsl r6, r1, #0x1 ldr r2, [r4, #0x4] mov r5, #0x0 add r3, r2, r6 mov r2, #0x61 lsl r2, r2, #0x4 strh r5, [r3, r2] ldrb r5, [r0, #0x0] mov r3, #0x10 add r7, r5, #0x0 and r7, r3 cmp r7, #0x10 bne _02030860 mov r7, #0xc and r5, r7 lsl r5, r5, #0x18 lsr r5, r5, #0x18 bne _0203081A ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x40 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203081A: cmp r5, #0x4 bne _0203082C ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x80 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203082C: cmp r5, #0x8 bne _0203083E ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x20 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203083E: cmp r5, #0xc bne _0203084C ldr r4, [r4, #0x4] add r4, r4, r2 ldrh r2, [r4, r6] orr r2, r3 strh r2, [r4, r6] _0203084C: ldrb r0, [r0, #0x0] asr r2, r0, #0x5 mov r0, #0x7 and r2, r0 ldr r0, _02030868 ; =0x021C59F4 ldr r0, [r0, #0x4] add r1, r0, r1 mov r0, #0x62 lsl r0, r0, #0x4 strb r2, [r1, r0] _02030860: mov r0, #0x1 pop {r4-r7} bx lr nop _02030868: .word 0x021C59F4 thumb_func_start FUN_0203086C FUN_0203086C: ; 0x0203086C bx lr .balign 4 thumb_func_start FUN_02030870 FUN_02030870: ; 0x02030870 push {r4, lr} add r4, r0, #0x0 ldr r0, _0203091C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030920 ; =0x0000062A ldrb r0, [r1, r0] cmp r0, #0x0 beq _02030884 mov r0, #0x0 pop {r4, pc} _02030884: bl FUN_02030FE0 cmp r0, #0x0 bne _02030890 mov r0, #0x0 pop {r4, pc} _02030890: ldr r0, _0203091C ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _02030924 ; =0x00000681 ldrb r1, [r2, r0] cmp r1, #0x0 beq _020308A0 sub r1, r1, #0x1 strb r1, [r2, r0] _020308A0: ldr r1, _0203091C ; =0x021C59F4 ldr r0, _02030928 ; =0x00000628 ldr r2, [r1, #0x4] mov r3, #0x40 ldrh r2, [r2, r0] tst r3, r2 beq _020308C0 ldrb r3, [r4, #0x0] mov r2, #0x10 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308C0: mov r3, #0x80 tst r3, r2 beq _020308D8 ldrb r3, [r4, #0x0] mov r2, #0x14 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308D8: mov r3, #0x20 tst r3, r2 beq _020308F0 ldrb r3, [r4, #0x0] mov r2, #0x18 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308F0: mov r3, #0x10 tst r2, r3 beq _02030906 ldrb r3, [r4, #0x0] mov r2, #0x1c add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] _02030906: ldr r0, _0203091C ; =0x021C59F4 ldrb r2, [r4, #0x0] ldr r1, [r0, #0x4] ldr r0, _0203092C ; =0x0000062B ldrb r0, [r1, r0] lsl r0, r0, #0x5 orr r0, r2 strb r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} nop _0203091C: .word 0x021C59F4 _02030920: .word 0x0000062A _02030924: .word 0x00000681 _02030928: .word 0x00000628 _0203092C: .word 0x0000062B thumb_func_start FUN_02030930 FUN_02030930: ; 0x02030930 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r5, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 ldr r0, _020309F0 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020309F4 ; =0x00000684 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030960 mov r0, #0x0 b _02030962 _02030960: mov r0, #0x1 _02030962: strb r0, [r4, #0x0] bl FUN_0202FA28 cmp r0, #0x0 bne _02030972 add r0, r4, #0x0 bl FUN_02030870 _02030972: ldr r1, _020309F0 ; =0x021C59F4 ldr r0, _020309F4 ; =0x00000684 ldr r2, [r1, #0x4] mov r3, #0x0 strb r3, [r2, r0] ldr r1, [r1, #0x4] ldr r0, _020309F8 ; =0x0000054C add r0, r1, r0 bl FUN_0202D4E4 cmp r0, #0x0 beq _0203099E ldrb r1, [r4, #0x0] mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x2 bne _020309E8 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0203099E: sub r0, r5, #0x1 str r0, [sp, #0x4] add r0, r4, #0x1 str r0, [sp, #0x0] ldr r0, _020309F0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020309F8 ; =0x0000054C add r0, r1, r0 add r1, sp, #0x0 bl FUN_0202D760 cmp r0, #0x0 bne _020309C4 ldr r0, _020309F0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020309F4 ; =0x00000684 strb r2, [r1, r0] _020309C4: bl FUN_0202FA28 cmp r0, #0x1 bne _020309E8 ldr r2, _020309F0 ; =0x021C59F4 ldr r1, _020309FC ; =0x0000065E ldr r3, [r2, #0x4] ldrb r0, [r3, r1] add r0, r0, #0x1 strb r0, [r3, r1] ldr r2, [r2, #0x4] ldrb r0, [r4, #0x0] ldrb r1, [r2, r1] lsl r2, r1, #0x4 mov r1, #0xf0 and r1, r2 orr r0, r1 strb r0, [r4, #0x0] _020309E8: mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _020309F0: .word 0x021C59F4 _020309F4: .word 0x00000684 _020309F8: .word 0x0000054C _020309FC: .word 0x0000065E thumb_func_start FUN_02030A00 FUN_02030A00: ; 0x02030A00 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0xb strb r0, [r4, #0x0] ldr r0, _02030A6C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030A1A mov r0, #0x0 b _02030A1C _02030A1A: mov r0, #0x1 _02030A1C: strb r0, [r4, #0x1] bl FUN_0202CB8C asr r1, r0, #0x8 strb r1, [r4, #0x2] strb r0, [r4, #0x3] mov r0, #0xbb str r0, [sp, #0x4] add r0, r4, #0x5 str r0, [sp, #0x0] ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030A74 ; =0x0000056C add r0, r1, r0 add r1, sp, #0x0 bl FUN_0202D760 cmp r0, #0x0 beq _02030A5A ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 strb r2, [r1, r0] ldr r1, [sp, #0x4] mov r0, #0xbb sub r0, r0, r1 add sp, #0x8 strb r0, [r4, #0x4] pop {r4, pc} _02030A5A: ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 strb r2, [r1, r0] mov r0, #0xbb strb r0, [r4, #0x4] add sp, #0x8 pop {r4, pc} .balign 4 _02030A6C: .word 0x021C59F4 _02030A70: .word 0x00000685 _02030A74: .word 0x0000056C thumb_func_start FUN_02030A78 FUN_02030A78: ; 0x02030A78 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _02030A9C bl FUN_02031280 cmp r0, #0x0 bne _02030A9C add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030A9C: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02030AD4 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030AD8 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030AC0 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030AC0: bl FUN_02033534 cmp r0, #0xa bne _02030ACC bl FUN_02031454 _02030ACC: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02030AD4: .word 0x021C59F4 _02030AD8: .word 0x0000054C thumb_func_start FUN_02030ADC FUN_02030ADC: ; 0x02030ADC push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _02030B00 bl FUN_02031280 cmp r0, #0x0 bne _02030B00 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B00: mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02030B34 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030B38 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030B22 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030B22: bl FUN_02033534 cmp r0, #0xa bne _02030B2E bl FUN_02031454 _02030B2E: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _02030B34: .word 0x021C59F4 _02030B38: .word 0x0000054C thumb_func_start FUN_02030B3C FUN_02030B3C: ; 0x02030B3C push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02030B58 bl ErrorHandling add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B58: mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _02030B70 bl FUN_02031280 cmp r0, #0x0 bne _02030B70 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B70: bl FUN_0202FA28 cmp r0, #0x1 bne _02030B86 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02030A78 add sp, #0x8 pop {r4-r6, pc} _02030B86: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02030BBC ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030BC0 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030BAA add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030BAA: bl FUN_02033534 cmp r0, #0xa bne _02030BB6 bl FUN_02031454 _02030BB6: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _02030BBC: .word 0x021C59F4 _02030BC0: .word 0x0000056C thumb_func_start FUN_02030BC4 FUN_02030BC4: ; 0x02030BC4 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02030BE0 bl FUN_02031454 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030BE0: mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _02030BF8 bl FUN_02031280 cmp r0, #0x0 bne _02030BF8 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030BF8: bl FUN_0202FA28 cmp r0, #0x1 bne _02030C0E add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02030ADC add sp, #0x8 pop {r4-r6, pc} _02030C0E: mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02030C44 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030C48 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030C30 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030C30: bl FUN_02033534 cmp r0, #0xa bne _02030C3C bl FUN_02031454 _02030C3C: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02030C44: .word 0x021C59F4 _02030C48: .word 0x0000056C thumb_func_start FUN_02030C4C FUN_02030C4C: ; 0x02030C4C ldr r3, _02030C54 ; =FUN_02030BC4 mov r2, #0x0 bx r3 nop _02030C54: .word FUN_02030BC4 thumb_func_start FUN_02030C58 FUN_02030C58: ; 0x02030C58 ldr r0, _02030C64 ; =0x021C59F4 ldr r3, _02030C68 ; =FUN_0202D498 ldr r1, [r0, #0x4] ldr r0, _02030C6C ; =0x00000464 add r0, r1, r0 bx r3 .balign 4 _02030C64: .word 0x021C59F4 _02030C68: .word FUN_0202D498 _02030C6C: .word 0x00000464 thumb_func_start FUN_02030C70 FUN_02030C70: ; 0x02030C70 push {r4, lr} ldr r4, [sp, #0x8] bl FUN_0202D934 mov r0, #0xee strb r0, [r4, #0xa] ldr r0, _02030C88 ; =0x0000FFFF strh r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0x4] str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02030C88: .word 0x0000FFFF thumb_func_start FUN_02030C8C FUN_02030C8C: ; 0x02030C8C push {r4-r7, lr} sub sp, #0x14 add r6, r0, #0x0 str r1, [sp, #0x4] str r2, [sp, #0x8] ldr r5, [sp, #0x28] bl FUN_0202D478 cmp r0, #0x0 beq _02030D94 _02030CA0: ldrb r7, [r5, #0xa] cmp r7, #0xee bne _02030CB2 add r0, r6, #0x0 bl FUN_0202D41C add r7, r0, #0x0 cmp r7, #0xee beq _02030D8A _02030CB2: mov r0, #0x4 ldrsh r0, [r6, r0] strb r7, [r5, #0xa] ldrh r4, [r5, #0x8] str r0, [sp, #0x10] ldr r0, _02030D98 ; =0x0000FFFF cmp r4, r0 bne _02030D06 add r0, r7, #0x0 bl FUN_0202D9A0 add r4, r0, #0x0 ldr r0, _02030D9C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030DA0 ; =0x00000689 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030D94 ldr r0, _02030D98 ; =0x0000FFFF cmp r4, r0 bne _02030D04 add r0, r6, #0x0 bl FUN_0202D478 cmp r0, #0x1 bge _02030CEE ldr r0, [sp, #0x10] add sp, #0x14 strh r0, [r6, #0x4] pop {r4-r7, pc} _02030CEE: add r0, r6, #0x0 bl FUN_0202D41C lsl r4, r0, #0x8 add r0, r6, #0x0 bl FUN_0202D41C add r4, r4, r0 mov r0, #0x4 ldrsh r0, [r6, r0] str r0, [sp, #0x10] _02030D04: strh r4, [r5, #0x8] _02030D06: add r0, r7, #0x0 bl FUN_0202DA04 cmp r0, #0x0 beq _02030D5E ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02030D22 ldrh r2, [r5, #0x8] ldr r1, [sp, #0x4] add r0, r7, #0x0 bl FUN_0202DA40 str r0, [r5, #0x4] _02030D22: ldr r2, [r5, #0x0] ldr r1, [sp, #0x8] add r0, r6, #0x0 sub r2, r4, r2 bl FUN_0202D400 ldr r2, [r5, #0x4] str r0, [sp, #0xc] cmp r2, #0x0 beq _02030D42 ldr r1, [r5, #0x0] ldr r0, [sp, #0x8] add r1, r2, r1 ldr r2, [sp, #0xc] blx MI_CpuCopy8 _02030D42: ldr r1, [r5, #0x0] ldr r0, [sp, #0xc] add r0, r1, r0 str r0, [r5, #0x0] cmp r0, r4 blt _02030D8A str r5, [sp, #0x0] ldr r0, [sp, #0x4] ldr r3, [r5, #0x4] add r1, r7, #0x0 add r2, r4, #0x0 bl FUN_02030C70 b _02030D8A _02030D5E: add r0, r6, #0x0 bl FUN_0202D478 cmp r0, r4 blt _02030D82 ldr r1, [sp, #0x8] add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0202D400 ldr r0, [sp, #0x4] ldr r3, [sp, #0x8] add r1, r7, #0x0 add r2, r4, #0x0 str r5, [sp, #0x0] bl FUN_02030C70 b _02030D8A _02030D82: ldr r0, [sp, #0x10] add sp, #0x14 strh r0, [r6, #0x4] pop {r4-r7, pc} _02030D8A: add r0, r6, #0x0 bl FUN_0202D478 cmp r0, #0x0 bne _02030CA0 _02030D94: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02030D98: .word 0x0000FFFF _02030D9C: .word 0x021C59F4 _02030DA0: .word 0x00000689 thumb_func_start FUN_02030DA4 FUN_02030DA4: ; 0x02030DA4 push {r3, lr} ldr r0, _02030DF0 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030DEE ldr r0, _02030DF4 ; =0x0000068B ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030DEE mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0202D4BC ldr r0, _02030DF0 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0202D478 cmp r0, #0x0 ble _02030DEE ldr r0, _02030DF0 ; =0x021C59F4 mov r2, #0x47 ldr r3, [r0, #0x4] ldr r0, _02030DF8 ; =0x000005EC lsl r2, r2, #0x4 add r0, r3, r0 str r0, [sp, #0x0] add r0, r3, r2 sub r2, #0x10 ldr r2, [r3, r2] mov r1, #0x0 mov r3, #0x1 bl FUN_02030C8C _02030DEE: pop {r3, pc} .balign 4 _02030DF0: .word 0x021C59F4 _02030DF4: .word 0x0000068B _02030DF8: .word 0x000005EC thumb_func_start FUN_02030DFC FUN_02030DFC: ; 0x02030DFC push {r3-r7, lr} ldr r0, _02030E6C ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030E68 ldr r0, _02030E70 ; =0x0000068B ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030E68 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r7, r0, #0x1 mov r4, #0x0 cmp r7, #0x0 ble _02030E68 ldr r6, _02030E6C ; =0x021C59F4 add r5, r4, #0x0 _02030E26: ldr r1, [r6, #0x4] ldr r0, _02030E74 ; =0x000004E8 add r0, r1, r0 add r0, r0, r5 bl FUN_0202D4BC ldr r1, [r6, #0x4] ldr r0, _02030E74 ; =0x000004E8 add r0, r1, r0 add r0, r0, r5 bl FUN_0202D478 cmp r0, #0x0 ble _02030E60 ldr r3, [r6, #0x4] ldr r0, _02030E78 ; =0x0000058C mov r2, #0x46 add r0, r3, r0 add r0, r0, r5 str r0, [sp, #0x0] ldr r0, _02030E74 ; =0x000004E8 lsl r2, r2, #0x4 add r0, r3, r0 ldr r2, [r3, r2] add r0, r0, r5 add r1, r4, #0x0 mov r3, #0x0 bl FUN_02030C8C _02030E60: add r4, r4, #0x1 add r5, #0xc cmp r4, r7 blt _02030E26 _02030E68: pop {r3-r7, pc} nop _02030E6C: .word 0x021C59F4 _02030E70: .word 0x0000068B _02030E74: .word 0x000004E8 _02030E78: .word 0x0000058C thumb_func_start FUN_02030E7C FUN_02030E7C: ; 0x02030E7C push {r4, lr} add r4, r0, #0x0 ldr r0, _02030F14 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 bne _02030E8C mov r0, #0x0 pop {r4, pc} _02030E8C: bl FUN_02033534 cmp r0, #0x13 blt _02030EC0 ldr r0, _02030F14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030F18 ; =0x00000687 ldrb r0, [r1, r0] cmp r0, #0x0 beq _02030EBC bl FUN_021D8018 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02030EBC cmp r4, #0x0 bne _02030EB4 mov r0, #0x1 pop {r4, pc} _02030EB4: cmp r4, #0x1 bne _02030EBC mov r0, #0x1 pop {r4, pc} _02030EBC: mov r0, #0x0 pop {r4, pc} _02030EC0: bl FUN_02030F40 cmp r0, #0x0 bne _02030ECC mov r0, #0x0 pop {r4, pc} _02030ECC: bl FUN_0202CBD4 cmp r0, #0x4 beq _02030ED8 mov r0, #0x0 pop {r4, pc} _02030ED8: bl FUN_02031190 cmp r4, r0 bne _02030EE4 mov r0, #0x1 pop {r4, pc} _02030EE4: bl FUN_02031190 cmp r0, #0x0 bne _02030EFE bl FUN_0202CB8C mov r1, #0x1 add r2, r1, #0x0 lsl r2, r4 tst r0, r2 beq _02030F10 add r0, r1, #0x0 pop {r4, pc} _02030EFE: ldr r0, _02030F14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030F1C ; =0x0000065C ldrh r2, [r1, r0] mov r0, #0x1 add r1, r0, #0x0 lsl r1, r4 tst r1, r2 bne _02030F12 _02030F10: mov r0, #0x0 _02030F12: pop {r4, pc} .balign 4 _02030F14: .word 0x021C59F4 _02030F18: .word 0x00000687 _02030F1C: .word 0x0000065C thumb_func_start FUN_02030F20 FUN_02030F20: ; 0x02030F20 push {r3-r5, lr} mov r4, #0x0 add r5, r4, #0x0 _02030F26: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _02030F34 add r4, r4, #0x1 _02030F34: add r5, r5, #0x1 cmp r5, #0x8 blt _02030F26 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02030F40 FUN_02030F40: ; 0x02030F40 push {r3, lr} ldr r0, _02030F5C ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02030F56 bl FUN_02033534 cmp r0, #0x13 blt _02030F56 mov r0, #0x1 pop {r3, pc} _02030F56: bl FUN_0202EDF8 pop {r3, pc} .balign 4 _02030F5C: .word 0x021C59F4 thumb_func_start FUN_02030F60 FUN_02030F60: ; 0x02030F60 ldr r1, _02030F6C ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _02030F70 ; =0x0000062B strb r0, [r2, r1] bx lr nop _02030F6C: .word 0x021C59F4 _02030F70: .word 0x0000062B thumb_func_start FUN_02030F74 FUN_02030F74: ; 0x02030F74 ldr r1, _02030F84 ; =0x021C59F4 ldr r1, [r1, #0x4] add r1, r1, r0 mov r0, #0x62 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr nop _02030F84: .word 0x021C59F4 thumb_func_start FUN_02030F88 FUN_02030F88: ; 0x02030F88 ldr r1, _02030FA4 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 bne _02030F94 mov r0, #0x0 bx lr _02030F94: mov r1, #0x61 lsl r1, r1, #0x4 add r3, r2, r1 lsl r2, r0, #0x1 ldrh r0, [r3, r2] mov r1, #0x0 strh r1, [r3, r2] bx lr .balign 4 _02030FA4: .word 0x021C59F4 thumb_func_start FUN_02030FA8 FUN_02030FA8: ; 0x02030FA8 ldr r0, _02030FC0 ; =0x021C59F4 ldr r3, [r0, #0x4] cmp r3, #0x0 beq _02030FBC ldr r1, _02030FC4 ; =0x00000628 mov r0, #0x2 ldrh r2, [r3, r1] lsl r0, r0, #0xe orr r0, r2 strh r0, [r3, r1] _02030FBC: bx lr nop _02030FC0: .word 0x021C59F4 _02030FC4: .word 0x00000628 thumb_func_start FUN_02030FC8 FUN_02030FC8: ; 0x02030FC8 ldr r0, _02030FD8 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _02030FD6 ldr r0, _02030FDC ; =0x00000628 mov r1, #0x0 strh r1, [r2, r0] _02030FD6: bx lr .balign 4 _02030FD8: .word 0x021C59F4 _02030FDC: .word 0x00000628 thumb_func_start FUN_02030FE0 FUN_02030FE0: ; 0x02030FE0 ldr r0, _02030FF8 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030FF4 ldr r0, _02030FFC ; =0x00000628 ldrh r1, [r1, r0] mov r0, #0x2 lsl r0, r0, #0xe and r0, r1 bx lr _02030FF4: mov r0, #0x1 bx lr .balign 4 _02030FF8: .word 0x021C59F4 _02030FFC: .word 0x00000628 thumb_func_start FUN_02031000 FUN_02031000: ; 0x02031000 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0202FA28 cmp r0, #0x1 bne _02031030 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02031050 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031054 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r4-r6, pc} _02031030: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02031050 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031058 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r4-r6, pc} nop _02031050: .word 0x021C59F4 _02031054: .word 0x0000054C _02031058: .word 0x0000056C thumb_func_start FUN_0203105C FUN_0203105C: ; 0x0203105C push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02031080 ; =0x021C59F4 add r4, r1, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031084 ; =0x0000054C add r3, r2, #0x0 add r0, r1, r0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02031080: .word 0x021C59F4 _02031084: .word 0x0000054C thumb_func_start FUN_02031088 FUN_02031088: ; 0x02031088 push {r3, lr} ldr r0, _02031100 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _020310FC ldr r1, _02031104 ; =0x0000067B ldrb r0, [r2, r1] cmp r0, #0x1 beq _020310A0 cmp r0, #0x3 beq _020310D8 pop {r3, pc} _020310A0: bl FUN_0202FA28 cmp r0, #0x1 bne _020310B8 ldr r1, _02031100 ; =0x021C59F4 mov r0, #0xb ldr r2, [r1, #0x4] ldr r1, _02031108 ; =0x0000067C add r1, r2, r1 bl FUN_020311D0 b _020310C8 _020310B8: ldr r1, _02031100 ; =0x021C59F4 mov r0, #0xb ldr r2, [r1, #0x4] ldr r1, _02031108 ; =0x0000067C add r1, r2, r1 mov r2, #0x1 bl FUN_02030BC4 _020310C8: cmp r0, #0x0 beq _020310FC ldr r0, _02031100 ; =0x021C59F4 mov r2, #0x2 ldr r1, [r0, #0x4] ldr r0, _02031104 ; =0x0000067B strb r2, [r1, r0] pop {r3, pc} _020310D8: add r1, r1, #0x1 mov r0, #0xc add r1, r2, r1 bl FUN_020311D0 cmp r0, #0x0 beq _020310FC ldr r0, _02031100 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02031108 ; =0x0000067C ldrb r0, [r1, r0] bl FUN_0202F9E0 ldr r0, _02031100 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031104 ; =0x0000067B strb r2, [r1, r0] _020310FC: pop {r3, pc} nop _02031100: .word 0x021C59F4 _02031104: .word 0x0000067B _02031108: .word 0x0000067C thumb_func_start FUN_0203110C FUN_0203110C: ; 0x0203110C push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0203112A ldr r1, _0203112C ; =0x021C59F4 ldr r0, _02031130 ; =0x0000067B ldr r2, [r1, #0x4] mov r3, #0x1 strb r3, [r2, r0] ldrb r2, [r4, #0x0] ldr r1, [r1, #0x4] add r0, r0, #0x1 strb r2, [r1, r0] _0203112A: pop {r4, pc} .balign 4 _0203112C: .word 0x021C59F4 _02031130: .word 0x0000067B thumb_func_start FUN_02031134 FUN_02031134: ; 0x02031134 push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02031152 ldr r1, _02031154 ; =0x021C59F4 ldrb r3, [r4, #0x0] ldr r2, [r1, #0x4] ldr r0, _02031158 ; =0x0000067C strb r3, [r2, r0] ldr r1, [r1, #0x4] mov r2, #0x3 sub r0, r0, #0x1 strb r2, [r1, r0] _02031152: pop {r4, pc} .balign 4 _02031154: .word 0x021C59F4 _02031158: .word 0x0000067C thumb_func_start FUN_0203115C FUN_0203115C: ; 0x0203115C push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _02031184 ldr r0, _02031188 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0203118C ; =0x0000067B ldrb r0, [r1, r0] cmp r0, #0x2 bne _02031184 ldrb r0, [r4, #0x0] bl FUN_0202F9E0 ldr r0, _02031188 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203118C ; =0x0000067B strb r2, [r1, r0] _02031184: pop {r4, pc} nop _02031188: .word 0x021C59F4 _0203118C: .word 0x0000067B thumb_func_start FUN_02031190 FUN_02031190: ; 0x02031190 push {r3, lr} ldr r0, _020311CC ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _020311C6 bl FUN_02033534 cmp r0, #0x13 blt _020311B4 bl FUN_021D8018 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020311C6 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} _020311B4: bl FUN_02031280 cmp r0, #0x0 beq _020311C0 mov r0, #0x0 pop {r3, pc} _020311C0: bl FUN_0202D19C pop {r3, pc} _020311C6: mov r0, #0x0 pop {r3, pc} nop _020311CC: .word 0x021C59F4 thumb_func_start FUN_020311D0 FUN_020311D0: ; 0x020311D0 ldr r3, _020311D8 ; =FUN_02030ADC mov r2, #0x0 bx r3 nop _020311D8: .word FUN_02030ADC thumb_func_start FUN_020311DC FUN_020311DC: ; 0x020311DC ldr r3, _020311E4 ; =FUN_02030ADC mov r1, #0x0 add r2, r1, #0x0 bx r3 .balign 4 _020311E4: .word FUN_02030ADC thumb_func_start FUN_020311E8 FUN_020311E8: ; 0x020311E8 ldr r3, _020311EC ; =FUN_0202EE24 bx r3 .balign 4 _020311EC: .word FUN_0202EE24 thumb_func_start FUN_020311F0 FUN_020311F0: ; 0x020311F0 push {r3, lr} bl FUN_02031280 cmp r0, #0x0 beq _020311FE mov r0, #0x0 pop {r3, pc} _020311FE: ldr r0, _02031220 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203121A ldr r0, _02031224 ; =0x00000689 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0203121A mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 mov r0, #0x1 pop {r3, pc} _0203121A: bl FUN_0202EE60 pop {r3, pc} .balign 4 _02031220: .word 0x021C59F4 _02031224: .word 0x00000689 thumb_func_start FUN_02031228 FUN_02031228: ; 0x02031228 push {r3, lr} bl FUN_0202D858 cmp r0, #0x5 blo _02031236 mov r0, #0xc pop {r3, pc} _02031236: bl FUN_0202FA28 cmp r0, #0x0 bne _02031242 mov r0, #0xc pop {r3, pc} _02031242: mov r0, #0x26 pop {r3, pc} .balign 4 thumb_func_start FUN_02031248 FUN_02031248: ; 0x02031248 push {r3, lr} lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02031258 FUN_02031258: ; 0x02031258 push {r3, lr} lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D884 add r0, r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02031268 FUN_02031268: ; 0x02031268 ldr r1, _02031278 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _02031274 ldr r1, _0203127C ; =0x00000686 strb r0, [r2, r1] _02031274: bx lr nop _02031278: .word 0x021C59F4 _0203127C: .word 0x00000686 thumb_func_start FUN_02031280 FUN_02031280: ; 0x02031280 ldr r0, _02031294 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203128E ldr r0, _02031298 ; =0x00000686 ldrb r0, [r1, r0] bx lr _0203128E: mov r0, #0x0 bx lr nop _02031294: .word 0x021C59F4 _02031298: .word 0x00000686 thumb_func_start FUN_0203129C FUN_0203129C: ; 0x0203129C push {r3, lr} bl FUN_0202F03C cmp r0, #0x0 bne _020312B6 bl FUN_02031190 cmp r0, #0x0 bne _020312B6 mov r0, #0x2 add r1, sp, #0x0 bl FUN_02030C4C _020312B6: bl FUN_0202F05C pop {r3, pc} thumb_func_start FUN_020312BC FUN_020312BC: ; 0x020312BC push {r3-r7, lr} sub sp, #0x20 add r4, r0, #0x0 add r0, sp, #0x10 add r1, sp, #0x4 bl FUN_0201265C ldr r0, _02031340 ; =0x021C48B8 ldr r6, [sp, #0x10] mov r5, #0x0 lsr r7, r6, #0x1c lsl r5, r5, #0x4 ldr r1, [sp, #0xc] ldr r0, [r0, #0x2c] lsl r6, r6, #0x4 add r3, r1, r0 ldr r0, [sp, #0x18] orr r5, r7 str r0, [sp, #0x0] ldr r0, [sp, #0x14] ldr r1, [sp, #0x4] add r6, r0, r6 ldr r0, _02031344 ; =0x00000000 ldr r2, [sp, #0x8] adc r0, r5 lsr r5, r6, #0x1b lsl r0, r0, #0x5 orr r0, r5 ldr r5, [sp, #0x0] lsl r6, r6, #0x5 add r6, r5, r6 ldr r5, _02031344 ; =0x00000000 adc r5, r0 lsr r0, r6, #0x1b lsl r5, r5, #0x5 orr r5, r0 lsl r0, r6, #0x5 add r6, r1, r0 ldr r1, _02031344 ; =0x00000000 adc r1, r5 lsr r0, r6, #0x1a lsl r1, r1, #0x6 orr r1, r0 lsl r0, r6, #0x6 add r5, r2, r0 ldr r2, _02031344 ; =0x00000000 adc r2, r1 lsr r0, r5, #0x1a lsl r1, r2, #0x6 orr r1, r0 lsl r0, r5, #0x6 add r2, r3, r0 ldr r0, _02031344 ; =0x00000000 str r2, [r4, #0x0] adc r0, r1 str r0, [r4, #0x4] ldr r1, _02031348 ; =0x6C078965 ldr r0, _0203134C ; =0x5D588B65 str r1, [r4, #0x8] str r0, [r4, #0xc] ldr r0, _02031350 ; =0x00269EC3 str r0, [r4, #0x10] mov r0, #0x0 str r0, [r4, #0x14] add sp, #0x20 pop {r3-r7, pc} .balign 4 _02031340: .word 0x021C48B8 _02031344: .word 0x00000000 _02031348: .word 0x6C078965 _0203134C: .word 0x5D588B65 _02031350: .word 0x00269EC3 thumb_func_start FUN_02031354 FUN_02031354: ; 0x02031354 add r1, r0, #0x0 ldr r0, _02031364 ; =0x021C59F4 ldr r3, _02031368 ; =FUN_0202D830 ldr r2, [r0, #0x4] ldr r0, _0203136C ; =0x0000056C add r0, r2, r0 bx r3 nop _02031364: .word 0x021C59F4 _02031368: .word FUN_0202D830 _0203136C: .word 0x0000056C thumb_func_start FUN_02031370 FUN_02031370: ; 0x02031370 ldr r0, _0203137C ; =0x021C59F4 ldr r3, _02031380 ; =FUN_0202D4E4 ldr r1, [r0, #0x4] ldr r0, _02031384 ; =0x0000056C add r0, r1, r0 bx r3 .balign 4 _0203137C: .word 0x021C59F4 _02031380: .word FUN_0202D4E4 _02031384: .word 0x0000056C thumb_func_start FUN_02031388 FUN_02031388: ; 0x02031388 ldr r0, _02031394 ; =0x021C59F4 ldr r3, _02031398 ; =FUN_0202D4E4 ldr r1, [r0, #0x4] ldr r0, _0203139C ; =0x0000054C add r0, r1, r0 bx r3 .balign 4 _02031394: .word 0x021C59F4 _02031398: .word FUN_0202D4E4 _0203139C: .word 0x0000054C thumb_func_start FUN_020313A0 FUN_020313A0: ; 0x020313A0 ldr r1, _020313AC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _020313B0 ; =0x00000687 strb r0, [r2, r1] bx lr nop _020313AC: .word 0x021C59F4 _020313B0: .word 0x00000687 thumb_func_start FUN_020313B4 FUN_020313B4: ; 0x020313B4 ldr r2, _020313C4 ; =0x021C59F4 ldr r2, [r2, #0x4] cmp r2, #0x0 beq _020313C2 add r2, r2, r1 ldr r1, _020313C8 ; =0x00000677 strb r0, [r2, r1] _020313C2: bx lr .balign 4 _020313C4: .word 0x021C59F4 _020313C8: .word 0x00000677 thumb_func_start FUN_020313CC FUN_020313CC: ; 0x020313CC ldr r1, _020313E4 ; =0x021C59F4 ldr r1, [r1, #0x4] cmp r1, #0x0 beq _020313E0 add r2, r1, r0 ldr r1, _020313E8 ; =0x00000677 ldrb r1, [r2, r1] cmp r1, #0xff beq _020313E0 add r0, r1, #0x0 _020313E0: bx lr nop _020313E4: .word 0x021C59F4 _020313E8: .word 0x00000677 thumb_func_start FUN_020313EC FUN_020313EC: ; 0x020313EC push {r3, lr} bl FUN_02033534 cmp r0, #0x13 bge _020313FA mov r0, #0x0 pop {r3, pc} _020313FA: bl FUN_021D8624 pop {r3, pc} thumb_func_start FUN_02031400 FUN_02031400: ; 0x02031400 push {r4, lr} add r4, r0, #0x0 bl FUN_02033534 cmp r0, #0x13 blt _02031430 ldr r2, _02031434 ; =0x021C59F4 mov r1, #0x63 ldr r0, [r2, #0x4] lsl r1, r1, #0x4 str r4, [r0, r1] cmp r4, #0x0 beq _02031430 ldr r3, [r2, #0x4] mov r4, #0x0 add r0, r1, #0x4 str r4, [r3, r0] add r0, r1, #0x0 ldr r3, [r2, #0x4] add r0, #0x8 str r4, [r3, r0] ldr r0, [r2, #0x4] add r1, #0xc str r4, [r0, r1] _02031430: pop {r4, pc} nop _02031434: .word 0x021C59F4 thumb_func_start FUN_02031438 FUN_02031438: ; 0x02031438 ldr r0, _0203144C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02031450 ; =0x00000681 ldrb r0, [r1, r0] cmp r0, #0x0 beq _02031448 mov r0, #0x1 bx lr _02031448: mov r0, #0x0 bx lr .balign 4 _0203144C: .word 0x021C59F4 _02031450: .word 0x00000681 thumb_func_start FUN_02031454 FUN_02031454: ; 0x02031454 ldr r0, _02031460 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _02031464 ; =0x00000689 strb r2, [r1, r0] bx lr .balign 4 _02031460: .word 0x021C59F4 _02031464: .word 0x00000689 thumb_func_start FUN_02031468 FUN_02031468: ; 0x02031468 ldr r0, _02031478 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _02031476 ldr r0, _0203147C ; =0x0000068A mov r1, #0x1 strb r1, [r2, r0] _02031476: bx lr .balign 4 _02031478: .word 0x021C59F4 _0203147C: .word 0x0000068A thumb_func_start FUN_02031480 FUN_02031480: ; 0x02031480 push {r4, lr} ldr r1, _020314C8 ; =0x021C59FC ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0203149C ldr r1, _020314CC ; =0x00000253 bl FUN_02016998 ldr r1, _020314C8 ; =0x021C59FC ldr r2, _020314CC ; =0x00000253 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 _0203149C: ldr r1, _020314C8 ; =0x021C59FC mov r3, #0x0 mov r0, #0xff _020314A2: ldr r2, [r1, #0x0] add r2, r2, r3 add r3, r3, #0x1 strb r0, [r2, #0x10] cmp r3, #0x8 blt _020314A2 ldr r3, _020314C8 ; =0x021C59FC mov r1, #0x25 ldr r2, [r3, #0x0] lsl r1, r1, #0x4 strb r0, [r2, r1] ldr r4, [r3, #0x0] add r2, r1, #0x1 strb r0, [r4, r2] ldr r2, [r3, #0x0] mov r4, #0x0 add r0, r1, #0x2 strb r4, [r2, r0] pop {r4, pc} .balign 4 _020314C8: .word 0x021C59FC _020314CC: .word 0x00000253 thumb_func_start FUN_020314D0 FUN_020314D0: ; 0x020314D0 push {r3, lr} ldr r0, _020314E4 ; =0x021C59FC ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _020314E4 ; =0x021C59FC mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} nop _020314E4: .word 0x021C59FC thumb_func_start FUN_020314E8 FUN_020314E8: ; 0x020314E8 ldr r0, _020314F8 ; =0x021C59FC ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020314F4 mov r0, #0x1 bx lr _020314F4: mov r0, #0x0 bx lr .balign 4 _020314F8: .word 0x021C59FC thumb_func_start FUN_020314FC FUN_020314FC: ; 0x020314FC push {r3-r6, lr} sub sp, #0x4 ldrb r1, [r2, #0x0] add r5, r0, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x0] bl FUN_02031190 cmp r0, #0x0 bne _02031556 add r0, sp, #0x0 strb r5, [r0, #0x1] ldrb r1, [r0, #0x0] strb r1, [r0, #0x2] add r1, sp, #0x0 mov r0, #0x12 add r1, #0x1 bl FUN_02030C4C ldr r6, _0203155C ; =0x021C59FC add r4, sp, #0x0 ldr r0, [r6, #0x0] ldrb r1, [r4, #0x0] add r0, r0, r5 mov r5, #0x0 strb r1, [r0, #0x10] _02031530: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _02031548 ldr r0, [r6, #0x0] ldrb r1, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, #0x10] cmp r1, r0 bne _02031556 _02031548: add r5, r5, #0x1 cmp r5, #0x8 blt _02031530 mov r0, #0x11 add r1, sp, #0x0 bl FUN_02030C4C _02031556: add sp, #0x4 pop {r3-r6, pc} nop _0203155C: .word 0x021C59FC thumb_func_start FUN_02031560 FUN_02031560: ; 0x02031560 ldr r0, _02031570 ; =0x021C59FC ldrb r3, [r2, #0x1] ldr r1, [r0, #0x0] ldrb r0, [r2, #0x0] add r0, r1, r0 strb r3, [r0, #0x10] bx lr nop _02031570: .word 0x021C59FC thumb_func_start FUN_02031574 FUN_02031574: ; 0x02031574 ldr r0, _02031584 ; =0x021C59FC ldrb r2, [r2, #0x0] ldr r1, [r0, #0x0] mov r0, #0x25 lsl r0, r0, #0x4 strb r2, [r1, r0] bx lr nop _02031584: .word 0x021C59FC thumb_func_start FUN_02031588 FUN_02031588: ; 0x02031588 ldr r2, _0203159C ; =0x021C59FC ldr r1, _020315A0 ; =0x00000251 ldr r3, [r2, #0x0] strb r0, [r3, r1] ldr r2, [r2, #0x0] mov r3, #0x1 add r0, r1, #0x1 strb r3, [r2, r0] bx lr nop _0203159C: .word 0x021C59FC _020315A0: .word 0x00000251 thumb_func_start FUN_020315A4 FUN_020315A4: ; 0x020315A4 push {r3, lr} ldr r0, _020315D0 ; =0x021C59FC ldr r2, [r0, #0x0] cmp r2, #0x0 beq _020315CE ldr r1, _020315D4 ; =0x00000252 ldrb r0, [r2, r1] cmp r0, #0x0 beq _020315CE sub r1, r1, #0x1 mov r0, #0x10 add r1, r2, r1 bl FUN_020311D0 cmp r0, #0x0 beq _020315CE ldr r0, _020315D0 ; =0x021C59FC mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _020315D4 ; =0x00000252 strb r2, [r1, r0] _020315CE: pop {r3, pc} .balign 4 _020315D0: .word 0x021C59FC _020315D4: .word 0x00000252 thumb_func_start FUN_020315D8 FUN_020315D8: ; 0x020315D8 ldr r1, _020315F8 ; =0x021C59FC ldr r2, [r1, #0x0] cmp r2, #0x0 bne _020315E4 mov r0, #0x1 bx lr _020315E4: mov r1, #0x25 lsl r1, r1, #0x4 ldrb r1, [r2, r1] cmp r1, r0 bne _020315F2 mov r0, #0x1 bx lr _020315F2: mov r0, #0x0 bx lr nop _020315F8: .word 0x021C59FC thumb_func_start FUN_020315FC FUN_020315FC: ; 0x020315FC ldr r1, _02031608 ; =0x021C59FC ldr r1, [r1, #0x0] add r0, r1, r0 ldrb r0, [r0, #0x10] bx lr nop _02031608: .word 0x021C59FC thumb_func_start FUN_0203160C FUN_0203160C: ; 0x0203160C push {r3-r4} lsl r4, r0, #0x1 ldr r0, _02031624 ; =0x021C59FC ldrb r3, [r2, #0x0] ldr r1, [r0, #0x0] strb r3, [r1, r4] ldr r0, [r0, #0x0] ldrb r1, [r2, #0x1] add r0, r0, r4 strb r1, [r0, #0x1] pop {r3-r4} bx lr .balign 4 _02031624: .word 0x021C59FC thumb_func_start FUN_02031628 FUN_02031628: ; 0x02031628 mov r0, #0x2 bx lr thumb_func_start FUN_0203162C FUN_0203162C: ; 0x0203162C push {r3, lr} add r2, sp, #0x0 strb r0, [r2, #0x0] strb r1, [r2, #0x1] mov r0, #0x13 add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} .balign 4 thumb_func_start FUN_02031640 FUN_02031640: ; 0x02031640 ldr r2, _02031664 ; =0x021C59FC ldr r3, [r2, #0x0] cmp r3, #0x0 bne _0203164E mov r0, #0x0 mvn r0, r0 bx lr _0203164E: lsl r2, r0, #0x1 ldrb r0, [r3, r2] cmp r1, r0 bne _0203165C add r0, r3, r2 ldrb r0, [r0, #0x1] bx lr _0203165C: mov r0, #0x0 mvn r0, r0 bx lr nop _02031664: .word 0x021C59FC thumb_func_start FUN_02031668 FUN_02031668: ; 0x02031668 push {r3-r7, lr} mov r4, #0x0 ldr r6, _02031688 ; =0x021C59FC add r5, r4, #0x0 add r7, r4, #0x0 _02031672: ldr r0, [r6, #0x0] add r1, r7, #0x0 add r0, r0, r5 mov r2, #0x2 blx MI_CpuFill8 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x8 blt _02031672 pop {r3-r7, pc} .balign 4 _02031688: .word 0x021C59FC thumb_func_start FUN_0203168C FUN_0203168C: ; 0x0203168C push {r3-r4} mov r4, #0x0 mov r0, #0x92 ldr r1, _020316A8 ; =0x021C59FC add r3, r4, #0x0 lsl r0, r0, #0x2 _02031698: ldr r2, [r1, #0x0] add r2, r2, r4 add r4, r4, #0x1 strb r3, [r2, r0] cmp r4, #0x8 blt _02031698 pop {r3-r4} bx lr .balign 4 _020316A8: .word 0x021C59FC thumb_func_start FUN_020316AC FUN_020316AC: ; 0x020316AC push {r4, lr} ldr r2, _020316DC ; =0x021C59FC ldr r3, [r2, #0x0] cmp r3, #0x0 beq _020316D8 add r4, r0, #0x0 mov r2, #0x46 mul r4, r2 add r3, #0x18 add r0, r1, #0x0 add r1, r3, r4 blx MI_CpuCopy8 ldr r1, _020316DC ; =0x021C59FC mov r0, #0x14 ldr r1, [r1, #0x0] add r1, #0x18 add r1, r1, r4 bl FUN_020311D0 mov r0, #0x1 pop {r4, pc} _020316D8: mov r0, #0x0 pop {r4, pc} .balign 4 _020316DC: .word 0x021C59FC thumb_func_start FUN_020316E0 FUN_020316E0: ; 0x020316E0 ldr r1, _02031700 ; =0x021C59FC ldr r3, [r1, #0x0] mov r1, #0x92 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _020316FA mov r1, #0x46 add r3, #0x18 mul r1, r0 add r0, r3, r1 bx lr _020316FA: mov r0, #0x0 bx lr nop _02031700: .word 0x021C59FC thumb_func_start FUN_02031704 FUN_02031704: ; 0x02031704 push {r3-r5, lr} ldr r3, _0203172C ; =0x021C59FC add r1, r0, #0x0 ldr r0, [r3, #0x0] mov r5, #0x1 add r4, r0, r1 mov r0, #0x92 lsl r0, r0, #0x2 strb r5, [r4, r0] ldr r4, [r3, #0x0] add r0, r2, #0x0 mov r2, #0x46 add r3, r1, #0x0 add r4, #0x18 mul r3, r2 add r1, r4, r3 blx MI_CpuCopy8 pop {r3-r5, pc} nop _0203172C: .word 0x021C59FC thumb_func_start FUN_02031730 FUN_02031730: ; 0x02031730 mov r0, #0x46 bx lr thumb_func_start FUN_02031734 FUN_02031734: ; 0x02031734 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020317BC ; =0x021C5A00 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020317B8 bl FUN_0202E49C mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _020317BC ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _020317BC ; =0x021C5A00 mov r2, #0x32 ldr r1, [r0, #0x0] strh r2, [r1, #0x3a] ldr r1, [r0, #0x0] mov r2, #0x1 add r1, #0x43 strb r2, [r1, #0x0] ldr r0, [r0, #0x0] str r5, [r0, #0x28] add r0, r5, #0x0 bl FUN_020238F4 ldr r1, _020317BC ; =0x021C5A00 ldr r2, [r1, #0x0] str r0, [r2, #0x2c] ldr r0, [r1, #0x0] mov r2, #0x2 add r0, #0x3c strb r2, [r0, #0x0] ldr r0, [r1, #0x0] mov r2, #0x0 add r0, #0x3d strb r2, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0x48 strb r2, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0x3f strb r4, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0xc bl FUN_020312BC mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0202D8D0 cmp r4, #0x9 beq _020317B8 cmp r4, #0x11 beq _020317B8 cmp r4, #0xf beq _020317B8 bl FUN_02033E74 _020317B8: pop {r3-r5, pc} nop _020317BC: .word 0x021C5A00 thumb_func_start FUN_020317C0 FUN_020317C0: ; 0x020317C0 push {r3, lr} ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203180A bl FUN_0202D918 ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020317DC bl FUN_02016A18 _020317DC: ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x13 blo _020317EE mov r0, #0x31 bl FUN_020168D0 _020317EE: bl FUN_02033ED0 bl FUN_0202E4F0 ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0xf bl FUN_020168D0 ldr r0, _0203180C ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] _0203180A: pop {r3, pc} .balign 4 _0203180C: .word 0x021C5A00 thumb_func_start FUN_02031810 FUN_02031810: ; 0x02031810 ldr r0, _02031820 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203181C mov r0, #0x1 bx lr _0203181C: mov r0, #0x0 bx lr .balign 4 _02031820: .word 0x021C5A00 thumb_func_start FUN_02031824 FUN_02031824: ; 0x02031824 push {r4, lr} add r4, r0, #0x0 ldr r0, _02031858 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031856 mov r2, #0xe mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0xa bl FUN_02031734 ldr r0, _02031858 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _0203185C ; =FUN_02031D30 mov r1, #0x32 bl FUN_02031D20 _02031856: pop {r4, pc} .balign 4 _02031858: .word 0x021C5A00 _0203185C: .word FUN_02031D30 thumb_func_start FUN_02031860 FUN_02031860: ; 0x02031860 push {r3, lr} ldr r0, _02031878 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031876 bl FUN_02031468 ldr r0, _0203187C ; =FUN_020323CC mov r1, #0x0 bl FUN_02031D20 _02031876: pop {r3, pc} .balign 4 _02031878: .word 0x021C5A00 _0203187C: .word FUN_020323CC thumb_func_start FUN_02031880 FUN_02031880: ; 0x02031880 push {r3, lr} bl FUN_0202FC60 bl FUN_02031190 ldr r1, _0203189C ; =0x021C5A00 ldr r1, [r1, #0x0] strh r0, [r1, #0x38] ldr r0, _020318A0 ; =FUN_020321B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203189C: .word 0x021C5A00 _020318A0: .word FUN_020321B8 thumb_func_start FUN_020318A4 FUN_020318A4: ; 0x020318A4 ldr r1, _020318B0 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x4f strb r0, [r1, #0x0] bx lr nop _020318B0: .word 0x021C5A00 thumb_func_start FUN_020318B4 FUN_020318B4: ; 0x020318B4 ldr r3, _020318BC ; =FUN_02031D20 ldr r0, _020318C0 ; =FUN_02032028 mov r1, #0x0 bx r3 .balign 4 _020318BC: .word FUN_02031D20 _020318C0: .word FUN_02032028 thumb_func_start FUN_020318C4 FUN_020318C4: ; 0x020318C4 push {r4} sub sp, #0xc ldr r4, _0203190C ; =0x020EEC50 add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r3, #0x0] ldr r0, _02031910 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] cmp r0, #0x0 bne _020318E8 add sp, #0xc mov r0, #0x0 pop {r4} bx lr _020318E8: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02031904 _020318EE: ldr r0, [r2, #0x0] cmp r1, r0 bne _020318FC add sp, #0xc mov r0, #0x1 pop {r4} bx lr _020318FC: add r2, r2, #0x4 ldr r0, [r2, #0x0] cmp r0, #0x0 bne _020318EE _02031904: mov r0, #0x0 add sp, #0xc pop {r4} bx lr .balign 4 _0203190C: .word 0x020EEC50 _02031910: .word 0x021C5A00 thumb_func_start FUN_02031914 FUN_02031914: ; 0x02031914 ldr r3, _0203191C ; =FUN_02031D20 ldr r0, _02031920 ; =FUN_02032178 mov r1, #0x0 bx r3 .balign 4 _0203191C: .word FUN_02031D20 _02031920: .word FUN_02032178 thumb_func_start FUN_02031924 FUN_02031924: ; 0x02031924 ldr r0, _02031930 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x4c strb r1, [r0, #0x0] bx lr .balign 4 _02031930: .word 0x021C5A00 thumb_func_start FUN_02031934 FUN_02031934: ; 0x02031934 push {r3, lr} bl FUN_0202E49C ldr r0, _02031944 ; =FUN_02032194 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031944: .word FUN_02032194 thumb_func_start FUN_02031948 FUN_02031948: ; 0x02031948 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031980 ldr r2, _02031984 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02031734 ldr r0, _02031988 ; =0x021C5A00 ldr r1, [r0, #0x0] add r1, #0x40 strb r5, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 str r4, [r0, #0x30] ldr r0, _0203198C ; =FUN_020321D0 bl FUN_02031D20 _02031980: pop {r3-r7, pc} nop _02031984: .word 0x00007080 _02031988: .word 0x021C5A00 _0203198C: .word FUN_020321D0 thumb_func_start FUN_02031990 FUN_02031990: ; 0x02031990 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _020319C8 ldr r2, _020319CC ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02031734 ldr r0, _020319D0 ; =0x021C5A00 ldr r1, [r0, #0x0] add r1, #0x40 strb r5, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 str r4, [r0, #0x30] ldr r0, _020319D4 ; =FUN_0203224C bl FUN_02031D20 _020319C8: pop {r3-r7, pc} nop _020319CC: .word 0x00007080 _020319D0: .word 0x021C5A00 _020319D4: .word FUN_0203224C thumb_func_start FUN_020319D8 FUN_020319D8: ; 0x020319D8 ldr r1, _020319E8 ; =0x021C5A00 ldr r3, _020319EC ; =FUN_02031D20 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _020319F0 ; =FUN_02032298 mov r1, #0x0 bx r3 .balign 4 _020319E8: .word 0x021C5A00 _020319EC: .word FUN_02031D20 _020319F0: .word FUN_02032298 thumb_func_start FUN_020319F4 FUN_020319F4: ; 0x020319F4 push {r3, lr} bl FUN_0202FCA8 ldr r0, _02031A04 ; =FUN_02032364 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031A04: .word FUN_02032364 thumb_func_start FUN_02031A08 FUN_02031A08: ; 0x02031A08 push {r3, lr} ldr r0, _02031A1C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031A1A ldr r0, _02031A20 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02031A1A: pop {r3, pc} .balign 4 _02031A1C: .word 0x021C5A00 _02031A20: .word FUN_02032440 thumb_func_start FUN_02031A24 FUN_02031A24: ; 0x02031A24 ldr r3, _02031A28 ; =FUN_0202D298 bx r3 .balign 4 _02031A28: .word FUN_0202D298 thumb_func_start FUN_02031A2C FUN_02031A2C: ; 0x02031A2C push {r4} sub sp, #0xc ldr r4, _02031A74 ; =0x020EEC5C add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r3, #0x0] ldr r0, _02031A78 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] cmp r0, #0x0 bne _02031A50 add sp, #0xc mov r0, #0x0 pop {r4} bx lr _02031A50: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02031A6C _02031A56: ldr r0, [r2, #0x0] cmp r1, r0 bne _02031A64 add sp, #0xc mov r0, #0x1 pop {r4} bx lr _02031A64: add r2, r2, #0x4 ldr r0, [r2, #0x0] cmp r0, #0x0 bne _02031A56 _02031A6C: mov r0, #0x0 add sp, #0xc pop {r4} bx lr .balign 4 _02031A74: .word 0x020EEC5C _02031A78: .word 0x021C5A00 thumb_func_start FUN_02031A7C FUN_02031A7C: ; 0x02031A7C push {r4, lr} add r4, r0, #0x0 ldr r0, _02031ABC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031ABA ldr r2, _02031AC0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 cmp r0, #0x0 bne _02031A9A bl FUN_020335E0 _02031A9A: add r0, r4, #0x0 mov r1, #0x9 bl FUN_02031734 ldr r0, _02031ABC ; =0x021C5A00 mov r2, #0x9 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02031AC4 ; =FUN_02032478 bl FUN_02031D20 _02031ABA: pop {r4, pc} .balign 4 _02031ABC: .word 0x021C5A00 _02031AC0: .word 0x00007080 _02031AC4: .word FUN_02032478 thumb_func_start FUN_02031AC8 FUN_02031AC8: ; 0x02031AC8 push {r3, lr} ldr r1, _02031AEC ; =0x021C5A00 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] mov r0, #0x1 bl FUN_0202D344 bl FUN_02033E74 ldr r0, _02031AF0 ; =FUN_02032628 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031AEC: .word 0x021C5A00 _02031AF0: .word FUN_02032628 thumb_func_start FUN_02031AF4 FUN_02031AF4: ; 0x02031AF4 ldr r0, _02031B20 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031B02 mov r0, #0x0 mvn r0, r0 bx lr _02031B02: ldr r1, [r0, #0x24] ldr r0, _02031B24 ; =FUN_0203279C cmp r1, r0 bne _02031B0E mov r0, #0x1 bx lr _02031B0E: ldr r0, _02031B28 ; =FUN_020327B4 cmp r1, r0 bne _02031B18 mov r0, #0x1 b _02031B1A _02031B18: mov r0, #0x0 _02031B1A: neg r0, r0 bx lr nop _02031B20: .word 0x021C5A00 _02031B24: .word FUN_0203279C _02031B28: .word FUN_020327B4 thumb_func_start FUN_02031B2C FUN_02031B2C: ; 0x02031B2C ldr r0, _02031B48 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031B38 mov r0, #0x0 bx lr _02031B38: ldr r1, [r0, #0x24] ldr r0, _02031B4C ; =FUN_020327FC cmp r1, r0 bne _02031B44 mov r0, #0x1 bx lr _02031B44: mov r0, #0x0 bx lr .balign 4 _02031B48: .word 0x021C5A00 _02031B4C: .word FUN_020327FC thumb_func_start FUN_02031B50 FUN_02031B50: ; 0x02031B50 push {r3, lr} mov r0, #0x0 bl FUN_0202D344 ldr r0, _02031BC4 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02031B78 add r0, r1, #0x0 add r0, #0x45 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02031B78 add r1, #0x3f ldrb r0, [r1, #0x0] cmp r0, #0x9 bne _02031B80 _02031B78: mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 _02031B80: bl FUN_02033ED0 ldr r0, _02031BC4 ; =0x021C5A00 mov r2, #0x9 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r1, [r0, #0x0] mov r2, #0x0 add r1, #0x48 strb r2, [r1, #0x0] ldr r0, [r0, #0x0] add r0, #0x3c ldrb r0, [r0, #0x0] bl FUN_0202D1B0 bl FUN_02031190 cmp r0, #0x0 bne _02031BB8 mov r0, #0x1 bl FUN_0202D36C ldr r0, _02031BC8 ; =FUN_020323DC mov r1, #0xf bl FUN_02031D20 pop {r3, pc} _02031BB8: ldr r0, _02031BCC ; =FUN_02032424 mov r1, #0x5 bl FUN_02031D20 pop {r3, pc} nop _02031BC4: .word 0x021C5A00 _02031BC8: .word FUN_020323DC _02031BCC: .word FUN_02032424 thumb_func_start FUN_02031BD0 FUN_02031BD0: ; 0x02031BD0 ldr r0, _02031BEC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031BDC mov r0, #0x1 bx lr _02031BDC: ldr r1, [r0, #0x24] ldr r0, _02031BF0 ; =FUN_020324F8 cmp r1, r0 beq _02031BE8 mov r0, #0x1 bx lr _02031BE8: mov r0, #0x0 bx lr .balign 4 _02031BEC: .word 0x021C5A00 _02031BF0: .word FUN_020324F8 thumb_func_start FUN_02031BF4 FUN_02031BF4: ; 0x02031BF4 push {r3, lr} ldr r0, _02031C08 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031C06 ldr r0, _02031C0C ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02031C06: pop {r3, pc} .balign 4 _02031C08: .word 0x021C5A00 _02031C0C: .word FUN_02032440 thumb_func_start FUN_02031C10 FUN_02031C10: ; 0x02031C10 push {r3, lr} ldr r0, _02031C28 ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02031C24 mov r0, #0x1 add r1, #0x48 strb r0, [r1, #0x0] bl FUN_0202D344 _02031C24: pop {r3, pc} nop _02031C28: .word 0x021C5A00 thumb_func_start FUN_02031C2C FUN_02031C2C: ; 0x02031C2C push {r3, lr} ldr r0, _02031C4C ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02031C48 mov r0, #0x1 add r1, #0x48 strb r0, [r1, #0x0] bl FUN_0202D344 ldr r0, _02031C50 ; =FUN_02032850 mov r1, #0x0 bl FUN_02031D20 _02031C48: pop {r3, pc} nop _02031C4C: .word 0x021C5A00 _02031C50: .word FUN_02032850 thumb_func_start FUN_02031C54 FUN_02031C54: ; 0x02031C54 ldr r0, _02031C60 ; =0x021C5A00 mov r1, #0x12 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _02031C60: .word 0x021C5A00 thumb_func_start FUN_02031C64 FUN_02031C64: ; 0x02031C64 ldr r0, _02031C70 ; =0x021C5A00 mov r1, #0x9 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _02031C70: .word 0x021C5A00 thumb_func_start FUN_02031C74 FUN_02031C74: ; 0x02031C74 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031C9C ldr r2, _02031CA0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02031734 ldr r0, _02031CA4 ; =FUN_02032E00 mov r1, #0x0 bl FUN_02031D20 _02031C9C: pop {r3-r5, pc} nop _02031CA0: .word 0x00007080 _02031CA4: .word FUN_02032E00 thumb_func_start FUN_02031CA8 FUN_02031CA8: ; 0x02031CA8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031CD0 ldr r2, _02031CD4 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02031734 ldr r0, _02031CD8 ; =FUN_02032E48 mov r1, #0x0 bl FUN_02031D20 _02031CD0: pop {r3-r5, pc} nop _02031CD4: .word 0x00007080 _02031CD8: .word FUN_02032E48 thumb_func_start FUN_02031CDC FUN_02031CDC: ; 0x02031CDC push {r3, lr} ldr r0, _02031D1C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031CEE ldr r0, [r0, #0x24] cmp r0, #0x0 beq _02031CEE blx r0 _02031CEE: bl FUN_02033590 cmp r0, #0x0 beq _02031D04 bl FUN_021DDB08 mov r1, #0x3 sub r0, r1, r0 bl FUN_02033EEC pop {r3, pc} _02031D04: bl FUN_0202EDF8 cmp r0, #0x0 beq _02031D18 blx WM_GetLinkLevel mov r1, #0x3 sub r0, r1, r0 bl FUN_02033EEC _02031D18: pop {r3, pc} nop _02031D1C: .word 0x021C5A00 thumb_func_start FUN_02031D20 FUN_02031D20: ; 0x02031D20 ldr r2, _02031D2C ; =0x021C5A00 ldr r3, [r2, #0x0] str r0, [r3, #0x24] ldr r0, [r2, #0x0] strh r1, [r0, #0x3a] bx lr .balign 4 _02031D2C: .word 0x021C5A00 thumb_func_start FUN_02031D30 FUN_02031D30: ; 0x02031D30 push {r3-r5, lr} ldr r0, _02031DF8 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031D42 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3-r5, pc} _02031D42: bl FUN_0202E4C8 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02031DF8 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _02031DF8 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031DC8 add r1, #0x43 ldrb r1, [r1, #0x0] mov r0, #0x1 mov r2, #0x7d lsl r2, r2, #0x2 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx _ll_mul ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] str r3, [r4, #0x4] add r0, r3, #0x0 mov r1, #0x0 mov r2, #0x14 mov r3, #0x0 blx _ll_mul mov r0, #0x0 add r5, #0x43 strb r0, [r5, #0x0] ldr r0, _02031DFC ; =FUN_020320C4 add r1, #0x14 bl FUN_02031D20 pop {r3-r5, pc} _02031DC8: mov r0, #0x1 mov r2, #0x7d add r1, r0, #0x0 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031DEE ldr r0, _02031E00 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 pop {r3-r5, pc} _02031DEE: ldr r0, _02031E04 ; =FUN_02031EE0 mov r1, #0x40 bl FUN_02031D20 _02031DF6: pop {r3-r5, pc} .balign 4 _02031DF8: .word 0x021C5A00 _02031DFC: .word FUN_020320C4 _02031E00: .word FUN_020323B8 _02031E04: .word FUN_02031EE0 thumb_func_start FUN_02031E08 FUN_02031E08: ; 0x02031E08 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02031E7C mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _02031E80 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031E32 ldr r0, _02031E84 ; =FUN_02032058 mov r1, #0x0 bl FUN_02031D20 pop {r3-r5, pc} _02031E32: mov r2, #0x7d mov r0, #0x0 mov r1, #0x1 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031E7C ldr r0, _02031E80 ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx _ll_mul ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] mov r1, #0x0 str r3, [r4, #0x4] lsr r0, r3, #0x1a lsl r1, r1, #0x6 orr r1, r0 ldrh r0, [r5, #0x38] cmp r0, #0x0 beq _02031E76 lsl r1, r0, #0x6 mov r0, #0x0 strh r0, [r5, #0x38] _02031E76: ldr r0, _02031E88 ; =FUN_02031EE0 bl FUN_02031D20 _02031E7C: pop {r3-r5, pc} nop _02031E80: .word 0x021C5A00 _02031E84: .word FUN_02032058 _02031E88: .word FUN_02031EE0 thumb_func_start FUN_02031E8C FUN_02031E8C: ; 0x02031E8C push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02031ED6 mov r0, #0x0 mov r2, #0x7d add r1, r0, #0x0 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031ED6 ldr r0, _02031ED8 ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx _ll_mul ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] mov r1, #0x0 lsr r2, r3, #0x1b lsl r1, r1, #0x5 orr r1, r2 ldr r0, _02031EDC ; =FUN_02031EE0 add r1, #0x10 str r3, [r5, #0x4] bl FUN_02031D20 _02031ED6: pop {r3-r5, pc} .balign 4 _02031ED8: .word 0x021C5A00 _02031EDC: .word FUN_02031EE0 thumb_func_start FUN_02031EE0 FUN_02031EE0: ; 0x02031EE0 push {r3, lr} bl FUN_0202EA54 ldr r0, _02031F54 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02031F50 add r1, #0x4b ldrb r0, [r1, #0x0] cmp r0, #0x0 bne _02031F50 bl FUN_0202E8F4 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02031F1A ldr r1, _02031F54 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _02031F58 ; =FUN_02031F60 mov r1, #0x20 bl FUN_02031D20 pop {r3, pc} _02031F1A: ldr r0, _02031F54 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031F2A sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02031F2A: bl FUN_0202E950 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02031F48 ldr r1, _02031F54 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _02031F58 ; =FUN_02031F60 mov r1, #0x20 bl FUN_02031D20 pop {r3, pc} _02031F48: ldr r0, _02031F5C ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 _02031F50: pop {r3, pc} nop _02031F54: .word 0x021C5A00 _02031F58: .word FUN_02031F60 _02031F5C: .word FUN_02032028 thumb_func_start FUN_02031F60 FUN_02031F60: ; 0x02031F60 push {r3, lr} bl FUN_0202EA54 ldr r0, _02031FBC ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _02031F90 ldr r0, _02031FBC ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _02031F90 ldr r0, _02031FC0 ; =FUN_02031FC8 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _02031F90: bl FUN_020311F0 cmp r0, #0x0 beq _02031FA2 ldr r0, _02031FC4 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02031FA2: ldr r0, _02031FBC ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031FB2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02031FB2: ldr r0, _02031FC4 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031FBC: .word 0x021C5A00 _02031FC0: .word FUN_02031FC8 _02031FC4: .word FUN_02032028 thumb_func_start FUN_02031FC8 FUN_02031FC8: ; 0x02031FC8 push {r3, lr} bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _02031FEE bl FUN_0202FC60 mov r0, #0x0 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _0203201C ; =FUN_0203213C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02031FEE: bl FUN_020311F0 cmp r0, #0x0 beq _02032000 ldr r0, _02032020 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032000: ldr r0, _02032024 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032010 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032010: ldr r0, _02032020 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203201C: .word FUN_0203213C _02032020: .word FUN_02032028 _02032024: .word 0x021C5A00 thumb_func_start FUN_02032028 FUN_02032028: ; 0x02032028 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203203A ldr r0, _0203203C ; =FUN_02032058 mov r1, #0x0 bl FUN_02031D20 _0203203A: pop {r3, pc} .balign 4 _0203203C: .word FUN_02032058 thumb_func_start FUN_02032040 FUN_02032040: ; 0x02032040 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _02032052 ldr r0, _02032054 ; =FUN_02031E8C mov r1, #0x0 bl FUN_02031D20 _02032052: pop {r3, pc} .balign 4 _02032054: .word FUN_02031E8C thumb_func_start FUN_02032058 FUN_02032058: ; 0x02032058 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _020320BA mov r0, #0x1 bl FUN_02031268 ldr r1, _020320BC ; =0x021C5A00 mov r2, #0x7d ldr r1, [r1, #0x0] mov r0, #0x0 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x2 mov r3, #0x1 bl FUN_0202F918 cmp r0, #0x0 beq _020320BA ldr r0, _020320BC ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx _ll_mul ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] str r3, [r4, #0x4] add r0, r3, #0x0 mov r1, #0x0 mov r2, #0x14 mov r3, #0x0 blx _ll_mul mov r0, #0x0 add r5, #0x43 strb r0, [r5, #0x0] ldr r0, _020320C0 ; =FUN_020320C4 add r1, #0x14 bl FUN_02031D20 _020320BA: pop {r3-r5, pc} .balign 4 _020320BC: .word 0x021C5A00 _020320C0: .word FUN_020320C4 thumb_func_start FUN_020320C4 FUN_020320C4: ; 0x020320C4 push {r3, lr} bl FUN_020311E8 cmp r0, #0x0 beq _020320E2 ldr r0, _0203210C ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] ldr r0, _02032110 ; =FUN_02032118 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020320E2: ldr r0, _0203210C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020320F2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020320F2: add r1, #0x4a ldrb r0, [r1, #0x0] cmp r0, #0x0 bne _0203210A bl FUN_0202E6F0 cmp r0, #0x0 beq _0203210A ldr r0, _02032114 ; =FUN_02032040 mov r1, #0x2 bl FUN_02031D20 _0203210A: pop {r3, pc} .balign 4 _0203210C: .word 0x021C5A00 _02032110: .word FUN_02032118 _02032114: .word FUN_02032040 thumb_func_start FUN_02032118 FUN_02032118: ; 0x02032118 push {r3, lr} mov r0, #0x0 bl FUN_02031268 mov r0, #0x1 bl FUN_0202EE84 bl FUN_02030FA8 ldr r0, _02032134 ; =FUN_02032138 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032134: .word FUN_02032138 thumb_func_start FUN_02032138 FUN_02032138: ; 0x02032138 bx lr .balign 4 thumb_func_start FUN_0203213C FUN_0203213C: ; 0x0203213C bx lr .balign 4 thumb_func_start FUN_02032140 FUN_02032140: ; 0x02032140 push {r3, lr} ldr r0, _02032170 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x13 bhs _02032166 bl FUN_0202EE0C cmp r0, #0x0 beq _0203216E mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 mov r0, #0x1 bl FUN_0202E7B0 _02032166: ldr r0, _02032174 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 _0203216E: pop {r3, pc} .balign 4 _02032170: .word 0x021C5A00 _02032174: .word FUN_020323B8 thumb_func_start FUN_02032178 FUN_02032178: ; 0x02032178 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203218E bl FUN_0202FC60 ldr r0, _02032190 ; =FUN_02032140 mov r1, #0x0 bl FUN_02031D20 _0203218E: pop {r3, pc} .balign 4 _02032190: .word FUN_02032140 thumb_func_start FUN_02032194 FUN_02032194: ; 0x02032194 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _020321B0 mov r0, #0x0 bl FUN_0202E7B0 bl FUN_0202FC60 ldr r0, _020321B4 ; =FUN_02031E08 mov r1, #0x0 bl FUN_02031D20 _020321B0: pop {r3, pc} nop _020321B4: .word FUN_02031E08 thumb_func_start FUN_020321B8 FUN_020321B8: ; 0x020321B8 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _020321CA ldr r0, _020321CC ; =FUN_02031E08 mov r1, #0x0 bl FUN_02031D20 _020321CA: pop {r3, pc} .balign 4 _020321CC: .word FUN_02031E08 thumb_func_start FUN_020321D0 FUN_020321D0: ; 0x020321D0 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _0203220C ldr r0, _02032210 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032210 ; =0x021C5A00 ldr r1, [r0, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203220C bl FUN_0202FA10 ldr r0, _02032214 ; =FUN_02032218 mov r1, #0x0 bl FUN_02031D20 _0203220C: pop {r3, pc} nop _02032210: .word 0x021C5A00 _02032214: .word FUN_02032218 thumb_func_start FUN_02032218 FUN_02032218: ; 0x02032218 push {r3, lr} bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0203222E ldr r0, _02032230 ; =FUN_02032234 mov r1, #0x0 bl FUN_02031D20 _0203222E: pop {r3, pc} .balign 4 _02032230: .word FUN_02032234 thumb_func_start FUN_02032234 FUN_02032234: ; 0x02032234 push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _02032246 ldr r0, _02032248 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _02032246: pop {r3, pc} .balign 4 _02032248: .word FUN_020323BC thumb_func_start FUN_0203224C FUN_0203224C: ; 0x0203224C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032286 ldr r0, _02032288 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032288 ; =0x021C5A00 ldr r1, [r0, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032286 bl FUN_0202FA10 ldr r0, _0203228C ; =FUN_02032290 mov r1, #0x0 bl FUN_02031D20 _02032286: pop {r3, pc} .balign 4 _02032288: .word 0x021C5A00 _0203228C: .word FUN_02032290 thumb_func_start FUN_02032290 FUN_02032290: ; 0x02032290 ldr r3, _02032294 ; =FUN_0202EA54 bx r3 .balign 4 _02032294: .word FUN_0202EA54 thumb_func_start FUN_02032298 FUN_02032298: ; 0x02032298 push {r3, lr} bl FUN_0202EA54 ldr r0, _020322B8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _020322B6 ldr r0, _020322BC ; =FUN_020322C0 mov r1, #0xa bl FUN_02031D20 _020322B6: pop {r3, pc} .balign 4 _020322B8: .word 0x021C5A00 _020322BC: .word FUN_020322C0 thumb_func_start FUN_020322C0 FUN_020322C0: ; 0x020322C0 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020322D2 ldr r0, _020322F0 ; =FUN_020322F8 mov r1, #0x0 bl FUN_02031D20 _020322D2: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _020322EE bl FUN_02031190 cmp r0, #0x0 beq _020322EE ldr r0, _020322F4 ; =FUN_0203234C mov r1, #0x0 bl FUN_02031D20 _020322EE: pop {r3, pc} .balign 4 _020322F0: .word FUN_020322F8 _020322F4: .word FUN_0203234C thumb_func_start FUN_020322F8 FUN_020322F8: ; 0x020322F8 push {r3, lr} bl FUN_0202E6F0 ldr r0, _02032308 ; =FUN_0203230C mov r1, #0x2 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032308: .word FUN_0203230C thumb_func_start FUN_0203230C FUN_0203230C: ; 0x0203230C push {r3, lr} ldr r0, _02032344 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203231E sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203231E: bl FUN_0202EE0C cmp r0, #0x0 beq _02032340 mov r1, #0x1 mov r0, #0x0 lsl r2, r1, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032340 bl FUN_0202FA10 ldr r0, _02032348 ; =FUN_02032298 mov r1, #0xa bl FUN_02031D20 _02032340: pop {r3, pc} nop _02032344: .word 0x021C5A00 _02032348: .word FUN_02032298 thumb_func_start FUN_0203234C FUN_0203234C: ; 0x0203234C push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _0203235E ldr r0, _02032360 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _0203235E: pop {r3, pc} .balign 4 _02032360: .word FUN_020323BC thumb_func_start FUN_02032364 FUN_02032364: ; 0x02032364 push {r3, lr} bl FUN_0202E6F0 ldr r0, _02032374 ; =FUN_02032378 mov r1, #0x2 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032374: .word FUN_02032378 thumb_func_start FUN_02032378 FUN_02032378: ; 0x02032378 push {r3, lr} ldr r0, _020323B0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203238A sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203238A: bl FUN_0202EE0C cmp r0, #0x0 beq _020323AC mov r1, #0x1 mov r0, #0x0 lsl r2, r1, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _020323AC bl FUN_0202FA10 ldr r0, _020323B4 ; =FUN_02032290 mov r1, #0xa bl FUN_02031D20 _020323AC: pop {r3, pc} nop _020323B0: .word 0x021C5A00 _020323B4: .word FUN_02032290 thumb_func_start FUN_020323B8 FUN_020323B8: ; 0x020323B8 bx lr .balign 4 thumb_func_start FUN_020323BC FUN_020323BC: ; 0x020323BC push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _020323CA bl FUN_020317C0 _020323CA: pop {r3, pc} thumb_func_start FUN_020323CC FUN_020323CC: ; 0x020323CC ldr r3, _020323D4 ; =FUN_02031D20 ldr r0, _020323D8 ; =FUN_02032440 mov r1, #0x5 bx r3 .balign 4 _020323D4: .word FUN_02031D20 _020323D8: .word FUN_02032440 thumb_func_start FUN_020323DC FUN_020323DC: ; 0x020323DC push {r3, lr} bl FUN_02030F20 cmp r0, #0x1 bgt _020323F8 mov r0, #0x0 bl FUN_0202D36C bl FUN_0202FC80 ldr r0, _0203241C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 _020323F8: ldr r0, _02032420 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032408 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032408: mov r0, #0x0 bl FUN_0202D36C bl FUN_0202FC80 ldr r0, _0203241C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _0203241C: .word FUN_020324F8 _02032420: .word 0x021C5A00 thumb_func_start FUN_02032424 FUN_02032424: ; 0x02032424 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203243A bl FUN_0202FC60 ldr r0, _0203243C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 _0203243A: pop {r3, pc} .balign 4 _0203243C: .word FUN_020324F8 thumb_func_start FUN_02032440 FUN_02032440: ; 0x02032440 push {r3, lr} ldr r0, _02032470 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032450 sub r0, r0, #0x1 strh r0, [r1, #0x3a] _02032450: bl FUN_0202E6F0 cmp r0, #0x0 beq _0203246E ldr r0, _02032470 ; =0x021C5A00 ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3a] cmp r0, #0x0 bne _0203246E bl FUN_0202FA5C ldr r0, _02032474 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _0203246E: pop {r3, pc} .balign 4 _02032470: .word 0x021C5A00 _02032474: .word FUN_020323BC thumb_func_start FUN_02032478 FUN_02032478: ; 0x02032478 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _020324BE ldr r0, _020324C0 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _020324C0 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3c ldrb r0, [r0, #0x0] bl FUN_0202D1B0 ldr r0, _020324C0 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _020324BE bl FUN_0202FA10 ldr r0, _020324C4 ; =FUN_020324C8 mov r1, #0x40 bl FUN_02031D20 _020324BE: pop {r3, pc} .balign 4 _020324C0: .word 0x021C5A00 _020324C4: .word FUN_020324C8 thumb_func_start FUN_020324C8 FUN_020324C8: ; 0x020324C8 push {r3, lr} bl FUN_0202EA54 ldr r0, _020324F0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020324DE sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020324DE: bl FUN_0202E6F0 cmp r0, #0x0 beq _020324EE ldr r0, _020324F4 ; =FUN_02032510 mov r1, #0x0 bl FUN_02031D20 _020324EE: pop {r3, pc} .balign 4 _020324F0: .word 0x021C5A00 _020324F4: .word FUN_02032510 thumb_func_start FUN_020324F8 FUN_020324F8: ; 0x020324F8 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203250A ldr r0, _0203250C ; =FUN_02032510 mov r1, #0x0 bl FUN_02031D20 _0203250A: pop {r3, pc} .balign 4 _0203250C: .word FUN_02032510 thumb_func_start FUN_02032510 FUN_02032510: ; 0x02032510 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02032568 ldr r1, _0203256C ; =0x021C5A00 mov r2, #0x2 ldr r1, [r1, #0x0] mov r0, #0x0 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x8 mov r3, #0x1 bl FUN_0202F918 cmp r0, #0x0 beq _02032568 ldr r0, _0203256C ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx _ll_mul ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] str r3, [r5, #0x4] bl FUN_0202FA10 ldr r0, _0203256C ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] ldr r0, _02032570 ; =FUN_02032578 ldr r1, _02032574 ; =0x00002710 bl FUN_02031D20 _02032568: pop {r3-r5, pc} nop _0203256C: .word 0x021C5A00 _02032570: .word FUN_02032578 _02032574: .word 0x00002710 thumb_func_start FUN_02032578 FUN_02032578: ; 0x02032578 push {r3, lr} bl FUN_0202F104 cmp r0, #0x0 bne _020325B2 bl FUN_020311E8 cmp r0, #0x0 beq _020325A2 ldr r0, _020325C4 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] bl FUN_02033E74 ldr r0, _020325C8 ; =FUN_020327FC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020325A2: ldr r0, _020325C4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020325B2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020325B2: bl FUN_0202E6F0 cmp r0, #0x0 beq _020325C2 ldr r0, _020325CC ; =FUN_020325D0 mov r1, #0x0 bl FUN_02031D20 _020325C2: pop {r3, pc} .balign 4 _020325C4: .word 0x021C5A00 _020325C8: .word FUN_020327FC _020325CC: .word FUN_020325D0 thumb_func_start FUN_020325D0 FUN_020325D0: ; 0x020325D0 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203261C mov r0, #0x0 mov r2, #0x2 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _0203261C bl FUN_0202FA10 ldr r0, _02032620 ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx _ll_mul ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] mov r1, #0x0 ldr r0, _02032624 ; =FUN_020324C8 lsr r2, r3, #0x1b lsl r1, r1, #0x5 orr r1, r2 str r3, [r5, #0x4] bl FUN_02031D20 _0203261C: pop {r3-r5, pc} nop _02032620: .word 0x021C5A00 _02032624: .word FUN_020324C8 thumb_func_start FUN_02032628 FUN_02032628: ; 0x02032628 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203263A ldr r0, _0203263C ; =FUN_02032640 mov r1, #0x0 bl FUN_02031D20 _0203263A: pop {r3, pc} .balign 4 _0203263C: .word FUN_02032640 thumb_func_start FUN_02032640 FUN_02032640: ; 0x02032640 push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02032666 mov r0, #0x0 mov r2, #0x2 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _02032666 bl FUN_0202FA10 ldr r0, _02032668 ; =FUN_0203266C mov r1, #0x64 bl FUN_02031D20 _02032666: pop {r3, pc} .balign 4 _02032668: .word FUN_0203266C thumb_func_start FUN_0203266C FUN_0203266C: ; 0x0203266C push {r3, lr} ldr r0, _020326C4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _02032698 ldr r0, _020326C4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _02032698 ldr r0, _020326C8 ; =FUN_020326D0 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _02032698: bl FUN_020311F0 cmp r0, #0x0 beq _020326AA ldr r0, _020326CC ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020326AA: ldr r0, _020326C4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020326BA sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020326BA: ldr r0, _020326CC ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _020326C4: .word 0x021C5A00 _020326C8: .word FUN_020326D0 _020326CC: .word FUN_020327B8 thumb_func_start FUN_020326D0 FUN_020326D0: ; 0x020326D0 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020326E4 ldr r0, _02032728 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020326E4: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0203270C ldr r0, _0203272C ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] ldr r1, _02032730 ; =0x02105D5C mov r0, #0x6 bl FUN_020311D0 ldr r0, _02032734 ; =FUN_02032738 mov r1, #0x78 bl FUN_02031D20 pop {r3, pc} _0203270C: ldr r0, _0203272C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203271C sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203271C: ldr r0, _02032728 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _02032728: .word FUN_020327B8 _0203272C: .word 0x021C5A00 _02032730: .word 0x02105D5C _02032734: .word FUN_02032738 thumb_func_start FUN_02032738 FUN_02032738: ; 0x02032738 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _0203274C ldr r0, _0203278C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _0203274C: ldr r0, _02032790 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x3d ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _02032764 ldr r0, _02032794 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032764: cmp r0, #0x1 bne _02032776 bl FUN_0202DBE0 ldr r0, _02032798 ; =FUN_0203279C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032776: ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032782 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032782: ldr r0, _0203278C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _0203278C: .word FUN_020327B8 _02032790: .word 0x021C5A00 _02032794: .word FUN_020327B4 _02032798: .word FUN_0203279C thumb_func_start FUN_0203279C FUN_0203279C: ; 0x0203279C push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020327AE ldr r0, _020327B0 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 _020327AE: pop {r3, pc} .balign 4 _020327B0: .word FUN_020327B8 thumb_func_start FUN_020327B4 FUN_020327B4: ; 0x020327B4 bx lr .balign 4 thumb_func_start FUN_020327B8 FUN_020327B8: ; 0x020327B8 push {r3, lr} ldr r0, _020327F0 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] bl FUN_0202E6F0 cmp r0, #0x0 beq _020327EC ldr r0, _020327F0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x38] cmp r0, #0x0 beq _020327E4 sub r0, r0, #0x1 strh r0, [r1, #0x38] ldr r0, _020327F4 ; =FUN_02032640 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020327E4: ldr r0, _020327F8 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 _020327EC: pop {r3, pc} nop _020327F0: .word 0x021C5A00 _020327F4: .word FUN_02032640 _020327F8: .word FUN_020327B4 thumb_func_start FUN_020327FC FUN_020327FC: ; 0x020327FC push {r3, lr} bl FUN_020311E8 cmp r0, #0x0 bne _02032820 bl FUN_02033510 cmp r0, #0x0 bne _0203282C bl FUN_0202E6F0 cmp r0, #0x0 beq _0203282C ldr r0, _02032848 ; =FUN_020325D0 mov r1, #0x0 bl FUN_02031D20 b _0203282C _02032820: bl FUN_02031190 cmp r0, #0x0 bne _0203282C bl FUN_0202DDE8 _0203282C: bl FUN_020311F0 cmp r0, #0x0 beq _02032844 bl FUN_02033510 cmp r0, #0x0 bne _02032844 ldr r0, _0203284C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 _02032844: pop {r3, pc} nop _02032848: .word FUN_020325D0 _0203284C: .word FUN_020327B8 thumb_func_start FUN_02032850 FUN_02032850: ; 0x02032850 push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203287E ldr r1, _02032880 ; =0x021C5A00 mov r0, #0x0 ldr r1, [r1, #0x0] mov r2, #0x2 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x8 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203287E bl FUN_0202FA10 ldr r0, _02032884 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 _0203287E: pop {r3, pc} .balign 4 _02032880: .word 0x021C5A00 _02032884: .word FUN_020323B8 thumb_func_start FUN_02032888 FUN_02032888: ; 0x02032888 push {r3, lr} ldr r0, _020328BC ; =0x021C5A00 mov r1, #0xd ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bl FUN_02031190 cmp r0, #0x0 add r0, sp, #0x0 bne _020328AE mov r1, #0x0 strb r1, [r0, #0x1] add r1, sp, #0x0 mov r0, #0xa add r1, #0x1 bl FUN_020311D0 pop {r3, pc} _020328AE: mov r1, #0x0 strb r1, [r0, #0x0] mov r0, #0xa add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} .balign 4 _020328BC: .word 0x021C5A00 thumb_func_start FUN_020328C0 FUN_020328C0: ; 0x020328C0 ldr r1, _020328D8 ; =0x021C5A00 ldr r3, _020328DC ; =FUN_02031D20 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] ldr r0, _020328E0 ; =FUN_02032924 mov r1, #0x0 bx r3 nop _020328D8: .word 0x021C5A00 _020328DC: .word FUN_02031D20 _020328E0: .word FUN_02032924 thumb_func_start FUN_020328E4 FUN_020328E4: ; 0x020328E4 ldr r0, _020328F0 ; =0x021C5A00 mov r1, #0x7 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _020328F0: .word 0x021C5A00 thumb_func_start FUN_020328F4 FUN_020328F4: ; 0x020328F4 push {r3, lr} ldr r1, _0203291C ; =0x021C5A00 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x7 add r0, #0x3f strb r2, [r0, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] bl FUN_02033E74 ldr r0, _02032920 ; =FUN_02032628 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203291C: .word 0x021C5A00 _02032920: .word FUN_02032628 thumb_func_start FUN_02032924 FUN_02032924: ; 0x02032924 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _02032936 ldr r0, _02032938 ; =FUN_0203293C mov r1, #0x0 bl FUN_02031D20 _02032936: pop {r3, pc} .balign 4 _02032938: .word FUN_0203293C thumb_func_start FUN_0203293C FUN_0203293C: ; 0x0203293C push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203296C ldr r0, _02032970 ; =0x021C5A00 mov r2, #0x2 ldr r0, [r0, #0x0] mov r1, #0xd add r0, #0x3f strb r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _0203296C bl FUN_0202FA1C ldr r0, _02032974 ; =FUN_02032978 mov r1, #0x64 bl FUN_02031D20 _0203296C: pop {r3, pc} nop _02032970: .word 0x021C5A00 _02032974: .word FUN_02032978 thumb_func_start FUN_02032978 FUN_02032978: ; 0x02032978 push {r3, lr} ldr r0, _020329E4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _020329A4 ldr r0, _020329E4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _020329A4 ldr r0, _020329E8 ; =FUN_020329F4 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _020329A4: bl FUN_020311F0 cmp r0, #0x0 bne _020329B6 ldr r0, _020329E4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 bne _020329DC _020329B6: ldr r0, _020329E4 ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _020329D2 ldr r0, _020329EC ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020329D2: ldr r0, _020329F0 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020329DC: beq _020329E2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] _020329E2: pop {r3, pc} .balign 4 _020329E4: .word 0x021C5A00 _020329E8: .word FUN_020329F4 _020329EC: .word FUN_020327B4 _020329F0: .word FUN_02032924 thumb_func_start FUN_020329F4 FUN_020329F4: ; 0x020329F4 push {r3, lr} ldr r0, _02032A7C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x5a bls _02032A06 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032A06: bl FUN_020311F0 cmp r0, #0x0 beq _02032A34 ldr r0, _02032A7C ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _02032A2A ldr r0, _02032A80 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A2A: ldr r0, _02032A84 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A34: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _02032A4A ldr r0, _02032A88 ; =FUN_0203279C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A4A: ldr r0, _02032A7C ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x3a] cmp r1, #0x0 beq _02032A5A sub r0, r1, #0x1 strh r0, [r2, #0x3a] pop {r3, pc} _02032A5A: ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _02032A72 ldr r0, _02032A80 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A72: ldr r0, _02032A84 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032A7C: .word 0x021C5A00 _02032A80: .word FUN_020327B4 _02032A84: .word FUN_02032924 _02032A88: .word FUN_0203279C thumb_func_start FUN_02032A8C FUN_02032A8C: ; 0x02032A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _02032ADA ldr r6, _02032ADC ; =0x02105D5C mov r3, #0x1 mov r2, #0x0 _02032AA0: ldrb r1, [r6, #0x0] ldrb r0, [r4, r2] cmp r1, r0 beq _02032AAC mov r3, #0x0 b _02032AB4 _02032AAC: add r2, r2, #0x1 add r6, r6, #0x1 cmp r2, #0x6 blo _02032AA0 _02032AB4: cmp r3, #0x0 beq _02032AD0 ldr r0, _02032AE0 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02032AD0 ldr r1, _02032AE4 ; =0x02105D6C mov r0, #0x7 strb r5, [r1, #0x0] bl FUN_02030C4C pop {r4-r6, pc} _02032AD0: ldr r1, _02032AE8 ; =0x02105D64 mov r0, #0x7 strb r5, [r1, #0x0] bl FUN_02030C4C _02032ADA: pop {r4-r6, pc} .balign 4 _02032ADC: .word 0x02105D5C _02032AE0: .word 0x021C5A00 _02032AE4: .word 0x02105D6C _02032AE8: .word 0x02105D64 thumb_func_start FUN_02032AEC FUN_02032AEC: ; 0x02032AEC push {r3-r5, lr} mov r4, #0x1 ldr r5, _02032B5C ; =0x02105D6D add r3, r4, #0x0 _02032AF4: ldrb r1, [r5, #0x0] ldrb r0, [r2, r3] cmp r1, r0 beq _02032B00 mov r4, #0x0 b _02032B08 _02032B00: add r3, r3, #0x1 add r5, r5, #0x1 cmp r3, #0x6 blo _02032AF4 _02032B08: cmp r4, #0x0 beq _02032B22 ldrb r4, [r2, #0x0] bl FUN_02031190 cmp r4, r0 bne _02032B58 ldr r0, _02032B60 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] pop {r3-r5, pc} _02032B22: mov r4, #0x1 ldr r3, _02032B64 ; =0x02105D65 add r5, r4, #0x0 _02032B28: ldrb r1, [r3, #0x0] ldrb r0, [r2, r5] cmp r1, r0 beq _02032B34 mov r4, #0x0 b _02032B3C _02032B34: add r5, r5, #0x1 add r3, r3, #0x1 cmp r5, #0x6 blo _02032B28 _02032B3C: cmp r4, #0x0 beq _02032B58 ldrb r4, [r2, #0x0] bl FUN_02031190 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r4, r0 bne _02032B58 ldr r0, _02032B60 ; =0x021C5A00 mov r1, #0x2 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] _02032B58: pop {r3-r5, pc} nop _02032B5C: .word 0x02105D6D _02032B60: .word 0x021C5A00 _02032B64: .word 0x02105D65 thumb_func_start FUN_02032B68 FUN_02032B68: ; 0x02032B68 mov r0, #0x6 bx lr thumb_func_start FUN_02032B6C FUN_02032B6C: ; 0x02032B6C push {r3, lr} ldr r1, _02032B80 ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _02032B7E add r1, #0x3c strb r0, [r1, #0x0] bl FUN_0202D1B0 _02032B7E: pop {r3, pc} .balign 4 _02032B80: .word 0x021C5A00 thumb_func_start FUN_02032B84 FUN_02032B84: ; 0x02032B84 ldr r3, _02032B88 ; =FUN_0202EA54 bx r3 .balign 4 _02032B88: .word FUN_0202EA54 thumb_func_start FUN_02032B8C FUN_02032B8C: ; 0x02032B8C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032BC6 ldr r0, _02032BC8 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032BC8 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 mov r2, #0x20 bl FUN_0202F950 cmp r0, #0x0 beq _02032BC6 bl FUN_0202FA10 ldr r0, _02032BCC ; =FUN_02032B84 mov r1, #0x0 bl FUN_02031D20 _02032BC6: pop {r3, pc} .balign 4 _02032BC8: .word 0x021C5A00 _02032BCC: .word FUN_02032B84 thumb_func_start FUN_02032BD0 FUN_02032BD0: ; 0x02032BD0 push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02032C00 mov r2, #0x7 mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0xe bl FUN_02031734 ldr r0, _02032C04 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02032C08 ; =FUN_02032B8C bl FUN_02031D20 _02032C00: pop {r4, pc} nop _02032C04: .word 0x021C5A00 _02032C08: .word FUN_02032B8C thumb_func_start FUN_02032C0C FUN_02032C0C: ; 0x02032C0C push {r3, lr} ldr r0, _02032C20 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02032C1E ldr r0, _02032C24 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02032C1E: pop {r3, pc} .balign 4 _02032C20: .word 0x021C5A00 _02032C24: .word FUN_02032440 thumb_func_start FUN_02032C28 FUN_02032C28: ; 0x02032C28 sub sp, #0x8 ldr r1, _02032C64 ; =0x020EEC48 add r0, sp, #0x0 ldr r2, [r1, #0x0] ldr r1, [r1, #0x4] str r2, [sp, #0x0] str r1, [sp, #0x4] ldr r1, _02032C68 ; =0x021C5A00 ldr r1, [r1, #0x0] ldr r3, [r1, #0x24] cmp r1, #0x0 bne _02032C46 mov r0, #0x0 add sp, #0x8 bx lr _02032C46: cmp r2, #0x0 beq _02032C5E _02032C4A: ldr r1, [r0, #0x0] cmp r3, r1 bne _02032C56 mov r0, #0x1 add sp, #0x8 bx lr _02032C56: add r0, r0, #0x4 ldr r1, [r0, #0x0] cmp r1, #0x0 bne _02032C4A _02032C5E: mov r0, #0x0 add sp, #0x8 bx lr .balign 4 _02032C64: .word 0x020EEC48 _02032C68: .word 0x021C5A00 thumb_func_start FUN_02032C6C FUN_02032C6C: ; 0x02032C6C ldr r2, _02032CE4 ; =0x00400131 cmp r0, r2 bhi _02032C7C bhs _02032CBA ldr r2, _02032CE8 ; =0x00000333 cmp r0, r2 beq _02032C8E bx lr _02032C7C: ldr r1, _02032CEC ; =0x00400286 cmp r0, r1 bhi _02032C86 beq _02032CCE bx lr _02032C86: add r1, #0x92 cmp r0, r1 beq _02032CA6 bx lr _02032C8E: cmp r1, #0xf bne _02032CE0 ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x1 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CA6: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x1 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CBA: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x2 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CCE: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x4 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] _02032CE0: bx lr nop _02032CE4: .word 0x00400131 _02032CE8: .word 0x00000333 _02032CEC: .word 0x00400286 _02032CF0: .word 0x021C5A00 thumb_func_start FUN_02032CF4 FUN_02032CF4: ; 0x02032CF4 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032D34 ldr r0, _02032D38 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032D38 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 ldr r0, _02032D3C ; =FUN_02032C6C bl FUN_0202D308 mov r0, #0x1 add r1, r0, #0x0 mov r2, #0x20 bl FUN_0202F950 cmp r0, #0x0 beq _02032D34 bl FUN_0202FA10 ldr r0, _02032D40 ; =FUN_02032B84 mov r1, #0x0 bl FUN_02031D20 _02032D34: pop {r3, pc} nop _02032D38: .word 0x021C5A00 _02032D3C: .word FUN_02032C6C _02032D40: .word FUN_02032B84 thumb_func_start FUN_02032D44 FUN_02032D44: ; 0x02032D44 push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02032D74 mov r2, #0x7 mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0x11 bl FUN_02031734 ldr r0, _02032D78 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02032D7C ; =FUN_02032CF4 bl FUN_02031D20 _02032D74: pop {r4, pc} nop _02032D78: .word 0x021C5A00 _02032D7C: .word FUN_02032CF4 thumb_func_start FUN_02032D80 FUN_02032D80: ; 0x02032D80 push {r3, lr} ldr r0, _02032D94 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02032D92 ldr r0, _02032D98 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02032D92: pop {r3, pc} .balign 4 _02032D94: .word 0x021C5A00 _02032D98: .word FUN_02032440 thumb_func_start FUN_02032D9C FUN_02032D9C: ; 0x02032D9C ldr r0, _02032DA8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x49 ldrb r0, [r0, #0x0] bx lr nop _02032DA8: .word 0x021C5A00 thumb_func_start FUN_02032DAC FUN_02032DAC: ; 0x02032DAC push {r3, lr} bl FUN_02031468 ldr r0, _02032DF4 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02032DBE mov r0, #0x1 pop {r3, pc} _02032DBE: add r0, #0x3f ldrb r0, [r0, #0x0] add r0, #0xe8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _02032DD4 bl FUN_021D83C0 mov r0, #0x1 pop {r3, pc} _02032DD4: bl FUN_02033590 cmp r0, #0x0 beq _02032DE6 ldr r0, _02032DF8 ; =FUN_0203318C mov r1, #0x0 bl FUN_02031D20 b _02032DEE _02032DE6: ldr r0, _02032DFC ; =FUN_02032178 mov r1, #0x0 bl FUN_02031D20 _02032DEE: mov r0, #0x0 pop {r3, pc} nop _02032DF4: .word 0x021C5A00 _02032DF8: .word FUN_0203318C _02032DFC: .word FUN_02032178 thumb_func_start FUN_02032E00 FUN_02032E00: ; 0x02032E00 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032E3C ldr r0, _02032E40 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032E40 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _02032E3C bl FUN_0202FA10 ldr r0, _02032E44 ; =FUN_02032218 mov r1, #0x0 bl FUN_02031D20 _02032E3C: pop {r3, pc} nop _02032E40: .word 0x021C5A00 _02032E44: .word FUN_02032218 thumb_func_start FUN_02032E48 FUN_02032E48: ; 0x02032E48 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032E82 ldr r0, _02032E84 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032E84 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032E82 bl FUN_0202FA10 ldr r0, _02032E88 ; =FUN_02032290 mov r1, #0x0 bl FUN_02031D20 _02032E82: pop {r3, pc} .balign 4 _02032E84: .word 0x021C5A00 _02032E88: .word FUN_02032290 thumb_func_start FUN_02032E8C FUN_02032E8C: ; 0x02032E8C bx lr .balign 4 thumb_func_start FUN_02032E90 FUN_02032E90: ; 0x02032E90 push {r3, lr} bl FUN_021D7F8C cmp r0, #0x0 bge _02032EA2 ldr r0, _02032EA4 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _02032EA2: pop {r3, pc} .balign 4 _02032EA4: .word FUN_02032E8C thumb_func_start FUN_02032EA8 FUN_02032EA8: ; 0x02032EA8 bx lr .balign 4 thumb_func_start FUN_02032EAC FUN_02032EAC: ; 0x02032EAC bx lr .balign 4 thumb_func_start FUN_02032EB0 FUN_02032EB0: ; 0x02032EB0 push {r3, lr} mov r0, #0x1 bl FUN_020313A0 bl FUN_021D7F8C cmp r0, #0xa blt _02032ECA ldr r0, _02032F0C ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032ECA: cmp r0, #0x0 bge _02032ED8 ldr r0, _02032F10 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032ED8: cmp r0, #0x1 bne _02032EE6 ldr r0, _02032F14 ; =FUN_02032E90 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032EE6: cmp r0, #0x2 bne _02032F08 ldr r0, _02032F18 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x44 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02032F00 ldr r0, _02032F10 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F00: ldr r0, _02032F1C ; =FUN_02032EA8 mov r1, #0x0 bl FUN_02031D20 _02032F08: pop {r3, pc} nop _02032F0C: .word FUN_02032EAC _02032F10: .word FUN_02032E8C _02032F14: .word FUN_02032E90 _02032F18: .word 0x021C5A00 _02032F1C: .word FUN_02032EA8 thumb_func_start FUN_02032F20 FUN_02032F20: ; 0x02032F20 add r1, r0, #0x2 cmp r1, #0x1 bls _02032F28 neg r0, r0 _02032F28: ldr r1, _02032F30 ; =0x021C5A00 ldr r1, [r1, #0x0] str r0, [r1, #0x34] bx lr .balign 4 _02032F30: .word 0x021C5A00 thumb_func_start FUN_02032F34 FUN_02032F34: ; 0x02032F34 push {r3, lr} mov r0, #0x0 bl FUN_021D7800 cmp r0, #0xa blt _02032F4A ldr r0, _02032F88 ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F4A: cmp r0, #0x0 bge _02032F5C bl FUN_02032F20 ldr r0, _02032F8C ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F5C: cmp r0, #0x1 bne _02032F6A ldr r0, _02032F90 ; =FUN_02032EB0 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F6A: cmp r0, #0x2 bne _02032F78 ldr r0, _02032F94 ; =FUN_02032EA8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F78: cmp r0, #0x3 bne _02032F84 ldr r0, _02032F88 ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 _02032F84: pop {r3, pc} nop _02032F88: .word FUN_02032EAC _02032F8C: .word FUN_02032E8C _02032F90: .word FUN_02032EB0 _02032F94: .word FUN_02032EA8 thumb_func_start FUN_02032F98 FUN_02032F98: ; 0x02032F98 push {r3, lr} mov r0, #0x1 bl FUN_021D7800 cmp r0, #0x0 bge _02032FB2 bl FUN_02032F20 ldr r0, _02032FD0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032FB2: ldr r0, _02032FD4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x42 ldrb r0, [r0, #0x0] bl FUN_021D8494 cmp r0, #0x0 beq _02032FCE bl FUN_0202FC60 ldr r0, _02032FD8 ; =FUN_02032F34 mov r1, #0x0 bl FUN_02031D20 _02032FCE: pop {r3, pc} .balign 4 _02032FD0: .word FUN_02032E8C _02032FD4: .word 0x021C5A00 _02032FD8: .word FUN_02032F34 thumb_func_start FUN_02032FDC FUN_02032FDC: ; 0x02032FDC push {r4, lr} add r4, r0, #0x0 ldr r0, _02032FFC ; =FUN_020303BC ldr r1, _02033000 ; =FUN_02030238 bl FUN_021D77C4 ldr r0, _02033004 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x42 strb r4, [r0, #0x0] ldr r0, _02033008 ; =FUN_02032F98 bl FUN_02031D20 mov r0, #0x1 pop {r4, pc} .balign 4 _02032FFC: .word FUN_020303BC _02033000: .word FUN_02030238 _02033004: .word 0x021C5A00 _02033008: .word FUN_02032F98 thumb_func_start FUN_0203300C FUN_0203300C: ; 0x0203300C ldr r0, _02033048 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _0203304C ; =FUN_02032F34 cmp r1, r0 bne _0203301C mov r0, #0x0 bx lr _0203301C: ldr r0, _02033050 ; =FUN_02032EB0 cmp r1, r0 bne _02033026 mov r0, #0x1 bx lr _02033026: ldr r0, _02033054 ; =FUN_02032E90 cmp r1, r0 bne _02033030 mov r0, #0x3 bx lr _02033030: ldr r0, _02033058 ; =FUN_02032EA8 cmp r1, r0 bne _0203303A mov r0, #0x4 bx lr _0203303A: ldr r0, _0203305C ; =FUN_02032EAC cmp r1, r0 bne _02033044 mov r0, #0x5 bx lr _02033044: mov r0, #0x2 bx lr .balign 4 _02033048: .word 0x021C5A00 _0203304C: .word FUN_02032F34 _02033050: .word FUN_02032EB0 _02033054: .word FUN_02032E90 _02033058: .word FUN_02032EA8 _0203305C: .word FUN_02032EAC thumb_func_start FUN_02033060 FUN_02033060: ; 0x02033060 push {r3, lr} ldr r0, _02033090 ; =FUN_020303BC ldr r1, _02033094 ; =FUN_02030238 bl FUN_021D77C4 mov r0, #0x0 mvn r0, r0 bl FUN_021D8494 cmp r0, #0x0 beq _0203308C ldr r0, _02033098 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x4d strb r1, [r0, #0x0] bl FUN_0202FC60 ldr r0, _0203309C ; =FUN_02032F34 mov r1, #0x0 bl FUN_02031D20 _0203308C: pop {r3, pc} nop _02033090: .word FUN_020303BC _02033094: .word FUN_02030238 _02033098: .word 0x021C5A00 _0203309C: .word FUN_02032F34 thumb_func_start FUN_020330A0 FUN_020330A0: ; 0x020330A0 push {r3, lr} mov r0, #0x0 bl FUN_020313A0 ldr r0, _020330D8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x41 ldrb r0, [r0, #0x0] bl FUN_021D82BC cmp r0, #0x0 beq _020330C6 bl FUN_021D836C ldr r0, _020330DC ; =FUN_02033060 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020330C6: bl FUN_021D7F8C cmp r0, #0x0 bge _020330D6 ldr r0, _020330E0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _020330D6: pop {r3, pc} .balign 4 _020330D8: .word 0x021C5A00 _020330DC: .word FUN_02033060 _020330E0: .word FUN_02032E8C thumb_func_start FUN_020330E4 FUN_020330E4: ; 0x020330E4 push {r3, lr} bl FUN_02031190 cmp r0, #0x0 bne _02033100 ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033124 ; =FUN_020330A0 bl FUN_02031D20 b _02033112 _02033100: ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033124 ; =FUN_020330A0 mov r1, #0x0 bl FUN_02031D20 _02033112: ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x4d strb r1, [r0, #0x0] pop {r3, pc} nop _02033120: .word 0x021C5A00 _02033124: .word FUN_020330A0 thumb_func_start FUN_02033128 FUN_02033128: ; 0x02033128 ldr r0, _02033134 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4d ldrb r0, [r0, #0x0] bx lr nop _02033134: .word 0x021C5A00 thumb_func_start FUN_02033138 FUN_02033138: ; 0x02033138 ldr r0, _0203314C ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _02033150 ; =FUN_02033060 cmp r1, r0 bne _02033148 mov r0, #0x1 bx lr _02033148: mov r0, #0x0 bx lr .balign 4 _0203314C: .word 0x021C5A00 _02033150: .word FUN_02033060 thumb_func_start FUN_02033154 FUN_02033154: ; 0x02033154 ldr r0, _02033174 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _02033178 ; =FUN_02032F34 cmp r1, r0 bne _02033164 mov r0, #0x1 bx lr _02033164: ldr r0, _0203317C ; =FUN_02033060 cmp r1, r0 bne _0203316E mov r0, #0x1 bx lr _0203316E: mov r0, #0x0 bx lr nop _02033174: .word 0x021C5A00 _02033178: .word FUN_02032F34 _0203317C: .word FUN_02033060 thumb_func_start FUN_02033180 FUN_02033180: ; 0x02033180 ldr r0, _02033188 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bx lr .balign 4 _02033188: .word 0x021C5A00 thumb_func_start FUN_0203318C FUN_0203318C: ; 0x0203318C push {r3, lr} mov r0, #0x0 bl FUN_020313A0 mov r0, #0x0 bl FUN_021D82BC cmp r0, #0x0 beq _020331AA bl FUN_021D836C ldr r0, _020331BC ; =FUN_02032440 mov r1, #0x0 bl FUN_02031D20 _020331AA: bl FUN_021D7F8C cmp r0, #0x0 bge _020331BA ldr r0, _020331C0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _020331BA: pop {r3, pc} .balign 4 _020331BC: .word FUN_02032440 _020331C0: .word FUN_02032E8C thumb_func_start FUN_020331C4 FUN_020331C4: ; 0x020331C4 push {r3, lr} ldr r0, _020331E0 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020331DC mov r0, #0x1 bl FUN_020166B8 ldr r0, _020331E4 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _020331DC: pop {r3, pc} nop _020331E0: .word 0x021C5A00 _020331E4: .word FUN_02032440 thumb_func_start FUN_020331E8 FUN_020331E8: ; 0x020331E8 push {r3, lr} ldr r0, _02033200 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020331FE mov r1, #0x0 add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033204 ; =FUN_020330A0 bl FUN_02031D20 _020331FE: pop {r3, pc} .balign 4 _02033200: .word 0x021C5A00 _02033204: .word FUN_020330A0 thumb_func_start FUN_02033208 FUN_02033208: ; 0x02033208 push {r3, lr} ldr r0, _02033234 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033232 bl FUN_02031190 cmp r0, #0x0 bne _02033220 mov r1, #0x0 ldr r0, _02033234 ; =0x021C5A00 b _02033224 _02033220: ldr r0, _02033234 ; =0x021C5A00 mov r1, #0x1 _02033224: ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033238 ; =FUN_020330A0 mov r1, #0x0 bl FUN_02031D20 _02033232: pop {r3, pc} .balign 4 _02033234: .word 0x021C5A00 _02033238: .word FUN_020330A0 thumb_func_start FUN_0203323C FUN_0203323C: ; 0x0203323C push {r3, lr} bl FUN_02031190 add r1, sp, #0x0 strb r0, [r1, #0x0] mov r0, #0x15 add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} thumb_func_start FUN_02033250 FUN_02033250: ; 0x02033250 ldr r0, _0203327C ; =0x021C5A00 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _02033276 ldr r1, [r2, #0x24] ldr r0, _02033280 ; =FUN_02032E8C cmp r1, r0 bne _02033264 mov r0, #0x1 bx lr _02033264: ldr r0, _02033284 ; =FUN_02032E90 cmp r1, r0 bne _02033276 add r2, #0x44 ldrb r0, [r2, #0x0] cmp r0, #0x0 beq _02033276 mov r0, #0x1 bx lr _02033276: mov r0, #0x0 bx lr nop _0203327C: .word 0x021C5A00 _02033280: .word FUN_02032E8C _02033284: .word FUN_02032E90 thumb_func_start FUN_02033288 FUN_02033288: ; 0x02033288 push {r4, lr} add r4, r0, #0x0 ldr r0, _020332D8 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020332D6 mov r1, #0xf add r2, r1, #0x0 mov r0, #0x3 add r2, #0xf1 bl FUN_02016828 mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _020332D8 ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _020332D8 ; =0x021C5A00 mov r2, #0x18 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r2, [r0, #0x0] mov r1, #0x1 add r2, #0x46 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r4, [r0, #0x28] mov r0, #0x0 bl FUN_020334E8 mov r0, #0x1 bl FUN_020166A8 _020332D6: pop {r4, pc} .balign 4 _020332D8: .word 0x021C5A00 thumb_func_start FUN_020332DC FUN_020332DC: ; 0x020332DC push {r3, lr} ldr r0, _0203330C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033308 mov r0, #0x1 bl FUN_020166B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _0203330C ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0203330C ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0xf bl FUN_020168D0 _02033308: pop {r3, pc} nop _0203330C: .word 0x021C5A00 thumb_func_start FUN_02033310 FUN_02033310: ; 0x02033310 push {r4, lr} add r4, r0, #0x0 ldr r0, _02033360 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203335E mov r1, #0xf add r2, r1, #0x0 mov r0, #0x3 add r2, #0xf1 bl FUN_02016828 mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _02033360 ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _02033360 ; =0x021C5A00 mov r2, #0x19 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r2, [r0, #0x0] mov r1, #0x1 add r2, #0x46 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r4, [r0, #0x28] mov r0, #0x0 bl FUN_020334E8 mov r0, #0x1 bl FUN_020166A8 _0203335E: pop {r4, pc} .balign 4 _02033360: .word 0x021C5A00 thumb_func_start FUN_02033364 FUN_02033364: ; 0x02033364 push {r3, lr} ldr r0, _02033394 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033390 mov r0, #0x1 bl FUN_020166B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _02033394 ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _02033394 ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0xf bl FUN_020168D0 _02033390: pop {r3, pc} nop _02033394: .word 0x021C5A00 thumb_func_start FUN_02033398 FUN_02033398: ; 0x02033398 push {r3, lr} sub sp, #0x8 ldr r0, _020333EC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020333AA add sp, #0x8 mov r0, #0x0 pop {r3, pc} _020333AA: add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x18 bne _020333C8 add r0, sp, #0x4 add r1, sp, #0x0 bl FUN_021DD718 cmp r0, #0x0 beq _020333E4 bl FUN_021DD6F0 add sp, #0x8 mov r0, #0x1 pop {r3, pc} _020333C8: cmp r0, #0x19 bne _020333E4 add r0, sp, #0x4 add r1, sp, #0x0 bl FUN_021DD718 cmp r0, #0x0 beq _020333E4 ldr r0, [sp, #0x0] cmp r0, #0x7 bne _020333E4 add sp, #0x8 mov r0, #0x1 pop {r3, pc} _020333E4: mov r0, #0x0 add sp, #0x8 pop {r3, pc} nop _020333EC: .word 0x021C5A00 thumb_func_start FUN_020333F0 FUN_020333F0: ; 0x020333F0 push {r3, lr} bl FUN_021D76AC cmp r0, #0x0 bge _02033408 bl FUN_02032F20 ldr r0, _02033414 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02033408: ble _02033412 ldr r0, _02033418 ; =FUN_02033060 mov r1, #0x0 bl FUN_02031D20 _02033412: pop {r3, pc} .balign 4 _02033414: .word FUN_02032E8C _02033418: .word FUN_02033060 thumb_func_start FUN_0203341C FUN_0203341C: ; 0x0203341C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _0203345E mov r1, #0x31 mov r0, #0x3 lsl r2, r1, #0xc bl FUN_02016828 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203345E ldr r0, _02033460 ; =0x021C5A00 mov r1, #0x31 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_021D74E0 ldr r0, _02033464 ; =FUN_020335D0 bl FUN_021D83A8 bl FUN_0202FA10 ldr r0, _02033468 ; =FUN_020333F0 mov r1, #0x0 bl FUN_02031D20 _0203345E: pop {r3, pc} .balign 4 _02033460: .word 0x021C5A00 _02033464: .word FUN_020335D0 _02033468: .word FUN_020333F0 thumb_func_start FUN_0203346C FUN_0203346C: ; 0x0203346C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020238F4 bl FUN_02030F40 cmp r0, #0x0 beq _02033482 mov r0, #0x0 pop {r3-r5, pc} _02033482: mov r0, #0x1 bl FUN_020166A8 ldr r2, _020334D0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 mov r1, #0x17 bl FUN_02031734 mov r0, #0xf add r1, r4, #0x0 bl FUN_02016998 ldr r1, _020334D4 ; =0x021C5A00 ldr r2, [r1, #0x0] str r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r1, #0x0 ldr r0, [r0, #0x0] add r2, r4, #0x0 blx MI_CpuFill8 ldr r0, _020334D4 ; =0x021C5A00 mov r1, #0x0 ldr r2, [r0, #0x0] add r2, #0x40 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r5, [r0, #0x28] ldr r0, _020334D8 ; =FUN_0203341C bl FUN_02031D20 ldr r0, _020334D4 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 _020334D0: .word 0x00007080 _020334D4: .word 0x021C5A00 _020334D8: .word FUN_0203341C thumb_func_start FUN_020334DC FUN_020334DC: ; 0x020334DC ldr r0, _020334E4 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bx lr .balign 4 _020334E4: .word 0x021C5A00 thumb_func_start FUN_020334E8 FUN_020334E8: ; 0x020334E8 push {r4, lr} add r4, r0, #0x0 ldr r0, _0203350C ; =0x021C5A00 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _020334FE add r2, #0x44 strb r4, [r2, #0x0] ldr r0, [r0, #0x0] add r0, #0x45 strb r1, [r0, #0x0] _020334FE: add r0, r4, #0x0 bl FUN_0202EE84 add r0, r4, #0x0 bl FUN_0202EEB0 pop {r4, pc} .balign 4 _0203350C: .word 0x021C5A00 thumb_func_start FUN_02033510 FUN_02033510: ; 0x02033510 ldr r0, _02033530 ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0203352C add r0, r1, #0x0 add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02033526 mov r0, #0x1 bx lr _02033526: add r1, #0x45 ldrb r0, [r1, #0x0] bx lr _0203352C: mov r0, #0x0 bx lr .balign 4 _02033530: .word 0x021C5A00 thumb_func_start FUN_02033534 FUN_02033534: ; 0x02033534 ldr r0, _02033548 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033542 add r0, #0x3f ldrb r0, [r0, #0x0] bx lr _02033542: mov r0, #0x1 bx lr nop _02033548: .word 0x021C5A00 thumb_func_start FUN_0203354C FUN_0203354C: ; 0x0203354C ldr r0, _02033560 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203355A add r0, #0x40 ldrb r0, [r0, #0x0] bx lr _0203355A: mov r0, #0x0 bx lr nop _02033560: .word 0x021C5A00 thumb_func_start FUN_02033564 FUN_02033564: ; 0x02033564 ldr r1, _02033570 ; =0x021C5A00 ldr r3, _02033574 ; =MI_CpuCopy8 ldr r1, [r1, #0x0] mov r2, #0x6 add r1, r1, #0x4 bx r3 .balign 4 _02033570: .word 0x021C5A00 _02033574: .word MI_CpuCopy8 thumb_func_start FUN_02033578 FUN_02033578: ; 0x02033578 add r1, r0, #0x0 ldr r0, _02033588 ; =0x021C5A00 ldr r3, _0203358C ; =MI_CpuCopy8 ldr r0, [r0, #0x0] mov r2, #0x6 add r0, r0, #0x4 bx r3 nop _02033588: .word 0x021C5A00 _0203358C: .word MI_CpuCopy8 thumb_func_start FUN_02033590 FUN_02033590: ; 0x02033590 push {r3, lr} bl FUN_02033534 cmp r0, #0x13 blt _0203359E mov r0, #0x1 pop {r3, pc} _0203359E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020335A4 FUN_020335A4: ; 0x020335A4 ldr r1, _020335B4 ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020335B0 add r1, #0x47 strb r0, [r1, #0x0] _020335B0: bx lr nop _020335B4: .word 0x021C5A00 thumb_func_start FUN_020335B8 FUN_020335B8: ; 0x020335B8 ldr r0, _020335CC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020335C6 add r0, #0x47 ldrb r0, [r0, #0x0] bx lr _020335C6: mov r0, #0x0 bx lr nop _020335CC: .word 0x021C5A00 thumb_func_start FUN_020335D0 FUN_020335D0: ; 0x020335D0 push {r3, lr} add r2, r0, #0x0 mov r0, #0x0 mov r1, #0x1 bl FUN_02033F70 _020335DC: b _020335DC .balign 4 thumb_func_start FUN_020335E0 FUN_020335E0: ; 0x020335E0 push {r3, lr} mov r0, #0x0 mov r1, #0x4 add r2, r0, #0x0 bl FUN_02033F70 _020335EC: b _020335EC .balign 4 thumb_func_start FUN_020335F0 FUN_020335F0: ; 0x020335F0 bx lr .balign 4 thumb_func_start FUN_020335F4 FUN_020335F4: ; 0x020335F4 push {r3, lr} bl FUN_02033510 cmp r0, #0x0 beq _0203366C bl FUN_020311F0 cmp r0, #0x0 bne _02033622 bl FUN_02033250 cmp r0, #0x0 bne _02033622 bl FUN_02033398 cmp r0, #0x0 bne _02033622 ldr r0, _02033670 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0203366C _02033622: bl FUN_020335B8 cmp r0, #0x0 bne _0203366C bl FUN_0200541C ldr r0, _02033670 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202287C ldr r1, _02033674 ; =0x021C4918 mov r0, #0x1 strb r0, [r1, #0x4] ldr r1, _02033670 ; =0x021C5A00 ldr r2, [r1, #0x0] add r1, r2, #0x0 add r1, #0x4e ldrb r1, [r1, #0x0] cmp r1, #0x3 bne _02033654 mov r0, #0x3 bl FUN_020335A4 pop {r3, pc} _02033654: add r2, #0x3f ldrb r1, [r2, #0x0] cmp r1, #0x19 beq _02033660 cmp r1, #0xf bne _02033668 _02033660: mov r0, #0x2 bl FUN_020335A4 pop {r3, pc} _02033668: bl FUN_020335A4 _0203366C: pop {r3, pc} nop _02033670: .word 0x021C5A00 _02033674: .word 0x021C4918 thumb_func_start FUN_02033678 FUN_02033678: ; 0x02033678 push {r3, lr} bl FUN_0202EDD8 cmp r0, #0x0 bne _0203368A bl FUN_02031810 cmp r0, #0x0 bne _0203368E _0203368A: mov r0, #0x1 pop {r3, pc} _0203368E: bl FUN_0202E344 cmp r0, #0x0 bne _0203369A mov r0, #0x1 pop {r3, pc} _0203369A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020336A0 FUN_020336A0: ; 0x020336A0 push {r3, lr} ldr r1, _020336BC ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020336B6 add r1, #0x4e strb r0, [r1, #0x0] bl FUN_02031468 mov r0, #0x1 pop {r3, pc} _020336B6: mov r0, #0x0 pop {r3, pc} nop _020336BC: .word 0x021C5A00 thumb_func_start FUN_020336C0 FUN_020336C0: ; 0x020336C0 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020336C8 FUN_020336C8: ; 0x020336C8 push {r4-r6, lr} add r4, r2, #0x0 add r6, r1, #0x0 ldr r1, [r4, #0x0] add r5, r0, #0x0 cmp r1, #0x6 bhi _02033774 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020336E2: ; jump table (using 16-bit offset) .short _020336F0 - _020336E2 - 2; case 0 .short _020336FC - _020336E2 - 2; case 1 .short _02033714 - _020336E2 - 2; case 2 .short _0203373A - _020336E2 - 2; case 3 .short _0203374A - _020336E2 - 2; case 4 .short _0203376A - _020336E2 - 2; case 5 .short _02033770 - _020336E2 - 2; case 6 _020336F0: mov r0, #0x6f bl FUN_02031588 mov r0, #0x1 str r0, [r4, #0x0] b _02033774 _020336FC: mov r0, #0x6f bl FUN_020315D8 cmp r0, #0x0 beq _02033774 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02022840 mov r0, #0x2 str r0, [r4, #0x0] b _02033774 _02033714: bl FUN_02022854 add r5, r0, #0x0 cmp r5, #0x2 bne _02033722 bl ErrorHandling _02033722: cmp r5, #0x3 bne _0203372A bl ErrorHandling _0203372A: cmp r5, #0x1 bne _02033774 mov r0, #0x3 str r0, [r4, #0x0] mov r0, #0x70 bl FUN_02031588 b _02033774 _0203373A: mov r0, #0x70 bl FUN_020315D8 cmp r0, #0x0 beq _02033774 mov r0, #0x4 str r0, [r4, #0x0] b _02033774 _0203374A: bl FUN_02022854 add r5, r0, #0x0 cmp r5, #0x3 bne _02033758 bl ErrorHandling _02033758: cmp r5, #0x1 bne _02033760 bl ErrorHandling _02033760: cmp r5, #0x2 bne _02033774 mov r0, #0x5 str r0, [r4, #0x0] b _02033774 _0203376A: mov r0, #0x6 str r0, [r4, #0x0] b _02033774 _02033770: mov r0, #0x1 pop {r4-r6, pc} _02033774: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02033778 FUN_02033778: ; 0x02033778 push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02030F20 add r7, r0, #0x0 mov r0, #0x0 bl FUN_0202DFA4 cmp r0, #0x0 beq _020337C6 mov r5, #0x0 cmp r7, #0x0 ble _020337C6 _02033792: bl FUN_02031190 cmp r5, r0 beq _020337C0 add r0, r5, #0x0 bl FUN_0202E020 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202E044 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0202DFA4 bl FUN_02023A70 add r3, r0, #0x0 ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020337C8 _020337C0: add r5, r5, #0x1 cmp r5, r7 blt _02033792 _020337C6: pop {r3-r7, pc} thumb_func_start FUN_020337C8 FUN_020337C8: ; 0x020337C8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02029B40 cmp r0, #0x0 bne _020337E4 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 mov r3, #0x1 bl FUN_02029B90 _020337E4: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020337E8 FUN_020337E8: ; 0x020337E8 push {r3-r5, lr} mov r1, #0x72 lsl r1, r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, #0x1f mov r1, #0x1f bic r0, r1 blx FUN_02096B14 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203380C FUN_0203380C: ; 0x0203380C push {r4, lr} bl FUN_02028228 add r4, r0, #0x0 blx FUN_02096FB0 cmp r0, #0x0 bne _0203382A ldr r1, _0203382C ; =0x4144414A add r0, r4, #0x0 blx thunk_FUN_02097190 add r0, r4, #0x0 blx thunk_FUN_02096e4c _0203382A: pop {r4, pc} .balign 4 _0203382C: .word 0x4144414A thumb_func_start FUN_02033830 FUN_02033830: ; 0x02033830 push {r3-r4, lr} sub sp, #0xc bl FUN_02028228 add r4, r0, #0x0 add r1, sp, #0x0 blx FUN_02096CCC add r0, r4, #0x0 add r1, sp, #0x0 blx FUN_02096DA0 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0203384C FUN_0203384C: ; 0x0203384C push {r4, lr} bl FUN_020286EC bl FUN_02028228 add r4, r0, #0x0 blx FUN_02096F80 cmp r0, #0x0 beq _0203386E add r0, r4, #0x0 blx FUN_02096F18 cmp r0, #0x0 beq _0203386E mov r0, #0x1 pop {r4, pc} _0203386E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02033874 FUN_02033874: ; 0x02033874 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] bl FUN_020286EC bl FUN_02028228 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C add r4, r0, #0x0 mov r1, #0x0 ldr r0, [sp, #0x0] mvn r1, r1 str r1, [r0, #0x0] add r0, r5, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _020338AE add sp, #0x8 mov r0, #0x3 pop {r3-r7, pc} _020338AE: mov r7, #0x0 _020338B0: add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_02096B78 cmp r0, #0x0 beq _020338C6 ldr r0, [sp, #0x0] add sp, #0x8 str r7, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} _020338C6: add r0, r6, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 cmp r0, #0x0 ble _020338F4 add r0, r6, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 str r0, [sp, #0x4] add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_02096DA0 ldr r1, [sp, #0x4] cmp r1, r0 bne _020338F4 ldr r0, [sp, #0x0] add sp, #0x8 str r7, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} _020338F4: ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bge _0203390A add r0, r4, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _0203390A ldr r0, [sp, #0x0] str r7, [r0, #0x0] _0203390A: add r7, r7, #0x1 add r4, #0xc cmp r7, #0x20 blt _020338B0 mov r0, #0x2 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02033918 FUN_02033918: ; 0x02033918 push {r3-r7, lr} sub sp, #0x18 add r4, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] add r6, r3, #0x0 bl FUN_020286EC bl FUN_02028228 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C add r5, r0, #0x0 ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r7, #0x0 blx FUN_020973B4 cmp r0, #0x0 bne _02033950 add sp, #0x18 mov r0, #0x3 pop {r3-r7, pc} _02033950: ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, sp, #0xc blx FUN_02096D2C add r0, r7, #0x0 add r1, sp, #0xc blx FUN_02096DA0 cmp r0, #0x0 bgt _0203396C add sp, #0x18 mov r0, #0x3 pop {r3-r7, pc} _0203396C: mov r0, #0x0 mvn r0, r0 str r0, [r6, #0x0] mov r4, #0x0 _02033974: add r0, r7, #0x0 add r1, sp, #0xc blx FUN_02096DA0 str r0, [sp, #0x8] add r0, r7, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 ldr r1, [sp, #0x8] cmp r1, r0 bne _02033994 add sp, #0x18 str r4, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} _02033994: ldr r0, [r6, #0x0] cmp r0, #0x0 bge _020339A6 add r0, r5, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _020339A6 str r4, [r6, #0x0] _020339A6: add r4, r4, #0x1 add r5, #0xc cmp r4, #0x20 blt _02033974 mov r0, #0x2 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_020339B4 FUN_020339B4: ; 0x020339B4 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 mov r1, #0x0 add r5, r0, #0x0 str r2, [sp, #0x4] str r1, [sp, #0xc] bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C str r0, [sp, #0x8] mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _02033A68 _020339D8: bl FUN_02031190 cmp r4, r0 beq _02033A5C add r0, r4, #0x0 bl FUN_0202DFD8 add r7, r0, #0x0 beq _02033A5C add r0, r5, #0x0 add r1, r7, #0x0 add r2, sp, #0x10 bl FUN_02033874 str r0, [r6, #0x0] cmp r0, #0x3 bne _020339FE bl ErrorHandling _020339FE: ldr r0, [r6, #0x0] cmp r0, #0x0 bne _02033A1C mov r0, #0x2 str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02033A70 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C _02033A1C: cmp r0, #0x1 bne _02033A54 bl FUN_02033590 cmp r0, #0x0 bne _02033A5C mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02033A70 ldr r2, [sp, #0x10] mov r1, #0xc add r3, r2, #0x0 mul r3, r1 ldr r1, [sp, #0x8] add r0, r7, #0x0 add r1, r1, r3 mov r2, #0xc blx MI_CpuCopy8 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C _02033A54: cmp r0, #0x2 bne _02033A5C mov r0, #0x1 str r0, [sp, #0xc] _02033A5C: add r6, r6, #0x4 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _020339D8 _02033A68: ldr r0, [sp, #0xc] add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02033A70 FUN_02033A70: ; 0x02033A70 push {r4-r7, lr} sub sp, #0x14 add r5, r2, #0x0 str r0, [sp, #0x0] add r7, r1, #0x0 str r3, [sp, #0x4] bl FUN_020286EC add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_0202838C str r0, [sp, #0x8] add r0, r7, #0x0 bl FUN_0202DFA4 add r6, r0, #0x0 ldr r0, [sp, #0x28] cmp r0, #0x2 beq _02033AA6 add r0, r7, #0x0 bl FUN_0202DFD8 ldr r1, [sp, #0x8] mov r2, #0xc blx MI_CpuCopy8 _02033AA6: ldr r0, [sp, #0x28] cmp r0, #0x0 bne _02033AEC ldr r1, [sp, #0x4] add r0, r6, #0x0 bl FUN_020239A0 str r0, [sp, #0xc] ldr r2, [sp, #0xc] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020283C0 ldr r0, [sp, #0xc] bl FUN_02021A20 add r0, r6, #0x0 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020282E8 add r0, r6, #0x0 bl FUN_020239BC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020282E8 b _02033B22 _02033AEC: cmp r0, #0x1 bne _02033B22 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_0202822C cmp r0, #0x2 bne _02033B22 add r0, r6, #0x0 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020282E8 add r0, r6, #0x0 bl FUN_020239BC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020282E8 _02033B22: ldr r1, [sp, #0x4] mov r0, #0x78 bl FUN_020219F4 str r0, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202DFFC add r1, r0, #0x0 ldr r0, [sp, #0x10] bl FUN_02021E28 ldr r2, [sp, #0x10] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02028404 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r6, #0x0 bl FUN_02023A28 add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x7 bl FUN_020282E8 ldr r0, [sp, #0x0] bl FUN_0202E1BC add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02033B68 FUN_02033B68: ; 0x02033B68 push {r4-r6, lr} add r4, r1, #0x0 add r5, r2, #0x0 mov r2, #0x7 add r6, r3, #0x0 ldr r1, [sp, #0x10] mov r0, #0x1 lsl r2, r2, #0x6 add r3, r4, #0x0 bl FUN_02033D3C ldr r1, [sp, #0x10] mov r0, #0x1 add r2, r4, #0x0 bl FUN_02033D9C add r0, r4, #0x0 mov r1, #0x20 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, _02033BC4 ; =FUN_02033BC8 add r1, r4, #0x0 mov r2, #0x5 bl FUN_0200CA98 str r0, [r4, #0x18] strh r5, [r4, #0xc] strh r6, [r4, #0xe] mov r1, #0x0 str r1, [r4, #0x0] mov r0, #0x3 str r0, [r4, #0x4] ldr r0, [sp, #0x14] str r0, [r4, #0x14] ldr r0, [sp, #0x10] str r1, [r4, #0x8] strb r0, [r4, #0x10] strb r1, [r4, #0x12] mov r0, #0x7 strb r1, [r4, #0x11] lsl r0, r0, #0x18 str r0, [r4, #0x1c] add r0, r4, #0x0 pop {r4-r6, pc} nop _02033BC4: .word FUN_02033BC8 thumb_func_start FUN_02033BC8 FUN_02033BC8: ; 0x02033BC8 push {r3-r7, lr} add r5, r1, #0x0 ldrb r0, [r5, #0x11] cmp r0, #0x1 beq _02033BD8 cmp r0, #0x2 beq _02033BEE b _02033C04 _02033BD8: ldr r0, _02033CB0 ; =0x04000304 ldrh r1, [r0, #0x0] lsr r0, r0, #0xb and r0, r1 asr r0, r0, #0xf cmp r0, #0x1 bne _02033BEA mov r6, #0x1 b _02033C06 _02033BEA: mov r6, #0x2 b _02033C06 _02033BEE: ldr r0, _02033CB0 ; =0x04000304 ldrh r1, [r0, #0x0] lsr r0, r0, #0xb and r0, r1 asr r0, r0, #0xf cmp r0, #0x1 bne _02033C00 mov r6, #0x2 b _02033C06 _02033C00: mov r6, #0x1 b _02033C06 _02033C04: mov r6, #0x1 _02033C06: ldr r4, [r5, #0x4] cmp r6, #0x1 bne _02033C1E mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033CB4 ; =0x00300010 add r7, r1, #0x0 and r7, r0 blx GX_GetBankForOBJ b _02033C2C _02033C1E: ldr r0, _02033CB8 ; =0x04001000 ldr r1, [r0, #0x0] ldr r0, _02033CB4 ; =0x00300010 add r7, r1, #0x0 and r7, r0 blx GX_GetBankForSubOBJ _02033C2C: cmp r7, #0x10 beq _02033C38 ldr r1, _02033CBC ; =0x00200010 cmp r7, r1 beq _02033C54 b _02033C6C _02033C38: cmp r0, #0x40 beq _02033C40 cmp r0, #0x20 bne _02033C4A _02033C40: mov r0, #0x1f lsl r1, r4, #0x2 lsl r0, r0, #0x4 add r1, r1, r0 b _02033C74 _02033C4A: mov r0, #0x3f lsl r1, r4, #0x2 lsl r0, r0, #0x4 add r1, r1, r0 b _02033C74 _02033C54: cmp r0, #0x30 beq _02033C5C cmp r0, #0x50 bne _02033C64 _02033C5C: mov r0, #0x9f lsl r0, r0, #0x2 add r1, r4, r0 b _02033C74 _02033C64: mov r0, #0xff lsl r0, r0, #0x2 add r1, r4, r0 b _02033C74 _02033C6C: mov r0, #0xfe lsl r1, r4, #0x1 lsl r0, r0, #0x2 add r1, r1, r0 _02033C74: cmp r6, #0x1 bne _02033C7E mov r2, #0x7 lsl r2, r2, #0x18 b _02033C80 _02033C7E: ldr r2, _02033CC0 ; =0x07000400 _02033C80: ldrh r3, [r5, #0xe] ldrh r0, [r5, #0xc] lsl r3, r3, #0x18 lsr r4, r3, #0x18 mov r3, #0x1 lsl r0, r0, #0x17 lsl r3, r3, #0x1e lsr r0, r0, #0x7 orr r3, r4 orr r0, r3 str r0, [r2, #0x0] mov r0, #0xe lsl r0, r0, #0xc orr r0, r1 strh r0, [r2, #0x4] ldr r1, [r5, #0x1c] cmp r2, r1 beq _02033CAE ldr r0, _02033CC4 ; =0x40000200 str r0, [r1, #0x0] mov r0, #0x0 strh r0, [r1, #0x4] str r2, [r5, #0x1c] _02033CAE: pop {r3-r7, pc} .balign 4 _02033CB0: .word 0x04000304 _02033CB4: .word 0x00300010 _02033CB8: .word 0x04001000 _02033CBC: .word 0x00200010 _02033CC0: .word 0x07000400 _02033CC4: .word 0x40000200 thumb_func_start FUN_02033CC8 FUN_02033CC8: ; 0x02033CC8 cmp r1, #0x4 bge _02033CD2 str r1, [r0, #0x4] mov r1, #0x0 str r1, [r0, #0x8] _02033CD2: bx lr thumb_func_start FUN_02033CD4 FUN_02033CD4: ; 0x02033CD4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] bl FUN_0200CAB4 mov r0, #0x7 ldr r2, _02033D00 ; =0x40000200 lsl r0, r0, #0x18 str r2, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x4] ldrb r0, [r4, #0x12] cmp r0, #0x0 beq _02033CF6 ldr r0, _02033D04 ; =0x07000400 str r2, [r0, #0x0] strh r1, [r0, #0x4] _02033CF6: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} nop _02033D00: .word 0x40000200 _02033D04: .word 0x07000400 thumb_func_start FUN_02033D08 FUN_02033D08: ; 0x02033D08 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 mov r2, #0x7 ldrb r1, [r5, #0x10] mov r0, #0x2 lsl r2, r2, #0x6 add r3, r6, #0x0 bl FUN_02033D3C ldrb r1, [r5, #0x10] mov r0, #0x2 add r2, r6, #0x0 bl FUN_02033D9C cmp r4, #0x0 beq _02033D30 mov r0, #0x1 b _02033D32 _02033D30: mov r0, #0x2 _02033D32: strb r0, [r5, #0x11] mov r0, #0x1 strb r0, [r5, #0x12] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02033D3C FUN_02033D3C: ; 0x02033D3C push {r3-r5, lr} sub sp, #0x8 mov r1, #0x96 add r5, r0, #0x0 add r0, r3, #0x0 lsl r1, r1, #0x2 add r4, r2, #0x0 bl FUN_020169D8 str r0, [sp, #0x4] cmp r0, #0x0 beq _02033D92 ldr r0, _02033D98 ; =0x02105D88 add r1, sp, #0x4 bl FUN_020161F8 mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0138 cmp r5, #0x1 bne _02033D80 ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx GX_LoadOBJPltt b _02033D8C _02033D80: ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx GXS_LoadOBJPltt _02033D8C: ldr r0, [sp, #0x4] bl FUN_02016A18 _02033D92: add sp, #0x8 pop {r3-r5, pc} nop _02033D98: .word 0x02105D88 thumb_func_start FUN_02033D9C FUN_02033D9C: ; 0x02033D9C push {r3-r5, lr} sub sp, #0x8 add r4, r1, #0x0 mov r1, #0x96 add r5, r0, #0x0 add r0, r2, #0x0 lsl r1, r1, #0x2 bl FUN_020169D8 str r0, [sp, #0x4] cmp r0, #0x0 beq _02033E58 cmp r4, #0x0 add r1, sp, #0x4 beq _02033DC2 ldr r0, _02033E5C ; =0x02105D98 bl FUN_020161F8 b _02033DC8 _02033DC2: ldr r0, _02033E60 ; =0x02105DA8 bl FUN_020161F8 _02033DC8: mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0088 cmp r5, #0x1 bne _02033DF0 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033E64 ; =0x00300010 add r4, r1, #0x0 and r4, r0 blx GX_GetBankForOBJ b _02033E00 _02033DF0: mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033E64 ; =0x00300010 add r4, r1, #0x0 and r4, r0 blx GX_GetBankForOBJ _02033E00: cmp r4, #0x10 beq _02033E0C ldr r1, _02033E68 ; =0x00200010 cmp r4, r1 beq _02033E20 b _02033E30 _02033E0C: cmp r0, #0x40 beq _02033E14 cmp r0, #0x20 bne _02033E1A _02033E14: mov r1, #0x3e lsl r1, r1, #0x8 b _02033E34 _02033E1A: mov r1, #0x7e lsl r1, r1, #0x8 b _02033E34 _02033E20: cmp r0, #0x30 beq _02033E28 cmp r0, #0x50 bne _02033E2C _02033E28: ldr r1, _02033E6C ; =0x00013E00 b _02033E34 _02033E2C: ldr r1, _02033E70 ; =0x0001FE00 b _02033E34 _02033E30: mov r1, #0xfe lsl r1, r1, #0x8 _02033E34: cmp r5, #0x1 bne _02033E46 ldr r0, [sp, #0x0] mov r2, #0x2 ldr r0, [r0, #0x14] lsl r2, r2, #0x8 blx GX_LoadOBJ b _02033E52 _02033E46: ldr r0, [sp, #0x0] mov r2, #0x2 ldr r0, [r0, #0x14] lsl r2, r2, #0x8 blx GXS_LoadOBJ _02033E52: ldr r0, [sp, #0x4] bl FUN_02016A18 _02033E58: add sp, #0x8 pop {r3-r5, pc} .balign 4 _02033E5C: .word 0x02105D98 _02033E60: .word 0x02105DA8 _02033E64: .word 0x00300010 _02033E68: .word 0x00200010 _02033E6C: .word 0x00013E00 _02033E70: .word 0x0001FE00 thumb_func_start FUN_02033E74 FUN_02033E74: ; 0x02033E74 push {r4, lr} mov r4, #0x0 bl FUN_02033590 cmp r0, #0x0 beq _02033E82 mov r4, #0x1 _02033E82: mov r0, #0xf0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02033E90 pop {r4, pc} .balign 4 thumb_func_start FUN_02033E90 FUN_02033E90: ; 0x02033E90 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_0202E4DC cmp r0, #0x0 beq _02033EC4 ldr r0, _02033EC8 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EAE bl FUN_02033ED0 _02033EAE: ldr r0, _02033ECC ; =0x02105D74 str r4, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x0 mov r1, #0x5b add r2, r5, #0x0 add r3, r6, #0x0 bl FUN_02033B68 ldr r1, _02033EC8 ; =0x021C5A04 str r0, [r1, #0x0] _02033EC4: add sp, #0x8 pop {r4-r6, pc} .balign 4 _02033EC8: .word 0x021C5A04 _02033ECC: .word 0x02105D74 thumb_func_start FUN_02033ED0 FUN_02033ED0: ; 0x02033ED0 push {r3, lr} ldr r0, _02033EE8 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EE4 bl FUN_02033CD4 ldr r0, _02033EE8 ; =0x021C5A04 mov r1, #0x0 str r1, [r0, #0x0] _02033EE4: pop {r3, pc} nop _02033EE8: .word 0x021C5A04 thumb_func_start FUN_02033EEC FUN_02033EEC: ; 0x02033EEC push {r3, lr} add r1, r0, #0x0 ldr r0, _02033F00 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EFC bl FUN_02033CC8 _02033EFC: pop {r3, pc} nop _02033F00: .word 0x021C5A04 thumb_func_start FUN_02033F04 FUN_02033F04: ; 0x02033F04 push {r3, lr} add r3, r0, #0x0 ldr r0, _02033F1C ; =0x021C5A04 add r2, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033F18 add r1, r3, #0x0 bl FUN_02033D08 _02033F18: pop {r3, pc} nop _02033F1C: .word 0x021C5A04 thumb_func_start FUN_02033F20 FUN_02033F20: ; 0x02033F20 push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 beq _02033F40 bl FUN_02030F20 cmp r0, #0x1 bgt _02033F3A bl FUN_02033590 cmp r0, #0x0 beq _02033F4C _02033F3A: bl FUN_02033E74 pop {r3, pc} _02033F40: bl FUN_02033590 cmp r0, #0x0 beq _02033F4C bl FUN_02033E74 _02033F4C: pop {r3, pc} .balign 4 thumb_func_start FUN_02033F50 FUN_02033F50: ; 0x02033F50 ldr r3, _02033F64 ; =0x027E0000 ldr r1, _02033F68 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] ldr r3, _02033F6C ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02033F64: .word 0x027E0000 _02033F68: .word 0x00003FF8 _02033F6C: .word MI_WaitDma thumb_func_start FUN_02033F70 FUN_02033F70: ; 0x02033F70 push {r3-r7, lr} sub sp, #0x28 add r4, r0, #0x0 str r2, [sp, #0xc] cmp r1, #0x4 bhi _02033F92 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02033F88: ; jump table (using 16-bit offset) .short _02033F92 - _02033F88 - 2; case 0 .short _02033F96 - _02033F88 - 2; case 1 .short _02033F9A - _02033F88 - 2; case 2 .short _02033F9E - _02033F88 - 2; case 3 .short _02033FA2 - _02033F88 - 2; case 4 _02033F92: mov r5, #0x1 b _02033FA4 _02033F96: mov r5, #0x2 b _02033FA4 _02033F9A: mov r5, #0x3 b _02033FA4 _02033F9E: mov r5, #0x4 b _02033FA4 _02033FA2: mov r5, #0x5 _02033FA4: mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 blx OS_DisableIrqMask ldr r1, _02034154 ; =FUN_02033F50 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02034158 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0203415C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _02034160 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _02034164 ; =0x04000050 mov r1, #0x0 strh r1, [r3, #0x0] ldr r0, _02034168 ; =0x04001050 sub r3, #0x50 strh r1, [r0, #0x0] ldr r2, [r3, #0x0] ldr r1, _0203416C ; =0xFFFF1FFF sub r0, #0x50 and r2, r1 str r2, [r3, #0x0] ldr r2, [r0, #0x0] and r1, r2 str r1, [r0, #0x0] ldr r0, _02034170 ; =0x020EECD0 bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 add r6, r0, #0x0 ldr r0, _02034174 ; =0x020EECA4 bl FUN_02016BBC mov r1, #0x0 ldr r2, _02034178 ; =0x020EECB4 add r0, r6, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r6, #0x0 mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0203417C ; =0x000001F7 add r0, r6, #0x0 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _02034180 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _02034180 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc8 add r3, r4, #0x0 bl FUN_0200A86C str r0, [sp, #0x10] mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r7, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 str r0, [sp, #0x14] bl FUN_0201BD5C add r0, r4, #0x0 bl FUN_0200AA80 add r4, r0, #0x0 ldr r2, _02034184 ; =0x020EEC9C add r0, r6, #0x0 add r1, sp, #0x18 bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x18 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0203417C ; =0x000001F7 add r0, sp, #0x18 mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x0 mov r3, #0x5 bl FUN_0200AD38 ldr r0, [sp, #0x10] ldr r2, [sp, #0x14] add r1, r5, #0x0 bl FUN_0200A8E0 ldr r2, [sp, #0x14] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0200B7B8 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0x18 add r2, r7, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r7, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 add r0, sp, #0x18 bl FUN_02019178 ldr r0, [sp, #0x10] bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_0200AB18 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x28 pop {r3-r7, pc} nop _02034154: .word FUN_02033F50 _02034158: .word 0xFFFFE0FF _0203415C: .word 0x04001000 _02034160: .word 0x021C4918 _02034164: .word 0x04000050 _02034168: .word 0x04001050 _0203416C: .word 0xFFFF1FFF _02034170: .word 0x020EECD0 _02034174: .word 0x020EECA4 _02034178: .word 0x020EECB4 _0203417C: .word 0x000001F7 _02034180: .word 0x00006C21 _02034184: .word 0x020EEC9C thumb_func_start FUN_02034188 FUN_02034188: ; 0x02034188 push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 bl FUN_02015EF4 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02034368 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0203436C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _02034370 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _02034374 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] ldr r2, _02034378 ; =0x04001050 sub r3, #0x50 strh r0, [r2, #0x0] ldr r1, [r3, #0x0] ldr r0, _0203437C ; =0xFFFF1FFF sub r2, #0x50 and r1, r0 str r1, [r3, #0x0] ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r0, _02034380 ; =0x020EED2C bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 str r0, [sp, #0x10] ldr r0, _02034384 ; =0x020EED00 bl FUN_02016BBC mov r1, #0x0 ldr r0, [sp, #0x10] ldr r2, _02034388 ; =0x020EED10 add r3, r1, #0x0 bl FUN_02016C18 ldr r0, [sp, #0x10] mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x10] ldr r2, _0203438C ; =0x000001F7 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _02034390 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _02034390 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 ldr r2, _02034394 ; =0x00000265 mov r0, #0x1 mov r1, #0x1a add r3, r4, #0x0 bl FUN_0200A86C str r0, [sp, #0xc] mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r0, [sp, #0x10] ldr r2, _02034398 ; =0x020EECF8 add r1, sp, #0x14 bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x14 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0203438C ; =0x000001F7 add r0, sp, #0x14 mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 ldr r0, [sp, #0xc] mov r1, #0xf add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0x14 add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 ldr r4, _0203439C ; =0x04000130 ldr r6, _020343A0 ; =0x027FFFA8 mov r7, #0x1 _020342E4: ldrh r1, [r4, #0x0] ldrh r0, [r6, #0x0] orr r1, r0 ldr r0, _020343A4 ; =0x00002FFF eor r1, r0 and r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 bl FUN_02000FE8 add r0, r5, #0x0 tst r0, r7 bne _02034308 mov r0, #0x1 add r1, r0, #0x0 blx OS_WaitIrq b _020342E4 _02034308: add r0, sp, #0x14 bl FUN_02019178 ldr r0, [sp, #0xc] bl FUN_0200A8B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0201797C mov r0, #0x1 mov r1, #0x0 bl FUN_0201797C mov r0, #0x2 mov r1, #0x0 bl FUN_0201797C mov r0, #0x3 mov r1, #0x0 bl FUN_0201797C mov r0, #0x4 mov r1, #0x0 bl FUN_0201797C mov r0, #0x5 mov r1, #0x0 bl FUN_0201797C mov r0, #0x6 mov r1, #0x0 bl FUN_0201797C mov r0, #0x7 mov r1, #0x0 bl FUN_0201797C ldr r0, [sp, #0x10] mov r1, #0x0 bl FUN_020178A0 ldr r0, [sp, #0x10] bl FUN_02016A18 add sp, #0x24 pop {r4-r7, pc} nop _02034368: .word 0xFFFFE0FF _0203436C: .word 0x04001000 _02034370: .word 0x021C4918 _02034374: .word 0x04000050 _02034378: .word 0x04001050 _0203437C: .word 0xFFFF1FFF _02034380: .word 0x020EED2C _02034384: .word 0x020EED00 _02034388: .word 0x020EED10 _0203438C: .word 0x000001F7 _02034390: .word 0x00006C21 _02034394: .word 0x00000265 _02034398: .word 0x020EECF8 _0203439C: .word 0x04000130 _020343A0: .word 0x027FFFA8 _020343A4: .word 0x00002FFF thumb_func_start FUN_020343A8 FUN_020343A8: ; 0x020343A8 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 str r2, [sp, #0x0] mov r2, #0x0 strb r2, [r4, #0x1] mov r0, #0xe1 ldr r7, _02034488 ; =0x0000070A ldr r6, _0203448C ; =0x00000A8E mov r12, r1 strb r2, [r4, #0x0] add r3, r4, #0x0 add r5, r2, #0x0 lsl r0, r0, #0x2 _020343C4: add r1, r4, r2 strh r5, [r3, #0x2] strb r5, [r1, r7] strh r5, [r3, r6] add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, r0 blt _020343C4 ldr r0, _02034490 ; =0x00001196 mov r2, #0x0 _020343D8: add r1, r4, r5 add r5, r5, #0x1 strb r2, [r1, r0] cmp r5, #0x10 blt _020343D8 mov r0, #0x29 mov r1, r12 mov r2, #0xb bl FUN_02006528 add r6, r0, #0x0 ldrb r0, [r6, #0x0] add r5, r6, #0x5 strb r0, [r4, #0x1] ldrb r0, [r6, #0x1] strb r0, [r4, #0x0] ldrb r0, [r6, #0x2] str r0, [sp, #0x8] ldrb r0, [r6, #0x3] str r0, [sp, #0x4] ldrb r7, [r6, #0x4] cmp r7, #0x10 bls _0203440A bl ErrorHandling _0203440A: ldr r1, _02034490 ; =0x00001196 add r0, r5, #0x0 add r1, r4, r1 add r2, r7, #0x0 blx MI_CpuCopy8 ldr r0, [sp, #0x8] add r5, r5, r7 cmp r0, #0x0 beq _0203443A ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] add r0, r5, #0x0 add r1, r4, #0x2 mul r2, r3 lsl r2, r2, #0x1 blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 lsl r0, r0, #0x1 add r5, r5, r0 b _0203444E _0203443A: ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r0, [sp, #0x0] add r1, r4, #0x2 lsl r0, r0, #0x10 mul r2, r3 lsr r0, r0, #0x10 lsl r2, r2, #0x1 blx MIi_CpuClear16 _0203444E: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0203446C ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r1, _02034488 ; =0x0000070A add r0, r5, #0x0 add r1, r4, r1 mul r2, r3 blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 add r5, r5, r0 _0203446C: ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r1, _0203448C ; =0x00000A8E add r0, r5, #0x0 mul r2, r3 add r1, r4, r1 lsl r2, r2, #0x1 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc pop {r4-r7, pc} .balign 4 _02034488: .word 0x0000070A _0203448C: .word 0x00000A8E _02034490: .word 0x00001196 thumb_func_start FUN_02034494 FUN_02034494: ; 0x02034494 push {r3, lr} ldr r1, _020344A8 ; =0x000011AA mov r0, #0xb bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] pop {r3, pc} .balign 4 _020344A8: .word 0x000011AA thumb_func_start FUN_020344AC FUN_020344AC: ; 0x020344AC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0203474C add r6, r0, #0x0 add r0, r4, #0x4 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_020343A8 strb r6, [r4, #0x2] ldrb r0, [r4, #0x4] strb r0, [r4, #0x1] ldrb r0, [r4, #0x5] strb r0, [r4, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020344D0 FUN_020344D0: ; 0x020344D0 ldr r3, _020344D4 ; =FUN_02016A18 bx r3 .balign 4 _020344D4: .word FUN_02016A18 thumb_func_start FUN_020344D8 FUN_020344D8: ; 0x020344D8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r1, [r4, #0x0] ldrb r0, [r4, #0x1] mul r0, r1 cmp r5, r0 blt _020344EC bl ErrorHandling _020344EC: lsl r0, r5, #0x1 add r1, r4, r0 ldr r0, _020344F8 ; =0x00000A92 ldrh r0, [r1, r0] pop {r3-r5, pc} nop _020344F8: .word 0x00000A92 thumb_func_start FUN_020344FC FUN_020344FC: ; 0x020344FC push {r4, lr} add r4, r0, #0x0 bne _02034506 bl ErrorHandling _02034506: ldrb r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0203450C FUN_0203450C: ; 0x0203450C push {r4, lr} add r4, r0, #0x0 bne _02034516 bl ErrorHandling _02034516: ldrb r0, [r4, #0x1] pop {r4, pc} .balign 4 thumb_func_start FUN_0203451C FUN_0203451C: ; 0x0203451C push {r3-r7, lr} add r7, r0, #0x0 ldrb r0, [r7, #0x1] add r5, r1, #0x0 add r4, r2, #0x0 ldrb r6, [r7, #0x0] str r0, [sp, #0x0] cmp r5, #0x0 blt _02034532 cmp r5, r6 blt _02034536 _02034532: bl ErrorHandling _02034536: cmp r4, #0x0 blt _02034540 ldr r0, [sp, #0x0] cmp r4, r0 blt _02034544 _02034540: bl ErrorHandling _02034544: add r0, r4, #0x0 mul r0, r6 add r0, r5, r0 lsl r0, r0, #0x1 add r0, r7, r0 ldrh r0, [r0, #0x6] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02034554 FUN_02034554: ; 0x02034554 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldrb r1, [r5, #0x0] ldrb r0, [r5, #0x1] mul r0, r1 cmp r4, #0x0 blt _02034568 cmp r4, r0 blt _0203456C _02034568: bl ErrorHandling _0203456C: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, #0x6] pop {r3-r5, pc} thumb_func_start FUN_02034574 FUN_02034574: ; 0x02034574 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02034578 FUN_02034578: ; 0x02034578 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [sp, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 cmp r4, r0 blt _0203458A bl ErrorHandling _0203458A: ldr r0, [sp, #0x10] mul r0, r6 add r4, r4, r0 mov r0, #0xe1 lsl r0, r0, #0x2 cmp r4, r0 blt _0203459C bl ErrorHandling _0203459C: ldr r0, _020345A4 ; =0x0000070E add r1, r5, r4 ldrb r0, [r1, r0] pop {r4-r6, pc} .balign 4 _020345A4: .word 0x0000070E thumb_func_start FUN_020345A8 FUN_020345A8: ; 0x020345A8 push {r3-r5, lr} ldr r1, _020345D8 ; =0x00000708 add r4, r0, #0x0 bl FUN_02016998 add r5, r0, #0x0 mov r0, #0x29 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02006528 add r4, r0, #0x0 ldrb r1, [r4, #0x4] add r0, r4, #0x5 ldr r2, _020345D8 ; =0x00000708 add r0, r0, r1 add r1, r5, #0x0 blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _020345D8: .word 0x00000708 thumb_func_start FUN_020345DC FUN_020345DC: ; 0x020345DC push {r4, lr} add r4, r0, #0x0 bne _020345E6 bl ErrorHandling _020345E6: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020345F0 FUN_020345F0: ; 0x020345F0 mov r3, #0x1e mul r3, r2 add r1, r1, r3 lsl r1, r1, #0x1 ldrh r0, [r0, r1] bx lr thumb_func_start FUN_020345FC FUN_020345FC: ; 0x020345FC push {r3-r5, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1c8 add r3, r0, #0x0 add r5, r1, #0x0 lsl r1, r3, #0x10 add r4, r2, #0x0 add r0, sp, #0x0 lsr r1, r1, #0x10 mov r2, #0x0 bl FUN_020343A8 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r5, r0 blt _0203462E bl ErrorHandling _0203462E: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r4, r0 blt _0203463A bl ErrorHandling _0203463A: add r0, sp, #0x0 ldrb r0, [r0, #0x1] mul r0, r4 add r0, r5, r0 lsl r1, r0, #0x1 add r0, sp, #0x0 add r0, #0x2 ldrh r0, [r0, r1] add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1c8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034660 FUN_02034660: ; 0x02034660 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bne _0203466C bl ErrorHandling _0203466C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020344D8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034678 FUN_02034678: ; 0x02034678 push {r4-r7} ldr r1, _020346C4 ; =0x00000A92 ldrb r7, [r0, #0x0] add r2, r0, r1 ldr r1, _020346C8 ; =0x0000070E add r1, r0, r1 ldrb r0, [r0, #0x2] cmp r0, #0x0 bne _020346BE mov r0, #0x15 add r6, r7, #0x0 mul r6, r0 add r5, r6, #0x0 add r5, #0x17 mov r4, #0xb0 lsl r0, r5, #0x1 add r6, #0x18 strh r4, [r2, r0] lsl r0, r6, #0x1 strh r4, [r2, r0] mov r0, #0x16 add r3, r7, #0x0 mul r3, r0 add r0, r3, #0x0 add r0, #0x17 lsl r7, r0, #0x1 add r3, #0x18 strh r4, [r2, r7] lsl r7, r3, #0x1 strh r4, [r2, r7] mov r2, #0x2 strb r2, [r1, r5] strb r2, [r1, r6] strb r2, [r1, r0] strb r2, [r1, r3] _020346BE: pop {r4-r7} bx lr nop _020346C4: .word 0x00000A92 _020346C8: .word 0x0000070E thumb_func_start FUN_020346CC FUN_020346CC: ; 0x020346CC push {r3-r4} ldr r1, _0203470C ; =0x00000A92 add r2, r0, r1 ldrb r1, [r0, #0x0] ldrb r0, [r0, #0x2] cmp r0, #0x0 bne _02034706 mov r0, #0xf mul r0, r1 add r0, #0x1c mov r3, #0x77 lsl r0, r0, #0x1 strh r3, [r2, r0] lsl r0, r1, #0x4 add r3, r0, #0x0 add r3, #0x1b mov r4, #0x78 lsl r3, r3, #0x1 strh r4, [r2, r3] add r3, r0, #0x0 add r3, #0x1c add r0, r1, r0 add r0, #0x1b mov r4, #0x79 lsl r3, r3, #0x1 strh r4, [r2, r3] mov r3, #0x7a lsl r0, r0, #0x1 strh r3, [r2, r0] _02034706: pop {r3-r4} bx lr nop _0203470C: .word 0x00000A92 thumb_func_start FUN_02034710 FUN_02034710: ; 0x02034710 push {r3, lr} ldr r1, _02034720 ; =0x0000022F cmp r0, r1 blo _0203471E bl ErrorHandling mov r0, #0x3 _0203471E: pop {r3, pc} .balign 4 _02034720: .word 0x0000022F thumb_func_start FUN_02034724 FUN_02034724: ; 0x02034724 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034734 ; =0x020EEDBC ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034734: .word 0x020EEDBC thumb_func_start FUN_02034738 FUN_02034738: ; 0x02034738 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034748 ; =0x020EEDBD ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034748: .word 0x020EEDBD thumb_func_start FUN_0203474C FUN_0203474C: ; 0x0203474C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203476C ; =0x020EEDBE ldrh r0, [r0, r1] cmp r0, #0x16 bne _02034768 ldr r1, _02034770 ; =0x020ECAC0 ldrb r1, [r1, #0x0] cmp r1, #0xb bne _02034768 mov r0, #0x17 _02034768: pop {r3, pc} nop _0203476C: .word 0x020EEDBE _02034770: .word 0x020ECAC0 thumb_func_start FUN_02034774 FUN_02034774: ; 0x02034774 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034784 ; =0x020EEDC4 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034784: .word 0x020EEDC4 thumb_func_start FUN_02034788 FUN_02034788: ; 0x02034788 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034798 ; =0x020EEDC0 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034798: .word 0x020EEDC0 thumb_func_start FUN_0203479C FUN_0203479C: ; 0x0203479C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347AC ; =0x020EEDC2 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347AC: .word 0x020EEDC2 thumb_func_start FUN_020347B0 FUN_020347B0: ; 0x020347B0 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347C0 ; =0x020EEDC6 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347C0: .word 0x020EEDC6 thumb_func_start FUN_020347C4 FUN_020347C4: ; 0x020347C4 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347D4 ; =0x020EEDC8 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347D4: .word 0x020EEDC8 thumb_func_start FUN_020347D8 FUN_020347D8: ; 0x020347D8 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347F4 ; =0x020EEDCA ldrh r1, [r0, r1] ldr r0, _020347F8 ; =0x0000FFFF cmp r1, r0 beq _020347F0 mov r0, #0x1 pop {r3, pc} _020347F0: mov r0, #0x0 pop {r3, pc} .balign 4 _020347F4: .word 0x020EEDCA _020347F8: .word 0x0000FFFF thumb_func_start FUN_020347FC FUN_020347FC: ; 0x020347FC push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203480C ; =0x020EEDCA ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _0203480C: .word 0x020EEDCA thumb_func_start FUN_02034810 FUN_02034810: ; 0x02034810 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034820 ; =0x020EEDCC ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034820: .word 0x020EEDCC thumb_func_start FUN_02034824 FUN_02034824: ; 0x02034824 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034834 ; =0x020EEDCE ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034834: .word 0x020EEDCE thumb_func_start FUN_02034838 FUN_02034838: ; 0x02034838 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034848 ; =0x020EEDD0 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034848: .word 0x020EEDD0 thumb_func_start FUN_0203484C FUN_0203484C: ; 0x0203484C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203485C ; =0x020EEDD1 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _0203485C: .word 0x020EEDD1 thumb_func_start FUN_02034860 FUN_02034860: ; 0x02034860 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034878 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x1c lsr r0, r0, #0x1c pop {r3, pc} nop _02034878: .word 0x020EEDBC thumb_func_start FUN_0203487C FUN_0203487C: ; 0x0203487C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034894 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x19 lsr r0, r0, #0x1f pop {r3, pc} nop _02034894: .word 0x020EEDBC thumb_func_start FUN_02034898 FUN_02034898: ; 0x02034898 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348B0 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x18 lsr r0, r0, #0x1f pop {r3, pc} nop _020348B0: .word 0x020EEDBC thumb_func_start FUN_020348B4 FUN_020348B4: ; 0x020348B4 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348CC ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x1b lsr r0, r0, #0x1f pop {r3, pc} nop _020348CC: .word 0x020EEDBC thumb_func_start FUN_020348D0 FUN_020348D0: ; 0x020348D0 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348E0 ; =0x020EEDD2 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _020348E0: .word 0x020EEDD2 thumb_func_start FUN_020348E4 FUN_020348E4: ; 0x020348E4 push {r4, lr} add r4, r0, #0x0 bl FUN_02034898 cmp r0, #0x0 bne _020348F4 mov r0, #0x0 pop {r4, pc} _020348F4: add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x1 beq _02034902 mov r0, #0x1 pop {r4, pc} _02034902: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034908 FUN_02034908: ; 0x02034908 push {r3, lr} bl FUN_0203474C cmp r0, #0x0 bne _02034916 mov r0, #0x1 pop {r3, pc} _02034916: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203491C FUN_0203491C: ; 0x0203491C push {r3, lr} bl FUN_020348D0 cmp r0, #0x5 bne _0203492A mov r0, #0x1 pop {r3, pc} _0203492A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034930 FUN_02034930: ; 0x02034930 push {r3, lr} bl FUN_020348D0 cmp r0, #0x3 bne _0203493E mov r0, #0x1 pop {r3, pc} _0203493E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034944 FUN_02034944: ; 0x02034944 push {r4, lr} add r4, r0, #0x0 bl FUN_020348D0 cmp r0, #0x4 beq _0203495A add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x5 bne _0203495E _0203495A: mov r0, #0x1 pop {r4, pc} _0203495E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034964 FUN_02034964: ; 0x02034964 push {r4, lr} add r4, r0, #0x0 bl FUN_020348D0 cmp r0, #0x1 beq _0203497A add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x2 bne _0203497E _0203497A: mov r0, #0x1 pop {r4, pc} _0203497E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034984 FUN_02034984: ; 0x02034984 push {r3, lr} bl FUN_0203491C cmp r0, #0x0 beq _02034992 mov r0, #0x1 pop {r3, pc} _02034992: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034998 FUN_02034998: ; 0x02034998 ldr r1, _020349A8 ; =0x000001D2 cmp r0, r1 bne _020349A2 mov r0, #0x1 bx lr _020349A2: mov r0, #0x0 bx lr nop _020349A8: .word 0x000001D2 thumb_func_start FUN_020349AC FUN_020349AC: ; 0x020349AC cmp r0, #0xdb bne _020349B4 mov r0, #0x1 bx lr _020349B4: mov r0, #0x0 bx lr thumb_func_start FUN_020349B8 FUN_020349B8: ; 0x020349B8 ldr r1, _020349C8 ; =0x0000011F cmp r0, r1 bne _020349C2 mov r0, #0x1 bx lr _020349C2: mov r0, #0x0 bx lr nop _020349C8: .word 0x0000011F thumb_func_start FUN_020349CC FUN_020349CC: ; 0x020349CC cmp r0, #0xfd bne _020349D4 mov r0, #0x1 bx lr _020349D4: mov r0, #0x0 bx lr thumb_func_start FUN_020349D8 FUN_020349D8: ; 0x020349D8 cmp r0, #0xdc bne _020349E0 mov r0, #0x1 bx lr _020349E0: mov r0, #0x0 bx lr thumb_func_start FUN_020349E4 FUN_020349E4: ; 0x020349E4 ldr r3, _02034A00 ; =0x020EED54 mov r2, #0x0 _020349E8: ldrh r1, [r3, #0x0] cmp r0, r1 bne _020349F2 mov r0, #0x1 bx lr _020349F2: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x12 blo _020349E8 mov r0, #0x0 bx lr nop _02034A00: .word 0x020EED54 thumb_func_start FUN_02034A04 FUN_02034A04: ; 0x02034A04 ldr r3, _02034A24 ; =0x020EED78 mov r2, #0x0 _02034A08: ldrh r1, [r3, #0x0] cmp r0, r1 bne _02034A18 add r0, r2, #0x1 lsl r1, r0, #0x1 ldr r0, _02034A24 ; =0x020EED78 ldrh r0, [r0, r1] bx lr _02034A18: add r2, r2, #0x2 add r3, r3, #0x4 cmp r2, #0x22 blo _02034A08 mov r0, #0x0 bx lr .balign 4 _02034A24: .word 0x020EED78 thumb_func_start FUN_02034A28 FUN_02034A28: ; 0x02034A28 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] add r4, r1, #0x0 cmp r0, #0x0 beq _02034A38 bl ErrorHandling _02034A38: ldr r1, _02034A44 ; =0x00000AC8 add r0, r4, #0x0 bl FUN_02016998 str r0, [r5, #0x14] pop {r3-r5, pc} .balign 4 _02034A44: .word 0x00000AC8 thumb_func_start FUN_02034A48 FUN_02034A48: ; 0x02034A48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034A56 bl ErrorHandling _02034A56: ldr r0, [r4, #0x14] bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02034A60 FUN_02034A60: ; 0x02034A60 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] add r4, r1, #0x0 cmp r0, #0x0 bne _02034A70 bl ErrorHandling _02034A70: ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_02034A98 ldr r0, [r5, #0x14] bl FUN_02034C50 mov r0, #0x92 ldr r1, [r5, #0x14] lsl r0, r0, #0x4 add r0, r1, r0 add r1, r4, #0x0 bl FUN_02034CB4 ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_02034CEC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034A98 FUN_02034A98: ; 0x02034A98 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02034810 add r4, r0, #0x0 mov r0, #0x20 add r1, r4, #0x0 bl LoadFromNARC_7 mov r1, #0x2 lsl r1, r1, #0xa cmp r0, r1 blo _02034AB8 bl ErrorHandling _02034AB8: add r5, #0x20 add r0, r5, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl LoadFromNARC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034AC8 FUN_02034AC8: ; 0x02034AC8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] ldr r4, [r0, #0x4] cmp r0, #0x0 bne _02034AD8 bl ErrorHandling _02034AD8: cmp r4, #0x0 beq _02034AEC ldr r1, [r5, #0x1c] ldr r3, [r5, #0x14] ldr r0, [r5, #0x34] ldr r1, [r1, #0x0] ldr r3, [r3, #0x14] add r2, r4, #0x0 bl FUN_02057BAC _02034AEC: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034AF0 FUN_02034AF0: ; 0x02034AF0 ldr r0, [r0, #0x14] ldr r0, [r0, #0x10] bx lr .balign 4 thumb_func_start FUN_02034AF8 FUN_02034AF8: ; 0x02034AF8 ldr r0, [r0, #0x14] ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034B00 FUN_02034B00: ; 0x02034B00 ldr r2, [r0, #0x14] ldr r0, [r2, #0x8] cmp r1, r0 blo _02034B0C mov r0, #0x0 bx lr _02034B0C: mov r0, #0xc ldr r2, [r2, #0x18] mul r0, r1 add r0, r2, r0 bx lr .balign 4 thumb_func_start FUN_02034B18 FUN_02034B18: ; 0x02034B18 push {r4-r7} ldr r5, [r0, #0x14] mov r3, #0x0 ldr r0, [r5, #0x8] cmp r0, #0x0 bls _02034B4A ldr r6, [r5, #0x18] add r4, r3, #0x0 add r0, r6, #0x0 _02034B2A: ldrh r7, [r0, #0x0] cmp r1, r7 bne _02034B3E add r7, r6, r4 ldrh r7, [r7, #0x2] cmp r2, r7 bne _02034B3E add r0, r3, #0x0 pop {r4-r7} bx lr _02034B3E: ldr r7, [r5, #0x8] add r3, r3, #0x1 add r0, #0xc add r4, #0xc cmp r3, r7 blo _02034B2A _02034B4A: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02034B54 FUN_02034B54: ; 0x02034B54 ldr r0, [r0, #0x14] ldr r0, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_02034B5C FUN_02034B5C: ; 0x02034B5C ldr r0, [r0, #0x14] ldr r0, [r0, #0x1c] bx lr .balign 4 thumb_func_start FUN_02034B64 FUN_02034B64: ; 0x02034B64 ldr r0, [r0, #0x14] ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_02034B6C FUN_02034B6C: ; 0x02034B6C ldr r0, [r0, #0x14] ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02034B74 FUN_02034B74: ; 0x02034B74 push {r3-r7, lr} ldr r0, [r0, #0x14] add r4, r1, #0x0 ldr r5, [r0, #0x4] add r7, r2, #0x0 add r1, r3, #0x0 mov r2, #0x0 ldr r3, [r0, #0x14] cmp r5, #0x0 bls _02034BA4 add r6, r3, #0x0 _02034B8A: ldrh r0, [r6, #0x0] cmp r4, r0 bne _02034B9C lsl r0, r2, #0x5 add r0, r3, r0 strh r7, [r0, #0x18] strh r1, [r0, #0x1a] mov r0, #0x1 pop {r3-r7, pc} _02034B9C: add r2, r2, #0x1 add r6, #0x20 cmp r2, r5 blo _02034B8A _02034BA4: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02034BAC FUN_02034BAC: ; 0x02034BAC push {r4-r6, lr} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r5, [r0, #0x4] ldr r4, [r0, #0x14] cmp r5, #0x0 bls _02034BD4 add r6, r4, #0x0 _02034BBC: ldrh r0, [r6, #0x0] cmp r1, r0 bne _02034BCC lsl r0, r3, #0x5 add r0, r4, r0 strh r2, [r0, #0xc] mov r0, #0x1 pop {r4-r6, pc} _02034BCC: add r3, r3, #0x1 add r6, #0x20 cmp r3, r5 blo _02034BBC _02034BD4: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02034BDC FUN_02034BDC: ; 0x02034BDC push {r4-r6, lr} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r5, [r0, #0x4] ldr r4, [r0, #0x14] cmp r5, #0x0 bls _02034C04 add r6, r4, #0x0 _02034BEC: ldrh r0, [r6, #0x0] cmp r1, r0 bne _02034BFC lsl r0, r3, #0x5 add r0, r4, r0 strh r2, [r0, #0x4] mov r0, #0x1 pop {r4-r6, pc} _02034BFC: add r3, r3, #0x1 add r6, #0x20 cmp r3, r5 blo _02034BEC _02034C04: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02034C0C FUN_02034C0C: ; 0x02034C0C push {r3-r4} ldr r0, [r0, #0x14] ldr r4, [r0, #0x18] mov r0, #0xc mul r0, r1 strh r2, [r4, r0] add r0, r4, r0 strh r3, [r0, #0x2] mov r0, #0x1 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02034C24 FUN_02034C24: ; 0x02034C24 ldr r0, [r0, #0x14] ldr r3, [r0, #0x18] mov r0, #0xc mul r0, r1 add r0, r3, r0 strh r2, [r0, #0x4] mov r0, #0x1 bx lr thumb_func_start FUN_02034C34 FUN_02034C34: ; 0x02034C34 push {r4-r6, lr} add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02034AF0 mov r1, #0x14 mul r1, r5 add r0, r0, r1 str r4, [r0, #0x4] str r6, [r0, #0x8] mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02034C50 FUN_02034C50: ; 0x02034C50 add r1, r0, #0x0 ldr r2, [r0, #0x20] add r1, #0x20 add r1, r1, #0x4 str r2, [r0, #0x0] cmp r2, #0x0 beq _02034C62 str r1, [r0, #0x10] b _02034C66 _02034C62: mov r2, #0x0 str r2, [r0, #0x10] _02034C66: ldr r3, [r0, #0x0] mov r2, #0x14 mul r2, r3 add r3, r1, r2 ldr r2, [r1, r2] add r1, r3, #0x4 str r2, [r0, #0x4] cmp r2, #0x0 beq _02034C7C str r1, [r0, #0x14] b _02034C80 _02034C7C: mov r2, #0x0 str r2, [r0, #0x14] _02034C80: ldr r2, [r0, #0x4] lsl r2, r2, #0x5 add r3, r1, r2 ldr r2, [r1, r2] add r1, r3, #0x4 str r2, [r0, #0x8] cmp r2, #0x0 beq _02034C94 str r1, [r0, #0x18] b _02034C98 _02034C94: mov r2, #0x0 str r2, [r0, #0x18] _02034C98: ldr r3, [r0, #0x8] mov r2, #0xc mul r2, r3 add r3, r1, r2 ldr r1, [r1, r2] str r1, [r0, #0xc] cmp r1, #0x0 beq _02034CAE add r1, r3, #0x4 str r1, [r0, #0x1c] bx lr _02034CAE: mov r1, #0x0 str r1, [r0, #0x1c] bx lr thumb_func_start FUN_02034CB4 FUN_02034CB4: ; 0x02034CB4 push {r3-r5, lr} mov r2, #0x6a add r4, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 add r5, r0, #0x0 blx Call_FillMemWithValue add r0, r4, #0x0 bl FUN_020347D8 cmp r0, #0x0 beq _02034CDE add r0, r4, #0x0 bl FUN_020347FC add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x25 bl LoadFromNARC _02034CDE: pop {r3-r5, pc} thumb_func_start FUN_02034CE0 FUN_02034CE0: ; 0x02034CE0 ldr r1, [r0, #0x14] mov r0, #0x92 lsl r0, r0, #0x4 add r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_02034CEC FUN_02034CEC: ; 0x02034CEC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_0203479C mov r1, #0x82 lsl r1, r1, #0x4 mov r2, #0x1 add r4, r0, #0x0 mov r0, #0x0 add r1, r5, r1 lsl r2, r2, #0x8 blx MIi_CpuClearFast mov r0, #0xa add r1, r4, #0x0 bl LoadFromNARC_7 mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 blo _02034D1C bl ErrorHandling _02034D1C: mov r0, #0x82 lsl r0, r0, #0x4 add r0, r5, r0 mov r1, #0xa add r2, r4, #0x0 bl LoadFromNARC pop {r3-r5, pc} thumb_func_start FUN_02034D2C FUN_02034D2C: ; 0x02034D2C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034D3A bl ErrorHandling _02034D3A: mov r0, #0x82 ldr r1, [r4, #0x14] lsl r0, r0, #0x4 add r0, r1, r0 pop {r4, pc} thumb_func_start FUN_02034D44 FUN_02034D44: ; 0x02034D44 push {r4-r7} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r4, [r0, #0x4] cmp r4, #0x0 bls _02034D76 ldr r6, [r0, #0x14] add r5, r3, #0x0 add r4, r6, #0x0 _02034D56: ldrh r7, [r4, #0x18] cmp r1, r7 bne _02034D6A add r7, r6, r5 ldrh r7, [r7, #0x1a] cmp r2, r7 bne _02034D6A mov r0, #0x0 pop {r4-r7} bx lr _02034D6A: ldr r7, [r0, #0x4] add r3, r3, #0x1 add r4, #0x20 add r5, #0x20 cmp r3, r7 blo _02034D56 _02034D76: mov r0, #0x1 pop {r4-r7} bx lr thumb_func_start FUN_02034D7C FUN_02034D7C: ; 0x02034D7C mov r0, #0xa0 bx lr thumb_func_start FUN_02034D80 FUN_02034D80: ; 0x02034D80 mov r0, #0x5 lsl r0, r0, #0xa bx lr .balign 4 thumb_func_start FUN_02034D88 FUN_02034D88: ; 0x02034D88 ldr r3, _02034D94 ; =MIi_CpuClear32 mov r2, #0x5 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0xa bx r3 .balign 4 _02034D94: .word MIi_CpuClear32 thumb_func_start FUN_02034D98 FUN_02034D98: ; 0x02034D98 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0xa0 blx Call_FillMemWithValue add r0, r4, #0x0 add r0, #0x6c bl FUN_0204ADE0 add r0, r4, #0x0 add r0, #0x8c bl FUN_02055468 bl FUN_02034E8C add r4, #0x68 strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02034DC0 FUN_02034DC0: ; 0x02034DC0 bx lr .balign 4 thumb_func_start FUN_02034DC4 FUN_02034DC4: ; 0x02034DC4 add r0, #0x14 bx lr thumb_func_start FUN_02034DC8 FUN_02034DC8: ; 0x02034DC8 add r0, #0x28 bx lr thumb_func_start FUN_02034DCC FUN_02034DCC: ; 0x02034DCC add r0, #0x50 bx lr thumb_func_start FUN_02034DD0 FUN_02034DD0: ; 0x02034DD0 add r0, #0x3c bx lr thumb_func_start FUN_02034DD4 FUN_02034DD4: ; 0x02034DD4 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x3c stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02034DE8 FUN_02034DE8: ; 0x02034DE8 add r0, #0x64 bx lr thumb_func_start FUN_02034DEC FUN_02034DEC: ; 0x02034DEC add r0, #0x66 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034DF4 FUN_02034DF4: ; 0x02034DF4 add r0, #0x66 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034DFC FUN_02034DFC: ; 0x02034DFC add r0, #0x68 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E04 FUN_02034E04: ; 0x02034E04 add r0, #0x68 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E0C FUN_02034E0C: ; 0x02034E0C add r0, #0x6c bx lr thumb_func_start FUN_02034E10 FUN_02034E10: ; 0x02034E10 add r0, #0x6a ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E18 FUN_02034E18: ; 0x02034E18 add r0, #0x6a strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E20 FUN_02034E20: ; 0x02034E20 add r0, #0x8c bx lr thumb_func_start FUN_02034E24 FUN_02034E24: ; 0x02034E24 add r0, #0x98 bx lr thumb_func_start FUN_02034E28 FUN_02034E28: ; 0x02034E28 add r0, #0x96 bx lr thumb_func_start FUN_02034E2C FUN_02034E2C: ; 0x02034E2C add r0, #0x94 bx lr thumb_func_start FUN_02034E30 FUN_02034E30: ; 0x02034E30 ldr r3, _02034E38 ; =FUN_02022610 mov r1, #0x6 bx r3 nop _02034E38: .word FUN_02022610 thumb_func_start FUN_02034E3C FUN_02034E3C: ; 0x02034E3C ldr r3, _02034E44 ; =FUN_02022610 mov r1, #0xb bx r3 nop _02034E44: .word FUN_02022610 thumb_func_start FUN_02034E48 FUN_02034E48: ; 0x02034E48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E3C add r2, r0, #0x0 ldr r1, [r4, #0x34] add r0, r4, #0x0 mov r3, #0x40 bl FUN_02057800 pop {r4, pc} thumb_func_start FUN_02034E60 FUN_02034E60: ; 0x02034E60 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E3C add r1, r0, #0x0 ldr r0, [r4, #0x34] mov r2, #0x40 bl FUN_0205785C pop {r4, pc} .balign 4 thumb_func_start FUN_02034E78 FUN_02034E78: ; 0x02034E78 push {r3, lr} cmp r0, #0x0 ble _02034E82 cmp r0, #0x14 bls _02034E88 _02034E82: bl ErrorHandling mov r0, #0x1 _02034E88: sub r0, r0, #0x1 pop {r3, pc} thumb_func_start FUN_02034E8C FUN_02034E8C: ; 0x02034E8C mov r0, #0x1 bx lr thumb_func_start FUN_02034E90 FUN_02034E90: ; 0x02034E90 push {r4, lr} add r4, r1, #0x0 bl FUN_02034E78 lsl r1, r0, #0x4 ldr r0, _02034EB8 ; =0x020F222A ldrh r0, [r0, r1] str r0, [r4, #0x0] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] ldr r0, _02034EBC ; =0x020F222C ldrh r0, [r0, r1] str r0, [r4, #0x8] ldr r0, _02034EC0 ; =0x020F222E ldrh r0, [r0, r1] str r0, [r4, #0xc] mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} .balign 4 _02034EB8: .word 0x020F222A _02034EBC: .word 0x020F222C _02034EC0: .word 0x020F222E thumb_func_start FUN_02034EC4 FUN_02034EC4: ; 0x02034EC4 push {r4, lr} add r4, r1, #0x0 bl FUN_02034E78 lsl r1, r0, #0x4 ldr r0, _02034EEC ; =0x020F2224 ldrh r0, [r0, r1] str r0, [r4, #0x0] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] ldr r0, _02034EF0 ; =0x020F2226 ldrh r0, [r0, r1] str r0, [r4, #0x8] ldr r0, _02034EF4 ; =0x020F2228 ldrh r0, [r0, r1] str r0, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} .balign 4 _02034EEC: .word 0x020F2224 _02034EF0: .word 0x020F2226 _02034EF4: .word 0x020F2228 thumb_func_start FUN_02034EF8 FUN_02034EF8: ; 0x02034EF8 ldr r3, _02034F18 ; =0x020F2224 mov r2, #0x0 _02034EFC: ldrh r1, [r3, #0x0] cmp r0, r1 bne _02034F0C ldrb r1, [r3, #0xc] cmp r1, #0x0 beq _02034F0C add r0, r2, #0x1 bx lr _02034F0C: add r2, r2, #0x1 add r3, #0x10 cmp r2, #0x14 blo _02034EFC mov r0, #0x0 bx lr .balign 4 _02034F18: .word 0x020F2224 thumb_func_start FUN_02034F1C FUN_02034F1C: ; 0x02034F1C ldr r3, _02034F3C ; =0x020F2224 mov r2, #0x0 _02034F20: ldrh r1, [r3, #0x6] cmp r0, r1 bne _02034F30 ldrb r1, [r3, #0xc] cmp r1, #0x0 beq _02034F30 add r0, r2, #0x1 bx lr _02034F30: add r2, r2, #0x1 add r3, #0x10 cmp r2, #0x14 blo _02034F20 mov r0, #0x0 bx lr .balign 4 _02034F3C: .word 0x020F2224 thumb_func_start FUN_02034F40 FUN_02034F40: ; 0x02034F40 push {r3-r6} asr r3, r1, #0x4 lsr r3, r3, #0x1b add r3, r1, r3 asr r1, r2, #0x4 lsr r1, r1, #0x1b add r1, r2, r1 mov r4, #0x0 asr r2, r1, #0x5 ldr r5, _02034F84 ; =0x020F2224 asr r3, r3, #0x5 add r1, r4, #0x0 _02034F58: ldrh r6, [r5, #0x6] cmp r0, r6 bne _02034F76 ldrh r6, [r5, #0x8] add r4, r1, #0x1 lsr r6, r6, #0x5 cmp r3, r6 bne _02034F76 ldrh r6, [r5, #0xa] lsr r6, r6, #0x5 cmp r2, r6 bne _02034F76 add r0, r4, #0x0 pop {r3-r6} bx lr _02034F76: add r1, r1, #0x1 add r5, #0x10 cmp r1, #0x14 blo _02034F58 add r0, r4, #0x0 pop {r3-r6} bx lr .balign 4 _02034F84: .word 0x020F2224 thumb_func_start FUN_02034F88 FUN_02034F88: ; 0x02034F88 push {r4, lr} ldr r3, _02034FB8 ; =0x020F2224 mov r4, #0x0 _02034F8E: ldrh r2, [r3, #0x6] cmp r1, r2 bne _02034FAE ldrb r2, [r3, #0xd] cmp r2, #0x0 beq _02034FAE ldr r0, [r0, #0xc] bl FUN_020462AC ldr r2, _02034FBC ; =0x020F2232 lsl r3, r4, #0x4 ldrh r2, [r2, r3] mov r1, #0x1 bl FUN_0205F2E4 pop {r4, pc} _02034FAE: add r4, r4, #0x1 add r3, #0x10 cmp r4, #0x14 blo _02034F8E pop {r4, pc} .balign 4 _02034FB8: .word 0x020F2224 _02034FBC: .word 0x020F2232 thumb_func_start FUN_02034FC0 FUN_02034FC0: ; 0x02034FC0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02034E78 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC ldr r2, _02034FE0 ; =0x020F2232 lsl r3, r4, #0x4 ldrh r2, [r2, r3] mov r1, #0x2 bl FUN_0205F2E4 pop {r3-r5, pc} .balign 4 _02034FE0: .word 0x020F2232 thumb_func_start FUN_02034FE4 FUN_02034FE4: ; 0x02034FE4 push {r3-r7, lr} add r7, r0, #0x0 add r0, r1, #0x0 bl FUN_02034838 add r4, r0, #0x0 cmp r4, #0x18 blt _0203505C ldr r0, [r7, #0xc] bl FUN_02023794 add r6, r0, #0x0 add r0, r6, #0x4 bl FUN_02012710 sub r5, r0, #0x1 bmi _0203500C ldr r0, _02035060 ; =0x0000016E cmp r5, r0 blt _02035010 _0203500C: bl ErrorHandling _02035010: ldr r0, [r6, #0x8] cmp r0, #0x2 bls _02035044 ldr r6, [r6, #0x4] mov r0, #0x3 tst r0, r6 bne _0203502A add r0, r6, #0x0 mov r1, #0x64 blx _u32_div_f cmp r1, #0x0 bne _02035038 _0203502A: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 blx _u32_div_f cmp r1, #0x0 bne _0203503C _02035038: mov r0, #0x1 b _0203503E _0203503C: mov r0, #0x0 _0203503E: cmp r0, #0x0 bne _02035044 add r5, r5, #0x1 _02035044: add r0, r7, #0x0 bl FUN_0204B33C cmp r0, #0x0 beq _02035050 mov r5, #0x1 _02035050: lsl r0, r5, #0x2 sub r4, #0x18 add r0, r5, r0 add r1, r4, r0 ldr r0, _02035064 ; =0x020F2364 ldrb r0, [r0, r1] _0203505C: pop {r3-r7, pc} nop _02035060: .word 0x0000016E _02035064: .word 0x020F2364 thumb_func_start FUN_02035068 FUN_02035068: ; 0x02035068 push {r3, lr} ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 cmp r0, #0x0 beq _0203507A mov r0, #0x1 pop {r3, pc} _0203507A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02035080 FUN_02035080: ; 0x02035080 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _020350A6 add r0, r5, #0x0 bl FUN_020352C4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350A6: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _020350C2 add r0, r5, #0x0 bl FUN_020352C8 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350C2: add r0, r5, #0x0 bl FUN_02060144 cmp r0, #0x1 bne _020350DA add r0, r5, #0x0 bl FUN_020352CC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350DA: add r0, r5, #0x0 bl FUN_02035270 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] _020350E6: mov r0, #0x71 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _02035106 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _02035106: ldr r1, _02035114 ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} nop _02035114: .word FUN_020352E4 thumb_func_start FUN_02035118 FUN_02035118: ; 0x02035118 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020352D4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x1 add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _0203514C ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _0203514C: ldr r1, _02035158 ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} .balign 4 _02035158: .word FUN_020352E4 thumb_func_start FUN_0203515C FUN_0203515C: ; 0x0203515C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020352DC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x0 add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _02035190 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _02035190: ldr r1, _0203519C ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} .balign 4 _0203519C: .word FUN_020352E4 thumb_func_start FUN_020351A0 FUN_020351A0: ; 0x020351A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0203524C ; =0x000005FD bl FUN_020054C8 bl FUN_02035254 add r4, r0, #0x0 mov r0, #0x71 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _020351D4 add r0, r5, #0x0 bl FUN_020352C4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _020351D4: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _020351F0 add r0, r5, #0x0 bl FUN_020352C8 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _020351F0: add r0, r5, #0x0 bl FUN_02060144 cmp r0, #0x1 bne _02035208 add r0, r5, #0x0 bl FUN_020352CC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _02035208: ldr r0, [r5, #0x6c] cmp r0, #0x3 bne _0203521C add r0, r5, #0x0 bl FUN_020352DC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _0203521C: cmp r0, #0x2 bne _02035234 add r0, r5, #0x0 bl FUN_020352D4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x1 add r0, r1, #0x4 str r2, [r4, r0] b _02035240 _02035234: add r0, r5, #0x0 bl FUN_02035270 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] _02035240: ldr r0, [r5, #0x10] ldr r1, _02035250 ; =FUN_020352E4 add r2, r4, #0x0 bl FUN_020463EC pop {r3-r5, pc} .balign 4 _0203524C: .word 0x000005FD _02035250: .word FUN_020352E4 thumb_func_start FUN_02035254 FUN_02035254: ; 0x02035254 push {r3, lr} mov r1, #0x2 mov r0, #0xb lsl r1, r1, #0x8 bl FUN_02016998 mov r2, #0x0 strh r2, [r0, #0x2a] mov r1, #0x7e strh r2, [r0, #0x28] lsl r1, r1, #0x2 str r2, [r0, r1] pop {r3, pc} .balign 4 thumb_func_start FUN_02035270 FUN_02035270: ; 0x02035270 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r4, #0x0 bl FUN_02024DA0 bl FUN_02024D64 cmp r0, #0x0 bne _02035288 mov r0, #0x1 orr r4, r0 _02035288: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F388 cmp r0, #0x0 bne _0203529A mov r0, #0x2 orr r4, r0 _0203529A: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205ECE0 cmp r0, #0x0 bne _020352AC mov r0, #0x4 orr r4, r0 _020352AC: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_020349CC cmp r0, #0x1 bne _020352BC mov r0, #0x6 orr r4, r0 _020352BC: mov r0, #0x6 lsl r0, r0, #0x6 orr r0, r4 pop {r3-r5, pc} thumb_func_start FUN_020352C4 FUN_020352C4: ; 0x020352C4 mov r0, #0x90 bx lr thumb_func_start FUN_020352C8 FUN_020352C8: ; 0x020352C8 mov r0, #0x94 bx lr thumb_func_start FUN_020352CC FUN_020352CC: ; 0x020352CC ldr r0, _020352D0 ; =0x00000195 bx lr .balign 4 _020352D0: .word 0x00000195 thumb_func_start FUN_020352D4 FUN_020352D4: ; 0x020352D4 mov r0, #0x11 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_020352DC FUN_020352DC: ; 0x020352DC ldr r0, _020352E0 ; =0x00000191 bx lr .balign 4 _020352E0: .word 0x00000191 thumb_func_start FUN_020352E4 FUN_020352E4: ; 0x020352E4 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrh r1, [r4, #0x2a] cmp r1, #0xf bhi _02035362 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02035308: ; jump table (using 16-bit offset) .short _02035328 - _02035308 - 2; case 0 .short _02035358 - _02035308 - 2; case 1 .short _02035368 - _02035308 - 2; case 2 .short _02035370 - _02035308 - 2; case 3 .short _02035378 - _02035308 - 2; case 4 .short _02035380 - _02035308 - 2; case 5 .short _02035388 - _02035308 - 2; case 6 .short _02035390 - _02035308 - 2; case 7 .short _020353C0 - _02035308 - 2; case 8 .short _020353D6 - _02035308 - 2; case 9 .short _020353F6 - _02035308 - 2; case 10 .short _02035412 - _02035308 - 2; case 11 .short _02035398 - _02035308 - 2; case 12 .short _02035440 - _02035308 - 2; case 13 .short _02035478 - _02035308 - 2; case 14 .short _02035432 - _02035308 - 2; case 15 _02035328: ldr r0, [r5, #0x34] bl FUN_02058780 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_0205CE80 mov r1, #0x7a lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02063964 add r0, r6, #0x0 bl FUN_0203549C add r0, r6, #0x0 bl FUN_02035734 mov r0, #0x1 strh r0, [r4, #0x2a] b _02035484 _02035358: add r0, r6, #0x0 bl FUN_020358E4 cmp r0, #0x0 beq _02035364 _02035362: b _02035484 _02035364: mov r0, #0x0 pop {r4-r6, pc} _02035368: add r0, r6, #0x0 bl FUN_02035CA0 b _02035484 _02035370: add r0, r6, #0x0 bl FUN_02035CDC b _02035484 _02035378: add r0, r6, #0x0 bl FUN_020365F0 b _02035484 _02035380: add r0, r6, #0x0 bl FUN_02036644 b _02035484 _02035388: add r0, r6, #0x0 bl FUN_02036E08 b _02035484 _02035390: add r0, r6, #0x0 bl FUN_02036F1C b _02035484 _02035398: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 ldr r0, [r5, #0x34] bl FUN_02058780 add r0, r6, #0x0 bl FUN_0203549C add r0, r6, #0x0 bl FUN_02035734 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0xe strh r0, [r4, #0x2a] b _02035484 _020353C0: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0x9 strh r0, [r4, #0x2a] b _02035484 _020353D6: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0203598C add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _020353F6: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 ldr r0, [r5, #0x34] bl FUN_02058780 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0xb strh r0, [r4, #0x2a] b _02035484 _02035412: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 mov r2, #0x72 lsl r2, r2, #0x2 ldr r1, [r4, r2] add r2, #0x30 ldr r2, [r4, r2] add r0, r6, #0x0 bl FUN_020463EC add r0, r4, #0x0 bl FUN_02016A18 b _02035484 _02035432: bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _02035440: add r1, r5, #0x0 bl FUN_0203598C add r0, r4, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 add r0, r4, #0x0 bl FUN_02019178 add r0, r6, #0x0 bl FUN_020358A0 ldr r0, [r5, #0x8] mov r1, #0x3 bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _02035478: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 mov r0, #0x1 strh r0, [r4, #0x2a] _02035484: ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02035496 add r0, r4, #0x0 bl FUN_02035BB0 ldr r0, [r4, #0x38] bl FUN_0201FDEC _02035496: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203549C FUN_0203549C: ; 0x0203549C push {r3-r7, lr} sub sp, #0x30 add r4, r0, #0x0 bl FUN_02046528 str r0, [sp, #0x1c] add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x30 bl FUN_0203566C str r0, [sp, #0x14] mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0xb str r0, [sp, #0x4] ldr r0, [sp, #0x14] mov r2, #0x3 lsl r1, r0, #0x1 add r0, r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _02035658 ; =0x0000023B add r1, r4, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x1c] mov r3, #0x14 ldr r0, [r0, #0x8] bl FUN_02019064 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb ldr r0, [sp, #0x1c] str r3, [sp, #0x4] ldr r0, [r0, #0x8] ldr r2, _0203565C ; =0x000003D9 mov r1, #0x3 bl FUN_0200CB00 ldr r2, _0203565C ; =0x000003D9 add r0, r4, #0x0 mov r1, #0x1 mov r3, #0xb bl FUN_0200CCA4 ldr r2, _02035660 ; =0x00000143 mov r0, #0x0 mov r1, #0x1a mov r3, #0xb bl FUN_0200A86C str r0, [sp, #0x18] ldr r0, [sp, #0x14] mov r1, #0xb bl FUN_02012838 str r0, [r4, #0x24] mov r5, #0x0 ldr r0, [sp, #0x14] strh r5, [r4, #0x28] cmp r0, #0x0 bls _020355BC _02035526: add r0, r4, r5 add r0, #0x30 ldrb r3, [r0, #0x0] cmp r3, #0x3 bne _02035594 mov r0, #0xb bl FUN_0200AA80 add r6, r0, #0x0 mov r0, #0x8 mov r1, #0xb bl FUN_020219F4 add r1, r4, r5 add r1, #0x30 ldrb r1, [r1, #0x0] add r7, r0, #0x0 ldr r0, [sp, #0x18] lsl r2, r1, #0x3 ldr r1, _02035664 ; =0x020F2ACC ldr r1, [r1, r2] bl FUN_0200A914 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0200ABC0 ldr r2, [sp, #0x20] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200B7B8 add r2, r4, r5 add r2, #0x30 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x24] add r1, r7, #0x0 bl FUN_020128A0 ldr r0, [sp, #0x20] bl FUN_02021A20 add r0, r7, #0x0 bl FUN_02021A20 add r0, r6, #0x0 bl FUN_0200AB18 b _020355A2 _02035594: ldr r2, _02035664 ; =0x020F2ACC lsl r6, r3, #0x3 ldr r0, [r4, #0x24] ldr r1, [sp, #0x18] ldr r2, [r2, r6] bl FUN_02012880 _020355A2: ldr r0, [sp, #0x1c] add r0, #0x8c ldr r1, [r0, #0x0] add r0, r4, r5 add r0, #0x30 ldrb r0, [r0, #0x0] cmp r1, r0 bne _020355B4 strh r5, [r4, #0x28] _020355B4: ldr r0, [sp, #0x14] add r5, r5, #0x1 cmp r5, r0 blo _02035526 _020355BC: ldrh r0, [r4, #0x28] add r0, r4, r0 add r0, #0x30 ldrb r1, [r0, #0x0] ldr r0, [sp, #0x1c] add r0, #0x8c str r1, [r0, #0x0] ldr r0, [sp, #0x18] bl FUN_0200A8B8 ldr r0, [r4, #0x24] mov r1, #0x1 str r0, [sp, #0x24] str r4, [sp, #0x28] add r0, sp, #0x24 strb r1, [r0, #0x8] strb r1, [r0, #0x9] ldr r1, [sp, #0x14] strb r1, [r0, #0xa] ldrb r2, [r0, #0xb] mov r1, #0xf bic r2, r1 mov r1, #0x8 orr r1, r2 strb r1, [r0, #0xb] ldrb r2, [r0, #0xb] mov r1, #0x30 bic r2, r1 mov r1, #0x10 orr r1, r2 strb r1, [r0, #0xb] ldr r1, [sp, #0x14] ldrb r2, [r0, #0xb] cmp r1, #0x4 blo _0203560E mov r1, #0xc0 bic r2, r1 mov r1, #0x40 orr r1, r2 strb r1, [r0, #0xb] b _02035614 _0203560E: mov r1, #0xc0 bic r2, r1 strb r2, [r0, #0xb] _02035614: mov r0, #0xb str r0, [sp, #0x0] ldr r0, _02035668 ; =0x00000402 mov r1, #0x1c str r0, [sp, #0x4] ldrh r3, [r4, #0x28] add r0, sp, #0x24 mov r2, #0x4 lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02001B8C str r0, [r4, #0x20] add r0, r4, #0x0 bl FUN_02019220 ldr r0, [sp, #0x1c] ldr r0, [r0, #0xc] bl FUN_020238F4 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r4, #0x30 lsl r3, r3, #0x18 ldr r2, [sp, #0x14] add r1, r4, #0x0 lsr r3, r3, #0x18 bl FUN_020359B8 add sp, #0x30 pop {r3-r7, pc} nop _02035658: .word 0x0000023B _0203565C: .word 0x000003D9 _02035660: .word 0x00000143 _02035664: .word 0x020F2ACC _02035668: .word 0x00000402 thumb_func_start FUN_0203566C FUN_0203566C: ; 0x0203566C push {r3-r4} mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] sub r3, #0xc0 mov r2, #0x0 tst r3, r4 bne _02035682 mov r3, #0x8 strb r3, [r1, #0x0] add r2, r2, #0x1 _02035682: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x80 tst r3, r4 bne _02035694 mov r3, #0x7 strb r3, [r1, r2] add r2, r2, #0x1 _02035694: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x1 tst r3, r4 bne _020356A6 mov r3, #0x0 strb r3, [r1, r2] add r2, r2, #0x1 _020356A6: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x2 tst r3, r4 bne _020356B8 mov r3, #0x1 strb r3, [r1, r2] add r2, r2, #0x1 _020356B8: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x4 tst r3, r4 bne _020356CA mov r3, #0x2 strb r3, [r1, r2] add r2, r2, #0x1 _020356CA: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x8 tst r3, r4 bne _020356DC mov r3, #0x3 strb r3, [r1, r2] add r2, r2, #0x1 _020356DC: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x10 tst r3, r4 bne _020356EE mov r3, #0x4 strb r3, [r1, r2] add r2, r2, #0x1 _020356EE: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x20 tst r3, r4 bne _02035700 mov r3, #0x5 strb r3, [r1, r2] add r2, r2, #0x1 _02035700: mov r3, #0x7 lsl r3, r3, #0x6 ldr r3, [r0, r3] mov r0, #0x40 tst r0, r3 bne _02035712 mov r0, #0x6 strb r0, [r1, r2] add r2, r2, #0x1 _02035712: add r0, r2, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02035718 FUN_02035718: ; 0x02035718 push {r4, lr} add r4, r0, #0x0 bl FUN_02035B78 ldr r0, [r4, #0x20] mov r1, #0x0 bl FUN_02001C5C ldr r0, [r4, #0x24] bl FUN_02012870 mov r0, #0x0 str r0, [r4, #0x20] pop {r4, pc} thumb_func_start FUN_02035734 FUN_02035734: ; 0x02035734 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _0203575A mov r6, #0x0 b _0203576C _0203575A: ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 beq _0203576A b _0203588E _0203576A: mov r6, #0x1 _0203576C: mov r3, #0x1 str r3, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _02035894 ; =0x0000032D add r1, r5, #0x0 str r0, [sp, #0x10] ldr r0, [r4, #0x8] add r1, #0x10 mov r2, #0x3 bl FUN_02019064 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb str r3, [sp, #0x4] ldr r0, [r4, #0x8] ldr r2, _02035898 ; =0x000003D9 mov r1, #0x3 bl FUN_0200CB00 add r0, r5, #0x0 ldr r2, _02035898 ; =0x000003D9 add r0, #0x10 mov r1, #0x1 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0x0 add r0, #0x10 mov r1, #0xf bl FUN_02019620 ldr r2, _0203589C ; =0x00000143 mov r0, #0x0 mov r1, #0x1a mov r3, #0xb bl FUN_0200A86C str r0, [sp, #0x1c] cmp r6, #0x0 bne _020357D0 mov r1, #0x9 bl FUN_0200A914 b _020357D6 _020357D0: mov r1, #0xa bl FUN_0200A914 _020357D6: mov r1, #0x0 add r7, r0, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x10 add r2, r7, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r7, #0x0 bl FUN_02021A20 mov r0, #0xb bl FUN_0200AA80 add r7, r0, #0x0 mov r0, #0x20 mov r1, #0xb bl FUN_020219F4 str r0, [sp, #0x18] ldr r0, [sp, #0x1c] mov r1, #0xb bl FUN_0200A914 str r0, [sp, #0x14] cmp r6, #0x0 bne _02035834 ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E24 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r2, #0x0] add r0, r7, #0x0 mov r3, #0x2 bl FUN_0200AD38 b _0203584C _02035834: add r0, r4, #0x0 bl FUN_0204BAB0 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r7, #0x0 mov r3, #0x2 bl FUN_0200AD38 _0203584C: ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r7, #0x0 bl FUN_0200B7B8 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r1, #0x0 add r0, r5, #0x0 ldr r2, [sp, #0x18] add r0, #0x10 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 ldr r0, [sp, #0x18] bl FUN_02021A20 ldr r0, [sp, #0x14] bl FUN_02021A20 add r0, r7, #0x0 bl FUN_0200AB18 ldr r0, [sp, #0x1c] bl FUN_0200A8B8 add r5, #0x10 add r0, r5, #0x0 bl FUN_02019220 _0203588E: add sp, #0x20 pop {r3-r7, pc} nop _02035894: .word 0x0000032D _02035898: .word 0x000003D9 _0203589C: .word 0x00000143 thumb_func_start FUN_020358A0 FUN_020358A0: ; 0x020358A0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x0 bne _020358CE ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x0 beq _020358E0 _020358CE: add r0, r5, #0x0 add r0, #0x10 mov r1, #0x1 bl FUN_0200CCF8 add r5, #0x10 add r0, r5, #0x0 bl FUN_02019178 _020358E0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020358E4 FUN_020358E4: ; 0x020358E4 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x20] bl FUN_02001E5C add r6, r0, #0x0 mov r1, #0x5e ldr r0, [r5, #0x20] lsl r1, r1, #0x4 bl FUN_02001D2C str r0, [r5, #0x2c] ldr r0, [r5, #0x20] bl FUN_02001E5C strh r0, [r5, #0x28] ldrh r1, [r5, #0x28] cmp r6, r1 beq _0203593A mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_02035BE8 ldrh r2, [r5, #0x28] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02035C44 ldrh r0, [r5, #0x28] add r4, #0x8c add r0, r5, r0 add r0, #0x30 ldrb r0, [r0, #0x0] str r0, [r4, #0x0] _0203593A: ldrh r0, [r5, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] ldr r0, [r0, #0x0] bl FUN_02035C78 mov r1, #0x1 ldr r2, [r5, #0x2c] mvn r1, r1 cmp r2, r1 beq _02035960 add r0, r1, #0x1 cmp r2, r0 beq _02035982 b _02035966 _02035960: mov r0, #0xd strh r0, [r5, #0x2a] b _02035982 _02035966: ldr r0, _02035988 ; =0x020F2AD0 lsl r2, r2, #0x3 ldr r2, [r0, r2] cmp r2, r1 bne _02035976 mov r0, #0xd strh r0, [r5, #0x2a] b _02035982 _02035976: add r0, r1, #0x1 cmp r2, r0 beq _02035982 add r0, r7, #0x0 blx r2 pop {r3-r7, pc} _02035982: mov r0, #0x1 pop {r3-r7, pc} nop _02035988: .word 0x020F2AD0 thumb_func_start FUN_0203598C FUN_0203598C: ; 0x0203598C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202EDF8 cmp r0, #0x0 beq _020359B4 mov r0, #0x71 lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x0 beq _020359B4 ldr r0, [r4, #0x7c] bl FUN_02052F74 bl FUN_02031B50 mov r0, #0x0 bl FUN_02052B74 _020359B4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020359B8 FUN_020359B8: ; 0x020359B8 push {r4-r7, lr} sub sp, #0xb4 ldr r4, _02035B60 ; =0x020F2AB4 str r3, [sp, #0x18] add r3, sp, #0x9c str r2, [sp, #0x14] str r0, [sp, #0xc] str r1, [sp, #0x10] add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [sp, #0xc] add r1, r2, #0x0 add r0, #0x38 mov r2, #0x8 mov r3, #0xb bl FUN_021D959C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x8] ldr r0, [sp, #0xc] mov r2, #0x5 add r0, #0x38 mov r3, #0x0 bl FUN_021D967C ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x1 add r0, #0x38 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _02035B64 ; =0x000034D8 mov r2, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r1, #0x42 add r0, #0x38 add r3, r2, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x4] ldr r0, [sp, #0xc] mov r2, #0x2 add r0, #0x38 mov r3, #0x0 bl FUN_021D971C ldr r0, [sp, #0xc] ldr r1, _02035B68 ; =0x020F2B14 add r0, #0x38 bl FUN_021D9820 mov r2, #0x67 ldr r1, [sp, #0xc] lsl r2, r2, #0x2 str r0, [r1, r2] add r0, r1, #0x0 ldr r0, [r0, r2] ldrh r1, [r1, #0x28] ldr r0, [r0, #0x0] bl FUN_02035BE8 ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x4 add r0, #0x38 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x3 add r0, #0x38 mov r3, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x4] ldr r0, [sp, #0xc] mov r2, #0x6 add r0, #0x38 mov r3, #0x0 bl FUN_021D971C ldr r0, [sp, #0x14] mov r4, #0x0 cmp r0, #0x0 bls _02035B2C ldr r5, [sp, #0xc] ldr r3, _02035B70 ; =0x020F2B48 add r7, r4, #0x0 add r2, sp, #0x28 mov r6, #0x6 _02035AA2: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r6, r6, #0x1 bne _02035AA2 ldr r0, [r3, #0x0] ldr r3, _02035B74 ; =0x020F2AA8 str r0, [r2, #0x0] ldmia r3!, {r0-r1} add r2, sp, #0x1c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _02035ABA: add r6, sp, #0x28 add r3, sp, #0x68 mov r2, #0x6 _02035AC0: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02035AC0 ldr r0, [r6, #0x0] add r1, sp, #0x68 str r0, [r3, #0x0] mov r0, #0x2 ldrsh r0, [r1, r0] add r0, r0, r7 strh r0, [r1, #0x2] ldr r0, [sp, #0x10] ldrb r2, [r0, r4] cmp r2, #0x2 bne _02035AEA ldr r0, [sp, #0x18] cmp r0, #0x1 bne _02035AEA mov r0, #0x1b strh r0, [r1, #0x6] b _02035AF2 _02035AEA: lsl r0, r2, #0x1 add r1, r2, r0 add r0, sp, #0x68 strh r1, [r0, #0x6] _02035AF2: ldr r0, [sp, #0xc] add r1, sp, #0x68 add r0, #0x38 bl FUN_021D9820 mov r1, #0x1a lsl r1, r1, #0x4 add r2, sp, #0x5c add r3, sp, #0x1c str r0, [r5, r1] ldmia r3!, {r0-r1} add r6, r2, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r6, #0x0 str r0, [r2, #0x0] mov r0, #0x1a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r2, #0x1 ldr r0, [r0, #0x0] bl FUN_02020074 ldr r0, [sp, #0x14] add r4, r4, #0x1 add r7, #0x18 add r5, r5, #0x4 cmp r4, r0 blo _02035ABA _02035B2C: ldr r0, [sp, #0xc] mov r2, #0x1 ldrh r0, [r0, #0x28] add r0, r0, #0x1 lsl r1, r0, #0x2 ldr r0, [sp, #0xc] add r1, r0, r1 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x2 ldr r0, [r0, #0x0] bl FUN_02035C18 ldr r0, [sp, #0x14] mov r1, #0x6f add r2, r0, #0x1 ldr r0, [sp, #0xc] lsl r1, r1, #0x2 str r2, [r0, r1] mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 add sp, #0xb4 pop {r4-r7, pc} .balign 4 _02035B60: .word 0x020F2AB4 _02035B64: .word 0x000034D8 _02035B68: .word 0x020F2B14 _02035B6C: .word 0x000034D9 _02035B70: .word 0x020F2B48 _02035B74: .word 0x020F2AA8 thumb_func_start FUN_02035B78 FUN_02035B78: ; 0x02035B78 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x6f lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r4, #0x0 cmp r0, #0x0 bls _02035BA6 mov r7, #0x67 lsl r7, r7, #0x2 add r6, r7, #0x0 add r6, #0x20 _02035B90: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r7] bl FUN_0200C3DC add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [r5, r6] cmp r4, r0 blo _02035B90 _02035BA6: add r5, #0x38 add r0, r5, #0x0 bl FUN_021D99F8 pop {r3-r7, pc} thumb_func_start FUN_02035BB0 FUN_02035BB0: ; 0x02035BB0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x6f lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r4, #0x0 cmp r0, #0x0 bls _02035BE4 mov r7, #0x67 lsl r7, r7, #0x2 add r6, r7, #0x0 add r6, #0x20 _02035BC8: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r7] mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xc bl FUN_020201E4 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [r5, r6] cmp r4, r0 blo _02035BC8 _02035BE4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02035BE8 FUN_02035BE8: ; 0x02035BE8 push {r3-r6, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202011C add r6, r0, #0x0 add r3, sp, #0x0 ldmia r6!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] mov r0, #0x18 mul r0, r4 add r0, #0x14 lsl r0, r0, #0xc str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_02035C18 FUN_02035C18: ; 0x02035C18 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020201DC mov r1, #0x3 blx _u32_div_f add r2, r0, #0x0 lsl r1, r2, #0x1 add r1, r2, r1 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02020130 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202027C pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02035C44 FUN_02035C44: ; 0x02035C44 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x0 add r4, r2, #0x0 ldr r0, [r0, #0x0] add r2, r1, #0x0 bl FUN_02035C18 add r0, r4, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x1 ldr r0, [r0, #0x0] add r2, r1, #0x0 bl FUN_02035C18 pop {r3-r5, pc} thumb_func_start FUN_02035C78 FUN_02035C78: ; 0x02035C78 push {r4, lr} add r4, r0, #0x0 bl FUN_020201DC mov r1, #0x3 blx _u32_div_f cmp r1, #0x1 bne _02035C9E add r0, r4, #0x0 bl FUN_02020388 cmp r0, #0x0 bne _02035C9E add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x1 bl FUN_02035C18 _02035C9E: pop {r4, pc} thumb_func_start FUN_02035CA0 FUN_02035CA0: ; 0x02035CA0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0200E308 cmp r0, #0x0 beq _02035CD8 add r0, r5, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 mov r1, #0x72 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 blx r1 mov r0, #0x3 strh r0, [r4, #0x2a] _02035CD8: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02035CDC FUN_02035CDC: ; 0x02035CDC push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02035D02 mov r1, #0x72 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 blx r1 _02035D02: pop {r4-r6, pc} thumb_func_start FUN_02035D04 FUN_02035D04: ; 0x02035D04 mov r2, #0x72 lsl r2, r2, #0x2 str r1, [r0, r2] mov r1, #0x3 strh r1, [r0, #0x2a] bx lr thumb_func_start FUN_02035D10 FUN_02035D10: ; 0x02035D10 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02035D30 ; =FUN_02035D34 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02035D30: .word FUN_02035D34 thumb_func_start FUN_02035D34 FUN_02035D34: ; 0x02035D34 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0xb mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_020238F4 str r0, [sp, #0x4] ldr r0, [r5, #0xc] bl FUN_020462AC add r7, r0, #0x0 ldr r0, [sp, #0x0] str r0, [r4, #0x0] ldr r0, [sp, #0x4] str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0204B2A4 str r0, [r4, #0x8] add r0, r7, #0x0 mov r1, #0x0 bl FUN_0205F524 str r0, [r4, #0xc] add r0, r7, #0x0 mov r1, #0x1 bl FUN_0205F524 str r0, [r4, #0x10] add r0, r7, #0x0 mov r1, #0x2 bl FUN_0205F524 str r0, [r4, #0x14] add r0, r7, #0x0 mov r1, #0x3 bl FUN_0205F524 str r0, [r4, #0x18] add r0, r5, #0x0 add r0, #0xb0 ldr r0, [r0, #0x0] add r1, r4, #0x0 str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02038690 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] ldr r1, _02035DC4 ; =FUN_02035DC8 sub r0, #0x30 str r1, [r6, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02035DC4: .word FUN_02035DC8 thumb_func_start FUN_02035DC8 FUN_02035DC8: ; 0x02035DC8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x7e lsl r0, r0, #0x2 ldr r1, [r4, r0] cmp r1, #0x0 beq _02035DF0 mov r0, #0xb bl FUN_02016A8C _02035DF0: mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02035DF8 FUN_02035DF8: ; 0x02035DF8 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02035E18 ; =FUN_02035E1C lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02035E18: .word FUN_02035E1C thumb_func_start FUN_02035E1C FUN_02035E1C: ; 0x02035E1C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7a add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 mov r2, #0x0 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _02035E4C ; =FUN_02035E50 sub r1, #0x30 str r0, [r4, r1] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02035E4C: .word FUN_02035E50 thumb_func_start FUN_02035E50 FUN_02035E50: ; 0x02035E50 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x40 add r6, r0, #0x0 blx memcpy mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r6, #0x0 add r0, #0x23 ldrb r0, [r0, #0x0] cmp r0, #0x17 bls _02035E90 b _020361E6 _02035E90: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02035E9C: ; jump table (using 16-bit offset) .short _020361E6 - _02035E9C - 2; case 0 .short _02035ECC - _02035E9C - 2; case 1 .short _020361E6 - _02035E9C - 2; case 2 .short _020360EA - _02035E9C - 2; case 3 .short _02035F4A - _02035E9C - 2; case 4 .short _02035FD0 - _02035E9C - 2; case 5 .short _02036056 - _02035E9C - 2; case 6 .short _020360AC - _02035E9C - 2; case 7 .short _02036144 - _02035E9C - 2; case 8 .short _02036170 - _02035E9C - 2; case 9 .short _020361CA - _02035E9C - 2; case 10 .short _020361A4 - _02035E9C - 2; case 11 .short _020361A4 - _02035E9C - 2; case 12 .short _020361A4 - _02035E9C - 2; case 13 .short _020361A4 - _02035E9C - 2; case 14 .short _020361A4 - _02035E9C - 2; case 15 .short _020361A4 - _02035E9C - 2; case 16 .short _020361A4 - _02035E9C - 2; case 17 .short _020361A4 - _02035E9C - 2; case 18 .short _020361A4 - _02035E9C - 2; case 19 .short _020361A4 - _02035E9C - 2; case 20 .short _020361A4 - _02035E9C - 2; case 21 .short _020361A4 - _02035E9C - 2; case 22 .short _020361A4 - _02035E9C - 2; case 23 _02035ECC: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r0, #0x1 strb r0, [r7, #0x11] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] ldr r0, [r7, #0x0] bl FUN_0206B9AC strb r0, [r7, #0x13] mov r0, #0x0 strh r0, [r7, #0x18] strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0202A918 str r0, [r7, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _0203626C ; =0x020F2A9C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0x7e lsl r0, r0, #0x2 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02035F4A: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 strb r1, [r7, #0x11] add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] strb r1, [r7, #0x13] ldrh r0, [r6, #0x26] strh r0, [r7, #0x18] mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _02036274 ; =0x020F2A8C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0xb mov r1, #0x4 bl FUN_02016998 ldrh r1, [r6, #0x24] strh r1, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] sub r0, r1, #0x4 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02035FD0: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 strb r1, [r7, #0x11] add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] strb r1, [r7, #0x13] ldrh r0, [r6, #0x26] strh r0, [r7, #0x18] mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _02036274 ; =0x020F2A8C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0xb mov r1, #0x4 bl FUN_02016998 mov r1, #0x0 strh r1, [r0, #0x0] ldr r1, [r6, #0x34] strh r1, [r0, #0x2] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] sub r0, r1, #0x4 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036056: ldrh r0, [r6, #0x24] bl FUN_0206EAB8 add r3, r0, #0x0 mov r0, #0xb add r2, r6, #0x0 str r0, [sp, #0x0] add r2, #0x22 ldrb r2, [r2, #0x0] add r0, r5, #0x0 mov r1, #0x2 bl FUN_02037F2C mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r6, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xa ldrh r0, [r6, #0x24] bne _02036090 add r2, r6, #0x0 add r2, #0x22 ldrb r2, [r2, #0x0] mov r1, #0x0 bl FUN_02036BC4 b _0203609C _02036090: add r2, r6, #0x0 add r2, #0x22 ldrb r2, [r2, #0x0] mov r1, #0x1 bl FUN_02036BC4 _0203609C: mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036278 ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020360AC: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0xb bl FUN_02037F90 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r2, r6, #0x0 add r2, #0x22 ldrh r0, [r6, #0x24] ldrb r2, [r2, #0x0] mov r1, #0x2 bl FUN_02036BC4 mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036278 ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020360EA: mov r0, #0xb mov r1, #0x4 bl FUN_02016998 add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] str r1, [r0, #0x0] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r5, #0xc] bl FUN_0206F158 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 ldr r1, _0203627C ; =0x020F2A90 add r0, r7, #0x0 mov r2, #0xb bl FUN_0206EFEC mov r1, #0x7e lsl r1, r1, #0x2 add r3, r5, #0x0 str r0, [r4, r1] add r3, #0x94 ldr r0, [r4, r1] ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] mov r2, #0x1 bl FUN_0206E314 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_0203781C ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036144: mov r0, #0xb mov r1, #0xc bl FUN_02016998 ldrh r1, [r6, #0x24] strh r1, [r0, #0x2] mov r1, #0x3 strb r1, [r0, #0x1] add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] strb r1, [r0, #0x0] ldrh r1, [r6, #0x38] strh r1, [r0, #0x4] ldr r1, [r6, #0x3c] str r1, [r0, #0x8] mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x6 strh r0, [r4, #0x2a] b _0203625E _02036170: mov r0, #0xb mov r1, #0xc bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034A04 strh r0, [r7, #0x2] mov r0, #0x0 strb r0, [r7, #0x1] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x0] ldrh r0, [r6, #0x38] strh r0, [r7, #0x4] ldr r0, [r6, #0x3c] str r0, [r7, #0x8] mov r0, #0x7e lsl r0, r0, #0x2 str r7, [r4, r0] mov r0, #0x6 strh r0, [r4, #0x2a] b _0203625E _020361A4: sub r0, #0xb add r1, sp, #0x4 strh r0, [r1, #0x6] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strh r0, [r1, #0x4] str r7, [sp, #0x4] ldrh r1, [r1, #0x6] mov r0, #0x0 bl FUN_02063948 mov r1, #0x7a lsl r1, r1, #0x2 add r2, r0, #0x0 add r0, sp, #0x4 add r1, r4, r1 blx r2 b _0203625E _020361CA: mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020361E6: add r0, r6, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x5 beq _02036200 cmp r0, #0x6 beq _02036200 cmp r0, #0x7 beq _02036200 cmp r0, #0x10 beq _02036200 cmp r0, #0x8 bne _02036234 _02036200: mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r2, #0x7e lsl r2, r2, #0x2 str r0, [r4, r2] add r0, r6, #0x0 add r0, #0x22 ldrb r1, [r0, #0x0] ldr r0, [r4, r2] cmp r1, #0x6 blo _02036226 mov r1, #0x0 bl FUN_0206E358 b _0203622A _02036226: bl FUN_0206E358 _0203622A: ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036234: cmp r0, #0x9 bne _02036254 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036254: add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] _0203625E: add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} nop _0203626C: .word 0x020F2A9C _02036270: .word FUN_0203684C _02036274: .word 0x020F2A8C _02036278: .word FUN_02036BDC _0203627C: .word 0x020F2A90 _02036280: .word FUN_020362E4 thumb_func_start FUN_02036284 FUN_02036284: ; 0x02036284 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _020362A4 ; =FUN_020362A8 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _020362A4: .word FUN_020362A8 thumb_func_start FUN_020362A8 FUN_020362A8: ; 0x020362A8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0x0 bl FUN_0206E358 mov r0, #0x72 ldr r1, _020362E0 ; =FUN_020362E4 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020362E0: .word FUN_020362E4 thumb_func_start FUN_020362E4 FUN_020362E4: ; 0x020362E4 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb bl FUN_0206E2F0 str r0, [sp, #0x8] bl FUN_0206E308 mov r1, #0x7e lsl r1, r1, #0x2 add r2, r0, #0x0 ldr r0, [sp, #0x8] ldr r1, [r4, r1] blx memcpy mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, [sp, #0x8] bl FUN_0206E384 cmp r0, #0x5 bls _02036328 b _020364EE _02036328: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02036334: ; jump table (using 16-bit offset) .short _02036340 - _02036334 - 2; case 0 .short _0203637A - _02036334 - 2; case 1 .short _0203638A - _02036334 - 2; case 2 .short _020364EE - _02036334 - 2; case 3 .short _020363F6 - _02036334 - 2; case 4 .short _020364EE - _02036334 - 2; case 5 _02036340: ldr r0, [sp, #0x8] bl FUN_0206E37C add r1, sp, #0x10 strh r0, [r1, #0x4] ldr r0, [sp, #0x8] bl FUN_0206E38C add r1, sp, #0x10 strb r0, [r1, #0x6] str r5, [sp, #0x10] ldrh r0, [r1, #0x4] mov r1, #0x6 mov r2, #0xb bl FUN_0206E7B8 add r1, r0, #0x0 lsl r1, r1, #0x10 mov r0, #0x0 lsr r1, r1, #0x10 bl FUN_0205CE48 mov r1, #0x73 lsl r1, r1, #0x2 add r2, r0, #0x0 add r0, sp, #0x10 add r1, r4, r1 blx r2 b _020364F8 _0203637A: ldr r0, [sp, #0x8] bl FUN_0206E37C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0203695C b _020364F8 _0203638A: mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r5, r0, #0x0 blx Call_FillMemWithValue ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 str r0, [r5, #0x18] add r0, r5, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x9 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C strh r0, [r5, #0x24] ldr r1, _02036504 ; =0x020F96DC add r0, r6, #0x0 add r2, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036508 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _020363F6: ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [sp, #0x4] mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r7, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C add r5, r0, #0x0 ldr r0, [sp, #0x4] add r1, r7, #0x0 bl FUN_0206B9B0 str r0, [sp, #0xc] mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0206EA98 cmp r0, #0x1 bne _02036474 ldr r0, [sp, #0xc] mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02036474 add r0, r5, #0x0 bl FUN_0206EAB8 add r3, r0, #0x0 mov r0, #0xb lsl r2, r7, #0x18 str r0, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x2 lsr r2, r2, #0x18 bl FUN_02037F2C mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] lsl r2, r7, #0x18 add r0, r5, #0x0 mov r1, #0x0 lsr r2, r2, #0x18 bl FUN_02036BC4 mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _0203650C ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _02036474: mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r5, r0, #0x0 blx Call_FillMemWithValue ldr r0, [sp, #0x4] str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 str r0, [r5, #0x18] add r0, r5, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C strh r0, [r5, #0x24] add r0, r5, #0x0 add r0, #0x22 strb r7, [r0, #0x0] str r6, [r5, #0x1c] ldrh r0, [r5, #0x24] cmp r0, #0x0 bne _020364CC mov r1, #0x0 b _020364CE _020364CC: mov r1, #0xa _020364CE: add r0, r5, #0x0 add r0, #0x20 strb r1, [r0, #0x0] ldr r1, _02036504 ; =0x020F96DC add r0, r6, #0x0 add r2, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036508 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _020364EE: add r0, r6, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] _020364F8: ldr r0, [sp, #0x8] bl FUN_02016A18 mov r0, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _02036504: .word 0x020F96DC _02036508: .word FUN_02035E50 _0203650C: .word FUN_02036BDC thumb_func_start FUN_02036510 FUN_02036510: ; 0x02036510 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02036530 ; =FUN_02036534 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02036530: .word FUN_02036534 thumb_func_start FUN_02036534 FUN_02036534: ; 0x02036534 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb bl FUN_02065054 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] str r5, [sp, #0x0] ldr r0, [r4, r1] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x1 add r1, r0, #0x0 mov r3, #0xff bl FUN_02064E90 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02038680 mov r0, #0x72 ldr r1, _02036580 ; =FUN_02036584 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02036580: .word FUN_02036584 thumb_func_start FUN_02036584 FUN_02036584: ; 0x02036584 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7e add r4, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02065314 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02065070 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020365BC FUN_020365BC: ; 0x020365BC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 mov r0, #0x4 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020365F0 FUN_020365F0: ; 0x020365F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldr r0, [r0, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _02036618 mov r2, #0x0 ldr r1, _0203663C ; =0x000007F2 add r0, r5, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _02036636 _02036618: mov r0, #0x20 mov r1, #0x8 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r3, [r4, r1] mov r2, #0x0 strh r2, [r3, #0x4] ldr r1, _02036640 ; =0x000007D5 add r0, r5, #0x0 add r3, r3, #0x4 bl FUN_02038CD8 _02036636: mov r0, #0x5 strh r0, [r4, #0x2a] pop {r3-r5, pc} .balign 4 _0203663C: .word 0x000007F2 _02036640: .word 0x000007D5 thumb_func_start FUN_02036644 FUN_02036644: ; 0x02036644 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] ldr r0, [r6, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _0203666C mov r0, #0x0 strh r0, [r4, #0x2a] pop {r4-r6, pc} _0203666C: ldrh r0, [r5, #0x4] cmp r0, #0x0 bne _02036676 mov r0, #0x0 b _02036678 _02036676: mov r0, #0xf _02036678: strh r0, [r4, #0x2a] add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02036684 FUN_02036684: ; 0x02036684 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _020366A4 ; =FUN_020366A8 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _020366A4: .word FUN_020366A8 thumb_func_start FUN_020366A8 FUN_020366A8: ; 0x020366A8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EF8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _020366D0 ; =FUN_020366D4 sub r1, #0x30 str r0, [r4, r1] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020366D0: .word FUN_020366D4 thumb_func_start FUN_020366D4 FUN_020366D4: ; 0x020366D4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02036700 FUN_02036700: ; 0x02036700 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02036720 ; =FUN_02036724 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02036720: .word FUN_02036724 thumb_func_start FUN_02036724 FUN_02036724: ; 0x02036724 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r2, [r5, #0xc] mov r0, #0x2 mov r1, #0x0 mov r3, #0xb bl FUN_02085338 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r0, sp, #0x0 mov r1, #0x4 bl FUN_0201373C mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, sp, #0x0 bl FUN_020853BC mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02037E80 mov r0, #0x72 ldr r1, _02036778 ; =FUN_0203677C lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02036778: .word FUN_0203677C thumb_func_start FUN_0203677C FUN_0203677C: ; 0x0203677C push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020853E4 cmp r0, #0x0 bne _020367C6 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, sp, #0x0 bl FUN_020853FC bl FUN_0202EDF8 cmp r0, #0x0 beq _020367C0 add r0, sp, #0x0 bl FUN_02052DE8 ldr r0, [r4, #0x78] add r1, sp, #0x0 bl FUN_02052CD8 _020367C0: mov r0, #0x8 strh r0, [r5, #0x2a] b _020367CA _020367C6: mov r0, #0xc strh r0, [r5, #0x2a] _020367CA: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020853A8 add r0, r4, #0x0 bl FUN_0204649C ldr r0, [r4, #0x7c] bl FUN_02052F74 mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020367E8 FUN_020367E8: ; 0x020367E8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 ldr r0, [r6, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _02036834 ldr r1, _02036848 ; =0x00002275 add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 b _0203683E _02036834: add r0, r5, #0x0 mov r1, #0x4 mov r2, #0x0 bl FUN_02038D10 _0203683E: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} .balign 4 _02036848: .word 0x00002275 thumb_func_start FUN_0203684C FUN_0203684C: ; 0x0203684C push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb mov r1, #0x30 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x30 add r7, r0, #0x0 blx memcpy mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldrb r0, [r7, #0x12] cmp r0, #0x2 bne _0203692E mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x7f lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x40 str r1, [sp, #0x0] mov r1, #0x0 add r5, r0, #0x0 blx Call_FillMemWithValue ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 add r1, r5, #0x0 str r0, [r5, #0x18] mov r0, #0x0 add r1, #0x21 strb r0, [r1, #0x0] ldr r1, [sp, #0x0] str r6, [r5, #0x1c] ldrh r1, [r1, #0x0] cmp r1, #0x0 beq _020368E2 add r1, r5, #0x0 mov r2, #0x7 add r1, #0x20 strb r2, [r1, #0x0] b _020368EE _020368E2: add r0, r5, #0x0 mov r1, #0x8 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [sp, #0x0] ldrh r0, [r0, #0x2] _020368EE: str r0, [r5, #0x34] ldr r0, [sp, #0x0] add r2, r5, #0x0 ldrh r0, [r0, #0x0] strh r0, [r5, #0x24] add r0, r5, #0x0 ldrb r1, [r7, #0x14] add r0, #0x22 strb r1, [r0, #0x0] ldrh r0, [r7, #0x18] strh r0, [r5, #0x26] add r0, r5, #0x0 ldrb r1, [r7, #0x16] add r0, #0x28 strb r1, [r0, #0x0] ldr r1, _02036954 ; =0x020F96DC add r0, r6, #0x0 bl FUN_020373D4 mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036958 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _0203694A _0203692E: mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r7, #0x14] add r0, r6, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036958 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 _0203694A: add r0, r7, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02036954: .word 0x020F96DC _02036958: .word FUN_02035E50 thumb_func_start FUN_0203695C FUN_0203695C: ; 0x0203695C push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02046528 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0xb bl FUN_020851B8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206F158 str r0, [sp, #0x0] mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r4, #0x0 mov r2, #0x1 bl FUN_020851DC mov r5, #0x0 add r4, r5, #0x0 _0203699A: add r0, r4, #0x0 bl FUN_0206EB1C add r7, r0, #0x0 ldr r0, [sp, #0x0] add r1, r7, #0x0 mov r2, #0x1 mov r3, #0xb bl FUN_0206EE50 cmp r0, #0x1 bne _020369C6 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r7, #0x0 mov r2, #0x0 bl FUN_020851DC add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 _020369C6: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x40 blo _0203699A ldr r0, [sp, #0x4] add r3, sp, #0x8 add r0, #0x94 ldr r0, [r0, #0x0] mov r1, #0x4 add r2, sp, #0x8 add r3, #0x1 bl FUN_0206F17C mov r0, #0x7e add r2, sp, #0x8 lsl r0, r0, #0x2 ldrb r1, [r2, #0x1] add r3, r5, #0x3 lsl r3, r3, #0x18 ldrb r2, [r2, #0x0] ldr r0, [r6, r0] lsr r3, r3, #0x18 bl FUN_020851F8 mov r1, #0x7e lsl r1, r1, #0x2 ldr r0, [sp, #0x4] ldr r1, [r6, r1] bl FUN_0203791C ldr r1, _02036A10 ; =FUN_02036A14 add r0, r6, #0x0 bl FUN_02035D04 add sp, #0xc pop {r4-r7, pc} .balign 4 _02036A10: .word FUN_02036A14 thumb_func_start FUN_02036A14 FUN_02036A14: ; 0x02036A14 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x1 add r2, sp, #0x0 bl FUN_0208524C add r0, r5, #0x0 add r3, sp, #0x0 add r0, #0x94 ldrb r2, [r3, #0x0] ldrb r3, [r3, #0x1] ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_0206F190 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036A74 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} nop _02036A74: .word FUN_020362E4 thumb_func_start FUN_02036A78 FUN_02036A78: ; 0x02036A78 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7e add r4, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036AB4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036AB4: .word FUN_020362E4 thumb_func_start FUN_02036AB8 FUN_02036AB8: ; 0x02036AB8 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7f lsl r0, r0, #0x2 ldr r1, [r4, r0] mov r0, #0xb ldr r7, [r1, #0x0] bl FUN_02016A8C mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02036B0E mov r0, #0xb add r1, r5, #0x0 bl FUN_02016A8C mov r1, #0x7a lsl r1, r1, #0x2 lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r4, r1 lsr r2, r2, #0x18 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036B88 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036B82 _02036B0E: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r2, r0, #0x0 ldr r0, [r5, #0x14] add r1, r6, #0x0 lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x0] ldr r0, [r5, #0x18] lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x4] ldr r3, [r5, #0x1c] mov r0, #0xb lsl r3, r3, #0x10 lsr r3, r3, #0x10 bl FUN_02063888 ldr r1, [r5, #0x1c] add r7, r0, #0x0 lsl r1, r1, #0x10 mov r0, #0x1 lsr r1, r1, #0x10 mov r2, #0xb bl FUN_0202914C add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] mov r2, #0x1 bl FUN_02028AD4 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _02036B8C ; =FUN_020638BC lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r7, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] _02036B82: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02036B88: .word FUN_02035E50 _02036B8C: .word FUN_020638BC thumb_func_start FUN_02036B90 FUN_02036B90: ; 0x02036B90 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036BC0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036BC0: .word FUN_020362E4 thumb_func_start FUN_02036BC4 FUN_02036BC4: ; 0x02036BC4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x4 add r6, r2, #0x0 bl FUN_02016998 strh r5, [r0, #0x0] strb r6, [r0, #0x2] strb r4, [r0, #0x3] pop {r4-r6, pc} thumb_func_start FUN_02036BDC FUN_02036BDC: ; 0x02036BDC push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7f lsl r0, r0, #0x2 ldr r6, [r4, r0] ldrb r1, [r6, #0x3] cmp r1, #0x3 bhi _02036CD4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02036C06: ; jump table (using 16-bit offset) .short _02036C58 - _02036C06 - 2; case 0 .short _02036C98 - _02036C06 - 2; case 1 .short _02036C32 - _02036C06 - 2; case 2 .short _02036C0E - _02036C06 - 2; case 3 _02036C0E: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C32: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r6, #0x2] add r0, r5, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE8 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C58: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020855E4 cmp r0, #0x1 bne _02036C70 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xc bl FUN_02036CEC b _02036CD4 _02036C70: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r6, #0x2] add r0, r5, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE8 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C98: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020855E4 cmp r0, #0x1 bne _02036CB0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xb bl FUN_02036CEC b _02036CD4 _02036CB0: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 _02036CD4: mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} nop _02036CE4: .word FUN_020362E4 _02036CE8: .word FUN_02035E50 thumb_func_start FUN_02036CEC FUN_02036CEC: ; 0x02036CEC push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x7f add r6, r1, #0x0 str r2, [sp, #0x0] lsl r0, r0, #0x2 ldr r7, [r6, r0] mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx Call_FillMemWithValue ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r6, r0 str r0, [r4, #0x18] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] ldrh r0, [r7, #0x0] strh r0, [r4, #0x24] add r0, r4, #0x0 ldrb r1, [r7, #0x2] add r0, #0x22 strb r1, [r0, #0x0] add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x20 strb r0, [r1, #0x0] str r5, [r4, #0x1c] ldrb r1, [r7, #0x2] ldr r0, [r4, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_0208560C mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_0208562C ldr r1, _02036D8C ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] ldr r1, _02036D90 ; =FUN_02035E50 add r0, r6, #0x0 bl FUN_02035D04 pop {r3-r7, pc} nop _02036D8C: .word 0x020F96DC _02036D90: .word FUN_02035E50 thumb_func_start FUN_02036D94 FUN_02036D94: ; 0x02036D94 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02087E14 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036DD0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} nop _02036DD0: .word FUN_020362E4 thumb_func_start FUN_02036DD4 FUN_02036DD4: ; 0x02036DD4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036E04 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036E04: .word FUN_020362E4 thumb_func_start FUN_02036E08 FUN_02036E08: ; 0x02036E08 push {r3-r7, lr} sub sp, #0x48 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r6, r0] bl FUN_0200541C mov r0, #0x3 mov r1, #0x49 lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r4, #0xc] bl FUN_0206BB1C ldrb r1, [r5, #0x0] str r0, [sp, #0x20] bl FUN_0206B9B0 str r0, [sp, #0x24] ldrb r0, [r5, #0x1] cmp r0, #0x0 ldr r0, [r4, #0xc] bne _02036E9E bl LoadPlayerDataAddress str r0, [sp, #0x28] ldr r0, [r4, #0xc] bl FUN_02079C70 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [sp, #0x2c] ldr r0, [r4, #0xc] bl FUN_0206F158 str r0, [sp, #0x30] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [sp, #0x34] ldr r0, [r4, #0xc] bl FUN_0204C1A8 ldr r1, [sp, #0x2c] str r7, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x30] ldr r3, [sp, #0x28] str r1, [sp, #0x8] ldr r1, [sp, #0x34] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [r5, #0x8] ldr r1, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x1 str r0, [sp, #0x18] mov r0, #0x49 str r0, [sp, #0x1c] ldrh r2, [r5, #0x4] ldr r0, [sp, #0x20] bl FUN_0206C700 b _02036EF2 _02036E9E: bl LoadPlayerDataAddress str r0, [sp, #0x38] ldr r0, [r4, #0xc] bl FUN_02079C70 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [sp, #0x3c] ldr r0, [r4, #0xc] bl FUN_0206F158 str r0, [sp, #0x40] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [sp, #0x44] ldr r0, [r4, #0xc] bl FUN_0204C1A8 ldr r1, [sp, #0x3c] str r7, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x40] ldr r3, [sp, #0x38] str r1, [sp, #0x8] ldr r1, [sp, #0x44] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [r5, #0x8] ldr r1, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] mov r0, #0x49 str r0, [sp, #0x1c] ldrh r2, [r5, #0x4] ldr r0, [sp, #0x20] bl FUN_0206C700 _02036EF2: add r4, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_02016998 ldrb r1, [r5, #0x0] str r1, [r0, #0x0] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r6, r1] sub r0, r1, #0x4 ldr r0, [r6, r0] bl FUN_02016A18 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] mov r0, #0x7 strh r0, [r6, #0x2a] add sp, #0x48 pop {r3-r7, pc} thumb_func_start FUN_02036F1C FUN_02036F1C: ; 0x02036F1C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0206C91C cmp r0, #0x1 bne _02036F98 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0206C92C mov r0, #0x49 bl FUN_020168D0 ldr r0, _02036F9C ; =0x00000475 mov r1, #0x0 bl FUN_02005350 mov r0, #0x0 bl FUN_0200415C ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] bl FUN_0204ADBC mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] ldr r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0206E358 mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r1, _02036FA0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 _02036F98: pop {r3-r5, pc} nop _02036F9C: .word 0x00000475 _02036FA0: .word FUN_020362E4 thumb_func_start FUN_02036FA4 FUN_02036FA4: ; 0x02036FA4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x38] add r4, r1, #0x0 add r5, r2, #0x0 bl FUN_020552F8 add r7, r0, #0x0 ldr r0, [r6, #0x38] bl FUN_02055320 str r0, [r4, #0x0] ldr r0, [r6, #0x38] bl FUN_0205532C str r0, [r5, #0x0] cmp r7, #0x3 bhi _02036FFA add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02036FD4: ; jump table (using 16-bit offset) .short _02036FDC - _02036FD4 - 2; case 0 .short _02036FE4 - _02036FD4 - 2; case 1 .short _02036FEC - _02036FD4 - 2; case 2 .short _02036FF4 - _02036FD4 - 2; case 3 _02036FDC: ldr r0, [r5, #0x0] sub r0, r0, #0x1 str r0, [r5, #0x0] b _02036FFA _02036FE4: ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02036FFA _02036FEC: ldr r0, [r4, #0x0] sub r0, r0, #0x1 str r0, [r4, #0x0] b _02036FFA _02036FF4: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02036FFA: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02037000 FUN_02037000: ; 0x02037000 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_020553A0 bl FUN_02058BE4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058BE4 cmp r4, r0 bne _0203701C mov r0, #0x1 b _0203701E _0203701C: mov r0, #0x0 _0203701E: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r5, pc} thumb_func_start FUN_02037024 FUN_02037024: ; 0x02037024 push {r4-r6, lr} sub sp, #0x8 add r6, r1, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 add r5, r0, #0x0 bl FUN_02036FA4 add r4, r0, #0x0 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204A6E0 bl FUN_020547A4 cmp r0, #0x1 bne _0203707E cmp r4, #0x3 bhi _0203707E add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02037058: ; jump table (using 16-bit offset) .short _02037060 - _02037058 - 2; case 0 .short _02037068 - _02037058 - 2; case 1 .short _02037070 - _02037058 - 2; case 2 .short _02037078 - _02037058 - 2; case 3 _02037060: ldr r0, [sp, #0x0] sub r0, r0, #0x1 str r0, [sp, #0x0] b _0203707E _02037068: ldr r0, [sp, #0x0] add r0, r0, #0x1 str r0, [sp, #0x0] b _0203707E _02037070: ldr r0, [sp, #0x4] sub r0, r0, #0x1 str r0, [sp, #0x4] b _0203707E _02037078: ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] _0203707E: ldr r0, [r5, #0x34] ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] bl FUN_02058D74 str r0, [r6, #0x0] add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037090 FUN_02037090: ; 0x02037090 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_02037024 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020370B8 bl FUN_020588D4 cmp r0, #0x1 bne _020370B8 ldr r0, [r5, #0x38] ldr r1, [r4, #0x0] bl FUN_02037000 cmp r0, #0x1 bne _020370B8 mov r0, #0x1 pop {r3-r5, pc} _020370B8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020370BC FUN_020370BC: ; 0x020370BC push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x0] str r2, [sp, #0x4] add r1, sp, #0xc add r2, sp, #0x8 add r6, r0, #0x0 bl FUN_02036FA4 ldr r0, [sp, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _02037130 ldr r4, [sp, #0x0] add r5, r4, #0x0 _020370DA: ldr r1, [sp, #0xc] ldr r0, [r4, #0x4] cmp r1, r0 bne _02037124 ldr r1, [sp, #0x8] ldr r0, [r4, #0x8] cmp r1, r0 bne _02037124 ldrh r0, [r4, #0x2] cmp r0, #0x2 bne _0203710A add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0203713C cmp r0, #0x1 bne _02037124 mov r0, #0x14 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add sp, #0x10 ldrh r0, [r0, r1] pop {r3-r7, pc} _0203710A: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02037168 cmp r0, #0x1 bne _02037124 mov r0, #0x14 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add sp, #0x10 ldrh r0, [r0, r1] pop {r3-r7, pc} _02037124: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r4, #0x14 add r5, #0x14 cmp r7, r0 blt _020370DA _02037130: ldr r0, _02037138 ; =0x0000FFFF add sp, #0x10 pop {r3-r7, pc} nop _02037138: .word 0x0000FFFF thumb_func_start FUN_0203713C FUN_0203713C: ; 0x0203713C push {r4, lr} add r4, r0, #0x0 ldrh r0, [r1, #0x2] cmp r0, #0x2 beq _0203714A mov r0, #0x0 pop {r4, pc} _0203714A: ldrh r0, [r1, #0x0] bl FUN_02039694 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02039528 cmp r0, #0x1 beq _02037160 mov r0, #0x1 b _02037162 _02037160: mov r0, #0x0 _02037162: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} thumb_func_start FUN_02037168 FUN_02037168: ; 0x02037168 push {r4, lr} add r4, r1, #0x0 ldrh r1, [r4, #0x10] cmp r1, #0x4 bne _02037176 mov r0, #0x1 pop {r4, pc} _02037176: ldr r0, [r0, #0x38] bl FUN_020552F8 cmp r0, #0x3 bhi _020371CC add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0203718C: ; jump table (using 16-bit offset) .short _02037194 - _0203718C - 2; case 0 .short _020371A2 - _0203718C - 2; case 1 .short _020371B0 - _0203718C - 2; case 2 .short _020371BE - _0203718C - 2; case 3 _02037194: ldrh r0, [r4, #0x10] cmp r0, #0x0 beq _0203719E cmp r0, #0x6 bne _020371CC _0203719E: mov r0, #0x1 pop {r4, pc} _020371A2: ldrh r0, [r4, #0x10] cmp r0, #0x3 beq _020371AC cmp r0, #0x6 bne _020371CC _020371AC: mov r0, #0x1 pop {r4, pc} _020371B0: ldrh r0, [r4, #0x10] cmp r0, #0x2 beq _020371BA cmp r0, #0x5 bne _020371CC _020371BA: mov r0, #0x1 pop {r4, pc} _020371BE: ldrh r0, [r4, #0x10] cmp r0, #0x1 beq _020371C8 cmp r0, #0x5 bne _020371CC _020371C8: mov r0, #0x1 pop {r4, pc} _020371CC: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_020371D0 FUN_020371D0: ; 0x020371D0 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x38] add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_020552F8 cmp r0, #0x0 beq _020371EA add sp, #0x8 ldr r0, _0203722C ; =0x0000FFFF pop {r4-r6, pc} _020371EA: add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_02036FA4 mov r0, #0x0 cmp r4, #0x0 ble _02037224 ldr r2, [sp, #0x4] ldr r3, [sp, #0x0] add r1, r6, #0x0 _02037200: ldr r5, [r1, #0x4] cmp r2, r5 bne _0203721C ldr r5, [r1, #0x8] cmp r3, r5 bne _0203721C ldrh r5, [r1, #0x2] cmp r5, #0x1 bne _0203721C mov r1, #0x14 mul r1, r0 add sp, #0x8 ldrh r0, [r6, r1] pop {r4-r6, pc} _0203721C: add r0, r0, #0x1 add r1, #0x14 cmp r0, r4 blt _02037200 _02037224: ldr r0, _0203722C ; =0x0000FFFF add sp, #0x8 pop {r4-r6, pc} nop _0203722C: .word 0x0000FFFF thumb_func_start FUN_02037230 FUN_02037230: ; 0x02037230 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x38] add r4, r1, #0x0 bl FUN_020552F8 cmp r0, #0x0 beq _02037244 mov r0, #0x0 pop {r3-r5, pc} _02037244: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037090 cmp r0, #0x1 bne _02037260 ldr r0, [r4, #0x0] bl FUN_02058458 sub r0, #0x5b cmp r0, #0x5 bhi _02037260 mov r0, #0x1 pop {r3-r5, pc} _02037260: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037264 FUN_02037264: ; 0x02037264 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] ldr r0, [r0, #0x38] str r1, [sp, #0x4] str r2, [sp, #0x8] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_0205532C add r4, r0, #0x0 ldr r0, [sp, #0x8] mov r7, #0x0 cmp r0, #0x0 ble _020372C8 ldr r5, [sp, #0x4] _0203728A: ldrh r1, [r5, #0x2] cmp r6, r1 blt _020372BE ldrh r0, [r5, #0x6] add r0, r1, r0 cmp r6, r0 bge _020372BE ldrh r1, [r5, #0x4] cmp r4, r1 blt _020372BE ldrh r0, [r5, #0x8] add r0, r1, r0 cmp r4, r0 bge _020372BE ldrh r1, [r5, #0xe] ldr r0, [sp, #0x0] bl FUN_020394F0 ldrh r1, [r5, #0xc] cmp r1, r0 bne _020372BE ldr r0, [sp, #0x4] lsl r1, r7, #0x4 add sp, #0xc ldrh r0, [r0, r1] pop {r4-r7, pc} _020372BE: ldr r0, [sp, #0x8] add r7, r7, #0x1 add r5, #0x10 cmp r7, r0 blt _0203728A _020372C8: ldr r0, _020372D0 ; =0x0000FFFF add sp, #0xc pop {r4-r7, pc} nop _020372D0: .word 0x0000FFFF thumb_func_start FUN_020372D4 FUN_020372D4: ; 0x020372D4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0200628C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02037400 ldr r1, _02037300 ; =0x021C5A08 str r0, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 beq _020372F4 bl FUN_02048FC8 b _020372F8 _020372F4: bl FUN_02048EC8 _020372F8: mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02037300: .word 0x021C5A08 thumb_func_start FUN_02037304 FUN_02037304: ; 0x02037304 push {r3, lr} bl FUN_02037400 ldr r1, _02037318 ; =0x021C5A08 str r0, [r1, #0x0] bl FUN_02048D90 mov r0, #0x1 pop {r3, pc} nop _02037318: .word 0x021C5A08 thumb_func_start FUN_0203731C FUN_0203731C: ; 0x0203731C push {r3, lr} bl FUN_02006278 bl FUN_02037524 cmp r0, #0x0 beq _0203732E mov r0, #0x1 pop {r3, pc} _0203732E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02037334 FUN_02037334: ; 0x02037334 push {r3, lr} bl FUN_020374B0 ldr r0, _02037348 ; =0x0000003F ldr r1, _0203734C ; =0x021DBAB8 bl FUN_02000E7C mov r0, #0x1 pop {r3, pc} nop _02037348: .word 0x0000003F _0203734C: .word 0x021DBAB8 thumb_func_start FUN_02037350 FUN_02037350: ; 0x02037350 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02037360 bl ErrorHandling _02037360: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203736C bl ErrorHandling _0203736C: ldr r0, _0203738C ; =0x00000005 mov r1, #0x2 bl FUN_02005FDC mov r1, #0x0 str r1, [r4, #0x64] ldr r0, [r4, #0x0] mov r2, #0xb str r1, [r0, #0x8] ldr r0, _02037390 ; =0x021F64C8 add r1, r4, #0x0 bl FUN_02006234 ldr r1, [r4, #0x0] str r0, [r1, #0x0] pop {r4, pc} .balign 4 _0203738C: .word 0x00000005 _02037390: .word 0x021F64C8 thumb_func_start FUN_02037394 FUN_02037394: ; 0x02037394 mov r1, #0x0 str r1, [r0, #0x64] bx lr .balign 4 thumb_func_start FUN_0203739C FUN_0203739C: ; 0x0203739C ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020373A8 mov r0, #0x1 bx lr _020373A8: mov r0, #0x0 bx lr thumb_func_start FUN_020373AC FUN_020373AC: ; 0x020373AC ldr r1, [r0, #0x0] ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020373BE ldr r0, [r0, #0x64] cmp r0, #0x0 beq _020373BE mov r0, #0x1 bx lr _020373BE: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020373C4 FUN_020373C4: ; 0x020373C4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _020373D0 mov r0, #0x1 bx lr _020373D0: mov r0, #0x0 bx lr thumb_func_start FUN_020373D4 FUN_020373D4: ; 0x020373D4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0x4] add r6, r2, #0x0 cmp r0, #0x0 beq _020373E8 bl ErrorHandling _020373E8: add r0, r5, #0x0 bl FUN_02037394 add r0, r4, #0x0 add r1, r6, #0x0 mov r2, #0xb bl FUN_02006234 ldr r1, [r5, #0x0] str r0, [r1, #0x4] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037400 FUN_02037400: ; 0x02037400 push {r3-r5, lr} mov r2, #0x7 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0xb lsl r2, r2, #0xe bl FUN_0201681C mov r1, #0x20 mov r0, #0x3 lsl r2, r1, #0x9 bl FUN_0201681C mov r2, #0x3 mov r0, #0x0 mov r1, #0x5b lsl r2, r2, #0x8 bl FUN_0201681C add r0, r5, #0x0 mov r1, #0xb8 mov r2, #0xb bl FUN_02006268 mov r1, #0x0 mov r2, #0xb8 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0xb mov r1, #0x10 bl FUN_02016998 str r0, [r4, #0x0] mov r1, #0x0 str r1, [r0, #0x0] ldr r0, [r4, #0x0] str r1, [r0, #0x4] ldr r0, [r4, #0x0] str r1, [r0, #0x8] ldr r0, [r4, #0x0] str r1, [r0, #0xc] add r0, r5, #0x0 bl FUN_0200628C ldr r0, [r0, #0x8] str r0, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x10] ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DC0 str r0, [r4, #0x1c] bl FUN_02034494 str r0, [r4, #0x28] add r0, r4, #0x0 mov r1, #0xb bl FUN_02034A28 mov r0, #0xb bl FUN_0206F164 add r1, r4, #0x0 add r1, #0x94 str r0, [r1, #0x0] mov r0, #0xb bl FUN_0205DD18 add r1, r4, #0x0 add r1, #0x90 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 mov r0, #0xb bl FUN_0208A300 add r1, r4, #0x0 add r1, #0xb0 str r0, [r1, #0x0] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020374B0 FUN_020374B0: ; 0x020374B0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 ldr r0, [r4, #0x28] bl FUN_020344D0 add r0, r4, #0x0 bl FUN_02034A48 add r0, r4, #0x0 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD38 add r0, r4, #0x0 add r0, #0xb0 ldr r0, [r0, #0x0] bl FUN_0208A320 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0200627C mov r0, #0x5b bl FUN_020168D0 mov r0, #0xb bl FUN_020168D0 mov r0, #0x20 bl FUN_020168D0 pop {r3-r5, pc} thumb_func_start FUN_02037504 FUN_02037504: ; 0x02037504 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02037520 bl FUN_02006290 cmp r0, #0x0 beq _02037520 ldr r0, [r4, #0x0] bl FUN_02006260 mov r0, #0x0 str r0, [r4, #0x0] _02037520: pop {r4, pc} .balign 4 thumb_func_start FUN_02037524 FUN_02037524: ; 0x02037524 push {r4, lr} add r4, r0, #0x0 bl FUN_02037594 add r0, r4, #0x0 bl FUN_02046420 cmp r0, #0x1 bne _02037546 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02037546 mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_021EFA9C _02037546: ldr r0, [r4, #0x0] ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02037562 bl FUN_02037504 ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203756E ldr r0, _02037590 ; =0x00000005 bl FUN_02005F60 b _0203756E _02037562: ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203756E add r0, r0, #0x4 bl FUN_02037504 _0203756E: ldr r1, [r4, #0x0] ldr r0, [r1, #0xc] cmp r0, #0x0 beq _0203758C ldr r0, [r4, #0x10] cmp r0, #0x0 bne _0203758C ldr r0, [r1, #0x0] cmp r0, #0x0 bne _0203758C ldr r0, [r1, #0x4] cmp r0, #0x0 bne _0203758C mov r0, #0x1 pop {r4, pc} _0203758C: mov r0, #0x0 pop {r4, pc} .balign 4 _02037590: .word 0x00000005 thumb_func_start FUN_02037594 FUN_02037594: ; 0x02037594 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0x0] mov r5, #0x0 ldr r1, [r1, #0x8] cmp r1, #0x0 bne _020375B4 ldr r1, [r4, #0x64] cmp r1, #0x0 beq _020375B4 bl FUN_0204646C cmp r0, #0x0 bne _020375B4 mov r5, #0x1 _020375B4: cmp r5, #0x0 beq _020375D4 ldr r0, [r4, #0x38] bl FUN_02055A38 ldr r3, _02037758 ; =0x021C48B8 add r0, sp, #0x8 ldr r2, [r3, #0x48] ldr r3, [r3, #0x44] lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_021D8164 _020375D4: ldr r0, [r4, #0x1c] ldr r2, [r4, #0x6c] ldr r1, [r0, #0x0] ldr r0, _0203775C ; =0x00000146 cmp r1, r0 bne _020375E2 mov r2, #0x0 _020375E2: cmp r2, #0x4 bhi _020376E2 add r0, r2, r2 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020375F2: ; jump table (using 16-bit offset) .short _020376E2 - _020375F2 - 2; case 0 .short _020375FC - _020375F2 - 2; case 1 .short _02037646 - _020375F2 - 2; case 2 .short _0203761C - _020375F2 - 2; case 3 .short _02037672 - _020375F2 - 2; case 4 _020375FC: cmp r5, #0x0 beq _02037610 bl FUN_0204E2FC cmp r0, #0x0 beq _02037610 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D85FC _02037610: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0204D6C0 add sp, #0x10 pop {r3-r5, pc} _0203761C: cmp r5, #0x0 beq _0203763A bl FUN_0204E2FC cmp r0, #0x0 beq _02037638 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D865C cmp r0, #0x1 bne _0203763A mov r5, #0x0 b _0203763A _02037638: mov r5, #0x0 _0203763A: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0204D6C0 add sp, #0x10 pop {r3-r5, pc} _02037646: cmp r5, #0x0 bne _0203764C b _02037754 _0203764C: add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8758 cmp r0, #0x1 beq _02037754 add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 str r0, [sp, #0x0] str r2, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] sub r2, r2, #0x1 bl FUN_020557F4 add sp, #0x10 pop {r3-r5, pc} _02037672: cmp r5, #0x0 beq _02037754 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8820 cmp r0, #0x1 bne _020376A6 ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_021E81BC ldr r0, [r4, #0x38] bl FUN_021E7138 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_021EFA9C add sp, #0x10 pop {r3-r5, pc} _020376A6: ldr r0, _02037758 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _020376B8 ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 _020376B8: mov r5, #0x0 bl FUN_02037790 cmp r0, #0x0 beq _020376C8 bl FUN_02252534 add r5, r0, #0x0 _020376C8: add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 mvn r2, r2 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] bl FUN_020557F4 add sp, #0x10 pop {r3-r5, pc} _020376E2: cmp r5, #0x0 beq _02037754 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8320 cmp r0, #0x1 bne _0203771C ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_021E81BC ldr r0, [r4, #0x38] bl FUN_02055B14 ldr r0, [r4, #0x38] bl FUN_021E7138 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_021EFA9C add sp, #0x10 pop {r3-r5, pc} _0203771C: ldr r0, _02037758 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _0203772E ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 _0203772E: mov r5, #0x0 bl FUN_02037790 cmp r0, #0x0 beq _0203773E bl FUN_02252534 add r5, r0, #0x0 _0203773E: add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 mvn r2, r2 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] bl FUN_020557F4 _02037754: add sp, #0x10 pop {r3-r5, pc} .balign 4 _02037758: .word 0x021C48B8 _0203775C: .word 0x00000146 thumb_func_start FUN_02037760 FUN_02037760: ; 0x02037760 ldr r0, _02037770 ; =0x021C5A08 ldr r3, _02037774 ; =FUN_02030FC8 ldr r0, [r0, #0x0] mov r1, #0x1 ldr r0, [r0, #0x0] str r1, [r0, #0x8] bx r3 nop _02037770: .word 0x021C5A08 _02037774: .word FUN_02030FC8 thumb_func_start FUN_02037778 FUN_02037778: ; 0x02037778 ldr r0, _02037788 ; =0x021C5A08 ldr r3, _0203778C ; =FUN_02030FA8 ldr r0, [r0, #0x0] mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x8] bx r3 nop _02037788: .word 0x021C5A08 _0203778C: .word FUN_02030FA8 thumb_func_start FUN_02037790 FUN_02037790: ; 0x02037790 ldr r0, _020377A4 ; =0x021C5A08 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 bne _0203779E mov r0, #0x0 bx lr _0203779E: ldr r0, [r0, #0x14] bx lr nop _020377A4: .word 0x021C5A08 thumb_func_start FUN_020377A8 FUN_020377A8: ; 0x020377A8 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_020377AC FUN_020377AC: ; 0x020377AC ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020377B0 FUN_020377B0: ; 0x020377B0 ldr r2, _020377C4 ; =0x020F2B9C add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _020377C4: .word 0x020F2B9C thumb_func_start FUN_020377C8 FUN_020377C8: ; 0x020377C8 ldr r2, _020377DC ; =0x020F2BB0 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _020377DC: .word 0x020F2BB0 thumb_func_start FUN_020377E0 FUN_020377E0: ; 0x020377E0 push {r3, lr} bl FUN_02034E30 bl FUN_02034DC0 bl FUN_020377B0 pop {r3, pc} thumb_func_start FUN_020377F0 FUN_020377F0: ; 0x020377F0 mov r0, #0x1 bx lr thumb_func_start FUN_020377F4 FUN_020377F4: ; 0x020377F4 push {r3, lr} bl FUN_0222D5C0 cmp r0, #0x0 beq _02037802 mov r0, #0x1 pop {r3, pc} _02037802: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02037808 FUN_02037808: ; 0x02037808 mov r0, #0x1 bx lr thumb_func_start FUN_0203780C FUN_0203780C: ; 0x0203780C ldr r3, _02037814 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037818 ; =0x020F2D94 bx r3 .balign 4 _02037814: .word FUN_020373D4 _02037818: .word 0x020F2D94 thumb_func_start FUN_0203781C FUN_0203781C: ; 0x0203781C push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037840 ; =0x020F2D74 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037840: .word 0x020F2D74 thumb_func_start FUN_02037844 FUN_02037844: ; 0x02037844 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r6, r1, #0x0 bl FUN_0206F158 ldr r1, _02037898 ; =0x020F2BDC mov r2, #0xb bl FUN_0206EFEC add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] mov r2, #0x0 add r4, r0, #0x0 bl FUN_0206E314 ldr r1, [r5, #0x6c] add r0, r4, #0x0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0206E360 ldr r0, [r5, #0x38] bl FUN_020553C4 cmp r0, #0x1 bne _02037884 add r0, r4, #0x0 bl FUN_0206E340 _02037884: add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0206E354 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203781C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037898: .word 0x020F2BDC thumb_func_start FUN_0203789C FUN_0203789C: ; 0x0203789C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_0206F158 add r6, r0, #0x0 cmp r4, #0x0 beq _020378B4 cmp r4, #0x1 beq _020378BC b _020378C4 _020378B4: ldr r1, _020378F0 ; =0x020F2BC8 ldr r0, _020378F4 ; =0x02105DB8 str r1, [r0, #0x0] b _020378C8 _020378BC: ldr r1, _020378F8 ; =0x020F2BC4 ldr r0, _020378F4 ; =0x02105DB8 str r1, [r0, #0x0] b _020378C8 _020378C4: bl ErrorHandling _020378C8: ldr r1, _020378F4 ; =0x02105DB8 add r0, r6, #0x0 ldr r1, [r1, #0x0] mov r2, #0x20 bl FUN_0206EFEC add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] add r4, r0, #0x0 mov r2, #0x3 bl FUN_0206E314 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203781C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _020378F0: .word 0x020F2BC8 _020378F4: .word 0x02105DB8 _020378F8: .word 0x020F2BC4 thumb_func_start FUN_020378FC FUN_020378FC: ; 0x020378FC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0206E37C add r4, r0, #0x0 beq _02037916 add r0, r5, #0x0 bl FUN_0206E384 cmp r0, #0x5 bne _02037916 bl ErrorHandling _02037916: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203791C FUN_0203791C: ; 0x0203791C push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037940 ; =0x020F2D44 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037940: .word 0x020F2D44 thumb_func_start FUN_02037944 FUN_02037944: ; 0x02037944 push {r3-r5, lr} sub sp, #0x10 ldr r4, _02037968 ; =0x020F2D24 add r3, sp, #0x0 add r5, r0, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r1, r2, #0x0 ldr r2, [r5, #0xc] add r0, r5, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r3-r5, pc} nop _02037968: .word 0x020F2D24 thumb_func_start FUN_0203796C FUN_0203796C: ; 0x0203796C ldr r3, _02037974 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037978 ; =0x020FA6E8 bx r3 .balign 4 _02037974: .word FUN_020373D4 _02037978: .word 0x020FA6E8 thumb_func_start FUN_0203797C FUN_0203797C: ; 0x0203797C push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x40 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx MIi_CpuClearFast ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r4, #0x0 add r0, #0x21 strb r6, [r0, #0x0] add r0, r4, #0x0 add r0, #0x20 strb r7, [r0, #0x0] str r5, [r4, #0x1c] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020379C8 FUN_020379C8: ; 0x020379C8 push {r3-r7, lr} add r5, r0, #0x0 add r7, r2, #0x0 mov r2, #0x0 add r6, r1, #0x0 mov r0, #0xb add r1, r5, #0x0 add r3, r2, #0x0 bl FUN_0203797C add r4, r0, #0x0 str r6, [r4, #0x18] add r0, #0x22 strb r7, [r0, #0x0] ldr r1, _020379F4 ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r7, pc} nop _020379F4: .word 0x020F96DC thumb_func_start FUN_020379F8 FUN_020379F8: ; 0x020379F8 push {r3-r5, lr} mov r0, #0xb mov r2, #0x0 mov r3, #0x3 add r5, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, _02037A18 ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} nop _02037A18: .word 0x020F96DC thumb_func_start FUN_02037A1C FUN_02037A1C: ; 0x02037A1C push {r3-r5, lr} mov r0, #0xb mov r2, #0x0 mov r3, #0x13 add r5, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, _02037A3C ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} nop _02037A3C: .word 0x020F96DC thumb_func_start FUN_02037A40 FUN_02037A40: ; 0x02037A40 add r0, #0x22 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02037A48 FUN_02037A48: ; 0x02037A48 push {r4-r6, lr} add r4, r2, #0x0 mov r0, #0xb mov r2, #0x0 mov r3, #0x12 add r5, r1, #0x0 bl FUN_0203797C add r6, r0, #0x0 add r0, #0x22 strb r4, [r0, #0x0] ldr r1, _02037A6C ; =0x020F96DC add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_020373D4 add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 _02037A6C: .word 0x020F96DC thumb_func_start FUN_02037A70 FUN_02037A70: ; 0x02037A70 add r0, #0x23 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02037A78 FUN_02037A78: ; 0x02037A78 ldrb r0, [r0, #0x14] bx lr thumb_func_start FUN_02037A7C FUN_02037A7C: ; 0x02037A7C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x4 bhi _02037B3A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02037AA8: ; jump table (using 16-bit offset) .short _02037AB2 - _02037AA8 - 2; case 0 .short _02037AC2 - _02037AA8 - 2; case 1 .short _02037AF8 - _02037AA8 - 2; case 2 .short _02037B1A - _02037AA8 - 2; case 3 .short _02037B30 - _02037AA8 - 2; case 4 _02037AB2: ldr r1, _02037B40 ; =0x020F96DC ldr r2, [r4, #0x4] add r0, r6, #0x0 bl FUN_020373D4 mov r0, #0x1 str r0, [r5, #0x0] b _02037B3A _02037AC2: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02037B3A ldr r0, [r4, #0x4] add r0, #0x22 ldrb r0, [r0, #0x0] cmp r0, #0x6 beq _02037AE6 cmp r0, #0x7 bne _02037AF2 mov r0, #0x2 bl FUN_020527D8 mov r0, #0x4 str r0, [r5, #0x0] b _02037B3A _02037AE6: mov r0, #0x1 bl FUN_020527D8 mov r0, #0x4 str r0, [r5, #0x0] b _02037B3A _02037AF2: mov r0, #0x2 str r0, [r5, #0x0] b _02037B3A _02037AF8: ldr r1, [r4, #0x0] add r0, r6, #0x0 mov r2, #0x0 bl FUN_02037C7C str r0, [r4, #0x8] ldr r1, [r4, #0x4] add r1, #0x22 ldrb r1, [r1, #0x0] strb r1, [r0, #0x14] ldr r1, [r4, #0x8] add r0, r6, #0x0 bl FUN_0203796C mov r0, #0x3 str r0, [r5, #0x0] b _02037B3A _02037B1A: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02037B3A ldr r0, [r4, #0x8] bl FUN_02016A18 mov r0, #0x0 str r0, [r5, #0x0] b _02037B3A _02037B30: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _02037B3A: mov r0, #0x0 pop {r4-r6, pc} nop _02037B40: .word 0x020F96DC thumb_func_start FUN_02037B44 FUN_02037B44: ; 0x02037B44 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 mov r3, #0x2 str r5, [r4, #0x0] bl FUN_0203797C add r5, r0, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf add r2, r4, #0x0 bic r1, r0 mov r0, #0x2 orr r1, r0 add r0, r5, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf0 bic r1, r0 mov r0, #0x20 orr r1, r0 add r0, r5, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x1e add r0, #0x33 strb r1, [r0, #0x0] mov r0, #0x0 str r0, [r5, #0x14] ldr r1, _02037BAC ; =FUN_02037A7C add r0, r7, #0x0 str r5, [r4, #0x4] bl FUN_0204640C add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _02037BAC: .word FUN_02037A7C thumb_func_start FUN_02037BB0 FUN_02037BB0: ; 0x02037BB0 push {r3-r7, lr} add r5, r2, #0x0 add r6, r3, #0x0 mov r0, #0xb mov r2, #0x0 mov r3, #0xd add r7, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, [sp, #0x1c] add r0, #0x22 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x2 add r0, #0x29 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x2a strb r5, [r0, #0x0] ldr r0, [sp, #0x18] cmp r0, #0x0 bne _02037BE6 add r0, r4, #0x0 add r0, #0x2b strb r6, [r0, #0x0] b _02037BEE _02037BE6: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x2b strb r1, [r0, #0x0] _02037BEE: ldr r1, _02037BFC ; =0x020F96DC add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _02037BFC: .word 0x020F96DC thumb_func_start FUN_02037C00 FUN_02037C00: ; 0x02037C00 push {r4-r6, lr} add r5, r1, #0x0 mov r0, #0xb mov r1, #0x30 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] strb r6, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] strb r0, [r4, #0x12] ldr r0, [r5, #0xc] bl FUN_0202A918 str r0, [r4, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x2c] mov r0, #0x0 str r0, [r4, #0x28] ldr r1, _02037C74 ; =0x020F2A9C add r0, r4, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 ldr r1, _02037C78 ; =0x020FA6E8 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037C74: .word 0x020F2A9C _02037C78: .word 0x020FA6E8 thumb_func_start FUN_02037C7C FUN_02037C7C: ; 0x02037C7C push {r4-r6, lr} ldr r5, [r0, #0xc] add r0, r1, #0x0 mov r1, #0x30 add r6, r2, #0x0 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C str r0, [r4, #0x0] mov r0, #0x1 strb r0, [r4, #0x11] mov r0, #0x0 strb r0, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] strb r6, [r4, #0x12] add r0, r5, #0x0 bl FUN_0206BB28 str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02079C70 str r0, [r4, #0x2c] add r0, r5, #0x0 bl FUN_0202A918 str r0, [r4, #0x20] ldr r1, _02037CEC ; =0x020F2BD0 add r0, r4, #0x0 bl FUN_0207B000 add r0, r5, #0x0 bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037CEC: .word 0x020F2BD0 thumb_func_start FUN_02037CF0 FUN_02037CF0: ; 0x02037CF0 push {r4-r6, lr} add r5, r1, #0x0 mov r1, #0x30 add r6, r2, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx Call_FillMemWithValue ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] strb r6, [r4, #0x14] strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] mov r0, #0x2 strb r0, [r4, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x2c] ldr r1, _02037D58 ; =0x020F2BCC add r0, r4, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203796C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037D58: .word 0x020F2BCC thumb_func_start FUN_02037D5C FUN_02037D5C: ; 0x02037D5C ldrb r0, [r0, #0x16] bx lr thumb_func_start FUN_02037D60 FUN_02037D60: ; 0x02037D60 ldr r3, _02037D68 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037D6C ; =0x020F2CF4 bx r3 .balign 4 _02037D68: .word FUN_020373D4 _02037D6C: .word 0x020F2CF4 thumb_func_start FUN_02037D70 FUN_02037D70: ; 0x02037D70 push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046528 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02037D9A cmp r1, #0x1 beq _02037DA8 cmp r1, #0x2 beq _02037DB8 b _02037E12 _02037D9A: ldr r1, [r5, #0xc] bl FUN_02037E80 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02037E12 _02037DA8: bl FUN_0204647C cmp r0, #0x0 bne _02037E12 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02037E12 _02037DB8: ldr r0, [r5, #0xc] bl FUN_020853E4 cmp r0, #0x0 bne _02037DCC ldr r0, [r5, #0xc] bl FUN_020853E8 cmp r0, #0x0 bne _02037DD4 _02037DCC: ldr r0, [r5, #0x0] mov r1, #0x0 strh r1, [r0, #0x0] b _02037E00 _02037DD4: ldr r0, [r5, #0x0] mov r1, #0x1 strh r1, [r0, #0x0] ldr r0, [r5, #0x8] cmp r0, #0x0 ldr r0, [r5, #0xc] bne _02037DEC bl FUN_020853EC ldr r1, [r5, #0x4] strh r0, [r1, #0x0] b _02037E00 _02037DEC: add r1, sp, #0x0 bl FUN_020853F0 add r0, sp, #0x0 ldrh r2, [r0, #0x0] ldr r1, [r5, #0x4] strh r2, [r1, #0x0] ldrh r1, [r0, #0x2] ldr r0, [r5, #0x8] strh r1, [r0, #0x0] _02037E00: ldr r0, [r5, #0xc] bl FUN_020853A8 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x4 mov r0, #0x1 pop {r3-r6, pc} _02037E12: mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02037E18 FUN_02037E18: ; 0x02037E18 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] str r1, [sp, #0x4] add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02046528 add r7, r0, #0x0 mov r0, #0x20 mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x4] cmp r6, #0x0 str r0, [r4, #0x0] str r5, [r4, #0x4] str r6, [r4, #0x8] bne _02037E56 mov r0, #0x0 ldr r2, [r7, #0xc] add r1, r0, #0x0 mov r3, #0x20 bl FUN_02085338 str r0, [r4, #0xc] ldrh r1, [r5, #0x0] bl FUN_020853B0 b _02037E6C _02037E56: ldr r2, [r7, #0xc] mov r0, #0x1 mov r1, #0x0 mov r3, #0x20 bl FUN_02085338 str r0, [r4, #0xc] ldrh r1, [r5, #0x0] ldrh r2, [r6, #0x0] bl FUN_020853B4 _02037E6C: ldr r0, [sp, #0x0] ldr r1, _02037E7C ; =FUN_02037D70 add r2, r4, #0x0 bl FUN_0204640C add sp, #0x8 pop {r3-r7, pc} nop _02037E7C: .word FUN_02037D70 thumb_func_start FUN_02037E80 FUN_02037E80: ; 0x02037E80 ldr r3, _02037E88 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037E8C ; =0x020F2CE4 bx r3 .balign 4 _02037E88: .word FUN_020373D4 _02037E8C: .word 0x020F2CE4 thumb_func_start FUN_02037E90 FUN_02037E90: ; 0x02037E90 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037EB4 ; =0x020F2CD4 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037EB4: .word 0x020F2CD4 thumb_func_start FUN_02037EB8 FUN_02037EB8: ; 0x02037EB8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E0C mov r1, #0x5 mov r0, #0xb lsl r1, r1, #0x6 bl FUN_020169D8 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0205F7A0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037E90 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037EE8 FUN_02037EE8: ; 0x02037EE8 ldr r3, _02037EF0 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037EF4 ; =0x020F2CC4 bx r3 .balign 4 _02037EF0: .word FUN_020373D4 _02037EF4: .word 0x020F2CC4 thumb_func_start FUN_02037EF8 FUN_02037EF8: ; 0x02037EF8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x2 bl FUN_020169D8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020377AC bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EE8 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037F1C FUN_02037F1C: ; 0x02037F1C ldr r3, _02037F24 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037F28 ; =0x020FCAC8 bx r3 .balign 4 _02037F24: .word FUN_020373D4 _02037F28: .word 0x020FCAC8 thumb_func_start FUN_02037F2C FUN_02037F2C: ; 0x02037F2C push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020377AC mov r1, #0xb str r1, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_020854E0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02037F58 FUN_02037F58: ; 0x02037F58 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 cmp r5, #0x3 bne _02037F74 bl FUN_020377AC add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020855B0 b _02037F82 _02037F74: bl FUN_020377AC add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02085538 _02037F82: add r4, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02037F90 FUN_02037F90: ; 0x02037F90 push {r4-r6, lr} add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 bl FUN_020377AC add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02085578 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037FB4 FUN_02037FB4: ; 0x02037FB4 ldr r3, _02037FBC ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037FC0 ; =0x020FD1B0 bx r3 .balign 4 _02037FBC: .word FUN_020373D4 _02037FC0: .word 0x020FD1B0 thumb_func_start FUN_02037FC4 FUN_02037FC4: ; 0x02037FC4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 bl FUN_020377AC add r1, r5, #0x0 bl FUN_02087D00 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02037FB4 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02037FE4 FUN_02037FE4: ; 0x02037FE4 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02038008 ; =0x020F2CB4 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02038008: .word 0x020F2CB4 thumb_func_start FUN_0203800C FUN_0203800C: ; 0x0203800C push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x20 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x20 add r4, r0, #0x0 blx Call_FillMemWithValue add r0, r5, #0x0 bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02027E24 str r0, [sp, #0x0] mov r1, #0x0 bl FUN_02027008 add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_0202708C str r7, [r4, #0x4] str r0, [r4, #0x8] add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r5, #0x0 bl FUN_02029FC8 str r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_020238F4 str r0, [r4, #0x14] ldr r0, [sp, #0x18] str r6, [r4, #0x18] str r0, [r4, #0x1c] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02038070 FUN_02038070: ; 0x02038070 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0203808E cmp r0, #0x1 beq _0203809E b _020380C8 _0203808E: ldr r1, [r5, #0xc] add r0, r4, #0x0 bl FUN_0203811C ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _020380C8 _0203809E: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020380C8 ldr r0, [r5, #0x8] cmp r0, #0x1 bne _020380B2 mov r1, #0x1 b _020380B4 _020380B2: mov r1, #0x0 _020380B4: ldr r0, [r5, #0x4] strh r1, [r0, #0x0] ldr r0, [r5, #0xc] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _020380C8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020380CC FUN_020380CC: ; 0x020380CC push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0x20 mov r1, #0x10 add r7, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x10 mov r0, #0x0 _020380E8: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _020380E8 add r0, sp, #0x10 ldrh r0, [r0, #0x10] add r3, r4, #0x0 add r1, r7, #0x0 str r0, [sp, #0x0] ldr r2, [sp, #0x4] mov r0, #0x20 add r3, #0x8 bl FUN_0203800C str r0, [r4, #0xc] ldr r1, _02038118 ; =FUN_02038070 add r0, r6, #0x0 add r2, r4, #0x0 str r5, [r4, #0x4] bl FUN_0204640C add sp, #0x8 pop {r3-r7, pc} nop _02038118: .word FUN_02038070 thumb_func_start FUN_0203811C FUN_0203811C: ; 0x0203811C push {r3, lr} add r2, r1, #0x0 ldr r1, _0203812C ; =0x02105DDC bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _0203812C: .word 0x02105DDC thumb_func_start FUN_02038130 FUN_02038130: ; 0x02038130 push {r3, lr} add r2, r1, #0x0 ldr r1, _02038140 ; =0x02105DCC bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _02038140: .word 0x02105DCC thumb_func_start FUN_02038144 FUN_02038144: ; 0x02038144 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [r5, #0x4] ldr r0, [r4, #0xc] bl FUN_0206BB1C str r0, [r5, #0x8] ldr r0, [r4, #0xc] mov r1, #0x9 bl FUN_02022610 str r0, [r5, #0xc] ldr r0, [r4, #0xc] bl FUN_02029AFC str r0, [r5, #0x14] ldr r0, [r4, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0x18] ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [r5, #0x24] ldr r0, [r4, #0xc] bl FUN_0206BB28 str r0, [r5, #0x30] ldr r0, [r4, #0xc] str r0, [r5, #0x10] add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r5, #0x1c] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [r5, #0x20] bl FUN_02023924 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x38] bl FUN_020690C4 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x3c] bl FUN_020690C4 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x40] str r4, [r5, #0x0] mov r0, #0x0 str r0, [r5, #0x34] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020381CC FUN_020381CC: ; 0x020381CC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x38] cmp r0, #0x0 beq _020381DE bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x38] _020381DE: ldr r0, [r4, #0x3c] cmp r0, #0x0 beq _020381EC bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x3c] _020381EC: ldr r0, [r4, #0x40] cmp r0, #0x0 beq _020381FA bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x40] _020381FA: pop {r4, pc} thumb_func_start FUN_020381FC FUN_020381FC: ; 0x020381FC push {r4-r7, lr} sub sp, #0x34 add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x7 bls _02038218 b _020383C8 _02038218: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02038224: ; jump table (using 16-bit offset) .short _02038234 - _02038224 - 2; case 0 .short _0203824A - _02038224 - 2; case 1 .short _02038258 - _02038224 - 2; case 2 .short _0203826A - _02038224 - 2; case 3 .short _02038288 - _02038224 - 2; case 4 .short _020382F6 - _02038224 - 2; case 5 .short _02038386 - _02038224 - 2; case 6 .short _020383B2 - _02038224 - 2; case 7 _02038234: bl FUN_02033590 cmp r0, #0x0 bne _02038242 add r0, r6, #0x0 bl FUN_0204AF3C _02038242: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _0203824A: add r0, r4, #0x4 add r1, r5, #0x0 bl FUN_02038144 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02038258: ldr r1, _020383D0 ; =0x02105DBC add r0, r6, #0x0 add r2, r4, #0x4 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _0203826A: ldr r1, [r4, #0x2c] cmp r1, #0x0 bne _02038282 add r0, r4, #0x4 bl FUN_020381CC add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x34 mov r0, #0x1 pop {r4-r7, pc} _02038282: add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _02038288: ldr r0, [r4, #0x3c] str r0, [r4, #0x50] ldr r0, [r4, #0x40] bl FUN_020690E4 str r0, [r4, #0x48] ldr r0, [r4, #0x44] bl FUN_020690E4 str r0, [r4, #0x4c] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x5c] mov r0, #0x1 str r0, [r4, #0x58] add r0, r5, #0x0 bl FUN_0204B2A4 cmp r0, #0x4 bhi _020382C8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020382BE: ; jump table (using 16-bit offset) .short _020382C8 - _020382BE - 2; case 0 .short _020382C8 - _020382BE - 2; case 1 .short _020382CE - _020382BE - 2; case 2 .short _020382D4 - _020382BE - 2; case 3 .short _020382D4 - _020382BE - 2; case 4 _020382C8: mov r0, #0x0 str r0, [r4, #0x54] b _020382D8 _020382CE: mov r0, #0x1 str r0, [r4, #0x54] b _020382D8 _020382D4: mov r0, #0x2 str r0, [r4, #0x54] _020382D8: bl FUN_02033590 cmp r0, #0x0 beq _020382E4 mov r0, #0x3 str r0, [r4, #0x54] _020382E4: add r2, r4, #0x0 ldr r1, _020383D4 ; =0x020F2CA4 add r0, r6, #0x0 add r2, #0x48 bl FUN_02046500 mov r0, #0x5 str r0, [r4, #0x0] b _020383C8 _020382F6: ldr r0, [r4, #0x44] mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC add r3, r0, #0x0 add r0, sp, #0x30 str r0, [sp, #0x0] lsl r3, r3, #0x10 ldr r1, [r4, #0x44] mov r0, #0x0 mov r2, #0x1 lsr r3, r3, #0x10 bl FUN_02069168 str r0, [sp, #0x20] cmp r0, #0x0 beq _02038380 mov r0, #0x3 mov r1, #0x1a lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x24] ldr r0, [r5, #0xc] bl FUN_02079C70 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [sp, #0x28] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [sp, #0x2c] ldr r0, [r5, #0xc] bl FUN_0204C1A8 str r6, [sp, #0x0] ldr r1, [sp, #0x28] str r7, [sp, #0x4] str r1, [sp, #0x8] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x20] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x30] ldr r3, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x4 str r0, [sp, #0x18] mov r0, #0x1a str r0, [sp, #0x1c] ldr r1, [r4, #0x44] mov r0, #0x0 bl FUN_0206C700 str r0, [r4, #0x60] mov r0, #0x6 str r0, [r4, #0x0] b _020383C8 _02038380: mov r0, #0x7 str r0, [r4, #0x0] b _020383C8 _02038386: ldr r0, [r4, #0x60] bl FUN_0206C91C cmp r0, #0x0 beq _020383C8 ldr r0, [r4, #0xc] ldr r1, [r4, #0x30] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, [r4, #0x44] bl FUN_02069B88 ldr r0, [r4, #0x60] bl FUN_0206C92C mov r0, #0x1a bl FUN_020168D0 mov r0, #0x7 str r0, [r4, #0x0] b _020383C8 _020383B2: ldr r0, [r4, #0x38] add r0, r0, #0x1 str r0, [r4, #0x38] mov r0, #0x2 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x10 bl FUN_0202A170 _020383C8: mov r0, #0x0 add sp, #0x34 pop {r4-r7, pc} nop _020383D0: .word 0x02105DBC _020383D4: .word 0x020F2CA4 thumb_func_start FUN_020383D8 FUN_020383D8: ; 0x020383D8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x20 mov r1, #0x68 bl FUN_02016998 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] ldr r1, _020383F4 ; =FUN_020381FC add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _020383F4: .word FUN_020381FC thumb_func_start FUN_020383F8 FUN_020383F8: ; 0x020383F8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x20 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0x7c] str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r1, _02038428 ; =0x020F2C94 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 pop {r3-r5, pc} nop _02038428: .word 0x020F2C94 thumb_func_start FUN_0203842C FUN_0203842C: ; 0x0203842C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] str r0, [r4, #0x0] ldr r0, [r5, #0x7c] str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0xc] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] ldr r1, _02038468 ; =0x020F2D04 str r0, [r4, #0x10] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02038468: .word 0x020F2D04 thumb_func_start FUN_0203846C FUN_0203846C: ; 0x0203846C ldr r3, _02038474 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038478 ; =0x020F2D54 bx r3 .balign 4 _02038474: .word FUN_020373D4 _02038478: .word 0x020F2D54 thumb_func_start FUN_0203847C FUN_0203847C: ; 0x0203847C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x3 bhi _02038544 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020384A0: ; jump table (using 16-bit offset) .short _020384A8 - _020384A0 - 2; case 0 .short _020384B6 - _020384A0 - 2; case 1 .short _020384C8 - _020384A0 - 2; case 2 .short _020384D6 - _020384A0 - 2; case 3 _020384A8: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384B6: ldr r1, _02038548 ; =0x020FA5FC ldr r2, [r4, #0xc] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384C8: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384D6: ldr r1, [r4, #0xc] ldr r0, [r1, #0x0] cmp r0, #0x1 bne _020384F2 ldr r0, [r1, #0x18] ldr r1, [r4, #0x10] bl FUN_02021CE0 cmp r0, #0x0 bne _02038514 ldr r0, [r4, #0xc] mov r1, #0x1 str r1, [r0, #0x14] b _02038514 _020384F2: cmp r0, #0x5 bne _02038514 ldr r0, [r1, #0x18] bl FUN_02021F2C add r7, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0202881C add r1, r7, #0x0 bl FUN_02028854 cmp r0, #0x0 beq _02038514 ldr r0, [r4, #0xc] mov r1, #0x2 str r1, [r0, #0x14] _02038514: ldr r0, [r4, #0xc] ldr r0, [r0, #0x14] cmp r0, #0x0 bne _02038522 add r0, r5, #0x0 bl FUN_0203854C _02038522: ldr r1, [r4, #0x8] cmp r1, #0x0 beq _0203852E ldr r0, [r4, #0xc] ldr r0, [r0, #0x14] strh r0, [r1, #0x0] _0203852E: ldr r0, [r4, #0xc] bl FUN_02077AC4 ldr r0, [r4, #0x10] bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02038544: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02038548: .word 0x020FA5FC thumb_func_start FUN_0203854C FUN_0203854C: ; 0x0203854C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0xc] ldr r0, [r0, #0x0] cmp r0, #0x6 bhi _020385CA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02038572: ; jump table (using 16-bit offset) .short _02038580 - _02038572 - 2; case 0 .short _02038590 - _02038572 - 2; case 1 .short _020385CA - _02038572 - 2; case 2 .short _020385CA - _02038572 - 2; case 3 .short _020385CA - _02038572 - 2; case 4 .short _020385A8 - _02038572 - 2; case 5 .short _020385BC - _02038572 - 2; case 6 _02038580: ldr r0, [r5, #0xc] bl FUN_020238F4 ldr r1, [r4, #0xc] add r1, #0x1c bl FUN_0202395C pop {r3-r5, pc} _02038590: ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] bl FUN_0206B9B0 ldr r2, [r4, #0xc] mov r1, #0x75 add r2, #0x1c bl FUN_02067830 pop {r3-r5, pc} _020385A8: ldr r0, [r5, #0xc] bl FUN_0202881C ldr r3, [r4, #0xc] mov r1, #0x0 ldr r3, [r3, #0x18] add r2, r1, #0x0 bl FUN_020287C0 pop {r3-r5, pc} _020385BC: ldr r0, [r5, #0xc] bl FUN_02024EB4 ldr r1, [r4, #0xc] ldr r1, [r1, #0x18] bl FUN_02024F18 _020385CA: pop {r3-r5, pc} thumb_func_start FUN_020385CC FUN_020385CC: ; 0x020385CC push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x4] add r6, r1, #0x0 str r2, [sp, #0x8] str r3, [sp, #0xc] ldr r5, [sp, #0x2c] bl FUN_02046528 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [sp, #0x28] str r0, [r4, #0x4] ldr r0, [sp, #0x30] str r0, [r4, #0x8] ldr r0, [r7, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x0] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] mov r0, #0xb add r1, r6, #0x0 bl FUN_02077A84 str r0, [r4, #0xc] mov r0, #0xc mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x10] cmp r6, #0x1 beq _02038620 cmp r6, #0x5 beq _02038656 b _02038660 _02038620: ldr r0, [r7, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] bl FUN_0206B9B0 mov r1, #0x6f mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC ldr r1, [r4, #0xc] mov r2, #0x0 str r0, [r1, #0x10] add r0, r6, #0x0 mov r1, #0x70 bl FUN_020671BC ldr r1, [r4, #0xc] cmp r5, #0x0 str r0, [r1, #0x8] beq _0203866E ldr r0, [r4, #0x10] add r1, r5, #0x0 bl FUN_02021E28 b _0203866E _02038656: ldr r0, [r4, #0x10] add r1, r5, #0x0 bl FUN_02021E28 b _0203866E _02038660: cmp r5, #0x0 beq _0203866E ldr r0, [r4, #0xc] add r1, r5, #0x0 ldr r0, [r0, #0x18] bl FUN_02021E28 _0203866E: ldr r0, [sp, #0x4] ldr r1, _0203867C ; =FUN_0203847C add r2, r4, #0x0 bl FUN_0204640C add sp, #0x10 pop {r3-r7, pc} .balign 4 _0203867C: .word FUN_0203847C thumb_func_start FUN_02038680 FUN_02038680: ; 0x02038680 ldr r3, _02038688 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _0203868C ; =0x020F2C54 bx r3 .balign 4 _02038688: .word FUN_020373D4 _0203868C: .word 0x020F2C54 thumb_func_start FUN_02038690 FUN_02038690: ; 0x02038690 push {r3, lr} add r2, r1, #0x0 ldr r1, _020386A0 ; =0x020F2C44 bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _020386A0: .word 0x020F2C44 thumb_func_start FUN_020386A4 FUN_020386A4: ; 0x020386A4 ldr r3, _020386AC ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _020386B0 ; =0x020F2C34 bx r3 .balign 4 _020386AC: .word FUN_020373D4 _020386B0: .word 0x020F2C34 thumb_func_start FUN_020386B4 FUN_020386B4: ; 0x020386B4 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02029ABC ldr r5, _020386DC ; =0x020F2C24 add r3, sp, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r1, r2, #0x0 ldr r2, [r4, #0xc] add r0, r4, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r3-r5, pc} .balign 4 _020386DC: .word 0x020F2C24 thumb_func_start FUN_020386E0 FUN_020386E0: ; 0x020386E0 push {r4-r6, lr} sub sp, #0x10 ldr r3, _0203878C ; =0x020F2C64 add r2, sp, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0xb mov r1, #0x44 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202ABBC str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_02023788 str r0, [r4, #0x4] ldr r0, [r5, #0xc] mov r1, #0x2 bl FUN_02022610 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02022510 str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02024DA0 str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC str r0, [r4, #0x14] ldr r0, [r5, #0xc] bl FUN_02029AFC str r0, [r4, #0x18] ldr r0, [r5, #0xc] bl FUN_020238F4 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x24] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0x28] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r4, #0x2c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x3c] ldr r0, [r5, #0xc] str r0, [r4, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x34] ldr r0, [r4, #0x14] bl FUN_02033830 str r0, [r4, #0x38] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x30] add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 str r6, [r4, #0x40] bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0203878C: .word 0x020F2C64 thumb_func_start FUN_02038790 FUN_02038790: ; 0x02038790 push {r3-r7, lr} sub sp, #0x10 ldr r3, _02038800 ; =0x020F2C74 add r7, r2, #0x0 add r2, sp, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0xb mov r1, #0x28 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202A8D8 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0202A8E4 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02023788 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC bl FUN_02028228 str r0, [r4, #0x14] ldr r0, [r5, #0xc] str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_020286EC bl FUN_02033830 str r0, [r4, #0x1c] str r6, [r4, #0x18] add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 str r7, [r4, #0x24] bl FUN_020373D4 add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02038800: .word 0x020F2C74 thumb_func_start FUN_02038804 FUN_02038804: ; 0x02038804 ldr r3, _0203880C ; =FUN_020373D4 ldr r1, _02038810 ; =0x020F2D14 ldr r2, [r0, #0xc] bx r3 .balign 4 _0203880C: .word FUN_020373D4 _02038810: .word 0x020F2D14 thumb_func_start FUN_02038814 FUN_02038814: ; 0x02038814 ldr r3, _0203881C ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038820 ; =0x020F2D64 bx r3 .balign 4 _0203881C: .word FUN_020373D4 _02038820: .word 0x020F2D64 thumb_func_start FUN_02038824 FUN_02038824: ; 0x02038824 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r1, #0xb add r2, sp, #0x0 bl FUN_02022534 ldr r1, [sp, #0x0] add r4, r0, #0x0 cmp r1, #0x2 bne _02038842 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02038842: ldr r1, _02038850 ; =0x020F2BF4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02038850: .word 0x020F2BF4 thumb_func_start FUN_02038854 FUN_02038854: ; 0x02038854 ldr r3, _0203885C ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038860 ; =0x020F2C04 bx r3 .balign 4 _0203885C: .word FUN_020373D4 _02038860: .word 0x020F2C04 thumb_func_start FUN_02038864 FUN_02038864: ; 0x02038864 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02038888 ; =0x020F2C84 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02038888: .word 0x020F2C84 thumb_func_start FUN_0203888C FUN_0203888C: ; 0x0203888C push {r4-r6, lr} sub sp, #0x10 ldr r5, _020388B0 ; =0x020F2D84 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _020388B0: .word 0x020F2D84 thumb_func_start FUN_020388B4 FUN_020388B4: ; 0x020388B4 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C bl FUN_021ED49C add r5, r0, #0x0 bne _020388CC bl ErrorHandling _020388CC: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020613CC str r5, [sp, #0x0] ldr r0, [r4, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x4] ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [sp, #0x8] ldr r1, [r4, #0x1c] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0204AB58 add r1, sp, #0x0 strh r0, [r1, #0xc] ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020863DC add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02038900 FUN_02038900: ; 0x02038900 push {r3, lr} add r2, r1, #0x0 ldr r1, _02038910 ; =0x020F2C14 bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _02038910: .word 0x020F2C14 thumb_func_start FUN_02038914 FUN_02038914: ; 0x02038914 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r6, r0, #0x0 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _02038944 cmp r0, #0x1 beq _02038956 b _020389C6 _02038944: add r5, #0xc add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02038900 ldr r0, [r6, #0x0] add r0, r0, #0x1 str r0, [r6, #0x0] b _020389C6 _02038956: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020389C6 ldr r0, [r4, #0xc] bl FUN_0202390C str r0, [sp, #0x0] bl FUN_020126FC str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r6, r1, #0x0 bl FUN_02028930 str r0, [sp, #0x8] ldr r0, [r5, #0x4] ldr r1, [r5, #0x8] ldr r2, [sp, #0x4] add r3, r6, #0x0 bl FUN_020127C0 mov r2, #0x3c mov r3, #0x0 blx _ll_sdiv add r3, r0, #0x0 ldr r1, [sp, #0x8] ldr r2, [r5, #0x0] add r0, r4, #0x0 bl FUN_02061A8C ldr r0, [r4, #0xc] bl FUN_0202390C ldr r1, [r5, #0x0] bl FUN_02028918 add r0, r7, #0x0 bl FUN_0205F6C8 ldr r1, [r5, #0x18] cmp r1, r0 ble _020389BA lsl r1, r1, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 bl FUN_0205F6D8 _020389BA: add r0, r5, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _020389C6: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_020389CC FUN_020389CC: ; 0x020389CC push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0x20 add r1, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 str r4, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_0202390C bl FUN_02028930 str r0, [r4, #0x0] bl FUN_020126FC str r0, [r4, #0x4] str r1, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0x14] mov r0, #0x0 str r0, [r4, #0x18] ldr r0, [sp, #0x0] bl FUN_02025084 str r0, [r4, #0x1c] lsl r1, r6, #0x18 ldr r0, [r5, #0xc] lsr r1, r1, #0x18 bl FUN_02038A3C str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x5 bl FUN_0202A170 ldr r1, _02038A38 ; =FUN_02038914 add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02038A38: .word FUN_02038914 thumb_func_start FUN_02038A3C FUN_02038A3C: ; 0x02038A3C push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] bl FUN_0202881C add r4, r0, #0x0 bl FUN_0201B9D4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_020287A4 bl FUN_0201B9E0 ldr r0, _02038AAC ; =0x020F2BE8 add r1, sp, #0x8 mov r2, #0xc blx MI_CpuCopy8 mov r4, #0x0 mov r7, #0xc add r6, sp, #0x8 _02038A68: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0xc bhs _02038A92 _02038A72: bl FUN_0201B9EC add r1, r7, #0x0 blx _s32_div_f lsl r0, r1, #0x18 lsr r2, r0, #0x18 ldrb r1, [r6, r4] ldrb r0, [r6, r2] strb r0, [r6, r4] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 strb r1, [r6, r2] cmp r5, #0xc blo _02038A72 _02038A92: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xc blo _02038A68 ldr r0, [sp, #0x4] bl FUN_0201B9E0 ldr r0, [sp, #0x0] add r1, sp, #0x8 ldrb r0, [r1, r0] add sp, #0x14 pop {r4-r7, pc} .balign 4 _02038AAC: .word 0x020F2BE8 thumb_func_start FUN_02038AB0 FUN_02038AB0: ; 0x02038AB0 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 bl FUN_0224D79C cmp r0, #0x1 bne _02038ACA add r0, r4, #0x0 bl FUN_0224D76C mov r0, #0x1 pop {r4, pc} _02038ACA: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02038AD0 FUN_02038AD0: ; 0x02038AD0 push {r4, lr} add r4, r0, #0x0 bl FUN_02046528 add r2, r0, #0x0 ldr r1, [r2, #0xc] ldr r2, [r2, #0x8] mov r0, #0x4 bl FUN_0224D70C add r2, r0, #0x0 ldr r1, _02038AF0 ; =FUN_02038AB0 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _02038AF0: .word FUN_02038AB0 thumb_func_start FUN_02038AF4 FUN_02038AF4: ; 0x02038AF4 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x8 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 str r6, [r4, #0x4] ldr r0, [r5, #0xc] ldr r1, _02038B18 ; =0x020F2DA4 str r0, [r4, #0x0] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02038B18: .word 0x020F2DA4