.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD13_022172DC MOD13_022172DC: ; 0x022172DC str r0, [r1] mov r0, #1 strh r0, [r1, #4] bx lr thumb_func_start MOD13_022172E4 MOD13_022172E4: ; 0x022172E4 mov r1, #0 str r1, [r0] strh r1, [r0, #4] strh r1, [r0, #6] bx lr .align 2, 0 thumb_func_start MOD13_022172F0 MOD13_022172F0: ; 0x022172F0 push {r4, lr} sub sp, #0x10 ldr r0, _02217358 ; =0x02240B3C ldr r0, [r0] cmp r0, #0 bne _02217334 mov r4, #0 add r0, sp, #0 add r1, r4, #0 mov r2, #0xc bl MOD13_022174C0 add r0, sp, #0 bl RTC_GetTime cmp r0, #0 bne _02217322 ldr r0, [sp] lsl r0, r0, #0xa add r1, r4, r0 ldr r0, [sp, #4] lsl r0, r0, #3 add r1, r1, r0 ldr r0, [sp, #8] add r4, r1, r0 _02217322: ldr r0, _0221735C ; =0x02240B54 str r4, [r0] ldr r1, _02217360 ; =0x5D588B65 str r1, [r0, #4] ldr r1, _02217364 ; =0x00269EC3 str r1, [r0, #8] mov r1, #1 ldr r0, _02217358 ; =0x02240B3C str r1, [r0] _02217334: ldr r0, _0221735C ; =0x02240B54 ldr r3, [r0, #8] ldr r2, [r0, #4] ldr r1, [r0] mul r2, r1 add r1, r3, r2 str r1, [r0] lsr r1, r1, #0x10 ldr r0, _02217368 ; =0x00007FFF mul r1, r0 lsr r0, r1, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 add sp, #0x10 pop {r4} pop {r3} bx r3 nop _02217358: .word 0x02240B3C _0221735C: .word 0x02240B54 _02217360: .word 0x5D588B65 _02217364: .word 0x00269EC3 _02217368: .word 0x00007FFF thumb_func_start MOD13_0221736C MOD13_0221736C: ; 0x0221736C mov r2, #0 ldrsb r1, [r0, r2] cmp r1, #0 beq _0221737C _02217374: add r2, r2, #1 ldrsb r1, [r0, r2] cmp r1, #0 bne _02217374 _0221737C: add r0, r2, #0 bx lr thumb_func_start MOD13_02217380 MOD13_02217380: ; 0x02217380 asr r2, r0, #8 mov r1, #0xff and r2, r1 lsl r1, r0, #8 ldr r0, _02217394 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r0, r0, #0x10 bx lr .align 2, 0 _02217394: .word 0x0000FF00 thumb_func_start MOD13_02217398 MOD13_02217398: ; 0x02217398 push {r4} sub sp, #4 lsl r1, r0, #0x18 ldr r2, _022173C4 ; =0xFF000000 and r1, r2 lsl r4, r0, #8 ldr r2, _022173C8 ; =0x00FF0000 and r4, r2 lsr r3, r0, #0x18 mov r2, #0xff and r3, r2 lsr r2, r0, #8 ldr r0, _022173CC ; =0x0000FF00 and r2, r0 orr r3, r2 orr r4, r3 orr r1, r4 add r0, r1, #0 add sp, #4 pop {r4} bx lr nop _022173C4: .word 0xFF000000 _022173C8: .word 0x00FF0000 _022173CC: .word 0x0000FF00 thumb_func_start MOD13_022173D0 MOD13_022173D0: ; 0x022173D0 asr r2, r0, #8 mov r1, #0xff and r2, r1 lsl r1, r0, #8 ldr r0, _022173E4 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r0, r0, #0x10 bx lr .align 2, 0 _022173E4: .word 0x0000FF00 thumb_func_start MOD13_022173E8 MOD13_022173E8: ; 0x022173E8 push {r4} sub sp, #4 lsl r1, r0, #0x18 ldr r2, _02217414 ; =0xFF000000 and r1, r2 lsl r4, r0, #8 ldr r2, _02217418 ; =0x00FF0000 and r4, r2 lsr r3, r0, #0x18 mov r2, #0xff and r3, r2 lsr r2, r0, #8 ldr r0, _0221741C ; =0x0000FF00 and r2, r0 orr r3, r2 orr r4, r3 orr r1, r4 add r0, r1, #0 add sp, #4 pop {r4} bx lr nop _02217414: .word 0xFF000000 _02217418: .word 0x00FF0000 _0221741C: .word 0x0000FF00 thumb_func_start MOD13_02217420 MOD13_02217420: ; 0x02217420 ldr r3, _02217424 ; =0x0209A7B8 bx r3 .align 2, 0 _02217424: .word 0x0209A7B8 thumb_func_start MOD13_02217428 MOD13_02217428: ; 0x02217428 strb r2, [r1] ldr r3, _02217430 ; =0x0209A9A4 bx r3 nop _02217430: .word 0x0209A9A4 thumb_func_start MOD13_02217434 MOD13_02217434: ; 0x02217434 ldr r3, _02217438 ; =0x0209A9D0 bx r3 .align 2, 0 _02217438: .word 0x0209A9D0 thumb_func_start MOD13_0221743C MOD13_0221743C: ; 0x0221743C bx lr .align 2, 0 thumb_func_start MOD13_02217440 MOD13_02217440: ; 0x02217440 push {r4, r5, lr} sub sp, #4 ldr r5, [sp, #0x14] ldr r4, [sp, #0x10] strb r5, [r4] str r4, [sp] bl FUN_0209A7D0 add sp, #4 pop {r4, r5} pop {r3} bx r3 thumb_func_start MOD13_02217458 MOD13_02217458: ; 0x02217458 push {r4, r5, r6, lr} sub sp, #8 ldr r5, [sp, #0x18] mov r4, #0 ldr r2, [r1] ldr r0, [r1, #4] str r2, [sp] str r0, [sp, #4] ldr r0, [r5] ldr r1, _022174A0 ; =0x01FF6210 mul r0, r1 mov r1, #0x40 bl _s32_div_f asr r1, r0, #0x1f add r6, r4, r0 adc r4, r1 ldr r0, [r5, #4] ldr r1, _022174A0 ; =0x01FF6210 mul r0, r1 mov r1, #0x40 bl _s32_div_f asr r1, r0, #0x1f add r2, r6, r0 adc r4, r1 add r0, sp, #0 mov r1, #1 add r3, r4, #0 bl FUN_0209A0AC add sp, #8 pop {r4, r5, r6} pop {r3} bx r3 nop _022174A0: .word 0x01FF6210 thumb_func_start MOD13_022174A4 MOD13_022174A4: ; 0x022174A4 push {r4, r5, lr} sub sp, #4 ldr r4, [sp, #0x14] ldr r5, [r4] ldr r4, [sp, #0x10] strb r5, [r4] str r4, [sp] bl FUN_0209A880 add sp, #4 pop {r4, r5} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_022174C0 MOD13_022174C0: ; 0x022174C0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 ldr r3, _022174C8 ; =0x020CE34C bx r3 .align 2, 0 _022174C8: .word 0x020CE34C thumb_func_start MOD13_022174CC MOD13_022174CC: ; 0x022174CC add r3, r0, #0 add r0, r1, #0 add r1, r3, #0 ldr r3, _022174D8 ; =0x020CE3E0 bx r3 nop _022174D8: .word 0x020CE3E0 thumb_func_start MOD13_022174DC MOD13_022174DC: ; 0x022174DC push {r4} sub sp, #4 mov r4, #0 b _022174E8 _022174E4: add r0, r0, #1 add r1, r1, #1 _022174E8: add r3, r2, #0 sub r2, r2, #1 cmp r3, #0 ble _022174FA ldrb r4, [r0] ldrb r3, [r1] sub r4, r4, r3 cmp r4, #0 beq _022174E4 _022174FA: add r0, r4, #0 add sp, #4 pop {r4} bx lr .align 2, 0 thumb_func_start MOD13_02217504 MOD13_02217504: ; 0x02217504 push {lr} sub sp, #4 bl THUNK_FUN_02099BC8 cmp r0, #0 bge _0221751A mov r0, #0 mvn r0, r0 add sp, #4 pop {r3} bx r3 _0221751A: bl MOD13_02219C60 cmp r0, #0 beq _02217526 mov r0, #1 b _02217528 _02217526: mov r0, #0 _02217528: neg r0, r0 add sp, #4 pop {r3} bx r3 thumb_func_start MOD13_02217530 MOD13_02217530: ; 0x02217530 push {r4, r5, lr} sub sp, #4 add r5, r1, #0 add r4, r2, #0 bl MOD13_022173E8 ldr r1, _0221758C ; =0x0223F7C8 str r0, [r1, #0x10] add r0, r5, #0 bl MOD13_022173E8 ldr r1, _0221758C ; =0x0223F7C8 str r0, [r1, #0x14] add r0, r4, #0 bl MOD13_022173E8 ldr r1, _0221758C ; =0x0223F7C8 str r0, [r1, #0x18] add r0, r1, #0 bl FUN_0209A2C0 cmp r0, #0 bge _0221756A mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5} pop {r3} bx r3 _0221756A: ldr r5, _02217590 ; =0x021C8F04 ldr r0, [r5] cmp r0, #0 bne _02217580 mov r4, #0x64 _02217574: add r0, r4, #0 bl OS_Sleep ldr r0, [r5] cmp r0, #0 beq _02217574 _02217580: mov r0, #0 add sp, #4 pop {r4, r5} pop {r3} bx r3 nop _0221758C: .word 0x0223F7C8 _02217590: .word 0x021C8F04 thumb_func_start MOD13_02217594 MOD13_02217594: ; 0x02217594 push {lr} sub sp, #4 add r0, r1, #0 ldr r1, _022175A8 ; =0x0224190C ldr r1, [r1] blx r1 add sp, #4 pop {r3} bx r3 nop _022175A8: .word 0x0224190C thumb_func_start MOD13_022175AC MOD13_022175AC: ; 0x022175AC push {lr} sub sp, #4 cmp r1, #0 ble _022175C2 add r0, r1, #0 ldr r1, _022175CC ; =0x02241900 ldr r1, [r1] blx r1 add sp, #4 pop {r3} bx r3 _022175C2: mov r0, #0 add sp, #4 pop {r3} bx r3 nop _022175CC: .word 0x02241900 thumb_func_start MOD13_022175D0 MOD13_022175D0: ; 0x022175D0 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 add r0, r6, #0 mov r1, #2 bl _s32_div_f add r7, r0, #0 add r0, r4, #0 add r1, r5, r7 add r2, r7, #0 bl MOD13_022174CC add r0, r4, r7 add r1, r5, #0 add r2, r7, #0 bl MOD13_022174CC add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD13_022174CC add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221760C MOD13_0221760C: ; 0x0221760C push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 add r0, r2, #0 mov r1, #2 bl _s32_div_f mov r6, #0 cmp r0, #0 ble _02217630 _02217620: add r3, r0, r6 ldrb r2, [r4, r3] ldrsb r1, [r5, r6] eor r2, r1 strb r2, [r4, r3] add r6, r6, #1 cmp r6, r0 blt _02217620 _02217630: pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217638 MOD13_02217638: ; 0x02217638 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r1, #0 str r3, [sp] ldr r4, [sp, #0x18] add r0, r2, #0 mov r1, #2 bl _s32_div_f add r7, r0, #0 add r0, r6, #0 add r1, r4, #0 bl _s32_div_f add r2, r1, #0 mov r1, #0 cmp r7, #0 ble _0221767A add r6, r1, #0 _02217660: strb r1, [r5, r1] ldrsb r0, [r5, r1] ldr r3, [sp] ldrsb r3, [r3, r2] add r2, r2, #1 eor r0, r3 strb r0, [r5, r1] cmp r2, r4 blt _02217674 add r2, r6, #0 _02217674: add r1, r1, #1 cmp r1, r7 blt _02217660 _0221767A: add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217684 MOD13_02217684: ; 0x02217684 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 add r5, r1, #0 str r2, [sp, #4] str r3, [sp, #8] add r0, r5, #0 mov r1, #2 bl _s32_div_f bl MOD13_022198B4 add r6, r0, #0 cmp r6, #0 bne _022176AE mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _022176AE: add r0, r5, #0 bl MOD13_022198B4 str r0, [sp, #0xc] cmp r0, #0 bne _022176CC add r0, r6, #0 bl MOD13_022198A0 mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _022176CC: mov r4, #0 _022176CE: ldr r0, [sp, #8] str r0, [sp] add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 ldr r3, [sp, #4] bl MOD13_02217638 add r0, r6, #0 add r1, r7, #0 add r2, r5, #0 bl MOD13_0221760C add r0, r7, #0 add r1, r5, #0 ldr r2, [sp, #0xc] bl MOD13_022175D0 add r4, r4, #1 cmp r4, #2 blt _022176CE add r0, r6, #0 bl MOD13_022198A0 ldr r0, [sp, #0xc] bl MOD13_022198A0 mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217710 MOD13_02217710: ; 0x02217710 push {r4, r5, r6, r7} mov r6, #0 add r4, r6, #0 ldr r2, _02217744 ; =0xEDB88320 mov r3, #1 _0221771A: add r7, r6, #0 add r5, r4, #0 _0221771E: add r0, r7, #0 and r0, r3 cmp r0, #0 beq _0221772C lsr r7, r7, #1 eor r7, r2 b _0221772E _0221772C: lsr r7, r7, #1 _0221772E: add r5, r5, #1 cmp r5, #8 blt _0221771E stmia r1!, {r7} add r6, r6, #1 ldr r0, _02217748 ; =0x00000100 cmp r6, r0 blt _0221771A pop {r4, r5, r6, r7} bx lr nop _02217744: .word 0xEDB88320 _02217748: .word 0x00000100 thumb_func_start MOD13_0221774C MOD13_0221774C: ; 0x0221774C push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r7, r1, #0 add r4, r2, #0 ldr r6, [sp, #0x18] cmp r3, #0 bne _02217764 add r0, r3, #0 add r1, r6, #0 bl MOD13_02217710 _02217764: mov r1, #0 cmp r4, #0 ble _02217782 mov r2, #0xff _0221776C: lsr r0, r5, #8 ldrb r3, [r7, r1] eor r5, r3 and r5, r2 lsl r3, r5, #2 ldr r3, [r6, r3] add r5, r0, #0 eor r5, r3 add r1, r1, #1 cmp r1, r4 blt _0221776C _02217782: add r0, r5, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_0221778C MOD13_0221778C: ; 0x0221778C push {r4, lr} sub sp, #8 add r4, r0, #0 add r2, r1, #0 ldr r0, _022177B4 ; =0x02240E60 str r0, [sp] mov r3, #0 mvn r0, r3 add r1, r4, #0 bl MOD13_0221774C mov r1, #0 mvn r1, r1 eor r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add sp, #8 pop {r4} pop {r3} bx r3 .align 2, 0 _022177B4: .word 0x02240E60 thumb_func_start MOD13_022177B8 MOD13_022177B8: ; 0x022177B8 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 ldr r4, [r5, #8] ldr r0, [r5, #0xc] str r0, [sp] ldr r0, [r5] add r0, r0, #1 ldr r1, [sp] bl _u32_div_f lsl r0, r1, #0x18 lsr r6, r0, #0x18 ldrb r7, [r4, r6] ldr r0, [r5, #4] add r0, r7, r0 ldr r1, [sp] bl _u32_div_f lsl r0, r1, #0x18 lsr r1, r0, #0x18 ldrb r0, [r4, r1] str r6, [r5] str r1, [r5, #4] strb r7, [r4, r1] strb r0, [r4, r6] add r0, r7, r0 ldr r1, [r5, #0xc] bl _u32_div_f ldrb r0, [r4, r1] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217800 MOD13_02217800: ; 0x02217800 push {r4, r5, r6, r7, lr} sub sp, #4 str r0, [sp] add r5, r1, #0 add r6, r2, #0 add r7, r3, #0 mov r4, #0 cmp r7, #0 bls _02217828 _02217812: ldr r0, [sp] bl MOD13_022177B8 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldrb r0, [r6, r4] eor r1, r0 strb r1, [r5, r4] add r4, r4, #1 cmp r4, r7 blo _02217812 _02217828: add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_02217830 MOD13_02217830: ; 0x02217830 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp] str r1, [sp, #4] str r2, [sp, #8] str r3, [sp, #0xc] ldr r5, [r0, #8] mov r0, #0 ldr r1, [sp] str r0, [r1, #4] ldr r2, [r1, #4] str r2, [r1] lsl r2, r3, #0 str r2, [r1, #0xc] lsl r1, r3, #0 cmp r1, #0 bls _0221785C _02217852: strb r0, [r5, r0] add r0, r0, #1 ldr r1, [sp, #0xc] cmp r0, r1 blo _02217852 _0221785C: mov r1, #0 add r6, r1, #0 add r4, r1, #0 ldr r0, [sp, #0xc] cmp r0, #0 bls _02217894 str r1, [sp, #0x10] _0221786A: ldrb r7, [r5, r4] ldr r0, [sp, #4] ldrb r0, [r0, r6] add r0, r1, r0 add r0, r7, r0 ldr r1, [sp] ldr r1, [r1, #0xc] bl _u32_div_f ldrb r0, [r5, r1] strb r7, [r5, r1] strb r0, [r5, r4] add r6, r6, #1 ldr r0, [sp, #8] cmp r6, r0 blo _0221788C ldr r6, [sp, #0x10] _0221788C: add r4, r4, #1 ldr r0, [sp, #0xc] cmp r4, r0 blo _0221786A _02217894: add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_0221789C MOD13_0221789C: ; 0x0221789C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 add r5, r1, #0 add r4, r2, #0 add r6, r3, #0 add r0, r4, #0 bl MOD13_022198B4 str r0, [sp, #8] cmp r0, #0 bne _022178C6 mov r0, #2 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _022178C6: ldr r0, _02217928 ; =0x02240B7C ldr r1, [sp, #0x28] mov r2, #2 bl MOD13_022174CC ldr r0, _0221792C ; =0x02240B7E ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] bl MOD13_022174CC add r0, sp, #0 ldr r1, _02217928 ; =0x02240B7C ldr r2, [sp, #0x30] add r2, r2, #2 add r3, r4, #0 bl MOD13_02217830 add r0, sp, #0 add r1, r5, #0 add r2, r7, #0 add r3, r4, #0 bl MOD13_02217800 add r0, r5, #0 add r1, r4, #0 bl MOD13_0221778C cmp r0, r6 beq _02217918 mov r0, #0x12 bl MOD13_02218BF4 ldr r0, [sp, #8] bl MOD13_022198A0 mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217918: ldr r0, [sp, #8] bl MOD13_022198A0 mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02217928: .word 0x02240B7C _0221792C: .word 0x02240B7E thumb_func_start MOD13_02217930 MOD13_02217930: ; 0x02217930 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 add r7, r1, #0 add r5, r2, #0 add r4, r3, #0 add r1, r5, #0 bl MOD13_0221778C strb r0, [r4] add r0, r5, #0 bl MOD13_022198B4 str r0, [sp, #0xc] cmp r0, #0 bne _0221795C mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221795C: bl MOD13_022172F0 add r1, sp, #0 strh r0, [r1] ldr r0, [sp, #0x28] add r1, sp, #0 mov r2, #2 bl MOD13_022174CC ldr r0, _022179AC ; =0x02240B7C ldr r1, [sp, #0x28] mov r2, #2 bl MOD13_022174CC ldr r0, _022179B0 ; =0x02240B7E ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] bl MOD13_022174CC add r0, sp, #4 ldr r1, _022179AC ; =0x02240B7C ldr r2, [sp, #0x30] add r2, r2, #2 add r3, r5, #0 bl MOD13_02217830 add r0, sp, #4 add r1, r7, #0 add r2, r6, #0 add r3, r5, #0 bl MOD13_02217800 ldr r0, [sp, #0xc] bl MOD13_022198A0 mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _022179AC: .word 0x02240B7C _022179B0: .word 0x02240B7E thumb_func_start MOD13_022179B4 MOD13_022179B4: ; 0x022179B4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 add r7, r3, #0 add r0, sp, #8 mov r1, #0 mov r2, #8 bl MOD13_022174C0 mov r1, #2 add r0, sp, #8 strb r1, [r0, #1] ldr r0, _02217A14 ; =0x00005790 bl MOD13_022173D0 add r1, sp, #8 strh r0, [r1, #2] ldr r0, _02217A18 ; =0x02240B60 ldr r0, [r0, #0x10] bl MOD13_022173E8 str r0, [sp, #0xc] cmp r4, #0xff beq _022179F2 ldr r1, _02217A18 ; =0x02240B60 mov r0, #0x18 ldrsb r0, [r1, r0] cmp r0, #0 bne _022179F8 _022179F2: mov r0, #0 mvn r0, r0 str r0, [sp, #0xc] _022179F8: add r0, sp, #8 str r0, [sp] mov r0, #8 str r0, [sp, #4] add r0, r7, #0 add r1, r5, #0 add r2, r6, #0 mov r3, #0 bl MOD13_02217440 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02217A14: .word 0x00005790 _02217A18: .word 0x02240B60 thumb_func_start MOD13_02217A1C MOD13_02217A1C: ; 0x02217A1C push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 mov r0, #1 bl MOD13_022173D0 strh r0, [r5] mov r0, #0 strh r0, [r5, #2] strh r0, [r5, #4] lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #6] mov r0, #0 strh r0, [r5, #8] lsl r0, r6, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #0xa] lsl r0, r7, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #0xc] add r1, sp, #8 mov r0, #0x10 ldrsb r0, [r1, r0] strb r0, [r5, #0xe] mov r0, #0x14 ldrsb r0, [r1, r0] strb r0, [r5, #0xf] add r5, #0x10 add r0, r5, #0 ldr r1, [sp, #0x20] mov r2, #8 bl MOD13_022174CC add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217A7C MOD13_02217A7C: ; 0x02217A7C push {r4, r5, lr} sub sp, #0xc add r5, r1, #0 add r4, r3, #0 cmp r0, #1 bne _02217AC0 mov r1, #1 ldr r0, [sp, #0x18] strh r1, [r0] add r0, r5, #2 str r0, [sp] ldr r0, _02217AD4 ; =0x02240B4C str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] add r0, r2, #0 add r1, r5, #4 mov r2, #0 ldrsh r2, [r4, r2] ldr r3, [sp, #0x1c] bl MOD13_02217930 ldrh r0, [r4] bl MOD13_022173D0 strh r0, [r5] mov r0, #0 ldrsh r0, [r4, r0] add r0, r0, #4 strh r0, [r4] add sp, #0xc pop {r4, r5} pop {r3} bx r3 _02217AC0: add r0, r5, #0 add r1, r2, #0 mov r2, #0 ldrsh r2, [r4, r2] bl MOD13_022174CC add sp, #0xc pop {r4, r5} pop {r3} bx r3 .align 2, 0 _02217AD4: .word 0x02240B4C thumb_func_start MOD13_02217AD8 MOD13_02217AD8: ; 0x02217AD8 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 mov r6, #0 ldr r1, _02217B60 ; =0x02240B60 mov r0, #0x19 ldrsb r0, [r1, r0] strb r0, [r5] mov r0, #1 strb r0, [r5, #1] ldr r0, [r1, #4] lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, r5, #6 ldr r1, [r1] add r2, r4, #0 bl MOD13_022174CC lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #2] add r0, r4, #6 lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, r0, #1 mov r1, #2 bl _s32_div_f lsl r0, r0, #0x11 asr r7, r0, #0x10 lsl r0, r7, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #4] add r0, r6, r7 lsl r0, r0, #0x10 asr r6, r0, #0x10 add r4, r5, r7 mov r0, #0x60 strb r0, [r5, r7] mov r0, #0 strb r0, [r4, #1] bl MOD13_022173D0 strh r0, [r4, #4] mov r0, #0xe bl MOD13_022173E8 str r0, [sp] add r0, r4, #6 add r1, sp, #0 mov r2, #4 bl MOD13_022174CC mov r0, #4 bl MOD13_022173D0 strh r0, [r4, #2] add r6, #0xa lsl r0, r6, #0x10 asr r0, r0, #0x10 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02217B60: .word 0x02240B60 thumb_func_start MOD13_02217B64 MOD13_02217B64: ; 0x02217B64 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r1, #0 add r6, r2, #0 ldr r0, _02217BC4 ; =0x02240B48 ldr r4, [r0] add r0, r4, #0 mov r1, #0 ldr r2, _02217BC8 ; =0x000005DC bl MOD13_022174C0 add r0, sp, #0xc add r5, #0x10 add r1, r5, #0 mov r2, #8 bl MOD13_022174CC ldr r0, _02217BCC ; =0x0223F820 bl MOD13_0221736C add r3, r0, #0 add r0, sp, #0xc mov r1, #8 ldr r2, _02217BCC ; =0x0223F820 bl MOD13_02217684 mov r2, #0 str r2, [sp] mov r0, #0x11 str r0, [sp, #4] add r0, sp, #0xc str r0, [sp, #8] add r0, r4, #0 ldr r1, _02217BD0 ; =0x00003000 add r3, r2, #0 bl MOD13_02217A1C add r0, r4, #0 mov r1, #0x18 mov r2, #0 add r3, r6, #0 bl MOD13_022179B4 mov r0, #0 add sp, #0x18 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _02217BC4: .word 0x02240B48 _02217BC8: .word 0x000005DC _02217BCC: .word 0x0223F820 _02217BD0: .word 0x00003000 thumb_func_start MOD13_02217BD4 MOD13_02217BD4: ; 0x02217BD4 push {r4, r5, r6, lr} sub sp, #0x28 add r5, r1, #0 add r6, r2, #0 mov r1, #0 add r0, sp, #0xc strb r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] ldr r0, _02217CB0 ; =0x02240B48 ldr r4, [r0] add r0, sp, #0x1c mov r2, #8 bl MOD13_022174C0 add r0, r4, #0 mov r1, #0 ldr r2, _02217CB4 ; =0x000005DC bl MOD13_022174C0 mov r1, #2 add r0, sp, #0xc strb r1, [r0, #0x10] mov r1, #0 strb r1, [r0, #0x11] mov r0, #4 bl MOD13_022173D0 add r1, sp, #0xc strh r0, [r1, #0x12] ldr r0, _02217CB8 ; =0x02240B60 ldr r0, [r0, #8] str r0, [sp, #0x20] bl MOD13_022173E8 str r0, [sp, #0x20] mov r1, #8 add r0, sp, #0xc strh r1, [r0, #2] add r0, sp, #0x10 str r0, [sp] add r0, sp, #0xc str r0, [sp, #4] ldr r0, _02217CBC ; =0x02240B34 ldr r0, [r0] add r1, r4, #0 add r1, #0x18 add r2, sp, #0x1c add r3, sp, #0xc add r3, #2 bl MOD13_02217A7C add r0, sp, #0x10 add r0, #2 add r5, #8 add r1, r5, #0 mov r2, #8 bl MOD13_022174CC add r0, sp, #0x10 add r0, #2 mov r1, #8 ldr r2, _02217CC0 ; =0x0223F820 mov r3, #6 bl MOD13_02217684 cmp r0, #0 beq _02217C6E mov r0, #2 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 add sp, #0x28 pop {r4, r5, r6} pop {r3} bx r3 _02217C6E: add r3, sp, #0xc mov r0, #0 ldrsb r0, [r3, r0] str r0, [sp] mov r0, #0x11 str r0, [sp, #4] add r0, sp, #0x10 add r0, #2 str r0, [sp, #8] add r0, r4, #0 ldr r1, _02217CC4 ; =0x00002000 mov r2, #2 ldrsh r2, [r3, r2] mov r5, #4 ldrsh r3, [r3, r5] bl MOD13_02217A1C add r2, sp, #0xc mov r1, #2 ldrsh r0, [r2, r1] add r0, #0x18 strh r0, [r2, #2] add r0, r4, #0 ldrsh r1, [r2, r1] mov r2, #0 add r3, r6, #0 bl MOD13_022179B4 mov r0, #0 add sp, #0x28 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _02217CB0: .word 0x02240B48 _02217CB4: .word 0x000005DC _02217CB8: .word 0x02240B60 _02217CBC: .word 0x02240B34 _02217CC0: .word 0x0223F820 _02217CC4: .word 0x00002000 thumb_func_start MOD13_02217CC8 MOD13_02217CC8: ; 0x02217CC8 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r7, r1, #0 str r2, [sp, #0xc] mov r1, #0 add r0, sp, #0x10 strb r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] ldr r0, _02217E08 ; =0x02240B48 ldr r5, [r0] add r0, r5, #0 ldr r2, _02217E0C ; =0x000005DC bl MOD13_022174C0 ldr r0, _02217E10 ; =0x00000210 bl MOD13_022198B4 add r4, r0, #0 cmp r4, #0 bne _02217D04 mov r0, #2 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217D04: mov r1, #0 ldr r2, _02217E10 ; =0x00000210 bl MOD13_022174C0 add r6, r5, #0 add r6, #0x18 ldr r0, _02217E14 ; =0x02240B4C add r1, r7, #0 mov r2, #8 bl MOD13_022174CC add r0, sp, #0x14 add r0, #2 ldr r1, _02217E14 ; =0x02240B4C mov r2, #8 bl MOD13_022174CC add r0, r4, #4 bl MOD13_02217AD8 add r1, sp, #0x10 strh r0, [r1, #2] mov r0, #2 ldrsh r0, [r1, r0] cmp r0, #0 bge _02217D54 mov r0, #3 bl MOD13_02218BF4 cmp r4, #0 beq _02217D48 add r0, r4, #0 bl MOD13_022198A0 _02217D48: mov r0, #0 mvn r0, r0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217D54: mov r0, #0 strb r0, [r4] ldrh r0, [r1, #2] bl MOD13_022173D0 strh r0, [r4, #2] add r1, sp, #0x10 mov r0, #2 ldrsh r0, [r1, r0] add r0, r0, #4 strh r0, [r1, #2] add r0, sp, #0x14 str r0, [sp] add r0, sp, #0x10 str r0, [sp, #4] mov r0, #0 add r1, r6, #0 add r2, r4, #0 add r3, sp, #0x10 add r3, #2 bl MOD13_02217A7C add r1, sp, #0x10 mov r0, #4 ldrsh r2, [r1, r0] mov r0, #0x10 orr r2, r0 strh r2, [r1, #4] add r0, sp, #0x14 add r0, #2 mov r1, #8 ldr r2, _02217E18 ; =0x0223F820 mov r3, #6 bl MOD13_02217684 cmp r0, #0 beq _02217DBA mov r0, #2 bl MOD13_02218BF4 cmp r4, #0 beq _02217DAE add r0, r4, #0 bl MOD13_022198A0 _02217DAE: mov r0, #0 mvn r0, r0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217DBA: add r3, sp, #0x10 mov r0, #0 ldrsb r0, [r3, r0] str r0, [sp] mov r0, #0x11 str r0, [sp, #4] add r0, sp, #0x14 add r0, #2 str r0, [sp, #8] add r0, r5, #0 ldr r1, _02217E1C ; =0x00001000 mov r2, #2 ldrsh r2, [r3, r2] mov r6, #4 ldrsh r3, [r3, r6] bl MOD13_02217A1C add r2, sp, #0x10 mov r1, #2 ldrsh r0, [r2, r1] add r0, #0x18 strh r0, [r2, #2] add r0, r5, #0 ldrsh r1, [r2, r1] mov r2, #0xff ldr r3, [sp, #0xc] bl MOD13_022179B4 cmp r4, #0 beq _02217DFC add r0, r4, #0 bl MOD13_022198A0 _02217DFC: mov r0, #0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02217E08: .word 0x02240B48 _02217E0C: .word 0x000005DC _02217E10: .word 0x00000210 _02217E14: .word 0x02240B4C _02217E18: .word 0x0223F820 _02217E1C: .word 0x00001000 thumb_func_start MOD13_02217E20 MOD13_02217E20: ; 0x02217E20 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 add r6, r3, #0 cmp r0, #0 beq _02217E36 cmp r0, #1 beq _02217E4C cmp r0, #2 beq _02217E62 b _02217E78 _02217E36: mov r0, #2 bl MOD13_02218870 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD13_02217CC8 pop {r4, r5, r6} pop {r3} bx r3 _02217E4C: mov r0, #3 bl MOD13_02218870 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD13_02217BD4 pop {r4, r5, r6} pop {r3} bx r3 _02217E62: mov r0, #5 bl MOD13_02218870 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD13_02217B64 pop {r4, r5, r6} pop {r3} bx r3 _02217E78: mov r0, #0 mvn r0, r0 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02217E84 MOD13_02217E84: ; 0x02217E84 mov r2, #0 mov r1, #0x10 and r0, r1 cmp r0, #0 beq _02217E90 mov r2, #1 _02217E90: add r0, r2, #0 bx lr thumb_func_start MOD13_02217E94 MOD13_02217E94: ; 0x02217E94 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp] add r4, r1, #0 add r6, r2, #0 str r3, [sp, #4] mov r5, #0 cmp r6, #0 bgt _02217EB2 mov r0, #1 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217EB2: ldr r1, _02217FA0 ; =0x0223F7B8 add r7, r1, r0 _02217EB6: add r2, r4, #0 ldrb r1, [r4] ldrb r0, [r7] cmp r1, r0 beq _02217EDC ldrh r0, [r4, #2] bl MOD13_02217380 add r0, r0, #4 add r4, r4, r0 sub r6, r6, r0 cmp r6, #0 bgt _02217EB6 mov r0, #3 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _02217EDC: add r4, r4, #4 ldrh r0, [r2, #2] bl MOD13_02217380 add r7, r0, #0 ldr r0, _02217FA4 ; =0x00000350 ldr r1, [sp] mul r1, r0 ldr r0, [sp, #4] add r6, r0, r1 ldr r0, [sp, #0x28] ldr r1, [sp] add r1, r1, #3 lsl r1, r1, #7 add r0, r0, r1 str r0, [sp, #8] mov r0, #2 mvn r0, r0 str r0, [sp, #0xc] _02217F02: ldrb r0, [r4] cmp r0, #0xa bhi _02217F76 add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _02217F16: ; jump table .short _02217F76 - _02217F16 + 1 ; case 0 .short _02217F76 - _02217F16 + 1 ; case 1 .short _02217F76 - _02217F16 + 1 ; case 2 .short _02217F2C - _02217F16 + 1 ; case 3 .short _02217F3C - _02217F16 + 1 ; case 4 .short _02217F4C - _02217F16 + 1 ; case 5 .short _02217F5C - _02217F16 + 1 ; case 6 .short _02217F76 - _02217F16 + 1 ; case 7 .short _02217F76 - _02217F16 + 1 ; case 8 .short _02217F76 - _02217F16 + 1 ; case 9 .short _02217F6C - _02217F16 + 1 ; case 10 _02217F2C: add r0, r4, #0 add r1, r6, #0 add r1, #8 bl MOD13_022180CC mov r1, #1 orr r5, r1 b _02217F78 _02217F3C: add r0, r4, #0 ldr r1, _02217FA8 ; =0x00000138 add r1, r6, r1 bl MOD13_022180CC mov r1, #2 orr r5, r1 b _02217F78 _02217F4C: add r0, r4, #0 ldr r1, _02217FAC ; =0x00000268 add r1, r6, r1 bl MOD13_02217FFC mov r1, #4 orr r5, r1 b _02217F78 _02217F5C: add r0, r4, #0 ldr r1, _02217FB0 ; =0x000002D8 add r1, r6, r1 bl MOD13_02217FFC mov r1, #8 orr r5, r1 b _02217F78 _02217F6C: add r0, r4, #0 ldr r1, [sp, #8] bl MOD13_02217FB8 b _02217F78 _02217F76: ldr r0, [sp, #0xc] _02217F78: cmp r0, #0 bne _02217F96 ldrh r0, [r4, #2] bl MOD13_02217380 add r0, r0, #4 add r4, r4, r0 sub r7, r7, r0 cmp r7, #0 bgt _02217F02 ldr r0, _02217FB4 ; =0x02240B60 ldr r1, [r0, #0xc] orr r1, r5 str r1, [r0, #0xc] mov r0, #0 _02217F96: add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02217FA0: .word 0x0223F7B8 _02217FA4: .word 0x00000350 _02217FA8: .word 0x00000138 _02217FAC: .word 0x00000268 _02217FB0: .word 0x000002D8 _02217FB4: .word 0x02240B60 thumb_func_start MOD13_02217FB8 MOD13_02217FB8: ; 0x02217FB8 push {r4, r5, lr} sub sp, #4 add r5, r1, #0 add r4, r0, #6 ldrh r0, [r4, #2] bl MOD13_02217380 add r2, r0, #0 cmp r2, #0 bgt _02217FD8 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5} pop {r3} bx r3 _02217FD8: ldrb r0, [r4] cmp r0, #0x70 beq _02217FEA mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5} pop {r3} bx r3 _02217FEA: add r0, r5, #0 add r1, r4, #6 bl MOD13_022174CC mov r0, #0 add sp, #4 pop {r4, r5} pop {r3} bx r3 thumb_func_start MOD13_02217FFC MOD13_02217FFC: ; 0x02217FFC push {r4, r5, r6, r7, lr} sub sp, #4 add r7, r0, #0 add r6, r1, #0 add r5, r7, #6 _02218006: ldrh r0, [r5, #2] bl MOD13_02217380 add r4, r0, #0 ldrb r0, [r5] cmp r0, #0x35 bgt _0221801E cmp r0, #0x35 bge _0221803E cmp r0, #0x30 beq _0221802E b _0221804E _0221801E: cmp r0, #0x40 bgt _02218028 cmp r0, #0x40 beq _0221802E b _0221804E _02218028: cmp r0, #0x45 beq _0221803E b _0221804E _0221802E: cmp r4, #0x40 bls _0221804E mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221803E: cmp r4, #0x21 bls _0221804E mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221804E: cmp r0, #0x35 bgt _0221805C cmp r0, #0x35 bge _0221807C cmp r0, #0x30 beq _0221806C b _022180A4 _0221805C: cmp r0, #0x40 bgt _02218066 cmp r0, #0x40 beq _0221806C b _022180A4 _02218066: cmp r0, #0x45 beq _0221807C b _022180A4 _0221806C: add r0, r6, #0 add r0, #0x30 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC str r4, [r6, #4] b _022180B0 _0221807C: cmp r4, #0 beq _02218096 sub r0, r4, #1 add r0, r5, r0 ldrb r0, [r0, #6] cmp r0, #0 beq _02218096 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218096: add r0, r6, #0 add r0, #8 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC b _022180B0 _022180A4: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022180B0: ldrh r0, [r5, #4] cmp r0, #0 beq _022180C0 bl MOD13_02217380 add r1, r7, #6 add r5, r1, r0 b _02218006 _022180C0: mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_022180CC MOD13_022180CC: ; 0x022180CC push {r4, r5, r6, r7, lr} sub sp, #4 add r7, r0, #0 add r6, r1, #0 add r5, r7, #6 _022180D6: ldrh r0, [r5, #2] bl MOD13_02217380 add r4, r0, #0 ldrb r0, [r5] cmp r0, #0x21 bgt _02218114 cmp r0, #0x21 bge _02218138 cmp r0, #0x15 bgt _0221810E add r1, r0, #0 sub r1, #0x10 cmp r1, #0 blt _02218158 add r1, r1, r1 add r1, pc ldrh r1, [r1, #8] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r1, pc bx r1 _02218102: ; jump table .short _02218128 - _02218102 + 1 ; case 0 .short _02218128 - _02218102 + 1 ; case 1 .short _02218128 - _02218102 + 1 ; case 2 .short _02218128 - _02218102 + 1 ; case 3 .short _02218158 - _02218102 + 1 ; case 4 .short _02218148 - _02218102 + 1 ; case 5 _0221810E: cmp r0, #0x20 beq _02218138 b _02218158 _02218114: cmp r0, #0x23 bgt _02218122 cmp r0, #0x23 bge _02218138 cmp r0, #0x22 beq _02218138 b _02218158 _02218122: cmp r0, #0x25 beq _02218148 b _02218158 _02218128: cmp r4, #5 bls _02218158 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218138: cmp r4, #0xd bls _02218158 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218148: cmp r4, #0x21 bls _02218158 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218158: cmp r0, #0x21 bgt _0221818C cmp r0, #0x21 bge _022181B0 cmp r0, #0x15 bgt _02218186 add r1, r0, #0 sub r1, #0x10 cmp r1, #0 blt _02218208 add r1, r1, r1 add r1, pc ldrh r1, [r1, #8] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r1, pc bx r1 _0221817A: ; jump table .short _022181A0 - _0221817A + 1 ; case 0 .short _022181B0 - _0221817A + 1 ; case 1 .short _022181C0 - _0221817A + 1 ; case 2 .short _022181D0 - _0221817A + 1 ; case 3 .short _02218208 - _0221817A + 1 ; case 4 .short _022181E0 - _0221817A + 1 ; case 5 _02218186: cmp r0, #0x20 beq _022181A0 b _02218208 _0221818C: cmp r0, #0x23 bgt _0221819A cmp r0, #0x23 bge _022181D0 cmp r0, #0x22 beq _022181C0 b _02218208 _0221819A: cmp r0, #0x25 beq _022181E0 b _02218208 _022181A0: add r0, r6, #0 add r0, #0x30 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC str r4, [r6, #4] b _02218214 _022181B0: add r0, r6, #0 add r0, #0x70 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC str r4, [r6, #4] b _02218214 _022181C0: add r0, r6, #0 add r0, #0xb0 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC str r4, [r6, #4] b _02218214 _022181D0: add r0, r6, #0 add r0, #0xf0 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC str r4, [r6, #4] b _02218214 _022181E0: cmp r4, #0 beq _022181FA sub r0, r4, #1 add r0, r5, r0 ldrb r0, [r0, #6] cmp r0, #0 beq _022181FA mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022181FA: add r0, r6, #0 add r0, #8 add r1, r5, #6 add r2, r4, #0 bl MOD13_022174CC b _02218214 _02218208: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218214: ldrh r0, [r5, #4] cmp r0, #0 beq _02218224 bl MOD13_02217380 add r1, r7, #6 add r5, r1, r0 b _022180D6 _02218224: mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02218230 MOD13_02218230: ; 0x02218230 push {r4, r5} mov r5, #0 sub r2, r1, #1 add r3, r0, r2 add r4, r5, #0 cmp r1, #0 ble _0221824C _0221823E: lsl r2, r5, #8 ldrb r0, [r3] sub r3, r3, #1 add r5, r2, r0 add r4, r4, #1 cmp r4, r1 blt _0221823E _0221824C: add r0, r5, #0 pop {r4, r5} bx lr .align 2, 0 thumb_func_start MOD13_02218254 MOD13_02218254: ; 0x02218254 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r1, #0 add r0, r5, #0 mov r1, #0 ldr r2, _02218320 ; =0x00000104 bl MOD13_022174C0 add r4, r6, #0 ldr r7, _02218324 ; =0x02240B60 _0221826A: ldrh r0, [r4, #2] bl MOD13_02217380 add r2, r0, #0 cmp r2, #0 bgt _02218282 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218282: ldrb r0, [r4] cmp r0, #6 bhi _022182FC add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _02218296: ; jump table .short _022182A4 - _02218296 + 1 ; case 0 .short _022182AE - _02218296 + 1 ; case 1 .short _022182BA - _02218296 + 1 ; case 2 .short _022182C6 - _02218296 + 1 ; case 3 .short _022182C6 - _02218296 + 1 ; case 4 .short _022182DC - _02218296 + 1 ; case 5 .short _022182EC - _02218296 + 1 ; case 6 _022182A4: add r0, r5, #0 add r1, r4, #6 bl MOD13_022174CC b _02218308 _022182AE: add r0, r5, #0 add r0, #0x80 add r1, r4, #6 bl MOD13_022174CC b _02218308 _022182BA: ldr r0, _02218328 ; =0x00000100 add r0, r5, r0 add r1, r4, #6 bl MOD13_022174CC b _02218308 _022182C6: ldrb r0, [r4, #6] bl MOD13_02217380 cmp r0, #0 bgt _02218308 mov r0, #1 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022182DC: add r0, r4, #6 add r1, r2, #0 bl MOD13_02218230 bl MOD13_02217398 str r0, [r7, #0x10] b _02218308 _022182EC: add r0, r4, #6 add r1, r2, #0 bl MOD13_02218230 bl MOD13_02217398 str r0, [r7, #0x14] b _02218308 _022182FC: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218308: ldrh r0, [r4, #4] cmp r0, #0 beq _02218316 bl MOD13_02217380 add r4, r6, r0 b _0221826A _02218316: mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02218320: .word 0x00000104 _02218324: .word 0x02240B60 _02218328: .word 0x00000100 thumb_func_start MOD13_0221832C MOD13_0221832C: ; 0x0221832C push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r4, #0 ldr r0, _0221837C ; =0x0223F820 bl MOD13_0221736C add r3, r0, #0 add r0, r5, #0 mov r1, #8 ldr r2, _0221837C ; =0x0223F820 bl MOD13_02217684 add r0, r6, #0 add r1, r5, #0 mov r2, #6 bl MOD13_022174DC cmp r0, #0 beq _0221835A lsl r0, r4, #0 mvn r4, r0 b _02218372 _0221835A: ldrh r0, [r6, #6] bl MOD13_02217380 add r6, r0, #0 ldrh r0, [r5, #6] bl MOD13_02217380 add r1, r6, #1 cmp r1, r0 beq _02218372 mov r0, #1 mvn r4, r0 _02218372: add r0, r4, #0 pop {r4, r5, r6} pop {r3} bx r3 nop _0221837C: .word 0x0223F820 thumb_func_start MOD13_02218380 MOD13_02218380: ; 0x02218380 push {r4, r5, r6, lr} mov r4, #0 add r5, r4, #0 add r6, r4, #0 ldr r3, _022183C0 ; =0x02240B4C _0221838A: ldrb r2, [r3] cmp r2, #0 beq _02218394 mov r5, #1 b _0221839C _02218394: add r3, r3, #1 add r6, r6, #1 cmp r6, #6 blt _0221838A _0221839C: cmp r5, #0 beq _022183B0 ldr r0, _022183C0 ; =0x02240B4C mov r2, #6 bl MOD13_022174DC cmp r0, #0 beq _022183B8 mov r4, #1 b _022183B8 _022183B0: ldr r1, _022183C4 ; =0x00001000 cmp r0, r1 beq _022183B8 mov r4, #2 _022183B8: add r0, r4, #0 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _022183C0: .word 0x02240B4C _022183C4: .word 0x00001000 thumb_func_start MOD13_022183C8 MOD13_022183C8: ; 0x022183C8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r4, r5, #0 add r4, #0x18 add r0, sp, #0xc add r1, r5, #0 add r1, #0x10 mov r2, #8 bl MOD13_022174CC ldr r0, _022184CC ; =0x0223F820 bl MOD13_0221736C add r3, r0, #0 add r0, sp, #0xc mov r1, #8 ldr r2, _022184CC ; =0x0223F820 bl MOD13_02217684 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _0221840A mov r0, #2 bl MOD13_02218BF4 mov r0, #0x63 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221840A: ldrh r0, [r5, #6] bl MOD13_02217380 add r1, sp, #0xc bl MOD13_02218380 cmp r0, #0 bne _022184C4 ldrh r0, [r5, #6] bl MOD13_02217380 ldr r1, _022184D0 ; =0x00001000 cmp r0, r1 bne _02218430 ldr r0, _022184D4 ; =0x02240B4C add r1, sp, #0xc mov r2, #8 bl MOD13_022174CC _02218430: ldrh r0, [r5, #0xc] bl MOD13_02217380 mov r1, #0xf and r0, r1 cmp r0, #0 bne _02218448 mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218448: ldrh r0, [r4] bl MOD13_02217380 add r6, r0, #0 bl MOD13_022198B4 add r7, r0, #0 cmp r7, #0 bne _0221846A mov r0, #2 bl MOD13_02218BF4 mov r0, #0x64 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221846A: add r0, r4, #2 str r0, [sp] ldr r0, _022184D4 ; =0x02240B4C str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] add r0, r4, #4 add r1, r7, #0 add r2, r6, #0 ldrb r3, [r5, #0xe] bl MOD13_0221789C cmp r0, #0 bge _022184A8 add r0, r7, #0 bl MOD13_022198A0 bl MOD13_02218BE8 cmp r0, #2 bne _0221849E mov r0, #0x64 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221849E: mov r0, #0xc8 add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 _022184A8: add r0, r4, #0 add r1, r7, #0 add r2, r6, #0 bl MOD13_022174CC lsl r0, r6, #0x10 lsr r0, r0, #0x10 bl MOD13_022173D0 strh r0, [r5, #0xa] add r0, r7, #0 bl MOD13_022198A0 mov r0, #0 _022184C4: add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _022184CC: .word 0x0223F820 _022184D0: .word 0x00001000 _022184D4: .word 0x02240B4C thumb_func_start MOD13_022184D8 MOD13_022184D8: ; 0x022184D8 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r2, #0 cmp r6, #2 beq _022184EE ldr r1, [r5] add r1, r1, #1 str r1, [r5] pop {r4, r5, r6} pop {r3} bx r3 _022184EE: add r4, r1, #0 add r4, #0x24 add r3, #0x10 add r0, r3, #0 add r1, #0xc add r1, #0x10 bl MOD13_0221832C cmp r0, #0 bge _02218510 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 pop {r4, r5, r6} pop {r3} bx r3 _02218510: ldrb r0, [r4] cmp r0, #7 beq _02218524 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 pop {r4, r5, r6} pop {r3} bx r3 _02218524: ldrh r0, [r4, #2] bl MOD13_02217380 cmp r0, #0 bne _0221853C ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 pop {r4, r5, r6} pop {r3} bx r3 _0221853C: ldr r0, [r4, #4] bl MOD13_02217398 cmp r0, #0 bne _0221854E mov r0, #0x64 pop {r4, r5, r6} pop {r3} bx r3 _0221854E: ldr r0, [r4, #4] bl MOD13_02217398 mov r1, #1 mvn r1, r1 cmp r0, r1 bne _0221856C mov r0, #0x14 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 pop {r4, r5, r6} pop {r3} bx r3 _0221856C: ldr r0, [r4, #4] bl MOD13_02217398 mov r1, #2 mvn r1, r1 cmp r0, r1 bne _0221858A mov r0, #0x15 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 pop {r4, r5, r6} pop {r3} bx r3 _0221858A: mov r0, #0x18 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221859C MOD13_0221859C: ; 0x0221859C push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r2, #0 cmp r6, #1 beq _022185B6 ldr r1, [r5] add r1, r1, #1 str r1, [r5] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022185B6: add r7, r1, #0 add r7, #0xc add r4, r1, #0 add r4, #0x24 add r3, #8 add r0, r3, #0 add r1, r7, #0 add r1, #0x10 bl MOD13_0221832C cmp r0, #0 bge _022185DE ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022185DE: ldrh r0, [r4, #2] bl MOD13_02217380 cmp r0, #0 bne _022185F8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022185F8: ldrb r0, [r4] cmp r0, #7 bne _0221863C ldr r0, [r4, #4] bl MOD13_02217398 mov r1, #1 mvn r1, r1 cmp r0, r1 bne _02218614 mov r0, #0x14 bl MOD13_02218BF4 b _02218630 _02218614: ldr r0, [r4, #4] bl MOD13_02217398 mov r1, #2 mvn r1, r1 cmp r0, r1 bne _0221862A mov r0, #0x15 bl MOD13_02218BF4 b _02218630 _0221862A: mov r0, #0x18 bl MOD13_02218BF4 _02218630: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221863C: ldr r0, _02218694 ; =0x02241260 mov r1, #0 ldr r2, _02218698 ; =0x000006A0 bl MOD13_022174C0 ldrh r0, [r7, #0xa] bl MOD13_02217380 add r2, r0, #0 ldr r0, _0221869C ; =0x02240BE0 str r0, [sp] mov r0, #0 add r1, r4, #0 ldr r3, _02218694 ; =0x02241260 bl MOD13_02217E94 cmp r0, #0 bge _02218670 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218670: ldr r0, _022186A0 ; =0x02240B60 ldr r1, [r0, #0xc] ldr r0, [r0, #8] and r1, r0 cmp r1, #0 bne _02218686 add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218686: mov r0, #0 str r0, [r5] mov r0, #2 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02218694: .word 0x02241260 _02218698: .word 0x000006A0 _0221869C: .word 0x02240BE0 _022186A0: .word 0x02240B60 thumb_func_start MOD13_022186A4 MOD13_022186A4: ; 0x022186A4 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r2, #0 cmp r6, #0 beq _022186BE ldr r1, [r5] add r1, r1, #1 str r1, [r5] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022186BE: add r7, r1, #0 add r7, #0xc add r4, r1, #0 add r4, #0x24 add r0, r3, #0 add r1, r7, #0 add r1, #0x10 bl MOD13_0221832C cmp r0, #0 bge _022186E4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022186E4: ldrh r0, [r4, #2] bl MOD13_02217380 cmp r0, #0 bne _022186FE ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022186FE: ldrb r0, [r4] cmp r0, #7 bne _02218744 add r5, r4, #4 ldr r0, [r4, #4] bl MOD13_02217398 mov r1, #1 mvn r1, r1 cmp r0, r1 bne _0221871C mov r0, #0x14 bl MOD13_02218BF4 b _02218738 _0221871C: ldr r0, [r5] bl MOD13_02217398 mov r1, #2 mvn r1, r1 cmp r0, r1 bne _02218732 mov r0, #0x15 bl MOD13_02218BF4 b _02218738 _02218732: mov r0, #0x18 bl MOD13_02218BF4 _02218738: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218744: cmp r0, #1 beq _02218758 ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218758: add r0, r4, #4 ldr r1, _022187AC ; =0x02240BE0 bl MOD13_02218254 cmp r0, #0 bge _0221878E mov r1, #1 mvn r1, r1 cmp r0, r1 bne _0221877E mov r0, #0x16 bl MOD13_02218BF4 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221877E: ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221878E: ldrh r0, [r7, #0xc] bl MOD13_02217380 bl MOD13_02217E84 ldr r1, _022187B0 ; =0x02240B34 str r0, [r1] mov r0, #0 str r0, [r5] mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _022187AC: .word 0x02240BE0 _022187B0: .word 0x02240B34 thumb_func_start MOD13_022187B4 MOD13_022187B4: ; 0x022187B4 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 str r3, [sp] add r7, r6, #0 add r7, #0xc ldrh r0, [r6, #0xc] bl MOD13_02217380 cmp r0, #1 bhs _022187DE ldr r0, [r4] add r0, r0, #1 str r0, [r4] add r0, r5, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022187DE: ldrb r0, [r7, #0xf] cmp r0, #0x11 beq _022187F4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] add r0, r5, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _022187F4: add r0, r6, #0 add r0, #0xc bl MOD13_022183C8 cmp r0, #0 ble _02218810 ldr r0, [r4] add r0, r0, #1 str r0, [r4] add r0, r5, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02218810: ldrh r0, [r7, #6] bl MOD13_02217380 ldr r1, _02218864 ; =0x00001010 cmp r0, r1 beq _0221882A ldr r1, _02218868 ; =0x00002010 cmp r0, r1 beq _0221883A ldr r1, _0221886C ; =0x00003010 cmp r0, r1 beq _0221884A b _02218858 _0221882A: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 ldr r3, [sp] bl MOD13_022186A4 add r5, r0, #0 b _02218858 _0221883A: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 ldr r3, [sp] bl MOD13_0221859C add r5, r0, #0 b _02218858 _0221884A: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 ldr r3, [sp] bl MOD13_022184D8 add r5, r0, #0 _02218858: add r0, r5, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02218864: .word 0x00001010 _02218868: .word 0x00002010 _0221886C: .word 0x00003010 thumb_func_start MOD13_02218870 MOD13_02218870: ; 0x02218870 push {lr} sub sp, #4 mov r3, #0 mvn r1, r3 cmp r0, r1 bne _02218888 ldr r1, _022188A4 ; =0x0223F7C4 str r0, [r1] add r0, r3, #0 add sp, #4 pop {r3} bx r3 _02218888: ldr r1, _022188A4 ; =0x0223F7C4 ldr r2, [r1] cmp r2, r0 beq _0221889C str r0, [r1] bl MOD13_022198C8 add sp, #4 pop {r3} bx r3 _0221889C: add r0, r3, #0 add sp, #4 pop {r3} bx r3 .align 2, 0 _022188A4: .word 0x0223F7C4 thumb_func_start MOD13_022188A8 MOD13_022188A8: ; 0x022188A8 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r1, #0 add r7, r2, #0 mov r4, #0 cmp r6, #0 ble _022188D8 _022188B8: add r0, r5, #0 add r1, r7, #0 mov r2, #6 bl MOD13_022174CC bl MOD13_022172F0 strh r0, [r5, #6] ldrh r0, [r5, #6] bl MOD13_022173D0 strh r0, [r5, #6] add r5, #8 add r4, r4, #1 cmp r4, r6 blt _022188B8 _022188D8: add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_022188E0 MOD13_022188E0: ; 0x022188E0 push {r4, lr} add r4, r0, #0 ldr r0, _02218924 ; =0x0223F828 bl MOD13_0221736C str r0, [r4] add r0, r4, #4 ldr r1, _02218924 ; =0x0223F828 ldr r2, [r4] bl MOD13_022174CC mov r0, #1 str r0, [r4, #0x24] ldr r0, _02218928 ; =0x0223F820 bl MOD13_0221736C str r0, [r4, #0x28] ldr r2, [r4, #0x28] cmp r2, #0xd bls _02218912 mov r0, #0 mvn r0, r0 pop {r4} pop {r3} bx r3 _02218912: add r4, #0x2c add r0, r4, #0 ldr r1, _02218928 ; =0x0223F820 bl MOD13_022174CC mov r0, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _02218924: .word 0x0223F828 _02218928: .word 0x0223F820 thumb_func_start MOD13_0221892C MOD13_0221892C: ; 0x0221892C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 mov r4, #0 str r4, [sp, #4] ldr r0, [r5] str r0, [sp] cmp r0, #0 bne _02218948 mov r0, #5 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218948: cmp r0, #0x40 bls _02218950 mov r0, #0x40 str r0, [sp] _02218950: mov r7, #0 ldr r0, [sp] cmp r0, #0 ble _02218994 add r6, r5, #0 add r6, #8 _0221895C: ldr r1, [r5, #0x54] mov r0, #1 and r1, r0 cmp r1, #0 beq _02218988 ldr r0, _022189B0 ; =0x0223F828 bl MOD13_0221736C ldr r1, [r5, #4] cmp r1, r0 bne _02218988 ldr r0, _022189B0 ; =0x0223F828 bl MOD13_0221736C add r2, r0, #0 add r0, r6, #0 ldr r1, _022189B0 ; =0x0223F828 bl MOD13_022174DC cmp r0, #0 bne _02218988 add r4, r4, #1 _02218988: add r5, #0x54 add r6, #0x54 add r7, r7, #1 ldr r0, [sp] cmp r7, r0 blt _0221895C _02218994: cmp r4, #1 ble _0221899C mov r0, #4 str r0, [sp, #4] _0221899C: cmp r4, #0 bne _022189A4 mov r0, #5 str r0, [sp, #4] _022189A4: ldr r0, [sp, #4] add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 nop _022189B0: .word 0x0223F828 thumb_func_start MOD13_022189B4 MOD13_022189B4: ; 0x022189B4 mov r3, #0 cmp r1, #0 ble _022189D2 _022189BA: ldrb r2, [r0] add r0, r0, #1 cmp r2, #0x20 blo _022189C6 cmp r2, #0x7f bls _022189CC _022189C6: mov r0, #0 mvn r0, r0 bx lr _022189CC: add r3, r3, #1 cmp r3, r1 blt _022189BA _022189D2: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD13_022189D8 MOD13_022189D8: ; 0x022189D8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 ldr r0, _02218BC4 ; =0x00000117 add r5, r7, r0 ldr r4, _02218BC8 ; =0x02241268 ldr r6, _02218BCC ; =0x02241398 ldr r0, _02218BD0 ; =0x022414C8 str r0, [sp] ldr r0, _02218BD4 ; =0x02241538 str r0, [sp, #4] cmp r5, #0 bne _022189FE mov r0, #0 mvn r0, r0 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 _022189FE: ldr r0, _02218BD8 ; =0x02240B60 ldr r1, [r0, #8] ldr r0, [r0, #0xc] and r1, r0 strh r1, [r7] add r0, r5, #0 mov r1, #0 ldr r2, _02218BDC ; =0x00000154 bl MOD13_022174C0 ldrh r1, [r7] mov r0, #1 and r1, r0 cmp r1, #0 beq _02218A7E add r0, r5, #0 add r1, r4, #0 add r1, #0x30 ldr r2, [r4, #4] bl MOD13_022174CC add r0, r5, #6 add r1, r4, #0 add r1, #0x70 ldr r2, [r4, #4] bl MOD13_022174CC add r0, r5, #0 add r0, #0xc add r1, r4, #0 add r1, #0xb0 ldr r2, [r4, #4] bl MOD13_022174CC add r0, r5, #0 add r0, #0x12 add r1, r4, #0 add r1, #0xf0 ldr r2, [r4, #4] bl MOD13_022174CC add r0, r4, #0 add r0, #8 bl MOD13_0221736C add r1, r0, #0 add r0, r4, #0 add r0, #8 bl MOD13_022189B4 cmp r0, #0 beq _02218A68 b _02218BAE _02218A68: add r0, r4, #0 add r0, #8 bl MOD13_0221736C add r2, r0, #0 add r0, r5, #0 add r0, #0x18 add r4, #8 add r1, r4, #0 bl MOD13_022174CC _02218A7E: ldrh r1, [r7] mov r0, #2 and r1, r0 cmp r1, #0 beq _02218AEC add r0, r5, #0 add r0, #0x39 add r1, r6, #0 add r1, #0x30 ldr r2, [r6, #4] bl MOD13_022174CC add r0, r5, #0 add r0, #0x47 add r1, r6, #0 add r1, #0x70 ldr r2, [r6, #4] bl MOD13_022174CC add r0, r5, #0 add r0, #0x55 add r1, r6, #0 add r1, #0xb0 ldr r2, [r6, #4] bl MOD13_022174CC add r0, r5, #0 add r0, #0x63 add r1, r6, #0 add r1, #0xf0 ldr r2, [r6, #4] bl MOD13_022174CC add r0, r6, #0 add r0, #8 bl MOD13_0221736C add r1, r0, #0 add r0, r6, #0 add r0, #8 bl MOD13_022189B4 cmp r0, #0 bne _02218BAE add r0, r6, #0 add r0, #8 bl MOD13_0221736C add r2, r0, #0 add r0, r5, #0 add r0, #0x71 add r6, #8 add r1, r6, #0 bl MOD13_022174CC _02218AEC: ldrh r1, [r7] mov r0, #4 and r1, r0 cmp r1, #0 beq _02218B46 ldr r0, [sp] add r0, #0x30 ldr r1, [sp] ldr r1, [r1, #4] sub r1, r1, #1 bl MOD13_022189B4 cmp r0, #0 bne _02218BAE add r0, r5, #0 add r0, #0x92 ldr r1, [sp] add r1, #0x30 ldr r2, [sp] ldr r2, [r2, #4] bl MOD13_022174CC ldr r0, [sp] add r0, #8 bl MOD13_0221736C add r1, r0, #0 ldr r0, [sp] add r0, #8 bl MOD13_022189B4 cmp r0, #0 bne _02218BAE ldr r0, [sp] add r0, #8 bl MOD13_0221736C add r2, r0, #0 add r0, r5, #0 add r0, #0xd2 ldr r1, [sp] add r1, #8 str r1, [sp] bl MOD13_022174CC _02218B46: ldrh r1, [r7] mov r0, #8 and r1, r0 cmp r1, #0 beq _02218BA0 ldr r0, [sp, #4] add r0, #0x30 ldr r1, [sp, #4] ldr r1, [r1, #4] sub r1, r1, #1 bl MOD13_022189B4 cmp r0, #0 bne _02218BAE add r0, r5, #0 add r0, #0xf3 ldr r1, [sp, #4] add r1, #0x30 ldr r2, [sp, #4] ldr r2, [r2, #4] bl MOD13_022174CC ldr r0, [sp, #4] add r0, #8 bl MOD13_0221736C add r1, r0, #0 ldr r0, [sp, #4] add r0, #8 bl MOD13_022189B4 cmp r0, #0 bne _02218BAE ldr r0, [sp, #4] add r0, #8 bl MOD13_0221736C add r2, r0, #0 ldr r0, _02218BE0 ; =0x00000133 add r0, r5, r0 ldr r1, [sp, #4] add r1, #8 str r1, [sp, #4] bl MOD13_022174CC _02218BA0: mov r0, #0 ldr r1, _02218BE4 ; =0x00000116 strb r0, [r7, r1] add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218BAE: add r0, r5, #0 mov r1, #0 ldr r2, _02218BDC ; =0x00000154 bl MOD13_022174C0 mov r0, #0 mvn r0, r0 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02218BC4: .word 0x00000117 _02218BC8: .word 0x02241268 _02218BCC: .word 0x02241398 _02218BD0: .word 0x022414C8 _02218BD4: .word 0x02241538 _02218BD8: .word 0x02240B60 _02218BDC: .word 0x00000154 _02218BE0: .word 0x00000133 _02218BE4: .word 0x00000116 thumb_func_start MOD13_02218BE8 MOD13_02218BE8: ; 0x02218BE8 ldr r0, _02218BF0 ; =0x02240B44 ldr r0, [r0] bx lr nop _02218BF0: .word 0x02240B44 thumb_func_start MOD13_02218BF4 MOD13_02218BF4: ; 0x02218BF4 ldr r1, _02218BFC ; =0x02240B44 str r0, [r1] bx lr nop _02218BFC: .word 0x02240B44 thumb_func_start MOD13_02218C00 MOD13_02218C00: ; 0x02218C00 push {r4, lr} add r4, r0, #0 ldr r0, _02218C44 ; =0x02240B4C mov r1, #0 mov r2, #8 bl MOD13_022174C0 mov r1, #1 ldr r0, _02218C48 ; =0x02240B44 str r1, [r0] ldr r0, _02218C4C ; =0x02240B60 mov r1, #0 mov r2, #0x1c bl MOD13_022174C0 add r0, r4, #6 ldr r1, _02218C4C ; =0x02240B60 str r0, [r1] ldrh r0, [r4, #4] str r0, [r1, #4] ldrh r2, [r4] mov r0, #0xf and r2, r0 str r2, [r1, #8] ldrb r0, [r4, #2] strb r0, [r1, #0x19] mov r2, #0 str r2, [r1, #0xc] ldr r0, _02218C50 ; =0xC0A80B01 str r0, [r1, #0x10] strb r2, [r1, #0x18] pop {r4} pop {r3} bx r3 .align 2, 0 _02218C44: .word 0x02240B4C _02218C48: .word 0x02240B44 _02218C4C: .word 0x02240B60 _02218C50: .word 0xC0A80B01 thumb_func_start MOD13_02218C54 MOD13_02218C54: ; 0x02218C54 push {lr} sub sp, #4 ldr r0, _02218C84 ; =0x02240B40 ldr r0, [r0] cmp r0, #0 beq _02218C6A bl MOD13_022198A0 mov r1, #0 ldr r0, _02218C84 ; =0x02240B40 str r1, [r0] _02218C6A: ldr r0, _02218C88 ; =0x02240B38 ldr r0, [r0] cmp r0, #0 beq _02218C7C bl MOD13_022198A0 mov r1, #0 ldr r0, _02218C88 ; =0x02240B38 str r1, [r0] _02218C7C: add sp, #4 pop {r3} bx r3 nop _02218C84: .word 0x02240B40 _02218C88: .word 0x02240B38 thumb_func_start MOD13_02218C8C MOD13_02218C8C: ; 0x02218C8C add r3, r0, #0 and r3, r1 mvn r2, r1 bic r0, r1 add r1, r0, #1 add r0, r3, #0 orr r0, r1 add r1, r3, #0 orr r1, r2 cmp r0, r1 blo _02218CA8 mov r1, #1 add r0, r3, #0 orr r0, r1 _02218CA8: bx lr .align 2, 0 thumb_func_start MOD13_02218CAC MOD13_02218CAC: ; 0x02218CAC push {r4, r5, r6, r7, lr} sub sp, #0xcc str r0, [sp, #8] ldr r1, _02219044 ; =0x0223F7C0 ldrh r2, [r1] add r0, sp, #0x30 strh r2, [r0] ldrh r1, [r1, #2] strh r1, [r0, #2] add r1, sp, #0x34 mov r0, #0 str r0, [sp, #0x14] strh r0, [r1] strh r0, [r1, #2] mov r0, #1 str r0, [sp, #0x38] ldr r0, [sp, #0x14] str r0, [sp, #0x3c] str r0, [sp, #0x1c] add r0, sp, #0x64 ldr r1, [sp, #0x14] mov r2, #0x18 bl MOD13_022174C0 ldr r1, _02219048 ; =0x00000106 ldr r0, [sp, #8] ldrsh r0, [r0, r1] add r1, sp, #0x30 strh r0, [r1] mov r0, #0 ldrsh r2, [r1, r0] mvn r0, r0 cmp r2, r0 bne _02218CF4 mov r0, #0xa strh r0, [r1] _02218CF4: ldr r1, _0221904C ; =0x0000010A ldr r0, [sp, #8] ldrsh r0, [r0, r1] add r1, sp, #0x30 strh r0, [r1, #4] mov r0, #4 ldrsh r2, [r1, r0] mov r0, #0 mvn r0, r0 cmp r2, r0 bne _02218D0E mov r0, #0xa strh r0, [r1, #4] _02218D0E: ldr r1, _02219050 ; =0x00000108 ldr r0, [sp, #8] ldrsh r0, [r0, r1] add r1, sp, #0x30 strh r0, [r1, #2] mov r0, #2 ldrsh r2, [r1, r0] mov r0, #0 mvn r0, r0 cmp r2, r0 bne _02218D28 mov r0, #0x64 strh r0, [r1, #2] _02218D28: ldr r1, _02219054 ; =0x0000010C ldr r0, [sp, #8] ldrsh r0, [r0, r1] add r1, sp, #0x30 strh r0, [r1, #6] mov r0, #6 ldrsh r2, [r1, r0] mov r0, #0 mvn r0, r0 cmp r2, r0 bne _02218D42 mov r0, #0x64 strh r0, [r1, #6] _02218D42: ldr r1, _02219058 ; =0x0000010E ldr r0, [sp, #8] ldrsh r0, [r0, r1] str r0, [sp, #0x10] mov r0, #0 mvn r1, r0 ldr r0, [sp, #0x10] cmp r0, r1 bne _02218D58 ldr r0, _0221905C ; =0x000007D0 str r0, [sp, #0x10] _02218D58: ldr r0, [sp, #8] bl MOD13_02218C00 ldr r0, _02219060 ; =0x02240B60 ldr r1, [r0, #8] mov r0, #1 and r1, r0 cmp r1, #1 beq _02218D88 mov r0, #0x13 bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218D88: mov r4, #0 add r0, r4, #0 bl MOD13_02218870 mov r1, #2 add r0, sp, #0x30 ldrsh r7, [r0, r1] lsl r6, r4, #0 ldr r5, _02219068 ; =0x02240B38 _02218D9A: ldr r0, [r5] cmp r0, #0 beq _02218DA6 bl MOD13_022198A0 str r6, [r5] _02218DA6: add r0, r5, #0 bl MOD13_02219AD0 mvn r1, r6 cmp r0, r1 bne _02218DCA mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218DCA: ldr r0, [r5] bl MOD13_0221892C cmp r0, #4 bne _02218DEC mov r2, #2 ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218DEC: cmp r0, #0 beq _02218E1E add r0, sp, #0x30 ldrsh r0, [r0, r6] cmp r4, r0 blt _02218E10 mov r2, #1 ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218E10: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _02218D9A _02218E1E: mov r0, #1 bl MOD13_02218870 add r0, sp, #0x7c mov r1, #0 mov r2, #0x3c bl MOD13_022174C0 add r0, sp, #0x7c bl MOD13_022188E0 cmp r0, #0 beq _02218E50 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218E50: mov r0, #0x58 bl MOD13_022198B4 ldr r1, _0221906C ; =0x02240B40 str r0, [r1] cmp r0, #0 bne _02218E76 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218E76: mov r1, #0 mov r2, #0x58 bl MOD13_022174C0 mov r4, #0 add r0, sp, #0x30 ldrsh r0, [r0, r4] cmp r0, #0 ble _02218EDA add r6, r4, #0 add r5, r4, #0 _02218E8C: add r0, sp, #0x7c ldr r1, _0221906C ; =0x02240B40 ldr r1, [r1] bl MOD13_022198EC mvn r1, r5 cmp r0, r1 bne _02218EB4 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218EB4: cmp r0, #0 bne _02218EC6 cmp r0, #0 bne _02218EDA ldr r0, _0221906C ; =0x02240B40 ldr r0, [r0] ldr r0, [r0] cmp r0, #1 beq _02218EDA _02218EC6: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, sp, #0x30 ldrsh r0, [r0, r6] cmp r4, r0 blt _02218E8C _02218EDA: add r1, sp, #0x30 mov r0, #0 ldrsh r0, [r1, r0] cmp r4, r0 bne _02218EFC mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218EFC: ldr r0, _02219070 ; =0xC0A80B65 mov r1, #0xff mvn r1, r1 add r2, r0, #0 bl MOD13_02217530 cmp r0, #0 beq _02218F2A mov r0, #0xc bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218F2A: bl MOD13_02218C54 mov r0, #3 add r1, sp, #0x64 ldr r3, _02219074 ; =0x00000110 ldr r2, [sp, #8] add r2, r2, r3 bl MOD13_022188A8 mov r0, #2 add r1, r0, #0 mov r2, #0 bl MOD13_02217434 ldr r1, _02219078 ; =0x0223F7BC str r0, [r1] cmp r0, #0 bge _02218F66 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218F66: mov r1, #4 str r1, [sp] ldr r1, _0221907C ; =0x0000FFFF mov r2, #1 add r3, sp, #0x38 bl MOD13_0221743C cmp r0, #0 bge _02218F96 mov r0, #0xb bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218F96: add r0, sp, #0x5c mov r1, #0 mov r2, #8 bl MOD13_022174C0 mov r1, #2 add r0, sp, #0x5c strb r1, [r0, #1] ldr r0, _02219070 ; =0xC0A80B65 bl MOD13_022173E8 str r0, [sp, #0x60] ldr r0, _02219080 ; =0x00005790 bl MOD13_022173D0 add r1, sp, #0x30 strh r0, [r1, #0x2e] ldr r0, _02219078 ; =0x0223F7BC ldr r0, [r0] add r1, sp, #0x5c mov r2, #8 bl MOD13_02217428 cmp r0, #0 bge _02218FE0 mov r2, #0xf ldr r1, _02219064 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02218FE0: mov r5, #0 ldr r6, _02219068 ; =0x02240B38 mvn r0, r5 str r0, [sp, #0x28] _02218FE8: ldr r0, _02219084 ; =0x02240B48 ldr r0, [r0] str r0, [sp, #0x20] add r0, sp, #0xb8 add r1, r5, #0 mov r2, #0x14 bl MOD13_022174C0 ldr r0, _02219070 ; =0xC0A80B65 str r0, [sp, #0xc8] ldr r0, _02219088 ; =0xC0A80B01 str r0, [sp, #0xb8] ldr r0, [sp, #0x10] ldr r1, _0221908C ; =0x000003E8 bl _s32_div_f str r0, [sp, #0x24] ldr r0, [sp, #0x10] ldr r1, _0221908C ; =0x000003E8 bl _s32_div_f str r1, [sp, #0xc] ldr r0, _0221908C ; =0x000003E8 mul r1, r0 str r1, [sp, #0xc] _0221901A: ldr r0, [sp, #0x14] cmp r0, #1 beq _02219022 b _0221930A _02219022: ldr r1, _02219060 ; =0x02240B60 mov r0, #0x18 ldrsb r0, [r1, r0] cmp r0, #1 bne _0221902E b _0221930A _0221902E: ldr r0, _02219078 ; =0x0223F7BC ldr r0, [r0] mvn r1, r5 cmp r0, r1 beq _0221903C bl MOD13_02217420 _0221903C: ldr r1, [sp, #0x28] ldr r0, _02219078 ; =0x0223F7BC b _02219090 nop _02219044: .word 0x0223F7C0 _02219048: .word 0x00000106 _0221904C: .word 0x0000010A _02219050: .word 0x00000108 _02219054: .word 0x0000010C _02219058: .word 0x0000010E _0221905C: .word 0x000007D0 _02219060: .word 0x02240B60 _02219064: .word 0x00000116 _02219068: .word 0x02240B38 _0221906C: .word 0x02240B40 _02219070: .word 0xC0A80B65 _02219074: .word 0x00000110 _02219078: .word 0x0223F7BC _0221907C: .word 0x0000FFFF _02219080: .word 0x00005790 _02219084: .word 0x02240B48 _02219088: .word 0xC0A80B01 _0221908C: .word 0x000003E8 _02219090: str r1, [r0] bl MOD13_02217504 cmp r0, #0 beq _022190B2 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022190B2: mov r0, #0x58 bl MOD13_022198B4 str r0, [r6] cmp r0, #0 bne _022190D6 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022190D6: ldr r0, [r6] cmp r0, #0 beq _022190E2 bl MOD13_022198A0 str r5, [r6] _022190E2: add r0, r6, #0 bl MOD13_02219AD0 str r0, [sp, #0x2c] mvn r1, r5 cmp r0, r1 bne _02219108 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219108: ldr r0, [r6] bl MOD13_0221892C cmp r0, #4 bne _0221912A mov r2, #2 ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221912A: cmp r0, #0 beq _0221915C add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 blt _0221914E mov r2, #1 ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221914E: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _022190D6 _0221915C: mvn r1, r5 ldr r0, [sp, #0x2c] cmp r0, r1 bne _0221917C mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221917C: mov r0, #0x58 bl MOD13_022198B4 ldr r1, _02219418 ; =0x02240B40 str r0, [r1] cmp r0, #0 bne _022191A2 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022191A2: add r1, r5, #0 mov r2, #0x58 bl MOD13_022174C0 add r4, r5, #0 add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r0, #0 ble _02219202 _022191B4: add r0, sp, #0x7c ldr r1, _02219418 ; =0x02240B40 ldr r1, [r1] bl MOD13_022198EC mvn r1, r5 cmp r0, r1 bne _022191DC mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022191DC: cmp r0, #0 bne _022191EE cmp r0, #0 bne _02219202 ldr r0, _02219418 ; =0x02240B40 ldr r0, [r0] ldr r0, [r0] cmp r0, #1 beq _02219202 _022191EE: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 blt _022191B4 _02219202: add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 bne _02219222 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219222: ldr r0, _0221941C ; =0x02240B60 ldr r0, [r0, #0x10] ldr r1, _0221941C ; =0x02240B60 ldr r1, [r1, #0x14] bl MOD13_02218C8C str r0, [sp, #0x1c] ldr r1, _0221941C ; =0x02240B60 ldr r1, [r1, #0x14] lsl r2, r0, #0 bl MOD13_02217530 cmp r0, #0 beq _0221925C mov r0, #0xc bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221925C: mov r1, #1 ldr r0, _0221941C ; =0x02240B60 strb r1, [r0, #0x18] bl MOD13_02218C54 mov r0, #2 lsl r1, r0, #0 add r2, r5, #0 bl MOD13_02217434 ldr r1, _02219420 ; =0x0223F7BC str r0, [r1] cmp r0, #0 bge _02219290 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219290: mov r1, #4 str r1, [sp] ldr r1, _02219424 ; =0x0000FFFF mov r2, #1 add r3, sp, #0x38 bl MOD13_0221743C cmp r0, #0 bge _022192C0 mov r0, #0xb bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022192C0: add r0, sp, #0x5c add r1, r5, #0 mov r2, #8 bl MOD13_022174C0 mov r1, #2 add r0, sp, #0x5c strb r1, [r0, #1] ldr r0, [sp, #0x1c] bl MOD13_022173E8 str r0, [sp, #0x60] ldr r0, _02219428 ; =0x00005790 bl MOD13_022173D0 add r1, sp, #0x30 strh r0, [r1, #0x2e] ldr r0, _02219420 ; =0x0223F7BC ldr r0, [r0] add r1, sp, #0x5c mov r2, #8 bl MOD13_02217428 cmp r0, #0 bge _0221930A mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221930A: ldr r0, [sp, #0x14] add r1, sp, #0xb8 add r2, sp, #0x64 ldr r3, _02219420 ; =0x0223F7BC ldr r3, [r3] bl MOD13_02217E20 mvn r1, r5 cmp r0, r1 bne _02219340 ldr r1, _0221942C ; =0x00001000 ldr r0, [sp, #0x14] add r0, r0, r1 bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219414 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219340: ldr r0, [sp, #0x20] add r1, r5, #0 ldr r2, _02219430 ; =0x000005F8 bl MOD13_022174C0 add r0, sp, #0x4c bl MOD13_022172E4 ldr r0, _02219420 ; =0x0223F7BC ldr r0, [r0] add r1, sp, #0x4c bl MOD13_022172DC ldr r0, [sp, #0x24] str r0, [sp, #0x54] ldr r0, [sp, #0xc] str r0, [sp, #0x58] add r0, sp, #0x54 str r0, [sp] ldr r0, _02219420 ; =0x0223F7BC ldr r0, [r0] add r0, r0, #1 add r1, sp, #0x4c add r2, r5, #0 add r3, r5, #0 bl MOD13_02217458 cmp r0, #0 bgt _022193BA ldr r0, [sp, #0x3c] add r2, r0, #1 str r2, [sp, #0x3c] add r1, sp, #0x30 mov r0, #4 ldrsh r0, [r1, r0] cmp r2, r0 ble _022193B0 ldr r0, [sp, #0x14] cmp r0, #0 bne _02219398 mov r0, #0xf bl MOD13_02218BF4 b _022193AA _02219398: cmp r0, #1 bne _022193A4 mov r0, #0x10 bl MOD13_02218BF4 b _022193AA _022193A4: mov r0, #0x11 bl MOD13_02218BF4 _022193AA: mov r0, #0 mvn r4, r0 b _022196C6 _022193B0: mov r0, #6 ldrsh r0, [r1, r0] bl MOD13_022198E4 b _0221901A _022193BA: mov r0, #8 str r0, [sp, #0x48] add r0, sp, #0x40 str r0, [sp] add r0, sp, #0x48 str r0, [sp, #4] ldr r0, _02219420 ; =0x0223F7BC ldr r0, [r0] ldr r1, [sp, #0x20] add r1, #0xc ldr r2, _02219434 ; =0x000005DC add r3, r5, #0 bl MOD13_022174A4 add r2, r0, #0 ldr r0, _02219420 ; =0x0223F7BC ldr r1, [r0] ldr r0, [sp, #0x20] str r1, [r0] lsl r0, r2, #0x10 lsr r0, r0, #0x10 bl MOD13_02217380 ldr r1, [sp, #0x20] str r0, [r1, #4] ldr r0, _02219420 ; =0x0223F7BC ldr r0, [r0] str r0, [sp] ldr r0, [sp, #0x14] add r2, sp, #0x3c add r3, sp, #0x64 bl MOD13_022187B4 str r0, [sp, #0x18] cmp r0, #0x64 bne _02219406 mov r4, #0 b _022196C6 _02219406: mvn r1, r5 cmp r0, r1 bne _02219438 mov r0, #0 mvn r4, r0 b _022196C6 nop _02219414: .word 0x00000116 _02219418: .word 0x02240B40 _0221941C: .word 0x02240B60 _02219420: .word 0x0223F7BC _02219424: .word 0x0000FFFF _02219428: .word 0x00005790 _0221942C: .word 0x00001000 _02219430: .word 0x000005F8 _02219434: .word 0x000005DC _02219438: ldr r1, [sp, #0x14] cmp r1, r0 bne _02219440 b _02219688 _02219440: cmp r0, #2 beq _02219446 b _02219682 _02219446: ldr r0, _02219780 ; =0x0223F7BC ldr r0, [r0] mvn r1, r5 cmp r0, r1 beq _02219454 bl MOD13_02217420 _02219454: ldr r1, [sp, #0x28] ldr r0, _02219780 ; =0x0223F7BC str r1, [r0] bl MOD13_02217504 cmp r0, #0 beq _0221947A mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221947A: add r4, r5, #0 mov r0, #4 bl MOD13_02218870 _02219482: ldr r0, [r6] cmp r0, #0 beq _0221948E bl MOD13_022198A0 str r5, [r6] _0221948E: add r0, r6, #0 bl MOD13_02219AD0 mvn r1, r5 cmp r0, r1 bne _022194B2 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022194B2: ldr r0, [r6] bl MOD13_0221892C cmp r0, #4 bne _022194D4 mov r2, #2 ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022194D4: cmp r0, #0 beq _02219506 add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 blt _022194F8 mov r2, #1 ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022194F8: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 b _02219482 _02219506: mov r0, #0x58 bl MOD13_022198B4 ldr r1, _02219788 ; =0x02240B40 str r0, [r1] cmp r0, #0 bne _0221952C mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221952C: add r1, r5, #0 mov r2, #0x58 bl MOD13_022174C0 add r4, r5, #0 add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r0, #0 ble _0221958C _0221953E: add r0, sp, #0x7c ldr r1, _02219788 ; =0x02240B40 ldr r1, [r1] bl MOD13_022198EC mvn r1, r5 cmp r0, r1 bne _02219566 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219566: cmp r0, #0 bne _02219578 cmp r0, #0 bne _0221958C ldr r0, _02219788 ; =0x02240B40 ldr r0, [r0] ldr r0, [r0] cmp r0, #1 beq _0221958C _02219578: add r0, r7, #0 bl MOD13_022198E4 add r0, r4, #1 lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 blt _0221953E _0221958C: add r0, sp, #0x30 ldrsh r0, [r0, r5] cmp r4, r0 bne _022195AC mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022195AC: ldr r0, [sp, #0x1c] ldr r1, _0221978C ; =0x02240B60 ldr r1, [r1, #0x14] lsl r2, r0, #0 bl MOD13_02217530 cmp r0, #0 beq _022195DA mov r0, #0xc bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022195DA: bl MOD13_02218C54 mov r0, #2 lsl r1, r0, #0 add r2, r5, #0 bl MOD13_02217434 ldr r1, _02219780 ; =0x0223F7BC str r0, [r1] cmp r0, #0 bge _02219608 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219608: mov r1, #4 str r1, [sp] ldr r1, _02219790 ; =0x0000FFFF mov r2, #1 add r3, sp, #0x38 bl MOD13_0221743C cmp r0, #0 bge _02219638 mov r0, #0xb bl MOD13_02218BF4 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219638: add r0, sp, #0x5c add r1, r5, #0 mov r2, #8 bl MOD13_022174C0 mov r1, #2 add r0, sp, #0x5c strb r1, [r0, #1] ldr r0, [sp, #0x1c] bl MOD13_022173E8 str r0, [sp, #0x60] ldr r0, _02219794 ; =0x00005790 bl MOD13_022173D0 add r1, sp, #0x30 strh r0, [r1, #0x2e] ldr r0, _02219780 ; =0x0223F7BC ldr r0, [r0] add r1, sp, #0x5c mov r2, #8 bl MOD13_02217428 cmp r0, #0 bge _02219682 mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219682: ldr r0, [sp, #0x18] str r0, [sp, #0x14] b _02218FE8 _02219688: str r0, [sp, #0x14] ldr r2, [sp, #0x3c] add r1, sp, #0x30 mov r0, #4 ldrsh r0, [r1, r0] cmp r2, r0 ble _022196BC ldr r0, [sp, #0x18] cmp r0, #0 bne _022196A4 mov r0, #0xf bl MOD13_02218BF4 b _022196B6 _022196A4: cmp r0, #1 bne _022196B0 mov r0, #0x10 bl MOD13_02218BF4 b _022196B6 _022196B0: mov r0, #0x11 bl MOD13_02218BF4 _022196B6: mov r0, #0 mvn r4, r0 b _022196C6 _022196BC: mov r0, #6 ldrsh r0, [r1, r0] bl MOD13_022198E4 b _02218FE8 _022196C6: ldr r0, _02219780 ; =0x0223F7BC ldr r0, [r0] mov r1, #0 mvn r1, r1 cmp r0, r1 beq _022196D6 bl MOD13_02217420 _022196D6: mov r0, #0 mvn r1, r0 ldr r0, _02219780 ; =0x0223F7BC str r1, [r0] bl MOD13_02217504 cmp r0, #0 beq _022196FE mov r2, #0xf ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _022196FE: cmp r4, #0 beq _02219754 bl MOD13_02218BE8 sub r0, #0xf cmp r0, #6 bhi _0221973C add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221971A: ; jump table .short _02219728 - _0221971A + 1 ; case 0 .short _0221972C - _0221971A + 1 ; case 1 .short _02219730 - _0221971A + 1 ; case 2 .short _0221973C - _0221971A + 1 ; case 3 .short _0221973C - _0221971A + 1 ; case 4 .short _02219734 - _0221971A + 1 ; case 5 .short _02219738 - _0221971A + 1 ; case 6 _02219728: mov r2, #3 b _0221973E _0221972C: mov r2, #4 b _0221973E _02219730: mov r2, #5 b _0221973E _02219734: mov r2, #7 b _0221973E _02219738: mov r2, #8 b _0221973E _0221973C: mov r2, #0xf _0221973E: ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219754: ldr r0, [sp, #8] bl MOD13_022189D8 cmp r0, #0 beq _02219776 mov r2, #6 ldr r1, _02219784 ; =0x00000116 ldr r0, [sp, #8] strb r2, [r0, r1] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 _02219776: mov r0, #0 add sp, #0xcc pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02219780: .word 0x0223F7BC _02219784: .word 0x00000116 _02219788: .word 0x02240B40 _0221978C: .word 0x02240B60 _02219790: .word 0x0000FFFF _02219794: .word 0x00005790 thumb_func_start MOD13_02219798 MOD13_02219798: ; 0x02219798 push {r4, lr} add r4, r0, #0 ldr r0, _02219870 ; =0x00000106 ldrsh r1, [r4, r0] cmp r1, #0 beq _022197E6 mov r0, #0 mvn r2, r0 cmp r1, r2 blt _022197E6 ldr r1, _02219874 ; =0x00000108 ldrsh r1, [r4, r1] cmp r1, r2 blt _022197E6 ldr r1, _02219878 ; =0x0000010A ldrsh r1, [r4, r1] cmp r1, #0 beq _022197E6 cmp r1, r2 blt _022197E6 ldr r1, _0221987C ; =0x0000010C ldrsh r1, [r4, r1] cmp r1, r2 blt _022197E6 ldr r1, _02219880 ; =0x0000010E ldrsh r1, [r4, r1] cmp r1, r2 blt _022197E6 ldrh r2, [r4, #4] cmp r2, #0 beq _022197E6 ldr r1, _02219884 ; =0x00000100 cmp r2, r1 bhi _022197E6 sub r1, r2, #1 add r1, r4, r1 ldrb r1, [r1, #6] cmp r1, #0 beq _022197EA _022197E6: mov r0, #0 mvn r0, r0 _022197EA: ldr r1, _02219888 ; =0x02241900 ldr r1, [r1] cmp r1, #0 beq _022197FA ldr r1, _0221988C ; =0x0224190C ldr r1, [r1] cmp r1, #0 bne _022197FE _022197FA: mov r0, #0 mvn r0, r0 _022197FE: mov r1, #0 mvn r1, r1 cmp r0, r1 bne _0221981A mov r1, #0xf ldr r0, _02219890 ; =0x00000116 strb r1, [r4, r0] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 pop {r4} pop {r3} bx r3 _0221981A: ldr r0, _02219894 ; =0x000005F8 bl MOD13_022198B4 ldr r1, _02219898 ; =0x02240B48 str r0, [r1] cmp r0, #0 bne _0221983C mov r1, #0xf ldr r0, _02219890 ; =0x00000116 strb r1, [r4, r0] bl MOD13_02218C54 mov r0, #0 mvn r0, r0 pop {r4} pop {r3} bx r3 _0221983C: mov r0, #0 mvn r0, r0 bl MOD13_02218870 add r0, r4, #0 bl MOD13_02218CAC add r4, r0, #0 ldr r0, _02219898 ; =0x02240B48 ldr r0, [r0] bl MOD13_022198A0 bl MOD13_02218C54 ldr r0, _0221989C ; =0x0223F7BC ldr r0, [r0] mov r1, #0 mvn r1, r1 cmp r0, r1 beq _02219868 bl MOD13_02217420 _02219868: add r0, r4, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _02219870: .word 0x00000106 _02219874: .word 0x00000108 _02219878: .word 0x0000010A _0221987C: .word 0x0000010C _02219880: .word 0x0000010E _02219884: .word 0x00000100 _02219888: .word 0x02241900 _0221988C: .word 0x0224190C _02219890: .word 0x00000116 _02219894: .word 0x000005F8 _02219898: .word 0x02240B48 _0221989C: .word 0x0223F7BC thumb_func_start MOD13_022198A0 MOD13_022198A0: ; 0x022198A0 push {lr} sub sp, #4 ldr r1, _022198B0 ; =0x0224190C ldr r1, [r1] blx r1 add sp, #4 pop {r3} bx r3 .align 2, 0 _022198B0: .word 0x0224190C thumb_func_start MOD13_022198B4 MOD13_022198B4: ; 0x022198B4 push {lr} sub sp, #4 ldr r1, _022198C4 ; =0x02241900 ldr r1, [r1] blx r1 add sp, #4 pop {r3} bx r3 .align 2, 0 _022198C4: .word 0x02241900 thumb_func_start MOD13_022198C8 MOD13_022198C8: ; 0x022198C8 push {lr} sub sp, #4 ldr r1, _022198E0 ; =0x02241904 ldr r1, [r1] cmp r1, #0 beq _022198D6 blx r1 _022198D6: mov r0, #0 add sp, #4 pop {r3} bx r3 nop _022198E0: .word 0x02241904 thumb_func_start MOD13_022198E4 MOD13_022198E4: ; 0x022198E4 ldr r3, _022198E8 ; =0x020CAFC0 bx r3 .align 2, 0 _022198E8: .word 0x020CAFC0 thumb_func_start MOD13_022198EC MOD13_022198EC: ; 0x022198EC push {r4, r5, r6, r7, lr} sub sp, #0x4c str r0, [sp, #4] str r1, [sp, #8] mov r4, #1 mov r0, #0 str r0, [sp, #0x14] mvn r0, r0 str r0, [sp, #0xc] ldr r0, [sp, #4] ldr r0, [r0, #0x24] cmp r0, #0 bne _0221990A ldr r6, _02219AA8 ; =0x00080000 b _02219910 _0221990A: cmp r0, #1 bne _02219910 ldr r6, _02219AAC ; =0x000C0000 _02219910: ldr r0, _02219AB0 ; =0x02241940 mov r1, #0 mov r2, #0x60 bl MI_CpuFill8 ldr r0, [sp, #4] ldr r0, [r0, #0x28] cmp r0, #5 bne _0221992A mov r1, #1 ldr r0, _02219AB0 ; =0x02241940 strb r1, [r0] b _0221994E _0221992A: cmp r0, #0xd bne _02219936 mov r1, #2 ldr r0, _02219AB0 ; =0x02241940 strb r1, [r0] b _0221994E _02219936: cmp r0, #0x10 bne _02219942 mov r1, #3 ldr r0, _02219AB0 ; =0x02241940 strb r1, [r0] b _0221994E _02219942: mov r0, #0 mvn r0, r0 add sp, #0x4c pop {r4, r5, r6, r7} pop {r3} bx r3 _0221994E: mov r1, #0 ldr r0, _02219AB0 ; =0x02241940 strb r1, [r0, #1] ldr r0, [sp, #4] add r0, #0x2c ldr r1, _02219AB4 ; =0x02241942 ldr r2, [sp, #4] ldr r2, [r2, #0x28] bl MI_CpuCopy8 bl FUN_020A84D8 mov r0, #0 ldr r1, [sp, #4] add r1, r1, #4 ldr r2, [sp, #4] ldr r2, [r2] ldr r3, _02219AB8 ; =0x0030BFFE bl MOD13_0221A1E8 cmp r0, #0 bne _0221997C b _02219A8A _0221997C: mov r0, #0 str r0, [sp, #0x10] add r0, sp, #0x1c bl OS_CreateAlarm mov r0, #0x12 str r0, [sp] add r0, sp, #0x1c ldr r1, _02219ABC ; =0x003FEC42 mov r2, #0 ldr r3, _02219AC0 ; =MOD13_02219E48 bl OS_SetAlarm ldr r0, _02219AC4 ; =0x00030000 orr r6, r0 ldr r7, _02219AC8 ; =0x022419A0 mov r5, #0 _0221999E: ldr r0, _02219ACC ; =0x02241920 add r1, sp, #0x18 mov r2, #1 bl OS_ReceiveMessage ldr r0, [sp, #0x18] cmp r0, #0x13 bhi _02219A6A add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _022199BC: ; jump table .short _02219A6A - _022199BC + 1 ; case 0 .short _02219A6A - _022199BC + 1 ; case 1 .short _02219A6A - _022199BC + 1 ; case 2 .short _02219A6A - _022199BC + 1 ; case 3 .short _02219A6C - _022199BC + 1 ; case 4 .short _022199EE - _022199BC + 1 ; case 5 .short _02219A6A - _022199BC + 1 ; case 6 .short _02219A6A - _022199BC + 1 ; case 7 .short _02219A6C - _022199BC + 1 ; case 8 .short _02219A6A - _022199BC + 1 ; case 9 .short _02219A2A - _022199BC + 1 ; case 10 .short _02219A6A - _022199BC + 1 ; case 11 .short _02219A44 - _022199BC + 1 ; case 12 .short _02219A4A - _022199BC + 1 ; case 13 .short _02219A6A - _022199BC + 1 ; case 14 .short _02219A6A - _022199BC + 1 ; case 15 .short _02219A6A - _022199BC + 1 ; case 16 .short _02219A6A - _022199BC + 1 ; case 17 .short _022199E4 - _022199BC + 1 ; case 18 .short _02219A6C - _022199BC + 1 ; case 19 _022199E4: ldr r0, [sp, #0x14] cmp r0, #0 bne _02219A6C add r4, r5, #0 b _02219A6C _022199EE: ldr r0, [sp, #0x14] cmp r0, #0 bne _02219A6C add r0, sp, #0x1c bl OS_CancelAlarm add r0, r7, #0 mov r1, #1 bl MOD13_0221A2FC cmp r0, #1 beq _02219A0A add r4, r5, #0 b _02219A6C _02219A0A: ldr r0, [sp, #4] add r1, r7, #0 bl MOD13_02219E80 add r0, r7, #0 ldr r1, _02219AB0 ; =0x02241940 add r2, r6, #0 bl MOD13_0221A04C cmp r0, #0 bne _02219A24 add r4, r5, #0 b _02219A6C _02219A24: mov r0, #1 str r0, [sp, #0x14] b _02219A6C _02219A2A: ldr r0, [sp, #4] add r1, r7, #0 bl MOD13_02219E80 add r0, r7, #0 ldr r1, _02219AB0 ; =0x02241940 add r2, r6, #0 bl MOD13_0221A04C cmp r0, #0 bne _02219A6C add r4, r5, #0 b _02219A6C _02219A44: str r5, [sp, #0xc] add r4, r5, #0 b _02219A6C _02219A4A: ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #3 bge _02219A66 add r0, r7, #0 ldr r1, _02219AB0 ; =0x02241940 add r2, r6, #0 bl MOD13_0221A04C cmp r0, #0 bne _02219A6C add r4, r5, #0 b _02219A6C _02219A66: add r4, r5, #0 b _02219A6C _02219A6A: add r4, r5, #0 _02219A6C: cmp r4, #0 bne _0221999E add r0, sp, #0x1c bl OS_CancelAlarm ldr r5, _02219ACC ; =0x02241920 add r4, sp, #0x18 mov r6, #0 _02219A7C: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl OS_ReceiveMessage cmp r0, #1 beq _02219A7C _02219A8A: ldr r0, [sp, #0xc] cmp r0, #0 bne _02219A94 mov r2, #1 b _02219A96 _02219A94: mov r2, #0 _02219A96: ldr r0, [sp, #8] ldr r1, _02219AC8 ; =0x022419A0 bl MOD13_02219E70 ldr r0, [sp, #0xc] add sp, #0x4c pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02219AA8: .word 0x00080000 _02219AAC: .word 0x000C0000 _02219AB0: .word 0x02241940 _02219AB4: .word 0x02241942 _02219AB8: .word 0x0030BFFE _02219ABC: .word 0x003FEC42 _02219AC0: .word MOD13_02219E48 _02219AC4: .word 0x00030000 _02219AC8: .word 0x022419A0 _02219ACC: .word 0x02241920 thumb_func_start MOD13_02219AD0 MOD13_02219AD0: ; 0x02219AD0 push {r4, r5, r6, r7, lr} sub sp, #0x44 str r0, [sp, #4] mov r6, #0 mvn r0, r6 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] add r7, r6, #0 add r5, r6, #0 ldr r0, _02219C44 ; =0x02241900 ldr r1, [r0] cmp r1, #0 beq _02219AF4 ldr r0, _02219C48 ; =0x0224190C ldr r0, [r0] cmp r0, #0 bne _02219B00 _02219AF4: mov r0, #0 mvn r0, r0 add sp, #0x44 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219B00: ldr r0, _02219C4C ; =0x00003000 blx r1 add r4, r0, #0 cmp r4, #0 bne _02219B16 lsl r0, r6, #0 mvn r0, r0 add sp, #0x44 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219B16: str r4, [sp, #0x10] lsl r0, r6, #0 add r1, r0, #0 add r2, r0, #0 ldr r3, _02219C50 ; =0x0030BFFE bl MOD13_0221A1E8 cmp r0, #0 bne _02219B2A b _02219C30 _02219B2A: add r0, sp, #0x18 bl OS_CreateAlarm mov r0, #0x13 str r0, [sp] add r0, sp, #0x18 ldr r1, _02219C54 ; =0x003FEC42 lsl r2, r6, #0 ldr r3, _02219C58 ; =MOD13_02219E48 bl OS_SetAlarm _02219B40: ldr r0, _02219C5C ; =0x02241920 add r1, sp, #0x14 mov r2, #1 bl OS_ReceiveMessage ldr r0, [sp, #0x14] cmp r0, #0x13 bhi _02219C16 add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _02219B5E: ; jump table .short _02219C16 - _02219B5E + 1 ; case 0 .short _02219C16 - _02219B5E + 1 ; case 1 .short _02219C16 - _02219B5E + 1 ; case 2 .short _02219C16 - _02219B5E + 1 ; case 3 .short _02219BCC - _02219B5E + 1 ; case 4 .short _02219BA4 - _02219B5E + 1 ; case 5 .short _02219C16 - _02219B5E + 1 ; case 6 .short _02219C16 - _02219B5E + 1 ; case 7 .short _02219BCC - _02219B5E + 1 ; case 8 .short _02219C16 - _02219B5E + 1 ; case 9 .short _02219BC6 - _02219B5E + 1 ; case 10 .short _02219C16 - _02219B5E + 1 ; case 11 .short _02219C16 - _02219B5E + 1 ; case 12 .short _02219C16 - _02219B5E + 1 ; case 13 .short _02219C16 - _02219B5E + 1 ; case 14 .short _02219C16 - _02219B5E + 1 ; case 15 .short _02219C16 - _02219B5E + 1 ; case 16 .short _02219C16 - _02219B5E + 1 ; case 17 .short _02219BCC - _02219B5E + 1 ; case 18 .short _02219B86 - _02219B5E + 1 ; case 19 _02219B86: cmp r6, #0 bne _02219BCC cmp r5, #0 beq _02219B98 add r0, r4, #0 mov r1, #0x40 bl MOD13_0221A2FC add r7, r0, #0 _02219B98: bl MOD13_0221A1A4 cmp r0, #0 beq _02219C16 mov r6, #1 b _02219BCC _02219BA4: cmp r6, #0 bne _02219BCC cmp r5, #8 bge _02219BB0 add r5, r5, #1 b _02219BCC _02219BB0: add r0, r4, #0 mov r1, #0x40 bl MOD13_0221A2FC add r7, r0, #0 bl MOD13_0221A1A4 cmp r0, #0 beq _02219C16 mov r6, #1 b _02219BCC _02219BC6: mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #8] _02219BCC: ldr r0, [sp, #0xc] cmp r0, #0 bne _02219B40 cmp r7, #0 beq _02219BEA sub r0, r7, #1 mov r1, #0x54 mul r0, r1 add r0, #0x58 ldr r1, _02219C44 ; =0x02241900 ldr r1, [r1] blx r1 cmp r0, #0 bne _02219BF6 b _02219C16 _02219BEA: mov r0, #0x58 ldr r1, _02219C44 ; =0x02241900 ldr r1, [r1] blx r1 cmp r0, #0 beq _02219C16 _02219BF6: ldr r1, [sp, #4] str r0, [r1] str r7, [r0] mov r6, #0 cmp r7, #0 ble _02219C16 add r5, r0, #4 _02219C04: add r0, r4, #0 add r1, r5, #0 bl MOD13_02219EB4 add r4, #0xc0 add r5, #0x54 add r6, r6, #1 cmp r6, r7 blt _02219C04 _02219C16: add r0, sp, #0x18 bl OS_CancelAlarm ldr r5, _02219C5C ; =0x02241920 add r4, sp, #0x14 mov r6, #0 _02219C22: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl OS_ReceiveMessage cmp r0, #1 beq _02219C22 _02219C30: ldr r0, [sp, #0x10] ldr r1, _02219C48 ; =0x0224190C ldr r1, [r1] blx r1 ldr r0, [sp, #8] add sp, #0x44 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02219C44: .word 0x02241900 _02219C48: .word 0x0224190C _02219C4C: .word 0x00003000 _02219C50: .word 0x0030BFFE _02219C54: .word 0x003FEC42 _02219C58: .word MOD13_02219E48 _02219C5C: .word 0x02241920 thumb_func_start MOD13_02219C60 MOD13_02219C60: ; 0x02219C60 push {r4, r5, r6, r7, lr} sub sp, #4 mov r0, #0 mvn r4, r0 bl MOD13_0221A164 cmp r0, #0 beq _02219C8C mov r5, #0 ldr r6, _02219C98 ; =0x02241920 add r7, sp, #0 _02219C76: add r0, r6, #0 add r1, r7, #0 mov r2, #1 bl OS_ReceiveMessage ldr r0, [sp] cmp r0, #0xe bne _02219C88 add r4, r5, #0 _02219C88: cmp r5, #0 bne _02219C76 _02219C8C: add r0, r4, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02219C98: .word 0x02241920 thumb_func_start MOD13_02219C9C MOD13_02219C9C: ; 0x02219C9C push {r4, r5, lr} sub sp, #4 mov r4, #1 mov r0, #0 mvn r5, r0 ldr r0, _02219D48 ; =0x0224190C ldr r0, [r0] cmp r0, #0 bne _02219CB8 add r0, r5, #0 add sp, #4 pop {r4, r5} pop {r3} bx r3 _02219CB8: bl MOD13_0221A0FC cmp r0, #0 bne _02219CCC mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5} pop {r3} bx r3 _02219CCC: ldr r0, _02219D4C ; =0x02241920 add r1, sp, #0 mov r2, #1 bl OS_ReceiveMessage ldr r0, [sp] cmp r0, #0x14 bhi _02219D24 add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _02219CEA: ; jump table .short _02219D24 - _02219CEA + 1 ; case 0 .short _02219D24 - _02219CEA + 1 ; case 1 .short _02219D24 - _02219CEA + 1 ; case 2 .short _02219D24 - _02219CEA + 1 ; case 3 .short _02219D26 - _02219CEA + 1 ; case 4 .short _02219D26 - _02219CEA + 1 ; case 5 .short _02219D24 - _02219CEA + 1 ; case 6 .short _02219D24 - _02219CEA + 1 ; case 7 .short _02219D24 - _02219CEA + 1 ; case 8 .short _02219D24 - _02219CEA + 1 ; case 9 .short _02219D24 - _02219CEA + 1 ; case 10 .short _02219D24 - _02219CEA + 1 ; case 11 .short _02219D24 - _02219CEA + 1 ; case 12 .short _02219D24 - _02219CEA + 1 ; case 13 .short _02219D24 - _02219CEA + 1 ; case 14 .short _02219D24 - _02219CEA + 1 ; case 15 .short _02219D24 - _02219CEA + 1 ; case 16 .short _02219D24 - _02219CEA + 1 ; case 17 .short _02219D24 - _02219CEA + 1 ; case 18 .short _02219D24 - _02219CEA + 1 ; case 19 .short _02219D14 - _02219CEA + 1 ; case 20 _02219D14: mov r4, #0 add r5, r4, #0 ldr r0, _02219D50 ; =0x02241908 ldr r0, [r0] ldr r1, _02219D48 ; =0x0224190C ldr r1, [r1] blx r1 b _02219D26 _02219D24: mov r4, #0 _02219D26: cmp r4, #0 bne _02219CCC bl OS_DisableInterrupts mov r2, #0 ldr r1, _02219D54 ; =0x02241900 str r2, [r1] ldr r1, _02219D48 ; =0x0224190C str r2, [r1] bl OS_RestoreInterrupts add r0, r5, #0 add sp, #4 pop {r4, r5} pop {r3} bx r3 nop _02219D48: .word 0x0224190C _02219D4C: .word 0x02241920 _02219D50: .word 0x02241908 _02219D54: .word 0x02241900 thumb_func_start MOD13_02219D58 MOD13_02219D58: ; 0x02219D58 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r6, r1, #0 mov r4, #1 ldr r0, _02219E2C ; =0x02241920 ldr r1, _02219E30 ; =0x02241910 mov r2, #4 bl OS_InitMessageQueue cmp r5, #0 beq _02219D74 cmp r6, #0 bne _02219D80 _02219D74: mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219D80: bl OS_DisableInterrupts ldr r1, _02219E34 ; =0x02241900 str r5, [r1] ldr r1, _02219E38 ; =0x0224190C str r6, [r1] bl OS_RestoreInterrupts ldr r0, _02219E3C ; =0x00005890 ldr r1, _02219E34 ; =0x02241900 ldr r1, [r1] blx r1 add r1, r0, #0 ldr r0, _02219E40 ; =0x02241908 str r1, [r0] cmp r1, #0 bne _02219DAE mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219DAE: ldr r0, _02219E44 ; =MOD13_02219E5C ldr r2, _02219E3C ; =0x00005890 bl MOD13_02219F54 cmp r0, #0 bne _02219DBC mov r4, #0 _02219DBC: cmp r4, #0 beq _02219E14 ldr r5, _02219E2C ; =0x02241920 add r6, sp, #0 mov r7, #1 _02219DC6: add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl OS_ReceiveMessage ldr r0, [sp] cmp r0, #0xf bhi _02219E0E add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _02219DE4: ; jump table .short _02219E0E - _02219DE4 + 1 ; case 0 .short _02219E0E - _02219DE4 + 1 ; case 1 .short _02219E0E - _02219DE4 + 1 ; case 2 .short _02219E0E - _02219DE4 + 1 ; case 3 .short _02219E10 - _02219DE4 + 1 ; case 4 .short _02219E10 - _02219DE4 + 1 ; case 5 .short _02219E04 - _02219DE4 + 1 ; case 6 .short _02219E0E - _02219DE4 + 1 ; case 7 .short _02219E0E - _02219DE4 + 1 ; case 8 .short _02219E0E - _02219DE4 + 1 ; case 9 .short _02219E0E - _02219DE4 + 1 ; case 10 .short _02219E0E - _02219DE4 + 1 ; case 11 .short _02219E0E - _02219DE4 + 1 ; case 12 .short _02219E0E - _02219DE4 + 1 ; case 13 .short _02219E0E - _02219DE4 + 1 ; case 14 .short _02219E0E - _02219DE4 + 1 ; case 15 _02219E04: mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219E0E: mov r4, #0 _02219E10: cmp r4, #0 bne _02219DC6 _02219E14: ldr r0, _02219E40 ; =0x02241908 ldr r0, [r0] ldr r1, _02219E38 ; =0x0224190C ldr r1, [r1] blx r1 mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _02219E2C: .word 0x02241920 _02219E30: .word 0x02241910 _02219E34: .word 0x02241900 _02219E38: .word 0x0224190C _02219E3C: .word 0x00005890 _02219E40: .word 0x02241908 _02219E44: .word MOD13_02219E5C thumb_func_start MOD13_02219E48 MOD13_02219E48: ; 0x02219E48 add r1, r0, #0 ldr r0, _02219E54 ; =0x02241920 mov r2, #0 ldr r3, _02219E58 ; =0x020CBDC4 bx r3 nop _02219E54: .word 0x02241920 _02219E58: .word 0x020CBDC4 thumb_func_start MOD13_02219E5C MOD13_02219E5C: ; 0x02219E5C add r1, r0, #0 ldr r0, _02219E68 ; =0x02241920 mov r2, #0 ldr r3, _02219E6C ; =0x020CBDC4 bx r3 nop _02219E68: .word 0x02241920 _02219E6C: .word 0x020CBDC4 thumb_func_start MOD13_02219E70 MOD13_02219E70: ; 0x02219E70 add r3, r0, #0 str r2, [r3] add r0, r1, #0 add r1, r3, #4 ldr r3, _02219E7C ; =MOD13_02219EB4 bx r3 .align 2, 0 _02219E7C: .word MOD13_02219EB4 thumb_func_start MOD13_02219E80 MOD13_02219E80: ; 0x02219E80 push {r4, r5, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 mov r1, #0 add r0, sp, #0 strh r1, [r0] ldrh r0, [r0] add r1, r4, #0 add r1, #0xc mov r2, #0x20 bl MIi_CpuClear16 ldr r0, [r5] strh r0, [r4, #0xa] add r0, r5, #4 add r1, r4, #0 add r1, #0xc ldrh r2, [r4, #0xa] bl MI_CpuCopy8 add sp, #4 pop {r4, r5} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_02219EB4 MOD13_02219EB4: ; 0x02219EB4 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 ldrh r0, [r5, #0xa] str r0, [r4] add r0, r5, #0 add r0, #0xc add r1, r4, #4 mov r2, #0x20 bl MIi_CpuCopy16 ldrh r0, [r5, #0x36] str r0, [r4, #0x24] add r0, r5, #4 add r1, r4, #0 add r1, #0x30 mov r2, #6 bl MIi_CpuCopy16 mov r2, #0 add r3, r2, #0 ldr r1, _02219F50 ; =0x0223F834 _02219EE2: ldrh r6, [r5, #0x30] ldrh r0, [r1] and r6, r0 cmp r6, #0 beq _02219F10 add r0, r4, r2 ldrb r7, [r1, #2] add r6, r0, #0 add r6, #0x3c strb r7, [r6] ldrh r7, [r5, #0x2e] ldrh r6, [r1] and r7, r6 cmp r7, #0 beq _02219F0E add r6, r0, #0 add r6, #0x3c ldrb r7, [r6] mov r6, #0x80 orr r7, r6 add r0, #0x3c strb r7, [r0] _02219F0E: add r2, r2, #1 _02219F10: add r1, r1, #4 add r3, r3, #1 cmp r3, #0xc blt _02219EE2 str r2, [r4, #0x38] ldrh r0, [r5, #0x32] str r0, [r4, #0x4c] ldrh r1, [r5, #0x2c] mov r0, #3 and r1, r0 cmp r1, #1 bne _02219F34 mov r0, #1 str r0, [r4, #0x50] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219F34: cmp r1, #2 bne _02219F44 mov r0, #2 str r0, [r4, #0x50] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219F44: mov r0, #0 str r0, [r4, #0x50] add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _02219F50: .word 0x0223F834 thumb_func_start MOD13_02219F54 MOD13_02219F54: ; 0x02219F54 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r1, #0 add r7, r2, #0 bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221A028 ; =0x02241A84 str r5, [r0] add r2, r5, #0 add r2, #0x53 mov r0, #3 bic r2, r0 ldr r0, _0221A02C ; =0x02241A68 str r2, [r0] add r1, r2, #0 add r1, #0x2f mov r3, #0x1f bic r1, r3 ldr r3, _0221A030 ; =0x02241A60 str r1, [r3] ldr r3, _0221A034 ; =0x0000231F add r1, r1, r3 mov r3, #0x1f bic r1, r3 ldr r3, _0221A038 ; =0x02241A80 str r1, [r3] add r1, #0xdf mov r3, #0x1f bic r1, r3 str r1, [r2, #4] ldr r1, [r0] add r3, r5, r7 ldr r2, [r1, #4] sub r2, r3, r2 str r2, [r1, #8] mov r2, #0 ldr r1, [r0] str r2, [r1, #0xc] ldr r1, [r0] mov r0, #3 str r0, [r1] ldr r0, _0221A03C ; =0x02241A7C str r6, [r0] ldr r0, _0221A040 ; =0x02241A78 ldr r0, [r0] cmp r0, #0 bne _02219FDA ldr r0, _0221A030 ; =0x02241A60 ldr r0, [r0] ldr r1, _0221A044 ; =0x00002300 bl FUN_020A7E80 cmp r0, #0 beq _02219FD4 add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _02219FD4: mov r1, #1 ldr r0, _0221A040 ; =0x02241A78 str r1, [r0] _02219FDA: ldr r0, _0221A040 ; =0x02241A78 ldr r0, [r0] cmp r0, #1 bne _0221A016 ldr r0, _0221A02C ; =0x02241A68 ldr r0, [r0] ldr r1, _0221A048 ; =MOD13_0221A3CC bl FUN_020A7BD4 cmp r0, #3 beq _0221A000 add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A000: mov r1, #4 ldr r0, _0221A040 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A016: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221A028: .word 0x02241A84 _0221A02C: .word 0x02241A68 _0221A030: .word 0x02241A60 _0221A034: .word 0x0000231F _0221A038: .word 0x02241A80 _0221A03C: .word 0x02241A7C _0221A040: .word 0x02241A78 _0221A044: .word 0x00002300 _0221A048: .word MOD13_0221A3CC thumb_func_start MOD13_0221A04C MOD13_0221A04C: ; 0x0221A04C push {r4, r5, r6, r7, lr} sub sp, #4 add r7, r0, #0 add r5, r1, #0 add r6, r2, #0 bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221A0EC ; =0x02241A6C str r6, [r0] cmp r5, #0 beq _0221A072 add r0, r5, #0 ldr r1, _0221A0F0 ; =0x02241A84 ldr r1, [r1] mov r2, #0x50 bl MI_CpuCopy8 b _0221A07E _0221A072: ldr r0, _0221A0F0 ; =0x02241A84 ldr r0, [r0] mov r1, #0 mov r2, #0x50 bl MI_CpuFill8 _0221A07E: add r0, r7, #0 ldr r1, _0221A0F4 ; =0x02241A80 ldr r1, [r1] mov r2, #0xc0 bl MIi_CpuCopy32 bl MOD13_0221A348 cmp r0, #1 bne _0221A0A8 mov r1, #8 ldr r0, _0221A0F8 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A0A8: ldr r0, _0221A0F8 ; =0x02241A78 ldr r0, [r0] cmp r0, #3 bne _0221A0DA ldr r0, _0221A0F4 ; =0x02241A80 ldr r0, [r0] ldr r1, _0221A0F0 ; =0x02241A84 ldr r1, [r1] ldr r2, _0221A0EC ; =0x02241A6C ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221A0DA mov r1, #8 ldr r0, _0221A0F8 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A0DA: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221A0EC: .word 0x02241A6C _0221A0F0: .word 0x02241A84 _0221A0F4: .word 0x02241A80 _0221A0F8: .word 0x02241A78 thumb_func_start MOD13_0221A0FC MOD13_0221A0FC: ; 0x0221A0FC push {r4, lr} bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221A160 ; =0x02241A78 ldr r0, [r0] cmp r0, #3 bne _0221A136 bl FUN_020A7AC8 cmp r0, #3 beq _0221A122 add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 _0221A122: mov r1, #2 ldr r0, _0221A160 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221A136: bl MOD13_0221A348 cmp r0, #1 bne _0221A152 mov r1, #2 ldr r0, _0221A160 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221A152: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _0221A160: .word 0x02241A78 thumb_func_start MOD13_0221A164 MOD13_0221A164: ; 0x0221A164 push {r4, lr} bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221A1A0 ; =0x02241A78 ldr r0, [r0] cmp r0, #7 bne _0221A190 bl FUN_020A7488 cmp r0, #3 bne _0221A190 mov r1, #4 ldr r0, _0221A1A0 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221A190: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 nop _0221A1A0: .word 0x02241A78 thumb_func_start MOD13_0221A1A4 MOD13_0221A1A4: ; 0x0221A1A4 push {r4, lr} bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221A1E4 ; =0x02241A78 ldr r0, [r0] cmp r0, #5 bne _0221A1D6 mov r0, #0 add r1, r0, #0 add r2, r0, #0 bl FUN_020A7A90 cmp r0, #3 bne _0221A1D6 mov r1, #4 ldr r0, _0221A1E4 ; =0x02241A78 str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221A1D6: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _0221A1E4: .word 0x02241A78 thumb_func_start MOD13_0221A1E8 MOD13_0221A1E8: ; 0x0221A1E8 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 str r3, [sp] bl OS_DisableInterrupts add r7, r0, #0 ldr r1, _0221A2DC ; =0x02241A64 ldr r0, [sp] str r0, [r1] cmp r5, #0 beq _0221A21E mov r2, #0 ldr r1, _0221A2E0 ; =0x02241A88 _0221A208: ldrb r0, [r5] add r5, r5, #1 strb r0, [r1] add r1, r1, #1 add r2, r2, #1 cmp r2, #6 blt _0221A208 ldr r1, _0221A2E0 ; =0x02241A88 ldr r0, _0221A2E4 ; =0x02241A70 str r1, [r0] b _0221A22E _0221A21E: ldr r0, _0221A2E0 ; =0x02241A88 mov r1, #0xff mov r2, #6 bl MI_CpuFill8 ldr r1, _0221A2E8 ; =0x020FF590 ldr r0, _0221A2E4 ; =0x02241A70 str r1, [r0] _0221A22E: cmp r4, #0 beq _0221A26C cmp r6, #0 ble _0221A26C cmp r6, #0x20 bgt _0221A26C mov r1, #0 cmp r6, #0 ble _0221A250 ldr r2, _0221A2EC ; =0x02241A90 _0221A242: ldrb r0, [r4] add r4, r4, #1 strb r0, [r2] add r2, r2, #1 add r1, r1, #1 cmp r1, r6 blt _0221A242 _0221A250: cmp r1, #0x20 bge _0221A264 ldr r0, _0221A2EC ; =0x02241A90 add r2, r0, r1 mov r0, #0 _0221A25A: strb r0, [r2] add r2, r2, #1 add r1, r1, #1 cmp r1, #0x20 blt _0221A25A _0221A264: ldr r1, _0221A2EC ; =0x02241A90 ldr r0, _0221A2F0 ; =0x02241A74 str r1, [r0] b _0221A27C _0221A26C: ldr r0, _0221A2EC ; =0x02241A90 mov r1, #0xff mov r2, #0x20 bl MI_CpuFill8 ldr r1, _0221A2F4 ; =0x020FF598 ldr r0, _0221A2F0 ; =0x02241A74 str r1, [r0] _0221A27C: ldr r0, _0221A2F8 ; =0x02241A78 ldr r0, [r0] cmp r0, #3 bne _0221A2AE ldr r0, _0221A2E4 ; =0x02241A70 ldr r0, [r0] ldr r1, _0221A2F0 ; =0x02241A74 ldr r1, [r1] ldr r2, _0221A2DC ; =0x02241A64 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221A2CC mov r1, #6 ldr r0, _0221A2F8 ; =0x02241A78 str r1, [r0] add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A2AE: bl MOD13_0221A348 cmp r0, #1 bne _0221A2CC mov r1, #6 ldr r0, _0221A2F8 ; =0x02241A78 str r1, [r0] add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221A2CC: add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221A2DC: .word 0x02241A64 _0221A2E0: .word 0x02241A88 _0221A2E4: .word 0x02241A70 _0221A2E8: .word 0x020FF590 _0221A2EC: .word 0x02241A90 _0221A2F0: .word 0x02241A74 _0221A2F4: .word 0x020FF598 _0221A2F8: .word 0x02241A78 thumb_func_start MOD13_0221A2FC MOD13_0221A2FC: ; 0x0221A2FC push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r7, r1, #0 mov r0, #1 bl FUN_020A83D0 bl FUN_020A846C add r6, r0, #0 cmp r6, #0 ble _0221A336 mov r4, #0 cmp r6, #0 ble _0221A336 _0221A31A: cmp r4, r7 bge _0221A336 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_020A8358 add r1, r5, #0 mov r2, #0xc0 bl MIi_CpuCopy32 add r4, r4, #1 add r5, #0xc0 cmp r4, r6 blt _0221A31A _0221A336: mov r0, #0 bl FUN_020A83D0 add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221A348 MOD13_0221A348: ; 0x0221A348 push {lr} sub sp, #4 ldr r0, _0221A3C0 ; =0x02241A78 ldr r0, [r0] cmp r0, #8 bhi _0221A3B0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221A362: ; jump table .short _0221A3B0 - _0221A362 + 1 ; case 0 .short _0221A39A - _0221A362 + 1 ; case 1 .short _0221A3B0 - _0221A362 + 1 ; case 2 .short _0221A3B0 - _0221A362 + 1 ; case 3 .short _0221A3B0 - _0221A362 + 1 ; case 4 .short _0221A374 - _0221A362 + 1 ; case 5 .short _0221A3B0 - _0221A362 + 1 ; case 6 .short _0221A38A - _0221A362 + 1 ; case 7 .short _0221A3B0 - _0221A362 + 1 ; case 8 _0221A374: mov r0, #0 add r1, r0, #0 add r2, r0, #0 bl FUN_020A7A90 cmp r0, #3 beq _0221A3B8 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221A38A: bl FUN_020A7488 cmp r0, #3 beq _0221A3B8 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221A39A: ldr r0, _0221A3C4 ; =0x02241A68 ldr r0, [r0] ldr r1, _0221A3C8 ; =MOD13_0221A3CC bl FUN_020A7BD4 cmp r0, #3 beq _0221A3B8 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221A3B0: mov r0, #0 add sp, #4 pop {r3} bx r3 _0221A3B8: mov r0, #1 add sp, #4 pop {r3} bx r3 .align 2, 0 _0221A3C0: .word 0x02241A78 _0221A3C4: .word 0x02241A68 _0221A3C8: .word MOD13_0221A3CC thumb_func_start MOD13_0221A3CC MOD13_0221A3CC: ; 0x0221A3CC push {lr} sub sp, #4 cmp r0, #0 bne _0221A3D6 b _0221A750 _0221A3D6: mov r1, #0 ldrsh r2, [r0, r1] cmp r2, #7 bls _0221A3E0 b _0221A742 _0221A3E0: add r2, r2, r2 add r2, pc ldrh r2, [r2, #8] lsl r2, r2, #0x10 asr r2, r2, #0x10 add r2, pc bx r2 _0221A3EE: ; jump table .short _0221A742 - _0221A3EE + 1 ; case 0 .short _0221A3FE - _0221A3EE + 1 ; case 1 .short _0221A6E4 - _0221A3EE + 1 ; case 2 .short _0221A4AE - _0221A3EE + 1 ; case 3 .short _0221A536 - _0221A3EE + 1 ; case 4 .short _0221A4F2 - _0221A3EE + 1 ; case 5 .short _0221A610 - _0221A3EE + 1 ; case 6 .short _0221A728 - _0221A3EE + 1 ; case 7 _0221A3FE: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A494 ldr r0, _0221A758 ; =0x02241A78 ldr r2, [r0] cmp r2, #4 bne _0221A426 mov r2, #3 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A41C b _0221A750 _0221A41C: mov r0, #6 blx r2 add sp, #4 pop {r3} bx r3 _0221A426: cmp r2, #6 bne _0221A45C ldr r0, _0221A760 ; =0x02241A70 ldr r0, [r0] ldr r1, _0221A764 ; =0x02241A74 ldr r1, [r1] ldr r2, _0221A768 ; =0x02241A64 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221A440 b _0221A750 _0221A440: mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A450 b _0221A750 _0221A450: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A45C: cmp r2, #8 beq _0221A462 b _0221A750 _0221A462: ldr r0, _0221A76C ; =0x02241A80 ldr r0, [r0] ldr r1, _0221A770 ; =0x02241A84 ldr r1, [r1] ldr r2, _0221A774 ; =0x02241A6C ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221A478 b _0221A750 _0221A478: mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A488 b _0221A750 _0221A488: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A494: mov r3, #1 ldr r0, _0221A758 ; =0x02241A78 str r3, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r3, [r0] cmp r3, #0 bne _0221A4A4 b _0221A750 _0221A4A4: add r0, r2, #0 blx r3 add sp, #4 pop {r3} bx r3 _0221A4AE: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A4D8 ldr r0, _0221A758 ; =0x02241A78 ldr r2, [r0] cmp r2, #6 beq _0221A4C0 b _0221A750 _0221A4C0: mov r2, #5 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A4CE b _0221A750 _0221A4CE: mov r0, #8 blx r2 add sp, #4 pop {r3} bx r3 _0221A4D8: mov r2, #3 ldr r0, _0221A758 ; =0x02241A78 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A4E8 b _0221A750 _0221A4E8: mov r0, #9 blx r2 add sp, #4 pop {r3} bx r3 _0221A4F2: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A51C ldr r0, _0221A758 ; =0x02241A78 ldr r2, [r0] cmp r2, #8 beq _0221A504 b _0221A750 _0221A504: mov r2, #7 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A512 b _0221A750 _0221A512: mov r0, #0xc blx r2 add sp, #4 pop {r3} bx r3 _0221A51C: mov r2, #3 ldr r0, _0221A758 ; =0x02241A78 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A52C b _0221A750 _0221A52C: mov r0, #0xd blx r2 add sp, #4 pop {r3} bx r3 _0221A536: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A5F6 ldr r0, _0221A758 ; =0x02241A78 ldr r2, [r0] cmp r2, #4 bne _0221A55E mov r2, #3 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A554 b _0221A750 _0221A554: mov r0, #0xa blx r2 add sp, #4 pop {r3} bx r3 _0221A55E: cmp r2, #6 bne _0221A594 ldr r0, _0221A760 ; =0x02241A70 ldr r0, [r0] ldr r1, _0221A764 ; =0x02241A74 ldr r1, [r1] ldr r2, _0221A768 ; =0x02241A64 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221A578 b _0221A750 _0221A578: mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A588 b _0221A750 _0221A588: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A594: cmp r2, #2 bne _0221A5BE bl FUN_020A7AC8 cmp r0, #3 bne _0221A5A2 b _0221A750 _0221A5A2: mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A5B2 b _0221A750 _0221A5B2: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A5BE: cmp r2, #8 beq _0221A5C4 b _0221A750 _0221A5C4: ldr r0, _0221A76C ; =0x02241A80 ldr r0, [r0] ldr r1, _0221A770 ; =0x02241A84 ldr r1, [r1] ldr r2, _0221A774 ; =0x02241A6C ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221A5DA b _0221A750 _0221A5DA: mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A5EA b _0221A750 _0221A5EA: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A5F6: mov r2, #3 ldr r0, _0221A758 ; =0x02241A78 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A606 b _0221A750 _0221A606: mov r0, #0xb blx r2 add sp, #4 pop {r3} bx r3 _0221A610: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A6CC ldr r0, _0221A758 ; =0x02241A78 ldr r2, [r0] cmp r2, #4 bne _0221A638 mov r2, #3 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 bne _0221A62E b _0221A750 _0221A62E: mov r0, #0xe blx r2 add sp, #4 pop {r3} bx r3 _0221A638: cmp r2, #6 bne _0221A66A ldr r0, _0221A760 ; =0x02241A70 ldr r0, [r0] ldr r1, _0221A764 ; =0x02241A74 ldr r1, [r1] ldr r2, _0221A768 ; =0x02241A64 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 beq _0221A750 mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A66A: cmp r2, #2 bne _0221A690 bl FUN_020A7AC8 cmp r0, #3 beq _0221A750 mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A690: cmp r2, #8 bne _0221A6C2 ldr r0, _0221A76C ; =0x02241A80 ldr r0, [r0] ldr r1, _0221A770 ; =0x02241A84 ldr r1, [r1] ldr r2, _0221A774 ; =0x02241A6C ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 beq _0221A750 mov r1, #3 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221A6C2: mov r1, #3 str r1, [r0] add sp, #4 pop {r3} bx r3 _0221A6CC: mov r2, #3 ldr r0, _0221A758 ; =0x02241A78 str r2, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #0xf blx r2 add sp, #4 pop {r3} bx r3 _0221A6E4: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221A710 ldr r0, _0221A758 ; =0x02241A78 ldr r0, [r0] cmp r0, #2 bne _0221A750 bl FUN_020A7E0C mov r1, #0 ldr r0, _0221A758 ; =0x02241A78 str r1, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #0x14 blx r2 add sp, #4 pop {r3} bx r3 _0221A710: mov r3, #3 ldr r0, _0221A758 ; =0x02241A78 str r3, [r0] ldr r0, _0221A75C ; =0x02241A7C ldr r3, [r0] cmp r3, #0 beq _0221A750 add r0, r2, #0 blx r3 add sp, #4 pop {r3} bx r3 _0221A728: ldr r0, _0221A758 ; =0x02241A78 ldr r0, [r0] cmp r0, #5 bne _0221A750 ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #5 blx r2 add sp, #4 pop {r3} bx r3 _0221A742: ldr r0, _0221A75C ; =0x02241A7C ldr r2, [r0] cmp r2, #0 beq _0221A750 mov r0, #1 mov r1, #0 blx r2 _0221A750: add sp, #4 pop {r3} bx r3 nop _0221A758: .word 0x02241A78 _0221A75C: .word 0x02241A7C _0221A760: .word 0x02241A70 _0221A764: .word 0x02241A74 _0221A768: .word 0x02241A64 _0221A76C: .word 0x02241A80 _0221A770: .word 0x02241A84 _0221A774: .word 0x02241A6C thumb_func_start MOD13_0221A778 MOD13_0221A778: ; 0x0221A778 push {lr} sub sp, #0xc add r0, sp, #0 bl MOD13_0221A7AC add r0, sp, #0 ldr r1, _0221A790 ; =0x02241B2C ldr r1, [r1] blx r1 add sp, #0xc pop {r3} bx r3 .align 2, 0 _0221A790: .word 0x02241B2C thumb_func_start MOD13_0221A794 MOD13_0221A794: ; 0x0221A794 push {lr} sub sp, #4 ldr r1, _0221A7A8 ; =0x02241CA8 mov r2, #0xe8 bl memcpy mov r0, #1 add sp, #4 pop {r3} bx r3 .align 2, 0 _0221A7A8: .word 0x02241CA8 thumb_func_start MOD13_0221A7AC MOD13_0221A7AC: ; 0x0221A7AC push {r4, lr} add r4, r0, #0 ldr r0, _0221A7E0 ; =0x02241AE8 ldr r0, [r0] str r0, [r4] ldr r0, _0221A7E4 ; =0x0223F870 ldr r1, [r0] mov r0, #0 mvn r0, r0 cmp r1, r0 bne _0221A7C6 str r0, [r4, #4] b _0221A7D2 _0221A7C6: bl MOD13_0221AA90 ldr r1, _0221A7E4 ; =0x0223F870 ldr r1, [r1] sub r0, r1, r0 str r0, [r4, #4] _0221A7D2: ldr r0, _0221A7E8 ; =0x02241B28 ldr r0, [r0] str r0, [r4, #8] mov r0, #1 pop {r4} pop {r3} bx r3 .align 2, 0 _0221A7E0: .word 0x02241AE8 _0221A7E4: .word 0x0223F870 _0221A7E8: .word 0x02241B28 thumb_func_start MOD13_0221A7EC MOD13_0221A7EC: ; 0x0221A7EC push {r4, r5, r6, lr} ldr r0, _0221A884 ; =0x02241B14 ldr r0, [r0] cmp r0, #0 beq _0221A862 ldr r4, _0221A888 ; =0x02241AE8 ldr r6, [r4] mov r1, #1 ldr r0, _0221A88C ; =0x02241AC0 str r1, [r0] mov r5, #0x64 b _0221A80A _0221A804: add r0, r5, #0 bl OS_Sleep _0221A80A: ldr r0, [r4] cmp r0, #1 blt _0221A814 cmp r0, #5 ble _0221A804 _0221A814: ldr r0, _0221A890 ; =0x000001F4 bl OS_Sleep ldr r0, _0221A894 ; =0x02241BE8 bl OS_IsThreadTerminated cmp r0, #0 bne _0221A83C ldr r4, _0221A894 ; =0x02241BE8 _0221A826: add r0, r4, #0 bl OS_WakeupThreadDirect add r0, r4, #0 bl OS_JoinThread add r0, r4, #0 bl OS_IsThreadTerminated cmp r0, #0 beq _0221A826 _0221A83C: ldr r0, _0221A898 ; =0x02241AE0 ldr r0, [r0] cmp r0, #0 beq _0221A850 ldr r1, _0221A89C ; =0x02241ABC ldr r1, [r1] blx r1 mov r1, #0 ldr r0, _0221A898 ; =0x02241AE0 str r1, [r0] _0221A850: mov r1, #0 ldr r0, _0221A884 ; =0x02241B14 str r1, [r0] ldr r0, _0221A888 ; =0x02241AE8 ldr r0, [r0] cmp r6, r0 beq _0221A862 bl MOD13_0221A778 _0221A862: ldr r0, _0221A8A0 ; =0x02241B24 ldr r0, [r0] cmp r0, #0 ble _0221A87A bl MOD13_0221DAF4 mov r2, #0 ldr r1, _0221A8A0 ; =0x02241B24 str r2, [r1] pop {r4, r5, r6} pop {r3} bx r3 _0221A87A: mov r0, #9 mvn r0, r0 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _0221A884: .word 0x02241B14 _0221A888: .word 0x02241AE8 _0221A88C: .word 0x02241AC0 _0221A890: .word 0x000001F4 _0221A894: .word 0x02241BE8 _0221A898: .word 0x02241AE0 _0221A89C: .word 0x02241ABC _0221A8A0: .word 0x02241B24 thumb_func_start MOD13_0221A8A4 MOD13_0221A8A4: ; 0x0221A8A4 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 ldr r0, _0221A998 ; =0x02241AE8 ldr r0, [r0] cmp r0, #1 blt _0221A8C2 cmp r0, #5 bgt _0221A8C2 mov r0, #9 mvn r0, r0 add sp, #0xc pop {r4, r5} pop {r3} bx r3 _0221A8C2: ldr r0, _0221A99C ; =0x0223F874 str r1, [r0] mov r5, #7 ldr r0, _0221A998 ; =0x02241AE8 str r5, [r0] ldr r0, _0221A9A0 ; =0x02241B2C str r2, [r0] ldr r0, _0221A9A4 ; =0x02241AB4 str r3, [r0] ldr r2, [sp, #0x18] ldr r0, _0221A9A8 ; =0x02241ABC str r2, [r0] ldr r2, [sp, #0x1c] ldr r0, _0221A9AC ; =0x0223F86C str r2, [r0] add r0, r1, #0 bl MOD13_0221DB54 mov r2, #1 ldr r1, _0221A9B0 ; =0x02241B24 str r2, [r1] cmp r0, #0 bge _0221A8FC ldr r1, _0221A9B4 ; =0x02241B28 str r0, [r1] add sp, #0xc pop {r4, r5} pop {r3} bx r3 _0221A8FC: ldr r0, _0221A9AC ; =0x0223F86C ldr r0, [r0] ldr r1, _0221A9A4 ; =0x02241AB4 ldr r1, [r1] blx r1 ldr r1, _0221A9B8 ; =0x02241AE0 str r0, [r1] cmp r0, #0 bne _0221A91E mov r0, #0 mvn r0, r0 ldr r1, _0221A9B4 ; =0x02241B28 str r0, [r1] add sp, #0xc pop {r4, r5} pop {r3} bx r3 _0221A91E: bl OS_IsThreadAvailable cmp r0, #1 beq _0221A936 mov r0, #8 mvn r0, r0 ldr r1, _0221A9B4 ; =0x02241B28 str r0, [r1] add sp, #0xc pop {r4, r5} pop {r3} bx r3 _0221A936: ldr r0, _0221A9AC ; =0x0223F86C ldr r3, [r0] str r3, [sp] str r4, [sp, #4] ldr r0, _0221A9BC ; =0x02241BE8 ldr r1, _0221A9C0 ; =MOD13_0221C618 mov r2, #0 ldr r4, _0221A9B8 ; =0x02241AE0 ldr r5, [r4] mov r4, #7 bic r3, r4 add r3, r5, r3 bl OS_CreateThread mov r1, #1 ldr r0, _0221A998 ; =0x02241AE8 str r1, [r0] bl MOD13_0221AA90 ldr r1, _0221A9C4 ; =0x0000EA60 add r1, r0, r1 ldr r0, _0221A9C8 ; =0x0223F870 str r1, [r0] mov r0, #0 ldr r1, _0221A9CC ; =0x02241AC0 str r0, [r1] ldr r5, _0221A9D0 ; =0x02241CA8 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 _0221A972: stmia r5!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} sub r4, r4, #1 cmp r4, #0 bne _0221A972 stmia r5!, {r0, r1} bl MOD13_0221A778 ldr r0, _0221A9BC ; =0x02241BE8 bl OS_WakeupThreadDirect mov r0, #1 ldr r1, _0221A9D4 ; =0x02241B14 str r0, [r1] add sp, #0xc pop {r4, r5} pop {r3} bx r3 nop _0221A998: .word 0x02241AE8 _0221A99C: .word 0x0223F874 _0221A9A0: .word 0x02241B2C _0221A9A4: .word 0x02241AB4 _0221A9A8: .word 0x02241ABC _0221A9AC: .word 0x0223F86C _0221A9B0: .word 0x02241B24 _0221A9B4: .word 0x02241B28 _0221A9B8: .word 0x02241AE0 _0221A9BC: .word 0x02241BE8 _0221A9C0: .word MOD13_0221C618 _0221A9C4: .word 0x0000EA60 _0221A9C8: .word 0x0223F870 _0221A9CC: .word 0x02241AC0 _0221A9D0: .word 0x02241CA8 _0221A9D4: .word 0x02241B14 thumb_func_start MOD13_0221A9D8 MOD13_0221A9D8: ; 0x0221A9D8 push {r4, r5, r6, r7, lr} sub sp, #4 str r0, [sp] add r6, r1, #0 lsl r5, r0, #0 mov r4, #0 add r7, r4, #0 _0221A9E6: add r0, r5, #0 ldrsb r1, [r6, r7] add r6, r6, #1 bl MOD13_0221AA14 add r1, r5, r0 add r5, r1, #0 cmp r4, #5 bge _0221A9FE add r5, r1, #1 mov r0, #0x3a strb r0, [r1] _0221A9FE: add r4, r4, #1 cmp r4, #6 blt _0221A9E6 mov r0, #0 strb r0, [r5] ldr r0, [sp] sub r0, r5, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_0221AA14 MOD13_0221AA14: ; 0x0221AA14 push {r4, r5} add r2, r0, #0 lsl r1, r1, #0x18 lsr r4, r1, #0x18 mov r1, #0xf0 add r3, r4, #0 and r3, r1 asr r3, r3, #4 mov r5, #0 mov r1, #0xf and r4, r1 _0221AA2A: cmp r3, #9 bgt _0221AA36 add r3, #0x30 strb r3, [r2] add r2, r2, #1 b _0221AA3C _0221AA36: add r3, #0x37 strb r3, [r2] add r2, r2, #1 _0221AA3C: add r3, r4, #0 add r5, r5, #1 cmp r5, #2 blt _0221AA2A mov r1, #0 strb r1, [r2] sub r0, r2, r0 pop {r4, r5} bx lr .align 2, 0 thumb_func_start MOD13_0221AA50 MOD13_0221AA50: ; 0x0221AA50 push {lr} sub sp, #4 ldr r1, _0221AA60 ; =0x02241ABC ldr r1, [r1] blx r1 add sp, #4 pop {r3} bx r3 .align 2, 0 _0221AA60: .word 0x02241ABC thumb_func_start MOD13_0221AA64 MOD13_0221AA64: ; 0x0221AA64 push {r4, r5, lr} sub sp, #4 add r4, r0, #0 mul r4, r1 add r0, r4, #0 ldr r1, _0221AA8C ; =0x02241AB4 ldr r1, [r1] blx r1 add r5, r0, #0 cmp r5, #0 beq _0221AA82 mov r1, #0 add r2, r4, #0 bl Call_FillMemWithValue _0221AA82: add r0, r5, #0 add sp, #4 pop {r4, r5} pop {r3} bx r3 .align 2, 0 _0221AA8C: .word 0x02241AB4 thumb_func_start MOD13_0221AA90 MOD13_0221AA90: ; 0x0221AA90 push {lr} sub sp, #4 bl OS_GetTick lsr r2, r0, #0x1a lsl r1, r1, #6 orr r1, r2 lsl r0, r0, #6 ldr r2, _0221AAB0 ; =0x000082EA mov r3, #0 bl _ll_udiv add sp, #4 pop {r3} bx r3 nop _0221AAB0: .word 0x000082EA thumb_func_start MOD13_0221AAB4 MOD13_0221AAB4: ; 0x0221AAB4 push {r4, r5, r6, lr} sub sp, #0x58 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r0, sp, #0 bl MOD13_0221B4AC add r0, sp, #0 add r1, r4, #0 add r2, r6, #0 bl MOD13_0221B42C add r0, r5, #0 add r1, sp, #0 bl MOD13_0221B3D0 add sp, #0x58 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221AAE0 MOD13_0221AAE0: ; 0x0221AAE0 mov r3, #0 cmp r2, #0 bls _0221AAF4 lsl r1, r1, #0x18 asr r1, r1, #0x18 _0221AAEA: strb r1, [r0] add r0, r0, #1 add r3, r3, #1 cmp r3, r2 blo _0221AAEA _0221AAF4: bx lr .align 2, 0 thumb_func_start MOD13_0221AAF8 MOD13_0221AAF8: ; 0x0221AAF8 push {r4} sub sp, #4 mov r4, #0 cmp r2, #0 bls _0221AB0C _0221AB02: ldrb r3, [r1, r4] strb r3, [r0, r4] add r4, r4, #1 cmp r4, r2 blo _0221AB02 _0221AB0C: add sp, #4 pop {r4} bx lr .align 2, 0 thumb_func_start MOD13_0221AB14 MOD13_0221AB14: ; 0x0221AB14 push {r4, r5, r6, r7} mov r6, #0 cmp r2, #0 bls _0221AB3E _0221AB1C: add r3, r6, #3 ldrb r3, [r1, r3] lsl r5, r3, #0x18 add r3, r6, #2 ldrb r3, [r1, r3] lsl r4, r3, #0x10 ldrb r3, [r1, r6] add r7, r6, #1 ldrb r7, [r1, r7] lsl r7, r7, #8 orr r3, r7 orr r4, r3 orr r5, r4 stmia r0!, {r5} add r6, r6, #4 cmp r6, r2 blo _0221AB1C _0221AB3E: pop {r4, r5, r6, r7} bx lr .align 2, 0 thumb_func_start MOD13_0221AB44 MOD13_0221AB44: ; 0x0221AB44 push {r4, r5} mov r3, #0 cmp r2, #0 bls _0221AB70 _0221AB4C: ldr r4, [r1] strb r4, [r0, r3] ldr r4, [r1] lsr r5, r4, #8 add r4, r3, #1 strb r5, [r0, r4] ldr r4, [r1] lsr r5, r4, #0x10 add r4, r3, #2 strb r5, [r0, r4] ldr r4, [r1] lsr r5, r4, #0x18 add r4, r3, #3 strb r5, [r0, r4] add r1, r1, #4 add r3, r3, #4 cmp r3, r2 blo _0221AB4C _0221AB70: pop {r4, r5} bx lr thumb_func_start MOD13_0221AB74 MOD13_0221AB74: ; 0x0221AB74 push {r4, r5, r6, r7, lr} sub sp, #0x84 add r5, r0, #0 ldr r0, [r5] str r0, [sp] ldr r4, [r5, #4] ldr r6, [r5, #8] ldr r7, [r5, #0xc] add r0, sp, #0x40 mov r2, #0x40 bl MOD13_0221AB14 ldr r0, [sp, #0x40] str r0, [sp, #4] add r1, r4, #0 and r1, r6 mvn r0, r4 and r0, r7 orr r1, r0 ldr r0, [sp, #4] add r1, r0, r1 ldr r0, _0221AF8C ; =0x28955B88 sub r1, r1, r0 ldr r0, [sp] add r0, r0, r1 lsl r1, r0, #7 lsr r0, r0, #0x19 orr r1, r0 add r0, r1, r4 ldr r1, [sp, #0x44] str r1, [sp, #8] add r1, r0, #0 and r1, r4 mvn r2, r0 and r2, r6 orr r1, r2 ldr r2, [sp, #8] add r2, r2, r1 ldr r1, _0221AF90 ; =0x173848AA sub r1, r2, r1 add r1, r7, r1 lsl r2, r1, #0xc lsr r1, r1, #0x14 orr r2, r1 add r3, r2, r0 ldr r1, [sp, #0x48] str r1, [sp, #0xc] add r1, r3, #0 and r1, r0 mvn r2, r3 and r2, r4 orr r1, r2 ldr r2, [sp, #0xc] add r2, r2, r1 ldr r1, _0221AF94 ; =0x242070DB add r1, r2, r1 add r1, r6, r1 lsl r2, r1, #0x11 lsr r1, r1, #0xf orr r2, r1 add r2, r2, r3 ldr r1, [sp, #0x4c] str r1, [sp, #0x10] add r1, r2, #0 and r1, r3 mvn r6, r2 and r6, r0 orr r1, r6 ldr r6, [sp, #0x10] add r6, r6, r1 ldr r1, _0221AF98 ; =0x3E423112 sub r1, r6, r1 add r1, r4, r1 lsl r4, r1, #0x16 lsr r1, r1, #0xa orr r4, r1 add r1, r4, r2 ldr r4, [sp, #0x50] str r4, [sp, #0x14] add r4, r1, #0 and r4, r2 mvn r6, r1 and r6, r3 orr r4, r6 ldr r6, [sp, #0x14] add r6, r6, r4 ldr r4, _0221AF9C ; =0x0A83F051 sub r4, r6, r4 add r0, r0, r4 lsl r4, r0, #7 lsr r0, r0, #0x19 orr r4, r0 add r4, r4, r1 ldr r0, [sp, #0x54] str r0, [sp, #0x18] add r0, r4, #0 and r0, r1 mvn r6, r4 and r6, r2 orr r0, r6 ldr r6, [sp, #0x18] add r6, r6, r0 ldr r0, _0221AFA0 ; =0x4787C62A add r0, r6, r0 add r0, r3, r0 lsl r3, r0, #0xc lsr r0, r0, #0x14 orr r3, r0 add r3, r3, r4 ldr r0, [sp, #0x58] str r0, [sp, #0x1c] add r0, r3, #0 and r0, r4 mvn r6, r3 and r6, r1 orr r0, r6 ldr r6, [sp, #0x1c] add r6, r6, r0 ldr r0, _0221AFA4 ; =0x57CFB9ED sub r0, r6, r0 add r0, r2, r0 lsl r2, r0, #0x11 lsr r0, r0, #0xf orr r2, r0 add r0, r2, r3 ldr r2, [sp, #0x5c] str r2, [sp, #0x20] add r2, r0, #0 and r2, r3 mvn r6, r0 and r6, r4 orr r2, r6 ldr r6, [sp, #0x20] add r6, r6, r2 ldr r2, _0221AFA8 ; =0x02B96AFF sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0x16 lsr r1, r1, #0xa orr r2, r1 add r6, r2, r0 ldr r1, [sp, #0x60] str r1, [sp, #0x24] add r1, r6, #0 and r1, r0 mvn r2, r6 and r2, r3 orr r1, r2 ldr r2, [sp, #0x24] add r2, r2, r1 ldr r1, _0221AFAC ; =0x698098D8 add r1, r2, r1 add r1, r4, r1 lsl r2, r1, #7 lsr r1, r1, #0x19 orr r2, r1 add r2, r2, r6 ldr r1, [sp, #0x64] str r1, [sp, #0x28] add r1, r2, #0 and r1, r6 mvn r4, r2 and r4, r0 orr r1, r4 ldr r4, [sp, #0x28] add r4, r4, r1 ldr r1, _0221AFB0 ; =0x74BB0851 sub r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0xc lsr r1, r1, #0x14 orr r3, r1 add r1, r3, r2 ldr r3, [sp, #0x68] str r3, [sp, #0x2c] add r3, r1, #0 and r3, r2 mvn r4, r1 and r4, r6 orr r3, r4 ldr r4, [sp, #0x2c] add r4, r4, r3 ldr r3, _0221AFB4 ; =0x0000A44F sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0x11 lsr r0, r0, #0xf orr r3, r0 add r4, r3, r1 ldr r0, [sp, #0x6c] str r0, [sp, #0x30] add r0, r4, #0 and r0, r1 mvn r3, r4 and r3, r2 orr r0, r3 ldr r3, [sp, #0x30] add r3, r3, r0 ldr r0, _0221AFB8 ; =0x76A32842 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0x16 lsr r0, r0, #0xa orr r3, r0 add r3, r3, r4 ldr r0, [sp, #0x70] str r0, [sp, #0x34] add r0, r3, #0 and r0, r4 mvn r6, r3 and r6, r1 orr r0, r6 ldr r6, [sp, #0x34] add r6, r6, r0 ldr r0, _0221AFBC ; =0x6B901122 add r0, r6, r0 add r0, r2, r0 lsl r2, r0, #7 lsr r0, r0, #0x19 orr r2, r0 add r0, r2, r3 ldr r2, [sp, #0x74] str r2, [sp, #0x38] add r2, r0, #0 and r2, r3 mvn r6, r0 and r6, r4 orr r2, r6 ldr r6, [sp, #0x38] add r6, r6, r2 ldr r2, _0221AFC0 ; =0x02678E6D sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0xc lsr r1, r1, #0x14 orr r2, r1 add r6, r2, r0 mvn r2, r6 ldr r7, [sp, #0x78] add r1, r6, #0 and r1, r0 and r2, r3 orr r1, r2 add r2, r7, r1 ldr r1, _0221AFC4 ; =0x5986BC72 sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #0x11 lsr r1, r1, #0xf orr r2, r1 add r2, r2, r6 mvn r4, r2 ldr r1, [sp, #0x7c] str r1, [sp, #0x3c] add r1, r2, #0 and r1, r6 and r4, r0 orr r1, r4 ldr r4, [sp, #0x3c] add r4, r4, r1 ldr r1, _0221AFC8 ; =0x49B40821 add r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0x16 lsr r1, r1, #0xa orr r3, r1 add r1, r3, r2 add r3, r1, #0 and r3, r6 add r4, r2, #0 bic r4, r6 orr r3, r4 ldr r4, [sp, #8] add r4, r4, r3 ldr r3, _0221AFCC ; =0x09E1DA9E sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #5 lsr r0, r0, #0x1b orr r3, r0 add r4, r3, r1 add r0, r4, #0 and r0, r2 add r3, r1, #0 bic r3, r2 orr r0, r3 ldr r3, [sp, #0x1c] add r3, r3, r0 ldr r0, _0221AFD0 ; =0x3FBF4CC0 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #9 lsr r0, r0, #0x17 orr r3, r0 add r3, r3, r4 add r0, r3, #0 and r0, r1 add r6, r4, #0 bic r6, r1 orr r0, r6 ldr r6, [sp, #0x30] add r6, r6, r0 ldr r0, _0221AFD4 ; =0x265E5A51 add r0, r6, r0 add r0, r2, r0 lsl r2, r0, #0xe lsr r0, r0, #0x12 orr r2, r0 add r0, r2, r3 add r2, r0, #0 and r2, r4 add r6, r3, #0 bic r6, r4 orr r2, r6 ldr r6, [sp, #4] add r6, r6, r2 ldr r2, _0221AFD8 ; =0x16493856 sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0x14 lsr r1, r1, #0xc orr r2, r1 add r6, r2, r0 add r1, r6, #0 and r1, r3 add r2, r0, #0 bic r2, r3 orr r1, r2 ldr r2, [sp, #0x18] add r2, r2, r1 ldr r1, _0221AFDC ; =0x29D0EFA3 sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #5 lsr r1, r1, #0x1b orr r2, r1 add r2, r2, r6 add r1, r2, #0 and r1, r0 add r4, r6, #0 bic r4, r0 orr r1, r4 ldr r4, [sp, #0x2c] add r4, r4, r1 ldr r1, _0221AFE0 ; =0x02441453 add r1, r4, r1 add r1, r3, r1 lsl r3, r1, #9 lsr r1, r1, #0x17 orr r3, r1 add r1, r3, r2 add r3, r1, #0 and r3, r6 add r4, r2, #0 bic r4, r6 orr r3, r4 ldr r4, [sp, #0x3c] add r4, r4, r3 ldr r3, _0221AFE4 ; =0x275E197F sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0xe lsr r0, r0, #0x12 orr r3, r0 add r4, r3, r1 add r0, r4, #0 and r0, r2 add r3, r1, #0 bic r3, r2 orr r0, r3 ldr r3, [sp, #0x14] add r3, r3, r0 ldr r0, _0221AFE8 ; =0x182C0438 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0x14 lsr r0, r0, #0xc orr r3, r0 add r3, r3, r4 add r0, r3, #0 and r0, r1 add r6, r4, #0 bic r6, r1 orr r0, r6 ldr r6, [sp, #0x28] add r6, r6, r0 ldr r0, _0221AFEC ; =0x21E1CDE6 add r0, r6, r0 add r0, r2, r0 lsl r2, r0, #5 lsr r0, r0, #0x1b orr r2, r0 add r0, r2, r3 add r6, r0, #0 and r6, r4 add r2, r3, #0 bic r2, r4 orr r6, r2 add r6, r7, r6 ldr r2, _0221AFF0 ; =0x3CC8F82A sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #9 lsr r1, r1, #0x17 orr r2, r1 add r6, r2, r0 add r1, r6, #0 and r1, r3 add r2, r0, #0 bic r2, r3 orr r1, r2 ldr r2, [sp, #0x10] add r2, r2, r1 ldr r1, _0221AFF4 ; =0x0B2AF279 sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #0xe lsr r1, r1, #0x12 orr r2, r1 add r2, r2, r6 add r1, r2, #0 and r1, r0 add r4, r6, #0 bic r4, r0 orr r1, r4 ldr r4, [sp, #0x24] add r4, r4, r1 ldr r1, _0221AFF8 ; =0x455A14ED add r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0x14 lsr r1, r1, #0xc orr r3, r1 add r1, r3, r2 add r3, r1, #0 and r3, r6 add r4, r2, #0 bic r4, r6 orr r3, r4 ldr r4, [sp, #0x38] add r4, r4, r3 ldr r3, _0221AFFC ; =0x561C16FB sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #5 lsr r0, r0, #0x1b orr r3, r0 add r4, r3, r1 add r0, r4, #0 and r0, r2 add r3, r1, #0 bic r3, r2 orr r0, r3 ldr r3, [sp, #0xc] add r3, r3, r0 ldr r0, _0221B000 ; =0x03105C08 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #9 lsr r0, r0, #0x17 orr r3, r0 add r3, r3, r4 add r0, r3, #0 and r0, r1 add r6, r4, #0 bic r6, r1 orr r0, r6 ldr r6, [sp, #0x20] add r6, r6, r0 ldr r0, _0221B004 ; =0x676F02D9 add r0, r6, r0 add r0, r2, r0 lsl r2, r0, #0xe lsr r0, r0, #0x12 orr r2, r0 add r0, r2, r3 add r2, r0, #0 and r2, r4 add r6, r3, #0 bic r6, r4 orr r2, r6 ldr r6, [sp, #0x34] add r6, r6, r2 ldr r2, _0221B008 ; =0x72D5B376 sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0x14 lsr r1, r1, #0xc orr r2, r1 add r6, r2, r0 add r2, r6, #0 eor r2, r0 add r1, r3, #0 eor r1, r2 ldr r2, [sp, #0x18] add r2, r2, r1 ldr r1, _0221B00C ; =0x0005C6BE sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #4 lsr r1, r1, #0x1c orr r2, r1 add r2, r2, r6 add r4, r2, #0 eor r4, r6 add r1, r0, #0 eor r1, r4 ldr r4, [sp, #0x24] add r4, r4, r1 ldr r1, _0221B010 ; =0x788E097F sub r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0xb lsr r1, r1, #0x15 orr r3, r1 add r1, r3, r2 add r4, r1, #0 eor r4, r2 add r3, r6, #0 eor r3, r4 ldr r4, [sp, #0x30] add r4, r4, r3 ldr r3, _0221B014 ; =0x6D9D6122 b _0221B018 .align 2, 0 _0221AF8C: .word 0x28955B88 _0221AF90: .word 0x173848AA _0221AF94: .word 0x242070DB _0221AF98: .word 0x3E423112 _0221AF9C: .word 0x0A83F051 _0221AFA0: .word 0x4787C62A _0221AFA4: .word 0x57CFB9ED _0221AFA8: .word 0x02B96AFF _0221AFAC: .word 0x698098D8 _0221AFB0: .word 0x74BB0851 _0221AFB4: .word 0x0000A44F _0221AFB8: .word 0x76A32842 _0221AFBC: .word 0x6B901122 _0221AFC0: .word 0x02678E6D _0221AFC4: .word 0x5986BC72 _0221AFC8: .word 0x49B40821 _0221AFCC: .word 0x09E1DA9E _0221AFD0: .word 0x3FBF4CC0 _0221AFD4: .word 0x265E5A51 _0221AFD8: .word 0x16493856 _0221AFDC: .word 0x29D0EFA3 _0221AFE0: .word 0x02441453 _0221AFE4: .word 0x275E197F _0221AFE8: .word 0x182C0438 _0221AFEC: .word 0x21E1CDE6 _0221AFF0: .word 0x3CC8F82A _0221AFF4: .word 0x0B2AF279 _0221AFF8: .word 0x455A14ED _0221AFFC: .word 0x561C16FB _0221B000: .word 0x03105C08 _0221B004: .word 0x676F02D9 _0221B008: .word 0x72D5B376 _0221B00C: .word 0x0005C6BE _0221B010: .word 0x788E097F _0221B014: .word 0x6D9D6122 _0221B018: add r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0x10 lsr r0, r0, #0x10 orr r3, r0 add r4, r3, r1 add r0, r4, #0 eor r0, r1 add r3, r2, #0 eor r3, r0 add r3, r7, r3 ldr r0, _0221B35C ; =0x021AC7F4 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0x17 lsr r0, r0, #9 orr r3, r0 add r3, r3, r4 add r6, r3, #0 eor r6, r4 add r0, r1, #0 eor r0, r6 ldr r6, [sp, #8] add r6, r6, r0 ldr r0, _0221B360 ; =0x5B4115BC sub r0, r6, r0 add r0, r2, r0 lsl r2, r0, #4 lsr r0, r0, #0x1c orr r2, r0 add r0, r2, r3 add r6, r0, #0 eor r6, r3 add r2, r4, #0 eor r2, r6 ldr r6, [sp, #0x14] add r6, r6, r2 ldr r2, _0221B364 ; =0x4BDECFA9 add r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0xb lsr r1, r1, #0x15 orr r2, r1 add r6, r2, r0 add r2, r6, #0 eor r2, r0 add r1, r3, #0 eor r1, r2 ldr r2, [sp, #0x20] add r2, r2, r1 ldr r1, _0221B368 ; =0x0944B4A0 sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #0x10 lsr r1, r1, #0x10 orr r2, r1 add r2, r2, r6 add r4, r2, #0 eor r4, r6 add r1, r0, #0 eor r1, r4 ldr r4, [sp, #0x2c] add r4, r4, r1 ldr r1, _0221B36C ; =0x41404390 sub r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0x17 lsr r1, r1, #9 orr r3, r1 add r1, r3, r2 add r4, r1, #0 eor r4, r2 add r3, r6, #0 eor r3, r4 ldr r4, [sp, #0x38] add r4, r4, r3 ldr r3, _0221B370 ; =0x289B7EC6 add r3, r4, r3 add r0, r0, r3 lsl r3, r0, #4 lsr r0, r0, #0x1c orr r3, r0 add r4, r3, r1 add r3, r4, #0 eor r3, r1 add r0, r2, #0 eor r0, r3 ldr r3, [sp, #4] add r3, r3, r0 ldr r0, _0221B374 ; =0x155ED806 sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0xb lsr r0, r0, #0x15 orr r3, r0 add r3, r3, r4 add r6, r3, #0 eor r6, r4 add r0, r1, #0 eor r0, r6 ldr r6, [sp, #0x10] add r6, r6, r0 ldr r0, _0221B378 ; =0x2B10CF7B sub r0, r6, r0 add r0, r2, r0 lsl r2, r0, #0x10 lsr r0, r0, #0x10 orr r2, r0 add r0, r2, r3 add r6, r0, #0 eor r6, r3 add r2, r4, #0 eor r2, r6 ldr r6, [sp, #0x1c] add r6, r6, r2 ldr r2, _0221B37C ; =0x04881D05 add r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0x17 lsr r1, r1, #9 orr r2, r1 add r6, r2, r0 add r2, r6, #0 eor r2, r0 add r1, r3, #0 eor r1, r2 ldr r2, [sp, #0x28] add r2, r2, r1 ldr r1, _0221B380 ; =0x262B2FC7 sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #4 lsr r1, r1, #0x1c orr r2, r1 add r2, r2, r6 add r4, r2, #0 eor r4, r6 add r1, r0, #0 eor r1, r4 ldr r4, [sp, #0x34] add r4, r4, r1 ldr r1, _0221B384 ; =0x1924661B sub r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0xb lsr r1, r1, #0x15 orr r3, r1 add r1, r3, r2 add r4, r1, #0 eor r4, r2 add r3, r6, #0 eor r3, r4 ldr r4, [sp, #0x3c] add r4, r4, r3 ldr r3, _0221B388 ; =0x1FA27CF8 add r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0x10 lsr r0, r0, #0x10 orr r3, r0 add r4, r3, r1 add r3, r4, #0 eor r3, r1 add r0, r2, #0 eor r0, r3 ldr r3, [sp, #0xc] add r3, r3, r0 ldr r0, _0221B38C ; =0x3B53A99B sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0x17 lsr r0, r0, #9 orr r3, r0 add r3, r3, r4 mvn r6, r1 add r0, r3, #0 orr r0, r6 add r6, r4, #0 eor r6, r0 ldr r0, [sp, #4] add r6, r0, r6 ldr r0, _0221B390 ; =0x0BD6DDBC sub r0, r6, r0 add r0, r2, r0 lsl r2, r0, #6 lsr r0, r0, #0x1a orr r2, r0 add r0, r2, r3 mvn r6, r4 add r2, r0, #0 orr r2, r6 add r6, r3, #0 eor r6, r2 ldr r2, [sp, #0x20] add r6, r2, r6 ldr r2, _0221B394 ; =0x432AFF97 add r2, r6, r2 add r1, r1, r2 lsl r2, r1, #0xa lsr r1, r1, #0x16 orr r2, r1 add r1, r2, r0 mvn r2, r3 add r6, r1, #0 orr r6, r2 add r2, r0, #0 eor r2, r6 add r6, r7, r2 ldr r2, _0221B398 ; =0x546BDC59 sub r2, r6, r2 add r2, r4, r2 lsl r4, r2, #0xf lsr r2, r2, #0x11 orr r4, r2 add r2, r4, r1 mvn r6, r0 add r4, r2, #0 orr r4, r6 add r6, r1, #0 eor r6, r4 ldr r4, [sp, #0x18] add r6, r4, r6 ldr r4, _0221B39C ; =0x036C5FC7 sub r4, r6, r4 add r3, r3, r4 lsl r4, r3, #0x15 lsr r3, r3, #0xb orr r4, r3 add r4, r4, r2 mvn r6, r1 add r3, r4, #0 orr r3, r6 add r6, r2, #0 eor r6, r3 ldr r3, [sp, #0x34] add r6, r3, r6 ldr r3, _0221B3A0 ; =0x655B59C3 add r3, r6, r3 add r0, r0, r3 lsl r3, r0, #6 lsr r0, r0, #0x1a orr r3, r0 add r3, r3, r4 mvn r6, r2 add r0, r3, #0 orr r0, r6 add r6, r4, #0 eor r6, r0 ldr r0, [sp, #0x10] add r6, r0, r6 ldr r0, _0221B3A4 ; =0x70F3336E sub r0, r6, r0 add r0, r1, r0 lsl r1, r0, #0xa lsr r0, r0, #0x16 orr r1, r0 add r0, r1, r3 mvn r6, r4 add r1, r0, #0 orr r1, r6 add r6, r3, #0 eor r6, r1 ldr r1, [sp, #0x2c] add r6, r1, r6 ldr r1, _0221B3A8 ; =0x00100B83 sub r1, r6, r1 add r1, r2, r1 lsl r2, r1, #0xf lsr r1, r1, #0x11 orr r2, r1 add r6, r2, r0 mvn r2, r3 add r1, r6, #0 orr r1, r2 add r2, r0, #0 eor r2, r1 ldr r1, [sp, #8] add r2, r1, r2 ldr r1, _0221B3AC ; =0x7A7BA22F sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #0x15 lsr r1, r1, #0xb orr r2, r1 add r2, r2, r6 mvn r4, r0 add r1, r2, #0 orr r1, r4 add r4, r6, #0 eor r4, r1 ldr r1, [sp, #0x24] add r4, r1, r4 ldr r1, _0221B3B0 ; =0x6FA87E4F add r1, r4, r1 add r1, r3, r1 lsl r3, r1, #6 lsr r1, r1, #0x1a orr r3, r1 add r1, r3, r2 mvn r4, r6 add r3, r1, #0 orr r3, r4 add r4, r2, #0 eor r4, r3 ldr r3, [sp, #0x3c] add r4, r3, r4 ldr r3, _0221B3B4 ; =0x01D31920 sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0xa lsr r0, r0, #0x16 orr r3, r0 add r4, r3, r1 mvn r3, r2 add r0, r4, #0 orr r0, r3 add r3, r1, #0 eor r3, r0 ldr r0, [sp, #0x1c] add r3, r0, r3 ldr r0, _0221B3B8 ; =0x5CFEBCEC sub r0, r3, r0 add r0, r6, r0 lsl r3, r0, #0xf lsr r0, r0, #0x11 orr r3, r0 add r3, r3, r4 mvn r6, r1 add r0, r3, #0 orr r0, r6 add r6, r4, #0 eor r6, r0 ldr r0, [sp, #0x38] add r6, r0, r6 ldr r0, _0221B3BC ; =0x4E0811A1 add r0, r6, r0 add r0, r2, r0 lsl r2, r0, #0x15 lsr r0, r0, #0xb orr r2, r0 add r0, r2, r3 mvn r6, r4 add r2, r0, #0 orr r2, r6 add r6, r3, #0 eor r6, r2 ldr r2, [sp, #0x14] add r6, r2, r6 ldr r2, _0221B3C0 ; =0x08AC817E sub r2, r6, r2 add r1, r1, r2 lsl r2, r1, #6 lsr r1, r1, #0x1a orr r2, r1 add r6, r2, r0 mvn r2, r3 add r1, r6, #0 orr r1, r2 add r2, r0, #0 eor r2, r1 ldr r1, [sp, #0x30] add r2, r1, r2 ldr r1, _0221B3C4 ; =0x42C50DCB sub r1, r2, r1 add r1, r4, r1 lsl r2, r1, #0xa lsr r1, r1, #0x16 orr r2, r1 add r2, r2, r6 mvn r4, r0 add r1, r2, #0 orr r1, r4 add r4, r6, #0 eor r4, r1 ldr r1, [sp, #0xc] add r4, r1, r4 ldr r1, _0221B3C8 ; =0x2AD7D2BB add r1, r4, r1 add r1, r3, r1 lsl r3, r1, #0xf lsr r1, r1, #0x11 orr r3, r1 add r1, r3, r2 mvn r4, r6 add r3, r1, #0 orr r3, r4 add r4, r2, #0 eor r4, r3 ldr r3, [sp, #0x28] add r4, r3, r4 ldr r3, _0221B3CC ; =0x14792C6F sub r3, r4, r3 add r0, r0, r3 lsl r3, r0, #0x15 lsr r0, r0, #0xb orr r3, r0 add r0, r3, r1 ldr r3, [r5] add r3, r3, r6 str r3, [r5] ldr r3, [r5, #4] add r0, r3, r0 str r0, [r5, #4] ldr r0, [r5, #8] add r0, r0, r1 str r0, [r5, #8] ldr r0, [r5, #0xc] add r0, r0, r2 str r0, [r5, #0xc] add r0, sp, #0x40 mov r1, #0 mov r2, #0x40 bl MOD13_0221AAE0 add sp, #0x84 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221B35C: .word 0x021AC7F4 _0221B360: .word 0x5B4115BC _0221B364: .word 0x4BDECFA9 _0221B368: .word 0x0944B4A0 _0221B36C: .word 0x41404390 _0221B370: .word 0x289B7EC6 _0221B374: .word 0x155ED806 _0221B378: .word 0x2B10CF7B _0221B37C: .word 0x04881D05 _0221B380: .word 0x262B2FC7 _0221B384: .word 0x1924661B _0221B388: .word 0x1FA27CF8 _0221B38C: .word 0x3B53A99B _0221B390: .word 0x0BD6DDBC _0221B394: .word 0x432AFF97 _0221B398: .word 0x546BDC59 _0221B39C: .word 0x036C5FC7 _0221B3A0: .word 0x655B59C3 _0221B3A4: .word 0x70F3336E _0221B3A8: .word 0x00100B83 _0221B3AC: .word 0x7A7BA22F _0221B3B0: .word 0x6FA87E4F _0221B3B4: .word 0x01D31920 _0221B3B8: .word 0x5CFEBCEC _0221B3BC: .word 0x4E0811A1 _0221B3C0: .word 0x08AC817E _0221B3C4: .word 0x42C50DCB _0221B3C8: .word 0x2AD7D2BB _0221B3CC: .word 0x14792C6F thumb_func_start MOD13_0221B3D0 MOD13_0221B3D0: ; 0x0221B3D0 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 add r0, sp, #0 add r1, #0x10 mov r2, #8 bl MOD13_0221AB44 ldr r0, [r4, #0x10] lsr r1, r0, #3 mov r0, #0x3f and r1, r0 cmp r1, #0x38 bhs _0221B3F4 mov r0, #0x38 sub r2, r0, r1 b _0221B3F8 _0221B3F4: mov r0, #0x78 sub r2, r0, r1 _0221B3F8: add r0, r4, #0 ldr r1, _0221B428 ; =0x0223F894 bl MOD13_0221B42C add r0, r4, #0 add r1, sp, #0 mov r2, #8 bl MOD13_0221B42C add r0, r5, #0 add r1, r4, #0 mov r2, #0x10 bl MOD13_0221AB44 add r0, r4, #0 mov r1, #0 mov r2, #0x58 bl MOD13_0221AAE0 add sp, #0xc pop {r4, r5} pop {r3} bx r3 nop _0221B428: .word 0x0223F894 thumb_func_start MOD13_0221B42C MOD13_0221B42C: ; 0x0221B42C push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r7, r1, #0 add r6, r2, #0 ldr r3, [r5, #0x10] lsr r0, r3, #3 mov r1, #0x3f and r0, r1 lsl r2, r6, #3 add r1, r3, r2 str r1, [r5, #0x10] ldr r1, [r5, #0x10] cmp r1, r2 bhs _0221B450 ldr r1, [r5, #0x14] add r1, r1, #1 str r1, [r5, #0x14] _0221B450: ldr r2, [r5, #0x14] lsr r1, r6, #0x1d add r1, r2, r1 str r1, [r5, #0x14] mov r1, #0x40 sub r4, r1, r0 cmp r6, r4 blo _0221B496 add r1, r5, #0 add r1, #0x18 add r0, r1, r0 add r1, r7, #0 add r2, r4, #0 bl MOD13_0221AAF8 add r0, r5, #0 add r1, r5, #0 add r1, #0x18 bl MOD13_0221AB74 add r0, r4, #0 add r0, #0x3f cmp r0, r6 bhs _0221B492 _0221B480: add r0, r5, #0 add r1, r7, r4 bl MOD13_0221AB74 add r4, #0x40 add r0, r4, #0 add r0, #0x3f cmp r0, r6 blo _0221B480 _0221B492: mov r0, #0 b _0221B498 _0221B496: mov r4, #0 _0221B498: add r5, #0x18 add r0, r5, r0 add r1, r7, r4 sub r2, r6, r4 bl MOD13_0221AAF8 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_0221B4AC MOD13_0221B4AC: ; 0x0221B4AC mov r1, #0 str r1, [r0, #0x14] ldr r1, [r0, #0x14] str r1, [r0, #0x10] ldr r1, _0221B4C8 ; =0x67452301 str r1, [r0] ldr r1, _0221B4CC ; =0xEFCDAB89 str r1, [r0, #4] ldr r1, _0221B4D0 ; =0x98BADCFE str r1, [r0, #8] ldr r1, _0221B4D4 ; =0x10325476 str r1, [r0, #0xc] bx lr nop _0221B4C8: .word 0x67452301 _0221B4CC: .word 0xEFCDAB89 _0221B4D0: .word 0x98BADCFE _0221B4D4: .word 0x10325476 thumb_func_start MOD13_0221B4D8 MOD13_0221B4D8: ; 0x0221B4D8 push {r4, r5, r6, r7} sub sp, #0x60 add r4, r1, #0 add r1, r2, #0 str r3, [sp] ldr r2, [r0] str r2, [sp, #4] ldrb r5, [r1, #3] ldrb r2, [r1, #2] lsl r3, r2, #8 ldrb r2, [r1] lsl r2, r2, #0x18 ldrb r6, [r1, #1] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #4] eor r2, r5 str r2, [sp, #4] ldr r2, [r0, #4] str r2, [sp, #8] ldrb r5, [r1, #7] ldrb r2, [r1, #6] lsl r3, r2, #8 ldrb r2, [r1, #4] lsl r2, r2, #0x18 ldrb r6, [r1, #5] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #8] eor r2, r5 str r2, [sp, #8] ldr r2, [r0, #8] str r2, [sp, #0x2c] ldrb r5, [r1, #0xb] ldrb r2, [r1, #0xa] lsl r3, r2, #8 ldrb r2, [r1, #8] lsl r2, r2, #0x18 ldrb r6, [r1, #9] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #0x2c] eor r2, r5 str r2, [sp, #0x2c] ldr r6, [r0, #0xc] ldrb r5, [r1, #0xf] ldrb r2, [r1, #0xe] lsl r3, r2, #8 ldrb r2, [r1, #0xc] lsl r2, r2, #0x18 ldrb r1, [r1, #0xd] lsl r1, r1, #0x10 eor r2, r1 eor r3, r2 eor r5, r3 eor r6, r5 asr r1, r4, #1 str r1, [sp, #0xc] mov r2, #0xff _0221B55A: ldr r1, [r0, #0x10] str r1, [sp, #0x10] ldr r1, [sp, #8] and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E0 ; =0x0223C86C ldr r5, [r1, r3] ldr r1, [sp, #0x2c] lsr r1, r1, #8 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E4 ; =0x0223C46C ldr r4, [r1, r3] ldr r1, [sp, #4] lsr r1, r1, #0x18 lsl r3, r1, #2 ldr r1, _0221B8E8 ; =0x0223E46C ldr r7, [r1, r3] lsr r1, r6, #0x10 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8EC ; =0x0223E86C ldr r1, [r1, r3] eor r7, r1 eor r4, r7 eor r5, r4 ldr r1, [sp, #0x10] eor r1, r5 str r1, [sp, #0x10] ldr r1, [r0, #0x14] str r1, [sp, #0x14] ldr r1, [sp, #0x2c] and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E0 ; =0x0223C86C ldr r5, [r1, r3] lsr r1, r6, #8 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E4 ; =0x0223C46C ldr r4, [r1, r3] ldr r1, [sp, #8] lsr r1, r1, #0x18 lsl r3, r1, #2 ldr r1, _0221B8E8 ; =0x0223E46C ldr r7, [r1, r3] ldr r1, [sp, #4] lsr r1, r1, #0x10 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8EC ; =0x0223E86C ldr r1, [r1, r3] eor r7, r1 eor r4, r7 eor r5, r4 ldr r1, [sp, #0x14] eor r1, r5 str r1, [sp, #0x14] ldr r5, [r0, #0x18] add r1, r6, #0 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E0 ; =0x0223C86C ldr r4, [r1, r3] ldr r1, [sp, #4] lsr r1, r1, #8 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8E4 ; =0x0223C46C ldr r1, [r1, r3] str r1, [sp, #0x18] ldr r1, [sp, #0x2c] lsr r1, r1, #0x18 lsl r3, r1, #2 ldr r1, _0221B8E8 ; =0x0223E46C ldr r7, [r1, r3] ldr r1, [sp, #8] lsr r1, r1, #0x10 and r1, r2 lsl r3, r1, #2 ldr r1, _0221B8EC ; =0x0223E86C ldr r1, [r1, r3] eor r7, r1 ldr r1, [sp, #0x18] eor r1, r7 str r1, [sp, #0x18] eor r4, r1 eor r5, r4 ldr r1, [r0, #0x1c] ldr r3, [sp, #4] and r3, r2 str r3, [sp, #4] lsl r4, r3, #2 ldr r3, _0221B8E0 ; =0x0223C86C ldr r3, [r3, r4] str r3, [sp, #0x30] ldr r3, [sp, #8] lsr r3, r3, #8 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E4 ; =0x0223C46C ldr r7, [r3, r4] lsr r3, r6, #0x18 lsl r4, r3, #2 ldr r3, _0221B8E8 ; =0x0223E46C ldr r6, [r3, r4] ldr r3, [sp, #0x2c] lsr r3, r3, #0x10 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8EC ; =0x0223E86C ldr r3, [r3, r4] eor r6, r3 eor r7, r6 ldr r3, [sp, #0x30] eor r3, r7 str r3, [sp, #0x30] eor r1, r3 add r0, #0x20 ldr r3, [sp, #0xc] sub r3, r3, #1 str r3, [sp, #0xc] cmp r3, #0 beq _0221B746 ldr r3, [r0] str r3, [sp, #4] ldr r3, [sp, #0x14] and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E0 ; =0x0223C86C ldr r6, [r3, r4] lsr r3, r5, #8 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E4 ; =0x0223C46C ldr r3, [r3, r4] str r3, [sp, #0x34] ldr r3, [sp, #0x10] lsr r3, r3, #0x18 lsl r4, r3, #2 ldr r3, _0221B8E8 ; =0x0223E46C ldr r7, [r3, r4] lsr r3, r1, #0x10 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8EC ; =0x0223E86C ldr r3, [r3, r4] eor r7, r3 ldr r3, [sp, #0x34] eor r3, r7 str r3, [sp, #0x34] eor r6, r3 ldr r3, [sp, #4] eor r3, r6 str r3, [sp, #4] ldr r3, [r0, #4] str r3, [sp, #8] add r3, r5, #0 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E0 ; =0x0223C86C ldr r6, [r3, r4] lsr r3, r1, #8 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E4 ; =0x0223C46C ldr r3, [r3, r4] str r3, [sp, #0x38] ldr r3, [sp, #0x14] lsr r3, r3, #0x18 lsl r4, r3, #2 ldr r3, _0221B8E8 ; =0x0223E46C ldr r7, [r3, r4] ldr r3, [sp, #0x10] lsr r3, r3, #0x10 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8EC ; =0x0223E86C ldr r3, [r3, r4] eor r7, r3 ldr r3, [sp, #0x38] eor r3, r7 str r3, [sp, #0x38] eor r6, r3 ldr r3, [sp, #8] eor r3, r6 str r3, [sp, #8] ldr r3, [r0, #8] str r3, [sp, #0x2c] add r3, r1, #0 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E0 ; =0x0223C86C ldr r6, [r3, r4] ldr r3, [sp, #0x10] lsr r3, r3, #8 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E4 ; =0x0223C46C ldr r3, [r3, r4] str r3, [sp, #0x1c] lsr r3, r5, #0x18 lsl r4, r3, #2 ldr r3, _0221B8E8 ; =0x0223E46C ldr r7, [r3, r4] ldr r3, [sp, #0x14] lsr r3, r3, #0x10 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8EC ; =0x0223E86C ldr r3, [r3, r4] eor r7, r3 ldr r3, [sp, #0x1c] eor r3, r7 str r3, [sp, #0x1c] eor r6, r3 ldr r3, [sp, #0x2c] eor r3, r6 str r3, [sp, #0x2c] ldr r6, [r0, #0xc] ldr r3, [sp, #0x10] and r3, r2 str r3, [sp, #0x10] lsl r4, r3, #2 ldr r3, _0221B8E0 ; =0x0223C86C ldr r7, [r3, r4] ldr r3, [sp, #0x14] lsr r3, r3, #8 and r3, r2 lsl r4, r3, #2 ldr r3, _0221B8E4 ; =0x0223C46C ldr r3, [r3, r4] lsr r1, r1, #0x18 lsl r4, r1, #2 ldr r1, _0221B8E8 ; =0x0223E46C ldr r1, [r1, r4] lsr r4, r5, #0x10 and r4, r2 lsl r5, r4, #2 ldr r4, _0221B8EC ; =0x0223E86C ldr r4, [r4, r5] eor r1, r4 eor r3, r1 eor r7, r3 eor r6, r7 b _0221B55A _0221B746: ldr r3, [r0] ldr r4, [sp, #0x14] mov r2, #0xff and r4, r2 lsl r4, r4, #2 ldr r2, _0221B8F0 ; =0x0223CC6C ldr r6, [r2, r4] str r6, [sp, #0x20] mov r4, #0xff and r6, r4 str r6, [sp, #0x20] lsr r6, r5, #8 and r6, r4 lsl r4, r6, #2 ldr r7, [r2, r4] ldr r4, _0221B8F4 ; =0x0000FF00 and r7, r4 ldr r4, [sp, #0x10] lsr r4, r4, #0x18 lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x54] ldr r6, _0221B8F8 ; =0xFF000000 and r4, r6 str r4, [sp, #0x54] lsr r4, r1, #0x10 str r4, [sp, #0x40] mov r6, #0xff and r4, r6 str r4, [sp, #0x40] lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x3c] ldr r4, _0221B8FC ; =0x00FF0000 ldr r6, [sp, #0x3c] and r6, r4 str r6, [sp, #0x3c] ldr r4, [sp, #0x54] eor r4, r6 str r4, [sp, #0x54] eor r7, r4 ldr r4, [sp, #0x20] eor r4, r7 str r4, [sp, #0x20] eor r3, r4 lsr r6, r3, #0x18 ldr r4, [sp] strb r6, [r4] lsr r6, r3, #0x10 strb r6, [r4, #1] lsr r6, r3, #8 strb r6, [r4, #2] strb r3, [r4, #3] ldr r3, [r0, #4] add r6, r5, #0 mov r4, #0xff and r6, r4 lsl r4, r6, #2 ldr r6, [r2, r4] str r6, [sp, #0x24] mov r4, #0xff and r6, r4 str r6, [sp, #0x24] lsr r6, r1, #8 and r6, r4 lsl r4, r6, #2 ldr r7, [r2, r4] ldr r4, _0221B8F4 ; =0x0000FF00 and r7, r4 ldr r4, [sp, #0x14] lsr r4, r4, #0x18 lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x58] ldr r6, _0221B8F8 ; =0xFF000000 and r4, r6 str r4, [sp, #0x58] ldr r4, [sp, #0x10] lsr r4, r4, #0x10 str r4, [sp, #0x48] mov r6, #0xff and r4, r6 str r4, [sp, #0x48] lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x44] ldr r4, _0221B8FC ; =0x00FF0000 ldr r6, [sp, #0x44] and r6, r4 str r6, [sp, #0x44] ldr r4, [sp, #0x58] eor r4, r6 str r4, [sp, #0x58] eor r7, r4 ldr r4, [sp, #0x24] eor r4, r7 str r4, [sp, #0x24] eor r3, r4 lsr r6, r3, #0x18 ldr r4, [sp] strb r6, [r4, #4] lsr r6, r3, #0x10 strb r6, [r4, #5] lsr r6, r3, #8 strb r6, [r4, #6] strb r3, [r4, #7] ldr r3, [r0, #8] add r6, r1, #0 mov r4, #0xff and r6, r4 lsl r4, r6, #2 ldr r6, [r2, r4] str r6, [sp, #0x28] mov r4, #0xff and r6, r4 str r6, [sp, #0x28] ldr r4, [sp, #0x10] lsr r6, r4, #8 mov r4, #0xff and r6, r4 lsl r4, r6, #2 ldr r7, [r2, r4] ldr r4, _0221B8F4 ; =0x0000FF00 and r7, r4 lsr r4, r5, #0x18 lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x5c] ldr r6, _0221B8F8 ; =0xFF000000 and r4, r6 str r4, [sp, #0x5c] ldr r4, [sp, #0x14] lsr r4, r4, #0x10 str r4, [sp, #0x50] mov r6, #0xff and r4, r6 str r4, [sp, #0x50] lsl r4, r4, #2 ldr r4, [r2, r4] str r4, [sp, #0x4c] ldr r4, _0221B8FC ; =0x00FF0000 ldr r6, [sp, #0x4c] and r6, r4 str r6, [sp, #0x4c] ldr r4, [sp, #0x5c] eor r4, r6 str r4, [sp, #0x5c] eor r7, r4 ldr r4, [sp, #0x28] eor r4, r7 str r4, [sp, #0x28] eor r3, r4 lsr r6, r3, #0x18 ldr r4, [sp] strb r6, [r4, #8] lsr r6, r3, #0x10 strb r6, [r4, #9] lsr r6, r3, #8 strb r6, [r4, #0xa] strb r3, [r4, #0xb] ldr r6, [r0, #0xc] ldr r3, [sp, #0x10] mov r0, #0xff and r3, r0 str r3, [sp, #0x10] lsl r0, r3, #2 ldr r4, [r2, r0] mov r0, #0xff and r4, r0 ldr r0, [sp, #0x14] lsr r3, r0, #8 mov r0, #0xff and r3, r0 lsl r0, r3, #2 ldr r3, [r2, r0] ldr r0, _0221B8F4 ; =0x0000FF00 and r3, r0 lsr r0, r1, #0x18 lsl r0, r0, #2 ldr r0, [r2, r0] ldr r1, _0221B8F8 ; =0xFF000000 and r0, r1 lsr r5, r5, #0x10 mov r1, #0xff and r5, r1 lsl r1, r5, #2 ldr r2, [r2, r1] ldr r1, _0221B8FC ; =0x00FF0000 and r2, r1 eor r0, r2 eor r3, r0 eor r4, r3 eor r6, r4 lsr r1, r6, #0x18 ldr r0, [sp] strb r1, [r0, #0xc] lsr r1, r6, #0x10 strb r1, [r0, #0xd] lsr r1, r6, #8 strb r1, [r0, #0xe] strb r6, [r0, #0xf] add sp, #0x60 pop {r4, r5, r6, r7} bx lr nop _0221B8E0: .word 0x0223C86C _0221B8E4: .word 0x0223C46C _0221B8E8: .word 0x0223E46C _0221B8EC: .word 0x0223E86C _0221B8F0: .word 0x0223CC6C _0221B8F4: .word 0x0000FF00 _0221B8F8: .word 0xFF000000 _0221B8FC: .word 0x00FF0000 thumb_func_start MOD13_0221B900 MOD13_0221B900: ; 0x0221B900 push {r4, r5, r6, r7} sub sp, #0x60 add r4, r1, #0 add r1, r2, #0 str r3, [sp] ldr r2, [r0] str r2, [sp, #4] ldrb r5, [r1, #3] ldrb r2, [r1, #2] lsl r3, r2, #8 ldrb r2, [r1] lsl r2, r2, #0x18 ldrb r6, [r1, #1] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #4] eor r2, r5 str r2, [sp, #4] ldr r2, [r0, #4] str r2, [sp, #8] ldrb r5, [r1, #7] ldrb r2, [r1, #6] lsl r3, r2, #8 ldrb r2, [r1, #4] lsl r2, r2, #0x18 ldrb r6, [r1, #5] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #8] eor r2, r5 str r2, [sp, #8] ldr r2, [r0, #8] str r2, [sp, #0x2c] ldrb r5, [r1, #0xb] ldrb r2, [r1, #0xa] lsl r3, r2, #8 ldrb r2, [r1, #8] lsl r2, r2, #0x18 ldrb r6, [r1, #9] lsl r6, r6, #0x10 eor r2, r6 eor r3, r2 eor r5, r3 ldr r2, [sp, #0x2c] eor r2, r5 str r2, [sp, #0x2c] ldr r6, [r0, #0xc] ldrb r5, [r1, #0xf] ldrb r2, [r1, #0xe] lsl r3, r2, #8 ldrb r2, [r1, #0xc] lsl r2, r2, #0x18 ldrb r1, [r1, #0xd] lsl r1, r1, #0x10 eor r2, r1 eor r3, r2 eor r5, r3 eor r6, r5 asr r1, r4, #1 str r1, [sp, #0xc] mov r2, #0xff _0221B982: ldr r1, [r0, #0x10] str r1, [sp, #0x10] add r1, r6, #0 and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD00 ; =0x0223DC6C ldr r5, [r1, r3] ldr r1, [sp, #0x2c] lsr r1, r1, #8 and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD04 ; =0x0223D86C ldr r4, [r1, r3] ldr r1, [sp, #4] lsr r1, r1, #0x18 lsl r3, r1, #2 ldr r1, _0221BD08 ; =0x0223D06C ldr r7, [r1, r3] ldr r1, [sp, #8] lsr r1, r1, #0x10 and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD0C ; =0x0223D46C ldr r1, [r1, r3] eor r7, r1 eor r4, r7 eor r5, r4 ldr r1, [sp, #0x10] eor r1, r5 str r1, [sp, #0x10] ldr r1, [r0, #0x14] str r1, [sp, #0x14] ldr r1, [sp, #4] and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD00 ; =0x0223DC6C ldr r5, [r1, r3] lsr r1, r6, #8 and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD04 ; =0x0223D86C ldr r4, [r1, r3] ldr r1, [sp, #8] lsr r1, r1, #0x18 lsl r3, r1, #2 ldr r1, _0221BD08 ; =0x0223D06C ldr r7, [r1, r3] ldr r1, [sp, #0x2c] lsr r1, r1, #0x10 and r1, r2 lsl r3, r1, #2 ldr r1, _0221BD0C ; =0x0223D46C ldr r1, [r1, r3] eor r7, r1 eor r4, r7 eor r5, r4 ldr r1, [sp, #0x14] eor r1, r5 str r1, [sp, #0x14] ldr r3, [r0, #0x18] ldr r1, [sp, #8] and r1, r2 lsl r4, r1, #2 ldr r1, _0221BD00 ; =0x0223DC6C ldr r1, [r1, r4] ldr r4, [sp, #4] lsr r4, r4, #8 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD04 ; =0x0223D86C ldr r7, [r4, r5] ldr r4, [sp, #0x2c] lsr r4, r4, #0x18 lsl r5, r4, #2 ldr r4, _0221BD08 ; =0x0223D06C ldr r4, [r4, r5] str r4, [sp, #0x18] lsr r4, r6, #0x10 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD0C ; =0x0223D46C ldr r5, [r4, r5] ldr r4, [sp, #0x18] eor r4, r5 str r4, [sp, #0x18] eor r7, r4 eor r1, r7 eor r3, r1 ldr r1, [r0, #0x1c] ldr r4, [sp, #0x2c] and r4, r2 str r4, [sp, #0x2c] lsl r5, r4, #2 ldr r4, _0221BD00 ; =0x0223DC6C ldr r4, [r4, r5] str r4, [sp, #0x30] ldr r4, [sp, #8] lsr r4, r4, #8 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD04 ; =0x0223D86C ldr r7, [r4, r5] lsr r4, r6, #0x18 lsl r5, r4, #2 ldr r4, _0221BD08 ; =0x0223D06C ldr r6, [r4, r5] ldr r4, [sp, #4] lsr r4, r4, #0x10 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD0C ; =0x0223D46C ldr r4, [r4, r5] eor r6, r4 eor r7, r6 ldr r4, [sp, #0x30] eor r4, r7 str r4, [sp, #0x30] eor r1, r4 add r0, #0x20 ldr r4, [sp, #0xc] sub r4, r4, #1 str r4, [sp, #0xc] cmp r4, #0 beq _0221BB6A ldr r4, [r0] str r4, [sp, #4] add r4, r1, #0 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD00 ; =0x0223DC6C ldr r6, [r4, r5] lsr r4, r3, #8 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD04 ; =0x0223D86C ldr r4, [r4, r5] str r4, [sp, #0x34] ldr r4, [sp, #0x10] lsr r4, r4, #0x18 lsl r5, r4, #2 ldr r4, _0221BD08 ; =0x0223D06C ldr r7, [r4, r5] ldr r4, [sp, #0x14] lsr r4, r4, #0x10 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD0C ; =0x0223D46C ldr r4, [r4, r5] eor r7, r4 ldr r4, [sp, #0x34] eor r4, r7 str r4, [sp, #0x34] eor r6, r4 ldr r4, [sp, #4] eor r4, r6 str r4, [sp, #4] ldr r4, [r0, #4] str r4, [sp, #8] ldr r4, [sp, #0x10] and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD00 ; =0x0223DC6C ldr r6, [r4, r5] lsr r4, r1, #8 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD04 ; =0x0223D86C ldr r4, [r4, r5] str r4, [sp, #0x38] ldr r4, [sp, #0x14] lsr r4, r4, #0x18 lsl r5, r4, #2 ldr r4, _0221BD08 ; =0x0223D06C ldr r7, [r4, r5] lsr r4, r3, #0x10 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD0C ; =0x0223D46C ldr r4, [r4, r5] eor r7, r4 ldr r4, [sp, #0x38] eor r4, r7 str r4, [sp, #0x38] eor r6, r4 ldr r4, [sp, #8] eor r4, r6 str r4, [sp, #8] ldr r4, [r0, #8] str r4, [sp, #0x2c] ldr r4, [sp, #0x14] and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD00 ; =0x0223DC6C ldr r4, [r4, r5] ldr r5, [sp, #0x10] lsr r5, r5, #8 and r5, r2 lsl r6, r5, #2 ldr r5, _0221BD04 ; =0x0223D86C ldr r7, [r5, r6] lsr r5, r3, #0x18 lsl r6, r5, #2 ldr r5, _0221BD08 ; =0x0223D06C ldr r5, [r5, r6] str r5, [sp, #0x1c] lsr r5, r1, #0x10 and r5, r2 lsl r6, r5, #2 ldr r5, _0221BD0C ; =0x0223D46C ldr r6, [r5, r6] ldr r5, [sp, #0x1c] eor r5, r6 str r5, [sp, #0x1c] eor r7, r5 eor r4, r7 ldr r5, [sp, #0x2c] eor r5, r4 str r5, [sp, #0x2c] ldr r6, [r0, #0xc] and r3, r2 lsl r4, r3, #2 ldr r3, _0221BD00 ; =0x0223DC6C ldr r3, [r3, r4] ldr r4, [sp, #0x14] lsr r4, r4, #8 and r4, r2 lsl r5, r4, #2 ldr r4, _0221BD04 ; =0x0223D86C ldr r7, [r4, r5] lsr r1, r1, #0x18 lsl r4, r1, #2 ldr r1, _0221BD08 ; =0x0223D06C ldr r5, [r1, r4] ldr r1, [sp, #0x10] lsr r1, r1, #0x10 and r1, r2 lsl r4, r1, #2 ldr r1, _0221BD0C ; =0x0223D46C ldr r1, [r1, r4] eor r5, r1 eor r7, r5 eor r3, r7 eor r6, r3 b _0221B982 _0221BB6A: ldr r4, [r0] add r5, r1, #0 mov r2, #0xff and r5, r2 lsl r5, r5, #2 ldr r2, _0221BD10 ; =0x0223E06C ldr r6, [r2, r5] str r6, [sp, #0x20] mov r5, #0xff and r6, r5 str r6, [sp, #0x20] lsr r6, r3, #8 and r6, r5 lsl r5, r6, #2 ldr r7, [r2, r5] ldr r5, _0221BD14 ; =0x0000FF00 and r7, r5 ldr r5, [sp, #0x10] lsr r5, r5, #0x18 lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x54] ldr r6, _0221BD18 ; =0xFF000000 and r5, r6 str r5, [sp, #0x54] ldr r5, [sp, #0x14] lsr r5, r5, #0x10 str r5, [sp, #0x40] mov r6, #0xff and r5, r6 str r5, [sp, #0x40] lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x3c] ldr r5, _0221BD1C ; =0x00FF0000 ldr r6, [sp, #0x3c] and r6, r5 str r6, [sp, #0x3c] ldr r5, [sp, #0x54] eor r5, r6 str r5, [sp, #0x54] eor r7, r5 ldr r5, [sp, #0x20] eor r5, r7 str r5, [sp, #0x20] eor r4, r5 lsr r6, r4, #0x18 ldr r5, [sp] strb r6, [r5] lsr r6, r4, #0x10 strb r6, [r5, #1] lsr r6, r4, #8 strb r6, [r5, #2] strb r4, [r5, #3] ldr r4, [r0, #4] ldr r6, [sp, #0x10] mov r5, #0xff and r6, r5 lsl r5, r6, #2 ldr r6, [r2, r5] str r6, [sp, #0x24] mov r5, #0xff and r6, r5 str r6, [sp, #0x24] lsr r6, r1, #8 and r6, r5 lsl r5, r6, #2 ldr r7, [r2, r5] ldr r5, _0221BD14 ; =0x0000FF00 and r7, r5 ldr r5, [sp, #0x14] lsr r5, r5, #0x18 lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x58] ldr r6, _0221BD18 ; =0xFF000000 and r5, r6 str r5, [sp, #0x58] lsr r5, r3, #0x10 str r5, [sp, #0x48] mov r6, #0xff and r5, r6 str r5, [sp, #0x48] lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x44] ldr r5, _0221BD1C ; =0x00FF0000 ldr r6, [sp, #0x44] and r6, r5 str r6, [sp, #0x44] ldr r5, [sp, #0x58] eor r5, r6 str r5, [sp, #0x58] eor r7, r5 ldr r5, [sp, #0x24] eor r5, r7 str r5, [sp, #0x24] eor r4, r5 lsr r6, r4, #0x18 ldr r5, [sp] strb r6, [r5, #4] lsr r6, r4, #0x10 strb r6, [r5, #5] lsr r6, r4, #8 strb r6, [r5, #6] strb r4, [r5, #7] ldr r4, [r0, #8] ldr r6, [sp, #0x14] mov r5, #0xff and r6, r5 lsl r5, r6, #2 ldr r6, [r2, r5] str r6, [sp, #0x28] mov r5, #0xff and r6, r5 str r6, [sp, #0x28] ldr r5, [sp, #0x10] lsr r6, r5, #8 mov r5, #0xff and r6, r5 lsl r5, r6, #2 ldr r7, [r2, r5] ldr r5, _0221BD14 ; =0x0000FF00 and r7, r5 lsr r5, r3, #0x18 lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x5c] ldr r6, _0221BD18 ; =0xFF000000 and r5, r6 str r5, [sp, #0x5c] lsr r5, r1, #0x10 str r5, [sp, #0x50] mov r6, #0xff and r5, r6 str r5, [sp, #0x50] lsl r5, r5, #2 ldr r5, [r2, r5] str r5, [sp, #0x4c] ldr r5, _0221BD1C ; =0x00FF0000 ldr r6, [sp, #0x4c] and r6, r5 str r6, [sp, #0x4c] ldr r5, [sp, #0x5c] eor r5, r6 str r5, [sp, #0x5c] eor r7, r5 ldr r5, [sp, #0x28] eor r5, r7 str r5, [sp, #0x28] eor r4, r5 lsr r6, r4, #0x18 ldr r5, [sp] strb r6, [r5, #8] lsr r6, r4, #0x10 strb r6, [r5, #9] lsr r6, r4, #8 strb r6, [r5, #0xa] strb r4, [r5, #0xb] ldr r5, [r0, #0xc] mov r0, #0xff and r3, r0 lsl r0, r3, #2 ldr r4, [r2, r0] mov r0, #0xff and r4, r0 ldr r0, [sp, #0x14] lsr r3, r0, #8 mov r0, #0xff and r3, r0 lsl r0, r3, #2 ldr r3, [r2, r0] ldr r0, _0221BD14 ; =0x0000FF00 and r3, r0 lsr r0, r1, #0x18 lsl r0, r0, #2 ldr r0, [r2, r0] ldr r1, _0221BD18 ; =0xFF000000 and r0, r1 ldr r1, [sp, #0x10] lsr r6, r1, #0x10 mov r1, #0xff and r6, r1 lsl r1, r6, #2 ldr r2, [r2, r1] ldr r1, _0221BD1C ; =0x00FF0000 and r2, r1 eor r0, r2 eor r3, r0 eor r4, r3 eor r5, r4 lsr r1, r5, #0x18 ldr r0, [sp] strb r1, [r0, #0xc] lsr r1, r5, #0x10 strb r1, [r0, #0xd] lsr r1, r5, #8 strb r1, [r0, #0xe] strb r5, [r0, #0xf] add sp, #0x60 pop {r4, r5, r6, r7} bx lr nop _0221BD00: .word 0x0223DC6C _0221BD04: .word 0x0223D86C _0221BD08: .word 0x0223D06C _0221BD0C: .word 0x0223D46C _0221BD10: .word 0x0223E06C _0221BD14: .word 0x0000FF00 _0221BD18: .word 0xFF000000 _0221BD1C: .word 0x00FF0000 thumb_func_start MOD13_0221BD20 MOD13_0221BD20: ; 0x0221BD20 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 bl MOD13_0221BEE4 str r0, [sp] mov r6, #0 lsl r5, r0, #2 cmp r5, #0 ble _0221BD84 str r4, [sp, #4] lsl r0, r5, #2 add r3, r4, r0 _0221BD3A: ldr r0, [sp, #4] ldr r2, [r0] ldr r1, [r3] str r1, [r0] str r2, [r3] add r0, r6, #1 lsl r2, r0, #2 ldr r1, [r4, r2] add r0, r5, #1 lsl r7, r0, #2 ldr r0, [r4, r7] str r0, [r4, r2] str r1, [r4, r7] add r0, r6, #2 lsl r2, r0, #2 ldr r1, [r4, r2] add r0, r5, #2 lsl r7, r0, #2 ldr r0, [r4, r7] str r0, [r4, r2] str r1, [r4, r7] add r0, r6, #3 lsl r2, r0, #2 ldr r1, [r4, r2] add r0, r5, #3 lsl r7, r0, #2 ldr r0, [r4, r7] str r0, [r4, r2] str r1, [r4, r7] ldr r0, [sp, #4] add r0, #0x10 str r0, [sp, #4] add r6, r6, #4 sub r3, #0x10 sub r5, r5, #4 cmp r6, r5 blt _0221BD3A _0221BD84: mov r0, #1 str r0, [sp, #8] ldr r0, [sp] cmp r0, #1 bgt _0221BD90 b _0221BEC4 _0221BD90: ldr r2, _0221BED0 ; =0x0223E06C mov r0, #0xff _0221BD94: add r4, #0x10 ldr r5, [r4] add r1, r5, #0 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r3, r1, #2 ldr r1, _0221BED4 ; =0x0223C86C ldr r3, [r1, r3] lsr r1, r5, #8 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BED8 ; =0x0223C46C ldr r7, [r1, r6] lsr r1, r5, #0x18 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BEDC ; =0x0223E46C ldr r1, [r1, r6] lsr r5, r5, #0x10 and r5, r0 lsl r5, r5, #2 ldr r5, [r2, r5] and r5, r0 lsl r6, r5, #2 ldr r5, _0221BEE0 ; =0x0223E86C ldr r5, [r5, r6] eor r1, r5 eor r7, r1 eor r3, r7 str r3, [r4] ldr r5, [r4, #4] add r1, r5, #0 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r3, r1, #2 ldr r1, _0221BED4 ; =0x0223C86C ldr r3, [r1, r3] lsr r1, r5, #8 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BED8 ; =0x0223C46C ldr r7, [r1, r6] lsr r1, r5, #0x18 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BEDC ; =0x0223E46C ldr r1, [r1, r6] lsr r5, r5, #0x10 and r5, r0 lsl r5, r5, #2 ldr r5, [r2, r5] and r5, r0 lsl r6, r5, #2 ldr r5, _0221BEE0 ; =0x0223E86C ldr r5, [r5, r6] eor r1, r5 eor r7, r1 eor r3, r7 str r3, [r4, #4] ldr r5, [r4, #8] add r1, r5, #0 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r3, r1, #2 ldr r1, _0221BED4 ; =0x0223C86C ldr r3, [r1, r3] lsr r1, r5, #8 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BED8 ; =0x0223C46C ldr r7, [r1, r6] lsr r1, r5, #0x18 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BEDC ; =0x0223E46C ldr r1, [r1, r6] lsr r5, r5, #0x10 and r5, r0 lsl r5, r5, #2 ldr r5, [r2, r5] and r5, r0 lsl r6, r5, #2 ldr r5, _0221BEE0 ; =0x0223E86C ldr r5, [r5, r6] eor r1, r5 eor r7, r1 eor r3, r7 str r3, [r4, #8] ldr r5, [r4, #0xc] add r1, r5, #0 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r3, r1, #2 ldr r1, _0221BED4 ; =0x0223C86C ldr r3, [r1, r3] lsr r1, r5, #8 and r1, r0 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BED8 ; =0x0223C46C ldr r7, [r1, r6] lsr r1, r5, #0x18 lsl r1, r1, #2 ldr r1, [r2, r1] and r1, r0 lsl r6, r1, #2 ldr r1, _0221BEDC ; =0x0223E46C ldr r1, [r1, r6] lsr r5, r5, #0x10 and r5, r0 lsl r5, r5, #2 ldr r5, [r2, r5] and r5, r0 lsl r6, r5, #2 ldr r5, _0221BEE0 ; =0x0223E86C ldr r5, [r5, r6] eor r1, r5 eor r7, r1 eor r3, r7 str r3, [r4, #0xc] ldr r1, [sp, #8] add r3, r1, #1 str r3, [sp, #8] ldr r1, [sp] cmp r3, r1 bge _0221BEC4 b _0221BD94 _0221BEC4: ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221BED0: .word 0x0223E06C _0221BED4: .word 0x0223C86C _0221BED8: .word 0x0223C46C _0221BEDC: .word 0x0223E46C _0221BEE0: .word 0x0223E86C thumb_func_start MOD13_0221BEE4 MOD13_0221BEE4: ; 0x0221BEE4 push {r4, r5, r6, r7} sub sp, #0x20 add r3, r1, #0 add r1, r2, #0 mov r2, #0 str r2, [sp] ldrb r5, [r3, #3] ldrb r2, [r3, #2] lsl r4, r2, #8 ldrb r2, [r3] lsl r2, r2, #0x18 ldrb r6, [r3, #1] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0] ldrb r5, [r3, #7] ldrb r2, [r3, #6] lsl r4, r2, #8 ldrb r2, [r3, #4] lsl r2, r2, #0x18 ldrb r6, [r3, #5] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #4] ldrb r5, [r3, #0xb] ldrb r2, [r3, #0xa] lsl r4, r2, #8 ldrb r2, [r3, #8] lsl r2, r2, #0x18 ldrb r6, [r3, #9] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #8] ldrb r5, [r3, #0xf] ldrb r2, [r3, #0xe] lsl r4, r2, #8 ldrb r2, [r3, #0xc] lsl r2, r2, #0x18 ldrb r6, [r3, #0xd] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #0xc] cmp r1, #0x80 bne _0221BFD0 ldr r6, _0221C1B4 ; =0x0223C444 _0221BF4E: ldr r5, [r0, #0xc] ldr r1, [r6] str r1, [sp, #0xc] lsr r1, r5, #0x18 lsl r2, r1, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r4, [r1, r2] mov r1, #0xff and r4, r1 add r2, r5, #0 and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r7, [r1, r2] ldr r1, _0221C1BC ; =0x0000FF00 and r7, r1 ldr r3, [r0] lsr r2, r5, #0x10 mov r1, #0xff and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r2, [r1, r2] ldr r1, _0221C1C0 ; =0xFF000000 and r2, r1 eor r3, r2 lsr r2, r5, #8 mov r1, #0xff and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r2, [r1, r2] ldr r1, _0221C1C4 ; =0x00FF0000 and r2, r1 eor r3, r2 eor r7, r3 eor r4, r7 ldr r1, [sp, #0xc] eor r1, r4 str r1, [sp, #0xc] str r1, [r0, #0x10] ldr r2, [r0, #4] ldr r1, [r0, #0x10] eor r2, r1 str r2, [r0, #0x14] ldr r2, [r0, #8] ldr r1, [r0, #0x14] eor r2, r1 str r2, [r0, #0x18] ldr r2, [r0, #0xc] ldr r1, [r0, #0x18] eor r2, r1 str r2, [r0, #0x1c] add r6, r6, #4 ldr r1, [sp] add r1, r1, #1 str r1, [sp] cmp r1, #0xa blt _0221BFCC mov r0, #0xa add sp, #0x20 pop {r4, r5, r6, r7} bx lr _0221BFCC: add r0, #0x10 b _0221BF4E _0221BFD0: ldrb r5, [r3, #0x13] ldrb r2, [r3, #0x12] lsl r4, r2, #8 ldrb r2, [r3, #0x10] lsl r2, r2, #0x18 ldrb r6, [r3, #0x11] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #0x10] ldrb r5, [r3, #0x17] ldrb r2, [r3, #0x16] lsl r4, r2, #8 ldrb r2, [r3, #0x14] lsl r2, r2, #0x18 ldrb r6, [r3, #0x15] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #0x14] cmp r1, #0xc0 bne _0221C094 ldr r6, _0221C1B4 ; =0x0223C444 _0221C002: ldr r5, [r0, #0x14] ldr r1, [r6] str r1, [sp, #0x10] lsr r1, r5, #0x18 lsl r2, r1, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r4, [r1, r2] mov r1, #0xff and r4, r1 add r2, r5, #0 and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r7, [r1, r2] ldr r1, _0221C1BC ; =0x0000FF00 and r7, r1 ldr r3, [r0] lsr r2, r5, #0x10 mov r1, #0xff and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r2, [r1, r2] ldr r1, _0221C1C0 ; =0xFF000000 and r2, r1 eor r3, r2 lsr r2, r5, #8 mov r1, #0xff and r2, r1 lsl r2, r2, #2 ldr r1, _0221C1B8 ; =0x0223E06C ldr r2, [r1, r2] ldr r1, _0221C1C4 ; =0x00FF0000 and r2, r1 eor r3, r2 eor r7, r3 eor r4, r7 ldr r1, [sp, #0x10] eor r1, r4 str r1, [sp, #0x10] str r1, [r0, #0x18] ldr r2, [r0, #4] ldr r1, [r0, #0x18] eor r2, r1 str r2, [r0, #0x1c] ldr r2, [r0, #8] ldr r1, [r0, #0x1c] eor r2, r1 str r2, [r0, #0x20] ldr r2, [r0, #0xc] ldr r1, [r0, #0x20] eor r2, r1 str r2, [r0, #0x24] add r6, r6, #4 ldr r1, [sp] add r1, r1, #1 str r1, [sp] cmp r1, #8 blt _0221C080 mov r0, #0xc add sp, #0x20 pop {r4, r5, r6, r7} bx lr _0221C080: ldr r2, [r0, #0x10] ldr r1, [r0, #0x24] eor r2, r1 str r2, [r0, #0x28] ldr r2, [r0, #0x14] ldr r1, [r0, #0x28] eor r2, r1 str r2, [r0, #0x2c] add r0, #0x18 b _0221C002 _0221C094: ldrb r5, [r3, #0x1b] ldrb r2, [r3, #0x1a] lsl r4, r2, #8 ldrb r2, [r3, #0x18] lsl r2, r2, #0x18 ldrb r6, [r3, #0x19] lsl r6, r6, #0x10 eor r2, r6 eor r4, r2 eor r5, r4 str r5, [r0, #0x18] ldrb r5, [r3, #0x1f] ldrb r2, [r3, #0x1e] lsl r4, r2, #8 ldrb r2, [r3, #0x1c] lsl r2, r2, #0x18 ldrb r3, [r3, #0x1d] lsl r3, r3, #0x10 eor r2, r3 eor r4, r2 eor r5, r4 str r5, [r0, #0x1c] ldr r2, _0221C1C8 ; =0x00000100 cmp r1, r2 bne _0221C1AC ldr r1, _0221C1B4 ; =0x0223C444 str r1, [sp, #4] ldr r7, _0221C1B8 ; =0x0223E06C _0221C0CC: ldr r6, [r0, #0x1c] ldr r1, [sp, #4] ldr r1, [r1] str r1, [sp, #8] lsr r1, r6, #0x18 lsl r1, r1, #2 ldr r5, [r7, r1] mov r1, #0xff and r5, r1 add r2, r6, #0 and r2, r1 lsl r1, r2, #2 ldr r4, [r7, r1] ldr r1, _0221C1BC ; =0x0000FF00 and r4, r1 ldr r3, [r0] lsr r2, r6, #0x10 mov r1, #0xff and r2, r1 lsl r1, r2, #2 ldr r1, [r7, r1] str r1, [sp, #0x14] ldr r2, _0221C1C0 ; =0xFF000000 and r1, r2 str r1, [sp, #0x14] eor r3, r1 lsr r2, r6, #8 mov r1, #0xff and r2, r1 lsl r1, r2, #2 ldr r2, [r7, r1] ldr r1, _0221C1C4 ; =0x00FF0000 and r2, r1 eor r3, r2 eor r4, r3 eor r5, r4 ldr r1, [sp, #8] eor r1, r5 str r1, [sp, #8] str r1, [r0, #0x20] ldr r2, [r0, #4] ldr r1, [r0, #0x20] eor r2, r1 str r2, [r0, #0x24] ldr r2, [r0, #8] ldr r1, [r0, #0x24] eor r2, r1 str r2, [r0, #0x28] ldr r2, [r0, #0xc] ldr r1, [r0, #0x28] eor r2, r1 str r2, [r0, #0x2c] ldr r1, [sp, #4] add r1, r1, #4 str r1, [sp, #4] ldr r1, [sp] add r1, r1, #1 str r1, [sp] cmp r1, #7 blt _0221C14C mov r0, #0xe add sp, #0x20 pop {r4, r5, r6, r7} bx lr _0221C14C: ldr r6, [r0, #0x2c] add r2, r6, #0 mov r1, #0xff and r2, r1 lsl r1, r2, #2 ldr r5, [r7, r1] mov r1, #0xff and r5, r1 lsr r2, r6, #8 and r2, r1 lsl r1, r2, #2 ldr r4, [r7, r1] ldr r1, _0221C1BC ; =0x0000FF00 and r4, r1 ldr r3, [r0, #0x10] lsr r1, r6, #0x18 lsl r1, r1, #2 ldr r1, [r7, r1] str r1, [sp, #0x18] ldr r2, _0221C1C0 ; =0xFF000000 and r1, r2 str r1, [sp, #0x18] eor r3, r1 lsr r2, r6, #0x10 mov r1, #0xff and r2, r1 lsl r1, r2, #2 ldr r2, [r7, r1] ldr r1, _0221C1C4 ; =0x00FF0000 and r2, r1 eor r3, r2 eor r4, r3 eor r5, r4 str r5, [r0, #0x30] ldr r2, [r0, #0x14] ldr r1, [r0, #0x30] eor r2, r1 str r2, [r0, #0x34] ldr r2, [r0, #0x18] ldr r1, [r0, #0x34] eor r2, r1 str r2, [r0, #0x38] ldr r2, [r0, #0x1c] ldr r1, [r0, #0x38] eor r2, r1 str r2, [r0, #0x3c] add r0, #0x20 b _0221C0CC _0221C1AC: ldr r0, [sp] add sp, #0x20 pop {r4, r5, r6, r7} bx lr .align 2, 0 _0221C1B4: .word 0x0223C444 _0221C1B8: .word 0x0223E06C _0221C1BC: .word 0x0000FF00 _0221C1C0: .word 0xFF000000 _0221C1C4: .word 0x00FF0000 _0221C1C8: .word 0x00000100 thumb_func_start MOD13_0221C1CC MOD13_0221C1CC: ; 0x0221C1CC push {r4} sub sp, #4 ldrb r4, [r0] ldrb r3, [r1] eor r4, r3 strb r4, [r2] ldrb r4, [r0, #1] ldrb r3, [r1, #1] eor r4, r3 strb r4, [r2, #1] ldrb r4, [r0, #2] ldrb r3, [r1, #2] eor r4, r3 strb r4, [r2, #2] ldrb r4, [r0, #3] ldrb r3, [r1, #3] eor r4, r3 strb r4, [r2, #3] ldrb r4, [r0, #4] ldrb r3, [r1, #4] eor r4, r3 strb r4, [r2, #4] ldrb r4, [r0, #5] ldrb r3, [r1, #5] eor r4, r3 strb r4, [r2, #5] ldrb r4, [r0, #6] ldrb r3, [r1, #6] eor r4, r3 strb r4, [r2, #6] ldrb r3, [r0, #7] ldrb r0, [r1, #7] eor r3, r0 strb r3, [r2, #7] add sp, #4 pop {r4} bx lr .align 2, 0 thumb_func_start MOD13_0221C218 MOD13_0221C218: ; 0x0221C218 push {r4, r5, r6, r7, lr} sub sp, #0x1b4 str r0, [sp] add r5, r1, #0 add r4, r2, #0 mov r0, #1 str r0, [sp, #0x1c] ldr r0, _0221C3FC ; =0xA6A6A6A6 str r0, [sp, #0x58] str r0, [sp, #0x5c] mov r0, #7 add r1, r4, #0 and r1, r0 cmp r1, #0 bne _0221C240 ldr r2, [sp, #0x1c8] add r1, r2, #0 and r1, r0 cmp r1, #0 beq _0221C24A _0221C240: mov r0, #0 add sp, #0x1b4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221C24A: sub r0, r4, #1 lsr r0, r0, #3 str r0, [sp, #0x14] cmp r0, #2 bge _0221C25E mov r0, #0 add sp, #0x1b4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221C25E: add r0, sp, #0x70 add r1, r3, #0 lsl r2, r2, #3 bl MOD13_0221BD20 str r0, [sp, #0x18] add r3, sp, #0x60 add r2, r5, #0 mov r1, #8 _0221C270: ldrb r0, [r2] add r2, r2, #1 strb r0, [r3] add r3, r3, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C270 ldr r0, [sp] add r5, #8 add r1, r5, #0 sub r2, r4, #1 bl memcpy mov r0, #5 str r0, [sp, #0x10] ldr r0, [sp, #0x14] asr r0, r0, #0x1f str r0, [sp, #0x24] _0221C294: ldr r0, [sp, #0x14] str r0, [sp, #0xc] cmp r0, #0 bgt _0221C29E b _0221C3D4 _0221C29E: ldr r1, [sp, #0x24] ldr r2, [sp, #0x10] asr r3, r2, #0x1f bl _ll_mul str r0, [sp, #0x28] str r1, [sp, #8] _0221C2AC: ldr r0, [sp, #0xc] asr r1, r0, #0x1f lsl r2, r0, #0 ldr r0, [sp, #0x28] add r6, r2, r0 ldr r0, [sp, #8] adc r1, r0 add r2, r1, #0 ldr r0, _0221C400 ; =0xFF000000 and r2, r0 lsr r0, r2, #0x18 str r0, [sp, #0x30] add r2, r1, #0 ldr r0, _0221C404 ; =0x00FF0000 and r2, r0 lsr r0, r2, #8 str r0, [sp, #0x48] add r2, r1, #0 ldr r0, _0221C408 ; =0x0000FF00 and r2, r0 add r3, r6, #0 mov r0, #0 and r3, r0 lsl r0, r2, #8 lsr r5, r3, #0x18 orr r5, r0 lsr r0, r2, #0x18 str r0, [sp, #0x34] add r0, r1, #0 mov r2, #0xff and r0, r2 add r3, r6, #0 mov r2, #0 and r3, r2 lsl r2, r0, #0x18 lsr r4, r3, #8 orr r4, r2 lsr r0, r0, #8 str r0, [sp, #0x38] add r3, r1, #0 mov r0, #0 and r3, r0 add r0, r6, #0 ldr r2, _0221C400 ; =0xFF000000 and r0, r2 lsr r2, r0, #0x18 lsl r3, r3, #8 orr r3, r2 lsl r0, r0, #8 str r0, [sp, #0x4c] mov r0, #0 and r1, r0 add r0, r6, #0 ldr r2, _0221C404 ; =0x00FF0000 and r0, r2 lsr r2, r0, #8 str r2, [sp, #0x44] lsl r2, r1, #0x18 ldr r1, [sp, #0x44] orr r2, r1 lsl r7, r0, #0x18 add r1, r6, #0 str r1, [sp, #0x40] mov r0, #0xff and r1, r0 str r1, [sp, #0x40] lsl r0, r1, #0x18 str r0, [sp, #0x3c] ldr r0, _0221C408 ; =0x0000FF00 and r6, r0 lsl r1, r6, #8 ldr r0, [sp, #0x3c] orr r0, r1 str r0, [sp, #0x3c] mov r0, #0 lsl r1, r0, #0 orr r0, r1 ldr r1, [sp, #0x3c] orr r2, r1 orr r7, r0 orr r3, r2 ldr r0, [sp, #0x4c] orr r0, r7 str r0, [sp, #0x4c] ldr r0, [sp, #0x38] orr r0, r3 str r0, [sp, #0x38] ldr r0, [sp, #0x4c] orr r4, r0 ldr r1, [sp, #0x34] ldr r0, [sp, #0x38] orr r1, r0 str r1, [sp, #0x34] orr r5, r4 mov r1, #0 ldr r0, [sp, #0x34] orr r1, r0 ldr r0, [sp, #0x48] orr r0, r5 str r0, [sp, #0x48] mov r2, #0 orr r2, r1 ldr r1, [sp, #0x30] orr r1, r0 str r1, [sp, #0x30] str r1, [sp, #0x50] str r2, [sp, #0x54] add r0, sp, #0x60 add r1, sp, #0x50 lsl r2, r0, #0 bl MOD13_0221C1CC ldr r0, [sp, #0xc] sub r0, r0, #1 lsl r1, r0, #3 ldr r0, [sp] add r4, r0, r1 add r3, r4, #0 add r2, sp, #0x68 mov r1, #8 _0221C39C: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C39C add r0, sp, #0x70 ldr r1, [sp, #0x18] add r2, sp, #0x60 lsl r3, r2, #0 bl MOD13_0221B4D8 add r2, sp, #0x68 mov r1, #8 _0221C3BA: ldrb r0, [r2] add r2, r2, #1 strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C3BA ldr r0, [sp, #0xc] sub r0, r0, #1 str r0, [sp, #0xc] cmp r0, #0 ble _0221C3D4 b _0221C2AC _0221C3D4: ldr r0, [sp, #0x10] sub r0, r0, #1 str r0, [sp, #0x10] cmp r0, #0 blt _0221C3E0 b _0221C294 _0221C3E0: add r0, sp, #0x58 add r1, sp, #0x60 mov r2, #8 bl memcmp cmp r0, #0 beq _0221C3F2 mov r0, #0 str r0, [sp, #0x1c] _0221C3F2: ldr r0, [sp, #0x1c] add sp, #0x1b4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221C3FC: .word 0xA6A6A6A6 _0221C400: .word 0xFF000000 _0221C404: .word 0x00FF0000 _0221C408: .word 0x0000FF00 thumb_func_start MOD13_0221C40C MOD13_0221C40C: ; 0x0221C40C push {r4, r5, r6, r7, lr} sub sp, #0x1d4 str r0, [sp] add r5, r1, #0 add r4, r2, #0 ldr r0, _0221C608 ; =0xA6A6A6A6 str r0, [sp, #0x78] str r0, [sp, #0x7c] mov r0, #7 add r1, r4, #0 and r1, r0 cmp r1, #0 bne _0221C430 ldr r2, [sp, #0x1e8] add r1, r2, #0 and r1, r0 cmp r1, #0 beq _0221C43A _0221C430: mov r0, #0 add sp, #0x1d4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221C43A: lsr r0, r4, #3 str r0, [sp, #0x14] cmp r0, #2 bge _0221C44C mov r0, #0 add sp, #0x1d4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221C44C: add r0, sp, #0x90 add r1, r3, #0 lsl r2, r2, #3 bl MOD13_0221BEE4 str r0, [sp, #0x18] ldr r0, [sp] add r0, #8 add r1, r5, #0 add r2, r4, #0 bl memcpy add r3, sp, #0x80 add r2, sp, #0x78 mov r1, #8 _0221C46A: ldrb r0, [r2] add r2, r2, #1 strb r0, [r3] add r3, r3, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C46A mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x14] asr r0, r0, #0x1f str r0, [sp, #0x20] ldr r0, [sp, #0x10] str r0, [sp, #0x34] str r0, [sp, #0x38] str r0, [sp, #0x64] str r0, [sp, #0x60] str r0, [sp, #0x5c] str r0, [sp, #0x58] str r0, [sp, #0x48] str r0, [sp, #0x50] _0221C494: mov r0, #1 str r0, [sp, #0xc] ldr r0, [sp, #0x14] cmp r0, #1 bge _0221C4A0 b _0221C5DA _0221C4A0: ldr r1, [sp, #0x20] ldr r2, [sp, #0x10] asr r3, r2, #0x1f bl _ll_mul str r0, [sp, #0x24] str r1, [sp, #8] _0221C4AE: ldr r0, [sp, #0xc] lsl r1, r0, #3 ldr r0, [sp] add r3, r0, r1 str r3, [sp, #0x2c] add r2, sp, #0x88 mov r1, #8 _0221C4BC: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C4BC add r0, sp, #0x90 ldr r1, [sp, #0x18] add r2, sp, #0x80 lsl r3, r2, #0 bl MOD13_0221B900 ldr r0, [sp, #0xc] asr r1, r0, #0x1f lsl r2, r0, #0 ldr r0, [sp, #0x24] add r6, r2, r0 ldr r0, [sp, #8] adc r1, r0 add r2, r1, #0 ldr r0, _0221C60C ; =0xFF000000 and r2, r0 lsr r0, r2, #0x18 str r0, [sp, #0x30] add r2, r1, #0 ldr r0, _0221C610 ; =0x00FF0000 and r2, r0 lsr r0, r2, #8 str r0, [sp, #0x68] add r2, r1, #0 ldr r0, _0221C614 ; =0x0000FF00 and r2, r0 add r3, r6, #0 ldr r0, [sp, #0x64] and r3, r0 lsl r0, r2, #8 lsr r5, r3, #0x18 orr r5, r0 lsr r0, r2, #0x18 str r0, [sp, #0x3c] add r0, r1, #0 mov r2, #0xff and r0, r2 add r3, r6, #0 ldr r2, [sp, #0x60] and r3, r2 lsl r2, r0, #0x18 lsr r4, r3, #8 orr r4, r2 lsr r0, r0, #8 str r0, [sp, #0x40] add r3, r1, #0 ldr r0, [sp, #0x5c] and r3, r0 add r0, r6, #0 ldr r2, _0221C60C ; =0xFF000000 and r0, r2 lsr r2, r0, #0x18 lsl r3, r3, #8 orr r3, r2 lsl r0, r0, #8 str r0, [sp, #0x6c] ldr r0, [sp, #0x58] and r1, r0 add r0, r6, #0 ldr r2, _0221C610 ; =0x00FF0000 and r0, r2 lsr r2, r0, #8 str r2, [sp, #0x54] lsl r2, r1, #0x18 ldr r1, [sp, #0x54] orr r2, r1 lsl r7, r0, #0x18 add r1, r6, #0 str r1, [sp, #0x4c] mov r0, #0xff and r1, r0 str r1, [sp, #0x4c] lsl r0, r1, #0x18 str r0, [sp, #0x44] ldr r0, _0221C614 ; =0x0000FF00 and r6, r0 lsl r1, r6, #8 ldr r0, [sp, #0x44] orr r0, r1 str r0, [sp, #0x44] ldr r0, [sp, #0x48] ldr r1, [sp, #0x50] orr r0, r1 ldr r1, [sp, #0x44] orr r2, r1 orr r7, r0 orr r3, r2 ldr r0, [sp, #0x6c] orr r0, r7 str r0, [sp, #0x6c] ldr r0, [sp, #0x40] orr r0, r3 str r0, [sp, #0x40] ldr r0, [sp, #0x6c] orr r4, r0 ldr r1, [sp, #0x3c] ldr r0, [sp, #0x40] orr r1, r0 str r1, [sp, #0x3c] orr r5, r4 ldr r1, [sp, #0x38] ldr r0, [sp, #0x3c] orr r1, r0 ldr r0, [sp, #0x68] orr r0, r5 str r0, [sp, #0x68] ldr r2, [sp, #0x34] orr r2, r1 ldr r1, [sp, #0x30] orr r1, r0 str r1, [sp, #0x30] str r1, [sp, #0x70] str r2, [sp, #0x74] add r0, sp, #0x80 add r1, sp, #0x70 lsl r2, r0, #0 bl MOD13_0221C1CC add r3, sp, #0x88 mov r2, #8 _0221C5BA: ldrb r1, [r3] add r3, r3, #1 ldr r0, [sp, #0x2c] strb r1, [r0] add r0, r0, #1 str r0, [sp, #0x2c] sub r2, r2, #1 cmp r2, #0 bne _0221C5BA ldr r0, [sp, #0xc] add r1, r0, #1 str r1, [sp, #0xc] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0221C5DA b _0221C4AE _0221C5DA: ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #6 bge _0221C5E6 b _0221C494 _0221C5E6: add r3, sp, #0x80 mov r2, #8 _0221C5EA: ldrb r1, [r3] add r3, r3, #1 ldr r0, [sp] strb r1, [r0] add r0, r0, #1 str r0, [sp] sub r2, r2, #1 cmp r2, #0 bne _0221C5EA mov r0, #1 add sp, #0x1d4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221C608: .word 0xA6A6A6A6 _0221C60C: .word 0xFF000000 _0221C610: .word 0x00FF0000 _0221C614: .word 0x0000FF00 thumb_func_start MOD13_0221C618 MOD13_0221C618: ; 0x0221C618 push {r4, lr} bl MOD13_0221C658 add r4, r0, #0 ldr r0, _0221C64C ; =0x02241B28 str r4, [r0] bl MOD13_0221D938 cmp r4, #1 bne _0221C634 mov r1, #6 ldr r0, _0221C650 ; =0x02241AE8 str r1, [r0] b _0221C63A _0221C634: mov r1, #7 ldr r0, _0221C650 ; =0x02241AE8 str r1, [r0] _0221C63A: mov r0, #0 mvn r1, r0 ldr r0, _0221C654 ; =0x0223F870 str r1, [r0] bl MOD13_0221A778 pop {r4} pop {r3} bx r3 .align 2, 0 _0221C64C: .word 0x02241B28 _0221C650: .word 0x02241AE8 _0221C654: .word 0x0223F870 thumb_func_start MOD13_0221C658 MOD13_0221C658: ; 0x0221C658 push {r4, r5, r6, r7, lr} sub sp, #0x64 mov r4, #0 mov r0, #4 mvn r0, r0 str r0, [sp, #4] str r4, [sp, #0x40] str r4, [sp, #8] str r4, [sp, #0xc] ldr r6, _0221C9E0 ; =0x02241ACC mov r0, #1 str r0, [r6] str r4, [sp, #0x10] str r4, [sp, #0x18] str r4, [sp, #0x2c] str r4, [sp, #0x34] mvn r0, r0 str r0, [sp, #0x14] str r4, [sp, #0x38] str r4, [sp, #0x24] mvn r0, r4 str r0, [sp, #0x28] mov r0, #3 mvn r0, r0 str r0, [sp, #0x20] mov r0, #2 mvn r0, r0 str r0, [sp, #0x1c] str r4, [sp, #0x3c] b _0221CA3C _0221C694: ldr r0, _0221C9E4 ; =0x000001F4 bl OS_Sleep ldr r0, [r6] cmp r0, #0xa bls _0221C6A2 b _0221CA3C _0221C6A2: add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221C6B0: ; jump table .short _0221CA3C - _0221C6B0 + 1 ; case 0 .short _0221C6C6 - _0221C6B0 + 1 ; case 1 .short _0221C6E6 - _0221C6B0 + 1 ; case 2 .short _0221C6FC - _0221C6B0 + 1 ; case 3 .short _0221C74C - _0221C6B0 + 1 ; case 4 .short _0221C7B6 - _0221C6B0 + 1 ; case 5 .short _0221C7D8 - _0221C6B0 + 1 ; case 6 .short _0221C880 - _0221C6B0 + 1 ; case 7 .short _0221C8DE - _0221C6B0 + 1 ; case 8 .short _0221C960 - _0221C6B0 + 1 ; case 9 .short _0221C9BA - _0221C6B0 + 1 ; case 10 _0221C6C6: bl MOD13_0221D478 str r0, [sp, #4] cmp r0, #1 beq _0221C6D6 mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C6D6: mov r1, #3 ldr r0, _0221C9E8 ; =0x02241AE8 str r1, [r0] bl MOD13_0221A778 mov r0, #2 str r0, [r6] b _0221CA3C _0221C6E6: bl MOD13_0221D9A0 str r0, [sp, #4] cmp r0, #1 beq _0221C6F6 mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C6F6: mov r0, #3 str r0, [r6] b _0221CA3C _0221C6FC: mov r0, #2 lsl r1, r0, #0 ldr r2, [sp, #0x10] bl FUN_0209A9D0 add r4, r0, #0 cmp r4, #0 bge _0221C716 ldr r0, [sp, #0x14] str r0, [sp, #4] mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C716: ldr r2, [sp, #0x18] add r1, sp, #0x44 str r2, [r1] str r2, [r1, #4] mov r2, #8 add r1, sp, #0x44 strb r2, [r1] mov r2, #2 strb r2, [r1, #1] ldr r2, _0221C9EC ; =0x000001E6 strh r2, [r1, #2] ldr r1, [sp, #0x18] str r1, [sp, #0x48] add r1, sp, #0x44 bl FUN_0209A9A4 str r0, [sp, #4] cmp r0, #0 bge _0221C746 ldr r0, [sp, #0x14] str r0, [sp, #4] mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C746: mov r0, #4 str r0, [r6] b _0221CA3C _0221C74C: bl MOD13_0221AA90 ldr r1, _0221C9F0 ; =0x0223F870 ldr r1, [r1] cmp r0, r1 blo _0221C768 add r0, r4, #0 bl thunk_FUN_0209996c ldr r0, [sp, #0x1c] str r0, [sp, #4] mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C768: mov r1, #8 add r0, sp, #0x44 strb r1, [r0, #8] ldr r0, _0221C9F4 ; =0x02241B5C add r1, sp, #0x4c bl MOD13_0221CEA4 add r0, sp, #0x4c str r0, [sp] add r0, r4, #0 ldr r1, _0221C9F8 ; =0x022427E4 ldr r2, _0221C9FC ; =0x00000800 mov r3, #4 bl FUN_0209A880 cmp r0, #0 bgt _0221C78C b _0221CA3C _0221C78C: ldr r0, _0221C9F8 ; =0x022427E4 ldr r1, _0221CA00 ; =0x02241B00 bl MOD13_0221D0D4 cmp r0, #0 bne _0221C79A b _0221CA3C _0221C79A: bl MOD13_0221AA90 ldr r1, _0221CA04 ; =0x00007530 add r1, r0, r1 ldr r0, _0221C9F0 ; =0x0223F870 str r1, [r0] mov r0, #5 str r0, [r6] mov r1, #4 ldr r0, _0221C9E8 ; =0x02241AE8 str r1, [r0] bl MOD13_0221A778 b _0221CA3C _0221C7B6: ldr r0, _0221C9F8 ; =0x022427E4 bl MOD13_0221CFD0 add r3, r0, #0 ldr r0, _0221CA08 ; =0x02241AC4 str r3, [r0] add r0, r4, #0 add r1, sp, #0x4c ldr r2, _0221C9F8 ; =0x022427E4 bl MOD13_0221D408 bl MOD13_0221AA90 str r0, [sp, #0x40] mov r0, #6 str r0, [r6] b _0221CA3C _0221C7D8: bl MOD13_0221AA90 ldr r1, _0221C9F0 ; =0x0223F870 ldr r1, [r1] cmp r0, r1 blo _0221C7F4 add r0, r4, #0 bl thunk_FUN_0209996c ldr r0, [sp, #0x20] str r0, [sp, #4] mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C7F4: add r0, sp, #0x4c str r0, [sp] add r0, r4, #0 ldr r1, _0221C9F8 ; =0x022427E4 ldr r2, _0221C9FC ; =0x00000800 mov r3, #4 bl FUN_0209A880 cmp r0, #0 ble _0221C86A ldr r0, _0221C9F8 ; =0x022427E4 mov r1, #3 ldr r2, _0221CA0C ; =0x02241FE4 ldr r3, _0221C9F4 ; =0x02241B5C bl MOD13_0221D074 cmp r0, #0 beq _0221C86A ldr r0, _0221CA0C ; =0x02241FE4 add r1, sp, #0x54 add r2, sp, #0x58 bl MOD13_0221D30C add r5, r0, #0 ldr r1, [sp, #0x54] ldr r0, _0221CA10 ; =0x00000101 cmp r1, r0 beq _0221C82E b _0221CA3C _0221C82E: bl MOD13_0221AA90 str r0, [sp, #0x5c] ldr r2, _0221CA14 ; =0x02241B84 mov r1, #8 _0221C838: ldrb r0, [r5] add r5, r5, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221C838 ldr r0, _0221CA18 ; =0x02241B8C add r1, sp, #0x5c mov r2, #4 bl MOD13_0221AAB4 ldr r0, [sp, #0x24] str r0, [sp, #8] mov r0, #7 str r0, [r6] mov r1, #5 ldr r0, _0221C9E8 ; =0x02241AE8 str r1, [r0] ldr r1, [sp, #0x28] ldr r0, _0221C9F0 ; =0x0223F870 str r1, [r0] bl MOD13_0221A778 b _0221CA3C _0221C86A: bl MOD13_0221AA90 ldr r2, _0221CA1C ; =0x000003E8 ldr r1, [sp, #0x40] add r1, r1, r2 cmp r0, r1 bhs _0221C87A b _0221CA3C _0221C87A: mov r0, #5 str r0, [r6] b _0221CA3C _0221C880: ldr r0, _0221CA0C ; =0x02241FE4 ldr r1, _0221CA20 ; =0x00000102 ldr r2, _0221CA18 ; =0x02241B8C mov r3, #8 bl MOD13_0221D1B4 ldr r1, _0221CA24 ; =0x02241AE4 str r0, [r1] ldr r0, _0221C9F4 ; =0x02241B5C str r0, [sp] ldr r0, _0221C9F8 ; =0x022427E4 mov r1, #4 ldr r2, _0221CA0C ; =0x02241FE4 ldr r3, _0221CA24 ; =0x02241AE4 ldr r3, [r3] bl MOD13_0221D248 add r3, r0, #0 ldr r0, _0221CA08 ; =0x02241AC4 str r3, [r0] add r0, r4, #0 add r1, sp, #0x4c ldr r2, _0221C9F8 ; =0x022427E4 bl MOD13_0221D408 bl MOD13_0221AA90 str r0, [sp, #0x40] ldr r7, _0221CA28 ; =0x02241D90 ldr r0, [sp, #0x2c] lsl r1, r0, #0 lsl r2, r0, #0 lsl r3, r0, #0 mov r5, #0x12 str r5, [sp, #0x30] _0221C8C6: stmia r7!, {r0, r1, r2, r3} stmia r7!, {r0, r1, r2, r3} ldr r5, [sp, #0x30] sub r5, r5, #1 str r5, [sp, #0x30] cmp r5, #0 bne _0221C8C6 stmia r7!, {r0, r1, r2, r3} str r0, [r7] mov r0, #8 str r0, [r6] b _0221CA3C _0221C8DE: add r0, sp, #0x4c str r0, [sp] add r0, r4, #0 ldr r1, _0221C9F8 ; =0x022427E4 ldr r2, _0221C9FC ; =0x00000800 mov r3, #4 bl FUN_0209A880 cmp r0, #0 ble _0221C932 ldr r0, _0221C9F8 ; =0x022427E4 mov r1, #5 ldr r2, _0221CA0C ; =0x02241FE4 ldr r3, _0221CA14 ; =0x02241B84 bl MOD13_0221D074 ldr r1, _0221CA24 ; =0x02241AE4 str r0, [r1] cmp r0, #0 beq _0221C932 ldr r0, _0221CA0C ; =0x02241FE4 bl MOD13_0221CCD8 cmp r0, #0 beq _0221C932 ldr r1, _0221CA2C ; =0x02241E90 ldr r0, [sp, #0x3c] ldrsb r0, [r1, r0] cmp r0, #0 beq _0221C922 mov r1, #1 ldr r0, _0221CA30 ; =0x02241AB0 strb r1, [r0] b _0221C928 _0221C922: ldr r1, [sp, #0x34] ldr r0, _0221CA30 ; =0x02241AB0 strb r1, [r0] _0221C928: ldr r0, [sp, #0x38] str r0, [sp, #8] mov r0, #9 str r0, [r6] b _0221CA3C _0221C932: bl MOD13_0221AA90 ldr r2, _0221CA1C ; =0x000003E8 ldr r1, [sp, #0x40] add r1, r1, r2 cmp r0, r1 blo _0221CA3C ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #0xa blt _0221C95A add r0, r4, #0 bl thunk_FUN_0209996c ldr r0, [sp, #0x14] str r0, [sp, #4] mov r0, #1 str r0, [sp, #0xc] b _0221CA3C _0221C95A: mov r0, #7 str r0, [r6] b _0221CA3C _0221C960: ldr r0, _0221CA0C ; =0x02241FE4 ldr r1, _0221CA34 ; =0x00000301 ldr r2, _0221CA30 ; =0x02241AB0 mov r3, #1 bl MOD13_0221D1B4 ldr r1, _0221CA24 ; =0x02241AE4 str r0, [r1] ldr r0, _0221CA14 ; =0x02241B84 str r0, [sp] ldr r0, _0221C9F8 ; =0x022427E4 mov r1, #6 ldr r2, _0221CA0C ; =0x02241FE4 ldr r3, _0221CA24 ; =0x02241AE4 ldr r3, [r3] bl MOD13_0221D248 ldr r1, _0221CA08 ; =0x02241AC4 str r0, [r1] bl MOD13_0221DD40 cmp r0, #7 beq _0221C9A0 bl MOD13_0221AA90 ldr r1, _0221CA1C ; =0x000003E8 add r0, r0, r1 str r0, [sp, #0x40] mov r0, #0xa str r0, [sp, #8] str r0, [r6] b _0221CA3C _0221C9A0: add r0, r4, #0 add r1, sp, #0x4c ldr r2, _0221C9F8 ; =0x022427E4 ldr r3, _0221CA08 ; =0x02241AC4 ldr r3, [r3] bl MOD13_0221D408 bl MOD13_0221AA90 str r0, [sp, #0x40] mov r0, #0xa str r0, [r6] b _0221CA3C _0221C9BA: bl MOD13_0221AA90 ldr r2, _0221CA1C ; =0x000003E8 ldr r1, [sp, #0x40] add r1, r1, r2 cmp r0, r1 blo _0221CA3C ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #0xa blt _0221CA38 mov r0, #1 str r0, [sp, #0xc] bl MOD13_0221CA74 str r0, [sp, #4] b _0221CA3C nop _0221C9E0: .word 0x02241ACC _0221C9E4: .word 0x000001F4 _0221C9E8: .word 0x02241AE8 _0221C9EC: .word 0x000001E6 _0221C9F0: .word 0x0223F870 _0221C9F4: .word 0x02241B5C _0221C9F8: .word 0x022427E4 _0221C9FC: .word 0x00000800 _0221CA00: .word 0x02241B00 _0221CA04: .word 0x00007530 _0221CA08: .word 0x02241AC4 _0221CA0C: .word 0x02241FE4 _0221CA10: .word 0x00000101 _0221CA14: .word 0x02241B84 _0221CA18: .word 0x02241B8C _0221CA1C: .word 0x000003E8 _0221CA20: .word 0x00000102 _0221CA24: .word 0x02241AE4 _0221CA28: .word 0x02241D90 _0221CA2C: .word 0x02241E90 _0221CA30: .word 0x02241AB0 _0221CA34: .word 0x00000301 _0221CA38: mov r0, #9 str r0, [r6] _0221CA3C: ldr r0, [sp, #0xc] cmp r0, #0 bne _0221CA4C ldr r0, _0221CA70 ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 bne _0221CA4C b _0221C694 _0221CA4C: cmp r4, #0 beq _0221CA56 add r0, r4, #0 bl thunk_FUN_0209996c _0221CA56: ldr r0, _0221CA70 ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 beq _0221CA64 mov r0, #7 mvn r0, r0 str r0, [sp, #4] _0221CA64: ldr r0, [sp, #4] add sp, #0x64 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221CA70: .word 0x02241AC0 thumb_func_start MOD13_0221CA74 MOD13_0221CA74: ; 0x0221CA74 push {r4, r5, r6, r7, lr} sub sp, #0x34 mov r0, #1 str r0, [sp] ldr r0, _0221CBF0 ; =0x02241CA8 ldr r1, _0221CBF4 ; =0x02241E90 bl strcpy ldr r1, _0221CBF4 ; =0x02241E90 ldr r0, [r1, #0x2c] cmp r0, #3 bls _0221CA8E b _0221CBE0 _0221CA8E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221CA9C: ; jump table .short _0221CAA4 - _0221CA9C + 1 ; case 0 .short _0221CAAC - _0221CA9C + 1 ; case 1 .short _0221CBB0 - _0221CA9C + 1 ; case 2 .short _0221CBC8 - _0221CA9C + 1 ; case 3 _0221CAA4: mov r1, #0 ldr r0, _0221CBF0 ; =0x02241CA8 str r1, [r0, #0x20] b _0221CBE6 _0221CAAC: ldr r0, [r1, #0x30] cmp r0, #0 bne _0221CABA mov r0, #6 mvn r0, r0 str r0, [sp] b _0221CBE6 _0221CABA: ldr r6, _0221CBF0 ; =0x02241CA8 str r0, [r6, #0x24] mov r0, #0 str r0, [sp, #4] add r5, sp, #0x10 ldr r7, _0221CBF8 ; =0x02241EF4 ldr r4, _0221CBFC ; =0x02241CD0 mov r0, #6 mvn r0, r0 str r0, [sp, #0xc] ldr r0, [sp, #4] str r0, [sp, #8] _0221CAD2: add r0, r5, #0 add r1, r7, #0 mov r2, #0x20 bl memcpy ldr r1, [sp, #8] add r0, sp, #0x30 strb r1, [r0] add r0, r5, #0 bl strlen cmp r0, #0x10 bhi _0221CB0E cmp r0, #0xa blo _0221CAFE cmp r0, #0xa beq _0221CB38 cmp r0, #0xd beq _0221CB48 cmp r0, #0x10 beq _0221CB72 b _0221CB9C _0221CAFE: cmp r0, #0 bhi _0221CB08 cmp r0, #0 beq _0221CBA0 b _0221CB9C _0221CB08: cmp r0, #5 beq _0221CB1E b _0221CB9C _0221CB0E: cmp r0, #0x1a bhi _0221CB18 cmp r0, #0x1a beq _0221CB62 b _0221CB9C _0221CB18: cmp r0, #0x20 beq _0221CB8C b _0221CB9C _0221CB1E: mov r0, #1 str r0, [r6, #0x20] ldrb r0, [r5] strb r0, [r4] ldrb r0, [r5, #1] strb r0, [r4, #1] ldrb r0, [r5, #2] strb r0, [r4, #2] ldrb r0, [r5, #3] strb r0, [r4, #3] ldrb r0, [r5, #4] strb r0, [r4, #4] b _0221CBA0 _0221CB38: mov r0, #1 str r0, [r6, #0x20] add r0, r4, #0 add r1, r5, #0 mov r2, #0xa bl MOD13_0221CC08 b _0221CBA0 _0221CB48: mov r0, #2 str r0, [r6, #0x20] add r3, r5, #0 add r2, r4, #0 mov r1, #0xd _0221CB52: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221CB52 b _0221CBA0 _0221CB62: mov r0, #2 str r0, [r6, #0x20] add r0, r4, #0 add r1, r5, #0 mov r2, #0x1a bl MOD13_0221CC08 b _0221CBA0 _0221CB72: mov r0, #3 str r0, [r6, #0x20] add r3, r5, #0 add r2, r4, #0 mov r1, #0x10 _0221CB7C: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221CB7C b _0221CBA0 _0221CB8C: mov r0, #3 str r0, [r6, #0x20] add r0, r4, #0 add r1, r5, #0 mov r2, #0x20 bl MOD13_0221CC08 b _0221CBA0 _0221CB9C: ldr r0, [sp, #0xc] str r0, [sp] _0221CBA0: add r7, #0x28 add r4, #0x20 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blt _0221CAD2 b _0221CBE6 _0221CBB0: mov r1, #4 ldr r0, _0221CBF0 ; =0x02241CA8 str r1, [r0, #0x20] ldr r4, _0221CC00 ; =0x02241D50 ldr r3, _0221CC04 ; =0x02241F8C mov r2, #8 _0221CBBC: ldmia r3!, {r0, r1} stmia r4!, {r0, r1} sub r2, r2, #1 cmp r2, #0 bne _0221CBBC b _0221CBE6 _0221CBC8: mov r1, #5 ldr r0, _0221CBF0 ; =0x02241CA8 str r1, [r0, #0x20] ldr r4, _0221CC00 ; =0x02241D50 ldr r3, _0221CC04 ; =0x02241F8C mov r2, #8 _0221CBD4: ldmia r3!, {r0, r1} stmia r4!, {r0, r1} sub r2, r2, #1 cmp r2, #0 bne _0221CBD4 b _0221CBE6 _0221CBE0: mov r0, #6 mvn r0, r0 str r0, [sp] _0221CBE6: ldr r0, [sp] add sp, #0x34 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221CBF0: .word 0x02241CA8 _0221CBF4: .word 0x02241E90 _0221CBF8: .word 0x02241EF4 _0221CBFC: .word 0x02241CD0 _0221CC00: .word 0x02241D50 _0221CC04: .word 0x02241F8C thumb_func_start MOD13_0221CC08 MOD13_0221CC08: ; 0x0221CC08 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 add r7, r1, #0 str r2, [sp] mov r4, #0 add r5, r4, #0 lsl r0, r2, #0 cmp r0, #0 ble _0221CCCE str r4, [sp, #4] _0221CC1E: ldrsb r0, [r7, r5] cmp r0, #0x63 bgt _0221CC7A cmp r0, #0x63 bge _0221CC94 cmp r0, #0x61 bgt _0221CC74 cmp r0, #0x61 bge _0221CC94 add r1, r0, #0 sub r1, #0x30 cmp r1, #0x16 bhi _0221CCA0 add r1, r1, r1 add r1, pc ldrh r1, [r1, #8] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r1, pc bx r1 _0221CC46: ; jump table .short _0221CC8E - _0221CC46 + 1 ; case 0 .short _0221CC8E - _0221CC46 + 1 ; case 1 .short _0221CC8E - _0221CC46 + 1 ; case 2 .short _0221CC8E - _0221CC46 + 1 ; case 3 .short _0221CC8E - _0221CC46 + 1 ; case 4 .short _0221CC8E - _0221CC46 + 1 ; case 5 .short _0221CC8E - _0221CC46 + 1 ; case 6 .short _0221CC8E - _0221CC46 + 1 ; case 7 .short _0221CC8E - _0221CC46 + 1 ; case 8 .short _0221CC8E - _0221CC46 + 1 ; case 9 .short _0221CCA0 - _0221CC46 + 1 ; case 10 .short _0221CCA0 - _0221CC46 + 1 ; case 11 .short _0221CCA0 - _0221CC46 + 1 ; case 12 .short _0221CCA0 - _0221CC46 + 1 ; case 13 .short _0221CCA0 - _0221CC46 + 1 ; case 14 .short _0221CCA0 - _0221CC46 + 1 ; case 15 .short _0221CCA0 - _0221CC46 + 1 ; case 16 .short _0221CC9A - _0221CC46 + 1 ; case 17 .short _0221CC9A - _0221CC46 + 1 ; case 18 .short _0221CC9A - _0221CC46 + 1 ; case 19 .short _0221CC9A - _0221CC46 + 1 ; case 20 .short _0221CC9A - _0221CC46 + 1 ; case 21 .short _0221CC9A - _0221CC46 + 1 ; case 22 _0221CC74: cmp r0, #0x62 beq _0221CC94 b _0221CCA0 _0221CC7A: cmp r0, #0x65 bgt _0221CC88 cmp r0, #0x65 bge _0221CC94 cmp r0, #0x64 beq _0221CC94 b _0221CCA0 _0221CC88: cmp r0, #0x66 beq _0221CC94 b _0221CCA0 _0221CC8E: sub r0, #0x30 add r4, r4, r0 b _0221CCAA _0221CC94: sub r0, #0x57 add r4, r4, r0 b _0221CCAA _0221CC9A: sub r0, #0x37 add r4, r4, r0 b _0221CCAA _0221CCA0: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 _0221CCAA: add r0, r5, #0 mov r1, #2 bl _s32_div_f cmp r1, #0 bne _0221CCBA lsl r4, r4, #4 b _0221CCC6 _0221CCBA: add r0, r5, #0 mov r1, #2 bl _s32_div_f strb r4, [r6, r0] ldr r4, [sp, #4] _0221CCC6: add r5, r5, #1 ldr r0, [sp] cmp r5, r0 blt _0221CC1E _0221CCCE: mov r0, #1 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 thumb_func_start MOD13_0221CCD8 MOD13_0221CCD8: ; 0x0221CCD8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r1, r0, #0 add r1, #8 str r1, [sp, #8] mov r2, #0 str r2, [sp, #4] ldrh r2, [r0] asr r3, r2, #8 mov r0, #0xff and r3, r0 lsl r2, r2, #8 ldr r0, _0221CE80 ; =0x0000FF00 and r2, r0 orr r3, r2 lsl r0, r3, #0x10 lsr r0, r0, #0x10 add r0, r1, r0 str r0, [sp] add r0, sp, #8 ldr r1, [sp] add r2, sp, #0xc add r3, sp, #0x10 bl MOD13_0221D344 add r5, r0, #0 cmp r5, #0 bne _0221CD12 b _0221CE76 _0221CD12: mov r7, #0 _0221CD14: ldr r0, [sp, #0xc] ldr r1, _0221CE84 ; =0x00000201 sub r1, r0, r1 cmp r1, #9 bls _0221CD20 b _0221CE62 _0221CD20: add r1, r1, r1 add r1, pc ldrh r1, [r1, #8] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r1, pc bx r1 _0221CD2E: ; jump table .short _0221CD42 - _0221CD2E + 1 ; case 0 .short _0221CD60 - _0221CD2E + 1 ; case 1 .short _0221CD7A - _0221CD2E + 1 ; case 2 .short _0221CDA0 - _0221CD2E + 1 ; case 3 .short _0221CDC6 - _0221CD2E + 1 ; case 4 .short _0221CDE0 - _0221CD2E + 1 ; case 5 .short _0221CDE0 - _0221CD2E + 1 ; case 6 .short _0221CDE0 - _0221CD2E + 1 ; case 7 .short _0221CDE0 - _0221CD2E + 1 ; case 8 .short _0221CE40 - _0221CD2E + 1 ; case 9 _0221CD42: ldr r2, _0221CE88 ; =0x02241E90 add r0, r7, #0 add r1, r7, #0 stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} ldr r0, _0221CE88 ; =0x02241E90 add r1, r5, #0 ldr r2, [sp, #0x10] bl memcpy mov r0, #1 str r0, [sp, #4] b _0221CE62 _0221CD60: ldrh r1, [r5] asr r2, r1, #8 mov r0, #0xff and r2, r0 lsl r1, r1, #8 ldr r0, _0221CE80 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r1, r0, #0x10 ldr r0, _0221CE88 ; =0x02241E90 str r1, [r0, #0x2c] b _0221CE62 _0221CD7A: ldrh r1, [r5] asr r2, r1, #8 mov r0, #0xff and r2, r0 lsl r1, r1, #8 ldr r0, _0221CE80 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r1, r0, #0x10 add r3, r7, #0 ldr r2, _0221CE8C ; =0x02241D90 _0221CD92: ldr r0, _0221CE90 ; =0x0000015C str r1, [r2, r0] add r2, #0x28 add r3, r3, #1 cmp r3, #4 blt _0221CD92 b _0221CE62 _0221CDA0: ldrh r1, [r5] asr r2, r1, #8 mov r0, #0xff and r2, r0 lsl r1, r1, #8 ldr r0, _0221CE80 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r2, r0, #0x10 add r1, r7, #0 ldr r3, _0221CE8C ; =0x02241D90 _0221CDB8: ldr r0, _0221CE94 ; =0x00000160 str r2, [r3, r0] add r3, #0x28 add r1, r1, #1 cmp r1, #4 blt _0221CDB8 b _0221CE62 _0221CDC6: ldrh r1, [r5] asr r2, r1, #8 mov r0, #0xff and r2, r0 lsl r1, r1, #8 ldr r0, _0221CE80 ; =0x0000FF00 and r1, r0 orr r2, r1 lsl r0, r2, #0x10 lsr r1, r0, #0x10 ldr r0, _0221CE88 ; =0x02241E90 str r1, [r0, #0x30] b _0221CE62 _0221CDE0: ldr r1, _0221CE98 ; =0x00000206 sub r1, r0, r1 mov r0, #0x28 mul r1, r0 ldr r0, _0221CE9C ; =0x02241EF4 add r0, r0, r1 add r1, r7, #0 mov r2, #0x20 bl Call_FillMemWithValue ldr r0, _0221CE88 ; =0x02241E90 ldr r0, [r0, #0x5c] cmp r0, #1 bne _0221CE28 ldr r1, [sp, #0xc] ldr r0, _0221CE98 ; =0x00000206 sub r1, r1, r0 mov r0, #0x28 mul r1, r0 ldr r0, _0221CE9C ; =0x02241EF4 add r4, r0, r1 add r6, r7, #0 ldr r0, [sp, #0x10] cmp r0, #0 ble _0221CE62 _0221CE12: add r0, r4, #0 ldrsb r1, [r5, r7] add r5, r5, #1 bl MOD13_0221AA14 add r4, r4, r0 add r6, r6, #1 ldr r0, [sp, #0x10] cmp r6, r0 blt _0221CE12 b _0221CE62 _0221CE28: ldr r1, [sp, #0xc] ldr r0, _0221CE98 ; =0x00000206 sub r1, r1, r0 mov r0, #0x28 mul r1, r0 ldr r0, _0221CE9C ; =0x02241EF4 add r0, r0, r1 add r1, r5, #0 ldr r2, [sp, #0x10] bl memcpy b _0221CE62 _0221CE40: ldr r2, _0221CEA0 ; =0x02241F8C add r0, r7, #0 add r1, r7, #0 stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} stmia r2!, {r0, r1} ldr r0, _0221CEA0 ; =0x02241F8C add r1, r5, #0 ldr r2, [sp, #0x10] bl memcpy _0221CE62: add r0, sp, #8 ldr r1, [sp] add r2, sp, #0xc add r3, sp, #0x10 bl MOD13_0221D344 add r5, r0, #0 cmp r5, #0 beq _0221CE76 b _0221CD14 _0221CE76: ldr r0, [sp, #4] add sp, #0x14 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221CE80: .word 0x0000FF00 _0221CE84: .word 0x00000201 _0221CE88: .word 0x02241E90 _0221CE8C: .word 0x02241D90 _0221CE90: .word 0x0000015C _0221CE94: .word 0x00000160 _0221CE98: .word 0x00000206 _0221CE9C: .word 0x02241EF4 _0221CEA0: .word 0x02241F8C thumb_func_start MOD13_0221CEA4 MOD13_0221CEA4: ; 0x0221CEA4 push {r4, lr} sub sp, #0x50 add r4, r0, #0 add r2, r4, #0 add r2, #0xc ldr r1, _0221CFB0 ; =0x0223F92C ldrb r0, [r1] strb r0, [r4, #0xc] ldrb r0, [r1, #1] strb r0, [r2, #1] ldrb r0, [r1, #2] strb r0, [r2, #2] ldrb r0, [r1, #3] strb r0, [r2, #3] add r1, sp, #0 ldr r0, _0221CFB4 ; =0x02241B3C ldrb r2, [r0] strb r2, [r1] ldrb r2, [r0, #1] strb r2, [r1, #1] ldrb r2, [r0, #2] strb r2, [r1, #2] ldrb r2, [r0, #3] strb r2, [r1, #3] ldrb r2, [r0, #4] strb r2, [r1, #4] ldrb r0, [r0, #5] strb r0, [r1, #5] add r1, sp, #0 ldrb r2, [r1] mov r0, #0xfd and r2, r0 strb r2, [r1] add r0, sp, #4 add r0, #2 bl MOD13_0221CFC0 ldr r0, _0221CFB8 ; =0x02241B34 add r1, sp, #4 add r1, #2 ldrb r2, [r1] strb r2, [r0] ldrb r2, [r1, #1] strb r2, [r0, #1] ldrb r2, [r1, #2] strb r2, [r0, #2] ldrb r2, [r1, #3] strb r2, [r0, #3] ldrb r2, [r1, #4] strb r2, [r0, #4] ldrb r2, [r1, #5] strb r2, [r0, #5] add r0, sp, #0 mov r2, #6 bl memcmp cmp r0, #0 bgt _0221CF52 add r1, sp, #4 add r1, #2 ldrb r0, [r1] strb r0, [r4] ldrb r0, [r1, #1] strb r0, [r4, #1] ldrb r0, [r1, #2] strb r0, [r4, #2] ldrb r0, [r1, #3] strb r0, [r4, #3] ldrb r0, [r1, #4] strb r0, [r4, #4] ldrb r0, [r1, #5] strb r0, [r4, #5] add r1, r4, #6 add r0, sp, #0 ldrb r2, [r0] strb r2, [r4, #6] ldrb r2, [r0, #1] strb r2, [r1, #1] ldrb r2, [r0, #2] strb r2, [r1, #2] ldrb r2, [r0, #3] strb r2, [r1, #3] ldrb r2, [r0, #4] strb r2, [r1, #4] ldrb r0, [r0, #5] strb r0, [r1, #5] b _0221CF8A _0221CF52: add r1, sp, #0 ldrb r0, [r1] strb r0, [r4] ldrb r0, [r1, #1] strb r0, [r4, #1] ldrb r0, [r1, #2] strb r0, [r4, #2] ldrb r0, [r1, #3] strb r0, [r4, #3] ldrb r0, [r1, #4] strb r0, [r4, #4] ldrb r0, [r1, #5] strb r0, [r4, #5] add r1, r4, #6 add r0, sp, #4 add r0, #2 ldrb r2, [r0] strb r2, [r4, #6] ldrb r2, [r0, #1] strb r2, [r1, #1] ldrb r2, [r0, #2] strb r2, [r1, #2] ldrb r2, [r0, #3] strb r2, [r1, #3] ldrb r2, [r0, #4] strb r2, [r1, #4] ldrb r0, [r0, #5] strb r0, [r1, #5] _0221CF8A: ldr r0, _0221CFBC ; =0x0223F868 ldr r0, [r0] cmp r0, #0 beq _0221CFA4 add r0, sp, #0xc add r1, sp, #4 add r1, #2 bl MOD13_0221A9D8 add r0, sp, #0x2c add r1, sp, #0 bl MOD13_0221A9D8 _0221CFA4: mov r0, #1 add sp, #0x50 pop {r4} pop {r3} bx r3 nop _0221CFB0: .word 0x0223F92C _0221CFB4: .word 0x02241B3C _0221CFB8: .word 0x02241B34 _0221CFBC: .word 0x0223F868 thumb_func_start MOD13_0221CFC0 MOD13_0221CFC0: ; 0x0221CFC0 push {lr} sub sp, #4 bl OS_GetMacAddress mov r0, #1 add sp, #4 pop {r3} bx r3 thumb_func_start MOD13_0221CFD0 MOD13_0221CFD0: ; 0x0221CFD0 push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r1, _0221D05C ; =0x00000100 add r0, sp, #4 strh r1, [r0] ldr r3, _0221D060 ; =0x0223F880 add r2, sp, #4 add r2, #2 mov r1, #7 _0221CFE4: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221CFE4 ldr r0, _0221D064 ; =0x0223F864 ldr r0, [r0] mov r1, #1 add r2, sp, #4 mov r3, #2 bl MOD13_0221D1E0 mov r1, #2 add r2, sp, #4 add r3, r1, #0 bl MOD13_0221D1E0 ldr r1, _0221D068 ; =0x02241B00 ldr r1, [r1] cmp r1, #0 beq _0221D01C mov r1, #5 add r2, sp, #4 mov r3, #2 bl MOD13_0221D1E0 _0221D01C: mov r1, #3 add r2, sp, #4 add r2, #2 mov r3, #7 bl MOD13_0221D1E0 add r3, r0, #0 ldr r1, _0221D068 ; =0x02241B00 ldr r1, [r1] cmp r1, #0 beq _0221D03E mov r1, #4 ldr r2, _0221D06C ; =0x02241B34 mov r3, #6 bl MOD13_0221D1E0 add r3, r0, #0 _0221D03E: mov r0, #0 str r0, [sp] add r0, r4, #0 mov r1, #2 ldr r2, _0221D070 ; =0x02241FE4 ldr r4, _0221D064 ; =0x0223F864 ldr r4, [r4] sub r3, r3, r4 add r3, #8 bl MOD13_0221D248 add sp, #0x10 pop {r4} pop {r3} bx r3 .align 2, 0 _0221D05C: .word 0x00000100 _0221D060: .word 0x0223F880 _0221D064: .word 0x0223F864 _0221D068: .word 0x02241B00 _0221D06C: .word 0x02241B34 _0221D070: .word 0x02241FE4 thumb_func_start MOD13_0221D074 MOD13_0221D074: ; 0x0221D074 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r1, #0 add r6, r2, #0 add r4, r3, #0 add r1, sp, #4 add r2, sp, #8 bl MOD13_0221D398 add r1, r0, #0 cmp r1, #0 bne _0221D096 mov r0, #0 add sp, #0x10 pop {r4, r5, r6} pop {r3} bx r3 _0221D096: ldr r0, [sp, #4] cmp r0, r5 beq _0221D0A6 mov r0, #0 add sp, #0x10 pop {r4, r5, r6} pop {r3} bx r3 _0221D0A6: cmp r4, #0 beq _0221D0C0 mov r0, #0x10 str r0, [sp] add r0, r6, #0 ldr r2, [sp, #8] add r3, r4, #0 bl MOD13_0221C218 ldr r0, [sp, #8] sub r0, #8 str r0, [sp, #8] b _0221D0C8 _0221D0C0: add r0, r6, #0 ldr r2, [sp, #8] bl memcpy _0221D0C8: ldr r0, [sp, #8] add sp, #0x10 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221D0D4 MOD13_0221D0D4: ; 0x0221D0D4 push {r4, r5, r6, r7, lr} sub sp, #0x24 str r1, [sp] add r1, sp, #0xc add r2, sp, #0x10 bl MOD13_0221D398 str r0, [sp, #0x1c] mov r7, #0 str r7, [sp, #4] str r7, [sp, #8] cmp r0, #0 bne _0221D0F8 add r0, r7, #0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221D0F8: ldr r1, [sp, #0xc] cmp r1, #1 beq _0221D108 add r0, r7, #0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221D108: ldr r1, [sp, #0x10] add r6, r0, r1 add r0, #8 str r0, [sp, #0x1c] add r0, sp, #0x1c add r1, r6, #0 add r2, sp, #0x14 add r3, sp, #0x18 bl MOD13_0221D344 cmp r0, #0 beq _0221D17C mov r4, #0xff ldr r5, _0221D1B0 ; =0x0000FF00 _0221D124: ldr r1, [sp, #0x14] cmp r1, #1 beq _0221D134 cmp r1, #2 beq _0221D146 cmp r1, #5 beq _0221D15A b _0221D16C _0221D134: ldrh r0, [r0] asr r1, r0, #8 and r1, r4 lsl r0, r0, #8 and r0, r5 orr r1, r0 lsl r0, r1, #0x10 lsr r7, r0, #0x10 b _0221D16C _0221D146: ldrh r0, [r0] asr r1, r0, #8 and r1, r4 lsl r0, r0, #8 and r0, r5 orr r1, r0 lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] b _0221D16C _0221D15A: ldrh r0, [r0] asr r1, r0, #8 and r1, r4 lsl r0, r0, #8 and r0, r5 orr r1, r0 lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] _0221D16C: add r0, sp, #0x1c add r1, r6, #0 add r2, sp, #0x14 add r3, sp, #0x18 bl MOD13_0221D344 cmp r0, #0 bne _0221D124 _0221D17C: cmp r7, #1 bne _0221D186 ldr r0, [sp, #4] cmp r0, #1 beq _0221D190 _0221D186: mov r0, #0 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221D190: ldr r0, [sp, #8] cmp r0, #1 blt _0221D19E mov r1, #1 ldr r0, [sp] str r1, [r0] b _0221D1A4 _0221D19E: mov r1, #0 ldr r0, [sp] str r1, [r0] _0221D1A4: mov r0, #1 add sp, #0x24 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221D1B0: .word 0x0000FF00 thumb_func_start MOD13_0221D1B4 MOD13_0221D1B4: ; 0x0221D1B4 push {r4, lr} add r4, r0, #0 mov r0, #0 strb r0, [r4] strb r0, [r4, #1] strb r0, [r4, #2] strb r0, [r4, #3] strb r0, [r4, #4] strb r0, [r4, #5] strb r0, [r4, #6] strb r0, [r4, #7] add r0, r4, #0 add r0, #8 bl MOD13_0221D1E0 sub r0, r0, r4 add r1, r0, #0 sub r1, #8 strh r1, [r4] pop {r4} pop {r3} bx r3 thumb_func_start MOD13_0221D1E0 MOD13_0221D1E0: ; 0x0221D1E0 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r7, r2, #0 add r4, r3, #0 mov r0, #0 strb r0, [r5] strb r0, [r5, #1] strb r0, [r5, #2] strb r0, [r5, #3] lsl r0, r1, #0x10 lsr r0, r0, #0x10 asr r2, r0, #8 mov r3, #0xff and r2, r3 lsl r1, r0, #8 ldr r0, _0221D244 ; =0x0000FF00 and r1, r0 orr r2, r1 strh r2, [r5] add r2, r4, #0 add r2, #0xb mov r1, #7 bic r2, r1 sub r6, r2, #4 lsl r1, r4, #0x10 lsr r2, r1, #0x10 asr r1, r2, #8 and r1, r3 lsl r2, r2, #8 and r2, r0 orr r1, r2 strh r1, [r5, #2] add r5, r5, #4 add r0, r5, #0 mov r1, #0 add r2, r6, #0 bl Call_FillMemWithValue add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 bl memcpy add r0, r5, r6 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221D244: .word 0x0000FF00 thumb_func_start MOD13_0221D248 MOD13_0221D248: ; 0x0221D248 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 str r1, [sp, #4] add r1, r2, #0 add r7, r3, #0 add r5, r6, #0 mov r4, #0 strb r4, [r1] strb r4, [r1, #1] strb r4, [r1, #2] strb r4, [r1, #3] strb r4, [r1, #4] strb r4, [r1, #5] strb r4, [r1, #6] strb r4, [r1, #7] add r0, r7, #0 sub r0, #8 lsl r0, r0, #0x10 lsr r3, r0, #0x10 asr r2, r3, #8 mov r0, #0xff and r2, r0 lsl r3, r3, #8 ldr r0, _0221D308 ; =0x0000FF00 and r3, r0 orr r2, r3 strh r2, [r1] ldr r3, [sp, #0x20] cmp r3, #0 beq _0221D296 mov r0, #0x10 str r0, [sp] add r0, r6, #6 add r2, r7, #0 bl MOD13_0221C40C add r7, #8 b _0221D29E _0221D296: add r0, r6, #6 add r2, r7, #0 bl memcpy _0221D29E: mov r0, #0 strb r0, [r6] strb r0, [r6, #1] strb r0, [r6, #2] strb r0, [r6, #3] strb r0, [r6, #4] strb r0, [r6, #5] ldr r0, [sp, #4] lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r3, r0, #8 mov r1, #0xff and r3, r1 lsl r0, r0, #8 ldr r2, _0221D308 ; =0x0000FF00 and r0, r2 orr r3, r0 strh r3, [r6] lsl r0, r7, #0x10 lsr r0, r0, #0x10 asr r3, r0, #8 and r3, r1 lsl r0, r0, #8 and r0, r2 orr r3, r0 strh r3, [r6, #2] add r0, r5, #6 add r5, r0, r7 add r1, r6, #0 cmp r6, r5 bhs _0221D2E6 _0221D2DC: ldrb r0, [r1] add r4, r4, r0 add r1, r1, #1 cmp r1, r5 blo _0221D2DC _0221D2E6: lsl r0, r4, #0x10 lsr r1, r0, #0x10 asr r2, r1, #8 mov r0, #0xff and r2, r0 lsl r1, r1, #8 ldr r0, _0221D308 ; =0x0000FF00 and r1, r0 orr r2, r1 strh r2, [r5] add r0, r5, #2 sub r0, r0, r6 add sp, #0xc pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221D308: .word 0x0000FF00 thumb_func_start MOD13_0221D30C MOD13_0221D30C: ; 0x0221D30C push {r4, r5, r6, lr} sub sp, #8 add r4, r1, #0 add r3, r2, #0 add r2, r0, #0 add r2, #8 str r2, [sp] ldrh r6, [r0] add r0, sp, #0 asr r1, r6, #8 mov r5, #0xff and r1, r5 lsl r6, r6, #8 ldr r5, _0221D340 ; =0x0000FF00 and r6, r5 orr r1, r6 lsl r1, r1, #0x10 lsr r1, r1, #0x10 add r1, r2, r1 add r2, r4, #0 bl MOD13_0221D344 add sp, #8 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _0221D340: .word 0x0000FF00 thumb_func_start MOD13_0221D344 MOD13_0221D344: ; 0x0221D344 push {r4, r5, r6, r7} add r5, r0, #0 add r4, r2, #0 add r2, r3, #0 ldr r0, [r5] cmp r0, r1 blo _0221D358 mov r0, #0 pop {r4, r5, r6, r7} bx lr _0221D358: ldrh r1, [r0] asr r7, r1, #8 mov r3, #0xff and r7, r3 lsl r1, r1, #8 ldr r6, _0221D394 ; =0x0000FF00 and r1, r6 orr r7, r1 lsl r1, r7, #0x10 lsr r1, r1, #0x10 str r1, [r4] ldrh r1, [r0, #2] asr r4, r1, #8 and r4, r3 lsl r1, r1, #8 and r1, r6 orr r4, r1 lsl r1, r4, #0x10 lsr r1, r1, #0x10 str r1, [r2] add r0, r0, #4 ldr r2, [r2] add r2, #0xb mov r1, #7 bic r2, r1 sub r1, r2, #4 add r1, r0, r1 str r1, [r5] pop {r4, r5, r6, r7} bx lr .align 2, 0 _0221D394: .word 0x0000FF00 thumb_func_start MOD13_0221D398 MOD13_0221D398: ; 0x0221D398 push {r4, r5, r6, r7} mov r3, #0 ldrh r4, [r0] asr r7, r4, #8 mov r5, #0xff and r7, r5 lsl r4, r4, #8 ldr r6, _0221D404 ; =0x0000FF00 and r4, r6 orr r7, r4 lsl r4, r7, #0x10 lsr r4, r4, #0x10 str r4, [r1] ldrh r1, [r0, #2] asr r4, r1, #8 and r4, r5 lsl r1, r1, #8 and r1, r6 orr r4, r1 lsl r1, r4, #0x10 lsr r1, r1, #0x10 str r1, [r2] add r4, r0, #6 ldr r1, [r2] add r4, r4, r1 add r2, r0, #0 cmp r0, r4 bhs _0221D3DA _0221D3D0: ldrb r1, [r2] add r3, r3, r1 add r2, r2, #1 cmp r2, r4 blo _0221D3D0 _0221D3DA: ldrh r2, [r4] lsl r1, r3, #0x10 lsr r4, r1, #0x10 asr r3, r2, #8 mov r1, #0xff and r3, r1 lsl r2, r2, #8 ldr r1, _0221D404 ; =0x0000FF00 and r2, r1 orr r3, r2 lsl r1, r3, #0x10 lsr r1, r1, #0x10 cmp r4, r1 beq _0221D3FC mov r0, #0 pop {r4, r5, r6, r7} bx lr _0221D3FC: add r0, r0, #6 pop {r4, r5, r6, r7} bx lr nop _0221D404: .word 0x0000FF00 thumb_func_start MOD13_0221D408 MOD13_0221D408: ; 0x0221D408 add r1, r2, #0 add r2, r3, #0 ldr r3, _0221D410 ; =MOD13_0221D414 bx r3 .align 2, 0 _0221D410: .word MOD13_0221D414 thumb_func_start MOD13_0221D414 MOD13_0221D414: ; 0x0221D414 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 mov r0, #8 add r1, sp, #4 strb r0, [r1] mov r0, #2 strb r0, [r1, #1] mov r0, #0 mvn r0, r0 str r0, [sp, #8] ldr r0, _0221D454 ; =0x000001E6 strh r0, [r1, #2] bl FUN_02099C78 add r1, sp, #0xc bl FUN_0209A174 str r4, [sp] add r0, r5, #0 add r1, sp, #4 add r2, sp, #0xc add r3, r6, #0 bl MOD13_0221D458 add sp, #0x10 pop {r4, r5, r6} pop {r3} bx r3 nop _0221D454: .word 0x000001E6 thumb_func_start MOD13_0221D458 MOD13_0221D458: ; 0x0221D458 push {lr} sub sp, #4 str r1, [sp] add r1, r3, #0 ldr r2, [sp, #8] mov r3, #0 bl FUN_0209A7D0 cmp r0, #0 bge _0221D470 mov r0, #3 mvn r0, r0 _0221D470: add sp, #4 pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221D478 MOD13_0221D478: ; 0x0221D478 push {r4, r5, r6, r7, lr} sub sp, #0x9c mov r0, #0 str r0, [sp, #0x18] mvn r4, r0 str r0, [sp, #0x48] ldr r0, _0221D738 ; =0x02241B20 ldr r0, [r0] str r0, [sp, #0x10] mov r1, #0x30 mul r0, r1 str r0, [sp, #0x10] add r0, #0x34 str r0, [sp, #0x10] mov r0, #1 ldr r1, [sp, #0x10] bl MOD13_0221AA64 str r0, [sp, #0x14] cmp r0, #0 bne _0221D4A4 b _0221D718 _0221D4A4: mov r0, #1 ldr r1, [sp, #0x10] bl MOD13_0221AA64 str r0, [sp, #0x18] cmp r0, #0 bne _0221D4B4 b _0221D718 _0221D4B4: mov r0, #0 str r0, [sp, #4] str r0, [sp, #0x44] str r0, [sp, #0x3c] str r0, [sp, #0x38] add r6, sp, #0x6c str r0, [sp, #0x34] lsl r7, r0, #0 str r0, [sp, #0x28] str r0, [sp, #0x2c] str r0, [sp, #0x30] str r0, [sp, #0x40] b _0221D6E0 _0221D4CE: bl MOD13_0221AA90 ldr r1, _0221D73C ; =0x0223F870 ldr r1, [r1] cmp r0, r1 blo _0221D4DC b _0221D6F0 _0221D4DC: ldr r0, [sp, #0x28] lsl r1, r0, #0 lsl r2, r0, #0 ldr r3, _0221D740 ; =0x0030BFFE bl MOD13_0221DF9C cmp r0, #0 bne _0221D4F2 mov r0, #1 mvn r4, r0 b _0221D718 _0221D4F2: add r0, r6, #0 bl OS_CreateAlarm mov r0, #0x13 str r0, [sp] add r0, r6, #0 ldr r1, _0221D744 ; =0x000FFB10 ldr r2, [sp, #0x2c] ldr r3, _0221D748 ; =MOD13_0221DC1C bl OS_SetAlarm mov r5, #1 ldr r4, [sp, #0x30] _0221D50C: mov r0, #0xa bl OS_Sleep bl MOD13_0221AA90 ldr r1, _0221D73C ; =0x0223F870 ldr r1, [r1] cmp r0, r1 bhs _0221D5A8 ldr r0, _0221D74C ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 bne _0221D5A8 bl MOD13_0221DC64 cmp r0, #0 beq _0221D5A4 _0221D52E: cmp r0, #0x13 bhi _0221D59A add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221D540: ; jump table .short _0221D59A - _0221D540 + 1 ; case 0 .short _0221D59A - _0221D540 + 1 ; case 1 .short _0221D59A - _0221D540 + 1 ; case 2 .short _0221D59A - _0221D540 + 1 ; case 3 .short _0221D59C - _0221D540 + 1 ; case 4 .short _0221D56C - _0221D540 + 1 ; case 5 .short _0221D59A - _0221D540 + 1 ; case 6 .short _0221D59A - _0221D540 + 1 ; case 7 .short _0221D59C - _0221D540 + 1 ; case 8 .short _0221D59A - _0221D540 + 1 ; case 9 .short _0221D596 - _0221D540 + 1 ; case 10 .short _0221D59A - _0221D540 + 1 ; case 11 .short _0221D59A - _0221D540 + 1 ; case 12 .short _0221D59A - _0221D540 + 1 ; case 13 .short _0221D59A - _0221D540 + 1 ; case 14 .short _0221D59A - _0221D540 + 1 ; case 15 .short _0221D59A - _0221D540 + 1 ; case 16 .short _0221D59A - _0221D540 + 1 ; case 17 .short _0221D59C - _0221D540 + 1 ; case 18 .short _0221D568 - _0221D540 + 1 ; case 19 _0221D568: add r5, r7, #0 b _0221D59C _0221D56C: ldr r0, _0221D750 ; =0x02241B0C ldr r0, [r0] ldr r1, _0221D738 ; =0x02241B20 ldr r1, [r1] bl MOD13_0221E0A8 cmp r0, r4 ble _0221D59C add r4, r0, #0 add r0, r6, #0 bl OS_CancelAlarm mov r0, #0x13 str r0, [sp] add r0, r6, #0 ldr r1, _0221D744 ; =0x000FFB10 ldr r2, [sp, #0x34] ldr r3, _0221D748 ; =MOD13_0221DC1C bl OS_SetAlarm b _0221D59C _0221D596: ldr r5, [sp, #0x38] b _0221D59C _0221D59A: ldr r5, [sp, #0x3c] _0221D59C: bl MOD13_0221DC64 cmp r0, #0 bne _0221D52E _0221D5A4: cmp r5, #0 bne _0221D50C _0221D5A8: add r0, r6, #0 bl OS_CancelAlarm _0221D5AE: bl MOD13_0221DC64 cmp r0, #0 bne _0221D5AE ldr r0, _0221D74C ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 beq _0221D5C0 b _0221D6F0 _0221D5C0: ldr r0, [sp, #0x40] str r0, [sp, #0xc] ldr r0, _0221D738 ; =0x02241B20 ldr r0, [r0] cmp r4, r0 blt _0221D5D2 mov r0, #5 mvn r4, r0 b _0221D718 _0221D5D2: ldr r0, [sp, #0x40] str r0, [sp, #8] ldr r0, _0221D750 ; =0x02241B0C ldr r0, [r0] str r0, [sp, #0x1c] cmp r4, #0 ble _0221D66A ldr r0, [sp, #0x14] str r0, [sp, #0x20] add r0, #8 str r0, [sp, #0x20] ldr r0, [sp, #0x14] str r0, [sp, #0x24] lsl r5, r0, #0 add r5, #0x2c _0221D5F0: ldr r0, [sp, #0x20] ldr r1, [sp, #0x1c] add r1, #0xc mov r2, #0x20 bl memcpy ldr r0, [sp, #0x1c] ldrh r1, [r0, #0xa] ldr r0, [sp, #0x24] str r1, [r0, #4] ldr r0, [sp, #0x1c] ldrh r1, [r0, #0xa] ldr r0, [sp, #0x24] add r1, r0, r1 ldr r0, [sp, #0x44] strb r0, [r1, #8] ldr r0, [sp, #0x1c] ldrh r1, [r0, #0x2c] mov r0, #0x10 and r1, r0 cmp r1, #0 beq _0221D620 mov r1, #1 b _0221D622 _0221D620: ldr r1, [sp, #0x44] _0221D622: ldr r0, [sp, #0x24] strh r1, [r0, #0x32] ldr r0, [sp, #0x1c] add r0, r0, #4 ldr r1, [sp, #0x1c] ldrb r1, [r1, #4] strb r1, [r5] ldrb r1, [r0, #1] strb r1, [r5, #1] ldrb r1, [r0, #2] strb r1, [r5, #2] ldrb r1, [r0, #3] strb r1, [r5, #3] ldrb r1, [r0, #4] strb r1, [r5, #4] ldrb r0, [r0, #5] strb r0, [r5, #5] ldr r0, [sp, #0x20] add r0, #0x30 str r0, [sp, #0x20] ldr r0, [sp, #0x24] add r0, #0x30 str r0, [sp, #0x24] add r5, #0x30 ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] ldr r0, [sp, #0x1c] add r0, #0xc0 str r0, [sp, #0x1c] ldr r0, [sp, #8] cmp r0, r4 blt _0221D5F0 _0221D66A: ldr r0, [sp, #0x14] str r4, [r0] ldr r0, _0221D754 ; =0x02241AE8 ldr r0, [r0] cmp r0, #1 beq _0221D6C6 ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] add r2, sp, #0x48 bl MOD13_0221D764 cmp r0, #0 beq _0221D6C6 ldr r3, [sp, #0x48] ldr r0, [sp, #0x14] add r2, r0, #4 mov r0, #0x30 add r1, r3, #0 mul r1, r0 add r4, r2, r1 ldr r0, _0221D758 ; =0x02241AC8 str r3, [r0] ldr r0, _0221D75C ; =0x02241BC4 add r1, r4, #4 bl strcpy ldr r1, _0221D760 ; =0x02241B3C add r0, r4, #0 add r0, #0x28 add r4, #0x28 ldrb r2, [r4] strb r2, [r1] ldrb r2, [r0, #1] strb r2, [r1, #1] ldrb r2, [r0, #2] strb r2, [r1, #2] ldrb r2, [r0, #3] strb r2, [r1, #3] ldrb r2, [r0, #4] strb r2, [r1, #4] ldrb r0, [r0, #5] strb r0, [r1, #5] add r0, sp, #0x4c bl MOD13_0221A9D8 b _0221D6F0 _0221D6C6: ldr r0, [sp, #0x18] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] bl memcpy mov r1, #2 ldr r0, _0221D754 ; =0x02241AE8 str r1, [r0] bl MOD13_0221A778 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] _0221D6E0: ldr r0, [sp, #4] cmp r0, #0x1e bge _0221D6F0 ldr r0, _0221D74C ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 bne _0221D6F0 b _0221D4CE _0221D6F0: ldr r0, [sp, #4] cmp r0, #0x1e bge _0221D702 bl MOD13_0221AA90 ldr r1, _0221D73C ; =0x0223F870 ldr r1, [r1] cmp r0, r1 bls _0221D708 _0221D702: mov r0, #2 mvn r4, r0 b _0221D718 _0221D708: ldr r0, _0221D74C ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 beq _0221D716 mov r0, #7 mvn r4, r0 b _0221D718 _0221D716: mov r4, #1 _0221D718: ldr r0, [sp, #0x14] cmp r0, #0 beq _0221D722 bl MOD13_0221AA50 _0221D722: ldr r0, [sp, #0x18] cmp r0, #0 beq _0221D72C bl MOD13_0221AA50 _0221D72C: add r0, r4, #0 add sp, #0x9c pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221D738: .word 0x02241B20 _0221D73C: .word 0x0223F870 _0221D740: .word 0x0030BFFE _0221D744: .word 0x000FFB10 _0221D748: .word MOD13_0221DC1C _0221D74C: .word 0x02241AC0 _0221D750: .word 0x02241B0C _0221D754: .word 0x02241AE8 _0221D758: .word 0x02241AC8 _0221D75C: .word 0x02241BC4 _0221D760: .word 0x02241B3C thumb_func_start MOD13_0221D764 MOD13_0221D764: ; 0x0221D764 push {r4, r5, r6, r7, lr} sub sp, #0x74 str r0, [sp] str r1, [sp, #4] str r2, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp] add r5, r0, #4 lsl r0, r1, #0 add r4, r0, #4 ldr r0, [sp, #0xc] str r0, [sp, #0x20] ldr r0, [sp] ldr r0, [r0] cmp r0, #0 bls _0221D832 ldr r0, [sp, #0xc] str r0, [sp, #0x28] str r0, [sp, #0x24] _0221D78E: add r2, sp, #0x30 mov r1, #0x22 _0221D792: ldr r0, [sp, #0x24] strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221D792 add r0, sp, #0x30 add r1, r5, #4 mov r2, #0x20 bl memcpy ldr r2, [r5] ldr r1, [sp, #0x28] add r0, sp, #0x30 strb r1, [r0, r2] lsl r7, r1, #0 ldr r0, [sp, #4] ldr r0, [r0] str r0, [sp, #0x1c] cmp r0, #0 bls _0221D816 ldr r6, [r5] _0221D7BE: cmp r6, #0 beq _0221D816 cmp r6, #0x20 bhi _0221D816 cmp r6, #1 bne _0221D7D4 ldrb r0, [r5, #4] cmp r0, #0 beq _0221D816 cmp r0, #0x20 beq _0221D816 _0221D7D4: add r0, sp, #0x30 bl strlen add r2, r0, #0 add r0, sp, #0x30 add r1, r4, #4 bl memcmp cmp r0, #0 bne _0221D80C add r0, r5, #0 add r0, #0x28 add r1, r4, #0 add r1, #0x28 mov r2, #4 bl memcmp cmp r0, #0 bne _0221D80C ldrh r1, [r5, #0x2e] ldrh r0, [r4, #0x2e] cmp r1, r0 beq _0221D80C cmp r1, #0 bne _0221D80C mov r0, #1 str r0, [sp, #0xc] b _0221D816 _0221D80C: add r4, #0x30 add r7, r7, #1 ldr r0, [sp, #0x1c] cmp r7, r0 blo _0221D7BE _0221D816: ldr r0, [sp, #0xc] cmp r0, #0 bne _0221D832 add r5, #0x30 ldr r0, [sp, #4] add r4, r0, #4 ldr r0, [sp, #0x20] add r0, r0, #1 str r0, [sp, #0x20] ldr r0, [sp] ldr r1, [r0] ldr r0, [sp, #0x20] cmp r0, r1 blo _0221D78E _0221D832: ldr r0, [sp, #0xc] cmp r0, #0 bne _0221D91A add r2, sp, #0x50 add r2, #2 mov r1, #0x22 mov r0, #0 _0221D840: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 cmp r1, #0 bne _0221D840 mov r0, #0 str r0, [sp, #0x14] str r0, [sp, #0x18] ldr r0, [sp] add r5, r0, #4 ldr r0, [sp, #4] add r4, r0, #4 ldr r6, [sp, #0x14] ldr r0, [r0] cmp r0, #0 bls _0221D8A0 add r7, sp, #0x50 add r7, #2 _0221D864: add r0, r7, #0 add r1, r4, #4 mov r2, #0x20 bl memcpy ldr r1, [r4] ldr r0, [sp, #0x14] strb r0, [r7, r1] ldr r0, _0221D934 ; =0x0223F878 bl strlen add r2, r0, #0 add r0, r7, #0 ldr r1, _0221D934 ; =0x0223F878 bl memcmp cmp r0, #0 bne _0221D894 ldrh r0, [r4, #0x2e] cmp r0, #0 bne _0221D894 mov r0, #1 str r0, [sp, #0x18] b _0221D8A0 _0221D894: add r4, #0x30 add r6, r6, #1 ldr r0, [sp, #4] ldr r0, [r0] cmp r6, r0 blo _0221D864 _0221D8A0: mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp] ldr r0, [r0] cmp r0, #0 bls _0221D90A ldr r7, _0221D934 ; =0x0223F878 add r4, sp, #0x50 add r4, #2 ldr r0, [sp, #0x20] str r0, [sp, #0x2c] _0221D8B6: add r0, r4, #0 add r1, r5, #4 mov r2, #0x20 bl memcpy ldr r1, [r5] ldr r0, [sp, #0x2c] strb r0, [r4, r1] add r0, r4, #0 bl strlen add r6, r0, #0 add r0, r7, #0 bl strlen cmp r6, r0 bne _0221D8F8 add r0, r7, #0 bl strlen add r2, r0, #0 add r0, r4, #0 add r1, r7, #0 bl memcmp cmp r0, #0 bne _0221D8F8 ldrh r0, [r5, #0x2e] cmp r0, #0 bne _0221D8F8 mov r0, #1 str r0, [sp, #0x14] b _0221D90A _0221D8F8: add r5, #0x30 ldr r0, [sp, #0x20] add r0, r0, #1 str r0, [sp, #0x20] ldr r0, [sp] ldr r1, [r0] ldr r0, [sp, #0x20] cmp r0, r1 blo _0221D8B6 _0221D90A: ldr r0, [sp, #0x14] cmp r0, #0 beq _0221D91A ldr r0, [sp, #0x18] cmp r0, #0 bne _0221D91A mov r0, #1 str r0, [sp, #0xc] _0221D91A: ldr r0, [sp, #0xc] cmp r0, #0 beq _0221D92A ldr r1, [sp, #0x20] ldr r0, [sp, #8] str r1, [r0] mov r0, #1 str r0, [sp, #0x10] _0221D92A: ldr r0, [sp, #0x10] add sp, #0x74 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221D934: .word 0x0223F878 thumb_func_start MOD13_0221D938 MOD13_0221D938: ; 0x0221D938 push {r4, r5, r6, lr} mov r5, #1 ldr r0, _0221D998 ; =0x02241AD0 ldr r0, [r0] cmp r0, #0 beq _0221D982 bl MOD13_0221DF5C cmp r0, #0 beq _0221D97C mov r4, #0 mov r6, #0xa _0221D950: add r0, r6, #0 bl OS_Sleep bl MOD13_0221DC64 cmp r0, #0 beq _0221D978 _0221D95E: cmp r0, #4 beq _0221D970 cmp r0, #5 beq _0221D970 cmp r0, #0xe bne _0221D96E add r5, r4, #0 b _0221D970 _0221D96E: add r5, r4, #0 _0221D970: bl MOD13_0221DC64 cmp r0, #0 bne _0221D95E _0221D978: cmp r5, #0 bne _0221D950 _0221D97C: mov r1, #0 ldr r0, _0221D998 ; =0x02241AD0 str r1, [r0] _0221D982: ldr r0, _0221D99C ; =0x02241AD4 ldr r1, [r0] cmp r1, #0 beq _0221D992 mov r1, #0 str r1, [r0] bl THUNK_FUN_02099BC8 _0221D992: pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _0221D998: .word 0x02241AD0 _0221D99C: .word 0x02241AD4 thumb_func_start MOD13_0221D9A0 MOD13_0221D9A0: ; 0x0221D9A0 push {r4, r5, r6, r7, lr} sub sp, #0x34 mov r5, #1 mvn r6, r5 ldr r0, _0221DACC ; =0x02241B0C ldr r2, [r0] ldr r0, _0221DAD0 ; =0x02241AC8 ldr r1, [r0] mov r0, #0xc0 mul r1, r0 add r7, r2, r1 cmp r7, #0 bne _0221D9C4 mov r0, #0 add sp, #0x34 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221D9C4: add r0, r7, #0 mov r1, #0 ldr r2, _0221DAD4 ; =0x00030000 bl MOD13_0221DE44 cmp r0, #0 bne _0221D9DE lsl r0, r5, #0 mvn r0, r0 add sp, #0x34 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221D9DE: add r0, sp, #8 bl OS_CreateAlarm mov r0, #0x12 str r0, [sp] add r0, sp, #8 ldr r1, _0221DAD8 ; =0x003FEC42 mov r2, #0 ldr r3, _0221DADC ; =MOD13_0221DC1C bl OS_SetAlarm mov r4, #0 mov r0, #7 mvn r0, r0 str r0, [sp, #4] _0221D9FC: bl MOD13_0221AA90 ldr r1, _0221DAE0 ; =0x0223F870 ldr r1, [r1] cmp r0, r1 blo _0221DA0E mov r0, #2 mvn r6, r0 b _0221DA94 _0221DA0E: ldr r0, _0221DAE4 ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 beq _0221DA1C mov r0, #7 mvn r6, r0 b _0221DA94 _0221DA1C: mov r0, #0xa bl OS_Sleep bl MOD13_0221DC64 cmp r0, #0 beq _0221DA90 _0221DA2A: cmp r0, #0xc bgt _0221DA44 cmp r0, #0xc bge _0221DA5A cmp r0, #5 bgt _0221DA86 cmp r0, #4 blt _0221DA86 cmp r0, #4 beq _0221DA88 cmp r0, #5 beq _0221DA88 b _0221DA86 _0221DA44: cmp r0, #0x13 bgt _0221DA86 cmp r0, #0xd blt _0221DA86 cmp r0, #0xd beq _0221DA60 cmp r0, #0x12 beq _0221DA88 cmp r0, #0x13 beq _0221DA88 b _0221DA86 _0221DA5A: add r5, r4, #0 mov r6, #1 b _0221DA88 _0221DA60: ldr r0, _0221DAE4 ; =0x02241AC0 ldr r0, [r0] cmp r0, #0 beq _0221DA6E add r5, r4, #0 ldr r6, [sp, #4] b _0221DA88 _0221DA6E: add r0, r7, #0 add r1, r4, #0 ldr r2, _0221DAD4 ; =0x00030000 bl MOD13_0221DE44 cmp r0, #0 bne _0221DA88 add r0, r6, #0 add sp, #0x34 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DA86: add r5, r4, #0 _0221DA88: bl MOD13_0221DC64 cmp r0, #0 bne _0221DA2A _0221DA90: cmp r5, #0 bne _0221D9FC _0221DA94: add r0, sp, #8 bl OS_CancelAlarm _0221DA9A: bl MOD13_0221DC64 cmp r0, #0 bne _0221DA9A cmp r6, #0 ble _0221DAC2 mov r1, #1 ldr r0, _0221DAE8 ; =0x02241AD0 str r1, [r0] ldr r0, _0221DAEC ; =0x0223F8D4 bl FUN_0209A2C0 cmp r0, #0 bge _0221DABC mov r0, #1 mvn r6, r0 b _0221DAC2 _0221DABC: mov r1, #1 ldr r0, _0221DAF0 ; =0x02241AD4 str r1, [r0] _0221DAC2: add r0, r6, #0 add sp, #0x34 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221DACC: .word 0x02241B0C _0221DAD0: .word 0x02241AC8 _0221DAD4: .word 0x00030000 _0221DAD8: .word 0x003FEC42 _0221DADC: .word MOD13_0221DC1C _0221DAE0: .word 0x0223F870 _0221DAE4: .word 0x02241AC0 _0221DAE8: .word 0x02241AD0 _0221DAEC: .word 0x0223F8D4 _0221DAF0: .word 0x02241AD4 thumb_func_start MOD13_0221DAF4 MOD13_0221DAF4: ; 0x0221DAF4 push {r4, r5, r6, lr} mov r5, #1 bl MOD13_0221DEF4 cmp r0, #0 beq _0221DB30 mov r4, #0 mov r6, #0xa _0221DB04: add r0, r6, #0 bl OS_Sleep bl MOD13_0221DC64 cmp r0, #0 beq _0221DB2C _0221DB12: cmp r0, #4 beq _0221DB24 cmp r0, #5 beq _0221DB24 cmp r0, #0x14 bne _0221DB22 add r5, r4, #0 b _0221DB24 _0221DB22: add r5, r4, #0 _0221DB24: bl MOD13_0221DC64 cmp r0, #0 bne _0221DB12 _0221DB2C: cmp r5, #0 bne _0221DB04 _0221DB30: ldr r0, _0221DB4C ; =0x02241B04 ldr r0, [r0] cmp r0, #0 beq _0221DB44 ldr r1, _0221DB50 ; =0x02241ABC ldr r1, [r1] blx r1 mov r1, #0 ldr r0, _0221DB4C ; =0x02241B04 str r1, [r0] _0221DB44: mov r0, #1 pop {r4, r5, r6} pop {r3} bx r3 .align 2, 0 _0221DB4C: .word 0x02241B04 _0221DB50: .word 0x02241ABC thumb_func_start MOD13_0221DB54 MOD13_0221DB54: ; 0x0221DB54 push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 mov r5, #1 ldr r0, _0221DBFC ; =0x02241B20 str r6, [r0] bl MOD13_0221DCA4 mov r0, #0xd0 add r7, r6, #0 mul r7, r0 ldr r0, _0221DC00 ; =0x000024D0 add r1, r7, r0 mov r0, #0xc0 mul r6, r0 add r0, r1, r6 ldr r1, _0221DC04 ; =0x02241AB4 ldr r1, [r1] blx r1 ldr r1, _0221DC08 ; =0x02241B04 str r0, [r1] cmp r0, #0 bne _0221DB8E mov r0, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DB8E: mov r3, #0x1f add r1, r0, r3 bic r1, r3 ldr r0, _0221DC0C ; =0x02241AF0 str r1, [r0] ldr r0, _0221DC10 ; =0x00002490 add r2, r7, r0 add r0, r1, r2 add r6, r0, r3 bic r6, r3 ldr r0, _0221DC14 ; =0x02241B0C str r6, [r0] ldr r0, _0221DC18 ; =MOD13_0221DC28 bl MOD13_0221DD4C cmp r0, #0 bne _0221DBBC lsl r0, r5, #0 mvn r0, r0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DBBC: mov r0, #0xa bl OS_Sleep bl MOD13_0221DC64 cmp r0, #0 beq _0221DBEE mov r7, #0 mov r1, #1 mvn r6, r1 _0221DBD0: cmp r0, #4 beq _0221DBE6 cmp r0, #5 beq _0221DBE6 cmp r0, #6 bne _0221DBE2 add r5, r7, #0 mov r4, #1 b _0221DBE6 _0221DBE2: add r5, r7, #0 add r4, r6, #0 _0221DBE6: bl MOD13_0221DC64 cmp r0, #0 bne _0221DBD0 _0221DBEE: cmp r5, #0 bne _0221DBBC add r0, r4, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221DBFC: .word 0x02241B20 _0221DC00: .word 0x000024D0 _0221DC04: .word 0x02241AB4 _0221DC08: .word 0x02241B04 _0221DC0C: .word 0x02241AF0 _0221DC10: .word 0x00002490 _0221DC14: .word 0x02241B0C _0221DC18: .word MOD13_0221DC28 thumb_func_start MOD13_0221DC1C MOD13_0221DC1C: ; 0x0221DC1C mov r1, #0 ldr r3, _0221DC24 ; =MOD13_0221DC28 bx r3 nop _0221DC24: .word MOD13_0221DC28 thumb_func_start MOD13_0221DC28 MOD13_0221DC28: ; 0x0221DC28 push {r4} sub sp, #4 ldr r1, _0221DC58 ; =0x02241B1C ldr r2, [r1] ldr r1, _0221DC5C ; =0x02241B18 ldr r3, [r1] add r4, r3, #1 cmp r4, r2 beq _0221DC50 add r2, r2, #3 cmp r3, r2 beq _0221DC50 lsl r3, r3, #2 ldr r2, _0221DC60 ; =0x02241B4C str r0, [r2, r3] str r4, [r1] cmp r4, #4 blt _0221DC50 mov r0, #0 str r0, [r1] _0221DC50: add sp, #4 pop {r4} bx lr nop _0221DC58: .word 0x02241B1C _0221DC5C: .word 0x02241B18 _0221DC60: .word 0x02241B4C thumb_func_start MOD13_0221DC64 MOD13_0221DC64: ; 0x0221DC64 push {r4, lr} bl OS_DisableInterrupts ldr r3, _0221DC98 ; =0x02241B1C ldr r1, [r3] ldr r2, _0221DC9C ; =0x02241B18 ldr r2, [r2] cmp r2, r1 bne _0221DC7A mov r4, #0 b _0221DC8C _0221DC7A: lsl r4, r1, #2 ldr r2, _0221DCA0 ; =0x02241B4C ldr r4, [r2, r4] add r1, r1, #1 str r1, [r3] cmp r1, #4 blt _0221DC8C mov r1, #0 str r1, [r3] _0221DC8C: bl OS_RestoreInterrupts add r0, r4, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _0221DC98: .word 0x02241B1C _0221DC9C: .word 0x02241B18 _0221DCA0: .word 0x02241B4C thumb_func_start MOD13_0221DCA4 MOD13_0221DCA4: ; 0x0221DCA4 push {lr} sub sp, #4 bl OS_DisableInterrupts mov r3, #0 ldr r1, _0221DCCC ; =0x02241B18 str r3, [r1] ldr r1, _0221DCD0 ; =0x02241B1C str r3, [r1] ldr r2, _0221DCD4 ; =0x02241B4C add r1, r3, #0 _0221DCBA: stmia r2!, {r1} add r3, r3, #1 cmp r3, #4 blt _0221DCBA bl OS_RestoreInterrupts add sp, #4 pop {r3} bx r3 .align 2, 0 _0221DCCC: .word 0x02241B18 _0221DCD0: .word 0x02241B1C _0221DCD4: .word 0x02241B4C thumb_func_start MOD13_0221DCD8 MOD13_0221DCD8: ; 0x0221DCD8 push {r4, lr} add r4, r1, #0 cmp r4, #0 beq _0221DCF8 cmp r2, #0 ble _0221DCF8 ldr r0, _0221DD00 ; =0x02241B6C bl OS_LockMutex add r0, r4, #0 ldr r1, _0221DD04 ; =0x02241ABC ldr r1, [r1] blx r1 ldr r0, _0221DD00 ; =0x02241B6C bl OS_UnlockMutex _0221DCF8: pop {r4} pop {r3} bx r3 nop _0221DD00: .word 0x02241B6C _0221DD04: .word 0x02241ABC thumb_func_start MOD13_0221DD08 MOD13_0221DD08: ; 0x0221DD08 push {r4, lr} add r4, r1, #0 cmp r4, #0 ble _0221DD2E ldr r0, _0221DD38 ; =0x02241B6C bl OS_LockMutex add r0, r4, #0 ldr r1, _0221DD3C ; =0x02241AB4 ldr r1, [r1] blx r1 add r4, r0, #0 ldr r0, _0221DD38 ; =0x02241B6C bl OS_UnlockMutex add r0, r4, #0 pop {r4} pop {r3} bx r3 _0221DD2E: mov r0, #0 pop {r4} pop {r3} bx r3 nop _0221DD38: .word 0x02241B6C _0221DD3C: .word 0x02241AB4 thumb_func_start MOD13_0221DD40 MOD13_0221DD40: ; 0x0221DD40 ldr r0, _0221DD48 ; =0x02241ADC ldr r0, [r0] bx lr nop _0221DD48: .word 0x02241ADC thumb_func_start MOD13_0221DD4C MOD13_0221DD4C: ; 0x0221DD4C push {r4, r5, r6, r7, lr} sub sp, #4 add r6, r0, #0 add r5, r1, #0 add r7, r2, #0 bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221DE20 ; =0x02241AD8 str r5, [r0] add r2, r5, #0 add r2, #0x63 mov r0, #3 bic r2, r0 ldr r0, _0221DE24 ; =0x02241AB8 str r2, [r0] add r1, r2, #0 add r1, #0x2f mov r3, #0x1f bic r1, r3 ldr r3, _0221DE28 ; =0x02241AEC str r1, [r3] ldr r3, _0221DE2C ; =0x0000231F add r1, r1, r3 mov r3, #0x1f bic r1, r3 ldr r3, _0221DE30 ; =0x02241AFC str r1, [r3] add r1, #0xdf mov r3, #0x1f bic r1, r3 str r1, [r2, #4] ldr r1, [r0] add r3, r5, r7 ldr r2, [r1, #4] sub r2, r3, r2 str r2, [r1, #8] mov r2, #0 ldr r1, [r0] str r2, [r1, #0xc] ldr r1, [r0] mov r0, #3 str r0, [r1] ldr r0, _0221DE34 ; =0x02241B30 str r6, [r0] ldr r0, _0221DE38 ; =0x02241ADC ldr r0, [r0] cmp r0, #0 bne _0221DDD2 ldr r0, _0221DE28 ; =0x02241AEC ldr r0, [r0] ldr r1, _0221DE3C ; =0x00002300 bl FUN_020A7E80 cmp r0, #0 beq _0221DDCC add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DDCC: mov r1, #1 ldr r0, _0221DE38 ; =0x02241ADC str r1, [r0] _0221DDD2: ldr r0, _0221DE38 ; =0x02241ADC ldr r0, [r0] cmp r0, #1 bne _0221DE0E ldr r0, _0221DE24 ; =0x02241AB8 ldr r0, [r0] ldr r1, _0221DE40 ; =MOD13_0221E178 bl FUN_020A7BD4 cmp r0, #3 beq _0221DDF8 add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DDF8: mov r1, #4 ldr r0, _0221DE38 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DE0E: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221DE20: .word 0x02241AD8 _0221DE24: .word 0x02241AB8 _0221DE28: .word 0x02241AEC _0221DE2C: .word 0x0000231F _0221DE30: .word 0x02241AFC _0221DE34: .word 0x02241B30 _0221DE38: .word 0x02241ADC _0221DE3C: .word 0x00002300 _0221DE40: .word MOD13_0221E178 thumb_func_start MOD13_0221DE44 MOD13_0221DE44: ; 0x0221DE44 push {r4, r5, r6, r7, lr} sub sp, #4 add r7, r0, #0 add r5, r1, #0 add r6, r2, #0 bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221DEE4 ; =0x02241B08 str r6, [r0] cmp r5, #0 beq _0221DE6A add r0, r5, #0 ldr r1, _0221DEE8 ; =0x02241AD8 ldr r1, [r1] mov r2, #0x60 bl MI_CpuCopy8 b _0221DE76 _0221DE6A: ldr r0, _0221DEE8 ; =0x02241AD8 ldr r0, [r0] mov r1, #0 mov r2, #0x60 bl MI_CpuFill8 _0221DE76: add r0, r7, #0 ldr r1, _0221DEEC ; =0x02241AFC ldr r1, [r1] mov r2, #0xc0 bl MIi_CpuCopy32 bl MOD13_0221E0F4 cmp r0, #1 bne _0221DEA0 mov r1, #8 ldr r0, _0221DEF0 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DEA0: ldr r0, _0221DEF0 ; =0x02241ADC ldr r0, [r0] cmp r0, #3 bne _0221DED2 ldr r0, _0221DEEC ; =0x02241AFC ldr r0, [r0] ldr r1, _0221DEE8 ; =0x02241AD8 ldr r1, [r1] ldr r2, _0221DEE4 ; =0x02241B08 ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221DED2 mov r1, #8 ldr r0, _0221DEF0 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221DED2: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 nop _0221DEE4: .word 0x02241B08 _0221DEE8: .word 0x02241AD8 _0221DEEC: .word 0x02241AFC _0221DEF0: .word 0x02241ADC thumb_func_start MOD13_0221DEF4 MOD13_0221DEF4: ; 0x0221DEF4 push {r4, lr} bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221DF58 ; =0x02241ADC ldr r0, [r0] cmp r0, #3 bne _0221DF2E bl FUN_020A7AC8 cmp r0, #3 beq _0221DF1A add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 _0221DF1A: mov r1, #2 ldr r0, _0221DF58 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221DF2E: bl MOD13_0221E0F4 cmp r0, #1 bne _0221DF4A mov r1, #2 ldr r0, _0221DF58 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221DF4A: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 .align 2, 0 _0221DF58: .word 0x02241ADC thumb_func_start MOD13_0221DF5C MOD13_0221DF5C: ; 0x0221DF5C push {r4, lr} bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _0221DF98 ; =0x02241ADC ldr r0, [r0] cmp r0, #7 bne _0221DF88 bl FUN_020A7488 cmp r0, #3 bne _0221DF88 mov r1, #4 ldr r0, _0221DF98 ; =0x02241ADC str r1, [r0] add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r4} pop {r3} bx r3 _0221DF88: add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #0 pop {r4} pop {r3} bx r3 nop _0221DF98: .word 0x02241ADC thumb_func_start MOD13_0221DF9C MOD13_0221DF9C: ; 0x0221DF9C push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 str r3, [sp] bl OS_DisableInterrupts add r7, r0, #0 ldr r1, _0221E088 ; =0x02241B10 ldr r0, [sp] str r0, [r1] ldr r0, _0221E08C ; =0x02241B44 ldr r1, _0221E090 ; =0x02241AF4 str r0, [r1] cmp r5, #0 beq _0221DFD0 mov r2, #0 _0221DFC0: ldrb r1, [r5] add r5, r5, #1 strb r1, [r0] add r0, r0, #1 add r2, r2, #1 cmp r2, #6 blt _0221DFC0 b _0221DFDE _0221DFD0: mov r1, #0xff mov r2, #6 bl MI_CpuFill8 ldr r1, _0221E094 ; =0x020FF590 ldr r0, _0221E090 ; =0x02241AF4 str r1, [r0] _0221DFDE: ldr r2, _0221E098 ; =0x02241BA4 ldr r0, _0221E09C ; =0x02241AF8 str r2, [r0] cmp r4, #0 beq _0221E01A cmp r6, #0 ble _0221E01A cmp r6, #0x20 bge _0221E01A mov r1, #0 cmp r6, #0 ble _0221E004 _0221DFF6: ldrb r0, [r4] add r4, r4, #1 strb r0, [r2] add r2, r2, #1 add r1, r1, #1 cmp r1, r6 blt _0221DFF6 _0221E004: cmp r1, #0x20 bge _0221E02A ldr r0, _0221E098 ; =0x02241BA4 add r2, r0, r1 mov r0, #0 _0221E00E: strb r0, [r2] add r2, r2, #1 add r1, r1, #1 cmp r1, #0x20 blt _0221E00E b _0221E02A _0221E01A: ldr r0, _0221E098 ; =0x02241BA4 mov r1, #0xff mov r2, #0x20 bl MI_CpuFill8 ldr r1, _0221E0A0 ; =0x020FF598 ldr r0, _0221E09C ; =0x02241AF8 str r1, [r0] _0221E02A: ldr r0, _0221E0A4 ; =0x02241ADC ldr r0, [r0] cmp r0, #3 bne _0221E05A ldr r0, _0221E08C ; =0x02241B44 ldr r1, _0221E09C ; =0x02241AF8 ldr r1, [r1] ldr r2, _0221E088 ; =0x02241B10 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221E078 mov r1, #6 ldr r0, _0221E0A4 ; =0x02241ADC str r1, [r0] add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221E05A: bl MOD13_0221E0F4 cmp r0, #1 bne _0221E078 mov r1, #6 ldr r0, _0221E0A4 ; =0x02241ADC str r1, [r0] add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #1 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 _0221E078: add r0, r7, #0 bl OS_RestoreInterrupts mov r0, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 _0221E088: .word 0x02241B10 _0221E08C: .word 0x02241B44 _0221E090: .word 0x02241AF4 _0221E094: .word 0x020FF590 _0221E098: .word 0x02241BA4 _0221E09C: .word 0x02241AF8 _0221E0A0: .word 0x020FF598 _0221E0A4: .word 0x02241ADC thumb_func_start MOD13_0221E0A8 MOD13_0221E0A8: ; 0x0221E0A8 push {r4, r5, r6, r7, lr} sub sp, #4 add r5, r0, #0 add r7, r1, #0 mov r0, #1 bl FUN_020A83D0 bl FUN_020A846C add r6, r0, #0 cmp r6, #0 ble _0221E0E2 mov r4, #0 cmp r6, #0 ble _0221E0E2 _0221E0C6: cmp r4, r7 bge _0221E0E2 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_020A8358 add r1, r5, #0 mov r2, #0xc0 bl MIi_CpuCopy32 add r4, r4, #1 add r5, #0xc0 cmp r4, r6 blt _0221E0C6 _0221E0E2: mov r0, #0 bl FUN_020A83D0 add r0, r6, #0 add sp, #4 pop {r4, r5, r6, r7} pop {r3} bx r3 .align 2, 0 thumb_func_start MOD13_0221E0F4 MOD13_0221E0F4: ; 0x0221E0F4 push {lr} sub sp, #4 ldr r0, _0221E16C ; =0x02241ADC ldr r0, [r0] cmp r0, #8 bhi _0221E15C add r0, r0, r0 add r0, pc ldrh r0, [r0, #8] lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, pc bx r0 _0221E10E: ; jump table .short _0221E15C - _0221E10E + 1 ; case 0 .short _0221E146 - _0221E10E + 1 ; case 1 .short _0221E15C - _0221E10E + 1 ; case 2 .short _0221E15C - _0221E10E + 1 ; case 3 .short _0221E15C - _0221E10E + 1 ; case 4 .short _0221E120 - _0221E10E + 1 ; case 5 .short _0221E15C - _0221E10E + 1 ; case 6 .short _0221E136 - _0221E10E + 1 ; case 7 .short _0221E15C - _0221E10E + 1 ; case 8 _0221E120: mov r0, #0 add r1, r0, #0 add r2, r0, #0 bl FUN_020A7A90 cmp r0, #3 beq _0221E164 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221E136: bl FUN_020A7488 cmp r0, #3 beq _0221E164 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221E146: ldr r0, _0221E170 ; =0x02241AB8 ldr r0, [r0] ldr r1, _0221E174 ; =MOD13_0221E178 bl FUN_020A7BD4 cmp r0, #3 beq _0221E164 mov r0, #0 add sp, #4 pop {r3} bx r3 _0221E15C: mov r0, #0 add sp, #4 pop {r3} bx r3 _0221E164: mov r0, #1 add sp, #4 pop {r3} bx r3 .align 2, 0 _0221E16C: .word 0x02241ADC _0221E170: .word 0x02241AB8 _0221E174: .word MOD13_0221E178 thumb_func_start MOD13_0221E178 MOD13_0221E178: ; 0x0221E178 push {lr} sub sp, #4 cmp r0, #0 bne _0221E182 b _0221E556 _0221E182: mov r1, #0 ldrsh r2, [r0, r1] cmp r2, #9 bls _0221E18C b _0221E548 _0221E18C: add r2, r2, r2 add r2, pc ldrh r2, [r2, #8] lsl r2, r2, #0x10 asr r2, r2, #0x10 add r2, pc bx r2 _0221E19A: ; jump table .short _0221E548 - _0221E19A + 1 ; case 0 .short _0221E1AE - _0221E19A + 1 ; case 1 .short _0221E4A0 - _0221E19A + 1 ; case 2 .short _0221E25E - _0221E19A + 1 ; case 3 .short _0221E2E6 - _0221E19A + 1 ; case 4 .short _0221E2A2 - _0221E19A + 1 ; case 5 .short _0221E3C0 - _0221E19A + 1 ; case 6 .short _0221E4E4 - _0221E19A + 1 ; case 7 .short _0221E4FE - _0221E19A + 1 ; case 8 .short _0221E510 - _0221E19A + 1 ; case 9 _0221E1AE: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E244 ldr r0, _0221E518 ; =0x02241ADC ldr r2, [r0] cmp r2, #4 bne _0221E1D6 mov r2, #3 str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E1CC b _0221E556 _0221E1CC: mov r0, #6 blx r2 add sp, #4 pop {r3} bx r3 _0221E1D6: cmp r2, #6 bne _0221E20C ldr r0, _0221E520 ; =0x02241AF4 ldr r0, [r0] ldr r1, _0221E524 ; =0x02241AF8 ldr r1, [r1] ldr r2, _0221E528 ; =0x02241B10 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221E1F0 b _0221E556 _0221E1F0: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E200 b _0221E556 _0221E200: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E20C: cmp r2, #8 beq _0221E212 b _0221E556 _0221E212: ldr r0, _0221E52C ; =0x02241AFC ldr r0, [r0] ldr r1, _0221E530 ; =0x02241AD8 ldr r1, [r1] ldr r2, _0221E534 ; =0x02241B08 ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221E228 b _0221E556 _0221E228: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E238 b _0221E556 _0221E238: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E244: mov r3, #1 ldr r0, _0221E518 ; =0x02241ADC str r3, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r3, [r0] cmp r3, #0 bne _0221E254 b _0221E556 _0221E254: add r0, r2, #0 blx r3 add sp, #4 pop {r3} bx r3 _0221E25E: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E288 ldr r0, _0221E518 ; =0x02241ADC ldr r2, [r0] cmp r2, #6 beq _0221E270 b _0221E556 _0221E270: mov r2, #5 str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E27E b _0221E556 _0221E27E: mov r0, #8 blx r2 add sp, #4 pop {r3} bx r3 _0221E288: mov r2, #3 ldr r0, _0221E518 ; =0x02241ADC str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E298 b _0221E556 _0221E298: mov r0, #9 blx r2 add sp, #4 pop {r3} bx r3 _0221E2A2: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E2CC ldr r0, _0221E518 ; =0x02241ADC ldr r2, [r0] cmp r2, #8 beq _0221E2B4 b _0221E556 _0221E2B4: mov r2, #7 str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E2C2 b _0221E556 _0221E2C2: mov r0, #0xc blx r2 add sp, #4 pop {r3} bx r3 _0221E2CC: mov r2, #3 ldr r0, _0221E518 ; =0x02241ADC str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E2DC b _0221E556 _0221E2DC: mov r0, #0xd blx r2 add sp, #4 pop {r3} bx r3 _0221E2E6: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E3A6 ldr r0, _0221E518 ; =0x02241ADC ldr r2, [r0] cmp r2, #4 bne _0221E30E mov r2, #3 str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E304 b _0221E556 _0221E304: mov r0, #0xa blx r2 add sp, #4 pop {r3} bx r3 _0221E30E: cmp r2, #6 bne _0221E344 ldr r0, _0221E520 ; =0x02241AF4 ldr r0, [r0] ldr r1, _0221E524 ; =0x02241AF8 ldr r1, [r1] ldr r2, _0221E528 ; =0x02241B10 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221E328 b _0221E556 _0221E328: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E338 b _0221E556 _0221E338: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E344: cmp r2, #2 bne _0221E36E bl FUN_020A7AC8 cmp r0, #3 bne _0221E352 b _0221E556 _0221E352: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E362 b _0221E556 _0221E362: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E36E: cmp r2, #8 beq _0221E374 b _0221E556 _0221E374: ldr r0, _0221E52C ; =0x02241AFC ldr r0, [r0] ldr r1, _0221E530 ; =0x02241AD8 ldr r1, [r1] ldr r2, _0221E534 ; =0x02241B08 ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 bne _0221E38A b _0221E556 _0221E38A: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E39A b _0221E556 _0221E39A: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E3A6: mov r2, #3 ldr r0, _0221E518 ; =0x02241ADC str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E3B6 b _0221E556 _0221E3B6: mov r0, #0xb blx r2 add sp, #4 pop {r3} bx r3 _0221E3C0: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E488 ldr r0, _0221E518 ; =0x02241ADC ldr r2, [r0] cmp r2, #4 bne _0221E3E8 mov r2, #3 str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E3DE b _0221E556 _0221E3DE: mov r0, #0xe blx r2 add sp, #4 pop {r3} bx r3 _0221E3E8: cmp r2, #6 bne _0221E41E ldr r0, _0221E520 ; =0x02241AF4 ldr r0, [r0] ldr r1, _0221E524 ; =0x02241AF8 ldr r1, [r1] ldr r2, _0221E528 ; =0x02241B10 ldr r2, [r2] bl FUN_020A7A90 cmp r0, #3 bne _0221E402 b _0221E556 _0221E402: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E412 b _0221E556 _0221E412: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E41E: cmp r2, #2 bne _0221E448 bl FUN_020A7AC8 cmp r0, #3 bne _0221E42C b _0221E556 _0221E42C: mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 bne _0221E43C b _0221E556 _0221E43C: mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E448: cmp r2, #8 bne _0221E47A ldr r0, _0221E52C ; =0x02241AFC ldr r0, [r0] ldr r1, _0221E530 ; =0x02241AD8 ldr r1, [r1] ldr r2, _0221E534 ; =0x02241B08 ldr r2, [r2] bl FUN_020A75C0 cmp r0, #3 beq _0221E556 mov r1, #3 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #2 mov r1, #0 blx r2 add sp, #4 pop {r3} bx r3 _0221E47A: cmp r2, #7 bne _0221E556 mov r1, #3 str r1, [r0] add sp, #4 pop {r3} bx r3 _0221E488: mov r2, #3 ldr r0, _0221E518 ; =0x02241ADC str r2, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #0xf blx r2 add sp, #4 pop {r3} bx r3 _0221E4A0: mov r2, #2 ldrsh r0, [r0, r2] cmp r0, #0 bne _0221E4CC ldr r0, _0221E518 ; =0x02241ADC ldr r0, [r0] cmp r0, #2 bne _0221E556 bl FUN_020A7E0C mov r1, #0 ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #0x14 blx r2 add sp, #4 pop {r3} bx r3 _0221E4CC: mov r3, #3 ldr r0, _0221E518 ; =0x02241ADC str r3, [r0] ldr r0, _0221E51C ; =0x02241B30 ldr r3, [r0] cmp r3, #0 beq _0221E556 add r0, r2, #0 blx r3 add sp, #4 pop {r3} bx r3 _0221E4E4: ldr r0, _0221E518 ; =0x02241ADC ldr r0, [r0] cmp r0, #5 bne _0221E556 ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #5 blx r2 add sp, #4 pop {r3} bx r3 _0221E4FE: ldr r0, _0221E51C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #4 blx r2 add sp, #4 pop {r3} bx r3 _0221E510: ldr r0, _0221E518 ; =0x02241ADC str r1, [r0] ldr r0, _0221E51C ; =0x02241B30 b _0221E538 .align 2, 0 _0221E518: .word 0x02241ADC _0221E51C: .word 0x02241B30 _0221E520: .word 0x02241AF4 _0221E524: .word 0x02241AF8 _0221E528: .word 0x02241B10 _0221E52C: .word 0x02241AFC _0221E530: .word 0x02241AD8 _0221E534: .word 0x02241B08 _0221E538: ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #3 blx r2 add sp, #4 pop {r3} bx r3 _0221E548: ldr r0, _0221E55C ; =0x02241B30 ldr r2, [r0] cmp r2, #0 beq _0221E556 mov r0, #1 mov r1, #0 blx r2 _0221E556: add sp, #4 pop {r3} bx r3 .align 2, 0 _0221E55C: .word 0x02241B30 .section .rodata ; 0x0223C444 .incbin "baserom.nds", 0x2237e4, 0x2828 .section .data ; 0x0223F7B8 .incbin "baserom.nds", 0x226B58, 0x17C .section .bss ; 0x02240B34 .space 0x24B0