From b0cf87ca3640d912d047de41343b4ff9e5f44c6e Mon Sep 17 00:00:00 2001 From: red031000 Date: Mon, 27 Jul 2020 14:38:25 +0100 Subject: decomp module static init sections --- arm9/arm9.lsf | 33 +- arm9/global.inc | 56 + arm9/modules/11/asm/module_11.s | 99942 ------------------------------- arm9/modules/11/asm/module_11_thumb1.s | 3485 ++ arm9/modules/11/asm/module_11_thumb2.s | 96449 +++++++++++++++++++++++++++++ arm9/modules/11/src/module_11_sinit.c | 17 +- arm9/modules/21/asm/module_21.s | 12 - arm9/modules/21/src/module_21_sinit.c | 13 +- arm9/modules/23/asm/module_23.s | 12 - arm9/modules/23/src/module_23_sinit.c | 13 +- arm9/modules/27/asm/module_27.s | 12 - arm9/modules/27/src/module_27_sinit.c | 13 +- arm9/modules/28/asm/module_28.s | 12 - arm9/modules/28/src/module_28_sinit.c | 13 +- arm9/modules/29/asm/module_29.s | 12 - arm9/modules/29/src/module_29_sinit.c | 13 +- arm9/modules/30/asm/module_30.s | 12 - arm9/modules/30/src/module_30_sinit.c | 13 +- arm9/modules/32/asm/module_32.s | 12 - arm9/modules/32/src/module_32_sinit.c | 13 +- arm9/modules/34/asm/module_34.s | 12 - arm9/modules/34/src/module_34_sinit.c | 13 +- arm9/modules/36/asm/module_36.s | 12 - arm9/modules/36/src/module_36_sinit.c | 13 +- arm9/modules/39/asm/module_39.s | 12 - arm9/modules/39/src/module_39_sinit.c | 13 +- arm9/modules/41/asm/module_41.s | 12 - arm9/modules/41/src/module_41_sinit.c | 13 +- arm9/modules/42/asm/module_42.s | 12 - arm9/modules/42/src/module_42_sinit.c | 13 +- arm9/modules/43/asm/module_43.s | 12 - arm9/modules/43/src/module_43_sinit.c | 13 +- arm9/modules/44/asm/module_44.s | 12 - arm9/modules/44/src/module_44_sinit.c | 13 +- arm9/modules/47/asm/module_47.s | 12 - arm9/modules/47/src/module_47_sinit.c | 13 +- include-mw/function_target.h | 2 +- 37 files changed, 100188 insertions(+), 100171 deletions(-) delete mode 100644 arm9/modules/11/asm/module_11.s create mode 100644 arm9/modules/11/asm/module_11_thumb1.s create mode 100644 arm9/modules/11/asm/module_11_thumb2.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index cfa44c60..0bfe989e 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -569,8 +569,9 @@ Overlay MODULE_11 { ##Battles## After MODULE_08 - Object module_11.o + Object module_11_thumb1.o Object module_11_sinit.o + Object module_11_thumb2.o } Overlay MODULE_12 @@ -638,8 +639,8 @@ Overlay MODULE_21 { ##Pokétch Clock## After MODULE_20 - Object module_21.o Object module_21_sinit.o + Object module_21.o } Overlay MODULE_22 @@ -652,8 +653,8 @@ Overlay MODULE_23 { ##Pokétch Calculator## After MODULE_20 - Object module_23.o Object module_23_sinit.o + Object module_23.o } Overlay MODULE_24 @@ -680,31 +681,31 @@ Overlay MODULE_27 { ##Pokétch Party## After MODULE_20 - Object module_27.o Object module_27_sinit.o + Object module_27.o } Overlay MODULE_28 { ##Friendship Checker## After MODULE_20 - Object module_28.o Object module_28_sinit.o + Object module_28.o } Overlay MODULE_29 { ##Dowsing Machine## After MODULE_20 - Object module_29.o Object module_29_sinit.o + Object module_29.o } Overlay MODULE_30 { After MODULE_20 - Object module_30.o Object module_30_sinit.o + Object module_30.o } Overlay MODULE_31 @@ -717,8 +718,8 @@ Overlay MODULE_31 Overlay MODULE_32 { After MODULE_20 - Object module_32.o Object module_32_sinit.o + Object module_32.o } Overlay MODULE_33 @@ -730,8 +731,8 @@ Overlay MODULE_33 Overlay MODULE_34 { After MODULE_20 - Object module_34.o Object module_34_sinit.o + Object module_34.o } Overlay MODULE_35 @@ -744,8 +745,8 @@ Overlay MODULE_35 Overlay MODULE_36 { After MODULE_20 - Object module_36.o Object module_36_sinit.o + Object module_36.o } Overlay MODULE_37 @@ -765,8 +766,8 @@ Overlay MODULE_38 Overlay MODULE_39 { After MODULE_20 - Object module_39.o Object module_39_sinit.o + Object module_39.o } Overlay MODULE_40 @@ -778,31 +779,31 @@ Overlay MODULE_40 Overlay MODULE_41 { After MODULE_20 - Object module_41.o Object module_41_sinit.o + Object module_41.o } Overlay MODULE_42 { ##Marking Map## After MODULE_20 - Object module_42.o Object module_42_sinit.o + Object module_42.o } Overlay MODULE_43 { ##Berry Searcher## After MODULE_20 - Object module_43.o Object module_43_sinit.o + Object module_43.o } Overlay MODULE_44 { After MODULE_20 - Object module_44.o Object module_44_sinit.o + Object module_44.o } Overlay MODULE_45 @@ -821,8 +822,8 @@ Overlay MODULE_47 { ##Link Searcher## After MODULE_20 - Object module_47.o Object module_47_sinit.o + Object module_47.o } Overlay MODULE_48 diff --git a/arm9/global.inc b/arm9/global.inc index c750a6c5..63a62566 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6915,9 +6915,28 @@ .extern MOD8_0222D578 .extern MOD09_022186F0 .extern MOD11_0222D5C0 +.extern MOD11_0222D7F8 +.extern MOD11_0222D840 +.extern MOD11_0222D88C +.extern MOD11_0222D944 +.extern MOD11_0222D980 +.extern MOD11_0222E520 +.extern MOD11_0222F0D4 +.extern MOD11_0222F29C +.extern MOD11_0222F4E4 +.extern MOD11_0222F93C +.extern MOD11_0222F988 +.extern MOD11_0222FABC +.extern MOD11_0222FB04 +.extern MOD11_0222FC38 +.extern MOD11_0222FC80 +.extern MOD11_0222FE58 +.extern MOD11_0222FE94 +.extern MOD11_0222FEC0 .extern MOD11_0222FF68 .extern MOD11_0222FF74 .extern MOD11_0222FF78 +.extern MOD11_0222FF7C .extern MOD11_0222FF84 .extern MOD11_0222FF88 .extern MOD11_0222FFC8 @@ -6936,24 +6955,40 @@ .extern MOD11_02230188 .extern MOD11_02230214 .extern MOD11_02230218 +.extern MOD11_0223021C .extern MOD11_0223022C .extern MOD11_02230260 .extern MOD11_02230270 .extern MOD11_02230290 +.extern MOD11_02230294 .extern MOD11_022302BC .extern MOD11_02230370 +.extern MOD11_02230C68 +.extern MOD11_02230D38 .extern MOD11_02230E44 .extern MOD11_02230E54 +.extern MOD11_02230EC8 +.extern MOD11_02230FA8 .extern MOD11_02231238 .extern MOD11_022312D0 +.extern MOD11_02231338 .extern MOD11_02231344 .extern MOD11_02231350 .extern MOD11_0223135C .extern MOD11_02231368 .extern MOD11_02231374 +.extern MOD11_02231390 +.extern MOD11_02231410 +.extern MOD11_02231474 +.extern MOD11_02231484 +.extern MOD11_022314A0 +.extern MOD11_022314B0 .extern MOD11_02231504 .extern MOD11_02231534 .extern MOD11_02231678 +.extern MOD11_0223D1DC +.extern MOD11_0223D238 +.extern MOD11_0223D284 .extern MOD11_02243420 .extern MOD11_02244248 .extern MOD11_02245D38 @@ -6968,12 +7003,29 @@ .extern MOD11_02249D90 .extern MOD11_02249E04 .extern MOD11_02249E58 +.extern MOD11_0224B240 .extern MOD11_0224B310 .extern MOD11_0224C12C .extern MOD11_0224C474 +.extern MOD11_0224C54C +.extern MOD11_0224CA64 .extern MOD11_0224CA94 +.extern MOD11_0224CB38 +.extern MOD11_0224CB54 .extern MOD11_02252DB4 +.extern MOD11_0225377C +.extern MOD11_02253A58 +.extern MOD11_02253A70 +.extern MOD11_02254820 .extern MOD11_022567E0 +.extern MOD11_022583D8 +.extern MOD11_02258450 +.extern MOD11_022584AC +.extern MOD11_022584D4 +.extern MOD11_02258658 +.extern MOD11_022586BC +.extern MOD11_02258820 +.extern MOD11_02258958 .extern MOD11_0225D3EC .extern MOD11_0225D45C .extern MOD11_0225D484 @@ -6988,6 +7040,10 @@ .extern MOD11_0225D80C .extern MOD11_0225D820 .extern MOD11_0225D824 +.extern MOD11_0225D9B8 +.extern MOD11_0225DA04 +.extern MOD11_0225DA40 +.extern MOD11_0225DAB8 .extern MOD12_0222D5C0 .extern MOD12_0222D89C .extern MOD12_0222D9B0 diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s deleted file mode 100644 index 7a18d017..00000000 --- a/arm9/modules/11/asm/module_11.s +++ /dev/null @@ -1,99942 +0,0 @@ - .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 ; =MOD11_0225DAE0 - 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 MOD11_0225DAE0 -_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 GetLCRNGSeed - ldr r1, _0222DF0C ; =0x00002430 - str r0, [r4, r1] - add r0, sp, #0x20 - add r1, sp, #0x14 - bl FUN_0201265C - ldr r0, _0222DF10 ; =gUnknown21C48B8 - 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 SetLCRNGSeed - 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 ; =MOD11_0225DA20 - ldr r2, _0222DF18 ; =MOD11_0225D9D8 - 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 ; =MOD11_0225D9EC - 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 String_ctor - 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 ; =MOD11_0225DB88 - 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 ; =MOD11_0225DB88 - 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 ; =MOD11_0225DB88 - 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 gUnknown21C48B8 -_0222DF14: .word MOD11_0225DA20 -_0222DF18: .word MOD11_0225D9D8 -_0222DF1C: .word 0x00100010 -_0222DF20: .word MOD11_0225D9EC -_0222DF24: .word 0x00002224 -_0222DF28: .word 0x00002304 -_0222DF2C: .word MOD11_0225DB88 -_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 SetLCRNGSeed - 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 ; =MOD11_0225DA68 - 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 ; =MOD11_0225D9A8 - 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 ; =MOD11_0225DB34 - 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 MOD11_0225DA68 -_0222E454: .word MOD11_0225D9A8 -_0222E458: .word 0x000023FB -_0222E45C: .word MOD11_0225DB34 -_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 ; =MOD11_0225DC18 - 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 ; =MOD11_0225D9C8 - 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 ; =MOD11_0225D9A0 - b _0222E8CC - nop -_0222E8BC: .word 0x00002420 -_0222E8C0: .word MOD11_0225DC18 -_0222E8C4: .word MOD11_0225D9C8 -_0222E8C8: .word MOD11_0225D9A0 -_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 ; =MOD11_0225D99C - 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 ; =MOD11_0225DC18 - 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 ; =MOD11_0225DC18 - 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 ; =MOD11_0225DC18 - b _0222EC78 - .align 2, 0 -_0222EC6C: .word MOD11_0225D99C -_0222EC70: .word MOD11_0225DC18 -_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 ; =MOD11_0225D998 - 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 MOD11_0225D998 -_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 ; =UNK_021064B8 - mov r0, #2 - mov r1, #0 - ldr r3, [r3] - lsl r0, r0, #0xe - add r2, r1, #0 - blx r3 - ldr r3, _0222F018 ; =UNK_021064C0 - 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 UNK_021064B8 -_0222F018: .word UNK_021064C0 - - thumb_func_start MOD11_0222F01C -MOD11_0222F01C: ; 0x0222F01C - push {r3, r4, r5, lr} - sub sp, #0x50 - add r4, r0, #0 - bl LCRandom - 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 ; =MOD11_0225DA90 - 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 ; =MOD11_0225DAB8 - 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 MOD11_0225DA90 -_0222F0C8: .word MOD11_0225DAB8 -_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 ; =MOD11_0225DA40 - 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 ; =MOD11_0225D9B8 - 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 ; =MOD11_0225DA04 - 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 String_ctor - add r6, r0, #0 - ldr r1, _0222F4D4 ; =0x0000039B - add r0, r4, #0 - add r2, r6, #0 - bl ReadMsgDataIntoString - 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 String_dtor - 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 MOD11_0225DA40 -_0222F4CC: .word MOD11_0225D9B8 -_0222F4D0: .word MOD11_0225DA04 -_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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - cmp r0, #0 - beq _0223095A - ldr r0, [sp, #0x38] - mov r1, #0x37 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #5 - bl GetItemAttr - 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 GetItemAttr - cmp r0, #0 - beq _022309F8 - ldr r0, [sp, #0x38] - mov r1, #0x37 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #5 - bl GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - str r0, [sp, #8] -_02230B4A: - ldr r0, [sp, #0x38] - mov r1, #0x2e - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #5 - bl GetItemAttr - 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 GetItemAttr - str r0, [sp, #8] -_02230B8E: - ldr r0, [sp, #0x38] - mov r1, #0x2f - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #5 - bl GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 ; =MOD11_0225DC1C - 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 MOD11_0225DC1C - - 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 String_dtor - 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 NewString_ReadMsgData - 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 String_dtor - 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 NewString_ReadMsgData - add r4, r0, #0 - ldr r0, [r5, #0x14] - ldr r1, [r5, #0x18] - add r2, r4, #0 - bl StringExpandPlaceholders - add r0, r4, #0 - bl String_dtor - 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 ; =MOD11_0225DDE4 - ldr r2, [r2, r3] - blx r2 - pop {r3, pc} - .align 2, 0 -_02232280: .word MOD11_0225DDE4 - - 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 ; =gUnknown21C48B8 - 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 gUnknown21C48B8 -_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 CalcExperienceGain -CalcExperienceGain: ; 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 ; BASE_EXP_YIELD - 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 LCRandom - mov r1, #3 - and r0, r1 - cmp r0, #2 - bge _02233E2C - add r4, r0, #2 - b _02233E36 -_02233E2C: - bl LCRandom - 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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225FF20 - 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 ; =MOD11_0225FF20 - 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 ; =MOD11_0225FF20 - 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 MOD11_0225FF20 -_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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225DC3C - 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 ; =MOD11_0225DC3D - 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 MOD11_0225DC3C -_02236208: .word MOD11_0225DC3D -_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 LCRandom - ldr r1, [r4, r5] - lsl r1, r1, #0x13 - lsr r1, r1, #0x1e - lsl r2, r1, #1 - ldr r1, _02236650 ; =MOD11_0225DC34 - 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 MOD11_0225DC34 -_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 LCRandom - 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 LCRandom - 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 LCRandom - 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 ; BASE_ATK - 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 ; BASE_DEF - 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 LCRandom - 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 ; =MOD11_0225DCA8 - 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 ; =MOD11_0225DCA8 - ldrh r1, [r0, r2] - ldr r0, _02238418 ; =0x0000FFFF - cmp r1, r0 - beq _02238404 - ldr r0, _0223841C ; =MOD11_0225DCAA - 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 MOD11_0225DCA8 -_02238418: .word 0x0000FFFF -_0223841C: .word MOD11_0225DCAA -_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 ; =MOD11_0225DC2C - 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 MOD11_0225DC2C -_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 LCRandom - mov r1, #0xa - bl _s32_div_f - cmp r1, #0 - bne _022392EC - bl LCRandom - 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 ; =MOD11_0225DE150 - str r1, [sp, #0xc] -_022392AA: - ldrb r0, [r3] - cmp r0, r5 - ble _022392C4 - ldr r3, [sp, #0xc] - ldr r5, _02239370 ; =MOD11_0225DD24 - 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 ; =MOD11_0225DC48 - 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 LCRandom - mov r1, #0x64 - bl _s32_div_f - ldr r2, [sp, #0xc] - ldr r0, _02239378 ; =MOD11_0225DE15C - 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 MOD11_0225DE150 -_02239370: .word MOD11_0225DD24 -_02239374: .word MOD11_0225DC48 -_02239378: .word MOD11_0225E15C - - 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 ; =MOD11_0225E168 - 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 MOD11_0225E168 -_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 ; =MOD11_0225DD0A - 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 MOD11_0225DD0A - - 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 ; =MOD11_0225DD48 - ldr r1, [r0, r1] - ldr r0, _022395C8 ; =0x00002174 - str r1, [r4, r0] - mov r0, #0 - pop {r3, r4, r5, pc} - nop -_022395C4: .word MOD11_0225DD48 -_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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 GetItemAttr - 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 GetItemAttr - 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 ; =gGameLanguage - 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 ; =MOD11_0225DCC0 - 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 gGameLanguage -_0223ABB0: .word 0x0000219C -_0223ABB4: .word 0x00002DA4 -_0223ABB8: .word MOD11_0225DCC0 -_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 ; =MOD11_0225DCD8 - 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 ; =MOD11_0225DC60 - 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 ; =MOD11_0225DC90 - 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 ; =gUnknown21C48B8 - 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 MOD11_0225DCD8 -_0223AF58: .word MOD11_0225DC60 -_0223AF5C: .word 0x000003B3 -_0223AF60: .word MOD11_0225DC90 -_0223AF64: .word 0x000003B5 -_0223AF68: .word gUnknown21C48B8 -_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 GetItemAttr - add r5, r0, #0 - add r0, r6, #0 - mov r1, #2 - mov r2, #5 - bl GetItemAttr - 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 CalcBallShakesOnMonCatch - 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 ; =gUnknown21C48B8 - 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 gUnknown21C48B8 -_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 ; =UNK_020FA5FC - 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 UNK_020FA5FC -_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 CalcBallShakesOnMonCatch -CalcBallShakesOnMonCatch: ; 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 ; BASE_CATCH_RATE - bl GetMonBaseStat - ldr r1, _0223C200 ; =0x0000311C - ldr r2, _0223C204 ; =MOD11_0225DCF0 - ldrb r1, [r4, r1] - lsl r1, r1, #1 - ldrb r2, [r2, r1] - mul r2, r0 - add r0, r2, #0 - ldr r2, _0223C208 ; =MOD11_0225DCF0 + 1 - 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 ; BASE_CATCH_RATE - 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 ; =MOD11_0225DC28 - 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 LCRandom - 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 MOD11_0225DCF0 -_0223C208: .word MOD11_0225DCF0 + 1 -_0223C20C: .word 0x00002D74 -_0223C210: .word MOD11_0225DC28 -_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 ; =MOD11_0225DD7C - 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 ; =MOD11_0225DDB0 - 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 NewString_ReadMsgData - add r6, r0, #0 - b _0223CF5C -_0223CF42: - cmp r0, #1 - bne _0223CF52 - ldr r0, [sp, #0x28] - ldr r1, _0223D05C ; =0x000003B1 - bl NewString_ReadMsgData - add r6, r0, #0 - b _0223CF5C -_0223CF52: - ldr r0, [sp, #0x28] - ldr r1, _0223D060 ; =0x000003B2 - bl NewString_ReadMsgData - 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 StringExpandPlaceholders - add r0, r6, #0 - bl String_dtor - 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 MOD11_0225DD7C -_0223D04C: .word 0x00004E32 -_0223D050: .word 0x00004E2D -_0223D054: .word 0x00004E2A -_0223D058: .word MOD11_0225DDB0 -_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 LoadAllItemData - 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 ; =MOD11_0225E194 - 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 MOD11_0225E194 - - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225E178 - lsl r1, r7, #1 - ldrb r0, [r0, r1] - ldr r2, _02240880 ; =MOD11_0225E179 - 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 LCRandom - 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 MOD11_0225E178 -_02240880: .word MOD11_0225E179 -_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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224456C ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224456C ; =MOD11_0225E285 - 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 ; =MOD11_0225E24C - 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 ; =MOD11_0225E24C - 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 MOD11_0225E284 -_0224456C: .word MOD11_0225E285 -_02244570: .word MOD11_0225E24C -_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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225E379 - ldrb r0, [r0, r2] - cmp r0, #2 - bne _022461FC - ldr r0, _02246270 ; =MOD11_0225E37A - 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 ; =MOD11_0225E379 - 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 ; =MOD11_0225E379 - ldrb r0, [r0, r2] - cmp r0, #2 - bne _0224623E - ldr r0, _02246270 ; =MOD11_0225E37A - 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 ; =MOD11_0225E379 - ldrb r0, [r0, r2] - cmp r0, #0x11 - bne _02246268 - ldr r0, _02246270 ; =MOD11_0225E37A - 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 MOD11_0225E379 -_02246270: .word MOD11_0225E37A - - 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 ; =MOD11_0225E378 - add r0, r4, r0 - add r1, r1, r0 - str r1, [sp, #0xc] - ldr r1, _02246598 ; =MOD11_0225E378 - 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 ; =MOD11_0225E378 - 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 MOD11_0225E378 -_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 ; =MOD11_0225E378 - 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 ; =MOD11_0225E378 - 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 MOD11_0225E378 - - 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 ; =MOD11_0225E379 - ldrb r1, [r1, r4] - cmp r1, #2 - bne _022466E2 - ldr r1, _02246710 ; =MOD11_0225E37A - 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 ; =MOD11_0225E379 - ldrb r0, [r0, r1] - cmp r0, #2 - bne _02246706 - ldr r0, _02246710 ; =MOD11_0225E37A - 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 MOD11_0225E379 -_02246710: .word MOD11_0225E37A - - 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 LCRandom - mov r1, #0x70 - bl _u32_div_f - add r6, r1, #0 - mov r0, #0 -_02246B76: - lsl r1, r6, #1 - ldr r2, _02246B90 ; =MOD11_0225E378 - add r1, r6, r1 - ldrb r2, [r2, r1] - strb r2, [r5] - ldr r2, _02246B94 ; =MOD11_0225E379 - ldrb r2, [r2, r1] - strb r2, [r4] - ldr r2, _02246B98 ; =MOD11_0225E37A - ldrb r1, [r2, r1] - strb r1, [r7] - pop {r3, r4, r5, r6, r7, pc} - nop -_02246B90: .word MOD11_0225E378 -_02246B94: .word MOD11_0225E379 -_02246B98: .word MOD11_0225E37A - - thumb_func_start MOD11_02246B9C -MOD11_02246B9C: ; 0x02246B9C - push {r3, r4, r5, r6, r7, lr} - ldr r4, _02246BE4 ; =MOD11_0225E378 - 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 MOD11_0225E378 - - 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 ItemIdIsMail - 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 ItemIdIsMail - 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 LCRandom - 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 LCRandom - 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 ; =MOD11_0225E278 - 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 MOD11_0225E278 - - 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 ; =MOD11_0225E29E - 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 MOD11_0225E29E - - 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 ; =MOD11_0225FF84 - 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 MOD11_0225FF84 - - 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 LCRandom - 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 ; =MOD11_0225E284 - add r1, r0, r2 - ldr r0, _02247D70 ; =0x00002D44 - ldrb r1, [r1, #1] - ldrh r3, [r5, r0] - ldr r0, _02247D6C ; =MOD11_0225E284 - 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 ; =MOD11_0225E284 - add r1, r0, r2 - ldr r0, _02247D78 ; =0x00002D4A - ldrb r1, [r1, #1] - ldrh r3, [r5, r0] - ldr r0, _02247D6C ; =MOD11_0225E284 - 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 LCRandom - 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 LCRandom - 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 MOD11_0225E284 -_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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - mov r1, #0xa - bl _s32_div_f - cmp r1, #3 - bge _02248650 - bl LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 LCRandom - 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 ItemIdIsBerry - 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 LCRandom - 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 GetItemAttr - 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 ; =MOD11_0225E336 - 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 MOD11_0225E336 -_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 ; =MOD11_0225E2BA - 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 ; =MOD11_0225E284 - ldr r2, [sp, #0x7c] - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldr r2, [sp, #0x78] - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldr r2, [sp, #0x74] - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldr r2, [sp, #0x10] - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 ; =MOD11_0225E284 - ldrb r0, [r0, r1] - mul r0, r2 - ldr r2, _0224BDE8 ; =MOD11_0225E285 - 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 MOD11_0225E2BA -_0224BDE0: .word 0x000003DE -_0224BDE4: .word MOD11_0225E284 -_0224BDE8: .word MOD11_0225E285 -_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 LCRandom - 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 LCRandom - ldr r1, _0224C040 ; =MOD11_0225E244 - 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 MOD11_0225E244 - - thumb_func_start MOD11_0224C044 -MOD11_0224C044: ; 0x0224C044 - push {r3, r4} - ldr r4, _0224C074 ; =MOD11_0225E300 - 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 ; =MOD11_0225E300 - 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 MOD11_0225E300 -_0224C078: .word 0x0000FFFE - - thumb_func_start MOD11_0224C07C -MOD11_0224C07C: ; 0x0224C07C - push {r3, r4} - ldr r4, _0224C0AC ; =MOD11_0225E300 - 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 ; =MOD11_0225E300 - 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 MOD11_0225E300 -_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 ; =MOD11_0225E254 - 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 MOD11_0225E254 - - 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 ; =MOD11_0225E26C - 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 MOD11_0225E26C - - 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 GetItemIndexMapping - add r1, r0, #0 - ldr r0, _0224C14C ; =0x00002120 - ldr r0, [r5, r0] - bl GetItemDataPtrFromArray - add r1, r4, #0 - bl GetItemAttr_PreloadedItemData - 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 ; =MOD11_0225E2D8 - 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 MOD11_0225E2D8 - - 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 ; =MOD11_0225E4C8 - lsl r1, r4, #2 - ldr r0, [r0, r1] - pop {r4, pc} - nop -_0224C640: .word 0x007FFFFF -_0224C644: .word MOD11_0225E4C8 - - 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 LCRandom - 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 ; =MOD11_0225E260 - 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 MOD11_0225E260 - - 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 ; =MOD11_0225E818 - 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 MOD11_0225E818 - - 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 ; =MOD11_0225E70C - ldr r2, [r2, r3] - blx r2 -_0224CB4C: - pop {r3, pc} - nop -_0224CB50: .word MOD11_0225E70C - - 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 ; =MOD8_0222D550 - 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 ; =MOD8_0222D550 - 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 ; =MOD8_0222D550 - add r7, r2, #0 - mul r7, r0 - ldr r0, _0224D728 ; =MOD8_0222D552 - mov r2, #2 - ldrsh r0, [r0, r7] - ldrsh r3, [r3, r7] - str r0, [sp] - ldr r0, _0224D72C ; =MOD8_0222D554 - 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 ; =MOD8_0222D538 - 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 MOD8_0222D550 -_0224D728: .word MOD8_0222D552 -_0224D72C: .word MOD8_0222D554 -_0224D730: .word MOD8_0222D538 -_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 ; =MOD11_0225E84A - 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 MOD11_0225E84A -_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 ; =MOD8_0222D550 - 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 ; =MOD8_0222D550 - 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 ; =MOD8_0222D552 - mov r1, #0 - ldrsh r0, [r0, r7] - ldr r3, _0224DCD0 ; =MOD8_0222D550 - add r2, sp, #0x30 - str r0, [sp] - ldr r0, _0224DCD8 ; =MOD8_0222D554 - 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 ; =MOD8_0222D538 - 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 MOD8_0222D550 -_0224DCD4: .word MOD8_0222D552 -_0224DCD8: .word MOD8_0222D554 -_0224DCDC: .word MOD8_0222D538 -_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 ; =MOD8_0222D576 - add r6, r2, #0 - mul r6, r1 - ldr r1, _0224DE40 ; =MOD8_0222D578 - ldr r2, _0224DE44 ; =MOD8_0222D574 - 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 ; =MOD8_0222D538 - 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 MOD8_0222D576 -_0224DE40: .word MOD8_0222D578 -_0224DE44: .word MOD8_0222D574 -_0224DE48: .word MOD8_0222D538 -_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 ; =MOD8_0222D552 - add r2, #0x14 - ldrsh r0, [r0, r1] - str r0, [sp] - ldr r0, _0224F694 ; =MOD8_0222D554 - 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 ; =MOD8_0222D538 - 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 ; =MOD11_0225E84A - 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 ; =MOD11_0225E84A - 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 ; =MOD11_0225E84A - b _0224F6A4 - .align 2, 0 -_0224F690: .word MOD8_0222D552 -_0224F694: .word MOD8_0222D554 -_0224F698: .word MOD8_0222D538 -_0224F69C: .word MOD11_0225E84A -_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 ; =MOD11_0225E818 - 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 ; =MOD8_0222D552 - add r2, #0x14 - ldrsh r0, [r0, r1] - str r0, [sp] - ldr r0, _0224FB60 ; =MOD8_0222D554 - 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 ; =MOD8_0222D538 - 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 ; =MOD11_0225E84A - 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 ; =MOD11_0225E84A - 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 MOD11_0225E818 -_0224FB5C: .word MOD8_0222D552 -_0224FB60: .word MOD8_0222D554 -_0224FB64: .word MOD8_0222D538 -_0224FB68: .word MOD11_0225E84A -_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 ; =MOD11_0225E84A - 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 MOD11_0225E84A - - 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 ; =MOD11_0225E818 - 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 ; =MOD11_0225E84A - 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 MOD11_0225E818 -_0224FFE8: .word MOD11_0225E84A -_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 ; =MOD11_0225E8D0 - 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 MOD11_0225E8D0 -_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 ; =gUnknown21C48B8 - 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 gUnknown21C48B8 -_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 ; BASE_GREAT_MARSH_RATE - bl GetMonBaseStat - ldr r2, _0225100C ; =MOD11_0225E830 - lsl r1, r5, #1 - ldrb r2, [r2, r1] - mul r2, r0 - add r0, r2, #0 - ldr r2, _02251010 ; =MOD11_0225E831 - ldrb r1, [r2, r1] - bl _s32_div_f - add r5, r0, #0 - bl LCRandom - 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 MOD11_0225E830 -_02251010: .word MOD11_0225E831 - - 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 LCRandom - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 GetItemAttr - 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 ; =MOD11_0225E86C - 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 ; =MOD11_0225E820 - 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 MOD11_0225E86C -_022533DC: .word MOD11_0225E820 -_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 ; =MI_CpuFill8 - add r0, #0x80 - mov r1, #0 - mov r2, #8 - bx r3 - nop -_02253A84: .word MI_CpuFill8 - - 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 ; =MOD11_0225E89C - 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 ; =MOD8_0222D550 - ldr r2, _02254400 ; =MOD8_0222D552 - 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 MOD11_0225E89C -_022543FC: .word MOD8_0222D550 -_02254400: .word MOD8_0222D552 - - 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 Sin - 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 ; =MOD11_0225E970 - 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 MOD11_0225E970 - - 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 ; =MOD11_0225E9B0 - 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 ; =MOD11_0225E9B2 - 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 ; =MOD11_0225EA10 - lsl r2, r1, #2 - ldrh r3, [r3, r2] - ldr r1, [r4, #4] - add r3, r6, r3 - add r1, r1, r3 - ldr r3, _02257144 ; =MOD11_0225EA12 - 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 ; =MOD11_0225E9B0 - 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 ; =MOD11_0225E9B2 - 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 ; =MOD11_0225E9E0 - lsl r2, r1, #2 - ldrh r3, [r3, r2] - ldr r1, [r4, #4] - add r3, r6, r3 - add r1, r1, r3 - ldr r3, _0225714C ; =MOD11_0225E9E2 - 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 MOD11_0225E9B0 -_0225713C: .word MOD11_0225E9B2 -_02257140: .word MOD11_0225EA10 -_02257144: .word MOD11_0225EA12 -_02257148: .word MOD11_0225E9E0 -_0225714C: .word MOD11_0225E9E2 - - 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 ; =MOD11_0225E970 - 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 MOD11_0225E970 - - 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 ; =MOD11_0225E970 - 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 MOD11_0225E970 - - 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 String_ctor - mov r1, #0xf1 - str r0, [sp, #0x18] - add r0, r7, #0 - lsl r1, r1, #2 - bl NewString_ReadMsgData - 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 StringExpandPlaceholders - 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 ; =MOD11_0225EC88 - 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 ; =MOD11_0225EC8A - 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 ; =MOD11_0225EC8C - 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 ; =MOD11_0225EC8E - 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 ; =MOD11_0225EC90 - ldr r1, [r4, #4] - lsl r2, r0, #4 - ldr r0, _02257638 ; =MOD11_0225EC8A - 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 ; =MOD11_0225EC92 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - add r5, #0x25 - ldrb r0, [r5] - ldr r4, [r4, #4] - lsl r2, r0, #4 - ldr r0, _02257640 ; =MOD11_0225EC8E - ldrh r1, [r0, r2] - ldr r0, [sp, #0x20] - add r0, r0, r1 - ldr r1, _0225764C ; =MOD11_0225EC94 - ldrh r3, [r1, r2] - mov r1, #0x19 - lsl r1, r1, #0x16 - add r1, r1, r3 - ldr r3, _02257650 ; =MOD11_0225EC96 - add r1, r4, r1 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - add r0, sp, #0x24 - bl FUN_02019178 - ldr r0, [sp, #0x18] - bl String_dtor - ldr r0, [sp, #0x1c] - bl String_dtor - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02257630: .word 0x000E020F -_02257634: .word MOD11_0225EC88 -_02257638: .word MOD11_0225EC8A -_0225763C: .word MOD11_0225EC8C -_02257640: .word MOD11_0225EC8E -_02257644: .word MOD11_0225EC90 -_02257648: .word MOD11_0225EC92 -_0225764C: .word MOD11_0225EC94 -_02257650: .word MOD11_0225EC96 - - 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 ; =MOD11_0225EAB8 - 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 ; =MOD11_0225EABA - 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 ; =MOD11_0225EABC - 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 ; =MOD11_0225EABE - 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 ; =MOD11_0225EAB8 - 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 ; =MOD11_0225EABA - add r0, r7, #0 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - ldr r0, [sp] - ldr r3, _02257754 ; =MOD11_0225EABC - 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 ; =MOD11_0225EABE - 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 MOD11_0225EAB8 -_02257750: .word MOD11_0225EABA -_02257754: .word MOD11_0225EABC -_02257758: .word MOD11_0225EABE - - 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 ; =MOD11_0225EA28 - 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 ; =MOD11_0225EA2A - 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 ; =MOD11_0225EA2C - 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 ; =MOD11_0225EA2E - 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 ; =MOD11_0225EA28 - 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 ; =MOD11_0225EA2A - add r0, r7, #0 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - ldr r0, [sp, #4] - ldr r3, _02257874 ; =MOD11_0225EA2C - 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 ; =MOD11_0225EA2E - 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 MOD11_0225EA28 -_02257870: .word MOD11_0225EA2A -_02257874: .word MOD11_0225EA2C -_02257878: .word MOD11_0225EA2E - - 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 ; =MOD11_0225EA58 - 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 ; =MOD11_0225EA5A - add r0, r4, #0 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - add r5, #0x25 - ldrb r0, [r5] - ldr r3, _02257900 ; =MOD11_0225EA5C - ldr r1, [r6, #4] - lsl r2, r0, #3 - ldrh r3, [r3, r2] - ldr r0, _022578FC ; =MOD11_0225EA5A - add r3, r7, r3 - add r1, r1, r3 - ldrh r0, [r0, r2] - ldr r3, _02257904 ; =MOD11_0225EA5E - 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 MOD11_0225EA58 -_022578FC: .word MOD11_0225EA5A -_02257900: .word MOD11_0225EA5C -_02257904: .word MOD11_0225EA5E - - 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 ; =MOD11_0225E9F8 - 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 ; =MOD11_0225E9FA - 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 MOD11_0225E9F8 -_02257964: .word MOD11_0225E9FA - - 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 ; =MOD11_0225E9C8 - ldrh r3, [r1, r2] - mov r1, #0x19 - lsl r1, r1, #0x16 - add r1, r3, r1 - ldr r3, _022579B4 ; =MOD11_0225E9CA - add r1, r4, r1 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - pop {r3, r4, r5, pc} - nop -_022579B0: .word MOD11_0225E9C8 -_022579B4: .word MOD11_0225E9CA - - 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 ; =MOD11_0225E998 - ldrh r3, [r1, r2] - mov r1, #0x19 - lsl r1, r1, #0x16 - add r1, r3, r1 - ldr r3, _022579F4 ; =MOD11_0225E99A - add r1, r4, r1 - ldrh r2, [r3, r2] - bl MIi_CpuCopy16 - pop {r3, r4, r5, pc} - nop -_022579F0: .word MOD11_0225E998 -_022579F4: .word MOD11_0225E99A - - 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 NewString_ReadMsgData - b _02257A26 -_02257A20: - add r1, #0xc4 - bl NewString_ReadMsgData -_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 String_dtor - 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 String_ctor - 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 NewString_ReadMsgData - str r0, [sp, #0x18] - b _02257B1E -_02257B14: - ldr r0, [sp, #0x20] - add r1, #0xc5 - bl NewString_ReadMsgData - 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 StringExpandPlaceholders - 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 String_dtor - ldr r0, [sp, #0x18] - bl String_dtor - 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 ; =MOD11_0225EA8A - 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 ; =MOD11_0225EA88 - 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 ; =MOD11_0225EA88 - 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 MOD11_0225EA8A -_02257DE4: .word MOD11_0225EA88 - - 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 ; =MOD11_0225ECE8 - lsl r0, r0, #5 - add r0, r1, r0 - bx lr - .align 2, 0 -_02257F68: .word MOD11_0225ECE8 - - 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 ; =MOD11_0225EBEC - pop {r3, pc} -_02257FE6: - ldr r0, _0225800C ; =MOD11_0225EC20 - pop {r3, pc} -_02257FEA: - ldr r0, _02258010 ; =MOD11_0225EAE8 - pop {r3, pc} -_02257FEE: - ldr r0, _02258014 ; =MOD11_0225EB1C - pop {r3, pc} -_02257FF2: - ldr r0, _02258018 ; =MOD11_0225EB84 - pop {r3, pc} -_02257FF6: - ldr r0, _0225801C ; =MOD11_0225EC54 - pop {r3, pc} -_02257FFA: - ldr r0, _02258020 ; =MOD11_0225EBB8 - pop {r3, pc} -_02257FFE: - bl ErrorHandling - mov r0, #0 - pop {r3, pc} - nop -_02258008: .word MOD11_0225EBEC -_0225800C: .word MOD11_0225EC20 -_02258010: .word MOD11_0225EAE8 -_02258014: .word MOD11_0225EB1C -_02258018: .word MOD11_0225EB84 -_0225801C: .word MOD11_0225EC54 -_02258020: .word MOD11_0225EBB8 - - 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 ; =MOD11_0225EB50 - pop {r3, pc} -_0225804A: - mov r0, #0 - pop {r3, pc} -_0225804E: - bl ErrorHandling - mov r0, #0 - pop {r3, pc} - nop -_02258058: .word MOD11_0225EB50 - - 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 Sin - 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 ; =MOD11_0225F5C0 - 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 ; =MOD11_0225F5A8 - 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 ; =MOD11_0225F5D8 - 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 ; =MOD11_0225F5D8 - 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 MOD11_0225F5C0 -_02258324: .word 0x00004E2D -_02258328: .word MOD11_0225F5A8 -_0225832C: .word 0x00004E2E -_02258330: .word MOD11_0225F5D8 -_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 ; =MOD11_0225F61C - 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 MOD11_0225F61C - - 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 ; =MOD11_0225F97C - 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 MOD11_0225F97C -_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 ; =MOD11_0225F6FC - 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 MOD11_0225F6FC -_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 ; =MOD11_0225FAAC - mul r0, r2 - add r5, r1, r0 -_02258874: - ldr r0, [sp, #0x18] - mov r1, #0x30 - ldr r2, _02258944 ; =MOD11_0225FAAC - 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 MOD11_0225FAAC -_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 ; =MOD11_0225F8AC - 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 ; =MOD11_0225F8E0 - 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 MOD11_0225F8AC -_02258AF4: .word MOD11_0225F8E0 -_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 LCRandom - 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 ; =MOD11_0225FAAC - 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 MOD11_0225FAAC -_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 NewString_ReadMsgData - mov r1, #0xe9 - str r0, [sp, #0x24] - add r0, r4, #0 - lsl r1, r1, #2 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - ldr r1, _0225948C ; =0x000003A5 - add r0, r4, #0 - bl NewString_ReadMsgData - 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 NewString_ReadMsgData - mov r1, #0xe9 - str r0, [sp, #0x24] - add r0, r4, #0 - lsl r1, r1, #2 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - ldr r1, _0225948C ; =0x000003A5 - add r0, r4, #0 - bl NewString_ReadMsgData - str r0, [sp, #0x1c] - b _0225931A -_022592FA: - mov r1, #0xe7 - add r0, r4, #0 - lsl r1, r1, #2 - bl NewString_ReadMsgData - str r0, [sp, #0x24] - ldr r1, _02259494 ; =0x0000039D - add r0, r4, #0 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - ldr r1, _02259498 ; =0x0000039E - add r0, r4, #0 - bl NewString_ReadMsgData - 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 NewString_ReadMsgData - add r4, r0, #0 - mov r1, #1 - b _0225934A -_0225933E: - ldr r1, _0225949C ; =0x0000039F - add r0, r4, #0 - bl NewString_ReadMsgData - 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 String_dtor - ldr r0, [sp, #0x20] - bl String_dtor - ldr r0, [sp, #0x1c] - bl String_dtor - add r0, r4, #0 - bl String_dtor - 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 ; =MOD11_0225F73C - 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 ; =MOD11_0225F73C - 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 ; =MOD11_0225F78C - 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 ; =MOD11_0225F78C - 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 NewString_ReadMsgData - 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 String_dtor - 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 MOD11_0225F73C -_02259870: .word MOD11_0225F78C -_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 NewString_ReadMsgData - add r4, r0, #0 - ldr r1, _0225991C ; =0x000003AD - add r0, r6, #0 - bl NewString_ReadMsgData - 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 String_dtor - add r0, r6, #0 - bl String_dtor - 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 NewString_ReadMsgData - add r4, r0, #0 - ldr r1, _022599B8 ; =0x0000049E - add r0, r6, #0 - bl NewString_ReadMsgData - 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 String_dtor - add r0, r6, #0 - bl String_dtor - 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 NewString_ReadMsgData - str r0, [sp, #0x1c] - ldr r1, _02259A9C ; =0x000004A3 - add r0, r6, #0 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - mov r0, #0x64 - mov r1, #5 - bl String_ctor - add r6, r0, #0 - mov r0, #0x64 - mov r1, #5 - bl String_ctor - 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 StringExpandPlaceholders - ldr r2, [sp, #0x20] - add r0, r4, #0 - add r1, r7, #0 - bl StringExpandPlaceholders - 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 String_dtor - ldr r0, [sp, #0x20] - bl String_dtor - add r0, r6, #0 - bl String_dtor - add r0, r7, #0 - bl String_dtor - 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 NewString_ReadMsgData - str r0, [sp, #0x1c] - ldr r1, _02259B80 ; =0x000004C2 - add r0, r6, #0 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - mov r0, #0x64 - mov r1, #5 - bl String_ctor - add r6, r0, #0 - mov r0, #0x64 - mov r1, #5 - bl String_ctor - 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 StringExpandPlaceholders - ldr r2, [sp, #0x20] - add r0, r4, #0 - add r1, r7, #0 - bl StringExpandPlaceholders - 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 String_dtor - ldr r0, [sp, #0x20] - bl String_dtor - add r0, r6, #0 - bl String_dtor - add r0, r7, #0 - bl String_dtor - 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 NewString_ReadMsgData - mov r1, #0x13 - str r0, [sp, #0x1c] - add r0, r6, #0 - lsl r1, r1, #6 - bl NewString_ReadMsgData - str r0, [sp, #0x20] - mov r0, #0x64 - mov r1, #5 - bl String_ctor - add r6, r0, #0 - mov r0, #0x64 - mov r1, #5 - bl String_ctor - 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 StringExpandPlaceholders - ldr r2, [sp, #0x20] - add r0, r4, #0 - add r1, r7, #0 - bl StringExpandPlaceholders - 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 String_dtor - ldr r0, [sp, #0x20] - bl String_dtor - add r0, r6, #0 - bl String_dtor - add r0, r7, #0 - bl String_dtor - 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 String_ctor - 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 NewString_ReadMsgData - str r0, [sp, #0x24] - b _02259D2A -_02259D0E: - cmp r0, #1 - bne _02259D1E - ldr r0, [sp, #0x2c] - ldr r1, _02259E40 ; =0x000003C3 - bl NewString_ReadMsgData - str r0, [sp, #0x24] - b _02259D2A -_02259D1E: - mov r1, #0xf1 - ldr r0, [sp, #0x2c] - lsl r1, r1, #2 - bl NewString_ReadMsgData - 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 StringExpandPlaceholders - 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 ; =MOD11_0225F7D4 - 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 ; =MOD11_0225F7D4 - 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 String_dtor - 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 String_dtor - ldr r0, [sp, #0x2c] - ldr r1, _02259E54 ; =0x000003A2 - bl NewString_ReadMsgData - 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 ; =MOD11_0225F7C4 - 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 String_dtor - 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 MOD11_0225F7D4 -_02259E54: .word 0x000003A2 -_02259E58: .word 0x000A0B0C -_02259E5C: .word MOD11_0225F7C4 -_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 ; =MOD11_0225F854 - 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 ; =MOD11_0225F70C - 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 ; =MOD11_0225F79C - 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 MOD11_0225F854 -_02259F30: .word 0x000006B4 -_02259F34: .word MOD11_0225F70C -_02259F38: .word MOD11_0225F79C - - 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 ; =MOD11_0225F86C - lsl r0, r0, #2 - add r7, r3, r2 - ldr r2, _02259FD0 ; =MOD11_0225F7AC - add r6, r2, r0 - b _02259FA6 -_02259FA2: - ldr r7, _02259FD4 ; =MOD11_0225F884 - ldr r6, _02259FD8 ; =MOD11_0225F7BC -_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 MOD11_0225F86C -_02259FD0: .word MOD11_0225F7AC -_02259FD4: .word MOD11_0225F884 -_02259FD8: .word MOD11_0225F7BC -_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 ; =MOD11_0225F6F6 - str r1, [r5, r0] - ldr r1, _0225A054 ; =MOD11_0225F6CC - b _0225A028 -_0225A022: - ldr r1, _0225A058 ; =MOD11_0225F6F0 - str r1, [r5, r0] - ldr r1, _0225A05C ; =MOD11_0225F6C8 -_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 MOD11_0225F6F6 -_0225A054: .word MOD11_0225F6CC -_0225A058: .word MOD11_0225F6F0 -_0225A05C: .word MOD11_0225F6C8 - - 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 ; =MOD11_0225F8A4 - ldr r1, _0225A154 ; =0x000006B4 - ldr r2, _0225A158 ; =MOD11_0225F80C - 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 MOD11_0225F8A4 -_0225A154: .word 0x000006B4 -_0225A158: .word MOD11_0225F80C -_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 ; =MOD11_0225F948 - 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 ; =MOD11_0225F76C - 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 MOD11_0225F948 -_0225A3E8: .word MOD11_0225F76C -_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 NewString_ReadMsgData - str r0, [sp, #0x28] - ldr r0, [r7] - bl MOD11_02230138 - str r0, [sp, #0x24] - mov r0, #0x10 - mov r1, #5 - bl String_ctor - str r0, [sp, #0x30] - ldr r1, _0225A960 ; =0x000003A9 - add r0, r4, #0 - bl NewString_ReadMsgData - 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 GetMoveName - 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 String_dtor -_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 StringExpandPlaceholders - 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 String_dtor - ldr r0, [sp, #0x2c] - bl String_dtor - ldr r0, [sp, #0x30] - bl String_dtor - 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 ; =MOD11_0225F914 - 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 ; =MOD11_0225F72C - 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 ; =MOD11_0225F72C - 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 MOD11_0225F914 -_0225AAB0: .word 0x00000604 -_0225AAB4: .word 0x00004E35 -_0225AAB8: .word MOD11_0225F72C - - 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 ; =MOD11_0225F6A8 - lsl r2, r4, #1 - add r1, r1, r2 - ldr r2, _0225ABA0 ; =MOD11_0225F74C - 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 MOD11_0225F6A8 -_0225ABA0: .word MOD11_0225F74C - - thumb_func_start MOD11_0225ABA4 -MOD11_0225ABA4: ; 0x0225ABA4 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r4, r1, #0 - ldr r1, _0225AC50 ; =MOD11_0225F684 - 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 ; =MOD11_0225F6C0 - lsl r1, r4, #1 - add r1, r2, r1 - ldr r3, _0225AC58 ; =MOD11_0225F71C - 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 ; =MOD11_0225F71C - 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 MOD11_0225F684 -_0225AC54: .word MOD11_0225F6C0 -_0225AC58: .word MOD11_0225F71C -_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 ; =MOD11_0225F9EC - 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 MOD11_0225F9EC - - 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 ; =MOD11_0225F88C - lsl r3, r5, #2 - add r1, r1, r2 - ldr r2, _0225B3C8 ; =MOD11_0225F7FC - 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 ; =MOD11_0225F88C - lsl r3, r5, #2 - add r1, r1, r2 - ldr r2, _0225B3C8 ; =MOD11_0225F7FC - 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 MOD11_0225F88C -_0225B3C8: .word MOD11_0225F7FC -_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 ; =MOD11_0225FAAC - 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 MOD11_0225FAAC -_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 ; =UNK_021C48F8 - 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 UNK_021C48F8 - - 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 ; =MOD11_0225FAAC - 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 ; =gUnknown21C48B8 - 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 MOD11_0225FAAC -_0225B918: .word gUnknown21C48B8 -_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 ; =MOD11_0225FAAC - 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 ; =MOD11_0225F698 - 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 ; =MOD11_0225F698 - 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 ; =MOD11_0225F698 - ldrsb r0, [r4, r0] - add r1, r1, r2 - ldrb r0, [r0, r1] - str r0, [sp, #0xc] - cmp r0, #3 - bne _0225B9EC - ldr r0, _0225BAF8 ; =gUnknown21C48B8 - ldr r1, [r0, #0x48] - mov r0, #0x40 - tst r0, r1 - bne _0225BA34 -_0225B9EC: - ldr r3, _0225BAEC ; =MOD11_0225F698 - 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 ; =gUnknown21C48B8 - 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 ; =MOD11_0225F698 - 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 ; =MOD11_0225F698 - 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 MOD11_0225FAAC -_0225BAEC: .word MOD11_0225F698 -_0225BAF0: .word 0x000006EC -_0225BAF4: .word 0x0000069F -_0225BAF8: .word gUnknown21C48B8 -_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 ; =MOD11_0225F698 - 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 MOD11_0225F698 - - 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 ; =MOD11_0225FAAC - 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 ; =MOD11_0225F688 - 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 ; =MOD11_0225F688 - 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 ; =MOD11_0225F688 - 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 ; =MOD11_0225F688 - 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 MOD11_0225FAAC -_0225BC58: .word MOD11_0225F688 -_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 ; =MOD11_0225FAAC - 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 ; =MOD11_0225F6A0 - 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 ; =MOD11_0225F6A0 - 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 ; =MOD11_0225F6A0 - 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 ; =MOD11_0225F6A0 - 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 ; =MOD11_0225F6A0 - 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 MOD11_0225FAAC -_0225BDD8: .word MOD11_0225F6A0 -_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 ; =MOD11_0225F6A0 - 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 MOD11_0225F6A0 - - 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 ; =MOD11_0225FAAC - mov r2, #6 - add r0, r0, r1 - str r0, [sp, #0x48] - ldr r0, _0225C13C ; =MOD11_0225F690 - 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 ; =MOD11_0225F690 - b _0225C140 - .align 2, 0 -_0225C134: .word 0x0000069E -_0225C138: .word MOD11_0225FAAC -_0225C13C: .word MOD11_0225F690 -_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 ; =MOD11_0225F690 - 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 ; =MOD11_0225F690 - 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 MOD11_0225F690 - - 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 ; =MOD11_0225F690 - 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 MOD11_0225F690 - - 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 ; =MOD11_0225FAAC - 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 ; =MOD11_0225F684 - 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 ; =MOD11_0225F684 - 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 ; =MOD11_0225F684 - 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 ; =MOD11_0225F684 - 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 MOD11_0225FAAC -_0225C56C: .word MOD11_0225F684 -_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 ; =gUnknown21C48B8 - 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 gUnknown21C48B8 -_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 ; =MOD11_0225F6B8 - 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 MOD11_0225F6B8 -_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 ; =MOD11_0225FE48 - add r0, r7, #0 - bl FUN_0200C154 - str r0, [r5] - cmp r6, #0 - ldr r0, [r5] - bne _0225CB68 - ldr r2, _0225CBAC ; =MOD11_0225FE38 - 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 ; =MOD11_0225FE30 - 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 MOD11_0225FE48 -_0225CBAC: .word MOD11_0225FE38 -_0225CBB0: .word MOD11_0225FE30 -_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 ; =MOD11_0225FE38 - 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 ; =MOD11_0225FE30 - 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 MOD11_0225FE38 -_0225CC64: .word MOD11_0225FE30 - - 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 ; =MOD11_0225FE38 - 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 ; =MOD11_0225FE30 - 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 MOD11_0225FE38 -_0225CDA8: .word MOD11_0225FE30 -_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 ; =MOD11_0225FE7C - 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 ; =MOD11_0225FE40 - 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 ; =MOD11_0225FE28 - 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 MOD11_0225FE7C -_0225CEA8: .word MOD11_0225FE40 -_0225CEAC: .word MOD11_0225FE28 -_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 ; =MOD11_0225FE40 - 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 ; =MOD11_0225FE28 - 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 ; =MOD11_0225FE40 - 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 ; =MOD11_0225FE28 - 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 MOD11_0225FE40 -_0225D0C0: .word MOD11_0225FE28 - - 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 ; =MOD11_0225FE40 - 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 ; =MOD11_0225FE28 - 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 MOD11_0225FE40 -_0225D1A4: .word MOD11_0225FE28 - - 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 ; =MOD11_0225FE40 - 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 ; =MOD11_0225FE28 - 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 MOD11_0225FE40 -_0225D314: .word MOD11_0225FE28 -_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 ; =MOD11_0225FEB0 - 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 MOD11_0225FEB0 -_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 ; =MOD11_0225FEE4 - 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 MOD11_0225FEE4 -_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 Sin - 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 - - .global MOD11_0225D998 -MOD11_0225D998: ; 0x0225D998 - .byte 0x00, 0x01, 0x00, 0x00 - - .global MOD11_0225D99C -MOD11_0225D99C: ; 0x0225D99C - .byte 0x00, 0x01, 0x01, 0x00 - - .global MOD11_0225D9A0 -MOD11_0225D9A0: ; 0x0225D9A0 - .byte 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04 - - .global MOD11_0225D9A8 -MOD11_0225D9A8: ; 0x0225D9A8 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - - .global MOD11_0225D9B8 -MOD11_0225D9B8: ; 0x0225D9B8 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - - .global MOD11_0225D9C8 -MOD11_0225D9C8: ; 0x0225D9C8 - .byte 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02, 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02 - - .global MOD11_0225D9D8 -MOD11_0225D9D8: ; 0x0225D9D8 - .byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - - .global MOD11_0225D9EC -MOD11_0225D9EC: ; 0x0225D9EC - .byte 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 - - .global MOD11_0225DA04 -MOD11_0225DA04: ; 0x0225DA04 - .byte 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 - - .global MOD11_0225DA20 -MOD11_0225DA20: ; 0x0225DA20 - .byte 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 - - .global MOD11_0225DA40 -MOD11_0225DA40: ; 0x0225DA40 - .byte 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 - - .global MOD11_0225DA68 -MOD11_0225DA68: ; 0x0225DA68 - .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 - - .global MOD11_0225DA90 -MOD11_0225DA90: ; 0x0225DA90 - .byte 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 - - .global MOD11_0225DAB8 -MOD11_0225DAB8: ; 0x0225DAB8 - .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 - - .global MOD11_0225DAE0 -MOD11_0225DAE0: ; 0x0225DAE0 - .byte 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 - - .global MOD11_0225DB34 -MOD11_0225DB34: ; 0x0225DB34 - .byte 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 - - .global MOD11_0225DB88 -MOD11_0225DB88: ; 0x0225DB88 - .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 - - .global MOD11_0225DC18 -MOD11_0225DC18: ; 0x0225DC18 - .byte 0x02, 0x03, 0x04, 0x05 - - .global MOD11_0225DC1C -MOD11_0225DC1C: ; 0x0225DC1C - .byte 0x02, 0x04, 0x06, 0x09, 0x0C, 0x10, 0x14, 0x19, 0x1E, 0x00, 0x00, 0x00 - - .global MOD11_0225DC28 -MOD11_0225DC28: ; 0x0225DC28 - .byte 0x14, 0x0F, 0x0A, 0x0F - - .global MOD11_0225DC2C -MOD11_0225DC2C: ; 0x0225DC2C - .byte 0xC8, 0x50, 0x3C, 0x32, 0x28, 0x00, 0x00, 0x00 - - .global MOD11_0225DC34 -MOD11_0225DC34: ; 0x0225DC34 - .byte 0xFF, 0xFF, 0xFF, 0x7F - .byte 0xFF, 0x3F, 0xFF, 0x1F - - .global MOD11_0225DC3C -MOD11_0225DC3C: ; 0x0225DC3C - .byte 0x01 - - .global MOD11_0225DC3D -MOD11_0225DC3D: ; 0x0225DC3D - .byte 0xC8, 0x05, 0x96 - .byte 0x0C, 0x64, 0x15, 0x50, 0x2A, 0x28, 0x40, 0x14 - - .global MOD11_0225DC48 -MOD11_0225DC48: ; 0x0225DC48 - .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 - - .global MOD11_0225DC60 -MOD11_0225DC60: ; 0x0225DC60 - .byte 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 - - .global MOD11_0225DC90 -MOD11_0225DC90: ; 0x0225DC90 - .byte 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 - - .global MOD11_0225DCA8 -MOD11_0225DCA8: ; 0x0225DCA8 - .byte 0x64, 0x00 - - .global MOD11_0225DCAA -MOD11_0225DCAA: ; 0x0225DCAA - .byte 0x14, 0x00, 0xFA, 0x00, 0x28, 0x00, 0xF4, 0x01, 0x3C, 0x00, 0xE8, 0x03, 0x50, 0x00 - .byte 0xD0, 0x07, 0x64, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - - .global MOD11_0225DCC0 -MOD11_0225DCC0: ; 0x0225DCC0 - .byte 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 - - .global MOD11_0225DCD8 -MOD11_0225DCD8: ; 0x0225DCD8 - .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 - - .global MOD11_0225DCF0 -MOD11_0225DCF0: ; 0x0225DCF0 - .byte 10, 40 - .byte 10, 35 - .byte 10, 30 - .byte 10, 25 - .byte 10, 20 - .byte 10, 15 - .byte 10, 10 - .byte 15, 10 - .byte 20, 10 - .byte 25, 10 - .byte 30, 10 - .byte 35, 10 - .byte 40, 10 - - .global MOD11_0225DD0A -MOD11_0225DD0A: ; 0x0225DD0A - .byte 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 - - .global MOD11_0225DD24 -MOD11_0225DD24: ; 0x0225DD24 - .byte 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 - - .global MOD11_0225DD48 -MOD11_0225DD48: ; 0x0225DD48 - .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 - - .global MOD11_0225DD7C -MOD11_0225DD7C: ; 0x0225DD7C - .byte 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 - - .global MOD11_0225DDB0 -MOD11_0225DDB0: ; 0x0225DDB0 - .byte 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 - - .global MOD11_0225DDE4 -MOD11_0225DDE4: ; 0x0225DDE4 - .word MOD11_02232284 - .word MOD11_0223229C, MOD11_02232318, MOD11_022324D8, MOD11_022326B4 - .word MOD11_02232774, MOD11_022327A0, MOD11_022328BC, MOD11_022329B8 - .word MOD11_02232B68, MOD11_02232D00, MOD11_02232D2C, MOD11_02232DE4 - .word MOD11_02232EAC, MOD11_02232F64, MOD11_022330F4, MOD11_0223312C - .word MOD11_02233158, MOD11_02233198, MOD11_022331CC, MOD11_0223320C - .word MOD11_0223322C, MOD11_02233258, MOD11_022332AC, MOD11_02233328 - .word MOD11_022333D4, MOD11_02233408, MOD11_022334A8, MOD11_022334D4 - .word MOD11_02233538, MOD11_02233598, MOD11_02233604, MOD11_0223363C - .word MOD11_022336EC, MOD11_022337A4, MOD11_022337C0, MOD11_022337E0 - .word MOD11_0223380C, MOD11_022338A0, CalcExperienceGain, MOD11_02233A78 - .word MOD11_02233AB8, MOD11_02233AD0, MOD11_02233AE8, MOD11_02233BC0 - .word MOD11_02233C94, MOD11_02233D34, MOD11_02233D7C, MOD11_02233DCC - .word MOD11_02233DE4, MOD11_02233E54, MOD11_02233F48, MOD11_02234558 - .word MOD11_0223467C, MOD11_022346B8, MOD11_022346F0, MOD11_022347B0 - .word MOD11_022347E4, MOD11_022348FC, MOD11_02234A5C, MOD11_02234A7C - .word MOD11_02234A9C, MOD11_02234ACC, MOD11_02234BE4, MOD11_02234C34 - .word MOD11_02234C60, MOD11_02234C8C, MOD11_02234CC4, MOD11_02234DF4 - .word MOD11_02234E74, MOD11_02234ED8, MOD11_02234F64, MOD11_02234FD4 - .word MOD11_0223500C, MOD11_02235044, MOD11_02235070, MOD11_0223509C - .word MOD11_022350CC, MOD11_02235244, MOD11_02235310, MOD11_022353E4 - .word MOD11_02235434, MOD11_02235514, MOD11_022355F4, MOD11_02235674 - .word MOD11_02235864, MOD11_0223589C, MOD11_022358F4, MOD11_02235A2C - .word MOD11_02235A84, MOD11_02235B40, MOD11_02235C3C, MOD11_02235D38 - .word MOD11_02235E1C, MOD11_02235FCC, MOD11_022360F0, MOD11_022361BC - .word MOD11_02236210, MOD11_022362B4, MOD11_02236404, MOD11_022364FC - .word MOD11_0223665C, MOD11_022366D8, MOD11_02236870, MOD11_02236A64 - .word MOD11_02236AE8, MOD11_02236B6C, MOD11_02236C1C, MOD11_02236C54 - .word MOD11_02236C98, MOD11_02236F5C, MOD11_02237078, MOD11_02237108 - .word MOD11_0223718C, MOD11_02237220, MOD11_02237290, MOD11_02237334 - .word MOD11_02237398, MOD11_022374E0, MOD11_02237584, MOD11_02237670 - .word MOD11_022376D0, MOD11_022377B8, MOD11_02237838, MOD11_0223786C - .word MOD11_02237AC4, MOD11_02237B04, MOD11_02237B98, MOD11_02237CA0 - .word MOD11_02237CE4, MOD11_02237DC0, MOD11_02237E34, MOD11_02237EE8 - .word MOD11_02237F58, MOD11_02237FCC, MOD11_0223800C, MOD11_02238130 - .word MOD11_02238188, MOD11_022382A0, MOD11_02238350, MOD11_022383C4 - .word MOD11_02238424, MOD11_022384E4, MOD11_0223867C, MOD11_022386C4 - .word MOD11_022387C8, MOD11_022388C0, MOD11_02238904, MOD11_022389F8 - .word MOD11_02238A40, MOD11_02238A84, MOD11_02238ABC, MOD11_02238B78 - .word MOD11_02238BCC, MOD11_02238C24, MOD11_02238CA0, MOD11_02238E84 - .word MOD11_02238EB4, MOD11_02238F00, MOD11_02238F4C, MOD11_02238FD0 - .word MOD11_0223907C, MOD11_022391A4, MOD11_02239204, MOD11_0223937C - .word MOD11_022393A4, MOD11_022393E4, MOD11_02239450, MOD11_0223949C - .word MOD11_022394E8, MOD11_02239578, MOD11_022395A0, MOD11_022395CC - .word MOD11_02239614, MOD11_02239678, MOD11_022396A8, MOD11_022396D8 - .word MOD11_02239718, MOD11_02239748, MOD11_02239784, MOD11_022397A8 - .word MOD11_022398B4, MOD11_02239938, MOD11_022399C8, MOD11_02239A00 - .word MOD11_02239A40, MOD11_02239A6C, MOD11_02239A84, MOD11_02239AC4 - .word MOD11_02239B08, MOD11_02239B34, MOD11_02239B60, MOD11_02239B8C - .word MOD11_02239BB8, MOD11_02239BD0, MOD11_02239BE8, MOD11_02239C28 - .word MOD11_02239C54, MOD11_02239C88, MOD11_02239D18, MOD11_02239DA8 - .word MOD11_02239F4C, MOD11_02239FC8, MOD11_0223A014, MOD11_0223A058 - .word MOD11_0223A08C, MOD11_0223A0A4, MOD11_0223A0C0, MOD11_0223A0D8 - .word MOD11_0223A178, MOD11_0223A214, MOD11_0223A270, MOD11_0223A2C0 - .word MOD11_0223A2F0, MOD11_0223A324, MOD11_0223A350, MOD11_0223A37C - .word MOD11_0223A3B4, MOD11_0223A3F8 - - .global MOD11_0225DE150 -MOD11_0225DE150: ; 0x0225E150 - .byte 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x5E - .byte 0x62, 0x00, 0x00, 0x00 - - .global MOD11_0225E15C -MOD11_0225E15C: ; 0x0225E15C - .byte 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2D, 0x32, 0x00, 0x00 - - .global MOD11_0225E168 -MOD11_0225E168: ; 0x0225E168 - .byte 0x04, 0x04, 0x0C, 0x0C, 0x05, 0x05, 0x0F, 0x0B, 0x0F, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225E178 -MOD11_0225E178: ; 0x0225E178 - .byte 0x21 - - .global MOD11_0225E179 -MOD11_0225E179: ; 0x0225E179 - .byte 0x64, 0x24, 0x64 - .byte 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 - - .global MOD11_0225E194 -MOD11_0225E194: ; 0x0225E194 - .word MOD11_0223D2C4 - .word MOD11_0223D308, MOD11_0223D320, MOD11_0223D350, MOD11_0223D380 - .word MOD11_0223D3B8, MOD11_0223DBA4, MOD11_0223DD20, MOD11_0223DE74 - .word MOD11_0223DEB8, MOD11_0223E69C, MOD11_0223F0DC, MOD11_0223F328 - .word MOD11_0223F380, MOD11_0223F4C0, MOD11_0223F620, MOD11_0223F664 - .word MOD11_0223F728, MOD11_0223F770, MOD11_0223F7CC, MOD11_0223F82C - .word MOD11_02240BD8, MOD11_02240BF4, MOD11_02240D40, MOD11_02240E30 - .word MOD11_02240E60, MOD11_02240EE0, MOD11_02240EF8, MOD11_022412F8 - .word MOD11_022414A4, MOD11_022414A8, MOD11_02241734, MOD11_02241730 - .word MOD11_02241834, MOD11_0224185C, MOD11_022419FC, MOD11_02241A44 - .word MOD11_02241A58, MOD11_02241A5C, MOD11_02241B74, MOD11_02241C54 - .word MOD11_02241C70, MOD11_02241CF0, MOD11_02241D28 - - .global MOD11_0225E244 -MOD11_0225E244: ; 0x0225E244 - .byte 0x10, 0x08, 0x04, 0x03 - .byte 0x02, 0x00, 0x00, 0x00 - - .global MOD11_0225E24C -MOD11_0225E24C: ; 0x0225E24C - .byte 0x31, 0x69, 0x79, 0x74, 0x75, 0x78, 0x76, 0x77 - - .global MOD11_0225E254 -MOD11_0225E254: ; 0x0225E254 - .byte 0x90, 0x00, 0x66, 0x00 - .byte 0xA6, 0x00, 0x77, 0x00, 0xE3, 0x00, 0xA5, 0x00 - - .global MOD11_0225E260 -MOD11_0225E260: ; 0x0225E260 - .byte 0x29, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00 - .byte 0x90, 0x00, 0xE3, 0x00 - - .global MOD11_0225E26C -MOD11_0225E26C: ; 0x0225E26C - .byte 0x44, 0x00, 0xF3, 0x00, 0xA8, 0x00, 0x57, 0x01, 0x08, 0x01, 0xC0, 0x01 - - .global MOD11_0225E278 -MOD11_0225E278: ; 0x0225E278 - .byte 0x13, 0x00, 0x54, 0x01, 0x1A, 0x00, 0x88, 0x00, 0x96, 0x00, 0x89, 0x01 - - .global MOD11_0225E284 -MOD11_0225E284: ; 0x0225E284 - .byte 0x0A - - .global MOD11_0225E285 -MOD11_0225E285: ; 0x0225E285 - .byte 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 - - .global MOD11_0225E29E -MOD11_0225E29E: ; 0x0225E29E - .byte 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 - - .global MOD11_0225E2BA -MOD11_0225E2BA: ; 0x0225E2BA - .byte 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 - - .global MOD11_0225E2D8 -MOD11_0225E2D8: ; 0x0225E2D8 - .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 - - .global MOD11_0225E300 -MOD11_0225E300: ; 0x0225E300 - .byte 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 - - .global MOD11_0225E336 -MOD11_0225E336: ; 0x0225E336 - .byte 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 - - .global MOD11_0225E378 -MOD11_0225E378: ; 0x0225E378 - .byte 0x00 - - .global MOD11_0225E379 -MOD11_0225E379: ; 0x0225E379 - .byte 0x05 - - .global MOD11_0225E37A -MOD11_0225E37A: ; 0x0225E37A - .byte 0x05, 0x00 - .byte 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 - - .global MOD11_0225E4C8 -MOD11_0225E4C8: ; 0x0225E4C8 - .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 - - .global MOD11_0225E70C -MOD11_0225E70C: ; 0x0225E70C - .word MOD11_0224CB74, MOD11_0224CB78, MOD11_0224CB98 - .word MOD11_0224CBAC, MOD11_0224CBC0, MOD11_0224CBD4, MOD11_0224CBE8 - .word MOD11_0224CBFC, MOD11_0224CC20, MOD11_0224CC34, MOD11_0224CC48 - .word MOD11_0224CC58, MOD11_0224CC6C, MOD11_0224CC80, MOD11_0224CC90 - .word MOD11_0224CCB8, MOD11_0224CCCC, MOD11_0224CCE0, MOD11_0224CCF4 - .word MOD11_0224CD08, MOD11_0224CD1C, MOD11_0224CD30, MOD11_0224CD44 - .word MOD11_0224CD58, MOD11_0224CD8C, MOD11_0224CDA0, MOD11_0224CDB4 - .word MOD11_0224CDC8, MOD11_0224CDDC, MOD11_0224CDEC, MOD11_0224CE00 - .word MOD11_0224CE14, MOD11_0224CE28, MOD11_0224CE3C, MOD11_0224CE50 - .word MOD11_0224CE60, MOD11_0224CE74, MOD11_0224CE84, MOD11_0224CE98 - .word MOD11_0224CEAC, MOD11_0224CF60, MOD11_0224CFB8, MOD11_0224CFE8 - .word MOD11_0224D064, MOD11_0224D078, MOD11_0224D08C, MOD11_0224D184 - .word MOD11_0224D1A4, MOD11_0224D21C, MOD11_0224D230, MOD11_0224D244 - .word MOD11_0224D280, MOD11_0224D2BC, MOD11_0224D2F8, MOD11_0224D31C - .word MOD11_0224D364, MOD11_0224D374, MOD11_0224D388, MOD11_0224D398 - .word MOD11_0224D3A8, MOD11_0224D3B8, MOD11_0224D3CC, MOD11_0224D3DC - .word MOD11_0224D3F0, MOD11_0224D404, MOD11_0224D418, MOD11_0224D518 - - .global MOD11_0225E818 -MOD11_0225E818: ; 0x0225E818 - .byte 0x06, 0x01, 0x08, 0x03, 0x07, 0x05, 0x00, 0x00 - - .global MOD11_0225E820 -MOD11_0225E820: ; 0x0225E820 - .byte 0x09, 0x17, 0x05, 0x13, 0x0D, 0x11, 0x0F, 0x07 - .byte 0x15, 0x0B, 0x19, 0x0B, 0x0B, 0x00, 0x00, 0x00 - - .global MOD11_0225E830 -MOD11_0225E830: ; 0x0225E830 - .byte 0x0A - - .global MOD11_0225E831 -MOD11_0225E831: ; 0x0225E831 - .byte 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 - - .global MOD11_0225E84A -MOD11_0225E84A: ; 0x0225E84A - .byte 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 - - .global MOD11_0225E86C -MOD11_0225E86C: ; 0x0225E86C - .byte 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 - - .global MOD11_0225E89C -MOD11_0225E89C: ; 0x0225E89C - .byte 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 - - .global MOD11_0225E8D0 -MOD11_0225E8D0: ; 0x0225E8D0 - .byte 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 - - .global MOD11_0225E970 -MOD11_0225E970: ; 0x0225E970 - .byte 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 - - .global MOD11_0225E998 -MOD11_0225E998: ; 0x0225E998 - .byte 0x60, 0x04 - - .global MOD11_0225E99A -MOD11_0225E99A: ; 0x0225E99A - .byte 0x60, 0x00, 0x40, 0x04, 0x60, 0x00, 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00 - .byte 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00 - - .global MOD11_0225E9B0 -MOD11_0225E9B0: ; 0x0225E9B0 - .byte 0x00, 0x00 - - .global MOD11_0225E9B2 -MOD11_0225E9B2: ; 0x0225E9B2 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225E9C8 -MOD11_0225E9C8: ; 0x0225E9C8 - .byte 0x40, 0x04 - - .global MOD11_0225E9CA -MOD11_0225E9CA: ; 0x0225E9CA - .byte 0x20, 0x00, 0x20, 0x04, 0x20, 0x00, 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00 - .byte 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00 - - .global MOD11_0225E9E0 -MOD11_0225E9E0: ; 0x0225E9E0 - .byte 0x00, 0x00 - - .global MOD11_0225E9E2 -MOD11_0225E9E2: ; 0x0225E9E2 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225E9F8 -MOD11_0225E9F8: ; 0x0225E9F8 - .byte 0x80, 0x0D - - .global MOD11_0225E9FA -MOD11_0225E9FA: ; 0x0225E9FA - .byte 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00, 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00 - .byte 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00 - - .global MOD11_0225EA10 -MOD11_0225EA10: ; 0x0225EA10 - .byte 0x00, 0x00 - - .global MOD11_0225EA12 -MOD11_0225EA12: ; 0x0225EA12 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225EA28 -MOD11_0225EA28: ; 0x0225EA28 - .byte 0x80, 0x0A - - .global MOD11_0225EA2A -MOD11_0225EA2A: ; 0x0225EA2A - .byte 0x60, 0x00 - - .global MOD11_0225EA2C -MOD11_0225EA2C: ; 0x0225EA2C - .byte 0x80, 0x0B - - .global MOD11_0225EA2E -MOD11_0225EA2E: ; 0x0225EA2E - .byte 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 - - .global MOD11_0225EA58 -MOD11_0225EA58: ; 0x0225EA58 - .byte 0x00, 0x0D - - .global MOD11_0225EA5A -MOD11_0225EA5A: ; 0x0225EA5A - .byte 0x60, 0x00 - - .global MOD11_0225EA5C -MOD11_0225EA5C: ; 0x0225EA5C - .byte 0x00, 0x00 - - .global MOD11_0225EA5E -MOD11_0225EA5E: ; 0x0225EA5E - .byte 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 - - .global MOD11_0225EA88 -MOD11_0225EA88: ; 0x0225EA88 - .byte 0xE0, 0x04 - - .global MOD11_0225EA8A -MOD11_0225EA8A: ; 0x0225EA8A - .byte 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 - - .global MOD11_0225EAB8 -MOD11_0225EAB8: ; 0x0225EAB8 - .byte 0x40, 0x0A - - .global MOD11_0225EABA -MOD11_0225EABA: ; 0x0225EABA - .byte 0x40, 0x00 - - .global MOD11_0225EABC -MOD11_0225EABC: ; 0x0225EABC - .byte 0x40, 0x0B - - .global MOD11_0225EABE -MOD11_0225EABE: ; 0x0225EABE - .byte 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 - - .global MOD11_0225EAE8 -MOD11_0225EAE8: ; 0x0225EAE8 - .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 - - .global MOD11_0225EB1C -MOD11_0225EB1C: ; 0x0225EB1C - .byte 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 - - .global MOD11_0225EB50 -MOD11_0225EB50: ; 0x0225EB50 - .byte 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 - - .global MOD11_0225EB84 -MOD11_0225EB84: ; 0x0225EB84 - .byte 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 - - .global MOD11_0225EBB8 -MOD11_0225EBB8: ; 0x0225EBB8 - .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 - - .global MOD11_0225EBEC -MOD11_0225EBEC: ; 0x0225EBEC - .byte 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 - - .global MOD11_0225EC20 -MOD11_0225EC20: ; 0x0225EC20 - .byte 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 - - .global MOD11_0225EC54 -MOD11_0225EC54: ; 0x0225EC54 - .byte 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 - - .global MOD11_0225EC88 -MOD11_0225EC88: ; 0x0225EC88 - .byte 0x40, 0x02 - - .global MOD11_0225EC8A -MOD11_0225EC8A: ; 0x0225EC8A - .byte 0xC0, 0x00 - - .global MOD11_0225EC8C -MOD11_0225EC8C: ; 0x0225EC8C - .byte 0x40, 0x03 - - .global MOD11_0225EC8E -MOD11_0225EC8E: ; 0x0225EC8E - .byte 0xC0, 0x00 - - .global MOD11_0225EC90 -MOD11_0225EC90: ; 0x0225EC90 - .byte 0x00, 0x0A - - .global MOD11_0225EC92 -MOD11_0225EC92: ; 0x0225EC92 - .byte 0x40, 0x00 - - .global MOD11_0225EC94 -MOD11_0225EC94: ; 0x0225EC94 - .byte 0x00, 0x0B - - .global MOD11_0225EC96 -MOD11_0225EC96: ; 0x0225EC96 - .byte 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 - - .global MOD11_0225ECE8 -MOD11_0225ECE8: ; 0x0225ECE8 - .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 - - .global MOD11_0225F5A8 -MOD11_0225F5A8: ; 0x0225F5A8 - .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 - - .global MOD11_0225F5C0 -MOD11_0225F5C0: ; 0x0225F5C0 - .byte 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 - - .global MOD11_0225F5D8 -MOD11_0225F5D8: ; 0x0225F5D8 - .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 - - .global MOD11_0225F61C -MOD11_0225F61C: ; 0x0225F61C - .byte 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 - - .global MOD11_0225F684 -MOD11_0225F684: ; 0x0225F684 - .byte 0x00, 0x01, 0x00, 0x00 - - .global MOD11_0225F688 -MOD11_0225F688: ; 0x0225F688 - .byte 0x00, 0x01, 0x06, 0x0C, 0x0D, 0x05, 0x00, 0x00 - - .global MOD11_0225F690 -MOD11_0225F690: ; 0x0225F690 - .byte 0x03, 0x01, 0x00, 0x02, 0x04, 0x04, 0x00, 0x00 - - .global MOD11_0225F698 -MOD11_0225F698: ; 0x0225F698 - .byte 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, 0x00 - - .global MOD11_0225F6A0 -MOD11_0225F6A0: ; 0x0225F6A0 - .byte 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225F6A8 -MOD11_0225F6A8: ; 0x0225F6A8 - .byte 0x2F, 0x02, 0x2C, 0x02, 0x29, 0x02, 0x26, 0x02 - - .global MOD11_0225F6B0 -MOD11_0225F6B0: ; 0x0225F6B0 - .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F6B8 -MOD11_0225F6B8: ; 0x0225F6B8 - .word MOD11_0225C7F0, MOD11_0225C848 - - .global MOD11_0225F6C0 -MOD11_0225F6C0: ; 0x0225F6C0 - .byte 0x38, 0x02, 0x35, 0x02, 0x32, 0x02, 0x3B, 0x02 - - .global MOD11_0225F6C8 -MOD11_0225F6C8: ; 0x0225F6C8 - .byte 0x0D, 0x14, 0x00, 0x1F - - .global MOD11_0225F6CC -MOD11_0225F6CC: ; 0x0225F6CC - .byte 0x04, 0x0B, 0x00, 0x1F - - .global MOD11_0225F6D0 -MOD11_0225F6D0: ; 0x0225F6D0 - .byte 0x18, 0x90, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F6D8 -MOD11_0225F6D8: ; 0x0225F6D8 - .byte 0x28, 0x60, 0x08, 0xF8, 0x70, 0xA8, 0x08, 0xF8, 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F6E4 -MOD11_0225F6E4: ; 0x0225F6E4 - .byte 0x28, 0x80, 0x18, 0xE8 - .byte 0x98, 0xC0, 0x58, 0xA8, 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F6F0 -MOD11_0225F6F0: ; 0x0225F6F0 - .byte 0x00, 0x00, 0x05, 0x00, 0x0A, 0x00 - - .global MOD11_0225F6F6 -MOD11_0225F6F6: ; 0x0225F6F6 - .byte 0x00, 0x00 - .byte 0xC0, 0x00, 0x80, 0x01 - - .global MOD11_0225F6FC -MOD11_0225F6FC: ; 0x0225F6FC - .byte 0x25, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x20, 0x00, 0x21, 0x00, 0x24, 0x00 - .byte 0x22, 0x00, 0x00, 0x00 - - .global MOD11_0225F70C -MOD11_0225F70C: ; 0x0225F70C - .byte 0x04, 0x0F, 0x02, 0x1D, 0x11, 0x17, 0x00, 0x09, 0x11, 0x17, 0x16, 0x1F - .byte 0x12, 0x17, 0x0B, 0x14 - - .global MOD11_0225F71C -MOD11_0225F71C: ; 0x0225F71C - .byte 0x0B, 0x11, 0x00, 0x0E, 0x01, 0x09, 0x11, 0x1F, 0x0B, 0x11, 0x11, 0x1F - .byte 0x01, 0x09, 0x00, 0x0E - - .global MOD11_0225F72C -MOD11_0225F72C: ; 0x0225F72C - .byte 0x20, 0x00, 0x3E, 0x00, 0xA0, 0x00, 0x3E, 0x00, 0x20, 0x00, 0x7E, 0x00 - .byte 0xA0, 0x00, 0x7E, 0x00 - - .global MOD11_0225F73C -MOD11_0225F73C: ; 0x0225F73C - .byte 0x4C, 0x00, 0x3E, 0x00, 0xCC, 0x00, 0x3E, 0x00, 0x4C, 0x00, 0x7E, 0x00 - .byte 0xCC, 0x00, 0x7E, 0x00 - - .global MOD11_0225F74C -MOD11_0225F74C: ; 0x0225F74C - .byte 0x03, 0x09, 0x00, 0x0F, 0x03, 0x09, 0x10, 0x1F, 0x0B, 0x11, 0x00, 0x0F - .byte 0x0B, 0x11, 0x10, 0x1F - - .global MOD11_0225F75C -MOD11_0225F75C: ; 0x0225F75C - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - - .global MOD11_0225F76C -MOD11_0225F76C: ; 0x0225F76C - .byte 0x3C, 0x00, 0x74, 0x00, 0xC4, 0x00, 0x38, 0x00, 0xC4, 0x00, 0x74, 0x00 - .byte 0x3C, 0x00, 0x38, 0x00 - - .global MOD11_0225F77C -MOD11_0225F77C: ; 0x0225F77C - .byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global MOD11_0225F78C -MOD11_0225F78C: ; 0x0225F78C - .byte 0x3B, 0x00, 0x3E, 0x00, 0xBB, 0x00, 0x3E, 0x00, 0x3B, 0x00, 0x7E, 0x00 - .byte 0xBB, 0x00, 0x7E, 0x00 - - .global MOD11_0225F79C -MOD11_0225F79C: ; 0x0225F79C - .byte 0x80, 0x00, 0x4C, 0x00, 0x28, 0x00, 0xA4, 0x00, 0xD8, 0x00, 0xA4, 0x00 - .byte 0x80, 0x00, 0xA8, 0x00 - - .global MOD11_0225F7AC -MOD11_0225F7AC: ; 0x0225F7AC - .byte 0x02, 0x09, 0x00, 0x0F, 0x02, 0x09, 0x10, 0x1F, 0x0A, 0x11, 0x00, 0x0F - .byte 0x0A, 0x11, 0x10, 0x1F - - .global MOD11_0225F7BC -MOD11_0225F7BC: ; 0x0225F7BC - .byte 0x12, 0x17, 0x01, 0x1E - - .global MOD11_0225F7C0 -MOD11_0225F7C0: ; 0x0225F7C0 - .byte 0x01, 0x00, 0x00, 0x00 - - .global MOD11_0225F7C4 -MOD11_0225F7C4: ; 0x0225F7C4 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F7D4 -MOD11_0225F7D4: ; 0x0225F7D4 - .byte 0x3C, 0x00, 0x74, 0x00 - .byte 0xC4, 0x00, 0x20, 0x00, 0xC4, 0x00, 0x74, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x80, 0x00, 0xB2, 0x00 - - .global MOD11_0225F7E8 -MOD11_0225F7E8: ; 0x0225F7E8 - .byte 0x18, 0x90, 0x00, 0xFF, 0x90, 0xC0, 0x00, 0x50, 0x90, 0xC0, 0xB0, 0xFF, 0x98, 0xC0, 0x58, 0xA8 - .byte 0xFF, 0x00, 0x00, 0x00 - - .global MOD11_0225F7FC -MOD11_0225F7FC: ; 0x0225F7FC - .byte 0x0A, 0x11, 0x00, 0x0E, 0x00, 0x09, 0x11, 0x1F, 0x0A, 0x11, 0x11, 0x1F - .byte 0x00, 0x09, 0x00, 0x0E - - .global MOD11_0225F80C -MOD11_0225F80C: ; 0x0225F80C - .byte 0x12, 0x17, 0x01, 0x1E - - .global MOD11_0225F810 -MOD11_0225F810: ; 0x0225F810 - .byte 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - - .global MOD11_0225F824 -MOD11_0225F824: ; 0x0225F824 - .byte 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 - - .global MOD11_0225F83C -MOD11_0225F83C: ; 0x0225F83C - .byte 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 - - .global MOD11_0225F854 -MOD11_0225F854: ; 0x0225F854 - .byte 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 - - .global MOD11_0225F86C -MOD11_0225F86C: ; 0x0225F86C - .byte 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 - - .global MOD11_0225F884 -MOD11_0225F884: ; 0x0225F884 - .byte 0x00, 0x00, 0xC0, 0x00 - .byte 0x80, 0x01, 0x00, 0x00 - - .global MOD11_0225F88C -MOD11_0225F88C: ; 0x0225F88C - .byte 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 - - .global MOD11_0225F8A4 -MOD11_0225F8A4: ; 0x0225F8A4 - .byte 0x00, 0x00, 0xC0, 0x00 - .byte 0x80, 0x01, 0x00, 0x00 - - .global MOD11_0225F8AC -MOD11_0225F8AC: ; 0x0225F8AC - .byte 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 - - .global MOD11_0225F8E0 -MOD11_0225F8E0: ; 0x0225F8E0 - .byte 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 - - .global MOD11_0225F914 -MOD11_0225F914: ; 0x0225F914 - .byte 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 - - .global MOD11_0225F948 -MOD11_0225F948: ; 0x0225F948 - .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 - - .global MOD11_0225F97C -MOD11_0225F97C: ; 0x0225F97C - .byte 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 - - .global MOD11_0225F9EC -MOD11_0225F9EC: ; 0x0225F9EC - .byte 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 - - .global MOD11_0225FAAC -MOD11_0225FAAC: ; 0x0225FAAC - .byte 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 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F6D0, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_022594C8, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F6D0, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_022594DC, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F6E4, MOD11_0225F77C, MOD11_0225FE14, MOD11_0225BB68, 0x00000000, MOD11_02259540, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 - .word MOD11_0225F6E4, MOD11_0225F77C, MOD11_0225FE14, MOD11_0225BB68, 0x00000000, MOD11_02259554, MOD11_02259E64 - - .short 0x0011, 0x00C3, 0x0003, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F83C, MOD11_0225F810, MOD11_0225FE18, MOD11_0225BC60, MOD11_0225BDE0, MOD11_022595C8, MOD11_02259F3C - - .short 0x0011, 0x00C3, 0x0004, 0x0005, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F824, MOD11_0225F7C0, MOD11_0225FE20, MOD11_0225BE30, MOD11_0225C420, MOD11_02259C74, MOD11_0225A060 - - .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259898, MOD11_02259FE4 - - .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259930, MOD11_02259FE4 - - .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_022599CC, MOD11_02259FE4 - - .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259AB0, MOD11_02259FE4 - - .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 - .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259B94, MOD11_02259FE4 - - .global MOD11_0225FE0C -MOD11_0225FE0C: ; 0x0225FE0C - .byte 0x01, 0x04, 0x00, 0x00 - - .global MOD11_0225FE10 -MOD11_0225FE10: ; 0x0225FE10 - .byte 0x01, 0x02, 0x03, 0x04 - - .global MOD11_0225FE14 -MOD11_0225FE14: ; 0x0225FE14 - .byte 0x01, 0x04, 0x00, 0x00 - - .global MOD11_0225FE18 -MOD11_0225FE18: ; 0x0225FE18 - .byte 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00 - - .global MOD11_0225FE20 -MOD11_0225FE20: ; 0x0225FE20 - .byte 0x06, 0x0C, 0x0D, 0x05, 0x04, 0x00, 0x00, 0x00 - - .global MOD11_0225FE28 -MOD11_0225FE28: ; 0x0225FE28 - .byte 0x0E, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00 - - .global MOD11_0225FE30 -MOD11_0225FE30: ; 0x0225FE30 - .byte 0x14, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00 - - .global MOD11_0225FE38 -MOD11_0225FE38: ; 0x0225FE38 - .byte 0x5C, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00 - - .global MOD11_0225FE40 -MOD11_0225FE40: ; 0x0225FE40 - .byte 0x56, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x00, 0x00 - - .global MOD11_0225FE48 -MOD11_0225FE48: ; 0x0225FE48 - .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 - - .global MOD11_0225FE7C -MOD11_0225FE7C: ; 0x0225FE7C - .byte 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 - - .global MOD11_0225FEB0 -MOD11_0225FEB0: ; 0x0225FEB0 - .byte 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 - - .global MOD11_0225FEE4 -MOD11_0225FEE4: ; 0x0225FEE4 - .byte 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 - - .section .data - .global MOD11_0225FF20 -MOD11_0225FF20: ; 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 - - .global MOD11_0225FF84 -MOD11_0225FF84: ; 0x0225FF84 - .byte 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 diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s new file mode 100644 index 00000000..4f33530a --- /dev/null +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -0,0 +1,3485 @@ + .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 ; =MOD11_0225DAE0 + 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 MOD11_0225DAE0 +_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 GetLCRNGSeed + ldr r1, _0222DF0C ; =0x00002430 + str r0, [r4, r1] + add r0, sp, #0x20 + add r1, sp, #0x14 + bl FUN_0201265C + ldr r0, _0222DF10 ; =gUnknown21C48B8 + 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 SetLCRNGSeed + 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 ; =MOD11_0225DA20 + ldr r2, _0222DF18 ; =MOD11_0225D9D8 + 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 ; =MOD11_0225D9EC + 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 String_ctor + 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 ; =MOD11_0225DB88 + 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 ; =MOD11_0225DB88 + 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 ; =MOD11_0225DB88 + 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 gUnknown21C48B8 +_0222DF14: .word MOD11_0225DA20 +_0222DF18: .word MOD11_0225D9D8 +_0222DF1C: .word 0x00100010 +_0222DF20: .word MOD11_0225D9EC +_0222DF24: .word 0x00002224 +_0222DF28: .word 0x00002304 +_0222DF2C: .word MOD11_0225DB88 +_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 SetLCRNGSeed + 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 ; =MOD11_0225DA68 + 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 ; =MOD11_0225D9A8 + 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 ; =MOD11_0225DB34 + 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 MOD11_0225DA68 +_0222E454: .word MOD11_0225D9A8 +_0222E458: .word 0x000023FB +_0222E45C: .word MOD11_0225DB34 +_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 ; =MOD11_0225DC18 + 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 ; =MOD11_0225D9C8 + 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 ; =MOD11_0225D9A0 + b _0222E8CC + nop +_0222E8BC: .word 0x00002420 +_0222E8C0: .word MOD11_0225DC18 +_0222E8C4: .word MOD11_0225D9C8 +_0222E8C8: .word MOD11_0225D9A0 +_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 ; =MOD11_0225D99C + 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 ; =MOD11_0225DC18 + 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 ; =MOD11_0225DC18 + 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 ; =MOD11_0225DC18 + b _0222EC78 + .align 2, 0 +_0222EC6C: .word MOD11_0225D99C +_0222EC70: .word MOD11_0225DC18 +_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 ; =MOD11_0225D998 + 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 MOD11_0225D998 +_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 ; =UNK_021064B8 + mov r0, #2 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _0222F018 ; =UNK_021064C0 + 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 UNK_021064B8 +_0222F018: .word UNK_021064C0 + + thumb_func_start MOD11_0222F01C +MOD11_0222F01C: ; 0x0222F01C + push {r3, r4, r5, lr} + sub sp, #0x50 + add r4, r0, #0 + bl LCRandom + 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 ; =MOD11_0225DA90 + 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 ; =MOD11_0225DAB8 + 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 MOD11_0225DA90 +_0222F0C8: .word MOD11_0225DAB8 +_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 + + .section .rodata + + .global MOD11_0225D998 +MOD11_0225D998: ; 0x0225D998 + .byte 0x00, 0x01, 0x00, 0x00 + + .global MOD11_0225D99C +MOD11_0225D99C: ; 0x0225D99C + .byte 0x00, 0x01, 0x01, 0x00 + + .global MOD11_0225D9A0 +MOD11_0225D9A0: ; 0x0225D9A0 + .byte 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04 + + .global MOD11_0225D9A8 +MOD11_0225D9A8: ; 0x0225D9A8 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + + .global MOD11_0225D9B8 +MOD11_0225D9B8: ; 0x0225D9B8 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + + .global MOD11_0225D9C8 +MOD11_0225D9C8: ; 0x0225D9C8 + .byte 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02, 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02 + + .global MOD11_0225D9D8 +MOD11_0225D9D8: ; 0x0225D9D8 + .byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00 + .byte 0x10, 0x00, 0x00, 0x00 + + .global MOD11_0225D9EC +MOD11_0225D9EC: ; 0x0225D9EC + .byte 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 + + .global MOD11_0225DA04 +MOD11_0225DA04: ; 0x0225DA04 + .byte 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 + + .global MOD11_0225DA20 +MOD11_0225DA20: ; 0x0225DA20 + .byte 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 + + .global MOD11_0225DA40 +MOD11_0225DA40: ; 0x0225DA40 + .byte 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 + + .global MOD11_0225DA68 +MOD11_0225DA68: ; 0x0225DA68 + .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 + + .global MOD11_0225DA90 +MOD11_0225DA90: ; 0x0225DA90 + .byte 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 + + .global MOD11_0225DAB8 +MOD11_0225DAB8: ; 0x0225DAB8 + .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 + + .global MOD11_0225DAE0 +MOD11_0225DAE0: ; 0x0225DAE0 + .byte 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 + + .global MOD11_0225DB34 +MOD11_0225DB34: ; 0x0225DB34 + .byte 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 + + .global MOD11_0225DB88 +MOD11_0225DB88: ; 0x0225DB88 + .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 + + .global MOD11_0225DC18 +MOD11_0225DC18: ; 0x0225DC18 + .byte 0x02, 0x03, 0x04, 0x05 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s new file mode 100644 index 00000000..f66fef5e --- /dev/null +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -0,0 +1,96449 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + 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 ; =MOD11_0225DA40 + 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 ; =MOD11_0225D9B8 + 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 ; =MOD11_0225DA04 + 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 String_ctor + add r6, r0, #0 + ldr r1, _0222F4D4 ; =0x0000039B + add r0, r4, #0 + add r2, r6, #0 + bl ReadMsgDataIntoString + 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 String_dtor + 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 MOD11_0225DA40 +_0222F4CC: .word MOD11_0225D9B8 +_0222F4D0: .word MOD11_0225DA04 +_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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + cmp r0, #0 + beq _0223095A + ldr r0, [sp, #0x38] + mov r1, #0x37 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #5 + bl GetItemAttr + 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 GetItemAttr + cmp r0, #0 + beq _022309F8 + ldr r0, [sp, #0x38] + mov r1, #0x37 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #5 + bl GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + str r0, [sp, #8] +_02230B4A: + ldr r0, [sp, #0x38] + mov r1, #0x2e + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #5 + bl GetItemAttr + 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 GetItemAttr + str r0, [sp, #8] +_02230B8E: + ldr r0, [sp, #0x38] + mov r1, #0x2f + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #5 + bl GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 ; =MOD11_0225DC1C + 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 MOD11_0225DC1C + + 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 String_dtor + 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 NewString_ReadMsgData + 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 String_dtor + 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 NewString_ReadMsgData + add r4, r0, #0 + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x18] + add r2, r4, #0 + bl StringExpandPlaceholders + add r0, r4, #0 + bl String_dtor + 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 ; =MOD11_0225DDE4 + ldr r2, [r2, r3] + blx r2 + pop {r3, pc} + .align 2, 0 +_02232280: .word MOD11_0225DDE4 + + 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 ; =gUnknown21C48B8 + 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 gUnknown21C48B8 +_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 CalcExperienceGain +CalcExperienceGain: ; 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 ; BASE_EXP_YIELD + 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 LCRandom + mov r1, #3 + and r0, r1 + cmp r0, #2 + bge _02233E2C + add r4, r0, #2 + b _02233E36 +_02233E2C: + bl LCRandom + 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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225FF20 + 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 ; =MOD11_0225FF20 + 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 ; =MOD11_0225FF20 + 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 MOD11_0225FF20 +_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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225DC3C + 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 ; =MOD11_0225DC3D + 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 MOD11_0225DC3C +_02236208: .word MOD11_0225DC3D +_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 LCRandom + ldr r1, [r4, r5] + lsl r1, r1, #0x13 + lsr r1, r1, #0x1e + lsl r2, r1, #1 + ldr r1, _02236650 ; =MOD11_0225DC34 + 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 MOD11_0225DC34 +_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 LCRandom + 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 LCRandom + 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 LCRandom + 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 ; BASE_ATK + 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 ; BASE_DEF + 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 LCRandom + 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 ; =MOD11_0225DCA8 + 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 ; =MOD11_0225DCA8 + ldrh r1, [r0, r2] + ldr r0, _02238418 ; =0x0000FFFF + cmp r1, r0 + beq _02238404 + ldr r0, _0223841C ; =MOD11_0225DCAA + 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 MOD11_0225DCA8 +_02238418: .word 0x0000FFFF +_0223841C: .word MOD11_0225DCAA +_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 ; =MOD11_0225DC2C + 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 MOD11_0225DC2C +_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 LCRandom + mov r1, #0xa + bl _s32_div_f + cmp r1, #0 + bne _022392EC + bl LCRandom + 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 ; =MOD11_0225DE150 + str r1, [sp, #0xc] +_022392AA: + ldrb r0, [r3] + cmp r0, r5 + ble _022392C4 + ldr r3, [sp, #0xc] + ldr r5, _02239370 ; =MOD11_0225DD24 + 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 ; =MOD11_0225DC48 + 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 LCRandom + mov r1, #0x64 + bl _s32_div_f + ldr r2, [sp, #0xc] + ldr r0, _02239378 ; =MOD11_0225DE15C + 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 MOD11_0225DE150 +_02239370: .word MOD11_0225DD24 +_02239374: .word MOD11_0225DC48 +_02239378: .word MOD11_0225E15C + + 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 ; =MOD11_0225E168 + 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 MOD11_0225E168 +_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 ; =MOD11_0225DD0A + 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 MOD11_0225DD0A + + 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 ; =MOD11_0225DD48 + ldr r1, [r0, r1] + ldr r0, _022395C8 ; =0x00002174 + str r1, [r4, r0] + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_022395C4: .word MOD11_0225DD48 +_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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 GetItemAttr + 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 GetItemAttr + 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 ; =gGameLanguage + 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 ; =MOD11_0225DCC0 + 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 gGameLanguage +_0223ABB0: .word 0x0000219C +_0223ABB4: .word 0x00002DA4 +_0223ABB8: .word MOD11_0225DCC0 +_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 ; =MOD11_0225DCD8 + 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 ; =MOD11_0225DC60 + 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 ; =MOD11_0225DC90 + 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 ; =gUnknown21C48B8 + 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 MOD11_0225DCD8 +_0223AF58: .word MOD11_0225DC60 +_0223AF5C: .word 0x000003B3 +_0223AF60: .word MOD11_0225DC90 +_0223AF64: .word 0x000003B5 +_0223AF68: .word gUnknown21C48B8 +_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 GetItemAttr + add r5, r0, #0 + add r0, r6, #0 + mov r1, #2 + mov r2, #5 + bl GetItemAttr + 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 CalcBallShakesOnMonCatch + 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 ; =gUnknown21C48B8 + 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 gUnknown21C48B8 +_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 ; =UNK_020FA5FC + 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 UNK_020FA5FC +_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 CalcBallShakesOnMonCatch +CalcBallShakesOnMonCatch: ; 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 ; BASE_CATCH_RATE + bl GetMonBaseStat + ldr r1, _0223C200 ; =0x0000311C + ldr r2, _0223C204 ; =MOD11_0225DCF0 + ldrb r1, [r4, r1] + lsl r1, r1, #1 + ldrb r2, [r2, r1] + mul r2, r0 + add r0, r2, #0 + ldr r2, _0223C208 ; =MOD11_0225DCF0 + 1 + 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 ; BASE_CATCH_RATE + 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 ; =MOD11_0225DC28 + 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 LCRandom + 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 MOD11_0225DCF0 +_0223C208: .word MOD11_0225DCF0 + 1 +_0223C20C: .word 0x00002D74 +_0223C210: .word MOD11_0225DC28 +_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 ; =MOD11_0225DD7C + 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 ; =MOD11_0225DDB0 + 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 NewString_ReadMsgData + add r6, r0, #0 + b _0223CF5C +_0223CF42: + cmp r0, #1 + bne _0223CF52 + ldr r0, [sp, #0x28] + ldr r1, _0223D05C ; =0x000003B1 + bl NewString_ReadMsgData + add r6, r0, #0 + b _0223CF5C +_0223CF52: + ldr r0, [sp, #0x28] + ldr r1, _0223D060 ; =0x000003B2 + bl NewString_ReadMsgData + 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 StringExpandPlaceholders + add r0, r6, #0 + bl String_dtor + 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 MOD11_0225DD7C +_0223D04C: .word 0x00004E32 +_0223D050: .word 0x00004E2D +_0223D054: .word 0x00004E2A +_0223D058: .word MOD11_0225DDB0 +_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 LoadAllItemData + 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 ; =MOD11_0225E194 + 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 MOD11_0225E194 + + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225E178 + lsl r1, r7, #1 + ldrb r0, [r0, r1] + ldr r2, _02240880 ; =MOD11_0225E179 + 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 LCRandom + 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 MOD11_0225E178 +_02240880: .word MOD11_0225E179 +_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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224456C ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224456C ; =MOD11_0225E285 + 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 ; =MOD11_0225E24C + 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 ; =MOD11_0225E24C + 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 MOD11_0225E284 +_0224456C: .word MOD11_0225E285 +_02244570: .word MOD11_0225E24C +_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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225E379 + ldrb r0, [r0, r2] + cmp r0, #2 + bne _022461FC + ldr r0, _02246270 ; =MOD11_0225E37A + 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 ; =MOD11_0225E379 + 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 ; =MOD11_0225E379 + ldrb r0, [r0, r2] + cmp r0, #2 + bne _0224623E + ldr r0, _02246270 ; =MOD11_0225E37A + 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 ; =MOD11_0225E379 + ldrb r0, [r0, r2] + cmp r0, #0x11 + bne _02246268 + ldr r0, _02246270 ; =MOD11_0225E37A + 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 MOD11_0225E379 +_02246270: .word MOD11_0225E37A + + 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 ; =MOD11_0225E378 + add r0, r4, r0 + add r1, r1, r0 + str r1, [sp, #0xc] + ldr r1, _02246598 ; =MOD11_0225E378 + 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 ; =MOD11_0225E378 + 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 MOD11_0225E378 +_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 ; =MOD11_0225E378 + 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 ; =MOD11_0225E378 + 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 MOD11_0225E378 + + 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 ; =MOD11_0225E379 + ldrb r1, [r1, r4] + cmp r1, #2 + bne _022466E2 + ldr r1, _02246710 ; =MOD11_0225E37A + 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 ; =MOD11_0225E379 + ldrb r0, [r0, r1] + cmp r0, #2 + bne _02246706 + ldr r0, _02246710 ; =MOD11_0225E37A + 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 MOD11_0225E379 +_02246710: .word MOD11_0225E37A + + 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 LCRandom + mov r1, #0x70 + bl _u32_div_f + add r6, r1, #0 + mov r0, #0 +_02246B76: + lsl r1, r6, #1 + ldr r2, _02246B90 ; =MOD11_0225E378 + add r1, r6, r1 + ldrb r2, [r2, r1] + strb r2, [r5] + ldr r2, _02246B94 ; =MOD11_0225E379 + ldrb r2, [r2, r1] + strb r2, [r4] + ldr r2, _02246B98 ; =MOD11_0225E37A + ldrb r1, [r2, r1] + strb r1, [r7] + pop {r3, r4, r5, r6, r7, pc} + nop +_02246B90: .word MOD11_0225E378 +_02246B94: .word MOD11_0225E379 +_02246B98: .word MOD11_0225E37A + + thumb_func_start MOD11_02246B9C +MOD11_02246B9C: ; 0x02246B9C + push {r3, r4, r5, r6, r7, lr} + ldr r4, _02246BE4 ; =MOD11_0225E378 + 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 MOD11_0225E378 + + 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 ItemIdIsMail + 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 ItemIdIsMail + 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 LCRandom + 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 LCRandom + 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 ; =MOD11_0225E278 + 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 MOD11_0225E278 + + 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 ; =MOD11_0225E29E + 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 MOD11_0225E29E + + 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 ; =MOD11_0225FF84 + 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 MOD11_0225FF84 + + 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 LCRandom + 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 ; =MOD11_0225E284 + add r1, r0, r2 + ldr r0, _02247D70 ; =0x00002D44 + ldrb r1, [r1, #1] + ldrh r3, [r5, r0] + ldr r0, _02247D6C ; =MOD11_0225E284 + 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 ; =MOD11_0225E284 + add r1, r0, r2 + ldr r0, _02247D78 ; =0x00002D4A + ldrb r1, [r1, #1] + ldrh r3, [r5, r0] + ldr r0, _02247D6C ; =MOD11_0225E284 + 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 LCRandom + 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 LCRandom + 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 MOD11_0225E284 +_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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + mov r1, #0xa + bl _s32_div_f + cmp r1, #3 + bge _02248650 + bl LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 LCRandom + 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 ItemIdIsBerry + 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 LCRandom + 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 GetItemAttr + 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 ; =MOD11_0225E336 + 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 MOD11_0225E336 +_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 ; =MOD11_0225E2BA + 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 ; =MOD11_0225E284 + ldr r2, [sp, #0x7c] + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldr r2, [sp, #0x78] + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldr r2, [sp, #0x74] + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldr r2, [sp, #0x10] + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 ; =MOD11_0225E284 + ldrb r0, [r0, r1] + mul r0, r2 + ldr r2, _0224BDE8 ; =MOD11_0225E285 + 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 MOD11_0225E2BA +_0224BDE0: .word 0x000003DE +_0224BDE4: .word MOD11_0225E284 +_0224BDE8: .word MOD11_0225E285 +_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 LCRandom + 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 LCRandom + ldr r1, _0224C040 ; =MOD11_0225E244 + 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 MOD11_0225E244 + + thumb_func_start MOD11_0224C044 +MOD11_0224C044: ; 0x0224C044 + push {r3, r4} + ldr r4, _0224C074 ; =MOD11_0225E300 + 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 ; =MOD11_0225E300 + 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 MOD11_0225E300 +_0224C078: .word 0x0000FFFE + + thumb_func_start MOD11_0224C07C +MOD11_0224C07C: ; 0x0224C07C + push {r3, r4} + ldr r4, _0224C0AC ; =MOD11_0225E300 + 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 ; =MOD11_0225E300 + 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 MOD11_0225E300 +_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 ; =MOD11_0225E254 + 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 MOD11_0225E254 + + 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 ; =MOD11_0225E26C + 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 MOD11_0225E26C + + 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 GetItemIndexMapping + add r1, r0, #0 + ldr r0, _0224C14C ; =0x00002120 + ldr r0, [r5, r0] + bl GetItemDataPtrFromArray + add r1, r4, #0 + bl GetItemAttr_PreloadedItemData + 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 ; =MOD11_0225E2D8 + 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 MOD11_0225E2D8 + + 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 ; =MOD11_0225E4C8 + lsl r1, r4, #2 + ldr r0, [r0, r1] + pop {r4, pc} + nop +_0224C640: .word 0x007FFFFF +_0224C644: .word MOD11_0225E4C8 + + 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 LCRandom + 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 ; =MOD11_0225E260 + 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 MOD11_0225E260 + + 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 ; =MOD11_0225E818 + 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 MOD11_0225E818 + + 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 ; =MOD11_0225E70C + ldr r2, [r2, r3] + blx r2 +_0224CB4C: + pop {r3, pc} + nop +_0224CB50: .word MOD11_0225E70C + + 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 ; =MOD8_0222D550 + 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 ; =MOD8_0222D550 + 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 ; =MOD8_0222D550 + add r7, r2, #0 + mul r7, r0 + ldr r0, _0224D728 ; =MOD8_0222D552 + mov r2, #2 + ldrsh r0, [r0, r7] + ldrsh r3, [r3, r7] + str r0, [sp] + ldr r0, _0224D72C ; =MOD8_0222D554 + 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 ; =MOD8_0222D538 + 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 MOD8_0222D550 +_0224D728: .word MOD8_0222D552 +_0224D72C: .word MOD8_0222D554 +_0224D730: .word MOD8_0222D538 +_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 ; =MOD11_0225E84A + 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 MOD11_0225E84A +_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 ; =MOD8_0222D550 + 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 ; =MOD8_0222D550 + 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 ; =MOD8_0222D552 + mov r1, #0 + ldrsh r0, [r0, r7] + ldr r3, _0224DCD0 ; =MOD8_0222D550 + add r2, sp, #0x30 + str r0, [sp] + ldr r0, _0224DCD8 ; =MOD8_0222D554 + 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 ; =MOD8_0222D538 + 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 MOD8_0222D550 +_0224DCD4: .word MOD8_0222D552 +_0224DCD8: .word MOD8_0222D554 +_0224DCDC: .word MOD8_0222D538 +_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 ; =MOD8_0222D576 + add r6, r2, #0 + mul r6, r1 + ldr r1, _0224DE40 ; =MOD8_0222D578 + ldr r2, _0224DE44 ; =MOD8_0222D574 + 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 ; =MOD8_0222D538 + 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 MOD8_0222D576 +_0224DE40: .word MOD8_0222D578 +_0224DE44: .word MOD8_0222D574 +_0224DE48: .word MOD8_0222D538 +_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 ; =MOD8_0222D552 + add r2, #0x14 + ldrsh r0, [r0, r1] + str r0, [sp] + ldr r0, _0224F694 ; =MOD8_0222D554 + 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 ; =MOD8_0222D538 + 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 ; =MOD11_0225E84A + 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 ; =MOD11_0225E84A + 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 ; =MOD11_0225E84A + b _0224F6A4 + .align 2, 0 +_0224F690: .word MOD8_0222D552 +_0224F694: .word MOD8_0222D554 +_0224F698: .word MOD8_0222D538 +_0224F69C: .word MOD11_0225E84A +_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 ; =MOD11_0225E818 + 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 ; =MOD8_0222D552 + add r2, #0x14 + ldrsh r0, [r0, r1] + str r0, [sp] + ldr r0, _0224FB60 ; =MOD8_0222D554 + 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 ; =MOD8_0222D538 + 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 ; =MOD11_0225E84A + 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 ; =MOD11_0225E84A + 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 MOD11_0225E818 +_0224FB5C: .word MOD8_0222D552 +_0224FB60: .word MOD8_0222D554 +_0224FB64: .word MOD8_0222D538 +_0224FB68: .word MOD11_0225E84A +_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 ; =MOD11_0225E84A + 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 MOD11_0225E84A + + 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 ; =MOD11_0225E818 + 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 ; =MOD11_0225E84A + 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 MOD11_0225E818 +_0224FFE8: .word MOD11_0225E84A +_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 ; =MOD11_0225E8D0 + 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 MOD11_0225E8D0 +_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 ; =gUnknown21C48B8 + 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 gUnknown21C48B8 +_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 ; BASE_GREAT_MARSH_RATE + bl GetMonBaseStat + ldr r2, _0225100C ; =MOD11_0225E830 + lsl r1, r5, #1 + ldrb r2, [r2, r1] + mul r2, r0 + add r0, r2, #0 + ldr r2, _02251010 ; =MOD11_0225E831 + ldrb r1, [r2, r1] + bl _s32_div_f + add r5, r0, #0 + bl LCRandom + 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 MOD11_0225E830 +_02251010: .word MOD11_0225E831 + + 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 LCRandom + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 GetItemAttr + 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 ; =MOD11_0225E86C + 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 ; =MOD11_0225E820 + 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 MOD11_0225E86C +_022533DC: .word MOD11_0225E820 +_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 ; =MI_CpuFill8 + add r0, #0x80 + mov r1, #0 + mov r2, #8 + bx r3 + nop +_02253A84: .word MI_CpuFill8 + + 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 ; =MOD11_0225E89C + 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 ; =MOD8_0222D550 + ldr r2, _02254400 ; =MOD8_0222D552 + 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 MOD11_0225E89C +_022543FC: .word MOD8_0222D550 +_02254400: .word MOD8_0222D552 + + 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 Sin + 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 ; =MOD11_0225E970 + 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 MOD11_0225E970 + + 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 ; =MOD11_0225E9B0 + 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 ; =MOD11_0225E9B2 + 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 ; =MOD11_0225EA10 + lsl r2, r1, #2 + ldrh r3, [r3, r2] + ldr r1, [r4, #4] + add r3, r6, r3 + add r1, r1, r3 + ldr r3, _02257144 ; =MOD11_0225EA12 + 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 ; =MOD11_0225E9B0 + 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 ; =MOD11_0225E9B2 + 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 ; =MOD11_0225E9E0 + lsl r2, r1, #2 + ldrh r3, [r3, r2] + ldr r1, [r4, #4] + add r3, r6, r3 + add r1, r1, r3 + ldr r3, _0225714C ; =MOD11_0225E9E2 + 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 MOD11_0225E9B0 +_0225713C: .word MOD11_0225E9B2 +_02257140: .word MOD11_0225EA10 +_02257144: .word MOD11_0225EA12 +_02257148: .word MOD11_0225E9E0 +_0225714C: .word MOD11_0225E9E2 + + 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 ; =MOD11_0225E970 + 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 MOD11_0225E970 + + 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 ; =MOD11_0225E970 + 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 MOD11_0225E970 + + 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 String_ctor + mov r1, #0xf1 + str r0, [sp, #0x18] + add r0, r7, #0 + lsl r1, r1, #2 + bl NewString_ReadMsgData + 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 StringExpandPlaceholders + 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 ; =MOD11_0225EC88 + 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 ; =MOD11_0225EC8A + 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 ; =MOD11_0225EC8C + 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 ; =MOD11_0225EC8E + 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 ; =MOD11_0225EC90 + ldr r1, [r4, #4] + lsl r2, r0, #4 + ldr r0, _02257638 ; =MOD11_0225EC8A + 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 ; =MOD11_0225EC92 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + add r5, #0x25 + ldrb r0, [r5] + ldr r4, [r4, #4] + lsl r2, r0, #4 + ldr r0, _02257640 ; =MOD11_0225EC8E + ldrh r1, [r0, r2] + ldr r0, [sp, #0x20] + add r0, r0, r1 + ldr r1, _0225764C ; =MOD11_0225EC94 + ldrh r3, [r1, r2] + mov r1, #0x19 + lsl r1, r1, #0x16 + add r1, r1, r3 + ldr r3, _02257650 ; =MOD11_0225EC96 + add r1, r4, r1 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + add r0, sp, #0x24 + bl FUN_02019178 + ldr r0, [sp, #0x18] + bl String_dtor + ldr r0, [sp, #0x1c] + bl String_dtor + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02257630: .word 0x000E020F +_02257634: .word MOD11_0225EC88 +_02257638: .word MOD11_0225EC8A +_0225763C: .word MOD11_0225EC8C +_02257640: .word MOD11_0225EC8E +_02257644: .word MOD11_0225EC90 +_02257648: .word MOD11_0225EC92 +_0225764C: .word MOD11_0225EC94 +_02257650: .word MOD11_0225EC96 + + 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 ; =MOD11_0225EAB8 + 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 ; =MOD11_0225EABA + 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 ; =MOD11_0225EABC + 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 ; =MOD11_0225EABE + 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 ; =MOD11_0225EAB8 + 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 ; =MOD11_0225EABA + add r0, r7, #0 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + ldr r0, [sp] + ldr r3, _02257754 ; =MOD11_0225EABC + 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 ; =MOD11_0225EABE + 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 MOD11_0225EAB8 +_02257750: .word MOD11_0225EABA +_02257754: .word MOD11_0225EABC +_02257758: .word MOD11_0225EABE + + 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 ; =MOD11_0225EA28 + 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 ; =MOD11_0225EA2A + 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 ; =MOD11_0225EA2C + 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 ; =MOD11_0225EA2E + 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 ; =MOD11_0225EA28 + 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 ; =MOD11_0225EA2A + add r0, r7, #0 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + ldr r0, [sp, #4] + ldr r3, _02257874 ; =MOD11_0225EA2C + 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 ; =MOD11_0225EA2E + 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 MOD11_0225EA28 +_02257870: .word MOD11_0225EA2A +_02257874: .word MOD11_0225EA2C +_02257878: .word MOD11_0225EA2E + + 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 ; =MOD11_0225EA58 + 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 ; =MOD11_0225EA5A + add r0, r4, #0 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + add r5, #0x25 + ldrb r0, [r5] + ldr r3, _02257900 ; =MOD11_0225EA5C + ldr r1, [r6, #4] + lsl r2, r0, #3 + ldrh r3, [r3, r2] + ldr r0, _022578FC ; =MOD11_0225EA5A + add r3, r7, r3 + add r1, r1, r3 + ldrh r0, [r0, r2] + ldr r3, _02257904 ; =MOD11_0225EA5E + 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 MOD11_0225EA58 +_022578FC: .word MOD11_0225EA5A +_02257900: .word MOD11_0225EA5C +_02257904: .word MOD11_0225EA5E + + 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 ; =MOD11_0225E9F8 + 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 ; =MOD11_0225E9FA + 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 MOD11_0225E9F8 +_02257964: .word MOD11_0225E9FA + + 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 ; =MOD11_0225E9C8 + ldrh r3, [r1, r2] + mov r1, #0x19 + lsl r1, r1, #0x16 + add r1, r3, r1 + ldr r3, _022579B4 ; =MOD11_0225E9CA + add r1, r4, r1 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + pop {r3, r4, r5, pc} + nop +_022579B0: .word MOD11_0225E9C8 +_022579B4: .word MOD11_0225E9CA + + 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 ; =MOD11_0225E998 + ldrh r3, [r1, r2] + mov r1, #0x19 + lsl r1, r1, #0x16 + add r1, r3, r1 + ldr r3, _022579F4 ; =MOD11_0225E99A + add r1, r4, r1 + ldrh r2, [r3, r2] + bl MIi_CpuCopy16 + pop {r3, r4, r5, pc} + nop +_022579F0: .word MOD11_0225E998 +_022579F4: .word MOD11_0225E99A + + 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 NewString_ReadMsgData + b _02257A26 +_02257A20: + add r1, #0xc4 + bl NewString_ReadMsgData +_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 String_dtor + 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 String_ctor + 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 NewString_ReadMsgData + str r0, [sp, #0x18] + b _02257B1E +_02257B14: + ldr r0, [sp, #0x20] + add r1, #0xc5 + bl NewString_ReadMsgData + 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 StringExpandPlaceholders + 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 String_dtor + ldr r0, [sp, #0x18] + bl String_dtor + 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 ; =MOD11_0225EA8A + 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 ; =MOD11_0225EA88 + 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 ; =MOD11_0225EA88 + 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 MOD11_0225EA8A +_02257DE4: .word MOD11_0225EA88 + + 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 ; =MOD11_0225ECE8 + lsl r0, r0, #5 + add r0, r1, r0 + bx lr + .align 2, 0 +_02257F68: .word MOD11_0225ECE8 + + 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 ; =MOD11_0225EBEC + pop {r3, pc} +_02257FE6: + ldr r0, _0225800C ; =MOD11_0225EC20 + pop {r3, pc} +_02257FEA: + ldr r0, _02258010 ; =MOD11_0225EAE8 + pop {r3, pc} +_02257FEE: + ldr r0, _02258014 ; =MOD11_0225EB1C + pop {r3, pc} +_02257FF2: + ldr r0, _02258018 ; =MOD11_0225EB84 + pop {r3, pc} +_02257FF6: + ldr r0, _0225801C ; =MOD11_0225EC54 + pop {r3, pc} +_02257FFA: + ldr r0, _02258020 ; =MOD11_0225EBB8 + pop {r3, pc} +_02257FFE: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + nop +_02258008: .word MOD11_0225EBEC +_0225800C: .word MOD11_0225EC20 +_02258010: .word MOD11_0225EAE8 +_02258014: .word MOD11_0225EB1C +_02258018: .word MOD11_0225EB84 +_0225801C: .word MOD11_0225EC54 +_02258020: .word MOD11_0225EBB8 + + 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 ; =MOD11_0225EB50 + pop {r3, pc} +_0225804A: + mov r0, #0 + pop {r3, pc} +_0225804E: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + nop +_02258058: .word MOD11_0225EB50 + + 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 Sin + 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 ; =MOD11_0225F5C0 + 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 ; =MOD11_0225F5A8 + 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 ; =MOD11_0225F5D8 + 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 ; =MOD11_0225F5D8 + 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 MOD11_0225F5C0 +_02258324: .word 0x00004E2D +_02258328: .word MOD11_0225F5A8 +_0225832C: .word 0x00004E2E +_02258330: .word MOD11_0225F5D8 +_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 ; =MOD11_0225F61C + 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 MOD11_0225F61C + + 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 ; =MOD11_0225F97C + 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 MOD11_0225F97C +_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 ; =MOD11_0225F6FC + 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 MOD11_0225F6FC +_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 ; =MOD11_0225FAAC + mul r0, r2 + add r5, r1, r0 +_02258874: + ldr r0, [sp, #0x18] + mov r1, #0x30 + ldr r2, _02258944 ; =MOD11_0225FAAC + 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 MOD11_0225FAAC +_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 ; =MOD11_0225F8AC + 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 ; =MOD11_0225F8E0 + 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 MOD11_0225F8AC +_02258AF4: .word MOD11_0225F8E0 +_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 LCRandom + 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 ; =MOD11_0225FAAC + 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 MOD11_0225FAAC +_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 NewString_ReadMsgData + mov r1, #0xe9 + str r0, [sp, #0x24] + add r0, r4, #0 + lsl r1, r1, #2 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + ldr r1, _0225948C ; =0x000003A5 + add r0, r4, #0 + bl NewString_ReadMsgData + 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 NewString_ReadMsgData + mov r1, #0xe9 + str r0, [sp, #0x24] + add r0, r4, #0 + lsl r1, r1, #2 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + ldr r1, _0225948C ; =0x000003A5 + add r0, r4, #0 + bl NewString_ReadMsgData + str r0, [sp, #0x1c] + b _0225931A +_022592FA: + mov r1, #0xe7 + add r0, r4, #0 + lsl r1, r1, #2 + bl NewString_ReadMsgData + str r0, [sp, #0x24] + ldr r1, _02259494 ; =0x0000039D + add r0, r4, #0 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + ldr r1, _02259498 ; =0x0000039E + add r0, r4, #0 + bl NewString_ReadMsgData + 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 NewString_ReadMsgData + add r4, r0, #0 + mov r1, #1 + b _0225934A +_0225933E: + ldr r1, _0225949C ; =0x0000039F + add r0, r4, #0 + bl NewString_ReadMsgData + 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 String_dtor + ldr r0, [sp, #0x20] + bl String_dtor + ldr r0, [sp, #0x1c] + bl String_dtor + add r0, r4, #0 + bl String_dtor + 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 ; =MOD11_0225F73C + 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 ; =MOD11_0225F73C + 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 ; =MOD11_0225F78C + 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 ; =MOD11_0225F78C + 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 NewString_ReadMsgData + 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 String_dtor + 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 MOD11_0225F73C +_02259870: .word MOD11_0225F78C +_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 NewString_ReadMsgData + add r4, r0, #0 + ldr r1, _0225991C ; =0x000003AD + add r0, r6, #0 + bl NewString_ReadMsgData + 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 String_dtor + add r0, r6, #0 + bl String_dtor + 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 NewString_ReadMsgData + add r4, r0, #0 + ldr r1, _022599B8 ; =0x0000049E + add r0, r6, #0 + bl NewString_ReadMsgData + 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 String_dtor + add r0, r6, #0 + bl String_dtor + 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 NewString_ReadMsgData + str r0, [sp, #0x1c] + ldr r1, _02259A9C ; =0x000004A3 + add r0, r6, #0 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + mov r0, #0x64 + mov r1, #5 + bl String_ctor + add r6, r0, #0 + mov r0, #0x64 + mov r1, #5 + bl String_ctor + 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 StringExpandPlaceholders + ldr r2, [sp, #0x20] + add r0, r4, #0 + add r1, r7, #0 + bl StringExpandPlaceholders + 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 String_dtor + ldr r0, [sp, #0x20] + bl String_dtor + add r0, r6, #0 + bl String_dtor + add r0, r7, #0 + bl String_dtor + 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 NewString_ReadMsgData + str r0, [sp, #0x1c] + ldr r1, _02259B80 ; =0x000004C2 + add r0, r6, #0 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + mov r0, #0x64 + mov r1, #5 + bl String_ctor + add r6, r0, #0 + mov r0, #0x64 + mov r1, #5 + bl String_ctor + 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 StringExpandPlaceholders + ldr r2, [sp, #0x20] + add r0, r4, #0 + add r1, r7, #0 + bl StringExpandPlaceholders + 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 String_dtor + ldr r0, [sp, #0x20] + bl String_dtor + add r0, r6, #0 + bl String_dtor + add r0, r7, #0 + bl String_dtor + 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 NewString_ReadMsgData + mov r1, #0x13 + str r0, [sp, #0x1c] + add r0, r6, #0 + lsl r1, r1, #6 + bl NewString_ReadMsgData + str r0, [sp, #0x20] + mov r0, #0x64 + mov r1, #5 + bl String_ctor + add r6, r0, #0 + mov r0, #0x64 + mov r1, #5 + bl String_ctor + 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 StringExpandPlaceholders + ldr r2, [sp, #0x20] + add r0, r4, #0 + add r1, r7, #0 + bl StringExpandPlaceholders + 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 String_dtor + ldr r0, [sp, #0x20] + bl String_dtor + add r0, r6, #0 + bl String_dtor + add r0, r7, #0 + bl String_dtor + 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 String_ctor + 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 NewString_ReadMsgData + str r0, [sp, #0x24] + b _02259D2A +_02259D0E: + cmp r0, #1 + bne _02259D1E + ldr r0, [sp, #0x2c] + ldr r1, _02259E40 ; =0x000003C3 + bl NewString_ReadMsgData + str r0, [sp, #0x24] + b _02259D2A +_02259D1E: + mov r1, #0xf1 + ldr r0, [sp, #0x2c] + lsl r1, r1, #2 + bl NewString_ReadMsgData + 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 StringExpandPlaceholders + 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 ; =MOD11_0225F7D4 + 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 ; =MOD11_0225F7D4 + 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 String_dtor + 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 String_dtor + ldr r0, [sp, #0x2c] + ldr r1, _02259E54 ; =0x000003A2 + bl NewString_ReadMsgData + 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 ; =MOD11_0225F7C4 + 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 String_dtor + 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 MOD11_0225F7D4 +_02259E54: .word 0x000003A2 +_02259E58: .word 0x000A0B0C +_02259E5C: .word MOD11_0225F7C4 +_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 ; =MOD11_0225F854 + 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 ; =MOD11_0225F70C + 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 ; =MOD11_0225F79C + 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 MOD11_0225F854 +_02259F30: .word 0x000006B4 +_02259F34: .word MOD11_0225F70C +_02259F38: .word MOD11_0225F79C + + 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 ; =MOD11_0225F86C + lsl r0, r0, #2 + add r7, r3, r2 + ldr r2, _02259FD0 ; =MOD11_0225F7AC + add r6, r2, r0 + b _02259FA6 +_02259FA2: + ldr r7, _02259FD4 ; =MOD11_0225F884 + ldr r6, _02259FD8 ; =MOD11_0225F7BC +_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 MOD11_0225F86C +_02259FD0: .word MOD11_0225F7AC +_02259FD4: .word MOD11_0225F884 +_02259FD8: .word MOD11_0225F7BC +_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 ; =MOD11_0225F6F6 + str r1, [r5, r0] + ldr r1, _0225A054 ; =MOD11_0225F6CC + b _0225A028 +_0225A022: + ldr r1, _0225A058 ; =MOD11_0225F6F0 + str r1, [r5, r0] + ldr r1, _0225A05C ; =MOD11_0225F6C8 +_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 MOD11_0225F6F6 +_0225A054: .word MOD11_0225F6CC +_0225A058: .word MOD11_0225F6F0 +_0225A05C: .word MOD11_0225F6C8 + + 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 ; =MOD11_0225F8A4 + ldr r1, _0225A154 ; =0x000006B4 + ldr r2, _0225A158 ; =MOD11_0225F80C + 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 MOD11_0225F8A4 +_0225A154: .word 0x000006B4 +_0225A158: .word MOD11_0225F80C +_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 ; =MOD11_0225F948 + 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 ; =MOD11_0225F76C + 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 MOD11_0225F948 +_0225A3E8: .word MOD11_0225F76C +_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 NewString_ReadMsgData + str r0, [sp, #0x28] + ldr r0, [r7] + bl MOD11_02230138 + str r0, [sp, #0x24] + mov r0, #0x10 + mov r1, #5 + bl String_ctor + str r0, [sp, #0x30] + ldr r1, _0225A960 ; =0x000003A9 + add r0, r4, #0 + bl NewString_ReadMsgData + 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 GetMoveName + 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 String_dtor +_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 StringExpandPlaceholders + 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 String_dtor + ldr r0, [sp, #0x2c] + bl String_dtor + ldr r0, [sp, #0x30] + bl String_dtor + 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 ; =MOD11_0225F914 + 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 ; =MOD11_0225F72C + 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 ; =MOD11_0225F72C + 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 MOD11_0225F914 +_0225AAB0: .word 0x00000604 +_0225AAB4: .word 0x00004E35 +_0225AAB8: .word MOD11_0225F72C + + 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 ; =MOD11_0225F6A8 + lsl r2, r4, #1 + add r1, r1, r2 + ldr r2, _0225ABA0 ; =MOD11_0225F74C + 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 MOD11_0225F6A8 +_0225ABA0: .word MOD11_0225F74C + + thumb_func_start MOD11_0225ABA4 +MOD11_0225ABA4: ; 0x0225ABA4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r1, #0 + ldr r1, _0225AC50 ; =MOD11_0225F684 + 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 ; =MOD11_0225F6C0 + lsl r1, r4, #1 + add r1, r2, r1 + ldr r3, _0225AC58 ; =MOD11_0225F71C + 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 ; =MOD11_0225F71C + 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 MOD11_0225F684 +_0225AC54: .word MOD11_0225F6C0 +_0225AC58: .word MOD11_0225F71C +_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 ; =MOD11_0225F9EC + 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 MOD11_0225F9EC + + 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 ; =MOD11_0225F88C + lsl r3, r5, #2 + add r1, r1, r2 + ldr r2, _0225B3C8 ; =MOD11_0225F7FC + 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 ; =MOD11_0225F88C + lsl r3, r5, #2 + add r1, r1, r2 + ldr r2, _0225B3C8 ; =MOD11_0225F7FC + 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 MOD11_0225F88C +_0225B3C8: .word MOD11_0225F7FC +_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 ; =MOD11_0225FAAC + 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 MOD11_0225FAAC +_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 ; =UNK_021C48F8 + 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 UNK_021C48F8 + + 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 ; =MOD11_0225FAAC + 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 ; =gUnknown21C48B8 + 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 MOD11_0225FAAC +_0225B918: .word gUnknown21C48B8 +_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 ; =MOD11_0225FAAC + 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 ; =MOD11_0225F698 + 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 ; =MOD11_0225F698 + 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 ; =MOD11_0225F698 + ldrsb r0, [r4, r0] + add r1, r1, r2 + ldrb r0, [r0, r1] + str r0, [sp, #0xc] + cmp r0, #3 + bne _0225B9EC + ldr r0, _0225BAF8 ; =gUnknown21C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x40 + tst r0, r1 + bne _0225BA34 +_0225B9EC: + ldr r3, _0225BAEC ; =MOD11_0225F698 + 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 ; =gUnknown21C48B8 + 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 ; =MOD11_0225F698 + 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 ; =MOD11_0225F698 + 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 MOD11_0225FAAC +_0225BAEC: .word MOD11_0225F698 +_0225BAF0: .word 0x000006EC +_0225BAF4: .word 0x0000069F +_0225BAF8: .word gUnknown21C48B8 +_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 ; =MOD11_0225F698 + 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 MOD11_0225F698 + + 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 ; =MOD11_0225FAAC + 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 ; =MOD11_0225F688 + 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 ; =MOD11_0225F688 + 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 ; =MOD11_0225F688 + 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 ; =MOD11_0225F688 + 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 MOD11_0225FAAC +_0225BC58: .word MOD11_0225F688 +_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 ; =MOD11_0225FAAC + 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 ; =MOD11_0225F6A0 + 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 ; =MOD11_0225F6A0 + 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 ; =MOD11_0225F6A0 + 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 ; =MOD11_0225F6A0 + 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 ; =MOD11_0225F6A0 + 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 MOD11_0225FAAC +_0225BDD8: .word MOD11_0225F6A0 +_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 ; =MOD11_0225F6A0 + 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 MOD11_0225F6A0 + + 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 ; =MOD11_0225FAAC + mov r2, #6 + add r0, r0, r1 + str r0, [sp, #0x48] + ldr r0, _0225C13C ; =MOD11_0225F690 + 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 ; =MOD11_0225F690 + b _0225C140 + .align 2, 0 +_0225C134: .word 0x0000069E +_0225C138: .word MOD11_0225FAAC +_0225C13C: .word MOD11_0225F690 +_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 ; =MOD11_0225F690 + 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 ; =MOD11_0225F690 + 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 MOD11_0225F690 + + 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 ; =MOD11_0225F690 + 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 MOD11_0225F690 + + 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 ; =MOD11_0225FAAC + 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 ; =MOD11_0225F684 + 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 ; =MOD11_0225F684 + 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 ; =MOD11_0225F684 + 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 ; =MOD11_0225F684 + 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 MOD11_0225FAAC +_0225C56C: .word MOD11_0225F684 +_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 ; =gUnknown21C48B8 + 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 gUnknown21C48B8 +_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 ; =MOD11_0225F6B8 + 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 MOD11_0225F6B8 +_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 ; =MOD11_0225FE48 + add r0, r7, #0 + bl FUN_0200C154 + str r0, [r5] + cmp r6, #0 + ldr r0, [r5] + bne _0225CB68 + ldr r2, _0225CBAC ; =MOD11_0225FE38 + 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 ; =MOD11_0225FE30 + 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 MOD11_0225FE48 +_0225CBAC: .word MOD11_0225FE38 +_0225CBB0: .word MOD11_0225FE30 +_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 ; =MOD11_0225FE38 + 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 ; =MOD11_0225FE30 + 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 MOD11_0225FE38 +_0225CC64: .word MOD11_0225FE30 + + 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 ; =MOD11_0225FE38 + 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 ; =MOD11_0225FE30 + 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 MOD11_0225FE38 +_0225CDA8: .word MOD11_0225FE30 +_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 ; =MOD11_0225FE7C + 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 ; =MOD11_0225FE40 + 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 ; =MOD11_0225FE28 + 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 MOD11_0225FE7C +_0225CEA8: .word MOD11_0225FE40 +_0225CEAC: .word MOD11_0225FE28 +_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 ; =MOD11_0225FE40 + 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 ; =MOD11_0225FE28 + 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 ; =MOD11_0225FE40 + 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 ; =MOD11_0225FE28 + 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 MOD11_0225FE40 +_0225D0C0: .word MOD11_0225FE28 + + 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 ; =MOD11_0225FE40 + 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 ; =MOD11_0225FE28 + 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 MOD11_0225FE40 +_0225D1A4: .word MOD11_0225FE28 + + 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 ; =MOD11_0225FE40 + 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 ; =MOD11_0225FE28 + 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 MOD11_0225FE40 +_0225D314: .word MOD11_0225FE28 +_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 ; =MOD11_0225FEB0 + 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 MOD11_0225FEB0 +_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 ; =MOD11_0225FEE4 + 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 MOD11_0225FEE4 +_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 Sin + 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 + + .global MOD11_0225DC1C +MOD11_0225DC1C: ; 0x0225DC1C + .byte 0x02, 0x04, 0x06, 0x09, 0x0C, 0x10, 0x14, 0x19, 0x1E, 0x00, 0x00, 0x00 + + .global MOD11_0225DC28 +MOD11_0225DC28: ; 0x0225DC28 + .byte 0x14, 0x0F, 0x0A, 0x0F + + .global MOD11_0225DC2C +MOD11_0225DC2C: ; 0x0225DC2C + .byte 0xC8, 0x50, 0x3C, 0x32, 0x28, 0x00, 0x00, 0x00 + + .global MOD11_0225DC34 +MOD11_0225DC34: ; 0x0225DC34 + .byte 0xFF, 0xFF, 0xFF, 0x7F + .byte 0xFF, 0x3F, 0xFF, 0x1F + + .global MOD11_0225DC3C +MOD11_0225DC3C: ; 0x0225DC3C + .byte 0x01 + + .global MOD11_0225DC3D +MOD11_0225DC3D: ; 0x0225DC3D + .byte 0xC8, 0x05, 0x96 + .byte 0x0C, 0x64, 0x15, 0x50, 0x2A, 0x28, 0x40, 0x14 + + .global MOD11_0225DC48 +MOD11_0225DC48: ; 0x0225DC48 + .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 + + .global MOD11_0225DC60 +MOD11_0225DC60: ; 0x0225DC60 + .byte 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 + + .global MOD11_0225DC90 +MOD11_0225DC90: ; 0x0225DC90 + .byte 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 + + .global MOD11_0225DCA8 +MOD11_0225DCA8: ; 0x0225DCA8 + .byte 0x64, 0x00 + + .global MOD11_0225DCAA +MOD11_0225DCAA: ; 0x0225DCAA + .byte 0x14, 0x00, 0xFA, 0x00, 0x28, 0x00, 0xF4, 0x01, 0x3C, 0x00, 0xE8, 0x03, 0x50, 0x00 + .byte 0xD0, 0x07, 0x64, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + + .global MOD11_0225DCC0 +MOD11_0225DCC0: ; 0x0225DCC0 + .byte 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 + + .global MOD11_0225DCD8 +MOD11_0225DCD8: ; 0x0225DCD8 + .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 + + .global MOD11_0225DCF0 +MOD11_0225DCF0: ; 0x0225DCF0 + .byte 10, 40 + .byte 10, 35 + .byte 10, 30 + .byte 10, 25 + .byte 10, 20 + .byte 10, 15 + .byte 10, 10 + .byte 15, 10 + .byte 20, 10 + .byte 25, 10 + .byte 30, 10 + .byte 35, 10 + .byte 40, 10 + + .global MOD11_0225DD0A +MOD11_0225DD0A: ; 0x0225DD0A + .byte 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 + + .global MOD11_0225DD24 +MOD11_0225DD24: ; 0x0225DD24 + .byte 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 + + .global MOD11_0225DD48 +MOD11_0225DD48: ; 0x0225DD48 + .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 + + .global MOD11_0225DD7C +MOD11_0225DD7C: ; 0x0225DD7C + .byte 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 + + .global MOD11_0225DDB0 +MOD11_0225DDB0: ; 0x0225DDB0 + .byte 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 + + .global MOD11_0225DDE4 +MOD11_0225DDE4: ; 0x0225DDE4 + .word MOD11_02232284 + .word MOD11_0223229C, MOD11_02232318, MOD11_022324D8, MOD11_022326B4 + .word MOD11_02232774, MOD11_022327A0, MOD11_022328BC, MOD11_022329B8 + .word MOD11_02232B68, MOD11_02232D00, MOD11_02232D2C, MOD11_02232DE4 + .word MOD11_02232EAC, MOD11_02232F64, MOD11_022330F4, MOD11_0223312C + .word MOD11_02233158, MOD11_02233198, MOD11_022331CC, MOD11_0223320C + .word MOD11_0223322C, MOD11_02233258, MOD11_022332AC, MOD11_02233328 + .word MOD11_022333D4, MOD11_02233408, MOD11_022334A8, MOD11_022334D4 + .word MOD11_02233538, MOD11_02233598, MOD11_02233604, MOD11_0223363C + .word MOD11_022336EC, MOD11_022337A4, MOD11_022337C0, MOD11_022337E0 + .word MOD11_0223380C, MOD11_022338A0, CalcExperienceGain, MOD11_02233A78 + .word MOD11_02233AB8, MOD11_02233AD0, MOD11_02233AE8, MOD11_02233BC0 + .word MOD11_02233C94, MOD11_02233D34, MOD11_02233D7C, MOD11_02233DCC + .word MOD11_02233DE4, MOD11_02233E54, MOD11_02233F48, MOD11_02234558 + .word MOD11_0223467C, MOD11_022346B8, MOD11_022346F0, MOD11_022347B0 + .word MOD11_022347E4, MOD11_022348FC, MOD11_02234A5C, MOD11_02234A7C + .word MOD11_02234A9C, MOD11_02234ACC, MOD11_02234BE4, MOD11_02234C34 + .word MOD11_02234C60, MOD11_02234C8C, MOD11_02234CC4, MOD11_02234DF4 + .word MOD11_02234E74, MOD11_02234ED8, MOD11_02234F64, MOD11_02234FD4 + .word MOD11_0223500C, MOD11_02235044, MOD11_02235070, MOD11_0223509C + .word MOD11_022350CC, MOD11_02235244, MOD11_02235310, MOD11_022353E4 + .word MOD11_02235434, MOD11_02235514, MOD11_022355F4, MOD11_02235674 + .word MOD11_02235864, MOD11_0223589C, MOD11_022358F4, MOD11_02235A2C + .word MOD11_02235A84, MOD11_02235B40, MOD11_02235C3C, MOD11_02235D38 + .word MOD11_02235E1C, MOD11_02235FCC, MOD11_022360F0, MOD11_022361BC + .word MOD11_02236210, MOD11_022362B4, MOD11_02236404, MOD11_022364FC + .word MOD11_0223665C, MOD11_022366D8, MOD11_02236870, MOD11_02236A64 + .word MOD11_02236AE8, MOD11_02236B6C, MOD11_02236C1C, MOD11_02236C54 + .word MOD11_02236C98, MOD11_02236F5C, MOD11_02237078, MOD11_02237108 + .word MOD11_0223718C, MOD11_02237220, MOD11_02237290, MOD11_02237334 + .word MOD11_02237398, MOD11_022374E0, MOD11_02237584, MOD11_02237670 + .word MOD11_022376D0, MOD11_022377B8, MOD11_02237838, MOD11_0223786C + .word MOD11_02237AC4, MOD11_02237B04, MOD11_02237B98, MOD11_02237CA0 + .word MOD11_02237CE4, MOD11_02237DC0, MOD11_02237E34, MOD11_02237EE8 + .word MOD11_02237F58, MOD11_02237FCC, MOD11_0223800C, MOD11_02238130 + .word MOD11_02238188, MOD11_022382A0, MOD11_02238350, MOD11_022383C4 + .word MOD11_02238424, MOD11_022384E4, MOD11_0223867C, MOD11_022386C4 + .word MOD11_022387C8, MOD11_022388C0, MOD11_02238904, MOD11_022389F8 + .word MOD11_02238A40, MOD11_02238A84, MOD11_02238ABC, MOD11_02238B78 + .word MOD11_02238BCC, MOD11_02238C24, MOD11_02238CA0, MOD11_02238E84 + .word MOD11_02238EB4, MOD11_02238F00, MOD11_02238F4C, MOD11_02238FD0 + .word MOD11_0223907C, MOD11_022391A4, MOD11_02239204, MOD11_0223937C + .word MOD11_022393A4, MOD11_022393E4, MOD11_02239450, MOD11_0223949C + .word MOD11_022394E8, MOD11_02239578, MOD11_022395A0, MOD11_022395CC + .word MOD11_02239614, MOD11_02239678, MOD11_022396A8, MOD11_022396D8 + .word MOD11_02239718, MOD11_02239748, MOD11_02239784, MOD11_022397A8 + .word MOD11_022398B4, MOD11_02239938, MOD11_022399C8, MOD11_02239A00 + .word MOD11_02239A40, MOD11_02239A6C, MOD11_02239A84, MOD11_02239AC4 + .word MOD11_02239B08, MOD11_02239B34, MOD11_02239B60, MOD11_02239B8C + .word MOD11_02239BB8, MOD11_02239BD0, MOD11_02239BE8, MOD11_02239C28 + .word MOD11_02239C54, MOD11_02239C88, MOD11_02239D18, MOD11_02239DA8 + .word MOD11_02239F4C, MOD11_02239FC8, MOD11_0223A014, MOD11_0223A058 + .word MOD11_0223A08C, MOD11_0223A0A4, MOD11_0223A0C0, MOD11_0223A0D8 + .word MOD11_0223A178, MOD11_0223A214, MOD11_0223A270, MOD11_0223A2C0 + .word MOD11_0223A2F0, MOD11_0223A324, MOD11_0223A350, MOD11_0223A37C + .word MOD11_0223A3B4, MOD11_0223A3F8 + + .global MOD11_0225DE150 +MOD11_0225DE150: ; 0x0225E150 + .byte 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x5E + .byte 0x62, 0x00, 0x00, 0x00 + + .global MOD11_0225E15C +MOD11_0225E15C: ; 0x0225E15C + .byte 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2D, 0x32, 0x00, 0x00 + + .global MOD11_0225E168 +MOD11_0225E168: ; 0x0225E168 + .byte 0x04, 0x04, 0x0C, 0x0C, 0x05, 0x05, 0x0F, 0x0B, 0x0F, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225E178 +MOD11_0225E178: ; 0x0225E178 + .byte 0x21 + + .global MOD11_0225E179 +MOD11_0225E179: ; 0x0225E179 + .byte 0x64, 0x24, 0x64 + .byte 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 + + .global MOD11_0225E194 +MOD11_0225E194: ; 0x0225E194 + .word MOD11_0223D2C4 + .word MOD11_0223D308, MOD11_0223D320, MOD11_0223D350, MOD11_0223D380 + .word MOD11_0223D3B8, MOD11_0223DBA4, MOD11_0223DD20, MOD11_0223DE74 + .word MOD11_0223DEB8, MOD11_0223E69C, MOD11_0223F0DC, MOD11_0223F328 + .word MOD11_0223F380, MOD11_0223F4C0, MOD11_0223F620, MOD11_0223F664 + .word MOD11_0223F728, MOD11_0223F770, MOD11_0223F7CC, MOD11_0223F82C + .word MOD11_02240BD8, MOD11_02240BF4, MOD11_02240D40, MOD11_02240E30 + .word MOD11_02240E60, MOD11_02240EE0, MOD11_02240EF8, MOD11_022412F8 + .word MOD11_022414A4, MOD11_022414A8, MOD11_02241734, MOD11_02241730 + .word MOD11_02241834, MOD11_0224185C, MOD11_022419FC, MOD11_02241A44 + .word MOD11_02241A58, MOD11_02241A5C, MOD11_02241B74, MOD11_02241C54 + .word MOD11_02241C70, MOD11_02241CF0, MOD11_02241D28 + + .global MOD11_0225E244 +MOD11_0225E244: ; 0x0225E244 + .byte 0x10, 0x08, 0x04, 0x03 + .byte 0x02, 0x00, 0x00, 0x00 + + .global MOD11_0225E24C +MOD11_0225E24C: ; 0x0225E24C + .byte 0x31, 0x69, 0x79, 0x74, 0x75, 0x78, 0x76, 0x77 + + .global MOD11_0225E254 +MOD11_0225E254: ; 0x0225E254 + .byte 0x90, 0x00, 0x66, 0x00 + .byte 0xA6, 0x00, 0x77, 0x00, 0xE3, 0x00, 0xA5, 0x00 + + .global MOD11_0225E260 +MOD11_0225E260: ; 0x0225E260 + .byte 0x29, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00 + .byte 0x90, 0x00, 0xE3, 0x00 + + .global MOD11_0225E26C +MOD11_0225E26C: ; 0x0225E26C + .byte 0x44, 0x00, 0xF3, 0x00, 0xA8, 0x00, 0x57, 0x01, 0x08, 0x01, 0xC0, 0x01 + + .global MOD11_0225E278 +MOD11_0225E278: ; 0x0225E278 + .byte 0x13, 0x00, 0x54, 0x01, 0x1A, 0x00, 0x88, 0x00, 0x96, 0x00, 0x89, 0x01 + + .global MOD11_0225E284 +MOD11_0225E284: ; 0x0225E284 + .byte 0x0A + + .global MOD11_0225E285 +MOD11_0225E285: ; 0x0225E285 + .byte 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 + + .global MOD11_0225E29E +MOD11_0225E29E: ; 0x0225E29E + .byte 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 + + .global MOD11_0225E2BA +MOD11_0225E2BA: ; 0x0225E2BA + .byte 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 + + .global MOD11_0225E2D8 +MOD11_0225E2D8: ; 0x0225E2D8 + .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 + + .global MOD11_0225E300 +MOD11_0225E300: ; 0x0225E300 + .byte 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 + + .global MOD11_0225E336 +MOD11_0225E336: ; 0x0225E336 + .byte 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 + + .global MOD11_0225E378 +MOD11_0225E378: ; 0x0225E378 + .byte 0x00 + + .global MOD11_0225E379 +MOD11_0225E379: ; 0x0225E379 + .byte 0x05 + + .global MOD11_0225E37A +MOD11_0225E37A: ; 0x0225E37A + .byte 0x05, 0x00 + .byte 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 + + .global MOD11_0225E4C8 +MOD11_0225E4C8: ; 0x0225E4C8 + .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 + + .global MOD11_0225E70C +MOD11_0225E70C: ; 0x0225E70C + .word MOD11_0224CB74, MOD11_0224CB78, MOD11_0224CB98 + .word MOD11_0224CBAC, MOD11_0224CBC0, MOD11_0224CBD4, MOD11_0224CBE8 + .word MOD11_0224CBFC, MOD11_0224CC20, MOD11_0224CC34, MOD11_0224CC48 + .word MOD11_0224CC58, MOD11_0224CC6C, MOD11_0224CC80, MOD11_0224CC90 + .word MOD11_0224CCB8, MOD11_0224CCCC, MOD11_0224CCE0, MOD11_0224CCF4 + .word MOD11_0224CD08, MOD11_0224CD1C, MOD11_0224CD30, MOD11_0224CD44 + .word MOD11_0224CD58, MOD11_0224CD8C, MOD11_0224CDA0, MOD11_0224CDB4 + .word MOD11_0224CDC8, MOD11_0224CDDC, MOD11_0224CDEC, MOD11_0224CE00 + .word MOD11_0224CE14, MOD11_0224CE28, MOD11_0224CE3C, MOD11_0224CE50 + .word MOD11_0224CE60, MOD11_0224CE74, MOD11_0224CE84, MOD11_0224CE98 + .word MOD11_0224CEAC, MOD11_0224CF60, MOD11_0224CFB8, MOD11_0224CFE8 + .word MOD11_0224D064, MOD11_0224D078, MOD11_0224D08C, MOD11_0224D184 + .word MOD11_0224D1A4, MOD11_0224D21C, MOD11_0224D230, MOD11_0224D244 + .word MOD11_0224D280, MOD11_0224D2BC, MOD11_0224D2F8, MOD11_0224D31C + .word MOD11_0224D364, MOD11_0224D374, MOD11_0224D388, MOD11_0224D398 + .word MOD11_0224D3A8, MOD11_0224D3B8, MOD11_0224D3CC, MOD11_0224D3DC + .word MOD11_0224D3F0, MOD11_0224D404, MOD11_0224D418, MOD11_0224D518 + + .global MOD11_0225E818 +MOD11_0225E818: ; 0x0225E818 + .byte 0x06, 0x01, 0x08, 0x03, 0x07, 0x05, 0x00, 0x00 + + .global MOD11_0225E820 +MOD11_0225E820: ; 0x0225E820 + .byte 0x09, 0x17, 0x05, 0x13, 0x0D, 0x11, 0x0F, 0x07 + .byte 0x15, 0x0B, 0x19, 0x0B, 0x0B, 0x00, 0x00, 0x00 + + .global MOD11_0225E830 +MOD11_0225E830: ; 0x0225E830 + .byte 0x0A + + .global MOD11_0225E831 +MOD11_0225E831: ; 0x0225E831 + .byte 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 + + .global MOD11_0225E84A +MOD11_0225E84A: ; 0x0225E84A + .byte 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 + + .global MOD11_0225E86C +MOD11_0225E86C: ; 0x0225E86C + .byte 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 + + .global MOD11_0225E89C +MOD11_0225E89C: ; 0x0225E89C + .byte 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 + + .global MOD11_0225E8D0 +MOD11_0225E8D0: ; 0x0225E8D0 + .byte 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 + + .global MOD11_0225E970 +MOD11_0225E970: ; 0x0225E970 + .byte 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 + + .global MOD11_0225E998 +MOD11_0225E998: ; 0x0225E998 + .byte 0x60, 0x04 + + .global MOD11_0225E99A +MOD11_0225E99A: ; 0x0225E99A + .byte 0x60, 0x00, 0x40, 0x04, 0x60, 0x00, 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00 + .byte 0x60, 0x04, 0x60, 0x00, 0x40, 0x04, 0x60, 0x00 + + .global MOD11_0225E9B0 +MOD11_0225E9B0: ; 0x0225E9B0 + .byte 0x00, 0x00 + + .global MOD11_0225E9B2 +MOD11_0225E9B2: ; 0x0225E9B2 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225E9C8 +MOD11_0225E9C8: ; 0x0225E9C8 + .byte 0x40, 0x04 + + .global MOD11_0225E9CA +MOD11_0225E9CA: ; 0x0225E9CA + .byte 0x20, 0x00, 0x20, 0x04, 0x20, 0x00, 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00 + .byte 0x40, 0x04, 0x20, 0x00, 0x20, 0x04, 0x20, 0x00 + + .global MOD11_0225E9E0 +MOD11_0225E9E0: ; 0x0225E9E0 + .byte 0x00, 0x00 + + .global MOD11_0225E9E2 +MOD11_0225E9E2: ; 0x0225E9E2 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225E9F8 +MOD11_0225E9F8: ; 0x0225E9F8 + .byte 0x80, 0x0D + + .global MOD11_0225E9FA +MOD11_0225E9FA: ; 0x0225E9FA + .byte 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00, 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00 + .byte 0x80, 0x0C, 0x60, 0x00, 0xA0, 0x06, 0x60, 0x00 + + .global MOD11_0225EA10 +MOD11_0225EA10: ; 0x0225EA10 + .byte 0x00, 0x00 + + .global MOD11_0225EA12 +MOD11_0225EA12: ; 0x0225EA12 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225EA28 +MOD11_0225EA28: ; 0x0225EA28 + .byte 0x80, 0x0A + + .global MOD11_0225EA2A +MOD11_0225EA2A: ; 0x0225EA2A + .byte 0x60, 0x00 + + .global MOD11_0225EA2C +MOD11_0225EA2C: ; 0x0225EA2C + .byte 0x80, 0x0B + + .global MOD11_0225EA2E +MOD11_0225EA2E: ; 0x0225EA2E + .byte 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 + + .global MOD11_0225EA58 +MOD11_0225EA58: ; 0x0225EA58 + .byte 0x00, 0x0D + + .global MOD11_0225EA5A +MOD11_0225EA5A: ; 0x0225EA5A + .byte 0x60, 0x00 + + .global MOD11_0225EA5C +MOD11_0225EA5C: ; 0x0225EA5C + .byte 0x00, 0x00 + + .global MOD11_0225EA5E +MOD11_0225EA5E: ; 0x0225EA5E + .byte 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 + + .global MOD11_0225EA88 +MOD11_0225EA88: ; 0x0225EA88 + .byte 0xE0, 0x04 + + .global MOD11_0225EA8A +MOD11_0225EA8A: ; 0x0225EA8A + .byte 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 + + .global MOD11_0225EAB8 +MOD11_0225EAB8: ; 0x0225EAB8 + .byte 0x40, 0x0A + + .global MOD11_0225EABA +MOD11_0225EABA: ; 0x0225EABA + .byte 0x40, 0x00 + + .global MOD11_0225EABC +MOD11_0225EABC: ; 0x0225EABC + .byte 0x40, 0x0B + + .global MOD11_0225EABE +MOD11_0225EABE: ; 0x0225EABE + .byte 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 + + .global MOD11_0225EAE8 +MOD11_0225EAE8: ; 0x0225EAE8 + .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 + + .global MOD11_0225EB1C +MOD11_0225EB1C: ; 0x0225EB1C + .byte 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 + + .global MOD11_0225EB50 +MOD11_0225EB50: ; 0x0225EB50 + .byte 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 + + .global MOD11_0225EB84 +MOD11_0225EB84: ; 0x0225EB84 + .byte 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 + + .global MOD11_0225EBB8 +MOD11_0225EBB8: ; 0x0225EBB8 + .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 + + .global MOD11_0225EBEC +MOD11_0225EBEC: ; 0x0225EBEC + .byte 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 + + .global MOD11_0225EC20 +MOD11_0225EC20: ; 0x0225EC20 + .byte 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 + + .global MOD11_0225EC54 +MOD11_0225EC54: ; 0x0225EC54 + .byte 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 + + .global MOD11_0225EC88 +MOD11_0225EC88: ; 0x0225EC88 + .byte 0x40, 0x02 + + .global MOD11_0225EC8A +MOD11_0225EC8A: ; 0x0225EC8A + .byte 0xC0, 0x00 + + .global MOD11_0225EC8C +MOD11_0225EC8C: ; 0x0225EC8C + .byte 0x40, 0x03 + + .global MOD11_0225EC8E +MOD11_0225EC8E: ; 0x0225EC8E + .byte 0xC0, 0x00 + + .global MOD11_0225EC90 +MOD11_0225EC90: ; 0x0225EC90 + .byte 0x00, 0x0A + + .global MOD11_0225EC92 +MOD11_0225EC92: ; 0x0225EC92 + .byte 0x40, 0x00 + + .global MOD11_0225EC94 +MOD11_0225EC94: ; 0x0225EC94 + .byte 0x00, 0x0B + + .global MOD11_0225EC96 +MOD11_0225EC96: ; 0x0225EC96 + .byte 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 + + .global MOD11_0225ECE8 +MOD11_0225ECE8: ; 0x0225ECE8 + .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 + + .global MOD11_0225F5A8 +MOD11_0225F5A8: ; 0x0225F5A8 + .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 + + .global MOD11_0225F5C0 +MOD11_0225F5C0: ; 0x0225F5C0 + .byte 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 + + .global MOD11_0225F5D8 +MOD11_0225F5D8: ; 0x0225F5D8 + .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 + + .global MOD11_0225F61C +MOD11_0225F61C: ; 0x0225F61C + .byte 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 + + .global MOD11_0225F684 +MOD11_0225F684: ; 0x0225F684 + .byte 0x00, 0x01, 0x00, 0x00 + + .global MOD11_0225F688 +MOD11_0225F688: ; 0x0225F688 + .byte 0x00, 0x01, 0x06, 0x0C, 0x0D, 0x05, 0x00, 0x00 + + .global MOD11_0225F690 +MOD11_0225F690: ; 0x0225F690 + .byte 0x03, 0x01, 0x00, 0x02, 0x04, 0x04, 0x00, 0x00 + + .global MOD11_0225F698 +MOD11_0225F698: ; 0x0225F698 + .byte 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, 0x00 + + .global MOD11_0225F6A0 +MOD11_0225F6A0: ; 0x0225F6A0 + .byte 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225F6A8 +MOD11_0225F6A8: ; 0x0225F6A8 + .byte 0x2F, 0x02, 0x2C, 0x02, 0x29, 0x02, 0x26, 0x02 + + .global MOD11_0225F6B0 +MOD11_0225F6B0: ; 0x0225F6B0 + .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F6B8 +MOD11_0225F6B8: ; 0x0225F6B8 + .word MOD11_0225C7F0, MOD11_0225C848 + + .global MOD11_0225F6C0 +MOD11_0225F6C0: ; 0x0225F6C0 + .byte 0x38, 0x02, 0x35, 0x02, 0x32, 0x02, 0x3B, 0x02 + + .global MOD11_0225F6C8 +MOD11_0225F6C8: ; 0x0225F6C8 + .byte 0x0D, 0x14, 0x00, 0x1F + + .global MOD11_0225F6CC +MOD11_0225F6CC: ; 0x0225F6CC + .byte 0x04, 0x0B, 0x00, 0x1F + + .global MOD11_0225F6D0 +MOD11_0225F6D0: ; 0x0225F6D0 + .byte 0x18, 0x90, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F6D8 +MOD11_0225F6D8: ; 0x0225F6D8 + .byte 0x28, 0x60, 0x08, 0xF8, 0x70, 0xA8, 0x08, 0xF8, 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F6E4 +MOD11_0225F6E4: ; 0x0225F6E4 + .byte 0x28, 0x80, 0x18, 0xE8 + .byte 0x98, 0xC0, 0x58, 0xA8, 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F6F0 +MOD11_0225F6F0: ; 0x0225F6F0 + .byte 0x00, 0x00, 0x05, 0x00, 0x0A, 0x00 + + .global MOD11_0225F6F6 +MOD11_0225F6F6: ; 0x0225F6F6 + .byte 0x00, 0x00 + .byte 0xC0, 0x00, 0x80, 0x01 + + .global MOD11_0225F6FC +MOD11_0225F6FC: ; 0x0225F6FC + .byte 0x25, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x20, 0x00, 0x21, 0x00, 0x24, 0x00 + .byte 0x22, 0x00, 0x00, 0x00 + + .global MOD11_0225F70C +MOD11_0225F70C: ; 0x0225F70C + .byte 0x04, 0x0F, 0x02, 0x1D, 0x11, 0x17, 0x00, 0x09, 0x11, 0x17, 0x16, 0x1F + .byte 0x12, 0x17, 0x0B, 0x14 + + .global MOD11_0225F71C +MOD11_0225F71C: ; 0x0225F71C + .byte 0x0B, 0x11, 0x00, 0x0E, 0x01, 0x09, 0x11, 0x1F, 0x0B, 0x11, 0x11, 0x1F + .byte 0x01, 0x09, 0x00, 0x0E + + .global MOD11_0225F72C +MOD11_0225F72C: ; 0x0225F72C + .byte 0x20, 0x00, 0x3E, 0x00, 0xA0, 0x00, 0x3E, 0x00, 0x20, 0x00, 0x7E, 0x00 + .byte 0xA0, 0x00, 0x7E, 0x00 + + .global MOD11_0225F73C +MOD11_0225F73C: ; 0x0225F73C + .byte 0x4C, 0x00, 0x3E, 0x00, 0xCC, 0x00, 0x3E, 0x00, 0x4C, 0x00, 0x7E, 0x00 + .byte 0xCC, 0x00, 0x7E, 0x00 + + .global MOD11_0225F74C +MOD11_0225F74C: ; 0x0225F74C + .byte 0x03, 0x09, 0x00, 0x0F, 0x03, 0x09, 0x10, 0x1F, 0x0B, 0x11, 0x00, 0x0F + .byte 0x0B, 0x11, 0x10, 0x1F + + .global MOD11_0225F75C +MOD11_0225F75C: ; 0x0225F75C + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 + + .global MOD11_0225F76C +MOD11_0225F76C: ; 0x0225F76C + .byte 0x3C, 0x00, 0x74, 0x00, 0xC4, 0x00, 0x38, 0x00, 0xC4, 0x00, 0x74, 0x00 + .byte 0x3C, 0x00, 0x38, 0x00 + + .global MOD11_0225F77C +MOD11_0225F77C: ; 0x0225F77C + .byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global MOD11_0225F78C +MOD11_0225F78C: ; 0x0225F78C + .byte 0x3B, 0x00, 0x3E, 0x00, 0xBB, 0x00, 0x3E, 0x00, 0x3B, 0x00, 0x7E, 0x00 + .byte 0xBB, 0x00, 0x7E, 0x00 + + .global MOD11_0225F79C +MOD11_0225F79C: ; 0x0225F79C + .byte 0x80, 0x00, 0x4C, 0x00, 0x28, 0x00, 0xA4, 0x00, 0xD8, 0x00, 0xA4, 0x00 + .byte 0x80, 0x00, 0xA8, 0x00 + + .global MOD11_0225F7AC +MOD11_0225F7AC: ; 0x0225F7AC + .byte 0x02, 0x09, 0x00, 0x0F, 0x02, 0x09, 0x10, 0x1F, 0x0A, 0x11, 0x00, 0x0F + .byte 0x0A, 0x11, 0x10, 0x1F + + .global MOD11_0225F7BC +MOD11_0225F7BC: ; 0x0225F7BC + .byte 0x12, 0x17, 0x01, 0x1E + + .global MOD11_0225F7C0 +MOD11_0225F7C0: ; 0x0225F7C0 + .byte 0x01, 0x00, 0x00, 0x00 + + .global MOD11_0225F7C4 +MOD11_0225F7C4: ; 0x0225F7C4 + .byte 0x02, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F7D4 +MOD11_0225F7D4: ; 0x0225F7D4 + .byte 0x3C, 0x00, 0x74, 0x00 + .byte 0xC4, 0x00, 0x20, 0x00, 0xC4, 0x00, 0x74, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x80, 0x00, 0xB2, 0x00 + + .global MOD11_0225F7E8 +MOD11_0225F7E8: ; 0x0225F7E8 + .byte 0x18, 0x90, 0x00, 0xFF, 0x90, 0xC0, 0x00, 0x50, 0x90, 0xC0, 0xB0, 0xFF, 0x98, 0xC0, 0x58, 0xA8 + .byte 0xFF, 0x00, 0x00, 0x00 + + .global MOD11_0225F7FC +MOD11_0225F7FC: ; 0x0225F7FC + .byte 0x0A, 0x11, 0x00, 0x0E, 0x00, 0x09, 0x11, 0x1F, 0x0A, 0x11, 0x11, 0x1F + .byte 0x00, 0x09, 0x00, 0x0E + + .global MOD11_0225F80C +MOD11_0225F80C: ; 0x0225F80C + .byte 0x12, 0x17, 0x01, 0x1E + + .global MOD11_0225F810 +MOD11_0225F810: ; 0x0225F810 + .byte 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + + .global MOD11_0225F824 +MOD11_0225F824: ; 0x0225F824 + .byte 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 + + .global MOD11_0225F83C +MOD11_0225F83C: ; 0x0225F83C + .byte 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 + + .global MOD11_0225F854 +MOD11_0225F854: ; 0x0225F854 + .byte 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 + + .global MOD11_0225F86C +MOD11_0225F86C: ; 0x0225F86C + .byte 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 + + .global MOD11_0225F884 +MOD11_0225F884: ; 0x0225F884 + .byte 0x00, 0x00, 0xC0, 0x00 + .byte 0x80, 0x01, 0x00, 0x00 + + .global MOD11_0225F88C +MOD11_0225F88C: ; 0x0225F88C + .byte 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 + + .global MOD11_0225F8A4 +MOD11_0225F8A4: ; 0x0225F8A4 + .byte 0x00, 0x00, 0xC0, 0x00 + .byte 0x80, 0x01, 0x00, 0x00 + + .global MOD11_0225F8AC +MOD11_0225F8AC: ; 0x0225F8AC + .byte 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 + + .global MOD11_0225F8E0 +MOD11_0225F8E0: ; 0x0225F8E0 + .byte 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 + + .global MOD11_0225F914 +MOD11_0225F914: ; 0x0225F914 + .byte 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 + + .global MOD11_0225F948 +MOD11_0225F948: ; 0x0225F948 + .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 + + .global MOD11_0225F97C +MOD11_0225F97C: ; 0x0225F97C + .byte 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 + + .global MOD11_0225F9EC +MOD11_0225F9EC: ; 0x0225F9EC + .byte 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 + + .global MOD11_0225FAAC +MOD11_0225FAAC: ; 0x0225FAAC + .byte 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 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F6D0, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_022594C8, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0x0002, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F6D0, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_022594DC, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259270, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F7E8, MOD11_0225F75C, MOD11_0225FE10, MOD11_0225B928, MOD11_0225BB04, MOD11_02259284, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F6E4, MOD11_0225F77C, MOD11_0225FE14, MOD11_0225BB68, 0x00000000, MOD11_02259540, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0001, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0003, 0x0003, 0x0000 + .word MOD11_0225F6E4, MOD11_0225F77C, MOD11_0225FE14, MOD11_0225BB68, 0x00000000, MOD11_02259554, MOD11_02259E64 + + .short 0x0011, 0x00C3, 0x0003, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F83C, MOD11_0225F810, MOD11_0225FE18, MOD11_0225BC60, MOD11_0225BDE0, MOD11_022595C8, MOD11_02259F3C + + .short 0x0011, 0x00C3, 0x0004, 0x0005, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F824, MOD11_0225F7C0, MOD11_0225FE20, MOD11_0225BE30, MOD11_0225C420, MOD11_02259C74, MOD11_0225A060 + + .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259898, MOD11_02259FE4 + + .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259930, MOD11_02259FE4 + + .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_022599CC, MOD11_02259FE4 + + .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259AB0, MOD11_02259FE4 + + .short 0x0011, 0x00C3, 0x0006, 0xFFFF, 0x0000, 0xFFFF, 0x0002, 0x0001, 0x0003, 0x0000 + .word MOD11_0225F6D8, MOD11_0225F6B0, MOD11_0225FE0C, MOD11_0225C47C, 0x00000000, MOD11_02259B94, MOD11_02259FE4 + + .global MOD11_0225FE0C +MOD11_0225FE0C: ; 0x0225FE0C + .byte 0x01, 0x04, 0x00, 0x00 + + .global MOD11_0225FE10 +MOD11_0225FE10: ; 0x0225FE10 + .byte 0x01, 0x02, 0x03, 0x04 + + .global MOD11_0225FE14 +MOD11_0225FE14: ; 0x0225FE14 + .byte 0x01, 0x04, 0x00, 0x00 + + .global MOD11_0225FE18 +MOD11_0225FE18: ; 0x0225FE18 + .byte 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00 + + .global MOD11_0225FE20 +MOD11_0225FE20: ; 0x0225FE20 + .byte 0x06, 0x0C, 0x0D, 0x05, 0x04, 0x00, 0x00, 0x00 + + .global MOD11_0225FE28 +MOD11_0225FE28: ; 0x0225FE28 + .byte 0x0E, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00 + + .global MOD11_0225FE30 +MOD11_0225FE30: ; 0x0225FE30 + .byte 0x14, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00 + + .global MOD11_0225FE38 +MOD11_0225FE38: ; 0x0225FE38 + .byte 0x5C, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00 + + .global MOD11_0225FE40 +MOD11_0225FE40: ; 0x0225FE40 + .byte 0x56, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x00, 0x00 + + .global MOD11_0225FE48 +MOD11_0225FE48: ; 0x0225FE48 + .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 + + .global MOD11_0225FE7C +MOD11_0225FE7C: ; 0x0225FE7C + .byte 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 + + .global MOD11_0225FEB0 +MOD11_0225FEB0: ; 0x0225FEB0 + .byte 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 + + .global MOD11_0225FEE4 +MOD11_0225FEE4: ; 0x0225FEE4 + .byte 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 + + .section .data + .global MOD11_0225FF20 +MOD11_0225FF20: ; 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 + + .global MOD11_0225FF84 +MOD11_0225FF84: ; 0x0225FF84 + .byte 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 diff --git a/arm9/modules/11/src/module_11_sinit.c b/arm9/modules/11/src/module_11_sinit.c index b798941e..977c4fde 100644 --- a/arm9/modules/11/src/module_11_sinit.c +++ b/arm9/modules/11/src/module_11_sinit.c @@ -1,4 +1,17 @@ -#define NitroStaticInit MOD11_0222F284 #include "global.h" -extern void MOD11_0222F284(void); +#include "poke_overlay.h" +#include "FS_overlay.h" + +extern u32 FUN_02033590(void); +FS_EXTERN_OVERLAY(MODULE_16); + +THUMB_FUNC static void MOD11_0222F284(void) +{ + if (!FUN_02033590()) + { + HandleLoadOverlay(FS_OVERLAY_ID(MODULE_16), 2); + } +} + +#define NitroStaticInit MOD11_0222F284 #include "sinit.h" diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s index 7ec2a1e6..787a729f 100644 --- a/arm9/modules/21/asm/module_21.s +++ b/arm9/modules/21/asm/module_21.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD21_02254840 -MOD21_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD21_02254854 - ldr r1, _02254850 ; =MOD21_0225496C - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD21_02254854 -_02254850: .word MOD21_0225496C - thumb_func_end MOD21_02254840 - thumb_func_start MOD21_02254854 MOD21_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/21/src/module_21_sinit.c b/arm9/modules/21/src/module_21_sinit.c index e19c840f..2af569ec 100644 --- a/arm9/modules/21/src/module_21_sinit.c +++ b/arm9/modules/21/src/module_21_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD21_02254840 #include "global.h" -extern void MOD21_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD21_02254854(); +extern void MOD21_0225496C(); + +THUMB_FUNC static void MOD21_02254840(void) +{ + Poketch_InitApp(MOD21_02254854, MOD21_0225496C); +} + +#define NitroStaticInit MOD21_02254840 #include "sinit.h" diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index 370847aa..56b78aaf 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD23_02254840 -MOD23_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD23_02254854 - ldr r1, _02254850 ; =MOD23_022549A4 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD23_02254854 -_02254850: .word MOD23_022549A4 - thumb_func_end MOD23_02254840 - thumb_func_start MOD23_02254854 MOD23_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/23/src/module_23_sinit.c b/arm9/modules/23/src/module_23_sinit.c index 522e8ac4..97abb012 100644 --- a/arm9/modules/23/src/module_23_sinit.c +++ b/arm9/modules/23/src/module_23_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD23_02254840 #include "global.h" -extern void MOD23_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD23_02254854(); +extern void MOD23_022549A4(); + +THUMB_FUNC static void MOD23_02254840(void) +{ + Poketch_InitApp(MOD23_02254854, MOD23_022549A4); +} + +#define NitroStaticInit MOD23_02254840 #include "sinit.h" diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index d11eeb44..3ac786b0 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD27_02254840 -MOD27_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD27_02254854 - ldr r1, _02254850 ; =MOD27_0225492C - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD27_02254854 -_02254850: .word MOD27_0225492C - thumb_func_end MOD27_02254840 - thumb_func_start MOD27_02254854 MOD27_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/27/src/module_27_sinit.c b/arm9/modules/27/src/module_27_sinit.c index 6b069297..cb942ec9 100644 --- a/arm9/modules/27/src/module_27_sinit.c +++ b/arm9/modules/27/src/module_27_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD27_02254840 #include "global.h" -extern void MOD27_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD27_02254854(); +extern void MOD27_0225492C(); + +THUMB_FUNC static void MOD27_02254840(void) +{ + Poketch_InitApp(MOD27_02254854, MOD27_0225492C); +} + +#define NitroStaticInit MOD27_02254840 #include "sinit.h" diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index dba3ebba..16acbd62 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD28_02254840 -MOD28_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD28_02254854 - ldr r1, _02254850 ; =MOD28_022549F4 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD28_02254854 -_02254850: .word MOD28_022549F4 - thumb_func_end MOD28_02254840 - thumb_func_start MOD28_02254854 MOD28_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/28/src/module_28_sinit.c b/arm9/modules/28/src/module_28_sinit.c index 3d2d7cf6..605cc4ec 100644 --- a/arm9/modules/28/src/module_28_sinit.c +++ b/arm9/modules/28/src/module_28_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD28_02254840 #include "global.h" -extern void MOD28_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD28_02254854(); +extern void MOD28_022549F4(); + +THUMB_FUNC static void MOD28_02254840(void) +{ + Poketch_InitApp(MOD28_02254854, MOD28_022549F4); +} + +#define NitroStaticInit MOD28_02254840 #include "sinit.h" diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s index 6473d5da..723e8449 100644 --- a/arm9/modules/29/asm/module_29.s +++ b/arm9/modules/29/asm/module_29.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD29_02254840 -MOD29_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD29_02254854 - ldr r1, _02254850 ; =MOD29_02254914 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD29_02254854 -_02254850: .word MOD29_02254914 - thumb_func_end MOD29_02254840 - thumb_func_start MOD29_02254854 MOD29_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/29/src/module_29_sinit.c b/arm9/modules/29/src/module_29_sinit.c index 77fee47c..34914f4b 100644 --- a/arm9/modules/29/src/module_29_sinit.c +++ b/arm9/modules/29/src/module_29_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD29_02254840 #include "global.h" -extern void MOD29_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD29_02254854(); +extern void MOD29_02254914(); + +THUMB_FUNC static void MOD29_02254840(void) +{ + Poketch_InitApp(MOD29_02254854, MOD29_02254914); +} + +#define NitroStaticInit MOD29_02254840 #include "sinit.h" diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s index 3be3474f..aa55cd5b 100644 --- a/arm9/modules/30/asm/module_30.s +++ b/arm9/modules/30/asm/module_30.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD30_02254840 -MOD30_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD30_02254854 - ldr r1, _02254850 ; =MOD30_0225496C - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD30_02254854 -_02254850: .word MOD30_0225496C - thumb_func_end MOD30_02254840 - thumb_func_start MOD30_02254854 MOD30_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/30/src/module_30_sinit.c b/arm9/modules/30/src/module_30_sinit.c index 058b270d..cdf50ca2 100644 --- a/arm9/modules/30/src/module_30_sinit.c +++ b/arm9/modules/30/src/module_30_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD30_02254840 #include "global.h" -extern void MOD30_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD30_02254854(); +extern void MOD30_0225496C(); + +THUMB_FUNC static void MOD30_02254840(void) +{ + Poketch_InitApp(MOD30_02254854, MOD30_0225496C); +} + +#define NitroStaticInit MOD30_02254840 #include "sinit.h" diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s index 6b884f10..5b40a737 100644 --- a/arm9/modules/32/asm/module_32.s +++ b/arm9/modules/32/asm/module_32.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD32_02254840 -MOD32_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD32_02254854 - ldr r1, _02254850 ; =MOD32_0225495C - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD32_02254854 -_02254850: .word MOD32_0225495C - thumb_func_end MOD32_02254840 - thumb_func_start MOD32_02254854 MOD32_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/32/src/module_32_sinit.c b/arm9/modules/32/src/module_32_sinit.c index cf500b6e..f62d14b6 100644 --- a/arm9/modules/32/src/module_32_sinit.c +++ b/arm9/modules/32/src/module_32_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD32_02254840 #include "global.h" -extern void MOD32_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD32_02254854(); +extern void MOD32_0225495C(); + +THUMB_FUNC static void MOD32_02254840(void) +{ + Poketch_InitApp(MOD32_02254854, MOD32_0225495C); +} + +#define NitroStaticInit MOD32_02254840 #include "sinit.h" diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s index 4a439bd8..84100418 100644 --- a/arm9/modules/34/asm/module_34.s +++ b/arm9/modules/34/asm/module_34.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD34_02254840 -MOD34_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD34_02254854 - ldr r1, _02254850 ; =MOD34_02254948 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD34_02254854 -_02254850: .word MOD34_02254948 - thumb_func_end MOD34_02254840 - thumb_func_start MOD34_02254854 MOD34_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/34/src/module_34_sinit.c b/arm9/modules/34/src/module_34_sinit.c index 80d96e0a..96789176 100644 --- a/arm9/modules/34/src/module_34_sinit.c +++ b/arm9/modules/34/src/module_34_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD34_02254840 #include "global.h" -extern void MOD34_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD34_02254854(); +extern void MOD34_02254948(); + +THUMB_FUNC static void MOD34_02254840(void) +{ + Poketch_InitApp(MOD34_02254854, MOD34_02254948); +} + +#define NitroStaticInit MOD34_02254840 #include "sinit.h" diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index 528f376a..fcd3cbc9 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD36_02254840 -MOD36_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD36_02254854 - ldr r1, _02254850 ; =MOD36_02254990 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD36_02254854 -_02254850: .word MOD36_02254990 - thumb_func_end MOD36_02254840 - thumb_func_start MOD36_02254854 MOD36_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/36/src/module_36_sinit.c b/arm9/modules/36/src/module_36_sinit.c index b365faa7..9db2e327 100644 --- a/arm9/modules/36/src/module_36_sinit.c +++ b/arm9/modules/36/src/module_36_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD36_02254840 #include "global.h" -extern void MOD36_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD36_02254854(); +extern void MOD36_02254990(); + +THUMB_FUNC static void MOD36_02254840(void) +{ + Poketch_InitApp(MOD36_02254854, MOD36_02254990); +} + +#define NitroStaticInit MOD36_02254840 #include "sinit.h" diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s index abd624df..6ee54fe8 100644 --- a/arm9/modules/39/asm/module_39.s +++ b/arm9/modules/39/asm/module_39.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD39_02254840 -MOD39_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD39_02254854 - ldr r1, _02254850 ; =MOD39_022549D4 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD39_02254854 -_02254850: .word MOD39_022549D4 - thumb_func_end MOD39_02254840 - thumb_func_start MOD39_02254854 MOD39_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/39/src/module_39_sinit.c b/arm9/modules/39/src/module_39_sinit.c index f59753f9..39e6447f 100644 --- a/arm9/modules/39/src/module_39_sinit.c +++ b/arm9/modules/39/src/module_39_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD39_02254840 #include "global.h" -extern void MOD39_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD39_02254854(); +extern void MOD39_022549D4(); + +THUMB_FUNC static void MOD39_02254840(void) +{ + Poketch_InitApp(MOD39_02254854, MOD39_022549D4); +} + +#define NitroStaticInit MOD39_02254840 #include "sinit.h" diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s index 13762a02..a60736df 100644 --- a/arm9/modules/41/asm/module_41.s +++ b/arm9/modules/41/asm/module_41.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD41_02254840 -MOD41_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD41_02254854 - ldr r1, _02254850 ; =MOD41_02254AD8 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD41_02254854 -_02254850: .word MOD41_02254AD8 - thumb_func_end MOD41_02254840 - thumb_func_start MOD41_02254854 MOD41_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/41/src/module_41_sinit.c b/arm9/modules/41/src/module_41_sinit.c index 9d0d5aa8..1e119d0f 100644 --- a/arm9/modules/41/src/module_41_sinit.c +++ b/arm9/modules/41/src/module_41_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD41_02254840 #include "global.h" -extern void MOD41_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD41_02254854(); +extern void MOD41_02254AD8(); + +THUMB_FUNC static void MOD41_02254840(void) +{ + Poketch_InitApp(MOD41_02254854, MOD41_02254AD8); +} + +#define NitroStaticInit MOD41_02254840 #include "sinit.h" diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index b4e4e4d8..8bda4f17 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD42_02254840 -MOD42_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD42_02254854 - ldr r1, _02254850 ; =MOD42_02254A38 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD42_02254854 -_02254850: .word MOD42_02254A38 - thumb_func_end MOD42_02254840 - thumb_func_start MOD42_02254854 MOD42_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/42/src/module_42_sinit.c b/arm9/modules/42/src/module_42_sinit.c index 3b42fc7d..73baf05b 100644 --- a/arm9/modules/42/src/module_42_sinit.c +++ b/arm9/modules/42/src/module_42_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD42_02254840 #include "global.h" -extern void MOD42_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD42_02254854(); +extern void MOD42_02254A38(); + +THUMB_FUNC static void MOD42_02254840(void) +{ + Poketch_InitApp(MOD42_02254854, MOD42_02254A38); +} + +#define NitroStaticInit MOD42_02254840 #include "sinit.h" diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index c9bbedfd..da27d823 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD43_02254840 -MOD43_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD43_02254854 - ldr r1, _02254850 ; =MOD43_02254970 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD43_02254854 -_02254850: .word MOD43_02254970 - thumb_func_end MOD43_02254840 - thumb_func_start MOD43_02254854 MOD43_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/43/src/module_43_sinit.c b/arm9/modules/43/src/module_43_sinit.c index 8143a29f..a3ac14b8 100644 --- a/arm9/modules/43/src/module_43_sinit.c +++ b/arm9/modules/43/src/module_43_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD43_02254840 #include "global.h" -extern void MOD43_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD43_02254854(); +extern void MOD43_02254970(); + +THUMB_FUNC static void MOD43_02254840(void) +{ + Poketch_InitApp(MOD43_02254854, MOD43_02254970); +} + +#define NitroStaticInit MOD43_02254840 #include "sinit.h" diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s index bcee6542..5c50d9f1 100644 --- a/arm9/modules/44/asm/module_44.s +++ b/arm9/modules/44/asm/module_44.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD44_02254840 -MOD44_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD44_02254854 - ldr r1, _02254850 ; =MOD44_02254920 - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD44_02254854 -_02254850: .word MOD44_02254920 - thumb_func_end MOD44_02254840 - thumb_func_start MOD44_02254854 MOD44_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/44/src/module_44_sinit.c b/arm9/modules/44/src/module_44_sinit.c index 8bb54dd1..29625872 100644 --- a/arm9/modules/44/src/module_44_sinit.c +++ b/arm9/modules/44/src/module_44_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD44_02254840 #include "global.h" -extern void MOD44_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD44_02254854(); +extern void MOD44_02254920(); + +THUMB_FUNC static void MOD44_02254840(void) +{ + Poketch_InitApp(MOD44_02254854, MOD44_02254920); +} + +#define NitroStaticInit MOD44_02254840 #include "sinit.h" diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s index 549b6c3a..3c2ae879 100644 --- a/arm9/modules/47/asm/module_47.s +++ b/arm9/modules/47/asm/module_47.s @@ -3,18 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD47_02254840 -MOD47_02254840: ; 0x02254840 - ldr r3, _02254848 ; =Poketch_InitApp - ldr r0, _0225484C ; =MOD47_02254854 - ldr r1, _02254850 ; =MOD47_0225491C - bx r3 - .align 2, 0 -_02254848: .word Poketch_InitApp -_0225484C: .word MOD47_02254854 -_02254850: .word MOD47_0225491C - thumb_func_end MOD47_02254840 - thumb_func_start MOD47_02254854 MOD47_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} diff --git a/arm9/modules/47/src/module_47_sinit.c b/arm9/modules/47/src/module_47_sinit.c index f8e3041a..f255cafa 100644 --- a/arm9/modules/47/src/module_47_sinit.c +++ b/arm9/modules/47/src/module_47_sinit.c @@ -1,4 +1,13 @@ -#define NitroStaticInit MOD47_02254840 #include "global.h" -extern void MOD47_02254840(void); + +extern void Poketch_InitApp(void *func1, void *func2); +extern void MOD47_02254854(); +extern void MOD47_0225491C(); + +THUMB_FUNC static void MOD47_02254840(void) +{ + Poketch_InitApp(MOD47_02254854, MOD47_0225491C); +} + +#define NitroStaticInit MOD47_02254840 #include "sinit.h" diff --git a/include-mw/function_target.h b/include-mw/function_target.h index f37095f9..3834419c 100644 --- a/include-mw/function_target.h +++ b/include-mw/function_target.h @@ -8,4 +8,4 @@ #define ENUMS_ALWAYS_INT_OFF _Pragma("enumsalwaysint off") #define ENUMS_ALWAYS_INT_RESET _Pragma("enumsalwaysint reset") -#endif //GUARD_FUNCTION_TARGET_H \ No newline at end of file +#endif //GUARD_FUNCTION_TARGET_H -- cgit v1.2.3