through (nearly-matching) sub_80172A0

This commit is contained in:
PikalaxALT
2019-03-27 16:57:34 -04:00
parent 8e0773675c
commit 51d2131dc2
2 changed files with 242 additions and 270 deletions
-269
View File
@@ -5,275 +5,6 @@
.text
thumb_func_start sub_8017178
sub_8017178: @ 8017178
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r7, r0, 0
adds r5, r1, 0
mov r9, r2
ldrb r4, [r7]
cmp r4, 0
beq _08017194
cmp r4, 0x1
beq _08017228
b _0801728E
_08017194:
ldr r0, [r3]
ldr r1, [r3, 0x4]
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, [sp, 0x24]
bl sub_81DB41C
adds r1, r0, 0
ldr r2, [sp]
lsrs r0, r2, 24
cmp r0, r1
ble _080171B6
lsls r1, 24
ldr r0, =0x00ffffff
ands r0, r2
orrs r0, r1
str r0, [sp]
_080171B6:
ldr r2, [sp]
lsrs r0, r2, 8
lsls r0, 24
lsrs r0, 24
lsrs r1, r2, 24
adds r0, r1
cmp r0, 0x1D
ble _080171DC
movs r0, 0x1D
subs r0, r1
cmp r0, 0
bge _080171D0
movs r0, 0
_080171D0:
lsls r1, r0, 24
lsrs r1, 16
ldr r0, =0xffff00ff
ands r0, r2
orrs r0, r1
str r0, [sp]
_080171DC:
mov r0, sp
bl AddWindow
strb r0, [r5]
ldrb r0, [r5]
movs r1, 0
bl DrawStdWindowFrame
ldr r0, =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x24]
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldrb r1, [r5]
strb r1, [r0, 0x10]
movs r1, 0
movs r2, 0
bl ListMenuInit
mov r1, r9
strb r0, [r1]
ldrb r0, [r5]
movs r1, 0x1
bl CopyWindowToVram
ldrb r0, [r7]
adds r0, 0x1
strb r0, [r7]
b _0801728E
.pool
_08017228:
mov r3, r9
ldrb r0, [r3]
bl ListMenu_ProcessInput
mov r8, r0
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
ands r4, r1
cmp r4, 0
beq _08017264
mov r4, r9
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
movs r0, 0
strb r0, [r7]
mov r0, r8
b _08017292
.pool
_08017264:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0801728E
mov r6, r9
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
strb r4, [r7]
movs r0, 0x2
negs r0, r0
b _08017292
_0801728E:
movs r0, 0x1
negs r0, r0
_08017292:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8017178
thumb_func_start sub_80172A0
sub_80172A0: @ 80172A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
adds r6, r1, 0
mov r10, r2
mov r9, r3
ldrb r4, [r5]
cmp r4, 0x1
beq _0801730C
cmp r4, 0x1
bgt _080172C2
cmp r4, 0
beq _080172C8
b _0801739C
_080172C2:
cmp r4, 0x2
beq _0801731C
b _0801739C
_080172C8:
ldr r0, =gUnknown_082F0344
bl sub_8017118
mov r1, r9
strb r0, [r1]
ldr r0, [sp, 0x20]
bl AddWindow
strb r0, [r6]
ldrb r0, [r6]
movs r1, 0
bl DrawStdWindowFrame
ldr r0, =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x24]
ldm r1!, {r3,r4,r7}
stm r2!, {r3,r4,r7}
ldm r1!, {r3,r4,r7}
stm r2!, {r3,r4,r7}
ldrb r1, [r6]
strb r1, [r0, 0x10]
movs r1, 0
movs r2, 0x1
bl ListMenuInit
mov r1, r10
strb r0, [r1]
b _08017314
.pool
_0801730C:
ldrb r0, [r6]
movs r1, 0x1
bl CopyWindowToVram
_08017314:
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _0801739C
_0801731C:
mov r3, r10
ldrb r0, [r3]
bl ListMenu_ProcessInput
adds r1, r0, 0
ldr r0, =gMain
ldrh r2, [r0, 0x2E]
movs r0, 0x3
ands r0, r2
cmp r0, 0
beq _0801739C
cmp r1, 0x8
beq _0801733E
ands r4, r2
mov r8, r4
cmp r4, 0
beq _08017368
_0801733E:
mov r4, r10
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
ldrb r0, [r6]
bl RemoveWindow
mov r7, r9
ldrb r0, [r7]
bl sub_8017168
movs r0, 0
strb r0, [r5]
movs r0, 0x2
negs r0, r0
b _080173A0
.pool
_08017368:
ldr r0, [sp, 0x28]
bl sub_8017CB0
adds r4, r0, 0
cmp r4, 0
blt _08017396
mov r1, r10
ldrb r0, [r1]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
ldrb r0, [r6]
bl RemoveWindow
mov r3, r9
ldrb r0, [r3]
bl sub_8017168
mov r7, r8
strb r7, [r5]
adds r0, r4, 0
b _080173A0
_08017396:
movs r0, 0x7
bl PlaySE
_0801739C:
movs r0, 0x1
negs r0, r0
_080173A0:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80172A0
thumb_func_start sub_80173B0
sub_80173B0: @ 80173B0
push {lr}