tmc/asm/non_matching/common/sub_0801E99C.inc

113 lines
1.8 KiB
PHP

.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
bl sub_08002632
mov r8, r0
ldr r1, _0801E9E4 @ =gUnk_08001DCC
lsls r0, r0, #2
adds r0, r0, r1
ldr r7, [r0]
movs r0, #0x67
bl GetInventoryValue
cmp r0, #0
beq _0801EA56
ldr r1, _0801E9E8 @ =gSave
ldrb r0, [r7]
ldrb r2, [r1, #8]
cmp r0, r2
bhi _0801EA56
ldr r2, _0801E9EC @ =0x000001C1
adds r0, r1, r2
add r0, r8
ldrb r5, [r0]
subs r2, #0x80
adds r0, r1, r2
add r0, r8
ldrb r6, [r0]
adds r4, r6, r7
_0801E9D6:
cmp r5, #0xf1
beq _0801E9F6
cmp r5, #0xf1
bhi _0801E9F0
cmp r5, #0
beq _0801E9F6
b _0801EA10
.align 2, 0
_0801E9E4: .4byte gUnk_08001DCC
_0801E9E8: .4byte gSave
_0801E9EC: .4byte 0x000001C1
_0801E9F0:
cmp r5, #0xf2
beq _0801EA0A
b _0801EA10
_0801E9F6:
ldrb r5, [r4, #5]
cmp r5, #0
beq _0801EA10
cmp r5, #0xff
beq _0801EA14
adds r0, r5, #0
bl CheckKinstoneFused
cmp r0, #0
beq _0801EA10
_0801EA0A:
adds r4, #1
adds r6, #1
ldrb r5, [r4, #5]
_0801EA10:
cmp r5, #0xff
bne _0801EA1C
_0801EA14:
adds r0, r7, #0
bl sub_0801EA74
adds r5, r0, #0
_0801EA1C:
cmp r5, #0
beq _0801EA32
cmp r5, #0xf2
beq _0801E9D6
adds r0, r5, #0
bl CheckKinstoneFused
cmp r0, #0
beq _0801EA34
movs r5, #0xf1
b _0801E9D6
_0801EA32:
movs r5, #0xf3
_0801EA34:
ldr r1, _0801EA5C @ =gSave
ldr r2, _0801EA60 @ =0x000001C1
adds r0, r1, r2
add r0, r8
strb r5, [r0]
subs r2, #0x80
adds r0, r1, r2
add r0, r8
strb r6, [r0]
bl Random
ldrb r4, [r7, #1]
movs r1, #0x64
bl __modsi3
cmp r4, r0
bhi _0801EA64
_0801EA56:
movs r0, #0
b _0801EA6E
.align 2, 0
_0801EA5C: .4byte gSave
_0801EA60: .4byte 0x000001C1
_0801EA64:
subs r0, r5, #1
cmp r0, #0x63
bls _0801EA6C
movs r5, #0
_0801EA6C:
adds r0, r5, #0
_0801EA6E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.syntax divided