.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 GetPartyMonByIndex 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 getseed_LC 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 seedr_LC 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 AllocFromHeap 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 MOD08_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 NewMsgDataFromNarc str r0, [r4, #0xc] mov r0, #1 mov r1, #0x1a mov r2, #0 mov r3, #5 bl NewMsgDataFromNarc 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 GetPartyMonByIndex 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 FreeToHeap add r1, r6, #0 add r1, #0xf8 ldr r0, [r5, #0x48] ldr r1, [r1] bl FUN_0202393C ldr r0, [r5, #0x48] bl FreeToHeap 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 FreeToHeap mov r1, #0x11 lsl r1, r1, #4 ldr r0, [r4, #0x60] ldr r1, [r7, r1] bl FUN_02023D80 ldr r0, [r4, #0x60] bl FreeToHeap 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 FreeToHeap add r6, r6, #1 add r5, #0x10 cmp r6, #4 blt _0222E10A ldr r0, [r4, #0x18] bl FreeToHeap 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 DestroyMsgData ldr r0, [r4, #0x10] bl DestroyMsgData 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 MOD08_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 FreeToHeap mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] bl FreeToHeap mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] bl FreeToHeap 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 seedr_LC 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 FreeToHeap 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 GetMonData 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 GetPartyCount cmp r0, #0 ble _0222E7AA _0222E76C: ldr r0, [r7, #0x68] add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0222E79E add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E79E add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E7AA _0222E79E: ldr r0, [r7, #0x68] add r5, r5, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0222E886 _0222E848: ldr r0, [r7, #0x68] add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0222E87A add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E87A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E886 _0222E87A: ldr r0, [r7, #0x68] add r5, r5, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0222E9B8 _0222E938: ldr r0, [r7, #0x68] add r1, r6, #0 bl GetPartyMonByIndex 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 GetMonData cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E9B8 b _0222E9AC _0222E984: mov r1, #5 mov r2, #0 bl GetMonData cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222E9B8 _0222E9AC: ldr r0, [r7, #0x68] add r6, r6, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0222EA60 _0222EA22: ldr r0, [r7, #0x68] add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0222EA54 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EA54 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EA60 _0222EA54: ldr r0, [r7, #0x68] add r5, r5, #1 bl GetPartyCount 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 GetMonData cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 beq _0222EB56 ldr r0, [sp, #0x38] cmp r0, r5 bne _0222EB64 b _0222EB56 _0222EB2E: mov r1, #5 mov r2, #0 bl GetMonData cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData 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 GetPartyCount cmp r0, #0 ble _0222EC34 _0222EBF6: ldr r0, [r7, #0x68] add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0222EC28 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EC28 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EC34 _0222EC28: ldr r0, [r7, #0x68] add r5, r5, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0222ED60 _0222ECE0: ldr r0, [r7, #0x68] add r1, r6, #0 bl GetPartyMonByIndex 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 GetMonData cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222ED60 b _0222ED54 _0222ED2C: mov r1, #5 mov r2, #0 bl GetMonData cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222ED60 _0222ED54: ldr r0, [r7, #0x68] add r6, r6, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0222EE10 _0222EDD2: ldr r0, [r7, #0x68] add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0222EE04 add r0, r6, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EE04 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 bne _0222EE10 _0222EE04: ldr r0, [r7, #0x68] add r5, r5, #1 bl GetPartyCount 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 GetPartyMonByIndex add r2, r4, #0 mov r1, #0x8f add r2, #0xf4 bl GetMonData _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 GetPartyCount cmp r0, #0 ble _0222EEAC ldr r6, _0222EEEC ; =0x00002404 mov r7, #3 _0222EE8C: ldr r0, [r4, #0x68] add r1, r5, #0 bl GetPartyMonByIndex ldr r2, [r4, r6] add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl MonApplyFriendshipMod ldr r0, [r4, #0x68] add r5, r5, #1 bl GetPartyCount cmp r5, r0 blt _0222EE8C _0222EEAC: ldr r0, [r4, #0x70] mov r5, #0 bl GetPartyCount cmp r0, #0 ble _0222EEDC ldr r6, _0222EEEC ; =0x00002404 mov r7, #3 _0222EEBC: ldr r0, [r4, #0x70] add r1, r5, #0 bl GetPartyMonByIndex ldr r2, [r4, r6] add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl MonApplyFriendshipMod ldr r0, [r4, #0x70] add r5, r5, #1 bl GetPartyCount 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 ; =FUN_020223BC bx r3 .align 2, 0 _0222EFD8: .word FUN_020223BC 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 rand_LC 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 MOD08_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 MaskOfFlagNo 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 NewMsgDataFromNarc 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 DestroyMsgData 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 FreeToHeap 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 FreeToHeap add r0, r4, #0 bl FreeToHeap 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 AllocFromHeap 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 MOD07_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 FreeToHeap _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 FreeToHeap 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 AllocFromHeap 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 MOD07_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 FreeToHeap _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 FreeToHeap 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 AllocFromHeap 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 MOD07_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 FreeToHeap _0222FE7C: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _0222FE72 add r0, r6, #0 bl FreeToHeap 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 GetPartyCount 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 GetPartyCount pop {r3, r4, r5, pc} _02230008: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] bl GetPartyCount 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 GetPartyMonByIndex 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 GetPartyMonByIndex pop {r4, r5, r6, pc} _0223005A: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x68] add r1, r6, #0 bl GetPartyMonByIndex 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 ; =FUN_020239CC ldr r0, [r0, #0x48] bx r3 nop _02230228: .word FUN_020239CC 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 GetMonData 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 SetMonData 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 GetMonData 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 SetMonData 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 GetMonData 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 SetMonData 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 GetMonData 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 SetMonData 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 GetMonData 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 SetMonData 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 GetMonData add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 bl GetMonData cmp r7, r0 beq _0223095A add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a bl AddMonData 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 MaskOfFlagNo 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 GetMonData add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 bl GetMonData cmp r7, r0 beq _022309F2 add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a bl AddMonData 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 MaskOfFlagNo 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 GetMonData 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 GetMonData 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 GetMonData add r4, r0, #0 ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl GetMonData 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 GetMonData str r0, [sp, #0x20] b _02230AC2 _02230A8C: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 bl GetMonData 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 GetMonData 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 AddMonData 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 GetMonData 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 GetMonData cmp r0, #0x64 blo _02230B8E ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 bl GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 AddMonData 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo ldr r1, [r5, r6] tst r0, r1 beq _02230D92 ldr r0, [r4] bl MaskOfFlagNo 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 GetPartyMonByIndex 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 GetMonEvolution 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 ; =FUN_02025084 ldr r0, [r0, r1] bx r3 nop _02230E50: .word FUN_02025084 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 ; =FUN_02025048 ldr r0, [r0, r1] bx r3 nop _02230E7C: .word FUN_02025048 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 GetMonData 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 MaskOfFlagNo 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 SetMonData _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 MaskOfFlagNo 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 AllocFromHeap mov r1, #0x87 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #5 sub r1, #0x1c bl AllocFromHeap 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 ; =FUN_0202A0E8 ldr r0, [r0, r2] bx r3 nop _02231298: .word FUN_0202A0E8 thumb_func_start MOD11_0223129C MOD11_0223129C: ; 0x0223129C mov r1, #0x86 lsl r1, r1, #2 ldr r0, [r0, r1] ldr r3, _022312A8 ; =FUN_0202A170 mov r1, #0x16 bx r3 .align 2, 0 _022312A8: .word FUN_0202A170 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 GetMonData 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 ; =FUN_02024594 lsl r1, r1, #0x10 ldr r0, [r0, #0x60] lsr r1, r1, #0x10 bx r3 nop _02231674: .word FUN_02024594 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 NewMsgDataFromNarc 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 DestroyMsgData 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 ; =FUN_0200AD5C ldr r0, [r0, #0x14] bx r3 nop _022320F4: .word FUN_0200AD5C thumb_func_start MOD11_022320F8 MOD11_022320F8: ; 0x022320F8 ldr r3, _02232100 ; =FUN_0200AE38 ldr r0, [r0, #0x14] bx r3 nop _02232100: .word FUN_0200AE38 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 ; =FUN_0200AF18 ldr r0, [r0, #0x14] bx r3 nop _02232150: .word FUN_0200AF18 thumb_func_start MOD11_02232154 MOD11_02232154: ; 0x02232154 ldr r3, _0223215C ; =FUN_0200ADCC ldr r0, [r0, #0x14] bx r3 nop _0223215C: .word FUN_0200ADCC thumb_func_start MOD11_02232160 MOD11_02232160: ; 0x02232160 ldr r3, _02232168 ; =FUN_0200AF50 ldr r0, [r0, #0x14] bx r3 nop _02232168: .word FUN_0200AF50 thumb_func_start MOD11_0223216C MOD11_0223216C: ; 0x0223216C ldr r3, _02232174 ; =FUN_0200AF88 ldr r0, [r0, #0x14] bx r3 nop _02232174: .word FUN_0200AF88 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 ; =FUN_0200AFBC ldr r0, [r0, #0x14] bx r3 nop _022321A8: .word FUN_0200AFBC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 GetPartyCount 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 GetMonData cmp r0, #0 beq _022339B4 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 beq _022339B4 add r0, r4, #0 bl MaskOfFlagNo 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 GetMonData 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 GetPartyCount 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 GetMonBaseStat 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 AllocFromHeap 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 MaskOfFlagNo 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 MaskOfFlagNo tst r0, r4 bne _02233B92 ldr r0, [sp, #0x10] bl MaskOfFlagNo tst r0, r4 bne _02233B92 add r0, r5, #0 bl MaskOfFlagNo orr r4, r0 add r0, r6, #0 add r1, r5, #0 bl MOD11_022564CC b _02233B92 _02233B80: add r0, r5, #0 bl MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 AllocFromHeap 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 rand_LC mov r1, #3 and r0, r1 cmp r0, #2 bge _02233E2C add r4, r0, #2 b _02233E36 _02233E2C: bl rand_LC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 AllocFromHeap 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 FreeToHeap 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 rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 rand_LC lsr r1, r0, #0x1f lsl r0, r0, #0x1e sub r0, r0, r1 ror r0, r7 add r6, r1, r0 add r0, r6, #0 bl MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 GetPartyMonByIndex mov r1, #5 mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _022367C8 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _022367C8 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData 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 rand_LC 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 GetPartyMonByIndex add r1, r7, #0 mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _022367EA add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #1 beq _022367EA add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData 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 MaskOfFlagNo 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 rand_LC 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 rand_LC 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 GetMonData cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _022378F8 add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetMonData str r0, [sp, #4] add r0, r4, #0 mov r1, #0x70 mov r2, #0 bl GetMonData add r6, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData add r4, r0, #0 ldr r0, [sp, #4] add r1, r6, #0 mov r2, #1 bl GetMonBaseStat_HandleFormeConversion 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 GetMonBaseStat_HandleFormeConversion 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 GetMonData cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _02237A7C add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 GetMonData cmp r0, #0 beq _02237D7E ldr r0, [sp, #8] mov r1, #0xad mov r2, #0 bl GetMonData 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 GetMonData 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 rand_LC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 GetMonData lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0 mov r1, #6 mov r2, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] add r0, r4, #0 mov r1, #0xa mov r2, #0 bl GetMonData 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 rand_LC mov r1, #0xa bl _s32_div_f cmp r1, #0 bne _022392EC bl rand_LC mov r1, #0x64 bl _s32_div_f add r5, r1, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData 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 SetMonData 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 SetMonData 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 GetMonData 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 rand_LC 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 SetMonData _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 rand_LC 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 rand_LC 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 GetAttrFromWazaTbl 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 GetPartyCount cmp r0, #0 ble _02239E68 _02239E2A: add r0, r7, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _02239E5C add r0, r6, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239E5C add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r5, r5, r0 _02239E5C: add r0, r7, #0 add r4, r4, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _02239ECC ldr r7, _02239F48 ; =0x000001EE _02239E90: ldr r0, [sp, #8] add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _02239EC0 add r0, r6, #0 mov r1, #0xad mov r2, #0 bl GetMonData cmp r0, r7 beq _02239EC0 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r5, r5, r0 _02239EC0: ldr r0, [sp, #8] add r4, r4, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _02239F36 _02239EF8: add r0, r7, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _02239F2A add r0, r6, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239F2A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r5, r5, r0 _02239F2A: add r0, r7, #0 add r4, r4, #1 bl GetPartyCount 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 rand_LC 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 rand_LC 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 GetMonData str r0, [sp] add r0, r6, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetMonData 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 MaskOfFlagNo 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 GetMonData 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 GetMonData 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 GetMonData cmp r0, #0 bne _0223A928 b _0223AA34 _0223A928: add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData cmp r0, #0x64 beq _0223AA34 ldr r0, [r4, #4] str r0, [sp, #0x20] add r0, r5, #0 bl MaskOfFlagNo 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 GetMonData 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 GetMonData str r0, [sp, #0x48] add r0, r6, #0 bl GetMonBaseExperienceAtCurrentLevel 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 SetMonData 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 GetMonData str r0, [sp, #0x30] mov r0, #5 mov r1, #0x18 bl AllocFromHeap 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 GetMonData 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 MonApplyFriendshipMod add r0, r6, #0 bl CalcMonStats 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 MaskOfFlagNo 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 GetMonData 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 GetMonData 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 FreeToHeap 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 GetMonData 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 SetMonData 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 MaskOfFlagNo 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 FreeToHeap 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 AllocAndLoadMonPersonal add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #4] bl GetPartyMonByIndex mov r1, #6 add r2, r4, #0 str r0, [sp, #0x14] bl GetMonData 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 GetMonData 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 GetPersonalAttr 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 GetPersonalAttr 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 GetPersonalAttr 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 GetPersonalAttr 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 GetPersonalAttr 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 GetPersonalAttr 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 MaskOfFlagNo 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 SetMonData 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 FreeMonPersonal 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 MaskOfFlagNo 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 GetMonData 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 MOD16_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 MOD16_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 MOD05_021EEF9C add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _0223B9E4: ldr r0, [r4, #0x50] bl MOD16_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 MOD05_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 GetMonData 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 GetMonData 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 GetMonData 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 SetMonData _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 GetMonData add r1, r5, #0 str r0, [sp, #0x2c] add r0, r6, #0 add r1, #0x3a add r2, sp, #0x2c bl SetMonData 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 GetMonBaseStat 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 GetMonBaseStat 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 rand_LC 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 GetMonData cmp r0, #0 bne _0223CF26 mov r0, #2 b _0223CF30 _0223CF26: ldr r0, [sp, #0x18] mov r1, #0x6f mov r2, #0 bl GetMonData _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 GetMonData 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 MonApplyFriendshipMod 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 MonApplyFriendshipMod 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 MonApplyFriendshipMod _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 AllocFromHeap 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 MOD16_021EFBF4 _0223D216: ldr r0, _0223D230 ; =0x000003DE add r0, r4, r0 bl LoadAllWazaTbl 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 FreeToHeap add r0, r4, #0 bl FreeToHeap 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 MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 LowestFlagNo 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 rand_LC mov r1, #3 add r7, r0, #0 and r7, r1 add r0, r7, #0 bl MaskOfFlagNo 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 rand_LC 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 MaskOfFlagNo 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 rand_LC 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 rand_LC 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 rand_LC 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 LowestFlagNo mov r1, #0x46 lsl r1, r1, #2 str r0, [r4, r1] bl rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 LowestFlagNo 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _02241E3E add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241E3E add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData 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 GetPartyCount cmp r5, r0 blt _02241DFE _02241E4A: cmp r7, #0 bne _02241E6E ldr r0, [sp, #0x2c] bl MaskOfFlagNo 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 GetPartyCount cmp r0, #0 ble _02241EF2 _02241EB4: add r0, r6, #0 add r1, r5, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _02241EE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241EE6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r7, r7, r0 _02241EE6: add r0, r6, #0 add r5, r5, #1 bl GetPartyCount cmp r5, r0 blt _02241EB4 _02241EF2: cmp r7, #0 bne _02241F16 ldr r0, [sp, #0x2c] bl MaskOfFlagNo 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 GetPartyCount cmp r0, #0 ble _02242094 _02242056: add r0, r6, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r5, r0, #0 bl GetMonData cmp r0, #0 beq _02242088 add r0, r5, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242088 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r7, r7, r0 _02242088: add r0, r6, #0 add r4, r4, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0224213C _022420FE: add r0, r7, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _02242130 add r0, r6, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242130 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r5, r5, r0 _02242130: add r0, r7, #0 add r4, r4, #1 bl GetPartyCount cmp r4, r0 blt _022420FE _0224213C: ldr r0, [sp, #0x18] mov r4, #0 bl GetPartyCount cmp r0, #0 ble _02242186 ldr r7, _02242340 ; =0x000001EE _0224214A: ldr r0, [sp, #0x18] add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r6, r0, #0 bl GetMonData cmp r0, #0 beq _0224217A add r0, r6, #0 mov r1, #0xad mov r2, #0 bl GetMonData cmp r0, r7 beq _0224217A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r5, r5, r0 _0224217A: ldr r0, [sp, #0x18] add r4, r4, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0224221A _022421DC: add r0, r6, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r5, r0, #0 bl GetMonData cmp r0, #0 beq _0224220E add r0, r5, #0 mov r1, #0xad mov r2, #0 bl GetMonData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _0224220E add r0, r5, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData add r7, r7, r0 _0224220E: add r0, r6, #0 add r4, r4, #1 bl GetPartyCount 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 LowestFlagNo 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 LowestFlagNo 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 rand_LC 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 GetMonData ldr r1, [sp, #0x18] mov r2, #0 strh r0, [r1, r5] add r0, r4, #0 mov r1, #0xa4 bl GetMonData ldr r1, _02242F4C ; =0x00002D42 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa5 mov r2, #0 bl GetMonData ldr r1, _02242F50 ; =0x00002D44 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa6 mov r2, #0 bl GetMonData ldr r1, _02242F54 ; =0x00002D46 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa7 mov r2, #0 bl GetMonData ldr r1, _02242F58 ; =0x00002D48 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa8 mov r2, #0 bl GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData ldr r1, _02242FA0 ; =0x00002D64 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xb1 mov r2, #0 bl GetMonData 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 GetMonGender 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 MonIsShiny 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 GetMonData 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 GetMonData ldr r1, _02242FAC ; =0x00002D67 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetMonData 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 GetMonData ldr r1, _02242FB4 ; =0x00002D74 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #9 mov r2, #0 bl GetMonData ldr r1, _02242FB8 ; =0x00002D75 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData ldr r1, _02242FBC ; =0x00002D8C add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0xa3 mov r2, #0 bl GetMonData ldr r1, _02242FC0 ; =0x00002D90 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #8 mov r2, #0 bl GetMonData ldr r1, _02242FC4 ; =0x00002DA4 add r2, r7, r6 str r0, [r2, r1] mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl GetMonData ldr r1, _02242FC8 ; =0x00002DA8 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #7 mov r2, #0 bl GetMonData ldr r1, _02242FCC ; =0x00002DB4 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0x9c mov r2, #0 bl GetMonData 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 GetMonData 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 GetMonData ldr r2, _02242FDC ; =0x00002D94 add r0, r4, #0 add r2, r7, r2 mov r1, #0x8f add r2, r2, r6 bl GetMonData 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 MaskOfFlagNo 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 MaskOfFlagNo 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 GetMonData ldr r1, _022431CC ; =0x00002D4C mov r2, #0 strh r0, [r7, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3a bl GetMonData ldr r1, _022431D0 ; =0x00002D6C mov r2, #0 strb r0, [r5, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3e bl GetMonData 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 GetMonData 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 GetNarcMemberSizeByIdPair 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 ReadWholeNarcMemberByIdPair 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 GetNarcMemberSizeByIdPair 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 ReadWholeNarcMemberByIdPair 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 WazaGetMaxPp 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 WazaGetMaxPp 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo ldr r1, _0224493C ; =0x00003108 ldrb r1, [r5, r1] tst r0, r1 bne _02244928 ldr r0, [sp] bl MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 GetPartyCount cmp r0, #0 ble _022453C6 _022453A4: add r0, r5, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 beq _022453BA add r6, r6, #1 _022453BA: add r0, r5, #0 add r4, r4, #1 bl GetPartyCount 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 GetPartyCount cmp r0, #0 ble _0224543A _02245418: add r0, r5, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0 bl GetMonData cmp r0, #0 beq _0224542E add r6, r6, #1 _0224542E: add r0, r5, #0 add r4, r4, #1 bl GetPartyCount 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 rand_LC 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 MaskOfFlagNo ldr r1, _02245600 ; =0x00003108 ldrb r2, [r6, r1] orr r0, r2 strb r0, [r6, r1] mov r0, #3 bl MaskOfFlagNo 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 MaskOfFlagNo ldr r1, _02245958 ; =0x00002DB0 lsl r0, r0, #0x10 ldr r1, [r5, r1] tst r0, r1 beq _02245792 add r0, r4, #0 bl MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo ldr r1, _02245C38 ; =0x00002DB0 lsl r0, r0, #0x10 ldr r1, [r4, r1] tst r0, r1 beq _02245AA8 add r0, r5, #0 bl MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MaskOfFlagNo 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 rand_LC 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 MaskOfFlagNo 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 rand_LC 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 GetPartyMonByIndex mov r1, #5 mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _02246EB6 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl GetMonData cmp r0, #0 bne _02246EB6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 bl GetMonData 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC mov r1, #0xa bl _s32_div_f cmp r1, #3 bge _02248650 bl rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 WazaGetMaxPp 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 rand_LC 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 WazaGetMaxPp 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 rand_LC 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 GetMonData 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 GetMonData add r0, r5, #0 mov r1, #7 mov r2, #0 bl GetMonData cmp r6, r0 bne _0224AE72 add r0, r5, #0 mov r1, #0x9c mov r2, #0 bl GetMonData 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 GetArceusTypeByHeldItemEffect 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 rand_LC 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 rand_LC 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 MaskOfFlagNo 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 rand_LC 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 AllocFromHeap 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 FreeToHeap 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 MaskOfFlagNo 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 SetMonData ldr r2, [sp, #8] add r1, r4, #0 add r0, r7, #0 add r1, #0x3a add r2, r2, r4 bl SetMonData _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 MaskOfFlagNo ldr r1, [r6, #8] tst r0, r1 bne _0224CF30 add r2, r6, #0 add r0, r7, #0 mov r1, #6 add r2, #0xc bl SetMonData _0224CF30: add r0, r7, #0 mov r1, #0xa2 add r2, r6, #2 bl SetMonData add r0, r7, #0 mov r1, #0x9f add r2, r6, #4 bl SetMonData 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 GetMonData _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 SetMonData _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 GetPartyCount cmp r0, #0 ble _0224D4C0 _0224D466: add r0, r6, #0 add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _0224D4B4 add r0, r4, #0 mov r1, #0x4c mov r2, #0 bl GetMonData 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 GetMonData 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 GetMonData add r7, r7, r0 _0224D4B4: add r0, r6, #0 add r5, r5, #1 bl GetPartyCount 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 AllocFromHeap 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 AllocFromHeap 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 ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] add r0, sp, #0x30 ldrh r3, [r5, #2] add r0, #1 mov r1, #0x90 mov r2, #0 bl ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] ldrh r3, [r5, #2] add r0, sp, #0x30 mov r1, #0x8e mov r2, #0 bl ReadFromNarcMemberByIdPair 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 GetNatureFromPersonality 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 AllocFromHeap 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 ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] add r0, r4, #0 ldrh r3, [r5, #2] add r0, #0x91 mov r1, #0x90 mov r2, #0 bl ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] add r0, r4, #0 ldrh r3, [r5, #2] add r0, #0x93 mov r1, #0x8e mov r2, #0 bl ReadFromNarcMemberByIdPair 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 GetNatureFromPersonality 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 AllocFromHeap 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 ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] add r0, r5, #0 ldrh r3, [r4, #2] add r0, #0x91 mov r1, #0x90 mov r2, #0 bl ReadFromNarcMemberByIdPair mov r0, #1 str r0, [sp] add r0, r5, #0 ldrh r3, [r4, #2] add r0, #0x93 mov r1, #0x8e mov r2, #0 bl ReadFromNarcMemberByIdPair 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 GetNatureFromPersonality 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap add r4, r0, #0 mov r0, #5 mov r1, #0x34 bl AllocFromHeap str r0, [r4, #8] mov r0, #5 mov r1, #0x38 bl AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap 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 MOD08_02212384 add r0, r5, #0 bl MOD08_022123A0 cmp r0, #0 beq _0224F1C2 _0224F1C0: b _0224F2D8 _0224F1C2: add r0, r5, #0 bl MOD08_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 FreeToHeap 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 MOD08_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 MOD08_02212384 ldr r0, [r4, #0x24] bl MOD08_022123A0 cmp r0, #0 bne _0224F7C0 ldr r0, [r4, #0x24] bl MOD08_022123B0 ldr r0, [r4, #0x24] bl MOD08_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 FreeToHeap 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 MOD08_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 MOD08_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 MOD08_02212384 add r0, r5, #0 bl MOD08_022123A0 cmp r0, #0 bne _0224FD86 add r0, r5, #0 bl MOD08_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 FreeToHeap 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 MOD08_02212384 add r0, r5, #0 bl MOD08_022123A0 cmp r0, #0 beq _0224FE7C _0224FE7A: b _0224FFDE _0224FE7C: add r0, r5, #0 bl MOD08_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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 MOD16_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 FreeToHeap 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 FreeToHeap 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 GetMonBaseStat 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 rand_LC 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 MOD16_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 MaskOfFlagNo 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 rand_LC 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 AllocFromHeap 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 MOD09_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 MOD09_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 GetPartyCount 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 GetPartyCount 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 MOD07_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 FreeToHeap ldr r0, [r4, #8] ldr r0, [r0, #4] bl FreeToHeap ldr r0, [r4, #8] bl FreeToHeap ldr r0, [r4, #4] bl FreeToHeap add r0, r4, #0 bl FreeToHeap 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData 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 MOD08_02212384 ldr r0, [r4] bl MOD11_02230070 bl MOD08_022123A0 cmp r0, #0 bne _02251FEA ldr r0, [r4] bl MOD11_02230070 bl MOD08_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 FreeToHeap ldr r0, [r4, #8] ldr r0, [r0, #4] bl FreeToHeap ldr r0, [r4, #8] bl FreeToHeap add r0, r4, #0 bl FreeToHeap 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 FreeToHeap ldr r0, [r4, #8] ldr r0, [r0, #4] bl FreeToHeap ldr r0, [r4, #8] bl FreeToHeap add r0, r4, #0 bl FreeToHeap 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 AllocFromHeap 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 AllocMonZeroed 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 FreeToHeap 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 GetPartyMonByIndex 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 GetPartyMonByIndex 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 GetPartyCount 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 GetPartyCount 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 MaskOfFlagNo 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 MaskOfFlagNo 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 MOD07_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 FreeToHeap ldr r0, [r4, #4] bl FreeToHeap add r0, r4, #0 bl FreeToHeap 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 MOD16_021F4A30 add r4, r0, #0 cmp r4, #6 bne _022524FE ldr r0, [r5] add r1, r6, #0 bl MOD16_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 GetPartyCount 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 GetMonData 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 GetPartyCount 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap add r0, r5, #0 bl FUN_0200CAB4 add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, pc} _02252996: ldr r0, [r4, #0xc] bl MOD08_02212384 ldr r0, [r4, #0xc] bl MOD08_022123A0 cmp r0, #0 bne _022529B8 ldr r0, [r4, #0xc] bl MOD08_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 FreeToHeap 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 MOD08_02212384 add r0, r5, #0 bl MOD08_022123A0 cmp r0, #0 bne _02252C8A add r0, r5, #0 bl MOD08_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 FreeToHeap 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 FreeToHeap 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 MOD08_02212384 add r0, r5, #0 bl MOD08_022123A0 cmp r0, #0 bne _02252FB6 add r0, r5, #0 bl MOD08_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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 AllocFromHeap 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 MOD07_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 FreeToHeap add r0, r4, #0 bl FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 FreeToHeap 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 MOD08_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 FreeToHeap 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 MOD08_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 MOD08_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 FreeToHeap 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 MaskOfFlagNo 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 MOD08_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 GetWazaAttr 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 GetWazaAttr 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 GetMonData str r0, [sp, #0x10] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData 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 GetMonExpBySpeciesAndLevel 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 GetMonExpBySpeciesAndLevel add r5, r0, #0 ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] bl GetMonExpBySpeciesAndLevel 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 MaskOfFlagNo 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r4, r0, #0 bl GetMonData 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 GetMonData cmp r0, #0 beq _02255280 add r0, r4, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPercentProgressTowardsNextLevel _02255294: strb r0, [r5, #2] add r5, r5, #1 _02255298: ldr r0, [sp, #0x24] add r7, r7, #1 add r6, r6, #1 bl GetPartyCount 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r7, r0, #0 bl GetMonData 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 GetMonData cmp r0, #0 beq _0225534A add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r7, r0, #0 bl GetMonData 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 GetMonData cmp r0, #0 beq _022553E6 add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 add r7, r0, #0 bl GetMonData 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 GetMonData cmp r0, #0 beq _0225546E add r0, r7, #0 mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 WazaGetMaxPp 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 MaskOfFlagNo ldr r2, _022558BC ; =0x00003108 ldr r1, [sp, #8] ldrb r1, [r1, r2] tst r0, r1 bne _022557D8 mov r0, #3 bl MaskOfFlagNo 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 MaskOfFlagNo 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 GetMonData add r7, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData 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 GetMonExpBySpeciesAndLevel 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 GetMonExpBySpeciesAndLevel add r4, r0, #0 add r0, r7, #0 add r1, r6, #0 bl GetMonExpBySpeciesAndLevel 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 GetMonData add r7, r0, #0 add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData 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 GetMonExpBySpeciesAndLevel 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 GetMonExpBySpeciesAndLevel add r5, r0, #0 add r0, r7, #0 add r1, r6, #0 bl GetMonExpBySpeciesAndLevel 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 GetMonData str r0, [sp, #0xc] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData 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 GetMonExpBySpeciesAndLevel 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 GetMonExpBySpeciesAndLevel add r5, r0, #0 ldr r0, [sp, #0xc] ldr r1, [sp, #8] bl GetMonExpBySpeciesAndLevel 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 MaskOfFlagNo 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 str r0, [sp, #0x14] bl GetMonData 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 GetMonData cmp r0, #0 beq _02256ACA ldr r0, [sp, #0x14] mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 str r0, [sp, #0x18] bl GetMonData 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 GetMonData cmp r0, #0 beq _02256B4C ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 GetPartyCount 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 GetPartyMonByIndex mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] bl GetMonData 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 GetMonData cmp r0, #0 beq _02256BE4 ldr r0, [sp, #0x1c] mov r1, #0x9f mov r2, #0 bl GetMonData 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 GetPartyCount 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 AllocFromHeap 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 FreeToHeap 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 AllocFromHeap add r4, r0, #0 mov r0, #5 mov r1, #0xc0 bl AllocFromHeap 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 FreeToHeap add r0, r7, #0 bl FreeToHeap 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 AllocFromHeap 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 FreeToHeap 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 AllocFromHeap 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 FreeToHeap 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 AllocFromHeap 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 FreeToHeap 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 AllocFromHeap 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 AllocFromHeap 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 FreeToHeap add r4, r4, #1 _0225854E: cmp r4, #7 blt _02258512 mov r1, #2 mov r0, #5 lsl r1, r1, #8 bl AllocFromHeap 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 AllocFromHeap 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 AllocFromHeap str r0, [r6, #0x5c] mov r0, #5 mov r1, #0x20 bl AllocFromHeap 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 FreeToHeap 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 FreeToHeap add r4, r4, #1 add r5, r5, #4 cmp r4, #7 blt _02258680 ldr r0, [r6, #0x58] bl FreeToHeap add r0, r6, #0 bl MOD11_0225A6B0 ldr r0, [r6, #0x5c] bl FreeToHeap ldr r0, [r6, #0x60] bl FreeToHeap ldr r0, [r6, #0x64] bl FUN_0200CAB4 add r0, r6, #0 bl FreeToHeap 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 rand_LC 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 AllocFromHeap 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 GetWazaAttr 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 ; =FUN_0200C5A8 add r0, r1, #0 bx r3 nop _0225A3FC: .word FUN_0200C5A8 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 FreeToHeap 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 GetWazaAttr 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 FreeToHeap _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 GetWazaAttr 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 MOD08_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 FreeToHeap 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 AllocFromHeap 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 FreeToHeap 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 AllocFromHeap 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 FreeToHeap 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 ; =FUN_0200C644 ldr r0, [r0, #0x10] mov r1, #0 bx r3 .align 2, 0 _0225D66C: .word FUN_0200C644 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 AllocFromHeap 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 FreeToHeap 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 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02, 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02 .byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 .byte 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00 .byte 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00 .byte 0x00, 0x5E, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00 .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x5F, 0x7F, 0x00, 0x00 .byte 0x5F, 0x5B, 0x00, 0x00, 0xD8, 0x5A, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00 .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00 .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00 .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00 .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00 .byte 0x02, 0x03, 0x04, 0x05, 0x02, 0x04, 0x06, 0x09, 0x0C, 0x10, 0x14, 0x19, 0x1E, 0x00, 0x00, 0x00 .byte 0x14, 0x0F, 0x0A, 0x0F, 0xC8, 0x50, 0x3C, 0x32, 0x28, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F .byte 0xFF, 0x3F, 0xFF, 0x1F, 0x01, 0xC8, 0x05, 0x96, 0x0C, 0x64, 0x15, 0x50, 0x2A, 0x28, 0x40, 0x14 .byte 0x19, 0x00, 0x5C, 0x00, 0xDD, 0x00, 0x17, 0x00, 0x26, 0x00, 0xD6, 0x00, 0x73, 0x01, 0x28, 0x00 .byte 0x48, 0x01, 0xEA, 0x00, 0x61, 0x01, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 .byte 0xA5, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 .byte 0xA5, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 .byte 0x64, 0x00, 0x14, 0x00, 0xFA, 0x00, 0x28, 0x00, 0xF4, 0x01, 0x3C, 0x00, 0xE8, 0x03, 0x50, 0x00 .byte 0xD0, 0x07, 0x64, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 .byte 0xA5, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x28, 0x0A, 0x23, 0x0A, 0x1E, 0x0A, 0x19 .byte 0x0A, 0x14, 0x0A, 0x0F, 0x0A, 0x0A, 0x0F, 0x0A, 0x14, 0x0A, 0x19, 0x0A, 0x1E, 0x0A, 0x23, 0x0A .byte 0x28, 0x0A, 0x59, 0x00, 0x59, 0x00, 0x92, 0x01, 0x92, 0x01, 0x9D, 0x00, 0x9D, 0x00, 0x3B, 0x00 .byte 0x38, 0x00, 0x3A, 0x00, 0xA1, 0x00, 0xAA, 0x01, 0x93, 0x01, 0xA1, 0x00, 0x11, 0x00, 0x12, 0x00 .byte 0x1A, 0x00, 0x03, 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x1B, 0x00, 0x19, 0x00, 0x02, 0x00, 0x1C, 0x00 .byte 0x32, 0x00, 0x6C, 0x00, 0x6B, 0x00, 0x6D, 0x00, 0x17, 0x00, 0x1D, 0x00, 0x33, 0x00, 0x29, 0x00 .byte 0x1B, 0x00, 0x00, 0x80, 0x1B, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80 .byte 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, 0x16, 0x00, 0x00, 0x80 .byte 0x04, 0x00, 0x00, 0x80, 0x05, 0x00, 0x00, 0x80, 0x18, 0x00, 0x00, 0x80, 0x1C, 0x00, 0x00, 0x80 .byte 0x05, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x4E, 0x00, 0x00, 0x2C, 0x4E, 0x00, 0x00 .byte 0x29, 0x4E, 0x00, 0x00, 0x29, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x4E, 0x00, 0x00 .byte 0x2D, 0x4E, 0x00, 0x00, 0x2A, 0x4E, 0x00, 0x00, 0x2A, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x22, 0x23, 0x02 .byte 0x9D, 0x22, 0x23, 0x02, 0x19, 0x23, 0x23, 0x02, 0xD9, 0x24, 0x23, 0x02, 0xB5, 0x26, 0x23, 0x02 .byte 0x75, 0x27, 0x23, 0x02, 0xA1, 0x27, 0x23, 0x02, 0xBD, 0x28, 0x23, 0x02, 0xB9, 0x29, 0x23, 0x02 .byte 0x69, 0x2B, 0x23, 0x02, 0x01, 0x2D, 0x23, 0x02, 0x2D, 0x2D, 0x23, 0x02, 0xE5, 0x2D, 0x23, 0x02 .byte 0xAD, 0x2E, 0x23, 0x02, 0x65, 0x2F, 0x23, 0x02, 0xF5, 0x30, 0x23, 0x02, 0x2D, 0x31, 0x23, 0x02 .byte 0x59, 0x31, 0x23, 0x02, 0x99, 0x31, 0x23, 0x02, 0xCD, 0x31, 0x23, 0x02, 0x0D, 0x32, 0x23, 0x02 .byte 0x2D, 0x32, 0x23, 0x02, 0x59, 0x32, 0x23, 0x02, 0xAD, 0x32, 0x23, 0x02, 0x29, 0x33, 0x23, 0x02 .byte 0xD5, 0x33, 0x23, 0x02, 0x09, 0x34, 0x23, 0x02, 0xA9, 0x34, 0x23, 0x02, 0xD5, 0x34, 0x23, 0x02 .byte 0x39, 0x35, 0x23, 0x02, 0x99, 0x35, 0x23, 0x02, 0x05, 0x36, 0x23, 0x02, 0x3D, 0x36, 0x23, 0x02 .byte 0xED, 0x36, 0x23, 0x02, 0xA5, 0x37, 0x23, 0x02, 0xC1, 0x37, 0x23, 0x02, 0xE1, 0x37, 0x23, 0x02 .byte 0x0D, 0x38, 0x23, 0x02, 0xA1, 0x38, 0x23, 0x02, 0xFD, 0x38, 0x23, 0x02, 0x79, 0x3A, 0x23, 0x02 .byte 0xB9, 0x3A, 0x23, 0x02, 0xD1, 0x3A, 0x23, 0x02, 0xE9, 0x3A, 0x23, 0x02, 0xC1, 0x3B, 0x23, 0x02 .byte 0x95, 0x3C, 0x23, 0x02, 0x35, 0x3D, 0x23, 0x02, 0x7D, 0x3D, 0x23, 0x02, 0xCD, 0x3D, 0x23, 0x02 .byte 0xE5, 0x3D, 0x23, 0x02, 0x55, 0x3E, 0x23, 0x02, 0x49, 0x3F, 0x23, 0x02, 0x59, 0x45, 0x23, 0x02 .byte 0x7D, 0x46, 0x23, 0x02, 0xB9, 0x46, 0x23, 0x02, 0xF1, 0x46, 0x23, 0x02, 0xB1, 0x47, 0x23, 0x02 .byte 0xE5, 0x47, 0x23, 0x02, 0xFD, 0x48, 0x23, 0x02, 0x5D, 0x4A, 0x23, 0x02, 0x7D, 0x4A, 0x23, 0x02 .byte 0x9D, 0x4A, 0x23, 0x02, 0xCD, 0x4A, 0x23, 0x02, 0xE5, 0x4B, 0x23, 0x02, 0x35, 0x4C, 0x23, 0x02 .byte 0x61, 0x4C, 0x23, 0x02, 0x8D, 0x4C, 0x23, 0x02, 0xC5, 0x4C, 0x23, 0x02, 0xF5, 0x4D, 0x23, 0x02 .byte 0x75, 0x4E, 0x23, 0x02, 0xD9, 0x4E, 0x23, 0x02, 0x65, 0x4F, 0x23, 0x02, 0xD5, 0x4F, 0x23, 0x02 .byte 0x0D, 0x50, 0x23, 0x02, 0x45, 0x50, 0x23, 0x02, 0x71, 0x50, 0x23, 0x02, 0x9D, 0x50, 0x23, 0x02 .byte 0xCD, 0x50, 0x23, 0x02, 0x45, 0x52, 0x23, 0x02, 0x11, 0x53, 0x23, 0x02, 0xE5, 0x53, 0x23, 0x02 .byte 0x35, 0x54, 0x23, 0x02, 0x15, 0x55, 0x23, 0x02, 0xF5, 0x55, 0x23, 0x02, 0x75, 0x56, 0x23, 0x02 .byte 0x65, 0x58, 0x23, 0x02, 0x9D, 0x58, 0x23, 0x02, 0xF5, 0x58, 0x23, 0x02, 0x2D, 0x5A, 0x23, 0x02 .byte 0x85, 0x5A, 0x23, 0x02, 0x41, 0x5B, 0x23, 0x02, 0x3D, 0x5C, 0x23, 0x02, 0x39, 0x5D, 0x23, 0x02 .byte 0x1D, 0x5E, 0x23, 0x02, 0xCD, 0x5F, 0x23, 0x02, 0xF1, 0x60, 0x23, 0x02, 0xBD, 0x61, 0x23, 0x02 .byte 0x11, 0x62, 0x23, 0x02, 0xB5, 0x62, 0x23, 0x02, 0x05, 0x64, 0x23, 0x02, 0xFD, 0x64, 0x23, 0x02 .byte 0x5D, 0x66, 0x23, 0x02, 0xD9, 0x66, 0x23, 0x02, 0x71, 0x68, 0x23, 0x02, 0x65, 0x6A, 0x23, 0x02 .byte 0xE9, 0x6A, 0x23, 0x02, 0x6D, 0x6B, 0x23, 0x02, 0x1D, 0x6C, 0x23, 0x02, 0x55, 0x6C, 0x23, 0x02 .byte 0x99, 0x6C, 0x23, 0x02, 0x5D, 0x6F, 0x23, 0x02, 0x79, 0x70, 0x23, 0x02, 0x09, 0x71, 0x23, 0x02 .byte 0x8D, 0x71, 0x23, 0x02, 0x21, 0x72, 0x23, 0x02, 0x91, 0x72, 0x23, 0x02, 0x35, 0x73, 0x23, 0x02 .byte 0x99, 0x73, 0x23, 0x02, 0xE1, 0x74, 0x23, 0x02, 0x85, 0x75, 0x23, 0x02, 0x71, 0x76, 0x23, 0x02 .byte 0xD1, 0x76, 0x23, 0x02, 0xB9, 0x77, 0x23, 0x02, 0x39, 0x78, 0x23, 0x02, 0x6D, 0x78, 0x23, 0x02 .byte 0xC5, 0x7A, 0x23, 0x02, 0x05, 0x7B, 0x23, 0x02, 0x99, 0x7B, 0x23, 0x02, 0xA1, 0x7C, 0x23, 0x02 .byte 0xE5, 0x7C, 0x23, 0x02, 0xC1, 0x7D, 0x23, 0x02, 0x35, 0x7E, 0x23, 0x02, 0xE9, 0x7E, 0x23, 0x02 .byte 0x59, 0x7F, 0x23, 0x02, 0xCD, 0x7F, 0x23, 0x02, 0x0D, 0x80, 0x23, 0x02, 0x31, 0x81, 0x23, 0x02 .byte 0x89, 0x81, 0x23, 0x02, 0xA1, 0x82, 0x23, 0x02, 0x51, 0x83, 0x23, 0x02, 0xC5, 0x83, 0x23, 0x02 .byte 0x25, 0x84, 0x23, 0x02, 0xE5, 0x84, 0x23, 0x02, 0x7D, 0x86, 0x23, 0x02, 0xC5, 0x86, 0x23, 0x02 .byte 0xC9, 0x87, 0x23, 0x02, 0xC1, 0x88, 0x23, 0x02, 0x05, 0x89, 0x23, 0x02, 0xF9, 0x89, 0x23, 0x02 .byte 0x41, 0x8A, 0x23, 0x02, 0x85, 0x8A, 0x23, 0x02, 0xBD, 0x8A, 0x23, 0x02, 0x79, 0x8B, 0x23, 0x02 .byte 0xCD, 0x8B, 0x23, 0x02, 0x25, 0x8C, 0x23, 0x02, 0xA1, 0x8C, 0x23, 0x02, 0x85, 0x8E, 0x23, 0x02 .byte 0xB5, 0x8E, 0x23, 0x02, 0x01, 0x8F, 0x23, 0x02, 0x4D, 0x8F, 0x23, 0x02, 0xD1, 0x8F, 0x23, 0x02 .byte 0x7D, 0x90, 0x23, 0x02, 0xA5, 0x91, 0x23, 0x02, 0x05, 0x92, 0x23, 0x02, 0x7D, 0x93, 0x23, 0x02 .byte 0xA5, 0x93, 0x23, 0x02, 0xE5, 0x93, 0x23, 0x02, 0x51, 0x94, 0x23, 0x02, 0x9D, 0x94, 0x23, 0x02 .byte 0xE9, 0x94, 0x23, 0x02, 0x79, 0x95, 0x23, 0x02, 0xA1, 0x95, 0x23, 0x02, 0xCD, 0x95, 0x23, 0x02 .byte 0x15, 0x96, 0x23, 0x02, 0x79, 0x96, 0x23, 0x02, 0xA9, 0x96, 0x23, 0x02, 0xD9, 0x96, 0x23, 0x02 .byte 0x19, 0x97, 0x23, 0x02, 0x49, 0x97, 0x23, 0x02, 0x85, 0x97, 0x23, 0x02, 0xA9, 0x97, 0x23, 0x02 .byte 0xB5, 0x98, 0x23, 0x02, 0x39, 0x99, 0x23, 0x02, 0xC9, 0x99, 0x23, 0x02, 0x01, 0x9A, 0x23, 0x02 .byte 0x41, 0x9A, 0x23, 0x02, 0x6D, 0x9A, 0x23, 0x02, 0x85, 0x9A, 0x23, 0x02, 0xC5, 0x9A, 0x23, 0x02 .byte 0x09, 0x9B, 0x23, 0x02, 0x35, 0x9B, 0x23, 0x02, 0x61, 0x9B, 0x23, 0x02, 0x8D, 0x9B, 0x23, 0x02 .byte 0xB9, 0x9B, 0x23, 0x02, 0xD1, 0x9B, 0x23, 0x02, 0xE9, 0x9B, 0x23, 0x02, 0x29, 0x9C, 0x23, 0x02 .byte 0x55, 0x9C, 0x23, 0x02, 0x89, 0x9C, 0x23, 0x02, 0x19, 0x9D, 0x23, 0x02, 0xA9, 0x9D, 0x23, 0x02 .byte 0x4D, 0x9F, 0x23, 0x02, 0xC9, 0x9F, 0x23, 0x02, 0x15, 0xA0, 0x23, 0x02, 0x59, 0xA0, 0x23, 0x02 .byte 0x8D, 0xA0, 0x23, 0x02, 0xA5, 0xA0, 0x23, 0x02, 0xC1, 0xA0, 0x23, 0x02, 0xD9, 0xA0, 0x23, 0x02 .byte 0x79, 0xA1, 0x23, 0x02, 0x15, 0xA2, 0x23, 0x02, 0x71, 0xA2, 0x23, 0x02, 0xC1, 0xA2, 0x23, 0x02 .byte 0xF1, 0xA2, 0x23, 0x02, 0x25, 0xA3, 0x23, 0x02, 0x51, 0xA3, 0x23, 0x02, 0x7D, 0xA3, 0x23, 0x02 .byte 0xB5, 0xA3, 0x23, 0x02, 0xF9, 0xA3, 0x23, 0x02, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x5E .byte 0x62, 0x00, 0x00, 0x00, 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2D, 0x32, 0x00, 0x00 .byte 0x04, 0x04, 0x0C, 0x0C, 0x05, 0x05, 0x0F, 0x0B, 0x0F, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x21, 0x64, 0x24, 0x64, 0x2B, 0x64, 0x32, 0x64, 0x3C, 0x64, 0x4B, 0x64, 0x01, 0x01, 0x85, 0x64 .byte 0xA6, 0x64, 0x02, 0x01, 0xE9, 0x64, 0x85, 0x32, 0x03, 0x01, 0x00, 0x00, 0xC5, 0xD2, 0x23, 0x02 .byte 0x09, 0xD3, 0x23, 0x02, 0x21, 0xD3, 0x23, 0x02, 0x51, 0xD3, 0x23, 0x02, 0x81, 0xD3, 0x23, 0x02 .byte 0xB9, 0xD3, 0x23, 0x02, 0xA5, 0xDB, 0x23, 0x02, 0x21, 0xDD, 0x23, 0x02, 0x75, 0xDE, 0x23, 0x02 .byte 0xB9, 0xDE, 0x23, 0x02, 0x9D, 0xE6, 0x23, 0x02, 0xDD, 0xF0, 0x23, 0x02, 0x29, 0xF3, 0x23, 0x02 .byte 0x81, 0xF3, 0x23, 0x02, 0xC1, 0xF4, 0x23, 0x02, 0x21, 0xF6, 0x23, 0x02, 0x65, 0xF6, 0x23, 0x02 .byte 0x29, 0xF7, 0x23, 0x02, 0x71, 0xF7, 0x23, 0x02, 0xCD, 0xF7, 0x23, 0x02, 0x2D, 0xF8, 0x23, 0x02 .byte 0xD9, 0x0B, 0x24, 0x02, 0xF5, 0x0B, 0x24, 0x02, 0x41, 0x0D, 0x24, 0x02, 0x31, 0x0E, 0x24, 0x02 .byte 0x61, 0x0E, 0x24, 0x02, 0xE1, 0x0E, 0x24, 0x02, 0xF9, 0x0E, 0x24, 0x02, 0xF9, 0x12, 0x24, 0x02 .byte 0xA5, 0x14, 0x24, 0x02, 0xA9, 0x14, 0x24, 0x02, 0x35, 0x17, 0x24, 0x02, 0x31, 0x17, 0x24, 0x02 .byte 0x35, 0x18, 0x24, 0x02, 0x5D, 0x18, 0x24, 0x02, 0xFD, 0x19, 0x24, 0x02, 0x45, 0x1A, 0x24, 0x02 .byte 0x59, 0x1A, 0x24, 0x02, 0x5D, 0x1A, 0x24, 0x02, 0x75, 0x1B, 0x24, 0x02, 0x55, 0x1C, 0x24, 0x02 .byte 0x71, 0x1C, 0x24, 0x02, 0xF1, 0x1C, 0x24, 0x02, 0x29, 0x1D, 0x24, 0x02, 0x10, 0x08, 0x04, 0x03 .byte 0x02, 0x00, 0x00, 0x00, 0x31, 0x69, 0x79, 0x74, 0x75, 0x78, 0x76, 0x77, 0x90, 0x00, 0x66, 0x00 .byte 0xA6, 0x00, 0x77, 0x00, 0xE3, 0x00, 0xA5, 0x00, 0x29, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00 .byte 0x90, 0x00, 0xE3, 0x00, 0x44, 0x00, 0xF3, 0x00, 0xA8, 0x00, 0x57, 0x01, 0x08, 0x01, 0xC0, 0x01 .byte 0x13, 0x00, 0x54, 0x01, 0x1A, 0x00, 0x88, 0x00, 0x96, 0x00, 0x89, 0x01, 0x0A, 0x28, 0x0A, 0x23 .byte 0x0A, 0x1E, 0x0A, 0x19, 0x0A, 0x14, 0x0A, 0x0F, 0x0A, 0x0A, 0x0F, 0x0A, 0x14, 0x0A, 0x19, 0x0A .byte 0x1E, 0x0A, 0x23, 0x0A, 0x28, 0x0A, 0x69, 0x00, 0x87, 0x00, 0x9C, 0x00, 0xD0, 0x00, 0xEA, 0x00 .byte 0xEB, 0x00, 0xEC, 0x00, 0x00, 0x01, 0xC8, 0x01, 0x2F, 0x01, 0x63, 0x01, 0xCD, 0x01, 0x69, 0x01 .byte 0x11, 0x01, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00, 0xB7, 0x00, 0x08, 0x01, 0x92, 0x00, 0xDF, 0x00 .byte 0x67, 0x01, 0x05, 0x00, 0x04, 0x00, 0x35, 0x01, 0x45, 0x01, 0x99, 0x01, 0xA2, 0x01, 0x47, 0x01 .byte 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 .byte 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 .byte 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x76, 0x00, 0xA5, 0x00, 0xA6, 0x00, 0x66, 0x00 .byte 0xC0, 0x01, 0xFE, 0xFF, 0xD6, 0x00, 0x12, 0x01, 0x77, 0x00, 0x44, 0x00, 0xF3, 0x00, 0xB6, 0x00 .byte 0xC5, 0x00, 0xCB, 0x00, 0xC2, 0x00, 0xA8, 0x00, 0x0A, 0x01, 0x21, 0x01, 0x0E, 0x01, 0x57, 0x01 .byte 0x0F, 0x01, 0x08, 0x01, 0x6C, 0x01, 0x7F, 0x01, 0x7E, 0x01, 0x9F, 0x01, 0xFF, 0xFF, 0x38, 0x06 .byte 0x43, 0x08, 0x47, 0x04, 0x48, 0x05, 0x49, 0x0C, 0x4A, 0x11, 0x4B, 0x01, 0x4C, 0x0D, 0x4D, 0x0B .byte 0x4E, 0x02, 0x4F, 0x03, 0x50, 0x0F, 0x51, 0x07, 0x52, 0x0E, 0x53, 0x0A, 0x54, 0x10, 0x55, 0x00 .byte 0x7D, 0x0A, 0x7E, 0x0B, 0x7F, 0x0D, 0x80, 0x0C, 0x81, 0x0F, 0x82, 0x01, 0x83, 0x03, 0x84, 0x04 .byte 0x85, 0x02, 0x86, 0x0E, 0x87, 0x06, 0x88, 0x05, 0x89, 0x07, 0x8A, 0x10, 0x8B, 0x11, 0x8C, 0x08 .byte 0x00, 0x05, 0x05, 0x00, 0x08, 0x05, 0x0A, 0x0A, 0x05, 0x0A, 0x0B, 0x05, 0x0A, 0x0C, 0x14, 0x0A .byte 0x0F, 0x14, 0x0A, 0x06, 0x14, 0x0A, 0x05, 0x05, 0x0A, 0x10, 0x05, 0x0A, 0x08, 0x14, 0x0B, 0x0A .byte 0x14, 0x0B, 0x0B, 0x05, 0x0B, 0x0C, 0x05, 0x0B, 0x04, 0x14, 0x0B, 0x05, 0x14, 0x0B, 0x10, 0x05 .byte 0x0D, 0x0B, 0x14, 0x0D, 0x0D, 0x05, 0x0D, 0x0C, 0x05, 0x0D, 0x04, 0x00, 0x0D, 0x02, 0x14, 0x0D .byte 0x10, 0x05, 0x0C, 0x0A, 0x05, 0x0C, 0x0B, 0x14, 0x0C, 0x0C, 0x05, 0x0C, 0x03, 0x05, 0x0C, 0x04 .byte 0x14, 0x0C, 0x02, 0x05, 0x0C, 0x06, 0x05, 0x0C, 0x05, 0x14, 0x0C, 0x10, 0x05, 0x0C, 0x08, 0x05 .byte 0x0F, 0x0B, 0x05, 0x0F, 0x0C, 0x14, 0x0F, 0x0F, 0x05, 0x0F, 0x04, 0x14, 0x0F, 0x02, 0x14, 0x0F .byte 0x10, 0x14, 0x0F, 0x08, 0x05, 0x0F, 0x0A, 0x05, 0x01, 0x00, 0x14, 0x01, 0x0F, 0x14, 0x01, 0x03 .byte 0x05, 0x01, 0x02, 0x05, 0x01, 0x0E, 0x05, 0x01, 0x06, 0x05, 0x01, 0x05, 0x14, 0x01, 0x11, 0x14 .byte 0x01, 0x08, 0x14, 0x03, 0x0C, 0x14, 0x03, 0x03, 0x05, 0x03, 0x04, 0x05, 0x03, 0x05, 0x05, 0x03 .byte 0x07, 0x05, 0x03, 0x08, 0x00, 0x04, 0x0A, 0x14, 0x04, 0x0D, 0x14, 0x04, 0x0C, 0x05, 0x04, 0x03 .byte 0x14, 0x04, 0x02, 0x00, 0x04, 0x06, 0x05, 0x04, 0x05, 0x14, 0x04, 0x08, 0x14, 0x02, 0x0D, 0x05 .byte 0x02, 0x0C, 0x14, 0x02, 0x01, 0x14, 0x02, 0x06, 0x14, 0x02, 0x05, 0x05, 0x02, 0x08, 0x05, 0x0E .byte 0x01, 0x14, 0x0E, 0x03, 0x14, 0x0E, 0x0E, 0x05, 0x0E, 0x11, 0x00, 0x0E, 0x08, 0x05, 0x06, 0x0A .byte 0x05, 0x06, 0x0C, 0x14, 0x06, 0x01, 0x05, 0x06, 0x03, 0x05, 0x06, 0x02, 0x05, 0x06, 0x0E, 0x14 .byte 0x06, 0x07, 0x05, 0x06, 0x11, 0x14, 0x06, 0x08, 0x05, 0x05, 0x0A, 0x14, 0x05, 0x0F, 0x14, 0x05 .byte 0x01, 0x05, 0x05, 0x04, 0x05, 0x05, 0x02, 0x14, 0x05, 0x06, 0x14, 0x05, 0x08, 0x05, 0x07, 0x00 .byte 0x00, 0x07, 0x0E, 0x14, 0x07, 0x11, 0x05, 0x07, 0x08, 0x05, 0x07, 0x07, 0x14, 0x10, 0x10, 0x14 .byte 0x10, 0x08, 0x05, 0x11, 0x01, 0x05, 0x11, 0x0E, 0x14, 0x11, 0x07, 0x14, 0x11, 0x11, 0x05, 0x11 .byte 0x08, 0x05, 0x08, 0x0A, 0x05, 0x08, 0x0B, 0x05, 0x08, 0x0D, 0x05, 0x08, 0x0F, 0x14, 0x08, 0x05 .byte 0x14, 0x08, 0x08, 0x05, 0xFE, 0xFE, 0x00, 0x00, 0x07, 0x00, 0x01, 0x07, 0x00, 0xFF, 0xFF, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 .byte 0x1B, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 .byte 0x0D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 .byte 0x56, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00 .byte 0x82, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00 .byte 0x96, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 .byte 0x2B, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00 .byte 0x34, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00 .byte 0x4E, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00 .byte 0x52, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00 .byte 0x59, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00 .byte 0x60, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 .byte 0x65, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00 .byte 0x6D, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00 .byte 0x78, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 .byte 0x7D, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 .byte 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00 .byte 0x8C, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00 .byte 0x9A, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00 .byte 0x9F, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00 .byte 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 .byte 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00 .byte 0xAD, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00 .byte 0xDC, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00 .byte 0xF8, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00 .byte 0x76, 0x00, 0x00, 0x00, 0x75, 0xCB, 0x24, 0x02, 0x79, 0xCB, 0x24, 0x02, 0x99, 0xCB, 0x24, 0x02 .byte 0xAD, 0xCB, 0x24, 0x02, 0xC1, 0xCB, 0x24, 0x02, 0xD5, 0xCB, 0x24, 0x02, 0xE9, 0xCB, 0x24, 0x02 .byte 0xFD, 0xCB, 0x24, 0x02, 0x21, 0xCC, 0x24, 0x02, 0x35, 0xCC, 0x24, 0x02, 0x49, 0xCC, 0x24, 0x02 .byte 0x59, 0xCC, 0x24, 0x02, 0x6D, 0xCC, 0x24, 0x02, 0x81, 0xCC, 0x24, 0x02, 0x91, 0xCC, 0x24, 0x02 .byte 0xB9, 0xCC, 0x24, 0x02, 0xCD, 0xCC, 0x24, 0x02, 0xE1, 0xCC, 0x24, 0x02, 0xF5, 0xCC, 0x24, 0x02 .byte 0x09, 0xCD, 0x24, 0x02, 0x1D, 0xCD, 0x24, 0x02, 0x31, 0xCD, 0x24, 0x02, 0x45, 0xCD, 0x24, 0x02 .byte 0x59, 0xCD, 0x24, 0x02, 0x8D, 0xCD, 0x24, 0x02, 0xA1, 0xCD, 0x24, 0x02, 0xB5, 0xCD, 0x24, 0x02 .byte 0xC9, 0xCD, 0x24, 0x02, 0xDD, 0xCD, 0x24, 0x02, 0xED, 0xCD, 0x24, 0x02, 0x01, 0xCE, 0x24, 0x02 .byte 0x15, 0xCE, 0x24, 0x02, 0x29, 0xCE, 0x24, 0x02, 0x3D, 0xCE, 0x24, 0x02, 0x51, 0xCE, 0x24, 0x02 .byte 0x61, 0xCE, 0x24, 0x02, 0x75, 0xCE, 0x24, 0x02, 0x85, 0xCE, 0x24, 0x02, 0x99, 0xCE, 0x24, 0x02 .byte 0xAD, 0xCE, 0x24, 0x02, 0x61, 0xCF, 0x24, 0x02, 0xB9, 0xCF, 0x24, 0x02, 0xE9, 0xCF, 0x24, 0x02 .byte 0x65, 0xD0, 0x24, 0x02, 0x79, 0xD0, 0x24, 0x02, 0x8D, 0xD0, 0x24, 0x02, 0x85, 0xD1, 0x24, 0x02 .byte 0xA5, 0xD1, 0x24, 0x02, 0x1D, 0xD2, 0x24, 0x02, 0x31, 0xD2, 0x24, 0x02, 0x45, 0xD2, 0x24, 0x02 .byte 0x81, 0xD2, 0x24, 0x02, 0xBD, 0xD2, 0x24, 0x02, 0xF9, 0xD2, 0x24, 0x02, 0x1D, 0xD3, 0x24, 0x02 .byte 0x65, 0xD3, 0x24, 0x02, 0x75, 0xD3, 0x24, 0x02, 0x89, 0xD3, 0x24, 0x02, 0x99, 0xD3, 0x24, 0x02 .byte 0xA9, 0xD3, 0x24, 0x02, 0xB9, 0xD3, 0x24, 0x02, 0xCD, 0xD3, 0x24, 0x02, 0xDD, 0xD3, 0x24, 0x02 .byte 0xF1, 0xD3, 0x24, 0x02, 0x05, 0xD4, 0x24, 0x02, 0x19, 0xD4, 0x24, 0x02, 0x19, 0xD5, 0x24, 0x02 .byte 0x06, 0x01, 0x08, 0x03, 0x07, 0x05, 0x00, 0x00, 0x09, 0x17, 0x05, 0x13, 0x0D, 0x11, 0x0F, 0x07 .byte 0x15, 0x0B, 0x19, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x28, 0x0A, 0x23, 0x0A, 0x1E, 0x0A, 0x19 .byte 0x0A, 0x14, 0x0A, 0x0F, 0x0A, 0x0A, 0x0F, 0x0A, 0x14, 0x0A, 0x19, 0x0A, 0x1E, 0x0A, 0x23, 0x0A .byte 0x28, 0x0A, 0x00, 0x00, 0x97, 0x72, 0xFF, 0x3F, 0xF0, 0x7A, 0xDF, 0x7A, 0xD7, 0x53, 0xF5, 0x67 .byte 0x2C, 0x7B, 0x7E, 0x2B, 0x1F, 0x43, 0xDD, 0x7B, 0x3F, 0x2A, 0x3F, 0x29, 0xCE, 0x45, 0x1F, 0x73 .byte 0x51, 0x7F, 0x1E, 0x15, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00 .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00 .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x4E, 0x00, 0x00, 0x2A, 0x4E, 0x00, 0x00 .byte 0x27, 0x4E, 0x00, 0x00, 0x27, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xFF, 0x04, 0x00 .byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF .byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFA, 0xFF, 0xE4, 0xFF, 0xEE, 0xFF .byte 0x32, 0x00, 0xDC, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF .byte 0xE4, 0xFF, 0xEE, 0xFF, 0x32, 0x00, 0xE4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF .byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xFF, 0x04, 0x00, 0xE9, 0xFF, 0xFF, 0xFF .byte 0x32, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0x40, 0x00, 0x48, 0x00, 0x40, 0x00, 0x00, 0x00 .byte 0x40, 0x02, 0xC0, 0x00, 0x40, 0x03, 0xC0, 0x00, 0x00, 0x0A, 0xE0, 0x00, 0x00, 0x0B, 0xE0, 0x00 .byte 0x40, 0x04, 0xC0, 0x00, 0x40, 0x05, 0xC0, 0x00, 0x00, 0x0C, 0xE0, 0x00, 0x00, 0x0D, 0xE0, 0x00 .byte 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00, 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00 .byte 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00, 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00 .byte 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x80, 0x0D, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00, 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00 .byte 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x80, 0x0A, 0x60, 0x00, 0x80, 0x0B, 0x60, 0x00, 0x60, 0x0A, 0x60, 0x00, 0x60, 0x0B, 0x60, 0x00 .byte 0x80, 0x0A, 0x60, 0x00, 0x80, 0x0B, 0x60, 0x00, 0x60, 0x0A, 0x60, 0x00, 0x60, 0x0B, 0x60, 0x00 .byte 0x80, 0x0A, 0x60, 0x00, 0x80, 0x0B, 0x60, 0x00, 0x60, 0x0A, 0x60, 0x00, 0x60, 0x0B, 0x60, 0x00 .byte 0x00, 0x0D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x60, 0x00, 0x20, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x60, 0x00, 0x20, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xE0, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0xE0, 0x04, 0x20, 0x00, 0x00, 0x0C, 0xA0, 0x00 .byte 0xE0, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0xE0, 0x04, 0x20, 0x00, 0x00, 0x0C, 0xA0, 0x00 .byte 0xE0, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0xE0, 0x04, 0x20, 0x00, 0x00, 0x0C, 0xA0, 0x00 .byte 0x40, 0x0A, 0x40, 0x00, 0x40, 0x0B, 0x40, 0x00, 0x20, 0x0A, 0x40, 0x00, 0x20, 0x0B, 0x40, 0x00 .byte 0x40, 0x0A, 0x40, 0x00, 0x40, 0x0B, 0x40, 0x00, 0x20, 0x0A, 0x40, 0x00, 0x20, 0x0B, 0x40, 0x00 .byte 0x40, 0x0A, 0x40, 0x00, 0x40, 0x0B, 0x40, 0x00, 0x20, 0x0A, 0x40, 0x00, 0x20, 0x0B, 0x40, 0x00 .byte 0xC0, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00 .byte 0x86, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00 .byte 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00 .byte 0x26, 0x4E, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x84, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x8B, 0x00, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xC0, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x28, 0x4E, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00 .byte 0xBF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00 .byte 0x7E, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 .byte 0x26, 0x4E, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x2D, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x85, 0x00, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x40, 0x02, 0xC0, 0x00, 0x40, 0x03, 0xC0, 0x00, 0x00, 0x0A, 0x40, 0x00, 0x00, 0x0B, 0x40, 0x00 .byte 0x20, 0x02, 0xE0, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x00, 0x0A, 0x20, 0x00, 0x00, 0x0B, 0x20, 0x00 .byte 0x40, 0x02, 0xC0, 0x00, 0x40, 0x03, 0xC0, 0x00, 0x00, 0x0A, 0x40, 0x00, 0x00, 0x0B, 0x40, 0x00 .byte 0x20, 0x02, 0xE0, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x00, 0x0A, 0x20, 0x00, 0x00, 0x0B, 0x20, 0x00 .byte 0x40, 0x02, 0xC0, 0x00, 0x40, 0x03, 0xC0, 0x00, 0x00, 0x0A, 0x40, 0x00, 0x00, 0x0B, 0x40, 0x00 .byte 0x20, 0x02, 0xE0, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x00, 0x0A, 0x20, 0x00, 0x00, 0x0B, 0x20, 0x00 .byte 0x1F, 0x44, 0x44, 0x44, 0x4F, 0x44, 0xAA, 0xA4, 0x4F, 0x32, 0x99, 0x93, 0x4F, 0x33, 0x99, 0x99 .byte 0x4F, 0x44, 0xAA, 0xA4, 0x1F, 0x44, 0x44, 0x44, 0xFF, 0x21, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xA4, 0xAA, 0x4A, 0x34, 0x93, 0x49, 0x39, 0x24, 0x93, 0x99, 0x39, 0x24 .byte 0xA4, 0x4A, 0x44, 0x34, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33 .byte 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x26, 0x22, 0x22, 0x22, 0x35, 0x33, 0x33, 0x33, 0x35, 0x33, 0x33, 0x33 .byte 0x26, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x22, 0x22, 0x22, 0x55, 0x33, 0x33, 0x33, 0x55, 0x33, 0x33, 0x33 .byte 0x66, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x26, 0x22, 0x22, 0x55, 0x35, 0x33, 0x33, 0x55, 0x35, 0x33, 0x33 .byte 0x66, 0x26, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x22, 0x22, 0x55, 0x55, 0x33, 0x33, 0x55, 0x55, 0x33, 0x33 .byte 0x66, 0x66, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x26, 0x22, 0x55, 0x55, 0x35, 0x33, 0x55, 0x55, 0x35, 0x33 .byte 0x66, 0x66, 0x26, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x22, 0x55, 0x55, 0x55, 0x33, 0x55, 0x55, 0x55, 0x33 .byte 0x66, 0x66, 0x66, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x26, 0x55, 0x55, 0x55, 0x35, 0x55, 0x55, 0x55, 0x35 .byte 0x66, 0x66, 0x66, 0x26, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 .byte 0x66, 0x66, 0x66, 0x66, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33 .byte 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x28, 0x22, 0x22, 0x22, 0x37, 0x33, 0x33, 0x33, 0x37, 0x33, 0x33, 0x33 .byte 0x28, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x22, 0x22, 0x22, 0x77, 0x33, 0x33, 0x33, 0x77, 0x33, 0x33, 0x33 .byte 0x88, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x28, 0x22, 0x22, 0x77, 0x37, 0x33, 0x33, 0x77, 0x37, 0x33, 0x33 .byte 0x88, 0x28, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x88, 0x22, 0x22, 0x77, 0x77, 0x33, 0x33, 0x77, 0x77, 0x33, 0x33 .byte 0x88, 0x88, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x88, 0x28, 0x22, 0x77, 0x77, 0x37, 0x33, 0x77, 0x77, 0x37, 0x33 .byte 0x88, 0x88, 0x28, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x88, 0x88, 0x22, 0x77, 0x77, 0x77, 0x33, 0x77, 0x77, 0x77, 0x33 .byte 0x88, 0x88, 0x88, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x88, 0x88, 0x28, 0x77, 0x77, 0x77, 0x37, 0x77, 0x77, 0x77, 0x37 .byte 0x88, 0x88, 0x88, 0x28, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77 .byte 0x88, 0x88, 0x88, 0x88, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33 .byte 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0x2A, 0x22, 0x22, 0x22, 0x39, 0x33, 0x33, 0x33, 0x39, 0x33, 0x33, 0x33 .byte 0x2A, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0x22, 0x22, 0x22, 0x99, 0x33, 0x33, 0x33, 0x99, 0x33, 0x33, 0x33 .byte 0xAA, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0x2A, 0x22, 0x22, 0x99, 0x39, 0x33, 0x33, 0x99, 0x39, 0x33, 0x33 .byte 0xAA, 0x2A, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0xAA, 0x22, 0x22, 0x99, 0x99, 0x33, 0x33, 0x99, 0x99, 0x33, 0x33 .byte 0xAA, 0xAA, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0xAA, 0x2A, 0x22, 0x99, 0x99, 0x39, 0x33, 0x99, 0x99, 0x39, 0x33 .byte 0xAA, 0xAA, 0x2A, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0xAA, 0xAA, 0x22, 0x99, 0x99, 0x99, 0x33, 0x99, 0x99, 0x99, 0x33 .byte 0xAA, 0xAA, 0xAA, 0x22, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0xAA, 0xAA, 0x2A, 0x99, 0x99, 0x99, 0x39, 0x99, 0x99, 0x99, 0x39 .byte 0xAA, 0xAA, 0xAA, 0x2A, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xAA, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99 .byte 0xAA, 0xAA, 0xAA, 0xAA, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x21, 0x11, 0x21, 0x11 .byte 0x32, 0x22, 0x32, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x2B, 0x11, 0x21, 0x11 .byte 0x3C, 0x22, 0x32, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0x11, 0x21, 0x11 .byte 0xCC, 0x22, 0x32, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0x1B, 0x21, 0x11 .byte 0xCC, 0x2C, 0x32, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0xBB, 0x21, 0x11 .byte 0xCC, 0xCC, 0x32, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0xBB, 0x2B, 0x11 .byte 0xCC, 0xCC, 0x3C, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0xBB, 0xCB, 0x11 .byte 0xCC, 0xCC, 0xCC, 0x22, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0xBB, 0xCB, 0x1B .byte 0xCC, 0xCC, 0xCC, 0x2C, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x11, 0x11, 0x11, 0x11, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCB, 0xBB, 0xCB, 0xBB .byte 0xCC, 0xCC, 0xCC, 0xCC, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x1F, 0xF3, 0x1F, 0x33, 0x31, 0xF3, 0xF3, 0x33, 0x33, 0xF3, 0xFF, 0xF3, 0x33, 0xF3, 0x33, 0xF3 .byte 0x33, 0xF3, 0x33, 0xF3, 0x31, 0x33, 0x33, 0xF3, 0x1F, 0x33, 0x33, 0xF3, 0xFF, 0x11, 0x11, 0x11 .byte 0x33, 0x33, 0x33, 0x33, 0x33, 0xF3, 0xFF, 0x33, 0xF3, 0xF3, 0x33, 0x3F, 0x3F, 0xF3, 0xFF, 0x33 .byte 0x33, 0xF3, 0xF3, 0x33, 0x3F, 0xF3, 0x33, 0x3F, 0xF3, 0x33, 0x33, 0x33, 0x11, 0x11, 0x11, 0x11 .byte 0x33, 0x33, 0xF1, 0xFF, 0xF3, 0xFF, 0x13, 0xFF, 0x3F, 0x33, 0x33, 0xFF, 0xF3, 0x3F, 0x33, 0xFF .byte 0x33, 0xF3, 0x33, 0xFF, 0xFF, 0x3F, 0x13, 0xFF, 0x33, 0x33, 0xF1, 0xFF, 0x11, 0x11, 0xFF, 0xFF .byte 0x1F, 0x88, 0x88, 0x88, 0x81, 0xF8, 0xFF, 0x88, 0x88, 0xF8, 0x88, 0x8F, 0x88, 0xF8, 0xFF, 0x88 .byte 0x88, 0xF8, 0x88, 0x88, 0x81, 0xF8, 0x88, 0x88, 0x1F, 0x88, 0x88, 0x88, 0xFF, 0x11, 0x11, 0x11 .byte 0x88, 0x88, 0x88, 0x88, 0xF8, 0x8F, 0xF8, 0xFF, 0x8F, 0xF8, 0xF8, 0x88, 0x8F, 0xF8, 0xF8, 0xFF .byte 0xFF, 0xFF, 0xF8, 0xF8, 0x8F, 0xF8, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x11, 0x11, 0x11, 0x11 .byte 0x88, 0xF1, 0xFF, 0xFF, 0x88, 0x18, 0xFF, 0xFF, 0x8F, 0x88, 0xFF, 0xFF, 0x88, 0x88, 0xFF, 0xFF .byte 0x88, 0x88, 0xFF, 0xFF, 0x8F, 0x18, 0xFF, 0xFF, 0x88, 0xF1, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFF .byte 0x1F, 0xCC, 0xCC, 0xCC, 0xC1, 0xFC, 0xFF, 0xCF, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0xFC, 0xFF, 0xCC .byte 0xCC, 0xFC, 0xCC, 0xCC, 0xC1, 0xFC, 0xCC, 0xCC, 0x1F, 0xCC, 0xCC, 0xCC, 0xFF, 0x11, 0x11, 0x11 .byte 0xCC, 0xCC, 0xCC, 0xCC, 0xFF, 0xCF, 0xFC, 0xFF, 0xCF, 0xFC, 0xCC, 0xFC, 0xFF, 0xCF, 0xCC, 0xCF .byte 0xCF, 0xCF, 0xFC, 0xCC, 0xCF, 0xFC, 0xFC, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0x11, 0x11, 0x11, 0x11 .byte 0xCC, 0xF1, 0xFF, 0xFF, 0xCF, 0x1C, 0xFF, 0xFF, 0xCC, 0xCC, 0xFF, 0xFF, 0xCC, 0xCC, 0xFF, 0xFF .byte 0xCC, 0xCC, 0xFF, 0xFF, 0xCF, 0x1C, 0xFF, 0xFF, 0xCC, 0xF1, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFF .byte 0x1F, 0x33, 0x33, 0x33, 0x31, 0x33, 0xFF, 0x3F, 0x33, 0xF3, 0x33, 0x33, 0x33, 0x33, 0xFF, 0x33 .byte 0x33, 0x33, 0x33, 0x3F, 0x31, 0xF3, 0xFF, 0x33, 0x1F, 0x33, 0x33, 0x33, 0xFF, 0x11, 0x11, 0x11 .byte 0x33, 0x33, 0x33, 0x33, 0x3F, 0x33, 0xF3, 0xFF, 0x3F, 0x33, 0xF3, 0x33, 0x3F, 0x33, 0xF3, 0xFF .byte 0x3F, 0x33, 0xF3, 0x33, 0xFF, 0xFF, 0xF3, 0x33, 0x33, 0x33, 0x33, 0x33, 0x11, 0x11, 0x11, 0x11 .byte 0x33, 0xF1, 0xFF, 0xFF, 0x33, 0x13, 0xFF, 0xFF, 0x3F, 0x33, 0xFF, 0xFF, 0x33, 0x33, 0xFF, 0xFF .byte 0x33, 0x33, 0xFF, 0xFF, 0x33, 0x13, 0xFF, 0xFF, 0x33, 0xF1, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFF .byte 0x1F, 0xDD, 0xDD, 0xDD, 0xD1, 0xFD, 0xFF, 0xDD, 0xDD, 0xFD, 0xDD, 0xDF, 0xDD, 0xFD, 0xFF, 0xDD .byte 0xDD, 0xFD, 0xDD, 0xDD, 0xD1, 0xFD, 0xDD, 0xDD, 0x1F, 0xDD, 0xDD, 0xDD, 0xFF, 0x11, 0x11, 0x11 .byte 0xDD, 0xDD, 0xDD, 0xDD, 0xFD, 0xFF, 0xFD, 0xDD, 0xDF, 0xDD, 0xFD, 0xDF, 0xFD, 0xDF, 0xFD, 0xF1 .byte 0xDD, 0xFD, 0xFD, 0xFD, 0xFF, 0xDF, 0xFD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0x11, 0x11, 0x11, 0x11 .byte 0xDD, 0xF1, 0xFF, 0xFF, 0xDF, 0x1D, 0xFF, 0xFF, 0xDF, 0xDD, 0xFF, 0xFF, 0xDF, 0xDD, 0xFF, 0xFF .byte 0xDF, 0xDD, 0xFF, 0xFF, 0xDF, 0x1D, 0xFF, 0xFF, 0xDD, 0xF1, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFF .byte 0x1F, 0xAA, 0xAA, 0xAA, 0xA1, 0xFA, 0xFF, 0xAA, 0xAA, 0xFA, 0xAA, 0xAF, 0xAA, 0xFA, 0xFF, 0xAA .byte 0xAA, 0xFA, 0xAA, 0xAF, 0xA1, 0xFA, 0xFF, 0xAA, 0x1F, 0xAA, 0xAA, 0xAA, 0xFF, 0x11, 0x11, 0x11 .byte 0xAA, 0xAA, 0xAA, 0xAA, 0xFF, 0xAF, 0xFA, 0xAA, 0xAF, 0xFA, 0xFA, 0xAF, 0xFF, 0xAF, 0xFA, 0xF1 .byte 0xAF, 0xAF, 0xFA, 0xFA, 0xAF, 0xFA, 0xFA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x11, 0x11, 0x11, 0x11 .byte 0xAA, 0xF1, 0xFF, 0xFF, 0xAF, 0x1A, 0xFF, 0xFF, 0xAF, 0xAA, 0xFF, 0xFF, 0xAF, 0xAA, 0xFF, 0xFF .byte 0xAF, 0xAA, 0xFF, 0xFF, 0xAF, 0x1A, 0xFF, 0xFF, 0xAA, 0xF1, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0x33, 0xF4, 0xFF, 0x3F, 0x9F, 0x4A, 0xFF, 0x93, 0x99, 0xAA, 0xF4, 0x33, 0x33, 0x44, 0xF4 .byte 0xF3, 0x2F, 0x22, 0xF4, 0x4F, 0x22, 0x42, 0xFF, 0xFF, 0x44, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xAF, 0xAA, 0xF1, 0xFF, 0x1A, 0x11, 0x1A, 0xEF, 0x1A, 0xFF, 0x1A, 0xEF, 0xAF, 0xAA, 0xF1, 0xEF .byte 0xFF, 0x1A, 0xFF, 0xEF, 0xAA, 0xAA, 0x1A, 0xEF, 0x11, 0x1A, 0x11, 0xEF, 0xFF, 0x1A, 0xFF, 0x2F .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xEF, 0x2E, 0x2E .byte 0x2E, 0xEF, 0x2E, 0x2E, 0x2E, 0xEF, 0x2E, 0x2E, 0xEE, 0x2E, 0xEE, 0x22, 0x22, 0x22, 0x22, 0xF2 .byte 0xFF, 0x1C, 0xFF, 0xFF, 0xCF, 0xCC, 0xF1, 0xEF, 0x1C, 0x1C, 0x1C, 0xEF, 0xF1, 0x1C, 0xF1, 0xEF .byte 0xCF, 0xCC, 0xF1, 0xEF, 0x1C, 0x11, 0x1C, 0xEF, 0x1C, 0xFF, 0x1C, 0xEF, 0xCF, 0xCC, 0xF1, 0x2F .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xEF, 0x2E, 0x2E .byte 0x2E, 0xEF, 0x2E, 0x2E, 0x2E, 0xEF, 0x2E, 0x2E, 0xEE, 0x2E, 0xEE, 0x22, 0x22, 0x22, 0x22, 0xF2 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xEF .byte 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0x2F .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xFF, 0x2E, 0xEF, 0x2E, 0x2E .byte 0x2E, 0xEF, 0x2E, 0x2E, 0x2E, 0xEF, 0x2E, 0x2E, 0xEE, 0x2E, 0xEE, 0x22, 0x22, 0x22, 0x22, 0xF2 .byte 0x1F, 0x44, 0x44, 0x44, 0x4F, 0x44, 0xAA, 0xA4, 0x4F, 0x32, 0x99, 0x93, 0x4F, 0x33, 0x99, 0x99 .byte 0x4F, 0x44, 0xAA, 0xA4, 0x1F, 0x44, 0x44, 0x44, 0xFF, 0x21, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x44, 0x44, 0x44, 0xA4, 0xAA, 0x4A, 0x34, 0x93, 0x49, 0x39, 0x24, 0x93, 0x99, 0x39, 0x24 .byte 0xA4, 0x4A, 0x44, 0x34, 0x44, 0x44, 0x44, 0x44, 0x22, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x44, 0x14, 0xFF, 0xFF, 0x43, 0x44, 0xFF, 0xFF, 0x42, 0x42, 0xF2, 0xFF, 0x42, 0x43, 0xF2, 0xFF .byte 0x43, 0x44, 0xF2, 0xFF, 0x44, 0x24, 0xF2, 0xFF, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x4F, 0xF2, 0xFF, 0xFF, 0x24, 0xFF .byte 0xFF, 0x4F, 0xF2, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x4F, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x60, 0x00, 0x6A, 0x00, 0x5A, 0x00, 0x70, 0x00, 0x64, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x5E, 0x00 .byte 0x62, 0x00, 0x68, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x69, 0x00, 0x57, 0x00, 0x6F, 0x00 .byte 0x63, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x5D, 0x00, 0x61, 0x00, 0x67, 0x00, 0x6B, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x01, 0x00, 0x02, 0x00 .byte 0x03, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x1C, 0x00 .byte 0x1D, 0x00, 0x1E, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00 .byte 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1A, 0x00 .byte 0x1B, 0x00, 0x00, 0x00, 0x50, 0x01, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2D, 0x4E, 0x00, 0x00, 0x29, 0x4E, 0x00, 0x00 .byte 0x25, 0x4E, 0x00, 0x00, 0x25, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xE8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x4E, 0x00, 0x00 .byte 0x29, 0x4E, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00, 0x26, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x01, 0x06, 0x0C, 0x0D, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x04, 0x04, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00 .byte 0x2F, 0x02, 0x2C, 0x02, 0x29, 0x02, 0x26, 0x02, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 .byte 0xF1, 0xC7, 0x25, 0x02, 0x49, 0xC8, 0x25, 0x02, 0x38, 0x02, 0x35, 0x02, 0x32, 0x02, 0x3B, 0x02 .byte 0x0D, 0x14, 0x00, 0x1F, 0x04, 0x0B, 0x00, 0x1F, 0x18, 0x90, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 .byte 0x28, 0x60, 0x08, 0xF8, 0x70, 0xA8, 0x08, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x28, 0x80, 0x18, 0xE8 .byte 0x98, 0xC0, 0x58, 0xA8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0xC0, 0x00, 0x80, 0x01, 0x25, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x20, 0x00, 0x21, 0x00, 0x24, 0x00 .byte 0x22, 0x00, 0x00, 0x00, 0x04, 0x0F, 0x02, 0x1D, 0x11, 0x17, 0x00, 0x09, 0x11, 0x17, 0x16, 0x1F .byte 0x12, 0x17, 0x0B, 0x14, 0x0B, 0x11, 0x00, 0x0E, 0x01, 0x09, 0x11, 0x1F, 0x0B, 0x11, 0x11, 0x1F .byte 0x01, 0x09, 0x00, 0x0E, 0x20, 0x00, 0x3E, 0x00, 0xA0, 0x00, 0x3E, 0x00, 0x20, 0x00, 0x7E, 0x00 .byte 0xA0, 0x00, 0x7E, 0x00, 0x4C, 0x00, 0x3E, 0x00, 0xCC, 0x00, 0x3E, 0x00, 0x4C, 0x00, 0x7E, 0x00 .byte 0xCC, 0x00, 0x7E, 0x00, 0x03, 0x09, 0x00, 0x0F, 0x03, 0x09, 0x10, 0x1F, 0x0B, 0x11, 0x00, 0x0F .byte 0x0B, 0x11, 0x10, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x74, 0x00, 0xC4, 0x00, 0x38, 0x00, 0xC4, 0x00, 0x74, 0x00 .byte 0x3C, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x3E, 0x00, 0xBB, 0x00, 0x3E, 0x00, 0x3B, 0x00, 0x7E, 0x00 .byte 0xBB, 0x00, 0x7E, 0x00, 0x80, 0x00, 0x4C, 0x00, 0x28, 0x00, 0xA4, 0x00, 0xD8, 0x00, 0xA4, 0x00 .byte 0x80, 0x00, 0xA8, 0x00, 0x02, 0x09, 0x00, 0x0F, 0x02, 0x09, 0x10, 0x1F, 0x0A, 0x11, 0x00, 0x0F .byte 0x0A, 0x11, 0x10, 0x1F, 0x12, 0x17, 0x01, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x74, 0x00 .byte 0xC4, 0x00, 0x20, 0x00, 0xC4, 0x00, 0x74, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x80, 0x00, 0xB2, 0x00 .byte 0x18, 0x90, 0x00, 0xFF, 0x90, 0xC0, 0x00, 0x50, 0x90, 0xC0, 0xB0, 0xFF, 0x98, 0xC0, 0x58, 0xA8 .byte 0xFF, 0x00, 0x00, 0x00, 0x0A, 0x11, 0x00, 0x0E, 0x00, 0x09, 0x11, 0x1F, 0x0A, 0x11, 0x11, 0x1F .byte 0x00, 0x09, 0x00, 0x0E, 0x12, 0x17, 0x01, 0x1E, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x58, 0x90, 0x00, 0x78 .byte 0x08, 0x50, 0x88, 0xFF, 0x58, 0x90, 0x88, 0xFF, 0x08, 0x50, 0x00, 0x78, 0x98, 0xC0, 0x08, 0xF8 .byte 0xFF, 0x00, 0x00, 0x00, 0x98, 0xC0, 0x08, 0xF8, 0x18, 0x50, 0x00, 0x80, 0x18, 0x50, 0x80, 0xFF .byte 0x58, 0x90, 0x00, 0x80, 0x58, 0x90, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00 .byte 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00 .byte 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01 .byte 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00 .byte 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01 .byte 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00 .byte 0x80, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x33, 0x4E, 0x00, 0x00, 0x33, 0x4E, 0x00, 0x00 .byte 0x2B, 0x4E, 0x00, 0x00, 0x2B, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34, 0x4E, 0x00, 0x00 .byte 0x33, 0x4E, 0x00, 0x00, 0x2C, 0x4E, 0x00, 0x00, 0x2C, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x35, 0x4E, 0x00, 0x00, 0x30, 0x4E, 0x00, 0x00, 0x2D, 0x4E, 0x00, 0x00, 0x2D, 0x4E, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x41, 0x4E, 0x00, 0x00, 0x32, 0x4E, 0x00, 0x00, 0x31, 0x4E, 0x00, 0x00 .byte 0x31, 0x4E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0xC3, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x71, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x71, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x85, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x85, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD0, 0xF6, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0xC9, 0x94, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD0, 0xF6, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0xDD, 0x94, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x71, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE8, 0xF7, 0x25, 0x02, 0x5C, 0xF7, 0x25, 0x02 .byte 0x10, 0xFE, 0x25, 0x02, 0x29, 0xB9, 0x25, 0x02, 0x05, 0xBB, 0x25, 0x02, 0x85, 0x92, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE4, 0xF6, 0x25, 0x02, 0x7C, 0xF7, 0x25, 0x02 .byte 0x14, 0xFE, 0x25, 0x02, 0x69, 0xBB, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x41, 0x95, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE4, 0xF6, 0x25, 0x02, 0x7C, 0xF7, 0x25, 0x02 .byte 0x14, 0xFE, 0x25, 0x02, 0x69, 0xBB, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x55, 0x95, 0x25, 0x02 .byte 0x65, 0x9E, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3C, 0xF8, 0x25, 0x02, 0x10, 0xF8, 0x25, 0x02 .byte 0x18, 0xFE, 0x25, 0x02, 0x61, 0xBC, 0x25, 0x02, 0xE1, 0xBD, 0x25, 0x02, 0xC9, 0x95, 0x25, 0x02 .byte 0x3D, 0x9F, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x24, 0xF8, 0x25, 0x02, 0xC0, 0xF7, 0x25, 0x02 .byte 0x20, 0xFE, 0x25, 0x02, 0x31, 0xBE, 0x25, 0x02, 0x21, 0xC4, 0x25, 0x02, 0x75, 0x9C, 0x25, 0x02 .byte 0x61, 0xA0, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD8, 0xF6, 0x25, 0x02, 0xB0, 0xF6, 0x25, 0x02 .byte 0x0C, 0xFE, 0x25, 0x02, 0x7D, 0xC4, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x99, 0x98, 0x25, 0x02 .byte 0xE5, 0x9F, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD8, 0xF6, 0x25, 0x02, 0xB0, 0xF6, 0x25, 0x02 .byte 0x0C, 0xFE, 0x25, 0x02, 0x7D, 0xC4, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x31, 0x99, 0x25, 0x02 .byte 0xE5, 0x9F, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD8, 0xF6, 0x25, 0x02, 0xB0, 0xF6, 0x25, 0x02 .byte 0x0C, 0xFE, 0x25, 0x02, 0x7D, 0xC4, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x99, 0x25, 0x02 .byte 0xE5, 0x9F, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD8, 0xF6, 0x25, 0x02, 0xB0, 0xF6, 0x25, 0x02 .byte 0x0C, 0xFE, 0x25, 0x02, 0x7D, 0xC4, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x9A, 0x25, 0x02 .byte 0xE5, 0x9F, 0x25, 0x02, 0x11, 0x00, 0xC3, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0xD8, 0xF6, 0x25, 0x02, 0xB0, 0xF6, 0x25, 0x02 .byte 0x0C, 0xFE, 0x25, 0x02, 0x7D, 0xC4, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x95, 0x9B, 0x25, 0x02 .byte 0xE5, 0x9F, 0x25, 0x02, 0x01, 0x04, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x01, 0x04, 0x00, 0x00 .byte 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x0D, 0x05, 0x04, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x14, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00 .byte 0x5C, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x56, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0xB9, 0x4F, 0x00, 0x00, 0x41, 0x4E, 0x00, 0x00, 0xB3, 0x4F, 0x00, 0x00 .byte 0xA8, 0x4F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xB9, 0x4F, 0x00, 0x00, 0x41, 0x4E, 0x00, 0x00 .byte 0xB3, 0x4F, 0x00, 0x00, 0xA8, 0x4F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; 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 .byte 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x08, 0x06, 0x0C .byte 0x0C, 0x0C, 0x04, 0x08, 0x10, 0x10, 0x02, 0x10, 0x0F, 0x0F, 0x08, 0x14, 0x02, 0x08, 0x08, 0x1E .byte 0x28, 0x28, 0x32, 0x32, 0x0E, 0x10, 0x0A, 0x0F, 0x0F, 0x0C, 0x04, 0x04, 0x01, 0x01, 0x08, 0x05 .byte 0x0C, 0x08, 0x08, 0x1E, 0x06, 0x0F, 0x0F, 0x08, 0x08, 0x06, 0x06, 0x0A, 0x05, 0x05, 0x1E, 0x19 .byte 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x32, 0x0E, 0x0A, 0x14, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E .byte 0x08, 0x08, 0x12, 0x08, 0x0A, 0x12, 0x2D, 0x14, 0x14, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x19 .byte 0x19, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x67, 0x00, 0xAD, 0x00 .byte 0xFD, 0x00, 0x3F, 0x01, 0x40, 0x01, 0x30, 0x01, 0x95, 0x01, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00