mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
1772 lines
34 KiB
ArmAsm
1772 lines
34 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020FBC08
|
|
UNK_020FBC08: ; 0x020FBC08
|
|
.byte 0x03, 0x05, 0x08, 0x05, 0x0A, 0x0F, 0x07, 0x0F, 0x17, 0x0A, 0x14, 0x1E, 0x0A, 0x14, 0x1E, 0x00
|
|
|
|
.global UNK_020FBC18
|
|
UNK_020FBC18: ; 0x020FBC18
|
|
.byte 0x0A, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x28, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x46, 0x00, 0x50, 0x00
|
|
.byte 0x5A, 0x00, 0x6E, 0x00, 0x82, 0x00, 0x96, 0x00, 0xAA, 0x00, 0xBE, 0x00, 0xD2, 0x00, 0xE6, 0x00
|
|
.byte 0xAA, 0x00, 0xC8, 0x00, 0xE6, 0x00, 0x04, 0x01, 0x22, 0x01, 0x40, 0x01, 0x5E, 0x01, 0x7C, 0x01
|
|
.byte 0x40, 0x01, 0x68, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xE0, 0x01, 0x08, 0x02, 0x30, 0x02, 0x58, 0x02
|
|
.byte 0x64, 0x00, 0xC8, 0x00, 0x2C, 0x01, 0x90, 0x01, 0xC2, 0x01, 0xF4, 0x01, 0x26, 0x02, 0x58, 0x02
|
|
|
|
.global UNK_020FBC68
|
|
UNK_020FBC68: ; 0x020FBC68
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC6A
|
|
UNK_020FBC6A: ; 0x020FBC6A
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC6C
|
|
UNK_020FBC6C: ; 0x020FBC6C
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC6E
|
|
UNK_020FBC6E: ; 0x020FBC6E
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC70
|
|
UNK_020FBC70: ; 0x020FBC70
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC72
|
|
UNK_020FBC72: ; 0x020FBC72
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC74
|
|
UNK_020FBC74: ; 0x020FBC74
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC76
|
|
UNK_020FBC76: ; 0x020FBC76
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC78
|
|
UNK_020FBC78: ; 0x020FBC78
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC7A
|
|
UNK_020FBC7A: ; 0x020FBC7A
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC7C
|
|
UNK_020FBC7C: ; 0x020FBC7C
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC7E
|
|
UNK_020FBC7E: ; 0x020FBC7E
|
|
.byte 0x00, 0x00
|
|
|
|
.global UNK_020FBC80
|
|
UNK_020FBC80: ; 0x020FBC80
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x07, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00
|
|
.byte 0x14, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00
|
|
.byte 0x05, 0x00, 0x02, 0x00, 0x06, 0x00, 0x02, 0x00, 0x07, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x07, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x1E, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x02, 0x00, 0x0A, 0x00
|
|
.byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0B, 0x00, 0x02, 0x00, 0x0C, 0x00
|
|
.byte 0x0D, 0x00, 0x14, 0x00, 0x0C, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0D, 0x00
|
|
.byte 0x05, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x02, 0x00, 0x0F, 0x00, 0x02, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x12, 0x00, 0x13, 0x00
|
|
.byte 0x14, 0x00, 0x11, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x00, 0x12, 0x00, 0x09, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0x16, 0x00, 0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x18, 0x00, 0x19, 0x00, 0x14, 0x00
|
|
.byte 0x14, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1C, 0x00
|
|
.byte 0x1D, 0x00, 0x14, 0x00, 0x16, 0x00, 0x09, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x17, 0x00
|
|
.byte 0x05, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0x20, 0x00, 0x21, 0x00, 0x14, 0x00, 0x18, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x22, 0x00, 0x23, 0x00
|
|
.byte 0x14, 0x00, 0x19, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x24, 0x00, 0x25, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0x26, 0x00, 0x27, 0x00, 0x0A, 0x00, 0x1B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x28, 0x00, 0x29, 0x00, 0x00, 0x00
|
|
.byte 0x1C, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x02, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x14, 0x00, 0x20, 0x00, 0x00, 0x00, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x2C, 0x00
|
|
.byte 0x2D, 0x00, 0x0A, 0x00, 0x21, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_020828BC
|
|
sub_020828BC: ; 0x020828BC
|
|
ldr r2, _020828E0 ; =0x00000171
|
|
ldrb r1, [r0, r2]
|
|
cmp r1, #0x0
|
|
beq _020828D6
|
|
cmp r1, #0x1
|
|
bne _020828DA
|
|
add r1, r2, #0x0
|
|
sub r1, #0x55
|
|
sub r2, #0x4e
|
|
ldrb r1, [r0, r1]
|
|
ldrb r0, [r0, r2]
|
|
cmp r1, r0
|
|
bne _020828DA
|
|
_020828D6:
|
|
mov r0, #0x1
|
|
bx lr
|
|
_020828DA:
|
|
mov r0, #0x0
|
|
bx lr
|
|
nop
|
|
_020828E0: .word 0x00000171
|
|
|
|
thumb_func_start sub_020828E4
|
|
sub_020828E4: ; 0x020828E4
|
|
push {r3-r7, lr}
|
|
sub sp, #0x58
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x70]
|
|
mov r6, #0x0
|
|
str r0, [sp, #0x70]
|
|
ldr r0, [sp, #0x74]
|
|
add r5, r1, #0x0
|
|
add r4, r3, #0x0
|
|
str r2, [sp, #0x8]
|
|
str r6, [sp, #0x20]
|
|
str r6, [sp, #0x18]
|
|
str r6, [sp, #0x1c]
|
|
cmp r0, #0x8
|
|
bhi _0208292A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0208290E: ; jump table (using 16-bit offset)
|
|
.short _0208292A - _0208290E - 2; case 0
|
|
.short _0208292A - _0208290E - 2; case 1
|
|
.short _0208292A - _0208290E - 2; case 2
|
|
.short _02082920 - _0208290E - 2; case 3
|
|
.short _02082926 - _0208290E - 2; case 4
|
|
.short _02082920 - _0208290E - 2; case 5
|
|
.short _02082926 - _0208290E - 2; case 6
|
|
.short _02082920 - _0208290E - 2; case 7
|
|
.short _02082926 - _0208290E - 2; case 8
|
|
_02082920:
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x18]
|
|
b _0208292A
|
|
_02082926:
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x1c]
|
|
_0208292A:
|
|
mov r0, #0x1
|
|
mov r1, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x5a
|
|
add r2, r1, #0x0
|
|
add r3, r5, #0x0
|
|
bl GfGfxLoader_LoadFromNarc
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x5a
|
|
mov r1, #0x0
|
|
bl GetNarcMemberSizeByIdPair
|
|
mov r1, #0x30
|
|
bl _u32_div_f
|
|
str r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x24]
|
|
add r0, r5, #0x0
|
|
add r1, r1, #0x1
|
|
bl Heap_AllocAtEnd
|
|
add r5, r0, #0x0
|
|
ldr r0, [sp, #0x78]
|
|
cmp r0, #0x1
|
|
bne _02082968
|
|
ldr r0, [sp, #0x7c]
|
|
cmp r0, #0x1
|
|
bne _02082968
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x20]
|
|
_02082968:
|
|
ldr r0, [sp, #0x24]
|
|
mov r2, #0x0
|
|
cmp r0, #0x0
|
|
ble _02082A1A
|
|
ldr r3, [sp, #0x14]
|
|
_02082972:
|
|
ldrh r7, [r3, #0x20]
|
|
lsl r0, r7, #0x1d
|
|
lsr r1, r0, #0x1d
|
|
ldr r0, [sp, #0x70]
|
|
cmp r0, r1
|
|
bne _02082A10
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0x1
|
|
bne _0208298E
|
|
lsl r0, r7, #0x14
|
|
lsr r0, r0, #0x1e
|
|
cmp r0, #0x1
|
|
beq _02082A10
|
|
b _0208299A
|
|
_0208298E:
|
|
lsl r0, r7, #0x14
|
|
lsr r0, r0, #0x1e
|
|
cmp r0, #0x2
|
|
beq _02082A10
|
|
cmp r0, #0x3
|
|
beq _02082A10
|
|
_0208299A:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0x1
|
|
bne _020829AA
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x16
|
|
lsr r0, r0, #0x1f
|
|
beq _02082A10
|
|
b _020829CA
|
|
_020829AA:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0x1
|
|
ldrh r0, [r3, #0x20]
|
|
bne _020829BA
|
|
lsl r0, r0, #0x17
|
|
lsr r0, r0, #0x1f
|
|
beq _02082A10
|
|
b _020829CA
|
|
_020829BA:
|
|
lsl r1, r0, #0x16
|
|
lsr r1, r1, #0x1f
|
|
cmp r1, #0x1
|
|
beq _02082A10
|
|
lsl r0, r0, #0x17
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #0x1
|
|
beq _02082A10
|
|
_020829CA:
|
|
cmp r4, #0x0
|
|
bne _020829D6
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1f
|
|
bne _02082A06
|
|
_020829D6:
|
|
cmp r4, #0x1
|
|
bne _020829E2
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x1b
|
|
lsr r0, r0, #0x1f
|
|
bne _02082A06
|
|
_020829E2:
|
|
cmp r4, #0x2
|
|
bne _020829EE
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x1a
|
|
lsr r0, r0, #0x1f
|
|
bne _02082A06
|
|
_020829EE:
|
|
cmp r4, #0x3
|
|
bne _020829FA
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x1f
|
|
bne _02082A06
|
|
_020829FA:
|
|
cmp r4, #0x4
|
|
bne _02082A10
|
|
ldrh r0, [r3, #0x20]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1f
|
|
beq _02082A10
|
|
_02082A06:
|
|
add r1, r6, #0x1
|
|
add r0, r6, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r6, r1, #0x18
|
|
strb r2, [r5, r0]
|
|
_02082A10:
|
|
ldr r0, [sp, #0x24]
|
|
add r2, r2, #0x1
|
|
add r3, #0x30
|
|
cmp r2, r0
|
|
blt _02082972
|
|
_02082A1A:
|
|
mov r0, #0xff
|
|
strb r0, [r5, r6]
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0x0
|
|
beq _02082A26
|
|
b _02082B4E
|
|
_02082A26:
|
|
ldr r0, [sp, #0x8]
|
|
cmp r6, r0
|
|
bge _02082A30
|
|
bl GF_AssertFail
|
|
_02082A30:
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x10]
|
|
cmp r6, #0x0
|
|
ble _02082A5A
|
|
mov r2, #0x30
|
|
_02082A3A:
|
|
ldrb r1, [r5, r0]
|
|
add r3, r1, #0x0
|
|
ldr r1, [sp, #0x14]
|
|
mul r3, r2
|
|
add r1, r1, r3
|
|
ldrh r1, [r1, #0x20]
|
|
lsl r1, r1, #0x14
|
|
lsr r1, r1, #0x1e
|
|
cmp r1, #0x3
|
|
bne _02082A54
|
|
ldr r1, [sp, #0x10]
|
|
add r1, r1, #0x1
|
|
str r1, [sp, #0x10]
|
|
_02082A54:
|
|
add r0, r0, #0x1
|
|
cmp r0, r6
|
|
blt _02082A3A
|
|
_02082A5A:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0x0
|
|
ble _02082AA2
|
|
ldr r0, [sp, #0x4]
|
|
bl sub_02082878
|
|
ldr r1, [sp, #0x10]
|
|
bl _s32_div_f
|
|
mov r3, #0x0
|
|
cmp r6, #0x0
|
|
ble _02082AA2
|
|
mov r0, #0x30
|
|
_02082A74:
|
|
ldrb r4, [r5, r3]
|
|
add r2, r4, #0x0
|
|
ldr r4, [sp, #0x14]
|
|
mul r2, r0
|
|
add r2, r4, r2
|
|
ldrh r4, [r2, #0x20]
|
|
lsl r4, r4, #0x14
|
|
lsr r4, r4, #0x1e
|
|
cmp r4, #0x3
|
|
bne _02082A9C
|
|
cmp r1, #0x0
|
|
bne _02082A9A
|
|
add r4, sp, #0x28
|
|
mov r3, #0x6
|
|
_02082A90:
|
|
ldmia r2!, {r0-r1}
|
|
stmia r4!, {r0-r1}
|
|
sub r3, r3, #0x1
|
|
bne _02082A90
|
|
b _02082AA2
|
|
_02082A9A:
|
|
sub r1, r1, #0x1
|
|
_02082A9C:
|
|
add r3, r3, #0x1
|
|
cmp r3, r6
|
|
blt _02082A74
|
|
_02082AA2:
|
|
ldr r0, [sp, #0x8]
|
|
mov r1, #0x4
|
|
sub r4, r1, r0
|
|
add r0, r4, #0x0
|
|
str r4, [sp, #0xc]
|
|
cmp r0, #0x4
|
|
bge _02082B16
|
|
_02082AB0:
|
|
ldr r0, [sp, #0x4]
|
|
bl sub_02082878
|
|
add r1, r6, #0x0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r2, r0, #0x10
|
|
ldrb r3, [r5, r2]
|
|
mov r0, #0x30
|
|
add r1, r3, #0x0
|
|
ldr r3, [sp, #0x14]
|
|
mul r1, r0
|
|
add r7, r3, r1
|
|
ldrh r1, [r7, #0x20]
|
|
lsl r1, r1, #0x14
|
|
lsr r1, r1, #0x1e
|
|
cmp r1, #0x3
|
|
bne _02082ADA
|
|
sub r4, r4, #0x1
|
|
b _02082B10
|
|
_02082ADA:
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, [sp, #0x4]
|
|
add r3, r0, r1
|
|
mov r0, #0x6
|
|
add r3, #0x10
|
|
mov r12, r0
|
|
_02082AE8:
|
|
ldmia r7!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
mov r0, r12
|
|
sub r0, r0, #0x1
|
|
mov r12, r0
|
|
bne _02082AE8
|
|
ldrb r1, [r5, r2]
|
|
add r0, r5, r2
|
|
cmp r1, #0xff
|
|
beq _02082B0A
|
|
_02082AFC:
|
|
ldrb r1, [r0, #0x1]
|
|
add r2, r2, #0x1
|
|
strb r1, [r0, #0x0]
|
|
ldrb r1, [r5, r2]
|
|
add r0, r5, r2
|
|
cmp r1, #0xff
|
|
bne _02082AFC
|
|
_02082B0A:
|
|
sub r0, r6, #0x1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
_02082B10:
|
|
add r4, r4, #0x1
|
|
cmp r4, #0x4
|
|
blt _02082AB0
|
|
_02082B16:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0x0
|
|
ble _02082B7E
|
|
ldr r0, [sp, #0xc]
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
ldr r0, [sp, #0x4]
|
|
bl sub_02082878
|
|
ldr r1, [sp, #0x8]
|
|
bl _s32_div_f
|
|
add r0, r4, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r2, r0, #0x10
|
|
add r1, r2, #0x0
|
|
mov r0, #0x30
|
|
mul r1, r0
|
|
ldr r0, [sp, #0x4]
|
|
add r4, sp, #0x28
|
|
add r3, r0, r1
|
|
add r3, #0x10
|
|
mov r2, #0x6
|
|
_02082B44:
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
sub r2, r2, #0x1
|
|
bne _02082B44
|
|
b _02082B7E
|
|
_02082B4E:
|
|
cmp r6, #0x4
|
|
bhs _02082B56
|
|
bl GF_AssertFail
|
|
_02082B56:
|
|
mov r6, #0x0
|
|
mov r7, #0x30
|
|
_02082B5A:
|
|
ldrb r0, [r5, r6]
|
|
ldr r3, [sp, #0x4]
|
|
mov r2, #0x6
|
|
add r1, r0, #0x0
|
|
ldr r0, [sp, #0x14]
|
|
mul r1, r7
|
|
add r4, r0, r1
|
|
add r3, #0x10
|
|
_02082B6A:
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
sub r2, r2, #0x1
|
|
bne _02082B6A
|
|
ldr r0, [sp, #0x4]
|
|
add r6, r6, #0x1
|
|
add r0, #0x30
|
|
str r0, [sp, #0x4]
|
|
cmp r6, #0x4
|
|
blt _02082B5A
|
|
_02082B7E:
|
|
add r0, r5, #0x0
|
|
bl Heap_Free
|
|
ldr r0, [sp, #0x14]
|
|
bl Heap_Free
|
|
add sp, #0x58
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02082B90
|
|
sub_02082B90: ; 0x02082B90
|
|
push {r3-r7, lr}
|
|
sub sp, #0x18
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0x1
|
|
add r3, r1, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x5a
|
|
mov r1, #0x2
|
|
mov r2, #0x0
|
|
bl GfGfxLoader_LoadFromNarc
|
|
str r0, [sp, #0x14]
|
|
ldr r1, _02082D10 ; =0x00000121
|
|
ldr r0, [sp, #0x8]
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0x4
|
|
beq _02082BBA
|
|
cmp r0, #0x6
|
|
beq _02082BBA
|
|
cmp r0, #0x8
|
|
bne _02082BC0
|
|
_02082BBA:
|
|
mov r0, #0x0
|
|
str r0, [sp, #0xc]
|
|
b _02082BC8
|
|
_02082BC0:
|
|
ldr r0, [sp, #0x8]
|
|
add r1, r1, #0x6
|
|
ldrb r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
_02082BC8:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0x4
|
|
blt _02082BD0
|
|
b _02082D06
|
|
_02082BD0:
|
|
mov r1, #0x30
|
|
mul r1, r0
|
|
ldr r0, [sp, #0x8]
|
|
add r7, r0, r1
|
|
ldr r0, [sp, #0xc]
|
|
lsl r1, r0, #0x2
|
|
ldr r0, [sp, #0x8]
|
|
add r6, r0, r1
|
|
_02082BE0:
|
|
ldr r1, _02082D14 ; =0x00000122
|
|
ldr r0, [sp, #0x8]
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0xb
|
|
bhi _02082C6E
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02082BF6: ; jump table (using 16-bit offset)
|
|
.short _02082C0E - _02082BF6 - 2; case 0
|
|
.short _02082C16 - _02082BF6 - 2; case 1
|
|
.short _02082C1E - _02082BF6 - 2; case 2
|
|
.short _02082C26 - _02082BF6 - 2; case 3
|
|
.short _02082C2E - _02082BF6 - 2; case 4
|
|
.short _02082C36 - _02082BF6 - 2; case 5
|
|
.short _02082C3E - _02082BF6 - 2; case 6
|
|
.short _02082C46 - _02082BF6 - 2; case 7
|
|
.short _02082C4E - _02082BF6 - 2; case 8
|
|
.short _02082C56 - _02082BF6 - 2; case 9
|
|
.short _02082C5E - _02082BF6 - 2; case 10
|
|
.short _02082C66 - _02082BF6 - 2; case 11
|
|
_02082C0E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x32
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C16:
|
|
add r0, r7, #0x0
|
|
add r0, #0x33
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C1E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x34
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C26:
|
|
add r0, r7, #0x0
|
|
add r0, #0x35
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C2E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x36
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C36:
|
|
add r0, r7, #0x0
|
|
add r0, #0x37
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C3E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x38
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C46:
|
|
add r0, r7, #0x0
|
|
add r0, #0x39
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C4E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x3a
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C56:
|
|
add r0, r7, #0x0
|
|
add r0, #0x3b
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C5E:
|
|
add r0, r7, #0x0
|
|
add r0, #0x3c
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C66:
|
|
add r0, r7, #0x0
|
|
add r0, #0x3d
|
|
ldrb r2, [r0, #0x0]
|
|
b _02082C74
|
|
_02082C6E:
|
|
bl GF_AssertFail
|
|
mov r2, #0x0
|
|
_02082C74:
|
|
mov r0, #0x54
|
|
add r1, r2, #0x0
|
|
mul r1, r0
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0x0
|
|
add r0, #0xf8
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02027740
|
|
add r0, r6, #0x0
|
|
add r0, #0xf8
|
|
ldr r2, [sp, #0x10]
|
|
mov r3, #0x51
|
|
ldrsb r2, [r2, r3]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r6, #0x0]
|
|
bl sub_02027914
|
|
ldr r0, [sp, #0x10]
|
|
mov r5, #0x0
|
|
add r0, #0x50
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
ble _02082CD2
|
|
ldr r4, [sp, #0x10]
|
|
_02082CAA:
|
|
ldrb r0, [r4, #0x2]
|
|
add r1, r5, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x3
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0x4]
|
|
add r0, r6, #0x0
|
|
add r0, #0xf8
|
|
ldrb r2, [r4, #0x0]
|
|
ldrb r3, [r4, #0x1]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02027964
|
|
ldr r0, [sp, #0x10]
|
|
add r5, r5, #0x1
|
|
add r0, #0x50
|
|
ldrb r0, [r0, #0x0]
|
|
add r4, r4, #0x4
|
|
cmp r5, r0
|
|
blt _02082CAA
|
|
_02082CD2:
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r6, #0x0
|
|
add r1, #0x52
|
|
add r0, #0xf8
|
|
str r1, [sp, #0x10]
|
|
ldrb r1, [r1, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_0202787C
|
|
mov r2, #0x12
|
|
add r0, r6, #0x0
|
|
add r0, #0xf8
|
|
ldr r1, [sp, #0x8]
|
|
lsl r2, r2, #0x4
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_020278AC
|
|
ldr r0, [sp, #0xc]
|
|
add r7, #0x30
|
|
add r0, r0, #0x1
|
|
add r6, r6, #0x4
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0x4
|
|
bge _02082D06
|
|
b _02082BE0
|
|
_02082D06:
|
|
ldr r0, [sp, #0x14]
|
|
bl Heap_Free
|
|
add sp, #0x18
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02082D10: .word 0x00000121
|
|
_02082D14: .word 0x00000122
|
|
|
|
thumb_func_start sub_02082D18
|
|
sub_02082D18: ; 0x02082D18
|
|
push {r3-r7, lr}
|
|
add r6, r0, #0x0
|
|
mov r7, #0x12
|
|
mov r4, #0x0
|
|
add r5, r6, #0x0
|
|
lsl r7, r7, #0x4
|
|
_02082D24:
|
|
add r0, r5, #0x0
|
|
add r0, #0xf8
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02027740
|
|
add r0, r5, #0x0
|
|
add r0, #0xf8
|
|
mov r2, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r5, #0x0]
|
|
mvn r2, r2
|
|
bl sub_02027914
|
|
add r0, r5, #0x0
|
|
add r0, #0xf8
|
|
ldr r0, [r0, #0x0]
|
|
mov r1, #0x0
|
|
bl sub_0202787C
|
|
add r0, r5, #0x0
|
|
add r0, #0xf8
|
|
ldrb r1, [r6, r7]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_020278AC
|
|
add r4, r4, #0x1
|
|
add r5, r5, #0x4
|
|
cmp r4, #0x4
|
|
blt _02082D24
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02082D60
|
|
sub_02082D60: ; 0x02082D60
|
|
push {r3-r7, lr}
|
|
sub sp, #0x20
|
|
add r7, r0, #0x0
|
|
add r6, r1, #0x0
|
|
ldrh r1, [r7, #0x20]
|
|
str r2, [sp, #0x10]
|
|
ldrh r0, [r7, #0x14]
|
|
lsl r1, r1, #0x12
|
|
lsr r1, r1, #0x1e
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
mov r2, #0x0
|
|
bl GenPersonalityByGenderAndNature
|
|
mov r1, #0x1
|
|
str r1, [sp, #0x0]
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x2
|
|
str r0, [sp, #0x8]
|
|
ldr r0, _02082E60 ; =0x0F0F0F0F
|
|
mov r2, #0xa
|
|
str r0, [sp, #0xc]
|
|
ldrh r1, [r7, #0x14]
|
|
add r0, r6, #0x0
|
|
mov r3, #0x20
|
|
bl CreateMon
|
|
mov r4, #0x0
|
|
add r5, r7, #0x0
|
|
_02082D9A:
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, sp, #0x18
|
|
add r2, sp, #0x1c
|
|
strh r1, [r0, #0x6]
|
|
add r1, r4, #0x0
|
|
add r0, r6, #0x0
|
|
add r1, #0x36
|
|
add r2, #0x2
|
|
bl SetMonData
|
|
add r4, r4, #0x1
|
|
add r5, r5, #0x2
|
|
cmp r4, #0x4
|
|
blt _02082D9A
|
|
ldr r3, [sp, #0x10]
|
|
mov r0, #0x1
|
|
mov r1, #0x1a
|
|
mov r2, #0xc0
|
|
bl NewMsgDataFromNarc
|
|
ldrh r1, [r7, #0x16]
|
|
add r4, r0, #0x0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0x0
|
|
ldrh r1, [r7, #0x18]
|
|
add r0, r4, #0x0
|
|
bl NewString_ReadMsgData
|
|
str r0, [sp, #0x14]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x76
|
|
add r2, r5, #0x0
|
|
bl SetMonData
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x90
|
|
bl SetMonData
|
|
add r0, r5, #0x0
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x14]
|
|
bl String_Delete
|
|
add r0, r4, #0x0
|
|
bl DestroyMsgData
|
|
add r2, sp, #0x1c
|
|
ldrb r1, [r7, #0x1a]
|
|
add r0, sp, #0x18
|
|
add r2, #0x1
|
|
strb r1, [r0, #0x5]
|
|
ldrb r1, [r7, #0x1b]
|
|
strb r1, [r0, #0x4]
|
|
ldrb r1, [r7, #0x1c]
|
|
strb r1, [r0, #0x3]
|
|
ldrb r1, [r7, #0x1d]
|
|
strb r1, [r0, #0x2]
|
|
ldrb r1, [r7, #0x1e]
|
|
strb r1, [r0, #0x1]
|
|
ldrb r1, [r7, #0x1f]
|
|
strb r1, [r0, #0x0]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x13
|
|
bl SetMonData
|
|
add r0, r6, #0x0
|
|
mov r1, #0x14
|
|
add r2, sp, #0x1c
|
|
bl SetMonData
|
|
add r2, sp, #0x18
|
|
add r0, r6, #0x0
|
|
mov r1, #0x15
|
|
add r2, #0x3
|
|
bl SetMonData
|
|
add r2, sp, #0x18
|
|
add r0, r6, #0x0
|
|
mov r1, #0x16
|
|
add r2, #0x2
|
|
bl SetMonData
|
|
add r2, sp, #0x18
|
|
add r0, r6, #0x0
|
|
mov r1, #0x17
|
|
add r2, #0x1
|
|
bl SetMonData
|
|
add r0, r6, #0x0
|
|
mov r1, #0x18
|
|
add r2, sp, #0x18
|
|
bl SetMonData
|
|
add sp, #0x20
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02082E60: .word 0x0F0F0F0F
|
|
|
|
thumb_func_start sub_02082E64
|
|
sub_02082E64: ; 0x02082E64
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
add r6, r3, #0x0
|
|
add r5, r2, #0x0
|
|
lsl r2, r6, #0x18
|
|
str r0, [sp, #0x10]
|
|
add r7, r1, #0x0
|
|
add r0, sp, #0x14
|
|
add r1, r5, #0x0
|
|
lsr r2, r2, #0x18
|
|
ldr r4, [sp, #0x38]
|
|
bl sub_02068B68
|
|
lsl r1, r6, #0x18
|
|
add r0, r5, #0x0
|
|
lsr r1, r1, #0x18
|
|
bl sub_02068E14
|
|
add r5, r0, #0x0
|
|
cmp r4, #0x0
|
|
beq _02082EB0
|
|
ldr r0, [r4, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02082E98
|
|
bl GF_AssertFail
|
|
_02082E98:
|
|
add r1, sp, #0x14
|
|
ldrh r0, [r1, #0x0]
|
|
ldrh r1, [r1, #0x2]
|
|
ldr r2, [sp, #0x3c]
|
|
ldr r3, [r4, #0x0]
|
|
bl sub_02012420
|
|
add r0, sp, #0x14
|
|
ldrh r1, [r0, #0x4]
|
|
str r1, [r4, #0x8]
|
|
ldrh r0, [r0, #0x0]
|
|
str r0, [r4, #0x4]
|
|
_02082EB0:
|
|
ldr r0, [sp, #0x48]
|
|
ldr r3, [sp, #0x44]
|
|
str r0, [sp, #0x0]
|
|
str r7, [sp, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r2, [sp, #0x40]
|
|
add r1, sp, #0x14
|
|
add r3, r3, r5
|
|
bl sub_020073A0
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02082ED0
|
|
sub_02082ED0: ; 0x02082ED0
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
str r0, [sp, #0x4]
|
|
str r1, [sp, #0x8]
|
|
ldr r0, [sp, #0x38]
|
|
add r7, r3, #0x0
|
|
mov r5, #0x0
|
|
str r2, [sp, #0xc]
|
|
str r0, [sp, #0x38]
|
|
mov r1, #0x1
|
|
ldr r3, [sp, #0x8]
|
|
mov r0, #0x5a
|
|
add r2, r5, #0x0
|
|
add r4, r5, #0x0
|
|
str r1, [sp, #0x0]
|
|
bl GfGfxLoader_LoadFromNarc
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x5a
|
|
mov r1, #0x1
|
|
bl GetNarcMemberSizeByIdPair
|
|
lsr r0, r0, #0x3
|
|
str r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x18]
|
|
ldr r0, [sp, #0x8]
|
|
add r1, r1, #0x1
|
|
bl Heap_AllocAtEnd
|
|
ldr r1, [sp, #0x18]
|
|
add r6, r0, #0x0
|
|
ldr r0, [sp, #0x8]
|
|
add r1, r1, #0x1
|
|
bl Heap_AllocAtEnd
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x18]
|
|
add r2, r5, #0x0
|
|
cmp r0, #0x0
|
|
ble _0208300A
|
|
ldr r3, [sp, #0x14]
|
|
_02082F22:
|
|
ldrh r0, [r3, #0x4]
|
|
mov r12, r0
|
|
lsl r0, r0, #0x14
|
|
lsr r1, r0, #0x1e
|
|
ldr r0, [sp, #0x38]
|
|
cmp r0, r1
|
|
bne _02083000
|
|
cmp r7, #0x0
|
|
bne _02082F5A
|
|
mov r0, r12
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1e
|
|
beq _02082F5A
|
|
cmp r0, #0x1
|
|
bls _02082F4E
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
add r1, r4, #0x0
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x10]
|
|
strb r2, [r0, r1]
|
|
b _02083000
|
|
_02082F4E:
|
|
add r1, r5, #0x1
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
strb r2, [r6, r0]
|
|
b _02083000
|
|
_02082F5A:
|
|
cmp r7, #0x1
|
|
bne _02082F84
|
|
ldrh r0, [r3, #0x4]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1e
|
|
beq _02082F84
|
|
cmp r0, #0x1
|
|
bls _02082F78
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
add r1, r4, #0x0
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x10]
|
|
strb r2, [r0, r1]
|
|
b _02083000
|
|
_02082F78:
|
|
add r1, r5, #0x1
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
strb r2, [r6, r0]
|
|
b _02083000
|
|
_02082F84:
|
|
cmp r7, #0x2
|
|
bne _02082FAE
|
|
ldrh r0, [r3, #0x4]
|
|
lsl r0, r0, #0x1a
|
|
lsr r0, r0, #0x1e
|
|
beq _02082FAE
|
|
cmp r0, #0x1
|
|
bls _02082FA2
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
add r1, r4, #0x0
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x10]
|
|
strb r2, [r0, r1]
|
|
b _02083000
|
|
_02082FA2:
|
|
add r1, r5, #0x1
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
strb r2, [r6, r0]
|
|
b _02083000
|
|
_02082FAE:
|
|
cmp r7, #0x3
|
|
bne _02082FD8
|
|
ldrh r0, [r3, #0x4]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1e
|
|
beq _02082FD8
|
|
cmp r0, #0x1
|
|
bls _02082FCC
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
add r1, r4, #0x0
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x10]
|
|
strb r2, [r0, r1]
|
|
b _02083000
|
|
_02082FCC:
|
|
add r1, r5, #0x1
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
strb r2, [r6, r0]
|
|
b _02083000
|
|
_02082FD8:
|
|
cmp r7, #0x4
|
|
bne _02083000
|
|
ldrh r0, [r3, #0x4]
|
|
lsl r0, r0, #0x16
|
|
lsr r0, r0, #0x1e
|
|
beq _02083000
|
|
cmp r0, #0x1
|
|
bls _02082FF6
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
add r1, r4, #0x0
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x10]
|
|
strb r2, [r0, r1]
|
|
b _02083000
|
|
_02082FF6:
|
|
add r1, r5, #0x1
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
strb r2, [r6, r0]
|
|
_02083000:
|
|
ldr r0, [sp, #0x18]
|
|
add r2, r2, #0x1
|
|
add r3, #0x8
|
|
cmp r2, r0
|
|
blt _02082F22
|
|
_0208300A:
|
|
mov r1, #0xff
|
|
ldr r0, [sp, #0x10]
|
|
strb r1, [r6, r5]
|
|
strb r1, [r0, r4]
|
|
cmp r5, #0x2
|
|
bhs _0208301A
|
|
bl GF_AssertFail
|
|
_0208301A:
|
|
ldr r2, [sp, #0x4]
|
|
mov r3, #0x0
|
|
_0208301E:
|
|
ldrb r0, [r6, r3]
|
|
ldr r5, [sp, #0x14]
|
|
add r3, r3, #0x1
|
|
lsl r1, r0, #0x3
|
|
ldr r0, [sp, #0x14]
|
|
ldrh r5, [r5, r1]
|
|
add r0, r0, r1
|
|
add r1, r2, #0x0
|
|
add r1, #0xd0
|
|
strh r5, [r1, #0x0]
|
|
add r1, r2, #0x0
|
|
ldrh r5, [r0, #0x2]
|
|
add r1, #0xd2
|
|
strh r5, [r1, #0x0]
|
|
add r1, r2, #0x0
|
|
ldrh r5, [r0, #0x4]
|
|
add r1, #0xd4
|
|
strh r5, [r1, #0x0]
|
|
ldrh r1, [r0, #0x6]
|
|
add r0, r2, #0x0
|
|
add r0, #0xd6
|
|
add r2, #0x8
|
|
strh r1, [r0, #0x0]
|
|
cmp r3, #0x2
|
|
blt _0208301E
|
|
cmp r4, #0x1
|
|
bhs _02083058
|
|
bl GF_AssertFail
|
|
_02083058:
|
|
ldr r0, [sp, #0x4]
|
|
bl sub_02082878
|
|
add r1, r4, #0x0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r1, r0, #0x10
|
|
ldr r0, [sp, #0x10]
|
|
ldrb r0, [r0, r1]
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r0, #0x3
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, r2
|
|
ldrh r2, [r1, r2]
|
|
ldr r1, [sp, #0x4]
|
|
add r1, #0xe0
|
|
strh r2, [r1, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
ldrh r2, [r0, #0x2]
|
|
add r1, #0xe2
|
|
strh r2, [r1, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
ldrh r2, [r0, #0x4]
|
|
add r1, #0xe4
|
|
strh r2, [r1, #0x0]
|
|
ldrh r1, [r0, #0x6]
|
|
ldr r0, [sp, #0x4]
|
|
ldr r2, _02083110 ; =0x0000011E
|
|
add r0, #0xe6
|
|
strh r1, [r0, #0x0]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x4]
|
|
strb r1, [r0, r2]
|
|
add r2, r0, #0x0
|
|
add r0, r1, #0x0
|
|
lsl r1, r0, #0x3
|
|
add r2, #0xd0
|
|
ldrh r4, [r2, r1]
|
|
add r0, sp, #0x1c
|
|
add r3, r2, r1
|
|
strh r4, [r0, #0x0]
|
|
ldrh r4, [r3, #0x2]
|
|
strh r4, [r0, #0x2]
|
|
ldrh r4, [r3, #0x4]
|
|
strh r4, [r0, #0x4]
|
|
ldrh r4, [r3, #0x6]
|
|
strh r4, [r0, #0x6]
|
|
ldr r4, [sp, #0x4]
|
|
add r4, #0xe0
|
|
ldrh r4, [r4, #0x0]
|
|
strh r4, [r2, r1]
|
|
ldr r1, [sp, #0x4]
|
|
add r1, #0xe2
|
|
ldrh r1, [r1, #0x0]
|
|
strh r1, [r3, #0x2]
|
|
ldr r1, [sp, #0x4]
|
|
add r1, #0xe4
|
|
ldrh r1, [r1, #0x0]
|
|
strh r1, [r3, #0x4]
|
|
ldr r1, [sp, #0x4]
|
|
add r1, #0xe6
|
|
ldrh r1, [r1, #0x0]
|
|
strh r1, [r3, #0x6]
|
|
ldr r1, [sp, #0x4]
|
|
ldrh r2, [r0, #0x0]
|
|
add r1, #0xe0
|
|
strh r2, [r1, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
ldrh r2, [r0, #0x2]
|
|
add r1, #0xe2
|
|
strh r2, [r1, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
ldrh r2, [r0, #0x4]
|
|
add r1, #0xe4
|
|
strh r2, [r1, #0x0]
|
|
ldrh r1, [r0, #0x6]
|
|
ldr r0, [sp, #0x4]
|
|
add r0, #0xe6
|
|
str r0, [sp, #0x4]
|
|
strh r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x10]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
bl Heap_Free
|
|
ldr r0, [sp, #0x14]
|
|
bl Heap_Free
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02083110: .word 0x0000011E
|
|
|
|
thumb_func_start sub_02083114
|
|
sub_02083114: ; 0x02083114
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
cmp r4, #0x18
|
|
blo _02083120
|
|
bl GF_AssertFail
|
|
_02083120:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _0208312C ; =UNK_020FBC6C
|
|
ldrsb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0208312C: .word UNK_020FBC6C
|
|
|
|
thumb_func_start sub_02083130
|
|
sub_02083130: ; 0x02083130
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
cmp r5, #0x18
|
|
blo _02083140
|
|
bl GF_AssertFail
|
|
_02083140:
|
|
mov r0, #0x1a
|
|
add r1, r5, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083154 ; =UNK_020FBC68
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r4, #0x0]
|
|
ldr r0, _02083158 ; =UNK_020FBC6A
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02083154: .word UNK_020FBC68
|
|
_02083158: .word UNK_020FBC6A
|
|
|
|
thumb_func_start sub_0208315C
|
|
sub_0208315C: ; 0x0208315C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
cmp r4, #0x18
|
|
blo _02083168
|
|
bl GF_AssertFail
|
|
_02083168:
|
|
add r4, #0x2d
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083170
|
|
sub_02083170: ; 0x02083170
|
|
push {r3-r7, lr}
|
|
add r4, r0, #0x0
|
|
add r7, r1, #0x0
|
|
add r5, r2, #0x0
|
|
add r6, r3, #0x0
|
|
cmp r4, #0x18
|
|
blo _02083182
|
|
bl GF_AssertFail
|
|
_02083182:
|
|
cmp r7, #0x4
|
|
bhi _0208319C
|
|
add r0, r7, r7
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02083192: ; jump table (using 16-bit offset)
|
|
.short _0208319C - _02083192 - 2; case 0
|
|
.short _020831B0 - _02083192 - 2; case 1
|
|
.short _020831C4 - _02083192 - 2; case 2
|
|
.short _020831D8 - _02083192 - 2; case 3
|
|
.short _020831EC - _02083192 - 2; case 4
|
|
_0208319C:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083200 ; =UNK_020FBC6E
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, _02083204 ; =UNK_020FBC70
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r3-r7, pc}
|
|
_020831B0:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083208 ; =UNK_020FBC72
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, _0208320C ; =UNK_020FBC74
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r3-r7, pc}
|
|
_020831C4:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083210 ; =UNK_020FBC76
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, _02083214 ; =UNK_020FBC78
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r3-r7, pc}
|
|
_020831D8:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083218 ; =UNK_020FBC7A
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, _0208321C ; =UNK_020FBC7C
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r3-r7, pc}
|
|
_020831EC:
|
|
mov r0, #0x1a
|
|
add r1, r4, #0x0
|
|
mul r1, r0
|
|
ldr r0, _02083220 ; =UNK_020FBC7E
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, _02083224 ; =UNK_020FBC80
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6, #0x0]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02083200: .word UNK_020FBC6E
|
|
_02083204: .word UNK_020FBC70
|
|
_02083208: .word UNK_020FBC72
|
|
_0208320C: .word UNK_020FBC74
|
|
_02083210: .word UNK_020FBC76
|
|
_02083214: .word UNK_020FBC78
|
|
_02083218: .word UNK_020FBC7A
|
|
_0208321C: .word UNK_020FBC7C
|
|
_02083220: .word UNK_020FBC7E
|
|
_02083224: .word UNK_020FBC80
|
|
|
|
thumb_func_start sub_02083228
|
|
sub_02083228: ; 0x02083228
|
|
cmp r2, #0x1
|
|
bne _02083230
|
|
mov r0, #0x33
|
|
bx lr
|
|
_02083230:
|
|
cmp r1, #0x3
|
|
beq _0208323C
|
|
cmp r1, #0x5
|
|
beq _0208323C
|
|
cmp r1, #0x7
|
|
bne _02083240
|
|
_0208323C:
|
|
mov r0, #0x32
|
|
bx lr
|
|
_02083240:
|
|
cmp r0, #0x3
|
|
bhi _02083264
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02083250: ; jump table (using 16-bit offset)
|
|
.short _02083258 - _02083250 - 2; case 0
|
|
.short _0208325C - _02083250 - 2; case 1
|
|
.short _02083260 - _02083250 - 2; case 2
|
|
.short _02083264 - _02083250 - 2; case 3
|
|
_02083258:
|
|
mov r0, #0x2e
|
|
bx lr
|
|
_0208325C:
|
|
mov r0, #0x2f
|
|
bx lr
|
|
_02083260:
|
|
mov r0, #0x30
|
|
bx lr
|
|
_02083264:
|
|
mov r0, #0x31
|
|
bx lr
|
|
|
|
thumb_func_start sub_02083268
|
|
sub_02083268: ; 0x02083268
|
|
cmp r0, #0x4
|
|
bhi _02083292
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02083278: ; jump table (using 16-bit offset)
|
|
.short _02083282 - _02083278 - 2; case 0
|
|
.short _02083286 - _02083278 - 2; case 1
|
|
.short _0208328A - _02083278 - 2; case 2
|
|
.short _0208328E - _02083278 - 2; case 3
|
|
.short _02083292 - _02083278 - 2; case 4
|
|
_02083282:
|
|
mov r0, #0x2e
|
|
bx lr
|
|
_02083286:
|
|
mov r0, #0x2f
|
|
bx lr
|
|
_0208328A:
|
|
mov r0, #0x30
|
|
bx lr
|
|
_0208328E:
|
|
mov r0, #0x31
|
|
bx lr
|
|
_02083292:
|
|
mov r0, #0x33
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083298
|
|
sub_02083298: ; 0x02083298
|
|
ldr r3, _020832A0 ; =sub_020832A4
|
|
mov r1, #0x2
|
|
bx r3
|
|
nop
|
|
_020832A0: .word sub_020832A4
|
|
|
|
thumb_func_start sub_020832A4
|
|
sub_020832A4: ; 0x020832A4
|
|
cmp r1, #0x5
|
|
bne _020832AC
|
|
mov r0, #0x34
|
|
bx lr
|
|
_020832AC:
|
|
cmp r0, #0x4
|
|
bhi _020832D6
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_020832BC: ; jump table (using 16-bit offset)
|
|
.short _020832C6 - _020832BC - 2; case 0
|
|
.short _020832CA - _020832BC - 2; case 1
|
|
.short _020832CE - _020832BC - 2; case 2
|
|
.short _020832D2 - _020832BC - 2; case 3
|
|
.short _020832D6 - _020832BC - 2; case 4
|
|
_020832C6:
|
|
mov r0, #0x29
|
|
bx lr
|
|
_020832CA:
|
|
mov r0, #0x2a
|
|
bx lr
|
|
_020832CE:
|
|
mov r0, #0x2b
|
|
bx lr
|
|
_020832D2:
|
|
mov r0, #0x2c
|
|
bx lr
|
|
_020832D6:
|
|
mov r0, #0x2d
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020832DC
|
|
sub_020832DC: ; 0x020832DC
|
|
mov r1, #0x3
|
|
sub r0, r1, r0
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020832E4
|
|
sub_020832E4: ; 0x020832E4
|
|
mov r1, #0x3
|
|
sub r0, r1, r0
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020832EC
|
|
sub_020832EC: ; 0x020832EC
|
|
ldr r1, _02083304 ; =0x00000121
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0x3
|
|
beq _020832FC
|
|
cmp r0, #0x5
|
|
beq _020832FC
|
|
cmp r0, #0x7
|
|
bne _02083300
|
|
_020832FC:
|
|
mov r0, #0x1
|
|
bx lr
|
|
_02083300:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_02083304: .word 0x00000121
|
|
|
|
thumb_func_start sub_02083308
|
|
sub_02083308: ; 0x02083308
|
|
push {r4-r5}
|
|
sub sp, #0x50
|
|
ldr r5, _02083368 ; =UNK_020FBC18
|
|
add r4, sp, #0x0
|
|
mov r3, #0x28
|
|
_02083312:
|
|
ldrh r2, [r5, #0x0]
|
|
add r5, r5, #0x2
|
|
strh r2, [r4, #0x0]
|
|
add r4, r4, #0x2
|
|
sub r3, r3, #0x1
|
|
bne _02083312
|
|
mov r3, #0xc
|
|
mul r3, r1
|
|
add r1, r0, r3
|
|
mov r3, #0x4a
|
|
lsl r3, r3, #0x2
|
|
add r4, r3, #0x0
|
|
add r4, #0x49
|
|
ldrb r4, [r0, r4]
|
|
mov r2, #0x0
|
|
ldrsh r1, [r1, r3]
|
|
cmp r4, #0x1
|
|
bne _0208333A
|
|
add r4, sp, #0x40
|
|
b _02083344
|
|
_0208333A:
|
|
sub r3, #0x8
|
|
ldrb r0, [r0, r3]
|
|
add r4, sp, #0x0
|
|
lsl r0, r0, #0x4
|
|
add r4, r4, r0
|
|
_02083344:
|
|
mov r3, #0x0
|
|
_02083346:
|
|
ldrh r0, [r4, #0x0]
|
|
cmp r1, r0
|
|
bge _02083354
|
|
add sp, #0x50
|
|
add r0, r2, #0x0
|
|
pop {r4-r5}
|
|
bx lr
|
|
_02083354:
|
|
add r3, r3, #0x1
|
|
add r2, r2, #0x1
|
|
add r4, r4, #0x2
|
|
cmp r3, #0x8
|
|
blt _02083346
|
|
add r0, r2, #0x0
|
|
add sp, #0x50
|
|
pop {r4-r5}
|
|
bx lr
|
|
nop
|
|
_02083368: .word UNK_020FBC18
|
|
|
|
thumb_func_start sub_0208336C
|
|
sub_0208336C: ; 0x0208336C
|
|
push {r4-r5}
|
|
sub sp, #0x10
|
|
ldr r5, _020833CC ; =UNK_020FBC08
|
|
add r4, sp, #0x0
|
|
mov r3, #0xf
|
|
_02083376:
|
|
ldrb r2, [r5, #0x0]
|
|
add r5, r5, #0x1
|
|
strb r2, [r4, #0x0]
|
|
add r4, r4, #0x1
|
|
sub r3, r3, #0x1
|
|
bne _02083376
|
|
mov r2, #0xc
|
|
mul r2, r1
|
|
ldr r3, _020833D0 ; =0x0000012A
|
|
add r1, r0, r2
|
|
ldrsh r1, [r1, r3]
|
|
cmp r1, #0x0
|
|
bne _02083398
|
|
add sp, #0x10
|
|
mov r0, #0x0
|
|
pop {r4-r5}
|
|
bx lr
|
|
_02083398:
|
|
add r2, r3, #0x0
|
|
add r2, #0x47
|
|
ldrb r2, [r0, r2]
|
|
cmp r2, #0x1
|
|
bne _020833A6
|
|
add r4, sp, #0xc
|
|
b _020833B2
|
|
_020833A6:
|
|
sub r3, #0xa
|
|
ldrb r2, [r0, r3]
|
|
add r4, sp, #0x0
|
|
lsl r0, r2, #0x1
|
|
add r0, r2, r0
|
|
add r4, r4, r0
|
|
_020833B2:
|
|
mov r0, #0x1
|
|
mov r3, #0x0
|
|
_020833B6:
|
|
ldrb r2, [r4, r3]
|
|
cmp r1, r2
|
|
ble _020833C4
|
|
add r3, r3, #0x1
|
|
add r0, r0, #0x1
|
|
cmp r3, #0x3
|
|
blt _020833B6
|
|
_020833C4:
|
|
add sp, #0x10
|
|
pop {r4-r5}
|
|
bx lr
|
|
nop
|
|
_020833CC: .word UNK_020FBC08
|
|
_020833D0: .word 0x0000012A
|
|
|
|
thumb_func_start sub_020833D4
|
|
sub_020833D4: ; 0x020833D4
|
|
push {r3, lr}
|
|
cmp r0, #0x0
|
|
bne _020833EE
|
|
mov r0, #0x1
|
|
bl TextFlags_SetCanABSpeedUpPrint
|
|
mov r0, #0x3
|
|
bl sub_02002B7C
|
|
mov r0, #0x1
|
|
bl sub_02002BB8
|
|
pop {r3, pc}
|
|
_020833EE:
|
|
mov r0, #0x1
|
|
bl sub_02002B7C
|
|
mov r0, #0x0
|
|
bl TextFlags_SetCanABSpeedUpPrint
|
|
mov r0, #0x0
|
|
bl sub_02002BB8
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083404
|
|
sub_02083404: ; 0x02083404
|
|
push {r3, lr}
|
|
mov r0, #0x0
|
|
bl TextFlags_SetCanABSpeedUpPrint
|
|
mov r0, #0x0
|
|
bl sub_02002B7C
|
|
mov r0, #0x0
|
|
bl sub_02002BB8
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0208341C
|
|
sub_0208341C: ; 0x0208341C
|
|
push {r3, lr}
|
|
cmp r1, #0x4
|
|
bhi _0208344C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0208342E: ; jump table (using 16-bit offset)
|
|
.short _02083438 - _0208342E - 2; case 0
|
|
.short _0208343C - _0208342E - 2; case 1
|
|
.short _02083440 - _0208342E - 2; case 2
|
|
.short _02083444 - _0208342E - 2; case 3
|
|
.short _02083448 - _0208342E - 2; case 4
|
|
_02083438:
|
|
add r0, #0x7a
|
|
pop {r3, pc}
|
|
_0208343C:
|
|
add r0, #0x7e
|
|
pop {r3, pc}
|
|
_02083440:
|
|
add r0, #0x82
|
|
pop {r3, pc}
|
|
_02083444:
|
|
add r0, #0x86
|
|
pop {r3, pc}
|
|
_02083448:
|
|
add r0, #0x8a
|
|
pop {r3, pc}
|
|
_0208344C:
|
|
bl GF_AssertFail
|
|
mov r0, #0x7a
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02083454
|
|
sub_02083454: ; 0x02083454
|
|
push {r4-r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0x0
|
|
mov r4, #0x0
|
|
cmp r5, #0x3
|
|
beq _02083464
|
|
cmp r1, #0x1
|
|
bne _02083474
|
|
_02083464:
|
|
bl LCRandom
|
|
mov r1, #0xc
|
|
bl _s32_div_f
|
|
add sp, #0xc
|
|
add r0, r1, #0x0
|
|
pop {r4-r5, pc}
|
|
_02083474:
|
|
add r0, sp, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0xc
|
|
bl MI_CpuFill8
|
|
mov r1, #0x2
|
|
add r0, sp, #0x0
|
|
strb r1, [r0, #0x0]
|
|
mov r1, #0x3
|
|
strb r1, [r0, #0x1]
|
|
mov r1, #0x4
|
|
add r4, r4, #0x3
|
|
strb r1, [r0, #0x2]
|
|
cmp r5, #0x1
|
|
blt _020834A6
|
|
mov r0, #0x0
|
|
add r2, sp, #0x0
|
|
strb r0, [r2, r4]
|
|
mov r1, #0x1
|
|
add r0, r4, #0x1
|
|
strb r1, [r2, r0]
|
|
add r1, r4, #0x2
|
|
mov r0, #0x5
|
|
add r4, r4, #0x3
|
|
strb r0, [r2, r1]
|
|
_020834A6:
|
|
cmp r5, #0x2
|
|
blt _020834BE
|
|
mov r0, #0x6
|
|
add r2, sp, #0x0
|
|
strb r0, [r2, r4]
|
|
mov r1, #0x7
|
|
add r0, r4, #0x1
|
|
strb r1, [r2, r0]
|
|
add r1, r4, #0x2
|
|
mov r0, #0x8
|
|
add r4, r4, #0x3
|
|
strb r0, [r2, r1]
|
|
_020834BE:
|
|
bl LCRandom
|
|
add r1, r4, #0x0
|
|
bl _s32_div_f
|
|
add r0, sp, #0x0
|
|
ldrb r0, [r0, r1]
|
|
add sp, #0xc
|
|
pop {r4-r5, pc}
|