.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD11_0222D5C0 MOD11_0222D5C0: ; 0x0222D5C0 push {r4, r5, r6, lr} sub sp, #0x28 add r4, r1, #0 add r6, r0, #0 bl FUN_0200628C ldr r1, [r4] add r5, r0, #0 cmp r1, #0xf bhi _0222D6D2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0222D5E0: ; jump table .short _0222D600 - _0222D5E0 - 2 ; case 0 .short _0222D620 - _0222D5E0 - 2 ; case 1 .short _0222D65A - _0222D5E0 - 2 ; case 2 .short _0222D670 - _0222D5E0 - 2 ; case 3 .short _0222D686 - _0222D5E0 - 2 ; case 4 .short _0222D696 - _0222D5E0 - 2 ; case 5 .short _0222D6AC - _0222D5E0 - 2 ; case 6 .short _0222D6C8 - _0222D5E0 - 2 ; case 7 .short _0222D6DA - _0222D5E0 - 2 ; case 8 .short _0222D6EE - _0222D5E0 - 2 ; case 9 .short _0222D704 - _0222D5E0 - 2 ; case 10 .short _0222D720 - _0222D5E0 - 2 ; case 11 .short _0222D742 - _0222D5E0 - 2 ; case 12 .short _0222D752 - _0222D5E0 - 2 ; case 13 .short _0222D7C2 - _0222D5E0 - 2 ; case 14 .short _0222D7E4 - _0222D5E0 - 2 ; case 15 _0222D600: mov r2, #0xb mov r0, #3 mov r1, #5 lsl r2, r2, #0x10 bl FUN_0201681C ldr r1, [r5] mov r0, #4 tst r0, r1 beq _0222D61A mov r0, #1 str r0, [r4] b _0222D7EA _0222D61A: mov r0, #3 str r0, [r4] b _0222D7EA _0222D620: add r0, r6, #0 add r1, r5, #0 bl MOD11_0222F29C mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02033778 bl FUN_02033590 cmp r0, #0 bne _0222D648 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x14 bl FUN_0202A0E8 b _0222D654 _0222D648: mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x19 bl FUN_0202A0E8 _0222D654: mov r0, #2 str r0, [r4] b _0222D7EA _0222D65A: add r0, r6, #0 bl MOD11_0222F4E4 cmp r0, #1 bne _0222D6D2 add r0, r6, #0 bl MOD11_0222F93C mov r0, #3 str r0, [r4] b _0222D7EA _0222D670: add r0, r6, #0 bl MOD11_0222F988 cmp r0, #1 bne _0222D680 mov r0, #4 str r0, [r4] b _0222D7EA _0222D680: mov r0, #5 str r0, [r4] b _0222D7EA _0222D686: add r0, r6, #0 bl MOD11_0222FABC cmp r0, #1 bne _0222D6D2 mov r0, #5 str r0, [r4] b _0222D7EA _0222D696: add r0, r6, #0 bl MOD11_0222FB04 cmp r0, #1 bne _0222D6A6 mov r0, #6 str r0, [r4] b _0222D7EA _0222D6A6: mov r0, #8 str r0, [r4] b _0222D7EA _0222D6AC: add r0, r6, #0 bl MOD11_0222FC38 cmp r0, #1 bne _0222D6D2 ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID bl UnloadOverlayByID mov r0, #7 str r0, [r4] mov r0, #0x3d bl FUN_02031588 b _0222D7EA _0222D6C8: mov r0, #0x3d bl FUN_020315D8 cmp r0, #0 bne _0222D6D4 _0222D6D2: b _0222D7EA _0222D6D4: mov r0, #8 str r0, [r4] b _0222D7EA _0222D6DA: ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID mov r1, #2 bl HandleLoadOverlay add r0, r6, #0 bl MOD11_0222DB50 mov r0, #9 str r0, [r4] b _0222D7EA _0222D6EE: add r0, r6, #0 bl MOD11_0222DF4C cmp r0, #1 bne _0222D7EA add r0, r6, #0 bl MOD11_0222DFA4 mov r0, #0xa str r0, [r4] b _0222D7EA _0222D704: add r0, r6, #0 bl MOD11_0222FC80 cmp r0, #1 bne _0222D714 mov r0, #0xb str r0, [r4] b _0222D7EA _0222D714: mov r0, #5 bl FUN_020168D0 mov r0, #0xd str r0, [r4] b _0222D7EA _0222D720: add r0, r6, #0 bl MOD11_0222FE58 cmp r0, #1 bne _0222D7EA ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID bl UnloadOverlayByID mov r0, #5 bl FUN_020168D0 mov r0, #0x3e bl FUN_02031588 mov r0, #0xc str r0, [r4] b _0222D7EA _0222D742: mov r0, #0x3e bl FUN_020315D8 cmp r0, #0 beq _0222D7EA mov r0, #0xf str r0, [r4] b _0222D7EA _0222D752: add r1, sp, #0x24 add r2, sp, #0x20 bl MOD11_02230D38 add r6, r0, #0 beq _0222D7BC mov r0, #3 mov r1, #0x49 lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r5, #4] ldr r1, [sp, #0x24] bl FUN_0206B9B0 add r1, r0, #0 mov r0, #0x5a lsl r0, r0, #2 ldr r2, [r5, r0] mov r3, #0x49 str r2, [sp] add r2, r0, #0 sub r2, #0x58 ldr r2, [r5, r2] str r2, [sp, #4] add r2, r0, #0 sub r2, #0x60 ldr r2, [r5, r2] str r2, [sp, #8] add r2, r0, #0 sub r2, #0x24 ldr r2, [r5, r2] sub r0, #0x40 str r2, [sp, #0xc] ldr r0, [r5, r0] add r2, r6, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x20] str r0, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] str r3, [sp, #0x1c] add r3, #0xe7 ldr r0, [r5, #4] ldr r3, [r5, r3] bl FUN_0206C700 mov r1, #0x66 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0xe str r0, [r4] b _0222D7EA _0222D7BC: mov r0, #0xf str r0, [r4] b _0222D7EA _0222D7C2: mov r0, #0x66 lsl r0, r0, #2 ldr r5, [r5, r0] add r0, r5, #0 bl FUN_0206C91C cmp r0, #1 bne _0222D7EA add r0, r5, #0 bl FUN_0206C92C mov r0, #0x49 bl FUN_020168D0 mov r0, #0xd str r0, [r4] b _0222D7EA _0222D7E4: add sp, #0x28 mov r0, #1 pop {r4, r5, r6, pc} _0222D7EA: mov r0, #0 add sp, #0x28 pop {r4, r5, r6, pc} .align 2, 0 _0222D7F0: .word SDK_OVERLAY_MODULE_07_ID _0222D7F4: .word SDK_OVERLAY_MODULE_08_ID thumb_func_start MOD11_0222D7F8 MOD11_0222D7F8: ; 0x0222D7F8 push {r4, lr} add r4, r0, #0 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_02258658 ldr r0, [r4, #4] bl MOD11_022584AC ldr r1, _0222D834 ; =0x000023FB mov r0, #4 ldrb r2, [r4, r1] orr r0, r2 strb r0, [r4, r1] mov r0, #2 bl FUN_02002CF8 add r0, r4, #0 mov r1, #3 bl MOD11_02231338 ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID bl UnloadOverlayByID ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID mov r1, #2 bl HandleLoadOverlay pop {r4, pc} .align 2, 0 _0222D834: .word 0x000023FB _0222D838: .word SDK_OVERLAY_MODULE_08_ID _0222D83C: .word SDK_OVERLAY_MODULE_09_ID thumb_func_start MOD11_0222D840 MOD11_0222D840: ; 0x0222D840 push {r4, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_02258658 ldr r0, [r4, #8] bl FUN_02019178 ldr r0, [r4, #4] bl MOD11_0222E4E8 add r0, r4, #0 bl MOD11_0222E51C add r0, r4, #0 add r1, r4, #0 add r0, #0x90 add r1, #0x94 ldr r0, [r0] ldr r1, [r1] bl FUN_0200C398 add r4, #0x90 ldr r0, [r4] bl FUN_0200BD04 bl FUN_0201C29C mov r0, #2 bl FUN_02002CF8 pop {r4, pc} thumb_func_start MOD11_0222D88C MOD11_0222D88C: ; 0x0222D88C push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID bl UnloadOverlayByID ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID mov r1, #2 bl HandleLoadOverlay add r0, r4, #0 mov r1, #0 bl MOD11_02231338 bl FUN_02022300 add r5, r0, #0 bl FUN_020222F8 add r1, r0, #0 mov r0, #0 add r2, r5, #0 bl MIi_CpuClear16 bl FUN_02031190 add r1, r0, #0 add r0, r4, #0 bl MOD11_0223021C add r1, r0, #0 add r0, r4, #0 bl MOD11_022584D4 mov r1, #0x67 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #2 mov r1, #5 bl FUN_02002C50 ldr r1, _0222D940 ; =0x000023FB mov r0, #2 ldrb r2, [r4, r1] orr r0, r2 strb r0, [r4, r1] ldr r0, [r4, #4] bl MOD11_02258450 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_022586BC mov r0, #0x67 lsl r0, r0, #2 mov r1, #0 ldr r0, [r4, r0] mov r2, #1 add r3, r1, #0 bl MOD11_02258820 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_02258958 mov r0, #1 bl FUN_02002840 add r0, r4, #0 bl MOD11_0222FE94 add r4, #0x90 ldr r0, [r4] bl FUN_0200BB68 mov r2, #0x11 mov r1, #0 lsl r2, r2, #0x10 bl FUN_02008D24 pop {r3, r4, r5, pc} .align 2, 0 _0222D938: .word SDK_OVERLAY_MODULE_09_ID _0222D93C: .word SDK_OVERLAY_MODULE_08_ID _0222D940: .word 0x000023FB thumb_func_start MOD11_0222D944 MOD11_0222D944: ; 0x0222D944 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_02019178 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #3 bl FUN_020178A0 add r0, r4, #0 bl MOD11_02231410 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0222D980 MOD11_0222D980: ; 0x0222D980 push {r4, r5, r6, lr} sub sp, #0x68 ldr r1, _0222DB38 ; =0x000023FB add r5, r0, #0 ldrb r2, [r5, r1] mov r0, #1 ldr r4, _0222DB3C ; =0x0225DAE0 bic r2, r0 mov r0, #1 orr r0, r2 strb r0, [r5, r1] add r3, sp, #0x14 mov r2, #0xa _0222D99A: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222D99A ldr r0, [r4] mov r1, #1 str r0, [r3] ldr r0, [r5, #4] add r2, sp, #0x14 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] mov r1, #1 bl FUN_02018744 ldr r0, [r5, #4] mov r1, #2 add r2, sp, #0x30 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] mov r1, #2 bl FUN_02018744 ldr r0, [r5, #4] mov r1, #3 add r2, sp, #0x4c mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] mov r1, #3 bl FUN_02018744 ldr r1, _0222DB40 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r2, r0 strh r2, [r1] add r1, r0, #0 bl FUN_0201E6E4 add r0, r5, #0 bl MOD11_02230E44 add r4, r0, #0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #5 str r0, [sp, #4] mov r1, #1 ldr r0, [r5, #4] add r2, r1, #0 mov r3, #0xa bl FUN_0200D274 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r1, #9 lsl r1, r1, #0xa ldr r1, [r5, r1] ldr r2, [r5, #4] mov r0, #7 add r1, r1, #3 mov r3, #3 bl FUN_0200687C add r0, r5, #0 bl MOD11_02230C68 add r2, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r3, #9 str r0, [sp, #8] lsl r3, r3, #0xa ldr r6, [r5, r3] ldr r0, [r5, #0x28] lsl r3, r6, #1 add r3, r6, r3 add r3, #0x9e add r2, r3, r2 mov r1, #7 mov r3, #5 bl FUN_020030E8 add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xa0 str r0, [sp, #8] ldr r0, [r5, #0x28] mov r1, #0x26 mov r3, #5 bl FUN_020030E8 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xb0 str r0, [sp, #8] ldr r0, [r5, #0x28] mov r1, #0xe mov r2, #7 mov r3, #5 bl FUN_020030E8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #7 mov r1, #2 mov r3, #3 bl FUN_020068C8 mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _0222DB44 ; =0xFFFF1FFF ldr r3, _0222DB48 ; =0x04001000 and r2, r1 str r2, [r0] ldr r2, [r3] and r1, r2 add r2, r0, #0 str r1, [r3] add r2, #0x48 ldrh r3, [r2] mov r1, #0x3f add r0, #0x4a bic r3, r1 strh r3, [r2] ldrh r2, [r0] bic r2, r1 strh r2, [r0] bl FUN_0201E788 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C ldr r0, _0222DB4C ; =MOD11_0222F01C add r1, r5, #0 bl FUN_02015F10 ldr r0, _0222DB38 ; =0x000023FB mov r3, #2 ldrb r1, [r5, r0] mov r2, #1 orr r1, r3 strb r1, [r5, r0] mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r5, #4] ldr r1, [r5, #8] bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xff bl FUN_02019620 ldr r0, [r5, #8] mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200D0BC add r0, r5, #0 bl MOD11_0222FE94 add sp, #0x68 pop {r4, r5, r6, pc} nop _0222DB38: .word 0x000023FB _0222DB3C: .word 0x0225DAE0 _0222DB40: .word 0x04000008 _0222DB44: .word 0xFFFF1FFF _0222DB48: .word 0x04001000 _0222DB4C: .word MOD11_0222F01C thumb_func_start MOD11_0222DB50 MOD11_0222DB50: ; 0x0222DB50 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 bl FUN_02006278 add r4, r0, #0 bl FUN_020222F0 add r5, r0, #0 bl FUN_020222E8 add r1, r0, #0 mov r0, #0 add r2, r5, #0 bl MIi_CpuClear16 bl FUN_02022300 add r5, r0, #0 bl FUN_020222F8 add r1, r0, #0 mov r0, #0 add r2, r5, #0 bl MIi_CpuClear16 bl FUN_0201B9D4 ldr r1, _0222DF0C ; =0x00002430 str r0, [r4, r1] add r0, sp, #0x20 add r1, sp, #0x14 bl FUN_0201265C ldr r0, _0222DF10 ; =0x021C48B8 ldr r6, [sp, #0x24] ldr r5, [r0, #0x2c] ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] lsl r6, r6, #8 add r0, r1, r0 lsl r3, r0, #0x18 ldr r0, [sp, #0x14] ldr r1, [sp, #0x20] lsl r2, r0, #0x10 ldr r0, [sp, #0x28] mul r6, r0 lsl r0, r6, #0x10 add r0, r1, r0 add r0, r2, r0 add r0, r3, r0 add r0, r5, r0 bl FUN_0201B9E0 bl MOD11_0222EF30 str r0, [r4] bl FUN_02015F1C mov r0, #2 mov r1, #5 bl FUN_02002C50 mov r0, #0xe mov r1, #1 mov r2, #0xf mov r3, #5 bl FUN_0200B870 mov r1, #0x6a lsl r1, r1, #2 str r0, [r4, r1] ldr r2, [r4, r1] add r0, r1, #4 str r2, [r4, r0] mov r0, #5 bl FUN_02002FD0 str r0, [r4, #0x28] mov r1, #1 bl FUN_020038F0 mov r2, #2 ldr r0, [r4, #0x28] mov r1, #0 lsl r2, r2, #8 mov r3, #5 bl FUN_02003008 mov r1, #1 ldr r0, [r4, #0x28] lsl r2, r1, #9 mov r3, #5 bl FUN_02003008 mov r2, #7 ldr r0, [r4, #0x28] mov r1, #2 lsl r2, r2, #6 mov r3, #5 bl FUN_02003008 mov r2, #2 ldr r0, [r4, #0x28] mov r1, #3 lsl r2, r2, #8 mov r3, #5 bl FUN_02003008 mov r0, #5 bl FUN_02016B94 str r0, [r4, #4] mov r0, #5 mov r1, #3 bl FUN_02018FF4 mov r7, #0x73 str r0, [r4, #8] mov r6, #0 add r5, r4, #0 lsl r7, r7, #2 _0222DC42: mov r1, #0x32 mov r0, #5 lsl r1, r1, #6 bl FUN_02016998 str r0, [r5, r7] add r6, r6, #1 add r5, #0x10 cmp r6, #4 blt _0222DC42 mov r0, #0x40 mov r1, #5 bl FUN_0201C24C bl FUN_02031190 add r1, r0, #0 add r0, r4, #0 bl MOD11_0223021C add r1, r0, #0 add r0, r4, #0 bl MOD11_022584D4 mov r1, #0x67 lsl r1, r1, #2 str r0, [r4, r1] ldr r1, [r4, #4] add r0, r4, #0 bl MOD11_0222E264 mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r4, #4] ldr r1, [r4, #8] mov r2, #1 mov r3, #2 bl FUN_02019064 ldr r0, [r4, #8] mov r1, #0xff bl FUN_02019620 ldr r0, [r4, #8] mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200D0BC mov r0, #5 bl FUN_0200BB14 add r1, r4, #0 add r1, #0x90 str r0, [r1] add r0, r4, #0 add r0, #0x90 ldr r0, [r0] ldr r1, _0222DF14 ; =0x0225DA20 ldr r2, _0222DF18 ; =0x0225D9D8 mov r3, #0x20 bl FUN_0200BB6C ldr r1, _0222DF1C ; =0x00100010 mov r0, #1 bl FUN_02008D44 mov r0, #1 bl FUN_02008DDC add r0, r4, #0 add r0, #0x90 ldr r0, [r0] bl FUN_0200BB34 add r1, r4, #0 add r1, #0x94 str r0, [r1] add r0, r4, #0 add r1, r4, #0 add r0, #0x90 add r1, #0x94 ldr r0, [r0] ldr r1, [r1] mov r2, #0x80 bl FUN_0200BBF0 add r0, r4, #0 add r1, r4, #0 add r0, #0x90 add r1, #0x94 ldr r0, [r0] ldr r1, [r1] ldr r2, _0222DF20 ; =0x0225D9EC bl FUN_0200BF60 add r0, r4, #0 add r0, #0x90 ldr r0, [r0] bl FUN_0200BB68 mov r2, #0x11 mov r1, #0 lsl r2, r2, #0x10 bl FUN_02008D24 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_022586BC mov r0, #0x67 lsl r0, r0, #2 mov r1, #0 ldr r0, [r4, r0] mov r2, #1 add r3, r1, #0 bl MOD11_02258820 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD11_02258958 mov r0, #5 bl FUN_02006D98 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x88 ldr r0, [r0] mov r1, #0 mov r2, #0xc0 bl FUN_020081B4 add r0, r4, #0 bl MOD11_02231390 bl MOD11_0222EFDC mov r0, #5 bl FUN_02211F5C add r1, r4, #0 add r1, #0x8c str r0, [r1] add r0, r4, #0 bl MOD11_0222E470 bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 mov r2, #0x51 mov r0, #1 mov r1, #0x1a lsl r2, r2, #2 mov r3, #5 bl FUN_0200A86C str r0, [r4, #0xc] mov r0, #1 mov r1, #0x1a mov r2, #0 mov r3, #5 bl FUN_0200A86C str r0, [r4, #0x10] mov r0, #5 bl FUN_0200AA80 str r0, [r4, #0x14] mov r0, #5 lsl r0, r0, #6 mov r1, #5 bl FUN_020219F4 str r0, [r4, #0x18] ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020031FC ldr r1, _0222DF24 ; =0x00002224 mov r2, #0xe0 add r1, r4, r1 bl MIi_CpuCopy16 ldr r0, [r4, #0x28] mov r1, #2 bl FUN_020031FC ldr r1, _0222DF28 ; =0x00002304 mov r2, #0xe0 add r1, r4, r1 bl MIi_CpuCopy16 add r0, r4, #0 bl MOD11_02230C68 mov r1, #0 lsl r5, r0, #2 mov r3, #9 str r1, [sp] mov r0, #0x70 str r0, [sp, #4] lsl r3, r3, #0xa ldr r3, [r4, r3] mov r6, #0xc mul r6, r3 ldr r3, _0222DF2C ; =0x0225DB88 ldr r0, [r4, #0x28] add r3, r3, r6 ldr r3, [r5, r3] mov r2, #2 lsl r3, r3, #0x10 lsr r3, r3, #0x10 bl FUN_02003914 mov r0, #0xc0 str r0, [sp] add r0, #0x40 mov r3, #9 str r0, [sp, #4] lsl r3, r3, #0xa ldr r3, [r4, r3] mov r6, #0xc mul r6, r3 ldr r3, _0222DF2C ; =0x0225DB88 ldr r0, [r4, #0x28] add r3, r3, r6 ldr r3, [r5, r3] mov r1, #0 lsl r3, r3, #0x10 mov r2, #2 lsr r3, r3, #0x10 bl FUN_02003914 mov r0, #0 str r0, [sp] mov r0, #0xdf mov r3, #9 str r0, [sp, #4] lsl r3, r3, #0xa mov r1, #2 ldr r3, [r4, r3] mov r6, #0xc mul r6, r3 ldr r3, _0222DF2C ; =0x0225DB88 ldr r0, [r4, #0x28] add r3, r3, r6 ldr r3, [r5, r3] add r2, r1, #0 lsl r3, r3, #0x10 lsr r3, r3, #0x10 bl FUN_02003914 mov r1, #0 mov r0, #0xa0 str r0, [sp] mov r0, #0xc0 str r0, [sp, #4] ldr r0, [r4, #0x28] add r2, r1, #0 add r3, r1, #0 bl FUN_02003914 mov r2, #0 str r2, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [r4, #0x28] ldr r3, _0222DF30 ; =0x0000FFFF mov r1, #1 bl FUN_02003914 mov r2, #0 str r2, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [r4, #0x28] ldr r3, _0222DF30 ; =0x0000FFFF mov r1, #3 bl FUN_02003914 ldr r0, [r4, #0x28] mov r1, #0 mov r2, #0xb mov r3, #5 bl FUN_020142EC mov r1, #0x1b lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #1 bl FUN_020143A8 ldr r0, _0222DF34 ; =MOD11_0222F100 ldr r2, _0222DF38 ; =0x0000EA60 add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x1c] ldr r0, _0222DF3C ; =MOD11_0222F144 ldr r2, _0222DF40 ; =0x0000C350 add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x20] mov r2, #0x4b ldr r0, _0222DF44 ; =MOD11_0222F254 add r1, r4, #0 lsl r2, r2, #4 bl FUN_0200CA60 str r0, [r4, #0x24] mov r1, #0x32 ldr r0, _0222DF48 ; =0x00002434 mvn r1, r1 str r1, [r4, r0] add r0, r4, #0 bl MOD11_0222FE94 add r0, r4, #0 bl MOD11_02230218 bl FUN_0206F1C0 mov r0, #5 mov r1, #4 mov r2, #0 bl FUN_02014BF4 mov r1, #0x71 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #2 mov r1, #5 bl FUN_0201C328 mov r1, #0x72 lsl r1, r1, #2 str r0, [r4, r1] add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _0222DF0C: .word 0x00002430 _0222DF10: .word 0x021C48B8 _0222DF14: .word 0x0225DA20 _0222DF18: .word 0x0225D9D8 _0222DF1C: .word 0x00100010 _0222DF20: .word 0x0225D9EC _0222DF24: .word 0x00002224 _0222DF28: .word 0x00002304 _0222DF2C: .word 0x0225DB88 _0222DF30: .word 0x0000FFFF _0222DF34: .word MOD11_0222F100 _0222DF38: .word 0x0000EA60 _0222DF3C: .word MOD11_0222F144 _0222DF40: .word 0x0000C350 _0222DF44: .word MOD11_0222F254 _0222DF48: .word 0x00002434 thumb_func_start MOD11_0222DF4C MOD11_0222DF4C: ; 0x0222DF4C push {r4, r5, r6, lr} bl FUN_02006278 ldr r1, _0222DF9C ; =0x000023F8 add r4, r0, #0 ldrb r1, [r4, r1] cmp r1, #0 beq _0222DF7A ldr r2, [r4, #0x2c] mov r1, #4 tst r1, r2 ldr r1, [r4, #0x30] beq _0222DF6C bl MOD11_0223D238 b _0222DF7A _0222DF6C: bl MOD11_0223D238 ldr r1, _0222DFA0 ; =0x000023FA strb r0, [r4, r1] add r0, r4, #0 bl MOD11_02254820 _0222DF7A: ldr r0, [r4, #0x44] mov r6, #0 cmp r0, #0 ble _0222DF96 add r5, r4, #0 _0222DF84: ldr r1, [r5, #0x34] add r0, r4, #0 bl MOD11_0224CB38 ldr r0, [r4, #0x44] add r6, r6, #1 add r5, r5, #4 cmp r6, r0 blt _0222DF84 _0222DF96: ldr r0, _0222DFA0 ; =0x000023FA ldrb r0, [r4, r0] pop {r4, r5, r6, pc} .align 2, 0 _0222DF9C: .word 0x000023F8 _0222DFA0: .word 0x000023FA thumb_func_start MOD11_0222DFA4 MOD11_0222DFA4: ; 0x0222DFA4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C add r7, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 add r0, r4, #0 bl MOD11_02230EC8 ldr r0, _0222E248 ; =0x0000241C ldrb r0, [r4, r0] cmp r0, #4 beq _0222DFE4 ldr r0, [r4, #0x6c] mov r1, #0 bl FUN_0206B9B0 add r1, r0, #0 add r0, r4, #0 bl MOD11_02230FA8 _0222DFE4: mov r0, #0 str r0, [sp] add r6, r7, #0 add r5, r4, #0 _0222DFEC: ldr r0, [r5, #0x68] ldr r1, [r6, #4] bl FUN_0206BAD0 ldr r0, [r5, #0x68] bl FUN_02016A18 add r1, r6, #0 add r1, #0xf8 ldr r0, [r5, #0x48] ldr r1, [r1] bl FUN_0202393C ldr r0, [r5, #0x48] bl FUN_02016A18 ldr r0, [sp] add r6, r6, #4 add r0, r0, #1 add r5, r5, #4 str r0, [sp] cmp r0, #4 blt _0222DFEC mov r0, #0x1b lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_020143D0 mov r1, #0x42 lsl r1, r1, #2 ldr r0, [r4, #0x58] ldr r1, [r7, r1] bl FUN_0206EBB4 ldr r0, [r4, #0x58] bl FUN_02016A18 mov r1, #0x11 lsl r1, r1, #4 ldr r0, [r4, #0x60] ldr r1, [r7, r1] bl FUN_02023D80 ldr r0, [r4, #0x60] bl FUN_02016A18 mov r0, #0x45 ldr r1, [r4, #0x64] lsl r0, r0, #2 str r1, [r7, r0] add r1, r0, #0 ldr r2, [r4, #0x5c] sub r1, #8 str r2, [r7, r1] add r1, r4, #0 add r1, #0x98 ldr r2, [r1] add r1, r0, #0 add r1, #0x14 str r2, [r7, r1] add r1, r4, #0 add r1, #0x9c ldr r2, [r1] add r1, r0, #0 add r1, #0x20 str r2, [r7, r1] add r1, r0, #0 ldr r2, _0222E24C ; =0x00002410 add r1, #0x7c ldr r3, [r4, r2] add r0, #0x5c str r3, [r7, r1] add r1, r2, #0 add r1, #0xc ldrb r3, [r4, r1] mov r1, #0x3f add r2, #0x28 and r1, r3 str r1, [r7, #0x14] ldr r1, [r4, r2] mov r2, #4 str r1, [r7, r0] ldr r1, [r4, #0x30] add r0, r4, #0 mov r3, #0 bl MOD11_0224C474 mov r1, #0x5e lsl r1, r1, #2 str r0, [r7, r1] ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #3 mov r3, #0 bl MOD11_0224C474 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r7, r1] mov r3, #0 add r0, r2, r0 str r0, [r7, r1] ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #6 bl MOD11_0224C474 add r5, r0, #0 ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #6 mov r3, #2 bl MOD11_0224C474 mov r1, #0x4f lsl r1, r1, #2 ldr r2, [r7, r1] add r0, r5, r0 add r0, r2, r0 str r0, [r7, r1] ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #7 mov r3, #0 bl MOD11_0224C474 add r5, r0, #0 ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #7 mov r3, #2 bl MOD11_0224C474 mov r1, #5 lsl r1, r1, #6 ldr r2, [r7, r1] add r0, r5, r0 add r0, r2, r0 str r0, [r7, r1] add r7, r1, #0 mov r6, #0 add r5, r4, #0 add r7, #0x8c _0222E10A: ldr r0, [r5, r7] bl FUN_02016A18 add r6, r6, #1 add r5, #0x10 cmp r6, #4 blt _0222E10A ldr r0, [r4, #0x18] bl FUN_02016A18 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_02003038 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_02003038 ldr r0, [r4, #0x28] mov r1, #2 bl FUN_02003038 ldr r0, [r4, #0x28] mov r1, #3 bl FUN_02003038 ldr r0, [r4, #0x28] bl FUN_02002FEC ldr r0, [r4, #0xc] bl FUN_0200A8B8 ldr r0, [r4, #0x10] bl FUN_0200A8B8 ldr r0, [r4, #0x14] bl FUN_0200AB18 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02014C28 bl FUN_02012EAC add r0, r4, #0 add r0, #0x8c ldr r0, [r0] bl FUN_02212024 ldr r0, [r4, #0x30] bl MOD11_0223D284 ldr r0, [r4, #0x44] mov r6, #0 cmp r0, #0 ble _0222E194 ldr r7, _0222E250 ; =0x000023F9 add r5, r4, #0 _0222E180: ldrb r2, [r4, r7] ldr r1, [r5, #0x34] add r0, r4, #0 bl MOD11_0224CB54 ldr r0, [r4, #0x44] add r6, r6, #1 add r5, r5, #4 cmp r6, r0 blt _0222E180 _0222E194: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl FUN_020072E8 ldr r0, _0222E250 ; =0x000023F9 ldrb r0, [r4, r0] cmp r0, #2 beq _0222E1AC add r0, r4, #0 bl MOD11_0222D840 _0222E1AC: mov r0, #0 bl FUN_02002B60 mov r0, #0 bl FUN_02002B7C mov r0, #0 bl FUN_02002BB8 ldr r0, [r4, #8] mov r1, #3 bl FUN_020191A4 ldr r0, [r4, #4] bl FUN_02016A18 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x6a lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0200B990 mov r0, #2 bl FUN_02002CF8 ldr r0, [r4, #0x1c] bl FUN_0200CAB4 ldr r0, [r4, #0x20] bl FUN_0200CAB4 bl FUN_0201CD04 ldr r0, [r4] bl MOD11_0222EFD4 ldr r0, _0222E254 ; =0x00002430 ldr r0, [r4, r0] bl FUN_0201B9E0 add r0, r4, #0 bl MOD11_02231474 cmp r0, #0 beq _0222E220 ldr r0, _0222E258 ; =0x00000704 mov r1, #0 bl FUN_020054F0 _0222E220: mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201C350 add r0, r4, #0 bl FUN_02016A18 ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID bl UnloadOverlayByID bl FUN_02033590 cmp r0, #0 bne _0222E244 ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID bl UnloadOverlayByID _0222E244: pop {r3, r4, r5, r6, r7, pc} nop _0222E248: .word 0x0000241C _0222E24C: .word 0x00002410 _0222E250: .word 0x000023F9 _0222E254: .word 0x00002430 _0222E258: .word 0x00000704 _0222E25C: .word SDK_OVERLAY_MODULE_08_ID _0222E260: .word SDK_OVERLAY_MODULE_16_ID thumb_func_start MOD11_0222E264 MOD11_0222E264: ; 0x0222E264 push {r4, r5, r6, r7, lr} sub sp, #0x9c add r5, r0, #0 add r4, r1, #0 bl FUN_0201E6D8 mov r0, #0 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 ldr r6, _0222E450 ; =0x0225DA68 add r3, sp, #0x20 mov r2, #5 _0222E282: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222E282 add r0, sp, #0x20 bl FUN_0201E66C mov r1, #6 mov r2, #2 mov r0, #0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x62 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 mov r1, #0x19 mov r2, #1 mov r0, #0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x66 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 ldr r6, _0222E454 ; =0x0225D9A8 add r3, sp, #0x10 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r1, _0222E458 ; =0x000023FB mov r0, #1 ldrb r2, [r5, r1] ldr r6, _0222E45C ; =0x0225DB34 add r3, sp, #0x48 bic r2, r0 mov r0, #1 orr r0, r2 strb r0, [r5, r1] mov r2, #0xa _0222E2F0: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222E2F0 ldr r0, [r6] mov r1, #1 str r0, [r3] add r0, r4, #0 add r2, sp, #0x48 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 add r0, r4, #0 mov r1, #2 add r2, sp, #0x64 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 add r0, r4, #0 mov r1, #3 add r2, sp, #0x80 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #3 bl FUN_02018744 ldr r1, _0222E460 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r2, r0 strh r2, [r1] add r1, r0, #0 bl FUN_0201E6E4 add r0, r4, #0 bl MOD11_02258450 add r0, r5, #0 bl MOD11_02230E44 add r7, r0, #0 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #5 mov r1, #1 str r0, [sp, #4] add r0, r4, #0 add r2, r1, #0 mov r3, #0xa bl FUN_0200D274 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #5 mov r1, #9 str r0, [sp, #0xc] lsl r1, r1, #0xa ldr r1, [r5, r1] mov r0, #7 add r1, r1, #3 add r2, r4, #0 mov r3, #3 bl FUN_0200687C add r0, r5, #0 bl MOD11_02230C68 add r6, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r2, #9 str r0, [sp, #8] lsl r2, r2, #0xa ldr r3, [r5, r2] ldr r0, [r5, #0x28] lsl r2, r3, #1 add r2, r3, r2 add r2, #0x9e mov r1, #7 add r2, r2, r6 mov r3, #5 bl FUN_020030E8 add r0, r7, #0 bl FUN_0200CD64 add r2, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xa0 str r0, [sp, #8] ldr r0, [r5, #0x28] mov r1, #0x26 mov r3, #5 bl FUN_020030E8 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xb0 str r0, [sp, #8] ldr r0, [r5, #0x28] mov r1, #0xe mov r2, #7 mov r3, #5 bl FUN_020030E8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r0, #7 mov r1, #2 add r2, r4, #0 mov r3, #3 bl FUN_020068C8 mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _0222E464 ; =0xFFFF1FFF ldr r3, _0222E468 ; =0x04001000 and r2, r1 str r2, [r0] ldr r2, [r3] and r1, r2 add r2, r0, #0 str r1, [r3] add r2, #0x48 ldrh r3, [r2] mov r1, #0x3f add r0, #0x4a bic r3, r1 strh r3, [r2] ldrh r2, [r0] bic r2, r1 strh r2, [r0] bl FUN_0201E788 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C ldr r0, _0222E46C ; =MOD11_0222F01C add r1, r5, #0 bl FUN_02015F10 add sp, #0x9c pop {r4, r5, r6, r7, pc} .align 2, 0 _0222E450: .word 0x0225DA68 _0222E454: .word 0x0225D9A8 _0222E458: .word 0x000023FB _0222E45C: .word 0x0225DB34 _0222E460: .word 0x04000008 _0222E464: .word 0xFFFF1FFF _0222E468: .word 0x04001000 _0222E46C: .word MOD11_0222F01C thumb_func_start MOD11_0222E470 MOD11_0222E470: ; 0x0222E470 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl MOD11_02230294 add r4, r0, #0 mov r0, #0x5f lsl r0, r0, #2 add r0, r5, r0 add r1, r5, #0 mov r2, #0 add r3, r4, #0 bl MOD11_022583D8 mov r0, #0x63 lsl r0, r0, #2 add r0, r5, r0 add r1, r5, #0 mov r2, #1 add r3, r4, #0 bl MOD11_022583D8 add r0, r5, #0 bl MOD11_0222FF78 str r0, [sp] ldr r0, [r5, #0x44] mov r4, #0 cmp r0, #0 ble _0222E4E2 add r6, r5, #0 _0222E4AC: ldr r1, [sp] add r0, r5, #0 mov r2, #2 add r3, r4, #0 bl MOD11_0224C474 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_02230014 mov r1, #0x9a mov r2, #0 bl FUN_020671BC add r2, r0, #0 ldr r1, [r6, #0x34] add r0, r5, #0 add r3, r7, #0 bl MOD11_0224CA94 ldr r0, [r5, #0x44] add r4, r4, #1 add r6, r6, #4 cmp r4, r0 blt _0222E4AC _0222E4E2: bl FUN_02033E74 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0222E4E8 MOD11_0222E4E8: ; 0x0222E4E8 push {r4, lr} add r4, r0, #0 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 add r0, r4, #0 mov r1, #1 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 bl FUN_020178A0 add r0, r4, #0 mov r1, #3 bl FUN_020178A0 add r0, r4, #0 bl MOD11_022584AC pop {r4, pc} thumb_func_start MOD11_0222E51C MOD11_0222E51C: ; 0x0222E51C bx lr .align 2, 0 thumb_func_start MOD11_0222E520 MOD11_0222E520: ; 0x0222E520 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r4, r0, #0 ldr r0, [r1] str r1, [sp, #4] str r0, [r4, #0x2c] mov r7, #0 add r6, r4, #0 add r5, r1, #0 _0222E532: mov r0, #5 bl FUN_02023928 add r1, r0, #0 add r0, r5, #0 str r1, [r6, #0x48] add r0, #0xf8 ldr r0, [r0] bl FUN_0202393C mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r5, r0] add r7, r7, #1 str r0, [r6, #0x78] add r6, r6, #4 add r5, r5, #4 cmp r7, #4 blt _0222E532 mov r0, #5 bl FUN_0206EB88 str r0, [r4, #0x58] mov r1, #0x42 ldr r0, [sp, #4] lsl r1, r1, #2 ldr r0, [r0, r1] ldr r1, [r4, #0x58] bl FUN_0206EBB4 mov r0, #5 bl FUN_02023D6C str r0, [r4, #0x60] mov r1, #0x11 ldr r0, [sp, #4] lsl r1, r1, #4 ldr r0, [r0, r1] ldr r1, [r4, #0x60] bl FUN_02023D80 mov r1, #0x45 lsl r1, r1, #2 ldr r0, [sp, #4] add r2, r1, #0 ldr r0, [r0, r1] add r3, r1, #0 str r0, [r4, #0x64] ldr r0, [sp, #4] add r2, #0x1c ldr r2, [r0, r2] add r0, r1, #0 add r0, #0xa0 str r2, [r4, r0] add r2, r1, #0 ldr r0, [sp, #4] add r2, #0x38 ldr r2, [r0, r2] add r0, r1, #0 add r0, #0xa4 str r2, [r4, r0] add r2, r1, #0 ldr r0, [sp, #4] sub r2, #8 ldr r0, [r0, r2] add r2, r1, #0 str r0, [r4, #0x5c] ldr r0, [sp, #4] add r2, #0x14 ldr r2, [r0, r2] add r0, r4, #0 add r0, #0x98 str r2, [r0] add r2, r1, #0 ldr r0, [sp, #4] add r2, #0x50 ldr r2, [r0, r2] ldr r0, _0222E8BC ; =0x00002420 add r3, #0x20 str r2, [r4, r0] ldr r2, [sp, #4] ldr r3, [r2, r3] add r2, r4, #0 add r2, #0x9c str r3, [r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x7c ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x10 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x40 ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x24 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x3c ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x20 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x44 ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x1c str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x4c ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x14 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x78 ldr r3, [r2, r3] add r2, r0, #0 sub r2, #0x18 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x80 ldr r3, [r2, r3] add r2, r0, #0 sub r2, #8 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x54 ldr r3, [r2, r3] add r2, r0, #4 str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x58 ldr r3, [r2, r3] add r2, r0, #0 add r2, #0xc str r3, [r4, r2] add r3, r1, #0 ldr r2, [sp, #4] add r3, #0x60 ldr r2, [r2, r3] add r0, #8 str r2, [r4, r0] ldr r0, [sp, #4] add r1, #0x30 ldr r0, [r0, r1] mov r1, #0x86 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #4] sub r1, #0xd4 ldr r0, [r0, r1] cmp r0, #0 bne _0222E67E bl ErrorHandling _0222E67E: ldr r5, [sp, #4] mov r0, #0 str r0, [sp, #8] str r4, [sp, #0x30] add r6, r5, #0 add r7, r4, #0 _0222E68A: ldr r0, [sp, #0x30] ldr r1, [r5, #0x18] add r0, #0xa0 strh r1, [r0] add r3, r6, #0 add r2, r7, #0 mov r0, #6 add r3, #0x28 add r2, #0xac mov ip, r0 _0222E69E: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} mov r0, ip sub r0, r0, #1 mov ip, r0 bne _0222E69E ldr r0, [r3] add r5, r5, #4 str r0, [r2] ldr r0, [sp, #0x30] add r6, #0x34 add r0, r0, #2 str r0, [sp, #0x30] ldr r0, [sp, #8] add r7, #0x34 add r0, r0, #1 str r0, [sp, #8] cmp r0, #4 blt _0222E68A add r0, r4, #0 bl MOD11_0223D1DC str r0, [r4, #0x30] mov r6, #0 add r5, r4, #0 mov r7, #5 _0222E6D2: add r0, r7, #0 bl FUN_0206B8AC str r0, [r5, #0x68] add r6, r6, #1 add r5, r5, #4 cmp r6, #4 blt _0222E6D2 ldr r0, [r4, #0x2c] mov r1, #4 tst r1, r0 bne _0222E6EC b _0222EA8A _0222E6EC: add r0, r4, #0 bl FUN_0206BF90 bl FUN_02031190 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x34] ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_0222FEC0 ldr r1, [r4, #0x2c] mov r0, #0x80 tst r0, r1 beq _0222E7D0 ldr r6, _0222E8C0 ; =0x0225DC18 mov r5, #0 add r7, r4, #0 _0222E712: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 str r0, [r7, #0x34] add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #4 blt _0222E712 str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222E734: ldr r1, [r5, #0x34] add r0, r4, #0 bl MOD11_0225377C ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222E734 mov r0, #0 str r0, [sp, #0xc] ldr r0, [r4, #0x44] cmp r0, #0 ble _0222E7C6 add r7, r4, #0 _0222E760: ldr r0, [r7, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222E7AA _0222E76C: ldr r0, [r7, #0x68] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0222E79E add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E79E add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E7AA _0222E79E: ldr r0, [r7, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222E76C _0222E7AA: str r5, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0xc] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #0xc] ldr r1, [r4, #0x44] add r0, r0, #1 add r7, r7, #4 str r0, [sp, #0xc] cmp r0, r1 blt _0222E760 _0222E7C6: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 b _0222EA80 _0222E7D0: mov r0, #8 tst r0, r1 beq _0222E8AC mov r5, #0 add r6, r4, #0 _0222E7DA: add r0, sp, #0x3c strb r5, [r0] ldr r0, [sp, #0x34] bl FUN_020313CC add r7, r0, #0 add r0, r5, #0 bl FUN_020313CC ldr r1, _0222E8C4 ; =0x0225D9C8 lsl r2, r7, #2 add r1, r1, r2 ldrb r1, [r0, r1] add r0, sp, #0x3c strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 str r0, [r6, #0x34] add r5, r5, #1 add r6, r6, #4 cmp r5, #4 blt _0222E7DA str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222E810: ldr r1, [r5, #0x34] add r0, r4, #0 bl MOD11_0225377C ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222E810 mov r0, #0 str r0, [sp, #0x10] ldr r0, [r4, #0x44] cmp r0, #0 ble _0222E8A2 add r7, r4, #0 _0222E83C: ldr r0, [r7, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222E886 _0222E848: ldr r0, [r7, #0x68] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0222E87A add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E87A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E886 _0222E87A: ldr r0, [r7, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222E848 _0222E886: str r5, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x10] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #0x10] ldr r1, [r4, #0x44] add r0, r0, #1 add r7, r7, #4 str r0, [sp, #0x10] cmp r0, r1 blt _0222E83C _0222E8A2: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 b _0222EA80 _0222E8AC: mov r0, #2 tst r0, r1 bne _0222E8B4 b _0222E9D4 _0222E8B4: ldr r0, [sp, #0x34] ldr r1, _0222E8C8 ; =0x0225D9A0 b _0222E8CC nop _0222E8BC: .word 0x00002420 _0222E8C0: .word 0x0225DC18 _0222E8C4: .word 0x0225D9C8 _0222E8C8: .word 0x0225D9A0 _0222E8CC: lsl r0, r0, #2 mov r5, #0 add r6, r1, r0 add r7, r4, #0 _0222E8D4: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #4 blt _0222E8D4 str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222E8FE: ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222E8FE mov r0, #0 str r0, [sp, #0x14] ldr r0, [r4, #0x44] cmp r0, #0 ble _0222E9D2 _0222E920: ldr r0, [sp, #0x14] mov r1, #1 and r0, r1 str r0, [sp, #0x2c] lsl r0, r0, #2 add r7, r4, r0 ldr r0, [r7, #0x68] mov r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222E9B8 _0222E938: ldr r0, [r7, #0x68] add r1, r6, #0 bl FUN_0206B9B0 ldr r1, [sp, #0x14] add r5, r0, #0 cmp r1, #1 ble _0222E984 ldr r1, [r4, #0x30] ldr r3, [sp, #0x2c] add r0, r4, #0 mov r2, #2 bl MOD11_0224C474 cmp r6, r0 beq _0222E9AC add r0, r5, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E9B8 b _0222E9AC _0222E984: mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222E9B8 _0222E9AC: ldr r0, [r7, #0x68] add r6, r6, #1 bl FUN_0206B9AC cmp r6, r0 blt _0222E938 _0222E9B8: str r6, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x14] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #0x14] ldr r1, [r4, #0x44] add r0, r0, #1 str r0, [sp, #0x14] cmp r0, r1 blt _0222E920 _0222E9D2: b _0222EA80 _0222E9D4: ldr r0, [sp, #0x34] ldr r1, _0222EC6C ; =0x0225D99C lsl r0, r0, #1 mov r5, #0 add r6, r1, r0 add r7, r4, #0 _0222E9E0: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #2 blt _0222E9E0 mov r0, #0 str r5, [r4, #0x44] str r0, [sp, #0x18] add r7, r4, #0 _0222EA0C: ldr r0, [sp, #4] ldr r1, [r7, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [r7, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222EA60 _0222EA22: ldr r0, [r7, #0x68] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0222EA54 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EA54 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EA60 _0222EA54: ldr r0, [r7, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222EA22 _0222EA60: str r5, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x18] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #4] add r7, r7, #4 add r0, r0, #4 str r0, [sp, #4] ldr r0, [sp, #0x18] add r0, r0, #1 str r0, [sp, #0x18] cmp r0, #4 blt _0222EA0C _0222EA80: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 b _0222EE3E _0222EA8A: mov r1, #0x10 tst r1, r0 beq _0222EB90 ldr r6, _0222EC70 ; =0x0225DC18 mov r5, #0 add r7, r4, #0 _0222EA96: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #4 blt _0222EA96 str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222EAC0: ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222EAC0 ldr r0, [r4, #0x44] mov r7, #0 cmp r0, #0 ble _0222EB80 _0222EAE0: add r0, r4, #0 add r1, r7, #0 mov r5, #0 bl MOD11_0222FFC8 cmp r0, #0 ble _0222EB64 _0222EAEE: add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 bl MOD11_02230014 add r6, r0, #0 cmp r7, #2 bne _0222EB2E mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222EB56 ldr r0, [sp, #0x38] cmp r0, r5 bne _0222EB64 b _0222EB56 _0222EB2E: mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EB64 _0222EB56: add r0, r4, #0 add r1, r7, #0 add r5, r5, #1 bl MOD11_0222FFC8 cmp r5, r0 blt _0222EAEE _0222EB64: str r5, [sp] ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #2 add r3, r7, #0 bl MOD11_0224C54C cmp r7, #0 bne _0222EB78 str r5, [sp, #0x38] _0222EB78: ldr r0, [r4, #0x44] add r7, r7, #1 cmp r7, r0 blt _0222EAE0 _0222EB80: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 ldr r0, _0222EC74 ; =0x000023F8 mov r1, #1 strb r1, [r4, r0] b _0222EE3E _0222EB90: mov r1, #8 tst r1, r0 beq _0222EC60 ldr r6, _0222EC70 ; =0x0225DC18 mov r5, #0 add r7, r4, #0 _0222EB9C: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #4 blt _0222EB9C str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222EBC6: ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222EBC6 mov r0, #0 str r0, [sp, #0x1c] ldr r0, [r4, #0x44] cmp r0, #0 ble _0222EC50 add r7, r4, #0 _0222EBEA: ldr r0, [r7, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222EC34 _0222EBF6: ldr r0, [r7, #0x68] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0222EC28 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EC28 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EC34 _0222EC28: ldr r0, [r7, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222EBF6 _0222EC34: str r5, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x1c] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #0x1c] ldr r1, [r4, #0x44] add r0, r0, #1 add r7, r7, #4 str r0, [sp, #0x1c] cmp r0, r1 blt _0222EBEA _0222EC50: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 ldr r0, _0222EC74 ; =0x000023F8 mov r1, #1 strb r1, [r4, r0] b _0222EE3E _0222EC60: mov r1, #2 tst r0, r1 bne _0222EC68 b _0222ED8A _0222EC68: ldr r6, _0222EC70 ; =0x0225DC18 b _0222EC78 .align 2, 0 _0222EC6C: .word 0x0225D99C _0222EC70: .word 0x0225DC18 _0222EC74: .word 0x000023F8 _0222EC78: mov r5, #0 add r7, r4, #0 _0222EC7C: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #4 blt _0222EC7C str r5, [r4, #0x44] mov r6, #0 add r5, r4, #0 _0222ECA6: ldr r0, [sp, #4] ldr r1, [r5, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [sp, #4] add r6, r6, #1 add r0, r0, #4 add r5, r5, #4 str r0, [sp, #4] cmp r6, #4 blt _0222ECA6 mov r0, #0 str r0, [sp, #0x20] ldr r0, [r4, #0x44] cmp r0, #0 ble _0222ED7A _0222ECC8: ldr r0, [sp, #0x20] mov r1, #1 and r0, r1 str r0, [sp, #0x28] lsl r0, r0, #2 add r7, r4, r0 ldr r0, [r7, #0x68] mov r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222ED60 _0222ECE0: ldr r0, [r7, #0x68] add r1, r6, #0 bl FUN_0206B9B0 ldr r1, [sp, #0x20] add r5, r0, #0 cmp r1, #1 ble _0222ED2C ldr r1, [r4, #0x30] ldr r3, [sp, #0x28] add r0, r4, #0 mov r2, #2 bl MOD11_0224C474 cmp r6, r0 beq _0222ED54 add r0, r5, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222ED60 b _0222ED54 _0222ED2C: mov r1, #5 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222ED60 _0222ED54: ldr r0, [r7, #0x68] add r6, r6, #1 bl FUN_0206B9AC cmp r6, r0 blt _0222ECE0 _0222ED60: str r6, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x20] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #0x20] ldr r1, [r4, #0x44] add r0, r0, #1 str r0, [sp, #0x20] cmp r0, r1 blt _0222ECC8 _0222ED7A: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 ldr r0, _0222EEE0 ; =0x000023F8 mov r1, #1 strb r1, [r4, r0] b _0222EE3E _0222ED8A: ldr r6, _0222EEE4 ; =0x0225D998 mov r5, #0 add r7, r4, #0 _0222ED90: add r0, sp, #0x3c strb r5, [r0] ldrb r1, [r6] strb r1, [r0, #1] add r0, r4, #0 add r1, sp, #0x3c bl MOD11_0224CA64 add r1, r0, #0 add r0, r4, #0 str r1, [r7, #0x34] bl MOD11_0225377C add r5, r5, #1 add r6, r6, #1 add r7, r7, #4 cmp r5, #2 blt _0222ED90 mov r0, #0 str r5, [r4, #0x44] str r0, [sp, #0x24] add r7, r4, #0 _0222EDBC: ldr r0, [sp, #4] ldr r1, [r7, #0x68] ldr r0, [r0, #4] bl FUN_0206BAD0 ldr r0, [r7, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222EE10 _0222EDD2: ldr r0, [r7, #0x68] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0222EE04 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EE04 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0222EE10 _0222EE04: ldr r0, [r7, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222EDD2 _0222EE10: str r5, [sp] ldr r1, [r4, #0x30] ldr r3, [sp, #0x24] add r0, r4, #0 mov r2, #2 bl MOD11_0224C54C ldr r0, [sp, #4] add r7, r7, #4 add r0, r0, #4 str r0, [sp, #4] ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] cmp r0, #4 blt _0222EDBC ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_0224B240 ldr r0, _0222EEE0 ; =0x000023F8 mov r1, #1 strb r1, [r4, r0] _0222EE3E: mov r0, #2 ldr r1, [r4, #0x2c] lsl r0, r0, #8 tst r0, r1 beq _0222EE5A ldr r0, [r4, #0x6c] mov r1, #0 bl FUN_0206B9B0 add r2, r4, #0 mov r1, #0x8f add r2, #0xf4 bl FUN_020671BC _0222EE5A: ldr r1, [r4, #0x2c] mov r0, #1 tst r0, r1 beq _0222EEDC add r0, r4, #0 add r0, #0xe1 ldrb r0, [r0] bl MOD11_0222EEF0 cmp r0, #1 beq _0222EE7C ldr r0, _0222EEE8 ; =0x00000149 ldrb r0, [r4, r0] bl MOD11_0222EEF0 cmp r0, #1 bne _0222EEDC _0222EE7C: ldr r0, [r4, #0x68] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222EEAC ldr r6, _0222EEEC ; =0x00002404 mov r7, #3 _0222EE8C: ldr r0, [r4, #0x68] add r1, r5, #0 bl FUN_0206B9B0 ldr r2, [r4, r6] add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl FUN_020688E8 ldr r0, [r4, #0x68] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222EE8C _0222EEAC: ldr r0, [r4, #0x70] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0222EEDC ldr r6, _0222EEEC ; =0x00002404 mov r7, #3 _0222EEBC: ldr r0, [r4, #0x70] add r1, r5, #0 bl FUN_0206B9B0 ldr r2, [r4, r6] add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl FUN_020688E8 ldr r0, [r4, #0x70] add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0222EEBC _0222EEDC: add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0222EEE0: .word 0x000023F8 _0222EEE4: .word 0x0225D998 _0222EEE8: .word 0x00000149 _0222EEEC: .word 0x00002404 thumb_func_start MOD11_0222EEF0 MOD11_0222EEF0: ; 0x0222EEF0 sub r0, #0x3e cmp r0, #0x11 bhi _0222EF2A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0222EF02: ; jump table .short _0222EF26 - _0222EF02 - 2 ; case 0 .short _0222EF2A - _0222EF02 - 2 ; case 1 .short _0222EF26 - _0222EF02 - 2 ; case 2 .short _0222EF26 - _0222EF02 - 2 ; case 3 .short _0222EF26 - _0222EF02 - 2 ; case 4 .short _0222EF26 - _0222EF02 - 2 ; case 5 .short _0222EF26 - _0222EF02 - 2 ; case 6 .short _0222EF26 - _0222EF02 - 2 ; case 7 .short _0222EF2A - _0222EF02 - 2 ; case 8 .short _0222EF2A - _0222EF02 - 2 ; case 9 .short _0222EF2A - _0222EF02 - 2 ; case 10 .short _0222EF2A - _0222EF02 - 2 ; case 11 .short _0222EF26 - _0222EF02 - 2 ; case 12 .short _0222EF26 - _0222EF02 - 2 ; case 13 .short _0222EF26 - _0222EF02 - 2 ; case 14 .short _0222EF26 - _0222EF02 - 2 ; case 15 .short _0222EF26 - _0222EF02 - 2 ; case 16 .short _0222EF26 - _0222EF02 - 2 ; case 17 _0222EF26: mov r0, #1 bx lr _0222EF2A: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD11_0222EF30 MOD11_0222EF30: ; 0x0222EF30 push {r3, lr} sub sp, #8 mov r2, #2 mov r1, #0 ldr r0, _0222EF4C ; =MOD11_0222EF50 str r2, [sp] str r0, [sp, #4] mov r0, #5 add r3, r1, #0 bl FUN_02022318 add sp, #8 pop {r3, pc} nop _0222EF4C: .word MOD11_0222EF50 thumb_func_start MOD11_0222EF50 MOD11_0222EF50: ; 0x0222EF50 push {r3, lr} mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r0, _0222EFBC ; =0x04000008 mov r1, #3 ldrh r2, [r0] bic r2, r1 mov r1, #1 orr r1, r2 strh r1, [r0] add r0, #0x58 ldrh r2, [r0] ldr r1, _0222EFC0 ; =0xFFFFCFFD and r2, r1 strh r2, [r0] add r2, r1, #2 ldrh r3, [r0] add r1, r1, #2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0] ldrh r3, [r0] ldr r2, _0222EFC4 ; =0x0000CFFB and r3, r2 strh r3, [r0] ldrh r3, [r0] sub r2, #0x1c and r3, r1 mov r1, #8 orr r1, r3 strh r1, [r0] ldrh r1, [r0] and r1, r2 strh r1, [r0] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl G3X_SetFog mov r0, #0 ldr r2, _0222EFC8 ; =0x00007FFF add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r1, _0222EFCC ; =0xBFFF0000 ldr r0, _0222EFD0 ; =0x04000580 str r1, [r0] pop {r3, pc} .align 2, 0 _0222EFBC: .word 0x04000008 _0222EFC0: .word 0xFFFFCFFD _0222EFC4: .word 0x0000CFFB _0222EFC8: .word 0x00007FFF _0222EFCC: .word 0xBFFF0000 _0222EFD0: .word 0x04000580 thumb_func_start MOD11_0222EFD4 MOD11_0222EFD4: ; 0x0222EFD4 ldr r3, _0222EFD8 ; =0x020223BD bx r3 .align 2, 0 _0222EFD8: .word 0x020223BD thumb_func_start MOD11_0222EFDC MOD11_0222EFDC: ; 0x0222EFDC push {r3, r4, r5, lr} ldr r3, _0222F014 ; =0x021064B8 mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 ldr r3, _0222F018 ; =0x021064C0 mov r1, #0 add r4, r0, #0 ldr r3, [r3] mov r0, #0xc0 add r2, r1, #0 blx r3 add r5, r0, #0 cmp r4, #0 bne _0222F004 bl ErrorHandling _0222F004: cmp r5, #0 bne _0222F00C bl ErrorHandling _0222F00C: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop _0222F014: .word 0x021064B8 _0222F018: .word 0x021064C0 thumb_func_start MOD11_0222F01C MOD11_0222F01C: ; 0x0222F01C push {r3, r4, r5, lr} sub sp, #0x50 add r4, r0, #0 bl FUN_0201B9EC ldr r1, _0222F0B8 ; =0x000023FB ldrb r2, [r4, r1] lsl r0, r2, #0x1f lsr r0, r0, #0x1f beq _0222F040 mov r0, #1 bic r2, r0 strb r2, [r4, r1] ldr r0, _0222F0BC ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r0, _0222F0C0 ; =0x04001050 strh r1, [r0] _0222F040: ldr r1, _0222F0B8 ; =0x000023FB ldrb r2, [r4, r1] lsl r0, r2, #0x1e lsr r0, r0, #0x1f beq _0222F064 mov r0, #2 bic r2, r0 strb r2, [r4, r1] ldr r5, _0222F0C4 ; =0x0225DA90 add r3, sp, #0x28 mov r2, #5 _0222F056: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222F056 add r0, sp, #0x28 bl FUN_0201E66C _0222F064: ldr r1, _0222F0B8 ; =0x000023FB ldrb r2, [r4, r1] lsl r0, r2, #0x1d lsr r0, r0, #0x1f beq _0222F088 mov r0, #4 bic r2, r0 strb r2, [r4, r1] ldr r5, _0222F0C8 ; =0x0225DAB8 add r3, sp, #0 mov r2, #5 _0222F07A: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222F07A add r0, sp, #0 bl FUN_0201E66C _0222F088: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl FUN_020081C4 bl FUN_0201C30C bl FUN_0200BC30 ldr r0, [r4, #0x28] bl FUN_0200372C ldr r0, [r4, #4] bl FUN_0201AB60 ldr r3, _0222F0CC ; =0x027E0000 ldr r1, _0222F0D0 ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] add sp, #0x50 pop {r3, r4, r5, pc} nop _0222F0B8: .word 0x000023FB _0222F0BC: .word 0x04000050 _0222F0C0: .word 0x04001050 _0222F0C4: .word 0x0225DA90 _0222F0C8: .word 0x0225DAB8 _0222F0CC: .word 0x027E0000 _0222F0D0: .word 0x00003FF8 thumb_func_start MOD11_0222F0D4 MOD11_0222F0D4: ; 0x0222F0D4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_0200372C bl FUN_0201C30C ldr r0, [r4, #4] bl FUN_0201AB60 ldr r3, _0222F0F8 ; =0x027E0000 ldr r1, _0222F0FC ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} nop _0222F0F8: .word 0x027E0000 _0222F0FC: .word 0x00003FF8 thumb_func_start MOD11_0222F100 MOD11_0222F100: ; 0x0222F100 push {r4, lr} add r4, r1, #0 ldr r1, [r4, #4] mov r0, #5 bl FUN_020335F0 ldr r0, _0222F140 ; =0x000023F9 ldrb r0, [r4, r0] cmp r0, #0 beq _0222F118 cmp r0, #3 bne _0222F13E _0222F118: cmp r0, #0 bne _0222F120 bl FUN_02215A44 _0222F120: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl FUN_02006ED4 add r4, #0x94 ldr r0, [r4] bl FUN_0200BC1C bl FUN_0200BC38 mov r0, #1 mov r1, #0 bl FUN_020222B4 _0222F13E: pop {r4, pc} .align 2, 0 _0222F140: .word 0x000023F9 thumb_func_start MOD11_0222F144 MOD11_0222F144: ; 0x0222F144 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r0, r6, #0 bl MOD11_0222FF84 str r0, [sp] add r0, r6, #0 mov r5, #0 bl MOD11_02231474 add r4, r0, #0 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _0222F24E mov r0, #2 tst r0, r4 beq _0222F186 mov r0, #1 tst r0, r4 beq _0222F24E ldr r0, _0222F250 ; =0x00000704 add r1, r5, #0 bl FUN_020054F0 add r0, r6, #0 mov r1, #2 bl MOD11_02231484 pop {r3, r4, r5, r6, r7, pc} _0222F186: ldr r0, [sp] add r4, r5, #0 cmp r0, #0 ble _0222F1D0 _0222F18E: add r0, r6, #0 add r1, r4, #0 bl MOD11_0222FF7C add r7, r0, #0 bl MOD11_02253A58 cmp r0, #0 bne _0222F1C8 add r0, r7, #0 bl MOD11_02253A70 add r1, r0, #0 beq _0222F1C8 ldr r0, [r1, #0x28] ldr r1, [r1, #0x2c] lsl r0, r0, #0x10 lsl r1, r1, #0x10 lsr r0, r0, #0x10 lsr r1, r1, #0x10 mov r2, #0x30 bl FUN_02079A54 cmp r0, #1 bne _0222F1C8 add r0, r4, #0 bl FUN_0206A92C orr r5, r0 _0222F1C8: ldr r0, [sp] add r4, r4, #1 cmp r4, r0 blt _0222F18E _0222F1D0: cmp r5, #0 beq _0222F1F6 add r0, r6, #0 bl MOD11_02231474 cmp r0, #0 bne _0222F1F6 ldr r0, _0222F250 ; =0x00000704 bl FUN_020054C8 add r0, r6, #0 mov r1, #1 bl MOD11_02231484 add r0, r6, #0 mov r1, #4 bl MOD11_022314B0 b _0222F214 _0222F1F6: cmp r5, #0 bne _0222F214 add r0, r6, #0 bl MOD11_02231474 cmp r0, #0 beq _0222F214 ldr r0, _0222F250 ; =0x00000704 mov r1, #0 bl FUN_020054F0 add r0, r6, #0 mov r1, #0 bl MOD11_02231484 _0222F214: add r0, r6, #0 bl MOD11_02231474 cmp r0, #0 beq _0222F24E add r0, r6, #0 bl MOD11_022314A0 add r4, r0, #0 ldr r0, _0222F250 ; =0x00000704 bl FUN_02005508 cmp r0, #0 bne _0222F24E sub r1, r4, #1 bne _0222F244 ldr r0, _0222F250 ; =0x00000704 bl FUN_020054C8 add r0, r6, #0 mov r1, #4 bl MOD11_022314B0 pop {r3, r4, r5, r6, r7, pc} _0222F244: lsl r1, r1, #0x18 add r0, r6, #0 lsr r1, r1, #0x18 bl MOD11_022314B0 _0222F24E: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0222F250: .word 0x00000704 thumb_func_start MOD11_0222F254 MOD11_0222F254: ; 0x0222F254 push {r3, r4, r5, lr} ldr r3, _0222F280 ; =0x00002434 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, r3] mov r1, #1 add r0, r0, #3 str r0, [r4, r3] ldr r0, [r4, #4] ldr r3, [r4, r3] mov r2, #3 bl FUN_020179E0 ldr r0, _0222F280 ; =0x00002434 ldr r0, [r4, r0] cmp r0, #0 bne _0222F27C add r0, r5, #0 bl FUN_0200CAB4 _0222F27C: pop {r3, r4, r5, pc} nop _0222F280: .word 0x00002434 thumb_func_start MOD11_0222F284 MOD11_0222F284: ; 0x0222F284 __sinit push {r3, lr} bl FUN_02033590 cmp r0, #0 bne _0222F296 ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID mov r1, #2 bl HandleLoadOverlay _0222F296: pop {r3, pc} .align 2, 0 _0222F298: .word SDK_OVERLAY_MODULE_16_ID thumb_func_start MOD11_0222F29C MOD11_0222F29C: ; 0x0222F29C push {r4, r5, r6, lr} sub sp, #0x68 add r4, r1, #0 ldr r1, _0222F4C0 ; =0x00001028 mov r2, #5 bl FUN_02006268 add r5, r0, #0 ldr r0, _0222F4C4 ; =0x00001020 str r4, [r5] mov r2, #0 strb r2, [r5, r0] add r1, r0, #1 strb r2, [r5, r1] add r0, r0, #2 strh r2, [r5, r0] mov r0, #5 bl FUN_02002FD0 str r0, [r5, #0xc] mov r1, #1 bl FUN_020038F0 mov r2, #2 ldr r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #8 mov r3, #5 bl FUN_02003008 mov r1, #0 mov r0, #1 str r1, [sp] lsl r0, r0, #8 str r0, [sp, #4] ldr r0, [r5, #0xc] mov r2, #2 add r3, r1, #0 bl FUN_02003914 mov r0, #5 bl FUN_02016B94 str r0, [r5, #4] mov r0, #5 mov r1, #1 bl FUN_02018FF4 str r0, [r5, #8] add r0, r5, #0 bl FUN_0206BFF0 bl FUN_0201E6D8 ldr r6, _0222F4C8 ; =0x0225DA40 add r3, sp, #0x40 mov r2, #5 _0222F30E: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0222F30E add r0, sp, #0x40 bl FUN_0201E66C mov r1, #6 mov r2, #2 mov r0, #0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x62 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 mov r1, #0x19 mov r2, #1 mov r0, #0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x66 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 mov r1, #5 mov r2, #2 mov r0, #0 lsl r1, r1, #0x18 lsl r2, r2, #8 bl MIi_CpuClear16 ldr r6, _0222F4CC ; =0x0225D9B8 add r3, sp, #0x30 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r6, _0222F4D0 ; =0x0225DA04 add r3, sp, #0x14 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] mov r1, #1 str r0, [r3] ldr r0, [r5, #4] mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] mov r1, #1 bl FUN_02018744 mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02025084 add r4, r0, #0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #5 str r0, [sp, #4] mov r1, #1 ldr r0, [r5, #4] add r2, r1, #0 mov r3, #0xa bl FUN_0200D274 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xb0 str r0, [sp, #8] ldr r0, [r5, #0xc] mov r1, #0xe mov r2, #7 mov r3, #5 bl FUN_020030E8 add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0xa0 str r0, [sp, #8] ldr r0, [r5, #0xc] mov r1, #0x26 mov r3, #5 bl FUN_020030E8 mov r1, #0 mov r0, #1 str r1, [sp] lsl r0, r0, #8 str r0, [sp, #4] ldr r0, [r5, #0xc] add r2, r1, #0 add r3, r1, #0 bl FUN_02003914 bl FUN_0201E788 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r5, #4] ldr r1, [r5, #8] mov r2, #1 mov r3, #2 bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xff bl FUN_02019620 ldr r0, [r5, #8] mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200D0BC mov r2, #0x51 mov r0, #1 mov r1, #0x1a lsl r2, r2, #2 mov r3, #5 bl FUN_0200A86C add r4, r0, #0 mov r0, #1 lsl r0, r0, #8 mov r1, #5 bl FUN_020219F4 add r6, r0, #0 ldr r1, _0222F4D4 ; =0x0000039B add r0, r4, #0 add r2, r6, #0 bl FUN_0200A8E0 mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] ldr r0, [r5, #8] mov r1, #1 add r2, r6, #0 bl FUN_0201BD84 add r0, r6, #0 bl FUN_02021A20 add r0, r4, #0 bl FUN_0200A8B8 ldr r0, _0222F4D8 ; =MOD11_0222F0D4 add r1, r5, #0 bl FUN_02015F10 mov r0, #0x10 str r0, [sp] mov r3, #0 str r3, [sp, #4] str r3, [sp, #8] ldr r0, [r5, #0xc] ldr r2, _0222F4DC ; =0x0000FFFF mov r1, #5 bl FUN_02003210 ldr r0, [r5, #8] mov r1, #1 bl FUN_0200D858 ldr r1, _0222F4E0 ; =0x00001024 str r0, [r5, r1] bl FUN_02033E74 add sp, #0x68 pop {r4, r5, r6, pc} nop _0222F4C0: .word 0x00001028 _0222F4C4: .word 0x00001020 _0222F4C8: .word 0x0225DA40 _0222F4CC: .word 0x0225D9B8 _0222F4D0: .word 0x0225DA04 _0222F4D4: .word 0x0000039B _0222F4D8: .word MOD11_0222F0D4 _0222F4DC: .word 0x0000FFFF _0222F4E0: .word 0x00001024 thumb_func_start MOD11_0222F4E4 MOD11_0222F4E4: ; 0x0222F4E4 push {r4, r5, r6, r7, lr} sub sp, #0xc bl FUN_02006278 add r4, r0, #0 ldr r1, [r4, #4] mov r0, #5 bl FUN_020335F0 ldr r0, _0222F804 ; =0x00001021 mov r7, #0 ldrb r1, [r4, r0] cmp r1, #0x21 bls _0222F502 b _0222F922 _0222F502: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0222F50E: ; jump table .short _0222F552 - _0222F50E - 2 ; case 0 .short _0222F562 - _0222F50E - 2 ; case 1 .short _0222F576 - _0222F50E - 2 ; case 2 .short _0222F586 - _0222F50E - 2 ; case 3 .short _0222F5C0 - _0222F50E - 2 ; case 4 .short _0222F898 - _0222F50E - 2 ; case 5 .short _0222F5D8 - _0222F50E - 2 ; case 6 .short _0222F5F2 - _0222F50E - 2 ; case 7 .short _0222F898 - _0222F50E - 2 ; case 8 .short _0222F606 - _0222F50E - 2 ; case 9 .short _0222F622 - _0222F50E - 2 ; case 10 .short _0222F898 - _0222F50E - 2 ; case 11 .short _0222F636 - _0222F50E - 2 ; case 12 .short _0222F650 - _0222F50E - 2 ; case 13 .short _0222F898 - _0222F50E - 2 ; case 14 .short _0222F664 - _0222F50E - 2 ; case 15 .short _0222F67E - _0222F50E - 2 ; case 16 .short _0222F898 - _0222F50E - 2 ; case 17 .short _0222F692 - _0222F50E - 2 ; case 18 .short _0222F6AC - _0222F50E - 2 ; case 19 .short _0222F898 - _0222F50E - 2 ; case 20 .short _0222F6C0 - _0222F50E - 2 ; case 21 .short _0222F704 - _0222F50E - 2 ; case 22 .short _0222F898 - _0222F50E - 2 ; case 23 .short _0222F740 - _0222F50E - 2 ; case 24 .short _0222F774 - _0222F50E - 2 ; case 25 .short _0222F898 - _0222F50E - 2 ; case 26 .short _0222F7AE - _0222F50E - 2 ; case 27 .short _0222F7E2 - _0222F50E - 2 ; case 28 .short _0222F898 - _0222F50E - 2 ; case 29 .short _0222F82A - _0222F50E - 2 ; case 30 .short _0222F85E - _0222F50E - 2 ; case 31 .short _0222F898 - _0222F50E - 2 ; case 32 .short _0222F908 - _0222F50E - 2 ; case 33 _0222F552: add r0, r7, #0 bl FUN_0200E394 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F562: ldr r0, [r4, #0xc] bl FUN_020038E4 cmp r0, #0 bne _0222F610 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F576: mov r0, #0x32 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F586: mov r0, #0x32 bl FUN_020315D8 cmp r0, #0 beq _0222F5A8 mov r0, #0x33 bl FUN_02031588 ldr r0, _0222F808 ; =0x00001022 add r1, r7, #0 strh r1, [r4, r0] sub r1, r0, #1 ldrb r1, [r4, r1] sub r0, r0, #1 add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F5A8: ldr r0, _0222F808 ; =0x00001022 ldrh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, r0] ldrh r1, [r4, r0] ldr r0, _0222F80C ; =0x00000708 cmp r1, r0 bls _0222F610 mov r0, #1 bl FUN_020336A0 b _0222F922 _0222F5C0: mov r1, #0x11 add r0, r4, #0 lsl r1, r1, #4 bl FUN_0206C1A0 cmp r0, #1 bne _0222F610 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F5D8: add r0, r4, #0 bl FUN_0206C1FC cmp r0, #1 bne _0222F610 mov r0, #0x34 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F5F2: add r0, r4, #0 bl FUN_0206C224 cmp r0, #1 bne _0222F610 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F606: add r0, r4, #0 bl FUN_0206C268 cmp r0, #1 beq _0222F612 _0222F610: b _0222F922 _0222F612: mov r0, #0x35 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F622: add r0, r4, #0 bl FUN_0206C294 cmp r0, #1 bne _0222F71C ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F636: add r0, r4, #0 bl FUN_0206C2D4 cmp r0, #1 bne _0222F71C mov r0, #0x36 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F650: add r0, r4, #0 bl FUN_0206C2F8 cmp r0, #1 bne _0222F71C ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F664: add r0, r4, #0 bl FUN_0206C33C cmp r0, #1 bne _0222F71C mov r0, #0x37 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F67E: add r0, r4, #0 bl FUN_0206C364 cmp r0, #1 bne _0222F71C ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F692: add r0, r4, #0 bl FUN_0206C398 cmp r0, #1 bne _0222F71C mov r0, #0x38 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F6AC: add r0, r4, #0 bl FUN_0206C3F4 cmp r0, #1 bne _0222F71C ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F6C0: ldr r1, [r4] ldr r2, [r1] mov r1, #0x80 tst r1, r2 bne _0222F6D0 mov r1, #0x21 strb r1, [r4, r0] b _0222F922 _0222F6D0: bl FUN_02031190 cmp r0, #0 beq _0222F6E8 mov r0, #0x39 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F6E8: add r0, r4, #0 mov r1, #1 bl FUN_0206C438 cmp r0, #1 bne _0222F71C mov r0, #0x39 bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F704: mov r1, #1 sub r0, r0, #1 strb r1, [r4, r0] bl FUN_02031190 cmp r0, #0 beq _0222F728 mov r0, #0x39 bl FUN_020315D8 cmp r0, #1 beq _0222F71E _0222F71C: b _0222F922 _0222F71E: ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F728: add r0, r4, #0 mov r1, #1 mov r2, #0x39 bl FUN_0206C46C cmp r0, #1 bne _0222F81E ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F740: bl FUN_02031190 cmp r0, #0 beq _0222F758 mov r0, #0x3a bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F758: add r0, r4, #0 mov r1, #3 bl FUN_0206C438 cmp r0, #1 bne _0222F81E mov r0, #0x3a bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F774: mov r1, #1 sub r0, r0, #1 strb r1, [r4, r0] bl FUN_02031190 cmp r0, #0 beq _0222F796 mov r0, #0x3a bl FUN_020315D8 cmp r0, #1 bne _0222F81E ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F796: add r0, r4, #0 mov r1, #3 mov r2, #0x3a bl FUN_0206C46C cmp r0, #1 bne _0222F81E ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F7AE: bl FUN_02031190 cmp r0, #0 beq _0222F7C6 mov r0, #0x3b bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F7C6: add r0, r4, #0 mov r1, #1 bl FUN_0206C4C4 cmp r0, #1 bne _0222F81E mov r0, #0x3b bl FUN_02031588 ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F7E2: mov r1, #1 sub r0, r0, #1 strb r1, [r4, r0] bl FUN_02031190 cmp r0, #0 beq _0222F810 mov r0, #0x3b bl FUN_020315D8 cmp r0, #1 bne _0222F81E ldr r0, _0222F804 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 .align 2, 0 _0222F804: .word 0x00001021 _0222F808: .word 0x00001022 _0222F80C: .word 0x00000708 _0222F810: add r0, r4, #0 mov r1, #1 mov r2, #0x3b bl FUN_0206C4F0 cmp r0, #1 beq _0222F820 _0222F81E: b _0222F922 _0222F820: ldr r0, _0222F928 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F82A: bl FUN_02031190 cmp r0, #0 beq _0222F842 mov r0, #0x3c bl FUN_02031588 ldr r0, _0222F928 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F842: add r0, r4, #0 mov r1, #3 bl FUN_0206C4C4 cmp r0, #1 bne _0222F922 mov r0, #0x3c bl FUN_02031588 ldr r0, _0222F928 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F85E: mov r1, #1 sub r0, r0, #1 strb r1, [r4, r0] bl FUN_02031190 cmp r0, #0 beq _0222F880 mov r0, #0x3c bl FUN_020315D8 cmp r0, #1 bne _0222F922 ldr r0, _0222F928 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F880: add r0, r4, #0 mov r1, #3 mov r2, #0x3c bl FUN_0206C4F0 cmp r0, #1 bne _0222F922 ldr r0, _0222F928 ; =0x00001021 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0222F922 _0222F898: bl FUN_02030F20 ldr r1, _0222F92C ; =0x00001020 ldrb r2, [r4, r1] cmp r2, r0 bne _0222F8EE add r0, r1, #1 ldrb r0, [r4, r0] cmp r0, #0x14 bne _0222F8BE add r6, r7, #0 add r5, r4, #0 _0222F8B0: ldr r0, [r5, #0x10] bl FUN_02016A18 add r6, r6, #1 add r5, r5, #4 cmp r6, #4 blt _0222F8B0 _0222F8BE: ldr r0, _0222F92C ; =0x00001020 mov r3, #0 strb r3, [r4, r0] add r1, r0, #2 strh r3, [r4, r1] add r1, r0, #1 ldrb r1, [r4, r1] add r2, r1, #1 add r1, r0, #1 strb r2, [r4, r1] add r0, r0, #1 ldrb r0, [r4, r0] cmp r0, #0x21 bne _0222F922 str r3, [sp] mov r0, #0x10 str r0, [sp, #4] str r3, [sp, #8] ldr r0, [r4, #0xc] ldr r2, _0222F930 ; =0x0000FFFF mov r1, #5 bl FUN_02003210 b _0222F922 _0222F8EE: add r0, r1, #2 ldrh r0, [r4, r0] add r2, r0, #1 add r0, r1, #2 strh r2, [r4, r0] ldrh r1, [r4, r0] ldr r0, _0222F934 ; =0x00000708 cmp r1, r0 bls _0222F922 mov r0, #1 bl FUN_020336A0 b _0222F922 _0222F908: ldr r0, [r4, #0xc] bl FUN_020038E4 cmp r0, #0 bne _0222F922 ldr r0, _0222F938 ; =0x00001024 mov r7, #1 ldr r0, [r4, r0] bl FUN_0200DBFC mov r0, #0 bl FUN_02031400 _0222F922: add r0, r7, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _0222F928: .word 0x00001021 _0222F92C: .word 0x00001020 _0222F930: .word 0x0000FFFF _0222F934: .word 0x00000708 _0222F938: .word 0x00001024 thumb_func_start MOD11_0222F93C MOD11_0222F93C: ; 0x0222F93C push {r4, lr} bl FUN_02006278 add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_02003038 ldr r0, [r4, #0xc] bl FUN_02002FEC ldr r0, [r4, #8] mov r1, #1 bl FUN_020191A4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_start MOD11_0222F988 MOD11_0222F988: ; 0x0222F988 push {r4, r5, r6, lr} ldr r1, _0222FAB4 ; =0x00002444 add r5, r0, #0 mov r2, #5 bl FUN_02006268 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C add r6, r0, #0 bl FUN_02031190 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r2, _0222FAB4 ; =0x00002444 mov r0, #0 add r1, r4, #0 bl MIi_CpuClearFast add r0, r4, #0 add r1, r6, #0 bl MOD11_0222E520 ldr r1, [r4, #0x2c] mov r0, #4 tst r0, r1 beq _0222F9C6 mov r0, #0x80 tst r0, r1 beq _0222F9CA _0222F9C6: mov r0, #0 pop {r4, r5, r6, pc} _0222F9CA: ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID mov r1, #2 bl HandleLoadOverlay ldr r1, [r4, #0x2c] mov r0, #8 tst r0, r1 bne _0222F9DE mov r0, #0 pop {r4, r5, r6, pc} _0222F9DE: mov r0, #5 mov r1, #0x2c bl FUN_02016998 mov r1, #7 lsl r1, r1, #6 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0 mov r2, #0x2c bl MIi_CpuClearFast add r0, r5, #0 bl FUN_020313CC cmp r0, #3 bhi _0222FA5A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0222FA0C: ; jump table .short _0222FA14 - _0222FA0C - 2 ; case 0 .short _0222FA3A - _0222FA0C - 2 ; case 1 .short _0222FA3A - _0222FA0C - 2 ; case 2 .short _0222FA14 - _0222FA0C - 2 ; case 3 _0222FA14: lsl r0, r5, #2 add r0, r4, r0 ldr r1, [r0, #0x68] mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] str r1, [r0, #4] add r0, r4, #0 add r1, r5, #0 bl MOD11_022302BC lsl r0, r0, #2 add r0, r4, r0 ldr r1, [r0, #0x68] mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] str r1, [r0, #0xc] b _0222FA5A _0222FA3A: add r0, r4, #0 add r1, r5, #0 bl MOD11_022302BC lsl r0, r0, #2 add r0, r4, r0 ldr r2, [r0, #0x68] mov r0, #7 lsl r0, r0, #6 ldr r1, [r4, r0] str r2, [r1, #4] lsl r1, r5, #2 add r1, r4, r1 ldr r1, [r1, #0x68] ldr r0, [r4, r0] str r1, [r0, #0xc] _0222FA5A: mov r0, #7 lsl r0, r0, #6 ldr r1, [r4, r0] mov r2, #5 str r2, [r1, #0x24] ldr r0, [r4, r0] mov r1, #0 add r0, #0x28 strb r1, [r0] add r0, r5, #0 bl FUN_020313CC cmp r0, #3 bhi _0222FAA4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0222FA82: ; jump table .short _0222FA8A - _0222FA82 - 2 ; case 0 .short _0222FA98 - _0222FA82 - 2 ; case 1 .short _0222FA98 - _0222FA82 - 2 ; case 2 .short _0222FA8A - _0222FA82 - 2 ; case 3 _0222FA8A: mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #0 add r0, #0x29 strb r1, [r0] b _0222FAA4 _0222FA98: mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #1 add r0, #0x29 strb r1, [r0] _0222FAA4: mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] bl FUN_02211E60 mov r0, #1 pop {r4, r5, r6, pc} nop _0222FAB4: .word 0x00002444 _0222FAB8: .word SDK_OVERLAY_MODULE_07_ID thumb_func_start MOD11_0222FABC MOD11_0222FABC: ; 0x0222FABC push {r3, r4, r5, r6, r7, lr} bl FUN_02006278 add r6, r0, #0 mov r0, #7 lsl r0, r0, #6 ldr r0, [r6, r0] add r0, #0x2b ldrb r0, [r0] cmp r0, #0 beq _0222FAFE mov r4, #0 mov r7, #7 add r5, r4, #0 lsl r7, r7, #6 _0222FADA: ldr r0, [r6, r7] add r0, r0, r5 ldr r0, [r0, #0x14] cmp r0, #0 beq _0222FAE8 bl FUN_02016A18 _0222FAE8: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0222FADA mov r0, #7 lsl r0, r0, #6 ldr r0, [r6, r0] bl FUN_02016A18 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0222FAFE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0222FB04 MOD11_0222FB04: ; 0x0222FB04 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C bl FUN_02031190 lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r1, [r4, #0x2c] mov r0, #4 tst r0, r1 beq _0222FB2A mov r0, #0x80 tst r0, r1 beq _0222FB2E _0222FB2A: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0222FB2E: mov r0, #5 mov r1, #0x2c bl FUN_02016998 mov r1, #7 lsl r1, r1, #6 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0 mov r2, #0x2c bl MIi_CpuClearFast ldr r1, [r4, #0x2c] mov r0, #8 tst r0, r1 beq _0222FBA4 mov r6, #0 add r5, r4, #0 _0222FB52: add r0, r6, #0 bl FUN_020313CC mov r2, #7 lsl r2, r2, #6 ldr r2, [r4, r2] lsl r0, r0, #2 ldr r1, [r5, #0x68] add r0, r2, r0 str r1, [r0, #4] add r0, r6, #0 bl FUN_020313CC add r7, r0, #0 ldr r0, [r5, #0x48] mov r1, #5 bl FUN_020239A0 mov r1, #7 lsl r1, r1, #6 ldr r2, [r4, r1] lsl r1, r7, #2 add r1, r2, r1 add r6, r6, #1 add r5, r5, #4 str r0, [r1, #0x14] cmp r6, #4 blt _0222FB52 mov r0, #7 lsl r0, r0, #6 ldr r1, [r4, r0] mov r2, #5 str r2, [r1, #0x24] ldr r1, [r4, r0] mov r2, #1 add r1, #0x28 strb r2, [r1] ldr r0, [r4, r0] add r0, #0x29 strb r2, [r0] b _0222FC2A _0222FBA4: add r0, r7, #0 lsl r6, r7, #2 bl FUN_020313CC mov r2, #7 lsl r2, r2, #6 add r1, r4, r6 ldr r2, [r4, r2] lsl r0, r0, #2 ldr r1, [r1, #0x68] add r0, r2, r0 str r1, [r0, #4] mov r0, #1 eor r0, r7 lsl r5, r0, #2 str r0, [sp] bl FUN_020313CC add r1, r4, r5 ldr r2, [r1, #0x68] mov r1, #7 lsl r1, r1, #6 ldr r1, [r4, r1] lsl r0, r0, #2 add r0, r1, r0 str r2, [r0, #4] add r0, r7, #0 bl FUN_020313CC add r7, r0, #0 add r0, r4, r6 ldr r0, [r0, #0x48] mov r1, #5 bl FUN_020239A0 mov r1, #7 lsl r1, r1, #6 ldr r2, [r4, r1] lsl r1, r7, #2 add r1, r2, r1 str r0, [r1, #0x14] ldr r0, [sp] bl FUN_020313CC add r6, r0, #0 add r0, r4, r5 ldr r0, [r0, #0x48] mov r1, #5 bl FUN_020239A0 mov r1, #7 lsl r1, r1, #6 ldr r3, [r4, r1] lsl r2, r6, #2 add r2, r3, r2 str r0, [r2, #0x14] ldr r0, [r4, r1] mov r2, #5 str r2, [r0, #0x24] ldr r0, [r4, r1] mov r2, #1 add r0, #0x28 strb r2, [r0] ldr r0, [r4, r1] mov r2, #0 add r0, #0x29 strb r2, [r0] _0222FC2A: mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] bl FUN_02211E60 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0222FC38 MOD11_0222FC38: ; 0x0222FC38 push {r3, r4, r5, r6, r7, lr} bl FUN_02006278 add r6, r0, #0 mov r0, #7 lsl r0, r0, #6 ldr r0, [r6, r0] add r0, #0x2b ldrb r0, [r0] cmp r0, #0 beq _0222FC7A mov r4, #0 mov r7, #7 add r5, r4, #0 lsl r7, r7, #6 _0222FC56: ldr r0, [r6, r7] add r0, r0, r5 ldr r0, [r0, #0x14] cmp r0, #0 beq _0222FC64 bl FUN_02016A18 _0222FC64: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0222FC56 mov r0, #7 lsl r0, r0, #6 ldr r0, [r6, r0] bl FUN_02016A18 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0222FC7A: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0222FC80 MOD11_0222FC80: ; 0x0222FC80 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 bl FUN_0200628C add r7, r0, #0 bl FUN_02031190 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] ldr r1, [r7] mov r0, #4 tst r0, r1 beq _0222FCA2 mov r0, #0x80 tst r0, r1 beq _0222FCA8 _0222FCA2: add sp, #0x10 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0222FCA8: ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID mov r1, #2 bl HandleLoadOverlay mov r0, #5 mov r1, #0x2c bl FUN_02016998 add r6, r0, #0 mov r0, #0x66 lsl r0, r0, #2 str r6, [r7, r0] mov r0, #0 add r1, r6, #0 mov r2, #0x2c bl MIi_CpuClearFast str r7, [r6] ldr r0, [r7, #0x14] cmp r0, #5 bhi _0222FD54 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0222FCDE: ; jump table .short _0222FD54 - _0222FCDE - 2 ; case 0 .short _0222FCEA - _0222FCDE - 2 ; case 1 .short _0222FD0E - _0222FCDE - 2 ; case 2 .short _0222FD32 - _0222FCDE - 2 ; case 3 .short _0222FD54 - _0222FCDE - 2 ; case 4 .short _0222FD32 - _0222FCDE - 2 ; case 5 _0222FCEA: bl FUN_02033590 cmp r0, #0 bne _0222FD00 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x15 bl FUN_0202A0E8 b _0222FD54 _0222FD00: mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x1a bl FUN_0202A0E8 b _0222FD54 _0222FD0E: bl FUN_02033590 cmp r0, #0 bne _0222FD24 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x16 bl FUN_0202A0E8 b _0222FD54 _0222FD24: mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x1b bl FUN_0202A0E8 b _0222FD54 _0222FD32: bl FUN_02033590 cmp r0, #0 bne _0222FD48 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x17 bl FUN_0202A0E8 b _0222FD54 _0222FD48: mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r7, r0] mov r1, #0x1c bl FUN_0202A0E8 _0222FD54: ldr r1, [r7] mov r0, #8 tst r0, r1 beq _0222FDBE mov r4, #0 add r5, r7, #0 _0222FD60: add r0, r4, #0 bl FUN_020313CC lsl r0, r0, #2 ldr r1, [r5, #4] add r0, r6, r0 str r1, [r0, #4] add r0, r4, #0 bl FUN_020313CC str r0, [sp, #8] add r0, r5, #0 add r0, #0xf8 ldr r0, [r0] mov r1, #5 bl FUN_020239A0 ldr r1, [sp, #8] add r4, r4, #1 lsl r1, r1, #2 add r1, r6, r1 add r5, r5, #4 str r0, [r1, #0x14] cmp r4, #4 blt _0222FD60 mov r0, #5 str r0, [r6, #0x24] add r0, r6, #0 mov r1, #2 add r0, #0x28 strb r1, [r0] add r0, r6, #0 mov r1, #1 add r0, #0x29 strb r1, [r0] ldr r1, [r7, #0x14] cmp r1, #5 beq _0222FDB4 add r0, r6, #0 add r0, #0x2a strb r1, [r0] b _0222FE48 _0222FDB4: add r0, r6, #0 mov r1, #3 add r0, #0x2a strb r1, [r0] b _0222FE48 _0222FDBE: ldr r0, [sp, #4] lsl r5, r0, #2 bl FUN_020313CC add r1, r7, r5 lsl r0, r0, #2 ldr r1, [r1, #4] add r0, r6, r0 str r1, [r0, #4] ldr r0, [sp, #4] mov r1, #1 eor r0, r1 lsl r4, r0, #2 str r0, [sp] bl FUN_020313CC add r1, r7, r4 lsl r0, r0, #2 ldr r1, [r1, #4] add r0, r6, r0 str r1, [r0, #4] ldr r0, [sp, #4] bl FUN_020313CC str r0, [sp, #0xc] add r0, r7, r5 add r0, #0xf8 ldr r0, [r0] mov r1, #5 bl FUN_020239A0 ldr r1, [sp, #0xc] lsl r1, r1, #2 add r1, r6, r1 str r0, [r1, #0x14] ldr r0, [sp] bl FUN_020313CC add r5, r0, #0 add r0, r7, r4 add r0, #0xf8 ldr r0, [r0] mov r1, #5 bl FUN_020239A0 lsl r1, r5, #2 add r1, r6, r1 str r0, [r1, #0x14] mov r0, #5 str r0, [r6, #0x24] add r0, r6, #0 mov r1, #2 add r0, #0x28 strb r1, [r0] add r0, r6, #0 mov r1, #0 add r0, #0x29 strb r1, [r0] ldr r1, [r7, #0x14] cmp r1, #5 beq _0222FE40 add r0, r6, #0 add r0, #0x2a strb r1, [r0] b _0222FE48 _0222FE40: add r0, r6, #0 mov r1, #3 add r0, #0x2a strb r1, [r0] _0222FE48: add r0, r6, #0 bl FUN_02211E60 mov r0, #1 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0222FE54: .word SDK_OVERLAY_MODULE_07_ID thumb_func_start MOD11_0222FE58 MOD11_0222FE58: ; 0x0222FE58 push {r4, r5, r6, lr} bl FUN_0200628C mov r1, #0x66 lsl r1, r1, #2 ldr r6, [r0, r1] add r0, r6, #0 add r0, #0x2b ldrb r0, [r0] cmp r0, #0 beq _0222FE8E mov r4, #0 add r5, r6, #0 _0222FE72: ldr r0, [r5, #0x14] cmp r0, #0 beq _0222FE7C bl FUN_02016A18 _0222FE7C: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0222FE72 add r0, r6, #0 bl FUN_02016A18 mov r0, #1 pop {r4, r5, r6, pc} _0222FE8E: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0222FE94 MOD11_0222FE94: ; 0x0222FE94 push {r3, lr} ldr r1, [r0, #0x2c] ldr r0, _0222FEBC ; =0x00000404 tst r0, r1 beq _0222FEA6 mov r0, #1 bl FUN_02002B7C pop {r3, pc} _0222FEA6: mov r0, #3 bl FUN_02002B7C mov r0, #1 bl FUN_02002B60 mov r0, #1 bl FUN_02002BB8 pop {r3, pc} nop _0222FEBC: .word 0x00000404 thumb_func_start MOD11_0222FEC0 MOD11_0222FEC0: ; 0x0222FEC0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 str r0, [sp] mov r0, #0x5f mov r3, #0 add r4, sp, #0x30 add r5, sp, #0x20 lsl r0, r0, #2 _0222FED0: stmia r4!, {r3} ldr r2, [r1, r0] add r3, r3, #1 add r1, r1, #4 stmia r5!, {r2} cmp r3, #4 blt _0222FED0 bl FUN_02031190 str r0, [sp, #0x10] bl FUN_02030F20 str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #4] ldr r0, [sp, #0xc] sub r0, r0, #1 str r0, [sp, #0x14] cmp r0, #0 ble _0222FF50 add r0, sp, #0x30 add r3, sp, #0x20 str r0, [sp, #8] str r3, [sp, #0x18] mov ip, r0 _0222FF02: ldr r0, [sp, #4] add r2, r0, #1 ldr r0, [sp, #0xc] cmp r2, r0 bge _0222FF3C ldr r0, [sp, #0x18] lsl r1, r2, #2 add r4, r0, r1 mov r0, ip add r5, r0, r1 _0222FF16: ldr r0, [r4] ldr r6, [r3] str r0, [sp, #0x1c] cmp r6, r0 bge _0222FF30 ldr r0, [sp, #8] ldr r1, [r5] ldr r7, [r0] str r1, [r0] ldr r0, [sp, #0x1c] str r7, [r5] str r0, [r3] str r6, [r4] _0222FF30: ldr r0, [sp, #0xc] add r2, r2, #1 add r4, r4, #4 add r5, r5, #4 cmp r2, r0 blt _0222FF16 _0222FF3C: ldr r0, [sp, #8] add r3, r3, #4 add r0, r0, #4 str r0, [sp, #8] ldr r0, [sp, #4] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [sp, #4] cmp r1, r0 blt _0222FF02 _0222FF50: ldr r1, [sp, #0x30] ldr r0, [sp, #0x10] cmp r1, r0 bne _0222FF60 ldr r1, _0222FF64 ; =0x000023F8 ldr r0, [sp] mov r2, #1 strb r2, [r0, r1] _0222FF60: add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0222FF64: .word 0x000023F8 thumb_func_start MOD11_0222FF68 MOD11_0222FF68: ; 0x0222FF68 ldr r0, [r0, #4] bx lr thumb_func_start MOD11_0222FF6C MOD11_0222FF6C: ; 0x0222FF6C ldr r2, [r0, #8] lsl r0, r1, #4 add r0, r2, r0 bx lr thumb_func_start MOD11_0222FF74 MOD11_0222FF74: ; 0x0222FF74 ldr r0, [r0, #0x2c] bx lr thumb_func_start MOD11_0222FF78 MOD11_0222FF78: ; 0x0222FF78 ldr r0, [r0, #0x30] bx lr thumb_func_start MOD11_0222FF7C MOD11_0222FF7C: ; 0x0222FF7C lsl r1, r1, #2 add r0, r0, r1 ldr r0, [r0, #0x34] bx lr thumb_func_start MOD11_0222FF84 MOD11_0222FF84: ; 0x0222FF84 ldr r0, [r0, #0x44] bx lr thumb_func_start MOD11_0222FF88 MOD11_0222FF88: ; 0x0222FF88 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _0222FFA6 mov r3, #0x10 tst r2, r3 beq _0222FFAE bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _0222FFAE _0222FFA6: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] pop {r3, r4, r5, pc} _0222FFAE: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _0222FFC0 lsl r0, r4, #0x1f lsr r0, r0, #0x1d add r0, r5, r0 ldr r0, [r0, #0x68] pop {r3, r4, r5, pc} _0222FFC0: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] pop {r3, r4, r5, pc} thumb_func_start MOD11_0222FFC8 MOD11_0222FFC8: ; 0x0222FFC8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _0222FFE6 mov r3, #0x10 tst r2, r3 beq _0222FFF2 bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _0222FFF2 _0222FFE6: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] bl FUN_0206B9AC pop {r3, r4, r5, pc} _0222FFF2: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _02230008 lsl r0, r4, #0x1f lsr r0, r0, #0x1d add r0, r5, r0 ldr r0, [r0, #0x68] bl FUN_0206B9AC pop {r3, r4, r5, pc} _02230008: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] bl FUN_0206B9AC pop {r3, r4, r5, pc} thumb_func_start MOD11_02230014 MOD11_02230014: ; 0x02230014 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r2, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _02230034 mov r3, #0x10 tst r2, r3 beq _02230042 bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _02230042 _02230034: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] add r1, r6, #0 bl FUN_0206B9B0 pop {r4, r5, r6, pc} _02230042: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _0223005A lsl r0, r4, #0x1f lsr r0, r0, #0x1d add r0, r5, r0 ldr r0, [r0, #0x68] add r1, r6, #0 bl FUN_0206B9B0 pop {r4, r5, r6, pc} _0223005A: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] add r1, r6, #0 bl FUN_0206B9B0 pop {r4, r5, r6, pc} thumb_func_start MOD11_02230068 MOD11_02230068: ; 0x02230068 add r0, #0x88 ldr r0, [r0] bx lr .align 2, 0 thumb_func_start MOD11_02230070 MOD11_02230070: ; 0x02230070 add r0, #0x8c ldr r0, [r0] bx lr .align 2, 0 thumb_func_start MOD11_02230078 MOD11_02230078: ; 0x02230078 add r0, #0x90 ldr r0, [r0] bx lr .align 2, 0 thumb_func_start MOD11_02230080 MOD11_02230080: ; 0x02230080 add r0, #0x94 ldr r0, [r0] bx lr .align 2, 0 thumb_func_start MOD11_02230088 MOD11_02230088: ; 0x02230088 mov r2, #0x5f lsl r2, r2, #2 add r2, r0, r2 lsl r0, r1, #4 add r0, r2, r0 bx lr thumb_func_start MOD11_02230094 MOD11_02230094: ; 0x02230094 mov r1, #0x67 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_0223009C MOD11_0223009C: ; 0x0223009C lsl r1, r1, #2 add r1, r0, r1 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r1, r0] bx lr thumb_func_start MOD11_022300A8 MOD11_022300A8: ; 0x022300A8 lsl r1, r1, #2 add r1, r0, r1 mov r0, #0x1a lsl r0, r0, #4 str r2, [r1, r0] bx lr thumb_func_start MOD11_022300B4 MOD11_022300B4: ; 0x022300B4 mov r1, #0x6a lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_022300BC MOD11_022300BC: ; 0x022300BC mov r1, #0x6b lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_022300C4 MOD11_022300C4: ; 0x022300C4 ldr r0, [r0, #0xc] bx lr thumb_func_start MOD11_022300C8 MOD11_022300C8: ; 0x022300C8 ldr r0, [r0, #0x10] bx lr thumb_func_start MOD11_022300CC MOD11_022300CC: ; 0x022300CC ldr r0, [r0, #0x28] bx lr thumb_func_start MOD11_022300D0 MOD11_022300D0: ; 0x022300D0 ldr r0, [r0, #0x60] bx lr thumb_func_start MOD11_022300D4 MOD11_022300D4: ; 0x022300D4 mov r1, #0x89 lsl r1, r1, #2 add r0, r0, r1 bx lr thumb_func_start MOD11_022300DC MOD11_022300DC: ; 0x022300DC ldr r1, _022300E4 ; =0x00001224 add r0, r0, r1 bx lr nop _022300E4: .word 0x00001224 thumb_func_start MOD11_022300E8 MOD11_022300E8: ; 0x022300E8 ldr r1, _022300F0 ; =0x000023E4 add r0, r0, r1 bx lr nop _022300F0: .word 0x000023E4 thumb_func_start MOD11_022300F4 MOD11_022300F4: ; 0x022300F4 ldr r1, _022300FC ; =0x000023E6 add r0, r0, r1 bx lr nop _022300FC: .word 0x000023E6 thumb_func_start MOD11_02230100 MOD11_02230100: ; 0x02230100 ldr r1, _02230108 ; =0x000023E8 add r0, r0, r1 bx lr nop _02230108: .word 0x000023E8 thumb_func_start MOD11_0223010C MOD11_0223010C: ; 0x0223010C ldr r1, _02230114 ; =0x000023EA add r0, r0, r1 bx lr nop _02230114: .word 0x000023EA thumb_func_start MOD11_02230118 MOD11_02230118: ; 0x02230118 ldr r1, _02230120 ; =0x000023EC add r0, r0, r1 bx lr nop _02230120: .word 0x000023EC thumb_func_start MOD11_02230124 MOD11_02230124: ; 0x02230124 ldr r1, _0223012C ; =0x000023EE add r0, r0, r1 bx lr nop _0223012C: .word 0x000023EE thumb_func_start MOD11_02230130 MOD11_02230130: ; 0x02230130 mov r1, #0x73 lsl r1, r1, #2 add r0, r0, r1 bx lr thumb_func_start MOD11_02230138 MOD11_02230138: ; 0x02230138 ldr r0, [r0, #0x14] bx lr thumb_func_start MOD11_0223013C MOD11_0223013C: ; 0x0223013C ldr r0, [r0, #0x18] bx lr thumb_func_start MOD11_02230140 MOD11_02230140: ; 0x02230140 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _0223015E mov r3, #0x10 tst r2, r3 beq _02230168 bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _02230168 _0223015E: lsl r0, r4, #1 add r0, r5, r0 add r0, #0xa0 ldrh r0, [r0] pop {r3, r4, r5, pc} _02230168: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _0223017C lsl r0, r4, #0x1f lsr r0, r0, #0x1e add r0, r5, r0 add r0, #0xa0 ldrh r0, [r0] pop {r3, r4, r5, pc} _0223017C: lsl r0, r4, #1 add r0, r5, r0 add r0, #0xa0 ldrh r0, [r0] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02230188 MOD11_02230188: ; 0x02230188 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _022301A6 mov r3, #0x10 tst r2, r3 beq _022301B0 bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _022301B0 _022301A6: mov r0, #0x34 add r5, #0xac mul r0, r4 add r0, r5, r0 pop {r3, r4, r5, pc} _022301B0: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _022301C8 mov r0, #1 add r1, r4, #0 and r1, r0 mov r0, #0x34 add r5, #0xac mul r0, r1 add r0, r5, r0 pop {r3, r4, r5, pc} _022301C8: mov r0, #0x34 add r5, #0xac mul r0, r4 add r0, r5, r0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022301D4 MOD11_022301D4: ; 0x022301D4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _022301F2 mov r3, #0x10 tst r2, r3 beq _022301FA bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _022301FA _022301F2: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x48] pop {r3, r4, r5, pc} _022301FA: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _0223020C lsl r0, r4, #0x1f lsr r0, r0, #0x1d add r0, r5, r0 ldr r0, [r0, #0x48] pop {r3, r4, r5, pc} _0223020C: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x48] pop {r3, r4, r5, pc} thumb_func_start MOD11_02230214 MOD11_02230214: ; 0x02230214 ldr r0, [r0, #0x58] bx lr thumb_func_start MOD11_02230218 MOD11_02230218: ; 0x02230218 ldr r0, [r0, #0x5c] bx lr thumb_func_start MOD11_0223021C MOD11_0223021C: ; 0x0223021C lsl r1, r1, #2 add r0, r0, r1 ldr r3, _02230228 ; =0x020239CD ldr r0, [r0, #0x48] bx r3 nop _02230228: .word 0x020239CD thumb_func_start MOD11_0223022C MOD11_0223022C: ; 0x0223022C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] add r7, r1, #0 mov r4, #0 cmp r0, #0 ble _02230250 add r5, r6, #0 _0223023C: ldr r0, [r5, #0x34] bl MOD11_02253A4C cmp r7, r0 beq _02230250 ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _0223023C _02230250: ldr r0, [r6, #0x44] cmp r4, r0 blt _0223025A bl ErrorHandling _0223025A: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02230260 MOD11_02230260: ; 0x02230260 lsl r1, r1, #2 add r0, r0, r1 ldr r3, _0223026C ; =MOD11_02253A4C ldr r0, [r0, #0x34] bx r3 nop _0223026C: .word MOD11_02253A4C thumb_func_start MOD11_02230270 MOD11_02230270: ; 0x02230270 push {r3, lr} lsl r1, r1, #2 add r0, r0, r1 ldr r0, [r0, #0x34] bl MOD11_02253A4C mov r1, #1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02230288 MOD11_02230288: ; 0x02230288 mov r1, #0x1b lsl r1, r1, #4 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_02230290 MOD11_02230290: ; 0x02230290 ldr r0, [r0, #0x64] bx lr thumb_func_start MOD11_02230294 MOD11_02230294: ; 0x02230294 ldr r1, _022302A4 ; =0x000023FC ldr r0, [r0, r1] cmp r0, #0xc bgt _022302A0 cmp r0, #0 bge _022302A2 _022302A0: mov r0, #0xc _022302A2: bx lr .align 2, 0 _022302A4: .word 0x000023FC thumb_func_start MOD11_022302A8 MOD11_022302A8: ; 0x022302A8 mov r1, #9 lsl r1, r1, #0xa ldr r0, [r0, r1] bx lr thumb_func_start MOD11_022302B0 MOD11_022302B0: ; 0x022302B0 ldr r1, _022302B8 ; =0x00002404 ldr r0, [r0, r1] bx lr nop _022302B8: .word 0x00002404 thumb_func_start MOD11_022302BC MOD11_022302BC: ; 0x022302BC push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r5, r1, #0 bl MOD11_0222FF84 str r0, [sp] add r0, r6, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022302D8 add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _022302D8: ldr r0, [sp] mov r4, #0 cmp r0, #0 ble _02230302 _022302E0: cmp r4, r5 beq _022302FA add r0, r6, #0 add r1, r4, #0 bl MOD11_02230270 add r7, r0, #0 add r0, r6, #0 add r1, r5, #0 bl MOD11_02230270 cmp r7, r0 beq _02230302 _022302FA: ldr r0, [sp] add r4, r4, #1 cmp r4, r0 blt _022302E0 _02230302: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02230308 MOD11_02230308: ; 0x02230308 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 str r2, [sp] bl MOD11_0222FF84 str r0, [sp, #4] add r0, r5, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _0223032C mov r0, #1 add sp, #8 eor r0, r6 pop {r3, r4, r5, r6, r7, pc} _0223032C: ldr r0, [sp, #4] mov r4, #0 cmp r0, #0 ble _02230368 _02230334: cmp r4, r6 beq _02230360 add r0, r5, #0 add r1, r4, #0 bl MOD11_02230260 mov r1, #2 and r1, r0 ldr r0, [sp] cmp r0, r1 bne _02230360 add r0, r5, #0 add r1, r4, #0 bl MOD11_02230270 add r7, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02230270 cmp r7, r0 bne _02230368 _02230360: ldr r0, [sp, #4] add r4, r4, #1 cmp r4, r0 blt _02230334 _02230368: add r0, r4, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02230370 MOD11_02230370: ; 0x02230370 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r6, r1, #0 ldr r1, [sp, #0x38] add r5, r2, #0 str r1, [sp, #0x38] add r1, r0, #0 ldr r1, [r1, #0x30] add r4, r3, #0 str r1, [sp, #0x1c] mov r1, #0 str r1, [sp, #0x14] ldr r1, [sp, #0x1c] str r0, [sp, #4] mov r2, #2 add r3, r6, #0 bl MOD11_0224C474 str r0, [sp, #0x10] ldr r0, [sp, #4] bl MOD11_0222FF74 cmp r0, #3 beq _022303BA ldr r0, [sp, #4] bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 beq _022303E0 ldr r0, [sp, #4] add r1, r6, #0 bl MOD11_02230260 mov r1, #1 tst r0, r1 bne _022303E0 _022303BA: ldr r0, [sp, #4] add r1, r6, #0 bl MOD11_022302BC add r3, r0, #0 ldr r0, [sp, #4] ldr r1, [sp, #0x1c] mov r2, #2 bl MOD11_0224C474 str r0, [sp, #0xc] cmp r0, r5 bne _022303E4 ldr r0, [sp, #4] add r1, r6, #0 bl MOD11_022302BC add r6, r0, #0 b _022303E4 _022303E0: ldr r0, [sp, #0x10] str r0, [sp, #0xc] _022303E4: ldr r0, [sp, #4] add r1, r6, #0 add r2, r5, #0 bl MOD11_02230014 str r0, [sp, #0x18] mov r0, #0 str r0, [sp, #8] ldr r0, [sp, #0x38] mov r1, #0xf lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230478 ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC mov r1, #7 str r0, [sp, #0x20] tst r1, r0 beq _02230478 mov r1, #7 bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 bl FUN_02067830 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230434 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230474 _02230434: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 mov r1, #7 str r0, [sp, #0x20] bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 add r3, sp, #0x20 bl MOD11_0224379C ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 ldr r1, _02230688 ; =0xF7FFFFFF str r0, [sp, #0x20] and r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 add r3, sp, #0x20 bl MOD11_0224379C _02230474: mov r0, #1 str r0, [sp, #0x14] _02230478: ldr r0, [sp, #0x38] mov r1, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022304DC ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC ldr r1, _0223068C ; =0x00000F88 str r0, [sp, #0x20] tst r1, r0 beq _022304DC ldr r1, _02230690 ; =0xFFFFF077 add r2, sp, #0x20 and r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f bl FUN_02067830 ldr r0, [sp, #0x10] cmp r0, r5 beq _022304B8 ldr r0, [sp, #0xc] cmp r0, r5 bne _022304D8 _022304B8: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 ldr r1, _02230690 ; =0xFFFFF077 str r0, [sp, #0x20] and r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 add r3, sp, #0x20 bl MOD11_0224379C _022304D8: mov r0, #1 str r0, [sp, #0x14] _022304DC: ldr r0, [sp, #0x38] mov r1, #0x11 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230540 ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC mov r1, #0x10 str r0, [sp, #0x20] tst r1, r0 beq _02230540 mov r1, #0x10 bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 bl FUN_02067830 ldr r0, [sp, #0x10] cmp r0, r5 beq _0223051C ldr r0, [sp, #0xc] cmp r0, r5 bne _0223053C _0223051C: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 mov r1, #0x10 str r0, [sp, #0x20] bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 add r3, sp, #0x20 bl MOD11_0224379C _0223053C: mov r0, #1 str r0, [sp, #0x14] _02230540: ldr r0, [sp, #0x38] mov r1, #0x12 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022305A4 ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC mov r1, #0x20 str r0, [sp, #0x20] tst r1, r0 beq _022305A4 mov r1, #0x20 bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 bl FUN_02067830 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230580 ldr r0, [sp, #0xc] cmp r0, r5 bne _022305A0 _02230580: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 mov r1, #0x20 str r0, [sp, #0x20] bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 add r3, sp, #0x20 bl MOD11_0224379C _022305A0: mov r0, #1 str r0, [sp, #0x14] _022305A4: ldr r0, [sp, #0x38] mov r1, #0x13 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230608 ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC mov r1, #0x40 str r0, [sp, #0x20] tst r1, r0 beq _02230608 mov r1, #0x40 bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 bl FUN_02067830 ldr r0, [sp, #0x10] cmp r0, r5 beq _022305E4 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230604 _022305E4: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 mov r1, #0x40 str r0, [sp, #0x20] bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x34 add r3, sp, #0x20 bl MOD11_0224379C _02230604: mov r0, #1 str r0, [sp, #0x14] _02230608: ldr r0, [sp, #0x38] mov r1, #0x14 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230650 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230626 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230650 _02230626: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 mov r1, #7 str r0, [sp, #0x20] tst r1, r0 beq _02230650 mov r1, #7 bic r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 add r3, sp, #0x20 bl MOD11_0224379C mov r0, #1 str r0, [sp, #0x14] _02230650: ldr r0, [sp, #0x38] mov r1, #0x15 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022306AC ldr r0, [sp, #0x10] cmp r0, r5 beq _0223066E ldr r0, [sp, #0xc] cmp r0, r5 bne _022306AC _0223066E: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 mov r1, #0xf lsl r1, r1, #0x10 str r0, [sp, #0x20] tst r1, r0 beq _022306AC ldr r1, _02230694 ; =0xFFF0FFFF b _02230698 .align 2, 0 _02230688: .word 0xF7FFFFFF _0223068C: .word 0x00000F88 _02230690: .word 0xFFFFF077 _02230694: .word 0xFFF0FFFF _02230698: mov r2, #0x35 and r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 add r3, sp, #0x20 bl MOD11_0224379C mov r0, #1 str r0, [sp, #0x14] _022306AC: ldr r0, [sp, #0x38] mov r1, #0x16 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230706 ldr r0, [sp, #4] ldr r1, [sp, #0x1c] mov r2, #1 add r3, r6, #0 bl MOD11_0224C474 str r0, [sp, #0x20] cmp r0, #0 bne _02230706 ldr r0, [sp, #4] ldr r1, [sp, #0x1c] mov r2, #0 add r3, r6, #0 bl MOD11_0224C474 mov r1, #0x40 str r0, [sp, #0x20] orr r0, r1 str r0, [sp, #0x20] str r0, [sp] ldr r0, [sp, #4] ldr r1, [sp, #0x1c] mov r2, #0 add r3, r6, #0 bl MOD11_0224C54C mov r0, #5 str r0, [sp] ldr r0, [sp, #4] ldr r1, [sp, #0x1c] mov r2, #1 add r3, r6, #0 bl MOD11_0224C54C mov r0, #1 str r0, [sp, #0x14] _02230706: ldr r0, [sp, #0x38] mov r1, #0x1b lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230744 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230724 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230744 _02230724: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x13 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _02230744 ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x13 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _02230744: ldr r0, [sp, #0x38] mov r1, #0x1c lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230782 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230762 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230782 _02230762: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x14 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _02230782 ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x14 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _02230782: ldr r0, [sp, #0x38] mov r1, #0x1d lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022307C0 ldr r0, [sp, #0x10] cmp r0, r5 beq _022307A0 ldr r0, [sp, #0xc] cmp r0, r5 bne _022307C0 _022307A0: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x16 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _022307C0 ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x16 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _022307C0: ldr r0, [sp, #0x38] mov r1, #0x1e lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022307FE ldr r0, [sp, #0x10] cmp r0, r5 beq _022307DE ldr r0, [sp, #0xc] cmp r0, r5 bne _022307FE _022307DE: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x17 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _022307FE ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x17 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _022307FE: ldr r0, [sp, #0x38] mov r1, #0x1f lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _0223083C ldr r0, [sp, #0x10] cmp r0, r5 beq _0223081C ldr r0, [sp, #0xc] cmp r0, r5 bne _0223083C _0223081C: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x15 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _0223083C ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x15 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _0223083C: ldr r0, [sp, #0x38] mov r1, #0x20 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _0223087A ldr r0, [sp, #0x10] cmp r0, r5 beq _0223085A ldr r0, [sp, #0xc] cmp r0, r5 bne _0223087A _0223085A: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x18 mov r3, #0 bl MOD11_02243420 cmp r0, #0xc bge _0223087A ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x18 mov r3, #1 bl MOD11_02243DB0 mov r0, #1 str r0, [sp, #0x14] _0223087A: ldr r0, [sp, #0x38] mov r1, #0x21 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022308C4 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230898 ldr r0, [sp, #0xc] cmp r0, r5 bne _022308C4 _02230898: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 mov r1, #1 lsl r1, r1, #0x14 add r2, r0, #0 str r0, [sp, #0x20] tst r2, r1 bne _022308C4 orr r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 add r3, sp, #0x20 bl MOD11_0224379C mov r0, #1 str r0, [sp, #0x14] _022308C4: ldr r0, [sp, #0x38] mov r1, #0x24 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _0223095A ldr r0, [sp, #0x38] mov r1, #0x37 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #0x20] add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x3a mov r2, #0 bl FUN_020671BC add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 bl FUN_020671BC cmp r7, r0 beq _0223095A add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a bl FUN_02068018 ldr r0, [sp, #0x10] cmp r0, r5 beq _0223091C ldr r0, [sp, #0xc] cmp r0, r5 bne _02230956 _0223091C: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 mov r1, #2 lsl r1, r1, #0x14 tst r0, r1 bne _02230956 ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x4b mov r3, #0 bl MOD11_02243420 add r7, r0, #0 add r0, r4, #0 bl FUN_0206A92C tst r0, r7 bne _02230956 add r4, #0x1f ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] add r1, r6, #0 add r2, r4, #0 bl MOD11_02243DB0 _02230956: mov r0, #1 str r0, [sp, #0x14] _0223095A: ldr r0, [sp, #0x38] mov r1, #0x25 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _022309F8 ldr r0, [sp, #0x38] mov r1, #0x37 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #0x20] mov r4, #0 _0223097E: add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x3a mov r2, #0 bl FUN_020671BC add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 bl FUN_020671BC cmp r7, r0 beq _022309F2 add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a bl FUN_02068018 ldr r0, [sp, #0x10] cmp r0, r5 beq _022309B4 ldr r0, [sp, #0xc] cmp r0, r5 bne _022309EE _022309B4: ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x35 mov r3, #0 bl MOD11_02243420 mov r1, #2 lsl r1, r1, #0x14 tst r0, r1 bne _022309EE ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x4b mov r3, #0 bl MOD11_02243420 add r7, r0, #0 add r0, r4, #0 bl FUN_0206A92C tst r0, r7 bne _022309EE add r2, r4, #0 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] add r1, r6, #0 add r2, #0x1f bl MOD11_02243DB0 _022309EE: mov r0, #1 str r0, [sp, #0x14] _022309F2: add r4, r4, #1 cmp r4, #4 blt _0223097E _022309F8: ldr r0, [sp, #0x38] mov r1, #0x26 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 bne _02230A0C b _02230B14 _02230A0C: mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x38] mov r1, #0x17 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230A36 ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _02230A42 mov r0, #1 str r0, [sp, #0x20] b _02230A42 _02230A36: ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x20] _02230A42: ldr r0, [sp, #0x20] cmp r0, #0 beq _02230B14 ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r4, r0, #0 ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl FUN_020671BC cmp r4, r0 beq _02230B14 ldr r0, [sp, #0x38] mov r1, #0x36 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #0x20] cmp r0, #0xfd beq _02230AA2 cmp r0, #0xfe beq _02230A8C cmp r0, #0xff bne _02230AC2 ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x20] b _02230AC2 _02230A8C: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl FUN_020671BC lsr r0, r0, #1 str r0, [sp, #0x20] bne _02230AC2 mov r0, #1 str r0, [sp, #0x20] b _02230AC2 _02230AA2: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl FUN_020671BC mov r1, #0x19 mul r1, r0 add r0, r1, #0 mov r1, #0x64 bl _u32_div_f str r0, [sp, #0x20] cmp r0, #0 bne _02230AC2 mov r0, #1 str r0, [sp, #0x20] _02230AC2: ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] mov r1, #0xa2 bl FUN_02068018 ldr r0, [sp, #0x38] mov r1, #0x17 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 bne _02230B10 ldr r0, [sp, #4] add r1, r6, #0 bl MOD11_02230270 cmp r0, #0 beq _02230AF8 ldr r0, [sp, #0x1c] add r1, r6, #0 mov r2, #0x5f add r3, sp, #0x20 bl MOD11_0224379C b _02230B10 _02230AF8: ldr r0, [sp, #0x10] cmp r0, r5 beq _02230B04 ldr r0, [sp, #0xc] cmp r0, r5 bne _02230B10 _02230B04: ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] add r1, r6, #0 mov r2, #0x2f bl MOD11_02243DB0 _02230B10: mov r0, #1 str r0, [sp, #0x14] _02230B14: ldr r0, [sp, #0x38] mov r1, #0x2d lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230B4A ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 bl FUN_020671BC cmp r0, #0x64 bhs _02230B4A ldr r0, [sp, #0x14] cmp r0, #1 bne _02230B4A ldr r0, [sp, #0x38] mov r1, #0x38 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #8] _02230B4A: ldr r0, [sp, #0x38] mov r1, #0x2e lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230B8E ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 bl FUN_020671BC cmp r0, #0x64 blo _02230B8E ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 bl FUN_020671BC cmp r0, #0xc8 bhs _02230B8E ldr r0, [sp, #0x14] cmp r0, #1 bne _02230B8E ldr r0, [sp, #0x38] mov r1, #0x39 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #8] _02230B8E: ldr r0, [sp, #0x38] mov r1, #0x2f lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02230BC4 ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 bl FUN_020671BC cmp r0, #0xc8 blo _02230BC4 ldr r0, [sp, #0x14] cmp r0, #1 bne _02230BC4 ldr r0, [sp, #0x38] mov r1, #0x3a lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #8] _02230BC4: ldr r0, [sp, #8] cmp r0, #0 beq _02230C4A ble _02230C28 ldr r0, [sp, #0x18] mov r1, #0x9a mov r2, #0 bl FUN_020671BC cmp r0, #0xb bne _02230BE0 ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] _02230BE0: ldr r0, [sp, #0x18] mov r1, #0x97 mov r2, #0 bl FUN_020671BC add r4, r0, #0 ldr r0, [sp, #4] bl MOD11_022302B0 cmp r4, r0 bne _02230BFC ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] _02230BFC: ldr r0, [sp, #0x18] mov r1, #6 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x20] ldr r0, [sp, #0x38] mov r1, #1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0x34 bne _02230C28 ldr r1, [sp, #8] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f str r0, [sp, #8] _02230C28: ldr r0, [sp, #0x18] ldr r2, [sp, #8] mov r1, #9 bl FUN_02068018 ldr r0, [sp, #0x10] cmp r0, r5 beq _02230C3E ldr r0, [sp, #0xc] cmp r0, r5 bne _02230C4A _02230C3E: ldr r0, [sp, #0x1c] ldr r3, [sp, #8] add r1, r6, #0 mov r2, #0x2c bl MOD11_02243DB0 _02230C4A: ldr r0, [sp, #0x14] add sp, #0x24 pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_02230C50 MOD11_02230C50: ; 0x02230C50 ldr r1, _02230C58 ; =0x00002408 ldr r0, [r0, r1] bx lr nop _02230C58: .word 0x00002408 thumb_func_start MOD11_02230C5C MOD11_02230C5C: ; 0x02230C5C ldr r1, _02230C64 ; =0x0000240C ldr r0, [r0, r1] bx lr nop _02230C64: .word 0x0000240C thumb_func_start MOD11_02230C68 MOD11_02230C68: ; 0x02230C68 mov r2, #9 lsl r2, r2, #0xa ldr r1, [r0, r2] cmp r1, #5 bhi _02230CB4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02230C7E: ; jump table .short _02230C8A - _02230C7E - 2 ; case 0 .short _02230C8A - _02230C7E - 2 ; case 1 .short _02230C8A - _02230C7E - 2 ; case 2 .short _02230C8A - _02230C7E - 2 ; case 3 .short _02230C8A - _02230C7E - 2 ; case 4 .short _02230C8A - _02230C7E - 2 ; case 5 _02230C8A: add r2, #0xc ldr r1, [r0, r2] cmp r1, #4 bhi _02230CB6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02230C9E: ; jump table .short _02230CA8 - _02230C9E - 2 ; case 0 .short _02230CA8 - _02230C9E - 2 ; case 1 .short _02230CAC - _02230C9E - 2 ; case 2 .short _02230CB0 - _02230C9E - 2 ; case 3 .short _02230CB0 - _02230C9E - 2 ; case 4 _02230CA8: mov r0, #0 bx lr _02230CAC: mov r0, #1 bx lr _02230CB0: mov r0, #2 bx lr _02230CB4: mov r0, #0 _02230CB6: bx lr thumb_func_start MOD11_02230CB8 MOD11_02230CB8: ; 0x02230CB8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02230260 cmp r0, #4 bne _02230D32 ldr r1, [r5, #0x2c] mov r0, #8 tst r0, r1 bne _02230D32 mov r0, #4 tst r0, r1 beq _02230CEE add r0, r5, #0 add r1, r4, #0 bl MOD11_022302BC bl FUN_0206A92C mov r1, #0x91 lsl r1, r1, #6 ldrb r1, [r5, r1] tst r0, r1 bne _02230D32 mov r0, #1 pop {r3, r4, r5, pc} _02230CEE: ldr r1, [r5, #0x30] add r0, r5, #0 mov r2, #0xc mov r3, #0 bl MOD11_0224C474 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r1, [r5, #0x30] add r0, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_0224C474 cmp r0, #0xe bne _02230D12 cmp r4, #0x10 bhi _02230D2A _02230D12: ldr r1, [r5, #0x30] add r0, r5, #0 mov r2, #0xa mov r3, #0 bl MOD11_0224C474 add r4, r0, #0 mov r0, #0 bl FUN_0206A92C tst r0, r4 beq _02230D2E _02230D2A: mov r0, #0 pop {r3, r4, r5, pc} _02230D2E: mov r0, #1 pop {r3, r4, r5, pc} _02230D32: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02230D38 MOD11_02230D38: ; 0x02230D38 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 str r0, [sp, #4] ldr r0, [r5, #0x14] add r4, r1, #0 add r7, r2, #0 cmp r0, #1 beq _02230D5A cmp r0, #4 beq _02230D5A cmp r0, #5 beq _02230D5A ldr r0, [sp, #4] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02230D5A: mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #0 beq _02230DCE _02230D64: mov r0, #0 str r0, [r4] cmp r0, #6 bge _02230D9C mov r6, #0x5e lsl r6, r6, #2 _02230D70: bl FUN_0206A92C ldr r1, [r5, r6] tst r0, r1 beq _02230D92 ldr r0, [r4] bl FUN_0206A92C mov r3, #0x5e lsl r3, r3, #2 mov r2, #0 mvn r2, r2 ldr r1, [r5, r3] eor r0, r2 and r0, r1 str r0, [r5, r3] b _02230D9C _02230D92: ldr r0, [r4] add r0, r0, #1 str r0, [r4] cmp r0, #6 blt _02230D70 _02230D9C: ldr r1, [r4] cmp r1, #6 bge _02230DC4 ldr r0, [r5, #4] bl FUN_0206B9B0 mov r3, #0x59 str r7, [sp] lsl r3, r3, #2 ldr r3, [r5, r3] add r1, r0, #0 lsl r3, r3, #0x10 ldr r0, [r5, #4] mov r2, #0 lsr r3, r3, #0x10 bl FUN_02069168 str r0, [sp, #4] cmp r0, #0 bne _02230DD0 _02230DC4: mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #0 bne _02230D64 _02230DCE: ldr r0, [sp, #4] _02230DD0: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02230DD4 MOD11_02230DD4: ; 0x02230DD4 ldr r1, _02230DDC ; =0x000023F8 ldrb r0, [r0, r1] bx lr nop _02230DDC: .word 0x000023F8 thumb_func_start MOD11_02230DE0 MOD11_02230DE0: ; 0x02230DE0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] cmp r0, #0 bne _02230DEE bl ErrorHandling _02230DEE: ldr r1, [r4, #0x30] add r0, r4, #0 mov r2, #5 mov r3, #0 bl MOD11_0224C474 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} thumb_func_start MOD11_02230E00 MOD11_02230E00: ; 0x02230E00 ldr r1, _02230E08 ; =0x00002410 ldr r0, [r0, r1] bx lr nop _02230E08: .word 0x00002410 thumb_func_start MOD11_02230E0C MOD11_02230E0C: ; 0x02230E0C ldr r2, _02230E14 ; =0x00002410 str r1, [r0, r2] bx lr nop _02230E14: .word 0x00002410 thumb_func_start MOD11_02230E18 MOD11_02230E18: ; 0x02230E18 mov r1, #0x6d lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_02230E20 MOD11_02230E20: ; 0x02230E20 push {r3, lr} ldr r2, [r0, #0x2c] mov r1, #4 tst r1, r2 beq _02230E2E mov r0, #1 pop {r3, pc} _02230E2E: mov r1, #0x6d lsl r1, r1, #2 ldr r0, [r0, r1] bl FUN_0202502C cmp r0, #0 bne _02230E40 mov r0, #1 pop {r3, pc} _02230E40: mov r0, #0 pop {r3, pc} thumb_func_start MOD11_02230E44 MOD11_02230E44: ; 0x02230E44 mov r1, #0x6d lsl r1, r1, #2 ldr r3, _02230E50 ; =0x02025085 ldr r0, [r0, r1] bx r3 nop _02230E50: .word 0x02025085 thumb_func_start MOD11_02230E54 MOD11_02230E54: ; 0x02230E54 push {r3, lr} ldr r2, [r0, #0x2c] mov r1, #4 tst r1, r2 beq _02230E62 mov r0, #1 pop {r3, pc} _02230E62: mov r1, #0x6d lsl r1, r1, #2 ldr r0, [r0, r1] bl FUN_02024FF4 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02230E70 MOD11_02230E70: ; 0x02230E70 mov r1, #0x6d lsl r1, r1, #2 ldr r3, _02230E7C ; =0x02025049 ldr r0, [r0, r1] bx r3 nop _02230E7C: .word 0x02025049 thumb_func_start MOD11_02230E80 MOD11_02230E80: ; 0x02230E80 mov r1, #0x71 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_02230E88 MOD11_02230E88: ; 0x02230E88 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5, #0x2c] mov r3, #8 add r4, r1, #0 tst r3, r2 bne _02230EA6 mov r3, #0x10 tst r2, r3 beq _02230EAE bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _02230EAE _02230EA6: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x78] pop {r3, r4, r5, pc} _02230EAE: ldr r1, [r5, #0x2c] mov r0, #2 tst r0, r1 beq _02230EC0 lsl r0, r4, #0x1f lsr r0, r0, #0x1d add r0, r5, r0 ldr r0, [r0, #0x78] pop {r3, r4, r5, pc} _02230EC0: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x78] pop {r3, r4, r5, pc} thumb_func_start MOD11_02230EC8 MOD11_02230EC8: ; 0x02230EC8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r1, #0xa9 ldr r2, [r5, #0x2c] lsl r1, r1, #2 tst r1, r2 bne _02230F66 mov r4, #0 add r1, r4, #0 bl MOD11_0222FFC8 cmp r0, #0 ble _02230F66 add r7, r4, #0 _02230EE4: add r0, r5, #0 mov r1, #0 add r2, r4, #0 bl MOD11_02230014 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #0x67 lsl r0, r0, #2 cmp r1, r0 bne _02230F58 add r0, r4, #0 bl FUN_0206A92C ldr r1, _02230F68 ; =0x00002414 ldrb r1, [r5, r1] tst r0, r1 beq _02230F58 add r0, r5, #0 bl MOD11_02230294 cmp r0, #0xb bhi _02230F40 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02230F28: ; jump table .short _02230F44 - _02230F28 - 2 ; case 0 .short _02230F44 - _02230F28 - 2 ; case 1 .short _02230F40 - _02230F28 - 2 ; case 2 .short _02230F40 - _02230F28 - 2 ; case 3 .short _02230F44 - _02230F28 - 2 ; case 4 .short _02230F44 - _02230F28 - 2 ; case 5 .short _02230F40 - _02230F28 - 2 ; case 6 .short _02230F40 - _02230F28 - 2 ; case 7 .short _02230F40 - _02230F28 - 2 ; case 8 .short _02230F4A - _02230F28 - 2 ; case 9 .short _02230F40 - _02230F28 - 2 ; case 10 .short _02230F4A - _02230F28 - 2 ; case 11 _02230F40: str r7, [sp] b _02230F4E _02230F44: mov r0, #1 str r0, [sp] b _02230F4E _02230F4A: mov r0, #2 str r0, [sp] _02230F4E: add r0, r6, #0 mov r1, #0x70 add r2, sp, #0 bl FUN_02067830 _02230F58: add r0, r5, #0 mov r1, #0 add r4, r4, #1 bl MOD11_0222FFC8 cmp r4, r0 blt _02230EE4 _02230F66: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02230F68: .word 0x00002414 thumb_func_start MOD11_02230F6C MOD11_02230F6C: ; 0x02230F6C push {r3, r4, r5, lr} add r5, r0, #0 add r0, r2, #0 add r4, r1, #0 bl FUN_0206A92C ldr r1, _02230F84 ; =0x00002414 add r2, r5, r1 ldrb r1, [r2, r4] orr r0, r1 strb r0, [r2, r4] pop {r3, r4, r5, pc} .align 2, 0 _02230F84: .word 0x00002414 thumb_func_start MOD11_02230F88 MOD11_02230F88: ; 0x02230F88 push {r4, lr} add r4, r0, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 beq _02230FA4 add r0, r1, #0 bl FUN_020690E4 add r4, #0x98 add r1, r0, #0 ldr r0, [r4] bl FUN_0204C104 _02230FA4: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02230FA8 MOD11_02230FA8: ; 0x02230FA8 push {r3, r4, lr} sub sp, #4 add r3, r0, #0 mov r0, #5 str r0, [sp] ldr r4, _02230FC8 ; =0x0000241C add r0, r3, #0 ldrb r2, [r3, r4] add r4, r4, #2 add r0, #0x9c ldrh r3, [r3, r4] ldr r0, [r0] bl FUN_02061028 add sp, #4 pop {r3, r4, pc} .align 2, 0 _02230FC8: .word 0x0000241C thumb_func_start MOD11_02230FCC MOD11_02230FCC: ; 0x02230FCC push {r4, r5, r6, r7, lr} sub sp, #0x2c mov r1, #1 add r4, r0, #0 mov r0, #5 lsl r1, r1, #0x10 bl FUN_02016998 mov r1, #0x87 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #5 sub r1, #0x1c bl FUN_02016998 mov r1, #0x22 lsl r1, r1, #4 str r0, [r4, r1] sub r1, r1, #4 mov r2, #1 ldr r0, _02231224 ; =0x06010000 ldr r1, [r4, r1] lsl r2, r2, #0x10 bl MIi_CpuCopy32 mov r0, #0x22 lsl r0, r0, #4 ldr r5, [r4, r0] ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020031FC mov r2, #2 add r1, r5, #0 lsl r2, r2, #8 bl MIi_CpuCopy32 mov r0, #0x19 lsl r0, r0, #0x16 str r0, [sp, #0x24] mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r4, r0] ldr r0, [r0] bl FUN_02020350 ldr r1, [r0, #4] ldr r0, [sp, #0x24] add r0, r0, r1 str r0, [sp, #0x24] mov r0, #0x14 str r0, [sp, #0x28] lsl r0, r0, #0xb str r0, [sp, #0xc] _02231038: mov r0, #0x10 mov ip, r0 lsl r0, r0, #6 str r0, [sp, #0x14] ldr r0, [sp, #0x28] mov r7, #1 sub r0, #0x14 lsl r1, r0, #8 ldr r0, [sp, #0x24] add r0, r0, r1 str r0, [sp, #0x10] _0223104E: mov r0, ip sub r0, #0x10 ldr r1, [sp, #0x10] lsl r3, r0, #5 add r3, r1, r3 ldr r5, [sp, #0xc] ldr r1, [sp, #0x14] mov r2, #0 add r6, r5, r1 _02231060: cmp r0, #8 bge _02231088 add r1, r2, #0 tst r1, r7 beq _0223107A lsr r1, r2, #0x1f add r1, r2, r1 asr r1, r1, #1 ldrb r5, [r3, r1] mov r1, #0xf0 and r1, r5 asr r1, r1, #4 b _022310B6 _0223107A: lsr r1, r2, #0x1f add r1, r2, r1 asr r1, r1, #1 ldrb r5, [r3, r1] mov r1, #0xf and r1, r5 b _022310B6 _02231088: mov r1, #1 tst r1, r2 beq _022310A4 lsr r1, r2, #0x1f add r1, r2, r1 asr r1, r1, #1 add r5, r3, r1 mov r1, #7 lsl r1, r1, #8 ldrb r5, [r5, r1] mov r1, #0xf0 and r1, r5 asr r1, r1, #4 b _022310B6 _022310A4: lsr r1, r2, #0x1f add r1, r2, r1 asr r1, r1, #1 add r5, r3, r1 mov r1, #7 lsl r1, r1, #8 ldrb r5, [r5, r1] mov r1, #0xf and r1, r5 _022310B6: cmp r1, #0 beq _022310C6 mov r5, #0x87 lsl r5, r5, #2 ldr r5, [r4, r5] add r1, #0x70 add r5, r6, r5 strb r1, [r2, r5] _022310C6: add r2, r2, #1 cmp r2, #0x40 blt _02231060 ldr r0, [sp, #0x14] add r0, #0x40 str r0, [sp, #0x14] mov r0, ip add r0, r0, #1 mov ip, r0 cmp r0, #0x20 blt _0223104E mov r1, #2 ldr r0, [sp, #0xc] lsl r1, r1, #0xa add r0, r0, r1 str r0, [sp, #0xc] ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, #0x1c blt _02231038 mov r0, #0x19 lsl r0, r0, #0x16 str r0, [sp, #8] mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r4, r0] ldr r0, [r0] bl FUN_02020350 ldr r1, [r0, #4] ldr r0, [sp, #8] mov r7, #0x26 add r0, r0, r1 str r0, [sp, #8] mov r3, #0 mov r0, #0xf mov r1, #0xf0 lsl r7, r7, #0xa mov r2, #1 _02231116: add r5, r3, #0 tst r5, r2 beq _0223112C lsr r5, r3, #0x1f add r5, r3, r5 asr r6, r5, #1 ldr r5, [sp, #8] ldrb r5, [r5, r6] and r5, r1 asr r5, r5, #4 b _02231138 _0223112C: lsr r5, r3, #0x1f add r5, r3, r5 asr r6, r5, #1 ldr r5, [sp, #8] ldrb r5, [r5, r6] and r5, r0 _02231138: cmp r5, #0 beq _02231148 mov r6, #0x87 lsl r6, r6, #2 ldr r6, [r4, r6] add r5, #0x70 add r6, r6, r3 strb r5, [r6, r7] _02231148: mov r5, #2 add r3, r3, #1 lsl r5, r5, #0xa cmp r3, r5 blt _02231116 mov r0, #0x1c str r0, [sp, #4] lsl r0, r0, #0xb str r0, [sp, #0x18] _0223115A: ldr r0, [sp, #4] mov r2, #0 sub r0, #0x1c lsl r1, r0, #8 ldr r0, [sp, #8] str r2, [sp, #0x20] add r0, r0, r1 str r0, [sp, #0x1c] mov r7, #1 _0223116C: asr r0, r2, #2 lsr r0, r0, #0x1d add r0, r2, r0 asr r0, r0, #3 lsl r1, r0, #0xa ldr r0, [sp, #0x1c] lsr r5, r2, #0x1f add r6, r0, r1 lsl r1, r2, #0x1d sub r1, r1, r5 mov r0, #0x1d ror r1, r0 add r0, r5, r1 lsl r0, r0, #5 ldr r5, [sp, #0x18] ldr r1, [sp, #0x20] mov r3, #0 add r0, r6, r0 add r1, r5, r1 _02231192: add r5, r3, #0 tst r5, r7 beq _022311AE lsr r5, r3, #0x1f add r5, r3, r5 asr r5, r5, #1 add r6, r0, r5 mov r5, #1 lsl r5, r5, #0xa ldrb r6, [r6, r5] mov r5, #0xf0 and r5, r6 asr r5, r5, #4 b _022311C0 _022311AE: lsr r5, r3, #0x1f add r5, r3, r5 asr r5, r5, #1 add r6, r0, r5 mov r5, #1 lsl r5, r5, #0xa ldrb r6, [r6, r5] mov r5, #0xf and r5, r6 _022311C0: cmp r5, #0 beq _022311D0 mov r6, #0x87 lsl r6, r6, #2 ldr r6, [r4, r6] add r5, #0x70 add r6, r1, r6 strb r5, [r3, r6] _022311D0: add r3, r3, #1 cmp r3, #0x40 blt _02231192 ldr r0, [sp, #0x20] add r2, r2, #1 add r0, #0x40 str r0, [sp, #0x20] cmp r2, #0x18 blt _0223116C mov r3, #2 ldr r0, [sp, #0x18] lsl r3, r3, #0xa add r0, r0, r3 str r0, [sp, #0x18] ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] cmp r0, #0x20 blt _0223115A mov r0, #0 mov r2, #0x87 str r0, [sp] lsl r2, r2, #2 ldr r0, [r4, #4] ldr r2, [r4, r2] mov r1, #3 lsl r3, r3, #5 bl FUN_02017E14 mov r0, #0x5f lsl r0, r0, #2 add r0, r4, r0 bl MOD11_0225840C mov r0, #0x63 lsl r0, r0, #2 add r0, r4, r0 bl MOD11_0225840C add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _02231224: .word 0x06010000 thumb_func_start MOD11_02231228 MOD11_02231228: ; 0x02231228 mov r1, #0x87 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_02231230 MOD11_02231230: ; 0x02231230 mov r1, #0x22 lsl r1, r1, #4 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_02231238 MOD11_02231238: ; 0x02231238 ldr r1, _02231240 ; =0x00002424 ldr r0, [r0, r1] bx lr nop _02231240: .word 0x00002424 thumb_func_start MOD11_02231244 MOD11_02231244: ; 0x02231244 ldr r1, _0223124C ; =0x00002224 add r0, r0, r1 bx lr nop _0223124C: .word 0x00002224 thumb_func_start MOD11_02231250 MOD11_02231250: ; 0x02231250 ldr r1, _02231258 ; =0x00002304 add r0, r0, r1 bx lr nop _02231258: .word 0x00002304 thumb_func_start MOD11_0223125C MOD11_0223125C: ; 0x0223125C ldr r1, _02231264 ; =0x00002428 ldr r0, [r0, r1] bx lr nop _02231264: .word 0x00002428 thumb_func_start MOD11_02231268 MOD11_02231268: ; 0x02231268 ldr r1, _02231270 ; =0x0000241D ldrb r0, [r0, r1] bx lr nop _02231270: .word 0x0000241D thumb_func_start MOD11_02231274 MOD11_02231274: ; 0x02231274 ldr r2, _0223127C ; =0x0000241D strb r1, [r0, r2] bx lr nop _0223127C: .word 0x0000241D thumb_func_start MOD11_02231280 MOD11_02231280: ; 0x02231280 ldr r1, _02231288 ; =0x0000242C ldr r0, [r0, r1] bx lr nop _02231288: .word 0x0000242C thumb_func_start MOD11_0223128C MOD11_0223128C: ; 0x0223128C mov r2, #0x86 lsl r2, r2, #2 ldr r3, _02231298 ; =0x0202A0E9 ldr r0, [r0, r2] bx r3 nop _02231298: .word 0x0202A0E9 thumb_func_start MOD11_0223129C MOD11_0223129C: ; 0x0223129C mov r1, #0x86 lsl r1, r1, #2 ldr r0, [r0, r1] ldr r3, _022312A8 ; =0x0202A171 mov r1, #0x16 bx r3 .align 2, 0 _022312A8: .word 0x0202A171 thumb_func_start MOD11_022312AC MOD11_022312AC: ; 0x022312AC ldr r2, _022312B4 ; =0x0000243C str r1, [r0, r2] bx lr nop _022312B4: .word 0x0000243C thumb_func_start MOD11_022312B8 MOD11_022312B8: ; 0x022312B8 mov r2, #0x91 lsl r2, r2, #6 strb r1, [r0, r2] bx lr thumb_func_start MOD11_022312C0 MOD11_022312C0: ; 0x022312C0 mov r1, #0x6f lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_start MOD11_022312C8 MOD11_022312C8: ; 0x022312C8 mov r2, #0x6f lsl r2, r2, #2 str r1, [r0, r2] bx lr thumb_func_start MOD11_022312D0 MOD11_022312D0: ; 0x022312D0 mov r2, #0x73 lsl r2, r2, #2 add r2, r0, r2 lsl r0, r1, #4 add r0, r2, r0 bx lr thumb_func_start MOD11_022312DC MOD11_022312DC: ; 0x022312DC push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #4 blt _022312EA bl ErrorHandling _022312EA: lsl r0, r5, #4 ldr r0, [r4, r0] pop {r3, r4, r5, pc} thumb_func_start MOD11_022312F0 MOD11_022312F0: ; 0x022312F0 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #4 blt _02231300 bl ErrorHandling _02231300: lsl r0, r4, #4 add r0, r5, r0 str r6, [r0, #4] pop {r4, r5, r6, pc} thumb_func_start MOD11_02231308 MOD11_02231308: ; 0x02231308 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #4 blt _02231318 bl ErrorHandling _02231318: lsl r0, r4, #4 add r0, r5, r0 str r6, [r0, #8] pop {r4, r5, r6, pc} thumb_func_start MOD11_02231320 MOD11_02231320: ; 0x02231320 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #4 blt _02231330 bl ErrorHandling _02231330: lsl r0, r4, #4 add r0, r5, r0 str r6, [r0, #0xc] pop {r4, r5, r6, pc} thumb_func_start MOD11_02231338 MOD11_02231338: ; 0x02231338 ldr r2, _02231340 ; =0x000023F9 strb r1, [r0, r2] bx lr nop _02231340: .word 0x000023F9 thumb_func_start MOD11_02231344 MOD11_02231344: ; 0x02231344 ldr r2, _0223134C ; =0x000023F0 str r1, [r0, r2] bx lr nop _0223134C: .word 0x000023F0 thumb_func_start MOD11_02231350 MOD11_02231350: ; 0x02231350 ldr r2, _02231358 ; =0x000023F4 str r1, [r0, r2] bx lr nop _02231358: .word 0x000023F4 thumb_func_start MOD11_0223135C MOD11_0223135C: ; 0x0223135C ldr r2, _02231364 ; =0x000023F0 ldr r0, [r0, r2] strb r1, [r0] bx lr .align 2, 0 _02231364: .word 0x000023F0 thumb_func_start MOD11_02231368 MOD11_02231368: ; 0x02231368 ldr r2, _02231370 ; =0x000023F4 ldr r0, [r0, r2] strb r1, [r0] bx lr .align 2, 0 _02231370: .word 0x000023F4 thumb_func_start MOD11_02231374 MOD11_02231374: ; 0x02231374 ldr r2, _0223137C ; =0x000023FA strb r1, [r0, r2] bx lr nop _0223137C: .word 0x000023FA thumb_func_start MOD11_02231380 MOD11_02231380: ; 0x02231380 lsl r1, r1, #2 add r0, r0, r1 ldr r3, _0223138C ; =MOD11_02253A70 ldr r0, [r0, #0x34] bx r3 nop _0223138C: .word MOD11_02253A70 thumb_func_start MOD11_02231390 MOD11_02231390: ; 0x02231390 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] mov r7, #0 cmp r0, #0 ble _022313DC add r5, r6, #0 _0223139E: ldr r0, [r5, #0x34] bl MOD11_02253A70 add r4, r0, #0 str r6, [r4, #0xc] ldr r0, [r5, #0x34] bl MOD11_02253A4C str r0, [sp] add r0, r6, #0 bl MOD11_0222FF74 add r1, r0, #0 ldr r0, [sp] bl MOD11_02257F6C add r1, r4, #0 add r1, #0x25 strb r0, [r1] add r0, r4, #0 bl MOD11_02256FB0 add r0, r4, #0 mov r1, #0 bl MOD11_022572AC ldr r0, [r6, #0x44] add r7, r7, #1 add r5, r5, #4 cmp r7, r0 blt _0223139E _022313DC: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022313E0 MOD11_022313E0: ; 0x022313E0 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] mov r4, #0 cmp r0, #0 ble _0223140C add r5, r6, #0 mov r7, #1 _022313F0: ldr r0, [r5, #0x34] bl MOD11_02253A70 ldr r1, [r0, #0x28] cmp r1, #0 beq _02231402 add r1, r7, #0 bl MOD11_022572AC _02231402: ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _022313F0 _0223140C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02231410 MOD11_02231410: ; 0x02231410 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] mov r4, #0 cmp r0, #0 ble _02231436 add r5, r6, #0 add r7, r4, #0 _02231420: ldr r0, [r5, #0x34] bl MOD11_02253A70 add r1, r7, #0 bl MOD11_022572AC ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _02231420 _02231436: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02231438 MOD11_02231438: ; 0x02231438 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6, #0x44] mov r4, #0 cmp r0, #0 ble _0223145A add r5, r6, #0 _02231446: ldr r0, [r5, #0x34] bl MOD11_02253A70 bl MOD11_02257030 ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _02231446 _0223145A: pop {r4, r5, r6, pc} thumb_func_start MOD11_0223145C MOD11_0223145C: ; 0x0223145C ldr r1, _02231464 ; =0x0000241C ldrb r0, [r0, r1] bx lr nop _02231464: .word 0x0000241C thumb_func_start MOD11_02231468 MOD11_02231468: ; 0x02231468 ldr r2, _02231470 ; =0x0000241C strb r1, [r0, r2] bx lr nop _02231470: .word 0x0000241C thumb_func_start MOD11_02231474 MOD11_02231474: ; 0x02231474 ldr r1, _02231480 ; =0x000023FB ldrb r0, [r0, r1] lsl r0, r0, #0x1b lsr r0, r0, #0x1e bx lr nop _02231480: .word 0x000023FB thumb_func_start MOD11_02231484 MOD11_02231484: ; 0x02231484 push {r3, r4} ldr r3, _0223149C ; =0x000023FB lsl r1, r1, #0x1e ldrb r4, [r0, r3] mov r2, #0x18 lsr r1, r1, #0x1b bic r4, r2 orr r1, r4 strb r1, [r0, r3] pop {r3, r4} bx lr nop _0223149C: .word 0x000023FB thumb_func_start MOD11_022314A0 MOD11_022314A0: ; 0x022314A0 ldr r1, _022314AC ; =0x000023FB ldrb r0, [r0, r1] lsl r0, r0, #0x18 lsr r0, r0, #0x1d bx lr nop _022314AC: .word 0x000023FB thumb_func_start MOD11_022314B0 MOD11_022314B0: ; 0x022314B0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 cmp r4, #0xf blo _022314BE bl ErrorHandling _022314BE: ldr r1, _022314D0 ; =0x000023FB mov r0, #0xe0 ldrb r2, [r5, r1] bic r2, r0 lsl r0, r4, #0x1d lsr r0, r0, #0x18 orr r0, r2 strb r0, [r5, r1] pop {r3, r4, r5, pc} .align 2, 0 _022314D0: .word 0x000023FB thumb_func_start MOD11_022314D4 MOD11_022314D4: ; 0x022314D4 ldr r2, _022314DC ; =0x00002438 str r1, [r0, r2] bx lr nop _022314DC: .word 0x00002438 thumb_func_start MOD11_022314E0 MOD11_022314E0: ; 0x022314E0 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] add r7, r1, #0 mov r4, #0 cmp r0, #0 ble _02231502 add r5, r6, #0 _022314F0: ldr r0, [r5, #0x34] bl MOD11_02253A4C strb r4, [r7, r0] ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _022314F0 _02231502: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02231504 MOD11_02231504: ; 0x02231504 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r1, #0 mov r1, #0 mov r0, #0xff _0223150E: strb r0, [r6, r1] add r1, r1, #1 cmp r1, #4 blt _0223150E ldr r0, [r7, #0x44] mov r5, #0 cmp r0, #0 ble _02231532 add r4, r7, #0 _02231520: ldr r0, [r4, #0x34] bl MOD11_02253A4C strb r0, [r6, r5] ldr r0, [r7, #0x44] add r5, r5, #1 add r4, r4, #4 cmp r5, r0 blt _02231520 _02231532: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02231534 MOD11_02231534: ; 0x02231534 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r0, #0 add r6, r1, #0 add r5, r0, #0 _0223153E: add r0, r0, #1 stmia r1!, {r5} cmp r0, #4 blt _0223153E ldr r0, [r7, #0x44] cmp r0, #0 ble _02231560 add r4, r7, #0 _0223154E: ldr r0, [r4, #0x34] bl MOD11_02253A64 stmia r6!, {r0} ldr r0, [r7, #0x44] add r5, r5, #1 add r4, r4, #4 cmp r5, r0 blt _0223154E _02231560: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02231564 MOD11_02231564: ; 0x02231564 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x44] add r7, r1, #0 mov r4, #0 cmp r0, #0 ble _0223158A add r5, r6, #0 _02231574: ldr r0, [r5, #0x34] bl MOD11_02253A70 add r1, r7, #0 bl MOD11_02257264 ldr r0, [r6, #0x44] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _02231574 _0223158A: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223158C MOD11_0223158C: ; 0x0223158C push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 bl FUN_020239F4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 bl FUN_02069AEC ldr r1, _022315BC ; =0x0225DC1C lsl r0, r0, #2 ldrb r1, [r1, r4] add r4, r1, #0 mul r4, r0 add r0, r6, #0 bl FUN_02023A10 cmp r4, r0 bls _022315B8 add r4, r0, #0 _022315B8: add r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 _022315BC: .word 0x0225DC1C thumb_func_start MOD11_022315C0 MOD11_022315C0: ; 0x022315C0 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 lsl r0, r6, #2 add r0, r5, r0 ldr r0, [r0, #0x34] bl MOD11_02253A4C add r4, r0, #0 ldr r1, [r5, #0x30] add r0, r5, #0 mov r2, #2 add r3, r6, #0 bl MOD11_0224C474 add r2, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02230014 add r6, r0, #0 ldr r0, [r5, #0x2c] mov r1, #0x84 tst r1, r0 bne _02231606 mov r1, #1 tst r1, r4 bne _022315FE sub r0, #0x4a cmp r0, #1 bhi _02231606 _022315FE: ldr r0, [r5, #0x60] add r1, r6, #0 bl FUN_0202498C _02231606: mov r0, #1 tst r0, r4 bne _02231626 add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC mov r1, #0x67 lsl r1, r1, #2 cmp r0, r1 bne _02231626 ldr r0, [r5, #0x60] add r1, r6, #0 bl FUN_02024AF0 _02231626: pop {r4, r5, r6, pc} thumb_func_start MOD11_02231628 MOD11_02231628: ; 0x02231628 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x34] bl MOD11_02253A4C ldr r2, [r5, #0x2c] mov r1, #0x84 tst r1, r2 bne _02231664 mov r1, #1 tst r0, r1 beq _02231664 ldr r1, [r5, #0x30] add r0, r5, #0 mov r2, #2 add r3, r4, #0 bl MOD11_0224C474 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02230014 add r1, r0, #0 ldr r0, [r5, #0x60] bl FUN_02024AF0 _02231664: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02231668 MOD11_02231668: ; 0x02231668 ldr r3, _02231674 ; =0x02024595 lsl r1, r1, #0x10 ldr r0, [r0, #0x60] lsr r1, r1, #0x10 bx r3 nop _02231674: .word 0x02024595 thumb_func_start MOD11_02231678 MOD11_02231678: ; 0x02231678 ldr r0, _02231680 ; =0x04000050 mov r1, #0 strh r1, [r0] bx lr .align 2, 0 _02231680: .word 0x04000050 thumb_func_start MOD11_02231684 MOD11_02231684: ; 0x02231684 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 mov r1, #0 str r2, [sp, #0xc] add r7, r3, #0 bl MOD11_0222FF6C add r6, r0, #0 ldr r1, [r5, #0x2c] mov r0, #0x80 tst r0, r1 beq _0223174C ldr r0, _02231780 ; =0x00002710 cmp r4, r0 bne _022316F6 cmp r7, #0x64 bne _022316BC ldr r0, [sp, #0xc] mov r1, #0x34 add r5, #0xd0 mul r1, r0 add r0, r5, r1 mov r1, #5 bl FUN_020137D4 b _022316CC _022316BC: ldr r0, [sp, #0xc] mov r1, #0x34 add r5, #0xd8 mul r1, r0 add r0, r5, r1 mov r1, #5 bl FUN_020137D4 _022316CC: add r4, r0, #0 add r0, r6, #0 mov r1, #0xff bl FUN_02019620 mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] str r0, [sp, #4] ldr r0, _02231784 ; =MOD11_0223220C mov r1, #1 str r0, [sp, #8] add r0, r6, #0 add r2, r4, #0 bl FUN_0201BD84 add r5, r0, #0 add r0, r4, #0 bl FUN_02021A20 b _02231778 _022316F6: cmp r7, #0x64 bne _02231702 lsl r0, r4, #1 add r0, r4, r0 add r4, r0, #1 b _02231708 _02231702: lsl r0, r4, #1 add r0, r4, r0 add r4, r0, #2 _02231708: ldr r2, _02231788 ; =0x0000022B mov r0, #0 mov r1, #0x1a mov r3, #5 bl FUN_0200A86C add r1, r4, #0 add r7, r0, #0 bl FUN_0200A914 add r4, r0, #0 add r0, r6, #0 mov r1, #0xff bl FUN_02019620 mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] str r0, [sp, #4] ldr r0, _02231784 ; =MOD11_0223220C mov r1, #1 str r0, [sp, #8] add r0, r6, #0 add r2, r4, #0 bl FUN_0201BD84 add r5, r0, #0 add r0, r4, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_0200A8B8 b _02231778 _0223174C: ldr r2, [r5, #0x18] add r0, r4, #0 add r1, r7, #0 mov r3, #5 bl FUN_0206AD4C add r0, r6, #0 mov r1, #0xff bl FUN_02019620 mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] str r0, [sp, #4] ldr r0, _02231784 ; =MOD11_0223220C mov r1, #1 str r0, [sp, #8] ldr r2, [r5, #0x18] add r0, r6, #0 bl FUN_0201BD84 add r5, r0, #0 _02231778: lsl r0, r5, #0x18 lsr r0, r0, #0x18 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02231780: .word 0x00002710 _02231784: .word MOD11_0223220C _02231788: .word 0x0000022B thumb_func_start MOD11_0223178C MOD11_0223178C: ; 0x0223178C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r1, [sp, #0xc] add r5, r0, #0 add r4, r2, #0 mov r1, #0 add r6, r3, #0 bl MOD11_0222FF6C add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02231850 add r0, r5, #0 add r1, r4, #0 bl MOD11_02231A4C ldr r1, [sp, #0xc] add r0, r5, #0 add r2, r4, #0 bl MOD11_022321EC add r0, r7, #0 mov r1, #0xff bl FUN_02019620 mov r3, #0 str r3, [sp] ldr r0, _022317DC ; =MOD11_0223220C str r6, [sp, #4] str r0, [sp, #8] ldr r2, [r5, #0x18] add r0, r7, #0 mov r1, #1 bl FUN_0201BD84 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _022317DC: .word MOD11_0223220C thumb_func_start MOD11_022317E0 MOD11_022317E0: ; 0x022317E0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r3, #0 add r4, r1, #0 add r5, r0, #0 add r1, r7, #0 add r6, r2, #0 bl MOD11_02231850 add r0, r5, #0 add r1, r7, #0 bl MOD11_02231A4C add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_022321EC ldr r1, [sp, #0x28] mov r0, #1 tst r0, r1 beq _02231814 add r0, r4, #0 mov r1, #0xff bl FUN_02019620 _02231814: ldr r1, [sp, #0x28] mov r0, #2 tst r0, r1 beq _0223182C mov r0, #0 ldr r1, [r5, #0x18] add r2, r0, #0 bl FUN_02002E14 ldr r1, [sp, #0x2c] sub r3, r1, r0 b _0223182E _0223182C: mov r3, #0 _0223182E: ldr r0, [sp, #0x24] mov r1, #0 str r0, [sp] ldr r0, [sp, #0x30] str r0, [sp, #4] ldr r0, _0223184C ; =MOD11_0223220C str r0, [sp, #8] add r0, r4, #0 ldr r4, [sp, #0x20] ldr r2, [r5, #0x18] add r3, r4, r3 bl FUN_0201BD84 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _0223184C: .word MOD11_0223220C thumb_func_start MOD11_02231850 MOD11_02231850: ; 0x02231850 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r0, #0 bl MOD11_0222FF74 add r5, r0, #0 ldrb r0, [r4, #1] mov r1, #0x80 tst r1, r0 bne _02231876 mov r1, #0x40 tst r1, r0 beq _02231880 ldr r1, [r4, #0x20] add r0, r6, #0 bl MOD11_02230270 cmp r0, #0 bne _02231878 _02231876: b _02231A4A _02231878: ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231880: mov r1, #0x3f and r0, r1 cmp r0, #0x3c bls _0223188A b _02231A46 _0223188A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02231896: ; jump table .short _02231A4A - _02231896 - 2 ; case 0 .short _02231910 - _02231896 - 2 ; case 1 .short _02231928 - _02231896 - 2 ; case 2 .short _02231A4A - _02231896 - 2 ; case 3 .short _02231A4A - _02231896 - 2 ; case 4 .short _02231A4A - _02231896 - 2 ; case 5 .short _02231A4A - _02231896 - 2 ; case 6 .short _02231A4A - _02231896 - 2 ; case 7 .short _02231A4A - _02231896 - 2 ; case 8 .short _0223198A - _02231896 - 2 ; case 9 .short _02231928 - _02231896 - 2 ; case 10 .short _02231928 - _02231896 - 2 ; case 11 .short _02231928 - _02231896 - 2 ; case 12 .short _02231928 - _02231896 - 2 ; case 13 .short _02231928 - _02231896 - 2 ; case 14 .short _02231928 - _02231896 - 2 ; case 15 .short _02231928 - _02231896 - 2 ; case 16 .short _02231928 - _02231896 - 2 ; case 17 .short _02231928 - _02231896 - 2 ; case 18 .short _02231928 - _02231896 - 2 ; case 19 .short _0223194E - _02231896 - 2 ; case 20 .short _02231966 - _02231896 - 2 ; case 21 .short _02231A4A - _02231896 - 2 ; case 22 .short _02231966 - _02231896 - 2 ; case 23 .short _02231A4A - _02231896 - 2 ; case 24 .short _02231A4A - _02231896 - 2 ; case 25 .short _02231A4A - _02231896 - 2 ; case 26 .short _02231A4A - _02231896 - 2 ; case 27 .short _02231A4A - _02231896 - 2 ; case 28 .short _02231A4A - _02231896 - 2 ; case 29 .short _02231A4A - _02231896 - 2 ; case 30 .short _0223198A - _02231896 - 2 ; case 31 .short _0223198A - _02231896 - 2 ; case 32 .short _0223198A - _02231896 - 2 ; case 33 .short _02231928 - _02231896 - 2 ; case 34 .short _02231928 - _02231896 - 2 ; case 35 .short _022319E8 - _02231896 - 2 ; case 36 .short _02231928 - _02231896 - 2 ; case 37 .short _02231928 - _02231896 - 2 ; case 38 .short _02231928 - _02231896 - 2 ; case 39 .short _02231928 - _02231896 - 2 ; case 40 .short _02231928 - _02231896 - 2 ; case 41 .short _02231928 - _02231896 - 2 ; case 42 .short _022319E8 - _02231896 - 2 ; case 43 .short _02231928 - _02231896 - 2 ; case 44 .short _02231928 - _02231896 - 2 ; case 45 .short _02231928 - _02231896 - 2 ; case 46 .short _02231928 - _02231896 - 2 ; case 47 .short _02231966 - _02231896 - 2 ; case 48 .short _02231A4A - _02231896 - 2 ; case 49 .short _02231A4A - _02231896 - 2 ; case 50 .short _02231A4A - _02231896 - 2 ; case 51 .short _022319E8 - _02231896 - 2 ; case 52 .short _022319E8 - _02231896 - 2 ; case 53 .short _022319E8 - _02231896 - 2 ; case 54 .short _022319E8 - _02231896 - 2 ; case 55 .short _02231A4A - _02231896 - 2 ; case 56 .short _02231A4A - _02231896 - 2 ; case 57 .short _02231A4A - _02231896 - 2 ; case 58 .short _02231A4A - _02231896 - 2 ; case 59 .short _02231A4A - _02231896 - 2 ; case 60 _02231910: ldr r1, [r4, #4] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231944 ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231928: ldr r1, [r4, #4] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231944 ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] mov r0, #1 tst r0, r5 bne _02231946 _02231944: b _02231A4A _02231946: ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _0223194E: ldr r1, [r4, #8] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231966: ldr r1, [r4, #8] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] mov r0, #1 tst r0, r5 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _0223198A: ldr r1, [r4, #4] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _022319C4 ldrh r0, [r4, #2] add r0, r0, #3 strh r0, [r4, #2] mov r0, #1 tst r0, r5 beq _022319AC ldrh r0, [r4, #2] add r0, r0, #2 strh r0, [r4, #2] _022319AC: ldr r1, [r4, #8] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _022319C4: ldr r1, [r4, #8] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] mov r0, #1 tst r0, r5 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _022319E8: ldr r1, [r4, #4] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A22 ldrh r0, [r4, #2] add r0, r0, #3 strh r0, [r4, #2] mov r0, #1 tst r0, r5 beq _02231A0A ldrh r0, [r4, #2] add r0, r0, #2 strh r0, [r4, #2] _02231A0A: ldr r1, [r4, #0xc] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231A22: ldr r1, [r4, #0xc] add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02230270 cmp r0, #0 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] mov r0, #1 tst r0, r5 beq _02231A4A ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231A46: bl ErrorHandling _02231A4A: pop {r4, r5, r6, pc} thumb_func_start MOD11_02231A4C MOD11_02231A4C: ; 0x02231A4C push {r3, r4, r5, lr} add r4, r1, #0 ldrb r2, [r4, #1] mov r1, #0x3f add r5, r0, #0 and r1, r2 cmp r1, #0x3c bls _02231A5E b _022320C2 _02231A5E: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02231A6A: ; jump table .short _022320C6 - _02231A6A - 2 ; case 0 .short _022320C6 - _02231A6A - 2 ; case 1 .short _02231AE4 - _02231A6A - 2 ; case 2 .short _02231AEE - _02231A6A - 2 ; case 3 .short _02231AF8 - _02231A6A - 2 ; case 4 .short _02231B02 - _02231A6A - 2 ; case 5 .short _02231B0C - _02231A6A - 2 ; case 6 .short _02231B16 - _02231A6A - 2 ; case 7 .short _02231B22 - _02231A6A - 2 ; case 8 .short _02231B2C - _02231A6A - 2 ; case 9 .short _02231B40 - _02231A6A - 2 ; case 10 .short _02231B54 - _02231A6A - 2 ; case 11 .short _02231B68 - _02231A6A - 2 ; case 12 .short _02231B7C - _02231A6A - 2 ; case 13 .short _02231B90 - _02231A6A - 2 ; case 14 .short _02231BA4 - _02231A6A - 2 ; case 15 .short _02231BB8 - _02231A6A - 2 ; case 16 .short _02231BCC - _02231A6A - 2 ; case 17 .short _02231BE0 - _02231A6A - 2 ; case 18 .short _02231BF4 - _02231A6A - 2 ; case 19 .short _02231AEE - _02231A6A - 2 ; case 20 .short _02231C08 - _02231A6A - 2 ; case 21 .short _02231C1C - _02231A6A - 2 ; case 22 .short _02231C30 - _02231A6A - 2 ; case 23 .short _02231C44 - _02231A6A - 2 ; case 24 .short _02231C58 - _02231A6A - 2 ; case 25 .short _02231C6C - _02231A6A - 2 ; case 26 .short _02231C80 - _02231A6A - 2 ; case 27 .short _02231C94 - _02231A6A - 2 ; case 28 .short _02231CA8 - _02231A6A - 2 ; case 29 .short _02231CBC - _02231A6A - 2 ; case 30 .short _02231CD0 - _02231A6A - 2 ; case 31 .short _02231CEE - _02231A6A - 2 ; case 32 .short _02231D0C - _02231A6A - 2 ; case 33 .short _02231D2A - _02231A6A - 2 ; case 34 .short _02231D48 - _02231A6A - 2 ; case 35 .short _02231D66 - _02231A6A - 2 ; case 36 .short _02231D84 - _02231A6A - 2 ; case 37 .short _02231DA2 - _02231A6A - 2 ; case 38 .short _02231DC0 - _02231A6A - 2 ; case 39 .short _02231DDE - _02231A6A - 2 ; case 40 .short _02231DFC - _02231A6A - 2 ; case 41 .short _02231E1A - _02231A6A - 2 ; case 42 .short _02231E38 - _02231A6A - 2 ; case 43 .short _02231E56 - _02231A6A - 2 ; case 44 .short _02231E74 - _02231A6A - 2 ; case 45 .short _02231E92 - _02231A6A - 2 ; case 46 .short _02231EB0 - _02231A6A - 2 ; case 47 .short _02231ECE - _02231A6A - 2 ; case 48 .short _02231EEC - _02231A6A - 2 ; case 49 .short _02231F0A - _02231A6A - 2 ; case 50 .short _02231F28 - _02231A6A - 2 ; case 51 .short _02231F46 - _02231A6A - 2 ; case 52 .short _02231F6E - _02231A6A - 2 ; case 53 .short _02231F96 - _02231A6A - 2 ; case 54 .short _02231FBE - _02231A6A - 2 ; case 55 .short _02231FE6 - _02231A6A - 2 ; case 56 .short _0223200E - _02231A6A - 2 ; case 57 .short _02232036 - _02231A6A - 2 ; case 58 .short _0223205E - _02231A6A - 2 ; case 59 .short _02232086 - _02231A6A - 2 ; case 60 _02231AE4: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231AEE: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231AF8: ldr r2, [r4, #4] mov r1, #0 bl MOD11_02232160 pop {r3, r4, r5, pc} _02231B02: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231B0C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231B16: ldr r2, [r4, #4] ldr r3, [r4, #0x1c] mov r1, #0 bl MOD11_0223211C pop {r3, r4, r5, pc} _02231B22: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 pop {r3, r4, r5, pc} _02231B2C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231B40: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231B54: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 pop {r3, r4, r5, pc} _02231B68: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232160 pop {r3, r4, r5, pc} _02231B7C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232148 pop {r3, r4, r5, pc} _02231B90: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232178 pop {r3, r4, r5, pc} _02231BA4: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231BB8: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_0223219C pop {r3, r4, r5, pc} _02231BCC: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231BE0: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 pop {r3, r4, r5, pc} _02231BF4: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321DC pop {r3, r4, r5, pc} _02231C08: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320EC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231C1C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320EC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231C30: ldr r2, [r4, #4] mov r1, #0 bl MOD11_02232154 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231C44: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320F8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231C58: ldr r2, [r4, #4] mov r1, #0 bl MOD11_02232104 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231C6C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 pop {r3, r4, r5, pc} _02231C80: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231C94: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231CA8: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231CBC: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 pop {r3, r4, r5, pc} _02231CD0: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231CEE: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232154 pop {r3, r4, r5, pc} _02231D0C: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231D2A: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320EC ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231D48: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320EC ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231D66: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231D84: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231DA2: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231DC0: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232160 pop {r3, r4, r5, pc} _02231DDE: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232148 pop {r3, r4, r5, pc} _02231DFC: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_0223216C pop {r3, r4, r5, pc} _02231E1A: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232104 pop {r3, r4, r5, pc} _02231E38: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231E56: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231E74: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_02232160 pop {r3, r4, r5, pc} _02231E92: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_0223216C pop {r3, r4, r5, pc} _02231EB0: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321DC ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022321DC pop {r3, r4, r5, pc} _02231ECE: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320F8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022321A0 pop {r3, r4, r5, pc} _02231EEC: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231F0A: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02231F28: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231F46: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022320EC pop {r3, r4, r5, pc} _02231F6E: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_02232154 pop {r3, r4, r5, pc} _02231F96: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_02232154 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_02232160 pop {r3, r4, r5, pc} _02231FBE: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022320C8 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320F8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022320F8 pop {r3, r4, r5, pc} _02231FE6: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321C4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022320C8 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022321C4 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022320C8 pop {r3, r4, r5, pc} _0223200E: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022320C8 pop {r3, r4, r5, pc} _02232036: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022321C4 pop {r3, r4, r5, pc} _0223205E: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022321AC ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022321C4 pop {r3, r4, r5, pc} _02232086: ldr r2, [r4, #4] mov r1, #0 bl MOD11_022321AC ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl MOD11_022321C4 ldr r2, [r4, #0xc] add r0, r5, #0 mov r1, #2 bl MOD11_022320C8 ldr r2, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl MOD11_022321AC ldr r2, [r4, #0x14] add r0, r5, #0 mov r1, #4 bl MOD11_022321C4 ldr r2, [r4, #0x18] add r0, r5, #0 mov r1, #5 bl MOD11_022320C8 pop {r3, r4, r5, pc} _022320C2: bl ErrorHandling _022320C6: pop {r3, r4, r5, pc} thumb_func_start MOD11_022320C8 MOD11_022320C8: ; 0x022320C8 push {r3, r4, r5, lr} mov r3, #0xff lsl r3, r3, #8 add r4, r1, #0 lsl r1, r2, #0x18 and r2, r3 add r5, r0, #0 lsr r1, r1, #0x18 asr r2, r2, #8 bl MOD11_02230014 add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl FUN_0200ACF8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022320EC MOD11_022320EC: ; 0x022320EC ldr r3, _022320F4 ; =0x0200AD5D ldr r0, [r0, #0x14] bx r3 nop _022320F4: .word 0x0200AD5D thumb_func_start MOD11_022320F8 MOD11_022320F8: ; 0x022320F8 ldr r3, _02232100 ; =0x0200AE39 ldr r0, [r0, #0x14] bx r3 nop _02232100: .word 0x0200AE39 thumb_func_start MOD11_02232104 MOD11_02232104: ; 0x02232104 push {r3, lr} sub sp, #8 mov r3, #0 str r3, [sp] mov r3, #1 str r3, [sp, #4] ldr r0, [r0, #0x14] mov r3, #5 bl FUN_0200AD38 add sp, #8 pop {r3, pc} thumb_func_start MOD11_0223211C MOD11_0223211C: ; 0x0223211C push {r4, lr} sub sp, #8 cmp r3, #0 beq _02232134 mov r4, #1 str r4, [sp] str r4, [sp, #4] ldr r0, [r0, #0x14] bl FUN_0200AD38 add sp, #8 pop {r4, pc} _02232134: mov r3, #1 str r3, [sp] str r3, [sp, #4] ldr r0, [r0, #0x14] mov r3, #5 bl FUN_0200AD38 add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02232148 MOD11_02232148: ; 0x02232148 ldr r3, _02232150 ; =0x0200AF19 ldr r0, [r0, #0x14] bx r3 nop _02232150: .word 0x0200AF19 thumb_func_start MOD11_02232154 MOD11_02232154: ; 0x02232154 ldr r3, _0223215C ; =0x0200ADCD ldr r0, [r0, #0x14] bx r3 nop _0223215C: .word 0x0200ADCD thumb_func_start MOD11_02232160 MOD11_02232160: ; 0x02232160 ldr r3, _02232168 ; =0x0200AF51 ldr r0, [r0, #0x14] bx r3 nop _02232168: .word 0x0200AF51 thumb_func_start MOD11_0223216C MOD11_0223216C: ; 0x0223216C ldr r3, _02232174 ; =0x0200AF89 ldr r0, [r0, #0x14] bx r3 nop _02232174: .word 0x0200AF89 thumb_func_start MOD11_02232178 MOD11_02232178: ; 0x02232178 push {r3, r4, r5, lr} mov r3, #0xff lsl r3, r3, #8 add r4, r1, #0 lsl r1, r2, #0x18 and r2, r3 add r5, r0, #0 lsr r1, r1, #0x18 asr r2, r2, #8 bl MOD11_02230014 add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl FUN_0200AC60 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223219C MOD11_0223219C: ; 0x0223219C bx lr .align 2, 0 thumb_func_start MOD11_022321A0 MOD11_022321A0: ; 0x022321A0 ldr r3, _022321A8 ; =0x0200AFBD ldr r0, [r0, #0x14] bx r3 nop _022321A8: .word 0x0200AFBD thumb_func_start MOD11_022321AC MOD11_022321AC: ; 0x022321AC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r1, r2, #0 bl MOD11_02230188 add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl FUN_0200B0D4 pop {r3, r4, r5, pc} thumb_func_start MOD11_022321C4 MOD11_022321C4: ; 0x022321C4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r1, r2, #0 bl MOD11_02230188 add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl FUN_0200B144 pop {r3, r4, r5, pc} thumb_func_start MOD11_022321DC MOD11_022321DC: ; 0x022321DC push {r4, lr} add r4, r0, #0 add r3, r2, #0 ldr r0, [r4, #0x14] ldr r2, [r4, #0x64] bl FUN_0200B410 pop {r4, pc} thumb_func_start MOD11_022321EC MOD11_022321EC: ; 0x022321EC push {r3, r4, r5, lr} add r5, r0, #0 add r0, r1, #0 ldrh r1, [r2, #2] bl FUN_0200A914 add r4, r0, #0 ldr r0, [r5, #0x14] ldr r1, [r5, #0x18] add r2, r4, #0 bl FUN_0200B7B8 add r0, r4, #0 bl FUN_02021A20 pop {r3, r4, r5, pc} thumb_func_start MOD11_0223220C MOD11_0223220C: ; 0x0223220C push {r4, lr} mov r4, #0 cmp r1, #5 bhi _02232252 add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02232220: ; jump table .short _02232252 - _02232220 - 2 ; case 0 .short _0223222C - _02232220 - 2 ; case 1 .short _02232234 - _02232220 - 2 ; case 2 .short _0223223C - _02232220 - 2 ; case 3 .short _02232244 - _02232220 - 2 ; case 4 .short _0223224C - _02232220 - 2 ; case 5 _0223222C: bl FUN_02005514 add r4, r0, #0 b _02232252 _02232234: bl FUN_02005CBC add r4, r0, #0 b _02232252 _0223223C: ldr r0, _02232258 ; =0x00000484 bl FUN_02005C28 b _02232252 _02232244: ldr r0, _0223225C ; =0x000005E6 bl FUN_020054C8 b _02232252 _0223224C: ldr r0, _02232260 ; =0x00000483 bl FUN_02005C28 _02232252: add r0, r4, #0 pop {r4, pc} nop _02232258: .word 0x00000484 _0223225C: .word 0x000005E6 _02232260: .word 0x00000483 thumb_func_start MOD11_02232264 MOD11_02232264: ; 0x02232264 push {r3, lr} add r2, r1, #0 add r2, #0xb4 ldr r2, [r2] lsl r2, r2, #2 add r3, r1, r2 mov r2, #0x27 lsl r2, r2, #8 ldr r2, [r3, r2] lsl r3, r2, #2 ldr r2, _02232280 ; =0x0225DDE4 ldr r2, [r2, r3] blx r2 pop {r3, pc} .align 2, 0 _02232280: .word 0x0225DDE4 thumb_func_start MOD11_02232284 MOD11_02232284: ; 0x02232284 push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 mov r1, #0 bl MOD11_022548F0 mov r0, #0 pop {r4, pc} thumb_func_start MOD11_0223229C MOD11_0223229C: ; 0x0223229C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 cmp r0, #0 beq _022322C2 cmp r0, #3 beq _0223230E cmp r0, #4 beq _022322E0 _022322C2: mov r5, #0 cmp r6, #0 ble _0223230E _022322C8: add r0, r4, #0 add r1, r5, #0 bl MOD11_02254908 add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 add r5, r5, #1 cmp r5, r6 blt _022322C8 b _0223230E _022322E0: mov r5, #0 cmp r6, #0 ble _0223230E mov r7, #1 _022322E8: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02232314 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _02232308 add r0, r4, #0 add r1, r5, #0 bl MOD11_02254908 add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 _02232308: add r5, r5, #1 cmp r5, r6 blt _022322E8 _0223230E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02232314: .word 0x00000195 thumb_func_start MOD11_02232318 MOD11_02232318: ; 0x02232318 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r7, r0, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 cmp r0, #6 bhi _02232350 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02232342: ; jump table .short _02232350 - _02232342 - 2 ; case 0 .short _022323F4 - _02232342 - 2 ; case 1 .short _0223243E - _02232342 - 2 ; case 2 .short _0223236E - _02232342 - 2 ; case 3 .short _022323B2 - _02232342 - 2 ; case 4 .short _02232350 - _02232342 - 2 ; case 5 .short _02232488 - _02232342 - 2 ; case 6 _02232350: mov r5, #0 cmp r7, #0 ble _0223236C _02232356: add r0, r4, #0 add r1, r5, #0 bl MOD11_02254A0C add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 add r5, r5, #1 cmp r5, r7 blt _02232356 _0223236C: b _022324D0 _0223236E: mov r5, #0 cmp r7, #0 ble _0223239C _02232374: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022324D4 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232396 add r0, r4, #0 add r1, r5, #0 bl MOD11_02254A0C add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 _02232396: add r5, r5, #1 cmp r5, r7 blt _02232374 _0223239C: add r0, r4, #0 add r1, r6, #0 mov r2, #1 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _022324D0 _022323B2: mov r5, #0 cmp r7, #0 ble _022323F2 _022323B8: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022324D4 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _022323EC add r0, r6, #0 add r1, r5, #0 bl MOD11_022448BC add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r5, #0 bl MOD11_02254A0C add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 _022323EC: add r5, r5, #1 cmp r5, r7 blt _022323B8 _022323F2: b _022324D0 _022323F4: ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022324D4 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _0223241A add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _0223242C _0223241A: ldr r1, [r6, #0x64] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x64] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _0223242C: ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_022315C0 ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_02254A0C b _022324D0 _0223243E: ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022324D4 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _02232464 add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _02232476 _02232464: ldr r1, [r6, #0x6c] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x6c] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _02232476: ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_022315C0 ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_02254A0C b _022324D0 _02232488: ldr r1, [r6, #0x78] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022324D4 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _022324AE add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _022324C0 _022324AE: ldr r1, [r6, #0x78] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x78] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _022324C0: ldr r1, [r6, #0x78] add r0, r4, #0 bl MOD11_022315C0 ldr r1, [r6, #0x78] add r0, r4, #0 bl MOD11_02254A0C _022324D0: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022324D4: .word 0x00000195 thumb_func_start MOD11_022324D8 MOD11_022324D8: ; 0x022324D8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r7, r0, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 cmp r0, #6 bhi _02232510 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02232502: ; jump table .short _02232510 - _02232502 - 2 ; case 0 .short _022325C2 - _02232502 - 2 ; case 1 .short _02232610 - _02232502 - 2 ; case 2 .short _02232534 - _02232502 - 2 ; case 3 .short _0223257C - _02232502 - 2 ; case 4 .short _02232510 - _02232502 - 2 ; case 5 .short _0223265E - _02232502 - 2 ; case 6 _02232510: mov r5, #0 cmp r7, #0 ble _02232532 add r6, r5, #0 _02232518: add r0, r4, #0 add r1, r5, #0 add r2, r6, #0 add r3, r6, #0 bl MOD11_02254B40 add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 add r5, r5, #1 cmp r5, r7 blt _02232518 _02232532: b _022326AA _02232534: mov r5, #0 cmp r7, #0 ble _02232566 _0223253A: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022326B0 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232560 mov r2, #0 add r0, r4, #0 add r1, r5, #0 add r3, r2, #0 bl MOD11_02254B40 add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 _02232560: add r5, r5, #1 cmp r5, r7 blt _0223253A _02232566: add r0, r4, #0 add r1, r6, #0 mov r2, #1 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _022326AA _0223257C: mov r5, #0 cmp r7, #0 ble _022325C0 _02232582: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022326B0 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _022325BA add r0, r6, #0 add r1, r5, #0 bl MOD11_022448BC add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD11_022448CC mov r2, #0 add r0, r4, #0 add r1, r5, #0 add r3, r2, #0 bl MOD11_02254B40 add r0, r4, #0 add r1, r5, #0 bl MOD11_022315C0 _022325BA: add r5, r5, #1 cmp r5, r7 blt _02232582 _022325C0: b _022326AA _022325C2: ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022326B0 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _022325E8 add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _022325FA _022325E8: ldr r1, [r6, #0x64] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x64] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _022325FA: ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_022315C0 mov r2, #0 ldr r1, [r6, #0x64] add r0, r4, #0 add r3, r2, #0 bl MOD11_02254B40 b _022326AA _02232610: ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022326B0 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _02232636 add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _02232648 _02232636: ldr r1, [r6, #0x6c] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x6c] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _02232648: ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_022315C0 mov r2, #0 ldr r1, [r6, #0x6c] add r0, r4, #0 add r3, r2, #0 bl MOD11_02254B40 b _022326AA _0223265E: ldr r1, [r6, #0x78] add r0, r4, #0 bl MOD11_0222FF7C ldr r1, _022326B0 ; =0x00000195 mov r2, #1 ldrb r0, [r0, r1] tst r0, r2 bne _02232684 add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC add r0, r4, #0 add r1, r6, #0 mov r2, #3 bl MOD11_022448CC b _02232696 _02232684: ldr r1, [r6, #0x78] add r0, r6, #0 bl MOD11_022448BC ldr r2, [r6, #0x78] add r0, r4, #0 add r1, r6, #0 bl MOD11_022448CC _02232696: ldr r1, [r6, #0x78] add r0, r4, #0 bl MOD11_022315C0 mov r2, #0 ldr r1, [r6, #0x78] add r0, r4, #0 add r3, r2, #0 bl MOD11_02254B40 _022326AA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022326B0: .word 0x00000195 thumb_func_start MOD11_022326B4 MOD11_022326B4: ; 0x022326B4 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r5, r0, #0 bl MOD11_0222FF84 add r7, r0, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 add r2, r0, #0 beq _022326DC cmp r2, #3 beq _022326F4 cmp r2, #4 beq _0223271E b _02232756 _022326DC: mov r4, #0 cmp r7, #0 ble _02232768 _022326E2: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02254D50 add r4, r4, #1 cmp r4, r7 blt _022326E2 b _02232768 _022326F4: mov r4, #0 cmp r7, #0 ble _02232768 _022326FA: add r0, r5, #0 add r1, r4, #0 bl MOD11_0222FF7C ldr r1, _0223276C ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232716 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02254D50 _02232716: add r4, r4, #1 cmp r4, r7 blt _022326FA b _02232768 _0223271E: mov r4, #0 cmp r7, #0 ble _02232768 _02232724: add r0, r5, #0 add r1, r4, #0 bl MOD11_0222FF7C ldr r1, _0223276C ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _0223274E add r0, r4, #0 bl FUN_0206A92C ldr r1, _02232770 ; =0x00003108 ldrb r1, [r6, r1] tst r0, r1 bne _0223274E add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02254D50 _0223274E: add r4, r4, #1 cmp r4, r7 blt _02232724 b _02232768 _02232756: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02254D50 _02232768: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223276C: .word 0x00000195 _02232770: .word 0x00003108 thumb_func_start MOD11_02232774 MOD11_02232774: ; 0x02232774 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_02254F60 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022327A0 MOD11_022327A0: ; 0x022327A0 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 cmp r0, #0 beq _022327C6 cmp r0, #3 beq _0223282A cmp r0, #4 beq _0223286A _022327C6: add r0, r4, #0 bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 beq _022327F8 mov r5, #0 cmp r6, #0 ble _022328B4 ldr r7, _022328B8 ; =0x00000195 _022327DA: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #4 beq _022327F0 add r0, r4, #0 add r1, r5, #0 bl MOD11_02254F7C _022327F0: add r5, r5, #1 cmp r5, r6 blt _022327DA b _022328B4 _022327F8: mov r5, #0 cmp r6, #0 ble _022328B4 mov r7, #8 _02232800: add r0, r4, #0 bl MOD11_0222FF74 tst r0, r7 bne _0223281A add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223281A cmp r5, #1 bgt _022328B4 _0223281A: add r0, r4, #0 add r1, r5, #0 bl MOD11_02254F7C add r5, r5, #1 cmp r5, r6 blt _02232800 b _022328B4 _0223282A: mov r5, #0 cmp r6, #0 ble _022328B4 mov r7, #1 _02232832: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022328B8 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 bne _02232862 add r0, r4, #0 add r1, r5, #0 bl MOD11_02254F7C add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _02232862 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022328B4 _02232862: add r5, r5, #1 cmp r5, r6 blt _02232832 b _022328B4 _0223286A: mov r5, #0 cmp r6, #0 ble _022328B4 mov r7, #1 _02232872: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022328B8 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _022328AE add r0, r4, #0 add r1, r5, #0 bl MOD11_02254F7C add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _022328AE add r0, r4, #0 bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _022328AE add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022328B4 _022328AE: add r5, r5, #1 cmp r5, r6 blt _02232872 _022328B4: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022328B8: .word 0x00000195 thumb_func_start MOD11_022328BC MOD11_022328BC: ; 0x022328BC push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r7, #0 mov r1, #1 bl MOD11_0223A424 add r0, r7, #0 bl MOD11_0223A404 add r5, r0, #0 add r0, r7, #0 bl MOD11_0223A404 add r7, r0, #0 cmp r5, #0 beq _022328EC cmp r5, #3 beq _02232920 cmp r5, #4 beq _02232962 _022328EC: mov r5, #0 cmp r6, #0 ble _022329AE _022328F2: add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _0223290E add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223290E cmp r5, #1 bgt _022329AE _0223290E: add r0, r4, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_02254FAC add r5, r5, #1 cmp r5, r6 blt _022328F2 b _022329AE _02232920: mov r5, #0 cmp r6, #0 ble _022329AE _02232926: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022329B4 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _0223295A add r0, r4, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_02254FAC add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _0223295A add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022329AE _0223295A: add r5, r5, #1 cmp r5, r6 blt _02232926 b _022329AE _02232962: mov r5, #0 cmp r6, #0 ble _022329AE _02232968: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _022329B4 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _022329A8 add r0, r4, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_02254FAC add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _022329A8 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _022329A8 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022329AE _022329A8: add r5, r5, #1 cmp r5, r6 blt _02232968 _022329AE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022329B4: .word 0x00000195 thumb_func_start MOD11_022329B8 MOD11_022329B8: ; 0x022329B8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r5, r0, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 cmp r0, #0xc bhi _022329FC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _022329E2: ; jump table .short _022329FC - _022329E2 - 2 ; case 0 .short _022329FC - _022329E2 - 2 ; case 1 .short _022329FC - _022329E2 - 2 ; case 2 .short _02232A2E - _022329E2 - 2 ; case 3 .short _02232A6E - _022329E2 - 2 ; case 4 .short _022329FC - _022329E2 - 2 ; case 5 .short _022329FC - _022329E2 - 2 ; case 6 .short _022329FC - _022329E2 - 2 ; case 7 .short _022329FC - _022329E2 - 2 ; case 8 .short _02232ABA - _022329E2 - 2 ; case 9 .short _02232AE6 - _022329E2 - 2 ; case 10 .short _02232B12 - _022329E2 - 2 ; case 11 .short _02232B3A - _022329E2 - 2 ; case 12 _022329FC: mov r6, #0 cmp r5, #0 ble _02232A2C mov r7, #8 _02232A04: add r0, r4, #0 bl MOD11_0222FF74 tst r0, r7 bne _02232A1E add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02232A1E cmp r6, #1 bgt _02232A2C _02232A1E: add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 add r6, r6, #1 cmp r6, r5 blt _02232A04 _02232A2C: b _02232B60 _02232A2E: mov r6, #0 cmp r5, #0 ble _02232A6C mov r7, #1 _02232A36: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232B64 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 bne _02232A66 add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _02232A66 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02232B60 _02232A66: add r6, r6, #1 cmp r6, r5 blt _02232A36 _02232A6C: b _02232B60 _02232A6E: mov r6, #0 cmp r5, #0 ble _02232B60 mov r7, #1 _02232A76: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232B64 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _02232AB2 add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _02232AB2 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _02232AB2 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02232B60 _02232AB2: add r6, r6, #1 cmp r6, r5 blt _02232A76 b _02232B60 _02232ABA: mov r6, #0 cmp r5, #0 ble _02232B60 ldr r7, _02232B64 ; =0x00000195 _02232AC2: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #0 beq _02232AD4 cmp r0, #2 bne _02232ADE _02232AD4: add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 b _02232B60 _02232ADE: add r6, r6, #1 cmp r6, r5 blt _02232AC2 b _02232B60 _02232AE6: mov r6, #0 cmp r5, #0 ble _02232B60 ldr r7, _02232B64 ; =0x00000195 _02232AEE: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #1 beq _02232B00 cmp r0, #3 bne _02232B0A _02232B00: add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 b _02232B60 _02232B0A: add r6, r6, #1 cmp r6, r5 blt _02232AEE b _02232B60 _02232B12: mov r6, #0 cmp r5, #0 ble _02232B60 ldr r7, _02232B64 ; =0x00000195 _02232B1A: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #4 bne _02232B32 add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 b _02232B60 _02232B32: add r6, r6, #1 cmp r6, r5 blt _02232B1A b _02232B60 _02232B3A: mov r6, #0 cmp r5, #0 ble _02232B60 ldr r7, _02232B64 ; =0x00000195 _02232B42: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #5 bne _02232B5A add r0, r4, #0 add r1, r6, #0 bl MOD11_02254FE4 b _02232B60 _02232B5A: add r6, r6, #1 cmp r6, r5 blt _02232B42 _02232B60: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02232B64: .word 0x00000195 thumb_func_start MOD11_02232B68 MOD11_02232B68: ; 0x02232B68 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r5, r0, #0 add r0, r7, #0 mov r1, #1 bl MOD11_0223A424 add r0, r7, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r7, #0 bl MOD11_0223A404 add r7, r0, #0 cmp r6, #0xc bhi _02232BB6 add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02232B9C: ; jump table .short _02232BB6 - _02232B9C - 2 ; case 0 .short _02232BB6 - _02232B9C - 2 ; case 1 .short _02232BB6 - _02232B9C - 2 ; case 2 .short _02232BDE - _02232B9C - 2 ; case 3 .short _02232C14 - _02232B9C - 2 ; case 4 .short _02232BB6 - _02232B9C - 2 ; case 5 .short _02232BB6 - _02232B9C - 2 ; case 6 .short _02232BB6 - _02232B9C - 2 ; case 7 .short _02232BB6 - _02232B9C - 2 ; case 8 .short _02232C4A - _02232B9C - 2 ; case 9 .short _02232C78 - _02232B9C - 2 ; case 10 .short _02232CA6 - _02232B9C - 2 ; case 11 .short _02232CD0 - _02232B9C - 2 ; case 12 _02232BB6: mov r6, #0 cmp r5, #0 ble _02232BDC _02232BBC: add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02232BCC cmp r6, #1 bgt _02232BDC _02232BCC: add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 add r6, r6, #1 cmp r6, r5 blt _02232BBC _02232BDC: b _02232CF8 _02232BDE: mov r6, #0 cmp r5, #0 ble _02232C12 _02232BE4: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232C0C add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02232CF8 _02232C0C: add r6, r6, #1 cmp r6, r5 blt _02232BE4 _02232C12: b _02232CF8 _02232C14: mov r6, #0 cmp r5, #0 ble _02232CF8 _02232C1A: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _02232C42 add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02232CF8 _02232C42: add r6, r6, #1 cmp r6, r5 blt _02232C1A b _02232CF8 _02232C4A: mov r6, #0 cmp r5, #0 ble _02232CF8 _02232C50: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r0, [r0, r1] cmp r0, #0 beq _02232C64 cmp r0, #2 bne _02232C70 _02232C64: add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 b _02232CF8 _02232C70: add r6, r6, #1 cmp r6, r5 blt _02232C50 b _02232CF8 _02232C78: mov r6, #0 cmp r5, #0 ble _02232CF8 _02232C7E: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r0, [r0, r1] cmp r0, #1 beq _02232C92 cmp r0, #3 bne _02232C9E _02232C92: add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 b _02232CF8 _02232C9E: add r6, r6, #1 cmp r6, r5 blt _02232C7E b _02232CF8 _02232CA6: mov r6, #0 cmp r5, #0 ble _02232CF8 _02232CAC: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r0, [r0, r1] cmp r0, #4 bne _02232CC8 add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 b _02232CF8 _02232CC8: add r6, r6, #1 cmp r6, r5 blt _02232CAC b _02232CF8 _02232CD0: mov r6, #0 cmp r5, #0 ble _02232CF8 _02232CD6: add r0, r4, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232CFC ; =0x00000195 ldrb r0, [r0, r1] cmp r0, #5 bne _02232CF2 add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02255000 b _02232CF8 _02232CF2: add r6, r6, #1 cmp r6, r5 blt _02232CD6 _02232CF8: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02232CFC: .word 0x00000195 thumb_func_start MOD11_02232D00 MOD11_02232D00: ; 0x02232D00 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r0, #0 bl MOD11_0222FF84 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r4, #0 cmp r5, #0 ble _02232D28 _02232D1A: add r0, r6, #0 add r1, r4, #0 bl MOD11_0225624C add r4, r4, #1 cmp r4, r5 blt _02232D1A _02232D28: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_02232D2C MOD11_02232D2C: ; 0x02232D2C push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r7, #0 mov r1, #1 bl MOD11_0223A424 add r0, r7, #0 bl MOD11_0223A404 add r2, r0, #0 beq _02232D54 cmp r2, #3 beq _02232D6E cmp r2, #4 beq _02232D9A b _02232DC6 _02232D54: mov r5, #0 cmp r6, #0 ble _02232DDA _02232D5A: add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 mov r3, #0 bl MOD11_02255034 add r5, r5, #1 cmp r5, r6 blt _02232D5A b _02232DDA _02232D6E: mov r5, #0 cmp r6, #0 ble _02232DDA _02232D74: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02232DE0 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232D92 add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 mov r3, #0 bl MOD11_02255034 _02232D92: add r5, r5, #1 cmp r5, r6 blt _02232D74 b _02232DDA _02232D9A: mov r5, #0 cmp r6, #0 ble _02232DDA _02232DA0: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02232DE0 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _02232DBE add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 mov r3, #0 bl MOD11_02255034 _02232DBE: add r5, r5, #1 cmp r5, r6 blt _02232DA0 b _02232DDA _02232DC6: add r0, r4, #0 add r1, r7, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r4, #0 add r1, r7, #0 mov r3, #0 bl MOD11_02255034 _02232DDA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02232DE0: .word 0x00000195 thumb_func_start MOD11_02232DE4 MOD11_02232DE4: ; 0x02232DE4 push {r3, r4, r5, r6, r7, lr} str r1, [sp] add r5, r0, #0 bl MOD11_0222FF84 add r7, r0, #0 ldr r0, [sp] mov r1, #1 bl MOD11_0223A424 ldr r0, [sp] bl MOD11_0223A404 add r2, r0, #0 ldr r4, _02232EA4 ; =0x00000000 beq _02232E0E cmp r2, #3 beq _02232E28 cmp r2, #4 beq _02232E5A b _02232E8C _02232E0E: cmp r7, #0 ble _02232EA0 add r6, r4, #0 _02232E14: ldr r1, [sp] add r0, r5, #0 add r2, r4, #0 add r3, r6, #0 bl MOD11_02255034 add r4, r4, #1 cmp r4, r7 blt _02232E14 b _02232EA0 _02232E28: add r6, r4, #0 cmp r7, #0 ble _02232EA0 _02232E2E: add r0, r5, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232EA8 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232E52 ldr r1, [sp] add r0, r5, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_02255034 add r0, r4, #4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02232E52: add r6, r6, #1 cmp r6, r7 blt _02232E2E b _02232EA0 _02232E5A: add r6, r4, #0 cmp r7, #0 ble _02232EA0 _02232E60: add r0, r5, #0 add r1, r6, #0 bl MOD11_0222FF7C ldr r1, _02232EA8 ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 beq _02232E84 ldr r1, [sp] add r0, r5, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_02255034 add r0, r4, #4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02232E84: add r6, r6, #1 cmp r6, r7 blt _02232E60 b _02232EA0 _02232E8C: ldr r1, [sp] add r0, r5, #0 bl MOD11_0223C230 add r2, r0, #0 ldr r1, [sp] add r0, r5, #0 add r3, r4, #0 bl MOD11_02255034 _02232EA0: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02232EA4: .word 0x00000000 _02232EA8: .word 0x00000195 thumb_func_start MOD11_02232EAC MOD11_02232EAC: ; 0x02232EAC push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r7, #0 mov r1, #1 bl MOD11_0223A424 add r0, r7, #0 bl MOD11_0223A404 add r2, r0, #0 beq _02232ED4 cmp r2, #3 beq _02232EEA cmp r2, #4 beq _02232F20 b _02232F48 _02232ED4: mov r5, #0 cmp r6, #0 ble _02232F58 _02232EDA: add r0, r4, #0 add r1, r5, #0 bl MOD11_0225516C add r5, r5, #1 cmp r5, r6 blt _02232EDA b _02232F58 _02232EEA: mov r5, #0 cmp r6, #0 ble _02232F58 _02232EF0: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02232F5C ; =0x00000195 ldrb r1, [r0, r1] mov r0, #1 tst r0, r1 bne _02232F18 add r0, r5, #0 bl FUN_0206A92C ldr r1, _02232F60 ; =0x00003108 ldrb r1, [r7, r1] tst r0, r1 bne _02232F18 add r0, r4, #0 add r1, r5, #0 bl MOD11_0225516C _02232F18: add r5, r5, #1 cmp r5, r6 blt _02232EF0 b _02232F58 _02232F20: mov r5, #0 cmp r6, #0 ble _02232F58 mov r7, #1 _02232F28: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02232F5C ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _02232F40 add r0, r4, #0 add r1, r5, #0 bl MOD11_0225516C _02232F40: add r5, r5, #1 cmp r5, r6 blt _02232F28 b _02232F58 _02232F48: add r0, r4, #0 add r1, r7, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_0225516C _02232F58: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02232F5C: .word 0x00000195 _02232F60: .word 0x00003108 thumb_func_start MOD11_02232F64 MOD11_02232F64: ; 0x02232F64 push {r4, lr} add r4, r1, #0 add r0, r4, #0 bl MOD11_02243388 cmp r0, #0 beq _02232F7C add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 b _02232F82 _02232F7C: add r0, r4, #0 bl MOD11_022433DC _02232F82: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02232F88 MOD11_02232F88: ; 0x02232F88 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r1, #0 ldr r1, [r5, #0x64] add r7, r0, #0 add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x60 bne _02232FA0 mov r4, #0 b _02232FB4 _02232FA0: ldr r0, _022330D4 ; =0x00002160 ldr r4, [r5, r0] cmp r4, #0 bne _02232FB4 ldr r0, _022330D8 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _022330DC ; =0x000003E2 ldrb r4, [r1, r0] _02232FB4: ldr r0, [r5, #0x6c] str r0, [sp, #0x18] ldr r1, [sp, #0x18] add r0, r7, #0 bl MOD11_02230270 mov r3, #6 lsl r3, r3, #6 add r6, r0, #0 ldr r0, [r5, r3] ldr r1, _022330E0 ; =0x00002154 str r0, [sp] ldr r0, [r5, r1] ldr r2, _022330D8 ; =0x00003044 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #0x64] lsl r4, r6, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x18] add r4, r5, r4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] sub r0, r1, #4 ldr r0, [r5, r0] add r3, #0x3c lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] ldr r2, [r5, r2] ldr r3, [r4, r3] add r0, r7, #0 add r1, r5, #0 bl MOD11_0224B310 ldr r1, _022330E4 ; =0x00002144 str r0, [r5, r1] add r0, r1, #0 add r0, #0xc ldr r2, [r5, r1] ldr r0, [r5, r0] mul r0, r2 str r0, [r5, r1] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02249D90 cmp r0, #0x61 bne _02233040 ldr r1, [r5, #0x64] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 ldr r1, _022330E4 ; =0x00002144 add r0, #0x64 ldr r1, [r5, r1] mul r0, r1 mov r1, #0x64 bl _s32_div_f ldr r1, _022330E4 ; =0x00002144 str r0, [r5, r1] _02233040: ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02249D90 cmp r0, #0x68 bne _0223306E ldr r0, _022330E4 ; =0x00002144 ldr r2, [r5, #0x64] ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r2 add r2, r5, r0 ldr r0, _022330E8 ; =0x00002DCC ldr r0, [r2, r0] lsl r0, r0, #5 lsr r0, r0, #0x1c add r0, #0xa mul r0, r1 mov r1, #0xa bl _u32_div_f ldr r1, _022330E4 ; =0x00002144 str r0, [r5, r1] _0223306E: ldr r2, [r5, #0x64] mov r1, #0xc0 add r0, r2, #0 mul r0, r1 ldr r2, _022330E8 ; =0x00002DCC add r3, r5, r0 ldr r3, [r3, r2] lsl r3, r3, #1 lsr r3, r3, #0x1f beq _022330CE add r2, #0x10 add r3, r5, r2 add r1, #0xb4 ldr r2, [r5, r1] ldr r1, [r3, r0] cmp r2, r1 bne _02233094 sub r1, r1, #1 str r1, [r3, r0] _02233094: ldr r2, [r5, #0x64] mov r1, #0xc0 add r0, r2, #0 mul r0, r1 add r1, #0xb4 ldr r3, [r5, r1] ldr r1, _022330EC ; =0x00002DDC add r2, r5, r0 ldr r2, [r2, r1] sub r2, r3, r2 cmp r2, #2 bge _022330C2 ldr r0, _022330E4 ; =0x00002144 ldr r1, [r5, r0] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f ldr r1, _022330E4 ; =0x00002144 add sp, #0x1c str r0, [r5, r1] pop {r4, r5, r6, r7, pc} _022330C2: sub r1, #0x10 add r3, r5, r1 ldr r2, [r3, r0] ldr r1, _022330F0 ; =0xBFFFFFFF and r1, r2 str r1, [r3, r0] _022330CE: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _022330D4: .word 0x00002160 _022330D8: .word 0x00003044 _022330DC: .word 0x000003E2 _022330E0: .word 0x00002154 _022330E4: .word 0x00002144 _022330E8: .word 0x00002DCC _022330EC: .word 0x00002DDC _022330F0: .word 0xBFFFFFFF thumb_func_start MOD11_022330F4 MOD11_022330F4: ; 0x022330F4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 add r1, r4, #0 bl MOD11_02232F88 ldr r1, _02233128 ; =0x00002144 add r0, r4, #0 ldr r1, [r4, r1] bl MOD11_0224BF10 ldr r1, _02233128 ; =0x00002144 str r0, [r4, r1] mov r0, #0 ldr r2, [r4, r1] mvn r0, r0 mul r0, r2 str r0, [r4, r1] mov r0, #0 pop {r3, r4, r5, pc} nop _02233128: .word 0x00002144 thumb_func_start MOD11_0223312C MOD11_0223312C: ; 0x0223312C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 add r1, r4, #0 bl MOD11_02232F88 ldr r1, _02233154 ; =0x00002144 mov r0, #0 ldr r2, [r4, r1] mvn r0, r0 mul r0, r2 str r0, [r4, r1] mov r0, #0 pop {r3, r4, r5, pc} nop _02233154: .word 0x00002144 thumb_func_start MOD11_02233158 MOD11_02233158: ; 0x02233158 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, _02233194 ; =0x0000213C ldr r1, [r4, r0] mov r0, #1 tst r0, r1 bne _02233178 add r0, r5, #0 add r1, r4, #0 bl MOD11_022559BC _02233178: ldr r1, _02233194 ; =0x0000213C mov r0, #1 ldr r2, [r4, r1] orr r0, r2 str r0, [r4, r1] add r0, r1, #4 ldr r2, [r4, r0] mov r0, #4 orr r2, r0 add r0, r1, #4 str r2, [r4, r0] mov r0, #0 pop {r3, r4, r5, pc} nop _02233194: .word 0x0000213C thumb_func_start MOD11_02233198 MOD11_02233198: ; 0x02233198 push {r4, r5, lr} sub sp, #0x44 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 add r1, sp, #0x24 bl MOD11_0223C490 add r0, r5, #0 add r1, r4, #0 add r2, sp, #0x24 add r3, sp, #0 bl MOD11_0223C55C add r0, r5, #0 add r1, r4, #0 add r2, sp, #0 bl MOD11_022559F4 mov r0, #0 add sp, #0x44 pop {r4, r5, pc} thumb_func_start MOD11_022331CC MOD11_022331CC: ; 0x022331CC push {r4, r5, lr} sub sp, #0x44 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 add r1, sp, #0x24 bl MOD11_0223C490 add r0, r5, #0 add r1, r4, #0 add r2, sp, #0x24 add r3, sp, #0 bl MOD11_0223C55C add r1, sp, #0 ldrb r2, [r1, #1] mov r0, #0x80 orr r0, r2 strb r0, [r1, #1] add r0, r5, #0 add r1, r4, #0 add r2, sp, #0 bl MOD11_022559F4 mov r0, #0 add sp, #0x44 pop {r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223320C MOD11_0223320C: ; 0x0223320C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r1, r4, #0 add r4, #0xf4 add r0, r5, #0 add r2, r4, #0 bl MOD11_022559F4 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223322C MOD11_0223322C: ; 0x0223322C push {r3, r4, r5, lr} sub sp, #0x20 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 add r1, sp, #0 bl MOD11_0223C490 add r1, r4, #0 add r4, #0xf4 add r0, r5, #0 add r2, sp, #0 add r3, r4, #0 bl MOD11_0223C55C mov r0, #0 add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_start MOD11_02233258 MOD11_02233258: ; 0x02233258 push {r3, r4, r5, r6, lr} sub sp, #0x44 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 add r1, sp, #0x24 bl MOD11_0223C490 add r0, r5, #0 add r1, r4, #0 add r2, sp, #0x24 add r3, sp, #0 bl MOD11_0223C55C add r1, sp, #0 ldrb r2, [r1, #1] mov r0, #0x40 orr r0, r2 strb r0, [r1, #1] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 str r0, [sp, #0x20] add r0, r5, #0 add r1, r4, #0 add r2, sp, #0 bl MOD11_022559F4 mov r0, #0 add sp, #0x44 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_022332AC MOD11_022332AC: ; 0x022332AC push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 cmp r0, #0xff bne _022332CA mov r0, #0x49 lsl r0, r0, #2 b _022332CC _022332CA: ldr r0, _0223331C ; =0x00003044 _022332CC: ldr r0, [r5, r0] lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, _02233320 ; =0x0000213C ldr r1, [r5, r0] mov r0, #1 lsl r0, r0, #0xe tst r0, r1 bne _022332E8 add r0, r6, #0 bl MOD11_02230E20 cmp r0, #1 beq _022332EC _022332E8: cmp r4, #0x90 bne _02233302 _022332EC: ldr r1, _02233320 ; =0x0000213C mov r0, #1 ldr r2, [r5, r1] lsl r0, r0, #0xe orr r0, r2 str r0, [r5, r1] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_02255A10 _02233302: add r0, r6, #0 bl MOD11_02230E20 cmp r0, #0 bne _02233316 ldr r2, _02233324 ; =0x00000123 add r0, r5, #0 mov r1, #1 bl MOD11_0223A43C _02233316: mov r0, #0 pop {r4, r5, r6, pc} nop _0223331C: .word 0x00003044 _02233320: .word 0x0000213C _02233324: .word 0x00000123 thumb_func_start MOD11_02233328 MOD11_02233328: ; 0x02233328 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #8] cmp r6, #0xff bne _0223335A mov r0, #0x49 lsl r0, r0, #2 b _0223335C _0223335A: ldr r0, _022333C8 ; =0x00003044 _0223335C: ldr r0, [r4, r0] add r1, r4, #0 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0 add r2, r7, #0 bl MOD11_0223C230 str r0, [sp, #4] ldr r2, [sp, #8] add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r7, r0, #0 ldr r0, _022333CC ; =0x0000213C ldr r1, [r4, r0] mov r0, #1 lsl r0, r0, #0xe tst r0, r1 bne _02233390 add r0, r5, #0 bl MOD11_02230E20 cmp r0, #1 beq _02233394 _02233390: cmp r6, #0x90 bne _022333AE _02233394: ldr r1, _022333CC ; =0x0000213C mov r0, #1 ldr r2, [r4, r1] lsl r0, r0, #0xe orr r0, r2 str r0, [r4, r1] ldr r3, [sp, #4] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 str r7, [sp] bl MOD11_02255A40 _022333AE: add r0, r5, #0 bl MOD11_02230E20 cmp r0, #0 bne _022333C2 ldr r2, _022333D0 ; =0x00000123 add r0, r4, #0 mov r1, #1 bl MOD11_0223A43C _022333C2: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _022333C8: .word 0x00003044 _022333CC: .word 0x0000213C _022333D0: .word 0x00000123 thumb_func_start MOD11_022333D4 MOD11_022333D4: ; 0x022333D4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 ldr r2, _02233404 ; =0x0000216C add r1, r0, #0 ldr r2, [r4, r2] add r0, r5, #0 bl MOD11_02255A70 mov r0, #0 pop {r3, r4, r5, pc} nop _02233404: .word 0x0000216C thumb_func_start MOD11_02233408 MOD11_02233408: ; 0x02233408 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 str r0, [sp] add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 ldr r0, [sp] add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 ldr r0, _0223349C ; =0x00002D8C add r7, r2, #0 add r5, r4, r0 mov r0, #0xc0 mul r7, r0 ldr r0, _022334A0 ; =0x0000215C ldr r6, [r5, r7] ldr r3, [r4, r0] add r1, r3, r6 cmp r1, #0 bgt _02233446 neg r1, r6 sub r0, #0x14 str r1, [r4, r0] b _0223344A _02233446: sub r0, #0x14 str r3, [r4, r0] _0223344A: ldr r0, _022334A4 ; =0x00002148 ldr r6, [r4, r0] cmp r6, #0 bge _02233460 mov r0, #0x59 lsl r0, r0, #2 add r3, r4, r0 lsl r1, r2, #2 ldr r0, [r3, r1] sub r0, r0, r6 str r0, [r3, r1] _02233460: mov r0, #0xc0 add r3, r2, #0 mul r3, r0 ldr r0, _0223349C ; =0x00002D8C ldr r6, _022334A0 ; =0x0000215C add r1, r4, r0 ldr r0, [r1, r3] ldr r6, [r4, r6] add r0, r0, r6 str r0, [r1, r3] ldr r1, [r1, r3] cmp r1, #0 bge _02233480 mov r0, #0 str r0, [r5, r7] b _0223348E _02233480: add r0, r4, r3 ldr r3, _0223349C ; =0x00002D8C add r3, r3, #4 ldr r0, [r0, r3] cmp r1, r0 bls _0223348E str r0, [r5, r7] _0223348E: ldr r0, [sp] add r1, r4, #0 bl MOD11_02245190 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _0223349C: .word 0x00002D8C _022334A0: .word 0x0000215C _022334A4: .word 0x00002148 thumb_func_start MOD11_022334A8 MOD11_022334A8: ; 0x022334A8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02255A8C mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_022334D4 MOD11_022334D4: ; 0x022334D4 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r6, #0 add r1, r5, #0 bl MOD11_0223C230 add r4, r0, #0 mov r1, #0xc0 mul r1, r4 add r2, r5, r1 ldr r1, _02233530 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 bne _0223352A str r4, [r5, #0x74] bl FUN_0206A92C ldr r1, _02233534 ; =0x0000213C lsl r0, r0, #0x18 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] mov r0, #0x55 lsl r0, r0, #2 add r2, r5, r0 lsl r1, r4, #2 ldr r0, [r2, r1] add r0, r0, #1 str r0, [r2, r1] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223D0EC _0223352A: mov r0, #0 pop {r4, r5, r6, pc} nop _02233530: .word 0x00002D8C _02233534: .word 0x0000213C thumb_func_start MOD11_02233538 MOD11_02233538: ; 0x02233538 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r2, [r4, #0x74] add r0, r5, #0 add r1, r4, #0 bl MOD11_02255BEC ldr r0, [r4, #0x74] bl FUN_0206A92C ldr r2, _02233594 ; =0x0000213C lsl r3, r0, #0x18 mov r0, #0 mvn r0, r0 ldr r1, [r4, r2] eor r0, r3 and r0, r1 str r0, [r4, r2] ldr r0, [r4, #0x74] bl FUN_0206A92C mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r4, r1] lsl r0, r0, #0x1c orr r0, r2 str r0, [r4, r1] ldr r0, [r4, #0x74] mov r2, #0x27 lsl r0, r0, #4 add r0, r4, r0 add r1, #0x68 str r2, [r0, r1] ldr r2, [r4, #0x74] add r0, r5, #0 add r1, r4, #0 bl MOD11_02245A10 mov r0, #0 pop {r3, r4, r5, pc} nop _02233594: .word 0x0000213C thumb_func_start MOD11_02233598 MOD11_02233598: ; 0x02233598 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _022335D2 ldr r0, _022335FC ; =0x021C48B8 ldr r1, [r0, #0x48] ldr r0, _02233600 ; =0x00000C03 tst r0, r1 bne _022335CC bl FUN_02020AA4 cmp r0, #0 beq _022335D2 _022335CC: add r0, r5, #0 add r0, #0xf0 str r4, [r0] _022335D2: add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] cmp r4, r0 beq _022335F0 mov r1, #1 add r0, r5, #0 mvn r1, r1 bl MOD11_0223A424 add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] add r0, r0, #1 b _022335F2 _022335F0: mov r0, #0 _022335F2: add r5, #0xf0 str r0, [r5] mov r0, #0 pop {r4, r5, r6, pc} nop _022335FC: .word 0x021C48B8 _02233600: .word 0x00000C03 thumb_func_start MOD11_02233604 MOD11_02233604: ; 0x02233604 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r3, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_02255D00 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223363C MOD11_0223363C: ; 0x0223363C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r6, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r0, [sp] ldr r2, [sp, #4] add r1, r6, #0 bl MOD11_0223A444 cmp r7, #6 bhi _022336DA add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02233686: ; jump table .short _02233694 - _02233686 - 2 ; case 0 .short _0223369E - _02233686 - 2 ; case 1 .short _022336A8 - _02233686 - 2 ; case 2 .short _022336B2 - _02233686 - 2 ; case 3 .short _022336BC - _02233686 - 2 ; case 4 .short _022336C6 - _02233686 - 2 ; case 5 .short _022336D0 - _02233686 - 2 ; case 6 _02233694: ldr r0, [r0] cmp r0, r4 beq _022336DA mov r5, #0 b _022336DA _0223369E: ldr r0, [r0] cmp r0, r4 bne _022336DA mov r5, #0 b _022336DA _022336A8: ldr r0, [r0] cmp r0, r4 bgt _022336DA mov r5, #0 b _022336DA _022336B2: ldr r0, [r0] cmp r0, r4 ble _022336DA mov r5, #0 b _022336DA _022336BC: ldr r0, [r0] tst r0, r4 bne _022336DA mov r5, #0 b _022336DA _022336C6: ldr r0, [r0] tst r0, r4 beq _022336DA mov r5, #0 b _022336DA _022336D0: ldr r0, [r0] and r0, r4 cmp r4, r0 beq _022336DA mov r5, #0 _022336DA: cmp r5, #0 beq _022336E6 add r0, r6, #0 add r1, r5, #0 bl MOD11_0223A424 _022336E6: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_022336EC MOD11_022336EC: ; 0x022336EC push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r6, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r0, [sp] ldr r2, [sp, #4] add r1, r6, #0 bl MOD11_0223C230 add r1, r0, #0 ldr r2, [sp, #8] add r0, r6, #0 mov r3, #0 bl MOD11_02243420 cmp r7, #6 bhi _02233790 add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223374A: ; jump table .short _02233758 - _0223374A - 2 ; case 0 .short _02233760 - _0223374A - 2 ; case 1 .short _02233768 - _0223374A - 2 ; case 2 .short _02233770 - _0223374A - 2 ; case 3 .short _02233778 - _0223374A - 2 ; case 4 .short _02233780 - _0223374A - 2 ; case 5 .short _02233788 - _0223374A - 2 ; case 6 _02233758: cmp r0, r4 beq _02233790 mov r5, #0 b _02233790 _02233760: cmp r0, r4 bne _02233790 mov r5, #0 b _02233790 _02233768: cmp r0, r4 bgt _02233790 mov r5, #0 b _02233790 _02233770: cmp r0, r4 ble _02233790 mov r5, #0 b _02233790 _02233778: tst r0, r4 bne _02233790 mov r5, #0 b _02233790 _02233780: tst r0, r4 beq _02233790 mov r5, #0 b _02233790 _02233788: and r0, r4 cmp r4, r0 beq _02233790 mov r5, #0 _02233790: cmp r5, #0 beq _0223379C add r0, r6, #0 add r1, r5, #0 bl MOD11_0223A424 _0223379C: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022337A4 MOD11_022337A4: ; 0x022337A4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 add r1, r4, #0 bl MOD11_02255D20 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022337C0 MOD11_022337C0: ; 0x022337C0 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A434 mov r0, #0 pop {r4, pc} thumb_func_start MOD11_022337E0 MOD11_022337E0: ; 0x022337E0 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r2, _02233804 ; =0x00003044 add r0, r4, #0 ldr r2, [r4, r2] mov r1, #0x1e lsl r2, r2, #4 add r3, r4, r2 ldr r2, _02233808 ; =0x000003DE ldrh r2, [r3, r2] bl MOD11_0223A434 mov r0, #0 pop {r4, pc} .align 2, 0 _02233804: .word 0x00003044 _02233808: .word 0x000003DE thumb_func_start MOD11_0223380C MOD11_0223380C: ; 0x0223380C push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 ldr r2, _02233890 ; =0x0000213C mov r1, #1 ldr r3, [r4, r2] bic r3, r1 str r3, [r4, r2] ldr r3, [r4, r2] ldr r1, _02233894 ; =0xFFFFBFFF and r1, r3 mov r3, #0x49 lsl r3, r3, #2 str r1, [r4, r2] ldr r2, [r4, r3] ldr r1, _02233898 ; =0x00003044 cmp r0, #0 str r2, [r4, r1] bne _02233866 mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r3, [r4, r3] ldr r2, [r4, #0x64] lsl r3, r3, #0x10 add r0, r5, #0 add r1, r4, #0 lsr r3, r3, #0x10 bl MOD11_02244C28 str r0, [r4, #0x6c] ldr r1, [r4, #0x64] lsl r1, r1, #4 add r2, r4, r1 ldr r1, _0223389C ; =0x000021AC str r0, [r2, r1] _02233866: ldr r0, [r4, #0x6c] cmp r0, #0xff bne _0223387C mov r2, #0x26 str r2, [r4, #0xc] add r0, r4, #0 mov r1, #1 add r2, #0xf3 bl MOD11_0223A434 b _02233888 _0223387C: ldr r2, _02233898 ; =0x00003044 add r0, r4, #0 ldr r2, [r4, r2] mov r1, #0 bl MOD11_0223A434 _02233888: mov r0, #0 add sp, #8 pop {r3, r4, r5, pc} nop _02233890: .word 0x0000213C _02233894: .word 0xFFFFBFFF _02233898: .word 0x00003044 _0223389C: .word 0x000021AC thumb_func_start MOD11_022338A0 MOD11_022338A0: ; 0x022338A0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 bne _022338C8 add r0, r5, #0 bl MOD11_02230C50 mov r1, #1 tst r0, r1 beq _022338D0 _022338C8: ldr r0, _022338F4 ; =0x00002150 mov r1, #1 str r1, [r4, r0] b _022338F0 _022338D0: ldr r3, [r4, #0x6c] add r0, r5, #0 add r1, r4, #0 mov r2, #0 bl MOD11_0224C474 str r0, [sp] ldr r3, _022338F8 ; =0x0000214C ldr r1, [r4, #0x64] ldr r2, [r4, #0x6c] ldr r3, [r4, r3] add r0, r4, #0 bl MOD11_0224BF3C ldr r1, _022338F4 ; =0x00002150 str r0, [r4, r1] _022338F0: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _022338F4: .word 0x00002150 _022338F8: .word 0x0000214C thumb_func_start MOD11_022338FC MOD11_022338FC: ; 0x022338FC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r7, r0, #0 bl MOD11_0222FF74 add r4, r0, #0 ldr r1, [r5, #0x74] add r0, r7, #0 bl MOD11_0222FF7C add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r1, r0, #0 ldr r0, _02233A70 ; =0x00000195 ldrb r2, [r6, r0] mov r0, #1 tst r0, r2 beq _02233936 mov r0, #0xa9 lsl r0, r0, #2 tst r0, r4 beq _02233938 _02233936: b _02233A64 _02233938: mov r0, #0 str r0, [sp, #4] ldr r1, [sp, #4] str r0, [sp] add r4, r0, #0 add r0, r7, #0 bl MOD11_0222FF88 bl FUN_0206B9AC cmp r0, #0 ble _022339C6 _02233950: add r0, r7, #0 mov r1, #0 add r2, r4, #0 bl MOD11_02230014 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _022339B4 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022339B4 add r0, r4, #0 bl FUN_0206A92C ldr r1, [r5, #0x74] asr r1, r1, #1 lsl r1, r1, #0x1f lsr r1, r1, #0x1d add r1, r5, r1 add r1, #0xa4 ldr r1, [r1] tst r0, r1 beq _02233994 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] _02233994: add r0, r6, #0 mov r1, #6 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r5, #0 mov r2, #1 bl MOD11_0224C12C cmp r0, #0x32 bne _022339B4 ldr r0, [sp] add r0, r0, #1 str r0, [sp] _022339B4: add r0, r7, #0 mov r1, #0 add r4, r4, #1 bl MOD11_0222FF88 bl FUN_0206B9AC cmp r4, r0 blt _02233950 _022339C6: ldr r1, [r5, #0x74] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] mov r1, #9 bl FUN_02068678 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r2, [r5, #0x74] mov r0, #0xc0 mul r0, r2 add r2, r5, r0 ldr r0, _02233A74 ; =0x00002D74 ldrb r0, [r2, r0] mul r0, r1 mov r1, #7 bl _s32_div_f lsl r0, r0, #0x10 ldr r1, [sp] lsr r0, r0, #0x10 cmp r1, #0 beq _02233A3E lsr r4, r0, #1 ldr r1, [sp, #4] add r0, r4, #0 bl _s32_div_f add r1, r5, #0 add r1, #0x9c str r0, [r1] add r0, r5, #0 add r0, #0x9c ldr r0, [r0] cmp r0, #0 bne _02233A1E add r0, r5, #0 mov r1, #1 add r0, #0x9c str r1, [r0] _02233A1E: ldr r1, [sp] add r0, r4, #0 bl _s32_div_f add r1, r5, #0 add r1, #0xa0 str r0, [r1] add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] cmp r0, #0 bne _02233A6A mov r0, #1 add r5, #0xa0 str r0, [r5] b _02233A6A _02233A3E: ldr r1, [sp, #4] bl _s32_div_f add r1, r5, #0 add r1, #0x9c str r0, [r1] add r0, r5, #0 add r0, #0x9c ldr r0, [r0] cmp r0, #0 bne _02233A5C add r0, r5, #0 mov r1, #1 add r0, #0x9c str r1, [r0] _02233A5C: mov r0, #0 add r5, #0xa0 str r0, [r5] b _02233A6A _02233A64: add r0, r5, #0 bl MOD11_0223A424 _02233A6A: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02233A70: .word 0x00000195 _02233A74: .word 0x00002D74 thumb_func_start MOD11_02233A78 MOD11_02233A78: ; 0x02233A78 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #5 mov r1, #0x58 bl FUN_02016998 mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r2, #0 str r5, [r0] ldr r0, [r4, r1] str r4, [r0, #4] ldr r0, [r4, r1] str r2, [r0, #0x28] ldr r0, [r4, r1] str r2, [r0, #0x48] ldr r0, _02233AB4 ; =MOD11_0223A79C ldr r1, [r4, r1] bl FUN_0200CA44 mov r0, #0 pop {r3, r4, r5, pc} nop _02233AB4: .word MOD11_0223A79C thumb_func_start MOD11_02233AB8 MOD11_02233AB8: ; 0x02233AB8 push {r3, lr} mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #0 bne _02233ACC add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 _02233ACC: mov r0, #0 pop {r3, pc} thumb_func_start MOD11_02233AD0 MOD11_02233AD0: ; 0x02233AD0 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02233AE8 MOD11_02233AE8: ; 0x02233AE8 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r1, [sp, #8] add r6, r0, #0 bl MOD11_0222FF84 add r7, r0, #0 ldr r0, [sp, #8] mov r1, #1 bl MOD11_0223A424 mov r4, #0 add r5, r4, #0 cmp r7, #0 ble _02233B40 ldr r0, [sp, #8] str r0, [sp, #0xc] _02233B0A: mov r0, #0x4f ldr r1, [sp, #0xc] lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02233B34 add r0, r5, #0 bl FUN_0206A92C orr r4, r0 mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] ldr r1, [sp, #8] add r0, r6, #0 add r2, r5, #0 mov r3, #1 bl MOD11_022558E0 _02233B34: ldr r0, [sp, #0xc] add r5, r5, #1 add r0, r0, #4 str r0, [sp, #0xc] cmp r5, r7 blt _02233B0A _02233B40: mov r5, #0 cmp r7, #0 ble _02233B98 _02233B46: add r0, r6, #0 bl MOD11_0222FF74 cmp r0, #7 bne _02233B80 add r0, r6, #0 add r1, r5, #0 bl MOD11_022302BC str r0, [sp, #0x10] add r0, r5, #0 bl FUN_0206A92C tst r0, r4 bne _02233B92 ldr r0, [sp, #0x10] bl FUN_0206A92C tst r0, r4 bne _02233B92 add r0, r5, #0 bl FUN_0206A92C orr r4, r0 add r0, r6, #0 add r1, r5, #0 bl MOD11_022564CC b _02233B92 _02233B80: add r0, r5, #0 bl FUN_0206A92C tst r0, r4 bne _02233B92 add r0, r6, #0 add r1, r5, #0 bl MOD11_022564CC _02233B92: add r5, r5, #1 cmp r5, r7 blt _02233B46 _02233B98: mov r0, #0 cmp r7, #0 ble _02233BBA mov r1, #0x4f ldr r4, [sp, #8] lsl r1, r1, #2 mov r2, #1 _02233BA6: ldr r3, [r4, r1] tst r3, r2 beq _02233BB2 ldr r1, [sp, #8] str r0, [r1, #0x78] b _02233BBA _02233BB2: add r0, r0, #1 add r4, r4, #4 cmp r0, r7 blt _02233BA6 _02233BBA: mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_02233BC0 MOD11_02233BC0: ; 0x02233BC0 push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] add r5, r1, #0 bl MOD11_0222FF84 str r0, [sp, #8] mov r6, #0 ldr r1, [sp, #8] add r0, r6, #0 cmp r1, #0 ble _02233BF2 mov r3, #0x4f add r1, r5, #0 lsl r3, r3, #2 mov r4, #1 _02233BE0: ldr r2, [r1, r3] tst r2, r4 beq _02233BE8 add r6, r6, #1 _02233BE8: ldr r2, [sp, #8] add r0, r0, #1 add r1, r1, #4 cmp r0, r2 blt _02233BE0 _02233BF2: ldr r0, [sp, #8] mov r4, #0 cmp r0, #0 ble _02233C6C str r5, [sp, #4] add r7, r5, #0 _02233BFE: mov r0, #0x4f ldr r1, [sp, #4] lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02233C58 add r0, r5, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _02233C58 mov r0, #0x23 lsl r0, r0, #8 ldrb r0, [r7, r0] add r1, r5, r4 sub r6, r6, #1 sub r2, r0, #1 ldr r0, _02233C8C ; =0x000021A0 strb r2, [r1, r0] add r0, r4, #0 bl FUN_0206A92C mov r1, #0x85 lsl r1, r1, #6 ldr r1, [r5, r1] lsl r0, r0, #0x18 tst r0, r1 bne _02233C58 add r0, r4, #0 bl FUN_0206A92C mov r1, #0x85 lsl r1, r1, #6 ldr r1, [r5, r1] lsl r0, r0, #0x18 orr r1, r0 mov r0, #0x85 lsl r0, r0, #6 str r1, [r5, r0] ldr r0, [sp] add r1, r4, #0 bl MOD11_022564CC _02233C58: ldr r0, [sp, #4] add r4, r4, #1 add r0, r0, #4 str r0, [sp, #4] mov r0, #1 lsl r0, r0, #8 add r7, r7, r0 ldr r0, [sp, #8] cmp r4, r0 blt _02233BFE _02233C6C: cmp r6, #0 bne _02233C84 mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r5, r1] ldr r0, _02233C90 ; =0xF0FFFFFF and r0, r2 str r0, [r5, r1] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 _02233C84: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02233C8C: .word 0x000021A0 _02233C90: .word 0xF0FFFFFF thumb_func_start MOD11_02233C94 MOD11_02233C94: ; 0x02233C94 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 cmp r0, #1 beq _02233CB6 cmp r0, #6 beq _02233CBA cmp r0, #0x12 beq _02233CBE b _02233CC0 _02233CB6: ldr r4, [r5, #0x64] b _02233CC0 _02233CBA: ldr r4, [r5, #0x78] b _02233CC0 _02233CBE: ldr r4, [r5, #0x6c] _02233CC0: mov r0, #0x4f lsl r0, r0, #2 add r3, r5, r0 lsl r2, r4, #2 ldr r1, [r3, r2] mov r0, #1 bic r1, r0 add r0, r4, #0 str r1, [r3, r2] bl FUN_0206A92C ldr r3, _02233D24 ; =0x00003108 mov r2, #0 mvn r2, r2 eor r0, r2 ldrb r1, [r5, r3] add r2, r4, #0 and r0, r1 ldr r1, _02233D28 ; =0x000021A0 strb r0, [r5, r3] add r0, r5, r1 sub r1, r1, #4 add r6, r5, r1 ldrb r1, [r0, r4] strb r1, [r6, r4] mov r1, #6 strb r1, [r0, r4] ldrb r3, [r6, r4] add r0, r7, #0 add r1, r5, #0 bl MOD11_02242B78 ldrb r3, [r6, r4] add r0, r7, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0224B290 ldr r0, _02233D2C ; =0x00002E4C add r2, r4, #0 ldr r1, [r5, r0] ldr r0, _02233D30 ; =0x00003122 strh r1, [r5, r0] add r0, r7, #0 add r1, r5, #0 bl MOD11_02245608 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02233D24: .word 0x00003108 _02233D28: .word 0x000021A0 _02233D2C: .word 0x00002E4C _02233D30: .word 0x00003122 thumb_func_start MOD11_02233D34 MOD11_02233D34: ; 0x02233D34 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 bl MOD11_0222FF84 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 mov r0, #0 cmp r4, #0 ble _02233D76 mov r2, #0x4f add r1, r5, #0 lsl r2, r2, #2 mov r3, #1 _02233D5C: ldr r6, [r1, r2] tst r6, r3 beq _02233D6E str r0, [r5, #0x78] add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 b _02233D76 _02233D6E: add r0, r0, #1 add r1, r1, #4 cmp r0, r4 blt _02233D5C _02233D76: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02233D7C MOD11_02233D7C: ; 0x02233D7C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 mov r0, #5 mov r1, #0x58 bl FUN_02016998 mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r2, #0 str r5, [r0] ldr r0, [r4, r1] str r4, [r0, #4] ldr r0, [r4, r1] str r2, [r0, #0x28] ldr r0, [r4, r1] str r6, [r0, #0x24] add r0, r1, #0 sub r0, #0x50 ldr r3, [r4, r0] ldr r0, [r4, r1] str r3, [r0, #0x2c] ldr r0, _02233DC8 ; =MOD11_0223B49C ldr r1, [r4, r1] bl FUN_0200CA44 mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _02233DC8: .word MOD11_0223B49C thumb_func_start MOD11_02233DCC MOD11_02233DCC: ; 0x02233DCC push {r3, lr} mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #0 bne _02233DE0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 _02233DE0: mov r0, #0 pop {r3, pc} thumb_func_start MOD11_02233DE4 MOD11_02233DE4: ; 0x02233DE4 push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r0, _02233E4C ; =0x0000217D ldrb r0, [r5, r0] cmp r0, #0 bne _02233E46 cmp r4, #0 bne _02233E36 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x5c bne _02233E1C mov r4, #5 b _02233E36 _02233E1C: bl FUN_0201B9EC mov r1, #3 and r0, r1 cmp r0, #2 bge _02233E2C add r4, r0, #2 b _02233E36 _02233E2C: bl FUN_0201B9EC mov r1, #3 and r0, r1 add r4, r0, #2 _02233E36: lsl r0, r4, #0x18 ldr r1, _02233E50 ; =0x0000217C lsr r2, r0, #0x18 strb r2, [r5, r1] add r0, r1, #1 strb r2, [r5, r0] add r1, #0xc str r6, [r5, r1] _02233E46: mov r0, #0 pop {r4, r5, r6, pc} nop _02233E4C: .word 0x0000217D _02233E50: .word 0x0000217C thumb_func_start MOD11_02233E54 MOD11_02233E54: ; 0x02233E54 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r7, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r4, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r2, [sp] add r0, r7, #0 add r1, r4, #0 bl MOD11_0223A444 add r4, r0, #0 cmp r6, #0x14 bhi _02233F3E add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02233E96: ; jump table .short _02233F3E - _02233E96 - 2 ; case 0 .short _02233F3E - _02233E96 - 2 ; case 1 .short _02233F3E - _02233E96 - 2 ; case 2 .short _02233F3E - _02233E96 - 2 ; case 3 .short _02233F3E - _02233E96 - 2 ; case 4 .short _02233F3E - _02233E96 - 2 ; case 5 .short _02233F3E - _02233E96 - 2 ; case 6 .short _02233EC0 - _02233E96 - 2 ; case 7 .short _02233EC4 - _02233E96 - 2 ; case 8 .short _02233ECC - _02233E96 - 2 ; case 9 .short _02233ED4 - _02233E96 - 2 ; case 10 .short _02233EDC - _02233E96 - 2 ; case 11 .short _02233EEA - _02233E96 - 2 ; case 12 .short _02233EF4 - _02233E96 - 2 ; case 13 .short _02233F00 - _02233E96 - 2 ; case 14 .short _02233F08 - _02233E96 - 2 ; case 15 .short _02233F10 - _02233E96 - 2 ; case 16 .short _02233F1A - _02233E96 - 2 ; case 17 .short _02233F20 - _02233E96 - 2 ; case 18 .short _02233F2E - _02233E96 - 2 ; case 19 .short _02233F36 - _02233E96 - 2 ; case 20 _02233EC0: str r5, [r4] b _02233F42 _02233EC4: ldr r0, [r4] add r0, r0, r5 str r0, [r4] b _02233F42 _02233ECC: ldr r0, [r4] sub r0, r0, r5 str r0, [r4] b _02233F42 _02233ED4: ldr r0, [r4] orr r0, r5 str r0, [r4] b _02233F42 _02233EDC: mov r0, #0 mvn r0, r0 ldr r1, [r4] eor r0, r5 and r0, r1 str r0, [r4] b _02233F42 _02233EEA: ldr r0, [r4] add r1, r0, #0 mul r1, r5 str r1, [r4] b _02233F42 _02233EF4: ldr r0, [r4] add r1, r5, #0 bl _s32_div_f str r0, [r4] b _02233F42 _02233F00: ldr r0, [r4] lsl r0, r5 str r0, [r4] b _02233F42 _02233F08: ldr r0, [r4] asr r0, r5 str r0, [r4] b _02233F42 _02233F10: add r0, r5, #0 bl FUN_0206A92C str r0, [r4] b _02233F42 _02233F1A: bl ErrorHandling b _02233F42 _02233F20: ldr r0, [r4] sub r0, r0, r5 str r0, [r4] bpl _02233F42 mov r0, #0 str r0, [r4] b _02233F42 _02233F2E: ldr r0, [r4] eor r0, r5 str r0, [r4] b _02233F42 _02233F36: ldr r0, [r4] and r0, r5 str r0, [r4] b _02233F42 _02233F3E: bl ErrorHandling _02233F42: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02233F48 MOD11_02233F48: ; 0x02233F48 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] mov r0, #0xb5 add r5, r1, #0 lsl r0, r0, #6 add r2, r5, r0 add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r6, r2, r0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #0x14] add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #0x10] add r0, r5, #0 bl MOD11_0223A404 ldr r1, _022342D0 ; =0x0000213C str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #8] ldr r2, [r5, r1] ldr r0, _022342D4 ; =0xFFFDFFFF and r2, r0 str r2, [r5, r1] add r1, r5, #0 add r1, #0x8c ldr r4, [r1] cmp r4, #0x2e blt _02233FA8 asr r7, r0, #0x11 mov r0, #0x4e mov r1, #0xd lsl r0, r0, #2 sub r4, #0x2e str r1, [r5, r0] b _02233FD8 _02233FA8: cmp r4, #0x27 blt _02233FBA mov r0, #0x4e mov r1, #0xc lsl r0, r0, #2 sub r4, #0x27 mov r7, #2 str r1, [r5, r0] b _02233FD8 _02233FBA: cmp r4, #0x16 blt _02233FCC asr r7, r0, #0x12 mov r0, #0x4e mov r1, #0xd lsl r0, r0, #2 sub r4, #0x16 str r1, [r5, r0] b _02233FD8 _02233FCC: mov r0, #0x4e mov r1, #0xc lsl r0, r0, #2 sub r4, #0xf mov r7, #1 str r1, [r5, r0] _02233FD8: cmp r7, #0 bgt _02233FDE b _02234116 _02233FDE: add r1, r4, #1 add r6, #0x18 add r0, r6, r1 str r0, [sp, #4] ldrsb r0, [r6, r1] cmp r0, #0xc bne _02234042 ldr r1, _022342D0 ; =0x0000213C mov r0, #2 ldr r2, [r5, r1] lsl r0, r0, #0x10 orr r0, r2 str r0, [r5, r1] add r0, r5, #0 add r0, #0x88 ldr r0, [r0] sub r0, r0, #2 cmp r0, #1 bhi _0223400E ldr r1, [sp, #0x10] add r0, r5, #0 bl MOD11_0223A424 b _02234538 _0223400E: add r0, r5, #0 mov r1, #0x8e add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xc add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r1, r4, #1 add r0, #0xfc str r1, [r0] ldr r1, [sp, #0x14] add r0, r5, #0 bl MOD11_0223A424 b _02234538 _02234042: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #3 bne _0223408E add r0, r5, #0 ldr r1, _022342D8 ; =0x0000026E add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x27 add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r0, #0x94 ldr r0, [r0] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _022342DC ; =0x00002D67 add r2, r5, r2 ldrb r2, [r2, r0] add r0, r5, #0 add r0, #0xfc str r2, [r0] add r0, r4, #1 add r1, #0x40 str r0, [r5, r1] b _022340FA _0223408E: cmp r0, #5 bne _022340CA mov r1, #0xbd add r0, r5, #0 lsl r1, r1, #2 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x2d add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] mov r1, #0x4a lsl r1, r1, #2 ldr r2, [r5, r1] add r0, r5, #0 add r0, #0xfc str r2, [r0] add r0, r4, #1 sub r1, #0x28 str r0, [r5, r1] b _022340FA _022340CA: cmp r7, #1 bne _022340D2 ldr r1, _022342E0 ; =0x000002EE b _022340D4 _022340D2: ldr r1, _022342E4 ; =0x000002F1 _022340D4: add r0, r5, #0 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xc add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r4, #1 add r5, #0xfc str r0, [r5] _022340FA: ldr r0, [sp, #4] mov r1, #0 ldrsb r0, [r0, r1] add r2, r0, r7 ldr r0, [sp, #4] strb r2, [r0] ldrsb r0, [r0, r1] cmp r0, #0xc bgt _0223410E b _02234538 _0223410E: ldr r0, [sp, #4] mov r1, #0xc strb r1, [r0] b _02234538 _02234116: add r0, r5, #0 add r0, #0x90 ldr r1, [r0] mov r0, #2 lsl r0, r0, #0x1a tst r1, r0 beq _02234126 b _0223449C _02234126: add r1, r5, #0 add r1, #0x94 ldr r1, [r1] ldr r2, [r5, #0x64] cmp r2, r1 bne _02234134 b _022343E4 _02234134: ldr r0, [sp] bl MOD11_02230270 lsl r0, r0, #3 mov r1, #0x71 add r0, r5, r0 lsl r1, r1, #2 ldr r0, [r0, r1] lsl r0, r0, #0x11 lsr r0, r0, #0x1d beq _02234172 add r0, r5, #0 sub r1, #0xb3 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #2 add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] mov r0, #1 str r0, [sp, #8] b _0223444C _02234172: add r2, r5, #0 add r2, #0x94 ldr r1, [r5, #0x64] ldr r2, [r2] add r0, r5, #0 mov r3, #0x1d bl MOD11_02246D84 cmp r0, #1 beq _0223419A add r2, r5, #0 add r2, #0x94 ldr r1, [r5, #0x64] ldr r2, [r2] add r0, r5, #0 mov r3, #0x49 bl MOD11_02246D84 cmp r0, #1 bne _0223423C _0223419A: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #3 bne _022341FE add r0, r5, #0 ldr r1, _022342E8 ; =0x000002D7 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x35 add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022342DC ; =0x00002D67 ldrb r1, [r1, r0] add r0, r5, #0 add r0, #0xfc str r1, [r0] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_0224682C mov r1, #1 lsl r1, r1, #8 str r0, [r5, r1] ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _022342DC ; =0x00002D67 add r2, r5, r2 ldrb r0, [r2, r0] add r1, #0x44 str r0, [r5, r1] b _02234236 _022341FE: add r0, r5, #0 ldr r1, _022342EC ; =0x0000029D add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xb add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022342DC ; =0x00002D67 ldrb r1, [r1, r0] add r0, r5, #0 add r0, #0xfc str r1, [r0] _02234236: mov r0, #1 str r0, [sp, #8] b _0223444C _0223423C: add r2, r5, #0 add r2, #0x94 ldr r1, [r5, #0x64] ldr r2, [r2] add r0, r5, #0 mov r3, #0x33 bl MOD11_02246D84 cmp r0, #1 bne _02234256 add r0, r4, #1 cmp r0, #6 beq _0223426E _02234256: add r2, r5, #0 add r2, #0x94 ldr r1, [r5, #0x64] ldr r2, [r2] add r0, r5, #0 mov r3, #0x34 bl MOD11_02246D84 cmp r0, #1 bne _02234338 cmp r4, #0 bne _02234338 _0223426E: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #3 bne _022342F0 add r0, r5, #0 ldr r1, _022342E8 ; =0x000002D7 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x35 add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022342DC ; =0x00002D67 ldrb r1, [r1, r0] add r0, r5, #0 add r0, #0xfc str r1, [r0] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_0224682C mov r1, #1 lsl r1, r1, #8 str r0, [r5, r1] ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _022342DC ; =0x00002D67 add r2, r5, r2 ldrb r0, [r2, r0] add r1, #0x44 b _02234330 .align 2, 0 _022342D0: .word 0x0000213C _022342D4: .word 0xFFFDFFFF _022342D8: .word 0x0000026E _022342DC: .word 0x00002D67 _022342E0: .word 0x000002EE _022342E4: .word 0x000002F1 _022342E8: .word 0x000002D7 _022342EC: .word 0x0000029D _022342F0: mov r1, #0xb add r0, r5, #0 lsl r1, r1, #6 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x27 add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r0, #0x94 ldr r0, [r0] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02234540 ; =0x00002D67 add r2, r5, r2 ldrb r2, [r2, r0] add r0, r5, #0 add r0, #0xfc str r2, [r0] add r0, r4, #1 add r1, #0x40 _02234330: str r0, [r5, r1] mov r0, #1 str r0, [sp, #8] b _0223444C _02234338: add r0, r4, #1 add r1, r6, r0 mov r0, #0x18 ldrsb r0, [r1, r0] cmp r0, #0 bne _022343A2 ldr r1, _02234544 ; =0x0000213C mov r0, #2 ldr r2, [r5, r1] lsl r0, r0, #0x10 orr r0, r2 str r0, [r5, r1] add r0, r5, #0 add r0, #0x88 ldr r0, [r0] sub r0, r0, #2 cmp r0, #1 bhi _0223436A ldr r1, [sp, #0x10] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223436A: add r0, r5, #0 mov r1, #0x91 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xc add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r1, r4, #1 add r0, #0xfc str r1, [r0] ldr r1, [sp, #0x14] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022343A2: add r2, r5, #0 add r2, #0x94 ldr r1, [r5, #0x64] ldr r2, [r2] add r0, r5, #0 mov r3, #0x13 bl MOD11_02246D84 cmp r0, #1 bne _022343C6 add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #2 bne _022343C6 mov r0, #1 str r0, [sp, #8] b _0223444C _022343C6: add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02234548 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x18 tst r0, r1 beq _0223444C mov r0, #2 str r0, [sp, #8] b _0223444C _022343E4: add r1, r4, #1 add r2, r6, r1 mov r1, #0x18 ldrsb r1, [r2, r1] cmp r1, #0 bne _0223444C ldr r1, _02234544 ; =0x0000213C lsr r0, r0, #0xa ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] add r0, r5, #0 add r0, #0x88 ldr r0, [r0] sub r0, r0, #2 cmp r0, #1 bhi _02234414 ldr r1, [sp, #0x10] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02234414: add r0, r5, #0 mov r1, #0x91 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xc add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 add r1, r4, #1 add r0, #0xfc str r1, [r0] ldr r1, [sp, #0x14] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223444C: ldr r0, [sp, #8] cmp r0, #2 bne _0223446A add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #1 bne _0223446A ldr r1, [sp, #0xc] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223446A: ldr r0, [sp, #8] cmp r0, #0 beq _02234488 add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #2 bne _02234488 ldr r1, [sp, #0x10] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02234488: ldr r0, [sp, #8] cmp r0, #0 beq _0223449C ldr r1, [sp, #0x14] add r0, r5, #0 bl MOD11_0223A424 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223449C: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #3 bne _022344F0 add r0, r5, #0 ldr r1, _0223454C ; =0x00000296 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x36 add r0, #0xf5 strb r1, [r0] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02234540 ; =0x00002D67 ldrb r1, [r1, r0] add r0, r5, #0 add r0, #0xfc str r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C mov r1, #1 lsl r1, r1, #8 str r0, [r5, r1] add r2, r4, #1 add r0, r1, #4 str r2, [r5, r0] b _02234524 _022344F0: mov r0, #0 mvn r0, r0 cmp r7, r0 bne _022344FC ldr r1, _02234550 ; =0x000002FA b _022344FE _022344FC: ldr r1, _02234554 ; =0x000002FD _022344FE: add r0, r5, #0 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0xc add r0, #0xf5 strb r1, [r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r4, #1 add r5, #0xfc str r0, [r5] _02234524: add r6, #0x18 add r1, r4, #1 ldrsb r0, [r6, r1] add r0, r0, r7 strb r0, [r6, r1] ldrsb r0, [r6, r1] cmp r0, #0 bge _02234538 mov r0, #0 strb r0, [r6, r1] _02234538: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _02234540: .word 0x00002D67 _02234544: .word 0x0000213C _02234548: .word 0x00002DB0 _0223454C: .word 0x00000296 _02234550: .word 0x000002FA _02234554: .word 0x000002FD thumb_func_start MOD11_02234558 MOD11_02234558: ; 0x02234558 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r1, #0 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 ldr r0, [sp] ldr r2, [sp, #8] add r1, r5, #0 bl MOD11_0223C230 str r0, [sp, #4] ldr r1, [sp, #4] add r0, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02243420 str r0, [sp, #0xc] cmp r7, #0x14 bhi _02234644 add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022345B2: ; jump table .short _02234644 - _022345B2 - 2 ; case 0 .short _02234644 - _022345B2 - 2 ; case 1 .short _02234644 - _022345B2 - 2 ; case 2 .short _02234644 - _022345B2 - 2 ; case 3 .short _02234644 - _022345B2 - 2 ; case 4 .short _02234644 - _022345B2 - 2 ; case 5 .short _02234644 - _022345B2 - 2 ; case 6 .short _022345DC - _022345B2 - 2 ; case 7 .short _022345E0 - _022345B2 - 2 ; case 8 .short _022345E6 - _022345B2 - 2 ; case 9 .short _022345EC - _022345B2 - 2 ; case 10 .short _022345F2 - _022345B2 - 2 ; case 11 .short _022345FE - _022345B2 - 2 ; case 12 .short _02234606 - _022345B2 - 2 ; case 13 .short _02234610 - _022345B2 - 2 ; case 14 .short _02234616 - _022345B2 - 2 ; case 15 .short _0223461C - _022345B2 - 2 ; case 16 .short _02234626 - _022345B2 - 2 ; case 17 .short _0223462C - _022345B2 - 2 ; case 18 .short _02234638 - _022345B2 - 2 ; case 19 .short _0223463E - _022345B2 - 2 ; case 20 _022345DC: str r4, [sp, #0xc] b _02234648 _022345E0: add r0, r0, r4 str r0, [sp, #0xc] b _02234648 _022345E6: sub r0, r0, r4 str r0, [sp, #0xc] b _02234648 _022345EC: orr r0, r4 str r0, [sp, #0xc] b _02234648 _022345F2: mov r1, #0 mvn r1, r1 eor r1, r4 and r0, r1 str r0, [sp, #0xc] b _02234648 _022345FE: add r1, r0, #0 mul r1, r4 str r1, [sp, #0xc] b _02234648 _02234606: add r1, r4, #0 bl _s32_div_f str r0, [sp, #0xc] b _02234648 _02234610: lsl r0, r4 str r0, [sp, #0xc] b _02234648 _02234616: asr r0, r4 str r0, [sp, #0xc] b _02234648 _0223461C: add r0, r4, #0 bl FUN_0206A92C str r0, [sp, #0xc] b _02234648 _02234626: bl ErrorHandling b _02234648 _0223462C: sub r0, r0, r4 str r0, [sp, #0xc] bpl _02234648 mov r0, #0 str r0, [sp, #0xc] b _02234648 _02234638: eor r0, r4 str r0, [sp, #0xc] b _02234648 _0223463E: and r0, r4 str r0, [sp, #0xc] b _02234648 _02234644: bl ErrorHandling _02234648: cmp r6, #0x1a bne _0223465E ldr r1, [sp, #4] ldr r2, [sp, #0xc] lsl r1, r1, #0x18 lsl r2, r2, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl MOD11_0223D1C4 _0223465E: ldr r1, [sp, #4] add r0, r5, #0 add r2, r6, #0 add r3, sp, #0xc bl MOD11_0224379C ldr r0, [sp] ldr r2, [sp, #4] add r1, r5, #0 bl MOD11_02245190 mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0223467C MOD11_0223467C: ; 0x0223467C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_0223C230 ldr r1, _022346B4 ; =0x0000218C add r2, r5, r1 lsl r1, r0, #2 ldr r0, [r2, r1] orr r0, r4 str r0, [r2, r1] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022346B4: .word 0x0000218C thumb_func_start MOD11_022346B8 MOD11_022346B8: ; 0x022346B8 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 add r2, r7, #0 bl MOD11_02255D3C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022346F0 MOD11_022346F0: ; 0x022346F0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #8] cmp r4, #0 bne _02234766 ldr r0, [sp] bl MOD11_0222FF84 mov r4, #0 str r0, [sp, #4] cmp r0, #0 ble _022347A8 _02234732: cmp r7, #0 bne _02234750 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r6, r0 bne _0223475C ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] b _022347A8 _02234750: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r6, r0 beq _022347A8 _0223475C: ldr r0, [sp, #4] add r4, r4, #1 cmp r4, r0 blt _02234732 b _022347A8 _02234766: ldr r0, [sp] add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r4, r0, #0 cmp r7, #0 bne _02234790 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r6, r0 bne _022347A8 ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] b _022347A8 _02234790: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r6, r0 beq _022347A8 ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] _022347A8: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022347B0 MOD11_022347B0: ; 0x022347B0 push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 bl FUN_0201B9EC add r1, r4, #1 bl _s32_div_f mov r0, #0x4d add r1, r6, r1 lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_022347E4 MOD11_022347E4: ; 0x022347E4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] add r0, r7, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223A444 add r4, r0, #0 ldr r2, [sp] add r0, r7, #0 add r1, r5, #0 bl MOD11_0223A444 add r1, r0, #0 cmp r6, #0x14 bhi _022348F2 add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02234832: ; jump table .short _022348F2 - _02234832 - 2 ; case 0 .short _022348F2 - _02234832 - 2 ; case 1 .short _022348F2 - _02234832 - 2 ; case 2 .short _022348F2 - _02234832 - 2 ; case 3 .short _022348F2 - _02234832 - 2 ; case 4 .short _022348F2 - _02234832 - 2 ; case 5 .short _022348F2 - _02234832 - 2 ; case 6 .short _0223485C - _02234832 - 2 ; case 7 .short _02234862 - _02234832 - 2 ; case 8 .short _0223486C - _02234832 - 2 ; case 9 .short _02234876 - _02234832 - 2 ; case 10 .short _02234880 - _02234832 - 2 ; case 11 .short _02234890 - _02234832 - 2 ; case 12 .short _0223489A - _02234832 - 2 ; case 13 .short _022348A6 - _02234832 - 2 ; case 14 .short _022348B2 - _02234832 - 2 ; case 15 .short _022348BE - _02234832 - 2 ; case 16 .short _022348C8 - _02234832 - 2 ; case 17 .short _022348CE - _02234832 - 2 ; case 18 .short _022348DE - _02234832 - 2 ; case 19 .short _022348E8 - _02234832 - 2 ; case 20 _0223485C: ldr r0, [r1] str r0, [r4] b _022348F6 _02234862: ldr r2, [r4] ldr r0, [r1] add r0, r2, r0 str r0, [r4] b _022348F6 _0223486C: ldr r2, [r4] ldr r0, [r1] sub r0, r2, r0 str r0, [r4] b _022348F6 _02234876: ldr r2, [r4] ldr r0, [r1] orr r0, r2 str r0, [r4] b _022348F6 _02234880: mov r0, #0 ldr r1, [r1] mvn r0, r0 ldr r2, [r4] eor r0, r1 and r0, r2 str r0, [r4] b _022348F6 _02234890: ldr r2, [r4] ldr r0, [r1] mul r0, r2 str r0, [r4] b _022348F6 _0223489A: ldr r0, [r4] ldr r1, [r1] bl _s32_div_f str r0, [r4] b _022348F6 _022348A6: ldr r2, [r4] ldr r0, [r1] add r1, r2, #0 lsl r1, r0 str r1, [r4] b _022348F6 _022348B2: ldr r2, [r4] ldr r0, [r1] add r1, r2, #0 asr r1, r0 str r1, [r4] b _022348F6 _022348BE: ldr r0, [r1] bl FUN_0206A92C str r0, [r4] b _022348F6 _022348C8: ldr r0, [r4] str r0, [r1] b _022348F6 _022348CE: ldr r2, [r4] ldr r0, [r1] sub r0, r2, r0 str r0, [r4] bpl _022348F6 mov r0, #0 str r0, [r4] b _022348F6 _022348DE: ldr r2, [r4] ldr r0, [r1] eor r0, r2 str r0, [r4] b _022348F6 _022348E8: ldr r2, [r4] ldr r0, [r1] and r0, r2 str r0, [r4] b _022348F6 _022348F2: bl ErrorHandling _022348F6: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022348FC MOD11_022348FC: ; 0x022348FC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r7, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r5, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #8] ldr r2, [sp, #4] add r0, r7, #0 add r1, r4, #0 bl MOD11_0223C230 str r0, [sp] ldr r1, [sp] add r0, r4, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02243420 str r0, [sp, #0xc] ldr r2, [sp, #8] add r0, r7, #0 add r1, r4, #0 bl MOD11_0223A444 add r1, r0, #0 cmp r5, #0x14 bhi _02234A22 add r0, r5, r5 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02234962: ; jump table .short _02234A22 - _02234962 - 2 ; case 0 .short _02234A22 - _02234962 - 2 ; case 1 .short _02234A22 - _02234962 - 2 ; case 2 .short _02234A22 - _02234962 - 2 ; case 3 .short _02234A22 - _02234962 - 2 ; case 4 .short _02234A22 - _02234962 - 2 ; case 5 .short _02234A22 - _02234962 - 2 ; case 6 .short _0223498C - _02234962 - 2 ; case 7 .short _02234992 - _02234962 - 2 ; case 8 .short _0223499C - _02234962 - 2 ; case 9 .short _022349A6 - _02234962 - 2 ; case 10 .short _022349B0 - _02234962 - 2 ; case 11 .short _022349C0 - _02234962 - 2 ; case 12 .short _022349CA - _02234962 - 2 ; case 13 .short _022349D6 - _02234962 - 2 ; case 14 .short _022349E2 - _02234962 - 2 ; case 15 .short _022349EE - _02234962 - 2 ; case 16 .short _022349F8 - _02234962 - 2 ; case 17 .short _022349FE - _02234962 - 2 ; case 18 .short _02234A0E - _02234962 - 2 ; case 19 .short _02234A18 - _02234962 - 2 ; case 20 _0223498C: ldr r0, [r1] str r0, [sp, #0xc] b _02234A26 _02234992: ldr r2, [sp, #0xc] ldr r0, [r1] add r0, r2, r0 str r0, [sp, #0xc] b _02234A26 _0223499C: ldr r2, [sp, #0xc] ldr r0, [r1] sub r0, r2, r0 str r0, [sp, #0xc] b _02234A26 _022349A6: ldr r2, [sp, #0xc] ldr r0, [r1] orr r0, r2 str r0, [sp, #0xc] b _02234A26 _022349B0: ldr r2, [r1] mov r1, #0 mvn r1, r1 ldr r0, [sp, #0xc] eor r1, r2 and r0, r1 str r0, [sp, #0xc] b _02234A26 _022349C0: ldr r2, [sp, #0xc] ldr r0, [r1] mul r0, r2 str r0, [sp, #0xc] b _02234A26 _022349CA: ldr r0, [sp, #0xc] ldr r1, [r1] bl _s32_div_f str r0, [sp, #0xc] b _02234A26 _022349D6: ldr r2, [sp, #0xc] ldr r0, [r1] add r1, r2, #0 lsl r1, r0 str r1, [sp, #0xc] b _02234A26 _022349E2: ldr r2, [sp, #0xc] ldr r0, [r1] add r1, r2, #0 asr r1, r0 str r1, [sp, #0xc] b _02234A26 _022349EE: ldr r0, [r1] bl FUN_0206A92C str r0, [sp, #0xc] b _02234A26 _022349F8: ldr r0, [sp, #0xc] str r0, [r1] b _02234A26 _022349FE: ldr r2, [sp, #0xc] ldr r0, [r1] sub r0, r2, r0 str r0, [sp, #0xc] bpl _02234A26 mov r0, #0 str r0, [sp, #0xc] b _02234A26 _02234A0E: ldr r2, [sp, #0xc] ldr r0, [r1] eor r0, r2 str r0, [sp, #0xc] b _02234A26 _02234A18: ldr r2, [sp, #0xc] ldr r0, [r1] and r0, r2 str r0, [sp, #0xc] b _02234A26 _02234A22: bl ErrorHandling _02234A26: cmp r5, #0x11 beq _02234A56 cmp r6, #0x1a bne _02234A40 ldr r1, [sp] ldr r2, [sp, #0xc] lsl r1, r1, #0x18 lsl r2, r2, #0x18 add r0, r4, #0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl MOD11_0223D1C4 _02234A40: ldr r1, [sp] add r0, r4, #0 add r2, r6, #0 add r3, sp, #0xc bl MOD11_0224379C ldr r2, [sp] add r0, r7, #0 add r1, r4, #0 bl MOD11_02245190 _02234A56: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02234A5C MOD11_02234A5C: ; 0x02234A5C push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 add r0, r4, #0 bl MOD11_0223A424 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02234A7C MOD11_02234A7C: ; 0x02234A7C push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A43C mov r0, #0 pop {r4, pc} thumb_func_start MOD11_02234A9C MOD11_02234A9C: ; 0x02234A9C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A444 add r2, r0, #0 ldr r2, [r2] add r0, r4, #0 mov r1, #1 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02234ACC MOD11_02234ACC: ; 0x02234ACC push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 str r0, [sp, #8] mov r4, #0 bl MOD11_0222FF74 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] lsl r0, r1, #1 add r2, r5, r0 ldr r0, _02234BCC ; =0x00003084 ldrh r2, [r2, r0] cmp r2, #0 beq _02234AF6 add r4, r2, #0 b _02234B40 _02234AF6: mov r2, #2 tst r2, r6 beq _02234B40 lsl r1, r1, #3 add r3, r5, r1 add r1, r0, #0 add r1, #0xe add r4, r0, #0 ldrh r2, [r3, r1] add r1, r0, #0 add r4, #8 add r0, #0xa add r1, #0xc ldrh r4, [r3, r4] ldrh r0, [r3, r0] ldrh r1, [r3, r1] add r0, r4, r0 add r0, r1, r0 add r4, r2, r0 beq _02234B40 ldr r6, _02234BD0 ; =0x0000308C mov r7, #0x1e _02234B22: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r0, r0, #0x1e ldr r1, [r5, #0x64] sub r0, r0, r2 ror r0, r7 add r0, r2, r0 lsl r1, r1, #3 lsl r2, r0, #1 add r0, r5, r1 add r0, r2, r0 ldrh r4, [r0, r6] cmp r4, #0 beq _02234B22 _02234B40: cmp r4, #0 beq _02234BAA lsl r1, r4, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 bl MOD11_0224C0B4 cmp r0, #1 bne _02234BAA ldr r1, _02234BD4 ; =0x0000213C lsl r3, r4, #0x10 ldr r2, [r5, r1] mov r0, #1 bic r2, r0 str r2, [r5, r1] ldr r2, [r5, r1] ldr r0, _02234BD8 ; =0xFFFFBFFF lsr r3, r3, #0x10 and r0, r2 str r0, [r5, r1] ldr r0, _02234BDC ; =0x00003044 add r1, r5, #0 str r4, [r5, r0] mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, [sp, #8] ldr r2, [r5, #0x64] bl MOD11_02244C28 str r0, [r5, #0x6c] cmp r0, #0xff bne _02234B94 mov r2, #0x26 str r2, [r5, #0xc] add r0, r5, #0 mov r1, #1 add r2, #0xf3 bl MOD11_0223A434 b _02234BC4 _02234B94: ldr r1, [r5, #0x64] lsl r1, r1, #4 add r2, r5, r1 ldr r1, _02234BE0 ; =0x000021AC str r0, [r2, r1] add r0, r5, #0 mov r1, #0 add r2, r4, #0 bl MOD11_0223A434 b _02234BC4 _02234BAA: ldr r2, [r5, #0x64] mov r0, #0xb5 lsl r0, r0, #2 mov r1, #0x1c add r3, r2, #0 mul r3, r1 add r0, r5, r0 ldr r2, [r0, r3] mov r1, #1 bic r2, r1 mov r1, #1 orr r1, r2 str r1, [r0, r3] _02234BC4: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02234BCC: .word 0x00003084 _02234BD0: .word 0x0000308C _02234BD4: .word 0x0000213C _02234BD8: .word 0xFFFFBFFF _02234BDC: .word 0x00003044 _02234BE0: .word 0x000021AC thumb_func_start MOD11_02234BE4 MOD11_02234BE4: ; 0x02234BE4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0222FF84 mov r2, #0 cmp r0, #0 ble _02234C24 ldr r6, _02234C28 ; =0x00002D58 mov r1, #6 add r5, r6, #0 add r5, #0x58 _02234C06: mov r7, #0 _02234C08: add r3, r4, r7 add r7, r7, #1 strb r1, [r3, r6] cmp r7, #8 blt _02234C08 ldr r3, _02234C2C ; =0x00002DB0 add r2, r2, #1 ldr r7, [r4, r3] ldr r3, _02234C30 ; =0xFFEFFFFF and r3, r7 str r3, [r4, r5] add r4, #0xc0 cmp r2, r0 blt _02234C06 _02234C24: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02234C28: .word 0x00002D58 _02234C2C: .word 0x00002DB0 _02234C30: .word 0xFFEFFFFF thumb_func_start MOD11_02234C34 MOD11_02234C34: ; 0x02234C34 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_022451C0 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02234C60 MOD11_02234C60: ; 0x02234C60 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_022451F0 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02234C8C MOD11_02234C8C: ; 0x02234C8C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 add r2, r7, #0 bl MOD11_02255E0C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02234CC4 MOD11_02234CC4: ; 0x02234CC4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 add r2, r7, #0 bl MOD11_02255E2C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02234CFC MOD11_02234CFC: ; 0x02234CFC push {r4, r5, r6, r7, lr} sub sp, #0x3c add r7, r0, #0 add r5, r1, #0 str r2, [sp] mov r0, #5 mov r1, #0x60 bl FUN_02016998 add r4, r0, #0 ldr r0, [sp] add r6, r7, #0 lsl r0, r0, #1 add r6, #0xa0 str r0, [sp, #4] ldrh r0, [r6, r0] add r1, sp, #8 bl FUN_0206ADE0 ldr r0, [sp, #4] add r1, r4, #0 ldrh r0, [r6, r0] bl FUN_0206ADF0 add r0, sp, #8 ldrb r1, [r0] cmp r1, #3 bhi _02234D48 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02234D40: ; jump table .short _02234D48 - _02234D40 - 2 ; case 0 .short _02234D5C - _02234D40 - 2 ; case 1 .short _02234D6E - _02234D40 - 2 ; case 2 .short _02234D7E - _02234D40 - 2 ; case 3 _02234D48: add r0, sp, #8 ldrb r0, [r0, #3] sub r1, r0, #1 mov r0, #6 mul r0, r1 add r0, r4, r0 ldrh r0, [r0, #2] lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _02234D8C _02234D5C: ldrb r0, [r0, #3] sub r1, r0, #1 mov r0, #0xe mul r0, r1 add r0, r4, r0 ldrh r0, [r0, #2] lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _02234D8C _02234D6E: ldrb r0, [r0, #3] sub r0, r0, #1 lsl r0, r0, #3 add r0, r4, r0 ldrh r0, [r0, #2] lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _02234D8C _02234D7E: ldrb r0, [r0, #3] sub r0, r0, #1 lsl r0, r0, #4 add r0, r4, r0 ldrh r0, [r0, #2] lsl r0, r0, #0x18 lsr r1, r0, #0x18 _02234D8C: ldr r2, [r7, #0x2c] mov r0, #0x10 tst r0, r2 bne _02234D98 cmp r2, #0x4b bne _02234DAE _02234D98: add r0, sp, #8 ldrb r2, [r0, #1] ldr r0, _02234DEC ; =0x0225FF20 lsl r1, r1, #2 ldrb r0, [r0, r2] ldr r2, _02234DF0 ; =0x00002168 ldr r2, [r5, r2] add r5, r0, #0 mul r1, r2 mul r5, r1 b _02234DDE _02234DAE: mov r0, #2 tst r0, r2 add r0, sp, #8 beq _02234DCC ldrb r2, [r0, #1] ldr r0, _02234DEC ; =0x0225FF20 lsl r1, r1, #2 ldrb r0, [r0, r2] ldr r2, _02234DF0 ; =0x00002168 ldr r2, [r5, r2] add r5, r0, #0 mul r1, r2 lsl r1, r1, #1 mul r5, r1 b _02234DDE _02234DCC: ldrb r2, [r0, #1] ldr r0, _02234DEC ; =0x0225FF20 lsl r1, r1, #2 ldrb r0, [r0, r2] ldr r2, _02234DF0 ; =0x00002168 ldr r2, [r5, r2] add r5, r0, #0 mul r1, r2 mul r5, r1 _02234DDE: add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 add sp, #0x3c pop {r4, r5, r6, r7, pc} nop _02234DEC: .word 0x0225FF20 _02234DF0: .word 0x00002168 thumb_func_start MOD11_02234DF4 MOD11_02234DF4: ; 0x02234DF4 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, _02234E70 ; =0x0000241C ldrb r0, [r5, r0] cmp r0, #1 bne _02234E3E add r0, r5, #0 add r1, r6, #0 mov r2, #1 bl MOD11_02234CFC add r4, r0, #0 ldr r1, [r5, #0x2c] mov r0, #0x10 tst r0, r1 bne _02234E22 cmp r1, #0x4b bne _02234E2E _02234E22: add r0, r5, #0 add r1, r6, #0 mov r2, #3 bl MOD11_02234CFC add r4, r4, r0 _02234E2E: add r0, r5, #0 mov r1, #0 bl MOD11_022301D4 add r1, r4, #0 bl FUN_02023A30 b _02234E56 _02234E3E: ldr r0, [r5, #0x68] ldr r1, [r5, #0x48] bl MOD11_0223158C add r4, r0, #0 add r0, r5, #0 mov r1, #0 bl MOD11_022301D4 add r1, r4, #0 bl FUN_02023A54 _02234E56: cmp r4, #0 beq _02234E62 mov r0, #0x13 lsl r0, r0, #4 str r4, [r6, r0] b _02234E6A _02234E62: mov r0, #0x13 mov r1, #0 lsl r0, r0, #4 str r1, [r6, r0] _02234E6A: mov r0, #0 pop {r4, r5, r6, pc} nop _02234E70: .word 0x0000241C thumb_func_start MOD11_02234E74 MOD11_02234E74: ; 0x02234E74 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_02230E20 cmp r0, #1 beq _02234EAC cmp r4, #0xf beq _02234EAC cmp r4, #0x10 beq _02234EAC add r0, r4, #0 sub r0, #0x19 cmp r0, #1 bhi _02234ED2 _02234EAC: add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_0223C230 add r7, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 bl MOD11_0224C20C cmp r0, #1 bne _02234ED2 add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 add r3, r4, #0 bl MOD11_02255E4C _02234ED2: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02234ED8 MOD11_02234ED8: ; 0x02234ED8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_02230E20 cmp r0, #1 beq _02234F1A cmp r4, #0xf beq _02234F1A cmp r4, #0x10 beq _02234F1A add r0, r4, #0 sub r0, #0x19 cmp r0, #1 bhi _02234F5C _02234F1A: add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_0223C230 add r7, r0, #0 ldr r2, [sp, #4] add r0, r6, #0 add r1, r5, #0 bl MOD11_0223C230 str r0, [sp, #8] add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 bl MOD11_0224C20C cmp r0, #1 bne _02234F5C ldr r1, [sp, #8] add r0, r5, #0 add r2, r4, #0 bl MOD11_0224C20C cmp r0, #1 bne _02234F5C ldr r3, [sp, #8] add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 str r4, [sp] bl MOD11_02255E7C _02234F5C: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02234F64 MOD11_02234F64: ; 0x02234F64 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r7, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 str r0, [sp] add r0, r7, #0 add r1, r5, #0 add r2, r6, #0 bl MOD11_0223A444 add r4, r0, #0 add r0, r7, #0 bl MOD11_02230E20 cmp r0, #1 beq _02234FB4 cmp r6, #0xf beq _02234FB4 cmp r6, #0x10 beq _02234FB4 ldr r0, [r4] sub r0, #0x19 cmp r0, #1 bhi _02234FCE _02234FB4: ldr r1, [sp] ldr r2, [r4] add r0, r5, #0 bl MOD11_0224C20C cmp r0, #1 bne _02234FCE ldr r2, [sp] ldr r3, [r4] add r0, r7, #0 add r1, r5, #0 bl MOD11_02255E4C _02234FCE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02234FD4 MOD11_02234FD4: ; 0x02234FD4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r1, r4, #0 ldr r3, _02235008 ; =0x0000219C add r4, r4, r2 ldrb r3, [r4, r3] add r0, r5, #0 bl MOD11_02255EAC mov r0, #0 pop {r3, r4, r5, pc} nop _02235008: .word 0x0000219C thumb_func_start MOD11_0223500C MOD11_0223500C: ; 0x0223500C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r1, r4, #0 ldr r3, _02235040 ; =0x0000219C add r4, r4, r2 ldrb r3, [r4, r3] add r0, r5, #0 bl MOD11_02255EF0 mov r0, #0 pop {r3, r4, r5, pc} nop _02235040: .word 0x0000219C thumb_func_start MOD11_02235044 MOD11_02235044: ; 0x02235044 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02255F3C mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02235070 MOD11_02235070: ; 0x02235070 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02255F54 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_0223509C MOD11_0223509C: ; 0x0223509C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 mov r2, #0x13 lsl r2, r2, #4 add r1, r0, #0 ldr r2, [r4, r2] add r0, r5, #0 bl MOD11_02255E2C mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_022350CC MOD11_022350CC: ; 0x022350CC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x79 bne _022350FC ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022350FC: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _02235238 ; =0x00002D4C mov r6, #0 _02235108: ldrh r1, [r2, r0] cmp r1, #0 beq _02235116 add r6, r6, #1 add r2, r2, #2 cmp r6, #4 blt _02235108 _02235116: mov r0, #0 str r0, [sp, #4] cmp r6, #0 ble _0223518E add r7, r0, #0 _02235120: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r0, r4, r0 add r2, r7, r0 ldr r0, _02235238 ; =0x00002D4C ldrh r0, [r2, r0] cmp r0, #0xa0 beq _02235182 lsl r0, r0, #4 add r2, r4, r0 ldr r0, _0223523C ; =0x000003E2 ldrb r5, [r2, r0] cmp r5, #9 bne _02235162 add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #7 beq _0223515C ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #7 bne _02235160 _0223515C: mov r5, #7 b _02235162 _02235160: mov r5, #0 _02235162: ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _02235182 ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r5, r0 bne _0223518E _02235182: ldr r0, [sp, #4] add r7, r7, #2 add r0, r0, #1 str r0, [sp, #4] cmp r0, r6 blt _02235120 _0223518E: ldr r0, [sp, #4] cmp r0, r6 bne _0223519E ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 b _02235230 _0223519E: ldr r7, _02235238 ; =0x00002D4C _022351A0: bl FUN_0201B9EC add r1, r6, #0 bl _s32_div_f ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 lsl r1, r1, #1 add r0, r4, r0 add r0, r1, r0 ldrh r0, [r0, r7] cmp r0, #0xa0 beq _022351A0 lsl r0, r0, #4 add r1, r4, r0 ldr r0, _0223523C ; =0x000003E2 ldrb r5, [r1, r0] cmp r5, #9 bne _022351EE add r1, r2, #0 add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #7 beq _022351E8 ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #7 bne _022351EC _022351E8: mov r5, #7 b _022351EE _022351EC: mov r5, #0 _022351EE: ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _022351A0 ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _022351A0 ldr r1, [r4, #0x64] lsl r0, r5, #0x18 add r3, r1, #0 mov r2, #0xc0 mul r3, r2 ldr r1, _02235240 ; =0x00002D64 lsr r0, r0, #0x18 add r3, r4, r3 strb r0, [r3, r1] ldr r3, [r4, #0x64] add r1, r1, #1 add r6, r3, #0 mul r6, r2 add r3, r4, r6 strb r0, [r3, r1] add r2, #0x70 str r5, [r4, r2] _02235230: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02235238: .word 0x00002D4C _0223523C: .word 0x000003E2 _02235240: .word 0x00002D64 thumb_func_start MOD11_02235244 MOD11_02235244: ; 0x02235244 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r6, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r0, [sp] add r1, r6, #0 add r2, r4, #0 bl MOD11_0223A444 add r4, r0, #0 ldr r0, [sp] ldr r2, [sp, #4] add r1, r6, #0 bl MOD11_0223A444 cmp r7, #6 bhi _022352FC add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223529A: ; jump table .short _022352A8 - _0223529A - 2 ; case 0 .short _022352B4 - _0223529A - 2 ; case 1 .short _022352C0 - _0223529A - 2 ; case 2 .short _022352CC - _0223529A - 2 ; case 3 .short _022352D8 - _0223529A - 2 ; case 4 .short _022352E4 - _0223529A - 2 ; case 5 .short _022352F0 - _0223529A - 2 ; case 6 _022352A8: ldr r1, [r4] ldr r0, [r0] cmp r1, r0 beq _022352FC mov r5, #0 b _022352FC _022352B4: ldr r1, [r4] ldr r0, [r0] cmp r1, r0 bne _022352FC mov r5, #0 b _022352FC _022352C0: ldr r1, [r4] ldr r0, [r0] cmp r1, r0 bhi _022352FC mov r5, #0 b _022352FC _022352CC: ldr r1, [r4] ldr r0, [r0] cmp r1, r0 bls _022352FC mov r5, #0 b _022352FC _022352D8: ldr r1, [r4] ldr r0, [r0] tst r0, r1 bne _022352FC mov r5, #0 b _022352FC _022352E4: ldr r1, [r4] ldr r0, [r0] tst r0, r1 beq _022352FC mov r5, #0 b _022352FC _022352F0: ldr r1, [r0] ldr r0, [r4] and r0, r1 cmp r1, r0 beq _022352FC mov r5, #0 _022352FC: cmp r5, #0 beq _02235308 add r0, r6, #0 add r1, r5, #0 bl MOD11_0223A424 _02235308: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02235310 MOD11_02235310: ; 0x02235310 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r6, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r0, [sp] add r1, r6, #0 add r2, r4, #0 bl MOD11_0223C230 add r1, r0, #0 ldr r2, [sp, #4] add r0, r6, #0 mov r3, #0 bl MOD11_02243420 add r4, r0, #0 ldr r0, [sp] ldr r2, [sp, #8] add r1, r6, #0 bl MOD11_0223A444 cmp r7, #6 bhi _022353D0 add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223537A: ; jump table .short _02235388 - _0223537A - 2 ; case 0 .short _02235392 - _0223537A - 2 ; case 1 .short _0223539C - _0223537A - 2 ; case 2 .short _022353A6 - _0223537A - 2 ; case 3 .short _022353B0 - _0223537A - 2 ; case 4 .short _022353BA - _0223537A - 2 ; case 5 .short _022353C4 - _0223537A - 2 ; case 6 _02235388: ldr r0, [r0] cmp r4, r0 beq _022353D0 mov r5, #0 b _022353D0 _02235392: ldr r0, [r0] cmp r4, r0 bne _022353D0 mov r5, #0 b _022353D0 _0223539C: ldr r0, [r0] cmp r4, r0 bhi _022353D0 mov r5, #0 b _022353D0 _022353A6: ldr r0, [r0] cmp r4, r0 bls _022353D0 mov r5, #0 b _022353D0 _022353B0: ldr r0, [r0] tst r0, r4 bne _022353D0 mov r5, #0 b _022353D0 _022353BA: ldr r0, [r0] tst r0, r4 beq _022353D0 mov r5, #0 b _022353D0 _022353C4: ldr r1, [r0] add r0, r1, #0 and r0, r4 cmp r1, r0 beq _022353D0 mov r5, #0 _022353D0: cmp r5, #0 beq _022353DC add r0, r6, #0 add r1, r5, #0 bl MOD11_0223A424 _022353DC: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022353E4 MOD11_022353E4: ; 0x022353E4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #0x53 lsl r0, r0, #2 ldr r1, _0223542C ; =0x00002168 ldr r2, [r4, r0] ldr r1, [r4, r1] add r3, r2, #0 mul r3, r1 add r1, r0, #0 sub r1, #0x1c str r3, [r4, r1] add r1, r0, #0 sub r1, #0x1c ldr r2, [r4, r1] ldr r1, _02235430 ; =0x0000FFFF cmp r2, r1 ble _02235416 sub r0, #0x1c str r1, [r4, r0] _02235416: add r0, r5, #0 mov r1, #0 bl MOD11_022301D4 mov r1, #0x13 lsl r1, r1, #4 ldr r1, [r4, r1] bl FUN_02023A30 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _0223542C: .word 0x00002168 _02235430: .word 0x0000FFFF thumb_func_start MOD11_02235434 MOD11_02235434: ; 0x02235434 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r5, #0x64] add r0, r7, #0 bl MOD11_02230270 add r6, r0, #0 mov r0, #0x6f lsl r0, r0, #2 add r3, r5, r0 lsl r2, r6, #2 ldr r1, [r3, r2] mov r4, #2 tst r4, r1 beq _02235478 ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 ldr r1, _02235508 ; =0x0000216C mov r0, #0x40 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] b _02235504 _02235478: mov r4, #2 orr r1, r4 str r1, [r3, r2] add r1, r0, #0 add r1, #8 add r4, r5, r1 lsl r6, r6, #3 ldr r2, [r4, r6] ldr r1, _0223550C ; =0xFFFFFC7F add r0, #0xc4 and r1, r2 orr r0, r1 str r0, [r4, r6] ldr r0, [r4, r6] mov r1, #0x60 bic r0, r1 ldr r1, [r5, #0x64] lsl r1, r1, #0x1e lsr r1, r1, #0x19 orr r0, r1 str r0, [r4, r6] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02249D90 cmp r0, #0x60 bne _022354CC ldr r1, [r5, #0x64] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 ldr r1, [r4, r6] ldr r2, _0223550C ; =0xFFFFFC7F and r2, r1 lsl r1, r1, #0x16 lsr r1, r1, #0x1d add r0, r1, r0 lsl r0, r0, #0x1d lsr r0, r0, #0x16 orr r0, r2 str r0, [r4, r6] _022354CC: add r0, r5, #0 mov r1, #0x14 add r0, #0xf5 strb r1, [r0] ldr r0, _02235510 ; =0x00003044 mov r2, #1 ldr r1, [r5, r0] add r0, r5, #0 add r0, #0xf8 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0xfc str r1, [r0] ldr r3, [r5, #0x64] add r0, r7, #0 add r1, r5, #0 bl MOD11_022467AC cmp r0, #2 bne _022354FE mov r0, #0xc0 add r5, #0xf6 strh r0, [r5] b _02235504 _022354FE: mov r0, #0xbe add r5, #0xf6 strh r0, [r5] _02235504: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02235508: .word 0x0000216C _0223550C: .word 0xFFFFFC7F _02235510: .word 0x00003044 thumb_func_start MOD11_02235514 MOD11_02235514: ; 0x02235514 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r5, #0x64] add r0, r7, #0 bl MOD11_02230270 add r6, r0, #0 mov r0, #0x6f lsl r0, r0, #2 add r3, r5, r0 lsl r2, r6, #2 ldr r1, [r3, r2] mov r4, #1 tst r4, r1 beq _02235558 ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 ldr r1, _022355EC ; =0x0000216C mov r0, #0x40 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] b _022355E6 _02235558: mov r4, #1 orr r1, r4 add r0, #8 add r4, r5, r0 lsl r6, r6, #3 str r1, [r3, r2] ldr r1, [r4, r6] mov r0, #0x1c bic r1, r0 mov r0, #0x14 orr r0, r1 str r0, [r4, r6] ldr r0, [r4, r6] mov r1, #3 bic r0, r1 ldr r2, [r5, #0x64] mov r1, #3 and r1, r2 orr r0, r1 str r0, [r4, r6] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02249D90 cmp r0, #0x60 bne _022355AE ldr r1, [r5, #0x64] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 ldr r1, [r4, r6] add r3, r0, #0 mov r0, #0x1c add r2, r1, #0 bic r2, r0 lsl r0, r1, #0x1b lsr r0, r0, #0x1d add r0, r0, r3 lsl r0, r0, #0x1d lsr r0, r0, #0x1b orr r0, r2 str r0, [r4, r6] _022355AE: add r0, r5, #0 mov r1, #0x14 add r0, #0xf5 strb r1, [r0] ldr r0, _022355F0 ; =0x00003044 mov r2, #1 ldr r1, [r5, r0] add r0, r5, #0 add r0, #0xf8 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0xfc str r1, [r0] ldr r3, [r5, #0x64] add r0, r7, #0 add r1, r5, #0 bl MOD11_022467AC cmp r0, #2 bne _022355E0 mov r0, #0xc4 add r5, #0xf6 strh r0, [r5] b _022355E6 _022355E0: mov r0, #0xc2 add r5, #0xf6 strh r0, [r5] _022355E6: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022355EC: .word 0x0000216C _022355F0: .word 0x00003044 thumb_func_start MOD11_022355F4 MOD11_022355F4: ; 0x022355F4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 mov r5, #0x6f add r2, r0, #0 lsl r5, r5, #2 add r1, r4, r5 lsl r0, r2, #2 ldr r6, [r1, r0] mov r3, #0x40 tst r3, r6 beq _02235638 add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 ldr r1, _02235668 ; =0x0000216C mov r0, #0x40 ldr r2, [r4, r1] orr r0, r2 str r0, [r4, r1] b _02235662 _02235638: mov r3, #0x40 orr r3, r6 str r3, [r1, r0] add r5, #8 lsl r0, r2, #3 add r1, r4, r5 ldr r3, [r1, r0] ldr r2, _0223566C ; =0xFFFF8FFF and r3, r2 mov r2, #5 lsl r2, r2, #0xc orr r2, r3 str r2, [r1, r0] ldr r3, [r1, r0] ldr r2, _02235670 ; =0xFFFFF3FF and r3, r2 ldr r2, [r4, #0x64] lsl r2, r2, #0x1e lsr r2, r2, #0x14 orr r2, r3 str r2, [r1, r0] _02235662: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02235668: .word 0x0000216C _0223566C: .word 0xFFFF8FFF _02235670: .word 0xFFFFF3FF thumb_func_start MOD11_02235674 MOD11_02235674: ; 0x02235674 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, _02235844 ; =0x0000213C mov r0, #1 ldr r2, [r4, r1] lsl r0, r0, #0xa orr r0, r2 str r0, [r4, r1] ldr r1, [r4, #0x64] ldr r2, [r4, #0x6c] add r0, r4, #0 mov r3, #5 bl MOD11_02246D84 cmp r0, #1 bne _022356AA ldr r1, _02235848 ; =0x0000216C mov r0, #2 ldr r2, [r4, r1] lsl r0, r0, #0x12 orr r0, r2 str r0, [r4, r1] b _0223583E _022356AA: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r1, r0] mov r0, #0x18 tst r0, r1 bne _02235730 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x63 beq _02235730 ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x63 beq _02235730 ldr r0, _0223584C ; =0x00003044 mov r2, #0xc0 ldr r0, [r4, r0] ldr r5, [r4, #0x6c] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _02235850 ; =0x000003E3 ldrb r1, [r1, r0] ldr r0, [r4, #0x64] add r3, r0, #0 mul r3, r2 add r0, r4, r3 ldr r3, _02235854 ; =0x00002D74 mul r2, r5 add r2, r4, r2 ldrb r0, [r0, r3] ldrb r2, [r2, r3] sub r0, r0, r2 add r0, r1, r0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r5 bge _0223572C ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _02235854 ; =0x00002D74 add r2, r4, r2 ldrb r3, [r2, r1] ldr r2, [r4, #0x6c] mul r0, r2 add r0, r4, r0 ldrb r0, [r0, r1] cmp r3, r0 blo _0223572C mov r3, #1 b _022357E8 _0223572C: mov r3, #0 b _022357E8 _02235730: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r3, r4, r0 ldr r0, _02235858 ; =0x00002DCC ldr r1, [r4, #0x64] ldr r2, [r3, r0] lsl r2, r2, #0x1e lsr r2, r2, #0x1e cmp r1, r2 bne _02235750 sub r0, #0xc ldr r2, [r3, r0] mov r0, #0x18 tst r0, r2 bne _02235766 _02235750: add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x63 beq _02235766 ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x63 bne _02235784 _02235766: ldr r0, [r4, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r3, [r4, #0x6c] add r0, r4, r2 ldr r2, _02235854 ; =0x00002D74 mul r1, r3 add r1, r4, r1 ldrb r0, [r0, r2] ldrb r1, [r1, r2] cmp r0, r1 blo _02235784 mov r3, #1 b _022357DC _02235784: ldr r0, _0223584C ; =0x00003044 mov r2, #0xc0 ldr r0, [r4, r0] ldr r5, [r4, #0x6c] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _02235850 ; =0x000003E3 ldrb r1, [r1, r0] ldr r0, [r4, #0x64] add r3, r0, #0 mul r3, r2 add r0, r4, r3 ldr r3, _02235854 ; =0x00002D74 mul r2, r5 add r2, r4, r2 ldrb r0, [r0, r3] ldrb r2, [r2, r3] sub r0, r0, r2 add r0, r1, r0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r5 bge _022357DA ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _02235854 ; =0x00002D74 add r2, r4, r2 ldrb r3, [r2, r1] ldr r2, [r4, #0x6c] mul r0, r2 add r0, r4, r0 ldrb r0, [r0, r1] cmp r3, r0 blo _022357DA mov r3, #1 b _022357DC _022357DA: mov r3, #0 _022357DC: ldr r1, _02235848 ; =0x0000216C mov r0, #1 ldr r2, [r4, r1] lsl r0, r0, #0xa orr r0, r2 str r0, [r4, r1] _022357E8: cmp r3, #0 beq _0223580E ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0223585C ; =0x00002D8C ldr r0, [r1, r0] ldr r1, _02235860 ; =0x00002144 neg r0, r0 str r0, [r4, r1] add r0, r1, #0 add r0, #0x28 ldr r2, [r4, r0] mov r0, #0x20 orr r0, r2 add r1, #0x28 str r0, [r4, r1] b _0223583E _0223580E: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _02235854 ; =0x00002D74 add r2, r4, r2 ldrb r3, [r2, r1] ldr r2, [r4, #0x6c] mul r0, r2 add r0, r4, r0 ldrb r0, [r0, r1] cmp r3, r0 ldr r1, _02235848 ; =0x0000216C blo _02235834 ldr r2, [r4, r1] mov r0, #1 orr r0, r2 str r0, [r4, r1] b _0223583E _02235834: mov r0, #1 ldr r2, [r4, r1] lsl r0, r0, #0xc orr r0, r2 str r0, [r4, r1] _0223583E: mov r0, #0 pop {r3, r4, r5, pc} nop _02235844: .word 0x0000213C _02235848: .word 0x0000216C _0223584C: .word 0x00003044 _02235850: .word 0x000003E3 _02235854: .word 0x00002D74 _02235858: .word 0x00002DCC _0223585C: .word 0x00002D8C _02235860: .word 0x00002144 thumb_func_start MOD11_02235864 MOD11_02235864: ; 0x02235864 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223A444 add r4, r0, #0 ldr r0, [r4] add r1, r7, #0 bl MOD11_022476C0 str r0, [r4] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223589C MOD11_0223589C: ; 0x0223589C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223A444 add r4, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD11_0223A444 add r1, r0, #0 ldr r0, [r4] cmp r0, #0 bge _022358DE mov r5, #0 mvn r5, r5 b _022358E0 _022358DE: mov r5, #1 _022358E0: ldr r0, [r4] ldr r1, [r1] bl _s32_div_f str r0, [r4] cmp r0, #0 bne _022358F0 str r5, [r4] _022358F0: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_022358F4 MOD11_022358F4: ; 0x022358F4 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp] ldr r0, [r6, #0x6c] lsl r0, r0, #1 add r1, r6, r0 ldr r0, _02235A18 ; =0x0000307C ldrh r0, [r1, r0] bl MOD11_0224C044 cmp r0, #0 beq _0223594E ldr r0, [r6, #0x64] mov r2, #2 mov r3, #0xc0 add r1, r0, #0 mul r1, r3 add r0, r6, r1 ldr r1, _02235A1C ; =0x00002DB0 mov ip, r0 ldr r0, [r0, r1] lsl r2, r2, #0x14 tst r0, r2 bne _0223594E ldr r0, [r6, #0x6c] add r4, r0, #0 mul r4, r3 add r4, r6, r4 ldr r4, [r4, r1] lsl r1, r2, #3 tst r1, r4 bne _0223594E lsl r0, r0, #1 add r1, r6, r0 ldr r0, _02235A18 ; =0x0000307C ldrh r7, [r1, r0] cmp r7, #0 bne _02235958 _0223594E: ldr r1, [sp] add r0, r6, #0 bl MOD11_0223A424 b _02235A14 _02235958: mov r2, #0 sub r3, #0xc1 mov r4, ip add r5, r2, #0 _02235960: ldr r0, _02235A20 ; =0x00002D4C ldrh r0, [r4, r0] cmp r7, r0 beq _02235988 mov r0, ip add r1, r0, r5 ldr r0, _02235A20 ; =0x00002D4C ldrh r0, [r1, r0] cmp r0, #0x66 bne _0223597E mov r0, #0 mvn r0, r0 cmp r3, r0 bne _0223597E add r3, r2, #0 _0223597E: add r2, r2, #1 add r4, r4, #2 add r5, r5, #2 cmp r2, #4 blt _02235960 _02235988: cmp r2, #4 bne _02235A0C mov r4, #0x49 lsl r4, r4, #2 str r7, [r6, r4] ldr r2, [r6, #0x64] mov r1, #0xc0 add r5, r2, #0 mul r5, r1 add r5, r6, r5 lsl r2, r3, #1 add r5, r5, r2 ldr r0, [r6, r4] ldr r2, _02235A20 ; =0x00002D4C strh r0, [r5, r2] ldr r0, [r6, r4] lsl r0, r0, #4 add r4, r6, r0 mov r0, #0xf9 lsl r0, r0, #2 ldrb r0, [r4, r0] cmp r0, #5 bhs _022359B8 b _022359BA _022359B8: mov r0, #5 _022359BA: ldr r4, [r6, #0x64] add r2, #0x20 mul r1, r4 add r1, r6, r1 add r1, r1, r3 strb r0, [r1, r2] add r0, r3, #0 bl FUN_0206A92C ldr r1, _02235A24 ; =0x00002DCC mov r4, #0xc0 add r3, r6, r1 ldr r1, [r6, #0x64] mov r5, #0x3c add r2, r1, #0 mul r2, r4 ldr r7, [r3, r2] add r1, r7, #0 bic r1, r5 lsl r5, r7, #0x1a lsr r5, r5, #0x1c orr r0, r5 lsl r0, r0, #0x1c lsr r0, r0, #0x1a orr r0, r1 str r0, [r3, r2] add r0, r4, #0 add r0, #0x64 ldr r1, [r6, r0] add r0, r4, #0 add r0, #0xc3 cmp r1, r0 bne _02235A14 ldr r0, [r6, #0x64] add r2, r0, #0 mul r2, r4 ldr r1, [r3, r2] ldr r0, _02235A28 ; =0xFFFFE3FF and r0, r1 str r0, [r3, r2] b _02235A14 _02235A0C: ldr r1, [sp] add r0, r6, #0 bl MOD11_0223A424 _02235A14: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02235A18: .word 0x0000307C _02235A1C: .word 0x00002DB0 _02235A20: .word 0x00002D4C _02235A24: .word 0x00002DCC _02235A28: .word 0xFFFFE3FF thumb_func_start MOD11_02235A2C MOD11_02235A2C: ; 0x02235A2C push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 ldr r4, _02235A7C ; =0x00002D4C mov r7, #0xc0 _02235A3C: bl FUN_0201B9EC ldr r1, _02235A80 ; =0x000001D3 bl _s32_div_f add r0, r1, #1 ldr r1, [r6, #0x64] lsl r0, r0, #0x10 add r2, r1, #0 mul r2, r7 lsr r5, r0, #0x10 mov r0, #0 add r2, r6, r2 _02235A56: ldrh r1, [r2, r4] cmp r5, r1 beq _02235A64 add r0, r0, #1 add r2, r2, #2 cmp r0, #4 blt _02235A56 _02235A64: cmp r0, #4 bne _02235A3C add r0, r5, #0 bl MOD11_0224C07C cmp r0, #0 beq _02235A3C mov r0, #0x49 lsl r0, r0, #2 str r5, [r6, r0] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02235A7C: .word 0x00002D4C _02235A80: .word 0x000001D3 thumb_func_start MOD11_02235A84 MOD11_02235A84: ; 0x02235A84 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 mov r0, #0xb5 lsl r0, r0, #6 add r2, r5, r0 ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 lsl r1, r1, #1 add r0, r2, r0 add r2, r5, r1 ldr r1, _02235B34 ; =0x0000307C ldrh r1, [r2, r1] bl MOD11_022461AC ldr r3, [r5, #0x6c] add r6, r0, #0 mov r7, #0xc0 add r0, r3, #0 mul r0, r7 add r2, r5, r0 ldr r0, _02235B38 ; =0x00002DE8 ldrh r1, [r2, r0] cmp r1, #0 bne _02235B26 cmp r6, #4 beq _02235B26 add r1, r0, #0 add r2, r2, r6 sub r1, #0x7c ldrb r1, [r2, r1] cmp r1, #0 beq _02235B26 lsl r1, r3, #1 add r2, r5, r1 ldr r1, _02235B34 ; =0x0000307C ldrh r2, [r2, r1] cmp r2, #0 beq _02235B26 add r1, r7, #0 add r1, #0x64 str r2, [r5, r1] add r1, r7, #0 add r1, #0x64 ldr r3, [r5, r1] ldr r1, [r5, #0x6c] add r2, r1, #0 mul r2, r7 add r1, r5, r2 strh r3, [r1, r0] bl FUN_0201B9EC ldr r1, _02235B3C ; =0x00002DC8 ldr r4, [r5, #0x6c] add r3, r5, r1 add r2, r4, #0 add r1, r7, #0 mul r2, r1 ldr r1, [r3, r2] mov r4, #7 bic r1, r4 lsr r5, r0, #0x1f lsl r4, r0, #0x1e sub r4, r4, r5 mov r0, #0x1e ror r4, r0 add r0, r5, r4 add r4, r0, #3 mov r0, #7 and r0, r4 orr r0, r1 str r0, [r3, r2] b _02235B2E _02235B26: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 _02235B2E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02235B34: .word 0x0000307C _02235B38: .word 0x00002DE8 _02235B3C: .word 0x00002DC8 thumb_func_start MOD11_02235B40 MOD11_02235B40: ; 0x02235B40 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] lsl r0, r1, #6 add r2, r5, r0 mov r0, #0x7a lsl r0, r0, #2 ldr r4, [r2, r0] ldr r0, [sp] bl MOD11_02230270 str r0, [sp, #4] ldr r0, [sp] add r1, r4, #0 bl MOD11_02230270 ldr r6, [r5, #0x64] add r3, r0, #0 lsl r0, r6, #6 add r1, r5, r0 lsl r0, r4, #2 add r0, r1, r0 mov r1, #0x76 lsl r1, r1, #2 ldr r7, [r0, r1] cmp r7, #0 beq _02235C06 ldr r0, [sp, #4] cmp r0, r3 beq _02235C06 mov r0, #0xc0 mul r0, r4 add r2, r5, r0 ldr r0, _02235C30 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02235C06 ldr r0, _02235C34 ; =0x00002144 lsl r2, r7, #1 sub r1, #0x14 str r2, [r5, r0] add r1, r5, r1 lsl r0, r3, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02235BC0 lsl r0, r0, #9 lsr r0, r0, #0x1e mov r1, #0xc0 mul r1, r0 add r2, r5, r1 ldr r1, _02235C30 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02235BC0 str r0, [r5, #0x6c] b _02235BC2 _02235BC0: str r4, [r5, #0x6c] _02235BC2: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02235C30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _02235BFA ldr r0, [sp] ldr r2, [r5, #0x64] add r1, r5, #0 bl MOD11_022482A4 mov r1, #0xc0 mul r1, r0 str r0, [r5, #0x6c] ldr r0, _02235C30 ; =0x00002D8C add r1, r5, r1 ldr r0, [r1, r0] cmp r0, #0 bne _02235BFA mov r2, #0x26 str r2, [r5, #0xc] add r0, r5, #0 mov r1, #1 add r2, #0xf3 bl MOD11_0223A434 _02235BFA: ldr r1, [r5, #0x64] ldr r2, [r5, #0x6c] add r0, r5, #0 bl MOD11_0224C438 b _02235C28 _02235C06: mov r0, #0xb5 lsl r0, r0, #2 mov r1, #0x1c add r3, r6, #0 mul r3, r1 add r0, r5, r0 ldr r2, [r0, r3] mov r1, #1 bic r2, r1 mov r1, #1 orr r1, r2 str r1, [r0, r3] ldr r1, _02235C38 ; =0x0000216C mov r0, #0x40 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] _02235C28: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02235C30: .word 0x00002D8C _02235C34: .word 0x00002144 _02235C38: .word 0x0000216C thumb_func_start MOD11_02235C3C MOD11_02235C3C: ; 0x02235C3C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] lsl r0, r1, #6 add r2, r5, r0 mov r0, #2 lsl r0, r0, #8 ldr r4, [r2, r0] ldr r0, [sp] bl MOD11_02230270 str r0, [sp, #4] ldr r0, [sp] add r1, r4, #0 bl MOD11_02230270 ldr r6, [r5, #0x64] add r3, r0, #0 lsl r0, r6, #6 add r1, r5, r0 lsl r0, r4, #2 add r0, r1, r0 mov r1, #0x1f lsl r1, r1, #4 ldr r7, [r0, r1] cmp r7, #0 beq _02235D02 ldr r0, [sp, #4] cmp r0, r3 beq _02235D02 mov r0, #0xc0 mul r0, r4 add r2, r5, r0 ldr r0, _02235D2C ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02235D02 ldr r0, _02235D30 ; =0x00002144 lsl r2, r7, #1 sub r1, #0x2c str r2, [r5, r0] add r1, r5, r1 lsl r0, r3, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02235CBC lsl r0, r0, #9 lsr r0, r0, #0x1e mov r1, #0xc0 mul r1, r0 add r2, r5, r1 ldr r1, _02235D2C ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02235CBC str r0, [r5, #0x6c] b _02235CBE _02235CBC: str r4, [r5, #0x6c] _02235CBE: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02235D2C ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _02235CF6 ldr r0, [sp] ldr r2, [r5, #0x64] add r1, r5, #0 bl MOD11_022482A4 mov r1, #0xc0 mul r1, r0 str r0, [r5, #0x6c] ldr r0, _02235D2C ; =0x00002D8C add r1, r5, r1 ldr r0, [r1, r0] cmp r0, #0 bne _02235CF6 mov r2, #0x26 str r2, [r5, #0xc] add r0, r5, #0 mov r1, #1 add r2, #0xf3 bl MOD11_0223A434 _02235CF6: ldr r1, [r5, #0x64] ldr r2, [r5, #0x6c] add r0, r5, #0 bl MOD11_0224C438 b _02235D24 _02235D02: mov r0, #0xb5 lsl r0, r0, #2 mov r1, #0x1c add r3, r6, #0 mul r3, r1 add r0, r5, r0 ldr r2, [r0, r3] mov r1, #1 bic r2, r1 mov r1, #1 orr r1, r2 str r1, [r0, r3] ldr r1, _02235D34 ; =0x0000216C mov r0, #0x40 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] _02235D24: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02235D2C: .word 0x00002D8C _02235D30: .word 0x00002144 _02235D34: .word 0x0000216C thumb_func_start MOD11_02235D38 MOD11_02235D38: ; 0x02235D38 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 mov r0, #0xb5 lsl r0, r0, #6 add r2, r5, r0 ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 lsl r1, r1, #1 add r0, r2, r0 add r2, r5, r1 ldr r1, _02235E0C ; =0x0000307C ldrh r1, [r2, r1] bl MOD11_022461AC ldr r1, [r5, #0x6c] add r4, r0, #0 lsl r1, r1, #1 add r2, r5, r1 ldr r1, _02235E0C ; =0x0000307C add r0, r5, #0 ldrh r1, [r2, r1] bl MOD11_0224C0B4 cmp r0, #0 bne _02235D7E mov r4, #4 _02235D7E: ldr r0, [r5, #0x6c] mov r2, #0xc0 add r1, r0, #0 mul r1, r2 ldr r3, _02235E10 ; =0x00002DEC add r6, r5, r1 ldrh r1, [r6, r3] cmp r1, #0 bne _02235DF6 cmp r4, #4 beq _02235DF6 add r1, r3, #0 add r6, r6, r4 sub r1, #0x80 ldrb r1, [r6, r1] cmp r1, #0 beq _02235DF6 lsl r0, r0, #1 add r1, r5, r0 ldr r0, _02235E0C ; =0x0000307C ldrh r1, [r1, r0] cmp r1, #0 beq _02235DF6 add r0, r2, #0 add r0, #0x64 str r1, [r5, r0] ldr r1, [r5, #0x6c] add r0, r2, #0 add r0, #0x64 add r6, r1, #0 mul r6, r2 ldr r0, [r5, r0] add r1, r5, r6 strh r0, [r1, r3] ldr r0, [r5, #0x6c] add r1, r0, #0 mul r1, r2 add r1, r5, r1 add r0, r3, #2 strh r4, [r1, r0] bl FUN_0201B9EC ldr r1, _02235E14 ; =0x00002DC8 ldr r2, [r5, #0x6c] add r4, r5, r1 mov r1, #0xc0 add r5, r2, #0 mul r5, r1 mov r1, #5 bl _s32_div_f ldr r2, [r4, r5] mov r0, #0x38 bic r2, r0 add r0, r1, #3 lsl r0, r0, #0x1d lsr r0, r0, #0x1a orr r0, r2 str r0, [r4, r5] b _02235E08 _02235DF6: ldr r1, _02235E18 ; =0x0000216C mov r0, #0x40 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 _02235E08: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02235E0C: .word 0x0000307C _02235E10: .word 0x00002DEC _02235E14: .word 0x00002DC8 _02235E18: .word 0x0000216C thumb_func_start MOD11_02235E1C MOD11_02235E1C: ; 0x02235E1C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x79 bne _02235E4C ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02235E4C: ldr r0, [r4, #0x64] lsl r0, r0, #1 add r2, r4, r0 ldr r0, _02235FB4 ; =0x000030C4 ldrh r1, [r2, r0] cmp r1, #0 beq _02235E62 add r0, #8 ldrh r0, [r2, r0] cmp r0, #0xff bne _02235E64 _02235E62: b _02235FA6 _02235E64: add r0, r4, #0 bl MOD11_02246AF8 cmp r0, #0 beq _02235E98 ldr r0, [r4, #0x64] lsl r0, r0, #1 add r1, r4, r0 ldr r0, _02235FB8 ; =0x000030CC ldrh r1, [r1, r0] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02235FBC ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0xc tst r0, r1 beq _02235E98 ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02235E98: ldr r0, [r4, #0x64] mov r7, #0 lsl r0, r0, #1 add r1, r4, r0 ldr r0, _02235FC0 ; =0x000030D4 ldrh r6, [r1, r0] _02235EA4: add r1, sp, #4 add r2, sp, #4 ldr r0, _02235FC4 ; =0x0000FFFF add r1, #2 add r2, #1 add r3, sp, #4 bl MOD11_02246B58 add r0, sp, #4 ldrb r0, [r0, #2] cmp r0, r6 bne _02235F12 add r0, sp, #4 ldrb r0, [r0] cmp r0, #5 bhi _02235F12 add r0, sp, #4 ldrb r5, [r0, #1] ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _02235F12 ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _02235F12 ldr r0, [r4, #0x64] add r3, sp, #4 mov r2, #0xc0 add r1, r0, #0 mul r1, r2 add r0, r4, r1 ldr r1, _02235FC8 ; =0x00002D64 add sp, #8 strb r5, [r0, r1] ldr r5, [r4, #0x64] ldrb r0, [r3, #1] add r6, r5, #0 mul r6, r2 add r5, r4, r6 add r1, r1, #1 strb r0, [r5, r1] ldrb r0, [r3, #1] add r2, #0x70 str r0, [r4, r2] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02235F12: mov r0, #0xfa add r7, r7, #1 lsl r0, r0, #2 cmp r7, r0 blt _02235EA4 mov r7, #0 add r1, sp, #4 add r2, sp, #4 add r0, r7, #0 add r1, #2 add r2, #1 add r3, sp, #4 bl MOD11_02246B58 cmp r0, #1 bne _02235FA6 _02235F32: add r0, sp, #4 ldrb r0, [r0, #2] cmp r0, r6 bne _02235F90 add r0, sp, #4 ldrb r0, [r0] cmp r0, #5 bhi _02235F90 add r0, sp, #4 ldrb r5, [r0, #1] ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _02235F90 ldr r1, [r4, #0x64] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r5, r0 beq _02235F90 ldr r0, [r4, #0x64] add r3, sp, #4 mov r2, #0xc0 add r1, r0, #0 mul r1, r2 add r0, r4, r1 ldr r1, _02235FC8 ; =0x00002D64 add sp, #8 strb r5, [r0, r1] ldr r5, [r4, #0x64] ldrb r0, [r3, #1] add r6, r5, #0 mul r6, r2 add r5, r4, r6 add r1, r1, #1 strb r0, [r5, r1] ldrb r0, [r3, #1] add r2, #0x70 str r0, [r4, r2] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02235F90: add r7, r7, #1 add r1, sp, #4 add r2, sp, #4 add r0, r7, #0 add r1, #2 add r2, #1 add r3, sp, #4 bl MOD11_02246B58 cmp r0, #1 beq _02235F32 _02235FA6: ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02235FB4: .word 0x000030C4 _02235FB8: .word 0x000030CC _02235FBC: .word 0x00002DB0 _02235FC0: .word 0x000030D4 _02235FC4: .word 0x0000FFFF _02235FC8: .word 0x00002D64 thumb_func_start MOD11_02235FCC MOD11_02235FCC: ; 0x02235FCC push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] mov r0, #0 add r6, r1, #0 mvn r0, r0 str r0, [sp, #8] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 mov ip, r0 ldr r1, [r6, #0x64] mov r0, #0xc0 mul r0, r1 str r0, [sp, #4] add r3, r6, r0 ldr r0, _022360DC ; =0x00002DB0 ldr r1, [r3, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r1 bne _0223601E ldr r0, [r6, #0x6c] lsl r0, r0, #1 add r1, r6, r0 ldr r0, _022360E0 ; =0x000030AC ldrh r7, [r1, r0] cmp r7, #0xa5 beq _0223601E cmp r7, #0xa6 beq _0223601E mov r0, #7 lsl r0, r0, #6 cmp r7, r0 beq _0223601E cmp r7, #0 bne _02236028 _0223601E: add r0, r6, #0 mov r1, ip bl MOD11_0223A424 b _022360D6 _02236028: mov r0, #0 add r1, r3, #0 add r2, r0, #0 _0223602E: ldr r4, _022360E4 ; =0x00002D4C ldrh r4, [r1, r4] cmp r4, #0xa6 beq _02236040 ldr r4, _022360E4 ; =0x00002D4C add r5, r3, r2 ldrh r4, [r5, r4] cmp r7, r4 beq _02236060 _02236040: ldr r4, _022360E4 ; =0x00002D4C add r5, r3, r2 ldrh r4, [r5, r4] cmp r4, #0xa6 bne _02236056 mov r5, #0 ldr r4, [sp, #8] mvn r5, r5 cmp r4, r5 bne _02236056 str r0, [sp, #8] _02236056: add r0, r0, #1 add r1, r1, #2 add r2, r2, #2 cmp r0, #4 blt _0223602E _02236060: cmp r0, #4 bne _022360CE ldr r0, [sp, #4] add r1, r6, r0 ldr r0, [sp, #8] lsl r0, r0, #1 add r1, r1, r0 ldr r0, _022360E4 ; =0x00002D4C strh r7, [r1, r0] ldr r1, [r6, #0x6c] ldr r3, [r6, #0x64] lsl r1, r1, #1 add r2, r6, r1 ldr r1, _022360E0 ; =0x000030AC add r0, #0x20 ldrh r1, [r2, r1] lsl r1, r1, #4 add r2, r6, r1 mov r1, #0xf9 lsl r1, r1, #2 ldrb r1, [r2, r1] mov r2, #0xc0 mul r2, r3 add r3, r6, r2 ldr r2, [sp, #8] add r2, r3, r2 strb r1, [r2, r0] ldr r0, [sp] ldr r2, [r6, #0x64] add r1, r6, #0 bl MOD11_02256150 ldr r0, [r6, #0x6c] lsl r0, r0, #1 add r1, r6, r0 ldr r0, _022360E0 ; =0x000030AC ldrh r1, [r1, r0] mov r0, #0x49 lsl r0, r0, #2 str r1, [r6, r0] ldr r1, [r6, r0] add r0, #0x5f cmp r1, r0 bne _022360D6 ldr r0, _022360E8 ; =0x00002DCC ldr r1, [r6, #0x64] add r3, r6, r0 mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] ldr r0, _022360EC ; =0xFFFFE3FF and r0, r1 str r0, [r3, r2] b _022360D6 _022360CE: add r0, r6, #0 mov r1, ip bl MOD11_0223A424 _022360D6: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _022360DC: .word 0x00002DB0 _022360E0: .word 0x000030AC _022360E4: .word 0x00002D4C _022360E8: .word 0x00002DCC _022360EC: .word 0xFFFFE3FF thumb_func_start MOD11_022360F0 MOD11_022360F0: ; 0x022360F0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 str r0, [sp, #4] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 mov r7, #0 str r0, [sp, #8] add r6, r7, #0 add r4, r7, #0 _0223610E: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r0, r5, r0 add r1, r4, r0 ldr r0, _022361B8 ; =0x00002D4C ldrh r0, [r1, r0] bl MOD11_02246BE8 cmp r0, #0 bne _0223614E ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r0, r5, r0 add r1, r4, r0 ldr r0, _022361B8 ; =0x00002D4C ldrh r1, [r1, r0] mov r0, #0x42 lsl r0, r0, #2 cmp r1, r0 beq _0223614E cmp r1, #0xfd beq _0223614E add r0, #0xb8 cmp r1, r0 beq _0223614E add r0, r5, #0 bl MOD11_02246AF8 cmp r0, #0 beq _02236156 _0223614E: add r0, r6, #0 bl FUN_0206A92C orr r7, r0 _02236156: add r6, r6, #1 add r4, r4, #2 cmp r6, #4 blt _0223610E mov r0, #2 mvn r0, r0 str r0, [sp] ldr r0, [sp, #4] ldr r2, [r5, #0x64] add r1, r5, #0 add r3, r7, #0 bl MOD11_02245D38 add r4, r0, #0 cmp r4, #0xf bne _02236180 ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_0223A424 b _022361B0 _02236180: mov r7, #0x1e _02236182: bl FUN_0201B9EC lsr r1, r0, #0x1f lsl r0, r0, #0x1e sub r0, r0, r1 ror r0, r7 add r6, r1, r0 add r0, r6, #0 bl FUN_0206A92C tst r0, r4 bne _02236182 ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 add r2, r5, r2 lsl r0, r6, #1 add r2, r2, r0 ldr r0, _022361B8 ; =0x00002D4C add r1, #0x64 ldrh r0, [r2, r0] str r0, [r5, r1] _022361B0: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _022361B8: .word 0x00002D4C thumb_func_start MOD11_022361BC MOD11_022361BC: ; 0x022361BC push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _02236200 ; =0x00002D8C add r2, r4, r0 ldr r0, [r2, r1] add r1, r1, #4 ldr r1, [r2, r1] mov r2, #0x40 bl FUN_02079A0C ldr r3, _02236204 ; =0x0225DC3C mov r2, #0 _022361E2: ldrb r1, [r3] cmp r0, r1 ble _022361F0 add r2, r2, #1 add r3, r3, #2 cmp r2, #6 blo _022361E2 _022361F0: ldr r0, _02236208 ; =0x0225DC3D lsl r1, r2, #1 ldrb r1, [r0, r1] ldr r0, _0223620C ; =0x00002154 str r1, [r4, r0] mov r0, #0 pop {r4, pc} nop _02236200: .word 0x00002D8C _02236204: .word 0x0225DC3C _02236208: .word 0x0225DC3D _0223620C: .word 0x00002154 thumb_func_start MOD11_02236210 MOD11_02236210: ; 0x02236210 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 ldr r2, [r5, #0x6c] add r4, r0, #0 lsl r0, r2, #1 add r1, r5, r0 ldr r0, _022362AC ; =0x0000307C ldrh r1, [r1, r0] cmp r1, #0 beq _0223629E mov r0, #0xb5 lsl r0, r0, #6 mov r3, #0xc0 add r0, r5, r0 mul r3, r2 add r0, r0, r3 bl MOD11_022461AC add r2, r0, #0 cmp r2, #4 beq _0223625C ldr r0, [r5, #0x6c] mov r1, #0xc0 mul r1, r0 add r1, r5, r1 add r3, r1, r2 ldr r1, _022362B0 ; =0x00002D6C ldrb r3, [r3, r1] cmp r3, #0 bne _02236266 _0223625C: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 b _022362A6 _02236266: mov r1, #4 cmp r3, #4 bge _0223626E add r1, r3, #0 _0223626E: lsl r0, r0, #1 add r3, r5, r0 ldr r0, _022362AC ; =0x0000307C ldrh r3, [r3, r0] mov r0, #0x49 lsl r0, r0, #2 str r3, [r5, r0] add r0, #0xc str r1, [r5, r0] ldr r0, _022362B0 ; =0x00002D6C ldr r4, [r5, #0x6c] mov r3, #0xc0 add r0, r5, r0 mul r3, r4 add r3, r0, r3 ldrb r0, [r3, r2] sub r0, r0, r1 strb r0, [r3, r2] ldr r2, [r5, #0x6c] add r0, r6, #0 add r1, r5, #0 bl MOD11_02245190 b _022362A6 _0223629E: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 _022362A6: mov r0, #0 pop {r4, r5, r6, pc} nop _022362AC: .word 0x0000307C _022362B0: .word 0x00002D6C thumb_func_start MOD11_022362B4 MOD11_022362B4: ; 0x022362B4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 bl MOD11_0222FF74 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 mov r1, #0x4d mov r0, #0 lsl r1, r1, #2 ldr r2, _022363F4 ; =0x00003044 str r0, [r5, r1] ldr r2, [r5, r2] cmp r2, #0xd7 bne _02236382 sub r1, #0x10 str r2, [r5, r1] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x2b beq _0223630A ldr r2, [r5, #0x64] mov r0, #0xc0 add r3, r2, #0 mul r3, r0 ldr r2, _022363F8 ; =0x00002DAC mov r1, #0 add r3, r5, r3 str r1, [r3, r2] add r1, r2, #4 ldr r2, [r5, #0x64] add r1, r5, r1 mul r0, r2 ldr r3, [r1, r0] ldr r2, _022363FC ; =0xF7FFFFFF and r2, r3 str r2, [r1, r0] b _02236316 _0223630A: mov r1, #0x4d lsl r1, r1, #2 ldr r2, [r5, r1] mov r0, #5 orr r0, r2 str r0, [r5, r1] _02236316: mov r0, #2 tst r0, r4 beq _02236374 add r0, r7, #0 add r1, r5, #0 mov r2, #0x10 bl MOD11_0223C230 add r4, r0, #0 bl FUN_0206A92C ldr r1, _02236400 ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _022363E2 ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 mov r3, #0x2b bl MOD11_02246D84 cmp r0, #0 bne _0223635E mov r0, #0xc0 mul r0, r4 ldr r1, _022363F8 ; =0x00002DAC mov r3, #0 add r2, r5, r0 str r3, [r2, r1] add r1, r1, #4 add r3, r5, r1 ldr r2, [r3, r0] ldr r1, _022363FC ; =0xF7FFFFFF and r1, r2 str r1, [r3, r0] b _022363E2 _0223635E: mov r1, #0x46 lsl r1, r1, #2 add r0, r1, #0 str r4, [r5, r1] add r0, #0x1c ldr r2, [r5, r0] mov r0, #0xa orr r0, r2 add r1, #0x1c str r0, [r5, r1] b _022363E2 _02236374: mov r1, #0x4d lsl r1, r1, #2 ldr r2, [r5, r1] mov r0, #8 orr r0, r2 str r0, [r5, r1] b _022363E2 _02236382: ldr r3, [r5, #0x64] mov r2, #0xc0 mul r2, r3 add r3, r5, r2 ldr r2, _022363F8 ; =0x00002DAC str r0, [r3, r2] add r0, r2, #4 add r6, r5, r0 ldr r0, [r5, #0x64] mov r2, #0xc0 add r3, r0, #0 mul r3, r2 ldr r2, [r6, r3] ldr r0, _022363FC ; =0xF7FFFFFF and r0, r2 str r0, [r6, r3] mov r0, #2 tst r0, r4 beq _022363DA add r0, r7, #0 add r1, r5, #0 mov r2, #0x10 bl MOD11_0223C230 add r4, r0, #0 bl FUN_0206A92C ldr r1, _02236400 ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _022363E2 mov r0, #0xc0 mul r0, r4 ldr r1, _022363F8 ; =0x00002DAC mov r3, #0 add r2, r5, r0 str r3, [r2, r1] add r1, r1, #4 add r3, r5, r1 ldr r2, [r3, r0] ldr r1, _022363FC ; =0xF7FFFFFF and r1, r2 str r1, [r3, r0] b _022363E2 _022363DA: ldr r2, [r5, r1] mov r0, #8 orr r0, r2 str r0, [r5, r1] _022363E2: ldr r3, _022363F4 ; =0x00003044 ldr r2, [r5, #0x64] ldr r3, [r5, r3] add r0, r7, #0 add r1, r5, #0 bl MOD11_02256284 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022363F4: .word 0x00003044 _022363F8: .word 0x00002DAC _022363FC: .word 0xF7FFFFFF _02236400: .word 0x00003108 thumb_func_start MOD11_02236404 MOD11_02236404: ; 0x02236404 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r5, #0 bl MOD11_0222FF74 str r0, [sp, #4] ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 add r7, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 cmp r0, #0 beq _02236454 ldr r0, [sp, #4] mov r1, #0x84 tst r0, r1 bne _02236454 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _022364EC _02236454: ldr r0, [r4, #0x64] add r1, r4, r0 ldr r0, _022364F4 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C lsl r1, r7, #3 add r2, r4, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 beq _0223647C add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _022364EC _0223647C: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x79 beq _02236494 ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x79 bne _0223649E _02236494: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _022364EC _0223649E: ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _022364F8 ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 beq _022364C6 ldr r1, [r4, #0x64] add r0, r4, #0 mov r3, #0x3c bl MOD11_02246D84 cmp r0, #1 bne _022364C6 ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 b _022364EC _022364C6: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _022364F8 ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 bne _022364E4 ldr r2, [r4, #0x6c] add r0, r5, #0 add r1, r4, #0 bl MOD11_02246C50 cmp r0, #0 bne _022364EC _022364E4: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _022364EC: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _022364F4: .word 0x0000219C _022364F8: .word 0x00002DB8 thumb_func_start MOD11_022364FC MOD11_022364FC: ; 0x022364FC push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 ldr r1, [r6, #0x64] str r0, [sp, #8] lsl r0, r1, #1 add r2, r6, r0 ldr r0, _02236640 ; =0x0000305C ldrh r0, [r2, r0] cmp r0, #0xb6 beq _0223653C cmp r0, #0xc5 beq _0223653C cmp r0, #0xcb beq _0223653C ldr r0, _02236644 ; =0x00002DC8 add r3, r1, #0 mov r2, #0xc0 add r0, r6, r0 mul r3, r2 ldr r2, [r0, r3] ldr r1, _02236648 ; =0xFFFFE7FF and r1, r2 str r1, [r0, r3] _0223653C: ldr r0, [sp] mov r7, #0 add r4, r7, #0 bl MOD11_0222FF84 cmp r0, #0 ble _02236564 add r5, r6, #0 _0223654C: ldr r0, _0223664C ; =0x000021A8 ldr r0, [r5, r0] cmp r0, #0x27 beq _02236556 add r7, r7, #1 _02236556: ldr r0, [sp] add r5, #0x10 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _0223654C _02236564: cmp r7, #1 beq _0223656E mov r0, #1 str r0, [sp, #4] b _02236572 _0223656E: mov r0, #0 str r0, [sp, #4] _02236572: ldr r7, [r6, #0x64] ldr r0, _02236644 ; =0x00002DC8 add r5, r7, #0 add r4, r6, r0 mov r0, #0xc0 mul r5, r0 bl FUN_0201B9EC ldr r1, [r4, r5] lsl r1, r1, #0x13 lsr r1, r1, #0x1e lsl r2, r1, #1 ldr r1, _02236650 ; =0x0225DC34 ldrh r1, [r1, r2] cmp r1, r0 blo _02236628 ldr r0, [sp, #4] cmp r0, #0 beq _02236628 ldr r0, _02236654 ; =0x00003044 ldr r0, [r6, r0] lsl r0, r0, #4 add r1, r6, r0 ldr r0, _02236658 ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x6f bne _022365C0 mov r2, #0x75 lsl r2, r2, #2 add r0, r6, r2 lsl r4, r7, #6 ldr r3, [r0, r4] mov r1, #4 orr r1, r3 str r1, [r0, r4] add r0, r6, #0 sub r2, #0xba add r0, #0xf6 strh r2, [r0] _022365C0: ldr r0, _02236654 ; =0x00003044 ldr r0, [r6, r0] lsl r0, r0, #4 add r1, r6, r0 ldr r0, _02236658 ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x74 bne _022365EC mov r2, #0x75 ldr r1, [r6, #0x64] lsl r2, r2, #2 lsl r4, r1, #6 add r0, r6, r2 add r1, r2, #0 ldr r3, [r0, r4] add r1, #0x2c orr r1, r3 str r1, [r0, r4] add r0, r6, #0 sub r2, #0x1a add r0, #0xf6 strh r2, [r0] _022365EC: add r0, r6, #0 mov r1, #2 add r0, #0xf5 strb r1, [r0] ldr r1, [r6, #0x64] add r0, r6, #0 bl MOD11_0224682C add r1, r6, #0 add r1, #0xf8 str r0, [r1] ldr r2, [r6, #0x64] mov r0, #0xc0 add r1, r2, #0 mul r1, r0 ldr r0, _02236644 ; =0x00002DC8 add r0, r6, r0 ldr r3, [r0, r1] lsl r2, r3, #0x13 lsr r4, r2, #0x1e cmp r4, #3 bhs _02236638 ldr r2, _02236648 ; =0xFFFFE7FF and r3, r2 add r2, r4, #1 lsl r2, r2, #0x1e lsr r2, r2, #0x13 orr r2, r3 str r2, [r0, r1] b _02236638 _02236628: ldr r1, [r4, r5] ldr r0, _02236648 ; =0xFFFFE7FF and r0, r1 str r0, [r4, r5] ldr r1, [sp, #8] add r0, r6, #0 bl MOD11_0223A424 _02236638: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02236640: .word 0x0000305C _02236644: .word 0x00002DC8 _02236648: .word 0xFFFFE7FF _0223664C: .word 0x000021A8 _02236650: .word 0x0225DC34 _02236654: .word 0x00003044 _02236658: .word 0x000003DE thumb_func_start MOD11_0223665C MOD11_0223665C: ; 0x0223665C push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022366C8 ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, [r5, #0x64] mov r2, #0xc0 add r3, r1, #0 mul r3, r2 add r1, r5, r3 ldr r3, _022366CC ; =0x00002D8C ldr r1, [r1, r3] cmp r1, r0 bgt _0223669E add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 b _022366C2 _0223669E: ldr r1, _022366D0 ; =0x0000215C neg r4, r0 str r4, [r5, r1] ldr r1, [r5, #0x64] add r4, r1, #0 add r1, r3, #0 mul r4, r2 add r3, #0x24 add r4, r5, r4 add r1, #0x54 str r0, [r4, r1] ldr r0, [r5, #0x64] add r3, r5, r3 mul r2, r0 ldr r1, [r3, r2] ldr r0, _022366D4 ; =0xFFFF1FFF and r0, r1 str r0, [r3, r2] _022366C2: mov r0, #0 pop {r3, r4, r5, pc} nop _022366C8: .word 0x00002D90 _022366CC: .word 0x00002D8C _022366D0: .word 0x0000215C _022366D4: .word 0xFFFF1FFF thumb_func_start MOD11_022366D8 MOD11_022366D8: ; 0x022366D8 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 str r1, [sp] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [sp] bl MOD11_0223A404 str r0, [sp, #0x18] add r0, r5, #0 bl MOD11_0222FF74 add r4, r0, #0 mov r0, #1 tst r0, r4 bne _02236700 b _0223684E _02236700: ldr r1, [sp] add r0, r5, #0 ldr r1, [r1, #0x6c] mov r7, #0 bl MOD11_0222FF88 ldr r1, [sp] str r0, [sp, #0x14] ldr r1, [r1, #0x6c] add r0, r5, #0 bl MOD11_0222FFC8 add r6, r0, #0 mov r0, #8 tst r0, r4 bne _02236734 mov r0, #0x10 tst r0, r4 beq _0223674C ldr r1, [sp] add r0, r5, #0 ldr r1, [r1, #0x6c] bl MOD11_02230270 cmp r0, #0 beq _0223674C _02236734: mov r0, #0 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, [sp] ldr r1, [r0, #0x6c] add r1, r0, r1 ldr r0, _02236868 ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #8] str r0, [sp, #4] b _0223678C _0223674C: mov r0, #2 str r0, [sp, #0x10] tst r0, r4 beq _02236776 mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp] ldr r1, [r0, #0x6c] add r2, r0, r1 ldr r0, _02236868 ; =0x0000219C ldrb r0, [r2, r0] str r0, [sp, #8] add r0, r5, #0 bl MOD11_022302BC ldr r1, [sp] add r1, r1, r0 ldr r0, _02236868 ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #4] b _0223678C _02236776: mov r0, #0 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, [sp] ldr r1, [r0, #0x6c] add r1, r0, r1 ldr r0, _02236868 ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #8] str r0, [sp, #4] _0223678C: ldr r5, [sp, #0xc] add r0, r5, #0 cmp r0, r6 bge _022367CE _02236794: ldr r0, [sp, #0x14] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _022367C8 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _022367C8 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022367C8 add r7, r7, #1 _022367C8: add r5, r5, #1 cmp r5, r6 blt _02236794 _022367CE: ldr r0, [sp, #0x10] cmp r7, r0 bgt _022367DE ldr r0, [sp] ldr r1, [sp, #0x18] bl MOD11_0223A424 b _02236860 _022367DE: ldr r0, [sp] bl MOD11_02246CCC cmp r0, #0 beq _02236844 mov r7, #5 _022367EA: bl FUN_0201B9EC add r1, r6, #0 bl _s32_div_f ldr r0, [sp, #0xc] add r5, r1, #0 add r5, r5, r0 ldr r0, [sp, #8] cmp r5, r0 beq _022367EA ldr r0, [sp, #4] cmp r5, r0 beq _022367EA ldr r0, [sp, #0x14] add r1, r5, #0 bl FUN_0206B9B0 add r1, r7, #0 mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _022367EA add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #1 beq _022367EA add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022367EA ldr r0, [sp] ldr r1, [r0, #0x6c] add r1, r0, r1 ldr r0, _0223686C ; =0x000021A0 strb r5, [r1, r0] b _02236860 _02236844: ldr r0, [sp] ldr r1, [sp, #0x18] bl MOD11_0223A424 b _02236860 _0223684E: ldr r0, [sp] bl MOD11_02246CCC cmp r0, #0 bne _02236860 ldr r0, [sp] ldr r1, [sp, #0x18] bl MOD11_0223A424 _02236860: mov r0, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _02236868: .word 0x0000219C _0223686C: .word 0x000021A0 thumb_func_start MOD11_02236870 MOD11_02236870: ; 0x02236870 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r5, [r4, #0x64] ldr r1, _02236A40 ; =0x00002DB0 add r0, r5, #0 mov r2, #0xc0 mov r5, #2 add r3, r4, r1 mul r0, r2 ldr r6, [r3, r0] lsl r5, r5, #0x14 orr r5, r6 str r5, [r3, r0] ldr r3, [r4, #0x64] mov r0, #0 add r5, r3, #0 mul r5, r2 add r3, r1, #0 add r5, r4, r5 add r3, #0x38 strh r0, [r5, r3] add r3, r1, #0 add r3, #0x18 ldr r6, [r4, #0x64] add r5, r4, r3 add r3, r6, #0 mul r3, r2 ldr r7, [r5, r3] mov r6, #7 bic r7, r6 str r7, [r5, r3] ldr r3, [r4, #0x6c] add r5, r3, #0 mul r5, r2 add r3, r1, #0 add r5, r4, r5 sub r3, #8 ldr r3, [r5, r3] ldr r5, [r4, #0x64] add r6, r5, #0 mul r6, r2 add r5, r1, #0 add r6, r4, r6 add r5, #0x34 str r3, [r6, r5] ldr r3, [r4, #0x6c] add r5, r3, #0 mul r5, r2 add r3, r1, #0 add r5, r4, r5 add r3, #0xe ldrb r3, [r5, r3] ldr r5, [r4, #0x64] add r6, r5, #0 lsl r3, r3, #0x1c mul r6, r2 add r5, r1, #0 lsr r3, r3, #0x1c add r6, r4, r6 add r5, #0x4a strh r3, [r6, r5] add r3, r1, #0 add r3, #0x1c ldr r6, [r4, #0x64] add r5, r4, r3 add r3, r6, #0 mul r3, r2 ldr r7, [r5, r3] mov r6, #0x3c bic r7, r6 str r7, [r5, r3] ldr r6, [r4, #0x64] sub r1, #0x70 add r3, r6, #0 mul r3, r2 ldr r7, [r5, r3] ldr r6, _02236A44 ; =0xFFFFE3FF and r6, r7 str r6, [r5, r3] add r5, r4, r1 ldr r1, [r4, #0x64] add r3, r1, #0 mul r3, r2 ldr r1, [r4, #0x6c] add r3, r5, r3 mul r2, r1 add r2, r5, r2 _02236926: ldrb r1, [r2, r0] strb r1, [r3, r0] add r0, r0, #1 cmp r0, #0x28 blo _02236926 ldr r3, [r4, #0x64] ldr r1, _02236A48 ; =0x00002D68 add r6, r3, #0 mov r2, #0xc0 add r0, r4, r1 mul r6, r2 ldr r5, [r0, r6] mov r3, #1 bic r5, r3 str r5, [r0, r6] ldr r3, [r4, #0x64] add r6, r3, #0 mul r6, r2 ldr r5, [r0, r6] mov r3, #2 bic r5, r3 str r5, [r0, r6] ldr r3, [r4, #0x64] add r6, r3, #0 mul r6, r2 ldr r5, [r0, r6] mov r3, #4 bic r5, r3 str r5, [r0, r6] ldr r3, [r4, #0x64] add r6, r3, #0 mul r6, r2 ldr r5, [r0, r6] mov r3, #8 bic r5, r3 str r5, [r0, r6] ldr r3, [r4, #0x64] add r6, r3, #0 mul r6, r2 ldr r5, [r0, r6] mov r3, #0x10 bic r5, r3 str r5, [r0, r6] ldr r3, [r4, #0x64] add r6, r3, #0 mul r6, r2 ldr r5, [r0, r6] mov r3, #0x20 bic r5, r3 str r5, [r0, r6] ldr r5, [r4, #0x64] add r3, r5, #0 mul r3, r2 ldr r6, [r0, r3] ldr r5, _02236A4C ; =0xFFFFFEFF and r5, r6 str r5, [r0, r3] ldr r5, [r4, #0x64] add r3, r5, #0 mul r3, r2 ldr r6, [r0, r3] ldr r5, _02236A50 ; =0xFFFFFDFF and r5, r6 str r5, [r0, r3] ldr r5, [r4, #0x64] add r3, r5, #0 mul r3, r2 ldr r6, [r0, r3] ldr r5, _02236A54 ; =0xFFFFFBFF and r5, r6 str r5, [r0, r3] add r3, r1, #0 add r3, #0x60 add r6, r4, r3 ldr r3, [r4, #0x64] add r1, #0x70 add r5, r3, #0 mul r5, r2 ldr r7, [r6, r5] ldr r3, _02236A58 ; =0xBFFFFFFF and r3, r7 add r7, r2, #0 add r7, #0x90 ldr r7, [r4, r7] lsl r7, r7, #0x1f lsr r7, r7, #1 orr r3, r7 str r3, [r6, r5] add r3, r2, #0 add r3, #0x90 ldr r3, [r4, r3] add r6, r3, #1 ldr r3, [r4, #0x64] add r5, r3, #0 mul r5, r2 add r3, r4, r5 str r6, [r3, r1] ldr r1, [r4, #0x64] add r5, r1, #0 mul r5, r2 ldr r3, [r0, r5] mov r1, #0x40 bic r3, r1 str r3, [r0, r5] ldr r1, [r4, #0x64] mov r6, #0 add r3, r1, #0 mul r3, r2 ldr r2, [r0, r3] mov r1, #0x80 bic r2, r1 str r2, [r0, r3] mov r0, #0xf9 add r5, r6, #0 mov r1, #5 lsl r0, r0, #2 _02236A0E: ldr r3, [r4, #0x64] mov r2, #0xc0 mul r2, r3 add r3, r4, r2 ldr r2, _02236A5C ; =0x00002D4C add r7, r3, r5 ldrh r2, [r7, r2] lsl r2, r2, #4 add r2, r4, r2 ldrb r2, [r2, r0] cmp r2, #5 bhs _02236A2E add r7, r3, r6 ldr r3, _02236A60 ; =0x00002D6C strb r2, [r7, r3] b _02236A34 _02236A2E: ldr r2, _02236A60 ; =0x00002D6C add r3, r3, r6 strb r1, [r3, r2] _02236A34: add r6, r6, #1 add r5, r5, #2 cmp r6, #4 blt _02236A0E mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02236A40: .word 0x00002DB0 _02236A44: .word 0xFFFFE3FF _02236A48: .word 0x00002D68 _02236A4C: .word 0xFFFFFEFF _02236A50: .word 0xFFFFFDFF _02236A54: .word 0xFFFFFBFF _02236A58: .word 0xBFFFFFFF _02236A5C: .word 0x00002D4C _02236A60: .word 0x00002D6C thumb_func_start MOD11_02236A64 MOD11_02236A64: ; 0x02236A64 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 mov r2, #0x72 mov r1, #1 add r3, r0, #0 eor r3, r1 lsl r0, r3, #3 add r5, r4, r0 lsl r2, r2, #2 ldr r5, [r5, r2] lsl r5, r5, #0x1e lsr r5, r5, #0x1e cmp r5, #3 bne _02236ABA mov r0, #0xb5 lsl r0, r0, #2 add r2, r4, r0 ldr r3, [r4, #0x64] mov r0, #0x1c mul r0, r3 ldr r5, [r2, r0] mov r3, #1 bic r5, r3 orr r1, r5 str r1, [r2, r0] add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _02236AE2 _02236ABA: add r1, r2, #0 sub r1, #0xc lsl r6, r3, #2 add r1, r4, r1 ldr r5, [r1, r6] mov r3, #4 orr r3, r5 str r3, [r1, r6] add r2, r4, r2 ldr r4, [r2, r0] mov r3, #3 add r1, r4, #0 bic r1, r3 lsl r3, r4, #0x1e lsr r3, r3, #0x1e add r4, r3, #1 mov r3, #3 and r3, r4 orr r1, r3 str r1, [r2, r0] _02236AE2: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02236AE8 MOD11_02236AE8: ; 0x02236AE8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 bl MOD11_02230270 lsl r0, r0, #3 add r1, r5, r0 mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1e lsr r1, r0, #0x1e beq _02236B56 mov r0, #0xc0 mul r0, r4 ldr r4, _02236B64 ; =0x00002D8C add r0, r5, r0 ldr r2, [r0, r4] cmp r2, #0 beq _02236B56 mov r2, #5 sub r1, r2, r1 ldr r3, _02236B68 ; =0x0000215C lsl r1, r1, #1 str r1, [r5, r3] add r1, r4, #4 ldr r1, [r0, r1] sub r0, r2, #6 mul r0, r1 ldr r1, [r5, r3] bl MOD11_022476C0 ldr r1, _02236B68 ; =0x0000215C str r0, [r5, r1] b _02236B5E _02236B56: add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 _02236B5E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02236B64: .word 0x00002D8C _02236B68: .word 0x0000215C thumb_func_start MOD11_02236B6C MOD11_02236B6C: ; 0x02236B6C push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 str r1, [sp] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [sp] bl MOD11_0223A404 str r0, [sp, #8] add r0, r4, #0 bl MOD11_0222FF84 mov r2, #0x4d mov r7, #0 str r0, [sp, #4] add r1, r0, #0 ldr r0, [sp] lsl r2, r2, #2 str r1, [r0, r2] ldr r0, [sp, #4] add r6, r7, #0 cmp r0, #0 ble _02236BFC ldr r4, [sp] ldr r1, _02236C10 ; =0x00002DC8 add r0, r4, #0 add r5, r0, r1 _02236BA8: mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x20 tst r0, r1 bne _02236BCE ldr r0, _02236C14 ; =0x00002D8C ldr r0, [r4, r0] cmp r0, #0 beq _02236BCE ldr r0, [sp] add r2, r6, #0 add r1, r0, #0 ldr r1, [r1, #0x64] mov r3, #0x2b bl MOD11_02246D84 cmp r0, #1 bne _02236BD2 _02236BCE: add r7, r7, #1 b _02236BF0 _02236BD2: mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x20 orr r1, r0 mov r0, #0xb7 lsl r0, r0, #6 str r1, [r4, r0] ldr r1, [r5] ldr r0, _02236C18 ; =0xFFFF9FFF and r1, r0 mov r0, #6 lsl r0, r0, #0xc orr r0, r1 str r0, [r5] _02236BF0: ldr r0, [sp, #4] add r6, r6, #1 add r4, #0xc0 add r5, #0xc0 cmp r6, r0 blt _02236BA8 _02236BFC: ldr r0, [sp, #4] cmp r7, r0 bne _02236C0A ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_0223A424 _02236C0A: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02236C10: .word 0x00002DC8 _02236C14: .word 0x00002D8C _02236C18: .word 0xFFFF9FFF thumb_func_start MOD11_02236C1C MOD11_02236C1C: ; 0x02236C1C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A444 ldr r1, _02236C4C ; =0x00003104 ldr r1, [r4, r1] add r2, r4, r1 ldr r1, _02236C50 ; =0x000021EC ldrb r1, [r2, r1] str r1, [r0] mov r0, #0 pop {r3, r4, r5, pc} nop _02236C4C: .word 0x00003104 _02236C50: .word 0x000021EC thumb_func_start MOD11_02236C54 MOD11_02236C54: ; 0x02236C54 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223A444 add r6, r0, #0 add r0, r5, #0 bl MOD11_0222FF84 ldr r1, [r6] cmp r1, r0 bhs _02236C92 add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 _02236C92: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02236C98 MOD11_02236C98: ; 0x02236C98 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r6, #0 add r1, r5, #0 bl MOD11_0223C230 add r4, r0, #0 mov r0, #0x4e mov r3, #0 lsl r0, r0, #2 str r3, [r5, r0] ldr r0, _02236F40 ; =0x0000215C add r1, r4, #0 str r3, [r5, r0] add r0, r5, #0 mov r2, #0x1b bl MOD11_02243420 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 add r7, r0, #0 mov r0, #0xd str r0, [sp] add r0, r6, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _02236D08 mov r0, #0x4c str r0, [sp] add r0, r6, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 beq _02236D0A _02236D08: b _02236F38 _02236D0A: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0xc tst r0, r1 beq _02236D74 ldr r0, [sp, #4] cmp r0, #5 beq _02236D74 cmp r7, #5 beq _02236D74 cmp r0, #8 beq _02236D74 cmp r7, #8 beq _02236D74 cmp r0, #4 beq _02236D74 cmp r7, #4 beq _02236D74 mov r0, #0xc0 add r6, r4, #0 mul r6, r0 ldr r0, _02236F44 ; =0x00002D8C add r1, r5, r6 ldr r0, [r1, r0] cmp r0, #0 beq _02236D74 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #8 beq _02236D74 mov r3, #0xb7 add r1, r5, r6 lsl r3, r3, #6 ldr r2, [r1, r3] ldr r0, _02236F48 ; =0x00040080 tst r0, r2 bne _02236D74 mov r0, #0xc9 add r2, r0, #0 add r2, #0x5b str r0, [r5, r2] sub r3, #0x30 ldr r1, [r1, r3] sub r0, #0xca mul r0, r1 mov r1, #0x10 bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] _02236D74: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0x30 tst r0, r1 beq _02236DDC mov r0, #0xc0 add r6, r4, #0 mul r6, r0 ldr r0, _02236F44 ; =0x00002D8C add r2, r5, r6 ldr r1, [r2, r0] cmp r1, #0 beq _02236DDC add r0, #0x34 ldr r1, [r2, r0] ldr r0, _02236F48 ; =0x00040080 tst r0, r1 bne _02236DDC add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x57 beq _02236DB2 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x5e bne _02236DC8 _02236DB2: ldr r0, _02236F4C ; =0x00002D90 add r1, r5, r6 ldr r1, [r1, r0] mov r0, #0 mvn r0, r0 mul r0, r1 mov r1, #8 bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] _02236DC8: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x5e bne _02236DDC mov r0, #0x4e mov r1, #2 lsl r0, r0, #2 str r1, [r5, r0] _02236DDC: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0xc0 tst r1, r0 beq _02236E5E ldr r1, _02236F44 ; =0x00002D8C add r6, r4, #0 mul r6, r0 add r0, r5, r1 str r0, [sp, #8] ldr r0, [r0, r6] cmp r0, #0 beq _02236E5E add r0, r5, r6 add r1, #0x34 ldr r1, [r0, r1] ldr r0, _02236F48 ; =0x00040080 tst r0, r1 bne _02236E5E add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x73 bne _02236E2A ldr r0, _02236F4C ; =0x00002D90 add r1, r5, r6 ldr r0, [r1, r0] ldr r1, [sp, #8] ldr r1, [r1, r6] cmp r1, r0 bhs _02236E5E mov r1, #0x10 bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] b _02236E5E _02236E2A: ldr r0, [sp, #4] cmp r0, #0xf beq _02236E5E cmp r7, #0xf beq _02236E5E add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x51 beq _02236E5E ldr r1, _02236F50 ; =0x00000102 add r0, r1, #0 add r0, #0x22 str r1, [r5, r0] ldr r0, _02236F4C ; =0x00002D90 add r1, r5, r6 ldr r1, [r1, r0] mov r0, #0 mvn r0, r0 mul r0, r1 mov r1, #0x10 bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] _02236E5E: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #3 tst r0, r1 beq _02236F38 ldr r1, _02236F44 ; =0x00002D8C mov r0, #0xc0 add r6, r4, #0 mul r6, r0 add r7, r5, r1 ldr r0, [r7, r6] cmp r0, #0 beq _02236EA0 add r1, r1, #4 add r1, r5, r1 str r1, [sp, #0xc] ldr r1, [r1, r6] cmp r0, r1 bhs _02236EA0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x2c bne _02236EA0 ldr r0, [sp, #0xc] mov r1, #0x10 ldr r0, [r0, r6] bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] _02236EA0: ldr r0, [r7, r6] cmp r0, #0 beq _02236ECC ldr r1, _02236F4C ; =0x00002D90 add r1, r5, r1 str r1, [sp, #0x10] ldr r1, [r1, r6] cmp r0, r1 bhs _02236ECC add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x57 bne _02236ECC ldr r0, [sp, #0x10] mov r1, #8 ldr r0, [r0, r6] bl MOD11_022476C0 ldr r1, _02236F40 ; =0x0000215C str r0, [r5, r1] _02236ECC: ldr r0, [r7, r6] cmp r0, #0 beq _02236F38 ldr r0, _02236F54 ; =0x00002DAC add r7, r5, r0 ldr r0, [r7, r6] lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _02236F38 add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x5d bne _02236F38 ldr r0, [r7, r6] mov r1, #7 tst r1, r0 beq _02236EFC mov r0, #0x13 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] b _02236F30 _02236EFC: ldr r1, _02236F58 ; =0x00000F88 tst r1, r0 beq _02236F0C mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r5, r0] b _02236F30 _02236F0C: mov r1, #0x10 tst r1, r0 beq _02236F1C mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r5, r0] b _02236F30 _02236F1C: mov r1, #0x40 tst r0, r1 beq _02236F2A mov r0, #3 add r1, #0xf0 str r0, [r5, r1] b _02236F30 _02236F2A: mov r0, #4 add r1, #0xf0 str r0, [r5, r1] _02236F30: mov r0, #0x4e mov r1, #1 lsl r0, r0, #2 str r1, [r5, r0] _02236F38: mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _02236F40: .word 0x0000215C _02236F44: .word 0x00002D8C _02236F48: .word 0x00040080 _02236F4C: .word 0x00002D90 _02236F50: .word 0x00000102 _02236F54: .word 0x00002DAC _02236F58: .word 0x00000F88 thumb_func_start MOD11_02236F5C MOD11_02236F5C: ; 0x02236F5C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r6, [r4, #0x64] mov r0, #0xb5 lsl r0, r0, #2 add r2, r4, r0 mov r0, #0x1c add r1, r6, #0 mul r1, r0 ldr r3, [r2, r1] ldr r0, _0223705C ; =0xFFFFFE3F mov r7, #0xc0 and r0, r3 add r3, r6, #0 mul r3, r7 add r6, r4, r3 ldr r3, _02237060 ; =0x00002DC8 ldr r6, [r6, r3] sub r3, #0x18 lsl r6, r6, #0xe lsr r6, r6, #0x1d lsl r6, r6, #0x1d lsr r6, r6, #0x17 orr r0, r6 str r0, [r2, r1] ldr r2, [r4, #0x64] add r0, r2, #0 mul r0, r7 add r0, r4, r0 ldr r1, [r0, r3] mov r0, #1 lsl r0, r0, #0xc tst r0, r1 bne _02236FCA add r0, r5, #0 add r1, r4, #0 bl MOD11_022451C0 ldr r0, _02237060 ; =0x00002DC8 ldr r2, [r4, #0x64] add r1, r4, r0 add r0, r7, #0 mul r0, r2 ldr r3, [r1, r0] ldr r2, _02237064 ; =0xFFFC7FFF and r3, r2 mov r2, #0xa lsl r2, r2, #0xe orr r2, r3 str r2, [r1, r0] _02236FCA: ldr r1, [r4, #0x64] ldr r0, _02237060 ; =0x00002DC8 mov r7, #0xc0 add r3, r1, #0 add r6, r4, r0 mul r3, r7 ldr r1, [r6, r3] ldr r2, _02237064 ; =0xFFFC7FFF and r2, r1 lsl r1, r1, #0xe lsr r1, r1, #0x1d sub r1, r1, #1 lsl r1, r1, #0x1d lsr r1, r1, #0xe orr r1, r2 str r1, [r6, r3] ldr r2, [r4, #0x64] add r1, r2, #0 mul r1, r7 add r1, r4, r1 ldr r0, [r1, r0] lsl r0, r0, #0xe lsr r0, r0, #0x1d bne _02237002 add r0, r5, #0 add r1, r4, #0 bl MOD11_022451F0 _02237002: ldr r0, _02237068 ; =0x00003044 mov r2, #1 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _0223706C ; =0x000003E1 ldrb r1, [r1, r0] ldr r0, _02237070 ; =0x00002154 str r1, [r4, r0] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02237060 ; =0x00002DC8 ldr r0, [r1, r0] lsl r0, r0, #0xe lsr r1, r0, #0x1d mov r0, #5 sub r3, r0, r1 cmp r3, #1 ble _0223703A ldr r0, _02237070 ; =0x00002154 _0223702E: ldr r1, [r4, r0] add r2, r2, #1 lsl r1, r1, #1 str r1, [r4, r0] cmp r2, r3 blt _0223702E _0223703A: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02237074 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x1e tst r0, r1 beq _02237056 ldr r0, _02237070 ; =0x00002154 ldr r1, [r4, r0] lsl r1, r1, #1 str r1, [r4, r0] _02237056: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _0223705C: .word 0xFFFFFE3F _02237060: .word 0x00002DC8 _02237064: .word 0xFFFC7FFF _02237068: .word 0x00003044 _0223706C: .word 0x000003E1 _02237070: .word 0x00002154 _02237074: .word 0x00002DB0 thumb_func_start MOD11_02237078 MOD11_02237078: ; 0x02237078 push {r4, r5, r6, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r2, [r4, #0x64] mov r0, #0xc0 add r1, r2, #0 mul r1, r0 ldr r0, _022370F4 ; =0x00002DC8 add r0, r4, r0 ldr r3, [r0, r1] lsl r2, r3, #0xb lsr r5, r2, #0x1d cmp r5, #5 bhs _022370A8 ldr r2, _022370F8 ; =0xFFE3FFFF and r3, r2 add r2, r5, #1 lsl r2, r2, #0x1d lsr r2, r2, #0xb orr r2, r3 str r2, [r0, r1] _022370A8: ldr r0, _022370FC ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _02237100 ; =0x000003E1 ldrb r1, [r1, r0] ldr r0, _02237104 ; =0x00002154 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _022370F4 ; =0x00002DC8 mov r0, #1 ldr r1, [r2, r1] lsl r1, r1, #0xb lsr r1, r1, #0x1d cmp r1, #1 bls _022370EE ldr r3, _02237104 ; =0x00002154 ldr r2, _022370F4 ; =0x00002DC8 mov r1, #0xc0 _022370D4: ldr r5, [r4, r3] add r0, r0, #1 lsl r5, r5, #1 str r5, [r4, r3] ldr r5, [r4, #0x64] add r6, r5, #0 mul r6, r1 add r5, r4, r6 ldr r5, [r5, r2] lsl r5, r5, #0xb lsr r5, r5, #0x1d cmp r0, r5 blo _022370D4 _022370EE: mov r0, #0 pop {r4, r5, r6, pc} nop _022370F4: .word 0x00002DC8 _022370F8: .word 0xFFE3FFFF _022370FC: .word 0x00003044 _02237100: .word 0x000003E1 _02237104: .word 0x00002154 thumb_func_start MOD11_02237108 MOD11_02237108: ; 0x02237108 push {r4, r5, r6, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r3, r0, #0 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] mov r5, #0xc0 add r1, r0, #0 mul r1, r5 ldr r6, _02237184 ; =0x00002DBE add r1, r4, r1 ldrb r0, [r1, r6] lsl r0, r0, #0x1c lsr r2, r0, #0x1c add r0, r5, #0 add r0, #0x58 ldr r0, [r4, r0] mul r5, r0 add r5, r4, r5 ldrb r5, [r5, r6] lsl r5, r5, #0x1c lsr r5, r5, #0x1c cmp r5, r2 beq _0223715A sub r6, #0xe ldr r6, [r1, r6] mov r1, #0xf lsl r1, r1, #0x10 tst r1, r6 bne _0223715A cmp r5, #2 beq _0223715A cmp r2, #2 bne _02237164 _0223715A: add r0, r4, #0 add r1, r3, #0 bl MOD11_0223A424 b _0223717E _02237164: bl FUN_0206A92C ldr r1, _02237188 ; =0x00002DB0 mov r2, #0xc0 add r1, r4, r1 add r4, #0x94 ldr r3, [r4] lsl r0, r0, #0x10 add r4, r3, #0 mul r4, r2 ldr r2, [r1, r4] orr r0, r2 str r0, [r1, r4] _0223717E: mov r0, #0 pop {r4, r5, r6, pc} nop _02237184: .word 0x00002DBE _02237188: .word 0x00002DB0 thumb_func_start MOD11_0223718C MOD11_0223718C: ; 0x0223718C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 mov r5, #0x6f add r2, r0, #0 lsl r5, r5, #2 add r1, r4, r5 lsl r0, r2, #2 ldr r6, [r1, r0] mov r3, #8 tst r3, r6 beq _022371D0 add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 ldr r1, _02237214 ; =0x0000216C mov r0, #0x40 ldr r2, [r4, r1] orr r0, r2 str r0, [r4, r1] b _02237210 _022371D0: mov r3, #8 orr r3, r6 str r3, [r1, r0] add r5, #8 lsl r0, r2, #3 add r1, r4, r5 ldr r3, [r1, r0] ldr r2, _02237218 ; =0xFFF1FFFF and r3, r2 mov r2, #0xa lsl r2, r2, #0x10 orr r2, r3 str r2, [r1, r0] ldr r3, [r1, r0] ldr r2, _0223721C ; =0xFFFE7FFF and r3, r2 ldr r2, [r4, #0x64] lsl r2, r2, #0x1e lsr r2, r2, #0xf orr r2, r3 str r2, [r1, r0] add r0, r4, #0 mov r1, #1 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 ldr r1, [r4, #0x64] add r0, #0xf8 str r1, [r0] mov r0, #0xc6 add r4, #0xf6 strh r0, [r4] _02237210: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02237214: .word 0x0000216C _02237218: .word 0xFFF1FFFF _0223721C: .word 0xFFFE7FFF thumb_func_start MOD11_02237220 MOD11_02237220: ; 0x02237220 push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 bl FUN_0201B9EC lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x66 bge _02237248 ldr r0, _02237284 ; =0x00002154 mov r1, #0x28 str r1, [r5, r0] b _0223727E _02237248: cmp r0, #0xb2 bge _02237254 ldr r0, _02237284 ; =0x00002154 mov r1, #0x50 str r1, [r5, r0] b _0223727E _02237254: cmp r0, #0xcc bge _02237260 ldr r0, _02237284 ; =0x00002154 mov r1, #0x78 str r1, [r5, r0] b _0223727E _02237260: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02237288 ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, _0223728C ; =0x0000215C str r0, [r5, r1] add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 _0223727E: mov r0, #0 pop {r3, r4, r5, pc} nop _02237284: .word 0x00002154 _02237288: .word 0x00002D90 _0223728C: .word 0x0000215C thumb_func_start MOD11_02237290 MOD11_02237290: ; 0x02237290 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, _0223732C ; =0x00003120 ldrb r0, [r4, r0] cmp r0, #0 bne _0223731C bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f ldr r0, _0223732C ; =0x00003120 strb r1, [r4, r0] ldrb r1, [r4, r0] cmp r1, #5 bhs _022372C4 ldr r1, _02237330 ; =0x00002154 mov r2, #0xa str r2, [r4, r1] mov r1, #4 strb r1, [r4, r0] b _0223731C _022372C4: cmp r1, #0xf bhs _022372D4 ldr r1, _02237330 ; =0x00002154 mov r2, #0x1e str r2, [r4, r1] mov r1, #5 strb r1, [r4, r0] b _0223731C _022372D4: cmp r1, #0x23 bhs _022372E4 ldr r1, _02237330 ; =0x00002154 mov r2, #0x32 str r2, [r4, r1] mov r1, #6 strb r1, [r4, r0] b _0223731C _022372E4: cmp r1, #0x41 bhs _022372F4 ldr r1, _02237330 ; =0x00002154 mov r2, #0x46 str r2, [r4, r1] mov r1, #7 strb r1, [r4, r0] b _0223731C _022372F4: cmp r1, #0x55 bhs _02237304 ldr r1, _02237330 ; =0x00002154 mov r2, #0x5a str r2, [r4, r1] mov r1, #8 strb r1, [r4, r0] b _0223731C _02237304: cmp r1, #0x5f ldr r1, _02237330 ; =0x00002154 bhs _02237314 mov r2, #0x6e str r2, [r4, r1] mov r1, #9 strb r1, [r4, r0] b _0223731C _02237314: mov r2, #0x96 str r2, [r4, r1] mov r1, #0xa strb r1, [r4, r0] _0223731C: ldr r0, _0223732C ; =0x00003120 ldrb r1, [r4, r0] mov r0, #0x13 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0 pop {r4, pc} nop _0223732C: .word 0x00003120 _02237330: .word 0x00002154 thumb_func_start MOD11_02237334 MOD11_02237334: ; 0x02237334 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r4, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_02246DE0 cmp r0, #0 bne _0223737E ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 b _02237392 _0223737E: cmp r7, #1 bne _02237392 mov r0, #0x4f lsl r0, r0, #2 add r3, r5, r0 lsl r2, r4, #2 ldr r1, [r3, r2] mov r0, #1 orr r0, r1 str r0, [r3, r2] _02237392: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02237398 MOD11_02237398: ; 0x02237398 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r1, [r4, #0x64] bl MOD11_02230270 ldr r1, [r4, #0x64] mov r6, #0xe ldr r5, _022374D4 ; =0x00002DB0 add r2, r1, #0 mov r3, #0xc0 mul r2, r3 add r1, r4, r5 ldr r7, [r1, r2] lsl r6, r6, #0xc tst r6, r7 beq _022373F4 ldr r0, _022374D8 ; =0xFFFF1FFF and r0, r7 str r0, [r1, r2] ldr r0, [r4, #0x64] mov r2, #0x74 add r1, r0, #0 add r0, r5, #0 mul r1, r3 add r1, r4, r1 add r0, #0x1c ldr r0, [r1, r0] add r5, #0x3a lsl r0, r0, #0x18 lsr r1, r0, #0x1e add r0, r3, #0 add r0, #0x58 str r1, [r4, r0] ldr r0, [r4, #0x64] add r1, r0, #0 mul r1, r3 add r0, r4, r1 ldrh r0, [r0, r5] add r3, #0x64 mov r1, #1 str r0, [r4, r3] add r0, r4, #0 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022373F4: add r5, #0x10 add r5, r4, r5 ldr r1, [r5, r2] mov r6, #4 tst r6, r1 beq _0223742A mov r0, #4 bic r1, r0 str r1, [r5, r2] ldr r0, [r4, #0x64] add r2, r0, #0 mul r2, r3 ldr r1, [r5, r2] mov r0, #3 bic r1, r0 str r1, [r5, r2] mov r1, #0x49 add r0, r1, #0 add r0, #0xdb str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x75 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223742A: mov r1, #0x72 lsl r1, r1, #2 add r6, r4, r1 lsl r5, r0, #3 ldr r2, [r6, r5] lsl r3, r2, #0x1e lsr r3, r3, #0x1e beq _02237466 sub r1, #0xc lsl r3, r0, #2 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #4 bic r2, r0 str r2, [r1, r3] ldr r1, [r6, r5] mov r0, #3 bic r1, r0 str r1, [r6, r5] mov r1, #0xbf add r0, r1, #0 add r0, #0x65 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x75 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02237466: lsl r2, r2, #0x1c lsr r2, r2, #0x1e beq _0223749A add r2, r1, #0 sub r2, #0xc lsl r7, r0, #2 add r3, r4, r2 ldr r2, [r3, r7] ldr r0, _022374DC ; =0xFFFFFBFF and r0, r2 str r0, [r3, r7] ldr r2, [r6, r5] mov r0, #0xc bic r2, r0 add r0, r1, #0 str r2, [r6, r5] sub r0, #0x42 sub r1, #0xa4 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 mov r2, #0x75 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223749A: add r2, r1, #0 sub r2, #0xc add r2, r4, r2 lsl r0, r0, #2 ldr r6, [r2, r0] mov r5, #0x80 add r3, r6, #0 tst r3, r5 beq _022374C6 mov r3, #0x80 bic r6, r3 str r6, [r2, r0] sub r1, #0xa add r5, #0xa4 str r1, [r4, r5] add r0, r4, #0 mov r1, #1 mov r2, #0x75 bl MOD11_0223A43C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022374C6: add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022374D4: .word 0x00002DB0 _022374D8: .word 0xFFFF1FFF _022374DC: .word 0xFFFFFBFF thumb_func_start MOD11_022374E0 MOD11_022374E0: ; 0x022374E0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] ldr r0, _02237578 ; =0x000080FF tst r0, r1 beq _02237522 mov r0, #0xd str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _02237522 mov r0, #0x4c str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 beq _02237536 _02237522: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0223757C ; =0x00002D90 ldr r0, [r1, r0] lsr r1, r0, #1 ldr r0, _02237580 ; =0x0000215C str r1, [r4, r0] b _02237572 _02237536: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x30 tst r0, r1 ldr r1, [r4, #0x64] beq _0223755E mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0223757C ; =0x00002D90 ldr r1, [r1, r0] mov r0, #0x14 mul r0, r1 mov r1, #0x1e bl MOD11_022476C0 ldr r1, _02237580 ; =0x0000215C str r0, [r4, r1] b _02237572 _0223755E: mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0223757C ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, _02237580 ; =0x0000215C str r0, [r4, r1] _02237572: mov r0, #0 pop {r3, r4, r5, pc} nop _02237578: .word 0x000080FF _0223757C: .word 0x00002D90 _02237580: .word 0x0000215C thumb_func_start MOD11_02237584 MOD11_02237584: ; 0x02237584 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, _02237664 ; =0x00002D54 ldr r1, [r4, #0x64] add r3, r4, r0 mov r0, #0xc0 mul r0, r1 ldr r1, [r3, r0] mov r5, #2 lsl r0, r1, #2 lsr r0, r0, #0x1b and r0, r5 lsl r2, r0, #4 lsl r0, r1, #7 lsr r0, r0, #0x1b and r0, r5 lsl r7, r0, #3 lsl r0, r1, #0xc lsr r0, r0, #0x1b and r0, r5 lsl r0, r0, #2 mov ip, r0 lsl r0, r1, #0x11 lsr r0, r0, #0x1b and r0, r5 lsl r6, r0, #1 lsl r0, r1, #0x1b lsr r0, r0, #0x1b lsl r1, r1, #0x16 and r0, r5 lsr r1, r1, #0x1b lsr r0, r0, #1 and r1, r5 orr r0, r1 add r1, r6, #0 orr r1, r0 mov r0, ip orr r0, r1 orr r0, r7 add r1, r2, #0 orr r1, r0 ldr r0, _02237668 ; =0x00002154 str r1, [r4, r0] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r5, [r3, r0] lsl r0, r5, #2 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r6, r0, #0x1a lsl r0, r5, #7 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r3, r0, #0x1b lsl r0, r5, #0xc lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r2, r0, #0x1c lsl r0, r5, #0x11 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r7, r0, #0x1d lsl r0, r5, #0x1b lsr r1, r0, #0x1b mov r0, #1 and r0, r1 lsl r1, r5, #0x16 lsr r1, r1, #0x1b lsl r1, r1, #0x1f lsr r1, r1, #0x1e orr r0, r1 orr r0, r7 orr r0, r2 orr r0, r3 add r1, r6, #0 orr r1, r0 ldr r0, _02237668 ; =0x00002154 add r0, #0xc str r1, [r4, r0] ldr r0, _02237668 ; =0x00002154 ldr r1, [r4, r0] mov r0, #0x28 mul r0, r1 mov r1, #0x3f bl _s32_div_f ldr r1, _02237668 ; =0x00002154 add r0, #0x1e str r0, [r4, r1] add r1, #0xc ldr r1, [r4, r1] mov r0, #0xf mul r0, r1 mov r1, #0x3f bl _s32_div_f add r1, r0, #1 ldr r0, _0223766C ; =0x00002160 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #9 blt _0223765E add r1, r1, #1 str r1, [r4, r0] _0223765E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02237664: .word 0x00002D54 _02237668: .word 0x00002154 _0223766C: .word 0x00002160 thumb_func_start MOD11_02237670 MOD11_02237670: ; 0x02237670 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r2, _022376C8 ; =0x00002D58 mov r1, #0 mov r3, #0xc0 add r5, r2, #0 _02237684: ldr r6, [r4, #0x6c] mov r0, #0xc0 mul r0, r6 ldr r6, [r4, #0x64] add r0, r4, r0 add r0, r1, r0 add r7, r6, #0 mul r7, r3 add r6, r4, r7 add r6, r1, r6 ldrsb r0, [r0, r2] add r1, r1, #1 cmp r1, #8 strb r0, [r6, r5] blt _02237684 ldr r0, [r4, #0x64] ldr r6, [r4, #0x6c] mov r3, #0xc0 add r1, r0, #0 ldr r5, _022376CC ; =0x00002DB0 mul r1, r3 mul r3, r6 add r2, r4, r5 add r3, r4, r3 ldr r4, [r3, r5] mov r3, #1 lsl r3, r3, #0x14 ldr r0, [r2, r1] and r3, r4 orr r0, r3 str r0, [r2, r1] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022376C8: .word 0x00002D58 _022376CC: .word 0x00002DB0 thumb_func_start MOD11_022376D0 MOD11_022376D0: ; 0x022376D0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 ldr r1, [r4, #0x6c] add r2, r0, #0 mov r0, #0x62 add r3, r4, r1 lsl r0, r0, #2 ldrb r0, [r3, r0] cmp r0, #0 bne _022377A4 add r0, r5, #0 bl MOD11_02230270 mov r1, #0x6f lsl r1, r1, #2 lsl r3, r0, #2 add r6, r4, r1 add r7, r1, #0 ldr r2, [r6, r3] mov r0, #0x10 orr r0, r2 str r0, [r6, r3] ldr r0, [r4, #0x6c] sub r7, #0x34 add r2, r4, r0 mov r0, #3 strb r0, [r2, r7] add r7, r1, #0 ldr r0, _022377B4 ; =0x00003044 sub r7, #0x2c ldr r2, [r4, r0] ldr r0, [r4, #0x6c] sub r1, #0x24 lsl r0, r0, #1 add r0, r4, r0 strh r2, [r0, r7] ldr r2, [r4, #0x6c] ldr r0, [r4, #0x64] lsl r2, r2, #2 add r2, r4, r2 str r0, [r2, r1] mov r0, #3 lsl r0, r0, #7 ldr r0, [r4, r0] ldr r2, _022377B4 ; =0x00003044 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r4, #0x64] add r1, r4, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [r4, #0x6c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r2, [r4, r2] ldr r3, [r6, r3] add r0, r5, #0 bl MOD11_0224B310 mov r1, #0 mvn r1, r1 mul r1, r0 add r0, r4, #0 bl MOD11_0224BF10 ldr r1, [r4, #0x6c] lsl r1, r1, #2 add r2, r4, r1 mov r1, #0x6a lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4, #0x64] lsl r0, r0, #6 add r2, r4, r0 add r0, r1, #0 add r0, #0x2c ldr r0, [r2, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _022377AC ldr r0, [r4, #0x6c] add r5, r4, r1 lsl r4, r0, #2 ldr r1, [r5, r4] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f str r0, [r5, r4] b _022377AC _022377A4: add r0, r4, #0 add r1, r2, #0 bl MOD11_0223A424 _022377AC: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _022377B4: .word 0x00003044 thumb_func_start MOD11_022377B8 MOD11_022377B8: ; 0x022377B8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 str r0, [sp, #0xc] add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_0223C230 add r6, r0, #0 ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_0223CC8C str r0, [sp] ldr r2, [sp, #0xc] add r0, r5, #0 add r1, r4, #0 add r3, r6, #0 bl MOD11_0223D29C ldr r0, _02237830 ; =0x0000216C ldr r1, [r4, r0] ldr r0, _02237834 ; =0x001FD849 tst r0, r1 beq _02237828 ldr r1, [sp, #8] add r0, r4, #0 bl MOD11_0223A424 _02237828: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _02237830: .word 0x0000216C _02237834: .word 0x001FD849 thumb_func_start MOD11_02237838 MOD11_02237838: ; 0x02237838 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 mov r3, #0 bl MOD11_02246ED0 cmp r0, #0 beq _02237866 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _02237866: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0223786C MOD11_0223786C: ; 0x0223786C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] add r0, r7, #0 bl MOD11_0222FFC8 ldr r1, _02237AA0 ; =0x0000217D str r0, [sp] ldrb r0, [r5, r1] cmp r0, #0 bne _02237900 mov r0, #2 strb r0, [r5, r1] add r0, r1, #0 mov r2, #0xfd add r0, #0xb str r2, [r5, r0] mov r2, #0 add r0, r1, #2 strb r2, [r5, r0] add r6, r1, #2 _022378A2: ldr r2, _02237AA4 ; =0x0000217F ldr r1, [r5, #0x64] ldrb r2, [r5, r2] add r0, r7, #0 bl MOD11_02230014 ldr r1, _02237AA4 ; =0x0000217F add r4, r0, #0 ldrb r3, [r5, r1] ldr r1, [r5, #0x64] add r2, r5, r1 ldr r1, _02237AA8 ; =0x0000219C ldrb r1, [r2, r1] cmp r3, r1 beq _02237900 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _022378F8 add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02237900 _022378F8: ldrb r0, [r5, r6] add r0, r0, #1 strb r0, [r5, r6] b _022378A2 _02237900: ldr r2, _02237AA4 ; =0x0000217F ldr r1, [r5, #0x64] ldrb r2, [r5, r2] add r0, r7, #0 bl MOD11_02230014 add r4, r0, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC str r0, [sp, #4] add r0, r4, #0 mov r1, #0x70 mov r2, #0 bl FUN_020671BC add r6, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC add r4, r0, #0 ldr r0, [sp, #4] add r1, r6, #0 mov r2, #1 bl FUN_02068654 ldr r1, _02237AB0 ; =0x00002144 ldr r2, _02237AB4 ; =0x00003044 str r0, [r5, r1] ldr r2, [r5, r2] ldr r0, [r5, r1] lsl r2, r2, #4 add r3, r5, r2 ldr r2, _02237AB8 ; =0x000003E1 ldrb r2, [r3, r2] mul r2, r0 str r2, [r5, r1] lsl r0, r4, #1 mov r1, #5 bl _s32_div_f ldr r1, _02237AB0 ; =0x00002144 add r0, r0, #2 ldr r2, [r5, r1] mul r0, r2 str r0, [r5, r1] ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 mov r1, #0xb5 add r2, r5, r0 lsl r1, r1, #6 ldrh r0, [r2, r1] add r1, #0x26 ldrb r1, [r2, r1] mov r2, #2 lsl r1, r1, #0x1b lsr r1, r1, #0x1b bl FUN_02068654 add r1, r0, #0 ldr r0, _02237AB0 ; =0x00002144 ldr r0, [r5, r0] bl _u32_div_f ldr r1, _02237AB0 ; =0x00002144 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #0x32 bl _s32_div_f ldr r1, _02237AB0 ; =0x00002144 str r0, [r5, r1] ldr r0, [r5, r1] add r0, r0, #2 str r0, [r5, r1] add r0, r1, #0 add r0, #0xc ldr r2, [r5, r1] ldr r0, [r5, r0] mul r0, r2 str r0, [r5, r1] ldr r0, [r5, #0x64] lsl r0, r0, #6 add r2, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r2, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _022379CC ldr r1, [r5, r1] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f ldr r1, _02237AB0 ; =0x00002144 str r0, [r5, r1] _022379CC: ldr r1, _02237AB0 ; =0x00002144 add r0, r5, #0 ldr r1, [r5, r1] bl MOD11_0224BF10 ldr r1, _02237AB0 ; =0x00002144 str r0, [r5, r1] mov r0, #0 ldr r2, [r5, r1] mvn r0, r0 mul r0, r2 str r0, [r5, r1] add r0, r5, #0 add r3, r1, #0 ldr r2, _02237ABC ; =0x000001E1 add r0, #0xf6 strh r2, [r0] add r0, r5, #0 mov r2, #2 add r0, #0xf5 strb r2, [r0] add r3, #0x3b ldrb r3, [r5, r3] ldr r0, [r5, #0x64] add r6, r1, #0 lsl r3, r3, #8 orr r3, r0 add r0, r5, #0 add r0, #0xf8 str r3, [r0] add r0, r1, #0 add r0, #0x3b ldrb r0, [r5, r0] add r6, #0x3b add r3, r0, #1 add r0, r1, #0 add r0, #0x3b strb r3, [r5, r0] add r0, r1, #0 add r0, #0x38 strb r2, [r5, r0] add r0, r1, #0 add r0, #0x3b ldrb r2, [r5, r0] ldr r0, [sp] cmp r2, r0 bge _02237A94 _02237A2A: ldr r1, [r5, #0x64] add r0, r7, #0 bl MOD11_02230014 ldr r1, _02237AA4 ; =0x0000217F add r4, r0, #0 ldrb r3, [r5, r1] ldr r1, [r5, #0x64] add r2, r5, r1 ldr r1, _02237AA8 ; =0x0000219C ldrb r1, [r2, r1] cmp r3, r1 beq _02237A9A mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _02237A7C add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02237A9A _02237A7C: ldrb r0, [r5, r6] add r0, r0, #1 strb r0, [r5, r6] ldr r0, _02237AA4 ; =0x0000217F ldrb r2, [r5, r0] ldr r0, [sp] cmp r2, r0 blt _02237A2A ldr r0, _02237AC0 ; =0x0000217C mov r1, #1 strb r1, [r5, r0] b _02237A9A _02237A94: mov r0, #1 add r1, #0x38 strb r0, [r5, r1] _02237A9A: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02237AA0: .word 0x0000217D _02237AA4: .word 0x0000217F _02237AA8: .word 0x0000219C _02237AAC: .word 0x000001EE _02237AB0: .word 0x00002144 _02237AB4: .word 0x00003044 _02237AB8: .word 0x000003E1 _02237ABC: .word 0x000001E1 _02237AC0: .word 0x0000217C thumb_func_start MOD11_02237AC4 MOD11_02237AC4: ; 0x02237AC4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 mov r1, #0x71 lsl r1, r1, #2 mov r2, #1 add r1, r4, r1 lsl r0, r0, #3 ldr r3, [r1, r0] lsl r2, r2, #0x14 orr r2, r3 str r2, [r1, r0] ldr r3, [r1, r0] ldr r2, _02237B00 ; =0xFF9FFFFF and r3, r2 ldr r2, [r4, #0x64] lsl r2, r2, #0x1e lsr r2, r2, #9 orr r2, r3 str r2, [r1, r0] mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _02237B00: .word 0xFF9FFFFF thumb_func_start MOD11_02237B04 MOD11_02237B04: ; 0x02237B04 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02237B82 add r0, r4, #0 add r1, r5, #0 mov r2, #0x10 bl MOD11_0223C230 add r4, r0, #0 bl FUN_0206A92C ldr r1, _02237B90 ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _02237B78 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _02237B94 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02237B78 ldr r0, [r5, #0x64] mov r2, #0x75 lsl r0, r0, #6 add r0, r5, r0 lsl r2, r2, #2 ldr r0, [r0, r2] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bne _02237B78 add r1, r5, r2 lsl r0, r4, #6 ldr r3, [r1, r0] lsl r3, r3, #0x1c lsr r3, r3, #0x1f bne _02237B78 sub r2, #0xbc str r4, [r5, r2] ldr r3, [r1, r0] mov r2, #8 orr r2, r3 str r2, [r1, r0] b _02237B8A _02237B78: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 b _02237B8A _02237B82: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _02237B8A: mov r0, #0 pop {r4, r5, r6, pc} nop _02237B90: .word 0x00003108 _02237B94: .word 0x00002D8C thumb_func_start MOD11_02237B98 MOD11_02237B98: ; 0x02237B98 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r5, #0 bl MOD11_0222FF74 str r0, [sp, #8] ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 str r0, [sp] ldr r1, [r4, #0x6c] add r0, r5, #0 bl MOD11_02230270 add r7, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 cmp r0, #0 beq _02237BF2 ldr r0, [sp, #8] mov r1, #0x84 tst r0, r1 bne _02237BF2 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _02237C90 _02237BF2: ldr r0, [r4, #0x64] add r1, r4, r0 ldr r0, _02237C98 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C ldr r1, [sp] lsl r1, r1, #3 add r2, r4, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 bne _02237C30 ldr r0, [r4, #0x6c] add r1, r4, r0 ldr r0, _02237C98 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C lsl r1, r7, #3 add r2, r4, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 beq _02237C3A _02237C30: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _02237C90 _02237C3A: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 add r3, r4, r2 ldr r2, _02237C9C ; =0x00002DB8 ldrh r3, [r3, r2] cmp r3, #0 bne _02237C58 ldr r3, [r4, #0x6c] mul r0, r3 add r0, r4, r0 ldrh r0, [r0, r2] cmp r0, #0 beq _02237C6E _02237C58: add r0, r4, #0 bl MOD11_02246CAC cmp r0, #0 beq _02237C6E ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02246CAC cmp r0, #0 bne _02237C78 _02237C6E: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _02237C90 _02237C78: ldr r1, [r4, #0x64] ldr r2, [r4, #0x6c] add r0, r4, #0 mov r3, #0x3c bl MOD11_02246D84 cmp r0, #1 bne _02237C90 ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_0223A424 _02237C90: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02237C98: .word 0x0000219C _02237C9C: .word 0x00002DB8 thumb_func_start MOD11_02237CA0 MOD11_02237CA0: ; 0x02237CA0 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 mov r2, #0x63 lsl r2, r2, #2 ldr r3, [r4, #0x64] add r5, r4, r2 add r1, r0, #0 ldrb r0, [r5, r3] cmp r0, #0 beq _02237CCA add r0, r4, #0 bl MOD11_0223A424 b _02237CDA _02237CCA: mov r0, #2 strb r0, [r5, r3] ldr r0, [r4, #0x64] add r2, #0x2c add r1, r4, r0 ldr r0, _02237CE0 ; =0x0000219C ldrb r0, [r1, r0] strb r0, [r1, r2] _02237CDA: mov r0, #0 pop {r3, r4, r5, pc} nop _02237CE0: .word 0x0000219C thumb_func_start MOD11_02237CE4 MOD11_02237CE4: ; 0x02237CE4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 str r0, [sp] str r1, [sp, #4] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [sp, #4] bl MOD11_0223A404 ldr r1, [sp, #4] str r0, [sp, #0x14] ldr r0, [sp] ldr r1, [r1, #0x64] mov r7, #0 bl MOD11_0222FFC8 str r0, [sp, #0xc] add r0, r7, #0 str r0, [sp, #0x10] ldr r0, [sp, #0xc] cmp r0, #0 ble _02237D8A add r5, sp, #0x18 _02237D16: ldr r0, [sp, #4] ldr r1, [r0, #0x64] add r2, r0, r1 ldr r0, _02237DB8 ; =0x0000219C ldrb r2, [r2, r0] ldr r0, [sp, #0x10] cmp r0, r2 beq _02237D7E ldr r0, [sp] ldr r2, [sp, #0x10] bl MOD11_02230014 mov r1, #0xad mov r2, #0 str r0, [sp, #8] bl FUN_020671BC cmp r0, #0 beq _02237D7E ldr r0, [sp, #8] mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02237DBC ; =0x000001EE cmp r0, r1 beq _02237D7E mov r4, #0 _02237D4E: add r1, r4, #0 ldr r0, [sp, #8] add r1, #0x36 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r6, #0 bl MOD11_02246BE8 cmp r0, #0 bne _02237D78 add r0, r6, #0 bl MOD11_0224C07C cmp r0, #1 bne _02237D78 strh r6, [r5] add r5, r5, #2 add r7, r7, #1 _02237D78: add r4, r4, #1 cmp r4, #4 blt _02237D4E _02237D7E: ldr r0, [sp, #0x10] add r1, r0, #1 ldr r0, [sp, #0xc] str r1, [sp, #0x10] cmp r1, r0 blt _02237D16 _02237D8A: cmp r7, #0 beq _02237DA8 bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f lsl r1, r1, #1 add r0, sp, #0x18 ldrh r2, [r0, r1] mov r1, #0x49 ldr r0, [sp, #4] lsl r1, r1, #2 str r2, [r0, r1] b _02237DB0 _02237DA8: ldr r0, [sp, #4] ldr r1, [sp, #0x14] bl MOD11_0223A424 _02237DB0: mov r0, #0 add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} nop _02237DB8: .word 0x0000219C _02237DBC: .word 0x000001EE thumb_func_start MOD11_02237DC0 MOD11_02237DC0: ; 0x02237DC0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 str r1, [sp] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [sp] bl MOD11_0223A404 str r0, [sp, #4] mov r6, #0 add r0, r7, #0 add r4, r6, #0 bl MOD11_0222FF84 cmp r0, #0 ble _02237E00 ldr r5, [sp] _02237DE8: ldr r0, _02237E30 ; =0x00002D8C ldr r0, [r5, r0] cmp r0, #0 beq _02237DF2 add r6, r6, #1 _02237DF2: add r0, r7, #0 add r5, #0xc0 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _02237DE8 _02237E00: ldr r0, [sp] add r0, #0xec ldr r1, [r0] sub r0, r6, #1 cmp r1, r0 bne _02237E16 ldr r0, [sp] ldr r1, [sp, #4] bl MOD11_0223A424 b _02237E2A _02237E16: mov r1, #0x75 ldr r0, [sp] lsl r1, r1, #2 add r3, r0, r1 ldr r0, [r0, #0x64] lsl r2, r0, #6 ldr r1, [r3, r2] mov r0, #0x10 orr r0, r1 str r0, [r3, r2] _02237E2A: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02237E30: .word 0x00002D8C thumb_func_start MOD11_02237E34 MOD11_02237E34: ; 0x02237E34 push {r4, r5, r6, lr} sub sp, #8 add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] add r0, r6, #0 bl MOD11_02230270 add r1, r5, #0 ldr r4, [r5, #0x64] add r1, #0x84 str r4, [r1] ldr r1, [r5, #0x6c] lsl r0, r0, #3 str r1, [r5, #0x64] mov r1, #0x71 lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02237E7E lsl r0, r0, #9 lsr r0, r0, #0x1e mov r1, #0xc0 mul r1, r0 add r2, r5, r1 ldr r1, _02237EDC ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02237E7E str r0, [r5, #0x6c] b _02237ECA _02237E7E: ldr r0, _02237EE0 ; =0x00003044 ldr r3, [r5, r0] lsl r0, r3, #4 add r1, r5, r0 ldr r0, _02237EE4 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #4 beq _02237E92 cmp r0, #8 bne _02237E96 _02237E92: str r4, [r5, #0x6c] b _02237ECA _02237E96: mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] lsl r3, r3, #0x10 ldr r2, [r5, #0x64] add r0, r6, #0 add r1, r5, #0 lsr r3, r3, #0x10 bl MOD11_02244C28 mov r1, #0xb5 lsl r1, r1, #2 add r2, r5, r1 mov r1, #0x1c mul r1, r0 ldr r1, [r2, r1] lsl r2, r1, #0x1e lsr r2, r2, #0x1f bne _02237EC4 lsl r1, r1, #0x1d lsr r1, r1, #0x1f beq _02237EC8 _02237EC4: str r0, [r5, #0x6c] b _02237ECA _02237EC8: str r4, [r5, #0x6c] _02237ECA: mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r5, r1] mov r0, #8 orr r0, r2 str r0, [r5, r1] mov r0, #0 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 _02237EDC: .word 0x00002D8C _02237EE0: .word 0x00003044 _02237EE4: .word 0x000003E6 thumb_func_start MOD11_02237EE8 MOD11_02237EE8: ; 0x02237EE8 push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r5, #0x64] ldr r0, [r5, #0x6c] lsl r4, r1, #6 add r2, r5, r4 lsl r1, r0, #2 add r2, r2, r1 mov r1, #0x76 lsl r1, r1, #2 ldr r1, [r2, r1] cmp r1, #0 beq _02237F1A bl FUN_0206A92C mov r1, #0x7b add r2, r5, r4 lsl r1, r1, #2 ldr r1, [r2, r1] tst r0, r1 bne _02237F40 _02237F1A: ldr r0, [r5, #0x6c] add r2, r5, r4 lsl r1, r0, #2 add r2, r2, r1 mov r1, #0x1f lsl r1, r1, #4 ldr r1, [r2, r1] cmp r1, #0 beq _02237F48 bl FUN_0206A92C ldr r1, [r5, #0x64] lsl r1, r1, #6 add r2, r5, r1 mov r1, #0x81 lsl r1, r1, #2 ldr r1, [r2, r1] tst r0, r1 beq _02237F48 _02237F40: ldr r0, _02237F54 ; =0x00002158 mov r1, #0x14 str r1, [r5, r0] b _02237F4E _02237F48: ldr r0, _02237F54 ; =0x00002158 mov r1, #0xa str r1, [r5, r0] _02237F4E: mov r0, #0 pop {r3, r4, r5, pc} nop _02237F54: .word 0x00002158 thumb_func_start MOD11_02237F58 MOD11_02237F58: ; 0x02237F58 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r4, #0x6c] add r0, r5, #0 bl MOD11_02230270 lsl r1, r0, #2 add r2, r4, r1 mov r1, #0x6f lsl r1, r1, #2 ldr r2, [r2, r1] mov r1, #1 tst r1, r2 bne _02237F8C mov r1, #2 tst r1, r2 beq _02237FBC _02237F8C: mov r5, #0x6f lsl r5, r5, #2 add r2, r4, r5 lsl r1, r0, #2 ldr r6, [r2, r1] mov r3, #1 bic r6, r3 str r6, [r2, r1] ldr r6, [r2, r1] mov r3, #2 bic r6, r3 add r5, #8 str r6, [r2, r1] lsl r2, r0, #3 add r3, r4, r5 ldr r1, [r3, r2] mov r0, #0x1c bic r1, r0 str r1, [r3, r2] ldr r1, [r3, r2] ldr r0, _02237FC8 ; =0xFFFFFC7F and r0, r1 str r0, [r3, r2] b _02237FC4 _02237FBC: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _02237FC4: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _02237FC8: .word 0xFFFFFC7F thumb_func_start MOD11_02237FCC MOD11_02237FCC: ; 0x02237FCC push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 mov r0, #0xb7 lsl r0, r0, #6 add r3, r4, r0 ldr r0, [r4, #0x6c] mov r5, #0xc0 add r2, r0, #0 mul r2, r5 ldr r0, [r3, r2] lsl r5, r5, #5 tst r5, r0 beq _02237FFE add r0, r4, #0 bl MOD11_0223A424 b _02238006 _02237FFE: mov r1, #1 lsl r1, r1, #0xc orr r0, r1 str r0, [r3, r2] _02238006: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223800C MOD11_0223800C: ; 0x0223800C push {r4, r5, r6, lr} add r5, r1, #0 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r5, #0x6c] add r0, r4, #0 bl MOD11_02230270 add r4, r0, #0 ldr r2, [r5, #0x6c] mov r0, #0xc0 mul r0, r2 add r1, r5, r0 ldr r0, _02238118 ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 beq _02238086 ldr r1, [r5, #0x64] add r0, r5, #0 mov r3, #0x3c bl MOD11_02246D84 cmp r0, #1 bne _02238086 add r0, r5, #0 ldr r1, _0223811C ; =0x000002CA add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x25 add r0, #0xf5 strb r1, [r0] ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] ldr r0, [r5, #0x6c] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02238120 ; =0x00002D67 add r2, r5, r2 ldrb r2, [r2, r0] add r0, r5, #0 add r0, #0xfc str r2, [r0] ldr r0, _02238124 ; =0x00003044 add r1, #0x40 ldr r0, [r5, r0] str r0, [r5, r1] b _02238114 _02238086: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02238118 ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 beq _0223810C mov r1, #0x8a add r0, r5, #0 lsl r1, r1, #2 add r0, #0xf6 strh r1, [r0] add r0, r5, #0 mov r1, #0x21 add r0, #0xf5 strb r1, [r0] ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xf8 str r0, [r1] ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_0224682C add r1, r5, #0 add r1, #0xfc str r0, [r1] ldr r0, [r5, #0x6c] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 add r0, r5, r2 ldr r2, _02238118 ; =0x00002DB8 ldrh r3, [r0, r2] add r0, r1, #0 add r0, #0x40 str r3, [r5, r0] ldr r3, [r5, #0x6c] mov r0, #0 mul r1, r3 add r1, r5, r1 strh r0, [r1, r2] ldr r0, [r5, #0x6c] add r1, r5, r0 ldr r0, _02238128 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C mov r1, #0x71 lsl r1, r1, #2 add r3, r5, r1 lsl r2, r4, #3 ldr r4, [r3, r2] ldr r1, _0223812C ; =0xE07FFFFF and r1, r4 lsl r4, r4, #3 lsr r4, r4, #0x1a orr r0, r4 lsl r0, r0, #0x1a lsr r0, r0, #3 orr r0, r1 str r0, [r3, r2] b _02238114 _0223810C: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _02238114: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _02238118: .word 0x00002DB8 _0223811C: .word 0x000002CA _02238120: .word 0x00002D67 _02238124: .word 0x00003044 _02238128: .word 0x0000219C _0223812C: .word 0xE07FFFFF thumb_func_start MOD11_02238130 MOD11_02238130: ; 0x02238130 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, _02238178 ; =0x00002154 ldr r0, [r4, r0] cmp r0, #0 bne _02238174 ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0223817C ; =0x00003044 ldr r1, [r4, r1] lsl r1, r1, #4 add r2, r4, r1 ldr r1, _02238180 ; =0x000003E1 ldrb r3, [r2, r1] ldr r1, _02238184 ; =0x00002D8C add r2, r4, r0 ldr r0, [r2, r1] add r1, r1, #4 ldr r1, [r2, r1] mul r0, r3 bl _u32_div_f ldr r1, _02238178 ; =0x00002154 str r0, [r4, r1] ldr r0, [r4, r1] cmp r0, #0 bne _02238174 mov r0, #1 str r0, [r4, r1] _02238174: mov r0, #0 pop {r4, pc} .align 2, 0 _02238178: .word 0x00002154 _0223817C: .word 0x00003044 _02238180: .word 0x000003E1 _02238184: .word 0x00002D8C thumb_func_start MOD11_02238188 MOD11_02238188: ; 0x02238188 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r7, r1, #0 str r0, [sp] add r0, r7, #0 mov r1, #1 bl MOD11_0223A424 add r0, r7, #0 bl MOD11_0223A404 str r0, [sp, #0x14] ldr r0, [sp] ldr r1, [r7, #0x64] mov r2, #0 bl MOD11_02230308 add r4, r0, #0 ldr r0, [sp] ldr r1, [r7, #0x64] mov r2, #2 bl MOD11_02230308 mov r6, #0xb7 add r3, r0, #0 lsl r6, r6, #6 add r1, r4, #0 mov r0, #0xc0 mov r4, #1 add r2, r7, r6 mul r1, r0 ldr r5, [r2, r1] lsl r4, r4, #0x1e orr r5, r4 str r5, [r2, r1] add r1, r3, #0 mul r1, r0 ldr r3, [r2, r1] orr r3, r4 str r3, [r2, r1] ldr r1, [r7, #0x64] mul r0, r1 add r0, r7, r0 ldr r2, [r0, r6] lsr r0, r4, #0x11 tst r0, r2 beq _022381F0 ldr r1, [sp, #0x14] add r0, r7, #0 bl MOD11_0223A424 b _02238294 _022381F0: ldr r0, [sp] bl MOD11_02230270 str r0, [sp, #0x10] ldr r0, [sp] bl MOD11_0222FF84 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #8] cmp r0, #0 ble _0223826A str r7, [sp, #4] _0223820C: ldr r0, [sp] ldr r1, [sp, #0xc] bl MOD11_02230270 ldr r1, [sp, #0x10] cmp r1, r0 beq _02238258 mov r2, #0 ldr r0, _0223829C ; =0x00002D4C add r4, r2, #0 _02238220: ldr r1, [r7, #0x64] mov r6, #0xc0 mul r6, r1 add r1, r7, r6 add r6, r1, r4 ldr r1, _0223829C ; =0x00002D4C ldr r5, [sp, #4] ldrh r6, [r6, r1] mov r3, #0 _02238232: ldrh r1, [r5, r0] cmp r6, r1 bne _02238240 cmp r6, #0 beq _02238240 cmp r1, #0 bne _02238248 _02238240: add r3, r3, #1 add r5, r5, #2 cmp r3, #4 blt _02238232 _02238248: cmp r3, #4 bne _02238254 add r2, r2, #1 add r4, r4, #2 cmp r2, #4 blt _02238220 _02238254: cmp r3, #4 bne _0223826A _02238258: ldr r0, [sp, #4] add r0, #0xc0 str r0, [sp, #4] ldr r0, [sp, #0xc] add r1, r0, #1 ldr r0, [sp, #8] str r1, [sp, #0xc] cmp r1, r0 blt _0223820C _0223826A: ldr r1, [sp, #0xc] ldr r0, [sp, #8] cmp r1, r0 bne _0223827C ldr r1, [sp, #0x14] add r0, r7, #0 bl MOD11_0223A424 b _02238294 _0223827C: mov r0, #0xb7 ldr r1, [r7, #0x64] lsl r0, r0, #6 add r3, r7, r0 mov r0, #0xc0 add r2, r1, #0 mul r2, r0 mov r0, #2 ldr r1, [r3, r2] lsl r0, r0, #0xc orr r0, r1 str r0, [r3, r2] _02238294: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _0223829C: .word 0x00002D4C thumb_func_start MOD11_022382A0 MOD11_022382A0: ; 0x022382A0 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r4, #0x6c] add r0, r5, #0 bl MOD11_02230270 ldr r6, [r4, #0x74] mov r0, #0xc0 mul r0, r6 add r1, r4, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0xe tst r0, r1 beq _0223833C ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 add r7, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02230270 cmp r7, r0 beq _0223833C ldr r0, [r4, #0x64] mov r2, #0xc0 add r1, r0, #0 mul r1, r2 ldr r3, _02238348 ; =0x00002D8C add r0, r4, r1 ldr r0, [r0, r3] cmp r0, #0 beq _0223833C mov r1, #0xc1 lsl r1, r1, #6 ldr r6, [r4, r1] cmp r6, #0xa5 beq _0223833C add r0, r2, #0 add r0, #0x64 str r6, [r4, r0] ldr r0, [r4, #0x64] ldr r1, [r4, r1] sub r3, #0x4c lsl r1, r1, #0x10 add r3, r4, r3 mul r2, r0 add r0, r3, r2 lsr r1, r1, #0x10 bl MOD11_022461AC ldr r3, [r4, #0x64] mov r2, #0xc0 mul r2, r3 add r2, r4, r2 add r2, r2, r0 ldr r0, _0223834C ; =0x00002D6C mov r1, #0 strb r1, [r2, r0] ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 bl MOD11_02245190 b _02238344 _0223833C: ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 _02238344: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02238348: .word 0x00002D8C _0223834C: .word 0x00002D6C thumb_func_start MOD11_02238350 MOD11_02238350: ; 0x02238350 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 str r1, [sp] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [sp] bl MOD11_0223A404 str r0, [sp, #4] mov r6, #0 add r0, r7, #0 add r4, r6, #0 bl MOD11_0222FF84 cmp r0, #0 ble _02238390 ldr r5, [sp] _02238378: ldr r0, _022383C0 ; =0x00002D8C ldr r0, [r5, r0] cmp r0, #0 beq _02238382 add r6, r6, #1 _02238382: add r0, r7, #0 add r5, #0xc0 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _02238378 _02238390: ldr r0, [sp] add r0, #0xec ldr r1, [r0] sub r0, r6, #1 cmp r1, r0 bne _022383A6 ldr r0, [sp] ldr r1, [sp, #4] bl MOD11_0223A424 b _022383BA _022383A6: mov r1, #0x75 ldr r0, [sp] lsl r1, r1, #2 add r3, r0, r1 ldr r0, [r0, #0x64] lsl r2, r0, #6 ldr r1, [r3, r2] mov r0, #0x20 orr r0, r1 str r0, [r3, r2] _022383BA: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022383C0: .word 0x00002D8C thumb_func_start MOD11_022383C4 MOD11_022383C4: ; 0x022383C4 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _02238410 ; =0x00002D60 ldr r5, _02238414 ; =0x0225DCA8 ldr r3, [r2, r1] ldr r1, _02238418 ; =0x0000FFFF mov r0, #0 _022383E2: ldrh r2, [r5] cmp r2, r3 bge _022383F2 add r5, r5, #4 ldrh r2, [r5] add r0, r0, #1 cmp r2, r1 bne _022383E2 _022383F2: lsl r2, r0, #2 ldr r0, _02238414 ; =0x0225DCA8 ldrh r1, [r0, r2] ldr r0, _02238418 ; =0x0000FFFF cmp r1, r0 beq _02238404 ldr r0, _0223841C ; =0x0225DCAA ldrh r1, [r0, r2] b _02238406 _02238404: mov r1, #0x78 _02238406: ldr r0, _02238420 ; =0x00002154 str r1, [r4, r0] mov r0, #0 pop {r3, r4, r5, pc} nop _02238410: .word 0x00002D60 _02238414: .word 0x0225DCA8 _02238418: .word 0x0000FFFF _0223841C: .word 0x0225DCAA _02238420: .word 0x00002154 thumb_func_start MOD11_02238424 MOD11_02238424: ; 0x02238424 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #0xd str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022384CC mov r0, #0x4c str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022384CC mov r1, #6 lsl r1, r1, #6 ldr r2, [r4, r1] ldr r0, _022384D0 ; =0x000080FF tst r0, r2 ldr r0, _022384D4 ; =0x00003044 beq _022384BE ldr r0, [r4, r0] lsl r0, r0, #4 add r2, r4, r0 ldr r0, _022384D8 ; =0x000003E1 ldrb r0, [r2, r0] lsl r2, r0, #1 ldr r0, _022384DC ; =0x00002154 str r2, [r4, r0] ldr r2, [r4, r1] mov r1, #3 tst r1, r2 beq _02238486 mov r1, #0xb add r0, #0xc str r1, [r4, r0] _02238486: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0xc tst r0, r1 beq _02238498 ldr r0, _022384E0 ; =0x00002160 mov r1, #5 str r1, [r4, r0] _02238498: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x30 tst r0, r1 beq _022384AA ldr r0, _022384E0 ; =0x00002160 mov r1, #0xa str r1, [r4, r0] _022384AA: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0xc0 tst r0, r1 beq _022384CC ldr r0, _022384E0 ; =0x00002160 mov r1, #0xf str r1, [r4, r0] b _022384CC _022384BE: ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022384D8 ; =0x000003E1 ldrb r1, [r1, r0] ldr r0, _022384DC ; =0x00002154 str r1, [r4, r0] _022384CC: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _022384D0: .word 0x000080FF _022384D4: .word 0x00003044 _022384D8: .word 0x000003E1 _022384DC: .word 0x00002154 _022384E0: .word 0x00002160 thumb_func_start MOD11_022384E4 MOD11_022384E4: ; 0x022384E4 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r1, #0 str r0, [sp] add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 str r0, [sp, #0x10] ldr r0, [sp] bl MOD11_0222FF84 mov r7, #0 str r0, [sp, #0xc] cmp r0, #0 bgt _0223850C b _02238612 _0223850C: mov r0, #0xb5 lsl r0, r0, #6 add r0, r6, r0 str r6, [sp, #8] add r5, r6, #0 str r0, [sp, #4] _02238518: ldr r1, [sp, #8] ldr r0, _02238654 ; =0x000021A8 ldr r0, [r1, r0] cmp r0, #0x27 beq _022385FC ldr r0, _02238658 ; =0x00002D8C ldr r0, [r5, r0] cmp r0, #0 beq _022385FC ldr r0, _0223865C ; =0x00002DAC ldr r1, [r5, r0] mov r0, #0x27 tst r0, r1 bne _022385FC add r0, r6, #0 add r1, r7, #0 bl MOD11_02247190 cmp r0, #0 bne _022385FC ldr r0, [sp] add r1, r7, #0 bl MOD11_02230270 str r0, [sp, #0x14] ldr r0, [sp] ldr r1, [r6, #0x78] bl MOD11_02230270 ldr r1, [sp, #0x14] cmp r1, r0 beq _022385FC ldr r0, _02238660 ; =0x00002DEC ldrh r4, [r5, r0] cmp r4, #0 beq _02238570 add r0, r0, #2 ldrh r0, [r5, r0] lsl r0, r0, #1 add r1, r5, r0 ldr r0, _02238664 ; =0x00002D4C ldrh r0, [r1, r0] cmp r4, r0 beq _0223857A _02238570: add r0, r6, #0 add r1, r7, #0 bl MOD11_0224683C add r4, r0, #0 _0223857A: cmp r4, #0 beq _022385FC lsl r1, r4, #0x10 ldr r0, [sp, #4] lsr r1, r1, #0x10 bl MOD11_022461AC str r0, [sp, #0x18] lsl r0, r4, #4 add r1, r6, r0 ldr r0, _02238668 ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x80 bne _022385FC ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _0223866C ; =0x00002D6C ldrb r0, [r1, r0] cmp r0, #0 beq _022385FC ldr r0, _0223866C ; =0x00002D6C add r1, r6, r0 mov r0, #0xc0 mul r0, r7 add r5, r1, r0 ldr r0, [sp, #0x18] ldrb r0, [r5, r0] sub r1, r0, #1 ldr r0, [sp, #0x18] strb r1, [r5, r0] ldr r1, [r6, #0x78] add r0, r6, #0 bl MOD11_02246D1C cmp r0, #0x2e bne _022385D0 ldr r0, [sp, #0x18] ldrb r0, [r5, r0] cmp r0, #0 beq _022385D0 sub r1, r0, #1 ldr r0, [sp, #0x18] strb r1, [r5, r0] _022385D0: ldr r0, [sp] add r1, r6, #0 bl MOD11_02247264 str r7, [r6, #0x64] ldr r0, [r6, #0x78] lsl r2, r7, #1 str r0, [r6, #0x6c] ldr r1, _02238670 ; =0x00002158 mov r0, #0x14 str r0, [r6, r1] ldr r0, _02238674 ; =0x00003044 add r2, r6, r2 str r4, [r6, r0] add r0, #0x38 strh r4, [r2, r0] lsl r0, r7, #4 mov r2, #0x27 add r0, r6, r0 add r1, #0x50 str r2, [r0, r1] b _02238612 _022385FC: ldr r0, [sp, #8] add r7, r7, #1 add r0, #0x10 str r0, [sp, #8] ldr r0, [sp, #4] add r5, #0xc0 add r0, #0xc0 str r0, [sp, #4] ldr r0, [sp, #0xc] cmp r7, r0 blt _02238518 _02238612: ldr r0, [sp, #0xc] cmp r7, r0 bne _02238622 ldr r1, [sp, #0x10] add r0, r6, #0 bl MOD11_0223A424 b _0223864E _02238622: ldr r1, [r6, #0x64] add r0, r6, #0 bl MOD11_02249D90 add r5, r0, #0 ldr r1, [r6, #0x64] add r0, r6, #0 mov r2, #0 bl MOD11_02249DA4 cmp r5, #0x36 beq _02238642 cmp r5, #0x72 beq _02238642 cmp r5, #0x7c bne _0223864E _02238642: ldr r1, [r6, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r6, r0 ldr r0, _02238678 ; =0x00002DF8 strh r4, [r1, r0] _0223864E: mov r0, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _02238654: .word 0x000021A8 _02238658: .word 0x00002D8C _0223865C: .word 0x00002DAC _02238660: .word 0x00002DEC _02238664: .word 0x00002D4C _02238668: .word 0x000003DE _0223866C: .word 0x00002D6C _02238670: .word 0x00002158 _02238674: .word 0x00003044 _02238678: .word 0x00002DF8 thumb_func_start MOD11_0223867C MOD11_0223867C: ; 0x0223867C push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [r4, #0x64] ldr r3, _022386BC ; =0x00002144 str r0, [sp] ldr r0, [r4, #0x6c] ldr r2, _022386C0 ; =0x00003044 str r0, [sp, #4] ldr r0, [r4, r3] add r1, r4, #0 str r0, [sp, #8] add r0, r3, #0 add r0, #0x28 add r0, r4, r0 str r0, [sp, #0xc] add r3, #0x1c ldr r2, [r4, r2] ldr r3, [r4, r3] add r0, r5, #0 bl MOD11_02246274 ldr r1, _022386BC ; =0x00002144 str r0, [r4, r1] mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _022386BC: .word 0x00002144 _022386C0: .word 0x00003044 thumb_func_start MOD11_022386C4 MOD11_022386C4: ; 0x022386C4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r1, #0 str r0, [sp] add r0, r4, #0 mov r1, #1 mov r6, #0 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r5, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #4] ldr r0, [sp] ldr r2, [sp, #8] add r1, r4, #0 bl MOD11_0223C230 cmp r7, #6 bhi _022387B6 add r1, r7, r7 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02238710: ; jump table .short _0223871E - _02238710 - 2 ; case 0 .short _02238734 - _02238710 - 2 ; case 1 .short _0223874A - _02238710 - 2 ; case 2 .short _02238760 - _02238710 - 2 ; case 3 .short _02238776 - _02238710 - 2 ; case 4 .short _0223878C - _02238710 - 2 ; case 5 .short _022387A2 - _02238710 - 2 ; case 6 _0223871E: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _02238734: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _0223874A: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _02238760: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _02238776: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _0223878C: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1a lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 b _022387B6 _022387A2: lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f cmp r5, r0 bne _022387B6 mov r6, #1 _022387B6: cmp r6, #0 beq _022387C2 ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_0223A424 _022387C2: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_022387C8 MOD11_022387C8: ; 0x022387C8 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r7, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r2, [sp] add r0, r7, #0 add r1, r4, #0 bl MOD11_0223C230 cmp r6, #6 bhi _022388BC add r1, r6, r6 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02238808: ; jump table .short _02238816 - _02238808 - 2 ; case 0 .short _0223882E - _02238808 - 2 ; case 1 .short _02238846 - _02238808 - 2 ; case 2 .short _0223885E - _02238808 - 2 ; case 3 .short _02238876 - _02238808 - 2 ; case 4 .short _0223888E - _02238808 - 2 ; case 5 .short _022388A6 - _02238808 - 2 ; case 6 _02238816: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #1 bic r2, r0 mov r0, #1 and r0, r5 orr r0, r2 str r0, [r1, r3] b _022388BC _0223882E: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #2 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1e orr r0, r2 str r0, [r1, r3] b _022388BC _02238846: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #4 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1d orr r0, r2 str r0, [r1, r3] b _022388BC _0223885E: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #8 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1c orr r0, r2 str r0, [r1, r3] b _022388BC _02238876: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #0x10 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r2 str r0, [r1, r3] b _022388BC _0223888E: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #0x20 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1a orr r0, r2 str r0, [r1, r3] b _022388BC _022388A6: mov r1, #0x75 lsl r1, r1, #2 lsl r3, r0, #6 add r1, r4, r1 ldr r2, [r1, r3] mov r0, #0x40 bic r2, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x19 orr r0, r2 str r0, [r1, r3] _022388BC: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_022388C0 MOD11_022388C0: ; 0x022388C0 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [r4, #0x6c] ldr r1, _022388FC ; =0x000021F0 lsl r0, r0, #2 add r0, r4, r0 ldr r2, [r0, r1] mov r0, #0x19 mul r0, r2 ldr r2, [r4, #0x64] lsl r2, r2, #2 add r2, r4, r2 ldr r1, [r2, r1] bl _u32_div_f add r1, r0, #1 ldr r0, _02238900 ; =0x00002154 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0x96 ble _022388F6 mov r1, #0x96 str r1, [r4, r0] _022388F6: mov r0, #0 pop {r4, pc} nop _022388FC: .word 0x000021F0 _02238900: .word 0x00002154 thumb_func_start MOD11_02238904 MOD11_02238904: ; 0x02238904 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] ldr r1, [r5, #0x64] add r0, r6, #0 bl MOD11_02230270 ldr r1, [r5, #0x64] add r7, r0, #0 lsl r1, r1, #6 add r2, r5, r1 mov r1, #0x83 lsl r1, r1, #2 ldr r1, [r2, r1] add r0, r6, #0 bl MOD11_02230270 add r4, r0, #0 ldr r0, [r5, #0x64] mov r2, #0x82 lsl r0, r0, #6 add r0, r5, r0 lsl r2, r2, #2 ldr r1, [r0, r2] cmp r1, #0 beq _022389E4 cmp r7, r4 beq _022389E4 add r2, r2, #4 ldr r2, [r0, r2] mov r0, #0xc0 mul r0, r2 add r2, r5, r0 ldr r0, _022389F0 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _022389E4 mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f ldr r1, _022389F4 ; =0x00002144 str r0, [r5, r1] mov r0, #0x71 lsl r0, r0, #2 add r1, r5, r0 lsl r0, r4, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02238992 lsl r0, r0, #9 lsr r0, r0, #0x1e mov r1, #0xc0 mul r1, r0 add r2, r5, r1 ldr r1, _022389F0 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02238992 str r0, [r5, #0x6c] b _022389A0 _02238992: ldr r0, [r5, #0x64] lsl r0, r0, #6 add r1, r5, r0 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r1, r0] str r0, [r5, #0x6c] _022389A0: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022389F0 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _022389D8 ldr r2, [r5, #0x64] add r0, r6, #0 add r1, r5, #0 bl MOD11_022482A4 mov r1, #0xc0 mul r1, r0 str r0, [r5, #0x6c] ldr r0, _022389F0 ; =0x00002D8C add r1, r5, r1 ldr r0, [r1, r0] cmp r0, #0 bne _022389D8 mov r2, #0x26 str r2, [r5, #0xc] add r0, r5, #0 mov r1, #1 add r2, #0xf3 bl MOD11_0223A434 _022389D8: ldr r1, [r5, #0x64] ldr r2, [r5, #0x6c] add r0, r5, #0 bl MOD11_0224C438 b _022389EC _022389E4: ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 _022389EC: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022389F0: .word 0x00002D8C _022389F4: .word 0x00002144 thumb_func_start MOD11_022389F8 MOD11_022389F8: ; 0x022389F8 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r0, [r4, #0x6c] ldr r1, _02238A34 ; =0x000021A8 lsl r0, r0, #4 add r0, r4, r0 ldr r0, [r0, r1] cmp r0, #0x27 ldr r0, _02238A38 ; =0x00003044 bne _02238A22 ldr r0, [r4, r0] lsl r0, r0, #4 add r2, r4, r0 ldr r0, _02238A3C ; =0x000003E1 ldrb r0, [r2, r0] lsl r0, r0, #1 b _02238A2C _02238A22: ldr r0, [r4, r0] lsl r0, r0, #4 add r2, r4, r0 ldr r0, _02238A3C ; =0x000003E1 ldrb r0, [r2, r0] _02238A2C: sub r1, #0x54 str r0, [r4, r1] mov r0, #0 pop {r4, pc} .align 2, 0 _02238A34: .word 0x000021A8 _02238A38: .word 0x00003044 _02238A3C: .word 0x000003E1 thumb_func_start MOD11_02238A40 MOD11_02238A40: ; 0x02238A40 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 lsl r0, r1, #1 add r1, r4, r0 ldr r0, _02238A74 ; =0x000030BC ldrh r0, [r1, r0] add r1, r2, r0 ldr r0, _02238A78 ; =0x00002D6C ldrb r1, [r1, r0] cmp r1, #4 bls _02238A68 mov r1, #4 _02238A68: ldr r0, _02238A7C ; =0x0225DC2C ldrb r1, [r0, r1] ldr r0, _02238A80 ; =0x00002154 str r1, [r4, r0] mov r0, #0 pop {r4, pc} .align 2, 0 _02238A74: .word 0x000030BC _02238A78: .word 0x00002D6C _02238A7C: .word 0x0225DC2C _02238A80: .word 0x00002154 thumb_func_start MOD11_02238A84 MOD11_02238A84: ; 0x02238A84 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r3, r4, r0 ldr r1, _02238AB4 ; =0x00002D8C mov r0, #0x78 ldr r2, [r3, r1] add r1, r1, #4 ldr r1, [r3, r1] mul r0, r2 bl _u32_div_f add r1, r0, #1 ldr r0, _02238AB8 ; =0x00002154 str r1, [r4, r0] mov r0, #0 pop {r4, pc} nop _02238AB4: .word 0x00002D8C _02238AB8: .word 0x00002154 thumb_func_start MOD11_02238ABC MOD11_02238ABC: ; 0x02238ABC push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 ldr r3, _02238B68 ; =0x00002DEC add r0, r5, r0 ldrh r4, [r0, r3] cmp r4, #0 beq _02238AF0 add r2, r3, #2 ldrh r2, [r0, r2] sub r3, #0xa0 lsl r2, r2, #1 add r0, r0, r2 ldrh r0, [r0, r3] cmp r4, r0 beq _02238AF8 _02238AF0: add r0, r5, #0 bl MOD11_0224683C add r4, r0, #0 _02238AF8: ldr r0, [r5, #0x6c] lsl r1, r0, #4 add r2, r5, r1 ldr r1, _02238B6C ; =0x000021A8 ldr r1, [r2, r1] cmp r1, #0x27 beq _02238B5C lsl r0, r0, #6 add r1, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02238B5C add r0, r5, #0 add r1, r4, #0 bl MOD11_0224C0F0 cmp r0, #1 bne _02238B5C lsl r0, r4, #4 add r1, r5, r0 ldr r0, _02238B70 ; =0x000003E1 ldrb r0, [r1, r0] cmp r0, #0 beq _02238B5C ldr r2, [r5, #0x64] ldr r3, _02238B74 ; =0x00002DCC add r0, r2, #0 mov r6, #0xc0 add r1, r5, r3 mul r0, r6 mov r2, #1 ldr r7, [r1, r0] lsl r2, r2, #0x1e orr r2, r7 str r2, [r1, r0] add r0, r6, #0 add r0, #0xb4 ldr r2, [r5, r0] ldr r0, [r5, #0x64] add r3, #0x10 add r1, r0, #0 mul r1, r6 add r0, r5, r1 str r2, [r0, r3] add r6, #0x64 str r4, [r5, r6] b _02238B64 _02238B5C: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _02238B64: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02238B68: .word 0x00002DEC _02238B6C: .word 0x000021A8 _02238B70: .word 0x000003E1 _02238B74: .word 0x00002DCC thumb_func_start MOD11_02238B78 MOD11_02238B78: ; 0x02238B78 push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 ldr r0, _02238BC8 ; =0x00003048 ldr r0, [r5, r0] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl MOD11_02246BE8 cmp r0, #0 bne _02238BBC ldr r0, _02238BC8 ; =0x00003048 ldr r0, [r5, r0] cmp r0, #0 beq _02238BBC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl MOD11_0224C07C cmp r0, #1 bne _02238BBC ldr r0, _02238BC8 ; =0x00003048 ldr r1, [r5, r0] mov r0, #0x49 lsl r0, r0, #2 str r1, [r5, r0] b _02238BC4 _02238BBC: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 _02238BC4: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _02238BC8: .word 0x00003048 thumb_func_start MOD11_02238BCC MOD11_02238BCC: ; 0x02238BCC push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 ldr r5, _02238C1C ; =0x00002D58 mov r1, #0 ldr r3, [r4, #0x6c] mov r2, #0xc0 mul r2, r3 add r3, r4, r2 add r0, r1, #0 add r2, r3, #0 add r6, r5, #0 _02238BEA: ldrsb r7, [r2, r6] cmp r7, #6 ble _02238BF8 add r7, r3, r0 ldrsb r7, [r7, r5] sub r7, r7, #6 add r1, r1, r7 _02238BF8: add r0, r0, #1 add r2, r2, #1 cmp r0, #8 blt _02238BEA mov r0, #0x14 add r2, r1, #0 mul r2, r0 ldr r0, _02238C20 ; =0x00002154 add r2, #0x3c str r2, [r4, r0] ldr r1, [r4, r0] cmp r1, #0xc8 ble _02238C16 mov r1, #0xc8 str r1, [r4, r0] _02238C16: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02238C1C: .word 0x00002D58 _02238C20: .word 0x00002154 thumb_func_start MOD11_02238C24 MOD11_02238C24: ; 0x02238C24 push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 ldr r6, _02238C94 ; =0x00002DEC add r2, r5, r0 ldrh r0, [r2, r6] cmp r0, #0 beq _02238C58 add r3, r6, #2 ldrh r3, [r2, r3] sub r6, #0xa0 lsl r3, r3, #1 add r2, r2, r3 ldrh r2, [r2, r6] cmp r0, r2 beq _02238C5E _02238C58: add r0, r5, #0 bl MOD11_0224683C _02238C5E: ldr r1, [r5, #0x6c] lsl r2, r1, #4 add r3, r5, r2 ldr r2, _02238C98 ; =0x000021A8 ldr r2, [r3, r2] cmp r2, #0x27 beq _02238C88 lsl r0, r0, #4 add r2, r5, r0 ldr r0, _02238C9C ; =0x000003E1 ldrb r0, [r2, r0] cmp r0, #0 bne _02238C90 lsl r0, r1, #6 add r1, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02238C90 _02238C88: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A424 _02238C90: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _02238C94: .word 0x00002DEC _02238C98: .word 0x000021A8 _02238C9C: .word 0x000003E1 thumb_func_start MOD11_02238CA0 MOD11_02238CA0: ; 0x02238CA0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r1, #0 add r7, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r4, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] ldr r2, [sp, #8] add r0, r7, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r7, #0 bl MOD11_02230270 ldr r1, [sp, #4] cmp r1, #0 beq _02238CF2 cmp r1, #1 beq _02238CF2 cmp r1, #2 beq _02238D70 b _02238E4A _02238CF2: cmp r6, #5 bls _02238CF8 b _02238E4A _02238CF8: add r1, r6, r6 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02238D04: ; jump table .short _02238D10 - _02238D04 - 2 ; case 0 .short _02238D20 - _02238D04 - 2 ; case 1 .short _02238D30 - _02238D04 - 2 ; case 2 .short _02238D40 - _02238D04 - 2 ; case 3 .short _02238D50 - _02238D04 - 2 ; case 4 .short _02238D60 - _02238D04 - 2 ; case 5 _02238D10: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1b lsr r5, r0, #0x1d b _02238E4A _02238D20: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x16 lsr r5, r0, #0x1d b _02238E4A _02238D30: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x11 lsr r5, r0, #0x1d b _02238E4A _02238D40: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0xc lsr r5, r0, #0x1d b _02238E4A _02238D50: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1e lsr r5, r0, #0x1e b _02238E4A _02238D60: lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1c lsr r5, r0, #0x1e b _02238E4A _02238D70: cmp r6, #5 bhi _02238E4A add r1, r6, r6 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02238D80: ; jump table .short _02238D8C - _02238D80 - 2 ; case 0 .short _02238DAC - _02238D80 - 2 ; case 1 .short _02238DCC - _02238D80 - 2 ; case 2 .short _02238DEC - _02238D80 - 2 ; case 3 .short _02238E0C - _02238D80 - 2 ; case 4 .short _02238E2C - _02238D80 - 2 ; case 5 _02238D8C: mov r2, #0x71 lsl r2, r2, #2 add r6, r4, r2 lsl r3, r0, #3 ldr r7, [r6, r3] mov r1, #0x1c bic r7, r1 sub r2, #8 str r7, [r6, r3] add r3, r4, r2 lsl r2, r0, #2 ldr r1, [r3, r2] mov r0, #1 bic r1, r0 str r1, [r3, r2] b _02238E4A _02238DAC: mov r2, #0x71 lsl r2, r2, #2 add r6, r4, r2 lsl r7, r0, #3 ldr r3, [r6, r7] ldr r1, _02238E74 ; =0xFFFFFC7F sub r2, #8 and r1, r3 add r3, r4, r2 lsl r2, r0, #2 str r1, [r6, r7] ldr r1, [r3, r2] mov r0, #2 bic r1, r0 str r1, [r3, r2] b _02238E4A _02238DCC: mov r2, #0x71 lsl r2, r2, #2 add r6, r4, r2 lsl r7, r0, #3 ldr r3, [r6, r7] ldr r1, _02238E78 ; =0xFFFF8FFF sub r2, #8 and r1, r3 add r3, r4, r2 lsl r2, r0, #2 str r1, [r6, r7] ldr r1, [r3, r2] mov r0, #0x40 bic r1, r0 str r1, [r3, r2] b _02238E4A _02238DEC: mov r2, #0x71 lsl r2, r2, #2 add r6, r4, r2 lsl r7, r0, #3 ldr r3, [r6, r7] ldr r1, _02238E7C ; =0xFFF1FFFF sub r2, #8 and r1, r3 add r3, r4, r2 lsl r2, r0, #2 str r1, [r6, r7] ldr r1, [r3, r2] mov r0, #8 bic r1, r0 str r1, [r3, r2] b _02238E4A _02238E0C: mov r2, #0x72 lsl r2, r2, #2 add r6, r4, r2 lsl r3, r0, #3 ldr r7, [r6, r3] mov r1, #3 bic r7, r1 sub r2, #0xc str r7, [r6, r3] add r3, r4, r2 lsl r2, r0, #2 ldr r1, [r3, r2] mov r0, #4 bic r1, r0 str r1, [r3, r2] b _02238E4A _02238E2C: mov r2, #0x72 lsl r2, r2, #2 add r6, r4, r2 lsl r3, r0, #3 ldr r7, [r6, r3] mov r1, #0xc bic r7, r1 sub r2, #0xc str r7, [r6, r3] lsl r3, r0, #2 add r1, r4, r2 ldr r2, [r1, r3] ldr r0, _02238E80 ; =0xFFFFFBFF and r0, r2 str r0, [r1, r3] _02238E4A: ldr r0, [sp, #4] cmp r0, #0 bne _02238E5C cmp r5, #0 bne _02238E5C ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 _02238E5C: ldr r0, [sp, #4] cmp r0, #1 bne _02238E6E cmp r5, #0 beq _02238E6E ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 _02238E6E: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02238E74: .word 0xFFFFFC7F _02238E78: .word 0xFFFF8FFF _02238E7C: .word 0xFFF1FFFF _02238E80: .word 0xFFFFFBFF thumb_func_start MOD11_02238E84 MOD11_02238E84: ; 0x02238E84 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 ldr r0, [r4, #0x6c] lsl r0, r0, #6 add r2, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r2, r0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bne _02238EB0 add r0, r4, #0 bl MOD11_0223A424 _02238EB0: mov r0, #0 pop {r4, pc} thumb_func_start MOD11_02238EB4 MOD11_02238EB4: ; 0x02238EB4 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 ldr r0, [r4, #0x6c] mov r2, #0xc0 add r3, r0, #0 mul r3, r2 add r5, r4, r3 ldr r3, _02238EFC ; =0x00002DAC ldr r0, [r5, r3] cmp r0, #0 bne _02238EF2 add r0, r3, #4 ldr r5, [r5, r0] mov r0, #1 lsl r0, r0, #0x18 tst r0, r5 bne _02238EF2 ldr r0, [r4, #0x64] mul r2, r0 add r0, r4, r2 ldr r0, [r0, r3] cmp r0, #0 bne _02238EF8 _02238EF2: add r0, r4, #0 bl MOD11_0223A424 _02238EF8: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _02238EFC: .word 0x00002DAC thumb_func_start MOD11_02238F00 MOD11_02238F00: ; 0x02238F00 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 bl MOD11_022473F8 ldr r2, [r4, #0x64] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _02238F48 ; =0x00002DCC ldr r1, [r2, r1] lsl r1, r1, #0x13 lsr r2, r1, #0x1d sub r1, r0, #1 cmp r2, r1 blo _02238F3A cmp r0, #2 bge _02238F42 _02238F3A: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _02238F42: mov r0, #0 pop {r4, r5, r6, pc} nop _02238F48: .word 0x00002DCC thumb_func_start MOD11_02238F4C MOD11_02238F4C: ; 0x02238F4C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 mov r2, #0x72 mov r1, #1 add r3, r0, #0 eor r3, r1 lsl r0, r3, #3 add r5, r4, r0 lsl r2, r2, #2 ldr r5, [r5, r2] lsl r5, r5, #0x1c lsr r5, r5, #0x1e cmp r5, #2 bne _02238FA2 mov r0, #0xb5 lsl r0, r0, #2 add r2, r4, r0 ldr r3, [r4, #0x64] mov r0, #0x1c mul r0, r3 ldr r5, [r2, r0] mov r3, #1 bic r5, r3 orr r1, r5 str r1, [r2, r0] add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 b _02238FCA _02238FA2: add r5, r2, #0 sub r5, #0xc add r5, r4, r5 lsl r3, r3, #2 ldr r6, [r5, r3] lsl r1, r1, #0xa orr r1, r6 str r1, [r5, r3] add r2, r4, r2 ldr r4, [r2, r0] mov r3, #0xc add r1, r4, #0 bic r1, r3 lsl r3, r4, #0x1c lsr r3, r3, #0x1e add r3, r3, #1 lsl r3, r3, #0x1e lsr r3, r3, #0x1c orr r1, r3 str r1, [r2, r0] _02238FCA: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02238FD0 MOD11_02238FD0: ; 0x02238FD0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r4, #0 add r1, r5, #0 add r2, r6, #0 bl MOD11_0223C230 add r7, r0, #0 add r0, r4, #0 add r1, r7, #0 bl MOD11_02230270 mov r1, #0x72 lsl r1, r1, #2 add r4, r5, r1 lsl r6, r0, #3 str r0, [sp] ldr r0, [r4, r6] lsl r0, r0, #0x1c lsr r0, r0, #0x1e beq _0223906A sub r1, #0x94 str r0, [r5, r1] add r0, r5, #0 mov r1, #6 add r0, #0x88 str r1, [r0] add r0, r5, #0 add r0, #0x94 str r7, [r0] ldr r1, [r5, #0x78] add r0, r5, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #3 beq _02239048 ldr r1, [r5, #0x78] add r0, r5, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #3 bne _02239072 _02239048: mov r0, #0x6f ldr r1, [sp] lsl r0, r0, #2 add r2, r5, r0 lsl r1, r1, #2 ldr r7, [r2, r1] ldr r3, _02239078 ; =0xFFFFFBFF sub r0, #0x88 and r3, r7 str r3, [r2, r1] ldr r2, [r4, r6] mov r1, #0xc bic r2, r1 str r2, [r4, r6] mov r1, #0 str r1, [r5, r0] b _02239072 _0223906A: ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0223A424 _02239072: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02239078: .word 0xFFFFFBFF thumb_func_start MOD11_0223907C MOD11_0223907C: ; 0x0223907C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #8] add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #4] cmp r4, #0 bne _0223912C add r0, r6, #0 bl MOD11_0222FF84 mov r6, #0 str r0, [sp] cmp r0, #0 ble _02239194 _022390BE: ldr r0, _0223919C ; =0x000021EC add r1, r5, r6 ldrb r4, [r1, r0] ldr r0, [sp, #8] cmp r0, #0 bne _022390F6 ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02246D84 cmp r0, #1 bne _02239122 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022391A0 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02239122 ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] b _02239194 _022390F6: ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02246D84 cmp r0, #0 beq _02239114 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022391A0 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _02239122 _02239114: ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] b _02239194 _02239122: ldr r0, [sp] add r6, r6, #1 cmp r6, r0 blt _022390BE b _02239194 _0223912C: add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r4, r0, #0 ldr r0, [sp, #8] cmp r0, #0 bne _0223916A ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02246D84 cmp r0, #1 bne _02239194 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022391A0 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02239194 ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] b _02239194 _0223916A: ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02246D84 cmp r0, #0 beq _02239188 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022391A0 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _02239194 _02239188: ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0223A424 add r5, #0x80 str r4, [r5] _02239194: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _0223919C: .word 0x000021EC _022391A0: .word 0x00002D8C thumb_func_start MOD11_022391A4 MOD11_022391A4: ; 0x022391A4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_0223C230 add r7, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02230270 add r6, r0, #0 add r0, r5, #0 add r1, r7, #0 bl MOD11_02230270 cmp r6, r0 bne _02239200 ldr r1, [sp] add r0, r4, #0 bl MOD11_0223A424 _02239200: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02239204 MOD11_02239204: ; 0x02239204 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r0, [sp] add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 mov r7, #0 ldr r0, [sp] add r1, r7, #0 bl MOD11_0222FFC8 cmp r0, #0 bgt _02239222 b _02239360 _02239222: ldr r0, [sp] mov r1, #0 add r2, r7, #0 bl MOD11_02230014 mov r1, #0xad mov r2, #0 add r4, r0, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0 mov r1, #6 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] add r0, r4, #0 mov r1, #0xa mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] cmp r0, #0x35 bne _022392EC cmp r6, #0 beq _022392EC ldr r0, _02239368 ; =0x000001EE cmp r6, r0 beq _022392EC ldr r0, [sp, #8] cmp r0, #0 bne _022392EC bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #0 bne _022392EC bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f add r5, r1, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC sub r0, r0, #1 mov r1, #0xa bl _u32_div_f lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0xa blo _022392A4 mov r2, #9 _022392A4: mov r1, #0 ldr r3, _0223936C ; =0x0225E150 str r1, [sp, #0xc] _022392AA: ldrb r0, [r3] cmp r0, r5 ble _022392C4 ldr r3, [sp, #0xc] ldr r5, _02239370 ; =0x0225DD24 add r2, r2, r3 lsl r2, r2, #1 add r0, r4, #0 mov r1, #6 add r2, r5, r2 bl FUN_02067830 b _022392EC _022392C4: cmp r5, #0x62 blt _022392E2 cmp r5, #0x63 bgt _022392E2 mov r3, #0x63 sub r3, r3, r5 add r2, r2, r3 lsl r3, r2, #1 ldr r2, _02239374 ; =0x0225DC48 add r0, r4, #0 mov r1, #6 add r2, r2, r3 bl FUN_02067830 b _022392EC _022392E2: add r1, r1, #1 add r3, r3, #1 str r1, [sp, #0xc] cmp r1, #9 blt _022392AA _022392EC: ldr r0, [sp, #4] cmp r0, #0x76 bne _02239350 cmp r6, #0 beq _02239350 ldr r0, _02239368 ; =0x000001EE cmp r6, r0 beq _02239350 ldr r0, [sp, #8] cmp r0, #0 bne _02239350 mov r2, #0 add r0, r4, #0 mov r1, #0xa0 str r2, [sp, #0xc] mov r5, #0xa bl FUN_020671BC lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r1, #0xa ble _02239324 ldr r0, [sp, #0xc] _0223931A: add r5, #0xa add r0, r0, #1 cmp r5, r1 blt _0223931A str r0, [sp, #0xc] _02239324: ldr r0, [sp, #0xc] cmp r0, #0xa blt _0223932E bl ErrorHandling _0223932E: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f ldr r2, [sp, #0xc] ldr r0, _02239378 ; =0x0225E15C ldrb r0, [r0, r2] cmp r1, r0 bge _02239350 mov r0, #0x5e str r0, [sp, #0xc] add r0, r4, #0 mov r1, #6 add r2, sp, #0xc bl FUN_02067830 _02239350: ldr r0, [sp] mov r1, #0 add r7, r7, #1 bl MOD11_0222FFC8 cmp r7, r0 bge _02239360 b _02239222 _02239360: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _02239368: .word 0x000001EE _0223936C: .word 0x0225E150 _02239370: .word 0x0225DD24 _02239374: .word 0x0225DC48 _02239378: .word 0x0225E15C thumb_func_start MOD11_0223937C MOD11_0223937C: ; 0x0223937C push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r0, #0xb5 ldr r1, [r4, #0x64] lsl r0, r0, #2 add r3, r4, r0 mov r0, #0x1c add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] mov r0, #0x10 orr r0, r1 str r0, [r3, r2] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_022393A4 MOD11_022393A4: ; 0x022393A4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_02249B7C cmp r0, #1 bne _022393E0 add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 _022393E0: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_022393E4 MOD11_022393E4: ; 0x022393E4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp, #4] add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 ldr r0, [sp] ldr r2, [sp, #4] add r1, r5, #0 bl MOD11_0223C230 add r1, r0, #0 cmp r6, #0 bne _02239438 add r0, r5, #0 bl MOD11_02249D90 cmp r4, r0 bne _0223944A add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 b _0223944A _02239438: add r0, r5, #0 bl MOD11_02249D90 cmp r4, r0 beq _0223944A add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 _0223944A: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02239450 MOD11_02239450: ; 0x02239450 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A444 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 mov r2, #1 bl MOD11_0224C12C str r0, [r6] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0223949C MOD11_0223949C: ; 0x0223949C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223A444 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 mov r2, #2 bl MOD11_0224C12C str r0, [r6] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022394E8 MOD11_022394E8: ; 0x022394E8 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x79 bne _02239516 add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 mov r0, #0 pop {r4, r5, r6, pc} _02239516: add r0, r4, #0 bl MOD11_02230294 ldr r1, _02239570 ; =0x0225E168 mov r2, #0x1b ldrb r4, [r1, r0] ldr r1, [r5, #0x64] add r0, r5, #0 mov r3, #0 bl MOD11_02243420 cmp r4, r0 beq _02239564 ldr r1, [r5, #0x64] add r0, r5, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r4, r0 beq _02239564 ldr r1, [r5, #0x64] lsl r0, r4, #0x18 add r3, r1, #0 mov r2, #0xc0 mul r3, r2 ldr r1, _02239574 ; =0x00002D64 lsr r0, r0, #0x18 add r3, r5, r3 strb r0, [r3, r1] ldr r3, [r5, #0x64] add r1, r1, #1 add r6, r3, #0 mul r6, r2 add r3, r5, r6 strb r0, [r3, r1] add r2, #0x70 str r4, [r5, r2] b _0223956C _02239564: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _0223956C: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _02239570: .word 0x0225E168 _02239574: .word 0x00002D64 thumb_func_start MOD11_02239578 MOD11_02239578: ; 0x02239578 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_02230294 lsl r1, r0, #1 ldr r0, _0223959C ; =0x0225DD0A ldrh r1, [r0, r1] mov r0, #0x49 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _0223959C: .word 0x0225DD0A thumb_func_start MOD11_022395A0 MOD11_022395A0: ; 0x022395A0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_02230294 lsl r1, r0, #2 ldr r0, _022395C4 ; =0x0225DD48 ldr r1, [r0, r1] ldr r0, _022395C8 ; =0x00002174 str r1, [r4, r0] mov r0, #0 pop {r3, r4, r5, pc} nop _022395C4: .word 0x0225DD48 _022395C8: .word 0x00002174 thumb_func_start MOD11_022395CC MOD11_022395CC: ; 0x022395CC push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r5, r0, #0 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249DF0 cmp r0, #0 beq _022395FE ldr r1, _0223960C ; =0x00002154 str r0, [r4, r1] ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249E04 ldr r1, _02239610 ; =0x00002160 str r0, [r4, r1] b _02239606 _022395FE: add r0, r4, #0 add r1, r5, #0 bl MOD11_0223A424 _02239606: mov r0, #0 pop {r3, r4, r5, pc} nop _0223960C: .word 0x00002154 _02239610: .word 0x00002160 thumb_func_start MOD11_02239614 MOD11_02239614: ; 0x02239614 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02239674 ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 beq _0223965A ldr r1, [r4, #0x64] add r0, r4, #0 mov r3, #0x3c bl MOD11_02246D84 cmp r0, #1 bne _0223965A add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 b _02239670 _0223965A: ldr r2, [r4, #0x6c] add r0, r5, #0 add r1, r4, #0 bl MOD11_02249F8C cmp r0, #1 beq _02239670 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _02239670: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02239674: .word 0x00002DB8 thumb_func_start MOD11_02239678 MOD11_02239678: ; 0x02239678 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 bl MOD11_0224A4E0 cmp r0, #1 beq _022396A4 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _022396A4: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_022396A8 MOD11_022396A8: ; 0x022396A8 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] mov r2, #0 str r2, [sp, #4] add r0, r5, #0 add r1, r4, #0 add r3, r2, #0 str r2, [sp, #8] bl MOD11_02255980 mov r0, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022396D8 MOD11_022396D8: ; 0x022396D8 push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #0 bl MOD11_0224AD90 add r4, r0, #0 beq _02239714 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r1, r0, #0 cmp r4, #0xff bne _0223970C add r0, r5, #0 bl MOD11_0223A424 b _02239714 _0223970C: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _02239714: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_02239718 MOD11_02239718: ; 0x02239718 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 bl MOD11_0222FF84 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 mov r2, #0 str r2, [sp] mov r0, #6 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 add r3, r2, #0 bl MOD11_022558E0 mov r0, #0 str r0, [r4, #0x78] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239748 MOD11_02239748: ; 0x02239748 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #0 bl MOD11_0224AD90 add r5, r0, #0 beq _0223977A add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 cmp r5, #0xff bne _02239774 add r0, r4, #0 bl MOD11_0223A424 b _0223977A _02239774: ldr r0, _02239780 ; =0x000021A0 sub r1, r5, #1 strb r1, [r4, r0] _0223977A: mov r0, #0 pop {r3, r4, r5, pc} nop _02239780: .word 0x000021A0 thumb_func_start MOD11_02239784 MOD11_02239784: ; 0x02239784 push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 beq _022397A2 add r0, r4, #0 bl MOD11_02256774 _022397A2: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_022397A8 MOD11_022397A8: ; 0x022397A8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 str r0, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 bl MOD11_02230270 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 add r2, r0, #0 lsl r0, r6, #2 add r1, r5, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #0x80 tst r0, r1 beq _0223989C mov r0, #0xc0 add r6, r4, #0 mul r6, r0 ldr r0, _022398A8 ; =0x00002D8C add r1, r5, r6 ldr r0, [r1, r0] cmp r0, #0 beq _0223989C lsl r1, r7, #0x18 lsl r2, r2, #0x18 mov r0, #5 lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl MOD11_02246B9C cmp r0, #0x14 bgt _0223983A bge _02239862 cmp r0, #0 bgt _02239834 beq _02239872 b _0223987E _02239834: cmp r0, #0xa beq _0223986A b _0223987E _0223983A: cmp r0, #0x50 bgt _02239846 bge _02239852 cmp r0, #0x28 beq _0223985A b _0223987E _02239846: cmp r0, #0xa0 bne _0223987E ldr r0, _022398AC ; =0x0000215C mov r1, #2 str r1, [r5, r0] b _02239882 _02239852: ldr r0, _022398AC ; =0x0000215C mov r1, #4 str r1, [r5, r0] b _02239882 _0223985A: ldr r0, _022398AC ; =0x0000215C mov r1, #8 str r1, [r5, r0] b _02239882 _02239862: ldr r0, _022398AC ; =0x0000215C mov r1, #0x10 str r1, [r5, r0] b _02239882 _0223986A: ldr r0, _022398AC ; =0x0000215C mov r1, #0x20 str r1, [r5, r0] b _02239882 _02239872: ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223987E: bl ErrorHandling _02239882: ldr r0, _022398B0 ; =0x00002D90 add r1, r5, r6 ldr r1, [r1, r0] mov r0, #0 mvn r0, r0 mul r0, r1 ldr r1, _022398AC ; =0x0000215C ldr r1, [r5, r1] bl MOD11_022476C0 ldr r1, _022398AC ; =0x0000215C str r0, [r5, r1] b _022398A4 _0223989C: ldr r1, [sp] add r0, r5, #0 bl MOD11_0223A424 _022398A4: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022398A8: .word 0x00002D8C _022398AC: .word 0x0000215C _022398B0: .word 0x00002D90 thumb_func_start MOD11_022398B4 MOD11_022398B4: ; 0x022398B4 push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x20 ldr r0, _0223992C ; =0x00003044 bne _022398E6 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02239930 ; =0x000003E5 ldrb r0, [r1, r0] lsl r0, r0, #0x11 lsr r4, r0, #0x10 b _022398F0 _022398E6: ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02239930 ; =0x000003E5 ldrb r4, [r1, r0] _022398F0: cmp r4, #0 bne _022398F8 bl ErrorHandling _022398F8: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r4 bge _0223991E add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02239934 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _0223991E mov r0, #0 pop {r4, r5, r6, pc} _0223991E: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 mov r0, #0 pop {r4, r5, r6, pc} nop _0223992C: .word 0x00003044 _02239930: .word 0x000003E5 _02239934: .word 0x00002D8C thumb_func_start MOD11_02239938 MOD11_02239938: ; 0x02239938 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r6, r0, #0 mov r3, #0xb5 mov r2, #0xc0 ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r0, r5, r0 lsl r3, r3, #6 ldrh r4, [r0, r3] add r2, #0xf9 cmp r4, r2 bne _022399BA ldr r4, [r5, #0x6c] mov r2, #0xc0 mul r2, r4 add r4, r5, r2 add r2, r3, #0 add r2, #0x4c ldr r2, [r4, r2] cmp r2, #0 beq _022399BA add r3, #0x70 ldr r2, [r0, r3] mov r0, #2 lsl r0, r0, #0x14 tst r0, r2 bne _022399BA add r0, r7, #0 bl MOD11_02230E88 bl FUN_02005EE0 cmp r0, #0 beq _02239998 cmp r0, #1 beq _0223999C cmp r0, #2 beq _022399A0 _02239998: mov r4, #0 b _022399A2 _0223999C: mov r4, #0xa b _022399A2 _022399A0: mov r4, #0x1e _022399A2: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r4 ble _022399C2 add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 b _022399C2 _022399BA: add r0, r5, #0 add r1, r6, #0 bl MOD11_0223A424 _022399C2: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022399C8 MOD11_022399C8: ; 0x022399C8 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 ldr r0, _022399F8 ; =0x000003DE add r2, r4, r0 ldr r0, _022399FC ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r0, r2, r0 bl FUN_0206AB58 mov r1, #0x4d lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0 pop {r4, pc} nop _022399F8: .word 0x000003DE _022399FC: .word 0x00003044 thumb_func_start MOD11_02239A00 MOD11_02239A00: ; 0x02239A00 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 ldr r3, [sp] add r0, r5, #0 add r2, r7, #0 bl MOD11_022562E4 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02239A40 MOD11_02239A40: ; 0x02239A40 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_02256308 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239A6C MOD11_02239A6C: ; 0x02239A6C push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 mov r1, #0 bl MOD11_02256398 mov r0, #0 pop {r4, pc} thumb_func_start MOD11_02239A84 MOD11_02239A84: ; 0x02239A84 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 mov r0, #0x4a lsl r0, r0, #2 ldr r0, [r4, r0] ldr r2, _02239AC0 ; =0x0000219C str r0, [sp] add r3, r4, r1 ldrb r2, [r3, r2] add r0, r5, #0 mov r3, #0 bl MOD11_02230370 mov r0, #0 pop {r3, r4, r5, pc} nop _02239AC0: .word 0x0000219C thumb_func_start MOD11_02239AC4 MOD11_02239AC4: ; 0x02239AC4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_022470B8 cmp r0, #0 beq _02239B02 add r0, r4, #0 add r1, r7, #0 bl MOD11_0223A424 _02239B02: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02239B08 MOD11_02239B08: ; 0x02239B08 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_022563D0 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239B34 MOD11_02239B34: ; 0x02239B34 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_022563F8 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239B60 MOD11_02239B60: ; 0x02239B60 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_02256420 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239B8C MOD11_02239B8C: ; 0x02239B8C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 bl MOD11_02256448 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02239BB8 MOD11_02239BB8: ; 0x02239BB8 push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_02256470 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02239BD0 MOD11_02239BD0: ; 0x02239BD0 push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0225648C mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02239BE8 MOD11_02239BE8: ; 0x02239BE8 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 str r0, [sp] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 ldr r3, [sp] add r0, r5, #0 add r2, r7, #0 bl MOD11_022564A8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02239C28 MOD11_02239C28: ; 0x02239C28 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_022564F4 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02239C54 MOD11_02239C54: ; 0x02239C54 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 mov r2, #0x4e lsl r2, r2, #2 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r4, r2 bl MOD11_02248308 cmp r0, #0 bne _02239C84 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _02239C84: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_02239C88 MOD11_02239C88: ; 0x02239C88 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r2, r0, #0 cmp r2, #3 beq _02239CAE cmp r2, #4 beq _02239CD6 b _02239CFE _02239CAE: mov r5, #0 cmp r6, #0 ble _02239D0E mov r7, #1 _02239CB6: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02239D14 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 bne _02239CCE add r0, r4, #0 add r1, r5, #0 bl MOD11_022565A0 _02239CCE: add r5, r5, #1 cmp r5, r6 blt _02239CB6 b _02239D0E _02239CD6: mov r5, #0 cmp r6, #0 ble _02239D0E mov r7, #1 _02239CDE: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02239D14 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _02239CF6 add r0, r4, #0 add r1, r5, #0 bl MOD11_022565A0 _02239CF6: add r5, r5, #1 cmp r5, r6 blt _02239CDE b _02239D0E _02239CFE: add r0, r4, #0 add r1, r5, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_022565A0 _02239D0E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02239D14: .word 0x00000195 thumb_func_start MOD11_02239D18 MOD11_02239D18: ; 0x02239D18 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 bl MOD11_0222FF84 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r2, r0, #0 cmp r2, #3 beq _02239D3E cmp r2, #4 beq _02239D66 b _02239D8E _02239D3E: mov r5, #0 cmp r6, #0 ble _02239D9E mov r7, #1 _02239D46: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02239DA4 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 bne _02239D5E add r0, r4, #0 add r1, r5, #0 bl MOD11_022565BC _02239D5E: add r5, r5, #1 cmp r5, r6 blt _02239D46 b _02239D9E _02239D66: mov r5, #0 cmp r6, #0 ble _02239D9E mov r7, #1 _02239D6E: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _02239DA4 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _02239D86 add r0, r4, #0 add r1, r5, #0 bl MOD11_022565BC _02239D86: add r5, r5, #1 cmp r5, r6 blt _02239D6E b _02239D9E _02239D8E: add r0, r4, #0 add r1, r5, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r4, #0 bl MOD11_022565BC _02239D9E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02239DA4: .word 0x00000195 thumb_func_start MOD11_02239DA8 MOD11_02239DA8: ; 0x02239DA8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] str r1, [sp, #4] add r0, r1, #0 mov r1, #1 mov r5, #0 bl MOD11_0223A424 ldr r0, [sp, #4] bl MOD11_0223A404 add r4, r0, #0 ldr r0, [sp, #4] bl MOD11_0223A404 str r0, [sp, #0x14] ldr r0, [sp] bl MOD11_0222FF74 str r0, [sp, #0xc] ldr r0, [sp] ldr r1, [sp, #4] add r2, r4, #0 bl MOD11_0223C230 str r0, [sp, #0x10] ldr r0, [sp, #0xc] mov r1, #8 tst r0, r1 bne _02239DFA ldr r0, [sp, #0xc] mov r1, #0x10 tst r0, r1 beq _02239EDA ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_02230270 cmp r0, #0 beq _02239EDA _02239DFA: ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_0222FF88 add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_022302BC add r1, r0, #0 ldr r0, [sp] bl MOD11_0222FF88 str r0, [sp, #8] ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_0222FF7C add r0, r7, #0 mov r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02239E68 _02239E2A: add r0, r7, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02239E5C add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239E5C add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r5, r5, r0 _02239E5C: add r0, r7, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _02239E2A _02239E68: ldr r0, [sp, #0xc] cmp r0, #0x4b beq _02239E76 cmp r0, #0xcb beq _02239E76 cmp r0, #0x4a bne _02239E82 _02239E76: ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_02230270 cmp r0, #0 beq _02239ECC _02239E82: ldr r0, [sp, #8] mov r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02239ECC ldr r7, _02239F48 ; =0x000001EE _02239E90: ldr r0, [sp, #8] add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02239EC0 add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC cmp r0, r7 beq _02239EC0 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r5, r5, r0 _02239EC0: ldr r0, [sp, #8] add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _02239E90 _02239ECC: cmp r5, #0 bne _02239F42 ldr r0, [sp, #4] ldr r1, [sp, #0x14] bl MOD11_0223A424 b _02239F42 _02239EDA: ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_0222FF88 add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_0222FF7C add r0, r7, #0 mov r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02239F36 _02239EF8: add r0, r7, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02239F2A add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239F2A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r5, r5, r0 _02239F2A: add r0, r7, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _02239EF8 _02239F36: cmp r5, #0 bne _02239F42 ldr r0, [sp, #4] ldr r1, [sp, #0x14] bl MOD11_0223A424 _02239F42: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02239F48: .word 0x000001EE thumb_func_start MOD11_02239F4C MOD11_02239F4C: ; 0x02239F4C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r6, r1, #0 add r0, r6, #0 mov r1, #1 bl MOD11_0223A424 add r0, r6, #0 bl MOD11_0223A404 mov ip, r0 ldr r1, [r6, #0x6c] mov r0, #0xc0 mul r0, r1 add r0, r6, r0 add r5, r0, #1 ldr r7, _02239FC0 ; =0x00002D58 mov r4, #0 mov r3, #1 add r0, sp, #0 _02239F74: ldrsb r1, [r5, r7] cmp r1, #0xc bge _02239F82 lsl r1, r4, #2 sub r2, r3, #1 add r4, r4, #1 str r2, [r0, r1] _02239F82: add r3, r3, #1 add r5, r5, #1 cmp r3, #8 blt _02239F74 cmp r4, #0 beq _02239FB0 bl FUN_0201B9EC add r1, r4, #0 bl _s32_div_f lsl r1, r1, #2 add r0, sp, #0 ldr r0, [r0, r1] ldr r1, _02239FC4 ; =0x00002170 add r0, #0x27 str r0, [r6, r1] mov r0, #2 ldr r2, [r6, r1] lsl r0, r0, #0x1e orr r0, r2 str r0, [r6, r1] b _02239FB8 _02239FB0: add r0, r6, #0 mov r1, ip bl MOD11_0223A424 _02239FB8: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _02239FC0: .word 0x00002D58 _02239FC4: .word 0x00002170 thumb_func_start MOD11_02239FC8 MOD11_02239FC8: ; 0x02239FC8 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r7, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r7, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 ldr r0, _0223A00C ; =0x00002DB8 add r5, r2, #0 add r6, r4, r0 mov r0, #0xc0 mul r5, r0 lsl r0, r2, #1 add r1, r4, r0 ldrh r3, [r6, r5] ldr r0, _0223A010 ; =0x00003124 strh r3, [r1, r0] mov r0, #0 strh r0, [r6, r5] add r0, r7, #0 add r1, r4, #0 bl MOD11_02245190 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223A00C: .word 0x00002DB8 _0223A010: .word 0x00003124 thumb_func_start MOD11_0223A014 MOD11_0223A014: ; 0x0223A014 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r1, r0, #0 ldr r0, [r4, #0x64] ldr r2, _0223A054 ; =0x00003124 lsl r0, r0, #1 add r0, r4, r0 ldrh r3, [r0, r2] cmp r3, #0 beq _0223A048 mov r0, #0x4a lsl r0, r0, #2 str r3, [r4, r0] ldr r0, [r4, #0x64] mov r1, #0 lsl r0, r0, #1 add r0, r4, r0 strh r1, [r0, r2] b _0223A04E _0223A048: add r0, r4, #0 bl MOD11_0223A424 _0223A04E: mov r0, #0 pop {r4, pc} nop _0223A054: .word 0x00003124 thumb_func_start MOD11_0223A058 MOD11_0223A058: ; 0x0223A058 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 mov r2, #0x4e lsl r2, r2, #2 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r4, r2 bl MOD11_02249B94 cmp r0, #0 bne _0223A088 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _0223A088: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_0223A08C MOD11_0223A08C: ; 0x0223A08C push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_022565D8 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0223A0A4 MOD11_0223A0A4: ; 0x0223A0A4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 add r1, r4, #0 bl MOD11_022565F4 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223A0C0 MOD11_0223A0C0: ; 0x0223A0C0 push {r4, lr} add r4, r0, #0 add r0, r1, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0225664C mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0223A0D8 MOD11_0223A0D8: ; 0x0223A0D8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 mov r4, #0 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r6, #0 add r1, r5, #0 bl MOD11_0223C230 add r7, r0, #0 add r0, r5, #0 add r1, r7, #0 bl MOD11_02249D90 add r6, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 bl MOD11_02249DA4 str r0, [sp] cmp r6, #0x40 bne _0223A126 bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f ldr r0, [sp] cmp r1, r0 bge _0223A126 mov r4, #1 _0223A126: cmp r6, #0x66 bne _0223A13E mov r0, #0xc0 mul r0, r7 add r2, r5, r0 ldr r0, _0223A170 ; =0x00002D8C ldr r1, [r2, r0] add r0, r0, #4 ldr r0, [r2, r0] cmp r1, r0 bne _0223A13E mov r4, #1 _0223A13E: cmp r4, #0 beq _0223A16C mov r1, #0xc0 add r0, r7, #0 mul r0, r1 add r2, r5, r0 ldr r0, _0223A170 ; =0x00002D8C ldr r3, [r2, r0] ldr r2, _0223A174 ; =0x0000215C ldr r0, [r5, r2] add r0, r0, r3 cmp r0, #0 bgt _0223A16C sub r0, r3, #1 neg r0, r0 str r0, [r5, r2] add r0, r2, #0 add r0, #0x10 ldr r0, [r5, r0] add r1, #0x40 orr r0, r1 add r2, #0x10 str r0, [r5, r2] _0223A16C: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223A170: .word 0x00002D8C _0223A174: .word 0x0000215C thumb_func_start MOD11_0223A178 MOD11_0223A178: ; 0x0223A178 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #1 bl MOD11_0223A424 add r0, r5, #0 bl MOD11_0223A404 add r4, r0, #0 add r0, r5, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_0223C230 add r1, r0, #0 mov r0, #0xc0 add r4, r1, #0 mul r4, r0 ldr r0, _0223A208 ; =0x00002D8C add r2, r5, r4 ldr r0, [r2, r0] cmp r0, #0 beq _0223A1FA ldr r0, _0223A20C ; =0x0000219C add r2, r5, r1 ldrb r2, [r2, r0] cmp r2, #6 beq _0223A1FA add r0, r6, #0 bl MOD11_02230014 add r6, r0, #0 mov r1, #0xa mov r2, #0 bl FUN_020671BC str r0, [sp] add r0, r6, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC add r2, r0, #0 ldr r0, _0223A210 ; =0x00002D67 add r1, r5, r4 ldrb r0, [r1, r0] cmp r0, #0x1e beq _0223A202 ldr r1, [sp] add r0, r5, #0 bl MOD11_02248A14 cmp r0, #0 bne _0223A202 add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 b _0223A202 _0223A1FA: add r0, r5, #0 add r1, r7, #0 bl MOD11_0223A424 _0223A202: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _0223A208: .word 0x00002D8C _0223A20C: .word 0x0000219C _0223A210: .word 0x00002D67 thumb_func_start MOD11_0223A214 MOD11_0223A214: ; 0x0223A214 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_0223C230 mov r1, #0xc0 mul r1, r0 add r2, r4, r1 ldr r1, _0223A26C ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #1 lsl r1, r1, #0x18 tst r1, r2 bne _0223A260 mov r1, #0x1c mul r1, r0 mov r0, #0xba add r1, r4, r1 lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #8 tst r0, r1 beq _0223A268 _0223A260: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _0223A268: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223A26C: .word 0x00002DB0 thumb_func_start MOD11_0223A270 MOD11_0223A270: ; 0x0223A270 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 mov r0, #0xd str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0223A2B0 mov r0, #0x4c str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 beq _0223A2B8 _0223A2B0: add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _0223A2B8: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0223A2C0 MOD11_0223A2C0: ; 0x0223A2C0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_022482A4 str r0, [r4, #0x6c] mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223A2F0 MOD11_0223A2F0: ; 0x0223A2F0 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 mov r2, #0x4e lsl r2, r2, #2 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r4, r2 bl MOD11_0224C258 cmp r0, #0 bne _0223A320 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _0223A320: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_0223A324 MOD11_0223A324: ; 0x0223A324 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02256668 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_0223A350 MOD11_0223A350: ; 0x0223A350 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223C230 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02256714 mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_0223A37C MOD11_0223A37C: ; 0x0223A37C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r4, #0 bl MOD11_0223A404 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0223C230 add r1, r0, #0 add r0, r5, #0 add r2, r7, #0 bl MOD11_02256754 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0223A3B4 MOD11_0223A3B4: ; 0x0223A3B4 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD11_0223A424 add r0, r4, #0 bl MOD11_0223A404 add r6, r0, #0 add r0, r5, #0 mov r1, #0 bl MOD11_0222FFC8 cmp r0, #6 bne _0223A3E0 ldr r0, [r5, #0x64] bl FUN_0206B334 cmp r0, #0x12 beq _0223A3F0 _0223A3E0: ldr r0, _0223A3F4 ; =0x00002410 ldr r0, [r5, r0] cmp r0, #0 beq _0223A3F0 add r0, r4, #0 add r1, r6, #0 bl MOD11_0223A424 _0223A3F0: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 _0223A3F4: .word 0x00002410 thumb_func_start MOD11_0223A3F8 MOD11_0223A3F8: ; 0x0223A3F8 ldr r3, _0223A400 ; =MOD11_022432B4 add r0, r1, #0 bx r3 nop _0223A400: .word MOD11_022432B4 thumb_func_start MOD11_0223A404 MOD11_0223A404: ; 0x0223A404 add r1, r0, #0 add r1, #0xb4 ldr r1, [r1] lsl r1, r1, #2 add r2, r0, r1 mov r1, #0x27 lsl r1, r1, #8 ldr r2, [r2, r1] add r1, r0, #0 add r1, #0xb4 ldr r1, [r1] add r0, #0xb4 add r1, r1, #1 str r1, [r0] add r0, r2, #0 bx lr thumb_func_start MOD11_0223A424 MOD11_0223A424: ; 0x0223A424 add r2, r0, #0 add r2, #0xb4 ldr r2, [r2] add r0, #0xb4 add r1, r2, r1 str r1, [r0] bx lr .align 2, 0 thumb_func_start MOD11_0223A434 MOD11_0223A434: ; 0x0223A434 ldr r3, _0223A438 ; =MOD11_022431DC bx r3 .align 2, 0 _0223A438: .word MOD11_022431DC thumb_func_start MOD11_0223A43C MOD11_0223A43C: ; 0x0223A43C ldr r3, _0223A440 ; =MOD11_0224321C bx r3 .align 2, 0 _0223A440: .word MOD11_0224321C thumb_func_start MOD11_0223A444 MOD11_0223A444: ; 0x0223A444 push {r4, lr} add r4, r1, #0 cmp r2, #0x44 bls _0223A44E b _0223A738 _0223A44E: add r1, r2, r2 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223A45A: ; jump table .short _0223A4E4 - _0223A45A - 2 ; case 0 .short _0223A4E8 - _0223A45A - 2 ; case 1 .short _0223A4EE - _0223A45A - 2 ; case 2 .short _0223A4F4 - _0223A45A - 2 ; case 3 .short _0223A4FA - _0223A45A - 2 ; case 4 .short _0223A500 - _0223A45A - 2 ; case 5 .short _0223A506 - _0223A45A - 2 ; case 6 .short _0223A50C - _0223A45A - 2 ; case 7 .short _0223A514 - _0223A45A - 2 ; case 8 .short _0223A51A - _0223A45A - 2 ; case 9 .short _0223A522 - _0223A45A - 2 ; case 10 .short _0223A528 - _0223A45A - 2 ; case 11 .short _0223A53A - _0223A45A - 2 ; case 12 .short _0223A54C - _0223A45A - 2 ; case 13 .short _0223A562 - _0223A45A - 2 ; case 14 .short _0223A568 - _0223A45A - 2 ; case 15 .short _0223A56E - _0223A45A - 2 ; case 16 .short _0223A574 - _0223A45A - 2 ; case 17 .short _0223A57A - _0223A45A - 2 ; case 18 .short _0223A580 - _0223A45A - 2 ; case 19 .short _0223A586 - _0223A45A - 2 ; case 20 .short _0223A58E - _0223A45A - 2 ; case 21 .short _0223A59A - _0223A45A - 2 ; case 22 .short _0223A5A2 - _0223A45A - 2 ; case 23 .short _0223A5AA - _0223A45A - 2 ; case 24 .short _0223A5B0 - _0223A45A - 2 ; case 25 .short _0223A5B8 - _0223A45A - 2 ; case 26 .short _0223A5C0 - _0223A45A - 2 ; case 27 .short _0223A5C8 - _0223A45A - 2 ; case 28 .short _0223A5D0 - _0223A45A - 2 ; case 29 .short _0223A5D6 - _0223A45A - 2 ; case 30 .short _0223A5DC - _0223A45A - 2 ; case 31 .short _0223A5E2 - _0223A45A - 2 ; case 32 .short _0223A5E8 - _0223A45A - 2 ; case 33 .short _0223A5EE - _0223A45A - 2 ; case 34 .short _0223A5F4 - _0223A45A - 2 ; case 35 .short _0223A5FC - _0223A45A - 2 ; case 36 .short _0223A604 - _0223A45A - 2 ; case 37 .short _0223A60C - _0223A45A - 2 ; case 38 .short _0223A614 - _0223A45A - 2 ; case 39 .short _0223A61A - _0223A45A - 2 ; case 40 .short _0223A622 - _0223A45A - 2 ; case 41 .short _0223A630 - _0223A45A - 2 ; case 42 .short _0223A63E - _0223A45A - 2 ; case 43 .short _0223A646 - _0223A45A - 2 ; case 44 .short _0223A64C - _0223A45A - 2 ; case 45 .short _0223A65A - _0223A45A - 2 ; case 46 .short _0223A668 - _0223A45A - 2 ; case 47 .short _0223A678 - _0223A45A - 2 ; case 48 .short _0223A688 - _0223A45A - 2 ; case 49 .short _0223A69A - _0223A45A - 2 ; case 50 .short _0223A6A0 - _0223A45A - 2 ; case 51 .short _0223A6A6 - _0223A45A - 2 ; case 52 .short _0223A6AC - _0223A45A - 2 ; case 53 .short _0223A6B8 - _0223A45A - 2 ; case 54 .short _0223A6BE - _0223A45A - 2 ; case 55 .short _0223A6C4 - _0223A45A - 2 ; case 56 .short _0223A6CA - _0223A45A - 2 ; case 57 .short _0223A6D0 - _0223A45A - 2 ; case 58 .short _0223A6D6 - _0223A45A - 2 ; case 59 .short _0223A6DC - _0223A45A - 2 ; case 60 .short _0223A6E4 - _0223A45A - 2 ; case 61 .short _0223A6EA - _0223A45A - 2 ; case 62 .short _0223A6EE - _0223A45A - 2 ; case 63 .short _0223A6F4 - _0223A45A - 2 ; case 64 .short _0223A6FA - _0223A45A - 2 ; case 65 .short _0223A70A - _0223A45A - 2 ; case 66 .short _0223A71A - _0223A45A - 2 ; case 67 .short _0223A728 - _0223A45A - 2 ; case 68 _0223A4E4: add r0, #0x2c pop {r4, pc} _0223A4E8: ldr r0, _0223A73C ; =0x0000214C add r0, r4, r0 pop {r4, pc} _0223A4EE: ldr r0, _0223A740 ; =0x00002170 add r0, r4, r0 pop {r4, pc} _0223A4F4: ldr r0, _0223A744 ; =0x00002174 add r0, r4, r0 pop {r4, pc} _0223A4FA: ldr r0, _0223A748 ; =0x00002178 add r0, r4, r0 pop {r4, pc} _0223A500: add r4, #0x88 add r0, r4, #0 pop {r4, pc} _0223A506: ldr r0, _0223A74C ; =0x0000213C add r0, r4, r0 pop {r4, pc} _0223A50C: mov r0, #6 lsl r0, r0, #6 add r0, r4, r0 pop {r4, pc} _0223A514: ldr r0, _0223A750 ; =0x00002158 add r0, r4, r0 pop {r4, pc} _0223A51A: mov r0, #0x4d lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A522: ldr r0, _0223A754 ; =0x0000216C add r0, r4, r0 pop {r4, pc} _0223A528: ldr r1, [r4, #0x64] bl MOD11_02230270 mov r1, #0x6f lsl r1, r1, #2 add r1, r4, r1 lsl r0, r0, #2 add r0, r1, r0 pop {r4, pc} _0223A53A: ldr r1, [r4, #0x6c] bl MOD11_02230270 mov r1, #0x6f lsl r1, r1, #2 add r1, r4, r1 lsl r0, r0, #2 add r0, r1, r0 pop {r4, pc} _0223A54C: add r1, r4, #0 add r1, #0x94 ldr r1, [r1] bl MOD11_02230270 mov r1, #0x6f lsl r1, r1, #2 add r1, r4, r1 lsl r0, r0, #2 add r0, r1, r0 pop {r4, pc} _0223A562: ldr r0, _0223A758 ; =0x00002144 add r0, r4, r0 pop {r4, pc} _0223A568: add r4, #0x64 add r0, r4, #0 pop {r4, pc} _0223A56E: add r4, #0x6c add r0, r4, #0 pop {r4, pc} _0223A574: add r4, #0x94 add r0, r4, #0 pop {r4, pc} _0223A57A: add r4, #0x74 add r0, r4, #0 pop {r4, pc} _0223A580: add r4, #0x78 add r0, r4, #0 pop {r4, pc} _0223A586: mov r0, #0x46 lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A58E: ldr r0, _0223A75C ; =0x000030E4 add r1, r4, r0 ldr r0, [r4, #0x64] lsl r0, r0, #2 add r0, r1, r0 pop {r4, pc} _0223A59A: mov r0, #0x13 lsl r0, r0, #4 add r0, r4, r0 pop {r4, pc} _0223A5A2: mov r0, #0x53 lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A5AA: ldr r0, _0223A760 ; =0x00003044 add r0, r4, r0 pop {r4, pc} _0223A5B0: mov r0, #0x15 lsl r0, r0, #4 add r0, r4, r0 pop {r4, pc} _0223A5B8: mov r0, #0x47 lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A5C0: mov r0, #0x12 lsl r0, r0, #4 add r0, r4, r0 pop {r4, pc} _0223A5C8: mov r0, #0xc1 lsl r0, r0, #6 add r0, r4, r0 pop {r4, pc} _0223A5D0: add r4, #0x98 add r0, r4, #0 pop {r4, pc} _0223A5D6: ldr r0, _0223A764 ; =0x00002154 add r0, r4, r0 pop {r4, pc} _0223A5DC: add r4, #0x38 add r0, r4, #0 pop {r4, pc} _0223A5E2: ldr r0, _0223A768 ; =0x0000215C add r0, r4, r0 pop {r4, pc} _0223A5E8: ldr r1, _0223A76C ; =0x0000241C add r0, r0, r1 pop {r4, pc} _0223A5EE: add r4, #0x8c add r0, r4, #0 pop {r4, pc} _0223A5F4: mov r0, #0x49 lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A5FC: mov r0, #0x4a lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A604: mov r0, #0x4b lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A60C: mov r0, #0x61 lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A614: ldr r0, _0223A770 ; =0x00003104 add r0, r4, r0 pop {r4, pc} _0223A61A: mov r0, #0x86 lsl r0, r0, #6 add r0, r4, r0 pop {r4, pc} _0223A622: mov r0, #0x7b lsl r0, r0, #2 add r1, r4, r0 ldr r0, [r4, #0x64] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A630: mov r0, #0x81 lsl r0, r0, #2 add r1, r4, r0 ldr r0, [r4, #0x64] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A63E: mov r0, #0x4e lsl r0, r0, #2 add r0, r4, r0 pop {r4, pc} _0223A646: ldr r0, _0223A774 ; =0x00002150 add r0, r4, r0 pop {r4, pc} _0223A64C: mov r0, #0x82 lsl r0, r0, #2 add r1, r4, r0 ldr r0, [r4, #0x64] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A65A: mov r0, #0x82 lsl r0, r0, #2 add r1, r4, r0 ldr r0, [r4, #0x6c] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A668: mov r0, #0xba lsl r0, r0, #2 add r2, r4, r0 ldr r1, [r4, #0x64] mov r0, #0x1c mul r0, r1 add r0, r2, r0 pop {r4, pc} _0223A678: mov r0, #0xba lsl r0, r0, #2 add r2, r4, r0 ldr r1, [r4, #0x6c] mov r0, #0x1c mul r0, r1 add r0, r2, r0 pop {r4, pc} _0223A688: mov r0, #0xba lsl r0, r0, #2 add r2, r4, r0 add r4, #0x94 ldr r1, [r4] mov r0, #0x1c mul r0, r1 add r0, r2, r0 pop {r4, pc} _0223A69A: ldr r0, _0223A778 ; =0x00003114 add r0, r4, r0 pop {r4, pc} _0223A6A0: ldr r0, _0223A77C ; =0x00003118 add r0, r4, r0 pop {r4, pc} _0223A6A6: ldr r1, _0223A780 ; =0x00002408 add r0, r0, r1 pop {r4, pc} _0223A6AC: ldr r0, _0223A784 ; =0x0000304C add r1, r4, r0 ldr r0, [r4, #0x64] lsl r0, r0, #2 add r0, r1, r0 pop {r4, pc} _0223A6B8: ldr r0, _0223A788 ; =0x00002148 add r0, r4, r0 pop {r4, pc} _0223A6BE: ldr r1, _0223A78C ; =0x00002410 add r0, r0, r1 pop {r4, pc} _0223A6C4: add r4, #0x7c add r0, r4, #0 pop {r4, pc} _0223A6CA: ldr r0, _0223A790 ; =0x00002160 add r0, r4, r0 pop {r4, pc} _0223A6D0: ldr r0, _0223A794 ; =0x00002164 add r0, r4, r0 pop {r4, pc} _0223A6D6: ldr r1, _0223A798 ; =0x00002418 add r0, r0, r1 pop {r4, pc} _0223A6DC: mov r0, #0x85 lsl r0, r0, #6 add r0, r4, r0 pop {r4, pc} _0223A6E4: add r4, #0xec add r0, r4, #0 pop {r4, pc} _0223A6EA: add r0, #0x44 pop {r4, pc} _0223A6EE: add r4, #0x68 add r0, r4, #0 pop {r4, pc} _0223A6F4: add r4, #0x70 add r0, r4, #0 pop {r4, pc} _0223A6FA: mov r0, #0xb6 lsl r0, r0, #2 add r2, r4, r0 ldr r1, [r4, #0x6c] mov r0, #0x1c mul r0, r1 add r0, r2, r0 pop {r4, pc} _0223A70A: mov r0, #0x21 lsl r0, r0, #4 add r1, r4, r0 sub r0, #0xf8 ldr r0, [r4, r0] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A71A: mov r0, #0x21 lsl r0, r0, #4 add r1, r4, r0 ldr r0, [r4, #0x6c] lsl r0, r0, #6 add r0, r1, r0 pop {r4, pc} _0223A728: mov r0, #0xbb lsl r0, r0, #2 add r2, r4, r0 ldr r1, [r4, #0x64] mov r0, #0x1c mul r0, r1 add r0, r2, r0 pop {r4, pc} _0223A738: mov r0, #0 pop {r4, pc} .align 2, 0 _0223A73C: .word 0x0000214C _0223A740: .word 0x00002170 _0223A744: .word 0x00002174 _0223A748: .word 0x00002178 _0223A74C: .word 0x0000213C _0223A750: .word 0x00002158 _0223A754: .word 0x0000216C _0223A758: .word 0x00002144 _0223A75C: .word 0x000030E4 _0223A760: .word 0x00003044 _0223A764: .word 0x00002154 _0223A768: .word 0x0000215C _0223A76C: .word 0x0000241C _0223A770: .word 0x00003104 _0223A774: .word 0x00002150 _0223A778: .word 0x00003114 _0223A77C: .word 0x00003118 _0223A780: .word 0x00002408 _0223A784: .word 0x0000304C _0223A788: .word 0x00002148 _0223A78C: .word 0x00002410 _0223A790: .word 0x00002160 _0223A794: .word 0x00002164 _0223A798: .word 0x00002418 thumb_func_start MOD11_0223A79C MOD11_0223A79C: ; 0x0223A79C push {r4, r5, r6, r7, lr} sub sp, #0xd4 add r4, r1, #0 str r0, [sp, #0x14] ldr r0, [r4] bl MOD11_022300C4 str r0, [sp, #0x3c] ldr r0, [r4] bl MOD11_0222FF74 str r0, [sp, #0x38] ldr r0, [r4, #4] mov r7, #0 ldr r0, [r0, #0x74] ldr r5, [r4, #0x48] asr r1, r0, #1 mov r0, #1 and r0, r1 str r0, [sp, #0x40] ldr r0, [r4] add r1, r7, #0 bl MOD11_0222FFC8 cmp r5, r0 bge _0223A81E ldr r0, [sp, #0x40] lsl r0, r0, #2 str r0, [sp, #0x24] _0223A7D6: ldr r0, [r4] mov r1, #0 add r2, r5, #0 bl MOD11_02230014 mov r1, #6 mov r2, #0 add r6, r0, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #1 mov r2, #5 bl FUN_0206E7B8 cmp r0, #0x32 beq _0223A81E add r0, r5, #0 bl FUN_0206A92C add r2, r0, #0 ldr r1, [r4, #4] ldr r0, [sp, #0x24] add r0, r0, r1 add r0, #0xa4 ldr r0, [r0] tst r0, r2 bne _0223A81E ldr r0, [r4] mov r1, #0 add r5, r5, #1 bl MOD11_0222FFC8 cmp r5, r0 blt _0223A7D6 _0223A81E: ldr r0, [r4] mov r1, #0 bl MOD11_0222FFC8 cmp r5, r0 bne _0223A830 mov r0, #0x26 str r0, [r4, #0x28] b _0223A84C _0223A830: ldr r0, [sp, #0x38] mov r2, #2 tst r0, r2 beq _0223A84C ldr r0, [sp, #0x38] mov r1, #0x40 tst r0, r1 bne _0223A84C ldr r1, [r4, #4] ldr r0, _0223AB98 ; =0x0000219E ldrb r0, [r1, r0] cmp r0, r5 bne _0223A84C add r7, r2, #0 _0223A84C: ldr r0, [r4, #0x28] cmp r0, #0x26 bls _0223A856 bl _0223B2AE _0223A856: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223A862: ; jump table .short _0223A8B0 - _0223A862 - 2 ; case 0 .short _0223AA74 - _0223A862 - 2 ; case 1 .short _0223AA8C - _0223A862 - 2 ; case 2 .short _0223AA9E - _0223A862 - 2 ; case 3 .short _0223AACA - _0223A862 - 2 ; case 4 .short _0223AADE - _0223A862 - 2 ; case 5 .short _0223AB16 - _0223A862 - 2 ; case 6 .short _0223AC16 - _0223A862 - 2 ; case 7 .short _0223AC32 - _0223A862 - 2 ; case 8 .short _0223AC50 - _0223A862 - 2 ; case 9 .short _0223ACF8 - _0223A862 - 2 ; case 10 .short _0223AE3C - _0223A862 - 2 ; case 11 .short _0223ADBA - _0223A862 - 2 ; case 12 .short _0223AE3C - _0223A862 - 2 ; case 13 .short _0223AE5E - _0223A862 - 2 ; case 14 .short _0223AEC0 - _0223A862 - 2 ; case 15 .short _0223AF42 - _0223A862 - 2 ; case 16 .short _0223AFDA - _0223A862 - 2 ; case 17 .short _0223AFAC - _0223A862 - 2 ; case 18 .short _0223AFDA - _0223A862 - 2 ; case 19 .short _0223AFF2 - _0223A862 - 2 ; case 20 .short _0223B012 - _0223A862 - 2 ; case 21 .short _0223B05A - _0223A862 - 2 ; case 22 .short _0223B07E - _0223A862 - 2 ; case 23 .short _0223B16A - _0223A862 - 2 ; case 24 .short _0223AFDA - _0223A862 - 2 ; case 25 .short _0223B192 - _0223A862 - 2 ; case 26 .short _0223AFDA - _0223A862 - 2 ; case 27 .short _0223B1CE - _0223A862 - 2 ; case 28 .short _0223AFDA - _0223A862 - 2 ; case 29 .short _0223B1F6 - _0223A862 - 2 ; case 30 .short _0223B0B6 - _0223A862 - 2 ; case 31 .short _0223AFDA - _0223A862 - 2 ; case 32 .short _0223B0E0 - _0223A862 - 2 ; case 33 .short _0223B102 - _0223A862 - 2 ; case 34 .short _0223B152 - _0223A862 - 2 ; case 35 .short _0223B25C - _0223A862 - 2 ; case 36 .short _0223B272 - _0223A862 - 2 ; case 37 .short _0223B298 - _0223A862 - 2 ; case 38 _0223A8B0: add r0, r6, #0 mov r1, #6 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #1 mov r2, #5 bl FUN_0206E7B8 str r0, [sp, #0x18] ldr r0, [sp, #0x38] mov r1, #1 and r0, r1 str r0, [sp, #0x1c] bne _0223A90E ldr r1, [r4, #4] ldr r0, _0223AB9C ; =0x00002E4C ldr r2, _0223ABA0 ; =0x00002FCC ldr r0, [r1, r0] ldr r1, [r1, r2] add r0, r0, r1 bne _0223A90E add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0223A90E ldr r1, [r4, #4] ldr r0, _0223ABA4 ; =0x00003144 ldr r0, [r1, r0] cmp r0, #0 bne _0223A90E ldr r0, _0223ABA8 ; =0x00000467 bl FUN_0200521C ldr r1, [r4, #4] ldr r0, _0223ABA4 ; =0x00003144 mov r2, #1 str r2, [r1, r0] ldr r0, [r4] mov r1, #2 bl MOD11_02231484 _0223A90E: mov r0, #0 str r0, [sp, #0x34] mov r1, #1 add r0, sp, #0xb0 strh r1, [r0, #2] ldr r2, [sp, #0x34] add r0, r6, #0 mov r1, #0xa2 bl FUN_020671BC cmp r0, #0 bne _0223A928 b _0223AA34 _0223A928: add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC cmp r0, #0x64 beq _0223AA34 ldr r0, [r4, #4] str r0, [sp, #0x20] add r0, r5, #0 bl FUN_0206A92C ldr r1, [sp, #0x40] lsl r2, r1, #2 ldr r1, [sp, #0x20] add r1, r1, r2 add r1, #0xa4 ldr r1, [r1] tst r0, r1 beq _0223A958 ldr r0, [sp, #0x20] add r0, #0x9c ldr r0, [r0] str r0, [sp, #0x34] _0223A958: ldr r0, [sp, #0x18] cmp r0, #0x32 bne _0223A96C ldr r0, [sp, #0x20] add r0, #0xa0 str r0, [sp, #0x20] ldr r1, [r0] ldr r0, [sp, #0x34] add r0, r0, r1 str r0, [sp, #0x34] _0223A96C: ldr r0, [sp, #0x18] cmp r0, #0x41 bne _0223A980 ldr r1, [sp, #0x34] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _u32_div_f str r0, [sp, #0x34] _0223A980: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0223A994 ldr r1, [sp, #0x34] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _u32_div_f str r0, [sp, #0x34] _0223A994: ldr r0, [r4] add r1, r6, #0 bl MOD11_0224AE14 cmp r0, #0 bne _0223A9D6 add r0, r6, #0 mov r1, #0xc mov r2, #0 bl FUN_020671BC ldr r1, _0223ABAC ; =0x020ECAC4 ldrb r1, [r1] cmp r1, r0 beq _0223A9C2 ldr r1, [sp, #0x34] mov r0, #0xaa mul r0, r1 mov r1, #0x64 bl _u32_div_f str r0, [sp, #0x34] b _0223A9D0 _0223A9C2: ldr r1, [sp, #0x34] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _u32_div_f str r0, [sp, #0x34] _0223A9D0: mov r1, #2 add r0, sp, #0xb0 strh r1, [r0, #2] _0223A9D6: add r0, r6, #0 mov r1, #8 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x48] add r0, r6, #0 bl FUN_02068734 ldr r1, [sp, #0x48] sub r0, r1, r0 str r0, [r4, #0x3c] ldr r1, [sp, #0x48] ldr r0, [sp, #0x34] add r2, r1, r0 str r2, [sp, #0x48] ldr r3, [r4, #4] ldr r0, _0223ABB0 ; =0x0000219C add r1, r3, r7 ldrb r0, [r1, r0] cmp r5, r0 bne _0223AA0C mov r0, #0xc0 mul r0, r7 add r1, r3, r0 ldr r0, _0223ABB4 ; =0x00002DA4 str r2, [r1, r0] _0223AA0C: add r0, r6, #0 mov r1, #8 add r2, sp, #0x48 bl FUN_02067830 ldr r6, [r4, #4] ldr r0, [r4] add r1, r7, #0 bl MOD11_0222FF88 ldr r3, [r6, #0x74] mov r2, #0xc0 mul r2, r3 add r3, r6, r2 mov r2, #0xb5 lsl r2, r2, #6 ldrh r2, [r3, r2] add r1, r5, #0 bl MOD11_0223B2DC _0223AA34: ldr r0, [sp, #0x34] cmp r0, #0 beq _0223AA6C mov r1, #0x11 add r0, sp, #0xb0 strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [sp, #0x34] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AA6C: mov r0, #0x25 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AA74: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223AB20 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AA8C: ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223AB20 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AA9E: ldr r1, [r4, #4] ldr r0, _0223ABB0 ; =0x0000219C add r2, r1, r7 ldrb r0, [r2, r0] cmp r5, r0 bne _0223AAC2 ldr r0, [r4] ldr r3, [r4, #0x3c] add r2, r7, #0 bl MOD11_02255B68 mov r0, #0 str r0, [r4, #0x3c] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AAC2: mov r0, #5 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AACA: ldr r0, [r4, #4] bl MOD11_02243388 cmp r0, #0 beq _0223AB20 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AADE: add r0, r6, #0 bl FUN_020690E8 cmp r0, #0 beq _0223AB0E ldr r1, [r4, #4] ldr r0, _0223ABB0 ; =0x0000219C add r2, r1, r7 ldrb r0, [r2, r0] cmp r5, r0 bne _0223AB06 ldr r0, [r4] add r2, r7, #0 mov r3, #8 bl MOD11_02255E4C ldr r0, [r4] add r1, r7, #0 bl MOD11_02255FA0 _0223AB06: mov r0, #6 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AB0E: mov r0, #0x25 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AB16: ldr r0, [r4, #4] bl MOD11_02243388 cmp r0, #0 bne _0223AB22 _0223AB20: b _0223B2AE _0223AB22: ldr r3, _0223ABB8 ; =0x0225DCC0 add r2, sp, #0x98 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x30] mov r0, #5 mov r1, #0x18 bl FUN_02016998 mov r1, #0x5f ldr r2, [r4, #4] lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4, #4] ldr r0, [r0, r1] mov r1, #0 str r0, [sp, #0x2c] str r1, [sp, #0x4c] _0223AB58: lsl r2, r1, #2 add r1, sp, #0x98 ldr r1, [r1, r2] add r0, r6, #0 mov r2, #0 bl FUN_020671BC ldr r1, [sp, #0x4c] lsl r2, r1, #2 ldr r1, [sp, #0x2c] str r0, [r1, r2] ldr r0, [sp, #0x4c] add r1, r0, #1 str r1, [sp, #0x4c] cmp r1, #6 blt _0223AB58 ldr r0, [r4] bl MOD11_022302B0 add r2, r0, #0 lsl r2, r2, #0x10 add r0, r6, #0 mov r1, #0 lsr r2, r2, #0x10 bl FUN_020688E8 add r0, r6, #0 bl FUN_02066F04 ldr r1, [r4, #4] ldr r0, _0223ABB0 ; =0x0000219C b _0223ABBC .align 2, 0 _0223AB98: .word 0x0000219E _0223AB9C: .word 0x00002E4C _0223ABA0: .word 0x00002FCC _0223ABA4: .word 0x00003144 _0223ABA8: .word 0x00000467 _0223ABAC: .word 0x020ECAC4 _0223ABB0: .word 0x0000219C _0223ABB4: .word 0x00002DA4 _0223ABB8: .word 0x0225DCC0 _0223ABBC: add r2, r1, r7 ldrb r3, [r2, r0] cmp r5, r3 bne _0223ABCC ldr r0, [r4] add r2, r7, #0 bl MOD11_02243054 _0223ABCC: add r0, r5, #0 bl FUN_0206A92C ldr r1, [r4, #4] ldr r2, _0223AF48 ; =0x00003109 ldrb r3, [r1, r2] orr r0, r3 strb r0, [r1, r2] ldr r0, [r4] ldr r1, [r4, #4] add r2, r7, #0 bl MOD11_02256020 mov r1, #3 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0x11 strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [sp, #0x30] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #7 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AC16: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 beq _0223AC26 b _0223B2AE _0223AC26: mov r0, #8 str r0, [r4, #0x28] mov r0, #0 add sp, #0xd4 str r0, [r4, #0x38] pop {r4, r5, r6, r7, pc} _0223AC32: ldr r0, [r4, #4] add r1, r0, r7 ldr r0, _0223AF4C ; =0x0000219C ldrb r0, [r1, r0] cmp r5, r0 beq _0223AC48 ldr r0, [r4] add r1, r4, #0 add r2, r6, #0 bl MOD11_0223CDC4 _0223AC48: mov r0, #9 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AC50: ldr r0, [r4] bl MOD11_0222FF68 add r6, r0, #0 ldr r0, [r4] mov r1, #1 bl MOD11_0222FF6C add r5, r0, #0 ldr r0, [r4] bl MOD11_022300CC add r7, r0, #0 ldr r0, _0223AF50 ; =0x04000008 mov r2, #3 ldrh r1, [r0] bic r1, r2 mov r2, #2 orr r1, r2 strh r1, [r0] mov r0, #1 add r1, r0, #0 bl FUN_020178BC mov r0, #2 mov r1, #0 bl FUN_020178BC ldr r0, [r4] mov r1, #2 bl MOD11_02231564 mov r0, #5 str r0, [sp] add r0, r6, #0 mov r1, #2 mov r2, #1 mov r3, #0 bl FUN_0200CABC bl FUN_0200CAFC add r2, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0x80 str r0, [sp, #8] add r0, r7, #0 mov r1, #0x26 mov r3, #5 bl FUN_020030E8 mov r0, #7 str r0, [sp] mov r0, #0xe str r0, [sp, #4] mov r0, #0xc str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] mov r0, #0xa str r0, [sp, #0x10] add r0, r6, #0 add r1, r5, #0 mov r2, #2 mov r3, #0x11 bl FUN_02019064 add r0, r5, #0 mov r1, #0xff bl FUN_02019620 add r0, r5, #0 mov r1, #0 mov r2, #1 mov r3, #8 bl FUN_0200CCA4 mov r0, #0xa add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223ACF8: ldr r3, _0223AF54 ; =0x0225DCD8 add r2, sp, #0x80 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 r3, _0223AF58 ; =0x0225DC60 add r2, sp, #0x68 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] mov r1, #1 bl MOD11_0222FF6C add r7, r0, #0 mov r0, #0x5f ldr r1, [r4, #4] lsl r0, r0, #2 ldr r0, [r1, r0] str r0, [sp, #0x28] mov r0, #0 str r0, [sp, #0x4c] _0223AD30: ldr r2, _0223AF5C ; =0x000003B3 add r1, sp, #0xb0 strh r2, [r1, #2] mov r2, #4 strb r2, [r1, #1] lsl r2, r0, #2 add r1, sp, #0x80 ldr r1, [r1, r2] lsl r0, r0, #4 str r1, [sp, #0xb4] mov r1, #0 str r1, [sp] str r0, [sp, #4] add r0, r1, #0 str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [r4] ldr r2, [sp, #0x3c] add r1, r7, #0 add r3, sp, #0xb0 bl MOD11_022317E0 mov r1, #0xed ldr r5, [sp, #0x4c] lsl r1, r1, #2 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #7 strb r1, [r0, #1] lsl r2, r5, #2 add r1, sp, #0x68 ldr r1, [r1, r2] add r0, r6, #0 mov r2, #0 bl FUN_020671BC ldr r1, [sp, #0x28] lsl r2, r5, #2 ldr r1, [r1, r2] ldr r2, [sp, #0x3c] sub r0, r0, r1 str r0, [sp, #0xb4] mov r0, #2 str r0, [sp, #0xcc] mov r0, #0x50 str r0, [sp] lsl r0, r5, #4 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0x1c str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [r4] add r1, r7, #0 add r3, sp, #0xb0 bl MOD11_022317E0 ldr r0, [sp, #0x4c] add r0, r0, #1 str r0, [sp, #0x4c] cmp r0, #6 blt _0223AD30 mov r0, #0xb add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223ADBA: ldr r3, _0223AF60 ; =0x0225DC90 add r2, sp, #0x50 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] mov r1, #1 bl MOD11_0222FF6C mov r1, #0x24 str r1, [sp] mov r1, #0x60 str r1, [sp, #4] mov r1, #0xf mov r2, #0x50 mov r3, #0 add r7, r0, #0 bl FUN_020196F4 mov r1, #0 str r1, [sp, #0x4c] add r5, sp, #0xb0 _0223ADEC: ldr r0, _0223AF64 ; =0x000003B5 lsl r2, r1, #2 add r1, sp, #0x50 strh r0, [r5, #2] mov r0, #7 ldr r1, [r1, r2] strb r0, [r5, #1] add r0, r6, #0 mov r2, #0 bl FUN_020671BC str r0, [sp, #0xb4] mov r0, #3 str r0, [sp, #0xcc] mov r0, #0x48 str r0, [sp] ldr r0, [sp, #0x4c] ldr r2, [sp, #0x3c] lsl r0, r0, #4 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0x24 str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [r4] add r1, r7, #0 add r3, r5, #0 bl MOD11_022317E0 ldr r0, [sp, #0x4c] add r1, r0, #1 str r1, [sp, #0x4c] cmp r1, #6 blt _0223ADEC mov r0, #0xd add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AE3C: ldr r0, _0223AF68 ; =0x021C48B8 ldr r1, [r0, #0x48] ldr r0, _0223AF6C ; =0x00000C03 tst r0, r1 bne _0223AE4E bl FUN_02020AA4 cmp r0, #0 beq _0223AEDC _0223AE4E: ldr r0, _0223AF70 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AE5E: ldr r0, [r4] mov r1, #1 bl MOD11_0222FF6C add r6, r0, #0 mov r1, #0 bl FUN_0200CCF8 add r0, r6, #0 bl FUN_02019178 ldr r1, _0223AF50 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r2, r0 strh r2, [r1] mov r1, #0 bl FUN_020178BC mov r0, #2 mov r1, #1 bl FUN_020178BC ldr r0, [r4] mov r1, #0 bl MOD11_02231564 ldr r0, [r4, #4] add r1, r0, r7 ldr r0, _0223AF4C ; =0x0000219C ldrb r0, [r1, r0] cmp r5, r0 beq _0223AEAC ldr r0, [r4] add r1, r4, #0 bl MOD11_0223D068 _0223AEAC: mov r0, #0x5f ldr r1, [r4, #4] lsl r0, r0, #2 ldr r0, [r1, r0] bl FUN_02016A18 mov r0, #0xf add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AEC0: ldr r0, [r4] bl MOD11_0222FF68 add r1, r4, #0 add r0, r6, #0 add r1, #0x38 add r2, sp, #0x44 bl FUN_02069818 cmp r0, #0 beq _0223AEE6 ldr r1, _0223AF74 ; =0x0000FFFE cmp r0, r1 bne _0223AEDE _0223AEDC: b _0223B2AE _0223AEDE: add r1, r1, #1 cmp r0, r1 beq _0223AEEE b _0223AEFC _0223AEE6: mov r0, #3 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AEEE: add r0, sp, #0x44 ldrh r0, [r0] add sp, #0xd4 str r0, [r4, #0x40] mov r0, #0x10 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AEFC: ldr r1, [r4, #4] ldr r0, _0223AF4C ; =0x0000219C add r2, r1, r7 ldrb r3, [r2, r0] cmp r5, r3 bne _0223AF10 ldr r0, [r4] add r2, r7, #0 bl MOD11_02243054 _0223AF10: mov r1, #4 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0xa strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] add r0, sp, #0x44 ldrh r0, [r0] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x24 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AF42: ldr r1, _0223AF78 ; =0x0000049A b _0223AF7C nop _0223AF48: .word 0x00003109 _0223AF4C: .word 0x0000219C _0223AF50: .word 0x04000008 _0223AF54: .word 0x0225DCD8 _0223AF58: .word 0x0225DC60 _0223AF5C: .word 0x000003B3 _0223AF60: .word 0x0225DC90 _0223AF64: .word 0x000003B5 _0223AF68: .word 0x021C48B8 _0223AF6C: .word 0x00000C03 _0223AF70: .word 0x000005DC _0223AF74: .word 0x0000FFFE _0223AF78: .word 0x0000049A _0223AF7C: add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0xa strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [r4, #0x40] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AFAC: ldr r1, _0223B2B4 ; =0x0000049B add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #2 strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AFDA: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223B01E ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223AFF2: mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r4] ldr r1, [r4, #4] ldr r3, _0223B2B8 ; =0x0000049C add r2, r7, #0 bl MOD11_02255980 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B012: ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0 bne _0223B020 _0223B01E: b _0223B2AE _0223B020: ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223B034 mov r0, #0x1f add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B034: ldr r1, _0223B2BC ; =0x0000049F add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x16 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B05A: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223B160 ldr r0, [r4] ldr r2, [r4, #0x40] add r1, r7, #0 add r3, r5, #0 bl MOD11_022562B0 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B07E: ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223B092 mov r0, #0x1f add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B092: ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223B160 ldr r1, [r4, #4] lsl r0, r7, #8 add r1, r1, r0 mov r0, #0x23 lsl r0, r0, #8 ldrb r0, [r1, r0] add sp, #0xd4 sub r0, r0, #1 str r0, [r4, #0x44] mov r0, #0x18 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B0B6: mov r1, #0x4a lsl r1, r1, #4 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B0E0: mov r0, #2 str r0, [sp] ldr r0, [r4, #0x40] ldr r3, _0223B2C0 ; =0x000004A1 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [r4] ldr r1, [r4, #4] add r2, r7, #0 bl MOD11_02255980 ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B102: ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223B160 ldr r0, [r4, #4] add r1, r7, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223B122 mov r0, #0x10 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B122: ldr r1, _0223B2C4 ; =0x000004A4 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0xa strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [r4, #0x40] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x23 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B152: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 beq _0223B162 _0223B160: b _0223B2AE _0223B162: mov r0, #0xf add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B16A: ldr r1, _0223B2C8 ; =0x000004A5 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B192: ldr r1, _0223B2CC ; =0x000004A6 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0xa strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r1, [r4, #0x44] add r0, r6, #0 add r1, #0x36 mov r2, #0 bl FUN_020671BC str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B1CE: ldr r1, _0223B2D0 ; =0x000004A7 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B1F6: ldr r1, _0223B2D4 ; =0x000004A8 add r0, sp, #0xb0 strh r1, [r0, #2] mov r1, #0xa strb r1, [r0, #1] lsl r0, r5, #8 orr r0, r7 str r0, [sp, #0xb4] ldr r0, [r4, #0x40] str r0, [sp, #0xb8] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x3c] add r2, sp, #0xb0 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0 str r0, [sp, #0x4c] ldr r1, [r4, #0x44] add r0, r6, #0 add r1, #0x3e add r2, sp, #0x4c bl FUN_02067830 ldr r1, [r4, #0x40] ldr r2, [r4, #0x44] lsl r1, r1, #0x10 lsl r2, r2, #0x18 add r0, r6, #0 lsr r1, r1, #0x10 lsr r2, r2, #0x18 bl FUN_020697CC ldr r1, [r4, #4] ldr r0, _0223B2D8 ; =0x0000219C add r2, r1, r7 ldrb r3, [r2, r0] cmp r5, r3 bne _0223B254 ldr r0, [r4] add r2, r7, #0 bl MOD11_02243054 _0223B254: mov r0, #0x24 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B25C: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223B2AE mov r0, #0xf add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B272: add r0, r5, #0 bl FUN_0206A92C ldr r1, [sp, #0x40] ldr r2, [r4, #4] mov r3, #0 mvn r3, r3 add r2, #0xa4 lsl r1, r1, #2 ldr r6, [r2, r1] eor r0, r3 and r0, r6 str r0, [r2, r1] add r0, r5, #1 str r0, [r4, #0x48] mov r0, #0 add sp, #0xd4 str r0, [r4, #0x28] pop {r4, r5, r6, r7, pc} _0223B298: mov r0, #0x5e ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp, #0x14] bl FUN_0200CAB4 _0223B2AE: add sp, #0xd4 pop {r4, r5, r6, r7, pc} nop _0223B2B4: .word 0x0000049B _0223B2B8: .word 0x0000049C _0223B2BC: .word 0x0000049F _0223B2C0: .word 0x000004A1 _0223B2C4: .word 0x000004A4 _0223B2C8: .word 0x000004A5 _0223B2CC: .word 0x000004A6 _0223B2D0: .word 0x000004A7 _0223B2D4: .word 0x000004A8 _0223B2D8: .word 0x0000219C thumb_func_start MOD11_0223B2DC MOD11_0223B2DC: ; 0x0223B2DC push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r0, [sp] str r1, [sp, #4] add r0, r2, #0 mov r1, #5 mov r4, #0 bl FUN_0206851C add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #4] bl FUN_0206B9B0 mov r1, #6 add r2, r4, #0 str r0, [sp, #0x14] bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r6, #0 mov r1, #1 mov r2, #5 bl FUN_0206E7B8 add r5, r0, #0 add r0, r6, #0 mov r1, #2 mov r2, #5 bl FUN_0206E7B8 add r6, r0, #0 add r0, r4, #0 str r0, [sp, #0x18] str r0, [sp, #0x1c] add r0, sp, #0x20 str r0, [sp, #0xc] _0223B328: ldr r1, [sp, #0x1c] ldr r0, [sp, #0x14] add r1, #0xd mov r2, #0 bl FUN_020671BC ldr r1, [sp, #0xc] strb r0, [r1] add r0, r1, #0 ldrb r1, [r0] ldr r0, [sp, #0x18] add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] ldr r0, [sp, #0x1c] add r0, r0, #1 str r0, [sp, #0x1c] cmp r0, #6 blt _0223B328 mov r0, #0 str r0, [sp, #8] add r0, sp, #0x20 str r0, [sp, #0x10] _0223B35E: ldr r1, [sp, #0x18] ldr r0, _0223B498 ; =0x000001FE cmp r1, r0 blo _0223B368 b _0223B48C _0223B368: ldr r0, [sp, #8] cmp r0, #5 bhi _0223B414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223B37A: ; jump table .short _0223B386 - _0223B37A - 2 ; case 0 .short _0223B39E - _0223B37A - 2 ; case 1 .short _0223B3B6 - _0223B37A - 2 ; case 2 .short _0223B3CE - _0223B37A - 2 ; case 3 .short _0223B3E6 - _0223B37A - 2 ; case 4 .short _0223B3FE - _0223B37A - 2 ; case 5 _0223B386: add r0, r7, #0 mov r1, #0xa bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x79 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _0223B414 _0223B39E: add r0, r7, #0 mov r1, #0xb bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x74 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _0223B414 _0223B3B6: add r0, r7, #0 mov r1, #0xc bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x75 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _0223B414 _0223B3CE: add r0, r7, #0 mov r1, #0xd bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x78 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _0223B414 _0223B3E6: add r0, r7, #0 mov r1, #0xe bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x76 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _0223B414 _0223B3FE: add r0, r7, #0 mov r1, #0xf bl FUN_02068538 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x77 bne _0223B414 add r0, r4, r6 lsl r0, r0, #0x10 asr r4, r0, #0x10 _0223B414: ldr r0, [sp, #4] bl FUN_0206A92C add r1, r0, #0 lsl r1, r1, #0x18 ldr r0, [sp] lsr r1, r1, #0x18 bl FUN_02069CF4 cmp r0, #0 beq _0223B42E lsl r0, r4, #0x11 asr r4, r0, #0x10 _0223B42E: cmp r5, #0x31 bne _0223B436 lsl r0, r4, #0x11 asr r4, r0, #0x10 _0223B436: ldr r0, [sp, #0x18] ldr r1, _0223B498 ; =0x000001FE add r0, r0, r4 cmp r0, r1 ble _0223B448 sub r0, r0, r1 sub r0, r4, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 _0223B448: ldr r0, [sp, #0x10] ldrb r0, [r0] add r0, r0, r4 cmp r0, #0xff ble _0223B45A sub r0, #0xff sub r0, r4, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 _0223B45A: ldr r0, [sp, #0x10] ldr r2, [sp, #0x10] ldrb r0, [r0] add r1, r0, r4 ldr r0, [sp, #0x10] strb r1, [r0] ldr r0, [sp, #0x18] ldr r1, [sp, #8] add r0, r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r1, #0xd bl FUN_02067830 ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #6 bge _0223B48C b _0223B35E _0223B48C: add r0, r7, #0 bl FUN_02068640 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0223B498: .word 0x000001FE thumb_func_start MOD11_0223B49C MOD11_0223B49C: ; 0x0223B49C push {r3, r4, r5, r6, r7, lr} sub sp, #0x158 add r4, r1, #0 str r0, [sp, #0x10] ldr r0, [r4] bl MOD11_022300C4 str r0, [sp, #0x20] ldr r0, [r4] bl MOD11_022300CC add r5, r0, #0 ldr r0, [r4] bl MOD11_02230068 mov r7, #1 str r0, [sp, #0x24] add r0, r7, #0 ldr r6, [r4, #4] bl FUN_0206A92C ldr r1, _0223B7F0 ; =0x00003108 ldrb r1, [r6, r1] tst r0, r1 beq _0223B4D0 mov r7, #3 _0223B4D0: ldr r0, [r4, #0x28] cmp r0, #0x20 bls _0223B4DA bl _0223BFD0 _0223B4DA: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223B4E6: ; jump table .short _0223B528 - _0223B4E6 - 2 ; case 0 .short _0223B5E8 - _0223B4E6 - 2 ; case 1 .short _0223B634 - _0223B4E6 - 2 ; case 2 .short _0223B662 - _0223B4E6 - 2 ; case 3 .short _0223B68C - _0223B4E6 - 2 ; case 4 .short _0223B6A0 - _0223B4E6 - 2 ; case 5 .short _0223B6D4 - _0223B4E6 - 2 ; case 6 .short _0223B6F6 - _0223B4E6 - 2 ; case 7 .short _0223B716 - _0223B4E6 - 2 ; case 8 .short _0223B75C - _0223B4E6 - 2 ; case 9 .short _0223B77A - _0223B4E6 - 2 ; case 10 .short _0223B8BC - _0223B4E6 - 2 ; case 11 .short _0223B90A - _0223B4E6 - 2 ; case 12 .short _0223B990 - _0223B4E6 - 2 ; case 13 .short _0223B9E4 - _0223B4E6 - 2 ; case 14 .short _0223BA12 - _0223B4E6 - 2 ; case 15 .short _0223BA42 - _0223B4E6 - 2 ; case 16 .short _0223BAC4 - _0223B4E6 - 2 ; case 17 .short _0223BAEA - _0223B4E6 - 2 ; case 18 .short _0223BB12 - _0223B4E6 - 2 ; case 19 .short _0223BB6A - _0223B4E6 - 2 ; case 20 .short _0223BC38 - _0223B4E6 - 2 ; case 21 .short _0223BC7E - _0223B4E6 - 2 ; case 22 .short _0223BC7E - _0223B4E6 - 2 ; case 23 .short _0223BDD8 - _0223B4E6 - 2 ; case 24 .short _0223BE26 - _0223B4E6 - 2 ; case 25 .short _0223BE62 - _0223B4E6 - 2 ; case 26 .short _0223BEA6 - _0223B4E6 - 2 ; case 27 .short _0223BED8 - _0223B4E6 - 2 ; case 28 .short _0223BEF0 - _0223B4E6 - 2 ; case 29 .short _0223BF06 - _0223B4E6 - 2 ; case 30 .short _0223BF5E - _0223B4E6 - 2 ; case 31 .short _0223BF8E - _0223B4E6 - 2 ; case 32 _0223B528: ldr r0, [r4, #0x24] cmp r0, #0 bne _0223B5A4 mov r0, #3 str r0, [sp, #0x138] mov r0, #5 str r0, [sp, #0x134] ldr r0, _0223B7F4 ; =0x00004E20 add r0, r7, r0 str r0, [sp, #0x13c] ldr r0, [r4, #0x2c] str r0, [sp, #0x140] ldr r0, [r4] bl MOD11_02230078 str r0, [sp, #0x14c] ldr r0, [r4] bl MOD11_022300CC str r0, [sp, #0x150] mov r0, #1 str r0, [sp, #0x144] mov r0, #0 str r0, [sp, #0x148] ldr r0, [r4] str r0, [sp, #0x154] ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223B578 cmp r7, #1 bne _0223B572 mov r0, #0x10 str r0, [sp, #0x130] b _0223B57C _0223B572: mov r0, #0x11 str r0, [sp, #0x130] b _0223B57C _0223B578: mov r0, #0xf str r0, [sp, #0x130] _0223B57C: add r0, sp, #0x130 bl MOD08_02229918 str r0, [r4, #8] mov r0, #1 str r0, [r4, #0x28] ldr r0, _0223B7F8 ; =0x0000070A bl FUN_020054C8 ldr r2, [r4] ldr r0, _0223B7FC ; =0x0000241E ldrh r1, [r2, r0] add r1, r1, #1 strh r1, [r2, r0] ldr r0, [r4, #8] mov r1, #0 bl MOD08_02228AB8 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B5A4: ldr r0, [r4] mov r1, #0 bl MOD11_0222FF7C add r5, r0, #0 add r0, #0x88 ldr r0, [r0] bl MOD08_02229A80 cmp r0, #4 beq _0223B678 add r0, r5, #0 add r0, #0x88 ldr r0, [r0] add r5, #0x88 str r0, [r4, #8] mov r0, #0 str r0, [r5] mov r0, #1 str r0, [r4, #0x28] ldr r0, _0223B7F8 ; =0x0000070A bl FUN_020054C8 ldr r2, [r4] ldr r0, _0223B7FC ; =0x0000241E ldrh r1, [r2, r0] add r1, r1, #1 strh r1, [r2, r0] ldr r0, [r4, #8] mov r1, #0 bl MOD08_02228AB8 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B5E8: ldr r0, [r4, #8] mov r1, #0 bl MOD08_02228AC0 cmp r0, #0 bne _0223B678 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _0223B618 ldr r0, _0223B800 ; =0x000005E6 mov r1, #0x75 bl FUN_020054A8 ldr r0, [r4, #8] mov r1, #2 bl MOD08_02228AB8 mov r0, #0x19 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B618: ldr r0, _0223B804 ; =0x00000708 mov r1, #0x75 bl FUN_020054A8 ldr r0, [r4, #8] mov r1, #1 bl MOD08_02228AB8 mov r0, #2 str r0, [r4, #0x28] mov r0, #0x17 add sp, #0x158 str r0, [r4, #0x34] pop {r3, r4, r5, r6, r7, pc} _0223B634: ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223B678 ldr r0, [r4] ldr r2, [r4, #0x2c] add r1, r7, #0 bl MOD11_02254EA8 ldr r0, [r4] ldr r1, [r4, #4] bl MOD11_0223BFD8 str r0, [r4, #0x38] cmp r0, #4 bge _0223B656 b _0223B658 _0223B656: mov r0, #3 _0223B658: str r0, [r4, #0x3c] mov r0, #3 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B662: ldr r0, [r4, #8] mov r1, #1 bl MOD08_02228AC0 cmp r0, #0 bne _0223B678 ldr r0, [r4, #4] bl MOD11_02243388 cmp r0, #0 bne _0223B67C _0223B678: bl _0223BFD0 _0223B67C: ldr r0, [r4, #8] mov r1, #3 bl MOD08_02228AB8 mov r0, #4 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B68C: ldr r0, [r4, #8] mov r1, #3 bl MOD08_02228AC0 cmp r0, #0 bne _0223B78E mov r0, #5 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B6A0: ldr r0, [r4, #0x3c] cmp r0, #0 bne _0223B6C0 ldr r0, [r4, #0x38] cmp r0, #4 bne _0223B6B8 mov r0, #7 str r0, [r4, #0x28] mov r0, #0xc add sp, #0x158 str r0, [r4, #0x34] pop {r3, r4, r5, r6, r7, pc} _0223B6B8: mov r0, #0x1c add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B6C0: ldr r0, [r4, #8] mov r1, #4 bl MOD08_02228AB8 mov r0, #6 str r0, [r4, #0x28] mov r0, #0xc add sp, #0x158 str r0, [r4, #0x34] pop {r3, r4, r5, r6, r7, pc} _0223B6D4: ldr r0, [r4, #8] mov r1, #4 bl MOD08_02228AC0 cmp r0, #0 bne _0223B78E ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223B78E ldr r0, [r4, #0x3c] add sp, #0x158 sub r0, r0, #1 str r0, [r4, #0x3c] mov r0, #5 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B6F6: ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223B78E ldr r0, [r4, #8] mov r1, #6 bl MOD08_02228AB8 ldr r0, _0223B808 ; =0x00000709 mov r1, #0x75 bl FUN_020054A8 mov r0, #8 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B716: ldr r0, [r4, #8] mov r1, #6 bl MOD08_02228AC0 cmp r0, #0 bne _0223B78E ldr r1, _0223B80C ; =0x00000363 add r0, sp, #0x10c strh r1, [r0, #2] mov r1, #0x82 strb r1, [r0, #1] str r7, [sp, #0x110] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0x10c bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #9 str r0, [r4, #0x28] ldr r0, _0223B810 ; =0x00000467 bl FUN_0200521C ldr r0, [r4] mov r1, #2 bl MOD11_02231484 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B75C: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223B78E mov r0, #0xa str r0, [r4, #0x28] ldr r0, [r4, #8] mov r1, #7 bl MOD08_02228AB8 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B77A: ldr r0, [r4, #8] mov r1, #7 bl MOD08_02228AC0 cmp r0, #0 bne _0223B78E ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] beq _0223B792 _0223B78E: bl _0223BFD0 _0223B792: ldr r0, [r4] add r1, r7, #0 bl MOD11_022314D4 ldr r2, [r4, #4] ldr r0, [r4] add r3, r2, r7 ldr r2, _0223B814 ; =0x0000219C add r1, r7, #0 ldrb r2, [r3, r2] bl MOD11_02230014 add r6, r0, #0 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #6 lsl r1, r1, #8 tst r0, r1 beq _0223B83C ldr r2, [r4, #4] ldr r0, [r4] add r3, r2, r7 ldr r2, _0223B814 ; =0x0000219C add r1, r7, #0 ldrb r2, [r3, r2] bl MOD11_02230014 add r2, r0, #0 ldr r0, [r4] ldr r1, [r4, #4] bl MOD11_0224AD38 ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223B818 ; =0x0000FFFF b _0223B81C nop _0223B7F0: .word 0x00003108 _0223B7F4: .word 0x00004E20 _0223B7F8: .word 0x0000070A _0223B7FC: .word 0x0000241E _0223B800: .word 0x000005E6 _0223B804: .word 0x00000708 _0223B808: .word 0x00000709 _0223B80C: .word 0x00000363 _0223B810: .word 0x00000467 _0223B814: .word 0x0000219C _0223B818: .word 0x0000FFFF _0223B81C: add r0, r5, #0 mov r1, #0xf mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 mov r0, #0x20 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B83C: add r0, r6, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC add r1, r0, #0 ldr r0, [r4] bl MOD11_02231668 cmp r0, #0 beq _0223B88A ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #5 mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 mov r0, #0x10 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B88A: ldr r1, _0223BBD8 ; =0x00000367 add r0, sp, #0xe8 strh r1, [r0, #2] mov r1, #0x82 strb r1, [r0, #1] str r7, [sp, #0xec] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0xe8 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #0xb str r0, [r4, #0x28] ldr r0, [r4] bl MOD11_0223129C add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B8BC: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223B914 ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223B914 mov r0, #0xc str r0, [r4, #0x28] mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #5 mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] str r1, [sp] mov r2, #0x10 add r3, r1, #0 bl FUN_02007E98 ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B90A: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 beq _0223B916 _0223B914: b _0223BFD0 _0223B916: ldr r0, [r4, #8] bl MOD08_02229A2C ldr r0, [sp, #0x24] bl FUN_02007540 ldr r0, [r4] bl MOD11_0222D944 ldr r0, [r4] mov r1, #0 bl MOD11_02230088 mov r1, #0 bl MOD11_022583C8 ldr r0, [r4] mov r1, #1 bl MOD11_02230088 mov r1, #0 bl MOD11_022583C8 ldr r0, [r4] bl MOD11_0222FF68 str r0, [sp, #0xd0] ldr r0, [r4] bl MOD11_022300CC str r0, [sp, #0xd4] ldr r0, [sp, #0x24] add r1, r7, #0 str r0, [sp, #0xd8] mov r0, #5 str r0, [sp, #0xdc] ldr r2, [r4, #4] ldr r0, [r4] add r3, r2, r7 ldr r2, _0223BBDC ; =0x0000219C ldrb r2, [r3, r2] bl MOD11_02230014 str r0, [sp, #0xe0] ldr r0, [r4] bl MOD11_022300D0 bl FUN_0206BB34 str r0, [sp, #0xe4] bl FUN_0201D658 str r0, [r4, #0x54] add r0, sp, #0xd0 bl FUN_021EEF0C str r0, [r4, #0x50] mov r0, #0xd add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223B990: ldr r0, [r4, #0x50] bl FUN_021EEF84 cmp r0, #0 beq _0223BA4C ldr r0, _0223BBE0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 beq _0223B9AA mov r0, #0xe str r0, [r4, #0x28] b _0223B9BC _0223B9AA: bl FUN_02020AA4 cmp r0, #0 beq _0223B9BC ldr r0, _0223BBE4 ; =0x000005DC bl FUN_020054C8 mov r0, #0xe str r0, [r4, #0x28] _0223B9BC: ldr r0, [r4, #0x28] cmp r0, #0xe bne _0223BA4C mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #5 mov r3, #1 bl FUN_02003210 ldr r0, [r4, #0x50] mov r1, #0 bl FUN_021EEF9C add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B9E4: ldr r0, [r4, #0x50] bl FUN_021EEF98 add r5, r0, #0 mov r1, #0 mov r2, #4 bl FUN_020079E0 add r0, r5, #0 mov r1, #0 bl FUN_0200782C cmp r0, #0x80 blt _0223BA4C add r0, r5, #0 mov r1, #0 mov r2, #0x80 bl FUN_02007558 mov r0, #0xf add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BA12: ldr r0, [r4, #0x50] bl FUN_021EEF68 ldr r0, [r4, #0x54] bl FUN_0201D674 ldr r0, [r4] bl MOD11_0222D980 mov r0, #0x10 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #5 mov r3, #1 bl FUN_02003210 mov r0, #0x11 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BA42: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 beq _0223BA4E _0223BA4C: b _0223BFD0 _0223BA4E: ldr r2, [r4, #4] ldr r0, [r4] add r3, r2, r7 ldr r2, _0223BBDC ; =0x0000219C add r1, r7, #0 ldrb r2, [r3, r2] bl MOD11_02230014 add r6, r0, #0 ldr r0, [r4, #8] bl MOD08_02229A2C ldr r0, [sp, #0x24] bl FUN_02007540 ldr r0, [r4] bl MOD11_0222D944 ldr r0, [r4] bl MOD11_0222D980 add r0, sp, #0xc0 add r1, r6, #0 mov r2, #2 bl FUN_02068B68 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] ldr r0, [sp, #0x24] add r1, sp, #0xc0 mov r2, #0x80 mov r3, #0x48 bl FUN_020073A0 mov r0, #0x10 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #5 mov r3, #1 bl FUN_02003210 mov r2, #0 ldr r0, [sp, #0x24] mov r1, #0x10 add r3, r2, #0 str r2, [sp] bl FUN_02007E98 mov r0, #0x11 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BAC4: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 bne _0223BB74 mov r0, #0x12 str r0, [r4, #0x28] ldr r0, [r4] bl MOD11_02230288 mov r1, #0 bl FUN_020143A8 add r0, r5, #0 mov r1, #1 bl FUN_020038F0 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223BAEA: ldr r1, [r4, #4] mov r0, #5 str r0, [sp] mov r2, #0 ldr r0, _0223BBDC ; =0x0000219C str r2, [sp, #4] add r3, r1, r7 ldrb r0, [r3, r0] mov r3, #0xd9 lsl r3, r3, #2 orr r0, r7 str r0, [sp, #8] ldr r0, [r4] bl MOD11_02255980 ldr r0, [r4, #0x28] add sp, #0x158 add r0, r0, #1 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BB12: add r0, r6, #0 mov r1, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223BB74 ldr r0, [r4, #4] mov r1, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223BB32 mov r0, #0x16 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BB32: ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BBD4 ; =0x0000FFFF add r0, r5, #0 mov r1, #0xf mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 mov r0, #0x14 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BB6A: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 beq _0223BB76 _0223BB74: b _0223BFD0 _0223BB76: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r2, [r4, #4] ldr r0, [r4] add r3, r2, r7 ldr r2, _0223BBDC ; =0x0000219C add r1, r7, #0 ldrb r2, [r3, r2] bl MOD11_02230014 mov r1, #5 mov r2, #0 add r6, r0, #0 bl FUN_020671BC add r5, r0, #0 ldr r0, [r4] bl MOD11_02230E18 str r0, [sp] mov r0, #5 mov r1, #1 add r2, r5, #0 mov r3, #0xa bl FUN_02077A84 add r5, r0, #0 str r5, [r4, #0x54] ldr r0, [r4] mov r1, #0 bl MOD11_0222FFC8 cmp r0, #6 bge _0223BBCA mov r0, #0 b _0223BBEE _0223BBCA: ldr r0, [r4] bl MOD11_02231280 ldr r1, _0223BBE8 ; =0x00000496 b _0223BBEC .align 2, 0 _0223BBD4: .word 0x0000FFFF _0223BBD8: .word 0x00000367 _0223BBDC: .word 0x0000219C _0223BBE0: .word 0x021C48B8 _0223BBE4: .word 0x000005DC _0223BBE8: .word 0x00000496 _0223BBEC: add r0, r0, r1 _0223BBEE: str r0, [r5, #0x44] add r0, r6, #0 mov r1, #0x70 mov r2, #0 bl FUN_020671BC str r0, [r5, #8] ldr r0, [r4] bl MOD11_02230290 str r0, [r5, #0x48] add r0, r6, #0 mov r1, #0x6f mov r2, #0 bl FUN_020671BC str r0, [r5, #0x10] ldr r0, _0223BF18 ; =0x020FA5FC add r1, r5, #0 mov r2, #5 bl FUN_02006234 str r0, [r4, #0x50] mov r0, #0x15 str r0, [r4, #0x28] ldr r0, [r4] bl MOD11_02231438 ldr r0, [r4] bl MOD11_0222D840 ldr r0, [r4] mov r1, #1 bl MOD11_02231338 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223BC38: ldr r0, [r4, #0x50] bl FUN_02006290 cmp r0, #0 beq _0223BC88 ldr r2, [r4, #4] ldr r5, [r4, #0x54] add r3, r2, r7 ldr r2, _0223BF1C ; =0x0000219C ldr r0, [r4] ldrb r2, [r3, r2] add r1, r7, #0 bl MOD11_02230014 ldr r1, [r5, #0x14] cmp r1, #0 bne _0223BC62 ldr r2, [r5, #0x18] mov r1, #0x77 bl FUN_02067830 _0223BC62: add r0, r5, #0 bl FUN_02077AC4 ldr r0, [r4, #0x50] bl FUN_02006260 ldr r0, [r4] mov r1, #2 bl MOD11_02231338 mov r0, #0x17 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BC7E: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 beq _0223BC8A _0223BC88: b _0223BFD0 _0223BC8A: ldr r0, [r4] mov r1, #0 bl MOD11_0222FF88 ldr r2, [r4, #4] str r0, [sp, #0x28] add r3, r2, r7 ldr r2, _0223BF1C ; =0x0000219C ldr r0, [r4] ldrb r2, [r3, r2] add r1, r7, #0 bl MOD11_02230014 add r6, r0, #0 ldr r0, [r4] add r1, r7, #0 bl MOD11_02231628 ldr r0, [r4] ldr r1, [r4, #4] add r2, r6, #0 bl MOD11_0224AD38 ldr r0, [r4] add r1, r6, #0 bl MOD11_02230F88 ldr r0, [r4] add r1, r6, #0 bl MOD11_02230FA8 mov r1, #0 ldr r0, [r4] add r2, r1, #0 mov r3, #9 bl MOD11_022564A8 ldr r0, [sp, #0x28] add r1, r6, #0 bl FUN_0206B900 cmp r0, #1 bne _0223BD1E ldr r0, [r4, #0x28] cmp r0, #0x16 bne _0223BD16 ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BF20 ; =0x0000FFFF add r0, r5, #0 mov r1, #0xf mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 _0223BD16: mov r0, #0x20 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BD1E: ldr r0, [r4] bl MOD11_02230290 str r0, [sp, #0x1c] bl FUN_0206B330 str r0, [sp, #0x18] ldr r0, [sp, #0x1c] bl FUN_0206B334 str r0, [sp, #0x14] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x14] bl FUN_0206B428 mov r5, #0 _0223BD3E: add r1, r5, #0 add r0, r6, #0 add r1, #0x42 mov r2, #0 bl FUN_020671BC add r1, r5, #0 str r0, [sp, #0x2c] add r0, r6, #0 add r1, #0x3a add r2, sp, #0x2c bl FUN_02067830 add r5, r5, #1 cmp r5, #4 blt _0223BD3E add r0, r6, #0 bl FUN_020690E4 add r2, r0, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x14] bl FUN_0206B244 ldr r0, [r4, #0x28] cmp r0, #0x16 bne _0223BDD0 ldr r1, [sp, #0x18] ldr r0, [sp, #0x14] cmp r1, r0 ldr r0, [r4] bne _0223BD96 bl MOD11_02231280 ldr r1, _0223BF24 ; =0x00000496 add r1, r0, r1 add r0, sp, #0x9c strh r1, [r0, #2] mov r1, #0x93 strb r1, [r0, #1] ldr r0, [sp, #0x18] str r7, [sp, #0xa0] str r0, [sp, #0xa4] b _0223BDB0 _0223BD96: bl MOD11_02231280 ldr r1, _0223BF28 ; =0x00000498 add r1, r0, r1 add r0, sp, #0x9c strh r1, [r0, #2] mov r1, #0xaf strb r1, [r0, #1] ldr r0, [sp, #0x18] str r7, [sp, #0xa0] str r0, [sp, #0xa4] ldr r0, [sp, #0x14] str r0, [sp, #0xa8] _0223BDB0: ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0x9c bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #0x18 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BDD0: mov r0, #0x20 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BDD8: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223BEBC ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223BEBC ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _0223BF20 ; =0x0000FFFF add r0, r5, #0 mov r1, #0xf mov r3, #1 bl FUN_02003210 mov r1, #0 ldr r0, [sp, #0x24] mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 mov r0, #0x20 add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BE26: ldr r0, [r4, #8] mov r1, #2 bl MOD08_02228AC0 cmp r0, #0 bne _0223BEBC ldr r0, [r4, #8] bl MOD08_02229A2C ldr r1, _0223BF2C ; =0x0000035B add r0, sp, #0x78 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0x78 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #0x1a add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BE62: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223BEBC ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223BEBC mov r1, #0xd7 lsl r1, r1, #2 add r0, sp, #0x2c strh r1, [r0, #0x2a] mov r1, #0 add r0, sp, #0x54 strb r1, [r0, #1] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0x54 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #0x1b add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BEA6: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223BEBC ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] beq _0223BEBE _0223BEBC: b _0223BFD0 _0223BEBE: mov r0, #0x5e ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp, #0x10] bl FUN_0200CAB4 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223BED8: ldr r0, [r4] ldr r2, [r4, #0x2c] add r1, r7, #0 mov r3, #1 bl MOD11_02254B40 mov r0, #0x1d str r0, [r4, #0x28] mov r0, #2 add sp, #0x158 str r0, [r4, #0x34] pop {r3, r4, r5, r6, r7, pc} _0223BEF0: ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223BFD0 ldr r0, [r4, #8] bl MOD08_02229A2C mov r0, #0x1e add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BF06: add r0, r6, #0 bl MOD11_02243388 cmp r0, #0 beq _0223BFD0 ldr r1, [r4, #0x38] ldr r0, _0223BF30 ; =0x0000035F b _0223BF34 nop _0223BF18: .word 0x020FA5FC _0223BF1C: .word 0x0000219C _0223BF20: .word 0x0000FFFF _0223BF24: .word 0x00000496 _0223BF28: .word 0x00000498 _0223BF2C: .word 0x0000035B _0223BF30: .word 0x0000035F _0223BF34: add r1, r1, r0 add r0, sp, #0x2c strh r1, [r0, #6] mov r1, #0 strb r1, [r0, #5] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] ldr r1, [sp, #0x20] add r2, sp, #0x30 bl MOD11_0223178C str r0, [r4, #0x30] mov r0, #0x14 str r0, [r4, #0x34] mov r0, #0x1f add sp, #0x158 str r0, [r4, #0x28] pop {r3, r4, r5, r6, r7, pc} _0223BF5E: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _0223BFD0 ldr r0, [r4, #0x34] sub r0, r0, #1 str r0, [r4, #0x34] bne _0223BFD0 mov r0, #0x5e ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp, #0x10] bl FUN_0200CAB4 add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223BF8E: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 bne _0223BFD0 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #6 lsl r1, r1, #8 tst r0, r1 beq _0223BFB2 ldr r0, [r4, #8] bl MOD08_02229A2C ldr r0, [sp, #0x24] bl FUN_02007540 _0223BFB2: ldr r1, [r4] ldr r0, _0223BFD4 ; =0x0000241C mov r2, #4 strb r2, [r1, r0] mov r0, #0x5e ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp, #0x10] bl FUN_0200CAB4 _0223BFD0: add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223BFD4: .word 0x0000241C thumb_func_start MOD11_0223BFD8 MOD11_0223BFD8: ; 0x0223BFD8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r4, r1, #0 bl MOD11_0222FF74 mov r1, #6 lsl r1, r1, #8 tst r0, r1 beq _0223BFEE mov r0, #4 pop {r3, r4, r5, r6, r7, pc} _0223BFEE: mov r0, #0x4a lsl r0, r0, #2 ldr r0, [r4, r0] ldr r1, [r4, #0x6c] cmp r0, #5 bne _0223C026 mov r0, #0xc0 mul r0, r1 add r1, r4, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] mov r1, #8 bl FUN_02068678 ldr r1, _0223C200 ; =0x0000311C ldr r2, _0223C204 ; =0x0225DCF0 ldrb r1, [r4, r1] lsl r1, r1, #1 ldrb r2, [r2, r1] mul r2, r0 add r0, r2, #0 ldr r2, _0223C208 ; =0x0225DCF1 ldrb r1, [r2, r1] bl _u32_div_f str r0, [sp] b _0223C03A _0223C026: mov r0, #0xc0 mul r0, r1 add r1, r4, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] mov r1, #8 bl FUN_02068678 str r0, [sp] _0223C03A: ldr r1, [r4, #0x6c] add r0, r4, #0 mov r2, #0x1b mov r3, #0 mov r5, #0xa bl MOD11_02243420 add r7, r0, #0 ldr r1, [r4, #0x6c] add r0, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 add r1, r0, #0 mov r0, #0x4a lsl r0, r0, #2 ldr r2, [r4, r0] cmp r2, #5 ble _0223C128 cmp r2, #0xf bhi _0223C12E add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0223C072: ; jump table .short _0223C12E - _0223C072 - 2 ; case 0 .short _0223C12E - _0223C072 - 2 ; case 1 .short _0223C12E - _0223C072 - 2 ; case 2 .short _0223C12E - _0223C072 - 2 ; case 3 .short _0223C12E - _0223C072 - 2 ; case 4 .short _0223C12E - _0223C072 - 2 ; case 5 .short _0223C092 - _0223C072 - 2 ; case 6 .short _0223C0A6 - _0223C072 - 2 ; case 7 .short _0223C0B4 - _0223C072 - 2 ; case 8 .short _0223C0D0 - _0223C072 - 2 ; case 9 .short _0223C0EC - _0223C072 - 2 ; case 10 .short _0223C12E - _0223C072 - 2 ; case 11 .short _0223C12E - _0223C072 - 2 ; case 12 .short _0223C0FA - _0223C072 - 2 ; case 13 .short _0223C12E - _0223C072 - 2 ; case 14 .short _0223C11C - _0223C072 - 2 ; case 15 _0223C092: cmp r7, #0xb beq _0223C0A2 cmp r1, #0xb beq _0223C0A2 cmp r7, #6 beq _0223C0A2 cmp r1, #6 bne _0223C12E _0223C0A2: mov r5, #0x1e b _0223C12E _0223C0A6: add r0, r6, #0 bl MOD11_02230294 cmp r0, #7 bne _0223C12E mov r5, #0x23 b _0223C12E _0223C0B4: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0223C20C ; =0x00002D74 ldrb r1, [r1, r0] cmp r1, #0x28 bhs _0223C12E mov r0, #0x28 sub r5, r0, r1 cmp r5, #0xa bhs _0223C12E mov r5, #0xa b _0223C12E _0223C0D0: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 mov r1, #0xb5 lsl r1, r1, #6 ldrh r1, [r2, r1] add r0, r6, #0 bl MOD11_02231668 cmp r0, #1 bne _0223C12E mov r5, #0x1e b _0223C12E _0223C0EC: add r0, #0x28 ldr r5, [r4, r0] add r5, #0xa cmp r5, #0x28 bls _0223C12E mov r5, #0x28 b _0223C12E _0223C0FA: add r0, r6, #0 bl MOD11_02230C5C cmp r0, #3 beq _0223C118 add r0, r6, #0 bl MOD11_02230C5C cmp r0, #4 beq _0223C118 add r0, r6, #0 bl MOD11_02230294 cmp r0, #5 bne _0223C12E _0223C118: mov r5, #0x23 b _0223C12E _0223C11C: add r0, #0x28 ldr r0, [r4, r0] cmp r0, #1 bge _0223C12E mov r5, #0x28 b _0223C12E _0223C128: ldr r0, _0223C210 ; =0x0225DC28 sub r1, r2, #2 ldrb r5, [r0, r1] _0223C12E: ldr r1, [r4, #0x6c] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 ldr r0, _0223C214 ; =0x00002D90 add r1, r4, r6 ldr r1, [r1, r0] lsl r0, r1, #1 add r7, r1, r0 ldr r1, [sp] add r0, r1, #0 mul r0, r5 mov r1, #0xa bl _u32_div_f ldr r1, _0223C218 ; =0x00002D8C add r2, r4, r6 ldr r1, [r2, r1] lsl r1, r1, #1 sub r1, r7, r1 mul r1, r0 add r0, r1, #0 add r1, r7, #0 bl _u32_div_f add r1, r0, #0 ldr r0, _0223C21C ; =0x00002DAC add r2, r4, r6 ldr r2, [r2, r0] mov r0, #0x27 tst r0, r2 beq _0223C170 lsl r1, r1, #1 _0223C170: mov r0, #0xd8 tst r0, r2 beq _0223C182 mov r0, #0xf mul r0, r1 mov r1, #0xa bl _u32_div_f add r1, r0, #0 _0223C182: cmp r1, #0xff blo _0223C18A mov r5, #4 b _0223C1FA _0223C18A: ldr r0, _0223C220 ; =0x040002B0 mov r2, #0 strh r2, [r0] mov r0, #0xff lsl r0, r0, #0x10 bl _u32_div_f ldr r1, _0223C224 ; =0x040002B8 add r2, r1, #0 str r0, [r1] sub r2, #8 lsr r0, r1, #0xb _0223C1A2: ldrh r1, [r2] tst r1, r0 bne _0223C1A2 ldr r3, _0223C220 ; =0x040002B0 lsr r0, r3, #0xb _0223C1AC: ldrh r1, [r3] tst r1, r0 bne _0223C1AC ldr r2, _0223C228 ; =0x040002B4 mov r0, #0 ldr r1, [r2] strh r0, [r3] mov r0, #2 str r1, [r2, #4] sub r2, r2, #4 lsl r0, r0, #0xe _0223C1C2: ldrh r1, [r2] tst r1, r0 bne _0223C1C2 ldr r2, _0223C220 ; =0x040002B0 lsr r0, r2, #0xb _0223C1CC: ldrh r1, [r2] tst r1, r0 bne _0223C1CC ldr r1, _0223C228 ; =0x040002B4 ldr r0, _0223C22C ; =0x000FFFF0 ldr r1, [r1] bl _u32_div_f add r6, r0, #0 mov r5, #0 _0223C1E0: bl FUN_0201B9EC cmp r0, r6 bhs _0223C1EE add r5, r5, #1 cmp r5, #4 blt _0223C1E0 _0223C1EE: mov r0, #0x4a lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #1 bne _0223C1FA mov r5, #4 _0223C1FA: add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} nop _0223C200: .word 0x0000311C _0223C204: .word 0x0225DCF0 _0223C208: .word 0x0225DCF1 _0223C20C: .word 0x00002D74 _0223C210: .word 0x0225DC28 _0223C214: .word 0x00002D90 _0223C218: .word 0x00002D8C _0223C21C: .word 0x00002DAC _0223C220: .word 0x040002B0 _0223C224: .word 0x040002B8 _0223C228: .word 0x040002B4 _0223C22C: .word 0x000FFFF0 thumb_func_start MOD11_0223C230 MOD11_0223C230: ; 0x0223C230 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r0, #0 add r6, r1, #0 cmp r2, #0x16 bgt _0223C27A cmp r2, #0 blt _0223C280 add r1, r2, r2 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223C24C: ; jump table .short _0223C280 - _0223C24C - 2 ; case 0 .short _0223C280 - _0223C24C - 2 ; case 1 .short _0223C284 - _0223C24C - 2 ; case 2 .short _0223C320 - _0223C24C - 2 ; case 3 .short _0223C29C - _0223C24C - 2 ; case 4 .short _0223C288 - _0223C24C - 2 ; case 5 .short _0223C28C - _0223C24C - 2 ; case 6 .short _0223C290 - _0223C24C - 2 ; case 7 .short _0223C296 - _0223C24C - 2 ; case 8 .short _0223C346 - _0223C24C - 2 ; case 9 .short _0223C2C2 - _0223C24C - 2 ; case 10 .short _0223C36E - _0223C24C - 2 ; case 11 .short _0223C2EA - _0223C24C - 2 ; case 12 .short _0223C280 - _0223C24C - 2 ; case 13 .short _0223C3A4 - _0223C24C - 2 ; case 14 .short _0223C3AC - _0223C24C - 2 ; case 15 .short _0223C3B4 - _0223C24C - 2 ; case 16 .short _0223C3F0 - _0223C24C - 2 ; case 17 .short _0223C280 - _0223C24C - 2 ; case 18 .short _0223C42C - _0223C24C - 2 ; case 19 .short _0223C456 - _0223C24C - 2 ; case 20 .short _0223C480 - _0223C24C - 2 ; case 21 .short _0223C28C - _0223C24C - 2 ; case 22 _0223C27A: cmp r2, #0xff bne _0223C280 b _0223C480 _0223C280: ldr r5, [r6, #0x64] b _0223C486 _0223C284: ldr r5, [r6, #0x6c] b _0223C486 _0223C288: ldr r5, [r6, #0x74] b _0223C486 _0223C28C: ldr r5, [r6, #0x78] b _0223C486 _0223C290: add r6, #0x94 ldr r5, [r6] b _0223C486 _0223C296: add r6, #0x80 ldr r5, [r6] b _0223C486 _0223C29C: bl MOD11_0222FF84 add r6, r0, #0 mov r5, #0 cmp r6, #0 ble _0223C2C0 mov r7, #1 _0223C2AA: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _0223C48C ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 bne _0223C2C0 add r5, r5, #1 cmp r5, r6 blt _0223C2AA _0223C2C0: b _0223C486 _0223C2C2: bl MOD11_0222FF84 add r6, r0, #0 mov r5, #0 cmp r6, #0 ble _0223C2E8 ldr r7, _0223C48C ; =0x00000195 _0223C2D0: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #3 beq _0223C2E8 cmp r0, #1 beq _0223C2E8 add r5, r5, #1 cmp r5, r6 blt _0223C2D0 _0223C2E8: b _0223C486 _0223C2EA: bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223C2F8 mov r6, #5 b _0223C2FA _0223C2F8: mov r6, #1 _0223C2FA: add r0, r4, #0 bl MOD11_0222FF84 add r7, r0, #0 mov r5, #0 cmp r7, #0 ble _0223C31E _0223C308: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _0223C48C ; =0x00000195 ldrb r0, [r0, r1] cmp r0, r6 beq _0223C31E add r5, r5, #1 cmp r5, r7 blt _0223C308 _0223C31E: b _0223C486 _0223C320: bl MOD11_0222FF84 add r6, r0, #0 mov r5, #0 cmp r6, #0 ble _0223C344 mov r7, #1 _0223C32E: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _0223C48C ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 beq _0223C344 add r5, r5, #1 cmp r5, r6 blt _0223C32E _0223C344: b _0223C486 _0223C346: bl MOD11_0222FF84 add r6, r0, #0 mov r5, #0 cmp r6, #0 ble _0223C36C ldr r7, _0223C48C ; =0x00000195 _0223C354: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldrb r0, [r0, r7] cmp r0, #2 beq _0223C36C cmp r0, #0 beq _0223C36C add r5, r5, #1 cmp r5, r6 blt _0223C354 _0223C36C: b _0223C486 _0223C36E: bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223C37C mov r6, #4 b _0223C37E _0223C37C: mov r6, #0 _0223C37E: add r0, r4, #0 bl MOD11_0222FF84 add r7, r0, #0 mov r5, #0 cmp r7, #0 ble _0223C486 _0223C38C: add r0, r4, #0 add r1, r5, #0 bl MOD11_0222FF7C ldr r1, _0223C48C ; =0x00000195 ldrb r0, [r0, r1] cmp r0, r6 beq _0223C486 add r5, r5, #1 cmp r5, r7 blt _0223C38C b _0223C486 _0223C3A4: mov r0, #0x47 lsl r0, r0, #2 ldr r5, [r6, r0] b _0223C486 _0223C3AC: mov r0, #0x12 lsl r0, r0, #4 ldr r5, [r6, r0] b _0223C486 _0223C3B4: bl MOD11_0222FF84 mov r5, #0 str r0, [sp, #4] cmp r0, #0 ble _0223C3E6 _0223C3C0: ldr r7, [r6, #0x64] cmp r5, r7 beq _0223C3DE add r0, r4, #0 add r1, r5, #0 bl MOD11_02230270 str r0, [sp, #8] add r0, r4, #0 add r1, r7, #0 bl MOD11_02230270 ldr r1, [sp, #8] cmp r1, r0 beq _0223C3E6 _0223C3DE: ldr r0, [sp, #4] add r5, r5, #1 cmp r5, r0 blt _0223C3C0 _0223C3E6: ldr r0, [sp, #4] cmp r5, r0 bne _0223C486 mov r5, #0 b _0223C486 _0223C3F0: bl MOD11_0222FF84 mov r5, #0 str r0, [sp] cmp r0, #0 ble _0223C422 _0223C3FC: ldr r7, [r6, #0x6c] cmp r5, r7 beq _0223C41A add r0, r4, #0 add r1, r5, #0 bl MOD11_02230270 str r0, [sp, #0xc] add r0, r4, #0 add r1, r7, #0 bl MOD11_02230270 ldr r1, [sp, #0xc] cmp r1, r0 beq _0223C422 _0223C41A: ldr r0, [sp] add r5, r5, #1 cmp r5, r0 blt _0223C3FC _0223C422: ldr r0, [sp] cmp r5, r0 bne _0223C486 mov r5, #0 b _0223C486 _0223C42C: bl MOD11_0222FF84 add r7, r0, #0 ldr r1, [r6, #0x64] add r0, r4, #0 bl MOD11_02230270 add r6, r0, #0 mov r5, #0 cmp r7, #0 ble _0223C486 _0223C442: add r0, r4, #0 add r1, r5, #0 bl MOD11_02230270 cmp r6, r0 bne _0223C486 add r5, r5, #1 cmp r5, r7 blt _0223C442 b _0223C486 _0223C456: bl MOD11_0222FF84 add r7, r0, #0 ldr r1, [r6, #0x6c] add r0, r4, #0 bl MOD11_02230270 add r6, r0, #0 mov r5, #0 cmp r7, #0 ble _0223C486 _0223C46C: add r0, r4, #0 add r1, r5, #0 bl MOD11_02230270 cmp r6, r0 bne _0223C486 add r5, r5, #1 cmp r5, r7 blt _0223C46C b _0223C486 _0223C480: mov r0, #0x46 lsl r0, r0, #2 ldr r5, [r6, r0] _0223C486: add r0, r5, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223C48C: .word 0x00000195 thumb_func_start MOD11_0223C490 MOD11_0223C490: ; 0x0223C490 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r4, r1, #0 mov r6, #0 bl MOD11_0223A404 str r0, [r4] add r0, r7, #0 bl MOD11_0223A404 str r0, [r4, #4] cmp r0, #0x3c bhi _0223C544 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223C4B6: ; jump table .short _0223C530 - _0223C4B6 - 2 ; case 0 .short _0223C532 - _0223C4B6 - 2 ; case 1 .short _0223C532 - _0223C4B6 - 2 ; case 2 .short _0223C532 - _0223C4B6 - 2 ; case 3 .short _0223C532 - _0223C4B6 - 2 ; case 4 .short _0223C532 - _0223C4B6 - 2 ; case 5 .short _0223C532 - _0223C4B6 - 2 ; case 6 .short _0223C532 - _0223C4B6 - 2 ; case 7 .short _0223C532 - _0223C4B6 - 2 ; case 8 .short _0223C536 - _0223C4B6 - 2 ; case 9 .short _0223C536 - _0223C4B6 - 2 ; case 10 .short _0223C536 - _0223C4B6 - 2 ; case 11 .short _0223C536 - _0223C4B6 - 2 ; case 12 .short _0223C536 - _0223C4B6 - 2 ; case 13 .short _0223C536 - _0223C4B6 - 2 ; case 14 .short _0223C536 - _0223C4B6 - 2 ; case 15 .short _0223C536 - _0223C4B6 - 2 ; case 16 .short _0223C536 - _0223C4B6 - 2 ; case 17 .short _0223C536 - _0223C4B6 - 2 ; case 18 .short _0223C536 - _0223C4B6 - 2 ; case 19 .short _0223C536 - _0223C4B6 - 2 ; case 20 .short _0223C536 - _0223C4B6 - 2 ; case 21 .short _0223C536 - _0223C4B6 - 2 ; case 22 .short _0223C536 - _0223C4B6 - 2 ; case 23 .short _0223C536 - _0223C4B6 - 2 ; case 24 .short _0223C536 - _0223C4B6 - 2 ; case 25 .short _0223C536 - _0223C4B6 - 2 ; case 26 .short _0223C536 - _0223C4B6 - 2 ; case 27 .short _0223C536 - _0223C4B6 - 2 ; case 28 .short _0223C536 - _0223C4B6 - 2 ; case 29 .short _0223C536 - _0223C4B6 - 2 ; case 30 .short _0223C53A - _0223C4B6 - 2 ; case 31 .short _0223C53A - _0223C4B6 - 2 ; case 32 .short _0223C53A - _0223C4B6 - 2 ; case 33 .short _0223C53A - _0223C4B6 - 2 ; case 34 .short _0223C53A - _0223C4B6 - 2 ; case 35 .short _0223C53A - _0223C4B6 - 2 ; case 36 .short _0223C53A - _0223C4B6 - 2 ; case 37 .short _0223C53A - _0223C4B6 - 2 ; case 38 .short _0223C53A - _0223C4B6 - 2 ; case 39 .short _0223C53A - _0223C4B6 - 2 ; case 40 .short _0223C53A - _0223C4B6 - 2 ; case 41 .short _0223C53A - _0223C4B6 - 2 ; case 42 .short _0223C53A - _0223C4B6 - 2 ; case 43 .short _0223C53A - _0223C4B6 - 2 ; case 44 .short _0223C53A - _0223C4B6 - 2 ; case 45 .short _0223C53A - _0223C4B6 - 2 ; case 46 .short _0223C53A - _0223C4B6 - 2 ; case 47 .short _0223C53A - _0223C4B6 - 2 ; case 48 .short _0223C53A - _0223C4B6 - 2 ; case 49 .short _0223C53A - _0223C4B6 - 2 ; case 50 .short _0223C53A - _0223C4B6 - 2 ; case 51 .short _0223C53E - _0223C4B6 - 2 ; case 52 .short _0223C53E - _0223C4B6 - 2 ; case 53 .short _0223C53E - _0223C4B6 - 2 ; case 54 .short _0223C53E - _0223C4B6 - 2 ; case 55 .short _0223C53E - _0223C4B6 - 2 ; case 56 .short _0223C53E - _0223C4B6 - 2 ; case 57 .short _0223C53E - _0223C4B6 - 2 ; case 58 .short _0223C53E - _0223C4B6 - 2 ; case 59 .short _0223C542 - _0223C4B6 - 2 ; case 60 _0223C530: b _0223C544 _0223C532: mov r6, #1 b _0223C544 _0223C536: mov r6, #2 b _0223C544 _0223C53A: mov r6, #3 b _0223C544 _0223C53E: mov r6, #4 b _0223C544 _0223C542: mov r6, #6 _0223C544: mov r5, #0 cmp r6, #0 ble _0223C55A _0223C54A: add r0, r7, #0 bl MOD11_0223A404 str r0, [r4, #8] add r5, r5, #1 add r4, r4, #4 cmp r5, r6 blt _0223C54A _0223C55A: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223C55C MOD11_0223C55C: ; 0x0223C55C push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 ldr r2, [r4] add r5, r3, #0 strh r2, [r5, #2] ldr r2, [r4, #4] add r7, r0, #0 strb r2, [r5, #1] ldrb r2, [r5, #1] add r6, r1, #0 cmp r2, #0x3c bls _0223C576 b _0223CC58 _0223C576: add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0223C582: ; jump table .short _0223CC58 - _0223C582 - 2 ; case 0 .short _0223C5FC - _0223C582 - 2 ; case 1 .short _0223C606 - _0223C582 - 2 ; case 2 .short _0223C610 - _0223C582 - 2 ; case 3 .short _0223C61C - _0223C582 - 2 ; case 4 .short _0223C628 - _0223C582 - 2 ; case 5 .short _0223C634 - _0223C582 - 2 ; case 6 .short _0223C634 - _0223C582 - 2 ; case 7 .short _0223C640 - _0223C582 - 2 ; case 8 .short _0223C64A - _0223C582 - 2 ; case 9 .short _0223C660 - _0223C582 - 2 ; case 10 .short _0223C674 - _0223C582 - 2 ; case 11 .short _0223C68A - _0223C582 - 2 ; case 12 .short _0223C69E - _0223C582 - 2 ; case 13 .short _0223C6B2 - _0223C582 - 2 ; case 14 .short _0223C6C8 - _0223C582 - 2 ; case 15 .short _0223C6DC - _0223C582 - 2 ; case 16 .short _0223C6F0 - _0223C582 - 2 ; case 17 .short _0223C704 - _0223C582 - 2 ; case 18 .short _0223C71A - _0223C582 - 2 ; case 19 .short _0223C728 - _0223C582 - 2 ; case 20 .short _0223C740 - _0223C582 - 2 ; case 21 .short _0223C758 - _0223C582 - 2 ; case 22 .short _0223C76E - _0223C582 - 2 ; case 23 .short _0223C784 - _0223C582 - 2 ; case 24 .short _0223C79A - _0223C582 - 2 ; case 25 .short _0223C7B0 - _0223C582 - 2 ; case 26 .short _0223C7C6 - _0223C582 - 2 ; case 27 .short _0223C7DC - _0223C582 - 2 ; case 28 .short _0223C7F0 - _0223C582 - 2 ; case 29 .short _0223C804 - _0223C582 - 2 ; case 30 .short _0223C81A - _0223C582 - 2 ; case 31 .short _0223C83A - _0223C582 - 2 ; case 32 .short _0223C85C - _0223C582 - 2 ; case 33 .short _0223C87C - _0223C582 - 2 ; case 34 .short _0223C89A - _0223C582 - 2 ; case 35 .short _0223C8B8 - _0223C582 - 2 ; case 36 .short _0223C8DA - _0223C582 - 2 ; case 37 .short _0223C8FA - _0223C582 - 2 ; case 38 .short _0223C91A - _0223C582 - 2 ; case 39 .short _0223C93A - _0223C582 - 2 ; case 40 .short _0223C95A - _0223C582 - 2 ; case 41 .short _0223C97A - _0223C582 - 2 ; case 42 .short _0223C99A - _0223C582 - 2 ; case 43 .short _0223C9BA - _0223C582 - 2 ; case 44 .short _0223C9D8 - _0223C582 - 2 ; case 45 .short _0223C9F6 - _0223C582 - 2 ; case 46 .short _0223CA14 - _0223C582 - 2 ; case 47 .short _0223CA26 - _0223C582 - 2 ; case 48 .short _0223CA48 - _0223C582 - 2 ; case 49 .short _0223CA6A - _0223C582 - 2 ; case 50 .short _0223CA8C - _0223C582 - 2 ; case 51 .short _0223CAAC - _0223C582 - 2 ; case 52 .short _0223CAD8 - _0223C582 - 2 ; case 53 .short _0223CB06 - _0223C582 - 2 ; case 54 .short _0223CB32 - _0223C582 - 2 ; case 55 .short _0223CB5C - _0223C582 - 2 ; case 56 .short _0223CB8A - _0223C582 - 2 ; case 57 .short _0223CBB8 - _0223C582 - 2 ; case 58 .short _0223CBE6 - _0223C582 - 2 ; case 59 .short _0223CC14 - _0223C582 - 2 ; case 60 _0223C5FC: ldr r2, [r4, #8] bl MOD11_0223C230 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C606: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C610: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C61C: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CD6C str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C628: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C634: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C640: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0223C64A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C660: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C674: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C68A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD6C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C69E: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD2C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C6B2: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD84 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C6C8: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C6DC: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD9C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C6F0: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C704: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C71A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r0, [r4, #0xc] str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C728: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223C230 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C740: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C758: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C76E: ldr r2, [r4, #8] bl MOD11_0223CD38 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C784: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C79A: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C7B0: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C7C6: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C7DC: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C7F0: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C804: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _0223C81A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C83A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C85C: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C87C: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C89A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C8B8: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C8DA: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C8FA: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C91A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD6C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C93A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD2C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C95A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD78 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C97A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD20 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C99A: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C9BA: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C9D8: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD6C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223C9F6: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CD78 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CA14: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r0, [r4, #0xc] str r0, [r5, #8] ldr r0, [r4, #0x10] str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CA26: ldr r1, [r4, #8] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CDA8 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CA48: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CA6A: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CA8C: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r1, [r4, #0x10] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} _0223CAAC: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r1, [r4, #0x14] add r0, r6, #0 bl MOD11_0223CC8C str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CAD8: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CB06: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CD38 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r1, [r4, #0x14] add r0, r6, #0 bl MOD11_0223CD6C str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CB32: ldr r2, [r4, #8] bl MOD11_0223CC5C str r0, [r5, #4] ldr r1, [r4, #0xc] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r1, [r4, #0x14] add r0, r6, #0 bl MOD11_0223CCA8 str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CB5C: ldr r2, [r4, #8] bl MOD11_0223CDBC str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CB8A: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CBB8: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CBE6: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDB4 str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _0223CC14: ldr r2, [r4, #8] bl MOD11_0223CDB4 str r0, [r5, #4] ldr r2, [r4, #0xc] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #8] ldr r2, [r4, #0x10] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0xc] ldr r2, [r4, #0x14] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDB4 str r0, [r5, #0x10] ldr r2, [r4, #0x18] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CDBC str r0, [r5, #0x14] ldr r2, [r4, #0x1c] add r0, r7, #0 add r1, r6, #0 bl MOD11_0223CC5C str r0, [r5, #0x18] _0223CC58: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0223CC5C MOD11_0223CC5C: ; 0x0223CC5C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r2, #0 bl MOD11_0223C230 cmp r4, #0x16 bne _0223CC76 ldr r1, _0223CC84 ; =0x000021A0 add r2, r5, r0 ldrb r1, [r2, r1] lsl r1, r1, #8 orr r0, r1 pop {r3, r4, r5, pc} _0223CC76: ldr r1, _0223CC88 ; =0x0000219C add r2, r5, r0 ldrb r1, [r2, r1] lsl r1, r1, #8 orr r0, r1 pop {r3, r4, r5, pc} nop _0223CC84: .word 0x000021A0 _0223CC88: .word 0x0000219C thumb_func_start MOD11_0223CC8C MOD11_0223CC8C: ; 0x0223CC8C cmp r1, #1 beq _0223CC96 cmp r1, #0xff beq _0223CC9C bx lr _0223CC96: ldr r1, _0223CCA4 ; =0x00003044 ldr r0, [r0, r1] bx lr _0223CC9C: mov r1, #0x49 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr .align 2, 0 _0223CCA4: .word 0x00003044 thumb_func_start MOD11_0223CCA8 MOD11_0223CCA8: ; 0x0223CCA8 push {r4, lr} cmp r1, #0x15 bgt _0223CCC0 bge _0223CCF6 cmp r1, #2 bgt _0223CD18 cmp r1, #1 blt _0223CD18 beq _0223CCC6 cmp r1, #2 beq _0223CCDE b _0223CD18 _0223CCC0: cmp r1, #0xff beq _0223CD12 b _0223CD18 _0223CCC6: ldr r3, [r0, #0x64] mov r1, #0xc0 mul r1, r3 add r2, r0, r1 ldr r1, _0223CD1C ; =0x00002DB8 ldrh r4, [r2, r1] lsl r1, r3, #0x18 lsr r1, r1, #0x18 add r2, r4, #0 bl MOD11_0223D1D0 b _0223CD18 _0223CCDE: ldr r3, [r0, #0x6c] mov r1, #0xc0 mul r1, r3 add r2, r0, r1 ldr r1, _0223CD1C ; =0x00002DB8 ldrh r4, [r2, r1] lsl r1, r3, #0x18 lsr r1, r1, #0x18 add r2, r4, #0 bl MOD11_0223D1D0 b _0223CD18 _0223CCF6: mov r1, #0x46 lsl r1, r1, #2 ldr r3, [r0, r1] mov r1, #0xc0 mul r1, r3 add r2, r0, r1 ldr r1, _0223CD1C ; =0x00002DB8 ldrh r4, [r2, r1] lsl r1, r3, #0x18 lsr r1, r1, #0x18 add r2, r4, #0 bl MOD11_0223D1D0 b _0223CD18 _0223CD12: mov r1, #0x4a lsl r1, r1, #2 ldr r4, [r0, r1] _0223CD18: add r0, r4, #0 pop {r4, pc} .align 2, 0 _0223CD1C: .word 0x00002DB8 thumb_func_start MOD11_0223CD20 MOD11_0223CD20: ; 0x0223CD20 cmp r1, #0xff bne _0223CD2A mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CD2A: bx lr thumb_func_start MOD11_0223CD2C MOD11_0223CD2C: ; 0x0223CD2C cmp r1, #0xff bne _0223CD36 mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CD36: bx lr thumb_func_start MOD11_0223CD38 MOD11_0223CD38: ; 0x0223CD38 push {r3, r4, r5, lr} add r5, r1, #0 cmp r2, #0xff bne _0223CD48 mov r0, #0x4b lsl r0, r0, #2 ldr r4, [r5, r0] b _0223CD64 _0223CD48: bl MOD11_0223C230 add r1, r0, #0 mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _0223CD68 ; =0x00002D67 lsl r1, r1, #0x18 ldrb r4, [r2, r0] add r0, r5, #0 lsr r1, r1, #0x18 add r2, r4, #0 bl MOD11_0223D1C4 _0223CD64: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _0223CD68: .word 0x00002D67 thumb_func_start MOD11_0223CD6C MOD11_0223CD6C: ; 0x0223CD6C cmp r1, #0xff bne _0223CD76 mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CD76: bx lr thumb_func_start MOD11_0223CD78 MOD11_0223CD78: ; 0x0223CD78 cmp r1, #0xff bne _0223CD82 mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CD82: bx lr thumb_func_start MOD11_0223CD84 MOD11_0223CD84: ; 0x0223CD84 push {r4, lr} add r4, r1, #0 bl MOD11_0223C230 ldr r1, _0223CD98 ; =0x0000219C add r2, r4, r0 ldrb r1, [r2, r1] lsl r1, r1, #8 orr r0, r1 pop {r4, pc} .align 2, 0 _0223CD98: .word 0x0000219C thumb_func_start MOD11_0223CD9C MOD11_0223CD9C: ; 0x0223CD9C cmp r1, #0xff bne _0223CDA6 mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CDA6: bx lr thumb_func_start MOD11_0223CDA8 MOD11_0223CDA8: ; 0x0223CDA8 cmp r1, #0xff bne _0223CDB2 mov r1, #0x13 lsl r1, r1, #4 ldr r0, [r0, r1] _0223CDB2: bx lr thumb_func_start MOD11_0223CDB4 MOD11_0223CDB4: ; 0x0223CDB4 ldr r3, _0223CDB8 ; =MOD11_0223C230 bx r3 .align 2, 0 _0223CDB8: .word MOD11_0223C230 thumb_func_start MOD11_0223CDBC MOD11_0223CDBC: ; 0x0223CDBC ldr r3, _0223CDC0 ; =MOD11_0223C230 bx r3 .align 2, 0 _0223CDC0: .word MOD11_0223C230 thumb_func_start MOD11_0223CDC4 MOD11_0223CDC4: ; 0x0223CDC4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x78 add r7, r0, #0 add r5, r1, #0 str r2, [sp, #0x18] bl MOD11_022300C4 str r0, [sp, #0x28] add r0, r7, #0 bl MOD11_0223013C str r0, [sp, #0x20] add r0, r7, #0 bl MOD11_02230138 str r0, [sp, #0x24] add r0, r7, #0 bl MOD11_0222FF68 str r0, [sp, #0x1c] add r0, r7, #0 bl MOD11_02230078 add r6, r0, #0 add r0, r7, #0 bl MOD11_02230080 add r4, r0, #0 add r0, r7, #0 bl MOD11_022300CC add r7, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, _0223D03C ; =0x00004E31 add r1, r4, #0 str r0, [sp, #8] add r0, r6, #0 mov r2, #0x1b mov r3, #0xc0 bl FUN_0200C00C mov r0, #0x1b str r0, [sp] mov r0, #0x2e str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r1, #2 str r1, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _0223D040 ; =0x00004E2C add r2, r6, #0 str r0, [sp, #0x14] add r0, r7, #0 add r3, r4, #0 bl FUN_0200C0DC mov r0, #1 str r0, [sp] ldr r0, _0223D044 ; =0x00004E29 add r1, r4, #0 str r0, [sp, #4] add r0, r6, #0 mov r2, #0x1b mov r3, #0xc1 bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, _0223D044 ; =0x00004E29 add r1, r4, #0 str r0, [sp, #4] add r0, r6, #0 mov r2, #0x1b mov r3, #0xc2 bl FUN_0200C13C ldr r2, _0223D048 ; =0x0225DD7C add r0, r6, #0 add r1, r4, #0 bl FUN_0200C154 str r0, [r5, #0xc] bl FUN_0200C5A8 ldr r0, [sp, #0x18] bl FUN_0206B6C8 add r3, r0, #0 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, _0223D04C ; =0x00004E32 add r1, r4, #0 str r0, [sp, #8] add r0, r6, #0 mov r2, #0x13 bl FUN_0200C978 bl FUN_0206B888 mov r1, #0x13 str r1, [sp] str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #3 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _0223D050 ; =0x00004E2D mov r1, #2 str r0, [sp, #0x14] add r0, r7, #0 add r2, r6, #0 add r3, r4, #0 bl FUN_0200C0DC bl FUN_0206B894 add r3, r0, #0 mov r0, #0 str r0, [sp] ldr r0, _0223D054 ; =0x00004E2A add r1, r4, #0 str r0, [sp, #4] add r0, r6, #0 mov r2, #0x13 bl FUN_0200C124 bl FUN_0206B8A0 add r3, r0, #0 mov r0, #0 str r0, [sp] ldr r0, _0223D054 ; =0x00004E2A add r1, r4, #0 str r0, [sp, #4] add r0, r6, #0 mov r2, #0x13 bl FUN_0200C13C ldr r2, _0223D058 ; =0x0225DDB0 add r0, r6, #0 add r1, r4, #0 bl FUN_0200C154 str r0, [r5, #0x10] ldr r0, [sp, #0x18] bl FUN_0206B87C add r1, r0, #0 ldr r0, [r5, #0x10] ldr r0, [r0] bl FUN_020202DC ldr r0, [r5, #0x10] bl FUN_0200C5A8 mov r0, #1 mov r1, #5 bl FUN_02011744 str r0, [r5, #0x50] ldr r0, [sp, #0x18] mov r1, #0xaf mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0223CF26 mov r0, #2 b _0223CF30 _0223CF26: ldr r0, [sp, #0x18] mov r1, #0x6f mov r2, #0 bl FUN_020671BC _0223CF30: cmp r0, #0 bne _0223CF42 mov r1, #0x3b ldr r0, [sp, #0x28] lsl r1, r1, #4 bl FUN_0200A914 add r6, r0, #0 b _0223CF5C _0223CF42: cmp r0, #1 bne _0223CF52 ldr r0, [sp, #0x28] ldr r1, _0223D05C ; =0x000003B1 bl FUN_0200A914 add r6, r0, #0 b _0223CF5C _0223CF52: ldr r0, [sp, #0x28] ldr r1, _0223D060 ; =0x000003B2 bl FUN_0200A914 add r6, r0, #0 _0223CF5C: ldr r0, [sp, #0x18] bl FUN_020690E4 add r2, r0, #0 ldr r0, [sp, #0x24] mov r1, #0 bl FUN_0200ACF8 ldr r0, [sp, #0x18] mov r1, #0xa0 mov r2, #0 bl FUN_020671BC add r2, r0, #0 mov r0, #0 str r0, [sp] mov r1, #1 ldr r0, [sp, #0x24] mov r3, #3 str r1, [sp, #4] bl FUN_0200AD38 ldr r0, [sp, #0x24] ldr r1, [sp, #0x20] add r2, r6, #0 bl FUN_0200B7B8 add r0, r6, #0 bl FUN_02021A20 add r0, sp, #0x68 bl FUN_0201901C mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, [sp, #0x1c] add r1, sp, #0x68 mov r2, #0xc mov r3, #4 bl FUN_020190EC mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _0223D064 ; =0x00010200 ldr r2, [sp, #0x20] str r0, [sp, #8] add r0, sp, #0x68 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, sp, #0x68 mov r1, #1 mov r2, #5 bl FUN_02011898 mov r1, #1 add r2, r1, #0 add r3, sp, #0x5c bl FUN_0201D568 ldr r0, [r5, #0x50] str r0, [sp, #0x2c] add r0, sp, #0x68 str r0, [sp, #0x30] add r0, r4, #0 bl FUN_0200CA40 str r0, [sp, #0x34] ldr r1, _0223D040 ; =0x00004E2C add r0, r4, #0 bl FUN_0200C334 mov r1, #0 str r0, [sp, #0x38] ldr r0, [sp, #0x60] str r1, [sp, #0x3c] str r0, [sp, #0x40] mov r0, #0xb0 str r0, [sp, #0x44] mov r0, #8 str r0, [sp, #0x48] mov r0, #0x64 str r0, [sp, #0x50] mov r0, #1 str r0, [sp, #0x54] mov r0, #5 str r0, [sp, #0x58] add r0, sp, #0x2c str r1, [sp, #0x4c] bl FUN_020117E8 add r2, r5, #0 add r3, sp, #0x5c str r0, [r5, #0x14] ldmia r3!, {r0, r1} add r2, #0x18 stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #1 str r0, [r2] ldr r0, [r5, #0x14] bl FUN_02011AC0 add r0, sp, #0x68 bl FUN_02019178 add sp, #0x78 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223D03C: .word 0x00004E31 _0223D040: .word 0x00004E2C _0223D044: .word 0x00004E29 _0223D048: .word 0x0225DD7C _0223D04C: .word 0x00004E32 _0223D050: .word 0x00004E2D _0223D054: .word 0x00004E2A _0223D058: .word 0x0225DDB0 _0223D05C: .word 0x000003B1 _0223D060: .word 0x000003B2 _0223D064: .word 0x00010200 thumb_func_start MOD11_0223D068 MOD11_0223D068: ; 0x0223D068 push {r3, r4, r5, lr} add r5, r1, #0 bl MOD11_02230080 add r4, r0, #0 ldr r0, [r5, #0xc] bl FUN_0200C3DC ldr r0, [r5, #0x10] bl FUN_0200C3DC ldr r0, [r5, #0x14] bl FUN_02011870 add r0, r5, #0 add r0, #0x18 bl FUN_0201D5E8 ldr r1, _0223D0D4 ; =0x00004E31 add r0, r4, #0 bl FUN_0200C358 ldr r1, _0223D0D8 ; =0x00004E2C add r0, r4, #0 bl FUN_0200C368 ldr r1, _0223D0DC ; =0x00004E29 add r0, r4, #0 bl FUN_0200C378 ldr r1, _0223D0DC ; =0x00004E29 add r0, r4, #0 bl FUN_0200C388 ldr r1, _0223D0E0 ; =0x00004E32 add r0, r4, #0 bl FUN_0200C358 ldr r1, _0223D0E4 ; =0x00004E2D add r0, r4, #0 bl FUN_0200C368 ldr r1, _0223D0E8 ; =0x00004E2A add r0, r4, #0 bl FUN_0200C378 ldr r1, _0223D0E8 ; =0x00004E2A add r0, r4, #0 bl FUN_0200C388 ldr r0, [r5, #0x50] bl FUN_020117BC pop {r3, r4, r5, pc} .align 2, 0 _0223D0D4: .word 0x00004E31 _0223D0D8: .word 0x00004E2C _0223D0DC: .word 0x00004E29 _0223D0E0: .word 0x00004E32 _0223D0E4: .word 0x00004E2D _0223D0E8: .word 0x00004E2A thumb_func_start MOD11_0223D0EC MOD11_0223D0EC: ; 0x0223D0EC push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r1, r2, #0 add r5, r0, #0 str r2, [sp] bl MOD11_02230270 cmp r0, #0 bne _0223D1B8 add r0, r5, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _0223D13C add r0, r5, #0 mov r1, #3 bl MOD11_0223022C lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0 mov r1, #5 bl MOD11_0223022C lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r2, #0xc0 add r0, r1, #0 mul r0, r2 mul r2, r6 ldr r3, _0223D1BC ; =0x00002D74 add r0, r4, r0 add r2, r4, r2 ldrb r0, [r0, r3] ldrb r2, [r2, r3] cmp r0, r2 bls _0223D148 add r6, r1, #0 b _0223D148 _0223D13C: add r0, r5, #0 mov r1, #1 bl MOD11_0223022C lsl r0, r0, #0x18 lsr r6, r0, #0x18 _0223D148: ldr r1, [sp] add r0, r5, #0 add r2, r1, #0 add r3, r4, r2 ldr r2, _0223D1C0 ; =0x0000219C ldrb r2, [r3, r2] bl MOD11_02230014 add r7, r0, #0 ldr r0, [sp] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 add r0, r4, r2 ldr r2, _0223D1BC ; =0x00002D74 mul r1, r6 add r1, r4, r1 ldrb r0, [r0, r2] ldrb r1, [r1, r2] cmp r1, r0 bls _0223D1A4 sub r0, r1, r0 cmp r0, #0x1e blt _0223D18E add r0, r5, #0 bl MOD11_022302B0 add r2, r0, #0 lsl r2, r2, #0x10 add r0, r7, #0 mov r1, #8 lsr r2, r2, #0x10 bl FUN_020688E8 pop {r3, r4, r5, r6, r7, pc} _0223D18E: add r0, r5, #0 bl MOD11_022302B0 add r2, r0, #0 lsl r2, r2, #0x10 add r0, r7, #0 mov r1, #6 lsr r2, r2, #0x10 bl FUN_020688E8 pop {r3, r4, r5, r6, r7, pc} _0223D1A4: add r0, r5, #0 bl MOD11_022302B0 add r2, r0, #0 lsl r2, r2, #0x10 add r0, r7, #0 mov r1, #6 lsr r2, r2, #0x10 bl FUN_020688E8 _0223D1B8: pop {r3, r4, r5, r6, r7, pc} nop _0223D1BC: .word 0x00002D74 _0223D1C0: .word 0x0000219C thumb_func_start MOD11_0223D1C4 MOD11_0223D1C4: ; 0x0223D1C4 add r1, r0, r1 mov r0, #0x39 lsl r0, r0, #4 strb r2, [r1, r0] bx lr .align 2, 0 thumb_func_start MOD11_0223D1D0 MOD11_0223D1D0: ; 0x0223D1D0 lsl r1, r1, #1 add r1, r0, r1 mov r0, #0xe5 lsl r0, r0, #2 strh r2, [r1, r0] bx lr thumb_func_start MOD11_0223D1DC MOD11_0223D1DC: ; 0x0223D1DC push {r3, r4, r5, lr} ldr r1, _0223D22C ; =0x0000314C add r5, r0, #0 mov r0, #5 bl FUN_02016998 add r4, r0, #0 ldr r2, _0223D22C ; =0x0000314C mov r0, #0 add r1, r4, #0 bl MIi_CpuClearFast add r0, r4, #0 bl MOD11_02245494 add r0, r5, #0 add r1, r4, #0 bl MOD11_02245588 bl FUN_02033590 cmp r0, #0 bne _0223D216 mov r2, #0 add r0, r5, #0 add r1, r4, #0 add r3, r2, #0 bl FUN_021EFBF4 _0223D216: ldr r0, _0223D230 ; =0x000003DE add r0, r4, r0 bl FUN_0206AB04 mov r0, #5 bl FUN_0206EB50 ldr r1, _0223D234 ; =0x00002120 str r0, [r4, r1] add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _0223D22C: .word 0x0000314C _0223D230: .word 0x000003DE _0223D234: .word 0x00002120 thumb_func_start MOD11_0223D238 MOD11_0223D238: ; 0x0223D238 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, _0223D27C ; =0x0000311F add r5, r0, #0 ldrb r1, [r4, r1] cmp r1, #0 bne _0223D25E bl MOD11_0223145C cmp r0, #0 beq _0223D25E add r0, r5, #0 bl MOD11_0223145C mov r1, #0x40 tst r0, r1 bne _0223D25E mov r0, #0x29 str r0, [r4, #8] _0223D25E: ldr r2, [r4, #8] add r0, r5, #0 lsl r3, r2, #2 ldr r2, _0223D280 ; =0x0225E194 add r1, r4, #0 ldr r2, [r2, r3] blx r2 ldr r0, [r4, #8] cmp r0, #0x2b bne _0223D276 mov r0, #1 pop {r3, r4, r5, pc} _0223D276: mov r0, #0 pop {r3, r4, r5, pc} nop _0223D27C: .word 0x0000311F _0223D280: .word 0x0225E194 thumb_func_start MOD11_0223D284 MOD11_0223D284: ; 0x0223D284 push {r4, lr} add r4, r0, #0 ldr r0, _0223D298 ; =0x00002120 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 _0223D298: .word 0x00002120 thumb_func_start MOD11_0223D29C MOD11_0223D29C: ; 0x0223D29C push {r3, r4, r5, r6, r7, lr} sub sp, #8 ldr r6, [sp, #0x20] add r5, r0, #0 add r4, r1, #0 add r7, r2, #0 str r3, [sp, #4] str r6, [sp] bl MOD11_0224053C ldr r0, [sp, #0x20] ldr r3, [sp, #4] str r0, [sp] add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl MOD11_02240890 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223D2C4 MOD11_0223D2C4: ; 0x0223D2C4 push {r3, r4, r5, r6, r7, lr} str r0, [sp] add r5, r1, #0 bl MOD11_0222FF84 add r7, r0, #0 mov r4, #0 cmp r7, #0 ble _0223D2EC _0223D2D6: ldr r3, _0223D2FC ; =0x0000219C add r6, r5, r4 ldrb r3, [r6, r3] ldr r0, [sp] add r1, r5, #0 add r2, r4, #0 bl MOD11_02242B78 add r4, r4, #1 cmp r4, r7 blt _0223D2D6 _0223D2EC: ldr r0, _0223D300 ; =0x00002E4C ldr r1, [r5, r0] ldr r0, _0223D304 ; =0x00003122 strh r1, [r5, r0] mov r0, #1 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} nop _0223D2FC: .word 0x0000219C _0223D300: .word 0x00002E4C _0223D304: .word 0x00003122 thumb_func_start MOD11_0223D308 MOD11_0223D308: ; 0x0223D308 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #0 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #2 str r0, [r4, #0xc] pop {r4, pc} thumb_func_start MOD11_0223D320 MOD11_0223D320: ; 0x0223D320 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0224529C cmp r0, #0 beq _0223D342 add r0, r4, #0 mov r1, #1 mov r2, #0x29 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #3 str r0, [r4, #0xc] b _0223D346 _0223D342: mov r0, #3 str r0, [r4, #8] _0223D346: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224728C pop {r3, r4, r5, pc} thumb_func_start MOD11_0223D350 MOD11_0223D350: ; 0x0223D350 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_022476DC add r2, r0, #0 beq _0223D370 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _0223D370: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224728C mov r0, #4 str r0, [r4, #8] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223D380 MOD11_0223D380: ; 0x0223D380 push {r3, r4, r5, r6, r7, lr} str r0, [sp] add r4, r1, #0 bl MOD11_0222FF84 add r5, r0, #0 mov r3, #0 cmp r5, #0 ble _0223D3AA mov r7, #0xb7 lsl r7, r7, #6 add r6, r4, #0 add r2, r3, #0 add r0, r7, #4 _0223D39C: strb r2, [r4, r3] ldr r1, [r6, r7] add r3, r3, #1 str r1, [r6, r0] add r6, #0xc0 cmp r3, r5 blt _0223D39C _0223D3AA: ldr r0, [sp] mov r1, #0 bl MOD11_022312AC mov r0, #5 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0223D3B8 MOD11_0223D3B8: ; 0x0223D3B8 push {r3, r4, r5, r6, r7, lr} sub sp, #0xb8 add r7, r0, #0 add r6, r1, #0 bl MOD11_0222FF84 str r0, [sp, #0x64] add r0, r7, #0 bl MOD11_0222FF74 str r0, [sp, #0x24] mov r4, #0 ldr r0, [sp, #0x64] str r4, [sp, #0x60] cmp r0, #0 bgt _0223D3DA b _0223DB58 _0223D3DA: mov r0, #0x75 lsl r0, r0, #2 add r0, r6, r0 str r0, [sp, #0x50] ldr r0, _0223D710 ; =0x000021AC mov r1, #2 add r0, r6, r0 str r0, [sp, #0x40] mov r0, #0x23 lsl r0, r0, #8 add r0, r6, r0 str r0, [sp, #0x3c] ldr r0, [sp, #0x24] str r6, [sp, #0x54] and r0, r1 str r0, [sp, #0x38] ldr r0, [sp, #0x24] mov r1, #8 and r0, r1 str r0, [sp, #0x34] ldr r0, [sp, #0x24] lsl r1, r1, #6 and r0, r1 str r0, [sp, #0x30] ldr r0, [sp, #0x24] mov r1, #0x20 and r0, r1 str r0, [sp, #0x2c] ldr r0, [sp, #0x24] mov r1, #4 and r0, r1 str r0, [sp, #0x28] ldr r0, [sp, #0x24] mov r1, #0x80 and r0, r1 str r0, [sp, #0x20] ldr r0, [sp, #0x24] mov r1, #1 and r0, r1 str r6, [sp, #0x4c] str r6, [sp, #0x48] str r6, [sp, #0x44] str r0, [sp, #0x1c] _0223D430: ldrb r0, [r6, r4] add r5, r6, r4 cmp r0, #0x10 bhi _0223D50A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223D444: ; jump table .short _0223D466 - _0223D444 - 2 ; case 0 .short _0223D4DA - _0223D444 - 2 ; case 1 .short _0223D6EE - _0223D444 - 2 ; case 2 .short _0223D6FC - _0223D444 - 2 ; case 3 .short _0223D7DA - _0223D444 - 2 ; case 4 .short _0223D814 - _0223D444 - 2 ; case 5 .short _0223D848 - _0223D444 - 2 ; case 6 .short _0223D856 - _0223D444 - 2 ; case 7 .short _0223D884 - _0223D444 - 2 ; case 8 .short _0223D8FC - _0223D444 - 2 ; case 9 .short _0223D93C - _0223D444 - 2 ; case 10 .short _0223D9F8 - _0223D444 - 2 ; case 11 .short _0223DA46 - _0223D444 - 2 ; case 12 .short _0223DA94 - _0223D444 - 2 ; case 13 .short _0223DA9C - _0223D444 - 2 ; case 14 .short _0223DAB6 - _0223D444 - 2 ; case 15 .short _0223DB14 - _0223D444 - 2 ; case 16 _0223D466: ldr r0, [sp, #0x38] cmp r0, #0 beq _0223D486 ldr r0, [sp, #0x34] cmp r0, #0 bne _0223D486 cmp r4, #2 bne _0223D47C ldrb r0, [r6] cmp r0, #0xd bne _0223D50A _0223D47C: cmp r4, #3 bne _0223D486 ldrb r0, [r6, #1] cmp r0, #0xd bne _0223D50A _0223D486: add r0, r4, #0 bl FUN_0206A92C ldr r1, _0223D714 ; =0x00003108 ldrb r1, [r6, r1] tst r0, r1 beq _0223D4A2 mov r0, #0xc strb r0, [r5] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x27 str r2, [r0, r1] b _0223DB20 _0223D4A2: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD04 cmp r0, #0 bne _0223D4C8 ldr r0, [sp, #0x50] mov r2, #0xd ldr r1, [r0] mov r0, #2 orr r1, r0 ldr r0, [sp, #0x50] str r1, [r0] mov r0, #0xc strb r0, [r5] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] str r2, [r0, r1] b _0223DB20 _0223D4C8: ldr r3, _0223D71C ; =0x0000219C add r0, r7, #0 ldrb r3, [r5, r3] add r1, r6, #0 add r2, r4, #0 bl MOD11_02255188 mov r0, #1 strb r0, [r5] _0223D4DA: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223D50A mov r1, #0x23 ldr r0, [sp, #0x4c] lsl r1, r1, #8 ldrb r2, [r0, r1] ldr r1, _0223D720 ; =0x000021B4 ldr r0, [sp, #0x54] str r2, [r0, r1] ldr r0, [sp, #0x30] cmp r0, #0 beq _0223D52E add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #1 beq _0223D50C cmp r0, #4 beq _0223D51E _0223D50A: b _0223DB20 _0223D50C: mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x11 str r2, [r0, r1] b _0223DB20 _0223D51E: mov r0, #0x10 strb r0, [r5] mov r1, #0xc strb r1, [r5, #4] ldr r2, _0223D718 ; =0x000021A8 ldr r1, [sp, #0x54] str r0, [r1, r2] b _0223DB20 _0223D52E: ldr r0, [sp, #0x2c] cmp r0, #0 beq _0223D5B0 add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #5 bhi _0223D5DA add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223D54C: ; jump table .short _0223DB20 - _0223D54C - 2 ; case 0 .short _0223D558 - _0223D54C - 2 ; case 1 .short _0223D56A - _0223D54C - 2 ; case 2 .short _0223D57C - _0223D54C - 2 ; case 3 .short _0223D58E - _0223D54C - 2 ; case 4 .short _0223D59E - _0223D54C - 2 ; case 5 _0223D558: mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x11 str r2, [r0, r1] b _0223DB20 _0223D56A: mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x12 str r2, [r0, r1] b _0223DB20 _0223D57C: mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x13 str r2, [r0, r1] b _0223DB20 _0223D58E: mov r0, #0x10 strb r0, [r5] mov r1, #0xc strb r1, [r5, #4] ldr r2, _0223D718 ; =0x000021A8 ldr r1, [sp, #0x54] str r0, [r1, r2] b _0223DB20 _0223D59E: mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5] ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x14 str r2, [r0, r1] b _0223DB20 _0223D5B0: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #4 bgt _0223D5D6 cmp r0, #0 blt _0223D5DA add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223D5CC: ; jump table .short _0223DB20 - _0223D5CC - 2 ; case 0 .short _0223D5DC - _0223D5CC - 2 ; case 1 .short _0223D63C - _0223D5CC - 2 ; case 2 .short _0223D698 - _0223D5CC - 2 ; case 3 .short _0223D6A6 - _0223D5CC - 2 ; case 4 _0223D5D6: cmp r0, #0xff beq _0223D6B4 _0223D5DA: b _0223DB20 _0223D5DC: mov r0, #0 mvn r0, r0 str r0, [sp] add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 mov r3, #0 bl MOD11_02245D38 cmp r0, #0xf bne _0223D5FC mov r0, #0x10 strb r0, [r5] mov r0, #0xf strb r0, [r5, #4] b _0223D632 _0223D5FC: ldr r3, _0223D724 ; =0x00002DEC ldr r0, [sp, #0x48] ldrh r0, [r0, r3] cmp r0, #0 beq _0223D62E ldr r0, [sp, #0x48] add r1, r3, #2 ldrh r1, [r0, r1] ldr r2, _0223D728 ; =0x000030BC ldr r0, [sp, #0x44] strh r1, [r0, r2] ldr r0, [sp, #0x48] sub r2, #8 ldrh r1, [r0, r3] ldr r0, [sp, #0x44] strh r1, [r0, r2] ldr r1, _0223D72C ; =0x000021B0 ldr r0, [sp, #0x54] mov r2, #0 str r2, [r0, r1] mov r0, #0x10 strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] b _0223D632 _0223D62E: mov r0, #2 strb r0, [r5] _0223D632: ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0xd str r2, [r0, r1] b _0223DB20 _0223D63C: add r0, r7, #0 bl MOD11_0222FF74 mov r1, #0x84 tst r0, r1 beq _0223D68A ldr r1, _0223D730 ; =0x00000251 add r0, sp, #0x90 strh r1, [r0, #6] mov r1, #0 strb r1, [r0, #5] mov r0, sp str r0, [sp, #0x68] sub r0, #8 str r0, [sp, #0x68] add r3, r0, #0 mov r0, #4 add r2, sp, #0x94 str r0, [sp, #0x6c] _0223D662: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [sp, #0x6c] sub r0, r0, #1 str r0, [sp, #0x6c] bne _0223D662 ldr r0, [r2] add r1, r4, #0 str r0, [r3] ldr r0, [sp, #0x68] ldmia r0!, {r2, r3} str r0, [sp, #0x68] add r0, r7, #0 bl MOD11_02255FBC mov r0, #0xe strb r0, [r5] mov r0, #0 strb r0, [r5, #4] b _0223DB20 _0223D68A: ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0xe str r2, [r0, r1] mov r0, #6 strb r0, [r5] b _0223DB20 _0223D698: ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0xf str r2, [r0, r1] mov r0, #8 strb r0, [r5] b _0223DB20 _0223D6A6: ldr r1, _0223D718 ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x10 str r2, [r0, r1] mov r0, #0xa strb r0, [r5] b _0223DB20 _0223D6B4: ldr r0, [sp, #0x28] cmp r0, #0 beq _0223D6D4 add r0, r7, #0 add r1, r4, #0 bl MOD11_02256268 mov r0, #0 strb r0, [r5] add r0, r7, #0 add r1, r4, #0 bl MOD11_022302BC mov r1, #0 strb r1, [r6, r0] b _0223DB20 _0223D6D4: ldr r0, [sp, #0x38] cmp r0, #0 beq _0223D740 cmp r4, #2 bne _0223D740 add r0, r7, #0 add r1, r4, #0 bl MOD11_02256268 mov r0, #0 strb r0, [r6] strb r0, [r6, #2] b _0223DB20 _0223D6EE: add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02255544 mov r0, #3 strb r0, [r5] _0223D6FC: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223D734 mov r0, #0 strb r0, [r5] b _0223DB20 nop _0223D710: .word 0x000021AC _0223D714: .word 0x00003108 _0223D718: .word 0x000021A8 _0223D71C: .word 0x0000219C _0223D720: .word 0x000021B4 _0223D724: .word 0x00002DEC _0223D728: .word 0x000030BC _0223D72C: .word 0x000021B0 _0223D730: .word 0x00000251 _0223D734: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 bne _0223D742 _0223D740: b _0223DB20 _0223D742: mov r1, #0x23 ldr r0, [sp, #0x4c] lsl r1, r1, #8 ldrb r0, [r0, r1] sub r3, r0, #1 cmp r3, #4 bne _0223D75E ldr r1, _0223DA6C ; =0x000021A8 ldr r0, [sp, #0x54] mov r2, #0x10 str r2, [r0, r1] mov r0, #0xa strb r0, [r5] b _0223DB20 _0223D75E: add r0, sp, #0x94 str r0, [sp] add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02245F74 cmp r0, #0 bne _0223D7A8 mov r0, sp str r0, [sp, #0x70] sub r0, #8 str r0, [sp, #0x70] add r3, r0, #0 mov r0, #4 add r2, sp, #0x94 str r0, [sp, #0x74] _0223D780: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [sp, #0x74] sub r0, r0, #1 str r0, [sp, #0x74] bne _0223D780 ldr r0, [r2] add r1, r4, #0 str r0, [r3] ldr r0, [sp, #0x70] ldmia r0!, {r2, r3} str r0, [sp, #0x70] add r0, r7, #0 bl MOD11_02255FBC mov r0, #0xe strb r0, [r5] mov r0, #2 strb r0, [r5, #4] b _0223DB20 _0223D7A8: mov r3, #0x23 ldr r0, [sp, #0x4c] lsl r3, r3, #8 ldrb r2, [r0, r3] ldr r1, _0223DA70 ; =0x000021B0 ldr r0, [sp, #0x54] str r2, [r0, r1] ldr r0, [sp, #0x4c] ldr r2, _0223DA74 ; =0x000030BC ldrb r0, [r0, r3] sub r1, r0, #1 ldr r0, [sp, #0x44] strh r1, [r0, r2] ldrh r0, [r0, r2] sub r2, #8 lsl r1, r0, #1 ldr r0, [sp, #0x48] add r1, r0, r1 ldr r0, _0223DA78 ; =0x00002D4C ldrh r1, [r1, r0] ldr r0, [sp, #0x44] strh r1, [r0, r2] mov r0, #4 strb r0, [r5] b _0223DB20 _0223D7DA: add r0, sp, #0x90 str r0, [sp] ldr r1, _0223DA74 ; =0x000030BC ldr r0, [sp, #0x44] lsl r2, r4, #0x18 ldrh r0, [r0, r1] ldr r3, [sp, #0x24] add r1, r6, #0 str r0, [sp, #4] ldr r0, [sp, #0x40] lsr r2, r2, #0x18 str r0, [sp, #8] add r0, r7, #0 bl MOD11_0224235C cmp r0, #0 beq _0223D80E ldr r2, [sp, #0x90] add r0, r7, #0 add r1, r6, #0 add r3, r4, #0 bl MOD11_02255600 mov r0, #5 strb r0, [r5] b _0223DB20 _0223D80E: mov r0, #0xc strb r0, [r5] b _0223DB20 _0223D814: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223D826 mov r0, #2 strb r0, [r5] b _0223DB20 _0223D826: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223D91A mov r1, #0x23 ldr r0, [sp, #0x4c] lsl r1, r1, #8 ldrb r0, [r0, r1] ldr r1, _0223DA7C ; =0x000021AC sub r2, r0, #1 ldr r0, [sp, #0x54] str r2, [r0, r1] mov r0, #0xc strb r0, [r5] b _0223DB20 _0223D848: add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_0225573C mov r0, #7 strb r0, [r5] _0223D856: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223D868 mov r0, #0 strb r0, [r5] b _0223DB20 _0223D868: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223D91A ldr r0, [sp, #0x3c] ldr r1, _0223DA70 ; =0x000021B0 ldr r2, [r0] ldr r0, [sp, #0x54] str r2, [r0, r1] mov r0, #0xc strb r0, [r5] b _0223DB20 _0223D884: mov r0, #6 str r0, [sp, #0x58] add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02249E80 str r0, [sp, #0x5c] add r0, r7, #0 add r1, r4, #0 bl MOD11_02230260 cmp r0, #4 beq _0223D8AC add r0, r7, #0 add r1, r4, #0 bl MOD11_02230260 cmp r0, #5 bne _0223D8E4 _0223D8AC: ldr r0, [sp, #0x24] cmp r0, #3 beq _0223D8CA cmp r0, #7 beq _0223D8CA cmp r0, #0x83 beq _0223D8CA cmp r0, #0x13 bne _0223D8E4 add r0, r7, #0 add r1, r4, #0 bl MOD11_02230260 cmp r0, #4 bne _0223D8E4 _0223D8CA: add r0, r7, #0 add r1, r4, #0 bl MOD11_022302BC lsl r0, r0, #4 add r2, r6, r0 ldr r0, _0223DA6C ; =0x000021A8 ldr r1, [r2, r0] cmp r1, #0xf bne _0223D8E4 add r0, #8 ldr r0, [r2, r0] str r0, [sp, #0x58] _0223D8E4: ldr r0, [sp, #0x5c] add r1, r6, #0 str r0, [sp] ldr r0, [sp, #0x58] add r2, r4, #0 str r0, [sp, #4] add r0, r7, #0 mov r3, #0 bl MOD11_022558E0 mov r0, #9 strb r0, [r5] _0223D8FC: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223D90E mov r0, #0 strb r0, [r5] b _0223DB20 _0223D90E: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 bne _0223D91C _0223D91A: b _0223DB20 _0223D91C: mov r3, #0x23 ldr r0, [sp, #0x4c] lsl r3, r3, #8 ldrb r0, [r0, r3] ldr r2, _0223DA70 ; =0x000021B0 sub r1, r0, #1 ldr r0, [sp, #0x54] str r1, [r0, r2] ldr r0, [sp, #0x4c] sub r2, #0x10 ldrb r0, [r0, r3] sub r0, r0, #1 strb r0, [r5, r2] mov r0, #0xc strb r0, [r5] b _0223DB20 _0223D93C: ldr r0, [sp, #0x20] cmp r0, #0 beq _0223D95C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r3, _0223DA80 ; =0x000003BB add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl MOD11_02255980 mov r0, #0xb strb r0, [r5] b _0223DB20 _0223D95C: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0223D9AA ldr r0, [sp, #0x28] cmp r0, #0 bne _0223D9AA mov r1, #0 add r0, sp, #0x90 strb r1, [r0, #5] ldr r1, _0223DA84 ; =0x00000319 add r2, sp, #0x94 strh r1, [r0, #6] mov r0, sp str r0, [sp, #0x78] sub r0, #8 str r0, [sp, #0x78] add r3, r0, #0 mov r0, #4 str r0, [sp, #0x7c] _0223D982: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [sp, #0x7c] sub r0, r0, #1 str r0, [sp, #0x7c] bne _0223D982 ldr r0, [r2] add r1, r4, #0 str r0, [r3] ldr r0, [sp, #0x78] ldmia r0!, {r2, r3} str r0, [sp, #0x78] add r0, r7, #0 bl MOD11_02255FBC mov r0, #0xe strb r0, [r5] mov r0, #0 strb r0, [r5, #4] b _0223DB20 _0223D9AA: add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 add r3, sp, #0x94 bl MOD11_02246ED0 cmp r0, #0 beq _0223D9F2 mov r0, sp str r0, [sp, #0x80] sub r0, #8 str r0, [sp, #0x80] add r3, r0, #0 mov r0, #4 add r2, sp, #0x94 str r0, [sp, #0x84] _0223D9CA: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [sp, #0x84] sub r0, r0, #1 str r0, [sp, #0x84] bne _0223D9CA ldr r0, [r2] add r1, r4, #0 str r0, [r3] ldr r0, [sp, #0x80] ldmia r0!, {r2, r3} str r0, [sp, #0x80] add r0, r7, #0 bl MOD11_02255FBC mov r0, #0xe strb r0, [r5] mov r0, #0 strb r0, [r5, #4] b _0223DB20 _0223D9F2: mov r0, #0xb strb r0, [r5] b _0223DB20 _0223D9F8: ldr r0, [sp, #0x20] cmp r0, #0 beq _0223DA22 add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223DA26 add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0xff bne _0223DA1C mov r0, #0 strb r0, [r5] b _0223DA26 _0223DA1C: mov r0, #0xc strb r0, [r5] b _0223DA26 _0223DA22: mov r0, #0xc strb r0, [r5] _0223DA26: ldr r0, [sp, #0x38] cmp r0, #0 beq _0223DB20 ldr r0, [sp, #0x34] cmp r0, #0 bne _0223DB20 ldrb r0, [r5] cmp r0, #0xc bne _0223DB20 add r0, r7, #0 add r1, r4, #0 bl MOD11_022302BC mov r1, #0xc strb r1, [r6, r0] b _0223DB20 _0223DA46: add r0, r7, #0 add r1, r4, #0 bl MOD11_02256268 ldr r0, [sp, #0x24] cmp r0, #7 bne _0223DA88 add r0, r7, #0 add r1, r4, #0 bl MOD11_022302BC ldrb r0, [r6, r0] cmp r0, #0xd bne _0223DA90 add r0, r7, #0 add r1, r4, #0 bl MOD11_022564CC b _0223DA90 .align 2, 0 _0223DA6C: .word 0x000021A8 _0223DA70: .word 0x000021B0 _0223DA74: .word 0x000030BC _0223DA78: .word 0x00002D4C _0223DA7C: .word 0x000021AC _0223DA80: .word 0x000003BB _0223DA84: .word 0x00000319 _0223DA88: add r0, r7, #0 add r1, r4, #0 bl MOD11_022564CC _0223DA90: mov r0, #0xd strb r0, [r5] _0223DA94: ldr r0, [sp, #0x60] add r0, r0, #1 str r0, [sp, #0x60] b _0223DB20 _0223DA9C: add r0, r6, #0 add r1, r4, #0 bl MOD11_0224AD90 cmp r0, #0 beq _0223DB20 add r0, r6, #0 add r1, r4, #0 bl MOD11_02243400 ldrb r0, [r5, #4] strb r0, [r5] b _0223DB20 _0223DAB6: mov r1, #2 add r0, sp, #0x90 strb r1, [r0, #5] mov r1, #0x26 lsl r1, r1, #4 strh r1, [r0, #6] add r0, r6, #0 add r1, r4, #0 bl MOD11_0224682C str r0, [sp, #0x98] mov r0, sp str r0, [sp, #0x88] sub r0, #8 str r0, [sp, #0x88] add r3, r0, #0 mov r0, #4 add r2, sp, #0x94 mov ip, r0 _0223DADC: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} mov r0, ip sub r0, r0, #1 mov ip, r0 bne _0223DADC ldr r0, [r2] add r1, r4, #0 str r0, [r3] ldr r0, [sp, #0x88] ldmia r0!, {r2, r3} str r0, [sp, #0x88] add r0, r7, #0 bl MOD11_02255FBC ldr r0, [sp, #0x50] mov r1, #1 ldr r0, [r0] bic r0, r1 mov r1, #1 orr r1, r0 ldr r0, [sp, #0x50] str r1, [r0] mov r0, #0xe strb r0, [r5] mov r0, #0xc strb r0, [r5, #4] b _0223DB20 _0223DB14: add r0, r7, #0 add r1, r4, #0 bl MOD11_022563B4 ldrb r0, [r5, #4] strb r0, [r5] _0223DB20: ldr r0, [sp, #0x54] ldr r1, [sp, #0x4c] add r0, #0x10 str r0, [sp, #0x54] ldr r0, [sp, #0x50] add r4, r4, #1 add r0, #0x40 str r0, [sp, #0x50] mov r0, #1 lsl r0, r0, #8 add r1, r1, r0 str r1, [sp, #0x4c] ldr r1, [sp, #0x48] add r1, #0xc0 str r1, [sp, #0x48] ldr r1, [sp, #0x44] add r1, r1, #2 str r1, [sp, #0x44] ldr r1, [sp, #0x40] add r1, #0x10 str r1, [sp, #0x40] ldr r1, [sp, #0x3c] add r0, r1, r0 str r0, [sp, #0x3c] ldr r0, [sp, #0x64] cmp r4, r0 bge _0223DB58 b _0223D430 _0223DB58: ldr r1, [sp, #0x60] ldr r0, [sp, #0x64] cmp r1, r0 bne _0223DB96 mov r0, #6 str r0, [r6, #8] ldr r0, [sp, #0x64] mov r5, #0 cmp r0, #0 ble _0223DB96 str r6, [sp, #0x8c] _0223DB6E: ldr r1, _0223DB9C ; =0x000021A8 ldr r0, [sp, #0x8c] ldr r0, [r0, r1] cmp r0, #0xf bne _0223DB88 ldr r3, _0223DBA0 ; =0x000021A0 add r4, r6, r5 ldrb r3, [r4, r3] add r0, r7, #0 add r1, r6, #0 add r2, r5, #0 bl MOD11_0224B290 _0223DB88: ldr r0, [sp, #0x8c] add r5, r5, #1 add r0, #0x10 str r0, [sp, #0x8c] ldr r0, [sp, #0x64] cmp r5, r0 blt _0223DB6E _0223DB96: add sp, #0xb8 pop {r3, r4, r5, r6, r7, pc} nop _0223DB9C: .word 0x000021A8 _0223DBA0: .word 0x000021A0 thumb_func_start MOD11_0223DBA4 MOD11_0223DBA4: ; 0x0223DBA4 push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp, #4] add r5, r1, #0 bl MOD11_0222FF84 str r0, [sp, #0x14] ldr r0, [sp, #4] bl MOD11_0222FF74 mov r2, #0x22 lsl r2, r2, #4 mov r1, #0 tst r2, r0 beq _0223DBDA ldr r0, [sp, #0x14] add r4, r1, #0 cmp r0, #0 ble _0223DBD8 ldr r1, _0223DD14 ; =0x000021E8 _0223DBCC: add r0, r5, r4 strb r4, [r0, r1] ldr r0, [sp, #0x14] add r4, r4, #1 cmp r4, r0 blt _0223DBCC _0223DBD8: b _0223DD0C _0223DBDA: mov r2, #4 tst r0, r2 beq _0223DC02 ldr r0, [sp, #0x14] add r4, r1, #0 cmp r0, #0 ble _0223DC1A ldr r2, _0223DD18 ; =0x000021B4 add r3, r5, #0 _0223DBEC: ldr r0, [r3, r2] cmp r0, #4 bne _0223DBF6 mov r1, #5 b _0223DC1A _0223DBF6: ldr r0, [sp, #0x14] add r4, r4, #1 add r3, #0x10 cmp r4, r0 blt _0223DBEC b _0223DC1A _0223DC02: ldr r0, _0223DD18 ; =0x000021B4 ldr r0, [r5, r0] cmp r0, #4 bne _0223DC0E add r4, r1, #0 mov r1, #5 _0223DC0E: ldr r0, _0223DD1C ; =0x000021D4 ldr r0, [r5, r0] cmp r0, #4 bne _0223DC1A mov r4, #2 mov r1, #5 _0223DC1A: cmp r1, #5 bne _0223DC42 ldr r0, _0223DD14 ; =0x000021E8 ldr r2, [sp, #0x14] strb r4, [r5, r0] mov r1, #1 mov r0, #0 cmp r2, #0 ble _0223DD0C ldr r3, _0223DD14 ; =0x000021E8 _0223DC2E: cmp r0, r4 beq _0223DC38 add r2, r5, r1 strb r0, [r2, r3] add r1, r1, #1 _0223DC38: ldr r2, [sp, #0x14] add r0, r0, #1 cmp r0, r2 blt _0223DC2E b _0223DD0C _0223DC42: ldr r0, [sp, #0x14] mov r2, #0 cmp r0, #0 ble _0223DC6A ldr r4, _0223DD14 ; =0x000021E8 add r0, r5, #0 add r6, r4, #0 sub r6, #0x34 _0223DC52: ldr r3, [r0, r6] sub r3, r3, #2 cmp r3, #1 bhi _0223DC60 add r3, r5, r1 strb r2, [r3, r4] add r1, r1, #1 _0223DC60: ldr r3, [sp, #0x14] add r2, r2, #1 add r0, #0x10 cmp r2, r3 blt _0223DC52 _0223DC6A: ldr r0, [sp, #0x14] mov r2, #0 cmp r0, #0 ble _0223DC94 ldr r4, _0223DD14 ; =0x000021E8 add r0, r5, #0 add r6, r4, #0 sub r6, #0x34 _0223DC7A: ldr r3, [r0, r6] cmp r3, #2 beq _0223DC8A cmp r3, #3 beq _0223DC8A add r3, r5, r1 strb r2, [r3, r4] add r1, r1, #1 _0223DC8A: ldr r3, [sp, #0x14] add r2, r2, #1 add r0, #0x10 cmp r2, r3 blt _0223DC7A _0223DC94: mov r0, #0 str r0, [sp, #8] ldr r0, [sp, #0x14] sub r0, r0, #1 str r0, [sp, #0x18] cmp r0, #0 ble _0223DD0C _0223DCA2: ldr r0, [sp, #8] add r7, r0, #1 ldr r0, [sp, #0x14] cmp r7, r0 bge _0223DD00 ldr r0, [sp, #8] add r0, r5, r0 str r0, [sp, #0x10] _0223DCB2: ldr r1, [sp, #0x10] ldr r0, _0223DD14 ; =0x000021E8 ldrb r6, [r1, r0] add r1, r5, r7 ldrb r4, [r1, r0] lsl r0, r6, #4 str r1, [sp, #0xc] add r1, r5, r0 ldr r0, _0223DD18 ; =0x000021B4 ldr r0, [r1, r0] lsl r1, r4, #4 add r2, r5, r1 ldr r1, _0223DD18 ; =0x000021B4 ldr r1, [r2, r1] cmp r0, r1 bne _0223DCF8 cmp r0, #1 beq _0223DCDA mov r0, #1 b _0223DCDC _0223DCDA: mov r0, #0 _0223DCDC: str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_02244248 cmp r0, #0 beq _0223DCF8 ldr r1, [sp, #0x10] ldr r0, _0223DD14 ; =0x000021E8 strb r4, [r1, r0] ldr r1, [sp, #0xc] strb r6, [r1, r0] _0223DCF8: ldr r0, [sp, #0x14] add r7, r7, #1 cmp r7, r0 blt _0223DCB2 _0223DD00: ldr r0, [sp, #8] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [sp, #8] cmp r1, r0 blt _0223DCA2 _0223DD0C: mov r0, #7 str r0, [r5, #8] add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _0223DD14: .word 0x000021E8 _0223DD18: .word 0x000021B4 _0223DD1C: .word 0x000021D4 thumb_func_start MOD11_0223DD20 MOD11_0223DD20: ; 0x0223DD20 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 mov r1, #0 str r0, [sp] str r1, [sp, #4] bl MOD11_0222FF84 add r7, r0, #0 _0223DD32: ldr r0, [r4, #0x28] cmp r0, #3 bls _0223DD3A b _0223DE4A _0223DD3A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223DD46: ; jump table .short _0223DD4E - _0223DD46 - 2 ; case 0 .short _0223DDE8 - _0223DD46 - 2 ; case 1 .short _0223DE26 - _0223DD46 - 2 ; case 2 .short _0223DE42 - _0223DD46 - 2 ; case 3 _0223DD4E: ldr r0, [r4, #0x2c] cmp r0, r7 bge _0223DDDC add r6, r4, #0 add r6, #0x2c _0223DD58: add r1, r4, r0 ldr r0, _0223DE60 ; =0x000021E8 ldrb r5, [r1, r0] add r0, r5, #0 bl FUN_0206A92C ldr r1, _0223DE64 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 ldr r0, [r6] beq _0223DD74 add r0, r0, #1 str r0, [r6] b _0223DDD6 _0223DD74: add r0, r0, #1 str r0, [r6] mov r0, #0xc0 mul r0, r5 add r1, r4, r0 ldr r0, _0223DE68 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 bne _0223DDD6 add r0, r4, #0 add r1, r5, #0 bl MOD11_0224683C mov r1, #0x42 lsl r1, r1, #2 cmp r0, r1 bne _0223DDD6 add r0, r4, #0 add r1, r5, #0 bl MOD11_02247190 cmp r0, #0 bne _0223DDD6 lsl r0, r5, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _0223DDD6 ldr r0, [sp] bl MOD11_0225679C mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xe8 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #8 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _0223DDD6: ldr r0, [r4, #0x2c] cmp r0, r7 blt _0223DD58 _0223DDDC: mov r0, #0 str r0, [r4, #0x2c] ldr r0, [r4, #0x28] add r0, r0, #1 str r0, [r4, #0x28] b _0223DE4A _0223DDE8: mov r6, #0 cmp r7, #0 ble _0223DE1E add r5, r4, #0 _0223DDF0: ldr r0, _0223DE6C ; =0x00002DB0 ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0x16 tst r0, r1 beq _0223DE16 add r0, r4, #0 add r1, r6, #0 bl MOD11_0224683C cmp r0, #0x63 beq _0223DE16 ldr r0, _0223DE6C ; =0x00002DB0 ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0x16 and r1, r0 ldr r0, _0223DE6C ; =0x00002DB0 str r1, [r5, r0] _0223DE16: add r6, r6, #1 add r5, #0xc0 cmp r6, r7 blt _0223DDF0 _0223DE1E: ldr r0, [r4, #0x28] add r0, r0, #1 str r0, [r4, #0x28] b _0223DE4A _0223DE26: mov r6, #0 add r5, r4, #0 _0223DE2A: bl FUN_0201B9EC ldr r1, _0223DE70 ; =0x0000310C add r6, r6, #1 strh r0, [r5, r1] add r5, r5, #2 cmp r6, #4 blt _0223DE2A ldr r0, [r4, #0x28] add r0, r0, #1 str r0, [r4, #0x28] b _0223DE4A _0223DE42: mov r0, #0 str r0, [r4, #0x28] mov r0, #2 str r0, [sp, #4] _0223DE4A: ldr r0, [sp, #4] cmp r0, #0 bne _0223DE52 b _0223DD32 _0223DE52: cmp r0, #2 bne _0223DE5A mov r0, #8 str r0, [r4, #8] _0223DE5A: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0223DE60: .word 0x000021E8 _0223DE64: .word 0x00003108 _0223DE68: .word 0x00002DAC _0223DE6C: .word 0x00002DB0 _0223DE70: .word 0x0000310C thumb_func_start MOD11_0223DE74 MOD11_0223DE74: ; 0x0223DE74 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 bl MOD11_0222FF84 add r4, r0, #0 add r0, r6, #0 add r1, r5, #0 bl MOD11_0224728C add r0, r5, #0 add r0, #0xec ldr r0, [r0] cmp r0, r4 bne _0223DEA0 add r0, r5, #0 mov r1, #0 add r0, #0xec str r1, [r0] mov r0, #9 str r0, [r5, #8] pop {r4, r5, r6, pc} _0223DEA0: add r1, r5, r0 ldr r0, _0223DEB4 ; =0x000021E8 ldrb r1, [r1, r0] sub r0, #0x40 lsl r1, r1, #4 add r1, r5, r1 ldr r0, [r1, r0] str r0, [r5, #8] pop {r4, r5, r6, pc} nop _0223DEB4: .word 0x000021E8 thumb_func_start MOD11_0223DEB8 MOD11_0223DEB8: ; 0x0223DEB8 push {r4, r5, r6, r7, lr} sub sp, #0x3c str r0, [sp] add r4, r1, #0 mov r5, #0 bl MOD11_0222FF84 str r0, [sp, #4] _0223DEC8: ldr r1, [r4, #8] add r0, r4, #0 add r2, r1, #0 mov r3, #1 bl MOD11_0224246C cmp r0, #1 beq _0223DEF2 ldr r1, [r4, #8] add r0, r4, #0 add r2, r1, #0 bl MOD11_02242510 cmp r0, #1 beq _0223DEF2 ldr r0, [sp] add r1, r4, #0 bl MOD11_02241FD8 cmp r0, #1 bne _0223DEF4 _0223DEF2: b _0223E684 _0223DEF4: ldr r0, [r4, #0x10] cmp r0, #0xd bhi _0223DFCE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223DF06: ; jump table .short _0223DF22 - _0223DF06 - 2 ; case 0 .short _0223DFDC - _0223DF06 - 2 ; case 1 .short _0223E086 - _0223DF06 - 2 ; case 2 .short _0223E132 - _0223DF06 - 2 ; case 3 .short _0223E1E0 - _0223DF06 - 2 ; case 4 .short _0223E25C - _0223DF06 - 2 ; case 5 .short _0223E2D8 - _0223DF06 - 2 ; case 6 .short _0223E3A0 - _0223DF06 - 2 ; case 7 .short _0223E430 - _0223DF06 - 2 ; case 8 .short _0223E4C0 - _0223DF06 - 2 ; case 9 .short _0223E554 - _0223DF06 - 2 ; case 10 .short _0223E5EA - _0223DF06 - 2 ; case 11 .short _0223E62C - _0223DF06 - 2 ; case 12 .short _0223E666 - _0223DF06 - 2 ; case 13 _0223DF22: ldr r6, [r4, #0x14] cmp r6, #2 bge _0223DFCA mov r0, #0x71 lsl r0, r0, #2 add r0, r4, r0 str r0, [sp, #0x38] add r0, r4, #0 str r0, [sp, #8] add r0, #0x14 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0x1c] mov r0, #0x1c str r0, [sp, #0x18] _0223DF40: lsl r0, r6, #2 mov r1, #0x6f add r0, r4, r0 lsl r1, r1, #2 ldr r2, [r0, r1] mov r1, #1 tst r1, r2 beq _0223DFB6 ldr r1, [sp, #0x38] lsl r3, r6, #3 ldr r7, [r1, r3] ldr r2, [sp, #0x18] add r1, r7, #0 str r7, [sp, #0x2c] bic r1, r2 str r1, [sp, #0x2c] lsl r1, r7, #0x1b lsr r1, r1, #0x1d sub r1, r1, #1 lsl r1, r1, #0x1d lsr r2, r1, #0x1b ldr r1, [sp, #0x2c] orr r2, r1 ldr r1, [sp, #0x38] str r2, [r1, r3] ldr r1, [r1, r3] lsl r1, r1, #0x1b lsr r1, r1, #0x1d bne _0223DFB6 mov r1, #0x6f lsl r1, r1, #2 ldr r2, [r0, r1] ldr r1, [sp, #0x1c] bic r2, r1 mov r1, #0x6f lsl r1, r1, #2 str r2, [r0, r1] mov r1, #0x73 add r0, r1, #0 add r0, #0xb1 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x32 bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r6, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223DFB6: ldr r0, [sp, #8] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #8] cmp r5, #0 str r1, [r0] bne _0223DFCA ldr r6, [r4, #0x14] cmp r6, #2 blt _0223DF40 _0223DFCA: cmp r5, #0 beq _0223DFD0 _0223DFCE: b _0223E668 _0223DFD0: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223DFDC: ldr r6, [r4, #0x14] cmp r6, #2 bge _0223E076 mov r0, #0x71 lsl r0, r0, #2 add r7, r4, r0 add r0, r4, #0 str r0, [sp, #0xc] add r0, #0x14 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x20] _0223DFF4: lsl r0, r6, #2 add r3, r4, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r3, r0] mov r0, #2 tst r0, r1 beq _0223E062 lsl r2, r6, #3 ldr r1, [r7, r2] ldr r0, _0223E340 ; =0xFFFFFC7F and r0, r1 str r0, [sp, #0x30] lsl r0, r1, #0x16 lsr r0, r0, #0x1d sub r0, r0, #1 lsl r0, r0, #0x1d lsr r1, r0, #0x16 ldr r0, [sp, #0x30] orr r0, r1 str r0, [r7, r2] ldr r0, [r7, r2] lsl r0, r0, #0x16 lsr r0, r0, #0x1d bne _0223E062 mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r3, r0] ldr r1, [sp, #0x20] mov r2, #0x32 bic r0, r1 mov r1, #0x6f lsl r1, r1, #2 str r0, [r3, r1] mov r1, #0x71 add r0, r1, #0 add r0, #0xb3 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r6, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223E062: ldr r0, [sp, #0xc] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0xc] cmp r5, #0 str r1, [r0] bne _0223E076 ldr r6, [r4, #0x14] cmp r6, #2 blt _0223DFF4 _0223E076: cmp r5, #0 bne _0223E124 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E086: ldr r6, [r4, #0x14] cmp r6, #2 bge _0223E120 mov r0, #0x71 lsl r0, r0, #2 add r7, r4, r0 add r0, r4, #0 str r0, [sp, #0x10] add r0, #0x14 str r0, [sp, #0x10] mov r0, #0x40 str r0, [sp, #0x24] _0223E09E: lsl r0, r6, #2 add r3, r4, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r3, r0] mov r0, #0x40 tst r0, r1 beq _0223E10C lsl r2, r6, #3 ldr r1, [r7, r2] ldr r0, _0223E344 ; =0xFFFF8FFF and r0, r1 str r0, [sp, #0x34] lsl r0, r1, #0x11 lsr r0, r0, #0x1d sub r0, r0, #1 lsl r0, r0, #0x1d lsr r1, r0, #0x11 ldr r0, [sp, #0x34] orr r0, r1 str r0, [r7, r2] ldr r0, [r7, r2] lsl r0, r0, #0x11 lsr r0, r0, #0x1d bne _0223E10C mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r3, r0] ldr r1, [sp, #0x24] mov r2, #0x32 bic r0, r1 mov r1, #0x6f lsl r1, r1, #2 str r0, [r3, r1] mov r1, #0x36 add r0, r1, #0 add r0, #0xee str r1, [r4, r0] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r6, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223E10C: ldr r0, [sp, #0x10] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x10] cmp r5, #0 str r1, [r0] bne _0223E120 ldr r6, [r4, #0x14] cmp r6, #2 blt _0223E09E _0223E120: cmp r5, #0 beq _0223E126 _0223E124: b _0223E668 _0223E126: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E132: ldr r7, [r4, #0x14] cmp r7, #2 bge _0223E1D0 mov r0, #0x71 lsl r0, r0, #2 add r6, r4, r0 add r0, r4, #0 str r0, [sp, #0x14] add r0, #0x14 str r0, [sp, #0x14] mov r0, #8 str r0, [sp, #0x28] _0223E14A: lsl r0, r7, #2 add r3, r4, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r3, r0] mov r0, #8 tst r0, r1 beq _0223E1BC lsl r0, r7, #3 ldr r2, [r6, r0] ldr r1, _0223E348 ; =0xFFF1FFFF and r1, r2 mov ip, r1 lsl r1, r2, #0xc lsr r1, r1, #0x1d sub r1, r1, #1 lsl r1, r1, #0x1d lsr r2, r1, #0xc mov r1, ip orr r1, r2 str r1, [r6, r0] ldr r1, [r6, r0] lsl r1, r1, #0xc lsr r1, r1, #0x1d bne _0223E1BC mov r1, #0x6f lsl r1, r1, #2 ldr r1, [r3, r1] ldr r2, [sp, #0x28] bic r1, r2 mov r2, #0x6f lsl r2, r2, #2 str r1, [r3, r2] ldr r0, [r6, r0] lsl r0, r0, #0xf lsr r1, r0, #0x1e add r0, r2, #0 sub r0, #0xa4 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x6e bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r7, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223E1BC: ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] cmp r5, #0 str r1, [r0] bne _0223E1D0 ldr r7, [r4, #0x14] cmp r7, #2 blt _0223E14A _0223E1D0: cmp r5, #0 bne _0223E24E ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E1E0: ldr r6, [r4, #0x14] cmp r6, #2 bge _0223E24A add r7, r4, #0 add r7, #0x14 _0223E1EA: lsl r0, r6, #2 mov r1, #0x6f add r0, r4, r0 lsl r1, r1, #2 ldr r2, [r0, r1] mov r1, #3 lsl r1, r1, #8 tst r1, r2 beq _0223E23A mov r1, #0x6f lsl r1, r1, #2 ldr r2, [r0, r1] sub r1, #0xbc sub r2, r2, r1 mov r1, #0x6f lsl r1, r1, #2 str r2, [r0, r1] ldr r1, [r0, r1] mov r0, #3 lsl r0, r0, #8 tst r0, r1 bne _0223E23A add r0, r4, #0 mov r1, #1 mov r2, #0xe9 bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r6, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223E23A: ldr r0, [r7] add r0, r0, #1 str r0, [r7] cmp r5, #0 bne _0223E24A ldr r6, [r4, #0x14] cmp r6, #2 blt _0223E1EA _0223E24A: cmp r5, #0 beq _0223E250 _0223E24E: b _0223E668 _0223E250: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E25C: ldr r6, [r4, #0x14] cmp r6, #2 bge _0223E2C8 add r7, r4, #0 add r7, #0x14 _0223E266: lsl r0, r6, #2 mov r1, #0x6f add r0, r4, r0 lsl r1, r1, #2 ldr r2, [r0, r1] mov r1, #7 lsl r1, r1, #0xc tst r1, r2 beq _0223E2B8 mov r1, #0x6f lsl r1, r1, #2 ldr r2, [r0, r1] mov r1, #1 lsl r1, r1, #0xc sub r2, r2, r1 mov r1, #0x6f lsl r1, r1, #2 str r2, [r0, r1] ldr r1, [r0, r1] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 bne _0223E2B8 add r0, r4, #0 mov r1, #1 mov r2, #0xfa bl MOD11_022431DC ldr r0, [r4, #8] add r1, r4, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r0, [sp] add r2, r6, #0 bl MOD11_0224C150 mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] mov r5, #1 _0223E2B8: ldr r0, [r7] add r0, r0, #1 str r0, [r7] cmp r5, #0 bne _0223E2C8 ldr r6, [r4, #0x14] cmp r6, #2 blt _0223E266 _0223E2C8: cmp r5, #0 bne _0223E392 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E2D8: ldr r0, [r4, #0x14] ldr r1, [sp, #4] cmp r0, r1 bge _0223E38E add r6, r4, #0 mov r7, #2 add r6, #0x14 _0223E2E6: add r1, r4, r0 ldr r0, _0223E34C ; =0x000021EC ldrb r2, [r1, r0] mov r0, #0x63 lsl r0, r0, #2 add r1, r4, r2 ldrb r0, [r1, r0] cmp r0, #0 beq _0223E37C mov r0, #0x63 lsl r0, r0, #2 ldrb r0, [r1, r0] sub r3, r0, #1 mov r0, #0x63 lsl r0, r0, #2 strb r3, [r1, r0] ldrb r0, [r1, r0] cmp r0, #0 bne _0223E37C mov r0, #0xc0 mul r0, r2 ldr r3, _0223E350 ; =0x00002D8C add r0, r4, r0 ldr r3, [r0, r3] cmp r3, #0 beq _0223E37C mov r3, #0x46 lsl r3, r3, #2 str r2, [r4, r3] add r3, r4, #0 add r3, #0xf5 strb r7, [r3] add r5, r4, #0 ldr r3, _0223E354 ; =0x00000215 add r5, #0xf6 strh r3, [r5] sub r3, #0x5d ldrb r1, [r1, r3] lsl r1, r1, #8 orr r2, r1 add r1, r4, #0 add r1, #0xf8 str r2, [r1] ldr r1, _0223E358 ; =0x00002D90 b _0223E35C .align 2, 0 _0223E340: .word 0xFFFFFC7F _0223E344: .word 0xFFFF8FFF _0223E348: .word 0xFFF1FFFF _0223E34C: .word 0x000021EC _0223E350: .word 0x00002D8C _0223E354: .word 0x00000215 _0223E358: .word 0x00002D90 _0223E35C: ldr r0, [r0, r1] add r1, r7, #0 bl MOD11_022476C0 ldr r1, _0223E688 ; =0x0000215C mov r2, #0x88 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] mov r5, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E37C: ldr r0, [r6] add r0, r0, #1 str r0, [r6] cmp r5, #0 bne _0223E38E ldr r0, [r4, #0x14] ldr r1, [sp, #4] cmp r0, r1 blt _0223E2E6 _0223E38E: cmp r5, #0 beq _0223E394 _0223E392: b _0223E668 _0223E394: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] b _0223E668 _0223E3A0: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r2, #3 tst r2, r1 beq _0223E428 mov r2, #2 tst r1, r2 beq _0223E3D6 add r0, r4, #0 ldr r1, _0223E68C ; =0x00000321 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E41E _0223E3D6: add r1, r0, #4 ldr r1, [r4, r1] sub r2, r1, #1 add r1, r0, #4 str r2, [r4, r1] add r0, r0, #4 ldr r0, [r4, r0] cmp r0, #0 bne _0223E3FC add r0, r4, #0 mov r1, #1 mov r2, #0xea bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E41E _0223E3FC: add r0, r4, #0 ldr r1, _0223E68C ; =0x00000321 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E41E: mov r0, #0x4e mov r1, #0x13 lsl r0, r0, #2 str r1, [r4, r0] mov r5, #1 _0223E428: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E430: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r2, #0xc tst r2, r1 beq _0223E4B8 mov r2, #8 tst r1, r2 beq _0223E466 add r0, r4, #0 ldr r1, _0223E690 ; =0x00000325 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E4AE _0223E466: add r1, r0, #4 ldr r1, [r4, r1] sub r2, r1, #1 add r1, r0, #4 str r2, [r4, r1] add r0, r0, #4 ldr r0, [r4, r0] cmp r0, #0 bne _0223E48C add r0, r4, #0 mov r1, #1 mov r2, #0xeb bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E4AE _0223E48C: add r0, r4, #0 ldr r1, _0223E690 ; =0x00000325 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E4AE: mov r0, #0x4e mov r1, #0x15 lsl r0, r0, #2 str r1, [r4, r0] mov r5, #1 _0223E4B8: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E4C0: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r2, #0x30 tst r2, r1 beq _0223E54C mov r2, #0x20 tst r1, r2 beq _0223E4F8 mov r1, #0xca add r0, r4, #0 lsl r1, r1, #2 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E542 _0223E4F8: add r1, r0, #4 ldr r1, [r4, r1] sub r2, r1, #1 add r1, r0, #4 str r2, [r4, r1] add r0, r0, #4 ldr r0, [r4, r0] cmp r0, #0 bne _0223E51E add r0, r4, #0 mov r1, #1 mov r2, #0xec bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E542 _0223E51E: mov r1, #0xca add r0, r4, #0 lsl r1, r1, #2 add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E542: mov r0, #0x4e mov r1, #0x16 lsl r0, r0, #2 str r1, [r4, r0] mov r5, #1 _0223E54C: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E554: mov r0, #6 lsl r0, r0, #6 ldr r2, [r4, r0] mov r1, #0xc0 add r0, r2, #0 tst r0, r1 beq _0223E5E2 mov r0, #0x80 tst r0, r2 beq _0223E58C add r0, r4, #0 ldr r1, _0223E694 ; =0x0000032B add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E5D8 _0223E58C: add r0, r1, #0 add r0, #0xc4 ldr r0, [r4, r0] sub r2, r0, #1 add r0, r1, #0 add r0, #0xc4 add r1, #0xc4 str r2, [r4, r0] ldr r0, [r4, r1] cmp r0, #0 bne _0223E5B6 add r0, r4, #0 mov r1, #1 mov r2, #0xed bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223E5D8 _0223E5B6: add r0, r4, #0 ldr r1, _0223E694 ; =0x0000032B add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E5D8: mov r0, #0x4e mov r1, #0x14 lsl r0, r0, #2 str r1, [r4, r0] mov r5, #1 _0223E5E2: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E5EA: mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #2 lsl r0, r0, #0xe tst r0, r1 beq _0223E624 add r0, r4, #0 ldr r1, _0223E698 ; =0x0000032D add r0, #0xf6 strh r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf5 strb r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x68 bl MOD11_022431DC ldr r0, [r4, #8] mov r1, #0x12 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x4e lsl r0, r0, #2 str r1, [r4, r0] mov r5, #1 _0223E624: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E62C: mov r1, #6 lsl r1, r1, #6 ldr r3, [r4, r1] mov r2, #7 lsl r2, r2, #0xc add r0, r3, #0 tst r0, r2 beq _0223E65E mov r0, #1 lsl r0, r0, #0xc sub r0, r3, r0 str r0, [r4, r1] ldr r0, [r4, r1] tst r0, r2 bne _0223E65E add r0, r4, #0 mov r1, #1 mov r2, #0xee bl MOD11_022431DC ldr r0, [r4, #8] mov r5, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223E65E: ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] b _0223E668 _0223E666: mov r5, #2 _0223E668: cmp r5, #0 bne _0223E66E b _0223DEC8 _0223E66E: cmp r5, #1 bne _0223E678 ldr r0, [sp] bl MOD11_0225679C _0223E678: cmp r5, #2 bne _0223E684 mov r0, #0 str r0, [r4, #0x10] mov r0, #0xa str r0, [r4, #8] _0223E684: add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 _0223E688: .word 0x0000215C _0223E68C: .word 0x00000321 _0223E690: .word 0x00000325 _0223E694: .word 0x0000032B _0223E698: .word 0x0000032D thumb_func_start MOD11_0223E69C MOD11_0223E69C: ; 0x0223E69C push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r1, #0 mov r1, #0 str r1, [sp, #0x10] str r0, [sp, #4] bl MOD11_0222FF84 ldr r1, [r4, #8] str r0, [sp, #0xc] add r0, r4, #0 add r2, r1, #0 mov r3, #1 bl MOD11_0224246C cmp r0, #1 beq _0223E6D8 ldr r1, [r4, #8] add r0, r4, #0 add r2, r1, #0 bl MOD11_02242510 cmp r0, #1 beq _0223E6D8 ldr r0, [sp, #4] add r1, r4, #0 bl MOD11_02241FD8 cmp r0, #1 bne _0223E6DC _0223E6D8: bl _0223F0B2 _0223E6DC: ldr r1, [r4, #0x1c] ldr r0, [sp, #0xc] cmp r1, r0 blt _0223E6E8 bl _0223F0A8 _0223E6E8: ldr r0, _0223EA14 ; =0x000021EC add r1, r4, r1 ldrb r5, [r1, r0] add r0, r5, #0 bl FUN_0206A92C ldr r1, _0223EA18 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 beq _0223E706 ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] bl _0223F09C _0223E706: ldr r0, [r4, #0x18] cmp r0, #0x1a bls _0223E710 bl _0223F08C _0223E710: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223E71C: ; jump table .short _0223E752 - _0223E71C - 2 ; case 0 .short _0223E7BA - _0223E71C - 2 ; case 1 .short _0223E83C - _0223E71C - 2 ; case 2 .short _0223E856 - _0223E71C - 2 ; case 3 .short _0223E872 - _0223E71C - 2 ; case 4 .short _0223E88C - _0223E71C - 2 ; case 5 .short _0223E8F6 - _0223E71C - 2 ; case 6 .short _0223E948 - _0223E71C - 2 ; case 7 .short _0223E9C8 - _0223E71C - 2 ; case 8 .short _0223EA04 - _0223E71C - 2 ; case 9 .short _0223EA72 - _0223E71C - 2 ; case 10 .short _0223EAB0 - _0223E71C - 2 ; case 11 .short _0223EB2A - _0223E71C - 2 ; case 12 .short _0223EBAE - _0223E71C - 2 ; case 13 .short _0223ECA6 - _0223E71C - 2 ; case 14 .short _0223ED0E - _0223E71C - 2 ; case 15 .short _0223ED90 - _0223E71C - 2 ; case 16 .short _0223EE56 - _0223E71C - 2 ; case 17 .short _0223EE74 - _0223E71C - 2 ; case 18 .short _0223EEBA - _0223E71C - 2 ; case 19 .short _0223EF06 - _0223E71C - 2 ; case 20 .short _0223EF50 - _0223E71C - 2 ; case 21 .short _0223EF9A - _0223E71C - 2 ; case 22 .short _0223EFE4 - _0223E71C - 2 ; case 23 .short _0223F034 - _0223E71C - 2 ; case 24 .short _0223F068 - _0223E71C - 2 ; case 25 .short _0223F082 - _0223E71C - 2 ; case 26 _0223E752: mov r6, #0xc0 add r0, r5, #0 mul r0, r6 add r3, r4, r0 mov r0, #0xb7 lsl r0, r0, #6 mov r1, #1 ldr r2, [r3, r0] lsl r1, r1, #0xa tst r1, r2 beq _0223E7B0 add r1, r0, #0 sub r1, #0x34 ldr r2, [r3, r1] add r1, r0, #0 sub r1, #0x30 ldr r1, [r3, r1] cmp r2, r1 beq _0223E7B0 cmp r2, #0 beq _0223E7B0 add r0, #0xc ldr r0, [r3, r0] lsl r0, r0, #0xd lsr r0, r0, #0x1d beq _0223E796 add r6, #0x58 add r0, r4, #0 mov r1, #1 mov r2, #0xef str r5, [r4, r6] bl MOD11_022431DC b _0223E7A4 _0223E796: add r6, #0x58 add r0, r4, #0 mov r1, #1 mov r2, #0x89 str r5, [r4, r6] bl MOD11_022431DC _0223E7A4: ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E7B0: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] bl _0223F08C _0223E7BA: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r6, r4, r1 mov r1, #0xb7 lsl r1, r1, #6 mov r2, #1 ldr r3, [r6, r1] lsl r2, r2, #0x18 tst r2, r3 beq _0223E832 add r2, r1, #0 sub r2, #0x34 ldr r3, [r6, r2] add r2, r1, #0 sub r2, #0x30 ldr r2, [r6, r2] cmp r3, r2 beq _0223E832 cmp r3, #0 beq _0223E832 add r2, r1, #0 add r2, #0xc ldr r2, [r6, r2] lsl r2, r2, #0xd lsr r2, r2, #0x1d beq _0223E800 add r0, #0x58 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xef bl MOD11_022431DC b _0223E826 _0223E800: add r2, r0, #0 add r2, #0x58 str r5, [r4, r2] add r2, r0, #0 add r2, #0xc8 add r0, #0x64 sub r1, #0x30 str r2, [r4, r0] ldr r0, [r6, r1] mov r1, #0x10 bl MOD11_022476C0 ldr r1, _0223EA1C ; =0x0000215C mov r2, #0xa9 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC _0223E826: ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E832: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] bl _0223F08C _0223E83C: add r0, r4, #0 add r1, r5, #0 bl MOD11_022475B8 cmp r0, #1 bne _0223E84C mov r0, #1 str r0, [sp, #0x10] _0223E84C: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] bl _0223F08C _0223E856: ldr r0, [sp, #4] add r1, r4, #0 add r2, r5, #0 bl MOD11_02248C0C cmp r0, #1 bne _0223E868 mov r0, #1 str r0, [sp, #0x10] _0223E868: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] bl _0223F08C _0223E872: ldr r0, [sp, #4] add r1, r4, #0 add r2, r5, #0 bl MOD11_022492A4 cmp r0, #1 bne _0223E884 mov r0, #1 str r0, [sp, #0x10] _0223E884: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223E88C: mov r3, #0xc0 add r0, r5, #0 mul r0, r3 mov r2, #0xb7 add r6, r4, r0 lsl r2, r2, #6 ldr r0, [r6, r2] mov r1, #4 tst r1, r0 beq _0223E8EE mov r1, #3 and r0, r1 add r1, r0, #0 mul r1, r3 add r0, r4, r1 sub r2, #0x34 ldr r0, [r0, r2] cmp r0, #0 beq _0223E8EE add r0, r4, #0 add r1, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _0223E8EE ldr r0, _0223EA20 ; =0x00002D8C ldr r1, [r6, r0] cmp r1, #0 beq _0223E8EE add r0, #0x34 ldr r1, [r6, r0] mov r0, #3 and r1, r0 mov r0, #0x47 lsl r0, r0, #2 str r1, [r4, r0] add r0, r0, #4 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x45 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E8EE: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223E8F6: mov r2, #0xc0 add r0, r5, #0 mul r0, r2 ldr r3, _0223EA24 ; =0x00002DAC add r0, r4, r0 ldr r1, [r0, r3] mov r6, #8 tst r1, r6 beq _0223E940 add r1, r3, #0 sub r1, #0x20 ldr r1, [r0, r1] cmp r1, #0 beq _0223E940 add r2, #0x58 str r5, [r4, r2] sub r3, #0x1c ldr r1, [r0, r3] add r0, r6, #0 sub r0, #9 mul r0, r1 add r1, r6, #0 bl MOD11_022476C0 ldr r1, _0223EA1C ; =0x0000215C mov r2, #0x17 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E940: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223E948: mov r0, #0xc0 mul r0, r5 ldr r1, _0223EA24 ; =0x00002DAC add r6, r4, r0 ldr r0, [r6, r1] mov r2, #0x80 tst r0, r2 beq _0223E9C0 add r0, r1, #0 sub r0, #0x20 ldr r0, [r6, r0] cmp r0, #0 beq _0223E9C0 add r2, #0x98 str r5, [r4, r2] sub r1, #0x1c ldr r0, [r6, r1] mov r1, #0x10 bl MOD11_022476C0 ldr r1, _0223EA1C ; =0x0000215C str r0, [r4, r1] ldr r1, _0223EA24 ; =0x00002DAC mov r0, #0xf ldr r2, [r6, r1] lsl r0, r0, #8 add r3, r2, #0 and r3, r0 cmp r3, r0 beq _0223E98C mov r0, #1 lsl r0, r0, #8 add r0, r2, r0 str r0, [r6, r1] _0223E98C: ldr r2, _0223EA24 ; =0x00002DAC ldr r0, _0223EA1C ; =0x0000215C ldr r3, [r6, r2] mov r2, #0xf lsl r2, r2, #8 and r2, r3 ldr r1, [r4, r0] lsr r2, r2, #8 mul r2, r1 str r2, [r4, r0] mov r1, #0 ldr r2, [r4, r0] mvn r1, r1 mul r1, r2 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x17 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E9C0: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223E9C8: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r6, r4, r1 ldr r1, _0223EA24 ; =0x00002DAC mov r2, #0x10 ldr r3, [r6, r1] tst r2, r3 beq _0223E9FC sub r1, #0x20 ldr r1, [r6, r1] cmp r1, #0 beq _0223E9FC add r0, #0x58 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x1a bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223E9FC: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EA04: mov r6, #0xc0 add r0, r5, #0 mul r0, r6 add r3, r4, r0 ldr r7, _0223EA28 ; =0x00002DB0 ldr r0, _0223EA18 ; =0x00003108 b _0223EA2C nop _0223EA14: .word 0x000021EC _0223EA18: .word 0x00003108 _0223EA1C: .word 0x0000215C _0223EA20: .word 0x00002D8C _0223EA24: .word 0x00002DAC _0223EA28: .word 0x00002DB0 _0223EA2C: ldr r2, [r3, r7] lsl r0, r0, #0x18 tst r0, r2 beq _0223EA6A add r0, r7, #0 sub r0, #0x24 ldr r0, [r3, r0] cmp r0, #0 beq _0223EA6A sub r0, r7, #4 ldr r1, [r3, r0] mov r0, #7 tst r0, r1 beq _0223EA64 add r6, #0x58 str r5, [r4, r6] add r0, r4, #0 mov r1, #1 mov r2, #0x5e bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] b _0223EA6A _0223EA64: ldr r0, _0223ED9C ; =0xF7FFFFFF and r0, r2 str r0, [r3, r7] _0223EA6A: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EA72: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r6, r4, r1 ldr r1, _0223EDA0 ; =0x00002DB0 mov r2, #1 ldr r3, [r6, r1] lsl r2, r2, #0x1c tst r2, r3 beq _0223EAA8 sub r1, #0x24 ldr r1, [r6, r1] cmp r1, #0 beq _0223EAA8 add r0, #0x58 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x62 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EAA8: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EAB0: mov r1, #0xc0 add r0, r5, #0 mul r0, r1 ldr r2, _0223EDA0 ; =0x00002DB0 add r6, r4, r0 ldr r3, [r6, r2] mov r7, #0xe lsl r7, r7, #0xc add r0, r3, #0 tst r0, r7 beq _0223EB22 add r0, r2, #0 sub r0, #0x24 ldr r0, [r6, r0] cmp r0, #0 beq _0223EB22 mov r0, #2 lsl r0, r0, #0xc sub r0, r3, r0 str r0, [r6, r2] ldr r0, [r6, r2] tst r0, r7 beq _0223EAFE sub r2, #0x20 ldr r2, [r6, r2] sub r1, #0xc1 add r0, r2, #0 mul r0, r1 mov r1, #0x10 bl MOD11_022476C0 ldr r1, _0223EDA4 ; =0x0000215C mov r2, #0x3b str r0, [r4, r1] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC b _0223EB08 _0223EAFE: add r0, r4, #0 mov r1, #1 mov r2, #0x3c bl MOD11_022431DC _0223EB08: ldr r0, _0223EDA8 ; =0x00002DEA ldrh r1, [r6, r0] mov r0, #0x49 lsl r0, r0, #2 str r1, [r4, r0] sub r0, #0xc str r5, [r4, r0] ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EB22: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EB2A: mov r0, #0x7b str r0, [sp] ldr r0, [sp, #4] add r1, r4, #0 mov r2, #4 add r3, r5, #0 bl MOD11_02246870 mov r1, #0x4e lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0xc0 mul r0, r5 add r6, r4, r0 ldr r0, _0223EDAC ; =0x00002DAC ldr r1, [r6, r0] mov r0, #7 tst r0, r1 beq _0223EBA6 add r0, r4, #0 add r1, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _0223EBA6 ldr r1, _0223EDB0 ; =0x00002D8C ldr r0, [r6, r1] cmp r0, #0 beq _0223EBA6 mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _0223EBA6 add r0, r1, #4 ldr r1, [r6, r0] mov r0, #0 mvn r0, r0 mul r0, r1 mov r1, #8 bl MOD11_022476C0 ldr r1, _0223EDA4 ; =0x0000215C ldr r2, _0223EDB4 ; =0x00000107 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, _0223EDB8 ; =0x0000213C mov r1, #0x40 ldr r2, [r4, r0] orr r2, r1 str r2, [r4, r0] add r1, #0xd8 str r5, [r4, r1] ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EBA6: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EBAE: mov r0, #0xc0 mul r0, r5 add r7, r4, r0 ldr r0, _0223EDA0 ; =0x00002DB0 ldr r1, [r7, r0] mov r0, #0x70 tst r0, r1 beq _0223EC96 ldr r0, [sp, #0xc] mov r6, #0 cmp r0, #0 ble _0223EC08 _0223EBC6: mov r0, #0xc0 mul r0, r6 add r1, r4, r0 ldr r0, _0223EDAC ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0223EBFC add r0, r4, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x2b beq _0223EBFC mov r0, #0x46 lsl r0, r0, #2 str r6, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x13 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223EC08 _0223EBFC: add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp, #0xc] cmp r6, r0 blt _0223EBC6 _0223EC08: ldr r0, [sp, #0xc] cmp r6, r0 beq _0223EC14 mov r0, #2 str r0, [sp, #0x10] b _0223F08C _0223EC14: ldr r0, _0223EDA0 ; =0x00002DB0 ldr r1, [r7, r0] sub r1, #0x10 str r1, [r7, r0] add r0, r4, #0 add r1, r5, #0 bl MOD11_02246764 cmp r0, #0 ldr r2, _0223EDA0 ; =0x00002DB0 beq _0223EC4E ldr r1, [r7, r2] mov r0, #0x70 bic r1, r0 mov r6, #0xf1 add r0, r5, #0 str r1, [r7, r2] bl FUN_0206A92C add r3, r6, #0 add r3, #0x8f lsl r2, r0, #8 add r0, r6, #0 sub r0, #0xf2 ldr r1, [r4, r3] eor r0, r2 and r0, r1 str r0, [r4, r3] b _0223EC7A _0223EC4E: ldr r1, [r7, r2] mov r0, #0x70 tst r0, r1 beq _0223EC5A mov r6, #0xf0 b _0223EC7A _0223EC5A: mov r0, #0x70 bic r1, r0 mov r6, #0xf1 add r0, r5, #0 str r1, [r7, r2] bl FUN_0206A92C add r3, r6, #0 add r3, #0x8f lsl r2, r0, #8 add r0, r6, #0 sub r0, #0xf2 ldr r1, [r4, r3] eor r0, r2 and r0, r1 str r0, [r4, r3] _0223EC7A: mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 add r2, r6, #0 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EC96: ldr r0, [sp, #0x10] cmp r0, #2 bne _0223EC9E b _0223F08C _0223EC9E: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223ECA6: mov r2, #0xc0 add r0, r5, #0 mul r0, r2 add r6, r4, r0 ldr r0, _0223EDA0 ; =0x00002DB0 lsl r2, r2, #4 ldr r1, [r6, r0] tst r2, r1 beq _0223ED06 mov r2, #1 lsl r2, r2, #0xa sub r1, r1, r2 str r1, [r6, r0] add r0, r4, #0 add r1, r5, #0 bl MOD11_02246764 cmp r0, #0 beq _0223ECD8 ldr r1, _0223EDA0 ; =0x00002DB0 ldr r0, _0223EDBC ; =0xFFFFF3FF ldr r2, [r6, r1] and r0, r2 str r0, [r6, r1] b _0223ED06 _0223ECD8: ldr r0, _0223EDA0 ; =0x00002DB0 ldr r1, [r6, r0] mov r0, #3 lsl r0, r0, #0xa tst r0, r1 bne _0223ED06 mov r0, #7 tst r0, r1 bne _0223ED06 add r0, r4, #0 add r0, #0x94 str r5, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x33 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223ED06: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223ED0E: mov r0, #0xc0 add r6, r5, #0 mul r6, r0 add r0, r4, r6 ldr r1, _0223EDC0 ; =0x00002DE8 mov ip, r0 ldrh r3, [r0, r1] cmp r3, #0 beq _0223ED88 ldr r7, _0223EDC4 ; =0x00002D4C mov r2, #0 mov r1, ip _0223ED26: ldrh r0, [r1, r7] cmp r3, r0 beq _0223ED34 add r2, r2, #1 add r1, r1, #2 cmp r2, #4 blt _0223ED26 _0223ED34: cmp r2, #4 bne _0223ED44 ldr r0, _0223EDC8 ; =0x00002DC8 add r1, r4, r0 ldr r2, [r1, r6] mov r0, #7 bic r2, r0 str r2, [r1, r6] _0223ED44: ldr r1, _0223EDC8 ; =0x00002DC8 add r0, r4, r6 ldr r0, [r0, r1] lsl r0, r0, #0x1d lsr r0, r0, #0x1d beq _0223ED64 add r2, r4, r1 ldr r1, [r2, r6] mov r3, #7 bic r1, r3 sub r3, r0, #1 mov r0, #7 and r0, r3 orr r0, r1 str r0, [r2, r6] b _0223ED88 _0223ED64: mov r2, #0 add r1, #0x20 mov r0, ip strh r2, [r0, r1] mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x48 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223ED88: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223ED90: mov r0, #0xc0 add r6, r5, #0 mul r6, r0 add r0, r4, r6 ldr r1, _0223EDCC ; =0x00002DEC b _0223EDD0 .align 2, 0 _0223ED9C: .word 0xF7FFFFFF _0223EDA0: .word 0x00002DB0 _0223EDA4: .word 0x0000215C _0223EDA8: .word 0x00002DEA _0223EDAC: .word 0x00002DAC _0223EDB0: .word 0x00002D8C _0223EDB4: .word 0x00000107 _0223EDB8: .word 0x0000213C _0223EDBC: .word 0xFFFFF3FF _0223EDC0: .word 0x00002DE8 _0223EDC4: .word 0x00002D4C _0223EDC8: .word 0x00002DC8 _0223EDCC: .word 0x00002DEC _0223EDD0: str r0, [sp, #8] ldrh r2, [r0, r1] cmp r2, #0 beq _0223EE4E ldr r7, _0223F0B8 ; =0x00002D4C mov r3, #0 add r1, r0, #0 _0223EDDE: ldrh r0, [r1, r7] cmp r2, r0 beq _0223EDEC add r3, r3, #1 add r1, r1, #2 cmp r3, #4 blt _0223EDDE _0223EDEC: cmp r3, #4 beq _0223EDFE beq _0223EE0A ldr r0, [sp, #8] add r1, r0, r3 ldr r0, _0223F0BC ; =0x00002D6C ldrb r0, [r1, r0] cmp r0, #0 bne _0223EE0A _0223EDFE: ldr r0, _0223F0C0 ; =0x00002DC8 add r2, r4, r0 ldr r1, [r2, r6] mov r0, #0x38 bic r1, r0 str r1, [r2, r6] _0223EE0A: ldr r1, _0223F0C0 ; =0x00002DC8 add r0, r4, r6 ldr r0, [r0, r1] lsl r0, r0, #0x1a lsr r2, r0, #0x1d beq _0223EE2A add r1, r4, r1 sub r2, r2, #1 lsl r2, r2, #0x1d ldr r0, [r1, r6] mov r3, #0x38 bic r0, r3 lsr r2, r2, #0x1a orr r0, r2 str r0, [r1, r6] b _0223EE4E _0223EE2A: ldr r0, [sp, #8] mov r2, #0 add r1, #0x24 strh r2, [r0, r1] mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x4a bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EE4E: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EE56: mov r0, #0xc0 mul r0, r5 add r3, r4, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r2, [r3, r0] mov r1, #0x18 tst r1, r2 beq _0223EE6C sub r2, #8 str r2, [r3, r0] _0223EE6C: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EE74: mov r0, #0xc0 mul r0, r5 ldr r2, _0223F0C0 ; =0x00002DC8 add r5, r4, r0 ldr r1, [r5, r2] lsl r1, r1, #0x18 lsr r1, r1, #0x1e beq _0223EEB2 add r3, r4, r2 ldr r6, [r3, r0] mov r1, #0xc0 add r7, r6, #0 bic r7, r1 lsl r1, r6, #0x18 lsr r1, r1, #0x1e sub r1, r1, #1 lsl r1, r1, #0x1e lsr r1, r1, #0x18 orr r1, r7 str r1, [r3, r0] ldr r0, [r3, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1e bne _0223EEB2 add r0, r2, #0 sub r0, #8 ldr r1, [r5, r0] ldr r0, _0223F0C4 ; =0xFFFFFDFF sub r2, #8 and r0, r1 str r0, [r5, r2] _0223EEB2: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EEBA: ldr r0, _0223F0C0 ; =0x00002DC8 mov r2, #0xc0 add r3, r5, #0 mul r3, r2 add r1, r4, r0 ldr r7, [r1, r3] lsl r0, r7, #0x15 lsr r6, r0, #0x1d beq _0223EEFE ldr r0, _0223F0C8 ; =0xFFFFF8FF and r7, r0 sub r0, r6, #1 lsl r0, r0, #0x1d lsr r0, r0, #0x15 orr r0, r7 str r0, [r1, r3] ldr r0, [r1, r3] lsl r0, r0, #0x15 lsr r0, r0, #0x1d bne _0223EEFE add r0, r2, #0 add r0, #0x58 str r5, [r4, r0] add r0, r4, #0 mov r1, #1 add r2, #0x60 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EEFE: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EF06: ldr r0, _0223F0CC ; =0x00002DCC mov r1, #0xc0 add r3, r5, #0 mul r3, r1 add r2, r4, r0 ldr r7, [r2, r3] lsl r0, r7, #0x10 lsr r6, r0, #0x1d beq _0223EF48 ldr r0, _0223F0D0 ; =0xFFFF1FFF and r7, r0 sub r0, r6, #1 lsl r0, r0, #0x1d lsr r0, r0, #0x10 orr r0, r7 str r0, [r2, r3] ldr r0, [r2, r3] lsl r0, r0, #0x10 lsr r0, r0, #0x1d bne _0223EF48 add r1, #0x58 str r5, [r4, r1] add r0, r4, #0 mov r1, #1 mov r2, #0xf2 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EF48: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EF50: ldr r0, _0223F0CC ; =0x00002DCC mov r1, #0xc0 add r3, r5, #0 mul r3, r1 add r2, r4, r0 ldr r7, [r2, r3] lsl r0, r7, #0xd lsr r6, r0, #0x1d beq _0223EF92 ldr r0, _0223F0D4 ; =0xFFF8FFFF and r7, r0 sub r0, r6, #1 lsl r0, r0, #0x1d lsr r0, r0, #0xd orr r0, r7 str r0, [r2, r3] ldr r0, [r2, r3] lsl r0, r0, #0xd lsr r0, r0, #0x1d bne _0223EF92 add r1, #0x58 str r5, [r4, r1] add r0, r4, #0 mov r1, #1 mov r2, #0xf3 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EF92: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EF9A: ldr r0, _0223F0CC ; =0x00002DCC mov r1, #0xc0 add r3, r5, #0 mul r3, r1 add r2, r4, r0 ldr r7, [r2, r3] lsl r0, r7, #0xa lsr r6, r0, #0x1d beq _0223EFDC ldr r0, _0223F0D8 ; =0xFFC7FFFF and r7, r0 sub r0, r6, #1 lsl r0, r0, #0x1d lsr r0, r0, #0xa orr r0, r7 str r0, [r2, r3] ldr r0, [r2, r3] lsl r0, r0, #0xa lsr r0, r0, #0x1d bne _0223EFDC add r1, #0x58 str r5, [r4, r1] add r0, r4, #0 mov r1, #1 mov r2, #0xf4 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223EFDC: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223EFE4: mov r6, #0xc0 add r0, r5, #0 mul r0, r6 mov r3, #0xb7 add r1, r4, r0 lsl r3, r3, #6 ldr r0, [r1, r3] lsl r2, r6, #5 tst r2, r0 beq _0223F02C mov r2, #2 lsl r2, r2, #0xa sub r0, r0, r2 str r0, [r1, r3] ldr r1, [r1, r3] lsl r0, r6, #5 tst r0, r1 bne _0223F02C add r0, r4, #0 add r0, #0x94 str r5, [r0] add r0, r4, #0 mov r1, #4 add r0, #0x88 str r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x12 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223F02C: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223F034: ldr r0, [sp, #4] add r1, r4, #0 add r2, r5, #0 add r3, sp, #0x14 bl MOD11_022493A0 cmp r0, #1 bne _0223F060 mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] ldr r2, [sp, #0x14] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #0x10] _0223F060: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223F068: ldr r0, [sp, #4] add r1, r4, #0 add r2, r5, #0 bl MOD11_02249A7C cmp r0, #1 bne _0223F07A mov r0, #1 str r0, [sp, #0x10] _0223F07A: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] b _0223F08C _0223F082: mov r0, #0 str r0, [r4, #0x18] ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] _0223F08C: ldr r0, [sp, #0x10] cmp r0, #0 beq _0223F09C ldr r0, [sp, #4] bl MOD11_0225679C add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0223F09C: ldr r1, [r4, #0x1c] ldr r0, [sp, #0xc] cmp r1, r0 bge _0223F0A8 bl _0223E6E8 _0223F0A8: mov r0, #0 str r0, [r4, #0x18] str r0, [r4, #0x1c] mov r0, #0xb str r0, [r4, #8] _0223F0B2: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _0223F0B8: .word 0x00002D4C _0223F0BC: .word 0x00002D6C _0223F0C0: .word 0x00002DC8 _0223F0C4: .word 0xFFFFFDFF _0223F0C8: .word 0xFFFFF8FF _0223F0CC: .word 0x00002DCC _0223F0D0: .word 0xFFFF1FFF _0223F0D4: .word 0xFFF8FFFF _0223F0D8: .word 0xFFC7FFFF thumb_func_start MOD11_0223F0DC MOD11_0223F0DC: ; 0x0223F0DC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 str r0, [sp] bl MOD11_0222FF84 ldr r1, [r4, #8] add r7, r0, #0 add r0, r4, #0 add r2, r1, #0 mov r3, #1 bl MOD11_0224246C cmp r0, #1 bne _0223F0FC b _0223F30C _0223F0FC: ldr r0, [sp] bl MOD11_0225679C ldr r0, [r4, #0x20] cmp r0, #0 beq _0223F114 cmp r0, #1 beq _0223F1FE cmp r0, #2 bne _0223F112 b _0223F2C4 _0223F112: b _0223F302 _0223F114: ldr r0, [r4, #0x24] cmp r0, r7 bge _0223F1F4 add r5, r4, #0 add r5, #0x24 _0223F11E: add r1, r4, r0 ldr r0, _0223F310 ; =0x000021EC ldrb r6, [r1, r0] add r0, r6, #0 bl FUN_0206A92C ldr r1, _0223F314 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 ldr r0, [r5] beq _0223F13A add r0, r0, #1 str r0, [r5] b _0223F1EE _0223F13A: add r0, r0, #1 mov r1, #0x62 str r0, [r5] add r0, r4, r6 lsl r1, r1, #2 ldrb r1, [r0, r1] cmp r1, #0 beq _0223F1EE mov r1, #0x62 lsl r1, r1, #2 ldrb r1, [r0, r1] sub r2, r1, #1 mov r1, #0x62 lsl r1, r1, #2 strb r2, [r0, r1] ldrb r0, [r0, r1] cmp r0, #0 bne _0223F1EE mov r0, #0xc0 mul r0, r6 add r1, r4, r0 ldr r0, _0223F318 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _0223F1EE ldr r0, [sp] add r1, r6, #0 bl MOD11_02230270 mov r2, #0x6f lsl r2, r2, #2 add r1, r4, r2 lsl r5, r0, #2 ldr r3, [r1, r5] mov r0, #0x10 bic r3, r0 add r0, r4, #0 str r3, [r1, r5] add r2, #0x1f add r0, #0xf6 strh r2, [r0] add r0, r4, #0 mov r1, #0xa add r0, #0xf5 strb r1, [r0] add r0, r4, #0 add r1, r6, #0 bl MOD11_0224682C add r1, r4, #0 add r1, #0xf8 str r0, [r1] mov r0, #0x19 lsl r0, r0, #4 add r1, r4, #0 add r3, r4, r0 lsl r2, r6, #1 ldrh r5, [r3, r2] add r1, #0xfc str r5, [r1] add r1, r0, #0 sub r1, #0x78 str r6, [r4, r1] lsl r1, r6, #2 add r5, r0, #0 add r1, r4, r1 add r5, #8 ldr r6, [r1, r5] add r5, r0, #0 sub r5, #0x74 str r6, [r4, r5] ldrh r3, [r3, r2] add r2, r0, #0 sub r2, #0x6c str r3, [r4, r2] add r0, #0x18 ldr r1, [r1, r0] ldr r0, _0223F31C ; =0x0000215C mov r2, #0x79 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #8 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _0223F1EE: ldr r0, [r4, #0x24] cmp r0, r7 blt _0223F11E _0223F1F4: ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] mov r0, #0 str r0, [r4, #0x24] _0223F1FE: ldr r0, [r4, #0x24] cmp r0, r7 bge _0223F2BA add r5, r4, #0 add r5, #0x24 _0223F208: add r1, r4, r0 ldr r0, _0223F310 ; =0x000021EC ldrb r6, [r1, r0] add r0, r6, #0 bl FUN_0206A92C ldr r1, _0223F314 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 ldr r0, [r5] beq _0223F224 add r0, r0, #1 str r0, [r5] b _0223F2B4 _0223F224: add r0, r0, #1 str r0, [r5] mov r0, #0xc0 mul r0, r6 mov r1, #0xb7 add r3, r4, r0 lsl r1, r1, #6 ldr r2, [r3, r1] mov r1, #0x20 tst r1, r2 beq _0223F2B4 ldr r7, _0223F320 ; =0x00002DC8 add r2, r4, r7 ldr r1, [r2, r0] lsl r1, r1, #0x11 lsr r1, r1, #0x1e bne _0223F27E add r1, r7, #0 sub r1, #8 add r1, r4, r1 str r1, [sp, #4] ldr r1, [r1, r0] mov r5, #0x20 bic r1, r5 ldr r5, [sp, #4] sub r7, #0x3c str r1, [r5, r0] ldr r0, [r2, r0] lsl r0, r0, #0x11 lsr r1, r0, #0x1e mov r0, #0x13 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, [r3, r7] ldr r1, _0223F31C ; =0x0000215C neg r0, r0 str r0, [r4, r1] add r0, r1, #0 sub r0, #0x20 ldr r2, [r4, r0] mov r0, #0x40 orr r0, r2 sub r1, #0x20 str r0, [r4, r1] b _0223F298 _0223F27E: mov r3, #0x13 lsl r3, r3, #4 str r1, [r4, r3] ldr r3, [r2, r0] ldr r1, _0223F324 ; =0xFFFF9FFF and r1, r3 lsl r3, r3, #0x11 lsr r3, r3, #0x1e sub r3, r3, #1 lsl r3, r3, #0x1e lsr r3, r3, #0x11 orr r1, r3 str r1, [r2, r0] _0223F298: mov r0, #0x46 lsl r0, r0, #2 str r6, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x66 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #8 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _0223F2B4: ldr r0, [r4, #0x24] cmp r0, r7 blt _0223F208 _0223F2BA: ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] mov r0, #0 str r0, [r4, #0x24] _0223F2C4: mov r1, #6 lsl r1, r1, #6 ldr r3, [r4, r1] mov r2, #7 lsl r2, r2, #0x10 add r0, r3, #0 tst r0, r2 beq _0223F2F8 mov r0, #1 lsl r0, r0, #0x10 sub r0, r3, r0 str r0, [r4, r1] ldr r0, [r4, r1] tst r0, r2 bne _0223F2F8 add r0, r4, #0 mov r1, #1 mov r2, #0xfb bl MOD11_022431DC ldr r0, [r4, #8] add sp, #8 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _0223F2F8: ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] mov r0, #0 str r0, [r4, #0x24] _0223F302: mov r0, #0 str r0, [r4, #0x20] str r0, [r4, #0x24] mov r0, #0xc str r0, [r4, #8] _0223F30C: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223F310: .word 0x000021EC _0223F314: .word 0x00003108 _0223F318: .word 0x00002D8C _0223F31C: .word 0x0000215C _0223F320: .word 0x00002DC8 _0223F324: .word 0xFFFF9FFF thumb_func_start MOD11_0223F328 MOD11_0223F328: ; 0x0223F328 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #8] add r5, r0, #0 add r0, r4, #0 add r2, r1, #0 bl MOD11_02242510 cmp r0, #1 beq _0223F37C add r0, r5, #0 add r1, r4, #0 bl MOD11_02241FD8 cmp r0, #1 beq _0223F37C add r0, r5, #0 add r1, r4, #0 bl MOD11_02241D2C cmp r0, #1 beq _0223F37C mov r1, #0x15 lsl r1, r1, #4 ldr r0, [r4, r1] add r0, r0, #1 str r0, [r4, r1] add r0, r1, #0 add r0, #0x24 ldr r0, [r4, r0] add r1, #0x24 add r0, r0, #1 str r0, [r4, r1] add r0, r4, #0 bl MOD11_02245494 add r0, r5, #0 add r1, r4, #0 bl MOD11_02245C5C mov r0, #2 str r0, [r4, #8] _0223F37C: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0223F380 MOD11_0223F380: ; 0x0223F380 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 str r0, [sp, #8] add r0, r5, #0 add r0, #0xec ldr r0, [r0] mov r4, #0 add r1, r5, r0 ldr r0, _0223F4A8 ; =0x000021E8 ldrb r2, [r1, r0] lsl r0, r2, #6 add r1, r5, r0 mov r0, #0x75 str r2, [r5, #0x64] lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0223F3B4 mov r0, #0xc1 mov r1, #0xa5 lsl r0, r0, #6 str r1, [r5, r0] mov r4, #1 b _0223F478 _0223F3B4: mov r0, #0xc0 mul r0, r2 ldr r6, _0223F4AC ; =0x00002DEC add r0, r5, r0 ldrh r1, [r0, r6] cmp r1, #0 beq _0223F3DC add r3, r6, #2 ldrh r3, [r0, r3] sub r6, #0xa0 lsl r3, r3, #1 add r0, r0, r3 ldrh r0, [r0, r6] cmp r1, r0 bne _0223F3DC mov r0, #0xc1 lsl r0, r0, #6 str r1, [r5, r0] mov r4, #1 b _0223F478 _0223F3DC: cmp r1, #0 beq _0223F42E mov r7, #0xc0 add r0, r2, #0 mul r0, r7 ldr r3, _0223F4B0 ; =0x00002DEE add r0, r5, r0 ldrh r6, [r0, r3] lsl r6, r6, #1 add r0, r0, r6 add r6, r3, #0 sub r6, #0xa2 ldrh r0, [r0, r6] cmp r1, r0 beq _0223F42E mov r1, #0xc1 lsl r1, r1, #6 str r0, [r5, r1] ldr r1, [r5, #0x64] mov r0, #0 add r2, r1, #0 mul r2, r7 add r2, r5, r2 sub r1, r3, #2 strh r0, [r2, r1] ldr r1, [r5, #0x64] mov r4, #1 add r2, r1, #0 mul r2, r7 add r1, r5, r2 strh r0, [r1, r3] ldr r0, [r5, #0x64] sub r3, #0x26 add r2, r0, #0 add r3, r5, r3 mul r2, r7 ldr r1, [r3, r2] mov r0, #0x38 bic r1, r0 str r1, [r3, r2] b _0223F478 _0223F42E: add r0, r5, #0 add r1, r2, #0 bl MOD11_0224AD04 cmp r0, #0 bne _0223F44A ldr r0, [r5, #0x64] lsl r0, r0, #2 add r1, r5, r0 ldr r0, _0223F4B4 ; =0x0000304C ldr r1, [r1, r0] sub r0, #0xc str r1, [r5, r0] b _0223F478 _0223F44A: ldr r2, [r5, #0x64] mov r0, #0xc0 mul r0, r2 lsl r1, r2, #1 add r3, r5, r0 add r0, r5, r1 ldr r1, _0223F4B8 ; =0x000030BC ldrh r2, [r0, r1] lsl r2, r2, #1 add r3, r3, r2 ldr r2, _0223F4BC ; =0x00002D4C ldrh r3, [r3, r2] add r2, r1, #0 sub r2, #8 ldrh r0, [r0, r2] cmp r0, r3 beq _0223F474 sub r1, #0x7c str r3, [r5, r1] mov r4, #1 b _0223F478 _0223F474: sub r1, #0x7c str r3, [r5, r1] _0223F478: mov r3, #0xc1 lsl r3, r3, #6 ldr r1, [r5, r3] add r0, r3, #4 str r1, [r5, r0] mov r0, #0x16 str r0, [r5, #8] str r4, [sp] mov r0, #0 str r0, [sp, #4] ldr r3, [r5, r3] ldr r0, [sp, #8] lsl r3, r3, #0x10 ldr r2, [r5, #0x64] add r1, r5, #0 lsr r3, r3, #0x10 bl MOD11_02244C28 str r0, [r5, #0x6c] ldr r0, [sp, #8] bl MOD11_0225679C add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _0223F4A8: .word 0x000021E8 _0223F4AC: .word 0x00002DEC _0223F4B0: .word 0x00002DEE _0223F4B4: .word 0x0000304C _0223F4B8: .word 0x000030BC _0223F4BC: .word 0x00002D4C thumb_func_start MOD11_0223F4C0 MOD11_0223F4C0: ; 0x0223F4C0 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0xec ldr r2, [r2] add r7, r0, #0 add r3, r4, r2 ldr r2, _0223F5FC ; =0x000021E8 ldrb r2, [r3, r2] str r2, [r4, #0x64] bl MOD11_022482A4 str r0, [r4, #0x6c] ldr r0, _0223F600 ; =0x000021B0 ldr r1, [r4, #0x64] add r2, r4, r0 lsl r0, r1, #4 add r6, r2, r0 add r0, r7, #0 bl MOD11_02230270 cmp r0, #0 beq _0223F568 ldr r0, [r4, #0x64] asr r0, r0, #1 add r1, r4, r0 ldr r0, _0223F604 ; =0x000003D1 ldrb r2, [r1, r0] cmp r2, #4 bhi _0223F554 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0223F508: ; jump table .short _0223F512 - _0223F508 - 2 ; case 0 .short _0223F516 - _0223F508 - 2 ; case 1 .short _0223F51A - _0223F508 - 2 ; case 2 .short _0223F544 - _0223F508 - 2 ; case 3 .short _0223F552 - _0223F508 - 2 ; case 4 _0223F512: ldr r5, _0223F608 ; =0x00000121 b _0223F554 _0223F516: ldr r5, _0223F60C ; =0x0000010B b _0223F554 _0223F51A: add r0, r0, #2 ldrb r0, [r1, r0] mov r1, #1 tst r1, r0 beq _0223F534 mov r1, #0x3e add r2, r0, #0 tst r2, r1 beq _0223F534 mov r0, #6 add r1, #0xf2 str r0, [r4, r1] b _0223F53E _0223F534: bl FUN_0206A94C mov r1, #0x13 lsl r1, r1, #4 str r0, [r4, r1] _0223F53E: mov r5, #0x43 lsl r5, r5, #2 b _0223F554 _0223F544: add r0, r0, #2 ldrb r0, [r1, r0] mov r5, #0x13 lsl r5, r5, #4 str r0, [r4, r5] sub r5, #0x23 b _0223F554 _0223F552: ldr r5, _0223F610 ; =0x0000010E _0223F554: ldr r1, [r4, #0x64] mov r0, #1 bic r1, r0 ldr r0, _0223F614 ; =0x000003D6 add r1, r4, r1 ldrh r1, [r1, r0] mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] b _0223F5DA _0223F568: ldrb r0, [r6, #2] cmp r0, #3 bhi _0223F5D2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223F57A: ; jump table .short _0223F582 - _0223F57A - 2 ; case 0 .short _0223F582 - _0223F57A - 2 ; case 1 .short _0223F598 - _0223F57A - 2 ; case 2 .short _0223F582 - _0223F57A - 2 ; case 3 _0223F582: ldrh r1, [r6] ldr r0, _0223F618 ; =0x0000FFC1 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _0223F594 mov r5, #0xde b _0223F5D2 _0223F594: mov r5, #0xdf b _0223F5D2 _0223F598: add r0, r7, #0 mov r5, #0xb bl MOD11_0222FF74 mov r1, #1 tst r0, r1 bne _0223F5D2 add r0, r7, #0 bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 bne _0223F5D2 add r0, r7, #0 bl MOD11_02230214 ldrh r1, [r6] mov r2, #1 mov r3, #5 bl FUN_0206EDD4 add r0, r7, #0 bl MOD11_02230218 ldrh r1, [r6] ldrb r2, [r6, #2] bl FUN_0206F1E4 _0223F5D2: ldrh r1, [r6] mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] _0223F5DA: add r0, r4, #0 mov r1, #1 add r2, r5, #0 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] ldr r1, _0223F61C ; =0x0000216C mov r0, #2 ldr r2, [r4, r1] lsl r0, r0, #0x1e orr r0, r2 str r0, [r4, r1] pop {r3, r4, r5, r6, r7, pc} nop _0223F5FC: .word 0x000021E8 _0223F600: .word 0x000021B0 _0223F604: .word 0x000003D1 _0223F608: .word 0x00000121 _0223F60C: .word 0x0000010B _0223F610: .word 0x0000010E _0223F614: .word 0x000003D6 _0223F618: .word 0x0000FFC1 _0223F61C: .word 0x0000216C thumb_func_start MOD11_0223F620 MOD11_0223F620: ; 0x0223F620 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #9 bl MOD11_022431DC add r0, r4, #0 add r0, #0xec ldr r0, [r0] ldr r1, _0223F660 ; =0x000021E8 add r0, r4, r0 ldrb r0, [r0, r1] mov r2, #0 str r0, [r4, #0x64] str r0, [r4, #0x78] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x28 str r0, [r4, #0xc] mov r0, #0x4e lsl r0, r0, #2 str r2, [r4, r0] add r0, r1, #0 sub r0, #0x7c ldr r2, [r4, r0] mov r0, #2 lsl r0, r0, #0x1e orr r0, r2 sub r1, #0x7c str r0, [r4, r1] pop {r4, pc} .align 2, 0 _0223F660: .word 0x000021E8 thumb_func_start MOD11_0223F664 MOD11_0223F664: ; 0x0223F664 push {r3, r4, r5, lr} add r4, r1, #0 add r1, #0xec ldr r1, [r1] add r5, r0, #0 add r2, r4, r1 ldr r1, _0223F71C ; =0x000021E8 ldrb r1, [r2, r1] str r1, [r4, #0x64] bl MOD11_02230270 cmp r0, #0 beq _0223F6D6 add r0, r5, #0 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _0223F6D6 ldr r0, [r4, #0x64] mov r2, #0xc0 add r1, r0, #0 mul r1, r2 ldr r0, _0223F720 ; =0x00002DB0 add r1, r4, r1 ldr r1, [r1, r0] ldr r0, _0223F724 ; =0x0400E000 tst r0, r1 beq _0223F6BA add r0, r4, #0 mov r1, #1 add r2, #0x5e bl MOD11_022431DC add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] pop {r3, r4, r5, pc} _0223F6BA: add r0, r4, #0 mov r1, #1 mov r2, #0xe6 bl MOD11_022431DC add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x2a str r0, [r4, #0xc] pop {r3, r4, r5, pc} _0223F6D6: ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 bl MOD11_022470B8 cmp r0, #0 beq _0223F700 add r0, r4, #0 mov r1, #1 mov r2, #3 bl MOD11_022431DC add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x2a str r0, [r4, #0xc] pop {r3, r4, r5, pc} _0223F700: add r0, r4, #0 mov r1, #1 mov r2, #8 bl MOD11_022431DC add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] pop {r3, r4, r5, pc} .align 2, 0 _0223F71C: .word 0x000021E8 _0223F720: .word 0x00002DB0 _0223F724: .word 0x0400E000 thumb_func_start MOD11_0223F728 MOD11_0223F728: ; 0x0223F728 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r2, _0223F76C ; =0x00000113 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0 str r0, [r4, #0x64] mov r0, #1 str r0, [r4, #0x6c] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] mov r0, #0x4a mov r1, #5 lsl r0, r0, #2 str r1, [r4, r0] add r0, r5, #0 bl MOD11_02230E00 sub r1, r0, #1 add r0, r5, #0 bl MOD11_02230E0C add r0, r5, #0 add r1, r4, #0 mov r2, #0 bl MOD11_02256020 pop {r3, r4, r5, pc} nop _0223F76C: .word 0x00000113 thumb_func_start MOD11_0223F770 MOD11_0223F770: ; 0x0223F770 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #0xe3 bl MOD11_022431DC mov r0, #0 str r0, [r4, #0x64] mov r0, #1 str r0, [r4, #0x6c] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f mov r0, #0x4e lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _0223F7C4 ; =0x0000311C ldrb r1, [r4, r0] cmp r1, #0xc bhs _0223F7AA add r1, r1, #1 strb r1, [r4, r0] _0223F7AA: mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _0223F7C0 ldr r0, _0223F7C8 ; =0x0000311D ldrb r1, [r4, r0] cmp r1, #0xc bhs _0223F7C0 add r1, r1, #1 strb r1, [r4, r0] _0223F7C0: pop {r4, pc} nop _0223F7C4: .word 0x0000311C _0223F7C8: .word 0x0000311D thumb_func_start MOD11_0223F7CC MOD11_0223F7CC: ; 0x0223F7CC push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #0xe4 bl MOD11_022431DC mov r0, #0 str r0, [r4, #0x64] mov r0, #1 str r0, [r4, #0x6c] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f mov r0, #0x4e lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _0223F824 ; =0x0000311D ldrb r1, [r4, r0] cmp r1, #0 beq _0223F806 sub r1, r1, #1 strb r1, [r4, r0] _0223F806: mov r0, #0x4e lsl r0, r0, #2 ldr r1, [r4, r0] cmp r1, #0 beq _0223F822 mov r1, #1 sub r0, #8 str r1, [r4, r0] ldr r0, _0223F828 ; =0x0000311C ldrb r1, [r4, r0] cmp r1, #0 beq _0223F822 sub r1, r1, #1 strb r1, [r4, r0] _0223F822: pop {r4, pc} .align 2, 0 _0223F824: .word 0x0000311D _0223F828: .word 0x0000311C thumb_func_start MOD11_0223F82C MOD11_0223F82C: ; 0x0223F82C push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #0xe5 bl MOD11_022431DC mov r0, #0 str r0, [r4, #0x64] mov r0, #1 str r0, [r4, #0x6c] mov r0, #0x15 str r0, [r4, #8] mov r0, #0x27 str r0, [r4, #0xc] pop {r4, pc} thumb_func_start MOD11_0223F84C MOD11_0223F84C: ; 0x0223F84C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #0x18] add r4, r1, #0 add r6, r2, #0 bl MOD11_0222FF74 add r5, r0, #0 ldr r0, [sp, #0x18] mov r1, #0 bl MOD11_022301D4 add r7, r0, #0 mov r0, #0x84 tst r0, r5 beq _0223F872 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F872: ldr r0, [sp, #0x18] ldr r1, [r4, #0x64] bl MOD11_02230270 cmp r0, #0 beq _0223F884 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F884: mov r0, #0x40 tst r0, r5 beq _0223F89C ldr r0, [sp, #0x18] ldr r1, [r4, #0x64] bl MOD11_02230260 cmp r0, #4 bne _0223F89C add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F89C: ldr r0, [sp, #0x18] add r1, r4, #0 bl MOD11_0224ADB8 cmp r0, #1 bne _0223F8AE add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F8AE: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_0224AD04 cmp r0, #0 bne _0223F8C0 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F8C0: add r0, r7, #0 bl FUN_020239F4 cmp r0, #8 blt _0223F8D0 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F8D0: add r0, r7, #0 mov r5, #0xa bl FUN_020239F4 cmp r0, #2 blt _0223F8DE mov r5, #0x1e _0223F8DE: add r0, r7, #0 bl FUN_020239F4 cmp r0, #4 blt _0223F8EA mov r5, #0x32 _0223F8EA: add r0, r7, #0 bl FUN_020239F4 cmp r0, #6 blt _0223F8F6 mov r5, #0x46 _0223F8F6: ldr r1, [r4, #0x64] mov r0, #0xc0 add r7, r1, #0 mul r7, r0 ldr r0, _0223FAEC ; =0x00002D74 add r1, r4, r7 ldrb r0, [r1, r0] cmp r0, r5 bhi _0223F90E add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F90E: bl FUN_0201B9EC lsl r0, r0, #0x18 ldr r1, _0223FAEC ; =0x00002D74 add r2, r4, r7 ldrb r2, [r2, r1] lsr r0, r0, #0x18 add r2, r5, r2 mul r0, r2 asr r0, r0, #8 cmp r0, r5 bge _0223F92C add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F92C: ldr r0, _0223FAF0 ; =0x00003044 ldr r0, [r4, r0] cmp r0, #0x63 bne _0223F940 add r1, #0x3c add r0, r4, r1 ldr r2, [r0, r7] ldr r1, _0223FAF4 ; =0xFF7FFFFF and r1, r2 str r1, [r0, r7] _0223F940: ldr r7, [r4, #0x64] mov r0, #0xc0 mul r0, r7 add r1, r4, r0 ldr r0, _0223FAF8 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0223F968 ldr r0, _0223FAF0 ; =0x00003044 ldr r0, [r4, r0] cmp r0, #0xad beq _0223F95E cmp r0, #0xd6 bne _0223F968 _0223F95E: mov r0, #0xfe str r0, [r6] add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0223F968: mov r0, #0xc0 mul r0, r7 add r1, r4, r0 ldr r0, _0223FAEC ; =0x00002D74 ldrb r0, [r1, r0] str r0, [sp, #0x1c] bl FUN_0201B9EC ldr r1, [sp, #0x1c] lsl r0, r0, #0x18 add r1, r5, r1 lsr r0, r0, #0x18 mul r0, r1 asr r0, r0, #8 cmp r0, r5 bge _0223FA2E lsl r0, r7, #1 add r1, r4, r0 ldr r0, _0223FAFC ; =0x000030BC ldrh r0, [r1, r0] bl FUN_0206A92C add r3, r0, #0 mov r0, #0 mvn r0, r0 str r0, [sp] ldr r0, [sp, #0x18] ldr r2, [r4, #0x64] add r1, r4, #0 bl MOD11_02245D38 add r5, r0, #0 cmp r5, #0xf bne _0223F9B6 mov r0, #0xff str r0, [r6] add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0223F9B6: bl FUN_0201B9EC mov r1, #3 add r7, r0, #0 and r7, r1 add r0, r7, #0 bl FUN_0206A92C tst r0, r5 bne _0223F9B6 ldr r0, [r4, #0x64] ldr r3, _0223FAFC ; =0x000030BC lsl r0, r0, #1 add r0, r4, r0 strh r7, [r0, r3] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 lsl r1, r1, #1 add r1, r4, r1 ldrh r1, [r1, r3] add r0, r4, r0 lsl r1, r1, #1 add r1, r0, r1 ldr r0, _0223FB00 ; =0x00002D4C ldrh r1, [r1, r0] add r0, r3, #0 sub r0, #0x7c str r1, [r4, r0] add r0, r3, #0 sub r0, #0x7c ldr r1, [r4, r0] add r0, r3, #0 sub r0, #0x78 str r1, [r4, r0] mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] sub r3, #0x7c ldr r3, [r4, r3] ldr r0, [sp, #0x18] lsl r3, r3, #0x10 ldr r2, [r4, #0x64] add r1, r4, #0 lsr r3, r3, #0x10 bl MOD11_02244C28 str r0, [r4, #0x6c] mov r0, #1 lsl r0, r0, #8 str r0, [r6] ldr r1, _0223FB04 ; =0x00002184 mov r0, #1 ldr r2, [r4, r1] add sp, #0x20 orr r0, r2 str r0, [r4, r1] mov r0, #2 pop {r3, r4, r5, r6, r7, pc} _0223FA2E: ldr r0, [sp, #0x1c] sub r0, r0, r5 lsl r0, r0, #0x18 lsr r5, r0, #0x18 bl FUN_0201B9EC lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, r5 bge _0223FA8E ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _0223FAF8 ; =0x00002DAC ldr r0, [r2, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _0223FA8E add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x48 beq _0223FA8E ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0xf beq _0223FA8E ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x66 beq _0223FA8E mov r1, #6 lsl r1, r1, #6 mov r0, #0xf ldr r2, [r4, r1] lsl r0, r0, #8 tst r0, r2 bne _0223FA8E sub r1, #0x7f add sp, #0x20 str r1, [r6] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0223FA8E: sub r0, r7, r5 cmp r0, r5 bge _0223FAE2 ldr r1, [r4, #0x64] mov r0, #0x46 str r1, [r4, #0x6c] lsl r0, r0, #2 str r1, [r4, r0] ldr r1, [r4, #0x64] mov r3, #0 str r3, [sp] mov r0, #0x28 str r0, [sp, #4] lsl r0, r1, #0x18 str r3, [sp, #8] lsr r0, r0, #0x18 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r2, #1 ldr r0, [sp, #0x18] add r1, r4, #0 str r2, [sp, #0x14] bl MOD11_0224B310 ldr r1, _0223FB08 ; =0x0000215C str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0 bl MOD11_0224BF10 ldr r1, _0223FB08 ; =0x0000215C add sp, #0x20 str r0, [r4, r1] mov r0, #0 ldr r2, [r4, r1] mvn r0, r0 mul r0, r2 str r0, [r4, r1] ldr r0, _0223FB0C ; =0x00000102 str r0, [r6] mov r0, #3 pop {r3, r4, r5, r6, r7, pc} _0223FAE2: mov r0, #0xff str r0, [r6] mov r0, #1 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223FAEC: .word 0x00002D74 _0223FAF0: .word 0x00003044 _0223FAF4: .word 0xFF7FFFFF _0223FAF8: .word 0x00002DAC _0223FAFC: .word 0x000030BC _0223FB00: .word 0x00002D4C _0223FB04: .word 0x00002184 _0223FB08: .word 0x0000215C _0223FB0C: .word 0x00000102 thumb_func_start MOD11_0223FB10 MOD11_0223FB10: ; 0x0223FB10 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 ldr r3, [r5, #0x64] mov r2, #0x1c mul r2, r3 add r6, r5, r2 mov r2, #0xb5 lsl r2, r2, #2 ldr r2, [r6, r2] str r0, [sp, #4] lsl r2, r2, #0x1f mov r4, #1 lsr r2, r2, #0x1f bne _0223FBCA ldr r6, [r5, #0x6c] cmp r6, #0xff beq _0223FBCA mov r2, #0xc1 lsl r2, r2, #6 ldr r7, [r5, r2] ldr r2, _0223FC98 ; =0x0000011E cmp r7, r2 bne _0223FB4E mov r2, #0x2e str r2, [sp] mov r2, #3 bl MOD11_02246870 add r4, r4, r0 b _0223FBCA _0223FB4E: lsl r0, r7, #4 add r1, r5, r0 ldr r0, _0223FC9C ; =0x000003E6 ldrh r1, [r1, r0] cmp r1, #0x40 bgt _0223FB78 bge _0223FB94 cmp r1, #0x10 bgt _0223FB72 bge _0223FBCA cmp r1, #8 bgt _0223FBB8 cmp r1, #4 blt _0223FBB8 beq _0223FBA6 cmp r1, #8 beq _0223FB94 b _0223FBB8 _0223FB72: cmp r1, #0x20 beq _0223FBCA b _0223FBB8 _0223FB78: add r0, r2, #0 sub r0, #0x1e cmp r1, r0 bgt _0223FB8C sub r2, #0x1e cmp r1, r2 bge _0223FBCA cmp r1, #0x80 beq _0223FBA6 b _0223FBB8 _0223FB8C: add r2, #0xe2 cmp r1, r2 beq _0223FBCA b _0223FBB8 _0223FB94: mov r0, #0x2e str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #9 bl MOD11_02246870 add r4, r4, r0 b _0223FBCA _0223FBA6: mov r0, #0x2e str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #3 bl MOD11_02246870 add r4, r4, r0 b _0223FBCA _0223FBB8: cmp r3, r6 beq _0223FBCA add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x2e bne _0223FBCA add r4, r4, #1 _0223FBCA: mov r0, #0xb5 lsl r0, r0, #6 add r2, r5, r0 ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 mov r1, #0xc1 lsl r1, r1, #6 ldr r1, [r5, r1] add r0, r2, r0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl MOD11_022461AC add r6, r0, #0 ldr r1, [r5, #0x64] mov r0, #0x75 lsl r0, r0, #2 add r0, r5, r0 lsl r7, r1, #6 ldr r3, [r0, r7] lsl r2, r3, #0x1e lsr r2, r2, #0x1f bne _0223FC42 lsl r2, r3, #0x1f lsr r2, r2, #0x1f bne _0223FC42 mov r1, #2 orr r1, r3 str r1, [r0, r7] ldr r0, _0223FCA0 ; =0x00002D6C ldr r1, [r5, #0x64] add r2, r5, r0 mov r0, #0xc0 mul r0, r1 add r1, r2, r0 ldrb r0, [r1, r6] cmp r0, #0 beq _0223FC34 cmp r6, #4 bge _0223FC34 cmp r0, r4 ble _0223FC24 sub r0, r0, r4 b _0223FC26 _0223FC24: mov r0, #0 _0223FC26: strb r0, [r1, r6] ldr r0, [sp, #4] ldr r2, [r5, #0x64] add r1, r5, #0 bl MOD11_02245190 b _0223FC90 _0223FC34: ldr r1, _0223FCA4 ; =0x0000216C mov r0, #2 ldr r2, [r5, r1] lsl r0, r0, #8 orr r0, r2 str r0, [r5, r1] b _0223FC90 _0223FC42: mov r2, #0xc0 add r0, r1, #0 mul r0, r2 add r0, r5, r0 ldr r3, _0223FCA0 ; =0x00002D6C add r4, r0, r6 ldrb r4, [r4, r3] cmp r4, #0 bne _0223FC90 ldr r4, _0223FCA8 ; =0x0000213C mov r7, #2 ldr r4, [r5, r4] lsl r7, r7, #8 tst r4, r7 bne _0223FC90 add r3, #0x44 ldr r0, [r0, r3] lsl r3, r7, #3 tst r3, r0 bne _0223FC90 lsl r2, r2, #4 tst r0, r2 bne _0223FC90 add r0, r1, #0 bl FUN_0206A92C add r1, r7, #0 sub r1, #0x80 ldr r2, [r5, r1] lsl r0, r0, #8 tst r0, r2 bne _0223FC90 cmp r6, #4 bge _0223FC90 ldr r0, _0223FCA4 ; =0x0000216C add r1, #0x80 ldr r2, [r5, r0] orr r1, r2 str r1, [r5, r0] _0223FC90: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0223FC98: .word 0x0000011E _0223FC9C: .word 0x000003E6 _0223FCA0: .word 0x00002D6C _0223FCA4: .word 0x0000216C _0223FCA8: .word 0x0000213C thumb_func_start MOD11_0223FCAC MOD11_0223FCAC: ; 0x0223FCAC push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x6c] mov r4, #0 cmp r0, #0xff bne _0223FCC6 ldr r1, _0223FD10 ; =0x00003044 add r0, r5, #0 ldr r1, [r5, r1] bl MOD11_02246AF8 cmp r0, #0 beq _0223FCF8 _0223FCC6: ldr r0, [r5, #0x6c] cmp r0, #0xff bne _0223FD0C ldr r1, _0223FD10 ; =0x00003044 add r0, r5, #0 ldr r1, [r5, r1] bl MOD11_02246AF8 cmp r0, #1 bne _0223FD0C ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _0223FD14 ; =0x00002DB0 ldr r0, [r1, r0] mov r1, #1 lsl r1, r1, #0xc tst r0, r1 bne _0223FCF8 ldr r0, _0223FD18 ; =0x0000213C ldr r2, [r5, r0] lsr r0, r1, #3 tst r0, r2 beq _0223FD0C _0223FCF8: ldr r2, _0223FD1C ; =0x00000119 add r0, r5, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x26 str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] mov r4, #1 _0223FD0C: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _0223FD10: .word 0x00003044 _0223FD14: .word 0x00002DB0 _0223FD18: .word 0x0000213C _0223FD1C: .word 0x00000119 thumb_func_start MOD11_0223FD20 MOD11_0223FD20: ; 0x0223FD20 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 ldr r1, _0223FDA0 ; =0x00003044 ldr r2, [r4, r1] lsl r1, r2, #4 add r5, r4, r1 ldr r1, _0223FDA4 ; =0x000003E6 ldrh r3, [r5, r1] cmp r3, #0x10 beq _0223FD54 cmp r3, #0x20 beq _0223FD54 sub r1, r1, #5 ldrb r1, [r5, r1] cmp r1, #0 beq _0223FD54 ldr r1, _0223FDA8 ; =0x0000213C ldr r3, [r4, r1] mov r1, #2 lsl r1, r1, #0xe tst r1, r3 bne _0223FD54 mov r1, #0x20 tst r1, r3 beq _0223FD58 _0223FD54: cmp r2, #0x56 bne _0223FD98 _0223FD58: ldr r1, [r4, #0x64] ldr r3, _0223FDAC ; =0x00002144 str r1, [sp] ldr r1, [r4, #0x6c] str r1, [sp, #4] ldr r1, [r4, r3] str r1, [sp, #8] add r1, r3, #0 add r1, #0x28 add r1, r4, r1 str r1, [sp, #0xc] add r3, #0x1c ldr r3, [r4, r3] add r1, r4, #0 bl MOD11_02246274 ldr r1, _0223FDAC ; =0x00002144 str r0, [r4, r1] add r1, #0x28 ldr r1, [r4, r1] mov r0, #8 tst r0, r1 beq _0223FD98 mov r0, #0xd1 lsl r0, r0, #2 add r3, r4, r0 ldr r0, [r4, #0x64] lsl r2, r0, #2 ldr r1, [r3, r2] mov r0, #2 orr r0, r1 str r0, [r3, r2] _0223FD98: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _0223FDA0: .word 0x00003044 _0223FDA4: .word 0x000003E6 _0223FDA8: .word 0x0000213C _0223FDAC: .word 0x00002144 thumb_func_start MOD11_0223FDB0 MOD11_0223FDB0: ; 0x0223FDB0 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r0, [sp, #0x18] add r4, r1, #0 ldr r0, _022400D8 ; =0x00003044 add r5, r4, #0 ldr r0, [r4, r0] mov r7, #0 lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022400DC ; =0x000003DE add r5, #0x50 ldrh r0, [r1, r0] str r0, [sp, #0x1c] mov r0, #0xd1 lsl r0, r0, #2 add r6, r4, r0 mov r0, #7 str r0, [sp, #0x20] mov r0, #8 str r0, [sp, #0x24] mov r0, #1 str r0, [sp, #0x28] _0223FDDE: ldr r0, [r4, #0x50] cmp r0, #0x10 bls _0223FDE6 b _0224043C _0223FDE6: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223FDF2: ; jump table .short _0223FE14 - _0223FDF2 - 2 ; case 0 .short _0223FE48 - _0223FDF2 - 2 ; case 1 .short _0223FF42 - _0223FDF2 - 2 ; case 2 .short _0223FFA6 - _0223FDF2 - 2 ; case 3 .short _0223FFCE - _0223FDF2 - 2 ; case 4 .short _0224000A - _0223FDF2 - 2 ; case 5 .short _02240050 - _0223FDF2 - 2 ; case 6 .short _0224008C - _0223FDF2 - 2 ; case 7 .short _022400D4 - _0223FDF2 - 2 ; case 8 .short _02240138 - _0223FDF2 - 2 ; case 9 .short _02240174 - _0223FDF2 - 2 ; case 10 .short _022401B0 - _0223FDF2 - 2 ; case 11 .short _0224028C - _0223FDF2 - 2 ; case 12 .short _022402E8 - _0223FDF2 - 2 ; case 13 .short _0224034E - _0223FDF2 - 2 ; case 14 .short _022403FE - _0223FDF2 - 2 ; case 15 .short _02240436 - _0223FDF2 - 2 ; case 16 _0223FE14: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _022400E0 ; =0x00002DB0 ldr r1, [r2, r0] ldr r0, _022400E4 ; =0xFDFFFFFF and r1, r0 ldr r0, _022400E0 ; =0x00002DB0 str r1, [r2, r0] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r2, r0] ldr r0, _022400E8 ; =0xFFFFBFFF and r1, r0 mov r0, #0xb7 lsl r0, r0, #6 str r1, [r2, r0] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0223FE48: ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _022400EC ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0223FF3A mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0xf lsl r0, r0, #8 tst r0, r1 beq _0223FE92 add r0, r4, #0 add r1, r2, #0 bl MOD11_02246D1C cmp r0, #0x2b beq _0223FE92 mov r0, #0x46 ldr r1, [r4, #0x64] lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x13 bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0223FF3A _0223FE92: ldr r0, _022400D8 ; =0x00003044 ldr r0, [r4, r0] cmp r0, #0xd6 beq _0223FEA8 mov r0, #0xc1 lsl r0, r0, #6 ldr r0, [r4, r0] cmp r0, #0xd6 bne _0223FEA8 mov r0, #1 b _0223FEAA _0223FEA8: mov r0, #0 _0223FEAA: cmp r0, #0 bne _0223FF3A ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x30 bne _0223FEBE mov r3, #2 b _0223FEC0 _0223FEBE: mov r3, #1 _0223FEC0: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _022400EC ; =0x00002DAC ldr r1, [r2, r0] mov r0, #7 and r0, r1 cmp r0, r3 ldr r0, _022400EC ; =0x00002DAC bhs _0223FEDE ldr r1, [r2, r0] ldr r0, [sp, #0x20] bic r1, r0 b _0223FEE2 _0223FEDE: ldr r0, [r2, r0] sub r1, r0, r3 _0223FEE2: ldr r0, _022400EC ; =0x00002DAC str r1, [r2, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _022400EC ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0223FF20 ldr r0, _022400D8 ; =0x00003044 ldr r0, [r4, r0] cmp r0, #0xad beq _0223FF3A mov r0, #0xc1 lsl r0, r0, #6 ldr r0, [r4, r0] cmp r0, #0xd6 beq _0223FF3A add r0, r4, #0 mov r1, #1 mov r2, #0x14 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #2 b _0223FF3A _0223FF20: mov r0, #0x46 lsl r0, r0, #2 str r2, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x13 bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223FF3A: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0223FF42: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _022400EC ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0223FF9E bl FUN_0201B9EC mov r1, #5 bl _s32_div_f cmp r1, #0 beq _0223FF82 ldr r0, [sp, #0x1c] cmp r0, #0x7d beq _0223FF9E cmp r0, #0xfd beq _0223FF9E add r0, r4, #0 mov r1, #1 mov r2, #0x1c bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 b _0223FF9E _0223FF82: mov r0, #0x46 ldr r1, [r4, #0x64] lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x1d bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0223FF9E: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0223FFA6: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02247190 cmp r0, #1 bne _0223FFC6 add r0, r4, #0 mov r1, #1 mov r2, #0xbf bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _0223FFC6: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0223FFCE: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _022400E0 ; =0x00002DB0 ldr r1, [r2, r0] mov r0, #1 lsl r0, r0, #0x16 tst r0, r1 beq _02240002 ldr r0, _022400E0 ; =0x00002DB0 ldr r1, [r2, r0] ldr r0, _022400F0 ; =0xFFBFFFFF and r1, r0 ldr r0, _022400E0 ; =0x00002DB0 str r1, [r2, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x41 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _02240002: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0224000A: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _022400E0 ; =0x00002DB0 ldr r1, [r2, r0] mov r0, #8 tst r0, r1 beq _02240048 ldr r0, _022400E0 ; =0x00002DB0 ldr r1, [sp, #0x24] ldr r0, [r2, r0] bic r0, r1 ldr r1, _022400E0 ; =0x00002DB0 str r0, [r2, r1] ldr r0, [r4, #0x64] mov r1, #0x40 lsl r0, r0, #2 ldr r2, [r6, r0] orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xf bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _02240048: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _02240050: mov r0, #0xc1 lsl r0, r0, #6 ldr r3, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _022400F4 ; =0x00002DE8 ldrh r0, [r1, r0] cmp r3, r0 bne _02240084 lsl r0, r2, #2 ldr r2, [r6, r0] mov r1, #0x10 orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x47 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _02240084: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0224008C: ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _022400F8 ; =0x00002DC8 ldr r0, [r1, r0] lsl r0, r0, #0x15 lsr r0, r0, #0x1d beq _022400CC ldr r0, _022400D8 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022400FC ; =0x000003E1 ldrb r0, [r1, r0] cmp r0, #0 bne _022400CC lsl r0, r2, #2 ldr r2, [r6, r0] mov r1, #0x20 orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x85 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _022400CC: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _022400D4: ldr r3, _022400D8 ; =0x00003044 b _02240100 .align 2, 0 _022400D8: .word 0x00003044 _022400DC: .word 0x000003DE _022400E0: .word 0x00002DB0 _022400E4: .word 0xFDFFFFFF _022400E8: .word 0xFFFFBFFF _022400EC: .word 0x00002DAC _022400F0: .word 0xFFBFFFFF _022400F4: .word 0x00002DE8 _022400F8: .word 0x00002DC8 _022400FC: .word 0x000003E1 _02240100: ldr r0, [sp, #0x18] ldr r2, [r4, #0x64] ldr r3, [r4, r3] add r1, r4, #0 bl MOD11_022471C4 cmp r0, #0 beq _02240130 ldr r0, [r4, #0x64] mov r1, #4 lsl r0, r0, #2 ldr r2, [r6, r0] orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x90 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _02240130: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _02240138: ldr r3, _0224047C ; =0x00003044 ldr r0, [sp, #0x18] ldr r2, [r4, #0x64] ldr r3, [r4, r3] add r1, r4, #0 bl MOD11_02247314 cmp r0, #0 beq _0224016C ldr r0, [r4, #0x64] mov r1, #1 lsl r0, r0, #2 ldr r2, [r6, r0] lsl r1, r1, #8 orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x9d bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _0224016C: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _02240174: ldr r3, _0224047C ; =0x00003044 ldr r0, [sp, #0x18] ldr r2, [r4, #0x64] ldr r3, [r4, r3] add r1, r4, #0 bl MOD11_02247348 cmp r0, #0 beq _022401A8 ldr r0, [r4, #0x64] mov r1, #2 lsl r0, r0, #2 ldr r2, [r6, r0] lsl r1, r1, #8 orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xae bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _022401A8: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _022401B0: ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _02240480 ; =0x00002DB0 ldr r1, [r2, r0] mov r0, #7 tst r0, r1 bne _022401CA b _0224043C _022401CA: ldr r0, _02240480 ; =0x00002DB0 ldr r0, [r2, r0] sub r1, r0, #1 ldr r0, _02240480 ; =0x00002DB0 str r1, [r2, r0] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02240480 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _02240276 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02240204 add r0, r4, #0 mov r2, #0x26 bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0224043C _02240204: ldr r0, [r4, #0x64] mov r1, #0x80 lsl r0, r0, #2 ldr r2, [r6, r0] mov r3, #0 orr r1, r2 str r1, [r6, r0] ldr r1, [r4, #0x64] mov r0, #0x46 str r1, [r4, #0x6c] lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r4, #0x64] mov r1, #0 str r1, [sp] mov r1, #0x28 str r1, [sp, #4] mov r1, #0 lsl r0, r0, #0x18 str r1, [sp, #8] lsr r0, r0, #0x18 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x18] add r1, r4, #0 mov r2, #0xa5 bl MOD11_0224B310 ldr r1, _02240484 ; =0x0000215C str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0 bl MOD11_0224BF10 ldr r1, _02240484 ; =0x0000215C str r0, [r4, r1] add r0, r1, #0 ldr r1, [r4, r0] mov r0, #0 add r2, r1, #0 mvn r0, r0 mul r2, r0 ldr r0, _02240484 ; =0x0000215C mov r1, #1 str r2, [r4, r0] add r0, r4, #0 mov r2, #0x27 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x21 str r0, [r4, #0xc] mov r7, #1 b _0224043C _02240276: add r0, r4, #0 mov r1, #1 mov r2, #0x28 bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0224043C _0224028C: ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02240488 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _022402E0 add r0, r4, #0 add r1, r2, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _022402E0 bl FUN_0201B9EC lsr r1, r0, #0x1f lsl r2, r0, #0x1e sub r2, r2, r1 mov r0, #0x1e ror r2, r0 add r0, r1, r2 bne _022402E0 ldr r0, [r4, #0x64] ldr r2, [sp, #0x28] lsl r1, r0, #2 ldr r0, [r6, r1] bic r0, r2 mov r2, #1 orr r0, r2 str r0, [r6, r1] add r1, r2, #0 add r0, r4, #0 mov r2, #0x20 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _022402E0: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _022402E8: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02240480 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #0xf lsl r0, r0, #0x10 and r0, r1 beq _02240346 lsr r0, r0, #0x10 bl FUN_0206A94C mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02240326 add r0, r4, #0 mov r2, #0x6b bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _02240346 _02240326: ldr r0, [r4, #0x64] mov r1, #8 lsl r0, r0, #2 ldr r2, [r6, r0] orr r1, r2 str r1, [r6, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x6c bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] mov r7, #1 _02240346: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _0224034E: ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _02240480 ; =0x00002DB0 ldr r1, [r2, r0] mov r0, #3 lsl r0, r0, #8 tst r0, r1 beq _0224043C ldr r0, _02240480 ; =0x00002DB0 ldr r1, [r2, r0] mov r0, #1 lsl r0, r0, #8 sub r1, r1, r0 ldr r0, _02240480 ; =0x00002DB0 str r1, [r2, r0] ldr r0, [r4, #0x64] mov r1, #0xc0 mul r1, r0 add r2, r4, r1 ldr r1, _02240480 ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #3 lsl r1, r1, #8 tst r1, r2 bne _022403E8 lsl r0, r0, #2 add r1, r4, r0 ldr r0, _0224048C ; =0x000030E4 ldr r0, [r1, r0] cmp r0, #0 beq _022403E8 lsl r1, r0, #1 ldr r0, _02240490 ; =0x00002144 str r1, [r4, r0] ldr r3, [r4, #0x64] lsl r0, r3, #2 add r1, r4, r0 ldr r0, _02240494 ; =0x000030F4 ldr r2, [r1, r0] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02240498 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022403B8 str r2, [r4, #0x6c] b _022403E8 _022403B8: ldr r0, [sp, #0x18] add r1, r4, #0 add r2, r3, #0 bl MOD11_022482A4 mov r1, #0xc0 mul r1, r0 str r0, [r4, #0x6c] ldr r0, _02240498 ; =0x00002D8C add r1, r4, r1 ldr r0, [r1, r0] cmp r0, #0 bne _022403E8 ldr r2, _0224049C ; =0x0000011A add r0, r4, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x26 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r7, #2 b _0224043C _022403E8: add r0, r4, #0 mov r1, #1 mov r2, #0x24 bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] b _0224043C _022403FE: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02240488 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0224042E ldr r0, [sp, #0x1c] cmp r0, #0x7d beq _0224041A cmp r0, #0xfd bne _0224042E _0224041A: add r0, r4, #0 mov r1, #1 mov r2, #0x1e bl MOD11_022431DC ldr r0, [r4, #8] mov r7, #2 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0224042E: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _0224043C _02240436: mov r0, #0 str r0, [r4, #0x50] mov r7, #3 _0224043C: cmp r7, #0 bne _02240442 b _0223FDDE _02240442: ldr r0, [sp, #0x18] ldr r2, [r4, #0x64] add r1, r4, #0 bl MOD11_02245190 cmp r7, #1 bne _0224046A ldr r1, _022404A0 ; =0x0000213C mov r0, #2 ldr r2, [r4, r1] orr r0, r2 str r0, [r4, r1] add r0, r1, #0 add r0, #0x30 ldr r2, [r4, r0] mov r0, #2 lsl r0, r0, #0x1e orr r0, r2 add r1, #0x30 str r0, [r4, r1] _0224046A: cmp r7, #3 beq _02240474 add sp, #0x2c mov r0, #1 pop {r4, r5, r6, r7, pc} _02240474: mov r0, #0 add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _0224047C: .word 0x00003044 _02240480: .word 0x00002DB0 _02240484: .word 0x0000215C _02240488: .word 0x00002DAC _0224048C: .word 0x000030E4 _02240490: .word 0x00002144 _02240494: .word 0x000030F4 _02240498: .word 0x00002D8C _0224049C: .word 0x0000011A _022404A0: .word 0x0000213C thumb_func_start MOD11_022404A4 MOD11_022404A4: ; 0x022404A4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r5, #0 ldr r7, _02240514 ; =0x0000216C mov r4, #0 add r6, #0x54 _022404B0: ldr r0, [r5, #0x54] cmp r0, #0 beq _022404BC cmp r0, #1 beq _022404FC b _02240502 _022404BC: ldr r1, [r5, #0x64] ldr r2, [r5, #0x6c] add r0, r5, #0 bl MOD11_02247418 add r2, r0, #0 beq _022404D4 ldr r0, _02240514 ; =0x0000216C ldr r1, [r5, r0] ldr r0, _02240518 ; =0x001FD849 tst r0, r1 beq _022404D8 _022404D4: cmp r2, #0xb5 bne _022404F4 _022404D8: add r0, r5, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r5, #8] mov r4, #1 str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] mov r0, #2 ldr r1, [r5, r7] lsl r0, r0, #0x1e orr r0, r1 str r0, [r5, r7] _022404F4: ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _02240502 _022404FC: mov r0, #0 str r0, [r5, #0x54] mov r4, #2 _02240502: cmp r4, #0 beq _022404B0 cmp r4, #2 beq _0224050E mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0224050E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02240514: .word 0x0000216C _02240518: .word 0x001FD849 thumb_func_start MOD11_0224051C MOD11_0224051C: ; 0x0224051C push {r4, lr} add r4, r1, #0 ldr r2, _02240538 ; =0x00000116 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 pop {r4, pc} nop _02240538: .word 0x00000116 thumb_func_start MOD11_0224053C MOD11_0224053C: ; 0x0224053C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #4] add r5, r1, #0 add r6, r2, #0 str r3, [sp, #8] bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 beq _0224055A add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0224055A: add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C ldr r0, [sp, #0x38] ldr r2, _02240868 ; =0x00002D5E lsl r0, r0, #4 str r0, [sp, #0x10] add r1, r5, r0 mov r0, #0x3e lsl r0, r0, #4 ldrb r0, [r1, r0] add r1, r6, #0 str r0, [sp, #0x18] mov r0, #0xc0 mul r1, r0 str r1, [sp, #0xc] add r1, r5, r1 ldrsb r1, [r1, r2] sub r1, r1, #6 lsl r1, r1, #0x18 asr r7, r1, #0x18 ldr r1, [sp, #8] mul r0, r1 str r0, [sp, #0x14] add r1, r5, r0 add r0, r2, #1 ldrsb r1, [r1, r0] mov r0, #6 sub r0, r0, r1 lsl r0, r0, #0x18 asr r4, r0, #0x18 add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x56 bne _022405AA lsl r0, r7, #0x19 asr r7, r0, #0x18 _022405AA: ldr r2, [sp, #8] add r0, r5, #0 add r1, r6, #0 mov r3, #0x56 bl MOD11_02246D84 cmp r0, #1 bne _022405BE lsl r0, r4, #0x19 asr r4, r0, #0x18 _022405BE: ldr r2, [sp, #8] add r0, r5, #0 add r1, r6, #0 mov r3, #0x6d bl MOD11_02246D84 cmp r0, #1 bne _022405D0 mov r7, #0 _022405D0: add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x6d bne _022405DE mov r4, #0 _022405DE: ldr r0, _0224086C ; =0x00002DB0 ldr r1, [sp, #0x14] add r2, r5, r0 str r2, [sp, #0x1c] ldr r1, [r2, r1] mov r2, #2 lsl r2, r2, #0x1c tst r1, r2 bne _022405FE ldr r1, [sp, #0x14] add r0, #0x10 add r1, r5, r1 ldr r1, [r1, r0] lsr r0, r2, #7 tst r0, r1 beq _02240604 _022405FE: cmp r4, #0 bge _02240604 mov r4, #0 _02240604: add r0, r4, #6 add r0, r0, r7 lsl r0, r0, #0x18 asr r7, r0, #0x18 bpl _02240610 mov r7, #0 _02240610: cmp r7, #0xc ble _02240616 mov r7, #0xc _02240616: ldr r0, _02240870 ; =0x000003E3 add r1, r5, r0 ldr r0, [sp, #0x10] ldrb r4, [r1, r0] cmp r4, #0 bne _02240628 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02240628: ldr r0, _02240874 ; =0x0000213C mov r1, #0x20 ldr r0, [r5, r0] add r2, r0, #0 tst r2, r1 beq _0224063A add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0224063A: lsl r1, r1, #5 tst r0, r1 beq _02240646 add sp, #0x20 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02240646: mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _02240688 mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _02240688 mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0x30 tst r0, r1 beq _02240688 ldr r0, [sp, #0x10] add r1, r5, r0 ldr r0, _02240878 ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x98 bne _02240688 mov r4, #0x32 _02240688: ldr r0, _0224087C ; =0x0225E178 lsl r1, r7, #1 ldrb r0, [r0, r1] ldr r2, _02240880 ; =0x0225E179 ldrb r1, [r2, r1] mul r0, r4 bl _u32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0xe bne _022406B6 mov r0, #0x82 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _022406B6: mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224074E mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224074E mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0xc tst r0, r1 beq _02240708 ldr r2, [sp, #8] add r0, r5, #0 add r1, r6, #0 mov r3, #8 bl MOD11_02246D84 cmp r0, #1 bne _02240708 mov r0, #0x50 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02240708: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0xc0 tst r0, r1 beq _02240732 ldr r2, [sp, #8] add r0, r5, #0 add r1, r6, #0 mov r3, #0x51 bl MOD11_02246D84 cmp r0, #1 bne _02240732 mov r0, #0x50 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02240732: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0xe tst r0, r1 beq _0224074E mov r0, #6 mul r0, r4 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224074E: add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x37 bne _0224076E ldr r0, [sp, #0x18] cmp r0, #0 bne _0224076E mov r0, #0x50 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224076E: ldr r2, [sp, #8] add r0, r5, #0 add r1, r6, #0 mov r3, #0x4d bl MOD11_02246D84 cmp r0, #1 bne _02240798 ldr r1, [sp, #0x1c] ldr r0, [sp, #0x14] ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _02240798 mov r0, #0x32 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02240798: ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_02249D90 add r7, r0, #0 ldr r1, [sp, #8] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 cmp r7, #0x2f bne _022407BE mov r1, #0x64 sub r0, r1, r0 mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _022407BE: add r0, r5, #0 add r1, r6, #0 bl MOD11_02249D90 add r7, r0, #0 add r0, r5, #0 add r1, r6, #0 mov r2, #0 bl MOD11_02249DA4 add r6, r0, #0 cmp r7, #0x5c bne _022407E6 add r0, #0x64 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _022407E6: cmp r7, #0x67 bne _02240806 ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_02249B7C cmp r0, #1 bne _02240806 add r6, #0x64 add r0, r4, #0 mul r0, r6 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02240806: ldr r0, _02240884 ; =0x00002DCC ldr r1, [sp, #0xc] add r0, r5, r0 ldr r2, [r0, r1] lsl r1, r2, #4 lsr r1, r1, #0x1f beq _0224082A ldr r1, _02240888 ; =0xF7FFFFFF and r2, r1 ldr r1, [sp, #0xc] str r2, [r0, r1] mov r0, #0x78 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224082A: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 beq _02240846 mov r0, #0xa mul r0, r4 mov r1, #6 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02240846: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f add r0, r1, #1 cmp r0, r4 ble _02240860 ldr r1, _0224088C ; =0x0000216C mov r0, #1 ldr r2, [r5, r1] orr r0, r2 str r0, [r5, r1] _02240860: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _02240868: .word 0x00002D5E _0224086C: .word 0x00002DB0 _02240870: .word 0x000003E3 _02240874: .word 0x0000213C _02240878: .word 0x000003DE _0224087C: .word 0x0225E178 _02240880: .word 0x0225E179 _02240884: .word 0x00002DCC _02240888: .word 0xF7FFFFFF _0224088C: .word 0x0000216C thumb_func_start MOD11_02240890 MOD11_02240890: ; 0x02240890 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp, #4] add r5, r1, #0 ldr r0, _02240A54 ; =0x0000213C add r6, r3, #0 ldr r3, [r5, r0] mov r1, #0x20 add r7, r2, #0 ldr r4, [sp, #0x20] tst r1, r3 beq _022408AE add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022408AE: lsl r1, r6, #6 add r3, r5, r1 mov r1, #0x75 lsl r1, r1, #2 ldr r1, [r3, r1] lsl r1, r1, #0x1d lsr r1, r1, #0x1f beq _0224091C lsl r1, r4, #4 add r3, r5, r1 ldr r1, _02240A58 ; =0x000003E9 ldrb r3, [r3, r1] mov r1, #2 tst r1, r3 beq _0224091C add r0, #0x30 ldr r1, [r5, r0] ldr r0, _02240A5C ; =0x801FDA49 tst r0, r1 bne _0224091C cmp r4, #0xae bne _022408E8 lsl r1, r4, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 bl MOD11_02246C20 cmp r0, #1 bne _0224091C _022408E8: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246AF8 cmp r0, #0 beq _02240900 ldr r0, _02240A54 ; =0x0000213C ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #8 tst r0, r1 beq _0224091C _02240900: ldr r0, [sp, #4] add r1, r5, #0 add r2, r7, #0 bl MOD11_022451F0 ldr r1, _02240A60 ; =0x0000216C mov r0, #2 ldr r2, [r5, r1] lsl r0, r0, #0xe orr r0, r2 str r0, [r5, r1] add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0224091C: ldr r0, _02240A54 ; =0x0000213C ldr r1, [r5, r0] mov r0, #1 lsl r0, r0, #0xa tst r0, r1 bne _0224096E mov r0, #0xc0 mul r0, r6 add r3, r5, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r2, [r3, r0] mov r1, #0x18 tst r1, r2 beq _02240946 add r0, #0xc ldr r0, [r3, r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e cmp r7, r0 beq _0224095E _02240946: ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x63 beq _0224095E ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x63 bne _0224096E _0224095E: ldr r1, _02240A60 ; =0x0000216C mov r0, #1 ldr r2, [r5, r1] add sp, #8 bic r2, r0 str r2, [r5, r1] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0224096E: mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022409DC mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022409DC mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #3 tst r0, r1 beq _022409B8 lsl r0, r4, #4 add r1, r5, r0 ldr r0, _02240A64 ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x98 bne _022409B8 ldr r1, _02240A60 ; =0x0000216C mov r0, #1 ldr r2, [r5, r1] bic r2, r0 str r2, [r5, r1] _022409B8: mov r0, #6 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #0xc0 tst r0, r1 beq _022409DC lsl r0, r4, #4 add r2, r5, r0 ldr r0, _02240A64 ; =0x000003DE add r1, #0x44 ldrh r0, [r2, r0] cmp r0, r1 bne _022409DC ldr r1, _02240A60 ; =0x0000216C mov r0, #1 ldr r2, [r5, r1] bic r2, r0 str r2, [r5, r1] _022409DC: ldr r1, _02240A60 ; =0x0000216C mov r2, #1 ldr r0, [r5, r1] lsl r2, r2, #0xa tst r0, r2 bne _02240A4C ldr r0, _02240A68 ; =0x00003044 sub r2, #0x1a ldr r0, [r5, r0] lsl r0, r0, #4 add r0, r5, r0 ldrh r0, [r0, r2] cmp r0, #0x80 beq _02240A4C sub r1, #0x30 ldr r0, [r5, r1] mov r1, #4 tst r1, r0 bne _02240A14 mov r1, #0xc0 mul r1, r6 add r2, r5, r1 mov r1, #0xb7 lsl r1, r1, #6 ldr r2, [r2, r1] mov r1, #0x40 tst r1, r2 bne _02240A40 _02240A14: mov r1, #0xc0 mul r1, r6 add r2, r5, r1 mov r1, #0xb7 lsl r1, r1, #6 ldr r1, [r2, r1] mov r2, #2 lsl r2, r2, #0x1c tst r2, r1 bne _02240A40 mov r2, #8 tst r2, r0 bne _02240A34 mov r2, #0x80 tst r2, r1 bne _02240A40 _02240A34: mov r2, #0x10 tst r0, r2 bne _02240A4C lsl r0, r2, #0xe tst r0, r1 beq _02240A4C _02240A40: ldr r1, _02240A60 ; =0x0000216C mov r0, #1 ldr r2, [r5, r1] lsl r0, r0, #0x10 orr r0, r2 str r0, [r5, r1] _02240A4C: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02240A54: .word 0x0000213C _02240A58: .word 0x000003E9 _02240A5C: .word 0x801FDA49 _02240A60: .word 0x0000216C _02240A64: .word 0x000003DE _02240A68: .word 0x00003044 thumb_func_start MOD11_02240A6C MOD11_02240A6C: ; 0x02240A6C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 bl MOD11_0222FF84 add r2, r0, #0 ldr r0, [r4, #0x6c] cmp r0, #0xff bne _02240A80 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _02240A80: ldr r6, _02240BBC ; =0x0000216C ldr r1, _02240BC0 ; =0x801FDA49 ldr r3, [r4, r6] add r7, r3, #0 and r7, r1 bne _02240B12 mov r1, #0x75 lsl r1, r1, #2 lsl r0, r0, #6 add r5, r4, r1 ldr r3, [r5, r0] mov ip, r0 lsl r0, r3, #0x1b lsr r0, r0, #0x1f beq _02240B12 ldr r0, _02240BC4 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _02240BC8 ; =0x000003E9 ldrb r0, [r1, r0] mov r1, #4 tst r0, r1 beq _02240B12 mov r0, #0x10 bic r3, r0 mov r0, ip str r3, [r5, r0] ldr r2, [r4, #0x64] mov r0, #0 lsl r2, r2, #1 add r3, r4, r2 ldr r2, _02240BC4 ; =0x00003044 add r2, #0x18 strh r0, [r3, r2] ldr r2, [r4, #0x64] ldr r0, _02240BC4 ; =0x00003044 lsl r2, r2, #1 sub r0, r0, #4 add r3, r4, r2 ldr r2, _02240BC4 ; =0x00003044 ldr r0, [r4, r0] add r2, #0x38 strh r0, [r3, r2] ldr r0, _02240BC4 ; =0x00003044 sub r0, r0, #4 ldr r2, [r4, r0] ldr r0, _02240BC4 ; =0x00003044 add r0, r0, #4 str r2, [r4, r0] add r0, r6, #0 sub r0, #0x30 ldr r2, [r4, r0] lsl r0, r1, #0x12 orr r0, r2 sub r6, #0x30 str r0, [r4, r6] add r0, r4, #0 mov r1, #1 mov r2, #0x8b bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r1, [r4, #0x6c] ldr r2, [r4, #0x64] add r0, r4, #0 bl MOD11_0224C438 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _02240B12: mov r1, #0 cmp r2, #0 ble _02240BB8 mov r0, #0x75 lsl r0, r0, #2 add r0, r4, r0 _02240B1E: ldr r3, _02240BCC ; =0x000021EC add r5, r4, r1 ldrb r5, [r5, r3] cmp r7, #0 bne _02240BB2 lsl r3, r5, #6 str r3, [sp] ldr r3, [r0, r3] lsl r3, r3, #0x1a lsr r3, r3, #0x1f beq _02240BB2 ldr r3, _02240BC4 ; =0x00003044 ldr r3, [r4, r3] lsl r3, r3, #4 add r6, r4, r3 ldr r3, _02240BC8 ; =0x000003E9 ldrb r6, [r6, r3] mov r3, #8 tst r3, r6 beq _02240BB2 mov r1, #0x46 lsl r1, r1, #2 str r5, [r4, r1] ldr r1, [sp] mov r7, #1 ldr r2, [r0, r1] mov r1, #0x20 bic r2, r1 ldr r1, [sp] lsl r7, r7, #0x14 str r2, [r0, r1] ldr r2, _02240BD0 ; =0x0000213C ldr r0, [r4, r2] tst r0, r7 bne _02240B92 ldr r1, [r4, #0x64] mov r0, #0 lsl r1, r1, #1 add r3, r4, r1 ldr r1, _02240BD4 ; =0x0000305C strh r0, [r3, r1] add r0, r1, #0 sub r0, #0x1c ldr r6, [r4, r0] ldr r0, [r4, #0x64] lsl r0, r0, #1 add r3, r4, r0 add r0, r1, #0 add r0, #0x20 strh r6, [r3, r0] add r0, r1, #0 sub r0, #0x1c ldr r0, [r4, r0] sub r1, #0x14 str r0, [r4, r1] ldr r0, [r4, r2] orr r0, r7 str r0, [r4, r2] _02240B92: add r0, r4, #0 mov r1, #1 mov r2, #0x92 bl MOD11_022431DC ldr r0, [r4, #8] add r1, r5, #0 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] ldr r2, [r4, #0x64] add r0, r4, #0 bl MOD11_0224C438 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _02240BB2: add r1, r1, #1 cmp r1, r2 blt _02240B1E _02240BB8: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02240BBC: .word 0x0000216C _02240BC0: .word 0x801FDA49 _02240BC4: .word 0x00003044 _02240BC8: .word 0x000003E9 _02240BCC: .word 0x000021EC _02240BD0: .word 0x0000213C _02240BD4: .word 0x0000305C thumb_func_start MOD11_02240BD8 MOD11_02240BD8: ; 0x02240BD8 push {r4, lr} add r4, r1, #0 bl MOD11_02232264 cmp r0, #1 bne _02240BF0 add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] ldr r0, [r4, #0xc] str r0, [r4, #8] _02240BF0: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02240BF4 MOD11_02240BF4: ; 0x02240BF4 push {r3, r4, r5, lr} add r4, r1, #0 ldr r2, [r4, #0x48] add r5, r0, #0 cmp r2, #6 bhi _02240CEA add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02240C0C: ; jump table .short _02240C1A - _02240C0C - 2 ; case 0 .short _02240C26 - _02240C0C - 2 ; case 1 .short _02240C3E - _02240C0C - 2 ; case 2 .short _02240C8A - _02240C0C - 2 ; case 3 .short _02240CA6 - _02240C0C - 2 ; case 4 .short _02240CB8 - _02240C0C - 2 ; case 5 .short _02240CD4 - _02240C0C - 2 ; case 6 _02240C1A: bl MOD11_0224051C ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] pop {r3, r4, r5, pc} _02240C26: ldr r2, _02240D30 ; =0x00002184 ldr r3, [r4, r2] mov r2, #4 tst r2, r3 bne _02240C38 bl MOD11_0223FDB0 cmp r0, #1 beq _02240D2C _02240C38: ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] _02240C3E: ldr r0, _02240D30 ; =0x00002184 ldr r1, [r4, r0] mov r0, #1 tst r0, r1 bne _02240C84 add r0, r5, #0 add r1, r4, #0 add r2, sp, #0 bl MOD11_0223F84C cmp r0, #0 beq _02240C84 cmp r0, #1 beq _02240C64 cmp r0, #2 beq _02240C6A cmp r0, #3 beq _02240C70 b _02240C74 _02240C64: mov r0, #0x26 str r0, [r4, #0xc] b _02240C74 _02240C6A: ldr r0, [r4, #8] str r0, [r4, #0xc] b _02240C74 _02240C70: mov r0, #0x21 str r0, [r4, #0xc] _02240C74: mov r0, #0x15 str r0, [r4, #8] ldr r2, [sp] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC pop {r3, r4, r5, pc} _02240C84: ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] _02240C8A: ldr r0, _02240D30 ; =0x00002184 ldr r1, [r4, r0] mov r0, #8 tst r0, r1 bne _02240CA0 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223FB10 cmp r0, #1 beq _02240D2C _02240CA0: ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] _02240CA6: add r0, r5, #0 add r1, r4, #0 bl MOD11_0223FCAC cmp r0, #1 beq _02240D2C ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] _02240CB8: ldr r0, _02240D30 ; =0x00002184 ldr r1, [r4, r0] mov r0, #0x80 tst r0, r1 bne _02240CCE add r0, r5, #0 add r1, r4, #0 bl MOD11_02240A6C cmp r0, #1 beq _02240D2C _02240CCE: ldr r0, [r4, #0x48] add r0, r0, #1 str r0, [r4, #0x48] _02240CD4: ldr r3, _02240D34 ; =0x00003044 ldr r2, [r4, #0x64] ldr r3, [r4, r3] add r0, r5, #0 lsl r3, r3, #0x10 add r1, r4, #0 lsr r3, r3, #0x10 bl MOD11_02244F68 mov r0, #0 str r0, [r4, #0x48] _02240CEA: ldr r1, _02240D38 ; =0x0000216C ldr r0, _02240D3C ; =0x801FDA49 ldr r2, [r4, r1] tst r0, r2 beq _02240CFA mov r0, #0x19 str r0, [r4, #8] b _02240D24 _02240CFA: add r0, r1, #0 sub r0, #0x2c ldr r2, [r4, r0] mov r0, #0x40 orr r0, r2 sub r1, #0x2c str r0, [r4, r1] ldr r2, _02240D34 ; =0x00003044 add r0, r4, #0 ldr r2, [r4, r2] mov r1, #0 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x17 str r0, [r4, #0xc] add r0, r5, #0 add r1, r4, #0 bl MOD11_02247380 _02240D24: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224AB44 _02240D2C: pop {r3, r4, r5, pc} nop _02240D30: .word 0x00002184 _02240D34: .word 0x00003044 _02240D38: .word 0x0000216C _02240D3C: .word 0x801FDA49 thumb_func_start MOD11_02240D40 MOD11_02240D40: ; 0x02240D40 push {r3, r4, r5, lr} add r4, r1, #0 ldr r2, [r4, #0x4c] add r5, r0, #0 cmp r2, #6 bhi _02240E20 add r3, r2, r2 add r3, pc ldrh r3, [r3, #6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _02240D58: ; jump table .short _02240D66 - _02240D58 - 2 ; case 0 .short _02240D72 - _02240D58 - 2 ; case 1 .short _02240D84 - _02240D58 - 2 ; case 2 .short _02240DAE - _02240D58 - 2 ; case 3 .short _02240DD8 - _02240D58 - 2 ; case 4 .short _02240DFA - _02240D58 - 2 ; case 5 .short _02240E1C - _02240D58 - 2 ; case 6 _02240D66: add r2, r2, #1 str r2, [r4, #0x4c] bl MOD11_0223FCAC cmp r0, #1 beq _02240E24 _02240D72: ldr r0, [r4, #0x4c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x4c] add r0, r5, #0 bl MOD11_0224510C cmp r0, #1 beq _02240E24 _02240D84: ldr r0, _02240E28 ; =0x00002184 ldr r1, [r4, r0] mov r0, #0x20 tst r0, r1 bne _02240DA8 ldr r3, [r4, #0x6c] cmp r3, #0xff beq _02240DA8 ldr r0, _02240E2C ; =0x00003044 add r1, r4, #0 ldr r0, [r4, r0] str r0, [sp] ldr r2, [r4, #0x64] add r0, r5, #0 bl MOD11_0224053C cmp r0, #1 beq _02240E24 _02240DA8: ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] _02240DAE: ldr r0, _02240E28 ; =0x00002184 ldr r1, [r4, r0] mov r0, #0x40 tst r0, r1 bne _02240DD2 ldr r3, [r4, #0x6c] cmp r3, #0xff beq _02240DD2 ldr r0, _02240E2C ; =0x00003044 add r1, r4, #0 ldr r0, [r4, r0] str r0, [sp] ldr r2, [r4, #0x64] add r0, r5, #0 bl MOD11_02240890 cmp r0, #1 beq _02240E24 _02240DD2: ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] _02240DD8: ldr r0, _02240E28 ; =0x00002184 ldr r1, [r4, r0] mov r0, #2 tst r0, r1 bne _02240DF4 ldr r0, [r4, #0x6c] cmp r0, #0xff beq _02240DF4 add r0, r5, #0 add r1, r4, #0 bl MOD11_0223FD20 cmp r0, #1 beq _02240E24 _02240DF4: ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] _02240DFA: ldr r0, _02240E28 ; =0x00002184 ldr r1, [r4, r0] mov r0, #0x10 tst r0, r1 bne _02240E16 ldr r0, [r4, #0x6c] cmp r0, #0xff beq _02240E16 add r0, r5, #0 add r1, r4, #0 bl MOD11_022404A4 cmp r0, #1 beq _02240E24 _02240E16: ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] _02240E1C: mov r0, #0 str r0, [r4, #0x4c] _02240E20: mov r0, #0x18 str r0, [r4, #8] _02240E24: pop {r3, r4, r5, pc} nop _02240E28: .word 0x00002184 _02240E2C: .word 0x00003044 thumb_func_start MOD11_02240E30 MOD11_02240E30: ; 0x02240E30 push {r3, r4, lr} sub sp, #4 add r2, sp, #0 add r4, r1, #0 bl MOD11_02244948 cmp r0, #1 bne _02240E56 ldr r2, [sp] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x19 add sp, #4 str r0, [r4, #0xc] pop {r3, r4, pc} _02240E56: mov r0, #0x19 str r0, [r4, #8] add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD11_02240E60 MOD11_02240E60: ; 0x02240E60 push {r4, lr} ldr r0, _02240ED8 ; =0x0000216C add r4, r1, #0 ldr r1, [r4, r0] mov r2, #2 lsl r2, r2, #0x1e add r3, r1, #0 tst r3, r2 beq _02240E78 mov r0, #0x22 str r0, [r4, #8] pop {r4, pc} _02240E78: lsr r2, r2, #0x16 tst r2, r1 beq _02240E92 add r0, r4, #0 mov r1, #1 mov r2, #0x2a bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x26 str r0, [r4, #0xc] pop {r4, pc} _02240E92: add r2, r0, #0 add r2, #0x14 ldr r2, [r4, r2] cmp r2, #0 beq _02240EB8 mov r3, #1 add r2, r1, #0 tst r2, r3 beq _02240EB8 mov r2, #1 bic r1, r2 str r1, [r4, r0] ldr r2, [r4, r0] lsl r1, r3, #0xe orr r1, r2 str r1, [r4, r0] mov r0, #0x1c str r0, [r4, #8] pop {r4, pc} _02240EB8: ldr r0, _02240EDC ; =0x001FD849 tst r0, r1 beq _02240ED2 add r0, r4, #0 mov r1, #1 mov r2, #7 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x21 str r0, [r4, #0xc] pop {r4, pc} _02240ED2: mov r0, #0x1a str r0, [r4, #8] pop {r4, pc} .align 2, 0 _02240ED8: .word 0x0000216C _02240EDC: .word 0x001FD849 thumb_func_start MOD11_02240EE0 MOD11_02240EE0: ; 0x02240EE0 push {r4, lr} add r4, r1, #0 mov r1, #1 add r0, r4, #0 add r2, r1, #0 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x1b str r0, [r4, #0xc] pop {r4, pc} thumb_func_start MOD11_02240EF8 MOD11_02240EF8: ; 0x02240EF8 push {r3, r4, r5, r6, r7, lr} ldr r2, _02241260 ; =0x0000216C add r4, r1, #0 ldr r1, [r4, r2] add r5, r0, #0 mov r0, #0x20 tst r0, r1 beq _02240F1E ldr r0, [r4, #0x6c] mov r1, #0xc0 add r3, r0, #0 mul r3, r1 ldr r0, _02241264 ; =0x00002D90 add r3, r4, r3 ldr r0, [r3, r0] sub r1, #0xc1 mul r1, r0 sub r2, #0x28 str r1, [r4, r2] _02240F1E: ldr r0, _02241268 ; =0x00002144 ldr r0, [r4, r0] cmp r0, #0 bne _02240F28 b _022412E8 _02240F28: ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02249D90 add r7, r0, #0 ldr r1, [r4, #0x6c] add r0, r4, #0 mov r2, #0 bl MOD11_02249DA4 str r0, [sp] ldr r0, _02241268 ; =0x00002144 ldr r0, [r4, r0] cmp r0, #0 blt _02240F4A bl ErrorHandling _02240F4A: ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_02230270 add r6, r0, #0 ldr r1, [r4, #0x6c] add r0, r5, #0 bl MOD11_02230270 cmp r6, r0 bne _02240F6C ldr r1, [r4, #0x64] add r0, r5, #0 mov r2, #0 mov r3, #0x46 bl MOD11_022564A8 _02240F6C: ldr r0, [r4, #0x6c] ldr r2, [r4, #0x64] lsl r0, r0, #2 add r1, r4, r0 ldr r0, _0224126C ; =0x000030F4 str r2, [r1, r0] ldr r1, [r4, #0x6c] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 mov r2, #1 ldr r1, _02241270 ; =0x00002DB0 add r5, r4, r6 ldr r3, [r5, r1] lsl r2, r2, #0x18 tst r2, r3 beq _02241044 ldr r2, _02241268 ; =0x00002144 ldr r2, [r4, r2] cmp r2, #0 bge _02241044 add r3, r1, #0 add r3, #0x30 ldr r3, [r5, r3] add r5, r2, r3 cmp r5, #0 bgt _02240FE8 mov r2, #0xbb lsl r2, r2, #2 add r6, r4, r2 ldr r2, [r4, #0x64] mov r5, #0x1c mul r5, r2 ldr r2, [r6, r5] sub r2, r2, r3 str r2, [r6, r5] ldr r5, [r4, #0x6c] add r3, r4, r1 add r2, r5, #0 mul r2, r0 ldr r6, [r3, r2] ldr r5, _02241274 ; =0xFEFFFFFF and r5, r6 str r5, [r3, r2] ldr r2, [r4, #0x6c] add r3, r2, #0 add r2, r1, #0 mul r3, r0 add r3, r4, r3 add r2, #0x30 ldr r2, [r3, r2] add r1, #0x30 neg r3, r2 ldr r2, _02241268 ; =0x00002144 add r2, r2, #4 str r3, [r4, r2] ldr r2, [r4, #0x6c] mov r3, #0 mul r0, r2 add r0, r4, r0 str r3, [r0, r1] b _02241014 _02240FE8: mov r3, #0xbb lsl r3, r3, #2 add r6, r4, r3 ldr r3, [r4, #0x64] mov r5, #0x1c mul r5, r3 ldr r3, [r6, r5] add r1, #0x30 add r2, r3, r2 str r2, [r6, r5] ldr r2, [r4, #0x6c] add r1, r4, r1 mul r0, r2 ldr r2, _02241268 ; =0x00002144 ldr r3, [r1, r0] ldr r2, [r4, r2] add r2, r3, r2 str r2, [r1, r0] ldr r0, _02241268 ; =0x00002144 ldr r1, [r4, r0] add r0, r0, #4 str r1, [r4, r0] _02241014: mov r0, #0xba lsl r0, r0, #2 ldr r2, [r4, #0x6c] add r1, r4, r0 add r0, r2, #0 mov r3, #0x1c mul r0, r3 ldr r5, [r1, r0] mov r2, #8 orr r2, r5 str r2, [r1, r0] ldr r0, [r4, #0x6c] add r3, #0xfc str r0, [r4, r3] add r0, r4, #0 mov r1, #1 mov r2, #0x5a bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x1c str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02241044: ldr r0, _02241278 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _0224127C ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x65 bne _0224106A ldr r0, _02241280 ; =0x00002D8C add r1, r4, r6 ldr r2, [r1, r0] ldr r0, _02241268 ; =0x00002144 ldr r1, [r4, r0] add r1, r1, r2 cmp r1, #0 bgt _0224106A sub r1, r2, #1 neg r1, r1 str r1, [r4, r0] _0224106A: ldr r0, [r4, #0x6c] lsl r0, r0, #6 add r1, r4, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x16 lsr r0, r0, #0x1f bne _022410D0 cmp r7, #0x40 bne _022410A4 bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f ldr r0, [sp] cmp r1, r0 bge _022410A4 mov r0, #0xb5 lsl r0, r0, #2 add r1, r4, r0 ldr r2, [r4, #0x6c] mov r0, #0x1c mul r0, r2 ldr r3, [r1, r0] mov r2, #0x20 orr r2, r3 str r2, [r1, r0] _022410A4: cmp r7, #0x66 bne _022410D0 ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r3, r4, r0 ldr r0, _02241280 ; =0x00002D8C ldr r2, [r3, r0] add r0, r0, #4 ldr r0, [r3, r0] cmp r2, r0 bne _022410D0 mov r0, #0xb5 lsl r0, r0, #2 add r3, r1, #0 mov r2, #0x1c add r0, r4, r0 mul r3, r2 ldr r2, [r0, r3] mov r1, #0x20 orr r1, r2 str r1, [r0, r3] _022410D0: ldr r0, [r4, #0x6c] lsl r1, r0, #6 add r2, r4, r1 mov r1, #0x75 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #0x16 lsr r1, r1, #0x1f bne _022410F4 mov r1, #0x1c mul r1, r0 add r2, r4, r1 mov r1, #0xb5 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1f beq _0224113E _022410F4: mov r1, #0xc0 mul r1, r0 ldr r0, _02241280 ; =0x00002D8C add r1, r4, r1 ldr r2, _02241268 ; =0x00002144 ldr r1, [r1, r0] ldr r0, [r4, r2] add r0, r0, r1 cmp r0, #0 bgt _0224113E sub r0, r1, #1 neg r0, r0 str r0, [r4, r2] ldr r0, [r4, #0x6c] mov r1, #0x75 lsl r0, r0, #6 add r0, r4, r0 lsl r1, r1, #2 ldr r0, [r0, r1] lsl r0, r0, #0x16 lsr r0, r0, #0x1f beq _02241130 add r0, r2, #0 add r0, #0x28 ldr r1, [r4, r0] mov r0, #0x80 orr r0, r1 add r2, #0x28 str r0, [r4, r2] b _0224113E _02241130: add r0, r2, #0 add r0, #0x28 ldr r0, [r4, r0] sub r1, #0xd4 orr r0, r1 add r2, #0x28 str r0, [r4, r2] _0224113E: ldr r1, [r4, #0x6c] ldr r0, _02241284 ; =0x000030E4 lsl r3, r1, #2 ldr r1, _02241268 ; =0x00002144 add r0, r4, r0 ldr r2, [r0, r3] ldr r1, [r4, r1] add r1, r2, r1 str r1, [r0, r3] ldr r0, _02241288 ; =0x00002DBC ldr r1, [r4, #0x6c] add r3, r4, r0 mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldrb r0, [r3, r2] cmp r0, #0xff bhs _02241166 add r0, r0, #1 strb r0, [r3, r2] _02241166: ldr r0, _02241278 ; =0x00003044 mov r1, #0x3e ldr r0, [r4, r0] lsl r1, r1, #4 lsl r0, r0, #4 add r0, r4, r0 ldrb r0, [r0, r1] cmp r0, #0 bne _022411D4 ldr r1, [r4, #0x6c] ldr r0, _02241268 ; =0x00002144 lsl r1, r1, #6 add r2, r4, r1 ldr r1, [r4, #0x64] ldr r0, [r4, r0] lsl r1, r1, #2 add r2, r2, r1 mov r1, #0x76 lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4, #0x6c] ldr r2, [r4, #0x64] lsl r0, r0, #6 add r0, r4, r0 add r1, #0x10 str r2, [r0, r1] ldr r0, [r4, #0x64] bl FUN_0206A92C mov r1, #0x7b ldr r3, [r4, #0x6c] lsl r1, r1, #2 add r2, r4, r1 lsl r5, r3, #6 ldr r3, [r2, r5] orr r0, r3 str r0, [r2, r5] ldr r2, [r4, #0x6c] ldr r0, _02241268 ; =0x00002144 add r5, r2, #0 add r2, r1, #0 mov r3, #0x1c mul r5, r3 ldr r0, [r4, r0] add r5, r4, r5 add r2, #0xec str r0, [r5, r2] ldr r0, [r4, #0x6c] ldr r5, [r4, #0x64] add r2, r0, #0 mul r2, r3 add r0, r4, r2 add r1, #0xf0 str r5, [r0, r1] b _02241232 _022411D4: cmp r0, #1 bne _02241232 ldr r2, [r4, #0x6c] ldr r0, _02241268 ; =0x00002144 lsl r2, r2, #6 add r3, r4, r2 ldr r2, [r4, #0x64] ldr r0, [r4, r0] lsl r2, r2, #2 add r2, r3, r2 lsr r1, r1, #1 str r0, [r2, r1] ldr r0, [r4, #0x6c] ldr r2, [r4, #0x64] lsl r0, r0, #6 add r1, r4, r0 mov r0, #2 lsl r0, r0, #8 str r2, [r1, r0] ldr r0, [r4, #0x64] bl FUN_0206A92C mov r1, #0x81 ldr r3, [r4, #0x6c] lsl r1, r1, #2 add r2, r4, r1 lsl r5, r3, #6 ldr r3, [r2, r5] orr r0, r3 str r0, [r2, r5] ldr r2, [r4, #0x6c] ldr r0, _02241268 ; =0x00002144 add r5, r2, #0 add r2, r1, #0 mov r3, #0x1c mul r5, r3 ldr r0, [r4, r0] add r5, r4, r5 add r2, #0xdc str r0, [r5, r2] ldr r0, [r4, #0x6c] ldr r5, [r4, #0x64] add r2, r0, #0 mul r2, r3 add r0, r4, r2 add r1, #0xe0 str r5, [r0, r1] _02241232: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02241280 ; =0x00002D8C ldr r2, [r1, r0] ldr r0, _02241268 ; =0x00002144 ldr r1, [r4, r0] add r0, r1, r2 cmp r0, #0 bgt _0224128C mov r0, #0xbb lsl r0, r0, #2 add r1, r4, r0 ldr r3, [r4, #0x64] mov r0, #0x1c mul r0, r3 ldr r3, [r1, r0] neg r2, r2 add r2, r3, r2 str r2, [r1, r0] b _022412A0 nop _02241260: .word 0x0000216C _02241264: .word 0x00002D90 _02241268: .word 0x00002144 _0224126C: .word 0x000030F4 _02241270: .word 0x00002DB0 _02241274: .word 0xFEFFFFFF _02241278: .word 0x00003044 _0224127C: .word 0x000003DE _02241280: .word 0x00002D8C _02241284: .word 0x000030E4 _02241288: .word 0x00002DBC _0224128C: ldr r3, [r4, #0x64] mov r0, #0xbb lsl r0, r0, #2 mov r2, #0x1c add r5, r3, #0 add r0, r4, r0 mul r5, r2 ldr r2, [r0, r5] add r1, r2, r1 str r1, [r0, r5] _022412A0: ldr r3, _022412F0 ; =0x00002144 ldr r0, [r4, #0x6c] mov r2, #0x82 lsl r0, r0, #6 ldr r1, [r4, r3] add r0, r4, r0 lsl r2, r2, #2 str r1, [r0, r2] ldr r1, [r4, #0x6c] ldr r0, [r4, #0x64] lsl r1, r1, #6 add r5, r4, r1 add r1, r2, #4 str r0, [r5, r1] ldr r0, [r4, #0x6c] sub r2, #0xf0 str r0, [r4, r2] ldr r0, [r4, r3] add r3, #0x18 str r0, [r4, r3] add r0, r4, #0 mov r1, #1 mov r2, #2 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x1c str r0, [r4, #0xc] ldr r1, _022412F4 ; =0x0000213C mov r0, #2 ldr r2, [r4, r1] lsl r0, r0, #0xc orr r0, r2 str r0, [r4, r1] pop {r3, r4, r5, r6, r7, pc} _022412E8: mov r0, #0x1c str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} nop _022412F0: .word 0x00002144 _022412F4: .word 0x0000213C thumb_func_start MOD11_022412F8 MOD11_022412F8: ; 0x022412F8 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 ldr r2, [r4, #0x38] add r5, r0, #0 cmp r2, #0 beq _0224130C cmp r2, #1 beq _022413D2 b _02241490 _0224130C: ldr r2, [r4, #0x3c] cmp r2, #5 bls _02241314 b _02241490 _02241314: add r3, r2, r2 add r3, pc ldrh r3, [r3, #6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _02241320: ; jump table .short _0224132C - _02241320 - 2 ; case 0 .short _02241338 - _02241320 - 2 ; case 1 .short _0224134A - _02241320 - 2 ; case 2 .short _0224137E - _02241320 - 2 ; case 3 .short _02241392 - _02241320 - 2 ; case 4 .short _022413BC - _02241320 - 2 ; case 5 _0224132C: add r2, r2, #1 str r2, [r4, #0x3c] bl MOD11_02242774 cmp r0, #1 beq _02241390 _02241338: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_02242790 cmp r0, #1 beq _02241390 _0224134A: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 add r2, sp, #0xc bl MOD11_022449EC cmp r0, #1 bne _0224137E ldr r0, _0224149C ; =0x0000216C ldr r1, [r4, r0] ldr r0, _022414A0 ; =0x001FD849 tst r0, r1 bne _0224137E ldr r2, [sp, #0xc] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _0224137E: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_022427E4 cmp r0, #1 bne _02241392 _02241390: b _02241498 _02241392: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 add r2, sp, #8 bl MOD11_02248308 cmp r0, #1 bne _022413BC ldr r2, [sp, #8] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _022413BC: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_02242870 cmp r0, #1 bne _02241490 add sp, #0x10 pop {r3, r4, r5, pc} _022413D2: ldr r2, [r4, #0x3c] cmp r2, #5 bhi _02241490 add r3, r2, r2 add r3, pc ldrh r3, [r3, #6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _022413E4: ; jump table .short _022413F0 - _022413E4 - 2 ; case 0 .short _022413FC - _022413E4 - 2 ; case 1 .short _02241430 - _022413E4 - 2 ; case 2 .short _02241442 - _022413E4 - 2 ; case 3 .short _0224146C - _022413E4 - 2 ; case 4 .short _0224147E - _022413E4 - 2 ; case 5 _022413F0: add r2, r2, #1 str r2, [r4, #0x3c] bl MOD11_02242774 cmp r0, #1 beq _02241498 _022413FC: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 add r2, sp, #4 bl MOD11_022449EC cmp r0, #1 bne _02241430 ldr r0, _0224149C ; =0x0000216C ldr r1, [r4, r0] ldr r0, _022414A0 ; =0x001FD849 tst r0, r1 bne _02241430 ldr r2, [sp, #4] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _02241430: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_022427E4 cmp r0, #1 beq _02241498 _02241442: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 add r2, sp, #0 bl MOD11_02248308 cmp r0, #1 bne _0224146C ldr r2, [sp] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _0224146C: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_02242790 cmp r0, #1 beq _02241498 _0224147E: ldr r0, [r4, #0x3c] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x3c] add r0, r5, #0 bl MOD11_02242870 cmp r0, #1 beq _02241498 _02241490: mov r0, #0 str r0, [r4, #0x3c] mov r0, #0x1e str r0, [r4, #8] _02241498: add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _0224149C: .word 0x0000216C _022414A0: .word 0x001FD849 thumb_func_start MOD11_022414A4 MOD11_022414A4: ; 0x022414A4 bx lr .align 2, 0 thumb_func_start MOD11_022414A8 MOD11_022414A8: ; 0x022414A8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 ldr r1, [r4, #0x40] add r7, r0, #0 cmp r1, #7 bls _022414B8 b _022416F2 _022414B8: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022414C4: ; jump table .short _022414D4 - _022414C4 - 2 ; case 0 .short _0224154E - _022414C4 - 2 ; case 1 .short _02241562 - _022414C4 - 2 ; case 2 .short _02241588 - _022414C4 - 2 ; case 3 .short _0224159C - _022414C4 - 2 ; case 4 .short _022415B6 - _022414C4 - 2 ; case 5 .short _022415E0 - _022414C4 - 2 ; case 6 .short _02241674 - _022414C4 - 2 ; case 7 _022414D4: mov r1, #0 ldr r5, [r4, #0x44] str r1, [sp, #4] bl MOD11_0222FF84 cmp r5, r0 bge _02241544 add r6, r4, #0 add r6, #0x44 _022414E6: mov r0, #0xc0 mul r0, r5 mov r1, #0xb7 add r0, r4, r0 lsl r1, r1, #6 ldr r2, [r0, r1] ldr r1, _02241700 ; =0x200400C0 tst r1, r2 bne _0224152C ldr r1, _02241704 ; =0x00002DC4 ldr r2, [r0, r1] ldr r1, _02241700 ; =0x200400C0 tst r1, r2 beq _0224152C ldr r1, _02241704 ; =0x00002DC4 ldr r2, [r0, r1] ldr r1, _02241708 ; =0xDFFBFF3F and r2, r1 ldr r1, _02241704 ; =0x00002DC4 str r2, [r0, r1] ldr r2, _0224170C ; =0x0000011F add r0, r4, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x46 ldr r1, [r4, #0x44] lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp, #4] _0224152C: ldr r0, [r6] add r0, r0, #1 str r0, [r6] ldr r0, [sp, #4] cmp r0, #0 bne _022415B4 ldr r5, [r4, #0x44] add r0, r7, #0 bl MOD11_0222FF84 cmp r5, r0 blt _022414E6 _02241544: ldr r0, [r4, #0x40] add r0, r0, #1 str r0, [r4, #0x40] mov r0, #0 str r0, [r4, #0x44] _0224154E: ldr r0, [r4, #0x40] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x40] ldr r2, [r4, #8] add r0, r7, #0 bl MOD11_02248A78 cmp r0, #1 beq _022415B4 _02241562: add r0, r7, #0 add r1, r4, #0 bl MOD11_022476DC add r2, r0, #0 beq _02241582 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02241582: ldr r0, [r4, #0x40] add r0, r0, #1 str r0, [r4, #0x40] _02241588: ldr r0, [r4, #0x40] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x40] ldr r2, [r4, #0x64] add r0, r7, #0 bl MOD11_02248C0C cmp r0, #1 beq _022415B4 _0224159C: ldr r0, [r4, #0x40] add r0, r0, #1 str r0, [r4, #0x40] ldr r2, [r4, #0x6c] cmp r2, #0xff beq _022415B6 add r0, r7, #0 add r1, r4, #0 bl MOD11_02248C0C cmp r0, #1 bne _022415B6 _022415B4: b _022416FC _022415B6: ldr r0, [r4, #0x40] add r1, r4, #0 add r0, r0, #1 str r0, [r4, #0x40] add r0, r7, #0 add r2, sp, #0xc bl MOD11_02249B94 cmp r0, #1 bne _022415E0 ldr r2, [sp, #0xc] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _022415E0: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x60 bne _022415F0 mov r2, #0 b _02241604 _022415F0: ldr r0, _02241710 ; =0x00002160 ldr r2, [r4, r0] cmp r2, #0 bne _02241604 ldr r0, _02241714 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _02241718 ; =0x000003E2 ldrb r2, [r1, r0] _02241604: ldr r0, [r4, #0x40] add r0, r0, #1 str r0, [r4, #0x40] ldr r3, [r4, #0x6c] cmp r3, #0xff beq _02241674 mov r0, #0xc0 add r5, r3, #0 mul r5, r0 ldr r0, _0224171C ; =0x00002DAC add r1, r4, r5 ldr r1, [r1, r0] mov r0, #0x20 tst r1, r0 beq _02241674 ldr r1, _02241720 ; =0x0000216C lsl r0, r0, #9 ldr r1, [r4, r1] tst r0, r1 bne _02241674 ldr r0, [r4, #0x64] cmp r3, r0 beq _02241674 mov r0, #0x1c mul r0, r3 add r6, r4, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r1, [r6, r0] cmp r1, #0 bne _0224164A add r0, #8 ldr r0, [r6, r0] cmp r0, #0 beq _02241674 _0224164A: ldr r0, _02241724 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _02241674 cmp r2, #0xa bne _02241674 mov r0, #0x46 lsl r0, r0, #2 str r3, [r4, r0] add r0, r4, #0 mov r1, #1 mov r2, #0x1d bl MOD11_022431DC ldr r0, [r4, #8] add sp, #0x10 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02241674: mov r0, #0 str r0, [sp] ldr r6, [r4, #0x44] add r0, r7, #0 bl MOD11_0222FF84 cmp r6, r0 bge _022416E2 add r5, r4, #0 add r5, #0x44 _02241688: ldr r0, _02241728 ; =0x000021EC add r1, r4, r6 ldrb r6, [r1, r0] add r0, r6, #0 bl FUN_0206A92C ldr r1, _0224172C ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 ldr r0, [r5] beq _022416A4 add r0, r0, #1 str r0, [r5] b _022416D6 _022416A4: add r0, r0, #1 str r0, [r5] add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 add r3, sp, #8 bl MOD11_022493A0 cmp r0, #1 bne _022416D6 mov r0, #0x46 lsl r0, r0, #2 str r6, [r4, r0] ldr r2, [sp, #8] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 str r0, [sp] b _022416E2 _022416D6: ldr r6, [r4, #0x44] add r0, r7, #0 bl MOD11_0222FF84 cmp r6, r0 blt _02241688 _022416E2: ldr r0, [sp] cmp r0, #0 bne _022416F2 ldr r0, [r4, #0x40] add r0, r0, #1 str r0, [r4, #0x40] mov r0, #0 str r0, [r4, #0x44] _022416F2: mov r0, #0 str r0, [r4, #0x40] str r0, [r4, #0x44] mov r0, #0x1f str r0, [r4, #8] _022416FC: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02241700: .word 0x200400C0 _02241704: .word 0x00002DC4 _02241708: .word 0xDFFBFF3F _0224170C: .word 0x0000011F _02241710: .word 0x00002160 _02241714: .word 0x00003044 _02241718: .word 0x000003E2 _0224171C: .word 0x00002DAC _02241720: .word 0x0000216C _02241724: .word 0x00002D8C _02241728: .word 0x000021EC _0224172C: .word 0x00003108 thumb_func_start MOD11_02241730 MOD11_02241730: ; 0x02241730 bx lr .align 2, 0 thumb_func_start MOD11_02241734 MOD11_02241734: ; 0x02241734 push {r3, r4, r5, r6, r7, lr} ldr r6, _02241820 ; =0x0000217D add r4, r1, #0 ldrb r2, [r4, r6] str r0, [sp] cmp r2, #0 beq _0224181A ldr r3, [r4, #0x74] mov ip, r3 cmp r3, #0xff bne _022417CC ldr r3, [r4, #0x64] mov r7, #0xc0 add r5, r3, #0 mul r5, r7 ldr r3, _02241824 ; =0x00002DAC add r5, r4, r5 ldr r5, [r5, r3] mov r3, #7 tst r3, r5 bne _022417CC add r3, r6, #0 sub r3, #0x11 ldr r5, [r4, r3] mov r3, #1 lsl r3, r3, #0xe tst r3, r5 bne _022417CC sub r2, r6, #1 ldrb r2, [r4, r2] sub r3, r2, #1 sub r2, r6, #1 strb r3, [r4, r2] ldrb r2, [r4, r2] cmp r2, #0 beq _022417B2 mov r3, #1 add r2, r6, #3 str r3, [r4, r2] bl MOD11_02247264 add r1, r6, #0 sub r1, #0x41 ldr r2, [r4, r1] ldr r0, _02241828 ; =0xFFFFBFFF and r0, r2 str r0, [r4, r1] add r0, r1, #0 add r0, #0x4c ldr r0, [r4, r0] add r1, #0x48 str r0, [r4, r1] ldr r2, _0224182C ; =0x00003044 add r0, r4, #0 ldr r2, [r4, r2] mov r1, #0 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x17 str r0, [r4, #0xc] b _02241812 _022417B2: ldrb r0, [r4, r6] add r7, #0x70 mov r1, #1 str r0, [r4, r7] add r0, r4, #0 mov r2, #0x11 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x21 str r0, [r4, #0xc] b _02241812 _022417CC: mov r0, ip cmp r0, #0xff bne _022417E6 ldr r0, [r4, #0x64] mov r1, #0xc0 add r3, r0, #0 mul r3, r1 ldr r0, _02241824 ; =0x00002DAC add r3, r4, r3 ldr r3, [r3, r0] mov r0, #7 tst r0, r3 beq _022417F6 _022417E6: ldr r0, _02241830 ; =0x0000217C ldrb r0, [r4, r0] sub r0, r2, r0 add r1, r0, #1 mov r0, #0x13 lsl r0, r0, #4 str r1, [r4, r0] b _02241800 _022417F6: ldr r0, _02241830 ; =0x0000217C add r1, #0x70 ldrb r0, [r4, r0] sub r0, r2, r0 str r0, [r4, r1] _02241800: add r0, r4, #0 mov r1, #1 mov r2, #0x11 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x21 str r0, [r4, #0xc] _02241812: ldr r0, [sp] bl MOD11_0225679C pop {r3, r4, r5, r6, r7, pc} _0224181A: mov r0, #0x21 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02241820: .word 0x0000217D _02241824: .word 0x00002DAC _02241828: .word 0xFFFFBFFF _0224182C: .word 0x00003044 _02241830: .word 0x0000217C thumb_func_start MOD11_02241834 MOD11_02241834: ; 0x02241834 push {r3, lr} ldr r0, _02241858 ; =0x0000213C ldr r2, [r1, r0] mov r0, #0xf lsl r0, r0, #0x18 tst r0, r2 beq _02241850 add r0, r1, #0 mov r1, #0x21 add r2, r1, #0 mov r3, #0 bl MOD11_0224246C pop {r3, pc} _02241850: mov r0, #0x22 str r0, [r1, #8] pop {r3, pc} nop _02241858: .word 0x0000213C thumb_func_start MOD11_0224185C MOD11_0224185C: ; 0x0224185C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 mov r1, #0x85 lsl r1, r1, #6 add r5, r0, #0 ldr r2, [r4, r1] mov r0, #8 tst r0, r2 beq _02241880 mov r0, #8 bic r2, r0 str r2, [r4, r1] ldr r0, [r4, #0x64] str r0, [r4, #0x6c] add r0, r4, #0 add r0, #0x84 ldr r0, [r0] str r0, [r4, #0x64] _02241880: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224256C ldr r0, _022419E0 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022419E4 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #4 bne _0224194C ldr r0, _022419E8 ; =0x0000213C ldr r1, [r4, r0] mov r0, #2 tst r0, r1 bne _0224194C add r0, r5, #0 bl MOD11_0222FF84 ldr r1, _022419EC ; =0x0000217E ldrb r2, [r4, r1] cmp r2, r0 bge _0224194C mov r2, #0xd add r0, r1, #6 str r2, [r4, r0] add r0, r5, #0 bl MOD11_0222FF84 ldr r1, [r4, #0x64] add r0, r5, #0 bl MOD11_0222FF7C bl MOD11_02253A4C mov r1, #1 add r7, r0, #0 and r7, r1 _022418CE: ldr r1, _022419EC ; =0x0000217E ldr r0, _022419EC ; =0x0000217E ldrb r1, [r4, r1] ldrb r0, [r4, r0] add r2, r1, #1 ldr r1, _022419EC ; =0x0000217E strb r2, [r4, r1] add r1, r4, r0 ldr r0, _022419F0 ; =0x000021EC ldrb r6, [r1, r0] add r0, r6, #0 bl FUN_0206A92C ldr r1, _022419F4 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 bne _02241936 mov r0, #0xc0 mul r0, r6 add r1, r4, r0 ldr r0, _022419F8 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02241936 add r0, r5, #0 add r1, r6, #0 bl MOD11_0222FF7C str r0, [sp] cmp r7, #0 beq _02241916 bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _02241926 _02241916: cmp r7, #0 bne _02241936 ldr r0, [sp] bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _02241936 _02241926: add r0, r5, #0 add r1, r4, #0 bl MOD11_02247264 str r6, [r4, #0x6c] mov r0, #0x16 str r0, [r4, #8] b _02241944 _02241936: add r0, r5, #0 bl MOD11_0222FF84 ldr r1, _022419EC ; =0x0000217E ldrb r1, [r4, r1] cmp r1, r0 blt _022418CE _02241944: add r0, r5, #0 bl MOD11_0225679C pop {r3, r4, r5, r6, r7, pc} _0224194C: ldr r0, _022419E0 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022419E4 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #8 bne _022419DA ldr r0, _022419E8 ; =0x0000213C ldr r1, [r4, r0] mov r0, #2 tst r0, r1 bne _022419DA add r0, r5, #0 bl MOD11_0222FF84 ldr r1, _022419EC ; =0x0000217E ldrb r2, [r4, r1] cmp r2, r0 bge _022419DA mov r2, #0xd add r0, r1, #6 str r2, [r4, r0] add r0, r5, #0 bl MOD11_0222FF84 ldr r7, _022419EC ; =0x0000217E _02241982: ldr r0, _022419EC ; =0x0000217E ldrb r1, [r4, r0] ldrb r0, [r4, r7] add r1, r4, r1 add r0, r0, #1 strb r0, [r4, r7] ldr r0, _022419F0 ; =0x000021EC ldrb r6, [r1, r0] add r0, r6, #0 bl FUN_0206A92C ldr r1, _022419F4 ; =0x00003108 ldrb r1, [r4, r1] tst r0, r1 bne _022419C4 mov r0, #0xc0 mul r0, r6 add r1, r4, r0 ldr r0, _022419F8 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022419C4 ldr r0, [r4, #0x64] cmp r6, r0 beq _022419C4 add r0, r5, #0 add r1, r4, #0 bl MOD11_02247264 str r6, [r4, #0x6c] mov r0, #0x16 str r0, [r4, #8] b _022419D2 _022419C4: add r0, r5, #0 bl MOD11_0222FF84 ldr r1, _022419EC ; =0x0000217E ldrb r1, [r4, r1] cmp r1, r0 blt _02241982 _022419D2: add r0, r5, #0 bl MOD11_0225679C pop {r3, r4, r5, r6, r7, pc} _022419DA: mov r0, #0x23 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022419E0: .word 0x00003044 _022419E4: .word 0x000003E6 _022419E8: .word 0x0000213C _022419EC: .word 0x0000217E _022419F0: .word 0x000021EC _022419F4: .word 0x00003108 _022419F8: .word 0x00002D8C thumb_func_start MOD11_022419FC MOD11_022419FC: ; 0x022419FC push {r4, lr} ldr r0, _02241A38 ; =0x0000213C add r4, r1, #0 ldr r1, [r4, r0] mov r0, #0xf lsl r0, r0, #0x1c and r0, r1 beq _02241A32 lsr r0, r0, #0x1c bl FUN_0206A94C str r0, [r4, #0x74] ldr r1, _02241A38 ; =0x0000213C ldr r0, _02241A3C ; =0x0FFFFFFF ldr r2, [r4, r1] and r0, r2 str r0, [r4, r1] ldr r2, _02241A40 ; =0x00000115 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x24 str r0, [r4, #0xc] pop {r4, pc} _02241A32: mov r0, #0x24 str r0, [r4, #8] pop {r4, pc} .align 2, 0 _02241A38: .word 0x0000213C _02241A3C: .word 0x0FFFFFFF _02241A40: .word 0x00000115 thumb_func_start MOD11_02241A44 MOD11_02241A44: ; 0x02241A44 push {r4, lr} add r4, r1, #0 bl MOD11_022429B0 cmp r0, #1 beq _02241A54 mov r0, #0x26 str r0, [r4, #8] _02241A54: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02241A58 MOD11_02241A58: ; 0x02241A58 bx lr .align 2, 0 thumb_func_start MOD11_02241A5C MOD11_02241A5C: ; 0x02241A5C push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #0x64] add r5, r0, #0 add r0, r4, #0 bl MOD11_02249D90 ldr r1, _02241B60 ; =0x0000213C lsl r0, r0, #0x18 ldr r3, [r4, r1] mov r2, #0x20 lsr r0, r0, #0x18 tst r2, r3 bne _02241A82 add r1, r1, #4 ldr r2, [r4, r1] mov r1, #4 tst r1, r2 beq _02241AC4 _02241A82: cmp r0, #0x36 beq _02241A8E cmp r0, #0x72 beq _02241A8E cmp r0, #0x7c bne _02241AB6 _02241A8E: mov r0, #0xc1 lsl r0, r0, #6 ldr r0, [r4, r0] cmp r0, #0xa5 beq _02241AC4 cmp r0, #0xe2 bne _02241AA8 mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r4, r1] mov r1, #0x40 tst r1, r2 bne _02241AC4 _02241AA8: ldr r2, [r4, #0x64] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _02241B64 ; =0x00002DF8 strh r0, [r2, r1] b _02241AC4 _02241AB6: ldr r2, [r4, #0x64] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _02241B64 ; =0x00002DF8 mov r0, #0 strh r0, [r2, r1] _02241AC4: ldr r0, _02241B60 ; =0x0000213C mov r1, #1 ldr r2, [r4, r0] lsl r1, r1, #0x14 tst r1, r2 bne _02241B2C add r0, r0, #4 ldr r1, [r4, r0] mov r0, #4 tst r0, r1 beq _02241AF2 ldr r2, [r4, #0x64] ldr r1, _02241B68 ; =0x00003044 lsl r2, r2, #1 add r3, r4, r2 add r2, r1, #0 ldr r0, [r4, r1] add r2, #0x18 strh r0, [r3, r2] sub r0, r1, #4 ldr r2, [r4, r0] add r0, r1, #4 b _02241B00 _02241AF2: ldr r0, [r4, #0x64] mov r2, #0 lsl r0, r0, #1 add r1, r4, r0 ldr r0, _02241B6C ; =0x0000305C strh r2, [r1, r0] sub r0, #0x14 _02241B00: str r2, [r4, r0] mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x40 tst r0, r1 beq _02241B20 mov r0, #0xc1 ldr r1, [r4, #0x64] lsl r0, r0, #6 ldr r2, [r4, r0] lsl r1, r1, #1 add r1, r4, r1 add r0, #0x3c strh r2, [r1, r0] b _02241B2C _02241B20: ldr r0, [r4, #0x64] mov r2, #0 lsl r0, r0, #1 add r1, r4, r0 ldr r0, _02241B70 ; =0x0000307C strh r2, [r1, r0] _02241B2C: mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #4 tst r0, r1 beq _02241B48 mov r0, #0xc1 ldr r1, [r4, #0x64] lsl r0, r0, #6 ldr r2, [r4, r0] lsl r1, r1, #1 add r1, r4, r1 add r0, #0x6c strh r2, [r1, r0] _02241B48: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224256C add r0, r5, #0 add r1, r4, #0 bl MOD11_0224ABF8 mov r0, #0x27 str r0, [r4, #8] pop {r3, r4, r5, pc} nop _02241B60: .word 0x0000213C _02241B64: .word 0x00002DF8 _02241B68: .word 0x00003044 _02241B6C: .word 0x0000305C _02241B70: .word 0x0000307C thumb_func_start MOD11_02241B74 MOD11_02241B74: ; 0x02241B74 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _02241BF6 ldr r2, [r4, #0x64] add r0, r5, #0 add r1, r4, #0 mov r3, #0 bl MOD11_02248898 cmp r0, #1 beq _02241C4C ldr r2, [r4, #0x6c] cmp r2, #0xff beq _02241BAA add r0, r5, #0 add r1, r4, #0 mov r3, #0 bl MOD11_02248898 cmp r0, #1 beq _02241C4C _02241BAA: ldr r1, [r4, #8] add r0, r4, #0 add r2, r1, #0 bl MOD11_02242510 cmp r0, #1 beq _02241C4C add r0, r5, #0 add r1, r4, #0 bl MOD11_02241FD8 cmp r0, #1 beq _02241C4C add r0, r5, #0 add r1, r4, #0 bl MOD11_022476DC add r2, r0, #0 beq _02241BE2 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] pop {r3, r4, r5, pc} _02241BE2: add r0, r5, #0 add r1, r4, #0 bl MOD11_02242924 cmp r0, #1 beq _02241C4C add r0, r5, #0 add r1, r4, #0 bl MOD11_02242404 _02241BF6: add r1, r4, #0 add r1, #0xec ldr r1, [r1] mov r0, #0x27 add r2, r4, r1 ldr r1, _02241C50 ; =0x000021E8 ldrb r2, [r2, r1] sub r1, #0x40 lsl r2, r2, #4 add r2, r4, r2 str r0, [r2, r1] ldr r1, [r4, #0x64] mov r0, #0x1c mul r0, r1 add r1, r4, r0 mov r0, #0xb5 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _02241C34 add r0, r5, #0 add r1, r4, #0 bl MOD11_0224C178 add r0, r5, #0 add r1, r4, #0 bl MOD11_0224728C mov r1, #0 b _02241C3C _02241C34: add r0, r4, #0 add r0, #0xec ldr r0, [r0] add r1, r0, #1 _02241C3C: add r0, r4, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 bl MOD11_02245494 mov r0, #8 str r0, [r4, #8] _02241C4C: pop {r3, r4, r5, pc} nop _02241C50: .word 0x000021E8 thumb_func_start MOD11_02241C54 MOD11_02241C54: ; 0x02241C54 push {r4, lr} add r4, r1, #0 ldr r1, [r4, #8] add r0, r4, #0 add r2, r1, #0 mov r3, #1 bl MOD11_0224246C cmp r0, #1 beq _02241C6C mov r0, #0x27 str r0, [r4, #8] _02241C6C: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02241C70 MOD11_02241C70: ; 0x02241C70 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0223145C mov r1, #0x80 tst r0, r1 beq _02241C86 mov r0, #0x2a str r0, [r4, #8] b _02241CE4 _02241C86: add r0, r5, #0 bl MOD11_0223145C cmp r0, #2 beq _02241C9A add r0, r5, #0 bl MOD11_0223145C cmp r0, #3 bne _02241CAE _02241C9A: add r0, r4, #0 mov r1, #1 mov r2, #5 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x2a str r0, [r4, #0xc] b _02241CE4 _02241CAE: add r0, r5, #0 bl MOD11_0223145C cmp r0, #1 bne _02241CCC add r0, r4, #0 mov r1, #1 mov r2, #4 bl MOD11_022431DC mov r0, #0x15 str r0, [r4, #8] mov r0, #0x2a str r0, [r4, #0xc] b _02241CE4 _02241CCC: add r0, r5, #0 bl MOD11_0223145C cmp r0, #4 beq _02241CE0 add r0, r5, #0 bl MOD11_0223145C cmp r0, #5 bne _02241CE4 _02241CE0: mov r0, #0x2a str r0, [r4, #8] _02241CE4: ldr r0, _02241CEC ; =0x0000311F mov r1, #1 strb r1, [r4, r0] pop {r3, r4, r5, pc} .align 2, 0 _02241CEC: .word 0x0000311F thumb_func_start MOD11_02241CF0 MOD11_02241CF0: ; 0x02241CF0 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 bl MOD11_0222FF74 mov r1, #4 add r4, r0, #0 and r4, r1 bne _02241D16 add r0, r6, #0 mov r1, #0 bl MOD11_0222FF88 add r6, r0, #0 bl FUN_02069C4C add r0, r6, #0 bl FUN_02069DC8 _02241D16: cmp r4, #0 beq _02241D20 mov r0, #0x16 bl FUN_020311DC _02241D20: mov r0, #0x2b str r0, [r5, #8] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02241D28 MOD11_02241D28: ; 0x02241D28 bx lr .align 2, 0 thumb_func_start MOD11_02241D2C MOD11_02241D2C: ; 0x02241D2C push {r4, r5, r6, r7, lr} sub sp, #0x34 str r1, [sp, #4] mov r1, #0 str r0, [sp] str r1, [sp, #0x30] bl MOD11_0222FF84 str r0, [sp, #0x28] ldr r0, [sp] bl MOD11_0222FF74 str r0, [sp, #0x24] ldr r0, [sp, #4] ldr r0, [r0, #8] str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x2c] ldr r0, [sp, #0x28] cmp r0, #0 bgt _02241D58 b _02241F4A _02241D58: ldr r0, [sp, #4] mov r1, #2 str r0, [sp, #0x1c] str r0, [sp, #0x18] ldr r0, [sp, #0x24] and r0, r1 str r0, [sp, #0x14] ldr r0, [sp, #0x24] mov r1, #0x18 and r0, r1 str r0, [sp, #0x10] ldr r0, [sp, #0x24] mov r1, #0x10 and r0, r1 str r0, [sp, #0xc] _02241D76: mov r1, #0x4f ldr r0, [sp, #0x1c] lsl r1, r1, #2 ldr r2, [r0, r1] mov r0, #1 bic r2, r0 ldr r0, [sp, #0x1c] str r2, [r0, r1] ldr r0, [sp, #0x14] cmp r0, #0 beq _02241D92 ldr r0, [sp, #0x10] cmp r0, #0 beq _02241DA4 _02241D92: ldr r0, [sp, #0xc] cmp r0, #0 beq _02241E8A ldr r0, [sp] ldr r1, [sp, #0x2c] bl MOD11_02230270 cmp r0, #0 bne _02241E8A _02241DA4: ldr r3, _02241FC8 ; =0x00002D8C ldr r0, [sp, #0x18] ldr r0, [r0, r3] cmp r0, #0 bne _02241DCC ldr r1, [sp, #0x2c] mov r2, #2 add r4, r1, #0 eor r4, r2 mov r1, #0xc0 add r5, r4, #0 mul r5, r1 ldr r1, [sp, #4] add r1, r1, r5 ldr r1, [r1, r3] cmp r1, #0 bne _02241DCC ldr r1, [sp, #0x2c] tst r1, r2 bne _02241DD0 _02241DCC: cmp r0, #0 beq _02241DD2 _02241DD0: b _02241F30 _02241DD2: ldr r0, [sp] ldr r1, [sp, #0x2c] mov r7, #0 bl MOD11_0222FF88 add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x2c] bl MOD11_0222FF7C add r0, r6, #0 add r5, r7, #0 bl FUN_0206B9AC cmp r0, #0 ble _02241E4A ldr r0, [sp, #0x2c] mov r1, #2 eor r1, r0 ldr r0, [sp, #4] add r0, r0, r1 str r0, [sp, #8] _02241DFE: add r0, r6, #0 add r1, r5, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02241E3E add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241E3E add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02241E3E ldr r2, [sp, #8] ldr r1, _02241FD0 ; =0x0000219C ldrb r1, [r2, r1] cmp r5, r1 beq _02241E3E add r7, r7, r0 _02241E3E: add r0, r6, #0 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _02241DFE _02241E4A: cmp r7, #0 bne _02241E6E ldr r0, [sp, #0x2c] bl FUN_0206A92C ldr r2, _02241FD4 ; =0x00003108 ldr r1, [sp, #4] ldrb r1, [r1, r2] orr r1, r0 ldr r0, [sp, #4] strb r1, [r0, r2] add r1, r0, #0 ldr r0, [sp, #0x2c] mov r2, #6 add r1, r1, r0 ldr r0, _02241FD0 ; =0x0000219C strb r2, [r1, r0] b _02241F30 _02241E6E: ldr r1, [sp, #0x20] ldr r0, [sp, #4] str r1, [r0, #0xc] mov r1, #0x15 str r1, [r0, #8] mov r1, #0x4f ldr r0, [sp, #0x1c] lsl r1, r1, #2 ldr r2, [r0, r1] mov r0, #1 orr r2, r0 ldr r0, [sp, #0x1c] str r2, [r0, r1] b _02241F30 _02241E8A: ldr r1, _02241FC8 ; =0x00002D8C ldr r0, [sp, #0x18] ldr r0, [r0, r1] cmp r0, #0 bne _02241F30 ldr r0, [sp] ldr r1, [sp, #0x2c] mov r7, #0 bl MOD11_0222FF88 add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x2c] bl MOD11_0222FF7C add r0, r6, #0 add r5, r7, #0 bl FUN_0206B9AC cmp r0, #0 ble _02241EF2 _02241EB4: add r0, r6, #0 add r1, r5, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02241EE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241EE6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r7, r7, r0 _02241EE6: add r0, r6, #0 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _02241EB4 _02241EF2: cmp r7, #0 bne _02241F16 ldr r0, [sp, #0x2c] bl FUN_0206A92C ldr r2, _02241FD4 ; =0x00003108 ldr r1, [sp, #4] ldrb r1, [r1, r2] orr r1, r0 ldr r0, [sp, #4] strb r1, [r0, r2] add r1, r0, #0 ldr r0, [sp, #0x2c] mov r2, #6 add r1, r1, r0 ldr r0, _02241FD0 ; =0x0000219C strb r2, [r1, r0] b _02241F30 _02241F16: ldr r1, [sp, #0x20] ldr r0, [sp, #4] str r1, [r0, #0xc] mov r1, #0x15 str r1, [r0, #8] mov r1, #0x4f ldr r0, [sp, #0x1c] lsl r1, r1, #2 ldr r2, [r0, r1] mov r0, #1 orr r2, r0 ldr r0, [sp, #0x1c] str r2, [r0, r1] _02241F30: ldr r0, [sp, #0x1c] add r0, r0, #4 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r0, #0xc0 str r0, [sp, #0x18] ldr r0, [sp, #0x2c] add r1, r0, #1 ldr r0, [sp, #0x28] str r1, [sp, #0x2c] cmp r1, r0 bge _02241F4A b _02241D76 _02241F4A: ldr r0, [sp, #4] ldr r0, [r0, #8] cmp r0, #0x15 bne _02241FC0 ldr r0, [sp, #0x24] mov r1, #0x86 tst r0, r1 bne _02241FB2 ldr r0, [sp] bl MOD11_02230E70 cmp r0, #0 bne _02241FB2 mov r1, #0x4f ldr r0, [sp, #4] lsl r1, r1, #2 ldr r0, [r0, r1] mov r2, #1 tst r0, r2 beq _02241F7C ldr r0, [sp, #4] add r1, r1, #4 ldr r0, [r0, r1] tst r0, r2 bne _02241FB2 _02241F7C: ldr r0, [sp] ldr r1, [sp, #4] mov r2, #0 bl MOD11_02246DE0 cmp r0, #0 beq _02241FB2 mov r1, #0x4f ldr r0, [sp, #4] lsl r1, r1, #2 ldr r0, [r0, r1] mov r2, #1 tst r0, r2 beq _02241FA0 mov r2, #0 sub r1, r1, #4 ldr r0, [sp, #4] b _02241FA4 _02241FA0: ldr r0, [sp, #4] sub r1, r1, #4 _02241FA4: str r2, [r0, r1] ldr r0, [sp, #4] mov r1, #1 mov r2, #0xe7 bl MOD11_022431DC b _02241FBC _02241FB2: ldr r0, [sp, #4] mov r1, #1 mov r2, #0xa bl MOD11_022431DC _02241FBC: mov r0, #1 str r0, [sp, #0x30] _02241FC0: ldr r0, [sp, #0x30] add sp, #0x34 pop {r4, r5, r6, r7, pc} nop _02241FC8: .word 0x00002D8C _02241FCC: .word 0x000001EE _02241FD0: .word 0x0000219C _02241FD4: .word 0x00003108 thumb_func_start MOD11_02241FD8 MOD11_02241FD8: ; 0x02241FD8 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r0, [sp] str r1, [sp, #4] bl MOD11_0222FF84 str r0, [sp, #0x24] ldr r0, [sp] bl MOD11_0222FF74 str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x1c] str r0, [sp, #0x28] ldr r0, [sp, #0x24] cmp r0, #0 bgt _02241FFC b _02242256 _02241FFC: ldr r0, [sp, #0x20] mov r1, #8 and r0, r1 str r0, [sp, #0xc] ldr r0, [sp, #0x20] mov r1, #0x10 and r0, r1 str r0, [sp, #8] _0224200C: ldr r0, [sp, #0x20] sub r0, #0x4a cmp r0, #1 bhi _022420A6 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_02230270 cmp r0, #0 bne _022420A6 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_02230260 cmp r0, #2 bne _022420C8 ldr r1, _0224233C ; =0x00002D8C ldr r0, [sp, #4] ldr r0, [r0, r1] cmp r0, #0 bne _022420C8 ldr r0, [sp] ldr r1, [sp, #0x28] mov r7, #0 bl MOD11_0222FF88 add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_0222FF7C add r0, r6, #0 add r4, r7, #0 bl FUN_0206B9AC cmp r0, #0 ble _02242094 _02242056: add r0, r6, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r5, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02242088 add r0, r5, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242088 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r7, r7, r0 _02242088: add r0, r6, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _02242056 _02242094: cmp r7, #0 bne _022420C8 ldr r0, [sp, #0x1c] mov r1, #2 orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] b _02242242 _022420A6: ldr r0, [sp, #0xc] cmp r0, #0 bne _022420BE ldr r0, [sp, #8] cmp r0, #0 beq _022421B0 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_02230270 cmp r0, #0 beq _022421B0 _022420BE: ldr r1, _0224233C ; =0x00002D8C ldr r0, [sp, #4] ldr r0, [r0, r1] cmp r0, #0 beq _022420CA _022420C8: b _02242242 _022420CA: ldr r0, [sp] ldr r1, [sp, #0x28] mov r5, #0 bl MOD11_0222FF88 add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_022302BC add r1, r0, #0 ldr r0, [sp] bl MOD11_0222FF88 str r0, [sp, #0x18] ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_0222FF7C str r0, [sp, #0x14] add r0, r7, #0 add r4, r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0224213C _022420FE: add r0, r7, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02242130 add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242130 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r5, r5, r0 _02242130: add r0, r7, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _022420FE _0224213C: ldr r0, [sp, #0x18] mov r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02242186 ldr r7, _02242340 ; =0x000001EE _0224214A: ldr r0, [sp, #0x18] add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r6, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0224217A add r0, r6, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC cmp r0, r7 beq _0224217A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r5, r5, r0 _0224217A: ldr r0, [sp, #0x18] add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _0224214A _02242186: cmp r5, #0 bne _02242242 ldr r0, [sp, #0x14] bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _022421A2 ldr r0, [sp, #0x1c] orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] b _02242242 _022421A2: ldr r0, [sp, #0x1c] mov r1, #2 orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] b _02242242 _022421B0: ldr r1, _0224233C ; =0x00002D8C ldr r0, [sp, #4] ldr r0, [r0, r1] cmp r0, #0 bne _02242242 ldr r0, [sp] ldr r1, [sp, #0x28] mov r7, #0 bl MOD11_0222FF88 add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x28] bl MOD11_0222FF7C str r0, [sp, #0x10] add r0, r6, #0 add r4, r7, #0 bl FUN_0206B9AC cmp r0, #0 ble _0224221A _022421DC: add r0, r6, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r5, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0224220E add r0, r5, #0 mov r1, #0xad mov r2, #0 bl FUN_020671BC ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _0224220E add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r7, r7, r0 _0224220E: add r0, r6, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _022421DC _0224221A: cmp r7, #0 bne _02242242 ldr r0, [sp, #0x10] bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _02242236 ldr r0, [sp, #0x1c] orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] b _02242242 _02242236: ldr r0, [sp, #0x1c] mov r1, #2 orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] _02242242: ldr r0, [sp, #4] add r0, #0xc0 str r0, [sp, #4] ldr r0, [sp, #0x28] add r1, r0, #1 ldr r0, [sp, #0x24] str r1, [sp, #0x28] cmp r1, r0 bge _02242256 b _0224200C _02242256: ldr r0, [sp, #0x1c] cmp r0, #1 bne _0224226C ldr r0, [sp, #0x20] mov r1, #1 tst r0, r1 beq _0224226C ldr r0, [sp, #0x20] mov r1, #4 tst r0, r1 beq _02242282 _0224226C: ldr r0, [sp, #0x1c] cmp r0, #1 bne _0224231C ldr r0, [sp, #0x20] mov r1, #0x80 tst r0, r1 beq _0224231C ldr r0, [sp, #0x20] mov r1, #4 tst r0, r1 bne _0224231C _02242282: ldr r0, [sp] mov r1, #1 bl MOD11_02230188 ldrb r0, [r0, #1] sub r0, #0x3e cmp r0, #0x23 bhi _0224230E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0224229E: ; jump table .short _022422E6 - _0224229E - 2 ; case 0 .short _0224230E - _0224229E - 2 ; case 1 .short _022422E6 - _0224229E - 2 ; case 2 .short _02242306 - _0224229E - 2 ; case 3 .short _02242306 - _0224229E - 2 ; case 4 .short _02242306 - _0224229E - 2 ; case 5 .short _02242306 - _0224229E - 2 ; case 6 .short _022422EE - _0224229E - 2 ; case 7 .short _0224230E - _0224229E - 2 ; case 8 .short _0224230E - _0224229E - 2 ; case 9 .short _022422F6 - _0224229E - 2 ; case 10 .short _022422F6 - _0224229E - 2 ; case 11 .short _022422E6 - _0224229E - 2 ; case 12 .short _022422E6 - _0224229E - 2 ; case 13 .short _022422E6 - _0224229E - 2 ; case 14 .short _022422E6 - _0224229E - 2 ; case 15 .short _022422E6 - _0224229E - 2 ; case 16 .short _022422E6 - _0224229E - 2 ; case 17 .short _0224230E - _0224229E - 2 ; case 18 .short _0224230E - _0224229E - 2 ; case 19 .short _0224230E - _0224229E - 2 ; case 20 .short _0224230E - _0224229E - 2 ; case 21 .short _0224230E - _0224229E - 2 ; case 22 .short _0224230E - _0224229E - 2 ; case 23 .short _022422FE - _0224229E - 2 ; case 24 .short _022422F6 - _0224229E - 2 ; case 25 .short _022422F6 - _0224229E - 2 ; case 26 .short _022422F6 - _0224229E - 2 ; case 27 .short _0224230E - _0224229E - 2 ; case 28 .short _0224230E - _0224229E - 2 ; case 29 .short _0224230E - _0224229E - 2 ; case 30 .short _0224230E - _0224229E - 2 ; case 31 .short _0224230E - _0224229E - 2 ; case 32 .short _0224230E - _0224229E - 2 ; case 33 .short _0224230E - _0224229E - 2 ; case 34 .short _022422E6 - _0224229E - 2 ; case 35 _022422E6: ldr r0, _02242344 ; =0x00000469 bl FUN_0200521C b _02242314 _022422EE: ldr r0, _02242348 ; =0x0000046A bl FUN_0200521C b _02242314 _022422F6: ldr r0, _0224234C ; =0x0000046B bl FUN_0200521C b _02242314 _022422FE: ldr r0, _02242350 ; =0x0000046C bl FUN_0200521C b _02242314 _02242306: ldr r0, _02242354 ; =0x0000046D bl FUN_0200521C b _02242314 _0224230E: ldr r0, _02242358 ; =0x00000468 bl FUN_0200521C _02242314: ldr r0, [sp] mov r1, #2 bl MOD11_02231484 _0224231C: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0224232A ldr r0, [sp] ldr r1, [sp, #0x1c] bl MOD11_02231468 _0224232A: ldr r0, [sp, #0x1c] cmp r0, #0 beq _02242336 add sp, #0x2c mov r0, #1 pop {r4, r5, r6, r7, pc} _02242336: mov r0, #0 add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _0224233C: .word 0x00002D8C _02242340: .word 0x000001EE _02242344: .word 0x00000469 _02242348: .word 0x0000046A _0224234C: .word 0x0000046B _02242350: .word 0x0000046C _02242354: .word 0x0000046D _02242358: .word 0x00000468 thumb_func_start MOD11_0224235C MOD11_0224235C: ; 0x0224235C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r0, [sp] add r5, r1, #0 ldr r0, _022423F4 ; =0x00002D4C add r6, r2, #0 mov r1, #0xc0 add r0, r5, r0 mul r1, r6 add r0, r0, r1 str r0, [sp, #8] ldr r0, [sp, #0x2c] ldr r1, [sp, #8] lsl r0, r0, #1 ldrh r1, [r1, r0] str r3, [sp, #4] ldr r4, [sp, #0x28] ldr r7, [sp, #0x30] str r0, [sp, #0xc] cmp r1, #0xae bne _02242396 add r0, r5, #0 bl MOD11_02246C20 cmp r0, #0 bne _02242396 mov r0, #0x10 str r0, [r4] b _022423A6 _02242396: ldr r1, [sp, #8] ldr r0, [sp, #0xc] ldrh r0, [r1, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _022423F8 ; =0x000003E6 ldrh r0, [r1, r0] str r0, [r4] _022423A6: ldr r0, [sp, #4] mov r1, #2 tst r0, r1 beq _022423DC ldr r0, [r4] add r1, #0xfe cmp r0, r1 bne _022423D6 ldr r0, [sp] add r1, r6, #0 bl MOD11_022302BC bl FUN_0206A92C ldr r1, _022423FC ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _022423D0 add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _022423D0: add sp, #0x10 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022423D6: add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _022423DC: ldr r1, [r4] ldr r0, _02242400 ; =0x00000251 tst r0, r1 beq _022423E8 str r6, [r7] b _022423EE _022423E8: mov r0, #1 eor r0, r6 str r0, [r7] _022423EE: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022423F4: .word 0x00002D4C _022423F8: .word 0x000003E6 _022423FC: .word 0x00003108 _02242400: .word 0x00000251 thumb_func_start MOD11_02242404 MOD11_02242404: ; 0x02242404 push {r3, r4, r5, r6, r7, lr} str r1, [sp] bl MOD11_0222FF84 add r4, r0, #0 mov r3, #0 cmp r4, #0 ble _0224243E ldr r5, [sp] add r7, r3, #0 add r6, r5, #0 _0224241A: ldr r0, _02242460 ; =0x00002DB0 add r3, r3, #1 ldr r2, [r6, r0] ldr r0, _02242464 ; =0x0000218C ldr r1, [r5, r0] mov r0, #0 mvn r0, r0 eor r0, r1 add r1, r2, #0 and r1, r0 ldr r0, _02242460 ; =0x00002DB0 str r1, [r6, r0] ldr r0, _02242464 ; =0x0000218C add r6, #0xc0 str r7, [r5, r0] add r5, r5, #4 cmp r3, r4 blt _0224241A _0224243E: ldr r1, [sp] mov r0, #0 ldr r1, [r1, #0x64] lsl r2, r1, #1 ldr r1, [sp] add r1, r1, r2 ldr r2, _02242468 ; =0x00003064 strh r0, [r1, r2] ldr r1, [sp] add r2, #0x60 ldr r1, [r1, #0x64] lsl r3, r1, #1 ldr r1, [sp] add r1, r1, r3 strh r0, [r1, r2] pop {r3, r4, r5, r6, r7, pc} nop _02242460: .word 0x00002DB0 _02242464: .word 0x0000218C _02242468: .word 0x00003064 thumb_func_start MOD11_0224246C MOD11_0224246C: ; 0x0224246C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, _02242504 ; =0x000021EC str r1, [sp] ldrb r0, [r5, r0] add r6, r2, #0 str r3, [sp, #4] mov r4, #0 bl FUN_0206A92C ldr r1, _02242508 ; =0x0000213C lsl r0, r0, #0x18 ldr r2, [r5, r1] mov r1, #0xf lsl r1, r1, #0x18 tst r1, r2 beq _022424FA add r1, r2, #0 tst r1, r0 bne _022424AE ldr r7, _02242504 ; =0x000021EC add r6, r7, #0 sub r6, #0xb0 _0224249C: add r4, r4, #1 add r0, r5, r4 ldrb r0, [r0, r7] bl FUN_0206A92C ldr r1, [r5, r6] lsl r0, r0, #0x18 tst r1, r0 beq _0224249C _022424AE: ldr r2, _02242508 ; =0x0000213C mov r1, #0 mvn r1, r1 eor r1, r0 ldr r3, [r5, r2] asr r0, r0, #0x18 and r1, r3 str r1, [r5, r2] bl FUN_0206A94C str r0, [r5, #0x74] ldr r0, [sp, #4] cmp r0, #1 bne _022424D6 add r0, r5, #0 mov r1, #1 mov r2, #6 bl MOD11_022431DC b _022424E0 _022424D6: add r0, r5, #0 mov r1, #1 mov r2, #0x53 bl MOD11_022431DC _022424E0: mov r0, #0x15 str r0, [r5, #8] ldr r0, [sp] mov r2, #0x27 str r0, [r5, #0xc] ldr r0, [r5, #0x74] add sp, #8 lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224250C ; =0x000021A8 str r2, [r1, r0] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _022424FA: str r6, [r5, #8] add r0, r4, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02242504: .word 0x000021EC _02242508: .word 0x0000213C _0224250C: .word 0x000021A8 thumb_func_start MOD11_02242510 MOD11_02242510: ; 0x02242510 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x85 lsl r0, r0, #6 add r4, r1, #0 ldr r1, [r5, r0] mov r0, #0xf lsl r0, r0, #0x1c tst r0, r1 beq _02242564 mov r0, #1 lsl r0, r0, #0x1c add r2, r1, #0 tst r2, r0 bne _02242536 _0224252E: lsl r0, r0, #1 add r2, r1, #0 tst r2, r0 beq _0224252E _02242536: mov r2, #0x85 lsl r2, r2, #6 mov r1, #0 mvn r1, r1 eor r1, r0 ldr r3, [r5, r2] asr r0, r0, #0x1c and r1, r3 str r1, [r5, r2] bl FUN_0206A94C mov r2, #0x45 str r0, [r5, #0x74] add r0, r5, #0 mov r1, #1 lsl r2, r2, #2 bl MOD11_022431DC mov r0, #0x15 str r0, [r5, #8] str r4, [r5, #0xc] mov r0, #1 pop {r3, r4, r5, pc} _02242564: str r2, [r5, #8] mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0224256C MOD11_0224256C: ; 0x0224256C push {r4, r5, r6, lr} add r5, r1, #0 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x60 bne _02242580 mov r4, #0 b _02242594 _02242580: ldr r0, _0224274C ; =0x00002160 ldr r4, [r5, r0] cmp r4, #0 bne _02242594 ldr r0, _02242750 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02242754 ; =0x000003E2 ldrb r4, [r1, r0] _02242594: mov r0, #0xc1 lsl r0, r0, #6 ldr r2, [r5, r0] mov r6, #0x10 lsl r1, r2, #4 add r3, r5, r1 ldr r1, _02242758 ; =0x000003E9 ldrb r1, [r3, r1] tst r1, r6 beq _022425DE ldr r3, _0224275C ; =0x0000213C lsl r6, r6, #0x10 ldr r1, [r5, r3] tst r1, r6 bne _022425DE ldr r1, [r5, #0x6c] cmp r1, #0xff beq _022425DE add r3, r3, #4 ldr r6, [r5, r3] mov r3, #4 tst r3, r6 beq _022425DE lsl r1, r1, #1 add r3, r5, r1 add r1, r0, #0 add r1, #0x44 strh r2, [r3, r1] ldr r2, [r5, #0x6c] ldr r1, [r5, r0] lsl r2, r2, #3 add r3, r5, r2 ldr r2, [r5, #0x64] add r0, #0x4c lsl r2, r2, #1 add r2, r3, r2 strh r1, [r2, r0] _022425DE: ldr r1, [r5, #0x6c] cmp r1, #0xff beq _02242628 add r0, r5, #0 bl MOD11_02249D90 ldr r1, _0224275C ; =0x0000213C lsl r0, r0, #0x18 ldr r3, [r5, r1] mov r2, #0x20 lsr r0, r0, #0x18 tst r2, r3 bne _02242602 add r1, r1, #4 ldr r2, [r5, r1] mov r1, #4 tst r1, r2 beq _0224261C _02242602: cmp r0, #0x36 beq _0224261C cmp r0, #0x72 beq _0224261C cmp r0, #0x7c beq _0224261C ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02242760 ; =0x00002DF8 mov r2, #0 strh r2, [r1, r0] _0224261C: ldr r0, _0224275C ; =0x0000213C mov r1, #1 ldr r2, [r5, r0] lsl r1, r1, #0x14 tst r1, r2 beq _0224262A _02242628: b _0224274A _0224262A: add r0, r0, #4 ldr r1, [r5, r0] mov r0, #4 tst r0, r1 beq _02242668 ldr r1, [r5, #0x6c] ldr r0, _02242750 ; =0x00003044 lsl r1, r1, #1 add r2, r5, r1 add r1, r0, #0 ldr r3, [r5, r0] add r1, #0x20 strh r3, [r2, r1] ldr r1, [r5, #0x6c] ldr r3, [r5, #0x64] lsl r1, r1, #1 add r2, r5, r1 add r1, r0, #0 add r1, #0x28 strh r3, [r2, r1] ldr r1, [r5, #0x6c] lsl r1, r1, #1 add r2, r5, r1 add r1, r0, #0 add r1, #0x30 strh r4, [r2, r1] sub r1, r0, #4 ldr r1, [r5, r1] add r0, r0, #4 str r1, [r5, r0] b _02242692 _02242668: ldr r0, [r5, #0x6c] ldr r3, _02242764 ; =0x00003064 lsl r0, r0, #1 mov r1, #0 add r0, r5, r0 strh r1, [r0, r3] ldr r2, [r5, #0x6c] mov r0, #0xff lsl r2, r2, #1 add r6, r5, r2 add r2, r3, #0 add r2, #8 strh r0, [r6, r2] ldr r0, [r5, #0x6c] lsl r0, r0, #1 add r2, r5, r0 add r0, r3, #0 add r0, #0x10 strh r1, [r2, r0] sub r3, #0x1c str r1, [r5, r3] _02242692: mov r0, #0x85 lsl r0, r0, #6 ldr r2, [r5, r0] mov r1, #0x40 tst r1, r2 beq _02242726 add r0, #0x2c ldr r0, [r5, r0] ldr r2, _02242768 ; =0x801FDA49 tst r0, r2 bne _02242726 ldr r0, _02242750 ; =0x00003044 ldr r0, [r5, r0] lsl r1, r0, #4 add r3, r5, r1 ldr r1, _0224276C ; =0x000003E6 ldrh r3, [r3, r1] cmp r3, #0x40 bgt _022426C8 bge _022426DC cmp r3, #0x10 bgt _022426C2 beq _022426DC b _02242702 _022426C2: cmp r3, #0x20 beq _022426DC b _02242702 _022426C8: lsr r1, r2, #0x17 cmp r3, r1 bgt _022426D6 bge _022426DC cmp r3, #0x80 beq _022426DC b _02242702 _022426D6: lsr r1, r2, #0x16 cmp r3, r1 bne _02242702 _022426DC: ldr r1, [r5, #0x6c] ldr r2, _02242770 ; =0x000030C4 lsl r1, r1, #1 mov r0, #0 add r1, r5, r1 strh r0, [r1, r2] ldr r1, [r5, #0x6c] mov r4, #0xff lsl r1, r1, #1 add r3, r5, r1 add r1, r2, #0 add r1, #8 strh r4, [r3, r1] ldr r1, [r5, #0x6c] add r2, #0x10 lsl r1, r1, #1 add r1, r5, r1 strh r0, [r1, r2] pop {r4, r5, r6, pc} _02242702: ldr r1, [r5, #0x6c] lsl r1, r1, #1 add r2, r5, r1 ldr r1, _02242770 ; =0x000030C4 strh r0, [r2, r1] ldr r0, [r5, #0x6c] ldr r3, [r5, #0x64] lsl r0, r0, #1 add r2, r5, r0 add r0, r1, #0 add r0, #8 strh r3, [r2, r0] ldr r0, [r5, #0x6c] add r1, #0x10 lsl r0, r0, #1 add r0, r5, r0 strh r4, [r0, r1] pop {r4, r5, r6, pc} _02242726: ldr r1, [r5, #0x6c] ldr r2, _02242770 ; =0x000030C4 lsl r1, r1, #1 mov r0, #0 add r1, r5, r1 strh r0, [r1, r2] ldr r1, [r5, #0x6c] mov r4, #0xff lsl r1, r1, #1 add r3, r5, r1 add r1, r2, #0 add r1, #8 strh r4, [r3, r1] ldr r1, [r5, #0x6c] add r2, #0x10 lsl r1, r1, #1 add r1, r5, r1 strh r0, [r1, r2] _0224274A: pop {r4, r5, r6, pc} .align 2, 0 _0224274C: .word 0x00002160 _02242750: .word 0x00003044 _02242754: .word 0x000003E2 _02242758: .word 0x000003E9 _0224275C: .word 0x0000213C _02242760: .word 0x00002DF8 _02242764: .word 0x00003064 _02242768: .word 0x801FDA49 _0224276C: .word 0x000003E6 _02242770: .word 0x000030C4 thumb_func_start MOD11_02242774 MOD11_02242774: ; 0x02242774 push {r4, lr} add r4, r1, #0 add r0, r4, #0 mov r1, #1 mov r2, #0x10 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02242790 MOD11_02242790: ; 0x02242790 push {r3, r4, r5, lr} ldr r2, _022427E0 ; =0x0000216C add r5, r1, #0 ldr r0, [r5, r2] mov r4, #0 cmp r0, #0 beq _022427C4 add r1, r2, #0 add r1, #0x11 ldrb r1, [r5, r1] cmp r1, #0 beq _022427C2 ldr r1, [r5, #0x74] cmp r1, #0xff bne _022427BE add r2, #0x10 ldrb r1, [r5, r2] cmp r1, #1 beq _022427BE mov r1, #1 lsl r1, r1, #0xe tst r0, r1 beq _022427C4 _022427BE: mov r4, #1 b _022427C4 _022427C2: mov r4, #1 _022427C4: cmp r4, #1 bne _022427DA add r0, r5, #0 mov r1, #1 mov r2, #0x15 bl MOD11_022431DC ldr r0, [r5, #8] str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _022427DA: add r0, r4, #0 pop {r3, r4, r5, pc} nop _022427E0: .word 0x0000216C thumb_func_start MOD11_022427E4 MOD11_022427E4: ; 0x022427E4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r2, [r4, #0x6c] mov r3, #0 cmp r2, #0xff bne _022427F4 add r0, r3, #0 pop {r3, r4, r5, r6, r7, pc} _022427F4: mov r0, #0xc0 add r5, r2, #0 mul r5, r0 mov r1, #2 ldr r0, _02242864 ; =0x00002DB0 add r7, r4, r5 ldr r6, [r7, r0] lsl r1, r1, #0x16 tst r1, r6 beq _0224285E ldr r1, _02242868 ; =0x0000216C mov r6, #2 lsl r6, r6, #0x16 ldr r1, [r4, r1] lsr r6, r6, #9 tst r1, r6 bne _0224285E ldr r1, [r4, #0x64] cmp r2, r1 beq _0224285E sub r0, #0x24 ldr r0, [r7, r0] cmp r0, #0 beq _0224285E mov r0, #0x1c mul r0, r2 add r2, r4, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r1, [r2, r0] cmp r1, #0 bne _0224283C add r0, #8 ldr r0, [r2, r0] cmp r0, #0 beq _0224285E _0224283C: ldr r0, _0224286C ; =0x00002D59 add r1, r4, r0 ldrsb r0, [r1, r5] cmp r0, #0xc bge _0224285E add r0, r0, #1 strb r0, [r1, r5] add r0, r4, #0 mov r1, #1 mov r2, #0xf5 bl MOD11_022431DC ldr r0, [r4, #8] mov r3, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0224285E: add r0, r3, #0 pop {r3, r4, r5, r6, r7, pc} nop _02242864: .word 0x00002DB0 _02242868: .word 0x0000216C _0224286C: .word 0x00002D59 thumb_func_start MOD11_02242870 MOD11_02242870: ; 0x02242870 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, [r5, #0x64] add r0, r5, #0 mov r4, #0 bl MOD11_02249D90 add r7, r0, #0 ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r4, #0 bl MOD11_02249DA4 add r6, r0, #0 ldr r0, [r5, #0x6c] cmp r0, #0xff beq _0224290A cmp r7, #0x37 bne _0224290A ldr r1, _02242910 ; =0x0000216C ldr r2, [r5, r1] ldr r1, _02242914 ; =0x801FDA49 tst r1, r2 bne _0224290A mov r1, #0x1c mul r1, r0 mov r0, #0xb6 add r2, r5, r1 lsl r0, r0, #2 ldr r1, [r2, r0] cmp r1, #0 bne _022428B8 add r0, #8 ldr r0, [r2, r0] cmp r0, #0 beq _0224290A _022428B8: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r6 bge _0224290A ldr r0, _02242918 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224291C ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0224290A ldr r0, [r5, #0x6c] mov r1, #0xc0 mul r1, r0 add r2, r5, r1 ldr r1, _02242920 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _0224290A add r1, r5, #0 add r1, #0x94 str r0, [r1] add r0, r5, #0 mov r1, #2 add r0, #0x88 str r1, [r0] add r0, r5, #0 mov r1, #1 mov r2, #0xe bl MOD11_022431DC ldr r0, [r5, #8] mov r4, #1 str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _0224290A: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} nop _02242910: .word 0x0000216C _02242914: .word 0x801FDA49 _02242918: .word 0x00003044 _0224291C: .word 0x000003E9 _02242920: .word 0x00002D8C thumb_func_start MOD11_02242924 MOD11_02242924: ; 0x02242924 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r4, [r5, #0x5c] str r0, [sp] mov r7, #0 bl MOD11_0222FF84 cmp r4, r0 bge _02242994 add r6, r5, #0 add r6, #0x5c _0224293A: mov r0, #0xc0 mul r0, r4 mov r1, #0xb7 add r0, r5, r0 lsl r1, r1, #6 ldr r2, [r0, r1] ldr r1, _022429A0 ; =0x200400C0 tst r1, r2 bne _0224297E ldr r1, _022429A4 ; =0x00002DC4 ldr r2, [r0, r1] ldr r1, _022429A0 ; =0x200400C0 tst r1, r2 beq _0224297E ldr r1, _022429A4 ; =0x00002DC4 ldr r2, [r0, r1] ldr r1, _022429A8 ; =0xDFFBFF3F and r2, r1 ldr r1, _022429A4 ; =0x00002DC4 str r2, [r0, r1] ldr r2, _022429AC ; =0x0000011F add r0, r5, #0 mov r1, #1 bl MOD11_022431DC mov r0, #0x46 ldr r1, [r5, #0x5c] lsl r0, r0, #2 str r1, [r5, r0] ldr r0, [r5, #8] mov r7, #1 str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _0224297E: ldr r0, [r6] add r0, r0, #1 str r0, [r6] cmp r7, #1 beq _02242994 ldr r0, [sp] ldr r4, [r5, #0x5c] bl MOD11_0222FF84 cmp r4, r0 blt _0224293A _02242994: cmp r7, #0 bne _0224299C mov r0, #0 str r0, [r5, #0x5c] _0224299C: add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022429A0: .word 0x200400C0 _022429A4: .word 0x00002DC4 _022429A8: .word 0xDFFBFF3F _022429AC: .word 0x0000011F thumb_func_start MOD11_022429B0 MOD11_022429B0: ; 0x022429B0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 mov r6, #0 bl MOD11_0222FF84 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249D90 str r0, [sp, #4] ldr r1, [r4, #0x64] add r0, r4, #0 add r2, r6, #0 bl MOD11_02249DA4 ldr r1, [r4, #8] str r0, [sp] add r0, r4, #0 add r2, r1, #0 mov r3, #1 bl MOD11_0224246C cmp r0, #1 bne _022429E8 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _022429E8: add r5, r4, #0 add r5, #0x30 _022429EC: ldr r0, [r4, #0x30] cmp r0, #3 bls _022429F4 b _02242B44 _022429F4: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02242A00: ; jump table .short _02242A08 - _02242A00 - 2 ; case 0 .short _02242A38 - _02242A00 - 2 ; case 1 .short _02242AB8 - _02242A00 - 2 ; case 2 .short _02242B3C - _02242A00 - 2 ; case 3 _02242A08: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _02242B5C ; =0x00002DB0 add r0, r4, r0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x16 tst r1, r2 beq _02242A30 ldr r1, _02242B60 ; =0x00003044 ldr r1, [r4, r1] cmp r1, #0x63 beq _02242A30 ldr r1, _02242B5C ; =0x00002DB0 ldr r2, [r0, r1] ldr r1, _02242B64 ; =0xFF7FFFFF and r2, r1 ldr r1, _02242B5C ; =0x00002DB0 str r2, [r0, r1] _02242A30: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _02242B44 _02242A38: ldr r3, [r4, #0x6c] cmp r3, #0xff beq _02242AB0 ldr r0, [sp, #4] cmp r0, #0x57 bne _02242AB0 mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x10 tst r0, r1 bne _02242AB0 ldr r0, _02242B68 ; =0x0000213C ldr r1, [r4, r0] mov r0, #2 lsl r0, r0, #0xc tst r0, r1 beq _02242AB0 ldr r2, [r4, #0x64] mov r0, #0x1c mul r0, r2 add r1, r4, r0 mov r0, #0xbb lsl r0, r0, #2 ldr r7, [r1, r0] cmp r7, #0 beq _02242AB0 cmp r2, r3 beq _02242AB0 mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _02242B6C ; =0x00002D8C ldr r1, [r2, r0] add r0, r0, #4 ldr r0, [r2, r0] cmp r1, r0 bhs _02242AB0 cmp r1, #0 beq _02242AB0 ldr r1, [sp] neg r0, r7 bl MOD11_022476C0 ldr r1, _02242B70 ; =0x0000215C mov r2, #0xd5 str r0, [r4, r1] mov r0, #0x46 ldr r1, [r4, #0x64] lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] mov r6, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _02242AB0: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _02242B44 _02242AB8: ldr r0, [sp, #4] cmp r0, #0x61 bne _02242B34 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02242B34 mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x10 tst r0, r1 bne _02242B34 ldr r0, _02242B68 ; =0x0000213C ldr r1, [r4, r0] mov r0, #2 lsl r0, r0, #0xc tst r0, r1 beq _02242B34 ldr r0, _02242B60 ; =0x00003044 ldr r0, [r4, r0] lsl r0, r0, #4 add r1, r4, r0 mov r0, #0x3e lsl r0, r0, #4 ldrb r0, [r1, r0] cmp r0, #2 beq _02242B34 ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _02242B6C ; =0x00002D8C add r0, r4, r0 ldr r1, [r0, r1] cmp r1, #0 beq _02242B34 ldr r1, _02242B74 ; =0x00002D90 ldr r1, [r0, r1] mov r0, #0 mvn r0, r0 mul r0, r1 mov r1, #0xa bl MOD11_022476C0 ldr r1, _02242B70 ; =0x0000215C mov r2, #0xd6 str r0, [r4, r1] mov r0, #0x46 ldr r1, [r4, #0x64] lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r4, #8] mov r6, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _02242B34: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _02242B44 _02242B3C: mov r0, #0 str r0, [r4, #0x30] str r0, [r4, #0x34] mov r6, #2 _02242B44: cmp r6, #0 bne _02242B4A b _022429EC _02242B4A: cmp r6, #1 bne _02242B54 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _02242B54: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02242B5C: .word 0x00002DB0 _02242B60: .word 0x00003044 _02242B64: .word 0xFF7FFFFF _02242B68: .word 0x0000213C _02242B6C: .word 0x00002D8C _02242B70: .word 0x0000215C _02242B74: .word 0x00002D90 thumb_func_start MOD11_02242B78 MOD11_02242B78: ; 0x02242B78 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r7, r1, #0 str r2, [sp, #4] add r1, r2, #0 add r2, r3, #0 str r0, [sp] bl MOD11_02230014 ldr r1, [sp, #4] mov r2, #0xc0 add r5, r1, #0 mov r1, #0xb5 lsl r1, r1, #6 add r1, r7, r1 mul r5, r2 str r1, [sp, #0x18] mov r1, #5 mov r2, #0 add r4, r0, #0 bl FUN_020671BC ldr r1, [sp, #0x18] mov r2, #0 strh r0, [r1, r5] add r0, r4, #0 mov r1, #0xa4 bl FUN_020671BC ldr r1, _02242F4C ; =0x00002D42 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa5 mov r2, #0 bl FUN_020671BC ldr r1, _02242F50 ; =0x00002D44 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa6 mov r2, #0 bl FUN_020671BC ldr r1, _02242F54 ; =0x00002D46 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa7 mov r2, #0 bl FUN_020671BC ldr r1, _02242F58 ; =0x00002D48 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa8 mov r2, #0 bl FUN_020671BC add r1, r7, r5 ldr r2, _02242F5C ; =0x00002D4A str r1, [sp, #0xc] strh r0, [r1, r2] add r0, r1, #0 mov r6, #0 str r0, [sp, #0x14] str r0, [sp, #0x10] _02242C02: add r1, r6, #0 add r0, r4, #0 add r1, #0x36 mov r2, #0 bl FUN_020671BC ldr r2, [sp, #0x14] ldr r1, _02242F60 ; =0x00002D4C strh r0, [r2, r1] add r1, r6, #0 add r0, r4, #0 add r1, #0x3a mov r2, #0 bl FUN_020671BC ldr r2, [sp, #0x10] ldr r1, _02242F64 ; =0x00002D6C strb r0, [r2, r1] add r1, r6, #0 add r0, r4, #0 add r1, #0x3e mov r2, #0 bl FUN_020671BC ldr r2, [sp, #0x10] ldr r1, _02242F68 ; =0x00002D70 add r6, r6, #1 strb r0, [r2, r1] ldr r0, [sp, #0x14] add r0, r0, #2 str r0, [sp, #0x14] add r0, r2, #0 add r0, r0, #1 str r0, [sp, #0x10] cmp r6, #4 blt _02242C02 add r0, r1, #0 sub r0, #0x1c add r6, r7, r0 add r0, r4, #0 mov r1, #0x46 mov r2, #0 bl FUN_020671BC ldr r1, [r6, r5] mov r2, #0x1f bic r1, r2 mov r2, #0x1f and r0, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x47 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F6C ; =0xFFFFFC1F lsr r0, r0, #0x16 and r1, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x48 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F70 ; =0xFFFF83FF lsr r0, r0, #0x11 and r1, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x49 mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F74 ; =0xFFF07FFF lsr r0, r0, #0xc and r1, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x4a mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F78 ; =0xFE0FFFFF lsr r0, r0, #7 and r1, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x4b mov r2, #0 bl FUN_020671BC lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F7C ; =0xC1FFFFFF lsr r0, r0, #2 and r1, r2 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC ldr r2, [r6, r5] ldr r1, _02242F80 ; =0xBFFFFFFF lsl r0, r0, #0x1f and r1, r2 lsr r0, r0, #1 orr r0, r1 str r0, [r6, r5] add r0, r4, #0 mov r1, #0x4d mov r2, #0 bl FUN_020671BC ldr r2, [r6, r5] ldr r1, _02242F84 ; =0x7FFFFFFF lsl r0, r0, #0x1f and r1, r2 orr r0, r1 str r0, [r6, r5] ldr r0, _02242F88 ; =0x0000213C ldr r1, [r7, r0] mov r0, #1 lsl r0, r0, #8 tst r0, r1 bne _02242D2E ldr r0, _02242F8C ; =0x00002D58 mov r2, #0 mov r1, #6 _02242D20: ldr r3, [sp, #0xc] add r2, r2, #1 strb r1, [r3, r0] add r3, r3, #1 str r3, [sp, #0xc] cmp r2, #8 blt _02242D20 _02242D2E: ldr r0, _02242F90 ; =0x00002D68 mov r1, #1 add r0, r7, r0 ldr r2, [r0, r5] bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #2 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #4 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #8 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #0x10 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #0x20 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #0x40 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] mov r1, #0x80 bic r2, r1 str r2, [r0, r5] ldr r2, [r0, r5] ldr r1, _02242F94 ; =0xFFFFFEFF and r1, r2 str r1, [r0, r5] ldr r2, [r0, r5] ldr r1, _02242F98 ; =0xFFFFFDFF and r1, r2 str r1, [r0, r5] ldr r2, [r0, r5] ldr r1, _02242F9C ; =0xFFFFFBFF and r1, r2 str r1, [r0, r5] add r0, r4, #0 mov r1, #0xb0 mov r2, #0 bl FUN_020671BC ldr r1, _02242FA0 ; =0x00002D64 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xb1 mov r2, #0 bl FUN_020671BC ldr r1, _02242FA4 ; =0x00002D65 add r2, r7, r5 strb r0, [r2, r1] add r1, #0x59 add r0, r7, r1 str r0, [sp, #0x1c] add r0, r4, #0 bl FUN_020689E0 ldr r1, [sp, #0x1c] mov r2, #0xf ldrb r1, [r1, r5] bic r1, r2 mov r2, #0xf and r0, r2 orr r1, r0 ldr r0, [sp, #0x1c] strb r1, [r0, r5] ldr r0, _02242FA8 ; =0x00002D66 add r6, r7, r0 add r0, r4, #0 bl FUN_02068A80 ldrb r1, [r6, r5] mov r2, #0x20 lsl r0, r0, #0x1f bic r1, r2 lsr r0, r0, #0x1a orr r0, r1 strb r0, [r6, r5] add r0, r4, #0 mov r1, #0x70 mov r2, #0 bl FUN_020671BC ldrb r1, [r6, r5] mov r2, #0x1f lsl r0, r0, #0x18 bic r1, r2 lsr r2, r0, #0x18 mov r0, #0x1f and r0, r2 orr r0, r1 strb r0, [r6, r5] ldr r0, [sp] bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 beq _02242E24 ldr r2, _02242FAC ; =0x00002D67 mov r0, #0 add r3, r7, r5 add r1, r2, #0 strb r0, [r3, r2] add r2, #0x51 add r1, #0x45 add r2, r7, r2 str r0, [r3, r1] add r1, r2, r5 str r1, [sp, #8] strh r0, [r2, r5] b _02242E58 _02242E24: add r0, r4, #0 mov r1, #0xa mov r2, #0 bl FUN_020671BC ldr r1, _02242FAC ; =0x00002D67 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC ldr r1, _02242FB0 ; =0x00002DAC add r2, r7, r5 str r0, [r2, r1] add r1, #0xc add r6, r7, r1 add r0, r6, r5 str r0, [sp, #8] add r0, r4, #0 mov r1, #6 mov r2, #0 bl FUN_020671BC strh r0, [r6, r5] _02242E58: ldr r0, [sp, #4] mov r1, #0xc0 add r6, r0, #0 mul r6, r1 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC ldr r1, _02242FB4 ; =0x00002D74 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #9 mov r2, #0 bl FUN_020671BC ldr r1, _02242FB8 ; =0x00002D75 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC ldr r1, _02242FBC ; =0x00002D8C add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0xa3 mov r2, #0 bl FUN_020671BC ldr r1, _02242FC0 ; =0x00002D90 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #8 mov r2, #0 bl FUN_020671BC ldr r1, _02242FC4 ; =0x00002DA4 add r2, r7, r6 str r0, [r2, r1] mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl FUN_020671BC ldr r1, _02242FC8 ; =0x00002DA8 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #7 mov r2, #0 bl FUN_020671BC ldr r1, _02242FCC ; =0x00002DB4 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0x9c mov r2, #0 bl FUN_020671BC ldr r1, [sp, #0x1c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1c ldrb r1, [r1, r5] mov r2, #0xf0 lsr r0, r0, #0x18 bic r1, r2 orr r1, r0 ldr r0, [sp, #0x1c] mov r2, #0 strb r1, [r0, r5] add r0, r4, #0 mov r1, #0x9a bl FUN_020671BC ldr r1, _02242FD0 ; =0x00002DBF add r2, r7, r6 strb r0, [r2, r1] mov r0, #5 bl FUN_02087A6C mov r1, #0 mov r2, #5 str r0, [sp, #0x20] bl FUN_02087A98 ldr r1, [sp, #0x18] ldr r0, [sp, #0x20] ldrh r1, [r1, r5] bl FUN_02087B78 ldr r1, _02242FD4 ; =0x00002D60 add r2, r7, r6 str r0, [r2, r1] ldr r0, [sp, #0x20] bl FUN_02087B0C ldr r0, [sp, #0x20] bl FUN_02087A84 ldr r2, _02242FD8 ; =0x00002D76 add r0, r4, #0 add r2, r7, r2 mov r1, #0x74 add r2, r2, r6 bl FUN_020671BC ldr r2, _02242FDC ; =0x00002D94 add r0, r4, #0 add r2, r7, r2 mov r1, #0x8f add r2, r2, r6 bl FUN_020671BC ldr r0, _02242FE0 ; =0x00002DBC b _02242FE4 .align 2, 0 _02242F4C: .word 0x00002D42 _02242F50: .word 0x00002D44 _02242F54: .word 0x00002D46 _02242F58: .word 0x00002D48 _02242F5C: .word 0x00002D4A _02242F60: .word 0x00002D4C _02242F64: .word 0x00002D6C _02242F68: .word 0x00002D70 _02242F6C: .word 0xFFFFFC1F _02242F70: .word 0xFFFF83FF _02242F74: .word 0xFFF07FFF _02242F78: .word 0xFE0FFFFF _02242F7C: .word 0xC1FFFFFF _02242F80: .word 0xBFFFFFFF _02242F84: .word 0x7FFFFFFF _02242F88: .word 0x0000213C _02242F8C: .word 0x00002D58 _02242F90: .word 0x00002D68 _02242F94: .word 0xFFFFFEFF _02242F98: .word 0xFFFFFDFF _02242F9C: .word 0xFFFFFBFF _02242FA0: .word 0x00002D64 _02242FA4: .word 0x00002D65 _02242FA8: .word 0x00002D66 _02242FAC: .word 0x00002D67 _02242FB0: .word 0x00002DAC _02242FB4: .word 0x00002D74 _02242FB8: .word 0x00002D75 _02242FBC: .word 0x00002D8C _02242FC0: .word 0x00002D90 _02242FC4: .word 0x00002DA4 _02242FC8: .word 0x00002DA8 _02242FCC: .word 0x00002DB4 _02242FD0: .word 0x00002DBF _02242FD4: .word 0x00002D60 _02242FD8: .word 0x00002D76 _02242FDC: .word 0x00002D94 _02242FE0: .word 0x00002DBC _02242FE4: mov r2, #0 add r1, r7, r6 strb r2, [r1, r0] add r0, r0, #1 strb r2, [r1, r0] ldr r0, [sp] ldr r1, [sp, #4] bl MOD11_02230270 add r4, r0, #0 ldr r0, [sp, #4] add r1, r7, r0 ldr r0, _02243048 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C lsl r1, r4, #3 add r2, r7, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 beq _0224302C ldr r0, [sp, #8] mov r1, #0 strh r1, [r0] ldr r0, _0224304C ; =0x00002DCC add sp, #0x24 add r2, r7, r0 ldr r1, [r2, r5] ldr r0, _02243050 ; =0xFFBFFFFF and r0, r1 str r0, [r2, r5] pop {r4, r5, r6, r7, pc} _0224302C: ldr r0, [sp, #8] ldrh r0, [r0] cmp r0, #0 beq _02243042 ldr r0, _0224304C ; =0x00002DCC add r2, r7, r0 mov r0, #1 ldr r1, [r2, r5] lsl r0, r0, #0x16 orr r0, r1 str r0, [r2, r5] _02243042: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _02243048: .word 0x0000219C _0224304C: .word 0x00002DCC _02243050: .word 0xFFBFFFFF thumb_func_start MOD11_02243054 MOD11_02243054: ; 0x02243054 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r2, #0 str r1, [sp] add r1, r5, #0 add r2, r3, #0 bl MOD11_02230014 mov r1, #0xc0 mul r1, r5 str r1, [sp, #4] mov r1, #0xa4 mov r2, #0 add r6, r0, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431A8 ; =0x00002D42 strh r0, [r2, r1] add r0, r6, #0 mov r1, #0xa5 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431AC ; =0x00002D44 strh r0, [r2, r1] add r0, r6, #0 mov r1, #0xa6 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431B0 ; =0x00002D46 strh r0, [r2, r1] add r0, r6, #0 mov r1, #0xa7 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431B4 ; =0x00002D48 strh r0, [r2, r1] add r0, r6, #0 mov r1, #0xa8 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431B8 ; =0x00002D4A strh r0, [r2, r1] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431BC ; =0x00002D74 strb r0, [r2, r1] add r0, r6, #0 mov r1, #9 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431C0 ; =0x00002D75 strb r0, [r2, r1] add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431C4 ; =0x00002D8C str r0, [r2, r1] add r0, r6, #0 mov r1, #0xa3 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431C8 ; =0x00002D90 str r0, [r2, r1] add r0, r1, #0 add r0, #0x20 ldr r2, [r2, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r2 bne _022431A4 mov r0, #0xc0 mul r0, r5 ldr r2, [sp] str r0, [sp, #8] add r7, r2, r0 add r1, #0x3c add r0, r2, #0 add r0, r0, r1 mov r4, #0 add r5, r7, #0 str r0, [sp, #0xc] _02243142: add r0, r4, #0 bl FUN_0206A92C ldr r2, [sp, #0xc] ldr r1, [sp, #8] ldr r1, [r2, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1c tst r0, r1 bne _02243186 add r1, r4, #0 add r0, r6, #0 add r1, #0x36 mov r2, #0 bl FUN_020671BC ldr r1, _022431CC ; =0x00002D4C mov r2, #0 strh r0, [r7, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3a bl FUN_020671BC ldr r1, _022431D0 ; =0x00002D6C mov r2, #0 strb r0, [r5, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3e bl FUN_020671BC ldr r1, _022431D4 ; =0x00002D70 strb r0, [r5, r1] _02243186: add r4, r4, #1 add r7, r7, #2 add r5, r5, #1 cmp r4, #4 blt _02243142 add r0, r6, #0 mov r1, #8 mov r2, #0 bl FUN_020671BC ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 ldr r1, _022431D8 ; =0x00002DA4 str r0, [r2, r1] _022431A4: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022431A8: .word 0x00002D42 _022431AC: .word 0x00002D44 _022431B0: .word 0x00002D46 _022431B4: .word 0x00002D48 _022431B8: .word 0x00002D4A _022431BC: .word 0x00002D74 _022431C0: .word 0x00002D75 _022431C4: .word 0x00002D8C _022431C8: .word 0x00002D90 _022431CC: .word 0x00002D4C _022431D0: .word 0x00002D6C _022431D4: .word 0x00002D70 _022431D8: .word 0x00002DA4 thumb_func_start MOD11_022431DC MOD11_022431DC: ; 0x022431DC push {r4, r5, r6, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 add r0, r4, #0 add r1, r6, #0 bl LoadFromNARC_7 mov r1, #0x19 lsl r1, r1, #6 cmp r0, r1 blo _022431F8 bl ErrorHandling _022431F8: add r0, r5, #0 add r0, #0xac str r4, [r0] add r0, r5, #0 add r0, #0xb0 str r6, [r0] add r0, r5, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x27 lsl r0, r0, #8 add r0, r5, r0 add r1, r4, #0 add r2, r6, #0 bl LoadFromNARC pop {r4, r5, r6, pc} thumb_func_start MOD11_0224321C MOD11_0224321C: ; 0x0224321C push {r4, r5, r6, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 add r0, r4, #0 add r1, r6, #0 bl LoadFromNARC_7 mov r1, #0x19 lsl r1, r1, #6 cmp r0, r1 blo _02243238 bl ErrorHandling _02243238: add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] cmp r0, #4 blt _02243246 bl ErrorHandling _02243246: add r1, r5, #0 add r1, #0xb8 ldr r1, [r1] add r0, r5, #0 add r0, #0xac lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r0] add r1, #0xbc str r0, [r1] add r1, r5, #0 add r1, #0xb8 ldr r1, [r1] add r0, r5, #0 add r0, #0xb0 lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r0] add r1, #0xcc str r0, [r1] add r1, r5, #0 add r1, #0xb8 ldr r1, [r1] add r0, r5, #0 add r0, #0xb4 lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r0] add r1, #0xdc str r0, [r1] add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] add r2, r6, #0 add r1, r0, #1 add r0, r5, #0 add r0, #0xb8 str r1, [r0] add r0, r5, #0 add r0, #0xac str r4, [r0] add r0, r5, #0 add r0, #0xb0 str r6, [r0] add r0, r5, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] mov r0, #0x27 lsl r0, r0, #8 add r0, r5, r0 add r1, r4, #0 bl LoadFromNARC pop {r4, r5, r6, pc} thumb_func_start MOD11_022432B4 MOD11_022432B4: ; 0x022432B4 push {r4, lr} add r4, r0, #0 add r1, r4, #0 add r1, #0xb8 ldr r1, [r1] cmp r1, #0 beq _022432FE add r1, r4, #0 add r1, #0xb8 ldr r1, [r1] sub r2, r1, #1 add r1, r4, #0 add r1, #0xb8 str r2, [r1] add r1, r4, #0 add r1, #0xb8 ldr r1, [r1] lsl r2, r1, #2 add r1, r4, r2 add r2, r4, r2 add r1, #0xbc add r2, #0xcc ldr r1, [r1] ldr r2, [r2] bl MOD11_022431DC add r0, r4, #0 add r0, #0xb8 ldr r0, [r0] lsl r0, r0, #2 add r0, r4, r0 add r0, #0xdc ldr r0, [r0] add r4, #0xb4 str r0, [r4] mov r0, #0 pop {r4, pc} _022432FE: mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02243304 MOD11_02243304: ; 0x02243304 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 lsl r0, r1, #6 lsl r6, r2, #4 add r1, r4, r0 add r5, r1, r6 mov r1, #0x22 add r7, r3, #0 mov r3, #0 lsl r1, r1, #8 _02243318: ldrb r2, [r5, r1] cmp r2, #0 bne _0224332C add r0, r4, r0 add r0, r0, r6 add r1, r0, r3 mov r0, #0x22 lsl r0, r0, #8 strb r7, [r1, r0] b _02243334 _0224332C: add r3, r3, #1 add r5, r5, #1 cmp r3, #0x10 blt _02243318 _02243334: cmp r3, #0x10 blt _0224333C bl ErrorHandling _0224333C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02243340 MOD11_02243340: ; 0x02243340 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 str r2, [sp] add r4, r3, #0 bne _02243350 bl ErrorHandling _02243350: ldr r0, [sp] lsl r6, r5, #6 lsl r5, r0, #4 add r0, r7, r6 add r3, r0, r5 mov r0, #0x22 mov r2, #0 lsl r0, r0, #8 _02243360: ldrb r1, [r3, r0] cmp r4, r1 bne _02243376 add r1, r7, r6 add r1, r1, r5 add r3, r1, r2 mov r1, #0x22 mov r0, #0 lsl r1, r1, #8 strb r0, [r3, r1] b _0224337E _02243376: add r2, r2, #1 add r3, r3, #1 cmp r2, #0x10 blt _02243360 _0224337E: cmp r2, #0x10 blt _02243386 bl ErrorHandling _02243386: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02243388 MOD11_02243388: ; 0x02243388 push {r3, r4, r5, r6, r7, lr} mov r2, #0 mov r4, #0x22 mov lr, r0 mov ip, r2 add r7, r0, #0 add r6, r2, #0 lsl r4, r4, #8 _02243398: mov r0, #0 add r3, r7, #0 _0224339C: add r1, r6, #0 _0224339E: add r5, r3, r1 ldrb r5, [r5, r4] add r1, r1, #1 add r2, r2, r5 cmp r1, #0x10 blt _0224339E add r0, r0, #1 add r3, #0x10 cmp r0, #4 blt _0224339C mov r0, ip add r0, r0, #1 add r7, #0x40 mov ip, r0 cmp r0, #4 blt _02243398 cmp r2, #0 bne _022433CA ldr r1, _022433D8 ; =0x00003148 mov r3, #0 mov r0, lr str r3, [r0, r1] _022433CA: cmp r2, #0 bne _022433D2 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _022433D2: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _022433D8: .word 0x00003148 thumb_func_start MOD11_022433DC MOD11_022433DC: ; 0x022433DC push {r3, lr} ldr r1, _022433F8 ; =0x00003148 ldr r2, [r0, r1] add r2, r2, #1 str r2, [r0, r1] ldr r1, [r0, r1] ldr r0, _022433FC ; =0x00000708 cmp r1, r0 ble _022433F4 mov r0, #1 bl FUN_020336A0 _022433F4: pop {r3, pc} nop _022433F8: .word 0x00003148 _022433FC: .word 0x00000708 thumb_func_start MOD11_02243400 MOD11_02243400: ; 0x02243400 push {r3, r4} lsl r1, r1, #8 add r4, r0, r1 mov r3, #0 mov r0, #0x23 mov r1, #1 add r2, r3, #0 lsl r0, r0, #8 lsl r1, r1, #8 _02243412: add r3, r3, #1 strb r2, [r4, r0] add r4, r4, #1 cmp r3, r1 blt _02243412 pop {r3, r4} bx lr thumb_func_start MOD11_02243420 MOD11_02243420: ; 0x02243420 push {r4, r5, r6, lr} mov r4, #0xb5 lsl r4, r4, #6 add r5, r0, r4 mov r6, #0xc0 add r4, r1, #0 mul r4, r6 add r4, r5, r4 cmp r2, #0x64 bls _02243436 b _02243794 _02243436: add r5, r2, r2 add r5, pc ldrh r5, [r5, #6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _02243442: ; jump table .short _0224350C - _02243442 - 2 ; case 0 .short _02243510 - _02243442 - 2 ; case 1 .short _02243514 - _02243442 - 2 ; case 2 .short _02243518 - _02243442 - 2 ; case 3 .short _0224351C - _02243442 - 2 ; case 4 .short _02243520 - _02243442 - 2 ; case 5 .short _02243524 - _02243442 - 2 ; case 6 .short _02243524 - _02243442 - 2 ; case 7 .short _02243524 - _02243442 - 2 ; case 8 .short _02243524 - _02243442 - 2 ; case 9 .short _0224352E - _02243442 - 2 ; case 10 .short _02243536 - _02243442 - 2 ; case 11 .short _0224353E - _02243442 - 2 ; case 12 .short _02243546 - _02243442 - 2 ; case 13 .short _0224354E - _02243442 - 2 ; case 14 .short _02243556 - _02243442 - 2 ; case 15 .short _0224355E - _02243442 - 2 ; case 16 .short _02243566 - _02243442 - 2 ; case 17 .short _0224356C - _02243442 - 2 ; case 18 .short _0224356C - _02243442 - 2 ; case 19 .short _0224356C - _02243442 - 2 ; case 20 .short _0224356C - _02243442 - 2 ; case 21 .short _0224356C - _02243442 - 2 ; case 22 .short _0224356C - _02243442 - 2 ; case 23 .short _0224356C - _02243442 - 2 ; case 24 .short _0224356C - _02243442 - 2 ; case 25 .short _02243576 - _02243442 - 2 ; case 26 .short _0224357C - _02243442 - 2 ; case 27 .short _0224357C - _02243442 - 2 ; case 28 .short _02243582 - _02243442 - 2 ; case 29 .short _0224358C - _02243442 - 2 ; case 30 .short _02243596 - _02243442 - 2 ; case 31 .short _02243596 - _02243442 - 2 ; case 32 .short _02243596 - _02243442 - 2 ; case 33 .short _02243596 - _02243442 - 2 ; case 34 .short _022435A0 - _02243442 - 2 ; case 35 .short _022435A0 - _02243442 - 2 ; case 36 .short _022435A0 - _02243442 - 2 ; case 37 .short _022435A0 - _02243442 - 2 ; case 38 .short _022435AA - _02243442 - 2 ; case 39 .short _022435AA - _02243442 - 2 ; case 40 .short _022435AA - _02243442 - 2 ; case 41 .short _022435AA - _02243442 - 2 ; case 42 .short _022435BE - _02243442 - 2 ; case 43 .short _022435C4 - _02243442 - 2 ; case 44 .short _022435CA - _02243442 - 2 ; case 45 .short _022435DC - _02243442 - 2 ; case 46 .short _022435E8 - _02243442 - 2 ; case 47 .short _022435EC - _02243442 - 2 ; case 48 .short _022435F0 - _02243442 - 2 ; case 49 .short _02243606 - _02243442 - 2 ; case 50 .short _0224360A - _02243442 - 2 ; case 51 .short _0224360E - _02243442 - 2 ; case 52 .short _02243612 - _02243442 - 2 ; case 53 .short _02243616 - _02243442 - 2 ; case 54 .short _0224361A - _02243442 - 2 ; case 55 .short _02243620 - _02243442 - 2 ; case 56 .short _02243626 - _02243442 - 2 ; case 57 .short _0224362C - _02243442 - 2 ; case 58 .short _02243636 - _02243442 - 2 ; case 59 .short _0224363C - _02243442 - 2 ; case 60 .short _02243642 - _02243442 - 2 ; case 61 .short _0224364C - _02243442 - 2 ; case 62 .short _02243656 - _02243442 - 2 ; case 63 .short _02243660 - _02243442 - 2 ; case 64 .short _0224366A - _02243442 - 2 ; case 65 .short _02243674 - _02243442 - 2 ; case 66 .short _0224367E - _02243442 - 2 ; case 67 .short _02243688 - _02243442 - 2 ; case 68 .short _02243692 - _02243442 - 2 ; case 69 .short _0224369C - _02243442 - 2 ; case 70 .short _022436A6 - _02243442 - 2 ; case 71 .short _022436B0 - _02243442 - 2 ; case 72 .short _022436BA - _02243442 - 2 ; case 73 .short _022436C2 - _02243442 - 2 ; case 74 .short _022436CC - _02243442 - 2 ; case 75 .short _022436D6 - _02243442 - 2 ; case 76 .short _022436E0 - _02243442 - 2 ; case 77 .short _022436EA - _02243442 - 2 ; case 78 .short _022436F4 - _02243442 - 2 ; case 79 .short _022436FE - _02243442 - 2 ; case 80 .short _02243708 - _02243442 - 2 ; case 81 .short _02243712 - _02243442 - 2 ; case 82 .short _0224371C - _02243442 - 2 ; case 83 .short _02243726 - _02243442 - 2 ; case 84 .short _02243730 - _02243442 - 2 ; case 85 .short _0224373A - _02243442 - 2 ; case 86 .short _02243744 - _02243442 - 2 ; case 87 .short _0224374A - _02243442 - 2 ; case 88 .short _02243750 - _02243442 - 2 ; case 89 .short _02243756 - _02243442 - 2 ; case 90 .short _0224375C - _02243442 - 2 ; case 91 .short _02243762 - _02243442 - 2 ; case 92 .short _02243768 - _02243442 - 2 ; case 93 .short _0224376E - _02243442 - 2 ; case 94 .short _02243774 - _02243442 - 2 ; case 95 .short _0224377A - _02243442 - 2 ; case 96 .short _02243782 - _02243442 - 2 ; case 97 .short _02243794 - _02243442 - 2 ; case 98 .short _02243794 - _02243442 - 2 ; case 99 .short _0224378A - _02243442 - 2 ; case 100 _0224350C: ldrh r0, [r4] pop {r4, r5, r6, pc} _02243510: ldrh r0, [r4, #2] pop {r4, r5, r6, pc} _02243514: ldrh r0, [r4, #4] pop {r4, r5, r6, pc} _02243518: ldrh r0, [r4, #6] pop {r4, r5, r6, pc} _0224351C: ldrh r0, [r4, #8] pop {r4, r5, r6, pc} _02243520: ldrh r0, [r4, #0xa] pop {r4, r5, r6, pc} _02243524: sub r0, r2, #6 lsl r0, r0, #1 add r0, r4, r0 ldrh r0, [r0, #0xc] pop {r4, r5, r6, pc} _0224352E: ldr r0, [r4, #0x14] lsl r0, r0, #0x1b lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _02243536: ldr r0, [r4, #0x14] lsl r0, r0, #0x16 lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _0224353E: ldr r0, [r4, #0x14] lsl r0, r0, #0x11 lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _02243546: ldr r0, [r4, #0x14] lsl r0, r0, #0xc lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _0224354E: ldr r0, [r4, #0x14] lsl r0, r0, #7 lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _02243556: ldr r0, [r4, #0x14] lsl r0, r0, #2 lsr r0, r0, #0x1b pop {r4, r5, r6, pc} _0224355E: ldr r0, [r4, #0x14] lsl r0, r0, #1 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _02243566: ldr r0, [r4, #0x14] lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _0224356C: sub r2, #0x12 add r1, r4, r2 mov r0, #0x18 ldrsb r0, [r1, r0] pop {r4, r5, r6, pc} _02243576: add r4, #0x27 ldrb r0, [r4] pop {r4, r5, r6, pc} _0224357C: bl MOD11_0224C740 pop {r4, r5, r6, pc} _02243582: add r4, #0x7e ldrb r0, [r4] lsl r0, r0, #0x1c lsr r0, r0, #0x1c pop {r4, r5, r6, pc} _0224358C: add r4, #0x26 ldrb r0, [r4] lsl r0, r0, #0x1a lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _02243596: sub r2, #0x1f add r0, r4, r2 add r0, #0x2c ldrb r0, [r0] pop {r4, r5, r6, pc} _022435A0: sub r2, #0x23 add r0, r4, r2 add r0, #0x30 ldrb r0, [r0] pop {r4, r5, r6, pc} _022435AA: sub r2, #0x27 lsl r0, r2, #1 add r1, r4, r2 add r0, r4, r0 add r1, #0x30 ldrh r0, [r0, #0xc] ldrb r1, [r1] bl FUN_0206AB30 pop {r4, r5, r6, pc} _022435BE: add r4, #0x34 ldrb r0, [r4] pop {r4, r5, r6, pc} _022435C4: add r4, #0x35 ldrb r0, [r4] pop {r4, r5, r6, pc} _022435CA: mov r1, #0 _022435CC: ldrh r0, [r4, #0x36] add r1, r1, #1 add r4, r4, #2 strh r0, [r3] add r3, r3, #2 cmp r1, #0xb blt _022435CC b _02243798 _022435DC: add r4, #0x36 add r0, r3, #0 add r1, r4, #0 bl FUN_02021E28 b _02243798 _022435E8: ldr r0, [r4, #0x4c] pop {r4, r5, r6, pc} _022435EC: ldr r0, [r4, #0x50] pop {r4, r5, r6, pc} _022435F0: mov r1, #0 _022435F2: add r0, r4, #0 add r0, #0x54 ldrh r0, [r0] add r1, r1, #1 add r4, r4, #2 strh r0, [r3] add r3, r3, #2 cmp r1, #0xb blt _022435F2 b _02243798 _02243606: ldr r0, [r4, #0x64] pop {r4, r5, r6, pc} _0224360A: ldr r0, [r4, #0x68] pop {r4, r5, r6, pc} _0224360E: ldr r0, [r4, #0x6c] pop {r4, r5, r6, pc} _02243612: ldr r0, [r4, #0x70] pop {r4, r5, r6, pc} _02243616: ldr r0, [r4, #0x74] pop {r4, r5, r6, pc} _0224361A: add r4, #0x78 ldrh r0, [r4] pop {r4, r5, r6, pc} _02243620: add r4, #0x7c ldrb r0, [r4] pop {r4, r5, r6, pc} _02243626: add r4, #0x7d ldrb r0, [r4] pop {r4, r5, r6, pc} _0224362C: add r4, #0x7e ldrb r0, [r4] lsl r0, r0, #0x18 lsr r0, r0, #0x1c pop {r4, r5, r6, pc} _02243636: add r4, #0x80 ldr r0, [r4] pop {r4, r5, r6, pc} _0224363C: add r4, #0x84 ldr r0, [r4] pop {r4, r5, r6, pc} _02243642: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x1d lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _0224364C: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x1a lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _02243656: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x18 lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _02243660: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x15 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _0224366A: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x13 lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _02243674: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0x11 lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _0224367E: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0xe lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _02243688: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #0xb lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _02243692: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #8 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _0224369C: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #5 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _022436A6: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #2 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _022436B0: add r4, #0x88 ldr r0, [r4] lsl r0, r0, #1 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _022436BA: add r4, #0x88 ldr r0, [r4] lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _022436C2: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x1e lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _022436CC: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x1a lsr r0, r0, #0x1c pop {r4, r5, r6, pc} _022436D6: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x18 lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _022436E0: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x16 lsr r0, r0, #0x1e pop {r4, r5, r6, pc} _022436EA: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x13 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _022436F4: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0x10 lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _022436FE: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0xd lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _02243708: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #0xa lsr r0, r0, #0x1d pop {r4, r5, r6, pc} _02243712: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #9 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _0224371C: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #5 lsr r0, r0, #0x1c pop {r4, r5, r6, pc} _02243726: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #4 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _02243730: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #3 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _0224373A: add r4, #0x8c ldr r0, [r4] lsl r0, r0, #2 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _02243744: add r4, #0x90 ldr r0, [r4] pop {r4, r5, r6, pc} _0224374A: add r4, #0x94 ldr r0, [r4] pop {r4, r5, r6, pc} _02243750: add r4, #0x98 ldr r0, [r4] pop {r4, r5, r6, pc} _02243756: add r4, #0xa0 ldr r0, [r4] pop {r4, r5, r6, pc} _0224375C: add r4, #0xa4 ldr r0, [r4] pop {r4, r5, r6, pc} _02243762: add r4, #0xa8 ldrh r0, [r4] pop {r4, r5, r6, pc} _02243768: add r4, #0xac ldrh r0, [r4] pop {r4, r5, r6, pc} _0224376E: add r4, #0xaa ldrh r0, [r4] pop {r4, r5, r6, pc} _02243774: add r4, #0xbc ldr r0, [r4] pop {r4, r5, r6, pc} _0224377A: ldr r0, [r4, #0x28] lsl r0, r0, #0x19 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _02243782: ldr r0, [r4, #0x28] lsl r0, r0, #0x18 lsr r0, r0, #0x1f pop {r4, r5, r6, pc} _0224378A: add r6, #0x78 ldr r2, [r0, r6] bl MOD11_02243420 pop {r4, r5, r6, pc} _02243794: bl ErrorHandling _02243798: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_0224379C MOD11_0224379C: ; 0x0224379C push {r4, r5, r6, lr} add r5, r2, #0 mov r2, #0xb5 lsl r2, r2, #6 add r4, r0, r2 mov r6, #0xc0 add r2, r1, #0 mul r2, r6 add r2, r4, r2 cmp r5, #0x64 bls _022437B4 b _02243D9E _022437B4: add r4, r5, r5 add r4, pc ldrh r4, [r4, #6] lsl r4, r4, #0x10 asr r4, r4, #0x10 add pc, r4 _022437C0: ; jump table .short _0224388A - _022437C0 - 2 ; case 0 .short _02243890 - _022437C0 - 2 ; case 1 .short _02243896 - _022437C0 - 2 ; case 2 .short _0224389C - _022437C0 - 2 ; case 3 .short _022438A2 - _022437C0 - 2 ; case 4 .short _022438A8 - _022437C0 - 2 ; case 5 .short _022438AE - _022437C0 - 2 ; case 6 .short _022438AE - _022437C0 - 2 ; case 7 .short _022438AE - _022437C0 - 2 ; case 8 .short _022438AE - _022437C0 - 2 ; case 9 .short _022438BA - _022437C0 - 2 ; case 10 .short _022438CC - _022437C0 - 2 ; case 11 .short _022438DE - _022437C0 - 2 ; case 12 .short _022438F0 - _022437C0 - 2 ; case 13 .short _02243902 - _022437C0 - 2 ; case 14 .short _02243914 - _022437C0 - 2 ; case 15 .short _02243926 - _022437C0 - 2 ; case 16 .short _02243938 - _022437C0 - 2 ; case 17 .short _02243948 - _022437C0 - 2 ; case 18 .short _02243948 - _022437C0 - 2 ; case 19 .short _02243948 - _022437C0 - 2 ; case 20 .short _02243948 - _022437C0 - 2 ; case 21 .short _02243948 - _022437C0 - 2 ; case 22 .short _02243948 - _022437C0 - 2 ; case 23 .short _02243948 - _022437C0 - 2 ; case 24 .short _02243948 - _022437C0 - 2 ; case 25 .short _02243954 - _022437C0 - 2 ; case 26 .short _0224395C - _022437C0 - 2 ; case 27 .short _02243964 - _022437C0 - 2 ; case 28 .short _0224396C - _022437C0 - 2 ; case 29 .short _02243984 - _022437C0 - 2 ; case 30 .short _0224399C - _022437C0 - 2 ; case 31 .short _0224399C - _022437C0 - 2 ; case 32 .short _0224399C - _022437C0 - 2 ; case 33 .short _0224399C - _022437C0 - 2 ; case 34 .short _022439A8 - _022437C0 - 2 ; case 35 .short _022439A8 - _022437C0 - 2 ; case 36 .short _022439A8 - _022437C0 - 2 ; case 37 .short _022439A8 - _022437C0 - 2 ; case 38 .short _022439B4 - _022437C0 - 2 ; case 39 .short _022439B4 - _022437C0 - 2 ; case 40 .short _022439B4 - _022437C0 - 2 ; case 41 .short _022439B4 - _022437C0 - 2 ; case 42 .short _022439BA - _022437C0 - 2 ; case 43 .short _022439C2 - _022437C0 - 2 ; case 44 .short _022439CA - _022437C0 - 2 ; case 45 .short _02243D9E - _022437C0 - 2 ; case 46 .short _022439DC - _022437C0 - 2 ; case 47 .short _022439E4 - _022437C0 - 2 ; case 48 .short _022439EA - _022437C0 - 2 ; case 49 .short _02243A00 - _022437C0 - 2 ; case 50 .short _02243A06 - _022437C0 - 2 ; case 51 .short _02243A0C - _022437C0 - 2 ; case 52 .short _02243A12 - _022437C0 - 2 ; case 53 .short _02243A18 - _022437C0 - 2 ; case 54 .short _02243A1E - _022437C0 - 2 ; case 55 .short _02243A26 - _022437C0 - 2 ; case 56 .short _02243A2E - _022437C0 - 2 ; case 57 .short _02243A36 - _022437C0 - 2 ; case 58 .short _02243A4E - _022437C0 - 2 ; case 59 .short _02243A56 - _022437C0 - 2 ; case 60 .short _02243A5E - _022437C0 - 2 ; case 61 .short _02243A76 - _022437C0 - 2 ; case 62 .short _02243A8E - _022437C0 - 2 ; case 63 .short _02243AA6 - _022437C0 - 2 ; case 64 .short _02243ABE - _022437C0 - 2 ; case 65 .short _02243AD6 - _022437C0 - 2 ; case 66 .short _02243AEE - _022437C0 - 2 ; case 67 .short _02243B06 - _022437C0 - 2 ; case 68 .short _02243B1E - _022437C0 - 2 ; case 69 .short _02243B36 - _022437C0 - 2 ; case 70 .short _02243B4E - _022437C0 - 2 ; case 71 .short _02243B66 - _022437C0 - 2 ; case 72 .short _02243B7E - _022437C0 - 2 ; case 73 .short _02243B94 - _022437C0 - 2 ; case 74 .short _02243BAC - _022437C0 - 2 ; case 75 .short _02243BC4 - _022437C0 - 2 ; case 76 .short _02243BDC - _022437C0 - 2 ; case 77 .short _02243BF4 - _022437C0 - 2 ; case 78 .short _02243C0C - _022437C0 - 2 ; case 79 .short _02243C24 - _022437C0 - 2 ; case 80 .short _02243C3C - _022437C0 - 2 ; case 81 .short _02243C54 - _022437C0 - 2 ; case 82 .short _02243C6C - _022437C0 - 2 ; case 83 .short _02243CE0 - _022437C0 - 2 ; case 84 .short _02243CF8 - _022437C0 - 2 ; case 85 .short _02243D10 - _022437C0 - 2 ; case 86 .short _02243D28 - _022437C0 - 2 ; case 87 .short _02243D30 - _022437C0 - 2 ; case 88 .short _02243D38 - _022437C0 - 2 ; case 89 .short _02243D40 - _022437C0 - 2 ; case 90 .short _02243D48 - _022437C0 - 2 ; case 91 .short _02243D50 - _022437C0 - 2 ; case 92 .short _02243D58 - _022437C0 - 2 ; case 93 .short _02243D60 - _022437C0 - 2 ; case 94 .short _02243D68 - _022437C0 - 2 ; case 95 .short _02243D70 - _022437C0 - 2 ; case 96 .short _02243D82 - _022437C0 - 2 ; case 97 .short _02243D9E - _022437C0 - 2 ; case 98 .short _02243D9E - _022437C0 - 2 ; case 99 .short _02243D94 - _022437C0 - 2 ; case 100 _0224388A: ldrh r0, [r3] strh r0, [r2] pop {r4, r5, r6, pc} _02243890: ldrh r0, [r3] strh r0, [r2, #2] pop {r4, r5, r6, pc} _02243896: ldrh r0, [r3] strh r0, [r2, #4] pop {r4, r5, r6, pc} _0224389C: ldrh r0, [r3] strh r0, [r2, #6] pop {r4, r5, r6, pc} _022438A2: ldrh r0, [r3] strh r0, [r2, #8] pop {r4, r5, r6, pc} _022438A8: ldrh r0, [r3] strh r0, [r2, #0xa] pop {r4, r5, r6, pc} _022438AE: sub r0, r5, #6 lsl r0, r0, #1 ldrh r1, [r3] add r0, r2, r0 strh r1, [r0, #0xc] pop {r4, r5, r6, pc} _022438BA: ldr r4, [r2, #0x14] mov r0, #0x1f bic r4, r0 ldrb r1, [r3] mov r0, #0x1f and r0, r1 orr r0, r4 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _022438CC: ldr r1, [r2, #0x14] ldr r0, _02243C78 ; =0xFFFFFC1F and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1b lsr r0, r0, #0x16 orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _022438DE: ldr r1, [r2, #0x14] ldr r0, _02243C7C ; =0xFFFF83FF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1b lsr r0, r0, #0x11 orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _022438F0: ldr r1, [r2, #0x14] ldr r0, _02243C80 ; =0xFFF07FFF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1b lsr r0, r0, #0xc orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _02243902: ldr r1, [r2, #0x14] ldr r0, _02243C84 ; =0xFE0FFFFF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1b lsr r0, r0, #7 orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _02243914: ldr r1, [r2, #0x14] ldr r0, _02243C88 ; =0xC1FFFFFF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1b lsr r0, r0, #2 orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _02243926: ldr r1, [r2, #0x14] ldr r0, _02243C8C ; =0xBFFFFFFF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #1 orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _02243938: ldr r1, [r2, #0x14] ldr r0, _02243C90 ; =0x7FFFFFFF and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f orr r0, r1 str r0, [r2, #0x14] pop {r4, r5, r6, pc} _02243948: mov r0, #0 ldrsb r1, [r3, r0] sub r5, #0x12 add r0, r2, r5 strb r1, [r0, #0x18] pop {r4, r5, r6, pc} _02243954: ldrb r0, [r3] add r2, #0x27 strb r0, [r2] pop {r4, r5, r6, pc} _0224395C: ldrb r0, [r3] add r2, #0x24 strb r0, [r2] pop {r4, r5, r6, pc} _02243964: ldrb r0, [r3] add r2, #0x25 strb r0, [r2] pop {r4, r5, r6, pc} _0224396C: add r0, r2, #0 add r0, #0x7e ldrb r4, [r0] ldrb r1, [r3] mov r0, #0xf bic r4, r0 mov r0, #0xf and r0, r1 orr r0, r4 add r2, #0x7e strb r0, [r2] pop {r4, r5, r6, pc} _02243984: add r0, r2, #0 add r0, #0x26 ldrb r1, [r0] mov r0, #0x20 add r2, #0x26 bic r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #0x1a orr r0, r1 strb r0, [r2] pop {r4, r5, r6, pc} _0224399C: sub r5, #0x1f add r0, r2, r5 ldrb r1, [r3] add r0, #0x2c strb r1, [r0] pop {r4, r5, r6, pc} _022439A8: sub r5, #0x23 add r0, r2, r5 ldrb r1, [r3] add r0, #0x30 strb r1, [r0] pop {r4, r5, r6, pc} _022439B4: bl ErrorHandling pop {r4, r5, r6, pc} _022439BA: ldrb r0, [r3] add r2, #0x34 strb r0, [r2] pop {r4, r5, r6, pc} _022439C2: ldrb r0, [r3] add r2, #0x35 strb r0, [r2] pop {r4, r5, r6, pc} _022439CA: mov r1, #0 _022439CC: ldrh r0, [r3] add r1, r1, #1 add r3, r3, #2 strh r0, [r2, #0x36] add r2, r2, #2 cmp r1, #0xb blt _022439CC pop {r4, r5, r6, pc} _022439DC: mov r0, #0 ldrsh r0, [r3, r0] str r0, [r2, #0x4c] pop {r4, r5, r6, pc} _022439E4: ldrh r0, [r3] str r0, [r2, #0x50] pop {r4, r5, r6, pc} _022439EA: mov r4, #0 _022439EC: ldrh r1, [r3] add r0, r2, #0 add r0, #0x54 add r4, r4, #1 strh r1, [r0] add r3, r3, #2 add r2, r2, #2 cmp r4, #0xb blt _022439EC pop {r4, r5, r6, pc} _02243A00: ldr r0, [r3] str r0, [r2, #0x64] pop {r4, r5, r6, pc} _02243A06: ldr r0, [r3] str r0, [r2, #0x68] pop {r4, r5, r6, pc} _02243A0C: ldr r0, [r3] str r0, [r2, #0x6c] pop {r4, r5, r6, pc} _02243A12: ldr r0, [r3] str r0, [r2, #0x70] pop {r4, r5, r6, pc} _02243A18: ldr r0, [r3] str r0, [r2, #0x74] pop {r4, r5, r6, pc} _02243A1E: ldrh r0, [r3] add r2, #0x78 strh r0, [r2] pop {r4, r5, r6, pc} _02243A26: ldrb r0, [r3] add r2, #0x7c strb r0, [r2] pop {r4, r5, r6, pc} _02243A2E: ldrb r0, [r3] add r2, #0x7d strb r0, [r2] pop {r4, r5, r6, pc} _02243A36: add r0, r2, #0 add r0, #0x7e ldrb r1, [r0] mov r0, #0xf0 add r2, #0x7e bic r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1c lsr r0, r0, #0x18 orr r0, r1 strb r0, [r2] pop {r4, r5, r6, pc} _02243A4E: ldr r0, [r3] add r2, #0x80 str r0, [r2] pop {r4, r5, r6, pc} _02243A56: ldr r0, [r3] add r2, #0x84 str r0, [r2] pop {r4, r5, r6, pc} _02243A5E: add r0, r2, #0 add r0, #0x88 ldr r4, [r0] mov r0, #7 bic r4, r0 ldrb r1, [r3] mov r0, #7 add r2, #0x88 and r0, r1 orr r0, r4 str r0, [r2] pop {r4, r5, r6, pc} _02243A76: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] mov r0, #0x38 bic r1, r0 ldrb r0, [r3] add r2, #0x88 lsl r0, r0, #0x1d lsr r0, r0, #0x1a orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243A8E: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] mov r0, #0xc0 bic r1, r0 ldrb r0, [r3] add r2, #0x88 lsl r0, r0, #0x1e lsr r0, r0, #0x18 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243AA6: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243C94 ; =0xFFFFF8FF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0x15 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243ABE: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243C98 ; =0xFFFFE7FF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1e lsr r0, r0, #0x13 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243AD6: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243C9C ; =0xFFFF9FFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1e lsr r0, r0, #0x11 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243AEE: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243CA0 ; =0xFFFC7FFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0xe orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B06: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243CA4 ; =0xFFE3FFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0xb orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B1E: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243CA8 ; =0xFF1FFFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #8 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B36: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243CAC ; =0xF8FFFFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #5 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B4E: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243CB0 ; =0xC7FFFFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #2 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B66: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243C8C ; =0xBFFFFFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #1 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B7E: add r0, r2, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02243C90 ; =0x7FFFFFFF add r2, #0x88 and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243B94: add r0, r2, #0 add r0, #0x8c ldr r4, [r0] mov r0, #3 bic r4, r0 ldrb r1, [r3] mov r0, #3 add r2, #0x8c and r0, r1 orr r0, r4 str r0, [r2] pop {r4, r5, r6, pc} _02243BAC: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] mov r0, #0x3c bic r1, r0 ldrb r0, [r3] add r2, #0x8c lsl r0, r0, #0x1c lsr r0, r0, #0x1a orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243BC4: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] mov r0, #0xc0 bic r1, r0 ldrb r0, [r3] add r2, #0x8c lsl r0, r0, #0x1e lsr r0, r0, #0x18 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243BDC: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CB4 ; =0xFFFFFCFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1e lsr r0, r0, #0x16 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243BF4: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CB8 ; =0xFFFFE3FF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0x13 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243C0C: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CBC ; =0xFFFF1FFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0x10 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243C24: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CC0 ; =0xFFF8FFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0xd orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243C3C: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CC4 ; =0xFFC7FFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1d lsr r0, r0, #0xa orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243C54: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CC8 ; =0xFFBFFFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #9 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243C6C: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243CCC ; =0xF87FFFFF b _02243CD0 nop _02243C78: .word 0xFFFFFC1F _02243C7C: .word 0xFFFF83FF _02243C80: .word 0xFFF07FFF _02243C84: .word 0xFE0FFFFF _02243C88: .word 0xC1FFFFFF _02243C8C: .word 0xBFFFFFFF _02243C90: .word 0x7FFFFFFF _02243C94: .word 0xFFFFF8FF _02243C98: .word 0xFFFFE7FF _02243C9C: .word 0xFFFF9FFF _02243CA0: .word 0xFFFC7FFF _02243CA4: .word 0xFFE3FFFF _02243CA8: .word 0xFF1FFFFF _02243CAC: .word 0xF8FFFFFF _02243CB0: .word 0xC7FFFFFF _02243CB4: .word 0xFFFFFCFF _02243CB8: .word 0xFFFFE3FF _02243CBC: .word 0xFFFF1FFF _02243CC0: .word 0xFFF8FFFF _02243CC4: .word 0xFFC7FFFF _02243CC8: .word 0xFFBFFFFF _02243CCC: .word 0xF87FFFFF _02243CD0: add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1c lsr r0, r0, #5 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243CE0: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243DA4 ; =0xF7FFFFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #4 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243CF8: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243DA8 ; =0xEFFFFFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #3 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243D10: add r0, r2, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02243DAC ; =0xDFFFFFFF add r2, #0x8c and r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #2 orr r0, r1 str r0, [r2] pop {r4, r5, r6, pc} _02243D28: ldr r0, [r3] add r2, #0x90 str r0, [r2] pop {r4, r5, r6, pc} _02243D30: ldr r0, [r3] add r2, #0x94 str r0, [r2] pop {r4, r5, r6, pc} _02243D38: ldr r0, [r3] add r2, #0x98 str r0, [r2] pop {r4, r5, r6, pc} _02243D40: ldr r0, [r3] add r2, #0xa0 str r0, [r2] pop {r4, r5, r6, pc} _02243D48: ldr r0, [r3] add r2, #0xa4 str r0, [r2] pop {r4, r5, r6, pc} _02243D50: ldrh r0, [r3] add r2, #0xa8 strh r0, [r2] pop {r4, r5, r6, pc} _02243D58: ldrh r0, [r3] add r2, #0xac strh r0, [r2] pop {r4, r5, r6, pc} _02243D60: ldrh r0, [r3] add r2, #0xaa strh r0, [r2] pop {r4, r5, r6, pc} _02243D68: ldr r0, [r3] add r2, #0xbc str r0, [r2] pop {r4, r5, r6, pc} _02243D70: ldr r1, [r2, #0x28] mov r0, #0x40 bic r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #0x19 orr r0, r1 str r0, [r2, #0x28] pop {r4, r5, r6, pc} _02243D82: ldr r1, [r2, #0x28] mov r0, #0x80 bic r1, r0 ldrb r0, [r3] lsl r0, r0, #0x1f lsr r0, r0, #0x18 orr r0, r1 str r0, [r2, #0x28] pop {r4, r5, r6, pc} _02243D94: add r6, #0x78 ldr r2, [r0, r6] bl MOD11_0224379C pop {r4, r5, r6, pc} _02243D9E: bl ErrorHandling pop {r4, r5, r6, pc} .align 2, 0 _02243DA4: .word 0xF7FFFFFF _02243DA8: .word 0xEFFFFFFF _02243DAC: .word 0xDFFFFFFF thumb_func_start MOD11_02243DB0 MOD11_02243DB0: ; 0x02243DB0 push {r4, lr} mov r4, #0xb5 lsl r4, r4, #6 add r4, r0, r4 mov r0, #0xc0 mul r0, r1 add r1, r2, #0 add r0, r4, r0 add r2, r3, #0 bl MOD11_02243DC8 pop {r4, pc} thumb_func_start MOD11_02243DC8 MOD11_02243DC8: ; 0x02243DC8 push {r4, r5, r6, lr} add r4, r0, #0 add r5, r2, #0 cmp r1, #0x61 bls _02243DD4 b _02244200 _02243DD4: add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02243DE0: ; jump table .short _02244200 - _02243DE0 - 2 ; case 0 .short _02243EA4 - _02243DE0 - 2 ; case 1 .short _02243EAC - _02243DE0 - 2 ; case 2 .short _02243EB4 - _02243DE0 - 2 ; case 3 .short _02243EBC - _02243DE0 - 2 ; case 4 .short _02243EC4 - _02243DE0 - 2 ; case 5 .short _02244200 - _02243DE0 - 2 ; case 6 .short _02244200 - _02243DE0 - 2 ; case 7 .short _02244200 - _02243DE0 - 2 ; case 8 .short _02244200 - _02243DE0 - 2 ; case 9 .short _02243ECC - _02243DE0 - 2 ; case 10 .short _02243EE4 - _02243DE0 - 2 ; case 11 .short _02243EFA - _02243DE0 - 2 ; case 12 .short _02243F10 - _02243DE0 - 2 ; case 13 .short _02243F26 - _02243DE0 - 2 ; case 14 .short _02243F3C - _02243DE0 - 2 ; case 15 .short _02244200 - _02243DE0 - 2 ; case 16 .short _02244200 - _02243DE0 - 2 ; case 17 .short _02243F52 - _02243DE0 - 2 ; case 18 .short _02243F52 - _02243DE0 - 2 ; case 19 .short _02243F52 - _02243DE0 - 2 ; case 20 .short _02243F52 - _02243DE0 - 2 ; case 21 .short _02243F52 - _02243DE0 - 2 ; case 22 .short _02243F52 - _02243DE0 - 2 ; case 23 .short _02243F52 - _02243DE0 - 2 ; case 24 .short _02243F52 - _02243DE0 - 2 ; case 25 .short _02244200 - _02243DE0 - 2 ; case 26 .short _02244200 - _02243DE0 - 2 ; case 27 .short _02244200 - _02243DE0 - 2 ; case 28 .short _02244200 - _02243DE0 - 2 ; case 29 .short _02244200 - _02243DE0 - 2 ; case 30 .short _02243F70 - _02243DE0 - 2 ; case 31 .short _02243F70 - _02243DE0 - 2 ; case 32 .short _02243F70 - _02243DE0 - 2 ; case 33 .short _02243F70 - _02243DE0 - 2 ; case 34 .short _02243F96 - _02243DE0 - 2 ; case 35 .short _02243F96 - _02243DE0 - 2 ; case 36 .short _02243F96 - _02243DE0 - 2 ; case 37 .short _02243F96 - _02243DE0 - 2 ; case 38 .short _02244200 - _02243DE0 - 2 ; case 39 .short _02244200 - _02243DE0 - 2 ; case 40 .short _02244200 - _02243DE0 - 2 ; case 41 .short _02244200 - _02243DE0 - 2 ; case 42 .short _02243FA2 - _02243DE0 - 2 ; case 43 .short _02243FB0 - _02243DE0 - 2 ; case 44 .short _02244200 - _02243DE0 - 2 ; case 45 .short _02244200 - _02243DE0 - 2 ; case 46 .short _02243FD2 - _02243DE0 - 2 ; case 47 .short _02243FE4 - _02243DE0 - 2 ; case 48 .short _02244200 - _02243DE0 - 2 ; case 49 .short _02243FEC - _02243DE0 - 2 ; case 50 .short _02243FF4 - _02243DE0 - 2 ; case 51 .short _02244200 - _02243DE0 - 2 ; case 52 .short _02244200 - _02243DE0 - 2 ; case 53 .short _02244200 - _02243DE0 - 2 ; case 54 .short _02244200 - _02243DE0 - 2 ; case 55 .short _02244200 - _02243DE0 - 2 ; case 56 .short _02244200 - _02243DE0 - 2 ; case 57 .short _02244200 - _02243DE0 - 2 ; case 58 .short _02244200 - _02243DE0 - 2 ; case 59 .short _02244200 - _02243DE0 - 2 ; case 60 .short _02243FFC - _02243DE0 - 2 ; case 61 .short _0224401A - _02243DE0 - 2 ; case 62 .short _02244038 - _02243DE0 - 2 ; case 63 .short _02244056 - _02243DE0 - 2 ; case 64 .short _02244072 - _02243DE0 - 2 ; case 65 .short _0224408E - _02243DE0 - 2 ; case 66 .short _022440AA - _02243DE0 - 2 ; case 67 .short _022440C6 - _02243DE0 - 2 ; case 68 .short _022440E2 - _02243DE0 - 2 ; case 69 .short _022440FE - _02243DE0 - 2 ; case 70 .short _0224411A - _02243DE0 - 2 ; case 71 .short _02244200 - _02243DE0 - 2 ; case 72 .short _02244200 - _02243DE0 - 2 ; case 73 .short _02244200 - _02243DE0 - 2 ; case 74 .short _02244200 - _02243DE0 - 2 ; case 75 .short _02244200 - _02243DE0 - 2 ; case 76 .short _02244200 - _02243DE0 - 2 ; case 77 .short _02244136 - _02243DE0 - 2 ; case 78 .short _02244152 - _02243DE0 - 2 ; case 79 .short _0224416E - _02243DE0 - 2 ; case 80 .short _02244200 - _02243DE0 - 2 ; case 81 .short _02244200 - _02243DE0 - 2 ; case 82 .short _02244200 - _02243DE0 - 2 ; case 83 .short _02244200 - _02243DE0 - 2 ; case 84 .short _02244200 - _02243DE0 - 2 ; case 85 .short _02244200 - _02243DE0 - 2 ; case 86 .short _0224418A - _02243DE0 - 2 ; case 87 .short _02244198 - _02243DE0 - 2 ; case 88 .short _022441A6 - _02243DE0 - 2 ; case 89 .short _022441B4 - _02243DE0 - 2 ; case 90 .short _02244200 - _02243DE0 - 2 ; case 91 .short _02244200 - _02243DE0 - 2 ; case 92 .short _02244200 - _02243DE0 - 2 ; case 93 .short _02244200 - _02243DE0 - 2 ; case 94 .short _022441C2 - _02243DE0 - 2 ; case 95 .short _022441D0 - _02243DE0 - 2 ; case 96 .short _022441E8 - _02243DE0 - 2 ; case 97 _02243EA4: ldrh r0, [r4, #2] add r0, r0, r5 strh r0, [r4, #2] pop {r4, r5, r6, pc} _02243EAC: ldrh r0, [r4, #4] add r0, r0, r5 strh r0, [r4, #4] pop {r4, r5, r6, pc} _02243EB4: ldrh r0, [r4, #6] add r0, r0, r5 strh r0, [r4, #6] pop {r4, r5, r6, pc} _02243EBC: ldrh r0, [r4, #8] add r0, r0, r5 strh r0, [r4, #8] pop {r4, r5, r6, pc} _02243EC4: ldrh r0, [r4, #0xa] add r0, r0, r5 strh r0, [r4, #0xa] pop {r4, r5, r6, pc} _02243ECC: ldr r2, [r4, #0x14] mov r1, #0x1f add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x1b add r2, r1, r5 mov r1, #0x1f and r1, r2 orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243EE4: ldr r1, [r4, #0x14] ldr r0, _02244208 ; =0xFFFFFC1F and r0, r1 lsl r1, r1, #0x16 lsr r1, r1, #0x1b add r1, r1, r5 lsl r1, r1, #0x1b lsr r1, r1, #0x16 orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243EFA: ldr r1, [r4, #0x14] ldr r0, _0224420C ; =0xFFFF83FF and r0, r1 lsl r1, r1, #0x11 lsr r1, r1, #0x1b add r1, r1, r5 lsl r1, r1, #0x1b lsr r1, r1, #0x11 orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243F10: ldr r1, [r4, #0x14] ldr r0, _02244210 ; =0xFFF07FFF and r0, r1 lsl r1, r1, #0xc lsr r1, r1, #0x1b add r1, r1, r5 lsl r1, r1, #0x1b lsr r1, r1, #0xc orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243F26: ldr r1, [r4, #0x14] ldr r0, _02244214 ; =0xFE0FFFFF and r0, r1 lsl r1, r1, #7 lsr r1, r1, #0x1b add r1, r1, r5 lsl r1, r1, #0x1b lsr r1, r1, #7 orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243F3C: ldr r1, [r4, #0x14] ldr r0, _02244218 ; =0xC1FFFFFF and r0, r1 lsl r1, r1, #2 lsr r1, r1, #0x1b add r1, r1, r5 lsl r1, r1, #0x1b lsr r1, r1, #2 orr r0, r1 str r0, [r4, #0x14] pop {r4, r5, r6, pc} _02243F52: add r4, #0x18 sub r1, #0x12 ldrsb r0, [r4, r1] add r0, r5, r0 bpl _02243F62 mov r0, #0 strb r0, [r4, r1] pop {r4, r5, r6, pc} _02243F62: cmp r0, #0xc ble _02243F6C mov r0, #0xc strb r0, [r4, r1] pop {r4, r5, r6, pc} _02243F6C: strb r0, [r4, r1] pop {r4, r5, r6, pc} _02243F70: add r6, r1, #0 sub r6, #0x1f lsl r0, r6, #1 add r1, r4, r6 add r0, r4, r0 add r1, #0x30 ldrh r0, [r0, #0xc] ldrb r1, [r1] bl FUN_0206AB30 add r4, #0x2c ldrb r1, [r4, r6] add r1, r5, r1 cmp r1, r0 ble _02243F92 strb r0, [r4, r6] pop {r4, r5, r6, pc} _02243F92: strb r1, [r4, r6] pop {r4, r5, r6, pc} _02243F96: add r4, #0x30 sub r1, #0x23 ldrb r0, [r4, r1] add r0, r0, r5 strb r0, [r4, r1] pop {r4, r5, r6, pc} _02243FA2: add r0, r4, #0 add r0, #0x34 ldrb r0, [r0] add r4, #0x34 add r0, r0, r5 strb r0, [r4] pop {r4, r5, r6, pc} _02243FB0: add r0, r4, #0 add r0, #0x35 ldrb r0, [r0] add r0, r0, r5 cmp r0, #0xff ble _02243FC4 mov r0, #0xff add r4, #0x35 strb r0, [r4] pop {r4, r5, r6, pc} _02243FC4: add r0, r4, #0 add r0, #0x35 ldrb r0, [r0] add r4, #0x35 add r0, r0, r5 strb r0, [r4] pop {r4, r5, r6, pc} _02243FD2: ldr r0, [r4, #0x4c] ldr r1, [r4, #0x50] add r0, r0, r5 cmp r0, r1 bls _02243FE0 str r1, [r4, #0x4c] pop {r4, r5, r6, pc} _02243FE0: str r0, [r4, #0x4c] pop {r4, r5, r6, pc} _02243FE4: ldr r0, [r4, #0x50] add r0, r0, r5 str r0, [r4, #0x50] pop {r4, r5, r6, pc} _02243FEC: ldr r0, [r4, #0x64] add r0, r0, r5 str r0, [r4, #0x64] pop {r4, r5, r6, pc} _02243FF4: ldr r0, [r4, #0x68] add r0, r0, r5 str r0, [r4, #0x68] pop {r4, r5, r6, pc} _02243FFC: add r0, r4, #0 add r0, #0x88 ldr r2, [r0] mov r1, #7 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x1d lsr r1, r1, #0x1d add r2, r1, r5 mov r1, #7 and r1, r2 orr r0, r1 add r4, #0x88 str r0, [r4] pop {r4, r5, r6, pc} _0224401A: add r0, r4, #0 add r0, #0x88 ldr r2, [r0] mov r1, #0x38 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x1a lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0x1a orr r0, r1 add r4, #0x88 str r0, [r4] pop {r4, r5, r6, pc} _02244038: add r0, r4, #0 add r0, #0x88 ldr r2, [r0] mov r1, #0xc0 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x1e add r1, r1, r5 lsl r1, r1, #0x1e lsr r1, r1, #0x18 orr r0, r1 add r4, #0x88 str r0, [r4] pop {r4, r5, r6, pc} _02244056: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _0224421C ; =0xFFFFF8FF add r4, #0x88 and r0, r1 lsl r1, r1, #0x15 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0x15 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _02244072: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244220 ; =0xFFFFE7FF add r4, #0x88 and r0, r1 lsl r1, r1, #0x13 lsr r1, r1, #0x1e add r1, r1, r5 lsl r1, r1, #0x1e lsr r1, r1, #0x13 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _0224408E: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244224 ; =0xFFFF9FFF add r4, #0x88 and r0, r1 lsl r1, r1, #0x11 lsr r1, r1, #0x1e add r1, r1, r5 lsl r1, r1, #0x1e lsr r1, r1, #0x11 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _022440AA: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244228 ; =0xFFFC7FFF add r4, #0x88 and r0, r1 lsl r1, r1, #0xe lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0xe orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _022440C6: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _0224422C ; =0xFFE3FFFF add r4, #0x88 and r0, r1 lsl r1, r1, #0xb lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0xb orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _022440E2: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244230 ; =0xFF1FFFFF add r4, #0x88 and r0, r1 lsl r1, r1, #8 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #8 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _022440FE: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244234 ; =0xF8FFFFFF add r4, #0x88 and r0, r1 lsl r1, r1, #5 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #5 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _0224411A: add r0, r4, #0 add r0, #0x88 ldr r1, [r0] ldr r0, _02244238 ; =0xC7FFFFFF add r4, #0x88 and r0, r1 lsl r1, r1, #2 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #2 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _02244136: add r0, r4, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _0224423C ; =0xFFFFE3FF add r4, #0x8c and r0, r1 lsl r1, r1, #0x13 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0x13 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _02244152: add r0, r4, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02244240 ; =0xFFFF1FFF add r4, #0x8c and r0, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0x10 orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _0224416E: add r0, r4, #0 add r0, #0x8c ldr r1, [r0] ldr r0, _02244244 ; =0xFFF8FFFF add r4, #0x8c and r0, r1 lsl r1, r1, #0xd lsr r1, r1, #0x1d add r1, r1, r5 lsl r1, r1, #0x1d lsr r1, r1, #0xd orr r0, r1 str r0, [r4] pop {r4, r5, r6, pc} _0224418A: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] add r4, #0x90 add r0, r0, r5 str r0, [r4] pop {r4, r5, r6, pc} _02244198: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, r5 str r0, [r4] pop {r4, r5, r6, pc} _022441A6: add r0, r4, #0 add r0, #0x98 ldr r0, [r0] add r4, #0x98 add r0, r0, r5 str r0, [r4] pop {r4, r5, r6, pc} _022441B4: add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] add r4, #0xa0 add r0, r0, r5 str r0, [r4] pop {r4, r5, r6, pc} _022441C2: add r0, r4, #0 add r0, #0xbc ldr r0, [r0] add r4, #0xbc add r0, r0, r5 str r0, [r4] pop {r4, r5, r6, pc} _022441D0: ldr r2, [r4, #0x28] mov r1, #0x40 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x19 lsr r1, r1, #0x1f add r1, r1, r5 lsl r1, r1, #0x1f lsr r1, r1, #0x19 orr r0, r1 str r0, [r4, #0x28] pop {r4, r5, r6, pc} _022441E8: ldr r2, [r4, #0x28] mov r1, #0x80 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x1f add r1, r1, r5 lsl r1, r1, #0x1f lsr r1, r1, #0x18 orr r0, r1 str r0, [r4, #0x28] pop {r4, r5, r6, pc} _02244200: bl ErrorHandling pop {r4, r5, r6, pc} nop _02244208: .word 0xFFFFFC1F _0224420C: .word 0xFFFF83FF _02244210: .word 0xFFF07FFF _02244214: .word 0xFE0FFFFF _02244218: .word 0xC1FFFFFF _0224421C: .word 0xFFFFF8FF _02244220: .word 0xFFFFE7FF _02244224: .word 0xFFFF9FFF _02244228: .word 0xFFFC7FFF _0224422C: .word 0xFFE3FFFF _02244230: .word 0xFF1FFFFF _02244234: .word 0xF8FFFFFF _02244238: .word 0xC7FFFFFF _0224423C: .word 0xFFFFE3FF _02244240: .word 0xFFFF1FFF _02244244: .word 0xFFF8FFFF thumb_func_start MOD11_02244248 MOD11_02244248: ; 0x02244248 push {r3, r4, r5, r6, r7, lr} sub sp, #0x68 str r0, [sp, #4] mov r0, #0 str r0, [sp, #0x64] str r0, [sp, #0x60] ldr r0, [sp, #0x64] str r2, [sp, #8] str r0, [sp, #0x5c] ldr r0, [sp, #0x64] str r3, [sp, #0xc] str r0, [sp, #0x48] ldr r0, [sp, #0x64] add r5, r1, #0 str r0, [sp, #0x44] ldr r0, [sp, #0x64] mov r2, #0xc0 str r0, [sp, #0x40] ldr r0, [sp, #0x64] ldr r3, _0224455C ; =0x00002D8C str r0, [sp, #0x3c] ldr r0, [sp, #0x64] str r0, [sp, #0x38] ldr r0, [sp, #0x64] str r0, [sp, #0x34] ldr r0, [sp, #8] add r1, r0, #0 mul r1, r2 add r0, r5, r1 ldr r0, [r0, r3] str r1, [sp, #0x18] cmp r0, #0 bne _0224429C ldr r1, [sp, #0xc] mul r2, r1 add r1, r5, r2 ldr r1, [r1, r3] cmp r1, #0 beq _0224429C add sp, #0x68 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0224429C: cmp r0, #0 beq _022442B6 ldr r0, [sp, #0xc] mov r1, #0xc0 mul r1, r0 ldr r0, _0224455C ; =0x00002D8C add r1, r5, r1 ldr r0, [r1, r0] cmp r0, #0 bne _022442B6 add sp, #0x68 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022442B6: ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_02246D1C str r0, [sp, #0x2c] ldr r1, [sp, #0xc] add r0, r5, #0 bl MOD11_02246D1C str r0, [sp, #0x28] ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_02249D90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x58] ldr r1, [sp, #8] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x54] ldr r1, [sp, #0xc] add r0, r5, #0 bl MOD11_02249D90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x50] ldr r1, [sp, #0xc] add r0, r5, #0 mov r2, #0 bl MOD11_02249DA4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4c] ldr r0, [sp, #0x18] ldr r2, _02244560 ; =0x00002D5B add r0, r5, r0 ldrsb r4, [r0, r2] ldr r0, [sp, #0xc] mov r1, #0xc0 mul r1, r0 add r0, r5, r1 str r1, [sp, #0x14] ldrsb r7, [r0, r2] ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x56 bne _02244338 sub r0, r4, #6 lsl r0, r0, #1 add r4, r0, #6 cmp r4, #0xc ble _02244332 mov r4, #0xc _02244332: cmp r4, #0 bge _02244338 mov r4, #0 _02244338: ldr r1, [sp, #0xc] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x56 bne _02244356 sub r0, r7, #6 lsl r0, r0, #1 add r7, r0, #6 cmp r7, #0xc ble _02244350 mov r7, #0xc _02244350: cmp r7, #0 bge _02244356 mov r7, #0 _02244356: ldr r0, [sp, #0x18] lsl r1, r4, #1 add r2, r5, r0 ldr r0, _02244564 ; =0x00002D46 ldrh r2, [r2, r0] ldr r0, _02244568 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224456C ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f add r6, r0, #0 ldr r0, [sp, #0x14] lsl r1, r7, #1 add r2, r5, r0 ldr r0, _02244564 ; =0x00002D46 ldrh r2, [r2, r0] ldr r0, _02244568 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224456C ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f add r4, r0, #0 mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022443FE mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022443FE ldr r0, [sp, #0x2c] cmp r0, #0x21 bne _022443C4 mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #3 tst r0, r1 bne _022443D6 _022443C4: ldr r0, [sp, #0x2c] cmp r0, #0x22 bne _022443D8 mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0x30 tst r0, r1 beq _022443D8 _022443D6: lsl r6, r6, #1 _022443D8: ldr r0, [sp, #0x28] cmp r0, #0x21 bne _022443EA mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #3 tst r0, r1 bne _022443FC _022443EA: ldr r0, [sp, #0x28] cmp r0, #0x22 bne _022443FE mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0x30 tst r0, r1 beq _022443FE _022443FC: lsl r4, r4, #1 _022443FE: mov r0, #0 str r0, [sp, #0x24] ldr r0, [sp, #0x18] ldr r7, _02244570 ; =0x0225E24C add r0, r5, r0 str r0, [sp, #0x1c] _0224440A: ldr r2, [sp, #0x1c] ldr r1, _02244574 ; =0x00002DB8 add r0, r5, #0 ldrh r1, [r2, r1] mov r2, #1 bl MOD11_0224C12C ldrb r1, [r7] cmp r1, r0 bne _02244422 lsr r6, r6, #1 b _0224442E _02244422: ldr r0, [sp, #0x24] add r7, r7, #1 add r0, r0, #1 str r0, [sp, #0x24] cmp r0, #8 blo _0224440A _0224442E: ldr r0, [sp, #0x58] cmp r0, #0x72 bne _02244440 mov r0, #0xf mul r0, r6 mov r1, #0xa bl _u32_div_f add r6, r0, #0 _02244440: ldr r0, [sp, #0x58] cmp r0, #0x65 bne _02244456 ldr r0, [sp, #0x18] add r1, r5, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] cmp r0, #0x84 bne _02244456 lsl r6, r6, #1 _02244456: ldr r0, [sp, #0x2c] cmp r0, #0x5f bne _02244478 ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _02244578 ; =0x00002DAC ldr r0, [r1, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _02244478 mov r0, #0xf mul r0, r6 mov r1, #0xa bl _u32_div_f add r6, r0, #0 b _02244488 _02244478: ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _02244578 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _02244488 lsr r6, r6, #2 _02244488: ldr r0, [sp, #0x2c] cmp r0, #0x70 bne _022444A4 ldr r1, [sp, #0x18] mov r0, #0x15 add r2, r5, r1 ldr r1, _0224457C ; =0x00002DD8 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r2, r1] sub r0, r0, r1 cmp r0, #5 bge _022444A4 lsr r6, r6, #1 _022444A4: ldr r0, [sp, #0x2c] cmp r0, #0x54 bne _022444C2 ldr r0, [sp, #0x18] add r2, r5, r0 ldr r0, _02244580 ; =0x00002DCC ldr r1, [r2, r0] lsl r1, r1, #9 lsr r1, r1, #0x1f beq _022444C2 sub r0, #0x14 ldrh r0, [r2, r0] cmp r0, #0 bne _022444C2 lsl r6, r6, #1 _022444C2: ldr r0, [sp, #4] ldr r1, [sp, #8] bl MOD11_02230270 lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #3 lsl r0, r0, #8 tst r0, r1 beq _022444DE lsl r6, r6, #1 _022444DE: ldr r0, [sp, #0x58] cmp r0, #0x33 bne _0224451C ldr r1, [sp, #0x54] mov r0, #0x64 bl _s32_div_f add r1, r0, #0 ldr r0, [sp, #8] lsl r0, r0, #1 add r2, r5, r0 ldr r0, _02244584 ; =0x0000310C ldrh r0, [r2, r0] bl _s32_div_f cmp r1, #0 bne _0224451C mov r0, #1 str r0, [sp, #0x40] ldr r0, [sp, #0x80] cmp r0, #0 bne _0224451C ldr r0, _02244580 ; =0x00002DCC ldr r1, [sp, #0x18] add r0, r5, r0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x1c orr r2, r1 ldr r1, [sp, #0x18] str r2, [r0, r1] _0224451C: ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _02244580 ; =0x00002DCC ldr r0, [r1, r0] lsl r0, r0, #3 lsr r0, r0, #0x1f beq _0224452E mov r0, #1 str r0, [sp, #0x40] _0224452E: ldr r0, [sp, #0x58] cmp r0, #0x6a bne _02244538 mov r0, #1 str r0, [sp, #0x38] _02244538: mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x14] ldr r7, _02244570 ; =0x0225E24C add r0, r5, r0 str r0, [sp, #0x20] _02244544: ldr r2, [sp, #0x20] ldr r1, _02244574 ; =0x00002DB8 add r0, r5, #0 ldrh r1, [r2, r1] mov r2, #1 bl MOD11_0224C12C ldrb r1, [r7] cmp r1, r0 bne _02244588 lsr r4, r4, #1 b _02244594 .align 2, 0 _0224455C: .word 0x00002D8C _02244560: .word 0x00002D5B _02244564: .word 0x00002D46 _02244568: .word 0x0225E284 _0224456C: .word 0x0225E285 _02244570: .word 0x0225E24C _02244574: .word 0x00002DB8 _02244578: .word 0x00002DAC _0224457C: .word 0x00002DD8 _02244580: .word 0x00002DCC _02244584: .word 0x0000310C _02244588: ldr r0, [sp, #0x10] add r7, r7, #1 add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #8 blo _02244544 _02244594: ldr r0, [sp, #0x50] cmp r0, #0x72 bne _022445A6 mov r0, #0xf mul r0, r4 mov r1, #0xa bl _u32_div_f add r4, r0, #0 _022445A6: ldr r0, [sp, #0x50] cmp r0, #0x65 bne _022445BC ldr r0, [sp, #0x14] add r1, r5, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] cmp r0, #0x84 bne _022445BC lsl r4, r4, #1 _022445BC: ldr r0, [sp, #0x28] cmp r0, #0x5f bne _022445DE ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, _02244894 ; =0x00002DAC ldr r0, [r1, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _022445DE mov r0, #0xf mul r0, r4 mov r1, #0xa bl _u32_div_f add r4, r0, #0 b _022445EE _022445DE: ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, _02244894 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _022445EE lsr r4, r4, #2 _022445EE: ldr r0, [sp, #0x28] cmp r0, #0x70 bne _0224460A ldr r1, [sp, #0x14] mov r0, #0x15 add r2, r5, r1 ldr r1, _02244898 ; =0x00002DD8 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r2, r1] sub r0, r0, r1 cmp r0, #5 bge _0224460A lsr r4, r4, #1 _0224460A: ldr r0, [sp, #0x28] cmp r0, #0x54 bne _02244628 ldr r0, [sp, #0x14] add r2, r5, r0 ldr r0, _0224489C ; =0x00002DCC ldr r1, [r2, r0] lsl r1, r1, #9 lsr r1, r1, #0x1f beq _02244628 sub r0, #0x14 ldrh r0, [r2, r0] cmp r0, #0 bne _02244628 lsl r4, r4, #1 _02244628: ldr r0, [sp, #4] ldr r1, [sp, #0xc] bl MOD11_02230270 lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #3 lsl r0, r0, #8 tst r0, r1 beq _02244644 lsl r4, r4, #1 _02244644: ldr r0, [sp, #0x50] cmp r0, #0x33 bne _02244682 ldr r1, [sp, #0x4c] mov r0, #0x64 bl _s32_div_f add r1, r0, #0 ldr r0, [sp, #0xc] lsl r0, r0, #1 add r2, r5, r0 ldr r0, _022448A0 ; =0x0000310C ldrh r0, [r2, r0] bl _s32_div_f cmp r1, #0 bne _02244682 mov r0, #1 str r0, [sp, #0x3c] ldr r0, [sp, #0x80] cmp r0, #0 bne _02244682 ldr r0, _0224489C ; =0x00002DCC ldr r1, [sp, #0x14] add r0, r5, r0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x1c orr r2, r1 ldr r1, [sp, #0x14] str r2, [r0, r1] _02244682: ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, _0224489C ; =0x00002DCC ldr r0, [r1, r0] lsl r0, r0, #3 lsr r0, r0, #0x1f beq _02244694 mov r0, #1 str r0, [sp, #0x3c] _02244694: ldr r0, [sp, #0x50] cmp r0, #0x6a bne _0224469E mov r0, #1 str r0, [sp, #0x34] _0224469E: ldr r0, [sp, #8] lsl r0, r0, #2 add r1, r5, r0 ldr r0, _022448A4 ; =0x000021F0 str r6, [r1, r0] ldr r1, [sp, #0xc] lsl r1, r1, #2 add r1, r5, r1 str r4, [r1, r0] ldr r1, [sp, #0x80] cmp r1, #0 bne _02244756 ldr r1, [sp, #0xc] ldr r3, _022448A8 ; =0x000030BC lsl r1, r1, #4 add r2, r5, r1 add r1, r0, #0 sub r1, #0x3c ldr r1, [r2, r1] sub r0, #0x3c str r1, [sp, #0x30] ldr r1, [sp, #8] lsl r1, r1, #1 add r1, r5, r1 ldrh r2, [r1, r3] ldr r1, [sp, #0xc] lsl r1, r1, #1 add r1, r5, r1 ldrh r7, [r1, r3] ldr r1, [sp, #8] lsl r1, r1, #4 add r1, r5, r1 ldr r0, [r1, r0] cmp r0, #1 bne _0224470E ldr r0, [sp, #8] lsl r0, r0, #6 add r1, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _022446FC mov r0, #0xa5 str r0, [sp, #0x60] b _0224470E _022446FC: ldr r1, [sp, #8] add r0, r5, #0 add r2, r2, #6 mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x60] _0224470E: ldr r0, [sp, #0x30] cmp r0, #1 bne _0224473E ldr r0, [sp, #0xc] lsl r0, r0, #6 add r1, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0224472C mov r0, #0xa5 str r0, [sp, #0x5c] b _0224473E _0224472C: ldr r1, [sp, #0xc] add r0, r5, #0 add r2, r7, #6 mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x5c] _0224473E: ldr r0, [sp, #0x60] mov r1, #0xfa lsl r0, r0, #4 add r0, r5, r0 lsl r1, r1, #2 ldrsb r0, [r0, r1] str r0, [sp, #0x48] ldr r0, [sp, #0x5c] lsl r0, r0, #4 add r0, r5, r0 ldrsb r0, [r0, r1] str r0, [sp, #0x44] _02244756: ldr r1, [sp, #0x48] ldr r0, [sp, #0x44] cmp r1, r0 beq _02244760 b _022448AC _02244760: ldr r0, [sp, #0x40] cmp r0, #0 beq _0224478C ldr r0, [sp, #0x3c] cmp r0, #0 beq _0224478C cmp r6, r4 bhs _02244776 mov r0, #1 str r0, [sp, #0x64] b _022448B4 _02244776: cmp r6, r4 bne _02244784 bl FUN_0201B9EC mov r1, #1 tst r0, r1 bne _02244786 _02244784: b _022448B4 _02244786: mov r0, #2 str r0, [sp, #0x64] b _022448B4 _0224478C: ldr r0, [sp, #0x40] cmp r0, #0 bne _0224479E ldr r0, [sp, #0x3c] cmp r0, #0 beq _0224479E mov r0, #1 str r0, [sp, #0x64] b _022448B4 _0224479E: ldr r0, [sp, #0x40] cmp r0, #0 beq _022447B0 ldr r0, [sp, #0x3c] cmp r0, #0 bne _022447B0 mov r0, #0 str r0, [sp, #0x64] b _022448B4 _022447B0: ldr r0, [sp, #0x38] cmp r0, #0 beq _022447DA ldr r0, [sp, #0x34] cmp r0, #0 beq _022447DA cmp r6, r4 bls _022447C6 mov r0, #1 str r0, [sp, #0x64] b _022448B4 _022447C6: cmp r6, r4 bne _022448B4 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _022448B4 mov r0, #2 str r0, [sp, #0x64] b _022448B4 _022447DA: ldr r0, [sp, #0x38] cmp r0, #0 beq _022447EC ldr r0, [sp, #0x34] cmp r0, #0 bne _022447EC mov r0, #1 str r0, [sp, #0x64] b _022448B4 _022447EC: ldr r0, [sp, #0x38] cmp r0, #0 bne _022447FE ldr r0, [sp, #0x34] cmp r0, #0 beq _022447FE mov r0, #0 str r0, [sp, #0x64] b _022448B4 _022447FE: ldr r0, [sp, #0x2c] cmp r0, #0x64 bne _02244828 ldr r0, [sp, #0x28] cmp r0, #0x64 bne _02244828 cmp r6, r4 bls _02244814 mov r0, #1 str r0, [sp, #0x64] b _022448B4 _02244814: cmp r6, r4 bne _022448B4 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _022448B4 mov r0, #2 str r0, [sp, #0x64] b _022448B4 _02244828: ldr r0, [sp, #0x2c] cmp r0, #0x64 bne _0224483A ldr r0, [sp, #0x28] cmp r0, #0x64 beq _0224483A mov r0, #1 str r0, [sp, #0x64] b _022448B4 _0224483A: ldr r0, [sp, #0x2c] cmp r0, #0x64 beq _0224484C ldr r0, [sp, #0x28] cmp r0, #0x64 bne _0224484C mov r0, #0 str r0, [sp, #0x64] b _022448B4 _0224484C: mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #7 lsl r0, r0, #0x10 tst r0, r1 beq _02244876 cmp r6, r4 bls _02244862 mov r0, #1 str r0, [sp, #0x64] _02244862: cmp r6, r4 bne _022448B4 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _022448B4 mov r0, #2 str r0, [sp, #0x64] b _022448B4 _02244876: cmp r6, r4 bhs _0224487E mov r0, #1 str r0, [sp, #0x64] _0224487E: cmp r6, r4 bne _022448B4 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _022448B4 mov r0, #2 str r0, [sp, #0x64] b _022448B4 nop _02244894: .word 0x00002DAC _02244898: .word 0x00002DD8 _0224489C: .word 0x00002DCC _022448A0: .word 0x0000310C _022448A4: .word 0x000021F0 _022448A8: .word 0x000030BC _022448AC: cmp r1, r0 bge _022448B4 mov r0, #1 str r0, [sp, #0x64] _022448B4: ldr r0, [sp, #0x64] add sp, #0x68 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022448BC MOD11_022448BC: ; 0x022448BC asr r1, r1, #1 lsl r1, r1, #0x1f lsr r1, r1, #0x1d add r0, r0, r1 mov r2, #0 add r0, #0xa4 str r2, [r0] bx lr thumb_func_start MOD11_022448CC MOD11_022448CC: ; 0x022448CC push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r2, [sp] add r5, r1, #0 mov r4, #0 bl MOD11_0222FF74 add r7, r0, #0 ldr r0, [sp] mov r1, #0xc0 mul r1, r0 add r0, r5, r1 str r0, [sp, #4] ldr r0, [sp] asr r0, r0, #1 lsl r0, r0, #0x1f lsr r0, r0, #0x1d add r6, r5, r0 add r6, #0xa4 _022448F2: add r0, r4, #0 bl FUN_0206A92C ldr r1, _0224493C ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _02244928 ldr r0, [sp] bl FUN_0206A92C ldr r1, _0224493C ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _02244928 ldr r1, [sp, #4] ldr r0, _02244940 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244928 ldr r0, _02244944 ; =0x0000219C add r1, r5, r4 ldrb r0, [r1, r0] bl FUN_0206A92C ldr r1, [r6] orr r0, r1 str r0, [r6] _02244928: add r4, r4, #2 cmp r7, #0x4a beq _02244936 cmp r7, #0x4b beq _02244936 cmp r4, #2 ble _022448F2 _02244936: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0224493C: .word 0x00003108 _02244940: .word 0x00002D8C _02244944: .word 0x0000219C thumb_func_start MOD11_02244948 MOD11_02244948: ; 0x02244948 push {r4, r5, r6, lr} ldr r0, _022449D4 ; =0x00002170 add r5, r1, #0 add r4, r2, #0 ldr r2, [r5, r0] mov r0, #2 lsl r0, r0, #0x1c mov r6, #0 tst r0, r2 beq _0224497A add r0, r5, #0 mov r1, #1 bl MOD11_0224C5DC str r0, [r4] ldr r0, _022449D4 ; =0x00002170 add r1, r6, #0 str r1, [r5, r0] sub r0, r0, #4 ldr r1, [r5, r0] ldr r0, _022449D8 ; =0x801FDA49 tst r0, r1 bne _022449CE mov r6, #1 b _022449CE _0224497A: cmp r2, #0 beq _022449CE add r0, r5, #0 mov r1, #1 bl MOD11_0224C5DC str r0, [r4] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022449DC ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022449C8 ldr r1, _022449E0 ; =0x0000216C ldr r2, _022449D8 ; =0x801FDA49 ldr r0, [r5, r1] tst r2, r0 beq _022449C6 add r1, r1, #4 mov r2, #2 ldr r1, [r5, r1] lsl r2, r2, #0x16 tst r2, r1 beq _022449B8 ldr r2, _022449E4 ; =0x00040008 tst r2, r0 bne _022449C6 _022449B8: mov r2, #1 lsl r2, r2, #0x1c tst r1, r2 beq _022449C8 ldr r1, _022449E8 ; =0x00010001 tst r0, r1 beq _022449C8 _022449C6: mov r6, #1 _022449C8: ldr r0, _022449D4 ; =0x00002170 mov r1, #0 str r1, [r5, r0] _022449CE: add r0, r6, #0 pop {r4, r5, r6, pc} nop _022449D4: .word 0x00002170 _022449D8: .word 0x801FDA49 _022449DC: .word 0x00002D8C _022449E0: .word 0x0000216C _022449E4: .word 0x00040008 _022449E8: .word 0x00010001 thumb_func_start MOD11_022449EC MOD11_022449EC: ; 0x022449EC push {r3, r4, r5, r6, r7, lr} ldr r0, _02244C04 ; =0x00002174 add r5, r1, #0 add r4, r2, #0 ldr r2, [r5, r0] mov r1, #2 lsl r1, r1, #0x1c add r3, r2, #0 mov r6, #0 tst r3, r1 beq _02244A20 add r0, r5, #0 mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C04 ; =0x00002174 add r1, r6, #0 str r1, [r5, r0] sub r0, #8 ldr r1, [r5, r0] ldr r0, _02244C08 ; =0x801FDA49 tst r0, r1 bne _02244AC0 mov r6, #1 b _02244C00 _02244A20: lsr r3, r1, #5 tst r3, r2 beq _02244A54 add r0, r5, #0 mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C04 ; =0x00002174 add r1, r6, #0 str r1, [r5, r0] add r1, r5, #0 add r1, #0x94 ldr r1, [r1] add r0, r5, #0 bl MOD11_0224AD9C cmp r0, #0 bne _02244AC0 ldr r0, _02244C0C ; =0x0000216C ldr r1, [r5, r0] ldr r0, _02244C08 ; =0x801FDA49 tst r0, r1 bne _02244AC0 mov r6, #1 b _02244C00 _02244A54: lsr r3, r1, #4 tst r3, r2 beq _02244A96 add r0, r5, #0 mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C04 ; =0x00002174 add r1, r6, #0 str r1, [r5, r0] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02244C10 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02244AC0 add r0, r5, #0 bl MOD11_0224AD9C cmp r0, #0 bne _02244AC0 ldr r0, _02244C0C ; =0x0000216C ldr r1, [r5, r0] ldr r0, _02244C08 ; =0x801FDA49 tst r0, r1 bne _02244AC0 mov r6, #1 b _02244C00 _02244A96: lsr r3, r1, #1 tst r3, r2 beq _02244AC6 add r0, r5, #0 mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C04 ; =0x00002174 add r1, r6, #0 str r1, [r5, r0] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02244C10 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 bne _02244AC2 _02244AC0: b _02244C00 _02244AC2: mov r6, #1 b _02244C00 _02244AC6: lsr r1, r1, #3 tst r1, r2 beq _02244B50 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x20 ldr r0, _02244C14 ; =0x00003044 bne _02244AEA ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02244C18 ; =0x000003E5 ldrb r0, [r1, r0] lsl r0, r0, #0x11 lsr r6, r0, #0x10 b _02244AF4 _02244AEA: ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02244C18 ; =0x000003E5 ldrb r6, [r1, r0] _02244AF4: cmp r6, #0 bne _02244AFC bl ErrorHandling _02244AFC: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r6 bge _02244B16 ldr r1, _02244C1C ; =0x0000213C mov r0, #1 ldr r2, [r5, r1] lsl r0, r0, #0x16 orr r0, r2 str r0, [r5, r1] _02244B16: ldr r2, _02244C04 ; =0x00002174 add r0, r5, #0 ldr r2, [r5, r2] mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r1, _02244C04 ; =0x00002174 mov r0, #0 str r0, [r5, r1] add r0, r5, #0 add r0, #0x94 ldr r2, [r0] mov r0, #0xc0 mul r0, r2 add r2, r5, r0 ldr r0, _02244C10 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 bne _02244B4C add r0, r1, #0 sub r0, #0x38 ldr r2, [r5, r0] ldr r0, _02244C20 ; =0xFFBFFFFF sub r1, #0x38 and r0, r2 str r0, [r5, r1] _02244B4C: mov r6, #1 b _02244C00 _02244B50: cmp r2, #0 beq _02244BD2 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x20 ldr r0, _02244C14 ; =0x00003044 bne _02244B72 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02244C18 ; =0x000003E5 ldrb r0, [r1, r0] lsl r0, r0, #0x11 lsr r7, r0, #0x10 b _02244B7C _02244B72: ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02244C18 ; =0x000003E5 ldrb r7, [r1, r0] _02244B7C: cmp r7, #0 bne _02244B84 bl ErrorHandling _02244B84: bl FUN_0201B9EC mov r1, #0x64 bl _s32_div_f cmp r1, r7 bge _02244C00 ldr r2, _02244C04 ; =0x00002174 add r0, r5, #0 ldr r2, [r5, r2] mov r1, #2 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C04 ; =0x00002174 mov r1, #0 str r1, [r5, r0] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02244C10 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02244C00 add r0, r5, #0 bl MOD11_0224AD9C cmp r0, #0 bne _02244C00 ldr r0, _02244C0C ; =0x0000216C ldr r1, [r5, r0] ldr r0, _02244C08 ; =0x801FDA49 tst r0, r1 bne _02244C00 mov r6, #1 b _02244C00 _02244BD2: add r0, r0, #4 ldr r2, [r5, r0] cmp r2, #0 beq _02244C00 add r0, r5, #0 mov r1, #3 bl MOD11_0224C5DC str r0, [r4] ldr r0, _02244C24 ; =0x00002178 add r1, r6, #0 str r1, [r5, r0] add r0, r5, #0 add r0, #0x94 ldr r1, [r0] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02244C10 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244C00 mov r6, #1 _02244C00: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02244C04: .word 0x00002174 _02244C08: .word 0x801FDA49 _02244C0C: .word 0x0000216C _02244C10: .word 0x00002D8C _02244C14: .word 0x00003044 _02244C18: .word 0x000003E5 _02244C1C: .word 0x0000213C _02244C20: .word 0xFFBFFFFF _02244C24: .word 0x00002178 thumb_func_start MOD11_02244C28 MOD11_02244C28: ; 0x02244C28 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r0, #0 mov r0, #0xff add r4, r1, #0 add r5, r2, #0 str r0, [sp, #0xc] cmp r3, #0 beq _02244C44 lsl r0, r3, #4 add r1, r4, r0 ldr r0, _02244F24 ; =0x000003E6 ldrh r0, [r1, r0] b _02244C46 _02244C44: ldr r0, [sp, #0x34] _02244C46: cmp r0, #4 bne _02244CD6 add r0, r6, #0 bl MOD11_0222FF84 str r0, [sp, #8] add r0, r6, #0 add r1, r5, #0 bl MOD11_0222FF7C bl MOD11_02253A4C ldr r1, _02244F28 ; =0x0000217E mov r2, #0 strb r2, [r4, r1] ldrb r1, [r4, r1] ldr r2, [sp, #8] cmp r1, r2 bge _02244CC4 mov r2, #1 add r5, r0, #0 and r5, r2 _02244C72: ldr r0, _02244F2C ; =0x000021EC add r1, r4, r1 ldrb r7, [r1, r0] mov r0, #0xc0 mul r0, r7 add r1, r4, r0 ldr r0, _02244F30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244CB2 add r0, r6, #0 add r1, r7, #0 bl MOD11_0222FF7C str r0, [sp] cmp r5, #0 beq _02244C9E bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _02244CAE _02244C9E: cmp r5, #0 bne _02244CB2 ldr r0, [sp] bl MOD11_02253A4C mov r1, #1 tst r0, r1 beq _02244CB2 _02244CAE: str r7, [sp, #0xc] b _02244CC4 _02244CB2: ldr r0, _02244F28 ; =0x0000217E ldrb r0, [r4, r0] add r1, r0, #1 ldr r0, _02244F28 ; =0x0000217E strb r1, [r4, r0] ldrb r1, [r4, r0] ldr r0, [sp, #8] cmp r1, r0 blt _02244C72 _02244CC4: ldr r1, _02244F28 ; =0x0000217E ldr r0, [sp, #8] ldrb r2, [r4, r1] cmp r2, r0 bne _02244CD0 b _02244F5C _02244CD0: add r0, r2, #1 strb r0, [r4, r1] b _02244F5C _02244CD6: cmp r0, #8 bne _02244D26 add r0, r6, #0 bl MOD11_0222FF84 add r2, r0, #0 ldr r0, _02244F28 ; =0x0000217E mov r1, #0 strb r1, [r4, r0] ldrb r3, [r4, r0] cmp r3, r2 bge _02244D18 ldr r7, _02244F30 ; =0x00002D8C _02244CF0: ldr r1, _02244F2C ; =0x000021EC add r6, r4, r3 ldrb r1, [r6, r1] mov r6, #0xc0 mul r6, r1 add r6, r4, r6 ldr r6, [r6, r7] cmp r6, #0 beq _02244D0A cmp r1, r5 beq _02244D0A str r1, [sp, #0xc] b _02244D18 _02244D0A: ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] ldr r1, _02244F28 ; =0x0000217E ldrb r3, [r4, r1] cmp r3, r2 blt _02244CF0 _02244D18: cmp r3, r2 beq _02244E02 ldr r0, _02244F28 ; =0x0000217E ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _02244F5C _02244D26: mov r1, #2 lsl r1, r1, #8 cmp r0, r1 bne _02244D72 ldr r1, [sp, #0x30] cmp r1, #1 bne _02244D72 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02244D6E bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 bne _02244D6E add r0, r6, #0 add r1, r5, #0 bl MOD11_022302BC mov r1, #0xc0 mul r1, r0 str r0, [sp, #0xc] ldr r0, _02244F30 ; =0x00002D8C add r1, r4, r1 ldr r0, [r1, r0] cmp r0, #0 bne _02244E02 str r5, [sp, #0xc] b _02244F5C _02244D6E: str r5, [sp, #0xc] b _02244F5C _02244D72: mov r1, #1 lsl r1, r1, #0xa cmp r0, r1 bne _02244D8E ldr r1, [sp, #0x30] cmp r1, #1 bne _02244D8E add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD11_022482A4 str r0, [sp, #0xc] b _02244F5C _02244D8E: cmp r0, #0x80 bne _02244DA0 add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD11_022482A4 str r0, [sp, #0xc] b _02244F5C _02244DA0: cmp r0, #0x10 beq _02244DB0 cmp r0, #0x20 beq _02244DB0 cmp r0, #1 beq _02244DB0 cmp r0, #0x40 bne _02244DB4 _02244DB0: str r5, [sp, #0xc] b _02244F5C _02244DB4: mov r1, #1 lsl r1, r1, #8 cmp r0, r1 bne _02244DD8 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02244DD4 add r0, r6, #0 add r1, r5, #0 bl MOD11_022302BC str r0, [sp, #0xc] b _02244F5C _02244DD4: str r5, [sp, #0xc] b _02244F5C _02244DD8: lsl r1, r1, #1 cmp r0, r1 bne _02244E0C add r0, r6, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02244E08 lsl r0, r5, #4 add r1, r4, r0 ldr r0, _02244F34 ; =0x000021AC ldr r0, [r1, r0] mov r1, #0xc0 mul r1, r0 str r0, [sp, #0xc] ldr r0, _02244F30 ; =0x00002D8C add r1, r4, r1 ldr r0, [r1, r0] cmp r0, #0 beq _02244E04 _02244E02: b _02244F5C _02244E04: str r5, [sp, #0xc] b _02244F5C _02244E08: str r5, [sp, #0xc] b _02244F5C _02244E0C: cmp r0, #2 beq _02244E16 ldr r0, [sp, #0x30] cmp r0, #1 bne _02244ED6 _02244E16: add r0, r6, #0 bl MOD11_0222FF74 str r0, [sp, #0x10] add r0, r6, #0 add r1, r5, #0 bl MOD11_02230270 add r7, r0, #0 mov r1, #1 eor r7, r1 add r0, r6, #0 add r1, r5, #0 mov r2, #0 bl MOD11_02230308 str r0, [sp, #0x14] add r0, r6, #0 add r1, r5, #0 mov r2, #2 bl MOD11_02230308 str r0, [sp, #0x18] ldr r0, [sp, #0x10] mov r1, #2 tst r0, r1 beq _02244EBE mov r0, #0x71 lsl r0, r0, #2 add r1, r4, r0 lsl r0, r7, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02244E72 lsl r0, r0, #9 lsr r2, r0, #0x1e mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02244F30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244E72 str r2, [sp, #0xc] b _02244F5C _02244E72: ldr r0, [sp, #0x14] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 add r0, r4, r2 ldr r2, _02244F30 ; =0x00002D8C ldr r0, [r0, r2] cmp r0, #0 beq _02244EA0 ldr r3, [sp, #0x18] mul r1, r3 add r1, r4, r1 ldr r1, [r1, r2] cmp r1, #0 beq _02244EA0 bl FUN_0201B9EC lsl r0, r0, #0x1f lsr r1, r0, #0x1d add r0, sp, #0x14 ldr r0, [r0, r1] str r0, [sp, #0xc] b _02244F5C _02244EA0: cmp r0, #0 beq _02244EAA ldr r0, [sp, #0x14] str r0, [sp, #0xc] b _02244F5C _02244EAA: ldr r2, [sp, #0x18] mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02244F30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244F5C str r2, [sp, #0xc] b _02244F5C _02244EBE: mov r0, #1 add r2, r5, #0 eor r2, r0 mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02244F30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244F5C str r2, [sp, #0xc] b _02244F5C _02244ED6: add r0, r6, #0 add r1, r5, #0 bl MOD11_02230270 mov r1, #1 eor r0, r1 str r0, [sp, #4] lsl r0, r5, #4 add r1, r4, r0 ldr r0, _02244F34 ; =0x000021AC ldr r7, [r1, r0] add r0, r6, #0 bl MOD11_0222FF84 mov r0, #0x71 lsl r0, r0, #2 add r1, r4, r0 ldr r0, [sp, #4] lsl r0, r0, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02244F1A lsl r0, r0, #9 lsr r0, r0, #0x1e mov r1, #0xc0 mul r1, r0 add r2, r4, r1 ldr r1, _02244F30 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02244F1A str r0, [sp, #0xc] b _02244F5C _02244F1A: mov r0, #0xc0 mul r0, r7 add r1, r4, r0 ldr r0, _02244F30 ; =0x00002D8C b _02244F38 .align 2, 0 _02244F24: .word 0x000003E6 _02244F28: .word 0x0000217E _02244F2C: .word 0x000021EC _02244F30: .word 0x00002D8C _02244F34: .word 0x000021AC _02244F38: ldr r0, [r1, r0] cmp r0, #0 beq _02244F42 str r7, [sp, #0xc] b _02244F5C _02244F42: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD11_022482A4 mov r1, #0xc0 mul r1, r0 add r2, r4, r1 ldr r1, _02244F64 ; =0x00002D8C ldr r1, [r2, r1] cmp r1, #0 beq _02244F5C str r0, [sp, #0xc] _02244F5C: ldr r0, [sp, #0xc] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _02244F64: .word 0x00002D8C thumb_func_start MOD11_02244F68 MOD11_02244F68: ; 0x02244F68 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r1, #0 str r0, [sp, #4] ldr r0, [r5, #0x6c] add r7, r2, #0 add r6, r3, #0 cmp r0, #0xff beq _02244FC2 add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x60 beq _02244FC2 add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x68 beq _02244FC2 ldr r0, [sp, #4] add r1, r7, #0 bl MOD11_02230270 add r2, r0, #0 mov r1, #1 mov r0, #0x71 eor r2, r1 lsl r0, r0, #2 add r1, r5, r0 lsl r0, r2, #3 ldr r0, [r1, r0] lsl r1, r0, #0xb lsr r1, r1, #0x1f beq _02244FC4 lsl r0, r0, #9 lsr r1, r0, #0x1e mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _022450F8 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02244FC4 _02244FC2: b _022450F4 _02244FC4: ldr r0, [sp, #4] add r1, r5, #0 add r2, r7, #0 add r3, r6, #0 bl MOD11_0224C8EC str r0, [sp, #0xc] cmp r0, #0 bne _02244FE0 lsl r0, r6, #4 add r1, r5, r0 ldr r0, _022450FC ; =0x000003E2 ldrb r0, [r1, r0] str r0, [sp, #0xc] _02244FE0: ldr r0, [sp, #4] bl MOD11_0222FF84 str r0, [sp, #8] ldr r0, [sp, #0xc] cmp r0, #0xd bne _02245070 lsl r0, r6, #4 add r1, r5, r0 ldr r0, _02245100 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #0 beq _02244FFE cmp r0, #2 bne _02245070 _02244FFE: ldr r0, _02245104 ; =0x0000213C ldr r1, [r5, r0] mov r0, #0x20 tst r0, r1 bne _02245070 mov r0, #0x1f str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #9 add r3, r7, #0 bl MOD11_02246870 cmp r0, #0 beq _02245070 ldr r0, [sp, #8] mov r6, #0 cmp r0, #0 ble _02245050 _02245024: ldr r0, _02245108 ; =0x000021EC add r1, r5, r6 ldrb r4, [r1, r0] add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x1f bne _02245048 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022450F8 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02245048 cmp r7, r4 bne _02245050 _02245048: ldr r0, [sp, #8] add r6, r6, #1 cmp r6, r0 blt _02245024 _02245050: ldr r0, [r5, #0x6c] cmp r4, r0 beq _022450F4 mov r0, #0xb5 lsl r0, r0, #2 add r3, r5, r0 mov r0, #0x1c add r2, r4, #0 mul r2, r0 ldr r1, [r3, r2] mov r0, #2 orr r0, r1 str r0, [r3, r2] add sp, #0x10 str r4, [r5, #0x6c] pop {r3, r4, r5, r6, r7, pc} _02245070: ldr r0, [sp, #0xc] cmp r0, #0xb bne _022450F4 lsl r0, r6, #4 add r1, r5, r0 ldr r0, _02245100 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #0 beq _02245086 cmp r0, #2 bne _022450F4 _02245086: ldr r0, _02245104 ; =0x0000213C ldr r1, [r5, r0] mov r0, #0x20 tst r0, r1 bne _022450F4 mov r0, #0x72 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #9 add r3, r7, #0 bl MOD11_02246870 cmp r0, #0 beq _022450F4 ldr r0, [sp, #8] mov r6, #0 cmp r0, #0 ble _022450D8 _022450AC: ldr r0, _02245108 ; =0x000021EC add r1, r5, r6 ldrb r4, [r1, r0] add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x72 bne _022450D0 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022450F8 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022450D0 cmp r7, r4 bne _022450D8 _022450D0: ldr r0, [sp, #8] add r6, r6, #1 cmp r6, r0 blt _022450AC _022450D8: ldr r0, [r5, #0x6c] cmp r4, r0 beq _022450F4 mov r0, #0xb5 lsl r0, r0, #2 add r3, r5, r0 mov r0, #0x1c add r2, r4, #0 mul r2, r0 ldr r1, [r3, r2] mov r0, #4 orr r0, r1 str r0, [r3, r2] str r4, [r5, #0x6c] _022450F4: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022450F8: .word 0x00002D8C _022450FC: .word 0x000003E2 _02245100: .word 0x000003E6 _02245104: .word 0x0000213C _02245108: .word 0x000021EC thumb_func_start MOD11_0224510C MOD11_0224510C: ; 0x0224510C push {r3, r4, r5, lr} ldr r0, _02245188 ; =0x0000216C add r4, r1, #0 ldr r1, [r4, r0] ldr r0, _0224518C ; =0x801FDA49 mov r2, #0 tst r0, r1 bne _0224514A mov r0, #0xb5 lsl r0, r0, #2 add r1, r4, r0 ldr r3, [r4, #0x6c] mov r0, #0x1c mul r0, r3 ldr r3, [r1, r0] lsl r5, r3, #0x1e lsr r5, r5, #0x1f beq _0224514A mov r2, #2 bic r3, r2 str r3, [r1, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xb4 bl MOD11_022431DC ldr r0, [r4, #8] mov r2, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _0224514A: ldr r0, _02245188 ; =0x0000216C ldr r1, [r4, r0] ldr r0, _0224518C ; =0x801FDA49 tst r0, r1 bne _02245182 mov r0, #0xb5 lsl r0, r0, #2 add r1, r4, r0 ldr r3, [r4, #0x6c] mov r0, #0x1c mul r0, r3 ldr r3, [r1, r0] lsl r5, r3, #0x1d lsr r5, r5, #0x1f beq _02245182 mov r2, #4 bic r3, r2 str r3, [r1, r0] add r0, r4, #0 mov r1, #1 mov r2, #0xb4 bl MOD11_022431DC ldr r0, [r4, #8] mov r2, #1 str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _02245182: add r0, r2, #0 pop {r3, r4, r5, pc} nop _02245188: .word 0x0000216C _0224518C: .word 0x801FDA49 thumb_func_start MOD11_02245190 MOD11_02245190: ; 0x02245190 push {r4, r5, r6, lr} add r6, r0, #0 add r4, r2, #0 mov r0, #0xc0 add r5, r1, #0 mul r0, r4 add r1, r5, r0 ldr r0, _022451BC ; =0x00002DB8 ldrh r0, [r1, r0] cmp r0, #0 bne _022451B0 lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 bl MOD11_0224C83C _022451B0: add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD11_02256150 pop {r4, r5, r6, pc} .align 2, 0 _022451BC: .word 0x00002DB8 thumb_func_start MOD11_022451C0 MOD11_022451C0: ; 0x022451C0 push {r4, r5} ldr r0, _022451E8 ; =0x00002DB0 add r4, r2, #0 add r5, r1, r0 mov r0, #0xc0 mul r4, r0 mov r0, #1 ldr r3, [r5, r4] lsl r0, r0, #0xc orr r0, r3 str r0, [r5, r4] ldr r0, _022451EC ; =0x00003044 lsl r2, r2, #2 ldr r3, [r1, r0] add r1, r1, r2 add r0, #8 str r3, [r1, r0] pop {r4, r5} bx lr nop _022451E8: .word 0x00002DB0 _022451EC: .word 0x00003044 thumb_func_start MOD11_022451F0 MOD11_022451F0: ; 0x022451F0 push {r4, r5} ldr r4, _02245234 ; =0x00002DB0 add r3, r2, #0 mov r0, #0xc0 mul r3, r0 add r0, r1, r4 ldr r5, [r0, r3] ldr r2, _02245238 ; =0xFFFFEFFF and r2, r5 str r2, [r0, r3] ldr r5, [r0, r3] ldr r2, _0224523C ; =0xFFFFFCFF and r2, r5 str r2, [r0, r3] add r0, r4, #0 add r0, #0x10 add r5, r1, r0 ldr r2, [r5, r3] ldr r0, _02245240 ; =0xDFFBFF3F add r4, #0x18 and r0, r2 str r0, [r5, r3] add r2, r1, r4 ldr r1, [r2, r3] ldr r0, _02245244 ; =0xFFFC7FFF and r0, r1 str r0, [r2, r3] ldr r1, [r2, r3] ldr r0, _02245248 ; =0xFFE3FFFF and r0, r1 str r0, [r2, r3] pop {r4, r5} bx lr nop _02245234: .word 0x00002DB0 _02245238: .word 0xFFFFEFFF _0224523C: .word 0xFFFFFCFF _02245240: .word 0xDFFBFF3F _02245244: .word 0xFFFC7FFF _02245248: .word 0xFFE3FFFF thumb_func_start MOD11_0224524C MOD11_0224524C: ; 0x0224524C mov r2, #0xc0 mul r2, r1 add r1, r0, r2 ldr r0, _02245298 ; =0x00002DAC ldr r0, [r1, r0] mov r1, #7 tst r1, r0 beq _02245260 mov r0, #1 bx lr _02245260: mov r1, #8 tst r1, r0 beq _0224526A mov r0, #2 bx lr _0224526A: mov r1, #0x10 tst r1, r0 beq _02245274 mov r0, #3 bx lr _02245274: mov r1, #0x20 tst r1, r0 beq _0224527E mov r0, #4 bx lr _0224527E: mov r1, #0x40 tst r1, r0 beq _02245288 mov r0, #5 bx lr _02245288: mov r1, #0x80 tst r0, r1 beq _02245292 mov r0, #2 bx lr _02245292: mov r0, #0 bx lr nop _02245298: .word 0x00002DAC thumb_func_start MOD11_0224529C MOD11_0224529C: ; 0x0224529C push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] add r7, r1, #0 bl MOD11_0222FF74 mov r1, #0x84 tst r1, r0 beq _022452B4 add sp, #0xc mov r0, #0 pop {r4, r5, r6, r7, pc} _022452B4: mov r1, #1 add r2, r0, #0 tst r2, r1 bne _022452C2 add sp, #0xc mov r0, #0 pop {r4, r5, r6, r7, pc} _022452C2: mov r2, #2 tst r0, r2 beq _022452CE add sp, #0xc mov r0, #0 pop {r4, r5, r6, r7, pc} _022452CE: ldr r0, [sp] bl MOD11_02230140 str r0, [sp, #8] mov r0, #0 str r0, [sp, #4] _022452DA: ldr r0, [sp, #4] cmp r0, #4 bls _022452E2 b _02245478 _022452E2: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _022452EE: ; jump table .short _022452F8 - _022452EE - 2 ; case 0 .short _0224533C - _022452EE - 2 ; case 1 .short _02245384 - _022452EE - 2 ; case 2 .short _022453F8 - _022452EE - 2 ; case 3 .short _02245478 - _022452EE - 2 ; case 4 _022452F8: ldr r0, _02245488 ; =0x00002E7C ldrb r0, [r7, r0] cmp r0, #1 bne _02245334 mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r7, r0] mov r0, #0x20 tst r0, r1 bne _02245334 ldr r0, [sp, #8] mov r1, #0xd mov r2, #5 bl FUN_0206ACD4 cmp r0, #0 beq _02245334 mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r7, r1] mov r0, #0x20 orr r0, r2 str r0, [r7, r1] mov r0, #0x13 mov r1, #0xd lsl r0, r0, #4 str r1, [r7, r0] add sp, #0xc mov r0, #1 pop {r4, r5, r6, r7, pc} _02245334: ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] b _02245478 _0224533C: ldr r1, _0224548C ; =0x00002E7D mov r0, #2 ldrb r2, [r7, r1] tst r0, r2 bne _0224537C add r0, r1, #0 sub r0, #0x31 sub r1, #0x2d ldr r2, [r7, r0] ldr r0, [r7, r1] lsr r0, r0, #1 cmp r2, r0 bhi _0224537C ldr r0, [sp, #8] mov r1, #0xe mov r2, #5 bl FUN_0206ACD4 cmp r0, #0 beq _0224537C ldr r1, _0224548C ; =0x00002E7D mov r0, #2 ldrb r2, [r7, r1] add sp, #0xc orr r0, r2 strb r0, [r7, r1] mov r0, #0x13 mov r1, #0xe lsl r0, r0, #4 str r1, [r7, r0] mov r0, #1 pop {r4, r5, r6, r7, pc} _0224537C: ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] b _02245478 _02245384: ldr r0, _0224548C ; =0x00002E7D ldrb r1, [r7, r0] mov r0, #3 tst r0, r1 bne _022453F0 ldr r0, [sp] mov r1, #1 bl MOD11_0222FF88 mov r6, #0 add r5, r0, #0 add r4, r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _022453C6 _022453A4: add r0, r5, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022453BA add r6, r6, #1 _022453BA: add r0, r5, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _022453A4 _022453C6: cmp r6, #1 bne _022453F0 ldr r0, [sp, #8] mov r1, #0xf mov r2, #5 bl FUN_0206ACD4 cmp r0, #0 beq _022453F0 ldr r1, _0224548C ; =0x00002E7D mov r0, #3 ldrb r2, [r7, r1] add sp, #0xc orr r0, r2 strb r0, [r7, r1] mov r0, #0x13 mov r1, #0xf lsl r0, r0, #4 str r1, [r7, r0] mov r0, #1 pop {r4, r5, r6, r7, pc} _022453F0: ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] b _02245478 _022453F8: ldr r0, _0224548C ; =0x00002E7D ldrb r1, [r7, r0] mov r0, #4 tst r0, r1 bne _02245472 ldr r0, [sp] mov r1, #1 bl MOD11_0222FF88 mov r6, #0 add r5, r0, #0 add r4, r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _0224543A _02245418: add r0, r5, #0 add r1, r4, #0 bl FUN_0206B9B0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0224542E add r6, r6, #1 _0224542E: add r0, r5, #0 add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _02245418 _0224543A: cmp r6, #1 bne _02245472 ldr r0, _02245490 ; =0x00002E4C ldr r1, [r7, r0] add r0, r0, #4 ldr r0, [r7, r0] lsr r0, r0, #1 cmp r1, r0 bhi _02245472 ldr r0, [sp, #8] mov r1, #0x10 mov r2, #5 bl FUN_0206ACD4 cmp r0, #0 beq _02245472 ldr r1, _0224548C ; =0x00002E7D mov r0, #4 ldrb r2, [r7, r1] add sp, #0xc orr r0, r2 strb r0, [r7, r1] mov r0, #0x13 mov r1, #0x10 lsl r0, r0, #4 str r1, [r7, r0] mov r0, #1 pop {r4, r5, r6, r7, pc} _02245472: ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] _02245478: ldr r0, [sp, #4] cmp r0, #4 beq _02245480 b _022452DA _02245480: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02245488: .word 0x00002E7C _0224548C: .word 0x00002E7D _02245490: .word 0x00002E4C thumb_func_start MOD11_02245494 MOD11_02245494: ; 0x02245494 push {r3, r4, r5, r6, r7, lr} ldr r1, _02245574 ; =0x00002144 add r5, r0, #0 mov r4, #0 add r0, r1, #0 str r4, [r5, r1] mov r2, #1 add r0, #0xc str r2, [r5, r0] add r0, r1, #0 add r0, #8 str r4, [r5, r0] add r0, r1, #0 add r0, #0x10 str r4, [r5, r0] add r0, r1, #0 mov r2, #0xa add r0, #0x14 str r2, [r5, r0] add r0, r1, #0 add r0, #0x1c str r4, [r5, r0] add r0, r1, #0 add r0, #0x20 str r4, [r5, r0] add r0, r1, #0 add r0, #0x28 str r4, [r5, r0] mov r0, #0xff add r2, r1, #0 str r0, [r5, #0x74] add r2, #0x2c str r4, [r5, r2] add r2, r1, #0 add r2, #0x30 str r4, [r5, r2] add r2, r1, #0 add r2, #0x34 str r4, [r5, r2] add r2, r5, #0 add r2, #0x88 str r4, [r2] add r2, r5, #0 add r2, #0x8c str r4, [r2] add r2, r5, #0 add r2, #0x94 str r0, [r2] add r0, r1, #0 add r0, #0x38 strb r4, [r5, r0] add r0, r1, #0 add r0, #0x39 strb r4, [r5, r0] add r0, r1, #0 add r0, #0x3a strb r4, [r5, r0] add r0, r1, #0 add r0, #0x3c str r4, [r5, r0] add r0, r1, #0 str r4, [r5, #0x38] add r0, #0x40 str r4, [r5, r0] add r0, r1, #0 add r0, #0x44 str r4, [r5, r0] str r4, [r5, #0x10] str r4, [r5, #0x18] str r4, [r5, #0x20] str r4, [r5, #0x28] str r4, [r5, #0x30] str r4, [r5, #0x3c] str r4, [r5, #0x40] str r4, [r5, #0x48] str r4, [r5, #0x4c] str r4, [r5, #0x50] add r0, r1, #0 str r4, [r5, #0x54] sub r0, #8 ldr r2, [r5, r0] ldr r0, _02245578 ; =0xFF880000 mov r7, #6 and r2, r0 add r0, r1, #0 sub r0, #8 str r2, [r5, r0] sub r0, r1, #4 ldr r2, [r5, r0] ldr r0, _0224557C ; =0xFFFFFEA1 and r2, r0 sub r0, r1, #4 str r2, [r5, r0] ldr r0, _02245580 ; =0x00003120 strb r4, [r5, r0] mov r0, #0xb5 lsl r0, r0, #2 add r6, r5, r0 _02245558: mov r0, #0 add r1, r6, #0 mov r2, #0x1c bl MIi_CpuClearFast add r1, r5, r4 ldr r0, _02245584 ; =0x000021A4 add r4, r4, #1 add r6, #0x1c strb r7, [r1, r0] cmp r4, #4 blt _02245558 pop {r3, r4, r5, r6, r7, pc} nop _02245574: .word 0x00002144 _02245578: .word 0xFF880000 _0224557C: .word 0xFFFFFEA1 _02245580: .word 0x00003120 _02245584: .word 0x000021A4 thumb_func_start MOD11_02245588 MOD11_02245588: ; 0x02245588 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 str r0, [sp] mov r4, #0 add r5, r6, #0 mov r7, #0xff _02245594: ldr r0, _022455F0 ; =0x0000306C add r2, r6, r4 strh r7, [r5, r0] ldr r0, _022455F4 ; =0x000021A0 mov r1, #6 strb r1, [r2, r0] bl FUN_0201B9EC ldr r1, _022455F8 ; =0x0000310C add r4, r4, #1 strh r0, [r5, r1] add r5, r5, #2 cmp r4, #4 blt _02245594 ldr r0, _022455FC ; =0x00002168 mov r1, #1 str r1, [r6, r0] mov r0, #0x5d lsl r0, r0, #2 str r1, [r6, r0] ldr r0, [sp] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _022455E4 add r0, r1, #0 bl FUN_0206A92C ldr r1, _02245600 ; =0x00003108 ldrb r2, [r6, r1] orr r0, r2 strb r0, [r6, r1] mov r0, #3 bl FUN_0206A92C ldr r1, _02245600 ; =0x00003108 ldrb r2, [r6, r1] orr r0, r2 strb r0, [r6, r1] _022455E4: ldr r0, _02245604 ; =0x0000311C mov r1, #6 strb r1, [r6, r0] add r0, r0, #1 strb r1, [r6, r0] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022455F0: .word 0x0000306C _022455F4: .word 0x000021A0 _022455F8: .word 0x0000310C _022455FC: .word 0x00002168 _02245600: .word 0x00003108 _02245604: .word 0x0000311C thumb_func_start MOD11_02245608 MOD11_02245608: ; 0x02245608 push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 str r1, [sp, #4] str r0, [sp] ldr r1, _0224594C ; =0x00002DC8 ldr r0, [sp, #4] add r4, r2, #0 add r1, r0, r1 mov r0, #0xc0 mul r0, r4 add r5, r1, r0 str r5, [sp, #0x14] add r3, sp, #0x20 mov r2, #7 _02245624: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _02245624 ldr r0, [sp] bl MOD11_0222FF84 add r6, r0, #0 ldr r0, [sp] bl MOD11_0222FF74 ldr r1, [sp, #4] lsl r2, r4, #4 add r1, r1, r2 ldr r2, _02245950 ; =0x000021A8 mov r0, #0x27 str r0, [r1, r2] ldr r1, [sp, #4] sub r2, #0x6c ldr r1, [r1, r2] add r0, #0xd9 tst r0, r1 bne _022456E2 mov r5, #0 cmp r6, #0 ble _022456BE ldr r1, [sp, #4] ldr r2, _02245954 ; =0x00002DCC add r0, r1, #0 add r2, r0, r2 mov r0, #0x18 mov ip, r0 mov r7, #3 _02245666: ldr r0, _02245958 ; =0x00002DB0 ldr r3, [r1, r0] mov r0, #1 lsl r0, r0, #0x1a tst r0, r3 beq _02245688 ldr r0, [r2] lsl r0, r0, #0x16 lsr r0, r0, #0x1e cmp r4, r0 bne _02245688 ldr r0, _02245958 ; =0x00002DB0 ldr r3, [r1, r0] ldr r0, _0224595C ; =0xFBFFFFFF and r3, r0 ldr r0, _02245958 ; =0x00002DB0 str r3, [r1, r0] _02245688: mov r0, #0xb7 lsl r0, r0, #6 ldr r3, [r1, r0] mov r0, #0x18 tst r0, r3 beq _022456B4 ldr r0, [r2] lsl r0, r0, #0x1e lsr r0, r0, #0x1e cmp r4, r0 bne _022456B4 mov r0, #0xb7 lsl r0, r0, #6 ldr r0, [r1, r0] mov r3, ip bic r0, r3 mov r3, #0xb7 lsl r3, r3, #6 str r0, [r1, r3] ldr r0, [r2] bic r0, r7 str r0, [r2] _022456B4: add r5, r5, #1 add r1, #0xc0 add r2, #0xc0 cmp r5, r6 blt _02245666 _022456BE: mov r0, #0xc0 mul r0, r4 str r0, [sp, #0xc] ldr r2, [sp, #4] ldr r1, [sp, #0xc] mov r0, #0 add r1, r2, r1 ldr r2, _02245958 ; =0x00002DB0 str r0, [r1, r2] ldr r1, [sp, #4] add r2, #0x10 add r2, r1, r2 ldr r1, [sp, #0xc] add r1, r2, r1 str r1, [sp, #0x10] ldr r1, [sp, #0xc] str r0, [r2, r1] b _0224575A _022456E2: mov r0, #0xc0 mul r0, r4 str r0, [sp, #0xc] ldr r1, _02245958 ; =0x00002DB0 ldr r0, [sp, #4] ldr r2, [sp, #0xc] add r0, r0, r1 ldr r3, [r0, r2] ldr r2, _02245960 ; =0x15100007 and r3, r2 ldr r2, [sp, #0xc] str r3, [r0, r2] add r2, r1, #0 ldr r0, [sp, #4] add r2, #0x10 add r0, r0, r2 ldr r2, [sp, #0xc] add r2, r0, r2 str r2, [sp, #0x10] ldr r2, [sp, #0xc] ldr r3, [r0, r2] ldr r2, _02245964 ; =0x0FA3843F and r3, r2 ldr r2, [sp, #0xc] str r3, [r0, r2] mov r2, #0 cmp r6, #0 ble _0224575A ldr r0, [sp, #4] add r1, #0x1c add r3, r0, #0 add r1, r3, r1 mov r7, #0x18 _02245724: mov r3, #0xb7 lsl r3, r3, #6 ldr r5, [r0, r3] mov r3, #0x18 tst r3, r5 beq _02245750 ldr r3, [r1] lsl r3, r3, #0x1e lsr r3, r3, #0x1e cmp r4, r3 bne _02245750 mov r3, #0xb7 lsl r3, r3, #6 ldr r5, [r0, r3] bic r5, r7 str r5, [r0, r3] ldr r5, [r0, r3] mov r3, #0x10 orr r5, r3 mov r3, #0xb7 lsl r3, r3, #6 str r5, [r0, r3] _02245750: add r2, r2, #1 add r0, #0xc0 add r1, #0xc0 cmp r2, r6 blt _02245724 _0224575A: mov r0, #0 str r0, [sp, #8] cmp r6, #0 ble _022457C2 ldr r5, [sp, #4] ldr r1, _02245954 ; =0x00002DCC add r0, r5, #0 add r7, r0, r1 _0224576A: add r0, r4, #0 bl FUN_0206A92C ldr r1, _02245958 ; =0x00002DB0 lsl r0, r0, #0x10 ldr r1, [r5, r1] tst r0, r1 beq _02245792 add r0, r4, #0 bl FUN_0206A92C ldr r1, _02245958 ; =0x00002DB0 lsl r2, r0, #0x10 mov r0, #0 mvn r0, r0 ldr r1, [r5, r1] eor r0, r2 and r1, r0 ldr r0, _02245958 ; =0x00002DB0 str r1, [r5, r0] _02245792: ldr r0, _02245958 ; =0x00002DB0 ldr r1, [r5, r0] mov r0, #0xe lsl r0, r0, #0xc tst r0, r1 beq _022457B4 ldr r0, [r7] lsl r0, r0, #0x18 lsr r0, r0, #0x1e cmp r4, r0 bne _022457B4 ldr r0, _02245958 ; =0x00002DB0 ldr r1, [r5, r0] ldr r0, _02245968 ; =0xFFFF1FFF and r1, r0 ldr r0, _02245958 ; =0x00002DB0 str r1, [r5, r0] _022457B4: ldr r0, [sp, #8] add r5, #0xc0 add r0, r0, #1 add r7, #0xc0 str r0, [sp, #8] cmp r0, r6 blt _0224576A _022457C2: mov r2, #0 add r1, r2, #0 _022457C6: ldr r0, [sp, #0x14] strb r1, [r0, r2] add r2, r2, #1 cmp r2, #0x38 blo _022457C6 ldr r1, _0224596C ; =0x0000213C ldr r0, [sp, #4] ldr r1, [r0, r1] mov r0, #1 lsl r0, r0, #8 tst r0, r1 beq _0224587A ldr r1, [sp, #4] ldr r0, [sp, #0xc] ldr r2, [sp, #0x38] add r0, r1, r0 ldr r1, _02245970 ; =0x00002DE0 str r2, [r0, r1] ldr r0, [sp, #4] sub r1, #0x14 add r0, r0, r1 ldr r1, [sp, #0xc] mov r2, #3 ldr r1, [r0, r1] bic r1, r2 ldr r2, [sp, #0x24] lsl r2, r2, #0x1e lsr r3, r2, #0x1e mov r2, #3 and r2, r3 orr r2, r1 ldr r1, [sp, #0xc] str r2, [r0, r1] ldr r3, [sp, #0x20] ldr r1, [sp, #0x14] lsl r3, r3, #0x11 lsr r3, r3, #0x1e lsl r3, r3, #0x1e ldr r1, [r1] ldr r2, _02245974 ; =0xFFFF9FFF lsr r3, r3, #0x11 and r1, r2 orr r3, r1 ldr r1, [sp, #0x14] str r3, [r1] ldr r1, [sp, #0xc] ldr r3, [r0, r1] asr r1, r2, #5 ldr r2, [sp, #0x24] and r1, r3 lsl r2, r2, #0x16 lsr r2, r2, #0x1e lsl r2, r2, #0x1e lsr r2, r2, #0x16 orr r2, r1 ldr r1, [sp, #0xc] str r2, [r0, r1] ldr r2, [r0, r1] ldr r1, _02245968 ; =0xFFFF1FFF and r1, r2 ldr r2, [sp, #0x24] lsl r2, r2, #0x10 lsr r2, r2, #0x1d lsl r2, r2, #0x1d lsr r2, r2, #0x10 orr r2, r1 ldr r1, [sp, #0xc] str r2, [r0, r1] ldr r3, [sp, #0x24] ldr r1, [r0, r1] lsl r3, r3, #0xa ldr r2, _02245978 ; =0xFFC7FFFF lsr r3, r3, #0x1d lsl r3, r3, #0x1d and r1, r2 lsr r3, r3, #0xa orr r3, r1 ldr r1, [sp, #0xc] str r3, [r0, r1] ldr r3, [r0, r1] asr r1, r2, #3 ldr r2, [sp, #0x24] and r1, r3 lsl r2, r2, #0xd lsr r2, r2, #0x1d lsl r2, r2, #0x1d lsr r2, r2, #0xd orr r2, r1 ldr r1, [sp, #0xc] str r2, [r0, r1] _0224587A: mov r0, #0xc0 add r3, r0, #0 ldr r2, [sp, #4] add r3, #0x90 ldr r2, [r2, r3] add r1, r4, #0 ldr r3, [sp, #4] mul r1, r0 add r5, r0, #0 add r1, r3, r1 ldr r3, _0224597C ; =0x00002DD4 add r2, r2, #1 str r2, [r1, r3] ldr r2, [sp, #4] add r5, #0x90 ldr r2, [r2, r5] add r0, #0x90 add r5, r2, #1 add r2, r3, #4 str r5, [r1, r2] ldr r1, [sp, #0x14] lsl r7, r4, #1 ldr r2, [r1] ldr r1, _02245980 ; =0xBFFFFFFF mov r5, #0 and r1, r2 ldr r2, [sp, #4] ldr r0, [r2, r0] add r0, r0, #1 lsl r0, r0, #0x1f lsr r0, r0, #1 orr r1, r0 ldr r0, [sp, #0x14] str r1, [r0] add r0, r2, #0 ldr r1, _02245984 ; =0x0000305C add r3, r0, r7 add r0, r1, #0 strh r5, [r3, r1] add r0, #8 strh r5, [r3, r0] add r0, r1, #0 mov r2, #0xff add r0, #0x10 strh r2, [r3, r0] add r0, r1, #0 add r0, #0x18 strh r5, [r3, r0] add r0, r1, #0 add r0, #0x20 strh r5, [r3, r0] add r0, r1, #0 add r0, #0x28 strh r5, [r3, r0] ldr r0, [sp, #4] lsl r2, r4, #3 add r0, r0, r2 add r2, r1, #0 add r2, #0x30 strh r5, [r0, r2] add r2, r1, #0 add r2, #0x32 strh r5, [r0, r2] add r2, r1, #0 add r2, #0x34 strh r5, [r0, r2] add r2, r1, #0 add r2, #0x36 strh r5, [r0, r2] add r0, r1, #0 add r0, #0x50 strh r5, [r3, r0] add r0, r1, #0 add r0, #0x68 strh r5, [r3, r0] add r0, r1, #0 add r0, #0x70 strh r5, [r3, r0] add r0, r1, #0 add r0, #0x78 strh r5, [r3, r0] add r1, #0x80 add r0, r4, #0 strh r5, [r3, r1] bl FUN_0206A92C mov r1, #6 lsl r3, r0, #8 sub r0, r5, #1 ldr r2, [sp, #4] lsl r1, r1, #6 ldr r2, [r2, r1] eor r0, r3 and r2, r0 ldr r0, [sp, #4] str r2, [r0, r1] ldr r0, [sp, #0x10] ldr r1, [r0] mov r0, #2 lsl r0, r0, #0x16 tst r0, r1 beq _022459A2 ldr r0, _02245988 ; =0x00002D42 b _0224598C nop _0224594C: .word 0x00002DC8 _02245950: .word 0x000021A8 _02245954: .word 0x00002DCC _02245958: .word 0x00002DB0 _0224595C: .word 0xFBFFFFFF _02245960: .word 0x15100007 _02245964: .word 0x0FA3843F _02245968: .word 0xFFFF1FFF _0224596C: .word 0x0000213C _02245970: .word 0x00002DE0 _02245974: .word 0xFFFF9FFF _02245978: .word 0xFFC7FFFF _0224597C: .word 0x00002DD4 _02245980: .word 0xBFFFFFFF _02245984: .word 0x0000305C _02245988: .word 0x00002D42 _0224598C: ldr r1, [sp, #4] add r5, r1, r0 ldr r1, [sp, #0xc] ldrh r3, [r5, r1] add r1, r0, #2 ldr r0, [sp, #4] add r2, r0, r1 ldr r0, [sp, #0xc] ldrh r1, [r2, r0] strh r1, [r5, r0] strh r3, [r2, r0] _022459A2: mov r5, #0 cmp r6, #0 ble _022459E6 ldr r0, [sp, #4] str r0, [sp, #0x18] add r7, r0, r7 _022459AE: cmp r5, r4 beq _022459D2 ldr r0, [sp] add r1, r5, #0 bl MOD11_02230270 str r0, [sp, #0x1c] ldr r0, [sp] add r1, r4, #0 bl MOD11_02230270 ldr r1, [sp, #0x1c] cmp r1, r0 beq _022459D2 ldr r1, [sp, #0x18] ldr r0, _02245A08 ; =0x00003084 mov r2, #0 strh r2, [r1, r0] _022459D2: ldr r0, _02245A0C ; =0x0000308C mov r1, #0 strh r1, [r7, r0] ldr r0, [sp, #0x18] add r5, r5, #1 add r0, r0, #2 str r0, [sp, #0x18] add r7, #8 cmp r5, r6 blt _022459AE _022459E6: lsl r1, r4, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C818 lsl r1, r4, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C830 lsl r1, r4, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C83C add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02245A08: .word 0x00003084 _02245A0C: .word 0x0000308C thumb_func_start MOD11_02245A10 MOD11_02245A10: ; 0x02245A10 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r1, [sp, #4] str r0, [sp] add r5, r2, #0 bl MOD11_0222FF84 str r0, [sp, #0xc] mov r0, #0xc0 mul r0, r5 ldr r1, [sp, #4] str r0, [sp, #8] add r3, r1, r0 ldr r0, _02245C34 ; =0x00002D58 mov r2, #0 mov r1, #6 _02245A30: add r2, r2, #1 strb r1, [r3, r0] add r3, r3, #1 cmp r2, #8 blt _02245A30 mov r0, #0xc0 add r1, r5, #0 mul r1, r0 ldr r0, [sp, #4] mov r7, #0 add r2, r0, r1 ldr r1, _02245C38 ; =0x00002DB0 add r0, r1, #0 str r7, [r2, r1] add r0, #0x10 str r7, [r2, r0] ldr r0, [sp, #0xc] cmp r0, #0 ble _02245AD6 ldr r4, [sp, #4] add r1, #0x1c add r0, r4, #0 add r6, r0, r1 _02245A5E: ldr r0, _02245C38 ; =0x00002DB0 ldr r1, [r4, r0] mov r0, #1 lsl r0, r0, #0x1a tst r0, r1 beq _02245A80 ldr r0, [r6] lsl r0, r0, #0x16 lsr r0, r0, #0x1e cmp r5, r0 bne _02245A80 ldr r0, _02245C38 ; =0x00002DB0 ldr r1, [r4, r0] ldr r0, _02245C3C ; =0xFBFFFFFF and r1, r0 ldr r0, _02245C38 ; =0x00002DB0 str r1, [r4, r0] _02245A80: add r0, r5, #0 bl FUN_0206A92C ldr r1, _02245C38 ; =0x00002DB0 lsl r0, r0, #0x10 ldr r1, [r4, r1] tst r0, r1 beq _02245AA8 add r0, r5, #0 bl FUN_0206A92C ldr r1, _02245C38 ; =0x00002DB0 lsl r2, r0, #0x10 mov r0, #0 mvn r0, r0 ldr r1, [r4, r1] eor r0, r2 and r1, r0 ldr r0, _02245C38 ; =0x00002DB0 str r1, [r4, r0] _02245AA8: ldr r0, _02245C38 ; =0x00002DB0 ldr r1, [r4, r0] mov r0, #0xe lsl r0, r0, #0xc tst r0, r1 beq _02245ACA ldr r0, [r6] lsl r0, r0, #0x18 lsr r0, r0, #0x1e cmp r5, r0 bne _02245ACA ldr r0, _02245C38 ; =0x00002DB0 ldr r1, [r4, r0] ldr r0, _02245C40 ; =0xFFFF1FFF and r1, r0 ldr r0, _02245C38 ; =0x00002DB0 str r1, [r4, r0] _02245ACA: ldr r0, [sp, #0xc] add r7, r7, #1 add r4, #0xc0 add r6, #0xc0 cmp r7, r0 blt _02245A5E _02245AD6: ldr r1, _02245C44 ; =0x00002DC8 ldr r0, [sp, #4] add r1, r0, r1 ldr r0, [sp, #8] add r6, r1, r0 mov r1, #0 add r0, r1, #0 _02245AE4: strb r0, [r6, r1] add r1, r1, #1 cmp r1, #0x38 blo _02245AE4 mov r2, #0x75 ldr r1, [sp, #4] lsl r2, r2, #2 add r2, r1, r2 lsl r1, r5, #6 add r1, r2, r1 mov r4, #0 _02245AFA: strb r4, [r1, r0] add r0, r0, #1 cmp r0, #0x40 blo _02245AFA mov r2, #0xc0 add r3, r2, #0 ldr r0, [sp, #4] add r3, #0x90 ldr r0, [r0, r3] add r1, r5, #0 ldr r3, [sp, #4] mul r1, r2 add r3, r3, r1 add r1, r2, #0 ldr r7, _02245C48 ; =0x00002DD4 add r0, r0, #1 str r0, [r3, r7] ldr r0, [sp, #4] add r1, #0x90 ldr r0, [r0, r1] add r1, r7, #4 add r0, r0, #1 str r0, [r3, r1] ldr r1, [r6] ldr r0, _02245C4C ; =0xBFFFFFFF add r2, #0x90 and r0, r1 ldr r1, [sp, #4] mov r3, #0xff ldr r1, [r1, r2] add r1, r1, #1 lsl r1, r1, #0x1f lsr r1, r1, #1 orr r0, r1 str r0, [r6] ldr r0, [sp, #4] lsl r6, r5, #1 add r2, r0, r6 ldr r0, _02245C50 ; =0x0000305C add r1, r0, #0 strh r4, [r2, r0] add r1, #8 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x10 strh r3, [r2, r1] add r1, r0, #0 add r1, #0x18 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x20 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x28 strh r4, [r2, r1] ldr r1, [sp, #4] lsl r3, r5, #3 add r1, r1, r3 add r3, r0, #0 add r3, #0x30 strh r4, [r1, r3] add r3, r0, #0 add r3, #0x32 strh r4, [r1, r3] add r3, r0, #0 add r3, #0x34 strh r4, [r1, r3] add r3, r0, #0 add r3, #0x36 strh r4, [r1, r3] add r1, r0, #0 add r1, #0x50 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x68 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x70 strh r4, [r2, r1] add r1, r0, #0 add r1, #0x78 strh r4, [r2, r1] add r0, #0x80 strh r4, [r2, r0] add r0, r5, #0 bl FUN_0206A92C mov r1, #6 lsl r3, r0, #8 mov r0, #0 mvn r0, r0 ldr r2, [sp, #4] lsl r1, r1, #6 ldr r2, [r2, r1] eor r0, r3 and r2, r0 ldr r0, [sp, #4] mov r4, #0 str r2, [r0, r1] ldr r0, [sp, #0xc] cmp r0, #0 ble _02245C00 ldr r7, [sp, #4] add r0, r7, #0 add r6, r0, r6 _02245BCC: cmp r4, r5 beq _02245BEE ldr r0, [sp] add r1, r4, #0 bl MOD11_02230270 str r0, [sp, #0x10] ldr r0, [sp] add r1, r5, #0 bl MOD11_02230270 ldr r1, [sp, #0x10] cmp r1, r0 beq _02245BEE ldr r0, _02245C54 ; =0x00003084 mov r1, #0 strh r1, [r7, r0] _02245BEE: ldr r0, _02245C58 ; =0x0000308C mov r1, #0 strh r1, [r6, r0] ldr r0, [sp, #0xc] add r4, r4, #1 add r7, r7, #2 add r6, #8 cmp r4, r0 blt _02245BCC _02245C00: mov r1, #0x4f ldr r0, [sp, #4] lsl r1, r1, #2 add r3, r0, r1 lsl r2, r5, #2 ldr r1, [r3, r2] mov r0, #1 bic r1, r0 str r1, [r3, r2] lsl r1, r5, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C818 lsl r1, r5, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C830 lsl r1, r5, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 bl MOD11_0224C83C add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _02245C34: .word 0x00002D58 _02245C38: .word 0x00002DB0 _02245C3C: .word 0xFBFFFFFF _02245C40: .word 0xFFFF1FFF _02245C44: .word 0x00002DC8 _02245C48: .word 0x00002DD4 _02245C4C: .word 0xBFFFFFFF _02245C50: .word 0x0000305C _02245C54: .word 0x00003084 _02245C58: .word 0x0000308C thumb_func_start MOD11_02245C5C MOD11_02245C5C: ; 0x02245C5C push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0x75 add r5, r1, #0 lsl r0, r0, #2 add r7, r5, r0 mov r0, #0xd1 lsl r0, r0, #2 add r6, r5, r0 mov r0, #8 add r4, r5, #0 str r0, [sp, #8] _02245C7A: mov r0, #0 add r1, r7, #0 mov r2, #0x40 bl MIi_CpuClearFast mov r0, #0 add r1, r6, #0 mov r2, #4 bl MIi_CpuClearFast ldr r0, _02245D24 ; =0x00002DB0 ldr r1, [r4, r0] ldr r0, [sp, #8] bic r1, r0 ldr r0, _02245D24 ; =0x00002DB0 str r1, [r4, r0] add r0, #0x20 ldr r0, [r4, r0] add r1, r0, #1 mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r5, r0] cmp r1, r0 bge _02245CB6 ldr r0, _02245D24 ; =0x00002DB0 ldr r1, [r4, r0] ldr r0, _02245D28 ; =0xFFBFFFFF and r1, r0 ldr r0, _02245D24 ; =0x00002DB0 str r1, [r4, r0] _02245CB6: ldr r0, _02245D2C ; =0x00002DAC ldr r1, [r4, r0] mov r0, #7 tst r0, r1 beq _02245CD6 ldr r0, _02245D24 ; =0x00002DB0 ldr r1, [r4, r0] mov r0, #1 lsl r0, r0, #0xc tst r0, r1 beq _02245CD6 ldr r0, [sp] ldr r2, [sp, #4] add r1, r5, #0 bl MOD11_022451F0 _02245CD6: ldr r0, _02245D2C ; =0x00002DAC ldr r1, [r4, r0] mov r0, #7 tst r0, r1 beq _02245CF8 ldr r0, _02245D24 ; =0x00002DB0 ldr r1, [r4, r0] mov r0, #3 lsl r0, r0, #0xa tst r0, r1 beq _02245CF8 ldr r0, _02245D24 ; =0x00002DB0 ldr r1, [r4, r0] ldr r0, _02245D30 ; =0xFFFFF3FF and r1, r0 ldr r0, _02245D24 ; =0x00002DB0 str r1, [r4, r0] _02245CF8: ldr r0, [sp, #4] add r7, #0x40 add r0, r0, #1 add r6, r6, #4 add r4, #0xc0 str r0, [sp, #4] cmp r0, #4 blt _02245C7A mov r2, #0x71 lsl r2, r2, #2 ldr r0, [r5, r2] ldr r1, _02245D34 ; =0xFFEFFFFF and r0, r1 str r0, [r5, r2] add r0, r2, #0 add r0, #8 ldr r0, [r5, r0] add r2, #8 and r0, r1 str r0, [r5, r2] add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02245D24: .word 0x00002DB0 _02245D28: .word 0xFFBFFFFF _02245D2C: .word 0x00002DAC _02245D30: .word 0xFFFFF3FF _02245D34: .word 0xFFEFFFFF thumb_func_start MOD11_02245D38 MOD11_02245D38: ; 0x02245D38 push {r4, r5, r6, r7, lr} sub sp, #0x5c str r0, [sp] ldr r0, [sp, #0x70] add r7, r1, #0 str r0, [sp, #0x70] str r2, [sp, #4] add r0, r7, #0 add r1, r2, #0 add r5, r3, #0 bl MOD11_02249D90 str r0, [sp, #0x34] ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 add r4, r7, r1 str r1, [sp, #0x38] ldr r0, [sp, #0x70] mov r1, #1 and r0, r1 str r0, [sp, #0x2c] ldr r0, [sp, #0x70] mov r1, #2 and r0, r1 str r0, [sp, #0x28] ldr r0, [sp, #0x70] mov r1, #4 and r0, r1 str r0, [sp, #0x24] ldr r0, [sp, #4] mov r1, #8 lsl r0, r0, #1 add r0, r7, r0 str r0, [sp, #0x20] ldr r0, [sp, #0x70] mov r2, #0x10 and r0, r1 ldr r1, _02245F50 ; =0x00002DC8 str r0, [sp, #0x1c] add r0, r7, r1 str r0, [sp, #0x3c] ldr r0, [sp, #0x70] sub r1, #0x88 and r0, r2 str r0, [sp, #0x18] ldr r0, [sp, #0x70] mov r2, #0x20 and r0, r2 str r0, [sp, #0x14] ldr r0, [sp, #0x70] mov r2, #0x40 and r0, r2 str r0, [sp, #0x10] ldr r2, [sp, #0x70] mov r0, #0x80 and r2, r0 str r2, [sp, #0xc] lsl r2, r0, #2 ldr r0, [sp, #0x70] mov r6, #0 and r0, r2 str r0, [sp, #8] add r0, r7, r1 str r0, [sp, #0x40] ldr r0, _02245F54 ; =0x00002DE8 str r4, [sp, #0x30] add r0, r4, r0 str r0, [sp, #0x44] ldr r0, _02245F58 ; =0x00002DB0 add r0, r4, r0 str r0, [sp, #0x48] ldr r0, _02245F5C ; =0x00002DEC add r0, r4, r0 str r0, [sp, #0x4c] ldr r0, _02245F60 ; =0x00002DF8 add r0, r4, r0 str r0, [sp, #0x50] ldr r0, _02245F60 ; =0x00002DF8 add r0, r4, r0 str r0, [sp, #0x58] ldr r0, _02245F60 ; =0x00002DF8 add r0, r4, r0 str r0, [sp, #0x54] _02245DE0: ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] cmp r0, #0 bne _02245DF6 ldr r0, [sp, #0x2c] cmp r0, #0 beq _02245DF6 add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245DF6: ldr r1, [sp, #0x30] ldr r0, _02245F68 ; =0x00002D6C ldrb r0, [r1, r0] cmp r0, #0 bne _02245E0E ldr r0, [sp, #0x28] cmp r0, #0 beq _02245E0E add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245E0E: ldr r0, [sp, #0x44] ldrh r1, [r0] ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] cmp r1, r0 bne _02245E28 ldr r0, [sp, #0x24] cmp r0, #0 beq _02245E28 add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245E28: ldr r1, [sp, #0x20] ldr r0, _02245F6C ; =0x0000307C ldrh r1, [r1, r0] ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] cmp r1, r0 bne _02245E50 ldr r0, [sp, #0x1c] cmp r0, #0 beq _02245E50 ldr r0, [sp, #0x48] ldr r1, [r0] mov r0, #2 lsl r0, r0, #0x1e tst r0, r1 beq _02245E50 add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245E50: ldr r1, [sp, #0x3c] ldr r0, [sp, #0x38] ldr r0, [r1, r0] lsl r0, r0, #0x15 lsr r0, r0, #0x1d beq _02245E7A ldr r0, [sp, #0x18] cmp r0, #0 beq _02245E7A ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] lsl r0, r0, #4 add r1, r7, r0 ldr r0, _02245F70 ; =0x000003E1 ldrb r0, [r1, r0] cmp r0, #0 bne _02245E7A add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245E7A: ldr r3, _02245F64 ; =0x00002D4C ldr r0, [sp] ldrh r3, [r4, r3] ldr r2, [sp, #4] add r1, r7, #0 bl MOD11_022471C4 cmp r0, #0 beq _02245E9A ldr r0, [sp, #0x14] cmp r0, #0 beq _02245E9A add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245E9A: ldr r3, _02245F64 ; =0x00002D4C ldr r0, [sp] ldrh r3, [r4, r3] ldr r2, [sp, #4] add r1, r7, #0 bl MOD11_02247314 cmp r0, #0 beq _02245EBA ldr r0, [sp, #0x10] cmp r0, #0 beq _02245EBA add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245EBA: ldr r3, _02245F64 ; =0x00002D4C ldr r0, [sp] ldrh r3, [r4, r3] ldr r2, [sp, #4] add r1, r7, #0 bl MOD11_02247348 cmp r0, #0 beq _02245EDA ldr r0, [sp, #0xc] cmp r0, #0 beq _02245EDA add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245EDA: ldr r0, [sp, #0x4c] ldrh r1, [r0] cmp r1, #0 beq _02245EF2 ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] cmp r1, r0 beq _02245EF2 add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245EF2: ldr r0, [sp, #0x34] cmp r0, #0x36 beq _02245F00 cmp r0, #0x72 beq _02245F00 cmp r0, #0x7c bne _02245F38 _02245F00: ldr r0, [sp, #8] cmp r0, #0 beq _02245F38 ldr r1, [sp, #0x40] ldr r0, [sp, #0x38] add r0, r1, r0 ldr r1, [sp, #0x50] ldrh r1, [r1] bl MOD11_022461AC cmp r0, #4 bne _02245F20 ldr r0, [sp, #0x54] mov r1, #0 strh r1, [r0] b _02245F38 _02245F20: ldr r0, [sp, #0x58] ldrh r1, [r0] cmp r1, #0 beq _02245F38 ldr r0, _02245F64 ; =0x00002D4C ldrh r0, [r4, r0] cmp r1, r0 beq _02245F38 add r0, r6, #0 bl FUN_0206A92C orr r5, r0 _02245F38: ldr r0, [sp, #0x30] add r6, r6, #1 add r0, r0, #1 add r4, r4, #2 str r0, [sp, #0x30] cmp r6, #4 bge _02245F48 b _02245DE0 _02245F48: add r0, r5, #0 add sp, #0x5c pop {r4, r5, r6, r7, pc} nop _02245F50: .word 0x00002DC8 _02245F54: .word 0x00002DE8 _02245F58: .word 0x00002DB0 _02245F5C: .word 0x00002DEC _02245F60: .word 0x00002DF8 _02245F64: .word 0x00002D4C _02245F68: .word 0x00002D6C _02245F6C: .word 0x0000307C _02245F70: .word 0x000003E1 thumb_func_start MOD11_02245F74 MOD11_02245F74: ; 0x02245F74 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r7, r3, #0 mov r3, #1 str r3, [sp, #8] mov r3, #4 str r3, [sp] mov r3, #0 str r0, [sp, #4] add r5, r1, #0 add r6, r2, #0 ldr r4, [sp, #0x40] bl MOD11_02245D38 str r0, [sp, #0xc] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0xc] tst r0, r1 beq _02245FC6 mov r0, #0xa strb r0, [r4, #1] ldr r0, _02246188 ; =0x00000261 add r1, r6, #0 strh r0, [r4, #2] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0xc0 mul r0, r6 add r1, r5, r0 lsl r0, r7, #1 add r1, r1, r0 ldr r0, _0224618C ; =0x00002D4C ldrh r0, [r1, r0] str r0, [r4, #8] mov r0, #0 str r0, [sp, #8] b _02246182 _02245FC6: mov r0, #8 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x10] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x10] tst r0, r1 beq _02245FFE mov r0, #2 strb r0, [r4, #1] mov r0, #0x99 lsl r0, r0, #2 strh r0, [r4, #2] add r0, r5, #0 add r1, r6, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0 str r0, [sp, #8] b _02246182 _02245FFE: mov r0, #0x10 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x14] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x14] tst r0, r1 beq _02246044 mov r0, #0xa strb r0, [r4, #1] ldr r0, _02246190 ; =0x00000265 add r1, r6, #0 strh r0, [r4, #2] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0xc0 mul r0, r6 add r1, r5, r0 lsl r0, r7, #1 add r1, r1, r0 ldr r0, _0224618C ; =0x00002D4C ldrh r0, [r1, r0] str r0, [r4, #8] mov r0, #0 str r0, [sp, #8] b _02246182 _02246044: mov r0, #0x20 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x18] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x18] tst r0, r1 beq _0224608C mov r0, #0xa strb r0, [r4, #1] mov r0, #0x9a lsl r0, r0, #2 strh r0, [r4, #2] add r0, r5, #0 add r1, r6, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0xc0 mul r0, r6 add r1, r5, r0 lsl r0, r7, #1 add r1, r1, r0 ldr r0, _0224618C ; =0x00002D4C ldrh r0, [r1, r0] str r0, [r4, #8] mov r0, #0 str r0, [sp, #8] b _02246182 _0224608C: mov r0, #0x40 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x1c] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x1c] tst r0, r1 beq _022460D2 mov r0, #0xa strb r0, [r4, #1] ldr r0, _02246194 ; =0x000003E9 add r1, r6, #0 strh r0, [r4, #2] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0xc0 mul r0, r6 add r1, r5, r0 lsl r0, r7, #1 add r1, r1, r0 ldr r0, _0224618C ; =0x00002D4C ldrh r0, [r1, r0] str r0, [r4, #8] mov r0, #0 str r0, [sp, #8] b _02246182 _022460D2: mov r0, #0x80 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x20] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x20] tst r0, r1 beq _0224611C mov r0, #0x22 strb r0, [r4, #1] ldr r0, _02246198 ; =0x00000421 add r1, r6, #0 strh r0, [r4, #2] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] ldr r0, _0224619C ; =0x00000179 str r0, [r4, #8] mov r0, #0xc0 mul r0, r6 add r1, r5, r0 lsl r0, r7, #1 add r1, r1, r0 ldr r0, _0224618C ; =0x00002D4C ldrh r0, [r1, r0] str r0, [r4, #0xc] mov r0, #0 str r0, [sp, #8] b _02246182 _0224611C: mov r0, #2 lsl r0, r0, #8 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 str r0, [sp, #0x24] add r0, r7, #0 bl FUN_0206A92C ldr r1, [sp, #0x24] tst r0, r1 beq _0224615C mov r0, #0x18 strb r0, [r4, #1] ldr r0, _022461A0 ; =0x0000038F strh r0, [r4, #2] mov r0, #0xc0 mul r0, r6 add r2, r5, r0 ldr r0, _022461A4 ; =0x00002DB8 ldrh r1, [r2, r0] add r0, #0x40 str r1, [r4, #4] ldrh r0, [r2, r0] str r0, [r4, #8] mov r0, #0 str r0, [sp, #8] b _02246182 _0224615C: mov r0, #2 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD11_02245D38 add r5, r0, #0 add r0, r7, #0 bl FUN_0206A92C tst r0, r5 beq _02246182 mov r0, #0 str r0, [sp, #8] strb r0, [r4, #1] ldr r0, _022461A8 ; =0x00000337 strh r0, [r4, #2] _02246182: ldr r0, [sp, #8] add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02246188: .word 0x00000261 _0224618C: .word 0x00002D4C _02246190: .word 0x00000265 _02246194: .word 0x000003E9 _02246198: .word 0x00000421 _0224619C: .word 0x00000179 _022461A0: .word 0x0000038F _022461A4: .word 0x00002DB8 _022461A8: .word 0x00000337 thumb_func_start MOD11_022461AC MOD11_022461AC: ; 0x022461AC mov r3, #0 _022461AE: ldrh r2, [r0, #0xc] cmp r1, r2 beq _022461BC add r3, r3, #1 add r0, r0, #2 cmp r3, #4 blt _022461AE _022461BC: add r0, r3, #0 bx lr thumb_func_start MOD11_022461C0 MOD11_022461C0: ; 0x022461C0 push {r4, r5, r6, lr} add r6, r2, #0 add r1, r6, #0 add r5, r0, #0 add r4, r3, #0 bl MOD11_02249D90 mov r1, #1 cmp r0, #0x69 beq _022461E6 mov r0, #0xc0 mul r0, r6 add r2, r5, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r2, [r2, r0] lsl r0, r1, #0xa tst r0, r2 beq _022461FC _022461E6: lsl r0, r4, #1 add r2, r4, r0 ldr r0, _0224626C ; =0x0225E379 ldrb r0, [r0, r2] cmp r0, #2 bne _022461FC ldr r0, _02246270 ; =0x0225E37A ldrb r0, [r0, r2] cmp r0, #0 bne _022461FC mov r1, #0 _022461FC: lsl r0, r6, #6 add r2, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r2, r0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f beq _0224621A lsl r0, r4, #1 add r2, r4, r0 ldr r0, _0224626C ; =0x0225E379 ldrb r0, [r0, r2] cmp r0, #2 bne _0224621A mov r1, #0 _0224621A: mov r0, #6 lsl r0, r0, #6 ldr r2, [r5, r0] mov r0, #7 lsl r0, r0, #0xc tst r0, r2 beq _0224623E lsl r0, r4, #1 add r2, r4, r0 ldr r0, _0224626C ; =0x0225E379 ldrb r0, [r0, r2] cmp r0, #2 bne _0224623E ldr r0, _02246270 ; =0x0225E37A ldrb r0, [r0, r2] cmp r0, #0 bne _0224623E mov r1, #0 _0224623E: mov r0, #0xc0 mul r0, r6 add r2, r5, r0 mov r0, #0xb7 lsl r0, r0, #6 ldr r2, [r2, r0] mov r0, #1 lsl r0, r0, #0x16 tst r0, r2 beq _02246268 lsl r0, r4, #1 add r2, r4, r0 ldr r0, _0224626C ; =0x0225E379 ldrb r0, [r0, r2] cmp r0, #0x11 bne _02246268 ldr r0, _02246270 ; =0x0225E37A ldrb r0, [r0, r2] cmp r0, #0 bne _02246268 mov r1, #0 _02246268: add r0, r1, #0 pop {r4, r5, r6, pc} .align 2, 0 _0224626C: .word 0x0225E379 _02246270: .word 0x0225E37A thumb_func_start MOD11_02246274 MOD11_02246274: ; 0x02246274 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 ldr r0, [sp, #0x50] add r5, r1, #0 str r0, [sp, #0x50] ldr r0, [sp, #0x54] str r2, [sp, #8] str r0, [sp, #0x54] add r0, r2, #0 add r4, r3, #0 ldr r7, [sp, #0x48] ldr r6, [sp, #0x4c] cmp r0, #0xa5 bne _02246296 ldr r0, [sp, #0x50] add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} _02246296: add r0, r5, #0 add r1, r7, #0 bl MOD11_02249D90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x24] add r0, r5, #0 add r1, r7, #0 mov r2, #0 bl MOD11_02249DA4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r5, #0 add r1, r6, #0 bl MOD11_02249D90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x20] add r0, r5, #0 add r1, r6, #0 mov r2, #0 bl MOD11_02249DA4 add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x60 bne _022462DE mov r0, #0 str r0, [sp, #0x28] b _022462F6 _022462DE: cmp r4, #0 beq _022462EA lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x28] b _022462F6 _022462EA: ldr r0, [sp, #8] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02246588 ; =0x000003E2 ldrb r0, [r1, r0] str r0, [sp, #0x28] _022462F6: ldr r0, [sp, #8] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224658C ; =0x000003E1 ldrb r0, [r1, r0] str r0, [sp, #0x14] ldr r0, _02246590 ; =0x0000213C ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0xa tst r0, r1 bne _02246354 add r0, r5, #0 add r1, r7, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x28] cmp r1, r0 beq _02246332 add r0, r5, #0 add r1, r7, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x28] cmp r1, r0 bne _02246354 _02246332: add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x5b bne _02246346 ldr r0, [sp, #0x50] lsl r0, r0, #1 str r0, [sp, #0x50] b _02246354 _02246346: ldr r1, [sp, #0x50] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f str r0, [sp, #0x50] _02246354: add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #0x1a bl MOD11_02246D84 cmp r0, #1 bne _02246380 ldr r0, [sp, #0x28] cmp r0, #4 bne _02246380 ldr r0, [sp, #0x20] cmp r0, #0x69 beq _02246380 ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #2 lsl r0, r0, #0xa orr r1, r0 ldr r0, [sp, #0x54] str r1, [r0] b _0224649C _02246380: mov r0, #0xc0 add r1, r6, #0 mul r1, r0 ldr r0, _02246594 ; =0x00002DCC add r3, r5, r1 ldr r2, [r3, r0] lsl r2, r2, #0x10 lsr r2, r2, #0x1d beq _022463B8 sub r0, #0xc ldr r2, [r3, r0] mov r0, #1 lsl r0, r0, #0xa tst r2, r0 bne _022463B8 ldr r2, [sp, #0x28] cmp r2, #4 bne _022463B8 ldr r2, [sp, #0x20] cmp r2, #0x69 beq _022463B8 ldr r1, [sp, #0x54] lsl r0, r0, #0xa ldr r1, [r1] orr r1, r0 ldr r0, [sp, #0x54] str r1, [r0] b _0224649C _022463B8: add r0, r5, r1 mov r4, #0 str r0, [sp, #0x18] _022463BE: lsl r0, r4, #1 ldr r1, _02246598 ; =0x0225E378 add r0, r4, r0 add r1, r1, r0 str r1, [sp, #0xc] ldr r1, _02246598 ; =0x0225E378 ldrb r1, [r1, r0] cmp r1, #0xfe bne _022463EE ldr r1, [sp, #0x18] ldr r0, _0224659C ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #2 lsl r0, r0, #0x1c tst r0, r1 bne _0224649C add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x71 beq _0224649C add r4, r4, #1 b _02246490 _022463EE: ldr r0, [sp, #0x28] cmp r0, r1 bne _0224648E ldr r0, [sp, #0xc] add r1, r6, #0 ldrb r0, [r0, #1] mov r2, #0x1b mov r3, #0 str r0, [sp, #0x10] add r0, r5, #0 bl MOD11_02243420 ldr r1, [sp, #0x10] cmp r1, r0 bne _02246434 add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_022461C0 cmp r0, #1 bne _02246434 ldr r0, [sp, #0x14] ldr r2, [sp, #0xc] str r0, [sp] ldr r0, [sp, #0x54] ldr r3, [sp, #0x50] str r0, [sp, #4] ldrb r2, [r2, #2] add r0, r5, #0 add r1, r7, #0 bl MOD11_0224C648 str r0, [sp, #0x50] _02246434: add r0, r5, #0 add r1, r6, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x10] cmp r1, r0 bne _0224648E add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 str r0, [sp, #0x2c] add r0, r5, #0 add r1, r6, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x2c] cmp r1, r0 beq _0224648E add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_022461C0 cmp r0, #1 bne _0224648E ldr r0, [sp, #0x14] ldr r2, [sp, #0xc] str r0, [sp] ldr r0, [sp, #0x54] ldr r3, [sp, #0x50] str r0, [sp, #4] ldrb r2, [r2, #2] add r0, r5, #0 add r1, r7, #0 bl MOD11_0224C648 str r0, [sp, #0x50] _0224648E: add r4, r4, #1 _02246490: lsl r0, r4, #1 add r1, r4, r0 ldr r0, _02246598 ; =0x0225E378 ldrb r0, [r0, r1] cmp r0, #0xff bne _022463BE _0224649C: add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #0x19 bl MOD11_02246D84 cmp r0, #1 bne _022464E0 ldr r1, [sp, #8] add r0, r5, #0 bl MOD11_0224C6D4 cmp r0, #0 beq _022464E0 ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #2 tst r0, r1 beq _022464CA mov r0, #6 and r0, r1 cmp r0, #6 bne _022464E0 _022464CA: ldr r0, [sp, #0x14] cmp r0, #0 beq _022464E0 ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #1 lsl r0, r0, #0x12 orr r1, r0 ldr r0, [sp, #0x54] str r1, [r0] b _02246582 _022464E0: ldr r0, _02246590 ; =0x0000213C ldr r2, [r5, r0] mov r0, #2 lsl r0, r0, #0xa add r1, r2, #0 tst r1, r0 bne _0224656E lsl r0, r0, #4 tst r0, r2 bne _0224656E ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #2 tst r0, r1 beq _0224654A ldr r0, [sp, #0x14] cmp r0, #0 beq _0224654A add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #0x6f bl MOD11_02246D84 cmp r0, #1 beq _02246524 add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #0x74 bl MOD11_02246D84 cmp r0, #1 bne _02246532 _02246524: ldr r0, [sp, #0x50] lsl r1, r0, #1 add r0, r0, r1 mov r1, #4 bl MOD11_022476C0 str r0, [sp, #0x50] _02246532: ldr r0, [sp, #0x24] cmp r0, #0x5f bne _0224654A ldr r0, [sp, #0x1c] ldr r1, [sp, #0x50] add r0, #0x64 str r0, [sp, #0x1c] mul r0, r1 mov r1, #0x64 bl _s32_div_f str r0, [sp, #0x50] _0224654A: ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #4 tst r0, r1 beq _02246582 ldr r0, [sp, #0x14] cmp r0, #0 beq _02246582 add r0, r5, #0 add r1, r7, #0 bl MOD11_02246D1C cmp r0, #0x6e bne _02246582 ldr r0, [sp, #0x50] lsl r0, r0, #1 str r0, [sp, #0x50] b _02246582 _0224656E: ldr r0, [sp, #0x54] ldr r1, [r0] mov r0, #2 bic r1, r0 ldr r0, [sp, #0x54] str r1, [r0] mov r0, #4 bic r1, r0 ldr r0, [sp, #0x54] str r1, [r0] _02246582: ldr r0, [sp, #0x50] add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02246588: .word 0x000003E2 _0224658C: .word 0x000003E1 _02246590: .word 0x0000213C _02246594: .word 0x00002DCC _02246598: .word 0x0225E378 _0224659C: .word 0x00002DB0 thumb_func_start MOD11_022465A0 MOD11_022465A0: ; 0x022465A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 ldr r0, [sp, #0x2c] str r1, [sp] str r0, [sp, #0x2c] ldr r0, [sp, #0x30] str r3, [sp, #4] str r0, [sp, #0x30] ldr r0, [sp, #0x34] ldr r6, [sp, #0x38] str r0, [sp, #0x34] add r0, r1, #0 cmp r0, #0xa5 beq _022466B6 add r0, r3, #0 cmp r0, #0x60 bne _022465CA mov r0, #0 str r0, [sp, #0xc] b _022465E2 _022465CA: cmp r2, #0 beq _022465D6 lsl r0, r2, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] b _022465E2 _022465D6: add r0, r1, #0 lsl r0, r0, #4 add r1, r7, r0 ldr r0, _022466BC ; =0x000003E2 ldrb r0, [r1, r0] str r0, [sp, #0xc] _022465E2: ldr r0, [sp, #4] cmp r0, #0x68 beq _02246612 ldr r0, [sp, #0x28] cmp r0, #0x1a bne _02246612 ldr r0, [sp, #0xc] cmp r0, #4 bne _02246612 mov r0, #6 lsl r0, r0, #6 ldr r1, [r7, r0] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 bne _02246612 ldr r0, [sp, #0x2c] cmp r0, #0x69 beq _02246612 ldr r1, [r6] mov r0, #8 orr r0, r1 str r0, [r6] b _02246686 _02246612: mov r4, #0 _02246614: lsl r0, r4, #1 add r1, r4, r0 ldr r0, _022466C0 ; =0x0225E378 add r5, r0, r1 ldrb r1, [r0, r1] cmp r1, #0xfe bne _0224662C ldr r0, [sp, #4] cmp r0, #0x71 beq _02246686 add r4, r4, #1 b _0224667A _0224662C: ldr r0, [sp, #0xc] cmp r0, r1 bne _02246678 ldrb r0, [r5, #1] ldr r1, [sp, #0x30] str r0, [sp, #8] cmp r1, r0 bne _02246652 ldr r1, [sp, #0x2c] add r0, r7, #0 add r2, r4, #0 bl MOD11_022466C4 cmp r0, #1 bne _02246652 ldrb r0, [r5, #2] add r1, r6, #0 bl MOD11_02246714 _02246652: ldr r1, [sp, #0x34] ldr r0, [sp, #8] cmp r1, r0 bne _02246678 ldr r1, [sp, #0x30] ldr r0, [sp, #0x34] cmp r1, r0 beq _02246678 ldr r1, [sp, #0x2c] add r0, r7, #0 add r2, r4, #0 bl MOD11_022466C4 cmp r0, #1 bne _02246678 ldrb r0, [r5, #2] add r1, r6, #0 bl MOD11_02246714 _02246678: add r4, r4, #1 _0224667A: lsl r0, r4, #1 add r1, r4, r0 ldr r0, _022466C0 ; =0x0225E378 ldrb r0, [r0, r1] cmp r0, #0xff bne _02246614 _02246686: ldr r0, [sp, #4] cmp r0, #0x68 beq _022466B6 ldr r0, [sp, #0x28] cmp r0, #0x19 bne _022466B6 ldr r1, [sp] add r0, r7, #0 bl MOD11_0224C6D4 cmp r0, #0 beq _022466B6 ldr r1, [r6] mov r0, #2 tst r0, r1 beq _022466AE mov r0, #6 and r0, r1 cmp r0, #6 bne _022466B6 _022466AE: ldr r1, [r6] mov r0, #8 orr r0, r1 str r0, [r6] _022466B6: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _022466BC: .word 0x000003E2 _022466C0: .word 0x0225E378 thumb_func_start MOD11_022466C4 MOD11_022466C4: ; 0x022466C4 push {r3, r4} mov r3, #1 cmp r1, #0x69 bne _022466E2 lsl r1, r2, #1 add r4, r2, r1 ldr r1, _0224670C ; =0x0225E379 ldrb r1, [r1, r4] cmp r1, #2 bne _022466E2 ldr r1, _02246710 ; =0x0225E37A ldrb r1, [r1, r4] cmp r1, #0 bne _022466E2 mov r3, #0 _022466E2: mov r1, #6 lsl r1, r1, #6 ldr r1, [r0, r1] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 beq _02246706 lsl r0, r2, #1 add r1, r2, r0 ldr r0, _0224670C ; =0x0225E379 ldrb r0, [r0, r1] cmp r0, #2 bne _02246706 ldr r0, _02246710 ; =0x0225E37A ldrb r0, [r0, r1] cmp r0, #0 bne _02246706 mov r3, #0 _02246706: add r0, r3, #0 pop {r3, r4} bx lr .align 2, 0 _0224670C: .word 0x0225E379 _02246710: .word 0x0225E37A thumb_func_start MOD11_02246714 MOD11_02246714: ; 0x02246714 cmp r0, #0 beq _02246722 cmp r0, #5 beq _02246734 cmp r0, #0x14 beq _0224674C bx lr _02246722: ldr r2, [r1] mov r0, #8 orr r2, r0 mov r0, #4 bic r2, r0 mov r0, #2 bic r2, r0 str r2, [r1] bx lr _02246734: ldr r2, [r1] mov r0, #2 tst r0, r2 beq _02246744 mov r0, #2 bic r2, r0 str r2, [r1] bx lr _02246744: mov r0, #4 orr r0, r2 str r0, [r1] bx lr _0224674C: ldr r2, [r1] mov r0, #4 tst r0, r2 beq _0224675C mov r0, #4 bic r2, r0 str r2, [r1] bx lr _0224675C: mov r0, #2 orr r0, r2 str r0, [r1] bx lr thumb_func_start MOD11_02246764 MOD11_02246764: ; 0x02246764 mov r2, #0xd1 lsl r2, r2, #2 add r2, r0, r2 lsl r0, r1, #2 ldr r0, [r2, r0] lsl r1, r0, #0x1f lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x1e lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x1d lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x1c lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x1b lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x1a lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x19 lsr r1, r1, #0x1f bne _022467A4 lsl r1, r0, #0x17 lsr r1, r1, #0x1f bne _022467A4 lsl r0, r0, #0x18 lsr r0, r0, #0x1f beq _022467A8 _022467A4: mov r0, #1 bx lr _022467A8: mov r0, #0 bx lr thumb_func_start MOD11_022467AC MOD11_022467AC: ; 0x022467AC push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] add r5, r1, #0 add r6, r2, #0 str r3, [sp, #4] mov r4, #0 bl MOD11_0222FF84 add r7, r0, #0 cmp r6, #0 beq _022467CA cmp r6, #1 beq _022467EE b _02246822 _022467CA: add r0, r4, #0 cmp r7, #0 ble _02246822 ldr r2, _02246828 ; =0x00002D8C _022467D2: ldr r1, [sp, #4] cmp r0, r1 beq _022467E4 ldr r1, [r5, r2] cmp r1, #0 beq _022467E4 add r1, r4, #1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 _022467E4: add r0, r0, #1 add r5, #0xc0 cmp r0, r7 blt _022467D2 b _02246822 _022467EE: add r6, r4, #0 cmp r7, #0 ble _02246822 _022467F4: ldr r0, [sp] add r1, r6, #0 bl MOD11_02230270 str r0, [sp, #8] ldr r0, [sp] ldr r1, [sp, #4] bl MOD11_02230270 ldr r1, [sp, #8] cmp r1, r0 bne _0224681A ldr r0, _02246828 ; =0x00002D8C ldr r0, [r5, r0] cmp r0, #0 beq _0224681A add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0224681A: add r6, r6, #1 add r5, #0xc0 cmp r6, r7 blt _022467F4 _02246822: add r0, r4, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02246828: .word 0x00002D8C thumb_func_start MOD11_0224682C MOD11_0224682C: ; 0x0224682C add r2, r0, r1 ldr r0, _02246838 ; =0x0000219C ldrb r0, [r2, r0] lsl r0, r0, #8 orr r0, r1 bx lr .align 2, 0 _02246838: .word 0x0000219C thumb_func_start MOD11_0224683C MOD11_0224683C: ; 0x0224683C push {r4, r5} lsl r3, r1, #4 add r5, r0, r3 ldr r3, _02246868 ; =0x000021B4 mov r2, #0 ldr r4, [r5, r3] cmp r4, #1 bne _02246862 sub r3, r3, #4 ldr r3, [r5, r3] cmp r3, #0 beq _02246862 mov r2, #0xc0 mul r2, r1 add r1, r0, r2 lsl r0, r3, #1 add r1, r1, r0 ldr r0, _0224686C ; =0x00002D4A ldrh r2, [r1, r0] _02246862: add r0, r2, #0 pop {r4, r5} bx lr .align 2, 0 _02246868: .word 0x000021B4 _0224686C: .word 0x00002D4A thumb_func_start MOD11_02246870 MOD11_02246870: ; 0x02246870 push {r4, r5, r6, r7, lr} sub sp, #0x5c str r2, [sp, #4] str r0, [sp] add r7, r1, #0 str r3, [sp, #8] ldr r6, [sp, #0x70] mov r4, #0 bl MOD11_0222FF84 add r5, r0, #0 ldr r0, [sp, #4] cmp r0, #9 bhi _022468E4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02246898: ; jump table .short _022468AC - _02246898 - 2 ; case 0 .short _022468E6 - _02246898 - 2 ; case 1 .short _02246932 - _02246898 - 2 ; case 2 .short _0224696C - _02246898 - 2 ; case 3 .short _022469B8 - _02246898 - 2 ; case 4 .short _02246A0A - _02246898 - 2 ; case 5 .short _02246A2C - _02246898 - 2 ; case 6 .short _02246A54 - _02246898 - 2 ; case 7 .short _02246A80 - _02246898 - 2 ; case 8 .short _02246AB4 - _02246898 - 2 ; case 9 _022468AC: add r0, r4, #0 str r0, [sp, #0x44] cmp r5, #0 ble _022468E4 _022468B4: ldr r0, [sp] ldr r1, [sp, #0x44] bl MOD11_02230270 str r0, [sp, #0x48] ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_02230270 ldr r1, [sp, #0x48] cmp r1, r0 bne _022468DA ldr r1, [sp, #0x44] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _022468DA add r4, r4, #1 _022468DA: ldr r0, [sp, #0x44] add r0, r0, #1 str r0, [sp, #0x44] cmp r0, r5 blt _022468B4 _022468E4: b _02246AEC _022468E6: add r0, r4, #0 str r0, [sp, #0xc] cmp r5, #0 ble _02246930 str r7, [sp, #0x30] _022468F0: ldr r0, [sp] ldr r1, [sp, #0xc] bl MOD11_02230270 str r0, [sp, #0x4c] ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_02230270 ldr r1, [sp, #0x4c] cmp r1, r0 bne _02246920 ldr r1, [sp, #0x30] ldr r0, _02246AF4 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02246920 ldr r1, [sp, #0xc] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246920 add r4, r4, #1 _02246920: ldr r0, [sp, #0x30] add r0, #0xc0 str r0, [sp, #0x30] ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] cmp r0, r5 blt _022468F0 _02246930: b _02246AEC _02246932: add r0, r4, #0 str r0, [sp, #0x10] cmp r5, #0 ble _0224696A _0224693A: ldr r0, [sp] ldr r1, [sp, #0x10] bl MOD11_02230270 str r0, [sp, #0x50] ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_02230270 ldr r1, [sp, #0x50] cmp r1, r0 beq _02246960 ldr r1, [sp, #0x10] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246960 add r4, r4, #1 _02246960: ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, r5 blt _0224693A _0224696A: b _02246AEC _0224696C: add r0, r4, #0 str r0, [sp, #0x14] cmp r5, #0 ble _022469B6 str r7, [sp, #0x34] _02246976: ldr r0, [sp] ldr r1, [sp, #0x14] bl MOD11_02230270 str r0, [sp, #0x54] ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_02230270 ldr r1, [sp, #0x54] cmp r1, r0 beq _022469A6 ldr r1, [sp, #0x34] ldr r0, _02246AF4 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022469A6 ldr r1, [sp, #0x14] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _022469A6 add r4, r4, #1 _022469A6: ldr r0, [sp, #0x34] add r0, #0xc0 str r0, [sp, #0x34] ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] cmp r0, r5 blt _02246976 _022469B6: b _02246AEC _022469B8: add r0, r4, #0 str r0, [sp, #0x18] cmp r5, #0 ble _02246A08 str r7, [sp, #0x38] _022469C2: ldr r0, [sp] ldr r1, [sp, #0x18] bl MOD11_02230270 str r0, [sp, #0x58] ldr r0, [sp] ldr r1, [sp, #8] bl MOD11_02230270 ldr r1, [sp, #0x58] cmp r1, r0 beq _022469F8 ldr r1, [sp, #0x38] ldr r0, _02246AF4 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _022469F8 ldr r1, [sp, #0x18] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _022469F8 ldr r0, [sp, #0x18] bl FUN_0206A92C orr r4, r0 _022469F8: ldr r0, [sp, #0x38] add r0, #0xc0 str r0, [sp, #0x38] ldr r0, [sp, #0x18] add r0, r0, #1 str r0, [sp, #0x18] cmp r0, r5 blt _022469C2 _02246A08: b _02246AEC _02246A0A: add r0, r4, #0 str r0, [sp, #0x1c] cmp r5, #0 ble _02246AEC _02246A12: ldr r1, [sp, #0x1c] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246A20 add r4, r4, #1 _02246A20: ldr r0, [sp, #0x1c] add r0, r0, #1 str r0, [sp, #0x1c] cmp r0, r5 blt _02246A12 b _02246AEC _02246A2C: add r0, r4, #0 str r0, [sp, #0x20] cmp r5, #0 ble _02246AEC _02246A34: ldr r1, [sp, #0x20] ldr r0, [sp, #8] cmp r1, r0 beq _02246A48 add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246A48 add r4, r4, #1 _02246A48: ldr r0, [sp, #0x20] add r0, r0, #1 str r0, [sp, #0x20] cmp r0, r5 blt _02246A34 b _02246AEC _02246A54: add r0, r4, #0 str r0, [sp, #0x24] cmp r5, #0 ble _02246AEC _02246A5C: ldr r1, [sp, #0x24] ldr r0, [sp, #8] cmp r1, r0 beq _02246A74 add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246A74 ldr r0, [sp, #0x24] add r4, r0, #1 b _02246AEC _02246A74: ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] cmp r0, r5 blt _02246A5C b _02246AEC _02246A80: add r0, r4, #0 str r0, [sp, #0x28] cmp r5, #0 ble _02246AEC str r7, [sp, #0x3c] _02246A8A: ldr r1, [sp, #0x28] add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246AA2 ldr r1, [sp, #0x3c] ldr r0, _02246AF4 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02246AA2 add r4, r4, #1 _02246AA2: ldr r0, [sp, #0x3c] add r0, #0xc0 str r0, [sp, #0x3c] ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, r5 blt _02246A8A b _02246AEC _02246AB4: add r0, r4, #0 str r0, [sp, #0x2c] cmp r5, #0 ble _02246AEC str r7, [sp, #0x40] _02246ABE: ldr r1, [sp, #0x2c] ldr r0, [sp, #8] cmp r1, r0 beq _02246ADC add r0, r7, #0 bl MOD11_02246D1C cmp r6, r0 bne _02246ADC ldr r1, [sp, #0x40] ldr r0, _02246AF4 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02246ADC add r4, r4, #1 _02246ADC: ldr r0, [sp, #0x40] add r0, #0xc0 str r0, [sp, #0x40] ldr r0, [sp, #0x2c] add r0, r0, #1 str r0, [sp, #0x2c] cmp r0, r5 blt _02246ABE _02246AEC: add r0, r4, #0 add sp, #0x5c pop {r4, r5, r6, r7, pc} nop _02246AF4: .word 0x00002D8C thumb_func_start MOD11_02246AF8 MOD11_02246AF8: ; 0x02246AF8 lsl r1, r1, #4 add r1, r0, r1 ldr r0, _02246B54 ; =0x000003DE ldrh r2, [r1, r0] cmp r2, #0x9b bgt _02246B2A cmp r2, #0x97 blt _02246B10 beq _02246B4A cmp r2, #0x9b beq _02246B4A b _02246B4E _02246B10: cmp r2, #0x27 bgt _02246B1C bge _02246B4A cmp r2, #0x1a beq _02246B4A b _02246B4E _02246B1C: cmp r2, #0x4b bgt _02246B24 beq _02246B4A b _02246B4E _02246B24: cmp r2, #0x91 beq _02246B4A b _02246B4E _02246B2A: mov r1, #1 lsl r1, r1, #8 cmp r2, r1 bgt _02246B3A bge _02246B4A cmp r2, #0xff beq _02246B4A b _02246B4E _02246B3A: add r0, r1, #7 cmp r2, r0 bgt _02246B44 beq _02246B4A b _02246B4E _02246B44: add r1, #0x10 cmp r2, r1 bne _02246B4E _02246B4A: mov r0, #1 bx lr _02246B4E: mov r0, #0 bx lr nop _02246B54: .word 0x000003DE thumb_func_start MOD11_02246B58 MOD11_02246B58: ; 0x02246B58 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r5, r1, #0 add r4, r2, #0 add r7, r3, #0 mov r0, #1 cmp r6, #0x70 blo _02246B76 bl FUN_0201B9EC mov r1, #0x70 bl _u32_div_f add r6, r1, #0 mov r0, #0 _02246B76: lsl r1, r6, #1 ldr r2, _02246B90 ; =0x0225E378 add r1, r6, r1 ldrb r2, [r2, r1] strb r2, [r5] ldr r2, _02246B94 ; =0x0225E379 ldrb r2, [r2, r1] strb r2, [r4] ldr r2, _02246B98 ; =0x0225E37A ldrb r1, [r2, r1] strb r1, [r7] pop {r3, r4, r5, r6, r7, pc} nop _02246B90: .word 0x0225E378 _02246B94: .word 0x0225E379 _02246B98: .word 0x0225E37A thumb_func_start MOD11_02246B9C MOD11_02246B9C: ; 0x02246B9C push {r3, r4, r5, r6, r7, lr} ldr r4, _02246BE4 ; =0x0225E378 add r5, r1, #0 str r0, [sp] add r6, r2, #0 mov r1, #0x28 _02246BA8: ldrb r2, [r4] ldr r0, [sp] cmp r0, r2 bne _02246BD6 ldrb r7, [r4, #1] cmp r5, r7 bne _02246BC2 ldrb r0, [r4, #2] mul r0, r1 mov r1, #0xa bl _s32_div_f add r1, r0, #0 _02246BC2: cmp r6, r7 bne _02246BD6 cmp r5, r6 beq _02246BD6 ldrb r0, [r4, #2] mul r0, r1 mov r1, #0xa bl _s32_div_f add r1, r0, #0 _02246BD6: add r4, r4, #3 ldrb r0, [r4] cmp r0, #0xff bne _02246BA8 add r0, r1, #0 pop {r3, r4, r5, r6, r7, pc} nop _02246BE4: .word 0x0225E378 thumb_func_start MOD11_02246BE8 MOD11_02246BE8: ; 0x02246BE8 cmp r0, #0 beq _02246C10 cmp r0, #0xd6 beq _02246C10 ldr r2, _02246C18 ; =0x0000017F cmp r0, r2 beq _02246C10 add r1, r2, #0 sub r1, #0x6d cmp r0, r1 beq _02246C10 sub r1, r2, #1 cmp r0, r1 beq _02246C10 ldr r1, _02246C1C ; =0x0000FF8A add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _02246C14 _02246C10: mov r0, #1 bx lr _02246C14: mov r0, #0 bx lr .align 2, 0 _02246C18: .word 0x0000017F _02246C1C: .word 0x0000FF8A thumb_func_start MOD11_02246C20 MOD11_02246C20: ; 0x02246C20 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r2, #0 cmp r1, #0xae bne _02246C4C add r1, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #7 beq _02246C48 add r0, r5, #0 add r1, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #7 bne _02246C4C _02246C48: mov r0, #1 pop {r3, r4, r5, pc} _02246C4C: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02246C50 MOD11_02246C50: ; 0x02246C50 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r2, #0 add r5, r1, #0 add r1, r6, #0 mov r7, #0 bl MOD11_02230270 str r0, [sp] ldr r0, _02246CA4 ; =0x00002DB8 add r4, r5, r0 mov r0, #0xc0 mul r0, r6 str r0, [sp, #4] ldrh r0, [r4, r0] cmp r0, #0 beq _02246C9E ldr r0, _02246CA8 ; =0x0000219C add r1, r5, r6 ldrb r0, [r1, r0] bl FUN_0206A92C ldr r1, [sp] lsl r1, r1, #3 add r2, r5, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 bne _02246C9E ldr r0, [sp, #4] ldrh r0, [r4, r0] bl FUN_0206EA98 cmp r0, #0 bne _02246C9E mov r7, #1 _02246C9E: add r0, r7, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02246CA4: .word 0x00002DB8 _02246CA8: .word 0x0000219C thumb_func_start MOD11_02246CAC MOD11_02246CAC: ; 0x02246CAC push {r3, lr} mov r2, #0xc0 mul r2, r1 add r1, r0, r2 ldr r0, _02246CC8 ; =0x00002DB8 ldrh r0, [r1, r0] bl FUN_0206EA98 cmp r0, #0 bne _02246CC4 mov r0, #1 pop {r3, pc} _02246CC4: mov r0, #0 pop {r3, pc} .align 2, 0 _02246CC8: .word 0x00002DB8 thumb_func_start MOD11_02246CCC MOD11_02246CCC: ; 0x02246CCC push {r4, r5, r6, lr} add r5, r0, #0 ldr r1, [r5, #0x6c] mov r0, #0xc0 add r3, r1, #0 ldr r1, _02246D18 ; =0x00002D74 mul r3, r0 add r2, r5, r1 ldrb r4, [r2, r3] ldr r2, [r5, #0x64] mov r6, #0 mul r0, r2 add r0, r5, r0 ldrb r0, [r0, r1] cmp r0, r4 blo _02246CF0 mov r6, #1 b _02246D14 _02246CF0: bl FUN_0201B9EC ldr r2, [r5, #0x64] mov r1, #0xc0 mul r1, r2 add r2, r5, r1 ldr r1, _02246D18 ; =0x00002D74 lsl r0, r0, #0x18 ldrb r1, [r2, r1] lsr r0, r0, #0x18 add r1, r1, r4 mul r0, r1 asr r0, r0, #8 add r1, r0, #1 lsr r0, r4, #2 cmp r1, r0 ble _02246D14 mov r6, #1 _02246D14: add r0, r6, #0 pop {r4, r5, r6, pc} .align 2, 0 _02246D18: .word 0x00002D74 thumb_func_start MOD11_02246D1C MOD11_02246D1C: ; 0x02246D1C push {r4, r5} mov r2, #0xc0 mul r2, r1 mov r3, #0xb7 mov r4, #2 add r5, r0, r2 lsl r3, r3, #6 ldr r1, [r5, r3] lsl r4, r4, #0x14 tst r4, r1 beq _02246D40 sub r3, #0x59 ldrb r3, [r5, r3] cmp r3, #0x79 beq _02246D40 mov r0, #0 pop {r4, r5} bx lr _02246D40: mov r3, #6 lsl r3, r3, #6 ldr r4, [r0, r3] mov r3, #7 lsl r3, r3, #0xc tst r3, r4 beq _02246D5E ldr r3, _02246D80 ; =0x00002D67 add r4, r0, r2 ldrb r3, [r4, r3] cmp r3, #0x1a bne _02246D5E mov r0, #0 pop {r4, r5} bx lr _02246D5E: mov r3, #1 lsl r3, r3, #0xa tst r1, r3 beq _02246D76 ldr r1, _02246D80 ; =0x00002D67 add r3, r0, r2 ldrb r1, [r3, r1] cmp r1, #0x1a bne _02246D76 mov r0, #0 pop {r4, r5} bx lr _02246D76: add r1, r0, r2 ldr r0, _02246D80 ; =0x00002D67 ldrb r0, [r1, r0] pop {r4, r5} bx lr .align 2, 0 _02246D80: .word 0x00002D67 thumb_func_start MOD11_02246D84 MOD11_02246D84: ; 0x02246D84 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 str r2, [sp] add r4, r3, #0 mov r6, #0 bl MOD11_02246D1C cmp r0, #0x68 beq _02246DA8 ldr r1, [sp] add r0, r5, #0 bl MOD11_02246D1C cmp r4, r0 bne _02246DD6 mov r6, #1 b _02246DD6 _02246DA8: ldr r1, [sp] add r0, r5, #0 bl MOD11_02246D1C cmp r4, r0 bne _02246DD6 mov r0, #0xb5 lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x1c mul r0, r7 ldr r3, [r1, r0] lsl r2, r3, #0x1c lsr r2, r2, #0x1f bne _02246DD6 mov r2, #8 orr r3, r2 str r3, [r1, r0] ldr r1, _02246DDC ; =0x0000213C lsl r0, r2, #0x14 ldr r3, [r5, r1] orr r0, r3 str r0, [r5, r1] _02246DD6: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _02246DDC: .word 0x0000213C thumb_func_start MOD11_02246DE0 MOD11_02246DE0: ; 0x02246DE0 push {r4, r5, r6, r7, lr} sub sp, #0x1c mov r6, #0 str r0, [sp] str r1, [sp, #4] add r4, r2, #0 str r6, [sp, #0x18] bl MOD11_0222FF74 add r5, r0, #0 ldr r0, [sp] add r1, r4, #0 bl MOD11_0222FF88 str r0, [sp, #0x14] ldr r0, [sp] add r1, r4, #0 bl MOD11_0222FFC8 add r7, r0, #0 mov r0, #8 tst r0, r5 bne _02246E22 mov r0, #0x10 tst r0, r5 beq _02246E36 ldr r0, [sp] add r1, r4, #0 bl MOD11_02230260 mov r1, #1 tst r0, r1 beq _02246E36 _02246E22: mov r0, #1 str r0, [sp, #0x10] ldr r0, [sp, #4] mov r5, #0 add r1, r0, r4 ldr r0, _02246ECC ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #0xc] str r0, [sp, #8] b _02246E72 _02246E36: mov r0, #2 tst r0, r5 beq _02246E60 mov r0, #1 str r0, [sp, #0x10] ldr r0, [sp, #4] mov r5, #0 add r1, r0, r4 ldr r0, _02246ECC ; =0x0000219C ldrb r0, [r1, r0] add r1, r4, #0 str r0, [sp, #0xc] ldr r0, [sp] bl MOD11_022302BC ldr r1, [sp, #4] add r1, r1, r0 ldr r0, _02246ECC ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #8] b _02246E72 _02246E60: mov r0, #1 str r0, [sp, #0x10] ldr r0, [sp, #4] mov r5, #0 add r1, r0, r4 ldr r0, _02246ECC ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #0xc] str r0, [sp, #8] _02246E72: cmp r5, r7 bge _02246EBC _02246E76: ldr r0, [sp, #0x14] add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02246EB6 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _02246EB6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02246EB6 ldr r0, [sp, #0xc] cmp r0, r5 beq _02246EB6 ldr r0, [sp, #8] cmp r0, r5 beq _02246EB6 add r6, r6, #1 _02246EB6: add r5, r5, #1 cmp r5, r7 blt _02246E76 _02246EBC: ldr r0, [sp, #0x10] cmp r6, r0 blt _02246EC6 mov r0, #1 str r0, [sp, #0x18] _02246EC6: ldr r0, [sp, #0x18] add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _02246ECC: .word 0x0000219C thumb_func_start MOD11_02246ED0 MOD11_02246ED0: ; 0x02246ED0 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 add r6, r2, #0 add r7, r0, #0 add r4, r3, #0 bl MOD11_0222FF74 str r0, [sp, #0xc] add r0, r5, #0 add r1, r6, #0 bl MOD11_02249D90 str r0, [sp, #8] cmp r0, #0x3e beq _02246F06 mov r1, #0xa9 ldr r0, [sp, #0xc] lsl r1, r1, #2 tst r0, r1 bne _02246F06 add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x32 bne _02246F0C _02246F06: add sp, #0x14 mov r0, #0 pop {r4, r5, r6, r7, pc} _02246F0C: add r0, r7, #0 add r1, r6, #0 bl MOD11_02230270 add r0, r7, #0 bl MOD11_0222FF84 mov r0, #0x17 str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #9 add r3, r6, #0 bl MOD11_02246870 str r0, [sp, #0x10] cmp r0, #0 beq _02246F62 add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x17 beq _02246F62 cmp r4, #0 bne _02246F46 add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02246F46: mov r0, #0xb strb r0, [r4, #1] mov r0, #0x27 strh r0, [r4, #2] ldr r1, [sp, #0x10] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0x17 str r0, [r4, #8] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02246F62: mov r0, #0x47 str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #3 add r3, r6, #0 bl MOD11_02246870 str r0, [sp, #4] cmp r0, #0 beq _02247014 mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 bne _02246FEE ldr r0, [sp, #8] cmp r0, #0x69 beq _02246FEE add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x1a beq _02247014 mov r0, #0xc0 mul r0, r6 add r1, r5, r0 ldr r0, _022470A8 ; =0x00002DCC ldr r0, [r1, r0] lsl r0, r0, #0x10 lsr r0, r0, #0x1d bne _02247014 add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #2 beq _02247014 add r0, r5, #0 add r1, r6, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #2 beq _02247014 cmp r4, #0 bne _02246FD2 add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02246FD2: mov r0, #0xb strb r0, [r4, #1] mov r0, #0x27 strh r0, [r4, #2] ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0x47 str r0, [r4, #8] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02246FEE: cmp r4, #0 bne _02246FF8 add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02246FF8: mov r0, #0xb strb r0, [r4, #1] mov r0, #0x27 strh r0, [r4, #2] ldr r1, [sp, #4] add r0, r5, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0x47 str r0, [r4, #8] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02247014: mov r0, #0x2a str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #3 add r3, r6, #0 bl MOD11_02246870 add r7, r0, #0 beq _0224706E add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #8 beq _02247048 add r0, r5, #0 add r1, r6, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #8 bne _0224706E _02247048: cmp r4, #0 bne _02247052 add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02247052: mov r0, #0xb strb r0, [r4, #1] mov r0, #0x27 strh r0, [r4, #2] add r0, r5, #0 add r1, r7, #0 bl MOD11_0224682C str r0, [r4, #4] mov r0, #0x2a str r0, [r4, #8] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _0224706E: mov r0, #0xc0 mul r0, r6 add r3, r5, r0 ldr r0, _022470AC ; =0x00002DB0 ldr r1, _022470B0 ; =0x0400E000 ldr r2, [r3, r0] tst r2, r1 bne _02247088 add r0, #0x10 ldr r2, [r3, r0] lsr r0, r1, #0x10 tst r0, r2 beq _022470A0 _02247088: cmp r4, #0 bne _02247092 add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _02247092: mov r0, #0 strb r0, [r4, #1] ldr r0, _022470B4 ; =0x0000031A add sp, #0x14 strh r0, [r4, #2] mov r0, #1 pop {r4, r5, r6, r7, pc} _022470A0: mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _022470A8: .word 0x00002DCC _022470AC: .word 0x00002DB0 _022470B0: .word 0x0400E000 _022470B4: .word 0x0000031A thumb_func_start MOD11_022470B8 MOD11_022470B8: ; 0x022470B8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r2, #0 str r0, [sp] bl MOD11_0222FF74 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02249D90 mov r6, #0 cmp r0, #0x3e bne _022470EC mov r0, #0x75 lsl r0, r0, #2 add r3, r5, r0 lsl r2, r4, #6 ldr r1, [r3, r2] ldr r0, _02247184 ; =0xFFFFFE7F mov r6, #1 and r1, r0 mov r0, #0x80 orr r0, r1 str r0, [r3, r2] b _0224717E _022470EC: mov r0, #0xa9 lsl r0, r0, #2 tst r0, r7 beq _022470F8 mov r6, #1 b _0224717E _022470F8: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x32 bne _0224711C mov r1, #0x75 lsl r1, r1, #2 add r5, r5, r1 lsl r3, r4, #6 ldr r2, [r5, r3] ldr r0, _02247184 ; =0xFFFFFE7F sub r1, #0xd4 and r0, r2 orr r0, r1 str r0, [r5, r3] mov r6, #1 b _0224717E _0224711C: mov r0, #1 add r1, r4, #0 eor r1, r0 mov r2, #0xc0 add r3, r1, #0 mul r3, r2 add r1, r5, r3 ldr r3, _02247188 ; =0x00002D46 mul r2, r4 add r2, r5, r2 ldrh r1, [r1, r3] ldrh r2, [r2, r3] cmp r2, r1 bhs _02247164 lsl r0, r2, #7 bl _s32_div_f ldr r1, _0224718C ; =0x0000311E ldrb r2, [r5, r1] mov r1, #0x1e mul r1, r2 add r0, r1, r0 lsl r0, r0, #0x18 lsr r7, r0, #0x18 bl FUN_0201B9EC lsr r1, r0, #0x1f lsl r2, r0, #0x18 sub r2, r2, r1 mov r0, #0x18 ror r2, r0 add r0, r1, r2 cmp r7, r0 ble _02247166 mov r6, #1 b _02247166 _02247164: add r6, r0, #0 _02247166: cmp r6, #0 bne _02247176 ldr r0, [sp] add r1, r4, #0 mov r2, #0 mov r3, #0x47 bl MOD11_022564A8 _02247176: ldr r0, _0224718C ; =0x0000311E ldrb r1, [r5, r0] add r1, r1, #1 strb r1, [r5, r0] _0224717E: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _02247184: .word 0xFFFFFE7F _02247188: .word 0x00002D46 _0224718C: .word 0x0000311E thumb_func_start MOD11_02247190 MOD11_02247190: ; 0x02247190 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02246D1C cmp r0, #0x36 bne _022471BA mov r2, #0xc0 mul r2, r4 add r3, r5, r2 ldr r2, _022471C0 ; =0x00002DC8 mov r0, #0x15 lsl r0, r0, #4 ldr r2, [r3, r2] ldr r1, [r5, r0] mov r0, #1 lsl r2, r2, #1 and r1, r0 lsr r2, r2, #0x1f cmp r1, r2 bne _022471BC _022471BA: mov r0, #0 _022471BC: pop {r3, r4, r5, pc} nop _022471C0: .word 0x00002DC8 thumb_func_start MOD11_022471C4 MOD11_022471C4: ; 0x022471C4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r1, #0 mov r1, #0 str r0, [sp] add r4, r2, #0 add r5, r3, #0 str r1, [sp, #4] bl MOD11_0222FF84 str r0, [sp, #0xc] ldr r0, [sp] add r1, r4, #0 bl MOD11_02230270 str r0, [sp, #8] ldr r0, [sp, #0xc] mov r7, #0 cmp r0, #0 ble _0224722E ldr r4, _02247234 ; =0x00002D4C _022471EE: ldr r0, [sp] add r1, r7, #0 bl MOD11_02230270 ldr r1, [sp, #8] cmp r1, r0 beq _02247224 mov r0, #0xb7 lsl r0, r0, #6 ldr r1, [r6, r0] mov r0, #2 lsl r0, r0, #0xc tst r0, r1 beq _02247224 mov r1, #0 add r2, r6, #0 _0224720E: ldrh r0, [r2, r4] cmp r5, r0 beq _0224721C add r1, r1, #1 add r2, r2, #2 cmp r1, #4 blt _0224720E _0224721C: cmp r1, #4 beq _02247224 mov r0, #1 str r0, [sp, #4] _02247224: ldr r0, [sp, #0xc] add r7, r7, #1 add r6, #0xc0 cmp r7, r0 blt _022471EE _0224722E: ldr r0, [sp, #4] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02247234: .word 0x00002D4C thumb_func_start MOD11_02247238 MOD11_02247238: ; 0x02247238 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 mov r6, #0 bl MOD11_0222FF84 add r3, r6, #0 cmp r0, #0 ble _02247260 mov r1, #0xb7 lsl r1, r1, #6 _0224724E: ldr r2, [r5, r1] tst r2, r4 beq _02247258 mov r6, #1 b _02247260 _02247258: add r3, r3, #1 add r5, #0xc0 cmp r3, r0 blt _0224724E _02247260: add r0, r6, #0 pop {r4, r5, r6, pc} thumb_func_start MOD11_02247264 MOD11_02247264: ; 0x02247264 ldr r2, _02247284 ; =0x0000216C mov r0, #0 str r0, [r1, r2] add r0, r2, #0 mov r3, #1 sub r0, #0x1c str r3, [r1, r0] add r0, r2, #0 sub r0, #0x30 ldr r3, [r1, r0] ldr r0, _02247288 ; =0xFFEFFFFF sub r2, #0x30 and r0, r3 str r0, [r1, r2] bx lr nop _02247284: .word 0x0000216C _02247288: .word 0xFFEFFFFF thumb_func_start MOD11_0224728C MOD11_0224728C: ; 0x0224728C push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp, #4] str r1, [sp, #8] bl MOD11_0222FF84 mov r2, #0 str r0, [sp, #0x14] cmp r0, #0 ble _022472B0 ldr r1, _02247310 ; =0x000021EC _022472A2: ldr r0, [sp, #8] add r0, r0, r2 strb r2, [r0, r1] ldr r0, [sp, #0x14] add r2, r2, #1 cmp r2, r0 blt _022472A2 _022472B0: mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x14] sub r0, r0, #1 str r0, [sp, #0x18] cmp r0, #0 ble _0224730C _022472BE: ldr r0, [sp, #0x10] add r4, r0, #1 ldr r0, [sp, #0x14] cmp r4, r0 bge _02247300 ldr r1, [sp, #8] ldr r0, [sp, #0x10] add r6, r1, r0 _022472CE: ldr r0, _02247310 ; =0x000021EC ldr r1, [sp, #8] ldrb r0, [r6, r0] str r0, [sp, #0xc] ldr r0, [sp, #8] ldr r2, [sp, #0xc] add r7, r0, r4 ldr r0, _02247310 ; =0x000021EC ldrb r5, [r7, r0] mov r0, #1 str r0, [sp] ldr r0, [sp, #4] add r3, r5, #0 bl MOD11_02244248 cmp r0, #0 beq _022472F8 ldr r0, _02247310 ; =0x000021EC ldr r1, [sp, #0xc] strb r5, [r6, r0] strb r1, [r7, r0] _022472F8: ldr r0, [sp, #0x14] add r4, r4, #1 cmp r4, r0 blt _022472CE _02247300: ldr r0, [sp, #0x10] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [sp, #0x10] cmp r1, r0 blt _022472BE _0224730C: add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _02247310: .word 0x000021EC thumb_func_start MOD11_02247314 MOD11_02247314: ; 0x02247314 push {r3, r4} mov r2, #6 lsl r2, r2, #6 ldr r2, [r1, r2] mov r1, #7 lsl r1, r1, #0xc mov r0, #0 tst r1, r2 beq _0224733E ldr r4, _02247344 ; =0x0225E278 add r2, r0, #0 _0224732A: ldrh r1, [r4] cmp r3, r1 bne _02247336 mov r0, #1 pop {r3, r4} bx lr _02247336: add r2, r2, #1 add r4, r4, #2 cmp r2, #6 blo _0224732A _0224733E: pop {r3, r4} bx lr nop _02247344: .word 0x0225E278 thumb_func_start MOD11_02247348 MOD11_02247348: ; 0x02247348 push {r3, r4} mov r4, #0xc0 mul r4, r2 add r2, r1, r4 ldr r1, _02247378 ; =0x00002DCC mov r0, #0 ldr r1, [r2, r1] lsl r1, r1, #0xd lsr r1, r1, #0x1d beq _02247374 ldr r4, _0224737C ; =0x0225E29E add r2, r0, #0 _02247360: ldrh r1, [r4] cmp r3, r1 bne _0224736C mov r0, #1 pop {r3, r4} bx lr _0224736C: add r2, r2, #1 add r4, r4, #2 cmp r2, #0xe blo _02247360 _02247374: pop {r3, r4} bx lr .align 2, 0 _02247378: .word 0x00002DCC _0224737C: .word 0x0225E29E thumb_func_start MOD11_02247380 MOD11_02247380: ; 0x02247380 push {r4, r5, r6, r7} mov r0, #0xc1 lsl r0, r0, #6 ldr r3, [r1, r0] ldr r0, _022473E8 ; =0x00000183 cmp r3, r0 beq _022473E4 ldr r4, [r1, #0x64] mov r0, #0xc0 add r2, r4, #0 mul r2, r0 ldr r4, _022473EC ; =0x00002DCC add r0, r1, r2 ldr r4, [r0, r4] lsl r4, r4, #0x13 lsr r7, r4, #0x1d cmp r7, #4 beq _022473E4 mov r6, #0 cmp r7, #0 bls _022473BA ldr r4, _022473F0 ; =0x00002DF0 _022473AC: ldrh r5, [r0, r4] cmp r3, r5 beq _022473E4 add r6, r6, #1 add r0, r0, #2 cmp r6, r7 blo _022473AC _022473BA: add r2, r1, r2 lsl r0, r6, #1 add r2, r2, r0 ldr r0, _022473F0 ; =0x00002DF0 strh r3, [r2, r0] sub r0, #0x24 add r2, r1, r0 ldr r3, [r1, #0x64] mov r0, #0xc0 add r1, r3, #0 mul r1, r0 ldr r3, [r2, r1] ldr r0, _022473F4 ; =0xFFFFE3FF and r0, r3 lsl r3, r3, #0x13 lsr r3, r3, #0x1d add r3, r3, #1 lsl r3, r3, #0x1d lsr r3, r3, #0x13 orr r0, r3 str r0, [r2, r1] _022473E4: pop {r4, r5, r6, r7} bx lr .align 2, 0 _022473E8: .word 0x00000183 _022473EC: .word 0x00002DCC _022473F0: .word 0x00002DF0 _022473F4: .word 0xFFFFE3FF thumb_func_start MOD11_022473F8 MOD11_022473F8: ; 0x022473F8 mov r3, #0xc0 mul r3, r2 add r3, r1, r3 ldr r1, _02247414 ; =0x00002D4C mov r0, #0 _02247402: ldrh r2, [r3, r1] cmp r2, #0 beq _02247410 add r0, r0, #1 add r3, r3, #2 cmp r0, #4 blt _02247402 _02247410: bx lr nop _02247414: .word 0x00002D4C thumb_func_start MOD11_02247418 MOD11_02247418: ; 0x02247418 push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 mov r2, #0 add r5, r0, #0 add r7, r1, #0 str r2, [sp] bl MOD11_02246D1C cmp r0, #0x60 bne _02247430 mov r6, #0 b _02247444 _02247430: ldr r0, _02247594 ; =0x00002160 ldr r6, [r5, r0] cmp r6, #0 bne _02247444 ldr r0, _02247598 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224759C ; =0x000003E2 ldrb r6, [r1, r0] _02247444: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0xa bl MOD11_02246D84 cmp r0, #1 bne _02247474 cmp r6, #0xd bne _02247474 cmp r7, r4 beq _02247474 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022475A0 ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, _022475A4 ; =0x0000215C str r0, [r5, r1] mov r0, #0xb2 str r0, [sp] _02247474: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0xb bl MOD11_02246D84 cmp r0, #1 bne _022474BA cmp r6, #0xb bne _022474BA ldr r0, _022475A8 ; =0x0000213C ldr r1, [r5, r0] mov r0, #0x20 tst r0, r1 bne _022474BA ldr r0, _02247598 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _022475AC ; =0x000003E1 ldrb r0, [r1, r0] cmp r0, #0 beq _022474BA mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022475A0 ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, _022475A4 ; =0x0000215C str r0, [r5, r1] mov r0, #0xb2 str r0, [sp] _022474BA: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0x12 bl MOD11_02246D84 cmp r0, #1 bne _02247500 cmp r6, #0xa bne _02247500 mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022475B0 ; =0x00002DAC ldr r0, [r1, r0] mov r1, #0x20 tst r0, r1 bne _02247500 ldr r0, _022475A8 ; =0x0000213C ldr r0, [r5, r0] tst r0, r1 bne _02247500 ldr r0, _02247598 ; =0x00003044 ldr r3, [r5, r0] lsl r0, r3, #4 add r2, r5, r0 ldr r0, _022475AC ; =0x000003E1 ldrb r0, [r2, r0] cmp r0, #0 bne _022474FC add r1, #0xe5 cmp r3, r1 bne _02247500 _022474FC: mov r0, #0xb3 str r0, [sp] _02247500: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0x2b bl MOD11_02246D84 cmp r0, #1 bne _0224752C ldr r0, _02247598 ; =0x00003044 ldr r2, _022475B4 ; =0x0225FF84 ldr r3, [r5, r0] mov r1, #0 _02247518: ldrh r0, [r2] cmp r3, r0 bne _02247524 mov r0, #0xb5 str r0, [sp] b _0224752C _02247524: add r1, r1, #1 add r2, r2, #2 cmp r1, #0xc blo _02247518 _0224752C: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0x4e bl MOD11_02246D84 cmp r0, #1 bne _02247548 cmp r6, #0xd bne _02247548 cmp r7, r4 beq _02247548 mov r0, #0xb6 str r0, [sp] _02247548: add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 mov r3, #0x57 bl MOD11_02246D84 cmp r0, #1 bne _0224758E cmp r6, #0xb bne _0224758E ldr r0, _022475A8 ; =0x0000213C ldr r1, [r5, r0] mov r0, #0x20 tst r0, r1 bne _0224758E ldr r0, _02247598 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _022475AC ; =0x000003E1 ldrb r0, [r1, r0] cmp r0, #0 beq _0224758E mov r0, #0xc0 mul r0, r4 add r1, r5, r0 ldr r0, _022475A0 ; =0x00002D90 ldr r0, [r1, r0] mov r1, #4 bl MOD11_022476C0 ldr r1, _022475A4 ; =0x0000215C str r0, [r5, r1] mov r0, #0xb2 str r0, [sp] _0224758E: ldr r0, [sp] pop {r3, r4, r5, r6, r7, pc} nop _02247594: .word 0x00002160 _02247598: .word 0x00003044 _0224759C: .word 0x000003E2 _022475A0: .word 0x00002D90 _022475A4: .word 0x0000215C _022475A8: .word 0x0000213C _022475AC: .word 0x000003E1 _022475B0: .word 0x00002DAC _022475B4: .word 0x0225FF84 thumb_func_start MOD11_022475B8 MOD11_022475B8: ; 0x022475B8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r4, r1, #0 mov r6, #0 bl MOD11_02246D1C cmp r0, #3 beq _022475D0 cmp r0, #0x3d beq _02247616 b _02247696 _022475D0: mov r2, #0xc0 add r0, r4, #0 mul r0, r2 ldr r3, _022476B4 ; =0x00002D8C add r0, r5, r0 ldr r1, [r0, r3] cmp r1, #0 beq _02247696 add r1, r3, #0 sub r1, #0x31 ldrsb r1, [r0, r1] cmp r1, #0xc bge _02247696 add r2, #0x90 ldr r1, [r5, r2] add r3, #0x48 ldr r0, [r0, r3] add r1, r1, #1 cmp r1, r0 beq _02247696 add r0, r5, #0 mov r1, #0x11 add r0, #0x8c str r1, [r0] add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 add r0, #0x94 str r4, [r0] mov r0, #0xc str r0, [sp] mov r6, #1 b _02247696 _02247616: ldr r1, _022476B8 ; =0x00002DAC mov r0, #0xc0 add r7, r4, #0 mul r7, r0 add r0, r5, r1 str r0, [sp, #4] ldr r0, [r0, r7] lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _02247696 add r0, r5, r7 sub r1, #0x20 ldr r0, [r0, r1] cmp r0, #0 beq _02247696 bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _02247696 ldr r0, [sp, #4] mov r1, #7 ldr r0, [r0, r7] tst r1, r0 beq _02247656 mov r0, #0x13 add r1, r6, #0 lsl r0, r0, #4 str r1, [r5, r0] b _0224768A _02247656: ldr r1, _022476BC ; =0x00000F88 tst r1, r0 beq _02247666 mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r5, r0] b _0224768A _02247666: mov r1, #0x10 tst r1, r0 beq _02247676 mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r5, r0] b _0224768A _02247676: mov r1, #0x40 tst r0, r1 beq _02247684 mov r0, #3 add r1, #0xf0 str r0, [r5, r1] b _0224768A _02247684: mov r0, #4 add r1, #0xf0 str r0, [r5, r1] _0224768A: mov r0, #0x46 lsl r0, r0, #2 str r4, [r5, r0] mov r0, #0xbe str r0, [sp] mov r6, #1 _02247696: cmp r6, #1 bne _022476AC ldr r2, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r5, #8] str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _022476AC: add r0, r6, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _022476B4: .word 0x00002D8C _022476B8: .word 0x00002DAC _022476BC: .word 0x00000F88 thumb_func_start MOD11_022476C0 MOD11_022476C0: ; 0x022476C0 push {r4, lr} cmp r0, #0 bge _022476CC mov r4, #0 mvn r4, r4 b _022476CE _022476CC: mov r4, #1 _022476CE: bl _s32_div_f cmp r0, #0 bne _022476D8 add r0, r4, #0 _022476D8: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_022476DC MOD11_022476DC: ; 0x022476DC push {r3, r4, r5, r6, r7, lr} sub sp, #0xd0 add r7, r0, #0 add r4, r1, #0 bl MOD11_0222FF84 str r0, [sp, #0x80] mov r0, #0 str r0, [sp, #0x84] str r0, [sp, #0xcc] thumb_func_start MOD11_022476F0 MOD11_022476F0: ; 0x022476F0 ldr r0, [r4, #0x58] cmp r0, #0xf bls _022476FA bl _02248282 _022476FA: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02247706: ; jump table .short _02247726 - _02247706 - 2 ; case 0 .short _022477A2 - _02247706 - 2 ; case 1 .short _0224785A - _02247706 - 2 ; case 2 .short _0224796A - _02247706 - 2 ; case 3 .short _022479E0 - _02247706 - 2 ; case 4 .short _02247B34 - _02247706 - 2 ; case 5 .short _02247C74 - _02247706 - 2 ; case 6 .short _02247E76 - _02247706 - 2 ; case 7 .short _02247FCC - _02247706 - 2 ; case 8 .short _022480A4 - _02247706 - 2 ; case 9 .short _02248118 - _02247706 - 2 ; case 10 .short _022481A6 - _02247706 - 2 ; case 11 .short _022481C4 - _02247706 - 2 ; case 12 .short _022481FE - _02247706 - 2 ; case 13 .short _0224823A - _02247706 - 2 ; case 14 .short _0224827A - _02247706 - 2 ; case 15 _02247726: ldr r0, _02247A18 ; =0x00003121 ldrb r0, [r4, r0] cmp r0, #0 bne _02247798 add r0, r7, #0 bl MOD11_0223125C cmp r0, #0xf bhi _0224778C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02247744: ; jump table .short _0224778C - _02247744 - 2 ; case 0 .short _0224778C - _02247744 - 2 ; case 1 .short _02247764 - _02247744 - 2 ; case 2 .short _02247764 - _02247744 - 2 ; case 3 .short _02247764 - _02247744 - 2 ; case 4 .short _0224776E - _02247744 - 2 ; case 5 .short _0224776E - _02247744 - 2 ; case 6 .short _0224776E - _02247744 - 2 ; case 7 .short _0224778C - _02247744 - 2 ; case 8 .short _0224778C - _02247744 - 2 ; case 9 .short _0224777A - _02247744 - 2 ; case 10 .short _0224778C - _02247744 - 2 ; case 11 .short _0224778C - _02247744 - 2 ; case 12 .short _0224778C - _02247744 - 2 ; case 13 .short _02247784 - _02247744 - 2 ; case 14 .short _02247784 - _02247744 - 2 ; case 15 _02247764: ldr r0, _02247A1C ; =0x0000010F str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224778C _0224776E: mov r0, #0x11 lsl r0, r0, #4 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224778C _0224777A: ldr r0, _02247A20 ; =0x00000111 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224778C _02247784: ldr r0, _02247A24 ; =0x00000112 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] _0224778C: ldr r0, [sp, #0x84] cmp r0, #1 bne _02247798 ldr r0, _02247A18 ; =0x00003121 mov r1, #1 strb r1, [r4, r0] _02247798: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] bl _02248282 _022477A2: ldr r0, [sp, #0x80] mov r6, #0 cmp r0, #0 ble _02247846 ldr r0, _02247A28 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0x90] _022477B0: ldr r0, _02247A2C ; =0x000021EC add r1, r4, r6 ldrb r5, [r1, r0] add r0, r7, #0 mov r2, #0 add r1, r5, #0 bl MOD11_02230308 str r0, [sp, #0x88] add r0, r7, #0 add r1, r5, #0 mov r2, #2 bl MOD11_02230308 add r2, r0, #0 ldr r1, [sp, #0x88] add r0, r4, #0 bl MOD11_0224C84C mov r1, #0x12 lsl r1, r1, #4 str r0, [r4, r1] mov r0, #0xc0 mul r0, r5 ldr r1, [sp, #0x90] str r0, [sp, #0x8c] ldr r0, [r1, r0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bne _0224783E mov r0, #0x12 lsl r0, r0, #4 ldr r2, [r4, r0] cmp r2, #0xff beq _0224783E ldr r0, [sp, #0x8c] add r1, r4, r0 ldr r0, _02247A30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _0224783E mov r0, #0xc0 mul r0, r2 add r1, r4, r0 ldr r0, _02247A30 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _0224783E add r0, r4, #0 add r1, r5, #0 bl MOD11_02246D1C cmp r0, #0x24 bne _0224783E ldr r1, [sp, #0x90] ldr r0, [sp, #0x8c] ldr r1, [r1, r0] mov r0, #4 add r2, r1, #0 orr r2, r0 ldr r1, [sp, #0x90] ldr r0, [sp, #0x8c] str r2, [r1, r0] mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] mov r0, #0xbb str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02247846 _0224783E: ldr r0, [sp, #0x80] add r6, r6, #1 cmp r6, r0 blt _022477B0 _02247846: ldr r0, [sp, #0x80] cmp r6, r0 beq _02247850 bl _02248282 _02247850: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] bl _02248282 _0224785A: mov r0, #0 str r0, [sp, #0x2c] ldr r0, [sp, #0x80] cmp r0, #0 ble _02247958 ldr r0, _02247A28 ; =0x00002D68 add r6, r4, r0 mov r0, #1 str r0, [sp, #0xbc] str r0, [sp, #0xb8] str r0, [sp, #0xb4] str r0, [sp, #0xb0] _02247872: ldr r0, [sp, #0x2c] add r1, r4, r0 ldr r0, _02247A2C ; =0x000021EC ldrb r1, [r1, r0] mov r0, #0xc0 add r5, r1, #0 mul r5, r0 ldr r0, [r6, r5] str r1, [sp, #0x10] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _0224793C ldr r0, _02247A30 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _0224793C ldr r1, [sp, #0x10] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x2d bgt _022478A8 bge _022478D8 cmp r0, #2 beq _022478B6 b _0224793C _022478A8: cmp r0, #0x46 bgt _022478B0 beq _022478FA b _0224793C _022478B0: cmp r0, #0x75 beq _0224791C b _0224793C _022478B6: ldr r0, [r6, r5] ldr r1, [sp, #0xb0] bic r0, r1 mov r1, #1 orr r0, r1 str r0, [r6, r5] mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #2 tst r0, r1 bne _0224793C mov r0, #0xb7 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224793C _022478D8: ldr r0, [r6, r5] ldr r1, [sp, #0xb4] bic r0, r1 mov r1, #1 orr r0, r1 str r0, [r6, r5] mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #8 tst r0, r1 bne _0224793C mov r0, #0xb8 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224793C _022478FA: ldr r0, [r6, r5] ldr r1, [sp, #0xb8] bic r0, r1 mov r1, #1 orr r0, r1 str r0, [r6, r5] mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x20 tst r0, r1 bne _0224793C mov r0, #0xb9 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224793C _0224791C: ldr r0, [r6, r5] ldr r1, [sp, #0xbc] bic r0, r1 mov r1, #1 orr r0, r1 str r0, [r6, r5] mov r0, #6 lsl r0, r0, #6 ldr r1, [r4, r0] mov r0, #0x80 tst r0, r1 bne _0224793C mov r0, #0xfc str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] _0224793C: ldr r0, [sp, #0x84] cmp r0, #1 bne _0224794C mov r1, #0x46 ldr r0, [sp, #0x10] lsl r1, r1, #2 str r0, [r4, r1] b _02247958 _0224794C: ldr r0, [sp, #0x2c] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x2c] cmp r1, r0 blt _02247872 _02247958: ldr r1, [sp, #0x2c] ldr r0, [sp, #0x80] cmp r1, r0 bne _022479D2 ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] bl _02248282 _0224796A: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _022479CC ldr r0, _02247A28 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0x94] _02247978: ldr r0, _02247A2C ; =0x000021EC add r1, r4, r5 ldrb r1, [r1, r0] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 ldr r0, [sp, #0x94] str r1, [sp, #0x14] ldr r0, [r0, r6] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _022479C4 ldr r0, _02247A30 ; =0x00002D8C add r1, r4, r6 ldr r0, [r1, r0] cmp r0, #0 beq _022479C4 ldr r1, [sp, #0x14] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x16 bne _022479C4 ldr r0, [sp, #0x94] ldr r1, [r0, r6] mov r0, #2 orr r1, r0 ldr r0, [sp, #0x94] str r1, [r0, r6] mov r1, #0x46 ldr r0, [sp, #0x14] lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0xba str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _022479CC _022479C4: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _02247978 _022479CC: ldr r0, [sp, #0x80] cmp r5, r0 beq _022479D6 _022479D2: bl _02248282 _022479D6: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] bl _02248282 _022479E0: mov r0, #0 str r0, [sp, #0x30] ldr r0, [sp, #0x80] cmp r0, #0 bgt _022479EC b _02247B22 _022479EC: ldr r0, _02247A28 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0x9c] _022479F2: ldr r0, [sp, #0x30] add r1, r4, r0 ldr r0, _02247A2C ; =0x000021EC ldrb r1, [r1, r0] mov r0, #0xc0 mul r0, r1 str r1, [sp, #0x18] ldr r1, [sp, #0x9c] str r0, [sp, #0x98] ldr r0, [r1, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _02247A0E b _02247B14 _02247A0E: ldr r0, [sp, #0x98] add r1, r4, r0 ldr r0, _02247A30 ; =0x00002D8C b _02247A34 nop _02247A18: .word 0x00003121 _02247A1C: .word 0x0000010F _02247A20: .word 0x00000111 _02247A24: .word 0x00000112 _02247A28: .word 0x00002D68 _02247A2C: .word 0x000021EC _02247A30: .word 0x00002D8C _02247A34: ldr r0, [r1, r0] cmp r0, #0 beq _02247B14 ldr r1, [sp, #0x18] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x58 bne _02247B14 mov r0, #0 str r0, [sp, #0x78] str r0, [sp, #0x74] str r0, [sp, #0x7c] ldr r0, [sp, #0x80] cmp r0, #0 ble _02247ACE add r5, r4, #0 _02247A56: ldr r1, [sp, #0x18] add r0, r7, #0 bl MOD11_02230270 add r6, r0, #0 ldr r1, [sp, #0x7c] add r0, r7, #0 bl MOD11_02230270 cmp r6, r0 beq _02247AC0 ldr r0, _02247D60 ; =0x00002DB0 ldr r1, [r5, r0] mov r0, #1 lsl r0, r0, #0x18 tst r0, r1 bne _02247AC0 ldr r0, _02247D64 ; =0x00002D8C ldr r0, [r5, r0] cmp r0, #0 beq _02247AC0 ldr r0, _02247D68 ; =0x00002D5A ldrsb r0, [r5, r0] lsl r2, r0, #1 ldr r0, _02247D6C ; =0x0225E284 add r1, r0, r2 ldr r0, _02247D70 ; =0x00002D44 ldrb r1, [r1, #1] ldrh r3, [r5, r0] ldr r0, _02247D6C ; =0x0225E284 ldrb r0, [r0, r2] mul r0, r3 bl _s32_div_f ldr r1, [sp, #0x78] add r0, r1, r0 str r0, [sp, #0x78] ldr r0, _02247D74 ; =0x00002D5D ldrsb r0, [r5, r0] lsl r2, r0, #1 ldr r0, _02247D6C ; =0x0225E284 add r1, r0, r2 ldr r0, _02247D78 ; =0x00002D4A ldrb r1, [r1, #1] ldrh r3, [r5, r0] ldr r0, _02247D6C ; =0x0225E284 ldrb r0, [r0, r2] mul r0, r3 bl _s32_div_f ldr r1, [sp, #0x74] add r0, r1, r0 str r0, [sp, #0x74] _02247AC0: ldr r0, [sp, #0x7c] add r5, #0xc0 add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x7c] cmp r1, r0 blt _02247A56 _02247ACE: ldr r1, [sp, #0x9c] ldr r0, [sp, #0x98] ldr r1, [r1, r0] mov r0, #8 add r2, r1, #0 orr r2, r0 ldr r1, [sp, #0x9c] ldr r0, [sp, #0x98] str r2, [r1, r0] ldr r1, [sp, #0x78] ldr r0, [sp, #0x74] add r0, r1, r0 beq _02247B14 ldr r0, [sp, #0x74] cmp r1, r0 blt _02247AF2 mov r1, #0x12 b _02247AF4 _02247AF2: mov r1, #0xf _02247AF4: add r0, r4, #0 add r0, #0x8c str r1, [r0] add r0, r4, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x94 str r0, [r1] mov r0, #0xc str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02247B22 _02247B14: ldr r0, [sp, #0x30] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x30] cmp r1, r0 bge _02247B22 b _022479F2 _02247B22: ldr r1, [sp, #0x30] ldr r0, [sp, #0x80] cmp r1, r0 beq _02247B2C b _02248282 _02247B2C: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _02247B34: mov r0, #0 str r0, [sp, #0x34] ldr r0, [sp, #0x80] cmp r0, #0 bgt _02247B40 b _02247C62 _02247B40: ldr r0, _02247D7C ; =0x00002D68 add r6, r4, r0 _02247B44: ldr r0, [sp, #0x34] add r1, r4, r0 ldr r0, _02247D80 ; =0x000021EC ldrb r1, [r1, r0] mov r0, #0xc0 add r5, r1, #0 mul r5, r0 ldr r0, [r6, r5] str r1, [sp, #0x1c] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bne _02247C54 ldr r0, _02247D64 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _02247C54 ldr r1, [sp, #0x1c] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x6b bne _02247C54 ldr r1, [r6, r5] mov r0, #0x10 orr r0, r1 str r0, [r6, r5] mov r0, #0 str r0, [sp, #0x70] ldr r0, [sp, #0x80] cmp r0, #0 ble _02247C40 add r0, r4, r5 str r4, [sp, #0x50] str r0, [sp, #0x4c] _02247B8A: ldr r1, [sp, #0x1c] add r0, r7, #0 bl MOD11_02230270 add r5, r0, #0 ldr r1, [sp, #0x70] add r0, r7, #0 bl MOD11_02230270 cmp r5, r0 beq _02247C2E ldr r1, [sp, #0x50] ldr r0, _02247D64 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02247C2E mov r0, #0 str r0, [sp, #0x6c] add r6, r1, #0 _02247BB0: ldr r0, _02247D84 ; =0x00002D4C ldrh r5, [r6, r0] cmp r5, #0 beq _02247C1C mov r0, #0 str r0, [sp, #0xc8] ldr r0, [sp, #0x70] add r1, r4, #0 str r0, [sp] ldr r0, [sp, #0x1c] add r2, r5, #0 str r0, [sp, #4] ldr r0, _02247D88 ; =0x00002144 mov r3, #0 ldr r0, [r4, r0] str r0, [sp, #8] add r0, sp, #0xc8 str r0, [sp, #0xc] add r0, r7, #0 bl MOD11_02246274 ldr r1, _02247D88 ; =0x00002144 str r0, [r4, r1] ldr r1, [sp, #0xc8] mov r0, #8 tst r0, r1 bne _02247C1C add r0, r4, #0 add r1, r5, #0 bl MOD11_0224C8C0 cmp r0, #0 bne _02247C1C ldr r1, [sp, #0xc8] mov r0, #2 tst r0, r1 bne _02247C16 lsl r0, r5, #4 add r1, r4, r0 ldr r0, _02247D8C ; =0x000003DE ldrh r0, [r1, r0] cmp r0, #0x26 bne _02247C1C ldr r1, [sp, #0x4c] ldr r0, _02247D90 ; =0x00002D74 ldr r2, [sp, #0x50] ldrb r0, [r1, r0] ldr r1, _02247D90 ; =0x00002D74 ldrb r1, [r2, r1] cmp r0, r1 bhi _02247C1C _02247C16: mov r0, #1 str r0, [sp, #0x84] b _02247C28 _02247C1C: ldr r0, [sp, #0x6c] add r6, r6, #2 add r0, r0, #1 str r0, [sp, #0x6c] cmp r0, #4 blt _02247BB0 _02247C28: ldr r0, [sp, #0x84] cmp r0, #1 beq _02247C40 _02247C2E: ldr r0, [sp, #0x50] add r0, #0xc0 str r0, [sp, #0x50] ldr r0, [sp, #0x70] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x70] cmp r1, r0 blt _02247B8A _02247C40: ldr r0, [sp, #0x84] cmp r0, #1 bne _02247C62 mov r1, #0x46 ldr r0, [sp, #0x1c] lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0xc2 str r0, [sp, #0xcc] b _02247C62 _02247C54: ldr r0, [sp, #0x34] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x34] cmp r1, r0 bge _02247C62 b _02247B44 _02247C62: ldr r1, [sp, #0x34] ldr r0, [sp, #0x80] cmp r1, r0 beq _02247C6C b _02248282 _02247C6C: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _02247C74: mov r0, #0 str r0, [sp, #0x38] ldr r0, [sp, #0x80] cmp r0, #0 bgt _02247C80 b _02247E64 _02247C80: ldr r0, _02247D7C ; =0x00002D68 add r6, r4, r0 _02247C84: ldr r0, [sp, #0x38] add r1, r4, r0 ldr r0, _02247D80 ; =0x000021EC ldrb r1, [r1, r0] mov r0, #0xc0 add r5, r1, #0 mul r5, r0 ldr r0, [r6, r5] str r1, [sp, #0x20] lsl r0, r0, #0x1a lsr r0, r0, #0x1f bne _02247CB2 ldr r0, _02247D64 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _02247CB2 ldr r1, [sp, #0x20] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x6c beq _02247CB4 _02247CB2: b _02247E56 _02247CB4: ldr r1, [r6, r5] mov r0, #0x20 orr r0, r1 str r0, [r6, r5] mov r5, #0 ldr r0, [sp, #0x80] str r5, [sp, #0x5c] str r5, [sp, #0x68] cmp r0, #0 bgt _02247CCA b _02247DF2 _02247CCA: str r4, [sp, #0x58] _02247CCC: ldr r1, [sp, #0x20] add r0, r7, #0 bl MOD11_02230270 add r6, r0, #0 ldr r1, [sp, #0x68] add r0, r7, #0 bl MOD11_02230270 cmp r6, r0 beq _02247DDE ldr r1, [sp, #0x58] ldr r0, _02247D64 ; =0x00002D8C ldr r1, [r1, r0] cmp r1, #0 beq _02247DDE ldr r0, [sp, #0x5c] add r0, r0, r1 str r0, [sp, #0x5c] mov r0, #0 str r0, [sp, #0x64] ldr r0, [sp, #0x58] str r0, [sp, #0x54] _02247CFA: ldr r1, [sp, #0x54] ldr r0, _02247D84 ; =0x00002D4C ldrh r6, [r1, r0] ldr r1, _02247D94 ; =0x000003E1 lsl r0, r6, #4 add r0, r4, r0 ldrb r1, [r0, r1] str r1, [sp, #0x60] cmp r1, #1 bne _02247DB2 ldr r1, _02247D8C ; =0x000003DE ldrh r0, [r0, r1] cmp r0, #0x59 bgt _02247D1E bge _02247D46 cmp r0, #0x26 beq _02247D2C b _02247D98 _02247D1E: cmp r0, #0x90 bgt _02247D26 beq _02247D46 b _02247D98 _02247D26: cmp r0, #0xe3 beq _02247D46 b _02247D98 _02247D2C: cmp r5, #0x96 blo _02247D3C bne _02247DCE bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02247DCE _02247D3C: mov r5, #0x96 add r0, r5, #0 add r0, #0x8e str r6, [r4, r0] b _02247DCE _02247D46: cmp r5, #0x78 blo _02247D56 bne _02247DCE bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02247DCE _02247D56: mov r5, #0x78 add r0, r5, #0 add r0, #0xac str r6, [r4, r0] b _02247DCE .align 2, 0 _02247D60: .word 0x00002DB0 _02247D64: .word 0x00002D8C _02247D68: .word 0x00002D5A _02247D6C: .word 0x0225E284 _02247D70: .word 0x00002D44 _02247D74: .word 0x00002D5D _02247D78: .word 0x00002D4A _02247D7C: .word 0x00002D68 _02247D80: .word 0x000021EC _02247D84: .word 0x00002D4C _02247D88: .word 0x00002144 _02247D8C: .word 0x000003DE _02247D90: .word 0x00002D74 _02247D94: .word 0x000003E1 _02247D98: cmp r5, #0x50 blo _02247DA8 bne _02247DCE bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02247DCE _02247DA8: mov r5, #0x50 add r0, r5, #0 add r0, #0xd4 str r6, [r4, r0] b _02247DCE _02247DB2: add r0, r1, #0 cmp r5, r0 blo _02247DC6 cmp r5, r0 bne _02247DCE bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _02247DCE _02247DC6: mov r0, #0x49 lsl r0, r0, #2 ldr r5, [sp, #0x60] str r6, [r4, r0] _02247DCE: ldr r0, [sp, #0x54] add r0, r0, #2 str r0, [sp, #0x54] ldr r0, [sp, #0x64] add r0, r0, #1 str r0, [sp, #0x64] cmp r0, #4 blt _02247CFA _02247DDE: ldr r0, [sp, #0x58] add r0, #0xc0 str r0, [sp, #0x58] ldr r0, [sp, #0x68] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x68] cmp r1, r0 bge _02247DF2 b _02247CCC _02247DF2: cmp r5, #0 beq _02247E08 mov r1, #0x46 ldr r0, [sp, #0x20] lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0xc3 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02247E64 _02247E08: ldr r0, [sp, #0x5c] cmp r0, #0 beq _02247E64 ldr r2, [sp, #0x20] add r0, r7, #0 add r1, r4, #0 bl MOD11_022482A4 add r5, r0, #0 add r0, r7, #0 add r1, r4, #0 add r2, r5, #0 bl MOD11_022473F8 add r6, r0, #0 bl FUN_0201B9EC add r1, r6, #0 bl _s32_div_f mov r0, #0xc0 add r2, r5, #0 mul r2, r0 lsl r3, r1, #1 add r1, r4, r2 add r2, r3, r1 ldr r1, _02248144 ; =0x00002D4C ldrh r2, [r2, r1] add r1, r0, #0 add r1, #0x64 str r2, [r4, r1] ldr r1, [sp, #0x20] add r0, #0x58 str r1, [r4, r0] mov r0, #0xc3 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02247E64 _02247E56: ldr r0, [sp, #0x38] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x38] cmp r1, r0 bge _02247E64 b _02247C84 _02247E64: ldr r1, [sp, #0x38] ldr r0, [sp, #0x80] cmp r1, r0 beq _02247E6E b _02248282 _02247E6E: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _02247E76: mov r0, #0 str r0, [sp, #0x3c] ldr r0, [sp, #0x80] cmp r0, #0 bgt _02247E82 b _02247FBA _02247E82: ldr r0, _02248148 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0xa0] _02247E88: ldr r0, [sp, #0x3c] add r1, r4, r0 ldr r0, _0224814C ; =0x000021EC ldrb r5, [r1, r0] mov r0, #0xc0 add r6, r5, #0 mul r6, r0 ldr r0, [sp, #0xa0] ldr r0, [r0, r6] lsl r0, r0, #0x17 lsr r0, r0, #0x1f bne _02247F9A ldr r0, _02248150 ; =0x00002D8C add r1, r4, r6 ldr r0, [r1, r0] cmp r0, #0 beq _02247F9A add r0, r4, #0 add r1, r5, #0 bl MOD11_02246D1C cmp r0, #0x77 bne _02247F9A ldr r0, [sp, #0xa0] ldr r1, [r0, r6] mov r0, #1 lsl r0, r0, #8 orr r1, r0 ldr r0, [sp, #0xa0] str r1, [r0, r6] add r0, r7, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02247F74 add r0, r7, #0 add r1, r5, #0 mov r2, #0 bl MOD11_02230308 str r0, [sp, #0xc0] add r0, r7, #0 add r1, r5, #0 mov r2, #2 bl MOD11_02230308 ldr r2, [sp, #0xc0] mov r1, #0xc0 mul r1, r2 ldr r2, _02248150 ; =0x00002D8C add r1, r4, r1 ldr r3, [r1, r2] str r0, [sp, #0xc4] cmp r3, #0 beq _02247F38 add r2, #0x2c ldrh r2, [r1, r2] cmp r2, #0 beq _02247F38 mov r2, #0xc0 mul r2, r0 add r0, r4, r2 ldr r2, _02248150 ; =0x00002D8C ldr r2, [r0, r2] cmp r2, #0 beq _02247F38 ldr r2, _02248154 ; =0x00002DB8 ldrh r0, [r0, r2] cmp r0, #0 beq _02247F38 bl FUN_0201B9EC lsl r0, r0, #0x1f lsr r1, r0, #0x1d add r0, sp, #0xc0 ldr r1, [r0, r1] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02248154 ; =0x00002DB8 ldrh r1, [r1, r0] mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 str r0, [sp, #0x84] b _02247F9A _02247F38: cmp r3, #0 beq _02247F50 ldr r0, _02248154 ; =0x00002DB8 ldrh r1, [r1, r0] cmp r1, #0 beq _02247F50 mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 str r0, [sp, #0x84] b _02247F9A _02247F50: ldr r1, [sp, #0xc4] mov r0, #0xc0 mul r0, r1 ldr r1, _02248150 ; =0x00002D8C add r0, r4, r0 ldr r1, [r0, r1] cmp r1, #0 beq _02247F9A ldr r1, _02248154 ; =0x00002DB8 ldrh r1, [r0, r1] cmp r1, #0 beq _02247F9A mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 str r0, [sp, #0x84] b _02247F9A _02247F74: mov r0, #1 add r1, r5, #0 eor r1, r0 mov r0, #0xc0 mul r0, r1 ldr r1, _02248150 ; =0x00002D8C add r0, r4, r0 ldr r1, [r0, r1] cmp r1, #0 beq _02247F9A ldr r1, _02248154 ; =0x00002DB8 ldrh r1, [r0, r1] cmp r1, #0 beq _02247F9A mov r0, #0x4a lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 str r0, [sp, #0x84] _02247F9A: ldr r0, [sp, #0x84] cmp r0, #1 bne _02247FAC mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] mov r0, #0xfd str r0, [sp, #0xcc] b _02247FBA _02247FAC: ldr r0, [sp, #0x3c] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x3c] cmp r1, r0 bge _02247FBA b _02247E88 _02247FBA: ldr r1, [sp, #0x3c] ldr r0, [sp, #0x80] cmp r1, r0 beq _02247FC4 b _02248282 _02247FC4: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _02247FCC: mov r0, #0 str r0, [sp, #0x40] ldr r0, [sp, #0x80] cmp r0, #0 ble _02248094 ldr r0, _02248148 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0xa4] _02247FDC: ldr r0, [sp, #0x40] add r1, r4, r0 ldr r0, _0224814C ; =0x000021EC ldrb r6, [r1, r0] mov r0, #0xc0 add r5, r6, #0 mul r5, r0 ldr r0, [sp, #0xa4] ldr r0, [r0, r5] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bne _02248038 ldr r0, _02248150 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] str r1, [sp, #0x48] cmp r0, #0 beq _02248038 add r0, r4, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x70 bne _02248038 mov r0, #0x15 lsl r0, r0, #4 ldr r2, [r4, r0] ldr r1, [sp, #0x48] ldr r0, _02248158 ; =0x00002DD8 ldr r0, [r1, r0] cmp r2, r0 bgt _02248038 ldr r0, [sp, #0xa4] mov r2, #0x40 ldr r0, [r0, r5] add r1, r0, #0 orr r1, r2 ldr r0, [sp, #0xa4] add r2, #0xd8 str r1, [r0, r5] str r6, [r4, r2] mov r0, #0xc4 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02248094 _02248038: ldr r0, [sp, #0xa4] ldr r0, [r0, r5] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _02248088 ldr r0, _02248150 ; =0x00002D8C add r1, r4, r5 ldr r0, [r1, r0] str r1, [sp, #0x44] cmp r0, #0 beq _02248088 add r0, r4, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x70 bne _02248088 mov r0, #0x15 lsl r0, r0, #4 ldr r2, [r4, r0] ldr r1, [sp, #0x44] ldr r0, _02248158 ; =0x00002DD8 ldr r0, [r1, r0] sub r0, r2, r0 cmp r0, #5 bne _02248088 ldr r0, [sp, #0xa4] mov r2, #0x80 ldr r0, [r0, r5] add r1, r0, #0 orr r1, r2 ldr r0, [sp, #0xa4] add r2, #0x98 str r1, [r0, r5] str r6, [r4, r2] mov r0, #0xc5 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02248094 _02248088: ldr r0, [sp, #0x40] add r1, r0, #1 ldr r0, [sp, #0x80] str r1, [sp, #0x40] cmp r1, r0 blt _02247FDC _02248094: ldr r1, [sp, #0x40] ldr r0, [sp, #0x80] cmp r1, r0 bne _0224810E ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _022480A4: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _02248108 ldr r0, _02248148 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0xa8] _022480B2: ldr r0, _0224814C ; =0x000021EC add r1, r4, r5 ldrb r1, [r1, r0] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 ldr r0, [sp, #0xa8] str r1, [sp, #0x24] ldr r0, [r0, r6] lsl r0, r0, #0x16 lsr r0, r0, #0x1f bne _02248100 ldr r0, _02248150 ; =0x00002D8C add r1, r4, r6 ldr r0, [r1, r0] cmp r0, #0 beq _02248100 ldr r1, [sp, #0x24] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x68 bne _02248100 ldr r0, [sp, #0xa8] mov r2, #2 ldr r0, [r0, r6] lsl r2, r2, #8 add r1, r0, #0 orr r1, r2 ldr r0, [sp, #0xa8] sub r2, #0xe8 str r1, [r0, r6] ldr r0, [sp, #0x24] str r0, [r4, r2] mov r0, #0xb1 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02248108 _02248100: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _022480B2 _02248108: ldr r0, [sp, #0x80] cmp r5, r0 beq _02248110 _0224810E: b _02248282 _02248110: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _02248118: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _02248198 ldr r0, _02248148 ; =0x00002D68 add r0, r4, r0 str r0, [sp, #0xac] _02248126: ldr r0, _0224814C ; =0x000021EC add r1, r4, r5 ldrb r1, [r1, r0] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 ldr r0, [sp, #0xac] str r1, [sp, #0x28] ldr r0, [r0, r6] lsl r0, r0, #0x15 lsr r0, r0, #0x1f bne _02248190 ldr r0, _02248150 ; =0x00002D8C b _0224815C nop _02248144: .word 0x00002D4C _02248148: .word 0x00002D68 _0224814C: .word 0x000021EC _02248150: .word 0x00002D8C _02248154: .word 0x00002DB8 _02248158: .word 0x00002DD8 _0224815C: add r1, r4, r6 ldr r0, [r1, r0] cmp r0, #0 beq _02248190 ldr r1, [sp, #0x28] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x2e bne _02248190 ldr r0, [sp, #0xac] ldr r1, [r0, r6] mov r0, #1 lsl r0, r0, #0xa orr r1, r0 ldr r0, [sp, #0xac] str r1, [r0, r6] mov r1, #0x46 ldr r0, [sp, #0x28] lsl r1, r1, #2 str r0, [r4, r1] add r0, r1, #5 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02248198 _02248190: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _02248126 _02248198: ldr r0, [sp, #0x80] cmp r5, r0 bne _02248282 ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _022481A6: add r0, r7, #0 add r1, r4, #0 bl MOD11_0224AE78 cmp r0, #1 bne _022481BC ldr r0, _02248294 ; =0x00000106 str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _02248282 _022481BC: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _022481C4: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _022481F6 mov r6, #2 _022481CE: ldr r1, _02248298 ; =0x000021EC add r2, r4, r5 ldrb r2, [r2, r1] mov r1, #0xc0 add r0, r4, #0 mul r1, r2 add r2, r4, r1 ldr r1, _0224829C ; =0x00002DB8 ldrh r1, [r2, r1] mov r2, #1 bl MOD11_0224C12C cmp r0, #0x39 bne _022481EE ldr r0, _022482A0 ; =0x00002168 str r6, [r4, r0] _022481EE: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _022481CE _022481F6: ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _022481FE: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _0224822C ldr r6, _02248298 ; =0x000021EC _02248208: add r2, r4, r5 ldrb r2, [r2, r6] add r0, r7, #0 add r1, r4, #0 mov r3, #1 bl MOD11_02248898 cmp r0, #1 bne _02248224 mov r0, #0xdd str r0, [sp, #0xcc] mov r0, #1 str r0, [sp, #0x84] b _0224822C _02248224: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _02248208 _0224822C: ldr r0, [sp, #0x80] cmp r5, r0 bne _02248282 ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _0224823A: ldr r0, [sp, #0x80] mov r5, #0 cmp r0, #0 ble _0224826C _02248242: ldr r0, _02248298 ; =0x000021EC add r1, r4, r5 ldrb r6, [r1, r0] add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 add r3, sp, #0xcc bl MOD11_022493A0 cmp r0, #1 bne _02248264 mov r0, #0x46 lsl r0, r0, #2 str r6, [r4, r0] mov r0, #1 str r0, [sp, #0x84] b _0224826C _02248264: ldr r0, [sp, #0x80] add r5, r5, #1 cmp r5, r0 blt _02248242 _0224826C: ldr r0, [sp, #0x80] cmp r5, r0 bne _02248282 ldr r0, [r4, #0x58] add r0, r0, #1 str r0, [r4, #0x58] b _02248282 _0224827A: mov r0, #0 str r0, [r4, #0x58] mov r0, #2 str r0, [sp, #0x84] _02248282: ldr r0, [sp, #0x84] cmp r0, #0 bne _0224828C bl MOD11_022476F0 _0224828C: ldr r0, [sp, #0xcc] add sp, #0xd0 pop {r3, r4, r5, r6, r7, pc} nop _02248294: .word 0x00000106 _02248298: .word 0x000021EC _0224829C: .word 0x00002DB8 _022482A0: .word 0x00002168 thumb_func_start MOD11_022482A4 MOD11_022482A4: ; 0x022482A4 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _022482FA add r0, r5, #0 add r1, r4, #0 mov r2, #0 bl MOD11_02230308 str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #2 bl MOD11_02230308 str r0, [sp, #4] bl FUN_0201B9EC mov r3, #1 add r2, r0, #0 and r2, r3 lsl r0, r2, #2 add r1, sp, #0 ldr r0, [r1, r0] mov r4, #0xc0 mul r4, r0 add r5, r6, r4 ldr r4, _02248304 ; =0x00002D8C ldr r4, [r5, r4] cmp r4, #0 bne _022482FE add r0, r2, #0 eor r0, r3 lsl r0, r0, #2 add sp, #8 ldr r0, [r1, r0] pop {r4, r5, r6, pc} _022482FA: mov r0, #1 eor r0, r4 _022482FE: add sp, #8 pop {r4, r5, r6, pc} nop _02248304: .word 0x00002D8C thumb_func_start MOD11_02248308 MOD11_02248308: ; 0x02248308 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, [r5, #0x6c] add r7, r0, #0 add r4, r2, #0 mov r6, #0 cmp r1, #0xff bne _0224831C add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} _0224831C: add r0, r5, #0 bl MOD11_0224AD9C cmp r0, #1 bne _0224832A add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} _0224832A: ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x26 bgt _0224835A blt _0224833A b _022485FC _0224833A: cmp r0, #0x10 bgt _02248346 bge _02248408 cmp r0, #9 beq _02248372 b _0224887A _02248346: cmp r0, #0x1b bgt _02248358 cmp r0, #0x18 blt _02248358 bne _02248352 b _022484B0 _02248352: cmp r0, #0x1b bne _02248358 b _02248546 _02248358: b _0224887A _0224835A: cmp r0, #0x38 bgt _0224836A blt _02248362 b _02248752 _02248362: cmp r0, #0x31 bne _02248368 b _022486BE _02248368: b _0224887A _0224836A: cmp r0, #0x6a bne _02248370 b _022487FA _02248370: b _0224887A _02248372: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248660 ; =0x00002D8C ldr r1, [r2, r0] cmp r1, #0 beq _022483E6 add r1, r0, #0 add r1, #0x20 ldr r1, [r2, r1] cmp r1, #0 bne _022483E6 ldr r2, _02248664 ; =0x0000216C ldr r1, _02248668 ; =0x801FDA49 ldr r3, [r5, r2] tst r1, r3 bne _022483E6 add r1, r2, #0 sub r1, #0x30 ldr r3, [r5, r1] mov r1, #0x20 tst r1, r3 bne _022483E6 sub r2, #0x2c ldr r2, [r5, r2] mov r1, #0x10 tst r1, r2 bne _022483E6 ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r1, r5, r1 lsr r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _022483C6 mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 beq _022483E6 _022483C6: ldr r0, _0224866C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248670 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _022483E6 bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 blt _022483E8 _022483E6: b _0224887A _022483E8: add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0x94 str r1, [r0] mov r0, #0x46 ldr r1, [r5, #0x6c] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x1f str r0, [r4] mov r6, #1 b _0224887A _02248408: ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x60 bne _02248418 add r7, r6, #0 b _02248432 _02248418: ldr r0, _02248674 ; =0x00002160 ldr r0, [r5, r0] cmp r0, #0 beq _02248426 lsl r0, r0, #0x18 lsr r7, r0, #0x18 b _02248432 _02248426: ldr r0, _0224866C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248678 ; =0x000003E2 ldrb r7, [r1, r0] _02248432: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248660 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02248516 ldr r0, _02248664 ; =0x0000216C ldr r2, [r5, r0] ldr r0, _02248668 ; =0x801FDA49 tst r0, r2 bne _02248516 ldr r0, _0224866C ; =0x00003044 ldr r3, [r5, r0] cmp r3, #0xa5 beq _02248516 mov r0, #0x1c ldr r2, _02248660 ; =0x00002D8C mul r0, r1 add r0, r5, r0 lsr r2, r2, #4 ldr r2, [r0, r2] cmp r2, #0 bne _0224846E mov r2, #0x2e lsl r2, r2, #4 ldr r0, [r0, r2] cmp r0, #0 beq _02248516 _0224846E: mov r0, #0x85 lsl r0, r0, #6 ldr r2, [r5, r0] mov r0, #0x10 tst r0, r2 bne _02248516 lsl r0, r3, #4 add r2, r5, r0 ldr r0, _0224867C ; =0x000003E1 ldrb r0, [r2, r0] cmp r0, #0 beq _02248516 add r0, r5, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r7, r0 beq _02248516 ldr r1, [r5, #0x6c] add r0, r5, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r7, r0 beq _02248516 mov r0, #0xbc str r0, [r4] add r0, #0x74 str r7, [r5, r0] mov r6, #1 b _0224887A _022484B0: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248660 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02248516 add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02248516 ldr r1, _02248664 ; =0x0000216C ldr r0, _02248668 ; =0x801FDA49 ldr r2, [r5, r1] tst r0, r2 bne _02248516 add r0, r1, #0 sub r0, #0x30 ldr r2, [r5, r0] mov r0, #0x20 tst r0, r2 bne _02248516 sub r1, #0x2c ldr r1, [r5, r1] mov r0, #0x10 tst r0, r1 bne _02248516 ldr r1, [r5, #0x6c] mov r0, #0x1c mul r0, r1 add r2, r5, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r1, [r2, r0] cmp r1, #0 bne _02248504 add r0, #8 ldr r0, [r2, r0] cmp r0, #0 beq _02248516 _02248504: ldr r0, _0224866C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248670 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 bne _02248518 _02248516: b _0224887A _02248518: ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02248680 ; =0x00002D90 add r2, r5, r2 ldr r2, [r2, r0] sub r1, #0xc1 add r0, r2, #0 mul r0, r1 mov r1, #8 bl MOD11_022476C0 ldr r1, _02248684 ; =0x0000215C mov r6, #1 str r0, [r5, r1] mov r0, #0x46 ldr r1, [r5, #0x64] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0xbd str r0, [r4] b _0224887A _02248546: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248660 ; =0x00002D8C ldr r1, [r2, r0] cmp r1, #0 beq _02248650 add r1, r0, #0 add r1, #0x20 ldr r1, [r2, r1] cmp r1, #0 bne _02248650 ldr r2, _02248664 ; =0x0000216C ldr r1, _02248668 ; =0x801FDA49 ldr r3, [r5, r2] tst r1, r3 bne _02248650 add r1, r2, #0 sub r1, #0x30 ldr r3, [r5, r1] mov r1, #0x20 tst r1, r3 bne _02248650 sub r2, #0x2c ldr r2, [r5, r2] mov r1, #0x10 tst r1, r2 bne _02248650 ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r1, r5, r1 lsr r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _0224859A mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 beq _02248650 _0224859A: ldr r0, _0224866C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248670 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02248650 bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _02248650 bl FUN_0201B9EC mov r1, #3 bl _s32_div_f cmp r1, #0 beq _022485D0 cmp r1, #1 beq _022485D6 cmp r1, #2 beq _022485DC _022485D0: mov r0, #0x16 str r0, [r4] b _022485E0 _022485D6: mov r0, #0x1f str r0, [r4] b _022485E0 _022485DC: mov r0, #0x12 str r0, [r4] _022485E0: add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0x94 str r1, [r0] mov r0, #0x46 ldr r1, [r5, #0x6c] lsl r0, r0, #2 str r1, [r5, r0] mov r6, #1 b _0224887A _022485FC: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248660 ; =0x00002D8C ldr r1, [r2, r0] cmp r1, #0 beq _02248650 add r1, r0, #0 add r1, #0x20 ldr r1, [r2, r1] cmp r1, #0 bne _02248650 ldr r2, _02248664 ; =0x0000216C ldr r1, _02248668 ; =0x801FDA49 ldr r3, [r5, r2] tst r1, r3 bne _02248650 add r1, r2, #0 sub r1, #0x30 ldr r3, [r5, r1] mov r1, #0x20 tst r1, r3 bne _02248650 sub r2, #0x2c ldr r2, [r5, r2] mov r1, #0x10 tst r1, r2 bne _02248650 ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r1, r5, r1 lsr r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _02248652 mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _02248652 _02248650: b _0224887A _02248652: ldr r0, _0224866C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248670 ; =0x000003E9 b _02248688 nop _02248660: .word 0x00002D8C _02248664: .word 0x0000216C _02248668: .word 0x801FDA49 _0224866C: .word 0x00003044 _02248670: .word 0x000003E9 _02248674: .word 0x00002160 _02248678: .word 0x000003E2 _0224867C: .word 0x000003E1 _02248680: .word 0x00002D90 _02248684: .word 0x0000215C _02248688: ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02248770 bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _02248770 add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0x94 str r1, [r0] mov r0, #0x46 ldr r1, [r5, #0x6c] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x16 str r0, [r4] mov r6, #1 b _0224887A _022486BE: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248880 ; =0x00002D8C ldr r1, [r2, r0] cmp r1, #0 beq _02248770 add r1, r0, #0 add r1, #0x20 ldr r1, [r2, r1] cmp r1, #0 bne _02248770 ldr r2, _02248884 ; =0x0000216C ldr r1, _02248888 ; =0x801FDA49 ldr r3, [r5, r2] tst r1, r3 bne _02248770 add r1, r2, #0 sub r1, #0x30 ldr r3, [r5, r1] mov r1, #0x20 tst r1, r3 bne _02248770 sub r2, #0x2c ldr r2, [r5, r2] mov r1, #0x10 tst r1, r2 bne _02248770 ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r1, r5, r1 lsr r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _02248712 mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 beq _02248770 _02248712: ldr r0, _0224888C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248890 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02248770 bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _02248770 add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0x94 str r1, [r0] mov r0, #0x46 ldr r1, [r5, #0x6c] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x19 str r0, [r4] mov r6, #1 b _0224887A _02248752: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02248880 ; =0x00002D8C ldr r1, [r2, r0] cmp r1, #0 beq _02248770 add r1, r0, #0 add r1, #0x24 ldr r2, [r2, r1] mov r1, #0xf lsl r1, r1, #0x10 tst r1, r2 beq _02248772 _02248770: b _0224887A _02248772: ldr r2, _02248884 ; =0x0000216C ldr r1, _02248888 ; =0x801FDA49 ldr r3, [r5, r2] tst r1, r3 bne _0224887A add r1, r2, #0 sub r1, #0x30 ldr r3, [r5, r1] mov r1, #0x20 tst r1, r3 bne _0224887A sub r2, #0x2c ldr r2, [r5, r2] mov r1, #0x10 tst r1, r2 bne _0224887A ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r1, r5, r1 lsr r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _022487AC mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 beq _0224887A _022487AC: ldr r0, _0224888C ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02248890 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _0224887A mov r0, #0xc0 mul r0, r2 add r1, r5, r0 ldr r0, _02248880 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _0224887A bl FUN_0201B9EC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _0224887A add r0, r5, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r5, #0x64] add r0, #0x94 str r1, [r0] mov r0, #0x46 ldr r1, [r5, #0x6c] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x6a str r0, [r4] mov r6, #1 b _0224887A _022487FA: ldr r1, [r5, #0x6c] ldr r0, [r5, #0x74] cmp r1, r0 bne _0224887A ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _0224887A mov r0, #6 str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #8 add r3, r6, #0 bl MOD11_02246870 cmp r0, #0 bne _0224887A mov r2, #0x85 lsl r2, r2, #6 ldr r1, [r5, r2] mov r0, #0x10 tst r0, r1 bne _0224887A ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r5, r0 ldr r0, _02248880 ; =0x00002D8C ldr r3, [r1, r0] cmp r3, #0 beq _0224887A add r2, #0x2c ldr r3, [r5, r2] ldr r2, _02248888 ; =0x801FDA49 tst r2, r3 bne _0224887A ldr r2, _0224888C ; =0x00003044 ldr r2, [r5, r2] lsl r2, r2, #4 add r3, r5, r2 ldr r2, _02248890 ; =0x000003E9 ldrb r3, [r3, r2] mov r2, #1 tst r3, r2 beq _0224887A add r0, r0, #4 ldr r1, [r1, r0] sub r0, r2, #2 mul r0, r1 mov r1, #4 bl MOD11_022476C0 ldr r1, _02248894 ; =0x0000215C mov r6, #1 str r0, [r5, r1] mov r0, #0x46 ldr r1, [r5, #0x64] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0xc1 str r0, [r4] _0224887A: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _02248880: .word 0x00002D8C _02248884: .word 0x0000216C _02248888: .word 0x801FDA49 _0224888C: .word 0x00003044 _02248890: .word 0x000003E9 _02248894: .word 0x0000215C thumb_func_start MOD11_02248898 MOD11_02248898: ; 0x02248898 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r2, #0 add r0, r4, #0 add r1, r5, #0 add r7, r3, #0 mov r6, #0 bl MOD11_02246D1C cmp r0, #0x28 bgt _022488DE bge _02248978 cmp r0, #7 bgt _022488B8 beq _02248926 b _022489D0 _022488B8: add r1, r0, #0 sub r1, #0xc cmp r1, #8 bhi _022488E8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022488CC: ; jump table .short _02248994 - _022488CC - 2 ; case 0 .short _022489D0 - _022488CC - 2 ; case 1 .short _022489D0 - _022488CC - 2 ; case 2 .short _02248940 - _022488CC - 2 ; case 3 .short _022489D0 - _022488CC - 2 ; case 4 .short _022488F0 - _022488CC - 2 ; case 5 .short _022489D0 - _022488CC - 2 ; case 6 .short _022489D0 - _022488CC - 2 ; case 7 .short _0224890A - _022488CC - 2 ; case 8 _022488DE: cmp r0, #0x48 bgt _022488EA bge _02248940 cmp r0, #0x29 beq _0224895C _022488E8: b _022489D0 _022488EA: cmp r0, #0x54 beq _022489B2 b _022489D0 _022488F0: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A04 ; =0x00002DAC ldr r2, [r2, r1] ldr r1, _02248A08 ; =0x00000F88 tst r1, r2 beq _022489D0 mov r6, #1 add r0, #0x70 str r6, [r4, r0] b _022489D0 _0224890A: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A0C ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #7 tst r1, r2 beq _022489D0 mov r1, #5 add r0, #0x70 str r1, [r4, r0] mov r6, #1 b _022489D0 _02248926: mov r0, #0xc0 mul r0, r5 add r1, r4, r0 ldr r0, _02248A04 ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x40 tst r1, r0 beq _022489D0 mov r1, #3 add r0, #0xf0 str r1, [r4, r0] mov r6, #1 b _022489D0 _02248940: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A04 ; =0x00002DAC ldr r2, [r2, r1] mov r1, #7 tst r1, r2 beq _022489D0 mov r1, #0 add r0, #0x70 str r1, [r4, r0] mov r6, #1 b _022489D0 _0224895C: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A04 ; =0x00002DAC ldr r2, [r2, r1] mov r1, #0x10 tst r1, r2 beq _022489D0 mov r1, #2 add r0, #0x70 str r1, [r4, r0] mov r6, #1 b _022489D0 _02248978: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A04 ; =0x00002DAC ldr r2, [r2, r1] mov r1, #0x20 tst r1, r2 beq _022489D0 mov r1, #4 add r0, #0x70 str r1, [r4, r0] mov r6, #1 b _022489D0 _02248994: mov r0, #0xc0 add r1, r5, #0 mul r1, r0 add r2, r4, r1 ldr r1, _02248A0C ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #0xf lsl r1, r1, #0x10 tst r1, r2 beq _022489D0 mov r1, #6 add r0, #0x70 str r1, [r4, r0] mov r6, #1 b _022489D0 _022489B2: mov r0, #0xc0 add r3, r5, #0 mul r3, r0 ldr r0, _02248A10 ; =0x00002DB8 add r1, r4, r3 ldrh r1, [r1, r0] cmp r1, #0 beq _022489D0 add r0, #0x14 add r2, r4, r0 mov r0, #1 ldr r1, [r2, r3] lsl r0, r0, #0x16 orr r0, r1 str r0, [r2, r3] _022489D0: cmp r6, #1 bne _022489FE mov r0, #0x46 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 add r1, r5, #0 bl MOD11_02246D1C mov r1, #0x4b lsl r1, r1, #2 str r0, [r4, r1] cmp r7, #0 bne _022489FE add r0, r4, #0 mov r1, #1 mov r2, #0xdd bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _022489FE: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _02248A04: .word 0x00002DAC _02248A08: .word 0x00000F88 _02248A0C: .word 0x00002DB0 _02248A10: .word 0x00002DB8 thumb_func_start MOD11_02248A14 MOD11_02248A14: ; 0x02248A14 mov r0, #0 cmp r1, #0x28 bgt _02248A34 bge _02248A6A cmp r1, #7 bgt _02248A24 beq _02248A4C bx lr _02248A24: cmp r1, #0x11 bgt _02248A72 cmp r1, #0xf blt _02248A72 beq _02248A56 cmp r1, #0x11 beq _02248A42 bx lr _02248A34: cmp r1, #0x29 bgt _02248A3C beq _02248A60 bx lr _02248A3C: cmp r1, #0x48 beq _02248A56 bx lr _02248A42: ldr r1, _02248A74 ; =0x00000F88 tst r1, r2 beq _02248A72 mov r0, #1 bx lr _02248A4C: mov r1, #0x40 tst r1, r2 beq _02248A72 mov r0, #1 bx lr _02248A56: mov r1, #7 tst r1, r2 beq _02248A72 mov r0, #1 bx lr _02248A60: mov r1, #0x10 tst r1, r2 beq _02248A72 mov r0, #1 bx lr _02248A6A: mov r1, #0x20 tst r1, r2 beq _02248A72 mov r0, #1 _02248A72: bx lr .align 2, 0 _02248A74: .word 0x00000F88 thumb_func_start MOD11_02248A78 MOD11_02248A78: ; 0x02248A78 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r1, [r4, #0x6c] str r0, [sp] mov r7, #0 add r0, r4, #0 add r6, r2, #0 add r5, r7, #0 bl MOD11_02246D1C cmp r0, #0x1c bne _02248ABA ldr r0, [r4, #0x6c] cmp r0, #0xff beq _02248ABA add r1, r4, #0 add r1, #0x94 ldr r1, [r1] cmp r0, r1 bne _02248ABA ldr r1, _02248BFC ; =0x0000213C ldr r2, [r4, r1] mov r1, #0x80 tst r2, r1 beq _02248ABA add r1, #0x98 str r0, [r4, r1] add r0, r4, #0 ldr r1, [r4, #0x64] add r0, #0x94 str r1, [r0] mov r7, #1 b _02248AEA _02248ABA: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x1c bne _02248AEA add r1, r4, #0 add r1, #0x94 ldr r0, [r4, #0x64] ldr r1, [r1] cmp r0, r1 bne _02248AEA ldr r1, _02248BFC ; =0x0000213C ldr r2, [r4, r1] mov r1, #0x80 tst r2, r1 beq _02248AEA add r1, #0x98 str r0, [r4, r1] add r0, r4, #0 ldr r1, [r4, #0x6c] add r0, #0x94 str r1, [r0] mov r7, #1 _02248AEA: cmp r7, #1 bne _02248B3A mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r4, r0] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02248C00 ; =0x00002DAC ldr r0, [r1, r0] ldr r1, _02248C04 ; =0x00000F88 tst r1, r0 beq _02248B08 mov r5, #0x16 b _02248B1A _02248B08: mov r1, #0x10 tst r1, r0 beq _02248B12 mov r5, #0x19 b _02248B1A _02248B12: mov r1, #0x40 tst r0, r1 beq _02248B1A mov r5, #0x1f _02248B1A: cmp r5, #0 beq _02248B3A add r0, r4, #0 mov r1, #3 add r0, #0x88 str r1, [r0] add r0, r4, #0 mov r1, #1 add r2, r5, #0 bl MOD11_022431DC str r6, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} _02248B3A: ldr r0, [sp] add r1, r4, #0 bl MOD11_0224AE78 add r5, r0, #0 cmp r5, #1 bne _02248B5C ldr r2, _02248C08 ; =0x00000106 add r0, r4, #0 mov r1, #1 bl MOD11_022431DC str r6, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _02248B5C: ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_02249D90 cmp r0, #0x6b bne _02248B9C ldr r0, [r4, #0x6c] cmp r0, #0xff beq _02248B9C add r1, r4, #0 add r1, #0x94 ldr r1, [r1] cmp r0, r1 bne _02248B9C mov r1, #0x1c add r2, r0, #0 mul r2, r1 add r3, r4, r2 mov r2, #0xba lsl r2, r2, #2 ldr r3, [r3, r2] mov r2, #4 tst r2, r3 beq _02248B9C add r1, #0xfc str r0, [r4, r1] add r0, r4, #0 ldr r1, [r4, #0x64] add r0, #0x94 str r1, [r0] mov r5, #1 b _02248BD6 _02248B9C: ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249D90 cmp r0, #0x6b bne _02248BD6 add r1, r4, #0 add r1, #0x94 ldr r0, [r4, #0x64] ldr r1, [r1] cmp r0, r1 bne _02248BD6 mov r1, #0x1c add r2, r0, #0 mul r2, r1 add r3, r4, r2 mov r2, #0xba lsl r2, r2, #2 ldr r3, [r3, r2] mov r2, #4 tst r2, r3 beq _02248BD6 add r1, #0xfc str r0, [r4, r1] add r0, r4, #0 ldr r1, [r4, #0x6c] add r0, #0x94 str r1, [r0] mov r5, #1 _02248BD6: cmp r5, #1 bne _02248BF6 add r0, r4, #0 mov r1, #5 add r0, #0x88 str r1, [r0] add r0, r4, #0 mov r1, #1 mov r2, #0x6a bl MOD11_022431DC str r6, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _02248BF6: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02248BFC: .word 0x0000213C _02248C00: .word 0x00002DAC _02248C04: .word 0x00000F88 _02248C08: .word 0x00000106 thumb_func_start MOD11_02248C0C MOD11_02248C0C: ; 0x02248C0C push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] add r4, r1, #0 mov r0, #0 str r0, [sp, #0xc] str r2, [sp, #4] add r0, r4, #0 add r1, r2, #0 bl MOD11_02249D90 str r0, [sp, #0x10] ldr r1, [sp, #4] add r0, r4, #0 mov r2, #0 bl MOD11_02249DA4 add r6, r0, #0 ldr r0, [sp, #4] mov r3, #0xc0 add r5, r0, #0 ldr r0, _02248F50 ; =0x00002D8C mul r5, r3 add r1, r4, r0 ldr r2, [r1, r5] str r1, [sp, #0x14] cmp r2, #0 bne _02248C46 b _02249274 _02248C46: ldr r1, [sp, #0x10] cmp r1, #0x35 bhi _02248CE8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02248C58: ; jump table .short _02249246 - _02248C58 - 2 ; case 0 .short _02248CC4 - _02248C58 - 2 ; case 1 .short _02249246 - _02248C58 - 2 ; case 2 .short _02249246 - _02248C58 - 2 ; case 3 .short _02248D00 - _02248C58 - 2 ; case 4 .short _02248D14 - _02248C58 - 2 ; case 5 .short _02248D28 - _02248C58 - 2 ; case 6 .short _02248D3C - _02248C58 - 2 ; case 7 .short _02248D50 - _02248C58 - 2 ; case 8 .short _02248D64 - _02248C58 - 2 ; case 9 .short _02248DC6 - _02248C58 - 2 ; case 10 .short _02248DDA - _02248C58 - 2 ; case 11 .short _02248CDC - _02248C58 - 2 ; case 12 .short _02248E3A - _02248C58 - 2 ; case 13 .short _02248E76 - _02248C58 - 2 ; case 14 .short _02248EB2 - _02248C58 - 2 ; case 15 .short _02248EEE - _02248C58 - 2 ; case 16 .short _02248F2C - _02248C58 - 2 ; case 17 .short _02249246 - _02248C58 - 2 ; case 18 .short _02249246 - _02248C58 - 2 ; case 19 .short _02249246 - _02248C58 - 2 ; case 20 .short _02249246 - _02248C58 - 2 ; case 21 .short _02249246 - _02248C58 - 2 ; case 22 .short _02249246 - _02248C58 - 2 ; case 23 .short _02249246 - _02248C58 - 2 ; case 24 .short _02249246 - _02248C58 - 2 ; case 25 .short _02249246 - _02248C58 - 2 ; case 26 .short _02249246 - _02248C58 - 2 ; case 27 .short _02249246 - _02248C58 - 2 ; case 28 .short _02249246 - _02248C58 - 2 ; case 29 .short _02249246 - _02248C58 - 2 ; case 30 .short _02249246 - _02248C58 - 2 ; case 31 .short _02249246 - _02248C58 - 2 ; case 32 .short _02249246 - _02248C58 - 2 ; case 33 .short _02249246 - _02248C58 - 2 ; case 34 .short _02248F86 - _02248C58 - 2 ; case 35 .short _02248FCA - _02248C58 - 2 ; case 36 .short _02249012 - _02248C58 - 2 ; case 37 .short _02249058 - _02248C58 - 2 ; case 38 .short _0224909E - _02248C58 - 2 ; case 39 .short _022490E4 - _02248C58 - 2 ; case 40 .short _02249128 - _02248C58 - 2 ; case 41 .short _02249246 - _02248C58 - 2 ; case 42 .short _022491D8 - _02248C58 - 2 ; case 43 .short _0224920C - _02248C58 - 2 ; case 44 .short _02249246 - _02248C58 - 2 ; case 45 .short _02249246 - _02248C58 - 2 ; case 46 .short _02249246 - _02248C58 - 2 ; case 47 .short _02249194 - _02248C58 - 2 ; case 48 .short _02249246 - _02248C58 - 2 ; case 49 .short _02249246 - _02248C58 - 2 ; case 50 .short _02249246 - _02248C58 - 2 ; case 51 .short _02249246 - _02248C58 - 2 ; case 52 .short _022491BC - _02248C58 - 2 ; case 53 _02248CC4: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r0, r0, #1 cmp r2, r0 bhi _02248CE8 ldr r0, _02248F54 ; =0x0000215C mov r7, #0xc6 str r6, [r4, r0] mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248CDC: add r1, r4, r5 add r0, r0, #4 ldr r1, [r1, r0] lsr r0, r1, #1 cmp r2, r0 bls _02248CEA _02248CE8: b _02249246 _02248CEA: add r0, r6, #0 mul r0, r1 mov r1, #0x64 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C mov r7, #0xc6 str r0, [r4, r1] mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248D00: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xc7 str r0, [sp, #0xc] b _02249246 _02248D14: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xc8 str r0, [sp, #0xc] b _02249246 _02248D28: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] ldr r0, _02248F58 ; =0x00000F88 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xc9 str r0, [sp, #0xc] b _02249246 _02248D3C: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x10 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xca str r0, [sp, #0xc] b _02249246 _02248D50: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xcb str r0, [sp, #0xc] b _02249246 _02248D64: mov r0, #0 str r0, [sp, #8] add r0, r4, r5 ldr r3, _02248F5C ; =0x00002D4C add r1, r0, #0 _02248D6E: ldrh r2, [r0, r3] cmp r2, #0 beq _02248D7C ldr r2, _02248F60 ; =0x00002D6C ldrb r2, [r1, r2] cmp r2, #0 beq _02248D8A _02248D7C: ldr r2, [sp, #8] add r0, r0, #2 add r2, r2, #1 add r1, r1, #1 str r2, [sp, #8] cmp r2, #4 blt _02248D6E _02248D8A: ldr r0, [sp, #8] cmp r0, #4 beq _02248DF2 mov r0, #0xb5 lsl r0, r0, #6 ldr r1, [sp, #8] add r0, r4, r0 add r0, r0, r5 add r1, #0x1f add r2, r6, #0 bl MOD11_02243DC8 ldr r0, [sp] ldr r2, [sp, #4] add r1, r4, #0 bl MOD11_02245190 ldr r0, [sp, #8] add r1, r4, r5 lsl r0, r0, #1 add r1, r1, r0 ldr r0, _02248F5C ; =0x00002D4C mov r7, #0xcc ldrh r1, [r1, r0] mov r0, #0x49 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248DC6: add r1, r4, r5 add r0, #0x24 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _02248DF2 mov r0, #1 mov r7, #0xcd str r0, [sp, #0xc] b _02249246 _02248DDA: add r2, r0, #0 add r1, r4, r5 add r2, #0x20 ldr r2, [r1, r2] lsl r3, r2, #0x18 lsr r3, r3, #0x18 bne _02248DF4 add r0, #0x24 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 bne _02248DF4 _02248DF2: b _02249246 _02248DF4: mov r0, #0x40 tst r0, r2 beq _02248DFC mov r7, #0xc7 _02248DFC: mov r0, #7 tst r0, r2 beq _02248E04 mov r7, #0xc8 _02248E04: ldr r0, _02248F58 ; =0x00000F88 tst r0, r2 beq _02248E0C mov r7, #0xc9 _02248E0C: mov r0, #0x10 tst r0, r2 beq _02248E14 mov r7, #0xca _02248E14: mov r0, #0x20 tst r0, r2 beq _02248E1C mov r7, #0xcb _02248E1C: ldr r0, _02248F64 ; =0x00002DB0 add r1, r4, r5 ldr r1, [r1, r0] mov r0, #7 and r0, r1 beq _02248E2A mov r7, #0xcd _02248E2A: cmp r3, #0 beq _02248E34 cmp r0, #0 beq _02248E34 mov r7, #0xce _02248E34: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248E3A: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _02248EFA add r1, r6, #0 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248E6E mov r7, #0xcf b _02248E70 _02248E6E: mov r7, #0xc6 _02248E70: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248E76: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _02248EFA add r1, r6, #0 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248EAA mov r7, #0xcf b _02248EAC _02248EAA: mov r7, #0xc6 _02248EAC: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248EB2: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _02248EFA add r1, r6, #0 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248EE6 mov r7, #0xcf b _02248EE8 _02248EE6: mov r7, #0xc6 _02248EE8: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248EEE: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bls _02248EFC _02248EFA: b _02249246 _02248EFC: add r1, r6, #0 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248F24 mov r7, #0xcf b _02248F26 _02248F24: mov r7, #0xc6 _02248F26: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248F2C: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _02249000 add r1, r6, #0 bl MOD11_022476C0 ldr r1, _02248F54 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 b _02248F6C .align 2, 0 _02248F50: .word 0x00002D8C _02248F54: .word 0x0000215C _02248F58: .word 0x00000F88 _02248F5C: .word 0x00002D4C _02248F60: .word 0x00002D6C _02248F64: .word 0x00002DB0 _02248F68: .word 0x00002DA8 _02248F6C: ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248F7E mov r7, #0xcf b _02248F80 _02248F7E: mov r7, #0xc6 _02248F80: mov r0, #1 str r0, [sp, #0xc] b _02249246 _02248F86: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02248F98 lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _02248F98: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249000 ldr r0, _02249280 ; =0x00002D59 add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _02249000 mov r1, #0x13 mov r0, #1 lsl r1, r1, #4 str r0, [sp, #0xc] str r0, [r4, r1] mov r7, #0xd0 b _02249246 _02248FCA: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02248FDC lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _02248FDC: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249000 ldr r0, _02249284 ; =0x00002D5A add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc blt _02249002 _02249000: b _02249246 _02249002: mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #1 mov r7, #0xd0 str r0, [sp, #0xc] b _02249246 _02249012: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02249024 lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _02249024: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _0224911E ldr r0, _02249288 ; =0x00002D5B add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _0224911E mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #1 mov r7, #0xd0 str r0, [sp, #0xc] b _02249246 _02249058: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224906A lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _0224906A: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _0224911E ldr r0, _0224928C ; =0x00002D5C add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _0224911E mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #1 mov r7, #0xd0 str r0, [sp, #0xc] b _02249246 _0224909E: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022490B0 lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _022490B0: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _0224911E ldr r0, _02249290 ; =0x00002D5D add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _0224911E mov r0, #0x13 mov r1, #5 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #1 mov r7, #0xd0 str r0, [sp, #0xc] b _02249246 _022490E4: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022490F6 lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _022490F6: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _0224911E ldr r0, _02249294 ; =0x00002DB0 add r1, r4, r5 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x14 tst r0, r1 beq _02249120 _0224911E: b _02249246 _02249120: mov r0, #1 mov r7, #0xd1 str r0, [sp, #0xc] b _02249246 _02249128: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224913A lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _0224913A: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249246 ldr r0, _02249280 ; =0x00002D59 mov r2, #0 add r3, r4, r5 _0224915A: ldrsb r1, [r3, r0] cmp r1, #0xc blt _02249168 add r2, r2, #1 add r3, r3, #1 cmp r2, #5 blt _0224915A _02249168: cmp r2, #5 beq _02249246 ldr r6, _02249280 ; =0x00002D59 add r5, r4, r5 mov r7, #5 _02249172: bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f add r0, r5, r1 ldrsb r0, [r0, r6] cmp r0, #0xc beq _02249172 mov r0, #0x13 add r1, r1, #1 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #1 mov r7, #0xd2 str r0, [sp, #0xc] b _02249246 _02249194: ldr r6, _02249298 ; =0x00002D58 add r1, r4, r5 mov r0, #0 mov r5, #6 add r3, r6, #0 _0224919E: ldrsb r2, [r1, r3] cmp r2, #6 bge _022491AA mov r2, #1 strb r5, [r1, r6] str r2, [sp, #0xc] _022491AA: add r0, r0, #1 add r1, r1, #1 cmp r0, #8 blt _0224919E ldr r0, [sp, #0xc] cmp r0, #1 bne _02249246 mov r7, #0xd3 b _02249246 _022491BC: add r1, r4, r5 add r0, #0x24 ldr r1, [r1, r0] mov r0, #0xf lsl r0, r0, #0x10 tst r0, r1 beq _02249246 mov r0, #6 add r3, #0x70 str r0, [r4, r3] mov r0, #1 mov r7, #0xd4 str r0, [sp, #0xc] b _02249246 _022491D8: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022491EA lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _022491EA: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249246 mov r0, #1 ldr r7, _0224929C ; =0x00000109 str r0, [sp, #0xc] b _02249246 _0224920C: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224921E lsr r0, r6, #0x1f add r0, r6, r0 asr r6, r0, #1 _0224921E: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224927C ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r6, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249246 ldr r0, _022492A0 ; =0x00002DCC add r2, r4, r0 mov r0, #1 ldr r1, [r2, r5] lsl r0, r0, #0x1c orr r0, r1 str r0, [r2, r5] _02249246: ldr r0, [sp, #0xc] cmp r0, #1 bne _02249274 mov r1, #0x46 ldr r0, [sp, #4] lsl r1, r1, #2 str r0, [r4, r1] ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02249B4C mov r1, #0x4a lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 mov r1, #1 add r2, r7, #0 bl MOD11_022431DC ldr r0, [r4, #8] str r0, [r4, #0xc] mov r0, #0x15 str r0, [r4, #8] _02249274: ldr r0, [sp, #0xc] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _0224927C: .word 0x00002D90 _02249280: .word 0x00002D59 _02249284: .word 0x00002D5A _02249288: .word 0x00002D5B _0224928C: .word 0x00002D5C _02249290: .word 0x00002D5D _02249294: .word 0x00002DB0 _02249298: .word 0x00002D58 _0224929C: .word 0x00000109 _022492A0: .word 0x00002DCC thumb_func_start MOD11_022492A4 MOD11_022492A4: ; 0x022492A4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 add r6, r2, #0 mov r7, #0 add r0, r5, #0 add r1, r6, #0 bl MOD11_02249D90 str r0, [sp, #4] add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl MOD11_02249DA4 mov r0, #0xc0 add r4, r6, #0 mul r4, r0 ldr r0, _02249394 ; =0x00002D8C add r1, r5, r0 str r1, [sp, #8] ldr r1, [r1, r4] cmp r1, #0 beq _0224938E ldr r2, [sp, #4] cmp r2, #0x44 beq _022492E2 add r0, r2, #0 cmp r0, #0x6c beq _022492FE b _02249364 _022492E2: add r2, r5, r4 add r0, r0, #4 ldr r0, [r2, r0] cmp r1, r0 bhs _02249364 mov r1, #0x10 bl MOD11_022476C0 ldr r1, _02249398 ; =0x0000215C mov r7, #1 str r0, [r5, r1] mov r0, #0xd5 str r0, [sp] b _02249364 _022492FE: add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b add r3, r7, #0 bl MOD11_02243420 cmp r0, #3 beq _0224931E add r0, r5, #0 add r1, r6, #0 mov r2, #0x1c add r3, r7, #0 bl MOD11_02243420 cmp r0, #3 bne _0224933E _0224931E: ldr r0, _0224939C ; =0x00002D90 add r1, r5, r4 ldr r0, [r1, r0] ldr r1, [sp, #8] ldr r1, [r1, r4] cmp r1, r0 bhs _02249364 mov r1, #0x10 bl MOD11_022476C0 ldr r1, _02249398 ; =0x0000215C mov r7, #1 str r0, [r5, r1] mov r0, #0xd5 str r0, [sp] b _02249364 _0224933E: add r0, r5, #0 add r1, r6, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02249364 ldr r0, _0224939C ; =0x00002D90 add r1, r5, r4 ldr r1, [r1, r0] sub r0, r7, #1 mul r0, r1 mov r1, #8 bl MOD11_022476C0 ldr r1, _02249398 ; =0x0000215C mov r7, #1 str r0, [r5, r1] mov r0, #0xd7 str r0, [sp] _02249364: cmp r7, #1 bne _0224938E mov r0, #0x46 lsl r0, r0, #2 str r6, [r5, r0] add r0, r5, #0 add r1, r6, #0 bl MOD11_02249B4C mov r1, #0x4a lsl r1, r1, #2 str r0, [r5, r1] ldr r2, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r5, #8] str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _0224938E: add r0, r7, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02249394: .word 0x00002D8C _02249398: .word 0x0000215C _0224939C: .word 0x00002D90 thumb_func_start MOD11_022493A0 MOD11_022493A0: ; 0x022493A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] add r4, r1, #0 mov r0, #0 str r0, [sp, #0xc] str r2, [sp, #4] add r0, r4, #0 add r1, r2, #0 add r6, r3, #0 bl MOD11_02249D90 str r0, [sp, #0x10] ldr r1, [sp, #4] add r0, r4, #0 mov r2, #0 bl MOD11_02249DA4 add r7, r0, #0 ldr r0, [sp, #4] mov r3, #0xc0 add r5, r0, #0 ldr r0, _022496E4 ; =0x00002D8C mul r5, r3 add r1, r4, r0 ldr r2, [r1, r5] str r1, [sp, #0x14] cmp r2, #0 bne _022493DC b _02249A50 _022493DC: ldr r1, [sp, #0x10] cmp r1, #0x35 bhi _02249480 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022493EE: ; jump table .short _02249A3C - _022493EE - 2 ; case 0 .short _0224945A - _022493EE - 2 ; case 1 .short _02249A3C - _022493EE - 2 ; case 2 .short _02249A3C - _022493EE - 2 ; case 3 .short _0224949A - _022493EE - 2 ; case 4 .short _022494B0 - _022493EE - 2 ; case 5 .short _022494C6 - _022493EE - 2 ; case 6 .short _022494DC - _022493EE - 2 ; case 7 .short _022494F2 - _022493EE - 2 ; case 8 .short _02249508 - _022493EE - 2 ; case 9 .short _0224956C - _022493EE - 2 ; case 10 .short _02249582 - _022493EE - 2 ; case 11 .short _02249474 - _022493EE - 2 ; case 12 .short _022496BC - _022493EE - 2 ; case 13 .short _0224972C - _022493EE - 2 ; case 14 .short _0224976A - _022493EE - 2 ; case 15 .short _022497A8 - _022493EE - 2 ; case 16 .short _022497E6 - _022493EE - 2 ; case 17 .short _02249A3C - _022493EE - 2 ; case 18 .short _02249A3C - _022493EE - 2 ; case 19 .short _02249A3C - _022493EE - 2 ; case 20 .short _02249A3C - _022493EE - 2 ; case 21 .short _02249A3C - _022493EE - 2 ; case 22 .short _02249A3C - _022493EE - 2 ; case 23 .short _02249A3C - _022493EE - 2 ; case 24 .short _02249A3C - _022493EE - 2 ; case 25 .short _02249A3C - _022493EE - 2 ; case 26 .short _02249A3C - _022493EE - 2 ; case 27 .short _02249A3C - _022493EE - 2 ; case 28 .short _02249A3C - _022493EE - 2 ; case 29 .short _02249A3C - _022493EE - 2 ; case 30 .short _02249A3C - _022493EE - 2 ; case 31 .short _02249A3C - _022493EE - 2 ; case 32 .short _02249A3C - _022493EE - 2 ; case 33 .short _02249A3C - _022493EE - 2 ; case 34 .short _02249826 - _022493EE - 2 ; case 35 .short _0224986C - _022493EE - 2 ; case 36 .short _022498B4 - _022493EE - 2 ; case 37 .short _022498FC - _022493EE - 2 ; case 38 .short _02249946 - _022493EE - 2 ; case 39 .short _0224998E - _022493EE - 2 ; case 40 .short _022499D2 - _022493EE - 2 ; case 41 .short _02249A3C - _022493EE - 2 ; case 42 .short _0224964A - _022493EE - 2 ; case 43 .short _02249680 - _022493EE - 2 ; case 44 .short _02249A3C - _022493EE - 2 ; case 45 .short _02249A3C - _022493EE - 2 ; case 46 .short _02249A3C - _022493EE - 2 ; case 47 .short _02249602 - _022493EE - 2 ; case 48 .short _02249A3C - _022493EE - 2 ; case 49 .short _02249A3C - _022493EE - 2 ; case 50 .short _02249A3C - _022493EE - 2 ; case 51 .short _02249A3C - _022493EE - 2 ; case 52 .short _0224962C - _022493EE - 2 ; case 53 _0224945A: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r0, r0, #1 cmp r2, r0 bhi _02249480 ldr r0, _022496E8 ; =0x0000215C str r7, [r4, r0] mov r0, #0xc6 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249474: add r1, r4, r5 add r0, r0, #4 ldr r1, [r1, r0] lsr r0, r1, #1 cmp r2, r0 bls _02249482 _02249480: b _02249A3C _02249482: add r0, r7, #0 mul r0, r1 mov r1, #0x64 bl MOD11_022476C0 ldr r1, _022496E8 ; =0x0000215C str r0, [r4, r1] mov r0, #0xc6 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224949A: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _0224959C mov r0, #0xc7 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022494B0: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224959C mov r0, #0xc8 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022494C6: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] ldr r0, _022496EC ; =0x00000F88 tst r0, r1 beq _0224959C mov r0, #0xc9 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022494DC: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x10 tst r0, r1 beq _0224959C mov r0, #0xca str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022494F2: add r1, r4, r5 add r0, #0x20 ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0224959C mov r0, #0xcb str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249508: mov r0, #0 str r0, [sp, #8] add r0, r4, r5 ldr r3, _022496F0 ; =0x00002D4C add r1, r0, #0 _02249512: ldrh r2, [r0, r3] cmp r2, #0 beq _02249520 ldr r2, _022496F4 ; =0x00002D6C ldrb r2, [r1, r2] cmp r2, #0 beq _0224952E _02249520: ldr r2, [sp, #8] add r0, r0, #2 add r2, r2, #1 add r1, r1, #1 str r2, [sp, #8] cmp r2, #4 blt _02249512 _0224952E: ldr r0, [sp, #8] cmp r0, #4 beq _0224959C mov r0, #0xb5 lsl r0, r0, #6 ldr r1, [sp, #8] add r0, r4, r0 add r0, r0, r5 add r1, #0x1f add r2, r7, #0 bl MOD11_02243DC8 ldr r0, [sp] ldr r2, [sp, #4] add r1, r4, #0 bl MOD11_02245190 ldr r0, [sp, #8] add r1, r4, r5 lsl r0, r0, #1 add r1, r1, r0 ldr r0, _022496F0 ; =0x00002D4C ldrh r1, [r1, r0] mov r0, #0x49 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #0xcc str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224956C: add r1, r4, r5 add r0, #0x24 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224959C mov r0, #0xcd str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249582: add r1, r0, #0 add r1, #0x20 add r1, r4, r1 ldr r2, [r1, r5] lsl r3, r2, #0x18 lsr r3, r3, #0x18 bne _0224959E add r3, r4, r5 add r0, #0x24 ldr r3, [r3, r0] mov r0, #7 tst r0, r3 bne _0224959E _0224959C: b _02249A3C _0224959E: mov r0, #0x40 tst r0, r2 beq _022495A8 mov r0, #0xc7 str r0, [r6] _022495A8: ldr r2, [r1, r5] mov r0, #7 tst r0, r2 beq _022495B4 mov r0, #0xc8 str r0, [r6] _022495B4: ldr r2, [r1, r5] ldr r0, _022496EC ; =0x00000F88 tst r0, r2 beq _022495C0 mov r0, #0xc9 str r0, [r6] _022495C0: ldr r2, [r1, r5] mov r0, #0x10 tst r0, r2 beq _022495CC mov r0, #0xca str r0, [r6] _022495CC: ldr r2, [r1, r5] mov r0, #0x20 tst r0, r2 beq _022495D8 mov r0, #0xcb str r0, [r6] _022495D8: ldr r0, _022496F8 ; =0x00002DB0 mov r2, #7 add r0, r4, r0 ldr r3, [r0, r5] tst r2, r3 beq _022495E8 mov r2, #0xcd str r2, [r6] _022495E8: ldr r1, [r1, r5] lsl r1, r1, #0x18 lsr r1, r1, #0x18 beq _022495FC ldr r1, [r0, r5] mov r0, #7 tst r0, r1 beq _022495FC mov r0, #0xce str r0, [r6] _022495FC: mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249602: ldr r7, _022496FC ; =0x00002D58 add r1, r4, r5 mov r0, #0 mov r5, #6 add r3, r7, #0 _0224960C: ldrsb r2, [r1, r3] cmp r2, #6 bge _02249618 mov r2, #1 strb r5, [r1, r7] str r2, [sp, #0xc] _02249618: add r0, r0, #1 add r1, r1, #1 cmp r0, #8 blt _0224960C ldr r0, [sp, #0xc] cmp r0, #1 bne _022496C8 mov r0, #0xd3 str r0, [r6] b _02249A3C _0224962C: add r1, r4, r5 add r0, #0x24 ldr r1, [r1, r0] mov r0, #0xf lsl r0, r0, #0x10 tst r0, r1 beq _022496C8 mov r0, #6 add r3, #0x70 str r0, [r4, r3] mov r0, #0xd4 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224964A: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224965C lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _0224965C: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249700 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _022496C8 ldr r0, _02249704 ; =0x00000109 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249680: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02249692 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _02249692: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249700 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _022496C8 ldr r0, _02249708 ; =0x00002DCC add r2, r4, r0 mov r0, #1 ldr r1, [r2, r5] lsl r0, r0, #0x1c orr r0, r1 str r0, [r2, r5] b _02249A3C _022496BC: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bls _022496CA _022496C8: b _02249A3C _022496CA: add r1, r7, #0 bl MOD11_022476C0 ldr r1, _022496E8 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _0224970C ; =0x00002DA8 b _02249710 nop _022496E4: .word 0x00002D8C _022496E8: .word 0x0000215C _022496EC: .word 0x00000F88 _022496F0: .word 0x00002D4C _022496F4: .word 0x00002D6C _022496F8: .word 0x00002DB0 _022496FC: .word 0x00002D58 _02249700: .word 0x00002D90 _02249704: .word 0x00000109 _02249708: .word 0x00002DCC _0224970C: .word 0x00002DA8 _02249710: ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02249722 mov r0, #0xcf b _02249724 _02249722: mov r0, #0xc6 _02249724: str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224972C: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _022497F2 add r1, r7, #0 bl MOD11_022476C0 ldr r1, _02249A58 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02249760 mov r0, #0xcf b _02249762 _02249760: mov r0, #0xc6 _02249762: str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224976A: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _022497F2 add r1, r7, #0 bl MOD11_022476C0 ldr r1, _02249A58 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _0224979E mov r0, #0xcf b _022497A0 _0224979E: mov r0, #0xc6 _022497A0: str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022497A8: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bhi _022497F2 add r1, r7, #0 bl MOD11_022476C0 ldr r1, _02249A58 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _022497DC mov r0, #0xcf b _022497DE _022497DC: mov r0, #0xc6 _022497DE: str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022497E6: add r1, r4, r5 add r0, r0, #4 ldr r0, [r1, r0] lsr r1, r0, #1 cmp r2, r1 bls _022497F4 _022497F2: b _02249A3C _022497F4: add r1, r7, #0 bl MOD11_022476C0 ldr r1, _02249A58 ; =0x0000215C add r2, r4, r5 str r0, [r4, r1] mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _0224981C mov r0, #0xcf b _0224981E _0224981C: mov r0, #0xc6 _0224981E: str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249826: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02249838 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _02249838: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249932 ldr r0, _02249A64 ; =0x00002D59 add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _02249932 mov r1, #0x13 mov r0, #1 lsl r1, r1, #4 str r0, [sp, #0xc] str r0, [r4, r1] mov r0, #0xd0 str r0, [r6] b _02249A3C _0224986C: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224987E lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _0224987E: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249932 ldr r0, _02249A68 ; =0x00002D5A add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _02249932 mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0xd0 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022498B4: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022498C6 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _022498C6: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249932 ldr r0, _02249A6C ; =0x00002D5B add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _02249932 mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0xd0 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022498FC: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _0224990E lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _0224990E: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249932 ldr r0, _02249A70 ; =0x00002D5C add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc blt _02249934 _02249932: b _02249A3C _02249934: mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0xd0 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _02249946: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _02249958 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _02249958: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249A3C ldr r0, _02249A74 ; =0x00002D5D add r1, r4, r5 ldrsb r0, [r1, r0] cmp r0, #0xc bge _02249A3C mov r0, #0x13 mov r1, #5 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0xd0 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _0224998E: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022499A0 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _022499A0: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249A3C ldr r0, _02249A78 ; =0x00002DB0 add r1, r4, r5 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x14 tst r0, r1 bne _02249A3C mov r0, #0xd1 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] b _02249A3C _022499D2: ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x52 bne _022499E4 lsr r0, r7, #0x1f add r0, r7, r0 asr r7, r0, #1 _022499E4: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _02249A60 ; =0x00002D90 add r1, r4, r1 ldr r0, [r1, r0] add r1, r7, #0 bl _u32_div_f ldr r1, [sp, #0x14] ldr r1, [r1, r5] cmp r1, r0 bhi _02249A3C ldr r0, _02249A64 ; =0x00002D59 mov r2, #0 add r3, r4, r5 _02249A04: ldrsb r1, [r3, r0] cmp r1, #0xc blt _02249A12 add r2, r2, #1 add r3, r3, #1 cmp r2, #5 blt _02249A04 _02249A12: cmp r2, #5 beq _02249A3C ldr r7, _02249A64 ; =0x00002D59 add r5, r4, r5 _02249A1A: bl FUN_0201B9EC mov r1, #5 bl _s32_div_f add r0, r5, r1 ldrsb r0, [r0, r7] cmp r0, #0xc beq _02249A1A mov r0, #0x13 add r1, r1, #1 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #0xd2 str r0, [r6] mov r0, #1 str r0, [sp, #0xc] _02249A3C: ldr r0, [sp, #0xc] cmp r0, #1 bne _02249A50 ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02249B4C mov r1, #0x4a lsl r1, r1, #2 str r0, [r4, r1] _02249A50: ldr r0, [sp, #0xc] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _02249A58: .word 0x0000215C _02249A5C: .word 0x00002DA8 _02249A60: .word 0x00002D90 _02249A64: .word 0x00002D59 _02249A68: .word 0x00002D5A _02249A6C: .word 0x00002D5B _02249A70: .word 0x00002D5C _02249A74: .word 0x00002D5D _02249A78: .word 0x00002DB0 thumb_func_start MOD11_02249A7C MOD11_02249A7C: ; 0x02249A7C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 add r4, r2, #0 mov r6, #0 add r0, r5, #0 add r1, r4, #0 bl MOD11_02249D90 add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_02249DA4 str r0, [sp, #8] mov r0, #0xc0 mul r0, r4 str r0, [sp] add r1, r5, r0 ldr r0, _02249B40 ; =0x00002D8C ldr r0, [r1, r0] cmp r0, #0 beq _02249B38 cmp r7, #0x63 beq _02249ABA cmp r7, #0x64 beq _02249AD0 cmp r7, #0x73 beq _02249AE6 b _02249B0E _02249ABA: add r0, r5, #0 add r0, #0x94 str r4, [r0] add r0, r5, #0 mov r1, #5 add r0, #0x88 str r1, [r0] mov r0, #0x2f str r0, [sp, #4] mov r6, #1 b _02249B0E _02249AD0: add r0, r5, #0 add r0, #0x94 str r4, [r0] add r0, r5, #0 mov r1, #5 add r0, #0x88 str r1, [r0] mov r0, #0x19 str r0, [sp, #4] mov r6, #1 b _02249B0E _02249AE6: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02249B0E ldr r0, [sp] add r1, r5, r0 ldr r0, _02249B44 ; =0x00002D90 ldr r1, [r1, r0] sub r0, r6, #1 mul r0, r1 ldr r1, [sp, #8] bl MOD11_022476C0 ldr r1, _02249B48 ; =0x0000215C mov r6, #1 str r0, [r5, r1] mov r0, #0xd7 str r0, [sp, #4] _02249B0E: cmp r6, #1 bne _02249B38 mov r0, #0x46 lsl r0, r0, #2 str r4, [r5, r0] add r0, r5, #0 add r1, r4, #0 bl MOD11_02249B4C mov r1, #0x4a lsl r1, r1, #2 str r0, [r5, r1] ldr r2, [sp, #4] add r0, r5, #0 mov r1, #1 bl MOD11_022431DC ldr r0, [r5, #8] str r0, [r5, #0xc] mov r0, #0x15 str r0, [r5, #8] _02249B38: add r0, r6, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02249B40: .word 0x00002D8C _02249B44: .word 0x00002D90 _02249B48: .word 0x0000215C thumb_func_start MOD11_02249B4C MOD11_02249B4C: ; 0x02249B4C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02246D1C cmp r0, #0x67 bne _02249B5E mov r0, #0 pop {r3, r4, r5, pc} _02249B5E: mov r0, #0xc0 mul r0, r4 add r2, r5, r0 ldr r0, _02249B78 ; =0x00002DCC ldr r1, [r2, r0] lsl r1, r1, #0xa lsr r1, r1, #0x1d beq _02249B72 mov r0, #0 pop {r3, r4, r5, pc} _02249B72: sub r0, #0x14 ldrh r0, [r2, r0] pop {r3, r4, r5, pc} .align 2, 0 _02249B78: .word 0x00002DCC thumb_func_start MOD11_02249B7C MOD11_02249B7C: ; 0x02249B7C lsl r1, r1, #4 add r1, r0, r1 ldr r0, _02249B90 ; =0x000021A8 ldr r0, [r1, r0] cmp r0, #0x27 bne _02249B8C mov r0, #1 bx lr _02249B8C: mov r0, #0 bx lr .align 2, 0 _02249B90: .word 0x000021A8 thumb_func_start MOD11_02249B94 MOD11_02249B94: ; 0x02249B94 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 ldr r1, [r5, #0x6c] str r0, [sp] add r6, r2, #0 mov r7, #0 cmp r1, #0xff bne _02249BAC add sp, #0xc add r0, r7, #0 pop {r4, r5, r6, r7, pc} _02249BAC: add r0, r5, #0 bl MOD11_0224AD9C cmp r0, #1 bne _02249BBC add sp, #0xc add r0, r7, #0 pop {r4, r5, r6, r7, pc} _02249BBC: ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_02249D90 add r4, r0, #0 ldr r1, [r5, #0x6c] add r0, r5, #0 add r2, r7, #0 bl MOD11_02249DA4 str r0, [sp, #4] ldr r0, [sp] ldr r1, [r5, #0x64] bl MOD11_02230270 str r0, [sp, #8] cmp r4, #0x2e bgt _02249BF2 cmp r4, #0x2a blt _02249BF0 bne _02249BE8 b _02249D24 _02249BE8: cmp r4, #0x2d beq _02249C74 cmp r4, #0x2e beq _02249CD2 _02249BF0: b _02249D6A _02249BF2: cmp r4, #0x73 bne _02249C5C ldr r0, [r5, #0x64] mov r1, #0xc0 mul r1, r0 add r3, r5, r1 ldr r1, _02249D70 ; =0x00002D8C ldr r2, [r3, r1] cmp r2, #0 beq _02249C5C add r1, #0x2c ldrh r1, [r3, r1] cmp r1, #0 bne _02249C5C add r1, r5, r0 ldr r0, _02249D74 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C ldr r1, [sp, #8] lsl r1, r1, #3 add r2, r5, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r2, [r2, r1] lsl r2, r2, #3 lsr r2, r2, #0x1a tst r0, r2 bne _02249C5C ldr r0, _02249D78 ; =0x00003044 sub r1, #0xaa ldr r0, [r5, r0] cmp r0, r1 beq _02249C5C ldr r2, [r5, #0x6c] mov r1, #0x1c mul r1, r2 add r3, r5, r1 mov r1, #0xb6 lsl r1, r1, #2 ldr r2, [r3, r1] cmp r2, #0 bne _02249C50 add r1, #8 ldr r1, [r3, r1] cmp r1, #0 beq _02249C5C _02249C50: mov r1, #0x85 lsl r1, r1, #6 ldr r2, [r5, r1] mov r1, #0x10 tst r1, r2 beq _02249C5E _02249C5C: b _02249D6A _02249C5E: lsl r0, r0, #4 add r1, r5, r0 ldr r0, _02249D7C ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r1, r0 beq _02249D6A mov r1, #0xd8 str r1, [r6] add r7, r0, #0 b _02249D6A _02249C74: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02249D70 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02249D6A add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02249D6A mov r0, #0x85 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #0x10 tst r0, r1 bne _02249D6A ldr r1, [r5, #0x6c] mov r0, #0x1c mul r0, r1 add r1, r5, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #0 beq _02249D6A ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02249D80 ; =0x00002D90 add r2, r5, r2 ldr r2, [r2, r0] sub r1, #0xc1 add r0, r2, #0 mul r0, r1 ldr r1, [sp, #4] bl MOD11_022476C0 ldr r1, _02249D84 ; =0x0000215C mov r7, #1 str r0, [r5, r1] lsr r0, r1, #5 str r0, [r6] b _02249D6A _02249CD2: ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _02249D70 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _02249D6A add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _02249D6A ldr r1, [r5, #0x6c] mov r0, #0x1c mul r0, r1 add r1, r5, r0 mov r0, #0x2e lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 beq _02249D6A ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02249D80 ; =0x00002D90 add r2, r5, r2 ldr r2, [r2, r0] sub r1, #0xc1 add r0, r2, #0 mul r0, r1 ldr r1, [sp, #4] bl MOD11_022476C0 ldr r1, _02249D84 ; =0x0000215C mov r7, #1 str r0, [r5, r1] lsr r0, r1, #5 str r0, [r6] b _02249D6A _02249D24: ldr r1, [r5, #0x6c] mov r0, #0xc0 mul r0, r1 ldr r2, _02249D70 ; =0x00002D8C add r0, r5, r0 ldr r1, [r0, r2] cmp r1, #0 beq _02249D6A ldr r1, _02249D88 ; =0x0000216C ldr r3, [r5, r1] mov r1, #2 tst r1, r3 beq _02249D6A add r1, r2, #4 ldr r0, [r0, r1] ldr r1, [sp, #4] bl MOD11_022476C0 ldr r1, _02249D84 ; =0x0000215C mov r7, #1 str r0, [r5, r1] mov r1, #0xc6 str r1, [r6] ldr r0, [r5, #0x6c] add r1, #0x52 str r0, [r5, r1] ldr r0, [r5, #0x6c] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _02249D8C ; =0x00002DB8 add r2, r5, r2 ldrh r0, [r2, r0] add r1, #0x68 str r0, [r5, r1] _02249D6A: add r0, r7, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _02249D70: .word 0x00002D8C _02249D74: .word 0x0000219C _02249D78: .word 0x00003044 _02249D7C: .word 0x000003E9 _02249D80: .word 0x00002D90 _02249D84: .word 0x0000215C _02249D88: .word 0x0000216C _02249D8C: .word 0x00002DB8 thumb_func_start MOD11_02249D90 MOD11_02249D90: ; 0x02249D90 push {r4, lr} add r4, r0, #0 bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 mov r2, #1 bl MOD11_0224C12C pop {r4, pc} thumb_func_start MOD11_02249DA4 MOD11_02249DA4: ; 0x02249DA4 push {r4, lr} add r4, r0, #0 cmp r2, #0 beq _02249DB6 cmp r2, #1 beq _02249DD2 cmp r2, #2 beq _02249DBE b _02249DDC _02249DB6: bl MOD11_02249B4C add r1, r0, #0 b _02249DDC _02249DBE: mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _02249DE8 ; =0x00002DCC ldr r0, [r2, r0] lsl r0, r0, #0xa lsr r0, r0, #0x1d beq _02249DD2 mov r0, #0 pop {r4, pc} _02249DD2: mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _02249DEC ; =0x00002DB8 ldrh r1, [r1, r0] _02249DDC: add r0, r4, #0 mov r2, #2 bl MOD11_0224C12C pop {r4, pc} nop _02249DE8: .word 0x00002DCC _02249DEC: .word 0x00002DB8 thumb_func_start MOD11_02249DF0 MOD11_02249DF0: ; 0x02249DF0 push {r4, lr} add r4, r0, #0 bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 mov r2, #0xb bl MOD11_0224C12C pop {r4, pc} thumb_func_start MOD11_02249E04 MOD11_02249E04: ; 0x02249E04 push {r4, lr} add r4, r0, #0 bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 mov r2, #0xc bl MOD11_0224C12C pop {r4, pc} thumb_func_start MOD11_02249E18 MOD11_02249E18: ; 0x02249E18 mov r2, #0xc0 mul r2, r1 ldr r1, _02249E28 ; =0x00002DB8 add r2, r0, r2 ldrh r1, [r2, r1] ldr r3, _02249E2C ; =MOD11_0224C12C mov r2, #8 bx r3 .align 2, 0 _02249E28: .word 0x00002DB8 _02249E2C: .word MOD11_0224C12C thumb_func_start MOD11_02249E30 MOD11_02249E30: ; 0x02249E30 push {r3, lr} mov r2, #0xc0 mul r2, r1 ldr r1, _02249E54 ; =0x00002DCC add r3, r0, r2 ldr r2, [r3, r1] lsl r2, r2, #0xa lsr r2, r2, #0x1d beq _02249E46 mov r0, #0 pop {r3, pc} _02249E46: sub r1, #0x14 ldrh r1, [r3, r1] mov r2, #9 bl MOD11_0224C12C pop {r3, pc} nop _02249E54: .word 0x00002DCC thumb_func_start MOD11_02249E58 MOD11_02249E58: ; 0x02249E58 push {r3, lr} mov r2, #0xc0 mul r2, r1 ldr r1, _02249E7C ; =0x00002DCC add r3, r0, r2 ldr r2, [r3, r1] lsl r2, r2, #0xa lsr r2, r2, #0x1d beq _02249E6E mov r0, #0 pop {r3, pc} _02249E6E: sub r1, #0x14 ldrh r1, [r3, r1] mov r2, #0xa bl MOD11_0224C12C pop {r3, pc} nop _02249E7C: .word 0x00002DCC thumb_func_start MOD11_02249E80 MOD11_02249E80: ; 0x02249E80 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r4, r2, #0 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r6, #0 bl MOD11_02249D90 cmp r0, #0x7a bne _02249E9E add sp, #8 add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} _02249E9E: mov r0, #0xc0 add r7, r4, #0 mul r7, r0 ldr r0, _02249F80 ; =0x00002DB0 add r2, r5, r7 ldr r1, [r2, r0] ldr r3, _02249F84 ; =0x0400E000 tst r1, r3 bne _02249EBA add r0, #0x10 ldr r1, [r2, r0] lsr r0, r3, #0x10 tst r0, r1 beq _02249EBC _02249EBA: mov r6, #1 _02249EBC: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x17 beq _02249EDC mov r0, #0x17 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #3 add r3, r4, #0 bl MOD11_02246870 cmp r0, #0 bne _02249F10 _02249EDC: add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #8 beq _02249EFC add r0, r5, #0 add r1, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #8 bne _02249F12 _02249EFC: mov r0, #0x2a str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #3 add r3, r4, #0 bl MOD11_02246870 cmp r0, #0 beq _02249F12 _02249F10: mov r6, #1 _02249F12: add r0, r5, #0 add r1, r4, #0 bl MOD11_02246D1C cmp r0, #0x1a beq _02249F4A ldr r0, _02249F88 ; =0x00002DCC add r1, r5, r7 ldr r0, [r1, r0] lsl r0, r0, #0x10 lsr r0, r0, #0x1d bne _02249F4A add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 cmp r0, #2 beq _02249F4A add r0, r5, #0 add r1, r4, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 cmp r0, #2 bne _02249F64 _02249F4A: add r0, r5, #0 add r1, r4, #0 bl MOD11_02249D90 cmp r0, #0x69 beq _02249F64 mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] mov r0, #7 lsl r0, r0, #0xc tst r0, r1 beq _02249F7A _02249F64: mov r0, #0x47 str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #3 add r3, r4, #0 bl MOD11_02246870 cmp r0, #0 beq _02249F7A mov r6, #1 _02249F7A: add r0, r6, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02249F80: .word 0x00002DB0 _02249F84: .word 0x0400E000 _02249F88: .word 0x00002DCC thumb_func_start MOD11_02249F8C MOD11_02249F8C: ; 0x02249F8C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 str r0, [sp] mov r6, #0 str r2, [sp, #4] add r0, r4, #0 add r1, r2, #0 add r5, r6, #0 bl MOD11_02249E18 add r7, r0, #0 ldr r1, [sp, #4] add r0, r4, #0 mov r2, #1 bl MOD11_02249DA4 str r0, [sp, #0x10] ldr r1, [r4, #0x6c] add r0, r4, #0 bl MOD11_0224AD9C cmp r0, #1 bne _02249FC2 add sp, #0x14 add r0, r6, #0 pop {r4, r5, r6, r7, pc} _02249FC2: cmp r7, #0x17 bls _02249FC8 b _0224A444 _02249FC8: add r0, r7, r7 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02249FD4: ; jump table .short _0224A444 - _02249FD4 - 2 ; case 0 .short _0224A04E - _02249FD4 - 2 ; case 1 .short _0224A066 - _02249FD4 - 2 ; case 2 .short _0224A07E - _02249FD4 - 2 ; case 3 .short _0224A096 - _02249FD4 - 2 ; case 4 .short _0224A0AE - _02249FD4 - 2 ; case 5 .short _0224A0C6 - _02249FD4 - 2 ; case 6 .short _0224A004 - _02249FD4 - 2 ; case 7 .short _0224A13C - _02249FD4 - 2 ; case 8 .short _0224A154 - _02249FD4 - 2 ; case 9 .short _0224A024 - _02249FD4 - 2 ; case 10 .short _0224A1B6 - _02249FD4 - 2 ; case 11 .short _0224A1FC - _02249FD4 - 2 ; case 12 .short _0224A242 - _02249FD4 - 2 ; case 13 .short _0224A288 - _02249FD4 - 2 ; case 14 .short _0224A2CE - _02249FD4 - 2 ; case 15 .short _0224A314 - _02249FD4 - 2 ; case 16 .short _0224A360 - _02249FD4 - 2 ; case 17 .short _0224A37E - _02249FD4 - 2 ; case 18 .short _0224A39C - _02249FD4 - 2 ; case 19 .short _0224A3BA - _02249FD4 - 2 ; case 20 .short _0224A424 - _02249FD4 - 2 ; case 21 .short _0224A3D8 - _02249FD4 - 2 ; case 22 .short _0224A43E - _02249FD4 - 2 ; case 23 _0224A004: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _0224A320 ; =0x00002D8C ldr r1, [r2, r0] add r0, r0, #4 ldr r0, [r2, r0] cmp r1, r0 beq _0224A020 ldr r1, _0224A324 ; =0x0000215C ldr r0, [sp, #0x10] mov r5, #0xc6 str r0, [r4, r1] _0224A020: mov r6, #1 b _0224A45A _0224A024: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A328 ; =0x00002D90 ldr r2, [r1, r0] sub r0, r0, #4 ldr r0, [r1, r0] cmp r0, r2 beq _0224A04A ldr r1, [sp, #0x10] add r0, r1, #0 mul r0, r2 mov r1, #0x64 bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C mov r5, #0xc6 str r0, [r4, r1] _0224A04A: mov r6, #1 b _0224A45A _0224A04E: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A32C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x40 tst r0, r1 beq _0224A062 mov r5, #0xc7 _0224A062: mov r6, #1 b _0224A45A _0224A066: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A32C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224A07A mov r5, #0xc8 _0224A07A: mov r6, #1 b _0224A45A _0224A07E: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A32C ; =0x00002DAC ldr r1, [r1, r0] ldr r0, _0224A330 ; =0x00000F88 tst r0, r1 beq _0224A092 mov r5, #0xc9 _0224A092: mov r6, #1 b _0224A45A _0224A096: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A32C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x10 tst r0, r1 beq _0224A0AA mov r5, #0xca _0224A0AA: mov r6, #1 b _0224A45A _0224A0AE: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A32C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0224A0C2 mov r5, #0xcb _0224A0C2: mov r6, #1 b _0224A45A _0224A0C6: str r5, [sp, #0xc] _0224A0C8: ldr r1, [r4, #0x64] mov r0, #0xc0 add r7, r1, #0 mul r7, r0 add r1, r4, r7 ldr r0, _0224A334 ; =0x00002D4C add r2, r6, r1 ldrh r0, [r2, r0] cmp r0, #0 beq _0224A0FA add r2, r5, r1 ldr r1, _0224A338 ; =0x00002D70 ldrb r1, [r2, r1] bl FUN_0206AB30 add r1, r4, r7 add r2, r5, r1 ldr r1, _0224A33C ; =0x00002D6C ldrb r1, [r2, r1] sub r1, r0, r1 ldr r0, [sp, #0xc] cmp r1, r0 ble _0224A0FA str r1, [sp, #0xc] str r5, [sp, #8] _0224A0FA: add r5, r5, #1 add r6, r6, #2 cmp r5, #4 blt _0224A0C8 mov r0, #0xb5 lsl r0, r0, #6 ldr r1, [sp, #8] add r0, r4, r0 ldr r2, [sp, #0x10] add r0, r0, r7 add r1, #0x1f bl MOD11_02243DC8 ldr r0, [sp] ldr r2, [r4, #0x64] add r1, r4, #0 bl MOD11_02245190 ldr r0, [r4, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, [sp, #8] add r2, r4, r2 lsl r0, r0, #1 add r2, r2, r0 ldr r0, _0224A334 ; =0x00002D4C add r1, #0x64 ldrh r0, [r2, r0] mov r5, #0xcc mov r6, #1 str r0, [r4, r1] b _0224A45A _0224A13C: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A340 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224A150 mov r5, #0xcd _0224A150: mov r6, #1 b _0224A45A _0224A154: ldr r2, [r4, #0x64] mov r0, #0xc0 add r1, r2, #0 mul r1, r0 ldr r6, _0224A32C ; =0x00002DAC add r0, r4, r1 ldr r2, [r0, r6] lsl r3, r2, #0x18 lsr r3, r3, #0x18 bne _0224A172 add r6, r6, #4 ldr r6, [r0, r6] mov r0, #7 tst r0, r6 beq _0224A1B2 _0224A172: mov r0, #0x40 tst r0, r2 beq _0224A17A mov r5, #0xc7 _0224A17A: mov r0, #7 tst r0, r2 beq _0224A182 mov r5, #0xc8 _0224A182: ldr r0, _0224A330 ; =0x00000F88 tst r0, r2 beq _0224A18A mov r5, #0xc9 _0224A18A: mov r0, #0x10 tst r0, r2 beq _0224A192 mov r5, #0xca _0224A192: mov r0, #0x20 tst r0, r2 beq _0224A19A mov r5, #0xcb _0224A19A: ldr r0, _0224A340 ; =0x00002DB0 add r1, r4, r1 ldr r1, [r1, r0] mov r0, #7 and r0, r1 beq _0224A1A8 mov r5, #0xcd _0224A1A8: cmp r3, #0 beq _0224A1B2 cmp r0, #0 beq _0224A1B2 mov r5, #0xce _0224A1B2: mov r6, #1 b _0224A45A _0224A1B6: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A328 ; =0x00002D90 add r2, r4, r0 ldr r0, [r2, r1] sub r1, r1, #4 ldr r1, [r2, r1] cmp r1, r0 beq _0224A1F8 ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C str r0, [r4, r1] mov r0, #0x13 add r1, r6, #0 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r6, #1 cmp r0, r1 bne _0224A1F6 mov r5, #0xcf b _0224A1F8 _0224A1F6: mov r5, #0xc6 _0224A1F8: mov r6, #1 b _0224A45A _0224A1FC: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A328 ; =0x00002D90 add r2, r4, r0 ldr r0, [r2, r1] sub r1, r1, #4 ldr r1, [r2, r1] cmp r1, r0 beq _0224A23E ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C str r0, [r4, r1] mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r6, #1 cmp r0, r1 bne _0224A23C mov r5, #0xcf b _0224A23E _0224A23C: mov r5, #0xc6 _0224A23E: mov r6, #1 b _0224A45A _0224A242: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A328 ; =0x00002D90 add r2, r4, r0 ldr r0, [r2, r1] sub r1, r1, #4 ldr r1, [r2, r1] cmp r1, r0 beq _0224A284 ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C str r0, [r4, r1] mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r6, #1 cmp r0, r1 bne _0224A282 mov r5, #0xcf b _0224A284 _0224A282: mov r5, #0xc6 _0224A284: mov r6, #1 b _0224A45A _0224A288: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A328 ; =0x00002D90 add r2, r4, r0 ldr r0, [r2, r1] sub r1, r1, #4 ldr r1, [r2, r1] cmp r1, r0 beq _0224A2CA ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C str r0, [r4, r1] mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r6, #1 cmp r0, r1 bne _0224A2C8 mov r5, #0xcf b _0224A2CA _0224A2C8: mov r5, #0xc6 _0224A2CA: mov r6, #1 b _0224A45A _0224A2CE: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A328 ; =0x00002D90 add r2, r4, r0 ldr r0, [r2, r1] sub r1, r1, #4 ldr r1, [r2, r1] cmp r1, r0 beq _0224A310 ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A324 ; =0x0000215C str r0, [r4, r1] mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x64] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r6, #1 cmp r0, r1 bne _0224A30E mov r5, #0xcf b _0224A310 _0224A30E: mov r5, #0xc6 _0224A310: mov r6, #1 b _0224A45A _0224A314: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _0224A348 ; =0x00002D59 b _0224A34C .align 2, 0 _0224A320: .word 0x00002D8C _0224A324: .word 0x0000215C _0224A328: .word 0x00002D90 _0224A32C: .word 0x00002DAC _0224A330: .word 0x00000F88 _0224A334: .word 0x00002D4C _0224A338: .word 0x00002D70 _0224A33C: .word 0x00002D6C _0224A340: .word 0x00002DB0 _0224A344: .word 0x00002DA8 _0224A348: .word 0x00002D59 _0224A34C: add r2, r4, r2 ldrsb r1, [r2, r1] cmp r1, #0xc bge _0224A35C mov r1, #1 add r0, #0x70 str r1, [r4, r0] mov r5, #0xd0 _0224A35C: mov r6, #1 b _0224A45A _0224A360: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _0224A4C0 ; =0x00002D5A add r2, r4, r2 ldrsb r1, [r2, r1] cmp r1, #0xc bge _0224A37A mov r1, #2 add r0, #0x70 str r1, [r4, r0] mov r5, #0xd0 _0224A37A: mov r6, #1 b _0224A45A _0224A37E: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _0224A4C4 ; =0x00002D5B add r2, r4, r2 ldrsb r1, [r2, r1] cmp r1, #0xc bge _0224A398 mov r1, #3 add r0, #0x70 str r1, [r4, r0] mov r5, #0xd0 _0224A398: mov r6, #1 b _0224A45A _0224A39C: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _0224A4C8 ; =0x00002D5C add r2, r4, r2 ldrsb r1, [r2, r1] cmp r1, #0xc bge _0224A3B6 mov r1, #4 add r0, #0x70 str r1, [r4, r0] mov r5, #0xd0 _0224A3B6: mov r6, #1 b _0224A45A _0224A3BA: ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, _0224A4CC ; =0x00002D5D add r2, r4, r2 ldrsb r1, [r2, r1] cmp r1, #0xc bge _0224A3D4 mov r1, #5 add r0, #0x70 str r1, [r4, r0] mov r5, #0xd0 _0224A3D4: mov r6, #1 b _0224A45A _0224A3D8: ldr r2, [r4, #0x64] mov r1, #0xc0 mul r1, r2 add r3, r4, r1 ldr r1, _0224A4D0 ; =0x00002D59 add r0, r6, #0 _0224A3E4: ldrsb r2, [r3, r1] cmp r2, #0xc blt _0224A3F2 add r0, r0, #1 add r3, r3, #1 cmp r0, #5 blt _0224A3E4 _0224A3F2: cmp r0, #5 beq _0224A420 ldr r5, _0224A4D0 ; =0x00002D59 mov r7, #5 mov r6, #0xc0 _0224A3FC: bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f ldr r0, [r4, #0x64] add r2, r0, #0 mul r2, r6 add r0, r4, r2 add r0, r1, r0 ldrsb r0, [r0, r5] cmp r0, #0xc beq _0224A3FC mov r0, #0x13 add r1, r1, #1 lsl r0, r0, #4 str r1, [r4, r0] mov r5, #0xd2 _0224A420: mov r6, #1 b _0224A45A _0224A424: ldr r1, [r4, #0x64] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A4D4 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x14 tst r0, r1 bne _0224A43A mov r5, #0xd1 _0224A43A: mov r6, #1 b _0224A45A _0224A43E: ldr r5, _0224A4D8 ; =0x00000109 mov r6, #1 b _0224A45A _0224A444: ldr r0, [sp, #4] mov r1, #0xc0 mul r1, r0 ldr r0, _0224A4DC ; =0x00002DB8 add r1, r4, r1 ldrh r0, [r1, r0] bl FUN_0206EAEC cmp r0, #1 bne _0224A45A mov r6, #1 _0224A45A: cmp r6, #1 bne _0224A4B8 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x67 beq _0224A482 ldr r1, [r4, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 mov r1, #0xb7 add r2, r4, r2 lsl r1, r1, #6 ldr r2, [r2, r1] mov r1, #1 lsl r1, r1, #0x1a tst r1, r2 beq _0224A48C _0224A482: mov r0, #0x4e mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] b _0224A490 _0224A48C: add r0, #0x78 str r5, [r4, r0] _0224A490: ldr r0, [sp, #4] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _0224A4DC ; =0x00002DB8 add r2, r4, r2 ldrh r0, [r2, r0] add r1, #0x68 str r0, [r4, r1] ldr r2, [r4, #0x64] mov r0, #0xba lsl r0, r0, #2 mov r1, #0x1c add r3, r2, #0 mul r3, r1 add r0, r4, r0 ldr r2, [r0, r3] mov r1, #2 orr r1, r2 str r1, [r0, r3] _0224A4B8: add r0, r6, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0224A4C0: .word 0x00002D5A _0224A4C4: .word 0x00002D5B _0224A4C8: .word 0x00002D5C _0224A4CC: .word 0x00002D5D _0224A4D0: .word 0x00002D59 _0224A4D4: .word 0x00002DB0 _0224A4D8: .word 0x00000109 _0224A4DC: .word 0x00002DB8 thumb_func_start MOD11_0224A4E0 MOD11_0224A4E0: ; 0x0224A4E0 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 str r0, [sp] str r2, [sp, #4] add r0, r4, #0 add r1, r2, #0 bl MOD11_02249E30 add r6, r0, #0 ldr r1, [sp, #4] add r0, r4, #0 mov r2, #2 bl MOD11_02249DA4 str r0, [sp, #0x10] ldr r1, [sp, #4] add r0, r4, #0 bl MOD11_02249E58 ldr r1, _0224A84C ; =0x00002154 add r2, r4, #0 str r0, [r4, r1] ldr r0, _0224A850 ; =0x00003118 mov r5, #0 str r5, [r4, r0] add r2, #0x88 str r5, [r2] ldr r1, [r4, r1] cmp r1, #0 bne _0224A524 add sp, #0x14 add r0, r5, #0 pop {r4, r5, r6, r7, pc} _0224A524: cmp r6, #0x1e bls _0224A52A b _0224AAAC _0224A52A: add r1, r6, r6 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224A536: ; jump table .short _0224AAAC - _0224A536 - 2 ; case 0 .short _0224A5A2 - _0224A536 - 2 ; case 1 .short _0224A5BA - _0224A536 - 2 ; case 2 .short _0224A5D2 - _0224A536 - 2 ; case 3 .short _0224A5EA - _0224A536 - 2 ; case 4 .short _0224A602 - _0224A536 - 2 ; case 5 .short _0224A61A - _0224A536 - 2 ; case 6 .short _0224A574 - _0224A536 - 2 ; case 7 .short _0224A69C - _0224A536 - 2 ; case 8 .short _0224A6B4 - _0224A536 - 2 ; case 9 .short _0224A580 - _0224A536 - 2 ; case 10 .short _0224A77A - _0224A536 - 2 ; case 11 .short _0224A7BC - _0224A536 - 2 ; case 12 .short _0224A7FE - _0224A536 - 2 ; case 13 .short _0224A840 - _0224A536 - 2 ; case 14 .short _0224A8B0 - _0224A536 - 2 ; case 15 .short _0224A9AC - _0224A536 - 2 ; case 16 .short _0224A9CA - _0224A536 - 2 ; case 17 .short _0224A9E8 - _0224A536 - 2 ; case 18 .short _0224AA06 - _0224A536 - 2 ; case 19 .short _0224AA24 - _0224A536 - 2 ; case 20 .short _0224AA8E - _0224A536 - 2 ; case 21 .short _0224AA42 - _0224A536 - 2 ; case 22 .short _0224AAA8 - _0224A536 - 2 ; case 23 .short _0224A8F2 - _0224A536 - 2 ; case 24 .short _0224A91A - _0224A536 - 2 ; case 25 .short _0224A93E - _0224A536 - 2 ; case 26 .short _0224A954 - _0224A536 - 2 ; case 27 .short _0224A96A - _0224A536 - 2 ; case 28 .short _0224A980 - _0224A536 - 2 ; case 29 .short _0224A996 - _0224A536 - 2 ; case 30 _0224A574: ldr r1, [sp, #0x10] sub r2, r0, #4 str r1, [r4, r2] mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A580: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A854 ; =0x00002D90 ldr r0, [r1, r0] ldr r1, [sp, #0x10] mul r0, r1 mov r1, #0x64 bl MOD11_022476C0 ldr r1, _0224A858 ; =0x00003114 mov r2, #0xc6 str r0, [r4, r1] add r0, r1, #4 str r2, [r4, r0] b _0224AAAC _0224A5A2: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A85C ; =0x00002DAC ldr r2, [r2, r1] mov r1, #0x40 tst r1, r2 beq _0224A65C mov r1, #0xc7 str r1, [r4, r0] b _0224AAAC _0224A5BA: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A85C ; =0x00002DAC ldr r2, [r2, r1] mov r1, #7 tst r1, r2 beq _0224A65C mov r1, #0xc8 str r1, [r4, r0] b _0224AAAC _0224A5D2: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A85C ; =0x00002DAC ldr r2, [r2, r1] ldr r1, _0224A860 ; =0x00000F88 tst r1, r2 beq _0224A65C mov r1, #0xc9 str r1, [r4, r0] b _0224AAAC _0224A5EA: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A85C ; =0x00002DAC ldr r2, [r2, r1] mov r1, #0x10 tst r1, r2 beq _0224A65C mov r1, #0xca str r1, [r4, r0] b _0224AAAC _0224A602: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A85C ; =0x00002DAC ldr r2, [r2, r1] mov r1, #0x20 tst r1, r2 beq _0224A65C mov r1, #0xcb str r1, [r4, r0] b _0224AAAC _0224A61A: add r6, r5, #0 add r7, r5, #0 _0224A61E: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 str r0, [sp, #8] ldr r0, _0224A864 ; =0x00002D4C add r2, r7, r1 ldrh r0, [r2, r0] cmp r0, #0 beq _0224A650 add r2, r6, r1 ldr r1, _0224A868 ; =0x00002D70 ldrb r1, [r2, r1] bl FUN_0206AB30 ldr r1, [sp, #8] add r1, r4, r1 add r2, r6, r1 ldr r1, _0224A86C ; =0x00002D6C ldrb r1, [r2, r1] sub r0, r0, r1 cmp r0, r5 ble _0224A650 add r5, r0, #0 str r6, [sp, #0xc] _0224A650: add r6, r6, #1 add r7, r7, #2 cmp r6, #4 blt _0224A61E cmp r5, #0 bne _0224A65E _0224A65C: b _0224AAAC _0224A65E: mov r0, #0xb5 lsl r0, r0, #6 add r1, r4, r0 ldr r0, [sp, #8] ldr r2, [sp, #0x10] add r0, r1, r0 ldr r1, [sp, #0xc] add r1, #0x1f bl MOD11_02243DC8 ldr r0, [sp] ldr r2, [r4, #0x6c] add r1, r4, #0 bl MOD11_02245190 ldr r0, [r4, #0x6c] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, [sp, #0xc] add r2, r4, r2 lsl r0, r0, #1 add r2, r2, r0 ldr r0, _0224A864 ; =0x00002D4C add r1, #0x64 ldrh r0, [r2, r0] str r0, [r4, r1] ldr r0, _0224A850 ; =0x00003118 mov r1, #0xcc str r1, [r4, r0] b _0224AAAC _0224A69C: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224A870 ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #7 tst r1, r2 beq _0224A770 mov r1, #0xcd str r1, [r4, r0] b _0224AAAC _0224A6B4: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 ldr r1, _0224A85C ; =0x00002DAC add r3, r4, r0 ldr r0, [r3, r1] lsl r2, r0, #0x18 lsr r2, r2, #0x18 bne _0224A6D0 add r1, r1, #4 ldr r2, [r3, r1] mov r1, #7 tst r1, r2 beq _0224A770 _0224A6D0: mov r1, #0x40 tst r0, r1 beq _0224A6DC ldr r0, _0224A850 ; =0x00003118 mov r1, #0xc7 str r1, [r4, r0] _0224A6DC: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A85C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224A6F4 ldr r0, _0224A850 ; =0x00003118 mov r1, #0xc8 str r1, [r4, r0] _0224A6F4: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A85C ; =0x00002DAC ldr r1, [r1, r0] ldr r0, _0224A860 ; =0x00000F88 tst r0, r1 beq _0224A70C ldr r0, _0224A850 ; =0x00003118 mov r1, #0xc9 str r1, [r4, r0] _0224A70C: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A85C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x10 tst r0, r1 beq _0224A724 ldr r0, _0224A850 ; =0x00003118 mov r1, #0xca str r1, [r4, r0] _0224A724: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A85C ; =0x00002DAC ldr r1, [r1, r0] mov r0, #0x20 tst r0, r1 beq _0224A73C ldr r0, _0224A850 ; =0x00003118 mov r1, #0xcb str r1, [r4, r0] _0224A73C: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A870 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #7 tst r0, r1 beq _0224A754 ldr r0, _0224A850 ; =0x00003118 mov r1, #0xcd str r1, [r4, r0] _0224A754: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _0224A85C ; =0x00002DAC ldr r1, [r2, r0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 beq _0224A770 add r0, r0, #4 ldr r1, [r2, r0] mov r0, #7 tst r0, r1 bne _0224A772 _0224A770: b _0224AAAC _0224A772: ldr r0, _0224A850 ; =0x00003118 mov r1, #0xce str r1, [r4, r0] b _0224AAAC _0224A77A: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A854 ; =0x00002D90 ldr r0, [r1, r0] ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A858 ; =0x00003114 str r0, [r4, r1] mov r0, #0x13 add r1, r5, #0 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 bne _0224A7B6 mov r1, #0xcf str r1, [r4, r0] b _0224AAAC _0224A7B6: mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A7BC: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A854 ; =0x00002D90 ldr r0, [r1, r0] ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A858 ; =0x00003114 str r0, [r4, r1] mov r0, #0x13 mov r1, #1 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 bne _0224A7F8 mov r1, #0xcf str r1, [r4, r0] b _0224AAAC _0224A7F8: mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A7FE: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A854 ; =0x00002D90 ldr r0, [r1, r0] ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224A858 ; =0x00003114 str r0, [r4, r1] mov r0, #0x13 mov r1, #2 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 bne _0224A83A mov r1, #0xcf str r1, [r4, r0] b _0224AAAC _0224A83A: mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A840: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224A854 ; =0x00002D90 b _0224A878 .align 2, 0 _0224A84C: .word 0x00002154 _0224A850: .word 0x00003118 _0224A854: .word 0x00002D90 _0224A858: .word 0x00003114 _0224A85C: .word 0x00002DAC _0224A860: .word 0x00000F88 _0224A864: .word 0x00002D4C _0224A868: .word 0x00002D70 _0224A86C: .word 0x00002D6C _0224A870: .word 0x00002DB0 _0224A874: .word 0x00002DA8 _0224A878: ldr r0, [r1, r0] ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224AB14 ; =0x00003114 str r0, [r4, r1] mov r0, #0x13 mov r1, #3 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 bne _0224A8AA mov r1, #0xcf str r1, [r4, r0] b _0224AAAC _0224A8AA: mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A8B0: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r1, r4, r0 ldr r0, _0224AB20 ; =0x00002D90 ldr r0, [r1, r0] ldr r1, [sp, #0x10] bl MOD11_022476C0 ldr r1, _0224AB14 ; =0x00003114 str r0, [r4, r1] mov r0, #0x13 mov r1, #4 lsl r0, r0, #4 str r1, [r4, r0] ldr r2, [r4, #0x6c] mov r0, #0xc0 mul r0, r2 add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] bl FUN_02069BE4 sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 bne _0224A8EC mov r1, #0xcf str r1, [r4, r0] b _0224AAAC _0224A8EC: mov r1, #0xc6 str r1, [r4, r0] b _0224AAAC _0224A8F2: ldr r2, _0224AB24 ; =0x00002D58 mov r6, #6 mov r3, #0xd3 mov r7, #0xc0 _0224A8FA: ldr r0, [r4, #0x6c] add r1, r0, #0 mul r1, r7 add r0, r4, r1 add r0, r0, r5 ldrsb r1, [r0, r2] cmp r1, #6 bge _0224A912 ldr r1, _0224AB24 ; =0x00002D58 strb r6, [r0, r1] ldr r0, _0224AB1C ; =0x00003118 str r3, [r4, r0] _0224A912: add r5, r5, #1 cmp r5, #8 blt _0224A8FA b _0224AAAC _0224A91A: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB28 ; =0x00002DB0 add r3, r4, r3 ldr r3, [r3, r2] mov r2, #0xf lsl r2, r2, #0x10 tst r2, r3 bne _0224A932 b _0224AAAC _0224A932: mov r2, #6 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd4 str r1, [r4, r0] b _0224AAAC _0224A93E: add r2, r4, #0 ldr r1, [sp, #4] add r2, #0x94 str r1, [r2] add r1, r4, #0 mov r2, #2 add r1, #0x88 str r2, [r1] mov r1, #0xe str r1, [r4, r0] b _0224AAAC _0224A954: add r2, r4, #0 ldr r1, [sp, #4] add r2, #0x94 str r1, [r2] add r1, r4, #0 mov r2, #2 add r1, #0x88 str r2, [r1] mov r1, #0x1f str r1, [r4, r0] b _0224AAAC _0224A96A: add r2, r4, #0 ldr r1, [sp, #4] add r2, #0x94 str r1, [r2] add r1, r4, #0 mov r2, #2 add r1, #0x88 str r2, [r1] mov r1, #0x16 str r1, [r4, r0] b _0224AAAC _0224A980: add r2, r4, #0 ldr r1, [sp, #4] add r2, #0x94 str r1, [r2] add r1, r4, #0 mov r2, #2 add r1, #0x88 str r2, [r1] mov r1, #0x2f str r1, [r4, r0] b _0224AAAC _0224A996: add r2, r4, #0 ldr r1, [sp, #4] add r2, #0x94 str r1, [r2] add r1, r4, #0 mov r2, #2 add r1, #0x88 str r2, [r1] mov r1, #0x19 str r1, [r4, r0] b _0224AAAC _0224A9AC: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB2C ; =0x00002D59 add r3, r4, r3 ldrsb r2, [r3, r2] cmp r2, #0xc bge _0224AAAC mov r2, #1 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd0 str r1, [r4, r0] b _0224AAAC _0224A9CA: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB30 ; =0x00002D5A add r3, r4, r3 ldrsb r2, [r3, r2] cmp r2, #0xc bge _0224AAAC mov r2, #2 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd0 str r1, [r4, r0] b _0224AAAC _0224A9E8: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB34 ; =0x00002D5B add r3, r4, r3 ldrsb r2, [r3, r2] cmp r2, #0xc bge _0224AAAC mov r2, #3 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd0 str r1, [r4, r0] b _0224AAAC _0224AA06: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB38 ; =0x00002D5C add r3, r4, r3 ldrsb r2, [r3, r2] cmp r2, #0xc bge _0224AAAC mov r2, #4 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd0 str r1, [r4, r0] b _0224AAAC _0224AA24: ldr r2, [r4, #0x6c] mov r1, #0xc0 add r3, r2, #0 mul r3, r1 ldr r2, _0224AB3C ; =0x00002D5D add r3, r4, r3 ldrsb r2, [r3, r2] cmp r2, #0xc bge _0224AAAC mov r2, #5 add r1, #0x70 str r2, [r4, r1] mov r1, #0xd0 str r1, [r4, r0] b _0224AAAC _0224AA42: ldr r1, [r4, #0x6c] mov r0, #0xc0 mul r0, r1 add r2, r4, r0 ldr r0, _0224AB2C ; =0x00002D59 _0224AA4C: ldrsb r1, [r2, r0] cmp r1, #0xc blt _0224AA5A add r5, r5, #1 add r2, r2, #1 cmp r5, #5 blt _0224AA4C _0224AA5A: cmp r5, #5 beq _0224AAAC ldr r5, _0224AB2C ; =0x00002D59 mov r7, #5 mov r6, #0xc0 _0224AA64: bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f ldr r0, [r4, #0x6c] add r2, r0, #0 mul r2, r6 add r0, r4, r2 add r0, r1, r0 ldrsb r0, [r0, r5] cmp r0, #0xc beq _0224AA64 mov r0, #0x13 add r1, r1, #1 lsl r0, r0, #4 str r1, [r4, r0] ldr r0, _0224AB1C ; =0x00003118 mov r1, #0xd2 str r1, [r4, r0] b _0224AAAC _0224AA8E: ldr r2, [r4, #0x6c] mov r1, #0xc0 mul r1, r2 add r2, r4, r1 ldr r1, _0224AB28 ; =0x00002DB0 ldr r2, [r2, r1] mov r1, #1 lsl r1, r1, #0x14 tst r1, r2 bne _0224AAAC mov r1, #0xd1 str r1, [r4, r0] b _0224AAAC _0224AAA8: ldr r1, _0224AB40 ; =0x00000109 str r1, [r4, r0] _0224AAAC: ldr r0, [r4, #0x6c] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 add r0, r4, r2 mov r2, #0xb7 lsl r2, r2, #6 ldr r3, [r0, r2] mov r0, #1 lsl r0, r0, #0x1a tst r0, r3 beq _0224AACC ldr r0, _0224AB1C ; =0x00003118 mov r1, #0 str r1, [r4, r0] b _0224AB0C _0224AACC: ldr r0, [sp, #4] sub r2, #8 add r3, r0, #0 mul r3, r1 add r0, r4, r3 ldrh r0, [r0, r2] add r1, #0x68 str r0, [r4, r1] add r0, r4, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #0 bne _0224AB04 ldr r0, _0224AB1C ; =0x00003118 ldr r0, [r4, r0] cmp r0, #0 beq _0224AB04 mov r0, #0xba ldr r1, [r4, #0x64] lsl r0, r0, #2 add r3, r4, r0 mov r0, #0x1c add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] mov r0, #2 orr r0, r1 str r0, [r3, r2] _0224AB04: mov r0, #0x46 ldr r1, [r4, #0x6c] lsl r0, r0, #2 str r1, [r4, r0] _0224AB0C: mov r0, #1 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0224AB14: .word 0x00003114 _0224AB18: .word 0x00002DA8 _0224AB1C: .word 0x00003118 _0224AB20: .word 0x00002D90 _0224AB24: .word 0x00002D58 _0224AB28: .word 0x00002DB0 _0224AB2C: .word 0x00002D59 _0224AB30: .word 0x00002D5A _0224AB34: .word 0x00002D5B _0224AB38: .word 0x00002D5C _0224AB3C: .word 0x00002D5D _0224AB40: .word 0x00000109 thumb_func_start MOD11_0224AB44 MOD11_0224AB44: ; 0x0224AB44 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249D90 cmp r0, #0x68 bne _0224ABD2 ldr r5, [r4, #0x64] mov r6, #0xc0 add r3, r5, #0 mul r3, r6 ldr r0, _0224ABE8 ; =0x00002DB0 add r2, r4, r3 ldr r1, [r2, r0] lsl r6, r6, #4 tst r6, r1 bne _0224ABE6 mov r6, #0x70 tst r6, r1 bne _0224ABE6 ldr r6, _0224ABEC ; =0x0000213C ldr r7, [r4, r6] mov r6, #2 lsl r6, r6, #8 tst r7, r6 bne _0224ABE6 lsl r6, r6, #3 tst r1, r6 bne _0224ABE6 mov r6, #0xc1 lsl r6, r6, #6 lsl r5, r5, #1 add r7, r4, r5 add r5, r6, #0 add r5, #0x9c ldrh r5, [r7, r5] ldr r1, [r4, r6] cmp r1, r5 bne _0224ABB8 add r1, r0, #0 add r1, #0x1c ldr r1, [r2, r1] lsl r1, r1, #5 lsr r5, r1, #0x1c cmp r5, #0xa bhs _0224ABE6 add r0, #0x1c add r0, r4, r0 ldr r2, [r0, r3] ldr r1, _0224ABF0 ; =0xF87FFFFF and r2, r1 add r1, r5, #1 lsl r1, r1, #0x1c lsr r1, r1, #5 orr r1, r2 str r1, [r0, r3] pop {r3, r4, r5, r6, r7, pc} _0224ABB8: add r0, #0x1c add r2, r4, r0 ldr r1, [r2, r3] ldr r0, _0224ABF0 ; =0xF87FFFFF and r0, r1 str r0, [r2, r3] ldr r0, [r4, #0x64] ldr r1, [r4, r6] lsl r0, r0, #1 add r0, r4, r0 add r6, #0x9c strh r1, [r0, r6] pop {r3, r4, r5, r6, r7, pc} _0224ABD2: ldr r0, _0224ABF4 ; =0x00002DCC ldr r1, [r4, #0x64] add r3, r4, r0 mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] ldr r0, _0224ABF0 ; =0xF87FFFFF and r0, r1 str r0, [r3, r2] _0224ABE6: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224ABE8: .word 0x00002DB0 _0224ABEC: .word 0x0000213C _0224ABF0: .word 0xF87FFFFF _0224ABF4: .word 0x00002DCC thumb_func_start MOD11_0224ABF8 MOD11_0224ABF8: ; 0x0224ABF8 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r1, [r4, #0x64] add r0, r4, #0 bl MOD11_02249D90 cmp r0, #0x68 bne _0224AC84 ldr r5, _0224AC9C ; =0x0000216C ldr r0, _0224ACA0 ; =0x801FDA49 ldr r1, [r4, r5] tst r0, r1 beq _0224AC98 ldr r2, [r4, #0x64] mov r0, #0xc1 lsl r0, r0, #6 lsl r1, r2, #1 ldr r3, [r4, r0] add r1, r4, r1 add r0, #0x9c ldrh r0, [r1, r0] cmp r3, r0 bne _0224AC98 mov r0, #0xc0 add r1, r2, #0 mul r1, r0 ldr r3, _0224ACA4 ; =0x00002DCC add r6, r4, r1 ldr r0, [r6, r3] lsl r0, r0, #5 lsr r0, r0, #0x1c beq _0224AC98 mov r7, #0x1c mul r7, r2 mov r2, #0xb5 add r7, r4, r7 lsl r2, r2, #2 ldr r7, [r7, r2] lsl r7, r7, #0x17 lsr r7, r7, #0x1d bne _0224AC98 add r7, r3, #0 sub r7, #0x1c ldr r6, [r6, r7] mov r7, #0xc0 lsl r7, r7, #4 tst r7, r6 bne _0224AC98 mov r7, #0x70 tst r7, r6 bne _0224AC98 sub r5, #0x30 ldr r5, [r4, r5] sub r2, #0xd4 tst r2, r5 bne _0224AC98 mov r2, #1 lsl r2, r2, #0xc tst r2, r6 bne _0224AC98 add r2, r4, r3 sub r0, r0, #1 lsl r0, r0, #0x1c ldr r4, [r2, r1] ldr r3, _0224ACA8 ; =0xF87FFFFF lsr r0, r0, #5 and r3, r4 orr r0, r3 str r0, [r2, r1] pop {r3, r4, r5, r6, r7, pc} _0224AC84: ldr r0, _0224ACA4 ; =0x00002DCC ldr r1, [r4, #0x64] add r3, r4, r0 mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] ldr r0, _0224ACA8 ; =0xF87FFFFF and r0, r1 str r0, [r3, r2] _0224AC98: pop {r3, r4, r5, r6, r7, pc} nop _0224AC9C: .word 0x0000216C _0224ACA0: .word 0x801FDA49 _0224ACA4: .word 0x00002DCC _0224ACA8: .word 0xF87FFFFF thumb_func_start MOD11_0224ACAC MOD11_0224ACAC: ; 0x0224ACAC push {r4, r5, r6, lr} add r5, r0, #0 cmp r3, #1 bne _0224ACBE sub r0, r2, #2 cmp r0, #1 bhi _0224ACBE mov r0, #1 b _0224ACC0 _0224ACBE: mov r0, #0 _0224ACC0: cmp r0, #1 mov r0, #0xc0 add r4, r1, #0 mul r4, r0 ldr r2, _0224ACFC ; =0x00002D8C add r1, r5, r4 ldr r0, [r1, r2] add r2, r2, #4 ldr r1, [r1, r2] lsl r0, r0, #0x10 lsl r1, r1, #0x10 lsr r0, r0, #0x10 lsr r1, r1, #0x10 mov r2, #0x30 mov r6, #0 bl FUN_02079A54 ldr r1, _0224AD00 ; =0x00002DAC add r2, r5, r4 ldr r1, [r2, r1] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bne _0224ACF6 cmp r0, #4 beq _0224ACF8 cmp r0, #3 beq _0224ACF8 _0224ACF6: mov r6, #0xb _0224ACF8: add r0, r6, #0 pop {r4, r5, r6, pc} .align 2, 0 _0224ACFC: .word 0x00002D8C _0224AD00: .word 0x00002DAC thumb_func_start MOD11_0224AD04 MOD11_0224AD04: ; 0x0224AD04 push {r3, r4} mov r3, #0xc0 add r4, r1, #0 mul r4, r3 add r1, r0, r4 ldr r0, _0224AD34 ; =0x00002DB0 mov r2, #1 ldr r0, [r1, r0] lsl r1, r2, #0x16 tst r1, r0 bne _0224AD2C lsl r1, r3, #4 tst r1, r0 bne _0224AD2C mov r1, #0x70 tst r1, r0 bne _0224AD2C lsl r1, r2, #0xc tst r0, r1 beq _0224AD2E _0224AD2C: mov r2, #0 _0224AD2E: add r0, r2, #0 pop {r3, r4} bx lr .align 2, 0 _0224AD34: .word 0x00002DB0 thumb_func_start MOD11_0224AD38 MOD11_0224AD38: ; 0x0224AD38 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 mov r1, #0 add r6, r2, #0 bl MOD11_022301D4 str r0, [sp, #0xc] add r0, r5, #0 bl MOD11_022302B0 str r0, [sp, #8] add r0, r5, #0 bl MOD11_02230294 add r7, r0, #0 add r0, r5, #0 bl MOD11_0222FF74 mov r1, #2 lsl r1, r1, #8 tst r0, r1 beq _0224AD76 add r0, r6, #0 mov r1, #0x9a mov r2, #0 bl FUN_020671BC add r2, r0, #0 b _0224AD7A _0224AD76: sub r1, #0xd8 ldr r2, [r4, r1] _0224AD7A: str r7, [sp] mov r0, #5 str r0, [sp, #4] ldr r1, [sp, #0xc] ldr r3, [sp, #8] add r0, r6, #0 bl FUN_0206A014 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224AD90 MOD11_0224AD90: ; 0x0224AD90 lsl r1, r1, #8 add r1, r0, r1 mov r0, #0x23 lsl r0, r0, #8 ldrb r0, [r1, r0] bx lr thumb_func_start MOD11_0224AD9C MOD11_0224AD9C: ; 0x0224AD9C mov r3, #0x1c mul r3, r1 add r1, r0, r3 mov r0, #0xba lsl r0, r0, #2 ldr r1, [r1, r0] mov r0, #8 mov r2, #0 tst r0, r1 beq _0224ADB2 mov r2, #1 _0224ADB2: add r0, r2, #0 bx lr .align 2, 0 thumb_func_start MOD11_0224ADB8 MOD11_0224ADB8: ; 0x0224ADB8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 mov r1, #0 bl MOD11_022301D4 add r4, r0, #0 bl FUN_020239BC add r6, r0, #0 add r0, r4, #0 bl FUN_020239CC add r7, r0, #0 add r0, r4, #0 bl FUN_0202398C ldr r2, [r5, #0x64] mov r1, #0xc0 add r4, r2, #0 mul r4, r1 ldr r1, _0224AE10 ; =0x00002DB4 add r3, r5, r4 ldr r2, [r3, r1] cmp r6, r2 bne _0224AE0C add r2, r1, #0 add r2, #0xa ldrb r2, [r3, r2] lsl r2, r2, #0x18 lsr r2, r2, #0x1c cmp r7, r2 bne _0224AE0C sub r1, #0x20 add r1, r5, r1 add r1, r1, r4 mov r2, #7 bl StringNotEqualN cmp r0, #0 bne _0224AE0C mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0224AE0C: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224AE10: .word 0x00002DB4 thumb_func_start MOD11_0224AE14 MOD11_0224AE14: ; 0x0224AE14 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r1, #0 mov r1, #0 bl MOD11_022301D4 add r4, r0, #0 bl FUN_020239BC add r6, r0, #0 add r0, r4, #0 bl FUN_020239CC add r7, r0, #0 add r0, r4, #0 bl FUN_0202398C add r4, r0, #0 add r0, r5, #0 mov r1, #0x8f add r2, sp, #0 bl FUN_020671BC add r0, r5, #0 mov r1, #7 mov r2, #0 bl FUN_020671BC cmp r6, r0 bne _0224AE72 add r0, r5, #0 mov r1, #0x9c mov r2, #0 bl FUN_020671BC cmp r7, r0 bne _0224AE72 add r0, r4, #0 add r1, sp, #0 mov r2, #7 bl StringNotEqualN cmp r0, #0 bne _0224AE72 add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0224AE72: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0224AE78 MOD11_0224AE78: ; 0x0224AE78 push {r3, r4, r5, r6, r7, lr} sub sp, #8 mov r4, #0 add r7, r0, #0 add r5, r1, #0 str r4, [sp, #4] bl MOD11_0222FF84 cmp r0, #0 bgt _0224AE8E b _0224B232 _0224AE8E: ldr r0, _0224B1B8 ; =0x00002D66 add r6, r5, r0 _0224AE92: ldr r0, _0224B1BC ; =0x000021EC add r1, r5, r4 ldrb r1, [r1, r0] mov r0, #0x46 lsl r0, r0, #2 str r1, [r5, r0] ldr r3, [r5, r0] mov r0, #0xc0 mul r0, r3 add r2, r5, r0 mov r0, #0xb5 lsl r0, r0, #6 ldrh r1, [r2, r0] ldr r0, _0224B1C0 ; =0x0000015F cmp r1, r0 bne _0224AEC6 ldr r0, _0224B1C4 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _0224AEC6 add r0, r5, #0 add r1, r3, #0 bl MOD11_02246D1C cmp r0, #0x3b beq _0224AEC8 _0224AEC6: b _0224B096 _0224AEC8: mov r0, #0xd str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224AEF0 mov r0, #0x4c str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 beq _0224AEF2 _0224AEF0: b _0224B04A _0224AEF2: mov r0, #6 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #0xf3 tst r1, r0 bne _0224AF4A mov r1, #0x46 lsl r1, r1, #2 ldr r2, [r5, r1] mov r1, #0xc0 mul r1, r2 ldr r2, _0224B1C8 ; =0x00002D64 add r1, r5, r1 ldrb r2, [r1, r2] cmp r2, #0 beq _0224AF4A ldr r2, _0224B1CC ; =0x00002D65 ldrb r2, [r1, r2] cmp r2, #0 beq _0224AF4A ldr r3, _0224B1C8 ; =0x00002D64 mov r2, #0 mov r0, #0x46 strb r2, [r1, r3] lsl r0, r0, #2 ldr r4, [r5, r0] mov r1, #0xc0 add r6, r4, #0 mul r6, r1 add r6, r5, r6 add r4, r3, #1 strb r2, [r6, r4] add r2, r3, #2 ldr r0, [r5, r0] add r2, r5, r2 add r3, r0, #0 mul r3, r1 ldrb r1, [r2, r3] mov r0, #0x1f bic r1, r0 mov r0, #1 strb r1, [r2, r3] str r0, [sp, #4] b _0224B232 _0224AF4A: mov r1, #0x30 tst r1, r0 beq _0224AF9E mov r1, #0x46 lsl r1, r1, #2 ldr r2, [r5, r1] mov r1, #0xc0 mul r1, r2 ldr r2, _0224B1C8 ; =0x00002D64 add r1, r5, r1 ldrb r2, [r1, r2] cmp r2, #0xa beq _0224AF9E ldr r2, _0224B1CC ; =0x00002D65 ldrb r2, [r1, r2] cmp r2, #0xa beq _0224AF9E ldr r3, _0224B1C8 ; =0x00002D64 mov r2, #0xa mov r0, #0x46 strb r2, [r1, r3] lsl r0, r0, #2 ldr r4, [r5, r0] mov r1, #0xc0 add r6, r4, #0 mul r6, r1 add r6, r5, r6 add r4, r3, #1 strb r2, [r6, r4] add r2, r3, #2 ldr r0, [r5, r0] add r2, r5, r2 add r3, r0, #0 mul r3, r1 ldrb r1, [r2, r3] mov r0, #0x1f bic r1, r0 mov r0, #1 str r0, [sp, #4] orr r0, r1 strb r0, [r2, r3] b _0224B232 _0224AF9E: mov r1, #3 tst r1, r0 beq _0224AFF4 mov r1, #0x46 lsl r1, r1, #2 ldr r2, [r5, r1] mov r1, #0xc0 mul r1, r2 ldr r2, _0224B1C8 ; =0x00002D64 add r1, r5, r1 ldrb r2, [r1, r2] cmp r2, #0xb beq _0224AFF4 ldr r2, _0224B1CC ; =0x00002D65 ldrb r2, [r1, r2] cmp r2, #0xb beq _0224AFF4 ldr r3, _0224B1C8 ; =0x00002D64 mov r2, #0xb mov r0, #0x46 strb r2, [r1, r3] lsl r0, r0, #2 ldr r4, [r5, r0] mov r1, #0xc0 add r6, r4, #0 mul r6, r1 add r6, r5, r6 add r4, r3, #1 strb r2, [r6, r4] add r2, r3, #2 ldr r0, [r5, r0] add r2, r5, r2 add r3, r0, #0 mul r3, r1 ldrb r1, [r2, r3] mov r0, #0x1f bic r1, r0 mov r0, #2 orr r0, r1 strb r0, [r2, r3] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224AFF4: mov r1, #0xc0 tst r0, r1 beq _0224B096 add r0, r1, #0 add r0, #0x58 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 ldr r1, _0224B1C8 ; =0x00002D64 add r0, r5, r0 ldrb r1, [r0, r1] cmp r1, #0xf beq _0224B096 ldr r1, _0224B1CC ; =0x00002D65 ldrb r1, [r0, r1] cmp r1, #0xf beq _0224B096 ldr r3, _0224B1C8 ; =0x00002D64 mov r2, #0xf strb r2, [r0, r3] mov r0, #0x46 lsl r0, r0, #2 ldr r4, [r5, r0] mov r1, #0xc0 add r6, r4, #0 mul r6, r1 add r6, r5, r6 add r4, r3, #1 strb r2, [r6, r4] add r2, r3, #2 ldr r0, [r5, r0] add r2, r5, r2 add r3, r0, #0 mul r3, r1 ldrb r1, [r2, r3] mov r0, #0x1f bic r1, r0 mov r0, #3 orr r0, r1 strb r0, [r2, r3] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B04A: mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 ldr r1, _0224B1C8 ; =0x00002D64 add r0, r5, r0 ldrb r1, [r0, r1] cmp r1, #0 beq _0224B096 ldr r1, _0224B1CC ; =0x00002D65 ldrb r1, [r0, r1] cmp r1, #0 beq _0224B096 ldr r3, _0224B1C8 ; =0x00002D64 mov r2, #0 strb r2, [r0, r3] mov r0, #0x46 lsl r0, r0, #2 ldr r4, [r5, r0] mov r1, #0xc0 add r6, r4, #0 mul r6, r1 add r6, r5, r6 add r4, r3, #1 strb r2, [r6, r4] add r2, r3, #2 ldr r0, [r5, r0] add r2, r5, r2 add r3, r0, #0 mul r3, r1 ldrb r1, [r2, r3] mov r0, #0x1f bic r1, r0 mov r0, #1 strb r1, [r2, r3] str r0, [sp, #4] b _0224B232 _0224B096: mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 mov r1, #0xb5 add r0, r5, r0 lsl r1, r1, #6 ldrh r2, [r0, r1] ldr r1, _0224B1D0 ; =0x000001A5 cmp r2, r1 bne _0224B1A2 ldr r1, _0224B1C4 ; =0x00002D8C ldr r0, [r0, r1] cmp r0, #0 beq _0224B1A2 mov r0, #0xd str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224B182 mov r0, #0x4c str r0, [sp] add r0, r7, #0 add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224B182 mov r0, #6 lsl r0, r0, #6 ldr r2, [r5, r0] mov r0, #0xf3 tst r0, r2 bne _0224B10C mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0xc0 add r3, r0, #0 mul r3, r1 ldrb r0, [r6, r3] lsl r1, r0, #0x1b lsr r1, r1, #0x1b cmp r1, #1 bne _0224B10C mov r1, #0x1f bic r0, r1 strb r0, [r6, r3] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B10C: mov r0, #0x30 tst r0, r2 beq _0224B134 mov r0, #0x46 lsl r0, r0, #2 _0224B116: ldr r0, [r5, r0] mov r1, #0xc0 add r3, r0, #0 mul r3, r1 ldrb r0, [r6, r3] lsl r1, r0, #0x1b lsr r1, r1, #0x1b bne _0224B134 mov r1, #0x1f bic r0, r1 mov r1, #1 orr r0, r1 str r1, [sp, #4] strb r0, [r6, r3] b _0224B232 _0224B134: mov r0, #3 tst r0, r2 beq _0224B15C mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0xc0 add r3, r0, #0 mul r3, r1 ldrb r0, [r6, r3] lsl r1, r0, #0x1b lsr r1, r1, #0x1b cmp r1, #1 bne _0224B15C mov r1, #0x1f bic r0, r1 strb r0, [r6, r3] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B15C: mov r0, #0xc0 tst r0, r2 beq _0224B1A2 mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 ldrb r2, [r6, r0] lsl r1, r2, #0x1b lsr r1, r1, #0x1b cmp r1, #1 bne _0224B1A2 mov r1, #0x1f bic r2, r1 strb r2, [r6, r0] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B182: mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 ldrb r2, [r6, r0] lsl r1, r2, #0x1b lsr r1, r1, #0x1b cmp r1, #1 bne _0224B1A2 mov r1, #0x1f bic r2, r1 strb r2, [r6, r0] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B1A2: mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r5, r0] mov r0, #0xc0 mul r0, r1 mov r1, #0xb5 add r0, r5, r0 lsl r1, r1, #6 ldrh r2, [r0, r1] ldr r1, _0224B1D4 ; =0x000001ED b _0224B1D8 .align 2, 0 _0224B1B8: .word 0x00002D66 _0224B1BC: .word 0x000021EC _0224B1C0: .word 0x0000015F _0224B1C4: .word 0x00002D8C _0224B1C8: .word 0x00002D64 _0224B1CC: .word 0x00002D65 _0224B1D0: .word 0x000001A5 _0224B1D4: .word 0x000001ED _0224B1D8: cmp r2, r1 bne _0224B224 ldr r1, _0224B238 ; =0x00002D8C ldr r1, [r0, r1] cmp r1, #0 beq _0224B224 ldr r1, _0224B23C ; =0x00002DB8 mov r2, #5 ldrh r0, [r0, r1] mov r1, #1 bl FUN_0206E7B8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02069F24 mov r1, #0x46 lsl r1, r1, #2 ldr r1, [r5, r1] mov r2, #0xc0 add r3, r1, #0 mul r3, r2 ldrb r1, [r6, r3] lsl r2, r1, #0x1b lsr r2, r2, #0x1b cmp r0, r2 beq _0224B224 mov r2, #0x1f lsl r0, r0, #0x18 bic r1, r2 lsr r2, r0, #0x18 mov r0, #0x1f and r0, r2 orr r0, r1 strb r0, [r6, r3] mov r0, #1 str r0, [sp, #4] b _0224B232 _0224B224: add r0, r7, #0 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 bge _0224B232 b _0224AE92 _0224B232: ldr r0, [sp, #4] add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224B238: .word 0x00002D8C _0224B23C: .word 0x00002DB8 thumb_func_start MOD11_0224B240 MOD11_0224B240: ; 0x0224B240 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp, #4] str r1, [sp] mov r7, #0 bl MOD11_0222FF84 cmp r0, #0 ble _0224B282 ldr r5, [sp] ldr r4, _0224B288 ; =0x0000312C _0224B256: mov r1, #0 _0224B258: add r0, r5, r1 strb r1, [r0, r4] add r1, r1, #1 cmp r1, #6 blt _0224B258 ldr r1, [sp] ldr r0, [sp, #4] add r3, r1, #0 add r6, r3, r7 ldr r3, _0224B28C ; =0x0000219C add r2, r7, #0 ldrb r3, [r6, r3] bl MOD11_0224B290 ldr r0, [sp, #4] add r5, r5, #6 add r7, r7, #1 bl MOD11_0222FF84 cmp r7, r0 blt _0224B256 _0224B282: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0224B288: .word 0x0000312C _0224B28C: .word 0x0000219C thumb_func_start MOD11_0224B290 MOD11_0224B290: ; 0x0224B290 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r1, #0 add r5, r2, #0 add r4, r3, #0 bl MOD11_0222FF74 mov r1, #2 tst r1, r0 beq _0224B2AA mov r1, #0x18 tst r1, r0 beq _0224B2BE _0224B2AA: mov r1, #0x10 tst r0, r1 beq _0224B2E2 add r0, r7, #0 add r1, r5, #0 bl MOD11_02230260 mov r1, #1 tst r0, r1 bne _0224B2E2 _0224B2BE: add r0, r7, #0 add r1, r5, #0 bl MOD11_02230260 cmp r0, #4 beq _0224B2D6 add r0, r7, #0 add r1, r5, #0 bl MOD11_02230260 cmp r0, #5 bne _0224B2DA _0224B2D6: mov r1, #1 b _0224B2DC _0224B2DA: mov r1, #0 _0224B2DC: mov r0, #1 and r5, r0 b _0224B2E4 _0224B2E2: mov r1, #0 _0224B2E4: mov r2, #6 mul r2, r5 ldr r3, _0224B30C ; =0x0000312C mov r0, #0 add r7, r6, r2 _0224B2EE: ldrb r5, [r7, r3] cmp r4, r5 beq _0224B2FC add r0, r0, #1 add r7, r7, #1 cmp r0, #6 blt _0224B2EE _0224B2FC: ldr r3, _0224B30C ; =0x0000312C add r3, r6, r3 add r4, r3, r2 ldrb r3, [r4, r1] ldrb r2, [r4, r0] strb r2, [r4, r1] strb r3, [r4, r0] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224B30C: .word 0x0000312C thumb_func_start MOD11_0224B310 MOD11_0224B310: ; 0x0224B310 push {r4, r5, r6, r7, lr} sub sp, #0x8c str r0, [sp, #4] ldr r0, [sp, #0xa0] add r5, r1, #0 str r0, [sp, #0xa0] ldr r0, [sp, #0xb4] str r2, [sp, #8] str r0, [sp, #0xb4] mov r0, #0 str r0, [sp, #0x84] ldr r0, [sp, #0xb4] str r3, [sp, #0xc] cmp r0, #1 beq _0224B334 bhi _0224B334 bl ErrorHandling _0224B334: add r0, sp, #0x90 ldrb r0, [r0, #0x1c] mov r2, #1 mov r3, #0 str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r5, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x7c] add r0, sp, #0xb0 ldrb r0, [r0] mov r2, #2 mov r3, #0 str r0, [sp, #0x20] ldr r1, [sp, #0x20] add r0, r5, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x78] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #4 mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #5 mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x13 mov r3, #0 bl MOD11_02243420 sub r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x70] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x14 mov r3, #0 bl MOD11_02243420 sub r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x6c] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x16 mov r3, #0 bl MOD11_02243420 sub r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x68] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x17 mov r3, #0 bl MOD11_02243420 sub r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x64] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x2b mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r2, #0 str r0, [sp, #0x60] ldr r1, [sp, #0x24] add r0, r5, #0 add r3, r2, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #0 str r0, [sp, #0x58] ldr r1, [sp, #0x20] add r0, r5, #0 add r3, r2, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x54] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x2f mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x50] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x2f mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x30 mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4c] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x30 mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 str r0, [sp, #0x48] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x34 mov r3, #0 bl MOD11_02243420 str r0, [sp, #0x44] ldr r1, [sp, #0x24] add r0, r5, #0 bl MOD11_02246D1C add r7, r0, #0 ldr r1, [sp, #0x20] add r0, r5, #0 bl MOD11_02246D1C ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x1d mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x40] ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x1d mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x3c] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x1b mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x38] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x20] add r0, r5, #0 mov r2, #0x1c mov r3, #0 bl MOD11_02243420 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x34] ldr r1, [sp, #0x24] add r0, r5, #0 bl MOD11_02249B4C add r4, r0, #0 add r0, r5, #0 add r1, r4, #0 mov r2, #1 bl MOD11_0224C12C str r0, [sp, #0x30] add r0, r5, #0 add r1, r4, #0 mov r2, #2 bl MOD11_0224C12C str r0, [sp, #0x2c] ldr r1, [sp, #0x20] add r0, r5, #0 bl MOD11_02249B4C add r4, r0, #0 add r0, r5, #0 add r1, r4, #0 mov r2, #1 bl MOD11_0224C12C str r0, [sp, #0x28] add r0, r5, #0 add r1, r4, #0 mov r2, #2 bl MOD11_0224C12C ldr r0, [sp, #4] bl MOD11_0222FF74 str r0, [sp, #0x5c] add r0, sp, #0x90 ldrh r4, [r0, #0x14] cmp r4, #0 bne _0224B534 ldr r0, [sp, #8] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224B754 ; =0x000003E1 ldrb r4, [r1, r0] _0224B534: cmp r7, #0x60 bne _0224B53C mov r6, #0 b _0224B558 _0224B53C: add r0, sp, #0x90 ldrb r1, [r0, #0x18] cmp r1, #0 bne _0224B550 ldr r0, [sp, #8] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224B758 ; =0x000003E2 ldrb r6, [r1, r0] b _0224B558 _0224B550: mov r0, #0x3f and r0, r1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _0224B558: ldr r0, _0224B75C ; =0x00002158 ldr r0, [r5, r0] cmp r0, #0xa bge _0224B564 bl ErrorHandling _0224B564: ldr r0, _0224B75C ; =0x00002158 mov r1, #0xa ldr r0, [r5, r0] mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, sp, #0x90 ldrb r0, [r0, #0x1c] mov r1, #0xc0 mul r1, r0 add r2, r5, r1 mov r1, #0xb7 lsl r1, r1, #6 ldr r2, [r2, r1] mov r1, #2 lsl r1, r1, #8 tst r1, r2 beq _0224B594 cmp r6, #0xd bne _0224B594 lsl r1, r4, #0x11 lsr r4, r1, #0x10 _0224B594: lsl r0, r0, #6 add r1, r5, r0 mov r0, #0x75 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _0224B5B2 mov r0, #0xf mul r0, r4 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B5B2: cmp r7, #0x65 bne _0224B5CE ldr r0, [sp, #8] cmp r0, #0xa5 beq _0224B5CE cmp r4, #0x3c bhi _0224B5CE mov r0, #0xf mul r0, r4 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B5CE: ldr r0, [sp, #8] lsl r0, r0, #4 str r0, [sp, #0x18] add r1, r5, r0 mov r0, #0x3e lsl r0, r0, #4 ldrb r0, [r1, r0] cmp r7, #0x25 str r0, [sp, #0x80] beq _0224B5E6 cmp r7, #0x4a bne _0224B5EE _0224B5E6: ldr r0, [sp, #0x7c] lsl r0, r0, #0x11 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B5EE: cmp r7, #0x70 bne _0224B61C ldr r0, [sp, #4] add r1, r5, #0 mov r2, #3 mov r3, #0 bl MOD11_0224C474 str r0, [sp, #0x88] ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x59 mov r3, #0 bl MOD11_02243420 ldr r1, [sp, #0x88] sub r0, r1, r0 cmp r0, #5 bge _0224B61C ldr r0, [sp, #0x7c] lsl r0, r0, #0xf lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B61C: ldr r3, _0224B760 ; =0x0225E336 mov r2, #0 _0224B620: ldrb r1, [r3] ldr r0, [sp, #0x30] cmp r0, r1 bne _0224B640 ldrb r0, [r3, #1] cmp r6, r0 bne _0224B640 ldr r0, [sp, #0x2c] mov r1, #0x64 add r0, #0x64 mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0224B648 _0224B640: add r2, r2, #1 add r3, r3, #2 cmp r2, #0x21 blo _0224B620 _0224B648: ldr r0, [sp, #0x30] cmp r0, #0x36 bne _0224B660 ldr r1, [sp, #0x7c] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B660: ldr r0, [sp, #0x30] cmp r0, #0x7c bne _0224B678 ldr r1, [sp, #0x74] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224B678: ldr r0, [sp, #0x30] cmp r0, #0x3b bne _0224B6A6 ldr r0, [sp, #0x5c] mov r1, #0x80 tst r0, r1 bne _0224B6A6 ldr r1, _0224B764 ; =0x0000FE84 ldr r0, [sp, #0x58] add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _0224B6A6 ldr r1, [sp, #0x74] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224B6A6: ldr r0, [sp, #0x28] cmp r0, #0x3b bne _0224B6D4 ldr r0, [sp, #0x5c] mov r1, #0x80 tst r0, r1 bne _0224B6D4 ldr r1, _0224B764 ; =0x0000FE84 ldr r0, [sp, #0x54] add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _0224B6D4 ldr r1, [sp, #0x10] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] _0224B6D4: ldr r0, [sp, #0x30] cmp r0, #0x3c bne _0224B6EA ldr r1, _0224B768 ; =0x0000016E ldr r0, [sp, #0x58] cmp r0, r1 bne _0224B6EA ldr r0, [sp, #0x74] lsl r0, r0, #0x11 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224B6EA: ldr r0, [sp, #0x28] cmp r0, #0x3d bne _0224B700 ldr r1, _0224B768 ; =0x0000016E ldr r0, [sp, #0x54] cmp r0, r1 bne _0224B700 ldr r0, [sp, #0x10] lsl r0, r0, #0x11 lsr r0, r0, #0x10 str r0, [sp, #0x10] _0224B700: ldr r0, [sp, #0x30] cmp r0, #0x46 bne _0224B710 ldr r0, [sp, #0x58] cmp r0, #0x19 bne _0224B710 lsl r0, r4, #0x11 lsr r4, r0, #0x10 _0224B710: ldr r0, [sp, #0x28] cmp r0, #0x59 bne _0224B724 ldr r0, [sp, #0x54] cmp r0, #0x84 bne _0224B724 ldr r0, [sp, #0x78] lsl r0, r0, #0x11 lsr r0, r0, #0x10 str r0, [sp, #0x78] _0224B724: ldr r0, [sp, #0x30] cmp r0, #0x5a bne _0224B740 ldr r1, _0224B76C ; =0x0000FF98 ldr r0, [sp, #0x58] add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _0224B740 ldr r0, [sp, #0x7c] lsl r0, r0, #0x11 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B740: ldr r0, [sp, #0x30] cmp r0, #2 bne _0224B78A cmp r6, #0x10 beq _0224B74E cmp r6, #8 bne _0224B78A _0224B74E: ldr r1, _0224B770 ; =0x000001E3 b _0224B774 nop _0224B754: .word 0x000003E1 _0224B758: .word 0x000003E2 _0224B75C: .word 0x00002158 _0224B760: .word 0x0225E336 _0224B764: .word 0x0000FE84 _0224B768: .word 0x0000016E _0224B76C: .word 0x0000FF98 _0224B770: .word 0x000001E3 _0224B774: ldr r0, [sp, #0x58] cmp r0, r1 bne _0224B78A ldr r0, [sp, #0x2c] mov r1, #0x64 add r0, #0x64 mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B78A: ldr r0, [sp, #0x30] cmp r0, #3 bne _0224B7B2 cmp r6, #0x10 beq _0224B798 cmp r6, #0xb bne _0224B7B2 _0224B798: mov r1, #0x79 ldr r0, [sp, #0x58] lsl r1, r1, #2 cmp r0, r1 bne _0224B7B2 ldr r0, [sp, #0x2c] mov r1, #0x64 add r0, #0x64 mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B7B2: ldr r0, [sp, #0x30] cmp r0, #0x5d bne _0224B7CE ldr r0, [sp, #0x80] cmp r0, #0 bne _0224B7CE ldr r0, [sp, #0x2c] mov r1, #0x64 add r0, #0x64 mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B7CE: ldr r0, [sp, #0x30] cmp r0, #0x5e bne _0224B7EC ldr r0, [sp, #0x80] cmp r0, #1 bne _0224B7EC ldr r0, [sp, #0x2c] mov r1, #0x64 add r0, #0x64 str r0, [sp, #0x2c] mul r0, r4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B7EC: ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x2f bl MOD11_02246D84 cmp r0, #1 bne _0224B808 cmp r6, #0xa beq _0224B804 cmp r6, #0xf bne _0224B808 _0224B804: lsl r0, r4, #0xf lsr r4, r0, #0x10 _0224B808: cmp r7, #0x37 bne _0224B81E ldr r1, [sp, #0x7c] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B81E: cmp r7, #0x3e bne _0224B83A ldr r0, [sp, #0x48] cmp r0, #0 beq _0224B83A ldr r1, [sp, #0x7c] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224B83A: ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x3f bl MOD11_02246D84 cmp r0, #1 bne _0224B862 ldr r0, [sp, #0x44] cmp r0, #0 beq _0224B862 ldr r1, [sp, #0x78] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x78] _0224B862: cmp r7, #0x39 bne _0224B88C mov r0, #0x3a str r0, [sp] ldr r0, [sp, #4] ldr r3, [sp, #0x24] add r1, r5, #0 mov r2, #1 bl MOD11_02246870 cmp r0, #0 beq _0224B88C ldr r1, [sp, #0x74] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224B88C: cmp r7, #0x3a bne _0224B8B6 mov r0, #0x39 str r0, [sp] ldr r0, [sp, #4] ldr r3, [sp, #0x24] add r1, r5, #0 mov r2, #1 bl MOD11_02246870 cmp r0, #0 beq _0224B8B6 ldr r1, [sp, #0x74] mov r0, #0x96 mul r0, r1 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224B8B6: cmp r6, #0xd bne _0224B8CE mov r2, #1 ldr r0, [sp, #4] add r1, r5, #0 lsl r2, r2, #0x10 bl MOD11_02247238 cmp r0, #0 beq _0224B8CE lsl r0, r4, #0xf lsr r4, r0, #0x10 _0224B8CE: cmp r6, #0xa bne _0224B8E6 mov r2, #2 ldr r0, [sp, #4] add r1, r5, #0 lsl r2, r2, #0x10 bl MOD11_02247238 cmp r0, #0 beq _0224B8E6 lsl r0, r4, #0xf lsr r4, r0, #0x10 _0224B8E6: cmp r6, #0xc bne _0224B90A cmp r7, #0x41 bne _0224B90A ldr r0, [sp, #0x4c] mov r1, #3 bl _s32_div_f ldr r1, [sp, #0x50] cmp r1, r0 bgt _0224B90A mov r0, #0x96 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B90A: cmp r6, #0xa bne _0224B92E cmp r7, #0x42 bne _0224B92E ldr r0, [sp, #0x4c] mov r1, #3 bl _s32_div_f ldr r1, [sp, #0x50] cmp r1, r0 bgt _0224B92E mov r0, #0x96 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B92E: cmp r6, #0xb bne _0224B952 cmp r7, #0x43 bne _0224B952 ldr r0, [sp, #0x4c] mov r1, #3 bl _s32_div_f ldr r1, [sp, #0x50] cmp r1, r0 bgt _0224B952 mov r0, #0x96 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B952: cmp r6, #6 bne _0224B976 cmp r7, #0x44 bne _0224B976 ldr r0, [sp, #0x4c] mov r1, #3 bl _s32_div_f ldr r1, [sp, #0x50] cmp r1, r0 bgt _0224B976 mov r0, #0x96 mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B976: cmp r6, #0xa bne _0224B98E ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x55 bl MOD11_02246D84 cmp r0, #1 bne _0224B98E lsl r0, r4, #0xf lsr r4, r0, #0x10 _0224B98E: cmp r6, #0xa bne _0224B9B0 ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x57 bl MOD11_02246D84 cmp r0, #1 bne _0224B9B0 mov r0, #0x7d mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224B9B0: cmp r7, #0x56 bne _0224B9F0 ldr r0, [sp, #0x70] mov r1, #5 lsl r0, r0, #0x19 asr r0, r0, #0x18 str r0, [sp, #0x70] ldr r0, [sp, #0x70] mvn r1, r1 cmp r0, r1 bge _0224B9C8 str r1, [sp, #0x70] _0224B9C8: ldr r0, [sp, #0x70] cmp r0, #6 ble _0224B9D2 mov r0, #6 str r0, [sp, #0x70] _0224B9D2: ldr r0, [sp, #0x68] mov r1, #5 lsl r0, r0, #0x19 asr r0, r0, #0x18 str r0, [sp, #0x68] ldr r0, [sp, #0x68] mvn r1, r1 cmp r0, r1 bge _0224B9E6 str r1, [sp, #0x68] _0224B9E6: ldr r0, [sp, #0x68] cmp r0, #6 ble _0224B9F0 mov r0, #6 str r0, [sp, #0x68] _0224B9F0: ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x56 bl MOD11_02246D84 cmp r0, #1 bne _0224BA3C ldr r0, [sp, #0x6c] mov r1, #5 lsl r0, r0, #0x19 asr r0, r0, #0x18 str r0, [sp, #0x6c] ldr r0, [sp, #0x6c] mvn r1, r1 cmp r0, r1 bge _0224BA14 str r1, [sp, #0x6c] _0224BA14: ldr r0, [sp, #0x6c] cmp r0, #6 ble _0224BA1E mov r0, #6 str r0, [sp, #0x6c] _0224BA1E: ldr r0, [sp, #0x64] mov r1, #5 lsl r0, r0, #0x19 asr r0, r0, #0x18 str r0, [sp, #0x64] ldr r0, [sp, #0x64] mvn r1, r1 cmp r0, r1 bge _0224BA32 str r1, [sp, #0x64] _0224BA32: ldr r0, [sp, #0x64] cmp r0, #6 ble _0224BA3C mov r0, #6 str r0, [sp, #0x64] _0224BA3C: ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] add r0, r5, #0 mov r3, #0x6d bl MOD11_02246D84 cmp r0, #1 bne _0224BA52 mov r0, #0 str r0, [sp, #0x70] str r0, [sp, #0x68] _0224BA52: cmp r7, #0x6d bne _0224BA5C mov r0, #0 str r0, [sp, #0x6c] str r0, [sp, #0x64] _0224BA5C: ldr r0, [sp, #0x70] add r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x70] ldr r0, [sp, #0x6c] add r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x6c] ldr r0, [sp, #0x68] add r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x68] ldr r0, [sp, #0x64] add r0, r0, #6 lsl r0, r0, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x64] cmp r7, #0x4f bne _0224BAAA ldr r1, [sp, #0x40] ldr r0, [sp, #0x3c] cmp r1, r0 bne _0224BAAA add r0, r1, #0 cmp r0, #2 beq _0224BAAA ldr r0, [sp, #0x3c] cmp r0, #2 beq _0224BAAA mov r0, #0x7d mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224BAAA: cmp r7, #0x4f bne _0224BAD0 ldr r1, [sp, #0x40] ldr r0, [sp, #0x3c] cmp r1, r0 beq _0224BAD0 add r0, r1, #0 cmp r0, #2 beq _0224BAD0 ldr r0, [sp, #0x3c] cmp r0, #2 beq _0224BAD0 mov r0, #0x4b mul r0, r4 mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0224BAD0: ldr r2, _0224BDDC ; =0x0225E2BA mov r3, #0 _0224BAD4: ldrh r1, [r2] ldr r0, [sp, #8] cmp r0, r1 bne _0224BAF0 cmp r7, #0x59 bne _0224BAF0 mov r0, #0xc mul r0, r4 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0224BAF8 _0224BAF0: add r3, r3, #1 add r2, r2, #2 cmp r3, #0xf blo _0224BAD4 _0224BAF8: mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224BBCA mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224BBCA ldr r0, [sp, #0xa0] mov r1, #0x30 and r0, r1 str r0, [sp, #0x1c] beq _0224BB40 cmp r7, #0x5e bne _0224BB40 ldr r1, [sp, #0x74] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x74] _0224BB40: ldr r0, [sp, #0xa0] mov r1, #0xc tst r0, r1 beq _0224BB66 ldr r0, [sp, #0x38] cmp r0, #5 beq _0224BB54 ldr r0, [sp, #0x34] cmp r0, #5 bne _0224BB66 _0224BB54: ldr r1, [sp, #0x10] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] _0224BB66: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0224BB92 mov r0, #0x7a str r0, [sp] ldr r0, [sp, #4] ldr r3, [sp, #0x24] add r1, r5, #0 mov r2, #1 bl MOD11_02246870 cmp r0, #0 beq _0224BB92 ldr r1, [sp, #0x7c] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x7c] _0224BB92: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0224BBCA ldr r1, [sp, #0x24] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x68 beq _0224BBCA mov r0, #0x7a str r0, [sp] ldr r0, [sp, #4] ldr r3, [sp, #0x20] add r1, r5, #0 mov r2, #1 bl MOD11_02246870 cmp r0, #0 beq _0224BBCA ldr r1, [sp, #0x10] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] _0224BBCA: ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _0224BDE0 ; =0x000003DE ldrh r0, [r1, r0] str r0, [sp, #0x14] cmp r0, #7 bne _0224BBE0 ldr r0, [sp, #0x78] lsl r0, r0, #0xf lsr r0, r0, #0x10 str r0, [sp, #0x78] _0224BBE0: ldr r0, [sp, #0x80] cmp r0, #0 bne _0224BCE2 ldr r0, [sp, #0xb4] cmp r0, #1 bls _0224BC0E ldr r0, [sp, #0x70] cmp r0, #6 ble _0224BC08 lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldr r2, [sp, #0x7c] ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x84] b _0224BC24 _0224BC08: ldr r0, [sp, #0x7c] str r0, [sp, #0x84] b _0224BC24 _0224BC0E: ldr r0, [sp, #0x70] ldr r2, [sp, #0x7c] lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x84] _0224BC24: ldr r0, [sp, #0x84] add r1, r0, #0 ldr r0, [sp, #0x60] mul r1, r4 str r1, [sp, #0x84] lsl r0, r0, #1 mov r1, #5 bl _s32_div_f add r1, r0, #2 ldr r0, [sp, #0x84] mul r1, r0 ldr r0, [sp, #0xb4] str r1, [sp, #0x84] cmp r0, #1 bls _0224BC60 ldr r0, [sp, #0x6c] cmp r0, #6 bge _0224BC76 lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldr r2, [sp, #0x78] ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x78] b _0224BC76 _0224BC60: ldr r0, [sp, #0x6c] ldr r2, [sp, #0x78] lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x78] _0224BC76: ldr r0, [sp, #0x84] ldr r1, [sp, #0x78] bl _s32_div_f mov r1, #0x32 bl _s32_div_f str r0, [sp, #0x84] ldr r0, [sp, #0x48] mov r1, #0x10 tst r0, r1 beq _0224BC9C cmp r7, #0x3e beq _0224BC9C ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] _0224BC9C: ldr r0, [sp, #0xc] mov r2, #1 tst r0, r2 beq _0224BCB0 ldr r0, [sp, #0xb4] cmp r0, #1 bne _0224BCB0 ldr r0, [sp, #0x14] cmp r0, #0xba bne _0224BCB2 _0224BCB0: b _0224BDC8 _0224BCB2: ldr r0, [sp, #0x5c] mov r1, #2 tst r0, r1 beq _0224BCD6 ldr r0, [sp, #4] ldr r3, [sp, #0x20] add r1, r5, #0 bl MOD11_022467AC cmp r0, #2 bne _0224BCD6 ldr r0, [sp, #0x84] mov r1, #3 lsl r0, r0, #1 bl _s32_div_f str r0, [sp, #0x84] b _0224BDC8 _0224BCD6: ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] b _0224BDC8 _0224BCE2: cmp r0, #1 bne _0224BDC8 ldr r0, [sp, #0xb4] cmp r0, #1 bls _0224BD0E ldr r0, [sp, #0x68] cmp r0, #6 ble _0224BD08 lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldr r2, [sp, #0x74] ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x84] b _0224BD24 _0224BD08: ldr r0, [sp, #0x74] str r0, [sp, #0x84] b _0224BD24 _0224BD0E: ldr r0, [sp, #0x68] ldr r2, [sp, #0x74] lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x84] _0224BD24: ldr r0, [sp, #0x84] add r1, r0, #0 ldr r0, [sp, #0x60] mul r1, r4 str r1, [sp, #0x84] lsl r0, r0, #1 mov r1, #5 bl _s32_div_f add r1, r0, #2 ldr r0, [sp, #0x84] mul r1, r0 ldr r0, [sp, #0xb4] str r1, [sp, #0x84] cmp r0, #1 bls _0224BD60 ldr r0, [sp, #0x64] cmp r0, #6 bge _0224BD76 lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldr r2, [sp, #0x10] ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x10] b _0224BD76 _0224BD60: ldr r0, [sp, #0x64] ldr r2, [sp, #0x10] lsl r1, r0, #1 ldr r0, _0224BDE4 ; =0x0225E284 ldrb r0, [r0, r1] mul r0, r2 ldr r2, _0224BDE8 ; =0x0225E285 ldrb r1, [r2, r1] bl _s32_div_f str r0, [sp, #0x10] _0224BD76: ldr r0, [sp, #0x84] ldr r1, [sp, #0x10] bl _s32_div_f mov r1, #0x32 bl _s32_div_f str r0, [sp, #0x84] ldr r0, [sp, #0xc] mov r1, #2 tst r0, r1 beq _0224BDC8 ldr r0, [sp, #0xb4] cmp r0, #1 bne _0224BDC8 ldr r0, [sp, #0x14] cmp r0, #0xba beq _0224BDC8 ldr r0, [sp, #0x5c] tst r0, r1 beq _0224BDBE ldr r0, [sp, #4] ldr r3, [sp, #0x20] add r1, r5, #0 mov r2, #1 bl MOD11_022467AC cmp r0, #2 bne _0224BDBE ldr r0, [sp, #0x84] mov r1, #3 lsl r0, r0, #1 bl _s32_div_f str r0, [sp, #0x84] b _0224BDC8 _0224BDBE: ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] _0224BDC8: ldr r0, [sp, #0x5c] mov r1, #2 add r4, r0, #0 and r4, r1 beq _0224BE16 ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _0224BDEC ; =0x000003E6 b _0224BDF0 nop _0224BDDC: .word 0x0225E2BA _0224BDE0: .word 0x000003DE _0224BDE4: .word 0x0225E284 _0224BDE8: .word 0x0225E285 _0224BDEC: .word 0x000003E6 _0224BDF0: ldrh r0, [r1, r0] cmp r0, #4 bne _0224BE16 ldr r0, [sp, #4] ldr r3, [sp, #0x20] add r1, r5, #0 mov r2, #1 bl MOD11_022467AC cmp r0, #2 bne _0224BE16 ldr r0, [sp, #0x84] lsl r1, r0, #1 add r1, r0, r1 asr r0, r1, #1 lsr r0, r0, #0x1e add r0, r1, r0 asr r0, r0, #2 str r0, [sp, #0x84] _0224BE16: cmp r4, #0 beq _0224BE46 ldr r0, [sp, #0x18] add r1, r5, r0 ldr r0, _0224BF08 ; =0x000003E6 ldrh r0, [r1, r0] cmp r0, #8 bne _0224BE46 ldr r0, [sp, #4] ldr r3, [sp, #0x20] add r1, r5, #0 mov r2, #0 bl MOD11_022467AC cmp r0, #2 blo _0224BE46 ldr r0, [sp, #0x84] lsl r1, r0, #1 add r1, r0, r1 asr r0, r1, #1 lsr r0, r0, #0x1e add r0, r1, r0 asr r0, r0, #2 str r0, [sp, #0x84] _0224BE46: mov r0, #0xd str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224BEDE mov r0, #0x4c str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224BEDE ldr r0, [sp, #0xa0] mov r1, #3 tst r0, r1 beq _0224BE9A cmp r6, #0xa beq _0224BE80 cmp r6, #0xb beq _0224BE8C b _0224BE9A _0224BE80: ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] b _0224BE9A _0224BE8C: ldr r1, [sp, #0x84] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f str r0, [sp, #0x84] _0224BE9A: ldr r1, _0224BF0C ; =0x000080CF ldr r0, [sp, #0xa0] tst r0, r1 beq _0224BEB2 ldr r0, [sp, #8] cmp r0, #0x4c bne _0224BEB2 ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] _0224BEB2: ldr r0, [sp, #0xa0] mov r1, #0x30 tst r0, r1 beq _0224BEDE cmp r6, #0xa beq _0224BEC4 cmp r6, #0xb beq _0224BED4 b _0224BEDE _0224BEC4: ldr r1, [sp, #0x84] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f str r0, [sp, #0x84] b _0224BEDE _0224BED4: ldr r0, [sp, #0x84] lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 str r0, [sp, #0x84] _0224BEDE: ldr r1, [sp, #0x24] add r0, r5, #0 mov r2, #0x49 mov r3, #0 bl MOD11_02243420 cmp r0, #0 beq _0224BF00 cmp r6, #0xa bne _0224BF00 ldr r1, [sp, #0x84] mov r0, #0xf mul r0, r1 mov r1, #0xa bl _s32_div_f str r0, [sp, #0x84] _0224BF00: ldr r0, [sp, #0x84] add r0, r0, #2 add sp, #0x8c pop {r4, r5, r6, r7, pc} .align 2, 0 _0224BF08: .word 0x000003E6 _0224BF0C: .word 0x000080CF thumb_func_start MOD11_0224BF10 MOD11_0224BF10: ; 0x0224BF10 push {r4, lr} add r4, r1, #0 beq _0224BF36 bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1c sub r1, r1, r2 mov r0, #0x1c ror r1, r0 add r0, r2, r1 mov r1, #0x64 sub r0, r1, r0 mul r0, r4 bl _s32_div_f add r4, r0, #0 bne _0224BF36 mov r4, #1 _0224BF36: add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0224BF3C MOD11_0224BF3C: ; 0x0224BF3C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r0, #0 mov r7, #1 str r1, [sp] str r2, [sp, #4] str r3, [sp, #8] bl MOD11_02249B4C add r1, r0, #0 add r0, r4, #0 add r2, r7, #0 bl MOD11_0224C12C add r3, r0, #0 ldr r1, [sp] mov r0, #0xc0 mul r0, r1 mov r1, #0xb5 lsl r1, r1, #6 add r2, r4, r0 add r0, r1, #0 add r0, #0x70 ldr r0, [r2, r0] ldr r6, [sp, #4] str r0, [sp, #0x10] mov r0, #0xc0 mul r0, r6 add r6, r4, r0 add r0, r1, #0 add r0, #0x80 ldr r0, [r6, r0] ldrh r5, [r2, r1] add r1, #0x27 str r0, [sp, #0xc] ldrb r0, [r2, r1] cmp r0, #0x69 bne _0224BF8C add r2, r7, #0 b _0224BF8E _0224BF8C: mov r2, #0 _0224BF8E: cmp r3, #0x42 bne _0224BF96 mov r6, #1 b _0224BF98 _0224BF96: mov r6, #0 _0224BF98: mov r1, #1 ldr r0, [sp, #0x10] lsl r1, r1, #0x14 tst r0, r1 beq _0224BFA6 mov r0, #1 b _0224BFA8 _0224BFA6: mov r0, #0 _0224BFA8: cmp r3, #0x58 bne _0224BFB4 cmp r5, #0x71 bne _0224BFB4 mov r1, #1 b _0224BFB6 _0224BFB4: mov r1, #0 _0224BFB6: cmp r3, #0x5b bne _0224BFC2 cmp r5, #0x53 bne _0224BFC2 mov r3, #1 b _0224BFC4 _0224BFC2: mov r3, #0 _0224BFC4: lsl r0, r0, #1 add r5, r6, r0 ldr r0, [sp, #8] add r0, r0, r5 add r2, r2, r0 lsl r0, r1, #1 add r1, r2, r0 lsl r0, r3, #1 add r0, r1, r0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #4 bls _0224BFE0 mov r5, #4 _0224BFE0: bl FUN_0201B9EC ldr r1, _0224C040 ; =0x0225E244 ldrb r1, [r1, r5] bl _s32_div_f cmp r1, #0 bne _0224C026 ldr r1, [sp] ldr r2, [sp, #4] add r0, r4, #0 mov r3, #4 bl MOD11_02246D84 cmp r0, #0 bne _0224C026 ldr r1, [sp] ldr r2, [sp, #4] add r0, r4, #0 mov r3, #0x4b bl MOD11_02246D84 cmp r0, #0 bne _0224C026 mov r0, #7 ldr r1, [sp, #0x28] lsl r0, r0, #0xc tst r0, r1 bne _0224C026 mov r1, #2 ldr r0, [sp, #0xc] lsl r1, r1, #0xe tst r0, r1 bne _0224C026 mov r7, #2 _0224C026: cmp r7, #2 bne _0224C038 ldr r1, [sp] add r0, r4, #0 bl MOD11_02246D1C cmp r0, #0x61 bne _0224C038 mov r7, #3 _0224C038: add r0, r7, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0224C040: .word 0x0225E244 thumb_func_start MOD11_0224C044 MOD11_0224C044: ; 0x0224C044 push {r3, r4} ldr r4, _0224C074 ; =0x0225E300 ldr r1, _0224C078 ; =0x0000FFFE mov r3, #0 _0224C04C: ldrh r2, [r4] cmp r0, r2 beq _0224C05C add r4, r4, #2 ldrh r2, [r4] add r3, r3, #1 cmp r2, r1 bne _0224C04C _0224C05C: ldr r0, _0224C074 ; =0x0225E300 lsl r1, r3, #1 ldrh r1, [r0, r1] ldr r0, _0224C078 ; =0x0000FFFE cmp r1, r0 bne _0224C06E mov r0, #1 pop {r3, r4} bx lr _0224C06E: mov r0, #0 pop {r3, r4} bx lr .align 2, 0 _0224C074: .word 0x0225E300 _0224C078: .word 0x0000FFFE thumb_func_start MOD11_0224C07C MOD11_0224C07C: ; 0x0224C07C push {r3, r4} ldr r4, _0224C0AC ; =0x0225E300 ldr r1, _0224C0B0 ; =0x0000FFFF mov r3, #0 _0224C084: ldrh r2, [r4] cmp r0, r2 beq _0224C094 add r4, r4, #2 ldrh r2, [r4] add r3, r3, #1 cmp r2, r1 bne _0224C084 _0224C094: ldr r0, _0224C0AC ; =0x0225E300 lsl r1, r3, #1 ldrh r1, [r0, r1] ldr r0, _0224C0B0 ; =0x0000FFFF cmp r1, r0 bne _0224C0A6 mov r0, #1 pop {r3, r4} bx lr _0224C0A6: mov r0, #0 pop {r3, r4} bx lr .align 2, 0 _0224C0AC: .word 0x0225E300 _0224C0B0: .word 0x0000FFFF thumb_func_start MOD11_0224C0B4 MOD11_0224C0B4: ; 0x0224C0B4 push {r4, r5} lsl r1, r1, #4 add r4, r0, r1 ldr r1, _0224C0E8 ; =0x000003DE ldr r3, _0224C0EC ; =0x0225E254 ldrh r1, [r4, r1] ldr r4, _0224C0E8 ; =0x000003DE mov r2, #0 _0224C0C4: ldrh r5, [r3] lsl r5, r5, #4 add r5, r0, r5 ldrh r5, [r5, r4] cmp r1, r5 beq _0224C0D8 add r2, r2, #1 add r3, r3, #2 cmp r2, #6 blo _0224C0C4 _0224C0D8: cmp r2, #6 bne _0224C0E2 mov r0, #1 pop {r4, r5} bx lr _0224C0E2: mov r0, #0 pop {r4, r5} bx lr .align 2, 0 _0224C0E8: .word 0x000003DE _0224C0EC: .word 0x0225E254 thumb_func_start MOD11_0224C0F0 MOD11_0224C0F0: ; 0x0224C0F0 push {r4, r5} lsl r1, r1, #4 add r4, r0, r1 ldr r1, _0224C124 ; =0x000003DE ldr r3, _0224C128 ; =0x0225E26C ldrh r1, [r4, r1] ldr r4, _0224C124 ; =0x000003DE mov r2, #0 _0224C100: ldrh r5, [r3] lsl r5, r5, #4 add r5, r0, r5 ldrh r5, [r5, r4] cmp r1, r5 beq _0224C114 add r2, r2, #1 add r3, r3, #2 cmp r2, #6 blo _0224C100 _0224C114: cmp r2, #6 bne _0224C11E mov r0, #1 pop {r4, r5} bx lr _0224C11E: mov r0, #0 pop {r4, r5} bx lr .align 2, 0 _0224C124: .word 0x000003DE _0224C128: .word 0x0225E26C thumb_func_start MOD11_0224C12C MOD11_0224C12C: ; 0x0224C12C push {r3, r4, r5, lr} add r5, r0, #0 add r0, r1, #0 mov r1, #0 add r4, r2, #0 bl FUN_0206E640 add r1, r0, #0 ldr r0, _0224C14C ; =0x00002120 ldr r0, [r5, r0] bl FUN_0206EB78 add r1, r4, #0 bl FUN_0206E7DC pop {r3, r4, r5, pc} .align 2, 0 _0224C14C: .word 0x00002120 thumb_func_start MOD11_0224C150 MOD11_0224C150: ; 0x0224C150 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r2, #0 bl MOD11_0222FF84 add r6, r0, #0 mov r4, #0 cmp r6, #0 ble _0224C174 _0224C162: add r0, r7, #0 add r1, r4, #0 bl MOD11_02230270 cmp r5, r0 beq _0224C174 add r4, r4, #1 cmp r4, r6 blt _0224C162 _0224C174: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0224C178 MOD11_0224C178: ; 0x0224C178 push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp, #4] add r5, r1, #0 bl MOD11_0222FF84 str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] ldr r0, [sp, #0x10] sub r0, r0, #1 str r0, [sp, #0x18] cmp r0, #0 ble _0224C1FE _0224C194: ldr r0, [sp, #0x14] add r7, r0, #1 ldr r0, [sp, #0x10] cmp r7, r0 bge _0224C1F2 ldr r0, [sp, #0x14] add r0, r5, r0 str r0, [sp, #0xc] _0224C1A4: ldr r1, [sp, #0xc] ldr r0, _0224C204 ; =0x000021E8 ldrb r6, [r1, r0] add r1, r5, r7 ldrb r4, [r1, r0] lsl r0, r6, #4 str r1, [sp, #8] add r1, r5, r0 ldr r0, _0224C208 ; =0x000021B4 ldr r0, [r1, r0] lsl r1, r4, #4 add r2, r5, r1 ldr r1, _0224C208 ; =0x000021B4 ldr r1, [r2, r1] cmp r0, r1 bne _0224C1EA cmp r0, #1 beq _0224C1CC mov r0, #1 b _0224C1CE _0224C1CC: mov r0, #0 _0224C1CE: str r0, [sp] ldr r0, [sp, #4] add r1, r5, #0 add r2, r6, #0 add r3, r4, #0 bl MOD11_02244248 cmp r0, #0 beq _0224C1EA ldr r1, [sp, #0xc] ldr r0, _0224C204 ; =0x000021E8 strb r4, [r1, r0] ldr r1, [sp, #8] strb r6, [r1, r0] _0224C1EA: ldr r0, [sp, #0x10] add r7, r7, #1 cmp r7, r0 blt _0224C1A4 _0224C1F2: ldr r0, [sp, #0x14] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [sp, #0x14] cmp r1, r0 blt _0224C194 _0224C1FE: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _0224C204: .word 0x000021E8 _0224C208: .word 0x000021B4 thumb_func_start MOD11_0224C20C MOD11_0224C20C: ; 0x0224C20C push {r4, r5} mov r4, #0xc0 mul r4, r1 add r5, r0, r4 ldr r0, _0224C24C ; =0x00002DB0 mov r1, #1 ldr r4, [r5, r0] lsl r1, r1, #0x18 mov r3, #0 tst r1, r4 bne _0224C22C add r0, #0x10 ldr r1, [r5, r0] ldr r0, _0224C250 ; =0x200400C0 tst r0, r1 beq _0224C244 _0224C22C: ldr r4, _0224C254 ; =0x0225E2D8 mov r1, #0 _0224C230: ldr r0, [r4] cmp r2, r0 bne _0224C23A mov r3, #1 b _0224C246 _0224C23A: add r1, r1, #1 add r4, r4, #4 cmp r1, #0xa blo _0224C230 b _0224C246 _0224C244: mov r3, #1 _0224C246: add r0, r3, #0 pop {r4, r5} bx lr .align 2, 0 _0224C24C: .word 0x00002DB0 _0224C250: .word 0x200400C0 _0224C254: .word 0x0225E2D8 thumb_func_start MOD11_0224C258 MOD11_0224C258: ; 0x0224C258 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 ldr r1, [r5, #0x64] str r0, [sp] add r0, r5, #0 add r4, r2, #0 mov r6, #0 bl MOD11_02249D90 str r0, [sp, #0xc] ldr r1, [r5, #0x64] add r0, r5, #0 add r2, r6, #0 bl MOD11_02249DA4 str r0, [sp, #0x10] ldr r1, [r5, #0x6c] add r0, r5, #0 bl MOD11_02249D90 add r7, r0, #0 ldr r1, [r5, #0x6c] add r0, r5, #0 add r2, r6, #0 bl MOD11_02249DA4 str r0, [sp, #8] ldr r0, [sp] ldr r1, [r5, #0x64] bl MOD11_02230270 str r0, [sp, #4] ldr r0, [sp, #0xc] cmp r0, #0x57 bne _0224C2F4 ldr r0, _0224C41C ; =0x0000213C ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0xc tst r0, r1 beq _0224C2F4 ldr r0, [r5, #0x64] mov r1, #0x1c mul r1, r0 add r2, r5, r1 mov r1, #0xbb lsl r1, r1, #2 ldr r2, [r2, r1] cmp r2, #0 beq _0224C2F4 ldr r1, [r5, #0x6c] cmp r0, r1 beq _0224C2F4 mov r1, #0xc0 mul r1, r0 ldr r3, _0224C420 ; =0x00002D8C add r1, r5, r1 ldr r0, [r1, r3] add r3, r3, #4 ldr r1, [r1, r3] cmp r0, r1 bhs _0224C2F4 cmp r0, #0 beq _0224C2F4 ldr r1, [sp, #0x10] neg r0, r2 bl MOD11_022476C0 ldr r1, _0224C424 ; =0x0000215C mov r6, #1 str r0, [r5, r1] mov r0, #0x46 ldr r1, [r5, #0x64] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0xd5 str r0, [r4] _0224C2F4: ldr r0, [sp, #0xc] cmp r0, #0x61 bne _0224C356 ldr r1, [r5, #0x64] add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _0224C356 ldr r0, _0224C41C ; =0x0000213C ldr r1, [r5, r0] mov r0, #2 lsl r0, r0, #0xc tst r0, r1 beq _0224C356 ldr r0, _0224C428 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 mov r0, #0x3e lsl r0, r0, #4 ldrb r0, [r1, r0] cmp r0, #2 beq _0224C356 ldr r1, [r5, #0x64] mov r0, #0xc0 add r2, r1, #0 mul r2, r0 ldr r3, _0224C420 ; =0x00002D8C add r2, r5, r2 ldr r1, [r2, r3] cmp r1, #0 beq _0224C356 add r1, r3, #4 ldr r1, [r2, r1] sub r0, #0xc1 mul r0, r1 mov r1, #0xa bl MOD11_022476C0 ldr r1, _0224C424 ; =0x0000215C mov r6, #1 str r0, [r5, r1] mov r0, #0x46 ldr r1, [r5, #0x64] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0xd6 str r0, [r4] _0224C356: cmp r7, #0x2d bne _0224C3AA ldr r1, [r5, #0x64] mov r0, #0xc0 mul r0, r1 add r2, r5, r0 ldr r0, _0224C420 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _0224C3AA add r0, r5, #0 bl MOD11_02246D1C cmp r0, #0x62 beq _0224C3AA ldr r1, [r5, #0x6c] mov r0, #0x1c mul r0, r1 add r1, r5, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #0 beq _0224C3AA ldr r0, [r5, #0x64] mov r1, #0xc0 add r2, r0, #0 mul r2, r1 ldr r0, _0224C42C ; =0x00002D90 add r2, r5, r2 ldr r2, [r2, r0] sub r1, #0xc1 add r0, r2, #0 mul r0, r1 ldr r1, [sp, #8] bl MOD11_022476C0 ldr r1, _0224C424 ; =0x0000215C mov r6, #1 str r0, [r5, r1] lsr r0, r1, #5 str r0, [r4] _0224C3AA: cmp r7, #0x73 bne _0224C416 ldr r0, [r5, #0x64] mov r1, #0xc0 mul r1, r0 add r3, r5, r1 ldr r1, _0224C420 ; =0x00002D8C ldr r2, [r3, r1] cmp r2, #0 beq _0224C416 add r1, #0x2c ldrh r1, [r3, r1] cmp r1, #0 bne _0224C416 add r1, r5, r0 ldr r0, _0224C430 ; =0x0000219C ldrb r0, [r1, r0] bl FUN_0206A92C ldr r1, [sp, #4] lsl r1, r1, #3 add r2, r5, r1 mov r1, #0x71 lsl r1, r1, #2 ldr r1, [r2, r1] lsl r1, r1, #3 lsr r1, r1, #0x1a tst r0, r1 bne _0224C416 ldr r1, [r5, #0x6c] mov r0, #0x1c mul r0, r1 add r2, r5, r0 mov r0, #0xb6 lsl r0, r0, #2 ldr r1, [r2, r0] cmp r1, #0 bne _0224C3FE add r0, #8 ldr r0, [r2, r0] cmp r0, #0 beq _0224C416 _0224C3FE: ldr r0, _0224C428 ; =0x00003044 ldr r0, [r5, r0] lsl r0, r0, #4 add r1, r5, r0 ldr r0, _0224C434 ; =0x000003E9 ldrb r1, [r1, r0] mov r0, #1 tst r1, r0 beq _0224C416 mov r1, #0xd8 str r1, [r4] add r6, r0, #0 _0224C416: add r0, r6, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224C41C: .word 0x0000213C _0224C420: .word 0x00002D8C _0224C424: .word 0x0000215C _0224C428: .word 0x00003044 _0224C42C: .word 0x00002D90 _0224C430: .word 0x0000219C _0224C434: .word 0x000003E9 thumb_func_start MOD11_0224C438 MOD11_0224C438: ; 0x0224C438 push {r4, r5, r6, lr} add r6, r2, #0 add r4, r1, #0 add r1, r6, #0 add r5, r0, #0 bl MOD11_02246D1C cmp r0, #0x2e bne _0224C46A cmp r6, #0xff beq _0224C46A ldr r0, _0224C46C ; =0x00002D6C add r1, r5, r0 mov r0, #0xc0 mul r0, r4 add r0, r1, r0 lsl r1, r4, #1 add r2, r5, r1 ldr r1, _0224C470 ; =0x000030BC ldrh r2, [r2, r1] ldrb r1, [r0, r2] cmp r1, #0 beq _0224C46A sub r1, r1, #1 strb r1, [r0, r2] _0224C46A: pop {r4, r5, r6, pc} .align 2, 0 _0224C46C: .word 0x00002D6C _0224C470: .word 0x000030BC thumb_func_start MOD11_0224C474 MOD11_0224C474: ; 0x0224C474 push {r4, lr} add r4, r1, #0 cmp r2, #0xc bhi _0224C528 add r1, r2, r2 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224C488: ; jump table .short _0224C4A2 - _0224C488 - 2 ; case 0 .short _0224C4B4 - _0224C488 - 2 ; case 1 .short _0224C4CA - _0224C488 - 2 ; case 2 .short _0224C4D2 - _0224C488 - 2 ; case 3 .short _0224C4DA - _0224C488 - 2 ; case 4 .short _0224C4E0 - _0224C488 - 2 ; case 5 .short _0224C4E6 - _0224C488 - 2 ; case 6 .short _0224C4F2 - _0224C488 - 2 ; case 7 .short _0224C4FE - _0224C488 - 2 ; case 8 .short _0224C508 - _0224C488 - 2 ; case 9 .short _0224C510 - _0224C488 - 2 ; case 10 .short _0224C516 - _0224C488 - 2 ; case 11 .short _0224C51E - _0224C488 - 2 ; case 12 _0224C4A2: add r1, r3, #0 bl MOD11_02230270 lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r1, r0] pop {r4, pc} _0224C4B4: add r1, r3, #0 bl MOD11_02230270 lsl r0, r0, #3 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] lsl r0, r0, #0x11 lsr r0, r0, #0x1d pop {r4, pc} _0224C4CA: ldr r0, _0224C530 ; =0x0000219C add r1, r4, r3 ldrb r0, [r1, r0] pop {r4, pc} _0224C4D2: mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r4, r0] pop {r4, pc} _0224C4DA: ldr r0, _0224C534 ; =0x00003109 ldrb r0, [r4, r0] pop {r4, pc} _0224C4E0: ldr r0, _0224C538 ; =0x0000311D ldrb r0, [r4, r0] pop {r4, pc} _0224C4E6: lsl r0, r3, #2 add r1, r4, r0 mov r0, #0x55 lsl r0, r0, #2 ldr r0, [r1, r0] pop {r4, pc} _0224C4F2: lsl r0, r3, #2 add r1, r4, r0 mov r0, #0x59 lsl r0, r0, #2 ldr r0, [r1, r0] pop {r4, pc} _0224C4FE: lsl r0, r3, #4 add r1, r4, r0 ldr r0, _0224C53C ; =0x000021A8 ldr r0, [r1, r0] pop {r4, pc} _0224C508: mov r0, #0x3d lsl r0, r0, #4 ldrb r0, [r4, r0] pop {r4, pc} _0224C510: ldr r0, _0224C540 ; =0x00003108 ldrb r0, [r4, r0] pop {r4, pc} _0224C516: ldr r0, _0224C544 ; =0x000003DA add r1, r4, r3 ldrb r0, [r1, r0] pop {r4, pc} _0224C51E: lsl r0, r3, #4 add r1, r4, r0 ldr r0, _0224C548 ; =0x000021B0 ldr r0, [r1, r0] pop {r4, pc} _0224C528: bl ErrorHandling mov r0, #0 pop {r4, pc} .align 2, 0 _0224C530: .word 0x0000219C _0224C534: .word 0x00003109 _0224C538: .word 0x0000311D _0224C53C: .word 0x000021A8 _0224C540: .word 0x00003108 _0224C544: .word 0x000003DA _0224C548: .word 0x000021B0 thumb_func_start MOD11_0224C54C MOD11_0224C54C: ; 0x0224C54C push {r3, r4, r5, lr} add r5, r1, #0 ldr r4, [sp, #0x10] cmp r2, #0xb bhi _0224C5CA add r1, r2, r2 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224C562: ; jump table .short _0224C57A - _0224C562 - 2 ; case 0 .short _0224C58C - _0224C562 - 2 ; case 1 .short _0224C5AA - _0224C562 - 2 ; case 2 .short _0224C5B2 - _0224C562 - 2 ; case 3 .short _0224C5CA - _0224C562 - 2 ; case 4 .short _0224C5CA - _0224C562 - 2 ; case 5 .short _0224C5CA - _0224C562 - 2 ; case 6 .short _0224C5CA - _0224C562 - 2 ; case 7 .short _0224C5CA - _0224C562 - 2 ; case 8 .short _0224C5BA - _0224C562 - 2 ; case 9 .short _0224C5CA - _0224C562 - 2 ; case 10 .short _0224C5C2 - _0224C562 - 2 ; case 11 _0224C57A: add r1, r3, #0 bl MOD11_02230270 lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x6f lsl r0, r0, #2 str r4, [r1, r0] pop {r3, r4, r5, pc} _0224C58C: add r1, r3, #0 bl MOD11_02230270 mov r1, #0x71 lsl r1, r1, #2 add r1, r5, r1 lsl r0, r0, #3 ldr r3, [r1, r0] ldr r2, _0224C5D0 ; =0xFFFF8FFF and r3, r2 lsl r2, r4, #0x1d lsr r2, r2, #0x11 orr r2, r3 str r2, [r1, r0] pop {r3, r4, r5, pc} _0224C5AA: ldr r0, _0224C5D4 ; =0x0000219C add r1, r5, r3 strb r4, [r1, r0] pop {r3, r4, r5, pc} _0224C5B2: mov r0, #0x15 lsl r0, r0, #4 str r4, [r5, r0] pop {r3, r4, r5, pc} _0224C5BA: mov r0, #0x3d lsl r0, r0, #4 strb r4, [r5, r0] pop {r3, r4, r5, pc} _0224C5C2: ldr r0, _0224C5D8 ; =0x000003DA add r1, r5, r3 strb r4, [r1, r0] pop {r3, r4, r5, pc} _0224C5CA: bl ErrorHandling pop {r3, r4, r5, pc} .align 2, 0 _0224C5D0: .word 0xFFFF8FFF _0224C5D4: .word 0x0000219C _0224C5D8: .word 0x000003DA thumb_func_start MOD11_0224C5DC MOD11_0224C5DC: ; 0x0224C5DC push {r4, lr} add r3, r0, #0 add r3, #0x88 str r1, [r3] add r3, r0, #0 ldr r1, _0224C640 ; =0x007FFFFF add r4, r2, #0 and r4, r1 add r3, #0x8c str r4, [r3] lsl r1, r1, #0x17 add r3, r2, #0 and r3, r1 add r1, r0, #0 add r1, #0x90 str r3, [r1] mov r3, #1 lsl r3, r3, #0x1e add r1, r2, #0 tst r1, r3 beq _0224C60E ldr r1, [r0, #0x64] add r0, #0x94 str r1, [r0] b _0224C62E _0224C60E: lsl r1, r3, #1 tst r1, r2 beq _0224C61C ldr r1, [r0, #0x6c] add r0, #0x94 str r1, [r0] b _0224C62E _0224C61C: lsr r1, r3, #1 tst r1, r2 bne _0224C628 lsr r1, r3, #2 tst r1, r2 beq _0224C62E _0224C628: mov r1, #0 add r0, #0x94 str r1, [r0] _0224C62E: cmp r4, #0x91 blo _0224C636 bl ErrorHandling _0224C636: ldr r0, _0224C644 ; =0x0225E4C8 lsl r1, r4, #2 ldr r0, [r0, r1] pop {r4, pc} nop _0224C640: .word 0x007FFFFF _0224C644: .word 0x0225E4C8 thumb_func_start MOD11_0224C648 MOD11_0224C648: ; 0x0224C648 push {r3, r4, r5, lr} ldr r1, _0224C6D0 ; =0x0000213C add r5, r2, #0 ldr r2, [r0, r1] mov r0, #2 lsl r0, r0, #0xa add r1, r2, #0 ldr r4, [sp, #0x14] tst r1, r0 bne _0224C672 lsl r0, r0, #4 tst r0, r2 bne _0224C672 cmp r3, #0 beq _0224C672 add r0, r3, #0 mul r0, r5 mov r1, #0xa bl MOD11_022476C0 add r3, r0, #0 _0224C672: cmp r5, #0 beq _0224C680 cmp r5, #5 beq _0224C692 cmp r5, #0x14 beq _0224C6B0 b _0224C6CC _0224C680: ldr r1, [r4] mov r0, #8 orr r1, r0 mov r0, #4 bic r1, r0 mov r0, #2 bic r1, r0 str r1, [r4] b _0224C6CC _0224C692: ldr r0, [sp, #0x10] cmp r0, #0 beq _0224C6CC ldr r1, [r4] mov r0, #2 tst r0, r1 beq _0224C6A8 mov r0, #2 bic r1, r0 str r1, [r4] b _0224C6CC _0224C6A8: mov r0, #4 orr r0, r1 str r0, [r4] b _0224C6CC _0224C6B0: ldr r0, [sp, #0x10] cmp r0, #0 beq _0224C6CC ldr r1, [r4] mov r0, #4 tst r0, r1 beq _0224C6C6 mov r0, #4 bic r1, r0 str r1, [r4] b _0224C6CC _0224C6C6: mov r0, #2 orr r0, r1 str r0, [r4] _0224C6CC: add r0, r3, #0 pop {r3, r4, r5, pc} .align 2, 0 _0224C6D0: .word 0x0000213C thumb_func_start MOD11_0224C6D4 MOD11_0224C6D4: ; 0x0224C6D4 lsl r1, r1, #4 add r2, r0, r1 ldr r1, _0224C738 ; =0x000003DE ldrh r3, [r2, r1] cmp r3, #0x9b bgt _0224C706 cmp r3, #0x97 blt _0224C6EC beq _0224C726 cmp r3, #0x9b beq _0224C726 b _0224C732 _0224C6EC: cmp r3, #0x27 bgt _0224C6F8 bge _0224C726 cmp r3, #0x1a beq _0224C726 b _0224C732 _0224C6F8: cmp r3, #0x4b bgt _0224C700 beq _0224C726 b _0224C732 _0224C700: cmp r3, #0x91 beq _0224C726 b _0224C732 _0224C706: mov r2, #1 lsl r2, r2, #8 cmp r3, r2 bgt _0224C716 bge _0224C726 cmp r3, #0xff beq _0224C726 b _0224C732 _0224C716: add r1, r2, #7 cmp r3, r1 bgt _0224C720 beq _0224C726 b _0224C732 _0224C720: add r2, #0x11 cmp r3, r2 bne _0224C732 _0224C726: ldr r1, _0224C73C ; =0x0000213C ldr r1, [r0, r1] mov r0, #2 lsl r0, r0, #8 and r0, r1 bx lr _0224C732: mov r0, #1 bx lr nop _0224C738: .word 0x000003DE _0224C73C: .word 0x0000213C thumb_func_start MOD11_0224C740 MOD11_0224C740: ; 0x0224C740 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 cmp r2, #0x1b bne _0224C756 mov r0, #0xc0 mul r0, r6 add r1, r5, r0 ldr r0, _0224C80C ; =0x00002D64 ldrb r4, [r1, r0] b _0224C76A _0224C756: cmp r2, #0x1c bne _0224C766 mov r0, #0xc0 mul r0, r6 add r1, r5, r0 ldr r0, _0224C810 ; =0x00002D65 ldrb r4, [r1, r0] b _0224C76A _0224C766: bl ErrorHandling _0224C76A: mov r0, #0xc0 mul r0, r6 mov r2, #0xb5 add r1, r5, r0 lsl r2, r2, #6 ldrh r3, [r1, r2] ldr r0, _0224C814 ; =0x000001ED cmp r3, r0 bne _0224C806 add r0, r2, #0 add r0, #0x27 ldrb r0, [r1, r0] cmp r0, #0x79 bne _0224C806 add r2, #0x78 ldrh r1, [r1, r2] add r0, r5, #0 mov r2, #1 bl MOD11_0224C12C sub r0, #0x7d cmp r0, #0xf bhi _0224C804 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0224C7A4: ; jump table .short _0224C7C4 - _0224C7A4 - 2 ; case 0 .short _0224C7C8 - _0224C7A4 - 2 ; case 1 .short _0224C7CC - _0224C7A4 - 2 ; case 2 .short _0224C7D0 - _0224C7A4 - 2 ; case 3 .short _0224C7D4 - _0224C7A4 - 2 ; case 4 .short _0224C7D8 - _0224C7A4 - 2 ; case 5 .short _0224C7DC - _0224C7A4 - 2 ; case 6 .short _0224C7E0 - _0224C7A4 - 2 ; case 7 .short _0224C7E4 - _0224C7A4 - 2 ; case 8 .short _0224C7E8 - _0224C7A4 - 2 ; case 9 .short _0224C7EC - _0224C7A4 - 2 ; case 10 .short _0224C7F0 - _0224C7A4 - 2 ; case 11 .short _0224C7F4 - _0224C7A4 - 2 ; case 12 .short _0224C7F8 - _0224C7A4 - 2 ; case 13 .short _0224C7FC - _0224C7A4 - 2 ; case 14 .short _0224C800 - _0224C7A4 - 2 ; case 15 _0224C7C4: mov r4, #0xa b _0224C806 _0224C7C8: mov r4, #0xb b _0224C806 _0224C7CC: mov r4, #0xd b _0224C806 _0224C7D0: mov r4, #0xc b _0224C806 _0224C7D4: mov r4, #0xf b _0224C806 _0224C7D8: mov r4, #1 b _0224C806 _0224C7DC: mov r4, #3 b _0224C806 _0224C7E0: mov r4, #4 b _0224C806 _0224C7E4: mov r4, #2 b _0224C806 _0224C7E8: mov r4, #0xe b _0224C806 _0224C7EC: mov r4, #6 b _0224C806 _0224C7F0: mov r4, #5 b _0224C806 _0224C7F4: mov r4, #7 b _0224C806 _0224C7F8: mov r4, #0x10 b _0224C806 _0224C7FC: mov r4, #0x11 b _0224C806 _0224C800: mov r4, #8 b _0224C806 _0224C804: mov r4, #0 _0224C806: add r0, r4, #0 pop {r4, r5, r6, pc} nop _0224C80C: .word 0x00002D64 _0224C810: .word 0x00002D65 _0224C814: .word 0x000001ED thumb_func_start MOD11_0224C818 MOD11_0224C818: ; 0x0224C818 lsl r1, r1, #3 add r3, r0, r1 mov r2, #0 mov r0, #0x37 add r1, r2, #0 lsl r0, r0, #4 _0224C824: add r2, r2, #1 strh r1, [r3, r0] add r3, r3, #2 cmp r2, #4 blt _0224C824 bx lr thumb_func_start MOD11_0224C830 MOD11_0224C830: ; 0x0224C830 add r1, r0, r1 mov r0, #0x39 mov r2, #0 lsl r0, r0, #4 strb r2, [r1, r0] bx lr thumb_func_start MOD11_0224C83C MOD11_0224C83C: ; 0x0224C83C lsl r1, r1, #1 add r1, r0, r1 mov r0, #0xe5 mov r2, #0 lsl r0, r0, #2 strh r2, [r1, r0] bx lr .align 2, 0 thumb_func_start MOD11_0224C84C MOD11_0224C84C: ; 0x0224C84C push {r4, r5, r6, lr} add r4, r2, #0 add r3, r0, #0 mov r2, #0xc0 add r5, r1, #0 mul r1, r2 ldr r6, _0224C8BC ; =0x00002D67 add r1, r3, r1 ldrb r1, [r1, r6] mov r0, #0xff cmp r1, #0x3b beq _0224C890 cmp r1, #0x24 beq _0224C890 cmp r1, #0x79 beq _0224C890 mul r2, r4 add r2, r3, r2 ldrb r2, [r2, r6] cmp r2, #0x3b beq _0224C890 cmp r2, #0x24 beq _0224C890 cmp r2, #0x79 beq _0224C890 bl FUN_0201B9EC mov r1, #1 tst r0, r1 beq _0224C88C add r0, r4, #0 pop {r4, r5, r6, pc} _0224C88C: add r0, r5, #0 pop {r4, r5, r6, pc} _0224C890: cmp r1, #0x3b beq _0224C8A0 cmp r1, #0x24 beq _0224C8A0 cmp r1, #0x79 beq _0224C8A0 add r0, r5, #0 pop {r4, r5, r6, pc} _0224C8A0: mov r1, #0xc0 mul r1, r4 add r2, r3, r1 ldr r1, _0224C8BC ; =0x00002D67 ldrb r1, [r2, r1] cmp r1, #0x3b beq _0224C8B8 cmp r1, #0x24 beq _0224C8B8 cmp r1, #0x79 beq _0224C8B8 add r0, r4, #0 _0224C8B8: pop {r4, r5, r6, pc} nop _0224C8BC: .word 0x00002D67 thumb_func_start MOD11_0224C8C0 MOD11_0224C8C0: ; 0x0224C8C0 lsl r1, r1, #4 add r1, r0, r1 ldr r0, _0224C8E4 ; =0x000003DE ldr r3, _0224C8E8 ; =0x0225E260 ldrh r1, [r1, r0] mov r2, #0 _0224C8CC: ldrh r0, [r3] cmp r0, r1 bne _0224C8D6 mov r0, #1 bx lr _0224C8D6: add r2, r2, #1 add r3, r3, #2 cmp r2, #6 blo _0224C8CC mov r0, #0 bx lr nop _0224C8E4: .word 0x000003DE _0224C8E8: .word 0x0225E260 thumb_func_start MOD11_0224C8EC MOD11_0224C8EC: ; 0x0224C8EC push {r3, r4, r5, r6, r7, lr} add r6, r2, #0 ldr r2, _0224CA58 ; =0x00000137 add r7, r0, #0 add r4, r1, #0 cmp r3, r2 bgt _0224C904 blt _0224C8FE b _0224CA00 _0224C8FE: cmp r3, #0xed beq _0224C9A6 b _0224CA52 _0224C904: add r0, r2, #0 add r0, #0x34 cmp r3, r0 bgt _0224C914 add r2, #0x34 cmp r3, r2 beq _0224C91C b _0224CA52 _0224C914: add r2, #0x8a cmp r3, r2 beq _0224C928 b _0224CA52 _0224C91C: add r0, r4, #0 add r1, r6, #0 bl MOD11_02249E04 add r5, r0, #0 b _0224CA54 _0224C928: add r0, r4, #0 add r1, r6, #0 bl MOD11_02249D90 sub r0, #0x7d cmp r0, #0xf bhi _0224C9A2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0224C942: ; jump table .short _0224C982 - _0224C942 - 2 ; case 0 .short _0224C986 - _0224C942 - 2 ; case 1 .short _0224C98E - _0224C942 - 2 ; case 2 .short _0224C98A - _0224C942 - 2 ; case 3 .short _0224C996 - _0224C942 - 2 ; case 4 .short _0224C962 - _0224C942 - 2 ; case 5 .short _0224C96A - _0224C942 - 2 ; case 6 .short _0224C96E - _0224C942 - 2 ; case 7 .short _0224C966 - _0224C942 - 2 ; case 8 .short _0224C992 - _0224C942 - 2 ; case 9 .short _0224C976 - _0224C942 - 2 ; case 10 .short _0224C972 - _0224C942 - 2 ; case 11 .short _0224C97A - _0224C942 - 2 ; case 12 .short _0224C99A - _0224C942 - 2 ; case 13 .short _0224C99E - _0224C942 - 2 ; case 14 .short _0224C97E - _0224C942 - 2 ; case 15 _0224C962: mov r5, #1 b _0224CA54 _0224C966: mov r5, #2 b _0224CA54 _0224C96A: mov r5, #3 b _0224CA54 _0224C96E: mov r5, #4 b _0224CA54 _0224C972: mov r5, #5 b _0224CA54 _0224C976: mov r5, #6 b _0224CA54 _0224C97A: mov r5, #7 b _0224CA54 _0224C97E: mov r5, #8 b _0224CA54 _0224C982: mov r5, #0xa b _0224CA54 _0224C986: mov r5, #0xb b _0224CA54 _0224C98A: mov r5, #0xc b _0224CA54 _0224C98E: mov r5, #0xd b _0224CA54 _0224C992: mov r5, #0xe b _0224CA54 _0224C996: mov r5, #0xf b _0224CA54 _0224C99A: mov r5, #0x10 b _0224CA54 _0224C99E: mov r5, #0x11 b _0224CA54 _0224C9A2: mov r5, #0 b _0224CA54 _0224C9A6: ldr r0, _0224CA5C ; =0x00002D54 add r1, r4, r0 mov r0, #0xc0 mul r0, r6 ldr r4, [r1, r0] lsl r0, r4, #2 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r5, r0, #0x1a lsl r0, r4, #7 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r3, r0, #0x1b lsl r0, r4, #0xc lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r2, r0, #0x1c lsl r0, r4, #0x11 lsr r0, r0, #0x1b lsl r0, r0, #0x1f lsr r1, r0, #0x1d lsl r0, r4, #0x1b lsl r4, r4, #0x16 lsr r4, r4, #0x1b lsr r6, r0, #0x1b mov r0, #1 lsl r4, r4, #0x1f and r0, r6 lsr r4, r4, #0x1e orr r0, r4 orr r0, r1 orr r0, r2 orr r0, r3 add r1, r5, #0 orr r1, r0 mov r0, #0xf mul r0, r1 mov r1, #0x3f bl _s32_div_f add r5, r0, #1 cmp r5, #9 blt _0224CA54 add r5, r5, #1 b _0224CA54 _0224CA00: mov r2, #0xd str r2, [sp] mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224CA54 mov r0, #0x4c str r0, [sp] add r0, r7, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _0224CA54 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] ldr r1, _0224CA60 ; =0x000080FF tst r1, r0 beq _0224CA54 mov r1, #3 tst r1, r0 beq _0224CA38 mov r5, #0xb _0224CA38: mov r1, #0xc tst r1, r0 beq _0224CA40 mov r5, #5 _0224CA40: mov r1, #0x30 tst r1, r0 beq _0224CA48 mov r5, #0xa _0224CA48: mov r1, #0xc0 tst r0, r1 beq _0224CA54 mov r5, #0xf b _0224CA54 _0224CA52: mov r5, #0 _0224CA54: add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224CA58: .word 0x00000137 _0224CA5C: .word 0x00002D54 _0224CA60: .word 0x000080FF thumb_func_start MOD11_0224CA64 MOD11_0224CA64: ; 0x0224CA64 push {r3, r4, r5, lr} add r5, r1, #0 mov r1, #0x69 mov r0, #5 lsl r1, r1, #2 bl FUN_02016998 add r4, r0, #0 mov r2, #0x69 mov r0, #0 add r1, r4, #0 lsl r2, r2, #2 bl MIi_CpuClearFast mov r0, #0x65 ldrb r1, [r5] lsl r0, r0, #2 strb r1, [r4, r0] ldrb r1, [r5, #1] add r0, r0, #1 strb r1, [r4, r0] add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0224CA94 MOD11_0224CA94: ; 0x0224CA94 push {r4, r5, r6, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _0224CB2C sub r1, #0x8b ldrb r1, [r4, r1] mov r0, #1 tst r0, r1 beq _0224CAC0 add r0, r5, #0 bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _0224CB2C _0224CAC0: ldr r0, _0224CB30 ; =0x00000195 ldr r1, _0224CB34 ; =0x0225E818 ldrb r2, [r4, r0] sub r0, r0, #1 ldrb r1, [r1, r2] str r1, [sp] mov r1, #5 str r1, [sp, #4] mov r1, #4 str r1, [sp, #8] ldrb r0, [r4, r0] str r0, [sp, #0xc] add r0, r5, #0 str r6, [sp, #0x10] bl MOD11_02230078 str r0, [sp, #0x1c] add r0, r5, #0 bl MOD11_022300CC str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x18] mov r0, #1 str r0, [sp, #0x14] add r0, sp, #0 bl MOD08_02229918 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x88 ldr r0, [r0] mov r1, #0x64 bl MOD08_0222A00C add r0, r4, #0 add r0, #0x88 ldr r0, [r0] mov r1, #2 bl MOD08_0222A018 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] mov r1, #0 bl MOD08_02229FE4 add r4, #0x88 ldr r0, [r4] mov r1, #0 bl MOD08_0222A008 _0224CB2C: add sp, #0x28 pop {r4, r5, r6, pc} .align 2, 0 _0224CB30: .word 0x00000195 _0224CB34: .word 0x0225E818 thumb_func_start MOD11_0224CB38 MOD11_0224CB38: ; 0x0224CB38 push {r3, lr} add r2, r1, #0 add r2, #0x94 ldrb r2, [r2] cmp r2, #0 beq _0224CB4C lsl r3, r2, #2 ldr r2, _0224CB50 ; =0x0225E70C ldr r2, [r2, r3] blx r2 _0224CB4C: pop {r3, pc} nop _0224CB50: .word 0x0225E70C thumb_func_start MOD11_0224CB54 MOD11_0224CB54: ; 0x0224CB54 push {r4, lr} add r4, r1, #0 cmp r2, #2 beq _0224CB64 add r0, r4, #0 add r0, #0x28 bl MOD11_02257030 _0224CB64: add r0, r4, #0 bl MOD11_0225468C add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0224CB74 MOD11_0224CB74: ; 0x0224CB74 bx lr .align 2, 0 thumb_func_start MOD11_0224CB78 MOD11_0224CB78: ; 0x0224CB78 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0224D550 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #1 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} thumb_func_start MOD11_0224CB98 MOD11_0224CB98: ; 0x0224CB98 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224D574 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CBAC MOD11_0224CBAC: ; 0x0224CBAC push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224D738 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CBC0 MOD11_0224CBC0: ; 0x0224CBC0 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224D87C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CBD4 MOD11_0224CBD4: ; 0x0224CBD4 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DA2C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CBE8 MOD11_0224CBE8: ; 0x0224CBE8 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DAE8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CBFC MOD11_0224CBFC: ; 0x0224CBFC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x20] bl FUN_02007534 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #7 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0224CC20 MOD11_0224CC20: ; 0x0224CC20 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DB4C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC34 MOD11_0224CC34: ; 0x0224CC34 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DCE4 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC48 MOD11_0224CC48: ; 0x0224CC48 push {r4, lr} add r4, r1, #0 bl MOD11_0224DD44 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC58 MOD11_0224CC58: ; 0x0224CC58 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DD8C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC6C MOD11_0224CC6C: ; 0x0224CC6C push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224DE50 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC80 MOD11_0224CC80: ; 0x0224CC80 push {r4, lr} add r4, r1, #0 bl MOD11_0224DF18 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CC90 MOD11_0224CC90: ; 0x0224CC90 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r4, #0 add r6, #0x94 add r1, r6, #0 add r1, #0x29 ldrb r1, [r1] add r5, r0, #0 bl MOD11_022312B8 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0224DF60 add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224CCB8 MOD11_0224CCB8: ; 0x0224CCB8 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E034 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CCCC MOD11_0224CCCC: ; 0x0224CCCC push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E0A4 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CCE0 MOD11_0224CCE0: ; 0x0224CCE0 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E130 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CCF4 MOD11_0224CCF4: ; 0x0224CCF4 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E1DC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CD08 MOD11_0224CD08: ; 0x0224CD08 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E248 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CD1C MOD11_0224CD1C: ; 0x0224CD1C push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E28C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CD30 MOD11_0224CD30: ; 0x0224CD30 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E2F4 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CD44 MOD11_0224CD44: ; 0x0224CD44 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E344 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CD58 MOD11_0224CD58: ; 0x0224CD58 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x20] mov r1, #6 bl FUN_0200782C cmp r0, #1 bne _0224CD7A mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x17 bl MOD11_022567B8 b _0224CD82 _0224CD7A: add r0, r5, #0 add r1, r4, #0 bl MOD11_0224E3E0 _0224CD82: add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0224CD8C MOD11_0224CD8C: ; 0x0224CD8C push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E410 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CDA0 MOD11_0224CDA0: ; 0x0224CDA0 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E49C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CDB4 MOD11_0224CDB4: ; 0x0224CDB4 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E510 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CDC8 MOD11_0224CDC8: ; 0x0224CDC8 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E5F8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CDDC MOD11_0224CDDC: ; 0x0224CDDC push {r4, lr} add r4, r1, #0 bl MOD11_0224E628 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CDEC MOD11_0224CDEC: ; 0x0224CDEC push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E65C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE00 MOD11_0224CE00: ; 0x0224CE00 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E6FC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE14 MOD11_0224CE14: ; 0x0224CE14 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E734 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE28 MOD11_0224CE28: ; 0x0224CE28 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E790 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE3C MOD11_0224CE3C: ; 0x0224CE3C push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E7E8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE50 MOD11_0224CE50: ; 0x0224CE50 push {r4, lr} add r4, r1, #0 bl MOD11_0224E840 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE60 MOD11_0224CE60: ; 0x0224CE60 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E894 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE74 MOD11_0224CE74: ; 0x0224CE74 push {r4, lr} add r4, r1, #0 bl MOD11_0224E8EC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE84 MOD11_0224CE84: ; 0x0224CE84 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E924 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CE98 MOD11_0224CE98: ; 0x0224CE98 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224E9C0 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224CEAC MOD11_0224CEAC: ; 0x0224CEAC push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 mov r2, #0x65 add r6, #0x94 lsl r2, r2, #2 str r1, [sp, #4] ldrb r1, [r1, r2] ldrb r2, [r6, #1] str r0, [sp] lsl r2, r2, #0x1c lsr r2, r2, #0x1c bl MOD11_02230014 add r7, r0, #0 mov r0, #2 ldr r1, [r6, #0x1c] lsl r0, r0, #0x14 tst r0, r1 bne _0224CF14 add r0, r6, #0 add r5, r6, #0 str r0, [sp, #8] add r0, #0x16 mov r4, #0 add r5, #0xe str r0, [sp, #8] _0224CEE2: add r0, r4, #0 bl FUN_0206A92C ldrb r1, [r6, #1] lsl r1, r1, #0x18 lsr r1, r1, #0x1c tst r0, r1 bne _0224CF0C add r1, r4, #0 add r0, r7, #0 add r1, #0x36 add r2, r5, #0 bl FUN_02067830 ldr r2, [sp, #8] add r1, r4, #0 add r0, r7, #0 add r1, #0x3a add r2, r2, r4 bl FUN_02067830 _0224CF0C: add r4, r4, #1 add r5, r5, #2 cmp r4, #4 blt _0224CEE2 _0224CF14: ldrb r0, [r6, #1] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bl FUN_0206A92C ldr r1, [r6, #8] tst r0, r1 bne _0224CF30 add r2, r6, #0 add r0, r7, #0 mov r1, #6 add r2, #0xc bl FUN_02067830 _0224CF30: add r0, r7, #0 mov r1, #0xa2 add r2, r6, #2 bl FUN_02067830 add r0, r7, #0 mov r1, #0x9f add r2, r6, #4 bl FUN_02067830 mov r2, #0x65 ldr r1, [sp, #4] lsl r2, r2, #2 ldrb r1, [r1, r2] ldrb r2, [r6] ldr r0, [sp] bl MOD11_022567B8 ldr r0, [sp, #4] bl MOD11_0224D548 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224CF60 MOD11_0224CF60: ; 0x0224CF60 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0222FF74 add r6, r0, #0 add r0, r5, #0 bl MOD11_02230094 ldr r2, _0224CFB0 ; =0x00000196 ldrb r1, [r4, r2] cmp r1, #0 bne _0224CF94 mov r1, #8 and r1, r6 bne _0224CF8C cmp r1, #0 bne _0224CF94 sub r1, r2, #1 ldrb r1, [r4, r1] cmp r1, #4 beq _0224CF94 _0224CF8C: ldr r1, _0224CFB4 ; =0xFFFFF300 mov r2, #0 bl MOD11_02259098 _0224CF94: mov r1, #0x65 add r2, r4, #0 lsl r1, r1, #2 add r2, #0x94 ldrb r1, [r4, r1] ldrb r2, [r2] add r0, r5, #0 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} nop _0224CFB0: .word 0x00000196 _0224CFB4: .word 0xFFFFF300 thumb_func_start MOD11_0224CFB8 MOD11_0224CFB8: ; 0x0224CFB8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0x28 bl MOD11_02257238 add r0, r4, #0 bl MOD11_0225468C mov r1, #0x65 add r2, r4, #0 lsl r1, r1, #2 add r2, #0x94 ldrb r1, [r4, r1] ldrb r2, [r2] add r0, r5, #0 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0224CFE8 MOD11_0224CFE8: ; 0x0224CFE8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r1, #0 mov r1, #0 str r1, [sp, #8] mov r1, #0x65 lsl r1, r1, #2 add r4, r7, #0 ldrb r1, [r7, r1] str r0, [sp] add r4, #0x94 bl MOD11_0222FFC8 mov r5, #0 str r0, [sp, #4] cmp r0, #0 ble _0224D04A _0224D00A: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r7, r1] ldr r0, [sp] add r2, r5, #0 bl MOD11_02230014 ldrb r1, [r4, #1] add r6, r0, #0 cmp r1, #0x68 bne _0224D024 mov r0, #0 b _0224D02C _0224D024: mov r1, #0xa mov r2, #0 bl FUN_020671BC _0224D02C: ldrh r1, [r4, #2] cmp r1, #0xd7 bne _0224D038 bne _0224D042 cmp r0, #0x2b beq _0224D042 _0224D038: add r0, r6, #0 mov r1, #0x9f add r2, sp, #8 bl FUN_02067830 _0224D042: ldr r0, [sp, #4] add r5, r5, #1 cmp r5, r0 blt _0224D00A _0224D04A: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r7, r1] ldrb r2, [r4] ldr r0, [sp] bl MOD11_022567B8 add r0, r7, #0 bl MOD11_0224D548 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224D064 MOD11_0224D064: ; 0x0224D064 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EA74 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D078 MOD11_0224D078: ; 0x0224D078 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EAAC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D08C MOD11_0224D08C: ; 0x0224D08C push {r4, r5, r6, r7, lr} sub sp, #0x24 str r0, [sp, #0x10] add r5, r1, #0 ldr r0, _0224D180 ; =0x00000195 add r4, r5, #0 ldrb r1, [r5, r0] mov r0, #1 add r4, #0x94 tst r0, r1 beq _0224D0A6 mov r6, #2 b _0224D0A8 _0224D0A6: mov r6, #0 _0224D0A8: ldrb r0, [r4, #5] lsl r3, r6, #0x18 lsr r3, r3, #0x18 str r0, [sp] ldrb r0, [r4, #1] str r0, [sp, #4] ldr r0, [r4, #8] str r0, [sp, #8] ldrh r1, [r4, #2] ldrb r2, [r4, #4] add r0, sp, #0x14 bl FUN_02068C00 ldr r0, [r5, #0x20] bl FUN_020081C0 add r7, r0, #0 add r3, sp, #0x14 add r2, r7, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r5, #0x20] bl FUN_020080D0 ldr r0, [sp, #0x10] bl MOD11_02230130 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] bl MOD11_022312DC add r3, r0, #0 ldr r0, [r4, #8] mov r2, #5 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r6, [sp, #8] ldrh r0, [r7, #6] str r0, [sp, #0xc] ldrh r0, [r7] ldrh r1, [r7, #2] bl FUN_02012560 ldr r0, [sp, #0x10] bl MOD11_02230130 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrh r2, [r7] bl MOD11_022312F0 ldr r0, [sp, #0x10] bl MOD11_02230130 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrh r2, [r7, #4] bl MOD11_02231308 ldr r0, [r4, #8] lsl r2, r6, #0x18 str r0, [sp] ldrh r0, [r4, #2] ldrb r1, [r4, #4] ldrb r3, [r4, #1] lsr r2, r2, #0x18 bl FUN_02068E88 add r6, r0, #0 ldr r0, [sp, #0x10] bl MOD11_02230130 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] add r2, r6, #0 bl MOD11_02231320 ldr r0, _0224D180 ; =0x00000195 mov r1, #1 ldrb r0, [r5, r0] bl MOD08_0222A6A4 add r2, r0, #0 ldr r0, [r5, #0x20] mov r1, #1 add r2, r6, r2 bl FUN_02007558 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] ldr r0, [sp, #0x10] bl MOD11_022567B8 add r0, r5, #0 bl MOD11_0224D548 add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _0224D180: .word 0x00000195 thumb_func_start MOD11_0224D184 MOD11_0224D184: ; 0x0224D184 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02230FCC mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x2e bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} thumb_func_start MOD11_0224D1A4 MOD11_0224D1A4: ; 0x0224D1A4 push {r4, r5, r6, lr} add r4, r1, #0 ldr r1, _0224D218 ; =0x00000196 add r5, r0, #0 ldrb r1, [r4, r1] cmp r1, #0 bne _0224D200 bl MOD11_02230094 mov r1, #0 add r6, r0, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 add r0, r6, #0 mov r1, #0 bl MOD11_0225B77C mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 bl MOD11_022302BC add r1, r0, #0 mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] cmp r1, r0 beq _0224D1EC add r0, r5, #0 bl MOD11_02231380 bl MOD11_02258184 _0224D1EC: add r0, r4, #0 add r0, #0x28 bl MOD11_02257238 add r0, r6, #0 bl MOD11_02258E30 add r0, r4, #0 bl MOD11_0225468C _0224D200: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x2f bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} nop _0224D218: .word 0x00000196 thumb_func_start MOD11_0224D21C MOD11_0224D21C: ; 0x0224D21C push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EAEC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D230 MOD11_0224D230: ; 0x0224D230 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EB34 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D244 MOD11_0224D244: ; 0x0224D244 push {r4, r5, r6, lr} add r4, r1, #0 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r6, r4, #0 add r5, r0, #0 add r6, #0x94 bl MOD11_02230270 cmp r0, #0 beq _0224D268 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0224EB6C b _0224D276 _0224D268: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x32 bl MOD11_022567B8 _0224D276: add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224D280 MOD11_0224D280: ; 0x0224D280 push {r4, r5, r6, lr} add r4, r1, #0 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r6, r4, #0 add r5, r0, #0 add r6, #0x94 bl MOD11_02230270 cmp r0, #0 beq _0224D2A4 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD11_0224EBB8 b _0224D2B2 _0224D2A4: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x33 bl MOD11_022567B8 _0224D2B2: add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224D2BC MOD11_0224D2BC: ; 0x0224D2BC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02230078 add r6, r0, #0 add r0, r5, #0 bl MOD11_02230080 add r7, r0, #0 add r0, r5, #0 bl MOD11_022300CC add r2, r0, #0 add r0, r6, #0 add r1, r7, #0 bl MOD11_0225C91C mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x34 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224D2F8 MOD11_0224D2F8: ; 0x0224D2F8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_02230080 bl MOD11_0225C9A0 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x35 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r3, r4, r5, pc} thumb_func_start MOD11_0224D31C MOD11_0224D31C: ; 0x0224D31C push {r4, r5, r6, lr} add r5, r1, #0 add r4, r5, #0 add r4, #0x94 ldrb r1, [r4, #1] add r6, r0, #0 cmp r1, #0 ldr r1, _0224D360 ; =0x00000196 bne _0224D33C ldrb r1, [r5, r1] cmp r1, #0 bne _0224D348 ldrh r1, [r4, #2] bl MOD11_0223128C b _0224D348 _0224D33C: ldrb r1, [r5, r1] cmp r1, #0 beq _0224D348 ldrh r1, [r4, #2] bl MOD11_0223128C _0224D348: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 add r0, r5, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} nop _0224D360: .word 0x00000196 thumb_func_start MOD11_0224D364 MOD11_0224D364: ; 0x0224D364 push {r4, lr} add r4, r1, #0 bl MOD11_0224EBF4 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D374 MOD11_0224D374: ; 0x0224D374 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EC4C add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D388 MOD11_0224D388: ; 0x0224D388 push {r4, lr} add r4, r1, #0 bl MOD11_0224EC80 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D398 MOD11_0224D398: ; 0x0224D398 push {r4, lr} add r4, r1, #0 bl MOD11_0224ECB8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D3A8 MOD11_0224D3A8: ; 0x0224D3A8 push {r4, lr} add r4, r1, #0 bl MOD11_0224ECF0 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D3B8 MOD11_0224D3B8: ; 0x0224D3B8 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224ED44 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D3CC MOD11_0224D3CC: ; 0x0224D3CC push {r4, lr} add r4, r1, #0 bl MOD11_0224ED98 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D3DC MOD11_0224D3DC: ; 0x0224D3DC push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EDEC add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D3F0 MOD11_0224D3F0: ; 0x0224D3F0 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EE20 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D404 MOD11_0224D404: ; 0x0224D404 push {r4, lr} add r4, r1, #0 add r2, r4, #0 add r2, #0x94 bl MOD11_0224EE80 add r0, r4, #0 bl MOD11_0224D548 pop {r4, pc} thumb_func_start MOD11_0224D418 MOD11_0224D418: ; 0x0224D418 push {r4, r5, r6, r7, lr} sub sp, #0x14 mov r7, #0 str r1, [sp, #4] str r1, [sp, #0x10] add r1, #0x94 str r0, [sp] str r1, [sp, #0x10] str r7, [sp, #8] bl MOD11_0222FF74 mov r1, #0x80 tst r0, r1 beq _0224D444 ldr r1, [sp, #0x10] ldr r0, [sp] ldr r1, [r1, #4] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD11_02231468 b _0224D4FC _0224D444: add r0, r7, #0 str r0, [sp, #0xc] ldr r0, [sp] bl MOD11_0222FF84 cmp r0, #0 ble _0224D4D2 _0224D452: ldr r0, [sp] ldr r1, [sp, #0xc] bl MOD11_0222FF88 add r6, r0, #0 mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0224D4C0 _0224D466: add r0, r6, #0 add r1, r5, #0 bl FUN_0206B9B0 mov r1, #5 mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _0224D4B4 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl FUN_020671BC cmp r0, #0 bne _0224D4B4 ldr r0, [sp] ldr r1, [sp, #0xc] bl MOD11_02230270 cmp r0, #0 beq _0224D4A8 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC ldr r1, [sp, #8] add r0, r1, r0 str r0, [sp, #8] b _0224D4B4 _0224D4A8: add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC add r7, r7, r0 _0224D4B4: add r0, r6, #0 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _0224D466 _0224D4C0: ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] ldr r0, [sp] bl MOD11_0222FF84 ldr r1, [sp, #0xc] cmp r1, r0 blt _0224D452 _0224D4D2: cmp r7, #0 bne _0224D4E6 ldr r0, [sp, #8] cmp r0, #0 bne _0224D4E6 ldr r0, [sp] mov r1, #3 bl MOD11_02231468 b _0224D4FC _0224D4E6: cmp r7, #0 bne _0224D4F4 ldr r0, [sp] mov r1, #2 bl MOD11_02231468 b _0224D4FC _0224D4F4: ldr r0, [sp] mov r1, #1 bl MOD11_02231468 _0224D4FC: mov r2, #0x65 ldr r1, [sp, #4] lsl r2, r2, #2 ldrb r1, [r1, r2] ldr r2, [sp, #0x10] ldr r0, [sp] ldrb r2, [r2] bl MOD11_022567B8 ldr r0, [sp, #4] bl MOD11_0224D548 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_0224D518 MOD11_0224D518: ; 0x0224D518 push {r4, r5, r6, lr} add r4, r1, #0 mov r1, #0 add r5, r0, #0 bl MOD11_0222FF6C add r6, r0, #0 mov r1, #0xff bl FUN_02019620 add r0, r6, #0 bl FUN_02019548 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x42 bl MOD11_022567B8 add r0, r4, #0 bl MOD11_0224D548 pop {r4, r5, r6, pc} thumb_func_start MOD11_0224D548 MOD11_0224D548: ; 0x0224D548 mov r1, #0 add r0, #0x94 strb r1, [r0] bx lr thumb_func_start MOD11_0224D550 MOD11_0224D550: ; 0x0224D550 push {r4, lr} add r4, r0, #0 mov r0, #5 mov r1, #0x18 bl FUN_02016998 add r1, r0, #0 str r4, [r1] mov r2, #0 strb r2, [r1, #0x14] ldr r0, _0224D570 ; =MOD11_022530A0 strb r2, [r1, #0x15] bl FUN_0200CA44 pop {r4, pc} nop _0224D570: .word MOD11_022530A0 thumb_func_start MOD11_0224D574 MOD11_0224D574: ; 0x0224D574 push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 str r0, [sp, #0x24] add r6, r1, #0 add r5, r2, #0 bl MOD11_02230068 str r0, [sp, #0x28] ldr r0, [sp, #0x24] bl MOD11_0222FF74 mov r0, #5 mov r1, #0x2c bl FUN_02016998 add r4, r0, #0 mov r2, #0 ldr r0, _0224D720 ; =0x00000195 strb r2, [r4, #0x12] ldrb r0, [r6, r0] mov r1, #1 tst r0, r1 beq _0224D5CA mov r0, #2 strb r0, [r4, #0x13] ldr r0, [sp, #0x24] bl MOD11_02230088 str r0, [r4, #0xc] ldr r1, _0224D720 ; =0x00000195 ldr r0, [r0] ldrb r2, [r6, r1] mov r1, #1 and r2, r1 add r3, r2, #0 mov r1, #6 mul r3, r1 ldr r1, _0224D724 ; =0x0222D550 mov r2, #0x58 ldrsh r1, [r1, r3] bl FUN_0200C714 b _0224D5F0 _0224D5CA: ldr r0, [sp, #0x24] add r1, r2, #0 strb r2, [r4, #0x13] bl MOD11_02230088 str r0, [r4, #0xc] ldr r1, _0224D720 ; =0x00000195 ldr r0, [r0] ldrb r2, [r6, r1] mov r1, #1 and r2, r1 add r3, r2, #0 mov r1, #6 mul r3, r1 ldr r1, _0224D724 ; =0x0222D550 mov r2, #0x88 ldrsh r1, [r1, r3] bl FUN_0200C714 _0224D5F0: ldrb r0, [r5, #1] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0224D5FC mov r0, #1 b _0224D5FE _0224D5FC: mov r0, #0 _0224D5FE: lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldrb r0, [r5, #1] lsl r0, r0, #0x18 lsr r0, r0, #0x1b str r0, [sp, #4] ldr r0, [r5, #4] str r0, [sp, #8] ldrb r2, [r5, #1] ldrh r1, [r5, #2] ldrb r3, [r4, #0x13] lsl r2, r2, #0x1e add r0, sp, #0x48 lsr r2, r2, #0x1e bl FUN_02068C00 ldr r0, [r5, #4] str r0, [sp] ldrb r3, [r5, #1] ldrh r0, [r5, #2] ldrb r2, [r4, #0x13] lsl r1, r3, #0x1e lsl r3, r3, #0x18 lsr r1, r1, #0x1e lsr r3, r3, #0x1b bl FUN_02068E88 str r0, [sp, #0x2c] mov r0, #1 str r0, [sp] add r0, sp, #0x30 ldrh r3, [r5, #2] add r0, #2 mov r1, #0x8a mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] add r0, sp, #0x30 ldrh r3, [r5, #2] add r0, #1 mov r1, #0x90 mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] ldrh r3, [r5, #2] add r0, sp, #0x30 mov r1, #0x8e mov r2, #0 bl FUN_02006548 add r0, sp, #0x30 ldrh r1, [r5, #2] add r0, #3 bl FUN_02069010 ldr r1, _0224D720 ; =0x00000195 mov r0, #6 ldrb r2, [r6, r1] ldr r3, _0224D724 ; =0x0222D550 add r7, r2, #0 mul r7, r0 ldr r0, _0224D728 ; =0x0222D552 mov r2, #2 ldrsh r0, [r0, r7] ldrsh r3, [r3, r7] str r0, [sp] ldr r0, _0224D72C ; =0x0222D554 ldrsh r0, [r0, r7] str r0, [sp, #4] ldr r0, [sp, #0x2c] str r0, [sp, #8] add r0, sp, #0x30 ldrsb r2, [r0, r2] str r2, [sp, #0xc] mov r2, #1 ldrsb r2, [r0, r2] str r2, [sp, #0x10] ldrb r0, [r0] add r2, sp, #0x48 str r0, [sp, #0x14] sub r0, r1, #1 ldrb r0, [r6, r0] ldr r1, [sp, #0x28] str r0, [sp, #0x18] add r0, sp, #0x30 add r0, #3 str r0, [sp, #0x1c] mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] bl MOD11_02253A88 str r0, [r6, #0x20] str r0, [r4, #8] ldrb r0, [r4, #0x13] cmp r0, #2 bne _0224D6D8 mov r3, #0 str r3, [sp] mov r1, #8 ldr r0, [r4, #8] add r2, r1, #0 bl FUN_02007E68 _0224D6D8: ldr r1, _0224D720 ; =0x00000195 ldrb r0, [r6, r1] lsl r2, r0, #2 ldr r0, _0224D730 ; =0x0222D538 ldrsh r0, [r0, r2] strh r0, [r4, #0x14] ldr r0, [sp, #0x24] str r0, [r4] str r6, [r4, #4] ldrb r0, [r5] strb r0, [r4, #0x10] sub r0, r1, #1 ldrb r0, [r6, r0] strb r0, [r4, #0x11] ldrh r0, [r5, #2] strh r0, [r4, #0x16] ldr r0, [r5, #8] str r0, [r4, #0x18] ldrb r0, [r6, r1] str r0, [r4, #0x1c] ldr r0, [r5, #4] bl FUN_02068884 str r0, [r4, #0x24] ldrb r0, [r5, #1] add r1, r4, #0 mov r2, #0 lsl r0, r0, #0x1d lsr r0, r0, #0x1f str r0, [r4, #0x28] ldr r0, _0224D734 ; =MOD11_0224EEA0 bl FUN_0200CA44 add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} nop _0224D720: .word 0x00000195 _0224D724: .word 0x0222D550 _0224D728: .word 0x0222D552 _0224D72C: .word 0x0222D554 _0224D730: .word 0x0222D538 _0224D734: .word MOD11_0224EEA0 thumb_func_start MOD11_0224D738 MOD11_0224D738: ; 0x0224D738 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 add r6, r1, #0 add r5, r2, #0 bl MOD11_0222FF74 mov r0, #5 mov r1, #0x9c bl FUN_02016998 add r4, r0, #0 ldr r0, _0224D874 ; =0x00000195 ldrb r1, [r6, r0] mov r0, #1 tst r0, r1 beq _0224D75E mov r1, #2 b _0224D760 _0224D75E: mov r1, #0 _0224D760: add r0, r4, #0 add r0, #0x84 strb r1, [r0] ldrb r0, [r5, #1] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0224D772 mov r0, #1 b _0224D774 _0224D772: mov r0, #0 _0224D774: lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldrb r0, [r5, #1] add r3, r4, #0 add r3, #0x84 lsl r0, r0, #0x18 lsr r0, r0, #0x1b str r0, [sp, #4] ldr r0, [r5, #4] str r0, [sp, #8] ldrb r2, [r5, #1] add r0, r4, #0 ldrh r1, [r5, #2] lsl r2, r2, #0x1e ldrb r3, [r3] add r0, #0x14 lsr r2, r2, #0x1e bl FUN_02068C00 ldr r0, [r5, #4] add r2, r4, #0 str r0, [sp] ldrb r3, [r5, #1] add r2, #0x84 ldrh r0, [r5, #2] lsl r1, r3, #0x1e lsl r3, r3, #0x18 ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b bl FUN_02068E88 add r1, r4, #0 add r1, #0x85 strb r0, [r1] mov r0, #1 str r0, [sp] add r0, r4, #0 ldrh r3, [r5, #2] add r0, #0x90 mov r1, #0x8a mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] add r0, r4, #0 ldrh r3, [r5, #2] add r0, #0x91 mov r1, #0x90 mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] add r0, r4, #0 ldrh r3, [r5, #2] add r0, #0x93 mov r1, #0x8e mov r2, #0 bl FUN_02006548 add r0, r6, #0 bl MOD11_02253A78 str r7, [r4] add r0, r4, #0 str r6, [r4, #4] mov r1, #0 add r0, #0x83 strb r1, [r0] add r0, r4, #0 add r0, #0x96 strb r1, [r0] add r0, r4, #0 ldrb r1, [r5] add r0, #0x80 strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r2, [r6, r0] add r1, r4, #0 add r1, #0x81 strb r2, [r1] add r1, r4, #0 ldrh r2, [r5, #2] add r1, #0x86 add r0, r0, #1 strh r2, [r1] ldrb r1, [r6, r0] add r0, r4, #0 add r0, #0x82 strb r1, [r0] add r0, r4, #0 ldr r1, [r5, #8] add r0, #0x88 str r1, [r0] add r0, r4, #0 ldr r1, [r5, #0xc] add r0, #0x8c strb r1, [r0] ldr r0, [r5, #4] bl FUN_02068884 add r1, r4, #0 add r1, #0x8d strb r0, [r1] add r0, r4, #0 ldr r1, [r5, #0x10] add r0, #0x8e strh r1, [r0] ldrb r0, [r5, #1] lsl r0, r0, #0x1d lsr r1, r0, #0x1f add r0, r4, #0 add r0, #0x92 strb r1, [r0] add r0, r4, #0 mov r2, #0 add r0, #0x94 strh r2, [r0] ldr r0, _0224D878 ; =MOD11_0224F2DC add r1, r4, #0 bl FUN_0200CA44 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _0224D874: .word 0x00000195 _0224D878: .word MOD11_0224F2DC thumb_func_start MOD11_0224D87C MOD11_0224D87C: ; 0x0224D87C push {r4, r5, r6, r7, lr} sub sp, #0x1c add r7, r0, #0 add r6, r1, #0 add r4, r2, #0 bl MOD11_0222FF74 mov r0, #5 mov r1, #0x9c bl FUN_02016998 add r5, r0, #0 add r1, r5, #0 mov r0, #0 add r1, #0x83 strb r0, [r1] ldr r1, _0224DA24 ; =0x00000195 ldrb r2, [r6, r1] mov r1, #1 tst r1, r2 beq _0224D8B0 add r0, r5, #0 mov r1, #2 add r0, #0x84 strb r1, [r0] b _0224D8B6 _0224D8B0: add r1, r5, #0 add r1, #0x84 strb r0, [r1] _0224D8B6: ldrb r0, [r4, #1] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0224D8C2 mov r0, #1 b _0224D8C4 _0224D8C2: mov r0, #0 _0224D8C4: lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldrb r0, [r4, #1] add r3, r5, #0 add r3, #0x84 lsl r0, r0, #0x18 lsr r0, r0, #0x1b str r0, [sp, #4] ldr r0, [r4, #4] str r0, [sp, #8] ldrb r2, [r4, #1] add r0, r5, #0 ldrh r1, [r4, #2] lsl r2, r2, #0x1e ldrb r3, [r3] add r0, #0x14 lsr r2, r2, #0x1e bl FUN_02068C00 ldr r0, [r4, #4] add r2, r5, #0 str r0, [sp] ldrb r3, [r4, #1] add r2, #0x84 ldrh r0, [r4, #2] lsl r1, r3, #0x1e lsl r3, r3, #0x18 ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b bl FUN_02068E88 add r1, r5, #0 add r1, #0x85 strb r0, [r1] mov r0, #1 str r0, [sp] add r0, r5, #0 ldrh r3, [r4, #2] add r0, #0x90 mov r1, #0x8a mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] add r0, r5, #0 ldrh r3, [r4, #2] add r0, #0x91 mov r1, #0x90 mov r2, #0 bl FUN_02006548 mov r0, #1 str r0, [sp] add r0, r5, #0 ldrh r3, [r4, #2] add r0, #0x93 mov r1, #0x8e mov r2, #0 bl FUN_02006548 add r0, r6, #0 bl MOD11_02253A78 str r7, [r5] str r6, [r5, #4] add r0, r5, #0 ldrb r1, [r4] add r0, #0x80 strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r2, [r6, r0] add r1, r5, #0 add r1, #0x81 strb r2, [r1] add r1, r5, #0 ldrh r2, [r4, #2] add r1, #0x86 add r0, r0, #1 strh r2, [r1] ldrb r1, [r6, r0] add r0, r5, #0 add r0, #0x82 strb r1, [r0] add r0, r5, #0 ldr r1, [r4, #8] add r0, #0x88 str r1, [r0] add r0, r5, #0 ldr r1, [r4, #0xc] add r0, #0x8c strb r1, [r0] ldr r0, [r4, #4] bl FUN_02068884 add r1, r5, #0 add r1, #0x8d strb r0, [r1] add r0, r5, #0 ldr r1, [r4, #0x10] add r0, #0x8e strh r1, [r0] ldrb r0, [r4, #1] lsl r0, r0, #0x1d lsr r1, r0, #0x1f add r0, r5, #0 add r0, #0x92 strb r1, [r0] add r0, r5, #0 ldr r1, [r4, #0x14] add r0, #0x94 strh r1, [r0] add r0, r5, #0 mov r1, #0 add r0, #0x96 strb r1, [r0] add r0, r5, #0 ldr r2, [r4, #0x4c] add r0, #0x98 str r2, [r0] str r4, [sp, #0x18] add r7, r5, #0 add r2, r4, #0 add r3, r5, #0 _0224D9C2: ldr r0, [sp, #0x18] add r0, #0x50 ldrh r6, [r0] add r0, r7, #0 add r0, #0x40 strh r6, [r0] add r0, r4, r1 add r0, #0x58 ldrb r6, [r0] add r0, r5, r1 str r0, [sp, #0x14] add r0, #0x48 str r0, [sp, #0x14] strb r6, [r0] add r0, r4, r1 add r0, #0x5c ldrb r6, [r0] add r0, r5, r1 str r0, [sp, #0x10] add r0, #0x4c str r0, [sp, #0x10] strb r6, [r0] add r0, r4, r1 add r0, #0x60 ldrb r6, [r0] add r0, r5, r1 str r0, [sp, #0xc] add r0, #0x50 str r0, [sp, #0xc] strb r6, [r0] ldr r0, [r2, #0x64] add r1, r1, #1 str r0, [r3, #0x54] ldr r0, [sp, #0x18] add r7, r7, #2 add r0, r0, #2 str r0, [sp, #0x18] add r2, r2, #4 add r3, r3, #4 cmp r1, #4 blt _0224D9C2 ldr r0, _0224DA28 ; =MOD11_0224F7C4 add r1, r5, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _0224DA24: .word 0x00000195 _0224DA28: .word MOD11_0224F7C4 thumb_func_start MOD11_0224DA2C MOD11_0224DA2C: ; 0x0224DA2C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x74 str r2, [sp] bl FUN_02016998 add r2, r0, #0 str r5, [r2] str r4, [r2, #4] ldr r0, [r4, #0x20] add r7, r2, #0 str r0, [r2, #8] ldr r0, [sp] add r5, r2, #0 ldrb r1, [r0] add r0, r2, #0 add r0, #0x68 strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r3, [r4, r0] add r1, r2, #0 add r1, #0x69 add r0, r0, #1 strb r3, [r1] ldrb r1, [r4, r0] add r0, r2, #0 add r0, #0x6a strb r1, [r0] add r0, r2, #0 mov r1, #0 add r0, #0x6b strb r1, [r0] ldr r0, [sp] ldrb r3, [r0, #1] add r0, r2, #0 add r0, #0x6c strb r3, [r0] ldr r0, [sp] ldrh r3, [r0, #2] add r0, r2, #0 add r0, #0x6e strh r3, [r0] ldr r0, [sp] ldr r3, [sp] ldr r0, [r0, #4] add r4, r3, #0 str r0, [r2, #0x70] _0224DA92: ldrh r0, [r3, #8] add r3, r3, #2 strh r0, [r7, #0x28] ldr r0, [sp] add r7, r7, #2 add r0, r0, r1 str r0, [sp, #0x10] ldrb r0, [r0, #0x10] str r0, [sp, #8] add r0, r2, r1 ldr r6, [sp, #8] add r0, #0x30 strb r6, [r0] ldr r0, [sp, #0x10] add r6, r2, r1 ldrb r0, [r0, #0x14] str r6, [sp, #4] add r6, #0x34 str r0, [sp, #0xc] strb r0, [r6] ldr r0, [sp, #0x10] str r6, [sp, #4] add r6, r2, r1 ldrb r0, [r0, #0x18] add r6, #0x38 add r1, r1, #1 strb r0, [r6] ldr r0, [r4, #0x1c] add r4, r4, #4 str r0, [r5, #0x3c] add r5, r5, #4 cmp r1, #4 blt _0224DA92 ldr r0, _0224DAE4 ; =MOD11_0224FD90 add r1, r2, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0224DAE4: .word MOD11_0224FD90 thumb_func_start MOD11_0224DAE8 MOD11_0224DAE8: ; 0x0224DAE8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x10 add r6, r2, #0 bl FUN_02016998 add r4, r0, #0 str r7, [r4] ldr r0, [r5, #0x20] str r0, [r4, #4] ldrb r0, [r6] strb r0, [r4, #8] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] add r0, r0, #1 strb r1, [r4, #9] ldrb r0, [r5, r0] mov r1, #0 add r3, r1, #0 strb r0, [r4, #0xa] strb r1, [r4, #0xb] ldrb r0, [r6, #1] strb r0, [r4, #0xc] ldrh r0, [r6, #2] lsl r2, r0, #1 ldr r0, _0224DB44 ; =0x0225E84A ldrh r0, [r0, r2] mov r2, #0x10 str r0, [sp] ldr r0, [r4, #4] bl FUN_02007E68 ldr r0, [r4, #4] mov r1, #0x2d mov r2, #1 bl FUN_02007558 ldr r0, _0224DB48 ; =MOD11_0224FFF0 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224DB44: .word 0x0225E84A _0224DB48: .word MOD11_0224FFF0 thumb_func_start MOD11_0224DB4C MOD11_0224DB4C: ; 0x0224DB4C push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r6, r0, #0 add r5, r1, #0 str r2, [sp, #0x24] bl MOD11_02230068 str r0, [sp, #0x2c] mov r0, #5 mov r1, #0x24 bl FUN_02016998 add r4, r0, #0 mov r2, #0 ldr r0, _0224DCCC ; =0x00000195 strb r2, [r4, #0x12] ldrb r0, [r5, r0] mov r1, #1 tst r0, r1 beq _0224DB9C mov r0, #2 strb r0, [r4, #0x13] add r0, r6, #0 bl MOD11_02230088 str r0, [r4, #8] ldr r1, _0224DCCC ; =0x00000195 ldr r0, [r0] ldrb r2, [r5, r1] mov r1, #1 and r2, r1 add r3, r2, #0 mov r1, #6 mul r3, r1 ldr r1, _0224DCD0 ; =0x0222D550 mov r2, #0x58 ldrsh r1, [r1, r3] bl FUN_0200C714 b _0224DBC2 _0224DB9C: add r0, r6, #0 add r1, r2, #0 strb r2, [r4, #0x13] bl MOD11_02230088 str r0, [r4, #8] ldr r1, _0224DCCC ; =0x00000195 ldr r0, [r0] ldrb r2, [r5, r1] mov r1, #1 and r2, r1 add r3, r2, #0 mov r1, #6 mul r3, r1 ldr r1, _0224DCD0 ; =0x0222D550 mov r2, #0x88 ldrsh r1, [r1, r3] bl FUN_0200C714 _0224DBC2: add r0, r6, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _0224DBE4 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 beq _0224DBEC ldr r0, _0224DCCC ; =0x00000195 ldrb r1, [r5, r0] mov r0, #1 tst r0, r1 beq _0224DBEC _0224DBE4: ldr r0, _0224DCCC ; =0x00000195 ldrb r0, [r5, r0] str r0, [sp, #0x28] b _0224DBF6 _0224DBEC: ldr r0, _0224DCCC ; =0x00000195 ldrb r1, [r5, r0] mov r0, #1 and r0, r1 str r0, [sp, #0x28] _0224DBF6: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] add r0, r6, #0 bl MOD11_0223021C add r3, r0, #0 ldr r1, [sp, #0x24] lsl r3, r3, #0x18 ldrh r1, [r1, #2] ldrb r2, [r4, #0x13] add r0, sp, #0x30 lsr r3, r3, #0x18 bl FUN_02068FE0 ldr r0, [sp, #0x28] mov r1, #6 add r7, r0, #0 mul r7, r1 ldr r0, _0224DCD4 ; =0x0222D552 mov r1, #0 ldrsh r0, [r0, r7] ldr r3, _0224DCD0 ; =0x0222D550 add r2, sp, #0x30 str r0, [sp] ldr r0, _0224DCD8 ; =0x0222D554 ldrsh r3, [r3, r7] ldrsh r0, [r0, r7] str r0, [sp, #4] str r1, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] mov r0, #0x65 str r1, [sp, #0x14] lsl r0, r0, #2 ldrb r0, [r5, r0] str r0, [sp, #0x18] str r1, [sp, #0x1c] str r1, [sp, #0x20] ldr r1, [sp, #0x2c] add r0, r6, #0 bl MOD11_02253A88 str r0, [r5, #0x1c] str r0, [r4, #4] ldrb r0, [r4, #0x13] cmp r0, #0 bne _0224DC80 add r0, r6, #0 bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _0224DC80 ldr r0, [sp, #0x24] ldrh r0, [r0, #2] bl FUN_0206AA30 ldr r3, _0224DCCC ; =0x00000195 add r2, r0, #0 ldrb r3, [r5, r3] ldr r1, [sp, #0x28] add r0, r6, #0 asr r3, r3, #1 bl MOD11_02254308 str r0, [r5, #0x18] str r0, [r4, #0xc] _0224DC80: ldr r0, [sp, #0x28] lsl r1, r0, #2 ldr r0, _0224DCDC ; =0x0222D538 ldrsh r0, [r0, r1] strh r0, [r4, #0x14] ldr r0, [sp, #0x24] str r6, [r4] ldrb r0, [r0] strb r0, [r4, #0x10] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] add r0, r0, #1 strb r1, [r4, #0x11] ldrb r0, [r5, r0] str r0, [r4, #0x18] mov r0, #0 str r0, [r4, #0x20] ldr r0, [r4, #0x18] cmp r0, #0 beq _0224DCAE cmp r0, #2 bne _0224DCBE _0224DCAE: add r0, r6, #0 bl MOD11_0222FF68 mov r1, #3 mov r2, #2 mov r3, #0x84 bl FUN_020179E0 _0224DCBE: ldr r0, _0224DCE0 ; =MOD11_02250060 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224DCCC: .word 0x00000195 _0224DCD0: .word 0x0222D550 _0224DCD4: .word 0x0222D552 _0224DCD8: .word 0x0222D554 _0224DCDC: .word 0x0222D538 _0224DCE0: .word MOD11_02250060 thumb_func_start MOD11_0224DCE4 MOD11_0224DCE4: ; 0x0224DCE4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x1c add r6, r2, #0 bl FUN_02016998 add r4, r0, #0 mov r0, #0 strb r0, [r4, #0xa] str r7, [r4] ldrb r1, [r6] strb r1, [r4, #8] ldrb r1, [r6, #1] str r1, [r4, #0x10] mov r1, #0x65 lsl r1, r1, #2 ldrb r2, [r5, r1] strb r2, [r4, #9] str r5, [r4, #4] add r2, r1, #1 ldrb r3, [r5, r2] mov r2, #1 tst r2, r3 beq _0224DD1E mov r1, #2 strb r1, [r4, #0xb] b _0224DD30 _0224DD1E: ldrb r1, [r5, r1] add r0, r7, #0 bl MOD11_02230188 mov r1, #0 strb r1, [r4, #0xb] ldrb r0, [r0, #1] bl FUN_0206AA30 _0224DD30: str r0, [r4, #0xc] ldr r0, _0224DD40 ; =MOD11_02250338 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} nop _0224DD40: .word MOD11_02250338 thumb_func_start MOD11_0224DD44 MOD11_0224DD44: ; 0x0224DD44 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x10 bl FUN_02016998 add r1, r0, #0 mov r0, #0 strb r0, [r1, #0xa] add r2, r4, #0 str r5, [r1] add r2, #0x94 ldrb r2, [r2] strb r2, [r1, #8] mov r2, #0x65 lsl r2, r2, #2 ldrb r3, [r4, r2] add r2, r2, #1 strb r3, [r1, #9] str r4, [r1, #4] ldrb r3, [r4, r2] mov r2, #1 tst r2, r3 beq _0224DD7A mov r0, #2 b _0224DD7A _0224DD7A: strb r0, [r1, #0xb] ldr r0, _0224DD88 ; =MOD11_022508A4 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, pc} nop _0224DD88: .word MOD11_022508A4 thumb_func_start MOD11_0224DD8C MOD11_0224DD8C: ; 0x0224DD8C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r0, [sp, #0x10] add r5, r1, #0 add r7, r2, #0 bl MOD11_02230068 str r0, [sp, #0x14] mov r0, #5 mov r1, #0x10 bl FUN_02016998 add r4, r0, #0 mov r0, #0 ldr r1, _0224DE38 ; =0x00000195 strb r0, [r4, #0xa] ldrb r2, [r5, r1] mov r1, #1 tst r1, r2 beq _0224DDB8 mov r0, #2 b _0224DDB8 _0224DDB8: mov r1, #0x65 strb r0, [r4, #0xb] lsl r1, r1, #2 ldrb r1, [r5, r1] ldr r0, [sp, #0x10] bl MOD11_0223021C add r3, r0, #0 lsl r3, r3, #0x18 ldrh r1, [r7, #2] ldrb r2, [r4, #0xb] add r0, sp, #0x18 lsr r3, r3, #0x18 bl FUN_02068FE0 ldr r0, _0224DE38 ; =0x00000195 mov r1, #6 ldrb r2, [r5, r0] sub r0, r0, #1 ldr r3, _0224DE3C ; =0x0222D576 add r6, r2, #0 mul r6, r1 ldr r1, _0224DE40 ; =0x0222D578 ldr r2, _0224DE44 ; =0x0222D574 ldrsh r1, [r1, r6] ldrsh r2, [r2, r6] ldrsh r3, [r3, r6] str r1, [sp] ldrb r0, [r5, r0] add r1, sp, #0x18 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] str r0, [sp, #0xc] ldr r0, [sp, #0x14] bl FUN_020073A0 str r0, [r5, #0x1c] str r0, [r4, #4] ldr r0, _0224DE38 ; =0x00000195 ldr r2, _0224DE48 ; =0x0222D538 ldrb r1, [r5, r0] sub r0, r0, #1 lsl r1, r1, #0x1f lsr r3, r1, #0x1d ldr r1, [r7, #4] add r2, r2, r3 lsl r1, r1, #1 ldrsh r1, [r1, r2] mov r2, #0 strh r1, [r4, #0xc] ldr r1, [sp, #0x10] str r1, [r4] ldrb r1, [r7] strb r1, [r4, #8] ldrb r0, [r5, r0] add r1, r4, #0 strb r0, [r4, #9] ldr r0, _0224DE4C ; =MOD11_0225092C bl FUN_0200CA44 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0224DE38: .word 0x00000195 _0224DE3C: .word 0x0222D576 _0224DE40: .word 0x0222D578 _0224DE44: .word 0x0222D574 _0224DE48: .word 0x0222D538 _0224DE4C: .word MOD11_0225092C thumb_func_start MOD11_0224DE50 MOD11_0224DE50: ; 0x0224DE50 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r6, #0 add r4, #0x28 add r7, r0, #0 add r5, r2, #0 mov r0, #0 add r1, r4, #0 mov r2, #1 bl MIi_CpuClearFast mov r0, #0x65 str r7, [r4, #0xc] lsl r0, r0, #2 ldrb r1, [r6, r0] add r0, r4, #0 add r0, #0x24 strb r1, [r0] add r0, r7, #0 bl MOD11_0222FF74 add r1, r0, #0 ldr r0, _0224DF10 ; =0x00000195 ldrb r0, [r6, r0] bl MOD11_02257F6C add r1, r4, #0 add r1, #0x25 strb r0, [r1] add r0, r4, #0 ldrb r1, [r5] add r0, #0x4c strb r1, [r0] mov r0, #2 ldrsh r0, [r5, r0] str r0, [r4, #0x28] ldrh r0, [r5, #4] str r0, [r4, #0x2c] add r0, r4, #0 ldrb r1, [r5, #1] add r0, #0x48 strb r1, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x19 lsr r1, r0, #0x1e add r0, r4, #0 add r0, #0x49 strb r1, [r0] mov r1, #0 str r1, [r4, #0x30] ldr r0, [r5, #8] str r0, [r4, #0x38] ldr r0, [r5, #0xc] str r0, [r4, #0x3c] add r0, r4, #0 ldrb r2, [r5, #6] add r0, #0x26 strb r2, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x1b lsr r2, r0, #0x1b add r0, r4, #0 add r0, #0x4a strb r2, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x18 lsr r2, r0, #0x1f add r0, r4, #0 add r0, #0x4b strb r2, [r0] add r0, r4, #0 ldrb r2, [r5, #0x14] add r0, #0x4d strb r2, [r0] add r0, r4, #0 ldr r2, [r5, #0x10] add r0, #0x27 strb r2, [r0] add r0, r4, #0 bl MOD11_022572AC mov r2, #0 ldr r1, [r4, #0x28] add r0, r4, #0 mvn r2, r2 bl MOD11_02256D70 mov r2, #0xfa ldr r0, _0224DF14 ; =MOD11_022509B4 add r1, r4, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} nop _0224DF10: .word 0x00000195 _0224DF14: .word MOD11_022509B4 thumb_func_start MOD11_0224DF18 MOD11_0224DF18: ; 0x0224DF18 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r5, #0 add r4, #0x28 add r6, r0, #0 mov r0, #0 add r1, r4, #0 mov r2, #1 bl MIi_CpuClearFast mov r0, #0x65 str r6, [r4, #0xc] lsl r0, r0, #2 ldrb r1, [r5, r0] add r0, r4, #0 add r0, #0x24 strb r1, [r0] add r5, #0x94 add r0, r4, #0 ldrb r1, [r5] add r0, #0x4c strb r1, [r0] add r0, r4, #0 mov r1, #1 bl MOD11_02257334 mov r2, #0xfa ldr r0, _0224DF5C ; =MOD11_02250A28 add r1, r4, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r4, #0x10] pop {r4, r5, r6, pc} .align 2, 0 _0224DF5C: .word MOD11_02250A28 thumb_func_start MOD11_0224DF60 MOD11_0224DF60: ; 0x0224DF60 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 str r1, [sp] mov r0, #5 mov r1, #0x3c add r5, r2, #0 bl FUN_02016998 add r4, r0, #0 mov r0, #0 add r1, r4, #0 mov r2, #0x3c bl MIi_CpuClearFast mov r7, #0 strb r7, [r4, #0xa] strb r7, [r4, #0xb] str r6, [r4] ldrb r0, [r5] mov r1, #0x65 lsl r1, r1, #2 strb r0, [r4, #8] ldr r0, [sp] add r3, r5, #0 ldrb r0, [r0, r1] add r1, r1, #1 add r6, r4, #0 strb r0, [r4, #9] ldr r0, [sp] ldrb r1, [r0, r1] add r0, r4, #0 add r0, #0x34 strb r1, [r0] ldr r0, [sp] add r0, #0x28 str r0, [r4, #4] add r0, r4, #0 ldrb r1, [r5, #1] add r0, #0x23 strb r1, [r0] mov r0, #0x24 ldrsh r0, [r5, r0] strh r0, [r4, #0x36] ldrh r0, [r5, #0x26] strh r0, [r4, #0x38] add r0, r5, #0 add r0, #0x28 ldrb r1, [r0] add r0, r4, #0 add r0, #0x3a strb r1, [r0] _0224DFC6: mov r2, #0 _0224DFC8: add r0, r3, r2 ldrb r1, [r0, #8] add r0, r6, r2 add r2, r2, #1 strb r1, [r0, #0x10] cmp r2, #6 blt _0224DFC8 add r7, r7, #1 add r3, r3, #6 add r6, r6, #6 cmp r7, #2 blt _0224DFC6 mov r0, #0 add r3, r0, #0 _0224DFE4: add r2, r5, r0 ldrb r1, [r2, #8] cmp r1, #2 bne _0224DFF2 add r1, r4, r0 strb r3, [r1, #0x1c] b _0224DFF8 _0224DFF2: ldrb r2, [r2, #2] add r1, r4, r0 strb r2, [r1, #0x1c] _0224DFF8: add r0, r0, #1 cmp r0, #6 blt _0224DFE4 mov r2, #0 add r3, r5, #0 add r6, r4, #0 _0224E004: ldrh r0, [r3, #0x14] add r7, r4, r2 add r1, r5, r2 strh r0, [r6, #0x24] ldrb r0, [r1, #0x1c] add r7, #0x2c add r1, #0x20 strb r0, [r7] add r0, r4, r2 ldrb r1, [r1] add r0, #0x30 add r2, r2, #1 strb r1, [r0] add r3, r3, #2 add r6, r6, #2 cmp r2, #4 blt _0224E004 ldr r0, [sp] add r1, r4, #0 ldr r0, [r0] mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0224E034 MOD11_0224E034: ; 0x0224E034 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 str r1, [sp] mov r0, #5 mov r1, #0x24 add r7, r2, #0 bl FUN_02016998 add r3, r0, #0 mov r1, #0x65 mov r4, #0 add r0, #0x20 strb r4, [r0] ldr r0, [sp] str r5, [r3] add r0, #0x94 ldrb r0, [r0] lsl r1, r1, #2 add r5, r7, #0 strb r0, [r3, #0x1c] ldr r0, [sp] add r6, r3, #0 ldrb r0, [r0, r1] add r1, r1, #1 strb r0, [r3, #0x1d] ldr r0, [sp] ldrb r0, [r0, r1] strb r0, [r3, #0x1e] ldr r0, [sp] add r0, #0x28 str r0, [r3, #4] ldrb r0, [r7, #1] strb r0, [r3, #0x1f] _0224E076: ldrh r0, [r5, #4] add r2, r7, r4 add r1, r3, r4 strh r0, [r6, #0xc] ldrb r0, [r2, #0xc] add r4, r4, #1 add r5, r5, #2 strb r0, [r1, #0x14] ldrb r0, [r2, #0x10] add r6, r6, #2 cmp r4, #4 strb r0, [r1, #0x18] blt _0224E076 ldrh r0, [r7, #2] add r1, r3, #0 mov r2, #0 strh r0, [r3, #0x22] ldr r0, [sp] ldr r0, [r0, #4] bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224E0A4 MOD11_0224E0A4: ; 0x0224E0A4 push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] add r7, r1, #0 mov r0, #5 mov r1, #0x34 add r5, r2, #0 bl FUN_02016998 add r6, r0, #0 mov r0, #0 strb r0, [r6, #0xf] ldr r0, [sp] str r0, [r6] add r0, r7, #0 add r0, #0x94 ldrb r0, [r0] strb r0, [r6, #0xc] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r7, r0] add r0, r0, #1 strb r1, [r6, #0xd] ldrb r0, [r7, r0] strb r0, [r6, #0xe] ldrh r0, [r5, #2] strh r0, [r6, #0x30] add r0, r7, #0 add r0, #0x28 str r0, [r6, #4] add r0, r6, #0 ldrb r1, [r5, #1] add r0, #0x32 strb r1, [r0] ldr r0, [sp] add r1, sp, #4 bl MOD11_02231504 ldr r0, [sp] bl MOD11_0222FF84 add r4, r0, #0 ldr r0, [sp] bl MOD11_0222FF74 mov r0, #0 cmp r4, #0 ble _0224E120 add r1, r6, #0 _0224E106: ldrh r2, [r5, #4] add r0, r0, #1 strh r2, [r1, #0x10] ldrh r2, [r5, #6] strh r2, [r1, #0x12] ldrh r2, [r5, #8] strh r2, [r1, #0x14] ldrh r2, [r5, #0xa] add r5, #8 strh r2, [r1, #0x16] add r1, #8 cmp r0, r4 blt _0224E106 _0224E120: ldr r0, [r7, #8] add r1, r6, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224E130 MOD11_0224E130: ; 0x0224E130 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 str r1, [sp] mov r0, #5 mov r1, #0x34 str r2, [sp, #4] bl FUN_02016998 add r4, r0, #0 mov r0, #5 mov r1, #0x34 bl FUN_02016998 str r0, [r4, #8] mov r0, #5 mov r1, #0x38 bl FUN_02016998 ldr r1, [r4, #8] str r0, [r1, #4] mov r0, #5 bl FUN_0206B8AC ldr r1, [r4, #8] mov r6, #0 ldr r1, [r1, #4] ldr r3, [sp, #4] str r0, [r1] strb r6, [r4, #0xe] str r5, [r4] ldr r0, [sp, #4] mov r1, #0x65 ldrb r0, [r0] lsl r1, r1, #2 add r5, r4, #0 strb r0, [r4, #0xc] ldr r0, [sp] ldrb r0, [r0, r1] add r1, r1, #1 strb r0, [r4, #0xd] ldr r0, [sp] ldrb r0, [r0, r1] strb r0, [r4, #0xf] ldr r0, [sp, #4] ldrb r0, [r0, #1] strb r0, [r4, #0x14] ldr r0, [sp, #4] ldrb r0, [r0, #2] strb r0, [r4, #0x15] ldr r0, [sp, #4] ldrb r0, [r0, #3] strb r0, [r4, #0x16] _0224E19A: ldr r0, [sp, #4] ldr r1, [r4, #8] add r7, r0, r6 ldrb r0, [r7, #4] add r1, r1, r6 mov r2, #0 strb r0, [r1, #0xc] _0224E1A8: add r0, r3, r2 ldrb r1, [r0, #8] add r0, r5, r2 add r2, r2, #1 strb r1, [r0, #0x18] cmp r2, #6 blt _0224E1A8 add r7, #0x20 ldrb r1, [r7] add r0, r4, r6 add r0, #0x30 add r6, r6, #1 strb r1, [r0] add r3, r3, #6 add r5, r5, #6 cmp r6, #4 blt _0224E19A ldr r0, [sp] add r1, r4, #0 ldr r0, [r0, #0xc] mov r2, #0 bl FUN_0200CA44 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224E1DC MOD11_0224E1DC: ; 0x0224E1DC push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 str r1, [sp] mov r0, #5 mov r1, #0x34 add r7, r2, #0 bl FUN_02016998 add r2, r0, #0 mov r3, #0 strb r3, [r2, #0xa] str r4, [r2] ldrb r0, [r7] add r5, r7, #0 add r6, r2, #0 strb r0, [r2, #8] ldrb r0, [r7, #1] strb r0, [r2, #9] ldrb r0, [r7, #2] strb r0, [r2, #0xb] ldr r0, [r7, #0x20] str r0, [r2, #0x10] ldrb r0, [r7, #3] strb r0, [r2, #0x16] add r0, r7, #0 strh r3, [r2, #0x14] add r0, #0x24 ldrb r0, [r0] strb r0, [r2, #0x18] _0224E216: add r0, r7, r3 ldrb r1, [r0, #4] add r0, r2, r3 mov r4, #0 strb r1, [r0, #0xc] _0224E220: add r0, r5, r4 ldrb r1, [r0, #8] add r0, r6, r4 add r4, r4, #1 strb r1, [r0, #0x1c] cmp r4, #6 blt _0224E220 add r3, r3, #1 add r5, r5, #6 add r6, r6, #6 cmp r3, #4 blt _0224E216 ldr r0, [sp] add r1, r2, #0 ldr r0, [r0, #0x10] mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0224E248 MOD11_0224E248: ; 0x0224E248 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x1c add r4, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #0xe] str r6, [r1] ldrb r0, [r4] strb r0, [r1, #0xc] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r5, r0] strb r0, [r1, #0xd] add r0, r5, #0 add r0, #0x28 str r0, [r1, #4] ldrh r0, [r4, #2] str r0, [r1, #0x10] ldrb r0, [r4, #1] strb r0, [r1, #0xf] ldr r0, [r4, #4] strh r0, [r1, #0x18] ldr r0, [r4, #8] str r0, [r1, #0x14] ldr r0, [r5, #0x14] bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224E28C MOD11_0224E28C: ; 0x0224E28C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r6, r0, #0 add r7, r1, #0 add r5, r2, #0 bl MOD11_022300C8 str r0, [sp] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r6, [r4] ldrb r0, [r5] mov r1, #0x65 lsl r1, r1, #2 strb r0, [r4, #4] ldrb r0, [r7, r1] strb r0, [r4, #5] ldrh r2, [r5, #2] lsl r0, r2, #1 add r2, r2, r0 add r0, sp, #4 strh r2, [r0, #2] mov r2, #2 strb r2, [r0, #1] ldrb r0, [r5, #1] ldrb r1, [r7, r1] lsl r0, r0, #8 orr r0, r1 str r0, [sp, #8] add r0, r6, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r6, #0 add r2, sp, #4 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E2F0 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0224E2F0: .word MOD11_02253008 thumb_func_start MOD11_0224E2F4 MOD11_0224E2F4: ; 0x0224E2F4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 bl MOD11_022300C4 str r0, [sp] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 add r0, r6, #0 str r5, [r4] add r0, #0x94 ldrb r0, [r0] strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r5, #0 add r2, r7, #0 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E340 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} nop _0224E340: .word MOD11_02253008 thumb_func_start MOD11_0224E344 MOD11_0224E344: ; 0x0224E344 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r1, #0 mov r0, #5 mov r1, #0x70 add r5, r2, #0 bl FUN_02016998 add r4, r0, #0 mov r1, #0 add r0, #0x6a strb r1, [r0] str r7, [r4] add r0, r6, #0 str r6, [r4, #4] add r0, #0x94 ldrb r1, [r0] add r0, r4, #0 add r0, #0x68 strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r6, r0] add r0, r4, #0 add r0, #0x69 strb r1, [r0] add r0, r7, #0 bl MOD11_02230070 add r3, r4, #0 str r0, [r4, #0xc] add r7, r5, #0 add r3, #0x10 mov r2, #0xb _0224E388: ldmia r7!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0224E388 ldr r0, [r6, #0x20] str r0, [r4, #8] ldr r0, [r5, #0x4c] cmp r0, #1 bne _0224E3A8 ldr r0, [r5, #0x50] cmp r0, #0x19 bne _0224E3A8 mov r0, #0x1a mov r1, #1 lsl r0, r0, #4 str r1, [r6, r0] _0224E3A8: ldr r0, [r5, #0x4c] cmp r0, #1 bne _0224E3BC ldr r0, [r5, #0x50] cmp r0, #0x1a bne _0224E3BC mov r0, #0x1a mov r1, #0 lsl r0, r0, #4 str r1, [r6, r0] _0224E3BC: ldrh r0, [r5, #2] add r1, r4, #0 add r1, #0x6c str r0, [sp] add r0, r4, #0 ldr r2, [r5, #0x4c] ldr r3, [r5, #0x50] add r0, #0x6b bl MOD11_022545B4 ldr r0, _0224E3DC ; =MOD11_02252754 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224E3DC: .word MOD11_02252754 thumb_func_start MOD11_0224E3E0 MOD11_0224E3E0: ; 0x0224E3E0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0xc bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #9] str r5, [r1] ldr r0, [r4, #0x20] str r0, [r1, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] strb r0, [r1, #8] ldr r0, _0224E40C ; =MOD11_022529C0 strb r2, [r1, #0xa] bl FUN_0200CA44 pop {r3, r4, r5, pc} .align 2, 0 _0224E40C: .word MOD11_022529C0 thumb_func_start MOD11_0224E410 MOD11_0224E410: ; 0x0224E410 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r0, #0 ldr r0, [r6, #0x2c] add r5, r2, #0 cmp r0, #0 bne _0224E422 bl ErrorHandling _0224E422: add r4, r6, #0 add r4, #0x28 add r0, r4, #0 mov r1, #0 mov r2, #1 bl MI_CpuFill8 str r7, [r4, #0xc] add r0, r4, #0 ldrb r1, [r5] add r0, #0x4c strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r6, r0] add r0, r4, #0 add r0, #0x24 strb r1, [r0] add r0, r7, #0 bl MOD11_0222FF74 add r1, r0, #0 ldr r0, _0224E490 ; =0x00000195 ldrb r0, [r6, r0] bl MOD11_02257F6C add r1, r4, #0 add r1, #0x25 strb r0, [r1] mov r0, #2 ldrsh r0, [r5, r0] str r0, [r4, #0x28] ldrh r0, [r5, #4] str r0, [r4, #0x2c] ldr r0, [r5, #8] str r0, [r4, #0x30] add r0, r4, #0 ldrb r1, [r5, #1] add r0, #0x48 strb r1, [r0] ldr r1, [r5, #8] ldr r0, _0224E494 ; =0x00007FFF cmp r1, r0 bne _0224E480 mov r0, #0 str r0, [r4, #0x28] str r0, [r4, #0x30] _0224E480: mov r2, #0xfa ldr r0, _0224E498 ; =MOD11_02252A1C add r1, r4, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224E490: .word 0x00000195 _0224E494: .word 0x00007FFF _0224E498: .word MOD11_02252A1C thumb_func_start MOD11_0224E49C MOD11_0224E49C: ; 0x0224E49C push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r0, #0 ldr r0, [r6, #0x2c] add r5, r2, #0 cmp r0, #0 bne _0224E4AE bl ErrorHandling _0224E4AE: add r4, r6, #0 add r4, #0x28 add r0, r4, #0 mov r1, #0 mov r2, #1 bl MI_CpuFill8 str r7, [r4, #0xc] add r0, r4, #0 ldrb r1, [r5] add r0, #0x4c strb r1, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r2, [r6, r0] add r1, r4, #0 add r1, #0x24 strb r2, [r1] ldr r1, [r5, #4] add r0, r0, #1 str r1, [r4, #0x38] ldr r1, [r5, #0xc] str r1, [r4, #0x3c] ldr r2, [r5, #8] ldr r1, [r4, #0x38] sub r1, r2, r1 str r1, [r4, #0x40] ldrb r0, [r6, r0] cmp r0, #0 bne _0224E4FA mov r2, #0xfa ldr r0, _0224E50C ; =MOD11_02252A70 add r1, r4, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} _0224E4FA: add r1, r4, #0 ldr r0, [r4, #0xc] add r1, #0x24 add r4, #0x4c ldrb r1, [r1] ldrb r2, [r4] bl MOD11_022567B8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224E50C: .word MOD11_02252A70 thumb_func_start MOD11_0224E510 MOD11_0224E510: ; 0x0224E510 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x74 str r2, [sp] bl FUN_02016998 add r1, r0, #0 ldr r0, _0224E5F0 ; =0x00000195 ldrb r2, [r4, r0] mov r0, #1 tst r0, r2 beq _0224E532 mov r2, #2 b _0224E534 _0224E532: mov r2, #0 _0224E534: add r0, r1, #0 add r0, #0x67 strb r2, [r0] add r0, r1, #0 mov r2, #0 add r0, #0x66 strb r2, [r0] str r5, [r1] ldr r0, [sp] str r4, [r1, #4] ldrb r3, [r0] add r0, r1, #0 add r0, #0x64 strb r3, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r3, [r4, r0] add r0, r1, #0 add r0, #0x65 strb r3, [r0] ldr r0, [r4, #0x20] add r7, r1, #0 str r0, [r1, #8] ldr r0, [sp] add r5, r1, #0 ldrh r3, [r0, #2] add r0, r1, #0 add r0, #0x68 strh r3, [r0] ldr r0, [sp] ldrb r3, [r0, #1] add r0, r1, #0 add r0, #0x6a strb r3, [r0] ldr r0, [sp] ldrb r3, [r0, #8] add r0, r1, #0 add r0, #0x6b strb r3, [r0] ldr r0, [sp] ldr r0, [r0, #4] str r0, [r1, #0x6c] ldr r0, [sp] ldrb r3, [r0, #9] add r0, r1, #0 add r0, #0x70 strh r3, [r0] ldr r0, [sp] ldrb r3, [r0, #0xa] add r0, r1, #0 add r0, #0x72 strh r3, [r0] ldr r3, [sp] add r4, r3, #0 _0224E5A0: ldrh r0, [r3, #0xc] add r3, r3, #2 strh r0, [r7, #0x24] ldr r0, [sp] add r7, r7, #2 add r0, r0, r2 str r0, [sp, #0x10] ldrb r0, [r0, #0x14] str r0, [sp, #8] add r0, r1, r2 ldr r6, [sp, #8] add r0, #0x2c strb r6, [r0] ldr r0, [sp, #0x10] add r6, r1, r2 ldrb r0, [r0, #0x18] str r6, [sp, #4] add r6, #0x30 str r0, [sp, #0xc] strb r0, [r6] ldr r0, [sp, #0x10] str r6, [sp, #4] add r6, r1, r2 ldrb r0, [r0, #0x1c] add r6, #0x34 add r2, r2, #1 strb r0, [r6] ldr r0, [r4, #0x20] add r4, r4, #4 str r0, [r5, #0x38] add r5, r5, #4 cmp r2, #4 blt _0224E5A0 ldr r0, _0224E5F4 ; =MOD11_02252B30 mov r2, #0 bl FUN_0200CA44 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0224E5F0: .word 0x00000195 _0224E5F4: .word MOD11_02252B30 thumb_func_start MOD11_0224E5F8 MOD11_0224E5F8: ; 0x0224E5F8 push {r3, r4, r5, lr} add r5, r2, #0 ldr r2, _0224E624 ; =0x00000195 mov r4, #1 ldrb r2, [r1, r2] tst r2, r4 beq _0224E60A mov r4, #0x75 b _0224E60C _0224E60A: sub r4, #0x76 _0224E60C: mov r2, #0x65 lsl r2, r2, #2 ldrb r1, [r1, r2] ldrb r2, [r5] bl MOD11_022567B8 ldrh r0, [r5, #2] add r1, r4, #0 bl FUN_020054A8 pop {r3, r4, r5, pc} nop _0224E624: .word 0x00000195 thumb_func_start MOD11_0224E628 MOD11_0224E628: ; 0x0224E628 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #8 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #6] add r0, r4, #0 str r5, [r1] add r0, #0x94 ldrb r0, [r0] strb r0, [r1, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] strb r0, [r1, #5] ldr r0, _0224E658 ; =MOD11_02252DB4 bl FUN_0200CA44 pop {r3, r4, r5, pc} nop _0224E658: .word MOD11_02252DB4 thumb_func_start MOD11_0224E65C MOD11_0224E65C: ; 0x0224E65C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x68 str r2, [sp] bl FUN_02016998 add r1, r0, #0 str r5, [r1] ldr r0, [sp] str r4, [r1, #4] ldrb r2, [r0] add r0, r1, #0 add r0, #0x60 strb r2, [r0] mov r0, #0x65 lsl r0, r0, #2 ldrb r2, [r4, r0] add r0, r1, #0 add r0, #0x61 strb r2, [r0] add r0, r1, #0 mov r2, #0 add r0, #0x62 strb r2, [r0] ldr r0, [sp] add r7, r1, #0 ldrb r3, [r0, #1] add r0, r1, #0 add r0, #0x63 strb r3, [r0] ldr r0, [sp] ldr r3, [sp] ldrb r0, [r0, #2] add r4, r3, #0 add r5, r1, #0 str r0, [r1, #0x64] _0224E6AA: ldrh r0, [r3, #4] add r3, r3, #2 strh r0, [r7, #0x20] ldr r0, [sp] add r7, r7, #2 add r0, r0, r2 str r0, [sp, #0x10] ldrb r0, [r0, #0xc] str r0, [sp, #8] add r0, r1, r2 ldr r6, [sp, #8] add r0, #0x28 strb r6, [r0] ldr r0, [sp, #0x10] add r6, r1, r2 ldrb r0, [r0, #0x10] str r6, [sp, #4] add r6, #0x2c str r0, [sp, #0xc] strb r0, [r6] ldr r0, [sp, #0x10] str r6, [sp, #4] add r6, r1, r2 ldrb r0, [r0, #0x14] add r6, #0x30 add r2, r2, #1 strb r0, [r6] ldr r0, [r4, #0x18] add r4, r4, #4 str r0, [r5, #0x34] add r5, r5, #4 cmp r2, #4 blt _0224E6AA ldr r0, _0224E6F8 ; =MOD11_02252E50 mov r2, #0 bl FUN_0200CA44 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224E6F8: .word MOD11_02252E50 thumb_func_start MOD11_0224E6FC MOD11_0224E6FC: ; 0x0224E6FC push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #0x2c] add r4, r2, #0 cmp r0, #0 bne _0224E70E bl ErrorHandling _0224E70E: ldrb r1, [r4, #1] add r0, r5, #0 add r0, #0x72 strb r1, [r0] add r0, r5, #0 mov r2, #1 ldr r1, [r5, #0x50] add r0, #0x28 lsl r2, r2, #8 bl MOD11_02256D70 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 pop {r4, r5, r6, pc} thumb_func_start MOD11_0224E734 MOD11_0224E734: ; 0x0224E734 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] add r6, r0, #0 add r7, r2, #0 bl MOD11_02230140 str r0, [sp, #4] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r6, [r4] ldrb r0, [r7] strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r5, r0] strb r0, [r4, #5] add r0, r6, #0 bl MOD11_02230E54 str r0, [sp] mov r2, #0x65 lsl r2, r2, #2 ldrb r2, [r5, r2] ldrb r3, [r7, #1] ldr r1, [sp, #4] add r0, r6, #0 bl MOD11_02231684 strb r0, [r4, #6] ldr r0, _0224E78C ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0224E78C: .word MOD11_02253008 thumb_func_start MOD11_0224E790 MOD11_0224E790: ; 0x0224E790 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 add r3, sp, #4 add r6, r1, #0 add r7, r2, #0 bl MOD11_02253B74 add r0, r5, #0 bl MOD11_022300C4 str r0, [sp] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] ldrb r0, [r7] strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r5, #0 add r2, sp, #4 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E7E4 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0224E7E4: .word MOD11_02253008 thumb_func_start MOD11_0224E7E8 MOD11_0224E7E8: ; 0x0224E7E8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 add r3, sp, #4 add r6, r1, #0 add r7, r2, #0 bl MOD11_02253C48 add r0, r5, #0 bl MOD11_022300C4 str r0, [sp] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] ldrb r0, [r7] strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r5, #0 add r2, sp, #4 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E83C ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0224E83C: .word MOD11_02253008 thumb_func_start MOD11_0224E840 MOD11_0224E840: ; 0x0224E840 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 add r2, sp, #0 add r6, r1, #0 bl MOD11_02253D28 add r0, r5, #0 bl MOD11_022300C4 add r7, r0, #0 mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] mov r0, #0x22 strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, sp, #0 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E890 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224E890: .word MOD11_02253008 thumb_func_start MOD11_0224E894 MOD11_0224E894: ; 0x0224E894 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 add r3, sp, #4 add r6, r1, #0 add r7, r2, #0 bl MOD11_02253DD4 add r0, r5, #0 bl MOD11_022300C4 str r0, [sp] mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] ldrb r0, [r7] strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r5, #0 add r2, sp, #4 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224E8E8 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _0224E8E8: .word MOD11_02253008 thumb_func_start MOD11_0224E8EC MOD11_0224E8EC: ; 0x0224E8EC push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0xc bl FUN_02016998 add r1, r0, #0 add r0, r4, #0 str r5, [r1] add r0, #0x94 ldrb r0, [r0] mov r2, #0 strb r0, [r1, #8] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] add r4, #0x28 strb r0, [r1, #9] strb r2, [r1, #0xa] ldr r0, _0224E920 ; =MOD11_02252FBC str r4, [r1, #4] bl FUN_0200CA44 pop {r3, r4, r5, pc} nop _0224E920: .word MOD11_02252FBC thumb_func_start MOD11_0224E924 MOD11_0224E924: ; 0x0224E924 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, _0224E9B8 ; =0x00000196 add r4, r2, #0 ldrb r2, [r5, r1] add r6, r0, #0 cmp r2, #0 bne _0224E976 bl MOD11_022300C4 str r0, [sp] mov r0, #5 mov r1, #0xc bl FUN_02016998 add r7, r0, #0 str r6, [r7] ldrb r0, [r4] strb r0, [r7, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r5, r0] strb r0, [r7, #5] mov r0, #0 strb r0, [r7, #7] add r0, r6, #0 bl MOD11_02230E54 add r3, r0, #0 ldr r1, [sp] add r0, r6, #0 add r2, r4, #4 bl MOD11_0223178C strb r0, [r7, #6] ldr r0, _0224E9BC ; =MOD11_0225304C add r1, r7, #0 mov r2, #0 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} _0224E976: cmp r2, #1 bne _0224E992 sub r1, r1, #2 ldrb r1, [r5, r1] bl MOD11_02256004 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 pop {r3, r4, r5, r6, r7, pc} _0224E992: bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _0224E9A8 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] add r0, r6, #0 bl MOD11_02256004 _0224E9A8: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224E9B8: .word 0x00000196 _0224E9BC: .word MOD11_0225304C thumb_func_start MOD11_0224E9C0 MOD11_0224E9C0: ; 0x0224E9C0 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r6, #0 add r4, #0x28 add r7, r0, #0 add r5, r2, #0 mov r0, #0 add r1, r4, #0 mov r2, #1 bl MIi_CpuClearFast mov r0, #0x65 str r7, [r4, #0xc] lsl r0, r0, #2 ldrb r1, [r6, r0] add r0, r4, #0 add r0, #0x24 strb r1, [r0] add r0, r7, #0 bl MOD11_0222FF74 add r1, r0, #0 ldr r0, _0224EA70 ; =0x00000195 ldrb r0, [r6, r0] bl MOD11_02257F6C add r1, r4, #0 add r1, #0x25 strb r0, [r1] add r0, r4, #0 ldrb r1, [r5] add r0, #0x4c mov r2, #0 strb r1, [r0] mov r0, #2 ldrsh r0, [r5, r0] str r0, [r4, #0x28] ldrh r0, [r5, #4] str r0, [r4, #0x2c] add r0, r4, #0 ldrb r1, [r5, #1] add r0, #0x48 strb r1, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x19 lsr r1, r0, #0x1e add r0, r4, #0 add r0, #0x49 strb r1, [r0] str r2, [r4, #0x30] ldr r0, [r5, #8] sub r2, #0x21 str r0, [r4, #0x38] ldr r0, [r5, #0xc] str r0, [r4, #0x3c] add r0, r4, #0 ldrb r1, [r5, #6] add r0, #0x26 strb r1, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x1b lsr r1, r0, #0x1b add r0, r4, #0 add r0, #0x4a strb r1, [r0] ldrb r0, [r5, #7] lsl r0, r0, #0x18 lsr r1, r0, #0x1f add r0, r4, #0 add r0, #0x4b strb r1, [r0] add r0, r4, #0 ldr r1, [r5, #0x10] add r0, #0x27 strb r1, [r0] ldr r1, [r4, #0x28] add r0, r4, #0 bl MOD11_02256D70 add r1, r4, #0 ldr r0, [r4, #0xc] add r1, #0x24 add r4, #0x4c ldrb r1, [r1] ldrb r2, [r4] bl MOD11_022567B8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224EA70: .word 0x00000195 thumb_func_start MOD11_0224EA74 MOD11_0224EA74: ; 0x0224EA74 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #5 mov r1, #0x10 add r4, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #0xa] str r5, [r1] ldrb r0, [r4] strb r0, [r1, #8] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r1, #9] ldrh r0, [r4, #2] strh r0, [r1, #0xc] ldrb r0, [r4, #1] strb r0, [r1, #0xe] ldr r0, _0224EAA8 ; =MOD11_022533F4 bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _0224EAA8: .word MOD11_022533F4 thumb_func_start MOD11_0224EAAC MOD11_0224EAAC: ; 0x0224EAAC push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x10 add r4, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #0xa] str r6, [r1] ldr r0, [r5, #0x20] str r0, [r1, #4] ldrb r0, [r4] strb r0, [r1, #8] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r5, r0] strb r0, [r1, #9] ldrb r0, [r4, #1] strb r0, [r1, #0xb] strb r2, [r1, #0xc] ldrb r0, [r4, #2] strb r0, [r1, #0xd] ldr r0, _0224EAE8 ; =MOD11_0225352C bl FUN_0200CA44 pop {r4, r5, r6, pc} nop _0224EAE8: .word MOD11_0225352C thumb_func_start MOD11_0224EAEC MOD11_0224EAEC: ; 0x0224EAEC push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x10 add r4, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r0, #0 strb r0, [r1, #7] str r6, [r1] ldrb r2, [r4] strb r2, [r1, #4] mov r2, #0x65 lsl r2, r2, #2 ldrb r3, [r5, r2] add r2, r2, #1 strb r3, [r1, #5] ldrb r2, [r5, r2] strb r2, [r1, #6] _0224EB16: add r2, r4, r0 ldrb r3, [r2, #2] add r2, r1, r0 add r0, r0, #1 strb r3, [r2, #8] cmp r0, #6 blt _0224EB16 ldr r0, _0224EB30 ; =MOD11_0225359C mov r2, #0 strb r2, [r1, #0xe] bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _0224EB30: .word MOD11_0225359C thumb_func_start MOD11_0224EB34 MOD11_0224EB34: ; 0x0224EB34 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x10 add r6, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #7] str r5, [r1] ldrb r0, [r6] strb r0, [r1, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r3, [r4, r0] add r0, r0, #1 strb r3, [r1, #5] ldrb r0, [r4, r0] strb r0, [r1, #6] ldr r0, _0224EB68 ; =MOD11_02253650 strb r2, [r1, #0xe] bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _0224EB68: .word MOD11_02253650 thumb_func_start MOD11_0224EB6C MOD11_0224EB6C: ; 0x0224EB6C push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #5 mov r1, #0x10 add r4, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r0, #0 strb r0, [r1, #7] str r6, [r1] ldrb r2, [r4] strb r2, [r1, #4] mov r2, #0x65 lsl r2, r2, #2 ldrb r3, [r5, r2] add r2, r2, #1 strb r3, [r1, #5] ldrb r2, [r5, r2] strb r2, [r1, #6] _0224EB96: add r2, r4, r0 ldrb r3, [r2, #2] add r2, r1, r0 add r0, r0, #1 strb r3, [r2, #8] cmp r0, #6 blt _0224EB96 mov r0, #1 strb r0, [r1, #0xe] ldr r0, _0224EBB4 ; =MOD11_0225359C mov r2, #0 bl FUN_0200CA44 pop {r4, r5, r6, pc} nop _0224EBB4: .word MOD11_0225359C thumb_func_start MOD11_0224EBB8 MOD11_0224EBB8: ; 0x0224EBB8 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x10 add r6, r2, #0 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #7] str r5, [r1] ldrb r0, [r6] strb r0, [r1, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r3, [r4, r0] add r0, r0, #1 strb r3, [r1, #5] ldrb r0, [r4, r0] strb r0, [r1, #6] mov r0, #1 strb r0, [r1, #0xe] ldr r0, _0224EBF0 ; =MOD11_02253650 bl FUN_0200CA44 pop {r4, r5, r6, pc} nop _0224EBF0: .word MOD11_02253650 thumb_func_start MOD11_0224EBF4 MOD11_0224EBF4: ; 0x0224EBF4 push {r4, r5, lr} sub sp, #0x24 add r4, r1, #0 ldr r1, _0224EC44 ; =0x00000196 add r5, r0, #0 ldrb r1, [r4, r1] cmp r1, #0 bne _0224EC32 bl MOD11_022300C4 add r1, r0, #0 ldr r2, _0224EC48 ; =0x0000039B add r0, sp, #0 strh r2, [r0, #2] mov r3, #0 strb r3, [r0, #1] add r0, r5, #0 add r2, sp, #0 bl MOD11_0223178C add r0, r5, #0 mov r1, #0 bl MOD11_0222FF6C mov r1, #1 bl FUN_0200D858 add r1, r0, #0 add r0, r5, #0 bl MOD11_022312C8 _0224EC32: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] add r0, r5, #0 mov r2, #0x37 bl MOD11_022567B8 add sp, #0x24 pop {r4, r5, pc} .align 2, 0 _0224EC44: .word 0x00000196 _0224EC48: .word 0x0000039B thumb_func_start MOD11_0224EC4C MOD11_0224EC4C: ; 0x0224EC4C push {r4, r5, r6, lr} sub sp, #0x50 mov r3, #0x65 add r4, r1, #0 lsl r3, r3, #2 add r6, r2, #0 ldrb r3, [r4, r3] add r1, r6, #0 add r2, sp, #0 add r5, r0, #0 bl MOD11_0225452C add r0, sp, #0 mov r1, #5 bl MOD08_0222A494 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] ldrb r2, [r6] add r0, r5, #0 bl MOD11_022567B8 add sp, #0x50 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224EC80 MOD11_0224EC80: ; 0x0224EC80 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x10 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #0xe] str r5, [r1] add r0, r4, #0 str r4, [r1, #4] add r0, #0x94 ldrb r0, [r0] strb r0, [r1, #0xc] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] strb r0, [r1, #0xd] ldr r0, [r4, #0x20] str r0, [r1, #8] ldr r0, _0224ECB4 ; =MOD11_022536D4 bl FUN_0200CA44 pop {r3, r4, r5, pc} .align 2, 0 _0224ECB4: .word MOD11_022536D4 thumb_func_start MOD11_0224ECB8 MOD11_0224ECB8: ; 0x0224ECB8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #5 mov r1, #0x10 bl FUN_02016998 add r1, r0, #0 mov r2, #0 strb r2, [r1, #0xe] str r5, [r1] add r0, r4, #0 str r4, [r1, #4] add r0, #0x94 ldrb r0, [r0] strb r0, [r1, #0xc] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r4, r0] strb r0, [r1, #0xd] ldr r0, [r4, #0x20] str r0, [r1, #8] ldr r0, _0224ECEC ; =MOD11_02253720 bl FUN_0200CA44 pop {r3, r4, r5, pc} .align 2, 0 _0224ECEC: .word MOD11_02253720 thumb_func_start MOD11_0224ECF0 MOD11_0224ECF0: ; 0x0224ECF0 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 add r2, sp, #0 add r6, r1, #0 bl MOD11_02254108 add r0, r5, #0 bl MOD11_022300C4 add r7, r0, #0 mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] mov r0, #0x3b strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, sp, #0 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224ED40 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224ED40: .word MOD11_02253008 thumb_func_start MOD11_0224ED44 MOD11_0224ED44: ; 0x0224ED44 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 add r3, sp, #0 add r6, r1, #0 bl MOD11_022541C4 add r0, r5, #0 bl MOD11_022300C4 add r7, r0, #0 mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] mov r0, #0x3c strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, sp, #0 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224ED94 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224ED94: .word MOD11_02253008 thumb_func_start MOD11_0224ED98 MOD11_0224ED98: ; 0x0224ED98 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 add r2, sp, #0 add r6, r1, #0 bl MOD11_022542B4 add r0, r5, #0 bl MOD11_022300C4 add r7, r0, #0 mov r0, #5 mov r1, #8 bl FUN_02016998 add r4, r0, #0 str r5, [r4] mov r0, #0x3d strb r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] strb r0, [r4, #5] add r0, r5, #0 bl MOD11_02230E54 add r3, r0, #0 add r0, r5, #0 add r1, r7, #0 add r2, sp, #0 bl MOD11_0223178C strb r0, [r4, #6] ldr r0, _0224EDE8 ; =MOD11_02253008 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _0224EDE8: .word MOD11_02253008 thumb_func_start MOD11_0224EDEC MOD11_0224EDEC: ; 0x0224EDEC push {r4, r5, r6, lr} sub sp, #0x50 mov r3, #0x65 add r4, r1, #0 lsl r3, r3, #2 add r6, r2, #0 ldrb r3, [r4, r3] add r1, r6, #0 add r2, sp, #0 add r5, r0, #0 bl MOD11_0225452C add r0, sp, #0 mov r1, #5 bl MOD08_0222A568 mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] ldrb r2, [r6] add r0, r5, #0 bl MOD11_022567B8 add sp, #0x50 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224EE20 MOD11_0224EE20: ; 0x0224EE20 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 ldr r0, _0224EE70 ; =0x00000195 mov r1, #1 ldrb r0, [r5, r0] add r4, r2, #0 tst r0, r1 beq _0224EE36 mov r1, #0x75 b _0224EE38 _0224EE36: sub r1, #0x76 _0224EE38: ldrb r0, [r4, #1] cmp r0, #0 beq _0224EE48 cmp r0, #1 beq _0224EE58 cmp r0, #2 beq _0224EE50 b _0224EE5E _0224EE48: ldr r0, _0224EE74 ; =0x000006FE bl FUN_020054A8 b _0224EE5E _0224EE50: ldr r0, _0224EE78 ; =0x000006FC bl FUN_020054A8 b _0224EE5E _0224EE58: ldr r0, _0224EE7C ; =0x000006FD bl FUN_020054A8 _0224EE5E: mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 pop {r4, r5, r6, pc} nop _0224EE70: .word 0x00000195 _0224EE74: .word 0x000006FE _0224EE78: .word 0x000006FC _0224EE7C: .word 0x000006FD thumb_func_start MOD11_0224EE80 MOD11_0224EE80: ; 0x0224EE80 push {r4, r5, r6, lr} add r4, r2, #0 add r6, r0, #0 ldrh r0, [r4, #2] add r5, r1, #0 bl FUN_0200521C mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] ldrb r2, [r4] add r0, r6, #0 bl MOD11_022567B8 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0224EEA0 MOD11_0224EEA0: ; 0x0224EEA0 push {r3, r4, r5, r6, lr} sub sp, #0x6c add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230070 ldrb r1, [r4, #0x12] add r5, r0, #0 cmp r1, #5 bls _0224EEB8 b _0224F2C2 _0224EEB8: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224EEC4: ; jump table .short _0224EED0 - _0224EEC4 - 2 ; case 0 .short _0224EEDA - _0224EEC4 - 2 ; case 1 .short _0224EEE8 - _0224EEC4 - 2 ; case 2 .short _0224F15E - _0224EEC4 - 2 ; case 3 .short _0224F1B2 - _0224EEC4 - 2 ; case 4 .short _0224F1D0 - _0224EEC4 - 2 ; case 5 _0224EED0: mov r0, #0x1c str r0, [r4, #0x20] ldrb r0, [r4, #0x12] add r0, r0, #1 strb r0, [r4, #0x12] _0224EEDA: ldr r0, [r4, #0x20] sub r0, r0, #1 str r0, [r4, #0x20] bne _0224EFAE ldrb r0, [r4, #0x12] add r0, r0, #1 strb r0, [r4, #0x12] _0224EEE8: ldrb r0, [r4, #0x13] add r1, sp, #0x10 cmp r0, #2 ldr r0, [r4, #0xc] beq _0224EEF4 b _0224F040 _0224EEF4: ldr r0, [r0] add r1, #2 add r2, sp, #0x10 bl FUN_0200C7A0 ldr r0, [r4, #0x1c] cmp r0, #1 beq _0224EF08 cmp r0, #3 bne _0224EF2A _0224EF08: add r1, sp, #0x10 mov r0, #2 ldrsh r0, [r1, r0] cmp r0, #0xc0 ldr r0, [r4, #0xc] bge _0224EF20 ldr r0, [r0] mov r1, #8 mov r2, #0 bl FUN_0200C82C b _0224EF2A _0224EF20: ldr r0, [r0] mov r1, #0xc0 mov r2, #0x58 bl FUN_0200C714 _0224EF2A: ldr r0, [r4, #0xc] add r1, sp, #0x10 ldr r0, [r0] add r1, #2 add r2, sp, #0x10 bl FUN_0200C7A0 ldr r0, [r4, #0x1c] cmp r0, #1 bne _0224EF4E add r3, sp, #0x10 mov r2, #2 ldrsh r2, [r3, r2] ldr r0, [r4, #8] mov r1, #0 bl FUN_02007558 b _0224EF9E _0224EF4E: cmp r0, #3 bne _0224EF78 ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C add r3, sp, #0x10 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r0, r1 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x18 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] neg r2, r2 bl FUN_020079E0 b _0224EF9E _0224EF78: cmp r0, #5 bne _0224EF9E ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C add r3, sp, #0x10 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r1, r0 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x10 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] bl FUN_020079E0 _0224EF9E: ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C mov r1, #0x14 ldrsh r1, [r4, r1] cmp r0, r1 bge _0224EFB0 _0224EFAE: b _0224F2D8 _0224EFB0: ldr r0, [r4, #8] mov r1, #1 bl FUN_02007314 ldr r0, [r4, #8] mov r1, #0x2c mov r2, #0 bl FUN_02007558 ldr r0, [r4, #8] mov r1, #0x2d mov r2, #0 bl FUN_02007558 mov r2, #0x14 ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0 bl FUN_02007558 ldr r0, [r4] bl MOD11_02230E80 ldr r1, [r4, #0x24] str r1, [sp] mov r1, #0 str r1, [sp, #4] ldrb r1, [r4, #0x11] str r1, [sp, #8] ldrh r2, [r4, #0x16] ldrb r3, [r4, #0x13] ldr r1, [r4, #8] bl FUN_02069038 ldrb r1, [r4, #0x11] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 str r1, [sp, #8] ldrh r2, [r4, #0x16] ldr r1, [r4, #0x18] mov r3, #0x75 bl FUN_02069FB0 ldr r0, [r4, #0x1c] cmp r0, #1 beq _0224F01C cmp r0, #3 bne _0224F028 _0224F01C: ldr r0, [r4, #0xc] mov r1, #0xc0 ldr r0, [r0] mov r2, #0x58 bl FUN_0200C714 _0224F028: mov r2, #0 str r2, [sp] ldr r0, [r4, #8] mov r1, #8 add r3, r2, #0 bl FUN_02007E68 ldrb r0, [r4, #0x12] add sp, #0x6c add r0, r0, #1 strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F040: ldr r0, [r0] add r1, #2 add r2, sp, #0x10 bl FUN_0200C7A0 ldr r0, [r4, #0x1c] cmp r0, #0 beq _0224F054 cmp r0, #2 bne _0224F076 _0224F054: add r0, sp, #0x10 mov r1, #2 ldrsh r0, [r0, r1] cmp r0, #0x40 ldr r0, [r4, #0xc] ble _0224F06C ldr r0, [r0] sub r1, #0xa mov r2, #0 bl FUN_0200C82C b _0224F076 _0224F06C: ldr r0, [r0] mov r1, #0x40 mov r2, #0x88 bl FUN_0200C714 _0224F076: ldr r0, [r4, #0xc] add r1, sp, #0x10 ldr r0, [r0] add r1, #2 add r2, sp, #0x10 bl FUN_0200C7A0 ldr r0, [r4, #0x1c] cmp r0, #0 bne _0224F09A add r3, sp, #0x10 mov r2, #2 ldrsh r2, [r3, r2] ldr r0, [r4, #8] mov r1, #0 bl FUN_02007558 b _0224F0EA _0224F09A: cmp r0, #2 bne _0224F0C2 ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C add r3, sp, #0x10 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r1, r0 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x18 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] bl FUN_020079E0 b _0224F0EA _0224F0C2: cmp r0, #4 bne _0224F0EA ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C add r3, sp, #0x10 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r0, r1 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x10 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] neg r2, r2 bl FUN_020079E0 _0224F0EA: mov r0, #0x14 ldrsh r5, [r4, r0] ldr r0, [r4, #8] mov r1, #0 bl FUN_0200782C cmp r0, r5 bgt _0224F1C0 ldr r0, [r4, #8] mov r1, #0 add r2, r5, #0 bl FUN_02007558 ldr r0, [r4] bl MOD11_02230E80 ldr r1, [r4, #0x24] str r1, [sp] mov r1, #0 str r1, [sp, #4] ldrb r1, [r4, #0x11] str r1, [sp, #8] ldrh r2, [r4, #0x16] ldrb r3, [r4, #0x13] ldr r1, [r4, #8] bl FUN_02069038 ldrb r1, [r4, #0x11] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 str r3, [sp, #8] ldrh r2, [r4, #0x16] ldr r1, [r4, #0x18] sub r3, #0x7a bl FUN_02069FB0 ldr r0, [r4, #0x1c] cmp r0, #0 beq _0224F148 cmp r0, #2 bne _0224F154 _0224F148: ldr r0, [r4, #0xc] mov r1, #0x40 ldr r0, [r0] mov r2, #0x88 bl FUN_0200C714 _0224F154: ldrb r0, [r4, #0x12] add sp, #0x6c add r0, r0, #1 strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F15E: ldr r0, [r4] bl MOD11_02230E80 ldrb r1, [r4, #0x11] bl FUN_02014D7C cmp r0, #1 bne _0224F1C0 ldr r0, [r4, #8] bl FUN_02007390 cmp r0, #0 bne _0224F1C0 ldr r0, [r4, #0x28] cmp r0, #0 beq _0224F1AA ldrb r1, [r4, #0x11] mov r0, #0xb add r2, sp, #0x14 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x14 bl MOD11_02254404 mov r0, #4 add sp, #0x6c strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F1AA: mov r0, #0xff add sp, #0x6c strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F1B2: bl FUN_02212384 add r0, r5, #0 bl FUN_022123A0 cmp r0, #0 beq _0224F1C2 _0224F1C0: b _0224F2D8 _0224F1C2: add r0, r5, #0 bl FUN_022123B0 mov r0, #0xff add sp, #0x6c strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F1D0: ldrb r5, [r4, #0x13] cmp r5, #2 bne _0224F25E ldr r0, [r4, #8] mov r1, #1 bl FUN_02007314 ldr r0, [r4, #8] mov r1, #0x2c mov r2, #0 bl FUN_02007558 ldr r0, [r4, #8] mov r1, #0x2d mov r2, #0 bl FUN_02007558 mov r2, #0x14 ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0 bl FUN_02007558 ldr r0, [r4] bl MOD11_02230E80 ldr r1, [r4, #0x24] str r1, [sp] mov r1, #0 str r1, [sp, #4] ldrb r1, [r4, #0x11] str r1, [sp, #8] ldrh r2, [r4, #0x16] ldrb r3, [r4, #0x13] ldr r1, [r4, #8] bl FUN_02069038 ldrb r1, [r4, #0x11] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 str r1, [sp, #8] ldrh r2, [r4, #0x16] ldr r1, [r4, #0x18] mov r3, #0x75 bl FUN_02069FB0 ldr r0, [r4, #0x1c] cmp r0, #1 beq _0224F242 cmp r0, #3 bne _0224F24E _0224F242: ldr r0, [r4, #0xc] mov r1, #0xc0 ldr r0, [r0] mov r2, #0x58 bl FUN_0200C714 _0224F24E: mov r2, #0 str r2, [sp] ldr r0, [r4, #8] mov r1, #8 add r3, r2, #0 bl FUN_02007E68 b _0224F2BA _0224F25E: ldr r0, [r4] bl MOD11_02230E80 ldr r1, [r4, #0x24] add r3, r5, #0 str r1, [sp] mov r1, #0 str r1, [sp, #4] ldrb r1, [r4, #0x11] str r1, [sp, #8] ldrh r2, [r4, #0x16] ldr r1, [r4, #8] bl FUN_02069038 ldrb r1, [r4, #0x11] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 str r3, [sp, #8] ldrh r2, [r4, #0x16] ldr r1, [r4, #0x18] sub r3, #0x7a bl FUN_02069FB0 mov r2, #0x14 ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0 bl FUN_02007558 ldr r0, [r4, #0x1c] cmp r0, #0 beq _0224F2AE cmp r0, #2 bne _0224F2BA _0224F2AE: ldr r0, [r4, #0xc] mov r1, #0x40 ldr r0, [r0] mov r2, #0x88 bl FUN_0200C714 _0224F2BA: mov r0, #3 add sp, #0x6c strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _0224F2C2: ldrb r1, [r4, #0x11] ldrb r2, [r4, #0x10] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _0224F2D8: add sp, #0x6c pop {r3, r4, r5, r6, pc} thumb_func_start MOD11_0224F2DC MOD11_0224F2DC: ; 0x0224F2DC push {r4, r5, lr} sub sp, #0x9c add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] cmp r0, #7 bls _0224F2F0 b _0224F7A2 _0224F2F0: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0224F2FC: ; jump table .short _0224F30C - _0224F2FC - 2 ; case 0 .short _0224F322 - _0224F2FC - 2 ; case 1 .short _0224F366 - _0224F2FC - 2 ; case 2 .short _0224F4B0 - _0224F2FC - 2 ; case 3 .short _0224F4CC - _0224F2FC - 2 ; case 4 .short _0224F6E2 - _0224F2FC - 2 ; case 5 .short _0224F6F6 - _0224F2FC - 2 ; case 6 .short _0224F77C - _0224F2FC - 2 ; case 7 _0224F30C: add r0, r4, #0 mov r1, #0 add r0, #0x96 strb r1, [r0] add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x83 strb r1, [r0] _0224F322: add r1, sp, #0x38 mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] add r0, r4, #0 add r0, #0x82 ldrb r0, [r0] add r1, r4, #0 add r2, r4, #0 str r0, [sp, #0x38] add r1, #0x81 add r2, #0x8c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_02230014 str r0, [sp, #0x40] mov r0, #5 add r1, sp, #0x38 bl MOD08_02228218 str r0, [r4, #8] bl MOD08_02228524 add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x9c add r0, r0, #1 strb r0, [r4] pop {r4, r5, pc} _0224F366: ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A80 cmp r0, #0 bne _0224F3AE ldr r0, [r4, #8] bl MOD08_02228570 cmp r0, #1 bne _0224F3AE ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A00 cmp r0, #1 bne _0224F3AE add r0, r4, #0 add r0, #0x82 ldrb r0, [r0] cmp r0, #4 bne _0224F3B8 add r0, r4, #0 add r0, #0x96 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x96 strb r1, [r0] add r0, r4, #0 add r0, #0x96 ldrb r0, [r0] cmp r0, #0xc bhs _0224F3B0 _0224F3AE: b _0224F7C0 _0224F3B0: add r0, r4, #0 mov r1, #0 add r0, #0x96 strb r1, [r0] _0224F3B8: ldr r0, [r4] bl MOD11_02230068 add r1, r4, #0 add r1, #0x86 add r5, r0, #0 ldrh r1, [r1] add r0, sp, #0x24 bl FUN_02069010 add r0, r4, #0 add r0, #0x82 ldrb r3, [r0] mov r0, #6 add r2, r4, #0 add r1, r3, #0 mul r1, r0 ldr r0, _0224F690 ; =0x0222D552 add r2, #0x14 ldrsh r0, [r0, r1] str r0, [sp] ldr r0, _0224F694 ; =0x0222D554 ldrsh r0, [r0, r1] add r1, r5, #0 lsl r5, r3, #2 str r0, [sp, #4] add r0, r4, #0 add r0, #0x85 ldrb r0, [r0] ldr r3, _0224F698 ; =0x0222D538 str r0, [sp, #8] mov r0, #0x90 ldrsb r0, [r4, r0] ldrsh r3, [r3, r5] str r0, [sp, #0xc] mov r0, #0x91 ldrsb r0, [r4, r0] str r0, [sp, #0x10] add r0, r4, #0 add r0, #0x93 ldrb r0, [r0] str r0, [sp, #0x14] add r0, r4, #0 add r0, #0x81 ldrb r0, [r0] str r0, [sp, #0x18] add r0, sp, #0x24 str r0, [sp, #0x1c] mov r0, #0 str r0, [sp, #0x20] ldr r0, [r4] bl MOD11_02253A88 ldr r1, [r4, #4] mov r2, #0 str r0, [r1, #0x20] ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #1 bl FUN_02007558 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r3, #0 lsl r1, r0, #1 ldr r0, _0224F69C ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0x10 add r2, r1, #0 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #8] bl MOD08_022285A4 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 ldr r0, _0224F6A0 ; =0x00000706 bne _0224F498 mov r1, #0x75 bl FUN_020054A8 b _0224F4A0 _0224F498: mov r1, #0x74 mvn r1, r1 bl FUN_020054A8 _0224F4A0: add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x9c add r0, r0, #1 strb r0, [r4] pop {r4, r5, pc} _0224F4B0: ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_022299E8 cmp r0, #1 beq _0224F4CC add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x83 strb r1, [r0] _0224F4CC: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_0200782C mov r1, #1 lsl r1, r1, #8 cmp r0, r1 bne _0224F5B2 ldr r0, [r4, #8] bl MOD08_022285B4 cmp r0, #0 bne _0224F5B2 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 bne _0224F534 ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x20] bl FUN_02007314 ldr r0, [r4, #4] mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 add r2, r4, #0 str r1, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] mov r3, #0x75 bl FUN_02069FB0 b _0224F55E _0224F534: add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 add r2, r4, #0 str r3, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] sub r3, #0x7a bl FUN_02069FB0 _0224F55E: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x8d ldrb r1, [r1] add r2, r4, #0 add r3, r4, #0 str r1, [sp] mov r1, #0 str r1, [sp, #4] add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] add r2, #0x86 add r3, #0x84 str r1, [sp, #8] ldr r1, [r4, #4] ldrh r2, [r2] ldrb r3, [r3] ldr r1, [r1, #0x20] bl FUN_02069038 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r2, #0 add r3, r2, #0 lsl r1, r0, #1 ldr r0, _0224F69C ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0x10 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 mov r0, #5 add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F5B2: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_0200782C mov r2, #1 lsl r2, r2, #8 cmp r0, r2 ldr r0, [r4, #4] blt _0224F6BC ldr r0, [r0, #0x20] mov r1, #0xc bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 bl FUN_02007558 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 bne _0224F628 ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x20] bl FUN_02007314 ldr r0, [r4, #4] mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 add r2, r4, #0 str r1, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] mov r3, #0x75 bl FUN_02069FB0 b _0224F652 _0224F628: add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 add r2, r4, #0 str r3, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] sub r3, #0x7a bl FUN_02069FB0 _0224F652: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x8d ldrb r1, [r1] add r2, r4, #0 add r3, r4, #0 str r1, [sp] mov r1, #0 str r1, [sp, #4] add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] add r2, #0x86 add r3, #0x84 str r1, [sp, #8] ldr r1, [r4, #4] ldrh r2, [r2] ldrb r3, [r3] ldr r1, [r1, #0x20] bl FUN_02069038 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r2, #0 mov r3, #1 lsl r1, r0, #1 ldr r0, _0224F69C ; =0x0225E84A b _0224F6A4 .align 2, 0 _0224F690: .word 0x0222D552 _0224F694: .word 0x0222D554 _0224F698: .word 0x0222D538 _0224F69C: .word 0x0225E84A _0224F6A0: .word 0x00000706 _0224F6A4: ldrh r0, [r0, r1] mov r1, #0x10 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 mov r0, #5 add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F6BC: ldr r0, [r0, #0x20] mov r1, #0xc mov r2, #0x20 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0x20 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0x90 ldrsb r1, [r4, r1] ldr r0, [r0, #0x20] bl FUN_02007F34 add sp, #0x9c pop {r4, r5, pc} _0224F6E2: ldr r0, [r4, #8] bl MOD08_022285B4 cmp r0, #0 bne _0224F7C0 mov r0, #6 add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F6F6: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] bl FUN_02014D7C cmp r0, #1 bne _0224F7C0 ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007390 cmp r0, #0 bne _0224F7C0 ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A2C ldr r0, [r4, #4] mov r1, #0 add r0, #0x88 str r1, [r0] ldr r0, [r4, #8] bl MOD08_02228618 add r0, r4, #0 add r0, #0x92 ldrb r0, [r0] cmp r0, #0 beq _0224F772 mov r0, #5 bl FUN_02211F5C str r0, [r4, #0x24] add r0, r4, #0 add r0, #0x81 ldrb r1, [r0] mov r0, #0xb add r2, sp, #0x44 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0x24] add r3, sp, #0x44 bl MOD11_02254404 mov r0, #7 add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F772: mov r0, #0xff add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F77C: ldr r0, [r4, #0x24] bl FUN_02212384 ldr r0, [r4, #0x24] bl FUN_022123A0 cmp r0, #0 bne _0224F7C0 ldr r0, [r4, #0x24] bl FUN_022123B0 ldr r0, [r4, #0x24] bl FUN_02212024 mov r0, #0xff add r4, #0x83 add sp, #0x9c strb r0, [r4] pop {r4, r5, pc} _0224F7A2: add r1, r4, #0 add r2, r4, #0 add r1, #0x81 add r2, #0x80 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0224F7C0: add sp, #0x9c pop {r4, r5, pc} thumb_func_start MOD11_0224F7C4 MOD11_0224F7C4: ; 0x0224F7C4 push {r3, r4, r5, r6, lr} sub sp, #0x1c4 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r1, r4, #0 add r1, #0x83 ldrb r1, [r1] add r5, r0, #0 cmp r1, #0xb bls _0224F7E0 b _0224FD68 _0224F7E0: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224F7EC: ; jump table .short _0224F804 - _0224F7EC - 2 ; case 0 .short _0224F90C - _0224F7EC - 2 ; case 1 .short _0224F958 - _0224F7EC - 2 ; case 2 .short _0224F9E2 - _0224F7EC - 2 ; case 3 .short _0224F9FA - _0224F7EC - 2 ; case 4 .short _0224FC14 - _0224F7EC - 2 ; case 5 .short _0224FC28 - _0224F7EC - 2 ; case 6 .short _0224FC9C - _0224F7EC - 2 ; case 7 .short _0224FCC0 - _0224F7EC - 2 ; case 8 .short _0224FC9C - _0224F7EC - 2 ; case 9 .short _0224FD0C - _0224F7EC - 2 ; case 10 .short _0224FC9C - _0224F7EC - 2 ; case 11 _0224F804: add r0, r4, #0 add r0, #0x82 ldrb r1, [r0] ldr r0, _0224FB58 ; =0x0225E818 ldrb r0, [r0, r1] str r0, [sp, #0x44] mov r0, #5 str r0, [sp, #0x48] add r0, r4, #0 add r0, #0x81 ldrb r0, [r0] str r0, [sp, #0x50] add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] str r0, [sp, #0x54] ldr r0, [r4] bl MOD11_02230078 str r0, [sp, #0x60] ldr r0, [r4] bl MOD11_022300CC str r0, [sp, #0x64] mov r2, #1 mov r1, #0 add r0, r4, #0 str r2, [sp, #0x58] str r1, [sp, #0x5c] add r0, #0x94 ldrh r0, [r0] cmp r0, #1 bne _0224F84A str r2, [sp, #0x4c] b _0224F84C _0224F84A: str r1, [sp, #0x4c] _0224F84C: add r0, sp, #0x44 bl MOD08_02229918 str r0, [r4, #0xc] ldr r0, [r4] bl MOD11_02230068 add r1, r4, #0 add r1, #0x86 add r5, r0, #0 ldrh r1, [r1] add r0, sp, #0x30 bl FUN_02069010 add r0, r4, #0 add r0, #0x82 ldrb r3, [r0] mov r0, #6 add r2, r4, #0 add r1, r3, #0 mul r1, r0 ldr r0, _0224FB5C ; =0x0222D552 add r2, #0x14 ldrsh r0, [r0, r1] str r0, [sp] ldr r0, _0224FB60 ; =0x0222D554 ldrsh r0, [r0, r1] add r1, r5, #0 lsl r5, r3, #2 str r0, [sp, #4] add r0, r4, #0 add r0, #0x85 ldrb r0, [r0] ldr r3, _0224FB64 ; =0x0222D538 str r0, [sp, #8] mov r0, #0x90 ldrsb r0, [r4, r0] ldrsh r3, [r3, r5] str r0, [sp, #0xc] mov r0, #0x91 ldrsb r0, [r4, r0] str r0, [sp, #0x10] add r0, r4, #0 add r0, #0x93 ldrb r0, [r0] str r0, [sp, #0x14] add r0, r4, #0 add r0, #0x81 ldrb r0, [r0] str r0, [sp, #0x18] add r0, sp, #0x30 str r0, [sp, #0x1c] mov r0, #0 str r0, [sp, #0x20] ldr r0, [r4] bl MOD11_02253A88 ldr r1, [r4, #4] mov r2, #0 str r0, [r1, #0x20] ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #1 bl FUN_02007558 ldr r0, [r4] mov r1, #5 bl FUN_0221590C str r0, [r4, #0x10] add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224F90C: add r1, sp, #0x24 mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] add r0, r4, #0 add r0, #0x82 ldrb r0, [r0] add r1, r4, #0 add r2, r4, #0 str r0, [sp, #0x24] add r1, #0x81 add r2, #0x8c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_02230014 str r0, [sp, #0x2c] add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] add r1, sp, #0x24 str r0, [sp, #0x28] mov r0, #5 bl MOD08_02228218 str r0, [r4, #8] bl MOD08_02228524 add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224F958: ldr r0, [r4, #0xc] bl MOD08_02229A80 cmp r0, #0 beq _0224F96C add r0, r4, #0 add r0, #0x94 ldrh r0, [r0] cmp r0, #0 beq _0224F980 _0224F96C: ldr r0, [r4, #8] bl MOD08_02228570 cmp r0, #1 bne _0224F980 ldr r0, [r4, #0xc] bl MOD08_02229A00 cmp r0, #1 beq _0224F982 _0224F980: b _0224FD86 _0224F982: ldr r0, [r4, #0x10] bl FUN_02215918 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r3, #0 lsl r1, r0, #1 ldr r0, _0224FB68 ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0x10 add r2, r1, #0 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #8] bl MOD08_022285A4 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 ldr r0, _0224FB6C ; =0x00000706 bne _0224F9CA mov r1, #0x75 bl FUN_020054A8 b _0224F9D2 _0224F9CA: mov r1, #0x74 mvn r1, r1 bl FUN_020054A8 _0224F9D2: add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224F9E2: ldr r0, [r4, #0xc] bl MOD08_022299E8 cmp r0, #1 beq _0224F9FA add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x83 strb r1, [r0] _0224F9FA: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_0200782C mov r1, #1 lsl r1, r1, #8 cmp r0, r1 bne _0224FAE0 ldr r0, [r4, #8] bl MOD08_022285B4 cmp r0, #0 bne _0224FAE0 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 bne _0224FA62 ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x20] bl FUN_02007314 ldr r0, [r4, #4] mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 add r2, r4, #0 str r1, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] mov r3, #0x75 bl FUN_02069FB0 b _0224FA8C _0224FA62: add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 add r2, r4, #0 str r3, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] sub r3, #0x7a bl FUN_02069FB0 _0224FA8C: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x8d ldrb r1, [r1] add r2, r4, #0 add r3, r4, #0 str r1, [sp] mov r1, #0 str r1, [sp, #4] add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] add r2, #0x86 add r3, #0x84 str r1, [sp, #8] ldr r1, [r4, #4] ldrh r2, [r2] ldrb r3, [r3] ldr r1, [r1, #0x20] bl FUN_02069038 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r2, #0 add r3, r2, #0 lsl r1, r0, #1 ldr r0, _0224FB68 ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0x10 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 mov r0, #5 add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FAE0: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] bl FUN_0200782C mov r2, #1 lsl r2, r2, #8 cmp r0, r2 ldr r0, [r4, #4] blt _0224FBEE ldr r0, [r0, #0x20] mov r1, #0xc bl FUN_02007558 ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 bl FUN_02007558 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] cmp r0, #2 bne _0224FB70 ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x20] bl FUN_02007314 ldr r0, [r4, #4] mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 bl FUN_02007558 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #5 add r2, r4, #0 str r1, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] mov r3, #0x75 bl FUN_02069FB0 b _0224FB9A nop _0224FB58: .word 0x0225E818 _0224FB5C: .word 0x0222D552 _0224FB60: .word 0x0222D554 _0224FB64: .word 0x0222D538 _0224FB68: .word 0x0225E84A _0224FB6C: .word 0x00000706 _0224FB70: add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r3, #5 add r2, r4, #0 str r3, [sp, #8] add r1, r4, #0 add r2, #0x86 add r1, #0x88 ldrh r2, [r2] ldr r1, [r1] sub r3, #0x7a bl FUN_02069FB0 _0224FB9A: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x8d ldrb r1, [r1] add r2, r4, #0 add r3, r4, #0 str r1, [sp] mov r1, #0 str r1, [sp, #4] add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] add r2, #0x86 add r3, #0x84 str r1, [sp, #8] ldr r1, [r4, #4] ldrh r2, [r2] ldrb r3, [r3] ldr r1, [r1, #0x20] bl FUN_02069038 add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] mov r2, #0 mov r3, #1 lsl r1, r0, #1 ldr r0, _0224FD8C ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0x10 str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007E68 mov r0, #5 add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FBEE: ldr r0, [r0, #0x20] mov r1, #0xc mov r2, #0x20 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0x20 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0x90 ldrsb r1, [r4, r1] ldr r0, [r0, #0x20] bl FUN_02007F34 add sp, #0x1c4 pop {r3, r4, r5, r6, pc} _0224FC14: ldr r0, [r4, #8] bl MOD08_022285B4 cmp r0, #0 bne _0224FC48 mov r0, #6 add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FC28: ldr r0, [r4] bl MOD11_02230E80 add r1, r4, #0 add r1, #0x81 ldrb r1, [r1] bl FUN_02014D7C cmp r0, #1 bne _0224FC48 ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl FUN_02007390 cmp r0, #0 beq _0224FC4A _0224FC48: b _0224FD86 _0224FC4A: ldr r0, [r4, #0xc] bl MOD08_02229A2C ldr r0, [r4, #8] bl MOD08_02228618 add r0, r4, #0 add r0, #0x92 ldrb r0, [r0] cmp r0, #0 beq _0224FC92 add r0, r4, #0 add r0, #0x81 ldrb r1, [r0] mov r0, #0xb add r2, sp, #0x16c str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x16c bl MOD11_02254404 mov r0, #7 add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FC92: mov r0, #8 add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FC9C: bl FUN_02212384 add r0, r5, #0 bl FUN_022123A0 cmp r0, #0 bne _0224FD86 add r0, r5, #0 bl FUN_022123B0 add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FCC0: add r0, r4, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 beq _0224FD02 add r0, r4, #0 add r0, #0x81 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0x114 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x114 bl MOD11_02254404 add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FD02: mov r0, #0xff add r4, #0x83 add sp, #0x1c4 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FD0C: add r3, r4, #0 add r3, #0x81 ldrb r3, [r3] add r1, r4, #0 ldr r0, [r4] add r1, #0x28 add r2, sp, #0xc4 bl MOD11_0225452C add r0, sp, #0xc4 mov r1, #5 bl MOD08_0222A568 add r0, r4, #0 add r0, #0x81 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x6c str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x6c bl MOD11_02254404 mov r0, #0x1a ldr r1, [r4, #4] mov r2, #1 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] add r4, #0x83 add sp, #0x1c4 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, r6, pc} _0224FD68: add r1, r4, #0 add r2, r4, #0 add r1, #0x81 add r2, #0x80 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _0224FD86: add sp, #0x1c4 pop {r3, r4, r5, r6, pc} nop _0224FD8C: .word 0x0225E84A thumb_func_start MOD11_0224FD90 MOD11_0224FD90: ; 0x0224FD90 push {r4, r5, r6, lr} sub sp, #0x138 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r1, r4, #0 add r1, #0x6b ldrb r1, [r1] add r5, r0, #0 cmp r1, #8 bhi _0224FE7A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0224FDB6: ; jump table .short _0224FDC8 - _0224FDB6 - 2 ; case 0 .short _0224FE6C - _0224FDB6 - 2 ; case 1 .short _0224FE10 - _0224FDB6 - 2 ; case 2 .short _0224FE6C - _0224FDB6 - 2 ; case 3 .short _0224FE92 - _0224FDB6 - 2 ; case 4 .short _0224FF36 - _0224FDB6 - 2 ; case 5 .short _0224FF50 - _0224FDB6 - 2 ; case 6 .short _0224FFA6 - _0224FDB6 - 2 ; case 7 .short _0224FFC0 - _0224FDB6 - 2 ; case 8 _0224FDC8: ldr r0, [r4, #0x70] cmp r0, #0 beq _0224FE06 add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0xe0 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0xe0 bl MOD11_02254404 add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] add r4, #0x6b add sp, #0x138 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _0224FE06: mov r0, #4 add r4, #0x6b add sp, #0x138 strb r0, [r4] pop {r4, r5, r6, pc} _0224FE10: add r3, r4, #0 add r3, #0x69 ldrb r3, [r3] add r1, r4, #0 ldr r0, [r4] add r1, #0x10 add r2, sp, #0x90 bl MOD11_0225452C add r0, sp, #0x90 mov r1, #5 bl MOD08_0222A494 add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x38 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x38 bl MOD11_02254404 mov r0, #0x1a ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] add r4, #0x6b add sp, #0x138 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _0224FE6C: bl FUN_02212384 add r0, r5, #0 bl FUN_022123A0 cmp r0, #0 beq _0224FE7C _0224FE7A: b _0224FFDE _0224FE7C: add r0, r5, #0 bl FUN_022123B0 add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] add r4, #0x6b add sp, #0x138 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _0224FE92: add r0, r4, #0 add r0, #0x6a ldrb r1, [r0] mov r0, #1 tst r0, r1 beq _0224FEDA ldr r0, _0224FFE4 ; =0x0225E818 ldrb r0, [r0, r1] str r0, [sp, #0x10] mov r0, #5 str r0, [sp, #0x14] str r0, [sp, #0x18] add r0, r4, #0 add r0, #0x69 ldrb r0, [r0] str r0, [sp, #0x1c] add r0, r4, #0 add r0, #0x6e ldrh r0, [r0] str r0, [sp, #0x20] ldr r0, [r4] bl MOD11_02230078 str r0, [sp, #0x2c] ldr r0, [r4] bl MOD11_022300CC str r0, [sp, #0x30] mov r0, #1 str r0, [sp, #0x24] mov r0, #0 str r0, [sp, #0x28] add r0, sp, #0x10 bl MOD08_02229918 str r0, [r4, #0xc] _0224FEDA: add r0, r4, #0 mov r1, #5 add r0, #0x6b strb r1, [r0] add r0, r4, #0 add r0, #0x6e ldrh r0, [r0] mov r2, #0x10 lsl r1, r0, #1 ldr r0, _0224FFE8 ; =0x0225E84A ldrh r0, [r0, r1] mov r1, #0 add r3, r1, #0 str r0, [sp] ldr r0, [r4, #8] bl FUN_02007E68 add r4, #0x6a ldrb r0, [r4] cmp r0, #5 bhi _0224FFDE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0224FF10: ; jump table .short _0224FF1C - _0224FF10 - 2 ; case 0 .short _0224FF2A - _0224FF10 - 2 ; case 1 .short _0224FF1C - _0224FF10 - 2 ; case 2 .short _0224FF2A - _0224FF10 - 2 ; case 3 .short _0224FF1C - _0224FF10 - 2 ; case 4 .short _0224FF2A - _0224FF10 - 2 ; case 5 _0224FF1C: mov r1, #0x74 ldr r0, _0224FFEC ; =0x00000706 mvn r1, r1 bl FUN_020054A8 add sp, #0x138 pop {r4, r5, r6, pc} _0224FF2A: ldr r0, _0224FFEC ; =0x00000706 mov r1, #0x75 bl FUN_020054A8 add sp, #0x138 pop {r4, r5, r6, pc} _0224FF36: ldr r0, [r4, #8] bl FUN_02007F20 cmp r0, #0 bne _0224FFDE add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] add r4, #0x6b add sp, #0x138 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _0224FF50: mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #8] sub r2, #0x2c bl FUN_020079E0 mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #8] sub r2, #0x2d bl FUN_020079E0 add r1, r4, #0 add r1, #0x6c ldrb r1, [r1] ldr r0, [r4, #8] bl FUN_02007F34 ldr r0, [r4, #8] mov r1, #0xc bl FUN_0200782C cmp r0, #0 bgt _0224FFDE ldr r0, [r4, #8] bl FUN_02007534 add r0, r4, #0 add r0, #0x6a ldrb r1, [r0] mov r0, #1 tst r0, r1 beq _0224FF9C mov r0, #7 add r4, #0x6b add sp, #0x138 strb r0, [r4] pop {r4, r5, r6, pc} _0224FF9C: mov r0, #8 add r4, #0x6b add sp, #0x138 strb r0, [r4] pop {r4, r5, r6, pc} _0224FFA6: ldr r0, [r4, #0xc] bl MOD08_022299E8 cmp r0, #0 bne _0224FFDE ldr r0, [r4, #0xc] bl MOD08_02229A2C mov r0, #8 add r4, #0x6b add sp, #0x138 strb r0, [r4] pop {r4, r5, r6, pc} _0224FFC0: add r1, r4, #0 add r2, r4, #0 add r1, #0x69 add r2, #0x68 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _0224FFDE: add sp, #0x138 pop {r4, r5, r6, pc} nop _0224FFE4: .word 0x0225E818 _0224FFE8: .word 0x0225E84A _0224FFEC: .word 0x00000706 thumb_func_start MOD11_0224FFF0 MOD11_0224FFF0: ; 0x0224FFF0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 beq _02250002 cmp r0, #1 beq _02250048 pop {r3, r4, r5, pc} _02250002: mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #4] sub r2, #0x2c bl FUN_020079E0 mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #4] sub r2, #0x2d bl FUN_020079E0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0225002E sub r0, r0, #1 strb r0, [r4, #0xc] mov r1, #1 ldr r0, [r4, #4] sub r2, r1, #2 bl FUN_020079E0 _0225002E: ldr r0, [r4, #4] mov r1, #0xc bl FUN_0200782C cmp r0, #0 bgt _0225005E ldr r0, [r4, #4] bl FUN_02007534 ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] pop {r3, r4, r5, pc} _02250048: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0225005E: pop {r3, r4, r5, pc} thumb_func_start MOD11_02250060 MOD11_02250060: ; 0x02250060 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_0222FF74 add r5, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0x21 bge _0225009C ldrb r0, [r4, #0x12] cmp r0, #2 blo _0225009C ldr r0, [r4, #0x18] cmp r0, #0 beq _02250086 cmp r0, #2 bne _0225009C _02250086: ldr r0, [r4] bl MOD11_0222FF68 mov r1, #3 mov r2, #1 mov r3, #4 bl FUN_020179E0 ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] _0225009C: ldrb r0, [r4, #0x12] cmp r0, #4 bls _022500A4 b _02250332 _022500A4: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _022500B0: ; jump table .short _022500BA - _022500B0 - 2 ; case 0 .short _022500C4 - _022500B0 - 2 ; case 1 .short _022500D2 - _022500B0 - 2 ; case 2 .short _022502CA - _022500B0 - 2 ; case 3 .short _022502E4 - _022500B0 - 2 ; case 4 _022500BA: mov r0, #0x1c str r0, [r4, #0x1c] ldrb r0, [r4, #0x12] add r0, r0, #1 strb r0, [r4, #0x12] _022500C4: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] bne _022501A6 ldrb r0, [r4, #0x12] add r0, r0, #1 strb r0, [r4, #0x12] _022500D2: ldrb r0, [r4, #0x13] add r1, sp, #0 cmp r0, #2 ldr r0, [r4, #8] bne _022501D2 ldr r0, [r0] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 ldr r0, [r4, #0x18] cmp r0, #1 beq _022500F0 cmp r0, #3 bne _02250112 _022500F0: add r1, sp, #0 mov r0, #2 ldrsh r0, [r1, r0] cmp r0, #0xc0 ldr r0, [r4, #8] bge _02250108 ldr r0, [r0] mov r1, #8 mov r2, #0 bl FUN_0200C82C b _02250112 _02250108: ldr r0, [r0] mov r1, #0xc0 mov r2, #0x58 bl FUN_0200C714 _02250112: ldr r0, [r4, #8] add r1, sp, #0 ldr r0, [r0] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 ldr r0, [r4, #0x18] cmp r0, #1 beq _02250136 cmp r0, #3 bne _02250146 cmp r5, #3 beq _02250136 cmp r5, #0x83 beq _02250136 cmp r5, #7 bne _02250146 _02250136: add r3, sp, #0 mov r2, #2 ldrsh r2, [r3, r2] ldr r0, [r4, #4] mov r1, #0 bl FUN_02007558 b _02250196 _02250146: cmp r0, #3 bne _02250170 ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C add r3, sp, #0 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r0, r1 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x18 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #4] neg r2, r2 bl FUN_020079E0 b _02250196 _02250170: cmp r0, #5 bne _02250196 ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C add r3, sp, #0 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r1, r0 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x10 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #4] bl FUN_020079E0 _02250196: mov r0, #0x14 ldrsh r5, [r4, r0] ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C cmp r0, r5 bge _022501A8 _022501A6: b _02250332 _022501A8: ldr r0, [r4, #4] mov r1, #0 add r2, r5, #0 bl FUN_02007558 ldr r0, [r4, #0x18] cmp r0, #1 beq _022501BC cmp r0, #3 bne _022501C8 _022501BC: ldr r0, [r4, #8] mov r1, #0xc0 ldr r0, [r0] mov r2, #0x58 bl FUN_0200C714 _022501C8: ldrb r0, [r4, #0x12] add sp, #4 add r0, r0, #1 strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _022501D2: ldr r0, [r0] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 ldr r0, [r4, #0x18] cmp r0, #0 beq _022501E6 cmp r0, #2 bne _02250208 _022501E6: add r0, sp, #0 mov r1, #2 ldrsh r0, [r0, r1] cmp r0, #0x40 ldr r0, [r4, #8] ble _022501FE ldr r0, [r0] sub r1, #0xa mov r2, #0 bl FUN_0200C82C b _02250208 _022501FE: ldr r0, [r0] mov r1, #0x40 mov r2, #0x88 bl FUN_0200C714 _02250208: ldr r0, [r4, #8] add r1, sp, #0 ldr r0, [r0] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 ldr r0, [r4, #0x18] cmp r0, #0 beq _02250230 cmp r0, #2 bne _02250240 cmp r5, #3 beq _02250230 cmp r5, #0x83 beq _02250230 cmp r5, #0x13 beq _02250230 cmp r5, #7 bne _02250240 _02250230: add r3, sp, #0 mov r2, #2 ldrsh r2, [r3, r2] ldr r0, [r4, #4] mov r1, #0 bl FUN_02007558 b _02250290 _02250240: cmp r0, #2 bne _02250268 ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C add r3, sp, #0 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r1, r0 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x18 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #4] bl FUN_020079E0 b _02250290 _02250268: cmp r0, #4 bne _02250290 ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C add r3, sp, #0 mov r2, #2 ldrsh r1, [r3, r2] sub r0, r0, r1 strh r0, [r3, #2] ldrsh r0, [r3, r2] mov r1, #0 sub r0, #0x10 strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #4] neg r2, r2 bl FUN_020079E0 _02250290: mov r0, #0x14 ldrsh r5, [r4, r0] ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C cmp r0, r5 bgt _02250332 ldr r0, [r4, #4] mov r1, #0 add r2, r5, #0 bl FUN_02007558 ldr r0, [r4, #0x18] cmp r0, #0 beq _022502B4 cmp r0, #2 bne _022502C0 _022502B4: ldr r0, [r4, #8] mov r1, #0x40 ldr r0, [r0] mov r2, #0x88 bl FUN_0200C714 _022502C0: ldrb r0, [r4, #0x12] add sp, #4 add r0, r0, #1 strb r0, [r4, #0x12] pop {r3, r4, r5, r6, pc} _022502CA: ldrb r1, [r4, #0x11] ldrb r2, [r4, #0x10] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 add sp, #4 pop {r3, r4, r5, r6, pc} _022502E4: ldrb r0, [r4, #0x13] cmp r0, #2 ldr r0, [r4, #4] bne _0225030E mov r2, #0x14 ldrsh r2, [r4, r2] mov r1, #0 bl FUN_02007558 ldr r0, [r4, #0x18] cmp r0, #1 beq _02250300 cmp r0, #3 bne _0225032E _02250300: ldr r0, [r4, #8] mov r1, #0xc0 ldr r0, [r0] mov r2, #0x58 bl FUN_0200C714 b _0225032E _0225030E: mov r2, #0x14 ldrsh r2, [r4, r2] mov r1, #0 bl FUN_02007558 ldr r0, [r4, #0x18] cmp r0, #0 beq _02250322 cmp r0, #2 bne _0225032E _02250322: ldr r0, [r4, #8] mov r1, #0x40 ldr r0, [r0] mov r2, #0x88 bl FUN_0200C714 _0225032E: mov r0, #3 strb r0, [r4, #0x12] _02250332: add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02250338 MOD11_02250338: ; 0x02250338 push {r3, r4, r5, r6, r7, lr} sub sp, #0xd0 ldr r3, _022505EC ; =0x0225E8D0 add r4, r1, #0 add r5, r0, #0 add r2, sp, #0x30 mov r1, #0x50 _02250346: ldrh r0, [r3] add r3, r3, #2 strh r0, [r2] add r2, r2, #2 sub r1, r1, #1 bne _02250346 ldr r0, [r4] bl MOD11_0222FF74 add r6, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #6 bls _02250362 b _0225088A _02250362: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225036E: ; jump table .short _0225037C - _0225036E - 2 ; case 0 .short _02250494 - _0225036E - 2 ; case 1 .short _0225059E - _0225036E - 2 ; case 2 .short _0225073C - _0225036E - 2 ; case 3 .short _022507F2 - _0225036E - 2 ; case 4 .short _0225084C - _0225036E - 2 ; case 5 .short _02250874 - _0225036E - 2 ; case 6 _0225037C: ldr r0, [r4, #0x10] cmp r0, #0 bne _0225038A mov r0, #1 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _0225038A: cmp r0, #4 bhi _022503A4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225039A: ; jump table .short _022503A4 - _0225039A - 2 ; case 0 .short _022503A4 - _0225039A - 2 ; case 1 .short _022503B2 - _0225039A - 2 ; case 2 .short _022503C0 - _0225039A - 2 ; case 3 .short _022503CE - _0225039A - 2 ; case 4 _022503A4: mov r0, #0xf str r0, [sp, #8] mov r0, #3 str r0, [r4, #0x18] mov r0, #5 str r0, [sp, #0x18] b _022503DC _022503B2: mov r0, #0xc str r0, [sp, #8] mov r0, #0 str r0, [r4, #0x18] ldr r0, _022505F0 ; =0x00000111 str r0, [sp, #0x18] b _022503DC _022503C0: mov r0, #0xd str r0, [sp, #8] mov r0, #0 str r0, [r4, #0x18] ldr r0, _022505F4 ; =0x00000112 str r0, [sp, #0x18] b _022503DC _022503CE: mov r0, #0xf str r0, [sp, #8] mov r0, #3 str r0, [r4, #0x18] mov r0, #0x11 lsl r0, r0, #4 str r0, [sp, #0x18] _022503DC: mov r0, #5 str r0, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] ldrb r0, [r4, #9] str r0, [sp, #0x14] ldr r0, [r4] bl MOD11_02230078 str r0, [sp, #0x24] ldr r0, [r4] bl MOD11_022300CC str r0, [sp, #0x28] mov r0, #0 str r0, [sp, #0x20] ldr r0, [r4] str r0, [sp, #0x2c] add r0, sp, #8 bl MOD08_02229918 ldr r1, [r4, #4] add r1, #0x88 str r0, [r1] ldr r0, [r4, #4] mov r1, #0x64 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A00C ldr r0, [r4, #4] mov r1, #2 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A018 ldr r0, [r4, #4] mov r1, #0 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A008 mov r1, #0 ldr r0, [r4] ldr r2, [r4, #0xc] add r3, r1, #0 bl MOD11_02254308 ldr r1, [r4, #4] str r0, [r1, #0x18] ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x1c] bl FUN_0200782C add r1, sp, #4 strh r0, [r1, #2] ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x1c] bl FUN_0200782C add r3, sp, #4 strh r0, [r3] ldr r0, [r4, #4] mov r1, #2 mov r2, #0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r0, #0x18] bl FUN_0200C714 ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x18] bl FUN_0200C61C ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x18] bl FUN_0200C5C0 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x1c] mov r2, #1 bl FUN_02007558 mov r0, #3 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _02250494: ldrb r0, [r4, #0xb] cmp r0, #2 ldr r0, [r4, #4] bne _0225054A ldr r0, [r0, #0x1c] mov r1, #0 mov r2, #5 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x1c] bl FUN_0200782C mov r1, #0x45 lsl r1, r1, #2 cmp r0, r1 blt _02250520 ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A80 cmp r0, #0 beq _02250520 ldr r0, [r4, #4] mov r1, #1 add r0, #0x88 ldr r0, [r0] bl MOD08_02229FE4 ldr r0, [r4, #4] mov r1, #0 add r0, #0x88 ldr r0, [r0] bl MOD08_02229A5C mov r0, #2 tst r0, r6 beq _02250532 mov r0, #8 tst r0, r6 bne _02250532 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldr r0, [r4] bl MOD11_0222FF7C add r4, r0, #0 add r0, #0x88 ldr r0, [r0] mov r1, #1 bl MOD08_02229FE4 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] mov r1, #0 bl MOD08_02229A5C add r4, #0x88 ldr r0, [r4] mov r1, #0xc bl MOD08_0222A024 add sp, #0xd0 pop {r3, r4, r5, r6, r7, pc} _02250520: ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x1c] bl FUN_0200782C mov r1, #0x4a lsl r1, r1, #2 cmp r0, r1 bge _02250534 _02250532: b _0225088A _02250534: ldr r0, [r4, #4] ldr r0, [r0, #0x1c] bl FUN_02007534 ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x1c] mov r0, #6 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _0225054A: ldr r0, [r0, #0x1c] mov r1, #0 bl FUN_0200782C add r1, sp, #4 strh r0, [r1, #2] ldr r0, [r4, #4] mov r1, #1 ldr r0, [r0, #0x1c] bl FUN_0200782C add r3, sp, #4 strh r0, [r3] ldr r0, [r4, #4] mov r1, #2 mov r2, #0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r0, #0x18] bl FUN_0200C714 ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x18] bl FUN_0200C61C ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x18] bl FUN_0200C5C0 mov r0, #2 strb r0, [r4, #0xa] ldr r0, [r4, #4] ldr r0, [r0, #0x1c] bl FUN_02007534 ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x1c] add sp, #0xd0 pop {r3, r4, r5, r6, r7, pc} _0225059E: ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0200C5A8 ldr r0, [r4, #4] mov r1, #4 ldr r0, [r0, #0x18] mvn r1, r1 mov r2, #0 bl FUN_0200C82C ldr r0, [r4, #4] add r1, sp, #4 ldr r0, [r0, #0x18] add r1, #2 add r2, sp, #4 bl FUN_0200C7A0 ldr r1, [r4, #4] add r0, r1, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #0 bne _022505D0 b _022506E4 _022505D0: ldr r0, [r1, #0x18] bl FUN_0200C630 ldr r1, [r4, #0xc] str r0, [sp] lsl r5, r0, #2 mov r0, #0x14 add r2, r1, #0 mul r2, r0 add r0, sp, #0x30 add r0, r0, r2 ldrsh r1, [r5, r0] ldr r0, _022505F8 ; =0x00007FFF b _022505FC .align 2, 0 _022505EC: .word 0x0225E8D0 _022505F0: .word 0x00000111 _022505F4: .word 0x00000112 _022505F8: .word 0x00007FFF _022505FC: cmp r1, r0 beq _022506E4 ldr r0, [r4, #4] mov r1, #1 add r0, #0x88 ldr r0, [r0] bl MOD08_02229FE4 ldr r1, [r4, #0xc] mov r0, #0x14 add r3, r1, #0 mul r3, r0 add r2, sp, #0x30 add r2, r2, r3 add r7, sp, #4 mov r1, #2 ldrsh r1, [r7, r1] ldrsh r2, [r5, r2] ldr r0, [r4, #4] add r1, r1, r2 mov r2, #0 ldrsh r7, [r7, r2] add r2, sp, #0x30 add r2, #2 add r2, r2, r3 ldrsh r2, [r5, r2] add r0, #0x88 lsl r1, r1, #0x10 add r2, r7, r2 lsl r2, r2, #0x10 ldr r0, [r0] asr r1, r1, #0x10 asr r2, r2, #0x10 bl MOD08_02229FF0 ldr r0, [sp] cmp r0, #3 bne _022506E4 ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A80 cmp r0, #0 beq _022506E4 ldr r0, [r4, #4] mov r1, #0 add r0, #0x88 ldr r0, [r0] bl MOD08_02229A5C ldr r0, [r4, #4] mov r1, #1 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A008 mov r0, #2 tst r0, r6 beq _022506E4 mov r0, #8 tst r0, r6 bne _022506E4 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldr r0, [r4] bl MOD11_0222FF7C ldr r1, [r4, #0xc] add r6, r0, #0 add r3, r1, #0 mov r0, #0x14 mul r3, r0 add r2, sp, #0x30 add r2, r2, r3 add r0, r6, #0 add r0, #0x88 add r7, sp, #4 mov r1, #2 ldrsh r1, [r7, r1] ldrsh r2, [r5, r2] ldr r0, [r0] add r1, r1, r2 mov r2, #0 ldrsh r7, [r7, r2] add r2, sp, #0x30 add r2, #2 add r2, r2, r3 ldrsh r2, [r5, r2] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r7, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 bl MOD08_02229FF0 add r0, r6, #0 add r0, #0x88 ldr r0, [r0] mov r1, #1 bl MOD08_02229FE4 add r0, r6, #0 add r0, #0x88 ldr r0, [r0] mov r1, #0 bl MOD08_02229A5C add r6, #0x88 ldr r0, [r6] mov r1, #1 bl MOD08_0222A008 _022506E4: add r1, sp, #4 mov r0, #2 ldrsh r1, [r1, r0] sub r0, #0x2a cmp r1, r0 ble _022506F2 b _0225088A _022506F2: ldr r0, [r4] bl MOD11_02230080 add r6, r0, #0 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230260 asr r5, r0, #1 ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0200C3DC ldr r1, _02250890 ; =0x00004E2F add r0, r6, #0 add r1, r5, r1 bl FUN_0200C358 ldr r1, _02250894 ; =0x00004E2A add r0, r6, #0 add r1, r5, r1 bl FUN_0200C368 ldr r1, _02250898 ; =0x00004E27 add r0, r6, #0 add r1, r5, r1 bl FUN_0200C378 ldr r1, _02250898 ; =0x00004E27 add r0, r6, #0 add r1, r5, r1 bl FUN_0200C388 mov r0, #6 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _0225073C: ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0200C5A8 ldr r0, [r4, #4] add r1, sp, #4 ldr r0, [r0, #0x18] add r1, #2 add r2, sp, #4 bl FUN_0200C7A0 ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0200C630 add r5, r0, #0 ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] cmp r0, #0 beq _022507E2 ldr r2, [r4, #0xc] mov r1, #0x14 add r3, r2, #0 mul r3, r1 add r1, sp, #0x30 lsl r6, r5, #2 add r1, r1, r3 ldrsh r1, [r6, r1] ldr r2, _0225089C ; =0x00007FFF cmp r1, r2 beq _022507E2 add r7, sp, #4 mov r2, #2 ldrsh r2, [r7, r2] add r1, r2, r1 mov r2, #0 ldrsh r7, [r7, r2] add r2, sp, #0x30 add r2, #2 add r2, r2, r3 ldrsh r2, [r6, r2] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r7, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 bl MOD08_02229FF0 cmp r5, #3 bne _022507E2 ldr r0, [r4, #4] ldr r6, [r4, #0x18] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A80 cmp r6, r0 beq _022507E2 ldr r0, [r4, #4] add r1, r6, #0 add r0, #0x88 ldr r0, [r0] bl MOD08_02229A5C ldr r0, [r4, #4] mov r1, #1 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A018 ldr r0, [r4, #4] mov r1, #1 add r0, #0x88 ldr r0, [r0] bl MOD08_0222A008 ldr r0, [r4, #0x18] cmp r0, #3 beq _022507E2 ldr r0, _022508A0 ; =0x0000070A bl FUN_020054C8 _022507E2: cmp r5, #4 bne _0225088A mov r0, #8 str r0, [r4, #0x14] mov r0, #4 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _022507F2: ldr r0, [r4, #0x14] sub r0, r0, #1 str r0, [r4, #0x14] bne _0225088A ldr r0, [r4] bl MOD11_02230080 add r5, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0200C3DC ldr r1, _02250890 ; =0x00004E2F add r0, r5, #0 bl FUN_0200C358 ldr r1, _02250894 ; =0x00004E2A add r0, r5, #0 bl FUN_0200C368 ldr r1, _02250898 ; =0x00004E27 add r0, r5, #0 bl FUN_0200C378 ldr r1, _02250898 ; =0x00004E27 add r0, r5, #0 bl FUN_0200C388 ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x1c] mov r2, #0 bl FUN_02007558 ldr r0, [r4, #0x18] cmp r0, #3 bne _02250844 mov r0, #6 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _02250844: mov r0, #5 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _0225084C: ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_022299E8 cmp r0, #1 beq _0225088A ldr r0, [r4, #4] add r0, #0x88 ldr r0, [r0] bl MOD08_02229A2C ldr r0, [r4, #4] mov r1, #0 add r0, #0x88 str r1, [r0] mov r0, #6 add sp, #0xd0 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, r7, pc} _02250874: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0225088A: add sp, #0xd0 pop {r3, r4, r5, r6, r7, pc} nop _02250890: .word 0x00004E2F _02250894: .word 0x00004E2A _02250898: .word 0x00004E27 _0225089C: .word 0x00007FFF _022508A0: .word 0x0000070A thumb_func_start MOD11_022508A4 MOD11_022508A4: ; 0x022508A4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _022508B6 cmp r0, #1 beq _02250906 pop {r3, r4, r5, pc} _022508B6: ldrb r0, [r4, #0xb] cmp r0, #2 ldr r0, [r4, #4] bne _022508E2 ldr r0, [r0, #0x1c] mov r1, #0 mov r2, #5 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x1c] bl FUN_0200782C mov r1, #0x4a lsl r1, r1, #2 cmp r0, r1 blt _0225092A ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _022508E2: mov r1, #0 ldr r0, [r0, #0x1c] sub r2, r1, #5 bl FUN_020079E0 ldr r0, [r4, #4] mov r1, #0 ldr r0, [r0, #0x1c] bl FUN_0200782C mov r1, #0x27 mvn r1, r1 cmp r0, r1 bgt _0225092A ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _02250906: ldr r0, [r4, #4] ldr r0, [r0, #0x1c] bl FUN_02007534 ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x1c] ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0225092A: pop {r3, r4, r5, pc} thumb_func_start MOD11_0225092C MOD11_0225092C: ; 0x0225092C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0225093E cmp r0, #1 beq _0225099A pop {r3, r4, r5, pc} _0225093E: ldrb r0, [r4, #0xb] cmp r0, #0 ldr r0, [r4, #4] bne _02250970 mov r1, #0 mov r2, #5 bl FUN_020079E0 mov r0, #0xc ldrsh r5, [r4, r0] ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C cmp r0, r5 blt _022509B0 ldr r0, [r4, #4] mov r1, #0 add r2, r5, #0 bl FUN_02007558 ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _02250970: mov r1, #0 sub r2, r1, #5 bl FUN_020079E0 mov r0, #0xc ldrsh r5, [r4, r0] ldr r0, [r4, #4] mov r1, #0 bl FUN_0200782C cmp r0, r5 bgt _022509B0 ldr r0, [r4, #4] mov r1, #0 add r2, r5, #0 bl FUN_02007558 ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _0225099A: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _022509B0: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022509B4 MOD11_022509B4: ; 0x022509B4 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4] add r5, r0, #0 cmp r1, #0 beq _022509C6 cmp r1, #1 beq _022509F6 b _02250A0A _022509C6: add r0, r4, #0 add r0, #0x4d ldrb r0, [r0] cmp r0, #0 beq _022509DE add r0, r4, #0 add r0, #0x4d ldrb r0, [r0] add r4, #0x4d sub r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _022509DE: add r0, r4, #0 mov r1, #0 bl MOD11_02257334 add r0, r4, #0 mov r1, #1 bl MOD11_022572AC ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _022509F6: add r0, r4, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r0, #1 bne _02250A26 add r0, r1, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02250A0A: add r1, r4, #0 add r2, r4, #0 add r1, #0x24 add r2, #0x4c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4, #0xc] bl MOD11_022567B8 mov r0, #0 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 _02250A26: pop {r3, r4, r5, pc} thumb_func_start MOD11_02250A28 MOD11_02250A28: ; 0x02250A28 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4] add r5, r0, #0 cmp r1, #0 bne _02250A48 add r0, r4, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r0, #1 bne _02250A6C add r0, r1, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02250A48: add r1, r4, #0 add r2, r4, #0 add r1, #0x24 add r2, #0x4c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4, #0xc] bl MOD11_022567B8 mov r0, #0 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 add r0, r4, #0 mov r1, #0 bl MOD11_022572AC _02250A6C: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02250A70 MOD11_02250A70: ; 0x02250A70 push {r4, r5, r6, r7, lr} sub sp, #0x4c add r4, r1, #0 str r0, [sp] ldr r0, [r4] bl MOD11_0222FF68 ldr r0, [r4] bl MOD11_02230094 add r6, r0, #0 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_0222FF7C str r0, [sp, #4] ldr r0, [r4] bl MOD11_0222FF74 add r7, r0, #0 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldrb r0, [r4, #9] cmp r1, r0 beq _02250AB2 ldr r0, [r4] bl MOD11_02231380 add r5, r0, #0 b _02250AB4 _02250AB2: mov r5, #0 _02250AB4: ldrb r0, [r4, #0xa] cmp r0, #8 bls _02250ABC b _02250F3E _02250ABC: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02250AC8: ; jump table .short _02250ADA - _02250AC8 - 2 ; case 0 .short _02250B16 - _02250AC8 - 2 ; case 1 .short _02250C04 - _02250AC8 - 2 ; case 2 .short _02250C1A - _02250AC8 - 2 ; case 3 .short _02250C2C - _02250AC8 - 2 ; case 4 .short _02250DA0 - _02250AC8 - 2 ; case 5 .short _02250DF2 - _02250AC8 - 2 ; case 6 .short _02250ED6 - _02250AC8 - 2 ; case 7 .short _02250F14 - _02250AC8 - 2 ; case 8 _02250ADA: mov r0, #0 add r1, r4, #0 add r2, sp, #0x34 _02250AE0: ldrh r3, [r1, #0x24] add r1, r1, #2 strh r3, [r2] add r3, r4, r0 add r3, #0x2c ldrb r3, [r3] strh r3, [r2, #8] add r3, r4, r0 add r3, #0x30 ldrb r3, [r3] add r0, r0, #1 strh r3, [r2, #0x10] add r2, r2, #2 cmp r0, #4 blt _02250AE0 ldr r0, [r4] bl MOD11_02230094 add r1, r4, #0 add r1, #0x34 ldrb r1, [r1] add r2, sp, #0x34 bl MOD11_0225A760 ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] _02250B16: ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 mov r0, #1 lsl r0, r0, #0xa add r1, r7, #0 tst r1, r0 beq _02250B9A ldr r0, [r4] bl MOD11_02231268 cmp r0, #0 beq _02250B3A cmp r0, #1 beq _02250B66 add sp, #0x4c pop {r4, r5, r6, r7, pc} _02250B3A: mov r0, #2 add r1, sp, #8 strb r0, [r1, #9] add r0, r4, #0 add r0, #0x23 ldrb r0, [r0] ldrb r2, [r4, #9] mov r3, #0 lsl r0, r0, #8 orr r0, r2 str r0, [sp, #0x14] ldr r0, _02250E84 ; =0x00000399 add r2, sp, #0x10 strh r0, [r1, #0xa] ldr r0, [r4] add r1, r5, #0 bl MOD11_0223178C mov r0, #3 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250B66: mov r1, #0 add r0, sp, #8 strb r1, [r0, #9] ldr r0, [r4] bl MOD11_0223021C ldr r1, _02250E88 ; =0x000004CA add r1, r0, r1 add r0, sp, #8 strh r1, [r0, #0xa] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x10 bl MOD11_0223178C add r1, r4, #0 add r1, #0x35 strb r0, [r1] mov r0, #2 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250B9A: mov r1, #0x20 add r2, r7, #0 tst r2, r1 beq _02250BBA mov r1, #8 add r0, sp, #8 strb r1, [r0, #9] ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230140 str r0, [sp, #0x14] ldr r1, _02250E8C ; =0x0000039A add r0, sp, #8 strh r1, [r0, #0xa] b _02250BF0 _02250BBA: lsl r1, r1, #4 tst r1, r7 beq _02250BD8 mov r1, #8 add r0, sp, #8 strb r1, [r0, #9] ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230140 str r0, [sp, #0x14] ldr r1, _02250E90 ; =0x000004C6 add r0, sp, #8 strh r1, [r0, #0xa] b _02250BF0 _02250BD8: add r2, r4, #0 mov r1, #2 add r3, sp, #8 strb r1, [r3, #9] add r2, #0x23 ldrb r2, [r2] ldrb r1, [r4, #9] sub r0, #0x67 lsl r2, r2, #8 orr r1, r2 str r1, [sp, #0x14] strh r0, [r3, #0xa] _02250BF0: ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x10 mov r3, #0 bl MOD11_0223178C mov r0, #3 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250C04: add r0, r4, #0 add r0, #0x35 ldrb r0, [r0] bl FUN_0201BD70 cmp r0, #0 bne _02250C36 mov r0, #3 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250C1A: ldr r0, [r4, #4] bl MOD11_02257208 ldr r0, [sp, #4] ldr r1, [r4] bl MOD11_0225464C mov r0, #4 strb r0, [r4, #0xa] _02250C2C: add r0, r6, #0 bl MOD11_02258F5C cmp r0, #0 bne _02250C38 _02250C36: b _02250F3E _02250C38: ldrb r1, [r4, #9] add r0, sp, #8 strb r1, [r0, #1] add r1, r4, #0 add r1, #0x34 ldrb r1, [r1] strb r1, [r0] add r1, r4, #0 add r1, #0x23 ldrb r1, [r1] strb r1, [r0, #2] mov r1, #0x36 ldrsh r1, [r4, r1] strh r1, [r0, #4] ldrh r1, [r4, #0x38] strh r1, [r0, #6] add r1, r4, #0 add r1, #0x3a ldrb r1, [r1] strb r1, [r0, #3] ldr r1, _02250E94 ; =0x00000197 ldr r0, [sp, #4] ldrb r0, [r0, r1] cmp r0, #0 beq _02250CFA add r0, r6, #0 mov r1, #1 bl MOD11_0225B77C ldr r0, [r4] bl MOD11_02230C50 mov r1, #1 tst r0, r1 beq _02250C8C add r0, r6, #0 mov r1, #6 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250CF0 _02250C8C: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 lsl r1, r1, #8 tst r0, r1 beq _02250CA8 add r0, r6, #0 mov r1, #0xa mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250CF0 _02250CA8: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #0x20 tst r0, r1 beq _02250CC2 add r0, r6, #0 mov r1, #8 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250CF0 _02250CC2: add r0, sp, #8 ldrb r0, [r0] cmp r0, #4 bne _02250CE4 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _02250CE4 add r0, r6, #0 mov r1, #4 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250CF0 _02250CE4: add r0, r6, #0 mov r1, #3 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 _02250CF0: ldr r0, [r4] mov r1, #1 bl MOD11_022312AC b _02250D70 _02250CFA: ldr r0, [r4] bl MOD11_02230C50 mov r1, #1 tst r0, r1 beq _02250D14 add r0, r6, #0 mov r1, #5 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250D68 _02250D14: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 lsl r1, r1, #8 tst r0, r1 beq _02250D30 add r0, r6, #0 mov r1, #9 mov r2, #0 add r3, sp, #8 bl MOD11_02258820 b _02250D68 _02250D30: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #0x20 tst r0, r1 add r3, sp, #8 beq _02250D4A add r0, r6, #0 mov r1, #7 mov r2, #0 bl MOD11_02258820 b _02250D68 _02250D4A: add r0, sp, #8 ldrb r0, [r0] cmp r0, #4 beq _02250D5E add r0, r6, #0 mov r1, #1 mov r2, #0 bl MOD11_02258820 b _02250D68 _02250D5E: add r0, r6, #0 mov r1, #2 mov r2, #0 bl MOD11_02258820 _02250D68: ldr r1, _02250E94 ; =0x00000197 ldr r0, [sp, #4] mov r2, #1 strb r2, [r0, r1] _02250D70: add r1, r4, #0 add r0, r6, #0 add r1, #0x1c bl MOD11_02258D60 add r1, r4, #0 add r2, r4, #0 add r0, r6, #0 add r1, #0x10 add r2, #0x16 bl MOD11_02258D7C add r0, r6, #0 bl MOD11_02258DD0 cmp r5, #0 beq _02250D98 add r0, r5, #0 bl MOD11_02258180 _02250D98: mov r0, #5 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250DA0: ldr r0, _02250E98 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #8 tst r0, r1 beq _02250DD0 ldr r0, [r4] mov r5, #0 bl MOD11_0222FF84 cmp r0, #0 ble _02250DD0 _02250DB6: ldr r0, [r4] add r1, r5, #0 bl MOD11_0222FF7C add r0, #0x28 bl MOD11_0225704C ldr r0, [r4] add r5, r5, #1 bl MOD11_0222FF84 cmp r5, r0 blt _02250DB6 _02250DD0: add r0, r6, #0 bl MOD11_02258E74 mov r1, #0 mvn r1, r1 str r0, [r4, #0xc] cmp r0, r1 beq _02250E02 mov r0, #0xa strb r0, [r4, #0xb] ldr r0, _02250E9C ; =0x000005DD bl FUN_020054C8 mov r0, #6 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250DF2: add r0, r6, #0 bl MOD11_02258F5C cmp r0, #1 beq _02250E04 ldr r0, [r4, #0xc] cmp r0, #1 beq _02250E04 _02250E02: b _02250F3E _02250E04: ldr r0, [r4, #0xc] cmp r0, #4 bhi _02250EC4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02250E16: ; jump table .short _02250EC4 - _02250E16 - 2 ; case 0 .short _02250E20 - _02250E16 - 2 ; case 1 .short _02250E34 - _02250E16 - 2 ; case 2 .short _02250E5C - _02250E16 - 2 ; case 3 .short _02250EA0 - _02250E16 - 2 ; case 4 _02250E20: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 beq _02250EC8 mov r0, #7 strb r0, [r4, #0xa] b _02250EC8 _02250E34: mov r1, #0 add r0, r6, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 add r0, r6, #0 mov r1, #0 bl MOD11_0225B77C add r0, r5, #0 bl MOD11_02258184 ldr r0, [r4, #4] bl MOD11_02257238 ldr r0, [sp, #4] bl MOD11_0225468C b _02250EC8 _02250E5C: mov r1, #0 add r0, r6, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 add r0, r6, #0 mov r1, #0 bl MOD11_0225B77C add r0, r5, #0 bl MOD11_02258184 ldr r0, [r4, #4] bl MOD11_02257238 ldr r0, [sp, #4] bl MOD11_0225468C b _02250EC8 .align 2, 0 _02250E84: .word 0x00000399 _02250E88: .word 0x000004CA _02250E8C: .word 0x0000039A _02250E90: .word 0x000004C6 _02250E94: .word 0x00000197 _02250E98: .word 0x021C48B8 _02250E9C: .word 0x000005DD _02250EA0: ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230CB8 cmp r0, #1 bne _02250EB6 add r0, r5, #0 bl MOD11_02258184 mov r0, #0xff str r0, [r4, #0xc] _02250EB6: mov r1, #0 add r0, r6, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 b _02250EC8 _02250EC4: bl ErrorHandling _02250EC8: add r0, r6, #0 bl MOD11_02258E30 mov r0, #8 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250ED6: add r0, r6, #0 bl MOD11_02258F5C cmp r0, #1 bne _02250F3E mov r1, #0 add r0, r6, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 add r0, r6, #0 mov r1, #0 bl MOD11_0225B77C add r0, r5, #0 bl MOD11_02258184 ldr r0, [r4, #4] bl MOD11_02257238 ldr r0, [sp, #4] bl MOD11_0225468C add r0, r6, #0 bl MOD11_02258E30 mov r0, #8 add sp, #0x4c strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _02250F14: add r0, r6, #0 bl MOD11_0225B780 cmp r0, #1 bne _02250F3E ldrb r1, [r4, #9] ldr r0, [r4] ldr r2, [r4, #0xc] bl MOD11_02255528 ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp] bl FUN_0200CAB4 _02250F3E: add sp, #0x4c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02250F44 MOD11_02250F44: ; 0x02250F44 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #9] add r5, r0, #0 ldr r0, [r4] bl FUN_021F45A4 add r2, r0, #0 ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02255528 ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD11_02250F74 MOD11_02250F74: ; 0x02250F74 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #9] add r5, r0, #0 ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02250F94 MOD11_02250F94: ; 0x02250F94 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230DE0 add r5, r0, #0 ldr r0, [r4] bl MOD11_0222FF78 mov r2, #0 ldrb r1, [r4, #9] add r3, r2, #0 bl MOD11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x1a bl FUN_02068678 ldr r2, _0225100C ; =0x0225E830 lsl r1, r5, #1 ldrb r2, [r2, r1] mul r2, r0 add r0, r2, #0 ldr r2, _02251010 ; =0x0225E831 ldrb r1, [r2, r1] bl _s32_div_f add r5, r0, #0 bl FUN_0201B9EC mov r1, #0xff bl _s32_div_f cmp r1, r5 ldr r0, [r4] bgt _02250FEA ldrb r1, [r4, #9] mov r2, #4 bl MOD11_02255528 b _02250FF2 _02250FEA: ldrb r1, [r4, #9] mov r2, #5 bl MOD11_02255528 _02250FF2: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} nop _0225100C: .word 0x0225E830 _02251010: .word 0x0225E831 thumb_func_start MOD11_02251014 MOD11_02251014: ; 0x02251014 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #9] add r5, r0, #0 ldr r0, [r4] mov r2, #4 bl MOD11_02255528 ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD11_0225103C MOD11_0225103C: ; 0x0225103C push {r4, r5, r6, r7, lr} sub sp, #0x3c add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_0222FF68 ldr r0, [r4] bl MOD11_02230094 add r7, r0, #0 ldrb r1, [r4, #0x1d] ldr r0, [r4] bl MOD11_0222FF7C str r0, [sp] ldrb r1, [r4, #0x1d] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldrb r0, [r4, #0x1d] cmp r1, r0 beq _02251076 ldr r0, [r4] bl MOD11_02231380 add r5, r0, #0 b _02251078 _02251076: mov r5, #0 _02251078: add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] cmp r0, #3 bls _02251084 b _0225118E _02251084: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02251090: ; jump table .short _02251098 - _02251090 - 2 ; case 0 .short _02251114 - _02251090 - 2 ; case 1 .short _0225113A - _02251090 - 2 ; case 2 .short _02251180 - _02251090 - 2 ; case 3 _02251098: add r0, r7, #0 bl MOD11_02258F5C cmp r0, #0 bne _022510A4 b _022511B6 _022510A4: ldr r0, [r4] bl MOD11_022300C4 add r1, r0, #0 mov r2, #2 add r0, sp, #4 strb r2, [r0, #0x15] ldrb r2, [r4, #0x1f] ldrb r3, [r4, #0x1d] lsl r2, r2, #8 orr r2, r3 str r2, [sp, #0x1c] ldr r2, _022511BC ; =0x00000399 mov r3, #0 strh r2, [r0, #0x16] ldr r0, [r4] add r2, sp, #0x18 bl MOD11_0223178C add r0, r7, #0 bl MOD11_02258E30 add r5, sp, #4 mov r2, #0 add r3, r4, #0 add r6, r5, #0 _022510D8: ldrh r0, [r3, #0xc] add r1, r4, r2 add r2, r2, #1 strh r0, [r5] ldrb r0, [r1, #0x14] add r3, r3, #2 add r5, r5, #2 strb r0, [r6, #8] ldrb r0, [r1, #0x18] strb r0, [r6, #0xc] add r6, r6, #1 cmp r2, #4 blt _022510D8 ldrb r1, [r4, #0x1e] add r0, sp, #4 mov r2, #0 strb r1, [r0, #0x10] add r0, r7, #0 mov r1, #0xb add r3, sp, #4 bl MOD11_02258820 add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] add r4, #0x20 add sp, #0x3c add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, r7, pc} _02251114: add r0, r7, #0 bl MOD11_02258E74 mov r1, #0 mvn r1, r1 str r0, [r4, #8] cmp r0, r1 beq _022511B6 ldr r0, _022511C0 ; =0x000005DD bl FUN_020054C8 add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] add r4, #0x20 add sp, #0x3c add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, r7, pc} _0225113A: ldr r0, [r4, #8] cmp r0, #0xff beq _02251166 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02251166 add r0, r7, #0 mov r1, #0 bl MOD11_0225B77C add r0, r5, #0 bl MOD11_02258184 ldr r0, [r4, #4] bl MOD11_02257238 ldr r0, [sp] bl MOD11_0225468C _02251166: ldrb r1, [r4, #0x1d] ldr r0, [r4] ldr r2, [r4, #8] bl MOD11_022555E4 add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] add r4, #0x20 add sp, #0x3c add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, r7, pc} _02251180: add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x20 strb r1, [r0] _0225118E: add r0, r7, #0 bl MOD11_0225B780 cmp r0, #1 bne _022511B6 ldr r0, [r4] mov r1, #1 bl MOD11_02231274 ldrb r1, [r4, #0x1d] ldrb r2, [r4, #0x1c] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _022511B6: add sp, #0x3c pop {r4, r5, r6, r7, pc} nop _022511BC: .word 0x00000399 _022511C0: .word 0x000005DD thumb_func_start MOD11_022511C4 MOD11_022511C4: ; 0x022511C4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r6, r1, #0 str r0, [sp, #8] ldr r0, [r6] bl MOD11_0222FF74 add r4, r0, #0 ldr r0, [r6] bl MOD11_0222FF78 str r0, [sp, #0xc] ldr r0, _02251290 ; =0x00000101 tst r0, r4 bne _022511FA ldr r0, [r6] bl MOD11_02230C50 mov r1, #1 tst r0, r1 bne _022511FA ldrb r1, [r6, #0x1d] ldr r0, [r6] bl MOD11_02230270 cmp r0, #0 bne _02251216 _022511FA: bl FUN_02033590 cmp r0, #0 beq _02251206 bl ErrorHandling _02251206: ldrb r1, [r6, #0x1d] ldr r0, [r6] bl FUN_021EFD8C cmp r0, #0xff beq _0225128C add r4, r0, #1 b _0225126C _02251216: mov r7, #0 add r4, r7, #0 add r5, sp, #0x10 _0225121C: add r0, r4, #0 bl FUN_0206A92C ldrh r1, [r6, #0x22] tst r0, r1 bne _0225122E add r0, r4, #1 stmia r5!, {r0} add r7, r7, #1 _0225122E: add r4, r4, #1 cmp r4, #4 blt _0225121C bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f lsl r1, r1, #2 add r0, sp, #0x10 ldr r4, [r0, r1] mov r0, #1 sub r3, r4, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] lsl r3, r3, #1 add r3, r6, r3 ldrb r2, [r6, #0x1d] ldrh r3, [r3, #0xc] ldr r0, [r6] ldr r1, [sp, #0xc] bl MOD11_02244C28 str r0, [sp] ldrb r3, [r6, #0x1d] ldr r0, [r6] ldr r1, [sp, #0xc] mov r2, #0xb bl MOD11_0224C54C _0225126C: ldrb r1, [r6, #0x1d] ldr r0, [r6] add r2, r4, #0 bl MOD11_022555E4 ldrb r1, [r6, #0x1d] ldrb r2, [r6, #0x1c] ldr r0, [r6] bl MOD11_022567B8 add r0, r6, #0 bl FUN_02016A18 ldr r0, [sp, #8] bl FUN_0200CAB4 _0225128C: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02251290: .word 0x00000101 thumb_func_start MOD11_02251294 MOD11_02251294: ; 0x02251294 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #0x1d] add r5, r0, #0 ldrb r2, [r4, #0x1c] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022512B4 MOD11_022512B4: ; 0x022512B4 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r4, r1, #0 str r0, [sp] ldr r0, [r4] bl MOD11_0222FF68 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C add r7, r0, #0 ldr r0, [r4] bl MOD11_02230094 add r5, r0, #0 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldrb r0, [r4, #0xd] cmp r1, r0 beq _022512EE ldr r0, [r4] bl MOD11_02231380 add r6, r0, #0 b _022512F0 _022512EE: mov r6, #0 _022512F0: ldrb r0, [r4, #0xf] cmp r0, #3 bhi _022513BE add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02251302: ; jump table .short _0225130A - _02251302 - 2 ; case 0 .short _02251366 - _02251302 - 2 ; case 1 .short _02251386 - _02251302 - 2 ; case 2 .short _022513BA - _02251302 - 2 ; case 3 _0225130A: add r0, r5, #0 bl MOD11_02258F5C cmp r0, #0 bne _02251316 b _02251418 _02251316: add r2, sp, #8 mov r0, #0 add r1, r4, #0 add r2, #2 _0225131E: ldrh r3, [r1, #0x10] add r0, r0, #1 strh r3, [r2] ldrh r3, [r1, #0x12] strh r3, [r2, #2] ldrh r3, [r1, #0x14] strh r3, [r2, #4] ldrh r3, [r1, #0x16] add r1, #8 strh r3, [r2, #6] add r2, #8 cmp r0, #4 blt _0225131E ldrb r1, [r4, #0xe] add r0, sp, #0x28 add r0, #2 strb r1, [r0] ldrh r0, [r4, #0x30] ldrb r1, [r4, #0xe] bl MOD11_02258F88 add r1, sp, #0x28 add r1, #2 strb r0, [r1, #1] add r3, sp, #8 add r0, r5, #0 mov r1, #0xc mov r2, #0 add r3, #2 bl MOD11_02258820 ldrb r0, [r4, #0xf] add sp, #0x2c add r0, r0, #1 strb r0, [r4, #0xf] pop {r4, r5, r6, r7, pc} _02251366: add r0, r5, #0 bl MOD11_02258E74 mov r1, #0 mvn r1, r1 str r0, [r4, #8] cmp r0, r1 beq _02251418 ldr r0, _0225141C ; =0x000005DD bl FUN_020054C8 ldrb r0, [r4, #0xf] add sp, #0x2c add r0, r0, #1 strb r0, [r4, #0xf] pop {r4, r5, r6, r7, pc} _02251386: ldr r0, [r4, #8] cmp r0, #0xff beq _022513B0 ldr r0, [r4, #4] bl MOD11_02257238 add r0, r7, #0 bl MOD11_0225468C add r0, r6, #0 bl MOD11_02258184 add r0, r4, #0 add r0, #0x32 ldrb r0, [r0] cmp r0, #1 bne _022513B0 add r0, r5, #0 mov r1, #0 bl MOD11_0225B77C _022513B0: ldrb r0, [r4, #0xf] add sp, #0x2c add r0, r0, #1 strb r0, [r4, #0xf] pop {r4, r5, r6, r7, pc} _022513BA: add r0, r0, #1 strb r0, [r4, #0xf] _022513BE: add r0, r5, #0 bl MOD11_0225B780 cmp r0, #1 bne _02251418 ldr r0, [r4] ldr r5, [r4, #8] bl MOD11_0222FF74 add r6, r0, #0 cmp r5, #0xff beq _022513F8 ldr r0, [r4] add r1, sp, #4 bl MOD11_022314E0 mov r0, #2 tst r0, r6 ldr r0, [r4, #8] beq _022513F0 add r1, r0, #1 add r0, sp, #4 ldrb r0, [r0, r1] add r5, r0, #1 b _022513F8 _022513F0: sub r1, r0, #1 add r0, sp, #4 ldrb r0, [r0, r1] add r5, r0, #1 _022513F8: ldrb r1, [r4, #0xd] ldr r0, [r4] add r2, r5, #0 bl MOD11_02255720 ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp] bl FUN_0200CAB4 _02251418: add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _0225141C: .word 0x000005DD thumb_func_start MOD11_02251420 MOD11_02251420: ; 0x02251420 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] bl MOD11_0222FF78 add r1, r0, #0 ldrb r3, [r5, #0xd] ldr r0, [r5] mov r2, #0xb bl MOD11_0224C474 add r4, r0, #1 cmp r4, #5 blt _02251442 bl ErrorHandling _02251442: ldrb r1, [r5, #0xd] ldr r0, [r5] add r2, r4, #0 bl MOD11_02255720 ldrb r1, [r5, #0xd] ldrb r2, [r5, #0xc] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} thumb_func_start MOD11_02251464 MOD11_02251464: ; 0x02251464 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #0xd] add r5, r0, #0 ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02251484 MOD11_02251484: ; 0x02251484 push {r3, r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x14 add r4, r1, #0 add r7, r0, #0 ldr r0, [r4] bl MOD11_022300CC ldrb r1, [r4, #0xe] add r5, r0, #0 cmp r1, #0x1e bls _022514A0 bl _02251FEA _022514A0: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022514AC: ; jump table .short _022514EA - _022514AC - 2 ; case 0 .short _02251540 - _022514AC - 2 ; case 1 .short _022515C2 - _022514AC - 2 ; case 2 .short _022515D6 - _022514AC - 2 ; case 3 .short _02251634 - _022514AC - 2 ; case 4 .short _0225177C - _022514AC - 2 ; case 5 .short _022517B8 - _022514AC - 2 ; case 6 .short _02251808 - _022514AC - 2 ; case 7 .short _022519DC - _022514AC - 2 ; case 8 .short _02251A5A - _022514AC - 2 ; case 9 .short _02251A96 - _022514AC - 2 ; case 10 .short _02251AB8 - _022514AC - 2 ; case 11 .short _02251FA2 - _022514AC - 2 ; case 12 .short _02251B3E - _022514AC - 2 ; case 13 .short _02251FA2 - _022514AC - 2 ; case 14 .short _02251BF2 - _022514AC - 2 ; case 15 .short _02251FD0 - _022514AC - 2 ; case 16 .short _02251AF8 - _022514AC - 2 ; case 17 .short _02251FA2 - _022514AC - 2 ; case 18 .short _02251CA6 - _022514AC - 2 ; case 19 .short _02251FA2 - _022514AC - 2 ; case 20 .short _02251CEC - _022514AC - 2 ; case 21 .short _02251D86 - _022514AC - 2 ; case 22 .short _02251DBC - _022514AC - 2 ; case 23 .short _02251FD0 - _022514AC - 2 ; case 24 .short _02251AF8 - _022514AC - 2 ; case 25 .short _02251FA2 - _022514AC - 2 ; case 26 .short _02251CA6 - _022514AC - 2 ; case 27 .short _02251FA2 - _022514AC - 2 ; case 28 .short _02251E2E - _022514AC - 2 ; case 29 .short _02251FD0 - _022514AC - 2 ; case 30 _022514EA: ldr r0, [r4] bl MOD11_02230094 bl MOD11_0225C76C strb r0, [r4, #0x10] ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 mov r2, #3 str r1, [sp] mov r0, #7 str r0, [sp, #4] str r1, [sp, #8] mov r1, #5 add r3, r1, #0 add r0, r5, #0 lsl r2, r2, #0xa sub r3, #0xd bl FUN_02003210 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] mov r1, #0xa add r3, r1, #0 ldr r2, _02251850 ; =0x0000FFFF add r0, r5, #0 sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251540: bl FUN_020038E4 cmp r0, #0 bne _022515FE ldr r0, [r4] bl MOD11_0222D7F8 mov r0, #5 mov r1, #0x34 bl FUN_02016998 str r0, [r4, #4] ldr r1, [r4] str r1, [r0] ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_022301D4 ldr r1, [r4, #4] str r0, [r1, #4] ldr r0, [r4, #4] mov r1, #5 str r1, [r0, #0xc] ldr r0, [r4, #4] mov r1, #0 add r0, #0x26 strb r1, [r0] ldr r0, [r4] bl MOD11_02230214 ldr r1, [r4, #4] str r0, [r1, #8] ldrb r1, [r4, #0xd] ldr r0, [r4, #4] str r1, [r0, #0x10] ldr r0, [r4, #4] ldrb r1, [r4, #0x10] add r0, #0x25 strb r1, [r0] ldr r0, [r4, #4] ldrb r1, [r4, #0x14] add r0, #0x22 strb r1, [r0] ldr r0, [r4, #4] ldrb r1, [r4, #0x15] add r0, #0x23 strb r1, [r0] ldr r0, [r4, #4] ldrb r1, [r4, #0x16] add r0, #0x24 strb r1, [r0] ldrb r0, [r4, #0xd] add r0, r4, r0 add r0, #0x30 ldrb r1, [r0] ldr r0, [r4, #4] str r1, [r0, #0x18] ldr r0, [r4, #4] bl FUN_022186F0 add sp, #0x1fc mov r0, #3 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022515C2: ldr r0, [r4, #4] ldrb r1, [r4, #0x10] add r0, #0x25 strb r1, [r0] ldr r0, [r4, #4] bl FUN_022186F0 ldrb r0, [r4, #0xe] add r0, r0, #1 strb r0, [r4, #0xe] _022515D6: ldr r1, [r4, #4] add r0, r1, #0 add r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _022515FE mov r0, #0 add r1, #0x26 strb r0, [r1] ldr r0, [r4, #4] add r0, #0x25 ldrb r0, [r0] strb r0, [r4, #0x10] ldr r1, [r4, #4] ldrh r0, [r1, #0x1c] cmp r0, #0 beq _0225162A ldrb r0, [r1, #0x1e] cmp r0, #3 bls _02251602 _022515FE: bl _02251FEA _02251602: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225160E: ; jump table .short _02251616 - _0225160E - 2 ; case 0 .short _02251616 - _0225160E - 2 ; case 1 .short _02251620 - _0225160E - 2 ; case 2 .short _02251620 - _0225160E - 2 ; case 3 _02251616: add sp, #0x1fc mov r0, #4 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251620: add sp, #0x1fc mov r0, #6 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _0225162A: add sp, #0x1fc mov r0, #6 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251634: ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF88 str r0, [sp, #0x14] ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02251660 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _02251660 ldrb r1, [r4, #0xd] mov r0, #1 add r7, r1, #0 and r7, r0 b _02251662 _02251660: ldrb r7, [r4, #0xd] _02251662: ldr r0, [r4, #8] mov r1, #6 ldr r0, [r0, #4] ldr r0, [r0] bl FUN_0206B8CC ldr r0, [sp, #0x14] mov r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _022516B0 mov r0, #6 mul r0, r7 add r5, r4, r0 _02251680: ldrb r2, [r5, #0x18] ldr r0, [r4] add r1, r7, #0 bl MOD11_02230014 add r1, r0, #0 ldr r0, [r4, #8] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_0206B900 ldr r1, [r4, #8] ldrb r0, [r5, #0x18] ldr r1, [r1, #4] add r5, r5, #1 add r1, r1, r6 add r1, #0x2c strb r0, [r1] ldr r0, [sp, #0x14] add r6, r6, #1 bl FUN_0206B9AC cmp r6, r0 blt _02251680 _022516B0: ldr r0, [r4, #8] ldr r1, [r4] ldr r0, [r0, #4] str r1, [r0, #8] ldr r0, [r4, #8] mov r1, #5 ldr r0, [r0, #4] str r1, [r0, #0xc] ldr r1, [r4, #8] mov r0, #0 ldr r1, [r1, #4] strb r0, [r1, #0x11] ldr r1, [r4, #8] ldr r1, [r1, #4] add r1, #0x36 strb r0, [r1] ldr r1, [r4, #8] ldr r1, [r1, #4] strh r0, [r1, #0x24] ldr r0, [r4, #8] mov r1, #2 ldr r0, [r0, #4] add r0, #0x35 strb r1, [r0] ldr r0, [r4, #4] ldrh r1, [r0, #0x1c] ldr r0, [r4, #8] ldr r0, [r0, #4] strh r1, [r0, #0x22] ldr r0, [r4, #4] ldrb r1, [r0, #0x1e] ldr r0, [r4, #8] ldr r0, [r0, #4] add r0, #0x33 strb r1, [r0] ldr r0, [r4, #4] ldr r1, [r0, #0x10] ldr r0, [r4, #8] ldr r0, [r0, #4] str r1, [r0, #0x28] ldr r0, [r4, #8] ldrb r1, [r4, #0x10] ldr r0, [r0, #4] add r0, #0x32 strb r1, [r0] ldrb r0, [r4, #0xd] ldr r2, [r4, #8] add r0, r2, r0 ldrb r1, [r0, #0xc] ldr r0, [r2, #4] strb r1, [r0, #0x14] ldrb r1, [r4, #0xd] ldr r5, [r4, #8] ldr r0, [r4] bl MOD11_022302BC add r0, r5, r0 ldrb r1, [r0, #0xc] ldr r0, [r5, #4] strb r1, [r0, #0x15] ldrb r0, [r4, #0xf] cmp r0, #4 bne _02251746 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_022302BC add r0, r4, r0 add r0, #0x30 ldrb r1, [r0] ldr r0, [r4, #8] ldr r0, [r0, #4] str r1, [r0, #0x18] ldrb r0, [r4, #0xd] b _0225175C _02251746: ldrb r0, [r4, #0xd] add r0, r4, r0 add r0, #0x30 ldrb r1, [r0] ldr r0, [r4, #8] ldr r0, [r0, #4] str r1, [r0, #0x18] ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_022302BC _0225175C: add r0, r4, r0 add r0, #0x30 ldrb r1, [r0] ldr r0, [r4, #8] ldr r0, [r0, #4] str r1, [r0, #0x1c] ldr r0, [r4, #8] ldr r0, [r0, #4] bl FUN_02211E60 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _0225177C: ldr r0, [r4, #8] ldr r1, [r0, #4] add r0, r1, #0 add r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _02251832 add r1, #0x32 ldrb r0, [r1] mov r1, #0 strb r0, [r4, #0x10] ldr r0, [r4, #8] ldr r0, [r0, #4] add r0, #0x36 strb r1, [r0] ldr r0, [r4, #8] ldr r0, [r0, #4] ldrb r0, [r0, #0x11] cmp r0, #6 bne _022517AE add sp, #0x1fc mov r0, #2 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022517AE: add sp, #0x1fc mov r0, #6 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022517B8: ldr r0, [r4] bl MOD11_0222D88C ldr r0, [r4] bl MOD11_02230094 ldrb r1, [r4, #0x10] bl MOD11_0225C778 mov r0, #7 str r0, [sp] mov r0, #0 mov r1, #5 str r0, [sp, #4] mov r2, #3 add r3, r1, #0 str r0, [sp, #8] add r0, r5, #0 lsl r2, r2, #0xa sub r3, #0xd bl FUN_02003210 mov r0, #0x10 str r0, [sp] mov r0, #0 mov r1, #0xa str r0, [sp, #4] add r3, r1, #0 str r0, [sp, #8] ldr r2, _02251850 ; =0x0000FFFF add r0, r5, #0 sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251808: bl FUN_020038E4 cmp r0, #0 bne _02251832 ldr r0, [r4] bl MOD11_02230288 mov r1, #0 bl FUN_020143A8 ldr r0, [r4, #4] ldrh r0, [r0, #0x1c] cmp r0, #0 bne _02251826 b _022519D2 _02251826: mov r0, #9 strb r0, [r4, #0xe] ldr r0, [r4, #4] ldrb r1, [r0, #0x1e] cmp r1, #3 bls _02251834 _02251832: b _02251FEA _02251834: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02251840: ; jump table .short _022518F4 - _02251840 - 2 ; case 0 .short _02251848 - _02251840 - 2 ; case 1 .short _022519C8 - _02251840 - 2 ; case 2 .short _0225195E - _02251840 - 2 ; case 3 _02251848: ldrh r1, [r0, #0x1c] ldr r0, _02251854 ; =0x0000FFE4 b _02251858 nop _02251850: .word 0x0000FFFF _02251854: .word 0x0000FFE4 _02251858: add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _0225186C add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _0225186C: ldr r0, [r4, #8] ldr r0, [r0, #4] ldrb r0, [r0, #0x11] cmp r0, #2 bhs _0225188A ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #3 beq _02251894 ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #0x13 beq _02251894 _0225188A: ldr r0, [r4, #8] ldr r0, [r0, #4] ldrb r0, [r0, #0x11] cmp r0, #1 bhs _022518EA _02251894: ldr r0, [r4, #4] ldrh r0, [r0, #0x1c] cmp r0, #0x17 ldr r0, [r4] bne _022518C4 bl MOD11_02230E20 cmp r0, #1 bne _022518B0 add sp, #0x1fc mov r0, #0x11 add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022518B0: mov r1, #0x74 ldr r0, _02251BF8 ; =0x000005EC mvn r1, r1 bl FUN_020054A8 add sp, #0x1fc mov r0, #0x15 add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022518C4: bl MOD11_02230E20 cmp r0, #1 bne _022518D6 add sp, #0x1fc mov r0, #0x19 add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022518D6: mov r1, #0x74 ldr r0, _02251BF8 ; =0x000005EC mvn r1, r1 bl FUN_020054A8 add sp, #0x1fc mov r0, #0x1d add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022518EA: add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022518F4: ldr r0, [r4, #8] ldr r0, [r0, #4] ldrb r0, [r0, #0x11] cmp r0, #2 bhs _02251912 ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #3 beq _0225191C ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #0x13 beq _0225191C _02251912: ldr r0, [r4, #8] ldr r0, [r0, #4] ldrb r0, [r0, #0x11] cmp r0, #1 bhs _02251954 _0225191C: ldr r0, [r4, #4] mov r1, #0x26 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251954 ldr r0, [r4] bl MOD11_02230E20 cmp r0, #1 bne _02251940 add sp, #0x1fc mov r0, #0x11 add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _02251940: mov r1, #0x74 ldr r0, _02251BF8 ; =0x000005EC mvn r1, r1 bl FUN_020054A8 add sp, #0x1fc mov r0, #0x15 add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _02251954: add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _0225195E: ldrh r1, [r0, #0x1c] ldr r0, _02251BFC ; =0x0000FFC1 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #1 bhi _02251976 add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251976: cmp r1, #0x37 ldr r0, [r4] bne _022519A2 bl MOD11_02230E20 cmp r0, #1 bne _0225198E add sp, #0x1fc mov r0, #0xd add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _0225198E: mov r1, #0x74 ldr r0, _02251BF8 ; =0x000005EC mvn r1, r1 bl FUN_020054A8 add sp, #0x1fc mov r0, #0xf add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022519A2: bl MOD11_02230E20 cmp r0, #1 bne _022519B4 add sp, #0x1fc mov r0, #0xb add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022519B4: mov r1, #0x74 ldr r0, _02251BF8 ; =0x000005EC mvn r1, r1 bl FUN_020054A8 add sp, #0x1fc mov r0, #0xf add sp, #0x14 strh r0, [r4, #0x12] pop {r3, r4, r5, r6, r7, pc} _022519C8: add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022519D2: add sp, #0x1fc mov r0, #8 add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _022519DC: ldr r2, [r4, #4] ldrh r0, [r2, #0x1c] cmp r0, #0 bne _022519EC mov r1, #0xff add r0, sp, #0x1c strh r1, [r0] b _02251A08 _022519EC: add r1, sp, #0x1c strh r0, [r1] ldrb r0, [r2, #0x1e] strb r0, [r1, #2] cmp r0, #1 bhi _02251A08 ldr r0, [r4, #8] ldr r2, [r0, #4] ldrb r0, [r2, #0x11] add r0, r2, r0 add r0, #0x2c ldrb r0, [r0] add r0, r0, #1 strb r0, [r1, #3] _02251A08: add r3, sp, #0x1c ldrb r1, [r4, #0xd] mov r2, sp ldrh r5, [r3] ldr r0, [r4] sub r2, r2, #4 strh r5, [r2] ldrh r3, [r3, #2] strh r3, [r2, #2] ldr r2, [r2] bl MOD11_022558C4 ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 ldr r0, [r4, #8] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_02016A18 ldr r0, [r4, #8] ldr r0, [r0, #4] bl FUN_02016A18 ldr r0, [r4, #8] bl FUN_02016A18 ldr r0, [r4, #4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, r6, r7, pc} _02251A5A: ldr r1, _02251C00 ; =0x000004B6 add r0, sp, #0x8c strh r1, [r0, #2] mov r1, #5 strb r1, [r0, #1] ldr r0, [r4, #4] ldrh r0, [r0, #0x1c] str r0, [sp, #0x90] ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x8c bl MOD11_0223178C strb r0, [r4, #0x11] mov r0, #0x14 strb r0, [r4, #0x17] ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251A96: ldrb r0, [r4, #0x11] bl FUN_0201BD70 cmp r0, #0 bne _02251AAC ldrb r0, [r4, #0x17] sub r0, r0, #1 strb r0, [r4, #0x17] ldrb r0, [r4, #0x17] cmp r0, #0 beq _02251AAE _02251AAC: b _02251FEA _02251AAE: ldrh r0, [r4, #0x12] add sp, #0x1fc add sp, #0x14 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251AB8: ldrb r1, [r4, #0xd] mov r0, #9 add r2, sp, #0x1b8 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0x1b8 bl MOD11_02254404 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251AF8: ldr r0, [r4, #8] mov r1, #0 ldr r0, [r0, #4] add r2, sp, #0x160 ldrb r0, [r0, #0x11] mov r3, #1 lsl r5, r0, #1 mov r0, #9 str r0, [sp] str r5, [sp, #4] str r5, [sp, #8] str r1, [sp, #0xc] ldr r0, [r4] bl MOD11_02256854 ldr r0, [r4] add r1, r5, #0 bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0x160 bl MOD11_02254404 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251B3E: ldr r0, [r4, #4] add r2, sp, #0x108 ldrh r0, [r0, #0x1c] cmp r0, #0x37 bne _02251B7C ldrb r0, [r4, #0xd] mov r1, #0 add r3, r1, #0 str r1, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x36 str r0, [sp, #0xc] ldr r0, [r4] bl MOD11_02256854 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0x108 bl MOD11_02254404 b _02251BE6 _02251B7C: cmp r0, #0x38 bne _02251BB4 ldrb r0, [r4, #0xd] mov r1, #0 add r3, r1, #0 str r1, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r0, [r4] bl MOD11_02256854 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0x108 bl MOD11_02254404 b _02251BE6 _02251BB4: ldrb r1, [r4, #0xd] mov r0, #0xc mov r3, #1 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] bl MOD11_02256854 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0x108 bl MOD11_02254404 _02251BE6: ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251BF2: ldr r2, _02251C04 ; =0x000004B3 b _02251C08 nop _02251BF8: .word 0x000005EC _02251BFC: .word 0x0000FFC1 _02251C00: .word 0x000004B6 _02251C04: .word 0x000004B3 _02251C08: add r0, sp, #0x68 strh r2, [r0, #2] mov r1, #0xc strb r1, [r0, #1] ldrb r1, [r4, #0xd] ldr r3, [r4, #8] add r3, r3, r1 ldrb r3, [r3, #0xc] lsl r3, r3, #8 orr r1, r3 str r1, [sp, #0x6c] ldr r1, [r4, #4] ldrh r1, [r1, #0x1c] sub r1, #0x37 cmp r1, #7 bhi _02251C7A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02251C34: ; jump table .short _02251C68 - _02251C34 - 2 ; case 0 .short _02251C72 - _02251C34 - 2 ; case 1 .short _02251C44 - _02251C34 - 2 ; case 2 .short _02251C4A - _02251C34 - 2 ; case 3 .short _02251C50 - _02251C34 - 2 ; case 4 .short _02251C56 - _02251C34 - 2 ; case 5 .short _02251C5C - _02251C34 - 2 ; case 6 .short _02251C62 - _02251C34 - 2 ; case 7 _02251C44: mov r0, #1 str r0, [sp, #0x70] b _02251C7A _02251C4A: mov r0, #2 str r0, [sp, #0x70] b _02251C7A _02251C50: mov r0, #3 str r0, [sp, #0x70] b _02251C7A _02251C56: mov r0, #6 str r0, [sp, #0x70] b _02251C7A _02251C5C: mov r0, #4 str r0, [sp, #0x70] b _02251C7A _02251C62: mov r0, #5 str r0, [sp, #0x70] b _02251C7A _02251C68: add r1, r2, #1 strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #1] b _02251C7A _02251C72: add r1, r2, #2 strh r1, [r0, #2] mov r1, #2 strb r1, [r0, #1] _02251C7A: ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x68 bl MOD11_0223178C strb r0, [r4, #0x11] mov r0, #0x14 strb r0, [r4, #0x17] ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251CA6: ldr r0, [r4, #8] mov r1, #0 ldr r0, [r0, #4] add r2, sp, #0xb0 ldrb r0, [r0, #0x11] mov r3, #1 lsl r5, r0, #1 mov r0, #0xe str r0, [sp] str r5, [sp, #4] str r5, [sp, #8] str r1, [sp, #0xc] ldr r0, [r4] bl MOD11_02256854 ldr r0, [r4] add r1, r5, #0 bl MOD11_0222FF7C add r5, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r2, r0, #0 ldr r0, [r4] add r1, r5, #0 add r3, sp, #0xb0 bl MOD11_02254404 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251CEC: ldr r0, [r4, #8] ldr r1, [r0, #4] ldrb r0, [r1, #0x11] lsl r6, r0, #1 add r0, r1, r0 add r0, #0x2c ldrb r7, [r0] ldr r0, [r4] add r1, r6, #0 bl MOD11_02231380 mov r1, #0 mov r2, #1 add r5, r0, #0 bl MI_CpuFill8 ldr r0, [r4] add r1, r6, #0 bl MOD11_02230260 str r0, [sp, #0x18] ldr r0, [r4] bl MOD11_0222FF74 add r1, r0, #0 ldr r0, [sp, #0x18] bl MOD11_02257F6C add r1, r5, #0 add r1, #0x25 strb r0, [r1] ldr r0, [r4] add r1, r6, #0 add r2, r7, #0 bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r6, r0, #0 bl FUN_020671BC ldr r1, [r4, #8] mov r2, #0 ldr r1, [r1, #4] ldrh r1, [r1, #0x20] sub r0, r0, r1 str r0, [r5, #0x28] add r0, r6, #0 mov r1, #0xa3 bl FUN_020671BC str r0, [r5, #0x2c] ldr r0, [r4, #8] mov r1, #0x9f ldr r0, [r0, #4] mov r2, #0 ldrh r0, [r0, #0x20] str r0, [r5, #0x30] add r0, r6, #0 bl FUN_020671BC cmp r0, #0 bne _02251D72 add r0, r5, #0 mov r1, #0 add r0, #0x4a strb r1, [r0] _02251D72: ldr r1, [r5, #0x30] add r0, r5, #0 bl MOD11_02257150 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251D86: ldr r1, [r4, #8] ldr r0, [r4] ldr r1, [r1, #4] ldrb r1, [r1, #0x11] lsl r1, r1, #1 bl MOD11_02231380 add r5, r0, #0 bl MOD11_02257184 mov r1, #0 mvn r1, r1 cmp r0, r1 beq _02251DA4 b _02251FEA _02251DA4: mov r2, #1 add r0, r5, #0 mov r1, #0 lsl r2, r2, #8 bl MOD11_02256D70 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251DBC: ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 ldr r0, [r4, #8] ldr r1, [r0, #4] ldrb r0, [r1, #0x11] ldrh r1, [r1, #0x20] lsl r0, r0, #1 cmp r1, #0 add r1, sp, #0x1c beq _02251DF4 ldr r2, _02251FF0 ; =0x000004BE strh r2, [r1, #0x2a] mov r2, #0x11 add r1, sp, #0x44 strb r2, [r1, #1] ldr r1, [r4, #8] add r1, r1, r0 ldrb r1, [r1, #0xc] lsl r1, r1, #8 orr r0, r1 str r0, [sp, #0x48] ldr r0, [r4, #8] ldr r0, [r0, #4] ldrh r0, [r0, #0x20] str r0, [sp, #0x4c] b _02251E0A _02251DF4: ldr r2, _02251FF4 ; =0x000004E2 strh r2, [r1, #0x2a] mov r2, #2 add r1, sp, #0x44 strb r2, [r1, #1] ldr r1, [r4, #8] add r1, r1, r0 ldrb r1, [r1, #0xc] lsl r1, r1, #8 orr r0, r1 str r0, [sp, #0x48] _02251E0A: ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x44 bl MOD11_0223178C strb r0, [r4, #0x11] mov r0, #0x14 strb r0, [r4, #0x17] ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251E2E: ldr r0, [r4, #8] mov r5, #0 ldr r0, [r0, #4] ldrb r0, [r0, #0x11] lsl r7, r0, #1 ldr r0, [r4] add r1, r7, #0 bl MOD11_02231380 str r0, [sp, #0x10] ldr r0, [r4, #8] add r1, r7, #0 ldr r3, [r0, #4] ldr r0, [r4] ldrb r2, [r3, #0x11] add r2, r3, r2 add r2, #0x2c ldrb r2, [r2] bl MOD11_02230014 mov r1, #0x9f add r2, r5, #0 bl FUN_020671BC cmp r0, #0 bne _02251E6A ldr r0, [sp, #0x10] add r1, r5, #0 add r0, #0x4a strb r1, [r0] _02251E6A: ldr r0, [sp, #0x10] mov r2, #1 add r1, r0, #0 ldr r1, [r1, #0x28] lsl r2, r2, #8 bl MOD11_02256D70 mov r1, #2 add r0, sp, #0x1c strb r1, [r0, #5] ldr r0, [r4, #8] mov r1, #0xf add r0, r0, r7 ldrb r0, [r0, #0xc] mov r2, #5 lsl r0, r0, #8 orr r0, r7 str r0, [sp, #0x24] ldr r0, [r4, #4] ldrh r0, [r0, #0x1c] bl FUN_0206E7B8 cmp r0, #0 beq _02251E9E mov r6, #0 add r5, r5, #1 _02251E9E: ldr r0, [r4, #4] mov r1, #0x10 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251EB2 mov r6, #1 add r5, r5, #1 _02251EB2: ldr r0, [r4, #4] mov r1, #0x11 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251EC6 mov r6, #2 add r5, r5, #1 _02251EC6: ldr r0, [r4, #4] mov r1, #0x12 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251EDA mov r6, #3 add r5, r5, #1 _02251EDA: ldr r0, [r4, #4] mov r1, #0x13 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251EEE mov r6, #4 add r5, r5, #1 _02251EEE: ldr r0, [r4, #4] mov r1, #0x14 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251F02 mov r6, #5 add r5, r5, #1 _02251F02: ldr r0, [r4, #4] mov r1, #0x15 ldrh r0, [r0, #0x1c] mov r2, #5 bl FUN_0206E7B8 cmp r0, #0 beq _02251F16 mov r6, #6 add r5, r5, #1 _02251F16: cmp r5, #1 beq _02251F22 ldr r1, _02251FF8 ; =0x000004CD add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F22: cmp r6, #6 bhi _02251F76 add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02251F32: ; jump table .short _02251F40 - _02251F32 - 2 ; case 0 .short _02251F48 - _02251F32 - 2 ; case 1 .short _02251F50 - _02251F32 - 2 ; case 2 .short _02251F58 - _02251F32 - 2 ; case 3 .short _02251F60 - _02251F32 - 2 ; case 4 .short _02251F68 - _02251F32 - 2 ; case 5 .short _02251F70 - _02251F32 - 2 ; case 6 _02251F40: ldr r1, _02251FFC ; =0x000004BA add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F48: ldr r1, _02252000 ; =0x000004B7 add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F50: ldr r1, _02252004 ; =0x000004B9 add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F58: ldr r1, _02252008 ; =0x000004BB add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F60: ldr r1, _0225200C ; =0x000004B8 add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F68: ldr r1, _02252010 ; =0x000004BC add r0, sp, #0x1c strh r1, [r0, #6] b _02251F76 _02251F70: ldr r1, _02252014 ; =0x000004BD add r0, sp, #0x1c strh r1, [r0, #6] _02251F76: ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #0x20 bl MOD11_0223178C strb r0, [r4, #0x11] mov r0, #0x14 strb r0, [r4, #0x17] ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251FA2: ldr r0, [r4] bl MOD11_02230070 bl FUN_02212384 ldr r0, [r4] bl MOD11_02230070 bl FUN_022123A0 cmp r0, #0 bne _02251FEA ldr r0, [r4] bl MOD11_02230070 bl FUN_022123B0 ldrb r0, [r4, #0xe] add sp, #0x1fc add sp, #0x14 add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, r6, r7, pc} _02251FD0: ldrb r0, [r4, #0x11] bl FUN_0201BD70 cmp r0, #0 bne _02251FEA ldrb r0, [r4, #0x17] sub r0, r0, #1 strb r0, [r4, #0x17] ldrb r0, [r4, #0x17] cmp r0, #0 bne _02251FEA mov r0, #8 strb r0, [r4, #0xe] _02251FEA: add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02251FF0: .word 0x000004BE _02251FF4: .word 0x000004E2 _02251FF8: .word 0x000004CD _02251FFC: .word 0x000004BA _02252000: .word 0x000004B7 _02252004: .word 0x000004B9 _02252008: .word 0x000004BB _0225200C: .word 0x000004B8 _02252010: .word 0x000004BC _02252014: .word 0x000004BD thumb_func_start MOD11_02252018 MOD11_02252018: ; 0x02252018 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 mov r0, #1 add r3, sp, #0 strh r0, [r3] add r4, r1, #0 mov r2, sp ldrb r1, [r4, #0xd] ldrh r6, [r3] ldr r0, [r4] sub r2, r2, #4 strh r6, [r2] ldrh r3, [r3, #2] strh r3, [r2, #2] ldr r2, [r2] bl MOD11_022558C4 ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 ldr r0, [r4, #8] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_02016A18 ldr r0, [r4, #8] ldr r0, [r0, #4] bl FUN_02016A18 ldr r0, [r4, #8] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02252070 MOD11_02252070: ; 0x02252070 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #0xd] add r5, r0, #0 ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 ldr r0, [r4, #8] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_02016A18 ldr r0, [r4, #8] ldr r0, [r0, #4] bl FUN_02016A18 ldr r0, [r4, #8] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022520A8 MOD11_022520A8: ; 0x022520A8 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_022300CC ldrb r1, [r4, #0xa] add r5, r0, #0 cmp r1, #3 bhi _02252144 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022520CA: ; jump table .short _022520D2 - _022520CA - 2 ; case 0 .short _0225213C - _022520CA - 2 ; case 1 .short _022523B2 - _022520CA - 2 ; case 2 .short _0225240E - _022520CA - 2 ; case 3 _022520D2: ldr r0, [r4] mov r1, #0 bl MOD11_0222FF6C add r6, r0, #0 mov r1, #0xff bl FUN_02019620 add r0, r6, #0 bl FUN_02019548 ldr r0, [r4] bl MOD11_02230094 bl MOD11_0225C76C strb r0, [r4, #0x17] ldr r0, [r4] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 mov r2, #3 str r1, [sp] mov r0, #7 str r0, [sp, #4] str r1, [sp, #8] mov r1, #5 add r3, r1, #0 add r0, r5, #0 lsl r2, r2, #0xa sub r3, #0xd bl FUN_02003210 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] mov r1, #0xa add r3, r1, #0 ldr r2, _0225246C ; =0x0000FFFF add r0, r5, #0 sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xa] add sp, #0x24 add r0, r0, #1 strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _0225213C: bl FUN_020038E4 cmp r0, #0 beq _02252146 _02252144: b _02252468 _02252146: ldr r0, [r4] bl MOD11_0222D7F8 mov r0, #5 mov r1, #0x38 bl FUN_02016998 str r0, [r4, #4] mov r0, #5 bl FUN_0206B8AC ldr r1, [r4, #4] str r0, [r1] ldr r0, [r4] bl MOD11_0222FF74 mov r1, #0xc and r0, r1 cmp r0, #0xc beq _0225217A ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #0xcb beq _0225217A b _0225228E _0225217A: ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230260 cmp r0, #2 bne _02252196 ldrb r0, [r4, #9] str r0, [sp, #0x18] ldr r0, [r4] ldr r1, [sp, #0x18] bl MOD11_022302BC str r0, [sp, #0x14] b _022521A4 _02252196: ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC str r0, [sp, #0x18] ldrb r0, [r4, #9] str r0, [sp, #0x14] _022521A4: mov r0, #5 bl FUN_020669C0 add r6, r0, #0 mov r5, #0 _022521AE: ldr r0, [r4, #4] add r1, r6, #0 ldr r0, [r0] bl FUN_0206B900 add r5, r5, #1 cmp r5, #6 blt _022521AE add r0, r6, #0 bl FUN_02016A18 ldr r0, [r4] ldr r1, [sp, #0x18] mov r7, #0 bl MOD11_0222FFC8 cmp r0, #0 ble _02252216 ldr r0, [sp, #0x18] mov r1, #6 mul r1, r0 add r5, r4, r1 add r6, r7, #0 _022521DC: ldrb r2, [r5, #0x1c] ldr r0, [r4] ldr r1, [sp, #0x18] bl MOD11_02230014 str r0, [sp, #0x1c] ldr r0, [r4, #4] add r1, r6, #0 ldr r0, [r0] bl FUN_0206B9B0 add r1, r0, #0 ldr r0, [sp, #0x1c] bl FUN_02069B88 ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r6 add r0, #0x2c strb r1, [r0] ldr r0, [r4] ldr r1, [sp, #0x18] add r5, r5, #1 add r6, r6, #2 add r7, r7, #1 bl MOD11_0222FFC8 cmp r7, r0 blt _022521DC _02252216: ldr r0, [r4] ldr r1, [sp, #0x14] mov r6, #0 bl MOD11_0222FFC8 cmp r0, #0 ble _02252272 ldr r0, [sp, #0x14] mov r1, #6 mul r1, r0 mov r0, #1 add r5, r4, r1 str r0, [sp, #0xc] add r7, r6, #0 _02252232: ldrb r2, [r5, #0x1c] ldr r0, [r4] ldr r1, [sp, #0x14] bl MOD11_02230014 str r0, [sp, #0x20] ldr r0, [r4, #4] ldr r1, [sp, #0xc] ldr r0, [r0] bl FUN_0206B9B0 add r1, r0, #0 ldr r0, [sp, #0x20] bl FUN_02069B88 ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r7 add r0, #0x2d strb r1, [r0] ldr r0, [sp, #0xc] ldr r1, [sp, #0x14] add r0, r0, #2 str r0, [sp, #0xc] ldr r0, [r4] add r5, r5, #1 add r7, r7, #2 add r6, r6, #1 bl MOD11_0222FFC8 cmp r6, r0 blt _02252232 _02252272: ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_02230260 cmp r0, #4 bne _02252286 ldr r0, [r4, #4] mov r1, #1 strb r1, [r0, #0x11] b _0225230E _02252286: ldr r0, [r4, #4] mov r1, #0 strb r1, [r0, #0x11] b _0225230E _0225228E: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _022522B0 ldr r0, [r4] bl MOD11_0222FF74 mov r1, #8 tst r0, r1 bne _022522B0 ldrb r1, [r4, #9] mov r0, #1 add r7, r1, #0 and r7, r0 b _022522B4 _022522B0: ldrb r1, [r4, #9] add r7, r1, #0 _022522B4: ldr r0, [r4] bl MOD11_02230260 cmp r0, #4 bne _022522C2 mov r1, #1 b _022522C4 _022522C2: mov r1, #0 _022522C4: ldr r0, [r4, #4] strb r1, [r0, #0x11] ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_0222FF88 str r0, [sp, #0x10] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0225230E mov r0, #6 mul r0, r7 add r6, r4, r0 _022522E2: ldrb r2, [r6, #0x1c] ldr r0, [r4] add r1, r7, #0 bl MOD11_02230014 add r1, r0, #0 ldr r0, [r4, #4] ldr r0, [r0] bl FUN_0206B900 ldr r0, [r4, #4] ldrb r1, [r6, #0x1c] add r0, r0, r5 add r0, #0x2c strb r1, [r0] ldr r0, [sp, #0x10] add r6, r6, #1 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _022522E2 _0225230E: ldr r1, [r4] ldr r0, [r4, #4] str r1, [r0, #8] ldr r0, [r4, #4] mov r1, #5 str r1, [r0, #0xc] ldr r0, [r4, #4] mov r1, #0 add r0, #0x36 strb r1, [r0] ldr r1, [r4, #0x10] ldr r0, [r4, #4] strh r1, [r0, #0x24] ldrb r1, [r4, #0x16] ldr r0, [r4, #4] strb r1, [r0, #0x12] ldr r0, [r4, #4] ldrb r1, [r4, #0xb] add r0, #0x35 strb r1, [r0] ldrh r1, [r4, #0x14] ldr r0, [r4, #4] strh r1, [r0, #0x22] ldrb r1, [r4, #9] ldr r0, [r4, #4] str r1, [r0, #0x28] ldr r0, [r4, #4] ldrb r1, [r4, #0x17] add r0, #0x32 strb r1, [r0] ldrb r0, [r4, #9] bl FUN_0206A92C ldrb r1, [r4, #0x18] tst r0, r1 bne _0225235E ldrb r0, [r4, #9] add r0, r4, r0 ldrb r1, [r0, #0xc] b _02252360 _0225235E: mov r1, #6 _02252360: ldr r0, [r4, #4] strb r1, [r0, #0x14] ldr r0, [r4] bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _02252378 ldr r0, [r4, #4] mov r1, #6 strb r1, [r0, #0x15] b _022523A2 _02252378: ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC bl FUN_0206A92C ldrb r1, [r4, #0x18] tst r0, r1 bne _0225239C ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_022302BC add r0, r4, r0 ldrb r1, [r0, #0xc] ldr r0, [r4, #4] strb r1, [r0, #0x15] b _022523A2 _0225239C: ldr r0, [r4, #4] mov r1, #6 strb r1, [r0, #0x15] _022523A2: ldr r0, [r4, #4] bl FUN_02211E60 ldrb r0, [r4, #0xa] add sp, #0x24 add r0, r0, #1 strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _022523B2: ldr r0, [r4, #4] add r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _02252468 ldr r0, [r4] bl MOD11_0222D88C ldr r0, [r4] bl MOD11_02230094 ldr r1, [r4, #4] add r1, #0x32 ldrb r1, [r1] bl MOD11_0225C778 mov r0, #7 str r0, [sp] mov r0, #0 mov r1, #5 str r0, [sp, #4] mov r2, #3 add r3, r1, #0 str r0, [sp, #8] add r0, r5, #0 lsl r2, r2, #0xa sub r3, #0xd bl FUN_02003210 mov r0, #0x10 str r0, [sp] mov r0, #0 mov r1, #0xa str r0, [sp, #4] add r3, r1, #0 str r0, [sp, #8] ldr r2, _0225246C ; =0x0000FFFF add r0, r5, #0 sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xa] add sp, #0x24 add r0, r0, #1 strb r0, [r4, #0xa] pop {r4, r5, r6, r7, pc} _0225240E: bl FUN_020038E4 cmp r0, #0 bne _02252468 ldr r0, [r4] bl MOD11_02230288 mov r1, #0 bl FUN_020143A8 ldr r3, [r4, #4] ldr r0, [r4] ldrb r2, [r3, #0x11] cmp r2, #6 bne _02252436 ldrb r1, [r4, #9] mov r2, #0xff bl MOD11_02255964 b _02252444 _02252436: add r2, r3, r2 add r2, #0x2c ldrb r2, [r2] ldrb r1, [r4, #9] add r2, r2, #1 bl MOD11_02255964 _02252444: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 ldr r0, [r4, #4] ldr r0, [r0] bl FUN_02016A18 ldr r0, [r4, #4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _02252468: add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _0225246C: .word 0x0000FFFF thumb_func_start MOD11_02252470 MOD11_02252470: ; 0x02252470 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 str r0, [sp] ldr r0, [r5] bl MOD11_0222FF74 mov r1, #0x10 ldrb r6, [r5, #9] tst r1, r0 bne _0225248C mov r1, #8 tst r0, r1 beq _02252490 _0225248C: str r6, [sp, #4] b _0225249A _02252490: ldr r0, [r5] add r1, r6, #0 bl MOD11_022302BC str r0, [sp, #4] _0225249A: ldr r0, [r5] add r1, r6, #0 bl FUN_021F4A30 add r4, r0, #0 cmp r4, #6 bne _022524FE ldr r0, [r5] add r1, r6, #0 bl FUN_021F4698 add r4, r0, #0 cmp r4, #6 bne _022524FE ldrb r1, [r5, #9] ldr r0, [r5] bl MOD11_0222FF88 str r0, [sp, #8] mov r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _022524FE ldr r0, [sp, #4] add r7, r5, r6 add r6, r5, r0 _022524D0: ldrb r1, [r5, #9] ldr r0, [r5] add r2, r4, #0 bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022524F2 ldrb r0, [r7, #0xc] cmp r4, r0 beq _022524F2 ldrb r0, [r6, #0xc] cmp r4, r0 bne _022524FE _022524F2: ldr r0, [sp, #8] add r4, r4, #1 bl FUN_0206B9AC cmp r4, r0 blt _022524D0 _022524FE: ldrb r1, [r5, #9] ldr r0, [r5] add r2, r4, #1 bl MOD11_02255964 ldrb r1, [r5, #9] ldrb r2, [r5, #8] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 ldr r0, [sp] bl FUN_0200CAB4 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02252524 MOD11_02252524: ; 0x02252524 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #9] add r5, r0, #0 ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02252544 MOD11_02252544: ; 0x02252544 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r4, r1, #0 add r7, r0, #0 ldr r0, [r4] bl MOD11_0222FF68 ldr r0, [r4] bl MOD11_02230094 add r5, r0, #0 ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_0222FF7C str r0, [sp] ldrb r1, [r4, #0xd] ldr r0, [r4] bl MOD11_022302BC add r1, r0, #0 ldrb r0, [r4, #0xd] cmp r1, r0 beq _0225257E ldr r0, [r4] bl MOD11_02231380 add r6, r0, #0 b _02252580 _0225257E: mov r6, #0 _02252580: ldrb r0, [r4, #0xe] cmp r0, #4 bhi _02252600 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02252592: ; jump table .short _0225259C - _02252592 - 2 ; case 0 .short _022525EC - _02252592 - 2 ; case 1 .short _0225267E - _02252592 - 2 ; case 2 .short _0225269C - _02252592 - 2 ; case 3 .short _022526E0 - _02252592 - 2 ; case 4 _0225259C: add r0, r5, #0 bl MOD11_02258F5C cmp r0, #0 beq _02252600 ldr r0, [r4, #0x10] cmp r0, #0 beq _022525E4 ldr r0, [r4] bl MOD11_022300C4 add r5, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #5 add r0, sp, #4 bne _022525C6 mov r1, #0x82 strb r1, [r0, #5] ldr r0, [r4, #0x14] str r0, [sp, #0xc] b _022525CA _022525C6: mov r1, #0 strb r1, [r0, #5] _022525CA: ldr r1, [r4, #0x10] add r0, sp, #4 strh r1, [r0, #6] ldr r0, [r4] bl MOD11_02230E54 add r3, r0, #0 ldr r0, [r4] add r1, r5, #0 add r2, sp, #8 bl MOD11_0223178C strh r0, [r4, #0x1a] _022525E4: mov r0, #1 add sp, #0x2c strb r0, [r4, #0xe] pop {r4, r5, r6, r7, pc} _022525EC: ldrh r0, [r4, #0x1a] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 beq _02252602 ldr r0, [r4, #0x10] cmp r0, #0 beq _02252602 _02252600: b _0225270A _02252602: add r0, r5, #0 bl MOD11_02258E30 ldrh r1, [r4, #0x18] add r0, sp, #4 strh r1, [r0] ldrb r0, [r4, #0xf] cmp r0, #5 bhi _02252672 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02252620: ; jump table .short _0225262C - _02252620 - 2 ; case 0 .short _0225263A - _02252620 - 2 ; case 1 .short _02252648 - _02252620 - 2 ; case 2 .short _02252656 - _02252620 - 2 ; case 3 .short _02252664 - _02252620 - 2 ; case 4 .short _0225262C - _02252620 - 2 ; case 5 _0225262C: add r0, r5, #0 mov r1, #0xd mov r2, #0 add r3, sp, #4 bl MOD11_02258820 b _02252676 _0225263A: add r0, r5, #0 mov r1, #0xe mov r2, #0 add r3, sp, #4 bl MOD11_02258820 b _02252676 _02252648: add r0, r5, #0 mov r1, #0xf mov r2, #0 add r3, sp, #4 bl MOD11_02258820 b _02252676 _02252656: add r0, r5, #0 mov r1, #0x10 mov r2, #0 add r3, sp, #4 bl MOD11_02258820 b _02252676 _02252664: add r0, r5, #0 mov r1, #0x11 mov r2, #0 add r3, sp, #4 bl MOD11_02258820 b _02252676 _02252672: bl ErrorHandling _02252676: mov r0, #2 add sp, #0x2c strb r0, [r4, #0xe] pop {r4, r5, r6, r7, pc} _0225267E: add r0, r5, #0 bl MOD11_02258E74 mov r1, #0 mvn r1, r1 str r0, [r4, #8] cmp r0, r1 beq _0225270A ldr r0, _02252710 ; =0x000005DD bl FUN_020054C8 mov r0, #3 add sp, #0x2c strb r0, [r4, #0xe] pop {r4, r5, r6, r7, pc} _0225269C: add r0, r5, #0 bl MOD11_02258F5C cmp r0, #1 bne _0225270A ldr r0, [r4, #4] bl MOD11_02257238 ldr r0, [sp] bl MOD11_0225468C add r0, r6, #0 bl MOD11_02258184 add r0, r5, #0 bl MOD11_02258E30 mov r1, #0 add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 bl MOD11_02258820 ldr r0, [r4, #8] cmp r0, #1 bne _022526D8 add r0, r5, #0 mov r1, #0 bl MOD11_0225B77C _022526D8: mov r0, #4 add sp, #0x2c strb r0, [r4, #0xe] pop {r4, r5, r6, r7, pc} _022526E0: add r0, r5, #0 bl MOD11_0225B780 cmp r0, #1 bne _0225270A ldrb r1, [r4, #0xd] ldr r0, [r4] ldr r2, [r4, #8] bl MOD11_02255528 ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 _0225270A: add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _02252710: .word 0x000005DD thumb_func_start MOD11_02252714 MOD11_02252714: ; 0x02252714 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #0xd] add r5, r0, #0 ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02252734 MOD11_02252734: ; 0x02252734 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #0xd] add r5, r0, #0 ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02252754 MOD11_02252754: ; 0x02252754 push {r3, r4, r5, lr} sub sp, #0x1fc sub sp, #0x14 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0x6a ldrb r0, [r0] cmp r0, #0xa bls _0225276A b _022529B8 _0225276A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02252776: ; jump table .short _0225278C - _02252776 - 2 ; case 0 .short _02252996 - _02252776 - 2 ; case 1 .short _022527E6 - _02252776 - 2 ; case 2 .short _02252996 - _02252776 - 2 ; case 3 .short _02252842 - _02252776 - 2 ; case 4 .short _02252996 - _02252776 - 2 ; case 5 .short _02252890 - _02252776 - 2 ; case 6 .short _02252996 - _02252776 - 2 ; case 7 .short _02252918 - _02252776 - 2 ; case 8 .short _02252996 - _02252776 - 2 ; case 9 .short _02252974 - _02252776 - 2 ; case 10 _0225278C: ldrh r0, [r4, #0x1e] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _022527DA ldr r0, [r4, #0x5c] cmp r0, #0 bne _022527DA ldr r0, [r4, #8] mov r1, #6 bl FUN_0200782C cmp r0, #0 bne _022527DA add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0x1b8 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0xc] add r3, sp, #0x1b8 bl MOD11_02254404 add sp, #0x1fc mov r0, #1 add r4, #0x6a add sp, #0x14 strb r0, [r4] pop {r3, r4, r5, pc} _022527DA: add sp, #0x1fc mov r0, #4 add r4, #0x6a add sp, #0x14 strb r0, [r4] pop {r3, r4, r5, pc} _022527E6: add r3, r4, #0 add r3, #0x69 ldrb r3, [r3] ldr r0, [r4] add r1, #0x10 add r2, sp, #0x168 bl MOD11_0225452C add r0, sp, #0x168 mov r1, #5 bl MOD08_0222A494 add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x110 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0xc] add r3, sp, #0x110 bl MOD11_02254404 mov r0, #0x1a add sp, #0x1fc ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x6a ldrb r0, [r0] add r4, #0x6a add sp, #0x14 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02252842: ldr r0, [r4] mov r1, #2 bl MOD11_02231484 add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] cmp r0, #0 beq _0225285A ldr r0, [r4] bl MOD11_02231410 _0225285A: add r0, r4, #0 add r0, #0x6c ldrb r0, [r0] cmp r0, #0 beq _02252870 ldr r0, [r4] bl MOD11_02230068 mov r1, #1 bl FUN_02008284 _02252870: add r3, r4, #0 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0xc] add r3, #0x10 bl MOD11_02254404 add r0, r4, #0 add r0, #0x6a ldrb r0, [r0] add sp, #0x1fc add r4, #0x6a add r0, r0, #1 add sp, #0x14 strb r0, [r4] pop {r3, r4, r5, pc} _02252890: ldr r0, [r4] mov r1, #0 bl MOD11_02231484 add r0, r4, #0 add r0, #0x6b ldrb r0, [r0] cmp r0, #0 beq _022528A8 ldr r0, [r4] bl MOD11_022313E0 _022528A8: add r0, r4, #0 add r0, #0x6c ldrb r0, [r0] cmp r0, #0 beq _022528BE ldr r0, [r4] bl MOD11_02230068 mov r1, #1 bl FUN_02008290 _022528BE: ldrh r0, [r4, #0x1e] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0225290C ldr r0, [r4, #0x5c] cmp r0, #0 bne _0225290C ldr r0, [r4, #8] mov r1, #6 bl FUN_0200782C cmp r0, #0 bne _0225290C add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0xb8 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0xc] add r3, sp, #0xb8 bl MOD11_02254404 add sp, #0x1fc mov r0, #7 add r4, #0x6a add sp, #0x14 strb r0, [r4] pop {r3, r4, r5, pc} _0225290C: add sp, #0x1fc mov r0, #0xa add r4, #0x6a add sp, #0x14 strb r0, [r4] pop {r3, r4, r5, pc} _02252918: add r3, r4, #0 add r3, #0x69 ldrb r3, [r3] ldr r0, [r4] add r1, #0x10 add r2, sp, #0x68 bl MOD11_0225452C add r0, sp, #0x68 mov r1, #5 bl MOD08_0222A568 add r0, r4, #0 add r0, #0x69 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x10 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #0xc] add r3, sp, #0x10 bl MOD11_02254404 mov r0, #0x1a add sp, #0x1fc ldr r1, [r4, #4] mov r2, #1 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x6a ldrb r0, [r0] add r4, #0x6a add sp, #0x14 add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02252974: add r2, r4, #0 add r1, #0x69 add r2, #0x68 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, pc} _02252996: ldr r0, [r4, #0xc] bl FUN_02212384 ldr r0, [r4, #0xc] bl FUN_022123A0 cmp r0, #0 bne _022529B8 ldr r0, [r4, #0xc] bl FUN_022123B0 add r0, r4, #0 add r0, #0x6a ldrb r0, [r0] add r4, #0x6a add r0, r0, #1 strb r0, [r4] _022529B8: add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022529C0 MOD11_022529C0: ; 0x022529C0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #9] cmp r0, #6 bhs _022529FA ldrb r0, [r4, #0xa] cmp r0, #0 bne _022529F4 mov r0, #2 strb r0, [r4, #0xa] ldrb r0, [r4, #9] mov r1, #6 add r0, r0, #1 strb r0, [r4, #9] ldr r0, [r4, #4] bl FUN_0200782C add r3, r0, #0 mov r2, #1 ldr r0, [r4, #4] mov r1, #6 eor r2, r3 bl FUN_02007558 pop {r3, r4, r5, pc} _022529F4: sub r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _022529FA: ldr r0, [r4, #4] mov r1, #6 mov r2, #0 bl FUN_02007558 ldrb r1, [r4, #8] ldr r0, [r4] mov r2, #0x17 bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD11_02252A1C MOD11_02252A1C: ; 0x02252A1C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4] cmp r0, #0 beq _02252A2E cmp r0, #1 beq _02252A3C b _02252A52 _02252A2E: ldr r1, [r4, #0x30] add r0, r4, #0 bl MOD11_02257150 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] _02252A3C: add r0, r4, #0 bl MOD11_02257184 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02252A6C ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02252A52: add r2, r4, #0 add r1, #0x24 add r2, #0x4c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4, #0xc] bl MOD11_022567B8 mov r0, #0 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 _02252A6C: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02252A70 MOD11_02252A70: ; 0x02252A70 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4] cmp r0, #0 beq _02252A86 cmp r0, #1 beq _02252AA2 cmp r0, #2 beq _02252AE8 b _02252B0E _02252A86: add r0, r4, #0 mov r1, #0 add r0, #0x4e strb r1, [r0] ldr r0, _02252B2C ; =0x0000070B bl FUN_020054C8 ldr r1, [r4, #0x40] add r0, r4, #0 bl MOD11_022571B8 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] _02252AA2: add r0, r4, #0 add r0, #0x4e ldrb r0, [r0] cmp r0, #8 bhs _02252ABA add r0, r4, #0 add r0, #0x4e ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x4e strb r1, [r0] _02252ABA: add r0, r4, #0 bl MOD11_022571EC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02252B28 add r0, r4, #0 add r0, #0x4e ldrb r0, [r0] cmp r0, #8 blo _02252AE0 ldr r0, _02252B2C ; =0x0000070B mov r1, #0 bl FUN_020054F0 mov r0, #0x64 strb r0, [r4] pop {r3, r4, r5, pc} _02252AE0: ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _02252AE8: add r0, r4, #0 add r0, #0x4e ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x4e strb r1, [r0] add r0, r4, #0 add r0, #0x4e ldrb r0, [r0] cmp r0, #8 blo _02252B28 ldr r0, _02252B2C ; =0x0000070B mov r1, #0 bl FUN_020054F0 mov r0, #0x64 strb r0, [r4] pop {r3, r4, r5, pc} _02252B0E: add r2, r4, #0 add r1, #0x24 add r2, #0x4c ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4, #0xc] bl MOD11_022567B8 mov r0, #0 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 _02252B28: pop {r3, r4, r5, pc} nop _02252B2C: .word 0x0000070B thumb_func_start MOD11_02252B30 MOD11_02252B30: ; 0x02252B30 push {r4, r5, r6, lr} sub sp, #0x110 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r1, r4, #0 add r1, #0x66 ldrb r1, [r1] add r5, r0, #0 cmp r1, #0xa bls _02252B4C b _02252DAA _02252B4C: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02252B58: ; jump table .short _02252B6E - _02252B58 - 2 ; case 0 .short _02252C16 - _02252B58 - 2 ; case 1 .short _02252BBA - _02252B58 - 2 ; case 2 .short _02252C16 - _02252B58 - 2 ; case 3 .short _02252C3A - _02252B58 - 2 ; case 4 .short _02252C82 - _02252B58 - 2 ; case 5 .short _02252C9C - _02252B58 - 2 ; case 6 .short _02252CD8 - _02252B58 - 2 ; case 7 .short _02252D04 - _02252B58 - 2 ; case 8 .short _02252D44 - _02252B58 - 2 ; case 9 .short _02252D8C - _02252B58 - 2 ; case 10 _02252B6E: add r0, r4, #0 add r0, #0x70 ldrh r0, [r0] cmp r0, #0 beq _02252BB0 add r0, r4, #0 add r0, #0x65 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0xb8 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0xb8 bl MOD11_02254404 add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252BB0: mov r0, #4 add r4, #0x66 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252BBA: add r3, r4, #0 add r3, #0x65 ldrb r3, [r3] add r1, r4, #0 ldr r0, [r4] add r1, #0xc add r2, sp, #0x68 bl MOD11_0225452C add r0, sp, #0x68 mov r1, #5 bl MOD08_0222A494 add r0, r4, #0 add r0, #0x65 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x10 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x10 bl MOD11_02254404 mov r0, #0x1a ldr r1, [r4, #4] mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252C16: bl FUN_02212384 add r0, r5, #0 bl FUN_022123A0 cmp r0, #0 bne _02252C8A add r0, r5, #0 bl FUN_022123B0 add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252C3A: add r0, r4, #0 add r0, #0x67 ldrb r0, [r0] cmp r0, #2 bne _02252C48 mov r5, #0x75 b _02252C4C _02252C48: mov r5, #0x74 mvn r5, r5 _02252C4C: add r1, r4, #0 add r1, #0x65 ldrb r1, [r1] ldr r0, [r4] bl MOD11_02230E88 mov r1, #0x7f str r1, [sp] add r1, r4, #0 add r1, #0x72 ldrh r1, [r1] add r2, r4, #0 add r2, #0x68 str r1, [sp, #4] mov r1, #5 str r1, [sp, #8] ldrh r2, [r2] add r3, r5, #0 bl FUN_02069FB0 add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x66 strb r1, [r0] _02252C82: bl FUN_02005670 cmp r0, #0 beq _02252C8C _02252C8A: b _02252DAA _02252C8C: add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252C9C: add r0, r4, #0 add r0, #0x67 ldrb r0, [r0] cmp r0, #2 ldr r0, _02252DB0 ; =0x00000703 bne _02252CB0 mov r1, #0x75 bl FUN_020054A8 b _02252CB8 _02252CB0: mov r1, #0x74 mvn r1, r1 bl FUN_020054A8 _02252CB8: ldr r0, [r4, #8] mov r1, #0x29 bl FUN_0200782C cmp r0, #0 ble _02252CCE mov r0, #7 add r4, #0x66 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252CCE: mov r0, #8 add r4, #0x66 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252CD8: ldr r0, [r4, #8] mov r1, #0x29 bl FUN_0200782C add r5, r0, #0 sub r5, #8 bpl _02252CE8 mov r5, #0 _02252CE8: ldr r0, [r4, #8] mov r1, #0x29 add r2, r5, #0 bl FUN_02007558 cmp r5, #0 bne _02252DAA add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x66 strb r1, [r0] _02252D04: ldr r0, [r4, #0x6c] add r1, r4, #0 str r0, [sp] add r0, r4, #0 add r2, r4, #0 add r3, r4, #0 add r0, #0x68 add r1, #0x6a add r2, #0x67 add r3, #0x6b ldrh r0, [r0] ldrb r1, [r1] ldrb r2, [r2] ldrb r3, [r3] bl FUN_02068E88 mov r3, #0x50 sub r0, r3, r0 str r0, [sp] mov r1, #0 ldr r0, [r4, #8] add r2, r1, #0 bl FUN_02007E40 add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252D44: ldr r0, [r4, #8] mov r1, #1 bl FUN_0200782C add r2, r0, #0 ldr r0, [r4, #8] mov r1, #1 add r2, #8 bl FUN_02007558 ldr r0, [r4, #8] mov r1, #0x12 bl FUN_0200782C add r5, r0, #0 sub r5, #8 bpl _02252D68 mov r5, #0 _02252D68: ldr r0, [r4, #8] mov r1, #0x12 add r2, r5, #0 bl FUN_02007558 cmp r5, #0 bne _02252DAA ldr r0, [r4, #8] bl FUN_02007534 add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] add r4, #0x66 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252D8C: add r1, r4, #0 add r2, r4, #0 add r1, #0x65 add r2, #0x64 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _02252DAA: add sp, #0x110 pop {r4, r5, r6, pc} nop _02252DB0: .word 0x00000703 thumb_func_start MOD11_02252DB4 MOD11_02252DB4: ; 0x02252DB4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] bl MOD11_022300CC add r4, r0, #0 ldr r0, [r5] bl MOD11_02230068 add r7, r0, #0 ldrb r0, [r5, #6] cmp r0, #0 beq _02252DDE cmp r0, #1 beq _02252E1C cmp r0, #2 beq _02252E30 add sp, #0xc pop {r4, r5, r6, r7, pc} _02252DDE: ldr r0, [r5] bl MOD11_02230288 mov r1, #1 bl FUN_020143A8 mov r1, #0 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] str r1, [sp, #8] ldr r2, _02252E4C ; =0x0000FFFF add r0, r4, #0 mov r1, #0xf mov r3, #1 bl FUN_02003210 mov r1, #0 add r0, r7, #0 mov r2, #0x10 add r3, r1, #0 str r1, [sp] bl FUN_02007E98 mov r0, #0 mov r1, #0x10 bl FUN_020053CC ldrb r0, [r5, #6] add r0, r0, #1 strb r0, [r5, #6] _02252E1C: add r0, r4, #0 bl FUN_020038E4 cmp r0, #0 bne _02252E46 ldrb r0, [r5, #6] add sp, #0xc add r0, r0, #1 strb r0, [r5, #6] pop {r4, r5, r6, r7, pc} _02252E30: ldrb r1, [r5, #5] ldrb r2, [r5, #4] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _02252E46: add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02252E4C: .word 0x0000FFFF thumb_func_start MOD11_02252E50 MOD11_02252E50: ; 0x02252E50 push {r4, r5, r6, lr} sub sp, #0x110 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] bl MOD11_02230070 add r1, r4, #0 add r1, #0x62 ldrb r1, [r1] add r5, r0, #0 cmp r1, #4 bls _02252E6C b _02252F98 _02252E6C: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02252E78: ; jump table .short _02252E82 - _02252E78 - 2 ; case 0 .short _02252EC4 - _02252E78 - 2 ; case 1 .short _02252F74 - _02252E78 - 2 ; case 2 .short _02252F18 - _02252E78 - 2 ; case 3 .short _02252F74 - _02252E78 - 2 ; case 4 _02252E82: ldr r0, [r4, #4] ldr r0, [r0, #0x20] cmp r0, #0 beq _02252EBA add r2, r4, #0 add r2, #0x63 ldrb r2, [r2] mov r1, #6 bl FUN_02007558 add r0, r4, #0 add r0, #0x63 ldrb r0, [r0] cmp r0, #1 bne _02252EAA mov r0, #0xff add r4, #0x62 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252EAA: add r0, r4, #0 add r0, #0x62 ldrb r0, [r0] add r4, #0x62 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252EBA: mov r0, #0xff add r4, #0x62 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252EC4: ldr r0, [r4, #0x64] cmp r0, #0 beq _02252F0E mov r0, #0x1a ldr r1, [r4, #4] lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0 bne _02252F0E add r0, r4, #0 add r0, #0x61 ldrb r1, [r0] mov r0, #0xf add r2, sp, #0xb8 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0xb8 bl MOD11_02254404 add r0, r4, #0 add r0, #0x62 ldrb r0, [r0] add r4, #0x62 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252F0E: mov r0, #0xff add r4, #0x62 add sp, #0x110 strb r0, [r4] pop {r4, r5, r6, pc} _02252F18: add r3, r4, #0 add r3, #0x61 ldrb r3, [r3] add r1, r4, #0 ldr r0, [r4] add r1, #8 add r2, sp, #0x68 bl MOD11_0225452C add r0, sp, #0x68 mov r1, #5 bl MOD08_0222A568 add r0, r4, #0 add r0, #0x61 ldrb r1, [r0] mov r0, #0x10 add r2, sp, #0x10 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r1, #0 str r1, [sp, #0xc] ldr r0, [r4] mov r3, #1 bl MOD11_02256854 ldr r0, [r4] ldr r1, [r4, #4] add r2, r5, #0 add r3, sp, #0x10 bl MOD11_02254404 mov r0, #0x1a ldr r1, [r4, #4] mov r2, #1 lsl r0, r0, #4 str r2, [r1, r0] add r0, r4, #0 add r0, #0x62 ldrb r0, [r0] add r4, #0x62 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252F74: bl FUN_02212384 add r0, r5, #0 bl FUN_022123A0 cmp r0, #0 bne _02252FB6 add r0, r5, #0 bl FUN_022123B0 add r0, r4, #0 add r0, #0x62 ldrb r0, [r0] add r4, #0x62 add sp, #0x110 add r0, r0, #1 strb r0, [r4] pop {r4, r5, r6, pc} _02252F98: add r1, r4, #0 add r2, r4, #0 add r1, #0x61 add r2, #0x60 ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _02252FB6: add sp, #0x110 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02252FBC MOD11_02252FBC: ; 0x02252FBC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _02252FCE cmp r0, #1 beq _02252FE4 pop {r3, r4, r5, pc} _02252FCE: ldr r0, [r4, #4] add r1, #0xb bl MOD11_0225805C ldr r0, _02253004 ; =0x0000070C bl FUN_020054C8 ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, pc} _02252FE4: ldrb r0, [r4, #0xb] cmp r0, #1 bne _02253000 ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _02253000: pop {r3, r4, r5, pc} nop _02253004: .word 0x0000070C thumb_func_start MOD11_02253008 MOD11_02253008: ; 0x02253008 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] bl MOD11_022312C0 cmp r0, #0 beq _0225302A ldr r0, [r4] bl MOD11_022312C0 bl FUN_0200DBFC ldr r0, [r4] mov r1, #0 bl MOD11_022312C8 _0225302A: ldrb r0, [r4, #6] bl FUN_0201BD70 cmp r0, #0 bne _0225304A ldrb r1, [r4, #5] ldrb r2, [r4, #4] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0225304A: pop {r3, r4, r5, pc} thumb_func_start MOD11_0225304C MOD11_0225304C: ; 0x0225304C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #7] cmp r0, #0 beq _0225305E cmp r0, #1 beq _02253074 pop {r3, r4, r5, pc} _0225305E: ldrb r0, [r4, #6] bl FUN_0201BD70 cmp r0, #0 bne _0225309E ldrb r0, [r4, #7] add r0, r0, #1 strb r0, [r4, #7] mov r0, #0 strb r0, [r4, #8] pop {r3, r4, r5, pc} _02253074: ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] ldrb r0, [r4, #8] cmp r0, #0x28 bne _0225309E ldrb r1, [r4, #5] ldr r0, [r4] bl MOD11_02256004 ldrb r1, [r4, #5] ldrb r2, [r4, #4] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _0225309E: pop {r3, r4, r5, pc} thumb_func_start MOD11_022530A0 MOD11_022530A0: ; 0x022530A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r1, #0 str r0, [sp, #0xc] ldr r0, [r4] bl MOD11_0222FF68 ldr r0, [r4] bl MOD11_022300CC add r5, r0, #0 ldr r0, [r4] bl MOD11_02230294 add r7, r0, #0 ldr r0, [r4] bl MOD11_022302A8 lsl r1, r0, #2 ldr r0, _022533D8 ; =0x0225E86C ldr r6, [r0, r1] ldrb r0, [r4, #0x15] add r0, r0, #1 strb r0, [r4, #0x15] ldrb r0, [r4, #0x14] cmp r0, #6 bhi _02253102 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _022530E2: ; jump table .short _022530F0 - _022530E2 - 2 ; case 0 .short _022530F8 - _022530E2 - 2 ; case 1 .short _0225314A - _022530E2 - 2 ; case 2 .short _022532AC - _022530E2 - 2 ; case 3 .short _022532C8 - _022530E2 - 2 ; case 4 .short _022532E4 - _022530E2 - 2 ; case 5 .short _022532F6 - _022530E2 - 2 ; case 6 _022530F0: add r0, r0, #1 add sp, #0x18 strb r0, [r4, #0x14] pop {r3, r4, r5, r6, r7, pc} _022530F8: add r0, r5, #0 bl FUN_020038E4 cmp r0, #0 beq _02253104 _02253102: b _022533D4 _02253104: mov r0, #5 mov r1, #0 bl MOD08_0222A0D4 str r0, [r4, #4] ldr r0, _022533DC ; =0x0225E820 add r1, sp, #0x10 ldrb r5, [r0, r7] mov r0, #1 str r0, [sp, #0x14] str r5, [sp, #0x10] ldr r0, [r4, #4] bl MOD08_0222A110 str r0, [r4, #8] add r0, r5, #1 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [r4, #4] add r1, sp, #0x10 bl MOD08_0222A110 str r0, [r4, #0xc] ldr r0, [r4, #8] bl MOD08_0222A1DC ldr r0, _022533E0 ; =0x0000084F bl FUN_020054C8 ldrb r0, [r4, #0x14] add sp, #0x18 add r0, r0, #1 strb r0, [r4, #0x14] pop {r3, r4, r5, r6, r7, pc} _0225314A: ldrb r0, [r4, #0x15] cmp r0, #0xa bne _02253180 mov r3, #0 str r3, [sp] mov r0, #0x10 str r0, [sp, #4] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] ldr r2, _022533E4 ; =0x0000F3FF add r0, r5, #0 mov r1, #1 bl FUN_02003210 mov r3, #0 str r3, [sp] mov r0, #0x10 str r0, [sp, #4] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] ldr r2, _022533E8 ; =0x00003FFF add r0, r5, #0 mov r1, #4 bl FUN_02003210 _02253180: ldrb r0, [r4, #0x15] cmp r0, #0x14 bne _0225318C ldr r0, [r4, #0xc] bl MOD08_0222A1DC _0225318C: ldrb r0, [r4, #0x15] cmp r0, #0x17 bne _0225319A mov r0, #0x85 lsl r0, r0, #4 bl FUN_020054C8 _0225319A: ldrb r0, [r4, #0x15] cmp r0, #0x1c bne _02253286 add r0, r5, #0 mov r1, #0 bl FUN_020031FC add r7, r0, #0 ldr r0, [r4] bl MOD11_02231244 add r1, r7, #0 mov r2, #0xe0 bl MIi_CpuCopy16 ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #0x4a bne _022531DC add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r7, #0 mov r2, #0xa0 bl MIi_CpuCopy16 b _0225323E _022531DC: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02253200 add r0, r5, #0 bl FUN_020031FC add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r7, #0 mov r2, #0xe0 bl MIi_CpuCopy16 b _0225323E _02253200: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _02253226 add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r7, #0 mov r2, #0xa0 bl MIi_CpuCopy16 b _0225323E _02253226: add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r7, #0 mov r2, #0x80 bl MIi_CpuCopy16 _0225323E: mov r0, #0x10 str r0, [sp] mov r3, #0 lsl r0, r6, #0x10 str r3, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] ldr r2, _022533E4 ; =0x0000F3FF add r0, r5, #0 mov r1, #1 bl FUN_02003210 mov r0, #0x10 str r0, [sp] mov r3, #0 lsl r0, r6, #0x10 str r3, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] ldr r2, _022533E8 ; =0x00003FFF add r0, r5, #0 mov r1, #4 bl FUN_02003210 mov r0, #0x10 str r0, [sp] mov r3, #0 lsl r0, r6, #0x10 str r3, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] ldr r2, _022533EC ; =0x0000FFFF add r0, r5, #0 mov r1, #0xa bl FUN_02003210 _02253286: ldrb r0, [r4, #0x15] cmp r0, #0x32 bne _022532B6 mov r0, #0x10 str r0, [sp] mov r3, #0 str r3, [sp, #4] mov r2, #3 str r3, [sp, #8] add r0, r5, #0 mov r1, #1 lsl r2, r2, #0xa bl FUN_02003210 ldrb r0, [r4, #0x14] add sp, #0x18 add r0, r0, #1 strb r0, [r4, #0x14] pop {r3, r4, r5, r6, r7, pc} _022532AC: ldr r0, [r4, #0xc] bl MOD08_0222A204 cmp r0, #0 beq _022532B8 _022532B6: b _022533D4 _022532B8: ldr r0, [r4, #4] bl MOD08_0222A14C ldrb r0, [r4, #0x14] add sp, #0x18 add r0, r0, #1 strb r0, [r4, #0x14] pop {r3, r4, r5, r6, r7, pc} _022532C8: ldr r0, [r4] bl MOD11_02230288 mov r1, #0 bl FUN_020143A8 add r0, r4, #0 bl FUN_02016A18 ldr r0, [sp, #0xc] bl FUN_0200CAB4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _022532E4: ldr r0, [r4, #4] bl MOD08_0222A170 ldr r0, [r4, #4] bl MOD08_0222A14C ldrb r0, [r4, #0x14] add r0, r0, #1 strb r0, [r4, #0x14] _022532F6: add r0, r5, #0 mov r1, #0 bl FUN_020031FC add r6, r0, #0 ldr r0, [r4] bl MOD11_02231244 add r1, r6, #0 mov r2, #0xe0 bl MIi_CpuCopy16 ldr r0, [r4] bl MOD11_0222FF74 cmp r0, #0x4a bne _02253332 add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r6, #0 mov r2, #0xa0 bl MIi_CpuCopy16 b _02253394 _02253332: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _02253356 add r0, r5, #0 bl FUN_020031FC add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r6, #0 mov r2, #0xe0 bl MIi_CpuCopy16 b _02253394 _02253356: ldr r0, [r4] bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _0225337C add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r6, #0 mov r2, #0xa0 bl MIi_CpuCopy16 b _02253394 _0225337C: add r0, r5, #0 mov r1, #2 bl FUN_020031FC add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 add r1, r6, #0 mov r2, #0x80 bl MIi_CpuCopy16 _02253394: mov r3, #0 str r3, [sp] ldr r0, _022533F0 ; =0x00007FFF str r3, [sp, #4] str r0, [sp, #8] ldr r2, _022533EC ; =0x0000FFFF add r0, r5, #0 mov r1, #1 bl FUN_02003210 mov r3, #0 str r3, [sp] ldr r2, _022533EC ; =0x0000FFFF str r3, [sp, #4] str r2, [sp, #8] add r0, r5, #0 mov r1, #4 lsr r2, r2, #2 bl FUN_02003210 mov r3, #0 str r3, [sp] ldr r0, _022533F0 ; =0x00007FFF str r3, [sp, #4] str r0, [sp, #8] ldr r2, _022533EC ; =0x0000FFFF add r0, r5, #0 mov r1, #0xa bl FUN_02003210 mov r0, #4 strb r0, [r4, #0x14] _022533D4: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022533D8: .word 0x0225E86C _022533DC: .word 0x0225E820 _022533E0: .word 0x0000084F _022533E4: .word 0x0000F3FF _022533E8: .word 0x00003FFF _022533EC: .word 0x0000FFFF _022533F0: .word 0x00007FFF thumb_func_start MOD11_022533F4 MOD11_022533F4: ; 0x022533F4 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] bl MOD11_022300CC ldrb r1, [r4, #0xa] add r6, r0, #0 cmp r1, #3 bls _0225340C b _02253524 _0225340C: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02253418: ; jump table .short _02253420 - _02253418 - 2 ; case 0 .short _02253440 - _02253418 - 2 ; case 1 .short _022534B0 - _02253418 - 2 ; case 2 .short _022534E2 - _02253418 - 2 ; case 3 _02253420: mov r2, #0 str r2, [sp] mov r1, #0x10 str r1, [sp, #4] mov r1, #0xa str r2, [sp, #8] add r3, r1, #0 ldr r2, _02253528 ; =0x0000FFFF sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xa] add sp, #0xc add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, pc} _02253440: bl FUN_020038E4 cmp r0, #0 bne _02253524 ldr r0, [r4] bl MOD11_0222D7F8 mov r0, #5 mov r1, #0x38 bl FUN_02016998 str r0, [r4, #4] ldrb r1, [r4, #9] ldr r0, [r4] bl MOD11_0222FF88 ldr r1, [r4, #4] mov r2, #3 str r0, [r1] ldr r1, [r4] ldr r0, [r4, #4] str r1, [r0, #8] ldr r0, [r4, #4] mov r1, #5 str r1, [r0, #0xc] ldrb r1, [r4, #0xe] ldr r0, [r4, #4] strb r1, [r0, #0x11] ldrh r1, [r4, #0xc] ldr r0, [r4, #4] strh r1, [r0, #0x24] ldr r1, [r4, #4] mov r0, #0 add r1, #0x36 strb r0, [r1] ldr r1, [r4, #4] strb r0, [r1, #0x12] ldr r1, [r4, #4] add r1, #0x35 strb r2, [r1] ldr r1, [r4, #4] strh r0, [r1, #0x22] ldrb r2, [r4, #9] ldr r1, [r4, #4] str r2, [r1, #0x28] ldr r1, [r4, #4] add r1, #0x32 strb r0, [r1] ldr r0, [r4, #4] bl FUN_02211E60 ldrb r0, [r4, #0xa] add sp, #0xc add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, pc} _022534B0: ldr r0, [r4, #4] add r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _02253524 ldr r0, [r4] bl MOD11_0222D88C mov r0, #0x10 str r0, [sp] mov r0, #0 mov r1, #0xa str r0, [sp, #4] add r3, r1, #0 str r0, [sp, #8] ldr r2, _02253528 ; =0x0000FFFF add r0, r6, #0 sub r3, #0x12 bl FUN_02003210 ldrb r0, [r4, #0xa] add sp, #0xc add r0, r0, #1 strb r0, [r4, #0xa] pop {r3, r4, r5, r6, pc} _022534E2: bl FUN_020038E4 cmp r0, #0 bne _02253524 ldr r0, [r4, #4] add r0, #0x34 ldrb r2, [r0] ldr r0, [r4] cmp r2, #4 bne _02253500 ldrb r1, [r4, #9] mov r2, #0xff bl MOD11_02255964 b _02253508 _02253500: ldrb r1, [r4, #9] add r2, r2, #1 bl MOD11_02255964 _02253508: ldrb r1, [r4, #9] ldrb r2, [r4, #8] ldr r0, [r4] bl MOD11_022567B8 ldr r0, [r4, #4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _02253524: add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _02253528: .word 0x0000FFFF thumb_func_start MOD11_0225352C MOD11_0225352C: ; 0x0225352C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 beq _0225353E cmp r0, #1 beq _02253582 pop {r3, r4, r5, pc} _0225353E: ldrb r1, [r5, #0xc] ldrb r0, [r5, #0xd] cmp r1, r0 bne _0225357C mov r0, #0 strb r0, [r5, #0xc] ldr r0, [r5, #4] mov r1, #0x28 bl FUN_0200782C add r4, r0, #0 ldrb r0, [r5, #0xb] cmp r4, r0 ble _0225355E sub r4, r4, #1 b _02253564 _0225355E: cmp r4, r0 bge _02253564 add r4, r4, #1 _02253564: ldr r0, [r5, #4] mov r1, #0x28 add r2, r4, #0 bl FUN_02007558 ldrb r0, [r5, #0xb] cmp r4, r0 bne _02253598 ldrb r0, [r5, #0xa] add r0, r0, #1 strb r0, [r5, #0xa] pop {r3, r4, r5, pc} _0225357C: add r0, r1, #1 strb r0, [r5, #0xc] pop {r3, r4, r5, pc} _02253582: ldrb r1, [r5, #9] ldrb r2, [r5, #8] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 bl FUN_0200CAB4 _02253598: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0225359C MOD11_0225359C: ; 0x0225359C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 ldrb r1, [r5, #5] add r6, r0, #0 ldr r0, [r5] bl MOD11_02230270 cmp r0, #0 bne _022535B4 mov r4, #0 b _022535B6 _022535B4: mov r4, #1 _022535B6: ldrb r0, [r5, #7] cmp r0, #0 beq _022535C2 cmp r0, #1 beq _0225361C b _02253636 _022535C2: ldrb r0, [r5, #0xe] cmp r0, #0 bne _022535CE mov r7, #0 mov r6, #1 b _022535E6 _022535CE: ldrb r0, [r5, #6] mov r7, #1 cmp r0, #3 beq _022535DC cmp r0, #5 beq _022535E0 b _022535E4 _022535DC: mov r6, #0 b _022535E6 _022535E0: mov r6, #2 b _022535E6 _022535E4: add r6, r7, #0 _022535E6: ldr r0, [r5] bl MOD11_02230078 str r0, [sp, #8] ldr r0, [r5] bl MOD11_02230080 ldr r1, [sp, #8] add r2, r7, #0 str r1, [sp] str r0, [sp, #4] add r0, r5, #0 add r0, #8 add r1, r4, #0 add r3, r6, #0 bl MOD11_0225CA08 add r2, r0, #0 ldr r0, [r5] add r1, r4, #0 bl MOD11_022300A8 ldrb r0, [r5, #7] add sp, #0xc add r0, r0, #1 strb r0, [r5, #7] pop {r4, r5, r6, r7, pc} _0225361C: ldr r0, [r5] add r1, r4, #0 bl MOD11_0223009C bl MOD11_0225CA6C cmp r0, #1 bne _0225364C ldrb r0, [r5, #7] add sp, #0xc add r0, r0, #1 strb r0, [r5, #7] pop {r4, r5, r6, r7, pc} _02253636: ldrb r1, [r5, #5] ldrb r2, [r5, #4] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _0225364C: add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_02253650 MOD11_02253650: ; 0x02253650 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldrb r1, [r5, #5] add r7, r0, #0 ldr r0, [r5] bl MOD11_02230270 cmp r0, #0 bne _02253666 mov r4, #0 b _02253668 _02253666: mov r4, #1 _02253668: ldr r0, [r5] add r1, r4, #0 bl MOD11_0223009C ldrb r1, [r5, #7] add r6, r0, #0 cmp r1, #0 beq _0225367E cmp r1, #1 beq _0225369A b _022536BA _0225367E: ldrb r0, [r5, #0xe] cmp r0, #0 bne _02253688 mov r1, #0 b _0225368A _02253688: mov r1, #1 _0225368A: add r0, r6, #0 add r2, r1, #0 bl MOD11_0225CA90 ldrb r0, [r5, #7] add r0, r0, #1 strb r0, [r5, #7] pop {r3, r4, r5, r6, r7, pc} _0225369A: bl MOD11_0225CAC8 cmp r0, #1 bne _022536D0 add r0, r6, #0 bl MOD11_0225CAEC ldr r0, [r5] add r1, r4, #0 mov r2, #0 bl MOD11_022300A8 ldrb r0, [r5, #7] add r0, r0, #1 strb r0, [r5, #7] pop {r3, r4, r5, r6, r7, pc} _022536BA: ldrb r1, [r5, #5] ldrb r2, [r5, #4] ldr r0, [r5] bl MOD11_022567B8 add r0, r5, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 _022536D0: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022536D4 MOD11_022536D4: ; 0x022536D4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _02253706 ldr r0, [r4, #4] add r0, #0x8c ldr r0, [r0] cmp r0, #0 beq _022536EE bl ErrorHandling _022536EE: ldrb r2, [r4, #0xd] ldr r0, [r4] mov r1, #5 bl FUN_022156C0 ldr r1, [r4, #4] add r1, #0x8c str r0, [r1] ldrb r0, [r4, #0xe] add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, pc} _02253706: ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02253720 MOD11_02253720: ; 0x02253720 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #4] add r0, #0x8c ldr r0, [r0] cmp r0, #0 bne _02253734 bl ErrorHandling _02253734: ldr r0, [r4, #4] add r0, #0x8c ldr r0, [r0] bl FUN_02215988 cmp r0, #3 bne _0225374E ldrb r0, [r4, #0xe] cmp r0, #5 bhs _0225374E add r0, r0, #1 strb r0, [r4, #0xe] pop {r3, r4, r5, pc} _0225374E: ldr r0, [r4, #4] ldrb r1, [r4, #0xd] add r0, #0x8c ldr r0, [r0] bl FUN_0221594C ldr r0, [r4, #4] mov r1, #0 add r0, #0x8c str r1, [r0] ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xc] ldr r0, [r4] bl MOD11_022567B8 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0225377C MOD11_0225377C: ; 0x0225377C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD11_0222FF74 mov r1, #0x40 tst r1, r0 beq _022537D6 mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r4, r0] cmp r1, #0 beq _022537B6 ldr r1, _022539F4 ; =MOD11_02250F44 add r0, r0, #2 str r1, [r4] ldr r1, _022539F8 ; =MOD11_022511C4 str r1, [r4, #4] ldr r1, _022539FC ; =MOD11_02251420 str r1, [r4, #8] ldr r1, _02253A00 ; =MOD11_02252018 str r1, [r4, #0xc] ldr r1, _02253A04 ; =MOD11_02252470 str r1, [r4, #0x10] ldr r1, _02253A08 ; =MOD11_02252714 str r1, [r4, #0x14] mov r1, #1 strb r1, [r4, r0] pop {r3, r4, r5, pc} _022537B6: ldr r1, _02253A0C ; =MOD11_02250A70 add r0, r0, #2 str r1, [r4] ldr r1, _02253A10 ; =MOD11_0225103C str r1, [r4, #4] ldr r1, _02253A14 ; =MOD11_022512B4 str r1, [r4, #8] ldr r1, _02253A18 ; =MOD11_02251484 str r1, [r4, #0xc] ldr r1, _02253A1C ; =MOD11_022520A8 str r1, [r4, #0x10] ldr r1, _02253A20 ; =MOD11_02252544 str r1, [r4, #0x14] mov r1, #0 strb r1, [r4, r0] pop {r3, r4, r5, pc} _022537D6: mov r1, #0x88 and r1, r0 cmp r1, #0x88 bne _02253888 ldr r0, _02253A24 ; =0x00000195 ldrb r1, [r4, r0] mov r0, #1 tst r0, r1 beq _02253832 add r0, r5, #0 bl MOD11_02230DD4 cmp r0, #0 beq _02253812 ldr r0, _022539F4 ; =MOD11_02250F44 mov r1, #1 str r0, [r4] ldr r0, _022539F8 ; =MOD11_022511C4 str r0, [r4, #4] ldr r0, _022539FC ; =MOD11_02251420 str r0, [r4, #8] ldr r0, _02253A00 ; =MOD11_02252018 str r0, [r4, #0xc] ldr r0, _02253A04 ; =MOD11_02252470 str r0, [r4, #0x10] ldr r0, _02253A08 ; =MOD11_02252714 str r0, [r4, #0x14] ldr r0, _02253A28 ; =0x00000196 strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253812: ldr r0, _02253A2C ; =MOD11_02250F74 mov r1, #2 str r0, [r4] ldr r0, _02253A30 ; =MOD11_02251294 str r0, [r4, #4] ldr r0, _02253A34 ; =MOD11_02251464 str r0, [r4, #8] ldr r0, _02253A38 ; =MOD11_02252070 str r0, [r4, #0xc] ldr r0, _02253A3C ; =MOD11_02252524 str r0, [r4, #0x10] ldr r0, _02253A40 ; =MOD11_02252734 str r0, [r4, #0x14] ldr r0, _02253A28 ; =0x00000196 strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253832: bl FUN_02031190 add r1, r0, #0 add r0, r5, #0 lsl r1, r1, #1 bl MOD11_02230260 ldr r1, _02253A24 ; =0x00000195 ldrb r2, [r4, r1] cmp r2, r0 beq _02253868 ldr r0, _02253A2C ; =MOD11_02250F74 mov r2, #2 str r0, [r4] ldr r0, _02253A30 ; =MOD11_02251294 str r0, [r4, #4] ldr r0, _02253A34 ; =MOD11_02251464 str r0, [r4, #8] ldr r0, _02253A38 ; =MOD11_02252070 str r0, [r4, #0xc] ldr r0, _02253A3C ; =MOD11_02252524 str r0, [r4, #0x10] ldr r0, _02253A40 ; =MOD11_02252734 str r0, [r4, #0x14] add r0, r1, #1 strb r2, [r4, r0] pop {r3, r4, r5, pc} _02253868: ldr r0, _02253A0C ; =MOD11_02250A70 mov r2, #0 str r0, [r4] ldr r0, _02253A10 ; =MOD11_0225103C str r0, [r4, #4] ldr r0, _02253A14 ; =MOD11_022512B4 str r0, [r4, #8] ldr r0, _02253A18 ; =MOD11_02251484 str r0, [r4, #0xc] ldr r0, _02253A1C ; =MOD11_022520A8 str r0, [r4, #0x10] ldr r0, _02253A20 ; =MOD11_02252544 str r0, [r4, #0x14] add r0, r1, #1 strb r2, [r4, r0] pop {r3, r4, r5, pc} _02253888: mov r1, #8 tst r1, r0 beq _022538E2 bl FUN_02031190 add r1, r0, #0 add r0, r5, #0 bl MOD11_02230260 ldr r1, _02253A24 ; =0x00000195 ldrb r2, [r4, r1] cmp r2, r0 beq _022538C2 ldr r0, _02253A2C ; =MOD11_02250F74 mov r2, #2 str r0, [r4] ldr r0, _02253A30 ; =MOD11_02251294 str r0, [r4, #4] ldr r0, _02253A34 ; =MOD11_02251464 str r0, [r4, #8] ldr r0, _02253A38 ; =MOD11_02252070 str r0, [r4, #0xc] ldr r0, _02253A3C ; =MOD11_02252524 str r0, [r4, #0x10] ldr r0, _02253A40 ; =MOD11_02252734 str r0, [r4, #0x14] add r0, r1, #1 strb r2, [r4, r0] pop {r3, r4, r5, pc} _022538C2: ldr r0, _02253A0C ; =MOD11_02250A70 mov r2, #0 str r0, [r4] ldr r0, _02253A10 ; =MOD11_0225103C str r0, [r4, #4] ldr r0, _02253A14 ; =MOD11_022512B4 str r0, [r4, #8] ldr r0, _02253A18 ; =MOD11_02251484 str r0, [r4, #0xc] ldr r0, _02253A1C ; =MOD11_022520A8 str r0, [r4, #0x10] ldr r0, _02253A20 ; =MOD11_02252544 str r0, [r4, #0x14] add r0, r1, #1 strb r2, [r4, r0] pop {r3, r4, r5, pc} _022538E2: mov r1, #4 add r2, r0, #0 tst r2, r1 beq _02253934 ldr r0, _02253A24 ; =0x00000195 mov r1, #1 ldrb r2, [r4, r0] tst r1, r2 beq _02253914 ldr r1, _02253A2C ; =MOD11_02250F74 add r0, r0, #1 str r1, [r4] ldr r1, _02253A30 ; =MOD11_02251294 str r1, [r4, #4] ldr r1, _02253A34 ; =MOD11_02251464 str r1, [r4, #8] ldr r1, _02253A38 ; =MOD11_02252070 str r1, [r4, #0xc] ldr r1, _02253A3C ; =MOD11_02252524 str r1, [r4, #0x10] ldr r1, _02253A40 ; =MOD11_02252734 str r1, [r4, #0x14] mov r1, #2 strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253914: ldr r1, _02253A0C ; =MOD11_02250A70 add r0, r0, #1 str r1, [r4] ldr r1, _02253A10 ; =MOD11_0225103C str r1, [r4, #4] ldr r1, _02253A14 ; =MOD11_022512B4 str r1, [r4, #8] ldr r1, _02253A18 ; =MOD11_02251484 str r1, [r4, #0xc] ldr r1, _02253A1C ; =MOD11_022520A8 str r1, [r4, #0x10] ldr r1, _02253A20 ; =MOD11_02252544 str r1, [r4, #0x14] mov r1, #0 strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253934: lsl r1, r1, #7 tst r1, r0 beq _02253970 ldr r0, _02253A24 ; =0x00000195 mov r1, #1 ldrb r2, [r4, r0] tst r2, r1 beq _0225395A ldr r2, _02253A44 ; =MOD11_02251014 add r0, r0, #1 str r2, [r4] mov r2, #0 str r2, [r4, #4] str r2, [r4, #8] str r2, [r4, #0xc] str r2, [r4, #0x10] str r2, [r4, #0x14] strb r1, [r4, r0] pop {r3, r4, r5, pc} _0225395A: ldr r1, _02253A0C ; =MOD11_02250A70 add r0, r0, #1 str r1, [r4] mov r1, #0 str r1, [r4, #4] str r1, [r4, #8] str r1, [r4, #0xc] str r1, [r4, #0x10] str r1, [r4, #0x14] strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253970: mov r1, #0x20 tst r0, r1 ldr r0, _02253A24 ; =0x00000195 beq _022539AE ldrb r2, [r4, r0] mov r1, #1 tst r2, r1 beq _02253996 ldr r2, _02253A48 ; =MOD11_02250F94 add r0, r0, #1 str r2, [r4] mov r2, #0 str r2, [r4, #4] str r2, [r4, #8] str r2, [r4, #0xc] str r2, [r4, #0x10] str r2, [r4, #0x14] strb r1, [r4, r0] pop {r3, r4, r5, pc} _02253996: ldr r1, _02253A0C ; =MOD11_02250A70 mov r2, #0 str r1, [r4] str r2, [r4, #4] str r2, [r4, #8] str r2, [r4, #0xc] ldr r1, _02253A20 ; =MOD11_02252544 str r2, [r4, #0x10] str r1, [r4, #0x14] add r0, r0, #1 strb r2, [r4, r0] pop {r3, r4, r5, pc} _022539AE: ldrb r2, [r4, r0] mov r1, #1 tst r2, r1 beq _022539D4 ldr r2, _022539F4 ; =MOD11_02250F44 add r0, r0, #1 str r2, [r4] ldr r2, _022539F8 ; =MOD11_022511C4 str r2, [r4, #4] ldr r2, _022539FC ; =MOD11_02251420 str r2, [r4, #8] ldr r2, _02253A00 ; =MOD11_02252018 str r2, [r4, #0xc] ldr r2, _02253A04 ; =MOD11_02252470 str r2, [r4, #0x10] ldr r2, _02253A08 ; =MOD11_02252714 str r2, [r4, #0x14] strb r1, [r4, r0] pop {r3, r4, r5, pc} _022539D4: ldr r1, _02253A0C ; =MOD11_02250A70 add r0, r0, #1 str r1, [r4] ldr r1, _02253A10 ; =MOD11_0225103C str r1, [r4, #4] ldr r1, _02253A14 ; =MOD11_022512B4 str r1, [r4, #8] ldr r1, _02253A18 ; =MOD11_02251484 str r1, [r4, #0xc] ldr r1, _02253A1C ; =MOD11_022520A8 str r1, [r4, #0x10] ldr r1, _02253A20 ; =MOD11_02252544 str r1, [r4, #0x14] mov r1, #0 strb r1, [r4, r0] pop {r3, r4, r5, pc} .align 2, 0 _022539F4: .word MOD11_02250F44 _022539F8: .word MOD11_022511C4 _022539FC: .word MOD11_02251420 _02253A00: .word MOD11_02252018 _02253A04: .word MOD11_02252470 _02253A08: .word MOD11_02252714 _02253A0C: .word MOD11_02250A70 _02253A10: .word MOD11_0225103C _02253A14: .word MOD11_022512B4 _02253A18: .word MOD11_02251484 _02253A1C: .word MOD11_022520A8 _02253A20: .word MOD11_02252544 _02253A24: .word 0x00000195 _02253A28: .word 0x00000196 _02253A2C: .word MOD11_02250F74 _02253A30: .word MOD11_02251294 _02253A34: .word MOD11_02251464 _02253A38: .word MOD11_02252070 _02253A3C: .word MOD11_02252524 _02253A40: .word MOD11_02252734 _02253A44: .word MOD11_02251014 _02253A48: .word MOD11_02250F94 thumb_func_start MOD11_02253A4C MOD11_02253A4C: ; 0x02253A4C ldr r1, _02253A54 ; =0x00000195 ldrb r0, [r0, r1] bx lr nop _02253A54: .word 0x00000195 thumb_func_start MOD11_02253A58 MOD11_02253A58: ; 0x02253A58 ldr r1, _02253A60 ; =0x00000196 ldrb r0, [r0, r1] bx lr nop _02253A60: .word 0x00000196 thumb_func_start MOD11_02253A64 MOD11_02253A64: ; 0x02253A64 ldr r1, [r0, #0x20] cmp r1, #0 bne _02253A6C ldr r1, [r0, #0x1c] _02253A6C: add r0, r1, #0 bx lr thumb_func_start MOD11_02253A70 MOD11_02253A70: ; 0x02253A70 add r0, #0x28 bx lr thumb_func_start MOD11_02253A74 MOD11_02253A74: ; 0x02253A74 add r0, #0x80 bx lr thumb_func_start MOD11_02253A78 MOD11_02253A78: ; 0x02253A78 ldr r3, _02253A84 ; =0x020CE34C add r0, #0x80 mov r1, #0 mov r2, #8 bx r3 nop _02253A84: .word 0x020CE34C thumb_func_start MOD11_02253A88 MOD11_02253A88: ; 0x02253A88 push {r4, r5, r6, r7, lr} sub sp, #0x24 ldr r4, [sp, #0x50] add r7, r0, #0 str r1, [sp, #0x14] add r5, r2, #0 str r3, [sp, #0x18] bl MOD11_02230130 add r1, r4, #0 bl MOD11_022312DC str r0, [sp, #0x20] add r0, r7, #0 add r1, r4, #0 bl MOD11_02230260 add r6, r0, #0 mov r0, #1 and r0, r6 str r0, [sp, #0x1c] beq _02253AB8 mov r1, #2 b _02253ABA _02253AB8: mov r1, #0 _02253ABA: ldr r0, [r5, #0xc] ldr r3, [sp, #0x20] str r0, [sp] mov r0, #0 str r0, [sp, #4] str r1, [sp, #8] ldrh r0, [r5, #6] mov r2, #5 str r0, [sp, #0xc] ldrh r0, [r5] ldrh r1, [r5, #2] bl FUN_02012560 add r0, r7, #0 bl MOD11_02230130 ldrh r2, [r5] add r1, r4, #0 bl MOD11_022312F0 add r0, r7, #0 bl MOD11_02230130 ldrh r2, [r5, #4] add r1, r4, #0 bl MOD11_02231308 add r0, r7, #0 bl MOD11_02230130 ldr r2, [sp, #0x40] add r1, r4, #0 bl MOD11_02231320 ldr r0, [sp, #0x3c] ldr r3, [sp, #0x40] str r0, [sp] str r4, [sp, #4] str r4, [sp, #8] ldr r0, [sp, #0x54] ldr r4, [sp, #0x38] str r0, [sp, #0xc] ldr r0, [sp, #0x58] ldr r2, [sp, #0x18] str r0, [sp, #0x10] ldr r0, [sp, #0x14] add r1, r5, #0 add r3, r4, r3 bl FUN_020073E8 add r4, r0, #0 ldr r0, [sp, #0x1c] cmp r0, #0 beq _02253B6E cmp r6, #1 ble _02253B2C asr r6, r6, #1 _02253B2C: add r0, r4, #0 mov r1, #0x2a add r2, r6, #0 bl FUN_02007558 ldr r2, [sp, #0x4c] add r0, r4, #0 mov r1, #0x2e bl FUN_02007558 ldr r2, [sp, #0x38] add r0, r4, #0 mov r1, #0x14 add r2, #0x24 bl FUN_02007558 ldr r2, [sp, #0x48] add r0, r4, #0 mov r1, #0x15 bl FUN_02007558 ldr r3, [sp, #0x40] mov r2, #0x24 add r0, r4, #0 mov r1, #0x16 sub r2, r2, r3 bl FUN_02007558 ldr r2, [sp, #0x44] add r0, r4, #0 mov r1, #0x29 bl FUN_02007558 _02253B6E: add r0, r4, #0 add sp, #0x24 pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_02253B74 MOD11_02253B74: ; 0x02253B74 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, _02253C30 ; =0x00000195 add r6, r2, #0 ldrb r2, [r5, r1] mov r1, #1 add r7, r0, #0 add r4, r3, #0 tst r1, r2 beq _02253BCE bl MOD11_0222FF74 mov r1, #4 tst r0, r1 beq _02253BAE ldr r0, _02253C34 ; =0x000003DE strh r0, [r4, #2] mov r0, #0x1b strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] str r1, [r4, #4] ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02253BAE: ldr r0, _02253C38 ; =0x000003DD strh r0, [r4, #2] mov r0, #0x32 strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] str r1, [r4, #4] ldrb r1, [r5, r0] str r1, [r4, #8] ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02253BCE: bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02253C18 add r0, r7, #0 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _02253C18 ldrh r0, [r6, #2] cmp r0, #0 bne _02253BF2 mov r0, #0xf6 lsl r0, r0, #2 strh r0, [r4, #2] b _02253C1C _02253BF2: cmp r0, #0x19 bhs _02253BFC ldr r0, _02253C3C ; =0x000003D9 strh r0, [r4, #2] b _02253C1C _02253BFC: cmp r0, #0x32 bhs _02253C08 mov r0, #0xf7 lsl r0, r0, #2 strh r0, [r4, #2] b _02253C1C _02253C08: cmp r0, #0x4b bhs _02253C12 ldr r0, _02253C40 ; =0x000003DA strh r0, [r4, #2] b _02253C1C _02253C12: ldr r0, _02253C44 ; =0x000003DB strh r0, [r4, #2] b _02253C1C _02253C18: ldr r0, _02253C3C ; =0x000003D9 strh r0, [r4, #2] _02253C1C: mov r0, #2 strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02253C30: .word 0x00000195 _02253C34: .word 0x000003DE _02253C38: .word 0x000003DD _02253C3C: .word 0x000003D9 _02253C40: .word 0x000003DA _02253C44: .word 0x000003DB thumb_func_start MOD11_02253C48 MOD11_02253C48: ; 0x02253C48 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, _02253D08 ; =0x00000195 add r6, r2, #0 ldrb r2, [r5, r1] mov r1, #1 add r7, r0, #0 add r4, r3, #0 tst r1, r2 beq _02253CA4 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _02253C88 mov r0, #0xf3 lsl r0, r0, #2 strh r0, [r4, #2] mov r0, #0x32 strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] str r1, [r4, #4] ldrb r1, [r5, r0] str r1, [r4, #8] ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02253C88: ldr r0, _02253D0C ; =0x000003CE strh r0, [r4, #2] mov r0, #0x1b strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] str r1, [r4, #4] ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02253CA4: bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _02253CF0 add r0, r7, #0 bl MOD11_0222FF74 mov r1, #4 tst r0, r1 bne _02253CF0 ldrh r1, [r6, #2] cmp r1, #0x64 bhs _02253CC6 ldr r0, _02253D10 ; =0x000003D6 strh r0, [r4, #2] b _02253CF4 _02253CC6: ldr r0, _02253D14 ; =0x00000145 cmp r1, r0 bhs _02253CD2 ldr r0, _02253D18 ; =0x000003D7 strh r0, [r4, #2] b _02253CF4 _02253CD2: add r0, #0xe1 cmp r1, r0 bhs _02253CDE ldr r0, _02253D1C ; =0x000003D5 strh r0, [r4, #2] b _02253CF4 _02253CDE: ldr r0, _02253D20 ; =0x00000307 cmp r1, r0 bhs _02253CEA add r0, #0xcd strh r0, [r4, #2] b _02253CF4 _02253CEA: add r0, #0xcc strh r0, [r4, #2] b _02253CF4 _02253CF0: ldr r0, _02253D24 ; =0x000003D3 strh r0, [r4, #2] _02253CF4: mov r0, #2 strb r0, [r4, #1] mov r0, #0x65 lsl r0, r0, #2 ldrb r1, [r5, r0] ldrb r0, [r6, #1] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02253D08: .word 0x00000195 _02253D0C: .word 0x000003CE _02253D10: .word 0x000003D6 _02253D14: .word 0x00000145 _02253D18: .word 0x000003D7 _02253D1C: .word 0x000003D5 _02253D20: .word 0x00000307 _02253D24: .word 0x000003D3 thumb_func_start MOD11_02253D28 MOD11_02253D28: ; 0x02253D28 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r2, #0 bl MOD11_0222FF74 add r4, r0, #0 mov r0, #2 tst r0, r4 beq _02253D4E add r0, r7, #0 mov r1, #3 bl MOD11_0223022C add r6, r0, #0 add r0, r7, #0 mov r1, #5 bl MOD11_0223022C b _02253D58 _02253D4E: add r0, r7, #0 mov r1, #1 bl MOD11_0223022C add r6, r0, #0 _02253D58: mov r1, #4 tst r1, r4 beq _02253D98 mov r1, #0x80 tst r1, r4 beq _02253D78 mov r1, #0x3e lsl r1, r1, #4 strh r1, [r5, #2] mov r1, #0x3b strb r1, [r5, #1] str r6, [r5, #4] str r6, [r5, #8] str r0, [r5, #0xc] str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _02253D78: mov r1, #8 add r2, r4, #0 tst r2, r1 beq _02253D8E ldr r1, _02253DC8 ; =0x000003CB strh r1, [r5, #2] mov r1, #0x1a strb r1, [r5, #1] str r6, [r5, #4] str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _02253D8E: ldr r0, _02253DCC ; =0x000003CA strh r0, [r5, #2] strb r1, [r5, #1] str r6, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _02253D98: mov r1, #0x10 tst r1, r4 bne _02253DA4 mov r1, #8 tst r1, r4 beq _02253DB8 _02253DA4: mov r1, #0x3e lsl r1, r1, #4 strh r1, [r5, #2] mov r1, #0x3b strb r1, [r5, #1] str r6, [r5, #4] str r6, [r5, #8] str r0, [r5, #0xc] str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} _02253DB8: ldr r0, _02253DD0 ; =0x000003C9 strh r0, [r5, #2] mov r0, #0x1e strb r0, [r5, #1] str r6, [r5, #4] str r6, [r5, #8] pop {r3, r4, r5, r6, r7, pc} nop _02253DC8: .word 0x000003CB _02253DCC: .word 0x000003CA _02253DD0: .word 0x000003C9 thumb_func_start MOD11_02253DD4 MOD11_02253DD4: ; 0x02253DD4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r1, [sp, #4] str r0, [sp] add r6, r2, #0 add r4, r3, #0 bl MOD11_0222FF74 str r0, [sp, #0x14] ldr r2, _022540E4 ; =0x00000195 ldr r0, [sp, #4] ldrb r1, [r0, r2] mov r0, #1 tst r0, r1 bne _02253DF4 b _02253F3C _02253DF4: ldr r0, [sp, #0x14] mov r1, #2 and r0, r1 str r0, [sp, #0x10] beq _02253E10 ldr r0, [sp, #4] sub r1, r2, #1 ldrb r5, [r0, r1] ldr r0, [sp] add r1, r5, #0 bl MOD11_022302BC add r7, r0, #0 b _02253E18 _02253E10: ldr r0, [sp, #4] sub r1, r2, #1 ldrb r5, [r0, r1] add r7, r5, #0 _02253E18: ldr r0, [sp, #0x14] mov r1, #4 tst r0, r1 beq _02253EBE ldr r0, [sp, #0x14] mov r1, #0x80 tst r0, r1 beq _02253E50 ldr r0, _022540E8 ; =0x000003DF add sp, #0x18 strh r0, [r4, #2] mov r0, #0x3c strb r0, [r4, #1] str r5, [r4, #4] str r5, [r4, #8] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #0xc] str r7, [r4, #0x10] str r7, [r4, #0x14] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0x18] pop {r3, r4, r5, r6, r7, pc} _02253E50: ldr r0, [sp, #0x14] mov r1, #8 tst r0, r1 beq _02253E7E mov r0, #0x3d lsl r0, r0, #4 strh r0, [r4, #2] mov r0, #0x38 strb r0, [r4, #1] str r5, [r4, #4] add r0, r6, r5 ldrb r0, [r0, #4] add sp, #0x18 lsl r0, r0, #8 orr r0, r5 str r0, [r4, #8] str r7, [r4, #0xc] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} _02253E7E: ldr r0, [sp, #0x10] cmp r0, #0 beq _02253EA6 ldr r0, _022540EC ; =0x000003CF add sp, #0x18 strh r0, [r4, #2] mov r0, #0x31 strb r0, [r4, #1] str r5, [r4, #4] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #8] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02253EA6: ldr r0, _022540F0 ; =0x000003CE add sp, #0x18 strh r0, [r4, #2] mov r0, #0x1b strb r0, [r4, #1] str r5, [r4, #4] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02253EBE: ldr r0, [sp, #0x14] mov r1, #0x10 tst r0, r1 bne _02253ECE ldr r0, [sp, #0x14] mov r1, #8 tst r0, r1 beq _02253EF6 _02253ECE: ldr r0, _022540E8 ; =0x000003DF add sp, #0x18 strh r0, [r4, #2] mov r0, #0x3c strb r0, [r4, #1] str r5, [r4, #4] str r5, [r4, #8] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #0xc] str r7, [r4, #0x10] str r7, [r4, #0x14] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0x18] pop {r3, r4, r5, r6, r7, pc} _02253EF6: ldr r0, [sp, #0x10] cmp r0, #0 beq _02253F20 ldr r0, _022540F4 ; =0x000003CD add sp, #0x18 strh r0, [r4, #2] mov r0, #0x39 strb r0, [r4, #1] str r5, [r4, #4] str r5, [r4, #8] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #0xc] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} _02253F20: mov r0, #0xf3 lsl r0, r0, #2 strh r0, [r4, #2] mov r0, #0x32 strb r0, [r4, #1] str r5, [r4, #4] str r5, [r4, #8] add r0, r6, r5 ldrb r0, [r0, #4] add sp, #0x18 lsl r0, r0, #8 orr r0, r5 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02253F3C: ldr r0, [sp, #0x14] mov r1, #4 and r0, r1 str r0, [sp, #0xc] beq _02253FCC bl FUN_02031190 lsl r0, r0, #0x18 lsr r2, r0, #0x18 ldr r0, [sp, #0x14] mov r1, #8 and r0, r1 str r0, [sp, #8] beq _02253FA2 add r0, r2, #0 bl FUN_020313CC cmp r0, #3 bhi _02254012 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02253F6E: ; jump table .short _02253F76 - _02253F6E - 2 ; case 0 .short _02253F8C - _02253F6E - 2 ; case 1 .short _02253F8C - _02253F6E - 2 ; case 2 .short _02253F76 - _02253F6E - 2 ; case 3 _02253F76: ldr r0, [sp] mov r1, #4 bl MOD11_0223022C add r5, r0, #0 ldr r0, [sp] mov r1, #2 bl MOD11_0223022C add r7, r0, #0 b _02254012 _02253F8C: ldr r0, [sp] mov r1, #2 bl MOD11_0223022C add r5, r0, #0 ldr r0, [sp] mov r1, #4 bl MOD11_0223022C add r7, r0, #0 b _02254012 _02253FA2: ldr r0, [sp, #0x14] mov r1, #2 tst r0, r1 beq _02253FBE ldr r0, [sp] bl MOD11_0223022C add r5, r0, #0 ldr r0, [sp] mov r1, #4 bl MOD11_0223022C add r7, r0, #0 b _02254012 _02253FBE: ldr r0, [sp] mov r1, #0 bl MOD11_0223022C add r5, r0, #0 add r7, r5, #0 b _02254012 _02253FCC: ldr r0, [sp, #0x14] mov r1, #8 and r0, r1 str r0, [sp, #8] beq _02253FEE ldr r1, [sp, #4] sub r2, r2, #1 ldrb r1, [r1, r2] ldr r0, [sp] bl MOD11_022302BC add r5, r0, #0 mov r1, #0x65 ldr r0, [sp, #4] lsl r1, r1, #2 ldrb r7, [r0, r1] b _02254012 _02253FEE: ldr r0, [sp, #0x14] mov r1, #2 tst r0, r1 beq _0225400A ldr r0, [sp] bl MOD11_0223022C add r5, r0, #0 ldr r0, [sp] mov r1, #4 bl MOD11_0223022C add r7, r0, #0 b _02254012 _0225400A: ldr r0, [sp, #4] sub r1, r2, #1 ldrb r5, [r0, r1] add r7, r5, #0 _02254012: ldr r0, [sp, #0xc] cmp r0, #0 beq _0225407C ldr r0, [sp, #8] cmp r0, #0 beq _02254040 ldr r0, _022540F8 ; =0x000003D1 add sp, #0x18 strh r0, [r4, #2] mov r0, #0x31 strb r0, [r4, #1] str r5, [r4, #4] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #8] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _02254040: ldr r0, [sp, #0x14] mov r1, #2 tst r0, r1 beq _02254068 ldr r0, _022540FC ; =0x000003D2 add sp, #0x18 strh r0, [r4, #2] mov r0, #9 strb r0, [r4, #1] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #4] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _02254068: ldr r0, _02254100 ; =0x000003D3 add sp, #0x18 strh r0, [r4, #2] strb r1, [r4, #1] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} _0225407C: ldr r0, [sp, #8] cmp r0, #0 beq _022540A6 ldr r0, _02254104 ; =0x000003E1 add sp, #0x18 strh r0, [r4, #2] mov r0, #0x39 strb r0, [r4, #1] str r5, [r4, #4] str r5, [r4, #8] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #0xc] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #0x10] pop {r3, r4, r5, r6, r7, pc} _022540A6: ldr r0, [sp, #0x14] mov r1, #2 tst r0, r1 beq _022540CE ldr r0, _022540FC ; =0x000003D2 add sp, #0x18 strh r0, [r4, #2] mov r0, #9 strb r0, [r4, #1] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #4] add r0, r6, r7 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r7 str r0, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _022540CE: ldr r0, _02254100 ; =0x000003D3 strh r0, [r4, #2] strb r1, [r4, #1] add r0, r6, r5 ldrb r0, [r0, #4] lsl r0, r0, #8 orr r0, r5 str r0, [r4, #4] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _022540E4: .word 0x00000195 _022540E8: .word 0x000003DF _022540EC: .word 0x000003CF _022540F0: .word 0x000003CE _022540F4: .word 0x000003CD _022540F8: .word 0x000003D1 _022540FC: .word 0x000003D2 _02254100: .word 0x000003D3 _02254104: .word 0x000003E1 thumb_func_start MOD11_02254108 MOD11_02254108: ; 0x02254108 push {r3, r4, r5, r6, r7, lr} str r0, [sp] add r5, r2, #0 bl MOD11_0222FF74 add r6, r0, #0 ldr r0, [sp] bl MOD11_0223145C add r7, r0, #0 mov r0, #2 tst r0, r6 beq _02254136 ldr r0, [sp] mov r1, #3 bl MOD11_0223022C add r4, r0, #0 ldr r0, [sp] mov r1, #5 bl MOD11_0223022C b _02254140 _02254136: ldr r0, [sp] mov r1, #1 bl MOD11_0223022C add r4, r0, #0 _02254140: cmp r7, #1 beq _0225414E cmp r7, #2 beq _0225416E cmp r7, #3 beq _02254190 pop {r3, r4, r5, r6, r7, pc} _0225414E: mov r1, #8 add r2, r6, #0 tst r2, r1 beq _02254164 ldr r1, _022541B0 ; =0x00000312 strh r1, [r5, #2] mov r1, #0x1a strb r1, [r5, #1] str r4, [r5, #4] str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _02254164: ldr r0, _022541B4 ; =0x00000311 strh r0, [r5, #2] strb r1, [r5, #1] str r4, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0225416E: mov r1, #8 add r2, r6, #0 tst r2, r1 beq _02254186 mov r1, #0xc5 lsl r1, r1, #2 strh r1, [r5, #2] mov r1, #0x1a strb r1, [r5, #1] str r4, [r5, #4] str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _02254186: ldr r0, _022541B8 ; =0x00000313 strh r0, [r5, #2] strb r1, [r5, #1] str r4, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _02254190: mov r1, #8 add r2, r6, #0 tst r2, r1 beq _022541A6 ldr r1, _022541BC ; =0x00000316 strh r1, [r5, #2] mov r1, #0x1a strb r1, [r5, #1] str r4, [r5, #4] str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _022541A6: ldr r0, _022541C0 ; =0x00000315 strh r0, [r5, #2] strb r1, [r5, #1] str r4, [r5, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022541B0: .word 0x00000312 _022541B4: .word 0x00000311 _022541B8: .word 0x00000313 _022541BC: .word 0x00000316 _022541C0: .word 0x00000315 thumb_func_start MOD11_022541C4 MOD11_022541C4: ; 0x022541C4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 mov r6, #0 add r5, r0, #0 str r2, [sp] add r7, r3, #0 str r6, [sp, #4] add r4, r6, #0 bl MOD11_0222FF84 cmp r0, #0 ble _0225420C _022541DC: add r0, r4, #0 bl FUN_0206A92C ldr r1, [sp] ldrb r1, [r1, #1] tst r0, r1 beq _02254200 add r0, r5, #0 add r1, r4, #0 bl MOD11_02230270 cmp r0, #0 beq _022541FE ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] b _02254200 _022541FE: add r6, r6, #1 _02254200: add r0, r5, #0 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _022541DC _0225420C: cmp r6, #0 beq _0225422A ldr r0, [sp, #4] cmp r0, #0 beq _0225422A ldr r0, _022542AC ; =0x0000030D mov r1, #0xc3 strh r0, [r7, #2] mov r0, #0 strb r0, [r7, #1] add r0, r5, #0 bl MOD11_02231468 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _0225422A: cmp r6, #0 beq _02254242 ldr r0, _022542AC ; =0x0000030D mov r1, #0xc2 strh r0, [r7, #2] mov r0, #0 strb r0, [r7, #1] add r0, r5, #0 bl MOD11_02231468 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02254242: add r0, r5, #0 bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _0225426E mov r0, #0xc6 lsl r0, r0, #2 strh r0, [r7, #2] mov r0, #0x1a strb r0, [r7, #1] add r0, r5, #0 mov r1, #3 bl MOD11_0223022C str r0, [r7, #4] add r0, r5, #0 mov r1, #5 bl MOD11_0223022C str r0, [r7, #8] b _0225429E _0225426E: add r0, r5, #0 bl MOD11_0222FF74 mov r1, #2 tst r0, r1 ldr r0, _022542B0 ; =0x00000317 beq _0225428E strh r0, [r7, #2] mov r0, #8 strb r0, [r7, #1] add r0, r5, #0 mov r1, #3 bl MOD11_0223022C str r0, [r7, #4] b _0225429E _0225428E: strh r0, [r7, #2] mov r0, #8 strb r0, [r7, #1] add r0, r5, #0 mov r1, #1 bl MOD11_0223022C str r0, [r7, #4] _0225429E: add r0, r5, #0 mov r1, #0xc1 bl MOD11_02231468 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _022542AC: .word 0x0000030D _022542B0: .word 0x00000317 thumb_func_start MOD11_022542B4 MOD11_022542B4: ; 0x022542B4 push {r4, r5, r6, lr} add r6, r1, #0 mov r1, #0xef add r4, r2, #0 lsl r1, r1, #2 strh r1, [r4, #2] mov r1, #8 add r5, r0, #0 strb r1, [r4, #1] bl MOD11_0222FF74 mov r1, #4 tst r0, r1 beq _022542F4 bl FUN_02031190 bl FUN_020313CC cmp r0, #0 beq _022542E8 add r0, r5, #0 mov r1, #4 bl MOD11_0223022C str r0, [r4, #4] b _022542FC _022542E8: add r0, r5, #0 mov r1, #2 bl MOD11_0223022C str r0, [r4, #4] b _022542FC _022542F4: mov r0, #0x65 lsl r0, r0, #2 ldrb r0, [r6, r0] str r0, [r4, #4] _022542FC: add r0, r5, #0 mov r1, #0xc2 bl MOD11_02231468 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02254308 MOD11_02254308: ; 0x02254308 push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 str r0, [sp, #0x18] str r1, [sp, #0x1c] add r5, r2, #0 add r4, r3, #0 bl MOD11_02230078 add r7, r0, #0 ldr r0, [sp, #0x18] bl MOD11_02230080 add r6, r0, #0 ldr r0, [sp, #0x18] bl MOD11_022300CC str r0, [sp, #0x20] mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, _022543EC ; =0x00004E2F add r3, r5, #0 add r0, r4, r0 str r0, [sp, #8] add r0, r7, #0 add r1, r6, #0 mov r2, #0x1b add r3, #0xc3 bl FUN_0200C00C mov r0, #0x1b str r0, [sp] add r0, r5, #0 add r0, #0x2f str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _022543F0 ; =0x00004E2A mov r1, #2 add r0, r4, r0 str r0, [sp, #0x14] ldr r0, [sp, #0x20] add r2, r7, #0 add r3, r6, #0 bl FUN_0200C0DC mov r0, #1 str r0, [sp] ldr r0, _022543F4 ; =0x00004E27 add r3, r5, #0 add r0, r4, r0 str r0, [sp, #4] add r0, r7, #0 add r1, r6, #0 mov r2, #0x1b add r3, #0xcb bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, _022543F4 ; =0x00004E27 add r5, #0xd3 add r0, r4, r0 str r0, [sp, #4] add r0, r7, #0 add r1, r6, #0 mov r2, #0x1b add r3, r5, #0 bl FUN_0200C13C ldr r5, _022543F8 ; =0x0225E89C add r3, sp, #0x24 mov r2, #6 _022543A0: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _022543A0 ldr r0, [r5] ldr r1, _022543EC ; =0x00004E2F str r0, [r3] add r0, r4, r1 str r0, [sp, #0x38] sub r0, r1, #5 add r0, r4, r0 sub r1, #8 str r0, [sp, #0x3c] add r0, r4, r1 str r0, [sp, #0x40] str r0, [sp, #0x44] add r0, r7, #0 add r1, r6, #0 add r2, sp, #0x24 bl FUN_0200C154 ldr r1, [sp, #0x1c] mov r2, #6 add r3, r1, #0 mul r3, r2 ldr r1, _022543FC ; =0x0222D550 ldr r2, _02254400 ; =0x0222D552 ldrsh r1, [r1, r3] ldrsh r2, [r2, r3] add r4, r0, #0 bl FUN_0200C714 add r0, r4, #0 bl FUN_0200C5A8 add r0, r4, #0 add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022543EC: .word 0x00004E2F _022543F0: .word 0x00004E2A _022543F4: .word 0x00004E27 _022543F8: .word 0x0225E89C _022543FC: .word 0x0222D550 _02254400: .word 0x0222D552 thumb_func_start MOD11_02254404 MOD11_02254404: ; 0x02254404 push {r4, r5, r6, r7, lr} sub sp, #0xac str r0, [sp] ldr r0, [r3, #0x4c] str r1, [sp, #4] str r2, [sp, #8] str r3, [sp, #0xc] cmp r0, #0 bne _02254422 mov r0, #8 str r0, [sp, #0x84] add r0, r3, #0 ldrh r0, [r0, #2] str r0, [sp, #0x18] b _0225442C _02254422: mov r0, #0x3f str r0, [sp, #0x84] add r0, r3, #0 ldr r0, [r0, #0x50] str r0, [sp, #0x18] _0225442C: ldr r0, [sp] bl MOD11_0222FF68 str r0, [sp, #0x20] ldr r0, [sp] bl MOD11_022300CC str r0, [sp, #0x24] ldr r0, [sp] bl MOD11_02230078 add r5, sp, #0x1c str r0, [sp, #0x1c] ldr r0, [sp, #0xc] mov r4, #0 str r0, [sp, #0x14] str r5, [sp, #0x10] add r6, r5, #0 add r7, r0, #0 _02254452: ldr r0, [sp] add r1, r4, #0 bl MOD11_022312D0 str r0, [r5, #0xc] ldr r0, [sp, #0x14] ldrh r1, [r0, #0x18] ldr r0, [sp, #0x10] strh r1, [r0, #0x34] ldr r0, [sp, #0xc] add r0, r0, r4 add r0, #0x20 ldrb r1, [r0] add r0, r6, #0 add r0, #0x3c strb r1, [r0] ldr r0, [sp, #0xc] add r0, r0, r4 add r0, #0x24 ldrb r1, [r0] add r0, r6, #0 add r0, #0x40 strb r1, [r0] ldr r0, [sp, #0xc] add r0, r0, r4 add r0, #0x28 ldrb r1, [r0] add r0, r6, #0 add r0, #0x44 strb r1, [r0] ldr r0, [r7, #0x2c] add r4, r4, #1 str r0, [r5, #0x48] ldr r0, [r7, #0x3c] add r6, r6, #1 str r0, [r5, #0x58] ldr r0, [sp, #0x14] add r5, r5, #4 add r0, r0, #2 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r7, r7, #4 add r0, r0, #2 str r0, [sp, #0x10] cmp r4, #4 blt _02254452 ldr r0, [sp] add r1, sp, #0x38 bl MOD11_02231504 ldr r0, [sp] add r1, sp, #0x3c bl MOD11_02231534 ldr r0, [sp] bl MOD11_0222FF74 mov r2, #0x65 str r0, [sp, #0x4c] ldr r1, [sp, #4] lsl r2, r2, #2 ldrb r1, [r1, r2] ldr r0, [sp] bl MOD11_02230E88 str r0, [sp, #0xa0] ldr r0, [sp] bl MOD11_02231228 str r0, [sp, #0xa4] ldr r0, [sp] bl MOD11_02231230 str r0, [sp, #0xa8] mov r0, #7 str r0, [sp, #0x88] ldr r0, [sp] bl MOD11_022302A8 add r0, r0, #3 str r0, [sp, #0x8c] ldr r0, [sp] bl MOD11_02230C68 add r4, r0, #0 ldr r0, [sp] bl MOD11_022302A8 lsl r1, r0, #1 add r0, r0, r1 add r0, #0x9e add r0, r4, r0 str r0, [sp, #0x90] mov r0, #2 str r0, [sp, #0x94] mov r0, #0 ldr r2, [sp, #0x18] str r0, [sp, #0x98] mov r0, #8 str r0, [sp, #0x9c] lsl r2, r2, #0x10 ldr r0, [sp, #8] ldr r1, [sp, #0xc] lsr r2, r2, #0x10 add r3, sp, #0x1c bl FUN_02212048 add sp, #0xac pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_0225452C MOD11_0225452C: ; 0x0225452C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r2, #0 add r7, r1, #0 str r3, [r6] str r0, [sp] str r3, [r6, #4] mov r4, #0 add r5, r6, #0 str r7, [sp, #0xc] str r6, [sp, #8] str r7, [sp, #4] _02254544: ldr r0, [sp] add r1, r4, #0 bl MOD11_022312D0 str r0, [r5, #8] ldr r0, [sp, #0xc] ldrh r1, [r0, #0x18] ldr r0, [sp, #8] strh r1, [r0, #0x28] add r0, r7, r4 add r0, #0x20 ldrb r1, [r0] add r0, r6, r4 add r0, #0x30 strb r1, [r0] add r0, r7, r4 add r0, #0x24 ldrb r1, [r0] add r0, r6, r4 add r0, #0x34 strb r1, [r0] add r0, r7, r4 add r0, #0x28 ldrb r1, [r0] add r0, r6, r4 add r0, #0x38 strb r1, [r0] ldr r0, [sp, #4] add r4, r4, #1 ldr r0, [r0, #0x2c] str r0, [r5, #0x3c] ldr r0, [sp, #0xc] add r5, r5, #4 add r0, r0, #2 str r0, [sp, #0xc] ldr r0, [sp, #8] add r0, r0, #2 str r0, [sp, #8] ldr r0, [sp, #4] add r0, r0, #4 str r0, [sp, #4] cmp r4, #4 blt _02254544 add r1, r6, #0 ldr r0, [sp] add r1, #0x4c bl MOD11_02231504 add r6, #0x18 ldr r0, [sp] add r1, r6, #0 bl MOD11_02231534 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022545B4 MOD11_022545B4: ; 0x022545B4 push {r4, r5, r6, lr} add r4, r0, #0 add r5, r1, #0 cmp r2, #0 bne _022545F2 add r0, sp, #0 ldrh r6, [r0, #0x10] mov r1, #9 add r0, r6, #0 bl FUN_0206AB18 mov r1, #0x40 tst r0, r1 bne _022545D4 mov r0, #1 b _022545D6 _022545D4: mov r0, #0 _022545D6: strb r0, [r4] add r0, r6, #0 mov r1, #9 bl FUN_0206AB18 mov r1, #0x80 tst r0, r1 beq _022545EC mov r0, #1 strb r0, [r5] pop {r4, r5, r6, pc} _022545EC: mov r0, #0 strb r0, [r5] pop {r4, r5, r6, pc} _022545F2: sub r3, #0x12 cmp r3, #0x15 bhi _02254642 add r0, r3, r3 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02254604: ; jump table .short _02254630 - _02254604 - 2 ; case 0 .short _02254630 - _02254604 - 2 ; case 1 .short _02254630 - _02254604 - 2 ; case 2 .short _02254630 - _02254604 - 2 ; case 3 .short _02254630 - _02254604 - 2 ; case 4 .short _02254642 - _02254604 - 2 ; case 5 .short _02254642 - _02254604 - 2 ; case 6 .short _02254642 - _02254604 - 2 ; case 7 .short _02254642 - _02254604 - 2 ; case 8 .short _02254642 - _02254604 - 2 ; case 9 .short _02254642 - _02254604 - 2 ; case 10 .short _02254642 - _02254604 - 2 ; case 11 .short _02254642 - _02254604 - 2 ; case 12 .short _02254630 - _02254604 - 2 ; case 13 .short _02254630 - _02254604 - 2 ; case 14 .short _02254642 - _02254604 - 2 ; case 15 .short _02254630 - _02254604 - 2 ; case 16 .short _02254630 - _02254604 - 2 ; case 17 .short _0225463A - _02254604 - 2 ; case 18 .short _02254630 - _02254604 - 2 ; case 19 .short _0225463A - _02254604 - 2 ; case 20 .short _02254630 - _02254604 - 2 ; case 21 _02254630: mov r0, #1 strb r0, [r4] mov r0, #0 strb r0, [r5] pop {r4, r5, r6, pc} _0225463A: mov r0, #1 strb r0, [r4] strb r0, [r5] pop {r4, r5, r6, pc} _02254642: mov r0, #0 strb r0, [r4] strb r0, [r5] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0225464C MOD11_0225464C: ; 0x0225464C push {r4, lr} add r4, r0, #0 mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 bne _02254680 add r0, r1, #0 bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _02254680 mov r1, #0xb4 add r0, r1, #0 add r0, #0xe8 strh r1, [r4, r0] ldr r0, _02254684 ; =MOD11_022546B4 ldr r2, _02254688 ; =0x000003F2 add r1, r4, #0 bl FUN_0200CA44 mov r1, #0x66 lsl r1, r1, #2 str r0, [r4, r1] _02254680: pop {r4, pc} nop _02254684: .word MOD11_022546B4 _02254688: .word 0x000003F2 thumb_func_start MOD11_0225468C MOD11_0225468C: ; 0x0225468C push {r4, lr} add r4, r0, #0 mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _022546B2 bl FUN_0200CAB4 mov r0, #0x66 mov r2, #0 lsl r0, r0, #2 str r2, [r4, r0] add r0, r0, #4 strh r2, [r4, r0] ldr r0, [r4, #0x20] mov r1, #4 bl FUN_02007558 _022546B2: pop {r4, pc} thumb_func_start MOD11_022546B4 MOD11_022546B4: ; 0x022546B4 push {r3, r4, r5, lr} add r4, r1, #0 mov r1, #0x67 lsl r1, r1, #2 ldrh r0, [r4, r1] add r0, #0x14 strh r0, [r4, r1] add r0, r1, #0 ldrh r2, [r4, r1] sub r0, #0x34 cmp r2, r0 blo _022546D4 add r0, r1, #0 sub r0, #0x34 sub r0, r2, r0 strh r0, [r4, r1] _022546D4: mov r0, #0x67 lsl r0, r0, #2 ldrh r0, [r4, r0] bl FUN_0201B93C mov r2, #6 asr r1, r0, #0x1f lsl r2, r2, #0xa mov r3, #0 bl _ll_mul add r2, r1, #0 mov r1, #4 add r5, r0, #0 ldr r0, [r4, #0x20] mov r4, #0 lsl r3, r1, #9 add r3, r5, r3 adc r2, r4 lsl r2, r2, #0x14 lsr r3, r3, #0xc orr r3, r2 asr r2, r3, #0xb lsr r2, r2, #0x14 add r2, r3, r2 asr r2, r2, #0xc bl FUN_02007558 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02254710 MOD11_02254710: ; 0x02254710 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 str r1, [sp] str r2, [sp, #4] add r6, r3, #0 bl MOD11_022300DC add r4, r0, #0 add r0, r7, #0 bl MOD11_02230118 add r5, r0, #0 add r0, r7, #0 bl MOD11_02230124 add r7, r0, #0 add r0, sp, #0x10 ldrh r2, [r5] ldrb r3, [r0, #0x10] add r0, r2, #5 add r1, r0, r3 mov r0, #1 lsl r0, r0, #0xc cmp r1, r0 bls _0225474A strh r2, [r7] mov r0, #0 strh r0, [r5] _0225474A: ldr r1, [sp] add r0, sp, #8 strb r1, [r0] ldr r1, [sp, #4] strb r1, [r0, #1] add r1, sp, #0x10 ldrb r1, [r1, #0x10] strh r1, [r0, #2] add r1, sp, #8 mov r0, #0 _0225475E: ldrb r7, [r1, r0] ldrh r2, [r5] add r0, r0, #1 strb r7, [r4, r2] ldrh r2, [r5] add r2, r2, #1 strh r2, [r5] cmp r0, #4 blo _0225475E mov r0, #0 cmp r3, #0 ble _02254788 _02254776: ldrb r2, [r6, r0] ldrh r1, [r5] add r0, r0, #1 strb r2, [r4, r1] ldrh r1, [r5] add r1, r1, #1 strh r1, [r5] cmp r0, r3 blt _02254776 _02254788: add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_0225478C MOD11_0225478C: ; 0x0225478C push {r3, r4, r5, r6, r7, lr} add r3, r1, #0 ldrb r6, [r3, #3] ldrb r1, [r3] ldrb r7, [r3, #2] lsl r6, r6, #8 add r5, r0, #0 mov r2, #0 orr r6, r7 ldrb r4, [r3, #1] cmp r1, #0 bne _022547D2 ldr r0, [r5, #0x30] lsl r1, r4, #8 add r4, r0, r1 mov r0, #0x23 lsl r0, r0, #8 ldrb r0, [r4, r0] cmp r0, #0 bne _0225481C cmp r6, #0 ble _022547CE mov r4, #0x23 lsl r4, r4, #8 _022547BC: add r0, r3, r2 ldr r7, [r5, #0x30] ldrb r0, [r0, #4] add r7, r1, r7 add r7, r2, r7 add r2, r2, #1 strb r0, [r7, r4] cmp r2, r6 blt _022547BC _022547CE: mov r2, #1 b _0225481C _022547D2: cmp r1, #1 bne _022547FE lsl r0, r4, #2 add r0, r5, r0 ldr r1, [r0, #0x34] add r1, #0x94 ldrb r1, [r1] cmp r1, #0 bne _0225481C cmp r6, #0 ble _022547FA _022547E8: add r1, r3, r2 ldrb r4, [r1, #4] ldr r1, [r0, #0x34] add r1, r1, r2 add r1, #0x94 add r2, r2, #1 strb r4, [r1] cmp r2, r6 blt _022547E8 _022547FA: mov r2, #1 b _0225481C _022547FE: cmp r1, #2 bne _0225481C ldrb r7, [r3, #4] ldrb r6, [r3, #5] bl MOD11_02230DD4 cmp r0, #0 beq _0225481A ldr r0, [r5, #0x30] add r1, r6, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02243340 _0225481A: mov r2, #1 _0225481C: add r0, r2, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02254820 MOD11_02254820: ; 0x02254820 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl MOD11_022300DC add r4, r0, #0 add r0, r6, #0 bl MOD11_0223010C add r5, r0, #0 add r0, r6, #0 bl MOD11_02230118 add r7, r0, #0 add r0, r6, #0 bl MOD11_02230124 ldrh r1, [r5] ldrh r2, [r7] cmp r1, r2 beq _02254876 ldrh r2, [r0] cmp r1, r2 bne _02254854 mov r1, #0 strh r1, [r5] strh r1, [r0] _02254854: ldrh r1, [r5] add r0, r6, #0 add r1, r4, r1 bl MOD11_0225478C cmp r0, #1 bne _02254876 ldrh r0, [r5] add r1, r0, #2 ldrb r2, [r4, r1] add r1, r0, #3 ldrb r1, [r4, r1] lsl r1, r1, #8 orr r1, r2 add r1, r1, #4 add r0, r0, r1 strh r0, [r5] _02254876: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02254878 MOD11_02254878: ; 0x02254878 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 str r1, [sp, #4] ldr r1, [r5, #0x2c] mov r0, #4 add r7, r2, #0 add r6, r3, #0 tst r0, r1 beq _022548C8 ldr r0, [sp, #4] cmp r0, #1 bne _022548B2 mov r4, #0 bl FUN_02030F20 cmp r0, #0 ble _022548B2 _0225489C: ldrb r3, [r6] ldr r0, [r5, #0x30] add r1, r4, #0 add r2, r7, #0 bl MOD11_02243304 add r4, r4, #1 bl FUN_02030F20 cmp r4, r0 blt _0225489C _022548B2: add r0, sp, #0x10 ldrb r0, [r0, #0x10] ldr r1, [sp, #4] add r2, r7, #0 str r0, [sp] add r0, r5, #0 add r3, r6, #0 bl FUN_0206C0C8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _022548C8: ldr r0, [sp, #4] cmp r0, #1 bne _022548D8 ldrb r3, [r6] ldr r0, [r5, #0x30] mov r1, #0 bl MOD11_02243304 _022548D8: add r0, sp, #0x10 ldrb r0, [r0, #0x10] ldr r1, [sp, #4] add r2, r7, #0 str r0, [sp] add r0, r5, #0 add r3, r6, #0 bl MOD11_02254710 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_022548F0 MOD11_022548F0: ; 0x022548F0 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #1 str r1, [sp, #4] mov r3, #4 str r3, [sp] add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} thumb_func_start MOD11_02254908 MOD11_02254908: ; 0x02254908 push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 add r7, r1, #0 mov r3, #2 add r2, sp, #0xc strb r3, [r2] mov r2, #0xc0 add r4, r7, #0 mul r4, r2 add r2, sp, #0xc ldrb r2, [r2, #1] mov r3, #3 add r6, r0, #0 str r2, [sp, #4] bic r2, r3 str r2, [sp, #4] ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, _02254A04 ; =0x00002DBE str r2, [sp, #8] ldrb r2, [r3, r2] lsl r2, r2, #0x1c lsr r3, r2, #0x1c mov r2, #3 and r3, r2 ldr r2, [sp, #4] orr r3, r2 add r2, sp, #0xc strb r3, [r2, #1] ldrb r3, [r2, #1] mov r2, #4 bic r3, r2 ldr r2, [r6, #0x30] add r5, r2, r4 ldr r2, [sp, #8] sub r2, #0x58 ldrb r2, [r5, r2] lsl r2, r2, #0x1a lsr r2, r2, #0x1f lsl r2, r2, #0x1f lsr r2, r2, #0x1d orr r3, r2 add r2, sp, #0xc strb r3, [r2, #1] ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, [sp, #8] sub r2, #0x7e ldrh r3, [r3, r2] add r2, sp, #0xc strh r3, [r2, #2] ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, [sp, #8] sub r2, #0x16 str r2, [sp, #8] ldr r2, [r3, r2] str r2, [sp, #0x10] bl MOD11_02230260 add r2, r0, #0 ldr r0, [r6, #0x30] add r1, r7, #0 mov r3, #1 bl MOD11_0224ACAC add r2, sp, #0xc str r0, [sp, #0x14] ldrb r0, [r2, #1] mov r1, #0xf8 add r5, sp, #0xc bic r0, r1 ldr r1, [r6, #0x30] add r3, r1, r4 ldr r1, _02254A08 ; =0x00002D66 mov r4, #0 ldrb r1, [r3, r1] lsl r1, r1, #0x1b lsr r1, r1, #0x1b lsl r1, r1, #0x1b lsr r1, r1, #0x18 orr r0, r1 strb r0, [r2, #1] _022549AE: ldr r0, [r6, #0x30] add r1, r7, #0 add r2, r4, #6 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0xc] add r2, r4, #0 ldr r0, [r6, #0x30] add r1, r7, #0 add r2, #0x1f mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x14] add r2, r4, #0 ldr r0, [r6, #0x30] add r1, r7, #0 add r2, #0x27 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x1c] add r4, r4, #1 add r5, r5, #2 cmp r4, #4 blt _022549AE ldr r0, [r6, #0x30] add r1, r7, #0 mov r2, #0x2d add r3, sp, #0x30 bl MOD11_02243420 mov r0, #0x3c str r0, [sp] add r0, r6, #0 mov r1, #1 add r2, r7, #0 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02254A04: .word 0x00002DBE _02254A08: .word 0x00002D66 thumb_func_start MOD11_02254A0C MOD11_02254A0C: ; 0x02254A0C push {r4, r5, r6, r7, lr} sub sp, #0x7c add r7, r1, #0 mov r3, #3 add r2, sp, #8 strb r3, [r2] mov r2, #0xc0 add r4, r7, #0 mul r4, r2 add r2, sp, #8 ldrb r5, [r2, #1] mov r2, #3 add r6, r0, #0 bic r5, r2 ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, _02254B34 ; =0x00002DBE str r2, [sp, #4] ldrb r2, [r3, r2] lsl r2, r2, #0x1c lsr r3, r2, #0x1c mov r2, #3 and r2, r3 add r3, r5, #0 orr r3, r2 add r2, sp, #8 strb r3, [r2, #1] ldrb r3, [r2, #1] mov r2, #4 bic r3, r2 ldr r2, [r6, #0x30] add r5, r2, r4 ldr r2, [sp, #4] sub r2, #0x58 ldrb r2, [r5, r2] lsl r2, r2, #0x1a lsr r2, r2, #0x1f lsl r2, r2, #0x1f lsr r2, r2, #0x1d orr r3, r2 add r2, sp, #8 strb r3, [r2, #1] ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, [sp, #4] sub r2, #0x7e ldrh r3, [r3, r2] add r2, sp, #8 strh r3, [r2, #2] ldr r2, [r6, #0x30] add r3, r2, r4 ldr r2, [sp, #4] sub r2, #0x16 str r2, [sp, #4] ldr r2, [r3, r2] str r2, [sp, #0xc] bl MOD11_02230260 add r2, r0, #0 ldr r0, [r6, #0x30] add r1, r7, #0 mov r3, #1 bl MOD11_0224ACAC str r0, [sp, #0x10] ldr r0, [r6, #0x30] add r2, sp, #8 add r1, r0, r7 ldr r0, _02254B38 ; =0x0000219C ldrb r0, [r1, r0] mov r1, #0xf8 str r0, [sp, #0x14] ldrb r0, [r2, #1] bic r0, r1 ldr r1, [r6, #0x30] add r3, r1, r4 ldr r1, _02254B3C ; =0x00002D66 ldrb r3, [r3, r1] add r1, #0x59 lsl r3, r3, #0x1b lsr r3, r3, #0x1b lsl r3, r3, #0x1b lsr r3, r3, #0x18 orr r0, r3 strb r0, [r2, #1] ldr r0, [r6, #0x30] add r0, r0, r4 ldrb r0, [r0, r1] add r1, r7, #0 str r0, [sp, #0x18] add r0, r6, #0 bl MOD11_022302BC ldr r1, [r6, #0x30] ldr r2, [sp, #0x14] add r1, r1, r0 ldr r0, _02254B38 ; =0x0000219C ldrb r0, [r1, r0] add r1, r7, #0 str r0, [sp, #0x50] add r0, r6, #0 bl MOD11_02230F6C mov r4, #0 add r5, sp, #8 _02254ADE: ldr r0, [r6, #0x30] add r1, r7, #0 add r2, r4, #6 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x18] add r2, r4, #0 ldr r0, [r6, #0x30] add r1, r7, #0 add r2, #0x1f mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x20] add r2, r4, #0 ldr r0, [r6, #0x30] add r1, r7, #0 add r2, #0x27 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x28] add r4, r4, #1 add r5, r5, #2 cmp r4, #4 blt _02254ADE ldr r0, [r6, #0x30] add r1, r7, #0 mov r2, #0x2d add r3, sp, #0x38 bl MOD11_02243420 mov r0, #0x74 str r0, [sp] add r0, r6, #0 mov r1, #1 add r2, r7, #0 add r3, sp, #8 bl MOD11_02254878 add sp, #0x7c pop {r4, r5, r6, r7, pc} .align 2, 0 _02254B34: .word 0x00002DBE _02254B38: .word 0x0000219C _02254B3C: .word 0x00002D66 thumb_func_start MOD11_02254B40 MOD11_02254B40: ; 0x02254B40 push {r4, r5, r6, r7, lr} sub sp, #0x84 add r7, r1, #0 add r4, r0, #0 mov r1, #4 add r6, sp, #0x10 strb r1, [r6] mov r0, #0xc0 add r5, r7, #0 mul r5, r0 ldr r0, [r4, #0x30] str r2, [sp, #4] add r2, r0, r5 ldr r0, _02254D34 ; =0x00002DB0 str r3, [sp, #8] ldr r3, [r2, r0] lsl r1, r1, #0x13 tst r1, r3 ldrb r1, [r6, #1] beq _02254B8A mov r3, #3 bic r1, r3 add r3, r0, #0 add r3, #0x4a ldrh r2, [r2, r3] add r0, #0x34 lsl r2, r2, #0x18 lsr r3, r2, #0x18 mov r2, #3 and r2, r3 orr r1, r2 strb r1, [r6, #1] ldr r1, [r4, #0x30] add r1, r1, r5 ldr r0, [r1, r0] str r0, [sp, #0x14] b _02254BAA _02254B8A: mov r3, #3 bic r1, r3 add r3, r0, #0 add r3, #0xe ldrb r2, [r2, r3] sub r0, #8 lsl r2, r2, #0x1c lsr r3, r2, #0x1c mov r2, #3 and r2, r3 orr r1, r2 strb r1, [r6, #1] ldr r1, [r4, #0x30] add r1, r1, r5 ldr r0, [r1, r0] str r0, [sp, #0x14] _02254BAA: mov r0, #0xc0 add r6, r7, #0 add r3, sp, #0x10 mul r6, r0 ldrb r0, [r3, #1] mov r1, #4 bic r0, r1 ldr r1, [r4, #0x30] add r2, r1, r6 ldr r1, _02254D38 ; =0x00002D66 ldrb r2, [r2, r1] sub r1, #0x26 lsl r2, r2, #0x1a lsr r2, r2, #0x1f lsl r2, r2, #0x1f lsr r2, r2, #0x1d orr r0, r2 strb r0, [r3, #1] ldr r0, [r4, #0x30] add r0, r0, r6 ldrh r0, [r0, r1] add r1, r7, #0 strh r0, [r3, #2] add r0, r4, #0 bl MOD11_02230260 add r2, r0, #0 ldr r0, [r4, #0x30] add r1, r7, #0 mov r3, #0 bl MOD11_0224ACAC str r0, [sp, #0x18] ldr r0, [r4, #0x30] mov r2, #0xf8 add r1, r0, r7 ldr r0, _02254D3C ; =0x0000219C ldrb r0, [r1, r0] str r0, [sp, #0x1c] add r0, sp, #0x10 ldrb r1, [r0, #1] bic r1, r2 ldr r2, [r4, #0x30] add r3, r2, r6 ldr r2, _02254D38 ; =0x00002D66 ldrb r3, [r3, r2] lsl r3, r3, #0x1b lsr r3, r3, #0x1b lsl r3, r3, #0x1b lsr r3, r3, #0x18 orr r1, r3 strb r1, [r0, #1] ldr r0, [sp, #4] cmp r0, #0 beq _02254C1C str r0, [sp, #0x20] b _02254C26 _02254C1C: ldr r0, [r4, #0x30] add r2, #0x59 add r0, r0, r5 ldrb r0, [r0, r2] str r0, [sp, #0x20] _02254C26: ldr r0, [sp, #8] str r0, [sp, #0x24] ldr r0, [r4, #0x30] add r1, r0, r5 ldr r0, _02254D34 ; =0x00002DB0 ldr r1, [r1, r0] mov r0, #1 lsl r0, r0, #0x18 tst r0, r1 beq _02254C3E mov r0, #1 b _02254C40 _02254C3E: mov r0, #0 _02254C40: ldr r2, [sp, #0x1c] str r0, [sp, #0x5c] add r0, r4, #0 add r1, r7, #0 bl MOD11_02230F6C mov r6, #0 add r5, sp, #0x10 _02254C50: ldr r0, [r4, #0x30] add r1, r7, #0 add r2, r6, #6 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x18] add r2, r6, #0 ldr r0, [r4, #0x30] add r1, r7, #0 add r2, #0x1f mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x20] add r2, r6, #0 ldr r0, [r4, #0x30] add r1, r7, #0 add r2, #0x27 mov r3, #0 bl MOD11_02243420 strh r0, [r5, #0x28] add r6, r6, #1 add r5, r5, #2 cmp r6, #4 blt _02254C50 ldr r0, [r4, #0x30] add r1, r7, #0 mov r2, #0x2d add r3, sp, #0x40 bl MOD11_02243420 add r3, sp, #0x10 mov r2, #0 mov ip, r2 str r3, [sp, #0xc] add r5, r3, #0 _02254C9C: ldr r0, [r4, #0x30] add r1, r0, r2 mov r0, #0xb5 lsl r0, r0, #6 ldrh r1, [r1, r0] ldr r0, [sp, #0xc] add r0, #0x50 strh r1, [r0] ldr r0, [r4, #0x30] add r1, r0, r2 ldr r0, _02254D38 ; =0x00002D66 ldrb r0, [r1, r0] lsl r0, r0, #0x1a lsr r1, r0, #0x1f add r0, r3, #0 add r0, #0x5c strb r1, [r0] ldr r0, [r4, #0x30] add r1, r0, r2 ldr r0, _02254D38 ; =0x00002D66 ldrb r0, [r1, r0] lsl r0, r0, #0x1b lsr r1, r0, #0x1b add r0, r3, #0 add r0, #0x60 strb r1, [r0] ldr r0, [r4, #0x30] add r6, r0, r2 ldr r0, _02254D34 ; =0x00002DB0 ldr r1, [r6, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r1 beq _02254CF2 ldr r0, _02254D40 ; =0x00002DFA ldrh r1, [r6, r0] add r0, r3, #0 add r0, #0x58 strb r1, [r0] ldr r0, [r4, #0x30] add r1, r0, r2 ldr r0, _02254D44 ; =0x00002DE4 b _02254D06 _02254CF2: ldr r0, _02254D48 ; =0x00002DBE ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r1, r0, #0x1c add r0, r3, #0 add r0, #0x58 strb r1, [r0] ldr r0, [r4, #0x30] add r1, r0, r2 ldr r0, _02254D4C ; =0x00002DA8 _02254D06: ldr r0, [r1, r0] add r2, #0xc0 str r0, [r5, #0x64] ldr r0, [sp, #0xc] add r3, r3, #1 add r0, r0, #2 str r0, [sp, #0xc] mov r0, ip add r0, r0, #1 add r5, r5, #4 mov ip, r0 cmp r0, #4 blt _02254C9C mov r0, #0x74 str r0, [sp] add r0, r4, #0 mov r1, #1 add r2, r7, #0 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x84 pop {r4, r5, r6, r7, pc} .align 2, 0 _02254D34: .word 0x00002DB0 _02254D38: .word 0x00002D66 _02254D3C: .word 0x0000219C _02254D40: .word 0x00002DFA _02254D44: .word 0x00002DE4 _02254D48: .word 0x00002DBE _02254D4C: .word 0x00002DA8 thumb_func_start MOD11_02254D50 MOD11_02254D50: ; 0x02254D50 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r4, r1, #0 lsl r1, r2, #2 str r0, [sp, #4] add r0, r0, r1 ldr r1, [r0, #0x34] ldr r0, _02254E8C ; =0x00000195 str r2, [sp, #8] ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02254D6E mov r2, #2 b _02254D70 _02254D6E: mov r2, #0 _02254D70: ldr r0, [sp, #8] mov r1, #0xc0 add r5, r0, #0 ldr r0, [sp, #4] mul r5, r1 ldr r0, [r0, #0x30] ldr r3, _02254E90 ; =0x00002D66 add r0, r0, r5 ldrb r0, [r0, r3] mov r1, #5 lsl r0, r0, #0x1b lsr r7, r0, #0x1b add r0, sp, #0xc strb r1, [r0] ldr r0, [sp, #4] ldr r0, [r0, #0x30] add r1, r0, r5 add r0, r3, #0 add r0, #0x4a ldr r6, [r1, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r6 beq _02254DC4 add r0, r3, #0 add r0, #0x7e ldr r0, [r1, r0] lsl r2, r2, #0x18 str r0, [sp] add r0, r3, #0 sub r0, #0x26 add r3, #0x94 ldrh r0, [r1, r0] ldrh r1, [r1, r3] lsl r3, r7, #0x18 lsr r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r3, r3, #0x18 bl FUN_02068E88 b _02254DE6 _02254DC4: add r0, r3, #0 add r0, #0x42 ldr r0, [r1, r0] lsl r2, r2, #0x18 str r0, [sp] add r0, r3, #0 sub r0, #0x26 add r3, #0x58 ldrh r0, [r1, r0] ldrb r1, [r1, r3] lsl r3, r7, #0x18 lsr r2, r2, #0x18 lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsr r3, r3, #0x18 bl FUN_02068E88 _02254DE6: add r1, sp, #0xc strb r0, [r1, #1] ldr r0, [sp, #4] ldr r1, _02254E94 ; =0x00002DBF ldr r0, [r0, #0x30] add r0, r0, r5 ldrb r2, [r0, r1] add r0, sp, #0xc sub r1, #0xf strh r2, [r0, #2] ldr r0, [sp, #4] ldr r0, [r0, #0x30] add r0, r0, r5 ldr r1, [r0, r1] mov r0, #1 lsl r0, r0, #0x18 tst r0, r1 beq _02254E0E mov r0, #1 b _02254E10 _02254E0E: mov r0, #0 _02254E10: str r0, [sp, #0x10] mov r0, #0 mov ip, r0 add r7, sp, #0xc ldr r0, _02254E90 ; =0x00002D66 add r3, r7, #0 add r2, r4, r0 add r0, #0x58 add r5, r7, #0 add r6, r4, r0 _02254E24: mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r4, r0] strh r0, [r7, #8] ldrb r0, [r2] lsl r0, r0, #0x1a lsr r0, r0, #0x1f strb r0, [r3, #0x14] ldrb r0, [r2] lsl r0, r0, #0x1b lsr r0, r0, #0x1b strb r0, [r3, #0x18] ldr r0, _02254E98 ; =0x00002DB0 ldr r1, [r4, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r1 beq _02254E52 ldr r0, _02254E9C ; =0x00002DFA ldrh r0, [r4, r0] strb r0, [r3, #0x10] ldr r0, _02254EA0 ; =0x00002DE4 b _02254E5C _02254E52: ldrb r0, [r6] lsl r0, r0, #0x1c lsr r0, r0, #0x1c strb r0, [r3, #0x10] ldr r0, _02254EA4 ; =0x00002DA8 _02254E5C: ldr r0, [r4, r0] add r4, #0xc0 str r0, [r5, #0x1c] mov r0, ip add r0, r0, #1 add r7, r7, #2 add r2, #0xc0 add r3, r3, #1 add r5, r5, #4 add r6, #0xc0 mov ip, r0 cmp r0, #4 blt _02254E24 mov r0, #0x2c str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #8] mov r1, #1 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _02254E8C: .word 0x00000195 _02254E90: .word 0x00002D66 _02254E94: .word 0x00002DBF _02254E98: .word 0x00002DB0 _02254E9C: .word 0x00002DFA _02254EA0: .word 0x00002DE4 _02254EA4: .word 0x00002DA8 thumb_func_start MOD11_02254EA8 MOD11_02254EA8: ; 0x02254EA8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r1, #0 add r4, r0, #0 lsl r0, r7, #2 add r0, r4, r0 ldr r1, [r0, #0x34] ldr r0, _02254F58 ; =0x00000195 str r2, [sp, #4] ldrb r1, [r1, r0] mov r0, #1 tst r0, r1 beq _02254EC6 mov r2, #2 b _02254EC8 _02254EC6: mov r2, #0 _02254EC8: mov r0, #0xc0 add r6, r7, #0 mul r6, r0 ldr r0, [r4, #0x30] ldr r5, _02254F5C ; =0x00002D66 add r0, r0, r6 ldrb r0, [r0, r5] mov r1, #6 lsl r0, r0, #0x1b lsr r3, r0, #0x1b add r0, sp, #8 strb r1, [r0] ldr r0, [r4, #0x30] add r1, r0, r6 add r0, r5, #0 add r0, #0x4a ldr r6, [r1, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r6 beq _02254F16 add r0, r5, #0 add r0, #0x7e ldr r0, [r1, r0] lsl r2, r2, #0x18 str r0, [sp] add r0, r5, #0 sub r0, #0x26 add r5, #0x94 ldrh r0, [r1, r0] ldrh r1, [r1, r5] lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r3, r3, #0x18 bl FUN_02068E88 b _02254F38 _02254F16: add r0, r5, #0 add r0, #0x42 ldr r0, [r1, r0] lsl r2, r2, #0x18 str r0, [sp] add r0, r5, #0 sub r0, #0x26 add r5, #0x58 ldrh r0, [r1, r0] ldrb r1, [r1, r5] lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsr r3, r3, #0x18 bl FUN_02068E88 _02254F38: add r1, sp, #8 strb r0, [r1, #1] ldr r0, [sp, #4] add r1, sp, #8 strh r0, [r1, #2] mov r0, #4 str r0, [sp] add r0, r4, #0 mov r1, #1 add r2, r7, #0 add r3, sp, #8 bl MOD11_02254878 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _02254F58: .word 0x00000195 _02254F5C: .word 0x00002D66 thumb_func_start MOD11_02254F60 MOD11_02254F60: ; 0x02254F60 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #7 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02254F7C MOD11_02254F7C: ; 0x02254F7C push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #8 add r3, sp, #4 strb r1, [r3] mov r1, #0x34 mul r1, r2 add r1, r0, r1 add r1, #0xad ldrb r1, [r1] strh r1, [r3, #2] add r1, r0, r2 add r1, #0xa8 ldrb r1, [r1] strb r1, [r3, #1] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} thumb_func_start MOD11_02254FAC MOD11_02254FAC: ; 0x02254FAC push {r4, r5, r6, lr} sub sp, #8 mov r6, #9 add r3, sp, #4 strb r6, [r3] add r5, r0, #0 strb r2, [r3, #1] add r4, r1, #0 bl MOD11_022302BC ldr r1, [r5, #0x30] add r2, r4, #0 add r1, r1, r0 ldr r0, _02254FE0 ; =0x0000219C add r3, sp, #4 ldrb r1, [r1, r0] add r0, sp, #4 strh r1, [r0, #2] mov r0, #4 str r0, [sp] add r0, r5, #0 mov r1, #1 bl MOD11_02254878 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 _02254FE0: .word 0x0000219C thumb_func_start MOD11_02254FE4 MOD11_02254FE4: ; 0x02254FE4 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0xa str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02255000 MOD11_02255000: ; 0x02255000 push {r3, r4, lr} sub sp, #0xc add r3, r1, #0 mov r1, #0xb add r4, sp, #4 strb r1, [r4] mov r1, #0x34 mul r1, r3 add r1, r0, r1 add r1, #0xad ldrb r1, [r1] strh r1, [r4, #2] add r1, r0, r3 add r1, #0xa8 ldrb r1, [r1] strb r1, [r4, #1] str r2, [sp, #8] mov r1, #8 str r1, [sp] add r2, r3, #0 mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD11_02255034 MOD11_02255034: ; 0x02255034 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r1, #0 ldr r1, _02255158 ; =0x0000219C add r4, r2, #0 add r7, r5, r1 ldrb r2, [r7, r4] add r1, r4, #0 str r0, [sp, #4] str r3, [sp, #8] bl MOD11_02230014 add r6, r0, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC str r0, [sp, #0x10] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC str r0, [sp, #0xc] mov r0, #0xc add r2, sp, #0x14 strb r0, [r2] mov r0, #0xc0 add r6, r4, #0 mul r6, r0 ldr r1, _0225515C ; =0x00002D74 add r0, r5, r6 ldrb r3, [r0, r1] strb r3, [r2, #1] add r3, r1, #0 add r3, #0x18 ldr r3, [r0, r3] add r1, #0x1c strh r3, [r2, #2] ldr r0, [r0, r1] add r1, r4, #0 strh r0, [r2, #4] ldrb r0, [r7, r4] strb r0, [r2, #6] add r0, r5, #0 bl MOD11_0224524C add r1, sp, #0x14 ldrb r2, [r1, #7] mov r3, #0x1f lsl r0, r0, #0x18 bic r2, r3 lsr r3, r0, #0x18 mov r0, #0x1f and r0, r3 orr r0, r2 strb r0, [r1, #7] mov r0, #0xb5 lsl r0, r0, #6 add r7, r5, r0 ldrh r0, [r7, r6] cmp r0, #0x1d beq _022550B6 cmp r0, #0x20 bne _022550D0 _022550B6: ldr r0, _02255160 ; =0x00002D54 add r1, r5, r6 ldr r0, [r1, r0] lsr r0, r0, #0x1f bne _022550D0 add r0, sp, #0x14 ldrb r1, [r0, #7] mov r2, #0x60 bic r1, r2 mov r2, #0x40 orr r1, r2 strb r1, [r0, #7] b _022550EA _022550D0: add r3, sp, #0x14 ldrb r2, [r3, #7] mov r0, #0x60 add r1, r5, r6 bic r2, r0 ldr r0, _02255164 ; =0x00002DBE ldrb r0, [r1, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c lsl r0, r0, #0x1e lsr r0, r0, #0x19 orr r0, r2 strb r0, [r3, #7] _022550EA: ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] bl FUN_02068758 mov r1, #0xc0 mul r1, r4 add r2, r5, r1 ldr r1, _02255168 ; =0x00002DA4 ldr r1, [r2, r1] sub r0, r1, r0 ldr r1, [sp, #0xc] str r0, [sp, #0x1c] ldr r0, [sp, #0x10] add r1, r1, #1 bl FUN_02068758 add r5, r0, #0 ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] bl FUN_02068758 sub r0, r5, r0 str r0, [sp, #0x20] ldrh r1, [r7, r6] ldr r0, [sp, #4] bl MOD11_02231668 add r3, sp, #0x14 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1f ldrb r1, [r3, #7] mov r2, #0x80 lsr r0, r0, #0x18 bic r1, r2 orr r0, r1 strb r0, [r3, #7] ldr r0, [sp, #4] bl MOD11_02230E00 str r0, [sp, #0x24] ldr r0, [sp, #8] add r1, sp, #0x14 strb r0, [r1, #0x14] mov r0, #0x18 str r0, [sp] ldr r0, [sp, #4] mov r1, #1 add r2, r4, #0 add r3, sp, #0x14 bl MOD11_02254878 add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _02255158: .word 0x0000219C _0225515C: .word 0x00002D74 _02255160: .word 0x00002D54 _02255164: .word 0x00002DBE _02255168: .word 0x00002DA4 thumb_func_start MOD11_0225516C MOD11_0225516C: ; 0x0225516C push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0xd str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02255188 MOD11_02255188: ; 0x02255188 push {r4, r5, r6, r7, lr} sub sp, #0x54 str r0, [sp, #4] str r1, [sp, #8] str r2, [sp, #0xc] mov r0, #0 add r1, sp, #0x28 mov r2, #0x2c add r6, r3, #0 bl MIi_CpuClearFast ldr r0, [sp, #4] bl MOD11_0222FF78 ldr r1, [sp, #0xc] bl MOD11_02243400 mov r5, #0 ldr r0, [sp, #4] add r4, r5, #0 bl MOD11_0222FF84 cmp r0, #0 ble _022551D8 _022551B8: ldr r0, [sp, #8] add r1, r4, #0 bl MOD11_0224AD04 cmp r0, #0 bne _022551CC add r0, r4, #0 bl FUN_0206A92C orr r5, r0 _022551CC: ldr r0, [sp, #4] add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _022551B8 _022551D8: mov r1, #0xe add r0, sp, #0x28 strb r1, [r0] strb r6, [r0, #1] ldr r1, _022554F8 ; =0x00003108 ldr r0, [sp, #8] ldrb r0, [r0, r1] add r1, r0, #0 orr r1, r5 add r0, sp, #0x48 strb r1, [r0, #9] ldr r0, [sp, #4] bl MOD11_0222FF74 mov r1, #2 str r0, [sp, #0x20] tst r0, r1 beq _0225520E ldr r0, [sp, #0x20] mov r1, #8 tst r0, r1 bne _0225520E ldr r0, [sp, #0xc] mov r1, #1 add r4, r0, #0 and r4, r1 b _02255210 _0225520E: ldr r4, [sp, #0xc] _02255210: ldr r0, [sp, #4] add r1, r4, #0 bl MOD11_0222FF88 str r0, [sp, #0x24] mov r6, #0 bl FUN_0206B9AC cmp r0, #0 ble _022552A6 mov r0, #6 add r1, r4, #0 mul r1, r0 ldr r0, [sp, #8] add r5, sp, #0x28 add r7, r0, r1 mov r1, #0xa9 ldr r0, [sp, #0x20] lsl r1, r1, #2 and r0, r1 str r0, [sp, #0x1c] _0225523A: ldr r1, _022554FC ; =0x0000312C ldr r0, [sp, #0x24] ldrb r1, [r7, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r4, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02255298 ldr r1, _02255500 ; =0x000001EE cmp r0, r1 beq _02255298 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02255280 add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0225527A mov r0, #3 strb r0, [r5, #8] b _02255284 _0225527A: mov r0, #1 strb r0, [r5, #8] b _02255284 _02255280: mov r0, #2 strb r0, [r5, #8] _02255284: ldr r0, [sp, #0x1c] cmp r0, #0 beq _0225528E mov r0, #0 b _02255294 _0225528E: add r0, r4, #0 bl FUN_02068698 _02255294: strb r0, [r5, #2] add r5, r5, #1 _02255298: ldr r0, [sp, #0x24] add r7, r7, #1 add r6, r6, #1 bl FUN_0206B9AC cmp r6, r0 blt _0225523A _022552A6: ldr r0, [sp, #0x20] mov r1, #0xc and r0, r1 cmp r0, #0xc beq _022552C4 ldr r0, [sp, #0x20] mov r1, #0x10 tst r0, r1 bne _022552C4 ldr r0, [sp, #0x20] cmp r0, #0x4b beq _022552C4 cmp r0, #0xcb beq _022552C4 b _022553FC _022552C4: ldr r0, [sp, #4] ldr r1, [sp, #0xc] bl MOD11_02230270 cmp r0, #0 beq _022552DA ldr r0, [sp, #4] mov r1, #2 bl MOD11_0223022C b _022552E2 _022552DA: ldr r0, [sp, #4] mov r1, #3 bl MOD11_0223022C _022552E2: add r4, r0, #0 ldr r0, [sp, #4] add r1, r4, #0 bl MOD11_0222FF88 str r0, [sp, #0x10] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _0225535E add r1, r4, #0 mov r0, #6 mul r1, r0 ldr r0, [sp, #8] add r4, sp, #0x28 add r6, r0, r1 _02255304: ldr r1, _022554FC ; =0x0000312C ldr r0, [sp, #0x10] ldrb r1, [r6, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r7, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02255350 ldr r1, _02255500 ; =0x000001EE cmp r0, r1 beq _02255350 add r0, r7, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0225534A add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02255344 mov r0, #3 strb r0, [r4, #0xe] b _0225534E _02255344: mov r0, #1 strb r0, [r4, #0xe] b _0225534E _0225534A: mov r0, #2 strb r0, [r4, #0xe] _0225534E: add r4, r4, #1 _02255350: ldr r0, [sp, #0x10] add r6, r6, #1 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _02255304 _0225535E: ldr r0, [sp, #4] ldr r1, [sp, #0xc] bl MOD11_02230270 cmp r0, #0 beq _02255374 ldr r0, [sp, #4] mov r1, #4 bl MOD11_0223022C b _0225537C _02255374: ldr r0, [sp, #4] mov r1, #5 bl MOD11_0223022C _0225537C: add r4, r0, #0 ldr r0, [sp, #4] add r1, r4, #0 bl MOD11_0222FF88 str r0, [sp, #0x14] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _02255482 add r1, r4, #0 mov r0, #6 mul r1, r0 ldr r0, [sp, #8] add r4, sp, #0x28 add r6, r0, r1 add r4, #3 _022553A0: ldr r1, _022554FC ; =0x0000312C ldr r0, [sp, #0x14] ldrb r1, [r6, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r7, r0, #0 bl FUN_020671BC cmp r0, #0 beq _022553EC ldr r1, _02255500 ; =0x000001EE cmp r0, r1 beq _022553EC add r0, r7, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022553E6 add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _022553E0 mov r0, #3 strb r0, [r4, #0xe] b _022553EA _022553E0: mov r0, #1 strb r0, [r4, #0xe] b _022553EA _022553E6: mov r0, #2 strb r0, [r4, #0xe] _022553EA: add r4, r4, #1 _022553EC: ldr r0, [sp, #0x14] add r6, r6, #1 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _022553A0 b _02255482 _022553FC: ldr r0, [sp, #4] ldr r1, [sp, #0xc] mov r2, #2 bl MOD11_02230308 add r4, r0, #0 ldr r0, [sp, #4] add r1, r4, #0 bl MOD11_0222FF88 str r0, [sp, #0x18] mov r5, #0 bl FUN_0206B9AC cmp r0, #0 ble _02255482 add r1, r4, #0 mov r0, #6 mul r1, r0 ldr r0, [sp, #8] add r4, sp, #0x28 add r6, r0, r1 _02255428: ldr r1, _022554FC ; =0x0000312C ldr r0, [sp, #0x18] ldrb r1, [r6, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 add r7, r0, #0 bl FUN_020671BC cmp r0, #0 beq _02255474 ldr r1, _02255500 ; =0x000001EE cmp r0, r1 beq _02255474 add r0, r7, #0 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _0225546E add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02255468 mov r0, #3 strb r0, [r4, #0xe] b _02255472 _02255468: mov r0, #1 strb r0, [r4, #0xe] b _02255472 _0225546E: mov r0, #2 strb r0, [r4, #0xe] _02255472: add r4, r4, #1 _02255474: ldr r0, [sp, #0x18] add r6, r6, #1 add r5, r5, #1 bl FUN_0206B9AC cmp r5, r0 blt _02255428 _02255482: mov r5, #0 add r6, sp, #0x28 add r4, r6, #0 add r7, r5, #0 _0225548A: ldr r0, [sp, #8] ldr r1, [sp, #0xc] add r2, r5, #6 add r3, r7, #0 bl MOD11_02243420 strh r0, [r6, #0x14] add r2, r5, #0 ldr r0, [sp, #8] ldr r1, [sp, #0xc] add r2, #0x1f mov r3, #0 bl MOD11_02243420 strb r0, [r4, #0x1c] add r2, r5, #0 ldr r0, [sp, #8] ldr r1, [sp, #0xc] add r2, #0x27 mov r3, #0 bl MOD11_02243420 add r1, r4, #0 add r1, #0x20 add r5, r5, #1 strb r0, [r1] add r6, r6, #2 add r4, r4, #1 cmp r5, #4 blt _0225548A ldr r0, [sp, #0xc] mov r1, #0xc0 mul r1, r0 ldr r0, [sp, #8] add r3, sp, #0x28 add r0, r0, r1 ldr r1, _02255504 ; =0x00002D8C ldr r2, [r0, r1] strh r2, [r3, #0x24] add r2, r1, #4 ldr r2, [r0, r2] strh r2, [r3, #0x26] mov r2, #0x24 ldrsh r2, [r3, r2] cmp r2, #0 beq _0225550E add r1, #0x20 ldr r0, [r0, r1] cmp r0, #0 add r0, sp, #0x48 beq _02255508 mov r1, #3 strb r1, [r0, #8] b _02255514 nop _022554F8: .word 0x00003108 _022554FC: .word 0x0000312C _02255500: .word 0x000001EE _02255504: .word 0x00002D8C _02255508: mov r1, #1 strb r1, [r0, #8] b _02255514 _0225550E: mov r1, #2 add r0, sp, #0x48 strb r1, [r0, #8] _02255514: mov r0, #0x2c str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #0xc] mov r1, #1 add r3, sp, #0x28 bl MOD11_02254878 add sp, #0x54 pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_02255528 MOD11_02255528: ; 0x02255528 push {r0, r1, r2, r3} push {r3, lr} add r2, r1, #0 mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #0x10 bl MOD11_02254878 pop {r3} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_02255544 MOD11_02255544: ; 0x02255544 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r2, [sp, #0xc] str r0, [sp, #4] str r1, [sp, #8] bl MOD11_0222FF78 ldr r1, [sp, #0xc] bl MOD11_02243400 mov r0, #0xf add r2, sp, #0x14 strb r0, [r2] add r7, sp, #0x14 ldr r1, [sp, #8] ldr r0, [sp, #0xc] add r5, r7, #0 add r1, r1, r0 ldr r0, _022555D4 ; =0x0000219C ldrb r0, [r1, r0] mov r1, #0xc0 strb r0, [r2, #1] mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0xc] mul r1, r0 ldr r0, [sp, #8] add r6, r0, r1 add r4, r6, #0 _0225557E: ldr r0, _022555D8 ; =0x00002D4C ldr r1, _022555DC ; =0x00002D70 ldrh r0, [r6, r0] strh r0, [r7, #4] ldr r0, _022555E0 ; =0x00002D6C ldrb r0, [r4, r0] strb r0, [r5, #0xc] ldr r0, _022555D8 ; =0x00002D4C ldrb r1, [r4, r1] ldrh r0, [r6, r0] bl FUN_0206AB30 strb r0, [r5, #0x10] ldr r0, [sp, #0x10] add r6, r6, #2 add r0, r0, #1 add r7, r7, #2 add r4, r4, #1 add r5, r5, #1 str r0, [sp, #0x10] cmp r0, #4 blt _0225557E mov r0, #0 mvn r0, r0 str r0, [sp] ldr r0, [sp, #4] ldr r1, [sp, #8] ldr r2, [sp, #0xc] mov r3, #0 bl MOD11_02245D38 add r1, sp, #0x14 strh r0, [r1, #2] mov r0, #0x14 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #0xc] mov r1, #1 add r3, sp, #0x14 bl MOD11_02254878 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022555D4: .word 0x0000219C _022555D8: .word 0x00002D4C _022555DC: .word 0x00002D70 _022555E0: .word 0x00002D6C thumb_func_start MOD11_022555E4 MOD11_022555E4: ; 0x022555E4 push {r0, r1, r2, r3} push {r3, lr} add r2, r1, #0 mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #0x10 bl MOD11_02254878 pop {r3} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_02255600 MOD11_02255600: ; 0x02255600 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 str r0, [sp, #4] str r1, [sp, #8] add r0, r1, #0 add r1, r3, #0 add r4, r2, #0 str r3, [sp, #0xc] bl MOD11_02243400 ldr r0, [sp, #4] bl MOD11_0222FF74 mov r2, #0x10 add r1, sp, #0x1c strb r2, [r1] strh r4, [r1, #2] mov r1, #2 add r2, r0, #0 and r2, r1 beq _0225563A mov r1, #8 tst r0, r1 bne _0225563A cmp r2, #0 beq _02255642 ldr r0, [sp, #0xc] cmp r0, #2 blt _02255642 _0225563A: mov r1, #1 add r0, sp, #0x1c strb r1, [r0, #1] b _02255648 _02255642: mov r1, #0 add r0, sp, #0x1c strb r1, [r0, #1] _02255648: ldr r2, [sp, #8] mov r0, #0 str r0, [sp, #0x18] ldr r1, _0225570C ; =0x00002D54 add r0, r2, #0 add r7, r0, r1 add r1, #0x6a add r5, r0, r1 mov r0, #3 add r4, sp, #0x20 str r0, [sp, #0x14] str r0, [sp, #0x10] mov r0, #4 add r3, sp, #0x1c add r4, #1 mov ip, r0 _02255668: ldr r0, _02255710 ; =0x00002D8C ldr r0, [r2, r0] cmp r0, #0 beq _022556D6 strh r0, [r3, #8] ldr r0, _02255714 ; =0x00002D90 ldr r0, [r2, r0] strh r0, [r3, #0xa] ldrb r1, [r4] mov r0, #4 orr r0, r1 strb r0, [r4] mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r2, r0] cmp r0, #0x1d beq _0225568E cmp r0, #0x20 bne _022556A2 _0225568E: ldr r0, [r7] lsr r0, r0, #0x1f bne _022556A2 ldrb r0, [r4] ldr r1, [sp, #0x10] bic r0, r1 mov r1, #2 orr r0, r1 strb r0, [r4] b _022556B6 _022556A2: ldrb r6, [r4] ldr r0, [sp, #0x14] bic r6, r0 ldrb r0, [r5] lsl r0, r0, #0x1c lsr r1, r0, #0x1c mov r0, #3 and r0, r1 orr r0, r6 strb r0, [r4] _022556B6: ldr r1, [sp, #8] ldr r0, [sp, #0x18] add r1, r1, r0 ldr r0, _02255718 ; =0x0000219C ldrb r0, [r1, r0] strb r0, [r3, #4] ldr r0, _0225571C ; =0x00002DAC ldr r0, [r2, r0] cmp r0, #0 beq _022556D0 mov r0, #3 strb r0, [r3, #6] b _022556E2 _022556D0: mov r0, #1 strb r0, [r3, #6] b _022556E2 _022556D6: ldrb r1, [r4] mov r0, ip bic r1, r0 strb r1, [r4] mov r0, #2 strb r0, [r3, #6] _022556E2: ldr r0, [sp, #0x18] add r2, #0xc0 add r0, r0, #1 add r3, #8 add r4, #8 add r7, #0xc0 add r5, #0xc0 str r0, [sp, #0x18] cmp r0, #4 blt _02255668 mov r0, #0x24 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #0xc] mov r1, #1 add r3, sp, #0x1c bl MOD11_02254878 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop _0225570C: .word 0x00002D54 _02255710: .word 0x00002D8C _02255714: .word 0x00002D90 _02255718: .word 0x0000219C _0225571C: .word 0x00002DAC thumb_func_start MOD11_02255720 MOD11_02255720: ; 0x02255720 push {r0, r1, r2, r3} push {r3, lr} add r2, r1, #0 mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #0x10 bl MOD11_02254878 pop {r3} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_0225573C MOD11_0225573C: ; 0x0225573C push {r4, r5, r6, r7, lr} sub sp, #0x34 str r0, [sp, #4] str r1, [sp, #8] add r0, r1, #0 add r1, r2, #0 str r2, [sp, #0xc] bl MOD11_02243400 add r6, sp, #0x10 mov r1, #0x11 add r0, sp, #0x10 strb r1, [r0] mov r0, #0 ldr r4, [sp, #8] mov ip, r0 ldr r1, _022558B0 ; =0x00002DCC add r0, r4, #0 add r7, r0, r1 ldr r0, _022558B4 ; =0x0000312C add r5, r6, #0 _02255766: ldr r2, [sp, #8] mov r1, ip add r2, r2, r1 ldr r1, _022558B8 ; =0x0000219C mov r3, #0 ldrb r1, [r2, r1] strb r1, [r6, #4] _02255774: add r1, r4, r3 ldrb r2, [r1, r0] add r1, r5, r3 add r3, r3, #1 strb r2, [r1, #8] cmp r3, #6 blt _02255774 ldr r1, [r7] add r2, r6, #0 lsl r1, r1, #0xa lsr r1, r1, #0x1d add r2, #0x20 strb r1, [r2] mov r1, ip add r1, r1, #1 add r6, r6, #1 add r4, r4, #6 add r5, r5, #6 add r7, #0xc0 mov ip, r1 cmp r1, #4 blt _02255766 ldr r0, [sp, #4] bl MOD11_0222FF74 cmp r0, #0x4a bne _02255852 mov r0, #1 bl FUN_0206A92C ldr r2, _022558BC ; =0x00003108 ldr r1, [sp, #8] ldrb r1, [r1, r2] tst r0, r1 bne _022557D8 mov r0, #3 bl FUN_0206A92C ldr r2, _022558BC ; =0x00003108 ldr r1, [sp, #8] ldrb r1, [r1, r2] tst r0, r1 bne _022557D8 mov r1, #1 add r0, sp, #0x10 strb r1, [r0, #1] mov r1, #0 strb r1, [r0, #2] strb r1, [r0, #3] b _0225589C _022557D8: mov r0, #1 bl FUN_0206A92C ldr r2, _022558BC ; =0x00003108 ldr r1, [sp, #8] add r3, sp, #0x10 ldrb r1, [r1, r2] tst r0, r1 bne _0225581E mov r0, #0 mov r2, #0xba ldr r1, [sp, #8] strb r0, [r3, #1] lsl r2, r2, #6 ldr r4, [r1, r2] ldr r1, _022558C0 ; =0x200400C0 tst r1, r4 beq _02255804 mov r1, #1 strb r1, [r3, #2] strb r0, [r3, #3] b _0225589C _02255804: ldr r1, [sp, #8] sub r2, #0x10 ldr r2, [r1, r2] mov r1, #1 lsl r1, r1, #0x18 tst r1, r2 strb r0, [r3, #2] beq _0225581A mov r0, #1 strb r0, [r3, #3] b _0225589C _0225581A: strb r0, [r3, #3] b _0225589C _0225581E: mov r0, #0 mov r2, #3 ldr r1, [sp, #8] strb r0, [r3, #1] lsl r2, r2, #0xc ldr r4, [r1, r2] ldr r1, _022558C0 ; =0x200400C0 tst r1, r4 beq _02255838 mov r1, #1 strb r1, [r3, #2] strb r0, [r3, #3] b _0225589C _02255838: ldr r1, [sp, #8] sub r2, #0x10 ldr r2, [r1, r2] mov r1, #1 lsl r1, r1, #0x18 tst r1, r2 strb r0, [r3, #2] beq _0225584E mov r0, #1 strb r0, [r3, #3] b _0225589C _0225584E: strb r0, [r3, #3] b _0225589C _02255852: ldr r0, [sp, #4] bl MOD11_0222FF74 cmp r0, #0 bne _02255892 mov r2, #0xba mov r0, #0 add r3, sp, #0x10 ldr r1, [sp, #8] strb r0, [r3, #1] lsl r2, r2, #6 ldr r4, [r1, r2] ldr r1, _022558C0 ; =0x200400C0 tst r1, r4 beq _02255878 mov r1, #1 strb r1, [r3, #2] strb r0, [r3, #3] b _0225589C _02255878: ldr r1, [sp, #8] sub r2, #0x10 ldr r2, [r1, r2] mov r1, #1 lsl r1, r1, #0x18 tst r1, r2 strb r0, [r3, #2] beq _0225588E mov r0, #1 strb r0, [r3, #3] b _0225589C _0225588E: strb r0, [r3, #3] b _0225589C _02255892: mov r1, #0 add r0, sp, #0x10 strb r1, [r0, #1] strb r1, [r0, #2] strb r1, [r0, #3] _0225589C: mov r0, #0x24 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #0xc] mov r1, #1 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x34 pop {r4, r5, r6, r7, pc} .align 2, 0 _022558B0: .word 0x00002DCC _022558B4: .word 0x0000312C _022558B8: .word 0x0000219C _022558BC: .word 0x00003108 _022558C0: .word 0x200400C0 thumb_func_start MOD11_022558C4 MOD11_022558C4: ; 0x022558C4 push {r0, r1, r2, r3} push {r3, lr} add r2, r1, #0 mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #0x10 bl MOD11_02254878 pop {r3} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_022558E0 MOD11_022558E0: ; 0x022558E0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 str r0, [sp, #4] str r1, [sp, #8] add r0, r1, #0 add r1, r2, #0 str r2, [sp, #0xc] add r4, r3, #0 bl MOD11_02243400 mov r0, #0x12 add r1, sp, #0x10 strb r0, [r1] ldr r0, [sp, #0xc] add r7, sp, #0x10 strb r0, [r1, #1] ldr r0, [sp, #0x50] strb r4, [r1, #2] str r0, [sp, #0x30] ldr r0, [sp, #0x54] ldr r5, [sp, #8] strb r0, [r1, #3] ldr r1, _02255958 ; =0x00003108 ldr r0, [sp, #8] mov r3, #0 ldrb r1, [r0, r1] add r0, sp, #0x30 add r6, r7, #0 strb r1, [r0, #4] ldr r0, _0225595C ; =0x0000312C _0225591C: ldr r1, [sp, #8] mov r4, #0 add r2, r1, r3 ldr r1, _02255960 ; =0x0000219C ldrb r1, [r2, r1] strb r1, [r7, #4] _02255928: add r1, r5, r4 ldrb r2, [r1, r0] add r1, r6, r4 add r4, r4, #1 strb r2, [r1, #8] cmp r4, #6 blt _02255928 add r3, r3, #1 add r7, r7, #1 add r5, r5, #6 add r6, r6, #6 cmp r3, #4 blt _0225591C mov r0, #0x28 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #0xc] mov r1, #1 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _02255958: .word 0x00003108 _0225595C: .word 0x0000312C _02255960: .word 0x0000219C thumb_func_start MOD11_02255964 MOD11_02255964: ; 0x02255964 push {r0, r1, r2, r3} push {r3, lr} add r2, r1, #0 mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #0x10 bl MOD11_02254878 pop {r3} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_02255980 MOD11_02255980: ; 0x02255980 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r2, #0 add r6, r0, #0 add r0, r1, #0 add r1, r5, #0 add r4, r3, #0 bl MOD11_02243400 mov r1, #0x13 add r0, sp, #4 strb r1, [r0] ldr r1, [sp, #0x20] strh r4, [r0, #2] strb r1, [r0, #1] ldr r0, [sp, #0x24] mov r1, #1 str r0, [sp, #8] ldr r0, [sp, #0x28] add r2, r5, #0 str r0, [sp, #0xc] mov r0, #0xc str r0, [sp] add r0, r6, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_022559BC MOD11_022559BC: ; 0x022559BC push {r4, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x14 add r3, sp, #4 strb r1, [r3] ldr r1, [r2, #0x64] add r4, r2, r1 ldr r1, _022559EC ; =0x0000219C ldrb r1, [r4, r1] strb r1, [r3, #1] ldr r1, _022559F0 ; =0x00003044 ldr r1, [r2, r1] strh r1, [r3, #2] mov r1, #4 str r1, [sp] ldr r2, [r2, #0x64] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, pc} nop _022559EC: .word 0x0000219C _022559F0: .word 0x00003044 thumb_func_start MOD11_022559F4 MOD11_022559F4: ; 0x022559F4 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 add r3, r2, #0 mov r1, #0x15 strb r1, [r3] mov r1, #0x24 str r1, [sp] ldr r2, [r4, #0x64] mov r1, #1 bl MOD11_02254878 add sp, #4 pop {r3, r4, pc} thumb_func_start MOD11_02255A10 MOD11_02255A10: ; 0x02255A10 push {r4, r5, r6, lr} sub sp, #0x68 mov r3, #0 add r4, r1, #0 str r3, [sp] ldr r6, [r4, #0x64] add r5, r0, #0 str r6, [sp, #4] ldr r6, [r4, #0x6c] str r6, [sp, #8] str r2, [sp, #0xc] add r2, sp, #0x10 bl MOD11_02256854 mov r0, #0x58 str r0, [sp] ldr r2, [r4, #0x64] add r0, r5, #0 mov r1, #1 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x68 pop {r4, r5, r6, pc} thumb_func_start MOD11_02255A40 MOD11_02255A40: ; 0x02255A40 push {r4, r5, r6, lr} sub sp, #0x68 add r4, r3, #0 mov r3, #0 str r3, [sp] ldr r6, [sp, #0x78] str r4, [sp, #4] str r6, [sp, #8] str r2, [sp, #0xc] add r2, sp, #0x10 add r5, r0, #0 bl MOD11_02256854 mov r0, #0x58 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x68 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_02255A70 MOD11_02255A70: ; 0x02255A70 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x17 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02255A8C MOD11_02255A8C: ; 0x02255A8C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r1, #0 str r2, [sp, #8] add r1, r2, #0 add r3, r5, r2 ldr r2, _02255B50 ; =0x0000219C str r0, [sp, #4] ldrb r2, [r3, r2] bl MOD11_02230014 add r4, r0, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC add r7, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC add r6, r0, #0 mov r0, #0x18 add r2, sp, #0xc strb r0, [r2] ldr r0, [sp, #8] mov r1, #0xc0 add r4, r0, #0 mul r4, r1 ldr r1, _02255B54 ; =0x00002D74 add r0, r5, r4 ldrb r3, [r0, r1] strb r3, [r2, #1] add r3, r1, #0 add r3, #0x18 ldr r3, [r0, r3] strh r3, [r2, #2] add r3, r1, #0 add r3, #0x1c ldr r3, [r0, r3] sub r1, #0x34 strh r3, [r2, #4] ldr r2, _02255B58 ; =0x0000215C ldr r2, [r5, r2] str r2, [sp, #0x14] ldrh r0, [r0, r1] cmp r0, #0x1d beq _02255AF2 cmp r0, #0x20 bne _02255B04 _02255AF2: ldr r0, _02255B5C ; =0x00002D54 add r1, r5, r4 ldr r0, [r1, r0] lsr r0, r0, #0x1f bne _02255B04 mov r1, #2 add r0, sp, #0xc strb r1, [r0, #7] b _02255B12 _02255B04: ldr r0, _02255B60 ; =0x00002DBE add r1, r5, r4 ldrb r0, [r1, r0] lsl r0, r0, #0x1c lsr r1, r0, #0x1c add r0, sp, #0xc strb r1, [r0, #7] _02255B12: add r0, r7, #0 add r1, r6, #0 bl FUN_02068758 ldr r1, _02255B64 ; =0x00002DA4 add r2, r5, r4 ldr r1, [r2, r1] sub r0, r1, r0 str r0, [sp, #0x18] add r0, r7, #0 add r1, r6, #1 bl FUN_02068758 add r4, r0, #0 add r0, r7, #0 add r1, r6, #0 bl FUN_02068758 sub r0, r4, r0 str r0, [sp, #0x1c] mov r0, #0x14 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #8] mov r1, #1 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _02255B50: .word 0x0000219C _02255B54: .word 0x00002D74 _02255B58: .word 0x0000215C _02255B5C: .word 0x00002D54 _02255B60: .word 0x00002DBE _02255B64: .word 0x00002DA4 thumb_func_start MOD11_02255B68 MOD11_02255B68: ; 0x02255B68 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r4, r2, #0 add r5, r1, #0 str r3, [sp, #8] ldr r2, _02255BE4 ; =0x0000219C add r3, r5, r4 ldrb r2, [r3, r2] add r1, r4, #0 str r0, [sp, #4] bl MOD11_02230014 add r6, r0, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC add r7, r0, #0 add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC add r6, r0, #0 mov r1, #0x19 add r0, sp, #0xc strb r1, [r0] ldr r0, [sp, #8] add r1, r6, #0 str r0, [sp, #0x10] add r0, r7, #0 bl FUN_02068758 mov r1, #0xc0 mul r1, r4 add r2, r5, r1 ldr r1, _02255BE8 ; =0x00002DA4 ldr r1, [r2, r1] sub r0, r1, r0 str r0, [sp, #0x14] add r0, r7, #0 add r1, r6, #1 bl FUN_02068758 add r5, r0, #0 add r0, r7, #0 add r1, r6, #0 bl FUN_02068758 sub r0, r5, r0 str r0, [sp, #0x18] mov r0, #0x10 str r0, [sp] ldr r0, [sp, #4] mov r1, #1 add r2, r4, #0 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _02255BE4: .word 0x0000219C _02255BE8: .word 0x00002DA4 thumb_func_start MOD11_02255BEC MOD11_02255BEC: ; 0x02255BEC push {r4, r5, r6, r7, lr} sub sp, #0x3c str r0, [sp, #4] add r0, r1, #0 mov ip, r2 mov r5, #0xb5 mov r2, #0x1a add r1, sp, #0xc strb r2, [r1] mov r3, #0xc0 mov r2, ip mul r3, r2 add r2, r0, r3 lsl r5, r5, #6 ldrh r4, [r2, r5] strh r4, [r1, #2] add r4, r5, #0 add r4, #0x26 ldrb r2, [r2, r4] add r5, #0x70 lsl r2, r2, #0x1b lsr r2, r2, #0x1b strb r2, [r1, #8] add r2, r0, r5 mov r1, #1 ldr r4, [r2, r3] lsl r1, r1, #0x18 tst r1, r4 beq _02255C2A mov r4, #1 b _02255C2C _02255C2A: mov r4, #0 _02255C2C: add r1, sp, #0xc strb r4, [r1, #9] mov r1, #2 ldr r4, [r2, r3] lsl r1, r1, #0x14 tst r1, r4 beq _02255C3E mov r4, #1 b _02255C40 _02255C3E: mov r4, #0 _02255C40: add r1, sp, #0xc strb r4, [r1, #0xa] ldr r4, [r2, r3] mov r2, #2 lsl r2, r2, #0x14 tst r2, r4 beq _02255C5E ldr r2, _02255CE8 ; =0x00002DFA add r4, r0, r3 ldrh r3, [r4, r2] sub r2, #0x16 strb r3, [r1, #1] ldr r1, [r4, r2] str r1, [sp, #0x10] b _02255C70 _02255C5E: ldr r2, _02255CEC ; =0x00002DBE add r4, r0, r3 ldrb r3, [r4, r2] sub r2, #0x16 lsl r3, r3, #0x1c lsr r3, r3, #0x1c strb r3, [r1, #1] ldr r1, [r4, r2] str r1, [sp, #0x10] _02255C70: mov r1, #0 str r1, [sp, #8] ldr r1, _02255CF0 ; =0x00002D66 add r7, sp, #0xc add r3, r0, r1 add r1, #0x58 add r4, r7, #0 add r5, r7, #0 add r6, r0, r1 _02255C82: mov r1, #0xb5 lsl r1, r1, #6 ldrh r1, [r0, r1] strh r1, [r7, #0xc] ldrb r1, [r3] lsl r1, r1, #0x1a lsr r1, r1, #0x1f strb r1, [r4, #0x18] ldrb r1, [r3] lsl r1, r1, #0x1b lsr r1, r1, #0x1b strb r1, [r4, #0x1c] ldr r1, _02255CF4 ; =0x00002DB0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x14 tst r1, r2 beq _02255CB0 ldr r1, _02255CE8 ; =0x00002DFA ldrh r1, [r0, r1] strb r1, [r4, #0x14] ldr r1, _02255CF8 ; =0x00002DE4 b _02255CBA _02255CB0: ldrb r1, [r6] lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r4, #0x14] ldr r1, _02255CFC ; =0x00002DA8 _02255CBA: ldr r1, [r0, r1] add r0, #0xc0 str r1, [r5, #0x20] ldr r1, [sp, #8] add r7, r7, #2 add r1, r1, #1 add r3, #0xc0 add r4, r4, #1 add r5, r5, #4 add r6, #0xc0 str r1, [sp, #8] cmp r1, #4 blt _02255C82 mov r0, #0x30 str r0, [sp] ldr r0, [sp, #4] mov r1, #1 mov r2, ip add r3, sp, #0xc bl MOD11_02254878 add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 _02255CE8: .word 0x00002DFA _02255CEC: .word 0x00002DBE _02255CF0: .word 0x00002D66 _02255CF4: .word 0x00002DB0 _02255CF8: .word 0x00002DE4 _02255CFC: .word 0x00002DA8 thumb_func_start MOD11_02255D00 MOD11_02255D00: ; 0x02255D00 push {r4, lr} sub sp, #8 mov r4, #0x1b add r1, sp, #4 strb r4, [r1] strh r2, [r1, #2] mov r1, #4 str r1, [sp] add r2, r3, #0 mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02255D20 MOD11_02255D20: ; 0x02255D20 push {r3, lr} sub sp, #8 mov r1, #0x1c str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02255D3C MOD11_02255D3C: ; 0x02255D3C push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 mov ip, r1 mov r3, #0x1d add r1, sp, #8 strb r3, [r1] strb r2, [r1, #1] ldr r3, [r0, #0x30] mov r2, #0xc0 mov r1, ip mul r2, r1 ldr r1, _02255DF4 ; =0x00002DB0 add r2, r3, r2 ldr r2, [r2, r1] mov r1, #1 lsl r1, r1, #0x18 tst r1, r2 beq _02255D64 mov r2, #1 b _02255D66 _02255D64: mov r2, #0 _02255D66: add r7, sp, #8 add r1, sp, #8 mov r3, #0 strb r2, [r1, #2] str r3, [sp, #4] add r4, r7, #0 add r5, r7, #0 _02255D74: ldr r1, [r0, #0x30] add r2, r1, r3 mov r1, #0xb5 lsl r1, r1, #6 ldrh r1, [r2, r1] strh r1, [r7, #4] ldr r1, [r0, #0x30] add r2, r1, r3 ldr r1, _02255DF8 ; =0x00002D66 ldrb r1, [r2, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1f strb r1, [r4, #0x10] ldr r1, [r0, #0x30] add r2, r1, r3 ldr r1, _02255DF8 ; =0x00002D66 ldrb r1, [r2, r1] lsl r1, r1, #0x1b lsr r1, r1, #0x1b strb r1, [r4, #0x14] ldr r1, [r0, #0x30] add r6, r1, r3 ldr r1, _02255DF4 ; =0x00002DB0 ldr r2, [r6, r1] mov r1, #2 lsl r1, r1, #0x14 tst r1, r2 beq _02255DBA ldr r1, _02255DFC ; =0x00002DFA ldrh r1, [r6, r1] strb r1, [r4, #0xc] ldr r1, [r0, #0x30] add r2, r1, r3 ldr r1, _02255E00 ; =0x00002DE4 b _02255DCA _02255DBA: ldr r1, _02255E04 ; =0x00002DBE ldrb r1, [r6, r1] lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r4, #0xc] ldr r1, [r0, #0x30] add r2, r1, r3 ldr r1, _02255E08 ; =0x00002DA8 _02255DCA: ldr r1, [r2, r1] add r3, #0xc0 str r1, [r5, #0x18] ldr r1, [sp, #4] add r7, r7, #2 add r1, r1, #1 add r4, r4, #1 add r5, r5, #4 str r1, [sp, #4] cmp r1, #4 blt _02255D74 mov r1, #0x28 str r1, [sp] mov r1, #1 mov r2, ip add r3, sp, #8 bl MOD11_02254878 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _02255DF4: .word 0x00002DB0 _02255DF8: .word 0x00002D66 _02255DFC: .word 0x00002DFA _02255E00: .word 0x00002DE4 _02255E04: .word 0x00002DBE _02255E08: .word 0x00002DA8 thumb_func_start MOD11_02255E0C MOD11_02255E0C: ; 0x02255E0C push {r4, lr} sub sp, #8 add r4, r1, #0 mov r3, #0x1e add r1, sp, #4 strb r3, [r1] strb r2, [r1, #1] mov r1, #4 str r1, [sp] mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, pc} thumb_func_start MOD11_02255E2C MOD11_02255E2C: ; 0x02255E2C push {r4, lr} sub sp, #8 add r4, r1, #0 mov r3, #0x1f add r1, sp, #4 strb r3, [r1] strb r2, [r1, #1] mov r1, #4 str r1, [sp] mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, pc} thumb_func_start MOD11_02255E4C MOD11_02255E4C: ; 0x02255E4C push {r3, r4, r5, lr} sub sp, #0x68 add r4, r2, #0 str r3, [sp] str r4, [sp, #4] str r4, [sp, #8] mov r2, #0 str r2, [sp, #0xc] add r2, sp, #0x10 mov r3, #1 add r5, r0, #0 bl MOD11_02256854 mov r0, #0x58 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x68 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02255E7C MOD11_02255E7C: ; 0x02255E7C push {r3, r4, r5, lr} sub sp, #0x68 add r4, r2, #0 ldr r2, [sp, #0x78] add r5, r0, #0 str r2, [sp] str r4, [sp, #4] str r3, [sp, #8] mov r2, #0 str r2, [sp, #0xc] add r2, sp, #0x10 mov r3, #1 bl MOD11_02256854 mov r0, #0x58 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x68 pop {r3, r4, r5, pc} thumb_func_start MOD11_02255EAC MOD11_02255EAC: ; 0x02255EAC push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 add r4, r2, #0 mov r2, #0x20 add r0, sp, #4 strb r2, [r0] strb r3, [r0, #1] ldr r0, _02255EE8 ; =0x00003122 ldrsh r2, [r1, r0] ldr r0, _02255EEC ; =0x00002E4C ldr r0, [r1, r0] sub r1, r2, r0 mov r0, #0x64 mul r0, r1 add r1, r2, #0 bl _s32_div_f add r1, sp, #4 strh r0, [r1, #2] mov r0, #4 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _02255EE8: .word 0x00003122 _02255EEC: .word 0x00002E4C thumb_func_start MOD11_02255EF0 MOD11_02255EF0: ; 0x02255EF0 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 mov r1, #0x21 add r0, sp, #4 strb r1, [r0] ldr r2, _02255F38 ; =0x00002E4C strb r3, [r0, #1] ldr r1, [r6, r2] cmp r1, #0 bne _02255F12 mov r1, #0xfa lsl r1, r1, #2 strh r1, [r0, #2] b _02255F24 _02255F12: mov r0, #0xfa lsl r0, r0, #2 mul r0, r1 add r1, r2, #4 ldr r1, [r6, r1] bl _u32_div_f add r1, sp, #4 strh r0, [r1, #2] _02255F24: mov r0, #4 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 _02255F38: .word 0x00002E4C thumb_func_start MOD11_02255F3C MOD11_02255F3C: ; 0x02255F3C push {r3, lr} sub sp, #8 mov r1, #0x22 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} thumb_func_start MOD11_02255F54 MOD11_02255F54: ; 0x02255F54 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r1, #0 str r2, [sp, #4] mov r2, #0x23 add r1, sp, #8 add r6, r0, #0 strb r2, [r1] mov r4, #0 bl MOD11_0222FF84 cmp r0, #0 ble _02255F86 add r5, sp, #8 _02255F70: ldr r0, _02255F9C ; =0x0000219C add r1, r7, r4 ldrb r0, [r1, r0] add r4, r4, #1 strb r0, [r5, #4] add r0, r6, #0 add r5, r5, #1 bl MOD11_0222FF84 cmp r4, r0 blt _02255F70 _02255F86: mov r0, #8 str r0, [sp] ldr r2, [sp, #4] add r0, r6, #0 mov r1, #1 add r3, sp, #8 bl MOD11_02254878 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _02255F9C: .word 0x0000219C thumb_func_start MOD11_02255FA0 MOD11_02255FA0: ; 0x02255FA0 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x24 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02255FBC MOD11_02255FBC: ; 0x02255FBC push {r0, r1, r2, r3} push {r3, r4, r5, r6, lr} sub sp, #0x2c add r4, r1, #0 add r5, r0, #0 bl MOD11_0222FF78 add r1, r4, #0 bl MOD11_02243400 mov r1, #0x25 add r0, sp, #4 strb r1, [r0] add r6, sp, #0x48 add r3, sp, #8 mov r2, #4 _02255FDC: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _02255FDC ldr r0, [r6] mov r1, #1 str r0, [r3] mov r0, #0x28 str r0, [sp] add r0, r5, #0 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0x2c pop {r3, r4, r5, r6} pop {r3} add sp, #0x10 bx r3 .align 2, 0 thumb_func_start MOD11_02256004 MOD11_02256004: ; 0x02256004 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #1 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02256020 MOD11_02256020: ; 0x02256020 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r1, #0 ldr r1, _0225613C ; =0x0000219C add r4, r2, #0 add r7, r5, r1 ldrb r2, [r7, r4] add r1, r4, #0 str r0, [sp, #4] bl MOD11_02230014 add r6, r0, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl FUN_020671BC str r0, [sp, #8] mov r0, #0x26 add r2, sp, #0x10 strb r0, [r2] mov r0, #0xc0 add r6, r4, #0 mul r6, r0 ldr r1, _02256140 ; =0x00002D74 add r0, r5, r6 ldrb r3, [r0, r1] strb r3, [r2, #1] add r3, r1, #0 add r3, #0x18 ldr r3, [r0, r3] add r1, #0x1c strh r3, [r2, #2] ldr r0, [r0, r1] add r1, r4, #0 strh r0, [r2, #4] ldrb r0, [r7, r4] strb r0, [r2, #6] add r0, r5, #0 bl MOD11_0224524C add r1, sp, #0x10 ldrb r2, [r1, #7] mov r3, #0x1f lsl r0, r0, #0x18 bic r2, r3 lsr r3, r0, #0x18 mov r0, #0x1f and r0, r3 orr r0, r2 strb r0, [r1, #7] mov r0, #0xb5 lsl r0, r0, #6 add r7, r5, r0 ldrh r0, [r7, r6] cmp r0, #0x1d beq _022560A0 cmp r0, #0x20 bne _022560BA _022560A0: ldr r0, _02256144 ; =0x00002D54 add r1, r5, r6 ldr r0, [r1, r0] lsr r0, r0, #0x1f bne _022560BA add r0, sp, #0x10 ldrb r1, [r0, #7] mov r2, #0x60 bic r1, r2 mov r2, #0x40 orr r1, r2 strb r1, [r0, #7] b _022560D4 _022560BA: add r3, sp, #0x10 ldrb r2, [r3, #7] mov r0, #0x60 add r1, r5, r6 bic r2, r0 ldr r0, _02256148 ; =0x00002DBE ldrb r0, [r1, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c lsl r0, r0, #0x1e lsr r0, r0, #0x19 orr r0, r2 strb r0, [r3, #7] _022560D4: ldr r0, [sp, #0xc] ldr r1, [sp, #8] bl FUN_02068758 mov r1, #0xc0 mul r1, r4 add r2, r5, r1 ldr r1, _0225614C ; =0x00002DA4 ldr r1, [r2, r1] sub r0, r1, r0 ldr r1, [sp, #8] str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r1, r1, #1 bl FUN_02068758 add r5, r0, #0 ldr r0, [sp, #0xc] ldr r1, [sp, #8] bl FUN_02068758 sub r0, r5, r0 str r0, [sp, #0x1c] ldrh r1, [r7, r6] ldr r0, [sp, #4] bl MOD11_02231668 add r3, sp, #0x10 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1f ldrb r1, [r3, #7] mov r2, #0x80 lsr r0, r0, #0x18 bic r1, r2 orr r0, r1 strb r0, [r3, #7] ldr r0, [sp, #4] bl MOD11_02230E00 str r0, [sp, #0x20] mov r0, #0x14 str r0, [sp] ldr r0, [sp, #4] mov r1, #1 add r2, r4, #0 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _0225613C: .word 0x0000219C _02256140: .word 0x00002D74 _02256144: .word 0x00002D54 _02256148: .word 0x00002DBE _0225614C: .word 0x00002DA4 thumb_func_start MOD11_02256150 MOD11_02256150: ; 0x02256150 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r6, r1, #0 str r2, [sp, #8] mov r1, #0x27 add r2, sp, #0x10 strb r1, [r2] ldrb r1, [r2, #1] mov r3, #0xf str r0, [sp, #4] bic r1, r3 ldr r3, [sp, #8] add r4, r6, r3 ldr r3, _02256230 ; =0x0000219C ldrb r4, [r4, r3] mov r3, #0xf and r3, r4 orr r1, r3 strb r1, [r2, #1] ldr r1, [sp, #8] mov r3, #0xc0 mul r3, r1 ldrb r4, [r2, #1] mov r1, #0xf0 str r3, [sp, #0xc] bic r4, r1 add r1, r3, #0 add r3, r6, r1 ldr r1, _02256234 ; =0x00002DCC ldr r5, [r3, r1] lsl r5, r5, #0x1a lsr r5, r5, #0x1c lsl r5, r5, #0x18 lsr r5, r5, #0x18 lsl r5, r5, #0x1c lsr r5, r5, #0x18 orr r4, r5 strb r4, [r2, #1] add r4, r1, #0 sub r4, #0x40 ldr r4, [r3, r4] sub r1, #0x14 strh r4, [r2, #2] ldrh r1, [r3, r1] strh r1, [r2, #0xc] ldr r1, [sp, #8] bl MOD11_02230270 lsl r0, r0, #3 add r1, r6, r0 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r1, r0] ldr r1, [sp, #8] mov r2, #0xc0 mul r2, r1 lsl r0, r0, #3 lsr r0, r0, #0x1a add r1, r6, r2 mov ip, r2 add r2, sp, #0x10 str r0, [sp, #0x18] ldr r7, _02256238 ; =0x00002D6C mov r0, #0 add r3, r1, #0 add r4, r2, #0 _022561D4: ldr r5, _0225623C ; =0x00002D4C add r0, r0, #1 ldrh r5, [r1, r5] add r1, r1, #2 strh r5, [r2, #0xe] ldrb r5, [r3, r7] add r2, r2, #2 add r3, r3, #1 strb r5, [r4, #0x16] add r4, r4, #1 cmp r0, #4 blt _022561D4 add r1, sp, #0x10 mov r0, #2 ldrsh r0, [r1, r0] cmp r0, #0 beq _0225620C mov r0, ip add r3, r6, r0 ldr r0, _02256240 ; =0x00002DAC ldr r1, _02256244 ; =0xFFFFF0FF ldr r2, [r3, r0] add r0, r0, #4 and r1, r2 str r1, [sp, #0x14] ldr r0, [r3, r0] str r0, [sp, #0x2c] b _0225621A _0225620C: mov r0, #0 str r0, [sp, #0x14] ldr r0, [sp, #0xc] add r1, r6, r0 ldr r0, _02256248 ; =0x00002DB0 ldr r0, [r1, r0] str r0, [sp, #0x2c] _0225621A: mov r0, #0x20 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #8] mov r1, #1 add r3, sp, #0x10 bl MOD11_02254878 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _02256230: .word 0x0000219C _02256234: .word 0x00002DCC _02256238: .word 0x00002D6C _0225623C: .word 0x00002D4C _02256240: .word 0x00002DAC _02256244: .word 0xFFFFF0FF _02256248: .word 0x00002DB0 thumb_func_start MOD11_0225624C MOD11_0225624C: ; 0x0225624C push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x28 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02256268 MOD11_02256268: ; 0x02256268 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x29 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02256284 MOD11_02256284: ; 0x02256284 push {r3, r4, r5, lr} sub sp, #8 mov r5, #0x2a add r4, sp, #4 strb r5, [r4] strh r3, [r4, #2] mov r3, #0xc0 mul r3, r2 add r3, r1, r3 ldr r1, _022562AC ; =0x00002D67 ldrb r1, [r3, r1] add r3, sp, #4 strb r1, [r4, #1] mov r1, #4 str r1, [sp] mov r1, #1 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _022562AC: .word 0x00002D67 thumb_func_start MOD11_022562B0 MOD11_022562B0: ; 0x022562B0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r7, r0, #0 add r4, r2, #0 add r6, r3, #0 bl MOD11_0222FF78 add r1, r5, #0 bl MOD11_02243400 mov r1, #0x2b add r0, sp, #4 strb r1, [r0] strh r4, [r0, #2] strb r6, [r0, #1] mov r0, #4 str r0, [sp] add r0, r7, #0 mov r1, #1 add r2, r5, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_022562E4 MOD11_022562E4: ; 0x022562E4 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 mov r5, #0x2c add r1, sp, #4 strb r5, [r1] strb r2, [r1, #1] strb r3, [r1, #2] mov r1, #4 str r1, [sp] mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02256308 MOD11_02256308: ; 0x02256308 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r1, #0 mov r1, #0x2d add r3, sp, #4 strb r1, [r3] mov r1, #0xc0 add r6, r7, #0 mul r6, r1 ldr r1, [r0, #0x30] add r2, r1, r6 mov r1, #0xb5 lsl r1, r1, #6 ldrh r2, [r2, r1] strh r2, [r3, #2] ldr r2, [r0, #0x30] add r4, r2, r6 add r2, r1, #0 add r2, #0x26 ldrb r2, [r4, r2] lsl r2, r2, #0x1a lsr r2, r2, #0x1f strb r2, [r3, #5] ldr r2, [r0, #0x30] add r5, r2, r6 add r2, r1, #0 add r2, #0x70 ldr r4, [r5, r2] mov r2, #2 lsl r2, r2, #0x14 tst r2, r4 beq _0225635C add r2, r1, #0 add r2, #0xba ldrh r2, [r5, r2] add r1, #0xa4 strb r2, [r3, #4] ldr r2, [r0, #0x30] add r2, r2, r6 ldr r1, [r2, r1] str r1, [sp, #0xc] b _02256372 _0225635C: add r2, r1, #0 add r2, #0x7e ldrb r2, [r5, r2] add r1, #0x68 lsl r2, r2, #0x1c lsr r2, r2, #0x1c strb r2, [r3, #4] ldr r2, [r0, #0x30] add r2, r2, r6 ldr r1, [r2, r1] str r1, [sp, #0xc] _02256372: ldr r1, [r0, #0x30] add r3, sp, #4 add r2, r1, r6 ldr r1, _02256394 ; =0x00002D66 ldrb r1, [r2, r1] lsl r1, r1, #0x1b lsr r2, r1, #0x1b add r1, sp, #4 strb r2, [r1, #1] mov r1, #0xc str r1, [sp] mov r1, #1 add r2, r7, #0 bl MOD11_02254878 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02256394: .word 0x00002D66 thumb_func_start MOD11_02256398 MOD11_02256398: ; 0x02256398 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x2e str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022563B4 MOD11_022563B4: ; 0x022563B4 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x2f str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022563D0 MOD11_022563D0: ; 0x022563D0 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 str r4, [sp] ldr r1, [r5, #0x30] add r2, sp, #4 mov r3, #0x30 bl MOD11_022569DC mov r0, #8 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r4, r5, pc} thumb_func_start MOD11_022563F8 MOD11_022563F8: ; 0x022563F8 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 str r4, [sp] ldr r1, [r5, #0x30] add r2, sp, #4 mov r3, #0x31 bl MOD11_022569DC mov r0, #8 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r4, r5, pc} thumb_func_start MOD11_02256420 MOD11_02256420: ; 0x02256420 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 str r4, [sp] ldr r1, [r5, #0x30] add r2, sp, #4 mov r3, #0x32 bl MOD11_022569DC mov r0, #8 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r4, r5, pc} thumb_func_start MOD11_02256448 MOD11_02256448: ; 0x02256448 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 str r4, [sp] ldr r1, [r5, #0x30] add r2, sp, #4 mov r3, #0x33 bl MOD11_022569DC mov r0, #8 str r0, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r4, r5, pc} thumb_func_start MOD11_02256470 MOD11_02256470: ; 0x02256470 push {r3, lr} sub sp, #8 mov r1, #0x34 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_0225648C MOD11_0225648C: ; 0x0225648C push {r3, lr} sub sp, #8 mov r1, #0x35 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022564A8 MOD11_022564A8: ; 0x022564A8 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 mov r5, #0x36 add r1, sp, #4 strb r5, [r1] strb r2, [r1, #1] strh r3, [r1, #2] mov r1, #4 str r1, [sp] mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022564CC MOD11_022564CC: ; 0x022564CC push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 mov r1, #0x37 add r5, r0, #0 str r1, [sp, #4] bl MOD11_0222FF74 mov r1, #4 tst r0, r1 beq _022564F0 str r1, [sp] add r0, r5, #0 mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 _022564F0: add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD11_022564F4 MOD11_022564F4: ; 0x022564F4 push {r4, r5, r6, r7, lr} sub sp, #0x64 str r0, [sp, #4] add r0, r1, #0 str r2, [sp, #8] mov r2, #0x38 add r7, sp, #0xc add r1, sp, #0xc strb r2, [r1] mov r1, #0 mov ip, r1 ldr r1, _0225658C ; =0x00002D66 add r4, r7, #0 add r3, r0, r1 add r1, #0x58 add r5, r7, #0 add r6, r0, r1 _02256516: mov r1, #0xb5 lsl r1, r1, #6 ldrh r1, [r0, r1] add r2, r4, #0 add r2, #0x24 strh r1, [r7, #0x18] ldrb r1, [r3] lsl r1, r1, #0x1a lsr r1, r1, #0x1f strb r1, [r2] ldrb r1, [r3] add r2, r4, #0 add r2, #0x28 lsl r1, r1, #0x1b lsr r1, r1, #0x1b strb r1, [r2] ldr r1, _02256590 ; =0x00002DB0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x14 tst r1, r2 beq _02256550 ldr r1, _02256594 ; =0x00002DFA add r2, r4, #0 ldrh r1, [r0, r1] add r2, #0x20 strb r1, [r2] ldr r1, _02256598 ; =0x00002DE4 b _0225655E _02256550: ldrb r1, [r6] add r2, r4, #0 add r2, #0x20 lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r2] ldr r1, _0225659C ; =0x00002DA8 _0225655E: ldr r1, [r0, r1] add r0, #0xc0 str r1, [r5, #0x2c] mov r1, ip add r1, r1, #1 add r7, r7, #2 add r3, #0xc0 add r4, r4, #1 add r5, r5, #4 add r6, #0xc0 mov ip, r1 cmp r1, #4 blt _02256516 mov r0, #0x58 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #8] mov r1, #1 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x64 pop {r4, r5, r6, r7, pc} .align 2, 0 _0225658C: .word 0x00002D66 _02256590: .word 0x00002DB0 _02256594: .word 0x00002DFA _02256598: .word 0x00002DE4 _0225659C: .word 0x00002DA8 thumb_func_start MOD11_022565A0 MOD11_022565A0: ; 0x022565A0 push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x39 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022565BC MOD11_022565BC: ; 0x022565BC push {r3, lr} sub sp, #8 add r2, r1, #0 mov r1, #0x3a str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022565D8 MOD11_022565D8: ; 0x022565D8 push {r3, lr} sub sp, #8 mov r1, #0x3b str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022565F4 MOD11_022565F4: ; 0x022565F4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 mov r2, #0x3c add r1, sp, #4 strb r2, [r1] mov r4, #0 add r6, r0, #0 strb r4, [r1, #1] bl MOD11_0222FF84 cmp r0, #0 ble _02256632 add r7, sp, #4 _02256610: ldr r0, _02256648 ; =0x000021A8 ldr r0, [r5, r0] cmp r0, #0x10 bne _02256624 add r0, r4, #0 bl FUN_0206A92C ldrb r1, [r7, #1] orr r0, r1 strb r0, [r7, #1] _02256624: add r0, r6, #0 add r5, #0x10 add r4, r4, #1 bl MOD11_0222FF84 cmp r4, r0 blt _02256610 _02256632: mov r0, #4 str r0, [sp] add r0, r6, #0 mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _02256648: .word 0x000021A8 thumb_func_start MOD11_0225664C MOD11_0225664C: ; 0x0225664C push {r3, lr} sub sp, #8 mov r1, #0x3d str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_02256668 MOD11_02256668: ; 0x02256668 push {r4, r5, r6, r7, lr} sub sp, #0x64 str r0, [sp, #4] add r0, r1, #0 str r2, [sp, #8] mov r2, #0x3e add r7, sp, #0xc add r1, sp, #0xc strb r2, [r1] mov r1, #0 mov ip, r1 ldr r1, _02256700 ; =0x00002D66 add r4, r7, #0 add r3, r0, r1 add r1, #0x58 add r5, r7, #0 add r6, r0, r1 _0225668A: mov r1, #0xb5 lsl r1, r1, #6 ldrh r1, [r0, r1] add r2, r4, #0 add r2, #0x24 strh r1, [r7, #0x18] ldrb r1, [r3] lsl r1, r1, #0x1a lsr r1, r1, #0x1f strb r1, [r2] ldrb r1, [r3] add r2, r4, #0 add r2, #0x28 lsl r1, r1, #0x1b lsr r1, r1, #0x1b strb r1, [r2] ldr r1, _02256704 ; =0x00002DB0 ldr r2, [r0, r1] mov r1, #2 lsl r1, r1, #0x14 tst r1, r2 beq _022566C4 ldr r1, _02256708 ; =0x00002DFA add r2, r4, #0 ldrh r1, [r0, r1] add r2, #0x20 strb r1, [r2] ldr r1, _0225670C ; =0x00002DE4 b _022566D2 _022566C4: ldrb r1, [r6] add r2, r4, #0 add r2, #0x20 lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r2] ldr r1, _02256710 ; =0x00002DA8 _022566D2: ldr r1, [r0, r1] add r0, #0xc0 str r1, [r5, #0x2c] mov r1, ip add r1, r1, #1 add r7, r7, #2 add r3, #0xc0 add r4, r4, #1 add r5, r5, #4 add r6, #0xc0 mov ip, r1 cmp r1, #4 blt _0225668A mov r0, #0x58 str r0, [sp] ldr r0, [sp, #4] ldr r2, [sp, #8] mov r1, #1 add r3, sp, #0xc bl MOD11_02254878 add sp, #0x64 pop {r4, r5, r6, r7, pc} .align 2, 0 _02256700: .word 0x00002D66 _02256704: .word 0x00002DB0 _02256708: .word 0x00002DFA _0225670C: .word 0x00002DE4 _02256710: .word 0x00002DA8 thumb_func_start MOD11_02256714 MOD11_02256714: ; 0x02256714 push {r3, r4, r5, lr} sub sp, #8 mov r3, #0x3f add r4, sp, #4 strb r3, [r4] ldr r3, _02256750 ; =0x0000216C ldr r5, [r1, r3] mov r1, #2 add r3, r5, #0 tst r3, r1 beq _0225672E strb r1, [r4, #1] b _0225673E _0225672E: mov r1, #4 tst r1, r5 beq _0225673A mov r1, #1 strb r1, [r4, #1] b _0225673E _0225673A: mov r1, #0 strb r1, [r4, #1] _0225673E: mov r1, #4 str r1, [sp] mov r1, #1 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} nop _02256750: .word 0x0000216C thumb_func_start MOD11_02256754 MOD11_02256754: ; 0x02256754 push {r4, lr} sub sp, #8 add r4, r1, #0 mov r3, #0x40 add r1, sp, #4 strb r3, [r1] strh r2, [r1, #2] mov r1, #4 str r1, [sp] mov r1, #1 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r4, pc} thumb_func_start MOD11_02256774 MOD11_02256774: ; 0x02256774 push {r3, r4, lr} sub sp, #0xc mov r2, #0x41 add r1, sp, #4 strb r2, [r1] add r4, r0, #0 bl MOD11_0223145C str r0, [sp, #8] mov r0, #8 str r0, [sp] add r0, r4, #0 mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD11_0225679C MOD11_0225679C: ; 0x0225679C push {r3, lr} sub sp, #8 mov r1, #0x42 str r1, [sp, #4] mov r1, #4 str r1, [sp] mov r1, #1 mov r2, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022567B8 MOD11_022567B8: ; 0x022567B8 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 add r0, sp, #4 add r4, r1, #0 strb r2, [r0] bl FUN_02031190 add r1, sp, #4 strb r0, [r1, #1] mov r0, #4 str r0, [sp] add r0, r5, #0 mov r1, #2 add r2, r4, #0 add r3, sp, #4 bl MOD11_02254878 add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD11_022567E0 MOD11_022567E0: ; 0x022567E0 push {r3, r4, r5, r6, r7, lr} ldrb r6, [r1, #3] ldrb r3, [r1] ldrb r2, [r1, #2] lsl r6, r6, #8 add r5, r0, #0 orr r2, r6 ldrb r4, [r1, #1] cmp r3, #0 bne _02256814 mov r3, #0 cmp r2, #0 ble _02256852 mov r6, #0x23 lsl r4, r4, #8 lsl r6, r6, #8 _02256800: add r0, r1, r3 ldr r7, [r5, #0x30] ldrb r0, [r0, #4] add r7, r4, r7 add r7, r3, r7 add r3, r3, #1 strb r0, [r7, r6] cmp r3, r2 blt _02256800 pop {r3, r4, r5, r6, r7, pc} _02256814: cmp r3, #1 bne _02256836 mov r0, #0 cmp r2, #0 ble _02256852 lsl r3, r4, #2 add r5, r5, r3 _02256822: add r3, r1, r0 ldrb r4, [r3, #4] ldr r3, [r5, #0x34] add r3, r3, r0 add r3, #0x94 add r0, r0, #1 strb r4, [r3] cmp r0, r2 blt _02256822 pop {r3, r4, r5, r6, r7, pc} _02256836: cmp r3, #2 bne _02256852 ldrb r7, [r1, #4] ldrb r6, [r1, #5] bl MOD11_02230DD4 cmp r0, #0 beq _02256852 ldr r0, [r5, #0x30] add r1, r6, #0 add r2, r4, #0 add r3, r7, #0 bl MOD11_02243340 _02256852: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_02256854 MOD11_02256854: ; 0x02256854 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 add r5, r2, #0 mov r1, #0x16 strb r1, [r5] add r1, sp, #0x18 ldrh r1, [r1, #0x1c] add r7, r0, #0 strh r1, [r5, #2] ldr r1, [sp, #0x2c] strh r1, [r5, #0x14] ldr r1, [sp, #0x30] strh r1, [r5, #0x16] ldr r1, [sp, #0x28] str r3, [r5, #0x4c] str r1, [r5, #0x50] bl MOD11_02230294 str r0, [r5, #0x54] cmp r4, #0 bne _02256882 b _022569B2 _02256882: ldr r0, _022569B8 ; =0x00002144 ldr r1, [r4, r0] add r0, #0x10 str r1, [r5, #4] ldr r0, [r4, r0] cmp r0, #0 beq _02256892 b _0225689E _02256892: add r0, sp, #0x18 ldrh r0, [r0, #0x1c] lsl r0, r0, #4 add r1, r4, r0 ldr r0, _022569BC ; =0x000003E1 ldrb r0, [r1, r0] _0225689E: ldr r1, [sp, #0x2c] strh r0, [r5, #8] mov r0, #0xc0 add r6, r1, #0 mul r6, r0 ldr r0, _022569C0 ; =0x00002D75 add r1, r4, r6 ldrb r0, [r1, r0] add r1, r4, #0 mov r2, #8 strh r0, [r5, #0xc] mov r0, #0xd str r0, [sp] add r0, r7, #0 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022568E2 mov r0, #0x4c str r0, [sp] add r0, r7, #0 add r1, r4, #0 mov r2, #8 mov r3, #0 bl MOD11_02246870 cmp r0, #0 bne _022568E2 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] str r0, [r5, #0x10] b _022568E6 _022568E2: mov r0, #0 str r0, [r5, #0x10] _022568E6: ldr r0, _022569C4 ; =0x00002164 ldr r0, [r4, r0] strh r0, [r5, #0xa] ldr r0, _022569C8 ; =0x00002DB0 add r1, r4, r0 mov r0, #1 ldr r2, [r1, r6] lsl r0, r0, #0x18 tst r0, r2 beq _022568FE mov r3, #1 b _02256900 _022568FE: mov r3, #0 _02256900: ldrh r0, [r5, #0xe] mov r2, #1 bic r0, r2 lsl r2, r3, #0x10 lsr r3, r2, #0x10 mov r2, #1 and r3, r2 orr r0, r3 strh r0, [r5, #0xe] ldr r1, [r1, r6] lsl r0, r2, #0x15 tst r0, r1 bne _0225691C mov r2, #0 _0225691C: ldrh r0, [r5, #0xe] mov r1, #2 str r5, [sp, #0x10] bic r0, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1e orr r0, r1 strh r0, [r5, #0xe] ldr r0, _022569CC ; =0x00002D66 mov r1, #0 add r2, r4, r0 add r0, #0x58 add r3, r5, #0 add r7, r4, r0 _0225693C: mov r0, #0xb5 lsl r0, r0, #6 ldrh r6, [r4, r0] ldr r0, [sp, #0x10] strh r6, [r0, #0x18] ldrb r0, [r2] lsl r0, r0, #0x1a lsr r6, r0, #0x1f add r0, r5, r1 str r0, [sp, #8] add r0, #0x24 str r0, [sp, #8] strb r6, [r0] ldrb r0, [r2] lsl r0, r0, #0x1b lsr r6, r0, #0x1b add r0, r5, r1 str r0, [sp, #4] add r0, #0x28 str r0, [sp, #4] strb r6, [r0] mov r0, #0xb7 lsl r0, r0, #6 ldr r0, [r4, r0] str r0, [r3, #0x3c] ldr r0, _022569C8 ; =0x00002DB0 ldr r6, [r4, r0] mov r0, #2 lsl r0, r0, #0x14 tst r0, r6 beq _0225698C ldr r0, _022569D0 ; =0x00002DFA ldrh r6, [r4, r0] add r0, r5, r1 str r0, [sp, #0xc] add r0, #0x20 str r0, [sp, #0xc] strb r6, [r0] ldr r0, _022569D4 ; =0x00002DE4 b _0225699A _0225698C: ldrb r0, [r7] lsl r0, r0, #0x1c lsr r6, r0, #0x1c add r0, r5, r1 add r0, #0x20 strb r6, [r0] ldr r0, _022569D8 ; =0x00002DA8 _0225699A: ldr r0, [r4, r0] add r1, r1, #1 str r0, [r3, #0x2c] ldr r0, [sp, #0x10] add r4, #0xc0 add r0, r0, #2 str r0, [sp, #0x10] add r2, #0xc0 add r3, r3, #4 add r7, #0xc0 cmp r1, #4 blt _0225693C _022569B2: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _022569B8: .word 0x00002144 _022569BC: .word 0x000003E1 _022569C0: .word 0x00002D75 _022569C4: .word 0x00002164 _022569C8: .word 0x00002DB0 _022569CC: .word 0x00002D66 _022569D0: .word 0x00002DFA _022569D4: .word 0x00002DE4 _022569D8: .word 0x00002DA8 thumb_func_start MOD11_022569DC MOD11_022569DC: ; 0x022569DC push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp] ldr r0, [sp, #0x38] add r5, r2, #0 str r1, [sp, #4] str r0, [sp, #0x38] mov r0, #0 add r1, r5, #0 mov r2, #8 add r6, r3, #0 bl MIi_CpuClearFast ldr r0, [sp] bl MOD11_0222FF74 add r4, r0, #0 mov r0, #0xc and r0, r4 strb r6, [r5] cmp r0, #0xc beq _02256A30 mov r0, #0x10 tst r0, r4 beq _02256A1A ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_02230270 cmp r0, #0 bne _02256A30 _02256A1A: cmp r4, #0x4b bne _02256A2A ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_02230270 cmp r0, #0 bne _02256A30 _02256A2A: cmp r4, #0xcb beq _02256A30 b _02256B66 _02256A30: ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_02230260 cmp r0, #2 beq _02256A48 ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_02230260 cmp r0, #3 bne _02256A56 _02256A48: ldr r6, [sp, #0x38] ldr r0, [sp] add r1, r6, #0 bl MOD11_022302BC str r0, [sp, #0x38] b _02256A60 _02256A56: ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_022302BC add r6, r0, #0 _02256A60: ldr r0, [sp] add r1, r6, #0 bl MOD11_0222FF88 mov r4, #0 str r0, [sp, #0x10] add r7, r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02256AE0 mov r0, #6 add r1, r6, #0 mul r1, r0 ldr r0, [sp, #4] add r6, r0, r1 _02256A80: ldr r1, _02256C00 ; =0x0000312C ldr r0, [sp, #0x10] ldrb r1, [r6, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 str r0, [sp, #0x14] bl FUN_020671BC cmp r0, #0 beq _02256AD2 ldr r1, _02256C04 ; =0x000001EE cmp r0, r1 beq _02256AD2 ldr r0, [sp, #0x14] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256ACA ldr r0, [sp, #0x14] mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256AC2 add r1, r5, r4 mov r0, #3 strb r0, [r1, #2] b _02256AD0 _02256AC2: add r1, r5, r4 mov r0, #1 strb r0, [r1, #2] b _02256AD0 _02256ACA: add r1, r5, r4 mov r0, #2 strb r0, [r1, #2] _02256AD0: add r4, r4, #1 _02256AD2: ldr r0, [sp, #0x10] add r6, r6, #1 add r7, r7, #1 bl FUN_0206B9AC cmp r7, r0 blt _02256A80 _02256AE0: ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_0222FF88 str r0, [sp, #8] mov r4, #3 mov r6, #0 bl FUN_0206B9AC cmp r0, #0 bgt _02256AF8 b _02256BFA _02256AF8: ldr r0, [sp, #0x38] mov r1, #6 mul r1, r0 ldr r0, [sp, #4] add r7, r0, r1 _02256B02: ldr r1, _02256C00 ; =0x0000312C ldr r0, [sp, #8] ldrb r1, [r7, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 str r0, [sp, #0x18] bl FUN_020671BC cmp r0, #0 beq _02256B54 ldr r1, _02256C04 ; =0x000001EE cmp r0, r1 beq _02256B54 ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256B4C ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256B44 add r1, r5, r4 mov r0, #3 strb r0, [r1, #2] b _02256B52 _02256B44: add r1, r5, r4 mov r0, #1 strb r0, [r1, #2] b _02256B52 _02256B4C: add r1, r5, r4 mov r0, #2 strb r0, [r1, #2] _02256B52: add r4, r4, #1 _02256B54: ldr r0, [sp, #8] add r7, r7, #1 add r6, r6, #1 bl FUN_0206B9AC cmp r6, r0 blt _02256B02 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} _02256B66: mov r0, #2 tst r0, r4 beq _02256B7A mov r0, #8 tst r0, r4 bne _02256B7A ldr r0, [sp, #0x38] mov r1, #1 and r0, r1 str r0, [sp, #0x38] _02256B7A: ldr r0, [sp] ldr r1, [sp, #0x38] bl MOD11_0222FF88 mov r4, #0 str r0, [sp, #0xc] add r7, r4, #0 bl FUN_0206B9AC cmp r0, #0 ble _02256BFA ldr r0, [sp, #0x38] mov r1, #6 mul r1, r0 ldr r0, [sp, #4] add r6, r0, r1 _02256B9A: ldr r1, _02256C00 ; =0x0000312C ldr r0, [sp, #0xc] ldrb r1, [r6, r1] bl FUN_0206B9B0 mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] bl FUN_020671BC cmp r0, #0 beq _02256BEC ldr r1, _02256C04 ; =0x000001EE cmp r0, r1 beq _02256BEC ldr r0, [sp, #0x1c] mov r1, #0xa2 mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256BE4 ldr r0, [sp, #0x1c] mov r1, #0x9f mov r2, #0 bl FUN_020671BC cmp r0, #0 beq _02256BDC add r1, r5, r4 mov r0, #3 strb r0, [r1, #2] b _02256BEA _02256BDC: add r1, r5, r4 mov r0, #1 strb r0, [r1, #2] b _02256BEA _02256BE4: add r1, r5, r4 mov r0, #2 strb r0, [r1, #2] _02256BEA: add r4, r4, #1 _02256BEC: ldr r0, [sp, #0xc] add r6, r6, #1 add r7, r7, #1 bl FUN_0206B9AC cmp r7, r0 blt _02256B9A _02256BFA: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _02256C00: .word 0x0000312C _02256C04: .word 0x000001EE thumb_func_start MOD11_02256C08 MOD11_02256C08: ; 0x02256C08 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 lsl r0, r3, #0x18 lsr r0, r0, #0x18 add r4, r1, #0 add r7, r2, #0 str r3, [sp, #0x18] bl MOD11_02257FC0 add r6, r0, #0 ldr r3, [r6, #0x14] mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b str r3, [sp, #8] bl FUN_0200C00C mov r0, #0x1b str r0, [sp] mov r0, #0x23 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02256CC8 ; =0x00004E26 mov r1, #2 str r0, [sp, #0x14] add r0, r7, #0 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC ldr r3, [r6, #0x1c] mov r0, #1 str r0, [sp] str r3, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b bl FUN_0200C124 ldr r3, [r6, #0x20] mov r0, #1 str r0, [sp] add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b str r3, [sp, #4] bl FUN_0200C13C mov r0, #0x1b str r0, [sp] mov r0, #0x23 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02256CCC ; =0x00004E27 mov r1, #2 str r0, [sp, #0x14] add r0, r7, #0 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC ldr r0, [sp, #0x18] sub r0, r0, #6 cmp r0, #1 bhi _02256CC4 mov r0, #0x1b str r0, [sp] mov r0, #0x2d str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02256CD0 ; =0x00004E28 mov r1, #2 str r0, [sp, #0x14] add r0, r7, #0 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC _02256CC4: add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _02256CC8: .word 0x00004E26 _02256CCC: .word 0x00004E27 _02256CD0: .word 0x00004E28 thumb_func_start MOD11_02256CD4 MOD11_02256CD4: ; 0x02256CD4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 lsl r0, r3, #0x18 lsr r0, r0, #0x18 add r6, r1, #0 add r7, r2, #0 bl MOD11_02258024 add r4, r0, #0 beq _02256D44 ldr r3, [r4, #0x14] mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b str r3, [sp, #8] bl FUN_0200C00C mov r0, #0x1b str r0, [sp] mov r0, #0x23 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02256D48 ; =0x00004E26 mov r1, #2 str r0, [sp, #0x14] add r0, r7, #0 add r2, r5, #0 add r3, r6, #0 bl FUN_0200C0DC ldr r3, [r4, #0x1c] mov r0, #1 str r0, [sp] str r3, [sp, #4] add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b bl FUN_0200C124 ldr r3, [r4, #0x20] mov r0, #1 str r0, [sp] add r0, r5, #0 add r1, r6, #0 mov r2, #0x1b str r3, [sp, #4] bl FUN_0200C13C _02256D44: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02256D48: .word 0x00004E26 thumb_func_start MOD11_02256D4C MOD11_02256D4C: ; 0x02256D4C push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r2, #0x18 add r4, r1, #0 lsr r0, r0, #0x18 bl MOD11_02257FC0 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl FUN_0200C154 add r4, r0, #0 ldr r0, [r4] bl FUN_0200C59C add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_02256D70 MOD11_02256D70: ; 0x02256D70 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #4] add r6, r1, #0 add r4, r2, #0 cmp r0, #0 bne _02256D82 bl ErrorHandling _02256D82: add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] cmp r0, #6 bne _02256D94 mov r1, #3 lsl r1, r1, #0xa and r4, r1 b _02256DA4 _02256D94: cmp r0, #7 bne _02256DA0 mov r1, #3 lsl r1, r1, #0xc and r4, r1 b _02256DA4 _02256DA0: ldr r1, _02256F00 ; =0xFFFFC3FF and r4, r1 _02256DA4: cmp r0, #7 bhi _02256DEA add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02256DB4: ; jump table .short _02256DE6 - _02256DB4 - 2 ; case 0 .short _02256DC4 - _02256DB4 - 2 ; case 1 .short _02256DCA - _02256DB4 - 2 ; case 2 .short _02256DC4 - _02256DB4 - 2 ; case 3 .short _02256DCA - _02256DB4 - 2 ; case 4 .short _02256DC4 - _02256DB4 - 2 ; case 5 .short _02256DEA - _02256DB4 - 2 ; case 6 .short _02256DEA - _02256DB4 - 2 ; case 7 _02256DC4: mov r0, #0x26 bic r4, r0 b _02256DEA _02256DCA: ldr r0, _02256F04 ; =0xFFFFFDDF and r4, r0 add r0, r5, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bne _02256DE0 mov r0, #6 bic r4, r0 b _02256DEA _02256DE0: mov r0, #1 bic r4, r0 b _02256DEA _02256DE6: ldr r0, _02256F08 ; =0xFFFFFDFF and r4, r0 _02256DEA: ldr r0, [r5, #0xc] bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _02256DFA ldr r0, _02256F08 ; =0xFFFFFDFF and r4, r0 _02256DFA: mov r0, #1 tst r0, r4 beq _02256E10 add r0, r5, #0 mov r1, #0 bl MOD11_02257150 add r0, r5, #0 mov r1, #0 bl MOD11_02257BEC _02256E10: mov r0, #2 tst r0, r4 beq _02256E1E add r0, r5, #0 add r1, r6, #0 bl MOD11_0225787C _02256E1E: mov r0, #4 tst r0, r4 beq _02256E2A add r0, r5, #0 bl MOD11_02257908 _02256E2A: mov r0, #0x80 tst r0, r4 bne _02256E36 mov r0, #0x40 tst r0, r4 beq _02256E3C _02256E36: add r0, r5, #0 bl MOD11_02257654 _02256E3C: mov r0, #8 tst r0, r4 beq _02256E48 add r0, r5, #0 bl MOD11_0225775C _02256E48: mov r0, #0x10 tst r0, r4 beq _02256E54 add r0, r5, #0 bl MOD11_022574F0 _02256E54: mov r0, #0x20 tst r0, r4 beq _02256E6A add r0, r5, #0 mov r1, #0 bl MOD11_022571B8 add r0, r5, #0 mov r1, #1 bl MOD11_02257BEC _02256E6A: mov r0, #2 lsl r0, r0, #8 tst r0, r4 beq _02256E78 add r0, r5, #0 bl MOD11_02257968 _02256E78: mov r0, #1 lsl r0, r0, #8 tst r0, r4 beq _02256EDC add r0, r5, #0 add r0, #0x4a ldrb r0, [r0] cmp r0, #5 bhi _02256EA2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02256E96: ; jump table .short _02256EA2 - _02256E96 - 2 ; case 0 .short _02256EAC - _02256E96 - 2 ; case 1 .short _02256EB6 - _02256E96 - 2 ; case 2 .short _02256EC0 - _02256E96 - 2 ; case 3 .short _02256ECA - _02256E96 - 2 ; case 4 .short _02256ED4 - _02256E96 - 2 ; case 5 _02256EA2: add r0, r5, #0 mov r1, #0x38 bl MOD11_022579B8 b _02256EDC _02256EAC: add r0, r5, #0 mov r1, #0x2f bl MOD11_022579B8 b _02256EDC _02256EB6: add r0, r5, #0 mov r1, #0x32 bl MOD11_022579B8 b _02256EDC _02256EC0: add r0, r5, #0 mov r1, #0x35 bl MOD11_022579B8 b _02256EDC _02256ECA: add r0, r5, #0 mov r1, #0x2c bl MOD11_022579B8 b _02256EDC _02256ED4: add r0, r5, #0 mov r1, #0x29 bl MOD11_022579B8 _02256EDC: mov r0, #5 lsl r0, r0, #0xa tst r0, r4 beq _02256EEC add r0, r5, #0 add r1, r4, #0 bl MOD11_022579F8 _02256EEC: mov r0, #0xa lsl r0, r0, #0xa tst r0, r4 beq _02256EFC add r0, r5, #0 add r1, r4, #0 bl MOD11_02257AD4 _02256EFC: pop {r4, r5, r6, pc} nop _02256F00: .word 0xFFFFC3FF _02256F04: .word 0xFFFFFDDF _02256F08: .word 0xFFFFFDFF thumb_func_start MOD11_02256F0C MOD11_02256F0C: ; 0x02256F0C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 beq _02256F1E bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x50] _02256F1E: ldr r0, [r4, #4] cmp r0, #0 beq _02256F2C bl FUN_0200C3DC mov r0, #0 str r0, [r4, #4] _02256F2C: pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02256F30 MOD11_02256F30: ; 0x02256F30 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _02256F42 bl FUN_0200C3DC mov r0, #0 str r0, [r4, #8] _02256F42: pop {r4, pc} thumb_func_start MOD11_02256F44 MOD11_02256F44: ; 0x02256F44 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x25 ldrb r0, [r0] bl MOD11_02257FC0 add r4, r0, #0 ldr r0, [r5, #0xc] bl MOD11_02230078 ldr r0, [r5, #0xc] bl MOD11_02230080 ldr r1, [r4, #0x14] add r5, r0, #0 bl FUN_0200C358 ldr r1, [r4, #0x1c] add r0, r5, #0 bl FUN_0200C378 ldr r1, [r4, #0x20] add r0, r5, #0 bl FUN_0200C388 pop {r3, r4, r5, pc} thumb_func_start MOD11_02256F78 MOD11_02256F78: ; 0x02256F78 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x25 ldrb r0, [r0] bl MOD11_02258024 add r4, r0, #0 beq _02256FAC ldr r0, [r5, #0xc] bl MOD11_02230078 ldr r0, [r5, #0xc] bl MOD11_02230080 ldr r1, [r4, #0x14] add r5, r0, #0 bl FUN_0200C358 ldr r1, [r4, #0x1c] add r0, r5, #0 bl FUN_0200C378 ldr r1, [r4, #0x20] add r0, r5, #0 bl FUN_0200C388 _02256FAC: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02256FB0 MOD11_02256FB0: ; 0x02256FB0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0xc] bl MOD11_02230078 add r6, r0, #0 ldr r0, [r5, #0xc] bl MOD11_02230080 add r7, r0, #0 ldr r0, [r5, #0xc] bl MOD11_022300CC str r0, [sp] add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] bl MOD11_02257FC0 add r3, r5, #0 add r3, #0x25 add r4, r0, #0 ldrb r3, [r3] ldr r2, [sp] add r0, r6, #0 add r1, r7, #0 bl MOD11_02256C08 add r2, r5, #0 add r2, #0x25 ldrb r2, [r2] add r0, r6, #0 add r1, r7, #0 bl MOD11_02256D4C add r3, r5, #0 str r0, [r5, #4] add r3, #0x25 ldrb r3, [r3] ldr r2, [sp] add r0, r6, #0 add r1, r7, #0 bl MOD11_02256CD4 ldr r0, [r5, #8] cmp r0, #0 beq _0225702A add r5, #0x25 mov r1, #0 ldrsh r3, [r4, r1] ldrb r2, [r5] ldr r1, _0225702C ; =0x0225E970 ldr r0, [r0] ldrsb r1, [r1, r2] mov r2, #2 ldrsh r2, [r4, r2] sub r1, r3, r1 lsl r1, r1, #0x10 asr r1, r1, #0x10 bl FUN_0200C6E4 _0225702A: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225702C: .word 0x0225E970 thumb_func_start MOD11_02257030 MOD11_02257030: ; 0x02257030 push {r4, lr} add r4, r0, #0 bl MOD11_02256F0C add r0, r4, #0 bl MOD11_02256F44 add r0, r4, #0 bl MOD11_02256F30 add r0, r4, #0 bl MOD11_02256F78 pop {r4, pc} thumb_func_start MOD11_0225704C MOD11_0225704C: ; 0x0225704C push {r4, r5, r6, lr} add r5, r0, #0 add r0, #0x25 ldrb r0, [r0] cmp r0, #2 beq _0225705C cmp r0, #4 bne _02257136 _0225705C: add r0, r5, #0 add r0, #0x4f ldrb r2, [r0] mov r1, #8 add r0, r2, #0 bic r0, r1 lsl r1, r2, #0x1c lsr r2, r1, #0x1f mov r1, #1 eor r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1c orr r1, r0 add r0, r5, #0 add r0, #0x4f strb r1, [r0] ldr r0, [r5, #4] ldr r0, [r0] bl FUN_02020350 add r4, r0, #0 add r0, r5, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #1 bne _022570E8 mov r0, #0x38 bl MOD11_02257F60 add r1, r5, #0 add r1, #0x25 ldrb r1, [r1] mov r6, #0x19 ldr r3, _02257138 ; =0x0225E9B0 lsl r2, r1, #2 ldrh r3, [r3, r2] lsl r6, r6, #0x16 ldr r1, [r4, #4] add r3, r6, r3 add r1, r1, r3 ldr r3, _0225713C ; =0x0225E9B2 ldrh r2, [r3, r2] bl MIi_CpuCopy16 mov r0, #0x45 bl MOD11_02257F60 add r1, r5, #0 add r1, #0x25 ldrb r1, [r1] ldr r3, _02257140 ; =0x0225EA10 lsl r2, r1, #2 ldrh r3, [r3, r2] ldr r1, [r4, #4] add r3, r6, r3 add r1, r1, r3 ldr r3, _02257144 ; =0x0225EA12 ldrh r2, [r3, r2] bl MIi_CpuCopy16 ldr r1, [r5, #0x28] add r0, r5, #0 mov r2, #6 bl MOD11_02256D70 pop {r4, r5, r6, pc} _022570E8: mov r0, #0x42 bl MOD11_02257F60 add r1, r5, #0 add r1, #0x25 ldrb r1, [r1] mov r6, #0x19 ldr r3, _02257138 ; =0x0225E9B0 lsl r2, r1, #2 ldrh r3, [r3, r2] lsl r6, r6, #0x16 ldr r1, [r4, #4] add r3, r6, r3 add r1, r1, r3 ldr r3, _0225713C ; =0x0225E9B2 ldrh r2, [r3, r2] bl MIi_CpuCopy16 mov r0, #0x44 bl MOD11_02257F60 add r1, r5, #0 add r1, #0x25 ldrb r1, [r1] ldr r3, _02257148 ; =0x0225E9E0 lsl r2, r1, #2 ldrh r3, [r3, r2] ldr r1, [r4, #4] add r3, r6, r3 add r1, r1, r3 ldr r3, _0225714C ; =0x0225E9E2 ldrh r2, [r3, r2] bl MIi_CpuCopy16 ldr r1, [r5, #0x28] add r0, r5, #0 mov r2, #1 bl MOD11_02256D70 _02257136: pop {r4, r5, r6, pc} .align 2, 0 _02257138: .word 0x0225E9B0 _0225713C: .word 0x0225E9B2 _02257140: .word 0x0225EA10 _02257144: .word 0x0225EA12 _02257148: .word 0x0225E9E0 _0225714C: .word 0x0225E9E2 thumb_func_start MOD11_02257150 MOD11_02257150: ; 0x02257150 mov r2, #2 lsl r2, r2, #0x1e str r2, [r0, #0x34] ldr r3, [r0, #0x28] add r2, r3, r1 bpl _0225715E sub r1, r1, r2 _0225715E: ldr r2, [r0, #0x2c] add r3, r3, r1 cmp r3, r2 ble _0225716A sub r2, r3, r2 sub r1, r1, r2 _0225716A: neg r1, r1 str r1, [r0, #0x30] ldr r1, [r0, #0x28] cmp r1, #0 bge _02257178 mov r1, #0 str r1, [r0, #0x28] _02257178: ldr r2, [r0, #0x2c] ldr r1, [r0, #0x28] cmp r1, r2 ble _02257182 str r2, [r0, #0x28] _02257182: bx lr thumb_func_start MOD11_02257184 MOD11_02257184: ; 0x02257184 push {r3, r4, r5, lr} mov r1, #0 add r5, r0, #0 bl MOD11_02257BEC add r4, r0, #0 mov r0, #0 mvn r0, r0 cmp r4, r0 bne _022571AA ldr r1, [r5, #0x28] ldr r0, [r5, #0x30] mov r2, #2 sub r1, r1, r0 add r0, r5, #0 str r1, [r5, #0x28] bl MOD11_02256D70 b _022571B4 _022571AA: add r0, r5, #0 add r1, r4, #0 mov r2, #2 bl MOD11_02256D70 _022571B4: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD11_022571B8 MOD11_022571B8: ; 0x022571B8 mov r2, #2 lsl r2, r2, #0x1e str r2, [r0, #0x44] ldr r3, [r0, #0x38] add r2, r3, r1 bpl _022571C6 sub r1, r1, r2 _022571C6: ldr r2, [r0, #0x3c] add r3, r3, r1 cmp r3, r2 ble _022571D2 sub r2, r3, r2 sub r1, r1, r2 _022571D2: neg r1, r1 str r1, [r0, #0x40] ldr r1, [r0, #0x38] cmp r1, #0 bge _022571E0 mov r1, #0 str r1, [r0, #0x38] _022571E0: ldr r2, [r0, #0x3c] ldr r1, [r0, #0x38] cmp r1, r2 ble _022571EA str r2, [r0, #0x38] _022571EA: bx lr thumb_func_start MOD11_022571EC MOD11_022571EC: ; 0x022571EC push {r4, lr} mov r1, #1 add r4, r0, #0 bl MOD11_02257BEC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02257206 ldr r2, [r4, #0x38] ldr r1, [r4, #0x40] sub r1, r2, r1 str r1, [r4, #0x38] _02257206: pop {r4, pc} thumb_func_start MOD11_02257208 MOD11_02257208: ; 0x02257208 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _02257222 ldr r0, [r0] mov r1, #1 bl FUN_020200BC add r0, r4, #0 mov r1, #1 bl MOD11_02257284 _02257222: ldr r0, [r4, #0xc] bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _02257236 add r0, r4, #0 bl MOD11_02258188 _02257236: pop {r4, pc} thumb_func_start MOD11_02257238 MOD11_02257238: ; 0x02257238 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _0225725C ldr r0, [r0] mov r1, #0 bl FUN_020200BC ldr r0, [r4, #8] mov r1, #0 ldr r0, [r0] bl FUN_02020208 add r0, r4, #0 mov r1, #0 bl MOD11_02257284 _0225725C: add r0, r4, #0 bl MOD11_022581B0 pop {r4, pc} thumb_func_start MOD11_02257264 MOD11_02257264: ; 0x02257264 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #4] add r4, r1, #0 cmp r0, #0 beq _02257280 bl FUN_0200C6B0 ldr r0, [r5, #8] cmp r0, #0 beq _02257280 add r1, r4, #0 bl FUN_0200C6B0 _02257280: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02257284 MOD11_02257284: ; 0x02257284 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #8] add r4, r1, #0 cmp r0, #0 beq _022572AA ldr r0, [r5, #0xc] bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 beq _022572A2 cmp r4, #1 beq _022572AA _022572A2: ldr r0, [r5, #8] add r1, r4, #0 bl FUN_0200C644 _022572AA: pop {r3, r4, r5, pc} thumb_func_start MOD11_022572AC MOD11_022572AC: ; 0x022572AC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #4] add r4, r1, #0 cmp r0, #0 beq _022572C4 bl FUN_0200C644 add r0, r5, #0 add r1, r4, #0 bl MOD11_02257284 _022572C4: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_022572C8 MOD11_022572C8: ; 0x022572C8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #4] add r6, r1, #0 add r7, r2, #0 cmp r0, #0 bne _022572DA bl ErrorHandling _022572DA: add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] bl MOD11_02257FC0 add r4, r0, #0 mov r1, #0 mov r2, #2 ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldr r0, [r5, #4] add r1, r1, r6 add r2, r2, r7 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r0] asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 ldr r0, [r5, #8] cmp r0, #0 beq _0225732C add r5, #0x25 ldrb r3, [r5] mov r1, #0 ldr r2, _02257330 ; =0x0225E970 ldrsh r1, [r4, r1] ldrsb r2, [r2, r3] ldr r0, [r0] add r1, r1, r6 sub r1, r1, r2 mov r2, #2 ldrsh r2, [r4, r2] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r2, r7 lsl r2, r2, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 _0225732C: pop {r3, r4, r5, r6, r7, pc} nop _02257330: .word 0x0225E970 thumb_func_start MOD11_02257334 MOD11_02257334: ; 0x02257334 push {r3, r4, r5, lr} add r4, r0, #0 add r5, r1, #0 cmp r4, #0 bne _02257342 bl ErrorHandling _02257342: ldr r0, [r4, #4] cmp r0, #0 bne _0225734C bl ErrorHandling _0225734C: add r0, r4, #0 add r0, #0x4f ldrb r1, [r0] mov r0, #2 bic r1, r0 add r0, r4, #0 add r0, #0x4f strb r1, [r0] add r0, r4, #0 add r0, #0x4f ldrb r0, [r0] mov r1, #1 bic r0, r1 lsl r1, r5, #0x18 lsr r2, r1, #0x18 mov r1, #1 and r1, r2 orr r1, r0 add r0, r4, #0 add r0, #0x4f strb r1, [r0] cmp r5, #0 bne _022573BA add r0, r4, #0 add r0, #0x25 ldrb r0, [r0] cmp r0, #7 bhi _022573AC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02257390: ; jump table .short _022573A0 - _02257390 - 2 ; case 0 .short _022573AC - _02257390 - 2 ; case 1 .short _022573A0 - _02257390 - 2 ; case 2 .short _022573AC - _02257390 - 2 ; case 3 .short _022573A0 - _02257390 - 2 ; case 4 .short _022573AC - _02257390 - 2 ; case 5 .short _022573A0 - _02257390 - 2 ; case 6 .short _022573A0 - _02257390 - 2 ; case 7 _022573A0: add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl MOD11_022572C8 b _022573C4 _022573AC: mov r1, #0x9f add r0, r4, #0 mvn r1, r1 mov r2, #0 bl MOD11_022572C8 b _022573C4 _022573BA: mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl MOD11_022572C8 _022573C4: ldr r0, _022573D0 ; =MOD11_022573D8 ldr r2, _022573D4 ; =0x000003DE add r1, r4, #0 bl FUN_0200CA44 pop {r3, r4, r5, pc} .align 2, 0 _022573D0: .word MOD11_022573D8 _022573D4: .word 0x000003DE thumb_func_start MOD11_022573D8 MOD11_022573D8: ; 0x022573D8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] mov r4, #0 bl MOD11_02257FC0 add r6, r0, #0 add r1, sp, #0 ldr r0, [r5, #4] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] cmp r0, #7 bhi _0225745E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225740E: ; jump table .short _0225741E - _0225740E - 2 ; case 0 .short _0225745E - _0225740E - 2 ; case 1 .short _0225741E - _0225740E - 2 ; case 2 .short _0225745E - _0225740E - 2 ; case 3 .short _0225741E - _0225740E - 2 ; case 4 .short _0225745E - _0225740E - 2 ; case 5 .short _0225741E - _0225740E - 2 ; case 6 .short _0225741E - _0225740E - 2 ; case 7 _0225741E: add r0, r5, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f add r0, sp, #0 bne _02257444 mov r1, #2 ldrsh r2, [r0, r1] sub r2, #0x18 strh r2, [r0, #2] add r2, r4, #0 ldrsh r1, [r0, r1] ldrsh r2, [r6, r2] cmp r1, r2 bge _0225749C strh r2, [r0, #2] add r4, r4, #1 b _0225749C _02257444: mov r1, #2 ldrsh r2, [r0, r1] add r2, #0x18 strh r2, [r0, #2] add r2, r4, #0 ldrsh r2, [r6, r2] ldrsh r1, [r0, r1] add r2, #0xa0 cmp r1, r2 ble _0225749C strh r2, [r0, #2] add r4, r4, #1 b _0225749C _0225745E: add r0, r5, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f add r0, sp, #0 bne _02257484 mov r1, #2 ldrsh r2, [r0, r1] add r2, #0x18 strh r2, [r0, #2] mov r2, #0 ldrsh r1, [r0, r1] ldrsh r2, [r6, r2] cmp r1, r2 ble _0225749C strh r2, [r0, #2] add r4, r4, #1 b _0225749C _02257484: mov r1, #2 ldrsh r2, [r0, r1] sub r2, #0x18 strh r2, [r0, #2] mov r2, #0 ldrsh r2, [r6, r2] ldrsh r1, [r0, r1] sub r2, #0x18 cmp r1, r2 bge _0225749C strh r2, [r0, #2] add r4, r4, #1 _0225749C: add r2, sp, #0 mov r1, #2 mov r3, #0 ldrsh r1, [r2, r1] ldrsh r2, [r2, r3] ldr r0, [r5, #4] bl FUN_0200C714 ldr r0, [r5, #8] cmp r0, #0 beq _022574D0 add r6, sp, #0 mov r1, #2 ldrsh r3, [r6, r1] add r1, r5, #0 add r1, #0x25 ldrb r2, [r1] ldr r1, _022574EC ; =0x0225E970 ldrsb r1, [r1, r2] mov r2, #0 ldrsh r2, [r6, r2] sub r1, r3, r1 lsl r1, r1, #0x10 asr r1, r1, #0x10 bl FUN_0200C714 _022574D0: cmp r4, #0 ble _022574E8 add r0, r5, #0 add r0, #0x4f ldrb r1, [r0] mov r0, #2 add r5, #0x4f orr r0, r1 strb r0, [r5] add r0, r7, #0 bl FUN_0200CAB4 _022574E8: pop {r3, r4, r5, r6, r7, pc} nop _022574EC: .word 0x0225E970 thumb_func_start MOD11_022574F0 MOD11_022574F0: ; 0x022574F0 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r5, r0, #0 ldr r0, [r5, #0xc] bl MOD11_0222FF68 add r6, r0, #0 ldr r0, [r5, #0xc] bl MOD11_022300C4 add r7, r0, #0 ldr r0, [r5, #0xc] bl MOD11_02230138 add r4, r0, #0 mov r0, #0x16 mov r1, #5 bl FUN_020219F4 mov r1, #0xf1 str r0, [sp, #0x18] add r0, r7, #0 lsl r1, r1, #2 bl FUN_0200A914 add r1, r5, #0 add r2, r5, #0 add r1, #0x24 add r2, #0x26 str r0, [sp, #0x1c] ldrb r1, [r1] ldrb r2, [r2] ldr r0, [r5, #0xc] bl MOD11_02230014 bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 mov r1, #0 bl FUN_0200ACF8 ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] add r0, r4, #0 bl FUN_0200B7B8 mov r0, #0 str r0, [sp] mov r0, #0xf str r0, [sp, #4] add r0, r6, #0 add r1, sp, #0x24 mov r2, #8 mov r3, #2 bl FUN_020190EC mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _02257630 ; =0x000E020F ldr r2, [sp, #0x18] str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] add r0, sp, #0x24 add r3, r1, #0 bl FUN_0201BE3C ldr r0, [r5, #4] ldr r6, [sp, #0x30] ldr r0, [r0] bl FUN_02020350 add r4, r0, #0 mov r0, #1 lsl r0, r0, #8 add r0, r6, r0 str r0, [sp, #0x20] add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] ldr r1, _02257634 ; =0x0225EC88 ldr r3, [r4, #4] lsl r7, r0, #4 ldrh r2, [r1, r7] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r1, r2 ldr r2, _02257638 ; =0x0225EC8A add r0, r6, #0 ldrh r2, [r2, r7] add r1, r3, r1 bl MIi_CpuCopy16 add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] ldr r1, _0225763C ; =0x0225EC8C ldr r3, [r4, #4] lsl r7, r0, #4 ldrh r2, [r1, r7] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r1, r2 ldr r2, _02257640 ; =0x0225EC8E ldr r0, [sp, #0x20] ldrh r2, [r2, r7] add r1, r3, r1 bl MIi_CpuCopy16 add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] ldr r3, _02257644 ; =0x0225EC90 ldr r1, [r4, #4] lsl r2, r0, #4 ldr r0, _02257638 ; =0x0225EC8A ldrh r0, [r0, r2] add r0, r6, r0 ldrh r6, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r3, r3, r6 add r1, r1, r3 ldr r3, _02257648 ; =0x0225EC92 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r5, #0x25 ldrb r0, [r5] ldr r4, [r4, #4] lsl r2, r0, #4 ldr r0, _02257640 ; =0x0225EC8E ldrh r1, [r0, r2] ldr r0, [sp, #0x20] add r0, r0, r1 ldr r1, _0225764C ; =0x0225EC94 ldrh r3, [r1, r2] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r1, r3 ldr r3, _02257650 ; =0x0225EC96 add r1, r4, r1 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r0, sp, #0x24 bl FUN_02019178 ldr r0, [sp, #0x18] bl FUN_02021A20 ldr r0, [sp, #0x1c] bl FUN_02021A20 add sp, #0x34 pop {r4, r5, r6, r7, pc} .align 2, 0 _02257630: .word 0x000E020F _02257634: .word 0x0225EC88 _02257638: .word 0x0225EC8A _0225763C: .word 0x0225EC8C _02257640: .word 0x0225EC8E _02257644: .word 0x0225EC90 _02257648: .word 0x0225EC92 _0225764C: .word 0x0225EC94 _02257650: .word 0x0225EC96 thumb_func_start MOD11_02257654 MOD11_02257654: ; 0x02257654 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] add r0, #0x49 ldrb r0, [r0] cmp r0, #0 bne _02257666 mov r0, #0x3e b _02257670 _02257666: cmp r0, #1 bne _0225766E mov r0, #0x3c b _02257670 _0225766E: mov r0, #0x40 _02257670: bl MOD11_02257F60 add r4, r0, #0 mov r0, #5 mov r1, #0x80 bl FUN_02016998 add r7, r0, #0 ldr r0, [sp] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_02020350 str r0, [sp, #4] ldr r0, [sp] ldr r1, _0225774C ; =0x0225EAB8 add r0, #0x25 ldrb r0, [r0] lsl r2, r0, #3 ldrh r3, [r1, r2] mov r1, #0x19 lsl r1, r1, #0x16 ldr r0, [sp, #4] add r1, r1, r3 ldr r3, _02257750 ; =0x0225EABA ldr r0, [r0, #4] ldrh r2, [r3, r2] add r0, r0, r1 add r1, r7, #0 bl MIi_CpuCopy16 ldr r0, [sp] ldr r1, _02257754 ; =0x0225EABC add r0, #0x25 ldrb r0, [r0] lsl r2, r0, #3 ldrh r3, [r1, r2] mov r1, #0x19 ldr r0, [sp, #4] lsl r1, r1, #0x16 add r1, r1, r3 ldr r3, _02257758 ; =0x0225EABE ldr r0, [r0, #4] ldrh r2, [r3, r2] add r0, r0, r1 add r1, r7, #0 add r1, #0x40 bl MIi_CpuCopy16 mov r2, #0 add r1, r2, #0 _022576D6: mov r0, #0 add r3, r7, r1 _022576DA: ldrb r5, [r4, r2] add r6, r4, r2 add r0, r0, #1 strb r5, [r3, #0x10] ldrb r6, [r6, #0x10] add r5, r3, #0 add r5, #0x40 strb r6, [r5] add r2, r2, #1 add r3, r3, #1 cmp r0, #0x10 blt _022576DA add r1, #0x20 add r2, #0x10 cmp r1, #0x40 blt _022576D6 ldr r0, [sp] ldr r1, [sp, #4] add r0, #0x25 ldrb r0, [r0] ldr r3, _0225774C ; =0x0225EAB8 ldr r1, [r1, #4] lsl r2, r0, #3 ldrh r4, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r3, r3, r4 add r1, r1, r3 ldr r3, _02257750 ; =0x0225EABA add r0, r7, #0 ldrh r2, [r3, r2] bl MIi_CpuCopy16 ldr r0, [sp] ldr r3, _02257754 ; =0x0225EABC add r0, #0x25 str r0, [sp] ldrb r0, [r0] ldr r1, [sp, #4] lsl r2, r0, #3 ldrh r4, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r0, r7, #0 ldr r1, [r1, #4] add r3, r3, r4 add r1, r1, r3 ldr r3, _02257758 ; =0x0225EABE add r0, #0x40 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r0, r7, #0 bl FUN_02016A18 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225774C: .word 0x0225EAB8 _02257750: .word 0x0225EABA _02257754: .word 0x0225EABC _02257758: .word 0x0225EABE thumb_func_start MOD11_0225775C MOD11_0225775C: ; 0x0225775C push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp, #4] mov r0, #5 mov r1, #0x60 bl FUN_02016998 add r4, r0, #0 mov r0, #5 mov r1, #0xc0 bl FUN_02016998 add r7, r0, #0 add r0, r4, #0 mov r1, #0xff mov r2, #0x60 bl MI_CpuFill8 ldr r0, [sp, #4] ldr r0, [r0, #0xc] bl MOD11_022300BC ldr r1, [sp, #4] str r4, [sp] add r1, #0x48 ldrb r1, [r1] mov r2, #3 mov r3, #0 bl FUN_0200BAAC ldr r0, [sp, #4] ldr r0, [r0, #4] ldr r0, [r0] bl FUN_02020350 str r0, [sp, #8] ldr r0, [sp, #4] ldr r1, _0225786C ; =0x0225EA28 add r0, #0x25 ldrb r0, [r0] lsl r2, r0, #3 ldrh r3, [r1, r2] mov r1, #0x19 lsl r1, r1, #0x16 ldr r0, [sp, #8] add r1, r1, r3 ldr r3, _02257870 ; =0x0225EA2A ldr r0, [r0, #4] ldrh r2, [r3, r2] add r0, r0, r1 add r1, r7, #0 bl MIi_CpuCopy16 ldr r0, [sp, #4] ldr r1, _02257874 ; =0x0225EA2C add r0, #0x25 ldrb r0, [r0] lsl r2, r0, #3 ldrh r3, [r1, r2] mov r1, #0x19 ldr r0, [sp, #8] lsl r1, r1, #0x16 add r1, r1, r3 ldr r3, _02257878 ; =0x0225EA2E ldr r0, [r0, #4] ldrh r2, [r3, r2] add r0, r0, r1 add r1, r7, #0 add r1, #0x60 bl MIi_CpuCopy16 mov r2, #0 add r1, r2, #0 _022577EE: mov r0, #0 add r3, r7, r1 _022577F2: ldrb r5, [r4, r2] add r6, r4, r2 add r0, r0, #1 strb r5, [r3, #0x10] ldrb r6, [r6, #0x10] add r5, r3, #0 add r5, #0x60 strb r6, [r5] add r2, r2, #1 add r3, r3, #1 cmp r0, #0x10 blt _022577F2 add r1, #0x20 add r2, #0x10 cmp r1, #0x60 blt _022577EE ldr r0, [sp, #4] ldr r1, [sp, #8] add r0, #0x25 ldrb r0, [r0] ldr r3, _0225786C ; =0x0225EA28 ldr r1, [r1, #4] lsl r2, r0, #3 ldrh r5, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r3, r3, r5 add r1, r1, r3 ldr r3, _02257870 ; =0x0225EA2A add r0, r7, #0 ldrh r2, [r3, r2] bl MIi_CpuCopy16 ldr r0, [sp, #4] ldr r3, _02257874 ; =0x0225EA2C add r0, #0x25 str r0, [sp, #4] ldrb r0, [r0] ldr r1, [sp, #8] lsl r2, r0, #3 ldrh r5, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r0, r7, #0 ldr r1, [r1, #4] add r3, r3, r5 add r1, r1, r3 ldr r3, _02257878 ; =0x0225EA2E add r0, #0x60 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r0, r4, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_02016A18 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _0225786C: .word 0x0225EA28 _02257870: .word 0x0225EA2A _02257874: .word 0x0225EA2C _02257878: .word 0x0225EA2E thumb_func_start MOD11_0225787C MOD11_0225787C: ; 0x0225787C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #5 mov r1, #0x60 bl FUN_02016998 mov r1, #0xff mov r2, #0x60 add r4, r0, #0 bl MI_CpuFill8 ldr r0, [r5, #0xc] bl MOD11_022300B4 str r4, [sp] add r1, r6, #0 mov r2, #3 mov r3, #1 bl FUN_0200BAAC ldr r0, [r5, #4] ldr r0, [r0] bl FUN_02020350 add r6, r0, #0 add r0, r5, #0 add r0, #0x25 ldrb r0, [r0] mov r7, #0x19 ldr r3, _022578F8 ; =0x0225EA58 lsl r2, r0, #3 ldrh r3, [r3, r2] lsl r7, r7, #0x16 ldr r1, [r6, #4] add r3, r7, r3 add r1, r1, r3 ldr r3, _022578FC ; =0x0225EA5A add r0, r4, #0 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r5, #0x25 ldrb r0, [r5] ldr r3, _02257900 ; =0x0225EA5C ldr r1, [r6, #4] lsl r2, r0, #3 ldrh r3, [r3, r2] ldr r0, _022578FC ; =0x0225EA5A add r3, r7, r3 add r1, r1, r3 ldrh r0, [r0, r2] ldr r3, _02257904 ; =0x0225EA5E ldrh r2, [r3, r2] add r0, r4, r0 bl MIi_CpuCopy16 add r0, r4, #0 bl FUN_02016A18 pop {r3, r4, r5, r6, r7, pc} nop _022578F8: .word 0x0225EA58 _022578FC: .word 0x0225EA5A _02257900: .word 0x0225EA5C _02257904: .word 0x0225EA5E thumb_func_start MOD11_02257908 MOD11_02257908: ; 0x02257908 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #5 mov r1, #0x60 bl FUN_02016998 mov r1, #0xff mov r2, #0x60 add r4, r0, #0 bl MI_CpuFill8 ldr r0, [r5, #0xc] bl MOD11_022300B4 str r4, [sp] ldr r1, [r5, #0x2c] mov r2, #3 mov r3, #0 bl FUN_0200BAAC ldr r0, [r5, #4] ldr r0, [r0] bl FUN_02020350 add r1, r0, #0 add r5, #0x25 ldrb r0, [r5] ldr r3, _02257960 ; =0x0225E9F8 ldr r1, [r1, #4] lsl r2, r0, #2 ldrh r5, [r3, r2] mov r3, #0x19 lsl r3, r3, #0x16 add r3, r5, r3 add r1, r1, r3 ldr r3, _02257964 ; =0x0225E9FA add r0, r4, #0 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r0, r4, #0 bl FUN_02016A18 pop {r3, r4, r5, pc} .align 2, 0 _02257960: .word 0x0225E9F8 _02257964: .word 0x0225E9FA thumb_func_start MOD11_02257968 MOD11_02257968: ; 0x02257968 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x4b ldrb r0, [r0] cmp r0, #1 bne _0225797C mov r0, #0x3b bl MOD11_02257F60 b _02257982 _0225797C: mov r0, #0x38 bl MOD11_02257F60 _02257982: add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0] bl FUN_02020350 add r5, #0x25 add r1, r0, #0 ldrb r0, [r5] lsl r2, r0, #2 add r0, r4, #0 ldr r4, [r1, #4] ldr r1, _022579B0 ; =0x0225E9C8 ldrh r3, [r1, r2] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r3, r1 ldr r3, _022579B4 ; =0x0225E9CA add r1, r4, r1 ldrh r2, [r3, r2] bl MIi_CpuCopy16 pop {r3, r4, r5, pc} nop _022579B0: .word 0x0225E9C8 _022579B4: .word 0x0225E9CA thumb_func_start MOD11_022579B8 MOD11_022579B8: ; 0x022579B8 push {r3, r4, r5, lr} add r5, r0, #0 add r0, r1, #0 bl MOD11_02257F60 add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0] bl FUN_02020350 add r5, #0x25 add r1, r0, #0 ldrb r0, [r5] lsl r2, r0, #2 add r0, r4, #0 ldr r4, [r1, #4] ldr r1, _022579F0 ; =0x0225E998 ldrh r3, [r1, r2] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r3, r1 ldr r3, _022579F4 ; =0x0225E99A add r1, r4, r1 ldrh r2, [r3, r2] bl MIi_CpuCopy16 pop {r3, r4, r5, pc} nop _022579F0: .word 0x0225E998 _022579F4: .word 0x0225E99A thumb_func_start MOD11_022579F8 MOD11_022579F8: ; 0x022579F8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r4, r0, #0 ldr r0, [r4, #0xc] add r5, r1, #0 bl MOD11_0222FF68 add r6, r0, #0 ldr r0, [r4, #0xc] bl MOD11_022300C4 mov r1, #1 lsl r1, r1, #0xa add r2, r5, #0 tst r2, r1 beq _02257A20 sub r1, #0x4a bl FUN_0200A914 b _02257A26 _02257A20: add r1, #0xc4 bl FUN_0200A914 _02257A26: add r7, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0xf str r0, [sp, #4] add r0, r6, #0 add r1, sp, #0x18 mov r2, #0xd mov r3, #2 bl FUN_020190EC mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _02257AD0 ; =0x000E020F add r2, r7, #0 str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] add r0, sp, #0x18 add r3, r1, #0 bl FUN_0201BE3C ldr r0, [r4, #4] ldr r5, [sp, #0x24] ldr r0, [r0] bl FUN_02020350 add r4, r0, #0 mov r2, #0x1a mov r6, #0x19 lsl r2, r2, #4 lsl r6, r6, #0x16 add r2, #0xa0 ldr r1, [r4, #4] add r2, r6, r2 add r1, r1, r2 add r0, r5, #0 mov r2, #0xc0 bl MIi_CpuCopy16 mov r2, #0xd mov r0, #0x1a lsl r2, r2, #6 lsl r0, r0, #4 ldr r1, [r4, #4] add r2, r6, r2 add r1, r1, r2 add r0, r5, r0 mov r2, #0xc0 bl MIi_CpuCopy16 mov r2, #0xa lsl r2, r2, #8 add r0, r5, #0 ldr r1, [r4, #4] add r2, r6, r2 add r1, r1, r2 add r0, #0xc0 mov r2, #0xe0 bl MIi_CpuCopy16 mov r0, #0x1a mov r1, #0xb lsl r0, r0, #4 lsl r1, r1, #8 add r0, r5, r0 ldr r2, [r4, #4] add r1, r6, r1 add r1, r2, r1 add r0, #0xc0 mov r2, #0xe0 bl MIi_CpuCopy16 add r0, sp, #0x18 bl FUN_02019178 add r0, r7, #0 bl FUN_02021A20 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _02257AD0: .word 0x000E020F thumb_func_start MOD11_02257AD4 MOD11_02257AD4: ; 0x02257AD4 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r4, r0, #0 ldr r0, [r4, #0xc] add r5, r1, #0 bl MOD11_0222FF68 str r0, [sp, #0x1c] ldr r0, [r4, #0xc] bl MOD11_022300C4 str r0, [sp, #0x20] ldr r0, [r4, #0xc] bl MOD11_02230138 add r7, r0, #0 mov r0, #0x1e mov r1, #5 bl FUN_020219F4 mov r1, #1 add r6, r0, #0 lsl r1, r1, #0xa add r0, r5, #0 tst r0, r1 beq _02257B14 ldr r0, [sp, #0x20] sub r1, #0x49 bl FUN_0200A914 str r0, [sp, #0x18] b _02257B1E _02257B14: ldr r0, [sp, #0x20] add r1, #0xc5 bl FUN_0200A914 str r0, [sp, #0x18] _02257B1E: mov r0, #1 str r0, [sp] add r2, r4, #0 str r0, [sp, #4] add r2, #0x27 ldrb r2, [r2] add r0, r7, #0 mov r1, #0 mov r3, #2 bl FUN_0200AD38 ldr r2, [sp, #0x18] add r0, r7, #0 add r1, r6, #0 bl FUN_0200B7B8 mov r0, #0 str r0, [sp] mov r0, #0xf str r0, [sp, #4] ldr r0, [sp, #0x1c] add r1, sp, #0x24 mov r2, #0xd mov r3, #2 bl FUN_020190EC mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _02257BE8 ; =0x000E020F add r2, r6, #0 str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] add r0, sp, #0x24 add r3, r1, #0 bl FUN_0201BE3C ldr r0, [r4, #4] ldr r5, [sp, #0x30] ldr r0, [r0] bl FUN_02020350 add r4, r0, #0 mov r7, #0x19 mov r2, #0x11 lsl r7, r7, #0x16 lsl r2, r2, #6 ldr r1, [r4, #4] add r2, r7, r2 add r1, r1, r2 add r0, r5, #0 mov r2, #0xc0 bl MIi_CpuCopy16 mov r2, #0x15 mov r0, #0x1a lsl r2, r2, #6 lsl r0, r0, #4 ldr r1, [r4, #4] add r2, r7, r2 add r1, r1, r2 add r0, r5, r0 mov r2, #0xc0 bl MIi_CpuCopy16 mov r2, #3 lsl r2, r2, #0xa add r0, r5, #0 ldr r1, [r4, #4] add r2, r7, r2 add r1, r1, r2 add r0, #0xc0 mov r2, #0xe0 bl MIi_CpuCopy16 mov r0, #0x1a mov r1, #0xd lsl r0, r0, #4 lsl r1, r1, #8 add r0, r5, r0 ldr r2, [r4, #4] add r1, r7, r1 add r1, r2, r1 add r0, #0xc0 mov r2, #0xe0 bl MIi_CpuCopy16 add r0, sp, #0x24 bl FUN_02019178 add r0, r6, #0 bl FUN_02021A20 ldr r0, [sp, #0x18] bl FUN_02021A20 add sp, #0x34 pop {r4, r5, r6, r7, pc} .align 2, 0 _02257BE8: .word 0x000E020F thumb_func_start MOD11_02257BEC MOD11_02257BEC: ; 0x02257BEC push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r4, r1, #0 bne _02257C10 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r3, r5, #0 ldr r0, [r5, #0x2c] ldr r1, [r5, #0x28] ldr r2, [r5, #0x30] add r3, #0x34 bl MOD11_02257DE8 add r6, r0, #0 b _02257C48 _02257C10: ldr r0, [r5, #0x38] ldr r1, [r5, #0x40] ldr r2, [r5, #0x3c] mov r3, #0xb bl MOD11_02257F20 add r1, r0, #0 bne _02257C22 mov r1, #1 _02257C22: ldr r6, [r5, #0x40] add r0, r6, #0 bl _s32_div_f bl abs mov r1, #0xb lsl r0, r0, #0x10 add r3, r5, #0 str r1, [sp] lsr r0, r0, #0x10 str r0, [sp, #4] ldr r0, [r5, #0x3c] ldr r1, [r5, #0x38] add r2, r6, #0 add r3, #0x44 bl MOD11_02257DE8 add r6, r0, #0 _02257C48: cmp r4, #0 bne _02257C5A add r0, r5, #0 add r0, #0x4f ldrb r0, [r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #1 beq _02257C64 _02257C5A: lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 bl MOD11_02257C80 _02257C64: mov r0, #0 mvn r0, r0 cmp r6, r0 bne _02257C7A cmp r4, #0 bne _02257C76 mov r0, #0 str r0, [r5, #0x34] b _02257C7A _02257C76: mov r0, #0 str r0, [r5, #0x44] _02257C7A: add r0, r6, #0 add sp, #8 pop {r4, r5, r6, pc} thumb_func_start MOD11_02257C80 MOD11_02257C80: ; 0x02257C80 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r0, #0 ldr r0, [r6, #4] add r4, r1, #0 ldr r0, [r0] bl FUN_02020350 add r5, r0, #0 cmp r4, #0 beq _02257C9E cmp r4, #1 beq _02257D50 add sp, #0x1c pop {r4, r5, r6, r7, pc} _02257C9E: add r0, sp, #0x10 str r0, [sp] mov r0, #6 str r0, [sp, #4] add r3, r6, #0 ldr r0, [r6, #0x2c] ldr r1, [r6, #0x28] ldr r2, [r6, #0x30] add r3, #0x34 bl MOD11_02257EA4 mov r1, #0x30 bl FUN_02079A24 cmp r0, #1 beq _02257CCE cmp r0, #2 beq _02257CCA cmp r0, #3 bne _02257CCE mov r0, #2 b _02257CD0 _02257CCA: mov r0, #0xb b _02257CD0 _02257CCE: mov r0, #0x14 _02257CD0: bl MOD11_02257F60 str r0, [sp, #0xc] add r0, r6, #0 add r0, #0x25 ldrb r0, [r0] mov r4, #0 lsl r1, r0, #3 ldr r0, _02257DE0 ; =0x0225EA8A ldrh r0, [r0, r1] lsr r7, r0, #5 _02257CE6: cmp r4, r7 add r0, sp, #0x10 bge _02257D16 add r2, r6, #0 add r2, #0x25 ldrb r2, [r2] ldrb r0, [r0, r4] lsl r3, r2, #3 ldr r2, _02257DE4 ; =0x0225EA88 lsl r1, r0, #5 ldrh r3, [r2, r3] ldr r0, [sp, #0xc] mov r2, #0x19 lsl r2, r2, #0x16 add r0, r0, r1 add r3, r2, r3 lsl r2, r4, #5 ldr r1, [r5, #4] add r2, r3, r2 add r1, r1, r2 mov r2, #0x20 bl MIi_CpuCopy16 b _02257D42 _02257D16: ldrb r0, [r0, r4] ldr r2, [r5, #4] lsl r1, r0, #5 ldr r0, [sp, #0xc] add r0, r0, r1 add r1, r6, #0 add r1, #0x25 ldrb r1, [r1] lsl r3, r1, #3 ldr r1, _02257DE4 ; =0x0225EA88 add r1, r1, r3 ldrh r3, [r1, #4] mov r1, #0x19 lsl r1, r1, #0x16 add r1, r1, r3 sub r3, r4, r7 lsl r3, r3, #5 add r1, r1, r3 add r1, r2, r1 mov r2, #0x20 bl MIi_CpuCopy16 _02257D42: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #6 blo _02257CE6 add sp, #0x1c pop {r4, r5, r6, r7, pc} _02257D50: add r0, sp, #0x10 str r0, [sp] mov r0, #0xb str r0, [sp, #4] add r3, r6, #0 ldr r0, [r6, #0x3c] ldr r1, [r6, #0x38] ldr r2, [r6, #0x40] add r3, #0x44 bl MOD11_02257EA4 add r6, #0x48 ldrb r0, [r6] cmp r0, #0x64 bne _02257D80 mov r0, #0 add r2, r0, #0 add r1, sp, #0x10 _02257D74: strb r2, [r1, r0] add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0xb blo _02257D74 _02257D80: mov r0, #0x1d bl MOD11_02257F60 add r6, r0, #0 mov r1, #0x19 mov r0, #0x1a lsl r1, r1, #0x16 lsl r0, r0, #6 add r0, r1, r0 str r0, [sp, #8] mov r0, #0xe lsl r0, r0, #8 mov r4, #0 add r7, r1, r0 _02257D9C: cmp r4, #4 add r0, sp, #0x10 bhs _02257DBA ldrb r0, [r0, r4] ldr r1, [sp, #8] lsl r2, r4, #5 lsl r0, r0, #5 add r1, r1, r2 ldr r3, [r5, #4] add r0, r6, r0 add r1, r3, r1 mov r2, #0x20 bl MIi_CpuCopy16 b _02257DD0 _02257DBA: ldrb r0, [r0, r4] sub r2, r4, #4 lsl r2, r2, #5 lsl r0, r0, #5 ldr r1, [r5, #4] add r2, r7, r2 add r1, r1, r2 add r0, r6, r0 mov r2, #0x20 bl MIi_CpuCopy16 _02257DD0: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xb blo _02257D9C add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _02257DE0: .word 0x0225EA8A _02257DE4: .word 0x0225EA88 thumb_func_start MOD11_02257DE8 MOD11_02257DE8: ; 0x02257DE8 push {r4, r5, r6, lr} add r6, r2, #0 add r2, sp, #0 add r5, r3, #0 ldrb r2, [r2, #0x10] mov r3, #2 ldr r4, [r5] lsl r2, r2, #0x1b lsl r3, r3, #0x1e lsr r2, r2, #0x18 cmp r4, r3 bne _02257E0C cmp r0, r2 bge _02257E0A lsl r3, r1, #8 str r3, [r5] b _02257E0C _02257E0A: str r1, [r5] _02257E0C: sub r4, r1, r6 bpl _02257E14 mov r4, #0 b _02257E1A _02257E14: cmp r4, r0 ble _02257E1A add r4, r0, #0 _02257E1A: cmp r0, r2 bge _02257E32 ldr r3, [r5] asr r1, r3, #8 cmp r4, r1 bne _02257E3E lsl r1, r3, #0x18 lsr r1, r1, #0x18 bne _02257E3E mov r0, #0 mvn r0, r0 pop {r4, r5, r6, pc} _02257E32: ldr r1, [r5] cmp r4, r1 bne _02257E3E mov r0, #0 mvn r0, r0 pop {r4, r5, r6, pc} _02257E3E: cmp r0, r2 bge _02257E7E lsl r0, r0, #8 add r1, r2, #0 bl _s32_div_f cmp r6, #0 ldr r1, [r5] bge _02257E62 add r0, r1, r0 str r0, [r5] asr r0, r0, #8 cmp r0, r4 blt _02257EA2 lsl r0, r4, #8 str r0, [r5] add r0, r4, #0 pop {r4, r5, r6, pc} _02257E62: sub r1, r1, r0 str r1, [r5] asr r0, r1, #8 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0 ble _02257E72 add r0, r0, #1 _02257E72: cmp r0, r4 bgt _02257EA2 lsl r0, r4, #8 str r0, [r5] add r0, r4, #0 pop {r4, r5, r6, pc} _02257E7E: cmp r6, #0 ldr r1, [r5] add r0, sp, #0 bge _02257E94 ldrh r0, [r0, #0x14] add r0, r1, r0 str r0, [r5] cmp r0, r4 ble _02257EA0 str r4, [r5] b _02257EA0 _02257E94: ldrh r0, [r0, #0x14] sub r0, r1, r0 str r0, [r5] cmp r0, r4 bge _02257EA0 str r4, [r5] _02257EA0: ldr r0, [r5] _02257EA2: pop {r4, r5, r6, pc} thumb_func_start MOD11_02257EA4 MOD11_02257EA4: ; 0x02257EA4 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r5, [sp, #0x18] sub r7, r1, r2 bpl _02257EB2 mov r7, #0 b _02257EB8 _02257EB2: cmp r7, r6 ble _02257EB8 add r7, r6, #0 _02257EB8: add r0, sp, #8 ldrb r4, [r0, #0x14] mov r1, #0 lsl r2, r4, #3 cmp r4, #0 ble _02257ECE add r0, r1, #0 _02257EC6: strb r0, [r5, r1] add r1, r1, #1 cmp r1, r4 blt _02257EC6 _02257ECE: cmp r6, r2 ldr r1, [r3] bhs _02257EE2 add r0, r1, #0 mul r0, r2 add r1, r6, #0 bl _u32_div_f lsr r0, r0, #8 b _02257EEC _02257EE2: add r0, r1, #0 mul r0, r2 add r1, r6, #0 bl _u32_div_f _02257EEC: add r2, r0, #0 cmp r0, #0 bne _02257EFC cmp r7, #0 ble _02257EFC mov r2, #1 strb r2, [r5] b _02257F18 _02257EFC: mov r3, #0 cmp r4, #0 ble _02257F18 mov r1, #8 _02257F04: cmp r0, #8 blo _02257F0E strb r1, [r5, r3] sub r0, #8 b _02257F12 _02257F0E: strb r0, [r5, r3] b _02257F18 _02257F12: add r3, r3, #1 cmp r3, r4 blt _02257F04 _02257F18: lsl r0, r2, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02257F20 MOD11_02257F20: ; 0x02257F20 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 lsl r0, r3, #0x1b add r5, r2, #0 lsr r6, r0, #0x18 sub r4, r7, r1 bpl _02257F32 mov r4, #0 b _02257F38 _02257F32: cmp r4, r5 ble _02257F38 add r4, r5, #0 _02257F38: add r0, r7, #0 mul r0, r6 add r1, r5, #0 bl _s32_div_f add r7, r0, #0 add r0, r4, #0 mul r0, r6 add r1, r5, #0 bl _s32_div_f lsl r1, r7, #0x18 lsl r0, r0, #0x18 asr r1, r1, #0x18 asr r0, r0, #0x18 sub r0, r1, r0 bl abs pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_02257F60 MOD11_02257F60: ; 0x02257F60 ldr r1, _02257F68 ; =0x0225ECE8 lsl r0, r0, #5 add r0, r1, r0 bx lr .align 2, 0 _02257F68: .word 0x0225ECE8 thumb_func_start MOD11_02257F6C MOD11_02257F6C: ; 0x02257F6C push {r3, lr} cmp r0, #5 bhi _02257FB8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02257F7E: ; jump table .short _02257F8A - _02257F7E - 2 ; case 0 .short _02257FA4 - _02257F7E - 2 ; case 1 .short _02257FA8 - _02257F7E - 2 ; case 2 .short _02257FAC - _02257F7E - 2 ; case 3 .short _02257FB0 - _02257F7E - 2 ; case 4 .short _02257FB4 - _02257F7E - 2 ; case 5 _02257F8A: mov r0, #2 lsl r0, r0, #8 tst r0, r1 beq _02257F96 mov r0, #7 pop {r3, pc} _02257F96: mov r0, #0x20 tst r0, r1 beq _02257FA0 mov r0, #6 pop {r3, pc} _02257FA0: mov r0, #0 pop {r3, pc} _02257FA4: mov r0, #1 pop {r3, pc} _02257FA8: mov r0, #2 pop {r3, pc} _02257FAC: mov r0, #3 pop {r3, pc} _02257FB0: mov r0, #4 pop {r3, pc} _02257FB4: mov r0, #5 pop {r3, pc} _02257FB8: bl ErrorHandling mov r0, #0 pop {r3, pc} thumb_func_start MOD11_02257FC0 MOD11_02257FC0: ; 0x02257FC0 push {r3, lr} cmp r0, #7 bhi _02257FFE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02257FD2: ; jump table .short _02257FE2 - _02257FD2 - 2 ; case 0 .short _02257FE6 - _02257FD2 - 2 ; case 1 .short _02257FEA - _02257FD2 - 2 ; case 2 .short _02257FEE - _02257FD2 - 2 ; case 3 .short _02257FF2 - _02257FD2 - 2 ; case 4 .short _02257FF6 - _02257FD2 - 2 ; case 5 .short _02257FFA - _02257FD2 - 2 ; case 6 .short _02257FFA - _02257FD2 - 2 ; case 7 _02257FE2: ldr r0, _02258008 ; =0x0225EBEC pop {r3, pc} _02257FE6: ldr r0, _0225800C ; =0x0225EC20 pop {r3, pc} _02257FEA: ldr r0, _02258010 ; =0x0225EAE8 pop {r3, pc} _02257FEE: ldr r0, _02258014 ; =0x0225EB1C pop {r3, pc} _02257FF2: ldr r0, _02258018 ; =0x0225EB84 pop {r3, pc} _02257FF6: ldr r0, _0225801C ; =0x0225EC54 pop {r3, pc} _02257FFA: ldr r0, _02258020 ; =0x0225EBB8 pop {r3, pc} _02257FFE: bl ErrorHandling mov r0, #0 pop {r3, pc} nop _02258008: .word 0x0225EBEC _0225800C: .word 0x0225EC20 _02258010: .word 0x0225EAE8 _02258014: .word 0x0225EB1C _02258018: .word 0x0225EB84 _0225801C: .word 0x0225EC54 _02258020: .word 0x0225EBB8 thumb_func_start MOD11_02258024 MOD11_02258024: ; 0x02258024 push {r3, lr} cmp r0, #7 bhi _0225804E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02258036: ; jump table .short _02258046 - _02258036 - 2 ; case 0 .short _0225804A - _02258036 - 2 ; case 1 .short _02258046 - _02258036 - 2 ; case 2 .short _0225804A - _02258036 - 2 ; case 3 .short _02258046 - _02258036 - 2 ; case 4 .short _0225804A - _02258036 - 2 ; case 5 .short _02258046 - _02258036 - 2 ; case 6 .short _02258046 - _02258036 - 2 ; case 7 _02258046: ldr r0, _02258058 ; =0x0225EB50 pop {r3, pc} _0225804A: mov r0, #0 pop {r3, pc} _0225804E: bl ErrorHandling mov r0, #0 pop {r3, pc} nop _02258058: .word 0x0225EB50 thumb_func_start MOD11_0225805C MOD11_0225805C: ; 0x0225805C push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0 strb r0, [r6] mov r0, #5 mov r1, #0xc bl FUN_02016998 mov r1, #0 mov r2, #0xc add r4, r0, #0 bl MI_CpuFill8 mov r2, #0xfa str r5, [r4] ldr r0, _0225808C ; =MOD11_02258090 add r1, r4, #0 lsl r2, r2, #2 str r6, [r4, #4] bl FUN_0200CA44 pop {r4, r5, r6, pc} nop _0225808C: .word MOD11_02258090 thumb_func_start MOD11_02258090 MOD11_02258090: ; 0x02258090 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 add r7, r0, #0 ldr r0, [r4] ldr r0, [r0, #0xc] bl MOD11_02230080 add r5, r0, #0 ldr r0, [r4] ldr r0, [r0, #0xc] bl MOD11_022300CC add r6, r0, #0 ldrb r0, [r4, #8] cmp r0, #0 beq _022580BC cmp r0, #1 beq _022580DA cmp r0, #2 beq _02258112 b _0225814A _022580BC: ldr r1, _02258174 ; =0x00004E27 add r0, r5, #0 mov r2, #1 bl FUN_0200C344 add r5, r0, #0 ldr r0, [r4] add r1, r5, #0 ldr r0, [r0, #4] bl FUN_0200C66C strb r5, [r4, #9] ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] _022580DA: mov r0, #0xa ldrsb r1, [r4, r0] add r1, r1, #4 strb r1, [r4, #0xa] ldrsb r0, [r4, r0] cmp r0, #0x10 blt _022580F2 mov r0, #0x10 strb r0, [r4, #0xa] ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] _022580F2: ldrb r0, [r4, #0xa] mov r1, #2 mov r3, #1 str r0, [sp] ldr r0, _02258178 ; =0x000073A5 str r0, [sp, #4] ldrb r2, [r4, #9] add r0, r6, #0 lsl r2, r2, #4 add r2, #0xf lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl FUN_020039E8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02258112: mov r0, #0xa ldrsb r1, [r4, r0] sub r1, r1, #4 strb r1, [r4, #0xa] ldrsb r0, [r4, r0] cmp r0, #0 bgt _0225812A mov r0, #0 strb r0, [r4, #0xa] ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] _0225812A: ldrb r0, [r4, #0xa] mov r1, #2 mov r3, #1 str r0, [sp] ldr r0, _02258178 ; =0x000073A5 str r0, [sp, #4] ldrb r2, [r4, #9] add r0, r6, #0 lsl r2, r2, #4 add r2, #0xf lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl FUN_020039E8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _0225814A: ldr r1, _0225817C ; =0x00004E26 add r0, r5, #0 mov r2, #1 bl FUN_0200C344 add r1, r0, #0 ldr r0, [r4] ldr r0, [r0, #4] bl FUN_0200C66C ldr r0, [r4, #4] mov r1, #1 strb r1, [r0] add r0, r4, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02258174: .word 0x00004E27 _02258178: .word 0x000073A5 _0225817C: .word 0x00004E26 thumb_func_start MOD11_02258180 MOD11_02258180: ; 0x02258180 bx lr .align 2, 0 thumb_func_start MOD11_02258184 MOD11_02258184: ; 0x02258184 bx lr .align 2, 0 thumb_func_start MOD11_02258188 MOD11_02258188: ; 0x02258188 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 bne _022581A6 add r0, r4, #0 mov r1, #0 add r0, #0x54 strh r1, [r0] ldr r0, _022581A8 ; =MOD11_022581D4 ldr r2, _022581AC ; =0x000003F2 add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x50] _022581A6: pop {r4, pc} .align 2, 0 _022581A8: .word MOD11_022581D4 _022581AC: .word 0x000003F2 thumb_func_start MOD11_022581B0 MOD11_022581B0: ; 0x022581B0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 beq _022581C2 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x50] _022581C2: add r0, r4, #0 mov r1, #0 add r0, #0x54 strh r1, [r0] add r0, r4, #0 add r2, r1, #0 bl MOD11_022572C8 pop {r4, pc} thumb_func_start MOD11_022581D4 MOD11_022581D4: ; 0x022581D4 push {r3, r4, r5, lr} add r4, r1, #0 add r1, #0x54 ldrh r2, [r1] add r1, r4, #0 add r1, #0x54 add r2, #0x14 strh r2, [r1] add r1, r4, #0 add r1, #0x54 ldrh r2, [r1] mov r1, #0x5a add r0, r4, #0 lsl r1, r1, #2 add r0, #0x54 cmp r2, r1 blo _022581FC ldrh r2, [r0] sub r1, r2, r1 strh r1, [r0] _022581FC: add r0, r4, #0 add r0, #0x54 ldrh r0, [r0] bl FUN_0201B93C mov r2, #6 asr r1, r0, #0x1f lsl r2, r2, #0xa mov r3, #0 bl _ll_mul mov r2, #2 add r3, r0, #0 add r5, r1, #0 mov r1, #0 lsl r2, r2, #0xa add r0, r4, #0 add r3, r3, r2 adc r5, r1 lsl r2, r5, #0x14 lsr r3, r3, #0xc orr r3, r2 asr r2, r3, #0xb lsr r2, r2, #0x14 add r2, r3, r2 asr r2, r2, #0xc bl MOD11_022572C8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_02258238 MOD11_02258238: ; 0x02258238 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, [r5, #4] bl MOD11_02230078 str r0, [sp, #0x20] ldr r0, [r5, #4] bl MOD11_02230080 add r7, r0, #0 ldr r0, [r5, #4] bl MOD11_02230C68 add r6, r0, #0 ldrb r0, [r5, #8] cmp r0, #0 ldrb r0, [r5, #9] bne _02258274 lsl r1, r0, #1 ldr r0, _02258320 ; =0x0225F5C0 ldrh r3, [r0, r1] ldr r0, _02258324 ; =0x00004E2D mov r1, #0x58 str r1, [sp, #0x1c] add r4, r0, #0 mov r1, #0x59 sub r4, #8 str r1, [sp, #0x18] b _02258288 _02258274: lsl r1, r0, #1 ldr r0, _02258328 ; =0x0225F5A8 ldrh r3, [r0, r1] ldr r0, _0225832C ; =0x00004E2E mov r1, #0x5b str r1, [sp, #0x1c] add r4, r0, #0 mov r1, #0x5c sub r4, #8 str r1, [sp, #0x18] _02258288: mov r1, #1 str r1, [sp] str r1, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x20] add r1, r7, #0 mov r2, #0x1b bl FUN_0200C00C ldr r0, [r5, #4] bl MOD11_022300CC mov r1, #0x1b str r1, [sp] ldrb r1, [r5, #9] mov r2, #6 add r3, r1, #0 mul r3, r2 ldr r2, _02258330 ; =0x0225F5D8 lsl r1, r6, #1 add r2, r2, r3 ldrh r1, [r1, r2] ldr r2, [sp, #0x20] add r3, r7, #0 str r1, [sp, #4] mov r1, #0 str r1, [sp, #8] mov r1, #1 str r1, [sp, #0xc] str r1, [sp, #0x10] ldr r1, _02258334 ; =0x00004E29 str r1, [sp, #0x14] mov r1, #2 bl FUN_0200C0DC ldr r0, [r5, #4] bl MOD11_022300CC mov r1, #0 str r1, [sp] mov r1, #0x20 str r1, [sp, #4] mov r1, #0x70 str r1, [sp, #8] ldrb r2, [r5, #9] mov r3, #6 lsl r5, r6, #1 mul r3, r2 ldr r2, _02258330 ; =0x0225F5D8 mov r1, #0x1b add r2, r2, r3 ldrh r2, [r5, r2] mov r3, #5 bl FUN_020030E8 mov r0, #1 str r0, [sp] ldr r0, [sp, #0x20] ldr r3, [sp, #0x1c] add r1, r7, #0 mov r2, #0x1b str r4, [sp, #4] bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, [sp, #0x20] ldr r3, [sp, #0x18] add r1, r7, #0 mov r2, #0x1b str r4, [sp, #4] bl FUN_0200C13C add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _02258320: .word 0x0225F5C0 _02258324: .word 0x00004E2D _02258328: .word 0x0225F5A8 _0225832C: .word 0x00004E2E _02258330: .word 0x0225F5D8 _02258334: .word 0x00004E29 thumb_func_start MOD11_02258338 MOD11_02258338: ; 0x02258338 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD11_02230078 add r5, r0, #0 ldr r0, [r4, #4] bl MOD11_02230080 add r1, r0, #0 add r0, r5, #0 ldrb r3, [r4, #8] mov r2, #0x34 ldr r5, _02258368 ; =0x0225F61C mul r2, r3 add r2, r5, r2 bl FUN_0200C154 str r0, [r4] ldr r0, [r0] bl FUN_0200C59C pop {r3, r4, r5, pc} nop _02258368: .word 0x0225F61C thumb_func_start MOD11_0225836C MOD11_0225836C: ; 0x0225836C push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _0225837E bl FUN_0200C3DC mov r0, #0 str r0, [r4] _0225837E: pop {r4, pc} thumb_func_start MOD11_02258380 MOD11_02258380: ; 0x02258380 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #4] bl MOD11_02230080 add r4, r0, #0 ldrb r0, [r5, #8] cmp r0, #0 bne _02258396 ldr r1, _022583BC ; =0x00004E2D b _02258398 _02258396: ldr r1, _022583C0 ; =0x00004E2E _02258398: add r5, r1, #0 add r0, r4, #0 sub r5, #8 bl FUN_0200C358 ldr r1, _022583C4 ; =0x00004E29 add r0, r4, #0 bl FUN_0200C368 add r0, r4, #0 add r1, r5, #0 bl FUN_0200C378 add r0, r4, #0 add r1, r5, #0 bl FUN_0200C388 pop {r3, r4, r5, pc} .align 2, 0 _022583BC: .word 0x00004E2D _022583C0: .word 0x00004E2E _022583C4: .word 0x00004E29 thumb_func_start MOD11_022583C8 MOD11_022583C8: ; 0x022583C8 push {r3, lr} ldr r0, [r0] cmp r0, #0 beq _022583D4 bl FUN_0200C644 _022583D4: pop {r3, pc} .align 2, 0 thumb_func_start MOD11_022583D8 MOD11_022583D8: ; 0x022583D8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 mov r0, #0 add r1, r5, #0 mov r2, #0x10 add r7, r3, #0 bl MIi_CpuClearFast str r4, [r5, #4] strb r6, [r5, #8] strb r7, [r5, #9] cmp r7, #0xc blt _022583FE bl ErrorHandling mov r0, #0 strb r0, [r5, #9] _022583FE: add r0, r5, #0 bl MOD11_02258238 add r0, r5, #0 bl MOD11_02258338 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0225840C MOD11_0225840C: ; 0x0225840C push {r4, lr} add r4, r0, #0 bl MOD11_0225836C add r0, r4, #0 bl MOD11_02258380 mov r0, #0 add r1, r4, #0 mov r2, #0x10 bl MIi_CpuClearFast pop {r4, pc} .align 2, 0 thumb_func_start MOD11_02258428 MOD11_02258428: ; 0x02258428 push {r4, lr} mov r1, #7 mov r0, #5 lsl r1, r1, #8 bl FUN_02016998 mov r2, #7 mov r1, #0 lsl r2, r2, #8 add r4, r0, #0 bl MI_CpuFill8 mov r1, #0 ldr r0, _0225844C ; =0x0000069F mvn r1, r1 strb r1, [r4, r0] add r0, r4, #0 pop {r4, pc} .align 2, 0 _0225844C: .word 0x0000069F thumb_func_start MOD11_02258450 MOD11_02258450: ; 0x02258450 push {r3, r4, r5, r6, r7, lr} mov r4, #0 ldr r6, _022584A4 ; =0x0225F97C add r5, r0, #0 add r7, r4, #0 _0225845A: add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 add r2, r6, #0 add r3, r7, #0 bl FUN_02016C18 add r1, r4, #4 lsl r1, r1, #0x18 ldr r2, _022584A8 ; =0x000002FF add r0, r5, #0 lsr r1, r1, #0x18 bl FUN_02018768 add r1, r4, #4 lsl r1, r1, #0x18 mov r2, #0 add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 bl FUN_020179E0 add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 bl FUN_020179E0 add r4, r4, #1 add r6, #0x1c cmp r4, #4 blo _0225845A pop {r3, r4, r5, r6, r7, pc} nop _022584A4: .word 0x0225F97C _022584A8: .word 0x000002FF thumb_func_start MOD11_022584AC MOD11_022584AC: ; 0x022584AC push {r4, r5, r6, lr} mov r4, #0 add r5, r0, #0 add r6, r4, #0 _022584B4: add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 bl FUN_0201797C add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 bl FUN_020178A0 add r4, r4, #1 cmp r4, #4 blo _022584B4 pop {r4, r5, r6, pc} thumb_func_start MOD11_022584D4 MOD11_022584D4: ; 0x022584D4 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r4, r0, #0 add r5, r1, #0 bl MOD11_02258428 add r6, r0, #0 ldr r0, _0225863C ; =0x000006A1 str r4, [r6] strb r5, [r6, r0] add r0, r4, #0 bl MOD11_022300CC str r0, [sp, #0x10] mov r0, #0xd mov r1, #5 bl FUN_02011744 ldr r2, _02258640 ; =0x000004C8 add r1, r6, #0 str r0, [r6, r2] ldr r0, _02258644 ; =MOD11_0225B794 add r2, #0x56 bl FUN_0200CA44 ldr r1, _02258648 ; =0x000006AC mov r7, #2 str r0, [r6, r1] mov r4, #0 lsl r7, r7, #0xa b _0225854E _02258512: mov r0, #5 add r1, r7, #0 bl FUN_02016998 lsl r1, r4, #2 add r1, r6, r1 str r0, [r1, #0x3c] mov r0, #5 str r0, [sp] ldr r1, _0225864C ; =0x0225F6FC lsl r2, r4, #1 ldrh r1, [r1, r2] mov r0, #7 mov r2, #1 add r3, sp, #0x18 bl FUN_02006BDC add r5, r0, #0 lsl r0, r4, #2 add r0, r6, r0 ldr r1, [r0, #0x3c] ldr r0, [sp, #0x18] add r2, r7, #0 add r0, #0xc bl MIi_CpuCopy32 add r0, r5, #0 bl FUN_02016A18 add r4, r4, #1 _0225854E: cmp r4, #7 blt _02258512 mov r1, #2 mov r0, #5 lsl r1, r1, #8 bl FUN_02016998 str r0, [r6, #0x58] mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x10] mov r1, #7 mov r2, #0xc3 mov r3, #5 bl FUN_020030E8 ldr r0, [sp, #0x10] mov r1, #1 bl FUN_020031FC mov r2, #2 ldr r1, [r6, #0x58] lsl r2, r2, #8 bl MIi_CpuCopy16 add r5, r6, #0 mov r7, #0x46 mov r4, #0 add r5, #0x68 lsl r7, r7, #2 b _022585A2 _02258592: add r0, r4, #0 mul r0, r7 add r0, r5, r0 mov r1, #0xff mov r2, #0x18 bl MI_CpuFill8 add r4, r4, #1 _022585A2: cmp r4, #4 blt _02258592 mov r0, #0 str r0, [sp, #0xc] mov r7, #6 b _022585DE _022585AE: mov r0, #0x46 ldr r1, [sp, #0xc] lsl r0, r0, #2 mul r0, r1 mov r5, #0 add r4, r6, r0 b _022585D4 _022585BC: add r0, r7, #0 bl FUN_020799E8 add r1, r0, #0 mov r0, #5 bl FUN_02016998 lsl r1, r5, #2 add r1, r4, r1 add r1, #0x80 str r0, [r1] add r5, r5, #1 _022585D4: cmp r5, #4 blt _022585BC ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] _022585DE: ldr r0, [sp, #0xc] cmp r0, #4 blt _022585AE mov r0, #5 mov r1, #0x20 bl FUN_02016998 str r0, [r6, #0x5c] mov r0, #5 mov r1, #0x20 bl FUN_02016998 str r0, [r6, #0x60] ldr r1, [r6, #0x5c] ldr r0, [r6, #0x58] mov r2, #0x20 bl MIi_CpuCopy16 mov r0, #7 mov r1, #0xca add r2, sp, #0x14 mov r3, #5 bl FUN_02006C08 add r4, r0, #0 ldr r0, [sp, #0x14] ldr r1, [r6, #0x60] ldr r0, [r0, #0xc] mov r2, #0x20 bl MIi_CpuCopy16 add r0, r4, #0 bl FUN_02016A18 bl FUN_02002BE4 bl FUN_02002C04 ldr r0, _02258650 ; =MOD11_0225B824 ldr r2, _02258654 ; =0x0000D6D8 add r1, r6, #0 bl FUN_0200CA44 str r0, [r6, #0x64] add r0, r6, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _0225863C: .word 0x000006A1 _02258640: .word 0x000004C8 _02258644: .word MOD11_0225B794 _02258648: .word 0x000006AC _0225864C: .word 0x0225F6FC _02258650: .word MOD11_0225B824 _02258654: .word 0x0000D6D8 thumb_func_start MOD11_02258658 MOD11_02258658: ; 0x02258658 push {r4, r5, r6, lr} add r6, r0, #0 bl MOD11_0225ACB0 add r0, r6, #0 bl MOD11_02258B10 add r0, r6, #0 bl MOD11_022587A8 ldr r0, _022586B4 ; =0x000004C8 ldr r0, [r6, r0] bl FUN_020117BC ldr r0, _022586B8 ; =0x000006AC ldr r0, [r6, r0] bl FUN_0200CAB4 mov r4, #0 add r5, r6, #0 _02258680: ldr r0, [r5, #0x3c] bl FUN_02016A18 add r4, r4, #1 add r5, r5, #4 cmp r4, #7 blt _02258680 ldr r0, [r6, #0x58] bl FUN_02016A18 add r0, r6, #0 bl MOD11_0225A6B0 ldr r0, [r6, #0x5c] bl FUN_02016A18 ldr r0, [r6, #0x60] bl FUN_02016A18 ldr r0, [r6, #0x64] bl FUN_0200CAB4 add r0, r6, #0 bl FUN_02016A18 pop {r4, r5, r6, pc} .align 2, 0 _022586B4: .word 0x000004C8 _022586B8: .word 0x000006AC thumb_func_start MOD11_022586BC MOD11_022586BC: ; 0x022586BC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r7, r0, #0 ldr r0, [r7] bl MOD11_02230078 add r6, r0, #0 ldr r0, [r7] bl MOD11_02230080 add r4, r0, #0 ldr r0, [r7] bl MOD11_0222FF68 add r5, r0, #0 ldr r0, [r7] bl MOD11_022300CC str r0, [sp, #0x14] mov r0, #0 str r0, [sp] mov r0, #6 lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r0, #7 mov r1, #0x11 add r2, r5, #0 mov r3, #4 bl FUN_0200687C ldr r2, _02258790 ; =0x00004E2D add r0, r6, #0 add r1, r4, #0 add r3, r2, #0 bl FUN_0206E1D4 ldr r0, [r7] bl MOD11_022300CC mov r1, #2 str r1, [sp] ldr r1, _02258794 ; =0x00004E30 add r2, r6, #0 str r1, [sp, #4] mov r1, #3 add r3, r4, #0 bl FUN_0206E198 mov r5, #0 _02258726: ldr r0, _02258798 ; =0x00004E35 add r1, r4, #0 add r0, r5, r0 str r0, [sp] add r0, r6, #0 mov r2, #2 mov r3, #0 bl FUN_0206E130 add r5, r5, #1 cmp r5, #4 blt _02258726 ldr r0, [r7] bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 beq _0225878C ldr r0, _0225879C ; =0x00004E40 ldr r3, _022587A0 ; =0x00004FB2 str r0, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #0xb str r0, [sp, #8] ldr r2, [sp, #0x14] add r0, r6, #0 add r1, r4, #0 add r3, r3, #6 bl MOD11_0225D6A4 ldr r0, _0225879C ; =0x00004E40 ldr r3, _022587A0 ; =0x00004FB2 str r0, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #0xb str r0, [sp, #8] mov r0, #0xa str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] add r0, r6, #0 add r1, r4, #0 mov r2, #5 add r3, r3, #6 bl MOD11_0225D73C ldr r1, _022587A4 ; =0x000006F8 str r0, [r7, r1] _0225878C: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02258790: .word 0x00004E2D _02258794: .word 0x00004E30 _02258798: .word 0x00004E35 _0225879C: .word 0x00004E40 _022587A0: .word 0x00004FB2 _022587A4: .word 0x000006F8 thumb_func_start MOD11_022587A8 MOD11_022587A8: ; 0x022587A8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r0, [r7] bl MOD11_02230078 ldr r0, [r7] bl MOD11_02230080 ldr r6, _02258808 ; =0x00004E35 add r5, r0, #0 mov r4, #0 _022587BE: add r0, r5, #0 add r1, r4, r6 bl FUN_0206E21C add r4, r4, #1 cmp r4, #4 blt _022587BE ldr r1, _0225880C ; =0x00004E30 add r0, r5, #0 bl FUN_0206E224 ldr r1, _02258810 ; =0x00004E2D add r0, r5, #0 add r2, r1, #0 bl FUN_0206E22C ldr r0, [r7] bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 beq _02258806 ldr r0, _02258814 ; =0x000006F8 ldr r0, [r7, r0] bl MOD11_0225D7B8 ldr r3, _02258818 ; =0x00004FA7 ldr r2, _0225881C ; =0x00004E40 add r1, r3, #0 str r3, [sp] add r0, r5, #0 add r1, #0x11 add r3, #0xb bl MOD11_0225D714 _02258806: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02258808: .word 0x00004E35 _0225880C: .word 0x00004E30 _02258810: .word 0x00004E2D _02258814: .word 0x000006F8 _02258818: .word 0x00004FA7 _0225881C: .word 0x00004E40 thumb_func_start MOD11_02258820 MOD11_02258820: ; 0x02258820 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r7, r0, #0 str r1, [sp, #0x18] str r2, [sp, #0x1c] cmp r3, #0 beq _0225883A add r1, r7, #0 add r0, r3, #0 add r1, #0x18 mov r2, #0x22 bl MI_CpuCopy8 _0225883A: ldr r0, _0225893C ; =0x000006A2 mov r1, #0 strb r1, [r7, r0] ldr r0, [r7] bl MOD11_0222FF68 str r0, [sp, #0x28] ldr r0, [r7] bl MOD11_02230078 str r0, [sp, #0x24] ldr r0, [r7] bl MOD11_02230080 str r0, [sp, #0x20] ldr r0, _02258940 ; =0x0000069F ldrsb r2, [r7, r0] mov r0, #0 mvn r0, r0 cmp r2, r0 bne _0225886C mov r0, #1 str r0, [sp, #0x1c] mov r5, #0 b _02258874 _0225886C: mov r0, #0x30 ldr r1, _02258944 ; =0x0225FAAC mul r0, r2 add r5, r1, r0 _02258874: ldr r0, [sp, #0x18] mov r1, #0x30 ldr r2, _02258944 ; =0x0225FAAC mul r1, r0 add r0, r2, r1 str r0, [sp, #0x2c] ldr r0, [r7] bl MOD11_022300CC mov r1, #2 lsl r1, r1, #8 str r1, [sp] ldr r1, [r7, #0x58] mov r2, #1 mov r3, #0 bl FUN_02003054 ldr r6, [sp, #0x2c] mov r4, #0 _0225889A: ldrh r2, [r6, #4] ldr r0, _02258948 ; =0x0000FFFF cmp r2, r0 beq _022588D0 ldr r0, [sp, #0x1c] cmp r0, #1 beq _022588AE ldrh r0, [r5, #4] cmp r2, r0 beq _022588D0 _022588AE: lsl r2, r2, #2 add r1, r4, #4 add r2, r7, r2 lsl r1, r1, #0x18 mov r3, #2 ldr r0, [sp, #0x28] ldr r2, [r2, #0x3c] lsr r1, r1, #0x18 lsl r3, r3, #0xa bl FUN_02017DFC add r1, r4, #4 lsl r1, r1, #0x18 ldr r0, [sp, #0x28] lsr r1, r1, #0x18 bl FUN_0201AC68 _022588D0: add r4, r4, #1 add r6, r6, #2 add r5, r5, #2 cmp r4, #4 blt _0225889A ldr r0, [r7] bl MOD11_022300CC mov r1, #0x1b str r1, [sp] mov r1, #0x24 str r1, [sp, #4] mov r1, #0 str r1, [sp, #8] mov r1, #7 str r1, [sp, #0xc] mov r1, #2 str r1, [sp, #0x10] ldr r1, _0225894C ; =0x00004E33 ldr r2, [sp, #0x24] str r1, [sp, #0x14] ldr r3, [sp, #0x20] mov r1, #3 bl FUN_0200C0DC ldr r1, _02258940 ; =0x0000069F ldr r0, [sp, #0x18] mov r2, #0xf strb r0, [r7, r1] mov r0, #4 str r0, [sp] ldr r0, _02258950 ; =0x04001050 mov r1, #2 mov r3, #0x1b bl G2x_SetBlendAlpha_ add r0, r7, #0 bl MOD11_0225ACB0 ldr r0, [sp, #0x2c] ldr r3, [r0, #0x28] cmp r3, #0 beq _0225892E ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] add r0, r7, #0 blx r3 _0225892E: ldr r0, _02258954 ; =MOD11_0225B700 add r1, r7, #0 mov r2, #0xa bl FUN_0200CA98 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225893C: .word 0x000006A2 _02258940: .word 0x0000069F _02258944: .word 0x0225FAAC _02258948: .word 0x0000FFFF _0225894C: .word 0x00004E33 _02258950: .word 0x04001050 _02258954: .word MOD11_0225B700 thumb_func_start MOD11_02258958 MOD11_02258958: ; 0x02258958 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 ldr r1, _02258ADC ; =0x000005D4 str r0, [sp, #0x14] ldr r0, [r0, r1] cmp r0, #0 bne _02258970 ldr r0, [sp, #0x14] add r1, #0x18 ldr r0, [r0, r1] cmp r0, #0 beq _02258974 _02258970: bl ErrorHandling _02258974: ldr r0, [sp, #0x14] ldr r0, [r0] bl MOD11_02230078 str r0, [sp, #0x18] ldr r0, [sp, #0x14] ldr r0, [r0] bl MOD11_02230080 add r7, r0, #0 mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, _02258AE0 ; =0x00004E33 add r1, r7, #0 str r0, [sp, #8] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x90 bl FUN_0200C00C mov r0, #1 str r0, [sp] ldr r0, _02258AE4 ; =0x00004E2B add r1, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x8f bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, _02258AE4 ; =0x00004E2B add r1, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x91 bl FUN_0200C13C mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, _02258AE8 ; =0x00004E34 add r1, r7, #0 str r0, [sp, #8] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x8d bl FUN_0200C00C mov r0, #1 str r0, [sp] ldr r0, _02258AEC ; =0x00004E2C add r1, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x8c bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, _02258AEC ; =0x00004E2C add r1, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x18] mov r2, #0x1b mov r3, #0x8e bl FUN_0200C13C mov r0, #0 ldr r4, [sp, #0x14] str r0, [sp, #0x1c] mov r6, #0xc mov r5, #0xf6 _02258A12: ldr r0, [sp, #0x18] ldr r2, _02258AF0 ; =0x0225F8AC add r1, r7, #0 bl FUN_0200C154 ldr r1, _02258ADC ; =0x000005D4 mov r3, #0x11 str r0, [r4, r1] add r0, r1, #0 ldr r0, [r4, r0] lsl r1, r6, #0x10 ldr r0, [r0] asr r1, r1, #0x10 mov r2, #0xd lsl r3, r3, #0x10 bl FUN_0200C720 ldr r0, _02258ADC ; =0x000005D4 mov r1, #1 ldr r0, [r4, r0] bl FUN_0200C840 ldr r0, [sp, #0x18] ldr r2, _02258AF4 ; =0x0225F8E0 add r1, r7, #0 bl FUN_0200C154 ldr r1, _02258AF8 ; =0x000005EC mov r3, #0x11 str r0, [r4, r1] add r0, r1, #0 ldr r0, [r4, r0] lsl r1, r5, #0x10 ldr r0, [r0] asr r1, r1, #0x10 mov r2, #9 lsl r3, r3, #0x10 bl FUN_0200C720 ldr r0, [sp, #0x1c] add r4, r4, #4 add r0, r0, #1 add r6, #0x13 sub r5, #0xc str r0, [sp, #0x1c] cmp r0, #6 blt _02258A12 ldr r0, [sp, #0x14] bl MOD11_02258E30 ldr r0, [sp, #0x14] ldr r0, [r0, #4] cmp r0, #0 beq _02258A82 bl ErrorHandling _02258A82: ldr r0, _02258AFC ; =MOD11_02258BE0 ldr r1, [sp, #0x14] ldr r2, _02258B00 ; =0x00000514 bl FUN_0200CA44 ldr r1, [sp, #0x14] str r0, [r1, #4] add r0, r1, #0 ldr r0, [r0] bl MOD11_022300CC add r2, r0, #0 ldr r0, _02258B04 ; =0x00004E3F ldr r3, _02258B08 ; =0x00004FB1 str r0, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #0xb str r0, [sp, #8] ldr r0, [sp, #0x18] add r1, r7, #0 add r3, r3, #6 bl MOD11_0225D3EC ldr r0, _02258B04 ; =0x00004E3F ldr r3, _02258B08 ; =0x00004FB1 str r0, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #0xb str r0, [sp, #8] mov r2, #5 str r2, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x18] add r1, r7, #0 add r3, r3, #6 bl MOD11_0225D484 ldr r2, _02258B0C ; =0x000006EC ldr r1, [sp, #0x14] str r0, [r1, r2] add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02258ADC: .word 0x000005D4 _02258AE0: .word 0x00004E33 _02258AE4: .word 0x00004E2B _02258AE8: .word 0x00004E34 _02258AEC: .word 0x00004E2C _02258AF0: .word 0x0225F8AC _02258AF4: .word 0x0225F8E0 _02258AF8: .word 0x000005EC _02258AFC: .word MOD11_02258BE0 _02258B00: .word 0x00000514 _02258B04: .word 0x00004E3F _02258B08: .word 0x00004FB1 _02258B0C: .word 0x000006EC thumb_func_start MOD11_02258B10 MOD11_02258B10: ; 0x02258B10 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, _02258BBC ; =0x000005D4 ldr r1, [r6, r0] cmp r1, #0 beq _02258B24 add r0, #0x18 ldr r0, [r6, r0] cmp r0, #0 bne _02258B28 _02258B24: bl ErrorHandling _02258B28: ldr r0, [r6] bl MOD11_02230078 ldr r0, [r6] bl MOD11_02230080 ldr r1, _02258BC0 ; =0x00004E33 add r7, r0, #0 bl FUN_0200C358 ldr r1, _02258BC4 ; =0x00004E2B add r0, r7, #0 bl FUN_0200C378 ldr r1, _02258BC4 ; =0x00004E2B add r0, r7, #0 bl FUN_0200C388 ldr r1, _02258BC8 ; =0x00004E34 add r0, r7, #0 bl FUN_0200C358 ldr r1, _02258BCC ; =0x00004E2C add r0, r7, #0 bl FUN_0200C378 ldr r1, _02258BCC ; =0x00004E2C add r0, r7, #0 bl FUN_0200C388 ldr r1, _02258BC0 ; =0x00004E33 add r0, r7, #0 bl FUN_0200C368 mov r4, #0 add r5, r6, #0 _02258B70: ldr r0, _02258BBC ; =0x000005D4 ldr r0, [r5, r0] bl FUN_0200C3DC ldr r0, _02258BBC ; =0x000005D4 mov r1, #0 str r1, [r5, r0] add r0, #0x18 ldr r0, [r5, r0] bl FUN_0200C3DC ldr r0, _02258BD0 ; =0x000005EC mov r1, #0 str r1, [r5, r0] add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _02258B70 ldr r0, [r6, #4] bl FUN_0200CAB4 ldr r3, _02258BD4 ; =0x00004FA6 mov r0, #0 str r0, [r6, #4] add r1, r3, #0 str r3, [sp] ldr r2, _02258BD8 ; =0x00004E3F add r0, r7, #0 add r1, #0x11 add r3, #0xb bl MOD11_0225D45C ldr r0, _02258BDC ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D508 pop {r3, r4, r5, r6, r7, pc} nop _02258BBC: .word 0x000005D4 _02258BC0: .word 0x00004E33 _02258BC4: .word 0x00004E2B _02258BC8: .word 0x00004E34 _02258BCC: .word 0x00004E2C _02258BD0: .word 0x000005EC _02258BD4: .word 0x00004FA6 _02258BD8: .word 0x00004E3F _02258BDC: .word 0x000006EC thumb_func_start MOD11_02258BE0 MOD11_02258BE0: ; 0x02258BE0 push {r3, r4, r5, r6, r7, lr} ldr r0, _02258D54 ; =0x00000644 add r5, r1, #0 mov r7, #0 add r4, r5, r0 mov r6, #0xc _02258BEC: ldrb r0, [r4, #3] cmp r0, #4 bhi _02258C08 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02258BFE: ; jump table .short _02258C08 - _02258BFE - 2 ; case 0 .short _02258C48 - _02258BFE - 2 ; case 1 .short _02258C5A - _02258BFE - 2 ; case 2 .short _02258CF2 - _02258BFE - 2 ; case 3 .short _02258C5A - _02258BFE - 2 ; case 4 _02258C08: ldr r0, _02258D58 ; =0x000005D4 ldr r0, [r5, r0] ldr r0, [r0] bl FUN_0200C650 cmp r0, #0 beq _02258C1C ldrb r0, [r4, #2] cmp r0, #0x57 bhs _02258C1E _02258C1C: b _02258D42 _02258C1E: mov r0, #0 strb r0, [r4, #4] mov r0, #0xa strb r0, [r4, #5] bl FUN_0201B9EC lsr r1, r0, #0x1f lsl r3, r0, #0x1d ldrb r2, [r4, #5] sub r3, r3, r1 mov r0, #0x1d ror r3, r0 add r0, r1, r3 add r0, r2, r0 strb r0, [r4, #5] mov r0, #2 strb r0, [r4, #7] ldrb r0, [r4, #3] add r0, r0, #1 strb r0, [r4, #3] b _02258D42 _02258C48: ldrb r1, [r4, #5] cmp r1, #0 beq _02258C54 sub r0, r1, #1 strb r0, [r4, #5] b _02258D42 _02258C54: add r0, r0, #1 strb r0, [r4, #3] b _02258D42 _02258C5A: ldr r0, _02258D58 ; =0x000005D4 mov r1, #2 ldr r0, [r5, r0] lsl r1, r1, #0xa bl FUN_0200C8BC mov r0, #0 ldrsh r1, [r4, r0] mov r0, #6 lsl r0, r0, #6 add r0, r1, r0 strh r0, [r4] mov r1, #0 ldrsh r1, [r4, r1] ldr r0, _02258D58 ; =0x000005D4 mov r3, #0x11 asr r2, r1, #7 lsr r2, r2, #0x18 add r2, r1, r2 asr r1, r2, #8 add r1, r1, r6 lsl r1, r1, #0x10 ldr r0, [r5, r0] asr r1, r1, #0x10 mov r2, #0xd lsl r3, r3, #0x10 bl FUN_0200C750 ldrb r0, [r4, #6] add r0, r0, #1 strb r0, [r4, #6] ldrb r1, [r4, #6] ldrb r0, [r4, #7] cmp r1, r0 blo _02258D42 mov r0, #0 strb r0, [r4, #6] ldrb r0, [r4, #3] cmp r0, #2 bne _02258CB0 add r0, r0, #1 strb r0, [r4, #3] b _02258D42 _02258CB0: ldr r0, _02258D58 ; =0x000005D4 mov r1, #0 ldr r0, [r5, r0] bl FUN_0200C898 ldr r0, _02258D58 ; =0x000005D4 lsl r1, r6, #0x10 mov r3, #0x11 ldr r0, [r5, r0] asr r1, r1, #0x10 mov r2, #0xd lsl r3, r3, #0x10 bl FUN_0200C750 mov r0, #0 strh r0, [r4] ldrb r0, [r4, #8] cmp r0, #1 bhs _02258CEA add r0, r0, #1 strb r0, [r4, #8] ldrb r0, [r4, #7] cmp r0, #1 bls _02258CE4 sub r0, r0, #1 strb r0, [r4, #7] _02258CE4: mov r0, #2 strb r0, [r4, #3] b _02258D42 _02258CEA: mov r0, #0 strb r0, [r4, #8] strb r0, [r4, #3] b _02258D42 _02258CF2: ldr r0, _02258D58 ; =0x000005D4 ldr r1, _02258D5C ; =0xFFFFF800 ldr r0, [r5, r0] bl FUN_0200C8BC mov r0, #0 ldrsh r1, [r4, r0] mov r0, #6 lsl r0, r0, #6 sub r0, r1, r0 strh r0, [r4] mov r1, #0 ldrsh r1, [r4, r1] ldr r0, _02258D58 ; =0x000005D4 mov r3, #0x11 asr r2, r1, #7 lsr r2, r2, #0x18 add r2, r1, r2 asr r1, r2, #8 add r1, r1, r6 lsl r1, r1, #0x10 ldr r0, [r5, r0] asr r1, r1, #0x10 mov r2, #0xd lsl r3, r3, #0x10 bl FUN_0200C750 ldrb r0, [r4, #6] add r0, r0, #1 strb r0, [r4, #6] ldrb r1, [r4, #7] ldrb r0, [r4, #6] lsl r1, r1, #1 cmp r0, r1 blt _02258D42 mov r0, #0 strb r0, [r4, #6] ldrb r0, [r4, #3] add r0, r0, #1 strb r0, [r4, #3] _02258D42: add r7, r7, #1 add r4, #0xa add r5, r5, #4 add r6, #0x13 cmp r7, #6 bge _02258D50 b _02258BEC _02258D50: pop {r3, r4, r5, r6, r7, pc} nop _02258D54: .word 0x00000644 _02258D58: .word 0x000005D4 _02258D5C: .word 0xFFFFF800 thumb_func_start MOD11_02258D60 MOD11_02258D60: ; 0x02258D60 push {r3, r4} ldr r2, _02258D78 ; =0x00000646 mov r4, #0 _02258D66: ldrb r3, [r1, r4] add r4, r4, #1 strb r3, [r0, r2] add r0, #0xa cmp r4, #6 blt _02258D66 pop {r3, r4} bx lr nop _02258D78: .word 0x00000646 thumb_func_start MOD11_02258D7C MOD11_02258D7C: ; 0x02258D7C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 mov r4, #0 _02258D86: ldrb r0, [r6, r4] bl MOD11_0225A400 add r1, r0, #0 ldr r0, _02258DC8 ; =0x000005D4 ldr r0, [r5, r0] ldr r0, [r0] bl FUN_02020130 ldr r0, _02258DC8 ; =0x000005D4 ldr r0, [r5, r0] ldr r0, [r0] bl FUN_0200C59C ldrb r0, [r7, r4] bl MOD11_0225A400 add r1, r0, #0 ldr r0, _02258DCC ; =0x000005EC ldr r0, [r5, r0] ldr r0, [r0] bl FUN_02020130 ldr r0, _02258DCC ; =0x000005EC ldr r0, [r5, r0] ldr r0, [r0] bl FUN_0200C59C add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _02258D86 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02258DC8: .word 0x000005D4 _02258DCC: .word 0x000005EC thumb_func_start MOD11_02258DD0 MOD11_02258DD0: ; 0x02258DD0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _02258E28 ; =0x000005D4 ldr r1, [r5, r0] cmp r1, #0 beq _02258DE4 add r0, #0x18 ldr r0, [r5, r0] cmp r0, #0 bne _02258DE8 _02258DE4: bl ErrorHandling _02258DE8: ldr r7, _02258E28 ; =0x000005D4 mov r6, #0 add r4, r5, #0 _02258DEE: ldr r0, [r4, r7] mov r1, #1 ldr r0, [r0] bl FUN_0200C63C add r6, r6, #1 add r4, r4, #4 cmp r6, #6 blt _02258DEE ldr r0, [r5] bl MOD11_0222FF74 mov r1, #1 tst r0, r1 beq _02258E24 ldr r6, _02258E2C ; =0x000005EC mov r4, #0 add r7, r1, #0 _02258E12: ldr r0, [r5, r6] add r1, r7, #0 ldr r0, [r0] bl FUN_0200C63C add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _02258E12 _02258E24: pop {r3, r4, r5, r6, r7, pc} nop _02258E28: .word 0x000005D4 _02258E2C: .word 0x000005EC thumb_func_start MOD11_02258E30 MOD11_02258E30: ; 0x02258E30 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _02258E70 ; =0x000005D4 ldr r1, [r5, r0] cmp r1, #0 beq _02258E44 add r0, #0x18 ldr r0, [r5, r0] cmp r0, #0 bne _02258E48 _02258E44: bl ErrorHandling _02258E48: ldr r7, _02258E70 ; =0x000005D4 mov r4, #0 add r6, r7, #0 add r6, #0x18 _02258E50: ldr r0, [r5, r7] mov r1, #0 ldr r0, [r0] bl FUN_0200C63C ldr r0, [r5, r6] mov r1, #0 ldr r0, [r0] bl FUN_0200C63C add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _02258E50 pop {r3, r4, r5, r6, r7, pc} nop _02258E70: .word 0x000005D4 thumb_func_start MOD11_02258E74 MOD11_02258E74: ; 0x02258E74 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _02258F4C ; =0x0000069F mov r6, #0 ldrsb r1, [r5, r0] sub r0, r6, #1 cmp r1, r0 bne _02258E88 bl ErrorHandling _02258E88: ldr r0, _02258F4C ; =0x0000069F ldr r3, _02258F50 ; =0x0225FAAC ldrsb r2, [r5, r0] mov r1, #0x30 mul r1, r2 add r4, r3, r1 ldr r1, [r4, #0x14] cmp r1, #0 beq _02258EA2 add r0, r0, #3 ldrb r0, [r5, r0] cmp r0, #1 bne _02258EA8 _02258EA2: mov r0, #0 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _02258EA8: ldr r0, [r4, #0x18] cmp r0, #0 bne _02258EB2 bl ErrorHandling _02258EB2: ldr r0, [r5] bl MOD11_0222FF74 mov r1, #1 lsl r1, r1, #0xa tst r0, r1 beq _02258ECA add r0, r5, #0 bl MOD11_0225C784 add r7, r0, #0 b _02258EE4 _02258ECA: ldr r0, [r4, #0x14] bl FUN_02020988 add r7, r0, #0 mov r0, #0 mvn r0, r0 cmp r7, r0 bne _02258EE4 add r0, r5, #0 bl MOD11_0225B8B0 add r7, r0, #0 add r6, r6, #1 _02258EE4: mov r0, #0 mvn r0, r0 str r0, [sp] cmp r7, r0 bne _02258EF2 mov r2, #0xff b _02258EFE _02258EF2: ldr r1, [r4, #0x18] lsl r0, r7, #2 ldr r0, [r1, r0] str r0, [sp] ldr r0, [r4, #0x1c] ldrb r2, [r0, r7] _02258EFE: ldr r3, [r4, #0x2c] cmp r3, #0 beq _02258F46 ldr r1, [sp] add r0, r5, #0 blx r3 mov r1, #0 mvn r1, r1 str r0, [sp] cmp r0, r1 beq _02258F46 ldr r2, [r4, #0x24] cmp r2, #0 beq _02258F20 add r0, r5, #0 add r1, r7, #0 blx r2 _02258F20: mov r0, #0x6f lsl r0, r0, #4 add r0, r5, r0 mov r1, #0 mov r2, #4 bl MI_CpuFill8 ldr r0, _02258F54 ; =0x000006EC ldr r0, [r5, r0] bl MOD11_0225D648 cmp r6, #0 ldr r0, _02258F58 ; =0x000006F4 ble _02258F42 mov r1, #1 strb r1, [r5, r0] b _02258F46 _02258F42: mov r1, #0 strb r1, [r5, r0] _02258F46: ldr r0, [sp] pop {r3, r4, r5, r6, r7, pc} nop _02258F4C: .word 0x0000069F _02258F50: .word 0x0225FAAC _02258F54: .word 0x000006EC _02258F58: .word 0x000006F4 thumb_func_start MOD11_02258F5C MOD11_02258F5C: ; 0x02258F5C push {r3, lr} ldr r1, [r0, #8] cmp r1, #0 bne _02258F7E ldr r1, [r0, #0xc] cmp r1, #0 bne _02258F7E ldr r1, _02258F84 ; =0x00000684 ldr r1, [r0, r1] cmp r1, #0 bne _02258F7E bl MOD11_0225B780 cmp r0, #1 bne _02258F7E mov r0, #1 pop {r3, pc} _02258F7E: mov r0, #0 pop {r3, pc} nop _02258F84: .word 0x00000684 thumb_func_start MOD11_02258F88 MOD11_02258F88: ; 0x02258F88 push {r3, lr} cmp r0, #0x40 bgt _02258FBE bge _02259014 cmp r0, #0x10 bgt _02258FB8 bge _02258FEC cmp r0, #8 bhi _02259024 add r2, r0, r0 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02258FA6: ; jump table .short _02258FE0 - _02258FA6 - 2 ; case 0 .short _02258FEC - _02258FA6 - 2 ; case 1 .short _02258FEC - _02258FA6 - 2 ; case 2 .short _02259024 - _02258FA6 - 2 ; case 3 .short _02258FF8 - _02258FA6 - 2 ; case 4 .short _02259024 - _02258FA6 - 2 ; case 5 .short _02259024 - _02258FA6 - 2 ; case 6 .short _02259024 - _02258FA6 - 2 ; case 7 .short _02258FFC - _02258FA6 - 2 ; case 8 _02258FB8: cmp r0, #0x20 beq _0225901C b _02259024 _02258FBE: mov r2, #1 lsl r2, r2, #8 cmp r0, r2 bgt _02258FCE bge _02259008 cmp r0, #0x80 beq _02258FF8 b _02259024 _02258FCE: lsl r1, r2, #1 cmp r0, r1 bgt _02258FD8 beq _02259018 b _02259024 _02258FD8: lsl r1, r2, #2 cmp r0, r1 beq _02259020 b _02259024 _02258FE0: cmp r1, #4 bne _02258FE8 mov r0, #9 pop {r3, pc} _02258FE8: mov r0, #8 pop {r3, pc} _02258FEC: cmp r1, #4 bne _02258FF4 mov r0, #6 pop {r3, pc} _02258FF4: mov r0, #4 pop {r3, pc} _02258FF8: mov r0, #1 pop {r3, pc} _02258FFC: cmp r1, #4 bne _02259004 mov r0, #7 pop {r3, pc} _02259004: mov r0, #2 pop {r3, pc} _02259008: cmp r1, #4 bne _02259010 mov r0, #4 pop {r3, pc} _02259010: mov r0, #6 pop {r3, pc} _02259014: mov r0, #3 pop {r3, pc} _02259018: mov r0, #0xa pop {r3, pc} _0225901C: mov r0, #5 pop {r3, pc} _02259020: mov r0, #0xb pop {r3, pc} _02259024: bl ErrorHandling mov r0, #0 pop {r3, pc} thumb_func_start MOD11_0225902C MOD11_0225902C: ; 0x0225902C push {r4, r5} ldr r1, _0225908C ; =0x04001000 ldr r2, _02259090 ; =0xFFFF1FFF ldr r3, [r1] add r5, r1, #0 and r3, r2 lsr r2, r1, #0xd orr r2, r3 str r2, [r1] add r5, #0x4a ldrh r4, [r5] mov r3, #0x3f mov r2, #0x1f bic r4, r3 orr r2, r4 mov r4, #0x20 orr r2, r4 strh r2, [r5] add r1, #0x48 ldrh r5, [r1] mov r2, #0x1b bic r5, r3 orr r2, r5 orr r2, r4 strh r2, [r1] mov r1, #0x6e lsl r1, r1, #4 ldr r1, [r0, r1] asr r0, r1, #7 lsr r0, r0, #0x18 add r0, r1, r0 asr r1, r0, #8 mov r0, #0xff sub r0, r0, r1 bpl _02259074 mov r0, #0 _02259074: lsl r1, r0, #8 mov r0, #0xff lsl r0, r0, #8 and r1, r0 mov r0, #0xff orr r0, r1 ldr r1, _02259094 ; =0x04001040 strh r0, [r1] mov r0, #0xc0 strh r0, [r1, #4] pop {r4, r5} bx lr .align 2, 0 _0225908C: .word 0x04001000 _02259090: .word 0xFFFF1FFF _02259094: .word 0x04001040 thumb_func_start MOD11_02259098 MOD11_02259098: ; 0x02259098 push {r4, lr} lsl r4, r2, #8 mov r2, #0x6e add r3, r0, #0 lsl r2, r2, #4 ldr r0, [r3, r2] cmp r0, r4 beq _022590BC add r0, r2, #4 str r1, [r3, r0] add r2, #8 str r4, [r3, r2] mov r2, #0x4b ldr r0, _022590C0 ; =MOD11_022590C4 add r1, r3, #0 lsl r2, r2, #4 bl FUN_0200CA44 _022590BC: pop {r4, pc} nop _022590C0: .word MOD11_022590C4 thumb_func_start MOD11_022590C4 MOD11_022590C4: ; 0x022590C4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 str r0, [sp] ldr r0, [r5] mov r4, #0 bl MOD11_0222FF68 add r7, r0, #0 mov r0, #0x6e lsl r0, r0, #4 add r1, r0, #4 ldr r2, [r5, r0] ldr r1, [r5, r1] add r1, r2, r1 str r1, [r5, r0] add r1, r0, #4 ldr r1, [r5, r1] cmp r1, #0 bgt _022590F6 add r2, r0, #0 add r2, #8 ldr r2, [r5, r2] ldr r0, [r5, r0] cmp r0, r2 ble _02259106 _022590F6: cmp r1, #0 ble _0225910E ldr r0, _0225915C ; =0x000006E8 ldr r2, [r5, r0] sub r0, #8 ldr r0, [r5, r0] cmp r0, r2 blt _0225910E _02259106: mov r0, #0x6e lsl r0, r0, #4 str r2, [r5, r0] mov r4, #1 _0225910E: mov r3, #0x6e lsl r3, r3, #4 ldr r3, [r5, r3] add r0, r7, #0 asr r6, r3, #7 lsr r6, r6, #0x18 add r6, r3, r6 mov r1, #6 mov r2, #0 asr r3, r6, #8 bl FUN_020179E0 add r0, r5, #0 bl MOD11_0225902C cmp r4, #1 bne _0225915A ldr r2, _02259160 ; =0x000002FF add r0, r7, #0 mov r1, #7 bl FUN_02018768 mov r0, #7 mov r1, #0 bl FUN_0201797C mov r0, #7 mov r1, #0 bl FUN_020178BC ldr r2, _02259164 ; =0x04001000 ldr r0, _02259168 ; =0xFFFF1FFF ldr r1, [r2] and r0, r1 str r0, [r2] ldr r0, [sp] bl FUN_0200CAB4 _0225915A: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225915C: .word 0x000006E8 _02259160: .word 0x000002FF _02259164: .word 0x04001000 _02259168: .word 0xFFFF1FFF thumb_func_start MOD11_0225916C MOD11_0225916C: ; 0x0225916C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 ldr r0, _02259240 ; =0x000006A2 mov r1, #1 strb r1, [r5, r0] ldr r1, _02259244 ; =0x0400104A mov r4, #0x3f ldrh r2, [r1] mov r0, #0xf mov r7, #0xc bic r2, r4 orr r0, r2 mov r2, #0x20 orr r0, r2 strh r0, [r1] sub r0, r1, #2 ldrh r3, [r0] bic r3, r4 orr r3, r7 orr r3, r2 strh r3, [r0] ldrh r4, [r0] ldr r3, _02259248 ; =0xFFFFC0FF lsl r2, r2, #8 and r4, r3 lsl r3, r7, #8 orr r3, r4 orr r2, r3 strh r2, [r0] add r2, r1, #0 mov r0, #0xff sub r2, #0xa strh r0, [r2] mov r3, #0x90 sub r2, r1, #6 strh r3, [r2] add r2, r1, #0 sub r2, #8 strh r0, [r2] sub r0, r1, #4 ldr r2, _0225924C ; =0x000090C0 sub r1, #0x4a strh r2, [r0] ldr r2, [r1] ldr r0, _02259250 ; =0xFFFF1FFF and r2, r0 lsl r0, r7, #0xb orr r0, r2 str r0, [r1] mov r0, #5 mov r1, #0x14 bl FUN_02016998 add r4, r0, #0 mov r1, #0 mov r2, #0x14 bl MI_CpuFill8 str r5, [r4] ldr r0, _02259254 ; =0xFFFF9C64 strb r6, [r4, #0x12] strh r0, [r4, #8] mov r0, #0xfa lsl r0, r0, #4 strh r0, [r4, #0xa] mov r0, #8 ldrsh r1, [r4, r0] ldr r0, _02259258 ; =0x0000639C sub r0, r0, r1 mov r1, #0x64 bl _s32_div_f strh r0, [r4, #0xc] mov r0, #0xa ldrsh r1, [r4, r0] mov r0, #0xfa lsl r0, r0, #4 sub r0, r0, r1 mov r1, #0x64 bl _s32_div_f strh r0, [r4, #0xe] ldr r0, _0225925C ; =0x0000070E bl FUN_020054C8 ldr r0, _02259260 ; =MOD11_0225B438 ldr r2, _02259264 ; =0x000004BA add r1, r4, #0 bl FUN_0200CA44 ldr r0, _02259268 ; =MOD11_0225B644 add r1, r4, #0 bl FUN_02015F34 cmp r0, #1 beq _02259232 bl ErrorHandling _02259232: ldr r0, _0225926C ; =MOD11_0225B538 add r1, r4, #0 mov r2, #0xa bl FUN_0200CA60 str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02259240: .word 0x000006A2 _02259244: .word 0x0400104A _02259248: .word 0xFFFFC0FF _0225924C: .word 0x000090C0 _02259250: .word 0xFFFF1FFF _02259254: .word 0xFFFF9C64 _02259258: .word 0x0000639C _0225925C: .word 0x0000070E _02259260: .word MOD11_0225B438 _02259264: .word 0x000004BA _02259268: .word MOD11_0225B644 _0225926C: .word MOD11_0225B538 thumb_func_start MOD11_02259270 MOD11_02259270: ; 0x02259270 push {r3, r4, r5, lr} add r5, r0, #0 ldrb r4, [r5, #0x18] bl MOD11_02259284 add r0, r5, #0 add r1, r4, #0 bl MOD11_0225916C pop {r3, r4, r5, pc} thumb_func_start MOD11_02259284 MOD11_02259284: ; 0x02259284 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r5, r0, #0 ldr r0, [r5] add r6, r5, #0 ldrb r7, [r5, #0x18] add r6, #0x18 bl MOD11_022300C4 add r4, r0, #0 ldr r0, _02259484 ; =0x0000069E strb r7, [r5, r0] ldr r0, [r5] bl MOD11_0222FF74 mov r1, #0x20 tst r0, r1 beq _022592CA ldr r1, _02259488 ; =0x000003A3 add r0, r4, #0 bl FUN_0200A914 mov r1, #0xe9 str r0, [sp, #0x24] add r0, r4, #0 lsl r1, r1, #2 bl FUN_0200A914 str r0, [sp, #0x20] ldr r1, _0225948C ; =0x000003A5 add r0, r4, #0 bl FUN_0200A914 str r0, [sp, #0x1c] b _0225931A _022592CA: ldr r0, [r5] bl MOD11_0222FF74 mov r1, #2 lsl r1, r1, #8 tst r0, r1 beq _022592FA ldr r1, _02259490 ; =0x000004C7 add r0, r4, #0 bl FUN_0200A914 mov r1, #0xe9 str r0, [sp, #0x24] add r0, r4, #0 lsl r1, r1, #2 bl FUN_0200A914 str r0, [sp, #0x20] ldr r1, _0225948C ; =0x000003A5 add r0, r4, #0 bl FUN_0200A914 str r0, [sp, #0x1c] b _0225931A _022592FA: mov r1, #0xe7 add r0, r4, #0 lsl r1, r1, #2 bl FUN_0200A914 str r0, [sp, #0x24] ldr r1, _02259494 ; =0x0000039D add r0, r4, #0 bl FUN_0200A914 str r0, [sp, #0x20] ldr r1, _02259498 ; =0x0000039E add r0, r4, #0 bl FUN_0200A914 str r0, [sp, #0x1c] _0225931A: ldr r0, [r5] add r1, r7, #0 bl MOD11_0223022C add r1, r0, #0 ldr r0, [r5] bl MOD11_02230CB8 cmp r0, #1 bne _0225933E mov r1, #0x3a add r0, r4, #0 lsl r1, r1, #4 bl FUN_0200A914 add r4, r0, #0 mov r1, #1 b _0225934A _0225933E: ldr r1, _0225949C ; =0x0000039F add r0, r4, #0 bl FUN_0200A914 add r4, r0, #0 mov r1, #0 _0225934A: ldr r0, _022594A0 ; =0x000006A3 mov r3, #2 strb r1, [r5, r0] ldr r0, _022594A4 ; =0x00010203 ldr r1, _022594A8 ; =0x000004CC str r0, [sp] ldr r0, _022594AC ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x54 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] ldr r2, [sp, #0x24] add r0, r5, #0 add r1, r5, r1 bl MOD11_0225A458 ldr r0, _022594B0 ; =0x00040506 mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _022594AC ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x28 str r0, [sp, #0xc] mov r0, #0xaa str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] ldr r2, [sp, #0x20] add r0, r5, #0 add r1, r5, r1 bl MOD11_0225A458 ldr r0, _022594B4 ; =0x00070809 ldr r1, _022594B8 ; =0x000004F4 str r0, [sp] mov r3, #2 ldr r0, _022594AC ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0xd8 str r0, [sp, #0xc] mov r0, #0xaa str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] ldr r2, [sp, #0x1c] add r0, r5, #0 add r1, r5, r1 bl MOD11_0225A458 ldr r0, _022594BC ; =0x000A0B0C ldr r1, _022594C0 ; =0x00000508 str r0, [sp] mov r3, #2 ldr r0, _022594AC ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0xb2 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r4, #0 bl MOD11_0225A458 ldr r0, [sp, #0x24] bl FUN_02021A20 ldr r0, [sp, #0x20] bl FUN_02021A20 ldr r0, [sp, #0x1c] bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 ldr r0, [r5] bl MOD11_0222FF74 mov r1, #0x22 lsl r1, r1, #4 tst r0, r1 bne _0225947E ldrb r1, [r6, #1] ldrb r2, [r6, #2] ldr r0, [r5] bl MOD11_02230014 add r4, r0, #0 add r0, r5, #0 bl MOD11_0225A164 ldrh r0, [r6, #6] mov r3, #4 add r1, r4, #0 str r0, [sp] ldrb r0, [r6, #3] add r2, r7, #0 str r0, [sp, #4] ldrsh r3, [r6, r3] add r0, r5, #0 bl MOD11_0225A270 add r4, r0, #0 ldr r0, _022594A8 ; =0x000004CC add r1, sp, #0x2c ldr r0, [r5, r0] add r2, sp, #0x28 bl FUN_020119A4 cmp r7, #4 bne _0225945E ldr r0, _022594C4 ; =0x000004DC ldr r1, [sp, #0x2c] ldrh r0, [r5, r0] add r0, #0x10 add r0, r1, r0 str r0, [sp, #0x2c] b _02259464 _0225945E: ldr r0, [sp, #0x2c] sub r0, #0x10 str r0, [sp, #0x2c] _02259464: mov r3, #0x11 ldr r1, [sp, #0x2c] ldr r2, [sp, #0x28] lsl r3, r3, #4 sub r2, r2, r3 lsl r1, r1, #0x10 lsl r2, r2, #0x10 add r0, r4, #0 asr r1, r1, #0x10 asr r2, r2, #0x10 lsl r3, r3, #0xc bl FUN_0200C750 _0225947E: add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _02259484: .word 0x0000069E _02259488: .word 0x000003A3 _0225948C: .word 0x000003A5 _02259490: .word 0x000004C7 _02259494: .word 0x0000039D _02259498: .word 0x0000039E _0225949C: .word 0x0000039F _022594A0: .word 0x000006A3 _022594A4: .word 0x00010203 _022594A8: .word 0x000004CC _022594AC: .word 0x00004E33 _022594B0: .word 0x00040506 _022594B4: .word 0x00070809 _022594B8: .word 0x000004F4 _022594BC: .word 0x000A0B0C _022594C0: .word 0x00000508 _022594C4: .word 0x000004DC thumb_func_start MOD11_022594C8 MOD11_022594C8: ; 0x022594C8 push {r3, r4, r5, lr} add r5, r0, #0 ldrb r4, [r5, #0x18] bl MOD11_022594DC add r0, r5, #0 add r1, r4, #0 bl MOD11_0225916C pop {r3, r4, r5, pc} thumb_func_start MOD11_022594DC MOD11_022594DC: ; 0x022594DC push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 bl MOD11_02259284 ldr r0, [r5] bl MOD11_0222FF68 mov r1, #0x10 str r1, [sp] mov r1, #0x20 str r1, [sp, #4] mov r1, #8 str r1, [sp, #8] mov r1, #0x11 str r1, [sp, #0xc] ldr r2, _02259534 ; =0x000002FF add r4, r0, #0 mov r1, #4 mov r3, #0 bl FUN_02018540 add r0, r4, #0 mov r1, #5 bl FUN_0201AC68 mov r0, #0x4e lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020119D0 ldr r0, _02259538 ; =0x000004F4 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _0225953C ; =0x00000508 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _02259534: .word 0x000002FF _02259538: .word 0x000004F4 _0225953C: .word 0x00000508 thumb_func_start MOD11_02259540 MOD11_02259540: ; 0x02259540 push {r3, r4, r5, lr} add r5, r0, #0 ldrb r4, [r5, #0x18] bl MOD11_02259554 add r0, r5, #0 add r1, r4, #0 bl MOD11_0225916C pop {r3, r4, r5, pc} thumb_func_start MOD11_02259554 MOD11_02259554: ; 0x02259554 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 bl MOD11_02259284 ldr r0, [r5] bl MOD11_0222FF68 mov r1, #0x10 str r1, [sp] mov r1, #0xa str r1, [sp, #4] mov r1, #8 str r1, [sp, #8] mov r1, #0x11 str r1, [sp, #0xc] ldr r2, _022595C0 ; =0x000002FF mov r1, #4 mov r3, #0 add r4, r0, #0 bl FUN_02018540 mov r0, #0x10 str r0, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] mov r0, #0x11 str r0, [sp, #0xc] ldr r2, _022595C0 ; =0x000002FF add r0, r4, #0 mov r1, #4 mov r3, #0x16 bl FUN_02018540 add r0, r4, #0 mov r1, #5 bl FUN_0201AC68 mov r0, #0x4e lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020119D0 ldr r0, _022595C4 ; =0x000004F4 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 add sp, #0x10 pop {r3, r4, r5, pc} nop _022595C0: .word 0x000002FF _022595C4: .word 0x000004F4 thumb_func_start MOD11_022595C8 MOD11_022595C8: ; 0x022595C8 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 add r6, r5, #0 add r6, #0x18 bne _022595D8 bl ErrorHandling _022595D8: ldrb r1, [r6, #0x10] ldr r0, _02259854 ; =0x0000069E strb r1, [r5, r0] ldr r0, [r5] bl MOD11_022300C4 str r0, [sp, #0x1c] ldrb r1, [r6, #0x10] add r0, r5, #0 bl MOD11_0225A69C str r0, [sp, #0x20] add r0, r5, #0 bl MOD11_0225A9D4 ldr r0, _02259858 ; =0x00070809 ldr r1, _0225985C ; =0x000004CC str r0, [sp] mov r0, #3 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 add r1, r5, r1 str r0, [sp, #8] mov r0, #0x40 str r0, [sp, #0xc] mov r0, #0x2e str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x20] mov r2, #0 add r0, #0x28 str r0, [sp, #0x18] add r0, r5, #0 mov r3, #2 bl MOD11_0225A458 ldr r0, _02259858 ; =0x00070809 mov r1, #0x4e str r0, [sp] mov r0, #3 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 lsl r1, r1, #4 str r0, [sp, #8] mov r0, #0xc0 str r0, [sp, #0xc] mov r0, #0x2e str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x20] add r1, r5, r1 add r0, #0x3c str r0, [sp, #0x18] add r0, r5, #0 mov r2, #0 mov r3, #2 bl MOD11_0225A458 ldr r0, _02259858 ; =0x00070809 ldr r1, _02259864 ; =0x000004F4 str r0, [sp] mov r0, #3 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 add r1, r5, r1 str r0, [sp, #8] mov r0, #0x40 str r0, [sp, #0xc] mov r0, #0x6e str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x20] mov r2, #0 add r0, #0x50 str r0, [sp, #0x18] add r0, r5, #0 mov r3, #2 bl MOD11_0225A458 ldr r0, _02259858 ; =0x00070809 ldr r1, _02259868 ; =0x00000508 str r0, [sp] mov r0, #3 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 add r1, r5, r1 str r0, [sp, #8] mov r0, #0xc0 str r0, [sp, #0xc] mov r0, #0x6e str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x20] mov r2, #0 add r0, #0x64 str r0, [sp, #0x18] add r0, r5, #0 mov r3, #2 bl MOD11_0225A458 ldr r0, [sp, #0x20] mov r4, #0 str r0, [sp, #0x28] add r0, #0x78 str r0, [sp, #0x28] ldr r0, _0225985C ; =0x000004CC add r7, r5, r0 ldr r0, [sp, #0x20] add r0, #0xc8 str r0, [sp, #0x20] b _02259748 _022596BE: add r1, r6, r4 ldrb r0, [r1, #8] ldrb r1, [r1, #0xc] bl MOD11_0225B3D4 str r0, [sp, #0x24] str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 ldr r1, _0225986C ; =0x0225F73C str r0, [sp, #8] lsl r0, r4, #2 ldrh r1, [r1, r0] add r2, r4, #0 add r2, #9 str r1, [sp, #0xc] ldr r1, _0225986C ; =0x0225F73C add r0, r1, r0 ldrh r0, [r0, #2] add r1, r4, #0 str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] mov r0, #0x14 mul r1, r0 ldr r0, [sp, #0x28] add r0, r0, r1 mov r1, #0x14 mul r1, r2 mov r2, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r7, r1 add r3, r2, #0 bl MOD11_0225A458 ldr r0, [sp, #0x24] ldr r1, _02259870 ; =0x0225F78C str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, _02259860 ; =0x00004E33 add r2, r4, #5 str r0, [sp, #8] lsl r0, r4, #2 ldrh r1, [r1, r0] str r1, [sp, #0xc] ldr r1, _02259870 ; =0x0225F78C add r0, r1, r0 ldrh r0, [r0, #2] add r1, r4, #0 str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] mov r0, #0x14 mul r1, r0 ldr r0, [sp, #0x20] add r0, r0, r1 mov r1, #0x14 mul r1, r2 mov r2, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r7, r1 add r3, r2, #0 bl MOD11_0225A458 add r4, r4, #1 _02259748: cmp r4, #4 blt _022596BE ldr r0, [sp, #0x1c] ldr r1, _02259874 ; =0x000003A1 bl FUN_0200A914 add r4, r0, #0 ldr r0, _02259878 ; =0x000A0B0C ldr r1, _0225987C ; =0x0000051C str r0, [sp] mov r3, #2 ldr r0, _02259860 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0xb2 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r4, #0 bl MOD11_0225A458 add r0, r4, #0 bl FUN_02021A20 mov r4, #0 mov r7, #3 b _022597B0 _0225978A: lsl r0, r4, #1 ldrh r0, [r6, r0] cmp r0, #0 beq _022597A4 add r1, r7, #0 bl FUN_0206AB18 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl MOD11_0225AB34 b _022597AE _022597A4: add r0, r5, #0 add r1, r4, #0 bl MOD11_0225AB50 b _022597B4 _022597AE: add r4, r4, #1 _022597B0: cmp r4, #4 blt _0225978A _022597B4: ldr r0, [r5] bl MOD11_0222FF68 ldrh r0, [r6] cmp r0, #0 bne _022597E2 ldr r0, _0225985C ; =0x000004CC mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 mov r0, #0x53 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020119D0 mov r0, #0x16 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #0 bl FUN_020119D0 _022597E2: ldrh r0, [r6, #2] cmp r0, #0 bne _02259808 mov r0, #0x4e lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020119D0 ldr r0, _02259880 ; =0x00000544 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _02259884 ; =0x00000594 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 _02259808: ldrh r0, [r6, #4] cmp r0, #0 bne _0225982C ldr r0, _02259864 ; =0x000004F4 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _02259888 ; =0x00000558 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _0225988C ; =0x000005A8 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 _0225982C: ldrh r0, [r6, #6] cmp r0, #0 bne _02259850 ldr r0, _02259868 ; =0x00000508 mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _02259890 ; =0x0000056C mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 ldr r0, _02259894 ; =0x000005BC mov r1, #0 ldr r0, [r5, r0] bl FUN_020119D0 _02259850: add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _02259854: .word 0x0000069E _02259858: .word 0x00070809 _0225985C: .word 0x000004CC _02259860: .word 0x00004E33 _02259864: .word 0x000004F4 _02259868: .word 0x00000508 _0225986C: .word 0x0225F73C _02259870: .word 0x0225F78C _02259874: .word 0x000003A1 _02259878: .word 0x000A0B0C _0225987C: .word 0x0000051C _02259880: .word 0x00000544 _02259884: .word 0x00000594 _02259888: .word 0x00000558 _0225988C: .word 0x000005A8 _02259890: .word 0x0000056C _02259894: .word 0x000005BC thumb_func_start MOD11_02259898 MOD11_02259898: ; 0x02259898 push {r3, r4, r5, r6, lr} sub sp, #0x1c add r5, r0, #0 ldr r0, [r5] bl MOD11_022300C4 mov r1, #0xeb lsl r1, r1, #2 add r6, r0, #0 bl FUN_0200A914 add r4, r0, #0 ldr r1, _0225991C ; =0x000003AD add r0, r6, #0 bl FUN_0200A914 add r6, r0, #0 ldr r0, _02259920 ; =0x00010203 ldr r1, _02259924 ; =0x000004CC str r0, [sp] mov r3, #2 ldr r0, _02259928 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x44 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r4, #0 bl MOD11_0225A458 ldr r0, _0225992C ; =0x000A0B0C mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _02259928 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x8c str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r6, #0 bl MOD11_0225A458 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add sp, #0x1c pop {r3, r4, r5, r6, pc} .align 2, 0 _0225991C: .word 0x000003AD _02259920: .word 0x00010203 _02259924: .word 0x000004CC _02259928: .word 0x00004E33 _0225992C: .word 0x000A0B0C thumb_func_start MOD11_02259930 MOD11_02259930: ; 0x02259930 push {r3, r4, r5, r6, lr} sub sp, #0x1c add r5, r0, #0 ldr r0, [r5] bl MOD11_022300C4 ldr r1, _022599B4 ; =0x0000049D add r6, r0, #0 bl FUN_0200A914 add r4, r0, #0 ldr r1, _022599B8 ; =0x0000049E add r0, r6, #0 bl FUN_0200A914 add r6, r0, #0 ldr r0, _022599BC ; =0x00010203 ldr r1, _022599C0 ; =0x000004CC str r0, [sp] mov r3, #2 ldr r0, _022599C4 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x44 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r4, #0 bl MOD11_0225A458 ldr r0, _022599C8 ; =0x000A0B0C mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _022599C4 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x8c str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r6, #0 bl MOD11_0225A458 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add sp, #0x1c pop {r3, r4, r5, r6, pc} nop _022599B4: .word 0x0000049D _022599B8: .word 0x0000049E _022599BC: .word 0x00010203 _022599C0: .word 0x000004CC _022599C4: .word 0x00004E33 _022599C8: .word 0x000A0B0C thumb_func_start MOD11_022599CC MOD11_022599CC: ; 0x022599CC push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, [r5] bl MOD11_022300C4 add r6, r0, #0 ldr r0, [r5] bl MOD11_02230138 add r4, r0, #0 ldr r1, _02259A98 ; =0x000004A2 add r0, r6, #0 bl FUN_0200A914 str r0, [sp, #0x1c] ldr r1, _02259A9C ; =0x000004A3 add r0, r6, #0 bl FUN_0200A914 str r0, [sp, #0x20] mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r6, r0, #0 mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r7, r0, #0 ldrh r2, [r5, #0x18] add r0, r4, #0 mov r1, #0 bl FUN_0200AD5C ldr r2, [sp, #0x1c] add r0, r4, #0 add r1, r6, #0 bl FUN_0200B7B8 ldr r2, [sp, #0x20] add r0, r4, #0 add r1, r7, #0 bl FUN_0200B7B8 ldr r0, _02259AA0 ; =0x00010203 ldr r1, _02259AA4 ; =0x000004CC str r0, [sp] mov r3, #2 ldr r0, _02259AA8 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x44 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r6, #0 bl MOD11_0225A458 ldr r0, _02259AAC ; =0x000A0B0C mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _02259AA8 ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x8c str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r7, #0 bl MOD11_0225A458 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r0, [sp, #0x20] bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_02021A20 add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _02259A98: .word 0x000004A2 _02259A9C: .word 0x000004A3 _02259AA0: .word 0x00010203 _02259AA4: .word 0x000004CC _02259AA8: .word 0x00004E33 _02259AAC: .word 0x000A0B0C thumb_func_start MOD11_02259AB0 MOD11_02259AB0: ; 0x02259AB0 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, [r5] bl MOD11_022300C4 add r6, r0, #0 ldr r0, [r5] bl MOD11_02230138 add r4, r0, #0 ldr r1, _02259B7C ; =0x000004C1 add r0, r6, #0 bl FUN_0200A914 str r0, [sp, #0x1c] ldr r1, _02259B80 ; =0x000004C2 add r0, r6, #0 bl FUN_0200A914 str r0, [sp, #0x20] mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r6, r0, #0 mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r7, r0, #0 ldrh r2, [r5, #0x18] add r0, r4, #0 mov r1, #0 bl FUN_0200AD5C ldr r2, [sp, #0x1c] add r0, r4, #0 add r1, r6, #0 bl FUN_0200B7B8 ldr r2, [sp, #0x20] add r0, r4, #0 add r1, r7, #0 bl FUN_0200B7B8 ldr r0, _02259B84 ; =0x00010203 ldr r1, _02259B88 ; =0x000004CC str r0, [sp] mov r3, #2 ldr r0, _02259B8C ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x44 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r6, #0 bl MOD11_0225A458 ldr r0, _02259B90 ; =0x000A0B0C mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _02259B8C ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x8c str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r7, #0 bl MOD11_0225A458 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r0, [sp, #0x20] bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_02021A20 add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _02259B7C: .word 0x000004C1 _02259B80: .word 0x000004C2 _02259B84: .word 0x00010203 _02259B88: .word 0x000004CC _02259B8C: .word 0x00004E33 _02259B90: .word 0x000A0B0C thumb_func_start MOD11_02259B94 MOD11_02259B94: ; 0x02259B94 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, [r5] bl MOD11_022300C4 add r6, r0, #0 ldr r0, [r5] bl MOD11_02230138 add r4, r0, #0 ldr r1, _02259C60 ; =0x000004BF add r0, r6, #0 bl FUN_0200A914 mov r1, #0x13 str r0, [sp, #0x1c] add r0, r6, #0 lsl r1, r1, #6 bl FUN_0200A914 str r0, [sp, #0x20] mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r6, r0, #0 mov r0, #0x64 mov r1, #5 bl FUN_020219F4 add r7, r0, #0 ldrh r2, [r5, #0x18] add r0, r4, #0 mov r1, #0 bl FUN_0200AD5C ldr r2, [sp, #0x1c] add r0, r4, #0 add r1, r6, #0 bl FUN_0200B7B8 ldr r2, [sp, #0x20] add r0, r4, #0 add r1, r7, #0 bl FUN_0200B7B8 ldr r0, _02259C64 ; =0x00010203 ldr r1, _02259C68 ; =0x000004CC str r0, [sp] mov r3, #2 ldr r0, _02259C6C ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x44 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r6, #0 bl MOD11_0225A458 ldr r0, _02259C70 ; =0x000A0B0C mov r1, #0x4e str r0, [sp] mov r3, #2 lsl r1, r1, #4 ldr r0, _02259C6C ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] mov r0, #0x80 str r0, [sp, #0xc] mov r0, #0x8c str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 add r2, r7, #0 bl MOD11_0225A458 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r0, [sp, #0x20] bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_02021A20 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _02259C60: .word 0x000004BF _02259C64: .word 0x00010203 _02259C68: .word 0x000004CC _02259C6C: .word 0x00004E33 _02259C70: .word 0x000A0B0C thumb_func_start MOD11_02259C74 MOD11_02259C74: ; 0x02259C74 push {r4, r5, r6, r7, lr} sub sp, #0x44 add r5, r0, #0 add r7, r5, #0 add r7, #0x18 add r0, r7, #0 add r0, #0x21 ldrb r1, [r0] mov r0, #0x6a lsl r0, r0, #4 strb r1, [r5, r0] add r1, r7, #0 add r1, #0x20 ldrb r1, [r1] sub r0, r0, #2 strb r1, [r5, r0] ldr r0, [r5] bl MOD11_022300C4 str r0, [sp, #0x2c] ldr r0, [r5] bl MOD11_02230138 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #0x40 mov r2, #0 bl MOD11_0225ACD4 add r0, r5, #0 bl MOD11_0225A164 add r0, r5, #0 bl MOD11_0225A5C0 add r1, sp, #0x38 ldr r0, [r5] add r1, #2 bl MOD11_02231504 ldr r0, [r5] add r1, sp, #0x34 bl MOD11_022314E0 mov r0, #0x18 mov r1, #5 bl FUN_020219F4 str r0, [sp, #0x28] ldr r0, _02259E38 ; =0x000004CC mov r4, #0 add r0, r5, r0 str r0, [sp, #0x30] b _02259DEC _02259CE0: add r1, r4, #2 add r0, sp, #0x34 ldrb r6, [r0, r1] lsl r0, r6, #3 add r0, r7, r0 ldrb r1, [r0, #1] lsl r0, r1, #0x1d lsr r0, r0, #0x1f cmp r0, #1 bne _02259DDA add r0, sp, #0x40 ldrb r0, [r0, r4] cmp r0, #1 bne _02259DDA lsl r0, r1, #0x1e lsr r0, r0, #0x1e bne _02259D0E ldr r0, [sp, #0x2c] ldr r1, _02259E3C ; =0x000003C2 bl FUN_0200A914 str r0, [sp, #0x24] b _02259D2A _02259D0E: cmp r0, #1 bne _02259D1E ldr r0, [sp, #0x2c] ldr r1, _02259E40 ; =0x000003C3 bl FUN_0200A914 str r0, [sp, #0x24] b _02259D2A _02259D1E: mov r1, #0xf1 ldr r0, [sp, #0x2c] lsl r1, r1, #2 bl FUN_0200A914 str r0, [sp, #0x24] _02259D2A: lsl r2, r6, #3 ldrb r2, [r7, r2] ldr r0, [r5] add r1, r6, #0 bl MOD11_02230014 str r0, [sp, #0x20] bl FUN_020690E4 add r2, r0, #0 ldr r0, [sp, #0x1c] mov r1, #0 bl FUN_0200ACF8 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x28] ldr r2, [sp, #0x24] bl FUN_0200B7B8 mov r0, #1 tst r0, r4 beq _02259D5A ldr r0, _02259E44 ; =0x00010203 b _02259D5C _02259D5A: ldr r0, _02259E48 ; =0x00040506 _02259D5C: str r0, [sp] mov r0, #6 str r0, [sp, #4] ldr r0, _02259E4C ; =0x00004E33 ldr r1, _02259E50 ; =0x0225F7D4 str r0, [sp, #8] lsl r0, r4, #2 ldrh r1, [r1, r0] add r2, r4, #0 mov r3, #2 str r1, [sp, #0xc] ldr r1, _02259E50 ; =0x0225F7D4 add r0, r1, r0 ldrh r0, [r0, #2] mov r1, #0x14 mul r2, r1 ldr r1, [sp, #0x30] str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 add r1, r1, r2 str r0, [sp, #0x18] ldr r2, [sp, #0x28] add r0, r5, #0 bl MOD11_0225A458 ldr r0, [sp, #0x24] bl FUN_02021A20 cmp r4, #1 beq _02259DA2 cmp r4, #3 beq _02259DBE b _02259DEA _02259DA2: lsl r0, r6, #3 add r6, r7, r0 ldrh r0, [r6, #6] mov r3, #4 ldr r1, [sp, #0x20] str r0, [sp] ldrb r0, [r6, #2] mov r2, #3 str r0, [sp, #4] ldrsh r3, [r6, r3] add r0, r5, #0 bl MOD11_0225A270 b _02259DEA _02259DBE: lsl r0, r6, #3 add r6, r7, r0 ldrh r0, [r6, #6] mov r3, #4 ldr r1, [sp, #0x20] str r0, [sp] ldrb r0, [r6, #2] mov r2, #5 str r0, [sp, #4] ldrsh r3, [r6, r3] add r0, r5, #0 bl MOD11_0225A270 b _02259DEA _02259DDA: add r0, sp, #0x40 ldrb r0, [r0, r4] cmp r0, #0 bne _02259DEA add r0, r5, #0 add r1, r4, #0 bl MOD11_0225ABA4 _02259DEA: add r4, r4, #1 _02259DEC: cmp r4, #4 bge _02259DF2 b _02259CE0 _02259DF2: ldr r0, [sp, #0x28] bl FUN_02021A20 ldr r0, [sp, #0x2c] ldr r1, _02259E54 ; =0x000003A2 bl FUN_0200A914 add r4, r0, #0 ldr r0, _02259E58 ; =0x000A0B0C mov r3, #2 str r0, [sp] ldr r0, _02259E4C ; =0x00004E33 str r3, [sp, #4] str r0, [sp, #8] ldr r0, _02259E5C ; =0x0225F7C4 add r2, r4, #0 ldrh r1, [r0, #0x20] str r1, [sp, #0xc] ldrh r0, [r0, #0x22] ldr r1, _02259E60 ; =0x0000051C str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] add r0, r5, #0 add r1, r5, r1 bl MOD11_0225A458 add r0, r4, #0 bl FUN_02021A20 add sp, #0x44 pop {r4, r5, r6, r7, pc} nop _02259E38: .word 0x000004CC _02259E3C: .word 0x000003C2 _02259E40: .word 0x000003C3 _02259E44: .word 0x00010203 _02259E48: .word 0x00040506 _02259E4C: .word 0x00004E33 _02259E50: .word 0x0225F7D4 _02259E54: .word 0x000003A2 _02259E58: .word 0x000A0B0C _02259E5C: .word 0x0225F7C4 _02259E60: .word 0x0000051C thumb_func_start MOD11_02259E64 MOD11_02259E64: ; 0x02259E64 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 mov r0, #0xff add r5, r1, #0 str r0, [sp] add r0, r5, #1 cmp r0, #5 bhi _02259E8C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02259E80: ; jump table .short _02259E8C - _02259E80 - 2 ; case 0 .short _02259E8C - _02259E80 - 2 ; case 1 .short _02259E90 - _02259E80 - 2 ; case 2 .short _02259EB4 - _02259E80 - 2 ; case 3 .short _02259EBA - _02259E80 - 2 ; case 4 .short _02259EC0 - _02259E80 - 2 ; case 5 _02259E8C: add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _02259E90: ldr r0, _02259F24 ; =0x0000069E mov r7, #0 ldrb r0, [r4, r0] add r6, r7, #0 cmp r0, #0 beq _02259EA6 cmp r0, #2 beq _02259EAA cmp r0, #4 beq _02259EAA b _02259EC4 _02259EA6: str r0, [sp] b _02259EC4 _02259EAA: ldr r0, _02259F24 ; =0x0000069E ldrb r0, [r4, r0] sub r0, r0, #2 str r0, [sp] b _02259EC4 _02259EB4: mov r7, #1 add r6, r7, #0 b _02259EC4 _02259EBA: mov r7, #2 mov r6, #1 b _02259EC4 _02259EC0: mov r7, #3 mov r6, #1 _02259EC4: add r0, r4, #0 add r1, r2, #0 bl MOD11_0225ADD4 ldr r0, _02259F28 ; =MOD11_0225AE4C add r1, r4, #0 bl MOD11_0225AD80 ldr r0, _02259F2C ; =0x0225F854 sub r2, r5, #1 mov r1, #6 mul r1, r2 add r0, r0, r1 ldr r1, _02259F30 ; =0x000006B4 lsl r2, r2, #2 str r0, [r4, r1] ldr r0, _02259F34 ; =0x0225F70C add r3, r0, r2 add r0, r1, #4 str r3, [r4, r0] add r0, r1, #0 mov r3, #1 add r0, #0xc strb r3, [r4, r0] add r0, r1, #0 add r0, #8 str r5, [r4, r0] add r0, r1, #0 add r0, #0xd strb r7, [r4, r0] add r3, r1, #0 ldr r0, [sp] add r3, #0xe strb r0, [r4, r3] add r0, r1, #0 add r0, #0xf strb r6, [r4, r0] ldr r0, _02259F38 ; =0x0225F79C add r3, r0, r2 ldrh r2, [r0, r2] add r0, r1, #0 add r0, #0x10 strh r2, [r4, r0] ldrh r0, [r3, #2] add r1, #0x12 strh r0, [r4, r1] add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02259F24: .word 0x0000069E _02259F28: .word MOD11_0225AE4C _02259F2C: .word 0x0225F854 _02259F30: .word 0x000006B4 _02259F34: .word 0x0225F70C _02259F38: .word 0x0225F79C thumb_func_start MOD11_02259F3C MOD11_02259F3C: ; 0x02259F3C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0 add r4, r1, #0 mvn r0, r0 add r1, r2, #0 cmp r4, r0 bne _02259F50 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _02259F50: add r2, r5, #0 add r2, #0x18 cmp r4, #1 blt _02259F66 cmp r4, #4 bgt _02259F66 sub r3, r4, #1 lsl r3, r3, #1 ldrh r2, [r2, r3] cmp r2, #0 beq _02259FCA _02259F66: sub r0, r4, #1 cmp r4, #4 bgt _02259F88 add r2, r4, #1 bmi _02259F8C add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02259F7C: ; jump table .short _02259F8C - _02259F7C - 2 ; case 0 .short _02259F8C - _02259F7C - 2 ; case 1 .short _02259F92 - _02259F7C - 2 ; case 2 .short _02259F92 - _02259F7C - 2 ; case 3 .short _02259F92 - _02259F7C - 2 ; case 4 .short _02259F92 - _02259F7C - 2 ; case 5 _02259F88: cmp r4, #0xff beq _02259FA2 _02259F8C: mov r0, #0 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _02259F92: mov r2, #6 mul r2, r0 ldr r3, _02259FCC ; =0x0225F86C lsl r0, r0, #2 add r7, r3, r2 ldr r2, _02259FD0 ; =0x0225F7AC add r6, r2, r0 b _02259FA6 _02259FA2: ldr r7, _02259FD4 ; =0x0225F884 ldr r6, _02259FD8 ; =0x0225F7BC _02259FA6: add r0, r5, #0 bl MOD11_0225ADD4 ldr r0, _02259FDC ; =MOD11_0225AF9C add r1, r5, #0 bl MOD11_0225AD80 ldr r1, _02259FE0 ; =0x000006B4 mov r2, #3 str r7, [r5, r1] add r0, r1, #4 str r6, [r5, r0] add r0, r1, #0 add r0, #0xc strb r2, [r5, r0] add r1, #8 str r4, [r5, r1] add r0, r4, #0 _02259FCA: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02259FCC: .word 0x0225F86C _02259FD0: .word 0x0225F7AC _02259FD4: .word 0x0225F884 _02259FD8: .word 0x0225F7BC _02259FDC: .word MOD11_0225AF9C _02259FE0: .word 0x000006B4 thumb_func_start MOD11_02259FE4 MOD11_02259FE4: ; 0x02259FE4 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0 add r4, r1, #0 mvn r0, r0 cmp r4, r0 beq _02259FFA cmp r4, #1 beq _02259FFE cmp r4, #0xff beq _0225A002 _02259FFA: add r0, r4, #0 pop {r4, r5, r6, pc} _02259FFE: mov r6, #0 b _0225A004 _0225A002: mov r6, #1 _0225A004: add r0, r5, #0 add r1, r2, #0 bl MOD11_0225ADD4 ldr r0, _0225A048 ; =MOD11_0225AE4C add r1, r5, #0 bl MOD11_0225AD80 cmp r4, #1 ldr r0, _0225A04C ; =0x000006B4 bne _0225A022 ldr r1, _0225A050 ; =0x0225F6F6 str r1, [r5, r0] ldr r1, _0225A054 ; =0x0225F6CC b _0225A028 _0225A022: ldr r1, _0225A058 ; =0x0225F6F0 str r1, [r5, r0] ldr r1, _0225A05C ; =0x0225F6C8 _0225A028: add r0, r0, #4 str r1, [r5, r0] mov r0, #0x1b mov r1, #6 lsl r0, r0, #6 strb r1, [r5, r0] sub r1, r0, #4 str r4, [r5, r1] add r1, r0, #1 strb r6, [r5, r1] mov r1, #3 add r0, r0, #3 strb r1, [r5, r0] add r0, r4, #0 pop {r4, r5, r6, pc} nop _0225A048: .word MOD11_0225AE4C _0225A04C: .word 0x000006B4 _0225A050: .word 0x0225F6F6 _0225A054: .word 0x0225F6CC _0225A058: .word 0x0225F6F0 _0225A05C: .word 0x0225F6C8 thumb_func_start MOD11_0225A060 MOD11_0225A060: ; 0x0225A060 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r1, #0 add r1, sp, #0 mov r2, #1 add r4, r0, #0 bl MOD11_0225ACD4 cmp r5, #4 bgt _0225A090 add r0, r5, #1 bmi _0225A094 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225A084: ; jump table .short _0225A094 - _0225A084 - 2 ; case 0 .short _0225A094 - _0225A084 - 2 ; case 1 .short _0225A09A - _0225A084 - 2 ; case 2 .short _0225A0AA - _0225A084 - 2 ; case 3 .short _0225A0BA - _0225A084 - 2 ; case 4 .short _0225A0CA - _0225A084 - 2 ; case 5 _0225A090: cmp r5, #0xff beq _0225A0DA _0225A094: add sp, #4 add r0, r5, #0 pop {r3, r4, r5, r6, pc} _0225A09A: add r0, sp, #0 ldrb r0, [r0] cmp r0, #0 bne _0225A116 mov r0, #0 add sp, #4 mvn r0, r0 pop {r3, r4, r5, r6, pc} _0225A0AA: add r0, sp, #0 ldrb r0, [r0, #1] cmp r0, #0 bne _0225A116 mov r0, #0 add sp, #4 mvn r0, r0 pop {r3, r4, r5, r6, pc} _0225A0BA: add r0, sp, #0 ldrb r0, [r0, #2] cmp r0, #0 bne _0225A116 mov r0, #0 add sp, #4 mvn r0, r0 pop {r3, r4, r5, r6, pc} _0225A0CA: add r0, sp, #0 ldrb r0, [r0, #3] cmp r0, #0 bne _0225A116 mov r0, #0 add sp, #4 mvn r0, r0 pop {r3, r4, r5, r6, pc} _0225A0DA: add r0, r4, #0 mov r1, #4 bl MOD11_0225ADD4 ldr r0, _0225A14C ; =MOD11_0225AE4C add r1, r4, #0 bl MOD11_0225AD80 ldr r0, _0225A150 ; =0x0225F8A4 ldr r1, _0225A154 ; =0x000006B4 ldr r2, _0225A158 ; =0x0225F80C str r0, [r4, r1] add r0, r1, #4 str r2, [r4, r0] add r0, r1, #0 mov r2, #4 add r0, #0xc strb r2, [r4, r0] add r0, r1, #0 add r0, #8 str r5, [r4, r0] add r0, r1, #0 add r0, #0xd strb r2, [r4, r0] mov r0, #3 add r1, #0xf strb r0, [r4, r1] add sp, #4 add r0, r5, #0 pop {r3, r4, r5, r6, pc} _0225A116: ldr r0, [r4] bl MOD11_0222FF68 ldr r2, _0225A15C ; =0x000002FF add r6, r0, #0 mov r1, #5 bl FUN_02018768 add r0, r6, #0 mov r1, #5 bl FUN_0201AC68 add r0, r4, #0 add r1, r5, #0 bl MOD11_0225ADD0 ldr r0, _0225A160 ; =MOD11_0225B234 add r1, r4, #0 bl MOD11_0225AD80 mov r0, #0x6d lsl r0, r0, #4 str r5, [r4, r0] add r0, r5, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _0225A14C: .word MOD11_0225AE4C _0225A150: .word 0x0225F8A4 _0225A154: .word 0x000006B4 _0225A158: .word 0x0225F80C _0225A15C: .word 0x000002FF _0225A160: .word MOD11_0225B234 thumb_func_start MOD11_0225A164 MOD11_0225A164: ; 0x0225A164 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5] bl MOD11_02230078 add r4, r0, #0 ldr r0, [r5] bl MOD11_02230080 add r6, r0, #0 ldr r0, [r5] bl MOD11_022300CC add r5, r0, #0 bl FUN_0206B888 mov r1, #0x13 str r1, [sp] str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r1, #3 str r1, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _0225A1DC ; =0x00004E32 add r2, r4, #0 str r0, [sp, #0x14] add r0, r5, #0 add r3, r6, #0 bl FUN_0200C0DC bl FUN_0206B890 add r3, r0, #0 mov r0, #0 str r0, [sp] ldr r0, _0225A1E0 ; =0x00004E31 add r1, r6, #0 str r0, [sp, #4] add r0, r4, #0 mov r2, #0x13 bl FUN_0200C124 bl FUN_0206B89C add r3, r0, #0 mov r0, #0 str r0, [sp] ldr r0, _0225A1E0 ; =0x00004E31 add r1, r6, #0 str r0, [sp, #4] add r0, r4, #0 mov r2, #0x13 bl FUN_0200C13C add sp, #0x18 pop {r4, r5, r6, pc} nop _0225A1DC: .word 0x00004E32 _0225A1E0: .word 0x00004E31 thumb_func_start MOD11_0225A1E4 MOD11_0225A1E4: ; 0x0225A1E4 push {r4, lr} ldr r0, [r0] bl MOD11_02230080 ldr r1, _0225A220 ; =0x00004E40 add r4, r0, #0 bl FUN_0200C358 ldr r1, _0225A224 ; =0x00004E41 add r0, r4, #0 bl FUN_0200C358 ldr r1, _0225A228 ; =0x00004E42 add r0, r4, #0 bl FUN_0200C358 ldr r1, _0225A22C ; =0x00004E31 add r0, r4, #0 bl FUN_0200C378 ldr r1, _0225A22C ; =0x00004E31 add r0, r4, #0 bl FUN_0200C388 ldr r1, _0225A230 ; =0x00004E32 add r0, r4, #0 bl FUN_0200C368 pop {r4, pc} nop _0225A220: .word 0x00004E40 _0225A224: .word 0x00004E41 _0225A228: .word 0x00004E42 _0225A22C: .word 0x00004E31 _0225A230: .word 0x00004E32 thumb_func_start MOD11_0225A234 MOD11_0225A234: ; 0x0225A234 push {r3, r4, r5, r6, r7, lr} mov r4, #0 add r5, r0, #0 add r6, r4, #0 add r7, r4, #0 _0225A23E: ldr r0, _0225A268 ; =0x00000624 ldr r0, [r5, r0] cmp r0, #0 beq _0225A24E bl FUN_0200C3DC ldr r0, _0225A268 ; =0x00000624 str r6, [r5, r0] _0225A24E: ldr r0, _0225A26C ; =0x00000634 ldr r0, [r5, r0] cmp r0, #0 beq _0225A25E bl FUN_0200CAB4 ldr r0, _0225A26C ; =0x00000634 str r7, [r5, r0] _0225A25E: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0225A23E pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225A268: .word 0x00000624 _0225A26C: .word 0x00000634 thumb_func_start MOD11_0225A270 MOD11_0225A270: ; 0x0225A270 push {r3, r4, r5, r6, r7, lr} sub sp, #0x50 add r6, r2, #0 add r4, r0, #0 str r1, [sp, #0xc] str r3, [sp, #0x10] cmp r6, #2 blt _0225A284 sub r5, r6, #2 b _0225A286 _0225A284: add r5, r6, #0 _0225A286: lsl r0, r5, #2 add r1, r4, r0 ldr r0, _0225A3D0 ; =0x00000624 ldr r0, [r1, r0] cmp r0, #0 beq _0225A296 bl ErrorHandling _0225A296: lsl r0, r5, #2 add r1, r4, r0 ldr r0, _0225A3D4 ; =0x00000634 ldr r0, [r1, r0] cmp r0, #0 beq _0225A2A6 bl ErrorHandling _0225A2A6: cmp r6, #5 bhi _0225A2CE add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225A2B6: ; jump table .short _0225A2C2 - _0225A2B6 - 2 ; case 0 .short _0225A2CE - _0225A2B6 - 2 ; case 1 .short _0225A2C2 - _0225A2B6 - 2 ; case 2 .short _0225A2C6 - _0225A2B6 - 2 ; case 3 .short _0225A2C2 - _0225A2B6 - 2 ; case 4 .short _0225A2CA - _0225A2B6 - 2 ; case 5 _0225A2C2: ldr r6, _0225A3D8 ; =0x00004E40 b _0225A2D8 _0225A2C6: ldr r6, _0225A3DC ; =0x00004E41 b _0225A2D8 _0225A2CA: ldr r6, _0225A3E0 ; =0x00004E42 b _0225A2D8 _0225A2CE: bl ErrorHandling add sp, #0x50 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0225A2D8: ldr r0, [r4] bl MOD11_02230078 str r0, [sp, #0x18] ldr r0, [r4] bl MOD11_02230080 str r0, [sp, #0x14] ldr r0, [sp, #0xc] bl FUN_0206B6C8 add r3, r0, #0 mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, [sp, #0x18] ldr r1, [sp, #0x14] mov r2, #0x13 str r6, [sp, #8] bl FUN_0200C00C ldr r3, _0225A3E4 ; =0x0225F948 add r2, sp, #0x1c mov r7, #6 _0225A30A: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} sub r7, r7, #1 bne _0225A30A ldr r0, [r3] lsl r3, r5, #2 str r0, [r2] ldr r2, _0225A3E8 ; =0x0225F76C str r6, [sp, #0x30] ldrh r1, [r2, r3] add r0, sp, #0x1c strh r1, [r0] add r1, r2, r3 ldrh r1, [r1, #2] add r2, sp, #0x1c strh r1, [r0, #2] ldr r0, [sp, #0x18] ldr r1, [sp, #0x14] bl FUN_0200C154 add r3, sp, #0x1c mov r1, #0 mov r2, #2 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] mov r3, #0x11 lsl r3, r3, #0x10 add r6, r0, #0 bl FUN_0200C750 ldr r0, [sp, #0xc] bl FUN_0206B87C add r1, r0, #0 ldr r0, [r6] bl FUN_020202DC ldr r0, [sp, #0x10] mov r7, #0 cmp r0, #0 beq _0225A3A8 ldr r0, [sp, #0x6c] cmp r0, #2 beq _0225A3A8 cmp r0, #3 beq _0225A3A8 ldr r0, [sp, #0x10] ldr r1, [sp, #0x68] lsl r0, r0, #0x10 lsl r1, r1, #0x10 lsr r0, r0, #0x10 lsr r1, r1, #0x10 mov r2, #0x30 bl FUN_02079A54 cmp r0, #4 bhi _0225A3A0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225A388: ; jump table .short _0225A3A0 - _0225A388 - 2 ; case 0 .short _0225A39E - _0225A388 - 2 ; case 1 .short _0225A39A - _0225A388 - 2 ; case 2 .short _0225A396 - _0225A388 - 2 ; case 3 .short _0225A392 - _0225A388 - 2 ; case 4 _0225A392: mov r7, #1 b _0225A3A0 _0225A396: mov r7, #2 b _0225A3A0 _0225A39A: mov r7, #3 b _0225A3A0 _0225A39E: mov r7, #4 _0225A3A0: add r0, r6, #0 add r1, r7, #0 bl FUN_0200C5C0 _0225A3A8: add r0, r6, #0 bl FUN_0200C5A8 lsl r0, r5, #2 add r1, r4, r0 ldr r0, _0225A3D0 ; =0x00000624 ldr r2, _0225A3EC ; =0x00000514 str r6, [r1, r0] ldr r0, _0225A3F0 ; =MOD11_0225A3F4 add r1, r6, #0 bl FUN_0200CA44 lsl r1, r5, #2 add r2, r4, r1 ldr r1, _0225A3D4 ; =0x00000634 str r0, [r2, r1] add r0, r6, #0 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} nop _0225A3D0: .word 0x00000624 _0225A3D4: .word 0x00000634 _0225A3D8: .word 0x00004E40 _0225A3DC: .word 0x00004E41 _0225A3E0: .word 0x00004E42 _0225A3E4: .word 0x0225F948 _0225A3E8: .word 0x0225F76C _0225A3EC: .word 0x00000514 _0225A3F0: .word MOD11_0225A3F4 thumb_func_start MOD11_0225A3F4 MOD11_0225A3F4: ; 0x0225A3F4 ldr r3, _0225A3FC ; =0x0200C5A9 add r0, r1, #0 bx r3 nop _0225A3FC: .word 0x0200C5A9 thumb_func_start MOD11_0225A400 MOD11_0225A400: ; 0x0225A400 cmp r0, #3 bhi _0225A418 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225A410: ; jump table .short _0225A418 - _0225A410 - 2 ; case 0 .short _0225A41C - _0225A410 - 2 ; case 1 .short _0225A420 - _0225A410 - 2 ; case 2 .short _0225A424 - _0225A410 - 2 ; case 3 _0225A418: mov r0, #0 bx lr _0225A41C: mov r0, #1 bx lr _0225A420: mov r0, #3 bx lr _0225A424: mov r0, #2 bx lr thumb_func_start MOD11_0225A428 MOD11_0225A428: ; 0x0225A428 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 add r6, r2, #0 add r0, r1, #0 add r1, r4, #0 mov r2, #0 add r7, r3, #0 bl FUN_02002E14 add r4, r0, #0 asr r1, r4, #2 lsr r1, r1, #0x1d add r1, r4, r1 asr r5, r1, #3 mov r1, #8 bl FX_ModS32 cmp r0, #0 beq _0225A450 add r5, r5, #1 _0225A450: str r4, [r6] str r5, [r7] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0225A458 MOD11_0225A458: ; 0x0225A458 push {r4, r5, r6, r7, lr} sub sp, #0x7c add r5, r1, #0 add r7, r0, #0 ldr r0, [r5] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r6, [sp, #0x9c] ldr r4, [sp, #0xa8] cmp r0, #0 beq _0225A472 bl ErrorHandling _0225A472: ldr r0, [r7] bl MOD11_02230080 str r0, [sp, #0x20] ldr r0, [r7] bl MOD11_0222FF68 str r0, [sp, #0x24] cmp r4, #0 bne _0225A494 ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r2, sp, #0x2c add r3, sp, #0x28 bl MOD11_0225A428 b _0225A49C _0225A494: ldrh r0, [r4, #0x12] str r0, [sp, #0x2c] ldrh r0, [r4, #0x10] str r0, [sp, #0x28] _0225A49C: cmp r4, #0 bne _0225A4DA add r0, sp, #0x3c bl FUN_0201901C mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r2, [sp, #0x28] ldr r0, [sp, #0x24] lsl r2, r2, #0x18 add r1, sp, #0x3c lsr r2, r2, #0x18 mov r3, #2 bl FUN_020190EC mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x90] ldr r1, [sp, #0x1c] str r0, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] ldr r2, [sp, #0x18] add r0, sp, #0x3c str r3, [sp, #0x14] bl FUN_0201BE3C b _0225A4E6 _0225A4DA: add r3, r4, #0 add r2, sp, #0x3c ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} _0225A4E6: add r0, sp, #0x3c mov r1, #2 mov r2, #5 bl FUN_02011898 mov r1, #1 mov r2, #2 add r3, sp, #0x30 bl FUN_0201D568 ldr r0, [sp, #0xa4] cmp r0, #1 bne _0225A50A ldr r1, [sp, #0x2c] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 sub r6, r6, r0 _0225A50A: ldr r0, _0225A588 ; =0x000004C8 ldr r0, [r7, r0] str r0, [sp, #0x4c] add r0, sp, #0x3c str r0, [sp, #0x50] ldr r0, [sp, #0x20] bl FUN_0200CA40 str r0, [sp, #0x54] ldr r0, [sp, #0x20] ldr r1, [sp, #0x98] bl FUN_0200C334 str r0, [sp, #0x58] mov r0, #0 ldr r1, [sp, #0x34] str r0, [sp, #0x5c] str r0, [sp, #0x6c] mov r0, #0x64 str r1, [sp, #0x60] mov r1, #0x42 str r0, [sp, #0x70] mov r0, #2 str r0, [sp, #0x74] mov r0, #5 str r0, [sp, #0x78] ldr r2, [sp, #0xa0] lsl r1, r1, #2 add r1, r2, r1 add r0, sp, #0x4c str r6, [sp, #0x64] str r1, [sp, #0x68] bl FUN_020117E8 ldr r1, [sp, #0x94] add r7, r0, #0 bl FUN_02011AC0 mov r2, #0x42 ldr r3, [sp, #0xa0] lsl r2, r2, #2 add r0, r7, #0 add r1, r6, #0 add r2, r3, r2 bl FUN_020118C4 cmp r4, #0 bne _0225A570 add r0, sp, #0x3c bl FUN_02019178 _0225A570: str r7, [r5] add r3, sp, #0x30 ldmia r3!, {r0, r1} add r2, r5, #4 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [sp, #0x2c] strh r0, [r5, #0x10] add sp, #0x7c pop {r4, r5, r6, r7, pc} nop _0225A588: .word 0x000004C8 thumb_func_start MOD11_0225A58C MOD11_0225A58C: ; 0x0225A58C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x4d mov r6, #0 lsl r0, r0, #4 add r4, r5, r0 add r7, r6, #0 _0225A59A: ldr r0, _0225A5BC ; =0x000004CC ldr r0, [r5, r0] cmp r0, #0 beq _0225A5B0 bl FUN_02011870 add r0, r4, #0 bl FUN_0201D5E8 ldr r0, _0225A5BC ; =0x000004CC str r7, [r5, r0] _0225A5B0: add r6, r6, #1 add r5, #0x14 add r4, #0x14 cmp r6, #0xd blt _0225A59A pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225A5BC: .word 0x000004CC thumb_func_start MOD11_0225A5C0 MOD11_0225A5C0: ; 0x0225A5C0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 ldr r0, [r7] bl MOD11_0222FF68 mov r1, #5 bl FUN_0201886C add r4, r0, #0 add r0, r7, #0 add r1, sp, #4 mov r2, #0 bl MOD11_0225ACD4 add r0, sp, #0 ldrb r0, [r0, #4] cmp r0, #1 bne _0225A63A add r0, r7, #0 mov r1, #1 add r2, sp, #0 mov r3, #0 bl MOD11_0225AD2C add r0, sp, #0 ldrb r0, [r0, #2] cmp r0, #1 bne _0225A61E mov r5, #0xc mov r0, #0xa9 lsl r6, r5, #5 lsl r0, r0, #2 mov r2, #0xf _0225A604: lsl r1, r6, #1 add r1, r4, r1 add r3, r2, #0 add r1, #0x1e _0225A60C: add r3, r3, #1 strh r0, [r1] add r1, r1, #2 cmp r3, #0x10 ble _0225A60C add r5, r5, #1 add r6, #0x20 cmp r5, #0x10 ble _0225A604 _0225A61E: add r0, sp, #0 ldrb r0, [r0, #3] cmp r0, #1 bne _0225A63A mov r0, #0xa1 lsl r0, r0, #2 add r1, r4, r0 mov r2, #2 add r0, #0x20 _0225A630: add r2, r2, #1 strh r0, [r1] add r1, r1, #2 cmp r2, #0xc ble _0225A630 _0225A63A: add r0, sp, #0 ldrb r0, [r0, #5] cmp r0, #1 bne _0225A694 add r0, r7, #0 mov r1, #2 add r2, sp, #0 mov r3, #0 bl MOD11_0225AD2C add r0, sp, #0 ldrb r0, [r0, #2] cmp r0, #1 bne _0225A668 ldr r0, _0225A698 ; =0x000002A6 mov r2, #0x13 add r1, r4, r0 sub r0, r0, #2 _0225A65E: add r2, r2, #1 strh r0, [r1] add r1, r1, #2 cmp r2, #0x1d ble _0225A65E _0225A668: add r0, sp, #0 ldrb r0, [r0, #3] cmp r0, #1 bne _0225A694 mov r0, #0xa9 mov r5, #3 mov r3, #0x60 lsl r0, r0, #2 mov r2, #0xf _0225A67A: lsl r1, r3, #1 add r1, r4, r1 add r6, r2, #0 add r1, #0x1e _0225A682: add r6, r6, #1 strh r0, [r1] add r1, r1, #2 cmp r6, #0x10 ble _0225A682 add r5, r5, #1 add r3, #0x20 cmp r5, #7 ble _0225A67A _0225A694: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225A698: .word 0x000002A6 thumb_func_start MOD11_0225A69C MOD11_0225A69C: ; 0x0225A69C cmp r1, #2 blt _0225A6A2 sub r1, r1, #2 _0225A6A2: mov r2, #0x46 lsl r2, r2, #2 add r0, #0x68 mul r2, r1 add r0, r0, r2 bx lr .align 2, 0 thumb_func_start MOD11_0225A6B0 MOD11_0225A6B0: ; 0x0225A6B0 push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp] mov r0, #0 str r0, [sp, #0x14] ldr r0, [sp] mov r1, #0x13 str r0, [sp, #0x10] add r0, #0x90 str r0, [sp, #0x10] ldr r0, [sp] lsl r1, r1, #4 str r0, [sp, #0xc] add r0, #0xe0 str r0, [sp, #0xc] ldr r0, [sp] add r0, r0, r1 str r0, [sp, #8] _0225A6D4: mov r0, #0 str r0, [sp, #0x18] ldr r0, [sp] ldr r7, [sp, #0x10] ldr r6, [sp, #0xc] ldr r5, [sp, #8] str r0, [sp, #4] add r4, r0, #0 _0225A6E4: ldr r0, [sp, #4] add r0, #0x80 ldr r0, [r0] bl FUN_02016A18 add r0, r4, #0 add r0, #0x9c ldr r0, [r0] cmp r0, #0 beq _0225A6FE add r0, r7, #0 bl FUN_02019178 _0225A6FE: add r0, r4, #0 add r0, #0xec ldr r0, [r0] cmp r0, #0 beq _0225A70E add r0, r6, #0 bl FUN_02019178 _0225A70E: mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _0225A71E add r0, r5, #0 bl FUN_02019178 _0225A71E: ldr r0, [sp, #4] add r4, #0x14 add r0, r0, #4 str r0, [sp, #4] ldr r0, [sp, #0x18] add r7, #0x14 add r0, r0, #1 add r6, #0x14 add r5, #0x14 str r0, [sp, #0x18] cmp r0, #4 blt _0225A6E4 mov r0, #0x46 ldr r1, [sp] lsl r0, r0, #2 add r1, r1, r0 str r1, [sp] ldr r1, [sp, #0x10] add r1, r1, r0 str r1, [sp, #0x10] ldr r1, [sp, #0xc] add r1, r1, r0 str r1, [sp, #0xc] ldr r1, [sp, #8] add r0, r1, r0 str r0, [sp, #8] ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] cmp r0, #4 blt _0225A6D4 add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_start MOD11_0225A760 MOD11_0225A760: ; 0x0225A760 push {r3, r4, r5, r6, r7, lr} sub sp, #0x50 add r7, r0, #0 ldr r0, [r7] add r5, r1, #0 str r2, [sp, #8] bl MOD11_022300C4 add r4, r0, #0 add r0, r7, #0 add r1, r5, #0 bl MOD11_0225A69C str r0, [sp, #0x38] mov r0, #6 bl FUN_020799E8 str r0, [sp, #0xc] ldr r1, _0225A95C ; =0x000003AA add r0, r4, #0 bl FUN_0200A914 str r0, [sp, #0x28] ldr r0, [r7] bl MOD11_02230138 str r0, [sp, #0x24] mov r0, #0x10 mov r1, #5 bl FUN_020219F4 str r0, [sp, #0x30] ldr r1, _0225A960 ; =0x000003A9 add r0, r4, #0 bl FUN_0200A914 ldr r4, [sp, #0x38] str r0, [sp, #0x2c] mov r0, #0 str r0, [sp, #0x34] add r0, r4, #0 str r0, [sp, #0x1c] str r0, [sp, #0x18] add r0, #0x28 str r0, [sp, #0x18] add r0, r4, #0 str r0, [sp, #0x14] add r0, #0x78 str r0, [sp, #0x14] add r0, r4, #0 str r0, [sp, #0x10] add r0, #0xc8 ldr r5, [sp, #8] add r6, r4, #0 str r0, [sp, #0x10] _0225A7CE: ldrh r0, [r5] ldrh r1, [r4] cmp r0, r1 beq _0225A814 cmp r0, #0 beq _0225A814 mov r1, #3 bl FUN_0206AB18 str r0, [sp, #0x3c] bl FUN_0206E12C str r0, [sp, #0x40] ldr r0, [sp, #0x3c] bl FUN_0206E0F0 add r1, r0, #0 mov r0, #5 str r0, [sp] ldr r0, [sp, #0x40] mov r2, #1 add r3, sp, #0x4c bl FUN_02006BB0 str r0, [sp, #0x44] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x1c] ldr r0, [r0, #0x14] ldr r1, [r1, #0x18] ldr r2, [sp, #0xc] bl MIi_CpuCopy32 ldr r0, [sp, #0x44] bl FUN_02016A18 _0225A814: ldr r0, [r6, #0x34] cmp r0, #0 beq _0225A826 ldrh r1, [r5] ldrh r0, [r4] cmp r1, r0 beq _0225A846 cmp r1, #0 beq _0225A846 _0225A826: ldrh r0, [r5] mov r1, #5 bl FUN_0200AA14 str r0, [sp, #0x48] ldr r0, _0225A964 ; =0x00070809 ldr r1, [sp, #0x48] str r0, [sp] ldr r3, [sp, #0x18] add r0, r7, #0 mov r2, #2 bl MOD11_0225A968 ldr r0, [sp, #0x48] bl FUN_02021A20 _0225A846: add r0, r6, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _0225A876 add r0, r6, #0 add r0, #0xd4 ldr r0, [r0] cmp r0, #0 beq _0225A876 ldrh r1, [r5] cmp r1, #0 bne _0225A876 ldrh r0, [r4] cmp r1, r0 bne _0225A876 ldrh r1, [r5, #8] ldrh r0, [r4, #8] cmp r1, r0 bne _0225A876 ldrh r1, [r5, #0x10] ldrh r0, [r4, #0x10] cmp r1, r0 beq _0225A906 _0225A876: mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldrh r2, [r5, #8] ldr r0, [sp, #0x24] mov r1, #0 mov r3, #2 bl FUN_0200AD38 mov r0, #1 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldrh r2, [r5, #0x10] ldr r0, [sp, #0x24] mov r1, #1 mov r3, #2 bl FUN_0200AD38 ldr r0, [sp, #0x24] ldr r1, [sp, #0x30] ldr r2, [sp, #0x2c] bl FUN_0200B7B8 ldrh r0, [r5, #8] ldrh r1, [r5, #0x10] bl MOD11_0225B3D4 str r0, [sp, #0x20] add r0, r6, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _0225A8CC ldrh r1, [r5] ldrh r0, [r4] cmp r1, r0 bne _0225A8CC ldrh r1, [r5, #8] ldrh r0, [r4, #8] cmp r1, r0 beq _0225A8DC _0225A8CC: ldr r0, [sp, #0x20] ldr r1, [sp, #0x30] str r0, [sp] ldr r3, [sp, #0x14] add r0, r7, #0 mov r2, #0 bl MOD11_0225A968 _0225A8DC: add r0, r6, #0 add r0, #0xd4 ldr r0, [r0] cmp r0, #0 beq _0225A8F6 ldrh r1, [r5] ldrh r0, [r4] cmp r1, r0 bne _0225A8F6 ldrh r1, [r5, #8] ldrh r0, [r4, #8] cmp r1, r0 beq _0225A906 _0225A8F6: ldr r0, [sp, #0x20] ldr r1, [sp, #0x28] str r0, [sp] ldr r3, [sp, #0x10] add r0, r7, #0 mov r2, #0 bl MOD11_0225A968 _0225A906: ldr r0, [sp, #0x1c] add r4, r4, #2 add r0, r0, #4 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r5, r5, #2 add r0, #0x14 str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r6, #0x14 add r0, #0x14 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r0, #0x14 str r0, [sp, #0x10] ldr r0, [sp, #0x34] add r0, r0, #1 str r0, [sp, #0x34] cmp r0, #4 bge _0225A930 b _0225A7CE _0225A930: ldr r0, [sp, #0x28] bl FUN_02021A20 ldr r0, [sp, #0x2c] bl FUN_02021A20 ldr r0, [sp, #0x30] bl FUN_02021A20 mov r0, #0xc _0225A944: ldr r1, [sp, #8] ldrh r2, [r1] add r1, r1, #2 str r1, [sp, #8] ldr r1, [sp, #0x38] strh r2, [r1] add r1, r1, #2 str r1, [sp, #0x38] sub r0, r0, #1 bne _0225A944 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225A95C: .word 0x000003AA _0225A960: .word 0x000003A9 _0225A964: .word 0x00070809 thumb_func_start MOD11_0225A968 MOD11_0225A968: ; 0x0225A968 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r7, r2, #0 add r6, r1, #0 add r5, r0, #0 add r4, r3, #0 add r0, r6, #0 add r1, r7, #0 add r2, sp, #0x1c add r3, sp, #0x18 bl MOD11_0225A428 ldr r0, [sp, #0x1c] strh r0, [r4, #0x12] ldr r0, [sp, #0x18] strh r0, [r4, #0x10] ldr r0, [r4, #0xc] cmp r0, #0 beq _0225A994 add r0, r4, #0 bl FUN_02019178 _0225A994: add r0, r4, #0 bl FUN_0201901C ldr r0, [r5] bl MOD11_0222FF68 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r2, [sp, #0x18] add r1, r4, #0 lsl r2, r2, #0x18 lsr r2, r2, #0x18 mov r3, #2 bl FUN_020190EC mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x38] add r1, r7, #0 str r0, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] add r0, r4, #0 add r2, r6, #0 str r3, [sp, #0x14] bl FUN_0201BE3C add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0225A9D4 MOD11_0225A9D4: ; 0x0225A9D4 push {r4, r5, r6, r7, lr} sub sp, #0x44 add r5, r0, #0 str r0, [sp, #4] add r0, #0x18 str r0, [sp, #4] ldr r0, [r5] bl MOD11_02230078 str r0, [sp, #0xc] ldr r0, [r5] bl MOD11_02230080 ldr r1, _0225AAA8 ; =0x0000069E str r0, [sp, #8] ldrb r1, [r5, r1] add r0, r5, #0 bl MOD11_0225A69C ldr r4, _0225AAAC ; =0x0225F914 str r0, [sp] add r3, sp, #0x10 mov r2, #6 _0225AA02: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0225AA02 ldr r0, [r4] mov r4, #0 str r0, [r3] add r6, sp, #0x10 b _0225AAA0 _0225AA14: lsl r0, r4, #2 add r1, r5, r0 ldr r0, _0225AAB0 ; =0x00000604 ldr r0, [r1, r0] cmp r0, #0 beq _0225AA24 bl ErrorHandling _0225AA24: ldr r0, [sp, #4] lsl r1, r4, #1 ldrh r0, [r0, r1] cmp r0, #0 beq _0225AA9E mov r1, #3 bl FUN_0206AB18 add r2, r0, #0 ldr r0, _0225AAB4 ; =0x00004E35 ldr r1, _0225AAB8 ; =0x0225F72C add r0, r4, r0 str r0, [sp, #0x24] lsl r0, r4, #2 ldrh r1, [r1, r0] add r3, sp, #0x10 strh r1, [r6] ldr r1, _0225AAB8 ; =0x0225F72C add r0, r1, r0 ldrh r0, [r0, #2] ldr r1, [sp, #8] strh r0, [r6, #2] ldr r0, [sp, #0xc] bl FUN_0206E240 lsl r1, r4, #2 add r2, r5, r1 ldr r1, _0225AAB0 ; =0x00000604 mov r3, #0x11 str r0, [r2, r1] add r0, r1, #0 ldr r0, [r2, r0] mov r1, #0 mov r2, #2 ldrsh r1, [r6, r1] ldrsh r2, [r6, r2] lsl r3, r3, #0x10 bl FUN_0200C750 lsl r0, r4, #2 add r1, r5, r0 ldr r0, _0225AAB0 ; =0x00000604 ldr r0, [r1, r0] ldr r0, [r0] bl FUN_02020350 add r7, r0, #0 mov r0, #6 bl FUN_020799E8 add r2, r0, #0 ldr r0, [sp] lsl r3, r4, #2 add r0, r0, r3 mov r3, #0x66 ldr r1, [r7, #8] lsl r3, r3, #0x14 ldr r0, [r0, #0x18] add r1, r3, r1 bl MIi_CpuCopy16 _0225AA9E: add r4, r4, #1 _0225AAA0: cmp r4, #4 blt _0225AA14 add sp, #0x44 pop {r4, r5, r6, r7, pc} .align 2, 0 _0225AAA8: .word 0x0000069E _0225AAAC: .word 0x0225F914 _0225AAB0: .word 0x00000604 _0225AAB4: .word 0x00004E35 _0225AAB8: .word 0x0225F72C thumb_func_start MOD11_0225AABC MOD11_0225AABC: ; 0x0225AABC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] bl MOD11_02230078 ldr r0, [r5] bl MOD11_02230080 mov r4, #0 ldr r7, _0225AAEC ; =0x00000604 add r6, r4, #0 _0225AAD2: ldr r0, [r5, r7] cmp r0, #0 beq _0225AAE0 bl FUN_0206E270 ldr r0, _0225AAEC ; =0x00000604 str r6, [r5, r0] _0225AAE0: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0225AAD2 pop {r3, r4, r5, r6, r7, pc} nop _0225AAEC: .word 0x00000604 thumb_func_start MOD11_0225AAF0 MOD11_0225AAF0: ; 0x0225AAF0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] bl MOD11_02230078 ldr r0, [r5] bl MOD11_02230080 mov r4, #0 add r6, r0, #0 add r7, r4, #0 _0225AB06: ldr r0, _0225AB2C ; =0x00000614 ldr r0, [r5, r0] cmp r0, #0 beq _0225AB20 bl FUN_0206E2E8 ldr r1, _0225AB30 ; =0x00004E39 add r0, r6, #0 add r1, r4, r1 bl FUN_0206E2E0 ldr r0, _0225AB2C ; =0x00000614 str r7, [r5, r0] _0225AB20: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0225AB06 pop {r3, r4, r5, r6, r7, pc} nop _0225AB2C: .word 0x00000614 _0225AB30: .word 0x00004E39 thumb_func_start MOD11_0225AB34 MOD11_0225AB34: ; 0x0225AB34 push {r3, r4, r5, lr} ldr r0, [r0] add r5, r1, #0 add r4, r2, #0 bl MOD11_022300CC add r4, #8 add r1, r5, #0 mov r2, #5 mov r3, #1 str r4, [sp] bl FUN_02211E7C pop {r3, r4, r5, pc} thumb_func_start MOD11_0225AB50 MOD11_0225AB50: ; 0x0225AB50 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 bl MOD11_022300CC add r6, r0, #0 mov r7, #0 b _0225AB96 _0225AB62: ldr r1, _0225AB9C ; =0x0225F6A8 lsl r2, r4, #1 add r1, r1, r2 ldr r2, _0225ABA0 ; =0x0225F74C lsl r3, r4, #2 add r2, r2, r3 add r0, r5, #0 mov r3, #3 str r7, [sp] bl MOD11_0225ADD8 mov r0, #0x20 str r0, [sp] add r3, r4, #0 mov r1, #7 add r3, #8 lsl r3, r3, #0x14 ldr r2, [r5, #0x58] lsl r1, r1, #6 add r1, r2, r1 add r0, r6, #0 mov r2, #1 lsr r3, r3, #0x10 bl FUN_02003054 add r4, r4, #1 _0225AB96: cmp r4, #4 blt _0225AB62 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225AB9C: .word 0x0225F6A8 _0225ABA0: .word 0x0225F74C thumb_func_start MOD11_0225ABA4 MOD11_0225ABA4: ; 0x0225ABA4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 ldr r1, _0225AC50 ; =0x0225F684 add r5, r0, #0 ldrb r2, [r1, #6] add r0, sp, #0x10 strb r2, [r0] ldrb r2, [r1, #7] strb r2, [r0, #1] ldrb r2, [r1, #8] ldrb r1, [r1, #9] strb r2, [r0, #2] strb r1, [r0, #3] ldr r0, [r5] bl MOD11_0222FF68 add r6, r0, #0 ldr r0, [r5] bl MOD11_022300CC add r7, r0, #0 mov r0, #0 str r0, [sp] ldr r2, _0225AC54 ; =0x0225F6C0 lsl r1, r4, #1 add r1, r2, r1 ldr r3, _0225AC58 ; =0x0225F71C lsl r2, r4, #2 add r2, r3, r2 add r0, r5, #0 mov r3, #4 bl MOD11_0225ADD8 mov r0, #0x20 str r0, [sp] add r3, sp, #0x10 ldrb r3, [r3, r4] mov r1, #7 ldr r2, [r5, #0x58] lsl r1, r1, #6 lsl r3, r3, #0x14 add r1, r2, r1 add r0, r7, #0 mov r2, #1 lsr r3, r3, #0x10 bl FUN_02003054 add r0, r6, #0 mov r1, #4 bl FUN_0201AC68 ldr r0, _0225AC58 ; =0x0225F71C lsl r1, r4, #2 ldrb r2, [r0, r1] add r3, r0, r1 str r2, [sp] ldrb r4, [r3, #3] ldrb r2, [r3, #2] sub r2, r4, r2 add r2, r2, #1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 str r2, [sp, #4] ldrb r0, [r0, r1] ldrb r2, [r3, #1] mov r1, #5 sub r0, r2, r0 add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #0x11 str r0, [sp, #0xc] ldrb r3, [r3, #2] ldr r2, _0225AC5C ; =0x000002FF add r0, r6, #0 bl FUN_02018540 add r0, r6, #0 mov r1, #5 bl FUN_0201AC68 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0225AC50: .word 0x0225F684 _0225AC54: .word 0x0225F6C0 _0225AC58: .word 0x0225F71C _0225AC5C: .word 0x000002FF thumb_func_start MOD11_0225AC60 MOD11_0225AC60: ; 0x0225AC60 push {r4, r5, r6, lr} mov r5, #0 mov r6, #1 add r4, r5, #0 _0225AC68: add r0, r5, #4 cmp r0, #6 beq _0225AC7A lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r4, #0 bl FUN_0201797C b _0225AC84 _0225AC7A: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 bl FUN_0201797C _0225AC84: add r5, r5, #1 cmp r5, #4 blt _0225AC68 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225AC8C MOD11_0225AC8C: ; 0x0225AC8C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r2, #0 cmp r1, #1 bne _0225AC9A bl MOD11_0225ACB0 _0225AC9A: cmp r4, #1 bne _0225ACA8 ldr r0, _0225ACAC ; =MOD11_0225B76C add r1, r5, #0 mov r2, #0xa bl FUN_0200CA98 _0225ACA8: pop {r3, r4, r5, pc} nop _0225ACAC: .word MOD11_0225B76C thumb_func_start MOD11_0225ACB0 MOD11_0225ACB0: ; 0x0225ACB0 push {r4, lr} add r4, r0, #0 bl MOD11_0225AABC add r0, r4, #0 bl MOD11_0225AAF0 add r0, r4, #0 bl MOD11_0225A58C add r0, r4, #0 bl MOD11_0225A1E4 add r0, r4, #0 bl MOD11_0225A234 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0225ACD4 MOD11_0225ACD4: ; 0x0225ACD4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 add r6, r5, #0 add r1, sp, #0 add r7, r2, #0 add r6, #0x18 bl MOD11_022314E0 mov r0, #0 b _0225AD1E _0225ACEE: add r2, r0, #2 add r1, sp, #0 ldrb r1, [r1, r2] cmp r7, #1 bne _0225AD0A lsl r1, r1, #3 add r1, r6, r1 ldrb r1, [r1, #1] lsl r1, r1, #0x1d lsr r1, r1, #0x1f bne _0225AD0A mov r1, #0 strb r1, [r4, r0] b _0225AD1C _0225AD0A: mov r1, #0x6a lsl r1, r1, #4 ldrb r1, [r5, r1] lsl r2, r0, #2 lsl r3, r1, #4 ldr r1, _0225AD28 ; =0x0225F9EC add r1, r1, r3 ldr r1, [r2, r1] strb r1, [r4, r0] _0225AD1C: add r0, r0, #1 _0225AD1E: cmp r0, #4 blt _0225ACEE add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0225AD28: .word 0x0225F9EC thumb_func_start MOD11_0225AD2C MOD11_0225AD2C: ; 0x0225AD2C push {r4, lr} mov r4, #0x6a lsl r4, r4, #4 ldrb r4, [r0, r4] cmp r4, #0xb bhi _0225AD76 add r4, r4, r4 add r4, pc ldrh r4, [r4, #6] lsl r4, r4, #0x10 asr r4, r4, #0x10 add pc, r4 _0225AD44: ; jump table .short _0225AD5C - _0225AD44 - 2 ; case 0 .short _0225AD76 - _0225AD44 - 2 ; case 1 .short _0225AD76 - _0225AD44 - 2 ; case 2 .short _0225AD76 - _0225AD44 - 2 ; case 3 .short _0225AD76 - _0225AD44 - 2 ; case 4 .short _0225AD76 - _0225AD44 - 2 ; case 5 .short _0225AD76 - _0225AD44 - 2 ; case 6 .short _0225AD76 - _0225AD44 - 2 ; case 7 .short _0225AD5C - _0225AD44 - 2 ; case 8 .short _0225AD5C - _0225AD44 - 2 ; case 9 .short _0225AD5C - _0225AD44 - 2 ; case 10 .short _0225AD5C - _0225AD44 - 2 ; case 11 _0225AD5C: mov r4, #0 add r0, r4, #0 mov r3, #1 sub r1, r1, #1 _0225AD64: cmp r4, r1 bne _0225AD6C strb r3, [r2, r4] b _0225AD6E _0225AD6C: strb r0, [r2, r4] _0225AD6E: add r4, r4, #1 cmp r4, #4 blt _0225AD64 pop {r4, pc} _0225AD76: add r1, r2, #0 add r2, r3, #0 bl MOD11_0225ACD4 pop {r4, pc} thumb_func_start MOD11_0225AD80 MOD11_0225AD80: ; 0x0225AD80 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _0225AD90 bl ErrorHandling _0225AD90: mov r0, #0x6b lsl r0, r0, #4 add r0, r4, r0 mov r1, #0 mov r2, #0x24 bl MI_CpuFill8 ldr r2, _0225ADAC ; =0x00000514 add r0, r5, #0 add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #8] pop {r3, r4, r5, pc} .align 2, 0 _0225ADAC: .word 0x00000514 thumb_func_start MOD11_0225ADB0 MOD11_0225ADB0: ; 0x0225ADB0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _0225ADCE bl FUN_0200CAB4 mov r0, #0x6b lsl r0, r0, #4 mov r1, #0 add r0, r4, r0 mov r2, #0x24 str r1, [r4, #8] bl MI_CpuFill8 _0225ADCE: pop {r4, pc} thumb_func_start MOD11_0225ADD0 MOD11_0225ADD0: ; 0x0225ADD0 bx lr .align 2, 0 thumb_func_start MOD11_0225ADD4 MOD11_0225ADD4: ; 0x0225ADD4 bx lr .align 2, 0 thumb_func_start MOD11_0225ADD8 MOD11_0225ADD8: ; 0x0225ADD8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5] add r6, r1, #0 add r4, r2, #0 add r7, r3, #0 bl MOD11_0222FF68 mov r1, #4 str r0, [sp, #4] bl FUN_0201886C mov ip, r0 lsl r0, r7, #2 add r0, r5, r0 ldr r0, [r0, #0x3c] ldrb r7, [r4] str r0, [sp] ldr r0, [sp, #0x20] lsl r0, r0, #1 ldrsh r1, [r6, r0] ldrb r0, [r4, #1] cmp r7, r0 bgt _0225AE40 lsl r6, r7, #5 _0225AE0C: lsl r2, r6, #1 mov r0, ip add r5, r0, r2 ldr r0, [sp] ldrb r3, [r4, #3] add r2, r0, r2 ldrb r0, [r4, #2] cmp r0, r3 bgt _0225AE36 lsl r3, r0, #1 add r2, r2, r3 add r3, r5, r3 _0225AE24: ldrh r5, [r2] add r0, r0, #1 add r2, r2, #2 add r5, r1, r5 strh r5, [r3] ldrb r5, [r4, #3] add r3, r3, #2 cmp r0, r5 ble _0225AE24 _0225AE36: ldrb r0, [r4, #1] add r7, r7, #1 add r6, #0x20 cmp r7, r0 ble _0225AE0C _0225AE40: ldr r0, [sp, #4] mov r1, #4 bl FUN_0201AC68 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD11_0225AE4C MOD11_0225AE4C: ; 0x0225AE4C push {r3, r4, lr} sub sp, #0xc add r4, r1, #0 ldr r0, [r4] bl MOD11_0222FF68 mov r3, #0x6b lsl r3, r3, #4 ldrsh r0, [r4, r3] cmp r0, #0 beq _0225AE6C cmp r0, #1 beq _0225AEDC cmp r0, #2 beq _0225AEF8 b _0225AF66 _0225AE6C: mov r0, #2 str r0, [sp] add r1, r3, #4 add r2, r3, #0 add r3, #0x10 add r2, #8 ldrb r3, [r4, r3] ldr r1, [r4, r1] ldr r2, [r4, r2] add r0, r4, #0 bl MOD11_0225ADD8 ldr r0, _0225AF8C ; =0x000006C1 add r2, sp, #4 ldrb r1, [r4, r0] mov r0, #0x14 mul r0, r1 add r1, r4, r0 ldr r0, _0225AF90 ; =0x000004CC ldr r0, [r1, r0] add r1, sp, #8 bl FUN_020119A4 ldr r0, _0225AF8C ; =0x000006C1 ldr r2, [sp, #4] ldrb r1, [r4, r0] mov r0, #0x14 sub r2, r2, #2 mul r0, r1 add r1, r4, r0 ldr r0, _0225AF90 ; =0x000004CC ldr r0, [r1, r0] ldr r1, [sp, #8] bl FUN_020118C4 ldr r0, _0225AF94 ; =0x000006C2 ldrb r1, [r4, r0] cmp r1, #0xff beq _0225AECE lsl r1, r1, #2 add r1, r4, r1 sub r0, #0x9e ldr r0, [r1, r0] cmp r0, #0 beq _0225AECE mov r1, #0 sub r2, r1, #2 bl FUN_0200C82C _0225AECE: mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0xc add r1, r1, #1 strh r1, [r4, r0] pop {r3, r4, pc} _0225AEDC: add r0, r3, #2 ldrsh r0, [r4, r0] add r1, r0, #1 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 ble _0225AF86 mov r1, #0 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r3] add r0, r0, #1 strh r0, [r4, r3] _0225AEF8: mov r0, #1 ldr r3, _0225AF98 ; =0x000006B4 str r0, [sp] add r2, r3, #4 ldr r1, [r4, r3] add r3, #0xc ldrb r3, [r4, r3] ldr r2, [r4, r2] add r0, r4, #0 bl MOD11_0225ADD8 ldr r0, _0225AF8C ; =0x000006C1 add r2, sp, #4 ldrb r1, [r4, r0] mov r0, #0x14 mul r0, r1 add r1, r4, r0 ldr r0, _0225AF90 ; =0x000004CC ldr r0, [r1, r0] add r1, sp, #8 bl FUN_020119A4 ldr r0, _0225AF8C ; =0x000006C1 ldr r2, [sp, #4] ldrb r1, [r4, r0] mov r0, #0x14 add r2, r2, #1 mul r0, r1 add r1, r4, r0 ldr r0, _0225AF90 ; =0x000004CC ldr r0, [r1, r0] ldr r1, [sp, #8] bl FUN_020118C4 ldr r0, _0225AF94 ; =0x000006C2 ldrb r1, [r4, r0] cmp r1, #0xff beq _0225AF58 lsl r1, r1, #2 add r1, r4, r1 sub r0, #0x9e ldr r0, [r1, r0] cmp r0, #0 beq _0225AF58 mov r1, #0 mov r2, #1 bl FUN_0200C82C _0225AF58: mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0xc add r1, r1, #1 strh r1, [r4, r0] pop {r3, r4, pc} _0225AF66: add r0, r3, #2 ldrsh r0, [r4, r0] add r1, r0, #1 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 ble _0225AF86 add r0, r4, #0 mov r1, #1 mov r2, #0 bl MOD11_0225AC8C add r0, r4, #0 bl MOD11_0225ADB0 _0225AF86: add sp, #0xc pop {r3, r4, pc} nop _0225AF8C: .word 0x000006C1 _0225AF90: .word 0x000004CC _0225AF94: .word 0x000006C2 _0225AF98: .word 0x000006B4 thumb_func_start MOD11_0225AF9C MOD11_0225AF9C: ; 0x0225AF9C push {r4, r5, r6, r7, lr} sub sp, #0x24 add r4, r1, #0 ldr r0, [r4] bl MOD11_0222FF68 ldr r0, _0225B21C ; =0x000006BC add r1, r4, #0 ldr r0, [r4, r0] add r1, #0x18 cmp r0, #4 bgt _0225AFCE cmp r0, #0 blt _0225B00A add r2, r0, r0 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0225AFC4: ; jump table .short _0225B00A - _0225AFC4 - 2 ; case 0 .short _0225AFD2 - _0225AFC4 - 2 ; case 1 .short _0225AFE0 - _0225AFC4 - 2 ; case 2 .short _0225AFEE - _0225AFC4 - 2 ; case 3 .short _0225AFFC - _0225AFC4 - 2 ; case 4 _0225AFCE: cmp r0, #0xff b _0225B00A _0225AFD2: mov r0, #5 str r0, [sp, #8] ldrh r0, [r1] mov r5, #0 mov r6, #9 str r0, [sp, #4] b _0225B012 _0225AFE0: mov r0, #6 str r0, [sp, #8] ldrh r0, [r1, #2] mov r5, #1 mov r6, #0xa str r0, [sp, #4] b _0225B012 _0225AFEE: mov r0, #7 str r0, [sp, #8] ldrh r0, [r1, #4] mov r5, #2 mov r6, #0xb str r0, [sp, #4] b _0225B012 _0225AFFC: mov r0, #8 str r0, [sp, #8] ldrh r0, [r1, #6] mov r5, #3 mov r6, #0xc str r0, [sp, #4] b _0225B012 _0225B00A: mov r5, #0 add r6, r5, #0 str r5, [sp, #8] str r5, [sp, #4] _0225B012: mov r3, #0x6b lsl r3, r3, #4 ldrsh r0, [r4, r3] cmp r0, #0 beq _0225B026 cmp r0, #1 beq _0225B100 cmp r0, #2 beq _0225B11E b _0225B1F6 _0225B026: mov r0, #2 str r0, [sp] add r1, r3, #4 add r2, r3, #0 add r3, #0x10 add r2, #8 ldrb r3, [r4, r3] ldr r1, [r4, r1] ldr r2, [r4, r2] add r0, r4, #0 bl MOD11_0225ADD8 ldr r0, _0225B21C ; =0x000006BC add r1, sp, #0x20 ldr r0, [r4, r0] cmp r0, #0xff beq _0225B0DA ldr r0, _0225B220 ; =0x000004CC add r2, sp, #0x1c add r7, r4, r0 mov r0, #0x14 mul r0, r5 str r0, [sp, #0xc] ldr r0, [r7, r0] bl FUN_020119A4 ldr r0, [sp, #0xc] ldr r2, [sp, #0x1c] ldr r0, [r7, r0] ldr r1, [sp, #0x20] sub r2, r2, #2 bl FUN_020118C4 ldr r0, _0225B220 ; =0x000004CC add r1, sp, #0x20 add r7, r4, r0 mov r0, #0x14 mul r0, r6 str r0, [sp, #0x10] ldr r0, [r7, r0] add r2, sp, #0x1c bl FUN_020119A4 ldr r0, [sp, #0x10] ldr r2, [sp, #0x1c] ldr r0, [r7, r0] ldr r1, [sp, #0x20] sub r2, r2, #2 bl FUN_020118C4 ldr r0, _0225B220 ; =0x000004CC mov r1, #0x14 add r6, r4, r0 ldr r0, [sp, #8] add r2, sp, #0x1c add r7, r0, #0 mul r7, r1 ldr r0, [r6, r7] add r1, sp, #0x20 bl FUN_020119A4 ldr r2, [sp, #0x1c] ldr r0, [r6, r7] ldr r1, [sp, #0x20] sub r2, r2, #2 bl FUN_020118C4 ldr r0, [sp, #4] cmp r0, #0 beq _0225B0F2 lsl r5, r5, #2 ldr r0, _0225B224 ; =0x00000604 add r1, r4, r5 ldr r0, [r1, r0] mov r1, #0 ldr r0, [r0] sub r2, r1, #2 bl FUN_0200C7FC ldr r0, _0225B228 ; =0x00000614 add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _0225B0F2 mov r1, #0 ldr r0, [r0] sub r2, r1, #2 bl FUN_0200C7FC b _0225B0F2 _0225B0DA: ldr r0, _0225B22C ; =0x0000051C add r2, sp, #0x1c ldr r0, [r4, r0] bl FUN_020119A4 ldr r0, _0225B22C ; =0x0000051C ldr r2, [sp, #0x1c] ldr r0, [r4, r0] ldr r1, [sp, #0x20] sub r2, r2, #2 bl FUN_020118C4 _0225B0F2: mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0x24 add r1, r1, #1 strh r1, [r4, r0] pop {r4, r5, r6, r7, pc} _0225B100: add r0, r3, #2 ldrsh r0, [r4, r0] add r1, r0, #1 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 bgt _0225B112 b _0225B216 _0225B112: mov r1, #0 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r3] add r0, r0, #1 strh r0, [r4, r3] _0225B11E: mov r0, #1 ldr r3, _0225B230 ; =0x000006B4 str r0, [sp] add r2, r3, #4 ldr r1, [r4, r3] add r3, #0xc ldrb r3, [r4, r3] ldr r2, [r4, r2] add r0, r4, #0 bl MOD11_0225ADD8 ldr r0, _0225B21C ; =0x000006BC add r1, sp, #0x20 ldr r0, [r4, r0] cmp r0, #0xff beq _0225B1D0 ldr r0, _0225B220 ; =0x000004CC add r2, sp, #0x1c add r7, r4, r0 mov r0, #0x14 mul r0, r5 str r0, [sp, #0x14] ldr r0, [r7, r0] bl FUN_020119A4 ldr r0, [sp, #0x14] ldr r2, [sp, #0x1c] ldr r0, [r7, r0] ldr r1, [sp, #0x20] add r2, r2, #1 bl FUN_020118C4 ldr r0, _0225B220 ; =0x000004CC add r1, sp, #0x20 add r7, r4, r0 mov r0, #0x14 mul r0, r6 str r0, [sp, #0x18] ldr r0, [r7, r0] add r2, sp, #0x1c bl FUN_020119A4 ldr r0, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r0, [r7, r0] ldr r1, [sp, #0x20] add r2, r2, #1 bl FUN_020118C4 ldr r0, _0225B220 ; =0x000004CC mov r1, #0x14 add r6, r4, r0 ldr r0, [sp, #8] add r2, sp, #0x1c add r7, r0, #0 mul r7, r1 ldr r0, [r6, r7] add r1, sp, #0x20 bl FUN_020119A4 ldr r2, [sp, #0x1c] ldr r0, [r6, r7] ldr r1, [sp, #0x20] add r2, r2, #1 bl FUN_020118C4 ldr r0, [sp, #4] cmp r0, #0 beq _0225B1E8 lsl r5, r5, #2 ldr r0, _0225B224 ; =0x00000604 add r1, r4, r5 ldr r0, [r1, r0] mov r1, #0 ldr r0, [r0] mov r2, #1 bl FUN_0200C7FC ldr r0, _0225B228 ; =0x00000614 add r1, r4, r5 ldr r0, [r1, r0] cmp r0, #0 beq _0225B1E8 ldr r0, [r0] mov r1, #0 mov r2, #1 bl FUN_0200C7FC b _0225B1E8 _0225B1D0: ldr r0, _0225B22C ; =0x0000051C add r2, sp, #0x1c ldr r0, [r4, r0] bl FUN_020119A4 ldr r0, _0225B22C ; =0x0000051C ldr r2, [sp, #0x1c] ldr r0, [r4, r0] ldr r1, [sp, #0x20] add r2, r2, #1 bl FUN_020118C4 _0225B1E8: mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0x24 add r1, r1, #1 strh r1, [r4, r0] pop {r4, r5, r6, r7, pc} _0225B1F6: add r0, r3, #2 ldrsh r0, [r4, r0] add r1, r0, #1 add r0, r3, #2 strh r1, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 ble _0225B216 mov r1, #1 add r0, r4, #0 add r2, r1, #0 bl MOD11_0225AC8C add r0, r4, #0 bl MOD11_0225ADB0 _0225B216: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _0225B21C: .word 0x000006BC _0225B220: .word 0x000004CC _0225B224: .word 0x00000604 _0225B228: .word 0x00000614 _0225B22C: .word 0x0000051C _0225B230: .word 0x000006B4 thumb_func_start MOD11_0225B234 MOD11_0225B234: ; 0x0225B234 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 ldr r0, [r4] bl MOD11_0222FF68 mov r1, #0x6b lsl r1, r1, #4 ldrsh r0, [r4, r1] cmp r0, #3 bls _0225B24C b _0225B3AE _0225B24C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225B258: ; jump table .short _0225B260 - _0225B258 - 2 ; case 0 .short _0225B2E8 - _0225B258 - 2 ; case 1 .short _0225B304 - _0225B258 - 2 ; case 2 .short _0225B38E - _0225B258 - 2 ; case 3 _0225B260: add r1, #0x20 ldr r1, [r4, r1] add r0, r4, #0 add r2, sp, #4 mov r3, #1 bl MOD11_0225AD2C mov r5, #0 mov r7, #2 add r6, sp, #4 b _0225B2D6 _0225B276: ldrb r0, [r6, r5] cmp r0, #1 bne _0225B2D4 mov r1, #6 add r2, r5, #0 mul r2, r1 ldr r1, _0225B3C4 ; =0x0225F88C lsl r3, r5, #2 add r1, r1, r2 ldr r2, _0225B3C8 ; =0x0225F7FC add r0, r4, #0 add r2, r2, r3 mov r3, #4 str r7, [sp] bl MOD11_0225ADD8 mov r0, #0x14 mul r0, r5 add r1, r4, r0 ldr r0, _0225B3CC ; =0x000004CC ldr r0, [r1, r0] cmp r0, #0 beq _0225B2C0 add r1, sp, #0xc add r2, sp, #8 bl FUN_020119A4 mov r0, #0x14 mul r0, r5 add r1, r4, r0 ldr r0, _0225B3CC ; =0x000004CC ldr r2, [sp, #8] ldr r0, [r1, r0] ldr r1, [sp, #0xc] sub r2, r2, #2 bl FUN_020118C4 _0225B2C0: lsl r0, r5, #2 add r1, r4, r0 ldr r0, _0225B3D0 ; =0x00000624 ldr r0, [r1, r0] cmp r0, #0 beq _0225B2D4 mov r1, #0 sub r2, r1, #2 bl FUN_0200C82C _0225B2D4: add r5, r5, #1 _0225B2D6: cmp r5, #4 blt _0225B276 mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0x10 add r1, r1, #1 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _0225B2E8: add r0, r1, #2 ldrsh r0, [r4, r0] add r2, r0, #1 add r0, r1, #2 strh r2, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 ble _0225B3BE mov r2, #0 add r0, r1, #2 strh r2, [r4, r0] ldrsh r0, [r4, r1] add r0, r0, #1 strh r0, [r4, r1] _0225B304: mov r1, #0x6d lsl r1, r1, #4 ldr r1, [r4, r1] add r0, r4, #0 add r2, sp, #4 mov r3, #1 bl MOD11_0225AD2C mov r5, #0 mov r7, #1 add r6, sp, #4 b _0225B37C _0225B31C: ldrb r0, [r6, r5] cmp r0, #1 bne _0225B37A mov r1, #6 add r2, r5, #0 mul r2, r1 ldr r1, _0225B3C4 ; =0x0225F88C lsl r3, r5, #2 add r1, r1, r2 ldr r2, _0225B3C8 ; =0x0225F7FC add r0, r4, #0 add r2, r2, r3 mov r3, #4 str r7, [sp] bl MOD11_0225ADD8 mov r0, #0x14 mul r0, r5 add r1, r4, r0 ldr r0, _0225B3CC ; =0x000004CC ldr r0, [r1, r0] cmp r0, #0 beq _0225B366 add r1, sp, #0xc add r2, sp, #8 bl FUN_020119A4 mov r0, #0x14 mul r0, r5 add r1, r4, r0 ldr r0, _0225B3CC ; =0x000004CC ldr r2, [sp, #8] ldr r0, [r1, r0] ldr r1, [sp, #0xc] add r2, r2, #1 bl FUN_020118C4 _0225B366: lsl r0, r5, #2 add r1, r4, r0 ldr r0, _0225B3D0 ; =0x00000624 ldr r0, [r1, r0] cmp r0, #0 beq _0225B37A mov r1, #0 mov r2, #1 bl FUN_0200C82C _0225B37A: add r5, r5, #1 _0225B37C: cmp r5, #4 blt _0225B31C mov r0, #0x6b lsl r0, r0, #4 ldrsh r1, [r4, r0] add sp, #0x10 add r1, r1, #1 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _0225B38E: add r0, r1, #2 ldrsh r0, [r4, r0] add r2, r0, #1 add r0, r1, #2 strh r2, [r4, r0] ldrsh r0, [r4, r0] cmp r0, #0 ble _0225B3BE mov r2, #0 add r0, r1, #2 strh r2, [r4, r0] ldrsh r0, [r4, r1] add sp, #0x10 add r0, r0, #1 strh r0, [r4, r1] pop {r3, r4, r5, r6, r7, pc} _0225B3AE: mov r1, #1 add r0, r4, #0 add r2, r1, #0 bl MOD11_0225AC8C add r0, r4, #0 bl MOD11_0225ADB0 _0225B3BE: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _0225B3C4: .word 0x0225F88C _0225B3C8: .word 0x0225F7FC _0225B3CC: .word 0x000004CC _0225B3D0: .word 0x00000624 thumb_func_start MOD11_0225B3D4 MOD11_0225B3D4: ; 0x0225B3D4 cmp r0, #0 bne _0225B3DC ldr r0, _0225B42C ; =0x00070800 bx lr _0225B3DC: cmp r1, r0 bne _0225B3E4 ldr r0, _0225B430 ; =0x00010200 bx lr _0225B3E4: cmp r1, #2 bgt _0225B3F0 cmp r0, #1 bne _0225B428 ldr r0, _0225B434 ; =0x00050600 bx lr _0225B3F0: cmp r1, #7 bgt _0225B408 cmp r0, #1 beq _0225B3FE cmp r0, #2 beq _0225B402 b _0225B428 _0225B3FE: ldr r0, _0225B434 ; =0x00050600 bx lr _0225B402: mov r0, #0xc1 lsl r0, r0, #0xa bx lr _0225B408: asr r2, r1, #1 lsr r2, r2, #0x1e add r2, r1, r2 asr r2, r2, #2 cmp r0, r2 bgt _0225B418 ldr r0, _0225B434 ; =0x00050600 bx lr _0225B418: lsr r2, r1, #0x1f add r2, r1, r2 asr r1, r2, #1 cmp r0, r1 bgt _0225B428 mov r0, #0xc1 lsl r0, r0, #0xa bx lr _0225B428: ldr r0, _0225B430 ; =0x00010200 bx lr .align 2, 0 _0225B42C: .word 0x00070800 _0225B430: .word 0x00010200 _0225B434: .word 0x00050600 thumb_func_start MOD11_0225B438 MOD11_0225B438: ; 0x0225B438 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r0, [r0] bl MOD11_0222FF68 add r4, r0, #0 ldrb r0, [r5, #0x13] cmp r0, #0 beq _0225B454 cmp r0, #1 beq _0225B4AA b _0225B4D6 _0225B454: mov r2, #8 ldrsh r1, [r5, r2] ldr r0, _0225B528 ; =0x000018E7 add r1, r1, r0 strh r1, [r5, #8] mov r1, #0xa ldrsh r3, [r5, r1] mov r1, #0xfa lsl r1, r1, #2 sub r1, r3, r1 strh r1, [r5, #0xa] ldrsh r1, [r5, r2] lsl r0, r0, #2 sub r0, r0, r1 mov r1, #0x64 bl _s32_div_f strh r0, [r5, #0xc] mov r0, #0xa ldrsh r0, [r5, r0] mov r1, #0x64 neg r0, r0 bl _s32_div_f strh r0, [r5, #0xe] mov r0, #8 ldrsh r0, [r5, r0] cmp r0, #0 bge _0225B496 mov r0, #0xa ldrsh r0, [r5, r0] cmp r0, #0 bgt _0225B526 _0225B496: mov r1, #0 strh r1, [r5, #8] mov r0, #0x90 strh r0, [r5, #0xa] strh r1, [r5, #0xc] strh r1, [r5, #0xe] ldrb r0, [r5, #0x13] add r0, r0, #1 strb r0, [r5, #0x13] pop {r4, r5, r6, pc} _0225B4AA: ldr r1, [r5] ldr r0, _0225B52C ; =0x000006A2 mov r2, #0 strb r2, [r1, r0] ldr r0, [r5, #4] bl FUN_0200CAB4 bl FUN_02015F1C ldr r2, _0225B530 ; =0x04001000 ldr r0, _0225B534 ; =0xFFFF1FFF ldr r1, [r2] and r0, r1 str r0, [r2] ldr r0, [r5] mov r1, #1 bl MOD11_0225B77C ldrb r0, [r5, #0x13] add r0, r0, #1 strb r0, [r5, #0x13] pop {r4, r5, r6, pc} _0225B4D6: ldr r0, [r5] bl MOD11_0225B780 cmp r0, #0 beq _0225B526 mov r2, #0 add r0, r4, #0 mov r1, #4 add r3, r2, #0 bl FUN_020179E0 add r0, r4, #0 mov r1, #4 mov r2, #3 mov r3, #0 bl FUN_020179E0 mov r2, #0 add r0, r4, #0 mov r1, #5 add r3, r2, #0 bl FUN_020179E0 add r0, r4, #0 mov r1, #5 mov r2, #3 mov r3, #0 bl FUN_020179E0 ldr r0, [r5] mov r1, #1 ldr r0, [r0] bl MOD11_022312AC add r0, r5, #0 bl FUN_02016A18 add r0, r6, #0 bl FUN_0200CAB4 _0225B526: pop {r4, r5, r6, pc} .align 2, 0 _0225B528: .word 0x000018E7 _0225B52C: .word 0x000006A2 _0225B530: .word 0x04001000 _0225B534: .word 0xFFFF1FFF thumb_func_start MOD11_0225B538 MOD11_0225B538: ; 0x0225B538 push {r4, r5, r6, lr} add r5, r1, #0 ldr r0, [r5] ldr r0, [r0] bl MOD11_0222FF68 add r6, r0, #0 ldrb r0, [r5, #0x12] cmp r0, #4 bne _0225B586 mov r0, #0xc ldrsh r1, [r5, r0] mov r0, #0xff sub r3, r0, r1 cmp r3, #0 ble _0225B55A mov r3, #0 _0225B55A: add r0, r6, #0 mov r1, #4 mov r2, #0 bl FUN_020179E0 mov r3, #0xc ldrsh r4, [r5, r3] mov r3, #0xff add r0, r6, #0 mov r1, #5 mov r2, #0 sub r3, r3, r4 bl FUN_020179E0 mov r0, #8 ldrsh r0, [r5, r0] mov r1, #0x64 neg r0, r0 bl _s32_div_f add r4, r0, #0 b _0225B5B6 _0225B586: mov r0, #0xc ldrsh r3, [r5, r0] cmp r3, #0 bge _0225B590 mov r3, #0 _0225B590: add r0, r6, #0 mov r1, #4 mov r2, #0 bl FUN_020179E0 mov r3, #0xc ldrsh r3, [r5, r3] add r0, r6, #0 mov r1, #5 mov r2, #0 bl FUN_020179E0 mov r0, #8 ldrsh r0, [r5, r0] mov r1, #0x64 bl _s32_div_f add r4, r0, #0 add r4, #0xff _0225B5B6: add r0, r6, #0 mov r1, #4 mov r2, #3 mov r3, #0 bl FUN_020179E0 add r0, r6, #0 mov r1, #5 mov r2, #3 mov r3, #0 bl FUN_020179E0 mov r0, #0xa ldrsh r0, [r5, r0] mov r1, #0x64 bl _s32_div_f add r0, #0x90 cmp r4, #0 bge _0225B5E2 mov r4, #0 b _0225B5E8 _0225B5E2: cmp r4, #0xff ble _0225B5E8 mov r4, #0xff _0225B5E8: cmp r0, #0xc0 ble _0225B5F0 mov r0, #0xc0 b _0225B5F6 _0225B5F0: cmp r0, #0 bge _0225B5F6 mov r0, #0 _0225B5F6: ldrb r1, [r5, #0x12] cmp r1, #4 bne _0225B60A lsl r1, r4, #0x18 ldr r2, _0225B63C ; =0x04001040 lsr r1, r1, #0x18 strh r1, [r2] mov r1, #0x90 strh r1, [r2, #4] b _0225B620 _0225B60A: cmp r4, #0 bne _0225B610 mov r4, #1 _0225B610: mov r1, #0xff lsl r2, r4, #8 lsl r1, r1, #8 and r1, r2 ldr r2, _0225B63C ; =0x04001040 strh r1, [r2] mov r1, #0x90 strh r1, [r2, #4] _0225B620: ldr r2, _0225B640 ; =0x04001042 mov r1, #0xff lsl r0, r0, #0x18 strh r1, [r2] lsr r1, r0, #0x18 mov r0, #9 lsl r0, r0, #0xc orr r0, r1 strh r0, [r2, #4] mov r0, #0xe ldrsh r0, [r5, r0] strh r0, [r5, #0x10] pop {r4, r5, r6, pc} nop _0225B63C: .word 0x04001040 _0225B640: .word 0x04001042 thumb_func_start MOD11_0225B644 MOD11_0225B644: ; 0x0225B644 push {r4, r5, r6, lr} add r4, r0, #0 ldr r0, _0225B6FC ; =0x04000006 ldrh r0, [r0] cmp r0, #0x90 bne _0225B68E ldr r0, [r4] ldr r0, [r0] bl MOD11_0222FF68 mov r2, #0 mov r1, #4 add r3, r2, #0 add r5, r0, #0 bl FUN_020179E0 mov r3, #0x10 ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #4 mov r2, #3 bl FUN_020179E0 mov r2, #0 add r0, r5, #0 mov r1, #5 add r3, r2, #0 bl FUN_020179E0 mov r3, #0x10 ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #5 mov r2, #3 bl FUN_020179E0 pop {r4, r5, r6, pc} _0225B68E: cmp r0, #0xc0 ble _0225B6F8 ldr r0, [r4] ldr r0, [r0] bl MOD11_0222FF68 ldrb r1, [r4, #0x12] add r5, r0, #0 cmp r1, #4 bne _0225B6C6 mov r3, #0xc ldrsh r6, [r4, r3] mov r3, #0xff mov r1, #4 mov r2, #0 sub r3, r3, r6 bl FUN_020179E0 mov r3, #0xc ldrsh r4, [r4, r3] mov r3, #0xff add r0, r5, #0 mov r1, #5 mov r2, #0 sub r3, r3, r4 bl FUN_020179E0 b _0225B6E0 _0225B6C6: mov r3, #0xc ldrsh r3, [r4, r3] mov r1, #4 mov r2, #0 bl FUN_020179E0 mov r3, #0xc ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #5 mov r2, #0 bl FUN_020179E0 _0225B6E0: add r0, r5, #0 mov r1, #4 mov r2, #3 mov r3, #0 bl FUN_020179E0 add r0, r5, #0 mov r1, #5 mov r2, #3 mov r3, #0 bl FUN_020179E0 _0225B6F8: pop {r4, r5, r6, pc} nop _0225B6FC: .word 0x04000006 thumb_func_start MOD11_0225B700 MOD11_0225B700: ; 0x0225B700 push {r3, r4, r5, r6, r7, lr} str r0, [sp] ldr r0, _0225B760 ; =0x0000069F ldr r2, _0225B764 ; =0x0225FAAC ldrsb r1, [r1, r0] mov r0, #0x30 ldr r7, _0225B768 ; =0x0000FFFF mul r0, r1 add r6, r2, r0 mov r4, #0 add r5, r6, #0 _0225B716: ldrh r0, [r5, #4] cmp r0, r7 bne _0225B72A add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0 bl FUN_0201797C b _0225B736 _0225B72A: add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #1 bl FUN_0201797C _0225B736: add r4, r4, #1 add r5, r5, #2 cmp r4, #4 blt _0225B716 mov r4, #0 _0225B740: ldrh r1, [r6, #0xc] add r0, r4, #4 lsl r0, r0, #0x18 lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 bl FUN_020178BC add r4, r4, #1 add r6, r6, #2 cmp r4, #4 blt _0225B740 ldr r0, [sp] bl FUN_0200CAB4 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225B760: .word 0x0000069F _0225B764: .word 0x0225FAAC _0225B768: .word 0x0000FFFF thumb_func_start MOD11_0225B76C MOD11_0225B76C: ; 0x0225B76C push {r4, lr} add r4, r0, #0 bl MOD11_0225AC60 add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start MOD11_0225B77C MOD11_0225B77C: ; 0x0225B77C bx lr .align 2, 0 thumb_func_start MOD11_0225B780 MOD11_0225B780: ; 0x0225B780 ldr r1, _0225B790 ; =0x00000698 ldr r0, [r0, r1] cmp r0, #0 bne _0225B78C mov r0, #1 bx lr _0225B78C: mov r0, #0 bx lr .align 2, 0 _0225B790: .word 0x00000698 thumb_func_start MOD11_0225B794 MOD11_0225B794: ; 0x0225B794 push {r3, r4, r5, lr} sub sp, #8 add r5, r1, #0 ldr r0, [r5] bl MOD11_022300CC add r4, r0, #0 bl FUN_020038E4 cmp r0, #0 bne _0225B814 ldr r0, _0225B818 ; =0x000006AA mov r1, #1 ldrsh r0, [r5, r0] add r2, r1, #0 add r3, r1, #0 asr r0, r0, #8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, _0225B81C ; =0x00007FFF str r0, [sp, #4] add r0, r4, #0 bl FUN_020039E8 ldr r1, _0225B820 ; =0x000006A8 _0225B7C8: ldrb r0, [r5, r1] cmp r0, #0 bne _0225B7DA add r0, r1, #2 ldrsh r2, [r5, r0] mov r0, #2 lsl r0, r0, #8 add r2, r2, r0 b _0225B7E4 _0225B7DA: add r0, r1, #2 ldrsh r2, [r5, r0] mov r0, #2 lsl r0, r0, #8 sub r2, r2, r0 _0225B7E4: add r0, r1, #2 strh r2, [r5, r0] ldr r0, _0225B818 ; =0x000006AA mov r1, #0x11 ldrsh r2, [r5, r0] lsl r1, r1, #8 cmp r2, r1 blt _0225B804 mov r1, #0xf lsl r1, r1, #8 strh r1, [r5, r0] mov r1, #1 sub r0, r0, #2 add sp, #8 strb r1, [r5, r0] pop {r3, r4, r5, pc} _0225B804: cmp r2, #0 bgt _0225B814 mov r1, #1 lsl r1, r1, #8 strh r1, [r5, r0] mov r1, #0 sub r0, r0, #2 strb r1, [r5, r0] _0225B814: add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _0225B818: .word 0x000006AA _0225B81C: .word 0x00007FFF _0225B820: .word 0x000006A8 thumb_func_start MOD11_0225B824 MOD11_0225B824: ; 0x0225B824 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 bl FUN_02002BD4 add r6, r0, #0 bl FUN_02002BF4 add r7, r0, #0 bl FUN_02002BE4 bl FUN_02002C04 ldr r0, [r5] bl MOD11_022300CC add r4, r0, #0 bl FUN_020038E4 cmp r0, #0 bne _0225B8A8 add r0, r4, #0 mov r1, #1 bl FUN_02003204 add r4, r0, #0 ldr r0, _0225B8AC ; =0x021C48F8 ldrh r0, [r0, #0x22] cmp r0, #0 beq _0225B888 cmp r6, #1 beq _0225B866 cmp r7, #1 bne _0225B888 _0225B866: ldr r1, [r5, #0x5c] add r0, r4, #0 add r0, #0x16 add r1, #0x16 mov r2, #0xa bl memcmp cmp r0, #0 bne _0225B8A8 ldr r0, [r5, #0x60] add r4, #0x16 add r0, #0x16 add r1, r4, #0 mov r2, #0xa bl MIi_CpuCopy16 pop {r3, r4, r5, r6, r7, pc} _0225B888: ldr r1, [r5, #0x60] add r0, r4, #0 add r0, #0x16 add r1, #0x16 mov r2, #0xa bl memcmp cmp r0, #0 bne _0225B8A8 ldr r0, [r5, #0x5c] add r4, #0x16 add r0, #0x16 add r1, r4, #0 mov r2, #0xa bl MIi_CpuCopy16 _0225B8A8: pop {r3, r4, r5, r6, r7, pc} nop _0225B8AC: .word 0x021C48F8 thumb_func_start MOD11_0225B8B0 MOD11_0225B8B0: ; 0x0225B8B0 push {r4, r5, r6, lr} mov r6, #0x6f lsl r6, r6, #4 add r2, r6, #0 add r5, r0, #0 sub r2, #0x51 ldrsb r2, [r5, r2] ldr r1, _0225B914 ; =0x0225FAAC mov r3, #0x30 add r4, r2, #0 mul r4, r3 add r4, r1, r4 ldr r2, [r4, #0x20] cmp r2, #0 bne _0225B8D4 sub r3, #0x31 add r0, r3, #0 pop {r4, r5, r6, pc} _0225B8D4: ldrb r1, [r5, r6] cmp r1, #0 bne _0225B90C add r0, r6, #4 ldrb r0, [r5, r0] cmp r0, #1 beq _0225B8EC ldr r1, _0225B918 ; =0x021C48B8 ldr r2, [r1, #0x48] ldr r1, _0225B91C ; =0x00000CF3 tst r1, r2 beq _0225B906 _0225B8EC: cmp r0, #0 bne _0225B8F6 ldr r0, _0225B920 ; =0x000005DC bl FUN_020054C8 _0225B8F6: mov r1, #1 ldr r0, _0225B924 ; =0x000006F4 strb r1, [r5, r6] mov r2, #0 strb r2, [r5, r0] ldr r2, [r4, #0x20] add r0, r5, #0 blx r2 _0225B906: mov r0, #0 mvn r0, r0 pop {r4, r5, r6, pc} _0225B90C: mov r1, #0 blx r2 pop {r4, r5, r6, pc} nop _0225B914: .word 0x0225FAAC _0225B918: .word 0x021C48B8 _0225B91C: .word 0x00000CF3 _0225B920: .word 0x000005DC _0225B924: .word 0x000006F4 thumb_func_start MOD11_0225B928 MOD11_0225B928: ; 0x0225B928 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r1, [sp, #8] mov r1, #0x6f lsl r1, r1, #4 add r6, r0, #0 add r2, r1, #0 sub r2, #0x51 ldrsb r3, [r6, r2] add r4, r6, r1 mov r2, #0x30 sub r1, #0x52 ldr r0, _0225BAE8 ; =0x0225FAAC mul r2, r3 add r7, r0, r2 ldrb r1, [r6, r1] ldr r0, [r6] bl MOD11_0223022C add r1, r0, #0 ldr r0, [r6] bl MOD11_0222FF7C bl MOD11_02253A74 ldr r1, [sp, #8] cmp r1, #1 bne _0225B9AE mov r1, #0 ldrsb r1, [r0, r1] ldr r2, _0225BAEC ; =0x0225F698 strb r1, [r4, #2] mov r1, #1 ldrsb r0, [r0, r1] strb r0, [r4, #1] ldrsb r1, [r4, r1] lsl r0, r1, #1 add r3, r1, r0 mov r0, #2 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [r7, #0x14] lsl r3, r1, #2 add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r7, #0x14] ldr r0, _0225BAF0 ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC mov r0, #0 add sp, #0x10 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _0225B9AE: ldr r0, _0225BAF4 ; =0x0000069F ldrsb r0, [r6, r0] cmp r0, #5 beq _0225B9BA cmp r0, #6 bne _0225B9CA _0225B9BA: mov r1, #1 ldr r3, _0225BAEC ; =0x0225F698 add r0, r4, #0 add r2, r1, #0 bl MOD11_0225C574 add r5, r0, #0 b _0225BA34 _0225B9CA: mov r0, #1 ldrsb r1, [r4, r0] lsl r0, r1, #1 add r2, r1, r0 mov r0, #2 ldr r1, _0225BAEC ; =0x0225F698 ldrsb r0, [r4, r0] add r1, r1, r2 ldrb r0, [r0, r1] str r0, [sp, #0xc] cmp r0, #3 bne _0225B9EC ldr r0, _0225BAF8 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x40 tst r0, r1 bne _0225BA34 _0225B9EC: ldr r3, _0225BAEC ; =0x0225F698 add r0, r4, #0 mov r1, #3 mov r2, #2 bl MOD11_0225C574 add r5, r0, #0 bne _0225BA34 ldr r0, [sp, #0xc] cmp r0, #0 bne _0225BA34 ldr r0, _0225BAF8 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x20 tst r0, r1 beq _0225BA1E mov r0, #0 strb r0, [r4, #2] mov r0, #1 strb r0, [r4, #1] ldr r0, _0225BAFC ; =0x000005DC bl FUN_020054C8 mov r5, #0x20 b _0225BA34 _0225BA1E: mov r0, #0x10 tst r0, r1 beq _0225BA34 mov r0, #2 strb r0, [r4, #2] mov r0, #1 strb r0, [r4, #1] ldr r0, _0225BAFC ; =0x000005DC bl FUN_020054C8 mov r5, #0x10 _0225BA34: cmp r5, #0x20 bhi _0225BA50 bhs _0225BA5C cmp r5, #2 bhi _0225BA4A cmp r5, #1 blo _0225BAE0 beq _0225BA9A cmp r5, #2 beq _0225BAB0 b _0225BAE0 _0225BA4A: cmp r5, #0x10 beq _0225BA5C b _0225BAE0 _0225BA50: cmp r5, #0x40 bhi _0225BA58 beq _0225BA5C b _0225BAE0 _0225BA58: cmp r5, #0x80 bne _0225BAE0 _0225BA5C: mov r0, #1 ldrsb r1, [r4, r0] ldr r2, _0225BAEC ; =0x0225F698 lsl r0, r1, #1 add r3, r1, r0 mov r0, #2 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [r7, #0x14] lsl r3, r1, #2 add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r7, #0x14] ldr r0, _0225BAF0 ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225BAE0 _0225BA9A: mov r0, #1 ldrsb r1, [r4, r0] ldr r2, _0225BAEC ; =0x0225F698 add sp, #0x10 lsl r0, r1, #1 add r3, r1, r0 mov r0, #2 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r0, [r1, r0] pop {r3, r4, r5, r6, r7, pc} _0225BAB0: ldr r0, _0225BB00 ; =0x000006A3 ldrb r0, [r6, r0] cmp r0, #1 bne _0225BAE0 mov r0, #0 add r2, r0, #0 mov r3, #1 ldr r1, [r7, #0x18] ldr r5, [r7, #0x14] b _0225BACE _0225BAC4: lsl r4, r0, #2 ldr r4, [r1, r4] cmp r4, #4 beq _0225BAE4 add r0, r0, #1 _0225BACE: lsl r4, r0, #2 ldrb r4, [r5, r4] cmp r0, r4 bge _0225BADA add r4, r3, #0 b _0225BADC _0225BADA: add r4, r2, #0 _0225BADC: cmp r4, #0xff bne _0225BAC4 _0225BAE0: mov r0, #0 mvn r0, r0 _0225BAE4: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225BAE8: .word 0x0225FAAC _0225BAEC: .word 0x0225F698 _0225BAF0: .word 0x000006EC _0225BAF4: .word 0x0000069F _0225BAF8: .word 0x021C48B8 _0225BAFC: .word 0x000005DC _0225BB00: .word 0x000006A3 thumb_func_start MOD11_0225BB04 MOD11_0225BB04: ; 0x0225BB04 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 ldr r1, _0225BB60 ; =0x0000069E ldr r0, [r5] ldrb r1, [r5, r1] bl MOD11_0223022C add r6, r0, #0 cmp r4, #3 bne _0225BB26 ldr r0, [r5] add r1, r6, #0 bl MOD11_02230CB8 cmp r0, #0 bne _0225BB5C _0225BB26: ldr r0, [r5] add r1, r6, #0 bl MOD11_0222FF7C bl MOD11_02253A74 mov r5, #0 ldr r1, _0225BB64 ; =0x0225F698 add r2, r5, #0 b _0225BB58 _0225BB3A: lsl r6, r5, #1 add r6, r5, r6 add r3, r2, #0 add r7, r1, r6 b _0225BB52 _0225BB44: ldrb r6, [r3, r7] cmp r4, r6 bne _0225BB50 strb r3, [r0] strb r5, [r0, #1] pop {r3, r4, r5, r6, r7, pc} _0225BB50: add r3, r3, #1 _0225BB52: cmp r3, #3 blt _0225BB44 add r5, r5, #1 _0225BB58: cmp r5, #2 blt _0225BB3A _0225BB5C: pop {r3, r4, r5, r6, r7, pc} nop _0225BB60: .word 0x0000069E _0225BB64: .word 0x0225F698 thumb_func_start MOD11_0225BB68 MOD11_0225BB68: ; 0x0225BB68 push {r4, r5, r6, lr} sub sp, #8 add r6, r0, #0 mov r0, #0x6f lsl r0, r0, #4 add r3, r0, #0 sub r3, #0x51 ldrsb r5, [r6, r3] mov r3, #0x30 ldr r2, _0225BC54 ; =0x0225FAAC mul r3, r5 add r4, r6, r0 add r5, r2, r3 cmp r1, #1 bne _0225BBCC mov r1, #0 strb r1, [r4, #2] strb r1, [r4, #1] mov r1, #1 ldrsb r2, [r4, r1] mov r3, #2 ldr r1, _0225BC58 ; =0x0225F688 ldrsb r3, [r4, r3] add r1, r1, r2 sub r0, r0, #4 ldrb r2, [r3, r1] ldr r1, [r5, #0x14] lsl r3, r2, #2 add r1, r1, r3 ldrb r1, [r1, #1] sub r1, #8 str r1, [sp] mov r1, #0x11 lsl r1, r1, #0x10 str r1, [sp, #4] ldr r4, [r5, #0x14] ldr r0, [r6, r0] add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC mov r0, #0 add sp, #8 mvn r0, r0 pop {r4, r5, r6, pc} _0225BBCC: ldr r3, _0225BC58 ; =0x0225F688 add r0, r4, #0 mov r1, #1 mov r2, #2 bl MOD11_0225C574 cmp r0, #0x20 bhi _0225BBF2 bhs _0225BBFE cmp r0, #2 bhi _0225BBEC cmp r0, #1 blo _0225BC4A beq _0225BC38 cmp r0, #2 b _0225BC4A _0225BBEC: cmp r0, #0x10 beq _0225BBFE b _0225BC4A _0225BBF2: cmp r0, #0x40 bhi _0225BBFA beq _0225BBFE b _0225BC4A _0225BBFA: cmp r0, #0x80 bne _0225BC4A _0225BBFE: mov r0, #1 ldrsb r3, [r4, r0] mov r0, #2 ldr r2, _0225BC58 ; =0x0225F688 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [r5, #0x14] lsl r3, r1, #2 add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r5, #0x14] ldr r0, _0225BC5C ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225BC4A _0225BC38: mov r0, #1 ldrsb r3, [r4, r0] mov r0, #2 ldr r2, _0225BC58 ; =0x0225F688 ldrsb r1, [r4, r0] add r0, r2, r3 add sp, #8 ldrb r0, [r1, r0] pop {r4, r5, r6, pc} _0225BC4A: mov r0, #0 mvn r0, r0 add sp, #8 pop {r4, r5, r6, pc} nop _0225BC54: .word 0x0225FAAC _0225BC58: .word 0x0225F688 _0225BC5C: .word 0x000006EC thumb_func_start MOD11_0225BC60 MOD11_0225BC60: ; 0x0225BC60 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r1, #0 add r5, r0, #0 ldr r1, _0225BDD0 ; =0x0000069E ldr r0, [r5] ldrb r1, [r5, r1] bl MOD11_0223022C add r1, r0, #0 ldr r0, [r5] bl MOD11_0222FF7C bl MOD11_02253A74 mov r1, #0x6f lsl r1, r1, #4 add r4, r5, r1 sub r1, #0x51 ldrsb r2, [r5, r1] add r3, r0, #0 mov r1, #0x30 mul r1, r2 ldr r0, _0225BDD4 ; =0x0225FAAC add r2, r5, #0 add r6, r0, r1 add r2, #0x18 cmp r7, #1 bne _0225BD10 mov r0, #2 ldrsb r0, [r3, r0] strb r0, [r4, #2] mov r0, #3 ldrsb r0, [r3, r0] strb r0, [r4, #1] mov r0, #1 ldrsb r0, [r4, r0] lsl r1, r0, #1 mov r0, #2 ldrsb r7, [r4, r0] ldr r0, _0225BDD8 ; =0x0225F6A0 add r0, r0, r1 ldrb r0, [r7, r0] cmp r0, #0 beq _0225BCDE sub r1, r0, #1 lsl r1, r1, #1 ldrh r1, [r2, r1] cmp r1, #0 bne _0225BCDE mov r0, #0 strb r0, [r3, #2] strb r0, [r3, #3] strb r0, [r4, #2] strb r0, [r4, #1] mov r0, #1 ldrsb r0, [r4, r0] lsl r2, r0, #1 mov r0, #2 ldrsb r1, [r4, r0] ldr r0, _0225BDD8 ; =0x0225F6A0 add r0, r0, r2 ldrb r0, [r1, r0] _0225BCDE: ldr r1, [r6, #0x14] lsl r3, r0, #2 add r0, r1, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r6, #0x14] ldr r0, _0225BDDC ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r5, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC mov r0, #0 add sp, #0x10 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _0225BD10: ldr r0, _0225BDD8 ; =0x0225F6A0 add r1, sp, #8 mov r2, #6 bl MI_CpuCopy8 add r0, r4, #0 mov r1, #2 mov r2, #3 add r3, sp, #8 bl MOD11_0225C574 cmp r0, #0x20 bhi _0225BD42 bhs _0225BD4E cmp r0, #2 bhi _0225BD3C cmp r0, #1 blo _0225BDC6 beq _0225BD8A cmp r0, #2 beq _0225BD9E b _0225BDC6 _0225BD3C: cmp r0, #0x10 beq _0225BD4E b _0225BDC6 _0225BD42: cmp r0, #0x40 bhi _0225BD4A beq _0225BD4E b _0225BDC6 _0225BD4A: cmp r0, #0x80 bne _0225BDC6 _0225BD4E: mov r0, #1 ldrsb r0, [r4, r0] ldr r2, _0225BDD8 ; =0x0225F6A0 lsl r3, r0, #1 mov r0, #2 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [r6, #0x14] lsl r3, r1, #2 add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r6, #0x14] ldr r0, _0225BDDC ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r5, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225BDC6 _0225BD8A: mov r0, #1 ldrsb r0, [r4, r0] ldr r2, _0225BDD8 ; =0x0225F6A0 add sp, #0x10 lsl r3, r0, #1 mov r0, #2 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r0, [r1, r0] pop {r3, r4, r5, r6, r7, pc} _0225BD9E: mov r0, #0 add r2, r0, #0 mov r3, #1 ldr r1, [r6, #0x18] ldr r5, [r6, #0x14] b _0225BDB4 _0225BDAA: lsl r4, r0, #2 ldr r4, [r1, r4] cmp r4, #0xff beq _0225BDCA add r0, r0, #1 _0225BDB4: lsl r4, r0, #2 ldrb r4, [r5, r4] cmp r0, r4 bge _0225BDC0 add r4, r3, #0 b _0225BDC2 _0225BDC0: add r4, r2, #0 _0225BDC2: cmp r4, #0xff bne _0225BDAA _0225BDC6: mov r0, #0 mvn r0, r0 _0225BDCA: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _0225BDD0: .word 0x0000069E _0225BDD4: .word 0x0225FAAC _0225BDD8: .word 0x0225F6A0 _0225BDDC: .word 0x000006EC thumb_func_start MOD11_0225BDE0 MOD11_0225BDE0: ; 0x0225BDE0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 beq _0225BE26 ldr r1, _0225BE28 ; =0x0000069E ldr r0, [r5] ldrb r1, [r5, r1] bl MOD11_0223022C add r1, r0, #0 ldr r0, [r5] bl MOD11_0222FF7C bl MOD11_02253A74 mov r3, #0 ldr r7, _0225BE2C ; =0x0225F6A0 add r1, r3, #0 b _0225BE22 _0225BE06: lsl r5, r3, #1 add r2, r1, #0 add r6, r7, r5 b _0225BE1C _0225BE0E: ldrb r5, [r2, r6] cmp r4, r5 bne _0225BE1A strb r2, [r0, #2] strb r3, [r0, #3] pop {r3, r4, r5, r6, r7, pc} _0225BE1A: add r2, r2, #1 _0225BE1C: cmp r2, #2 blt _0225BE0E add r3, r3, #1 _0225BE22: cmp r3, #3 blt _0225BE06 _0225BE26: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225BE28: .word 0x0000069E _0225BE2C: .word 0x0225F6A0 thumb_func_start MOD11_0225BE30 MOD11_0225BE30: ; 0x0225BE30 push {r3, r4, r5, r6, r7, lr} sub sp, #0x60 str r1, [sp, #0x18] add r6, r0, #0 ldr r1, _0225C134 ; =0x0000069E mov r0, #0 str r0, [sp, #0x44] ldrb r1, [r6, r1] ldr r0, [r6] bl MOD11_0223022C add r1, r0, #0 ldr r0, [r6] bl MOD11_0222FF7C bl MOD11_02253A74 mov r1, #0x6f lsl r1, r1, #4 add r7, r6, r1 sub r1, #0x51 ldrsb r2, [r6, r1] str r0, [sp, #0x1c] mov r1, #0x30 mul r1, r2 ldr r0, _0225C138 ; =0x0225FAAC mov r2, #6 add r0, r0, r1 str r0, [sp, #0x48] ldr r0, _0225C13C ; =0x0225F690 add r1, sp, #0x50 bl MI_CpuCopy8 add r1, sp, #0x58 add r0, r6, #0 add r1, #2 mov r2, #1 bl MOD11_0225ACD4 add r1, sp, #0x54 add r0, r6, #0 add r1, #2 mov r2, #0 bl MOD11_0225ACD4 add r0, sp, #0x54 mov r2, #0 mov r4, #0xff add r0, #2 b _0225BEB0 _0225BE94: lsl r5, r2, #1 add r1, sp, #0x50 mov r3, #0 add r1, r1, r5 b _0225BEAA _0225BE9E: ldrb r5, [r3, r1] ldrb r5, [r0, r5] cmp r5, #0 bne _0225BEA8 strb r4, [r3, r1] _0225BEA8: add r3, r3, #1 _0225BEAA: cmp r3, #2 blt _0225BE9E add r2, r2, #1 _0225BEB0: cmp r2, #2 blt _0225BE94 mov r0, #0x6a lsl r0, r0, #4 ldrb r0, [r6, r0] cmp r0, #0xb bhi _0225BEE2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225BECA: ; jump table .short _0225BEE2 - _0225BECA - 2 ; case 0 .short _0225BEEC - _0225BECA - 2 ; case 1 .short _0225BEEC - _0225BECA - 2 ; case 2 .short _0225BEEC - _0225BECA - 2 ; case 3 .short _0225BEE2 - _0225BECA - 2 ; case 4 .short _0225BEEC - _0225BECA - 2 ; case 5 .short _0225BEE2 - _0225BECA - 2 ; case 6 .short _0225BEEC - _0225BECA - 2 ; case 7 .short _0225BEE2 - _0225BECA - 2 ; case 8 .short _0225BEE2 - _0225BECA - 2 ; case 9 .short _0225BEE2 - _0225BECA - 2 ; case 10 .short _0225BEE2 - _0225BECA - 2 ; case 11 _0225BEE2: mov r0, #2 mov ip, r0 mov r0, #3 str r0, [sp, #0x4c] b _0225C0C6 _0225BEEC: mov r0, #1 str r0, [sp, #0x44] mov ip, r0 mov r0, #2 str r0, [sp, #0x4c] add r0, sp, #0x50 ldrb r1, [r0, #9] cmp r1, #1 bne _0225BF26 ldrb r0, [r0, #7] cmp r0, #1 bne _0225BF26 ldr r0, [sp, #0x48] ldr r1, [r0, #0x14] ldrb r0, [r1, #0xe] ldrb r2, [r1, #0xd] str r0, [sp, #0x34] add r0, #8 str r0, [sp, #0x34] ldrb r0, [r1, #7] sub r2, #8 str r0, [sp, #0x30] sub r0, #8 str r0, [sp, #0x30] ldrb r0, [r1, #0xc] str r0, [sp, #0x38] add r0, #8 str r0, [sp, #0x38] b _0225BF92 _0225BF26: add r0, sp, #0x50 ldrb r1, [r0, #9] cmp r1, #1 bne _0225BF56 ldrb r0, [r0, #7] cmp r0, #0 bne _0225BF56 ldr r0, [sp, #0x48] ldr r1, [r0, #0x14] ldrb r0, [r1, #0xe] ldrb r2, [r1, #0xd] str r0, [sp, #0x34] add r0, #8 str r0, [sp, #0x34] ldrb r0, [r1, #0xf] sub r2, #8 str r0, [sp, #0x30] sub r0, #8 str r0, [sp, #0x30] ldrb r0, [r1, #0xc] str r0, [sp, #0x38] add r0, #8 str r0, [sp, #0x38] b _0225BF92 _0225BF56: add r0, sp, #0x50 ldrb r1, [r0, #9] cmp r1, #0 bne _0225BF86 ldrb r0, [r0, #7] cmp r0, #1 bne _0225BF86 ldr r0, [sp, #0x48] ldr r1, [r0, #0x14] ldrb r0, [r1, #6] ldrb r2, [r1, #5] str r0, [sp, #0x34] add r0, #8 str r0, [sp, #0x34] ldrb r0, [r1, #7] sub r2, #8 str r0, [sp, #0x30] sub r0, #8 str r0, [sp, #0x30] ldrb r0, [r1, #4] str r0, [sp, #0x38] add r0, #8 str r0, [sp, #0x38] b _0225BF92 _0225BF86: mov r0, #0 mvn r0, r0 str r0, [sp, #0x34] str r0, [sp, #0x30] str r0, [sp, #0x38] add r2, r0, #0 _0225BF92: add r0, sp, #0x50 ldrb r1, [r0, #6] cmp r1, #1 bne _0225BFBA ldrb r0, [r0, #8] cmp r0, #1 bne _0225BFBA ldr r0, [sp, #0x48] ldr r0, [r0, #0x14] ldrb r3, [r0, #2] ldrb r4, [r0, #0xb] ldrb r5, [r0] ldrb r0, [r0, #1] add r3, #8 sub r4, #8 str r0, [sp, #0x2c] sub r0, #8 add r5, #8 str r0, [sp, #0x2c] b _0225C014 _0225BFBA: add r0, sp, #0x50 ldrb r1, [r0, #6] cmp r1, #1 bne _0225BFE2 ldrb r0, [r0, #8] cmp r0, #0 bne _0225BFE2 ldr r0, [sp, #0x48] ldr r0, [r0, #0x14] ldrb r3, [r0, #2] ldrb r4, [r0, #3] ldrb r5, [r0] ldrb r0, [r0, #1] add r3, #8 sub r4, #8 str r0, [sp, #0x2c] sub r0, #8 add r5, #8 str r0, [sp, #0x2c] b _0225C014 _0225BFE2: add r0, sp, #0x50 ldrb r1, [r0, #6] cmp r1, #0 bne _0225C00A ldrb r0, [r0, #8] cmp r0, #1 bne _0225C00A ldr r0, [sp, #0x48] ldr r0, [r0, #0x14] ldrb r3, [r0, #0xa] ldrb r4, [r0, #0xb] ldrb r5, [r0, #8] ldrb r0, [r0, #9] add r3, #8 sub r4, #8 str r0, [sp, #0x2c] sub r0, #8 add r5, #8 str r0, [sp, #0x2c] b _0225C014 _0225C00A: mov r3, #0 mvn r3, r3 add r4, r3, #0 add r5, r3, #0 str r3, [sp, #0x2c] _0225C014: mov r0, #0 mvn r0, r0 str r0, [sp, #0x40] str r0, [sp, #0x3c] str r0, [sp, #0x28] str r0, [sp, #0x24] ldr r0, [sp, #0x34] cmp r0, r3 beq _0225C04A add r1, r0, #0 ldr r0, [sp, #0x40] cmp r1, r0 beq _0225C032 cmp r3, r0 beq _0225C04A _0225C032: mov r1, #0 ldr r0, [sp, #0x34] mvn r1, r1 cmp r0, r1 bne _0225C044 cmp r3, r1 beq _0225C044 str r3, [sp, #0x34] b _0225C04A _0225C044: mov r0, #2 str r3, [sp, #0x40] str r0, [sp, #0x20] _0225C04A: ldr r0, [sp, #0x30] cmp r0, r4 beq _0225C074 mov r1, #0 mvn r1, r1 cmp r0, r1 beq _0225C05C cmp r4, r1 beq _0225C074 _0225C05C: mov r1, #0 ldr r0, [sp, #0x30] mvn r1, r1 cmp r0, r1 bne _0225C06E cmp r4, r1 beq _0225C06E str r4, [sp, #0x30] b _0225C074 _0225C06E: mov r0, #3 str r4, [sp, #0x40] str r0, [sp, #0x20] _0225C074: mov r1, #0 ldr r0, [sp, #0x38] mvn r1, r1 cmp r0, r1 beq _0225C082 cmp r5, r1 beq _0225C096 _0225C082: mov r1, #0 ldr r0, [sp, #0x38] mvn r1, r1 cmp r0, r1 bne _0225C094 cmp r5, r1 beq _0225C094 str r5, [sp, #0x38] b _0225C096 _0225C094: str r2, [sp, #0x3c] _0225C096: mov r1, #0 mvn r1, r1 cmp r2, r1 beq _0225C0A8 ldr r0, [sp, #0x2c] cmp r0, r1 bne _0225C0A8 str r2, [sp, #0x2c] b _0225C0C6 _0225C0A8: mov r1, #0 mvn r1, r1 cmp r2, r1 bne _0225C0B6 ldr r0, [sp, #0x2c] cmp r0, r1 bne _0225C0C6 _0225C0B6: ldr r0, [sp, #0x2c] str r0, [sp, #0x3c] ldr r0, [sp, #0x20] cmp r0, #2 bne _0225C0C4 str r2, [sp, #0x24] b _0225C0C6 _0225C0C4: str r2, [sp, #0x28] _0225C0C6: ldr r0, [sp, #0x18] cmp r0, #1 beq _0225C0CE b _0225C236 _0225C0CE: ldr r0, [sp, #0x44] cmp r0, #0 bne _0225C17A ldr r0, [sp, #0x1c] mov r1, #6 ldrsb r1, [r0, r1] mov r0, #0x6a lsl r0, r0, #4 ldrb r0, [r6, r0] cmp r1, r0 bne _0225C0F6 ldr r0, [sp, #0x1c] mov r1, #4 ldrsb r0, [r0, r1] mov r1, #5 strb r0, [r7, #2] ldr r0, [sp, #0x1c] ldrsb r0, [r0, r1] strb r0, [r7, #1] b _0225C12C _0225C0F6: add r0, sp, #0x50 ldrb r1, [r0, #0xd] cmp r1, #1 bne _0225C106 mov r0, #0 strb r0, [r7, #2] strb r0, [r7, #1] b _0225C12C _0225C106: ldrb r1, [r0, #0xb] cmp r1, #1 bne _0225C116 mov r0, #1 strb r0, [r7, #2] mov r0, #0 strb r0, [r7, #1] b _0225C12C _0225C116: ldrb r0, [r0, #0xa] cmp r0, #1 bne _0225C126 mov r0, #0 strb r0, [r7, #2] mov r0, #1 strb r0, [r7, #1] b _0225C12C _0225C126: mov r0, #1 strb r0, [r7, #2] strb r0, [r7, #1] _0225C12C: mov r0, #1 ldrsb r0, [r7, r0] ldr r2, _0225C13C ; =0x0225F690 b _0225C140 .align 2, 0 _0225C134: .word 0x0000069E _0225C138: .word 0x0225FAAC _0225C13C: .word 0x0225F690 _0225C140: lsl r3, r0, #1 mov r0, #2 ldrsb r1, [r7, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [sp, #0x48] lsl r3, r1, #2 ldr r0, [r0, #0x14] ldr r1, [sp, #0x48] add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r1, #0x14] ldr r0, _0225C418 ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225C22E _0225C17A: mov r2, #0 strb r2, [r7, #2] ldr r0, [sp, #0x24] sub r1, r2, #1 strb r2, [r7, #1] cmp r0, r1 bne _0225C18E ldr r0, [sp, #0x28] cmp r0, r1 beq _0225C198 _0225C18E: mov r1, #0 ldr r0, [sp, #0x40] mvn r1, r1 cmp r0, r1 bne _0225C1B2 _0225C198: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x34] str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r0, _0225C418 ; =0x000006EC ldr r2, [sp, #0x30] ldr r0, [r6, r0] ldr r3, [sp, #0x38] bl MOD11_0225D5FC b _0225C210 _0225C1B2: ldr r0, [sp, #0x24] cmp r0, r1 beq _0225C1E8 ldr r0, [sp, #0x28] cmp r0, r1 bne _0225C1E8 ldr r0, [sp, #0x38] ldr r1, [sp, #0x34] str r0, [sp] ldr r0, [sp, #0x34] ldr r2, [sp, #0x38] str r0, [sp, #4] ldr r0, [sp, #0x24] ldr r3, [sp, #0x30] str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x2c] str r0, [sp, #0x10] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #0x14] ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D52C b _0225C210 _0225C1E8: ldr r0, [sp, #0x38] ldr r1, [sp, #0x34] str r0, [sp] ldr r0, [sp, #0x34] ldr r2, [sp, #0x38] str r0, [sp, #4] ldr r0, [sp, #0x2c] ldr r3, [sp, #0x30] str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x28] str r0, [sp, #0x10] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #0x14] ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D52C _0225C210: mov r1, #0 ldr r0, [sp, #0x40] mvn r1, r1 cmp r0, r1 beq _0225C22E mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp] ldr r0, _0225C418 ; =0x000006EC ldr r1, [sp, #0x40] ldr r0, [r6, r0] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x20] bl MOD11_0225D620 _0225C22E: mov r0, #0 add sp, #0x60 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _0225C236: ldr r0, [sp, #0x44] cmp r0, #0 bne _0225C24A ldr r2, [sp, #0x4c] add r0, r7, #0 mov r1, ip add r3, sp, #0x50 bl MOD11_0225C574 b _0225C256 _0225C24A: ldr r2, [sp, #0x4c] add r0, r7, #0 mov r1, ip mov r3, #0 bl MOD11_0225C574 _0225C256: cmp r0, #0x20 bhi _0225C276 bhs _0225C284 cmp r0, #2 bhi _0225C270 cmp r0, #1 blo _0225C26E bne _0225C268 b _0225C3BE _0225C268: cmp r0, #2 bne _0225C26E b _0225C40A _0225C26E: b _0225C410 _0225C270: cmp r0, #0x10 beq _0225C284 b _0225C410 _0225C276: cmp r0, #0x40 bhi _0225C27E beq _0225C284 b _0225C410 _0225C27E: cmp r0, #0x80 beq _0225C284 b _0225C410 _0225C284: ldr r0, [sp, #0x44] cmp r0, #0 bne _0225C2CA mov r0, #1 ldrsb r0, [r7, r0] ldr r2, _0225C41C ; =0x0225F690 lsl r3, r0, #1 mov r0, #2 ldrsb r1, [r7, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [sp, #0x48] lsl r3, r1, #2 ldr r0, [r0, #0x14] ldr r1, [sp, #0x48] add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r1, #0x14] ldr r0, _0225C418 ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225C410 _0225C2CA: mov r2, #1 ldrsb r0, [r7, r2] cmp r0, #0 bne _0225C38C ldr r0, [sp, #0x28] sub r1, r2, #2 cmp r0, r1 bne _0225C2E0 ldr r0, [sp, #0x24] cmp r0, r1 beq _0225C2EA _0225C2E0: mov r1, #0 ldr r0, [sp, #0x40] mvn r1, r1 cmp r0, r1 bne _0225C304 _0225C2EA: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x34] str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r0, _0225C418 ; =0x000006EC ldr r2, [sp, #0x30] ldr r0, [r6, r0] ldr r3, [sp, #0x38] bl MOD11_0225D5FC b _0225C362 _0225C304: ldr r0, [sp, #0x24] cmp r0, r1 beq _0225C33A ldr r0, [sp, #0x28] cmp r0, r1 bne _0225C33A ldr r0, [sp, #0x38] ldr r1, [sp, #0x34] str r0, [sp] ldr r0, [sp, #0x34] ldr r2, [sp, #0x38] str r0, [sp, #4] ldr r0, [sp, #0x24] ldr r3, [sp, #0x30] str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x2c] str r0, [sp, #0x10] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #0x14] ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D52C b _0225C362 _0225C33A: ldr r0, [sp, #0x38] ldr r1, [sp, #0x34] str r0, [sp] ldr r0, [sp, #0x34] ldr r2, [sp, #0x38] str r0, [sp, #4] ldr r0, [sp, #0x2c] ldr r3, [sp, #0x30] str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x28] str r0, [sp, #0x10] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #0x14] ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D52C _0225C362: mov r1, #0 ldr r0, [sp, #0x40] mvn r1, r1 cmp r0, r1 beq _0225C382 mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp] ldr r0, _0225C418 ; =0x000006EC ldr r1, [sp, #0x40] ldr r0, [r6, r0] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x20] bl MOD11_0225D620 b _0225C410 _0225C382: ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D664 b _0225C410 _0225C38C: ldr r0, [sp, #0x48] ldr r1, [sp, #0x48] ldr r0, [r0, #0x14] ldrb r0, [r0, #0x11] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r3, [r1, #0x14] ldr r0, _0225C418 ; =0x000006EC ldrb r1, [r3, #0x12] ldrb r2, [r3, #0x13] ldrb r3, [r3, #0x10] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC ldr r0, _0225C418 ; =0x000006EC ldr r0, [r6, r0] bl MOD11_0225D664 b _0225C410 _0225C3BE: ldr r0, [sp, #0x44] cmp r0, #1 bne _0225C3E8 mov r0, #1 ldrsb r0, [r7, r0] cmp r0, #0 ble _0225C3D2 add sp, #0x60 mov r0, #4 pop {r3, r4, r5, r6, r7, pc} _0225C3D2: add r2, sp, #0x58 mov r0, #0 add r2, #2 b _0225C3E2 _0225C3DA: ldrb r1, [r2, r0] cmp r1, #1 beq _0225C414 add r0, r0, #1 _0225C3E2: cmp r0, #4 blt _0225C3DA b _0225C410 _0225C3E8: mov r0, #1 ldrsb r0, [r7, r0] ldr r2, _0225C41C ; =0x0225F690 lsl r3, r0, #1 mov r0, #2 ldrsb r1, [r7, r0] add r0, r2, r3 ldrb r0, [r1, r0] cmp r0, #4 beq _0225C414 add r1, sp, #0x58 add r1, #2 ldrb r1, [r1, r0] cmp r1, #1 bne _0225C410 add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} _0225C40A: add sp, #0x60 mov r0, #4 pop {r3, r4, r5, r6, r7, pc} _0225C410: mov r0, #0 mvn r0, r0 _0225C414: add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225C418: .word 0x000006EC _0225C41C: .word 0x0225F690 thumb_func_start MOD11_0225C420 MOD11_0225C420: ; 0x0225C420 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 cmp r4, #4 beq _0225C470 ldr r1, _0225C474 ; =0x0000069E ldr r0, [r5] ldrb r1, [r5, r1] bl MOD11_0223022C add r1, r0, #0 ldr r0, [r5] bl MOD11_0222FF7C bl MOD11_02253A74 mov r1, #0x6a lsl r1, r1, #4 ldrb r1, [r5, r1] mov r3, #0 ldr r7, _0225C478 ; =0x0225F690 strb r1, [r0, #6] add r1, r3, #0 b _0225C46C _0225C450: lsl r5, r3, #1 add r2, r1, #0 add r6, r7, r5 b _0225C466 _0225C458: ldrb r5, [r2, r6] cmp r4, r5 bne _0225C464 strb r2, [r0, #4] strb r3, [r0, #5] pop {r3, r4, r5, r6, r7, pc} _0225C464: add r2, r2, #1 _0225C466: cmp r2, #2 blt _0225C458 add r3, r3, #1 _0225C46C: cmp r3, #3 blt _0225C450 _0225C470: pop {r3, r4, r5, r6, r7, pc} nop _0225C474: .word 0x0000069E _0225C478: .word 0x0225F690 thumb_func_start MOD11_0225C47C MOD11_0225C47C: ; 0x0225C47C push {r4, r5, r6, lr} sub sp, #8 add r6, r0, #0 mov r0, #0x6f lsl r0, r0, #4 add r3, r0, #0 sub r3, #0x51 ldrsb r5, [r6, r3] mov r3, #0x30 ldr r2, _0225C568 ; =0x0225FAAC mul r3, r5 add r4, r6, r0 add r5, r2, r3 cmp r1, #1 bne _0225C4DA mov r1, #1 ldrsb r2, [r4, r1] mov r3, #2 ldr r1, _0225C56C ; =0x0225F684 ldrsb r3, [r4, r3] add r1, r1, r2 sub r0, r0, #4 ldrb r2, [r3, r1] ldr r1, [r5, #0x14] lsl r3, r2, #2 add r1, r1, r3 ldrb r1, [r1, #1] sub r1, #8 str r1, [sp] mov r1, #0x11 lsl r1, r1, #0x10 str r1, [sp, #4] ldr r4, [r5, #0x14] ldr r0, [r6, r0] add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC mov r0, #0 add sp, #8 mvn r0, r0 pop {r4, r5, r6, pc} _0225C4DA: ldr r3, _0225C56C ; =0x0225F684 add r0, r4, #0 mov r1, #1 mov r2, #2 bl MOD11_0225C574 cmp r0, #0x20 bhi _0225C502 bhs _0225C50E cmp r0, #2 bhi _0225C4FC cmp r0, #1 blo _0225C560 beq _0225C548 cmp r0, #2 beq _0225C55A b _0225C560 _0225C4FC: cmp r0, #0x10 beq _0225C50E b _0225C560 _0225C502: cmp r0, #0x40 bhi _0225C50A beq _0225C50E b _0225C560 _0225C50A: cmp r0, #0x80 bne _0225C560 _0225C50E: mov r0, #1 ldrsb r3, [r4, r0] mov r0, #2 ldr r2, _0225C56C ; =0x0225F684 ldrsb r1, [r4, r0] add r0, r2, r3 ldrb r1, [r1, r0] ldr r0, [r5, #0x14] lsl r3, r1, #2 add r0, r0, r3 ldrb r0, [r0, #1] sub r0, #8 str r0, [sp] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #4] ldr r4, [r5, #0x14] ldr r0, _0225C570 ; =0x000006EC add r2, r4, r3 ldrb r1, [r2, #2] ldrb r2, [r2, #3] ldrb r3, [r4, r3] ldr r0, [r6, r0] add r1, #8 sub r2, #8 add r3, #8 bl MOD11_0225D5FC b _0225C560 _0225C548: mov r0, #1 ldrsb r3, [r4, r0] mov r0, #2 ldr r2, _0225C56C ; =0x0225F684 ldrsb r1, [r4, r0] add r0, r2, r3 add sp, #8 ldrb r0, [r1, r0] pop {r4, r5, r6, pc} _0225C55A: add sp, #8 mov r0, #1 pop {r4, r5, r6, pc} _0225C560: mov r0, #0 mvn r0, r0 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 _0225C568: .word 0x0225FAAC _0225C56C: .word 0x0225F684 _0225C570: .word 0x000006EC thumb_func_start MOD11_0225C574 MOD11_0225C574: ; 0x0225C574 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 mov r1, #2 ldrsb r1, [r0, r1] add r6, r2, #0 add r2, r3, #0 cmp r1, r4 blt _0225C588 sub r1, r4, #1 strb r1, [r0, #2] _0225C588: mov r1, #1 ldrsb r1, [r0, r1] cmp r1, r6 blt _0225C594 sub r1, r6, #1 strb r1, [r0, #1] _0225C594: mov r7, #2 ldrsb r1, [r0, r7] mov r5, #1 mov r3, #0x40 str r1, [sp] ldrsb r1, [r0, r5] mov ip, r1 ldr r1, _0225C764 ; =0x021C48B8 ldr r1, [r1, #0x48] tst r3, r1 beq _0225C5FA mov r1, ip sub r1, r1, #1 strb r1, [r0, #1] ldrsb r1, [r0, r5] cmp r1, #0 bge _0225C5BA mov r1, #0 strb r1, [r0, #1] _0225C5BA: cmp r2, #0 beq _0225C5F6 mov r3, #1 mov r1, #2 ldrsb r3, [r0, r3] ldrsb r1, [r0, r1] mul r3, r4 add r1, r1, r3 ldrb r1, [r2, r1] cmp r1, #0xff bne _0225C5F6 add r1, r0, #1 mov r7, #0 mov r6, #1 _0225C5D6: ldrsb r3, [r1, r7] sub r3, r3, #1 strb r3, [r1] ldrsb r3, [r0, r6] cmp r3, #0 bge _0225C5E8 mov r1, ip strb r1, [r0, #1] b _0225C5F6 _0225C5E8: mov r5, #2 ldrsb r5, [r0, r5] mul r3, r4 add r5, r2, r5 ldrb r3, [r3, r5] cmp r3, #0xff beq _0225C5D6 _0225C5F6: mov r5, #0x40 b _0225C70E _0225C5FA: mov r3, #0x80 tst r3, r1 beq _0225C650 mov r1, ip add r1, r1, #1 strb r1, [r0, #1] ldrsb r1, [r0, r5] cmp r1, r6 blt _0225C610 sub r1, r6, #1 strb r1, [r0, #1] _0225C610: cmp r2, #0 beq _0225C64C mov r3, #1 mov r1, #2 ldrsb r3, [r0, r3] ldrsb r1, [r0, r1] mul r3, r4 add r1, r1, r3 ldrb r1, [r2, r1] cmp r1, #0xff bne _0225C64C add r1, r0, #1 mov r7, #1 _0225C62A: mov r3, #0 ldrsb r3, [r1, r3] add r3, r3, #1 strb r3, [r1] ldrsb r3, [r0, r7] cmp r3, r6 blt _0225C63E mov r1, ip strb r1, [r0, #1] b _0225C64C _0225C63E: mov r5, #2 ldrsb r5, [r0, r5] mul r3, r4 add r5, r2, r5 ldrb r3, [r3, r5] cmp r3, #0xff beq _0225C62A _0225C64C: mov r5, #0x80 b _0225C70E _0225C650: mov r3, #0x20 tst r3, r1 beq _0225C6A6 ldr r1, [sp] sub r1, r1, #1 strb r1, [r0, #2] ldrsb r1, [r0, r7] cmp r1, #0 bge _0225C666 mov r1, #0 strb r1, [r0, #2] _0225C666: cmp r2, #0 beq _0225C6A2 mov r3, #1 mov r1, #2 ldrsb r3, [r0, r3] ldrsb r1, [r0, r1] mul r3, r4 add r1, r1, r3 ldrb r1, [r2, r1] cmp r1, #0xff bne _0225C6A2 add r5, r0, #2 mov r7, #0 mov r6, #2 _0225C682: ldrsb r1, [r5, r7] sub r1, r1, #1 strb r1, [r5] ldrsb r3, [r0, r6] cmp r3, #0 bge _0225C694 ldr r1, [sp] strb r1, [r0, #2] b _0225C6A2 _0225C694: mov r1, #1 ldrsb r1, [r0, r1] add r3, r2, r3 mul r1, r4 ldrb r1, [r1, r3] cmp r1, #0xff beq _0225C682 _0225C6A2: mov r5, #0x20 b _0225C70E _0225C6A6: mov r3, #0x10 tst r3, r1 beq _0225C6FC ldr r1, [sp] add r1, r1, #1 strb r1, [r0, #2] ldrsb r1, [r0, r7] cmp r1, r4 blt _0225C6BC sub r1, r4, #1 strb r1, [r0, #2] _0225C6BC: cmp r2, #0 beq _0225C6F8 mov r3, #1 mov r1, #2 ldrsb r3, [r0, r3] ldrsb r1, [r0, r1] mul r3, r4 add r1, r1, r3 ldrb r1, [r2, r1] cmp r1, #0xff bne _0225C6F8 add r5, r0, #2 mov r7, #0 mov r6, #2 _0225C6D8: ldrsb r1, [r5, r7] add r1, r1, #1 strb r1, [r5] ldrsb r3, [r0, r6] cmp r3, r4 blt _0225C6EA ldr r1, [sp] strb r1, [r0, #2] b _0225C6F8 _0225C6EA: mov r1, #1 ldrsb r1, [r0, r1] add r3, r2, r3 mul r1, r4 ldrb r1, [r1, r3] cmp r1, #0xff beq _0225C6D8 _0225C6F8: mov r5, #0x10 b _0225C70E _0225C6FC: add r3, r1, #0 tst r3, r5 bne _0225C70E tst r1, r7 beq _0225C70A add r5, r7, #0 b _0225C70E _0225C70A: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0225C70E: cmp r2, #0 beq _0225C738 mov r1, ip add r3, r4, #0 mul r3, r1 ldr r1, [sp] add r1, r1, r3 mov r3, #2 ldrsb r6, [r0, r3] mov r3, #1 ldrsb r3, [r0, r3] ldrb r1, [r2, r1] mul r3, r4 add r3, r6, r3 ldrb r2, [r2, r3] cmp r1, r2 bne _0225C738 ldr r1, [sp] strb r1, [r0, #2] mov r1, ip strb r1, [r0, #1] _0225C738: mov r1, #2 ldrsb r2, [r0, r1] ldr r1, [sp] cmp r2, r1 bne _0225C74C mov r1, #1 ldrsb r1, [r0, r1] mov r0, ip cmp r1, r0 beq _0225C754 _0225C74C: ldr r0, _0225C768 ; =0x000005DC bl FUN_020054C8 b _0225C75E _0225C754: mov r0, #0xf0 tst r0, r5 beq _0225C75E mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0225C75E: add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} nop _0225C764: .word 0x021C48B8 _0225C768: .word 0x000005DC thumb_func_start MOD11_0225C76C MOD11_0225C76C: ; 0x0225C76C ldr r1, _0225C774 ; =0x000006F4 ldrb r0, [r0, r1] bx lr nop _0225C774: .word 0x000006F4 thumb_func_start MOD11_0225C778 MOD11_0225C778: ; 0x0225C778 ldr r2, _0225C780 ; =0x000006F4 strb r1, [r0, r2] bx lr nop _0225C780: .word 0x000006F4 thumb_func_start MOD11_0225C784 MOD11_0225C784: ; 0x0225C784 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl MOD11_02230078 ldr r0, [r4] bl MOD11_02230080 ldr r0, [r4] bl MOD11_022300CC ldr r0, [r4] bl MOD11_02231268 cmp r0, #0 bne _0225C7C0 ldr r0, _0225C7E4 ; =0x000006FC ldrb r0, [r4, r0] cmp r0, #2 blo _0225C7B0 bl ErrorHandling _0225C7B0: ldr r1, _0225C7E4 ; =0x000006FC add r0, r4, #0 ldrb r1, [r4, r1] lsl r2, r1, #2 ldr r1, _0225C7E8 ; =0x0225F6B8 ldr r1, [r1, r2] blx r1 b _0225C7C6 _0225C7C0: add r0, r4, #0 bl MOD11_0225C8A0 _0225C7C6: mov r1, #0 mvn r1, r1 cmp r0, r1 beq _0225C7E2 ldr r1, _0225C7EC ; =0x000006FD mov r3, #0 strb r3, [r4, r1] add r2, r1, #1 strb r3, [r4, r2] sub r2, r1, #1 ldrb r2, [r4, r2] sub r1, r1, #1 add r2, r2, #1 strb r2, [r4, r1] _0225C7E2: pop {r4, pc} .align 2, 0 _0225C7E4: .word 0x000006FC _0225C7E8: .word 0x0225F6B8 _0225C7EC: .word 0x000006FD thumb_func_start MOD11_0225C7F0 MOD11_0225C7F0: ; 0x0225C7F0 push {r4, lr} add r4, r0, #0 ldr r0, _0225C840 ; =0x000006FD ldrb r1, [r4, r0] cmp r1, #0 bne _0225C820 sub r0, r0, #5 mov r3, #0x11 ldr r0, [r4, r0] mov r1, #0x80 mov r2, #0x3c lsl r3, r3, #0x10 bl MOD11_0225D7D0 ldr r0, _0225C844 ; =0x000006F8 mov r1, #0x3c ldr r0, [r4, r0] bl MOD11_0225D820 ldr r0, _0225C840 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0225C838 _0225C820: sub r0, r0, #5 ldr r0, [r4, r0] bl MOD11_0225D824 cmp r0, #1 bne _0225C838 ldr r0, _0225C840 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] mov r0, #0 pop {r4, pc} _0225C838: mov r0, #0 mvn r0, r0 pop {r4, pc} nop _0225C840: .word 0x000006FD _0225C844: .word 0x000006F8 thumb_func_start MOD11_0225C848 MOD11_0225C848: ; 0x0225C848 push {r4, lr} add r4, r0, #0 ldr r0, _0225C898 ; =0x000006FD ldrb r1, [r4, r0] cmp r1, #0 bne _0225C878 sub r0, r0, #5 mov r3, #0x11 ldr r0, [r4, r0] mov r1, #0x40 mov r2, #0x16 lsl r3, r3, #0x10 bl MOD11_0225D7D0 ldr r0, _0225C89C ; =0x000006F8 mov r1, #0x3c ldr r0, [r4, r0] bl MOD11_0225D820 ldr r0, _0225C898 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0225C890 _0225C878: sub r0, r0, #5 ldr r0, [r4, r0] bl MOD11_0225D824 cmp r0, #1 bne _0225C890 ldr r0, _0225C898 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] mov r0, #1 pop {r4, pc} _0225C890: mov r0, #0 mvn r0, r0 pop {r4, pc} nop _0225C898: .word 0x000006FD _0225C89C: .word 0x000006F8 thumb_func_start MOD11_0225C8A0 MOD11_0225C8A0: ; 0x0225C8A0 push {r4, lr} ldr r1, _0225C914 ; =0x000006FD add r4, r0, #0 ldrb r0, [r4, r1] cmp r0, #0 beq _0225C8B2 cmp r0, #1 beq _0225C8D0 b _0225C8F4 _0225C8B2: add r0, r1, #1 ldrb r0, [r4, r0] add r2, r0, #1 add r0, r1, #1 strb r2, [r4, r0] ldrb r0, [r4, r0] cmp r0, #0x3c bls _0225C90C mov r2, #0 add r0, r1, #1 strb r2, [r4, r0] ldrb r0, [r4, r1] add r0, r0, #1 strb r0, [r4, r1] b _0225C90C _0225C8D0: sub r0, r1, #5 mov r3, #0x11 ldr r0, [r4, r0] mov r1, #0x28 mov r2, #0x92 lsl r3, r3, #0x10 bl MOD11_0225D7D0 ldr r0, _0225C918 ; =0x000006F8 mov r1, #0x3c ldr r0, [r4, r0] bl MOD11_0225D820 ldr r0, _0225C914 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] b _0225C90C _0225C8F4: sub r0, r1, #5 ldr r0, [r4, r0] bl MOD11_0225D824 cmp r0, #1 bne _0225C90C ldr r0, _0225C914 ; =0x000006FD ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] mov r0, #1 pop {r4, pc} _0225C90C: mov r0, #0 mvn r0, r0 pop {r4, pc} nop _0225C914: .word 0x000006FD _0225C918: .word 0x000006F8 thumb_func_start MOD11_0225C91C MOD11_0225C91C: ; 0x0225C91C push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #0x1b str r0, [sp] mov r0, #0x4a str r0, [sp, #4] mov r0, #0 add r4, r1, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _0225C990 ; =0x00004E41 mov r1, #2 str r0, [sp, #0x14] add r0, r2, #0 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, _0225C994 ; =0x00004FB9 mov r2, #0x1b add r3, r2, #0 str r0, [sp, #8] add r0, r5, #0 add r1, r4, #0 add r3, #0xf9 bl FUN_0200C00C mov r0, #1 str r0, [sp] ldr r0, _0225C998 ; =0x00004FB3 mov r2, #0x1b add r3, r2, #0 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 add r3, #0xfa bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, _0225C99C ; =0x00004FA8 mov r2, #0x1b add r3, r2, #0 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 add r3, #0xfb bl FUN_0200C13C add sp, #0x18 pop {r3, r4, r5, pc} nop _0225C990: .word 0x00004E41 _0225C994: .word 0x00004FB9 _0225C998: .word 0x00004FB3 _0225C99C: .word 0x00004FA8 thumb_func_start MOD11_0225C9A0 MOD11_0225C9A0: ; 0x0225C9A0 push {r4, lr} ldr r1, _0225C9C4 ; =0x00004FB9 add r4, r0, #0 bl FUN_0200C358 ldr r1, _0225C9C8 ; =0x00004E41 add r0, r4, #0 bl FUN_0200C368 ldr r1, _0225C9CC ; =0x00004FB3 add r0, r4, #0 bl FUN_0200C378 ldr r1, _0225C9D0 ; =0x00004FA8 add r0, r4, #0 bl FUN_0200C388 pop {r4, pc} .align 2, 0 _0225C9C4: .word 0x00004FB9 _0225C9C8: .word 0x00004E41 _0225C9CC: .word 0x00004FB3 _0225C9D0: .word 0x00004FA8 thumb_func_start MOD11_0225C9D4 MOD11_0225C9D4: ; 0x0225C9D4 push {r4, lr} mov r0, #5 lsl r1, r0, #6 bl FUN_02016998 mov r2, #5 mov r1, #0 lsl r2, r2, #6 add r4, r0, #0 bl MI_CpuFill8 add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0225C9F0 MOD11_0225C9F0: ; 0x0225C9F0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _0225C9FE bl ErrorHandling _0225C9FE: add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0225CA08 MOD11_0225CA08: ; 0x0225CA08 push {r4, r5, r6, r7, lr} sub sp, #0x24 str r0, [sp, #0x14] ldr r0, [sp, #0x38] str r3, [sp, #0x1c] str r0, [sp, #0x38] add r6, r1, #0 str r2, [sp, #0x18] ldr r7, [sp, #0x3c] bl MOD11_0225C9D4 ldr r2, [sp, #0x1c] ldr r3, [sp, #0x38] add r1, r6, #0 str r0, [sp, #0x20] str r7, [sp] bl MOD11_0225CB10 ldr r5, [sp, #0x20] mov r4, #0 add r5, #0x1c _0225CA32: ldr r0, [sp, #0x14] add r1, r6, #0 ldrb r0, [r0, r4] bl MOD11_0225D374 ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] str r1, [sp] str r4, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x38] mov r1, #0x4f str r0, [sp, #0xc] lsl r1, r1, #2 add r1, r2, r1 ldr r3, [sp, #0x18] add r0, r5, #0 add r2, r6, #0 str r7, [sp, #0x10] bl MOD11_0225CDB0 add r4, r4, #1 add r5, #0x30 cmp r4, #6 blt _0225CA32 ldr r0, [sp, #0x20] add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0225CA6C MOD11_0225CA6C: ; 0x0225CA6C ldr r1, [r0, #4] cmp r1, #0 bne _0225CA8A mov r2, #0 _0225CA74: ldr r1, [r0, #0x20] cmp r1, #0 bne _0225CA82 add r2, r2, #1 add r0, #0x30 cmp r2, #6 blt _0225CA74 _0225CA82: cmp r2, #6 bne _0225CA8A mov r0, #1 bx lr _0225CA8A: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD11_0225CA90 MOD11_0225CA90: ; 0x0225CA90 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r4, r1, #0 add r7, r2, #0 cmp r6, #0 bne _0225CAA0 bl ErrorHandling _0225CAA0: add r0, r6, #0 add r1, r4, #0 bl MOD11_0225CC68 add r5, r6, #0 mov r4, #0 add r5, #0x1c add r6, #0x18 _0225CAB0: add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 add r3, r6, #0 bl MOD11_0225D1A8 add r4, r4, #1 add r5, #0x30 cmp r4, #6 blt _0225CAB0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0225CAC8 MOD11_0225CAC8: ; 0x0225CAC8 ldr r1, [r0, #4] cmp r1, #0 bne _0225CAE6 mov r2, #0 _0225CAD0: ldr r1, [r0, #0x20] cmp r1, #0 bne _0225CADE add r2, r2, #1 add r0, #0x30 cmp r2, #6 blt _0225CAD0 _0225CADE: cmp r2, #6 bne _0225CAE6 mov r0, #1 bx lr _0225CAE6: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD11_0225CAEC MOD11_0225CAEC: ; 0x0225CAEC push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6] bl FUN_0200C3DC mov r4, #0 add r5, r6, #0 _0225CAFA: ldr r0, [r5, #0x1c] bl FUN_0200C3DC add r4, r4, #1 add r5, #0x30 cmp r4, #6 blt _0225CAFA add r0, r6, #0 bl MOD11_0225C9F0 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225CB10 MOD11_0225CB10: ; 0x0225CB10 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] add r6, r1, #0 add r4, r2, #0 add r7, r3, #0 mov r1, #0 cmp r0, #0 bne _0225CB2A ldr r0, [r5, #4] cmp r0, #0 bne _0225CB2A mov r1, #1 _0225CB2A: cmp r1, #0 bne _0225CB32 bl ErrorHandling _0225CB32: add r0, r5, #0 mov r1, #0 mov r2, #0x1c bl MI_CpuFill8 ldr r1, [sp, #0x18] ldr r2, _0225CBA8 ; =0x0225FE48 add r0, r7, #0 bl FUN_0200C154 str r0, [r5] cmp r6, #0 ldr r0, [r5] bne _0225CB68 ldr r2, _0225CBAC ; =0x0225FE38 lsl r3, r4, #1 ldrsh r2, [r2, r3] mov r1, #0x16 lsl r1, r1, #4 bl FUN_0200C714 ldr r0, [r5] mov r1, #8 ldr r0, [r0] bl FUN_02020130 b _0225CB80 _0225CB68: ldr r2, _0225CBB0 ; =0x0225FE30 lsl r3, r4, #1 ldrsh r2, [r2, r3] mov r1, #0x5f mvn r1, r1 bl FUN_0200C714 ldr r0, [r5] mov r1, #7 ldr r0, [r0] bl FUN_02020130 _0225CB80: ldr r0, [r5] ldr r0, [r0] bl FUN_0200C59C str r6, [r5, #0xc] mov r2, #0x7d str r4, [r5, #0x10] mov r0, #0 strb r0, [r5, #0x1a] ldr r0, _0225CBB4 ; =MOD11_0225CBBC add r1, r5, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r5, #4] ldr r0, _0225CBB8 ; =0x00000711 bl FUN_020054C8 pop {r3, r4, r5, r6, r7, pc} nop _0225CBA8: .word 0x0225FE48 _0225CBAC: .word 0x0225FE38 _0225CBB0: .word 0x0225FE30 _0225CBB4: .word MOD11_0225CBBC _0225CBB8: .word 0x00000711 thumb_func_start MOD11_0225CBBC MOD11_0225CBBC: ; 0x0225CBBC push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldrb r1, [r4, #0x1a] cmp r1, #0 beq _0225CBCE cmp r1, #1 beq _0225CBEA b _0225CC52 _0225CBCE: add r1, sp, #0 ldr r0, [r4] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 add r1, sp, #0 mov r0, #2 ldrsh r0, [r1, r0] lsl r0, r0, #8 str r0, [r4, #0x14] ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CBEA: ldr r0, [r4, #0xc] ldr r1, [r4, #0x14] cmp r0, #0 bne _0225CC22 mov r0, #0xe lsl r0, r0, #8 sub r2, r1, r0 lsl r1, r0, #4 str r2, [r4, #0x14] cmp r2, r1 bgt _0225CC0A lsl r0, r0, #4 str r0, [r4, #0x14] ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CC0A: ldr r2, [r4, #0x10] ldr r1, [r4, #0x14] lsl r3, r2, #1 ldr r2, _0225CC60 ; =0x0225FE38 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 add sp, #4 pop {r3, r4, pc} _0225CC22: mov r0, #0xe lsl r0, r0, #8 add r1, r1, r0 mov r0, #2 lsl r0, r0, #0xc str r1, [r4, #0x14] cmp r1, r0 blt _0225CC3A str r0, [r4, #0x14] ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CC3A: ldr r2, [r4, #0x10] ldr r1, [r4, #0x14] lsl r3, r2, #1 ldr r2, _0225CC64 ; =0x0225FE30 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 add sp, #4 pop {r3, r4, pc} _0225CC52: bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] add sp, #4 pop {r3, r4, pc} nop _0225CC60: .word 0x0225FE38 _0225CC64: .word 0x0225FE30 thumb_func_start MOD11_0225CC68 MOD11_0225CC68: ; 0x0225CC68 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 cmp r0, #0 beq _0225CC7A ldr r0, [r5, #4] cmp r0, #0 beq _0225CC7E _0225CC7A: bl ErrorHandling _0225CC7E: mov r0, #0 strb r0, [r5, #0x1a] str r4, [r5, #8] cmp r4, #0 bne _0225CC8C mov r0, #4 b _0225CC8C _0225CC8C: strb r0, [r5, #0x1b] mov r2, #0x7d ldr r0, _0225CCA0 ; =MOD11_0225CCA4 add r1, r5, #0 lsl r2, r2, #2 bl FUN_0200CA44 str r0, [r5, #4] pop {r3, r4, r5, pc} nop _0225CCA0: .word MOD11_0225CCA4 thumb_func_start MOD11_0225CCA4 MOD11_0225CCA4: ; 0x0225CCA4 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4, #0x1a] cmp r0, #0 beq _0225CCBC cmp r0, #1 beq _0225CCFC cmp r0, #2 beq _0225CD10 b _0225CD8E _0225CCBC: add r1, sp, #4 ldr r0, [r4] add r1, #2 add r2, sp, #4 bl FUN_0200C7A0 add r1, sp, #4 mov r0, #2 ldrsh r0, [r1, r0] mov r1, #1 lsl r0, r0, #8 str r0, [r4, #0x14] ldr r0, [r4] bl FUN_0200C90C mov r0, #1 lsl r0, r0, #0xc strh r0, [r4, #0x18] mov r0, #0x18 ldrsh r0, [r4, r0] mov r1, #0 mov r2, #0x3f asr r3, r0, #8 mov r0, #0x10 sub r0, r0, r3 str r0, [sp] ldr r0, _0225CDA0 ; =0x04000050 bl G2x_SetBlendAlpha_ ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CCFC: ldrb r0, [r4, #0x1b] cmp r0, #0 beq _0225CD0A sub r0, r0, #1 add sp, #8 strb r0, [r4, #0x1b] pop {r3, r4, r5, pc} _0225CD0A: ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CD10: ldr r0, [r4, #8] cmp r0, #0 bne _0225CD54 ldr r0, [r4, #0xc] ldr r1, [r4, #0x14] cmp r0, #0 bne _0225CD3A mov r0, #1 lsl r0, r0, #0xa sub r1, r1, r0 str r1, [r4, #0x14] ldr r2, [r4, #0x10] lsl r1, r1, #8 lsl r3, r2, #1 ldr r2, _0225CDA4 ; =0x0225FE38 ldr r0, [r4] ldrsh r2, [r2, r3] asr r1, r1, #0x10 bl FUN_0200C714 b _0225CD54 _0225CD3A: mov r0, #1 lsl r0, r0, #0xa add r1, r1, r0 str r1, [r4, #0x14] ldr r2, [r4, #0x10] lsl r1, r1, #8 lsl r3, r2, #1 ldr r2, _0225CDA8 ; =0x0225FE30 ldr r0, [r4] ldrsh r2, [r2, r3] asr r1, r1, #0x10 bl FUN_0200C714 _0225CD54: mov r1, #0x18 ldrsh r2, [r4, r1] add r0, r1, #0 add r0, #0xe8 sub r0, r2, r0 strh r0, [r4, #0x18] ldrsh r0, [r4, r1] cmp r0, #0 bgt _0225CD78 mov r1, #0 strh r1, [r4, #0x18] ldr r0, [r4] ldr r0, [r0] bl FUN_0200C63C ldrb r0, [r4, #0x1a] add r0, r0, #1 strb r0, [r4, #0x1a] _0225CD78: mov r0, #0x18 ldrsh r0, [r4, r0] add sp, #8 asr r1, r0, #8 mov r0, #0x10 sub r0, r0, r1 lsl r0, r0, #8 orr r1, r0 ldr r0, _0225CDAC ; =0x04000052 strh r1, [r0] pop {r3, r4, r5, pc} _0225CD8E: bl MOD11_02231678 add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _0225CDA0: .word 0x04000050 _0225CDA4: .word 0x0225FE38 _0225CDA8: .word 0x0225FE30 _0225CDAC: .word 0x04000052 thumb_func_start MOD11_0225CDB0 MOD11_0225CDB0: ; 0x0225CDB0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] add r7, r1, #0 add r6, r2, #0 mov r1, #0 str r3, [sp] ldr r4, [sp, #0x1c] cmp r0, #0 bne _0225CDCC ldr r0, [r5, #4] cmp r0, #0 bne _0225CDCC mov r1, #1 _0225CDCC: cmp r1, #0 bne _0225CDD4 bl ErrorHandling _0225CDD4: add r0, r5, #0 mov r1, #0 mov r2, #0x30 bl MI_CpuFill8 ldr r0, [sp, #0x24] ldr r1, [sp, #0x28] ldr r2, _0225CEA4 ; =0x0225FE7C bl FUN_0200C154 str r0, [r5] cmp r6, #0 ldr r0, [r5] bne _0225CE02 ldr r2, [sp, #0x18] mov r1, #0x45 lsl r3, r2, #1 ldr r2, _0225CEA8 ; =0x0225FE40 lsl r1, r1, #2 ldrsh r2, [r2, r3] bl FUN_0200C714 b _0225CE12 _0225CE02: ldr r2, [sp, #0x18] mov r1, #0x13 lsl r3, r2, #1 ldr r2, _0225CEAC ; =0x0225FE28 mvn r1, r1 ldrsh r2, [r2, r3] bl FUN_0200C714 _0225CE12: ldr r0, [r5] ldr r1, [sp, #0x20] ldr r0, [r0] bl FUN_02020130 ldr r0, [r5] ldr r0, [r0] bl FUN_0200C59C add r0, r5, #0 str r6, [r5, #8] add r0, #0x2d strb r4, [r0] ldr r0, [sp, #0x18] str r0, [r5, #0xc] ldr r0, [sp, #0x20] bl MOD11_0225D3B4 add r1, r5, #0 add r1, #0x2e strb r0, [r1] ldr r0, [sp, #0x20] str r7, [r5, #0x14] cmp r0, #6 bne _0225CE48 ldr r0, _0225CEB0 ; =0x00000713 b _0225CE4A _0225CE48: ldr r0, _0225CEB4 ; =0x00000712 _0225CE4A: strh r0, [r5, #0x2a] cmp r6, #0 bne _0225CE5E lsl r0, r4, #4 add r0, #0xa2 str r0, [r5, #0x20] mov r0, #0xf mul r0, r4 add r0, #0x9c b _0225CE70 _0225CE5E: lsl r1, r4, #4 mov r0, #0x5e sub r0, r0, r1 str r0, [r5, #0x20] mov r0, #0xf add r1, r4, #0 mul r1, r0 mov r0, #0x64 sub r0, r0, r1 _0225CE70: str r0, [r5, #0x24] add r0, r5, #0 mov r1, #0 add r0, #0x2c strb r1, [r0] ldr r0, [sp] ldr r2, _0225CEB8 ; =0x000001F5 cmp r0, #0 bne _0225CE96 lsl r0, r4, #1 add r0, r4, r0 add r0, r0, #5 strh r0, [r5, #0x28] ldr r0, _0225CEBC ; =MOD11_0225CEC4 add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0225CE96: ldr r0, _0225CEC0 ; =MOD11_0225D0C4 strh r1, [r5, #0x28] add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225CEA4: .word 0x0225FE7C _0225CEA8: .word 0x0225FE40 _0225CEAC: .word 0x0225FE28 _0225CEB0: .word 0x00000713 _0225CEB4: .word 0x00000712 _0225CEB8: .word 0x000001F5 _0225CEBC: .word MOD11_0225CEC4 _0225CEC0: .word MOD11_0225D0C4 thumb_func_start MOD11_0225CEC4 MOD11_0225CEC4: ; 0x0225CEC4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] cmp r0, #6 bls _0225CED6 b _0225D0A6 _0225CED6: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225CEE2: ; jump table .short _0225CEF0 - _0225CEE2 - 2 ; case 0 .short _0225CF14 - _0225CEE2 - 2 ; case 1 .short _0225CF22 - _0225CEE2 - 2 ; case 2 .short _0225CFA4 - _0225CEE2 - 2 ; case 3 .short _0225CFBC - _0225CEE2 - 2 ; case 4 .short _0225CFFC - _0225CEE2 - 2 ; case 5 .short _0225D02A - _0225CEE2 - 2 ; case 6 _0225CEF0: add r1, sp, #0 ldr r0, [r4] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 add r1, sp, #0 mov r0, #2 ldrsh r0, [r1, r0] lsl r0, r0, #8 str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225CF14: mov r0, #0x28 ldrsh r0, [r4, r0] cmp r0, #0 ble _0225CF22 sub r0, r0, #1 strh r0, [r4, #0x28] pop {r3, r4, r5, pc} _0225CF22: ldr r0, [r4, #8] ldr r1, [r4, #0x1c] cmp r0, #0 bne _0225CF66 mov r0, #0xe lsl r0, r0, #8 sub r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x24] lsl r0, r0, #8 cmp r1, r0 bgt _0225CF50 str r0, [r4, #0x1c] ldrh r0, [r4, #0x2a] bl FUN_020054C8 add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225CF50: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D0BC ; =0x0225FE40 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 b _0225CF9A _0225CF66: mov r0, #0xe lsl r0, r0, #8 add r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x24] lsl r0, r0, #8 cmp r1, r0 blt _0225CF86 str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225CF86: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D0C0 ; =0x0225FE28 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 _0225CF9A: ldr r0, [r4] ldr r0, [r0] bl FUN_0200C59C pop {r3, r4, r5, pc} _0225CFA4: ldr r1, [r4, #0x14] mov r0, #0 ldrsb r0, [r1, r0] add r0, r0, #1 strb r0, [r1] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225CFBC: ldr r1, [r4, #0x14] mov r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 beq _0225CFD0 ldr r0, [r4] ldr r0, [r0] bl FUN_0200C59C pop {r3, r4, r5, pc} _0225CFD0: ldr r0, [r4, #8] cmp r0, #0 ldr r0, [r4] bne _0225CFE2 ldr r0, [r0] mov r1, #1 bl FUN_02020208 b _0225CFEA _0225CFE2: ldr r0, [r0] mov r1, #1 bl FUN_02020208 _0225CFEA: mov r0, #0 strh r0, [r4, #0x28] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225CFFC: mov r0, #0x28 ldrsh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, #0x28] ldrsh r0, [r4, r0] cmp r0, #0 blt _0225D0BA add r1, r4, #0 ldr r0, [r4] add r1, #0x2e ldrb r1, [r1] ldr r0, [r0] bl FUN_02020130 mov r0, #0 strh r0, [r4, #0x28] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D02A: ldr r0, [r4, #8] ldr r1, [r4, #0x1c] cmp r0, #0 bne _0225D068 mov r0, #6 lsl r0, r0, #8 add r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x20] lsl r0, r0, #8 cmp r1, r0 blt _0225D052 str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D052: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D0BC ; =0x0225FE40 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 b _0225D09C _0225D068: mov r0, #6 lsl r0, r0, #8 sub r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x20] lsl r0, r0, #8 cmp r1, r0 bgt _0225D088 str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D088: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D0C0 ; =0x0225FE28 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 _0225D09C: ldr r0, [r4] ldr r0, [r0] bl FUN_0200C59C pop {r3, r4, r5, pc} _0225D0A6: ldr r0, [r4] mov r1, #0 ldr r0, [r0] bl FUN_02020208 add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] _0225D0BA: pop {r3, r4, r5, pc} .align 2, 0 _0225D0BC: .word 0x0225FE40 _0225D0C0: .word 0x0225FE28 thumb_func_start MOD11_0225D0C4 MOD11_0225D0C4: ; 0x0225D0C4 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 add r1, #0x2c ldrb r1, [r1] cmp r1, #0 beq _0225D0DC cmp r1, #1 beq _0225D10A cmp r1, #2 beq _0225D11A b _0225D192 _0225D0DC: add r1, sp, #0 ldr r0, [r4] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 add r1, sp, #0 mov r0, #2 ldrsh r0, [r1, r0] mov r1, #0 lsl r0, r0, #8 str r0, [r4, #0x1c] ldr r0, [r4] ldr r0, [r0] bl FUN_02020208 add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D10A: mov r0, #0x28 ldrsh r0, [r4, r0] cmp r0, #0 ble _0225D11A sub r0, r0, #1 add sp, #4 strh r0, [r4, #0x28] pop {r3, r4, pc} _0225D11A: ldr r0, [r4, #8] ldr r1, [r4, #0x1c] cmp r0, #0 bne _0225D15A mov r0, #0xe lsl r0, r0, #8 sub r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x20] lsl r0, r0, #8 cmp r1, r0 bgt _0225D142 str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D142: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D1A0 ; =0x0225FE40 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 add sp, #4 pop {r3, r4, pc} _0225D15A: mov r0, #0xe lsl r0, r0, #8 add r1, r1, r0 str r1, [r4, #0x1c] ldr r0, [r4, #0x20] lsl r0, r0, #8 cmp r1, r0 blt _0225D17A str r0, [r4, #0x1c] add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D17A: ldr r2, [r4, #0xc] ldr r1, [r4, #0x1c] lsl r3, r2, #1 ldr r2, _0225D1A4 ; =0x0225FE28 lsl r1, r1, #8 ldrsh r2, [r2, r3] ldr r0, [r4] asr r1, r1, #0x10 bl FUN_0200C714 add sp, #4 pop {r3, r4, pc} _0225D192: bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] add sp, #4 pop {r3, r4, pc} nop _0225D1A0: .word 0x0225FE40 _0225D1A4: .word 0x0225FE28 thumb_func_start MOD11_0225D1A8 MOD11_0225D1A8: ; 0x0225D1A8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] add r6, r1, #0 add r7, r2, #0 add r4, r3, #0 cmp r0, #0 beq _0225D1BE ldr r0, [r5, #4] cmp r0, #0 beq _0225D1C2 _0225D1BE: bl ErrorHandling _0225D1C2: add r0, r5, #0 mov r1, #0 add r0, #0x2c strb r1, [r0] cmp r7, #0 str r4, [r5, #0x18] ldr r2, _0225D200 ; =0x000001F5 bne _0225D1EC lsl r0, r6, #1 add r0, r6, r0 strh r0, [r5, #0x28] add r0, r5, #0 mov r1, #4 add r0, #0x2f strb r1, [r0] ldr r0, _0225D204 ; =MOD11_0225D20C add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} _0225D1EC: add r0, r5, #0 strh r1, [r5, #0x28] add r0, #0x2f strb r1, [r0] ldr r0, _0225D208 ; =MOD11_0225D31C add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0225D200: .word 0x000001F5 _0225D204: .word MOD11_0225D20C _0225D208: .word MOD11_0225D31C thumb_func_start MOD11_0225D20C MOD11_0225D20C: ; 0x0225D20C push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #0x18] add r5, r0, #0 mov r0, #0 ldrsh r0, [r1, r0] cmp r0, #0 bne _0225D224 add r0, r4, #0 mov r1, #0x64 add r0, #0x2c strb r1, [r0] _0225D224: add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] cmp r0, #2 bgt _0225D23E cmp r0, #0 blt _0225D2FA beq _0225D242 cmp r0, #1 beq _0225D26E cmp r0, #2 beq _0225D294 b _0225D2FA _0225D23E: cmp r0, #0x64 b _0225D2FA _0225D242: add r1, sp, #0 ldr r0, [r4] add r1, #2 add r2, sp, #0 bl FUN_0200C7A0 add r1, sp, #0 mov r0, #2 ldrsh r0, [r1, r0] mov r1, #1 lsl r0, r0, #8 str r0, [r4, #0x1c] ldr r0, [r4] bl FUN_0200C90C add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D26E: add r0, r4, #0 add r0, #0x2f ldrb r0, [r0] cmp r0, #0 beq _0225D286 add r0, r4, #0 add r0, #0x2f ldrb r0, [r0] add r4, #0x2f sub r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _0225D286: mov r0, #0x28 ldrsh r0, [r4, r0] cmp r0, #0 ble _0225D294 sub r0, r0, #1 strh r0, [r4, #0x28] pop {r3, r4, r5, pc} _0225D294: ldr r0, [r4, #8] ldr r1, [r4, #0x1c] cmp r0, #0 bne _0225D2B8 mov r0, #3 lsl r0, r0, #0xa sub r1, r1, r0 str r1, [r4, #0x1c] ldr r2, [r4, #0xc] lsl r1, r1, #8 lsl r3, r2, #1 ldr r2, _0225D310 ; =0x0225FE40 ldr r0, [r4] ldrsh r2, [r2, r3] asr r1, r1, #0x10 bl FUN_0200C714 b _0225D2D2 _0225D2B8: mov r0, #3 lsl r0, r0, #0xa add r1, r1, r0 str r1, [r4, #0x1c] ldr r2, [r4, #0xc] lsl r1, r1, #8 lsl r3, r2, #1 ldr r2, _0225D314 ; =0x0225FE28 ldr r0, [r4] ldrsh r2, [r2, r3] asr r1, r1, #0x10 bl FUN_0200C714 _0225D2D2: ldr r1, [r4, #0x1c] ldr r0, _0225D318 ; =0xFFFFF000 cmp r1, r0 blt _0225D2E2 mov r0, #0x11 lsl r0, r0, #0xc cmp r1, r0 ble _0225D2F0 _0225D2E2: add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x2c strb r1, [r0] _0225D2F0: ldr r0, [r4] ldr r0, [r0] bl FUN_0200C59C pop {r3, r4, r5, pc} _0225D2FA: ldr r0, [r4] mov r1, #0 ldr r0, [r0] bl FUN_0200C63C add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] pop {r3, r4, r5, pc} .align 2, 0 _0225D310: .word 0x0225FE40 _0225D314: .word 0x0225FE28 _0225D318: .word 0xFFFFF000 thumb_func_start MOD11_0225D31C MOD11_0225D31C: ; 0x0225D31C push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #0x18] add r5, r0, #0 mov r0, #0 ldrsh r0, [r1, r0] cmp r0, #0 bne _0225D334 add r0, r4, #0 mov r1, #0x64 add r0, #0x2c strb r1, [r0] _0225D334: add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] cmp r0, #0 beq _0225D346 cmp r0, #1 beq _0225D370 cmp r0, #0x64 b _0225D35C _0225D346: ldr r0, [r4] mov r1, #1 bl FUN_0200C90C add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] add r4, #0x2c add r0, r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _0225D35C: ldr r0, [r4] mov r1, #0 ldr r0, [r0] bl FUN_0200C63C add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #4] _0225D370: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD11_0225D374 MOD11_0225D374: ; 0x0225D374 cmp r0, #3 bhi _0225D38C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225D384: ; jump table .short _0225D38C - _0225D384 - 2 ; case 0 .short _0225D390 - _0225D384 - 2 ; case 1 .short _0225D39C - _0225D384 - 2 ; case 2 .short _0225D3A8 - _0225D384 - 2 ; case 3 _0225D38C: mov r0, #6 bx lr _0225D390: cmp r1, #0 bne _0225D398 mov r0, #3 bx lr _0225D398: mov r0, #0 bx lr _0225D39C: cmp r1, #0 bne _0225D3A4 mov r0, #5 bx lr _0225D3A4: mov r0, #2 bx lr _0225D3A8: cmp r1, #0 bne _0225D3B0 mov r0, #4 bx lr _0225D3B0: mov r0, #1 bx lr thumb_func_start MOD11_0225D3B4 MOD11_0225D3B4: ; 0x0225D3B4 cmp r0, #6 bhi _0225D3EA add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0225D3C4: ; jump table .short _0225D3D8 - _0225D3C4 - 2 ; case 0 .short _0225D3E8 - _0225D3C4 - 2 ; case 1 .short _0225D3E0 - _0225D3C4 - 2 ; case 2 .short _0225D3D4 - _0225D3C4 - 2 ; case 3 .short _0225D3E4 - _0225D3C4 - 2 ; case 4 .short _0225D3DC - _0225D3C4 - 2 ; case 5 .short _0225D3D2 - _0225D3C4 - 2 ; case 6 _0225D3D2: bx lr _0225D3D4: mov r0, #0 bx lr _0225D3D8: mov r0, #3 bx lr _0225D3DC: mov r0, #2 bx lr _0225D3E0: mov r0, #5 bx lr _0225D3E4: mov r0, #1 bx lr _0225D3E8: mov r0, #4 _0225D3EA: bx lr thumb_func_start MOD11_0225D3EC MOD11_0225D3EC: ; 0x0225D3EC push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #0x1b str r0, [sp] mov r0, #0x2c str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, [sp, #0x28] add r4, r1, #0 add r6, r3, #0 str r0, [sp, #0x14] add r0, r2, #0 mov r1, #3 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r2, #0x1b mov r3, #0xba str r6, [sp, #8] bl FUN_0200C00C mov r0, #1 str r0, [sp] ldr r0, [sp, #0x2c] add r1, r4, #0 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x1b mov r3, #0xbb bl FUN_0200C124 mov r0, #1 str r0, [sp] ldr r0, [sp, #0x30] add r1, r4, #0 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x1b mov r3, #0xbc bl FUN_0200C13C add sp, #0x18 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225D45C MOD11_0225D45C: ; 0x0225D45C push {r4, r5, r6, lr} add r5, r0, #0 add r4, r2, #0 add r6, r3, #0 bl FUN_0200C358 add r0, r5, #0 add r1, r4, #0 bl FUN_0200C368 add r0, r5, #0 add r1, r6, #0 bl FUN_0200C378 ldr r1, [sp, #0x10] add r0, r5, #0 bl FUN_0200C388 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0225D484 MOD11_0225D484: ; 0x0225D484 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r5, r3, #0 mov ip, r2 ldr r3, _0225D4FC ; =0x0225FEB0 add r6, r0, #0 add r7, r1, #0 add r2, sp, #4 mov r4, #6 _0225D496: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} sub r4, r4, #1 bne _0225D496 ldr r0, [r3] mov r1, #0x18 str r0, [r2] ldr r0, [sp, #0x50] str r5, [sp, #0x18] str r0, [sp, #0x1c] ldr r0, [sp, #0x54] str r0, [sp, #0x20] ldr r0, [sp, #0x58] str r0, [sp, #0x24] ldr r0, [sp, #0x5c] str r0, [sp, #0xc] ldr r0, [sp, #0x60] str r0, [sp, #0x30] mov r0, ip bl FUN_02016998 mov r1, #0 mov r2, #0x18 str r0, [sp] bl MI_CpuFill8 ldr r5, [sp] mov r4, #0 _0225D4CE: add r0, r6, #0 add r1, r7, #0 add r2, sp, #4 bl FUN_0200C154 mov r1, #0 stmia r5!, {r0} bl FUN_0200C644 add r4, r4, #1 cmp r4, #5 blt _0225D4CE ldr r0, _0225D500 ; =MOD11_0225D670 ldr r1, [sp] ldr r2, _0225D504 ; =0x00009C40 bl FUN_0200CA44 ldr r1, [sp] str r0, [r1, #0x14] add r0, r1, #0 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _0225D4FC: .word 0x0225FEB0 _0225D500: .word MOD11_0225D670 _0225D504: .word 0x00009C40 thumb_func_start MOD11_0225D508 MOD11_0225D508: ; 0x0225D508 push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _0225D510: ldr r0, [r5] bl FUN_0200C3DC add r4, r4, #1 add r5, r5, #4 cmp r4, #5 blt _0225D510 ldr r0, [r6, #0x14] bl FUN_0200CAB4 add r0, r6, #0 bl FUN_02016A18 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225D52C MOD11_0225D52C: ; 0x0225D52C push {r4, r5, r6, lr} add r5, r0, #0 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r4, [sp, #0x24] add r6, r3, #0 ldr r0, [r5] asr r1, r1, #0x10 asr r2, r2, #0x10 add r3, r4, #0 bl FUN_0200C750 ldr r2, [sp, #0x10] lsl r1, r6, #0x10 lsl r2, r2, #0x10 ldr r0, [r5, #4] asr r1, r1, #0x10 asr r2, r2, #0x10 add r3, r4, #0 bl FUN_0200C750 ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r5, #8] asr r1, r1, #0x10 asr r2, r2, #0x10 add r3, r4, #0 bl FUN_0200C750 ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r5, #0xc] asr r1, r1, #0x10 asr r2, r2, #0x10 add r3, r4, #0 bl FUN_0200C750 ldr r0, [r5] mov r1, #0 bl FUN_0200C5C0 ldr r0, [r5, #4] mov r1, #1 bl FUN_0200C5C0 ldr r0, [r5, #8] mov r1, #2 bl FUN_0200C5C0 ldr r0, [r5, #0xc] mov r1, #3 bl FUN_0200C5C0 mov r4, #0 mov r6, #1 _0225D5A2: ldr r0, [r5] add r1, r6, #0 bl FUN_0200C644 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0225D5A2 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225D5B4 MOD11_0225D5B4: ; 0x0225D5B4 push {r4, lr} sub sp, #0x18 ldr r4, [sp, #0x20] str r4, [sp] ldr r4, [sp, #0x24] str r4, [sp, #4] ldr r4, [sp, #0x28] str r4, [sp, #8] ldr r4, [sp, #0x2c] str r4, [sp, #0xc] ldr r4, [sp, #0x30] str r4, [sp, #0x10] mov r4, #3 lsl r4, r4, #0x12 str r4, [sp, #0x14] bl MOD11_0225D52C add sp, #0x18 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0225D5DC MOD11_0225D5DC: ; 0x0225D5DC push {r3, r4, lr} sub sp, #0x14 add r4, r2, #0 str r3, [sp] ldr r2, [sp, #0x20] str r1, [sp, #4] str r2, [sp, #8] str r4, [sp, #0xc] str r2, [sp, #0x10] add r2, r3, #0 add r3, r4, #0 bl MOD11_0225D5B4 add sp, #0x14 pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD11_0225D5FC MOD11_0225D5FC: ; 0x0225D5FC push {r4, lr} sub sp, #0x18 add r4, r2, #0 str r3, [sp] ldr r2, [sp, #0x20] str r1, [sp, #4] str r2, [sp, #8] str r4, [sp, #0xc] str r2, [sp, #0x10] ldr r2, [sp, #0x24] str r2, [sp, #0x14] add r2, r3, #0 add r3, r4, #0 bl MOD11_0225D52C add sp, #0x18 pop {r4, pc} .align 2, 0 thumb_func_start MOD11_0225D620 MOD11_0225D620: ; 0x0225D620 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r3, #0 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r5, #0x10] ldr r3, [sp, #0x10] asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C750 ldr r0, [r5, #0x10] add r1, r4, #0 bl FUN_0200C5C0 ldr r0, [r5, #0x10] mov r1, #1 bl FUN_0200C644 pop {r3, r4, r5, pc} thumb_func_start MOD11_0225D648 MOD11_0225D648: ; 0x0225D648 push {r4, r5, r6, lr} mov r4, #0 add r5, r0, #0 add r6, r4, #0 _0225D650: ldr r0, [r5] add r1, r6, #0 bl FUN_0200C644 add r4, r4, #1 add r5, r5, #4 cmp r4, #5 blt _0225D650 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0225D664 MOD11_0225D664: ; 0x0225D664 ldr r3, _0225D66C ; =0x0200C645 ldr r0, [r0, #0x10] mov r1, #0 bx r3 .align 2, 0 _0225D66C: .word 0x0200C645 thumb_func_start MOD11_0225D670 MOD11_0225D670: ; 0x0225D670 push {r4, r5, r6, lr} add r6, r1, #0 ldr r0, [r6] bl FUN_0200C658 cmp r0, #0 beq _0225D6A0 mov r4, #0 add r5, r6, #0 _0225D682: ldr r0, [r5] bl FUN_0200C5A8 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0225D682 ldr r0, [r6, #0x10] bl FUN_0200C658 cmp r0, #1 bne _0225D6A0 ldr r0, [r6, #0x10] bl FUN_0200C5A8 _0225D6A0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0225D6A4 MOD11_0225D6A4: ; 0x0225D6A4 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #0x52 str r0, [sp] mov r0, #0xb str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, [sp, #0x28] add r4, r1, #0 add r6, r3, #0 str r0, [sp, #0x14] add r0, r2, #0 mov r1, #3 add r2, r5, #0 add r3, r4, #0 bl FUN_0200C0DC mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] add r0, r5, #0 add r1, r4, #0 mov r2, #0x52 mov r3, #0xa str r6, [sp, #8] bl FUN_0200C00C mov r0, #0 str r0, [sp] ldr r0, [sp, #0x2c] add r1, r4, #0 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x52 mov r3, #0xc bl FUN_0200C124 mov r0, #0 str r0, [sp] ldr r0, [sp, #0x30] add r1, r4, #0 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x52 mov r3, #0xd bl FUN_0200C13C add sp, #0x18 pop {r4, r5, r6, pc} thumb_func_start MOD11_0225D714 MOD11_0225D714: ; 0x0225D714 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r2, #0 add r6, r3, #0 bl FUN_0200C358 add r0, r5, #0 add r1, r4, #0 bl FUN_0200C368 add r0, r5, #0 add r1, r6, #0 bl FUN_0200C378 ldr r1, [sp, #0x10] add r0, r5, #0 bl FUN_0200C388 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD11_0225D73C MOD11_0225D73C: ; 0x0225D73C push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 ldr r5, _0225D7AC ; =0x0225FEE4 add r6, r3, #0 add r7, r0, #0 str r1, [sp] add r4, sp, #4 mov r3, #6 _0225D74C: ldmia r5!, {r0, r1} stmia r4!, {r0, r1} sub r3, r3, #1 bne _0225D74C ldr r0, [r5] mov r1, #0x20 str r0, [r4] ldr r0, [sp, #0x50] str r6, [sp, #0x18] str r0, [sp, #0x1c] ldr r0, [sp, #0x54] str r0, [sp, #0x20] ldr r0, [sp, #0x58] str r0, [sp, #0x24] ldr r0, [sp, #0x5c] str r0, [sp, #0xc] ldr r0, [sp, #0x60] str r0, [sp, #0x30] add r0, r2, #0 bl FUN_02016998 mov r1, #0 mov r2, #0x20 add r4, r0, #0 bl MI_CpuFill8 ldr r1, [sp] add r0, r7, #0 add r2, sp, #4 bl FUN_0200C154 mov r1, #0 str r0, [r4] bl FUN_0200C644 mov r0, #3 lsl r0, r0, #0x12 str r0, [r4, #0x14] ldr r0, _0225D7B0 ; =MOD11_0225D828 ldr r2, _0225D7B4 ; =0x000003E7 add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #4] add r0, r4, #0 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _0225D7AC: .word 0x0225FEE4 _0225D7B0: .word MOD11_0225D828 _0225D7B4: .word 0x000003E7 thumb_func_start MOD11_0225D7B8 MOD11_0225D7B8: ; 0x0225D7B8 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_0200C3DC ldr r0, [r4, #4] bl FUN_0200CAB4 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_start MOD11_0225D7D0 MOD11_0225D7D0: ; 0x0225D7D0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 add r4, r2, #0 add r6, r3, #0 bl MOD11_0225D98C str r7, [r5, #8] str r4, [r5, #0xc] str r6, [r5, #0x14] lsl r1, r7, #0x10 lsl r2, r4, #0x10 ldr r0, [r5] asr r1, r1, #0x10 asr r2, r2, #0x10 add r3, r6, #0 bl FUN_0200C750 ldr r0, [r5] mov r1, #1 bl FUN_0200C644 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD11_0225D800 MOD11_0225D800: ; 0x0225D800 push {r3, lr} mov r3, #3 lsl r3, r3, #0x12 bl MOD11_0225D7D0 pop {r3, pc} thumb_func_start MOD11_0225D80C MOD11_0225D80C: ; 0x0225D80C push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #0 bl FUN_0200C644 add r0, r4, #0 bl MOD11_0225D98C pop {r4, pc} thumb_func_start MOD11_0225D820 MOD11_0225D820: ; 0x0225D820 strh r1, [r0, #0x18] bx lr thumb_func_start MOD11_0225D824 MOD11_0225D824: ; 0x0225D824 ldrb r0, [r0, #0x1b] bx lr thumb_func_start MOD11_0225D828 MOD11_0225D828: ; 0x0225D828 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldrb r0, [r4, #0x1b] cmp r0, #1 bne _0225D836 mov r0, #0 strb r0, [r4, #0x1b] _0225D836: mov r0, #0x18 ldrsh r1, [r4, r0] cmp r1, #0 ble _0225D84C sub r1, r1, #1 strh r1, [r4, #0x18] ldrsh r0, [r4, r0] cmp r0, #0 bne _0225D84C mov r0, #1 strb r0, [r4, #0x1a] _0225D84C: ldr r0, [r4] bl FUN_0200C658 cmp r0, #0 bne _0225D858 b _0225D984 _0225D858: ldrb r0, [r4, #0x1c] cmp r0, #0 bne _0225D8DA mov r1, #0xfa ldr r2, [r4, #0x10] lsl r1, r1, #2 add r2, r2, r1 add r0, r4, #0 ldr r1, _0225D988 ; =0x00004650 add r0, #0x10 str r2, [r4, #0x10] cmp r2, r1 blt _0225D886 ldr r2, [r0] sub r1, r2, r1 str r1, [r0] ldrb r0, [r4, #0x1a] cmp r0, #1 bne _0225D886 mov r0, #1 strb r0, [r4, #0x1c] mov r0, #0 strb r0, [r4, #0x1a] _0225D886: ldrb r0, [r4, #0x1c] cmp r0, #0 bne _0225D8DA ldr r0, [r4, #0x10] mov r1, #0x64 bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0201B93C mov r2, #0xe asr r1, r0, #0x1f lsl r2, r2, #0xc mov r3, #0 bl _ll_mul add r5, r1, #0 ldr r1, [r4, #8] mov r2, #2 add r6, r0, #0 lsl r1, r1, #0x10 mov r7, #0 lsl r2, r2, #0xa asr r1, r1, #0x10 add r2, r6, r2 adc r5, r7 lsl r5, r5, #0x14 lsr r2, r2, #0xc orr r2, r5 asr r5, r2, #0xb lsr r5, r5, #0x14 add r5, r2, r5 ldr r3, [r4, #0xc] asr r2, r5, #0xc sub r2, r3, r2 lsl r2, r2, #0x10 ldr r0, [r4] ldr r3, [r4, #0x14] asr r2, r2, #0x10 bl FUN_0200C750 _0225D8DA: ldrb r0, [r4, #0x1c] cmp r0, #1 bne _0225D97E ldrb r0, [r4, #0x1d] cmp r0, #3 bhi _0225D97E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0225D8F2: ; jump table .short _0225D8FA - _0225D8F2 - 2 ; case 0 .short _0225D912 - _0225D8F2 - 2 ; case 1 .short _0225D934 - _0225D8F2 - 2 ; case 2 .short _0225D962 - _0225D8F2 - 2 ; case 3 _0225D8FA: ldrb r0, [r4, #0x1e] add r0, r0, #1 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1e] cmp r0, #3 bls _0225D97E mov r0, #0 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1d] add r0, r0, #1 strb r0, [r4, #0x1d] b _0225D97E _0225D912: ldr r2, [r4, #0xc] ldr r1, [r4, #8] add r2, #8 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r4] ldr r3, [r4, #0x14] asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C750 mov r0, #1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x1d] add r0, r0, #1 strb r0, [r4, #0x1d] b _0225D97E _0225D934: ldrb r0, [r4, #0x1e] add r0, r0, #1 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1e] cmp r0, #2 bls _0225D97E ldr r2, [r4, #0xc] ldr r1, [r4, #8] add r2, r2, #2 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r4] ldr r3, [r4, #0x14] asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C750 mov r0, #0 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1d] add r0, r0, #1 strb r0, [r4, #0x1d] b _0225D97E _0225D962: ldrb r0, [r4, #0x1e] add r0, r0, #1 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1e] cmp r0, #2 bls _0225D97E add r0, r4, #0 bl MOD11_0225D80C mov r0, #0 strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1d] add r0, r0, #1 strb r0, [r4, #0x1d] _0225D97E: ldr r0, [r4] bl FUN_0200C5A8 _0225D984: pop {r3, r4, r5, r6, r7, pc} nop _0225D988: .word 0x00004650 thumb_func_start MOD11_0225D98C MOD11_0225D98C: ; 0x0225D98C mov r1, #0 str r1, [r0, #0x10] strb r1, [r0, #0x1c] strb r1, [r0, #0x1d] strb r1, [r0, #0x1e] bx lr .section .rodata ; 0x0225D998 .incbin "baserom.nds", 0x1dd7d8, 0x2580 ; Stupid hack to override alignment ; .section .sinit ; 0x0225FF18 .global SDK_OVERLAY.MODULE_11.SINIT_START .global SDK_OVERLAY.MODULE_11.SINIT_END SDK_OVERLAY.MODULE_11.SINIT_START: .word MOD11_0222F284 .word 0 SDK_OVERLAY.MODULE_11.SINIT_END: .section .data ; 0x0225FF20 .incbin "baserom.nds", 0x1dfd60, 0x80