diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-10 12:21:48 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-10 12:21:48 -0400 |
commit | ca2e39c684eada4aec909f6f222806b7914b97d0 (patch) | |
tree | bb40c93d89c64714a581a7d84438004ec3db2e52 /arm9/modules/35 | |
parent | fc6f621d01f371f03ae49862819352bfc71abd05 (diff) |
Dism modules 34-36; meaningful elf
Diffstat (limited to 'arm9/modules/35')
-rw-r--r-- | arm9/modules/35/asm/module_35.s | 1142 |
1 files changed, 1142 insertions, 0 deletions
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s new file mode 100644 index 00000000..fe5b7b14 --- /dev/null +++ b/arm9/modules/35/asm/module_35.s @@ -0,0 +1,1142 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD35_02254840 +MOD35_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD35_02254854 + ldr r1, _02254850 ; =MOD35_02254924 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD35_02254854 +_02254850: .word MOD35_02254924 + thumb_func_end MOD35_02254840 + + thumb_func_start MOD35_02254854 +MOD35_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x34 + 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 MOD35_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD35_022548F0 + 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 MOD35_022548F0 + thumb_func_end MOD35_02254854 + + thumb_func_start MOD35_0225489C +MOD35_0225489C: ; 0x0225489C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl MOD20_02252C40 + bl FUN_02023D58 + str r0, [r5, #0x30] + ldr r1, [r5, #0x30] + add r0, r5, #4 + bl MOD35_02254A50 + add r0, r5, #0 + add r0, #0x28 + add r1, r5, #4 + add r2, r6, #0 + bl MOD35_02254ADC + cmp r0, #0 + beq _022548D6 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0x2c] + mov r0, #1 + pop {r4, r5, r6, pc} +_022548D6: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD35_0225489C + + thumb_func_start MOD35_022548DC +MOD35_022548DC: ; 0x022548DC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD35_02254B38 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_022548DC + + thumb_func_start MOD35_022548F0 +MOD35_022548F0: ; 0x022548F0 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _0225491C + lsl r2, r1, #2 + ldr r1, _02254920 ; =0x022550B8 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0225491C + add r0, r4, #0 + bl MOD35_022548DC + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x2c] + bl MOD20_022529A0 +_0225491C: + pop {r3, r4, r5, pc} + nop +_02254920: .word 0x022550B8 + thumb_func_end MOD35_022548F0 + + thumb_func_start MOD35_02254924 +MOD35_02254924: ; 0x02254924 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD35_02254924 + + thumb_func_start MOD35_0225492C +MOD35_0225492C: ; 0x0225492C + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254934 + b _02254936 +_02254934: + mov r1, #2 +_02254936: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD35_0225492C + + thumb_func_start MOD35_02254940 +MOD35_02254940: ; 0x02254940 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254950 + cmp r0, #1 + beq _02254960 + b _0225497A +_02254950: + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225497A +_02254960: + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD35_02254C6C + cmp r0, #0 + beq _0225497A + ldr r0, [r4, #0x2c] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD35_0225492C +_0225497A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_02254940 + + thumb_func_start MOD35_02254980 +MOD35_02254980: ; 0x02254980 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254994 + mov r1, #2 + bl MOD35_0225492C + mov r0, #0 + pop {r4, pc} +_02254994: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _022549A0 + cmp r1, #1 + beq _022549C0 + b _022549D0 +_022549A0: + bl MOD35_02254A08 + cmp r0, #0 + beq _022549D0 + ldr r1, [r4, #0x30] + add r0, r4, #4 + bl MOD35_02254A50 + ldr r0, [r4, #0x28] + mov r1, #2 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549D0 +_022549C0: + ldr r0, [r4, #0x28] + mov r1, #2 + bl MOD35_02254C6C + cmp r0, #0 + beq _022549D0 + mov r0, #0 + strb r0, [r4, #1] +_022549D0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD35_02254980 + + thumb_func_start MOD35_022549D4 +MOD35_022549D4: ; 0x022549D4 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549E4 + cmp r0, #1 + beq _022549F4 + b _02254A02 +_022549E4: + ldr r0, [r4, #0x28] + mov r1, #1 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A02 +_022549F4: + ldr r0, [r4, #0x28] + bl MOD35_02254C78 + cmp r0, #0 + beq _02254A02 + mov r0, #1 + pop {r4, pc} +_02254A02: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_022549D4 + + thumb_func_start MOD35_02254A08 +MOD35_02254A08: ; 0x02254A08 + push {r3, lr} + sub sp, #8 + ldr r0, [r0, #0x2c] + bl MOD20_02252C08 + cmp r0, #0 + bne _02254A48 + add r0, sp, #4 + add r1, sp, #0 + bl FUN_02020ACC + cmp r0, #0 + beq _02254A48 + ldr r0, [sp, #4] + sub r0, #0x10 + cmp r0, #0xbf + bhs _02254A2E + mov r1, #1 + b _02254A30 +_02254A2E: + mov r1, #0 +_02254A30: + ldr r0, [sp] + sub r0, #0x10 + cmp r0, #0x9f + bhs _02254A3C + mov r0, #1 + b _02254A3E +_02254A3C: + mov r0, #0 +_02254A3E: + tst r0, r1 + beq _02254A48 + add sp, #8 + mov r0, #1 + pop {r3, pc} +_02254A48: + mov r0, #0 + add sp, #8 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD35_02254A08 + + thumb_func_start MOD35_02254A50 +MOD35_02254A50: ; 0x02254A50 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp] + add r0, r1, #0 + str r1, [sp, #4] + bl MOD05_021EC464 + ldr r1, [sp] + strb r0, [r1] + ldr r0, [sp, #4] + bl FUN_02023C90 + ldr r1, [sp] + mov r7, #0 + strb r0, [r1, #1] + add r0, r1, #0 + ldrb r0, [r0] + cmp r0, #0 + ble _02254AD6 + add r5, r1, #0 + add r6, r1, #0 +_02254A7A: + ldr r0, [sp, #4] + add r1, r7, #0 + bl FUN_02023C74 + str r0, [sp, #8] + bl FUN_02023C7C + add r4, r0, #0 + bl FUN_02066A6C + str r0, [sp, #0xc] + add r0, r4, #0 + bl FUN_0206B688 + str r0, [r5, #4] + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6, #0x1c] + add r0, r4, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6, #0x20] + ldr r0, [sp, #8] + bl MOD05_021EC7B4 + str r0, [r5, #0xc] + add r0, r4, #0 + bl FUN_020689E8 + str r0, [r5, #0x14] + ldr r1, [sp, #0xc] + add r0, r4, #0 + bl FUN_02066A94 + ldr r0, [sp] + add r7, r7, #1 + ldrb r0, [r0] + add r5, r5, #4 + add r6, r6, #2 + cmp r7, r0 + blt _02254A7A +_02254AD6: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD35_02254A50 + + thumb_func_start MOD35_02254ADC +MOD35_02254ADC: ; 0x02254ADC + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x90 + bl FUN_02016998 + add r4, r0, #0 + beq _02254B2E + 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 r2, #0 + add r0, #0x88 + str r2, [r0] + ldr r0, _02254B34 ; =MOD35_02254E60 + add r1, r4, #0 + bl FUN_0200CA98 + add r1, r4, #0 + add r1, #0x8c + str r0, [r1] + add r0, r4, #0 + add r1, r5, #0 + bl MOD35_02254B54 + ldr r0, [r4, #4] + cmp r0, #0 + beq _02254B2E + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254B2E: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02254B34: .word MOD35_02254E60 + thumb_func_end MOD35_02254ADC + + thumb_func_start MOD35_02254B38 +MOD35_02254B38: ; 0x02254B38 + push {r4, lr} + add r4, r0, #0 + beq _02254B52 + bl MOD35_02254C18 + add r0, r4, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 +_02254B52: + pop {r4, pc} + thumb_func_end MOD35_02254B38 + + thumb_func_start MOD35_02254B54 +MOD35_02254B54: ; 0x02254B54 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r7, r0, #0 + mov r0, #1 + str r1, [sp, #0xc] + bl MOD20_022539C4 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x54 + bl FUN_02006A34 + mov r1, #0x14 + bl _u32_div_f + ldr r1, [sp, #0xc] + str r0, [sp, #0x14] + str r0, [r7, #0x78] + bl MOD35_02254E88 + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x50 + mov r1, #0xc + mov r2, #0x52 + mov r3, #0x53 + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x64 + mov r1, #0xc + mov r2, #5 + mov r3, #6 + bl MOD20_02253FBC + add r0, r7, #0 + str r0, [sp, #0x1c] + add r0, #0x50 + str r0, [sp, #0x1c] + add r0, r7, #0 + mov r4, #0 + str r0, [sp, #0x18] + add r0, #0x64 + ldr r6, _02254C14 ; =0x02255110 + add r5, r7, #0 + str r4, [sp, #0x10] + str r0, [sp, #0x18] +_02254BC2: + cmp r4, #0 + blt _02254BE2 + cmp r4, #2 + bgt _02254BE2 + ldr r0, [r7, #0x20] + ldr r2, [sp, #0x18] + add r1, r6, #0 + bl MOD20_02253E74 + ldr r2, [sp, #0x14] + ldr r1, [sp, #0x10] + str r0, [r5, #0x24] + add r1, r2, r1 + bl MOD20_02253FA4 + b _02254BEE +_02254BE2: + ldr r0, [r7, #0x20] + ldr r2, [sp, #0x1c] + add r1, r6, #0 + bl MOD20_02253E74 + str r0, [r5, #0x24] +_02254BEE: + ldr r0, [r5, #0x24] + mov r1, #1 + bl MOD20_02253FAC + ldr r0, [sp, #0x10] + add r4, r4, #1 + add r0, #0x20 + add r6, #0x10 + add r5, r5, #4 + str r0, [sp, #0x10] + cmp r4, #0xb + blt _02254BC2 + ldr r1, [sp, #0xc] + add r0, r7, #0 + bl MOD35_02254EC8 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254C14: .word 0x02255110 + thumb_func_end MOD35_02254B54 + + thumb_func_start MOD35_02254C18 +MOD35_02254C18: ; 0x02254C18 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02254C20: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254C2C + ldr r0, [r6, #0x20] + bl MOD20_02253F14 +_02254C2C: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xb + blt _02254C20 + add r0, r6, #0 + add r0, #0x64 + bl MOD20_02254014 + add r6, #0x50 + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD35_02254C18 + + thumb_func_start MOD35_02254C48 +MOD35_02254C48: ; 0x02254C48 + 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, _02254C68 ; =0x022550E0 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254C68: .word 0x022550E0 + thumb_func_end MOD35_02254C48 + + thumb_func_start MOD35_02254C6C +MOD35_02254C6C: ; 0x02254C6C + ldr r3, _02254C74 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254C74: .word MOD20_02253794 + thumb_func_end MOD35_02254C6C + + thumb_func_start MOD35_02254C78 +MOD35_02254C78: ; 0x02254C78 + ldr r3, _02254C80 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254C80: .word MOD20_022537B8 + thumb_func_end MOD35_02254C78 + + thumb_func_start MOD35_02254C84 +MOD35_02254C84: ; 0x02254C84 + 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 MOD35_02254C84 + + thumb_func_start MOD35_02254C98 +MOD35_02254C98: ; 0x02254C98 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254D24 ; =0x022550C4 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + 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, [r5, #4] + mov r0, #0xc + mov r1, #0x51 + mov r3, #6 + bl FUN_0200687C + 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, [r5, #4] + mov r0, #0xc + mov r1, #0x50 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254D28 ; =0x0400104C + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + sub r1, #0x4c + ldr r3, [r1] + ldr r2, [r1] + ldr r0, _02254D2C ; =0xFFFFE0FF + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD35_02254C84 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254D24: .word 0x022550C4 +_02254D28: .word 0x0400104C +_02254D2C: .word 0xFFFFE0FF + thumb_func_end MOD35_02254C98 + + thumb_func_start MOD35_02254D30 +MOD35_02254D30: ; 0x02254D30 + 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 _02254D4C + cmp r0, #1 + beq _02254D5A + pop {r3, r4, r5, pc} +_02254D4C: + mov r0, #1 + add r4, #0x84 + str r0, [r4] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254D5A: + add r0, r4, #0 + mov r1, #2 + bl MOD35_02254C6C + cmp r0, #0 + beq _02254D7C + ldr r0, _02254D80 ; =0x0400104C + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD35_02254C84 +_02254D7C: + pop {r3, r4, r5, pc} + nop +_02254D80: .word 0x0400104C + thumb_func_end MOD35_02254D30 + + thumb_func_start MOD35_02254D84 +MOD35_02254D84: ; 0x02254D84 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #3 + bhi _02254E50 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254DAE: ; jump table + .short _02254DB6 - _02254DAE - 2 ; case 0 + .short _02254DDC - _02254DAE - 2 ; case 1 + .short _02254DF4 - _02254DAE - 2 ; case 2 + .short _02254E4A - _02254DAE - 2 ; case 3 +_02254DB6: + add r0, r4, #0 + mov r1, #0 + add r0, #0x84 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + mov r0, #0xa + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + ldr r0, _02254E54 ; =0x00000678 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254DDC: + ldr r0, [r4, #0x78] + add r1, r6, #0 + bl MOD35_02254E88 + add r0, r4, #0 + add r1, r6, #0 + bl MOD35_02254EC8 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254DF4: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _02254E10 + mov r0, #0 + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254E10: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #4 + blo _02254E50 + add r0, r4, #0 + mov r1, #0 + add r0, #0x80 + str r1, [r0] + ldr r0, [r4, #0x7c] + sub r0, r0, #1 + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + ldr r0, [r4, #0x7c] + cmp r0, #0 + bne _02254E50 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254E4A: + add r0, r5, #0 + bl MOD35_02254C84 +_02254E50: + pop {r4, r5, r6, pc} + nop +_02254E54: .word 0x00000678 + thumb_func_end MOD35_02254D84 + + thumb_func_start MOD35_02254E58 +MOD35_02254E58: ; 0x02254E58 + mov r1, #1 + add r0, #0x88 + str r1, [r0] + bx lr + thumb_func_end MOD35_02254E58 + + thumb_func_start MOD35_02254E60 +MOD35_02254E60: ; 0x02254E60 + add r0, r1, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _02254E82 + ldr r2, [r1, #0x7c] + ldr r3, _02254E84 ; =0x0400104C + lsl r0, r2, #4 + orr r0, r2 + strb r0, [r3] + ldr r2, [r1, #0x7c] + add r1, #0x88 + lsl r0, r2, #4 + orr r0, r2 + strb r0, [r3, #1] + mov r0, #0 + str r0, [r1] +_02254E82: + bx lr + .align 2, 0 +_02254E84: .word 0x0400104C + thumb_func_end MOD35_02254E60 + + thumb_func_start MOD35_02254E88 +MOD35_02254E88: ; 0x02254E88 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + add r4, r1, #0 + add r1, r0, #0 + mov r2, #0 + bl FUN_0206B6D4 + ldrb r1, [r4] + cmp r1, #0 + beq _02254EA4 + ldr r1, [r4, #4] + b _02254EA6 +_02254EA4: + add r1, r0, #0 +_02254EA6: + str r1, [sp] + ldrb r1, [r4] + cmp r1, #1 + bls _02254EB2 + ldr r1, [r4, #8] + b _02254EB4 +_02254EB2: + add r1, r0, #0 +_02254EB4: + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, sp, #0 + mov r2, #3 + mov r3, #1 + bl MOD20_02253A04 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD35_02254E88 + + thumb_func_start MOD35_02254EC8 +MOD35_02254EC8: ; 0x02254EC8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #0 + add r6, r1, #0 + str r0, [sp] + ldrb r0, [r6] + cmp r0, #0 + ble _02254F00 + add r4, r6, #0 + add r5, r7, #0 +_02254EDC: + ldrh r0, [r4, #0x1c] + ldrh r1, [r4, #0x20] + mov r2, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r5, #0x24] + add r1, r1, #1 + bl MOD20_02253F9C + ldr r0, [sp] + ldrb r1, [r6] + add r0, r0, #1 + add r4, r4, #2 + add r5, r5, #4 + str r0, [sp] + cmp r0, r1 + blt _02254EDC +_02254F00: + mov r0, #1 + mov r1, #0 + add r2, r0, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r7, #0x2c] + add r1, r1, #1 + bl MOD20_02253F9C + ldrb r0, [r6] + cmp r0, #0 + beq _02254F36 + ldrh r0, [r6, #0x1c] + mov r1, #0x1c + bl FUN_02068678 + cmp r0, #0 + ldr r0, [r7, #0x24] + beq _02254F30 + mov r1, #6 + bl MOD20_02253F28 + b _02254F36 +_02254F30: + mov r1, #7 + bl MOD20_02253F28 +_02254F36: + add r0, r7, #0 + ldr r1, [r6, #0xc] + add r0, #0x30 + bl MOD35_02254FD8 + add r0, r7, #0 + ldr r1, [r6, #0x10] + add r0, #0x3c + bl MOD35_02254FD8 + ldr r0, [r7, #0x48] + ldr r1, [r6, #0x14] + bl MOD35_02255094 + ldr r0, [r7, #0x4c] + ldr r1, [r6, #0x18] + bl MOD35_02255094 + ldrb r0, [r6] + cmp r0, #0 + bne _02254F64 + mov r4, #1 + b _02254F66 +_02254F64: + mov r4, #0 +_02254F66: + ldr r0, [r7, #0x24] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x30] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x34] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x38] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x48] + add r1, r4, #0 + bl MOD20_02253F78 + ldrb r0, [r6] + cmp r0, #1 + bhi _02254F98 + mov r4, #1 + b _02254F9A +_02254F98: + mov r4, #0 +_02254F9A: + ldr r0, [r7, #0x28] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x3c] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x40] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x44] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x4c] + add r1, r4, #0 + bl MOD20_02253F78 + ldrb r0, [r6, #1] + cmp r0, #0 + bne _02254FCC + mov r1, #1 + b _02254FCE +_02254FCC: + mov r1, #0 +_02254FCE: + ldr r0, [r7, #0x2c] + bl MOD20_02253F78 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD35_02254EC8 + + thumb_func_start MOD35_02254FD8 +MOD35_02254FD8: ; 0x02254FD8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r1, #0 + str r0, [sp] + cmp r7, #0x64 + bls _02254FE6 + mov r7, #0x64 +_02254FE6: + ldr r2, _02255088 ; =0x04000280 + mov r3, #0 + strh r3, [r2] + add r0, r2, #0 + str r7, [r2, #0x10] + mov r1, #0x64 + add r0, #0x18 + str r1, [r0] + str r3, [r0, #4] + lsr r0, r2, #0xb +_02254FFA: + ldrh r1, [r2] + tst r1, r0 + bne _02254FFA + ldr r0, _0225508C ; =0x040002A0 + ldr r4, _02255088 ; =0x04000280 + ldr r0, [r0] + str r0, [sp, #4] + lsr r0, r4, #0xb +_0225500A: + ldrh r1, [r4] + tst r1, r0 + bne _0225500A + ldr r3, _02255090 ; =0x040002A8 + mov r1, #0 + ldr r2, [r3] + add r0, r3, #0 + strh r1, [r4] + sub r0, #0x18 + str r2, [r0] + mov r0, #0xa + sub r3, #0x10 + str r0, [r3] + ldr r2, _02255088 ; =0x04000280 + str r1, [r3, #4] + lsr r0, r2, #0xb +_0225502A: + ldrh r1, [r2] + tst r1, r0 + bne _0225502A + ldr r0, _0225508C ; =0x040002A0 + ldr r2, _02255088 ; =0x04000280 + ldr r0, [r0] + str r0, [sp, #8] + lsr r0, r2, #0xb +_0225503A: + ldrh r1, [r2] + tst r1, r0 + bne _0225503A + ldr r0, _02255090 ; =0x040002A8 + ldr r5, [sp] + ldr r0, [r0] + mov r6, #0 + str r0, [sp, #0xc] + add r4, sp, #4 +_0225504C: + ldr r0, [r5] + ldr r1, [r4] + bl MOD20_02253F28 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #3 + blt _0225504C + cmp r7, #0x64 + bhs _02255066 + mov r1, #1 + b _02255068 +_02255066: + mov r1, #0 +_02255068: + ldr r0, [sp] + ldr r0, [r0] + bl MOD20_02253F78 + cmp r7, #0xa + bhs _02255078 + mov r1, #1 + b _0225507A +_02255078: + mov r1, #0 +_0225507A: + ldr r0, [sp] + ldr r0, [r0, #4] + bl MOD20_02253F78 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02255088: .word 0x04000280 +_0225508C: .word 0x040002A0 +_02255090: .word 0x040002A8 + thumb_func_end MOD35_02254FD8 + + thumb_func_start MOD35_02255094 +MOD35_02255094: ; 0x02255094 + push {r3, lr} + cmp r1, #0 + beq _022550A0 + cmp r1, #1 + beq _022550A8 + b _022550B0 +_022550A0: + mov r1, #0xa + bl MOD20_02253F28 + pop {r3, pc} +_022550A8: + mov r1, #0xb + bl MOD20_02253F28 + pop {r3, pc} +_022550B0: + mov r1, #0xc + bl MOD20_02253F28 + pop {r3, pc} + thumb_func_end MOD35_02255094 + + .section .rodata + ; 0x022550B8 + .incbin "baserom.nds", 0x28f078, 0x108 + + .section .sinit + .word MOD35_02254840 |