tmc/asm/non_matching/subtask2/sub_080A56A0.inc

237 lines
3.6 KiB
PHP

.syntax unified
push {r4, lr}
bl sub_080A51F4
cmp r0, #0
bne _080A56AC
b _080A57F0
_080A56AC:
ldr r2, _080A56D0 @ =gMenu
ldr r0, _080A56D4 @ =gUnk_08128C00
str r0, [r2, #0xc]
ldrb r0, [r2, #3]
lsls r0, r0, #3
ldr r1, _080A56D8 @ =gUnk_08128C14
adds r4, r0, r1
movs r3, #0xff
ldr r0, _080A56DC @ =gInput
ldrh r1, [r0, #4]
cmp r1, #0x20
beq _080A56F2
cmp r1, #0x20
bgt _080A56E0
cmp r1, #0x10
beq _080A56F6
b _080A56F8
.align 2, 0
_080A56D0: .4byte gMenu
_080A56D4: .4byte gUnk_08128C00
_080A56D8: .4byte gUnk_08128C14
_080A56DC: .4byte gInput
_080A56E0:
cmp r1, #0x40
beq _080A56EA
cmp r1, #0x80
beq _080A56EE
b _080A56F8
_080A56EA:
ldrb r3, [r4]
b _080A56F8
_080A56EE:
ldrb r3, [r4, #1]
b _080A56F8
_080A56F2:
ldrb r3, [r4, #2]
b _080A56F8
_080A56F6:
ldrb r3, [r4, #3]
_080A56F8:
cmp r3, #0xff
beq _080A570C
ldr r0, _080A5708 @ =gMenu
strb r3, [r0, #3]
movs r0, #0x69
bl SoundReq
b _080A575E
.align 2, 0
_080A5708: .4byte gMenu
_080A570C:
ldrh r0, [r0, #2]
cmp r0, #1
bne _080A575E
ldrb r3, [r2, #3]
.ifdef DEMO_USA
movs r4, #0
.else
.ifdef DEMO_JP
movs r4, #0
.else
movs r1, #0
.endif
.endif
cmp r3, #2
beq _080A572E
cmp r3, #2
bhi _080A5724
cmp r3, #0
beq _080A572E
b _080A574E
_080A5724:
cmp r3, #4
beq _080A5748
cmp r3, #5
beq _080A574C
b _080A574E
_080A572E:
ldr r0, _080A5744 @ =gMenu
adds r0, #0x10
adds r0, r3, r0
ldrb r0, [r0]
cmp r0, #0
beq _080A574E
.ifdef DEMO_USA
movs r4, #8
.else
.ifdef DEMO_JP
movs r4, #8
.else
movs r1, #8
.endif
.endif
cmp r3, #0
bne _080A574E
.ifdef DEMO_USA
movs r4, #7
.else
.ifdef DEMO_JP
movs r4, #7
.else
movs r1, #7
.endif
.endif
b _080A5752
.align 2, 0
_080A5744: .4byte gMenu
_080A5748:
.ifdef DEMO_USA
movs r0, #0x6d
bl SoundReq
b _080A574E
_080A574C:
movs r0, #0x6d
bl SoundReq
.else
.ifdef DEMO_JP
movs r0, #0x6d
bl SoundReq
b _080A574E
_080A574C:
movs r0, #0x6d
bl SoundReq
.else
movs r1, #9
b _080A5752
_080A574C:
movs r1, #0xa
.endif
.endif
_080A574E:
.ifdef DEMO_USA
cmp r4, #0
.else
.ifdef DEMO_JP
cmp r4, #0
.else
cmp r1, #0
.endif
.endif
beq _080A575E
_080A5752:
.ifdef DEMO_USA
adds r0, r4, #0
.else
.ifdef DEMO_JP
adds r0, r4, #0
.else
adds r0, r1, #0
.endif
.endif
bl sub_080A4E84
movs r0, #0x6a
bl SoundReq
_080A575E:
ldr r0, _080A5780 @ =gMenu
ldrb r1, [r0, #3]
adds r2, r0, #0
cmp r1, #0
beq _080A576C
cmp r1, #2
bne _080A5788
_080A576C:
adds r0, r2, #0
adds r0, #0x10
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, #0
beq _080A5788
ldr r1, _080A5784 @ =gUnk_0200AF00
movs r0, #0x10
b _080A578C
.align 2, 0
_080A5780: .4byte gMenu
_080A5784: .4byte gUnk_0200AF00
_080A5788:
ldr r1, _080A57AC @ =gUnk_0200AF00
ldr r0, _080A57B0 @ =0x0000FFF0
_080A578C:
strh r0, [r1, #0x1c]
ldrb r3, [r2, #3]
adds r0, r2, #0
adds r0, #0x10
adds r0, r3, r0
ldrb r2, [r0]
cmp r2, #0
beq _080A57E6
cmp r3, #5
bhi _080A57E6
lsls r0, r3, #2
ldr r1, _080A57B4 @ =_080A57B8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A57AC: .4byte gUnk_0200AF00
_080A57B0: .4byte 0x0000FFF0
_080A57B4: .4byte _080A57B8
_080A57B8: @ jump table
.4byte _080A57D0 @ case 0
.4byte _080A57D8 @ case 1
.4byte _080A57DC @ case 2
.4byte _080A57E6 @ case 3
.4byte _080A57E0 @ case 4
.4byte _080A57E4 @ case 5
_080A57D0:
cmp r2, #0x3d
beq _080A57E6
movs r2, #0x67
b _080A57E6
_080A57D8:
movs r2, #0x63
b _080A57E6
_080A57DC:
movs r2, #0x70
b _080A57E6
_080A57E0:
movs r2, #0x74
b _080A57E6
_080A57E4:
movs r2, #0x73
_080A57E6:
movs r0, #0x80
lsls r0, r0, #3
adds r0, r2, r0
bl sub_080A6F6C
_080A57F0:
pop {r4, pc}
.align 2, 0
.syntax divided