pokefirered/asm/battle_transition.s
2018-11-23 15:17:38 -05:00

7481 lines
127 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80D08B8
sub_80D08B8: @ 80D08B8
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _080D08DC @ =gUnknown_2039A2C
movs r0, 0x3C
bl AllocZeroed
str r0, [r5]
ldr r1, _080D08E0 @ =gMain
ldr r0, _080D08E4 @ =sub_80565A8
str r0, [r1, 0x4]
adds r0, r4, 0
bl LaunchBattleTransitionTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D08DC: .4byte gUnknown_2039A2C
_080D08E0: .4byte gMain
_080D08E4: .4byte sub_80565A8
thumb_func_end sub_80D08B8
thumb_func_start sub_80D08E8
sub_80D08E8: @ 80D08E8
push {lr}
lsls r0, 24
lsrs r0, 24
bl LaunchBattleTransitionTask
pop {r0}
bx r0
thumb_func_end sub_80D08E8
thumb_func_start sub_80D08F8
sub_80D08F8: @ 80D08F8
push {r4,r5,lr}
ldr r0, _080D091C @ =sub_80D0978
bl FindTaskIdByFunc
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080D0920 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x26
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D0924
movs r0, 0
b _080D093C
.align 2, 0
_080D091C: .4byte sub_80D0978
_080D0920: .4byte gTasks
_080D0924:
bl sub_80D3DD0
ldr r4, _080D0944 @ =gUnknown_2039A2C
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r5, 0
bl DestroyTask
movs r0, 0x1
_080D093C:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D0944: .4byte gUnknown_2039A2C
thumb_func_end sub_80D08F8
thumb_func_start LaunchBattleTransitionTask
LaunchBattleTransitionTask: @ 80D0948
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080D0970 @ =sub_80D0978
movs r1, 0x2
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080D0974 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xA]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D0970: .4byte sub_80D0978
_080D0974: .4byte gTasks
thumb_func_end LaunchBattleTransitionTask
thumb_func_start sub_80D0978
sub_80D0978: @ 80D0978
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D09A8 @ =gUnknown_83FA3B0
ldr r2, _080D09AC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D098A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D098A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D09A8: .4byte gUnknown_83FA3B0
_080D09AC: .4byte gTasks
thumb_func_end sub_80D0978
thumb_func_start Transition_Phase1
Transition_Phase1: @ 80D09B0
push {r4,lr}
adds r4, r0, 0
bl sub_807B05C
ldr r0, _080D09DC @ =gPlttBufferFaded
ldr r1, _080D09E0 @ =gPlttBufferUnfaded
ldr r2, _080D09E4 @ =0x04000100
bl CpuSet
ldr r1, _080D09E8 @ =gUnknown_83FA320
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bne _080D09EC
movs r0, 0x2
strh r0, [r4, 0x8]
movs r0, 0x1
b _080D09FA
.align 2, 0
_080D09DC: .4byte gPlttBufferFaded
_080D09E0: .4byte gPlttBufferUnfaded
_080D09E4: .4byte 0x04000100
_080D09E8: .4byte gUnknown_83FA320
_080D09EC:
movs r1, 0x4
bl CreateTask
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
_080D09FA:
pop {r4}
pop {r1}
bx r1
thumb_func_end Transition_Phase1
thumb_func_start Transition_WaitForPhase1
Transition_WaitForPhase1: @ 80D0A00
push {r4,lr}
adds r4, r0, 0
ldr r1, _080D0A20 @ =gUnknown_83FA320
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _080D0A24
movs r0, 0
b _080D0A2C
.align 2, 0
_080D0A20: .4byte gUnknown_83FA320
_080D0A24:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
_080D0A2C:
pop {r4}
pop {r1}
bx r1
thumb_func_end Transition_WaitForPhase1
thumb_func_start Transition_Phase2
Transition_Phase2: @ 80D0A34
push {r4,lr}
adds r4, r0, 0
ldr r1, _080D0A58 @ =gUnknown_83FA368
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl CreateTask
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D0A58: .4byte gUnknown_83FA368
thumb_func_end Transition_Phase2
thumb_func_start Transition_WaitForPhase2
Transition_WaitForPhase2: @ 80D0A5C
push {r4,lr}
adds r4, r0, 0
movs r0, 0
strh r0, [r4, 0x26]
ldr r1, _080D0A88 @ =gUnknown_83FA368
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _080D0A80
movs r0, 0x1
strh r0, [r4, 0x26]
_080D0A80:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D0A88: .4byte gUnknown_83FA368
thumb_func_end Transition_WaitForPhase2
thumb_func_start Phase1Task_TransitionAll
Phase1Task_TransitionAll: @ 80D0A8C
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r1, _080D0AC0 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0x8]
movs r3, 0x8
ldrsh r0, [r1, r3]
cmp r0, 0
bne _080D0AC4
adds r0, r2, 0x1
strh r0, [r1, 0x8]
movs r0, 0x2
str r0, [sp]
movs r0, 0
movs r1, 0
movs r2, 0x2
movs r3, 0x2
bl CreatePhase1Task
b _080D0AD4
.align 2, 0
_080D0AC0: .4byte gTasks
_080D0AC4:
bl sub_80D3CA4
lsls r0, 24
cmp r0, 0
beq _080D0AD4
adds r0, r4, 0
bl DestroyTask
_080D0AD4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end Phase1Task_TransitionAll
thumb_func_start sub_80D0ADC
sub_80D0ADC: @ 80D0ADC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D0B0C @ =gUnknown_83FA3C0
ldr r2, _080D0B10 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D0AEE:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D0AEE
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D0B0C: .4byte gUnknown_83FA3C0
_080D0B10: .4byte gTasks
thumb_func_end sub_80D0ADC
thumb_func_start sub_80D0B14
sub_80D0B14: @ 80D0B14
push {r4,lr}
adds r4, r0, 0
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
movs r0, 0xA
movs r1, 0x40
bl SetGpuRegBits
movs r0, 0xC
movs r1, 0x40
bl SetGpuRegBits
movs r0, 0xE
movs r1, 0x40
bl SetGpuRegBits
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80D0B14
thumb_func_start sub_80D0B48
sub_80D0B48: @ 80D0B48
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
ldrh r0, [r4, 0xA]
movs r1, 0xA
ldrsh r2, [r4, r1]
cmp r2, 0
beq _080D0B5E
subs r0, 0x1
strh r0, [r4, 0xA]
b _080D0B9E
_080D0B5E:
movs r0, 0x2
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _080D0B80
movs r1, 0x1
negs r1, r1
str r2, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_080D0B80:
ldrh r1, [r4, 0xC]
movs r0, 0xF
ands r0, r1
lsls r1, r0, 4
orrs r1, r0
movs r0, 0x4C
bl SetGpuReg
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0xE
ble _080D0B9E
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D0B9E:
movs r0, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80D0B48
thumb_func_start sub_80D0BA8
sub_80D0BA8: @ 80D0BA8
push {lr}
ldr r0, _080D0BCC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080D0BC4
ldr r0, _080D0BD0 @ =sub_80D0ADC
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D0BC4:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D0BCC: .4byte gPaletteFade
_080D0BD0: .4byte sub_80D0ADC
thumb_func_end sub_80D0BA8
thumb_func_start sub_80D0BD4
sub_80D0BD4: @ 80D0BD4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D0C04 @ =gUnknown_83FA3CC
ldr r2, _080D0C08 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D0BE6:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D0BE6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D0C04: .4byte gUnknown_83FA3CC
_080D0C08: .4byte gTasks
thumb_func_end sub_80D0BD4
thumb_func_start sub_80D0C0C
sub_80D0C0C: @ 80D0C0C
push {r4,r5,lr}
sub sp, 0x8
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
movs r0, 0x1
negs r0, r0
movs r4, 0
str r4, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _080D0C68 @ =gUnknown_2038E80
ldr r1, _080D0C6C @ =gUnknown_2039A2C
ldr r1, [r1]
movs r2, 0x14
ldrsh r1, [r1, r2]
str r4, [sp]
movs r2, 0xA0
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0x2
bl sub_80D3E74
ldr r0, _080D0C70 @ =sub_80D0CF0
bl SetVBlankCallback
ldr r0, _080D0C74 @ =sub_80D0D28
bl SetHBlankCallback
movs r0, 0x3
bl EnableInterrupts
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D0C68: .4byte gUnknown_2038E80
_080D0C6C: .4byte gUnknown_2039A2C
_080D0C70: .4byte sub_80D0CF0
_080D0C74: .4byte sub_80D0D28
thumb_func_end sub_80D0C0C
thumb_func_start sub_80D0C78
sub_80D0C78: @ 80D0C78
push {r4,r5,lr}
sub sp, 0x8
ldr r4, _080D0CE0 @ =gUnknown_2039A2C
ldr r2, [r4]
ldrb r1, [r2]
movs r1, 0
strb r1, [r2]
ldrh r1, [r0, 0xA]
adds r1, 0x4
strh r1, [r0, 0xA]
ldrh r1, [r0, 0xC]
adds r1, 0x8
strh r1, [r0, 0xC]
ldr r3, _080D0CE4 @ =gUnknown_2038700
ldr r1, [r4]
movs r2, 0x14
ldrsh r1, [r1, r2]
movs r5, 0xA
ldrsh r2, [r0, r5]
movs r5, 0xC
ldrsh r0, [r0, r5]
str r0, [sp]
movs r0, 0xA0
str r0, [sp, 0x4]
adds r0, r3, 0
movs r3, 0x2
bl sub_80D3E74
ldr r0, _080D0CE8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080D0CCA
ldr r0, _080D0CEC @ =sub_80D0BD4
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D0CCA:
ldr r0, [r4]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D0CE0: .4byte gUnknown_2039A2C
_080D0CE4: .4byte gUnknown_2038700
_080D0CE8: .4byte gPaletteFade
_080D0CEC: .4byte sub_80D0BD4
thumb_func_end sub_80D0C78
thumb_func_start sub_80D0CF0
sub_80D0CF0: @ 80D0CF0
push {lr}
bl sub_80D3DF4
ldr r0, _080D0D18 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
beq _080D0D14
ldr r1, _080D0D1C @ =0x040000d4
ldr r0, _080D0D20 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D0D24 @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D0D14:
pop {r0}
bx r0
.align 2, 0
_080D0D18: .4byte gUnknown_2039A2C
_080D0D1C: .4byte 0x040000d4
_080D0D20: .4byte gUnknown_2038700
_080D0D24: .4byte 0x800000a0
thumb_func_end sub_80D0CF0
thumb_func_start sub_80D0D28
sub_80D0D28: @ 80D0D28
ldr r1, _080D0D48 @ =gUnknown_2038700
ldr r0, _080D0D4C @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
movs r2, 0xF0
lsls r2, 3
adds r1, r2
adds r0, r1
ldrh r1, [r0]
ldr r0, _080D0D50 @ =0x04000014
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
bx lr
.align 2, 0
_080D0D48: .4byte gUnknown_2038700
_080D0D4C: .4byte 0x04000006
_080D0D50: .4byte 0x04000014
thumb_func_end sub_80D0D28
thumb_func_start sub_80D0D54
sub_80D0D54: @ 80D0D54
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D0D84 @ =gUnknown_83FA3D4
ldr r2, _080D0D88 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D0D66:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D0D66
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D0D84: .4byte gUnknown_83FA3D4
_080D0D88: .4byte gTasks
thumb_func_end sub_80D0D54
thumb_func_start sub_80D0D8C
sub_80D0D8C: @ 80D0D8C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _080D0DE0 @ =gUnknown_2039A2C
ldr r1, [r0]
ldr r0, _080D0DE4 @ =gUnknown_2038E80
movs r2, 0x16
ldrsh r1, [r1, r2]
movs r2, 0xA0
lsls r2, 1
bl memset
ldr r0, _080D0DE8 @ =sub_80D0E80
bl SetVBlankCallback
ldr r0, _080D0DEC @ =sub_80D0EB8
bl SetHBlankCallback
movs r0, 0x3
bl EnableInterrupts
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D0DE0: .4byte gUnknown_2039A2C
_080D0DE4: .4byte gUnknown_2038E80
_080D0DE8: .4byte sub_80D0E80
_080D0DEC: .4byte sub_80D0EB8
thumb_func_end sub_80D0D8C
thumb_func_start sub_80D0DF0
sub_80D0DF0: @ 80D0DF0
push {r4-r7,lr}
ldr r1, _080D0E70 @ =gUnknown_2039A2C
ldr r2, [r1]
ldrb r1, [r2]
movs r1, 0
strb r1, [r2]
ldrh r4, [r0, 0xA]
ldrh r2, [r0, 0xC]
lsls r3, r2, 16
asrs r3, 24
movs r5, 0x84
lsls r5, 5
adds r1, r4, r5
strh r1, [r0, 0xA]
movs r1, 0xC0
lsls r1, 1
adds r2, r1
strh r2, [r0, 0xC]
movs r5, 0
lsls r7, r3, 16
_080D0E18:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
ldr r1, _080D0E74 @ =gUnknown_2038700
lsls r2, r5, 1
adds r2, r1
ldr r6, _080D0E70 @ =gUnknown_2039A2C
ldr r1, [r6]
ldrh r1, [r1, 0x16]
adds r0, r1
strh r0, [r2]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
movs r1, 0x84
lsls r1, 5
adds r0, r4, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r5, 0x9F
bls _080D0E18
ldr r0, _080D0E78 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080D0E5E
ldr r0, _080D0E7C @ =sub_80D0D54
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D0E5E:
ldr r0, [r6]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D0E70: .4byte gUnknown_2039A2C
_080D0E74: .4byte gUnknown_2038700
_080D0E78: .4byte gPaletteFade
_080D0E7C: .4byte sub_80D0D54
thumb_func_end sub_80D0DF0
thumb_func_start sub_80D0E80
sub_80D0E80: @ 80D0E80
push {lr}
bl sub_80D3DF4
ldr r0, _080D0EA8 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
beq _080D0EA4
ldr r1, _080D0EAC @ =0x040000d4
ldr r0, _080D0EB0 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D0EB4 @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D0EA4:
pop {r0}
bx r0
.align 2, 0
_080D0EA8: .4byte gUnknown_2039A2C
_080D0EAC: .4byte 0x040000d4
_080D0EB0: .4byte gUnknown_2038700
_080D0EB4: .4byte 0x800000a0
thumb_func_end sub_80D0E80
thumb_func_start sub_80D0EB8
sub_80D0EB8: @ 80D0EB8
ldr r1, _080D0ED8 @ =gUnknown_2038700
ldr r0, _080D0EDC @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
movs r2, 0xF0
lsls r2, 3
adds r1, r2
adds r0, r1
ldrh r1, [r0]
ldr r0, _080D0EE0 @ =0x04000016
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
bx lr
.align 2, 0
_080D0ED8: .4byte gUnknown_2038700
_080D0EDC: .4byte 0x04000006
_080D0EE0: .4byte 0x04000016
thumb_func_end sub_80D0EB8
thumb_func_start sub_80D0EE4
sub_80D0EE4: @ 80D0EE4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D0F14 @ =gUnknown_83FA3DC
ldr r2, _080D0F18 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D0EF6:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D0EF6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D0F14: .4byte gUnknown_83FA3DC
_080D0F18: .4byte gTasks
thumb_func_end sub_80D0EE4
thumb_func_start sub_80D0F1C
sub_80D0F1C: @ 80D0F1C
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
movs r1, 0
movs r0, 0x10
strh r0, [r4, 0xA]
strh r1, [r4, 0xC]
strh r1, [r4, 0x10]
movs r0, 0x80
lsls r0, 7
strh r0, [r4, 0x12]
ldr r0, _080D0FB8 @ =gUnknown_2039A2C
ldr r2, [r0]
movs r0, 0x3F
strh r0, [r2, 0x2]
strh r1, [r2, 0x4]
movs r0, 0xF0
strh r0, [r2, 0x6]
movs r0, 0xA0
strh r0, [r2, 0x8]
ldr r0, _080D0FBC @ =0x00003f41
strh r0, [r2, 0xE]
ldrh r0, [r4, 0xA]
lsls r0, 8
ldrh r1, [r4, 0xC]
orrs r0, r1
strh r0, [r2, 0x10]
movs r1, 0
add r5, sp, 0x4
add r6, sp, 0x8
ldr r3, _080D0FC0 @ =gUnknown_2038E80
movs r2, 0xF0
_080D0F64:
lsls r0, r1, 1
adds r0, r3
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x9F
bls _080D0F64
ldr r0, _080D0FC4 @ =sub_80D1370
bl SetVBlankCallback
adds r0, r5, 0
adds r1, r6, 0
bl sub_80D3E28
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r1, [sp, 0x4]
ldr r2, _080D0FC8 @ =0x01000400
mov r0, sp
bl CpuSet
ldr r0, _080D0FCC @ =gUnknown_83F87A0
ldr r1, [sp, 0x8]
movs r2, 0xB0
lsls r2, 2
bl CpuSet
ldr r0, _080D0FD0 @ =gUnknown_83FA638
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D0FB8: .4byte gUnknown_2039A2C
_080D0FBC: .4byte 0x00003f41
_080D0FC0: .4byte gUnknown_2038E80
_080D0FC4: .4byte sub_80D1370
_080D0FC8: .4byte 0x01000400
_080D0FCC: .4byte gUnknown_83F87A0
_080D0FD0: .4byte gUnknown_83FA638
thumb_func_end sub_80D0F1C
thumb_func_start sub_80D0FD4
sub_80D0FD4: @ 80D0FD4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
adds r7, r0, 0
ldr r5, _080D105C @ =gUnknown_83FA784
add r1, sp, 0xC
add r0, sp, 0x8
bl sub_80D3E28
movs r1, 0
ldr r0, [sp, 0x8]
mov r9, r0
ldr r6, _080D1060 @ =gUnknown_2038700
mov r8, r6
movs r0, 0xF0
lsls r0, 8
mov r12, r0
_080D0FFA:
movs r0, 0
lsls r3, r1, 16
asrs r4, r3, 11
_080D1000:
lsls r2, r0, 16
asrs r2, 16
adds r1, r4, r2
lsls r1, 1
add r1, r9
ldrh r0, [r5]
mov r6, r12
orrs r0, r6
strh r0, [r1]
adds r2, 0x1
lsls r2, 16
adds r5, 0x2
lsrs r0, r2, 16
asrs r2, 16
cmp r2, 0x1D
ble _080D1000
movs r1, 0x80
lsls r1, 9
adds r0, r3, r1
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0x13
ble _080D0FFA
movs r6, 0x10
ldrsh r2, [r7, r6]
movs r1, 0x12
ldrsh r0, [r7, r1]
str r0, [sp]
movs r0, 0xA0
str r0, [sp, 0x4]
mov r0, r8
movs r1, 0
movs r3, 0x84
bl sub_80D3E74
ldrh r0, [r7, 0x8]
adds r0, 0x1
strh r0, [r7, 0x8]
movs r0, 0x1
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D105C: .4byte gUnknown_83FA784
_080D1060: .4byte gUnknown_2038700
thumb_func_end sub_80D0FD4
thumb_func_start sub_80D1064
sub_80D1064: @ 80D1064
push {r4,r5,lr}
sub sp, 0x8
adds r3, r0, 0
ldr r2, _080D10EC @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldrh r1, [r3, 0xE]
movs r4, 0xE
ldrsh r0, [r3, r4]
adds r4, r2, 0
cmp r0, 0
beq _080D108A
subs r0, r1, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
cmp r0, 0
bne _080D1094
_080D108A:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
movs r0, 0x1
strh r0, [r3, 0xE]
_080D1094:
ldr r2, [r4]
ldrh r0, [r3, 0xA]
lsls r0, 8
ldrh r1, [r3, 0xC]
orrs r0, r1
strh r0, [r2, 0x10]
movs r5, 0xC
ldrsh r0, [r3, r5]
cmp r0, 0xF
ble _080D10AE
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
_080D10AE:
ldrh r0, [r3, 0x10]
adds r0, 0xC
strh r0, [r3, 0x10]
ldr r0, _080D10F0 @ =0xfffffe80
adds r1, r0, 0
ldrh r5, [r3, 0x12]
adds r1, r5
strh r1, [r3, 0x12]
ldr r0, _080D10F4 @ =gUnknown_2038700
movs r5, 0x10
ldrsh r2, [r3, r5]
lsls r1, 16
asrs r1, 24
str r1, [sp]
movs r1, 0xA0
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x84
bl sub_80D3E74
ldr r1, [r4]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D10EC: .4byte gUnknown_2039A2C
_080D10F0: .4byte 0xfffffe80
_080D10F4: .4byte gUnknown_2038700
thumb_func_end sub_80D1064
thumb_func_start sub_80D10F8
sub_80D10F8: @ 80D10F8
push {r4,lr}
sub sp, 0x8
adds r3, r0, 0
ldr r2, _080D1158 @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldrh r1, [r3, 0xE]
movs r4, 0xE
ldrsh r0, [r3, r4]
cmp r0, 0
beq _080D111C
subs r0, r1, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
cmp r0, 0
bne _080D1126
_080D111C:
ldrh r0, [r3, 0xA]
subs r0, 0x1
strh r0, [r3, 0xA]
movs r0, 0x2
strh r0, [r3, 0xE]
_080D1126:
ldr r2, [r2]
ldrh r0, [r3, 0xA]
lsls r0, 8
ldrh r1, [r3, 0xC]
orrs r0, r1
strh r0, [r2, 0x10]
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0
bne _080D1140
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
_080D1140:
ldrh r1, [r3, 0x12]
movs r2, 0x12
ldrsh r0, [r3, r2]
cmp r0, 0
ble _080D1160
ldrh r0, [r3, 0x10]
adds r0, 0xC
strh r0, [r3, 0x10]
ldr r4, _080D115C @ =0xfffffe80
adds r0, r1, r4
b _080D1162
.align 2, 0
_080D1158: .4byte gUnknown_2039A2C
_080D115C: .4byte 0xfffffe80
_080D1160:
movs r0, 0
_080D1162:
strh r0, [r3, 0x12]
ldr r0, _080D1194 @ =gUnknown_2038700
movs r1, 0x10
ldrsh r2, [r3, r1]
ldrh r1, [r3, 0x12]
lsls r1, 16
asrs r1, 24
str r1, [sp]
movs r1, 0xA0
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x84
bl sub_80D3E74
ldr r0, _080D1198 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D1194: .4byte gUnknown_2038700
_080D1198: .4byte gUnknown_2039A2C
thumb_func_end sub_80D10F8
thumb_func_start sub_80D119C
sub_80D119C: @ 80D119C
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
ldr r0, _080D11C4 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrb r1, [r0]
movs r2, 0
strb r2, [r0]
ldrh r1, [r4, 0x12]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r0, 0
ble _080D11CC
ldrh r0, [r4, 0x10]
adds r0, 0xC
strh r0, [r4, 0x10]
ldr r2, _080D11C8 @ =0xfffffe80
adds r0, r1, r2
strh r0, [r4, 0x12]
b _080D11CE
.align 2, 0
_080D11C4: .4byte gUnknown_2039A2C
_080D11C8: .4byte 0xfffffe80
_080D11CC:
strh r2, [r4, 0x12]
_080D11CE:
ldr r0, _080D1218 @ =gUnknown_2038700
movs r3, 0x10
ldrsh r2, [r4, r3]
ldrh r1, [r4, 0x12]
lsls r1, 16
asrs r1, 24
str r1, [sp]
movs r5, 0xA0
str r5, [sp, 0x4]
movs r1, 0
movs r3, 0x84
bl sub_80D3E74
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
bgt _080D1202
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x8]
strh r5, [r4, 0xA]
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0xC]
strh r1, [r4, 0xE]
_080D1202:
ldr r0, _080D121C @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D1218: .4byte gUnknown_2038700
_080D121C: .4byte gUnknown_2039A2C
thumb_func_end sub_80D119C
thumb_func_start sub_80D1220
sub_80D1220: @ 80D1220
push {r4,lr}
adds r4, r0, 0
ldr r0, _080D12C4 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrb r1, [r0]
movs r3, 0
strb r3, [r0]
ldrh r2, [r4, 0xC]
movs r0, 0xC
ldrsh r1, [r4, r0]
ldr r0, _080D12C8 @ =0x000007ff
cmp r1, r0
bgt _080D1242
movs r1, 0x80
lsls r1, 1
adds r0, r2, r1
strh r0, [r4, 0xC]
_080D1242:
ldrh r1, [r4, 0xA]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080D125E
ldrh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 24
subs r0, r1, r0
strh r0, [r4, 0xA]
lsls r0, 16
cmp r0, 0
bge _080D125E
strh r3, [r4, 0xA]
_080D125E:
ldr r0, _080D12CC @ =gUnknown_2038700
movs r1, 0xA
ldrsh r3, [r4, r1]
movs r1, 0x78
movs r2, 0x50
bl sub_80D3EF0
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D129A
ldr r1, _080D12D0 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D12D4 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D12D8 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, _080D12DC @ =sub_80D0EE4
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D129A:
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D12AE
adds r0, r1, 0x1
strh r0, [r4, 0xE]
ldr r0, _080D12E0 @ =sub_80D139C
bl SetVBlankCallback
_080D12AE:
ldr r0, _080D12C4 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D12C4: .4byte gUnknown_2039A2C
_080D12C8: .4byte 0x000007ff
_080D12CC: .4byte gUnknown_2038700
_080D12D0: .4byte 0x040000b0
_080D12D4: .4byte 0x0000c5ff
_080D12D8: .4byte 0x00007fff
_080D12DC: .4byte sub_80D0EE4
_080D12E0: .4byte sub_80D139C
thumb_func_end sub_80D1220
thumb_func_start sub_80D12E4
sub_80D12E4: @ 80D12E4
push {r4,lr}
ldr r1, _080D1354 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D1358 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D135C @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3DF4
ldr r4, _080D1360 @ =gUnknown_2039A2C
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
beq _080D131C
ldr r1, _080D1364 @ =0x040000d4
ldr r0, _080D1368 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D136C @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D131C:
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x10]
movs r0, 0x52
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D1354: .4byte 0x040000b0
_080D1358: .4byte 0x0000c5ff
_080D135C: .4byte 0x00007fff
_080D1360: .4byte gUnknown_2039A2C
_080D1364: .4byte 0x040000d4
_080D1368: .4byte gUnknown_2038700
_080D136C: .4byte 0x800000a0
thumb_func_end sub_80D12E4
thumb_func_start sub_80D1370
sub_80D1370: @ 80D1370
push {lr}
bl sub_80D12E4
ldr r1, _080D138C @ =0x040000b0
ldr r0, _080D1390 @ =gUnknown_2038E80
str r0, [r1]
ldr r0, _080D1394 @ =0x04000010
str r0, [r1, 0x4]
ldr r0, _080D1398 @ =0xa2400001
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_080D138C: .4byte 0x040000b0
_080D1390: .4byte gUnknown_2038E80
_080D1394: .4byte 0x04000010
_080D1398: .4byte 0xa2400001
thumb_func_end sub_80D1370
thumb_func_start sub_80D139C
sub_80D139C: @ 80D139C
push {lr}
bl sub_80D12E4
ldr r1, _080D13B8 @ =0x040000b0
ldr r0, _080D13BC @ =gUnknown_2038E80
str r0, [r1]
ldr r0, _080D13C0 @ =0x04000040
str r0, [r1, 0x4]
ldr r0, _080D13C4 @ =0xa2400001
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_080D13B8: .4byte 0x040000b0
_080D13BC: .4byte gUnknown_2038E80
_080D13C0: .4byte 0x04000040
_080D13C4: .4byte 0xa2400001
thumb_func_end sub_80D139C
thumb_func_start sub_80D13C8
sub_80D13C8: @ 80D13C8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D13F8 @ =gUnknown_83FA3F4
ldr r2, _080D13FC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D13DA:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D13DA
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D13F8: .4byte gUnknown_83FA3F4
_080D13FC: .4byte gTasks
thumb_func_end sub_80D13C8
thumb_func_start Phase2_Transition_PokeballsTrail_Func1
Phase2_Transition_PokeballsTrail_Func1: @ 80D1400
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
add r0, sp, 0x4
add r1, sp, 0x8
bl sub_80D3E28
ldr r0, _080D1440 @ =gUnknown_83F8D20
ldr r1, [sp, 0x8]
movs r2, 0x20
bl CpuSet
movs r0, 0
str r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, _080D1444 @ =0x05000200
mov r0, sp
bl CpuSet
ldr r0, _080D1448 @ =gUnknown_83FA638
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
add sp, 0xC
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D1440: .4byte gUnknown_83F8D20
_080D1444: .4byte 0x05000200
_080D1448: .4byte gUnknown_83FA638
thumb_func_end Phase2_Transition_PokeballsTrail_Func1
thumb_func_start Phase2_Transition_PokeballsTrail_Func2
Phase2_Transition_PokeballsTrail_Func2: @ 80D144C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r7, r0, 0
ldr r1, _080D14CC @ =gUnknown_83FA400
mov r0, sp
movs r2, 0x4
bl memcpy
add r4, sp, 0x4
ldr r1, _080D14D0 @ =gUnknown_83FA404
adds r0, r4, 0
movs r2, 0xA
bl memcpy
bl Random
movs r5, 0x1
ands r5, r0
movs r1, 0
mov r8, r4
ldr r6, _080D14D4 @ =gFieldEffectArguments
_080D147A:
lsls r5, 16
asrs r5, 16
lsls r0, r5, 1
add r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
str r0, [r6]
lsls r4, r1, 16
asrs r4, 16
lsls r0, r4, 5
adds r0, 0x10
str r0, [r6, 0x4]
str r5, [r6, 0x8]
lsls r0, r4, 1
add r0, r8
movs r1, 0
ldrsh r0, [r0, r1]
str r0, [r6, 0xC]
movs r0, 0x2D
bl FieldEffectStart
adds r4, 0x1
lsls r4, 16
movs r0, 0x1
eors r5, r0
lsls r5, 16
lsrs r5, 16
lsrs r1, r4, 16
asrs r4, 16
cmp r4, 0x4
ble _080D147A
ldrh r0, [r7, 0x8]
adds r0, 0x1
strh r0, [r7, 0x8]
movs r0, 0
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D14CC: .4byte gUnknown_83FA400
_080D14D0: .4byte gUnknown_83FA404
_080D14D4: .4byte gFieldEffectArguments
thumb_func_end Phase2_Transition_PokeballsTrail_Func2
thumb_func_start Phase2_Transition_PokeballsTrail_Func3
Phase2_Transition_PokeballsTrail_Func3: @ 80D14D8
push {lr}
movs r0, 0x2D
bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne _080D14F8
bl sub_80D3E60
ldr r0, _080D1500 @ =sub_80D13C8
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D14F8:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D1500: .4byte sub_80D13C8
thumb_func_end Phase2_Transition_PokeballsTrail_Func3
thumb_func_start FldEff_Pokeball
FldEff_Pokeball: @ 80D1504
push {r4,r5,lr}
ldr r0, _080D1560 @ =gUnknown_83FA5CC
ldr r5, _080D1564 @ =gFieldEffectArguments
movs r2, 0
ldrsh r1, [r5, r2]
movs r3, 0x4
ldrsh r2, [r5, r3]
movs r3, 0
bl CreateSpriteAtEnd
lsls r0, 24
lsrs r0, 24
ldr r1, _080D1568 @ =gSprites
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r4, r1
ldrb r1, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
strb r0, [r4, 0x5]
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
ldr r0, [r5, 0x8]
strh r0, [r4, 0x2E]
ldr r0, [r5, 0xC]
strh r0, [r4, 0x30]
ldr r0, _080D156C @ =0x0000ffff
strh r0, [r4, 0x32]
adds r0, r4, 0
bl InitSpriteAffineAnim
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StartSpriteAffineAnim
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D1560: .4byte gUnknown_83FA5CC
_080D1564: .4byte gFieldEffectArguments
_080D1568: .4byte gSprites
_080D156C: .4byte 0x0000ffff
thumb_func_end FldEff_Pokeball
thumb_func_start sub_80D1570
sub_80D1570: @ 80D1570
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r1, _080D1590 @ =gUnknown_83FA40E
mov r0, sp
movs r2, 0x4
bl memcpy
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080D1594
subs r0, r1, 0x1
strh r0, [r4, 0x30]
b _080D162A
.align 2, 0
_080D1590: .4byte gUnknown_83FA40E
_080D1594:
ldrh r0, [r4, 0x20]
lsls r1, r0, 16
lsrs r0, r1, 16
cmp r0, 0xF0
bhi _080D1606
asrs r0, r1, 19
lsls r0, 16
ldrh r1, [r4, 0x22]
lsls r1, 16
asrs r1, 19
lsls r1, 16
lsrs r6, r1, 16
lsrs r1, r0, 16
asrs r5, r0, 16
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r5, r0
beq _080D1606
strh r1, [r4, 0x32]
movs r0, 0x8
bl GetGpuReg
lsls r0, 16
lsrs r0, 24
movs r1, 0x1F
ands r0, r1
lsls r0, 11
movs r1, 0xC0
lsls r1, 19
adds r0, r1
lsls r2, r6, 16
asrs r2, 16
subs r1, r2, 0x2
lsls r1, 5
adds r1, r5
lsls r1, 1
adds r1, r0
ldr r6, _080D1634 @ =0x0000f001
adds r3, r6, 0
strh r3, [r1]
subs r1, r2, 0x1
lsls r1, 5
adds r1, r5
lsls r1, 1
adds r1, r0
strh r3, [r1]
lsls r1, r2, 5
adds r1, r5
lsls r1, 1
adds r1, r0
strh r3, [r1]
adds r2, 0x1
lsls r2, 5
adds r2, r5
lsls r2, 1
adds r2, r0
strh r3, [r2]
_080D1606:
movs r1, 0x2E
ldrsh r0, [r4, r1]
lsls r0, 1
add r0, sp
ldrh r0, [r0]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
adds r0, 0xF
lsls r0, 16
movs r1, 0x87
lsls r1, 17
cmp r0, r1
bls _080D162A
adds r0, r4, 0
movs r1, 0x2D
bl FieldEffectStop
_080D162A:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080D1634: .4byte 0x0000f001
thumb_func_end sub_80D1570
thumb_func_start sub_80D1638
sub_80D1638: @ 80D1638
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D1668 @ =gUnknown_83FA414
ldr r2, _080D166C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D164A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D164A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1668: .4byte gUnknown_83FA414
_080D166C: .4byte gTasks
thumb_func_end sub_80D1638
thumb_func_start sub_80D1670
sub_80D1670: @ 80D1670
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
ldr r0, _080D16C4 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2]
movs r0, 0x3F
strh r0, [r1, 0x4]
ldr r0, _080D16C8 @ =0x0000f0f1
strh r0, [r1, 0x6]
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
ldr r3, _080D16CC @ =gUnknown_2038E80
ldr r2, _080D16D0 @ =0x0000f3f4
_080D1696:
lsls r0, r1, 1
adds r0, r3
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x9F
bls _080D1696
ldr r0, _080D16D4 @ =sub_80D1ABC
bl SetVBlankCallback
ldr r0, _080D16C4 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r0, 0x78
strh r0, [r1, 0x2C]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D16C4: .4byte gUnknown_2039A2C
_080D16C8: .4byte 0x0000f0f1
_080D16CC: .4byte gUnknown_2038E80
_080D16D0: .4byte 0x0000f3f4
_080D16D4: .4byte sub_80D1ABC
thumb_func_end sub_80D1670
thumb_func_start sub_80D16D8
sub_80D16D8: @ 80D16D8
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
ldr r2, _080D1760 @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x24
movs r2, 0x2C
ldrsh r3, [r1, r2]
movs r1, 0x1
negs r1, r1
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
ldr r5, _080D1764 @ =gUnknown_2038700
_080D1708:
ldr r4, _080D1760 @ =gUnknown_2039A2C
ldr r0, [r4]
movs r7, 0x2A
ldrsh r3, [r0, r7]
lsls r3, 1
adds r3, r5
ldrh r1, [r0, 0x28]
adds r1, 0x1
movs r7, 0xF0
lsls r7, 7
adds r2, r7, 0
orrs r1, r2
strh r1, [r3]
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
lsls r0, 24
cmp r0, 0
beq _080D1708
ldr r1, [r4]
ldrh r0, [r1, 0x2C]
adds r0, 0x20
strh r0, [r1, 0x2C]
lsls r0, 16
asrs r0, 16
cmp r0, 0xEF
ble _080D174C
movs r0, 0
strh r0, [r1, 0x2E]
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
_080D174C:
ldr r0, [r4]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0xC
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D1760: .4byte gUnknown_2039A2C
_080D1764: .4byte gUnknown_2038700
thumb_func_end sub_80D16D8
thumb_func_start sub_80D1768
sub_80D1768: @ 80D1768
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
mov r8, r0
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
ldr r4, _080D17EC @ =gUnknown_2039A2C
ldr r1, [r4]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
movs r2, 0x2E
ldrsh r1, [r1, r2]
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x78
movs r2, 0x50
movs r3, 0xF0
bl sub_80D4088
mov r9, r4
mov r7, r9
add r5, sp, 0xC
_080D17A6:
movs r1, 0x78
ldr r3, [r7]
ldrh r0, [r3, 0x28]
adds r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
movs r2, 0x2E
ldrsh r0, [r3, r2]
cmp r0, 0x4F
ble _080D17BE
ldrh r1, [r3, 0x28]
movs r4, 0xF0
_080D17BE:
ldr r6, _080D17F0 @ =gUnknown_2038700
movs r0, 0x2A
ldrsh r2, [r3, r0]
lsls r2, 1
adds r2, r6
lsls r1, 16
asrs r1, 8
lsls r0, r4, 16
asrs r4, r0, 16
orrs r4, r1
strh r4, [r2]
ldrb r0, [r5]
cmp r0, 0
bne _080D17F4
adds r0, r3, 0
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
strb r0, [r5]
b _080D17A6
.align 2, 0
_080D17EC: .4byte gUnknown_2039A2C
_080D17F0: .4byte gUnknown_2038700
_080D17F4:
ldr r1, [r7]
ldrh r0, [r1, 0x2E]
adds r0, 0x10
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r2, r0, 16
cmp r2, 0x9F
ble _080D1812
movs r0, 0xF0
strh r0, [r1, 0x2C]
mov r1, r8
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080D183A
_080D1812:
movs r3, 0x2A
ldrsh r0, [r1, r3]
cmp r0, r2
bge _080D183A
adds r3, r4, 0
ldr r5, _080D1858 @ =gUnknown_2039A2C
_080D181E:
ldr r2, [r5]
ldrh r0, [r2, 0x2A]
adds r0, 0x1
strh r0, [r2, 0x2A]
lsls r0, 16
asrs r0, 15
adds r0, r6
strh r3, [r0]
movs r4, 0x2A
ldrsh r1, [r2, r4]
movs r4, 0x2E
ldrsh r0, [r2, r4]
cmp r1, r0
blt _080D181E
_080D183A:
mov r1, r9
ldr r0, [r1]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D1858: .4byte gUnknown_2039A2C
thumb_func_end sub_80D1768
thumb_func_start sub_80D185C
sub_80D185C: @ 80D185C
push {r4-r6,lr}
sub sp, 0xC
adds r6, r0, 0
ldr r2, _080D18DC @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x24
movs r2, 0x2C
ldrsh r3, [r1, r2]
movs r1, 0xA0
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
ldr r5, _080D18E0 @ =gUnknown_2038700
_080D188A:
ldr r4, _080D18DC @ =gUnknown_2039A2C
ldr r0, [r4]
movs r1, 0x2A
ldrsh r3, [r0, r1]
lsls r3, 1
adds r3, r5
ldrh r1, [r0, 0x28]
lsls r1, 8
movs r2, 0xF0
orrs r1, r2
strh r1, [r3]
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
lsls r0, 24
cmp r0, 0
beq _080D188A
ldr r1, [r4]
ldrh r0, [r1, 0x2C]
subs r0, 0x20
strh r0, [r1, 0x2C]
lsls r0, 16
cmp r0, 0
bgt _080D18C8
movs r0, 0xA0
strh r0, [r1, 0x2E]
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
_080D18C8:
ldr r0, [r4]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D18DC: .4byte gUnknown_2039A2C
_080D18E0: .4byte gUnknown_2038700
thumb_func_end sub_80D185C
thumb_func_start sub_80D18E4
sub_80D18E4: @ 80D18E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r9, r0
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
ldr r4, _080D196C @ =gUnknown_2039A2C
ldr r1, [r4]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
movs r2, 0x2E
ldrsh r1, [r1, r2]
str r1, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x78
movs r2, 0x50
movs r3, 0
bl sub_80D4088
ldr r7, _080D1970 @ =gUnknown_2038700
mov r10, r7
ldr r0, _080D196C @ =gUnknown_2039A2C
mov r8, r0
add r6, sp, 0xC
_080D1928:
mov r1, r8
ldr r4, [r1]
movs r2, 0x2A
ldrsh r0, [r4, r2]
lsls r0, 1
mov r7, r10
adds r5, r0, r7
ldrb r1, [r5]
ldrh r2, [r4, 0x28]
adds r3, r2, 0
movs r7, 0x2E
ldrsh r0, [r4, r7]
cmp r0, 0x50
bgt _080D1948
movs r2, 0x78
adds r1, r3, 0
_080D1948:
lsls r0, r2, 16
asrs r0, 8
lsls r1, 16
asrs r1, 16
orrs r1, r0
movs r7, 0
strh r1, [r5]
ldrb r0, [r6]
cmp r0, 0
bne _080D1974
adds r0, r4, 0
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
strb r0, [r6]
b _080D1928
.align 2, 0
_080D196C: .4byte gUnknown_2039A2C
_080D1970: .4byte gUnknown_2038700
_080D1974:
mov r0, r8
ldr r2, [r0]
ldrh r0, [r2, 0x2E]
subs r0, 0x10
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r3, r0, 16
cmp r3, 0
bgt _080D1992
strh r7, [r2, 0x2C]
mov r1, r9
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080D19BC
_080D1992:
movs r4, 0x2A
ldrsh r0, [r2, r4]
cmp r0, r3
ble _080D19BC
ldr r6, _080D19DC @ =gUnknown_2038700
adds r3, r1, 0
ldr r5, _080D19E0 @ =gUnknown_2039A2C
_080D19A0:
ldr r2, [r5]
ldrh r0, [r2, 0x2A]
subs r0, 0x1
strh r0, [r2, 0x2A]
lsls r0, 16
asrs r0, 15
adds r0, r6
strh r3, [r0]
movs r7, 0x2A
ldrsh r1, [r2, r7]
movs r4, 0x2E
ldrsh r0, [r2, r4]
cmp r1, r0
bgt _080D19A0
_080D19BC:
ldr r7, _080D19E0 @ =gUnknown_2039A2C
ldr r0, [r7]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D19DC: .4byte gUnknown_2038700
_080D19E0: .4byte gUnknown_2039A2C
thumb_func_end sub_80D18E4
thumb_func_start sub_80D19E4
sub_80D19E4: @ 80D19E4
push {r4-r7,lr}
sub sp, 0xC
adds r7, r0, 0
ldr r1, _080D1A74 @ =gUnknown_2039A2C
ldr r0, [r1]
ldrb r2, [r0]
movs r2, 0
strb r2, [r0]
ldr r1, [r1]
adds r0, r1, 0
adds r0, 0x24
movs r4, 0x2C
ldrsh r3, [r1, r4]
str r2, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
ldr r6, _080D1A78 @ =gUnknown_2038700
_080D1A10:
movs r2, 0x78
ldr r5, _080D1A74 @ =gUnknown_2039A2C
ldr r3, [r5]
ldrh r4, [r3, 0x28]
movs r1, 0x28
ldrsh r0, [r3, r1]
cmp r0, 0x77
ble _080D1A24
movs r2, 0
movs r4, 0xF0
_080D1A24:
movs r0, 0x2A
ldrsh r1, [r3, r0]
lsls r1, 1
adds r1, r6
lsls r2, 8
lsls r0, r4, 16
asrs r0, 16
orrs r0, r2
strh r0, [r1]
adds r0, r3, 0
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
lsls r0, 24
cmp r0, 0
beq _080D1A10
ldr r0, [r5]
ldrh r1, [r0, 0x2C]
adds r1, 0x20
strh r1, [r0, 0x2C]
movs r1, 0x28
ldrsh r0, [r0, r1]
cmp r0, 0x78
ble _080D1A5E
ldrh r0, [r7, 0x8]
adds r0, 0x1
strh r0, [r7, 0x8]
_080D1A5E:
ldr r0, [r5]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
add sp, 0xC
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D1A74: .4byte gUnknown_2039A2C
_080D1A78: .4byte gUnknown_2038700
thumb_func_end sub_80D19E4
thumb_func_start sub_80D1A7C
sub_80D1A7C: @ 80D1A7C
push {lr}
ldr r1, _080D1AAC @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D1AB0 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D1AB4 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, _080D1AB8 @ =sub_80D1638
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D1AAC: .4byte 0x040000b0
_080D1AB0: .4byte 0x0000c5ff
_080D1AB4: .4byte 0x00007fff
_080D1AB8: .4byte sub_80D1638
thumb_func_end sub_80D1A7C
thumb_func_start sub_80D1ABC
sub_80D1ABC: @ 80D1ABC
push {r4,r5,lr}
ldr r5, _080D1B34 @ =0x040000b0
ldrh r1, [r5, 0xA]
ldr r0, _080D1B38 @ =0x0000c5ff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r1, [r5, 0xA]
ldr r0, _080D1B3C @ =0x00007fff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xA]
bl sub_80D3DF4
ldr r4, _080D1B40 @ =gUnknown_2039A2C
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
beq _080D1AF4
ldr r1, _080D1B44 @ =0x040000d4
ldr r0, _080D1B48 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D1B4C @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D1AF4:
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r4, _080D1B48 @ =gUnknown_2038700
movs r0, 0xF0
lsls r0, 3
adds r4, r0
ldrh r1, [r4]
movs r0, 0x40
bl SetGpuReg
str r4, [r5]
ldr r0, _080D1B50 @ =0x04000040
str r0, [r5, 0x4]
ldr r0, _080D1B54 @ =0xa2400001
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1B34: .4byte 0x040000b0
_080D1B38: .4byte 0x0000c5ff
_080D1B3C: .4byte 0x00007fff
_080D1B40: .4byte gUnknown_2039A2C
_080D1B44: .4byte 0x040000d4
_080D1B48: .4byte gUnknown_2038700
_080D1B4C: .4byte 0x800000a0
_080D1B50: .4byte 0x04000040
_080D1B54: .4byte 0xa2400001
thumb_func_end sub_80D1ABC
thumb_func_start sub_80D1B58
sub_80D1B58: @ 80D1B58
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D1B88 @ =gUnknown_83FA430
ldr r2, _080D1B8C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D1B6A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D1B6A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1B88: .4byte gUnknown_83FA430
_080D1B8C: .4byte gTasks
thumb_func_end sub_80D1B58
thumb_func_start sub_80D1B90
sub_80D1B90: @ 80D1B90
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
movs r2, 0
ldr r4, _080D1BD8 @ =gUnknown_2038E80
ldr r3, _080D1BDC @ =gUnknown_2039A2C
_080D1BA2:
lsls r1, r2, 1
adds r1, r4
ldr r0, [r3]
ldrh r0, [r0, 0x16]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x9F
bls _080D1BA2
ldr r0, _080D1BE0 @ =sub_80D1CC8
bl SetVBlankCallback
ldr r0, _080D1BE4 @ =sub_80D1D00
bl SetHBlankCallback
movs r0, 0x2
bl EnableInterrupts
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D1BD8: .4byte gUnknown_2038E80
_080D1BDC: .4byte gUnknown_2039A2C
_080D1BE0: .4byte sub_80D1CC8
_080D1BE4: .4byte sub_80D1D00
thumb_func_end sub_80D1B90
thumb_func_start sub_80D1BE8
sub_80D1BE8: @ 80D1BE8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r6, r0, 0
ldr r0, _080D1CB4 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldrh r2, [r6, 0xC]
lsls r1, r2, 16
asrs r0, r1, 24
lsls r0, 16
lsrs r3, r0, 16
ldrh r4, [r6, 0xA]
movs r0, 0xC0
lsls r0, 1
mov r8, r0
movs r5, 0x80
lsls r5, 3
adds r0, r4, r5
strh r0, [r6, 0xA]
ldr r0, _080D1CB8 @ =0x1fff0000
cmp r1, r0
bgt _080D1C24
movs r1, 0xC0
lsls r1, 1
adds r0, r2, r1
strh r0, [r6, 0xC]
_080D1C24:
movs r5, 0
lsls r7, r3, 16
_080D1C28:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
ldr r1, _080D1CBC @ =gUnknown_2038700
lsls r2, r5, 1
adds r2, r1
ldr r1, _080D1CB4 @ =gUnknown_2039A2C
ldr r1, [r1]
ldrh r1, [r1, 0x16]
adds r0, r1
strh r0, [r2]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
mov r1, r8
adds r0, r4, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r5, 0x9F
bls _080D1C28
ldrh r0, [r6, 0xE]
adds r0, 0x1
strh r0, [r6, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x29
bne _080D1C78
ldrh r0, [r6, 0x10]
adds r0, 0x1
strh r0, [r6, 0x10]
movs r0, 0x1
negs r0, r0
movs r1, 0x8
negs r1, r1
movs r2, 0
str r2, [sp]
movs r3, 0x10
bl BeginNormalPaletteFade
_080D1C78:
movs r5, 0x10
ldrsh r0, [r6, r5]
cmp r0, 0
beq _080D1C9A
ldr r0, _080D1CC0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080D1C9A
ldr r0, _080D1CC4 @ =sub_80D1B58
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D1C9A:
ldr r0, _080D1CB4 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D1CB4: .4byte gUnknown_2039A2C
_080D1CB8: .4byte 0x1fff0000
_080D1CBC: .4byte gUnknown_2038700
_080D1CC0: .4byte gPaletteFade
_080D1CC4: .4byte sub_80D1B58
thumb_func_end sub_80D1BE8
thumb_func_start sub_80D1CC8
sub_80D1CC8: @ 80D1CC8
push {lr}
bl sub_80D3DF4
ldr r0, _080D1CF0 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
beq _080D1CEC
ldr r1, _080D1CF4 @ =0x040000d4
ldr r0, _080D1CF8 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D1CFC @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D1CEC:
pop {r0}
bx r0
.align 2, 0
_080D1CF0: .4byte gUnknown_2039A2C
_080D1CF4: .4byte 0x040000d4
_080D1CF8: .4byte gUnknown_2038700
_080D1CFC: .4byte 0x800000a0
thumb_func_end sub_80D1CC8
thumb_func_start sub_80D1D00
sub_80D1D00: @ 80D1D00
ldr r1, _080D1D20 @ =gUnknown_2038700
ldr r0, _080D1D24 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
movs r2, 0xF0
lsls r2, 3
adds r1, r2
adds r0, r1
ldrh r1, [r0]
ldr r0, _080D1D28 @ =0x04000016
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
bx lr
.align 2, 0
_080D1D20: .4byte gUnknown_2038700
_080D1D24: .4byte 0x04000006
_080D1D28: .4byte 0x04000016
thumb_func_end sub_80D1D00
thumb_func_start sub_80D1D2C
sub_80D1D2C: @ 80D1D2C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D1D5C @ =gUnknown_83FA438
ldr r2, _080D1D60 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D1D3E:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D1D3E
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1D5C: .4byte gUnknown_83FA438
_080D1D60: .4byte gTasks
thumb_func_end sub_80D1D2C
thumb_func_start sub_80D1D64
sub_80D1D64: @ 80D1D64
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
ldr r0, _080D1DB0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
movs r0, 0x3F
strh r0, [r1, 0x2]
strh r2, [r1, 0x4]
movs r0, 0xF0
strh r0, [r1, 0x6]
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
ldr r3, _080D1DB4 @ =gUnknown_2038E80
movs r2, 0xF2
_080D1D8A:
lsls r0, r1, 1
adds r0, r3
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9F
bls _080D1D8A
ldr r0, _080D1DB8 @ =sub_80D1E98
bl SetVBlankCallback
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D1DB0: .4byte gUnknown_2039A2C
_080D1DB4: .4byte gUnknown_2038E80
_080D1DB8: .4byte sub_80D1E98
thumb_func_end sub_80D1D64
thumb_func_start sub_80D1DBC
sub_80D1DBC: @ 80D1DBC
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
ldr r0, _080D1E50 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r7, _080D1E54 @ =gUnknown_2038700
ldrh r0, [r4, 0xC]
ldrb r5, [r4, 0xC]
adds r0, 0x10
strh r0, [r4, 0xC]
ldrh r0, [r4, 0xA]
adds r0, 0x8
strh r0, [r4, 0xA]
movs r6, 0
movs r0, 0x1
mov r8, r0
_080D1DE4:
adds r0, r5, 0
movs r1, 0x28
bl Sin
ldrh r1, [r4, 0xA]
adds r0, r1
lsls r0, 16
lsrs r1, r0, 16
cmp r0, 0
bge _080D1DFA
movs r1, 0
_080D1DFA:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xF0
ble _080D1E04
movs r1, 0xF0
_080D1E04:
lsls r0, r1, 16
asrs r0, 16
lsls r1, r0, 8
movs r2, 0xF1
orrs r1, r2
strh r1, [r7]
cmp r0, 0xEF
bgt _080D1E18
movs r0, 0
mov r8, r0
_080D1E18:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
adds r0, r5, 0x4
lsls r0, 24
lsrs r5, r0, 24
adds r7, 0x2
cmp r6, 0x9F
bls _080D1DE4
mov r1, r8
cmp r1, 0
beq _080D1E36
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D1E36:
ldr r0, _080D1E50 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D1E50: .4byte gUnknown_2039A2C
_080D1E54: .4byte gUnknown_2038700
thumb_func_end sub_80D1DBC
thumb_func_start sub_80D1E58
sub_80D1E58: @ 80D1E58
push {lr}
ldr r1, _080D1E88 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D1E8C @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D1E90 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, _080D1E94 @ =sub_80D1D2C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D1E88: .4byte 0x040000b0
_080D1E8C: .4byte 0x0000c5ff
_080D1E90: .4byte 0x00007fff
_080D1E94: .4byte sub_80D1D2C
thumb_func_end sub_80D1E58
thumb_func_start sub_80D1E98
sub_80D1E98: @ 80D1E98
push {r4,r5,lr}
ldr r4, _080D1F04 @ =0x040000b0
ldrh r1, [r4, 0xA]
ldr r0, _080D1F08 @ =0x0000c5ff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r1, [r4, 0xA]
ldr r0, _080D1F0C @ =0x00007fff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_80D3DF4
ldr r5, _080D1F10 @ =gUnknown_2039A2C
ldr r0, [r5]
ldrb r0, [r0]
cmp r0, 0
beq _080D1ED0
ldr r1, _080D1F14 @ =0x040000d4
ldr r0, _080D1F18 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D1F1C @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D1ED0:
ldr r0, [r5]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r5]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r5]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r0, _080D1F20 @ =gUnknown_2038E80
str r0, [r4]
ldr r0, _080D1F24 @ =0x04000040
str r0, [r4, 0x4]
ldr r0, _080D1F28 @ =0xa2400001
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1F04: .4byte 0x040000b0
_080D1F08: .4byte 0x0000c5ff
_080D1F0C: .4byte 0x00007fff
_080D1F10: .4byte gUnknown_2039A2C
_080D1F14: .4byte 0x040000d4
_080D1F18: .4byte gUnknown_2038700
_080D1F1C: .4byte 0x800000a0
_080D1F20: .4byte gUnknown_2038E80
_080D1F24: .4byte 0x04000040
_080D1F28: .4byte 0xa2400001
thumb_func_end sub_80D1E98
thumb_func_start sub_80D1F2C
sub_80D1F2C: @ 80D1F2C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D1F5C @ =gUnknown_83FA464
ldr r2, _080D1F60 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D1F3E:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D1F3E
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D1F5C: .4byte gUnknown_83FA464
_080D1F60: .4byte gTasks
thumb_func_end sub_80D1F2C
thumb_func_start sub_80D1F64
sub_80D1F64: @ 80D1F64
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 16
lsrs r0, 16
str r0, [sp]
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x4]
movs r0, 0
mov r10, r0
movs r1, 0xA0
lsls r1, 17
ldr r4, _080D1FD8 @ =gUnknown_2038E80
ldr r3, _080D1FDC @ =0x000003bf
movs r2, 0x78
_080D1F8E:
asrs r0, r1, 16
lsls r1, r0, 1
adds r1, r4
strh r2, [r1]
adds r0, 0x1
lsls r1, r0, 16
asrs r0, r1, 16
cmp r0, r3
ble _080D1F8E
lsls r0, r5, 16
movs r1, 0
mov r9, r1
str r0, [sp, 0xC]
cmp r0, 0
bgt _080D1FAE
b _080D221A
_080D1FAE:
mov r3, r10
lsrs r2, r3, 3
ldr r4, [sp]
adds r0, r2, r4
lsls r0, 16
lsrs r3, r0, 16
mov r0, r10
adds r0, 0x1
asrs r1, r0, 3
str r0, [sp, 0x8]
cmp r2, r1
beq _080D1FE0
lsls r1, r3, 16
movs r6, 0x80
lsls r6, 9
adds r0, r1, r6
lsrs r0, 16
mov r8, r0
adds r0, r1, 0
b _080D1FE6
.align 2, 0
_080D1FD8: .4byte gUnknown_2038E80
_080D1FDC: .4byte 0x000003bf
_080D1FE0:
lsls r0, r3, 16
lsrs r1, r0, 16
mov r8, r1
_080D1FE6:
asrs r4, r0, 16
mov r0, r10
adds r1, r4, 0
bl Sin
movs r5, 0x50
subs r0, r5, r0
lsls r0, 16
lsrs r2, r0, 16
mov r0, r10
adds r1, r4, 0
str r2, [sp, 0x10]
bl Cos
adds r0, 0x78
lsls r0, 16
lsrs r7, r0, 16
ldr r6, [sp, 0x8]
mov r3, r8
lsls r4, r3, 16
asrs r4, 16
adds r0, r6, 0
adds r1, r4, 0
bl Sin
subs r5, r0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
adds r1, r4, 0
bl Cos
adds r0, 0x78
lsls r0, 16
lsrs r3, r0, 16
ldr r2, [sp, 0x10]
lsls r0, r2, 16
asrs r1, r0, 16
cmp r1, 0
bge _080D203E
lsls r0, r5, 16
cmp r0, 0
bge _080D203E
b _080D21F8
_080D203E:
cmp r1, 0x9F
ble _080D204C
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0x9F
ble _080D204C
b _080D21F8
_080D204C:
cmp r1, 0
bge _080D2052
movs r2, 0
_080D2052:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x9F
ble _080D205C
movs r2, 0x9F
_080D205C:
lsls r0, r7, 16
cmp r0, 0
bge _080D2064
movs r7, 0
_080D2064:
lsls r0, r7, 16
asrs r0, 16
cmp r0, 0xFF
ble _080D206E
movs r7, 0xFF
_080D206E:
lsls r0, r5, 16
cmp r0, 0
bge _080D2076
movs r5, 0
_080D2076:
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0x9F
ble _080D2080
movs r5, 0x9F
_080D2080:
lsls r0, r3, 16
cmp r0, 0
bge _080D2088
movs r3, 0
_080D2088:
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0xFF
ble _080D2092
movs r3, 0xFF
_080D2092:
lsls r0, r5, 16
asrs r0, 16
lsls r1, r2, 16
asrs r2, r1, 16
subs r0, r2
lsls r0, 16
lsrs r5, r0, 16
mov r0, r10
subs r0, 0x40
lsls r0, 24
adds r6, r1, 0
cmp r0, 0
blt _080D2158
movs r4, 0xA0
lsls r4, 1
adds r0, r2, r4
lsls r0, 1
ldr r1, _080D20E8 @ =gUnknown_2038E80
adds r0, r1
strh r7, [r0]
lsls r0, r5, 16
adds r4, r0, 0
cmp r4, 0
bne _080D20C4
b _080D21F8
_080D20C4:
lsls r0, r3, 16
asrs r0, 16
lsls r1, r7, 16
asrs r2, r1, 16
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
asrs r0, 16
mov r8, r0
movs r0, 0x1
negs r0, r0
cmp r8, r0
bge _080D20EC
cmp r2, 0x1
ble _080D20EC
subs r0, r2, 0x1
b _080D20FC
.align 2, 0
_080D20E8: .4byte gUnknown_2038E80
_080D20EC:
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0x1
ble _080D2100
asrs r0, r1, 16
cmp r0, 0xFE
bgt _080D2100
adds r0, 0x1
_080D20FC:
lsls r0, 16
lsrs r7, r0, 16
_080D2100:
adds r0, r4, 0
asrs r1, r0, 16
cmp r1, 0
bge _080D212C
asrs r2, r6, 16
ldr r3, _080D2128 @ =gUnknown_2038E80
_080D210C:
asrs r1, r0, 16
adds r0, r2, r1
movs r4, 0xA0
lsls r4, 1
adds r0, r4
lsls r0, 1
adds r0, r3
strh r7, [r0]
adds r1, 0x1
lsls r0, r1, 16
cmp r0, 0
blt _080D210C
b _080D21F8
.align 2, 0
_080D2128: .4byte gUnknown_2038E80
_080D212C:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
ldr r3, _080D2154 @ =gUnknown_2038E80
_080D2134:
lsls r1, r5, 16
asrs r1, 16
adds r0, r2, r1
movs r6, 0xA0
lsls r6, 1
adds r0, r6
lsls r0, 1
adds r0, r3
strh r7, [r0]
subs r1, 0x1
lsls r1, 16
lsrs r5, r1, 16
cmp r1, 0
bgt _080D2134
b _080D21F8
.align 2, 0
_080D2154: .4byte gUnknown_2038E80
_080D2158:
movs r1, 0xF0
lsls r1, 1
adds r0, r2, r1
lsls r0, 1
ldr r2, _080D2190 @ =gUnknown_2038E80
adds r0, r2
strh r7, [r0]
lsls r0, r5, 16
adds r4, r0, 0
cmp r4, 0
beq _080D21F8
lsls r0, r3, 16
asrs r0, 16
lsls r1, r7, 16
asrs r2, r1, 16
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
asrs r0, 16
mov r8, r0
movs r0, 0x1
negs r0, r0
cmp r8, r0
bge _080D2194
cmp r2, 0x1
ble _080D2194
subs r0, r2, 0x1
b _080D21A4
.align 2, 0
_080D2190: .4byte gUnknown_2038E80
_080D2194:
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0x1
ble _080D21A8
asrs r0, r1, 16
cmp r0, 0xFE
bgt _080D21A8
adds r0, 0x1
_080D21A4:
lsls r0, 16
lsrs r7, r0, 16
_080D21A8:
adds r0, r4, 0
asrs r1, r0, 16
cmp r1, 0
bge _080D21D4
asrs r2, r6, 16
ldr r3, _080D21D0 @ =gUnknown_2038E80
_080D21B4:
asrs r1, r0, 16
adds r0, r2, r1
movs r4, 0xF0
lsls r4, 1
adds r0, r4
lsls r0, 1
adds r0, r3
strh r7, [r0]
adds r1, 0x1
lsls r0, r1, 16
cmp r0, 0
blt _080D21B4
b _080D21F8
.align 2, 0
_080D21D0: .4byte gUnknown_2038E80
_080D21D4:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
ldr r3, _080D2270 @ =gUnknown_2038E80
_080D21DC:
lsls r1, r5, 16
asrs r1, 16
adds r0, r2, r1
movs r6, 0xF0
lsls r6, 1
adds r0, r6
lsls r0, 1
adds r0, r3
strh r7, [r0]
subs r1, 0x1
lsls r1, 16
lsrs r5, r1, 16
cmp r1, 0
bgt _080D21DC
_080D21F8:
mov r1, r9
lsls r0, r1, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
ldr r3, [sp, 0x8]
lsls r1, r3, 24
lsrs r1, 24
mov r10, r1
lsrs r4, r0, 16
mov r9, r4
asrs r0, 16
ldr r6, [sp, 0xC]
asrs r1, r6, 12
cmp r0, r1
bge _080D221A
b _080D1FAE
_080D221A:
ldr r0, [sp, 0x4]
cmp r0, 0
beq _080D222C
movs r0, 0xC0
lsls r0, 10
ldr r1, [sp, 0xC]
ands r0, r1
cmp r0, 0
bne _080D2274
_080D222C:
movs r2, 0
mov r9, r2
ldr r4, _080D2270 @ =gUnknown_2038E80
movs r5, 0xA0
lsls r5, 1
_080D2236:
mov r3, r9
lsls r1, r3, 16
asrs r1, 16
lsls r3, r1, 1
ldr r6, [sp, 0x4]
adds r3, r6
lsls r3, 1
adds r3, r4
adds r0, r1, r5
lsls r0, 1
adds r0, r4
ldrh r2, [r0]
lsls r2, 8
movs r6, 0xF0
lsls r6, 1
adds r0, r1, r6
lsls r0, 1
adds r0, r4
ldrh r0, [r0]
orrs r2, r0
strh r2, [r3]
adds r1, 0x1
lsls r1, 16
lsrs r0, r1, 16
mov r9, r0
asrs r1, 16
cmp r1, 0x9F
ble _080D2236
b _080D251C
.align 2, 0
_080D2270: .4byte gUnknown_2038E80
_080D2274:
ldr r1, [sp, 0xC]
asrs r4, r1, 16
lsls r0, r4, 20
asrs r0, 16
lsls r5, r4, 1
ldr r2, [sp]
lsls r1, r2, 16
asrs r1, 16
adds r1, r5
lsls r1, 16
asrs r1, 16
bl Sin
lsls r0, 16
lsrs r2, r0, 16
cmp r4, 0
bge _080D2298
adds r4, 0x3
_080D2298:
asrs r0, r4, 2
cmp r0, 0x1
beq _080D234C
cmp r0, 0x1
bgt _080D22A8
cmp r0, 0
beq _080D22B6
b _080D24DA
_080D22A8:
cmp r0, 0x2
bne _080D22AE
b _080D23CC
_080D22AE:
cmp r0, 0x3
bne _080D22B4
b _080D2466
_080D22B4:
b _080D24DA
_080D22B6:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x50
ble _080D22C0
movs r2, 0x50
_080D22C0:
mov r9, r2
lsls r1, r2, 16
cmp r1, 0
bgt _080D22CA
b _080D24DA
_080D22CA:
ldr r0, _080D2320 @ =gUnknown_83FA444
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
ldr r6, _080D2324 @ =gUnknown_2038E80
_080D22D4:
ldr r0, _080D2328 @ =gUnknown_2039A2C
ldr r5, [r0]
asrs r2, r1, 16
adds r0, r2, 0
muls r0, r4
asrs r0, 8
adds r0, 0x78
lsls r1, r0, 16
lsrs r7, r1, 16
strh r0, [r5, 0x28]
lsls r1, r7, 16
lsrs r0, r1, 16
cmp r0, 0xFF
bhi _080D2334
movs r3, 0xC8
lsls r3, 1
adds r0, r3, 0
subs r0, r2
strh r0, [r5, 0x14]
adds r0, r3, 0
subs r0, r2
lsls r0, 1
adds r3, r0, r6
ldrh r0, [r3]
strh r0, [r5, 0x38]
movs r0, 0x8C
lsls r0, 2
subs r0, r2
lsls r0, 1
adds r2, r0, r6
ldrh r0, [r2]
asrs r1, 16
cmp r0, r1
bge _080D232C
movs r0, 0x78
strh r0, [r2]
b _080D2334
.align 2, 0
_080D2320: .4byte gUnknown_83FA444
_080D2324: .4byte gUnknown_2038E80
_080D2328: .4byte gUnknown_2039A2C
_080D232C:
ldrh r0, [r3]
cmp r0, r1
bge _080D2334
strh r7, [r3]
_080D2334:
mov r1, r9
lsls r0, r1, 16
ldr r2, _080D2348 @ =0xffff0000
adds r0, r2
lsrs r0, 16
mov r9, r0
lsls r1, r0, 16
cmp r1, 0
bgt _080D22D4
b _080D24DA
.align 2, 0
_080D2348: .4byte 0xffff0000
_080D234C:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x50
ble _080D2356
movs r2, 0x50
_080D2356:
mov r9, r2
lsls r1, r2, 16
cmp r1, 0
bgt _080D2360
b _080D24DA
_080D2360:
ldr r0, _080D23BC @ =gUnknown_83FA444
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
ldr r6, _080D23C0 @ =gUnknown_2038E80
_080D236A:
ldr r0, _080D23C4 @ =gUnknown_2039A2C
ldr r3, [r0]
asrs r2, r1, 16
adds r0, r2, 0
muls r0, r4
asrs r0, 8
adds r0, 0x78
lsls r1, r0, 16
lsrs r7, r1, 16
strh r0, [r3, 0x28]
lsls r5, r7, 16
lsrs r0, r5, 16
cmp r0, 0xFF
bhi _080D23A6
movs r1, 0xC8
lsls r1, 1
adds r0, r1, 0
subs r0, r2
strh r0, [r3, 0x14]
adds r0, r1, 0
subs r0, r2
lsls r0, 1
adds r2, r0, r6
ldrh r0, [r2]
strh r0, [r3, 0x38]
ldrh r1, [r2]
asrs r0, r5, 16
cmp r1, r0
bge _080D23A6
strh r7, [r2]
_080D23A6:
mov r2, r9
lsls r0, r2, 16
ldr r3, _080D23C8 @ =0xffff0000
adds r0, r3
lsrs r0, 16
mov r9, r0
lsls r1, r0, 16
cmp r1, 0
bgt _080D236A
b _080D24DA
.align 2, 0
_080D23BC: .4byte gUnknown_83FA444
_080D23C0: .4byte gUnknown_2038E80
_080D23C4: .4byte gUnknown_2039A2C
_080D23C8: .4byte 0xffff0000
_080D23CC:
lsls r0, r2, 16
asrs r0, 16
movs r1, 0x4F
negs r1, r1
cmp r0, r1
bge _080D23DA
ldr r2, _080D2438 @ =0x0000ffb1
_080D23DA:
mov r9, r2
lsls r1, r2, 16
cmp r1, 0
bgt _080D24DA
ldr r0, _080D243C @ =gUnknown_83FA444
adds r0, r5, r0
movs r6, 0
ldrsh r4, [r0, r6]
ldr r6, _080D2440 @ =gUnknown_2038E80
_080D23EC:
ldr r0, _080D2444 @ =gUnknown_2039A2C
ldr r5, [r0]
asrs r2, r1, 16
adds r0, r2, 0
muls r0, r4
asrs r0, 8
adds r0, 0x78
lsls r1, r0, 16
lsrs r7, r1, 16
strh r0, [r5, 0x28]
lsls r1, r7, 16
lsrs r0, r1, 16
cmp r0, 0xFF
bhi _080D2450
movs r3, 0x8C
lsls r3, 2
adds r0, r3, 0
subs r0, r2
strh r0, [r5, 0x14]
adds r0, r3, 0
subs r0, r2
lsls r0, 1
adds r3, r0, r6
ldrh r0, [r3]
strh r0, [r5, 0x38]
movs r0, 0xC8
lsls r0, 1
subs r0, r2
lsls r0, 1
adds r2, r0, r6
ldrh r0, [r2]
asrs r1, 16
cmp r0, r1
blt _080D2448
movs r0, 0x78
strh r0, [r2]
b _080D2450
.align 2, 0
_080D2438: .4byte 0x0000ffb1
_080D243C: .4byte gUnknown_83FA444
_080D2440: .4byte gUnknown_2038E80
_080D2444: .4byte gUnknown_2039A2C
_080D2448:
ldrh r0, [r3]
cmp r0, r1
ble _080D2450
strh r7, [r3]
_080D2450:
mov r1, r9
lsls r0, r1, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
lsrs r0, 16
mov r9, r0
lsls r1, r0, 16
cmp r1, 0
ble _080D23EC
b _080D24DA
_080D2466:
lsls r0, r2, 16
asrs r0, 16
movs r1, 0x4F
negs r1, r1
cmp r0, r1
bge _080D2474
ldr r2, _080D252C @ =0x0000ffb1
_080D2474:
mov r9, r2
lsls r1, r2, 16
cmp r1, 0
bgt _080D24DA
ldr r0, _080D2530 @ =gUnknown_83FA444
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
ldr r6, _080D2534 @ =gUnknown_2039A2C
mov r8, r6
ldr r6, _080D2538 @ =gUnknown_2038E80
_080D248A:
mov r0, r8
ldr r3, [r0]
asrs r2, r1, 16
adds r0, r2, 0
muls r0, r4
asrs r0, 8
adds r0, 0x78
lsls r1, r0, 16
lsrs r7, r1, 16
strh r0, [r3, 0x28]
lsls r5, r7, 16
lsrs r0, r5, 16
cmp r0, 0xFF
bhi _080D24C6
movs r1, 0x8C
lsls r1, 2
adds r0, r1, 0
subs r0, r2
strh r0, [r3, 0x14]
adds r0, r1, 0
subs r0, r2
lsls r0, 1
adds r2, r0, r6
ldrh r0, [r2]
strh r0, [r3, 0x38]
ldrh r1, [r2]
asrs r0, r5, 16
cmp r1, r0
ble _080D24C6
strh r7, [r2]
_080D24C6:
mov r2, r9
lsls r0, r2, 16
movs r3, 0x80
lsls r3, 9
adds r0, r3
lsrs r0, 16
mov r9, r0
lsls r1, r0, 16
cmp r1, 0
ble _080D248A
_080D24DA:
movs r4, 0
mov r9, r4
ldr r4, _080D2538 @ =gUnknown_2038E80
movs r5, 0xA0
lsls r5, 1
_080D24E4:
mov r6, r9
lsls r1, r6, 16
asrs r1, 16
lsls r3, r1, 1
ldr r0, [sp, 0x4]
adds r3, r0
lsls r3, 1
adds r3, r4
adds r0, r1, r5
lsls r0, 1
adds r0, r4
ldrh r2, [r0]
lsls r2, 8
movs r6, 0xF0
lsls r6, 1
adds r0, r1, r6
lsls r0, 1
adds r0, r4
ldrh r0, [r0]
orrs r2, r0
strh r2, [r3]
adds r1, 0x1
lsls r1, 16
lsrs r0, r1, 16
mov r9, r0
asrs r1, 16
cmp r1, 0x9F
ble _080D24E4
_080D251C:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080D252C: .4byte 0x0000ffb1
_080D2530: .4byte gUnknown_83FA444
_080D2534: .4byte gUnknown_2039A2C
_080D2538: .4byte gUnknown_2038E80
thumb_func_end sub_80D1F64
thumb_func_start sub_80D253C
sub_80D253C: @ 80D253C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
ldr r0, _080D25A0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r4, 0
strh r4, [r1, 0x2]
movs r0, 0x3F
strh r0, [r1, 0x4]
ldr r0, _080D25A4 @ =0x00007878
strh r0, [r1, 0x6]
ldr r0, _080D25A8 @ =0x00003070
strh r0, [r1, 0x8]
ldr r0, _080D25AC @ =0x00001090
strh r0, [r1, 0xC]
strh r4, [r1, 0x20]
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_80D1F64
movs r0, 0
movs r1, 0
movs r2, 0x1
bl sub_80D1F64
ldr r1, _080D25B0 @ =0x040000d4
ldr r0, _080D25B4 @ =gUnknown_2038E80
str r0, [r1]
ldr r2, _080D25B8 @ =0xfffff880
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D25BC @ =0x80000140
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
ldr r0, _080D25C0 @ =sub_80D2698
bl SetVBlankCallback
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
strh r4, [r5, 0xA]
strh r4, [r5, 0xC]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D25A0: .4byte gUnknown_2039A2C
_080D25A4: .4byte 0x00007878
_080D25A8: .4byte 0x00003070
_080D25AC: .4byte 0x00001090
_080D25B0: .4byte 0x040000d4
_080D25B4: .4byte gUnknown_2038E80
_080D25B8: .4byte 0xfffff880
_080D25BC: .4byte 0x80000140
_080D25C0: .4byte sub_80D2698
thumb_func_end sub_80D253C
thumb_func_start sub_80D25C4
sub_80D25C4: @ 80D25C4
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
movs r1, 0xC
ldrsh r0, [r4, r1]
movs r2, 0xA
ldrsh r1, [r4, r2]
movs r2, 0x1
bl sub_80D1F64
ldr r5, _080D2694 @ =gUnknown_2039A2C
ldr r1, [r5]
ldrb r0, [r1]
movs r2, 0x1
mov r8, r2
ldrb r2, [r1]
movs r7, 0
mov r2, r8
orrs r0, r2
strb r0, [r1]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x11
bne _080D2686
movs r1, 0xC
ldrsh r0, [r4, r1]
movs r1, 0x10
movs r2, 0
bl sub_80D1F64
ldrh r1, [r4, 0xC]
movs r6, 0x30
subs r0, r6, r1
lsls r0, 16
lsrs r3, r0, 16
cmp r0, 0
bge _080D2618
movs r3, 0
_080D2618:
adds r0, r1, 0
adds r0, 0x70
lsls r0, 16
lsrs r2, r0, 16
asrs r0, 16
cmp r0, 0xFF
ble _080D2628
movs r2, 0xFF
_080D2628:
ldr r0, [r5]
orrs r2, r3
strh r2, [r0, 0x8]
ldrh r0, [r4, 0xC]
adds r0, 0x20
strh r0, [r4, 0xC]
movs r0, 0
strh r0, [r4, 0xA]
movs r2, 0xC
ldrsh r0, [r4, r2]
movs r1, 0
movs r2, 0x1
bl sub_80D1F64
ldrh r1, [r4, 0xC]
subs r0, r6, r1
lsls r0, 16
lsrs r3, r0, 16
cmp r0, 0
bge _080D2652
movs r3, 0
_080D2652:
adds r0, r1, 0
adds r0, 0x70
lsls r0, 16
lsrs r2, r0, 16
asrs r0, 16
cmp r0, 0xFF
ble _080D2662
movs r2, 0xFF
_080D2662:
ldr r1, [r5]
orrs r2, r3
strh r2, [r1, 0xC]
ldrb r0, [r1]
mov r2, r8
orrs r0, r2
ldrb r2, [r1]
orrs r0, r7
strb r0, [r1]
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x9F
ble _080D2686
ldr r1, [r5]
movs r0, 0x1
strh r0, [r1, 0x20]
bl sub_80D3E60
_080D2686:
movs r0, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D2694: .4byte gUnknown_2039A2C
thumb_func_end sub_80D25C4
thumb_func_start sub_80D2698
sub_80D2698: @ 80D2698
push {r4-r6,lr}
ldr r5, _080D26D0 @ =0x040000b0
ldrh r1, [r5, 0xA]
ldr r0, _080D26D4 @ =0x0000c5ff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r1, [r5, 0xA]
ldr r0, _080D26D8 @ =0x00007fff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xA]
bl sub_80D3DF4
ldr r4, _080D26DC @ =gUnknown_2039A2C
ldr r2, [r4]
movs r0, 0x20
ldrsh r3, [r2, r0]
cmp r3, 0
beq _080D26E4
ldr r0, _080D26E0 @ =sub_80D1F2C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
b _080D2746
.align 2, 0
_080D26D0: .4byte 0x040000b0
_080D26D4: .4byte 0x0000c5ff
_080D26D8: .4byte 0x00007fff
_080D26DC: .4byte gUnknown_2039A2C
_080D26E0: .4byte sub_80D1F2C
_080D26E4:
ldrb r0, [r2]
cmp r0, 0
beq _080D2700
ldr r1, _080D274C @ =0x040000d4
ldr r0, _080D2750 @ =gUnknown_2038E80
str r0, [r1]
ldr r6, _080D2754 @ =0xfffff880
adds r0, r6
str r0, [r1, 0x4]
ldr r0, _080D2758 @ =0x80000140
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
ldrb r0, [r2]
strb r3, [r2]
_080D2700:
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0xC]
movs r0, 0x46
bl SetGpuReg
ldr r4, _080D275C @ =gUnknown_2038700
ldrh r1, [r4]
movs r0, 0x40
bl SetGpuReg
ldrh r1, [r4, 0x2]
movs r0, 0x42
bl SetGpuReg
str r4, [r5]
ldr r0, _080D2760 @ =0x04000040
str r0, [r5, 0x4]
ldr r0, _080D2764 @ =0xa6400001
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
_080D2746:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080D274C: .4byte 0x040000d4
_080D2750: .4byte gUnknown_2038E80
_080D2754: .4byte 0xfffff880
_080D2758: .4byte 0x80000140
_080D275C: .4byte gUnknown_2038700
_080D2760: .4byte 0x04000040
_080D2764: .4byte 0xa6400001
thumb_func_end sub_80D2698
thumb_func_start Phase2Task_Transition_Sydney
Phase2Task_Transition_Sydney: @ 80D2768
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080D2784 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0
strh r2, [r1, 0x26]
bl Phase2Task_MugShotTransition
pop {r0}
bx r0
.align 2, 0
_080D2784: .4byte gTasks
thumb_func_end Phase2Task_Transition_Sydney
thumb_func_start Phase2Task_Transition_Phoebe
Phase2Task_Transition_Phoebe: @ 80D2788
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080D27A4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x1
strh r2, [r1, 0x26]
bl Phase2Task_MugShotTransition
pop {r0}
bx r0
.align 2, 0
_080D27A4: .4byte gTasks
thumb_func_end Phase2Task_Transition_Phoebe
thumb_func_start Phase2Task_Transition_Glacia
Phase2Task_Transition_Glacia: @ 80D27A8
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080D27C4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x2
strh r2, [r1, 0x26]
bl Phase2Task_MugShotTransition
pop {r0}
bx r0
.align 2, 0
_080D27C4: .4byte gTasks
thumb_func_end Phase2Task_Transition_Glacia
thumb_func_start Phase2Task_Transition_Drake
Phase2Task_Transition_Drake: @ 80D27C8
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080D27E4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x3
strh r2, [r1, 0x26]
bl Phase2Task_MugShotTransition
pop {r0}
bx r0
.align 2, 0
_080D27E4: .4byte gTasks
thumb_func_end Phase2Task_Transition_Drake
thumb_func_start Phase2Task_Transition_Steven
Phase2Task_Transition_Steven: @ 80D27E8
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080D2804 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x4
strh r2, [r1, 0x26]
bl Phase2Task_MugShotTransition
pop {r0}
bx r0
.align 2, 0
_080D2804: .4byte gTasks
thumb_func_end Phase2Task_Transition_Steven
thumb_func_start Phase2Task_MugShotTransition
Phase2Task_MugShotTransition: @ 80D2808
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D2838 @ =gUnknown_83FA46C
ldr r2, _080D283C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D281A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D281A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D2838: .4byte gUnknown_83FA46C
_080D283C: .4byte gTasks
thumb_func_end Phase2Task_MugShotTransition
thumb_func_start Phase2_Mugshot_Func1
Phase2_Mugshot_Func1: @ 80D2840
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
adds r0, r4, 0
bl sub_80D2EA4
movs r0, 0
strh r0, [r4, 0xA]
movs r0, 0x1
strh r0, [r4, 0xC]
movs r0, 0xEF
strh r0, [r4, 0xE]
ldr r0, _080D2898 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r0, 0x3F
strh r0, [r1, 0x2]
movs r0, 0x3E
strh r0, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
ldr r3, _080D289C @ =gUnknown_2038E80
ldr r2, _080D28A0 @ =0x0000f0f1
_080D2874:
lsls r0, r1, 1
adds r0, r3
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9F
bls _080D2874
ldr r0, _080D28A4 @ =sub_80D2D50
bl SetVBlankCallback
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D2898: .4byte gUnknown_2039A2C
_080D289C: .4byte gUnknown_2038E80
_080D28A0: .4byte 0x0000f0f1
_080D28A4: .4byte sub_80D2D50
thumb_func_end Phase2_Mugshot_Func1
thumb_func_start Phase2_Mugshot_Func2
Phase2_Mugshot_Func2: @ 80D28A8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
mov r8, r0
ldr r6, _080D2950 @ =gUnknown_83FAC34
add r1, sp, 0x4
mov r0, sp
bl sub_80D3E28
ldr r0, _080D2954 @ =gUnknown_83F8F60
ldr r1, [sp, 0x4]
movs r2, 0xF0
bl CpuSet
ldr r1, _080D2958 @ =gUnknown_83FA740
mov r2, r8
movs r3, 0x26
ldrsh r0, [r2, r3]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldr r1, _080D295C @ =gUnknown_83FA754
ldr r0, _080D2960 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0xFA
movs r2, 0xC
bl LoadPalette
movs r1, 0
ldr r5, [sp]
movs r0, 0xF0
lsls r0, 8
adds r7, r0, 0
_080D28FC:
movs r0, 0
lsls r3, r1, 16
asrs r4, r3, 11
_080D2902:
lsls r2, r0, 16
asrs r2, 16
adds r1, r4, r2
lsls r1, 1
adds r1, r5
ldrh r0, [r6]
orrs r0, r7
strh r0, [r1]
adds r2, 0x1
lsls r2, 16
adds r6, 0x2
lsrs r0, r2, 16
asrs r2, 16
cmp r2, 0x1F
ble _080D2902
movs r1, 0x80
lsls r1, 9
adds r0, r3, r1
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0x13
ble _080D28FC
movs r0, 0x2
bl EnableInterrupts
ldr r0, _080D2964 @ =sub_80D2E6C
bl SetHBlankCallback
mov r2, r8
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
movs r0, 0
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D2950: .4byte gUnknown_83FAC34
_080D2954: .4byte gUnknown_83F8F60
_080D2958: .4byte gUnknown_83FA740
_080D295C: .4byte gUnknown_83FA754
_080D2960: .4byte gSaveBlock2Ptr
_080D2964: .4byte sub_80D2E6C
thumb_func_end Phase2_Mugshot_Func2
thumb_func_start sub_80D2968
sub_80D2968: @ 80D2968
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, _080D2A4C @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r7, _080D2A50 @ =gUnknown_2038700
ldrh r0, [r4, 0xA]
ldrb r5, [r4, 0xA]
adds r0, 0x10
strh r0, [r4, 0xA]
movs r6, 0
_080D2982:
adds r0, r5, 0
movs r1, 0x10
bl Sin
ldrh r1, [r4, 0xC]
adds r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r0, 0
bge _080D2998
movs r2, 0x1
_080D2998:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0xF0
ble _080D29A2
movs r2, 0xF0
_080D29A2:
strh r2, [r7]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
adds r7, 0x2
adds r0, r5, 0
adds r0, 0x10
lsls r0, 24
lsrs r5, r0, 24
cmp r6, 0x4F
bls _080D2982
cmp r6, 0x9F
bhi _080D29FA
_080D29BC:
adds r0, r5, 0
movs r1, 0x10
bl Sin
ldrh r1, [r4, 0xE]
subs r1, r0
lsls r1, 16
lsrs r2, r1, 16
cmp r1, 0
bge _080D29D2
movs r2, 0
_080D29D2:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0xEF
ble _080D29DC
movs r2, 0xEF
_080D29DC:
lsls r0, r2, 16
asrs r0, 8
movs r1, 0xF0
orrs r0, r1
strh r0, [r7]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
adds r7, 0x2
adds r0, r5, 0
adds r0, 0x10
lsls r0, 24
lsrs r5, r0, 24
cmp r6, 0x9F
bls _080D29BC
_080D29FA:
ldrh r1, [r4, 0xC]
adds r1, 0x8
strh r1, [r4, 0xC]
ldrh r0, [r4, 0xE]
subs r0, 0x8
strh r0, [r4, 0xE]
lsls r1, 16
asrs r1, 16
cmp r1, 0xF0
ble _080D2A12
movs r0, 0xF0
strh r0, [r4, 0xC]
_080D2A12:
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
bge _080D2A1E
movs r0, 0
strh r0, [r4, 0xE]
_080D2A1E:
ldr r0, [r4, 0xC]
cmp r0, 0xF0
bne _080D2A2A
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D2A2A:
ldr r0, _080D2A4C @ =gUnknown_2039A2C
ldr r1, [r0]
ldrh r0, [r1, 0x18]
subs r0, 0x8
strh r0, [r1, 0x18]
ldrh r0, [r1, 0x1A]
adds r0, 0x8
strh r0, [r1, 0x1A]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D2A4C: .4byte gUnknown_2039A2C
_080D2A50: .4byte gUnknown_2038700
thumb_func_end sub_80D2968
thumb_func_start sub_80D2A54
sub_80D2A54: @ 80D2A54
push {r4,r5,lr}
adds r4, r0, 0
ldr r2, _080D2AC8 @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, _080D2ACC @ =gUnknown_2038700
adds r5, r2, 0
movs r2, 0xF0
_080D2A68:
strh r2, [r1]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r1, 0x2
cmp r0, 0x9F
bls _080D2A68
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
strh r1, [r4, 0xE]
ldr r1, [r5]
ldrh r0, [r1, 0x18]
subs r0, 0x8
strh r0, [r1, 0x18]
ldrh r0, [r1, 0x1A]
adds r0, 0x8
strh r0, [r1, 0x1A]
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r1, 0
bl sub_80D3120
movs r1, 0x24
ldrsh r0, [r4, r1]
movs r1, 0x1
bl sub_80D3120
movs r1, 0x22
ldrsh r0, [r4, r1]
bl sub_80D3138
movs r0, 0x61
bl PlaySE
ldr r1, [r5]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D2AC8: .4byte gUnknown_2039A2C
_080D2ACC: .4byte gUnknown_2038700
thumb_func_end sub_80D2A54
thumb_func_start sub_80D2AD0
sub_80D2AD0: @ 80D2AD0
push {r4,lr}
adds r4, r0, 0
ldr r0, _080D2B08 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrh r0, [r1, 0x18]
subs r0, 0x8
strh r0, [r1, 0x18]
ldrh r0, [r1, 0x1A]
adds r0, 0x8
strh r0, [r1, 0x1A]
movs r1, 0x22
ldrsh r0, [r4, r1]
bl sub_80D3154
lsls r0, 16
cmp r0, 0
beq _080D2B00
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r1, 0x24
ldrsh r0, [r4, r1]
bl sub_80D3138
_080D2B00:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D2B08: .4byte gUnknown_2039A2C
thumb_func_end sub_80D2AD0
thumb_func_start sub_80D2B0C
sub_80D2B0C: @ 80D2B0C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldr r7, _080D2BAC @ =gUnknown_2039A2C
ldr r1, [r7]
ldrh r0, [r1, 0x18]
subs r0, 0x8
movs r2, 0
mov r8, r2
strh r0, [r1, 0x18]
ldrh r0, [r1, 0x1A]
adds r0, 0x8
strh r0, [r1, 0x1A]
movs r1, 0x24
ldrsh r0, [r6, r1]
bl sub_80D3154
lsls r0, 16
cmp r0, 0
beq _080D2BA0
ldr r1, [r7]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
movs r0, 0
bl SetVBlankCallback
ldr r1, _080D2BB0 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D2BB4 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D2BB8 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
ldr r4, _080D2BBC @ =gUnknown_2038700
movs r5, 0xA0
lsls r5, 1
adds r0, r4, 0
movs r1, 0
adds r2, r5, 0
bl memset
movs r2, 0xF0
lsls r2, 3
adds r4, r2
adds r0, r4, 0
movs r1, 0
adds r2, r5, 0
bl memset
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
mov r0, r8
strh r0, [r6, 0xE]
strh r0, [r6, 0x10]
ldr r1, [r7]
movs r0, 0xBF
strh r0, [r1, 0xE]
ldr r0, _080D2BC0 @ =sub_80D2DEC
bl SetVBlankCallback
_080D2BA0:
movs r0, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D2BAC: .4byte gUnknown_2039A2C
_080D2BB0: .4byte 0x040000b0
_080D2BB4: .4byte 0x0000c5ff
_080D2BB8: .4byte 0x00007fff
_080D2BBC: .4byte gUnknown_2038700
_080D2BC0: .4byte sub_80D2DEC
thumb_func_end sub_80D2B0C
thumb_func_start sub_80D2BC4
sub_80D2BC4: @ 80D2BC4
push {r4-r7,lr}
adds r4, r0, 0
ldr r2, _080D2C84 @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
movs r6, 0x1
ldr r1, [r2]
ldrh r0, [r1, 0x18]
subs r0, 0x8
strh r0, [r1, 0x18]
ldrh r0, [r1, 0x1A]
adds r0, 0x8
strh r0, [r1, 0x1A]
ldrh r1, [r4, 0x10]
movs r3, 0x10
ldrsh r0, [r4, r3]
mov r12, r2
cmp r0, 0x4F
bgt _080D2BF2
adds r0, r1, 0x2
strh r0, [r4, 0x10]
_080D2BF2:
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0x50
ble _080D2BFE
movs r0, 0x50
strh r0, [r4, 0x10]
_080D2BFE:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
movs r1, 0x1
ands r0, r1
ldrh r3, [r4, 0x10]
cmp r0, 0
beq _080D2C60
movs r2, 0
lsls r0, r3, 16
movs r6, 0
cmp r0, 0
blt _080D2C60
movs r7, 0x50
ldr r5, _080D2C88 @ =gUnknown_2038700
_080D2C1C:
lsls r0, r2, 16
asrs r3, r0, 16
subs r1, r7, r3
adds r0, r3, 0
adds r0, 0x50
lsls r0, 16
lsrs r2, r0, 16
lsls r1, 16
asrs r1, 15
adds r1, r5
ldrh r0, [r1]
cmp r0, 0xF
bhi _080D2C3C
movs r6, 0x1
adds r0, 0x1
strh r0, [r1]
_080D2C3C:
lsls r0, r2, 16
asrs r0, 15
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, 0xF
bhi _080D2C4E
movs r6, 0x1
adds r0, 0x1
strh r0, [r1]
_080D2C4E:
adds r0, r3, 0x1
lsls r0, 16
lsrs r2, r0, 16
asrs r0, 16
movs r3, 0x10
ldrsh r1, [r4, r3]
ldrh r3, [r4, 0x10]
cmp r0, r1
ble _080D2C1C
_080D2C60:
cmp r3, 0x50
bne _080D2C6E
cmp r6, 0
bne _080D2C6E
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D2C6E:
mov r1, r12
ldr r0, [r1]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D2C84: .4byte gUnknown_2039A2C
_080D2C88: .4byte gUnknown_2038700
thumb_func_end sub_80D2BC4
thumb_func_start sub_80D2C8C
sub_80D2C8C: @ 80D2C8C
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, _080D2CBC @ =gUnknown_2039A2C
ldr r0, [r5]
ldrb r1, [r0]
movs r6, 0
strb r6, [r0]
movs r0, 0x1
negs r0, r0
ldr r2, _080D2CC0 @ =0x00007fff
movs r1, 0x10
bl BlendPalettes
ldr r1, [r5]
movs r0, 0xFF
strh r0, [r1, 0xE]
strh r6, [r4, 0xE]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D2CBC: .4byte gUnknown_2039A2C
_080D2CC0: .4byte 0x00007fff
thumb_func_end sub_80D2C8C
thumb_func_start sub_80D2CC4
sub_80D2CC4: @ 80D2CC4
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _080D2D08 @ =gUnknown_2039A2C
ldr r1, [r5]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
ldr r0, _080D2D0C @ =gUnknown_2038700
movs r2, 0xE
ldrsh r1, [r4, r2]
movs r2, 0xA0
lsls r2, 1
bl memset
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0xF
ble _080D2CF4
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D2CF4:
ldr r0, [r5]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D2D08: .4byte gUnknown_2039A2C
_080D2D0C: .4byte gUnknown_2038700
thumb_func_end sub_80D2CC4
thumb_func_start sub_80D2D10
sub_80D2D10: @ 80D2D10
push {r4,lr}
adds r4, r0, 0
ldr r1, _080D2D44 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D2D48 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D2D4C @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, [r4]
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D2D44: .4byte 0x040000b0
_080D2D48: .4byte 0x0000c5ff
_080D2D4C: .4byte 0x00007fff
thumb_func_end sub_80D2D10
thumb_func_start sub_80D2D50
sub_80D2D50: @ 80D2D50
push {r4,r5,lr}
ldr r4, _080D2DC4 @ =0x040000b0
ldrh r1, [r4, 0xA]
ldr r0, _080D2DC8 @ =0x0000c5ff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r1, [r4, 0xA]
ldr r0, _080D2DCC @ =0x00007fff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_80D3DF4
ldr r5, _080D2DD0 @ =gUnknown_2039A2C
ldr r0, [r5]
ldrb r0, [r0]
cmp r0, 0
beq _080D2D88
ldr r1, _080D2DD4 @ =0x040000d4
ldr r0, _080D2DD8 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D2DDC @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D2D88:
ldr r0, [r5]
ldrh r1, [r0, 0x1C]
movs r0, 0x12
bl SetGpuReg
ldr r0, [r5]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r5]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r5]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r0, _080D2DE0 @ =gUnknown_2038E80
str r0, [r4]
ldr r0, _080D2DE4 @ =0x04000040
str r0, [r4, 0x4]
ldr r0, _080D2DE8 @ =0xa2400001
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D2DC4: .4byte 0x040000b0
_080D2DC8: .4byte 0x0000c5ff
_080D2DCC: .4byte 0x00007fff
_080D2DD0: .4byte gUnknown_2039A2C
_080D2DD4: .4byte 0x040000d4
_080D2DD8: .4byte gUnknown_2038700
_080D2DDC: .4byte 0x800000a0
_080D2DE0: .4byte gUnknown_2038E80
_080D2DE4: .4byte 0x04000040
_080D2DE8: .4byte 0xa2400001
thumb_func_end sub_80D2D50
thumb_func_start sub_80D2DEC
sub_80D2DEC: @ 80D2DEC
push {r4,lr}
ldr r4, _080D2E44 @ =0x040000b0
ldrh r1, [r4, 0xA]
ldr r0, _080D2E48 @ =0x0000c5ff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r1, [r4, 0xA]
ldr r0, _080D2E4C @ =0x00007fff
ands r0, r1
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_80D3DF4
ldr r2, _080D2E50 @ =gUnknown_2039A2C
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0
beq _080D2E24
ldr r1, _080D2E54 @ =0x040000d4
ldr r0, _080D2E58 @ =gUnknown_2038700
str r0, [r1]
movs r3, 0xF0
lsls r3, 3
adds r0, r3
str r0, [r1, 0x4]
ldr r0, _080D2E5C @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D2E24:
ldr r0, [r2]
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
ldr r0, _080D2E60 @ =gUnknown_2038E80
str r0, [r4]
ldr r0, _080D2E64 @ =0x04000054
str r0, [r4, 0x4]
ldr r0, _080D2E68 @ =0xa2400001
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D2E44: .4byte 0x040000b0
_080D2E48: .4byte 0x0000c5ff
_080D2E4C: .4byte 0x00007fff
_080D2E50: .4byte gUnknown_2039A2C
_080D2E54: .4byte 0x040000d4
_080D2E58: .4byte gUnknown_2038700
_080D2E5C: .4byte 0x800000a0
_080D2E60: .4byte gUnknown_2038E80
_080D2E64: .4byte 0x04000054
_080D2E68: .4byte 0xa2400001
thumb_func_end sub_80D2DEC
thumb_func_start sub_80D2E6C
sub_80D2E6C: @ 80D2E6C
push {lr}
ldr r0, _080D2E80 @ =0x04000006
ldrh r0, [r0]
cmp r0, 0x4F
bhi _080D2E8C
ldr r1, _080D2E84 @ =0x04000010
ldr r0, _080D2E88 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrh r0, [r0, 0x18]
b _080D2E94
.align 2, 0
_080D2E80: .4byte 0x04000006
_080D2E84: .4byte 0x04000010
_080D2E88: .4byte gUnknown_2039A2C
_080D2E8C:
ldr r1, _080D2E9C @ =0x04000010
ldr r0, _080D2EA0 @ =gUnknown_2039A2C
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
_080D2E94:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080D2E9C: .4byte 0x04000010
_080D2EA0: .4byte gUnknown_2039A2C
thumb_func_end sub_80D2E6C
thumb_func_start sub_80D2EA4
sub_80D2EA4: @ 80D2EA4
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
adds r4, r0, 0
ldr r6, _080D2FF8 @ =gReservedSpritePaletteCount
movs r0, 0xA
strb r0, [r6]
ldr r0, _080D2FFC @ =gUnknown_83FA494
movs r2, 0x26
ldrsh r1, [r4, r2]
mov r9, r1
add r0, r9
ldrb r0, [r0]
ldr r2, _080D3000 @ =gUnknown_83FA4AE
lsls r1, 2
mov r9, r1
adds r1, r2
ldrh r1, [r1]
subs r1, 0x20
lsls r1, 16
asrs r1, 16
adds r2, 0x2
add r2, r9
ldrh r2, [r2]
adds r2, 0x2A
lsls r2, 16
asrs r2, 16
ldr r5, _080D3004 @ =gDecompressionBuffer
str r5, [sp]
movs r3, 0
bl CreateTrainerSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r0, _080D3008 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
bl sub_810C374
lsls r0, 24
lsrs r0, 24
movs r1, 0x88
lsls r1, 1
str r5, [sp]
movs r2, 0x6A
movs r3, 0
bl CreateTrainerSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0xC
strb r0, [r6]
movs r3, 0x22
ldrsh r0, [r4, r3]
lsls r5, r0, 4
adds r5, r0
lsls r5, 2
ldr r1, _080D300C @ =gSprites
adds r5, r1
movs r2, 0x24
ldrsh r0, [r4, r2]
lsls r6, r0, 4
adds r6, r0
lsls r6, 2
adds r6, r1
ldr r0, _080D3010 @ =sub_80D301C
str r0, [r5, 0x1C]
str r0, [r6, 0x1C]
ldrb r0, [r5, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r5, 0x1]
ldrb r0, [r6, 0x1]
orrs r0, r1
strb r0, [r6, 0x1]
bl AllocOamMatrix
lsls r0, 24
lsrs r0, 24
movs r3, 0x1F
mov r8, r3
mov r4, r8
ands r0, r4
lsls r0, 1
ldrb r2, [r5, 0x3]
movs r4, 0x3F
negs r4, r4
adds r1, r4, 0
ands r1, r2
orrs r1, r0
strb r1, [r5, 0x3]
bl AllocOamMatrix
lsls r0, 24
lsrs r0, 24
mov r1, r8
ands r0, r1
lsls r0, 1
ldrb r1, [r6, 0x3]
ands r4, r1
orrs r4, r0
strb r4, [r6, 0x3]
ldrb r2, [r5, 0x1]
movs r1, 0x3F
adds r0, r1, 0
ands r0, r2
movs r2, 0x40
orrs r0, r2
strb r0, [r5, 0x1]
ldrb r0, [r6, 0x1]
ands r1, r0
orrs r1, r2
strb r1, [r6, 0x1]
ldrb r0, [r5, 0x3]
movs r1, 0xC0
orrs r0, r1
strb r0, [r5, 0x3]
ldrb r0, [r6, 0x3]
orrs r0, r1
strb r0, [r6, 0x3]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x3
movs r3, 0x3
bl CalcCenterToCornerVec
adds r0, r6, 0
movs r1, 0x1
movs r2, 0x3
movs r3, 0x3
bl CalcCenterToCornerVec
ldrb r0, [r5, 0x3]
lsls r0, 26
lsrs r0, 27
ldr r2, _080D3014 @ =gUnknown_83FA49A
mov r3, r9
adds r1, r3, r2
movs r4, 0
ldrsh r1, [r1, r4]
adds r2, 0x2
add r9, r2
mov r3, r9
movs r4, 0
ldrsh r2, [r3, r4]
movs r3, 0
bl SetOamMatrixRotationScaling
ldrb r0, [r6, 0x3]
lsls r0, 26
lsrs r0, 27
ldr r1, _080D3018 @ =0xfffffe00
movs r2, 0x80
lsls r2, 2
movs r3, 0
bl SetOamMatrixRotationScaling
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080D2FF8: .4byte gReservedSpritePaletteCount
_080D2FFC: .4byte gUnknown_83FA494
_080D3000: .4byte gUnknown_83FA4AE
_080D3004: .4byte gDecompressionBuffer
_080D3008: .4byte gSaveBlock2Ptr
_080D300C: .4byte gSprites
_080D3010: .4byte sub_80D301C
_080D3014: .4byte gUnknown_83FA49A
_080D3018: .4byte 0xfffffe00
thumb_func_end sub_80D2EA4
thumb_func_start sub_80D301C
sub_80D301C: @ 80D301C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _080D3040 @ =gUnknown_83FA4C4
_080D3022:
movs r1, 0x2E
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D3022
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3040: .4byte gUnknown_83FA4C4
thumb_func_end sub_80D301C
thumb_func_start sub_80D3044
sub_80D3044: @ 80D3044
movs r0, 0
bx lr
thumb_func_end sub_80D3044
thumb_func_start sub_80D3048
sub_80D3048: @ 80D3048
push {r4,r5,lr}
sub sp, 0x8
adds r5, r0, 0
ldr r1, _080D308C @ =gUnknown_83FA4E0
mov r0, sp
movs r2, 0x4
bl memcpy
add r4, sp, 0x4
ldr r1, _080D3090 @ =gUnknown_83FA4E4
adds r0, r4, 0
movs r2, 0x4
bl memcpy
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
movs r1, 0x3C
ldrsh r0, [r5, r1]
lsls r0, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r5, 0x30]
movs r1, 0x3C
ldrsh r0, [r5, r1]
lsls r0, 1
adds r4, r0
ldrh r0, [r4]
strh r0, [r5, 0x32]
movs r0, 0x1
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D308C: .4byte gUnknown_83FA4E0
_080D3090: .4byte gUnknown_83FA4E4
thumb_func_end sub_80D3048
thumb_func_start sub_80D3094
sub_80D3094: @ 80D3094
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x30]
ldrh r3, [r1, 0x20]
adds r2, r0, r3
strh r2, [r1, 0x20]
movs r3, 0x3C
ldrsh r0, [r1, r3]
cmp r0, 0
beq _080D30B2
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x84
bgt _080D30C0
b _080D30BA
_080D30B2:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x67
ble _080D30C0
_080D30BA:
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
_080D30C0:
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_80D3094
thumb_func_start sub_80D30C8
sub_80D30C8: @ 80D30C8
push {lr}
adds r2, r0, 0
ldrh r3, [r2, 0x32]
ldrh r0, [r2, 0x30]
adds r1, r3, r0
strh r1, [r2, 0x30]
ldrh r0, [r2, 0x20]
adds r0, r1
strh r0, [r2, 0x20]
lsls r1, 16
cmp r1, 0
bne _080D30EE
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
negs r0, r3
strh r0, [r2, 0x32]
movs r0, 0x1
strh r0, [r2, 0x3A]
_080D30EE:
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_80D30C8
thumb_func_start sub_80D30F4
sub_80D30F4: @ 80D30F4
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x32]
ldrh r1, [r2, 0x30]
adds r0, r1
strh r0, [r2, 0x30]
ldrh r1, [r2, 0x20]
adds r1, r0
strh r1, [r2, 0x20]
adds r1, 0x1F
lsls r1, 16
movs r0, 0x97
lsls r0, 17
cmp r1, r0
bls _080D3118
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
_080D3118:
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_80D30F4
thumb_func_start sub_80D3120
sub_80D3120: @ 80D3120
ldr r3, _080D3134 @ =gSprites
lsls r0, 16
asrs r0, 16
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
strh r1, [r2, 0x3C]
bx lr
.align 2, 0
_080D3134: .4byte gSprites
thumb_func_end sub_80D3120
thumb_func_start sub_80D3138
sub_80D3138: @ 80D3138
ldr r2, _080D3150 @ =gSprites
lsls r0, 16
asrs r0, 16
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
bx lr
.align 2, 0
_080D3150: .4byte gSprites
thumb_func_end sub_80D3138
thumb_func_start sub_80D3154
sub_80D3154: @ 80D3154
ldr r2, _080D3168 @ =gSprites
lsls r0, 16
asrs r0, 16
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r2, 0x3A
ldrsh r0, [r1, r2]
bx lr
.align 2, 0
_080D3168: .4byte gSprites
thumb_func_end sub_80D3154
thumb_func_start sub_80D316C
sub_80D316C: @ 80D316C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D319C @ =gUnknown_83FA4E8
ldr r2, _080D31A0 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D317E:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D317E
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D319C: .4byte gUnknown_83FA4E8
_080D31A0: .4byte gTasks
thumb_func_end sub_80D316C
thumb_func_start sub_80D31A4
sub_80D31A4: @ 80D31A4
push {r4-r6,lr}
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
movs r3, 0
movs r0, 0x80
lsls r0, 1
strh r0, [r5, 0xC]
movs r0, 0x1
strh r0, [r5, 0xE]
ldr r2, _080D3210 @ =gUnknown_2039A2C
ldr r1, [r2]
movs r0, 0x3F
strh r0, [r1, 0x2]
strh r3, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
ldr r4, _080D3214 @ =gUnknown_2038E80
adds r6, r2, 0
movs r2, 0xF0
_080D31D0:
lsls r1, r3, 1
adds r1, r4
ldr r0, [r6]
ldrh r0, [r0, 0x14]
strh r0, [r1]
adds r0, r3, 0
adds r0, 0xA0
lsls r0, 1
adds r0, r4
strh r2, [r0]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x9F
bls _080D31D0
movs r0, 0x2
bl EnableInterrupts
ldr r0, _080D3218 @ =sub_80D332C
bl SetVBlankCallback
ldr r0, _080D321C @ =sub_80D33C0
bl SetHBlankCallback
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D3210: .4byte gUnknown_2039A2C
_080D3214: .4byte gUnknown_2038E80
_080D3218: .4byte sub_80D332C
_080D321C: .4byte sub_80D33C0
thumb_func_end sub_80D31A4
thumb_func_start sub_80D3220
sub_80D3220: @ 80D3220
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r3, r0, 0
ldr r2, _080D329C @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldrh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 24
ldrh r1, [r3, 0xA]
adds r0, r1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
mov r8, r2
cmp r0, 0xF0
ble _080D324C
movs r0, 0xF0
strh r0, [r3, 0xA]
_080D324C:
ldrh r4, [r3, 0xC]
movs r0, 0xC
ldrsh r1, [r3, r0]
ldr r0, _080D32A0 @ =0x00000fff
ldrh r2, [r3, 0xE]
cmp r1, r0
bgt _080D325E
adds r0, r4, r2
strh r0, [r3, 0xC]
_080D325E:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x7F
bgt _080D326A
lsls r0, r2, 1
strh r0, [r3, 0xE]
_080D326A:
movs r5, 0
ldr r7, _080D32A4 @ =gUnknown_2038700
movs r1, 0xA0
lsls r1, 1
adds r1, r7
mov r12, r1
mov r6, r8
_080D3278:
lsls r0, r5, 1
adds r2, r0, r7
mov r1, r12
adds r4, r0, r1
movs r0, 0x1
ands r0, r5
cmp r0, 0
beq _080D32A8
ldr r1, [r6]
ldrh r0, [r3, 0xA]
ldrh r1, [r1, 0x14]
adds r0, r1
strh r0, [r2]
ldrh r1, [r3, 0xA]
movs r0, 0xF0
subs r0, r1
b _080D32BA
.align 2, 0
_080D329C: .4byte gUnknown_2039A2C
_080D32A0: .4byte 0x00000fff
_080D32A4: .4byte gUnknown_2038700
_080D32A8:
ldr r0, [r6]
ldrh r0, [r0, 0x14]
ldrh r1, [r3, 0xA]
subs r0, r1
strh r0, [r2]
ldrh r0, [r3, 0xA]
lsls r0, 8
movs r1, 0xF1
orrs r0, r1
_080D32BA:
strh r0, [r4]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x9F
bls _080D3278
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0xEF
ble _080D32D4
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
_080D32D4:
mov r1, r8
ldr r0, [r1]
ldrb r1, [r0]
adds r1, 0x1
ldrb r2, [r0]
strb r1, [r0]
movs r0, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80D3220
thumb_func_start sub_80D32EC
sub_80D32EC: @ 80D32EC
push {lr}
ldr r1, _080D331C @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D3320 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D3324 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, _080D3328 @ =sub_80D316C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D331C: .4byte 0x040000b0
_080D3320: .4byte 0x0000c5ff
_080D3324: .4byte 0x00007fff
_080D3328: .4byte sub_80D316C
thumb_func_end sub_80D32EC
thumb_func_start sub_80D332C
sub_80D332C: @ 80D332C
push {r4,r5,lr}
ldr r5, _080D3398 @ =0x040000b0
ldrh r1, [r5, 0xA]
ldr r0, _080D339C @ =0x0000c5ff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r1, [r5, 0xA]
ldr r0, _080D33A0 @ =0x00007fff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xA]
bl sub_80D3DF4
ldr r4, _080D33A4 @ =gUnknown_2039A2C
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
beq _080D3382
ldr r1, _080D33A8 @ =0x040000d4
ldr r0, _080D33AC @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D33B0 @ =0x80000140
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3382:
ldr r0, _080D33B4 @ =gUnknown_2038FC0
str r0, [r5]
ldr r0, _080D33B8 @ =0x04000040
str r0, [r5, 0x4]
ldr r0, _080D33BC @ =0xa2400001
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3398: .4byte 0x040000b0
_080D339C: .4byte 0x0000c5ff
_080D33A0: .4byte 0x00007fff
_080D33A4: .4byte gUnknown_2039A2C
_080D33A8: .4byte 0x040000d4
_080D33AC: .4byte gUnknown_2038700
_080D33B0: .4byte 0x80000140
_080D33B4: .4byte gUnknown_2038FC0
_080D33B8: .4byte 0x04000040
_080D33BC: .4byte 0xa2400001
thumb_func_end sub_80D332C
thumb_func_start sub_80D33C0
sub_80D33C0: @ 80D33C0
ldr r1, _080D33E0 @ =gUnknown_2038700
ldr r0, _080D33E4 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
movs r2, 0xF0
lsls r2, 3
adds r1, r2
adds r0, r1
ldrh r1, [r0]
ldr r0, _080D33E8 @ =0x04000014
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
bx lr
.align 2, 0
_080D33E0: .4byte gUnknown_2038700
_080D33E4: .4byte 0x04000006
_080D33E8: .4byte 0x04000014
thumb_func_end sub_80D33C0
thumb_func_start sub_80D33EC
sub_80D33EC: @ 80D33EC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D341C @ =gUnknown_83FA4F4
ldr r2, _080D3420 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D33FE:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D33FE
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D341C: .4byte gUnknown_83FA4F4
_080D3420: .4byte gTasks
thumb_func_end sub_80D33EC
thumb_func_start sub_80D3424
sub_80D3424: @ 80D3424
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
ldr r0, _080D348C @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
movs r0, 0xBF
strh r0, [r1, 0xE]
strh r2, [r1, 0x12]
movs r0, 0x1E
strh r0, [r1, 0x2]
movs r0, 0x3F
strh r0, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
ldr r2, _080D3490 @ =gUnknown_2038E80
movs r4, 0
movs r3, 0xF0
_080D3450:
lsls r0, r1, 1
adds r0, r2
strh r4, [r0]
adds r0, r1, 0
adds r0, 0xA0
lsls r0, 1
adds r0, r2
strh r3, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x9F
bls _080D3450
movs r0, 0x2
bl EnableInterrupts
ldr r0, _080D3494 @ =sub_80D36E0
bl SetHBlankCallback
ldr r0, _080D3498 @ =sub_80D35F4
bl SetVBlankCallback
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D348C: .4byte gUnknown_2039A2C
_080D3490: .4byte gUnknown_2038E80
_080D3494: .4byte sub_80D36E0
_080D3498: .4byte sub_80D35F4
thumb_func_end sub_80D3424
thumb_func_start sub_80D349C
sub_80D349C: @ 80D349C
push {r4-r6,lr}
sub sp, 0xC
adds r6, r0, 0
ldr r1, _080D3504 @ =gUnknown_83FA508
mov r0, sp
movs r2, 0xC
bl memcpy
movs r5, 0
movs r4, 0
_080D34B0:
ldr r0, _080D3508 @ =sub_80D3720
bl CreateInvisibleSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _080D350C @ =gSprites
adds r2, r1, r0
movs r0, 0xF0
strh r0, [r2, 0x20]
strh r4, [r2, 0x22]
lsls r1, r5, 16
asrs r1, 16
lsls r0, r1, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r2, 0x38]
adds r1, 0x1
lsls r1, 16
lsls r0, r4, 16
movs r3, 0xD8
lsls r3, 13
adds r0, r3
lsrs r4, r0, 16
lsrs r5, r1, 16
asrs r1, 16
cmp r1, 0x5
ble _080D34B0
ldrh r0, [r2, 0x3A]
adds r0, 0x1
strh r0, [r2, 0x3A]
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
movs r0, 0
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D3504: .4byte gUnknown_83FA508
_080D3508: .4byte sub_80D3720
_080D350C: .4byte gSprites
thumb_func_end sub_80D349C
thumb_func_start sub_80D3510
sub_80D3510: @ 80D3510
push {r4,lr}
adds r4, r0, 0
ldr r2, _080D3544 @ =gUnknown_2039A2C
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r0, [r2]
movs r1, 0x20
ldrsh r0, [r0, r1]
cmp r0, 0x5
ble _080D353A
movs r0, 0x1
negs r0, r0
ldr r2, _080D3548 @ =0x00007fff
movs r1, 0x10
bl BlendPalettes
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080D353A:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D3544: .4byte gUnknown_2039A2C
_080D3548: .4byte 0x00007fff
thumb_func_end sub_80D3510
thumb_func_start sub_80D354C
sub_80D354C: @ 80D354C
push {r4-r6,lr}
adds r6, r0, 0
ldr r5, _080D35A0 @ =gUnknown_2039A2C
ldr r0, [r5]
ldrb r1, [r0]
movs r4, 0
strb r4, [r0]
ldr r1, _080D35A4 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D35A8 @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D35AC @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
ldr r1, [r5]
movs r0, 0xF0
strh r0, [r1, 0x6]
strh r4, [r1, 0x12]
movs r0, 0xFF
strh r0, [r1, 0xE]
movs r0, 0x3F
strh r0, [r1, 0x2]
strh r4, [r1, 0x20]
ldr r0, _080D35B0 @ =sub_80D3690
bl SetVBlankCallback
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
movs r0, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D35A0: .4byte gUnknown_2039A2C
_080D35A4: .4byte 0x040000b0
_080D35A8: .4byte 0x0000c5ff
_080D35AC: .4byte 0x00007fff
_080D35B0: .4byte sub_80D3690
thumb_func_end sub_80D354C
thumb_func_start sub_80D35B4
sub_80D35B4: @ 80D35B4
push {lr}
ldr r0, _080D35EC @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0xF0
lsls r2, 1
adds r0, r2, 0
ldrh r2, [r1, 0x20]
adds r0, r2
strh r0, [r1, 0x20]
lsls r0, 16
asrs r0, 24
strh r0, [r1, 0x12]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x10
bls _080D35E6
bl sub_80D3E60
ldr r0, _080D35F0 @ =sub_80D33EC
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D35E6:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D35EC: .4byte gUnknown_2039A2C
_080D35F0: .4byte sub_80D33EC
thumb_func_end sub_80D35B4
thumb_func_start sub_80D35F4
sub_80D35F4: @ 80D35F4
push {r4,r5,lr}
ldr r5, _080D3668 @ =0x040000b0
ldrh r1, [r5, 0xA]
ldr r0, _080D366C @ =0x0000c5ff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r1, [r5, 0xA]
ldr r0, _080D3670 @ =0x00007fff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xA]
bl sub_80D3DF4
ldr r4, _080D3674 @ =gUnknown_2039A2C
ldr r0, [r4]
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x6]
movs r0, 0x44
bl SetGpuReg
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
beq _080D3654
ldr r1, _080D3678 @ =0x040000d4
ldr r0, _080D367C @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D3680 @ =0x80000140
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3654:
ldr r0, _080D3684 @ =gUnknown_2038FC0
str r0, [r5]
ldr r0, _080D3688 @ =0x04000040
str r0, [r5, 0x4]
ldr r0, _080D368C @ =0xa2400001
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3668: .4byte 0x040000b0
_080D366C: .4byte 0x0000c5ff
_080D3670: .4byte 0x00007fff
_080D3674: .4byte gUnknown_2039A2C
_080D3678: .4byte 0x040000d4
_080D367C: .4byte gUnknown_2038700
_080D3680: .4byte 0x80000140
_080D3684: .4byte gUnknown_2038FC0
_080D3688: .4byte 0x04000040
_080D368C: .4byte 0xa2400001
thumb_func_end sub_80D35F4
thumb_func_start sub_80D3690
sub_80D3690: @ 80D3690
push {r4,lr}
bl sub_80D3DF4
ldr r4, _080D36DC @ =gUnknown_2039A2C
ldr r0, [r4]
ldrh r1, [r0, 0x12]
movs r0, 0x54
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x6]
movs r0, 0x40
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D36DC: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3690
thumb_func_start sub_80D36E0
sub_80D36E0: @ 80D36E0
push {lr}
sub sp, 0x4
mov r1, sp
ldr r0, _080D3714 @ =0x04000006
ldrh r0, [r0]
strh r0, [r1]
mov r0, sp
ldrh r0, [r0]
cmp r0, 0xE3
bne _080D36F8
movs r0, 0
strh r0, [r1]
_080D36F8:
ldr r2, _080D3718 @ =0x04000054
ldr r1, _080D371C @ =gUnknown_2038700
mov r0, sp
ldrh r0, [r0]
lsls r0, 1
movs r3, 0xF0
lsls r3, 3
adds r1, r3
adds r0, r1
ldrh r0, [r0]
strh r0, [r2]
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080D3714: .4byte 0x04000006
_080D3718: .4byte 0x04000054
_080D371C: .4byte gUnknown_2038700
thumb_func_end sub_80D36E0
thumb_func_start sub_80D3720
sub_80D3720: @ 80D3720
push {r4-r7,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x38]
movs r2, 0x38
ldrsh r0, [r3, r2]
cmp r0, 0
beq _080D374C
subs r0, r1, 0x1
strh r0, [r3, 0x38]
movs r1, 0x3A
ldrsh r0, [r3, r1]
cmp r0, 0
beq _080D380A
ldr r0, _080D3748 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0x1
strb r0, [r1]
b _080D380A
.align 2, 0
_080D3748: .4byte gUnknown_2039A2C
_080D374C:
movs r2, 0x22
ldrsh r0, [r3, r2]
lsls r0, 1
ldr r1, _080D3810 @ =gUnknown_2038700
adds r7, r0, r1
movs r2, 0xA0
lsls r2, 1
adds r1, r2
adds r6, r0, r1
movs r1, 0x3A
ldrsh r0, [r3, r1]
movs r5, 0x1B
cmp r0, 0
beq _080D376A
movs r5, 0x19
_080D376A:
movs r4, 0
cmp r4, r5
bcs _080D3790
_080D3770:
lsls r1, r4, 1
adds r2, r1, r7
ldrh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 24
strh r0, [r2]
adds r1, r6
ldrh r0, [r3, 0x20]
lsls r0, 24
lsrs r0, 24
strh r0, [r1]
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, r5
bcc _080D3770
_080D3790:
movs r2, 0x20
ldrsh r0, [r3, r2]
ldrh r2, [r3, 0x20]
cmp r0, 0
bne _080D37AA
movs r0, 0x2E
ldrsh r1, [r3, r0]
movs r0, 0x80
lsls r0, 5
cmp r1, r0
bne _080D37AA
movs r0, 0x1
strh r0, [r3, 0x30]
_080D37AA:
adds r1, r2, 0
subs r1, 0x18
strh r1, [r3, 0x20]
ldrh r0, [r3, 0x2E]
adds r0, 0xC0
strh r0, [r3, 0x2E]
lsls r1, 16
cmp r1, 0
bge _080D37C0
movs r0, 0
strh r0, [r3, 0x20]
_080D37C0:
movs r1, 0x2E
ldrsh r0, [r3, r1]
movs r1, 0x80
lsls r1, 5
cmp r0, r1
ble _080D37CE
strh r1, [r3, 0x2E]
_080D37CE:
movs r2, 0x3A
ldrsh r0, [r3, r2]
cmp r0, 0
beq _080D37E0
ldr r0, _080D3814 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0x1
strb r0, [r1]
_080D37E0:
movs r1, 0x30
ldrsh r0, [r3, r1]
cmp r0, 0
beq _080D380A
movs r2, 0x3A
ldrsh r0, [r3, r2]
ldr r1, _080D3814 @ =gUnknown_2039A2C
cmp r0, 0
beq _080D37FC
ldr r0, [r1]
movs r2, 0x20
ldrsh r0, [r0, r2]
cmp r0, 0x4
ble _080D380A
_080D37FC:
ldr r1, [r1]
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
adds r0, r3, 0
bl DestroySprite
_080D380A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080D3810: .4byte gUnknown_2038700
_080D3814: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3720
thumb_func_start sub_80D3818
sub_80D3818: @ 80D3818
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D3848 @ =gUnknown_83FA514
ldr r2, _080D384C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D382A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D382A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3848: .4byte gUnknown_83FA514
_080D384C: .4byte gTasks
thumb_func_end sub_80D3818
thumb_func_start Phase2_Transition_GridSquares_Func1
Phase2_Transition_GridSquares_Func1: @ 80D3850
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
add r0, sp, 0x4
add r1, sp, 0x8
bl sub_80D3E28
ldr r0, _080D3898 @ =gUnknown_83FA140
ldr r1, [sp, 0x8]
movs r2, 0x10
bl CpuSet
mov r1, sp
movs r2, 0xF0
lsls r2, 8
adds r0, r2, 0
strh r0, [r1]
ldr r1, [sp, 0x4]
ldr r2, _080D389C @ =0x01000400
mov r0, sp
bl CpuSet
ldr r0, _080D38A0 @ =gUnknown_83FA638
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
add sp, 0xC
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D3898: .4byte gUnknown_83FA140
_080D389C: .4byte 0x01000400
_080D38A0: .4byte gUnknown_83FA638
thumb_func_end Phase2_Transition_GridSquares_Func1
thumb_func_start Phase2_Transition_GridSquares_Func2
Phase2_Transition_GridSquares_Func2: @ 80D38A4
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D38E6
mov r0, sp
bl sub_80D3E08
movs r0, 0x3
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0xC
ldrsh r0, [r4, r1]
lsls r0, 5
ldr r1, _080D38F8 @ =gUnknown_83FA140
adds r0, r1
ldr r1, [sp]
movs r2, 0x10
bl CpuSet
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0xD
ble _080D38E6
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x10
strh r0, [r4, 0xA]
_080D38E6:
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D38F8: .4byte gUnknown_83FA140
thumb_func_end Phase2_Transition_GridSquares_Func2
thumb_func_start Phase2_Transition_GridSquares_Func3
Phase2_Transition_GridSquares_Func3: @ 80D38FC
push {lr}
ldrh r1, [r0, 0xA]
subs r1, 0x1
strh r1, [r0, 0xA]
lsls r1, 16
cmp r1, 0
bne _080D391C
bl sub_80D3E60
ldr r0, _080D3924 @ =sub_80D3818
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080D391C:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D3924: .4byte sub_80D3818
thumb_func_end Phase2_Transition_GridSquares_Func3
thumb_func_start sub_80D3928
sub_80D3928: @ 80D3928
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D3958 @ =gUnknown_83FA520
ldr r2, _080D395C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D393A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D393A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3958: .4byte gUnknown_83FA520
_080D395C: .4byte gTasks
thumb_func_end sub_80D3928
thumb_func_start sub_80D3960
sub_80D3960: @ 80D3960
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
bl dp12_8087EA4
ldr r0, _080D39B8 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
movs r0, 0x3F
strh r0, [r1, 0x2]
strh r2, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
ldr r2, _080D39BC @ =gUnknown_2038700
movs r3, 0xF0
adds r4, r2, 0
_080D3984:
lsls r0, r1, 1
adds r0, r2
strh r3, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x9F
bls _080D3984
movs r0, 0xF0
lsls r0, 3
adds r1, r4, r0
adds r0, r4, 0
movs r2, 0xA0
bl CpuSet
ldr r0, _080D39C0 @ =sub_80D3BA4
bl SetVBlankCallback
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080D39B8: .4byte gUnknown_2039A2C
_080D39BC: .4byte gUnknown_2038700
_080D39C0: .4byte sub_80D3BA4
thumb_func_end sub_80D3960
thumb_func_start sub_80D39C4
sub_80D39C4: @ 80D39C4
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
mov r8, r0
ldr r0, _080D3A38 @ =gUnknown_2039A2C
ldr r0, [r0]
adds r0, 0x24
ldr r6, _080D3A3C @ =gUnknown_83FA534
mov r2, r8
movs r3, 0xA
ldrsh r1, [r2, r3]
lsls r4, r1, 2
adds r4, r1
lsls r4, 1
adds r1, r4, r6
movs r5, 0
ldrsh r1, [r1, r5]
adds r2, r6, 0x2
adds r2, r4, r2
movs r3, 0
ldrsh r2, [r2, r3]
adds r3, r6, 0x4
adds r3, r4, r3
movs r5, 0
ldrsh r3, [r3, r5]
adds r5, r6, 0x6
adds r4, r5
movs r5, 0
ldrsh r4, [r4, r5]
str r4, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
str r4, [sp, 0x8]
bl sub_80D4088
mov r0, r8
movs r2, 0xA
ldrsh r1, [r0, r2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r6, 0x8
adds r0, r6
ldrh r0, [r0]
mov r3, r8
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
movs r0, 0x1
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080D3A38: .4byte gUnknown_2039A2C
_080D3A3C: .4byte gUnknown_83FA534
thumb_func_end sub_80D39C4
thumb_func_start sub_80D3A40
sub_80D3A40: @ 80D3A40
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r6, r0, 0
ldr r0, _080D3A90 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
mov r8, r0
movs r7, 0
ldr r0, _080D3A94 @ =gUnknown_2038700
mov r9, r0
_080D3A5C:
ldr r1, _080D3A94 @ =gUnknown_2038700
ldr r0, _080D3A90 @ =gUnknown_2039A2C
ldr r2, [r0]
movs r3, 0x2A
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
lsrs r3, r0, 8
movs r5, 0xFF
ands r5, r0
movs r4, 0xC
ldrsh r0, [r6, r4]
cmp r0, 0
bne _080D3A98
movs r1, 0x28
ldrsh r0, [r2, r1]
cmp r3, r0
bge _080D3A84
ldrh r3, [r2, 0x28]
_080D3A84:
lsls r0, r3, 16
lsls r1, r5, 16
cmp r0, r1
ble _080D3AB0
lsrs r3, r1, 16
b _080D3AB0
.align 2, 0
_080D3A90: .4byte gUnknown_2039A2C
_080D3A94: .4byte gUnknown_2038700
_080D3A98:
lsls r0, r5, 16
asrs r0, 16
movs r4, 0x28
ldrsh r1, [r2, r4]
cmp r0, r1
ble _080D3AA6
ldrh r5, [r2, 0x28]
_080D3AA6:
lsls r0, r5, 16
lsls r1, r3, 16
cmp r0, r1
bgt _080D3AB0
lsrs r5, r1, 16
_080D3AB0:
ldr r0, _080D3AD4 @ =gUnknown_2039A2C
ldr r4, [r0]
movs r0, 0x2A
ldrsh r2, [r4, r0]
lsls r2, 1
add r2, r9
lsls r1, r3, 16
asrs r1, 8
lsls r0, r5, 16
asrs r0, 16
orrs r0, r1
strh r0, [r2]
cmp r7, 0
beq _080D3AD8
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
b _080D3AFC
.align 2, 0
_080D3AD4: .4byte gUnknown_2039A2C
_080D3AD8:
adds r0, r4, 0
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_80D4104
lsls r0, 24
lsrs r7, r0, 24
mov r1, r8
lsls r0, r1, 16
movs r3, 0x80
lsls r3, 9
adds r0, r3
lsrs r4, r0, 16
mov r8, r4
asrs r0, 16
cmp r0, 0xF
ble _080D3A5C
_080D3AFC:
ldr r0, _080D3B18 @ =gUnknown_2039A2C
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080D3B18: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3A40
thumb_func_start sub_80D3B1C
sub_80D3B1C: @ 80D3B1C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
ble _080D3B68
ldr r1, _080D3B58 @ =0x040000b0
ldrh r2, [r1, 0xA]
ldr r0, _080D3B5C @ =0x0000c5ff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r2, [r1, 0xA]
ldr r0, _080D3B60 @ =0x00007fff
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_80D3E60
ldr r0, _080D3B64 @ =sub_80D3928
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0
b _080D3B80
.align 2, 0
_080D3B58: .4byte 0x040000b0
_080D3B5C: .4byte 0x0000c5ff
_080D3B60: .4byte 0x00007fff
_080D3B64: .4byte sub_80D3928
_080D3B68:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
ldr r1, _080D3B84 @ =gUnknown_83FA57A
movs r3, 0xA
ldrsh r0, [r2, r3]
subs r0, 0x1
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r2, 0xE]
movs r0, 0x1
_080D3B80:
pop {r1}
bx r1
.align 2, 0
_080D3B84: .4byte gUnknown_83FA57A
thumb_func_end sub_80D3B1C
thumb_func_start sub_80D3B88
sub_80D3B88: @ 80D3B88
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0xE]
subs r0, 0x1
strh r0, [r1, 0xE]
lsls r0, 16
cmp r0, 0
beq _080D3B9C
movs r0, 0
b _080D3BA0
_080D3B9C:
movs r0, 0x1
strh r0, [r1, 0x8]
_080D3BA0:
pop {r1}
bx r1
thumb_func_end sub_80D3B88
thumb_func_start sub_80D3BA4
sub_80D3BA4: @ 80D3BA4
push {r4,r5,lr}
ldr r5, _080D3C1C @ =0x040000b0
ldrh r1, [r5, 0xA]
ldr r0, _080D3C20 @ =0x0000c5ff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r1, [r5, 0xA]
ldr r0, _080D3C24 @ =0x00007fff
ands r0, r1
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xA]
bl sub_80D3DF4
ldr r4, _080D3C28 @ =gUnknown_2039A2C
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
beq _080D3BDC
ldr r1, _080D3C2C @ =0x040000d4
ldr r0, _080D3C30 @ =gUnknown_2038700
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
adds r0, r2
str r0, [r1, 0x4]
ldr r0, _080D3C34 @ =0x800000a0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3BDC:
ldr r0, [r4]
ldrh r1, [r0, 0x2]
movs r0, 0x48
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x4]
movs r0, 0x4A
bl SetGpuReg
ldr r0, [r4]
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
ldr r4, _080D3C30 @ =gUnknown_2038700
movs r0, 0xF0
lsls r0, 3
adds r4, r0
ldrh r1, [r4]
movs r0, 0x40
bl SetGpuReg
str r4, [r5]
ldr r0, _080D3C38 @ =0x04000040
str r0, [r5, 0x4]
ldr r0, _080D3C3C @ =0xa2400001
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3C1C: .4byte 0x040000b0
_080D3C20: .4byte 0x0000c5ff
_080D3C24: .4byte 0x00007fff
_080D3C28: .4byte gUnknown_2039A2C
_080D3C2C: .4byte 0x040000d4
_080D3C30: .4byte gUnknown_2038700
_080D3C34: .4byte 0x800000a0
_080D3C38: .4byte 0x04000040
_080D3C3C: .4byte 0xa2400001
thumb_func_end sub_80D3BA4
thumb_func_start CreatePhase1Task
CreatePhase1Task: @ 80D3C40
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
mov r8, r0
adds r4, r1, 0
adds r5, r2, 0
adds r6, r3, 0
ldr r3, [sp, 0x18]
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
lsls r6, 16
lsrs r6, 16
lsls r3, 16
lsrs r3, 16
ldr r0, _080D3C9C @ =sub_80D3CC4
movs r1, 0x3
str r3, [sp]
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080D3CA0 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
mov r0, r8
strh r0, [r1, 0xA]
strh r4, [r1, 0xC]
strh r5, [r1, 0xE]
strh r6, [r1, 0x10]
ldr r3, [sp]
strh r3, [r1, 0x12]
strh r0, [r1, 0x14]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080D3C9C: .4byte sub_80D3CC4
_080D3CA0: .4byte gTasks
thumb_func_end CreatePhase1Task
thumb_func_start sub_80D3CA4
sub_80D3CA4: @ 80D3CA4
push {lr}
ldr r0, _080D3CB8 @ =sub_80D3CC4
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _080D3CBC
movs r0, 0
b _080D3CBE
.align 2, 0
_080D3CB8: .4byte sub_80D3CC4
_080D3CBC:
movs r0, 0x1
_080D3CBE:
pop {r1}
bx r1
thumb_func_end sub_80D3CA4
thumb_func_start sub_80D3CC4
sub_80D3CC4: @ 80D3CC4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _080D3CF4 @ =gUnknown_83FA588
ldr r2, _080D3CF8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_080D3CD6:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080D3CD6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D3CF4: .4byte gUnknown_83FA588
_080D3CF8: .4byte gTasks
thumb_func_end sub_80D3CC4
thumb_func_start Phase1_TransitionAll_Func1
Phase1_TransitionAll_Func1: @ 80D3CFC
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x14]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080D3D14
subs r0, r1, 0x1
strh r0, [r4, 0x14]
lsls r0, 16
cmp r0, 0
bne _080D3D38
_080D3D14:
ldrh r0, [r4, 0xA]
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x10]
ldrh r1, [r4, 0x16]
adds r0, r1
strh r0, [r4, 0x16]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _080D3D2C
movs r0, 0x10
strh r0, [r4, 0x16]
_080D3D2C:
movs r0, 0x1
negs r0, r0
ldrb r1, [r4, 0x16]
ldr r2, _080D3D54 @ =0x00002d6b
bl BlendPalettes
_080D3D38:
movs r2, 0x16
ldrsh r0, [r4, r2]
cmp r0, 0xF
ble _080D3D4A
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldrh r0, [r4, 0xC]
strh r0, [r4, 0x14]
_080D3D4A:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D3D54: .4byte 0x00002d6b
thumb_func_end Phase1_TransitionAll_Func1
thumb_func_start Phase1_TransitionAll_Func2
Phase1_TransitionAll_Func2: @ 80D3D58
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x14]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080D3D70
subs r0, r1, 0x1
strh r0, [r4, 0x14]
lsls r0, 16
cmp r0, 0
bne _080D3D92
_080D3D70:
ldrh r0, [r4, 0xC]
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x16]
ldrh r1, [r4, 0x12]
subs r0, r1
strh r0, [r4, 0x16]
lsls r0, 16
cmp r0, 0
bge _080D3D86
movs r0, 0
strh r0, [r4, 0x16]
_080D3D86:
movs r0, 0x1
negs r0, r0
ldrb r1, [r4, 0x16]
ldr r2, _080D3DB8 @ =0x00002d6b
bl BlendPalettes
_080D3D92:
movs r0, 0x16
ldrsh r1, [r4, r0]
cmp r1, 0
bne _080D3DC6
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
cmp r0, 0
bne _080D3DC0
ldr r0, _080D3DBC @ =sub_80D3CC4
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
b _080D3DC6
.align 2, 0
_080D3DB8: .4byte 0x00002d6b
_080D3DBC: .4byte sub_80D3CC4
_080D3DC0:
ldrh r0, [r4, 0xA]
strh r0, [r4, 0x14]
strh r1, [r4, 0x8]
_080D3DC6:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end Phase1_TransitionAll_Func2
thumb_func_start sub_80D3DD0
sub_80D3DD0: @ 80D3DD0
push {r4,lr}
ldr r4, _080D3DF0 @ =gUnknown_2039A2C
ldr r0, [r4]
movs r1, 0
movs r2, 0x3C
bl memset
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x14
adds r1, 0x16
bl sub_805A658
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080D3DF0: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3DD0
thumb_func_start sub_80D3DF4
sub_80D3DF4: @ 80D3DF4
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80D3DF4
thumb_func_start sub_80D3E08
sub_80D3E08: @ 80D3E08
push {r4,lr}
adds r4, r0, 0
movs r0, 0x8
bl GetGpuReg
lsls r0, 16
lsrs r0, 18
lsls r0, 30
lsrs r0, 16
movs r1, 0xC0
lsls r1, 19
adds r0, r1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80D3E08
thumb_func_start sub_80D3E28
sub_80D3E28: @ 80D3E28
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0x8
bl GetGpuReg
adds r4, r0, 0
lsls r4, 16
lsrs r4, 24
movs r0, 0x1F
ands r4, r0
movs r0, 0x8
bl GetGpuReg
lsls r0, 16
lsrs r0, 18
lsls r4, 11
lsls r0, 30
lsrs r0, 16
movs r1, 0xC0
lsls r1, 19
adds r4, r1
str r4, [r5]
adds r0, r1
str r0, [r6]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80D3E28
thumb_func_start sub_80D3E60
sub_80D3E60: @ 80D3E60
push {lr}
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
pop {r0}
bx r0
thumb_func_end sub_80D3E60
thumb_func_start sub_80D3E74
sub_80D3E74: @ 80D3E74
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r10, r0
ldr r0, [sp, 0x20]
ldr r4, [sp, 0x24]
lsls r1, 16
lsrs r7, r1, 16
lsls r2, 16
lsrs r2, 16
lsls r3, 16
lsrs r3, 16
lsls r0, 16
lsrs r1, r0, 16
lsls r4, 16
movs r6, 0
lsrs r5, r4, 16
cmp r4, 0
ble _080D3EDC
lsls r0, r7, 16
asrs r0, 16
mov r9, r0
lsls r1, 16
mov r8, r1
lsls r0, r3, 16
asrs r7, r0, 16
_080D3EAC:
lsls r4, r2, 16
asrs r4, 16
movs r0, 0xFF
ands r0, r4
mov r2, r8
asrs r1, r2, 16
bl Sin
lsls r1, r6, 1
add r1, r10
add r0, r9
strh r0, [r1]
lsls r1, r5, 16
ldr r0, _080D3EEC @ =0xffff0000
adds r1, r0
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
adds r4, r7
lsls r4, 16
lsrs r2, r4, 16
lsrs r5, r1, 16
cmp r1, 0
bgt _080D3EAC
_080D3EDC:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080D3EEC: .4byte 0xffff0000
thumb_func_end sub_80D3E74
thumb_func_start sub_80D3EF0
sub_80D3EF0: @ 80D3EF0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
mov r9, r0
adds r5, r2, 0
adds r4, r3, 0
lsls r1, 16
lsrs r1, 16
str r1, [sp]
lsls r5, 16
lsrs r5, 16
lsls r4, 16
lsrs r4, 16
movs r2, 0xA0
lsls r2, 1
movs r1, 0xA
bl memset
movs r1, 0
lsls r4, 16
asrs r4, 16
str r4, [sp, 0x4]
lsls r5, 16
asrs r5, 16
str r5, [sp, 0x8]
_080D3F28:
lsls r5, r1, 16
asrs r0, r5, 16
mov r10, r0
ldr r1, [sp, 0x4]
bl Sin
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r10
ldr r1, [sp, 0x4]
bl Cos
ldr r2, [sp]
lsls r1, r2, 16
asrs r1, 16
lsls r4, 16
asrs r4, 16
subs r2, r1, r4
lsls r2, 16
adds r1, r4
lsls r1, 16
lsrs r6, r1, 16
lsls r0, 16
asrs r0, 16
ldr r3, [sp, 0x8]
subs r1, r3, r0
lsls r1, 16
lsrs r7, r1, 16
adds r0, r3, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsrs r1, r2, 16
str r5, [sp, 0x10]
cmp r2, 0
bge _080D3F74
movs r1, 0
_080D3F74:
lsls r0, r6, 16
asrs r0, 16
cmp r0, 0xF0
ble _080D3F7E
movs r6, 0xF0
_080D3F7E:
lsls r0, r7, 16
cmp r0, 0
bge _080D3F86
movs r7, 0
_080D3F86:
mov r2, r8
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x9F
ble _080D3F94
movs r3, 0x9F
mov r8, r3
_080D3F94:
lsls r0, r1, 24
lsrs r0, 16
orrs r6, r0
lsls r0, r7, 16
asrs r0, 16
str r0, [sp, 0xC]
lsls r0, 1
add r0, r9
strh r6, [r0]
mov r0, r8
lsls r4, r0, 16
asrs r0, r4, 15
add r0, r9
strh r6, [r0]
mov r0, r10
adds r0, 0x1
lsls r0, 16
asrs r0, 16
ldr r1, [sp, 0x4]
bl Cos
lsls r0, 16
asrs r0, 16
ldr r2, [sp, 0x8]
subs r1, r2, r0
lsls r1, 16
adds r0, r2, r0
lsls r0, 16
lsrs r2, r0, 16
lsrs r3, r1, 16
cmp r1, 0
bge _080D3FD6
movs r3, 0
_080D3FD6:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0x9F
ble _080D3FE0
movs r2, 0x9F
_080D3FE0:
lsls r0, r3, 16
asrs r1, r0, 16
adds r3, r0, 0
lsls r5, r2, 16
ldr r0, [sp, 0xC]
cmp r0, r1
ble _080D4004
adds r2, r1, 0
_080D3FF0:
lsls r1, r7, 16
ldr r0, _080D4084 @ =0xffff0000
adds r1, r0
asrs r0, r1, 15
add r0, r9
strh r6, [r0]
lsrs r7, r1, 16
asrs r1, 16
cmp r1, r2
bgt _080D3FF0
_080D4004:
lsls r1, r7, 16
asrs r0, r3, 16
cmp r1, r3
bge _080D4022
adds r2, r0, 0
_080D400E:
movs r3, 0x80
lsls r3, 9
adds r0, r1, r3
asrs r1, r0, 15
add r1, r9
strh r6, [r1]
adds r1, r0, 0
asrs r0, r1, 16
cmp r0, r2
blt _080D400E
_080D4022:
asrs r0, r5, 16
cmp r4, r5
ble _080D4040
adds r1, r0, 0
_080D402A:
ldr r2, _080D4084 @ =0xffff0000
adds r0, r4, r2
lsrs r3, r0, 16
mov r8, r3
asrs r0, 15
add r0, r9
strh r6, [r0]
lsls r4, r3, 16
asrs r0, r4, 16
cmp r0, r1
bgt _080D402A
_080D4040:
mov r0, r8
lsls r4, r0, 16
asrs r0, r5, 16
cmp r4, r5
bge _080D4060
adds r2, r0, 0
_080D404C:
movs r1, 0x80
lsls r1, 9
adds r0, r4, r1
asrs r1, r0, 15
add r1, r9
strh r6, [r1]
adds r4, r0, 0
asrs r0, r4, 16
cmp r0, r2
blt _080D404C
_080D4060:
ldr r2, [sp, 0x10]
movs r3, 0x80
lsls r3, 9
adds r0, r2, r3
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0x3F
bgt _080D4072
b _080D3F28
_080D4072:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080D4084: .4byte 0xffff0000
thumb_func_end sub_80D3EF0
thumb_func_start sub_80D4088
sub_80D4088: @ 80D4088
push {r4-r7,lr}
adds r6, r0, 0
ldr r0, [sp, 0x14]
ldr r5, [sp, 0x18]
ldr r4, [sp, 0x1C]
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
lsls r3, 16
lsrs r3, 16
lsls r0, 16
lsrs r0, 16
adds r7, r0, 0
lsls r5, 16
lsrs r5, 16
lsls r4, 16
lsrs r4, 16
strh r1, [r6]
strh r2, [r6, 0x2]
strh r1, [r6, 0x4]
strh r2, [r6, 0x6]
strh r3, [r6, 0x8]
strh r7, [r6, 0xA]
strh r5, [r6, 0xC]
strh r4, [r6, 0xE]
lsls r3, 16
asrs r3, 16
lsls r1, 16
asrs r1, 16
subs r3, r1
strh r3, [r6, 0x10]
lsls r0, r3, 16
cmp r0, 0
bge _080D40DA
negs r0, r3
strh r0, [r6, 0x10]
lsls r0, r5, 16
asrs r0, 16
negs r0, r0
strh r0, [r6, 0xC]
_080D40DA:
lsls r0, r7, 16
asrs r0, 16
lsls r1, r2, 16
asrs r1, 16
subs r1, r0, r1
strh r1, [r6, 0x12]
lsls r0, r1, 16
cmp r0, 0
bge _080D40F8
negs r0, r1
strh r0, [r6, 0x12]
lsls r0, r4, 16
asrs r0, 16
negs r0, r0
strh r0, [r6, 0xE]
_080D40F8:
movs r0, 0
strh r0, [r6, 0x14]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80D4088
thumb_func_start sub_80D4104
sub_80D4104: @ 80D4104
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r3, r0, 0
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r2, 24
lsrs r2, 24
mov r10, r2
ldrh r0, [r3, 0x10]
mov r8, r0
movs r1, 0x10
ldrsh r6, [r3, r1]
ldrh r2, [r3, 0x12]
mov r12, r2
movs r4, 0x12
ldrsh r5, [r3, r4]
cmp r6, r5
ble _080D4154
ldrh r0, [r3, 0xC]
ldrh r2, [r3, 0x4]
adds r1, r0, r2
strh r1, [r3, 0x4]
ldrh r2, [r3, 0x14]
add r2, r12
strh r2, [r3, 0x14]
lsls r1, r2, 16
asrs r1, 16
adds r4, r0, 0
ldrh r7, [r3, 0xE]
cmp r1, r6
ble _080D417A
ldrh r1, [r3, 0x6]
adds r0, r7, r1
strh r0, [r3, 0x6]
mov r1, r8
b _080D4176
_080D4154:
ldrh r0, [r3, 0xE]
ldrh r2, [r3, 0x6]
adds r1, r0, r2
strh r1, [r3, 0x6]
ldrh r2, [r3, 0x14]
add r2, r8
strh r2, [r3, 0x14]
lsls r1, r2, 16
asrs r1, 16
ldrh r4, [r3, 0xC]
adds r7, r0, 0
cmp r1, r5
ble _080D417A
ldrh r1, [r3, 0x4]
adds r0, r4, r1
strh r0, [r3, 0x4]
mov r1, r12
_080D4176:
subs r0, r2, r1
strh r0, [r3, 0x14]
_080D417A:
movs r5, 0
lsls r0, r4, 16
asrs r2, r0, 16
cmp r2, 0
ble _080D4192
movs r4, 0x4
ldrsh r1, [r3, r4]
movs r4, 0x8
ldrsh r0, [r3, r4]
ldrh r4, [r3, 0x8]
cmp r1, r0
bge _080D41A4
_080D4192:
cmp r2, 0
bge _080D41B2
movs r0, 0x4
ldrsh r1, [r3, r0]
movs r2, 0x8
ldrsh r0, [r3, r2]
ldrh r4, [r3, 0x8]
cmp r1, r0
bgt _080D41B2
_080D41A4:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
mov r0, r9
cmp r0, 0
beq _080D41B2
strh r4, [r3, 0x4]
_080D41B2:
lsls r0, r7, 16
asrs r2, r0, 16
cmp r2, 0
ble _080D41C8
movs r4, 0x6
ldrsh r1, [r3, r4]
movs r4, 0xA
ldrsh r0, [r3, r4]
ldrh r4, [r3, 0xA]
cmp r1, r0
bge _080D41DA
_080D41C8:
cmp r2, 0
bge _080D41E8
movs r0, 0x6
ldrsh r1, [r3, r0]
movs r2, 0xA
ldrsh r0, [r3, r2]
ldrh r4, [r3, 0xA]
cmp r1, r0
bgt _080D41E8
_080D41DA:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
mov r0, r10
cmp r0, 0
beq _080D41E8
strh r4, [r3, 0x6]
_080D41E8:
cmp r5, 0x2
beq _080D41F0
movs r0, 0
b _080D41F2
_080D41F0:
movs r0, 0x1
_080D41F2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80D4104
.align 2, 0 @ Don't pad with nop.