Decomp everything onvolving UnknownSubStruct_81C81D4

Now I can start cleaning up the fields and substructs
This commit is contained in:
Phlosioneer
2019-04-06 03:41:00 -04:00
parent f4737874ef
commit bc50686158
6 changed files with 498 additions and 697 deletions

View File

@@ -3,606 +3,6 @@
.syntax unified
.text
thumb_func_start sub_81C8DBC
sub_81C8DBC: @ 81C8DBC
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x1C
adds r6, r0, 0
mov r8, r1
add r1, sp, 0xC
ldr r0, =gUnknown_0861FBE8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
add r0, sp, 0x18
mov r9, r0
ldr r1, =gUnknown_0861FBF4
movs r2, 0x3
bl memcpy
ldrh r4, [r6, 0xA]
mov r1, r8
lsls r0, r1, 1
adds r0, 0x1
adds r4, r0
movs r0, 0xF
ands r4, r0
ldrb r0, [r6, 0x8]
lsls r5, r4, 4
adds r3, r5, 0
ldrb r1, [r6, 0x4]
str r1, [sp]
movs r1, 0x10
str r1, [sp, 0x4]
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
ldrb r0, [r6, 0x8]
movs r1, 0x1
orrs r5, r1
mov r2, r9
str r2, [sp]
subs r1, 0x2
str r1, [sp, 0x4]
mov r3, r8
lsls r3, 2
mov r8, r3
mov r1, sp
add r1, r8
adds r1, 0xC
ldr r1, [r1]
str r1, [sp, 0x8]
movs r1, 0x7
movs r2, 0x2
adds r3, r5, 0
bl AddTextPrinterParameterized3
ldrh r0, [r6, 0x8]
lsls r4, 1
ldrb r1, [r6, 0x4]
str r1, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
movs r2, 0
adds r3, r4, 0
bl CopyWindowRectToVram
add sp, 0x1C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8DBC
thumb_func_start sub_81C8E54
sub_81C8E54: @ 81C8E54
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r7, r1, 0
adds r1, r2, 0
ldrh r3, [r7, 0xA]
ldr r2, =gUnknown_0861FBF7
adds r2, r1, r2
ldrb r2, [r2]
adds r6, r3, r2
movs r2, 0xF
ands r6, r2
ldrh r0, [r0]
bl sub_81CAFD8
adds r5, r0, 0
cmp r5, 0
beq _081C8EC0
ldrh r0, [r7, 0x8]
lsls r4, r6, 1
ldrb r3, [r7, 0x4]
subs r3, 0x1
movs r1, 0x2
mov r8, r1
str r1, [sp]
movs r1, 0x1
adds r2, r4, 0
bl sub_81DB620
ldrb r0, [r7, 0x8]
lsls r1, r6, 4
movs r2, 0x1
orrs r1, r2
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
adds r2, r5, 0
movs r3, 0x2
bl AddTextPrinterParameterized
ldrh r0, [r7, 0x8]
ldrb r1, [r7, 0x4]
str r1, [sp]
mov r1, r8
str r1, [sp, 0x4]
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
bl CopyWindowRectToVram
_081C8EC0:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8E54
thumb_func_start sub_81C8ED0
sub_81C8ED0: @ 81C8ED0
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_0861FBFC
_081C8ED6:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0
beq _081C8ED6
ldr r0, =gUnknown_0861FC04
bl sub_81C795C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8ED0
thumb_func_start sub_81C8EF8
sub_81C8EF8: @ 81C8EF8
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, =gUnknown_0861FC1C
ldrb r1, [r5, 0x2]
lsls r1, 3
adds r1, 0x3
ldrb r2, [r5, 0x3]
adds r2, 0x1
lsls r2, 3
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
ldr r1, =gSprites
mov r8, r1
add r0, r8
str r0, [r5, 0x3C]
ldrb r6, [r5, 0x2]
lsls r6, 3
ldrb r0, [r5, 0x4]
subs r0, 0x1
lsls r0, 2
ldr r3, =gUnknown_0861FC3C
mov r10, r3
adds r6, r0
ldrb r2, [r5, 0x3]
lsls r2, 3
ldrh r0, [r4, 0x8]
lsls r0, 4
adds r2, r0
lsls r2, 16
asrs r2, 16
mov r0, r10
adds r1, r6, 0
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r2, r3, 4
adds r2, r3
lsls r2, 2
add r2, r8
str r2, [r5, 0x44]
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x2
ldr r0, =0x000003ff
mov r9, r0
mov r0, r9
ands r1, r0
ldr r4, =0xfffffc00
adds r0, r4, 0
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
ldr r1, [r5, 0x44]
ldr r0, =sub_81C90A0
str r0, [r1, 0x1C]
ldrb r2, [r5, 0x3]
lsls r2, 3
mov r0, r10
adds r1, r6, 0
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r1, r3, 4
adds r1, r3
lsls r1, 2
add r1, r8
str r1, [r5, 0x40]
ldrh r2, [r1, 0x4]
lsls r0, r2, 22
lsrs r0, 22
adds r0, 0x4
mov r3, r9
ands r0, r3
ands r4, r2
orrs r4, r0
strh r4, [r1, 0x4]
ldr r1, [r5, 0x40]
ldr r0, =sub_81C90F4
str r0, [r1, 0x1C]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8EF8
thumb_func_start sub_81C8FE0
sub_81C8FE0: @ 81C8FE0
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x3C]
bl DestroySprite
ldr r0, [r4, 0x40]
bl DestroySprite
ldr r0, [r4, 0x44]
bl DestroySprite
movs r0, 0xA
bl FreeSpriteTilesByTag
movs r0, 0x14
bl FreeSpritePaletteByTag
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C8FE0
thumb_func_start sub_81C9008
sub_81C9008: @ 81C9008
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
cmp r4, 0
beq _081C9028
ldr r2, [r5, 0x3C]
ldr r1, =SpriteCallbackDummy
str r1, [r2, 0x1C]
ldr r0, [r5, 0x40]
str r1, [r0, 0x1C]
ldr r0, [r5, 0x44]
str r1, [r0, 0x1C]
b _081C903A
.pool
_081C9028:
ldr r2, [r5, 0x3C]
ldr r0, =sub_81C9080
str r0, [r2, 0x1C]
ldr r1, [r5, 0x40]
ldr r0, =sub_81C90F4
str r0, [r1, 0x1C]
ldr r1, [r5, 0x44]
ldr r0, =sub_81C90A0
str r0, [r1, 0x1C]
_081C903A:
adds r3, r2, 0
adds r3, 0x3E
movs r0, 0x1
ands r4, r0
lsls r4, 2
ldrb r2, [r3]
movs r1, 0x5
negs r1, r1
adds r0, r1, 0
ands r0, r2
orrs r0, r4
strb r0, [r3]
ldr r2, [r5, 0x40]
adds r2, 0x3E
ldrb r3, [r2]
adds r0, r1, 0
ands r0, r3
orrs r0, r4
strb r0, [r2]
ldr r0, [r5, 0x44]
adds r0, 0x3E
ldrb r2, [r0]
ands r1, r2
orrs r1, r4
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9008
thumb_func_start sub_81C9080
sub_81C9080: @ 81C9080
push {r4,lr}
adds r4, r0, 0
movs r0, 0x11
bl GetSubstructPtr
ldr r1, =0x0000088e
adds r0, r1
ldrh r0, [r0]
lsls r0, 4
strh r0, [r4, 0x26]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9080
thumb_func_start sub_81C90A0
sub_81C90A0: @ 81C90A0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C90C2
bl sub_81C84C0
cmp r0, 0
beq _081C90C2
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
b _081C90CC
_081C90C2:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
_081C90CC:
strb r0, [r2]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081C90EC
movs r0, 0
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r4, 0x30]
strh r0, [r4, 0x26]
_081C90EC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C90A0
thumb_func_start sub_81C90F4
sub_81C90F4: @ 81C90F4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C9116
bl sub_81C84A4
cmp r0, 0
beq _081C9116
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
b _081C9120
_081C9116:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
_081C9120:
strb r0, [r2]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081C9142
movs r0, 0
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r4, 0x30]
negs r0, r0
strh r0, [r4, 0x26]
_081C9142:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C90F4
thumb_func_start sub_81C9148
sub_81C9148: @ 81C9148
push {r4,lr}
adds r4, r0, 0
movs r0, 0x11
bl GetSubstructPtr
ldr r1, [r0, 0x40]
strh r4, [r1, 0x3C]
ldr r0, [r0, 0x44]
strh r4, [r0, 0x3C]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C9148
thumb_func_start sub_81C9160
sub_81C9160: @ 81C9160
push {r4,r5,lr}
adds r2, r0, 0
ldr r0, [r1]
str r0, [r2, 0x10]
ldrh r4, [r1, 0x6]
movs r5, 0
strh r4, [r2]
ldrh r3, [r1, 0x4]
strh r3, [r2, 0x2]
ldrb r0, [r1, 0x8]
str r0, [r2, 0xC]
ldrb r1, [r1, 0xC]
strh r1, [r2, 0x8]
lsls r0, r3, 16
lsrs r0, 16
cmp r1, r0
bcc _081C918A
strh r5, [r2]
strh r5, [r2, 0x4]
strh r4, [r2, 0x6]
b _081C91A6
_081C918A:
subs r0, r3, r1
strh r0, [r2, 0x4]
ldrh r1, [r2]
ldrh r0, [r2, 0x8]
adds r1, r0
ldrh r0, [r2, 0x2]
cmp r1, r0
ble _081C91A4
subs r0, r1, r0
strh r0, [r2, 0x6]
subs r0, r4, r0
strh r0, [r2]
b _081C91A6
_081C91A4:
strh r5, [r2, 0x6]
_081C91A6:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C9160
thumb_func_start sub_81C91AC
sub_81C91AC: @ 81C91AC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r7, r0, 0
ldr r4, [r1]
lsls r4, 30
lsrs r0, r4, 30
movs r1, 0
mov r9, r1
strb r0, [r7]
strh r3, [r7, 0x6]
ldr r0, [r2, 0x10]
str r0, [r7, 0x34]
ldr r0, [r2, 0x14]
str r0, [r7, 0x38]
ldrb r6, [r2, 0xD]
strb r6, [r7, 0x1]
ldrb r1, [r2, 0x9]
strb r1, [r7, 0x2]
ldrb r0, [r2, 0xB]
strb r0, [r7, 0x3]
ldrb r5, [r2, 0xA]
strb r5, [r7, 0x4]
ldrb r0, [r2, 0xE]
strb r0, [r7, 0x5]
lsrs r4, 30
ldr r2, =0xffffff00
mov r8, r2
ldr r0, [sp]
ands r0, r2
orrs r0, r4
lsls r1, 24
lsrs r1, 16
ldr r2, =0xffff00ff
ands r0, r2
orrs r0, r1
ldr r1, =0xff00ffff
ands r0, r1
lsls r5, 24
ldr r1, =0x00ffffff
ands r0, r1
orrs r0, r5
str r0, [sp]
ldr r0, [sp, 0x4]
mov r1, r8
ands r0, r1
movs r1, 0x20
orrs r0, r1
lsls r6, 24
lsrs r6, 16
ands r0, r2
orrs r0, r6
adds r3, 0x2
lsls r3, 16
ldr r1, =0x0000ffff
ands r0, r1
orrs r0, r3
str r0, [sp, 0x4]
mov r0, sp
bl AddWindow
strh r0, [r7, 0x8]
lsls r0, 16
lsrs r0, 16
cmp r0, 0xFF
beq _081C9258
mov r2, r9
strh r2, [r7, 0xA]
mov r0, r9
str r0, [r7, 0x3C]
str r0, [r7, 0x40]
str r0, [r7, 0x44]
movs r0, 0x1
b _081C925A
.pool
_081C9258:
movs r0, 0
_081C925A:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C91AC
thumb_func_start sub_81C9268
sub_81C9268: @ 81C9268
push {r4,lr}
@@ -5440,7 +4840,7 @@ _081CB7BA:
b _081CB81A
_081CB7C4:
movs r0, 0x1
bl sub_81C9148
bl ToggleMatchCallVerticalArrows
adds r0, r5, 0
bl sub_81CC058
movs r0, 0
@@ -5508,7 +4908,7 @@ _081CB844:
adds r0, r5, 0
bl sub_81CC09C
movs r0, 0x1
bl sub_81C9148
bl ToggleMatchCallVerticalArrows
movs r0, 0x1
strb r0, [r5, 0xE]
movs r0, 0
@@ -5617,7 +5017,7 @@ _081CB922:
bne _081CB8EC
_081CB92C:
movs r0, 0
bl sub_81C9148
bl ToggleMatchCallVerticalArrows
movs r6, 0x4
_081CB934:
adds r0, r6, 0