pokeemerald/asm/rom_817B064.s
2016-11-01 12:10:55 -07:00

7995 lines
118 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start load_intro_part2_graphics
load_intro_part2_graphics: @ 817B064
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_085F0740
ldr r1, =0x06004000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F0BC0
ldr r1, =0x06007800
bl LZ77UnCompVram
ldr r0, =gUnknown_085F06E0
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
cmp r4, 0
beq _0817B08C
cmp r4, 0x1
beq _0817B0EC
_0817B08C:
ldr r0, =gUnknown_085F0DBC
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1398
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F0CFC
movs r1, 0
movs r2, 0x60
bl gpu_pal_apply
ldr r0, =gUnknown_085F5064
bl LoadCompressedObjectPic
ldr r0, =gUnknown_085F1668
movs r1, 0x80
lsls r1, 1
movs r2, 0x20
bl gpu_pal_apply
bl sub_817B76C
b _0817B11E
.pool
_0817B0EC:
ldr r0, =gUnknown_085F1824
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1EAC
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F17E4
movs r1, 0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F50EC
bl LoadCompressedObjectPic
ldr r0, =gUnknown_085F21B0
movs r1, 0x80
lsls r1, 1
movs r2, 0x20
bl gpu_pal_apply
bl sub_817B788
_0817B11E:
ldr r1, =gUnknown_0203BD28
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_0300301C
movs r0, 0x8
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end load_intro_part2_graphics
thumb_func_start sub_817B150
sub_817B150: @ 817B150
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0817B162
cmp r0, 0x1
ble _0817B162
cmp r0, 0x2
beq _0817B194
_0817B162:
ldr r1, =0x00000603
movs r0, 0xE
bl SetGpuReg
ldr r1, =0x00000702
movs r0, 0xC
bl SetGpuReg
ldr r1, =0x00000f05
movs r0, 0xA
bl SetGpuReg
movs r1, 0xF2
lsls r1, 5
movs r0, 0
bl SetGpuReg
b _0817B1B6
.pool
_0817B194:
ldr r1, =0x00000603
movs r0, 0xE
bl SetGpuReg
ldr r1, =0x00000702
movs r0, 0xC
bl SetGpuReg
ldr r1, =0x00000f05
movs r0, 0xA
bl SetGpuReg
movs r1, 0xF2
lsls r1, 5
movs r0, 0
bl SetGpuReg
_0817B1B6:
pop {r0}
bx r0
.pool
thumb_func_end sub_817B150
thumb_func_start sub_817B1C8
sub_817B1C8: @ 817B1C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_085F0740
ldr r1, =0x06004000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F0BC0
ldr r1, =0x06007800
bl LZ77UnCompVram
cmp r4, 0x4
bhi _0817B214
lsls r0, r4, 2
ldr r1, =_0817B200
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0817B200:
.4byte _0817B214
.4byte _0817B270
.4byte _0817B2DC
.4byte _0817B2DC
.4byte _0817B334
_0817B214:
ldr r0, =gUnknown_085F06E0
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F0DBC
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1398
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F0CFC
movs r1, 0
movs r2, 0x60
bl gpu_pal_apply
ldr r0, =gUnknown_085F5064
bl LoadCompressedObjectPic
ldr r0, =gUnknown_085F16A8
ldr r1, =0x06010000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1668
b _0817B2A6
.pool
_0817B270:
ldr r0, =gUnknown_085F0700
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F0DBC
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1398
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F0D5C
movs r1, 0
movs r2, 0x60
bl gpu_pal_apply
ldr r0, =gUnknown_085F5064
bl LoadCompressedObjectPic
ldr r0, =gUnknown_085F16A8
ldr r1, =0x06010000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1688
_0817B2A6:
movs r1, 0x80
lsls r1, 1
movs r2, 0x20
bl gpu_pal_apply
bl sub_817B76C
b _0817B370
.pool
_0817B2DC:
ldr r0, =gUnknown_085F0700
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F1824
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F1EAC
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r4, =gUnknown_085F1804
adds r0, r4, 0
movs r1, 0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F50EC
bl LoadCompressedObjectPic
movs r1, 0x80
lsls r1, 1
adds r0, r4, 0
movs r2, 0x20
bl gpu_pal_apply
bl sub_817B788
b _0817B370
.pool
_0817B334:
ldr r0, =gUnknown_085F0720
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
ldr r0, =gUnknown_085F235C
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
ldr r0, =gUnknown_085F2568
ldr r1, =0x06003000
bl LZ77UnCompVram
ldr r0, =gUnknown_085F231C
movs r1, 0
movs r2, 0x40
bl gpu_pal_apply
ldr r0, =gUnknown_085F5180
bl LoadCompressedObjectPic
ldr r0, =gUnknown_085F2548
movs r1, 0x80
lsls r1, 1
movs r2, 0x20
bl gpu_pal_apply
bl sub_817B7A4
_0817B370:
ldr r1, =gUnknown_0300301C
movs r0, 0x8
strb r0, [r1]
ldr r1, =gUnknown_0203BD28
movs r0, 0
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B1C8
thumb_func_start sub_817B3A8
sub_817B3A8: @ 817B3A8
push {lr}
ldr r1, =0x00000603
movs r0, 0xE
bl SetGpuReg
ldr r1, =0x00000702
movs r0, 0xC
bl SetGpuReg
ldr r1, =0x00000f05
movs r0, 0xA
bl SetGpuReg
movs r1, 0xFA
lsls r1, 5
movs r0, 0
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_817B3A8
thumb_func_start sub_817B3DC
sub_817B3DC: @ 817B3DC
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
lsls r6, 16
lsrs r6, 16
mov r0, r8
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r3, 16
lsrs r3, 16
ldr r1, =sub_817B458
mov r9, r1
mov r0, r9
movs r1, 0
str r3, [sp]
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0
strh r5, [r0, 0x8]
strh r6, [r0, 0xA]
strh r2, [r0, 0xC]
strh r2, [r0, 0xE]
mov r1, r8
strh r1, [r0, 0x10]
strh r2, [r0, 0x12]
strh r2, [r0, 0x14]
ldr r3, [sp]
strh r3, [r0, 0x16]
movs r1, 0x8
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
adds r0, r4, 0
bl _call_via_r9
adds r0, r4, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_817B3DC
thumb_func_start sub_817B458
sub_817B458: @ 817B458
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0xA]
lsls r2, r0, 16
cmp r2, 0
beq _0817B4A0
movs r1, 0xC
ldrsh r0, [r4, r1]
lsls r0, 16
ldrh r1, [r4, 0xE]
adds r1, r0, r1
lsrs r0, r2, 12
subs r1, r0
asrs r0, r1, 16
strh r0, [r4, 0xC]
strh r1, [r4, 0xE]
ldrh r1, [r4, 0xC]
movs r0, 0x14
bl SetGpuReg
ldr r2, =gUnknown_0203BD24
ldr r0, =gUnknown_0203BD26
ldrh r1, [r0]
ldrh r2, [r2]
adds r1, r2
lsls r1, 16
lsrs r1, 16
movs r0, 0x16
bl SetGpuReg
_0817B4A0:
ldrh r0, [r4, 0x10]
lsls r2, r0, 16
cmp r2, 0
beq _0817B4FA
movs r1, 0x12
ldrsh r0, [r4, r1]
lsls r0, 16
ldrh r1, [r4, 0x14]
adds r1, r0, r1
lsrs r0, r2, 12
subs r1, r0
asrs r0, r1, 16
strh r0, [r4, 0x12]
strh r1, [r4, 0x14]
ldrh r1, [r4, 0x12]
movs r0, 0x18
bl SetGpuReg
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0817B4F0
ldr r2, =gUnknown_0203BD24
ldr r0, =gUnknown_0203BD26
ldrh r1, [r0]
ldrh r2, [r2]
adds r1, r2
lsls r1, 16
lsrs r1, 16
movs r0, 0x1A
bl SetGpuReg
b _0817B4FA
.pool
_0817B4F0:
ldr r0, =gUnknown_0203BD24
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
_0817B4FA:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r2, r1, r0
ldrh r0, [r2, 0x16]
lsls r3, r0, 16
cmp r3, 0
beq _0817B532
movs r1, 0x18
ldrsh r0, [r2, r1]
lsls r0, 16
ldrh r1, [r2, 0x1A]
adds r1, r0, r1
lsrs r0, r3, 12
subs r1, r0
asrs r0, r1, 16
strh r0, [r2, 0x18]
strh r1, [r2, 0x1A]
ldrh r1, [r2, 0x18]
movs r0, 0x1C
bl SetGpuReg
ldr r0, =gUnknown_0203BD24
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
_0817B532:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B458
thumb_func_start sub_817B540
sub_817B540: @ 817B540
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0817B620
cmp r0, 0x1
ble _0817B554
cmp r0, 0x2
beq _0817B5B8
_0817B554:
ldr r0, =gUnknown_030022C0
ldr r2, [r0, 0x20]
movs r0, 0x3
ands r0, r2
cmp r0, 0
bne _0817B620
ldr r0, =gUnknown_02037FD4
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0817B620
movs r0, 0x4
ands r2, r0
cmp r2, 0
beq _0817B58C
ldr r2, =gUnknown_02037714
ldrh r1, [r2, 0x12]
mov r0, sp
strh r1, [r0]
ldrh r1, [r2, 0x14]
b _0817B596
.pool
_0817B58C:
ldr r2, =gUnknown_02037714
ldrh r1, [r2, 0x14]
mov r0, sp
strh r1, [r0]
ldrh r1, [r2, 0x12]
_0817B596:
adds r0, 0x2
strh r1, [r0]
adds r4, r0, 0
mov r0, sp
movs r1, 0x9
movs r2, 0x2
bl gpu_pal_apply
adds r0, r4, 0
movs r1, 0xA
movs r2, 0x2
bl gpu_pal_apply
b _0817B620
.pool
_0817B5B8:
ldr r0, =gUnknown_030022C0
ldr r2, [r0, 0x20]
movs r0, 0x3
ands r0, r2
cmp r0, 0
bne _0817B620
ldr r0, =gUnknown_02037FD4
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0817B620
movs r0, 0x4
ands r2, r0
cmp r2, 0
beq _0817B5F8
mov r1, sp
ldr r2, =0x00003d27
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
ldr r2, =0x00000295
b _0817B606
.pool
_0817B5F8:
mov r1, sp
movs r2, 0xC7
lsls r2, 2
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
ldr r2, =0x00003d27
_0817B606:
adds r0, r2, 0
strh r0, [r1]
adds r4, r1, 0
mov r0, sp
movs r1, 0xC
movs r2, 0x2
bl gpu_pal_apply
adds r0, r4, 0
movs r1, 0xD
movs r2, 0x2
bl gpu_pal_apply
_0817B620:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B540
thumb_func_start sub_817B62C
sub_817B62C: @ 817B62C
push {lr}
adds r2, r0, 0
ldr r0, =gUnknown_0203BD28
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x2
beq _0817B690
cmp r0, 0
beq _0817B64C
adds r0, r2, 0
bl RemoveObjectAndFreeTiles
b _0817B690
.pool
_0817B64C:
movs r1, 0x20
ldrsh r0, [r2, r1]
lsls r0, 16
ldrh r1, [r2, 0x32]
orrs r0, r1
ldrh r1, [r2, 0x30]
adds r0, r1
asrs r1, r0, 16
strh r1, [r2, 0x20]
strh r0, [r2, 0x32]
cmp r1, 0xFF
ble _0817B668
ldr r0, =0x0000ffe0
strh r0, [r2, 0x20]
_0817B668:
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
beq _0817B688
ldr r1, =gUnknown_0203BD24
ldr r0, =gUnknown_0203BD26
ldrh r0, [r0]
ldrh r1, [r1]
adds r0, r1
b _0817B68C
.pool
_0817B688:
ldr r0, =gUnknown_0203BD24
ldrh r0, [r0]
_0817B68C:
negs r0, r0
strh r0, [r2, 0x26]
_0817B690:
pop {r0}
bx r0
.pool
thumb_func_end sub_817B62C
thumb_func_start sub_817B698
sub_817B698: @ 817B698
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
str r1, [sp, 0x4]
str r2, [sp, 0x8]
lsls r0, 24
lsrs r0, 24
str r0, [sp]
lsls r3, 24
lsrs r3, 24
mov r8, r3
movs r7, 0
cmp r7, r8
bcs _0817B74E
ldr r0, =gUnknown_02020630
mov r10, r0
movs r2, 0x3F
mov r9, r2
_0817B6C2:
lsls r6, r7, 3
ldr r0, [sp, 0x4]
adds r6, r0
ldrb r1, [r6, 0x1]
ldrb r2, [r6, 0x2]
ldrb r3, [r6, 0x3]
ldr r0, =gUnknown_085F504C
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
lsls r5, r0, 4
adds r5, r0
lsls r5, 2
mov r2, r10
adds r4, r5, r2
ldrb r2, [r6]
lsls r1, r2, 26
lsrs r1, 30
lsrs r2, 6
adds r0, r4, 0
movs r3, 0
bl CalcVecFromObjectCenterToObjectUpperLeft
ldrb r3, [r4, 0x5]
movs r0, 0xC
orrs r3, r0
strb r3, [r4, 0x5]
ldrb r1, [r6]
lsls r1, 26
lsrs r1, 30
lsls r1, 6
ldrb r2, [r4, 0x1]
mov r0, r9
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
ldrb r1, [r6]
lsrs r1, 6
lsls r1, 6
ldrb r2, [r4, 0x3]
mov r0, r9
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x3]
movs r0, 0xF
ands r3, r0
strb r3, [r4, 0x5]
ldr r0, =gUnknown_02020638
adds r5, r0
ldr r2, [sp, 0x8]
str r2, [r5]
ldrb r1, [r6]
lsls r1, 28
lsrs r1, 28
adds r0, r4, 0
bl StartObjectImageAnim
movs r1, 0
mov r0, sp
ldrh r0, [r0]
strh r0, [r4, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x30]
strh r1, [r4, 0x32]
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, r8
bcc _0817B6C2
_0817B74E:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B698
thumb_func_start sub_817B76C
sub_817B76C: @ 817B76C
push {lr}
ldr r1, =gUnknown_085F50A4
ldr r2, =gUnknown_085F5094
movs r0, 0
movs r3, 0x9
bl sub_817B698
pop {r0}
bx r0
.pool
thumb_func_end sub_817B76C
thumb_func_start sub_817B788
sub_817B788: @ 817B788
push {lr}
ldr r1, =gUnknown_085F5120
ldr r2, =gUnknown_085F5114
movs r0, 0x1
movs r3, 0xC
bl sub_817B698
pop {r0}
bx r0
.pool
thumb_func_end sub_817B788
thumb_func_start sub_817B7A4
sub_817B7A4: @ 817B7A4
push {lr}
ldr r1, =gUnknown_085F519C
ldr r2, =gUnknown_085F5198
movs r0, 0x1
movs r3, 0x6
bl sub_817B698
pop {r0}
bx r0
.pool
thumb_func_end sub_817B7A4
thumb_func_start nullsub_65
nullsub_65: @ 817B7C0
bx lr
thumb_func_end nullsub_65
thumb_func_start sub_817B7C4
sub_817B7C4: @ 817B7C4
push {r4,lr}
ldr r4, =gUnknown_02020630
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r1, [r1]
movs r2, 0x3E
adds r2, r0
mov r12, r2
movs r2, 0x4
ands r2, r1
mov r1, r12
ldrb r3, [r1]
movs r1, 0x5
negs r1, r1
ands r1, r3
orrs r1, r2
mov r2, r12
strb r1, [r2]
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x20]
strh r1, [r0, 0x20]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x24]
strh r1, [r0, 0x24]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x26]
strh r1, [r0, 0x26]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B7C4
thumb_func_start sub_817B834
sub_817B834: @ 817B834
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
ldr r0, =gUnknown_085F51EC
lsls r5, 16
asrs r5, 16
lsls r4, 16
asrs r4, 16
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x2
bl AddObjectToFront
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
ldr r0, =gUnknown_085F523C
adds r4, 0x8
lsls r4, 16
asrs r4, 16
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x3
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
ldr r2, =gUnknown_02020630
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
strh r6, [r1, 0x2E]
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_817B834
thumb_func_start sub_817B88C
sub_817B88C: @ 817B88C
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
ldr r0, =gUnknown_085F5204
lsls r5, 16
asrs r5, 16
lsls r4, 16
asrs r4, 16
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x2
bl AddObjectToFront
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
ldr r0, =gUnknown_085F5254
adds r4, 0x8
lsls r4, 16
asrs r4, 16
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x3
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
ldr r2, =gUnknown_02020630
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
strh r6, [r1, 0x2E]
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_817B88C
thumb_func_start nullsub_66
nullsub_66: @ 817B8E4
bx lr
thumb_func_end nullsub_66
thumb_func_start sub_817B8E8
sub_817B8E8: @ 817B8E8
push {r4,lr}
ldr r4, =gUnknown_02020630
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r1, [r1]
movs r2, 0x3E
adds r2, r0
mov r12, r2
movs r2, 0x4
ands r2, r1
mov r1, r12
ldrb r3, [r1]
movs r1, 0x5
negs r1, r1
ands r1, r3
orrs r1, r2
mov r2, r12
strb r1, [r2]
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x22]
strh r1, [r0, 0x22]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x24]
strh r1, [r0, 0x24]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x26]
strh r1, [r0, 0x26]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817B8E8
thumb_func_start sub_817B948
sub_817B948: @ 817B948
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r2, r0, 0
adds r5, r1, 0
ldr r0, =gUnknown_085F528C
mov r8, r0
lsls r2, 16
asrs r4, r2, 16
ldr r0, =0xffe00000
adds r2, r0
asrs r2, 16
lsls r5, 16
asrs r5, 16
mov r0, r8
adds r1, r2, 0
adds r2, r5, 0
movs r3, 0x5
bl AddObjectToFront
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
adds r4, 0x20
lsls r4, 16
asrs r4, 16
mov r0, r8
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x6
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02020630
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r0, r4, r5
strh r6, [r0, 0x2E]
movs r1, 0x1
bl StartObjectImageAnim
adds r5, 0x1C
adds r4, r5
ldr r0, =sub_817B8E8
str r0, [r4]
adds r0, r6, 0
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_817B948
thumb_func_start sub_817B9C4
sub_817B9C4: @ 817B9C4
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r2, r0, 0
adds r5, r1, 0
ldr r0, =gUnknown_085F52A4
mov r8, r0
lsls r2, 16
asrs r4, r2, 16
ldr r0, =0xffe00000
adds r2, r0
asrs r2, 16
lsls r5, 16
asrs r5, 16
mov r0, r8
adds r1, r2, 0
adds r2, r5, 0
movs r3, 0x5
bl AddObjectToFront
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
adds r4, 0x20
lsls r4, 16
asrs r4, 16
mov r0, r8
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x6
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02020630
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r0, r4, r5
strh r6, [r0, 0x2E]
movs r1, 0x1
bl StartObjectImageAnim
adds r5, 0x1C
adds r4, r5
ldr r0, =sub_817B8E8
str r0, [r4]
adds r0, r6, 0
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_817B9C4
thumb_func_start nullsub_67
nullsub_67: @ 817BA40
bx lr
thumb_func_end nullsub_67
thumb_func_start sub_817BA44
sub_817BA44: @ 817BA44
push {r4,r5,lr}
sub sp, 0x4
movs r4, 0
ldr r5, =gUnknown_085F5458
_0817BA4C:
adds r0, r4, 0
adds r0, 0x14
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 1
adds r1, r5
ldrh r1, [r1]
str r1, [sp]
movs r2, 0
movs r3, 0
bl SetSpriteTransformationMatrix
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0xB
bls _0817BA4C
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BA44
thumb_func_start sub_817BA7C
sub_817BA7C: @ 817BA7C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r0, 0x8
ble _0817BB2A
movs r2, 0x3C
ldrsh r0, [r4, r2]
adds r1, r0, 0
muls r1, r0
adds r0, r1, 0
movs r1, 0x50
bl __divsi3
movs r1, 0x58
subs r1, r0
strh r1, [r4, 0x22]
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl sine
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _0817BAB6
adds r0, 0x3
_0817BAB6:
asrs r0, 2
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x3A]
adds r0, 0x4
strh r0, [r4, 0x3A]
ldrh r1, [r4, 0x3C]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0817BAE0
ldrh r0, [r4, 0x38]
subs r0, 0x1
strh r0, [r4, 0x38]
_0817BAE0:
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
movs r1, 0x26
ldrsh r0, [r4, r1]
cmp r0, 0
ble _0817BAF6
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1
b _0817BAFC
_0817BAF6:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x14
_0817BAFC:
strb r0, [r1]
movs r2, 0x38
ldrsh r0, [r4, r2]
cmp r0, 0
bge _0817BB08
adds r0, 0x3
_0817BB08:
asrs r0, 2
adds r0, 0x14
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1F
bls _0817BB16
movs r2, 0x1F
_0817BB16:
movs r0, 0x1F
ands r2, r0
lsls r2, 1
ldrb r1, [r4, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x3]
b _0817BB30
_0817BB2A:
adds r0, r4, 0
bl RemoveObjectAndFreeTiles
_0817BB30:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_817BA7C
thumb_func_start sub_817BB38
sub_817BB38: @ 817BB38
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gUnknown_085F5440
movs r1, 0x78
movs r2, 0x58
movs r3, 0
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _0817BB82
ldr r4, =gUnknown_02020630
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r2, r3, r4
movs r1, 0
movs r0, 0x30
strh r0, [r2, 0x38]
strh r5, [r2, 0x3A]
strh r1, [r2, 0x3C]
ldrb r1, [r2, 0x1]
subs r0, 0x34
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r2, 0x3]
movs r1, 0x3E
orrs r0, r1
strb r0, [r2, 0x3]
adds r4, 0x1C
adds r3, r4
ldr r0, =sub_817BA7C
str r0, [r3]
_0817BB82:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BB38
thumb_func_start sub_817BB94
sub_817BB94: @ 817BB94
push {r4,lr}
adds r4, r0, 0
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r0, 0x57
bgt _0817BBFA
movs r2, 0x3C
ldrsh r0, [r4, r2]
adds r1, r0, 0
muls r1, r0
adds r0, r1, 0
movs r1, 0x5
bl __divsi3
adds r0, 0x8
strh r0, [r4, 0x22]
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl sine
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _0817BBCC
adds r0, 0x3
_0817BBCC:
asrs r0, 2
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x24]
movs r1, 0x3C
ldrsh r0, [r4, r1]
lsls r0, 26
lsrs r0, 24
movs r1, 0x28
bl sine
adds r0, 0x8
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
b _0817BC00
_0817BBFA:
adds r0, r4, 0
bl RemoveObjectAndFreeTiles
_0817BC00:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_817BB94
thumb_func_start sub_817BC08
sub_817BC08: @ 817BC08
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gUnknown_085F5440
movs r1, 0x78
movs r2, 0x8
movs r3, 0
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _0817BC5E
ldr r4, =gUnknown_02020630
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r2, r3, r4
movs r1, 0
movs r0, 0x8
strh r0, [r2, 0x38]
strh r5, [r2, 0x3A]
strh r1, [r2, 0x3C]
ldrb r1, [r2, 0x1]
subs r0, 0xC
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x32
orrs r0, r1
strb r0, [r2, 0x3]
adds r2, 0x43
movs r0, 0x1
strb r0, [r2]
adds r4, 0x1C
adds r3, r4
ldr r0, =sub_817BB94
str r0, [r3]
_0817BC5E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BC08
thumb_func_start sub_817BC70
sub_817BC70: @ 817BC70
push {r4,lr}
adds r4, r0, 0
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x8
ble _0817BCAC
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl sine
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x38]
ldrh r1, [r4, 0x34]
subs r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x3A]
adds r0, 0x4
strh r0, [r4, 0x3A]
b _0817BCB2
_0817BCAC:
adds r0, r4, 0
bl RemoveObjectAndFreeTiles
_0817BCB2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_817BC70
thumb_func_start sub_817BCB8
sub_817BCB8: @ 817BCB8
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gUnknown_085F5440
movs r1, 0x78
movs r2, 0x38
movs r3, 0
bl AddObjectToFront
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _0817BD0E
ldr r4, =gUnknown_02020630
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r2, r3, r4
movs r1, 0
strh r5, [r2, 0x34]
movs r0, 0x78
strh r0, [r2, 0x38]
strh r6, [r2, 0x3A]
strh r1, [r2, 0x3C]
ldrb r1, [r2, 0x1]
subs r0, 0x7C
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r2, 0x3]
movs r1, 0x3E
orrs r0, r1
strb r0, [r2, 0x3]
adds r2, 0x43
movs r0, 0x1
strb r0, [r2]
adds r4, 0x1C
adds r3, r4
ldr r0, =sub_817BC70
str r0, [r3]
_0817BD0E:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BCB8
thumb_func_start sub_817BD20
sub_817BD20: @ 817BD20
push {r4,r5,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x3C]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0817BD34
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
_0817BD34:
ldrh r1, [r4, 0x3A]
movs r2, 0x3A
ldrsh r0, [r4, r2]
cmp r0, 0x7F
bgt _0817BDE4
lsls r0, r1, 24
lsrs r0, 24
movs r5, 0x38
ldrsh r1, [r4, r5]
bl sine
negs r0, r0
strh r0, [r4, 0x26]
movs r0, 0x34
ldrsh r1, [r4, r0]
movs r2, 0x3C
ldrsh r0, [r4, r2]
muls r0, r1
movs r1, 0x3
bl __divsi3
adds r0, 0x78
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x3A]
adds r3, r0, 0x1
strh r3, [r4, 0x3A]
movs r5, 0x3A
ldrsh r1, [r4, r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
cmp r0, 0
bge _0817BD78
adds r0, 0x7F
_0817BD78:
asrs r0, 7
movs r1, 0x1F
subs r1, r0
lsls r1, 24
lsrs r2, r1, 24
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0x40
ble _0817BD94
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1
strb r0, [r1]
b _0817BDC4
_0817BD94:
adds r3, r4, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x14
strb r0, [r1]
ldrh r1, [r4, 0x3A]
movs r5, 0x3A
ldrsh r0, [r4, r5]
cmp r0, 0x70
ble _0817BDC4
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0817BDC4
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
strb r0, [r3]
_0817BDC4:
cmp r2, 0x13
bhi _0817BDCA
movs r2, 0x14
_0817BDCA:
movs r0, 0x1F
ands r2, r0
lsls r2, 1
ldrb r1, [r4, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x3]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
b _0817BDEA
_0817BDE4:
adds r0, r4, 0
bl RemoveObjectAndFreeTiles
_0817BDEA:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_817BD20
thumb_func_start sub_817BDF0
sub_817BDF0: @ 817BDF0
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gUnknown_085F5440
movs r1, 0x78
movs r2, 0x38
movs r3, 0
bl AddObjectToFront
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x40
beq _0817BE60
bl GenerateRandomNumber
ldr r6, =gUnknown_02020630
lsls r5, r4, 4
adds r5, r4
lsls r5, 2
adds r4, r5, r6
lsls r0, 16
lsrs r0, 16
movs r1, 0x7
bl __umodsi3
movs r1, 0x3
subs r1, r0
movs r0, 0
mov r8, r0
strh r1, [r4, 0x34]
bl GenerateRandomNumber
movs r1, 0x3F
ands r1, r0
adds r1, 0x30
strh r1, [r4, 0x38]
mov r0, r8
strh r0, [r4, 0x3C]
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
ldrb r0, [r4, 0x3]
movs r1, 0x3E
orrs r0, r1
strb r0, [r4, 0x3]
adds r4, 0x43
movs r0, 0x14
strb r0, [r4]
adds r6, 0x1C
adds r5, r6
ldr r0, =sub_817BD20
str r0, [r5]
_0817BE60:
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BDF0
thumb_func_start sub_817BE78
sub_817BE78: @ 817BE78
push {lr}
ldr r0, =gUnknown_085F540C
bl LoadCompressedObjectPicUsingHeap
ldr r0, =gUnknown_085F541C
bl LoadTaggedObjectPalettes
pop {r0}
bx r0
.pool
thumb_func_end sub_817BE78
thumb_func_start sub_817BE94
sub_817BE94: @ 817BE94
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, =sub_817BEC4
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xA]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_817BE94
thumb_func_start sub_817BEC4
sub_817BEC4: @ 817BEC4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_817BA44
ldr r0, =gTasks
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r5, r0
movs r0, 0
strh r0, [r5, 0x26]
movs r0, 0xA
ldrsh r1, [r5, r0]
movs r0, 0x3
lsls r0, r1
ldr r1, =0x00007fff
str r1, [sp]
movs r1, 0xA
movs r2, 0
movs r3, 0x10
bl pal_fade_maybe
ldr r0, =sub_817BF14
str r0, [r5]
movs r0, 0x8C
bl audio_play
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BEC4
thumb_func_start sub_817BF14
sub_817BF14: @ 817BF14
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0x26]
movs r4, 0x26
ldrsh r0, [r1, r4]
cmp r0, 0x3F
bgt _0817BF70
movs r0, 0x7
ands r0, r2
adds r7, r3, 0
cmp r0, 0
bne _0817BF5A
movs r4, 0
adds r6, r1, 0
_0817BF3C:
ldrh r1, [r6, 0x26]
movs r0, 0x78
ands r0, r1
lsls r0, 1
lsls r1, r4, 6
adds r0, r1
lsls r0, 24
lsrs r0, 24
bl sub_817BB38
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _0817BF3C
_0817BF5A:
ldr r0, =gTasks
adds r1, r7, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _0817BF78
.pool
_0817BF70:
movs r0, 0x60
strh r0, [r1, 0x26]
ldr r0, =sub_817BF84
str r0, [r1]
_0817BF78:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BF14
thumb_func_start sub_817BF84
sub_817BF84: @ 817BF84
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0, r1
ldrh r3, [r1, 0x26]
movs r4, 0x26
ldrsh r0, [r1, r4]
cmp r0, 0
beq _0817BFA8
subs r0, r3, 0x1
strh r0, [r1, 0x26]
b _0817BFAE
.pool
_0817BFA8:
adds r0, r2, 0
bl DestroyTask
_0817BFAE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_817BF84
thumb_func_start sub_817BFB4
sub_817BFB4: @ 817BFB4
push {lr}
ldr r0, =sub_817BFCC
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_817BFB4
thumb_func_start sub_817BFCC
sub_817BFCC: @ 817BFCC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_817BA44
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x26]
ldr r1, =sub_817C000
str r1, [r0]
movs r0, 0xB7
bl audio_play
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817BFCC
thumb_func_start sub_817C000
sub_817C000: @ 817C000
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r1, r0, r1
movs r3, 0x26
ldrsh r0, [r1, r3]
cmp r0, 0x5F
bgt _0817C048
adds r6, r2, 0
cmp r0, 0x5
bgt _0817C032
movs r4, 0
_0817C020:
lsls r0, r4, 28
lsrs r0, 24
bl sub_817BC08
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x8
bls _0817C020
_0817C032:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _0817C04C
.pool
_0817C048:
ldr r0, =sub_817C058
str r0, [r1]
_0817C04C:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C000
thumb_func_start sub_817C058
sub_817C058: @ 817C058
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
thumb_func_end sub_817C058
thumb_func_start sub_817C068
sub_817C068: @ 817C068
push {lr}
ldr r0, =sub_817C080
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_817C068
thumb_func_start sub_817C080
sub_817C080: @ 817C080
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_817BA44
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x26]
ldr r1, =sub_817C0B4
str r1, [r0]
movs r0, 0x66
bl audio_play
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C080
thumb_func_start sub_817C0B4
sub_817C0B4: @ 817C0B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r1, r0, r1
movs r3, 0x26
ldrsh r0, [r1, r3]
cmp r0, 0x2F
bgt _0817C124
adds r6, r2, 0
cmp r0, 0
bne _0817C0E8
movs r4, 0
_0817C0D4:
lsls r0, r4, 28
lsrs r0, 24
movs r1, 0x4
bl sub_817BCB8
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0817C0D4
_0817C0E8:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
movs r2, 0x26
ldrsh r0, [r1, r2]
cmp r0, 0x20
bne _0817C10E
movs r4, 0
_0817C0FA:
lsls r0, r4, 28
lsrs r0, 24
movs r1, 0x8
bl sub_817BCB8
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0817C0FA
_0817C10E:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _0817C128
.pool
_0817C124:
ldr r0, =sub_817C134
str r0, [r1]
_0817C128:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C0B4
thumb_func_start sub_817C134
sub_817C134: @ 817C134
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
thumb_func_end sub_817C134
thumb_func_start sub_817C144
sub_817C144: @ 817C144
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, =sub_817C174
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xC]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_817C144
thumb_func_start sub_817C174
sub_817C174: @ 817C174
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_817BA44
ldr r0, =gTasks
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r5, r0
movs r0, 0
strh r0, [r5, 0x26]
ldr r0, =gUnknown_02037B54
ldr r1, =gUnknown_02037754
movs r2, 0x30
bl CpuSet
ldr r0, =0xfff9041c
ldr r1, =0x00007fff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl pal_fade_maybe
ldr r0, =sub_817C1D4
str r0, [r5]
movs r0, 0xCA
bl audio_play
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C174
thumb_func_start sub_817C1D4
sub_817C1D4: @ 817C1D4
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r5, r6, 2
adds r0, r5, r6
lsls r0, 3
adds r1, r0, r1
movs r0, 0x26
ldrsh r2, [r1, r0]
cmp r2, 0x7F
bgt _0817C250
adds r0, r2, 0
cmp r0, 0
beq _0817C210
cmp r0, 0x20
beq _0817C224
cmp r2, 0x31
bgt _0817C234
bl GenerateRandomNumber
movs r1, 0x7
ands r0, r1
bl sub_817BDF0
b _0817C234
.pool
_0817C210:
movs r4, 0
_0817C212:
adds r0, r4, 0
bl sub_817BDF0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _0817C212
b _0817C234
_0817C224:
ldr r0, =0xffff041c
ldr r1, =0x00007fff
str r1, [sp]
movs r1, 0x10
movs r2, 0x10
movs r3, 0
bl pal_fade_maybe
_0817C234:
ldr r0, =gTasks
adds r1, r5, r6
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _0817C254
.pool
_0817C250:
ldr r0, =sub_817C260
str r0, [r1]
_0817C254:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C1D4
thumb_func_start sub_817C260
sub_817C260: @ 817C260
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gUnknown_02037FD4
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0817C278
adds r0, r2, 0
bl DestroyTask
_0817C278:
pop {r0}
bx r0
.pool
thumb_func_end sub_817C260
thumb_func_start sub_817C280
sub_817C280: @ 817C280
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, =sub_817C2B0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xC]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_817C280
thumb_func_start sub_817C2B0
sub_817C2B0: @ 817C2B0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_817BA44
ldr r0, =gTasks
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r5, r0
movs r0, 0
strh r0, [r5, 0x26]
ldr r0, =gUnknown_02037B54
ldr r1, =gUnknown_02037754
movs r2, 0x30
bl CpuSet
ldr r0, =0xfff90400
ldr r1, =0x00007fff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl pal_fade_maybe
ldr r0, =sub_817C310
str r0, [r5]
movs r0, 0xCA
bl audio_play
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C2B0
thumb_func_start sub_817C310
sub_817C310: @ 817C310
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r5, r6, 2
adds r0, r5, r6
lsls r0, 3
adds r1, r0, r1
movs r0, 0x26
ldrsh r2, [r1, r0]
cmp r2, 0x7F
bgt _0817C38C
adds r0, r2, 0
cmp r0, 0
beq _0817C34C
cmp r0, 0x20
beq _0817C360
cmp r2, 0x31
bgt _0817C370
bl GenerateRandomNumber
movs r1, 0x7
ands r0, r1
bl sub_817BDF0
b _0817C370
.pool
_0817C34C:
movs r4, 0
_0817C34E:
adds r0, r4, 0
bl sub_817BDF0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _0817C34E
b _0817C370
_0817C360:
ldr r0, =0xffff0400
ldr r1, =0x00007fff
str r1, [sp]
movs r1, 0x10
movs r2, 0x10
movs r3, 0
bl pal_fade_maybe
_0817C370:
ldr r0, =gTasks
adds r1, r5, r6
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _0817C390
.pool
_0817C38C:
ldr r0, =sub_817C260
str r0, [r1]
_0817C390:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C310
thumb_func_start nullsub_68
nullsub_68: @ 817C39C
bx lr
thumb_func_end nullsub_68
thumb_func_start sub_817C3A0
sub_817C3A0: @ 817C3A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r7, r1, 24
movs r1, 0
ldr r3, =sub_817C4EC
ldr r2, =0x00007fff
_0817C3BA:
lsls r0, r1, 1
add r0, sp
adds r0, 0x4
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xF
bls _0817C3BA
adds r0, r3, 0
movs r1, 0
bl CreateTask
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gTasks
mov r1, r8
lsls r6, r1, 2
add r6, r8
lsls r6, 3
adds r6, r0
strh r5, [r6, 0xA]
strh r7, [r6, 0xC]
movs r1, 0x80
lsls r1, 1
strh r1, [r6, 0xE]
movs r0, 0x10
strh r0, [r6, 0x10]
movs r4, 0x80
lsls r4, 9
str r1, [sp]
movs r0, 0x1E
movs r2, 0
movs r3, 0
bl SetSpriteTransformationMatrix
movs r0, 0x10
ldrsh r1, [r6, r0]
adds r0, r4, 0
bl __divsi3
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
str r1, [sp]
movs r0, 0x1F
movs r2, 0
movs r3, 0
bl SetSpriteTransformationMatrix
ldr r1, =gUnknown_02020630
mov r9, r1
lsls r2, r5, 4
adds r2, r5
lsls r2, 2
mov r3, r9
adds r3, 0x1C
adds r0, r2, r3
ldr r1, =nullsub_68
str r1, [r0]
add r2, r9
ldrb r1, [r2, 0x1]
movs r4, 0x4
negs r4, r4
adds r0, r4, 0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x3C
orrs r0, r1
strb r0, [r2, 0x3]
movs r0, 0x3E
adds r0, r2
mov r10, r0
ldrb r1, [r0]
movs r5, 0x5
negs r5, r5
adds r0, r5, 0
ands r0, r1
mov r1, r10
strb r0, [r1]
ldrb r1, [r2, 0x5]
lsrs r1, 4
lsls r1, 5
ldr r0, =gUnknown_02037D14
mov r10, r0
add r1, r10
add r0, sp, 0x4
movs r2, 0x10
str r3, [sp, 0x24]
bl CpuSet
lsls r1, r7, 4
adds r1, r7
lsls r1, 2
ldr r3, [sp, 0x24]
adds r3, r1, r3
ldr r0, =nullsub_68
str r0, [r3]
add r1, r9
ldrb r0, [r1, 0x1]
ands r4, r0
movs r0, 0x1
orrs r4, r0
strb r4, [r1, 0x1]
ldrb r0, [r1, 0x3]
movs r2, 0x3E
orrs r0, r2
strb r0, [r1, 0x3]
adds r2, r1, 0
adds r2, 0x3E
ldrb r0, [r2]
ands r5, r0
strb r5, [r2]
ldrb r1, [r1, 0x5]
lsrs r1, 4
lsls r1, 5
add r1, r10
add r0, sp, 0x4
movs r2, 0x10
bl CpuSet
movs r1, 0
strh r1, [r6, 0x18]
mov r0, r8
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_817C3A0
thumb_func_start sub_817C4EC
sub_817C4EC: @ 817C4EC
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
strh r0, [r1, 0x12]
movs r0, 0x8
strh r0, [r1, 0x14]
ldr r0, =sub_817C510
str r0, [r1]
bx lr
.pool
thumb_func_end sub_817C4EC
thumb_func_start sub_817C510
sub_817C510: @ 817C510
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r1, =gTasks
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r2, r0, r1
movs r1, 0x18
ldrsh r0, [r2, r1]
cmp r0, 0
beq _0817C534
adds r0, r3, 0
bl sub_817C72C
b _0817C556
.pool
_0817C534:
ldrh r1, [r2, 0x14]
movs r4, 0x14
ldrsh r0, [r2, r4]
cmp r0, 0x80
bne _0817C546
adds r0, r3, 0
bl sub_817C67C
b _0817C556
_0817C546:
adds r0, r1, 0x2
strh r0, [r2, 0x14]
ldrh r0, [r2, 0x12]
movs r1, 0x1
eors r0, r1
strh r0, [r2, 0x12]
ldr r0, =sub_817C560
str r0, [r2]
_0817C556:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C510
thumb_func_start sub_817C560
sub_817C560: @ 817C560
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
movs r3, 0x18
ldrsh r0, [r2, r3]
adds r5, r1, 0
cmp r0, 0
beq _0817C58C
ldr r0, =sub_817C72C
str r0, [r2]
b _0817C670
.pool
_0817C58C:
movs r6, 0
movs r7, 0x12
ldrsh r0, [r2, r7]
cmp r0, 0
bne _0817C5DC
movs r0, 0xE
ldrsh r1, [r2, r0]
movs r3, 0x14
ldrsh r0, [r2, r3]
movs r3, 0x80
lsls r3, 1
subs r0, r3, r0
cmp r1, r0
bge _0817C5B2
ldrh r0, [r2, 0x14]
ldrh r7, [r2, 0xE]
adds r0, r7
strh r0, [r2, 0xE]
b _0817C5B6
_0817C5B2:
strh r3, [r2, 0xE]
movs r6, 0x1
_0817C5B6:
lsls r2, r4, 2
adds r0, r2, r4
lsls r0, 3
adds r3, r0, r5
movs r0, 0x10
ldrsh r1, [r3, r0]
movs r7, 0x14
ldrsh r0, [r3, r7]
adds r0, 0x10
cmp r1, r0
ble _0817C5D6
ldrh r0, [r3, 0x10]
ldrh r1, [r3, 0x14]
subs r0, r1
strh r0, [r3, 0x10]
b _0817C626
_0817C5D6:
movs r0, 0x10
strh r0, [r3, 0x10]
b _0817C620
_0817C5DC:
movs r0, 0x10
ldrsh r1, [r2, r0]
movs r3, 0x14
ldrsh r0, [r2, r3]
movs r3, 0x80
lsls r3, 1
subs r0, r3, r0
cmp r1, r0
bge _0817C5F8
ldrh r0, [r2, 0x14]
ldrh r7, [r2, 0x10]
adds r0, r7
strh r0, [r2, 0x10]
b _0817C5FC
_0817C5F8:
strh r3, [r2, 0x10]
movs r6, 0x1
_0817C5FC:
lsls r2, r4, 2
adds r0, r2, r4
lsls r0, 3
adds r3, r0, r5
movs r0, 0xE
ldrsh r1, [r3, r0]
movs r7, 0x14
ldrsh r0, [r3, r7]
adds r0, 0x10
cmp r1, r0
ble _0817C61C
ldrh r0, [r3, 0xE]
ldrh r1, [r3, 0x14]
subs r0, r1
strh r0, [r3, 0xE]
b _0817C626
_0817C61C:
movs r0, 0x10
strh r0, [r3, 0xE]
_0817C620:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0817C626:
adds r0, r2, r4
lsls r0, 3
adds r5, r0, r5
movs r0, 0xE
ldrsh r1, [r5, r0]
movs r4, 0x80
lsls r4, 9
adds r0, r4, 0
bl __divsi3
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
str r1, [sp]
movs r0, 0x1E
movs r2, 0
movs r3, 0
bl SetSpriteTransformationMatrix
movs r3, 0x10
ldrsh r1, [r5, r3]
adds r0, r4, 0
bl __divsi3
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
str r1, [sp]
movs r0, 0x1F
movs r2, 0
movs r3, 0
bl SetSpriteTransformationMatrix
cmp r6, 0x2
bne _0817C670
ldr r0, =sub_817C510
str r0, [r5]
_0817C670:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C560
thumb_func_start sub_817C67C
sub_817C67C: @ 817C67C
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02020630
mov r8, r1
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
movs r2, 0xA
ldrsh r1, [r4, r2]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
add r2, r8
ldrb r3, [r2, 0x1]
movs r6, 0x4
negs r6, r6
adds r1, r6, 0
ands r1, r3
strb r1, [r2, 0x1]
movs r2, 0xA
ldrsh r1, [r4, r2]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
add r2, r8
ldrb r3, [r2, 0x3]
movs r5, 0x3F
negs r5, r5
adds r1, r5, 0
ands r1, r3
strb r1, [r2, 0x3]
movs r1, 0xA
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
adds r1, 0x3E
ldrb r2, [r1]
movs r3, 0x4
orrs r2, r3
strb r2, [r1]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x1]
ands r6, r2
strb r6, [r1, 0x1]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x3]
ands r5, r2
strb r5, [r1, 0x3]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
adds r1, 0x3E
ldrb r3, [r1]
movs r2, 0x5
negs r2, r2
ands r2, r3
strb r2, [r1]
bl DestroyTask
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C67C
thumb_func_start sub_817C72C
sub_817C72C: @ 817C72C
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02020630
mov r8, r1
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
movs r2, 0xA
ldrsh r1, [r4, r2]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
add r2, r8
ldrb r3, [r2, 0x1]
movs r6, 0x4
negs r6, r6
adds r1, r6, 0
ands r1, r3
strb r1, [r2, 0x1]
movs r2, 0xA
ldrsh r1, [r4, r2]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
add r2, r8
ldrb r3, [r2, 0x3]
movs r5, 0x3F
negs r5, r5
adds r1, r5, 0
ands r1, r3
strb r1, [r2, 0x3]
movs r1, 0xA
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
adds r1, 0x3E
ldrb r3, [r1]
movs r2, 0x5
negs r2, r2
ands r2, r3
strb r2, [r1]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x1]
ands r6, r2
strb r6, [r1, 0x1]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x3]
ands r5, r2
strb r5, [r1, 0x3]
movs r1, 0xC
ldrsh r2, [r4, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
adds r1, 0x3E
ldrb r2, [r1]
movs r3, 0x4
orrs r2, r3
strb r2, [r1]
bl DestroyTask
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C72C
thumb_func_start sub_817C7DC
sub_817C7DC: @ 817C7DC
ldr r2, =gUnknown_0860A320
lsls r0, 2
adds r0, r2
ldr r0, [r0]
lsls r1, 1
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
bx lr
.pool
thumb_func_end sub_817C7DC
thumb_func_start sub_817C7F4
sub_817C7F4: @ 817C7F4
push {r4,r5,lr}
lsls r4, r0, 16
lsrs r5, r4, 16
adds r0, r5, 0
bl sub_811EB10
lsls r0, 24
cmp r0, 0
beq _0817C810
ldr r0, =gUnknown_0860A3AC
b _0817C84E
.pool
_0817C810:
lsrs r0, r4, 25
ldr r2, =0x000001ff
ands r2, r5
cmp r0, 0x13
bhi _0817C828
cmp r0, 0x12
bcs _0817C834
cmp r0, 0
beq _0817C82C
b _0817C83C
.pool
_0817C828:
cmp r0, 0x15
bne _0817C83C
_0817C82C:
ldr r1, =gUnknown_085F5494
b _0817C844
.pool
_0817C834:
ldr r1, =gUnknown_085FA1D8
b _0817C844
.pool
_0817C83C:
ldr r1, =gUnknown_0860A168
lsls r0, 2
adds r0, r1
ldr r1, [r0]
_0817C844:
lsls r0, r2, 1
adds r0, r2
lsls r0, 4
adds r1, r0
adds r0, r1, 0
_0817C84E:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_817C7F4
thumb_func_start sub_817C858
sub_817C858: @ 817C858
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
lsls r1, 16
lsrs r7, r1, 16
movs r0, 0
strh r0, [r5, 0x4]
movs r6, 0
ldr r0, =gUnknown_0860A3DC
mov r8, r0
adds r4, r5, 0
adds r4, 0x18
_0817C872:
lsls r0, r6, 3
ldr r1, [r5, 0x30]
adds r2, r1, r0
ldrb r0, [r2]
cmp r0, 0xFF
beq _0817C8A0
movs r1, 0x1
ldrsb r1, [r2, r1]
lsls r0, 2
add r0, r8
ldr r0, [r0]
adds r1, r0
strh r1, [r4]
adds r0, r7, 0
adds r0, 0x1E
adds r1, r6, 0
bl sub_817C7DC
strh r0, [r4, 0x2]
ldrh r0, [r4]
ldrh r1, [r5, 0x4]
adds r0, r1
strh r0, [r5, 0x4]
_0817C8A0:
adds r4, 0x4
adds r6, 0x1
cmp r6, 0x5
ble _0817C872
movs r0, 0
strb r0, [r5, 0x1]
strh r0, [r5, 0xA]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817C858
thumb_func_start sub_817C8BC
sub_817C8BC: @ 817C8BC
push {lr}
ldr r0, =gUnknown_02037318
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0817C8D8
movs r0, 0
b _0817C8E6
.pool
_0817C8D8:
ldr r1, =gUnknown_03005DB0
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
ldr r0, =hm_teleport_run_dp02scr
str r0, [r1]
movs r0, 0x1
_0817C8E6:
pop {r1}
bx r1
.pool
thumb_func_end sub_817C8BC
thumb_func_start hm_teleport_run_dp02scr
hm_teleport_run_dp02scr: @ 817C8FC
push {lr}
bl sub_808469C
movs r0, 0x3F
bl FieldEffectStart
bl brm_get_pokemon_selection
ldr r1, =gUnknown_02038C08
lsls r0, 24
lsrs r0, 24
str r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end hm_teleport_run_dp02scr
thumb_func_start sub_817C91C
sub_817C91C: @ 817C91C
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, =sub_817C94C
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_817C91C
thumb_func_start sub_817C94C
sub_817C94C: @ 817C94C
push {lr}
movs r0, 0x3F
bl FieldEffectActiveListRemove
bl sub_80B7FC8
pop {r0}
bx r0
thumb_func_end sub_817C94C
thumb_func_start sub_817C95C
sub_817C95C: @ 817C95C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 16
lsrs r0, 16
str r0, [sp]
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
bne _0817C988
ldr r0, [sp]
cmp r0, 0x1B
beq _0817C988
cmp r0, 0xDD
beq _0817C988
bl _0817E0A6
_0817C988:
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
movs r1, 0x81
lsls r1, 2
adds r7, r0, r1
ldr r5, =gUnknown_0202420B
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0202420E
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, =gUnknown_0203ABA8
ldr r0, [r0]
ldrb r0, [r0, 0x7]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
cmp r4, 0
bne _0817CA00
ldr r2, =gUnknown_0202406E
ldrb r0, [r5]
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gUnknown_020244EC
b _0817CA10
.pool
_0817CA00:
ldr r2, =gUnknown_0202406E
ldrb r0, [r5]
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gUnknown_02024744
_0817CA10:
adds r1, r0
str r1, [sp, 0x8]
cmp r6, 0
bne _0817CA3C
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gUnknown_020244EC
b _0817CA4C
.pool
_0817CA3C:
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gUnknown_02024744
_0817CA4C:
adds r1, r0
str r1, [sp, 0xC]
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
ldr r1, =gUnknown_0203ABA8
ldr r1, [r1]
ldrh r1, [r1]
bl sub_817F33C
lsls r0, 24
lsrs r0, 24
mov r10, r0
cmp r0, 0x3
bls _0817CA9C
ldr r0, [sp]
bl sub_817E0B8
lsls r0, 24
cmp r0, 0
beq _0817CA9C
ldr r2, [sp]
cmp r2, 0xC
bls _0817CA9C
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r1, [r0]
movs r2, 0x1E
bl _0817E0A2
.pool
_0817CA9C:
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 25
mov r8, r0
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
bl battle_get_per_side_status
lsls r0, 24
lsrs r5, r0, 25
ldr r0, =gUnknown_0202420E
ldrb r0, [r0]
bl battle_get_per_side_status
lsls r0, 24
lsrs r3, r0, 25
ldr r1, [sp]
subs r1, 0x2
movs r0, 0xB0
lsls r0, 1
cmp r1, r0
bls _0817CAD2
bl _0817E0A6
_0817CAD2:
lsls r0, r1, 2
ldr r1, =_0817CAEC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0817CAEC:
.4byte _0817DD7A
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D070
.4byte _0817DD74
.4byte _0817DD80
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DA68
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D7D8
.4byte _0817E0A6
.4byte _0817D8A4
.4byte _0817E0A6
.4byte _0817D838
.4byte _0817E0A6
.4byte _0817D704
.4byte _0817E0A6
.4byte _0817D76C
.4byte _0817DB24
.4byte _0817E0A6
.4byte _0817DB90
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D9C2
.4byte _0817E0A6
.4byte _0817DA24
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DBD4
.4byte _0817E0A6
.4byte _0817D94C
.4byte _0817E0A6
.4byte _0817D994
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E040
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DE10
.4byte _0817DDC8
.4byte _0817DEDC
.4byte _0817DF24
.4byte _0817DF4E
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D65E
.4byte _0817D65E
.4byte _0817D65E
.4byte _0817D65E
.4byte _0817D698
.4byte _0817E0A6
.4byte _0817E08E
.4byte _0817DF70
.4byte _0817DFBC
.4byte _0817E0A6
.4byte _0817E08E
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D53C
.4byte _0817E0A6
.4byte _0817D584
.4byte _0817DACC
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D3A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D296
.4byte _0817D2E4
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D5CE
.4byte _0817D608
.4byte _0817D498
.4byte _0817D4E0
.4byte _0817DC62
.4byte _0817DC98
.4byte _0817E0A6
.4byte _0817D1B8
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DCDC
.4byte _0817E0A6
.4byte _0817D0DC
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D1E0
.4byte _0817D314
.4byte _0817D354
.4byte _0817D372
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D216
.4byte _0817D260
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D3C0
.4byte _0817D3F2
.4byte _0817D440
.4byte _0817D45C
.4byte _0817D3B8
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D098
.4byte _0817D0D4
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DC20
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D16C
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DD38
.4byte _0817DCFC
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D65E
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817D124
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817E0A6
.4byte _0817DE58
.4byte _0817DDC8
.4byte _0817DE10
.4byte _0817DFE6
_0817D070:
movs r0, 0x1
mov r1, r10
movs r2, 0x2
movs r3, 0
bl sub_817E684
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0817D08C
bl _0817E0A6
_0817D08C:
bl sub_817EECC
bl _0817E0A6
.pool
_0817D098:
movs r0, 0x1
mov r1, r10
movs r2, 0x1
movs r3, 0
bl sub_817E684
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0817D0B4
bl _0817E0A6
_0817D0B4:
ldr r0, [sp, 0xC]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D0C6
bl _0817E0A6
_0817D0C6:
bl sub_817EECC
bl _0817E0A6
.pool
_0817D0D4:
movs r0, 0x1
mov r1, r10
movs r2, 0
b _0817D48E
_0817D0DC:
lsls r3, r4, 1
adds r3, r4
lsls r3, 2
adds r3, r7, r3
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
lsls r0, 15
ldr r1, [r3, 0x50]
ldr r2, =0xfffc7fff
ands r1, r2
orrs r1, r0
str r1, [r3, 0x50]
adds r3, 0x55
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 2
ldrb r2, [r3]
movs r0, 0xD
negs r0, r0
bl _0817DC0C
.pool
_0817D124:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x52
movs r0, 0x7
ands r1, r0
lsls r1, 2
ldrb r3, [r4]
movs r0, 0x1D
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x55
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 4
ldrb r3, [r2]
movs r0, 0x31
negs r0, r0
bl _0817DFAA
.pool
_0817D16C:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r5, r7, r0
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r3, r5, 0
adds r3, 0x52
lsls r1, 5
ldrb r2, [r3]
movs r0, 0x1F
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r4, r5, 0
adds r4, 0x55
mov r0, r10
lsls r2, r0, 6
ldrb r1, [r4]
movs r0, 0x3F
ands r0, r1
orrs r0, r2
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x58
ldrb r0, [r2]
movs r1, 0x40
bl _0817DFAC
.pool
_0817D1B8:
ldr r1, =gUnknown_02022F5C
ldrb r0, [r1]
cmp r0, 0
beq _0817D1C4
bl _0817E0A6
_0817D1C4:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
movs r2, 0x14
bl _0817E0A2
.pool
_0817D1E0:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r3, r7, r0
adds r0, r3, 0
adds r0, 0x53
ldrb r0, [r0]
lsls r0, 29
lsrs r0, 29
cmp r0, 0
bne _0817D1FA
bl _0817E0A6
_0817D1FA:
adds r2, r6, 0
subs r1, r0, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x56
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
bl _0817DB10
_0817D216:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x53
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r4]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x56
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0xD
negs r0, r0
bl _0817DFAA
.pool
_0817D260:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r3, r7, r0
adds r0, r3, 0
adds r0, 0x53
ldrb r0, [r0]
lsls r0, 26
lsrs r0, 29
cmp r0, 0
bne _0817D27A
bl _0817E0A6
_0817D27A:
adds r2, r6, 0
subs r1, r0, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x56
ldrb r3, [r0]
lsls r3, 28
lsrs r3, 30
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
bl _0817DBC2
_0817D296:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r2, 0x56
movs r0, 0x7
ands r1, r0
lsls r1, 4
ldrb r3, [r2]
movs r0, 0x71
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 7
ldrh r3, [r2]
ldr r0, =0xfffffe7f
ands r0, r3
orrs r0, r1
strh r0, [r2]
bl _0817E0A6
.pool
_0817D2E4:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r0, r7, r0
adds r0, 0x56
ldrb r0, [r0]
lsls r0, 25
lsrs r0, 29
cmp r0, 0
bne _0817D2FC
bl _0817E0A6
_0817D2FC:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
movs r2, 0x16
bl _0817E0A2
_0817D314:
mov r2, r8
lsls r3, r2, 3
lsls r0, r4, 4
adds r3, r0
adds r3, r7, r3
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r3, 0x35
movs r0, 0x7
ands r1, r0
ldrb r2, [r3]
movs r0, 0x8
negs r0, r0
ands r0, r2
orrs r0, r1
movs r2, 0x3
mov r1, r10
ands r1, r2
lsls r1, 3
movs r2, 0x19
negs r2, r2
bl _0817DC0C
.pool
_0817D354:
mov r1, r8
lsls r0, r1, 3
lsls r1, r4, 4
adds r0, r1
adds r0, r7, r0
adds r0, 0x35
ldrb r1, [r0]
lsls r0, r1, 29
lsrs r0, 29
cmp r0, 0
bne _0817D36E
bl _0817E0A6
_0817D36E:
adds r2, r4, 0
b _0817D38C
_0817D372:
lsls r0, r5, 3
lsls r1, r6, 4
adds r0, r1
adds r0, r7, r0
adds r0, 0x35
ldrb r1, [r0]
lsls r0, r1, 29
lsrs r0, 29
cmp r0, 0
bne _0817D38A
bl _0817E0A6
_0817D38A:
adds r2, r6, 0
_0817D38C:
subs r0, 0x1
lsls r0, 2
lsls r3, r1, 27
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
movs r1, 0x6
bl sub_817E684
bl _0817E0A6
_0817D3A6:
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
adds r0, 0xB3
movs r1, 0x1
bl _0817E0A4
.pool
_0817D3B8:
movs r0, 0x12
mov r1, r10
movs r2, 0
b _0817D48E
_0817D3C0:
ldr r0, =gUnknown_02022F58
ldrb r2, [r0, 0x2]
cmp r2, 0
bne _0817D3CC
bl _0817E0A6
_0817D3CC:
ldr r1, =gUnknown_02022F6A
ldrh r0, [r1]
cmp r0, 0xD1
bne _0817D3E8
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x17
b _0817D48C
.pool
_0817D3E8:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x16
b _0817D48C
_0817D3F2:
ldr r0, =gUnknown_02022F58
ldrb r2, [r0, 0x2]
cmp r2, 0
bne _0817D3FE
bl _0817E0A6
_0817D3FE:
ldr r0, =gUnknown_0202420B
ldr r1, =gUnknown_0202420C
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _0817D436
ldr r1, =gUnknown_02022F6A
ldrh r0, [r1]
cmp r0, 0xD1
bne _0817D42C
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x17
b _0817D48C
.pool
_0817D42C:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x16
b _0817D48C
_0817D436:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x1B
b _0817D48C
_0817D440:
ldr r0, =gUnknown_02022F58
ldrb r2, [r0, 0x2]
cmp r2, 0
bne _0817D44C
bl _0817E0A6
_0817D44C:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x18
b _0817D48C
.pool
_0817D45C:
ldr r0, =gUnknown_02022F58
ldrb r2, [r0, 0x2]
cmp r2, 0
bne _0817D468
bl _0817E0A6
_0817D468:
ldr r1, =gUnknown_02022F6A
ldrh r0, [r1]
cmp r0, 0xD3
bne _0817D484
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x1A
b _0817D48C
.pool
_0817D484:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r0, 0x19
_0817D48C:
mov r1, r10
_0817D48E:
movs r3, 0
bl sub_817E684
bl _0817E0A6
_0817D498:
lsls r2, r5, 3
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x30
movs r0, 0x7
ands r1, r0
ldrb r3, [r4]
movs r0, 0x8
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x32
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0xD
negs r0, r0
bl _0817DFAA
.pool
_0817D4E0:
ldr r0, [sp, 0x8]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D4F2
bl _0817E0A6
_0817D4F2:
mov r2, r8
lsls r0, r2, 3
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x30
ldrb r0, [r0]
lsls r0, 29
lsrs r0, 29
cmp r0, 0
bne _0817D50E
bl _0817E0A6
_0817D50E:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x32
ldrb r3, [r0]
lsls r3, 28
lsrs r3, 30
movs r0, 0x8
movs r1, 0
bl sub_817E684
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r1, 0x57
ldrb r2, [r1]
movs r0, 0x1F
negs r0, r0
ands r0, r2
movs r2, 0x2
b _0817D6F2
_0817D53C:
lsls r2, r5, 3
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x30
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r4]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x32
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 4
ldrb r3, [r2]
movs r0, 0x31
negs r0, r0
bl _0817DFAA
.pool
_0817D584:
mov r1, r8
lsls r0, r1, 3
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x30
ldrb r0, [r0]
lsls r0, 26
lsrs r0, 29
cmp r0, 0
bne _0817D5A0
bl _0817E0A6
_0817D5A0:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x32
ldrb r3, [r0]
lsls r3, 26
lsrs r3, 30
movs r0, 0x8
movs r1, 0x1
bl sub_817E684
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r1, 0x57
ldrb r2, [r1]
movs r0, 0x1F
negs r0, r0
ands r0, r2
movs r2, 0x4
b _0817D6F2
_0817D5CE:
lsls r2, r5, 3
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 6
ldrh r3, [r2, 0x30]
ldr r0, =0xfffffe3f
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x30]
adds r2, 0x32
bl _0817DF0A
.pool
_0817D608:
ldr r0, [sp, 0x8]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D61A
bl _0817E0A6
_0817D61A:
mov r1, r8
lsls r0, r1, 3
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
ldrh r0, [r1, 0x30]
lsls r0, 23
lsrs r0, 29
cmp r0, 0
bne _0817D632
bl _0817E0A6
_0817D632:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x32
ldrb r3, [r0]
lsrs r3, 6
movs r0, 0x8
movs r1, 0x5
bl sub_817E684
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r1, 0x57
ldrb r2, [r1]
movs r0, 0x1F
negs r0, r0
ands r0, r2
movs r2, 0xA
b _0817D6F2
_0817D65E:
lsls r2, r5, 3
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x31
movs r0, 0x7
ands r1, r0
lsls r1, 1
ldrb r3, [r4]
movs r0, 0xF
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x33
bl _0817DF9E
.pool
_0817D698:
ldr r0, [sp, 0x8]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D6AA
bl _0817E0A6
_0817D6AA:
mov r1, r8
lsls r0, r1, 3
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x31
ldrb r0, [r0]
lsls r0, 28
lsrs r0, 29
cmp r0, 0
bne _0817D6C6
bl _0817E0A6
_0817D6C6:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x33
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
movs r0, 0x8
movs r1, 0x6
bl sub_817E684
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r1, 0x57
ldrb r2, [r1]
movs r0, 0x1F
negs r0, r0
ands r0, r2
movs r2, 0xC
_0817D6F2:
orrs r0, r2
mov r2, r8
lsls r3, r2, 5
movs r2, 0x1F
ands r0, r2
orrs r0, r3
strb r0, [r1]
bl _0817E0A6
_0817D704:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r2, [r0]
lsls r2, 2
mov r0, r9
lsls r4, r0, 1
add r4, r9
lsls r4, 3
adds r2, r4
adds r2, r7, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 6
ldrh r3, [r2]
ldr r0, =0xfffffe3f
ands r0, r3
orrs r0, r1
strh r0, [r2]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
mov r2, r10
lsls r3, r2, 6
ldrb r2, [r1, 0x2]
movs r0, 0x3F
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x2]
bl _0817E0A6
.pool
_0817D76C:
ldr r0, [sp, 0x8]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D77E
bl _0817E0A6
_0817D77E:
ldr r6, =gUnknown_0202406E
ldr r5, =gUnknown_0202420B
ldrb r0, [r5]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
lsls r0, 2
lsls r1, r4, 1
adds r4, r1, r4
lsls r1, r4, 3
adds r0, r1
adds r1, r7, r0
ldrh r0, [r1]
lsls r0, 23
lsrs r0, 29
cmp r0, 0
beq _0817D7B2
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x2]
lsrs r3, 6
movs r0, 0x8
movs r1, 0x4
bl sub_817E684
_0817D7B2:
lsls r3, r4, 2
adds r3, r7, r3
adds r3, 0x57
ldrb r0, [r3]
movs r1, 0x1F
negs r1, r1
ands r1, r0
movs r0, 0x8
orrs r1, r0
strb r1, [r3]
ldrb r0, [r5]
lsls r0, 1
adds r0, r6
b _0817D934
.pool
_0817D7D8:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r2, [r0]
lsls r2, 2
mov r0, r9
lsls r4, r0, 1
add r4, r9
lsls r4, 3
adds r2, r4
adds r2, r7, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
ldrb r3, [r2]
movs r0, 0x8
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
movs r0, 0x3
mov r2, r10
ands r2, r0
lsls r2, 2
ldrb r3, [r1, 0x2]
movs r0, 0xD
negs r0, r0
b _0817D88C
.pool
_0817D838:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r2, [r0]
lsls r2, 2
mov r1, r9
lsls r4, r1, 1
add r4, r9
lsls r4, 3
adds r2, r4
adds r2, r7, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r2]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
movs r0, 0x3
mov r2, r10
ands r2, r0
lsls r2, 4
ldrb r3, [r1, 0x2]
movs r0, 0x31
negs r0, r0
_0817D88C:
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x2]
bl _0817E0A6
.pool
_0817D8A4:
ldr r0, [sp, 0x8]
movs r1, 0x39
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817D8B6
bl _0817E0A6
_0817D8B6:
ldr r2, =gUnknown_0202406E
mov r8, r2
ldr r6, =gUnknown_0202420B
ldrb r0, [r6]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
lsls r0, 2
lsls r1, r4, 1
adds r5, r1, r4
lsls r4, r5, 3
adds r0, r4
adds r1, r7, r0
ldrb r0, [r1]
lsls r0, 29
lsrs r0, 29
cmp r0, 0
beq _0817D8EE
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x2]
lsls r3, 28
lsrs r3, 30
movs r0, 0x8
movs r1, 0x2
bl sub_817E684
_0817D8EE:
ldrb r0, [r6]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
lsls r0, 2
adds r0, r4
adds r1, r7, r0
ldrb r0, [r1]
lsls r0, 26
lsrs r0, 29
cmp r0, 0
beq _0817D91A
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x2]
lsls r3, 26
lsrs r3, 30
movs r0, 0x8
movs r1, 0x3
bl sub_817E684
_0817D91A:
lsls r3, r5, 2
adds r3, r7, r3
adds r3, 0x57
ldrb r0, [r3]
movs r1, 0x1F
negs r1, r1
ands r1, r0
movs r0, 0x6
orrs r1, r0
strb r1, [r3]
ldrb r0, [r6]
lsls r0, 1
add r0, r8
_0817D934:
ldrh r0, [r0]
lsls r0, 5
movs r2, 0x1F
ands r1, r2
orrs r1, r0
strb r1, [r3]
b _0817E0A6
.pool
_0817D94C:
lsls r2, r5, 3
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x31
movs r0, 0x7
ands r1, r0
lsls r1, 4
ldrb r3, [r4]
movs r0, 0x71
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x33
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0xD
negs r0, r0
b _0817DFAA
.pool
_0817D994:
mov r1, r8
lsls r0, r1, 3
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x31
ldrb r0, [r0]
lsls r0, 25
lsrs r0, 29
cmp r0, 0
bne _0817D9AE
b _0817E0A6
_0817D9AE:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x33
ldrb r3, [r0]
lsls r3, 28
lsrs r3, 30
movs r0, 0x9
b _0817E086
_0817D9C2:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r2, [r0]
lsls r2, 2
mov r0, r9
lsls r4, r0, 1
add r4, r9
lsls r4, 3
adds r2, r4
adds r2, r7, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 1
ldrb r3, [r2, 0x1]
movs r0, 0xF
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
movs r0, 0x3
mov r2, r10
ands r2, r0
ldrb r3, [r1, 0x3]
movs r0, 0x4
negs r0, r0
b _0817DB76
.pool
_0817DA24:
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
adds r1, r0
adds r1, r7, r1
ldrb r0, [r1, 0x1]
lsls r0, 28
lsrs r0, 29
cmp r0, 0
bne _0817DA48
b _0817E0A6
_0817DA48:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x3]
lsls r3, 30
lsrs r3, 30
movs r0, 0x9
movs r1, 0x2
bl sub_817E684
b _0817E0A6
.pool
_0817DA68:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r2, [r0]
lsls r2, 2
mov r1, r9
lsls r4, r1, 1
add r4, r9
lsls r4, 3
adds r2, r4
adds r2, r7, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
lsls r1, 4
ldrb r3, [r2, 0x1]
movs r0, 0x71
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
movs r0, 0x3
mov r2, r10
ands r2, r0
lsls r2, 2
ldrb r3, [r1, 0x3]
movs r0, 0xD
negs r0, r0
b _0817DB76
.pool
_0817DACC:
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
adds r1, r0
adds r1, r7, r1
ldrb r0, [r1, 0x1]
lsls r0, 25
lsrs r2, r0, 29
cmp r2, 0
bne _0817DAF0
b _0817E0A6
_0817DAF0:
ldr r0, =gUnknown_0203ABA8
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0xAD
bne _0817DAFC
b _0817E0A6
_0817DAFC:
cmp r0, 0xD6
bne _0817DB02
b _0817E0A6
_0817DB02:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x3]
lsls r3, 28
lsrs r3, 30
movs r0, 0x9
_0817DB10:
movs r1, 0x3
bl sub_817E684
b _0817E0A6
.pool
_0817DB24:
ldr r5, =gUnknown_0202406E
ldr r6, =gUnknown_0202420E
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r3, [r0]
lsls r3, 2
mov r2, r9
lsls r4, r2, 1
add r4, r9
lsls r4, 3
adds r3, r4
adds r3, r7, r3
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
lsls r0, 15
ldr r1, [r3]
ldr r2, =0xfffc7fff
ands r1, r2
orrs r1, r0
str r1, [r3]
ldrb r0, [r6]
lsls r0, 1
adds r0, r5
ldrh r1, [r0]
lsls r1, 2
adds r1, r4
adds r1, r7, r1
movs r0, 0x3
mov r2, r10
ands r2, r0
lsls r2, 4
ldrb r3, [r1, 0x3]
movs r0, 0x31
negs r0, r0
_0817DB76:
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x3]
b _0817E0A6
.pool
_0817DB90:
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
adds r1, r0
adds r1, r7, r1
ldr r0, [r1]
lsls r0, 14
lsrs r0, 29
cmp r0, 0
bne _0817DBB4
b _0817E0A6
_0817DBB4:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x3]
lsls r3, 26
lsrs r3, 30
movs r0, 0x9
_0817DBC2:
movs r1, 0x4
bl sub_817E684
b _0817E0A6
.pool
_0817DBD4:
lsls r3, 3
mov r1, r9
lsls r0, r1, 4
adds r3, r0
adds r3, r7, r3
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
lsls r0, 15
ldr r1, [r3, 0x30]
ldr r2, =0xfffc7fff
ands r1, r2
orrs r1, r0
str r1, [r3, 0x30]
adds r3, 0x33
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 4
ldrb r2, [r3]
movs r0, 0x31
negs r0, r0
_0817DC0C:
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _0817E0A6
.pool
_0817DC20:
mov r2, r8
lsls r0, r2, 3
lsls r1, r4, 4
adds r0, r1
adds r3, r7, r0
ldr r0, [r3, 0x30]
lsls r0, 14
lsrs r0, 29
cmp r0, 0
beq _0817DC4C
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r3, 0
adds r0, 0x33
ldrb r3, [r0]
lsls r3, 26
lsrs r3, 30
movs r0, 0x9
movs r1, 0x1
bl sub_817E684
_0817DC4C:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
movs r2, 0x18
b _0817E0A2
_0817DC62:
lsls r2, r6, 1
adds r2, r6
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x50
movs r0, 0x7
ands r1, r0
ldrb r3, [r4]
movs r0, 0x8
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x54
b _0817DF9E
.pool
_0817DC98:
ldr r1, [sp, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r4, r7, r0
adds r0, r4, 0
adds r0, 0x50
ldrb r0, [r0]
lsls r0, 29
lsrs r2, r0, 29
cmp r2, 0
bne _0817DCB2
b _0817E0A6
_0817DCB2:
movs r0, 0x1
eors r1, r0
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r0, 0x54
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
movs r0, 0xA
bl sub_817E684
adds r2, r4, 0
adds r2, 0x57
ldrb r1, [r2]
movs r0, 0x1F
negs r0, r0
ands r0, r1
movs r1, 0xE
b _0817DFAC
_0817DCDC:
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r3, r1, 0
adds r3, 0x50
ldrb r2, [r3]
movs r0, 0x8
negs r0, r0
ands r0, r2
strb r0, [r3]
adds r1, 0x54
ldrb r2, [r1]
movs r0, 0x4
negs r0, r0
b _0817DF6A
_0817DCFC:
mov r0, r8
lsls r2, r0, 3
lsls r0, r4, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x34
movs r0, 0x7
ands r1, r0
ldrb r3, [r4]
movs r0, 0x8
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x33
mov r1, r10
lsls r3, r1, 6
b _0817DF0E
.pool
_0817DD38:
mov r0, r8
lsls r2, r0, 3
lsls r0, r4, 4
adds r2, r0
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r2, 0x34
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r2]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
mov r1, r10
lsls r3, r1, 6
movs r1, 0x3F
b _0817DF12
.pool
_0817DD74:
movs r0, 0
bl sub_817EA80
_0817DD7A:
mov r2, r8
lsls r0, r2, 3
b _0817DD88
_0817DD80:
movs r0, 0x1
bl sub_817EA80
lsls r0, r5, 3
_0817DD88:
lsls r1, r4, 4
adds r0, r1
adds r1, r7, r0
adds r4, r1, 0
adds r4, 0x34
ldrb r5, [r4]
lsls r0, r5, 29
cmp r0, 0
beq _0817DDAE
movs r0, 0x8
negs r0, r0
ands r0, r5
strb r0, [r4]
adds r2, r1, 0
adds r2, 0x33
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
strb r0, [r2]
_0817DDAE:
ldrb r1, [r4]
lsls r0, r1, 26
lsrs r0, 29
cmp r0, 0
bne _0817DDBA
b _0817E0A6
_0817DDBA:
movs r0, 0x39
negs r0, r0
ands r0, r1
movs r1, 0x3F
ands r0, r1
strb r0, [r4]
b _0817E0A6
_0817DDC8:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x50
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r4]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x54
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0xD
negs r0, r0
b _0817DFAA
.pool
_0817DE10:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x50
movs r0, 0x7
ands r1, r0
lsls r1, 6
ldrh r3, [r4]
ldr r0, =0xfffffe3f
ands r0, r3
orrs r0, r1
strh r0, [r4]
adds r2, 0x54
movs r0, 0x3
mov r1, r10
ands r1, r0
lsls r1, 4
ldrb r3, [r2]
movs r0, 0x31
negs r0, r0
b _0817DFAA
.pool
_0817DE58:
ldr r1, =gUnknown_02022F5A
ldrh r0, [r1]
cmp r0, 0x73
bne _0817DE82
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r3, r1, 0
adds r3, 0x50
ldrb r2, [r3]
movs r0, 0x39
negs r0, r0
ands r0, r2
strb r0, [r3]
adds r1, 0x54
ldrb r2, [r1]
movs r0, 0xD
negs r0, r0
ands r0, r2
strb r0, [r1]
_0817DE82:
ldr r2, =gUnknown_02022F5A
ldrh r0, [r2]
cmp r0, 0x71
bne _0817DEAA
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r3, r1, 0
adds r3, 0x50
ldrh r2, [r3]
ldr r0, =0xfffffe3f
ands r0, r2
strh r0, [r3]
adds r1, 0x54
ldrb r2, [r1]
movs r0, 0x31
negs r0, r0
ands r0, r2
strb r0, [r1]
_0817DEAA:
ldr r1, =gUnknown_02022F5A
ldrh r0, [r1]
cmp r0, 0x36
beq _0817DEB4
b _0817E0A6
_0817DEB4:
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r4, r1, 0
adds r4, 0x51
ldrb r2, [r4]
movs r0, 0x71
negs r0, r0
ands r0, r2
strb r0, [r4]
adds r1, 0x55
ldrb r2, [r1]
movs r0, 0x4
negs r0, r0
b _0817DF6A
.pool
_0817DEDC:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x51
movs r0, 0x7
ands r1, r0
lsls r1, 1
ldrb r3, [r4]
movs r0, 0xF
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x54
_0817DF0A:
mov r0, r10
lsls r3, r0, 6
_0817DF0E:
ldrb r1, [r2]
movs r0, 0x3F
_0817DF12:
ands r0, r1
orrs r0, r3
strb r0, [r2]
b _0817E0A6
.pool
_0817DF24:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x51
ldrb r0, [r0]
lsls r0, 28
lsrs r0, 29
cmp r0, 0
bne _0817DF3C
b _0817E0A6
_0817DF3C:
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x54
ldrb r3, [r0]
lsrs r3, 6
movs r0, 0xF
b _0817E086
_0817DF4E:
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
adds r1, r7, r1
adds r4, r1, 0
adds r4, 0x51
ldrb r2, [r4]
movs r0, 0xF
negs r0, r0
ands r0, r2
strb r0, [r4]
adds r1, 0x54
ldrb r2, [r1]
movs r0, 0x3F
_0817DF6A:
ands r0, r2
strb r0, [r1]
b _0817E0A6
_0817DF70:
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
adds r2, r7, r2
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x51
movs r0, 0x7
ands r1, r0
lsls r1, 4
ldrb r3, [r4]
movs r0, 0x71
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
adds r2, 0x55
_0817DF9E:
movs r0, 0x3
mov r1, r10
ands r1, r0
ldrb r3, [r2]
movs r0, 0x4
negs r0, r0
_0817DFAA:
ands r0, r3
_0817DFAC:
orrs r0, r1
strb r0, [r2]
b _0817E0A6
.pool
_0817DFBC:
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r1, r7, r0
adds r0, r1, 0
adds r0, 0x51
ldrb r0, [r0]
lsls r0, 25
lsrs r0, 29
cmp r0, 0
beq _0817E0A6
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r1, 0
adds r0, 0x55
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
movs r0, 0x10
b _0817E086
_0817DFE6:
lsls r1, r6, 1
adds r1, r6
lsls r1, 2
adds r1, r7, r1
adds r3, r1, 0
adds r3, 0x50
ldrb r2, [r3]
movs r0, 0x39
negs r0, r0
ands r0, r2
strb r0, [r3]
adds r1, 0x54
ldrb r2, [r1]
movs r0, 0xD
negs r0, r0
ands r0, r2
strb r0, [r1]
ldrh r2, [r3]
ldr r0, =0xfffffe3f
ands r0, r2
strh r0, [r3]
ldrb r2, [r1]
movs r0, 0x31
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrb r2, [r0]
movs r0, 0x11
movs r1, 0
mov r3, r10
bl sub_817E684
b _0817E0A6
.pool
_0817E040:
lsls r0, r4, 4
adds r4, r7, r0
adds r0, r4, 0
adds r0, 0x35
ldrb r0, [r0]
lsrs r0, 5
cmp r0, 0
beq _0817E068
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r0, 0x36
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
movs r0, 0x15
movs r1, 0
bl sub_817E684
_0817E068:
adds r0, r4, 0
adds r0, 0x3D
ldrb r0, [r0]
lsrs r0, 5
cmp r0, 0
beq _0817E0A6
subs r2, r0, 0x1
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r0, 0x3E
ldrb r3, [r0]
lsls r3, 30
lsrs r3, 30
movs r0, 0x15
_0817E086:
movs r1, 0
bl sub_817E684
b _0817E0A6
_0817E08E:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
movs r2, 0x1C
_0817E0A2:
orrs r1, r2
_0817E0A4:
strb r1, [r0]
_0817E0A6:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_817C95C
thumb_func_start sub_817E0B8
sub_817E0B8: @ 817E0B8
push {r4-r6,lr}
lsls r0, 16
lsrs r5, r0, 16
movs r3, 0
ldr r4, =gUnknown_0860A8A4
ldr r6, =0x0000ffff
adds r2, r4, 0
adds r1, r4, 0
_0817E0C8:
ldrh r0, [r1]
cmp r0, r5
beq _0817E0DA
adds r2, 0x2
adds r1, 0x2
adds r3, 0x1
ldrh r0, [r2]
cmp r0, r6
bne _0817E0C8
_0817E0DA:
lsls r0, r3, 1
adds r0, r4
ldrh r1, [r0]
ldr r0, =0x0000ffff
cmp r1, r0
beq _0817E0F4
movs r0, 0
b _0817E0F6
.pool
_0817E0F4:
movs r0, 0x1
_0817E0F6:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_817E0B8
thumb_func_start sub_817E0FC
sub_817E0FC: @ 817E0FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
str r2, [sp, 0x4]
lsls r0, 16
lsrs r7, r0, 16
lsls r1, 16
lsrs r1, 16
str r1, [sp]
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
bne _0817E122
b _0817E310
_0817E122:
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
movs r1, 0x81
lsls r1, 2
adds r1, r0, r1
str r1, [sp, 0x8]
ldr r2, =gUnknown_0202420B
mov r10, r2
ldrb r0, [r2]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r4, r0, 24
mov r1, r10
ldrb r0, [r1]
adds r1, r7, 0
bl sub_817F33C
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
bls _0817E184
mov r2, r9
lsls r0, r2, 1
add r0, r9
lsls r0, 2
ldr r1, [sp, 0x8]
adds r0, r1, r0
adds r0, 0x57
ldrb r1, [r0]
movs r2, 0x1E
orrs r1, r2
strb r1, [r0]
b _0817E310
.pool
_0817E184:
mov r2, r10
ldrb r0, [r2]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 25
lsls r0, 3
lsls r4, 4
adds r0, r4
ldr r1, [sp, 0x8]
adds r0, r1, r0
mov r2, r10
ldrb r1, [r2]
lsls r1, 1
ldr r2, =gUnknown_0202406E
adds r1, r2
ldrh r2, [r1]
adds r2, 0x1
adds r0, 0x35
lsls r2, 5
ldrb r3, [r0]
movs r1, 0x1F
ands r1, r3
orrs r1, r2
strb r1, [r0]
mov r1, r10
ldrb r0, [r1]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 25
lsls r0, 3
adds r0, r4
ldr r2, [sp, 0x8]
adds r0, r2, r0
adds r0, 0x36
movs r1, 0x3
mov r8, r6
mov r2, r8
ands r2, r1
mov r8, r2
ldrb r2, [r0]
movs r1, 0x4
negs r1, r1
ands r1, r2
mov r2, r8
orrs r1, r2
strb r1, [r0]
mov r1, r9
lsls r0, r1, 1
add r0, r9
lsls r0, 2
ldr r2, [sp, 0x8]
adds r0, r2, r0
str r0, [sp, 0xC]
adds r5, r0, 0
adds r5, 0x53
lsls r2, r6, 6
ldrb r1, [r5]
movs r0, 0x3F
ands r0, r1
orrs r0, r2
strb r0, [r5]
ldr r1, =gBattleMoves
lsls r4, r7, 1
adds r0, r4, r7
lsls r0, 2
adds r0, r1
ldrb r2, [r0]
movs r0, 0
adds r1, r6, 0
movs r3, 0
bl sub_817E684
ldr r0, [sp]
adds r1, r7, 0
adds r2, r6, 0
bl sub_817F394
ldr r0, [sp, 0x4]
ldrb r1, [r0, 0x12]
movs r0, 0xF
ands r0, r1
str r4, [sp, 0x10]
cmp r0, 0
beq _0817E23C
movs r0, 0x7
adds r1, r7, 0
adds r2, r6, 0
movs r3, 0
bl sub_817E684
_0817E23C:
ldr r0, =0x00000111
cmp r7, r0
bne _0817E272
mov r1, r10
ldrb r0, [r1]
lsls r0, 1
ldr r2, =gUnknown_0202406E
adds r0, r2
ldrh r1, [r0]
adds r1, 0x1
movs r0, 0x7
ands r1, r0
ldrb r2, [r5]
movs r0, 0x8
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5]
ldr r2, [sp, 0xC]
adds r2, 0x56
ldrb r1, [r2]
movs r0, 0x4
negs r0, r0
ands r0, r1
mov r1, r8
orrs r0, r1
strb r0, [r2]
_0817E272:
cmp r7, 0x78
beq _0817E27A
cmp r7, 0x99
bne _0817E2D2
_0817E27A:
movs r0, 0x1
mov r2, r9
eors r0, r2
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
ldr r0, [sp, 0x8]
adds r2, r0, r2
mov r1, r10
ldrb r0, [r1]
lsls r0, 1
ldr r1, =gUnknown_0202406E
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
adds r4, r2, 0
adds r4, 0x58
movs r0, 0x7
ands r1, r0
lsls r1, 3
ldrb r3, [r4]
movs r0, 0x39
negs r0, r0
ands r0, r3
orrs r0, r1
mov r1, r8
lsls r3, r1, 1
movs r1, 0x7
negs r1, r1
ands r0, r1
orrs r0, r3
strb r0, [r4]
adds r2, 0x57
ldrb r1, [r2]
movs r0, 0x1F
negs r0, r0
ands r0, r1
movs r1, 0x1A
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
_0817E2D2:
ldr r1, =gBattleMoves
ldr r2, [sp, 0x10]
adds r0, r2, r7
lsls r0, 2
adds r0, r1
ldrb r4, [r0, 0x2]
ldrb r5, [r0, 0x1]
movs r0, 0xD
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0
bl sub_817E684
movs r0, 0xE
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0
bl sub_817E684
movs r0, 0xB
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl sub_817E684
movs r0, 0xC
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl sub_817E684
_0817E310:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817E0FC
thumb_func_start sub_817E32C
sub_817E32C: @ 817E32C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0817E3EE
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
movs r1, 0x81
lsls r1, 2
adds r4, r0, r1
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r2, r0, 24
cmp r5, 0x12
beq _0817E36C
cmp r5, 0x13
beq _0817E3AA
b _0817E3EE
.pool
_0817E36C:
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, r0
ldr r0, [r4, 0x50]
lsls r0, 14
lsrs r0, 29
cmp r0, 0
beq _0817E3EE
subs r0, 0x1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x55
ldrb r3, [r1]
lsls r3, 28
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
movs r1, 0
bl sub_817E684
adds r2, r4, 0
adds r2, 0x57
ldrb r1, [r2]
movs r0, 0x1F
negs r0, r0
ands r0, r1
movs r1, 0x10
b _0817E3EA
_0817E3AA:
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, r0
adds r0, r4, 0
adds r0, 0x52
ldrb r0, [r0]
lsls r0, 27
lsrs r0, 29
cmp r0, 0
beq _0817E3EE
subs r0, 0x1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x55
ldrb r3, [r1]
lsls r3, 26
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
movs r1, 0x1
bl sub_817E684
adds r2, r4, 0
adds r2, 0x57
ldrb r1, [r2]
movs r0, 0x1F
negs r0, r0
ands r0, r1
movs r1, 0x12
_0817E3EA:
orrs r0, r1
strb r0, [r2]
_0817E3EE:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_817E32C
thumb_func_start sub_817E3F4
sub_817E3F4: @ 817E3F4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
movs r0, 0
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
ldr r3, =0x00007fff
str r3, [sp, 0xC]
movs r4, 0
str r4, [sp, 0x10]
movs r7, 0
str r7, [sp, 0x14]
mov r8, r0
ldr r0, =gUnknown_0202449C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xB3
ldrb r0, [r0]
cmp r0, 0
beq _0817E42A
b _0817E670
_0817E42A:
movs r2, 0xD2
lsls r2, 1
adds r2, r1
mov r10, r2
movs r6, 0
_0817E434:
movs r0, 0x64
adds r4, r6, 0
muls r4, r0
ldr r0, =gUnknown_020244EC
adds r0, r4, r0
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
cmp r0, 0
beq _0817E454
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
_0817E454:
ldr r5, =gUnknown_02024744
adds r0, r4, r5
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
cmp r0, 0
beq _0817E46A
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
_0817E46A:
adds r6, 0x1
cmp r6, 0x5
ble _0817E434
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
bne _0817E47E
b _0817E670
_0817E47E:
cmp r8, r7
beq _0817E484
b _0817E670
_0817E484:
movs r6, 0
lsls r3, r6, 1
str r3, [sp, 0x18]
movs r4, 0x64
mov r8, r4
_0817E48E:
mov r1, r8
muls r1, r6
ldr r0, =gUnknown_020244EC
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
lsls r0, 16
lsrs r7, r0, 16
adds r0, r6, 0x1
mov r9, r0
cmp r7, 0
beq _0817E4EE
adds r0, r4, 0
movs r1, 0x2D
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817E4EE
movs r4, 0
lsls r0, r6, 3
mov r2, r10
adds r1, r0, r2
movs r3, 0x3
_0817E4C4:
lsls r0, r4, 16
asrs r0, 16
ldrh r4, [r1]
adds r0, r4
lsls r0, 16
lsrs r4, r0, 16
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _0817E4C4
ldr r1, [sp, 0x8]
lsls r0, r1, 16
lsls r1, r4, 16
cmp r0, r1
bge _0817E4EE
lsls r0, r6, 24
lsrs r0, 24
str r0, [sp, 0x10]
lsrs r1, 16
str r1, [sp, 0x8]
str r7, [sp]
_0817E4EE:
mov r0, r8
muls r0, r6
ldr r2, =gUnknown_02024744
adds r4, r0, r2
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
lsls r0, 16
lsrs r7, r0, 16
ldr r3, [sp, 0x8]
lsls r3, 16
str r3, [sp, 0x1C]
cmp r7, 0
beq _0817E5A0
adds r0, r4, 0
movs r1, 0x2D
movs r2, 0
bl pokemon_getattr
cmp r0, 0
bne _0817E5A0
movs r4, 0
ldr r0, [sp, 0xC]
lsls r2, r0, 16
movs r3, 0x1
lsls r1, r3, 1
adds r1, 0x1
lsls r1, 4
lsls r0, r6, 3
adds r0, r1
mov r3, r10
adds r1, r0, r3
movs r3, 0x3
_0817E534:
lsls r0, r4, 16
asrs r0, 16
ldrh r4, [r1]
adds r0, r4
lsls r0, 16
lsrs r4, r0, 16
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _0817E534
asrs r1, r2, 16
lsls r5, r4, 16
asrs r0, r5, 16
cmp r1, r0
bne _0817E590
mov r0, r8
muls r0, r6
ldr r1, =gUnknown_02024744
adds r0, r1
movs r1, 0x19
movs r2, 0
bl pokemon_getattr
adds r4, r0, 0
ldr r2, [sp, 0x14]
mov r0, r8
muls r0, r2
ldr r3, =gUnknown_02024744
adds r0, r3
movs r1, 0x19
movs r2, 0
bl pokemon_getattr
cmp r4, r0
bls _0817E5A0
b _0817E594
.pool
_0817E590:
cmp r1, r0
ble _0817E5A0
_0817E594:
lsls r0, r6, 24
lsrs r0, 24
str r0, [sp, 0x14]
lsrs r5, 16
str r5, [sp, 0xC]
str r7, [sp, 0x4]
_0817E5A0:
mov r6, r9
cmp r6, 0x5
bgt _0817E5A8
b _0817E48E
_0817E5A8:
movs r4, 0
movs r6, 0
movs r3, 0
ldr r5, =gUnknown_020244EC
ldr r7, [sp, 0x10]
lsls r0, r7, 3
mov r1, r10
adds r2, r0, r1
_0817E5B8:
lsls r0, r4, 16
asrs r0, 16
movs r7, 0
ldrsh r1, [r2, r7]
cmp r0, r1
bge _0817E5C8
ldrh r4, [r2]
adds r6, r3, 0
_0817E5C8:
adds r2, 0x2
adds r3, 0x1
cmp r3, 0x3
ble _0817E5B8
movs r0, 0x64
ldr r1, [sp, 0x10]
muls r0, r1
adds r0, r5
adds r1, r6, 0
adds r1, 0xD
movs r2, 0
bl pokemon_getattr
lsls r0, 16
lsrs r4, r0, 16
ldr r2, [sp, 0x1C]
cmp r2, 0
beq _0817E670
cmp r4, 0
beq _0817E670
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _0817E65C
ldr r3, [sp, 0x10]
cmp r3, 0x2
bhi _0817E620
ldr r0, =gUnknown_02024474
adds r0, 0x25
ldrb r0, [r0]
bl sub_806D82C
lsls r0, 16
cmp r0, 0
beq _0817E630
b _0817E670
.pool
_0817E620:
ldr r0, =gUnknown_02024474
adds r0, 0x25
ldrb r0, [r0]
bl sub_806D82C
lsls r0, 16
cmp r0, 0
beq _0817E670
_0817E630:
movs r3, 0
ldr r7, [sp, 0x14]
cmp r7, 0x2
bls _0817E63A
movs r3, 0x1
_0817E63A:
lsls r0, r3, 24
lsrs r0, 24
ldr r1, =gUnknown_02024474
adds r1, 0x25
ldrb r1, [r1]
bl sub_806EF84
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
ldr r2, [sp]
ldr r3, [sp, 0x4]
bl sub_80ECB00
b _0817E670
.pool
_0817E65C:
ldr r0, =gUnknown_02024474
adds r0, 0x25
ldrb r1, [r0]
movs r0, 0x1
eors r0, r1
adds r1, r4, 0
ldr r2, [sp]
ldr r3, [sp, 0x4]
bl sub_80ECB00
_0817E670:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817E3F4
thumb_func_start sub_817E684
sub_817E684: @ 817E684
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 24
lsrs r5, r2, 24
lsls r3, 24
lsrs r3, 24
mov r9, r3
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 1
adds r1, r0
mov r8, r1
movs r2, 0x81
lsls r2, 2
adds r7, r0, r2
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r3, r0, 24
mov r0, r10
cmp r0, 0x1B
bls _0817E6D4
b _0817EA6C
_0817E6D4:
lsls r0, 2
ldr r1, =_0817E6F0
adds r1, r0, r1
ldr r1, [r1]
mov r12, r0
mov pc, r1
.pool
.align 2, 0
_0817E6F0:
.4byte _0817E760
.4byte _0817E760
.4byte _0817E85C
.4byte _0817E79C
.4byte _0817E79C
.4byte _0817E79C
.4byte _0817E79C
.4byte _0817E79C
.4byte _0817E8A0
.4byte _0817E8A0
.4byte _0817E8CC
.4byte _0817E8F0
.4byte _0817E978
.4byte _0817E9E0
.4byte _0817EA28
.4byte _0817E8A0
.4byte _0817E8A0
.4byte _0817E880
.4byte _0817E760
.4byte _0817E80A
.4byte _0817E848
.4byte _0817E8A0
.4byte _0817E760
.4byte _0817E760
.4byte _0817E760
.4byte _0817E760
.4byte _0817E760
.4byte _0817E760
_0817E760:
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
adds r1, r6
lsls r1, 1
lsls r0, r4, 1
adds r0, r4
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r2, [r0]
lsls r0, r5, 1
adds r0, r2
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817E79C:
ldr r1, =gUnknown_0860A834
add r1, r12
ldr r7, =gUnknown_0202406E
lsls r0, r4, 1
adds r0, r4
lsls r2, r0, 4
ldr r4, =0x0000ffff
ldr r1, [r1]
ldr r3, =gUnknown_0202420B
ldrh r0, [r1]
cmp r6, r0
bne _0817E7E0
ldrb r0, [r3]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
lsls r0, 2
adds r0, r5
lsls r0, 1
adds r0, r2
add r0, r8
ldrh r1, [r1, 0x2]
ldrh r2, [r0]
adds r1, r2
strh r1, [r0]
b _0817EA6C
.pool
_0817E7E0:
adds r1, 0x4
ldrh r0, [r1]
cmp r0, r4
bne _0817E7EA
b _0817EA6C
_0817E7EA:
cmp r6, r0
bne _0817E7E0
ldrb r0, [r3]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
lsls r0, 2
adds r0, r5
lsls r0, 1
adds r0, r2
add r0, r8
ldrh r1, [r1, 0x2]
ldrh r5, [r0]
adds r1, r5
strh r1, [r0]
b _0817EA6C
_0817E80A:
movs r0, 0x1
adds r1, r5, 0
eors r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
strb r1, [r0]
mov r0, r9
lsls r1, r0, 1
lsls r0, r5, 1
adds r0, r5
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r2, [r0]
lsls r0, r6, 1
adds r0, r2
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817E848:
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
adds r0, r7, r0
adds r0, 0x57
ldrb r2, [r0]
movs r1, 0x1F
negs r1, r1
ands r1, r2
strb r1, [r0]
_0817E85C:
mov r0, r9
lsls r1, r0, 1
lsls r0, r5, 1
adds r0, r5
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r2, [r0]
lsls r0, r6, 1
adds r0, r2
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817E880:
lsls r1, r5, 2
add r1, r9
lsls r1, 1
lsls r0, r4, 1
adds r0, r4
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r2, [r0]
lsls r0, r6, 1
adds r0, r2
b _0817EA64
.pool
_0817E8A0:
lsls r2, r5, 2
add r2, r9
lsls r2, 1
movs r1, 0x1
eors r1, r4
lsls r0, r1, 1
adds r0, r1
lsls r0, 4
adds r2, r0
add r2, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r1, [r0]
lsls r0, r6, 1
adds r0, r1
ldrh r0, [r0]
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
b _0817EA6C
.pool
_0817E8CC:
lsls r1, r5, 2
add r1, r9
lsls r1, 1
lsls r0, r6, 1
adds r0, r6
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817E8F0:
lsls r0, r3, 4
adds r2, r7, r0
adds r0, r2, 0
adds r0, 0x34
ldrb r0, [r0]
lsls r0, 29
lsrs r1, r0, 29
adds r4, r2, 0
adds r4, 0x3C
ldrb r0, [r4]
lsls r0, 29
lsrs r0, 29
cmn r1, r0
bne _0817E90E
b _0817EA6C
_0817E90E:
cmp r6, 0xA
beq _0817E914
b _0817EA6C
_0817E914:
cmp r1, 0
beq _0817E940
subs r1, 0x1
lsls r1, 2
adds r0, r2, 0
adds r0, 0x33
ldrb r0, [r0]
lsrs r0, 6
adds r1, r0
lsls r1, 1
lsls r0, r3, 1
adds r0, r3
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
ldrh r0, [r0]
ldrh r5, [r1]
adds r0, r5
strh r0, [r1]
_0817E940:
ldrb r0, [r4]
lsls r0, 29
lsrs r0, 29
cmp r0, 0
bne _0817E94C
b _0817EA6C
_0817E94C:
subs r1, r0, 0x1
lsls r1, 2
adds r0, r2, 0
adds r0, 0x3B
ldrb r0, [r0]
lsrs r0, 6
adds r1, r0
lsls r1, 1
lsls r0, r3, 1
adds r0, r3
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817E978:
lsls r1, r3, 4
adds r1, r7, r1
adds r0, r1, 0
adds r0, 0x34
ldrb r4, [r0]
lsls r0, r4, 26
lsrs r2, r0, 29
adds r5, r1, 0
adds r5, 0x3C
ldrb r0, [r5]
lsls r0, 26
lsrs r0, 29
cmn r2, r0
beq _0817EA6C
cmp r6, 0xD
bne _0817EA6C
cmp r2, 0
beq _0817E9BE
subs r1, r2, 0x1
lsls r1, 2
lsrs r0, r4, 6
adds r1, r0
lsls r1, 1
lsls r0, r3, 1
adds r0, r3
lsls r0, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
strh r0, [r1]
_0817E9BE:
ldrb r2, [r5]
lsls r0, r2, 26
lsrs r0, 29
cmp r0, 0
beq _0817EA6C
subs r1, r0, 0x1
lsls r1, 2
lsrs r0, r2, 6
adds r1, r0
lsls r1, 1
lsls r0, r3, 1
adds r0, r3
lsls r0, 4
b _0817EA5A
.pool
_0817E9E0:
cmp r6, 0x8
bhi _0817EA6C
cmp r5, 0
beq _0817EA6C
lsls r0, r3, 1
adds r3, r0, r3
lsls r0, r3, 2
adds r2, r7, r0
adds r0, r2, 0
adds r0, 0x50
ldrb r0, [r0]
lsls r0, 26
lsrs r0, 29
cmp r0, 0
beq _0817EA6C
subs r1, r0, 0x1
lsls r1, 2
adds r0, r2, 0
adds r0, 0x54
ldrb r0, [r0]
lsls r0, 28
lsrs r0, 30
adds r1, r0
lsls r1, 1
lsls r0, r3, 4
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r2
b _0817EA6A
.pool
_0817EA28:
cmp r6, 0x8
bls _0817EA6C
cmp r5, 0
beq _0817EA6C
lsls r0, r3, 1
adds r3, r0, r3
lsls r0, r3, 2
adds r2, r7, r0
adds r0, r2, 0
adds r0, 0x50
ldrh r0, [r0]
lsls r0, 23
lsrs r0, 29
cmp r0, 0
beq _0817EA6C
subs r1, r0, 0x1
lsls r1, 2
adds r0, r2, 0
adds r0, 0x54
ldrb r0, [r0]
lsls r0, 26
lsrs r0, 30
adds r1, r0
lsls r1, 1
lsls r0, r3, 4
_0817EA5A:
adds r1, r0
add r1, r8
ldr r0, =gUnknown_0860A834
add r0, r12
ldr r0, [r0]
_0817EA64:
ldrh r0, [r0]
ldrh r5, [r1]
adds r0, r5
_0817EA6A:
strh r0, [r1]
_0817EA6C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817E684
thumb_func_start sub_817EA80
sub_817EA80: @ 817EA80
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r7, r0, 24
ldr r0, =gUnknown_0202449C
ldr r0, [r0]
movs r1, 0x81
lsls r1, 2
adds r5, r0, r1
ldr r3, =gUnknown_0202420B
mov r8, r3
ldrb r0, [r3]
bl battle_side_get_owner
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r6, r5, r0
adds r0, r6, 0
adds r0, 0x57
ldrb r0, [r0]
lsrs r3, r0, 5
lsls r0, 27
lsrs r0, 28
cmp r0, 0
bne _0817EAC8
b _0817EE50
_0817EAC8:
subs r0, 0x1
cmp r0, 0xE
bls _0817EAD0
b _0817EEBC
_0817EAD0:
lsls r0, 2
ldr r1, =_0817EAEC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0817EAEC:
.4byte _0817EB28
.4byte _0817EB54
.4byte _0817EB80
.4byte _0817EBD4
.4byte _0817EBFE
.4byte _0817EC26
.4byte _0817EC4E
.4byte _0817EC6C
.4byte _0817EC9A
.4byte _0817ECCC
.4byte _0817ED54
.4byte _0817ED82
.4byte _0817EDC2
.4byte _0817EE1C
.4byte _0817EEBC
_0817EB28:
lsls r0, r3, 3
lsls r1, r4, 4
adds r0, r1
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x30
ldrb r0, [r0]
lsls r0, 29
lsrs r1, r0, 29
cmp r1, 0
bne _0817EB40
b _0817EEBC
_0817EB40:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r1, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x32
ldrb r3, [r0]
lsls r3, 28
b _0817EE84
_0817EB54:
lsls r0, r3, 3
lsls r1, r4, 4
adds r0, r1
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x30
ldrb r0, [r0]
lsls r0, 26
lsrs r1, r0, 29
cmp r1, 0
bne _0817EB6C
b _0817EEBC
_0817EB6C:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r1, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x32
ldrb r3, [r0]
lsls r3, 26
b _0817EE84
_0817EB80:
lsls r0, r3, 2
lsls r1, r4, 1
adds r1, r4
lsls r1, 3
adds r0, r1
adds r5, r0
ldrb r0, [r5]
lsls r0, 29
lsrs r1, r0, 29
cmp r1, 0
beq _0817EBB4
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r0, r1, 0x1
lsls r0, 2
ldrb r3, [r5, 0x2]
lsls r3, 28
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x13
movs r1, 0
bl sub_817E684
_0817EBB4:
ldrb r0, [r5]
lsls r0, 26
lsrs r1, r0, 29
cmp r1, 0
bne _0817EBC0
b _0817EEBC
_0817EBC0:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r0, r1, 0x1
lsls r0, 2
ldrb r3, [r5, 0x2]
lsls r3, 26
lsrs r3, 30
adds r3, r0
b _0817EE88
_0817EBD4:
lsls r0, r3, 2
lsls r1, r4, 1
adds r1, r4
lsls r1, 3
adds r0, r1
adds r1, r5, r0
ldrh r0, [r1]
lsls r0, 23
lsrs r3, r0, 29
cmp r3, 0
bne _0817EBEC
b _0817EEBC
_0817EBEC:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r0, r3, 0x1
lsls r0, 2
ldrb r3, [r1, 0x2]
lsrs r3, 6
adds r3, r0
b _0817EE88
_0817EBFE:
lsls r0, r3, 3
lsls r1, r4, 4
adds r0, r1
adds r3, r5, r0
ldrh r0, [r3, 0x30]
lsls r0, 23
lsrs r1, r0, 29
cmp r1, 0
bne _0817EC12
b _0817EEBC
_0817EC12:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r1, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x32
ldrb r3, [r0]
lsrs r3, 6
b _0817EE86
_0817EC26:
lsls r0, r3, 3
lsls r1, r4, 4
adds r0, r1
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x31
ldrb r0, [r0]
lsls r0, 28
lsrs r1, r0, 29
cmp r1, 0
bne _0817EC3E
b _0817EEBC
_0817EC3E:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r1, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x33
b _0817EE80
_0817EC4E:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x50
ldrb r0, [r0]
lsls r0, 29
lsrs r1, r0, 29
cmp r1, 0
bne _0817EC66
b _0817EEBC
_0817EC66:
movs r0, 0x1
adds r2, r4, 0
b _0817EE76
_0817EC6C:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r3, r5, r0
ldr r0, [r3, 0x50]
lsls r0, 14
lsrs r0, 29
cmp r0, 0
bne _0817EC80
b _0817EEBC
_0817EC80:
adds r2, r4, 0
subs r1, r0, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x55
ldrb r3, [r0]
lsls r3, 28
lsrs r3, 30
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x14
b _0817EE8E
_0817EC9A:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x52
ldrb r0, [r0]
lsls r0, 27
lsrs r0, 29
cmp r0, 0
bne _0817ECB2
b _0817EEBC
_0817ECB2:
adds r2, r4, 0
subs r1, r0, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x55
ldrb r3, [r0]
lsls r3, 26
lsrs r3, 30
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x14
b _0817EE8E
_0817ECCC:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x58
ldrb r0, [r0]
lsls r0, 25
cmp r0, 0
bge _0817ED14
adds r0, r3, 0
adds r0, 0x52
ldrb r0, [r0]
lsrs r0, 5
subs r6, r0, 0x1
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
cmp r6, r0
beq _0817ED14
adds r2, r4, 0
lsls r1, r6, 2
adds r0, r3, 0
adds r0, 0x55
ldrb r3, [r0]
lsrs r3, 6
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x13
movs r1, 0
bl sub_817E684
_0817ED14:
movs r1, 0x1
eors r1, r4
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r1, r5, r0
adds r0, r1, 0
adds r0, 0x58
ldrb r0, [r0]
lsls r0, 25
cmp r0, 0
blt _0817ED2E
b _0817EEBC
_0817ED2E:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
adds r0, r1, 0
adds r0, 0x52
ldrb r0, [r0]
lsrs r0, 5
subs r0, 0x1
lsls r0, 2
adds r1, 0x55
ldrb r3, [r1]
lsrs r3, 6
adds r3, r0
b _0817EE88
.pool
_0817ED54:
movs r0, 0x1
eors r0, r4
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r5, r1
adds r1, 0x56
ldrb r0, [r1]
lsls r0, 25
lsrs r5, r0, 29
cmp r5, 0
bne _0817ED6E
b _0817EEBC
_0817ED6E:
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
subs r0, r5, 0x1
lsls r0, 2
ldrh r3, [r1]
lsls r3, 23
lsrs r3, 30
adds r3, r0
b _0817EE88
_0817ED82:
lsls r2, r4, 4
movs r1, 0x1
adds r0, r4, 0
eors r0, r1
lsls r6, r0, 24
adds r0, r5, 0
adds r0, 0x30
adds r4, r2, r0
movs r5, 0x1
_0817ED94:
ldr r0, [r4]
lsls r0, 14
lsrs r0, 29
cmp r0, 0
beq _0817EDB8
subs r0, 0x1
lsls r0, 2
ldrb r3, [r4, 0x3]
lsls r3, 26
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x13
movs r1, 0
lsrs r2, r6, 24
bl sub_817E684
_0817EDB8:
adds r4, 0x8
subs r5, 0x1
cmp r5, 0
bge _0817ED94
b _0817EEBC
_0817EDC2:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r5, r0
adds r0, 0x58
ldrb r3, [r0]
lsls r0, r3, 31
cmp r0, 0
beq _0817EDF0
adds r2, r4, 0
lsls r0, r3, 26
lsrs r0, 29
subs r0, 0x1
lsls r0, 2
lsls r3, 29
lsrs r3, 30
adds r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x13
movs r1, 0
bl sub_817E684
_0817EDF0:
movs r0, 0x1
eors r0, r4
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r5, r1
adds r1, 0x58
ldrb r1, [r1]
lsls r0, r1, 31
cmp r0, 0
beq _0817EEBC
movs r0, 0x1
adds r2, r4, 0
eors r2, r0
lsls r0, r1, 26
lsrs r0, 29
subs r0, 0x1
lsls r0, 2
lsls r3, r1, 29
lsrs r3, 30
adds r3, r0
b _0817EE88
_0817EE1C:
cmp r7, 0x1
bne _0817EEBC
adds r2, r4, 0
ldr r1, =gUnknown_0202406E
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r5, r0
adds r0, 0x53
ldrb r3, [r0]
lsrs r3, 6
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x14
b _0817EE8E
.pool
_0817EE50:
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r5, r0
adds r0, r3, 0
adds r0, 0x57
ldrb r0, [r0]
lsls r0, 27
lsrs r0, 28
cmp r0, 0x7
bne _0817EE96
adds r0, r3, 0
adds r0, 0x50
ldrb r0, [r0]
lsls r0, 29
lsrs r1, r0, 29
cmp r1, 0
beq _0817EEBC
movs r0, 0x1
_0817EE76:
eors r2, r0
subs r1, 0x1
lsls r1, 2
adds r0, r3, 0
adds r0, 0x54
_0817EE80:
ldrb r3, [r0]
lsls r3, 30
_0817EE84:
lsrs r3, 30
_0817EE86:
adds r3, r1
_0817EE88:
lsls r3, 24
lsrs r3, 24
movs r0, 0x13
_0817EE8E:
movs r1, 0
bl sub_817E684
b _0817EEBC
_0817EE96:
adds r2, r4, 0
ldr r1, =gUnknown_0202406E
mov r3, r8
ldrb r0, [r3]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 2
adds r0, r6, 0
adds r0, 0x53
ldrb r3, [r0]
lsrs r3, 6
adds r3, r1
lsls r3, 24
lsrs r3, 24
movs r0, 0x14
movs r1, 0
bl sub_817E684
_0817EEBC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817EA80
thumb_func_start sub_817EECC
sub_817EECC: @ 817EECC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
ldr r7, =gUnknown_02022FEC
ldr r0, [r7]
ldr r1, =0x02000003
ands r0, r1
cmp r0, 0
beq _0817EEE6
b _0817F1FA
_0817EEE6:
ldr r4, =gUnknown_0202420B
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0817EEF8
b _0817F1FA
_0817EEF8:
ldr r5, =gUnknown_02024084
ldrb r4, [r4]
movs r1, 0x58
adds r6, r4, 0
muls r6, r1
adds r0, r6, r5
ldrb r0, [r0, 0x1E]
lsls r0, 24
asrs r0, 24
cmp r0, 0x5
bgt _0817EF10
b _0817F1FA
_0817EF10:
ldr r0, =gUnknown_0202420C
ldrb r0, [r0]
muls r0, r1
adds r0, r5
ldrb r0, [r0, 0x1F]
lsls r0, 24
asrs r0, 24
cmp r0, 0x6
ble _0817EF24
b _0817F1FA
_0817EF24:
ldr r0, =gUnknown_020241EA
ldrh r1, [r0]
cmp r1, 0xED
bne _0817EF2E
b _0817F1FA
_0817EF2E:
ldr r0, =0x00000137
cmp r1, r0
bne _0817EF36
b _0817F1FA
_0817EF36:
ldr r0, [r7]
movs r1, 0xC8
lsls r1, 14
ands r0, r1
cmp r0, 0
beq _0817EF44
b _0817F1FA
_0817EF44:
ldr r3, =gBattleMoves
ldr r2, =gUnknown_020244B0
adds r0, r4, r2
ldrb r0, [r0]
lsls r0, 1
adds r0, r6
adds r1, r5, 0
adds r1, 0xC
adds r0, r1
ldrh r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r0, [r0, 0x1]
adds r6, r2, 0
cmp r0, 0
bne _0817EF6A
b _0817F1FA
_0817EF6A:
movs r5, 0
str r1, [sp, 0x24]
ldr r1, =gUnknown_0860A4AC
ldr r4, =0x0000ffff
adds r3, r1, 0
adds r2, r1, 0
_0817EF76:
ldr r0, [sp, 0x24]
ldrh r7, [r2]
cmp r0, r7
beq _0817EF8A
adds r3, 0x2
adds r2, 0x2
adds r5, 0x1
ldrh r0, [r3]
cmp r0, r4
bne _0817EF76
_0817EF8A:
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
ldr r0, =0x0000ffff
cmp r1, r0
beq _0817EF98
b _0817F1FA
_0817EF98:
ldr r2, =gUnknown_0202420B
ldrb r0, [r2]
adds r0, r6
ldrb r0, [r0]
lsls r0, 2
mov r1, sp
adds r1, r0
adds r1, 0x10
ldr r0, =gUnknown_020241F0
ldr r0, [r0]
str r0, [r1]
ldr r0, =gUnknown_020241EA
ldrh r1, [r0]
str r1, [sp, 0x24]
movs r5, 0
add r3, sp, 0x20
mov r10, r3
mov r8, r0
add r7, sp, 0x10
ldr r4, =gUnknown_0202420C
mov r9, r4
_0817EFC2:
lsls r1, r5, 1
ldr r6, =gUnknown_0202420B
ldrb r0, [r6]
movs r2, 0x58
muls r0, r2
adds r1, r0
ldr r0, =gUnknown_02024084
adds r0, 0xC
adds r1, r0
ldrh r0, [r1]
mov r3, r8
strh r0, [r3]
movs r6, 0
mov r4, r10
strh r6, [r4]
ldrh r0, [r3]
adds r1, r7, 0
mov r2, r10
bl sub_817F21C
lsls r0, 24
cmp r0, 0
beq _0817F0B4
ldr r4, =gUnknown_0202428E
mov r1, r9
ldrb r0, [r1]
bl battle_get_per_side_status
movs r1, 0x1
ands r1, r0
lsls r1, 1
adds r1, r4
ldrh r3, [r1]
ldr r2, =gUnknown_0202420B
ldrb r0, [r2]
movs r4, 0x58
muls r0, r4
ldr r6, =gUnknown_02024084
adds r0, r6
mov r2, r9
ldrb r1, [r2]
muls r1, r4
adds r1, r6
mov r4, r8
ldrh r2, [r4]
mov r6, r10
ldrh r4, [r6]
str r4, [sp]
movs r4, 0
str r4, [sp, 0x4]
ldr r6, =gUnknown_0202420B
ldrb r4, [r6]
str r4, [sp, 0x8]
mov r6, r9
ldrb r4, [r6]
str r4, [sp, 0xC]
bl sub_806957C
adds r3, r0, 0
ldr r4, =gUnknown_020241F0
str r3, [r4]
ldr r1, =gUnknown_020242AC
ldr r2, =gUnknown_0202420B
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x80
lsls r1, 2
ands r0, r1
cmp r0, 0
beq _0817F06A
ldr r2, =gBattleMoves
mov r6, r8
ldrh r1, [r6]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x2]
cmp r0, 0xD
bne _0817F06A
lsls r0, r3, 1
str r0, [r4]
_0817F06A:
ldr r0, =gUnknown_0202433C
ldr r6, =gUnknown_0202420B
ldrb r1, [r6]
lsls r1, 4
adds r1, r0
ldrb r0, [r1]
lsls r0, 28
cmp r0, 0
bge _0817F08C
ldr r4, =gUnknown_020241F0
ldr r1, [r4]
lsls r0, r1, 4
subs r0, r1
movs r1, 0xA
bl __divsi3
str r0, [r4]
_0817F08C:
mov r1, r8
ldrh r0, [r1]
ldrb r1, [r6]
mov r3, r9
ldrb r2, [r3]
bl move_effectiveness_something
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gUnknown_020241F0
ldr r0, [r0]
str r0, [r7]
cmp r0, 0
bne _0817F0B4
movs r0, 0x29
ands r0, r1
cmp r0, 0
bne _0817F0B4
movs r0, 0x1
str r0, [r7]
_0817F0B4:
adds r7, 0x4
adds r5, 0x1
cmp r5, 0x3
ble _0817EFC2
movs r5, 0
ldr r3, =gUnknown_0202420B
ldr r6, =gUnknown_020244B0
ldr r4, =gUnknown_0202406E
mov r8, r4
movs r7, 0x64
mov r9, r7
mov r10, r6
_0817F0CC:
ldrb r0, [r3]
adds r0, r6
ldrb r2, [r0]
cmp r5, r2
bne _0817F0D8
b _0817F1D4
_0817F0D8:
lsls r0, r5, 2
mov r1, sp
adds r1, r0
adds r1, 0x10
lsls r0, r2, 2
add r0, sp
adds r0, 0x10
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
ble _0817F1D4
movs r7, 0x1
cmp r2, 0
beq _0817F0F6
movs r7, 0
_0817F0F6:
movs r5, 0
ldr r4, =gUnknown_0202420C
ldr r6, =gUnknown_02024744
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
add r0, r10
ldrb r3, [r0]
add r2, sp, 0x10
_0817F106:
cmp r5, r3
beq _0817F11A
lsls r0, r7, 2
add r0, sp
adds r0, 0x10
ldr r1, [r2]
ldr r0, [r0]
cmp r1, r0
ble _0817F11A
adds r7, r5, 0
_0817F11A:
adds r2, 0x4
adds r5, 0x1
cmp r5, 0x3
ble _0817F106
ldrb r0, [r4]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
mov r1, r9
muls r1, r0
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
ldr r2, =gUnknown_0202420B
ldrb r0, [r2]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
mov r3, r9
muls r3, r0
adds r0, r3, 0
ldr r1, =gUnknown_020244EC
adds r0, r1
movs r1, 0xB
movs r2, 0
bl pokemon_getattr
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r4, =gUnknown_0202420B
ldrb r3, [r4]
mov r2, r10
adds r0, r3, r2
ldrb r2, [r0]
movs r0, 0x58
adds r4, r3, 0
muls r4, r0
ldr r5, =gUnknown_02024090
adds r3, r4, r5
lsls r0, r7, 1
adds r0, r4
adds r0, r5
ldrh r0, [r0]
str r0, [sp]
adds r0, r6, 0
bl sub_80EE35C
b _0817F1DC
.pool
_0817F1D4:
adds r5, 0x1
cmp r5, 0x3
bgt _0817F1DC
b _0817F0CC
_0817F1DC:
ldr r2, =gUnknown_020241F0
ldr r1, =gUnknown_020244B0
ldr r0, =gUnknown_0202420B
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
add r0, sp
adds r0, 0x10
ldr r0, [r0]
str r0, [r2]
ldr r0, =gUnknown_020241EA
mov r3, sp
ldrh r3, [r3, 0x24]
strh r3, [r0]
_0817F1FA:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_817EECC
thumb_func_start sub_817F21C
sub_817F21C: @ 817F21C
push {r4-r7,lr}
adds r6, r1, 0
mov r12, r2
lsls r0, 16
lsrs r2, r0, 16
ldr r1, =gBattleMoves
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0817F286
movs r4, 0
ldr r5, =gUnknown_0860A4AC
ldr r7, =0x0000ffff
adds r3, r5, 0
adds r1, r5, 0
_0817F240:
ldrh r0, [r1]
cmp r2, r0
beq _0817F252
adds r3, 0x2
adds r1, 0x2
adds r4, 0x1
ldrh r0, [r3]
cmp r0, r7
bne _0817F240
_0817F252:
lsls r0, r4, 1
adds r0, r5
ldrh r1, [r0]
ldr r0, =0x0000ffff
cmp r1, r0
beq _0817F270
movs r0, 0
str r0, [r6]
b _0817F2A0
.pool
_0817F270:
cmp r2, 0x95
bne _0817F294
ldr r2, =gUnknown_02024084
ldr r0, =gUnknown_0202420B
ldrb r1, [r0]
movs r0, 0x58
muls r0, r1
adds r0, r2
adds r0, 0x2A
ldrb r0, [r0]
asrs r0, 1
_0817F286:
str r0, [r6]
movs r0, 0
b _0817F2A0
.pool
_0817F294:
cmp r2, 0xDE
bne _0817F29E
movs r0, 0xA
mov r1, r12
strh r0, [r1]
_0817F29E:
movs r0, 0x1
_0817F2A0:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_817F21C
thumb_func_start sub_817F2A8
sub_817F2A8: @ 817F2A8
push {r4,r5,lr}
ldr r0, =gUnknown_02022FEC
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0817F324
ldr r0, =gUnknown_0202449C
ldr r3, [r0]
ldr r0, =0x0000025b
adds r4, r3, r0
ldrb r2, [r4]
subs r1, 0x21
adds r0, r1, 0
ands r0, r2
strb r0, [r4]
ldr r0, =0x00000267
adds r2, r3, r0
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
ldrb r5, [r4]
movs r1, 0x1F
adds r0, r1, 0
ands r0, r5
strb r0, [r4]
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
movs r0, 0x97
lsls r0, 2
adds r4, r3, r0
ldrb r2, [r4]
movs r1, 0x39
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r4]
movs r0, 0x9A
lsls r0, 2
adds r3, r0
ldrb r0, [r3]
ands r1, r0
strb r1, [r3]
ldrb r2, [r4]
movs r1, 0x7
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r4]
ldrb r0, [r3]
ands r1, r0
strb r1, [r3]
ldrb r2, [r4]
movs r1, 0x2
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r4]
ldrb r0, [r3]
ands r1, r0
strb r1, [r3]
_0817F324:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_817F2A8
thumb_func_start sub_817F33C
sub_817F33C: @ 817F33C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsrs r7, r1, 16
adds r0, r5, 0
bl battle_side_get_owner
lsls r0, 24
ldr r6, =gUnknown_02024744
cmp r0, 0
bne _0817F356
ldr r6, =gUnknown_020244EC
_0817F356:
movs r4, 0
ldr r1, =gUnknown_0202406E
lsls r0, r5, 1
adds r5, r0, r1
b _0817F36E
.pool
_0817F36C:
adds r4, 0x1
_0817F36E:
cmp r4, 0x3
bgt _0817F388
ldrh r1, [r5]
movs r0, 0x64
muls r0, r1
adds r0, r6, r0
adds r1, r4, 0
adds r1, 0xD
movs r2, 0
bl pokemon_getattr
cmp r0, r7
bne _0817F36C
_0817F388:
lsls r0, r4, 24
lsrs r0, 24
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_817F33C
thumb_func_start sub_817F394
sub_817F394: @ 817F394
push {r4-r6,lr}
lsls r0, 16
lsrs r3, r0, 16
adds r4, r3, 0
lsls r1, 16
lsrs r1, 16
adds r6, r1, 0
lsls r2, 24
lsrs r2, 24
adds r5, r2, 0
movs r0, 0x7
ands r0, r3
cmp r0, 0
beq _0817F3B4
movs r0, 0x3
b _0817F3CA
_0817F3B4:
movs r0, 0x60
ands r0, r3
cmp r0, 0
beq _0817F3C0
movs r0, 0x4
b _0817F3CA
_0817F3C0:
movs r0, 0x18
ands r0, r3
cmp r0, 0
beq _0817F3D2
movs r0, 0x5
_0817F3CA:
movs r3, 0
bl sub_817E684
b _0817F3E6
_0817F3D2:
movs r0, 0x80
ands r4, r0
cmp r4, 0
beq _0817F3E6
movs r0, 0x6
adds r1, r6, 0
adds r2, r5, 0
movs r3, 0
bl sub_817E684
_0817F3E6:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_817F394
thumb_func_start nullsub_69
nullsub_69: @ 817F3EC
bx lr
thumb_func_end nullsub_69
thumb_func_start sub_817F3F0
sub_817F3F0: @ 817F3F0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
mov r9, r0
mov r8, r1
adds r5, r2, 0
adds r4, r3, 0
lsls r5, 16
negs r5, r5
lsls r4, 16
negs r4, r4
lsrs r4, 16
mov r0, r8
lsls r0, 16
asrs r0, 16
mov r8, r0
asrs r5, 16
adds r1, r5, 0
bl cosine
adds r6, r0, 0
lsls r4, 16
asrs r4, 16
mov r0, r8
adds r1, r4, 0
bl sine
subs r6, r0
lsls r6, 16
lsrs r6, 16
mov r0, r8
adds r1, r4, 0
bl cosine
adds r2, r0, 0
mov r0, r8
adds r1, r5, 0
str r2, [sp]
bl sine
ldr r2, [sp]
adds r2, r0
negs r5, r5
negs r4, r4
lsls r6, 16
asrs r6, 16
lsls r5, 16
asrs r5, 16
adds r6, r5
mov r0, r9
strh r6, [r0, 0x24]
lsls r2, 16
asrs r2, 16
lsls r4, 16
asrs r4, 16
adds r2, r4
strh r2, [r0, 0x26]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_817F3F0
thumb_func_start sub_817F474
sub_817F474: @ 817F474
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r1, =gUnknown_0860A8C8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0817F48C
movs r0, 0
b _0817F492
.pool
_0817F48C:
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
_0817F492:
pop {r1}
bx r1
thumb_func_end sub_817F474
.align 2, 0 @ Don't pad with nop.