mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
11412 lines
185 KiB
ArmAsm
11412 lines
185 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_81507FC
|
|
sub_81507FC: @ 81507FC
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r1, _081508A4 @ =gUnknown_3002044
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _081508A8 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _081508CC
|
|
ldr r4, _081508AC @ =gUnknown_203F3E0
|
|
ldr r0, _081508B0 @ =0x00003330
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
beq _081508CC
|
|
bl sub_81508D8
|
|
ldr r0, [r4]
|
|
bl sub_81508EC
|
|
ldr r0, [r4]
|
|
str r5, [r0]
|
|
bl GetMultiplayerId
|
|
ldr r1, [r4]
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
ldr r2, _081508B4 @ =0x000032cc
|
|
adds r0, r1, r2
|
|
adds r2, r1, 0
|
|
adds r2, 0x28
|
|
ldrb r3, [r2]
|
|
lsls r2, r3, 4
|
|
subs r2, r3
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
ldr r2, _081508B8 @ =0x000031a0
|
|
adds r1, r2
|
|
movs r2, 0x3C
|
|
bl memcpy
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
ldr r2, _081508BC @ =0x0000318c
|
|
adds r1, r2
|
|
adds r0, r1
|
|
movs r1, 0x64
|
|
muls r1, r6
|
|
ldr r2, _081508C0 @ =gPlayerParty
|
|
adds r1, r2
|
|
bl sub_8152048
|
|
ldr r0, _081508C4 @ =sub_8150A84
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
ldr r0, _081508C8 @ =sub_815201C
|
|
bl SetMainCallback2
|
|
bl sub_8153150
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x44
|
|
adds r2, 0x48
|
|
bl sub_81529A4
|
|
bl StopMapMusic
|
|
movs r0, 0xA5
|
|
lsls r0, 1
|
|
bl PlayNewMapMusic
|
|
b _081508D2
|
|
.align 2, 0
|
|
_081508A4: .4byte gUnknown_3002044
|
|
_081508A8: .4byte gUnknown_3003F64
|
|
_081508AC: .4byte gUnknown_203F3E0
|
|
_081508B0: .4byte 0x00003330
|
|
_081508B4: .4byte 0x000032cc
|
|
_081508B8: .4byte 0x000031a0
|
|
_081508BC: .4byte 0x0000318c
|
|
_081508C0: .4byte gPlayerParty
|
|
_081508C4: .4byte sub_8150A84
|
|
_081508C8: .4byte sub_815201C
|
|
_081508CC:
|
|
adds r0, r5, 0
|
|
bl SetMainCallback2
|
|
_081508D2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81507FC
|
|
|
|
thumb_func_start sub_81508D8
|
|
sub_81508D8: @ 81508D8
|
|
push {lr}
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81508D8
|
|
|
|
thumb_func_start sub_81508EC
|
|
sub_81508EC: @ 81508EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
strb r0, [r2, 0xC]
|
|
strb r0, [r2, 0x10]
|
|
strb r0, [r2, 0x14]
|
|
strb r0, [r2, 0x18]
|
|
strb r0, [r2, 0x1C]
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
str r0, [r1]
|
|
movs r7, 0x90
|
|
lsls r7, 1
|
|
adds r1, r2, r7
|
|
str r0, [r1]
|
|
adds r1, r2, 0
|
|
adds r1, 0x30
|
|
strb r0, [r1]
|
|
adds r1, 0x10
|
|
strb r0, [r1]
|
|
subs r1, 0x4
|
|
strb r0, [r1]
|
|
adds r3, 0x10
|
|
adds r1, r2, r3
|
|
str r0, [r1]
|
|
movs r5, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x98
|
|
movs r3, 0
|
|
_08150932:
|
|
adds r0, r1, r5
|
|
strb r3, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _08150932
|
|
movs r5, 0
|
|
adds r7, r2, 0
|
|
adds r7, 0xA8
|
|
str r7, [sp]
|
|
adds r0, r2, 0
|
|
adds r0, 0xB0
|
|
str r0, [sp, 0xC]
|
|
movs r1, 0x4A
|
|
adds r1, r2
|
|
mov r10, r1
|
|
movs r3, 0x4C
|
|
adds r3, r2
|
|
mov r9, r3
|
|
movs r7, 0x4E
|
|
adds r7, r2
|
|
mov r12, r7
|
|
subs r0, 0x60
|
|
str r0, [sp, 0x24]
|
|
adds r6, r2, 0
|
|
adds r6, 0x54
|
|
adds r1, r2, 0
|
|
adds r1, 0xD0
|
|
str r1, [sp, 0x1C]
|
|
adds r3, r2, 0
|
|
adds r3, 0xDC
|
|
str r3, [sp, 0x20]
|
|
adds r7, r2, 0
|
|
adds r7, 0xC4
|
|
str r7, [sp, 0x14]
|
|
adds r0, 0xA4
|
|
str r0, [sp, 0x4]
|
|
adds r1, 0x25
|
|
str r1, [sp, 0x8]
|
|
subs r3, 0xBC
|
|
str r3, [sp, 0x10]
|
|
movs r7, 0x24
|
|
adds r7, r2
|
|
mov r8, r7
|
|
subs r0, 0xC0
|
|
str r0, [sp, 0x18]
|
|
movs r3, 0
|
|
movs r1, 0x86
|
|
lsls r1, 1
|
|
adds r4, r2, r1
|
|
movs r7, 0x98
|
|
lsls r7, 1
|
|
adds r2, r7
|
|
_0815099E:
|
|
ldr r1, [sp]
|
|
adds r0, r1, r5
|
|
strb r3, [r0]
|
|
ldr r7, [sp, 0xC]
|
|
adds r0, r7, r5
|
|
strb r3, [r0]
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
mov r7, r10
|
|
adds r1, r7, r0
|
|
strh r3, [r1]
|
|
mov r7, r9
|
|
adds r1, r7, r0
|
|
strh r3, [r1]
|
|
mov r7, r12
|
|
adds r1, r7, r0
|
|
strh r3, [r1]
|
|
ldr r7, [sp, 0x24]
|
|
adds r1, r7, r0
|
|
strh r3, [r1]
|
|
adds r0, r6, r0
|
|
strh r3, [r0]
|
|
adds r0, r4, r5
|
|
strb r3, [r0]
|
|
lsls r0, r5, 2
|
|
adds r0, r2, r0
|
|
str r3, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bls _0815099E
|
|
movs r5, 0
|
|
movs r3, 0
|
|
movs r4, 0xFF
|
|
ldr r6, [sp, 0x1C]
|
|
_081509E8:
|
|
adds r0, r6, r5
|
|
strb r3, [r0]
|
|
ldr r1, [sp, 0x20]
|
|
adds r0, r1, r5
|
|
strb r3, [r0]
|
|
ldr r7, [sp, 0x14]
|
|
adds r0, r7, r5
|
|
strb r3, [r0]
|
|
lsls r1, r5, 1
|
|
ldr r0, [sp, 0x4]
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
orrs r0, r4
|
|
strb r0, [r2]
|
|
ldr r7, [sp, 0x8]
|
|
adds r1, r7, r1
|
|
ldrb r0, [r1]
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _081509E8
|
|
bl GetMultiplayerId
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08150A26
|
|
movs r1, 0x1
|
|
_08150A26:
|
|
ldr r0, [sp, 0x10]
|
|
strb r1, [r0]
|
|
bl GetLinkPlayerCount
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
bl GetMultiplayerId
|
|
ldr r3, [sp, 0x18]
|
|
strb r0, [r3]
|
|
movs r5, 0x1
|
|
mov r7, r8
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bcs _08150A72
|
|
ldr r7, [sp, 0x18]
|
|
mov r6, r8
|
|
_08150A48:
|
|
adds r4, r7, r5
|
|
subs r0, r5, 0x1
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldrb r2, [r4]
|
|
ldrb r1, [r6]
|
|
subs r0, r1, 0x1
|
|
cmp r2, r0
|
|
ble _08150A66
|
|
adds r0, r2, 0
|
|
bl __umodsi3
|
|
strb r0, [r4]
|
|
_08150A66:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r6]
|
|
cmp r5, r0
|
|
bcc _08150A48
|
|
_08150A72:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81508EC
|
|
|
|
thumb_func_start sub_8150A84
|
|
sub_8150A84: @ 8150A84
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, _08150AA4 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0x7
|
|
bls _08150A98
|
|
b _08150BF0
|
|
_08150A98:
|
|
lsls r0, 2
|
|
ldr r1, _08150AA8 @ =_08150AAC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08150AA4: .4byte gUnknown_203F3E0
|
|
_08150AA8: .4byte _08150AAC
|
|
.align 2, 0
|
|
_08150AAC:
|
|
.4byte _08150ACC
|
|
.4byte _08150AE0
|
|
.4byte _08150B08
|
|
.4byte _08150B16
|
|
.4byte _08150B3C
|
|
.4byte _08150B90
|
|
.4byte _08150BA2
|
|
.4byte _08150BCC
|
|
_08150ACC:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r0, _08150ADC @ =sub_8151750
|
|
movs r1, 0x4
|
|
bl sub_815205C
|
|
b _08150BDC
|
|
.align 2, 0
|
|
_08150ADC: .4byte sub_8151750
|
|
_08150AE0:
|
|
ldr r0, _08150B00 @ =sub_8151750
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08150AEE
|
|
b _08150BFC
|
|
_08150AEE:
|
|
ldr r4, _08150B04 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
movs r1, 0xB0
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bl sub_8154968
|
|
ldr r1, [r4]
|
|
b _08150BE0
|
|
.align 2, 0
|
|
_08150B00: .4byte sub_8151750
|
|
_08150B04: .4byte gUnknown_203F3E0
|
|
_08150B08:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _08150BFC
|
|
bl sub_80FA42C
|
|
b _08150BDC
|
|
_08150B16:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08150BFC
|
|
ldr r0, _08150B38 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08150BDC
|
|
bl sub_80FCEA8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80FCD74
|
|
b _08150BDC
|
|
.align 2, 0
|
|
_08150B38: .4byte gUnknown_3003F64
|
|
_08150B3C:
|
|
ldr r0, _08150B88 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
bl sub_8153A9C
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08150B76
|
|
_08150B4E:
|
|
ldr r0, _08150B88 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x34
|
|
adds r0, r4
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 2
|
|
ldr r3, _08150B8C @ =0x0000318c
|
|
adds r0, r3
|
|
adds r0, r1, r0
|
|
adds r1, 0x24
|
|
ldrb r3, [r1]
|
|
adds r1, r4, 0
|
|
bl sub_8153AFC
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08150B4E
|
|
_08150B76:
|
|
ldr r4, _08150B88 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
adds r0, 0x24
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_8153D80
|
|
ldr r1, [r4]
|
|
b _08150BE0
|
|
.align 2, 0
|
|
_08150B88: .4byte gUnknown_203F3E0
|
|
_08150B8C: .4byte 0x0000318c
|
|
_08150B90:
|
|
bl sub_8154128
|
|
bl sub_815417C
|
|
bl sub_8154438
|
|
bl sub_8153E28
|
|
b _08150BDC
|
|
_08150BA2:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _08150BC8 @ =sub_8152034
|
|
bl SetVBlankCallback
|
|
b _08150BDC
|
|
.align 2, 0
|
|
_08150BC8: .4byte sub_8152034
|
|
_08150BCC:
|
|
bl UpdatePaletteFade
|
|
ldr r0, _08150BE8 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08150BFC
|
|
_08150BDC:
|
|
ldr r0, _08150BEC @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
_08150BE0:
|
|
ldrb r0, [r1, 0xC]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xC]
|
|
b _08150BFC
|
|
.align 2, 0
|
|
_08150BE8: .4byte gPaletteFade
|
|
_08150BEC: .4byte gUnknown_203F3E0
|
|
_08150BF0:
|
|
adds r0, r1, 0
|
|
bl DestroyTask
|
|
ldr r0, _08150C04 @ =sub_81516DC
|
|
bl sub_815206C
|
|
_08150BFC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08150C04: .4byte sub_81516DC
|
|
thumb_func_end sub_8150A84
|
|
|
|
thumb_func_start sub_8150C08
|
|
sub_8150C08: @ 8150C08
|
|
push {lr}
|
|
bl sub_8151B54
|
|
ldr r1, _08150C34 @ =gUnknown_8475578
|
|
ldr r0, _08150C38 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x18]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _08150C3C @ =gUnknown_3002044
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150C2C
|
|
bl sub_815293C
|
|
_08150C2C:
|
|
bl sub_8151BA0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08150C34: .4byte gUnknown_8475578
|
|
_08150C38: .4byte gUnknown_203F3E0
|
|
_08150C3C: .4byte gUnknown_3002044
|
|
thumb_func_end sub_8150C08
|
|
|
|
thumb_func_start sub_8150C40
|
|
sub_8150C40: @ 8150C40
|
|
push {lr}
|
|
bl sub_8151C5C
|
|
ldr r1, _08150C6C @ =gUnknown_84755A8
|
|
ldr r0, _08150C70 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x18]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _08150C74 @ =gUnknown_3002044
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150C64
|
|
bl sub_8152970
|
|
_08150C64:
|
|
bl sub_8151D28
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08150C6C: .4byte gUnknown_84755A8
|
|
_08150C70: .4byte gUnknown_203F3E0
|
|
_08150C74: .4byte gUnknown_3002044
|
|
thumb_func_end sub_8150C40
|
|
|
|
thumb_func_start sub_8150C78
|
|
sub_8150C78: @ 8150C78
|
|
push {r4,lr}
|
|
ldr r4, _08150C8C @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0
|
|
beq _08150C90
|
|
cmp r0, 0x1
|
|
beq _08150CA6
|
|
b _08150CB4
|
|
.align 2, 0
|
|
_08150C8C: .4byte gUnknown_203F3E0
|
|
_08150C90:
|
|
movs r0, 0x1
|
|
bl sub_8153BF8
|
|
movs r0, 0x1
|
|
bl sub_81549D4
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08150CB4
|
|
_08150CA6:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _08150CB4
|
|
movs r0, 0x1
|
|
bl sub_8152090
|
|
_08150CB4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150C78
|
|
|
|
thumb_func_start sub_8150CBC
|
|
sub_8150CBC: @ 8150CBC
|
|
push {r4,lr}
|
|
ldr r4, _08150CD8 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
cmp r0, 0
|
|
bne _08150CDC
|
|
bl sub_8152110
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08150CEC
|
|
.align 2, 0
|
|
_08150CD8: .4byte gUnknown_203F3E0
|
|
_08150CDC:
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
bl sub_8152090
|
|
_08150CEC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150CBC
|
|
|
|
thumb_func_start sub_8150CF4
|
|
sub_8150CF4: @ 8150CF4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _08150D0C @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0x4
|
|
bhi _08150D74
|
|
lsls r0, 2
|
|
ldr r1, _08150D10 @ =_08150D14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08150D0C: .4byte gUnknown_203F3E0
|
|
_08150D10: .4byte _08150D14
|
|
.align 2, 0
|
|
_08150D14:
|
|
.4byte _08150D28
|
|
.4byte _08150D4E
|
|
.4byte _08150D3A
|
|
.4byte _08150D46
|
|
.4byte _08150D64
|
|
_08150D28:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x7
|
|
movs r1, 0x8
|
|
movs r2, 0x78
|
|
movs r3, 0x50
|
|
bl sub_815F138
|
|
b _08150D52
|
|
_08150D3A:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08150D74
|
|
b _08150D52
|
|
_08150D46:
|
|
bl sub_815F198
|
|
cmp r0, 0
|
|
bne _08150D74
|
|
_08150D4E:
|
|
bl sub_80FA42C
|
|
_08150D52:
|
|
ldr r0, _08150D60 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08150D74
|
|
.align 2, 0
|
|
_08150D60: .4byte gUnknown_203F3E0
|
|
_08150D64:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08150D74
|
|
movs r0, 0x3
|
|
bl sub_8152090
|
|
_08150D74:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150CF4
|
|
|
|
thumb_func_start sub_8150D7C
|
|
sub_8150D7C: @ 8150D7C
|
|
push {lr}
|
|
ldr r0, _08150DA0 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x10]
|
|
cmp r0, 0
|
|
bne _08150D9A
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08150D9A
|
|
movs r0, 0x4
|
|
bl sub_8152090
|
|
_08150D9A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08150DA0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8150D7C
|
|
|
|
thumb_func_start sub_8150DA4
|
|
sub_8150DA4: @ 8150DA4
|
|
push {r4,lr}
|
|
ldr r4, _08150DE4 @ =gUnknown_203F3E0
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2, 0x10]
|
|
cmp r0, 0
|
|
bne _08150E62
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bhi _08150E54
|
|
adds r0, r2, 0
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150E5A
|
|
ldr r0, _08150DE8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150DF4
|
|
ldr r1, _08150DEC @ =0x000031cc
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _08150E5A
|
|
ldr r3, _08150DF0 @ =0x000031d0
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
movs r0, 0x2
|
|
b _08150E2E
|
|
.align 2, 0
|
|
_08150DE4: .4byte gUnknown_203F3E0
|
|
_08150DE8: .4byte gMain
|
|
_08150DEC: .4byte 0x000031cc
|
|
_08150DF0: .4byte 0x000031d0
|
|
_08150DF4:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150E14
|
|
ldr r3, _08150E10 @ =0x000031cc
|
|
adds r0, r2, r3
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _08150E5A
|
|
adds r3, 0x4
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _08150E2E
|
|
.align 2, 0
|
|
_08150E10: .4byte 0x000031cc
|
|
_08150E14:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150E40
|
|
ldr r3, _08150E3C @ =0x000031cc
|
|
adds r0, r2, r3
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _08150E5A
|
|
adds r3, 0x4
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
movs r0, 0x3
|
|
_08150E2E:
|
|
bl sub_815327C
|
|
ldr r1, [r4]
|
|
ldr r2, _08150E3C @ =0x000031cc
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
b _08150E5A
|
|
.align 2, 0
|
|
_08150E3C: .4byte 0x000031cc
|
|
_08150E40:
|
|
movs r0, 0
|
|
bl sub_815327C
|
|
ldr r1, [r4]
|
|
ldr r3, _08150E50 @ =0x000031cc
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
b _08150E5A
|
|
.align 2, 0
|
|
_08150E50: .4byte 0x000031cc
|
|
_08150E54:
|
|
movs r0, 0xB
|
|
bl sub_8152090
|
|
_08150E5A:
|
|
bl sub_815256C
|
|
bl sub_8151D98
|
|
_08150E62:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150DA4
|
|
|
|
thumb_func_start sub_8150E68
|
|
sub_8150E68: @ 8150E68
|
|
push {lr}
|
|
ldr r0, _08150EA8 @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bhi _08150F30
|
|
ldr r0, _08150EAC @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150EB8
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2, r0
|
|
ldr r1, _08150EB0 @ =0x000031cc
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150F36
|
|
ldr r3, _08150EB4 @ =0x000032f8
|
|
adds r1, r2, r3
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _08150F36
|
|
.align 2, 0
|
|
_08150EA8: .4byte gUnknown_203F3E0
|
|
_08150EAC: .4byte gMain
|
|
_08150EB0: .4byte 0x000031cc
|
|
_08150EB4: .4byte 0x000032f8
|
|
_08150EB8:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150EEC
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2, r0
|
|
ldr r1, _08150EE4 @ =0x000031cc
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150F36
|
|
ldr r3, _08150EE8 @ =0x000032f8
|
|
adds r1, r2, r3
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _08150F36
|
|
.align 2, 0
|
|
_08150EE4: .4byte 0x000031cc
|
|
_08150EE8: .4byte 0x000032f8
|
|
_08150EEC:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _08150F24
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2, r0
|
|
ldr r1, _08150F1C @ =0x000031cc
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150F36
|
|
ldr r3, _08150F20 @ =0x000032f8
|
|
adds r1, r2, r3
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
b _08150F36
|
|
.align 2, 0
|
|
_08150F1C: .4byte 0x000031cc
|
|
_08150F20: .4byte 0x000032f8
|
|
_08150F24:
|
|
ldr r3, _08150F2C @ =0x000032f8
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
b _08150F36
|
|
.align 2, 0
|
|
_08150F2C: .4byte 0x000032f8
|
|
_08150F30:
|
|
movs r0, 0xB
|
|
bl sub_8152090
|
|
_08150F36:
|
|
bl sub_8151E94
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150E68
|
|
|
|
thumb_func_start sub_8150F40
|
|
sub_8150F40: @ 8150F40
|
|
push {r4,r5,lr}
|
|
bl sub_815256C
|
|
bl sub_8151D98
|
|
bl sub_8152A98
|
|
cmp r0, 0x1
|
|
bne _08150F5E
|
|
bl sub_8153004
|
|
movs r0, 0x5
|
|
bl sub_8152090
|
|
b _08150FBC
|
|
_08150F5E:
|
|
ldr r0, _08150F8C @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r4, r2, r1
|
|
movs r1, 0x1
|
|
str r1, [r4]
|
|
movs r3, 0x1
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
adds r5, r0, 0
|
|
ldrb r1, [r1]
|
|
cmp r3, r1
|
|
bcs _08150FBC
|
|
movs r1, 0x9A
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08150F90
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
b _08150FBC
|
|
.align 2, 0
|
|
_08150F8C: .4byte gUnknown_203F3E0
|
|
_08150F90:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _08150FBC
|
|
lsls r0, r3, 2
|
|
movs r4, 0x98
|
|
lsls r4, 1
|
|
adds r1, r2, r4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08150F90
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_08150FBC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150F40
|
|
|
|
thumb_func_start sub_8150FC4
|
|
sub_8150FC4: @ 8150FC4
|
|
push {lr}
|
|
bl sub_8151E94
|
|
bl sub_8152AD8
|
|
cmp r0, 0x1
|
|
bne _08150FD8
|
|
movs r0, 0x5
|
|
bl sub_8152090
|
|
_08150FD8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150FC4
|
|
|
|
thumb_func_start sub_8150FDC
|
|
sub_8150FDC: @ 8150FDC
|
|
push {r4-r6,lr}
|
|
ldr r6, _08150FF4 @ =gUnknown_203F3E0
|
|
ldr r1, [r6]
|
|
ldrb r4, [r1, 0x10]
|
|
cmp r4, 0x1
|
|
beq _08151010
|
|
cmp r4, 0x1
|
|
bgt _08150FF8
|
|
cmp r4, 0
|
|
beq _08150FFE
|
|
b _08151078
|
|
.align 2, 0
|
|
_08150FF4: .4byte gUnknown_203F3E0
|
|
_08150FF8:
|
|
cmp r4, 0x2
|
|
beq _0815101E
|
|
b _08151078
|
|
_08150FFE:
|
|
adds r1, 0x4A
|
|
movs r0, 0
|
|
movs r2, 0x3C
|
|
bl SendBlock
|
|
ldr r0, [r6]
|
|
strb r4, [r0, 0x8]
|
|
ldr r1, [r6]
|
|
b _0815106A
|
|
_08151010:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08151092
|
|
ldr r1, [r6]
|
|
b _0815106A
|
|
_0815101E:
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
b _08151048
|
|
_0815102A:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08151040
|
|
adds r0, r4, 0
|
|
bl ResetBlockReceivedFlag
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_08151040:
|
|
lsrs r5, 1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_08151048:
|
|
ldr r0, [r6]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _0815102A
|
|
ldr r3, _08151074 @ =gUnknown_203F3E0
|
|
ldr r2, [r3]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08151092
|
|
ldrb r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x14]
|
|
ldr r1, [r3]
|
|
_0815106A:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08151092
|
|
.align 2, 0
|
|
_08151074: .4byte gUnknown_203F3E0
|
|
_08151078:
|
|
movs r0, 0x1
|
|
bl WaitFanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08151092
|
|
movs r0, 0x6
|
|
bl sub_8152090
|
|
ldr r0, _08151098 @ =0x00000137
|
|
movs r1, 0x4
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_08151092:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151098: .4byte 0x00000137
|
|
thumb_func_end sub_8150FDC
|
|
|
|
thumb_func_start sub_815109C
|
|
sub_815109C: @ 815109C
|
|
push {r4-r6,lr}
|
|
ldr r6, _081510B4 @ =gUnknown_203F3E0
|
|
ldr r2, [r6]
|
|
ldrb r4, [r2, 0x10]
|
|
cmp r4, 0x1
|
|
beq _081510DA
|
|
cmp r4, 0x1
|
|
bgt _081510B8
|
|
cmp r4, 0
|
|
beq _081510BE
|
|
b _08151150
|
|
.align 2, 0
|
|
_081510B4: .4byte gUnknown_203F3E0
|
|
_081510B8:
|
|
cmp r4, 0x2
|
|
beq _081510E8
|
|
b _08151150
|
|
_081510BE:
|
|
ldrb r0, [r2, 0x14]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, 0x4A
|
|
adds r1, r2, r1
|
|
movs r0, 0
|
|
movs r2, 0x3C
|
|
bl SendBlock
|
|
ldr r0, [r6]
|
|
strb r4, [r0, 0x8]
|
|
ldr r1, [r6]
|
|
b _08151140
|
|
_081510DA:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0815118A
|
|
ldr r1, [r6]
|
|
b _08151140
|
|
_081510E8:
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
b _0815111E
|
|
_081510F4:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08151116
|
|
ldr r0, [r6]
|
|
adds r0, 0x4A
|
|
ldr r1, _08151148 @ =gUnknown_2022118
|
|
movs r2, 0x3C
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
bl ResetBlockReceivedFlag
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_08151116:
|
|
lsrs r5, 1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0815111E:
|
|
ldr r0, [r6]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _081510F4
|
|
ldr r3, _0815114C @ =gUnknown_203F3E0
|
|
ldr r2, [r3]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0815118A
|
|
ldrb r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x14]
|
|
ldr r1, [r3]
|
|
_08151140:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _0815118A
|
|
.align 2, 0
|
|
_08151148: .4byte gUnknown_2022118
|
|
_0815114C: .4byte gUnknown_203F3E0
|
|
_08151150:
|
|
movs r0, 0x1
|
|
bl WaitFanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0815118A
|
|
ldr r0, _08151190 @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r3, 0x8A
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
movs r0, 0x6
|
|
bl sub_8152090
|
|
ldr r0, _08151194 @ =0x00000137
|
|
movs r1, 0x4
|
|
bl FadeOutAndPlayNewMapMusic
|
|
_0815118A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151190: .4byte gUnknown_203F3E0
|
|
_08151194: .4byte 0x00000137
|
|
thumb_func_end sub_815109C
|
|
|
|
thumb_func_start sub_8151198
|
|
sub_8151198: @ 8151198
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r6, _081511B0 @ =gUnknown_203F3E0
|
|
ldr r0, [r6]
|
|
ldrb r4, [r0, 0x10]
|
|
cmp r4, 0x1
|
|
beq _081511DC
|
|
cmp r4, 0x1
|
|
bgt _081511B4
|
|
cmp r4, 0
|
|
beq _081511BE
|
|
b _0815129C
|
|
.align 2, 0
|
|
_081511B0: .4byte gUnknown_203F3E0
|
|
_081511B4:
|
|
cmp r4, 0x2
|
|
beq _08151202
|
|
cmp r4, 0x3
|
|
beq _0815121C
|
|
b _0815129C
|
|
_081511BE:
|
|
bl sub_81531FC
|
|
movs r0, 0x1
|
|
bl sub_81540DC
|
|
bl sub_81544F0
|
|
movs r0, 0x1
|
|
bl sub_81545BC
|
|
movs r0, 0x2
|
|
bl sub_81549D4
|
|
ldr r1, [r6]
|
|
b _0815128A
|
|
_081511DC:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _081512AA
|
|
mov r0, sp
|
|
strb r4, [r0]
|
|
movs r0, 0x5
|
|
bl sub_81549D4
|
|
bl sub_8155E8C
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl SendBlock
|
|
ldr r1, [r6]
|
|
b _0815128A
|
|
_08151202:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081512AA
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r6]
|
|
strb r2, [r0, 0x8]
|
|
b _081512AA
|
|
_0815121C:
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
b _0815125A
|
|
_08151228:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08151252
|
|
ldr r2, [r6]
|
|
adds r2, r4, r2
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
lsls r0, r4, 8
|
|
ldr r1, _08151294 @ =gUnknown_2022118
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
bl ResetBlockReceivedFlag
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_08151252:
|
|
lsrs r5, 1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0815125A:
|
|
ldr r0, [r6]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08151228
|
|
ldr r4, _08151298 @ =gUnknown_203F3E0
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _081512AA
|
|
ldrb r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x14]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x77
|
|
bls _081512AA
|
|
movs r0, 0x6
|
|
bl sub_81549D4
|
|
ldr r1, [r4]
|
|
_0815128A:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _081512AA
|
|
.align 2, 0
|
|
_08151294: .4byte gUnknown_2022118
|
|
_08151298: .4byte gUnknown_203F3E0
|
|
_0815129C:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _081512AA
|
|
movs r0, 0x7
|
|
bl sub_8152090
|
|
_081512AA:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151198
|
|
|
|
thumb_func_start sub_81512B4
|
|
sub_81512B4: @ 81512B4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r5, _081512D0 @ =gUnknown_203F3E0
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0x6
|
|
bls _081512C4
|
|
b _0815144A
|
|
_081512C4:
|
|
lsls r0, 2
|
|
ldr r1, _081512D4 @ =_081512D8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081512D0: .4byte gUnknown_203F3E0
|
|
_081512D4: .4byte _081512D8
|
|
.align 2, 0
|
|
_081512D8:
|
|
.4byte _081512F4
|
|
.4byte _08151314
|
|
.4byte _08151330
|
|
.4byte _08151344
|
|
.4byte _08151360
|
|
.4byte _0815138C
|
|
.4byte _081513AC
|
|
_081512F4:
|
|
bl sub_81534AC
|
|
ldr r1, _0815130C @ =0x00000bb7
|
|
cmp r0, r1
|
|
bls _08151304
|
|
movs r0, 0x4
|
|
bl sub_81549D4
|
|
_08151304:
|
|
ldr r0, _08151310 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
b _0815142A
|
|
.align 2, 0
|
|
_0815130C: .4byte 0x00000bb7
|
|
_08151310: .4byte gUnknown_203F3E0
|
|
_08151314:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
beq _0815131E
|
|
b _08151480
|
|
_0815131E:
|
|
movs r0, 0x3
|
|
bl sub_81549D4
|
|
ldr r0, _0815132C @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
b _0815142A
|
|
.align 2, 0
|
|
_0815132C: .4byte gUnknown_203F3E0
|
|
_08151330:
|
|
bl sub_81546C0
|
|
bl sub_8153048
|
|
ldr r0, _08151340 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
b _0815142A
|
|
.align 2, 0
|
|
_08151340: .4byte gUnknown_203F3E0
|
|
_08151344:
|
|
bl sub_8155E8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08151356
|
|
b _08151480
|
|
_08151356:
|
|
ldr r0, _0815135C @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
b _0815142A
|
|
.align 2, 0
|
|
_0815135C: .4byte gUnknown_203F3E0
|
|
_08151360:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
beq _0815136A
|
|
b _08151480
|
|
_0815136A:
|
|
movs r0, 0x5
|
|
bl sub_81549D4
|
|
bl sub_8155E8C
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl SendBlock
|
|
ldr r0, _08151388 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
b _0815142A
|
|
.align 2, 0
|
|
_08151388: .4byte gUnknown_203F3E0
|
|
_0815138C:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08151480
|
|
ldr r3, _081513A8 @ =gUnknown_203F3E0
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r3]
|
|
strb r2, [r0, 0x8]
|
|
b _08151480
|
|
.align 2, 0
|
|
_081513A8: .4byte gUnknown_203F3E0
|
|
_081513AC:
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r7, _08151434 @ =gUnknown_203F3E0
|
|
ldr r0, [r7]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08151400
|
|
adds r6, r7, 0
|
|
_081513C4:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _081513EE
|
|
ldr r2, [r6]
|
|
adds r2, r4, r2
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
lsls r0, r4, 8
|
|
ldr r1, _08151438 @ =gUnknown_2022118
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
bl ResetBlockReceivedFlag
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_081513EE:
|
|
lsrs r5, 1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, [r7]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _081513C4
|
|
_08151400:
|
|
ldr r4, _08151434 @ =gUnknown_203F3E0
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0815143C
|
|
ldrb r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x14]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x77
|
|
bls _08151480
|
|
bl sub_815336C
|
|
movs r0, 0x6
|
|
bl sub_81549D4
|
|
ldr r1, [r4]
|
|
_0815142A:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08151480
|
|
.align 2, 0
|
|
_08151434: .4byte gUnknown_203F3E0
|
|
_08151438: .4byte gUnknown_2022118
|
|
_0815143C:
|
|
bl sub_81532B8
|
|
b _08151480
|
|
_08151442:
|
|
movs r0, 0x8
|
|
bl sub_8152090
|
|
b _08151480
|
|
_0815144A:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _08151480
|
|
movs r4, 0
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _0815147A
|
|
movs r3, 0x86
|
|
lsls r3, 1
|
|
adds r2, r1, r3
|
|
adds r1, r0, 0
|
|
_08151468:
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08151442
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r1
|
|
bcc _08151468
|
|
_0815147A:
|
|
movs r0, 0xA
|
|
bl sub_8152090
|
|
_08151480:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81512B4
|
|
|
|
thumb_func_start sub_8151488
|
|
sub_8151488: @ 8151488
|
|
push {r4,lr}
|
|
ldr r4, _081514A0 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0x1
|
|
beq _081514B6
|
|
cmp r0, 0x1
|
|
bgt _081514A4
|
|
cmp r0, 0
|
|
beq _081514AA
|
|
b _081514D6
|
|
.align 2, 0
|
|
_081514A0: .4byte gUnknown_203F3E0
|
|
_081514A4:
|
|
cmp r0, 0x2
|
|
beq _081514C0
|
|
b _081514D6
|
|
_081514AA:
|
|
bl sub_800AAC0
|
|
movs r0, 0x7
|
|
bl sub_81549D4
|
|
b _081514CC
|
|
_081514B6:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _081514E4
|
|
b _081514CC
|
|
_081514C0:
|
|
bl sub_8155E8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _081514E4
|
|
_081514CC:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _081514E4
|
|
_081514D6:
|
|
ldr r0, _081514EC @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081514E4
|
|
movs r0, 0x9
|
|
bl sub_8152090
|
|
_081514E4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081514EC: .4byte gUnknown_3003F64
|
|
thumb_func_end sub_8151488
|
|
|
|
thumb_func_start sub_81514F0
|
|
sub_81514F0: @ 81514F0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _08151508 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x10]
|
|
cmp r1, 0x1
|
|
beq _08151524
|
|
cmp r1, 0x1
|
|
bgt _0815150C
|
|
cmp r1, 0
|
|
beq _08151512
|
|
b _0815156C
|
|
.align 2, 0
|
|
_08151508: .4byte gUnknown_203F3E0
|
|
_0815150C:
|
|
cmp r1, 0x2
|
|
beq _0815153C
|
|
b _0815156C
|
|
_08151512:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0815155E
|
|
_08151524:
|
|
bl UpdatePaletteFade
|
|
ldr r0, _08151538 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08151590
|
|
b _0815155E
|
|
.align 2, 0
|
|
_08151538: .4byte gPaletteFade
|
|
_0815153C:
|
|
bl sub_8154274
|
|
bl sub_8153ED8
|
|
ldr r0, [r4]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
bl sub_8153D08
|
|
bl sub_8154578
|
|
ldr r1, _08151568 @ =gUnknown_3002044
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
movs r0, 0x8
|
|
bl sub_81549D4
|
|
_0815155E:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08151590
|
|
.align 2, 0
|
|
_08151568: .4byte gUnknown_3002044
|
|
_0815156C:
|
|
bl sub_8155E68
|
|
cmp r0, 0
|
|
bne _08151590
|
|
ldr r4, _08151598 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x4]
|
|
bl DestroyTask
|
|
ldr r0, [r4]
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
_08151590:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151598: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81514F0
|
|
|
|
thumb_func_start sub_815159C
|
|
sub_815159C: @ 815159C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _081515B4 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
cmp r0, 0x6
|
|
bhi _0815169C
|
|
lsls r0, 2
|
|
ldr r1, _081515B8 @ =_081515BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081515B4: .4byte gUnknown_203F3E0
|
|
_081515B8: .4byte _081515BC
|
|
.align 2, 0
|
|
_081515BC:
|
|
.4byte _081515D8
|
|
.4byte _08151676
|
|
.4byte _081515F0
|
|
.4byte _08151642
|
|
.4byte _08151648
|
|
.4byte _08151656
|
|
.4byte _08151676
|
|
_081515D8:
|
|
movs r0, 0x9
|
|
bl sub_81549D4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _08151686
|
|
_081515F0:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
b _08151686
|
|
_08151642:
|
|
bl StopMapMusic
|
|
b _08151686
|
|
_08151648:
|
|
movs r0, 0xA5
|
|
lsls r0, 1
|
|
bl PlayNewMapMusic
|
|
bl sub_8154540
|
|
b _08151686
|
|
_08151656:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _08151686
|
|
_08151676:
|
|
bl UpdatePaletteFade
|
|
ldr r0, _08151694 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081516CC
|
|
_08151686:
|
|
ldr r0, _08151698 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _081516CC
|
|
.align 2, 0
|
|
_08151694: .4byte gPaletteFade
|
|
_08151698: .4byte gUnknown_203F3E0
|
|
_0815169C:
|
|
ldrb r0, [r1, 0x4]
|
|
bl DestroyTask
|
|
ldr r0, _081516D4 @ =sub_81516DC
|
|
bl sub_815206C
|
|
bl sub_8154730
|
|
ldr r0, [r4]
|
|
bl sub_81508EC
|
|
ldr r0, _081516D8 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081516C2
|
|
ldr r0, [r4]
|
|
adds r0, 0x24
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_081516C2:
|
|
bl sub_8153150
|
|
movs r0, 0
|
|
bl sub_81545BC
|
|
_081516CC:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081516D4: .4byte sub_81516DC
|
|
_081516D8: .4byte gUnknown_3003F64
|
|
thumb_func_end sub_815159C
|
|
|
|
thumb_func_start sub_81516DC
|
|
sub_81516DC: @ 81516DC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _081516F8 @ =gUnknown_203F3E0
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x1
|
|
beq _08151708
|
|
cmp r0, 0x1
|
|
bgt _081516FC
|
|
cmp r0, 0
|
|
beq _08151702
|
|
b _08151720
|
|
.align 2, 0
|
|
_081516F8: .4byte gUnknown_203F3E0
|
|
_081516FC:
|
|
cmp r0, 0x2
|
|
beq _0815170E
|
|
b _08151720
|
|
_08151702:
|
|
bl sub_81520B4
|
|
b _08151712
|
|
_08151708:
|
|
bl sub_8153DD8
|
|
b _08151716
|
|
_0815170E:
|
|
bl sub_8153F1C
|
|
_08151712:
|
|
cmp r0, 0x1
|
|
bne _08151744
|
|
_08151716:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
b _08151744
|
|
_08151720:
|
|
ldr r0, [r4]
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08151738
|
|
ldr r0, _08151734 @ =sub_8150C08
|
|
bl sub_815206C
|
|
b _0815173E
|
|
.align 2, 0
|
|
_08151734: .4byte sub_8150C08
|
|
_08151738:
|
|
ldr r0, _0815174C @ =sub_8150C40
|
|
bl sub_815206C
|
|
_0815173E:
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08151744:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815174C: .4byte sub_8150C40
|
|
thumb_func_end sub_81516DC
|
|
|
|
thumb_func_start sub_8151750
|
|
sub_8151750: @ 8151750
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
ldr r1, _08151774 @ =gTasks+0x8
|
|
adds r6, r0, r1
|
|
movs r0, 0
|
|
ldrsh r5, [r6, r0]
|
|
cmp r5, 0x1
|
|
beq _081517A8
|
|
cmp r5, 0x1
|
|
bgt _08151778
|
|
cmp r5, 0
|
|
beq _0815177E
|
|
b _08151836
|
|
.align 2, 0
|
|
_08151774: .4byte gTasks+0x8
|
|
_08151778:
|
|
cmp r5, 0x2
|
|
beq _081517BA
|
|
b _08151836
|
|
_0815177E:
|
|
ldr r4, _081517A0 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
ldr r2, _081517A4 @ =0x0000318c
|
|
adds r0, r2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl SendBlock
|
|
ldr r0, [r4]
|
|
strb r5, [r0, 0x8]
|
|
b _081517B2
|
|
.align 2, 0
|
|
_081517A0: .4byte gUnknown_203F3E0
|
|
_081517A4: .4byte 0x0000318c
|
|
_081517A8:
|
|
bl sub_800A4BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08151836
|
|
_081517B2:
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
b _08151836
|
|
_081517BA:
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r3, _08151840 @ =gUnknown_203F3E0
|
|
ldr r0, [r3]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08151812
|
|
adds r6, r3, 0
|
|
_081517D2:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08151800
|
|
ldr r0, [r6]
|
|
lsls r2, r4, 2
|
|
adds r2, r0
|
|
ldr r0, _08151844 @ =0x0000318c
|
|
adds r2, r0
|
|
lsls r0, r4, 8
|
|
ldr r1, _08151848 @ =gUnknown_2022118
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl ResetBlockReceivedFlag
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
ldr r3, [sp]
|
|
_08151800:
|
|
lsrs r5, 1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, [r3]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _081517D2
|
|
_08151812:
|
|
ldr r4, _08151840 @ =gUnknown_203F3E0
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r0, 0x8]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08151836
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
movs r0, 0x6
|
|
bl sub_81549D4
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
_08151836:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151840: .4byte gUnknown_203F3E0
|
|
_08151844: .4byte 0x0000318c
|
|
_08151848: .4byte gUnknown_2022118
|
|
thumb_func_end sub_8151750
|
|
|
|
thumb_func_start sub_815184C
|
|
sub_815184C: @ 815184C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
ldr r6, _08151928 @ =gUnknown_203F3E0
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x24
|
|
ldrb r7, [r1]
|
|
ldr r2, _0815192C @ =0x000031a0
|
|
adds r1, r0, r2
|
|
ldr r3, _08151930 @ =0x000031cc
|
|
adds r2, r0, r3
|
|
ldr r4, _08151934 @ =0x00003208
|
|
adds r3, r0, r4
|
|
ldr r5, _08151938 @ =0x00003244
|
|
adds r4, r0, r5
|
|
str r4, [sp]
|
|
adds r5, 0x3C
|
|
adds r4, r0, r5
|
|
str r4, [sp, 0x4]
|
|
adds r5, 0x3C
|
|
adds r4, r0, r5
|
|
str r4, [sp, 0x8]
|
|
adds r4, r0, 0
|
|
adds r4, 0x40
|
|
str r4, [sp, 0xC]
|
|
movs r5, 0x90
|
|
lsls r5, 1
|
|
adds r4, r0, r5
|
|
str r4, [sp, 0x10]
|
|
movs r4, 0x96
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
str r0, [sp, 0x14]
|
|
movs r0, 0
|
|
bl sub_815A950
|
|
ldr r1, [r6]
|
|
ldr r5, _0815193C @ =0x000031b0
|
|
adds r2, r1, r5
|
|
str r0, [r2]
|
|
movs r0, 0x94
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r5, 0x1
|
|
cmp r5, r7
|
|
bcs _081518F4
|
|
_081518B0:
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA8
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081518EA
|
|
lsls r0, r5, 4
|
|
subs r0, r5
|
|
lsls r4, r0, 2
|
|
adds r1, r4, r1
|
|
ldr r2, _08151930 @ =0x000031cc
|
|
adds r1, r2
|
|
adds r0, r5, 0
|
|
bl sub_815AB04
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _081518EA
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldr r3, _08151930 @ =0x000031cc
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
movs r4, 0x94
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
_081518EA:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _081518B0
|
|
_081518F4:
|
|
ldr r5, _08151928 @ =gUnknown_203F3E0
|
|
ldr r1, [r5]
|
|
movs r6, 0x92
|
|
lsls r6, 1
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bls _08151952
|
|
ldr r1, [r5]
|
|
movs r2, 0x94
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
beq _08151940
|
|
bl sub_80FBA44
|
|
ldr r0, [r5]
|
|
adds r0, r6
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
b _08151952
|
|
.align 2, 0
|
|
_08151928: .4byte gUnknown_203F3E0
|
|
_0815192C: .4byte 0x000031a0
|
|
_08151930: .4byte 0x000031cc
|
|
_08151934: .4byte 0x00003208
|
|
_08151938: .4byte 0x00003244
|
|
_0815193C: .4byte 0x000031b0
|
|
_08151940:
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x46
|
|
bls _08151952
|
|
bl sub_80FBA44
|
|
ldr r0, [r5]
|
|
adds r0, r6
|
|
strb r4, [r0]
|
|
_08151952:
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08151A46
|
|
ldr r3, _0815199C @ =0x000031cc
|
|
mov r12, r3
|
|
ldr r4, _081519A0 @ =gUnknown_203F3E0
|
|
mov r8, r4
|
|
_08151960:
|
|
mov r6, r8
|
|
ldr r2, [r6]
|
|
lsls r0, r5, 4
|
|
subs r1, r0, r5
|
|
lsls r1, 2
|
|
adds r1, r2, r1
|
|
add r1, r12
|
|
ldrb r1, [r1]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _08151986
|
|
adds r0, r2, 0
|
|
adds r0, 0xA8
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08151986
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08151986:
|
|
adds r3, r4, 0
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA8
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bgt _081519A4
|
|
cmp r0, 0x1
|
|
bge _081519AA
|
|
b _08151A3C
|
|
.align 2, 0
|
|
_0815199C: .4byte 0x000031cc
|
|
_081519A0: .4byte gUnknown_203F3E0
|
|
_081519A4:
|
|
cmp r0, 0x4
|
|
beq _081519F8
|
|
b _08151A3C
|
|
_081519AA:
|
|
adds r1, 0xB0
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bls _08151A3C
|
|
ldr r0, [r3]
|
|
adds r0, 0xB0
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, 0xA8
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
subs r1, r6, r5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
add r0, r12
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
ldr r6, _081519F0 @ =0x000031d0
|
|
adds r0, r6
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
ldr r1, _081519F4 @ =0x000031d4
|
|
adds r0, r1
|
|
b _08151A3A
|
|
.align 2, 0
|
|
_081519F0: .4byte 0x000031d0
|
|
_081519F4: .4byte 0x000031d4
|
|
_081519F8:
|
|
adds r1, 0xB0
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x27
|
|
bls _08151A3C
|
|
ldr r0, [r4]
|
|
adds r0, 0xB0
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
subs r1, r6, r5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
add r0, r12
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
ldr r3, _08151A54 @ =0x000031d0
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
ldr r6, _08151A58 @ =0x000031d4
|
|
adds r0, r6
|
|
_08151A3A:
|
|
strb r2, [r0]
|
|
_08151A3C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08151960
|
|
_08151A46:
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151A54: .4byte 0x000031d0
|
|
_08151A58: .4byte 0x000031d4
|
|
thumb_func_end sub_815184C
|
|
|
|
thumb_func_start sub_8151A5C
|
|
sub_8151A5C: @ 8151A5C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x18
|
|
ldr r5, _08151B20 @ =gUnknown_203F3E0
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0x24
|
|
ldrb r6, [r1]
|
|
ldr r2, _08151B24 @ =0x000031a0
|
|
adds r1, r0, r2
|
|
ldr r3, _08151B28 @ =0x000031cc
|
|
adds r2, r0, r3
|
|
ldr r4, _08151B2C @ =0x00003208
|
|
adds r3, r0, r4
|
|
ldr r7, _08151B30 @ =0x00003244
|
|
adds r4, r0, r7
|
|
str r4, [sp]
|
|
adds r7, 0x3C
|
|
adds r4, r0, r7
|
|
str r4, [sp, 0x4]
|
|
adds r7, 0x3C
|
|
adds r4, r0, r7
|
|
str r4, [sp, 0x8]
|
|
adds r4, r0, 0
|
|
adds r4, 0x40
|
|
str r4, [sp, 0xC]
|
|
movs r7, 0x90
|
|
lsls r7, 1
|
|
adds r4, r0, r7
|
|
str r4, [sp, 0x10]
|
|
movs r4, 0x96
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
str r0, [sp, 0x14]
|
|
movs r0, 0
|
|
bl sub_815A950
|
|
ldr r1, [r5]
|
|
ldr r7, _08151B34 @ =0x000031b0
|
|
adds r2, r1, r7
|
|
str r0, [r2]
|
|
movs r0, 0x94
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
cmp r4, r6
|
|
bcs _08151AEC
|
|
_08151ABC:
|
|
adds r0, r4, 0
|
|
bl sub_815AB60
|
|
cmp r0, 0
|
|
beq _08151AE2
|
|
ldr r0, _08151B20 @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
lsls r1, r4, 2
|
|
movs r3, 0x98
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
movs r7, 0x94
|
|
lsls r7, 1
|
|
adds r1, r2, r7
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08151AE2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r6
|
|
bcc _08151ABC
|
|
_08151AEC:
|
|
ldr r5, _08151B20 @ =gUnknown_203F3E0
|
|
ldr r1, [r5]
|
|
movs r6, 0x92
|
|
lsls r6, 1
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bls _08151B4A
|
|
ldr r1, [r5]
|
|
movs r2, 0x94
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
beq _08151B38
|
|
bl sub_80FBA44
|
|
ldr r0, [r5]
|
|
adds r0, r6
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
b _08151B4A
|
|
.align 2, 0
|
|
_08151B20: .4byte gUnknown_203F3E0
|
|
_08151B24: .4byte 0x000031a0
|
|
_08151B28: .4byte 0x000031cc
|
|
_08151B2C: .4byte 0x00003208
|
|
_08151B30: .4byte 0x00003244
|
|
_08151B34: .4byte 0x000031b0
|
|
_08151B38:
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x46
|
|
bls _08151B4A
|
|
bl sub_80FBA44
|
|
ldr r0, [r5]
|
|
adds r0, r6
|
|
strb r4, [r0]
|
|
_08151B4A:
|
|
add sp, 0x18
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151A5C
|
|
|
|
thumb_func_start sub_8151B54
|
|
sub_8151B54: @ 8151B54
|
|
push {r4,r5,lr}
|
|
ldr r5, _08151B6C @ =gUnknown_203F3E0
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x18]
|
|
cmp r0, 0x4
|
|
beq _08151B90
|
|
cmp r0, 0x4
|
|
bgt _08151B70
|
|
cmp r0, 0x3
|
|
beq _08151B76
|
|
b _08151B9A
|
|
.align 2, 0
|
|
_08151B6C: .4byte gUnknown_203F3E0
|
|
_08151B70:
|
|
cmp r0, 0xB
|
|
beq _08151B96
|
|
b _08151B9A
|
|
_08151B76:
|
|
bl sub_8152A00
|
|
adds r4, r0, 0
|
|
cmp r4, 0x1
|
|
bne _08151B9A
|
|
bl sub_8152A70
|
|
ldr r0, [r5]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r4, [r0]
|
|
b _08151B9A
|
|
_08151B90:
|
|
bl sub_815184C
|
|
b _08151B9A
|
|
_08151B96:
|
|
bl sub_8151A5C
|
|
_08151B9A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151B54
|
|
|
|
thumb_func_start sub_8151BA0
|
|
sub_8151BA0: @ 8151BA0
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
ldr r0, _08151BB4 @ =gUnknown_203F3E0
|
|
ldr r5, [r0]
|
|
ldrb r0, [r5, 0x18]
|
|
cmp r0, 0x4
|
|
beq _08151BB8
|
|
cmp r0, 0xB
|
|
beq _08151C08
|
|
b _08151C44
|
|
.align 2, 0
|
|
_08151BB4: .4byte gUnknown_203F3E0
|
|
_08151BB8:
|
|
ldr r1, _08151BF8 @ =0x000032cc
|
|
adds r0, r5, r1
|
|
ldr r2, _08151BFC @ =0x000031cc
|
|
adds r1, r5, r2
|
|
ldr r3, _08151C00 @ =0x00003208
|
|
adds r2, r5, r3
|
|
ldr r4, _08151C04 @ =0x00003244
|
|
adds r3, r5, r4
|
|
movs r6, 0xCA
|
|
lsls r6, 6
|
|
adds r4, r5, r6
|
|
str r4, [sp]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x4]
|
|
adds r4, r5, 0
|
|
adds r4, 0x40
|
|
ldrb r4, [r4]
|
|
str r4, [sp, 0x8]
|
|
movs r6, 0x90
|
|
lsls r6, 1
|
|
adds r4, r5, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp, 0xC]
|
|
adds r6, 0xC
|
|
adds r4, r5, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp, 0x10]
|
|
bl sub_815A61C
|
|
b _08151C44
|
|
.align 2, 0
|
|
_08151BF8: .4byte 0x000032cc
|
|
_08151BFC: .4byte 0x000031cc
|
|
_08151C00: .4byte 0x00003208
|
|
_08151C04: .4byte 0x00003244
|
|
_08151C08:
|
|
ldr r1, _08151C4C @ =0x000032cc
|
|
adds r0, r5, r1
|
|
ldr r2, _08151C50 @ =0x000031cc
|
|
adds r1, r5, r2
|
|
ldr r3, _08151C54 @ =0x00003208
|
|
adds r2, r5, r3
|
|
ldr r4, _08151C58 @ =0x00003244
|
|
adds r3, r5, r4
|
|
movs r6, 0xCA
|
|
lsls r6, 6
|
|
adds r4, r5, r6
|
|
str r4, [sp]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x4]
|
|
adds r4, r5, 0
|
|
adds r4, 0x40
|
|
ldrb r4, [r4]
|
|
str r4, [sp, 0x8]
|
|
movs r6, 0x90
|
|
lsls r6, 1
|
|
adds r4, r5, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp, 0xC]
|
|
adds r6, 0xC
|
|
adds r4, r5, r6
|
|
ldr r4, [r4]
|
|
str r4, [sp, 0x10]
|
|
bl sub_815A61C
|
|
_08151C44:
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151C4C: .4byte 0x000032cc
|
|
_08151C50: .4byte 0x000031cc
|
|
_08151C54: .4byte 0x00003208
|
|
_08151C58: .4byte 0x00003244
|
|
thumb_func_end sub_8151BA0
|
|
|
|
thumb_func_start sub_8151C5C
|
|
sub_8151C5C: @ 8151C5C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x18
|
|
ldr r0, _08151C70 @ =gUnknown_203F3E0
|
|
ldr r5, [r0]
|
|
ldrb r0, [r5, 0x18]
|
|
cmp r0, 0x4
|
|
beq _08151C74
|
|
cmp r0, 0xB
|
|
beq _08151CCC
|
|
b _08151D10
|
|
.align 2, 0
|
|
_08151C70: .4byte gUnknown_203F3E0
|
|
_08151C74:
|
|
adds r0, r5, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08151CBC @ =0x000031a0
|
|
adds r1, r2
|
|
adds r1, r5, r1
|
|
ldr r3, _08151CC0 @ =0x000031cc
|
|
adds r2, r5, r3
|
|
ldr r4, _08151CC4 @ =0x00003208
|
|
adds r3, r5, r4
|
|
ldr r6, _08151CC8 @ =0x00003244
|
|
adds r4, r5, r6
|
|
str r4, [sp]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x4]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x8]
|
|
adds r4, r5, 0
|
|
adds r4, 0x40
|
|
str r4, [sp, 0xC]
|
|
movs r6, 0x90
|
|
lsls r6, 1
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x10]
|
|
adds r6, 0xC
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x14]
|
|
bl sub_815A950
|
|
b _08151D10
|
|
.align 2, 0
|
|
_08151CBC: .4byte 0x000031a0
|
|
_08151CC0: .4byte 0x000031cc
|
|
_08151CC4: .4byte 0x00003208
|
|
_08151CC8: .4byte 0x00003244
|
|
_08151CCC:
|
|
adds r0, r5, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08151D18 @ =0x000031a0
|
|
adds r1, r2
|
|
adds r1, r5, r1
|
|
ldr r3, _08151D1C @ =0x000031cc
|
|
adds r2, r5, r3
|
|
ldr r4, _08151D20 @ =0x00003208
|
|
adds r3, r5, r4
|
|
ldr r6, _08151D24 @ =0x00003244
|
|
adds r4, r5, r6
|
|
str r4, [sp]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x4]
|
|
adds r6, 0x3C
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x8]
|
|
adds r4, r5, 0
|
|
adds r4, 0x40
|
|
str r4, [sp, 0xC]
|
|
movs r6, 0x90
|
|
lsls r6, 1
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x10]
|
|
adds r6, 0xC
|
|
adds r4, r5, r6
|
|
str r4, [sp, 0x14]
|
|
bl sub_815A950
|
|
_08151D10:
|
|
add sp, 0x18
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08151D18: .4byte 0x000031a0
|
|
_08151D1C: .4byte 0x000031cc
|
|
_08151D20: .4byte 0x00003208
|
|
_08151D24: .4byte 0x00003244
|
|
thumb_func_end sub_8151C5C
|
|
|
|
thumb_func_start sub_8151D28
|
|
sub_8151D28: @ 8151D28
|
|
push {r4,lr}
|
|
ldr r4, _08151D40 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, 0x4
|
|
beq _08151D5E
|
|
cmp r0, 0x4
|
|
bgt _08151D44
|
|
cmp r0, 0x3
|
|
beq _08151D4A
|
|
b _08151D90
|
|
.align 2, 0
|
|
_08151D40: .4byte gUnknown_203F3E0
|
|
_08151D44:
|
|
cmp r0, 0xB
|
|
beq _08151D74
|
|
b _08151D90
|
|
_08151D4A:
|
|
movs r0, 0x1
|
|
bl sub_815A5BC
|
|
ldr r0, [r4]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
b _08151D90
|
|
_08151D5E:
|
|
ldr r2, _08151D70 @ =0x000032f8
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08151D90
|
|
bl sub_815AAD8
|
|
b _08151D90
|
|
.align 2, 0
|
|
_08151D70: .4byte 0x000032f8
|
|
_08151D74:
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151D90
|
|
adds r2, 0xC
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151D90
|
|
movs r0, 0x1
|
|
bl sub_815AB3C
|
|
_08151D90:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151D28
|
|
|
|
thumb_func_start sub_8151D98
|
|
sub_8151D98: @ 8151D98
|
|
push {r4-r6,lr}
|
|
ldr r6, _08151DD0 @ =gUnknown_203F3E0
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r2, r0
|
|
ldr r3, _08151DD4 @ =0x000031cc
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151DD8
|
|
bl IsSEPlaying
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08151E3A
|
|
ldr r0, [r6]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _08151E3A
|
|
.align 2, 0
|
|
_08151DD0: .4byte gUnknown_203F3E0
|
|
_08151DD4: .4byte 0x000031cc
|
|
_08151DD8:
|
|
ldr r3, _08151E04 @ =0x000031d0
|
|
adds r0, r1, r3
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
bne _08151E08
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151E3A
|
|
movs r0, 0x19
|
|
bl m4aSongNumStop
|
|
movs r0, 0x19
|
|
bl PlaySE
|
|
ldr r0, [r6]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
b _08151E38
|
|
.align 2, 0
|
|
_08151E04: .4byte 0x000031d0
|
|
_08151E08:
|
|
ldr r3, _08151E64 @ =0x000031d4
|
|
adds r0, r1, r3
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
bne _08151E3A
|
|
movs r5, 0xA2
|
|
lsls r5, 1
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151E3A
|
|
bl IsSEPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08151E3A
|
|
movs r0, 0x16
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl sub_8153BC0
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
_08151E38:
|
|
strb r4, [r0]
|
|
_08151E3A:
|
|
ldr r0, _08151E68 @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
movs r5, 0xAA
|
|
lsls r5, 1
|
|
adds r1, r2, r5
|
|
ldrb r1, [r1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _08151E6C
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08151E6C
|
|
bl StopMapMusic
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
b _08151E8A
|
|
.align 2, 0
|
|
_08151E64: .4byte 0x000031d4
|
|
_08151E68: .4byte gUnknown_203F3E0
|
|
_08151E6C:
|
|
ldr r0, [r4]
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08151E8C
|
|
movs r0, 0xA
|
|
bl PlayFanfareByFanfareNum
|
|
ldr r0, [r4]
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
_08151E8A:
|
|
strb r1, [r0]
|
|
_08151E8C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151D98
|
|
|
|
thumb_func_start sub_8151E94
|
|
sub_8151E94: @ 8151E94
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r6, _08151EE0 @ =gUnknown_203F3E0
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0x44
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x48
|
|
ldrb r7, [r0]
|
|
subs r0, 0x20
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r2, r0
|
|
ldr r3, _08151EE4 @ =0x000031cc
|
|
adds r0, r1, r3
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
bne _08151EEC
|
|
ldr r4, _08151EE8 @ =0x000031d0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08151F4E
|
|
adds r4, 0x4
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08151F4E
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
b _08151F4E
|
|
.align 2, 0
|
|
_08151EE0: .4byte gUnknown_203F3E0
|
|
_08151EE4: .4byte 0x000031cc
|
|
_08151EE8: .4byte 0x000031d0
|
|
_08151EEC:
|
|
ldr r3, _08151F18 @ =0x000031d0
|
|
adds r0, r1, r3
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
bne _08151F1C
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151F4E
|
|
movs r0, 0x19
|
|
bl m4aSongNumStop
|
|
movs r0, 0x19
|
|
bl PlaySE
|
|
ldr r0, [r6]
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
b _08151F4C
|
|
.align 2, 0
|
|
_08151F18: .4byte 0x000031d0
|
|
_08151F1C:
|
|
ldr r4, _08151FA0 @ =0x000031d4
|
|
adds r0, r1, r4
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
bne _08151F4E
|
|
movs r5, 0xA2
|
|
lsls r5, 1
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151F4E
|
|
bl IsSEPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08151F4E
|
|
movs r0, 0x16
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl sub_8153BC0
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
_08151F4C:
|
|
strb r4, [r0]
|
|
_08151F4E:
|
|
mov r4, r8
|
|
cmp r4, r7
|
|
bcs _08151FC2
|
|
ldr r5, _08151FA4 @ =gUnknown_203F3E0
|
|
_08151F56:
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08151FA8 @ =0x000031a0
|
|
adds r0, r1
|
|
adds r0, r2, r0
|
|
adds r1, r0, 0
|
|
adds r1, 0x14
|
|
adds r0, 0x1F
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08151FAC
|
|
movs r3, 0xA4
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08151FB8
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
adds r0, 0x43
|
|
bl PlaySE
|
|
ldr r0, [r5]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
b _08151FB6
|
|
.align 2, 0
|
|
_08151FA0: .4byte 0x000031d4
|
|
_08151FA4: .4byte gUnknown_203F3E0
|
|
_08151FA8: .4byte 0x000031a0
|
|
_08151FAC:
|
|
movs r3, 0xA4
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
adds r0, r4
|
|
movs r1, 0
|
|
_08151FB6:
|
|
strb r1, [r0]
|
|
_08151FB8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r7
|
|
bcc _08151F56
|
|
_08151FC2:
|
|
ldr r0, _08151FEC @ =gUnknown_203F3E0
|
|
ldr r2, [r0]
|
|
movs r5, 0xAA
|
|
lsls r5, 1
|
|
adds r1, r2, r5
|
|
ldrb r1, [r1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _08151FF0
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08151FF0
|
|
bl StopMapMusic
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
b _0815200E
|
|
.align 2, 0
|
|
_08151FEC: .4byte gUnknown_203F3E0
|
|
_08151FF0:
|
|
ldr r0, [r4]
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08152010
|
|
movs r0, 0xA
|
|
bl PlayFanfareByFanfareNum
|
|
ldr r0, [r4]
|
|
movs r3, 0xAA
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
movs r1, 0x2
|
|
_0815200E:
|
|
strb r1, [r0]
|
|
_08152010:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8151E94
|
|
|
|
thumb_func_start sub_815201C
|
|
sub_815201C: @ 815201C
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_815201C
|
|
|
|
thumb_func_start sub_8152034
|
|
sub_8152034: @ 8152034
|
|
push {lr}
|
|
bl TransferPlttBuffer
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8152034
|
|
|
|
thumb_func_start sub_8152048
|
|
sub_8152048: @ 8152048
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
bl IsMonShiny
|
|
strb r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8152048
|
|
|
|
thumb_func_start sub_815205C
|
|
sub_815205C: @ 815205C
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_815205C
|
|
|
|
thumb_func_start sub_815206C
|
|
sub_815206C: @ 815206C
|
|
push {lr}
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
ldr r1, _0815208C @ =gUnknown_203F3E0
|
|
ldr r3, [r1]
|
|
movs r2, 0
|
|
strb r0, [r3, 0x4]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, 0x10]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, 0xC]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, 0x14]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815208C: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_815206C
|
|
|
|
thumb_func_start sub_8152090
|
|
sub_8152090: @ 8152090
|
|
push {r4,lr}
|
|
ldr r2, _081520B0 @ =gUnknown_203F3E0
|
|
ldr r1, [r2]
|
|
ldrb r3, [r1, 0x18]
|
|
movs r4, 0
|
|
strb r3, [r1, 0x1C]
|
|
ldr r1, [r2]
|
|
strb r0, [r1, 0x18]
|
|
ldr r0, [r2]
|
|
strb r4, [r0, 0x10]
|
|
ldr r0, [r2]
|
|
strb r4, [r0, 0x14]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081520B0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152090
|
|
|
|
thumb_func_start sub_81520B4
|
|
sub_81520B4: @ 81520B4
|
|
push {r4,lr}
|
|
ldr r3, _081520E8 @ =gUnknown_203F3E0
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1, 0x14]
|
|
lsrs r2, r0, 2
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
cmp r2, 0
|
|
beq _08152108
|
|
ldr r3, [r3]
|
|
ldrb r0, [r3, 0x14]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08152108
|
|
ldr r1, _081520EC @ =gUnknown_8475548
|
|
adds r0, r3, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _081520F0
|
|
movs r0, 0x1
|
|
b _0815210A
|
|
.align 2, 0
|
|
_081520E8: .4byte gUnknown_203F3E0
|
|
_081520EC: .4byte gUnknown_8475548
|
|
_081520F0:
|
|
lsls r4, r2, 3
|
|
adds r1, r4, 0
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
negs r4, r4
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0x18
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
_08152108:
|
|
movs r0, 0
|
|
_0815210A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81520B4
|
|
|
|
thumb_func_start sub_8152110
|
|
sub_8152110: @ 8152110
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r2, _08152168 @ =gUnknown_203F3E0
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0x44
|
|
adds r0, 0x48
|
|
ldrb r5, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r1, r5
|
|
bcs _0815215C
|
|
mov r8, r2
|
|
ldr r0, _0815216C @ =0x000032e0
|
|
mov r12, r0
|
|
movs r7, 0
|
|
movs r6, 0x1
|
|
_08152132:
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
mov r2, r12
|
|
adds r4, r0, r2
|
|
ldr r2, _08152170 @ =0x000032eb
|
|
adds r0, r2
|
|
adds r2, r0, r1
|
|
movs r3, 0
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _0815214C
|
|
movs r3, 0x1
|
|
_0815214C:
|
|
strb r3, [r2]
|
|
adds r0, r4, r1
|
|
strb r7, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r5
|
|
bcc _08152132
|
|
_0815215C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152168: .4byte gUnknown_203F3E0
|
|
_0815216C: .4byte 0x000032e0
|
|
_08152170: .4byte 0x000032eb
|
|
thumb_func_end sub_8152110
|
|
|
|
thumb_func_start sub_8152174
|
|
sub_8152174: @ 8152174
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
ldr r0, _08152248 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
adds r0, 0x48
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _081521A8
|
|
b _08152464
|
|
_081521A8:
|
|
movs r6, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r6, r0
|
|
bcs _08152290
|
|
_081521B0:
|
|
ldr r3, _08152248 @ =gUnknown_203F3E0
|
|
lsls r0, r6, 4
|
|
subs r1, r0, r6
|
|
lsls r1, 2
|
|
ldr r2, [r3]
|
|
adds r1, r2
|
|
ldr r4, _0815224C @ =0x000031cc
|
|
adds r4, r1
|
|
mov r8, r4
|
|
ldrb r1, [r4]
|
|
mov r9, r0
|
|
adds r0, r6, 0x1
|
|
str r0, [sp, 0xC]
|
|
cmp r1, 0
|
|
beq _08152284
|
|
adds r0, r2, 0
|
|
adds r0, 0xA8
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08152284
|
|
ldr r1, [sp]
|
|
mov r10, r1
|
|
ldr r2, [sp, 0x4]
|
|
cmp r10, r2
|
|
bcs _08152284
|
|
adds r7, r3, 0
|
|
_081521E6:
|
|
ldr r0, _08152250 @ =gUnknown_8471F50
|
|
add r0, r10
|
|
ldrb r5, [r0]
|
|
ldr r1, [r7]
|
|
lsls r4, r5, 1
|
|
adds r0, r1, 0
|
|
adds r0, 0xF4
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
beq _08152284
|
|
adds r0, r1, 0
|
|
adds r0, 0xF5
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
beq _08152284
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_8152484
|
|
cmp r0, 0x1
|
|
bne _08152260
|
|
movs r2, 0
|
|
ldr r3, _08152248 @ =gUnknown_203F3E0
|
|
mov r8, r4
|
|
_0815221E:
|
|
ldr r0, [r3]
|
|
mov r4, r8
|
|
adds r1, r2, r4
|
|
adds r0, 0xF4
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _08152254
|
|
strb r6, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0xA8
|
|
adds r0, r6
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _08152284
|
|
.align 2, 0
|
|
_08152248: .4byte gUnknown_203F3E0
|
|
_0815224C: .4byte 0x000031cc
|
|
_08152250: .4byte gUnknown_8471F50
|
|
_08152254:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1
|
|
bls _0815221E
|
|
b _08152284
|
|
_08152260:
|
|
ldr r0, [r7]
|
|
mov r2, r9
|
|
subs r1, r2, r6
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r4, _08152354 @ =0x000031d4
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08152284
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, [sp, 0x4]
|
|
cmp r10, r0
|
|
bcc _081521E6
|
|
_08152284:
|
|
ldr r1, [sp, 0xC]
|
|
lsls r0, r1, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, [sp, 0x8]
|
|
cmp r6, r2
|
|
bcc _081521B0
|
|
_08152290:
|
|
ldr r4, [sp]
|
|
mov r10, r4
|
|
ldr r0, [sp, 0x4]
|
|
cmp r10, r0
|
|
bcc _0815229C
|
|
b _08152464
|
|
_0815229C:
|
|
ldr r1, _08152358 @ =gUnknown_203F3E0
|
|
mov r9, r1
|
|
_081522A0:
|
|
movs r6, 0xFF
|
|
ldr r0, _0815235C @ =gUnknown_8471F50
|
|
add r0, r10
|
|
ldrb r5, [r0]
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _081522B8
|
|
b _08152452
|
|
_081522B8:
|
|
adds r0, r5, 0
|
|
bl sub_8152BD4
|
|
mov r1, r9
|
|
ldr r4, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
adds r1, 0x90
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _081522DE
|
|
movs r3, 0x2
|
|
_081522DE:
|
|
ldr r2, _08152360 @ =gUnknown_847553C
|
|
ldr r0, _08152364 @ =0x000031b4
|
|
adds r1, r4, r0
|
|
adds r1, r5
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0xD0
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
subs r2, r1, r0
|
|
cmp r2, 0x5
|
|
bgt _0815230C
|
|
adds r1, r4, 0
|
|
adds r1, 0x9C
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
strb r0, [r1]
|
|
_0815230C:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, 0x9C
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
movs r4, 0xFF
|
|
ands r0, r4
|
|
cmp r0, 0x5
|
|
bhi _08152326
|
|
b _08152452
|
|
_08152326:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, 0x9C
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r3, [r1]
|
|
lsls r1, r5, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0xF4
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
mov r8, r1
|
|
cmp r0, 0xFF
|
|
bne _08152368
|
|
adds r0, r3, 0
|
|
adds r0, 0xF5
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08152350
|
|
b _08152452
|
|
_08152350:
|
|
b _08152378
|
|
.align 2, 0
|
|
_08152354: .4byte 0x000031d4
|
|
_08152358: .4byte gUnknown_203F3E0
|
|
_0815235C: .4byte gUnknown_8471F50
|
|
_08152360: .4byte gUnknown_847553C
|
|
_08152364: .4byte 0x000031b4
|
|
_08152368:
|
|
adds r0, r3, 0
|
|
adds r0, 0xF5
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08152378
|
|
ldrb r4, [r2]
|
|
b _0815239E
|
|
_08152378:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0xF4
|
|
add r0, r8
|
|
ldrb r7, [r0]
|
|
adds r1, 0xF5
|
|
add r1, r8
|
|
ldrb r6, [r1]
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0815239A
|
|
adds r4, r7, 0
|
|
b _0815239E
|
|
_0815239A:
|
|
adds r4, r6, 0
|
|
adds r6, r7, 0
|
|
_0815239E:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r2, _08152474 @ =0x000032eb
|
|
adds r0, r2
|
|
adds r0, r5
|
|
movs r1, 0x7
|
|
strb r1, [r0]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
adds r0, 0xA8
|
|
adds r0, r4
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xB8
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
ldr r1, [r2]
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r2, _08152478 @ =0x000031d0
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
lsls r0, r6, 4
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, _0815247C @ =0x000031d4
|
|
adds r1, r0
|
|
movs r2, 0x1
|
|
strb r2, [r1]
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
lsls r0, r4, 1
|
|
adds r1, 0x86
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_8152D34
|
|
movs r0, 0x1
|
|
bl sub_8152F94
|
|
adds r0, r4, 0
|
|
bl sub_8152B64
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0xE8
|
|
adds r1, r5
|
|
ldr r2, _08152480 @ =0x000032e0
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
mov r4, r9
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
adds r1, 0xF4
|
|
add r1, r8
|
|
ldrb r0, [r1]
|
|
movs r2, 0xFF
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r1, 0xF5
|
|
add r1, r8
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
_08152452:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r4, [sp, 0x4]
|
|
cmp r10, r4
|
|
bcs _08152464
|
|
b _081522A0
|
|
_08152464:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152474: .4byte 0x000032eb
|
|
_08152478: .4byte 0x000031d0
|
|
_0815247C: .4byte 0x000031d4
|
|
_08152480: .4byte 0x000032e0
|
|
thumb_func_end sub_8152174
|
|
|
|
thumb_func_start sub_8152484
|
|
sub_8152484: @ 8152484
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
movs r7, 0
|
|
ldr r2, _081524B8 @ =gUnknown_203F3E0
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _081524BC @ =0x000032e0
|
|
adds r1, r0
|
|
mov r12, r2
|
|
cmp r3, 0x2
|
|
beq _081524C0
|
|
cmp r3, 0x2
|
|
bgt _081524C6
|
|
cmp r3, 0x1
|
|
beq _081524C4
|
|
b _081524C6
|
|
.align 2, 0
|
|
_081524B8: .4byte gUnknown_203F3E0
|
|
_081524BC: .4byte 0x000032e0
|
|
_081524C0:
|
|
movs r7, 0x1
|
|
b _081524C6
|
|
_081524C4:
|
|
movs r7, 0x2
|
|
_081524C6:
|
|
adds r0, r1, 0
|
|
adds r0, 0xB
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
subs r0, 0x6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08152524
|
|
ldr r0, _08152518 @ =gUnknown_8472063
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
adds r1, r7, r1
|
|
lsls r2, r5, 4
|
|
subs r2, r5
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
cmp r6, r1
|
|
bne _0815255A
|
|
mov r0, r12
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0xC4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08152520
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1, r0
|
|
ldr r1, _0815251C @ =0x000031d4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0815255A
|
|
.align 2, 0
|
|
_08152518: .4byte gUnknown_8472063
|
|
_0815251C: .4byte 0x000031d4
|
|
_08152520:
|
|
movs r0, 0x1
|
|
b _0815255C
|
|
_08152524:
|
|
ldr r0, _08152564 @ =gUnknown_8472063
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
adds r1, r7, r1
|
|
lsls r2, r5, 4
|
|
subs r2, r5
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
cmp r6, r1
|
|
bne _0815255A
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xA8
|
|
adds r0, r4
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
mov r0, r12
|
|
ldr r1, [r0]
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, _08152568 @ =0x000031d4
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0815255A:
|
|
movs r0, 0
|
|
_0815255C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08152564: .4byte gUnknown_8472063
|
|
_08152568: .4byte 0x000031d4
|
|
thumb_func_end sub_8152484
|
|
|
|
thumb_func_start sub_815256C
|
|
sub_815256C: @ 815256C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, _08152640 @ =gUnknown_203F3E0
|
|
ldr r4, [r2]
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
ldrb r1, [r0]
|
|
adds r0, 0x4
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
movs r3, 0
|
|
mov r10, r3
|
|
movs r5, 0x90
|
|
lsls r5, 1
|
|
adds r0, r4, r5
|
|
str r3, [r0]
|
|
adds r5, r1, 0
|
|
mov r0, r9
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _0815259E
|
|
b _081527BC
|
|
_0815259E:
|
|
mov r8, r2
|
|
_081525A0:
|
|
mov r0, r8
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _081525B2
|
|
b _081526BC
|
|
_081525B2:
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
movs r2, 0x1
|
|
str r2, [r0]
|
|
ldr r1, _08152644 @ =0x000032eb
|
|
adds r0, r4, r1
|
|
adds r6, r0, r5
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x9
|
|
bls _0815264C
|
|
movs r7, 0
|
|
movs r0, 0xA
|
|
strb r0, [r6]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r6, 0xA4
|
|
lsls r6, 1
|
|
adds r0, r6
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _081525FC
|
|
strb r2, [r1]
|
|
ldr r2, _08152648 @ =0x000032e0
|
|
adds r0, r4, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
adds r0, 0x43
|
|
bl PlaySE
|
|
_081525FC:
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08152612
|
|
mov r2, r10
|
|
cmp r2, 0x1
|
|
beq _08152612
|
|
b _081527AC
|
|
_08152612:
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, r6
|
|
adds r0, r5
|
|
strb r7, [r0]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x40
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x9
|
|
bhi _0815262E
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0815262E:
|
|
movs r0, 0x3
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_8152D34
|
|
movs r0, 0
|
|
bl sub_8152F94
|
|
b _081527AC
|
|
.align 2, 0
|
|
_08152640: .4byte gUnknown_203F3E0
|
|
_08152644: .4byte 0x000032eb
|
|
_08152648: .4byte 0x000032e0
|
|
_0815264C:
|
|
adds r0, r5, 0
|
|
bl sub_8152BD4
|
|
mov r2, r8
|
|
ldr r7, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r7, 0
|
|
adds r1, 0x90
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _08152672
|
|
movs r3, 0x2
|
|
_08152672:
|
|
ldr r2, _081526B4 @ =gUnknown_847553C
|
|
ldr r0, _081526B8 @ =0x000032e0
|
|
adds r1, r4, r0
|
|
adds r1, r5
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
adds r1, r7, 0
|
|
adds r1, 0xD0
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r2
|
|
bcc _081526AC
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xD0
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
_081526AC:
|
|
bl sub_8152174
|
|
b _081527AC
|
|
.align 2, 0
|
|
_081526B4: .4byte gUnknown_847553C
|
|
_081526B8: .4byte 0x000032e0
|
|
_081526BC:
|
|
cmp r0, 0x2
|
|
bne _0815273C
|
|
adds r1, r4, 0
|
|
adds r1, 0xDC
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bls _081527AC
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xB8
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0
|
|
ldr r1, _08152730 @ =0x000031d0
|
|
adds r2, r1
|
|
strb r3, [r2]
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, 0xDC
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD0
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
ldr r1, _08152734 @ =0x000032eb
|
|
adds r0, r4, r1
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8152BD4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r5, 0
|
|
bl sub_8152BF8
|
|
ldr r2, _08152738 @ =0x000032e0
|
|
adds r1, r4, r2
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
b _081527AC
|
|
.align 2, 0
|
|
_08152730: .4byte 0x000031d0
|
|
_08152734: .4byte 0x000032eb
|
|
_08152738: .4byte 0x000032e0
|
|
_0815273C:
|
|
cmp r0, 0x3
|
|
bne _081527AC
|
|
adds r1, r4, 0
|
|
adds r1, 0xDC
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bls _081527AC
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bhi _081527AC
|
|
adds r0, r1, 0
|
|
adds r0, 0xDC
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xD0
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
adds r0, 0xC4
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r2, _081527CC @ =0x000032eb
|
|
adds r0, r4, r2
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r1, 0xE8
|
|
adds r1, r5
|
|
subs r2, 0xB
|
|
adds r4, r2
|
|
adds r4, r5
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8152BD4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r5, 0
|
|
bl sub_8152BF8
|
|
strb r0, [r4]
|
|
_081527AC:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r9
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
bge _081527BC
|
|
b _081525A0
|
|
_081527BC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081527CC: .4byte 0x000032eb
|
|
thumb_func_end sub_815256C
|
|
|
|
thumb_func_start sub_81527D0
|
|
sub_81527D0: @ 81527D0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, _08152838 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x44
|
|
adds r0, 0x48
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
ldrb r6, [r1]
|
|
cmp r6, r8
|
|
bcs _081528C2
|
|
ldr r0, _0815283C @ =gUnknown_8471F50
|
|
mov r9, r0
|
|
_081527F0:
|
|
ldr r0, _08152838 @ =gUnknown_203F3E0
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r2, _08152840 @ =0x000031a0
|
|
adds r0, r2
|
|
adds r7, r3, r0
|
|
movs r0, 0xB
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r2, r6, r2
|
|
adds r3, 0x24
|
|
ldrb r1, [r3]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 3
|
|
subs r0, r1
|
|
adds r2, r0
|
|
add r2, r9
|
|
ldrb r4, [r2]
|
|
adds r0, r7, 0
|
|
adds r0, 0x1F
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08152844
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_81542EC
|
|
b _0815284C
|
|
.align 2, 0
|
|
_08152838: .4byte gUnknown_203F3E0
|
|
_0815283C: .4byte gUnknown_8471F50
|
|
_08152840: .4byte 0x000031a0
|
|
_08152844:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_81542EC
|
|
_0815284C:
|
|
adds r0, r7, 0
|
|
adds r0, 0x1F
|
|
adds r5, r0, r4
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x9
|
|
bls _08152878
|
|
adds r0, r7, 0
|
|
adds r0, 0x14
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r1, 0x3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8154398
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
movs r0, 0xFF
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
b _0815289A
|
|
_08152878:
|
|
adds r0, r7, 0
|
|
adds r0, 0x14
|
|
adds r3, r0, r4
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x3
|
|
bne _081528A4
|
|
movs r0, 0x7
|
|
strb r0, [r5]
|
|
adds r0, r6, 0
|
|
movs r1, 0x6
|
|
bl sub_8154398
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
movs r2, 0xFF
|
|
lsls r2, 24
|
|
adds r1, r2
|
|
_0815289A:
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8154370
|
|
b _081528B8
|
|
_081528A4:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
bl sub_8154398
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8154370
|
|
_081528B8:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r8
|
|
bcc _081527F0
|
|
_081528C2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81527D0
|
|
|
|
thumb_func_start sub_81528D0
|
|
sub_81528D0: @ 81528D0
|
|
push {r4-r6,lr}
|
|
ldr r1, _08152908 @ =gUnknown_203F3E0
|
|
ldr r0, [r1]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08152902
|
|
adds r6, r1, 0
|
|
_081528E2:
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, [r6]
|
|
adds r0, r1
|
|
ldr r1, _0815290C @ =0x000031cc
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8153DA8
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _081528E2
|
|
_08152902:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152908: .4byte gUnknown_203F3E0
|
|
_0815290C: .4byte 0x000031cc
|
|
thumb_func_end sub_81528D0
|
|
|
|
thumb_func_start sub_8152910
|
|
sub_8152910: @ 8152910
|
|
push {r4,r5,lr}
|
|
ldr r0, _08152938 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08152932
|
|
_08152920:
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_8153DA8
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08152920
|
|
_08152932:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152938: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152910
|
|
|
|
thumb_func_start sub_815293C
|
|
sub_815293C: @ 815293C
|
|
push {lr}
|
|
bl sub_81527D0
|
|
ldr r0, _08152954 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08152958
|
|
bl sub_8152910
|
|
b _0815295C
|
|
.align 2, 0
|
|
_08152954: .4byte gUnknown_203F3E0
|
|
_08152958:
|
|
bl sub_81528D0
|
|
_0815295C:
|
|
ldr r0, _0815296C @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
bl sub_8153FC8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815296C: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_815293C
|
|
|
|
thumb_func_start sub_8152970
|
|
sub_8152970: @ 8152970
|
|
push {lr}
|
|
bl sub_81527D0
|
|
ldr r0, _08152988 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _0815298C
|
|
bl sub_8152910
|
|
b _08152990
|
|
.align 2, 0
|
|
_08152988: .4byte gUnknown_203F3E0
|
|
_0815298C:
|
|
bl sub_81528D0
|
|
_08152990:
|
|
ldr r0, _081529A0 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
bl sub_8153FC8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081529A0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152970
|
|
|
|
thumb_func_start sub_81529A4
|
|
sub_81529A4: @ 81529A4
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x4
|
|
bhi _081529FC
|
|
lsls r0, 2
|
|
ldr r1, _081529BC @ =_081529C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081529BC: .4byte _081529C0
|
|
.align 2, 0
|
|
_081529C0:
|
|
.4byte _081529D4
|
|
.4byte _081529DC
|
|
.4byte _081529E4
|
|
.4byte _081529EC
|
|
.4byte _081529F4
|
|
_081529D4:
|
|
movs r0, 0x4
|
|
strb r0, [r3]
|
|
movs r0, 0x7
|
|
b _081529FA
|
|
_081529DC:
|
|
movs r0, 0x3
|
|
strb r0, [r3]
|
|
movs r0, 0x8
|
|
b _081529FA
|
|
_081529E4:
|
|
movs r0, 0x2
|
|
strb r0, [r3]
|
|
movs r0, 0x9
|
|
b _081529FA
|
|
_081529EC:
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
movs r0, 0xA
|
|
b _081529FA
|
|
_081529F4:
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
movs r0, 0xB
|
|
_081529FA:
|
|
strb r0, [r2]
|
|
_081529FC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81529A4
|
|
|
|
thumb_func_start sub_8152A00
|
|
sub_8152A00: @ 8152A00
|
|
push {r4-r6,lr}
|
|
ldr r1, _08152A58 @ =gUnknown_203F3E0
|
|
ldr r0, [r1]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0x1
|
|
cmp r4, r5
|
|
bcs _08152A66
|
|
adds r6, r1, 0
|
|
_08152A12:
|
|
ldr r0, [r6]
|
|
movs r1, 0xAC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08152A34
|
|
adds r0, r4, 0
|
|
bl sub_815A5E8
|
|
ldr r1, [r6]
|
|
movs r2, 0xAC
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
_08152A34:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08152A12
|
|
cmp r4, r5
|
|
bcs _08152A66
|
|
ldr r0, _08152A58 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
movs r2, 0xAC
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
_08152A4C:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08152A5C
|
|
movs r0, 0
|
|
b _08152A68
|
|
.align 2, 0
|
|
_08152A58: .4byte gUnknown_203F3E0
|
|
_08152A5C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08152A4C
|
|
_08152A66:
|
|
movs r0, 0x1
|
|
_08152A68:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8152A00
|
|
|
|
thumb_func_start sub_8152A70
|
|
sub_8152A70: @ 8152A70
|
|
push {r4,lr}
|
|
movs r1, 0
|
|
ldr r4, _08152A94 @ =gUnknown_203F3E0
|
|
movs r3, 0xAC
|
|
lsls r3, 1
|
|
movs r2, 0
|
|
_08152A7C:
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x4
|
|
bls _08152A7C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152A94: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152A70
|
|
|
|
thumb_func_start sub_8152A98
|
|
sub_8152A98: @ 8152A98
|
|
push {r4,lr}
|
|
ldr r3, _08152ACC @ =gUnknown_203F3E0
|
|
ldr r1, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0x40
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x9
|
|
bls _08152AD0
|
|
movs r4, 0x90
|
|
lsls r4, 1
|
|
adds r0, r1, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08152AD0
|
|
movs r0, 0xA
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08152AD0
|
|
movs r0, 0x1
|
|
b _08152AD2
|
|
.align 2, 0
|
|
_08152ACC: .4byte gUnknown_203F3E0
|
|
_08152AD0:
|
|
movs r0, 0
|
|
_08152AD2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8152A98
|
|
|
|
thumb_func_start sub_8152AD8
|
|
sub_8152AD8: @ 8152AD8
|
|
push {r4-r6,lr}
|
|
ldr r4, _08152B50 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0x40
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x9
|
|
bls _08152B5C
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r3, [r0]
|
|
adds r0, 0x4
|
|
ldrb r5, [r0]
|
|
movs r0, 0xA
|
|
strb r0, [r2]
|
|
ldr r4, [r4]
|
|
mov r12, r4
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08152B5C
|
|
adds r4, r3, 0
|
|
cmp r4, r5
|
|
bcs _08152B4C
|
|
mov r0, r12
|
|
adds r0, 0x28
|
|
ldrb r3, [r0]
|
|
lsls r1, r3, 4
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
ldr r6, _08152B54 @ =gUnknown_8471F50
|
|
subs r0, 0x4
|
|
ldrb r2, [r0]
|
|
subs r2, 0x1
|
|
add r1, r12
|
|
movs r0, 0xB
|
|
muls r3, r0
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 3
|
|
subs r2, r0, r2
|
|
ldr r0, _08152B58 @ =0x000031bf
|
|
adds r1, r0
|
|
_08152B32:
|
|
adds r0, r4, r3
|
|
adds r0, r2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bne _08152B5C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08152B32
|
|
_08152B4C:
|
|
movs r0, 0x1
|
|
b _08152B5E
|
|
.align 2, 0
|
|
_08152B50: .4byte gUnknown_203F3E0
|
|
_08152B54: .4byte gUnknown_8471F50
|
|
_08152B58: .4byte 0x000031bf
|
|
_08152B5C:
|
|
movs r0, 0
|
|
_08152B5E:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8152AD8
|
|
|
|
thumb_func_start sub_8152B64
|
|
sub_8152B64: @ 8152B64
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _08152BCC @ =gUnknown_8475550
|
|
mov r8, r0
|
|
ldr r0, _08152BD0 @ =gUnknown_203F3E0
|
|
ldr r6, [r0]
|
|
adds r0, r6, 0
|
|
adds r0, 0x90
|
|
adds r0, r5
|
|
mov r9, r0
|
|
ldrb r7, [r0]
|
|
adds r0, r7, 0
|
|
movs r1, 0x7
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
add r4, r8
|
|
adds r0, r7, 0
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldrb r4, [r4]
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsls r5, 1
|
|
adds r6, 0x86
|
|
adds r6, r5
|
|
ldrh r1, [r6]
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
bcc _08152BBE
|
|
adds r0, r7, 0x1
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
_08152BBE:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08152BCC: .4byte gUnknown_8475550
|
|
_08152BD0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152B64
|
|
|
|
thumb_func_start sub_8152BD4
|
|
sub_8152BD4: @ 8152BD4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08152BF0 @ =gUnknown_84720FC
|
|
ldr r1, _08152BF4 @ =gUnknown_203F3E0
|
|
ldr r1, [r1]
|
|
adds r1, 0x24
|
|
ldrb r1, [r1]
|
|
subs r1, 0x1
|
|
movs r2, 0xB
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08152BF0: .4byte gUnknown_84720FC
|
|
_08152BF4: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8152BD4
|
|
|
|
thumb_func_start sub_8152BF8
|
|
sub_8152BF8: @ 8152BF8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, _08152C78 @ =gUnknown_203F3E0
|
|
ldr r1, [r4]
|
|
adds r1, 0x24
|
|
ldrb r2, [r1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _08152C7C @ =gUnknown_84720AE
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
adds r1, r0
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
mov r12, r0
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r7, [r0]
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
movs r3, 0
|
|
ldr r1, _08152C80 @ =gUnknown_8472133
|
|
lsls r0, r2, 2
|
|
adds r2, r0, r2
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08152C60
|
|
adds r6, r1, 0
|
|
_08152C46:
|
|
adds r0, r3, r2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _08152C84
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r0, r3, r2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08152C46
|
|
_08152C60:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
mov r1, r12
|
|
adds r2, r0, r1
|
|
adds r1, r0, r7
|
|
ldrb r0, [r2]
|
|
ldrb r3, [r1]
|
|
cmp r0, r3
|
|
bls _08152C8E
|
|
adds r1, r0, 0
|
|
b _08152C90
|
|
.align 2, 0
|
|
_08152C78: .4byte gUnknown_203F3E0
|
|
_08152C7C: .4byte gUnknown_84720AE
|
|
_08152C80: .4byte gUnknown_8472133
|
|
_08152C84:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
b _08152CA2
|
|
_08152C8E:
|
|
ldrb r1, [r1]
|
|
_08152C90:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
mov r2, r8
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4]
|
|
cmp r0, r1
|
|
bls _08152CA0
|
|
adds r1, r0, 0
|
|
_08152CA0:
|
|
adds r0, r1, 0
|
|
_08152CA2:
|
|
adds r1, r5, 0
|
|
bl sub_8152CB8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8152BF8
|
|
|
|
thumb_func_start sub_8152CB8
|
|
sub_8152CB8: @ 8152CB8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08152CE4 @ =gUnknown_203F3E0
|
|
ldr r2, [r2]
|
|
adds r2, 0xE8
|
|
adds r2, r1
|
|
ldrb r4, [r2]
|
|
movs r1, 0x7
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bhi _08152D26
|
|
lsls r0, 2
|
|
ldr r1, _08152CE8 @ =_08152CEC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08152CE4: .4byte gUnknown_203F3E0
|
|
_08152CE8: .4byte _08152CEC
|
|
.align 2, 0
|
|
_08152CEC:
|
|
.4byte _08152D26
|
|
.4byte _08152D1E
|
|
.4byte _08152D2A
|
|
.4byte _08152D08
|
|
.4byte _08152D0E
|
|
.4byte _08152D14
|
|
.4byte _08152D1A
|
|
_08152D08:
|
|
cmp r4, 0
|
|
beq _08152D1E
|
|
b _08152D26
|
|
_08152D0E:
|
|
cmp r4, 0
|
|
beq _08152D2A
|
|
b _08152D26
|
|
_08152D14:
|
|
cmp r4, 0x2
|
|
beq _08152D1E
|
|
b _08152D2A
|
|
_08152D1A:
|
|
cmp r4, 0
|
|
bne _08152D22
|
|
_08152D1E:
|
|
movs r0, 0x1
|
|
b _08152D2C
|
|
_08152D22:
|
|
cmp r4, 0x1
|
|
beq _08152D2A
|
|
_08152D26:
|
|
movs r0, 0
|
|
b _08152D2C
|
|
_08152D2A:
|
|
movs r0, 0x2
|
|
_08152D2C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8152CB8
|
|
|
|
thumb_func_start sub_8152D34
|
|
sub_8152D34: @ 8152D34
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08152D60 @ =gUnknown_203F3E0
|
|
ldr r2, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r4, 0
|
|
bge _08152D54
|
|
b _08152F8E
|
|
_08152D54:
|
|
cmp r4, 0x2
|
|
ble _08152D64
|
|
cmp r4, 0x3
|
|
beq _08152D94
|
|
b _08152F8E
|
|
.align 2, 0
|
|
_08152D60: .4byte gUnknown_203F3E0
|
|
_08152D64:
|
|
ldr r1, _08152D8C @ =0x000031b4
|
|
adds r0, r2, r1
|
|
adds r0, r3
|
|
ldrb r4, [r0]
|
|
lsls r4, 1
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4A
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
ldr r1, _08152D90 @ =0x00004e20
|
|
bl sub_815378C
|
|
ldr r1, [r5]
|
|
adds r1, 0x4A
|
|
adds r1, r4
|
|
b _08152F8C
|
|
.align 2, 0
|
|
_08152D8C: .4byte 0x000031b4
|
|
_08152D90: .4byte 0x00004e20
|
|
_08152D94:
|
|
cmp r0, 0x3
|
|
bne _08152D9A
|
|
b _08152EE0
|
|
_08152D9A:
|
|
cmp r0, 0x3
|
|
bgt _08152DA6
|
|
cmp r0, 0x2
|
|
bne _08152DA4
|
|
b _08152F4A
|
|
_08152DA4:
|
|
b _08152F8E
|
|
_08152DA6:
|
|
cmp r0, 0x4
|
|
beq _08152E56
|
|
cmp r0, 0x5
|
|
beq _08152DB0
|
|
b _08152F8E
|
|
_08152DB0:
|
|
cmp r3, 0x9
|
|
bls _08152DB6
|
|
b _08152F8E
|
|
_08152DB6:
|
|
lsls r0, r3, 2
|
|
ldr r1, _08152DC0 @ =_08152DC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08152DC0: .4byte _08152DC4
|
|
.align 2, 0
|
|
_08152DC4:
|
|
.4byte _08152DEC
|
|
.4byte _08152DFC
|
|
.4byte _08152E02
|
|
.4byte _08152E12
|
|
.4byte _08152E18
|
|
.4byte _08152E28
|
|
.4byte _08152E2E
|
|
.4byte _08152E3C
|
|
.4byte _08152E40
|
|
.4byte _08152E50
|
|
_08152DEC:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x74
|
|
b _08152F88
|
|
_08152DFC:
|
|
ldr r1, [r5]
|
|
adds r1, 0x74
|
|
b _08152F88
|
|
_08152E02:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x74
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x80
|
|
b _08152F88
|
|
_08152E12:
|
|
ldr r1, [r5]
|
|
adds r1, 0x80
|
|
b _08152F88
|
|
_08152E18:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152E28:
|
|
ldr r1, [r5]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152E2E:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08152F86
|
|
_08152E3C:
|
|
ldr r1, [r5]
|
|
b _08152F86
|
|
_08152E40:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152E50:
|
|
ldr r1, [r5]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152E56:
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0x7
|
|
bls _08152E5E
|
|
b _08152F8E
|
|
_08152E5E:
|
|
lsls r0, 2
|
|
ldr r1, _08152E68 @ =_08152E6C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08152E68: .4byte _08152E6C
|
|
.align 2, 0
|
|
_08152E6C:
|
|
.4byte _08152E8C
|
|
.4byte _08152E9C
|
|
.4byte _08152EA2
|
|
.4byte _08152EB2
|
|
.4byte _08152EB8
|
|
.4byte _08152EC6
|
|
.4byte _08152ECA
|
|
.4byte _08152EDA
|
|
_08152E8C:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x74
|
|
b _08152F88
|
|
_08152E9C:
|
|
ldr r1, [r5]
|
|
adds r1, 0x74
|
|
b _08152F88
|
|
_08152EA2:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x74
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152EB2:
|
|
ldr r1, [r5]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152EB8:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08152F86
|
|
_08152EC6:
|
|
ldr r1, [r5]
|
|
b _08152F86
|
|
_08152ECA:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152EDA:
|
|
ldr r1, [r5]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152EE0:
|
|
subs r0, r3, 0x2
|
|
cmp r0, 0x5
|
|
bhi _08152F8E
|
|
lsls r0, 2
|
|
ldr r1, _08152EF0 @ =_08152EF4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08152EF0: .4byte _08152EF4
|
|
.align 2, 0
|
|
_08152EF4:
|
|
.4byte _08152F0C
|
|
.4byte _08152F1C
|
|
.4byte _08152F22
|
|
.4byte _08152F32
|
|
.4byte _08152F38
|
|
.4byte _08152F46
|
|
_08152F0C:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152F1C:
|
|
ldr r1, [r5]
|
|
adds r1, 0x68
|
|
b _08152F88
|
|
_08152F22:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152F32:
|
|
ldr r1, [r5]
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152F38:
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08152F86
|
|
_08152F46:
|
|
ldr r1, [r5]
|
|
b _08152F86
|
|
_08152F4A:
|
|
cmp r3, 0x4
|
|
beq _08152F70
|
|
cmp r3, 0x4
|
|
bgt _08152F58
|
|
cmp r3, 0x3
|
|
beq _08152F62
|
|
b _08152F8E
|
|
_08152F58:
|
|
cmp r3, 0x5
|
|
beq _08152F76
|
|
cmp r3, 0x6
|
|
beq _08152F84
|
|
b _08152F8E
|
|
_08152F62:
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
b _08152F88
|
|
_08152F70:
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
b _08152F88
|
|
_08152F76:
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
b _08152F88
|
|
_08152F84:
|
|
adds r1, r2, 0
|
|
_08152F86:
|
|
adds r1, 0x5C
|
|
_08152F88:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
_08152F8C:
|
|
strh r0, [r1]
|
|
_08152F8E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8152D34
|
|
|
|
thumb_func_start sub_8152F94
|
|
sub_8152F94: @ 8152F94
|
|
push {r4,r5,lr}
|
|
adds r1, r0, 0
|
|
ldr r4, _08152FD8 @ =gUnknown_203F3E0
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _08152FFE
|
|
cmp r1, 0x1
|
|
bne _08152FE0
|
|
movs r5, 0x89
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
ldrh r0, [r1]
|
|
adds r2, r0, 0x1
|
|
strh r2, [r1]
|
|
movs r0, 0x8A
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
lsls r0, r2, 16
|
|
lsrs r0, 16
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bls _08152FC8
|
|
strh r2, [r1]
|
|
_08152FC8:
|
|
ldr r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrh r0, [r2]
|
|
ldr r1, _08152FDC @ =0x0000270f
|
|
cmp r0, r1
|
|
bls _08152FFE
|
|
strh r1, [r2]
|
|
b _08152FFE
|
|
.align 2, 0
|
|
_08152FD8: .4byte gUnknown_203F3E0
|
|
_08152FDC: .4byte 0x0000270f
|
|
_08152FE0:
|
|
movs r2, 0x89
|
|
lsls r2, 1
|
|
adds r0, r3, r2
|
|
movs r5, 0x8A
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
ldrh r0, [r0]
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bls _08152FF6
|
|
strh r0, [r1]
|
|
_08152FF6:
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_08152FFE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8152F94
|
|
|
|
thumb_func_start sub_8153004
|
|
sub_8153004: @ 8153004
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r2, _08153044 @ =gUnknown_203F3E0
|
|
ldr r0, [r2]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _0815303C
|
|
adds r5, r2, 0
|
|
movs r4, 0x8A
|
|
lsls r4, 1
|
|
_0815301A:
|
|
ldr r2, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
adds r1, r0
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r2, 0x24
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcc _0815301A
|
|
_0815303C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153044: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8153004
|
|
|
|
thumb_func_start sub_8153048
|
|
sub_8153048: @ 8153048
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r5, 0
|
|
ldr r7, _08153138 @ =gUnknown_203F3E0
|
|
movs r4, 0
|
|
ldr r0, _0815313C @ =0x000031bf
|
|
mov r10, r0
|
|
_0815305C:
|
|
movs r2, 0
|
|
lsls r6, r5, 4
|
|
lsls r1, r5, 1
|
|
mov r8, r1
|
|
lsls r0, r5, 3
|
|
mov r12, r0
|
|
adds r1, r5, 0x1
|
|
mov r9, r1
|
|
subs r0, r6, r5
|
|
lsls r3, r0, 2
|
|
_08153070:
|
|
ldr r0, [r7]
|
|
adds r1, r2, r3
|
|
add r0, r10
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xA
|
|
bls _08153070
|
|
ldr r0, [r7]
|
|
subs r1, r6, r5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r2, _08153140 @ =0x000031cc
|
|
adds r0, r2
|
|
strb r4, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, r1
|
|
ldr r1, _08153144 @ =0x000031d0
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, 0x90
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x86
|
|
add r0, r8
|
|
strh r4, [r0]
|
|
add r1, r12
|
|
ldr r2, _08153148 @ =0x00003308
|
|
adds r1, r2
|
|
strb r4, [r1]
|
|
ldr r2, [r7]
|
|
ldr r1, _0815314C @ =0x0000330c
|
|
adds r0, r2, r1
|
|
add r0, r12
|
|
str r4, [r0]
|
|
mov r0, r8
|
|
adds r1, r0, r5
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x4A
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x52
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
mov r1, r9
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bls _0815305C
|
|
ldr r2, _08153138 @ =gUnknown_203F3E0
|
|
ldr r0, [r2]
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r1, _08153138 @ =gUnknown_203F3E0
|
|
ldr r0, [r1]
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r3, r0, r1
|
|
movs r1, 0
|
|
strh r2, [r3]
|
|
adds r0, 0x40
|
|
strb r1, [r0]
|
|
bl sub_81528D0
|
|
bl sub_81527D0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153138: .4byte gUnknown_203F3E0
|
|
_0815313C: .4byte 0x000031bf
|
|
_08153140: .4byte 0x000031cc
|
|
_08153144: .4byte 0x000031d0
|
|
_08153148: .4byte 0x00003308
|
|
_0815314C: .4byte 0x0000330c
|
|
thumb_func_end sub_8153048
|
|
|
|
thumb_func_start sub_8153150
|
|
sub_8153150: @ 8153150
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r0, _08153168 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
beq _0815316C
|
|
cmp r0, 0x5
|
|
beq _08153170
|
|
b _08153172
|
|
.align 2, 0
|
|
_08153168: .4byte gUnknown_203F3E0
|
|
_0815316C:
|
|
movs r4, 0x1
|
|
b _08153172
|
|
_08153170:
|
|
movs r4, 0x2
|
|
_08153172:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
lsls r1, r4, 2
|
|
ldr r5, _081531B4 @ =gUnknown_203F3E0
|
|
ldr r2, _081531B8 @ =gUnknown_8475558
|
|
adds r1, r4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
_08153196:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r1, 0x52
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x4
|
|
bls _08153196
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081531B4: .4byte gUnknown_203F3E0
|
|
_081531B8: .4byte gUnknown_8475558
|
|
thumb_func_end sub_8153150
|
|
|
|
thumb_func_start sub_81531BC
|
|
sub_81531BC: @ 81531BC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _081531F4 @ =gUnknown_203F3E0
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x4A
|
|
adds r0, r1
|
|
ldrh r3, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r2, 0x4E
|
|
adds r2, r1
|
|
adds r3, r0
|
|
ldrh r2, [r2]
|
|
adds r0, r3, r2
|
|
ldr r1, _081531F8 @ =0x0000270f
|
|
cmp r0, r1
|
|
bls _081531EE
|
|
adds r0, r1, 0
|
|
_081531EE:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081531F4: .4byte gUnknown_203F3E0
|
|
_081531F8: .4byte 0x0000270f
|
|
thumb_func_end sub_81531BC
|
|
|
|
thumb_func_start sub_81531FC
|
|
sub_81531FC: @ 81531FC
|
|
push {r4-r6,lr}
|
|
ldr r5, _08153264 @ =gUnknown_203F3E0
|
|
ldr r0, [r5]
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
bl sub_81531BC
|
|
ldr r1, _08153268 @ =0x0000270f
|
|
bl sub_815379C
|
|
adds r4, r0, 0
|
|
ldr r0, [r5]
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
bl sub_8153424
|
|
ldr r1, _0815326C @ =0x000f4236
|
|
bl sub_815379C
|
|
adds r2, r0, 0
|
|
ldr r3, _08153270 @ =gSaveBlock2Ptr
|
|
ldr r0, [r3]
|
|
movs r6, 0xB1
|
|
lsls r6, 4
|
|
adds r1, r0, r6
|
|
ldr r0, [r1]
|
|
cmp r0, r2
|
|
bcs _08153236
|
|
str r2, [r1]
|
|
_08153236:
|
|
ldr r0, [r3]
|
|
ldr r2, _08153274 @ =0x00000b14
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bcs _08153244
|
|
strh r4, [r1]
|
|
_08153244:
|
|
ldr r0, [r3]
|
|
ldr r6, _08153278 @ =0x00000b16
|
|
adds r2, r0, r6
|
|
ldr r0, [r5]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bcs _0815325C
|
|
strh r1, [r2]
|
|
_0815325C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153264: .4byte gUnknown_203F3E0
|
|
_08153268: .4byte 0x0000270f
|
|
_0815326C: .4byte 0x000f4236
|
|
_08153270: .4byte gSaveBlock2Ptr
|
|
_08153274: .4byte 0x00000b14
|
|
_08153278: .4byte 0x00000b16
|
|
thumb_func_end sub_81531FC
|
|
|
|
thumb_func_start sub_815327C
|
|
sub_815327C: @ 815327C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _081532B4 @ =gUnknown_203F3E0
|
|
ldr r0, [r1]
|
|
adds r0, 0x9B
|
|
ldrb r6, [r0]
|
|
movs r3, 0x3
|
|
adds r5, r1, 0
|
|
adds r4, r5, 0
|
|
_08153290:
|
|
ldr r0, [r4]
|
|
adds r0, 0x98
|
|
adds r2, r0, r3
|
|
subs r1, r3, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
cmp r3, 0
|
|
bne _08153290
|
|
ldr r0, [r5]
|
|
adds r0, 0x98
|
|
strb r7, [r0]
|
|
adds r0, r6, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081532B4: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_815327C
|
|
|
|
thumb_func_start sub_81532B8
|
|
sub_81532B8: @ 81532B8
|
|
push {r4,lr}
|
|
ldr r4, _081532EC @ =gUnknown_203F3E0
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
adds r0, 0x88
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _08153360
|
|
ldr r0, _081532F0 @ =gMain
|
|
ldrh r2, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _081532F8
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, _081532F4 @ =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
b _0815332E
|
|
.align 2, 0
|
|
_081532EC: .4byte gUnknown_203F3E0
|
|
_081532F0: .4byte gMain
|
|
_081532F4: .4byte 0x000031cc
|
|
_081532F8:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08153314
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, _08153310 @ =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
b _0815332E
|
|
.align 2, 0
|
|
_08153310: .4byte 0x000031cc
|
|
_08153314:
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _0815334C
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, _08153348 @ =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
_0815332E:
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
adds r0, 0xB0
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
movs r0, 0xCD
|
|
bl PlaySE
|
|
b _08153364
|
|
.align 2, 0
|
|
_08153348: .4byte 0x000031cc
|
|
_0815334C:
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, _0815335C @ =0x000031cc
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _08153364
|
|
.align 2, 0
|
|
_0815335C: .4byte 0x000031cc
|
|
_08153360:
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
_08153364:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81532B8
|
|
|
|
thumb_func_start sub_815336C
|
|
sub_815336C: @ 815336C
|
|
ldr r0, _08153388 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, _0815338C @ =0x000031cc
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08153388: .4byte gUnknown_203F3E0
|
|
_0815338C: .4byte 0x000031cc
|
|
thumb_func_end sub_815336C
|
|
|
|
thumb_func_start sub_8153390
|
|
sub_8153390: @ 8153390
|
|
ldr r0, _081533B0 @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, 0x52
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x85
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bx lr
|
|
.align 2, 0
|
|
_081533B0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8153390
|
|
|
|
thumb_func_start sub_81533B4
|
|
sub_81533B4: @ 81533B4
|
|
ldr r0, _081533C0 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_081533C0: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81533B4
|
|
|
|
thumb_func_start sub_81533C4
|
|
sub_81533C4: @ 81533C4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _081533E4 @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081533F0
|
|
ldr r0, _081533E8 @ =gUnknown_203F3E0
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
ldr r2, _081533EC @ =0x000031a0
|
|
adds r1, r2
|
|
ldr r0, [r0]
|
|
b _081533F8
|
|
.align 2, 0
|
|
_081533E4: .4byte gUnknown_3003F64
|
|
_081533E8: .4byte gUnknown_203F3E0
|
|
_081533EC: .4byte 0x000031a0
|
|
_081533F0:
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _08153400 @ =gUnknown_2022744
|
|
_081533F8:
|
|
adds r0, r1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08153400: .4byte gUnknown_2022744
|
|
thumb_func_end sub_81533C4
|
|
|
|
thumb_func_start sub_8153404
|
|
sub_8153404: @ 8153404
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
ldr r2, _08153420 @ =gUnknown_203F3E0
|
|
ldr r3, [r2]
|
|
lsrs r1, 23
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r3, 0x4A
|
|
adds r3, r1
|
|
ldrh r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_08153420: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8153404
|
|
|
|
thumb_func_start sub_8153424
|
|
sub_8153424: @ 8153424
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
movs r3, 0
|
|
ldr r0, _08153490 @ =gUnknown_203F3E0
|
|
mov r9, r0
|
|
ldr r2, _08153494 @ =gUnknown_84755D8
|
|
mov r10, r2
|
|
ldr r2, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, r1, r4
|
|
lsls r0, 2
|
|
str r0, [sp]
|
|
adds r6, r2, 0
|
|
adds r6, 0x4A
|
|
mov r12, r1
|
|
mov r8, r10
|
|
_08153452:
|
|
lsls r1, r3, 1
|
|
ldr r7, [sp]
|
|
adds r0, r1, r7
|
|
adds r0, r6, r0
|
|
ldrh r2, [r0]
|
|
add r1, r8
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
muls r0, r2
|
|
adds r5, r0
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x2
|
|
bls _08153452
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
mov r2, r12
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r1, 0x50
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
mov r3, r10
|
|
movs r7, 0x6
|
|
ldrsh r0, [r3, r7]
|
|
muls r0, r1
|
|
cmp r5, r0
|
|
bls _08153498
|
|
subs r0, r5, r0
|
|
b _0815349A
|
|
.align 2, 0
|
|
_08153490: .4byte gUnknown_203F3E0
|
|
_08153494: .4byte gUnknown_84755D8
|
|
_08153498:
|
|
movs r0, 0
|
|
_0815349A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8153424
|
|
|
|
thumb_func_start sub_81534AC
|
|
sub_81534AC: @ 81534AC
|
|
push {r4-r6,lr}
|
|
ldr r0, _081534E8 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r6, [r0]
|
|
movs r0, 0
|
|
bl sub_8153424
|
|
adds r5, r0, 0
|
|
movs r4, 0x1
|
|
cmp r4, r6
|
|
bcs _081534DA
|
|
_081534C4:
|
|
adds r0, r4, 0
|
|
bl sub_8153424
|
|
cmp r0, r5
|
|
bls _081534D0
|
|
adds r5, r0, 0
|
|
_081534D0:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r6
|
|
bcc _081534C4
|
|
_081534DA:
|
|
ldr r1, _081534EC @ =0x000f4236
|
|
adds r0, r5, 0
|
|
bl sub_815379C
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081534E8: .4byte gUnknown_203F3E0
|
|
_081534EC: .4byte 0x000f4236
|
|
thumb_func_end sub_81534AC
|
|
|
|
thumb_func_start sub_81534F0
|
|
sub_81534F0: @ 81534F0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
ldr r1, _08153530 @ =gUnknown_203F3E0
|
|
ldr r2, [r1]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r5, [r1]
|
|
lsrs r4, r0, 23
|
|
adds r2, 0x4A
|
|
adds r0, r2, r4
|
|
ldrh r3, [r0]
|
|
movs r1, 0
|
|
cmp r1, r5
|
|
bcs _08153528
|
|
_0815350C:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4, r0
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bls _0815351E
|
|
adds r3, r0, 0
|
|
_0815351E:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r5
|
|
bcc _0815350C
|
|
_08153528:
|
|
adds r0, r3, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08153530: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81534F0
|
|
|
|
thumb_func_start sub_8153534
|
|
sub_8153534: @ 8153534
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0x1
|
|
ldr r0, _081535AC @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08153562
|
|
_0815354C:
|
|
adds r0, r4, 0
|
|
bl sub_8153424
|
|
lsls r1, r4, 2
|
|
add r1, sp
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0815354C
|
|
_08153562:
|
|
lsls r7, 2
|
|
mov r12, r7
|
|
cmp r6, 0
|
|
beq _0815359C
|
|
subs r7, r5, 0x1
|
|
_0815356C:
|
|
movs r6, 0
|
|
movs r4, 0
|
|
cmp r6, r7
|
|
bge _08153598
|
|
adds r5, r7, 0
|
|
_08153576:
|
|
lsls r0, r4, 2
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
adds r4, 0x1
|
|
lsls r0, r4, 2
|
|
adds r3, r2, r0
|
|
ldr r0, [r1]
|
|
ldr r2, [r3]
|
|
cmp r0, r2
|
|
bcs _08153590
|
|
str r2, [r1]
|
|
str r0, [r3]
|
|
movs r6, 0x1
|
|
_08153590:
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
blt _08153576
|
|
_08153598:
|
|
cmp r6, 0
|
|
bne _0815356C
|
|
_0815359C:
|
|
mov r0, sp
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_081535AC: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_8153534
|
|
|
|
thumb_func_start sub_81535B0
|
|
sub_81535B0: @ 81535B0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r10, r0
|
|
mov r8, r0
|
|
mov r9, r0
|
|
ldr r6, _08153690 @ =gUnknown_203F3E0
|
|
ldr r0, [r6]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
bl sub_81534AC
|
|
bl sub_81534AC
|
|
cmp r0, 0
|
|
bne _08153604
|
|
movs r4, 0
|
|
cmp r9, r5
|
|
bcs _08153604
|
|
adds r2, r6, 0
|
|
ldr r1, _08153694 @ =0x00003308
|
|
mov r12, r1
|
|
movs r7, 0
|
|
movs r6, 0x4
|
|
ldr r3, _08153698 @ =0x0000330c
|
|
_081535E8:
|
|
ldr r0, [r2]
|
|
lsls r1, r4, 3
|
|
adds r0, r1
|
|
add r0, r12
|
|
strb r6, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
str r7, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _081535E8
|
|
_08153604:
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0815362E
|
|
_0815360A:
|
|
adds r0, r4, 0
|
|
bl sub_8153424
|
|
ldr r1, _0815369C @ =0x000f4236
|
|
bl sub_815379C
|
|
ldr r1, _08153690 @ =gUnknown_203F3E0
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 3
|
|
ldr r3, _08153698 @ =0x0000330c
|
|
adds r1, r3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0815360A
|
|
_0815362E:
|
|
mov r0, r10
|
|
bl sub_8153534
|
|
adds r6, r0, 0
|
|
mov r3, r8
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0815367A
|
|
ldr r7, _08153690 @ =gUnknown_203F3E0
|
|
mov r10, r7
|
|
_08153642:
|
|
mov r0, r10
|
|
ldr r2, [r0]
|
|
lsls r1, r4, 3
|
|
ldr r7, _08153698 @ =0x0000330c
|
|
adds r0, r2, r7
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
bne _08153670
|
|
adds r0, r2, r1
|
|
ldr r1, _08153694 @ =0x00003308
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08153670:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08153642
|
|
_0815367A:
|
|
mov r10, r8
|
|
cmp r9, r5
|
|
bcc _0815362E
|
|
movs r0, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08153690: .4byte gUnknown_203F3E0
|
|
_08153694: .4byte 0x00003308
|
|
_08153698: .4byte 0x0000330c
|
|
_0815369C: .4byte 0x000f4236
|
|
thumb_func_end sub_81535B0
|
|
|
|
thumb_func_start sub_81536A0
|
|
sub_81536A0: @ 81536A0
|
|
lsls r1, 24
|
|
ldr r2, _081536B8 @ =gUnknown_203F3E0
|
|
ldr r2, [r2]
|
|
lsrs r1, 21
|
|
ldr r3, _081536BC @ =0x00003308
|
|
adds r2, r3
|
|
adds r2, r1
|
|
ldr r1, [r2]
|
|
ldr r2, [r2, 0x4]
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_081536B8: .4byte gUnknown_203F3E0
|
|
_081536BC: .4byte 0x00003308
|
|
thumb_func_end sub_81536A0
|
|
|
|
thumb_func_start sub_81536C0
|
|
sub_81536C0: @ 81536C0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r7, 0
|
|
ldr r0, _08153728 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
movs r4, 0
|
|
cmp r7, r5
|
|
bcs _081536F8
|
|
_081536E2:
|
|
adds r0, r4, 0
|
|
bl sub_8153424
|
|
lsls r1, r4, 2
|
|
add r1, sp
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _081536E2
|
|
_081536F8:
|
|
lsls r0, r6, 2
|
|
add r0, sp
|
|
ldr r1, [r0]
|
|
movs r4, 0
|
|
_08153700:
|
|
cmp r4, r6
|
|
beq _08153714
|
|
lsls r0, r4, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08153714
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_08153714:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _08153700
|
|
adds r0, r7, 0
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08153728: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81536C0
|
|
|
|
thumb_func_start sub_815372C
|
|
sub_815372C: @ 815372C
|
|
push {r4-r6,lr}
|
|
ldr r0, _08153754 @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x28
|
|
ldrb r4, [r0]
|
|
bl sub_8153390
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
bl sub_8153424
|
|
adds r4, r0, 0
|
|
bl sub_81534AC
|
|
cmp r4, r0
|
|
beq _08153758
|
|
movs r0, 0x3
|
|
b _08153786
|
|
.align 2, 0
|
|
_08153754: .4byte gUnknown_203F3E0
|
|
_08153758:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_809A000
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0815376A
|
|
movs r0, 0x2
|
|
b _08153786
|
|
_0815376A:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_809A084
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_809A000
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08153784
|
|
movs r0, 0
|
|
b _08153786
|
|
_08153784:
|
|
movs r0, 0x1
|
|
_08153786:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_815372C
|
|
|
|
thumb_func_start sub_815378C
|
|
sub_815378C: @ 815378C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r1, 0
|
|
cmp r2, r0
|
|
bcs _08153798
|
|
adds r0, r2, 0x1
|
|
_08153798:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_815378C
|
|
|
|
thumb_func_start sub_815379C
|
|
sub_815379C: @ 815379C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r1, 0
|
|
cmp r2, r0
|
|
bcs _081537A8
|
|
adds r0, r2, 0
|
|
_081537A8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_815379C
|
|
|
|
thumb_func_start sub_81537AC
|
|
sub_81537AC: @ 81537AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _081537BC @ =gUnknown_203F3E0
|
|
ldr r1, [r1]
|
|
adds r1, 0x34
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_081537BC: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81537AC
|
|
|
|
thumb_func_start sub_81537C0
|
|
sub_81537C0: @ 81537C0
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _081537F0 @ =gUnknown_20370D0
|
|
_081537C6:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _081537F4 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _081537F8
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0x55
|
|
bne _081537F8
|
|
movs r0, 0x1
|
|
strh r0, [r6]
|
|
b _08153804
|
|
.align 2, 0
|
|
_081537F0: .4byte gUnknown_20370D0
|
|
_081537F4: .4byte gPlayerParty
|
|
_081537F8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _081537C6
|
|
ldr r1, _0815380C @ =gUnknown_20370D0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08153804:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815380C: .4byte gUnknown_20370D0
|
|
thumb_func_end sub_81537C0
|
|
|
|
thumb_func_start sub_8153810
|
|
sub_8153810: @ 8153810
|
|
push {r4,lr}
|
|
ldr r4, _0815382C @ =sub_8153830
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815382C: .4byte sub_8153830
|
|
thumb_func_end sub_8153810
|
|
|
|
thumb_func_start sub_8153830
|
|
sub_8153830: @ 8153830
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _08153854 @ =gTasks+0x8
|
|
adds r4, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _0815387C
|
|
cmp r0, 0x1
|
|
bgt _08153858
|
|
cmp r0, 0
|
|
beq _08153862
|
|
b _081538CA
|
|
.align 2, 0
|
|
_08153854: .4byte gTasks+0x8
|
|
_08153858:
|
|
cmp r0, 0x2
|
|
beq _08153888
|
|
cmp r0, 0x3
|
|
beq _081538B0
|
|
b _081538CA
|
|
_08153862:
|
|
ldr r0, _08153878 @ =gUnknown_84755E0
|
|
bl AddWindow
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_81538D0
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x3
|
|
b _0815389E
|
|
.align 2, 0
|
|
_08153878: .4byte gUnknown_84755E0
|
|
_0815387C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081538CA
|
|
b _081538A2
|
|
_08153888:
|
|
ldr r0, _081538AC @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081538CA
|
|
ldrb r0, [r4, 0x2]
|
|
bl rbox_fill_rectangle
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x1
|
|
_0815389E:
|
|
bl CopyWindowToVram
|
|
_081538A2:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _081538CA
|
|
.align 2, 0
|
|
_081538AC: .4byte gMain
|
|
_081538B0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081538CA
|
|
ldrb r0, [r4, 0x2]
|
|
bl RemoveWindow
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
_081538CA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8153830
|
|
|
|
thumb_func_start sub_81538D0
|
|
sub_81538D0: @ 81538D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _081539CC @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r2, _081539D0 @ =0x00000b14
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0]
|
|
str r0, [sp, 0xC]
|
|
subs r2, 0x4
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _081539D4 @ =0x00000b16
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
str r0, [sp, 0x14]
|
|
ldr r4, _081539D8 @ =0x0000021d
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD0
|
|
bl sub_814FF2C
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD
|
|
bl sub_8150048
|
|
adds r0, r7, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, _081539DC @ =gUnknown_84755E8
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized
|
|
movs r4, 0
|
|
add r2, sp, 0x18
|
|
mov r8, r2
|
|
movs r0, 0xFF
|
|
mov r10, r0
|
|
mov r9, r4
|
|
mov r2, sp
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x2C]
|
|
_08153946:
|
|
ldr r0, [sp, 0x2C]
|
|
ldm r0!, {r1}
|
|
str r0, [sp, 0x2C]
|
|
ldr r0, _081539E0 @ =gUnknown_84755F8
|
|
adds r0, r4, r0
|
|
ldrb r3, [r0]
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
adds r5, r0, 0
|
|
ldr r1, _081539DC @ =gUnknown_84755E8
|
|
adds r6, r4, 0x1
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r0, _081539E4 @ =gUnknown_84755FC
|
|
lsls r4, 1
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized
|
|
movs r3, 0xE0
|
|
subs r3, r5
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, _081539E8 @ =gUnknown_8475602
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
mov r2, r10
|
|
str r2, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
mov r2, r8
|
|
bl AddTextPrinterParameterized
|
|
adds r4, r6, 0
|
|
cmp r4, 0x2
|
|
ble _08153946
|
|
adds r0, r7, 0
|
|
bl PutWindowTilemap
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081539CC: .4byte gSaveBlock2Ptr
|
|
_081539D0: .4byte 0x00000b14
|
|
_081539D4: .4byte 0x00000b16
|
|
_081539D8: .4byte 0x0000021d
|
|
_081539DC: .4byte gUnknown_84755E8
|
|
_081539E0: .4byte gUnknown_84755F8
|
|
_081539E4: .4byte gUnknown_84755FC
|
|
_081539E8: .4byte gUnknown_8475602
|
|
thumb_func_end sub_81538D0
|
|
|
|
thumb_func_start sub_81539EC
|
|
sub_81539EC: @ 81539EC
|
|
push {lr}
|
|
bl GetLinkPlayerCount
|
|
ldr r1, _08153A00 @ =gUnknown_203F3E0
|
|
ldr r1, [r1]
|
|
adds r1, 0x24
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153A00: .4byte gUnknown_203F3E0
|
|
thumb_func_end sub_81539EC
|
|
|
|
thumb_func_start sub_8153A04
|
|
sub_8153A04: @ 8153A04
|
|
push {r4-r7,lr}
|
|
ldr r0, _08153A8C @ =gUnknown_203F3E0
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x4
|
|
bhi _08153A32
|
|
ldr r5, _08153A90 @ =gUnknown_8475648
|
|
_08153A14:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _08153A94 @ =gUnknown_2022744
|
|
adds r0, r1
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _08153A14
|
|
_08153A32:
|
|
ldr r0, _08153A8C @ =gUnknown_203F3E0
|
|
ldr r1, [r0]
|
|
adds r1, 0x24
|
|
movs r2, 0x5
|
|
strb r2, [r1]
|
|
movs r1, 0
|
|
mov r12, r0
|
|
_08153A40:
|
|
movs r4, 0
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0x24
|
|
adds r5, r1, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08153A7E
|
|
ldr r7, _08153A8C @ =gUnknown_203F3E0
|
|
lsls r3, r1, 1
|
|
ldr r6, _08153A98 @ =gUnknown_8475608
|
|
_08153A56:
|
|
ldr r2, [r7]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4A
|
|
adds r1, r0
|
|
lsls r0, r4, 3
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r2, 0x24
|
|
ldrb r2, [r2]
|
|
cmp r4, r2
|
|
bcc _08153A56
|
|
_08153A7E:
|
|
lsls r0, r5, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x3
|
|
bls _08153A40
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153A8C: .4byte gUnknown_203F3E0
|
|
_08153A90: .4byte gUnknown_8475648
|
|
_08153A94: .4byte gUnknown_2022744
|
|
_08153A98: .4byte gUnknown_8475608
|
|
thumb_func_end sub_8153A04
|
|
|
|
thumb_func_start sub_8153A9C
|
|
sub_8153A9C: @ 8153A9C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x18
|
|
movs r5, 0xC0
|
|
lsls r5, 6
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
ldr r0, _08153AF0 @ =gUnknown_8478D90
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
ldr r0, _08153AF4 @ =gUnknown_8478D98
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, _08153AF8 @ =gUnknown_8477374
|
|
adds r1, r4, 0
|
|
bl LZ77UnCompWram
|
|
cmp r4, 0
|
|
beq _08153ADC
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl Free
|
|
_08153ADC:
|
|
add r0, sp, 0x8
|
|
bl LoadSpritePalette
|
|
add r0, sp, 0x10
|
|
bl LoadSpritePalette
|
|
add sp, 0x18
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153AF0: .4byte gUnknown_8478D90
|
|
_08153AF4: .4byte gUnknown_8478D98
|
|
_08153AF8: .4byte gUnknown_8477374
|
|
thumb_func_end sub_8153A9C
|
|
|
|
thumb_func_start sub_8153AFC
|
|
sub_8153AFC: @ 8153AFC
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x30
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r5, r3, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
add r1, sp, 0x18
|
|
movs r3, 0
|
|
strh r3, [r1]
|
|
ldrb r2, [r0]
|
|
mov r0, sp
|
|
adds r0, 0x1A
|
|
strh r2, [r0]
|
|
ldr r0, _08153B88 @ =gUnknown_8478C98
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, _08153B8C @ =gUnknown_8478CE0
|
|
str r0, [sp, 0x20]
|
|
str r3, [sp, 0x24]
|
|
ldr r0, _08153B90 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x28]
|
|
ldr r0, _08153B94 @ =sub_8153B9C
|
|
str r0, [sp, 0x2C]
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
ldr r1, _08153B98 @ =gUnknown_203F3E4
|
|
mov r2, r8
|
|
lsls r4, r2, 2
|
|
adds r4, r1
|
|
str r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8154608
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, sp
|
|
movs r2, 0x88
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
bl sub_8153D48
|
|
add sp, 0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153B88: .4byte gUnknown_8478C98
|
|
_08153B8C: .4byte gUnknown_8478CE0
|
|
_08153B90: .4byte gDummySpriteAffineAnimTable
|
|
_08153B94: .4byte sub_8153B9C
|
|
_08153B98: .4byte gUnknown_203F3E4
|
|
thumb_func_end sub_8153AFC
|
|
|
|
thumb_func_start sub_8153B9C
|
|
sub_8153B9C: @ 8153B9C
|
|
push {lr}
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0x1
|
|
beq _08153BB0
|
|
cmp r1, 0x1
|
|
ble _08153BBA
|
|
cmp r1, 0x2
|
|
beq _08153BB6
|
|
b _08153BBA
|
|
_08153BB0:
|
|
bl sub_8153C30
|
|
b _08153BBA
|
|
_08153BB6:
|
|
bl sub_8153CA0
|
|
_08153BBA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8153B9C
|
|
|
|
thumb_func_start sub_8153BC0
|
|
sub_8153BC0: @ 8153BC0
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
ldr r1, _08153BF0 @ =gUnknown_203F3E4
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08153BF4 @ =gSprites
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
strh r2, [r0, 0x34]
|
|
strh r2, [r0, 0x36]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153BF0: .4byte gUnknown_203F3E4
|
|
_08153BF4: .4byte gSprites
|
|
thumb_func_end sub_8153BC0
|
|
|
|
thumb_func_start sub_8153BF8
|
|
sub_8153BF8: @ 8153BF8
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
ldr r1, _08153C28 @ =gUnknown_203F3E4
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08153C2C @ =gSprites
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
strh r2, [r0, 0x34]
|
|
strh r2, [r0, 0x36]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153C28: .4byte gUnknown_203F3E4
|
|
_08153C2C: .4byte gSprites
|
|
thumb_func_end sub_8153BF8
|
|
|
|
thumb_func_start sub_8153C30
|
|
sub_8153C30: @ 8153C30
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsrs r0, 31
|
|
adds r0, r2, r0
|
|
asrs r1, r0, 1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08153C4C
|
|
adds r0, r1, 0x3
|
|
_08153C4C:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, 0x2
|
|
ble _08153C96
|
|
cmp r0, 0x2
|
|
bgt _08153C62
|
|
cmp r0, 0x1
|
|
bge _08153C66
|
|
_08153C62:
|
|
movs r0, 0x1
|
|
b _08153C68
|
|
_08153C66:
|
|
movs r0, 0xFF
|
|
_08153C68:
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x27
|
|
ble _08153C96
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
bl sub_81533B4
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0
|
|
bl sub_8154608
|
|
strh r0, [r4, 0x20]
|
|
_08153C96:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8153C30
|
|
|
|
thumb_func_start sub_8153CA0
|
|
sub_8153CA0: @ 8153CA0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xD
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08153CC0
|
|
adds r0, r1, 0x3
|
|
_08153CC0:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xD
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08153CE4
|
|
cmp r4, 0
|
|
beq _08153CE4
|
|
movs r0, 0xCD
|
|
bl PlaySE
|
|
_08153CE4:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x67
|
|
ble _08153CF2
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
movs r4, 0
|
|
_08153CF2:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
bl sub_8153DA8
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8153CA0
|
|
|
|
thumb_func_start sub_8153D08
|
|
sub_8153D08: @ 8153D08
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08153D3A
|
|
ldr r6, _08153D40 @ =gUnknown_203F3E4
|
|
_08153D16:
|
|
lsls r0, r4, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08153D44 @ =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08153D30
|
|
bl DestroySpriteAndFreeResources
|
|
_08153D30:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08153D16
|
|
_08153D3A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153D40: .4byte gUnknown_203F3E4
|
|
_08153D44: .4byte gSprites
|
|
thumb_func_end sub_8153D08
|
|
|
|
thumb_func_start sub_8153D48
|
|
sub_8153D48: @ 8153D48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
ldr r3, _08153D78 @ =gSprites
|
|
ldr r2, _08153D7C @ =gUnknown_203F3E4
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08153D78: .4byte gSprites
|
|
_08153D7C: .4byte gUnknown_203F3E4
|
|
thumb_func_end sub_8153D48
|
|
|
|
thumb_func_start sub_8153D80
|
|
sub_8153D80: @ 8153D80
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08153DA2
|
|
_08153D90:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8153D48
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08153D90
|
|
_08153DA2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8153D80
|
|
|
|
thumb_func_start sub_8153DA8
|
|
sub_8153DA8: @ 8153DA8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08153DCC @ =gUnknown_203F3E4
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08153DD0 @ =gSprites
|
|
adds r0, r2
|
|
bl StartSpriteAnim
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153DCC: .4byte gUnknown_203F3E4
|
|
_08153DD0: .4byte gSprites
|
|
thumb_func_end sub_8153DA8
|
|
|
|
thumb_func_start nullsub_97
|
|
nullsub_97: @ 8153DD4
|
|
bx lr
|
|
thumb_func_end nullsub_97
|
|
|
|
thumb_func_start sub_8153DD8
|
|
sub_8153DD8: @ 8153DD8
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
ldr r0, _08153E20 @ =gSprites
|
|
mov r12, r0
|
|
movs r6, 0
|
|
ldr r5, _08153E24 @ =gUnknown_203F43C
|
|
_08153DE4:
|
|
ldr r3, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
lsls r0, r4, 4
|
|
adds r0, 0x30
|
|
strh r0, [r1, 0x20]
|
|
lsls r2, r4, 3
|
|
movs r7, 0x8
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
subs r0, r2
|
|
strh r0, [r1, 0x22]
|
|
adds r3, 0xC
|
|
adds r3, r4
|
|
strb r6, [r3]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _08153DE4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153E20: .4byte gSprites
|
|
_08153E24: .4byte gUnknown_203F43C
|
|
thumb_func_end sub_8153DD8
|
|
|
|
thumb_func_start sub_8153E28
|
|
sub_8153E28: @ 8153E28
|
|
push {r4-r6,lr}
|
|
sub sp, 0x28
|
|
movs r4, 0xC0
|
|
lsls r4, 1
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r6, r0, 0
|
|
ldr r0, _08153EC8 @ =gUnknown_8478DA0
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, _08153ECC @ =gUnknown_8477198
|
|
adds r1, r6, 0
|
|
bl LZ77UnCompWram
|
|
cmp r6, 0
|
|
beq _08153EB8
|
|
str r6, [sp, 0x18]
|
|
add r5, sp, 0x18
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
orrs r0, r4
|
|
str r0, [r5, 0x4]
|
|
mov r1, sp
|
|
ldr r0, _08153ED0 @ =gUnknown_8478DA8
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r4, _08153ED4 @ =gUnknown_203F43C
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
bl LoadSpriteSheet
|
|
add r0, sp, 0x20
|
|
bl LoadSpritePalette
|
|
movs r4, 0
|
|
_08153E7E:
|
|
lsls r1, r4, 20
|
|
movs r0, 0xC0
|
|
lsls r0, 14
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
lsls r0, r4, 3
|
|
movs r3, 0x8
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
subs r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, _08153ED4 @ =gUnknown_203F43C
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 1
|
|
adds r1, 0x2A
|
|
adds r1, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _08153E7E
|
|
_08153EB8:
|
|
adds r0, r6, 0
|
|
bl Free
|
|
add sp, 0x28
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153EC8: .4byte gUnknown_8478DA0
|
|
_08153ECC: .4byte gUnknown_8477198
|
|
_08153ED0: .4byte gUnknown_8478DA8
|
|
_08153ED4: .4byte gUnknown_203F43C
|
|
thumb_func_end sub_8153E28
|
|
|
|
thumb_func_start sub_8153ED8
|
|
sub_8153ED8: @ 8153ED8
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
_08153EDC:
|
|
ldr r5, _08153F14 @ =gUnknown_203F43C
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08153F18 @ =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08153EFA
|
|
bl DestroySpriteAndFreeResources
|
|
_08153EFA:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _08153EDC
|
|
ldr r0, [r5]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08153F14: .4byte gUnknown_203F43C
|
|
_08153F18: .4byte gSprites
|
|
thumb_func_end sub_8153ED8
|
|
|
|
thumb_func_start sub_8153F1C
|
|
sub_8153F1C: @ 8153F1C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r3, 0
|
|
movs r6, 0
|
|
ldr r0, _08153FAC @ =gUnknown_203F43C
|
|
mov r9, r0
|
|
_08153F2E:
|
|
mov r7, r9
|
|
ldr r2, [r7]
|
|
lsls r5, r6, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08153FB0 @ =gSprites
|
|
adds r4, r0, r1
|
|
adds r0, r2, 0
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
movs r1, 0x2
|
|
strh r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r2, r0, r6
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
beq _08153F64
|
|
movs r7, 0x22
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0x8
|
|
beq _08153F9A
|
|
_08153F64:
|
|
movs r3, 0x1
|
|
movs r7, 0x22
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0x8
|
|
bne _08153F8A
|
|
cmp r1, 0
|
|
bne _08153F9A
|
|
strb r3, [r2]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
ldr r1, _08153FB4 @ =0x0000fff0
|
|
strh r1, [r0]
|
|
movs r0, 0x1E
|
|
str r3, [sp]
|
|
bl PlaySE
|
|
ldr r3, [sp]
|
|
_08153F8A:
|
|
mov r7, r9
|
|
ldr r0, [r7]
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_08153F9A:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x9
|
|
bls _08153F2E
|
|
cmp r3, 0
|
|
bne _08153FB8
|
|
movs r0, 0x1
|
|
b _08153FBA
|
|
.align 2, 0
|
|
_08153FAC: .4byte gUnknown_203F43C
|
|
_08153FB0: .4byte gSprites
|
|
_08153FB4: .4byte 0x0000fff0
|
|
_08153FB8:
|
|
movs r0, 0
|
|
_08153FBA:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8153F1C
|
|
|
|
thumb_func_start sub_8153FC8
|
|
sub_8153FC8: @ 8153FC8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _08154004
|
|
movs r4, 0
|
|
_08153FD4:
|
|
ldr r0, _08153FFC @ =gUnknown_203F43C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08154000 @ =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _08153FD4
|
|
b _081540CE
|
|
.align 2, 0
|
|
_08153FFC: .4byte gUnknown_203F43C
|
|
_08154000: .4byte gSprites
|
|
_08154004:
|
|
movs r4, 0
|
|
movs r0, 0xA
|
|
subs r0, r5
|
|
cmp r4, r0
|
|
bge _081540CA
|
|
ldr r6, _08154034 @ =gSprites
|
|
_08154010:
|
|
cmp r5, 0x6
|
|
bls _08154078
|
|
ldr r0, _08154038 @ =gUnknown_203F43C
|
|
ldr r2, [r0]
|
|
ldr r1, _0815403C @ =0x0000fffa
|
|
adds r0, r1, 0
|
|
ldrh r1, [r2, 0x3E]
|
|
adds r0, r1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r0, [r2, 0x3E]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1E
|
|
bls _08154040
|
|
strh r1, [r2, 0x3E]
|
|
b _08154092
|
|
.align 2, 0
|
|
_08154034: .4byte gSprites
|
|
_08154038: .4byte gUnknown_203F43C
|
|
_0815403C: .4byte 0x0000fffa
|
|
_08154040:
|
|
cmp r0, 0xA
|
|
bls _0815405E
|
|
lsls r1, r4, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
b _08154092
|
|
_0815405E:
|
|
lsls r1, r4, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
b _08154092
|
|
_08154078:
|
|
ldr r0, _081540A4 @ =gUnknown_203F43C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
_08154092:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0xA
|
|
subs r0, r5
|
|
cmp r4, r0
|
|
blt _08154010
|
|
b _081540CA
|
|
.align 2, 0
|
|
_081540A4: .4byte gUnknown_203F43C
|
|
_081540A8:
|
|
ldr r0, _081540D4 @ =gUnknown_203F43C
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _081540D8 @ =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_081540CA:
|
|
cmp r4, 0x9
|
|
bls _081540A8
|
|
_081540CE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081540D4: .4byte gUnknown_203F43C
|
|
_081540D8: .4byte gSprites
|
|
thumb_func_end sub_8153FC8
|
|
|
|
thumb_func_start sub_81540DC
|
|
sub_81540DC: @ 81540DC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, _08154120 @ =gSprites
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
ldr r5, _08154124 @ =gUnknown_203F43C
|
|
_081540F2:
|
|
ldr r0, [r5]
|
|
lsls r1, r3, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x9
|
|
bls _081540F2
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154120: .4byte gSprites
|
|
_08154124: .4byte gUnknown_203F43C
|
|
thumb_func_end sub_81540DC
|
|
|
|
thumb_func_start sub_8154128
|
|
sub_8154128: @ 8154128
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
movs r5, 0x90
|
|
lsls r5, 3
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
ldr r0, _08154174 @ =gUnknown_8478DCC
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
ldr r0, _08154178 @ =gUnknown_8475968
|
|
adds r1, r4, 0
|
|
bl LZ77UnCompWram
|
|
cmp r4, 0
|
|
beq _0815415E
|
|
str r4, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
orrs r0, r5
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
_0815415E:
|
|
add r0, sp, 0x8
|
|
bl LoadSpritePalette
|
|
adds r0, r4, 0
|
|
bl Free
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154174: .4byte gUnknown_8478DCC
|
|
_08154178: .4byte gUnknown_8475968
|
|
thumb_func_end sub_8154128
|
|
|
|
thumb_func_start sub_815417C
|
|
sub_815417C: @ 815417C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x30
|
|
mov r1, sp
|
|
ldr r0, _0815420C @ =gUnknown_8478DDC
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
add r2, sp, 0x18
|
|
adds r1, r2, 0
|
|
ldr r0, _08154210 @ =gUnknown_8478DF4
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
movs r5, 0
|
|
mov r9, r2
|
|
_081541A4:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
ldr r1, _08154214 @ =gUnknown_203F400
|
|
lsls r4, r5, 2
|
|
adds r4, r1
|
|
str r0, [r4]
|
|
lsls r0, r5, 3
|
|
lsls r1, r5, 4
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_81542EC
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _081541A4
|
|
movs r5, 0
|
|
ldr r7, _08154218 @ =gUnknown_203F42C
|
|
ldr r4, _0815421C @ =gUnknown_8478DD4
|
|
mov r8, r4
|
|
_081541E4:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
lsls r1, r5, 2
|
|
adds r4, r1, r7
|
|
str r0, [r4]
|
|
adds r6, r1, 0
|
|
cmp r5, 0x3
|
|
bne _08154220
|
|
mov r0, r8
|
|
movs r2, 0x6
|
|
ldrsh r1, [r0, r2]
|
|
mov r0, r9
|
|
movs r2, 0x39
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7, 0xC]
|
|
b _08154234
|
|
.align 2, 0
|
|
_0815420C: .4byte gUnknown_8478DDC
|
|
_08154210: .4byte gUnknown_8478DF4
|
|
_08154214: .4byte gUnknown_203F400
|
|
_08154218: .4byte gUnknown_203F42C
|
|
_0815421C: .4byte gUnknown_8478DD4
|
|
_08154220:
|
|
lsls r0, r5, 1
|
|
add r0, r8
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
mov r0, r9
|
|
movs r2, 0x3C
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
_08154234:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r6, r7
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08154270 @ =gSprites
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _081541E4
|
|
movs r0, 0x1
|
|
bl sub_8154324
|
|
add sp, 0x30
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154270: .4byte gSprites
|
|
thumb_func_end sub_815417C
|
|
|
|
thumb_func_start sub_8154274
|
|
sub_8154274: @ 8154274
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _081542E0 @ =gUnknown_203F400
|
|
_0815427A:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _081542E4 @ =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08154294
|
|
bl DestroySprite
|
|
_08154294:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _0815427A
|
|
movs r5, 0
|
|
ldr r6, _081542E8 @ =gUnknown_203F42C
|
|
_081542AC:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _081542E4 @ =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _081542C6
|
|
bl DestroySprite
|
|
_081542C6:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _081542AC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081542E0: .4byte gUnknown_203F400
|
|
_081542E4: .4byte gSprites
|
|
_081542E8: .4byte gUnknown_203F42C
|
|
thumb_func_end sub_8154274
|
|
|
|
thumb_func_start sub_81542EC
|
|
sub_81542EC: @ 81542EC
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, _0815431C @ =gSprites
|
|
ldr r2, _08154320 @ =gUnknown_203F400
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815431C: .4byte gSprites
|
|
_08154320: .4byte gUnknown_203F400
|
|
thumb_func_end sub_81542EC
|
|
|
|
thumb_func_start sub_8154324
|
|
sub_8154324: @ 8154324
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, _08154368 @ =gSprites
|
|
ldr r6, _0815436C @ =gUnknown_203F42C
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_0815433A:
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0815433A
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154368: .4byte gSprites
|
|
_0815436C: .4byte gUnknown_203F42C
|
|
thumb_func_end sub_8154324
|
|
|
|
thumb_func_start sub_8154370
|
|
sub_8154370: @ 8154370
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
ldr r3, _08154390 @ =gSprites
|
|
ldr r2, _08154394 @ =gUnknown_203F400
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
lsrs r1, 21
|
|
strh r1, [r0, 0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_08154390: .4byte gSprites
|
|
_08154394: .4byte gUnknown_203F400
|
|
thumb_func_end sub_8154370
|
|
|
|
thumb_func_start sub_8154398
|
|
sub_8154398: @ 8154398
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _081543BC @ =gUnknown_203F400
|
|
lsrs r0, 14
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _081543C0 @ =gSprites
|
|
adds r0, r2
|
|
bl StartSpriteAnim
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081543BC: .4byte gUnknown_203F400
|
|
_081543C0: .4byte gSprites
|
|
thumb_func_end sub_8154398
|
|
|
|
thumb_func_start sub_81543C4
|
|
sub_81543C4: @ 81543C4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _081543E4 @ =gSprites
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, 0x32
|
|
strh r1, [r2, 0x20]
|
|
movs r0, 0x32
|
|
strh r0, [r2, 0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_081543E4: .4byte gSprites
|
|
thumb_func_end sub_81543C4
|
|
|
|
thumb_func_start sub_81543E8
|
|
sub_81543E8: @ 81543E8
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x42
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _0815442A
|
|
movs r3, 0
|
|
ldr r7, _08154430 @ =gUnknown_8478E0C
|
|
ldr r6, _08154434 @ =gUnknown_203F3F8
|
|
movs r5, 0
|
|
_081543FE:
|
|
lsls r0, r3, 2
|
|
adds r2, r0, r6
|
|
ldr r1, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2]
|
|
adds r1, r3, r7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _08154420
|
|
ldrh r0, [r4, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, [r2]
|
|
strh r5, [r0, 0x2]
|
|
_08154420:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _081543FE
|
|
_0815442A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154430: .4byte gUnknown_8478E0C
|
|
_08154434: .4byte gUnknown_203F3F8
|
|
thumb_func_end sub_81543E8
|
|
|
|
thumb_func_start sub_8154438
|
|
sub_8154438: @ 8154438
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x28
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r6, r0, 0
|
|
ldr r0, _081544DC @ =gUnknown_8478E18
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, _081544E0 @ =gUnknown_847722C
|
|
adds r1, r6, 0
|
|
bl LZ77UnCompWram
|
|
cmp r6, 0
|
|
beq _081544C6
|
|
str r6, [sp, 0x18]
|
|
add r0, sp, 0x18
|
|
movs r1, 0xA0
|
|
lsls r1, 11
|
|
orrs r1, r4
|
|
str r1, [r0, 0x4]
|
|
mov r2, sp
|
|
ldr r1, _081544E4 @ =gUnknown_8478E20
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
bl LoadSpriteSheet
|
|
add r0, sp, 0x20
|
|
bl LoadSpritePalette
|
|
movs r5, 0
|
|
ldr r7, _081544E8 @ =gUnknown_8478E0E
|
|
adds r0, r7, 0x2
|
|
mov r9, r0
|
|
ldr r1, _081544EC @ =gUnknown_203F3F8
|
|
mov r8, r1
|
|
_08154492:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
lsls r2, r5, 2
|
|
mov r3, r8
|
|
adds r4, r2, r3
|
|
str r0, [r4]
|
|
adds r0, r2, r7
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
add r2, r9
|
|
movs r0, 0
|
|
ldrsh r2, [r2, r0]
|
|
mov r0, sp
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _08154492
|
|
_081544C6:
|
|
adds r0, r6, 0
|
|
bl Free
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081544DC: .4byte gUnknown_8478E18
|
|
_081544E0: .4byte gUnknown_847722C
|
|
_081544E4: .4byte gUnknown_8478E20
|
|
_081544E8: .4byte gUnknown_8478E0E
|
|
_081544EC: .4byte gUnknown_203F3F8
|
|
thumb_func_end sub_8154438
|
|
|
|
thumb_func_start sub_81544F0
|
|
sub_81544F0: @ 81544F0
|
|
push {r4-r7,lr}
|
|
movs r3, 0
|
|
ldr r0, _08154534 @ =gUnknown_203F3F8
|
|
mov r12, r0
|
|
ldr r4, _08154538 @ =gUnknown_8478E0E
|
|
adds r7, r4, 0x2
|
|
ldr r6, _0815453C @ =gSprites
|
|
movs r5, 0x1
|
|
_08154500:
|
|
lsls r2, r3, 2
|
|
mov r1, r12
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
strh r5, [r0]
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x20]
|
|
adds r2, r7
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _08154500
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154534: .4byte gUnknown_203F3F8
|
|
_08154538: .4byte gUnknown_8478E0E
|
|
_0815453C: .4byte gSprites
|
|
thumb_func_end sub_81544F0
|
|
|
|
thumb_func_start sub_8154540
|
|
sub_8154540: @ 8154540
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, _08154570 @ =gUnknown_203F3F8
|
|
ldr r4, _08154574 @ =gSprites
|
|
movs r3, 0
|
|
_0815454A:
|
|
lsls r0, r2, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x42
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1
|
|
bls _0815454A
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154570: .4byte gUnknown_203F3F8
|
|
_08154574: .4byte gSprites
|
|
thumb_func_end sub_8154540
|
|
|
|
thumb_func_start sub_8154578
|
|
sub_8154578: @ 8154578
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _081545B4 @ =gUnknown_203F3F8
|
|
_0815457E:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _081545B8 @ =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08154598
|
|
bl DestroySprite
|
|
_08154598:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _0815457E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081545B4: .4byte gUnknown_203F3F8
|
|
_081545B8: .4byte gSprites
|
|
thumb_func_end sub_8154578
|
|
|
|
thumb_func_start sub_81545BC
|
|
sub_81545BC: @ 81545BC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, _08154600 @ =gSprites
|
|
ldr r6, _08154604 @ =gUnknown_203F3F8
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_081545D2:
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _081545D2
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154600: .4byte gSprites
|
|
_08154604: .4byte gUnknown_203F3F8
|
|
thumb_func_end sub_81545BC
|
|
|
|
thumb_func_start sub_8154608
|
|
sub_8154608: @ 8154608
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x4
|
|
bhi _081546BA
|
|
lsls r0, 2
|
|
ldr r1, _08154624 @ =_08154628
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08154624: .4byte _08154628
|
|
.align 2, 0
|
|
_08154628:
|
|
.4byte _081546A8
|
|
.4byte _0815463C
|
|
.4byte _08154646
|
|
.4byte _0815465A
|
|
.4byte _08154682
|
|
_0815463C:
|
|
cmp r2, 0
|
|
beq _08154672
|
|
cmp r2, 0x1
|
|
bne _081546BA
|
|
b _08154676
|
|
_08154646:
|
|
cmp r2, 0x1
|
|
beq _081546AC
|
|
cmp r2, 0x1
|
|
bgt _08154654
|
|
cmp r2, 0
|
|
beq _081546A8
|
|
b _081546BA
|
|
_08154654:
|
|
cmp r2, 0x2
|
|
bne _081546BA
|
|
b _081546B8
|
|
_0815465A:
|
|
cmp r2, 0x1
|
|
beq _08154676
|
|
cmp r2, 0x1
|
|
bgt _08154668
|
|
cmp r2, 0
|
|
beq _08154672
|
|
b _081546BA
|
|
_08154668:
|
|
cmp r2, 0x2
|
|
beq _0815467A
|
|
cmp r2, 0x3
|
|
beq _0815467E
|
|
b _081546BA
|
|
_08154672:
|
|
movs r3, 0xC
|
|
b _081546BA
|
|
_08154676:
|
|
movs r3, 0x12
|
|
b _081546BA
|
|
_0815467A:
|
|
movs r3, 0x18
|
|
b _081546BA
|
|
_0815467E:
|
|
movs r3, 0x6
|
|
b _081546BA
|
|
_08154682:
|
|
cmp r2, 0x4
|
|
bhi _081546BA
|
|
lsls r0, r2, 2
|
|
ldr r1, _08154690 @ =_08154694
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08154690: .4byte _08154694
|
|
.align 2, 0
|
|
_08154694:
|
|
.4byte _081546A8
|
|
.4byte _081546AC
|
|
.4byte _081546B0
|
|
.4byte _081546B4
|
|
.4byte _081546B8
|
|
_081546A8:
|
|
movs r3, 0xF
|
|
b _081546BA
|
|
_081546AC:
|
|
movs r3, 0x15
|
|
b _081546BA
|
|
_081546B0:
|
|
movs r3, 0x1B
|
|
b _081546BA
|
|
_081546B4:
|
|
movs r3, 0x3
|
|
b _081546BA
|
|
_081546B8:
|
|
movs r3, 0x9
|
|
_081546BA:
|
|
lsls r0, r3, 3
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8154608
|
|
|
|
thumb_func_start sub_81546C0
|
|
sub_81546C0: @ 81546C0
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_081546C4:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_81542EC
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8154370
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xA
|
|
bls _081546C4
|
|
movs r0, 0
|
|
bl sub_81540DC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81546C0
|
|
|
|
thumb_func_start sub_81546EC
|
|
sub_81546EC: @ 81546EC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_8069788
|
|
ldr r1, [r0]
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
movs r0, 0
|
|
movs r3, 0x1
|
|
bl LoadBgTiles
|
|
adds r0, r4, 0
|
|
bl sub_8069788
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0xA0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81546EC
|
|
|
|
thumb_func_start sub_8154720
|
|
sub_8154720: @ 8154720
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
movs r2, 0xB0
|
|
bl sub_814FF2C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8154720
|
|
|
|
thumb_func_start sub_8154730
|
|
sub_8154730: @ 8154730
|
|
ldr r3, _08154760 @ =gUnknown_203F440
|
|
ldr r0, [r3]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r1, _08154764 @ =0x00003014
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08154760: .4byte gUnknown_203F440
|
|
_08154764: .4byte 0x00003014
|
|
thumb_func_end sub_8154730
|
|
|
|
thumb_func_start sub_8154768
|
|
sub_8154768: @ 8154768
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r6, 0xA
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r5, 0x1
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x6
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x7
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x8
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r4, [r4, 0x2]
|
|
adds r3, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x9
|
|
bl FillBgTilemapBufferRect
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8154768
|
|
|
|
thumb_func_start sub_8154868
|
|
sub_8154868: @ 8154868
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r6, 0xB
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r5, 0x1
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xC
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r4, [r4, 0x2]
|
|
adds r3, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl FillBgTilemapBufferRect
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8154868
|
|
|
|
thumb_func_start sub_8154968
|
|
sub_8154968: @ 8154968
|
|
push {r4,lr}
|
|
ldr r4, _081549B0 @ =gUnknown_203F440
|
|
str r0, [r4]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r3, _081549B4 @ =0x00003014
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
ldr r1, _081549B8 @ =0x00003018
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, _081549BC @ =sub_8154A08
|
|
movs r1, 0x3
|
|
bl CreateTask
|
|
ldr r1, [r4]
|
|
ldr r2, _081549C0 @ =0x00003004
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, _081549C4 @ =sub_8154A2C
|
|
bl sub_8155E24
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081549B0: .4byte gUnknown_203F440
|
|
_081549B4: .4byte 0x00003014
|
|
_081549B8: .4byte 0x00003018
|
|
_081549BC: .4byte sub_8154A08
|
|
_081549C0: .4byte 0x00003004
|
|
_081549C4: .4byte sub_8154A2C
|
|
thumb_func_end sub_8154968
|
|
|
|
thumb_func_start sub_81549C8
|
|
sub_81549C8: @ 81549C8
|
|
push {lr}
|
|
bl FreeAllWindowBuffers
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81549C8
|
|
|
|
thumb_func_start sub_81549D4
|
|
sub_81549D4: @ 81549D4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r5, _08154A04 @ =gUnknown_8478EC4
|
|
adds r7, r5, 0x4
|
|
_081549E0:
|
|
lsls r1, r4, 3
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _081549F2
|
|
adds r0, r1, r7
|
|
ldr r0, [r0]
|
|
bl sub_8155E24
|
|
_081549F2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _081549E0
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154A04: .4byte gUnknown_8478EC4
|
|
thumb_func_end sub_81549D4
|
|
|
|
thumb_func_start sub_8154A08
|
|
sub_8154A08: @ 8154A08
|
|
push {lr}
|
|
ldr r0, _08154A28 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08154A22
|
|
bl sub_8155E54
|
|
bl _call_via_r0
|
|
_08154A22:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154A28: .4byte gUnknown_203F440
|
|
thumb_func_end sub_8154A08
|
|
|
|
thumb_func_start sub_8154A2C
|
|
sub_8154A2C: @ 8154A2C
|
|
push {lr}
|
|
ldr r0, _08154A48 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r2, _08154A4C @ =0x00003014
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _08154B24
|
|
lsls r0, 2
|
|
ldr r1, _08154A50 @ =_08154A54
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08154A48: .4byte gUnknown_203F440
|
|
_08154A4C: .4byte 0x00003014
|
|
_08154A50: .4byte _08154A54
|
|
.align 2, 0
|
|
_08154A54:
|
|
.4byte _08154A68
|
|
.4byte _08154A6E
|
|
.4byte _08154A88
|
|
.4byte _08154ACC
|
|
.4byte _08154AF8
|
|
_08154A68:
|
|
bl sub_8155EA0
|
|
b _08154B08
|
|
_08154A6E:
|
|
bl sub_8155FE0
|
|
cmp r0, 0x1
|
|
bne _08154B2E
|
|
ldr r0, _08154A80 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r2, _08154A84 @ =0x00003014
|
|
adds r1, r2
|
|
b _08154B10
|
|
.align 2, 0
|
|
_08154A80: .4byte gUnknown_203F440
|
|
_08154A84: .4byte 0x00003014
|
|
_08154A88:
|
|
ldr r1, _08154AC0 @ =gUnknown_8478590
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, _08154AC4 @ =gUnknown_8478A4C
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, _08154AC8 @ =gUnknown_84787FC
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08154B08
|
|
.align 2, 0
|
|
_08154AC0: .4byte gUnknown_8478590
|
|
_08154AC4: .4byte gUnknown_8478A4C
|
|
_08154AC8: .4byte gUnknown_84787FC
|
|
_08154ACC:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r0, _08154AF0 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r2, _08154AF4 @ =0x00003014
|
|
adds r1, r2
|
|
b _08154B10
|
|
.align 2, 0
|
|
_08154AF0: .4byte gUnknown_203F440
|
|
_08154AF4: .4byte 0x00003014
|
|
_08154AF8:
|
|
ldr r0, _08154B18 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x14]
|
|
lsrs r0, 3
|
|
bl sub_81546EC
|
|
bl sub_8154720
|
|
_08154B08:
|
|
ldr r0, _08154B1C @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _08154B20 @ =0x00003014
|
|
adds r1, r0
|
|
_08154B10:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08154B2E
|
|
.align 2, 0
|
|
_08154B18: .4byte gSaveBlock2Ptr
|
|
_08154B1C: .4byte gUnknown_203F440
|
|
_08154B20: .4byte 0x00003014
|
|
_08154B24:
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08154B2E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8154A2C
|
|
|
|
thumb_func_start sub_8154B34
|
|
sub_8154B34: @ 8154B34
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r4, _08154B74 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r2, _08154B78 @ =0x00003014
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08154B7C
|
|
cmp r0, 0x1
|
|
bne _08154B54
|
|
b _08154CE0
|
|
_08154B54:
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xB4
|
|
bhi _08154B62
|
|
b _08154D82
|
|
_08154B62:
|
|
bl sub_81533B4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcc _08154B72
|
|
b _08154D5A
|
|
_08154B72:
|
|
b _08154D34
|
|
.align 2, 0
|
|
_08154B74: .4byte gUnknown_203F440
|
|
_08154B78: .4byte 0x00003014
|
|
_08154B7C:
|
|
bl sub_81533B4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _08154CB8 @ =gUnknown_8478E80
|
|
subs r0, r7, 0x1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
ldr r2, _08154CBC @ =0xffffff00
|
|
ldr r0, [sp, 0xC]
|
|
ands r0, r2
|
|
ldr r1, _08154CC0 @ =0x00ffffff
|
|
ands r0, r1
|
|
movs r1, 0xE0
|
|
lsls r1, 19
|
|
orrs r0, r1
|
|
str r0, [sp, 0xC]
|
|
ldr r0, [sp, 0x10]
|
|
ands r0, r2
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
ldr r1, _08154CC4 @ =0xffff00ff
|
|
ands r0, r1
|
|
movs r1, 0xD0
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
ldr r1, _08154CC8 @ =0x0000ffff
|
|
ands r0, r1
|
|
movs r1, 0x98
|
|
lsls r1, 13
|
|
orrs r0, r1
|
|
str r0, [sp, 0x10]
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _08154CAC
|
|
mov r3, sp
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x18]
|
|
mov r10, r4
|
|
ldr r0, _08154CCC @ =0x00003008
|
|
mov r9, r0
|
|
_08154BD0:
|
|
movs r1, 0
|
|
mov r8, r1
|
|
adds r0, r6, 0
|
|
bl sub_81537AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
bl sub_81533C4
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
movs r1, 0x38
|
|
subs r1, r0
|
|
lsrs r1, 1
|
|
str r1, [sp, 0x14]
|
|
ldrb r0, [r5]
|
|
lsls r0, 8
|
|
ldr r2, _08154CC4 @ =0xffff00ff
|
|
ldr r1, [sp, 0xC]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0xC]
|
|
ldrb r2, [r5, 0x1]
|
|
lsls r2, 16
|
|
ldr r0, _08154CD0 @ =0xff00ffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0xC]
|
|
add r0, sp, 0xC
|
|
bl AddWindow
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
add r1, r9
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _08154C4E
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
_08154C4E:
|
|
adds r0, r4, 0
|
|
bl sub_81533C4
|
|
adds r4, r0, 0
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
ldr r3, [sp, 0x14]
|
|
lsls r2, r3, 24
|
|
lsrs r2, 24
|
|
mov r3, r8
|
|
lsls r1, r3, 1
|
|
add r1, r8
|
|
ldr r3, _08154CD4 @ =gUnknown_8478E38
|
|
adds r1, r3
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r3, 0x1
|
|
bl box_print
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r3, [sp, 0x18]
|
|
ldrh r0, [r3, 0x6]
|
|
adds r0, 0xE
|
|
strh r0, [r3, 0x6]
|
|
add r0, sp, 0xC
|
|
bl sub_8154868
|
|
adds r5, 0x4
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08154BD0
|
|
_08154CAC:
|
|
ldr r0, _08154CD8 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _08154CDC @ =0x00003014
|
|
adds r1, r0
|
|
b _08154D1E
|
|
.align 2, 0
|
|
_08154CB8: .4byte gUnknown_8478E80
|
|
_08154CBC: .4byte 0xffffff00
|
|
_08154CC0: .4byte 0x00ffffff
|
|
_08154CC4: .4byte 0xffff00ff
|
|
_08154CC8: .4byte 0x0000ffff
|
|
_08154CCC: .4byte 0x00003008
|
|
_08154CD0: .4byte 0xff00ffff
|
|
_08154CD4: .4byte gUnknown_8478E38
|
|
_08154CD8: .4byte gUnknown_203F440
|
|
_08154CDC: .4byte 0x00003014
|
|
_08154CE0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08154D82
|
|
bl sub_81533B4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _08154D10
|
|
_08154CF8:
|
|
ldr r0, [r4]
|
|
ldr r1, _08154D28 @ =0x00003008
|
|
adds r0, r1
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08154CF8
|
|
_08154D10:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _08154D2C @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r2, _08154D30 @ =0x00003014
|
|
adds r1, r2
|
|
_08154D1E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08154D82
|
|
.align 2, 0
|
|
_08154D28: .4byte 0x00003008
|
|
_08154D2C: .4byte gUnknown_203F440
|
|
_08154D30: .4byte 0x00003014
|
|
_08154D34:
|
|
ldr r5, _08154D94 @ =gUnknown_203F440
|
|
ldr r0, [r5]
|
|
ldr r4, _08154D98 @ =0x00003008
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08154D34
|
|
_08154D5A:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _08154D94 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
movs r3, 0xC0
|
|
lsls r3, 6
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08154D82:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154D94: .4byte gUnknown_203F440
|
|
_08154D98: .4byte 0x00003008
|
|
thumb_func_end sub_8154B34
|
|
|
|
thumb_func_start sub_8154D9C
|
|
sub_8154D9C: @ 8154D9C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x70
|
|
lsls r0, 24
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r6, 0
|
|
lsrs r7, r0, 24
|
|
add r4, sp, 0x2C
|
|
ldr r1, _08154F64 @ =gUnknown_8478F14
|
|
adds r0, r4, 0
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08154DEC
|
|
add r4, sp, 0x34
|
|
_08154DC6:
|
|
mov r0, sp
|
|
adds r0, r5
|
|
adds r0, 0x2C
|
|
strb r5, [r0]
|
|
add r0, sp, 0x5C
|
|
adds r1, r5, 0
|
|
bl sub_81536A0
|
|
lsls r2, r5, 3
|
|
adds r2, r4, r2
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x60]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08154DC6
|
|
_08154DEC:
|
|
bl sub_81534AC
|
|
cmp r0, 0
|
|
beq _08154E22
|
|
_08154DF4:
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08154E1C
|
|
add r2, sp, 0x34
|
|
add r1, sp, 0x2C
|
|
_08154DFE:
|
|
lsls r0, r5, 3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _08154E12
|
|
adds r0, r1, r6
|
|
strb r5, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08154E12:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08154DFE
|
|
_08154E1C:
|
|
mov r8, r6
|
|
cmp r6, r7
|
|
bcc _08154DF4
|
|
_08154E22:
|
|
movs r5, 0
|
|
ldr r4, _08154F68 @ =gUnknown_841CE1C
|
|
cmp r5, r7
|
|
bcs _08154E48
|
|
add r1, sp, 0x34
|
|
add r6, sp, 0x38
|
|
subs r3, r7, 0x1
|
|
_08154E30:
|
|
lsls r2, r5, 3
|
|
adds r0, r6, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08154E3E
|
|
adds r0, r1, r2
|
|
strb r3, [r0]
|
|
_08154E3E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08154E30
|
|
_08154E48:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
movs r1, 0xD8
|
|
subs r1, r0
|
|
str r1, [sp, 0x64]
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08154F52
|
|
mov r2, sp
|
|
adds r2, 0x34
|
|
str r2, [sp, 0x68]
|
|
ldr r3, _08154F6C @ =0x00003009
|
|
mov r10, r3
|
|
adds r0, r1, 0
|
|
subs r0, 0x23
|
|
lsls r0, 24
|
|
str r0, [sp, 0x6C]
|
|
_08154E70:
|
|
movs r4, 0
|
|
mov r8, r4
|
|
mov r0, sp
|
|
adds r0, r5
|
|
adds r0, 0x2C
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
lsls r1, r4, 3
|
|
add r0, sp, 0x38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r9, r0
|
|
ldr r2, _08154F70 @ =gUnknown_203F440
|
|
ldr r0, [r2]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, _08154F74 @ =gUnknown_8478E94
|
|
ldr r3, [sp, 0x68]
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
ldr r3, _08154F78 @ =gUnknown_8478EBA
|
|
lsls r1, r5, 1
|
|
adds r1, r3
|
|
ldrb r6, [r1]
|
|
str r6, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
mov r3, r8
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _08154EC8
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
_08154EC8:
|
|
adds r0, r4, 0
|
|
bl sub_81533C4
|
|
adds r3, r0, 0
|
|
ldr r1, _08154F70 @ =gUnknown_203F440
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 1
|
|
add r1, r8
|
|
ldr r2, _08154F7C @ =gUnknown_8478E38
|
|
adds r1, r2
|
|
str r1, [sp]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x1C
|
|
adds r3, r6, 0
|
|
bl box_print
|
|
add r0, sp, 0xC
|
|
mov r1, r9
|
|
movs r2, 0x1
|
|
movs r3, 0x7
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
adds r2, r4, 0
|
|
bl GetStringWidth
|
|
ldr r1, _08154F70 @ =gUnknown_203F440
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
str r6, [sp]
|
|
movs r2, 0xFF
|
|
str r2, [sp, 0x4]
|
|
movs r3, 0
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0
|
|
add r2, sp, 0xC
|
|
ldr r4, [sp, 0x6C]
|
|
lsrs r3, r4, 24
|
|
bl AddTextPrinterParameterized
|
|
ldr r1, _08154F70 @ =gUnknown_203F440
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, 0x64]
|
|
lsls r3, r2, 24
|
|
str r6, [sp]
|
|
movs r4, 0xFF
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
ldr r2, _08154F68 @ =gUnknown_841CE1C
|
|
lsrs r3, 24
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08154E70
|
|
_08154F52:
|
|
add sp, 0x70
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08154F64: .4byte gUnknown_8478F14
|
|
_08154F68: .4byte gUnknown_841CE1C
|
|
_08154F6C: .4byte 0x00003009
|
|
_08154F70: .4byte gUnknown_203F440
|
|
_08154F74: .4byte gUnknown_8478E94
|
|
_08154F78: .4byte gUnknown_8478EBA
|
|
_08154F7C: .4byte gUnknown_8478E38
|
|
thumb_func_end sub_8154D9C
|
|
|
|
thumb_func_start sub_8154F80
|
|
sub_8154F80: @ 8154F80
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8C
|
|
bl sub_81533B4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x84]
|
|
ldr r6, _08154FB0 @ =gUnknown_203F440
|
|
ldr r1, [r6]
|
|
ldr r2, _08154FB4 @ =0x00003014
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xB
|
|
bls _08154FA6
|
|
b _08155678
|
|
_08154FA6:
|
|
lsls r0, 2
|
|
ldr r1, _08154FB8 @ =_08154FBC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08154FB0: .4byte gUnknown_203F440
|
|
_08154FB4: .4byte 0x00003014
|
|
_08154FB8: .4byte _08154FBC
|
|
.align 2, 0
|
|
_08154FBC:
|
|
.4byte _08154FEC
|
|
.4byte _08155008
|
|
.4byte _08155060
|
|
.4byte _0815524C
|
|
.4byte _08155298
|
|
.4byte _081552DC
|
|
.4byte _08155340
|
|
.4byte _0815537C
|
|
.4byte _081553C0
|
|
.4byte _08155480
|
|
.4byte _081555D8
|
|
.4byte _0815562C
|
|
_08154FEC:
|
|
bl sub_81535B0
|
|
ldr r0, _08155000 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _08155004 @ =0x0000301c
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
b _0815565A
|
|
.align 2, 0
|
|
_08155000: .4byte gUnknown_203F440
|
|
_08155004: .4byte 0x0000301c
|
|
_08155008:
|
|
ldr r6, _08155050 @ =gUnknown_8475674
|
|
adds r0, r6, 0
|
|
bl AddWindow
|
|
ldr r4, _08155054 @ =gUnknown_203F440
|
|
ldr r1, [r4]
|
|
ldr r2, _08155058 @ =0x00003008
|
|
mov r8, r2
|
|
add r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
adds r0, r6
|
|
mov r9, r0
|
|
bl AddWindow
|
|
ldr r1, [r4]
|
|
ldr r5, _0815505C @ =0x00003009
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r6, 0
|
|
bl sub_8154868
|
|
mov r0, r9
|
|
bl sub_8154868
|
|
b _08155658
|
|
.align 2, 0
|
|
_08155050: .4byte gUnknown_8475674
|
|
_08155054: .4byte gUnknown_203F440
|
|
_08155058: .4byte 0x00003008
|
|
_0815505C: .4byte 0x00003009
|
|
_08155060:
|
|
ldr r4, _081551A8 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r5, _081551AC @ =0x00003008
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, _081551B0 @ =0x00003009
|
|
mov r9, r1
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, _081551B4 @ =gUnknown_841CD03
|
|
mov r8, r2
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0
|
|
mov r1, r8
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
movs r6, 0xFF
|
|
str r6, [sp, 0x4]
|
|
movs r5, 0
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0
|
|
mov r2, r8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r4]
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
ldr r2, _081551B8 @ =gUnknown_841CD25
|
|
movs r1, 0x10
|
|
str r1, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r3, 0x44
|
|
bl AddTextPrinterParameterized
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r1, [sp, 0x84]
|
|
cmp r9, r1
|
|
bcc _081550DA
|
|
b _08155214
|
|
_081550DA:
|
|
movs r5, 0
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r9, r0
|
|
bne _081550EA
|
|
movs r5, 0x2
|
|
_081550EA:
|
|
mov r0, r9
|
|
bl sub_81533C4
|
|
adds r6, r0, 0
|
|
ldr r0, _081551A8 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r2, _081551B0 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
ldr r1, _081551BC @ =gUnknown_8478EB0
|
|
mov r2, r9
|
|
lsls r4, r2, 1
|
|
adds r4, r1
|
|
ldrb r3, [r4]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
ldr r2, _081551C0 @ =gUnknown_8478E38
|
|
adds r1, r2
|
|
str r1, [sp]
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl box_print
|
|
movs r7, 0
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x88]
|
|
mov r8, r4
|
|
ldr r1, _081551C4 @ =gUnknown_8478EA8
|
|
mov r10, r1
|
|
_0815512E:
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
bl sub_8153404
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _081551C8 @ =0x0000270f
|
|
bl sub_815379C
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r7, 0
|
|
bl sub_81534F0
|
|
ldr r1, _081551C8 @ =0x0000270f
|
|
bl sub_815379C
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
add r0, sp, 0xC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
adds r5, r0, 0
|
|
cmp r6, r4
|
|
bne _081551D0
|
|
cmp r6, 0
|
|
beq _081551D0
|
|
ldr r0, _081551A8 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r2, _081551B0 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r1, r7, 1
|
|
add r1, r10
|
|
ldrb r2, [r1]
|
|
subs r2, r5
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r1, r8
|
|
ldrb r3, [r1]
|
|
ldr r1, _081551CC @ =gUnknown_8478E3B
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
add r1, sp, 0xC
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0
|
|
bl box_print
|
|
b _081551FA
|
|
.align 2, 0
|
|
_081551A8: .4byte gUnknown_203F440
|
|
_081551AC: .4byte 0x00003008
|
|
_081551B0: .4byte 0x00003009
|
|
_081551B4: .4byte gUnknown_841CD03
|
|
_081551B8: .4byte gUnknown_841CD25
|
|
_081551BC: .4byte gUnknown_8478EB0
|
|
_081551C0: .4byte gUnknown_8478E38
|
|
_081551C4: .4byte gUnknown_8478EA8
|
|
_081551C8: .4byte 0x0000270f
|
|
_081551CC: .4byte gUnknown_8478E3B
|
|
_081551D0:
|
|
ldr r0, _0815523C @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r2, _08155240 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r1, r7, 1
|
|
add r1, r10
|
|
ldrb r3, [r1]
|
|
subs r3, r5
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
add r2, sp, 0xC
|
|
bl AddTextPrinterParameterized
|
|
_081551FA:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _0815512E
|
|
ldr r1, [sp, 0x88]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r2, [sp, 0x84]
|
|
cmp r9, r2
|
|
bcs _08155214
|
|
b _081550DA
|
|
_08155214:
|
|
ldr r4, _0815523C @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _08155244 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, _08155240 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, _08155248 @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_0815523C: .4byte gUnknown_203F440
|
|
_08155240: .4byte 0x00003009
|
|
_08155244: .4byte 0x00003008
|
|
_08155248: .4byte 0x00003014
|
|
_0815524C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08155270
|
|
ldr r4, _08155288 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _0815528C @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, _08155290 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08155270:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0
|
|
bl sub_8154324
|
|
ldr r0, _08155288 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _08155294 @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_08155288: .4byte gUnknown_203F440
|
|
_0815528C: .4byte 0x00003008
|
|
_08155290: .4byte 0x00003009
|
|
_08155294: .4byte 0x00003014
|
|
_08155298:
|
|
ldr r4, _081552D0 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _081552D4 @ =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bhi _081552B0
|
|
b _081556C8
|
|
_081552B0:
|
|
ldr r0, _081552D8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081552BE
|
|
b _081556C8
|
|
_081552BE:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl sub_8154324
|
|
b _08155658
|
|
.align 2, 0
|
|
_081552D0: .4byte gUnknown_203F440
|
|
_081552D4: .4byte 0x0000301c
|
|
_081552D8: .4byte gMain
|
|
_081552DC:
|
|
ldr r4, _08155330 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r5, _08155334 @ =0x00003008
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, _08155338 @ =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r6, _0815533C @ =gUnknown_841CD43
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0
|
|
adds r1, r6, 0
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
adds r2, r6, 0
|
|
bl AddTextPrinterParameterized
|
|
b _08155658
|
|
.align 2, 0
|
|
_08155330: .4byte gUnknown_203F440
|
|
_08155334: .4byte 0x00003008
|
|
_08155338: .4byte 0x00003009
|
|
_0815533C: .4byte gUnknown_841CD43
|
|
_08155340:
|
|
ldr r0, [sp, 0x84]
|
|
bl sub_8154D9C
|
|
ldr r4, _0815536C @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _08155370 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, _08155374 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, _08155378 @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_0815536C: .4byte gUnknown_203F440
|
|
_08155370: .4byte 0x00003008
|
|
_08155374: .4byte 0x00003009
|
|
_08155378: .4byte 0x00003014
|
|
_0815537C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081553A0
|
|
ldr r4, _081553B0 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _081553B4 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, _081553B8 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_081553A0:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _081553B0 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _081553BC @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_081553B0: .4byte gUnknown_203F440
|
|
_081553B4: .4byte 0x00003008
|
|
_081553B8: .4byte 0x00003009
|
|
_081553BC: .4byte 0x00003014
|
|
_081553C0:
|
|
ldr r4, _08155408 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _0815540C @ =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bhi _081553D8
|
|
b _081556C8
|
|
_081553D8:
|
|
ldr r0, _08155410 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081553E6
|
|
b _081556C8
|
|
_081553E6:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_81534AC
|
|
ldr r1, _08155414 @ =0x00000bb7
|
|
cmp r0, r1
|
|
bhi _0815541C
|
|
ldr r0, [r4]
|
|
ldr r2, _08155418 @ =0x00003014
|
|
adds r0, r2
|
|
movs r1, 0x7F
|
|
strb r1, [r0]
|
|
b _0815542C
|
|
.align 2, 0
|
|
_08155408: .4byte gUnknown_203F440
|
|
_0815540C: .4byte 0x0000301c
|
|
_08155410: .4byte gMain
|
|
_08155414: .4byte 0x00000bb7
|
|
_08155418: .4byte 0x00003014
|
|
_0815541C:
|
|
bl StopMapMusic
|
|
ldr r1, [r4]
|
|
ldr r0, _08155470 @ =0x00003014
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0815542C:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x5
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
ldr r5, _08155474 @ =gUnknown_203F440
|
|
ldr r0, [r5]
|
|
ldr r4, _08155478 @ =0x00003009
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
ldr r6, _0815547C @ =gUnknown_8475684
|
|
adds r0, r6, 0
|
|
bl AddWindow
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r6, 0
|
|
bl sub_8154868
|
|
b _081556C8
|
|
.align 2, 0
|
|
_08155470: .4byte 0x00003014
|
|
_08155474: .4byte gUnknown_203F440
|
|
_08155478: .4byte 0x00003009
|
|
_0815547C: .4byte gUnknown_8475684
|
|
_08155480:
|
|
ldr r0, _08155558 @ =0x00000101
|
|
bl PlayNewMapMusic
|
|
ldr r4, _0815555C @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r6, _08155560 @ =0x00003008
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, _08155564 @ =0x00003009
|
|
mov r10, r1
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r5, _08155568 @ =gUnknown_841CD58
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r2, 0x2
|
|
mov r9, r2
|
|
str r2, [sp]
|
|
movs r1, 0xFF
|
|
mov r8, r1
|
|
str r1, [sp, 0x4]
|
|
movs r6, 0
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0
|
|
adds r2, r5, 0
|
|
bl AddTextPrinterParameterized
|
|
bl UnkTextUtil_Reset
|
|
bl sub_8153390
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add r5, sp, 0x70
|
|
adds r1, r5, 0
|
|
bl sub_8099E90
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl UnkTextUtil_SetPtrI
|
|
ldr r1, _0815556C @ =gUnknown_841CD7A
|
|
add r0, sp, 0xC
|
|
bl UnkTextUtil_StringExpandPlaceholders
|
|
ldr r0, [r4]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
mov r2, r9
|
|
str r2, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0
|
|
add r2, sp, 0xC
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
bl sub_815372C
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
cmp r4, 0
|
|
beq _0815559E
|
|
cmp r4, 0x3
|
|
beq _0815559E
|
|
bl UnkTextUtil_Reset
|
|
bl sub_8153390
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl sub_8099E90
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl UnkTextUtil_SetPtrI
|
|
cmp r4, 0x2
|
|
bne _08155574
|
|
ldr r1, _08155570 @ =gUnknown_841CD9F
|
|
add r0, sp, 0xC
|
|
bl UnkTextUtil_StringExpandPlaceholders
|
|
b _08155580
|
|
.align 2, 0
|
|
_08155558: .4byte 0x00000101
|
|
_0815555C: .4byte gUnknown_203F440
|
|
_08155560: .4byte 0x00003008
|
|
_08155564: .4byte 0x00003009
|
|
_08155568: .4byte gUnknown_841CD58
|
|
_0815556C: .4byte gUnknown_841CD7A
|
|
_08155570: .4byte gUnknown_841CD9F
|
|
_08155574:
|
|
cmp r6, 0x1
|
|
bne _08155580
|
|
ldr r1, _081555C4 @ =gUnknown_841CDBA
|
|
add r0, sp, 0xC
|
|
bl UnkTextUtil_StringExpandPlaceholders
|
|
_08155580:
|
|
ldr r0, _081555C8 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r2, _081555CC @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x28
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
add r2, sp, 0xC
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
_0815559E:
|
|
ldr r4, _081555C8 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _081555D0 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, _081555CC @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, _081555D4 @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_081555C4: .4byte gUnknown_841CDBA
|
|
_081555C8: .4byte gUnknown_203F440
|
|
_081555CC: .4byte 0x00003009
|
|
_081555D0: .4byte 0x00003008
|
|
_081555D4: .4byte 0x00003014
|
|
_081555D8:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081555FC
|
|
ldr r4, _08155618 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _0815561C @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, _08155620 @ =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_081555FC:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _08155624 @ =0x00000137
|
|
movs r1, 0x14
|
|
movs r2, 0xA
|
|
bl FadeOutAndFadeInNewMapMusic
|
|
ldr r0, _08155618 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _08155628 @ =0x00003014
|
|
adds r1, r0
|
|
b _0815565E
|
|
.align 2, 0
|
|
_08155618: .4byte gUnknown_203F440
|
|
_0815561C: .4byte 0x00003008
|
|
_08155620: .4byte 0x00003009
|
|
_08155624: .4byte 0x00000137
|
|
_08155628: .4byte 0x00003014
|
|
_0815562C:
|
|
ldr r4, _08155668 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _0815566C @ =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bls _081556C8
|
|
ldr r0, _08155670 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081556C8
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_08155658:
|
|
ldr r1, [r4]
|
|
_0815565A:
|
|
ldr r2, _08155674 @ =0x00003014
|
|
adds r1, r2
|
|
_0815565E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _081556C8
|
|
.align 2, 0
|
|
_08155668: .4byte gUnknown_203F440
|
|
_0815566C: .4byte 0x0000301c
|
|
_08155670: .4byte gMain
|
|
_08155674: .4byte 0x00003014
|
|
_08155678:
|
|
ldr r5, _081556D8 @ =0x00003008
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
ldr r4, _081556DC @ =0x00003009
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r6]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_081556C8:
|
|
add sp, 0x8C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081556D8: .4byte 0x00003008
|
|
_081556DC: .4byte 0x00003009
|
|
thumb_func_end sub_8154F80
|
|
|
|
thumb_func_start sub_81556E0
|
|
sub_81556E0: @ 81556E0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
ldr r1, _08155708 @ =gUnknown_203F440
|
|
ldr r2, [r1]
|
|
ldr r0, _0815570C @ =0x00003014
|
|
mov r9, r0
|
|
adds r0, r2, r0
|
|
ldrb r7, [r0]
|
|
mov r10, r1
|
|
cmp r7, 0x1
|
|
beq _0815579C
|
|
cmp r7, 0x1
|
|
bgt _08155710
|
|
cmp r7, 0
|
|
beq _0815571E
|
|
b _081559EC
|
|
.align 2, 0
|
|
_08155708: .4byte gUnknown_203F440
|
|
_0815570C: .4byte 0x00003014
|
|
_08155710:
|
|
cmp r7, 0x2
|
|
bne _08155716
|
|
b _08155868
|
|
_08155716:
|
|
cmp r7, 0x3
|
|
bne _0815571C
|
|
b _081558A4
|
|
_0815571C:
|
|
b _081559EC
|
|
_0815571E:
|
|
ldr r5, _08155788 @ =gUnknown_847568C
|
|
adds r0, r5, 0
|
|
bl AddWindow
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
ldr r3, _0815578C @ =0x00003008
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
adds r0, r5
|
|
mov r8, r0
|
|
bl AddWindow
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
ldr r4, _08155790 @ =0x00003009
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r3, _0815578C @ =0x00003008
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r5, 0
|
|
bl sub_8154868
|
|
mov r0, r8
|
|
bl sub_8154768
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r3, _08155794 @ =0x00003020
|
|
adds r0, r3
|
|
strb r7, [r0]
|
|
ldr r0, [r2]
|
|
ldr r1, _08155798 @ =0x00003024
|
|
adds r0, r1
|
|
strb r7, [r0]
|
|
b _08155A58
|
|
.align 2, 0
|
|
_08155788: .4byte gUnknown_847568C
|
|
_0815578C: .4byte 0x00003008
|
|
_08155790: .4byte 0x00003009
|
|
_08155794: .4byte 0x00003020
|
|
_08155798: .4byte 0x00003024
|
|
_0815579C:
|
|
ldr r3, _0815584C @ =0x00003008
|
|
mov r8, r3
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldr r7, _08155850 @ =0x00003009
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155854 @ =gUnknown_841CDD7
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
movs r5, 0xFF
|
|
str r5, [sp, 0x4]
|
|
movs r4, 0
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155858 @ =gUnknown_8417938
|
|
movs r1, 0x2
|
|
mov r9, r1
|
|
str r1, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
ldr r2, _0815585C @ =gUnknown_841793C
|
|
movs r1, 0x10
|
|
str r1, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155860 @ =gUnknown_841623B
|
|
mov r1, r9
|
|
str r1, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
mov r0, r10
|
|
ldr r1, [r0]
|
|
ldr r2, _08155864 @ =0x00003014
|
|
adds r1, r2
|
|
b _081559DA
|
|
.align 2, 0
|
|
_0815584C: .4byte 0x00003008
|
|
_08155850: .4byte 0x00003009
|
|
_08155854: .4byte gUnknown_841CDD7
|
|
_08155858: .4byte gUnknown_8417938
|
|
_0815585C: .4byte gUnknown_841793C
|
|
_08155860: .4byte gUnknown_841623B
|
|
_08155864: .4byte 0x00003014
|
|
_08155868:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0815588E
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
ldr r1, _0815589C @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
ldr r3, _081558A0 @ =0x00003009
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_0815588E:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
mov r0, r10
|
|
ldr r1, [r0]
|
|
add r1, r9
|
|
b _081559DA
|
|
.align 2, 0
|
|
_0815589C: .4byte 0x00003008
|
|
_081558A0: .4byte 0x00003009
|
|
_081558A4:
|
|
ldr r1, _0815590C @ =0x00003020
|
|
adds r0, r2, r1
|
|
ldrb r7, [r0]
|
|
cmp r7, 0
|
|
bne _081558B0
|
|
movs r7, 0x1
|
|
_081558B0:
|
|
ldr r4, _08155910 @ =0x00003009
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155914 @ =gUnknown_8417938
|
|
movs r3, 0x2
|
|
mov r8, r3
|
|
str r3, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r5, 0
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155918 @ =gUnknown_841793C
|
|
movs r6, 0x10
|
|
str r6, [sp]
|
|
movs r3, 0xFF
|
|
str r3, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
ldr r2, _0815591C @ =gUnknown_841623B
|
|
cmp r7, 0x1
|
|
bne _08155920
|
|
mov r3, r8
|
|
str r3, [sp]
|
|
b _08155922
|
|
.align 2, 0
|
|
_0815590C: .4byte 0x00003020
|
|
_08155910: .4byte 0x00003009
|
|
_08155914: .4byte gUnknown_8417938
|
|
_08155918: .4byte gUnknown_841793C
|
|
_0815591C: .4byte gUnknown_841623B
|
|
_08155920:
|
|
str r6, [sp]
|
|
_08155922:
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r1, 0
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r4, _08155970 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _08155974 @ =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, _08155978 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r5, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08155984
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r4]
|
|
ldr r2, _0815597C @ =0x00003020
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08155966
|
|
strb r5, [r1]
|
|
_08155966:
|
|
ldr r1, [r4]
|
|
ldr r3, _08155980 @ =0x00003014
|
|
adds r1, r3
|
|
b _081559DA
|
|
.align 2, 0
|
|
_08155970: .4byte gUnknown_203F440
|
|
_08155974: .4byte 0x00003009
|
|
_08155978: .4byte gMain
|
|
_0815597C: .4byte 0x00003020
|
|
_08155980: .4byte 0x00003014
|
|
_08155984:
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081559BC
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r4]
|
|
ldr r2, _081559A8 @ =0x00003020
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _081559B2
|
|
cmp r0, 0x1
|
|
bgt _081559AC
|
|
cmp r0, 0
|
|
beq _081559B2
|
|
b _08155A58
|
|
.align 2, 0
|
|
_081559A8: .4byte 0x00003020
|
|
_081559AC:
|
|
cmp r0, 0x2
|
|
beq _081559B8
|
|
b _08155A58
|
|
_081559B2:
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _08155A58
|
|
_081559B8:
|
|
strb r5, [r1]
|
|
b _08155A58
|
|
_081559BC:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08155A58
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r4]
|
|
ldr r3, _081559E4 @ =0x00003020
|
|
adds r0, r3
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
ldr r0, _081559E8 @ =0x00003014
|
|
adds r1, r0
|
|
_081559DA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08155A58
|
|
.align 2, 0
|
|
_081559E4: .4byte 0x00003020
|
|
_081559E8: .4byte 0x00003014
|
|
_081559EC:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldr r2, _08155A68 @ =0x00003020
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
ldr r3, _08155A6C @ =0x00003024
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldr r5, _08155A70 @ =0x00003008
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
ldr r4, _08155A74 @ =0x00003009
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
movs r3, 0xC0
|
|
lsls r3, 6
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08155A58:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155A68: .4byte 0x00003020
|
|
_08155A6C: .4byte 0x00003024
|
|
_08155A70: .4byte 0x00003008
|
|
_08155A74: .4byte 0x00003009
|
|
thumb_func_end sub_81556E0
|
|
|
|
thumb_func_start sub_8155A78
|
|
sub_8155A78: @ 8155A78
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
ldr r5, _08155A94 @ =gUnknown_203F440
|
|
ldr r0, [r5]
|
|
ldr r6, _08155A98 @ =0x00003014
|
|
adds r0, r6
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
beq _08155AD0
|
|
cmp r4, 0x1
|
|
bgt _08155A9C
|
|
cmp r4, 0
|
|
beq _08155AA6
|
|
b _08155B18
|
|
.align 2, 0
|
|
_08155A94: .4byte gUnknown_203F440
|
|
_08155A98: .4byte 0x00003014
|
|
_08155A9C:
|
|
cmp r4, 0x2
|
|
beq _08155AE4
|
|
cmp r4, 0x3
|
|
beq _08155AFC
|
|
b _08155B18
|
|
_08155AA6:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80F6EE4
|
|
ldr r2, _08155ACC @ =gUnknown_8419F54
|
|
str r4, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
b _08155B08
|
|
.align 2, 0
|
|
_08155ACC: .4byte gUnknown_8419F54
|
|
_08155AD0:
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, [r5]
|
|
ldr r0, _08155AE0 @ =0x00003014
|
|
adds r1, r0
|
|
b _08155B0C
|
|
.align 2, 0
|
|
_08155AE0: .4byte 0x00003014
|
|
_08155AE4:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08155B40
|
|
ldr r0, _08155AF8 @ =sub_80DA634
|
|
movs r1, 0
|
|
bl CreateTask
|
|
b _08155B08
|
|
.align 2, 0
|
|
_08155AF8: .4byte sub_80DA634
|
|
_08155AFC:
|
|
ldr r0, _08155B14 @ =sub_80DA634
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08155B40
|
|
_08155B08:
|
|
ldr r1, [r5]
|
|
adds r1, r6
|
|
_08155B0C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08155B40
|
|
.align 2, 0
|
|
_08155B14: .4byte sub_80DA634
|
|
_08155B18:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _08155B48 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08155B40:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155B48: .4byte gUnknown_203F440
|
|
thumb_func_end sub_8155A78
|
|
|
|
thumb_func_start sub_8155B4C
|
|
sub_8155B4C: @ 8155B4C
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r1, _08155B6C @ =gUnknown_203F440
|
|
ldr r2, [r1]
|
|
ldr r6, _08155B70 @ =0x00003014
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0x1
|
|
beq _08155BA4
|
|
cmp r0, 0x1
|
|
bgt _08155B74
|
|
cmp r0, 0
|
|
beq _08155B7A
|
|
b _08155C18
|
|
.align 2, 0
|
|
_08155B6C: .4byte gUnknown_203F440
|
|
_08155B70: .4byte 0x00003014
|
|
_08155B74:
|
|
cmp r0, 0x2
|
|
beq _08155BEC
|
|
b _08155C18
|
|
_08155B7A:
|
|
ldr r4, _08155B9C @ =gUnknown_84756A4
|
|
adds r0, r4, 0
|
|
bl AddWindow
|
|
ldr r1, [r5]
|
|
ldr r2, _08155BA0 @ =0x00003008
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r4, 0
|
|
bl sub_8154868
|
|
b _08155C08
|
|
.align 2, 0
|
|
_08155B9C: .4byte gUnknown_84756A4
|
|
_08155BA0: .4byte 0x00003008
|
|
_08155BA4:
|
|
ldr r4, _08155BE0 @ =0x00003008
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155BE4 @ =gUnknown_841CE24
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r5]
|
|
ldr r0, _08155BE8 @ =0x00003014
|
|
adds r1, r0
|
|
b _08155C0C
|
|
.align 2, 0
|
|
_08155BE0: .4byte 0x00003008
|
|
_08155BE4: .4byte gUnknown_841CE24
|
|
_08155BE8: .4byte 0x00003014
|
|
_08155BEC:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08155C02
|
|
ldr r0, [r5]
|
|
ldr r1, _08155C14 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08155C02:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
_08155C08:
|
|
ldr r1, [r5]
|
|
adds r1, r6
|
|
_08155C0C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08155C24
|
|
.align 2, 0
|
|
_08155C14: .4byte 0x00003008
|
|
_08155C18:
|
|
ldr r0, [r5]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08155C24:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8155B4C
|
|
|
|
thumb_func_start sub_8155C2C
|
|
sub_8155C2C: @ 8155C2C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r5, _08155C78 @ =gUnknown_203F440
|
|
ldr r0, [r5]
|
|
ldr r4, _08155C7C @ =0x00003008
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r5]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155C78: .4byte gUnknown_203F440
|
|
_08155C7C: .4byte 0x00003008
|
|
thumb_func_end sub_8155C2C
|
|
|
|
thumb_func_start sub_8155C80
|
|
sub_8155C80: @ 8155C80
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
ldr r0, _08155CA0 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r7, _08155CA4 @ =0x00003014
|
|
adds r2, r1, r7
|
|
ldrb r5, [r2]
|
|
adds r6, r0, 0
|
|
cmp r5, 0x1
|
|
beq _08155D08
|
|
cmp r5, 0x1
|
|
bgt _08155CA8
|
|
cmp r5, 0
|
|
beq _08155CB2
|
|
b _08155D9C
|
|
.align 2, 0
|
|
_08155CA0: .4byte gUnknown_203F440
|
|
_08155CA4: .4byte 0x00003014
|
|
_08155CA8:
|
|
cmp r5, 0x2
|
|
beq _08155D50
|
|
cmp r5, 0x3
|
|
beq _08155D7C
|
|
b _08155D9C
|
|
_08155CB2:
|
|
ldr r4, _08155CF8 @ =gUnknown_847569C
|
|
adds r0, r4, 0
|
|
bl AddWindow
|
|
ldr r1, [r6]
|
|
ldr r2, _08155CFC @ =0x00003008
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r4, 0
|
|
bl sub_8154868
|
|
ldr r1, [r6]
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldr r2, _08155D00 @ =0x0000301c
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
strh r5, [r1]
|
|
ldr r1, _08155D04 @ =0x00003020
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _08155DE2
|
|
.align 2, 0
|
|
_08155CF8: .4byte gUnknown_847569C
|
|
_08155CFC: .4byte 0x00003008
|
|
_08155D00: .4byte 0x0000301c
|
|
_08155D04: .4byte 0x00003020
|
|
_08155D08:
|
|
ldr r4, _08155D44 @ =0x00003008
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08155D48 @ =gUnknown_841CDEB
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r6]
|
|
ldr r2, _08155D4C @ =0x00003014
|
|
adds r1, r2
|
|
b _08155D70
|
|
.align 2, 0
|
|
_08155D44: .4byte 0x00003008
|
|
_08155D48: .4byte gUnknown_841CDEB
|
|
_08155D4C: .4byte 0x00003014
|
|
_08155D50:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08155D66
|
|
ldr r0, [r6]
|
|
ldr r1, _08155D78 @ =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08155D66:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r6]
|
|
adds r1, r7
|
|
_08155D70:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08155DE2
|
|
.align 2, 0
|
|
_08155D78: .4byte 0x00003008
|
|
_08155D7C:
|
|
ldr r0, _08155D98 @ =0x0000301c
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x77
|
|
bls _08155DE2
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
b _08155DE2
|
|
.align 2, 0
|
|
_08155D98: .4byte 0x0000301c
|
|
_08155D9C:
|
|
ldr r0, [r6]
|
|
ldr r1, _08155DEC @ =0x00003024
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r4, _08155DF0 @ =0x00003008
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r6]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08155DE2:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155DEC: .4byte 0x00003024
|
|
_08155DF0: .4byte 0x00003008
|
|
thumb_func_end sub_8155C80
|
|
|
|
thumb_func_start unused_0
|
|
unused_0: @ 8155DF4
|
|
push {r4,lr}
|
|
ldr r4, _08155E18 @ =gUnknown_203F440
|
|
ldr r0, [r4]
|
|
ldr r1, _08155E1C @ =0x00003004
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl DestroyTask
|
|
ldr r0, [r4]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155E18: .4byte gUnknown_203F440
|
|
_08155E1C: .4byte 0x00003004
|
|
thumb_func_end unused_0
|
|
|
|
thumb_func_start nullsub_98
|
|
nullsub_98: @ 8155E20
|
|
bx lr
|
|
thumb_func_end nullsub_98
|
|
|
|
thumb_func_start sub_8155E24
|
|
sub_8155E24: @ 8155E24
|
|
push {r4,lr}
|
|
ldr r2, _08155E48 @ =gUnknown_203F440
|
|
ldr r1, [r2]
|
|
ldr r3, _08155E4C @ =0x00003014
|
|
adds r1, r3
|
|
movs r3, 0
|
|
strb r3, [r1]
|
|
ldr r1, [r2]
|
|
movs r4, 0xC0
|
|
lsls r4, 6
|
|
adds r2, r1, r4
|
|
str r3, [r2]
|
|
ldr r2, _08155E50 @ =0x00003028
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155E48: .4byte gUnknown_203F440
|
|
_08155E4C: .4byte 0x00003014
|
|
_08155E50: .4byte 0x00003028
|
|
thumb_func_end sub_8155E24
|
|
|
|
thumb_func_start sub_8155E54
|
|
sub_8155E54: @ 8155E54
|
|
ldr r0, _08155E60 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r1, _08155E64 @ =0x00003028
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08155E60: .4byte gUnknown_203F440
|
|
_08155E64: .4byte 0x00003028
|
|
thumb_func_end sub_8155E54
|
|
|
|
thumb_func_start sub_8155E68
|
|
sub_8155E68: @ 8155E68
|
|
push {lr}
|
|
ldr r0, _08155E80 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08155E84
|
|
movs r0, 0x1
|
|
b _08155E86
|
|
.align 2, 0
|
|
_08155E80: .4byte gUnknown_203F440
|
|
_08155E84:
|
|
movs r0, 0
|
|
_08155E86:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8155E68
|
|
|
|
thumb_func_start sub_8155E8C
|
|
sub_8155E8C: @ 8155E8C
|
|
ldr r0, _08155E98 @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r1, _08155E9C @ =0x00003024
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08155E98: .4byte gUnknown_203F440
|
|
_08155E9C: .4byte 0x00003024
|
|
thumb_func_end sub_8155E8C
|
|
|
|
thumb_func_start sub_8155EA0
|
|
sub_8155EA0: @ 8155EA0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r2, sp
|
|
movs r6, 0
|
|
ldr r1, _08155FD0 @ =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, _08155FD4 @ =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_08155EC6:
|
|
strh r6, [r2]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _08155EC6
|
|
strh r6, [r2]
|
|
mov r2, sp
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r2, _08155FD0 @ =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _08155FD8 @ =gUnknown_847565C
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
bl sub_80F6C6C
|
|
bl sub_80F6C98
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r4, _08155FDC @ =gUnknown_203F440
|
|
ldr r1, [r4]
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08155FD0: .4byte 0x040000d4
|
|
_08155FD4: .4byte 0x81000800
|
|
_08155FD8: .4byte gUnknown_847565C
|
|
_08155FDC: .4byte gUnknown_203F440
|
|
thumb_func_end sub_8155EA0
|
|
|
|
thumb_func_start sub_8155FE0
|
|
sub_8155FE0: @ 8155FE0
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _08155FFC @ =gUnknown_203F440
|
|
ldr r0, [r0]
|
|
ldr r2, _08156000 @ =0x00003018
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
bhi _0815607A
|
|
lsls r0, 2
|
|
ldr r1, _08156004 @ =_08156008
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08155FFC: .4byte gUnknown_203F440
|
|
_08156000: .4byte 0x00003018
|
|
_08156004: .4byte _08156008
|
|
.align 2, 0
|
|
_08156008:
|
|
.4byte _08156020
|
|
.4byte _08156030
|
|
.4byte _08156036
|
|
.4byte _08156044
|
|
.4byte _0815605C
|
|
.4byte _0815606A
|
|
_08156020:
|
|
ldr r0, _0815602C @ =gUnknown_84758A8
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadPalette
|
|
b _08156082
|
|
.align 2, 0
|
|
_0815602C: .4byte gUnknown_84758A8
|
|
_08156030:
|
|
bl reset_temp_tile_data_buffers
|
|
b _08156082
|
|
_08156036:
|
|
ldr r1, _08156040 @ =gUnknown_8475B3C
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
b _0815604C
|
|
.align 2, 0
|
|
_08156040: .4byte gUnknown_8475B3C
|
|
_08156044:
|
|
ldr r1, _08156058 @ =gUnknown_84763CC
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
_0815604C:
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
b _08156082
|
|
.align 2, 0
|
|
_08156058: .4byte gUnknown_84763CC
|
|
_0815605C:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08156082
|
|
b _08156090
|
|
_0815606A:
|
|
movs r0, 0x3
|
|
bl stdpal_get
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _08156082
|
|
_0815607A:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _08156092
|
|
_08156082:
|
|
ldr r0, _08156098 @ =gUnknown_203F440
|
|
ldr r1, [r0]
|
|
ldr r0, _0815609C @ =0x00003018
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08156090:
|
|
movs r0, 0
|
|
_08156092:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08156098: .4byte gUnknown_203F440
|
|
_0815609C: .4byte 0x00003018
|
|
thumb_func_end sub_8155FE0
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|