tmc/asm/code_08018500.s

10654 lines
180 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08018500
sub_08018500: @ 0x08018500
push {r4, lr}
ldr r4, _08018550 @ =gUnk_02033AB8
adds r3, r4, #4
ldr r0, _08018554 @ =gUnk_080B3D14
ldrb r1, [r4]
lsls r1, r1, #1
adds r1, r1, r0
ldrb r2, [r4, #1]
lsls r0, r2, #1
adds r0, r0, r2
ldrh r1, [r1]
adds r0, r0, r1
movs r2, #0
_0801851A:
strh r0, [r3]
adds r0, #1
adds r3, #2
adds r2, #1
cmp r2, #2
bls _0801851A
ldrb r1, [r4]
lsls r0, r1, #2
adds r0, r0, r1
ldr r1, _08018558 @ =0x00000C81
adds r0, r0, r1
movs r2, #0
adds r1, r4, #0
adds r1, #0xa
_08018536:
strh r0, [r3]
adds r0, #1
adds r3, #2
adds r2, #1
cmp r2, #4
bls _08018536
movs r0, #5
bl sub_08018690
movs r0, #0
strb r0, [r4, #2]
pop {r4, pc}
.align 2, 0
_08018550: .4byte gUnk_02033AB8
_08018554: .4byte gUnk_080B3D14
_08018558: .4byte 0x00000C81
thumb_func_start sub_0801855C
sub_0801855C: @ 0x0801855C
push {r4, r5, r6, lr}
ldr r4, _08018570 @ =gUnk_02033AB8
adds r0, r4, #0
movs r1, #0x14
bl sub_0801D630
adds r5, r4, #0
ldr r4, _08018574 @ =gUnk_080B3D20
movs r6, #0
b _0801858C
.align 2, 0
_08018570: .4byte gUnk_02033AB8
_08018574: .4byte gUnk_080B3D20
_08018578:
adds r0, r4, #0
bl sub_080185B4
cmp r0, #0
beq _08018584
ldrb r6, [r5, #3]
_08018584:
ldrb r0, [r5, #3]
adds r0, #1
strb r0, [r5, #3]
adds r4, #4
_0801858C:
ldrb r0, [r4]
cmp r0, #0xff
bne _08018578
strb r6, [r5, #3]
ldrb r0, [r5, #3]
lsls r0, r0, #2
ldr r1, _080185B0 @ =gUnk_080B3D20
adds r4, r0, r1
ldrb r0, [r4, #2]
strb r0, [r5]
ldrb r0, [r4, #3]
strb r0, [r5, #1]
adds r0, r6, #1
strb r0, [r5, #3]
bl sub_08018500
pop {r4, r5, r6, pc}
.align 2, 0
_080185B0: .4byte gUnk_080B3D20
thumb_func_start sub_080185B4
sub_080185B4: @ 0x080185B4
push {lr}
adds r2, r0, #0
ldrb r0, [r2]
cmp r0, #0xff
bne _080185C2
movs r0, #0
b _080185F6
_080185C2:
cmp r0, #0xfe
bne _080185D4
ldrb r0, [r2, #1]
bl GetInventoryValue
cmp r0, #0
beq _080185F6
movs r0, #1
b _080185F6
_080185D4:
cmp r0, #0xfd
beq _080185F0
ldr r1, _080185EC @ =gUnk_0811E454
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldrb r1, [r2, #1]
bl GetProgressFlagWithOffset
b _080185F6
.align 2, 0
_080185EC: .4byte gUnk_0811E454
_080185F0:
ldrb r0, [r2, #1]
bl sub_0801E7F4
_080185F6:
pop {pc}
thumb_func_start sub_080185F8
sub_080185F8: @ 0x080185F8
push {r4, r5, lr}
ldr r5, _08018624 @ =gUnk_02033AB8
ldrb r0, [r5, #3]
lsls r0, r0, #2
ldr r1, _08018628 @ =gUnk_080B3D20
adds r4, r0, r1
adds r0, r4, #0
bl sub_080185B4
cmp r0, #0
beq _08018620
ldrb r0, [r4, #2]
strb r0, [r5]
ldrb r0, [r4, #3]
strb r0, [r5, #1]
ldrb r0, [r5, #3]
adds r0, #1
strb r0, [r5, #3]
bl sub_08018500
_08018620:
pop {r4, r5, pc}
.align 2, 0
_08018624: .4byte gUnk_02033AB8
_08018628: .4byte gUnk_080B3D20
thumb_func_start sub_0801862C
sub_0801862C: @ 0x0801862C
push {r4, r5, lr}
ldr r1, _0801864C @ =gUnk_03003F80
movs r2, #0
movs r0, #0x16
strb r0, [r1, #0xc]
ldr r5, _08018650 @ =gUnk_030010A0
adds r0, r5, #0
adds r0, #0x35
strb r2, [r0]
ldr r4, _08018654 @ =gUnk_02033AB8
ldrb r0, [r4]
cmp r0, #0xff
bne _08018658
ldrh r0, [r4, #4]
strh r0, [r5, #0x36]
b _0801868C
.align 2, 0
_0801864C: .4byte gUnk_03003F80
_08018650: .4byte gUnk_030010A0
_08018654: .4byte gUnk_02033AB8
_08018658:
ldrb r0, [r4, #2]
lsls r0, r0, #1
adds r1, r4, #4
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r5, #0x36]
ldrb r0, [r4, #2]
adds r0, #1
strb r0, [r4, #2]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bls _0801868C
movs r0, #0
strb r0, [r4, #2]
movs r0, #8
bl sub_08018690
ldrh r0, [r4, #4]
ldrh r5, [r5, #0x36]
cmp r0, r5
bne _0801868C
adds r1, r0, #0
ldrh r0, [r4, #0x12]
strh r0, [r4, #4]
strh r1, [r4, #0x12]
_0801868C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08018690
sub_08018690: @ 0x08018690
push {r4, r5, r6, lr}
adds r6, r1, #0
subs r4, r0, #1
cmp r4, #0
beq _080186BC
lsls r0, r4, #1
adds r5, r0, r6
_0801869E:
bl sub_08000E50
adds r1, r4, #1
bl __modsi3
ldrh r2, [r5]
lsls r0, r0, #1
adds r0, r0, r6
ldrh r1, [r0]
strh r1, [r5]
strh r2, [r0]
subs r5, #2
subs r4, #1
cmp r4, #0
bne _0801869E
_080186BC:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080186C0
sub_080186C0: @ 0x080186C0
ldr r3, _080186D0 @ =gUnk_02033A90
adds r2, r3, #0
adds r2, #0x28
movs r1, #0xff
strb r1, [r2]
strh r0, [r3, #0x2c]
bx lr
.align 2, 0
_080186D0: .4byte gUnk_02033A90
thumb_func_start sub_080186D4
sub_080186D4: @ 0x080186D4
push {lr}
ldr r0, _080186E8 @ =gUnk_02033A90
adds r0, #0x28
ldrb r0, [r0]
cmp r0, #0xff
bne _080186E4
bl sub_0801855C
_080186E4:
pop {pc}
.align 2, 0
_080186E8: .4byte gUnk_02033A90
thumb_func_start sub_080186EC
sub_080186EC: @ 0x080186EC
push {r4, r5, lr}
movs r5, #0
ldr r4, _0801870C @ =gUnk_080C9CBC
_080186F2:
ldrb r0, [r4, #3]
cmp r0, #8
bne _08018700
ldrb r1, [r4, #4]
adds r0, r5, #0
bl sub_08018738
_08018700:
adds r4, #8
adds r5, #1
cmp r5, #0x64
bls _080186F2
pop {r4, r5, pc}
.align 2, 0
_0801870C: .4byte gUnk_080C9CBC
thumb_func_start sub_08018710
sub_08018710: @ 0x08018710
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r5, #0
ldr r4, _08018734 @ =gUnk_080C9CBC
_08018718:
ldrb r0, [r4, #3]
cmp r0, #8
bne _0801872A
ldrb r1, [r4, #4]
cmp r6, r1
beq _0801872A
adds r0, r5, #0
bl sub_08018738
_0801872A:
adds r4, #8
adds r5, #1
cmp r5, #0x64
bls _08018718
pop {r4, r5, r6, pc}
.align 2, 0
_08018734: .4byte gUnk_080C9CBC
thumb_func_start sub_08018738
sub_08018738: @ 0x08018738
push {r4, lr}
adds r2, r0, #0
adds r4, r1, #0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #2
ldr r1, _08018764 @ =gUnk_080FE320
adds r0, r0, r1
ldr r1, _08018768 @ =gUnk_03000BF0
ldrh r0, [r0, #2]
ldrh r1, [r1, #4]
cmp r0, r1
bne _08018760
adds r0, r2, #0
bl sub_0801E7F4
adds r1, r0, #0
adds r0, r4, #0
bl sub_0801876C
_08018760:
pop {r4, pc}
.align 2, 0
_08018764: .4byte gUnk_080FE320
_08018768: .4byte gUnk_03000BF0
thumb_func_start sub_0801876C
sub_0801876C: @ 0x0801876C
push {r4, r5, lr}
adds r2, r0, #0
adds r4, r1, #0
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #2
ldr r1, _08018790 @ =gUnk_080FE320
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, #0x1c
bls _08018784
b _080189E4
_08018784:
lsls r0, r0, #2
ldr r1, _08018794 @ =_08018798
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018790: .4byte gUnk_080FE320
_08018794: .4byte _08018798
_08018798: @ jump table
.4byte _080189E4 @ case 0
.4byte _08018838 @ case 1
.4byte _0801882A @ case 2
.4byte _08018858 @ case 3
.4byte _08018878 @ case 4
.4byte _08018886 @ case 5
.4byte _0801880C @ case 6
.4byte _08018894 @ case 7
.4byte _080188E0 @ case 8
.4byte _08018930 @ case 9
.4byte _080189E4 @ case 10
.4byte _080188FE @ case 11
.4byte _080189E4 @ case 12
.4byte _080189E4 @ case 13
.4byte _080189E4 @ case 14
.4byte _080189B4 @ case 15
.4byte _080189E4 @ case 16
.4byte _080189D0 @ case 17
.4byte _080189E4 @ case 18
.4byte _080189E4 @ case 19
.4byte _080189E4 @ case 20
.4byte _080189E4 @ case 21
.4byte _080189E4 @ case 22
.4byte _080189E4 @ case 23
.4byte _080189A4 @ case 24
.4byte _080188B8 @ case 25
.4byte _080189E4 @ case 26
.4byte _080189E4 @ case 27
.4byte _080189E4 @ case 28
_0801880C:
cmp r4, #0
beq _08018812
b _080189E4
_08018812:
ldrh r0, [r5, #8]
lsrs r0, r0, #4
movs r2, #0x3f
ands r0, r2
ldrh r1, [r5, #0xa]
lsrs r1, r1, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
bl sub_08018AB4
b _080189E4
_0801882A:
cmp r4, #0
bne _08018830
b _080189E4
_08018830:
adds r0, r2, #0
bl sub_08018BB4
b _080189E4
_08018838:
cmp r4, #0
bne _0801883E
b _080189E4
_0801883E:
ldrh r0, [r5, #0x12]
bl GetProgressFlag
cmp r0, #0
beq _0801884A
b _080189E4
_0801884A:
ldrb r0, [r5, #1]
lsls r0, r0, #4
ldr r1, _08018854 @ =gUnk_080FEC28
b _080188A4
.align 2, 0
_08018854: .4byte gUnk_080FEC28
_08018858:
cmp r4, #0
bne _0801885E
b _080189E4
_0801885E:
ldrh r0, [r5, #0x12]
bl GetInventoryValue
cmp r0, #0
beq _0801886A
b _080189E4
_0801886A:
ldrb r0, [r5, #1]
lsls r0, r0, #4
ldr r1, _08018874 @ =gUnk_080FEBE8
b _080188A4
.align 2, 0
_08018874: .4byte gUnk_080FEBE8
_08018878:
cmp r4, #0
beq _0801887E
b _080189E4
_0801887E:
adds r0, r2, #0
bl sub_08018A58
b _080189E4
_08018886:
cmp r4, #0
bne _0801888C
b _080189E4
_0801888C:
adds r0, r2, #0
bl sub_08018B50
b _080189E4
_08018894:
cmp r4, #0
beq _0801889A
b _080189E4
_0801889A:
ldrb r0, [r5, #1]
cmp r0, #0x80
beq _080188B0
lsls r0, r0, #4
ldr r1, _080188AC @ =gUnk_080FECC8
_080188A4:
adds r0, r0, r1
bl CreateEntity
b _080189E4
.align 2, 0
_080188AC: .4byte gUnk_080FECC8
_080188B0:
adds r0, r2, #0
bl sub_080189EC
b _080189E4
_080188B8:
ldrb r0, [r5, #1]
lsls r0, r0, #4
ldr r1, _080188DC @ =gUnk_080FED18
adds r0, r0, r1
bl CreateEntity
adds r2, r0, #0
cmp r2, #0
bne _080188CC
b _080189E4
_080188CC:
rsbs r0, r4, #0
orrs r0, r4
asrs r0, r0, #0x1f
movs r1, #2
ands r0, r1
strb r0, [r2, #0xa]
b _080189E4
.align 2, 0
_080188DC: .4byte gUnk_080FED18
_080188E0:
cmp r4, #0
bne _080188E6
b _080189E4
_080188E6:
movs r0, #0xb4
lsls r0, r0, #1
ldrh r1, [r5, #8]
lsrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
ldrh r2, [r5, #0xa]
lsrs r2, r2, #4
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
b _0801899C
_080188FE:
cmp r4, #0
beq _080189E4
ldrb r0, [r5, #1]
lsls r0, r0, #4
ldr r1, _08018924 @ =gUnk_080FED58
adds r0, r0, r1
bl CreateEntity
ldr r2, _08018928 @ =gUnk_02034350
ldrb r0, [r5, #1]
lsls r0, r0, #2
adds r2, #0x8c
adds r2, r0, r2
ldr r1, _0801892C @ =gUnk_080FED98
adds r0, r0, r1
ldr r0, [r0]
str r0, [r2]
b _080189E4
.align 2, 0
_08018924: .4byte gUnk_080FED58
_08018928: .4byte gUnk_02034350
_0801892C: .4byte gUnk_080FED98
_08018930:
cmp r4, #0
beq _080189E4
ldrb r0, [r5, #1]
lsls r0, r0, #4
ldr r1, _08018974 @ =gUnk_080FEE78
adds r0, r0, r1
bl CreateEntity
adds r2, r0, #0
cmp r2, #0
beq _08018958
ldr r0, _08018978 @ =gUnk_03000BF0
ldrh r1, [r0, #6]
ldrh r3, [r5, #8]
adds r1, r1, r3
strh r1, [r2, #0x38]
ldrh r0, [r0, #8]
ldrh r1, [r5, #0xa]
adds r0, r0, r1
strh r0, [r2, #0x3a]
_08018958:
ldrb r0, [r5, #1]
cmp r0, #0
bne _0801897C
ldrh r1, [r5, #8]
lsrs r1, r1, #4
movs r2, #0x3f
ands r1, r2
ldrh r0, [r5, #0xa]
lsrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x8d
b _0801899C
.align 2, 0
_08018974: .4byte gUnk_080FEE78
_08018978: .4byte gUnk_03000BF0
_0801897C:
ldrh r4, [r5, #8]
lsrs r4, r4, #4
movs r1, #0x3f
ands r4, r1
ldrh r0, [r5, #0xa]
lsrs r0, r0, #4
ands r0, r1
lsls r0, r0, #6
orrs r4, r0
subs r1, r4, #1
movs r0, #0x8c
movs r2, #1
bl sub_0807B314
movs r0, #0x8e
adds r1, r4, #0
_0801899C:
movs r2, #1
bl sub_0807B314
b _080189E4
_080189A4:
cmp r4, #0
beq _080189E4
ldr r0, _080189B0 @ =gUnk_080FEE18
bl LoadRoomEntityList
b _080189E4
.align 2, 0
_080189B0: .4byte gUnk_080FEE18
_080189B4:
cmp r4, #0
beq _080189C4
ldr r0, _080189C0 @ =gUnk_080FEE58
bl CreateEntity
b _080189E4
.align 2, 0
_080189C0: .4byte gUnk_080FEE58
_080189C4:
ldr r0, _080189CC @ =gUnk_080FEE48
bl CreateEntity
b _080189E4
.align 2, 0
_080189CC: .4byte gUnk_080FEE48
_080189D0:
cmp r4, #0
beq _080189E4
movs r0, #0x80
lsls r0, r0, #1
movs r1, #0x79
bl sub_0807CC9C
ldr r0, _080189E8 @ =gUnk_080FEE38
bl LoadRoomEntityList
_080189E4:
pop {r4, r5, pc}
.align 2, 0
_080189E8: .4byte gUnk_080FEE38
thumb_func_start sub_080189EC
sub_080189EC: @ 0x080189EC
push {r4, r5, r6, lr}
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _08018A48 @ =gUnk_080FE320
adds r1, r1, r0
ldrh r0, [r1, #8]
lsrs r6, r0, #4
movs r2, #0x3f
ands r6, r2
ldrh r0, [r1, #0xa]
lsrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r6, r0
subs r6, #0x42
movs r5, #0
_08018A0E:
ldr r1, _08018A4C @ =0x000001DF
adds r0, r5, r1
adds r1, r6, r5
movs r2, #2
bl sub_0807B314
adds r5, #1
cmp r5, #3
bls _08018A0E
adds r6, #0x40
movs r5, #0
_08018A24:
ldr r1, _08018A50 @ =0x000001E3
adds r0, r5, r1
adds r4, r6, r5
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r1, _08018A54 @ =0x000001DB
adds r0, r5, r1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
adds r5, #1
cmp r5, #3
bls _08018A24
pop {r4, r5, r6, pc}
.align 2, 0
_08018A48: .4byte gUnk_080FE320
_08018A4C: .4byte 0x000001DF
_08018A50: .4byte 0x000001E3
_08018A54: .4byte 0x000001DB
thumb_func_start sub_08018A58
sub_08018A58: @ 0x08018A58
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _08018AAC @ =gUnk_080FE320
adds r1, r1, r0
ldrh r0, [r1, #8]
lsrs r5, r0, #4
movs r2, #0x3f
ands r5, r2
ldrh r0, [r1, #0xa]
lsrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
subs r5, #0x43
ldr r6, _08018AB0 @ =0x00000232
movs r0, #0
_08018A80:
movs r4, #0
movs r1, #0x40
adds r1, r1, r5
mov r8, r1
adds r7, r0, #1
_08018A8A:
adds r0, r6, #0
adds r6, #1
adds r1, r5, r4
movs r2, #1
bl sub_0807B314
adds r4, #1
cmp r4, #6
bls _08018A8A
mov r5, r8
adds r0, r7, #0
cmp r0, #3
bls _08018A80
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08018AAC: .4byte gUnk_080FE320
_08018AB0: .4byte 0x00000232
thumb_func_start sub_08018AB4
sub_08018AB4: @ 0x08018AB4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r5, r0, #0
movs r3, #0xf4
lsls r3, r3, #1
movs r7, #0xfa
lsls r7, r7, #1
movs r0, #0
_08018ACA:
movs r6, #0
movs r1, #0x40
adds r1, r1, r5
mov r8, r1
adds r0, #1
mov sb, r0
adds r4, r5, #0
subs r4, #0x40
_08018ADA:
adds r0, r3, #0
adds r3, #1
adds r1, r5, r6
movs r2, #1
str r3, [sp]
bl sub_0807B314
adds r0, r7, #0
adds r7, #1
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
adds r4, #1
adds r6, #1
ldr r3, [sp]
cmp r6, #3
bls _08018ADA
mov r5, r8
mov r0, sb
cmp r0, #2
bls _08018ACA
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08018B10
sub_08018B10: @ 0x08018B10
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
movs r0, #0xf8
lsls r0, r0, #1
mov r8, r0
movs r7, #0xfe
lsls r7, r7, #1
movs r5, #0
adds r4, r6, #0
subs r4, #0x40
_08018B28:
mov r0, r8
movs r1, #1
add r8, r1
adds r1, r6, r5
movs r2, #1
bl sub_0807B314
adds r0, r7, #0
adds r7, #1
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
adds r4, #1
adds r5, #1
cmp r5, #3
bls _08018B28
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08018B50
sub_08018B50: @ 0x08018B50
push {r4, r5, r6, r7, lr}
sub sp, #4
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _08018BAC @ =gUnk_080FE320
adds r2, r1, r0
ldrb r1, [r2, #1]
movs r0, #0x80
ands r0, r1
ldr r3, _08018BB0 @ =0x00000219
cmp r0, #0
bne _08018B6C
subs r3, #0x19
_08018B6C:
ldrh r0, [r2, #8]
lsrs r5, r0, #4
movs r1, #0x3f
ands r5, r1
ldrh r0, [r2, #0xa]
lsrs r0, r0, #4
ands r0, r1
lsls r0, r0, #6
orrs r5, r0
subs r5, #0x82
movs r0, #0
_08018B82:
movs r4, #0
adds r6, r5, #0
adds r6, #0x40
adds r7, r0, #1
_08018B8A:
adds r0, r3, #0
adds r3, #1
adds r1, r5, r4
movs r2, #1
str r3, [sp]
bl sub_0807B314
adds r4, #1
ldr r3, [sp]
cmp r4, #4
bls _08018B8A
adds r5, r6, #0
adds r0, r7, #0
cmp r0, #4
bls _08018B82
add sp, #4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08018BAC: .4byte gUnk_080FE320
_08018BB0: .4byte 0x00000219
thumb_func_start sub_08018BB4
sub_08018BB4: @ 0x08018BB4
push {r4, r5, lr}
sub sp, #8
adds r4, r0, #0
lsls r0, r4, #3
ldr r1, _08018C14 @ =gUnk_080FEAC8
adds r0, r0, r1
mov r5, sp
mov r1, sp
movs r2, #8
bl sub_0801D66C
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #2
ldr r1, _08018C18 @ =gUnk_080FE320
adds r0, r0, r1
ldrh r1, [r0, #8]
lsrs r1, r1, #4
movs r2, #0x3f
ands r1, r2
ldrh r0, [r0, #0xa]
lsrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r5, #4]
mov r0, sp
bl sub_0804B3C4
ldrb r0, [r5, #1]
bl sub_0807CBD0
cmp r0, #0
bne _08018C10
ldrh r3, [r5, #4]
ldrb r1, [r5, #6]
movs r0, #1
ands r0, r1
movs r2, #2
cmp r0, #0
bne _08018C08
movs r2, #1
_08018C08:
movs r0, #0x73
adds r1, r3, #0
bl sub_0807B314
_08018C10:
add sp, #8
pop {r4, r5, pc}
.align 2, 0
_08018C14: .4byte gUnk_080FEAC8
_08018C18: .4byte gUnk_080FE320
thumb_func_start sub_08018C1C
sub_08018C1C: @ 0x08018C1C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldr r6, _08018C54 @ =0x00000185
movs r0, #0
_08018C28:
movs r4, #0
movs r1, #0x40
adds r1, r1, r5
mov r8, r1
adds r7, r0, #1
_08018C32:
adds r0, r6, #0
adds r6, #1
adds r1, r5, r4
movs r2, #1
bl sub_0807B314
adds r4, #1
cmp r4, #4
bls _08018C32
mov r5, r8
adds r0, r7, #0
cmp r0, #3
bls _08018C28
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08018C54: .4byte 0x00000185
thumb_func_start sub_08018C58
sub_08018C58: @ 0x08018C58
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0
_08018C5E:
movs r1, #0x98
lsls r1, r1, #2
adds r0, r5, r1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r1, _08018C84 @ =0x00000261
adds r0, r5, r1
adds r1, r4, #1
movs r2, #1
bl sub_0807B314
adds r5, #2
adds r4, #0x40
cmp r5, #5
bls _08018C5E
pop {r4, r5, pc}
.align 2, 0
_08018C84: .4byte 0x00000261
thumb_func_start sub_08018C88
sub_08018C88: @ 0x08018C88
push {lr}
adds r2, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _08018CB4
adds r1, r2, #0
adds r1, #0x3d
movs r0, #0
strb r0, [r1]
ldr r1, _08018CB0 @ =gUnk_080B3DD0
ldrb r0, [r2, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl _call_via_r1
b _08018CB8
.align 2, 0
_08018CB0: .4byte gUnk_080B3DD0
_08018CB4:
bl sub_0805E780
_08018CB8:
pop {pc}
.align 2, 0
thumb_func_start sub_08018CBC
sub_08018CBC: @ 0x08018CBC
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x84
ldr r5, _08018D50 @ =gLinkEntity
ldr r0, [r5, #0x2c]
str r0, [r4, #0x2c]
str r0, [r1]
subs r1, #4
ldr r0, [r5, #0x30]
str r0, [r4, #0x30]
str r0, [r1]
ldrb r1, [r5, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r4, #0x24]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x96
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
movs r2, #0x80
rsbs r2, r2, #0
adds r1, r2, #0
adds r2, r4, #0
adds r2, #0x3c
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x3b
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x3b
strb r0, [r1]
ldr r6, [r4, #0x54]
cmp r6, #0
beq _08018D58
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0x56
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x40
movs r0, #0x1c
strb r0, [r1]
adds r1, #4
movs r0, #6
strb r0, [r1]
ldr r0, _08018D54 @ =gUnk_080B3E18
str r0, [r4, #0x48]
ldr r0, [r4, #0x54]
adds r0, #0x62
movs r1, #0
strb r1, [r0]
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _08018DD2
.align 2, 0
_08018D50: .4byte gLinkEntity
_08018D54: .4byte gUnk_080B3E18
_08018D58:
ldr r7, _08018DDC @ =gUnk_03003F80
ldrb r0, [r7, #0x1c]
cmp r0, #0
bne _08018D64
bl sub_0805E780
_08018D64:
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xa6
strh r0, [r4, #0x12]
movs r0, #0x33
strb r0, [r4, #0x1a]
adds r0, r4, #0
adds r0, #0x60
strh r6, [r0]
ldrb r0, [r7, #0x1d]
subs r0, #1
strb r0, [r4, #0xa]
ldr r1, _08018DE0 @ =gUnk_080B3DE0
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
adds r0, #1
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x44
strb r1, [r0]
adds r1, r4, #0
adds r1, #0x40
movs r0, #0x1b
strb r0, [r1]
ldr r1, _08018DE4 @ =gUnk_080B3DE8
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
str r4, [r5, #0x70]
adds r0, r5, #0
bl sub_08078CD0
str r6, [r5, #0x70]
ldrb r1, [r4, #0xa]
adds r1, #0xa
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08018FA0
_08018DD2:
adds r0, r4, #0
bl sub_0801766C
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08018DDC: .4byte gUnk_03003F80
_08018DE0: .4byte gUnk_080B3DE0
_08018DE4: .4byte gUnk_080B3DE8
thumb_func_start sub_08018DE8
sub_08018DE8: @ 0x08018DE8
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
adds r0, #0x3a
ldrb r1, [r0]
movs r5, #4
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _08018E08
ldr r0, _08018E18 @ =gUnk_03003F80
strb r1, [r0, #0x1c]
bl sub_0805E780
_08018E08:
ldr r0, _08018E18 @ =gUnk_03003F80
ldrb r0, [r0, #0x1c]
cmp r0, #0
beq _08018E1C
cmp r0, #5
beq _08018E24
b _08018E5A
.align 2, 0
_08018E18: .4byte gUnk_03003F80
_08018E1C:
adds r0, r4, #0
bl sub_08018F6C
b _08018E5A
_08018E24:
ldr r0, [r4, #0x54]
strb r5, [r0, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r2, #2
movs r0, #2
strb r0, [r4, #0xc]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0xa
ands r0, r1
orrs r0, r2
strb r0, [r3]
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
adds r0, r4, #0
bl sub_08018FA0
_08018E5A:
ldr r0, _08018E64 @ =gLinkEntity
bl sub_08078CD0
pop {r4, r5, pc}
.align 2, 0
_08018E64: .4byte gLinkEntity
thumb_func_start sub_08018E68
sub_08018E68: @ 0x08018E68
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
cmp r0, #0
bne _08018E82
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
movs r1, #5
bl sub_08008790
b _08018EA8
_08018E82:
adds r0, #0x3a
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _08018E92
bl sub_0805E780
_08018E92:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08018EA8
adds r0, r4, #0
bl sub_08018F6C
b _08018F62
_08018EA8:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08018F46
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0x15]
cmp r0, #8
beq _08018EEA
cmp r0, #8
bgt _08018ECC
cmp r0, #0
beq _08018ED6
b _08018EEE
_08018ECC:
cmp r0, #0x10
beq _08018EDE
cmp r0, #0x18
beq _08018EE4
b _08018EEE
_08018ED6:
movs r6, #0
movs r5, #4
rsbs r5, r5, #0
b _08018EEE
_08018EDE:
movs r6, #0
movs r5, #4
b _08018EEE
_08018EE4:
movs r6, #4
rsbs r6, r6, #0
b _08018EEC
_08018EEA:
movs r6, #4
_08018EEC:
movs r5, #0
_08018EEE:
ldr r1, [r4, #0x54]
cmp r1, #0
beq _08018F00
ldrb r0, [r4, #0x15]
strb r0, [r1, #0x15]
ldr r1, [r4, #0x54]
adds r0, r4, #0
bl sub_0806FA24
_08018F00:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08018F0C
adds r0, r4, #0
bl sub_0800451C
_08018F0C:
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0800029C
ldr r1, _08018F64 @ =gUnk_080B3DF4
bl sub_08007DD6
cmp r0, #0
bne _08018F62
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_080002B4
cmp r0, #0x74
beq _08018F62
ldr r1, _08018F68 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
adds r2, r2, r6
movs r0, #0x32
ldrsh r3, [r4, r0]
adds r3, r3, r5
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _08018F62
_08018F46:
ldr r0, [r4, #0x54]
cmp r0, #0
bne _08018F56
ldrb r1, [r4, #0xa]
adds r1, #0xd
adds r0, r4, #0
bl sub_08004260
_08018F56:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08018F6C
_08018F62:
pop {r4, r5, r6, pc}
.align 2, 0
_08018F64: .4byte gUnk_080B3DF4
_08018F68: .4byte gUnk_08003E44
thumb_func_start sub_08018F6C
sub_08018F6C: @ 0x08018F6C
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x54]
cmp r1, #0
beq _08018F8A
movs r0, #5
strb r0, [r1, #0xd]
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
subs r0, #9
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
b _08018F9A
_08018F8A:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _08018F9E
_08018F9A:
bl sub_0805E780
_08018F9E:
pop {r4, pc}
thumb_func_start sub_08018FA0
sub_08018FA0: @ 0x08018FA0
push {lr}
adds r2, r0, #0
ldr r0, _08018FC8 @ =gLinkEntity
adds r0, #0x38
ldrb r0, [r0]
adds r1, r2, #0
adds r1, #0x38
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bne _08018FBC
movs r0, #1
strb r0, [r2, #0xb]
_08018FBC:
ldrb r0, [r2, #0xa]
adds r0, #0xea
bl sub_080A3268
pop {pc}
.align 2, 0
_08018FC8: .4byte gLinkEntity
thumb_func_start sub_08018FCC
sub_08018FCC: @ 0x08018FCC
push {lr}
ldr r2, _08018FE0 @ =gUnk_080B3E30
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08018FE0: .4byte gUnk_080B3E30
thumb_func_start sub_08018FE4
sub_08018FE4: @ 0x08018FE4
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r3, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r5, [r4, #0xa]
cmp r5, #0
bne _08018FF6
b _080190FC
_08018FF6:
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x6a
str r0, [r4, #0x74]
ldrb r0, [r4, #0xb]
adds r1, r4, #0
adds r1, #0x40
strb r0, [r1]
movs r0, #0xa6
strh r0, [r4, #0x12]
ldrb r0, [r1]
adds r6, r1, #0
cmp r0, #0xe
bne _08019026
movs r0, #0x80
lsls r0, r0, #3
b _0801902A
_08019026:
movs r0, #0xc0
lsls r0, r0, #2
_0801902A:
strh r0, [r4, #0x24]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldr r2, _0801905C @ =gLinkEntity
adds r0, r2, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
adds r1, r4, #0
adds r1, #0x3c
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3b
ldrb r0, [r0]
subs r1, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
adds r5, r2, #0
cmp r0, #2
bne _08019060
movs r0, #1
b _08019062
.align 2, 0
_0801905C: .4byte gLinkEntity
_08019060:
movs r0, #0
_08019062:
strb r0, [r4, #0xb]
ldrb r1, [r5, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r3, r0, #1
adds r3, r3, r0
lsls r3, r3, #2
ldr r0, _080190F8 @ =gUnk_080B3E40
adds r3, r3, r0
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r3, r0]
ldrh r5, [r5, #0x32]
adds r0, r0, r5
strh r0, [r4, #0x32]
ldrb r1, [r3, #2]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r3, #3]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r3, #6]
adds r5, r4, #0
adds r5, #0x58
strb r0, [r5]
movs r0, #4
ldrsb r0, [r3, r0]
str r0, [r4, #0x6c]
movs r0, #5
ldrsb r0, [r3, r0]
str r0, [r4, #0x70]
ldr r0, [r3, #8]
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_0801766C
ldrb r0, [r6]
cmp r0, #0xe
bne _080190E8
ldrb r0, [r5]
adds r0, #6
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x60
movs r0, #0
strh r0, [r1]
_080190E8:
ldrb r1, [r5]
adds r0, r4, #0
bl sub_08004260
movs r0, #0xfc
bl sub_080A3268
b _08019178
.align 2, 0
_080190F8: .4byte gUnk_080B3E40
_080190FC:
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldr r2, _08019168 @ =gUnk_080B3E40
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #2]
ands r1, r3
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, _0801916C @ =gUnk_03003F80
str r4, [r0, #0x2c]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019170
movs r0, #0x3c
str r0, [r4, #0x78]
ldrb r1, [r4, #0xa]
movs r0, #0x43
movs r2, #1
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019172
adds r0, r4, #0
bl sub_0806FA24
b _08019172
.align 2, 0
_08019168: .4byte gUnk_080B3E40
_0801916C: .4byte gUnk_03003F80
_08019170:
str r5, [r4, #0x78]
_08019172:
adds r0, r4, #0
bl sub_0801917C
_08019178:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801917C
sub_0801917C: @ 0x0801917C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
cmp r2, #0
bne _08019188
b _0801934A
_08019188:
ldr r0, [r4, #0x74]
subs r0, #1
str r0, [r4, #0x74]
cmp r0, #0
bne _0801919C
adds r0, r4, #0
bl sub_08019468
bl sub_0805E780
_0801919C:
adds r0, r4, #0
bl sub_08004274
ldr r0, [r4, #0x74]
cmp r0, #0x17
bhi _080191BA
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_080191BA:
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x40
ldrb r1, [r0]
movs r5, #4
adds r6, r0, #0
cmp r1, #0xe
bne _080191D0
movs r5, #1
_080191D0:
ldr r2, [r4, #0x6c]
ldr r3, [r4, #0x70]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08008782
cmp r0, #0
beq _080191EE
ldrb r0, [r6]
cmp r0, #0xe
beq _080191EA
bl sub_0805E780
_080191EA:
movs r7, #1
b _080191F0
_080191EE:
movs r7, #0
_080191F0:
ldrb r0, [r6]
cmp r0, #0xe
bne _0801920E
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0801920E
adds r0, r4, #0
movs r1, #0x14
movs r2, #0
bl CreateFX
_0801920E:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0801921A
adds r0, r4, #0
bl sub_0800451C
_0801921A:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08019288 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0801928C @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _080192D0
cmp r7, #0
bne _080192D0
ldr r1, _08019290 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _080192D0
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r6]
cmp r0, #0xe
bne _08019294
adds r0, r4, #0
bl sub_08019468
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #0xf
adds r0, r4, #0
bl sub_08004260
b _080192A2
.align 2, 0
_08019288: .4byte gUnk_03000BF0
_0801928C: .4byte gLinkEntity
_08019290: .4byte gUnk_08003E44
_08019294:
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #2
adds r0, r4, #0
bl sub_08004260
_080192A2:
adds r0, r4, #0
bl sub_08017744
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
movs r0, #0
strb r1, [r4, #0x10]
strh r0, [r4, #0x24]
ldr r0, [r4, #0x2c]
cmp r0, #0
bge _080192BC
movs r0, #0
_080192BC:
str r0, [r4, #0x2c]
ldr r0, [r4, #0x30]
cmp r0, #0
bge _080192C6
movs r0, #0
_080192C6:
str r0, [r4, #0x30]
movs r0, #0xc5
lsls r0, r0, #1
bl sub_080A3268
_080192D0:
adds r5, r4, #0
adds r5, #0x41
ldrb r0, [r5]
cmp r0, #0
bne _080192DC
b _08019402
_080192DC:
cmp r7, #0
beq _080192E2
b _08019402
_080192E2:
ldrb r0, [r6]
cmp r0, #0xe
bne _080192EE
adds r0, r4, #0
bl sub_08019468
_080192EE:
adds r0, r4, #0
bl sub_08017744
ldrb r1, [r5]
movs r0, #0x3f
ands r0, r1
cmp r0, #0x42
bne _08019336
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #6
bl sub_08004260
b _08019402
_08019336:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r4, #0x18]
b _08019402
_0801934A:
ldr r1, _0801938C @ =gUnk_03003F80
ldr r0, [r1, #0x2c]
cmp r0, r4
bne _0801935E
adds r0, r1, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08019368
str r0, [r1, #0x2c]
_0801935E:
adds r0, r1, #0
adds r0, #0x21
strb r2, [r0]
bl sub_0805E780
_08019368:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019398
ldr r0, _0801938C @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0x21
ldrb r0, [r2]
adds r1, r0, #0
cmp r1, #0
beq _08019398
cmp r1, #0x77
bhi _08019390
adds r0, #1
strb r0, [r2]
b _08019398
.align 2, 0
_0801938C: .4byte gUnk_03003F80
_08019390:
adds r1, r4, #0
adds r1, #0x40
movs r0, #0xe
strb r0, [r1]
_08019398:
ldr r0, _08019404 @ =gUnk_02002A40
adds r0, #0xad
ldrb r5, [r0]
ldrb r1, [r4, #0x1e]
ldr r2, [r4, #0x78]
subs r1, r1, r2
ldr r0, _08019408 @ =gLinkEntity
ldrb r0, [r0, #0x1e]
cmp r1, r0
beq _080193C2
adds r0, r0, r2
strb r0, [r4, #0x1e]
cmp r5, #0
bne _080193B8
adds r0, #0x2a
strb r0, [r4, #0x1e]
_080193B8:
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080193C2:
ldr r0, _08019408 @ =gLinkEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080193FA
cmp r5, #0
beq _080193FA
adds r0, r4, #0
adds r0, #0x40
ldrb r2, [r0]
movs r0, #4
movs r1, #1
movs r3, #9
bl sub_08077CB8
cmp r0, #0
beq _080193FA
ldr r2, _0801940C @ =gUnk_03003F80
ldrb r1, [r2, #4]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #4]
movs r0, #1
rsbs r0, r0, #0
bl sub_08054330
_080193FA:
ldr r1, _08019408 @ =gLinkEntity
adds r0, r4, #0
bl sub_08078E84
_08019402:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08019404: .4byte gUnk_02002A40
_08019408: .4byte gLinkEntity
_0801940C: .4byte gUnk_03003F80
thumb_func_start sub_08019410
sub_08019410: @ 0x08019410
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0xe
bhi _08019428
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r0, r4, #0
bl sub_08004260
b _0801942E
_08019428:
adds r0, r4, #0
bl sub_08004274
_0801942E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08019440
bl sub_0805E780
_08019440:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08019444
sub_08019444: @ 0x08019444
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08019464
bl sub_0805E780
_08019464:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08019468
sub_08019468: @ 0x08019468
push {lr}
adds r1, r0, #0
adds r0, #0x40
ldrb r0, [r0]
cmp r0, #0xe
bne _0801947E
adds r0, r1, #0
movs r1, #0x50
movs r2, #0
bl CreateFX
_0801947E:
pop {pc}
thumb_func_start sub_08019480
sub_08019480: @ 0x08019480
push {lr}
ldr r2, _08019494 @ =gUnk_080B43F4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08019494: .4byte gUnk_080B43F4
thumb_func_start sub_08019498
sub_08019498: @ 0x08019498
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08019504 @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA24
ldrb r0, [r5, #0xc]
adds r0, #1
movs r2, #0
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r4, #0x3c
ldrb r0, [r4]
adds r0, #1
adds r1, r5, #0
adds r1, #0x3c
strb r0, [r1]
ldr r0, _08019508 @ =gUnk_080B4408
str r0, [r5, #0x48]
movs r0, #0xe0
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #2
str r0, [r5, #0x74]
str r2, [r5, #0x70]
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080194E6
movs r0, #1
strb r0, [r5, #0xb]
_080194E6:
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #0x3c
str r0, [r5, #0x6c]
ldrb r0, [r5, #0x14]
adds r2, r0, #0
cmp r0, #2
beq _08019534
cmp r0, #2
bgt _0801950C
cmp r0, #0
beq _08019516
b _0801954E
.align 2, 0
_08019504: .4byte gLinkEntity
_08019508: .4byte gUnk_080B4408
_0801950C:
cmp r0, #4
beq _0801952C
cmp r0, #6
beq _08019542
b _0801954E
_08019516:
ldrh r0, [r5, #0x2e]
subs r0, #3
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
subs r0, #8
strh r0, [r5, #0x32]
ldrb r0, [r5, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x18]
b _0801954E
_0801952C:
ldrh r0, [r5, #0x2e]
adds r0, #2
strh r0, [r5, #0x2e]
b _0801954E
_08019534:
ldrb r0, [r5, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r5, #0x18]
ldrh r0, [r5, #0x2e]
adds r0, #1
b _08019546
_08019542:
ldrh r0, [r5, #0x2e]
subs r0, #1
_08019546:
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
subs r0, #4
strh r0, [r5, #0x32]
_0801954E:
ldr r1, _08019578 @ =gUnk_080B43FC
lsrs r0, r2, #1
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
bl sub_08004260
adds r0, r5, #0
bl sub_0801766C
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
bl sub_08019580
ldr r0, _0801957C @ =0x0000013F
bl sub_080A3268
pop {r4, r5, pc}
.align 2, 0
_08019578: .4byte gUnk_080B43FC
_0801957C: .4byte 0x0000013F
thumb_func_start sub_08019580
sub_08019580: @ 0x08019580
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x6c]
subs r0, #1
str r0, [r4, #0x6c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _08019638
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080195B0
adds r0, r4, #0
bl sub_0800451C
_080195B0:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0801962C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _08019630 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _08019602
ldr r1, _08019634 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _08019602
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFX
bl sub_0805E780
_08019602:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _0801961A
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFX
bl sub_0805E780
_0801961A:
adds r0, r4, #0
movs r1, #0xc
bl sub_08008790
cmp r0, #0
beq _0801963C
bl sub_0805E780
b _0801963C
.align 2, 0
_0801962C: .4byte gUnk_03000BF0
_08019630: .4byte gLinkEntity
_08019634: .4byte gUnk_08003E44
_08019638:
bl sub_0805E780
_0801963C:
adds r0, r4, #0
bl sub_08019644
pop {r4, r5, pc}
thumb_func_start sub_08019644
sub_08019644: @ 0x08019644
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x74]
subs r1, r0, #1
str r1, [r2, #0x74]
cmp r1, #0
bne _08019674
movs r0, #2
str r0, [r2, #0x74]
ldr r0, [r2, #0x70]
adds r0, #1
str r0, [r2, #0x70]
ldr r3, _08019678 @ =gUnk_080B4400
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #0xff
bne _08019668
str r1, [r2, #0x70]
_08019668:
ldr r0, [r2, #0x70]
adds r0, r0, r3
ldrb r1, [r0]
adds r0, r2, #0
bl sub_0801D2B4
_08019674:
pop {pc}
.align 2, 0
_08019678: .4byte gUnk_080B4400
thumb_func_start sub_0801967C
sub_0801967C: @ 0x0801967C
push {lr}
ldr r1, _08019690 @ =gUnk_080B4458
ldr r0, _08019694 @ =gUnk_02000080
ldrb r0, [r0, #6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_08019690: .4byte gUnk_080B4458
_08019694: .4byte gUnk_02000080
thumb_func_start sub_08019698
sub_08019698: @ 0x08019698
push {r4, r5, lr}
ldr r0, _08019724 @ =gUnk_02032EC0
ldrb r1, [r0, #3]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #1
ldr r1, _08019728 @ =gUnk_080B4410
adds r4, r0, r1
movs r0, #0x80
lsls r0, r0, #1
ldrh r1, [r4, #4]
bl sub_0807CC9C
ldrh r0, [r4]
ldrh r1, [r4, #2]
bl sub_08052FD8
ldr r5, _0801972C @ =gUnk_03000BF0
ldrh r0, [r4, #6]
ldrh r1, [r5, #0xa]
adds r0, r0, r1
strh r0, [r5, #0xa]
ldrh r0, [r4, #8]
ldrh r2, [r5, #0xc]
adds r0, r0, r2
strh r0, [r5, #0xc]
ldr r1, _08019730 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
bl sub_08000108
ldr r2, _08019734 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _08019738 @ =0x0000FEFF
ands r0, r1
strh r0, [r2]
movs r0, #0x2c
movs r1, #0
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019700
ldrh r0, [r4, #0xa]
ldrh r2, [r5, #0xa]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldrh r0, [r4, #0xc]
ldrh r5, [r5, #0xc]
adds r0, r0, r5
strh r0, [r1, #0x32]
_08019700:
movs r0, #0x11
bl sub_0801D7EC
bl sub_080AD90C
bl sub_080AD9B0
bl sub_080AD918
movs r0, #4
movs r1, #8
bl sub_08050054
ldr r1, _0801973C @ =gUnk_02018EB0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
pop {r4, r5, pc}
.align 2, 0
_08019724: .4byte gUnk_02032EC0
_08019728: .4byte gUnk_080B4410
_0801972C: .4byte gUnk_03000BF0
_08019730: .4byte gUnk_02000070
_08019734: .4byte gUnk_03000F50
_08019738: .4byte 0x0000FEFF
_0801973C: .4byte gUnk_02018EB0
thumb_func_start sub_08019740
sub_08019740: @ 0x08019740
push {lr}
ldr r0, _0801975C @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _08019758
ldr r0, _08019760 @ =gUnk_02018EB0
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
movs r1, #0xc3
lsls r1, r1, #1
strh r1, [r0, #4]
_08019758:
pop {pc}
.align 2, 0
_0801975C: .4byte gUnk_03000FD0
_08019760: .4byte gUnk_02018EB0
thumb_func_start sub_08019764
sub_08019764: @ 0x08019764
push {lr}
bl sub_080AD90C
bl sub_0805E5C0
bl sub_080AD9B0
bl sub_080AD918
ldr r2, _08019798 @ =gUnk_02018EB0
ldrh r0, [r2, #4]
subs r0, #1
strh r0, [r2, #4]
lsls r0, r0, #0x10
cmp r0, #0
beq _08019790
ldr r0, _0801979C @ =gUnk_03000FF0
ldrh r1, [r0, #2]
movs r0, #0xa
ands r0, r1
cmp r0, #0
beq _08019796
_08019790:
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_08019796:
pop {pc}
.align 2, 0
_08019798: .4byte gUnk_02018EB0
_0801979C: .4byte gUnk_03000FF0
thumb_func_start sub_080197A0
sub_080197A0: @ 0x080197A0
push {lr}
movs r0, #2
movs r1, #0xb
bl sub_080A7138
pop {pc}
thumb_func_start sub_080197AC
sub_080197AC: @ 0x080197AC
ldr r0, _080197C4 @ =gUnk_02025EB0
ldr r1, _080197C8 @ =gUnk_03000F70
str r1, [r0]
ldr r2, _080197CC @ =gUnk_080B77C0
ldrh r0, [r2]
strh r0, [r1]
ldr r0, _080197D0 @ =gUnk_0200B650
subs r1, #0xc
str r1, [r0]
ldrh r0, [r2, #2]
strh r0, [r1]
bx lr
.align 2, 0
_080197C4: .4byte gUnk_02025EB0
_080197C8: .4byte gUnk_03000F70
_080197CC: .4byte gUnk_080B77C0
_080197D0: .4byte gUnk_0200B650
thumb_func_start sub_080197D4
sub_080197D4: @ 0x080197D4
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0x80
lsls r5, r5, #0x18
_080197DC:
ldr r3, [r4, #4]
cmp r3, #0
beq _08019824
ldr r1, [r4]
ldr r0, _08019808 @ =0x7FFFFFFF
ands r1, r0
ldr r0, _0801980C @ =gUnk_08324AE4
adds r1, r1, r0
ldr r2, [r4, #8]
adds r0, r2, #0
ands r0, r5
cmp r0, #0
beq _0801981A
lsrs r0, r3, #0x18
cmp r0, #6
bne _08019810
adds r0, r1, #0
adds r1, r3, #0
bl LZ77UnCompVram
b _0801982E
.align 2, 0
_08019808: .4byte 0x7FFFFFFF
_0801980C: .4byte gUnk_08324AE4
_08019810:
adds r0, r1, #0
adds r1, r3, #0
bl LZ77UnCompWram
b _0801982E
_0801981A:
adds r0, r1, #0
adds r1, r3, #0
bl sub_0801D66C
b _0801982E
_08019824:
ldrh r0, [r4]
bl sub_0801D714
bl sub_080533CC
_0801982E:
adds r4, #0xc
adds r0, r4, #0
subs r0, #0xc
ldr r0, [r0]
ands r0, r5
cmp r0, #0
bne _080197DC
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08019840
sub_08019840: @ 0x08019840
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _0801985C @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0xa8
ldrb r1, [r2]
adds r7, r0, #0
cmp r1, #0
bne _08019860
adds r0, #0xa9
ldrb r0, [r0]
b _08019862
.align 2, 0
_0801985C: .4byte gUnk_03003F80
_08019860:
ldrb r0, [r2]
_08019862:
cmp r0, #0x12
bne _0801986A
bl _0801A2A4
_0801986A:
cmp r0, #0x12
bgt _08019878
cmp r0, #3
bne _08019876
bl _0801A2A4
_08019876:
b _08019880
_08019878:
cmp r0, #0x16
bne _08019880
bl _0801A2A4
_08019880:
ldrb r0, [r7, #0x1e]
ldr r1, _08019898 @ =gLinkEntity
mov sb, r1
cmp r0, #0
bne _08019890
ldrb r0, [r1, #0xc]
cmp r0, #0x1d
bne _0801989C
_08019890:
mov r2, sb
ldrb r4, [r2, #0x15]
b _0801989E
.align 2, 0
_08019898: .4byte gLinkEntity
_0801989C:
ldrb r4, [r7, #0xd]
_0801989E:
movs r0, #0x83
ands r0, r4
cmp r0, #0
bne _0801997C
ldrb r0, [r7, #0xa]
cmp r0, #0
bne _0801997C
lsrs r1, r4, #2
mov r0, sb
bl sub_0807BDB8
adds r4, r0, #0
cmp r4, #0xff
beq _0801997C
ldr r5, _08019960 @ =gUnk_03000BF0
ldrb r1, [r5, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0801997C
lsls r1, r4, #2
ldr r0, _08019964 @ =gUnk_080B4490
adds r6, r1, r0
mov r3, sb
movs r1, #0x2e
ldrsh r0, [r3, r1]
movs r2, #0
ldrsh r1, [r6, r2]
adds r0, r0, r1
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
mov r1, sb
movs r2, #0x32
ldrsh r1, [r1, r2]
mov r8, r1
movs r1, #2
ldrsh r6, [r6, r1]
mov r2, r8
adds r1, r2, r6
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, sb
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002E0
cmp r0, #0xff
bne _0801997C
ldr r0, [r7, #0x30]
ldr r1, _08019968 @ =0x00010002
ands r0, r1
cmp r0, #0
bne _0801995A
ldrb r1, [r7, #0x1b]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0801995A
mov r3, sb
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldrh r1, [r5, #6]
subs r0, r0, r1
movs r2, #0x32
ldrsh r1, [r3, r2]
ldrh r2, [r5, #8]
subs r1, r1, r2
adds r2, r4, #0
movs r3, #5
bl sub_080806BC
cmp r0, #0
bne _0801996C
ldrb r0, [r7, #5]
cmp r0, #0
bne _0801995A
ldrb r1, [r7, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _0801995A
mov r0, sb
adds r1, r4, #0
bl sub_0807BD14
cmp r0, #0
bne _0801996C
_0801995A:
movs r0, #3
bl _0801A2A6
.align 2, 0
_08019960: .4byte gUnk_03000BF0
_08019964: .4byte gUnk_080B4490
_08019968: .4byte 0x00010002
_0801996C:
ldr r1, _08019978 @ =gLinkEntity
lsls r0, r4, #3
strb r0, [r1, #0x15]
movs r0, #0xf
bl _0801A2A6
.align 2, 0
_08019978: .4byte gLinkEntity
_0801997C:
ldr r4, _080199DC @ =gLinkEntity
adds r5, r4, #0
adds r5, #0x38
ldrb r0, [r5]
bl sub_0808094C
mov r8, r0
ldrb r1, [r4, #0x14]
movs r0, #6
ands r0, r1
lsls r0, r0, #1
ldr r1, _080199E0 @ =gUnk_080B4468
adds r6, r0, r1
movs r3, #0x2e
ldrsh r0, [r4, r3]
movs r2, #0
ldrsh r1, [r6, r2]
adds r0, r0, r1
ldr r3, _080199E4 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r7, r0, #4
movs r2, #0x3f
ands r7, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
movs r4, #2
ldrsh r1, [r6, r4]
adds r0, r0, r1
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r7, r0
ldrb r1, [r5]
adds r0, r7, #0
bl sub_080002B0
adds r6, r0, #0
ldr r0, _080199E8 @ =0x00003FFF
cmp r6, r0
bhi _080199EC
adds r0, r6, #0
bl sub_080002E4
adds r4, r0, #0
b _080199EE
.align 2, 0
_080199DC: .4byte gLinkEntity
_080199E0: .4byte gUnk_080B4468
_080199E4: .4byte gUnk_03000BF0
_080199E8: .4byte 0x00003FFF
_080199EC:
adds r4, r6, #0
_080199EE:
ldr r5, _08019A28 @ =gLinkEntity
ldrb r1, [r5, #0x14]
adds r3, r1, #0
ldr r0, _08019A2C @ =0x00004036
mov sb, r5
cmp r4, r0
bne _080199FE
b _08019F0C
_080199FE:
cmp r4, r0
bhi _08019AE0
cmp r4, #0x71
bne _08019A08
b _08019D94
_08019A08:
cmp r4, #0x71
bhi _08019A4E
cmp r4, #0x3a
bne _08019A12
b _08019CFC
_08019A12:
cmp r4, #0x3a
bhi _08019A30
cmp r4, #0x1a
bne _08019A1C
b _08019D48
_08019A1C:
cmp r4, #0x28
bne _08019A22
b _08019BB8
_08019A22:
bl _0801A2A4
.align 2, 0
_08019A28: .4byte gLinkEntity
_08019A2C: .4byte 0x00004036
_08019A30:
cmp r4, #0x5b
bne _08019A36
b _08019CFC
_08019A36:
cmp r4, #0x5b
bhi _08019A44
cmp r4, #0x3d
bne _08019A40
b _08019DD4
_08019A40:
bl _0801A2A4
_08019A44:
cmp r4, #0x70
bne _08019A4A
b _08019CC0
_08019A4A:
bl _0801A2A4
_08019A4E:
ldr r0, _08019A6C @ =0x0000400B
cmp r4, r0
bne _08019A56
b _08019E44
_08019A56:
cmp r4, r0
bhi _08019A70
cmp r4, #0x72
bne _08019A60
b _08019FA8
_08019A60:
subs r0, #0xb
cmp r4, r0
bne _08019A68
b _08019B78
_08019A68:
bl _0801A2A4
.align 2, 0
_08019A6C: .4byte 0x0000400B
_08019A70:
ldr r0, _08019AD4 @ =0x0000401B
cmp r4, r0
bne _08019A78
b _08019C70
_08019A78:
cmp r4, r0
bhs _08019A80
bl _0801A2A4
_08019A80:
adds r0, #0x12
cmp r4, r0
bls _08019A8A
bl _0801A2A4
_08019A8A:
subs r0, #2
cmp r4, r0
bhs _08019A94
bl _0801A2A4
_08019A94:
mov r0, r8
adds r1, r7, #0
bl sub_0801A370
cmp r0, #0
bne _08019AA4
bl _0801A2A4
_08019AA4:
lsls r0, r7, #1
mov r2, r8
adds r2, #4
adds r2, r2, r0
ldrb r1, [r5, #0x14]
movs r0, #4
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x1a
ldr r3, _08019AD8 @ =0x00004030
adds r1, r3, #0
adds r0, r0, r1
strh r0, [r2]
ldr r2, _08019ADC @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #0x80
ands r1, r0
adds r7, r2, #0
mov sb, r5
cmp r1, #0
bne _08019AD0
b _0801A09A
_08019AD0:
b _0801A094
.align 2, 0
_08019AD4: .4byte 0x0000401B
_08019AD8: .4byte 0x00004030
_08019ADC: .4byte gUnk_03003F80
_08019AE0:
ldr r0, _08019B04 @ =0x00004053
cmp r4, r0
bne _08019AE8
b _0801A13C
_08019AE8:
cmp r4, r0
bhi _08019B24
subs r0, #0xb
cmp r4, r0
bhi _08019B08
subs r0, #8
cmp r4, r0
blo _08019AFA
b _08019DD4
_08019AFA:
subs r0, #2
cmp r4, r0
bne _08019B02
b _08019F50
_08019B02:
b _0801A2A4
.align 2, 0
_08019B04: .4byte 0x00004053
_08019B08:
ldr r0, _08019B20 @ =0x00004051
cmp r4, r0
bne _08019B10
b _08019CFC
_08019B10:
cmp r4, r0
bls _08019B16
b _0801A120
_08019B16:
subs r0, #7
cmp r4, r0
bne _08019B1E
b _0801A0BC
_08019B1E:
b _0801A2A4
.align 2, 0
_08019B20: .4byte 0x00004051
_08019B24:
ldr r0, _08019B48 @ =0x00004058
cmp r4, r0
bne _08019B2C
b _0801A19A
_08019B2C:
cmp r4, r0
bhi _08019B4C
subs r0, #2
cmp r4, r0
bne _08019B38
b _0801A15A
_08019B38:
cmp r4, r0
bls _08019B3E
b _0801A198
_08019B3E:
subs r0, #1
cmp r4, r0
bne _08019B46
b _0801A158
_08019B46:
b _0801A2A4
.align 2, 0
_08019B48: .4byte 0x00004058
_08019B4C:
ldr r0, _08019B64 @ =0x0000405F
cmp r4, r0
bne _08019B54
b _0801A1D4
_08019B54:
cmp r4, r0
bhi _08019B68
subs r0, #5
cmp r4, r0
bne _08019B60
b _08019EC8
_08019B60:
b _0801A2A4
.align 2, 0
_08019B64: .4byte 0x0000405F
_08019B68:
ldr r0, _08019B74 @ =0x0000407D
cmp r4, r0
bne _08019B70
b _0801A23C
_08019B70:
b _0801A2A4
.align 2, 0
_08019B74: .4byte 0x0000407D
_08019B78:
mov r0, r8
adds r1, r7, #0
movs r2, #2
bl sub_0801A458
cmp r0, #0
bne _08019B88
b _0801A2A4
_08019B88:
lsls r0, r7, #1
mov r1, r8
adds r1, #4
adds r1, r1, r0
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r4, _08019BB0 @ =0x00004001
adds r0, r0, r4
strh r0, [r1]
ldr r2, _08019BB4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
adds r7, r2, #0
cmp r0, #0
bne _08019BAA
b _0801A0F8
_08019BAA:
movs r0, #0xc0
b _0801A0FA
.align 2, 0
_08019BB0: .4byte 0x00004001
_08019BB4: .4byte gUnk_03003F80
_08019BB8:
ldr r1, _08019C50 @ =gUnk_03003F80
ldr r0, [r1, #0x30]
movs r2, #0x80
ands r0, r2
cmp r0, #0
beq _08019BC6
b _0801A2A4
_08019BC6:
ldrb r0, [r1, #0xa]
cmp r0, #0
beq _08019BCE
b _0801A2A4
_08019BCE:
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
ldrb r1, [r1, #0xd]
cmp r0, r1
beq _08019BDA
b _0801A2A4
_08019BDA:
ldrb r1, [r5, #0x15]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08019BE6
b _0801A2A4
_08019BE6:
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r7, #0
bl sub_080002E0
cmp r0, #0xf
beq _08019BF8
b _0801A2A4
_08019BF8:
bl sub_08079778
cmp r0, #0
bne _08019C02
b _0801A2A4
_08019C02:
ldrb r1, [r5, #0x14]
movs r0, #6
ands r0, r1
lsls r0, r0, #1
ldr r1, _08019C54 @ =gUnk_080B4478
adds r6, r0, r1
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r4, _08019C58 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
movs r2, #0
ldrsh r1, [r6, r2]
adds r0, r0, r1
movs r3, #0x32
ldrsh r1, [r5, r3]
ldrh r2, [r4, #8]
subs r1, r1, r2
movs r3, #2
ldrsh r2, [r6, r3]
adds r1, r1, r2
bl sub_08080734
adds r2, r0, #0
cmp r2, #0
bne _08019C38
b _0801A2A4
_08019C38:
ldrb r1, [r5, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08019C5C
ldrh r0, [r2, #4]
ldrh r4, [r4, #8]
adds r0, r0, r4
adds r0, #6
strh r0, [r5, #0x32]
b _08019C64
.align 2, 0
_08019C50: .4byte gUnk_03003F80
_08019C54: .4byte gUnk_080B4478
_08019C58: .4byte gUnk_03000BF0
_08019C5C:
ldrh r0, [r2, #2]
ldrh r4, [r4, #6]
adds r0, r0, r4
strh r0, [r5, #0x2e]
_08019C64:
movs r0, #4
movs r1, #0
movs r2, #1
bl sub_08078AC0
b _0801A2A4
_08019C70:
mov r0, r8
adds r1, r7, #0
movs r2, #0xb
bl sub_0801A2B0
cmp r0, #0
bne _08019C80
b _0801A2A4
_08019C80:
lsls r0, r7, #1
mov r1, r8
adds r1, #4
adds r1, r1, r0
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r4, _08019CB8 @ =0x0000401C
adds r0, r0, r4
movs r3, #0
strh r0, [r1]
ldr r1, _08019CBC @ =gUnk_03003F80
movs r0, #0xa0
strb r0, [r1, #6]
movs r0, #5
strb r0, [r1, #0xc]
ldr r0, [r1, #0x30]
movs r2, #1
orrs r0, r2
str r0, [r1, #0x30]
strh r3, [r5, #0x2c]
strh r3, [r5, #0x30]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
strb r2, [r5, #0xa]
movs r0, #1
b _0801A2A6
.align 2, 0
_08019CB8: .4byte 0x0000401C
_08019CBC: .4byte gUnk_03003F80
_08019CC0:
ldr r0, _08019CF8 @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0x35
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08019CD2
b _0801A2A4
_08019CD2:
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08019CE2
b _0801A2A4
_08019CE2:
ldrb r0, [r2]
lsls r0, r0, #2
adds r1, r6, #0
adds r2, r7, #0
bl sub_0801A9F0
cmp r0, #0
bne _08019CF4
b _0801A2A4
_08019CF4:
movs r0, #1
b _0801A2A6
.align 2, 0
_08019CF8: .4byte gUnk_03003F80
_08019CFC:
ldr r2, _08019D40 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08019D0A
b _0801A2A4
_08019D0A:
mov r1, sb
ldrb r0, [r1, #0x14]
cmp r0, #0
beq _08019D14
b _0801A2A4
_08019D14:
ldr r0, _08019D44 @ =gUnk_0200AF00
adds r0, #0x2d
movs r1, #4
strb r1, [r0]
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _08019D2C
b _0801A2A4
_08019D2C:
movs r0, #1
strb r0, [r2, #0x1a]
mov r0, sb
adds r0, #0x38
ldrb r1, [r0]
adds r0, r7, #0
bl sub_080A7CFC
movs r0, #1
b _0801A2A6
.align 2, 0
_08019D40: .4byte gUnk_03003F80
_08019D44: .4byte gUnk_0200AF00
_08019D48:
cmp r3, #0
beq _08019D4E
b _0801A2A4
_08019D4E:
ldr r2, _08019D8C @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x81
lsls r1, r1, #7
ands r0, r1
cmp r0, #0
beq _08019D5E
b _0801A2A4
_08019D5E:
ldr r0, _08019D90 @ =gUnk_0200AF00
adds r0, #0x2d
movs r1, #6
strb r1, [r0]
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x88
ands r0, r1
cmp r0, #0
bne _08019D76
b _0801A2A4
_08019D76:
movs r0, #1
strb r0, [r2, #0x1a]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r7, #0
bl sub_080A7C8C
movs r0, #2
b _0801A2A6
.align 2, 0
_08019D8C: .4byte gUnk_03003F80
_08019D90: .4byte gUnk_0200AF00
_08019D94:
bl sub_08052734
cmp r0, #0
bne _08019D9E
b _0801A2A4
_08019D9E:
ldr r0, _08019DCC @ =gUnk_0200AF00
adds r0, #0x2d
movs r1, #6
strb r1, [r0]
ldr r2, _08019DD0 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x88
ands r0, r1
cmp r0, #0
bne _08019DB8
b _0801A2A4
_08019DB8:
movs r0, #1
strb r0, [r2, #0x1a]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r7, #0
bl sub_0804B388
movs r0, #2
b _0801A2A6
.align 2, 0
_08019DCC: .4byte gUnk_0200AF00
_08019DD0: .4byte gUnk_03003F80
_08019DD4:
ldr r4, _08019E3C @ =gUnk_03003F80
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #7
ands r0, r1
cmp r0, #0
beq _08019DE4
b _0801A2A4
_08019DE4:
bl sub_08079778
cmp r0, #0
bne _08019DEE
b _0801A2A4
_08019DEE:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08019DF6
b _0801A2A4
_08019DF6:
ldr r2, _08019E40 @ =gLinkEntity
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
ldrb r3, [r4, #0xd]
cmp r0, r3
beq _08019E04
b _0801A2A4
_08019E04:
ldrb r1, [r2, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08019E10
b _0801A2A4
_08019E10:
ldrb r0, [r2, #0xf]
cmp r0, #5
bhi _08019E18
b _0801A2A4
_08019E18:
movs r0, #0x81
strb r0, [r4, #2]
ldr r0, [r4, #0x30]
movs r1, #0x20
orrs r0, r1
str r0, [r4, #0x30]
movs r0, #0x15
strb r0, [r4, #0xc]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r2, #0x20]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
movs r0, #1
b _0801A2A6
.align 2, 0
_08019E3C: .4byte gUnk_03003F80
_08019E40: .4byte gLinkEntity
_08019E44:
mov r0, r8
adds r1, r7, #0
movs r2, #8
bl sub_0801A2B0
cmp r0, #0
bne _08019E54
b _0801A2A4
_08019E54:
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
lsls r1, r7, #1
cmp r0, #3
bne _08019E84
ldr r0, _08019E7C @ =gUnk_0200B650
adds r0, #4
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, r4
bne _08019E84
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r4, _08019E80 @ =0x0000400C
adds r0, r0, r4
strh r0, [r2]
mov sb, r5
b _08019E98
.align 2, 0
_08019E7C: .4byte gUnk_0200B650
_08019E80: .4byte 0x0000400C
_08019E84:
mov r0, r8
adds r0, #4
adds r0, r0, r1
ldr r2, _08019EBC @ =gLinkEntity
ldrb r1, [r2, #0x14]
lsrs r1, r1, #1
ldr r3, _08019EC0 @ =0x0000400C
adds r1, r1, r3
strh r1, [r0]
mov sb, r2
_08019E98:
ldr r2, _08019EC4 @ =gUnk_03003F80
movs r3, #0
movs r0, #0xa0
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
mov r4, sb
strh r3, [r4, #0x2c]
strh r3, [r4, #0x30]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #1
b _0801A2A6
.align 2, 0
_08019EBC: .4byte gLinkEntity
_08019EC0: .4byte 0x0000400C
_08019EC4: .4byte gUnk_03003F80
_08019EC8:
mov r0, r8
adds r1, r7, #0
movs r2, #2
bl sub_0801A2B0
cmp r0, #0
bne _08019ED8
b _0801A2A4
_08019ED8:
lsls r0, r7, #1
mov r1, r8
adds r1, #4
adds r1, r1, r0
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r2, _08019F04 @ =0x0000405B
adds r0, r0, r2
movs r3, #0
strh r0, [r1]
ldr r2, _08019F08 @ =gUnk_03003F80
movs r0, #0x98
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
strh r3, [r5, #0x2c]
strh r3, [r5, #0x30]
b _0801A228
.align 2, 0
_08019F04: .4byte 0x0000405B
_08019F08: .4byte gUnk_03003F80
_08019F0C:
mov r0, r8
adds r1, r7, #0
movs r2, #0xb
bl sub_0801A2B0
cmp r0, #0
bne _08019F1C
b _0801A2A4
_08019F1C:
lsls r0, r7, #1
mov r1, r8
adds r1, #4
adds r1, r1, r0
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r3, _08019F48 @ =0x00004037
adds r0, r0, r3
movs r3, #0
strh r0, [r1]
ldr r2, _08019F4C @ =gUnk_03003F80
movs r0, #0xa0
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
strh r3, [r5, #0x2c]
strh r3, [r5, #0x30]
b _0801A228
.align 2, 0
_08019F48: .4byte 0x00004037
_08019F4C: .4byte gUnk_03003F80
_08019F50:
cmp r3, #0
beq _08019F56
b _0801A2A4
_08019F56:
ldr r2, _08019FA0 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
ldrb r1, [r2, #0xd]
orrs r0, r1
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08019F6C
b _0801A2A4
_08019F6C:
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08019F7C
b _0801A2A4
_08019F7C:
lsls r1, r7, #1
mov r0, r8
adds r0, #4
adds r0, r0, r1
ldr r1, _08019FA4 @ =0x0000403F
strh r1, [r0]
movs r0, #0x82
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
strh r3, [r5, #0x2c]
strh r3, [r5, #0x30]
b _0801A228
.align 2, 0
_08019FA0: .4byte gUnk_03003F80
_08019FA4: .4byte 0x0000403F
_08019FA8:
ldr r0, _0801A07C @ =gUnk_03003F80
adds r0, #0x35
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08019FB8
b _0801A2A4
_08019FB8:
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08019FC8
b _0801A2A4
_08019FC8:
adds r0, r5, #0
movs r1, #1
bl sub_0801A570
adds r7, r0, #0
ldr r0, _0801A080 @ =0x0000FFFF
cmp r7, r0
bne _08019FDA
b _0801A2A4
_08019FDA:
lsrs r0, r7, #0xc
subs r0, #1
mov r8, r0
ldr r0, _0801A084 @ =0x00000FFF
ands r7, r0
movs r4, #0
movs r6, #0
ldr r5, _0801A088 @ =gUnk_03004040
mov sb, r5
_08019FEC:
mov r1, sb
ldr r0, [r1]
movs r1, #1
lsls r1, r4
ldr r0, [r0, #0x6c]
ands r0, r1
cmp r0, #0
beq _0801A00A
ldr r0, [r5]
movs r1, #0
bl sub_0801A570
cmp r0, r7
bne _0801A00A
adds r6, #1
_0801A00A:
adds r5, #4
adds r4, #1
cmp r4, #2
bls _08019FEC
cmp r6, r8
bhs _0801A018
b _0801A2A4
_0801A018:
movs r0, #7
mov r1, r8
movs r2, #0
bl CreateObject
adds r5, r0, #0
cmp r5, #0
bne _0801A02A
b _0801A2A4
_0801A02A:
ldr r3, _0801A08C @ =gLinkEntity
ldrb r0, [r3, #0x14]
lsls r0, r0, #2
movs r4, #0
strb r0, [r5, #0x15]
movs r1, #0x3f
adds r0, r7, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0801A090 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r5, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r7
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r2, #8]
adds r1, r1, r0
strh r1, [r5, #0x32]
adds r0, r3, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x38
strb r1, [r0]
ldr r2, _0801A07C @ =gUnk_03003F80
movs r0, #0xa0
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
strh r4, [r3, #0x2c]
strh r4, [r3, #0x30]
ldrb r0, [r5, #0x15]
b _0801A0B6
.align 2, 0
_0801A07C: .4byte gUnk_03003F80
_0801A080: .4byte 0x0000FFFF
_0801A084: .4byte 0x00000FFF
_0801A088: .4byte gUnk_03004040
_0801A08C: .4byte gLinkEntity
_0801A090: .4byte gUnk_03000BF0
_0801A094:
movs r0, #0xa0
strb r0, [r2, #6]
b _0801A09E
_0801A09A:
movs r0, #0x90
strb r0, [r7, #6]
_0801A09E:
movs r2, #0
movs r0, #5
strb r0, [r7, #0xc]
ldr r0, [r7, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r7, #0x30]
mov r3, sb
strh r2, [r3, #0x2c]
strh r2, [r3, #0x30]
ldrb r0, [r3, #0x14]
lsls r0, r0, #2
_0801A0B6:
strb r0, [r3, #0x15]
movs r0, #1
b _0801A2A6
_0801A0BC:
mov r0, r8
adds r1, r7, #0
movs r2, #8
bl sub_0801A458
cmp r0, #0
bne _0801A0CC
b _0801A2A4
_0801A0CC:
lsls r0, r7, #1
mov r1, r8
adds r1, #4
adds r1, r1, r0
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
ldr r4, _0801A0F0 @ =0x0000404B
adds r0, r0, r4
strh r0, [r1]
ldr r2, _0801A0F4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
adds r7, r2, #0
cmp r0, #0
beq _0801A0F8
movs r0, #0xc0
b _0801A0FA
.align 2, 0
_0801A0F0: .4byte 0x0000404B
_0801A0F4: .4byte gUnk_03003F80
_0801A0F8:
movs r0, #0xa0
_0801A0FA:
strb r0, [r7, #6]
movs r2, #0
movs r0, #5
strb r0, [r7, #0xc]
ldr r0, [r7, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r7, #0x30]
ldr r1, _0801A11C @ =gLinkEntity
strh r2, [r1, #0x2c]
strh r2, [r1, #0x30]
ldrb r0, [r1, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
movs r0, #1
b _0801A2A6
.align 2, 0
_0801A11C: .4byte gLinkEntity
_0801A120:
ldr r0, _0801A134 @ =gUnk_03003F80
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #0
beq _0801A12C
b _0801A2A4
_0801A12C:
ldr r0, _0801A138 @ =0x00004054
adds r1, r5, #0
b _0801A28C
.align 2, 0
_0801A134: .4byte gUnk_03003F80
_0801A138: .4byte 0x00004054
_0801A13C:
ldr r0, _0801A150 @ =gUnk_03003F80
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #6
beq _0801A148
b _0801A2A4
_0801A148:
ldr r0, _0801A154 @ =0x00004054
adds r1, r5, #0
b _0801A28C
.align 2, 0
_0801A150: .4byte gUnk_03003F80
_0801A154: .4byte 0x00004054
_0801A158:
subs r7, #1
_0801A15A:
ldr r0, _0801A190 @ =gUnk_03003F80
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #0
beq _0801A166
b _0801A2A4
_0801A166:
mov r0, sb
ldrh r1, [r0, #0x32]
movs r0, #0xf
ands r0, r1
cmp r0, #9
bgt _0801A174
b _0801A2A4
_0801A174:
movs r4, #0
ldr r5, _0801A194 @ =gUnk_03004040
_0801A178:
ldr r0, [r5]
movs r1, #0
bl sub_0801A8D0
cmp r0, r7
bne _0801A186
b _0801A288
_0801A186:
adds r5, #4
adds r4, #1
cmp r4, #2
bls _0801A178
b _0801A2A4
.align 2, 0
_0801A190: .4byte gUnk_03003F80
_0801A194: .4byte gUnk_03004040
_0801A198:
subs r7, #0x40
_0801A19A:
ldr r0, _0801A1CC @ =gUnk_03003F80
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #6
beq _0801A1A6
b _0801A2A4
_0801A1A6:
mov r2, sb
ldrh r1, [r2, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #9
ble _0801A2A4
movs r4, #0
ldr r5, _0801A1D0 @ =gUnk_03004040
_0801A1B6:
ldr r0, [r5]
movs r1, #6
bl sub_0801A8D0
cmp r0, r7
beq _0801A288
adds r5, #4
adds r4, #1
cmp r4, #2
bls _0801A1B6
b _0801A2A4
.align 2, 0
_0801A1CC: .4byte gUnk_03003F80
_0801A1D0: .4byte gUnk_03004040
_0801A1D4:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801A2A4
ldr r6, _0801A234 @ =gUnk_03003F80
adds r0, r6, #0
adds r0, #0x35
ldrb r0, [r0]
ldrb r1, [r6, #0xd]
orrs r0, r1
movs r1, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0801A2A4
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r3, #1
mov r8, r3
mov r0, r8
ands r0, r1
cmp r0, #0
beq _0801A2A4
ldr r0, _0801A238 @ =0x00004074
adds r1, r5, #0
adds r1, #0x38
ldrb r2, [r1]
adds r1, r7, #0
bl sub_0800015E
movs r0, #0xa0
strb r0, [r6, #6]
movs r0, #5
strb r0, [r6, #0xc]
ldr r0, [r6, #0x30]
mov r1, r8
orrs r0, r1
str r0, [r6, #0x30]
strh r4, [r5, #0x2c]
strh r4, [r5, #0x30]
_0801A228:
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #1
b _0801A2A6
.align 2, 0
_0801A234: .4byte gUnk_03003F80
_0801A238: .4byte 0x00004074
_0801A23C:
cmp r3, #4
bne _0801A2A4
ldr r1, _0801A280 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
ldrb r1, [r1, #0xd]
orrs r0, r1
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0801A2A4
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801A2A4
ldr r0, _0801A284 @ =0x00004074
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
adds r1, r7, #0
bl sub_0800015E
ldrb r2, [r4]
movs r0, #0xd
adds r1, r7, #0
bl sub_080001D0
movs r0, #1
b _0801A2A6
.align 2, 0
_0801A280: .4byte gUnk_03003F80
_0801A284: .4byte 0x00004074
_0801A288:
ldr r0, _0801A29C @ =0x00004059
ldr r1, _0801A2A0 @ =gLinkEntity
_0801A28C:
adds r1, #0x38
ldrb r2, [r1]
adds r1, r7, #0
bl sub_0800015E
movs r0, #4
b _0801A2A6
.align 2, 0
_0801A29C: .4byte 0x00004059
_0801A2A0: .4byte gLinkEntity
_0801A2A4:
movs r0, #0
_0801A2A6:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0801A2B0
sub_0801A2B0: @ 0x0801A2B0
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r6, r2, #0
ldr r1, _0801A31C @ =gUnk_080B4488
ldr r2, _0801A320 @ =gLinkEntity
ldrb r0, [r2, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
ldrh r3, [r0]
ldr r1, _0801A324 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x35
ldrb r0, [r0]
ldrb r1, [r1, #0xd]
orrs r0, r1
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0801A36C
adds r0, r2, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801A36C
adds r0, r4, r3
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r2, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
bl sub_080002E4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r0, #0
cmp r0, #0x52
beq _0801A36C
cmp r0, #0x52
bgt _0801A328
cmp r0, #0x26
blt _0801A32C
cmp r0, #0x27
ble _0801A36C
cmp r0, #0x29
beq _0801A36C
b _0801A32C
.align 2, 0
_0801A31C: .4byte gUnk_080B4488
_0801A320: .4byte gLinkEntity
_0801A324: .4byte gUnk_03003F80
_0801A328:
cmp r1, #0x74
beq _0801A36C
_0801A32C:
ldr r0, _0801A364 @ =0x00002004
adds r3, r5, r0
adds r0, r3, r4
ldrb r0, [r0]
cmp r0, #0x28
beq _0801A36C
movs r1, #0x3f
ands r1, r4
ldr r0, _0801A368 @ =gUnk_03000BF0
lsls r1, r1, #4
ldrh r2, [r0, #6]
adds r1, r1, r2
lsrs r2, r4, #6
lsls r2, r2, #4
ldrh r0, [r0, #8]
adds r2, r2, r0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
lsls r2, r2, #0x10
asrs r2, r2, #0x10
adds r0, r3, #0
adds r3, r6, #0
bl sub_080AE4CC
cmp r0, #0
bne _0801A36C
movs r0, #1
b _0801A36E
.align 2, 0
_0801A364: .4byte 0x00002004
_0801A368: .4byte gUnk_03000BF0
_0801A36C:
movs r0, #0
_0801A36E:
pop {r4, r5, r6, pc}
thumb_func_start sub_0801A370
sub_0801A370: @ 0x0801A370
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r4, r1, #0
ldr r5, _0801A3C8 @ =gLinkEntity
ldrb r1, [r5, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801A44E
bl sub_0801A4F8
cmp r0, #0
beq _0801A44E
movs r0, #2
bl sub_0808094C
adds r7, r0, #0
ldr r1, _0801A3CC @ =gUnk_080B4488
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
movs r1, #0
ldrsh r6, [r0, r1]
adds r4, r4, r6
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
adds r1, r0, #0
ldr r0, _0801A3D0 @ =0x0000402B
cmp r1, r0
beq _0801A3D4
cmp r1, r0
blo _0801A3D6
adds r0, #4
cmp r1, r0
bhi _0801A3D6
_0801A3C4:
movs r0, #1
b _0801A450
.align 2, 0
_0801A3C8: .4byte gLinkEntity
_0801A3CC: .4byte gUnk_080B4488
_0801A3D0: .4byte 0x0000402B
_0801A3D4:
adds r4, r4, r6
_0801A3D6:
adds r0, r7, r4
ldr r1, _0801A40C @ =0x00001F84
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0x46
beq _0801A44E
ldr r0, _0801A410 @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
bl sub_080002E4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x52
beq _0801A44E
cmp r0, #0x52
bgt _0801A414
cmp r0, #0x26
blt _0801A418
cmp r0, #0x27
ble _0801A44E
cmp r0, #0x29
beq _0801A44E
b _0801A418
.align 2, 0
_0801A40C: .4byte 0x00001F84
_0801A410: .4byte gLinkEntity
_0801A414:
cmp r0, #0x74
beq _0801A44E
_0801A418:
ldr r0, _0801A434 @ =0x00002004
add r0, r8
adds r0, r0, r4
ldrb r0, [r0]
adds r1, r0, #0
cmp r0, #0xa
beq _0801A446
cmp r0, #0xa
bgt _0801A438
cmp r0, #0
beq _0801A3C4
cmp r0, #5
beq _0801A440
b _0801A44E
.align 2, 0
_0801A434: .4byte 0x00002004
_0801A438:
cmp r1, #0x44
beq _0801A446
cmp r1, #0x45
bne _0801A44E
_0801A440:
cmp r6, #1
bne _0801A44E
b _0801A3C4
_0801A446:
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
beq _0801A3C4
_0801A44E:
movs r0, #0
_0801A450:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0801A458
sub_0801A458: @ 0x0801A458
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
adds r5, r1, #0
mov r8, r2
ldr r0, _0801A4A4 @ =gUnk_080B4488
ldr r6, _0801A4A8 @ =gLinkEntity
ldrb r1, [r6, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #1
adds r1, r1, r0
movs r0, #0
ldrsh r4, [r1, r0]
bl sub_0801A4F8
cmp r0, #0
beq _0801A4F0
adds r4, r5, r4
adds r0, r6, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
bl sub_080002E4
cmp r0, #0x52
beq _0801A4F0
cmp r0, #0x52
bhi _0801A4AC
cmp r0, #0x26
blo _0801A4B0
cmp r0, #0x27
bls _0801A4F0
cmp r0, #0x29
beq _0801A4F0
b _0801A4B0
.align 2, 0
_0801A4A4: .4byte gUnk_080B4488
_0801A4A8: .4byte gLinkEntity
_0801A4AC:
cmp r0, #0x74
beq _0801A4F0
_0801A4B0:
ldr r2, _0801A4E8 @ =0x00002004
adds r3, r7, r2
adds r5, r3, r4
ldrb r0, [r5]
cmp r0, #0x28
beq _0801A4F0
movs r1, #0x3f
ands r1, r4
ldr r0, _0801A4EC @ =gUnk_03000BF0
lsls r1, r1, #4
ldrh r2, [r0, #6]
adds r1, r1, r2
lsrs r2, r4, #6
lsls r2, r2, #4
ldrh r0, [r0, #8]
adds r2, r2, r0
adds r0, r3, #0
mov r3, r8
bl sub_080AE4CC
cmp r0, #0
bne _0801A4F0
ldrb r0, [r5]
subs r0, #1
cmp r0, #0xe
bls _0801A4F0
movs r0, #1
b _0801A4F2
.align 2, 0
_0801A4E8: .4byte 0x00002004
_0801A4EC: .4byte gUnk_03000BF0
_0801A4F0:
movs r0, #0
_0801A4F2:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801A4F8
sub_0801A4F8: @ 0x0801A4F8
push {r4, r5, lr}
ldr r4, _0801A538 @ =gUnk_03003F80
ldr r0, [r4, #0x30]
movs r5, #0x80
ands r0, r5
cmp r0, #0
beq _0801A544
movs r0, #0x45
bl GetInventoryValue
cmp r0, #1
bne _0801A564
ldrb r1, [r4, #0xd]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _0801A564
ldr r2, _0801A53C @ =gLinkEntity
ldrb r0, [r2, #0x15]
cmp r1, r0
bne _0801A564
ldrb r0, [r2, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
ldr r1, _0801A540 @ =gUnk_080B44A0
lsrs r0, r0, #2
adds r0, r0, r1
ldrh r1, [r0]
ldrh r0, [r2, #0x2a]
b _0801A55E
.align 2, 0
_0801A538: .4byte gUnk_03003F80
_0801A53C: .4byte gLinkEntity
_0801A540: .4byte gUnk_080B44A0
_0801A544:
adds r0, r4, #0
adds r0, #0x35
ldrb r0, [r0]
ldrb r1, [r4, #0xd]
orrs r0, r1
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0801A564
ldr r0, _0801A568 @ =gLinkEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
_0801A55E:
ands r0, r1
cmp r0, #0
bne _0801A56C
_0801A564:
movs r0, #0
b _0801A56E
.align 2, 0
_0801A568: .4byte gLinkEntity
_0801A56C:
movs r0, #1
_0801A56E:
pop {r4, r5, pc}
thumb_func_start sub_0801A570
sub_0801A570: @ 0x0801A570
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
mov sl, r1
cmp r6, #0
bne _0801A58C
ldr r0, _0801A588 @ =0x0000FFFF
b _0801A8C2
.align 2, 0
_0801A588: .4byte 0x0000FFFF
_0801A58C:
adds r4, r6, #0
adds r4, #0x38
ldrb r0, [r4]
bl sub_0808094C
mov r8, r0
ldr r0, _0801A668 @ =0x00005004
add r0, r8
mov ip, r0
movs r5, #4
movs r7, #2
ldrb r0, [r6, #0x14]
lsrs r0, r0, #1
mov sb, r4
cmp r0, #1
beq _0801A678
cmp r0, #1
ble _0801A5BC
cmp r0, #2
bne _0801A5B6
b _0801A73C
_0801A5B6:
cmp r0, #3
bne _0801A5BC
b _0801A7FC
_0801A5BC:
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldr r2, _0801A66C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r3, #0x3f
ands r4, r3
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r2, #8]
adds r1, #0xa
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
mov r2, r8
adds r2, #4
movs r3, #0xdc
lsls r3, r3, #2
lsls r0, r4, #1
adds r1, r0, r2
_0801A5EA:
ldrh r0, [r1]
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
cmp r0, r3
beq _0801A600
subs r1, #2
subs r4, #1
subs r5, #1
cmp r5, #0
bne _0801A5EA
_0801A600:
subs r4, #0x40
movs r3, #0xdd
lsls r3, r3, #2
lsls r0, r4, #1
adds r1, r0, r2
_0801A60A:
ldrh r0, [r1]
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
cmp r0, r3
bne _0801A620
adds r7, #1
subs r1, #0x80
subs r4, #0x40
cmp r7, #3
bls _0801A60A
_0801A620:
mov r2, sl
cmp r2, #0
bne _0801A628
b _0801A8C0
_0801A628:
mov r0, sb
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
adds r5, r0, #0
ldr r1, _0801A670 @ =0xFFFFFC97
adds r0, r5, r1
cmp r0, #1
bls _0801A63E
b _0801A8B4
_0801A63E:
ldr r2, _0801A674 @ =0x00001FC4
adds r0, r4, r2
mov r2, r8
adds r1, r2, r0
movs r5, #0
cmp r5, r7
blo _0801A64E
b _0801A8B6
_0801A64E:
ldrb r0, [r1]
cmp r0, #0
beq _0801A656
b _0801A8B4
_0801A656:
adds r5, #1
cmp r5, r7
blo _0801A65E
b _0801A8B6
_0801A65E:
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, #0
beq _0801A656
b _0801A8B4
.align 2, 0
_0801A668: .4byte 0x00005004
_0801A66C: .4byte gUnk_03000BF0
_0801A670: .4byte 0xFFFFFC97
_0801A674: .4byte 0x00001FC4
_0801A678:
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r3, _0801A730 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r0, #0xa
subs r1, r1, r0
asrs r4, r1, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
mov r2, r8
adds r2, #4
mov r3, ip
movs r6, #0xdc
lsls r6, r6, #2
lsls r0, r4, #1
adds r1, r0, r2
_0801A6A8:
ldrh r0, [r1]
lsls r0, r0, #1
adds r0, r3, r0
ldrh r0, [r0]
cmp r0, r6
beq _0801A6BE
adds r1, #0x80
adds r4, #0x40
subs r5, #1
cmp r5, #0
bne _0801A6A8
_0801A6BE:
subs r4, #0x40
movs r3, #0xdd
lsls r3, r3, #2
lsls r0, r4, #1
adds r1, r0, r2
_0801A6C8:
ldrh r0, [r1]
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
cmp r0, r3
bne _0801A6DE
adds r7, #1
subs r1, #0x80
subs r4, #0x40
cmp r7, #3
bls _0801A6C8
_0801A6DE:
mov r2, sl
cmp r2, #0
bne _0801A6E6
b _0801A8C0
_0801A6E6:
mov r0, sb
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
adds r5, r0, #0
ldr r0, _0801A734 @ =0x00000369
cmp r5, r0
beq _0801A700
adds r0, #4
cmp r5, r0
beq _0801A700
b _0801A8B4
_0801A700:
adds r0, r4, r7
ldr r1, _0801A738 @ =0x00002004
adds r0, r0, r1
mov r2, r8
adds r1, r2, r0
movs r5, #0
cmp r5, r7
blo _0801A712
b _0801A8B6
_0801A712:
ldrb r0, [r1]
cmp r0, #0
beq _0801A71A
b _0801A8B4
_0801A71A:
adds r5, #1
cmp r5, r7
blo _0801A722
b _0801A8B6
_0801A722:
lsls r0, r5, #6
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _0801A71A
b _0801A8B4
.align 2, 0
_0801A730: .4byte gUnk_03000BF0
_0801A734: .4byte 0x00000369
_0801A738: .4byte 0x00002004
_0801A73C:
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldr r2, _0801A7E8 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r3, #0x3f
ands r4, r3
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r2, #8]
subs r1, #0xa
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
mov r2, r8
adds r2, #4
mov r3, ip
ldr r6, _0801A7EC @ =0x0000036F
lsls r0, r4, #1
adds r1, r0, r2
_0801A76A:
ldrh r0, [r1]
lsls r0, r0, #1
adds r0, r3, r0
ldrh r0, [r0]
cmp r0, r6
beq _0801A780
adds r1, #2
adds r4, #1
subs r5, #1
cmp r5, #0
bne _0801A76A
_0801A780:
subs r4, #1
ldr r3, _0801A7F0 @ =0x00000372
lsls r0, r4, #1
adds r1, r0, r2
_0801A788:
ldrh r0, [r1]
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
cmp r0, r3
bne _0801A79E
adds r7, #1
subs r1, #2
subs r4, #1
cmp r7, #3
bls _0801A788
_0801A79E:
mov r2, sl
cmp r2, #0
bne _0801A7A6
b _0801A8C0
_0801A7A6:
mov r0, sb
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
adds r5, r0, #0
ldr r0, _0801A7F4 @ =0x00000369
cmp r5, r0
beq _0801A7BE
adds r0, #2
cmp r5, r0
bne _0801A8B4
_0801A7BE:
lsls r0, r7, #6
adds r0, r4, r0
ldr r1, _0801A7F8 @ =0x00002004
adds r0, r0, r1
mov r2, r8
adds r1, r2, r0
movs r5, #0
cmp r5, r7
bhs _0801A8B6
ldrb r0, [r1]
cmp r0, #0
bne _0801A8B4
_0801A7D6:
adds r5, #1
cmp r5, r7
bhs _0801A8B6
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, #0
beq _0801A7D6
b _0801A8B4
.align 2, 0
_0801A7E8: .4byte gUnk_03000BF0
_0801A7EC: .4byte 0x0000036F
_0801A7F0: .4byte 0x00000372
_0801A7F4: .4byte 0x00000369
_0801A7F8: .4byte 0x00002004
_0801A7FC:
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r3, _0801A890 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
adds r0, #0xa
subs r1, r1, r0
asrs r4, r1, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
mov r2, r8
adds r2, #4
mov r3, ip
ldr r6, _0801A894 @ =0x0000036F
lsls r0, r4, #1
adds r1, r0, r2
_0801A82A:
ldrh r0, [r1]
lsls r0, r0, #1
adds r0, r3, r0
ldrh r0, [r0]
cmp r0, r6
beq _0801A840
subs r1, #0x80
subs r4, #0x40
subs r5, #1
cmp r5, #0
bne _0801A82A
_0801A840:
subs r4, #1
ldr r3, _0801A898 @ =0x00000372
lsls r0, r4, #1
adds r1, r0, r2
_0801A848:
ldrh r0, [r1]
lsls r0, r0, #1
add r0, ip
ldrh r0, [r0]
cmp r0, r3
bne _0801A85E
adds r7, #1
subs r1, #2
subs r4, #1
cmp r7, #3
bls _0801A848
_0801A85E:
mov r2, sl
cmp r2, #0
beq _0801A8C0
mov r0, sb
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080002B0
adds r5, r0, #0
ldr r0, _0801A89C @ =0x00000369
cmp r5, r0
beq _0801A87C
adds r0, #3
cmp r5, r0
bne _0801A8B4
_0801A87C:
ldr r1, _0801A8A0 @ =0x00002003
adds r0, r4, r1
mov r2, r8
adds r1, r2, r0
movs r5, #0
cmp r5, r7
bhs _0801A8B6
ldrb r0, [r1]
b _0801A8B0
.align 2, 0
_0801A890: .4byte gUnk_03000BF0
_0801A894: .4byte 0x0000036F
_0801A898: .4byte 0x00000372
_0801A89C: .4byte 0x00000369
_0801A8A0: .4byte 0x00002003
_0801A8A4:
adds r5, #1
cmp r5, r7
bhs _0801A8B6
lsls r0, r5, #6
adds r0, r0, r1
ldrb r0, [r0]
_0801A8B0:
cmp r0, #0
beq _0801A8A4
_0801A8B4:
ldr r4, _0801A8CC @ =0x0000FFFF
_0801A8B6:
mov r0, sl
cmp r0, #0
beq _0801A8C0
lsls r0, r7, #0xc
orrs r4, r0
_0801A8C0:
adds r0, r4, #0
_0801A8C2:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801A8CC: .4byte 0x0000FFFF
thumb_func_start sub_0801A8D0
sub_0801A8D0: @ 0x0801A8D0
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r4, r1, #0
cmp r5, #0
beq _0801A978
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_0808094C
adds r6, r0, #4
cmp r4, #0
bne _0801A92C
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _0801A91C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r3, #0x3f
ands r4, r3
movs r1, #0x32
ldrsh r0, [r5, r1]
ldrh r1, [r2, #8]
adds r1, #8
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
lsls r0, r4, #1
adds r0, r0, r6
ldrh r1, [r0]
ldr r0, _0801A920 @ =0x00004055
cmp r1, r0
bne _0801A924
subs r0, r4, #1
b _0801A97A
.align 2, 0
_0801A91C: .4byte gUnk_03000BF0
_0801A920: .4byte 0x00004055
_0801A924:
ldr r0, _0801A928 @ =0x00004056
b _0801A96A
.align 2, 0
_0801A928: .4byte 0x00004056
_0801A92C:
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r3, _0801A960 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
adds r0, #8
subs r1, r1, r0
asrs r4, r1, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r5, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
lsls r0, r4, #1
adds r0, r0, r6
ldrh r1, [r0]
ldr r0, _0801A964 @ =0x00004057
cmp r1, r0
bne _0801A968
adds r0, r4, #0
subs r0, #0x40
b _0801A97A
.align 2, 0
_0801A960: .4byte gUnk_03000BF0
_0801A964: .4byte 0x00004057
_0801A968:
ldr r0, _0801A974 @ =0x00004058
_0801A96A:
cmp r1, r0
bne _0801A978
adds r0, r4, #0
b _0801A97A
.align 2, 0
_0801A974: .4byte 0x00004058
_0801A978:
ldr r0, _0801A97C @ =0x0000FFFF
_0801A97A:
pop {r4, r5, r6, pc}
.align 2, 0
_0801A97C: .4byte 0x0000FFFF
thumb_func_start sub_0801A980
sub_0801A980: @ 0x0801A980
push {r4, r5, r6, r7, lr}
ldr r4, _0801A9E0 @ =gLinkEntity
adds r6, r4, #0
adds r6, #0x38
ldrb r0, [r6]
bl sub_0808094C
ldrb r0, [r4, #0x14]
movs r2, #6
ands r2, r0
lsls r2, r2, #1
ldr r0, _0801A9E4 @ =gUnk_080B44A8
adds r2, r2, r0
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r3, #0
ldrsh r1, [r2, r3]
adds r0, r0, r1
ldr r5, _0801A9E8 @ =gUnk_03000BF0
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r7, #0x32
ldrsh r1, [r4, r7]
movs r4, #2
ldrsh r2, [r2, r4]
adds r1, r1, r2
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r6]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r0, _0801A9EC @ =0x00003FFF
cmp r1, r0
bhi _0801A9DC
adds r0, r1, #0
bl sub_080002E4
_0801A9DC:
movs r0, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801A9E0: .4byte gLinkEntity
_0801A9E4: .4byte gUnk_080B44A8
_0801A9E8: .4byte gUnk_03000BF0
_0801A9EC: .4byte 0x00003FFF
thumb_func_start sub_0801A9F0
sub_0801A9F0: @ 0x0801A9F0
push {r4, r5, lr}
adds r3, r0, #0
adds r4, r2, #0
movs r2, #0
ldr r5, _0801AA0C @ =0xFFFFFCA0
adds r0, r1, r5
cmp r0, #4
bhi _0801AA40
lsls r0, r0, #2
ldr r1, _0801AA10 @ =_0801AA14
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801AA0C: .4byte 0xFFFFFCA0
_0801AA10: .4byte _0801AA14
_0801AA14: @ jump table
.4byte _0801AA44 @ case 0
.4byte _0801AA28 @ case 1
.4byte _0801AA34 @ case 2
.4byte _0801AA3A @ case 3
.4byte _0801AA2E @ case 4
_0801AA28:
cmp r3, #0
bne _0801AA40
b _0801AA44
_0801AA2E:
cmp r3, #8
bne _0801AA40
b _0801AA44
_0801AA34:
cmp r3, #0x10
bne _0801AA40
b _0801AA44
_0801AA3A:
cmp r3, #0x18
bne _0801AA40
movs r2, #1
_0801AA40:
cmp r2, #0
beq _0801AA54
_0801AA44:
ldr r0, _0801AA50 @ =gLinkEntity
adds r1, r4, #0
adds r2, r3, #0
bl sub_0801AA58
b _0801AA56
.align 2, 0
_0801AA50: .4byte gLinkEntity
_0801AA54:
movs r0, #0
_0801AA56:
pop {r4, r5, pc}
thumb_func_start sub_0801AA58
sub_0801AA58: @ 0x0801AA58
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r5, r1, #0
adds r7, r2, #0
movs r0, #0x38
adds r0, r0, r6
mov r8, r0
ldrb r0, [r0]
bl sub_0808094C
ldr r2, _0801AAF0 @ =gUnk_080B4488
lsrs r1, r7, #3
lsls r1, r1, #1
adds r1, r1, r2
movs r2, #0
ldrsh r1, [r1, r2]
adds r1, r5, r1
ldr r2, _0801AAF4 @ =0x00002004
adds r0, r0, r2
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _0801AA94
subs r0, #0x20
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1f
bhi _0801AB00
_0801AA94:
movs r0, #7
movs r1, #0
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0801AB00
movs r3, #0
strb r7, [r4, #0x15]
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0801AAF8 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r4, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r2, #8]
adds r1, r1, r0
strh r1, [r4, #0x32]
mov r0, r8
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
ldr r2, _0801AAFC @ =gUnk_03003F80
movs r0, #0xa0
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
strh r3, [r6, #0x2c]
strh r3, [r6, #0x30]
strb r7, [r6, #0x15]
movs r0, #1
b _0801AB02
.align 2, 0
_0801AAF0: .4byte gUnk_080B4488
_0801AAF4: .4byte 0x00002004
_0801AAF8: .4byte gUnk_03000BF0
_0801AAFC: .4byte gUnk_03003F80
_0801AB00:
movs r0, #0
_0801AB02:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801AB08
sub_0801AB08: @ 0x0801AB08
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r5, r0, #0
mov r8, r1
ldr r0, _0801AB4C @ =gUnk_02025EB0
movs r1, #2
cmp r8, r0
bne _0801AB22
movs r1, #1
_0801AB22:
lsls r2, r1, #0xc
ldr r7, _0801AB50 @ =0x00003004
add r7, r8
mov r6, r8
adds r6, #4
movs r0, #0
ldr r1, _0801AB54 @ =0x00003FFF
mov sb, r1
_0801AB32:
movs r3, #0
mov sl, r3
adds r0, #1
str r0, [sp]
movs r0, #0x80
lsls r0, r0, #1
adds r4, r5, r0
_0801AB40:
ldrh r0, [r6]
cmp r0, sb
bhi _0801AB58
lsls r0, r0, #2
b _0801AB64
.align 2, 0
_0801AB4C: .4byte gUnk_02025EB0
_0801AB50: .4byte 0x00003004
_0801AB54: .4byte 0x00003FFF
_0801AB58:
ldrh r1, [r7]
adds r0, r2, #0
str r2, [sp, #4]
bl sub_0801AC68
ldr r2, [sp, #4]
_0801AB64:
lsls r0, r0, #1
ldr r1, _0801AB8C @ =0x00007004
adds r0, r0, r1
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r0, [r1, #4]
strh r0, [r4]
ldrh r0, [r1, #6]
strh r0, [r4, #2]
adds r4, #4
adds r5, #4
ldrh r0, [r6, #2]
cmp r0, sb
bhi _0801AB90
lsls r0, r0, #2
b _0801AB9C
.align 2, 0
_0801AB8C: .4byte 0x00007004
_0801AB90:
adds r0, r2, #1
ldrh r1, [r7, #2]
str r2, [sp, #4]
bl sub_0801AC68
ldr r2, [sp, #4]
_0801AB9C:
lsls r0, r0, #1
ldr r1, _0801ABC4 @ =0x00007004
adds r0, r0, r1
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r0, [r1, #4]
strh r0, [r4]
ldrh r0, [r1, #6]
strh r0, [r4, #2]
adds r4, #4
adds r5, #4
ldrh r0, [r6, #4]
cmp r0, sb
bhi _0801ABC8
lsls r0, r0, #2
b _0801ABD4
.align 2, 0
_0801ABC4: .4byte 0x00007004
_0801ABC8:
adds r0, r2, #2
ldrh r1, [r7, #4]
str r2, [sp, #4]
bl sub_0801AC68
ldr r2, [sp, #4]
_0801ABD4:
lsls r0, r0, #1
ldr r1, _0801ABFC @ =0x00007004
adds r0, r0, r1
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r0, [r1, #4]
strh r0, [r4]
ldrh r0, [r1, #6]
strh r0, [r4, #2]
adds r4, #4
adds r5, #4
ldrh r0, [r6, #6]
cmp r0, sb
bhi _0801AC00
lsls r0, r0, #2
b _0801AC0C
.align 2, 0
_0801ABFC: .4byte 0x00007004
_0801AC00:
adds r0, r2, #3
ldrh r1, [r7, #6]
str r2, [sp, #4]
bl sub_0801AC68
ldr r2, [sp, #4]
_0801AC0C:
lsls r0, r0, #1
ldr r1, _0801AC64 @ =0x00007004
adds r0, r0, r1
mov r3, r8
adds r1, r3, r0
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
ldrh r0, [r1, #4]
strh r0, [r4]
ldrh r0, [r1, #6]
strh r0, [r4, #2]
adds r4, #4
adds r5, #4
adds r6, #8
adds r7, #8
adds r0, r2, #4
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
mov r0, sl
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
cmp r0, #0xf
bhi _0801AC44
b _0801AB40
_0801AC44:
movs r0, #0x80
lsls r0, r0, #1
adds r5, r5, r0
ldr r1, [sp]
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x3f
bhi _0801AC56
b _0801AB32
_0801AC56:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801AC64: .4byte 0x00007004
thumb_func_start sub_0801AC68
sub_0801AC68: @ 0x0801AC68
push {r4, r5, lr}
adds r4, r0, #0
ldr r2, _0801AC84 @ =gUnk_0200B240
ldr r0, _0801AC88 @ =gUnk_02034350
ldrh r3, [r0, #0xe]
movs r0, #0
cmp r0, r3
bhs _0801AC94
_0801AC78:
ldrh r5, [r2]
cmp r4, r5
bne _0801AC8C
ldrh r0, [r2, #2]
lsls r0, r0, #2
b _0801AC96
.align 2, 0
_0801AC84: .4byte gUnk_0200B240
_0801AC88: .4byte gUnk_02034350
_0801AC8C:
adds r2, #4
adds r0, #1
cmp r0, r3
blo _0801AC78
_0801AC94:
lsls r0, r1, #2
_0801AC96:
pop {r4, r5, pc}
thumb_func_start sub_0801AC98
sub_0801AC98: @ 0x0801AC98
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r0, _0801ACD0 @ =gUnk_03000BF0
ldrh r1, [r0, #0x1e]
lsrs r1, r1, #4
mov r8, r1
ldrh r0, [r0, #0x20]
lsrs r0, r0, #4
str r0, [sp]
movs r6, #0
movs r1, #0
cmp r1, r0
bhs _0801AD5C
_0801ACBA:
movs r0, #0
adds r1, #1
str r1, [sp, #4]
cmp r0, r8
bhs _0801AD4C
_0801ACC4:
ldr r5, _0801ACD4 @ =gUnk_080B44C0
adds r0, #1
mov sl, r0
adds r0, r6, #1
mov sb, r0
b _0801ACDA
.align 2, 0
_0801ACD0: .4byte gUnk_03000BF0
_0801ACD4: .4byte gUnk_080B44C0
_0801ACD8:
adds r5, #0xc
_0801ACDA:
ldrh r0, [r5]
ldr r1, _0801AD0C @ =0x0000FFFF
cmp r0, r1
beq _0801AD06
adds r4, r0, #0
adds r0, r6, #0
movs r1, #1
bl sub_080002B0
cmp r4, r0
bne _0801ACD8
ldrh r0, [r5, #0xa]
lsls r0, r0, #2
ldr r1, _0801AD10 @ =gUnk_080B44B8
adds r0, r0, r1
ldr r0, [r0]
cmp r0, #0
beq _0801ACD8
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801AD6C
_0801AD06:
ldr r5, _0801AD14 @ =gUnk_080B44C2
ldr r7, _0801AD0C @ =0x0000FFFF
b _0801AD1A
.align 2, 0
_0801AD0C: .4byte 0x0000FFFF
_0801AD10: .4byte gUnk_080B44B8
_0801AD14: .4byte gUnk_080B44C2
_0801AD18:
adds r5, #0xc
_0801AD1A:
ldrh r0, [r5]
cmp r0, r7
beq _0801AD44
adds r4, r0, #0
adds r0, r6, #0
movs r1, #2
bl sub_080002B0
cmp r4, r0
bne _0801AD18
ldrh r0, [r5, #0xa]
lsls r0, r0, #2
ldr r1, _0801AD68 @ =gUnk_080B44B8
adds r0, r0, r1
ldr r0, [r0]
cmp r0, #0
beq _0801AD18
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801AD6C
_0801AD44:
mov r0, sl
mov r6, sb
cmp r0, r8
blo _0801ACC4
_0801AD4C:
adds r0, r6, #0
adds r0, #0x40
mov r1, r8
subs r6, r0, r1
ldr r1, [sp, #4]
ldr r0, [sp]
cmp r1, r0
blo _0801ACBA
_0801AD5C:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801AD68: .4byte gUnk_080B44B8
thumb_func_start sub_0801AD6C
sub_0801AD6C: @ 0x0801AD6C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldrh r0, [r4, #2]
cmp r0, #9
beq _0801ADDC
bl GetEmptyEntity
adds r5, r0, #0
cmp r5, #0
beq _0801AE26
ldrh r0, [r4, #2]
strb r0, [r5, #8]
ldrh r0, [r4, #4]
strb r0, [r5, #9]
ldrh r0, [r4, #6]
strb r0, [r5, #0xa]
ldrh r0, [r4, #8]
strb r0, [r5, #0xb]
movs r1, #0x3f
adds r0, r6, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0801ADD4 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
movs r3, #0
strh r1, [r5, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r6
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r2, #8]
adds r1, r1, r0
strh r1, [r5, #0x32]
adds r0, r5, #0
adds r0, #0x38
strb r3, [r0]
adds r0, r5, #0
bl sub_08016A30
ldr r1, _0801ADD8 @ =gUnk_081091E4
ldrb r0, [r5, #8]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
bl sub_0805EA2C
b _0801AE26
.align 2, 0
_0801ADD4: .4byte gUnk_03000BF0
_0801ADD8: .4byte gUnk_081091E4
_0801ADDC:
bl sub_0805E8D4
adds r3, r0, #0
cmp r3, #0
beq _0801AE26
ldrh r0, [r4, #2]
strb r0, [r3, #8]
ldrh r0, [r4, #4]
strb r0, [r3, #9]
ldrh r0, [r4, #6]
strb r0, [r3, #0xa]
ldrh r0, [r4, #8]
strb r0, [r3, #0xb]
movs r1, #0x3f
adds r0, r6, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0801AE28 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x38]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r6
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r2, #8]
adds r1, r1, r0
strh r1, [r3, #0x3a]
ldr r1, _0801AE2C @ =gUnk_081091E4
ldrb r0, [r3, #8]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r3, #0
bl sub_0805EA2C
_0801AE26:
pop {r4, r5, r6, pc}
.align 2, 0
_0801AE28: .4byte gUnk_03000BF0
_0801AE2C: .4byte gUnk_081091E4
thumb_func_start sub_0801AE30
sub_0801AE30: @ 0x0801AE30
movs r0, #1
bx lr
thumb_func_start sub_0801AE34
sub_0801AE34: @ 0x0801AE34
ldr r0, _0801AE40 @ =gUnk_03000BF0
ldrb r0, [r0, #0xf]
lsrs r0, r0, #1
movs r1, #1
ands r0, r1
bx lr
.align 2, 0
_0801AE40: .4byte gUnk_03000BF0
thumb_func_start sub_0801AE44
sub_0801AE44: @ 0x0801AE44
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801AEE0 @ =gUnk_03000BF0
movs r0, #0
str r0, [r1, #0x34]
bl sub_0807BFD0
cmp r4, #0
beq _0801AE5A
bl sub_0807C0DC
_0801AE5A:
bl sub_080809D4
bl sub_080805F8
ldr r0, _0801AEE4 @ =gUnk_030010A0
adds r0, #0x2d
ldrb r0, [r0]
cmp r0, #0
beq _0801AE70
bl sub_0807C898
_0801AE70:
ldr r4, _0801AEE8 @ =gUnk_02033A90
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _0801AE8C
ldr r1, _0801AEEC @ =0x0600F000
movs r2, #0x80
lsls r2, r2, #4
movs r0, #0xf
bl sub_0801D5EC
movs r0, #1
rsbs r0, r0, #0
bl sub_0805BB74
_0801AE8C:
movs r0, #5
bl sub_0804B128
cmp r0, #0
beq _0801AE9A
bl _call_via_r0
_0801AE9A:
ldr r0, _0801AEF0 @ =gUnk_03004030
ldrb r0, [r0, #8]
cmp r0, #0
bne _0801AEB6
ldr r1, _0801AEF4 @ =0x0000088C
adds r0, r4, r1
ldr r1, [r0]
cmp r1, #0
beq _0801AEB6
ldr r2, _0801AEF8 @ =0x00000888
adds r0, r4, r2
ldr r0, [r0]
bl _call_via_r1
_0801AEB6:
ldr r0, _0801AEE0 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0801AF0C
ldr r1, _0801AEFC @ =gUnk_02025EB0
ldr r0, [r1]
cmp r0, #0
beq _0801AED0
ldr r0, _0801AF00 @ =gUnk_02019EE0
bl sub_0801AB08
_0801AED0:
ldr r1, _0801AF04 @ =gUnk_0200B650
ldr r0, [r1]
cmp r0, #0
beq _0801AF10
ldr r0, _0801AF08 @ =gUnk_02002F00
bl sub_0801AB08
b _0801AF10
.align 2, 0
_0801AEE0: .4byte gUnk_03000BF0
_0801AEE4: .4byte gUnk_030010A0
_0801AEE8: .4byte gUnk_02033A90
_0801AEEC: .4byte 0x0600F000
_0801AEF0: .4byte gUnk_03004030
_0801AEF4: .4byte 0x0000088C
_0801AEF8: .4byte 0x00000888
_0801AEFC: .4byte gUnk_02025EB0
_0801AF00: .4byte gUnk_02019EE0
_0801AF04: .4byte gUnk_0200B650
_0801AF08: .4byte gUnk_02002F00
_0801AF0C:
bl sub_0807C4F8
_0801AF10:
bl sub_08000108
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801AF18
sub_0801AF18: @ 0x0801AF18
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r6, r1, #0
adds r5, r2, #0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _0801AF46
adds r7, r1, #0
_0801AF2E:
ldrh r0, [r4]
movs r2, #2
ldrsh r1, [r4, r2]
adds r1, r6, r1
adds r2, r5, #0
bl sub_0800015E
adds r4, #4
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, r7
bne _0801AF2E
_0801AF46:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801AF48
sub_0801AF48: @ 0x0801AF48
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
adds r5, r2, #0
ldr r0, _0801AF7C @ =0x00003FFF
cmp r4, r0
bhi _0801AF7A
ldr r0, _0801AF80 @ =gUnk_030010A0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
bne _0801AF7A
ldr r2, _0801AF84 @ =gUnk_02034350
ldrh r3, [r2, #0xe]
cmp r3, #0xff
bhi _0801AF7A
ldr r0, _0801AF88 @ =gUnk_0200B240
lsls r1, r3, #2
adds r1, r1, r0
strh r4, [r1, #2]
lsls r0, r5, #0xc
orrs r0, r6
strh r0, [r1]
adds r0, r3, #1
strh r0, [r2, #0xe]
_0801AF7A:
pop {r4, r5, r6, pc}
.align 2, 0
_0801AF7C: .4byte 0x00003FFF
_0801AF80: .4byte gUnk_030010A0
_0801AF84: .4byte gUnk_02034350
_0801AF88: .4byte gUnk_0200B240
thumb_func_start sub_0801AF8C
sub_0801AF8C: @ 0x0801AF8C
push {r4, r5, r6, lr}
adds r4, r0, #0
lsls r1, r1, #0xc
orrs r4, r1
ldr r2, _0801AFB8 @ =gUnk_0200B240
ldr r0, _0801AFBC @ =gUnk_02034350
ldrh r1, [r0, #0xe]
movs r3, #0
adds r5, r2, #0
cmp r3, r1
bhs _0801AFE0
ldrh r6, [r2]
cmp r4, r6
bne _0801AFC0
subs r1, #1
strh r1, [r0, #0xe]
lsls r0, r1, #2
adds r0, r0, r2
ldr r0, [r0]
str r0, [r2]
b _0801AFE0
.align 2, 0
_0801AFB8: .4byte gUnk_0200B240
_0801AFBC: .4byte gUnk_02034350
_0801AFC0:
adds r2, #4
adds r3, #1
cmp r3, r1
bhs _0801AFE0
ldrh r6, [r2]
cmp r4, r6
bne _0801AFC0
subs r1, #1
strh r1, [r0, #0xe]
adds r2, r5, #0
lsls r0, r3, #2
adds r0, r0, r2
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
str r1, [r0]
_0801AFE0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801AFE4
sub_0801AFE4: @ 0x0801AFE4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r3, _0801B018 @ =gUnk_02027EB4
ldr r0, _0801B01C @ =gUnk_03000BF0
ldrh r1, [r0, #0x1e]
lsrs r1, r1, #4
mov sl, r1
ldrh r0, [r0, #0x20]
lsrs r0, r0, #4
mov sb, r0
movs r7, #0
cmp r7, sb
bhs _0801B054
_0801B004:
movs r2, #0
adds r0, r7, #1
mov r8, r0
cmp r2, sl
bhs _0801B046
_0801B00E:
ldr r1, _0801B020 @ =gUnk_080B44D0
adds r4, r3, #1
adds r5, r2, #1
b _0801B026
.align 2, 0
_0801B018: .4byte gUnk_02027EB4
_0801B01C: .4byte gUnk_03000BF0
_0801B020: .4byte gUnk_080B44D0
_0801B024:
adds r1, #4
_0801B026:
ldrh r0, [r1]
cmp r0, #0
beq _0801B03E
ldrb r6, [r3]
cmp r0, r6
bne _0801B024
ldrh r0, [r1, #2]
lsls r1, r7, #6
adds r1, r1, r2
movs r2, #1
bl sub_0800015E
_0801B03E:
adds r3, r4, #0
adds r2, r5, #0
cmp r2, sl
blo _0801B00E
_0801B046:
adds r0, r3, #0
adds r0, #0x40
mov r1, sl
subs r3, r0, r1
mov r7, r8
cmp r7, sb
blo _0801B004
_0801B054:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0801B060
sub_0801B060: @ 0x0801B060
push {r4, r5, lr}
movs r3, #0
ldr r4, _0801B0B0 @ =gUnk_02000CC0
movs r5, #8
_0801B068:
ldr r2, [r4]
cmp r2, #0
beq _0801B0C2
ldrh r1, [r4, #6]
subs r0, r1, #1
strh r0, [r4, #6]
lsls r0, r0, #0x10
cmp r0, #0
bne _0801B0BA
cmp r3, #0
bne _0801B0B8
ldr r0, _0801B0B4 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _0801B08C
ldr r0, [r2]
bl sub_0801B0EC
_0801B08C:
ldr r0, [r4]
adds r0, #4
bl sub_0801B0C4
strh r0, [r4, #6]
ldr r0, [r4]
adds r1, r0, #0
adds r1, #8
str r1, [r4]
ldr r0, [r0, #8]
cmp r0, #0
bne _0801B0AC
ldr r0, [r1, #4]
lsls r0, r0, #3
subs r0, r1, r0
str r0, [r4]
_0801B0AC:
movs r3, #1
b _0801B0BA
.align 2, 0
_0801B0B0: .4byte gUnk_02000CC0
_0801B0B4: .4byte gUnk_03000FD0
_0801B0B8:
strh r1, [r4, #6]
_0801B0BA:
adds r4, #8
subs r5, #1
cmp r5, #0
bne _0801B068
_0801B0C2:
pop {r4, r5, pc}
thumb_func_start sub_0801B0C4
sub_0801B0C4: @ 0x0801B0C4
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4]
cmp r0, #0
bge _0801B0E6
bl sub_08000E50
ldr r1, _0801B0E8 @ =gUnk_080B4550
ldrb r2, [r4]
lsls r2, r2, #2
adds r2, r2, r1
movs r1, #7
ands r1, r0
ldr r0, [r2]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
_0801B0E6:
pop {r4, pc}
.align 2, 0
_0801B0E8: .4byte gUnk_080B4550
thumb_func_start sub_0801B0EC
sub_0801B0EC: @ 0x0801B0EC
push {r4, r5, lr}
adds r4, r0, #0
_0801B0F0:
ldr r1, [r4, #4]
ldr r0, _0801B110 @ =gUnk_085A2E80
adds r5, r1, r0
ldrb r2, [r4, #2]
ldrh r3, [r4]
ldr r0, [r4]
lsrs r0, r0, #0x1c
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0801B114
lsrs r1, r3, #5
adds r0, r5, #0
bl sub_0801D754
b _0801B122
.align 2, 0
_0801B110: .4byte gUnk_085A2E80
_0801B114:
movs r0, #0xc0
lsls r0, r0, #0x13
adds r1, r3, r0
lsls r2, r2, #5
adds r0, r5, #0
bl sub_0801D66C
_0801B122:
ldr r0, [r4]
cmp r0, #0
bge _0801B12C
adds r4, #8
b _0801B0F0
_0801B12C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0801B130
sub_0801B130: @ 0x0801B130
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
bl sub_0801B170
ldr r5, _0801B164 @ =gUnk_02000CC0
ldrh r0, [r4]
ldr r1, _0801B168 @ =0x0000FFFF
cmp r0, r1
beq _0801B162
ldr r7, _0801B16C @ =gUnk_080B7278
adds r6, r1, #0
_0801B146:
ldrh r0, [r4]
lsls r0, r0, #2
adds r0, r0, r7
ldr r0, [r0]
str r0, [r5]
adds r0, #4
bl sub_0801B0C4
strh r0, [r5, #6]
adds r5, #8
adds r4, #2
ldrh r0, [r4]
cmp r0, r6
bne _0801B146
_0801B162:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801B164: .4byte gUnk_02000CC0
_0801B168: .4byte 0x0000FFFF
_0801B16C: .4byte gUnk_080B7278
thumb_func_start sub_0801B170
sub_0801B170: @ 0x0801B170
push {lr}
movs r1, #0
movs r2, #0
ldr r0, _0801B184 @ =gUnk_02000CC0
_0801B178:
str r2, [r0]
adds r0, #8
adds r1, #1
cmp r1, #7
bls _0801B178
pop {pc}
.align 2, 0
_0801B184: .4byte gUnk_02000CC0
thumb_func_start sub_0801B188
sub_0801B188: @ 0x0801B188
push {r4, lr}
adds r4, r0, #0
ldr r0, _0801B1E0 @ =gUnk_080B77C8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08004274
ldrb r2, [r4, #0xc]
cmp r2, #3
beq _0801B24E
ldrb r1, [r4, #0xe]
cmp r1, #0
beq _0801B1E4
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #7
bne _0801B1BC
subs r0, r1, #1
strb r0, [r4, #0xe]
_0801B1BC:
ldrb r1, [r4, #0xe]
cmp r1, #0
bne _0801B24E
movs r0, #0x50
strb r0, [r4, #0xf]
str r1, [r4, #0x68]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0801B24E
.align 2, 0
_0801B1E0: .4byte gUnk_080B77C8
_0801B1E4:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0801B24E
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0801B248
cmp r2, #2
bne _0801B204
ldrb r0, [r4, #0xd]
cmp r0, #1
bne _0801B204
ldr r0, _0801B244 @ =gUnk_03003F80
strb r1, [r0, #5]
_0801B204:
movs r0, #3
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3c
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r2]
movs r0, #0xf
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x13
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0805EC60
adds r0, r4, #0
bl sub_08078954
adds r0, r4, #0
movs r1, #0x20
movs r2, #0
movs r3, #0
bl sub_080A2988
adds r0, r4, #0
bl sub_0801B418
b _0801B24E
.align 2, 0
_0801B244: .4byte gUnk_03003F80
_0801B248:
adds r0, r4, #0
bl sub_0801B3A4
_0801B24E:
pop {r4, pc}
thumb_func_start sub_0801B250
sub_0801B250: @ 0x0801B250
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
movs r0, #1
strb r0, [r2, #0xc]
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0x3a
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r3]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0xa]
adds r0, r1, #0
cmp r0, #0xff
bne _0801B28A
movs r0, #0x3c
b _0801B29C
_0801B28A:
cmp r0, #0xfe
bne _0801B29A
movs r0, #0xf
strb r0, [r2, #0xe]
movs r0, #0xff
orrs r0, r1
strb r0, [r2, #0xa]
b _0801B29E
_0801B29A:
movs r0, #0x96
_0801B29C:
strb r0, [r2, #0xe]
_0801B29E:
ldr r0, _0801B2BC @ =gUnk_080B77F4
str r0, [r2, #0x48]
movs r0, #0
strb r0, [r2, #0x16]
adds r0, r2, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #7
bne _0801B2C0
adds r0, r2, #0
movs r1, #5
bl sub_08004260
b _0801B2C8
.align 2, 0
_0801B2BC: .4byte gUnk_080B77F4
_0801B2C0:
adds r0, r2, #0
movs r1, #0x15
bl sub_08004260
_0801B2C8:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B2CC
sub_0801B2CC: @ 0x0801B2CC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0800442E
cmp r0, #0
bne _0801B2DE
adds r0, r4, #0
bl sub_08078930
_0801B2DE:
movs r0, #8
bl sub_0805436C
cmp r0, #1
beq _0801B2F6
cmp r0, #1
blo _0801B2F2
cmp r0, #2
beq _0801B2FA
b _0801B2FC
_0801B2F2:
movs r5, #1
b _0801B2FC
_0801B2F6:
movs r5, #2
b _0801B2FC
_0801B2FA:
movs r5, #0
_0801B2FC:
ldr r0, _0801B314 @ =gUnk_03003F80
adds r0, #0x92
ldrh r0, [r0]
ands r5, r0
cmp r5, #0
beq _0801B310
movs r0, #0
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xf]
_0801B310:
pop {r4, r5, pc}
.align 2, 0
_0801B314: .4byte gUnk_03003F80
thumb_func_start sub_0801B318
sub_0801B318: @ 0x0801B318
push {lr}
ldr r2, _0801B32C @ =gUnk_080B77D8
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801B32C: .4byte gUnk_080B77D8
thumb_func_start sub_0801B330
sub_0801B330: @ 0x0801B330
push {lr}
ldrb r1, [r0, #0xd]
adds r1, #1
strb r1, [r0, #0xd]
bl sub_08079BD8
pop {pc}
.align 2, 0
thumb_func_start sub_0801B340
sub_0801B340: @ 0x0801B340
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x10
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0801B354
sub_0801B354: @ 0x0801B354
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0801B368
sub_0801B368: @ 0x0801B368
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xc]
subs r0, #1
movs r1, #0
strb r0, [r2, #0xc]
strb r1, [r2, #0xd]
ldrb r0, [r2, #0xe]
cmp r0, #0x3c
bls _0801B380
movs r0, #0x3c
strb r0, [r2, #0xe]
_0801B380:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B384
sub_0801B384: @ 0x0801B384
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_0801B38C
sub_0801B38C: @ 0x0801B38C
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xff
bne _0801B3A0
bl sub_0805E780
_0801B3A0:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B3A4
sub_0801B3A4: @ 0x0801B3A4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
movs r5, #8
cmp r0, #0x28
bhi _0801B3F4
movs r5, #4
ldr r1, [r4, #0x68]
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _0801B3C4
adds r0, r1, #0
subs r0, #0x10
b _0801B3C8
_0801B3C4:
adds r0, r1, #0
adds r0, #0x10
_0801B3C8:
str r0, [r4, #0x68]
ldr r1, [r4, #0x68]
movs r2, #0xf0
adds r0, r1, #0
ands r0, r2
subs r0, #1
cmp r0, #0x7f
bls _0801B3E0
movs r0, #0x80
lsls r0, r0, #8
eors r1, r0
str r1, [r4, #0x68]
_0801B3E0:
ldr r0, [r4, #0x68]
ands r0, r2
movs r2, #0x98
lsls r2, r2, #1
subs r2, r2, r0
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_0801B3F4:
ldrb r0, [r4, #0xf]
ands r0, r5
cmp r0, #0
bne _0801B408
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x1a]
b _0801B416
_0801B408:
ldrb r0, [r4, #0x1a]
lsrs r2, r0, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x1a]
_0801B416:
pop {r4, r5, pc}
thumb_func_start sub_0801B418
sub_0801B418: @ 0x0801B418
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
movs r6, #0x10
movs r0, #0x10
rsbs r0, r0, #0
mov sb, r0
mov r8, sb
_0801B42C:
movs r4, #0x10
adds r7, r6, #0
subs r7, #0x10
_0801B432:
movs r0, #0x2e
ldrsh r2, [r5, r0]
adds r2, r2, r4
movs r0, #0x32
ldrsh r3, [r5, r0]
adds r3, r3, r6
adds r0, r5, #0
movs r1, #3
bl sub_08008796
subs r4, #0x10
cmp r4, r8
bge _0801B432
adds r6, r7, #0
cmp r6, sb
bge _0801B42C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0801B45C
sub_0801B45C: @ 0x0801B45C
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801B48C @ =gUnk_080B77FC
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xb
beq _0801B4AC
ldrb r0, [r4, #0x14]
cmp r0, #6
bne _0801B490
adds r1, r4, #0
adds r1, #0x86
movs r2, #0x80
lsls r2, r2, #6
b _0801B496
.align 2, 0
_0801B48C: .4byte gUnk_080B77FC
_0801B490:
adds r1, r4, #0
adds r1, #0x86
ldr r2, _0801B4C4 @ =0xFFFFE000
_0801B496:
adds r0, r2, #0
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #1
ldrh r3, [r1]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
_0801B4AC:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0801B4C0
movs r0, #0xfb
bl sub_08004488
_0801B4C0:
pop {r4, pc}
.align 2, 0
_0801B4C4: .4byte 0xFFFFE000
thumb_func_start sub_0801B4C8
sub_0801B4C8: @ 0x0801B4C8
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _0801B52C @ =gUnk_03003F80
str r4, [r3, #0x2c]
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _0801B530 @ =gUnk_081271CC
str r0, [r4, #0x48]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
adds r1, r4, #0
adds r1, #0x58
movs r0, #0xb
strb r0, [r1]
ldr r5, _0801B534 @ =gLinkEntity
str r5, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x86
strh r2, [r0]
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B518
ldrb r0, [r5, #0x18]
lsls r0, r0, #0x19
lsrs r0, r0, #0x1f
movs r1, #1
bics r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0801B518:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B538
movs r0, #0xa0
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x3c
b _0801B540
.align 2, 0
_0801B52C: .4byte gUnk_03003F80
_0801B530: .4byte gUnk_081271CC
_0801B534: .4byte gLinkEntity
_0801B538:
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x1e
_0801B540:
strb r0, [r4, #0xe]
ldrb r1, [r3, #0xd]
movs r0, #0xd
ldrsb r0, [r3, r0]
cmp r0, #0
blt _0801B550
strb r1, [r4, #0x15]
b _0801B556
_0801B550:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_0801B556:
ldrb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x83
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _0801B56C
movs r0, #1
strb r0, [r4, #0xb]
_0801B56C:
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0801B584
pop {r4, r5, pc}
thumb_func_start sub_0801B584
sub_0801B584: @ 0x0801B584
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
bl sub_0801B804
ldr r1, _0801B5F8 @ =gUnk_03003F80
ldrb r0, [r1, #4]
cmp r0, #0
beq _0801B5A8
ldrb r0, [r1, #0x1a]
cmp r0, #0
bne _0801B5A8
ldr r0, [r1, #0x2c]
cmp r0, r6
bne _0801B5B4
ldr r0, _0801B5FC @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #1
beq _0801B5B8
_0801B5A8:
ldr r1, _0801B5F8 @ =gUnk_03003F80
ldr r0, [r1, #0x2c]
cmp r0, r6
bne _0801B5B4
movs r0, #0
str r0, [r1, #0x2c]
_0801B5B4:
bl sub_0805E780
_0801B5B8:
ldr r7, _0801B5FC @ =gLinkEntity
adds r0, r7, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r3, #1
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0801B600
adds r0, r6, #0
adds r0, #0x68
ldrb r0, [r0]
movs r2, #0
cmp r0, #0xc
bne _0801B5D8
movs r2, #6
_0801B5D8:
lsrs r0, r1, #4
adds r1, r0, r2
ldrb r0, [r6, #0x1e]
cmp r0, r1
beq _0801B5EE
strb r1, [r6, #0x1e]
ldrb r1, [r6, #0x1e]
ldrh r2, [r6, #0x12]
adds r0, r6, #0
bl sub_080042D0
_0801B5EE:
adds r0, r6, #0
adds r1, r7, #0
bl sub_08078E84
b _0801B674
.align 2, 0
_0801B5F8: .4byte gUnk_03003F80
_0801B5FC: .4byte gLinkEntity
_0801B600:
movs r5, #0
movs r0, #2
strb r0, [r6, #0xc]
adds r1, r6, #0
adds r1, #0x60
movs r0, #0xd5
strh r0, [r1]
ldrb r0, [r6, #0x10]
movs r4, #0x80
orrs r0, r4
strb r0, [r6, #0x10]
subs r1, #0x24
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
adds r0, r7, #0
adds r0, #0x3b
ldrb r0, [r0]
adds r2, r6, #0
adds r2, #0x3b
strb r0, [r2]
movs r0, #0xa6
strh r0, [r6, #0x12]
ldrb r1, [r6, #0x18]
subs r0, #0xe7
ands r0, r1
movs r1, #4
rsbs r1, r1, #0
ands r0, r1
orrs r0, r3
strb r0, [r6, #0x18]
ldrb r1, [r6, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #1
ldr r2, _0801B678 @ =gUnk_080B7826
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r6, #0x2e]
adds r0, r0, r3
strh r0, [r6, #0x2e]
adds r1, #1
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r1, [r6, #0x32]
adds r0, r0, r1
strh r0, [r6, #0x32]
adds r0, r6, #0
movs r1, #0
bl sub_08004260
ldr r0, _0801B67C @ =gUnk_03003F80
str r5, [r0, #0x2c]
ldrb r1, [r0, #4]
orrs r4, r1
strb r4, [r0, #4]
_0801B674:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801B678: .4byte gUnk_080B7826
_0801B67C: .4byte gUnk_03003F80
thumb_func_start sub_0801B680
sub_0801B680: @ 0x0801B680
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_0801B804
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B6DC
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
bne _0801B6DC
ldr r3, _0801B6C4 @ =gUnk_03003F80
ldrb r1, [r3, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0801B6DC
adds r2, r4, #0
adds r2, #0x83
ldrb r0, [r2]
ldrb r1, [r3, #0xd]
subs r0, r0, r1
movs r3, #0x1f
ands r0, r3
cmp r0, #0x10
ble _0801B6C8
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, #0x40
b _0801B6D0
.align 2, 0
_0801B6C4: .4byte gUnk_03003F80
_0801B6C8:
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
subs r0, #0x40
_0801B6D0:
strh r0, [r1]
ldrb r1, [r2]
adds r0, r3, #0
ands r0, r1
strb r0, [r2]
strb r0, [r4, #0x15]
_0801B6DC:
adds r0, r4, #0
bl sub_0806F69C
movs r5, #0
adds r0, r4, #0
bl sub_0801B864
cmp r0, #0
beq _0801B6FE
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
movs r0, #0xc
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r5, r0, #0x1f
_0801B6FE:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0801B780 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r4, r6]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0801B784 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _0801B73C
cmp r5, #0
bne _0801B790
ldr r1, _0801B788 @ =gUnk_08003E44
adds r0, r4, #0
bl sub_080040E2
adds r5, r0, #0
_0801B73C:
cmp r5, #0
bne _0801B790
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xb
bhi _0801B754
ldrh r0, [r4, #0x24]
subs r0, #0x10
strh r0, [r4, #0x24]
_0801B754:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0801B75C
movs r5, #1
_0801B75C:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801B76C
movs r5, #1
_0801B76C:
cmp r5, #0
beq _0801B7A4
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B78C
movs r0, #0x1e
b _0801B792
.align 2, 0
_0801B780: .4byte gUnk_03000BF0
_0801B784: .4byte gLinkEntity
_0801B788: .4byte gUnk_08003E44
_0801B78C:
movs r0, #0xc
b _0801B792
_0801B790:
movs r0, #1
_0801B792:
strb r0, [r4, #0xe]
cmp r5, #0
beq _0801B7A4
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xe0
lsls r0, r0, #1
strh r0, [r4, #0x24]
_0801B7A4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801B7A8
sub_0801B7A8: @ 0x0801B7A8
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0801B804
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0801B7BC
subs r0, #1
strb r0, [r5, #0xe]
b _0801B7FA
_0801B7BC:
adds r0, r5, #0
bl sub_0801B864
ldrh r2, [r5, #0x24]
movs r0, #0x24
ldrsh r1, [r5, r0]
ldr r0, _0801B7FC @ =0x0000027F
cmp r1, r0
bgt _0801B7D4
adds r0, r2, #0
adds r0, #8
strh r0, [r5, #0x24]
_0801B7D4:
ldr r4, _0801B800 @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
bl sub_080045C4
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
adds r1, r4, #0
movs r2, #2
movs r3, #2
bl sub_0800419C
cmp r0, #0
beq _0801B7FA
bl sub_0805E780
_0801B7FA:
pop {r4, r5, pc}
.align 2, 0
_0801B7FC: .4byte 0x0000027F
_0801B800: .4byte gLinkEntity
thumb_func_start sub_0801B804
sub_0801B804: @ 0x0801B804
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xc
bl sub_0805436C
cmp r0, #1
beq _0801B820
cmp r0, #1
blo _0801B81C
cmp r0, #2
beq _0801B824
b _0801B826
_0801B81C:
movs r4, #1
b _0801B826
_0801B820:
movs r4, #2
b _0801B826
_0801B824:
movs r4, #0
_0801B826:
ldr r3, _0801B850 @ =gUnk_03003F80
adds r0, r3, #0
adds r0, #0x90
ldrh r0, [r0]
ands r4, r0
cmp r4, #0
bne _0801B854
adds r1, r5, #0
adds r1, #0x80
movs r0, #1
strb r0, [r1]
ldrb r2, [r3, #0xa]
movs r1, #0x7f
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
ands r1, r0
strb r1, [r3, #0xb]
b _0801B862
.align 2, 0
_0801B850: .4byte gUnk_03003F80
_0801B854:
ldrb r1, [r3, #0xa]
movs r0, #0x80
orrs r1, r0
strb r1, [r3, #0xa]
ldrb r1, [r3, #0xb]
orrs r0, r1
strb r0, [r3, #0xb]
_0801B862:
pop {r4, r5, pc}
thumb_func_start sub_0801B864
sub_0801B864: @ 0x0801B864
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0801B874
adds r0, r4, #0
bl sub_0800451C
_0801B874:
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
lsls r0, r0, #1
ldr r3, _0801B894 @ =gUnk_080B782E
adds r1, r0, r3
movs r2, #0
ldrsb r2, [r1, r2]
adds r0, #1
adds r0, r0, r3
movs r3, #0
ldrsb r3, [r0, r3]
adds r0, r4, #0
movs r1, #2
bl sub_08008782
pop {r4, pc}
.align 2, 0
_0801B894: .4byte gUnk_080B782E
thumb_func_start sub_0801B898
sub_0801B898: @ 0x0801B898
push {lr}
ldr r2, _0801B8AC @ =gUnk_080B7840
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801B8AC: .4byte gUnk_080B7840
thumb_func_start sub_0801B8B0
sub_0801B8B0: @ 0x0801B8B0
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801B8F0 @ =gUnk_03003F80
ldrb r0, [r1, #0x1e]
cmp r0, #0
beq _0801B8F4
str r4, [r1, #0x2c]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x3b
movs r0, #8
strb r0, [r1]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0801B8FC
b _0801B8F8
.align 2, 0
_0801B8F0: .4byte gUnk_03003F80
_0801B8F4:
bl sub_0805E780
_0801B8F8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801B8FC
sub_0801B8FC: @ 0x0801B8FC
push {lr}
ldr r1, _0801B90C @ =gUnk_03003F80
ldr r2, [r1, #0x2c]
cmp r2, r0
beq _0801B910
bl sub_0805E780
b _0801B934
.align 2, 0
_0801B90C: .4byte gUnk_03003F80
_0801B910:
ldrb r0, [r1, #0x1e]
cmp r0, #0
bne _0801B91E
str r0, [r1, #0x2c]
bl sub_0805E780
b _0801B934
_0801B91E:
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r1, r2, #0
adds r1, #0x3c
movs r0, #0x21
strb r0, [r1]
adds r0, r2, #0
bl sub_0801B938
_0801B934:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B938
sub_0801B938: @ 0x0801B938
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B960
ldr r3, _0801B95C @ =gLinkEntity
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x19
lsrs r1, r1, #0x1f
movs r0, #1
eors r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
subs r0, #0x42
b _0801B96E
.align 2, 0
_0801B95C: .4byte gLinkEntity
_0801B960:
ldr r3, _0801B998 @ =gLinkEntity
ldrb r0, [r3, #0x18]
movs r1, #0x40
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
_0801B96E:
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r3, #0
adds r0, #0x58
ldrb r0, [r0]
adds r0, #0x68
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bhi _0801B99C
ldrb r0, [r3, #0x1e]
adds r0, #0x2e
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
b _0801B9A0
.align 2, 0
_0801B998: .4byte gLinkEntity
_0801B99C:
movs r0, #0xff
strb r0, [r4, #0x1e]
_0801B9A0:
ldrb r3, [r4, #0x14]
lsrs r3, r3, #1
lsls r0, r3, #3
ldr r1, _0801B9E0 @ =gUnk_080B7850
adds r0, r0, r1
str r0, [r4, #0x48]
lsls r3, r3, #1
ldr r0, _0801B9E4 @ =gUnk_080B7848
adds r3, r3, r0
ldr r0, _0801B9E8 @ =gUnk_03003F80
adds r0, #0xac
ldrh r0, [r0]
movs r1, #8
ands r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
rsbs r1, r1, #0
lsrs r1, r1, #0x1f
movs r2, #0
ldrsb r2, [r3, r2]
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r0, r4, #0
bl sub_08008782
ldr r1, _0801B9EC @ =gLinkEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, pc}
.align 2, 0
_0801B9E0: .4byte gUnk_080B7850
_0801B9E4: .4byte gUnk_080B7848
_0801B9E8: .4byte gUnk_03003F80
_0801B9EC: .4byte gLinkEntity
thumb_func_start sub_0801B9F0
sub_0801B9F0: @ 0x0801B9F0
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
bl sub_08017744
pop {pc}
thumb_func_start sub_0801BA00
sub_0801BA00: @ 0x0801BA00
push {lr}
ldr r2, _0801BA14 @ =gUnk_080B7870
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801BA14: .4byte gUnk_080B7870
thumb_func_start sub_0801BA18
sub_0801BA18: @ 0x0801BA18
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x68
ldrb r0, [r1]
cmp r0, #0x36
bne _0801BA2A
movs r0, #0x36
b _0801BA34
_0801BA2A:
ldrb r1, [r1]
ldr r0, _0801BA4C @ =gUnk_02002A40
adds r0, r0, r1
adds r0, #0x9a
ldrb r0, [r0]
_0801BA34:
adds r1, r4, #0
adds r1, #0x6f
strb r0, [r1]
subs r0, #0x20
cmp r0, #0x11
bhi _0801BB02
lsls r0, r0, #2
ldr r1, _0801BA50 @ =_0801BA54
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BA4C: .4byte gUnk_02002A40
_0801BA50: .4byte _0801BA54
_0801BA54: @ jump table
.4byte _0801BA9C @ case 0
.4byte _0801BAF8 @ case 1
.4byte _0801BAF8 @ case 2
.4byte _0801BAF8 @ case 3
.4byte _0801BAF8 @ case 4
.4byte _0801BAF8 @ case 5
.4byte _0801BB02 @ case 6
.4byte _0801BB02 @ case 7
.4byte _0801BB02 @ case 8
.4byte _0801BAF8 @ case 9
.4byte _0801BAF8 @ case 10
.4byte _0801BAF8 @ case 11
.4byte _0801BAF8 @ case 12
.4byte _0801BAF8 @ case 13
.4byte _0801BAF8 @ case 14
.4byte _0801BB02 @ case 15
.4byte _0801BB02 @ case 16
.4byte _0801BB02 @ case 17
_0801BA9C:
adds r0, r4, #0
bl sub_0806FBD8
cmp r0, #0
beq _0801BB26
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldr r1, _0801BAF4 @ =gLinkEntity
adds r0, r1, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
movs r2, #0x20
adds r3, r4, #0
adds r3, #0x3c
orrs r0, r2
strb r0, [r3]
adds r1, #0x3b
ldrb r0, [r1]
adds r1, r4, #0
adds r1, #0x3b
strb r0, [r1]
adds r1, #5
movs r0, #0x1f
strb r0, [r1]
movs r0, #1
strb r0, [r4, #0xa]
movs r0, #0x20
strb r0, [r4, #0xb]
movs r0, #0x52
strb r0, [r4, #0xe]
movs r0, #0x1b
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0801766C
movs r0, #0xee
lsls r0, r0, #1
bl sub_080A3268
b _0801BB0A
.align 2, 0
_0801BAF4: .4byte gLinkEntity
_0801BAF8:
movs r0, #0xd5
strb r0, [r4, #0xe]
movs r0, #0x3c
strb r0, [r4, #0xf]
b _0801BB0A
_0801BB02:
movs r1, #0
movs r0, #0x37
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
_0801BB0A:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldr r0, _0801BB28 @ =gUnk_03003F80
str r4, [r0, #0x2c]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_0801BB2C
_0801BB26:
pop {r4, pc}
.align 2, 0
_0801BB28: .4byte gUnk_03003F80
thumb_func_start sub_0801BB2C
sub_0801BB2C: @ 0x0801BB2C
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0801BB88 @ =gUnk_03003F80
ldr r0, [r0, #0x2c]
cmp r0, r5
beq _0801BB68
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0801BB64
ldrb r0, [r5, #0xb]
cmp r0, #0x20
beq _0801BB64
adds r0, r5, #0
adds r0, #0x68
ldrb r4, [r0]
subs r4, #0x1c
ldrb r0, [r5, #0xb]
adds r1, r4, #0
bl sub_08054464
ldrb r0, [r5, #0xb]
adds r1, r4, #0
movs r2, #5
bl sub_080A7C18
ldr r0, _0801BB8C @ =0x00000109
bl sub_080A3268
_0801BB64:
bl sub_0805E780
_0801BB68:
ldr r1, _0801BB90 @ =gLinkEntity
adds r0, r5, #0
bl sub_0801BDE8
adds r0, r5, #0
adds r0, #0x6f
ldrb r0, [r0]
subs r0, #0x20
cmp r0, #0x11
bhi _0801BC04
lsls r0, r0, #2
ldr r1, _0801BB94 @ =_0801BB98
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BB88: .4byte gUnk_03003F80
_0801BB8C: .4byte 0x00000109
_0801BB90: .4byte gLinkEntity
_0801BB94: .4byte _0801BB98
_0801BB98: @ jump table
.4byte _0801BBE0 @ case 0
.4byte _0801BBE8 @ case 1
.4byte _0801BBE8 @ case 2
.4byte _0801BBE8 @ case 3
.4byte _0801BBE8 @ case 4
.4byte _0801BBE8 @ case 5
.4byte _0801BC04 @ case 6
.4byte _0801BC04 @ case 7
.4byte _0801BC04 @ case 8
.4byte _0801BBE8 @ case 9
.4byte _0801BBE8 @ case 10
.4byte _0801BBE8 @ case 11
.4byte _0801BBE8 @ case 12
.4byte _0801BBE8 @ case 13
.4byte _0801BBE8 @ case 14
.4byte _0801BC04 @ case 15
.4byte _0801BC04 @ case 16
.4byte _0801BC04 @ case 17
_0801BBE0:
adds r0, r5, #0
bl sub_0801BC0C
b _0801BC0A
_0801BBE8:
ldr r0, _0801BC00 @ =gLinkEntity
adds r1, r0, #0
adds r1, #0x5a
ldrb r0, [r1]
cmp r0, #1
bne _0801BC0A
movs r0, #0
strb r0, [r1]
adds r0, r5, #0
bl sub_0801BC14
b _0801BC0A
.align 2, 0
_0801BC00: .4byte gLinkEntity
_0801BC04:
adds r0, r5, #0
bl sub_0801BCB4
_0801BC0A:
pop {r4, r5, pc}
thumb_func_start sub_0801BC0C
sub_0801BC0C: @ 0x0801BC0C
push {lr}
bl sub_0801BE38
pop {pc}
thumb_func_start sub_0801BC14
sub_0801BC14: @ 0x0801BC14
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r6, #0x20
movs r5, #0
adds r0, #0x6f
ldrb r0, [r0]
subs r0, #0x21
cmp r0, #0xd
bhi _0801BC98
lsls r0, r0, #2
ldr r1, _0801BC30 @ =_0801BC34
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BC30: .4byte _0801BC34
_0801BC34: @ jump table
.4byte _0801BC76 @ case 0
.4byte _0801BC6C @ case 1
.4byte _0801BC6E @ case 2
.4byte _0801BC76 @ case 3
.4byte _0801BC72 @ case 4
.4byte _0801BC98 @ case 5
.4byte _0801BC98 @ case 6
.4byte _0801BC98 @ case 7
.4byte _0801BC7A @ case 8
.4byte _0801BC7A @ case 9
.4byte _0801BC7A @ case 10
.4byte _0801BC7A @ case 11
.4byte _0801BC7A @ case 12
.4byte _0801BC7A @ case 13
_0801BC6C:
movs r6, #0x23
_0801BC6E:
movs r5, #0x28
b _0801BC98
_0801BC72:
movs r5, #0x50
b _0801BC98
_0801BC76:
movs r5, #0xa0
b _0801BC98
_0801BC7A:
ldr r1, _0801BCB0 @ =gUnk_02002A40
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
adds r2, r1, #0
adds r2, #0xb3
strb r0, [r2]
adds r1, #0xc6
movs r0, #0xe1
lsls r0, r0, #2
strh r0, [r1]
movs r0, #0x88
lsls r0, r0, #2
bl sub_080A3268
_0801BC98:
adds r0, r5, #0
bl ModHealth
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
subs r1, #0x1c
adds r0, r6, #0
bl sub_08054464
pop {r4, r5, r6, pc}
.align 2, 0
_0801BCB0: .4byte gUnk_02002A40
thumb_func_start sub_0801BCB4
sub_0801BCB4: @ 0x0801BCB4
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0801BCEC @ =gLinkEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #1
bne _0801BD6C
adds r0, r4, #0
adds r0, #0x6f
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0x36
beq _0801BCDA
subs r0, #7
ldrb r1, [r0]
subs r1, #0x1c
movs r0, #0x20
bl sub_08054464
_0801BCDA:
ldrb r0, [r5]
subs r0, #0x26
cmp r0, #0xb
bhi _0801BD6C
lsls r0, r0, #2
ldr r1, _0801BCF0 @ =_0801BCF4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BCEC: .4byte gLinkEntity
_0801BCF0: .4byte _0801BCF4
_0801BCF4: @ jump table
.4byte _0801BD24 @ case 0
.4byte _0801BD32 @ case 1
.4byte _0801BD40 @ case 2
.4byte _0801BD6C @ case 3
.4byte _0801BD6C @ case 4
.4byte _0801BD6C @ case 5
.4byte _0801BD6C @ case 6
.4byte _0801BD6C @ case 7
.4byte _0801BD6C @ case 8
.4byte _0801BD54 @ case 9
.4byte _0801BD54 @ case 10
.4byte _0801BD54 @ case 11
_0801BD24:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl sub_080A2988
b _0801BD6C
_0801BD32:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #1
bl sub_080A2988
b _0801BD6C
_0801BD40:
adds r0, r4, #0
movs r1, #0x68
movs r2, #2
movs r3, #2
bl sub_080A2988
movs r0, #0x20
bl ModHealth
b _0801BD6C
_0801BD54:
ldr r1, _0801BD88 @ =gUnk_02002A40
ldrb r0, [r5]
adds r2, r1, #0
adds r2, #0xb2
strb r0, [r2]
adds r1, #0xc4
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
ldr r0, _0801BD8C @ =0x000001CF
bl sub_080A3268
_0801BD6C:
ldr r0, _0801BD90 @ =gLinkEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #2
bne _0801BDAE
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
cmp r0, #0x26
beq _0801BD94
cmp r0, #0x27
beq _0801BDA2
b _0801BDAE
.align 2, 0
_0801BD88: .4byte gUnk_02002A40
_0801BD8C: .4byte 0x000001CF
_0801BD90: .4byte gLinkEntity
_0801BD94:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl sub_080A2988
b _0801BDAE
_0801BDA2:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #1
bl sub_080A2988
_0801BDAE:
ldr r0, _0801BDC8 @ =gLinkEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #3
bne _0801BDE6
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
cmp r0, #0x26
beq _0801BDCC
cmp r0, #0x27
beq _0801BDDA
b _0801BDE6
.align 2, 0
_0801BDC8: .4byte gLinkEntity
_0801BDCC:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl sub_080A2988
b _0801BDE6
_0801BDDA:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #0
bl sub_080A2988
_0801BDE6:
pop {r4, r5, pc}
thumb_func_start sub_0801BDE8
sub_0801BDE8: @ 0x0801BDE8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r5, #0x1e]
ldrb r1, [r4, #0xe]
subs r0, r0, r1
ldrb r1, [r4, #0xf]
adds r0, r0, r1
ldrb r1, [r4, #0x1e]
cmp r0, r1
beq _0801BE0A
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_0801BE0A:
ldrb r1, [r5, #0x18]
lsls r1, r1, #0x19
lsrs r1, r1, #0x1f
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
movs r2, #1
ands r0, r2
eors r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r1, _0801BE34 @ =gLinkEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, r5, pc}
.align 2, 0
_0801BE34: .4byte gLinkEntity
thumb_func_start sub_0801BE38
sub_0801BE38: @ 0x0801BE38
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x41
ldrb r0, [r2]
movs r1, #0x7f
ands r1, r0
cmp r1, #0x49
beq _0801BE54
cmp r1, #0x4d
beq _0801BE60
movs r0, #0
strb r0, [r2]
b _0801BE6A
_0801BE54:
movs r0, #0x28
strb r0, [r4, #0xb]
adds r0, r4, #0
bl sub_0801B9F0
b _0801BE6A
_0801BE60:
movs r0, #0x27
strb r0, [r4, #0xb]
adds r0, r4, #0
bl sub_0801B9F0
_0801BE6A:
ldrb r0, [r4, #0x1e]
subs r0, #0x1b
lsls r0, r0, #2
ldr r1, _0801BE84 @ =gUnk_080B788A
adds r2, r0, r1
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _0801BE88
ldr r1, [r4, #0x48]
ldrb r0, [r2]
rsbs r0, r0, #0
b _0801BE8C
.align 2, 0
_0801BE84: .4byte gUnk_080B788A
_0801BE88:
ldr r1, [r4, #0x48]
ldrb r0, [r2]
_0801BE8C:
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #1]
strb r0, [r1, #1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #2]
strb r0, [r1, #6]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #3]
strb r0, [r1, #7]
ldr r0, _0801BEF0 @ =gLinkEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0xf
ands r1, r0
cmp r1, #0
beq _0801BEDE
ldrb r0, [r4, #0xb]
cmp r0, #0x20
bne _0801BEE4
subs r0, r1, #1
lsls r0, r0, #1
ldr r1, _0801BEF4 @ =gUnk_080B7878
adds r2, r0, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _0801BECA
rsbs r1, r1, #0
_0801BECA:
ldrb r2, [r2, #1]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r0, r4, #0
bl sub_080002B4
cmp r0, #0x10
bne _0801BEDE
movs r0, #0x26
strb r0, [r4, #0xb]
_0801BEDE:
ldrb r0, [r4, #0xb]
cmp r0, #0x20
beq _0801BEEE
_0801BEE4:
ldr r2, _0801BEF0 @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
_0801BEEE:
pop {r4, pc}
.align 2, 0
_0801BEF0: .4byte gLinkEntity
_0801BEF4: .4byte gUnk_080B7878
thumb_func_start sub_0801BEF8
sub_0801BEF8: @ 0x0801BEF8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov r8, r0
ldr r7, _0801BFF0 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0
bne _0801BF62
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r7, r6]
adds r2, #1
adds r2, r2, r5
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
mov r1, r8
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
_0801BF62:
ldr r2, _0801BFFC @ =gUnk_03003F80
mov sb, r2
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
ldr r6, _0801C000 @ =gUnk_03000FF0
ldrh r1, [r6]
movs r3, #0x80
lsls r3, r3, #1
mov sl, r3
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C074
ldrh r1, [r6, #2]
mov r0, sl
ands r0, r1
cmp r0, #0
beq _0801BFDA
movs r4, #0x2e
ldrsh r0, [r7, r4]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
mov sb, r5
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r7, r5]
adds r2, #1
add r2, sb
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
_0801BFDA:
ldrh r3, [r6]
mov r0, sl
ands r0, r3
adds r4, r3, #0
cmp r0, #0
beq _0801C004
adds r1, r7, #0
adds r1, #0x3d
movs r0, #2
strb r0, [r1]
b _0801C0D4
.align 2, 0
_0801BFF0: .4byte gLinkEntity
_0801BFF4: .4byte gUnk_080B7B6C
_0801BFF8: .4byte gUnk_03000BF0
_0801BFFC: .4byte gUnk_03003F80
_0801C000: .4byte gUnk_03000FF0
_0801C004:
ldrh r2, [r6, #2]
movs r6, #0x10
adds r0, r6, #0
ands r0, r2
cmp r0, #0
beq _0801C01A
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C01A:
movs r5, #0x20
adds r0, r5, #0
ands r0, r2
cmp r0, #0
beq _0801C02E
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0801C02E:
movs r0, #0x30
ands r0, r4
cmp r0, #0
beq _0801C06E
mov r1, r8
ldrb r0, [r1, #0xf]
adds r0, #1
strb r0, [r1, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bls _0801C0D4
movs r0, #0x1e
strb r0, [r1, #0xf]
adds r0, r6, #0
ands r0, r4
cmp r0, #0
beq _0801C05A
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C05A:
adds r0, r5, #0
ands r0, r3
cmp r0, #0
beq _0801C0D4
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0801C0D4
_0801C06E:
mov r2, r8
strb r0, [r2, #0xf]
b _0801C0D4
_0801C074:
mov r0, r8
adds r0, #0x6c
ldrh r0, [r0]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r4, _0801C1C8 @ =gUnk_080B7B6C
mov sl, r4
ldrb r2, [r7, #0x14]
movs r3, #0xe
ands r3, r2
adds r2, r3, r4
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldr r5, _0801C1CC @ =gUnk_03000BF0
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r7, r6]
adds r3, #1
add r3, sl
ldrb r3, [r3]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r2, r8
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
mov r0, sb
ldrb r1, [r0, #0x1a]
movs r0, #0x7f
ands r0, r1
mov r1, sb
strb r0, [r1, #0x1a]
bl sub_0805E780
_0801C0D4:
ldr r0, _0801C1D0 @ =gUnk_03000FF0
ldrh r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801C1BE
movs r2, #0x6c
add r2, r8
mov sb, r2
ldrh r0, [r2]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r6, _0801C1C8 @ =gUnk_080B7B6C
movs r2, #0
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldr r5, _0801C1CC @ =gUnk_03000BF0
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #1
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #0x38
add r8, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #2
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #3
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #4
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #5
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #6
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #7
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r4, r8
ldrb r2, [r4]
bl sub_0807B7D8
_0801C1BE:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C1C8: .4byte gUnk_080B7B6C
_0801C1CC: .4byte gUnk_03000BF0
_0801C1D0: .4byte gUnk_03000FF0
thumb_func_start sub_0801C1D4
sub_0801C1D4: @ 0x0801C1D4
push {r4, lr}
movs r4, #0
_0801C1D8:
lsls r1, r4, #5
ldr r0, _0801C200 @ =gUnk_0200AF34
adds r2, r1, r0
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C1F8
ldrb r0, [r2, #1]
lsls r0, r0, #4
ldr r1, _0801C204 @ =gUnk_080C8F8C
adds r0, r0, r1
ldr r1, [r0, #8]
adds r0, r2, #0
bl _call_via_r1
_0801C1F8:
adds r4, #1
cmp r4, #0x17
bls _0801C1D8
pop {r4, pc}
.align 2, 0
_0801C200: .4byte gUnk_0200AF34
_0801C204: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C208
sub_0801C208: @ 0x0801C208
push {r4, r5, lr}
movs r5, #0
ldr r4, _0801C250 @ =gUnk_03001010
_0801C20E:
lsls r1, r5, #5
ldr r0, _0801C254 @ =gUnk_0200AF34
adds r3, r1, r0
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C248
ldrh r0, [r3, #0xc]
strh r0, [r4]
ldrh r0, [r3, #0xe]
strh r0, [r4, #2]
ldrb r2, [r3, #1]
lsls r2, r2, #4
ldr r0, _0801C258 @ =gUnk_080C8F8C
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r4, #4]
ldrh r0, [r2, #2]
strh r0, [r4, #6]
ldrb r0, [r3, #0x18]
lsls r0, r0, #0xc
ldrh r1, [r3, #0x1a]
orrs r0, r1
strh r0, [r4, #8]
ldrh r0, [r2, #6]
ldrb r1, [r3, #0x10]
bl sub_080ADA14
_0801C248:
adds r5, #1
cmp r5, #0x17
bls _0801C20E
pop {r4, r5, pc}
.align 2, 0
_0801C250: .4byte gUnk_03001010
_0801C254: .4byte gUnk_0200AF34
_0801C258: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C25C
sub_0801C25C: @ 0x0801C25C
push {r4, r5, r6, r7, lr}
movs r4, #0
ldr r5, _0801C2E4 @ =gUnk_0200AF34
adds r6, r5, #0
subs r6, #0x34
movs r7, #0xd
rsbs r7, r7, #0
ldr r3, _0801C2E8 @ =0x040000D4
_0801C26C:
lsls r0, r4, #5
adds r2, r0, r5
ldrb r1, [r2]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C2A8
lsls r0, r1, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
bne _0801C2A8
adds r0, r7, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldr r0, [r2, #0x1c]
str r0, [r3]
ldrh r0, [r2, #0x1a]
lsls r0, r0, #5
ldr r1, _0801C2EC @ =0x06010000
adds r0, r0, r1
str r0, [r3, #4]
ldrb r0, [r2, #0x19]
lsls r0, r0, #3
movs r1, #0x84
lsls r1, r1, #0x18
orrs r0, r1
str r0, [r3, #8]
ldr r0, [r3, #8]
_0801C2A8:
adds r4, #1
cmp r4, #0x17
ble _0801C26C
adds r2, r6, #0
ldrb r3, [r2, #0x13]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #0
bge _0801C2C8
movs r1, #0x7f
ands r1, r3
strb r1, [r2, #0x13]
movs r0, #0x8d
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2C8:
ldrb r2, [r6, #0x14]
movs r0, #0x14
ldrsb r0, [r6, r0]
cmp r0, #0
bge _0801C2E0
movs r1, #0x7f
ands r1, r2
strb r1, [r6, #0x14]
movs r0, #0x93
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2E0:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C2E4: .4byte gUnk_0200AF34
_0801C2E8: .4byte 0x040000D4
_0801C2EC: .4byte 0x06010000
thumb_func_start sub_0801C2F0
sub_0801C2F0: @ 0x0801C2F0
push {r4, r5, lr}
adds r4, r0, #0
adds r0, r1, #0
lsls r5, r4, #5
ldr r1, _0801C330 @ =0x06010000
adds r4, r5, r1
movs r1, #0xa
bl Div
cmp r0, #9
bls _0801C308
movs r0, #9
_0801C308:
ldr r2, _0801C334 @ =0x040000D4
lsls r0, r0, #5
ldr r3, _0801C338 @ =gUnk_085C4620
adds r0, r0, r3
str r0, [r2]
str r4, [r2, #4]
ldr r4, _0801C33C @ =0x84000008
str r4, [r2, #8]
ldr r0, [r2, #8]
adds r1, #0xa
lsls r1, r1, #5
adds r1, r1, r3
str r1, [r2]
ldr r1, _0801C340 @ =0x06010020
adds r0, r5, r1
str r0, [r2, #4]
str r4, [r2, #8]
ldr r0, [r2, #8]
pop {r4, r5, pc}
.align 2, 0
_0801C330: .4byte 0x06010000
_0801C334: .4byte 0x040000D4
_0801C338: .4byte gUnk_085C4620
_0801C33C: .4byte 0x84000008
_0801C340: .4byte 0x06010020
thumb_func_start sub_0801C344
sub_0801C344: @ 0x0801C344
push {r4, r5, lr}
ldr r4, _0801C36C @ =gUnk_0200AF00
ldrb r1, [r4, #1]
ldrb r0, [r4]
bics r0, r1
movs r5, #0
strb r0, [r4]
bl sub_0801C6B0
bl sub_0801C85C
bl sub_0801C4B0
bl sub_0801C99C
strb r5, [r4]
bl sub_0801C1D4
pop {r4, r5, pc}
.align 2, 0
_0801C36C: .4byte gUnk_0200AF00
thumb_func_start sub_0801C370
sub_0801C370: @ 0x0801C370
push {r4, r5, r6, lr}
cmp r0, #0
bne _0801C390
ldr r0, _0801C388 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xaa
ldrb r1, [r1]
lsrs r6, r1, #1
adds r0, #0xc0
ldrh r4, [r0]
ldr r5, _0801C38C @ =gUnk_0200AF00
b _0801C398
.align 2, 0
_0801C388: .4byte gUnk_02002A40
_0801C38C: .4byte gUnk_0200AF00
_0801C390:
ldr r0, _0801C470 @ =gUnk_0200AF00
ldrb r6, [r0, #3]
ldrh r4, [r0, #0xe]
adds r5, r0, #0
_0801C398:
movs r1, #0xcd
lsls r1, r1, #2
adds r0, r5, #0
bl sub_0801D630
strb r6, [r5, #3]
strh r4, [r5, #0xe]
ldr r0, _0801C474 @ =gUnk_02002A40
adds r0, #0xab
ldrb r0, [r0]
lsrs r0, r0, #1
strb r0, [r5, #4]
movs r0, #0xc
bl sub_0801D714
movs r0, #0x10
bl sub_0801D7EC
ldr r4, _0801C478 @ =gUnk_02034CB0
movs r1, #0x80
lsls r1, r1, #4
adds r0, r4, #0
bl sub_0801D630
ldr r1, _0801C47C @ =gUnk_03000F50
str r4, [r1, #0x10]
ldr r0, _0801C480 @ =0x00001F0C
strh r0, [r1, #8]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
ldr r1, _0801C484 @ =gUnk_03000000
ldr r2, _0801C488 @ =0x00000427
adds r0, r1, r2
movs r2, #1
strb r2, [r0]
ldr r3, _0801C48C @ =0x00000426
adds r0, r1, r3
strb r2, [r0]
ldr r0, _0801C490 @ =0x0000042E
adds r1, r1, r0
strb r2, [r1]
movs r0, #0x7f
strb r0, [r5, #0x13]
strb r0, [r5, #0x14]
strb r0, [r5, #8]
bl sub_0801C6B0
bl sub_0801C4B0
bl sub_0801C85C
bl sub_0801C99C
movs r0, #0xd0
strh r0, [r5, #0x16]
movs r0, #0xb8
strh r0, [r5, #0x18]
movs r0, #0xd8
strh r0, [r5, #0x1a]
movs r0, #0x1c
strh r0, [r5, #0x1c]
strh r0, [r5, #0x1e]
movs r0, #0xe
strh r0, [r5, #0x20]
adds r0, r5, #0
adds r0, #0x34
movs r1, #0xc0
lsls r1, r1, #2
bl sub_0801D630
movs r0, #5
movs r1, #9
bl sub_0801CA6C
movs r0, #3
movs r1, #0
bl sub_0801CA6C
movs r0, #4
movs r1, #0
bl sub_0801CA6C
movs r0, #2
movs r1, #0
bl sub_0801CA6C
movs r0, #1
movs r1, #0
bl sub_0801CA6C
movs r0, #0
movs r1, #0
bl sub_0801CA6C
movs r0, #7
movs r1, #0
bl sub_0801CA6C
movs r0, #6
movs r1, #0
bl sub_0801CA6C
pop {r4, r5, r6, pc}
.align 2, 0
_0801C470: .4byte gUnk_0200AF00
_0801C474: .4byte gUnk_02002A40
_0801C478: .4byte gUnk_02034CB0
_0801C47C: .4byte gUnk_03000F50
_0801C480: .4byte 0x00001F0C
_0801C484: .4byte gUnk_03000000
_0801C488: .4byte 0x00000427
_0801C48C: .4byte 0x00000426
_0801C490: .4byte 0x0000042E
thumb_func_start sub_0801C494
sub_0801C494: @ 0x0801C494
ldr r1, _0801C49C @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
bx lr
.align 2, 0
_0801C49C: .4byte gUnk_03000F50
thumb_func_start sub_0801C4A0
sub_0801C4A0: @ 0x0801C4A0
ldr r1, _0801C4AC @ =gUnk_0200AF00
movs r0, #0
strb r0, [r1, #2]
strb r0, [r1, #0x10]
strb r0, [r1, #0xa]
bx lr
.align 2, 0
_0801C4AC: .4byte gUnk_0200AF00
thumb_func_start sub_0801C4B0
sub_0801C4B0: @ 0x0801C4B0
push {r4, r5, r6, lr}
ldr r2, _0801C4F0 @ =gUnk_0200AF00
ldrb r1, [r2, #1]
movs r0, #0x40
ands r0, r1
adds r6, r2, #0
cmp r0, #0
beq _0801C4FC
ldrb r0, [r6, #0xa]
cmp r0, #0
bne _0801C4C8
b _0801C5D0
_0801C4C8:
movs r0, #0
strb r0, [r6, #0xa]
ldr r3, _0801C4F4 @ =gUnk_02035160
strh r0, [r3]
strh r0, [r3, #2]
strh r0, [r3, #4]
strh r0, [r3, #6]
strh r0, [r3, #8]
adds r4, r3, #0
adds r4, #0x40
strh r0, [r4]
strh r0, [r4, #2]
strh r0, [r4, #4]
strh r0, [r4, #6]
strh r0, [r4, #8]
ldr r1, _0801C4F8 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
b _0801C5D0
.align 2, 0
_0801C4F0: .4byte gUnk_0200AF00
_0801C4F4: .4byte gUnk_02035160
_0801C4F8: .4byte gUnk_03000F50
_0801C4FC:
ldrb r0, [r6, #0xa]
cmp r0, #0
bne _0801C560
movs r0, #2
strb r0, [r6, #0xa]
ldr r3, _0801C54C @ =gUnk_02035160
adds r4, r3, #0
adds r4, #0x40
ldr r1, _0801C550 @ =gUnk_080FD590
ldr r2, _0801C554 @ =gUnk_02002A40
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r1, [r0, #2]
strh r1, [r3]
adds r0, r1, #1
strh r0, [r3, #2]
adds r0, r1, #2
strh r0, [r4]
adds r0, r1, #3
strh r0, [r4, #2]
ldr r1, _0801C558 @ =0x0000F070
strh r1, [r3, #4]
adds r0, r1, #1
strh r0, [r4, #4]
adds r0, r1, #2
strh r0, [r3, #6]
adds r0, r1, #3
strh r0, [r4, #6]
adds r0, r1, #4
strh r0, [r3, #8]
adds r0, r1, #5
strh r0, [r4, #8]
ldr r1, _0801C55C @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
movs r4, #1
b _0801C564
.align 2, 0
_0801C54C: .4byte gUnk_02035160
_0801C550: .4byte gUnk_080FD590
_0801C554: .4byte gUnk_02002A40
_0801C558: .4byte 0x0000F070
_0801C55C: .4byte gUnk_03000F50
_0801C560:
movs r4, #0
ldr r2, _0801C580 @ =gUnk_02002A40
_0801C564:
adds r5, r6, #0
adds r0, r2, #0
adds r0, #0xc0
ldrh r1, [r5, #0xe]
adds r3, r1, #0
ldrh r0, [r0]
cmp r3, r0
beq _0801C58A
cmp r3, r0
bhs _0801C584
adds r0, r1, #1
strh r0, [r5, #0xe]
b _0801C588
.align 2, 0
_0801C580: .4byte gUnk_02002A40
_0801C584:
subs r0, r1, #1
strh r0, [r6, #0xe]
_0801C588:
movs r4, #2
_0801C58A:
cmp r4, #1
beq _0801C5A4
cmp r4, #2
bne _0801C5CC
ldr r0, _0801C5D4 @ =gUnk_0200AF00
ldrb r0, [r0, #0xc]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0801C5A4
movs r0, #0x6f
bl sub_080A3268
_0801C5A4:
ldr r4, _0801C5D4 @ =gUnk_0200AF00
ldrh r3, [r4, #0xe]
movs r2, #0
ldr r1, _0801C5D8 @ =gUnk_080FD590
ldr r0, _0801C5DC @ =gUnk_02002A40
adds r0, #0xa8
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r0, [r0]
cmp r0, r3
bhi _0801C5BE
movs r2, #1
_0801C5BE:
movs r0, #0x70
adds r1, r3, #0
movs r3, #3
bl sub_0801C5E0
ldrb r0, [r4, #0xc]
adds r4, r0, #1
_0801C5CC:
ldr r0, _0801C5D4 @ =gUnk_0200AF00
strb r4, [r0, #0xc]
_0801C5D0:
pop {r4, r5, r6, pc}
.align 2, 0
_0801C5D4: .4byte gUnk_0200AF00
_0801C5D8: .4byte gUnk_080FD590
_0801C5DC: .4byte gUnk_02002A40
thumb_func_start sub_0801C5E0
sub_0801C5E0: @ 0x0801C5E0
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r7, _0801C650 @ =gUnk_085C4B20
cmp r2, #0
bne _0801C5F0
ldr r0, _0801C654 @ =0xFFFFFD80
adds r7, r7, r0
_0801C5F0:
ldr r0, _0801C658 @ =0x000003FF
ands r0, r4
lsls r6, r0, #5
ldr r0, _0801C65C @ =0x0600C000
adds r4, r6, r0
cmp r3, #2
beq _0801C620
cmp r3, #3
bne _0801C63C
adds r0, r5, #0
movs r1, #0x64
bl Div
adds r5, r1, #0
ldr r1, _0801C660 @ =0x040000D4
lsls r0, r0, #6
adds r0, r7, r0
str r0, [r1]
str r4, [r1, #4]
ldr r0, _0801C664 @ =0x84000010
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0801C668 @ =0x0600C040
adds r4, r6, r0
_0801C620:
adds r0, r5, #0
movs r1, #0xa
bl Div
adds r5, r1, #0
ldr r1, _0801C660 @ =0x040000D4
lsls r0, r0, #6
adds r0, r7, r0
str r0, [r1]
str r4, [r1, #4]
ldr r0, _0801C664 @ =0x84000010
str r0, [r1, #8]
ldr r0, [r1, #8]
adds r4, #0x40
_0801C63C:
ldr r1, _0801C660 @ =0x040000D4
lsls r0, r5, #6
adds r0, r7, r0
str r0, [r1]
str r4, [r1, #4]
ldr r0, _0801C664 @ =0x84000010
str r0, [r1, #8]
ldr r0, [r1, #8]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C650: .4byte gUnk_085C4B20
_0801C654: .4byte 0xFFFFFD80
_0801C658: .4byte 0x000003FF
_0801C65C: .4byte 0x0600C000
_0801C660: .4byte 0x040000D4
_0801C664: .4byte 0x84000010
_0801C668: .4byte 0x0600C040
thumb_func_start sub_0801C66C
sub_0801C66C: @ 0x0801C66C
push {lr}
ldr r1, _0801C6A4 @ =gUnk_0200AF00
ldrb r0, [r1, #2]
cmp r0, #0
beq _0801C6A2
movs r0, #0
strb r0, [r1, #2]
ldrb r0, [r1, #4]
movs r2, #1
cmp r0, #0x28
bls _0801C684
movs r2, #2
_0801C684:
ldr r0, _0801C6A8 @ =gUnk_02034CF0
ldr r3, _0801C6AC @ =gUnk_03000F50
movs r1, #0
_0801C68A:
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #0xc]
str r1, [r0, #0x10]
str r1, [r0, #0x14]
adds r0, #0x40
subs r2, #1
cmp r2, #0
bgt _0801C68A
movs r0, #1
strh r0, [r3, #0xe]
_0801C6A2:
pop {pc}
.align 2, 0
_0801C6A4: .4byte gUnk_0200AF00
_0801C6A8: .4byte gUnk_02034CF0
_0801C6AC: .4byte gUnk_03000F50
thumb_func_start sub_0801C6B0
sub_0801C6B0: @ 0x0801C6B0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r2, _0801C6CC @ =gUnk_0200AF00
ldrb r1, [r2, #1]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0801C6D0
bl sub_0801C824
bl sub_0801C66C
b _0801C802
.align 2, 0
_0801C6CC: .4byte gUnk_0200AF00
_0801C6D0:
ldr r5, _0801C6F8 @ =gUnk_02002A40
adds r0, r5, #0
adds r0, #0xab
ldrb r0, [r0]
lsrs r4, r0, #1
ldrb r0, [r2, #4]
cmp r4, r0
beq _0801C6EA
strb r4, [r2, #4]
bl sub_0801C824
bl sub_0801C66C
_0801C6EA:
adds r1, r5, #0
adds r1, #0xaa
ldrb r0, [r1]
cmp r0, #1
beq _0801C6FC
lsrs r1, r0, #1
b _0801C6FE
.align 2, 0
_0801C6F8: .4byte gUnk_02002A40
_0801C6FC:
movs r1, #1
_0801C6FE:
cmp r1, r4
ble _0801C704
adds r1, r4, #0
_0801C704:
movs r4, #0
ldr r0, _0801C748 @ =gUnk_0200AF00
ldrb r2, [r0, #3]
adds r7, r0, #0
cmp r1, r2
beq _0801C718
movs r4, #1
cmp r1, r2
ble _0801C718
movs r4, #2
_0801C718:
cmp r4, #1
beq _0801C750
cmp r4, #2
bne _0801C756
ldrb r0, [r7, #5]
adds r1, r0, #1
strb r1, [r7, #5]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0801C74C
movs r0, #7
ands r1, r0
cmp r1, #0
bne _0801C740
movs r0, #0x71
bl sub_080A3268
_0801C740:
ldrb r0, [r7, #3]
adds r0, #1
strb r0, [r7, #3]
b _0801C75A
.align 2, 0
_0801C748: .4byte gUnk_0200AF00
_0801C74C:
movs r4, #0
b _0801C75A
_0801C750:
ldrb r0, [r7, #3]
subs r0, #1
strb r0, [r7, #3]
_0801C756:
movs r0, #0
strb r0, [r7, #5]
_0801C75A:
ldrb r0, [r7, #2]
cmp r0, #0
beq _0801C764
cmp r4, #0
beq _0801C802
_0801C764:
movs r0, #2
strb r0, [r7, #2]
ldrb r0, [r7, #3]
lsrs r3, r0, #2
cmp r3, #0xa
ble _0801C77A
movs r1, #0xa
mov r8, r1
adds r6, r3, #0
subs r6, #0xa
b _0801C77E
_0801C77A:
mov r8, r3
movs r6, #0
_0801C77E:
ldrb r0, [r7, #4]
lsrs r4, r0, #2
adds r1, r4, #0
cmp r4, #0xa
ble _0801C78A
movs r4, #0xa
_0801C78A:
adds r2, r1, #0
subs r2, #0xa
ldr r0, _0801C808 @ =gUnk_080C8F2C
mov ip, r0
cmp r2, #0
ble _0801C7B8
ldr r5, _0801C80C @ =gUnk_02034D30
ldr r1, _0801C810 @ =0x0000F010
adds r0, r1, #0
strh r0, [r5]
ldr r1, _0801C814 @ =0x040000D4
movs r0, #0xa
subs r0, r0, r6
lsls r0, r0, #1
add r0, ip
str r0, [r1]
adds r0, r5, #2
str r0, [r1, #4]
movs r0, #0x80
lsls r0, r0, #0x18
orrs r2, r0
str r2, [r1, #8]
ldr r0, [r1, #8]
_0801C7B8:
ldr r5, _0801C818 @ =gUnk_02034CF0
ldr r2, _0801C810 @ =0x0000F010
adds r0, r2, #0
strh r0, [r5]
ldr r1, _0801C814 @ =0x040000D4
movs r0, #0xa
mov r2, r8
subs r0, r0, r2
lsls r0, r0, #1
add r0, ip
str r0, [r1]
adds r0, r5, #2
str r0, [r1, #4]
movs r0, #0x80
lsls r0, r0, #0x18
orrs r4, r0
str r4, [r1, #8]
ldr r0, [r1, #8]
ldrb r0, [r7, #3]
movs r1, #3
ands r1, r0
cmp r1, #0
beq _0801C7FC
cmp r3, #9
ble _0801C7EE
subs r3, #0xa
adds r5, #0x40
_0801C7EE:
lsls r0, r3, #1
adds r0, r0, r5
adds r1, #0x11
ldr r3, _0801C81C @ =0xFFFFF000
adds r2, r3, #0
orrs r1, r2
strh r1, [r0, #2]
_0801C7FC:
ldr r1, _0801C820 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
_0801C802:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C808: .4byte gUnk_080C8F2C
_0801C80C: .4byte gUnk_02034D30
_0801C810: .4byte 0x0000F010
_0801C814: .4byte 0x040000D4
_0801C818: .4byte gUnk_02034CF0
_0801C81C: .4byte 0xFFFFF000
_0801C820: .4byte gUnk_03000F50
thumb_func_start sub_0801C824
sub_0801C824: @ 0x0801C824
push {lr}
ldr r1, _0801C850 @ =gUnk_0200AF00
ldrb r0, [r1, #6]
cmp r0, #0
beq _0801C84E
movs r2, #0
strb r2, [r1, #6]
ldrb r0, [r1, #4]
ldr r1, _0801C854 @ =gUnk_02034D30
cmp r0, #0x28
bls _0801C83C
adds r1, #0x40
_0801C83C:
str r2, [r1]
str r2, [r1, #4]
str r2, [r1, #8]
str r2, [r1, #0xc]
str r2, [r1, #0x10]
str r2, [r1, #0x14]
ldr r1, _0801C858 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
_0801C84E:
pop {pc}
.align 2, 0
_0801C850: .4byte gUnk_0200AF00
_0801C854: .4byte gUnk_02034D30
_0801C858: .4byte gUnk_03000F50
thumb_func_start sub_0801C85C
sub_0801C85C: @ 0x0801C85C
push {r4, r5, r6, lr}
movs r2, #0
ldr r5, _0801C884 @ =gUnk_0200AF00
ldrb r1, [r5, #1]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _0801C878
ldr r0, _0801C888 @ =gUnk_03003F80
adds r0, #0xa0
ldrb r1, [r0]
rsbs r0, r1, #0
orrs r0, r1
lsrs r2, r0, #0x1f
_0801C878:
cmp r2, #0
bne _0801C88C
bl sub_0801C824
b _0801C984
.align 2, 0
_0801C884: .4byte gUnk_0200AF00
_0801C888: .4byte gUnk_03003F80
_0801C88C:
ldrb r0, [r5, #4]
ldr r4, _0801C92C @ =gUnk_02034D30
cmp r0, #0x28
bls _0801C896
adds r4, #0x40
_0801C896:
ldr r0, _0801C930 @ =gUnk_03003F80
adds r0, #0xa4
movs r1, #0
ldrsh r0, [r0, r1]
adds r0, #0x13
movs r1, #0x14
bl Div
adds r1, r0, #0
cmp r1, #0x28
bls _0801C8AE
movs r1, #0x28
_0801C8AE:
ldrb r0, [r5, #6]
cmp r0, #0
beq _0801C8BA
ldrb r0, [r5, #7]
cmp r0, r1
beq _0801C910
_0801C8BA:
movs r6, #1
strb r6, [r5, #6]
strb r1, [r5, #7]
adds r0, r1, #0
movs r1, #4
bl Div
adds r3, r0, #0
adds r5, r1, #0
ldr r1, _0801C934 @ =0x0000F016
adds r0, r1, #0
strh r0, [r4]
ldr r1, _0801C938 @ =0x0000F416
adds r0, r1, #0
strh r0, [r4, #0x16]
ldr r2, _0801C93C @ =0x040000D4
movs r0, #0xa
subs r0, r0, r3
lsls r0, r0, #1
ldr r1, _0801C940 @ =gUnk_080C8F54
adds r0, r0, r1
str r0, [r2]
adds r0, r4, #2
str r0, [r2, #4]
ldr r0, _0801C944 @ =0x8000000A
str r0, [r2, #8]
ldr r0, [r2, #8]
cmp r5, #0
beq _0801C90C
lsls r2, r3, #1
adds r2, r2, r4
adds r0, r5, #0
adds r0, #0x17
ldr r3, _0801C948 @ =0x000003FF
adds r1, r3, #0
ands r0, r1
movs r3, #0xf0
lsls r3, r3, #8
adds r1, r3, #0
orrs r0, r1
strh r0, [r2, #2]
_0801C90C:
ldr r0, _0801C94C @ =gUnk_03000F50
strh r6, [r0, #0xe]
_0801C910:
ldr r0, _0801C930 @ =gUnk_03003F80
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #5
bgt _0801C962
cmp r0, #4
blt _0801C962
ldr r2, _0801C950 @ =gUnk_0200AF00
ldrb r1, [r2, #9]
adds r4, r2, #0
cmp r0, #4
bne _0801C954
adds r0, r1, #2
b _0801C956
.align 2, 0
_0801C92C: .4byte gUnk_02034D30
_0801C930: .4byte gUnk_03003F80
_0801C934: .4byte 0x0000F016
_0801C938: .4byte 0x0000F416
_0801C93C: .4byte 0x040000D4
_0801C940: .4byte gUnk_080C8F54
_0801C944: .4byte 0x8000000A
_0801C948: .4byte 0x000003FF
_0801C94C: .4byte gUnk_03000F50
_0801C950: .4byte gUnk_0200AF00
_0801C954:
adds r0, r1, #1
_0801C956:
strb r0, [r2, #9]
ldrb r0, [r4, #9]
lsrs r3, r0, #4
movs r0, #3
ands r3, r0
b _0801C966
_0801C962:
movs r3, #0
ldr r4, _0801C988 @ =gUnk_0200AF00
_0801C966:
ldrb r0, [r4, #8]
cmp r3, r0
beq _0801C984
strb r3, [r4, #8]
ldr r4, _0801C98C @ =0x0600C2C0
ldr r1, _0801C990 @ =0x040000D4
ldr r2, _0801C994 @ =gUnk_080C8F7C
lsls r0, r3, #2
adds r0, r0, r2
ldr r0, [r0]
str r0, [r1]
str r4, [r1, #4]
ldr r0, _0801C998 @ =0x84000030
str r0, [r1, #8]
ldr r0, [r1, #8]
_0801C984:
pop {r4, r5, r6, pc}
.align 2, 0
_0801C988: .4byte gUnk_0200AF00
_0801C98C: .4byte 0x0600C2C0
_0801C990: .4byte 0x040000D4
_0801C994: .4byte gUnk_080C8F7C
_0801C998: .4byte 0x84000030
thumb_func_start sub_0801C99C
sub_0801C99C: @ 0x0801C99C
push {r4, r5, lr}
ldr r4, _0801C9E0 @ =gUnk_0200AF00
ldrb r1, [r4, #1]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0801C9B2
bl sub_08052724
cmp r0, #0
bne _0801C9EC
_0801C9B2:
ldrb r0, [r4, #0x10]
cmp r0, #0
beq _0801CA50
movs r0, #0
strb r0, [r4, #0x10]
ldr r2, _0801C9E4 @ =gUnk_020350E2
strh r0, [r2]
strh r0, [r2, #2]
strh r0, [r2, #4]
strh r0, [r2, #6]
adds r1, r2, #0
adds r1, #0x40
strh r0, [r1]
adds r1, #2
strh r0, [r1]
adds r1, #2
strh r0, [r1]
adds r1, #2
strh r0, [r1]
ldr r1, _0801C9E8 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
b _0801CA50
.align 2, 0
_0801C9E0: .4byte gUnk_0200AF00
_0801C9E4: .4byte gUnk_020350E2
_0801C9E8: .4byte gUnk_03000F50
_0801C9EC:
ldrb r0, [r4, #0x10]
cmp r0, #0
bne _0801CA1E
ldr r2, _0801CA54 @ =gUnk_020350E2
adds r1, r2, #0
adds r1, #0x40
ldr r3, _0801CA58 @ =0x0000F01C
strh r3, [r2]
adds r0, r3, #1
strh r0, [r2, #2]
adds r0, r3, #2
strh r0, [r1]
adds r0, r3, #3
strh r0, [r1, #2]
adds r3, #0x5a
strh r3, [r2, #4]
adds r0, r3, #1
strh r0, [r1, #4]
adds r0, r3, #2
strh r0, [r2, #6]
adds r0, r3, #3
strh r0, [r1, #6]
ldr r1, _0801CA5C @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
_0801CA1E:
ldr r0, _0801CA60 @ =gUnk_02002A40
ldr r3, _0801CA64 @ =gUnk_02033A90
ldrb r1, [r3, #3]
ldr r5, _0801CA68 @ =0x0000045C
adds r2, r0, r5
adds r1, r1, r2
ldrb r0, [r4, #0x12]
ldrb r1, [r1]
cmp r0, r1
bne _0801CA38
ldrb r0, [r4, #0x10]
cmp r0, #0
bne _0801CA50
_0801CA38:
movs r0, #2
strb r0, [r4, #0x10]
ldrb r0, [r3, #3]
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r4, #0x12]
ldrb r1, [r4, #0x12]
movs r0, #0x76
movs r2, #0
movs r3, #2
bl sub_0801C5E0
_0801CA50:
pop {r4, r5, pc}
.align 2, 0
_0801CA54: .4byte gUnk_020350E2
_0801CA58: .4byte 0x0000F01C
_0801CA5C: .4byte gUnk_03000F50
_0801CA60: .4byte gUnk_02002A40
_0801CA64: .4byte gUnk_02033A90
_0801CA68: .4byte 0x0000045C
thumb_func_start sub_0801CA6C
sub_0801CA6C: @ 0x0801CA6C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r3, #0
ldr r7, _0801CAA8 @ =gUnk_0200AF34
movs r0, #1
mov ip, r0
ldr r1, _0801CAAC @ =gUnk_080C8F8C
lsls r0, r5, #4
adds r4, r0, r1
_0801CA80:
lsls r0, r3, #5
adds r1, r0, r7
ldrb r2, [r1]
movs r0, #1
ands r0, r2
cmp r0, #0
bne _0801CAB0
strb r5, [r1, #1]
strb r6, [r1, #2]
movs r0, #0xff
strb r0, [r1, #0x10]
mov r0, ip
orrs r0, r2
strb r0, [r1]
ldrh r0, [r4, #4]
strh r0, [r1, #0x1a]
ldrb r0, [r4, #0xc]
strb r0, [r1, #3]
b _0801CAB6
.align 2, 0
_0801CAA8: .4byte gUnk_0200AF34
_0801CAAC: .4byte gUnk_080C8F8C
_0801CAB0:
adds r3, #1
cmp r3, #0x17
bls _0801CA80
_0801CAB6:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801CAB8
sub_0801CAB8: @ 0x0801CAB8
push {lr}
str r1, [r0, #0x14]
ldrb r2, [r1, #1]
strb r2, [r0, #0x11]
ldrb r2, [r1, #2]
strb r2, [r0, #0x12]
ldrb r2, [r1, #3]
strb r2, [r0, #0x13]
ldrb r1, [r1]
bl sub_0801CAFC
pop {pc}
thumb_func_start sub_0801CAD0
sub_0801CAD0: @ 0x0801CAD0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0x11]
subs r0, #1
strb r0, [r2, #0x11]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801CAF8
ldr r1, [r2, #0x14]
movs r0, #3
ldrsb r0, [r1, r0]
cmp r0, #0
bge _0801CAF0
ldrb r0, [r1, #4]
lsls r0, r0, #2
subs r1, r1, r0
_0801CAF0:
adds r1, #4
adds r0, r2, #0
bl sub_0801CAB8
_0801CAF8:
pop {pc}
.align 2, 0
thumb_func_start sub_0801CAFC
sub_0801CAFC: @ 0x0801CAFC
push {lr}
adds r2, r0, #0
adds r3, r1, #0
ldrb r0, [r2, #1]
lsls r0, r0, #4
ldr r1, _0801CB1C @ =gUnk_080C8F8C
adds r1, r0, r1
ldrb r0, [r2, #0x10]
cmp r3, r0
beq _0801CB18
strb r3, [r2, #0x10]
adds r0, r2, #0
bl sub_0801CB20
_0801CB18:
pop {pc}
.align 2, 0
_0801CB1C: .4byte gUnk_080C8F8C
thumb_func_start sub_0801CB20
sub_0801CB20: @ 0x0801CB20
push {lr}
adds r3, r0, #0
ldrb r0, [r1, #0xe]
cmp r0, #0
bne _0801CB76
ldrh r1, [r1, #6]
lsls r1, r1, #4
ldr r0, _0801CB54 @ =gUnk_080029B4
adds r1, r1, r0
ldrb r0, [r3, #0x10]
lsls r0, r0, #2
ldr r2, [r1, #4]
adds r2, r2, r0
ldrh r0, [r2, #2]
lsls r0, r0, #5
ldr r1, [r1, #8]
adds r1, r1, r0
ldrb r2, [r2]
cmp r2, #0
bne _0801CB58
ldrb r1, [r3]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
strb r0, [r3]
b _0801CB74
.align 2, 0
_0801CB54: .4byte gUnk_080029B4
_0801CB58:
ldrb r0, [r3, #0x19]
cmp r0, r2
bne _0801CB64
ldr r0, [r3, #0x1c]
cmp r0, r1
beq _0801CB74
_0801CB64:
str r1, [r3, #0x1c]
ldrb r0, [r3]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r0
movs r0, #4
orrs r1, r0
strb r1, [r3]
_0801CB74:
strb r2, [r3, #0x19]
_0801CB76:
pop {pc}
thumb_func_start sub_0801CB78
sub_0801CB78: @ 0x0801CB78
push {lr}
ldr r2, _0801CB8C @ =gUnk_080C903C
ldrb r1, [r0, #4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801CB8C: .4byte gUnk_080C903C
thumb_func_start sub_0801CB90
sub_0801CB90: @ 0x0801CB90
push {lr}
ldr r3, _0801CBC4 @ =gUnk_0200AF00
ldrb r1, [r0, #1]
lsls r1, r1, #1
adds r2, r3, #0
adds r2, #0x16
adds r1, r1, r2
ldrh r1, [r1]
strh r1, [r0, #0xc]
ldrb r1, [r0, #1]
lsls r1, r1, #1
adds r3, #0x1c
adds r1, r1, r3
ldrh r1, [r1]
subs r1, #0x20
strh r1, [r0, #0xe]
movs r1, #1
strb r1, [r0, #4]
ldrb r1, [r0]
movs r2, #2
orrs r1, r2
strb r1, [r0]
ldrb r1, [r0, #1]
bl sub_0801CAFC
pop {pc}
.align 2, 0
_0801CBC4: .4byte gUnk_0200AF00
thumb_func_start sub_0801CBC8
sub_0801CBC8: @ 0x0801CBC8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #2]
movs r6, #8
cmp r0, #0
bne _0801CC10
movs r6, #4
cmp r0, #0
bne _0801CC10
ldr r3, _0801CC08 @ =gUnk_0200AF00
ldrb r0, [r3, #1]
ldrb r2, [r5, #1]
asrs r0, r2
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0801CBF6
ldr r0, _0801CC0C @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0801CC10
_0801CBF6:
lsls r0, r2, #1
adds r1, r3, #0
adds r1, #0x1c
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
adds r1, r0, #0
subs r1, #0x28
b _0801CC1E
.align 2, 0
_0801CC08: .4byte gUnk_0200AF00
_0801CC0C: .4byte gUnk_02000050
_0801CC10:
ldr r1, _0801CC7C @ =gUnk_0200AF00
ldrb r0, [r5, #1]
lsls r0, r0, #1
adds r1, #0x1c
adds r0, r0, r1
movs r2, #0
ldrsh r1, [r0, r2]
_0801CC1E:
movs r2, #0xe
ldrsh r0, [r5, r2]
subs r4, r1, r0
adds r1, r4, #0
cmp r4, #0
bge _0801CC2C
rsbs r4, r4, #0
_0801CC2C:
cmp r6, r4
bgt _0801CC32
adds r4, r6, #0
_0801CC32:
adds r0, r1, #0
bl sub_08000E44
muls r4, r0, r4
cmp r4, #0
beq _0801CC44
ldrh r0, [r5, #0xe]
adds r0, r0, r4
strh r0, [r5, #0xe]
_0801CC44:
ldr r0, _0801CC7C @ =gUnk_0200AF00
ldrb r1, [r5, #1]
lsls r1, r1, #1
adds r0, #0x16
adds r1, r1, r0
movs r0, #0
ldrsh r1, [r1, r0]
movs r2, #0xc
ldrsh r0, [r5, r2]
subs r4, r1, r0
adds r1, r4, #0
cmp r4, #0
bge _0801CC60
rsbs r4, r4, #0
_0801CC60:
cmp r6, r4
bgt _0801CC66
adds r4, r6, #0
_0801CC66:
adds r0, r1, #0
bl sub_08000E44
muls r4, r0, r4
cmp r4, #0
beq _0801CC78
ldrh r0, [r5, #0xc]
adds r0, r0, r4
strh r0, [r5, #0xc]
_0801CC78:
pop {r4, r5, r6, pc}
.align 2, 0
_0801CC7C: .4byte gUnk_0200AF00
thumb_func_start sub_0801CC80
sub_0801CC80: @ 0x0801CC80
push {r4, r5, lr}
ldrb r1, [r0, #1]
movs r0, #3
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
ldr r5, _0801CCAC @ =gUnk_02002A40
adds r1, r5, #0
adds r1, #0xb4
adds r0, r0, r1
ldrb r4, [r0]
adds r0, r4, #0
bl sub_080544C8
cmp r0, #0
beq _0801CCA8
adds r0, r5, r4
adds r0, #0x9a
ldrb r4, [r0]
_0801CCA8:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
_0801CCAC: .4byte gUnk_02002A40
thumb_func_start sub_0801CCB0
sub_0801CCB0: @ 0x0801CCB0
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r1, [r4]
movs r0, #3
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4]
adds r0, r4, #0
bl sub_0801CC80
adds r1, r0, #0
cmp r1, #0
beq _0801CD90
ldrb r0, [r4, #8]
cmp r0, r1
beq _0801CCE0
strb r1, [r4, #8]
ldr r0, _0801CD1C @ =gUnk_080FDFD8
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl sub_0801CAB8
_0801CCE0:
ldrb r0, [r4, #1]
movs r1, #3
eors r0, r1
rsbs r1, r0, #0
orrs r1, r0
lsrs r6, r1, #0x1f
ldr r3, _0801CD20 @ =gUnk_0200AF13
cmp r6, #0
beq _0801CCF4
adds r3, #1
_0801CCF4:
ldrb r0, [r4, #8]
cmp r0, #7
blt _0801CD60
cmp r0, #8
ble _0801CD28
cmp r0, #0xa
bgt _0801CD60
ldr r1, _0801CD24 @ =gUnk_02002A40
adds r0, r1, #0
adds r0, #0xad
ldrb r2, [r0]
ldrb r0, [r3]
adds r5, r1, #0
cmp r0, r2
beq _0801CD4C
adds r0, r2, #0
adds r0, #0x80
strb r0, [r3]
b _0801CD4C
.align 2, 0
_0801CD1C: .4byte gUnk_080FDFD8
_0801CD20: .4byte gUnk_0200AF13
_0801CD24: .4byte gUnk_02002A40
_0801CD28:
ldr r5, _0801CD44 @ =gUnk_02002A40
adds r0, r5, #0
adds r0, #0xac
ldrb r2, [r0]
ldrb r0, [r3]
cmp r0, r2
beq _0801CD3C
adds r0, r2, #0
adds r0, #0x80
strb r0, [r3]
_0801CD3C:
ldr r1, _0801CD48 @ =gUnk_080FD5A0
adds r0, r5, #0
adds r0, #0xae
b _0801CD52
.align 2, 0
_0801CD44: .4byte gUnk_02002A40
_0801CD48: .4byte gUnk_080FD5A0
_0801CD4C:
ldr r1, _0801CD5C @ =gUnk_080FD5A4
adds r0, r5, #0
adds r0, #0xaf
_0801CD52:
ldrb r0, [r0]
adds r0, r0, r1
ldrb r0, [r0]
b _0801CD64
.align 2, 0
_0801CD5C: .4byte gUnk_080FD5A4
_0801CD60:
movs r0, #1
movs r2, #0
_0801CD64:
movs r1, #3
cmp r0, r2
bhi _0801CD6C
movs r1, #4
_0801CD6C:
strb r1, [r4, #0x18]
adds r0, r6, #0
bl sub_0801CE24
adds r1, r0, #0
cmp r1, #0
beq _0801CD90
ldrh r0, [r1, #0xc]
strh r0, [r4, #0xc]
ldrh r0, [r1, #0xe]
strh r0, [r4, #0xe]
ldrb r0, [r4]
movs r1, #2
orrs r0, r1
strb r0, [r4]
adds r0, r4, #0
bl sub_0801CAD0
_0801CD90:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801CD94
sub_0801CD94: @ 0x0801CD94
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #2]
ldr r1, _0801CDC0 @ =gUnk_0200AF00
cmp r0, #9
bne _0801CDD4
adds r0, r1, #0
adds r0, #0x2f
ldrb r2, [r0]
cmp r2, #0
bne _0801CDCE
ldr r0, _0801CDC4 @ =gUnk_02033A90
ldrb r0, [r0, #0x18]
cmp r0, #2
beq _0801CDC8
cmp r0, #3
beq _0801CDCC
adds r0, r1, #0
adds r0, #0x2c
ldrb r2, [r0]
b _0801CDCE
.align 2, 0
_0801CDC0: .4byte gUnk_0200AF00
_0801CDC4: .4byte gUnk_02033A90
_0801CDC8:
movs r2, #0xb
b _0801CDCE
_0801CDCC:
movs r2, #0xa
_0801CDCE:
adds r0, r1, #0
adds r0, #0x32
strb r2, [r0]
_0801CDD4:
adds r0, r1, #0
adds r0, #0x30
ldrb r1, [r4, #3]
adds r0, r0, r1
ldrb r2, [r0]
ldrb r1, [r4]
movs r0, #3
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4]
cmp r2, #0
beq _0801CE1E
ldr r1, _0801CE20 @ =gUnk_080C9044
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
adds r0, r0, r1
ldrb r0, [r0]
adds r2, r2, r0
adds r0, r4, #0
adds r1, r2, #0
bl sub_0801CAFC
ldrb r0, [r4, #3]
bl sub_0801CE24
adds r1, r0, #0
cmp r1, #0
beq _0801CE1E
ldrh r0, [r1, #0xc]
strh r0, [r4, #0xc]
ldrh r0, [r1, #0xe]
strh r0, [r4, #0xe]
ldrb r0, [r4]
movs r1, #2
orrs r0, r1
strb r0, [r4]
_0801CE1E:
pop {r4, pc}
.align 2, 0
_0801CE20: .4byte gUnk_080C9044
thumb_func_start sub_0801CE24
sub_0801CE24: @ 0x0801CE24
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r4, #0
movs r6, #1
ldr r3, _0801CE44 @ =gUnk_0200AF34
adds r2, r3, #0
_0801CE30:
ldrb r1, [r2]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0801CE48
ldrb r0, [r2, #1]
cmp r5, r0
bne _0801CE48
adds r0, r3, #0
b _0801CE54
.align 2, 0
_0801CE44: .4byte gUnk_0200AF34
_0801CE48:
adds r2, #0x20
adds r3, #0x20
adds r4, #1
cmp r4, #0x17
bls _0801CE30
movs r0, #0
_0801CE54:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801CE58
sub_0801CE58: @ 0x0801CE58
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3]
movs r4, #3
rsbs r4, r4, #0
ands r4, r0
strb r4, [r3]
ldr r2, _0801CEB8 @ =gUnk_0200AF00
ldrb r1, [r2, #1]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0801CEB4
ldr r0, _0801CEBC @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0801CEB4
ldrb r2, [r2, #3]
cmp r2, #0
beq _0801CEB4
movs r0, #2
adds r1, r4, #0
orrs r1, r0
strb r1, [r3]
adds r0, r2, #3
lsrs r0, r0, #2
lsls r0, r0, #3
adds r1, r0, #3
movs r4, #0xc
cmp r2, #0x28
bls _0801CE9E
movs r4, #0x14
subs r1, #0x50
_0801CE9E:
strh r1, [r3, #0xc]
strh r4, [r3, #0xe]
movs r1, #3
ands r1, r2
cmp r1, #0
bne _0801CEAC
movs r1, #4
_0801CEAC:
adds r1, #0x71
adds r0, r3, #0
bl sub_0801CAFC
_0801CEB4:
pop {r4, pc}
.align 2, 0
_0801CEB8: .4byte gUnk_0200AF00
_0801CEBC: .4byte gUnk_02000050
thumb_func_start sub_0801CEC0
sub_0801CEC0: @ 0x0801CEC0
push {lr}
ldr r2, _0801CED4 @ =gUnk_080C904C
ldrb r1, [r0, #4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801CED4: .4byte gUnk_080C904C
thumb_func_start sub_0801CED8
sub_0801CED8: @ 0x0801CED8
push {r4, lr}
adds r3, r0, #0
ldr r0, _0801CF10 @ =gUnk_0200AF00
adds r1, r0, #0
adds r1, #0x24
ldrb r4, [r1]
cmp r4, #1
bne _0801CF0E
movs r2, #2
movs r0, #2
strb r0, [r1]
movs r1, #0
movs r0, #0x10
strh r0, [r3, #0xc]
movs r0, #0x90
strh r0, [r3, #0xe]
strb r1, [r3, #6]
movs r0, #7
strb r0, [r3, #1]
strb r4, [r3, #4]
ldrb r0, [r3]
orrs r0, r2
strb r0, [r3]
ldr r1, _0801CF14 @ =gUnk_080C9094
adds r0, r3, #0
bl sub_0801CAB8
_0801CF0E:
pop {r4, pc}
.align 2, 0
_0801CF10: .4byte gUnk_0200AF00
_0801CF14: .4byte gUnk_080C9094
thumb_func_start sub_0801CF18
sub_0801CF18: @ 0x0801CF18
push {r4, r5, lr}
adds r5, r0, #0
ldr r2, _0801CF54 @ =gUnk_080C9058
ldrb r0, [r5, #6]
adds r1, r0, #1
strb r1, [r5, #6]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r2
ldrh r4, [r0]
movs r0, #0
adds r1, r4, #0
adds r2, r4, #0
movs r3, #0
bl sub_0805ECEC
cmp r4, #0
bne _0801CF52
movs r0, #2
strb r0, [r5, #4]
movs r0, #8
strb r0, [r5, #1]
ldr r0, _0801CF58 @ =gUnk_0200AF00
adds r0, #0x24
movs r1, #3
strb r1, [r0]
ldr r0, _0801CF5C @ =0x00000173
bl sub_080A3268
_0801CF52:
pop {r4, r5, pc}
.align 2, 0
_0801CF54: .4byte gUnk_080C9058
_0801CF58: .4byte gUnk_0200AF00
_0801CF5C: .4byte 0x00000173
thumb_func_start sub_0801CF60
sub_0801CF60: @ 0x0801CF60
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0801CF8C @ =gUnk_0200AF00
adds r5, r0, #0
adds r5, #0x24
ldrb r0, [r5]
cmp r0, #4
bhi _0801CF7C
ldr r0, _0801CF90 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0801CF94
_0801CF7C:
movs r0, #0
strb r0, [r4, #4]
ldrb r1, [r4]
subs r0, #3
ands r0, r1
strb r0, [r4]
b _0801CFA4
.align 2, 0
_0801CF8C: .4byte gUnk_0200AF00
_0801CF90: .4byte gUnk_02000050
_0801CF94:
adds r0, r4, #0
bl sub_0801CAD0
ldrb r0, [r4, #0x13]
cmp r0, #1
bne _0801CFA4
movs r0, #4
strb r0, [r5]
_0801CFA4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0801CFA8
sub_0801CFA8: @ 0x0801CFA8
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0801CFCC @ =gUnk_02001A00
movs r1, #0x40
bl sub_0801D630
movs r4, #0
_0801CFB6:
adds r0, r4, #0
bl sub_0801CFD0
adds r4, #1
cmp r4, #5
bls _0801CFB6
adds r0, r5, #0
bl sub_0801D000
pop {r4, r5, pc}
.align 2, 0
_0801CFCC: .4byte gUnk_02001A00
thumb_func_start sub_0801CFD0
sub_0801CFD0: @ 0x0801CFD0
lsls r0, r0, #2
ldr r1, _0801CFF8 @ =gUnk_02001A00
adds r0, r0, r1
ldrb r2, [r0]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r2
movs r2, #4
orrs r1, r2
movs r2, #0xf
ands r1, r2
movs r2, #0x10
orrs r1, r2
strb r1, [r0]
movs r1, #0x80
strb r1, [r0, #1]
ldr r1, _0801CFFC @ =0x0000FFFF
strh r1, [r0, #2]
bx lr
.align 2, 0
_0801CFF8: .4byte gUnk_02001A00
_0801CFFC: .4byte 0x0000FFFF
thumb_func_start sub_0801D000
sub_0801D000: @ 0x0801D000
push {lr}
adds r2, r0, #0
ldr r0, _0801D024 @ =gUnk_030010A0
movs r1, #0
cmp r2, #0
beq _0801D00E
movs r1, #0xf
_0801D00E:
adds r0, #0x2f
strb r1, [r0]
cmp r2, #0
beq _0801D028
bl sub_0801D34C
movs r0, #0xf
bl sub_0801CFD0
b _0801D03A
.align 2, 0
_0801D024: .4byte gUnk_030010A0
_0801D028:
ldr r3, _0801D03C @ =gUnk_02001A3C
ldrb r1, [r3]
movs r0, #0xf
ands r0, r1
cmp r0, #4
bne _0801D03A
strb r2, [r3]
strb r2, [r3, #1]
strh r2, [r3, #2]
_0801D03A:
pop {pc}
.align 2, 0
_0801D03C: .4byte gUnk_02001A3C
thumb_func_start sub_0801D040
sub_0801D040: @ 0x0801D040
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
str r0, [sp]
adds r6, r1, #0
adds r0, r6, #0
bl sub_0801D108
adds r5, r0, #0
cmp r5, #0
bge _0801D0E8
cmp r6, #0x15
bhi _0801D064
movs r4, #1
b _0801D074
_0801D064:
ldr r0, _0801D100 @ =gUnk_08133368
adds r1, r6, #0
subs r1, #0x16
lsls r1, r1, #2
adds r1, r1, r0
ldrb r4, [r1, #3]
movs r0, #0xf
ands r4, r0
_0801D074:
adds r0, r4, #0
bl sub_0801D134
adds r5, r0, #0
cmp r5, #0
bge _0801D090
bl sub_0801D34C
adds r0, r4, #0
bl sub_0801D134
adds r5, r0, #0
cmp r5, #0
blt _0801D0E8
_0801D090:
lsls r1, r5, #2
ldr r0, _0801D104 @ =gUnk_02001A00
adds r3, r1, r0
movs r0, #0
strh r6, [r3, #2]
strb r0, [r3, #1]
movs r2, #0x10
rsbs r2, r2, #0
lsls r0, r4, #4
movs r1, #3
orrs r0, r1
strb r0, [r3]
subs r4, #1
cmp r4, #0
beq _0801D0E0
movs r0, #0
mov sl, r0
movs r1, #0
mov r8, r1
movs r0, #0xf
mov sb, r0
mov ip, r2
movs r7, #2
_0801D0BE:
adds r3, #4
mov r1, r8
strh r1, [r3, #2]
mov r0, sl
strb r0, [r3, #1]
lsls r2, r4, #4
ldrb r1, [r3]
mov r0, sb
ands r0, r1
orrs r0, r2
mov r1, ip
ands r0, r1
orrs r0, r7
strb r0, [r3]
subs r4, #1
cmp r4, #0
bne _0801D0BE
_0801D0E0:
adds r0, r6, #0
adds r1, r5, #0
bl sub_0801D2C8
_0801D0E8:
ldr r0, [sp]
adds r1, r5, #0
bl sub_0801D19C
adds r0, r5, #0
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801D100: .4byte gUnk_08133368
_0801D104: .4byte gUnk_02001A00
thumb_func_start sub_0801D108
sub_0801D108: @ 0x0801D108
push {lr}
adds r2, r0, #0
cmp r2, #5
bhi _0801D116
b _0801D12E
_0801D112:
adds r0, r1, #0
b _0801D12E
_0801D116:
movs r1, #6
ldr r0, _0801D130 @ =gUnk_02001A00
adds r0, #0x18
_0801D11C:
ldrh r3, [r0, #2]
cmp r2, r3
beq _0801D112
adds r0, #4
adds r1, #1
cmp r1, #0xf
bls _0801D11C
movs r0, #1
rsbs r0, r0, #0
_0801D12E:
pop {pc}
.align 2, 0
_0801D130: .4byte gUnk_02001A00
thumb_func_start sub_0801D134
sub_0801D134: @ 0x0801D134
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r2, #6
ldr r0, _0801D154 @ =gUnk_02001A00
adds r3, r0, #0
adds r3, #0x18
_0801D142:
ldrb r0, [r3]
lsls r0, r0, #0x1c
cmp r0, #0
bne _0801D158
adds r1, #1
cmp r4, r1
bhi _0801D15A
b _0801D180
.align 2, 0
_0801D154: .4byte gUnk_02001A00
_0801D158:
movs r1, #0
_0801D15A:
adds r3, #4
adds r2, #1
cmp r2, #0xf
bls _0801D142
movs r1, #0
movs r2, #6
ldr r0, _0801D188 @ =gUnk_02001A00
adds r3, r0, #0
adds r3, #0x18
_0801D16C:
ldrb r0, [r3]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #1
bgt _0801D18C
cmp r0, #0
blt _0801D18C
adds r1, #1
cmp r4, r1
bhi _0801D18E
_0801D180:
subs r0, r1, #1
subs r0, r2, r0
b _0801D19A
.align 2, 0
_0801D188: .4byte gUnk_02001A00
_0801D18C:
movs r1, #0
_0801D18E:
adds r3, #4
adds r2, #1
cmp r2, #0xf
bls _0801D16C
movs r0, #1
rsbs r0, r0, #0
_0801D19A:
pop {r4, pc}
thumb_func_start sub_0801D19C
sub_0801D19C: @ 0x0801D19C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r3, r1, #0
cmp r3, #0
bge _0801D1A8
movs r3, #0
_0801D1A8:
adds r0, r4, #0
adds r0, #0x28
ldrb r0, [r0]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x7e
bls _0801D1BE
adds r0, r4, #0
adds r0, #0x27
strb r3, [r0]
_0801D1BE:
movs r0, #0xf
adds r1, r3, #0
ands r1, r0
ldrb r2, [r4, #0x1a]
movs r5, #0x10
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r2
orrs r0, r1
movs r2, #0xf
adds r1, r3, #0
ands r1, r2
lsls r1, r1, #4
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
lsls r1, r3, #2
ldr r0, _0801D22C @ =gUnk_02001A00
adds r4, r1, r0
ldr r0, [r4]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #4
beq _0801D22A
ldrb r0, [r4, #1]
adds r0, #1
strb r0, [r4, #1]
ldr r0, [r4]
lsls r0, r0, #0x18
lsrs r3, r0, #0x1c
ldrb r1, [r4]
adds r0, r5, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4]
subs r3, #1
cmp r3, #0
beq _0801D22A
movs r7, #0xf
adds r6, r5, #0
movs r5, #2
_0801D212:
adds r4, #4
lsls r2, r3, #4
ldrb r1, [r4]
adds r0, r7, #0
ands r0, r1
orrs r0, r2
ands r0, r6
orrs r0, r5
strb r0, [r4]
subs r3, #1
cmp r3, #0
bne _0801D212
_0801D22A:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801D22C: .4byte gUnk_02001A00
thumb_func_start sub_0801D230
sub_0801D230: @ 0x0801D230
push {lr}
adds r0, #0x27
ldrb r2, [r0]
movs r1, #0
strb r1, [r0]
adds r0, r2, #0
bl sub_0801D244
pop {pc}
.align 2, 0
thumb_func_start sub_0801D244
sub_0801D244: @ 0x0801D244
push {r4, r5, r6, lr}
lsls r0, r0, #2
ldr r1, _0801D288 @ =gUnk_02001A00
adds r2, r0, r1
ldr r0, [r2]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #3
bne _0801D284
ldrb r0, [r2, #1]
subs r0, #1
strb r0, [r2, #1]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801D284
ldr r0, [r2]
lsls r0, r0, #0x18
lsrs r3, r0, #0x1c
movs r5, #0
movs r6, #0x10
rsbs r6, r6, #0
movs r4, #1
_0801D270:
strb r5, [r2, #1]
ldrb r1, [r2]
adds r0, r6, #0
ands r0, r1
orrs r0, r4
strb r0, [r2]
adds r2, #4
subs r3, #1
cmp r3, #0
bne _0801D270
_0801D284:
pop {r4, r5, r6, pc}
.align 2, 0
_0801D288: .4byte gUnk_02001A00
thumb_func_start sub_0801D28C
sub_0801D28C: @ 0x0801D28C
push {lr}
adds r3, r1, #0
adds r0, #0x27
ldrb r2, [r0]
ldr r1, _0801D2B0 @ =gUnk_02001A00
lsls r0, r2, #2
adds r1, r0, r1
ldrb r0, [r1]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #3
bne _0801D2AE
strh r3, [r1, #2]
adds r0, r3, #0
adds r1, r2, #0
bl sub_0801D2C8
_0801D2AE:
pop {pc}
.align 2, 0
_0801D2B0: .4byte gUnk_02001A00
thumb_func_start sub_0801D2B4
sub_0801D2B4: @ 0x0801D2B4
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_0801D230
adds r0, r4, #0
adds r1, r5, #0
bl sub_0801D040
pop {r4, r5, pc}
thumb_func_start sub_0801D2C8
sub_0801D2C8: @ 0x0801D2C8
push {r4, lr}
adds r3, r0, #0
ldr r2, _0801D2F8 @ =gUnk_0200B644
adds r4, r1, #0
adds r4, #0x10
movs r1, #1
lsls r1, r4
ldr r0, [r2]
orrs r0, r1
str r0, [r2]
cmp r3, #5
bls _0801D33C
cmp r3, #0x15
bne _0801D300
ldr r2, _0801D2FC @ =gUnk_020176A0
adds r0, r2, #0
adds r0, #0x78
ldrh r0, [r0]
lsls r1, r4, #5
adds r1, r1, r2
movs r2, #0x20
bl sub_0801D5EC
b _0801D33C
.align 2, 0
_0801D2F8: .4byte gUnk_0200B644
_0801D2FC: .4byte gUnk_020176A0
_0801D300:
cmp r3, #0x14
bhi _0801D31C
subs r0, r3, #6
lsls r0, r0, #5
ldr r1, _0801D318 @ =gUnk_020176A0
adds r0, r0, r1
adds r1, r4, #0
movs r2, #1
bl sub_0801D754
b _0801D33C
.align 2, 0
_0801D318: .4byte gUnk_020176A0
_0801D31C:
ldr r1, _0801D340 @ =gUnk_08133368
adds r0, r3, #0
subs r0, #0x16
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
lsrs r2, r0, #0x18
movs r1, #0xf
ands r2, r1
ldr r1, _0801D344 @ =0x00FFFFFF
ands r0, r1
ldr r1, _0801D348 @ =gUnk_085A2E80
adds r0, r0, r1
adds r1, r4, #0
bl sub_0801D754
_0801D33C:
pop {r4, pc}
.align 2, 0
_0801D340: .4byte gUnk_08133368
_0801D344: .4byte 0x00FFFFFF
_0801D348: .4byte gUnk_085A2E80
thumb_func_start sub_0801D34C
sub_0801D34C: @ 0x0801D34C
push {r4, r5, r6, r7, lr}
sub sp, #0x10
movs r2, #0
movs r3, #0
ldr r1, _0801D37C @ =gUnk_02001A00
_0801D356:
mov r4, sp
adds r0, r4, r2
strb r2, [r0]
ldrb r0, [r1]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #1
bgt _0801D370
cmp r0, #0
blt _0801D370
strb r3, [r1]
strb r3, [r1, #1]
strh r3, [r1, #2]
_0801D370:
adds r1, #4
adds r2, #1
cmp r2, #0xf
bls _0801D356
movs r4, #6
b _0801D390
.align 2, 0
_0801D37C: .4byte gUnk_02001A00
_0801D380:
cmp r4, r1
ble _0801D390
mov r2, sp
adds r0, r2, r4
strb r1, [r0]
adds r0, r4, #0
bl sub_0801D48C
_0801D390:
adds r0, r4, #1
bl sub_0801D458
adds r4, r0, #0
cmp r4, #0
beq _0801D3AC
movs r0, #1
bl sub_0801D134
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0801D380
_0801D3AC:
movs r1, #0
ldr r4, _0801D450 @ =gUnk_03003D70
mov ip, r4
_0801D3B2:
lsls r0, r1, #3
mov r2, ip
adds r3, r0, r2
adds r0, r3, #0
ldr r3, [r3, #4]
adds r5, r1, #1
cmp r0, r3
beq _0801D444
movs r7, #0x10
rsbs r7, r7, #0
adds r4, r0, #0
ldr r6, _0801D454 @ =gUnk_020000C0
_0801D3CA:
ldrb r0, [r3, #8]
cmp r0, #9
beq _0801D43E
adds r1, r3, #0
adds r1, #0x28
ldrb r0, [r1]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x7e
bhi _0801D40C
ldrb r1, [r1]
lsls r1, r1, #6
adds r1, r1, r6
ldrb r0, [r1, #5]
add r0, sp
ldrb r0, [r0]
strb r0, [r1, #5]
ldrb r0, [r1, #0x15]
add r0, sp
ldrb r0, [r0]
strb r0, [r1, #0x15]
adds r2, r1, #0
adds r2, #0x25
ldrb r0, [r2]
add r0, sp
ldrb r0, [r0]
strb r0, [r2]
adds r1, #0x35
ldrb r0, [r1]
add r0, sp
ldrb r0, [r0]
strb r0, [r1]
_0801D40C:
adds r1, r3, #0
adds r1, #0x27
ldrb r0, [r1]
add r0, sp
ldrb r0, [r0]
strb r0, [r1]
ldrb r2, [r3, #0x1a]
lsls r0, r2, #0x1c
lsrs r0, r0, #0x1c
add r0, sp
ldrb r1, [r0]
movs r0, #0xf
ands r1, r0
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x1a]
lsrs r1, r0, #4
add r1, sp
ldrb r2, [r1]
lsls r2, r2, #4
movs r1, #0xf
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x1a]
_0801D43E:
ldr r3, [r3, #4]
cmp r4, r3
bne _0801D3CA
_0801D444:
adds r1, r5, #0
cmp r1, #8
bls _0801D3B2
add sp, #0x10
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801D450: .4byte gUnk_03003D70
_0801D454: .4byte gUnk_020000C0
thumb_func_start sub_0801D458
sub_0801D458: @ 0x0801D458
push {lr}
adds r2, r0, #0
cmp r2, #0xf
bhi _0801D488
ldr r1, _0801D47C @ =gUnk_02001A00
lsls r0, r2, #2
adds r1, r0, r1
_0801D466:
ldrb r0, [r1]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #0
blt _0801D478
cmp r0, #1
ble _0801D480
cmp r0, #4
beq _0801D480
_0801D478:
adds r0, r2, #0
b _0801D48A
.align 2, 0
_0801D47C: .4byte gUnk_02001A00
_0801D480:
adds r1, #4
adds r2, #1
cmp r2, #0xf
bls _0801D466
_0801D488:
movs r0, #0
_0801D48A:
pop {pc}
thumb_func_start sub_0801D48C
sub_0801D48C: @ 0x0801D48C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r6, r0, #0
adds r3, r1, #0
ldr r0, _0801D50C @ =gUnk_02001A00
mov r8, r0
lsls r0, r6, #2
mov r1, r8
adds r4, r0, r1
ldrb r0, [r4]
lsrs r5, r0, #4
subs r5, #1
movs r0, #1
rsbs r0, r0, #0
cmp r5, r0
beq _0801D4F8
ldr r2, _0801D510 @ =gUnk_020176A0
lsls r0, r3, #5
movs r1, #0x80
lsls r1, r1, #2
adds r0, r0, r1
adds r7, r0, r2
lsls r0, r3, #2
add r8, r0
lsls r0, r6, #5
adds r0, r0, r1
adds r6, r0, r2
movs r3, #0
_0801D4C8:
ldr r0, [r4]
mov r1, r8
adds r1, #4
mov r8, r1
subs r1, #4
stm r1!, {r0}
strb r3, [r4]
strb r3, [r4, #1]
strh r3, [r4, #2]
adds r0, r6, #0
adds r1, r7, #0
movs r2, #0x20
str r3, [sp]
bl sub_0801D66C
adds r6, #0x20
adds r4, #4
adds r7, #0x20
subs r5, #1
movs r0, #1
rsbs r0, r0, #0
ldr r3, [sp]
cmp r5, r0
bne _0801D4C8
_0801D4F8:
ldr r0, _0801D514 @ =gUnk_0200B644
ldr r1, [r0]
ldr r2, _0801D518 @ =0xFFFF0000
orrs r1, r2
str r1, [r0]
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801D50C: .4byte gUnk_02001A00
_0801D510: .4byte gUnk_020176A0
_0801D514: .4byte gUnk_0200B644
_0801D518: .4byte 0xFFFF0000
thumb_func_start sub_0801D51C
sub_0801D51C: @ 0x0801D51C
push {r4, lr}
adds r2, r0, #0
ldr r0, _0801D58C @ =0x05F5E0FF
cmp r2, r0
bhi _0801D5A0
ldr r1, _0801D590 @ =0x00989680
adds r0, r2, #0
bl Div
adds r4, r0, #0
lsls r4, r4, #0x1c
ldr r2, _0801D594 @ =0x000F4240
adds r0, r1, #0
adds r1, r2, #0
bl Div
lsls r0, r0, #0x18
adds r4, r4, r0
ldr r2, _0801D598 @ =0x000186A0
adds r0, r1, #0
adds r1, r2, #0
bl Div
lsls r0, r0, #0x14
adds r4, r4, r0
ldr r2, _0801D59C @ =0x00002710
adds r0, r1, #0
adds r1, r2, #0
bl Div
lsls r0, r0, #0x10
adds r4, r4, r0
movs r2, #0xfa
lsls r2, r2, #2
adds r0, r1, #0
adds r1, r2, #0
bl Div
lsls r0, r0, #0xc
adds r4, r4, r0
adds r0, r1, #0
movs r1, #0x64
bl Div
lsls r0, r0, #8
adds r4, r4, r0
adds r0, r1, #0
movs r1, #0xa
bl Div
lsls r0, r0, #4
adds r4, r4, r0
adds r4, r4, r1
adds r0, r4, #0
b _0801D5A2
.align 2, 0
_0801D58C: .4byte 0x05F5E0FF
_0801D590: .4byte 0x00989680
_0801D594: .4byte 0x000F4240
_0801D598: .4byte 0x000186A0
_0801D59C: .4byte 0x00002710
_0801D5A0:
ldr r0, _0801D5A4 @ =0x99999999
_0801D5A2:
pop {r4, pc}
.align 2, 0
_0801D5A4: .4byte 0x99999999
thumb_func_start sub_0801D5A8
sub_0801D5A8: @ 0x0801D5A8
lsrs r2, r1, #3
adds r0, r0, r2
ldrb r0, [r0]
movs r2, #7
ands r2, r1
asrs r0, r2
movs r1, #1
ands r0, r1
bx lr
.align 2, 0
thumb_func_start sub_0801D5BC
sub_0801D5BC: @ 0x0801D5BC
lsrs r2, r1, #3
adds r3, r0, r2
movs r2, #7
ands r1, r2
movs r2, #1
lsls r2, r1
ldrb r0, [r3]
adds r1, r0, #0
orrs r1, r2
strb r1, [r3]
ands r0, r2
bx lr
thumb_func_start sub_0801D5D4
sub_0801D5D4: @ 0x0801D5D4
lsrs r2, r1, #3
adds r3, r0, r2
movs r2, #7
ands r1, r2
movs r2, #1
lsls r2, r1
ldrb r0, [r3]
adds r1, r0, #0
bics r1, r2
strb r1, [r3]
ands r0, r2
bx lr