.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD36_02254840 MOD36_02254840: ; 0x02254840 ldr r3, _02254848 ; =MOD20_02252978 ldr r0, _0225484C ; =MOD36_02254854 ldr r1, _02254850 ; =MOD36_02254990 bx r3 .align 2, 0 _02254848: .word MOD20_02252978 _0225484C: .word MOD36_02254854 _02254850: .word MOD36_02254990 thumb_func_end MOD36_02254840 thumb_func_start MOD36_02254854 MOD36_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r5, r0, #0 ldr r1, _02254898 ; =0x00005B90 mov r0, #8 add r7, r2, #0 str r3, [sp] bl FUN_02016998 add r4, r0, #0 beq _02254892 ldr r3, [sp] add r1, r6, #0 add r2, r7, #0 bl MOD36_022548A0 cmp r0, #0 beq _0225488C ldr r0, _0225489C ; =MOD36_02254938 add r1, r4, #0 mov r2, #1 bl FUN_0200CA44 cmp r0, #0 beq _0225488C str r4, [r5] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0225488C: add r0, r4, #0 bl FUN_02016A18 _02254892: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02254898: .word 0x00005B90 _0225489C: .word MOD36_02254938 thumb_func_end MOD36_02254854 thumb_func_start MOD36_022548A0 MOD36_022548A0: ; 0x022548A0 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 ldr r1, _02254904 ; =0x00005B78 str r3, [r5, #0xc] mov r0, #0 strb r0, [r5, r1] mov r6, #1 add r3, r1, #1 strb r6, [r5, r3] add r3, r1, #2 strb r0, [r5, r3] add r0, r1, #4 add r0, r5, r0 add r1, r5, #4 bl MOD36_02254E30 cmp r0, #0 beq _022548FC mov r0, #0 strb r0, [r5] strb r0, [r5, #1] strb r0, [r5, #2] strb r0, [r5, #3] add r0, r5, #4 bl MOD36_02254E10 mov r0, #8 str r0, [sp] ldr r0, _02254908 ; =0x022553E8 ldr r2, _0225490C ; =MOD36_02254980 mov r1, #3 add r3, r5, #0 bl MOD20_02254130 ldr r1, _02254910 ; =0x00005B84 mov r2, #0 str r0, [r5, r1] add r0, r1, #4 str r2, [r5, r0] sub r0, r1, #4 str r4, [r5, r0] add sp, #4 add r0, r6, #0 pop {r3, r4, r5, r6, pc} _022548FC: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _02254904: .word 0x00005B78 _02254908: .word 0x022553E8 _0225490C: .word MOD36_02254980 _02254910: .word 0x00005B84 thumb_func_end MOD36_022548A0 thumb_func_start MOD36_02254914 MOD36_02254914: ; 0x02254914 push {r4, lr} add r4, r0, #0 ldr r0, _02254930 ; =0x00005B84 ldr r0, [r4, r0] bl MOD20_02254198 ldr r0, _02254934 ; =0x00005B7C ldr r0, [r4, r0] bl MOD36_02254E78 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 _02254930: .word 0x00005B84 _02254934: .word 0x00005B7C thumb_func_end MOD36_02254914 thumb_func_start MOD36_02254938 MOD36_02254938: ; 0x02254938 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4] cmp r0, #3 bhs _02254974 ldr r1, _02254978 ; =0x00005B80 ldr r0, [r4, r1] add r1, r1, #4 ldr r1, [r4, r1] bl MOD20_02252C14 ldrb r1, [r4] add r0, r4, #0 lsl r2, r1, #2 ldr r1, _0225497C ; =0x022553F4 ldr r1, [r1, r2] blx r1 cmp r0, #0 beq _02254974 add r0, r4, #0 bl MOD36_02254914 add r0, r5, #0 bl FUN_0200CAB4 ldr r0, _02254978 ; =0x00005B80 ldr r0, [r4, r0] bl MOD20_022529A0 _02254974: pop {r3, r4, r5, pc} nop _02254978: .word 0x00005B80 _0225497C: .word 0x022553F4 thumb_func_end MOD36_02254938 thumb_func_start MOD36_02254980 MOD36_02254980: ; 0x02254980 ldr r2, _0225498C ; =0x00005B88 str r1, [r3, r2] add r1, r2, #4 str r0, [r3, r1] bx lr nop _0225498C: .word 0x00005B88 thumb_func_end MOD36_02254980 thumb_func_start MOD36_02254990 MOD36_02254990: ; 0x02254990 mov r1, #1 strb r1, [r0, #2] bx lr .align 2, 0 thumb_func_end MOD36_02254990 thumb_func_start MOD36_02254998 MOD36_02254998: ; 0x02254998 ldrb r2, [r0, #2] cmp r2, #0 bne _022549A0 b _022549A2 _022549A0: mov r1, #2 _022549A2: strb r1, [r0] mov r1, #0 strb r1, [r0, #1] bx lr .align 2, 0 thumb_func_end MOD36_02254998 thumb_func_start MOD36_022549AC MOD36_022549AC: ; 0x022549AC push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #1] cmp r0, #0 beq _022549BC cmp r0, #1 beq _022549CE b _022549EC _022549BC: ldr r0, _022549F0 ; =0x00005B7C mov r1, #0 ldr r0, [r4, r0] bl MOD36_02254F0C ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _022549EC _022549CE: ldr r0, _022549F0 ; =0x00005B7C mov r1, #0 ldr r0, [r4, r0] bl MOD36_02254F30 cmp r0, #0 beq _022549EC ldr r0, _022549F4 ; =0x00005B80 ldr r0, [r4, r0] bl MOD20_0225298C add r0, r4, #0 mov r1, #1 bl MOD36_02254998 _022549EC: mov r0, #0 pop {r4, pc} .align 2, 0 _022549F0: .word 0x00005B7C _022549F4: .word 0x00005B80 thumb_func_end MOD36_022549AC thumb_func_start MOD36_022549F8 MOD36_022549F8: ; 0x022549F8 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r0, #0 ldrb r1, [r4, #2] cmp r1, #0 beq _02254A0A mov r1, #2 bl MOD36_02254998 _02254A0A: ldrb r0, [r4, #1] cmp r0, #3 bhi _02254A30 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02254A1C: ; jump table .short _02254A24 - _02254A1C - 2 ; case 0 .short _02254AF4 - _02254A1C - 2 ; case 1 .short _02254B4E - _02254A1C - 2 ; case 2 .short _02254B7C - _02254A1C - 2 ; case 3 _02254A24: ldr r0, _02254BCC ; =0x00005B80 ldr r0, [r4, r0] bl MOD20_02252C08 cmp r0, #0 beq _02254A32 _02254A30: b _02254BC4 _02254A32: ldr r1, _02254BD0 ; =0x00005B88 ldr r0, [r4, r1] cmp r0, #1 bne _02254AAE add r0, r1, #4 ldr r0, [r4, r0] cmp r0, #0 beq _02254A4C cmp r0, #1 beq _02254A82 cmp r0, #2 beq _02254A8A b _02254AA6 _02254A4C: add r0, r1, #0 mov r3, #1 sub r0, #0x10 strb r3, [r4, r0] add r0, r1, #0 mov r2, #0 sub r0, #0xf strb r2, [r4, r0] add r0, r1, #0 sub r0, #0xe sub r1, #0xc strb r3, [r4, r0] ldr r0, [r4, r1] mov r1, #5 bl MOD36_02254F0C ldr r0, _02254BD4 ; =0x00005B7C mov r1, #7 ldr r0, [r4, r0] bl MOD36_02254F0C ldr r0, _02254BD8 ; =0x00000663 bl MOD20_02252B28 mov r0, #1 strb r0, [r4, #1] b _02254AA6 _02254A82: ldr r0, _02254BDC ; =0x0000066E bl MOD20_02252B28 b _02254AA6 _02254A8A: add r0, r1, #0 mov r2, #1 sub r0, #0xe sub r1, #0xc strb r2, [r4, r0] ldr r0, [r4, r1] mov r1, #5 bl MOD36_02254F0C ldr r0, _02254BD8 ; =0x00000663 bl MOD20_02252B28 mov r0, #3 strb r0, [r4, #1] _02254AA6: ldr r0, _02254BD0 ; =0x00005B88 mov r1, #0 str r1, [r4, r0] b _02254BC4 _02254AAE: ldrb r0, [r4, #3] cmp r0, #0 beq _02254ADA add r0, r4, #0 ldr r6, [r4, #4] ldr r5, [r4, #8] bl MOD36_02254C44 cmp r0, #0 beq _02254AD4 ldr r0, [r4, #8] add r1, r6, #0 str r0, [sp] ldr r3, [r4, #4] add r0, r4, #0 add r2, r5, #0 bl MOD36_02254C90 b _02254BC4 _02254AD4: mov r0, #0 strb r0, [r4, #3] b _02254BC4 _02254ADA: add r0, r4, #0 bl MOD36_02254BE4 cmp r0, #0 beq _02254BC4 ldr r0, _02254BD4 ; =0x00005B7C mov r1, #3 ldr r0, [r4, r0] bl MOD36_02254F0C mov r0, #1 strb r0, [r4, #3] b _02254BC4 _02254AF4: ldr r1, _02254BD0 ; =0x00005B88 ldr r0, [r4, r1] cmp r0, #1 bne _02254BC4 add r0, r1, #4 ldr r0, [r4, r0] cmp r0, #0 beq _02254B0C cmp r0, #1 beq _02254B14 cmp r0, #2 bne _02254B46 _02254B0C: ldr r0, _02254BDC ; =0x0000066E bl MOD20_02252B28 b _02254B46 _02254B14: add r0, r1, #0 mov r2, #1 sub r0, #0x10 strb r2, [r4, r0] add r0, r1, #0 sub r0, #0xf strb r2, [r4, r0] add r0, r1, #0 sub r0, #0xe sub r1, #0xc strb r2, [r4, r0] ldr r0, [r4, r1] mov r1, #5 bl MOD36_02254F0C ldr r0, _02254BD4 ; =0x00005B7C mov r1, #8 ldr r0, [r4, r0] bl MOD36_02254F0C ldr r0, _02254BD8 ; =0x00000663 bl MOD20_02252B28 mov r0, #2 strb r0, [r4, #1] _02254B46: ldr r0, _02254BD0 ; =0x00005B88 mov r1, #0 str r1, [r4, r0] b _02254BC4 _02254B4E: ldr r0, _02254BD4 ; =0x00005B7C mov r1, #8 ldr r0, [r4, r0] bl MOD36_02254F30 cmp r0, #0 beq _02254BC4 ldr r0, _02254BE0 ; =0x00005B78 mov r3, #0 strb r3, [r4, r0] mov r2, #1 add r1, r0, #1 strb r2, [r4, r1] add r1, r0, #2 strb r3, [r4, r1] add r0, r0, #4 ldr r0, [r4, r0] mov r1, #5 bl MOD36_02254F0C mov r0, #0 strb r0, [r4, #1] b _02254BC4 _02254B7C: ldr r1, _02254BD0 ; =0x00005B88 ldr r0, [r4, r1] cmp r0, #2 bne _02254B9C add r0, r1, #0 mov r2, #0 sub r0, #0xe sub r1, #0xc strb r2, [r4, r0] ldr r0, [r4, r1] mov r1, #5 bl MOD36_02254F0C mov r0, #0 strb r0, [r4, #1] b _02254BC4 _02254B9C: cmp r0, #3 bne _02254BC4 mov r0, #0 sub r1, #0xe strb r0, [r4, r1] add r0, r4, #4 bl MOD36_02254E10 ldr r0, _02254BD4 ; =0x00005B7C mov r1, #5 ldr r0, [r4, r0] bl MOD36_02254F0C ldr r0, _02254BD4 ; =0x00005B7C mov r1, #6 ldr r0, [r4, r0] bl MOD36_02254F0C mov r0, #0 strb r0, [r4, #1] _02254BC4: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _02254BCC: .word 0x00005B80 _02254BD0: .word 0x00005B88 _02254BD4: .word 0x00005B7C _02254BD8: .word 0x00000663 _02254BDC: .word 0x0000066E _02254BE0: .word 0x00005B78 thumb_func_end MOD36_022549F8 thumb_func_start MOD36_02254BE4 MOD36_02254BE4: ; 0x02254BE4 push {r4, lr} sub sp, #8 add r4, r0, #0 add r0, sp, #4 add r1, sp, #0 bl MOD20_02252B68 cmp r0, #0 beq _02254C3E ldr r1, [sp, #4] ldr r2, [sp] sub r1, #0x10 sub r2, #0x10 cmp r1, #0x9b bhs _02254C06 mov r0, #1 b _02254C08 _02254C06: mov r0, #0 _02254C08: cmp r2, #0x95 bhs _02254C10 mov r3, #1 b _02254C12 _02254C10: mov r3, #0 _02254C12: tst r0, r3 beq _02254C3E lsr r3, r1, #1 lsr r1, r2, #1 add r2, r4, #0 mov r0, #0x96 add r2, #0x10 mul r0, r3 str r3, [sp, #4] str r1, [sp] add r2, r2, r0 ldrb r0, [r2, r1] cmp r0, #0 bne _02254C3E mov r0, #1 strb r0, [r2, r1] ldr r1, [sp, #4] str r1, [r4, #4] ldr r1, [sp] add sp, #8 str r1, [r4, #8] pop {r4, pc} _02254C3E: mov r0, #0 add sp, #8 pop {r4, pc} thumb_func_end MOD36_02254BE4 thumb_func_start MOD36_02254C44 MOD36_02254C44: ; 0x02254C44 push {r4, lr} sub sp, #8 add r4, r0, #0 add r0, sp, #4 add r1, sp, #0 bl MOD20_02252B68 cmp r0, #0 beq _02254C8A ldr r1, [sp, #4] ldr r2, [sp] sub r1, #0x10 sub r2, #0x10 cmp r1, #0x9b bhs _02254C66 mov r0, #1 b _02254C68 _02254C66: mov r0, #0 _02254C68: cmp r2, #0x95 bhs _02254C70 mov r3, #1 b _02254C72 _02254C70: mov r3, #0 _02254C72: tst r0, r3 beq _02254C8A lsr r1, r1, #1 lsr r0, r2, #1 str r1, [sp, #4] str r0, [sp] str r1, [r4, #4] ldr r0, [sp] add sp, #8 str r0, [r4, #8] mov r0, #1 pop {r4, pc} _02254C8A: mov r0, #0 add sp, #8 pop {r4, pc} thumb_func_end MOD36_02254C44 thumb_func_start MOD36_02254C90 MOD36_02254C90: ; 0x02254C90 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 ldr r0, [sp, #0x28] add r4, r2, #0 add r5, r1, #0 str r3, [sp] str r0, [sp, #0x28] cmp r4, r0 bne _02254CAC add r0, r3, #0 cmp r5, r0 bne _02254CAC b _02254DCC _02254CAC: ldr r0, [sp] cmp r0, r5 bls _02254CB6 sub r1, r0, r5 b _02254CB8 _02254CB6: sub r1, r5, r0 _02254CB8: ldr r0, [sp, #0x28] cmp r0, r4 bls _02254CC2 sub r2, r0, r4 b _02254CC4 _02254CC2: sub r2, r4, r0 _02254CC4: cmp r1, r2 bls _02254D46 ldr r0, [sp] cmp r0, r5 bls _02254CD4 mov r0, #1 str r0, [sp, #4] b _02254CDA _02254CD4: mov r0, #0 mvn r0, r0 str r0, [sp, #4] _02254CDA: cmp r1, #0 beq _02254CEC ldr r0, [sp, #0x28] sub r0, r0, r4 lsl r0, r0, #0xc bl _s32_div_f str r0, [sp, #0x10] b _02254CF0 _02254CEC: mov r0, #0 str r0, [sp, #0x10] _02254CF0: ldr r0, [sp, #0x10] lsl r1, r4, #0xc add r7, r1, r0 ldr r0, [sp, #4] add r5, r5, r0 ldr r0, [sp] cmp r5, r0 beq _02254DB0 mov r1, #0x96 add r0, r5, #0 mul r0, r1 add r4, r6, r0 ldr r0, [sp, #4] mul r1, r0 str r1, [sp, #0xc] _02254D0E: asr r1, r7, #0xc cmp r5, #0x9c bhs _02254D32 cmp r1, #0x96 bhs _02254D32 add r0, r4, r1 ldrb r2, [r0, #0x10] cmp r2, #0 bne _02254D32 mov r2, #0 strb r2, [r0, #0x10] str r5, [r6, #4] str r1, [r6, #8] ldr r0, _02254DD0 ; =0x00005B7C mov r1, #3 ldr r0, [r6, r0] bl MOD36_02254F0C _02254D32: ldr r0, [sp, #0xc] add r4, r4, r0 ldr r0, [sp, #4] add r5, r5, r0 ldr r0, [sp, #0x10] add r7, r7, r0 ldr r0, [sp] cmp r5, r0 bne _02254D0E b _02254DB0 _02254D46: ldr r0, [sp, #0x28] cmp r0, r4 bls _02254D50 mov r7, #1 b _02254D54 _02254D50: mov r7, #0 mvn r7, r7 _02254D54: cmp r2, #0 beq _02254D68 ldr r0, [sp] add r1, r2, #0 sub r0, r0, r5 lsl r0, r0, #0xc bl _s32_div_f str r0, [sp, #8] b _02254D6C _02254D68: mov r0, #0 str r0, [sp, #8] _02254D6C: ldr r0, [sp, #8] lsl r1, r5, #0xc add r5, r1, r0 ldr r0, [sp, #0x28] add r4, r4, r7 cmp r4, r0 beq _02254DB0 _02254D7A: asr r1, r5, #0xc cmp r4, #0x96 bhs _02254DA4 cmp r1, #0x9c bhs _02254DA4 mov r0, #0x96 mul r0, r1 add r0, r6, r0 add r0, r0, r4 ldrb r2, [r0, #0x10] cmp r2, #0 bne _02254DA4 mov r2, #1 strb r2, [r0, #0x10] str r1, [r6, #4] ldr r0, _02254DD0 ; =0x00005B7C str r4, [r6, #8] ldr r0, [r6, r0] mov r1, #3 bl MOD36_02254F0C _02254DA4: ldr r0, [sp, #8] add r4, r4, r7 add r5, r5, r0 ldr r0, [sp, #0x28] cmp r4, r0 bne _02254D7A _02254DB0: ldr r0, [sp, #0x28] cmp r0, #0x96 bhs _02254DCC ldr r0, [sp] cmp r0, #0x9c bhs _02254DCC str r0, [r6, #4] ldr r0, [sp, #0x28] mov r1, #3 str r0, [r6, #8] ldr r0, _02254DD0 ; =0x00005B7C ldr r0, [r6, r0] bl MOD36_02254F0C _02254DCC: add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _02254DD0: .word 0x00005B7C thumb_func_end MOD36_02254C90 thumb_func_start MOD36_02254DD4 MOD36_02254DD4: ; 0x02254DD4 push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #1] cmp r0, #0 beq _02254DE4 cmp r0, #1 beq _02254DF6 b _02254E06 _02254DE4: ldr r0, _02254E0C ; =0x00005B7C mov r1, #1 ldr r0, [r4, r0] bl MOD36_02254F0C ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _02254E06 _02254DF6: ldr r0, _02254E0C ; =0x00005B7C ldr r0, [r4, r0] bl MOD36_02254F3C cmp r0, #0 beq _02254E06 mov r0, #1 pop {r4, pc} _02254E06: mov r0, #0 pop {r4, pc} nop _02254E0C: .word 0x00005B7C thumb_func_end MOD36_02254DD4 thumb_func_start MOD36_02254E10 MOD36_02254E10: ; 0x02254E10 push {r4, r5} mov r4, #0 add r2, r4, #0 add r3, r4, #0 _02254E18: add r5, r3, #0 _02254E1A: add r1, r0, r5 add r5, r5, #1 strb r2, [r1, #0xc] cmp r5, #0x96 blt _02254E1A add r4, r4, #1 add r0, #0x96 cmp r4, #0x9c blt _02254E18 pop {r4, r5} bx lr thumb_func_end MOD36_02254E10 thumb_func_start MOD36_02254E30 MOD36_02254E30: ; 0x02254E30 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #8 mov r1, #0x70 bl FUN_02016998 add r4, r0, #0 beq _02254E74 add r0, #8 mov r1, #4 bl MOD20_022536F4 str r5, [r4] bl MOD20_02252D34 str r0, [r4, #4] bl MOD20_02252D24 str r0, [r4, #0x20] add r0, r4, #0 mov r1, #0 add r0, #0x68 strh r1, [r0] add r0, r4, #0 add r1, r5, #0 bl MOD36_02254E8C ldr r0, [r4, #4] cmp r0, #0 beq _02254E74 str r4, [r6] mov r0, #1 pop {r4, r5, r6, pc} _02254E74: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_end MOD36_02254E30 thumb_func_start MOD36_02254E78 MOD36_02254E78: ; 0x02254E78 push {r4, lr} add r4, r0, #0 beq _02254E88 bl MOD36_02254EE4 add r0, r4, #0 bl FUN_02016A18 _02254E88: pop {r4, pc} .align 2, 0 thumb_func_end MOD36_02254E78 thumb_func_start MOD36_02254E8C MOD36_02254E8C: ; 0x02254E8C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 mov r3, #0 str r3, [sp] mov r2, #1 add r7, r0, #0 str r2, [sp, #4] mov r0, #8 str r0, [sp, #8] mov r0, #0xc mov r1, #0x59 bl FUN_02006A34 mov r0, #8 str r0, [sp] add r0, r7, #0 add r0, #0x34 mov r1, #0xc mov r2, #0x57 mov r3, #0x58 bl MOD20_02253FBC add r0, r7, #0 str r0, [sp, #0xc] add r0, #0x34 ldr r4, _02254EE0 ; =0x02255440 mov r6, #0 add r5, r7, #0 str r0, [sp, #0xc] _02254EC6: ldr r0, [r7, #0x20] ldr r2, [sp, #0xc] add r1, r4, #0 bl MOD20_02253E74 str r0, [r5, #0x24] add r6, r6, #1 add r4, #0x10 add r5, r5, #4 cmp r6, #4 blt _02254EC6 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02254EE0: .word 0x02255440 thumb_func_end MOD36_02254E8C thumb_func_start MOD36_02254EE4 MOD36_02254EE4: ; 0x02254EE4 push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _02254EEC: ldr r1, [r5, #0x24] cmp r1, #0 beq _02254EF8 ldr r0, [r6, #0x20] bl MOD20_02253F14 _02254EF8: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _02254EEC add r6, #0x34 add r0, r6, #0 bl MOD20_02254014 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD36_02254EE4 thumb_func_start MOD36_02254F0C MOD36_02254F0C: ; 0x02254F0C push {lr} sub sp, #0xc add r2, r0, #0 add r0, #8 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] ldr r0, _02254F2C ; =0x02255480 ldr r3, [r2] bl MOD20_022537E0 add sp, #0xc pop {pc} nop _02254F2C: .word 0x02255480 thumb_func_end MOD36_02254F0C thumb_func_start MOD36_02254F30 MOD36_02254F30: ; 0x02254F30 ldr r3, _02254F38 ; =MOD20_02253794 add r0, #8 bx r3 nop _02254F38: .word MOD20_02253794 thumb_func_end MOD36_02254F30 thumb_func_start MOD36_02254F3C MOD36_02254F3C: ; 0x02254F3C ldr r3, _02254F44 ; =MOD20_022537B8 add r0, #8 bx r3 nop _02254F44: .word MOD20_022537B8 thumb_func_end MOD36_02254F3C thumb_func_start MOD36_02254F48 MOD36_02254F48: ; 0x02254F48 push {r4, lr} add r4, r0, #0 bl MOD20_022538A0 add r0, #8 add r1, r4, #0 bl MOD20_02253888 pop {r4, pc} .align 2, 0 thumb_func_end MOD36_02254F48 thumb_func_start MOD36_02254F5C MOD36_02254F5C: ; 0x02254F5C push {r3, r4, r5, r6, lr} sub sp, #0x14 mov r0, #8 add r5, r1, #0 bl FUN_02016B90 cmp r0, #0 bne _02254F70 bl ErrorHandling _02254F70: add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 ldr r0, [r4, #4] ldr r2, _0225502C ; =0x02255408 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _02255030 ; =0x02255424 mov r1, #7 mov r3, #0 bl FUN_02016C18 mov r0, #8 bl FUN_02016B90 cmp r0, #0 bne _02254F9E bl ErrorHandling _02254F9E: mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0xc mov r1, #0x56 mov r3, #6 bl FUN_0200687C add r6, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0xc mov r1, #0x55 mov r3, #6 bl FUN_020068C8 mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C mov r0, #8 bl FUN_02016B90 cmp r0, #0 bne _02254FEA bl ErrorHandling _02254FEA: add r0, r4, #0 lsr r1, r6, #5 bl MOD36_0225503C ldr r0, [r4, #4] mov r1, #7 bl FUN_02017CD0 ldr r1, _02255034 ; =0x04001000 ldr r0, _02255038 ; =0xFFFFE0FF ldr r3, [r1] ldr r2, [r1] str r3, [sp, #0x10] and r0, r2 lsl r2, r3, #0x13 lsr r3, r2, #0x1b mov r2, #0x14 orr r2, r3 lsl r2, r2, #8 orr r0, r2 str r0, [r1] add r0, r5, #0 bl MOD36_02254F48 mov r0, #8 bl FUN_02016B90 cmp r0, #0 bne _02255028 bl ErrorHandling _02255028: add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 _0225502C: .word 0x02255408 _02255030: .word 0x02255424 _02255034: .word 0x04001000 _02255038: .word 0xFFFFE0FF thumb_func_end MOD36_02254F5C thumb_func_start MOD36_0225503C MOD36_0225503C: ; 0x0225503C push {r3, r4, r5, lr} sub sp, #8 ldr r3, _02255098 ; =0x02255400 add r4, r0, #0 ldrh r5, [r3] add r0, sp, #0 add r2, sp, #0 strh r5, [r0] ldrh r5, [r3, #2] strh r5, [r0, #2] ldrh r5, [r3, #4] ldrh r3, [r3, #6] strh r5, [r0, #4] strh r3, [r0, #6] str r1, [r4, #0x58] strh r1, [r0, #6] add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x48 bl FUN_02019150 ldr r0, [r4] mov r2, #0xbe ldr r0, [r0, #8] ldr r1, [r4, #0x54] lsl r2, r2, #6 bl FUN_0208946C cmp r0, #0 bne _02255082 add r0, r4, #0 add r0, #0x48 mov r1, #4 bl FUN_02019620 _02255082: add r0, r4, #0 add r0, #0x48 bl FUN_02019270 add r4, #0x48 add r0, r4, #0 bl FUN_02019548 add sp, #8 pop {r3, r4, r5, pc} nop _02255098: .word 0x02255400 thumb_func_end MOD36_0225503C thumb_func_start MOD36_0225509C MOD36_0225509C: ; 0x0225509C push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 add r0, r5, #0 bl MOD20_022538AC cmp r0, #0 beq _022550B8 cmp r0, #1 beq _022550C4 pop {r3, r4, r5, pc} _022550B8: mov r0, #1 str r0, [r4, #0x5c] add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _022550C4: ldr r0, [r4] mov r2, #0xbe ldr r0, [r0, #8] ldr r1, [r4, #0x54] lsl r2, r2, #6 bl FUN_02089444 add r0, r4, #0 add r0, #0x48 bl FUN_02019178 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #7 bl FUN_020178A0 add r0, r5, #0 bl MOD36_02254F48 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD36_0225509C thumb_func_start MOD36_022550F4 MOD36_022550F4: ; 0x022550F4 push {r4, lr} add r4, r1, #0 add r0, r4, #0 bl MOD20_022538A0 add r0, #0x48 bl FUN_02019548 add r0, r4, #0 bl MOD36_02254F48 pop {r4, pc} thumb_func_end MOD36_022550F4 thumb_func_start MOD36_0225510C MOD36_0225510C: ; 0x0225510C push {r4, r5, r6, lr} sub sp, #8 add r6, r1, #0 add r0, r6, #0 bl MOD20_022538A0 add r4, r0, #0 ldr r1, [r4] ldr r0, [r1] lsl r2, r0, #1 ldr r0, [r1, #4] mov r1, #0x14 lsl r3, r0, #1 asr r5, r3, #3 asr r0, r2, #3 mul r1, r5 add r5, r0, r1 mov r0, #2 str r0, [sp] str r0, [sp, #4] add r0, r4, #0 lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r0, #0x48 mov r1, #1 lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_020196F4 ldr r1, [r4, #0x54] lsl r0, r5, #5 add r0, r1, r0 ldr r1, [r4, #0x58] mov r2, #0x20 add r1, r1, r5 lsl r1, r1, #5 bl GXS_LoadBG3Char add r0, r6, #0 bl MOD36_02254F48 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD36_0225510C thumb_func_start MOD36_02255164 MOD36_02255164: ; 0x02255164 push {r4, lr} add r4, r1, #0 add r0, r4, #0 bl MOD20_022538A0 add r0, #0x48 bl FUN_02019548 add r0, r4, #0 bl MOD36_02254F48 pop {r4, pc} thumb_func_end MOD36_02255164 thumb_func_start MOD36_0225517C MOD36_0225517C: ; 0x0225517C push {r4, r5, r6, lr} add r6, r1, #0 add r0, r6, #0 bl MOD20_022538A0 add r4, r0, #0 add r0, r6, #0 bl MOD20_022538A4 add r5, r0, #0 ldr r0, _022551D4 ; =0x00005B74 ldrb r0, [r5, r0] cmp r0, #0 beq _0225519C mov r1, #2 b _0225519E _0225519C: mov r1, #1 _0225519E: ldr r0, [r4, #0x28] bl MOD20_02253F28 ldr r0, _022551D8 ; =0x00005B75 ldrb r0, [r5, r0] cmp r0, #0 beq _022551B0 mov r1, #4 b _022551B2 _022551B0: mov r1, #3 _022551B2: ldr r0, [r4, #0x2c] bl MOD20_02253F28 ldr r0, _022551DC ; =0x00005B76 ldrb r0, [r5, r0] cmp r0, #0 beq _022551C4 mov r1, #6 b _022551C6 _022551C4: mov r1, #5 _022551C6: ldr r0, [r4, #0x30] bl MOD20_02253F28 add r0, r6, #0 bl MOD36_02254F48 pop {r4, r5, r6, pc} .align 2, 0 _022551D4: .word 0x00005B74 _022551D8: .word 0x00005B75 _022551DC: .word 0x00005B76 thumb_func_end MOD36_0225517C thumb_func_start MOD36_022551E0 MOD36_022551E0: ; 0x022551E0 push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 add r0, r5, #0 bl MOD20_022538A4 add r0, r4, #0 add r0, #0x48 mov r1, #4 bl FUN_02019620 add r4, #0x48 add r0, r4, #0 bl FUN_02019548 add r0, r5, #0 bl MOD36_02254F48 pop {r3, r4, r5, pc} thumb_func_end MOD36_022551E0 thumb_func_start MOD36_0225520C MOD36_0225520C: ; 0x0225520C push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 add r0, r5, #0 bl MOD20_022538A4 add r0, r5, #0 bl MOD20_022538AC cmp r0, #0 beq _02255236 ldr r1, [r4, #0x5c] cmp r1, #0 beq _02255236 add r0, r5, #0 bl MOD36_02254F48 pop {r3, r4, r5, pc} _02255236: cmp r0, #4 bls _0225523C b _0225539A _0225523C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02255248: ; jump table .short _02255252 - _02255248 - 2 ; case 0 .short _02255286 - _02255248 - 2 ; case 1 .short _022552D8 - _02255248 - 2 ; case 2 .short _02255322 - _02255248 - 2 ; case 3 .short _02255356 - _02255248 - 2 ; case 4 _02255252: add r0, r4, #0 add r0, #0x68 ldrh r0, [r0] mov r1, #0x15 lsl r1, r1, #4 add r2, r0, r1 add r0, r4, #0 add r0, #0x68 strh r2, [r0] add r0, r4, #0 add r0, #0x6a strh r1, [r0] add r1, r4, #0 add r1, #0x68 ldrh r1, [r1] ldr r0, [r4, #0x24] bl MOD20_02253FB4 mov r0, #0 str r0, [r4, #0x64] str r0, [r4, #0x60] str r0, [r4, #0x5c] add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _02255286: add r0, r4, #0 add r0, #0x68 ldrh r1, [r0] add r0, r4, #0 add r0, #0x6a ldrh r0, [r0] add r1, r1, r0 add r0, r4, #0 add r0, #0x68 strh r1, [r0] add r1, r4, #0 add r1, #0x68 ldrh r1, [r1] ldr r0, [r4, #0x24] bl MOD20_02253FB4 add r0, r4, #0 add r0, #0x6a ldrh r1, [r0] mov r0, #0x15 lsl r0, r0, #4 add r1, r1, r0 add r0, r4, #0 add r0, #0x6a strh r1, [r0] add r0, r4, #0 add r0, #0x6a mov r1, #3 ldrh r0, [r0] lsl r1, r1, #0xc cmp r0, r1 blo _0225539A add r0, r4, #0 add r0, #0x6a strh r1, [r0] mov r0, #1 str r0, [r4, #0x64] add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _022552D8: add r0, r4, #0 add r0, #0x68 ldrh r1, [r0] add r0, r4, #0 add r0, #0x6a ldrh r0, [r0] add r1, r1, r0 add r0, r4, #0 add r0, #0x68 strh r1, [r0] add r1, r4, #0 add r1, #0x68 ldrh r1, [r1] ldr r0, [r4, #0x24] bl MOD20_02253FB4 ldr r0, [r4, #0x60] cmp r0, #0 beq _0225539A bl FUN_0201BA60 mov r1, #7 and r0, r1 str r0, [r4, #0x6c] add r0, r4, #0 add r0, #0x6a ldrh r1, [r0] mov r0, #0x1a lsl r0, r0, #8 cmp r1, r0 bls _0225531A add r4, #0x6a strh r0, [r4] _0225531A: add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _02255322: add r0, r4, #0 add r0, #0x68 ldrh r1, [r0] add r0, r4, #0 add r0, #0x6a ldrh r0, [r0] add r1, r1, r0 add r0, r4, #0 add r0, #0x68 strh r1, [r0] add r1, r4, #0 add r1, #0x68 ldrh r1, [r1] ldr r0, [r4, #0x24] bl MOD20_02253FB4 ldr r0, [r4, #0x6c] cmp r0, #0 bne _0225534E sub r0, r0, #1 str r0, [r4, #0x6c] pop {r3, r4, r5, pc} _0225534E: add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _02255356: add r0, r4, #0 add r0, #0x6a ldrh r0, [r0] cmp r0, #0x50 bls _0225538E add r0, r4, #0 add r0, #0x6a ldrh r1, [r0] add r0, r4, #0 add r0, #0x6a sub r1, #0x50 strh r1, [r0] add r0, r4, #0 add r0, #0x68 ldrh r1, [r0] add r0, r4, #0 add r0, #0x6a ldrh r0, [r0] add r1, r1, r0 add r0, r4, #0 add r0, #0x68 strh r1, [r0] ldr r0, [r4, #0x24] add r4, #0x68 ldrh r1, [r4] bl MOD20_02253FB4 pop {r3, r4, r5, pc} _0225538E: mov r0, #0 add r4, #0x6a strh r0, [r4] add r0, r5, #0 bl MOD36_02254F48 _0225539A: pop {r3, r4, r5, pc} thumb_func_end MOD36_0225520C thumb_func_start MOD36_0225539C MOD36_0225539C: ; 0x0225539C push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 add r0, r5, #0 bl MOD20_022538A4 add r0, r5, #0 bl MOD20_022538AC cmp r0, #0 beq _022553BE cmp r0, #1 beq _022553CA pop {r3, r4, r5, pc} _022553BE: mov r0, #1 str r0, [r4, #0x60] add r0, r5, #0 bl MOD20_022538B0 pop {r3, r4, r5, pc} _022553CA: add r0, r4, #0 mov r1, #7 bl MOD36_02254F30 cmp r0, #0 beq _022553E2 ldr r0, _022553E4 ; =0x0000066A bl MOD20_02252B28 add r0, r5, #0 bl MOD36_02254F48 _022553E2: pop {r3, r4, r5, pc} .align 2, 0 _022553E4: .word 0x0000066A thumb_func_end MOD36_0225539C .section .rodata ; 0x022553E8 .incbin "baserom.nds", 0x28fda8, 0x110 ; .section .sinit .global SDK_OVERLAY.MODULE_36.SINIT_START .global SDK_OVERLAY.MODULE_36.SINIT_END SDK_OVERLAY.MODULE_36.SINIT_START: .word MOD36_02254840 .word 0 SDK_OVERLAY.MODULE_36.SINIT_END: