pokeheartgold/main.itcm.dump.s
2021-06-20 11:06:28 -04:00

474 lines
8.9 KiB
ArmAsm

arm_func_start FUN_01FF8000
FUN_01FF8000: @ 0x01FF8000
stmdb sp!, {lr}
mov ip, #0x4000000
add ip, ip, #0x210
ldr r1, [ip, #-8]
cmp r1, #0
ldmeq sp!, {pc}
ldm ip, {r1, r2}
ands r1, r1, r2
ldmeq sp!, {pc}
mov r3, #-0x80000000
_01FF8028:
clz r0, r1
bics r1, r1, r3, lsr r0
bne _01FF8028
lsr r1, r3, r0
str r1, [ip, #4]
rsbs r0, r0, #0x1f
ldr r1, _01FF8050 @ =0x027E0000
ldr r0, [r1, r0, lsl #2]
ldr lr, _01FF8054 @ =FUN_01FF8058
bx r0
.align 2, 0
_01FF8050: .4byte 0x027E0000
_01FF8054: .4byte FUN_01FF8058
arm_func_end FUN_01FF8000
arm_func_start FUN_01FF8058
FUN_01FF8058: @ 0x01FF8058
ldr ip, _01FF81A4 @ =0x027E0060
mov r3, #0
ldr ip, [ip]
mov r2, #1
cmp ip, #0
beq _01FF80A8
_01FF8070:
str r2, [ip, #0x64]
str r3, [ip, #0x78]
str r3, [ip, #0x7c]
ldr r0, [ip, #0x80]
str r3, [ip, #0x80]
mov ip, r0
cmp ip, #0
bne _01FF8070
ldr ip, _01FF81A4 @ =0x027E0060
str r3, [ip]
str r3, [ip, #4]
ldr ip, _01FF81A8 @ =0x021E16A0
mov r1, #1
strh r1, [ip]
_01FF80A8:
ldr ip, _01FF81A8 @ =0x021E16A0
ldrh r1, [ip]
cmp r1, #0
popeq {pc}
mov r1, #0
strh r1, [ip]
mov r3, #0xd2
msr cpsr_c, r3
add r2, ip, #8
ldr r1, [r2]
_01FF80D0:
cmp r1, #0
ldrhne r0, [r1, #0x64]
cmpne r0, #1
ldrne r1, [r1, #0x68]
bne _01FF80D0
cmp r1, #0
bne _01FF80F8
_01FF80EC:
mov r3, #0x92
msr cpsr_c, r3
pop {pc}
_01FF80F8:
ldr r0, [ip, #4]
cmp r1, r0
beq _01FF80EC
ldr r3, [ip, #0xc]
cmp r3, #0
beq _01FF8120
push {r0, r1, ip}
mov lr, pc
bx r3
arm_func_end FUN_01FF8058
arm_func_start FUN_01FF811C
FUN_01FF811C: @ 0x01FF811C
pop {r0, r1, ip}
_01FF8120:
str r1, [ip, #4]
mrs r2, spsr
str r2, [r0, #0]!
push {r0, r1}
add r0, r0, #0
add r0, r0, #0x48
ldr r1, _01FF81AC @ =0x020D9BF4
blx r1
pop {r0, r1}
ldmib sp!, {r2, r3}
stmib r0!, {r2, r3}
ldmib sp!, {r2, r3, ip, lr}
stmib r0!, {r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
stmib r0!, {lr}
mov r3, #0xd3
msr cpsr_c, r3
stmib r0!, {sp}
stmdb sp!, {r1}
add r0, r1, #0
add r0, r0, #0x48
ldr r1, _01FF81B0 @ =0x020D9C34
blx r1
ldm sp!, {r1}
ldr sp, [r1, #0x44]
mov r3, #0xd2
msr cpsr_c, r3
ldr r2, [r1, #0]!
msr spsr_fc, r2
ldr lr, [r1, #0x40]
ldmib r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
mov r0, r0
stmda sp!, {r0, r1, r2, r3, ip, lr}
ldm sp!, {pc}
.align 2, 0
_01FF81A4: .4byte 0x027E0060
_01FF81A8: .4byte 0x021E16A0
_01FF81AC: .4byte 0x020D9BF4
_01FF81B0: .4byte 0x020D9C34
arm_func_end FUN_01FF811C
arm_func_start FUN_01FF81B4
FUN_01FF81B4: @ 0x01FF81B4
push {r3, lr}
ldr r0, _01FF81E0 @ =0x021E1A04
_01FF81BC:
ldrh r1, [r0]
cmp r1, #0
beq _01FF81BC
ldr r0, _01FF81E4 @ =0x04000208
mov r1, #0
strh r1, [r0]
bl FUN_01FF82C8
bl FUN_01FF81E8
pop {r3, pc}
.align 2, 0
_01FF81E0: .4byte 0x021E1A04
_01FF81E4: .4byte 0x04000208
arm_func_end FUN_01FF81B4
arm_func_start FUN_01FF81E8
FUN_01FF81E8: @ 0x01FF81E8
mov ip, #0x4000000
str ip, [ip, #0x208]
ldr r1, _01FF8294 @ =0x027E0000
add r1, r1, #0x3fc0
add r1, r1, #0x3c
mov r0, #0
str r0, [r1]
ldr r1, _01FF8298 @ =0x04000180
_01FF8208:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #1
bne _01FF8208
mov r0, #0x100
strh r0, [r1]
mov r0, #0
ldr r3, _01FF829C @ =0x027FFD9C
ldr r4, [r3]
ldr r1, _01FF82A0 @ =0x027FFD80
mov r2, #0x80
bl FUN_01FF82B4
str r4, [r3]
ldr r1, _01FF82A4 @ =0x027FFF80
mov r2, #0x18
bl FUN_01FF82B4
ldr r1, _01FF82A8 @ =0x027FFF98
strh r0, [r1]
ldr r1, _01FF82AC @ =0x027FFF9C
mov r2, #0x64
bl FUN_01FF82B4
ldr r1, _01FF8298 @ =0x04000180
_01FF8260:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #1
beq _01FF8260
mov r0, #0
strh r0, [r1]
ldr r3, _01FF82B0 @ =0x027FFE00
ldr ip, [r3, #0x24]
mov lr, ip
ldr fp, _01FF82A4 @ =0x027FFF80
ldm fp, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl}
mov fp, #0
bx ip
.align 2, 0
_01FF8294: .4byte 0x027E0000
_01FF8298: .4byte 0x04000180
_01FF829C: .4byte 0x027FFD9C
_01FF82A0: .4byte 0x027FFD80
_01FF82A4: .4byte 0x027FFF80
_01FF82A8: .4byte 0x027FFF98
_01FF82AC: .4byte 0x027FFF9C
_01FF82B0: .4byte 0x027FFE00
arm_func_end FUN_01FF81E8
arm_func_start FUN_01FF82B4
FUN_01FF82B4: @ 0x01FF82B4
add ip, r1, r2
_01FF82B8:
cmp r1, ip
stmlt r1!, {r0}
blt _01FF82B8
bx lr
arm_func_end FUN_01FF82B4
arm_func_start FUN_01FF82C8
FUN_01FF82C8: @ 0x01FF82C8
push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr r1, _01FF8368 @ =0x027FFC2C
ldr r5, [r1]
cmp r5, #0x8000
blo _01FF82EC
mov r0, r5
add r1, r1, #0x1d4
mov r2, #0x160
bl FUN_01FF8370
_01FF82EC:
ldr r0, _01FF836C @ =0x027FFE20
ldr r6, [r0]
ldr r7, [r0, #8]
ldr r8, [r0, #0xc]
ldr sb, [r0, #0x10]
ldr fp, [r0, #0x18]
ldr sl, [r0, #0x1c]
bl FUN_020D3A38
mov r4, r0
bl FUN_020D27FC
bl FUN_020D27F0
mov r0, r4
bl FUN_020D3A4C
bl FUN_020D28C4
bl FUN_020D28B8
add r6, r6, r5
cmp r6, #0x8000
bhs _01FF8344
rsb r0, r6, #0x8000
add r7, r7, r0
sub r8, r8, r0
mov r6, #0x8000
_01FF8344:
mov r0, r6
mov r1, r7
mov r2, r8
bl FUN_01FF8370
mov r1, fp
mov r2, sl
add r0, sb, r5
bl FUN_01FF8370
pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_01FF8368: .4byte 0x027FFC2C
_01FF836C: .4byte 0x027FFE20
arm_func_end FUN_01FF82C8
arm_func_start FUN_01FF8370
FUN_01FF8370: @ 0x01FF8370
push {r3, r4, r5, r6, r7, r8, sb, lr}
ldr r4, _01FF8434 @ =0x027FFE60
ldr r3, _01FF8438 @ =0x000001FF
ldr r5, [r4]
and r4, r0, r3
bic r3, r5, #0x7000000
ldr r5, _01FF843C @ =0x040001A4
orr r3, r3, #0xa1000000
rsb ip, r4, #0
_01FF8394:
ldr r4, [r5]
tst r4, #-0x80000000
bne _01FF8394
ldr r7, _01FF8440 @ =0x040001A1
mov r4, #0x80
strb r4, [r7]
cmp ip, r2
add r0, r0, ip
popge {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r4, _01FF8444 @ =0x04100010
lsr sb, r0, #8
mov r6, #0xb7
mov r5, #0
_01FF83C8:
strb r6, [r7, #7]
lsr lr, r0, #0x18
strb lr, [r7, #8]
lsr lr, r0, #0x10
strb lr, [r7, #9]
strb sb, [r7, #0xa]
strb r0, [r7, #0xb]
strb r5, [r7, #0xc]
strb r5, [r7, #0xd]
strb r5, [r7, #0xe]
str r3, [r7, #3]
_01FF83F4:
ldr r8, [r7, #3]
tst r8, #0x800000
beq _01FF8418
cmp ip, #0
ldr lr, [r4]
blt _01FF8414
cmp ip, r2
strlt lr, [r1, ip]
_01FF8414:
add ip, ip, #4
_01FF8418:
tst r8, #-0x80000000
bne _01FF83F4
cmp ip, r2
add sb, sb, #2
add r0, r0, #0x200
blt _01FF83C8
pop {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_01FF8434: .4byte 0x027FFE60
_01FF8438: .4byte 0x000001FF
_01FF843C: .4byte 0x040001A4
_01FF8440: .4byte 0x040001A1
_01FF8444: .4byte 0x04100010
arm_func_end FUN_01FF8370
arm_func_start FUN_01FF8448
FUN_01FF8448: @ 0x01FF8448
push {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl FUN_020D3A38
mov r1, #0xc
mul r2, r7, r1
add r1, r2, #0xb0
add r2, r2, #0x4000000
str r6, [r2, #0xb0]
add r1, r1, #0x4000000
str r5, [r1, #4]
str r4, [r1, #8]
bl FUN_020D3A4C
pop {r3, r4, r5, r6, r7, pc}
arm_func_end FUN_01FF8448
arm_func_start FUN_01FF8488
FUN_01FF8488: @ 0x01FF8488
push {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl FUN_020D3A38
mov r1, #0xc
mul r2, r7, r1
add r1, r2, #0xb0
add r2, r2, #0x4000000
str r6, [r2, #0xb0]
add r3, r1, #0x4000000
str r5, [r3, #4]
ldr r2, _01FF84F0 @ =0x040000B0
str r4, [r3, #8]
ldr r1, [r2]
cmp r7, #0
ldr r1, [r2]
bne _01FF84E8
mov r2, #0
str r2, [r3]
ldr r1, _01FF84F4 @ =0x81400001
str r2, [r3, #4]
str r1, [r3, #8]
_01FF84E8:
bl FUN_020D3A4C
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_01FF84F0: .4byte 0x040000B0
_01FF84F4: .4byte 0x81400001
arm_func_end FUN_01FF8488
arm_func_start FUN_01FF84F8
FUN_01FF84F8: @ 0x01FF84F8
mov ip, #0xc
mul ip, r0, ip
add r0, ip, #0xb0
add ip, ip, #0x4000000
str r1, [ip, #0xb0]
add r0, r0, #0x4000000
str r2, [r0, #4]
str r3, [r0, #8]
bx lr
arm_func_end FUN_01FF84F8
arm_func_start FUN_01FF851C
FUN_01FF851C: @ 0x01FF851C
push {r3, lr}
mov ip, #0xc
mul lr, r0, ip
add ip, lr, #0xb0
add lr, lr, #0x4000000
str r1, [lr, #0xb0]
add ip, ip, #0x4000000
str r2, [ip, #4]
ldr r2, _01FF8578 @ =0x040000B0
str r3, [ip, #8]
ldr r1, [r2]
cmp r0, #0
ldr r0, [r2]
bne _01FF8568
mov r1, #0
str r1, [ip]
ldr r0, _01FF857C @ =0x81400001
str r1, [ip, #4]
str r0, [ip, #8]
_01FF8568:
ldr r1, _01FF8578 @ =0x040000B0
ldr r0, [r1]
ldr r0, [r1]
pop {r3, pc}
.align 2, 0
_01FF8578: .4byte 0x040000B0
_01FF857C: .4byte 0x81400001
arm_func_end FUN_01FF851C
arm_func_start FUN_01FF8580
FUN_01FF8580: @ 0x01FF8580
push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
movs r8, r2
mov sl, r0
mov sb, r1
popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r3, #0
bl FUN_020D4394
add r0, sl, sl, lsl #1
add r0, r0, #2
lsl r0, r0, #2
add r0, r0, #0xb0
add r6, r0, #0x4000000
_01FF85B0:
ldr r0, [r6]
tst r0, #-0x80000000
bne _01FF85B0
cmp r8, #0
beq _01FF85FC
ldr fp, _01FF860C @ =0x04000400
ldr r4, _01FF8610 @ =0x84400000
mov r5, #0x1d8
_01FF85D0:
cmp r8, #0x1d8
movhi r7, r5
movls r7, r8
mov r0, sl
mov r1, sb
mov r2, fp
orr r3, r4, r7, lsr #2
bl FUN_01FF8448
subs r8, r8, r7
add sb, sb, r7
bne _01FF85D0
_01FF85FC:
ldr r0, [r6]
tst r0, #-0x80000000
bne _01FF85FC
pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_01FF860C: .4byte 0x04000400
_01FF8610: .4byte 0x84400000
arm_func_end FUN_01FF8580