diff options
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/global.inc | 14 | ||||
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 1684 | ||||
-rw-r--r-- | arm9/modules/04/asm/mod04_021D9C2C.s | 2 | ||||
-rw-r--r-- | arm9/modules/04/asm/mod04_021DA260.s | 1689 |
5 files changed, 1716 insertions, 1674 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 08253453..b0cf06f4 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -660,6 +660,7 @@ Overlay MODULE_04 Object mod04_021D868C.o Object mod04_021D8D18.o Object mod04_021D9C2C.o + Object mod04_021DA260.o Object arm_04.o } diff --git a/arm9/global.inc b/arm9/global.inc index 09d6fe08..81856abb 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6123,6 +6123,7 @@ .extern MOD04_021DA334 .extern MOD04_021DA388 .extern MOD04_021DA3DC +.extern MOD04_021DAACC .extern MOD04_021DAB68 .extern MOD04_021DAC98 .extern MOD04_021DAE4C @@ -6131,6 +6132,8 @@ .extern MOD04_021DB570 .extern MOD04_021DB608 .extern MOD04_021DCA84 +.extern MOD04_021DD36C +.extern MOD04_021DD4FC .extern MOD04_021DD6F0 .extern MOD04_021DD718 .extern MOD04_021DD808 @@ -8268,6 +8271,17 @@ .extern TP_WaitBusy .extern TP_WaitRawResult .extern UNK04_0220BEB4 +.extern UNK04_0220C684 +.extern UNK04_0220C7D0 +.extern UNK04_0220C920 +.extern UNK04_0220CA08 +.extern UNK04_0220CACC +.extern UNK04_0220CBB4 +.extern UNK04_0220CCD4 +.extern UNK04_0220CDEC +.extern UNK04_0220CF18 +.extern UNK04_0220D0CC +.extern UNK04_0220D1A8 .extern UNK04_02210480 .extern UNK04_02210484 .extern UNK04_02210488 diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index bbdafb6a..7d791941 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -3,1499 +3,6 @@ .section .text .balign 4, 0 - arm_func_start MOD04_021DA260 -MOD04_021DA260: ; 0x021DA260 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #4 - add r0, r0, #0x1000 - mov sb, r2 - cmp sb, #0 - ldr r8, [r0, #0x14] - mov sl, r1 - mov r7, #0 - addle sp, sp, #4 - ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r6, r7 - mov r5, r7 - mov fp, r7 - mov r4, r7 -_021DA298: - ldr r1, [sl, r7, lsl #3] - cmp r1, #0 - beq _021DA2B4 - ldr r0, _021DA2EC ; =UNK04_0220C110 - mov r2, r6 - blx r8 - str r5, [sl, r7, lsl #3] -_021DA2B4: - add r0, sl, r7, lsl #3 - ldr r1, [r0, #4] - cmp r1, #0 - beq _021DA2D8 - ldr r0, _021DA2F0 ; =UNK04_0220C12C - mov r2, fp - blx r8 - add r0, sl, r7, lsl #3 - str r4, [r0, #4] -_021DA2D8: - add r7, r7, #1 - cmp r7, sb - blt _021DA298 - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_021DA2EC: .word UNK04_0220C110 -_021DA2F0: .word UNK04_0220C12C - arm_func_end MOD04_021DA260 - - arm_func_start MOD04_021DA2F4 -MOD04_021DA2F4: ; 0x021DA2F4 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r2 - mov r5, r3 - bl MOD04_021DA388 - movs r4, r0 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - bl strlen - cmp r0, r5 - movge r0, #0 - ldmgeia sp!, {r4, r5, r6, pc} - mov r0, r6 - mov r1, r4 - bl strcpy - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end MOD04_021DA2F4 - - arm_func_start MOD04_021DA334 -MOD04_021DA334: ; 0x021DA334 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r2 - mov r5, r3 - bl MOD04_021DA388 - movs r4, r0 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - bl strlen - mov r1, r0 - mov r0, r4 - mov r2, r6 - mov r3, r5 - bl MOD04_021DD36C - mvn r1, #0 - cmp r0, r1 - ldmeqia sp!, {r4, r5, r6, pc} - cmp r0, r5 - ldmhsia sp!, {r4, r5, r6, pc} - mov r1, #0 - strb r1, [r6, r0] - ldmia sp!, {r4, r5, r6, pc} - arm_func_end MOD04_021DA334 - - arm_func_start MOD04_021DA388 -MOD04_021DA388: ; 0x021DA388 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, #0 -_021DA398: - add r0, r6, r4, lsl #3 - add r0, r0, #0x1000 - ldr r1, [r0, #0xa34] - cmp r1, #0 - beq _021DA3D4 - mov r0, r5 - bl strcmp - cmp r0, #0 - addeq r0, r6, r4, lsl #3 - addeq r0, r0, #0x1000 - ldreq r0, [r0, #0xa38] - ldmeqia sp!, {r4, r5, r6, pc} - add r4, r4, #1 - cmp r4, #0x20 - blt _021DA398 -_021DA3D4: - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end MOD04_021DA388 - - arm_func_start MOD04_021DA3DC -MOD04_021DA3DC: ; 0x021DA3DC - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - ldr r2, _021DA668 ; =0x00001A34 - mov fp, r0 - add r0, fp, r2 - mov r6, r1 - mov r3, #0x20 - mov r1, #0 - mov r2, #0x100 - str r0, [sp, #8] - str r3, [sp, #0xc] - str r1, [sp, #0x10] - bl MI_CpuFill8 - add r0, fp, #0x1000 - ldr r5, [r0, #0xa04] - ldr r1, _021DA66C ; =UNK04_0220C148 - mov r0, r5 - bl strstr - str r0, [sp] - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - add r0, r0, #4 - bl strlen - ldr r1, [sp] - add r1, r1, #4 - add r0, r1, r0 - str r0, [sp, #4] - ldr r1, _021DA670 ; =UNK04_0220C150 - mov r0, r5 - bl strstr - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - add r8, r0, #1 - ldrsb r7, [r8, #3] - ldr r2, _021DA674 ; =UNK04_0220C154 - mov r5, #0 - add r1, sp, #8 - mov r0, fp - mov r3, r8 - strb r5, [r8, #3] - bl MOD04_021DA68C - cmp r0, #1 - addne sp, sp, #0x14 - strneb r7, [r8, #3] - movne r0, r5 - ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - strb r7, [r8, #3] - cmp r6, #1 - beq _021DA4C8 - ldr r1, _021DA678 ; =UNK04_0220C160 - mov r0, r8 - mov r2, #3 - bl strncmp - cmp r0, #0 - beq _021DA4D4 -_021DA4C8: - add sp, sp, #0x14 - mov r0, #1 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_021DA4D4: - ldr r1, _021DA67C ; =UNK04_0220C164 - add r0, r8, #4 - bl strstr - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, r5 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - add sb, r0, #2 - mov r6, r5 - b _021DA580 -_021DA4FC: - ldr r1, _021DA680 ; =UNK04_0220C168 - mov r0, sb - bl strstr - movs r7, r0 - beq _021DA598 - ldrsb sl, [r7] - add r8, r7, #2 - ldr r1, _021DA67C ; =UNK04_0220C164 - mov r0, r8 - strb r6, [r7] - bl strstr - movs r5, r0 - streqb sl, [r7] - beq _021DA598 - ldrsb r4, [r5] - mov r0, fp - mov r2, sb - strb r6, [r5] - add r1, sp, #8 - mov r3, r8 - bl MOD04_021DA68C - cmp r0, #1 - strneb sl, [r7] - addne sp, sp, #0x14 - strneb r4, [r5] - movne r0, #0 - ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r0, r8 - bl strlen - strb sl, [r7] - add r0, r8, r0 - strb r4, [r5] - add sb, r0, #2 -_021DA580: - ldrsb r0, [sb] - cmp r0, #0xd - beq _021DA598 - ldrsb r0, [sb, #1] - cmp r0, #0xa - bne _021DA4FC -_021DA598: - ldr r0, [sp] - add r8, r0, #4 - ldr r0, [sp, #4] - cmp r8, r0 - bhs _021DA65C - mov r5, #0 -_021DA5B0: - ldr r1, _021DA684 ; =UNK04_0220C16C - mov r0, r8 - bl strstr - movs sl, r0 - beq _021DA65C - ldrsb r7, [sl] - add sb, sl, #1 - ldr r1, _021DA688 ; =UNK04_0220C170 - mov r0, sb - strb r5, [sl] - bl strstr - movs r6, r0 - bne _021DA5F4 - ldr r1, _021DA67C ; =UNK04_0220C164 - mov r0, sb - bl strstr - mov r6, r0 -_021DA5F4: - cmp r6, #0 - ldrnesb r4, [r6] - mov r0, fp - mov r2, r8 - add r1, sp, #8 - mov r3, sb - strneb r5, [r6] - bl MOD04_021DA68C - cmp r0, #1 - beq _021DA634 - strb r7, [sl] - cmp r6, #0 - add sp, sp, #0x14 - strneb r4, [r6] - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_021DA634: - mov r0, sb - bl strlen - add r0, sb, r0 - add r8, r0, #1 - ldr r0, [sp, #4] - strb r7, [sl] - cmp r6, #0 - strneb r4, [r6] - cmp r8, r0 - blo _021DA5B0 -_021DA65C: - mov r0, #1 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_021DA668: .word 0x00001A34 -_021DA66C: .word UNK04_0220C148 -_021DA670: .word UNK04_0220C150 -_021DA674: .word UNK04_0220C154 -_021DA678: .word UNK04_0220C160 -_021DA67C: .word UNK04_0220C164 -_021DA680: .word UNK04_0220C168 -_021DA684: .word UNK04_0220C16C -_021DA688: .word UNK04_0220C170 - arm_func_end MOD04_021DA3DC - - arm_func_start MOD04_021DA68C -MOD04_021DA68C: ; 0x021DA68C - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r1 - ldr r4, [r8, #8] - ldr r1, [r8, #4] - add r0, r0, #0x1000 - cmp r4, r1 - ldr r5, [r0, #0x10] - ldr r4, [r0, #0x14] - mov r7, r2 - mov r6, r3 - movgt r0, #0 - ldmgtia sp!, {r4, r5, r6, r7, r8, pc} - mov r0, r7 - bl strlen - mov r1, r0 - ldr r0, _021DA7D8 ; =UNK04_0220C174 - add r1, r1, #1 - blx r5 - ldr r2, [r8] - ldr r1, [r8, #8] - str r0, [r2, r1, lsl #3] - ldr r3, [r8, #8] - ldr r2, [r8] - ldr r0, [r2, r3, lsl #3] - cmp r0, #0 - beq _021DA770 - mov r0, r6 - bl strlen - mov r1, r0 - ldr r0, _021DA7DC ; =UNK04_0220C194 - add r1, r1, #1 - blx r5 - ldr r2, [r8] - ldr r1, [r8, #8] - add r1, r2, r1, lsl #3 - str r0, [r1, #4] - ldr r3, [r8, #8] - ldr r2, [r8] - mov r1, r3, lsl #3 - add r0, r2, r3, lsl #3 - ldr r0, [r0, #4] - cmp r0, #0 - beq _021DA770 - ldr r0, [r2, r1] - mov r1, r7 - bl strcpy - ldr r2, [r8] - ldr r0, [r8, #8] - mov r1, r6 - add r0, r2, r0, lsl #3 - ldr r0, [r0, #4] - bl strcpy - ldr r1, [r8, #8] - mov r0, #1 - add r1, r1, #1 - str r1, [r8, #8] - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_021DA770: - ldr r1, [r2, r3, lsl #3] - cmp r1, #0 - beq _021DA798 - ldr r0, _021DA7E0 ; =UNK04_0220C1B4 - mov r2, #0 - blx r4 - ldr r1, [r8] - ldr r0, [r8, #8] - mov r2, #0 - str r2, [r1, r0, lsl #3] -_021DA798: - ldr r1, [r8] - ldr r0, [r8, #8] - add r0, r1, r0, lsl #3 - ldr r1, [r0, #4] - cmp r1, #0 - beq _021DA7D0 - ldr r0, _021DA7E4 ; =UNK04_0220C1D0 - mov r2, #0 - blx r4 - ldr r1, [r8] - ldr r0, [r8, #8] - mov r2, #0 - add r0, r1, r0, lsl #3 - str r2, [r0, #4] -_021DA7D0: - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_021DA7D8: .word UNK04_0220C174 -_021DA7DC: .word UNK04_0220C194 -_021DA7E0: .word UNK04_0220C1B4 -_021DA7E4: .word UNK04_0220C1D0 - arm_func_end MOD04_021DA68C - - arm_func_start MOD04_021DA7E8 -MOD04_021DA7E8: ; 0x021DA7E8 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r1 - mov r5, r0 - mov r0, r6 - mov r4, #0 - bl strlen - cmp r0, #0x100 - movhs r0, r4 - ldmhsia sp!, {r4, r5, r6, pc} - ldr r0, _021DA934 ; =0x00001024 - mov r1, r6 - add r0, r5, r0 - mov r2, #0x100 - bl strncpy - mov r0, r6 - bl strlen - ldr r1, _021DA934 ; =0x00001024 - mov r6, r0 - add r0, r5, r1 - bl strlen - cmp r6, r0 - movne r0, r4 - ldmneia sp!, {r4, r5, r6, pc} - ldr r0, _021DA934 ; =0x00001024 - ldr r1, _021DA938 ; =UNK04_0220C1EC - add r0, r5, r0 - bl strstr - cmp r0, #0 - beq _021DA884 - ldr r0, _021DA93C ; =0x0000102B - add r1, r5, #0x1000 - add r0, r5, r0 - str r0, [r1, #0x124] - mov r0, r4 - str r0, [r1, #0x12c] - add r0, r5, #0x1100 - mov r1, #0x50 - strh r1, [r0, #0x30] - b _021DA8C0 -_021DA884: - ldr r0, _021DA934 ; =0x00001024 - ldr r1, _021DA940 ; =UNK04_0220C1F4 - add r0, r5, r0 - bl strstr - cmp r0, #0 - moveq r0, r4 - ldmeqia sp!, {r4, r5, r6, pc} - add r1, r0, #8 - add r0, r5, #0x1000 - str r1, [r0, #0x124] - mov r2, #1 - ldr r1, _021DA944 ; =0x000001BB - str r2, [r0, #0x12c] - add r0, r5, #0x1100 - strh r1, [r0, #0x30] -_021DA8C0: - add r0, r5, #0x1000 - ldr r0, [r0, #0x124] - ldr r1, _021DA948 ; =UNK04_0220C200 - bl strstr - cmp r0, #0 - movne r1, #0 - strneb r1, [r0] - addne r4, r0, #1 - add r0, r5, #0x1000 - ldr r0, [r0, #0x124] - ldr r1, _021DA94C ; =UNK04_0220C204 - bl strstr - cmp r0, #0 - addeq r0, r5, #0x1000 - moveq r1, #0 - streq r1, [r0, #0x128] - movne r1, #0 - strneb r1, [r0] - addne r1, r0, #1 - addne r0, r5, #0x1000 - strne r1, [r0, #0x128] - cmp r4, #0 - beq _021DA92C - mov r0, r4 - bl atol - add r1, r5, #0x1100 - strh r0, [r1, #0x30] -_021DA92C: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_021DA934: .word 0x00001024 -_021DA938: .word UNK04_0220C1EC -_021DA93C: .word 0x0000102B -_021DA940: .word UNK04_0220C1F4 -_021DA944: .word 0x000001BB -_021DA948: .word UNK04_0220C200 -_021DA94C: .word UNK04_0220C204 - arm_func_end MOD04_021DA7E8 - - arm_func_start MOD04_021DA950 -MOD04_021DA950: ; 0x021DA950 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #4 - add r0, r0, #0x1000 - mov r5, r2 - cmp r5, #0 - ldr r7, [r0, #0x14] - ldr r2, [r0, #0x10] - mov r6, r1 - addle sp, sp, #4 - movle r0, #0 - ldmleia sp!, {r4, r5, r6, r7, pc} - ldr r1, [r6, #0xc] - ldr r0, _021DAA08 ; =UNK04_0220C208 - add r1, r1, r5 - blx r2 - movs r4, r0 - addeq sp, sp, #4 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r0, [r6] - ldr r2, [r6, #0xc] - mov r1, r4 - bl MI_CpuCopy8 - ldr r1, [r6] - ldr r0, _021DAA0C ; =UNK04_0220C218 - mov r2, #0 - blx r7 - cmp r4, #0 - addeq sp, sp, #4 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r0, [r6] - ldr r1, [r6, #4] - sub r0, r4, r0 - add r0, r1, r0 - str r0, [r6, #4] - ldr r1, [r6, #0xc] - mov r0, #1 - add r1, r1, r5 - str r1, [r6, #0xc] - str r4, [r6] - ldr r1, [r6, #0xc] - add r1, r4, r1 - str r1, [r6, #8] - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, pc} - .align 2, 0 -_021DAA08: .word UNK04_0220C208 -_021DAA0C: .word UNK04_0220C218 - arm_func_end MOD04_021DA950 - - arm_func_start MOD04_021DAA10 -MOD04_021DAA10: ; 0x021DAA10 - stmdb sp!, {r4, lr} - mov r4, r1 - ldr r1, [r4] - add r0, r0, #0x1000 - cmp r1, #0 - ldr r3, [r0, #0x14] - beq _021DAA38 - ldr r0, _021DAA4C ; =UNK04_0220C218 - mov r2, #0 - blx r3 -_021DAA38: - mov r0, r4 - mov r1, #0 - mov r2, #0x10 - bl MI_CpuFill8 - ldmia sp!, {r4, pc} - .align 2, 0 -_021DAA4C: .word UNK04_0220C218 - arm_func_end MOD04_021DAA10 - - arm_func_start MOD04_021DAA50 -MOD04_021DAA50: ; 0x021DAA50 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #4 - movs r5, r2 - add r0, r0, #0x1000 - ldr r2, [r0, #0x10] - mov r4, r1 - addeq sp, sp, #4 - moveq r0, #0 - ldmeqia sp!, {r4, r5, pc} - ldr r0, _021DAABC ; =UNK04_0220C22C - mov r1, r5 - blx r2 - str r0, [r4] - ldr r0, [r4] - cmp r0, #0 - addeq sp, sp, #4 - moveq r0, #0 - ldmeqia sp!, {r4, r5, pc} - str r0, [r4, #4] - str r5, [r4, #0xc] - ldr r2, [r4] - ldr r1, [r4, #0xc] - mov r0, #1 - add r1, r2, r1 - str r1, [r4, #8] - add sp, sp, #4 - ldmia sp!, {r4, r5, pc} - .align 2, 0 -_021DAABC: .word UNK04_0220C22C - arm_func_end MOD04_021DAA50 - - arm_func_start MOD04_021DAAC0 -MOD04_021DAAC0: ; 0x021DAAC0 - ands r1, r0, #0x8000 - bicne r0, r0, #0x8000 - bx lr - arm_func_end MOD04_021DAAC0 - - arm_func_start MOD04_021DAACC -MOD04_021DAACC: ; 0x021DAACC - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #4 - ldr r2, _021DAB60 ; =0x000019F4 - mov r7, r0 - mov r6, r1 - mov r0, r6 - add r4, r7, r2 - bl strlen - mov r5, r0 - ldr r0, [r4, #4] - ldr r1, [r4, #8] - sub r1, r1, r0 - cmp r5, r1 - ble _021DAB34 - sub r2, r5, r1 - mov r0, r7 - mov r1, r4 - add r2, r2, #1 - bl MOD04_021DA950 - cmp r0, #0 - addeq sp, sp, #4 - moveq r0, #1 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r0, [r4, #4] - ldr r1, [r4, #8] - sub r1, r1, r0 -_021DAB34: - ldr r2, _021DAB64 ; =UNK04_0220C240 - mov r3, r6 - bl OS_SNPrintf - cmp r0, r5 - ldreq r1, [r4, #4] - movne r0, #1 - addeq r0, r1, r0 - streq r0, [r4, #4] - moveq r0, #0 - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, pc} - .align 2, 0 -_021DAB60: .word 0x000019F4 -_021DAB64: .word UNK04_0220C240 - arm_func_end MOD04_021DAACC - - arm_func_start MOD04_021DAB68 -MOD04_021DAB68: ; 0x021DAB68 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #4 - mov sl, r0 - add r0, sl, #0x1000 - ldr r4, [r0, #0x9f0] - ldr r0, _021DAC8C ; =0x000019F4 - cmp r4, #0 - ldreq r6, _021DAC90 ; =UNK04_0220C244 - mov r8, r2 - add r5, sl, #0x1000 - add r4, sl, r0 - ldr r0, [r5, #0x9f0] - mov r7, r3 - add fp, r0, #1 - mov r2, #0 - mov sb, r1 - ldrne r6, _021DAC94 ; =UNK04_0220C248 - mov r0, r8 - mov r1, r7 - mov r3, r2 - str fp, [r5, #0x9f0] - bl MOD04_021DD4FC - mov r5, r0 - mov r0, r6 - bl strlen - mov fp, r0 - mov r0, sb - bl strlen - sub r1, fp, #2 - add r2, r1, r0 - ldr r0, [r4, #4] - ldr r1, [r4, #8] - add r2, r5, r2 - sub r1, r1, r0 - cmp r2, r1 - ble _021DAC28 - sub r2, r2, r1 - mov r0, sl - mov r1, r4 - add r2, r2, #1 - bl MOD04_021DA950 - cmp r0, #0 - addeq sp, sp, #4 - moveq r0, #1 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [r4, #4] - ldr r1, [r4, #8] - sub r1, r1, r0 -_021DAC28: - mov r2, r6 - mov r3, sb - bl OS_SNPrintf - ldr r2, [r4, #4] - mov r1, r7 - add r0, r2, r0 - str r0, [r4, #4] - ldr r2, [r4, #4] - ldr r3, [r4, #8] - mov r0, r8 - sub r3, r3, r2 - sub r3, r3, #1 - bl MOD04_021DD4FC - cmp r0, #0 - addlt sp, sp, #4 - movlt r0, #1 - ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r1, [r4, #4] - mov r0, #0 - add r1, r1, r5 - str r1, [r4, #4] - ldr r1, [r4, #4] - strb r0, [r1] - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_021DAC8C: .word 0x000019F4 -_021DAC90: .word UNK04_0220C244 -_021DAC94: .word UNK04_0220C248 - arm_func_end MOD04_021DAB68 - - arm_func_start MOD04_021DAC98 -MOD04_021DAC98: ; 0x021DAC98 - stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #4 - mov r6, r2 - mov r8, r0 - ldr r2, _021DAD7C ; =0x000019F4 - mov r0, r6 - mov r7, r1 - add r5, r8, r2 - bl strlen - mov r4, r0 - ldr r0, _021DAD80 ; =UNK04_0220C250 - bl strlen - mov sb, r0 - mov r0, r7 - bl strlen - sub r1, sb, #4 - add r0, r1, r0 - add r4, r4, r0 - ldr r2, [r5, #8] - ldr r1, [r5, #4] - add r0, r4, #1 - sub r1, r2, r1 - cmp r0, r1 - ble _021DAD1C - sub r2, r4, r1 - mov r0, r8 - mov r1, r5 - add r2, r2, #1 - bl MOD04_021DA950 - cmp r0, #0 - addeq sp, sp, #4 - moveq r0, #1 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} -_021DAD1C: - ldr r0, [r5] - ldr r1, _021DAD84 ; =UNK04_0220C148 - bl strstr - add r8, r0, #2 - ldrsb sb, [r0, #2] - mov r0, r8 - bl strlen - add r2, r0, #1 - add r0, r8, r4 - mov r1, r8 - bl memmove - ldr r2, _021DAD80 ; =UNK04_0220C250 - str r6, [sp] - mov r3, r7 - mov r0, r8 - add r1, r4, #1 - bl OS_SNPrintf - strb sb, [r8, r0] - ldr r1, [r5, #4] - mov r0, #0 - add r1, r1, r4 - str r1, [r5, #4] - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_021DAD7C: .word 0x000019F4 -_021DAD80: .word UNK04_0220C250 -_021DAD84: .word UNK04_0220C148 - arm_func_end MOD04_021DAC98 - - arm_func_start MOD04_021DAD88 -MOD04_021DAD88: ; 0x021DAD88 - stmdb sp!, {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - mov r7, r0 - add r0, r7, #0x1000 - ldr r1, [r0, #8] - ldr r0, _021DAE40 ; =0x000019F4 - cmp r1, #0 - ldreq r6, _021DAE44 ; =UNK04_0220C25C - add r5, r7, r0 - add r0, r7, #0x1000 - ldrne r6, _021DAE48 ; =UNK04_0220C2B0 - ldr r0, [r0, #0x124] - bl strlen - mov r4, r0 - mov r0, r6 - bl strlen - add r1, r7, #0x1000 - mov r8, r0 - ldr r0, [r1, #0x128] - bl strlen - sub r1, r8, #4 - add r0, r1, r0 - add r1, r4, r0 - ldr r0, _021DAE40 ; =0x000019F4 - add r2, r1, #0x400 - add r1, r7, r0 - mov r0, r7 - bl MOD04_021DAA50 - cmp r0, #1 - addne sp, sp, #8 - movne r0, #1 - ldmneia sp!, {r4, r5, r6, r7, r8, pc} - add r3, r7, #0x1000 - ldr r0, [r3, #0x124] - mov r2, r6 - str r0, [sp] - ldr r0, [r5, #4] - ldr r1, [r5, #0xc] - ldr r3, [r3, #0x128] - bl OS_SNPrintf - ldr r1, [r5, #4] - add r0, r1, r0 - str r0, [r5, #4] - mov r0, #0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_021DAE40: .word 0x000019F4 -_021DAE44: .word UNK04_0220C25C -_021DAE48: .word UNK04_0220C2B0 - arm_func_end MOD04_021DAD88 - - arm_func_start MOD04_021DAE4C -MOD04_021DAE4C: ; 0x021DAE4C - stmdb sp!, {r4, r5, lr} - sub sp, sp, #4 - movs r5, r0 - add r1, r5, #0x1000 - ldr r4, [r1, #0x14] - addeq sp, sp, #4 - ldmeqia sp!, {r4, r5, pc} - ldr r1, _021DAF00 ; =0x00001A34 - mov r2, #0x20 - add r1, r5, r1 - bl MOD04_021DA260 - ldr r1, _021DAF04 ; =0x00001A04 - mov r0, r5 - add r1, r5, r1 - bl MOD04_021DAA10 - ldr r1, _021DAF08 ; =0x000019F4 - mov r0, r5 - add r1, r5, r1 - bl MOD04_021DAA10 - add r0, r5, #0x1000 - ldr r1, [r0, #0x9c8] - cmp r1, #0 - beq _021DAEC0 - ldr r0, _021DAF0C ; =UNK04_0220C2D0 - mov r2, #0 - blx r4 - add r0, r5, #0x1000 - mov r1, #0 - str r1, [r0, #0x9c8] -_021DAEC0: - add r0, r5, #0x1000 - ldr r1, [r0, #0x9cc] - cmp r1, #0 - beq _021DAEE8 - ldr r0, _021DAF10 ; =UNK04_0220C2E8 - mov r2, #0 - blx r4 - add r0, r5, #0x1000 - mov r1, #0 - str r1, [r0, #0x9cc] -_021DAEE8: - ldr r2, _021DAF14 ; =0x00001C10 - mov r0, r5 - mov r1, #0 - bl MI_CpuFill8 - add sp, sp, #4 - ldmia sp!, {r4, r5, pc} - .align 2, 0 -_021DAF00: .word 0x00001A34 -_021DAF04: .word 0x00001A04 -_021DAF08: .word 0x000019F4 -_021DAF0C: .word UNK04_0220C2D0 -_021DAF10: .word UNK04_0220C2E8 -_021DAF14: .word 0x00001C10 - arm_func_end MOD04_021DAE4C - - arm_func_start MOD04_021DAF18 -MOD04_021DAF18: ; 0x021DAF18 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - mov sl, r0 - add r0, sl, #0x1000 - ldr fp, [r0, #0x1c] - ldr r0, _021DB224 ; =0x00001134 - ldr r1, _021DB228 ; =0x00001198 - ldr r2, _021DB22C ; =0x00001A04 - add r8, sl, r0 - cmp fp, #0 - mov r0, sl - add r6, sl, r1 - add r7, sl, r2 - mov r5, #0 - ldrle fp, _021DB230 ; =0x0000EA60 - bl MOD04_021DB35C - mov r0, sl - bl MOD04_021DB348 - movs r4, r0 - addeq r0, sl, #0x1000 - moveq r1, #2 - streq r1, [r0, #0x20] - addeq sp, sp, #0xc - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl CPS_SocUse - add r0, sl, #0x1000 - ldr r0, [r0, #0x12c] - cmp r0, #1 - bne _021DAFC8 - mov r0, r6 - mov r1, #0 - mov r2, #0x830 - bl MI_CpuFill8 - ldr r1, _021DB234 ; =MOD04_021DAAC0 - add r0, sl, #0x1000 - str r1, [r6, #0x810] - ldr r1, [r0, #0x124] - ldr r0, _021DB238 ; =UNK04_0220C0E4 - str r1, [r6, #0x800] - mov r1, #0xb - str r6, [r8, #0xc] - bl CPS_SetRootCa - mov r0, #1 - bl CPS_SetSsl -_021DAFC8: - add r0, sl, #0x1100 - ldrh r1, [r0, #0x30] - mov r2, r4 - mov r0, #0 - bl CPS_SocPingMode - bl CPS_TcpConnect - cmp r0, #0 - beq _021DB004 - add r0, sl, #0x1000 - mov r1, #3 - str r1, [r0, #0x20] - bl CPS_SocRelease - bl CPS_SocUnRegister - add sp, sp, #0xc - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_021DB004: - add r0, sl, #0x1000 - ldr r4, [r0, #0x9f4] - mov r0, r4 - bl strlen - mov r1, r0 - mov r0, r4 - bl CPS_SocWrite - cmp r0, #0 - str r0, [sp, #8] - addle r0, sl, #0x1000 - movle r1, #5 - strle r1, [r0, #0x20] - ble _021DB20C - bl CPS_SocGetChar - mov r0, sl - bl MOD04_021DB3B8 - cmp r0, #0 - addeq r0, sl, #0x1000 - moveq r1, #7 - streq r1, [r0, #0x20] - beq _021DB20C - ldr r0, [r7] - str r0, [r7, #4] - ldr r1, [r7] - ldr r0, [r7, #0xc] - add r0, r1, r0 - str r0, [r7, #8] - bl OS_GetTick - mov r6, r0 - mov r0, fp, asr #0x1f - mov r8, r1 - str r0, [sp, #4] - mov r4, #0 -_021DB088: - ldr r0, _021DB23C ; =CPSMyIp - ldr r0, [r0] - cmp r0, #0 - addeq r0, sl, #0x1000 - moveq r1, #5 - streq r1, [r0, #0x20] - beq _021DB20C - bl CPS_SocGetLength - str r0, [sp, #8] - cmp r0, #0 - blt _021DB1E8 - cmp r0, #0 - ble _021DB16C - bl OS_GetTick - mov r6, r0 - add r0, sp, #8 - mov r8, r1 - bl CPS_SocRead - cmp r0, #0 - beq _021DB1E8 - ldr r2, [r7, #8] - ldr r1, [r7, #4] - sub r2, r2, #1 - ldr sb, [sp, #8] - sub r2, r2, r1 - cmp sb, r2 - movge sb, r2 - mov r2, sb - bl MI_CpuCopy8 - ldr r0, [r7, #4] - cmp r5, #1 - add r0, r0, sb - str r0, [r7, #4] - ldr r0, [r7, #4] - strb r4, [r0] - bne _021DB144 - ldr r0, _021DB240 ; =0x00001A14 - add r0, sl, r0 - bl OS_LockMutex - add r1, sl, #0x1000 - ldr r2, [r1, #0xa30] - ldr r0, _021DB240 ; =0x00001A14 - add r2, r2, sb - add r0, sl, r0 - str r2, [r1, #0xa30] - bl OS_UnlockMutex - b _021DB150 -_021DB144: - mov r0, sl - bl MOD04_021DB248 - mov r5, r0 -_021DB150: - ldr r0, [sp, #8] - cmp r0, sb - bls _021DB164 - bl CPS_SocConsume - b _021DB1E8 -_021DB164: - mov r0, sb - bl CPS_SocConsume -_021DB16C: - add r0, sl, #0x1000 - ldr r1, [r0, #0xa2c] - cmp r1, #0 - blt _021DB188 - ldr r0, [r0, #0xa30] - cmp r0, r1 - bge _021DB1E8 -_021DB188: - bl OS_GetTick - subs r2, r0, r6 - sbc r0, r1, r8 - mov r1, r0, lsl #6 - orr r1, r1, r2, lsr #26 - mov r0, r2, lsl #6 - ldr r2, _021DB244 ; =0x000082EA - mov r3, r4 - bl _ll_udiv - ldr r2, [sp, #4] - cmp r1, r2 - cmpeq r0, fp - addhi r0, sl, #0x1000 - movhi r1, #6 - strhi r1, [r0, #0x20] - bhi _021DB20C - mov r0, sl - bl MOD04_021DB3B8 - cmp r0, #0 - bne _021DB088 - add r0, sl, #0x1000 - mov r1, #7 - str r1, [r0, #0x20] - b _021DB20C -_021DB1E8: - bl CPS_TcpShutdown - bl CPS_TcpClose - bl CPS_SocRelease - bl CPS_SocUnRegister - add r0, sl, #0x1000 - mov r1, #8 - str r1, [r0, #0x20] - add sp, sp, #0xc - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_021DB20C: - bl CPS_TcpShutdown - bl CPS_TcpClose - bl CPS_SocRelease - bl CPS_SocUnRegister - add sp, sp, #0xc - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_021DB224: .word 0x00001134 -_021DB228: .word 0x00001198 -_021DB22C: .word 0x00001A04 -_021DB230: .word 0x0000EA60 -_021DB234: .word MOD04_021DAAC0 -_021DB238: .word UNK04_0220C0E4 -_021DB23C: .word CPSMyIp -_021DB240: .word 0x00001A14 -_021DB244: .word 0x000082EA - arm_func_end MOD04_021DAF18 - - arm_func_start MOD04_021DB248 -MOD04_021DB248: ; 0x021DB248 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #4 - mov r5, r0 - add r0, r5, #0x1000 - ldr r6, [r0, #0xa04] - ldr r2, _021DB334 ; =0x00001A04 - ldr r1, _021DB338 ; =UNK04_0220C148 - mov r0, r6 - add r4, r5, r2 - bl strstr - cmp r0, #0 - addeq sp, sp, #4 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r1, _021DB338 ; =UNK04_0220C148 - mov r0, r6 - bl strstr - ldr r1, _021DB33C ; =0x00001A14 - add r6, r0, #4 - add r0, r5, r1 - bl OS_LockMutex - ldr r0, [r4, #4] - ldr r1, _021DB33C ; =0x00001A14 - sub r2, r0, r6 - add r0, r5, #0x1000 - str r2, [r0, #0xa30] - add r0, r5, r1 - bl OS_UnlockMutex - ldr r0, [r4] - ldr r1, _021DB340 ; =UNK04_0220C300 - bl strstr - movs r4, r0 - addeq sp, sp, #4 - moveq r0, #1 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r0, _021DB340 ; =UNK04_0220C300 - bl strlen - add r7, r4, r0 - ldr r1, _021DB344 ; =UNK04_0220C164 - mov r0, r7 - bl strstr - mov r4, r0 - ldr r0, _021DB33C ; =0x00001A14 - ldrsb r6, [r4] - mov r1, #0 - add r0, r5, r0 - strb r1, [r4] - bl OS_LockMutex - mov r0, r7 - bl atol - add r1, r5, #0x1000 - ldr r2, _021DB33C ; =0x00001A14 - str r0, [r1, #0xa2c] - add r0, r5, r2 - bl OS_UnlockMutex - strb r6, [r4] - mov r0, #1 - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, pc} - .align 2, 0 -_021DB334: .word 0x00001A04 -_021DB338: .word UNK04_0220C148 -_021DB33C: .word 0x00001A14 -_021DB340: .word UNK04_0220C300 -_021DB344: .word UNK04_0220C164 - arm_func_end MOD04_021DB248 - - arm_func_start MOD04_021DB348 -MOD04_021DB348: ; 0x021DB348 - ldr ip, _021DB358 ; =CPS_Resolve - add r0, r0, #0x1000 - ldr r0, [r0, #0x124] - bx ip - .align 2, 0 -_021DB358: .word CPS_Resolve - arm_func_end MOD04_021DB348 - - arm_func_start MOD04_021DB35C -MOD04_021DB35C: ; 0x021DB35C - stmdb sp!, {r4, lr} - ldr r1, _021DB3AC ; =0x00001134 - mov r4, r0 - add r0, r4, r1 - mov r1, #0 - mov r2, #0x64 - bl MI_CpuFill8 - ldr r0, _021DB3B0 ; =0x00000B68 - add r1, r4, #0x1000 - str r0, [r1, #0x170] - ldr r3, [r1, #0x9c8] - ldr r0, _021DB3AC ; =0x00001134 - ldr r2, _021DB3B4 ; =0x000005EA - str r3, [r1, #0x174] - str r2, [r1, #0x17c] - ldr r2, [r1, #0x9cc] - add r0, r4, r0 - str r2, [r1, #0x180] - bl CPS_SocRegister - ldmia sp!, {r4, pc} - .align 2, 0 -_021DB3AC: .word 0x00001134 -_021DB3B0: .word 0x00000B68 -_021DB3B4: .word 0x000005EA - arm_func_end MOD04_021DB35C - - arm_func_start MOD04_021DB3B8 -MOD04_021DB3B8: ; 0x021DB3B8 - stmdb sp!, {r4, lr} - mov r4, r0 - add r0, r4, #0x1000 - ldr r0, [r0, #0x12c] - cmp r0, #1 - bne _021DB3EC - ldr r0, _021DB438 ; =0x000019D0 - add r0, r4, r0 - bl OS_GetLowEntropyData - ldr r0, _021DB438 ; =0x000019D0 - mov r1, #0x20 - add r0, r4, r0 - bl CPS_SslAddRandomSeed -_021DB3EC: - ldr r0, _021DB43C ; =0x00001BF4 - add r0, r4, r0 - bl OS_LockMutex - add r0, r4, #0x1000 - ldr r0, [r0, #0xc0c] - cmp r0, #1 - bne _021DB41C - ldr r0, _021DB43C ; =0x00001BF4 - add r0, r4, r0 - bl OS_UnlockMutex - mov r0, #0 - ldmia sp!, {r4, pc} -_021DB41C: - ldr r0, _021DB43C ; =0x00001BF4 - add r0, r4, r0 - bl OS_UnlockMutex - mov r0, #0xa - bl OS_Sleep - mov r0, #1 - ldmia sp!, {r4, pc} - .align 2, 0 -_021DB438: .word 0x000019D0 -_021DB43C: .word 0x00001BF4 - arm_func_end MOD04_021DB3B8 - - arm_func_start MOD04_021DB440 -MOD04_021DB440: ; 0x021DB440 - stmdb sp!, {r4, lr} - mov r4, r0 - add r0, r4, #0x1000 - ldrb r0, [r0] - cmp r0, #0xff - ldmneia sp!, {r4, pc} - ldr r0, _021DB49C ; =0x00001BF4 - add r0, r4, r0 - bl OS_LockMutex - ldr r0, _021DB49C ; =0x00001BF4 - add r1, r4, #0x1000 - mov r2, #1 - add r0, r4, r0 - str r2, [r1, #0xc0c] - bl OS_UnlockMutex - add r0, r4, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, _021DB4A0 ; =0x00001B34 - add r0, r4, r0 - bl OS_JoinThread - ldmia sp!, {r4, pc} - .align 2, 0 -_021DB49C: .word 0x00001BF4 -_021DB4A0: .word 0x00001B34 - arm_func_end MOD04_021DB440 - - arm_func_start MOD04_021DB4A4 -MOD04_021DB4A4: ; 0x021DB4A4 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0xc - ldr r3, _021DB55C ; =0x00001BF4 - mov r5, r0 - add r2, r5, #0x1000 - mov ip, #0 - add r0, r5, r3 - mov r4, r1 - str ip, [r2, #0xc0c] - bl OS_InitMutex - ldr r0, _021DB560 ; =0x00001A14 - add r0, r5, r0 - bl OS_InitMutex - add r0, r5, #0x1000 - ldr r0, [r0, #0x18] - cmp r0, #1 - ldreq r0, _021DB564 ; =UNK04_02210480 - moveq r1, #1 - streq r1, [r0] - ldrne r0, _021DB564 ; =UNK04_02210480 - movne r1, #0 - strne r1, [r0] - add r0, r5, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - beq _021DB524 - ldr r0, _021DB568 ; =0x00001B34 - add r0, r5, r0 - bl OS_IsThreadTerminated - cmp r0, #0 - addeq sp, sp, #0xc - ldmeqia sp!, {r4, r5, pc} -_021DB524: - ldr r0, _021DB568 ; =0x00001B34 - mov r1, #0x1000 - str r1, [sp] - ldr r1, _021DB56C ; =MOD04_021DAF18 - mov r2, r5 - add r0, r5, r0 - add r3, r5, #0x1000 - str r4, [sp, #4] - bl OS_CreateThread - ldr r0, _021DB568 ; =0x00001B34 - add r0, r5, r0 - bl OS_WakeupThreadDirect - add sp, sp, #0xc - ldmia sp!, {r4, r5, pc} - .align 2, 0 -_021DB55C: .word 0x00001BF4 -_021DB560: .word 0x00001A14 -_021DB564: .word UNK04_02210480 -_021DB568: .word 0x00001B34 -_021DB56C: .word MOD04_021DAF18 - arm_func_end MOD04_021DB4A4 - - arm_func_start MOD04_021DB570 -MOD04_021DB570: ; 0x021DB570 - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr r1, _021DB5F4 ; =UNK04_0220C314 - ldr r2, _021DB5F8 ; =UNK04_0220C320 - mov r4, r0 - bl MOD04_021DAC98 - cmp r0, #0 - addne sp, sp, #8 - movne r0, #1 - ldmneia sp!, {r4, pc} - add r0, r4, #0x1000 - ldr r0, [r0, #0x9f4] - ldr r1, _021DB5FC ; =UNK04_0220C148 - bl strstr - add r0, r0, #4 - bl strlen - movs r3, r0 - beq _021DB5E8 - ldr r2, _021DB600 ; =UNK04_0220C328 - add r0, sp, #0 - mov r1, #7 - bl OS_SNPrintf - ldr r1, _021DB604 ; =UNK04_0220C32C - add r2, sp, #0 - mov r0, r4 - bl MOD04_021DAC98 - cmp r0, #0 - addne sp, sp, #8 - movne r0, #1 - ldmneia sp!, {r4, pc} -_021DB5E8: - mov r0, #0 - add sp, sp, #8 - ldmia sp!, {r4, pc} - .align 2, 0 -_021DB5F4: .word UNK04_0220C314 -_021DB5F8: .word UNK04_0220C320 -_021DB5FC: .word UNK04_0220C148 -_021DB600: .word UNK04_0220C328 -_021DB604: .word UNK04_0220C32C - arm_func_end MOD04_021DB570 - - arm_func_start MOD04_021DB608 -MOD04_021DB608: ; 0x021DB608 - stmdb sp!, {r4, r5, r6, lr} - mov r5, r1 - ldr r2, _021DB714 ; =0x00001C10 - mov r6, r0 - ldr r4, [r5, #0xc] - mov r1, #0 - bl MI_CpuFill8 - ldr r1, _021DB718 ; =0x00001004 - add r0, r6, #0x1000 - mvn r2, #0 - str r2, [r0, #0xa2c] - mov lr, r5 - str r2, [r0, #0xa30] - add ip, r6, r1 - ldmia lr!, {r0, r1, r2, r3} - stmia ip!, {r0, r1, r2, r3} - ldmia lr, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldr r0, _021DB71C ; =UNK04_0220C33C - ldr r1, _021DB720 ; =0x00000B68 - blx r4 - add r1, r6, #0x1000 - str r0, [r1, #0x9c8] - ldr r0, [r1, #0x9c8] - cmp r0, #0 - moveq r0, #1 - streq r0, [r1, #0x20] - ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _021DB724 ; =UNK04_0220C354 - ldr r1, _021DB728 ; =0x000005EA - blx r4 - add r2, r6, #0x1000 - str r0, [r2, #0x9cc] - ldr r0, [r2, #0x9cc] - cmp r0, #0 - moveq r0, #1 - streq r0, [r2, #0x20] - ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, _021DB72C ; =0x00001A04 - ldr r2, [r2, #0xc] - mov r0, r6 - add r1, r6, r1 - bl MOD04_021DAA50 - cmp r0, #0 - addeq r1, r6, #0x1000 - moveq r0, #1 - streq r0, [r1, #0x20] - ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, [r5] - mov r0, r6 - bl MOD04_021DA7E8 - cmp r0, #0 - addeq r1, r6, #0x1000 - moveq r0, #1 - streq r0, [r1, #0x20] - ldmeqia sp!, {r4, r5, r6, pc} - mov r0, r6 - bl MOD04_021DAD88 - add r1, r6, #0x1000 - str r0, [r1, #0x20] - ldr r0, [r1, #0x20] - cmp r0, #0 - moveq r0, #0xff - streqb r0, [r1] - add r0, r6, #0x1000 - ldr r0, [r0, #0x20] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_021DB714: .word 0x00001C10 -_021DB718: .word 0x00001004 -_021DB71C: .word UNK04_0220C33C -_021DB720: .word 0x00000B68 -_021DB724: .word UNK04_0220C354 -_021DB728: .word 0x000005EA -_021DB72C: .word 0x00001A04 - arm_func_end MOD04_021DB608 - arm_func_start MOD04_021DB730 MOD04_021DB730: ; 0x021DB730 stmdb sp!, {r4, lr} @@ -58665,175 +57172,6 @@ UNK04_0220BE70: ; 0x0220BE70 .section .data - .global UNK_0220C0E4 -UNK04_0220C0E4: ; 0x0220C0E4 - .word UNK04_0220CF18, UNK04_0220CDEC, UNK04_0220D0CC, UNK04_0220D1A8 - .word UNK04_0220C684, UNK04_0220C920, UNK04_0220CA08, UNK04_0220C7D0 - .word UNK04_0220CCD4, UNK04_0220CBB4, UNK04_0220CACC - - .global UNK_0220C110 -UNK04_0220C110: ; 0x0220C110 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5F, 0x65, 0x6E, 0x74, 0x72, 0x79 - .byte 0x5B, 0x69, 0x5D, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x00, 0x00, 0x00 - - .global UNK_0220C12C -UNK04_0220C12C: ; 0x0220C12C - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5F, 0x65, 0x6E, 0x74, 0x72, 0x79 - .byte 0x5B, 0x69, 0x5D, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x00, 0x00, 0x00 - - .global UNK_0220C148 -UNK04_0220C148: ; 0x0220C148 - .byte 0x0D, 0x0A, 0x0D, 0x0A, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C150 -UNK04_0220C150: ; 0x0220C150 - .byte 0x20, 0x00, 0x00, 0x00 - - .global UNK_0220C154 -UNK04_0220C154: ; 0x0220C154 - .byte 0x68, 0x74, 0x74, 0x70, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x00 - - .global UNK_0220C160 -UNK04_0220C160: ; 0x0220C160 - .byte 0x32, 0x30, 0x30, 0x00 - - .global UNK_0220C164 -UNK04_0220C164: ; 0x0220C164 - .byte 0x0D, 0x0A, 0x00, 0x00 - - .global UNK_0220C168 -UNK04_0220C168: ; 0x0220C168 - .byte 0x3A, 0x20, 0x00, 0x00 - - .global UNK_0220C16C -UNK04_0220C16C: ; 0x0220C16C - .byte 0x3D, 0x00, 0x00, 0x00 - - .global UNK_0220C170 -UNK04_0220C170: ; 0x0220C170 - .byte 0x26, 0x00, 0x00, 0x00 - - .global UNK_0220C174 -UNK04_0220C174: ; 0x0220C174 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x65, 0x6E - .byte 0x74, 0x72, 0x79, 0x5B, 0x69, 0x5D, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C194 -UNK04_0220C194: ; 0x0220C194 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x65, 0x6E - .byte 0x74, 0x72, 0x79, 0x5B, 0x69, 0x5D, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C1B4 -UNK04_0220C1B4: ; 0x0220C1B4 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x65, 0x6E, 0x74 - .byte 0x72, 0x79, 0x5B, 0x69, 0x5D, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x00 - - .global UNK_0220C1D0 -UNK04_0220C1D0: ; 0x0220C1D0 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x65, 0x6E, 0x74 - .byte 0x72, 0x79, 0x5B, 0x69, 0x5D, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x00 - - .global UNK_0220C1EC -UNK04_0220C1EC: ; 0x0220C1EC - .byte 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x00 - - .global UNK_0220C1F4 -UNK04_0220C1F4: ; 0x0220C1F4 - .byte 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C200 -UNK04_0220C200: ; 0x0220C200 - .byte 0x3A, 0x00, 0x00, 0x00 - - .global UNK_0220C204 -UNK04_0220C204: ; 0x0220C204 - .byte 0x2F, 0x00, 0x00, 0x00 - - .global UNK_0220C208 -UNK04_0220C208: ; 0x0220C208 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x6E, 0x65, 0x77, 0x70, 0x74, 0x72, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C218 -UNK04_0220C218: ; 0x0220C218 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x62, 0x75, 0x66, 0x2D, 0x3E, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C22C -UNK04_0220C22C: ; 0x0220C22C - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x62, 0x75, 0x66, 0x2D, 0x3E, 0x62, 0x75, 0x66, 0x66, 0x65 - .byte 0x72, 0x00, 0x00, 0x00 - - .global UNK_0220C240 -UNK04_0220C240: ; 0x0220C240 - .byte 0x25, 0x73, 0x00, 0x00 - - .global UNK_0220C244 -UNK04_0220C244: ; 0x0220C244 - .byte 0x25, 0x73, 0x3D, 0x00 - - .global UNK_0220C248 -UNK04_0220C248: ; 0x0220C248 - .byte 0x26, 0x25, 0x73, 0x3D, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C250 -UNK04_0220C250: ; 0x0220C250 - .byte 0x25, 0x73, 0x3A, 0x20, 0x25, 0x73, 0x0D, 0x0A, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C25C -UNK04_0220C25C: ; 0x0220C25C - .byte 0x50, 0x4F, 0x53, 0x54, 0x20, 0x2F, 0x25, 0x73, 0x20, 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E - .byte 0x30, 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A - .byte 0x20, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, 0x77 - .byte 0x77, 0x77, 0x2D, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x75, 0x72, 0x6C, 0x65, 0x6E, 0x63, 0x6F, 0x64 - .byte 0x65, 0x64, 0x0D, 0x0A, 0x48, 0x6F, 0x73, 0x74, 0x3A, 0x20, 0x25, 0x73, 0x0D, 0x0A, 0x0D, 0x0A - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C2B0 -UNK04_0220C2B0: ; 0x0220C2B0 - .byte 0x47, 0x45, 0x54, 0x20, 0x2F, 0x25, 0x73, 0x20, 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30 - .byte 0x0D, 0x0A, 0x48, 0x6F, 0x73, 0x74, 0x3A, 0x20, 0x25, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x00, 0x00 - - .global UNK_0220C2D0 -UNK04_0220C2D0: ; 0x0220C2D0 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2D, 0x3E, 0x6C, 0x6F, 0x77, 0x72, 0x65 - .byte 0x63, 0x76, 0x62, 0x75, 0x66, 0x00, 0x00, 0x00 - - .global UNK_0220C2E8 -UNK04_0220C2E8: ; 0x0220C2E8 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2D, 0x3E, 0x6C, 0x6F, 0x77, 0x73, 0x65 - .byte 0x6E, 0x64, 0x62, 0x75, 0x66, 0x00, 0x00, 0x00 - - .global UNK_0220C300 -UNK04_0220C300: ; 0x0220C300 - .byte 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, 0x4C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x3A, 0x20 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C314 -UNK04_0220C314: ; 0x0220C314 - .byte 0x43, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x00 - - .global UNK_0220C320 -UNK04_0220C320: ; 0x0220C320 - .byte 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x00, 0x00 - - .global UNK_0220C328 -UNK04_0220C328: ; 0x0220C328 - .byte 0x25, 0x64, 0x00, 0x00 - - .global UNK_0220C32C -UNK04_0220C32C: ; 0x0220C32C - .byte 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, 0x4C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x00, 0x00 - - .global UNK_0220C33C -UNK04_0220C33C: ; 0x0220C33C - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2D, 0x3E, 0x6C, 0x6F, 0x77, 0x72 - .byte 0x65, 0x63, 0x76, 0x62, 0x75, 0x66, 0x00, 0x00 - - .global UNK_0220C354 -UNK04_0220C354: ; 0x0220C354 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2D, 0x3E, 0x6C, 0x6F, 0x77, 0x73 - .byte 0x65, 0x6E, 0x64, 0x62, 0x75, 0x66, 0x00, 0x00 - .global UNK_0220C36C UNK04_0220C36C: ; 0x0220C36C .word UNK04_0220C370 @@ -59075,7 +57413,7 @@ UNK04_0220C63C: ; 0x0220C63C UNK04_0220C680: ; 0x0220C680 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220C684 + .global UNK04_0220C684 UNK04_0220C684: ; 0x0220C684 .word UNK04_0220C698, 0x00000100, UNK04_0220C6CC, 0x00000003 .word UNK04_0220C680 @@ -59111,7 +57449,7 @@ UNK04_0220C6CC: ; 0x0220C6CC UNK04_0220C7CC: ; 0x0220C7CC .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220C7D0 + .global UNK04_0220C7D0 UNK04_0220C7D0: ; 0x0220C7D0 .word UNK04_0220C7E4, 0x00000100, UNK04_0220C81C, 0x00000003 .word UNK04_0220C7CC @@ -59148,7 +57486,7 @@ UNK04_0220C81C: ; 0x0220C81C UNK04_0220C91C: ; 0x0220C91C .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220C920 + .global UNK04_0220C920 UNK04_0220C920: ; 0x0220C920 .word UNK04_0220C934, 0x00000080, UNK04_0220C984, 0x00000003 .word UNK04_0220C91C @@ -59178,7 +57516,7 @@ UNK04_0220C984: ; 0x0220C984 UNK04_0220CA04: ; 0x0220CA04 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CA08 + .global UNK04_0220CA08 UNK04_0220CA08: ; 0x0220CA08 .word UNK04_0220CA1C, 0x00000080, UNK04_0220CA48, 0x00000003 .word UNK04_0220CA04 @@ -59204,7 +57542,7 @@ UNK04_0220CA48: ; 0x0220CA48 UNK04_0220CAC8: ; 0x0220CAC8 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CACC + .global UNK04_0220CACC UNK04_0220CACC: ; 0x0220CACC .word UNK04_0220CAE0, 0x00000080, UNK04_0220CB30, 0x00000003 .word UNK04_0220CAC8 @@ -59234,7 +57572,7 @@ UNK04_0220CB30: ; 0x0220CB30 UNK04_0220CBB0: ; 0x0220CBB0 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CBB4 + .global UNK04_0220CBB4 UNK04_0220CBB4: ; 0x0220CBB4 .word UNK04_0220CC48, 0x00000080, UNK04_0220CBC8, 0x00000003 .word UNK04_0220CBB0 @@ -59266,7 +57604,7 @@ UNK04_0220CC48: ; 0x0220CC48 UNK04_0220CCD0: ; 0x0220CCD0 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CCD4 + .global UNK04_0220CCD4 UNK04_0220CCD4: ; 0x0220CCD4 .word UNK04_0220CCE8, 0x00000080, UNK04_0220CD68, 0x00000003 .word UNK04_0220CCD0 @@ -59297,7 +57635,7 @@ UNK04_0220CD68: ; 0x0220CD68 UNK04_0220CDE8: ; 0x0220CDE8 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CDEC + .global UNK04_0220CDEC UNK04_0220CDEC: ; 0x0220CDEC .word UNK04_0220CE80, 0x00000080, UNK04_0220CE00, 0x00000003 .word UNK04_0220CDE8 @@ -59331,7 +57669,7 @@ UNK04_0220CE80: ; 0x0220CE80 UNK04_0220CF14: ; 0x0220CF14 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220CF18 + .global UNK04_0220CF18 UNK04_0220CF18: ; 0x0220CF18 .word UNK04_0220CF2C, 0x00000100, UNK04_0220CFC8, 0x00000003 .word UNK04_0220CF14 @@ -59372,7 +57710,7 @@ UNK04_0220CFC8: ; 0x0220CFC8 UNK04_0220D0C8: ; 0x0220D0C8 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220D0CC + .global UNK04_0220D0CC UNK04_0220D0CC: ; 0x0220D0CC .word UNK04_0220D0E0, 0x00000080, UNK04_0220D124, 0x00000003 .word UNK04_0220D0C8 @@ -59401,7 +57739,7 @@ UNK04_0220D124: ; 0x0220D124 UNK04_0220D1A4: ; 0x0220D1A4 .byte 0x01, 0x00, 0x01, 0x00 - .global UNK_0220D1A8 + .global UNK04_0220D1A8 UNK04_0220D1A8: ; 0x0220D1A8 .word UNK04_0220D1BC, 0x0000007D, UNK04_0220D200, 0x00000003 .word UNK04_0220D1A4 diff --git a/arm9/modules/04/asm/mod04_021D9C2C.s b/arm9/modules/04/asm/mod04_021D9C2C.s index 206df265..fdff3193 100644 --- a/arm9/modules/04/asm/mod04_021D9C2C.s +++ b/arm9/modules/04/asm/mod04_021D9C2C.s @@ -542,7 +542,7 @@ UNK04_0220C0B8: ; 0x0220C0B8 .asciz "%02d%02d%02d%02d%02d%02d" .balign 4, 0 - .global UNK_0220C0D4 + .global UNK04_0220C0D4 UNK04_0220C0D4: ; 0x0220C0D4 .asciz "%02d:0000000-00" diff --git a/arm9/modules/04/asm/mod04_021DA260.s b/arm9/modules/04/asm/mod04_021DA260.s new file mode 100644 index 00000000..de6114d7 --- /dev/null +++ b/arm9/modules/04/asm/mod04_021DA260.s @@ -0,0 +1,1689 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + arm_func_start MOD04_021DA260 +MOD04_021DA260: ; 0x021DA260 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + add r0, r0, #0x1000 + mov sb, r2 + cmp sb, #0 + ldr r8, [r0, #0x14] + mov sl, r1 + mov r7, #0 + addle sp, sp, #4 + ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r6, r7 + mov r5, r7 + mov fp, r7 + mov r4, r7 +_021DA298: + ldr r1, [sl, r7, lsl #3] + cmp r1, #0 + beq _021DA2B4 + ldr r0, _021DA2EC ; =UNK04_0220C110 + mov r2, r6 + blx r8 + str r5, [sl, r7, lsl #3] +_021DA2B4: + add r0, sl, r7, lsl #3 + ldr r1, [r0, #4] + cmp r1, #0 + beq _021DA2D8 + ldr r0, _021DA2F0 ; =UNK04_0220C12C + mov r2, fp + blx r8 + add r0, sl, r7, lsl #3 + str r4, [r0, #4] +_021DA2D8: + add r7, r7, #1 + cmp r7, sb + blt _021DA298 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_021DA2EC: .word UNK04_0220C110 +_021DA2F0: .word UNK04_0220C12C + arm_func_end MOD04_021DA260 + + arm_func_start MOD04_021DA2F4 +MOD04_021DA2F4: ; 0x021DA2F4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r2 + mov r5, r3 + bl MOD04_021DA388 + movs r4, r0 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + bl strlen + cmp r0, r5 + movge r0, #0 + ldmgeia sp!, {r4, r5, r6, pc} + mov r0, r6 + mov r1, r4 + bl strcpy + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA2F4 + + arm_func_start MOD04_021DA334 +MOD04_021DA334: ; 0x021DA334 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r2 + mov r5, r3 + bl MOD04_021DA388 + movs r4, r0 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + bl strlen + mov r1, r0 + mov r0, r4 + mov r2, r6 + mov r3, r5 + bl MOD04_021DD36C + mvn r1, #0 + cmp r0, r1 + ldmeqia sp!, {r4, r5, r6, pc} + cmp r0, r5 + ldmhsia sp!, {r4, r5, r6, pc} + mov r1, #0 + strb r1, [r6, r0] + ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA334 + + arm_func_start MOD04_021DA388 +MOD04_021DA388: ; 0x021DA388 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, #0 +_021DA398: + add r0, r6, r4, lsl #3 + add r0, r0, #0x1000 + ldr r1, [r0, #0xa34] + cmp r1, #0 + beq _021DA3D4 + mov r0, r5 + bl strcmp + cmp r0, #0 + addeq r0, r6, r4, lsl #3 + addeq r0, r0, #0x1000 + ldreq r0, [r0, #0xa38] + ldmeqia sp!, {r4, r5, r6, pc} + add r4, r4, #1 + cmp r4, #0x20 + blt _021DA398 +_021DA3D4: + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA388 + + arm_func_start MOD04_021DA3DC +MOD04_021DA3DC: ; 0x021DA3DC + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r2, _021DA668 ; =0x00001A34 + mov fp, r0 + add r0, fp, r2 + mov r6, r1 + mov r3, #0x20 + mov r1, #0 + mov r2, #0x100 + str r0, [sp, #8] + str r3, [sp, #0xc] + str r1, [sp, #0x10] + bl MI_CpuFill8 + add r0, fp, #0x1000 + ldr r5, [r0, #0xa04] + ldr r1, _021DA66C ; =UNK04_0220C148 + mov r0, r5 + bl strstr + str r0, [sp] + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r0, #4 + bl strlen + ldr r1, [sp] + add r1, r1, #4 + add r0, r1, r0 + str r0, [sp, #4] + ldr r1, _021DA670 ; =UNK04_0220C150 + mov r0, r5 + bl strstr + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r8, r0, #1 + ldrsb r7, [r8, #3] + ldr r2, _021DA674 ; =UNK04_0220C154 + mov r5, #0 + add r1, sp, #8 + mov r0, fp + mov r3, r8 + strb r5, [r8, #3] + bl MOD04_021DA68C + cmp r0, #1 + addne sp, sp, #0x14 + strneb r7, [r8, #3] + movne r0, r5 + ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + strb r7, [r8, #3] + cmp r6, #1 + beq _021DA4C8 + ldr r1, _021DA678 ; =UNK04_0220C160 + mov r0, r8 + mov r2, #3 + bl strncmp + cmp r0, #0 + beq _021DA4D4 +_021DA4C8: + add sp, sp, #0x14 + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_021DA4D4: + ldr r1, _021DA67C ; =UNK04_0220C164 + add r0, r8, #4 + bl strstr + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, r5 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add sb, r0, #2 + mov r6, r5 + b _021DA580 +_021DA4FC: + ldr r1, _021DA680 ; =UNK04_0220C168 + mov r0, sb + bl strstr + movs r7, r0 + beq _021DA598 + ldrsb sl, [r7] + add r8, r7, #2 + ldr r1, _021DA67C ; =UNK04_0220C164 + mov r0, r8 + strb r6, [r7] + bl strstr + movs r5, r0 + streqb sl, [r7] + beq _021DA598 + ldrsb r4, [r5] + mov r0, fp + mov r2, sb + strb r6, [r5] + add r1, sp, #8 + mov r3, r8 + bl MOD04_021DA68C + cmp r0, #1 + strneb sl, [r7] + addne sp, sp, #0x14 + strneb r4, [r5] + movne r0, #0 + ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r8 + bl strlen + strb sl, [r7] + add r0, r8, r0 + strb r4, [r5] + add sb, r0, #2 +_021DA580: + ldrsb r0, [sb] + cmp r0, #0xd + beq _021DA598 + ldrsb r0, [sb, #1] + cmp r0, #0xa + bne _021DA4FC +_021DA598: + ldr r0, [sp] + add r8, r0, #4 + ldr r0, [sp, #4] + cmp r8, r0 + bhs _021DA65C + mov r5, #0 +_021DA5B0: + ldr r1, _021DA684 ; =UNK04_0220C16C + mov r0, r8 + bl strstr + movs sl, r0 + beq _021DA65C + ldrsb r7, [sl] + add sb, sl, #1 + ldr r1, _021DA688 ; =UNK04_0220C170 + mov r0, sb + strb r5, [sl] + bl strstr + movs r6, r0 + bne _021DA5F4 + ldr r1, _021DA67C ; =UNK04_0220C164 + mov r0, sb + bl strstr + mov r6, r0 +_021DA5F4: + cmp r6, #0 + ldrnesb r4, [r6] + mov r0, fp + mov r2, r8 + add r1, sp, #8 + mov r3, sb + strneb r5, [r6] + bl MOD04_021DA68C + cmp r0, #1 + beq _021DA634 + strb r7, [sl] + cmp r6, #0 + add sp, sp, #0x14 + strneb r4, [r6] + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_021DA634: + mov r0, sb + bl strlen + add r0, sb, r0 + add r8, r0, #1 + ldr r0, [sp, #4] + strb r7, [sl] + cmp r6, #0 + strneb r4, [r6] + cmp r8, r0 + blo _021DA5B0 +_021DA65C: + mov r0, #1 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_021DA668: .word 0x00001A34 +_021DA66C: .word UNK04_0220C148 +_021DA670: .word UNK04_0220C150 +_021DA674: .word UNK04_0220C154 +_021DA678: .word UNK04_0220C160 +_021DA67C: .word UNK04_0220C164 +_021DA680: .word UNK04_0220C168 +_021DA684: .word UNK04_0220C16C +_021DA688: .word UNK04_0220C170 + arm_func_end MOD04_021DA3DC + + arm_func_start MOD04_021DA68C +MOD04_021DA68C: ; 0x021DA68C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r1 + ldr r4, [r8, #8] + ldr r1, [r8, #4] + add r0, r0, #0x1000 + cmp r4, r1 + ldr r5, [r0, #0x10] + ldr r4, [r0, #0x14] + mov r7, r2 + mov r6, r3 + movgt r0, #0 + ldmgtia sp!, {r4, r5, r6, r7, r8, pc} + mov r0, r7 + bl strlen + mov r1, r0 + ldr r0, _021DA7D8 ; =UNK04_0220C174 + add r1, r1, #1 + blx r5 + ldr r2, [r8] + ldr r1, [r8, #8] + str r0, [r2, r1, lsl #3] + ldr r3, [r8, #8] + ldr r2, [r8] + ldr r0, [r2, r3, lsl #3] + cmp r0, #0 + beq _021DA770 + mov r0, r6 + bl strlen + mov r1, r0 + ldr r0, _021DA7DC ; =UNK04_0220C194 + add r1, r1, #1 + blx r5 + ldr r2, [r8] + ldr r1, [r8, #8] + add r1, r2, r1, lsl #3 + str r0, [r1, #4] + ldr r3, [r8, #8] + ldr r2, [r8] + mov r1, r3, lsl #3 + add r0, r2, r3, lsl #3 + ldr r0, [r0, #4] + cmp r0, #0 + beq _021DA770 + ldr r0, [r2, r1] + mov r1, r7 + bl strcpy + ldr r2, [r8] + ldr r0, [r8, #8] + mov r1, r6 + add r0, r2, r0, lsl #3 + ldr r0, [r0, #4] + bl strcpy + ldr r1, [r8, #8] + mov r0, #1 + add r1, r1, #1 + str r1, [r8, #8] + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_021DA770: + ldr r1, [r2, r3, lsl #3] + cmp r1, #0 + beq _021DA798 + ldr r0, _021DA7E0 ; =UNK04_0220C1B4 + mov r2, #0 + blx r4 + ldr r1, [r8] + ldr r0, [r8, #8] + mov r2, #0 + str r2, [r1, r0, lsl #3] +_021DA798: + ldr r1, [r8] + ldr r0, [r8, #8] + add r0, r1, r0, lsl #3 + ldr r1, [r0, #4] + cmp r1, #0 + beq _021DA7D0 + ldr r0, _021DA7E4 ; =UNK04_0220C1D0 + mov r2, #0 + blx r4 + ldr r1, [r8] + ldr r0, [r8, #8] + mov r2, #0 + add r0, r1, r0, lsl #3 + str r2, [r0, #4] +_021DA7D0: + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_021DA7D8: .word UNK04_0220C174 +_021DA7DC: .word UNK04_0220C194 +_021DA7E0: .word UNK04_0220C1B4 +_021DA7E4: .word UNK04_0220C1D0 + arm_func_end MOD04_021DA68C + + arm_func_start MOD04_021DA7E8 +MOD04_021DA7E8: ; 0x021DA7E8 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r1 + mov r5, r0 + mov r0, r6 + mov r4, #0 + bl strlen + cmp r0, #0x100 + movhs r0, r4 + ldmhsia sp!, {r4, r5, r6, pc} + ldr r0, _021DA934 ; =0x00001024 + mov r1, r6 + add r0, r5, r0 + mov r2, #0x100 + bl strncpy + mov r0, r6 + bl strlen + ldr r1, _021DA934 ; =0x00001024 + mov r6, r0 + add r0, r5, r1 + bl strlen + cmp r6, r0 + movne r0, r4 + ldmneia sp!, {r4, r5, r6, pc} + ldr r0, _021DA934 ; =0x00001024 + ldr r1, _021DA938 ; =UNK04_0220C1EC + add r0, r5, r0 + bl strstr + cmp r0, #0 + beq _021DA884 + ldr r0, _021DA93C ; =0x0000102B + add r1, r5, #0x1000 + add r0, r5, r0 + str r0, [r1, #0x124] + mov r0, r4 + str r0, [r1, #0x12c] + add r0, r5, #0x1100 + mov r1, #0x50 + strh r1, [r0, #0x30] + b _021DA8C0 +_021DA884: + ldr r0, _021DA934 ; =0x00001024 + ldr r1, _021DA940 ; =UNK04_0220C1F4 + add r0, r5, r0 + bl strstr + cmp r0, #0 + moveq r0, r4 + ldmeqia sp!, {r4, r5, r6, pc} + add r1, r0, #8 + add r0, r5, #0x1000 + str r1, [r0, #0x124] + mov r2, #1 + ldr r1, _021DA944 ; =0x000001BB + str r2, [r0, #0x12c] + add r0, r5, #0x1100 + strh r1, [r0, #0x30] +_021DA8C0: + add r0, r5, #0x1000 + ldr r0, [r0, #0x124] + ldr r1, _021DA948 ; =UNK04_0220C200 + bl strstr + cmp r0, #0 + movne r1, #0 + strneb r1, [r0] + addne r4, r0, #1 + add r0, r5, #0x1000 + ldr r0, [r0, #0x124] + ldr r1, _021DA94C ; =UNK04_0220C204 + bl strstr + cmp r0, #0 + addeq r0, r5, #0x1000 + moveq r1, #0 + streq r1, [r0, #0x128] + movne r1, #0 + strneb r1, [r0] + addne r1, r0, #1 + addne r0, r5, #0x1000 + strne r1, [r0, #0x128] + cmp r4, #0 + beq _021DA92C + mov r0, r4 + bl atol + add r1, r5, #0x1100 + strh r0, [r1, #0x30] +_021DA92C: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_021DA934: .word 0x00001024 +_021DA938: .word UNK04_0220C1EC +_021DA93C: .word 0x0000102B +_021DA940: .word UNK04_0220C1F4 +_021DA944: .word 0x000001BB +_021DA948: .word UNK04_0220C200 +_021DA94C: .word UNK04_0220C204 + arm_func_end MOD04_021DA7E8 + + arm_func_start MOD04_021DA950 +MOD04_021DA950: ; 0x021DA950 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + add r0, r0, #0x1000 + mov r5, r2 + cmp r5, #0 + ldr r7, [r0, #0x14] + ldr r2, [r0, #0x10] + mov r6, r1 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, r6, r7, pc} + ldr r1, [r6, #0xc] + ldr r0, _021DAA08 ; =UNK04_0220C208 + add r1, r1, r5 + blx r2 + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r0, [r6] + ldr r2, [r6, #0xc] + mov r1, r4 + bl MI_CpuCopy8 + ldr r1, [r6] + ldr r0, _021DAA0C ; =UNK04_0220C218 + mov r2, #0 + blx r7 + cmp r4, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r0, [r6] + ldr r1, [r6, #4] + sub r0, r4, r0 + add r0, r1, r0 + str r0, [r6, #4] + ldr r1, [r6, #0xc] + mov r0, #1 + add r1, r1, r5 + str r1, [r6, #0xc] + str r4, [r6] + ldr r1, [r6, #0xc] + add r1, r4, r1 + str r1, [r6, #8] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_021DAA08: .word UNK04_0220C208 +_021DAA0C: .word UNK04_0220C218 + arm_func_end MOD04_021DA950 + + arm_func_start MOD04_021DAA10 +MOD04_021DAA10: ; 0x021DAA10 + stmdb sp!, {r4, lr} + mov r4, r1 + ldr r1, [r4] + add r0, r0, #0x1000 + cmp r1, #0 + ldr r3, [r0, #0x14] + beq _021DAA38 + ldr r0, _021DAA4C ; =UNK04_0220C218 + mov r2, #0 + blx r3 +_021DAA38: + mov r0, r4 + mov r1, #0 + mov r2, #0x10 + bl MI_CpuFill8 + ldmia sp!, {r4, pc} + .align 2, 0 +_021DAA4C: .word UNK04_0220C218 + arm_func_end MOD04_021DAA10 + + arm_func_start MOD04_021DAA50 +MOD04_021DAA50: ; 0x021DAA50 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + movs r5, r2 + add r0, r0, #0x1000 + ldr r2, [r0, #0x10] + mov r4, r1 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r0, _021DAABC ; =UNK04_0220C22C + mov r1, r5 + blx r2 + str r0, [r4] + ldr r0, [r4] + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + str r0, [r4, #4] + str r5, [r4, #0xc] + ldr r2, [r4] + ldr r1, [r4, #0xc] + mov r0, #1 + add r1, r2, r1 + str r1, [r4, #8] + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_021DAABC: .word UNK04_0220C22C + arm_func_end MOD04_021DAA50 + + arm_func_start MOD04_021DAAC0 +MOD04_021DAAC0: ; 0x021DAAC0 + ands r1, r0, #0x8000 + bicne r0, r0, #0x8000 + bx lr + arm_func_end MOD04_021DAAC0 + + arm_func_start MOD04_021DAACC +MOD04_021DAACC: ; 0x021DAACC + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r2, _021DAB60 ; =0x000019F4 + mov r7, r0 + mov r6, r1 + mov r0, r6 + add r4, r7, r2 + bl strlen + mov r5, r0 + ldr r0, [r4, #4] + ldr r1, [r4, #8] + sub r1, r1, r0 + cmp r5, r1 + ble _021DAB34 + sub r2, r5, r1 + mov r0, r7 + mov r1, r4 + add r2, r2, #1 + bl MOD04_021DA950 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r0, [r4, #4] + ldr r1, [r4, #8] + sub r1, r1, r0 +_021DAB34: + ldr r2, _021DAB64 ; =UNK04_0220C240 + mov r3, r6 + bl OS_SNPrintf + cmp r0, r5 + ldreq r1, [r4, #4] + movne r0, #1 + addeq r0, r1, r0 + streq r0, [r4, #4] + moveq r0, #0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_021DAB60: .word 0x000019F4 +_021DAB64: .word UNK04_0220C240 + arm_func_end MOD04_021DAACC + + arm_func_start MOD04_021DAB68 +MOD04_021DAB68: ; 0x021DAB68 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + add r0, sl, #0x1000 + ldr r4, [r0, #0x9f0] + ldr r0, _021DAC8C ; =0x000019F4 + cmp r4, #0 + ldreq r6, _021DAC90 ; =UNK04_0220C244 + mov r8, r2 + add r5, sl, #0x1000 + add r4, sl, r0 + ldr r0, [r5, #0x9f0] + mov r7, r3 + add fp, r0, #1 + mov r2, #0 + mov sb, r1 + ldrne r6, _021DAC94 ; =UNK04_0220C248 + mov r0, r8 + mov r1, r7 + mov r3, r2 + str fp, [r5, #0x9f0] + bl MOD04_021DD4FC + mov r5, r0 + mov r0, r6 + bl strlen + mov fp, r0 + mov r0, sb + bl strlen + sub r1, fp, #2 + add r2, r1, r0 + ldr r0, [r4, #4] + ldr r1, [r4, #8] + add r2, r5, r2 + sub r1, r1, r0 + cmp r2, r1 + ble _021DAC28 + sub r2, r2, r1 + mov r0, sl + mov r1, r4 + add r2, r2, #1 + bl MOD04_021DA950 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #4] + ldr r1, [r4, #8] + sub r1, r1, r0 +_021DAC28: + mov r2, r6 + mov r3, sb + bl OS_SNPrintf + ldr r2, [r4, #4] + mov r1, r7 + add r0, r2, r0 + str r0, [r4, #4] + ldr r2, [r4, #4] + ldr r3, [r4, #8] + mov r0, r8 + sub r3, r3, r2 + sub r3, r3, #1 + bl MOD04_021DD4FC + cmp r0, #0 + addlt sp, sp, #4 + movlt r0, #1 + ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #4] + mov r0, #0 + add r1, r1, r5 + str r1, [r4, #4] + ldr r1, [r4, #4] + strb r0, [r1] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_021DAC8C: .word 0x000019F4 +_021DAC90: .word UNK04_0220C244 +_021DAC94: .word UNK04_0220C248 + arm_func_end MOD04_021DAB68 + + arm_func_start MOD04_021DAC98 +MOD04_021DAC98: ; 0x021DAC98 + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #4 + mov r6, r2 + mov r8, r0 + ldr r2, _021DAD7C ; =0x000019F4 + mov r0, r6 + mov r7, r1 + add r5, r8, r2 + bl strlen + mov r4, r0 + ldr r0, _021DAD80 ; =UNK04_0220C250 + bl strlen + mov sb, r0 + mov r0, r7 + bl strlen + sub r1, sb, #4 + add r0, r1, r0 + add r4, r4, r0 + ldr r2, [r5, #8] + ldr r1, [r5, #4] + add r0, r4, #1 + sub r1, r2, r1 + cmp r0, r1 + ble _021DAD1C + sub r2, r4, r1 + mov r0, r8 + mov r1, r5 + add r2, r2, #1 + bl MOD04_021DA950 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} +_021DAD1C: + ldr r0, [r5] + ldr r1, _021DAD84 ; =UNK04_0220C148 + bl strstr + add r8, r0, #2 + ldrsb sb, [r0, #2] + mov r0, r8 + bl strlen + add r2, r0, #1 + add r0, r8, r4 + mov r1, r8 + bl memmove + ldr r2, _021DAD80 ; =UNK04_0220C250 + str r6, [sp] + mov r3, r7 + mov r0, r8 + add r1, r4, #1 + bl OS_SNPrintf + strb sb, [r8, r0] + ldr r1, [r5, #4] + mov r0, #0 + add r1, r1, r4 + str r1, [r5, #4] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_021DAD7C: .word 0x000019F4 +_021DAD80: .word UNK04_0220C250 +_021DAD84: .word UNK04_0220C148 + arm_func_end MOD04_021DAC98 + + arm_func_start MOD04_021DAD88 +MOD04_021DAD88: ; 0x021DAD88 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r7, r0 + add r0, r7, #0x1000 + ldr r1, [r0, #8] + ldr r0, _021DAE40 ; =0x000019F4 + cmp r1, #0 + ldreq r6, _021DAE44 ; =UNK04_0220C25C + add r5, r7, r0 + add r0, r7, #0x1000 + ldrne r6, _021DAE48 ; =UNK04_0220C2B0 + ldr r0, [r0, #0x124] + bl strlen + mov r4, r0 + mov r0, r6 + bl strlen + add r1, r7, #0x1000 + mov r8, r0 + ldr r0, [r1, #0x128] + bl strlen + sub r1, r8, #4 + add r0, r1, r0 + add r1, r4, r0 + ldr r0, _021DAE40 ; =0x000019F4 + add r2, r1, #0x400 + add r1, r7, r0 + mov r0, r7 + bl MOD04_021DAA50 + cmp r0, #1 + addne sp, sp, #8 + movne r0, #1 + ldmneia sp!, {r4, r5, r6, r7, r8, pc} + add r3, r7, #0x1000 + ldr r0, [r3, #0x124] + mov r2, r6 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x128] + bl OS_SNPrintf + ldr r1, [r5, #4] + add r0, r1, r0 + str r0, [r5, #4] + mov r0, #0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_021DAE40: .word 0x000019F4 +_021DAE44: .word UNK04_0220C25C +_021DAE48: .word UNK04_0220C2B0 + arm_func_end MOD04_021DAD88 + + arm_func_start MOD04_021DAE4C +MOD04_021DAE4C: ; 0x021DAE4C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + movs r5, r0 + add r1, r5, #0x1000 + ldr r4, [r1, #0x14] + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, pc} + ldr r1, _021DAF00 ; =0x00001A34 + mov r2, #0x20 + add r1, r5, r1 + bl MOD04_021DA260 + ldr r1, _021DAF04 ; =0x00001A04 + mov r0, r5 + add r1, r5, r1 + bl MOD04_021DAA10 + ldr r1, _021DAF08 ; =0x000019F4 + mov r0, r5 + add r1, r5, r1 + bl MOD04_021DAA10 + add r0, r5, #0x1000 + ldr r1, [r0, #0x9c8] + cmp r1, #0 + beq _021DAEC0 + ldr r0, _021DAF0C ; =UNK04_0220C2D0 + mov r2, #0 + blx r4 + add r0, r5, #0x1000 + mov r1, #0 + str r1, [r0, #0x9c8] +_021DAEC0: + add r0, r5, #0x1000 + ldr r1, [r0, #0x9cc] + cmp r1, #0 + beq _021DAEE8 + ldr r0, _021DAF10 ; =UNK04_0220C2E8 + mov r2, #0 + blx r4 + add r0, r5, #0x1000 + mov r1, #0 + str r1, [r0, #0x9cc] +_021DAEE8: + ldr r2, _021DAF14 ; =0x00001C10 + mov r0, r5 + mov r1, #0 + bl MI_CpuFill8 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_021DAF00: .word 0x00001A34 +_021DAF04: .word 0x00001A04 +_021DAF08: .word 0x000019F4 +_021DAF0C: .word UNK04_0220C2D0 +_021DAF10: .word UNK04_0220C2E8 +_021DAF14: .word 0x00001C10 + arm_func_end MOD04_021DAE4C + + arm_func_start MOD04_021DAF18 +MOD04_021DAF18: ; 0x021DAF18 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov sl, r0 + add r0, sl, #0x1000 + ldr fp, [r0, #0x1c] + ldr r0, _021DB224 ; =0x00001134 + ldr r1, _021DB228 ; =0x00001198 + ldr r2, _021DB22C ; =0x00001A04 + add r8, sl, r0 + cmp fp, #0 + mov r0, sl + add r6, sl, r1 + add r7, sl, r2 + mov r5, #0 + ldrle fp, _021DB230 ; =0x0000EA60 + bl MOD04_021DB35C + mov r0, sl + bl MOD04_021DB348 + movs r4, r0 + addeq r0, sl, #0x1000 + moveq r1, #2 + streq r1, [r0, #0x20] + addeq sp, sp, #0xc + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl CPS_SocUse + add r0, sl, #0x1000 + ldr r0, [r0, #0x12c] + cmp r0, #1 + bne _021DAFC8 + mov r0, r6 + mov r1, #0 + mov r2, #0x830 + bl MI_CpuFill8 + ldr r1, _021DB234 ; =MOD04_021DAAC0 + add r0, sl, #0x1000 + str r1, [r6, #0x810] + ldr r1, [r0, #0x124] + ldr r0, _021DB238 ; =UNK04_0220C0E4 + str r1, [r6, #0x800] + mov r1, #0xb + str r6, [r8, #0xc] + bl CPS_SetRootCa + mov r0, #1 + bl CPS_SetSsl +_021DAFC8: + add r0, sl, #0x1100 + ldrh r1, [r0, #0x30] + mov r2, r4 + mov r0, #0 + bl CPS_SocPingMode + bl CPS_TcpConnect + cmp r0, #0 + beq _021DB004 + add r0, sl, #0x1000 + mov r1, #3 + str r1, [r0, #0x20] + bl CPS_SocRelease + bl CPS_SocUnRegister + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_021DB004: + add r0, sl, #0x1000 + ldr r4, [r0, #0x9f4] + mov r0, r4 + bl strlen + mov r1, r0 + mov r0, r4 + bl CPS_SocWrite + cmp r0, #0 + str r0, [sp, #8] + addle r0, sl, #0x1000 + movle r1, #5 + strle r1, [r0, #0x20] + ble _021DB20C + bl CPS_SocGetChar + mov r0, sl + bl MOD04_021DB3B8 + cmp r0, #0 + addeq r0, sl, #0x1000 + moveq r1, #7 + streq r1, [r0, #0x20] + beq _021DB20C + ldr r0, [r7] + str r0, [r7, #4] + ldr r1, [r7] + ldr r0, [r7, #0xc] + add r0, r1, r0 + str r0, [r7, #8] + bl OS_GetTick + mov r6, r0 + mov r0, fp, asr #0x1f + mov r8, r1 + str r0, [sp, #4] + mov r4, #0 +_021DB088: + ldr r0, _021DB23C ; =CPSMyIp + ldr r0, [r0] + cmp r0, #0 + addeq r0, sl, #0x1000 + moveq r1, #5 + streq r1, [r0, #0x20] + beq _021DB20C + bl CPS_SocGetLength + str r0, [sp, #8] + cmp r0, #0 + blt _021DB1E8 + cmp r0, #0 + ble _021DB16C + bl OS_GetTick + mov r6, r0 + add r0, sp, #8 + mov r8, r1 + bl CPS_SocRead + cmp r0, #0 + beq _021DB1E8 + ldr r2, [r7, #8] + ldr r1, [r7, #4] + sub r2, r2, #1 + ldr sb, [sp, #8] + sub r2, r2, r1 + cmp sb, r2 + movge sb, r2 + mov r2, sb + bl MI_CpuCopy8 + ldr r0, [r7, #4] + cmp r5, #1 + add r0, r0, sb + str r0, [r7, #4] + ldr r0, [r7, #4] + strb r4, [r0] + bne _021DB144 + ldr r0, _021DB240 ; =0x00001A14 + add r0, sl, r0 + bl OS_LockMutex + add r1, sl, #0x1000 + ldr r2, [r1, #0xa30] + ldr r0, _021DB240 ; =0x00001A14 + add r2, r2, sb + add r0, sl, r0 + str r2, [r1, #0xa30] + bl OS_UnlockMutex + b _021DB150 +_021DB144: + mov r0, sl + bl MOD04_021DB248 + mov r5, r0 +_021DB150: + ldr r0, [sp, #8] + cmp r0, sb + bls _021DB164 + bl CPS_SocConsume + b _021DB1E8 +_021DB164: + mov r0, sb + bl CPS_SocConsume +_021DB16C: + add r0, sl, #0x1000 + ldr r1, [r0, #0xa2c] + cmp r1, #0 + blt _021DB188 + ldr r0, [r0, #0xa30] + cmp r0, r1 + bge _021DB1E8 +_021DB188: + bl OS_GetTick + subs r2, r0, r6 + sbc r0, r1, r8 + mov r1, r0, lsl #6 + orr r1, r1, r2, lsr #26 + mov r0, r2, lsl #6 + ldr r2, _021DB244 ; =0x000082EA + mov r3, r4 + bl _ll_udiv + ldr r2, [sp, #4] + cmp r1, r2 + cmpeq r0, fp + addhi r0, sl, #0x1000 + movhi r1, #6 + strhi r1, [r0, #0x20] + bhi _021DB20C + mov r0, sl + bl MOD04_021DB3B8 + cmp r0, #0 + bne _021DB088 + add r0, sl, #0x1000 + mov r1, #7 + str r1, [r0, #0x20] + b _021DB20C +_021DB1E8: + bl CPS_TcpShutdown + bl CPS_TcpClose + bl CPS_SocRelease + bl CPS_SocUnRegister + add r0, sl, #0x1000 + mov r1, #8 + str r1, [r0, #0x20] + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_021DB20C: + bl CPS_TcpShutdown + bl CPS_TcpClose + bl CPS_SocRelease + bl CPS_SocUnRegister + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_021DB224: .word 0x00001134 +_021DB228: .word 0x00001198 +_021DB22C: .word 0x00001A04 +_021DB230: .word 0x0000EA60 +_021DB234: .word MOD04_021DAAC0 +_021DB238: .word UNK04_0220C0E4 +_021DB23C: .word CPSMyIp +_021DB240: .word 0x00001A14 +_021DB244: .word 0x000082EA + arm_func_end MOD04_021DAF18 + + arm_func_start MOD04_021DB248 +MOD04_021DB248: ; 0x021DB248 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r5, r0 + add r0, r5, #0x1000 + ldr r6, [r0, #0xa04] + ldr r2, _021DB334 ; =0x00001A04 + ldr r1, _021DB338 ; =UNK04_0220C148 + mov r0, r6 + add r4, r5, r2 + bl strstr + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r1, _021DB338 ; =UNK04_0220C148 + mov r0, r6 + bl strstr + ldr r1, _021DB33C ; =0x00001A14 + add r6, r0, #4 + add r0, r5, r1 + bl OS_LockMutex + ldr r0, [r4, #4] + ldr r1, _021DB33C ; =0x00001A14 + sub r2, r0, r6 + add r0, r5, #0x1000 + str r2, [r0, #0xa30] + add r0, r5, r1 + bl OS_UnlockMutex + ldr r0, [r4] + ldr r1, _021DB340 ; =UNK04_0220C300 + bl strstr + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r0, _021DB340 ; =UNK04_0220C300 + bl strlen + add r7, r4, r0 + ldr r1, _021DB344 ; =UNK04_0220C164 + mov r0, r7 + bl strstr + mov r4, r0 + ldr r0, _021DB33C ; =0x00001A14 + ldrsb r6, [r4] + mov r1, #0 + add r0, r5, r0 + strb r1, [r4] + bl OS_LockMutex + mov r0, r7 + bl atol + add r1, r5, #0x1000 + ldr r2, _021DB33C ; =0x00001A14 + str r0, [r1, #0xa2c] + add r0, r5, r2 + bl OS_UnlockMutex + strb r6, [r4] + mov r0, #1 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_021DB334: .word 0x00001A04 +_021DB338: .word UNK04_0220C148 +_021DB33C: .word 0x00001A14 +_021DB340: .word UNK04_0220C300 +_021DB344: .word UNK04_0220C164 + arm_func_end MOD04_021DB248 + + arm_func_start MOD04_021DB348 +MOD04_021DB348: ; 0x021DB348 + ldr ip, _021DB358 ; =CPS_Resolve + add r0, r0, #0x1000 + ldr r0, [r0, #0x124] + bx ip + .align 2, 0 +_021DB358: .word CPS_Resolve + arm_func_end MOD04_021DB348 + + arm_func_start MOD04_021DB35C +MOD04_021DB35C: ; 0x021DB35C + stmdb sp!, {r4, lr} + ldr r1, _021DB3AC ; =0x00001134 + mov r4, r0 + add r0, r4, r1 + mov r1, #0 + mov r2, #0x64 + bl MI_CpuFill8 + ldr r0, _021DB3B0 ; =0x00000B68 + add r1, r4, #0x1000 + str r0, [r1, #0x170] + ldr r3, [r1, #0x9c8] + ldr r0, _021DB3AC ; =0x00001134 + ldr r2, _021DB3B4 ; =0x000005EA + str r3, [r1, #0x174] + str r2, [r1, #0x17c] + ldr r2, [r1, #0x9cc] + add r0, r4, r0 + str r2, [r1, #0x180] + bl CPS_SocRegister + ldmia sp!, {r4, pc} + .align 2, 0 +_021DB3AC: .word 0x00001134 +_021DB3B0: .word 0x00000B68 +_021DB3B4: .word 0x000005EA + arm_func_end MOD04_021DB35C + + arm_func_start MOD04_021DB3B8 +MOD04_021DB3B8: ; 0x021DB3B8 + stmdb sp!, {r4, lr} + mov r4, r0 + add r0, r4, #0x1000 + ldr r0, [r0, #0x12c] + cmp r0, #1 + bne _021DB3EC + ldr r0, _021DB438 ; =0x000019D0 + add r0, r4, r0 + bl OS_GetLowEntropyData + ldr r0, _021DB438 ; =0x000019D0 + mov r1, #0x20 + add r0, r4, r0 + bl CPS_SslAddRandomSeed +_021DB3EC: + ldr r0, _021DB43C ; =0x00001BF4 + add r0, r4, r0 + bl OS_LockMutex + add r0, r4, #0x1000 + ldr r0, [r0, #0xc0c] + cmp r0, #1 + bne _021DB41C + ldr r0, _021DB43C ; =0x00001BF4 + add r0, r4, r0 + bl OS_UnlockMutex + mov r0, #0 + ldmia sp!, {r4, pc} +_021DB41C: + ldr r0, _021DB43C ; =0x00001BF4 + add r0, r4, r0 + bl OS_UnlockMutex + mov r0, #0xa + bl OS_Sleep + mov r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +_021DB438: .word 0x000019D0 +_021DB43C: .word 0x00001BF4 + arm_func_end MOD04_021DB3B8 + + arm_func_start MOD04_021DB440 +MOD04_021DB440: ; 0x021DB440 + stmdb sp!, {r4, lr} + mov r4, r0 + add r0, r4, #0x1000 + ldrb r0, [r0] + cmp r0, #0xff + ldmneia sp!, {r4, pc} + ldr r0, _021DB49C ; =0x00001BF4 + add r0, r4, r0 + bl OS_LockMutex + ldr r0, _021DB49C ; =0x00001BF4 + add r1, r4, #0x1000 + mov r2, #1 + add r0, r4, r0 + str r2, [r1, #0xc0c] + bl OS_UnlockMutex + add r0, r4, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, _021DB4A0 ; =0x00001B34 + add r0, r4, r0 + bl OS_JoinThread + ldmia sp!, {r4, pc} + .align 2, 0 +_021DB49C: .word 0x00001BF4 +_021DB4A0: .word 0x00001B34 + arm_func_end MOD04_021DB440 + + arm_func_start MOD04_021DB4A4 +MOD04_021DB4A4: ; 0x021DB4A4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0xc + ldr r3, _021DB55C ; =0x00001BF4 + mov r5, r0 + add r2, r5, #0x1000 + mov ip, #0 + add r0, r5, r3 + mov r4, r1 + str ip, [r2, #0xc0c] + bl OS_InitMutex + ldr r0, _021DB560 ; =0x00001A14 + add r0, r5, r0 + bl OS_InitMutex + add r0, r5, #0x1000 + ldr r0, [r0, #0x18] + cmp r0, #1 + ldreq r0, _021DB564 ; =UNK04_02210480 + moveq r1, #1 + streq r1, [r0] + ldrne r0, _021DB564 ; =UNK04_02210480 + movne r1, #0 + strne r1, [r0] + add r0, r5, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + beq _021DB524 + ldr r0, _021DB568 ; =0x00001B34 + add r0, r5, r0 + bl OS_IsThreadTerminated + cmp r0, #0 + addeq sp, sp, #0xc + ldmeqia sp!, {r4, r5, pc} +_021DB524: + ldr r0, _021DB568 ; =0x00001B34 + mov r1, #0x1000 + str r1, [sp] + ldr r1, _021DB56C ; =MOD04_021DAF18 + mov r2, r5 + add r0, r5, r0 + add r3, r5, #0x1000 + str r4, [sp, #4] + bl OS_CreateThread + ldr r0, _021DB568 ; =0x00001B34 + add r0, r5, r0 + bl OS_WakeupThreadDirect + add sp, sp, #0xc + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_021DB55C: .word 0x00001BF4 +_021DB560: .word 0x00001A14 +_021DB564: .word UNK04_02210480 +_021DB568: .word 0x00001B34 +_021DB56C: .word MOD04_021DAF18 + arm_func_end MOD04_021DB4A4 + + arm_func_start MOD04_021DB570 +MOD04_021DB570: ; 0x021DB570 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r1, _021DB5F4 ; =UNK04_0220C314 + ldr r2, _021DB5F8 ; =UNK04_0220C320 + mov r4, r0 + bl MOD04_021DAC98 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + ldmneia sp!, {r4, pc} + add r0, r4, #0x1000 + ldr r0, [r0, #0x9f4] + ldr r1, _021DB5FC ; =UNK04_0220C148 + bl strstr + add r0, r0, #4 + bl strlen + movs r3, r0 + beq _021DB5E8 + ldr r2, _021DB600 ; =UNK04_0220C328 + add r0, sp, #0 + mov r1, #7 + bl OS_SNPrintf + ldr r1, _021DB604 ; =UNK04_0220C32C + add r2, sp, #0 + mov r0, r4 + bl MOD04_021DAC98 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + ldmneia sp!, {r4, pc} +_021DB5E8: + mov r0, #0 + add sp, sp, #8 + ldmia sp!, {r4, pc} + .align 2, 0 +_021DB5F4: .word UNK04_0220C314 +_021DB5F8: .word UNK04_0220C320 +_021DB5FC: .word UNK04_0220C148 +_021DB600: .word UNK04_0220C328 +_021DB604: .word UNK04_0220C32C + arm_func_end MOD04_021DB570 + + arm_func_start MOD04_021DB608 +MOD04_021DB608: ; 0x021DB608 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r1 + ldr r2, _021DB714 ; =0x00001C10 + mov r6, r0 + ldr r4, [r5, #0xc] + mov r1, #0 + bl MI_CpuFill8 + ldr r1, _021DB718 ; =0x00001004 + add r0, r6, #0x1000 + mvn r2, #0 + str r2, [r0, #0xa2c] + mov lr, r5 + str r2, [r0, #0xa30] + add ip, r6, r1 + ldmia lr!, {r0, r1, r2, r3} + stmia ip!, {r0, r1, r2, r3} + ldmia lr, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldr r0, _021DB71C ; =UNK04_0220C33C + ldr r1, _021DB720 ; =0x00000B68 + blx r4 + add r1, r6, #0x1000 + str r0, [r1, #0x9c8] + ldr r0, [r1, #0x9c8] + cmp r0, #0 + moveq r0, #1 + streq r0, [r1, #0x20] + ldmeqia sp!, {r4, r5, r6, pc} + ldr r0, _021DB724 ; =UNK04_0220C354 + ldr r1, _021DB728 ; =0x000005EA + blx r4 + add r2, r6, #0x1000 + str r0, [r2, #0x9cc] + ldr r0, [r2, #0x9cc] + cmp r0, #0 + moveq r0, #1 + streq r0, [r2, #0x20] + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, _021DB72C ; =0x00001A04 + ldr r2, [r2, #0xc] + mov r0, r6 + add r1, r6, r1 + bl MOD04_021DAA50 + cmp r0, #0 + addeq r1, r6, #0x1000 + moveq r0, #1 + streq r0, [r1, #0x20] + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, [r5] + mov r0, r6 + bl MOD04_021DA7E8 + cmp r0, #0 + addeq r1, r6, #0x1000 + moveq r0, #1 + streq r0, [r1, #0x20] + ldmeqia sp!, {r4, r5, r6, pc} + mov r0, r6 + bl MOD04_021DAD88 + add r1, r6, #0x1000 + str r0, [r1, #0x20] + ldr r0, [r1, #0x20] + cmp r0, #0 + moveq r0, #0xff + streqb r0, [r1] + add r0, r6, #0x1000 + ldr r0, [r0, #0x20] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_021DB714: .word 0x00001C10 +_021DB718: .word 0x00001004 +_021DB71C: .word UNK04_0220C33C +_021DB720: .word 0x00000B68 +_021DB724: .word UNK04_0220C354 +_021DB728: .word 0x000005EA +_021DB72C: .word 0x00001A04 + arm_func_end MOD04_021DB608 + + .section .data + + .global UNK04_0220C0E4 ; I really don't know about this table, I'm gonna assume it's extern for now because it's weird +UNK04_0220C0E4: ; 0x0220C0E4 + .word UNK04_0220CF18, UNK04_0220CDEC, UNK04_0220D0CC, UNK04_0220D1A8 + .word UNK04_0220C684, UNK04_0220C920, UNK04_0220CA08, UNK04_0220C7D0 + .word UNK04_0220CCD4, UNK04_0220CBB4, UNK04_0220CACC + + .global UNK04_0220C110 +UNK04_0220C110: ; 0x0220C110 + .asciz "FREE array_entry[i].label" + + .balign 4, 0 + .global UNK04_0220C12C +UNK04_0220C12C: ; 0x0220C12C + .asciz "FREE array_entry[i].value" + + .balign 4, 0 + .global UNK04_0220C148 +UNK04_0220C148: ; 0x0220C148 + .asciz "\r\n\r\n" + + .balign 4, 0 + .global UNK04_0220C150 +UNK04_0220C150: ; 0x0220C150 + .asciz " " + + .balign 4, 0 + .global UNK04_0220C154 +UNK04_0220C154: ; 0x0220C154 + .asciz "httpresult" + + .balign 4, 0 + .global UNK04_0220C160 +UNK04_0220C160: ; 0x0220C160 + .asciz "200" + + .balign 4, 0 + .global UNK04_0220C164 +UNK04_0220C164: ; 0x0220C164 + .asciz "\r\n" + + .balign 4, 0 + .global UNK04_0220C168 +UNK04_0220C168: ; 0x0220C168 + .asciz ": " + + .balign 4, 0 + .global UNK04_0220C16C +UNK04_0220C16C: ; 0x0220C16C + .asciz "=" + + .balign 4, 0 + .global UNK04_0220C170 +UNK04_0220C170: ; 0x0220C170 + .asciz "&" + + .balign 4, 0 + .global UNK04_0220C174 +UNK04_0220C174: ; 0x0220C174 + .asciz "ALLOC result->entry[i].label" + + .balign 4, 0 + .global UNK04_0220C194 +UNK04_0220C194: ; 0x0220C194 + .asciz "ALLOC result->entry[i].value" + + .balign 4, 0 + .global UNK04_0220C1B4 +UNK04_0220C1B4: ; 0x0220C1B4 + .asciz "FREE result->entry[i].label" + + .balign 4, 0 + .global UNK04_0220C1D0 +UNK04_0220C1D0: ; 0x0220C1D0 + .asciz "FREE result->entry[i].value" + + .balign 4, 0 + .global UNK04_0220C1EC +UNK04_0220C1EC: ; 0x0220C1EC + .asciz "http://" + + .balign 4, 0 + .global UNK04_0220C1F4 +UNK04_0220C1F4: ; 0x0220C1F4 + .asciz "https://" + + .balign 4, 0 + .global UNK04_0220C200 +UNK04_0220C200: ; 0x0220C200 + .asciz ":" + + .balign 4, 0 + .global UNK04_0220C204 +UNK04_0220C204: ; 0x0220C204 + .asciz "/" + + .balign 4, 0 + .global UNK04_0220C208 +UNK04_0220C208: ; 0x0220C208 + .asciz "ALLOC newptr" + + .balign 4, 0 + .global UNK04_0220C218 +UNK04_0220C218: ; 0x0220C218 + .asciz "FREE buf->buffer" + + .balign 4, 0 + .global UNK04_0220C22C +UNK04_0220C22C: ; 0x0220C22C + .asciz "ALLOC buf->buffer" + + .balign 4, 0 + .global UNK04_0220C240 +UNK04_0220C240: ; 0x0220C240 + .asciz "%s" + + .balign 4, 0 + .global UNK04_0220C244 +UNK04_0220C244: ; 0x0220C244 + .asciz "%s=" + + .balign 4, 0 + .global UNK04_0220C248 +UNK04_0220C248: ; 0x0220C248 + .asciz "&%s=" + + .balign 4, 0 + .global UNK04_0220C250 +UNK04_0220C250: ; 0x0220C250 + .asciz "%s: %s\r\n" + + .balign 4, 0 + .global UNK04_0220C25C +UNK04_0220C25C: ; 0x0220C25C + .ascii "POST /%s HTTP/1.0\r\n" + .ascii "Content-type: application/x-www-form-urlencoded\r\n" + .asciz "Host: %s\r\n\r\n" + + .balign 4, 0 + .global UNK04_0220C2B0 +UNK04_0220C2B0: ; 0x0220C2B0 + .ascii "GET /%s HTTP/1.0\r\n" + .asciz "Host: %s\r\n\r\n" + + .balign 4, 0 + .global UNK04_0220C2D0 +UNK04_0220C2D0: ; 0x0220C2D0 + .asciz "FREE http->lowrecvbuf" + + .balign 4, 0 + .global UNK04_0220C2E8 +UNK04_0220C2E8: ; 0x0220C2E8 + .asciz "FREE http->lowsendbuf" + + .balign 4, 0 + .global UNK04_0220C300 +UNK04_0220C300: ; 0x0220C300 + .asciz "Content-Length: " + + .balign 4, 0 + .global UNK04_0220C314 +UNK04_0220C314: ; 0x0220C314 + .asciz "Connection" + + .balign 4, 0 + .global UNK04_0220C320 +UNK04_0220C320: ; 0x0220C320 + .asciz "close" + + .balign 4, 0 + .global UNK04_0220C328 +UNK04_0220C328: ; 0x0220C328 + .asciz "%d" + + .balign 4, 0 + .global UNK04_0220C32C +UNK04_0220C32C: ; 0x0220C32C + .asciz "Content-Length" + + .balign 4, 0 + .global UNK04_0220C33C +UNK04_0220C33C: ; 0x0220C33C + .asciz "ALLOC http->lowrecvbuf" + + .balign 4, 0 + .global UNK04_0220C354 +UNK04_0220C354: ; 0x0220C354 + .asciz "ALLOC http->lowsendbuf" + + .balign 4, 0 |