through sub_80156C8

This commit is contained in:
DizzyEggg
2018-06-04 23:32:28 +02:00
parent dbb9cdd424
commit 7b72cfdc6c
2 changed files with 427 additions and 845 deletions

View File

@@ -4,844 +4,9 @@
.syntax unified
.text
thumb_func_start sub_8014F48
sub_8014F48: @ 8014F48
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_02022C30
ldr r7, [r0]
ldrb r0, [r7, 0x8]
cmp r0, 0xC
bls _08014F5C
b _080152A0
_08014F5C:
lsls r0, 2
ldr r1, =_08014F70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08014F70:
.4byte _08014FA4
.4byte _08014FD8
.4byte _08014FE8
.4byte _080150B8
.4byte _08015180
.4byte _080151A4
.4byte _08015204
.4byte _08015260
.4byte _08015204
.4byte _0801523A
.4byte _08015204
.4byte _08015284
.4byte _08015290
_08014FA4:
ldrb r0, [r7, 0x12]
adds r0, 0x15
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0
bl sub_8010F84
bl sub_800B488
bl OpenLink
bl sub_8011C5C
movs r0, 0x70
bl AllocZeroed
str r0, [r7, 0x4]
movs r0, 0x80
lsls r0, 2
bl AllocZeroed
str r0, [r7]
movs r0, 0x1
strb r0, [r7, 0x8]
b _080152A0
_08014FD8:
ldr r0, =gUnknown_082EF7F8
bl sub_8018884
movs r0, 0x2
strb r0, [r7, 0x8]
b _080152A0
.pool
_08014FE8:
ldr r0, [r7, 0x4]
movs r1, 0x4
bl sub_80175EC
ldr r0, [r7]
movs r1, 0x10
bl sub_8017580
ldr r0, [r7, 0x4]
ldrb r1, [r7, 0x12]
adds r1, 0x7
bl sub_8016FC0
movs r6, 0
strb r0, [r7, 0x11]
ldr r0, =gUnknown_082F0174
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
bl sub_8019930
lsls r0, 16
ldr r2, =0x0000ffff
ldr r1, [sp, 0x4]
ands r1, r2
orrs r1, r0
ldr r5, =0xffff00ff
ands r1, r5
movs r4, 0xC0
lsls r4, 4
orrs r1, r4
str r1, [sp, 0x4]
mov r0, sp
bl AddWindow
strb r0, [r7, 0xB]
ldr r0, =gUnknown_082F017C
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
add r0, sp, 0x8
ldr r1, [r0, 0x4]
ands r1, r5
orrs r1, r4
str r1, [r0, 0x4]
bl AddWindow
strb r0, [r7, 0xD]
ldrb r0, [r7, 0xB]
bl sub_8018784
ldr r0, =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, =gUnknown_082F0204
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldrb r1, [r7, 0xB]
strb r1, [r0, 0x10]
movs r1, 0
movs r2, 0
bl ListMenuInit
strb r0, [r7, 0xE]
ldrb r0, [r7, 0xD]
bl sub_8018784
ldrb r0, [r7, 0xD]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r7, 0xD]
bl PutWindowTilemap
ldrb r0, [r7, 0xD]
bl sub_80125BC
ldrb r0, [r7, 0xD]
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
strb r6, [r7, 0xF]
movs r0, 0x3
strb r0, [r7, 0x8]
b _080152A0
.pool
_080150B8:
bl sub_8013E44
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _080150D6
cmp r2, 0x1
bne _080150CE
movs r0, 0x2
bl PlaySE
_080150CE:
ldrb r0, [r7, 0xE]
bl sub_81AE70C
b _080152A0
_080150D6:
ldrb r0, [r7, 0xE]
bl ListMenuHandleInputGetItemId
adds r2, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08015168
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08015168
ldr r0, [r7]
lsls r1, r2, 5
adds r0, r1
ldrb r1, [r0, 0xA]
ldrb r0, [r0, 0x1A]
lsls r0, 30
lsrs r0, 30
cmp r0, 0x1
bne _08015160
lsrs r0, r1, 7
cmp r0, 0
bne _08015160
strb r2, [r7, 0xF]
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl CreateWirelessStatusIndicatorSprite
ldrb r0, [r7, 0xE]
bl sub_81AE70C
ldr r0, =gStringVar1
ldrb r2, [r7, 0xF]
lsls r2, 5
ldr r1, [r7]
adds r1, r2
bl sub_8018404
ldrb r1, [r7, 0xF]
lsls r1, 5
ldr r0, [r7]
adds r0, r1
adds r4, r0, 0
adds r4, 0x10
adds r0, 0x2
bl ReadAsU16
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8011FC8
movs r0, 0x6E
bl PlaySE
movs r0, 0x4
strb r0, [r7, 0x8]
b _080152A0
.pool
_08015160:
movs r0, 0x7
bl PlaySE
b _080152A0
_08015168:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08015176
b _080152A0
_08015176:
movs r0, 0x6
strb r0, [r7, 0x8]
b _080152A0
.pool
_08015180:
ldr r0, =gUnknown_082EFC3C
bl sub_8018884
ldr r0, =gStringVar1
ldrb r2, [r7, 0xF]
lsls r2, 5
ldr r1, [r7]
adds r1, r2
bl sub_8018404
movs r0, 0x5
strb r0, [r7, 0x8]
b _080152A0
.pool
_080151A4:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _080151C2
ldr r2, =gUnknown_02022C2C
ldr r1, [r7]
ldrb r0, [r7, 0xF]
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xA]
lsls r0, 25
lsrs r0, 25
strb r0, [r2]
movs r0, 0xA
strb r0, [r7, 0x8]
_080151C2:
bl sub_8011A74
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _080151EE
cmp r0, 0x5
bgt _080151E4
cmp r0, 0x2
bgt _080152A0
cmp r0, 0x1
blt _080152A0
b _080151E8
.pool
_080151E4:
cmp r0, 0x6
bne _080152A0
_080151E8:
movs r0, 0x8
strb r0, [r7, 0x8]
b _080152A0
_080151EE:
ldr r0, =gUnknown_082EDDF4
bl sub_8018884
movs r0, 0
movs r1, 0
bl sub_8011A64
b _080152A0
.pool
_08015204:
ldrb r0, [r7, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r7, 0xD]
bl RemoveWindow
ldrb r0, [r7, 0xB]
bl RemoveWindow
ldrb r0, [r7, 0x11]
bl DestroyTask
ldr r0, [r7]
bl Free
ldr r0, [r7, 0x4]
bl Free
ldrb r0, [r7, 0x8]
adds r0, 0x1
strb r0, [r7, 0x8]
b _080152A0
_0801523A:
adds r5, r7, 0
adds r5, 0x9
ldr r4, =gUnknown_082EDF80
bl sub_8011A74
lsls r0, 24
lsrs r0, 22
adds r0, r4
ldr r1, [r0]
adds r0, r5, 0
bl mevent_0814257C
cmp r0, 0
beq _080152A0
bl sub_800E084
b _0801526A
.pool
_08015260:
bl sub_800E084
ldr r0, =gText_PleaseStartOver
bl sub_8018884
_0801526A:
adds r0, r6, 0
bl DestroyTask
bl sub_800EDD4
ldr r1, =gSpecialVar_Result
movs r0, 0x5
strh r0, [r1]
b _080152A0
.pool
_08015284:
ldrb r0, [r7, 0x8]
adds r0, 0x1
strb r0, [r7, 0x8]
bl sub_800ADF8
b _080152A0
_08015290:
bl sub_800A520
lsls r0, 24
cmp r0, 0
beq _080152A0
adds r0, r6, 0
bl DestroyTask
_080152A0:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8014F48
thumb_func_start sub_80152A8
sub_80152A8: @ 80152A8
push {r4,lr}
adds r4, r0, 0
ldr r0, =task00_081182DC
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gUnknown_02022C30
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r1, r0
str r1, [r2]
ldr r0, =gUnknown_03000DA4
str r1, [r0]
movs r2, 0
strb r2, [r1, 0x8]
strb r2, [r1, 0x9]
subs r4, 0x15
strb r4, [r1, 0x12]
ldr r0, =gSpecialVar_Result
strh r2, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80152A8
thumb_func_start task00_081182DC
task00_081182DC: @ 80152F4
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_02022C30
ldr r5, [r0]
ldrb r0, [r5, 0x8]
cmp r0, 0xE
bls _08015308
b _08015604
_08015308:
lsls r0, 2
ldr r1, =_0801531C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801531C:
.4byte _08015358
.4byte _08015386
.4byte _08015398
.4byte _08015420
.4byte _080154E0
.4byte _08015504
.4byte _08015564
.4byte _080155A8
.4byte _08015564
.4byte _0801559A
.4byte _08015564
.4byte _080155B4
.4byte _08015564
.4byte _080155E8
.4byte _080155F4
_08015358:
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_8010F84
bl sub_800B488
bl OpenLink
bl sub_8011C5C
movs r0, 0x70
bl AllocZeroed
str r0, [r5, 0x4]
movs r0, 0x80
lsls r0, 2
bl AllocZeroed
str r0, [r5]
movs r0, 0x1
strb r0, [r5, 0x8]
b _08015604
_08015386:
ldr r0, =gUnknown_082EFBC8
bl sub_8018884
movs r0, 0x2
strb r0, [r5, 0x8]
b _08015604
.pool
_08015398:
ldr r0, [r5, 0x4]
movs r1, 0x4
bl sub_80175EC
ldr r0, [r5]
movs r1, 0x10
bl sub_8017580
ldr r0, [r5, 0x4]
ldrb r1, [r5, 0x12]
adds r1, 0x7
bl sub_8016FF0
strb r0, [r5, 0x11]
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _08015404
ldr r0, =gUnknown_082F0174
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
bl sub_8019930
lsls r0, 16
ldr r2, =0x0000ffff
ldr r1, [sp, 0x4]
ands r1, r2
orrs r1, r0
str r1, [sp, 0x4]
mov r0, sp
bl AddWindow
strb r0, [r5, 0xB]
ldrb r0, [r5, 0xB]
bl sub_8018784
ldr r0, =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, =gUnknown_082F0204
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldrb r1, [r5, 0xB]
strb r1, [r0, 0x10]
movs r1, 0
movs r2, 0
bl ListMenuInit
strb r0, [r5, 0xE]
movs r0, 0
bl CopyBgTilemapBufferToVram
_08015404:
movs r0, 0
strb r0, [r5, 0xF]
movs r0, 0x3
strb r0, [r5, 0x8]
b _08015604
.pool
_08015420:
bl sub_8013E44
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08015446
cmp r0, 0x1
bne _08015436
movs r0, 0x2
bl PlaySE
_08015436:
ldrb r0, [r5, 0x13]
cmp r0, 0
bne _0801543E
b _08015604
_0801543E:
ldrb r0, [r5, 0xE]
bl sub_81AE70C
b _08015604
_08015446:
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _08015452
ldrb r0, [r5, 0xE]
bl ListMenuHandleInputGetItemId
_08015452:
ldrb r0, [r5, 0x14]
cmp r0, 0x78
bls _080154C0
ldr r2, [r5]
ldrb r1, [r2, 0x1A]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _080154D4
ldrb r1, [r2, 0xA]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080154D4
ldrb r1, [r5, 0x12]
adds r1, 0x7
adds r0, r2, 0
bl sub_8016F1C
cmp r0, 0
beq _080154B4
strb r4, [r5, 0xF]
strb r4, [r5, 0x14]
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl CreateWirelessStatusIndicatorSprite
ldr r0, [r5]
adds r4, r0, 0
adds r4, 0x10
adds r0, 0x2
bl ReadAsU16
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8011FC8
movs r0, 0x6E
bl PlaySE
movs r0, 0x4
strb r0, [r5, 0x8]
b _080154D4
_080154B4:
movs r0, 0x16
bl PlaySE
movs r0, 0xA
strb r0, [r5, 0x8]
b _080154D4
_080154C0:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080154D4
movs r1, 0
movs r0, 0x6
strb r0, [r5, 0x8]
strb r1, [r5, 0x14]
_080154D4:
ldrb r0, [r5, 0x14]
adds r0, 0x1
strb r0, [r5, 0x14]
b _08015604
.pool
_080154E0:
ldr r0, =gUnknown_082EFC90
bl sub_8018884
ldr r0, =gStringVar1
ldrb r2, [r5, 0xF]
lsls r2, 5
ldr r1, [r5]
adds r1, r2
bl sub_8018404
movs r0, 0x5
strb r0, [r5, 0x8]
b _08015604
.pool
_08015504:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _08015522
ldr r2, =gUnknown_02022C2C
ldr r1, [r5]
ldrb r0, [r5, 0xF]
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xA]
lsls r0, 25
lsrs r0, 25
strb r0, [r2]
movs r0, 0xC
strb r0, [r5, 0x8]
_08015522:
bl sub_8011A74
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _0801554E
cmp r0, 0x5
bgt _08015544
cmp r0, 0x2
bgt _08015604
cmp r0, 0x1
blt _08015604
b _08015548
.pool
_08015544:
cmp r0, 0x6
bne _08015604
_08015548:
movs r0, 0x8
strb r0, [r5, 0x8]
b _08015604
_0801554E:
ldr r0, =gUnknown_082EDEC4
bl sub_8018884
movs r0, 0
movs r1, 0
bl sub_8011A64
b _08015604
.pool
_08015564:
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _08015580
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
bl RemoveWindow
_08015580:
ldrb r0, [r5, 0x11]
bl DestroyTask
ldr r0, [r5]
bl Free
ldr r0, [r5, 0x4]
bl Free
ldrb r0, [r5, 0x8]
adds r0, 0x1
strb r0, [r5, 0x8]
b _08015604
_0801559A:
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gUnknown_082EDF04
b _080155C2
.pool
_080155A8:
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gText_WirelessSearchCanceled
b _080155C2
.pool
_080155B4:
adds r0, r5, 0
adds r0, 0x9
ldr r2, =gUnknown_082EFD58
ldrb r1, [r5, 0x12]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
_080155C2:
bl mevent_0814257C
cmp r0, 0
beq _08015604
bl sub_800E084
adds r0, r4, 0
bl DestroyTask
bl sub_800EDD4
ldr r1, =gSpecialVar_Result
movs r0, 0x5
strh r0, [r1]
b _08015604
.pool
_080155E8:
ldrb r0, [r5, 0x8]
adds r0, 0x1
strb r0, [r5, 0x8]
bl sub_800ADF8
b _08015604
_080155F4:
bl sub_800A520
lsls r0, 24
cmp r0, 0
beq _08015604
adds r0, r4, 0
bl DestroyTask
_08015604:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end task00_081182DC
thumb_func_start UnionRoomSpecial
UnionRoomSpecial: @ 801560C
push {r4,lr}
bl sub_8010F60
ldr r0, =sub_80156E0
movs r1, 0xA
bl CreateTask
ldr r4, =gUnknown_02022C30
movs r0, 0x9B
lsls r0, 2
bl AllocZeroed
str r0, [r4]
ldr r1, =gUnknown_03000DA8
str r0, [r1]
movs r1, 0
strb r1, [r0, 0x14]
strb r1, [r0, 0x16]
strh r1, [r0, 0x10]
strh r1, [r0, 0x12]
ldr r0, =gSpecialVar_Result
strh r1, [r0]
movs r0, 0xD0
movs r1, 0x1
bl sub_819A2BC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end UnionRoomSpecial
thumb_func_start ReadAsU16
ReadAsU16: @ 8015658
ldrb r1, [r0, 0x1]
lsls r1, 8
ldrb r0, [r0]
orrs r0, r1
bx lr
thumb_func_end ReadAsU16
thumb_func_start sub_8015664
sub_8015664: @ 8015664
push {lr}
adds r3, r1, 0
ldr r1, =gUnknown_02022C30
ldr r2, [r1]
movs r1, 0x8
strb r1, [r2, 0x14]
strb r0, [r2, 0x15]
ldr r0, =gStringVar4
cmp r3, r0
beq _0801567E
adds r1, r3, 0
bl StringExpandPlaceholders
_0801567E:
pop {r0}
bx r0
.pool
thumb_func_end sub_8015664
thumb_func_start sub_801568C
sub_801568C: @ 801568C
push {lr}
adds r2, r0, 0
ldr r0, =gUnknown_02022C30
ldr r1, [r0]
movs r0, 0x1A
strb r0, [r1, 0x14]
ldr r0, =gStringVar4
cmp r2, r0
beq _080156A4
adds r1, r2, 0
bl StringExpandPlaceholders
_080156A4:
pop {r0}
bx r0
.pool
thumb_func_end sub_801568C
thumb_func_start sub_80156B0
sub_80156B0: @ 80156B0
push {lr}
ldr r3, =0x0201ff00
ldr r1, [r0]
movs r2, 0x80
lsls r2, 1
adds r0, r3, 0
bl memcpy
pop {r0}
bx r0
.pool
thumb_func_end sub_80156B0
thumb_func_start sub_80156C8
sub_80156C8: @ 80156C8
push {lr}
ldr r0, [r0]
ldr r1, =0x0201ff00
movs r2, 0x80
lsls r2, 1
bl memcpy
pop {r0}
bx r0
.pool
thumb_func_end sub_80156C8
thumb_func_start sub_80156E0
sub_80156E0: @ 80156E0
push {r4-r7,lr}