mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
519 lines
8.4 KiB
ArmAsm
519 lines
8.4 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0202D4C4
|
|
sub_0202D4C4: ; 0x0202D4C4
|
|
ldr r3, [r0, #0x1c]
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x18]
|
|
cmp r3, #0x0
|
|
ble _0202D4E0
|
|
_0202D4CE:
|
|
ldrb r0, [r1, #0xe]
|
|
cmp r0, #0x0
|
|
bne _0202D4D8
|
|
add r0, r1, #0x0
|
|
bx lr
|
|
_0202D4D8:
|
|
add r2, r2, #0x1
|
|
add r1, #0x10
|
|
cmp r2, r3
|
|
blt _0202D4CE
|
|
_0202D4E0:
|
|
mov r0, #0x0
|
|
bx lr
|
|
|
|
thumb_func_start sub_0202D4E4
|
|
sub_0202D4E4: ; 0x0202D4E4
|
|
ldr r3, [r0, #0x1c]
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x18]
|
|
cmp r3, #0x0
|
|
ble _0202D500
|
|
_0202D4EE:
|
|
ldrb r0, [r1, #0xe]
|
|
cmp r0, #0x0
|
|
beq _0202D4F8
|
|
mov r0, #0x0
|
|
bx lr
|
|
_0202D4F8:
|
|
add r2, r2, #0x1
|
|
add r1, #0x10
|
|
cmp r2, r3
|
|
blt _0202D4EE
|
|
_0202D500:
|
|
mov r0, #0x1
|
|
bx lr
|
|
|
|
thumb_func_start sub_0202D504
|
|
sub_0202D504: ; 0x0202D504
|
|
ldr r1, [r0, #0x0]
|
|
cmp r1, #0x0
|
|
beq _0202D522
|
|
ldr r1, [r1, #0x8]
|
|
cmp r1, #0x0
|
|
beq _0202D518
|
|
str r1, [r0, #0x0]
|
|
mov r0, #0x0
|
|
str r0, [r1, #0x4]
|
|
b _0202D51E
|
|
_0202D518:
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x0]
|
|
str r1, [r0, #0x4]
|
|
_0202D51E:
|
|
mov r0, #0x1
|
|
bx lr
|
|
_0202D522:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D528
|
|
sub_0202D528: ; 0x0202D528
|
|
ldr r2, [r0, #0x0]
|
|
strb r1, [r2, #0x0]
|
|
ldr r1, [r0, #0x0]
|
|
add r1, r1, #0x1
|
|
str r1, [r0, #0x0]
|
|
ldr r1, [r0, #0x4]
|
|
sub r1, r1, #0x1
|
|
str r1, [r0, #0x4]
|
|
bne _0202D53E
|
|
mov r0, #0x1
|
|
bx lr
|
|
_0202D53E:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D544
|
|
sub_0202D544: ; 0x0202D544
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r5, #0xe]
|
|
add r4, r1, #0x0
|
|
bl sub_0202D9A0
|
|
add r6, r0, #0x0
|
|
ldr r0, _0202D5B8 ; =0x0000FFFF
|
|
cmp r6, r0
|
|
ldr r0, [r4, #0x4]
|
|
bne _0202D56A
|
|
cmp r0, #0x3
|
|
bge _0202D57A
|
|
ldrb r1, [r5, #0xf]
|
|
mov r0, #0x1
|
|
bic r1, r0
|
|
strb r1, [r5, #0xf]
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0202D56A:
|
|
cmp r0, #0x1
|
|
bge _0202D57A
|
|
ldrb r1, [r5, #0xf]
|
|
mov r0, #0x1
|
|
bic r1, r0
|
|
strb r1, [r5, #0xf]
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0202D57A:
|
|
ldrb r1, [r5, #0xe]
|
|
add r0, r4, #0x0
|
|
bl sub_0202D528
|
|
ldr r0, _0202D5B8 ; =0x0000FFFF
|
|
cmp r6, r0
|
|
bne _0202D5A4
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r4, #0x0
|
|
asr r1, r1, #0x8
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_0202D528
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r4, #0x0
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_0202D528
|
|
b _0202D5A6
|
|
_0202D5A4:
|
|
strh r6, [r5, #0xc]
|
|
_0202D5A6:
|
|
ldrb r1, [r5, #0xf]
|
|
mov r0, #0x1
|
|
bic r1, r0
|
|
mov r0, #0x1
|
|
orr r0, r1
|
|
strb r0, [r5, #0xf]
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0202D5B8: .word 0x0000FFFF
|
|
|
|
thumb_func_start sub_0202D5BC
|
|
sub_0202D5BC: ; 0x0202D5BC
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r5, #0xe]
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
add r7, r3, #0x0
|
|
bl sub_0202D9A0
|
|
ldr r1, _0202D680 ; =0x0000FFFF
|
|
cmp r0, r1
|
|
bne _0202D5D6
|
|
mov r2, #0x3
|
|
b _0202D5D8
|
|
_0202D5D6:
|
|
mov r2, #0x1
|
|
_0202D5D8:
|
|
ldrh r0, [r5, #0xc]
|
|
ldr r1, [r4, #0x4]
|
|
add r0, r0, r2
|
|
cmp r1, r0
|
|
bge _0202D5EA
|
|
cmp r7, #0x0
|
|
bne _0202D5EA
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202D5EA:
|
|
ldrb r0, [r5, #0xf]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #0x1
|
|
beq _0202D604
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0202D544
|
|
cmp r0, #0x0
|
|
beq _0202D604
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202D604:
|
|
ldrh r3, [r5, #0xc]
|
|
ldr r2, [r4, #0x4]
|
|
cmp r2, r3
|
|
ldrb r0, [r5, #0xf]
|
|
bge _0202D64E
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
beq _0202D61E
|
|
ldr r1, [r4, #0x0]
|
|
add r0, r6, #0x0
|
|
bl sub_0202D400
|
|
b _0202D634
|
|
_0202D61E:
|
|
mov r3, #0x0
|
|
cmp r2, #0x0
|
|
ble _0202D634
|
|
_0202D624:
|
|
ldr r0, [r5, #0x0]
|
|
ldrb r1, [r0, r3]
|
|
ldr r0, [r4, #0x0]
|
|
strb r1, [r0, r3]
|
|
ldr r0, [r4, #0x4]
|
|
add r3, r3, #0x1
|
|
cmp r3, r0
|
|
blt _0202D624
|
|
_0202D634:
|
|
ldr r1, [r5, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x0]
|
|
ldrh r1, [r5, #0xc]
|
|
ldr r0, [r4, #0x4]
|
|
sub r0, r1, r0
|
|
strh r0, [r5, #0xc]
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
_0202D64E:
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
beq _0202D660
|
|
ldr r1, [r4, #0x0]
|
|
add r0, r6, #0x0
|
|
add r2, r3, #0x0
|
|
bl sub_0202D400
|
|
b _0202D66A
|
|
_0202D660:
|
|
ldr r0, [r5, #0x0]
|
|
ldr r1, [r4, #0x0]
|
|
add r2, r3, #0x0
|
|
bl MI_CpuCopy8
|
|
_0202D66A:
|
|
ldrh r0, [r5, #0xc]
|
|
ldr r1, [r4, #0x0]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x0]
|
|
ldrh r0, [r5, #0xc]
|
|
ldr r1, [r4, #0x4]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0202D680: .word 0x0000FFFF
|
|
|
|
thumb_func_start sub_0202D684
|
|
sub_0202D684: ; 0x0202D684
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
str r2, [sp, #0x4]
|
|
add r7, r3, #0x0
|
|
bl sub_0202D4C4
|
|
add r4, r0, #0x0
|
|
bne _0202D69E
|
|
add sp, #0x8
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202D69E:
|
|
ldr r0, _0202D710 ; =0x0000FFFE
|
|
cmp r7, r0
|
|
blt _0202D6A8
|
|
bl GF_AssertFail
|
|
_0202D6A8:
|
|
ldr r0, [sp, #0x0]
|
|
bl sub_0202D9A0
|
|
add r6, r0, #0x0
|
|
ldr r0, _0202D714 ; =0x0000FFFF
|
|
cmp r6, r0
|
|
bne _0202D6B8
|
|
add r6, r7, #0x0
|
|
_0202D6B8:
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #0x0
|
|
beq _0202D6EA
|
|
ldr r0, [r5, #0x14]
|
|
bl sub_0202D498
|
|
add r1, r6, #0x3
|
|
cmp r1, r0
|
|
blt _0202D6D0
|
|
add sp, #0x8
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202D6D0:
|
|
ldr r0, [r5, #0x14]
|
|
ldr r1, [sp, #0x4]
|
|
ldr r3, _0202D718 ; =0x00000109
|
|
add r2, r6, #0x0
|
|
bl sub_0202D3A4
|
|
ldr r0, [r5, #0x14]
|
|
bl sub_0202D4BC
|
|
ldrb r1, [r4, #0xf]
|
|
mov r0, #0x2
|
|
orr r0, r1
|
|
strb r0, [r4, #0xf]
|
|
_0202D6EA:
|
|
ldr r0, [sp, #0x0]
|
|
strh r6, [r4, #0xc]
|
|
strb r0, [r4, #0xe]
|
|
ldr r0, [sp, #0x4]
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
cmp r0, #0x0
|
|
bne _0202D700
|
|
str r4, [r5, #0x4]
|
|
str r4, [r5, #0x0]
|
|
b _0202D708
|
|
_0202D700:
|
|
str r4, [r0, #0x8]
|
|
ldr r0, [r5, #0x4]
|
|
str r0, [r4, #0x4]
|
|
str r4, [r5, #0x4]
|
|
_0202D708:
|
|
mov r0, #0x1
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0202D710: .word 0x0000FFFE
|
|
_0202D714: .word 0x0000FFFF
|
|
_0202D718: .word 0x00000109
|
|
|
|
thumb_func_start sub_0202D71C
|
|
sub_0202D71C: ; 0x0202D71C
|
|
ldr r1, [r0, #0x10]
|
|
cmp r1, #0x0
|
|
beq _0202D726
|
|
add r0, r1, #0x0
|
|
bx lr
|
|
_0202D726:
|
|
ldr r1, [r0, #0x0]
|
|
cmp r1, #0x0
|
|
beq _0202D730
|
|
add r0, r1, #0x0
|
|
bx lr
|
|
_0202D730:
|
|
ldr r0, [r0, #0x8]
|
|
cmp r0, #0x0
|
|
bne _0202D738
|
|
mov r0, #0x0
|
|
_0202D738:
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D73C
|
|
sub_0202D73C: ; 0x0202D73C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x10]
|
|
cmp r1, #0x0
|
|
beq _0202D74C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_0202D74C:
|
|
bl sub_0202D504
|
|
cmp r0, #0x0
|
|
bne _0202D75C
|
|
add r4, #0x8
|
|
add r0, r4, #0x0
|
|
bl sub_0202D504
|
|
_0202D75C:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D760
|
|
sub_0202D760: ; 0x0202D760
|
|
push {r3-r7, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0x4]
|
|
mov r7, #0x1
|
|
str r2, [sp, #0x0]
|
|
cmp r0, #0x0
|
|
ble _0202D7B6
|
|
_0202D770:
|
|
add r0, r5, #0x0
|
|
bl sub_0202D71C
|
|
add r6, r0, #0x0
|
|
beq _0202D7B6
|
|
add r0, r5, #0x0
|
|
bl sub_0202D73C
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
add r3, r7, #0x0
|
|
bl sub_0202D5BC
|
|
cmp r0, #0x0
|
|
bne _0202D794
|
|
str r6, [r5, #0x10]
|
|
b _0202D7B6
|
|
_0202D794:
|
|
mov r0, #0x0
|
|
ldr r1, [r4, #0x4]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _0202D7A4
|
|
str r6, [r5, #0x10]
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202D7A4:
|
|
add r0, r6, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x10
|
|
bl MI_CpuFill8
|
|
ldr r0, [r4, #0x4]
|
|
ldr r7, [sp, #0x0]
|
|
cmp r0, #0x0
|
|
bgt _0202D770
|
|
_0202D7B6:
|
|
ldr r0, [r4, #0x4]
|
|
mov r2, #0x0
|
|
cmp r0, #0x0
|
|
ble _0202D7D2
|
|
mov r1, #0xee
|
|
_0202D7C0:
|
|
ldr r0, [r4, #0x0]
|
|
add r2, r2, #0x1
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r4, #0x0]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
cmp r2, r0
|
|
blt _0202D7C0
|
|
_0202D7D2:
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D7D8
|
|
sub_0202D7D8: ; 0x0202D7D8
|
|
push {r3-r7, lr}
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x20
|
|
add r5, r0, #0x0
|
|
bl MI_CpuFill8
|
|
lsl r7, r4, #0x4
|
|
mov r0, #0xf
|
|
add r1, r7, #0x0
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
add r2, r7, #0x0
|
|
str r0, [r5, #0x18]
|
|
bl MI_CpuFill8
|
|
str r4, [r5, #0x1c]
|
|
str r6, [r5, #0x14]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D804
|
|
sub_0202D804: ; 0x0202D804
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x4
|
|
bl MI_CpuFill8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x0]
|
|
str r0, [r4, #0x4]
|
|
str r0, [r4, #0x8]
|
|
str r0, [r4, #0xc]
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202D824
|
|
sub_0202D824: ; 0x0202D824
|
|
ldr r3, _0202D82C ; =Heap_Free
|
|
ldr r0, [r0, #0x18]
|
|
bx r3
|
|
nop
|
|
_0202D82C: .word Heap_Free
|
|
|
|
thumb_func_start sub_0202D830
|
|
sub_0202D830: ; 0x0202D830
|
|
push {r3-r4}
|
|
ldr r4, [r0, #0x1c]
|
|
mov r2, #0x0
|
|
ldr r3, [r0, #0x18]
|
|
cmp r4, #0x0
|
|
ble _0202D850
|
|
_0202D83C:
|
|
ldrb r0, [r3, #0xe]
|
|
cmp r0, r1
|
|
bne _0202D848
|
|
mov r0, #0x1
|
|
pop {r3-r4}
|
|
bx lr
|
|
_0202D848:
|
|
add r2, r2, #0x1
|
|
add r3, #0x10
|
|
cmp r2, r4
|
|
blt _0202D83C
|
|
_0202D850:
|
|
mov r0, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
.balign 4
|