.include "asm/macros.inc" .include "global.inc" .section .rodata .global UNK_020FC01C UNK_020FC01C: ; 0x020FC01C .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_02084090, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02088818, FUN_0202DA84, 0x00000000 .word FUN_02083D5C, FUN_02088840, FUN_02084080 .word FUN_02083DF0, FUN_02088848, 0x00000000 .word FUN_02083E18, FUN_0208884C, 0x00000000 .word FUN_02083FBC, FUN_0202DA84, 0x00000000 .word FUN_02083FC0, FUN_0202DA84, 0x00000000 .word FUN_02083F88, FUN_0202DA84, 0x00000000 .word FUN_02083E4C, FUN_0202DA80, 0x00000000 .word FUN_02083F84, FUN_0202DA80, 0x00000000 .word FUN_02083E94, FUN_02084094, 0x00000000 .word FUN_02083FC4, FUN_0202DA80, 0x00000000 .word FUN_02083FDC, FUN_0202DA80, 0x00000000 .word FUN_02084020, FUN_0202DA80, 0x00000000 .text thumb_func_start FUN_02083D48 FUN_02083D48: ; 0x02083D48 ldr r3, _02083D54 ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _02083D58 ; =UNK_020FC01C mov r1, #0x6c bx r3 nop _02083D54: .word FUN_0202D8D0 _02083D58: .word UNK_020FC01C thumb_func_start FUN_02083D5C FUN_02083D5C: ; 0x02083D5C push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083DBA mov r3, #0xfb lsl r3, r3, #0x2 ldrb r2, [r5, r3] sub r0, r3, #0x4 add r1, r2, #0x0 mul r1, r0 mov r0, #0xe1 lsl r0, r0, #0x6 cmp r1, r0 ldr r2, _02083DE8 ; =0x000043D0 ble _02083D90 add r2, r4, r2 add r1, r2, r1 mov r2, #0x19 add r0, r5, #0x0 lsl r2, r2, #0x4 bl MIi_CpuCopyFast b _02083D9C _02083D90: add r2, r4, r2 add r1, r2, r1 add r0, r5, #0x0 sub r2, r3, #0x4 bl MIi_CpuCopyFast _02083D9C: mov r1, #0xb5 ldr r0, _02083DE8 ; =0x000043D0 lsl r1, r1, #0x2 mov r2, #0xe1 ldr r1, [r4, r1] add r0, r4, r0 lsl r2, r2, #0x6 bl MIi_CpuCopyFast mov r0, #0xb2 lsl r0, r0, #0x2 add r0, r4, r0 bl CopyWindowToVram pop {r3-r5, pc} _02083DBA: ldr r1, _02083DEC ; =0x000043CC mov r0, #0xfa ldr r2, [r4, r1] lsl r0, r0, #0x2 add r3, r2, #0x0 mul r3, r0 mov r0, #0xe1 lsl r0, r0, #0x6 cmp r3, r0 bge _02083DDC add r0, r2, #0x1 str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0x0 bl FUN_0208402C pop {r3-r5, pc} _02083DDC: mov r1, #0x0 mov r0, #0x7c add r2, r1, #0x0 bl FUN_02030BC4 pop {r3-r5, pc} .balign 4 _02083DE8: .word 0x000043D0 _02083DEC: .word 0x000043CC thumb_func_start FUN_02083DF0 FUN_02083DF0: ; 0x02083DF0 push {r3-r4} cmp r0, #0x0 beq _02083E0E add r4, r0, #0x0 mov r1, #0xa mul r4, r1 ldr r0, _02083E14 ; =0x000093BD add r3, r3, r4 add r3, r3, r0 _02083E02: ldrb r0, [r2, #0x0] add r2, r2, #0x1 strb r0, [r3, #0x0] add r3, r3, #0x1 sub r1, r1, #0x1 bne _02083E02 _02083E0E: pop {r3-r4} bx lr nop _02083E14: .word 0x000093BD thumb_func_start FUN_02083E18 FUN_02083E18: ; 0x02083E18 push {r4-r7} cmp r3, #0x0 beq _02083E42 cmp r0, #0x0 bne _02083E42 ldr r0, _02083E48 ; =0x00004382 mov r7, #0x0 _02083E26: add r6, r2, #0x0 add r5, r3, r0 mov r4, #0xa _02083E2C: ldrb r1, [r6, #0x0] add r6, r6, #0x1 strb r1, [r5, #0x0] add r5, r5, #0x1 sub r4, r4, #0x1 bne _02083E2C add r7, r7, #0x1 add r2, #0xa add r3, #0xa cmp r7, #0x5 blt _02083E26 _02083E42: pop {r4-r7} bx lr nop _02083E48: .word 0x00004382 thumb_func_start FUN_02083E4C FUN_02083E4C: ; 0x02083E4C push {r4, lr} add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x0 bl MOD53_021D8B64 ldr r1, _02083E8C ; =0x000043D0 mov r2, #0xe1 mov r0, #0x0 add r1, r4, r1 lsl r2, r2, #0x6 bl MIi_CpuClearFast bl FUN_02031190 cmp r0, #0x0 bne _02083E8A bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #0x2 str r0, [r4, r1] bl FUN_0202CB8C mov r1, #0xc7 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _02083E90 ; =0x000093F4 mov r1, #0x1 str r1, [r4, r0] _02083E8A: pop {r4, pc} .balign 4 _02083E8C: .word 0x000043D0 _02083E90: .word 0x000093F4 thumb_func_start FUN_02083E94 FUN_02083E94: ; 0x02083E94 push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 cmp r6, #0x0 beq _02083F2E bl FUN_02031190 cmp r0, #0x0 bne _02083F78 ldrb r0, [r5, #0x0] add r1, sp, #0x0 strb r0, [r1, #0x0] ldrb r0, [r5, #0x1] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] strb r0, [r1, #0x2] ldrb r0, [r5, #0x3] strb r0, [r1, #0x3] mov r0, #0xc6 strb r6, [r1, #0x0] lsl r0, r0, #0x2 ldr r0, [r4, r0] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _02083ED0 cmp r0, #0x1 b _02083F20 _02083ED0: bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 bne _02083EFE bl MOD53_021D917C mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 bne _02083EFE bl FUN_0202CB8C bl MATH_CountPopulation mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 beq _02083F06 _02083EFE: mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x3] b _02083F20 _02083F06: ldr r0, _02083F7C ; =0x000093B4 mov r1, #0x1 add r2, r1, #0x0 ldr r3, [r4, r0] lsl r2, r6 orr r2, r3 str r2, [r4, r0] add r0, sp, #0x0 strb r1, [r0, #0x3] bl FUN_02030F20 bl FUN_02032B6C _02083F20: mov r0, #0x7e add r1, sp, #0x0 mov r2, #0x4 bl FUN_02030BC4 add sp, #0x4 pop {r3-r6, pc} _02083F2E: ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _02083F3C cmp r0, #0x1 beq _02083F6E add sp, #0x4 pop {r3-r6, pc} _02083F3C: ldrb r6, [r5, #0x0] bl FUN_02031190 cmp r6, r0 bne _02083F78 ldrb r0, [r5, #0x3] cmp r0, #0x0 bne _02083F5A add r0, r4, #0x0 mov r1, #0x9 add r2, r6, #0x0 bl MOD53_021D8B64 add sp, #0x4 pop {r3-r6, pc} _02083F5A: ldrb r1, [r5, #0x1] ldr r0, _02083F80 ; =0x000093B8 strh r1, [r4, r0] ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x8 bl MOD53_021D8B64 add sp, #0x4 pop {r3-r6, pc} _02083F6E: ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x15 bl MOD53_021D8B64 _02083F78: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02083F7C: .word 0x000093B4 _02083F80: .word 0x000093B8 thumb_func_start FUN_02083F84 FUN_02083F84: ; 0x02083F84 bx lr .balign 4 thumb_func_start FUN_02083F88 FUN_02083F88: ; 0x02083F88 push {r4, lr} ldrb r2, [r2, #0x0] add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0x1 bl MOD53_021D8B64 bl FUN_02031190 cmp r0, #0x0 bne _02083FB6 mov r0, #0x3 lsl r0, r0, #0x8 ldr r0, [r4, r0] cmp r0, #0x1 bne _02083FB6 ldr r1, _02083FB8 ; =0x000043CC mov r0, #0x0 str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0x0 bl FUN_0208402C _02083FB6: pop {r4, pc} .balign 4 _02083FB8: .word 0x000043CC thumb_func_start FUN_02083FBC FUN_02083FBC: ; 0x02083FBC bx lr .balign 4 thumb_func_start FUN_02083FC0 FUN_02083FC0: ; 0x02083FC0 bx lr .balign 4 thumb_func_start FUN_02083FC4 FUN_02083FC4: ; 0x02083FC4 push {r4, lr} add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083FDA add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 bl MOD53_021D8B64 _02083FDA: pop {r4, pc} thumb_func_start FUN_02083FDC FUN_02083FDC: ; 0x02083FDC push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083FEE bl GF_AssertFail _02083FEE: bl FUN_02031190 cmp r0, #0x0 bne _02084012 ldr r0, _0208401C ; =0x000093FC ldr r1, [r4, r0] cmp r1, #0x0 beq _0208400E add r0, sp, #0x0 strb r5, [r0, #0x0] mov r0, #0x7b add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030BC4 b _02084012 _0208400E: mov r1, #0x1 str r1, [r4, r0] _02084012: mov r0, #0x0 mov r1, #0x1 bl FUN_020334E8 pop {r3-r5, pc} .balign 4 _0208401C: .word 0x000093FC thumb_func_start FUN_02084020 FUN_02084020: ; 0x02084020 ldr r0, _02084028 ; =0x000093F4 mov r1, #0x1 str r1, [r3, r0] bx lr .balign 4 _02084028: .word 0x000093F4 thumb_func_start FUN_0208402C FUN_0208402C: ; 0x0208402C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb5 mov r2, #0xfa add r4, r1, #0x0 lsl r0, r0, #0x2 ldr r1, [r5, r0] lsl r2, r2, #0x2 add r0, r4, #0x0 mul r0, r2 add r0, r1, r0 ldr r1, _02084078 ; =0x00007C10 add r1, r5, r1 bl MIi_CpuCopyFast ldr r0, _02084078 ; =0x00007C10 mov r2, #0x0 add r1, r2, #0x0 add r3, r5, r0 _02084052: ldr r0, [r3, #0x0] add r1, r1, #0x1 eor r2, r0 add r3, r3, #0x4 cmp r1, #0xfa blt _02084052 ldr r0, _0208407C ; =0x00007FF8 ldr r1, _02084078 ; =0x00007C10 str r2, [r5, r0] add r0, r0, #0x4 mov r2, #0x3f strb r4, [r5, r0] mov r0, #0x76 add r1, r5, r1 lsl r2, r2, #0x4 bl FUN_02030B3C pop {r3-r5, pc} nop _02084078: .word 0x00007C10 _0208407C: .word 0x00007FF8 thumb_func_start FUN_02084080 FUN_02084080: ; 0x02084080 mov r2, #0x2 lsl r2, r2, #0xe add r2, r1, r2 mov r1, #0x3f lsl r1, r1, #0x4 mul r1, r0 add r0, r2, r1 bx lr thumb_func_start FUN_02084090 FUN_02084090: ; 0x02084090 mov r0, #0x4 bx lr thumb_func_start FUN_02084094 FUN_02084094: ; 0x02084094 mov r0, #0x4 bx lr