tmc/asm/doItemTrade.s

128 lines
2.1 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08028CE8
sub_08028CE8: @ 0x08028CE8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r6, [r5, #0x7c]
ldr r0, _08028D30 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08028DCC
adds r0, r5, #0
bl sub_0802915C
cmp r0, #0
beq _08028DCC
bl sub_08056338
cmp r0, #0
bne _08028DCC
ldr r0, _08028D34 @ =gUnk_02002A40
adds r0, #0xc0
ldrh r1, [r6, #2]
ldrh r0, [r0]
cmp r1, r0
bhi _08028DC0
adds r0, r5, #0
bl sub_080291DC
cmp r0, #0
beq _08028D3C
ldr r0, _08028D38 @ =0x00002904
bl TextboxTryNoOverlap
movs r0, #0
bl sub_08078A90
b _08028DCC
.align 2, 0
_08028D30: .4byte gTextBox
_08028D34: .4byte gUnk_02002A40
_08028D38: .4byte 0x00002904
_08028D3C:
ldrh r0, [r6, #2]
rsbs r0, r0, #0
bl ModRupees
ldrb r0, [r6]
lsrs r7, r0, #2
cmp r7, #1
beq _08028D9C
cmp r7, #1
bgt _08028D56
cmp r7, #0
beq _08028D5C
b _08028DCC
_08028D56:
cmp r7, #2
beq _08028DAA
b _08028DCC
_08028D5C:
ldrb r1, [r6, #9]
cmp r1, #0xff
bne _08028D70
ldr r4, _08028D98 @ =gUnk_080CC9C0
bl Random
movs r1, #7
ands r1, r0
adds r1, r1, r4
ldrb r1, [r1]
_08028D70:
ldrb r0, [r6, #8]
movs r2, #0
bl sub_080A7C00
movs r0, #6
strb r0, [r5, #0xc]
movs r0, #4
strb r0, [r5, #0xe]
adds r0, r5, #0
adds r0, #0x81
strb r7, [r0]
adds r0, r5, #0
movs r1, #3
bl sub_080290E0
movs r0, #0x87
bl sub_0807CCB4
b _08028DE2
.align 2, 0
_08028D98: .4byte gUnk_080CC9C0
_08028D9C:
ldrb r0, [r6, #8]
ldrb r1, [r6, #9]
movs r2, #0
bl sub_080A7C00
movs r0, #4
b _08028DB6
_08028DAA:
ldrb r0, [r6, #8]
ldrb r1, [r6, #9]
movs r2, #0
bl sub_080A7C00
movs r0, #8
_08028DB6:
strb r0, [r5, #0xe]
adds r0, r5, #0
bl sub_0802922C
b _08028DE2
_08028DC0:
ldr r0, _08028DE4 @ =0x00002903
bl TextboxTryNoOverlap
movs r0, #0
bl sub_08078A90
_08028DCC:
adds r0, r5, #0
bl sub_0800445C
movs r0, #4
strb r0, [r5, #0xc]
movs r0, #0x30
strb r0, [r5, #0xe]
adds r0, r5, #0
movs r1, #0
bl sub_080290E0
_08028DE2:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08028DE4: .4byte 0x00002903