mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
11783 lines
181 KiB
ArmAsm
11783 lines
181 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
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 Cos
|
|
adds r6, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl Sin
|
|
subs r6, r0
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl Cos
|
|
adds r2, r0, 0
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
str r2, [sp]
|
|
bl Sin
|
|
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 GetSpeciesBackAnimId
|
|
GetSpeciesBackAnimId: @ 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 GetSpeciesBackAnimId
|
|
|
|
thumb_func_start sub_817F498
|
|
sub_817F498: @ 817F498
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r6, r5, 2
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r3, 0xA
|
|
ldrsh r0, [r2, r3]
|
|
lsls r3, r0, 16
|
|
movs r4, 0xC
|
|
ldrsh r0, [r2, r4]
|
|
orrs r3, r0
|
|
movs r0, 0x8
|
|
ldrsh r4, [r2, r0]
|
|
mov r8, r1
|
|
ldr r0, =SpriteCallbackDummy
|
|
mov r12, r0
|
|
cmp r4, 0
|
|
bne _0817F508
|
|
ldrh r0, [r3, 0x2E]
|
|
strh r0, [r2, 0x10]
|
|
ldrh r0, [r3, 0x32]
|
|
strh r0, [r2, 0x12]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
strh r4, [r3, 0x2E]
|
|
movs r0, 0x2
|
|
adds r1, r6, 0
|
|
ldr r6, =gUnknown_0860AA88
|
|
ldr r7, =gUnknown_03001274
|
|
movs r4, 0
|
|
adds r2, r3, 0
|
|
adds r2, 0x32
|
|
_0817F4E2:
|
|
strh r4, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x1
|
|
cmp r0, 0x7
|
|
bls _0817F4E2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
add r1, r8
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
str r0, [r3, 0x1C]
|
|
movs r0, 0
|
|
str r0, [r7]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
_0817F508:
|
|
ldr r0, [r3, 0x1C]
|
|
cmp r0, r12
|
|
bne _0817F528
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
add r0, r8
|
|
ldrh r1, [r0, 0x10]
|
|
movs r2, 0
|
|
strh r1, [r3, 0x2E]
|
|
ldrh r0, [r0, 0x12]
|
|
strh r0, [r3, 0x32]
|
|
strh r2, [r3, 0x30]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0817F528:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817F498
|
|
|
|
thumb_func_start LaunchAnimationTaskForFrontSprite
|
|
LaunchAnimationTaskForFrontSprite: @ 817F544
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
ldr r0, =sub_817F498
|
|
movs r1, 0x80
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
lsrs r0, r5, 16
|
|
strh r0, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
strh r4, [r1, 0xE]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end LaunchAnimationTaskForFrontSprite
|
|
|
|
thumb_func_start sub_817F578
|
|
sub_817F578: @ 817F578
|
|
lsls r1, 24
|
|
ldr r3, =gUnknown_03001274
|
|
movs r2, 0x1
|
|
str r2, [r3]
|
|
ldr r2, =gUnknown_0860AA88
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_817F578
|
|
|
|
thumb_func_start LaunchAnimationTaskForBackSprite
|
|
LaunchAnimationTaskForBackSprite: @ 817F594
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r6, r1, 24
|
|
lsrs r6, 24
|
|
ldr r0, =sub_817F498
|
|
movs r1, 0x80
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
lsrs r0, r5, 16
|
|
strh r0, [r4, 0xA]
|
|
strh r5, [r4, 0xC]
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
ldr r1, =gBattlePartyID
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r6, 1
|
|
ldr r2, =gUnknown_0860AD2F
|
|
adds r0, r2
|
|
adds r1, r6
|
|
ldrb r0, [r0]
|
|
adds r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, =gUnknown_0860ACE4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r4, 0xE]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end LaunchAnimationTaskForBackSprite
|
|
|
|
thumb_func_start sub_817F60C
|
|
sub_817F60C: @ 817F60C
|
|
ldr r1, =nullsub_69
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_817F60C
|
|
|
|
thumb_func_start sub_817F618
|
|
sub_817F618: @ 817F618
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r1, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
ldr r4, =0xffff0000
|
|
lsls r2, 16
|
|
lsrs r1, 16
|
|
orrs r1, r2
|
|
str r1, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r4
|
|
orrs r1, r3
|
|
str r1, [sp, 0x4]
|
|
ldrb r4, [r0, 0x3]
|
|
lsls r4, 26
|
|
lsrs r4, 27
|
|
add r5, sp, 0x8
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ObjAffineSet
|
|
ldr r0, =gOamMatrices
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
ldrh r0, [r5]
|
|
strh r0, [r4]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x4]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x6]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817F618
|
|
|
|
thumb_func_start sub_817F670
|
|
sub_817F670: @ 817F670
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldr r0, =gSpriteAffineAnimTable_860AD68
|
|
str r0, [r4, 0x10]
|
|
ldr r0, =gUnknown_03001274
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0817F68E
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
_0817F68E:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0817F6A8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _0817F6B0
|
|
.pool
|
|
_0817F6A8:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
_0817F6B0:
|
|
ldrb r3, [r4, 0x1]
|
|
lsrs r1, r3, 6
|
|
ldrb r2, [r4, 0x3]
|
|
lsrs r2, 6
|
|
lsls r3, 30
|
|
lsrs r3, 30
|
|
adds r0, r4, 0
|
|
bl CalcCenterToCornerVec
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F670
|
|
|
|
thumb_func_start sub_817F6D4
|
|
sub_817F6D4: @ 817F6D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
movs r5, 0x30
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
bne _0817F6F8
|
|
lsls r0, r1, 16
|
|
negs r0, r0
|
|
lsrs r1, r0, 16
|
|
negs r0, r3
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
_0817F6F8:
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
bl sub_817F618
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F6D4
|
|
|
|
thumb_func_start sub_817F70C
|
|
sub_817F70C: @ 817F70C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x30
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0817F720
|
|
movs r2, 0x24
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x24]
|
|
_0817F720:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F70C
|
|
|
|
thumb_func_start sub_817F724
|
|
sub_817F724: @ 817F724
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bhi _0817F750
|
|
ldr r1, =gUnknown_03001240
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0, 0x6]
|
|
strh r2, [r0]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x4]
|
|
strh r2, [r0, 0x2]
|
|
strh r2, [r0, 0x8]
|
|
movs r0, 0x1
|
|
b _0817F752
|
|
.pool
|
|
_0817F750:
|
|
movs r0, 0
|
|
_0817F752:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_817F724
|
|
|
|
thumb_func_start sub_817F758
|
|
sub_817F758: @ 817F758
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_03001270
|
|
ldrb r1, [r4]
|
|
adds r2, r1, 0x1
|
|
adds r0, r2, 0
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r2, r0
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
bl sub_817F724
|
|
ldrb r0, [r4]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_817F758
|
|
|
|
thumb_func_start sub_817F77C
|
|
sub_817F77C: @ 817F77C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x1]
|
|
movs r3, 0x4
|
|
negs r3, r3
|
|
ands r3, r0
|
|
movs r5, 0x1
|
|
orrs r3, r5
|
|
strb r3, [r4, 0x1]
|
|
lsrs r1, r3, 6
|
|
ldrb r2, [r4, 0x3]
|
|
lsrs r2, 6
|
|
lsls r3, 30
|
|
lsrs r3, 30
|
|
adds r0, r4, 0
|
|
bl CalcCenterToCornerVec
|
|
ldr r0, =gUnknown_03001274
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0817F800
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0817F7C0
|
|
adds r1, r4, 0
|
|
adds r1, 0x3F
|
|
ldrb r0, [r1]
|
|
orrs r0, r5
|
|
strb r0, [r1]
|
|
adds r5, r1, 0
|
|
b _0817F7D0
|
|
.pool
|
|
_0817F7C0:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r2, [r0]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r5, r0, 0
|
|
_0817F7D0:
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldrb r2, [r4, 0x3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 27
|
|
ldrb r0, [r5]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
lsls r0, 3
|
|
orrs r1, r0
|
|
lsls r1, 1
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
_0817F800:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F77C
|
|
|
|
thumb_func_start pokemonanimfunc_01
|
|
pokemonanimfunc_01: @ 817F808
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _0817F81A
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_0817F81A:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x28
|
|
ble _0817F840
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _0817F88C
|
|
.pool
|
|
_0817F840:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 9
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
cmp r0, 0
|
|
bge _0817F854
|
|
adds r4, 0xFF
|
|
_0817F854:
|
|
asrs r4, 8
|
|
lsls r4, 8
|
|
subs r4, r0, r4
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r5, r1, 0
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl Cos
|
|
adds r0, r5
|
|
strh r0, [r6, 0x38]
|
|
movs r0, 0x36
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, 0x38
|
|
ldrsh r2, [r6, r0]
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_0817F88C:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_01
|
|
|
|
thumb_func_start pokemonanimfunc_02
|
|
pokemonanimfunc_02: @ 817F898
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x28
|
|
ble _0817F8B4
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0817F8EE
|
|
.pool
|
|
_0817F8B4:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
movs r5, 0xFF
|
|
cmp r0, 0
|
|
bne _0817F8C0
|
|
movs r5, 0x1
|
|
_0817F8C0:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0817F8D4
|
|
adds r0, 0xFF
|
|
_0817F8D4:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl Sin
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
_0817F8EE:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_02
|
|
|
|
thumb_func_start sub_817F8FC
|
|
sub_817F8FC: @ 817F8FC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _0817F91C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0817F946
|
|
.pool
|
|
_0817F91C:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 7
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0817F936
|
|
adds r0, 0xFF
|
|
_0817F936:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl Sin
|
|
_0817F946:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F8FC
|
|
|
|
thumb_func_start pokemonanimfunc_03
|
|
pokemonanimfunc_03: @ 817F95C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F8FC
|
|
ldr r0, =sub_817F8FC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_03
|
|
|
|
thumb_func_start sub_817F978
|
|
sub_817F978: @ 817F978
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _0817F998
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0817F9C4
|
|
.pool
|
|
_0817F998:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 7
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0817F9B2
|
|
adds r0, 0xFF
|
|
_0817F9B2:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl Sin
|
|
negs r0, r0
|
|
_0817F9C4:
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F978
|
|
|
|
thumb_func_start pokemonanimfunc_04
|
|
pokemonanimfunc_04: @ 817F9D8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F978
|
|
ldr r0, =sub_817F978
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_04
|
|
|
|
thumb_func_start sub_817F9F4
|
|
sub_817F9F4: @ 817F9F4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
ble _0817FA14
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _0817FA5E
|
|
.pool
|
|
_0817FA14:
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0817FA1C
|
|
adds r0, 0x7F
|
|
_0817FA1C:
|
|
asrs r2, r0, 7
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _0817FA60
|
|
cmp r0, 0x1
|
|
ble _0817FA48
|
|
cmp r0, 0x3
|
|
bgt _0817FA60
|
|
ldr r2, =0xffffff00
|
|
adds r1, r2
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
movs r1, 0x2E
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
b _0817FA56
|
|
.pool
|
|
_0817FA48:
|
|
lsls r0, r2, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
lsls r1, 17
|
|
_0817FA56:
|
|
asrs r1, 16
|
|
bl Sin
|
|
negs r0, r0
|
|
_0817FA5E:
|
|
strh r0, [r4, 0x26]
|
|
_0817FA60:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817F9F4
|
|
|
|
thumb_func_start pokemonanimfunc_1E
|
|
pokemonanimfunc_1E: @ 817FA6C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F9F4
|
|
ldr r0, =sub_817F9F4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_1E
|
|
|
|
thumb_func_start pokemonanimfunc_06
|
|
pokemonanimfunc_06: @ 817FA88
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r2, r0
|
|
ble _0817FAA8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _0817FB56
|
|
.pool
|
|
_0817FAA8:
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0817FAB0
|
|
adds r0, 0x7F
|
|
_0817FAB0:
|
|
lsls r0, 9
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bhi _0817FB3C
|
|
lsls r0, 2
|
|
ldr r1, =_0817FAC8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0817FAC8:
|
|
.4byte _0817FAE0
|
|
.4byte _0817FAE0
|
|
.4byte _0817FAE4
|
|
.4byte _0817FAE8
|
|
.4byte _0817FB04
|
|
.4byte _0817FB1E
|
|
_0817FAE0:
|
|
movs r0, 0
|
|
b _0817FB3A
|
|
_0817FAE4:
|
|
movs r2, 0
|
|
b _0817FB3C
|
|
_0817FAE8:
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0817FAF0
|
|
adds r0, 0x7F
|
|
_0817FAF0:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r2, r0
|
|
lsls r0, 3
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _0817FB00
|
|
adds r0, 0x7F
|
|
_0817FB00:
|
|
asrs r0, 7
|
|
b _0817FB3A
|
|
_0817FB04:
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0817FB0C
|
|
adds r0, 0x7F
|
|
_0817FB0C:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r2, r0
|
|
cmp r0, 0
|
|
bge _0817FB18
|
|
adds r0, 0x7
|
|
_0817FB18:
|
|
asrs r0, 3
|
|
subs r0, 0x8
|
|
b _0817FB3A
|
|
_0817FB1E:
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0817FB26
|
|
adds r0, 0x7F
|
|
_0817FB26:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r2, r0
|
|
lsls r0, 3
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _0817FB36
|
|
adds r0, 0x7F
|
|
_0817FB36:
|
|
asrs r0, 7
|
|
adds r0, 0x8
|
|
_0817FB3A:
|
|
strh r0, [r4, 0x24]
|
|
_0817FB3C:
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0817FB44
|
|
adds r0, 0x7F
|
|
_0817FB44:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
_0817FB56:
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_06
|
|
|
|
thumb_func_start pokemonanimfunc_09
|
|
pokemonanimfunc_09: @ 817FB64
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _0817FB76
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_0817FB76:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x28
|
|
ble _0817FB9C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _0817FC12
|
|
.pool
|
|
_0817FB9C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0817FBB0
|
|
adds r0, 0xFF
|
|
_0817FBB0:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldrh r0, [r6, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0817FBE0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r5, r1, 0
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
b _0817FBFA
|
|
_0817FBE0:
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r5, r1, 0
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
_0817FBFA:
|
|
bl Sin
|
|
adds r0, r5
|
|
strh r0, [r6, 0x38]
|
|
movs r0, 0x36
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, 0x38
|
|
ldrsh r2, [r6, r0]
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_0817FC12:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_09
|
|
|
|
thumb_func_start sub_817FC20
|
|
sub_817FC20: @ 817FC20
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0817FC32
|
|
strh r0, [r4, 0x34]
|
|
_0817FC32:
|
|
ldr r2, =gUnknown_0860AD70
|
|
movs r5, 0x34
|
|
ldrsh r1, [r4, r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r1, r2, 0x2
|
|
adds r3, r0, r1
|
|
movs r1, 0
|
|
ldrsb r1, [r3, r1]
|
|
movs r5, 0x32
|
|
ldrsh r0, [r4, r5]
|
|
cmp r1, r0
|
|
bne _0817FC6A
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
bne _0817FC60
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0817FC6A
|
|
.pool
|
|
_0817FC60:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x34]
|
|
strh r1, [r4, 0x32]
|
|
_0817FC6A:
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r1, r0, r1
|
|
adds r0, r2, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bne _0817FC8C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0817FCBE
|
|
.pool
|
|
_0817FC8C:
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r5, 0x34
|
|
ldrsh r1, [r4, r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_0817FCBE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817FC20
|
|
|
|
thumb_func_start pokemonanimfunc_0A
|
|
pokemonanimfunc_0A: @ 817FCC4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817FC20
|
|
ldr r0, =sub_817FC20
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0A
|
|
|
|
thumb_func_start sub_817FCDC
|
|
sub_817FCDC: @ 817FCDC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x90
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _0817FCF8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0817FD12
|
|
.pool
|
|
_0817FCF8:
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0817FD00
|
|
adds r0, 0xFF
|
|
_0817FD00:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
_0817FD12:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817FCDC
|
|
|
|
thumb_func_start pokemonanimfunc_0F
|
|
pokemonanimfunc_0F: @ 817FD24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817FCDC
|
|
ldr r0, =sub_817FCDC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0F
|
|
|
|
thumb_func_start sub_817FD44
|
|
sub_817FD44: @ 817FD44
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x90
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _0817FD60
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0817FD78
|
|
.pool
|
|
_0817FD60:
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0817FD68
|
|
adds r0, 0xFF
|
|
_0817FD68:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x3
|
|
bl Sin
|
|
_0817FD78:
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817FD44
|
|
|
|
thumb_func_start pokemonanimfunc_10
|
|
pokemonanimfunc_10: @ 817FD88
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817FD44
|
|
ldr r0, =sub_817FD44
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_10
|
|
|
|
thumb_func_start pokemonanimfunc_11
|
|
pokemonanimfunc_11: @ 817FDA4
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
ldrh r2, [r7, 0x32]
|
|
movs r0, 0x32
|
|
ldrsh r1, [r7, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _0817FDC8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r7, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r7, 0x24]
|
|
strh r0, [r7, 0x26]
|
|
b _0817FE24
|
|
.pool
|
|
_0817FDC8:
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
movs r5, 0xFF
|
|
cmp r0, 0
|
|
bne _0817FDD4
|
|
movs r5, 0x1
|
|
_0817FDD4:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
bge _0817FDDE
|
|
adds r0, 0x3
|
|
_0817FDDE:
|
|
asrs r0, 2
|
|
movs r1, 0x8
|
|
bl Sin
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
movs r0, 0x32
|
|
ldrsh r1, [r7, r0]
|
|
adds r4, r1, 0
|
|
cmp r1, 0
|
|
bge _0817FDF6
|
|
adds r4, 0xFF
|
|
_0817FDF6:
|
|
asrs r4, 8
|
|
lsls r4, 8
|
|
subs r4, r1, r4
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl Sin
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r0, r1, 0
|
|
strh r0, [r7, 0x26]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl Cos
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r0, r1, 0
|
|
strh r0, [r7, 0x24]
|
|
_0817FE24:
|
|
ldrh r0, [r7, 0x32]
|
|
adds r0, 0x9
|
|
strh r0, [r7, 0x32]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_11
|
|
|
|
thumb_func_start sub_817FE30
|
|
sub_817FE30: @ 817FE30
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, =gUnknown_03001240
|
|
ldrh r6, [r4, 0x2E]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r0, r2
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
beq _0817FE54
|
|
subs r0, 0x1
|
|
strh r0, [r5]
|
|
b _0817FEF8
|
|
.pool
|
|
_0817FE54:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0817FE70
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
bne _0817FE70
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
_0817FE70:
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r0, r2
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
ble _0817FEC4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r1, [r5, 0x4]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x1
|
|
ble _0817FEB4
|
|
subs r0, r1, 0x1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x4]
|
|
movs r0, 0xA
|
|
strh r0, [r5]
|
|
strh r1, [r4, 0x32]
|
|
b _0817FEF2
|
|
.pool
|
|
_0817FEB4:
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0817FEF2
|
|
.pool
|
|
_0817FEC4:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0817FED0
|
|
adds r0, 0xFF
|
|
_0817FED0:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
bl Sin
|
|
strh r0, [r4, 0x3A]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
_0817FEF2:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x32]
|
|
_0817FEF8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817FE30
|
|
|
|
thumb_func_start pokemonanimfunc_12
|
|
pokemonanimfunc_12: @ 817FF00
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r1, 0x6]
|
|
strh r3, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_817FE30
|
|
ldr r0, =sub_817FE30
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_12
|
|
|
|
thumb_func_start sub_817FF3C
|
|
sub_817FF3C: @ 817FF3C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0817FF54
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
_0817FF54:
|
|
movs r2, 0x32
|
|
ldrsh r6, [r4, r2]
|
|
ldr r1, =gUnknown_03001240
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
cmp r6, r1
|
|
ble _0817FF8C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0817FFAA
|
|
.pool
|
|
_0817FF8C:
|
|
movs r2, 0x8
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
bl __divsi3
|
|
muls r0, r6
|
|
strh r0, [r4, 0x3A]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
_0817FFAA:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817FF3C
|
|
|
|
thumb_func_start pokemonanimfunc_1F
|
|
pokemonanimfunc_1F: @ 817FFB8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x3C
|
|
strh r0, [r1]
|
|
movs r0, 0x14
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_817FF3C
|
|
ldr r0, =sub_817FF3C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_1F
|
|
|
|
thumb_func_start sub_817FFF0
|
|
sub_817FFF0: @ 817FFF0
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_817F70C
|
|
ldr r1, =gUnknown_03001240
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
movs r0, 0x32
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _0818002C
|
|
movs r0, 0
|
|
strh r0, [r5, 0x24]
|
|
strh r0, [r5, 0x26]
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
b _0818006A
|
|
.pool
|
|
_0818002C:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0xC0
|
|
adds r4, r0, 0
|
|
cmp r0, 0
|
|
bge _0818003E
|
|
ldr r2, =0x000001bf
|
|
adds r4, r1, r2
|
|
_0818003E:
|
|
asrs r4, 8
|
|
lsls r4, 8
|
|
subs r4, r0, r4
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0x8
|
|
ldrsh r1, [r6, r0]
|
|
lsls r1, 17
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl Cos
|
|
negs r0, r0
|
|
strh r0, [r5, 0x24]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
ldrh r1, [r6, 0x8]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x26]
|
|
_0818006A:
|
|
ldr r0, =gUnknown_03001240
|
|
lsls r1, r7, 1
|
|
adds r1, r7
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r5, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F70C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817FFF0
|
|
|
|
thumb_func_start pokemonanimfunc_14
|
|
pokemonanimfunc_14: @ 8180090
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x18
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_817FFF0
|
|
ldr r0, =sub_817FFF0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_14
|
|
|
|
thumb_func_start pokemonanimfunc_15
|
|
pokemonanimfunc_15: @ 81800D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _081800EC
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_081800EC:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _0818010C
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180128
|
|
.pool
|
|
_0818010C:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x10
|
|
movs r3, 0
|
|
bl BlendPalette
|
|
_08180128:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_15
|
|
|
|
thumb_func_start pokemonanimfunc_16
|
|
pokemonanimfunc_16: @ 8180134
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08180148
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_08180148:
|
|
ldrh r5, [r6, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0x28
|
|
ble _08180170
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08180204
|
|
.pool
|
|
_08180170:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x13
|
|
bhi _08180196
|
|
ldrh r0, [r6, 0x3C]
|
|
adds r0, 0x33
|
|
strh r0, [r6, 0x3C]
|
|
movs r7, 0xFF
|
|
ands r7, r0
|
|
_08180196:
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0
|
|
bne _081801C4
|
|
lsls r5, r4, 16
|
|
asrs r0, r5, 16
|
|
movs r1, 0x28
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
bl Sin
|
|
ldr r1, =0xffffff00
|
|
adds r0, r1
|
|
adds r4, r0
|
|
strh r4, [r6, 0x36]
|
|
adds r4, r5, 0
|
|
b _081801E4
|
|
.pool
|
|
_081801C4:
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
bl Sin
|
|
adds r5, r0, 0
|
|
lsls r4, 16
|
|
asrs r0, r4, 16
|
|
movs r1, 0x28
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r5
|
|
subs r1, r0
|
|
strh r1, [r6, 0x36]
|
|
_081801E4:
|
|
asrs r0, r4, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r6, 0x38]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r6, r2]
|
|
movs r0, 0x38
|
|
ldrsh r2, [r6, r0]
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F618
|
|
_08180204:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_16
|
|
|
|
thumb_func_start pokemonanimfunc_17
|
|
pokemonanimfunc_17: @ 8180210
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _0818022C
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
_0818022C:
|
|
ldrh r6, [r5, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x28
|
|
ble _08180258
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r5, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
mov r0, r8
|
|
strh r0, [r5, 0x26]
|
|
b _0818030A
|
|
.pool
|
|
_08180258:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r6, 0
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x13
|
|
bhi _0818027E
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x33
|
|
strh r0, [r5, 0x3C]
|
|
movs r7, 0xFF
|
|
ands r7, r0
|
|
_0818027E:
|
|
movs r2, 0x30
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
bne _081802A0
|
|
lsls r4, 16
|
|
asrs r0, r4, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
ldr r2, =0xffffff00
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
strh r1, [r5, 0x36]
|
|
b _081802B2
|
|
.pool
|
|
_081802A0:
|
|
lsls r4, 16
|
|
asrs r0, r4, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
_081802B2:
|
|
adds r6, r4, 0
|
|
adds r0, r7, 0
|
|
movs r1, 0x8
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
asrs r0, r6, 16
|
|
movs r1, 0x28
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r4, r1, r4
|
|
subs r4, r0
|
|
strh r4, [r5, 0x38]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r4, r1
|
|
beq _081802F0
|
|
movs r2, 0x38
|
|
ldrsh r0, [r5, r2]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _081802EA
|
|
adds r0, 0x7
|
|
_081802EA:
|
|
lsls r0, 13
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_081802F0:
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r5, 0x26]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r5, r2]
|
|
movs r0, 0x38
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F618
|
|
_0818030A:
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_17
|
|
|
|
thumb_func_start sub_818031C
|
|
sub_818031C: @ 818031C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, =gUnknown_0860AA80
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 1
|
|
adds r1, r0, r2
|
|
ldrb r5, [r1]
|
|
adds r2, 0x1
|
|
adds r0, r2
|
|
ldrb r6, [r0]
|
|
movs r1, 0
|
|
cmp r5, 0xFE
|
|
beq _08180358
|
|
subs r0, r6, r7
|
|
muls r0, r5
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_08180358:
|
|
cmp r5, 0xFF
|
|
bne _08180370
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
b _08180394
|
|
.pool
|
|
_08180370:
|
|
mov r0, r8
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
cmp r7, r6
|
|
bne _08180386
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0
|
|
b _08180392
|
|
_08180386:
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
_08180392:
|
|
strh r0, [r4, 0x3A]
|
|
_08180394:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_818031C
|
|
|
|
thumb_func_start pokemonanimfunc_19
|
|
pokemonanimfunc_19: @ 81803A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x30
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_818031C
|
|
ldr r0, =sub_818031C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_19
|
|
|
|
thumb_func_start pokemonanimfunc_1A
|
|
pokemonanimfunc_1A: @ 81803BC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r7, r0, 24
|
|
lsrs r5, r7, 24
|
|
mov r8, r5
|
|
cmp r0, 0
|
|
bne _081803DA
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
_081803DA:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x23
|
|
ble _08180404
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _0818045E
|
|
.pool
|
|
_08180404:
|
|
adds r6, r5, 0
|
|
subs r6, 0xA
|
|
lsls r0, r6, 7
|
|
movs r1, 0x14
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r5, 0x9
|
|
bhi _0818042A
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsrs r3, r7, 25
|
|
lsls r3, 9
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
b _0818045E
|
|
_0818042A:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bhi _08180442
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
movs r1, 0x5
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
b _0818045E
|
|
_08180442:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
movs r3, 0x23
|
|
mov r0, r8
|
|
subs r3, r0
|
|
lsrs r0, r3, 31
|
|
adds r3, r0
|
|
asrs r3, 1
|
|
lsls r3, 26
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
_0818045E:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_1A
|
|
|
|
thumb_func_start pokemonanimfunc_1B
|
|
pokemonanimfunc_1B: @ 8180474
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08180486
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_08180486:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x64
|
|
ble _081804B0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r0, 0
|
|
strh r0, [r6, 0x26]
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _081804E8
|
|
.pool
|
|
_081804B0:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl Sin
|
|
strh r0, [r6, 0x26]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r1, =0x00000ccc
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
bl sub_817F6D4
|
|
_081804E8:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_1B
|
|
|
|
thumb_func_start sub_81804F8
|
|
sub_81804F8: @ 81804F8
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _0818050C
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_0818050C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x64
|
|
ble _08180534
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r5, [r6, 0x26]
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08180582
|
|
.pool
|
|
_08180534:
|
|
movs r0, 0x32
|
|
ldrsh r5, [r6, r0]
|
|
lsls r0, r5, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 9
|
|
adds r0, r5, 0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
strh r0, [r6, 0x26]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r0, r5, 0
|
|
ldr r1, =0x00000ccc
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r4, 0
|
|
bl sub_817F6D4
|
|
_08180582:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81804F8
|
|
|
|
thumb_func_start pokemonanimfunc_1C
|
|
pokemonanimfunc_1C: @ 8180594
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_81804F8
|
|
ldr r0, =sub_81804F8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_1C
|
|
|
|
thumb_func_start sub_81805B0
|
|
sub_81805B0: @ 81805B0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _081805C4
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_081805C4:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0x64
|
|
ble _081805EC
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r5, [r6, 0x26]
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08180644
|
|
.pool
|
|
_081805EC:
|
|
movs r0, 0x32
|
|
ldrsh r5, [r6, r0]
|
|
lsls r0, r5, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 9
|
|
adds r0, r5, 0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
lsls r4, 16
|
|
asrs r0, r4, 16
|
|
lsrs r4, 31
|
|
adds r0, r4
|
|
asrs r0, 1
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r6, r2]
|
|
lsls r1, 17
|
|
asrs r1, 16
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r6, 0x26]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r0, r5, 0
|
|
ldr r1, =0x00000ccc
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r4, 0
|
|
bl sub_817F6D4
|
|
_08180644:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81805B0
|
|
|
|
thumb_func_start pokemonanimfunc_18
|
|
pokemonanimfunc_18: @ 8180654
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_81805B0
|
|
ldr r0, =sub_81805B0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_18
|
|
|
|
thumb_func_start pokemonanimfunc_1D
|
|
pokemonanimfunc_1D: @ 8180670
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_817F70C
|
|
movs r5, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08180688
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_08180688:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x64
|
|
ble _081806B0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r5, [r6, 0x24]
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _081806FC
|
|
.pool
|
|
_081806B0:
|
|
movs r0, 0x32
|
|
ldrsh r5, [r6, r0]
|
|
lsls r0, r5, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 9
|
|
adds r0, r5, 0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r6, 0x24]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r0, r5, 0
|
|
ldr r1, =0x00000ccc
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r4, 0
|
|
bl sub_817F6D4
|
|
_081806FC:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
adds r0, r6, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_1D
|
|
|
|
thumb_func_start sub_8180714
|
|
sub_8180714: @ 8180714
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r6, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0818072A
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
strh r6, [r4, 0x34]
|
|
_0818072A:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
cmp r2, r0
|
|
ble _08180760
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r6, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _081807FE
|
|
.pool
|
|
_08180760:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _08180796
|
|
adds r2, r0, 0
|
|
lsls r0, r2, 1
|
|
cmp r1, r0
|
|
bge _08180796
|
|
movs r0, 0x80
|
|
adds r1, r2, 0
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x34]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x34]
|
|
_08180796:
|
|
lsls r0, r5, 16
|
|
asrs r1, r0, 16
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r5, r0, 0
|
|
cmp r1, r2
|
|
ble _081807B0
|
|
subs r0, r2, r1
|
|
cmp r0, 0
|
|
bge _081807AC
|
|
adds r0, 0x7
|
|
_081807AC:
|
|
lsls r0, 13
|
|
lsrs r6, r0, 16
|
|
_081807B0:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
negs r0, r0
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
asrs r2, r5, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x36]
|
|
adds r1, r0
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r4, 0x36]
|
|
_081807FE:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8180714
|
|
|
|
thumb_func_start pokemonanimfunc_00
|
|
pokemonanimfunc_00: @ 818080C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_8180714
|
|
ldr r0, =sub_8180714
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_00
|
|
|
|
thumb_func_start sub_8180828
|
|
sub_8180828: @ 8180828
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r0, 0x32
|
|
ldrsh r4, [r5, r0]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r5, r2]
|
|
movs r0, 0x80
|
|
bl __divsi3
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r5, r2]
|
|
muls r0, r1
|
|
cmp r4, r0
|
|
ble _08180868
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r6, [r5, 0x26]
|
|
adds r0, r5, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
b _081808D0
|
|
.pool
|
|
_08180868:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r0, r1
|
|
ble _08180894
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _08180890
|
|
adds r0, 0x7
|
|
_08180890:
|
|
lsls r0, 13
|
|
lsrs r6, r0, 16
|
|
_08180894:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r5, 0x26]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x30
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r2, r4, 16
|
|
asrs r2, 16
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x3A]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x36]
|
|
_081808D0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8180828
|
|
|
|
thumb_func_start pokemonanimfunc_13
|
|
pokemonanimfunc_13: @ 81808D8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _081808F2
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
_081808F2:
|
|
adds r0, r4, 0
|
|
bl sub_8180828
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_13
|
|
|
|
thumb_func_start sub_8180900
|
|
sub_8180900: @ 8180900
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x6]
|
|
str r1, [sp]
|
|
ldr r5, =gUnknown_0860AD8E
|
|
movs r3, 0x36
|
|
ldrsh r2, [r4, r3]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
movs r3, 0x8
|
|
ldrsh r2, [r0, r3]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r6, r0, 3
|
|
adds r1, r6
|
|
adds r2, r1, r5
|
|
adds r0, r5, 0x1
|
|
adds r1, r0
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r2, [r2]
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
mov r9, r2
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
ldrh r7, [r4, 0x34]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0818096C
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_0818096C:
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r6
|
|
adds r5, 0x2
|
|
mov r8, r5
|
|
adds r1, r0, r5
|
|
movs r5, 0
|
|
ldrsb r5, [r1, r5]
|
|
cmp r5, 0
|
|
bne _081809B0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r5, [r4, 0x24]
|
|
strh r5, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180A3A
|
|
.pool
|
|
_081809B0:
|
|
lsls r0, r7, 16
|
|
asrs r5, r0, 16
|
|
lsls r0, r5, 7
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xA
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
mov r3, r10
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
muls r0, r5
|
|
movs r1, 0x36
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
adds r1, r6
|
|
add r1, r8
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl __divsi3
|
|
add r0, r9
|
|
strh r0, [r4, 0x24]
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r3, 0x24
|
|
ldrsh r1, [r4, r3]
|
|
muls r0, r1
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08180A04
|
|
adds r0, 0x7
|
|
_08180A04:
|
|
lsls r3, r0, 13
|
|
lsrs r3, 16
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r0, 0x36
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r6
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r5, r0
|
|
bne _08180A34
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0
|
|
b _08180A38
|
|
_08180A34:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
_08180A38:
|
|
strh r0, [r4, 0x34]
|
|
_08180A3A:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8180900
|
|
|
|
thumb_func_start pokemonanimfunc_05
|
|
pokemonanimfunc_05: @ 8180A50
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
strh r0, [r1, 0x6]
|
|
ldrh r0, [r4, 0x3A]
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_8180900
|
|
ldr r0, =sub_8180900
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_05
|
|
|
|
thumb_func_start pokemonanimfunc_20
|
|
pokemonanimfunc_20: @ 8180A8C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180AA8
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_08180AA8:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _08180ACC
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000002df
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180AE8
|
|
.pool
|
|
_08180ACC:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =0x000002df
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_08180AE8:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_20
|
|
|
|
thumb_func_start pokemonanimfunc_21
|
|
pokemonanimfunc_21: @ 8180AF8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180B14
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_08180B14:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _08180B34
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180B50
|
|
.pool
|
|
_08180B34:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0x10
|
|
movs r3, 0x1F
|
|
bl BlendPalette
|
|
_08180B50:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_21
|
|
|
|
thumb_func_start pokemonanimfunc_22
|
|
pokemonanimfunc_22: @ 8180B5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180B78
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_08180B78:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _08180B98
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r3, 0xF8
|
|
lsls r3, 7
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180BB6
|
|
.pool
|
|
_08180B98:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r3, 0xF8
|
|
lsls r3, 7
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_08180BB6:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_22
|
|
|
|
thumb_func_start pokemonanimfunc_23
|
|
pokemonanimfunc_23: @ 8180BC4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180BE0
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_08180BE0:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _08180C04
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180C20
|
|
.pool
|
|
_08180C04:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_08180C20:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_23
|
|
|
|
thumb_func_start pokemonanimfunc_24
|
|
pokemonanimfunc_24: @ 8180C30
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180C4C
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_08180C4C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x80
|
|
ble _08180C70
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x00006018
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08180C8C
|
|
.pool
|
|
_08180C70:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =0x00006018
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_08180C8C:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_24
|
|
|
|
thumb_func_start pokemonanimfunc_25
|
|
pokemonanimfunc_25: @ 8180C9C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
ldr r0, =sub_8180CB4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_25
|
|
|
|
thumb_func_start sub_8180CB4
|
|
sub_8180CB4: @ 8180CB4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
ble _08180CD6
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8180CE8
|
|
str r0, [r4, 0x1C]
|
|
_08180CD6:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180CB4
|
|
|
|
thumb_func_start sub_8180CE8
|
|
sub_8180CE8: @ 8180CE8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x24]
|
|
adds r0, 0x1
|
|
adds r2, r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _08180D32
|
|
lsls r0, r2, 24
|
|
lsrs r2, r0, 24
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x24]
|
|
ldr r5, =sub_8180D44
|
|
movs r3, 0x8
|
|
negs r3, r3
|
|
_08180D14:
|
|
subs r0, r1, r2
|
|
lsls r0, 16
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x3A]
|
|
adds r1, r2, 0x1
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
lsrs r1, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
bgt _08180D14
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
str r5, [r4, 0x1C]
|
|
_08180D32:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180CE8
|
|
|
|
thumb_func_start sub_8180D44
|
|
sub_8180D44: @ 8180D44
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x3C]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r4, 0x3A]
|
|
movs r3, 0x3A
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
ble _08180D84
|
|
strh r2, [r4, 0x38]
|
|
_08180D84:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, r5, 8
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _08180DAE
|
|
strh r1, [r4, 0x24]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x32]
|
|
ldr r0, =sub_8180DC0
|
|
str r0, [r4, 0x1C]
|
|
_08180DAE:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180D44
|
|
|
|
thumb_func_start sub_8180DC0
|
|
sub_8180DC0: @ 8180DC0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xB
|
|
ble _08180E08
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08180DE2
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
_08180DE2:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x32]
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08180E1C
|
|
ldr r0, =sub_8180E28
|
|
str r0, [r4, 0x1C]
|
|
b _08180E1C
|
|
.pool
|
|
_08180E08:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r2, [r4, 0x24]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_08180E1C:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8180DC0
|
|
|
|
thumb_func_start sub_8180E28
|
|
sub_8180E28: @ 8180E28
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _08180E4A
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08180E4A:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180E28
|
|
|
|
thumb_func_start pokemonanimfunc_26
|
|
pokemonanimfunc_26: @ 8180E5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_8180E78
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_26
|
|
|
|
thumb_func_start sub_8180E78
|
|
sub_8180E78: @ 8180E78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x24]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08180EA2
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bgt _08180EA2
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x34]
|
|
_08180EA2:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7
|
|
ble _08180EBA
|
|
movs r1, 0
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, =0x0000fff8
|
|
strh r0, [r4, 0x26]
|
|
strh r1, [r4, 0x36]
|
|
ldr r0, =sub_8180ED0
|
|
str r0, [r4, 0x1C]
|
|
_08180EBA:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180E78
|
|
|
|
thumb_func_start sub_8180ED0
|
|
sub_8180ED0: @ 8180ED0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Cos
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3F
|
|
ble _08180F08
|
|
movs r0, 0xA0
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_8180F2C
|
|
str r0, [r4, 0x1C]
|
|
_08180F08:
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x40
|
|
ble _08180F1A
|
|
movs r0, 0x40
|
|
strh r0, [r4, 0x36]
|
|
_08180F1A:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180ED0
|
|
|
|
thumb_func_start sub_8180F2C
|
|
sub_8180F2C: @ 8180F2C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _08180F44
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x34]
|
|
b _08180F96
|
|
_08180F44:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x5
|
|
bl Cos
|
|
subs r0, 0x4
|
|
movs r5, 0
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x5
|
|
bl Sin
|
|
negs r0, r0
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x4
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x32
|
|
ldrsh r3, [r4, r0]
|
|
subs r3, 0x20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, 25
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x20
|
|
bgt _08180F96
|
|
strh r5, [r4, 0x24]
|
|
strh r5, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08180F96:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8180F2C
|
|
|
|
thumb_func_start pokemonanimfunc_27
|
|
pokemonanimfunc_27: @ 8180FA8
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0
|
|
ble _08180FBA
|
|
subs r0, r1, 0x1
|
|
b _08180FFE
|
|
_08180FBA:
|
|
movs r2, 0
|
|
movs r1, 0x36
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _08180FC6
|
|
movs r2, 0x1
|
|
_08180FC6:
|
|
strh r2, [r3, 0x36]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
lsls r2, 2
|
|
ldrb r1, [r0]
|
|
movs r4, 0x5
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _08180FFC
|
|
ldrb r0, [r1]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
mov r2, r12
|
|
strb r1, [r2]
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r3, 0x1C]
|
|
_08180FFC:
|
|
movs r0, 0x2
|
|
_08180FFE:
|
|
strh r0, [r3, 0x34]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_27
|
|
|
|
thumb_func_start pokemonanimfunc_28
|
|
pokemonanimfunc_28: @ 818100C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
ldr r0, =sub_8181024
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_28
|
|
|
|
thumb_func_start sub_8181024
|
|
sub_8181024: @ 8181024
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x26]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x26]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bgt _08181054
|
|
ldr r0, =0x0000fff0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, =sub_8181068
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0xA0
|
|
strh r0, [r4, 0x32]
|
|
_08181054:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181024
|
|
|
|
thumb_func_start sub_8181068
|
|
sub_8181068: @ 8181068
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x4
|
|
strh r0, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x16
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x16
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x32
|
|
ldrsh r3, [r4, r0]
|
|
subs r3, 0x20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, 25
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x20
|
|
bgt _081810B2
|
|
ldr r0, =sub_81810C4
|
|
str r0, [r4, 0x1C]
|
|
_081810B2:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181068
|
|
|
|
thumb_func_start sub_81810C4
|
|
sub_81810C4: @ 81810C4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x24]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _081810E8
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_081810E8:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81810C4
|
|
|
|
thumb_func_start pokemonanimfunc_29
|
|
pokemonanimfunc_29: @ 81810F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
ldr r0, =sub_8181110
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_29
|
|
|
|
thumb_func_start sub_8181110
|
|
sub_8181110: @ 8181110
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x24]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0xF
|
|
ble _08181134
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_8181144
|
|
str r0, [r4, 0x1C]
|
|
_08181134:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181110
|
|
|
|
thumb_func_start sub_8181144
|
|
sub_8181144: @ 8181144
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bgt _0818117C
|
|
ldr r0, =0x0000fff0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_81811A4
|
|
str r0, [r4, 0x1C]
|
|
b _08181186
|
|
.pool
|
|
_0818117C:
|
|
subs r0, r2, 0x2
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
_08181186:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x32]
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8181144
|
|
|
|
thumb_func_start sub_81811A4
|
|
sub_81811A4: @ 81811A4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x24]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
blt _081811CE
|
|
strh r2, [r4, 0x24]
|
|
strh r2, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_081811CE:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81811A4
|
|
|
|
thumb_func_start pokemonanimfunc_2A
|
|
pokemonanimfunc_2A: @ 81811E0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8181214
|
|
ldr r0, =sub_8181214
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_2A
|
|
|
|
thumb_func_start sub_8181214
|
|
sub_8181214: @ 8181214
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r6
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _08181238
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
b _0818134A
|
|
.pool
|
|
_08181238:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r5, [r4, r1]
|
|
cmp r5, 0
|
|
bne _08181270
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
strh r5, [r4, 0x38]
|
|
strh r5, [r4, 0x3A]
|
|
_08181270:
|
|
movs r3, 0x3C
|
|
ldrsh r1, [r4, r3]
|
|
movs r6, 0x34
|
|
ldrsh r0, [r4, r6]
|
|
lsls r0, 1
|
|
muls r1, r0
|
|
ldrh r0, [r4, 0x24]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x24]
|
|
ldrh r2, [r4, 0x3C]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r3, r0, 0
|
|
muls r3, r2
|
|
adds r0, r3, 0
|
|
ldrh r6, [r4, 0x26]
|
|
adds r2, r0, r6
|
|
strh r2, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
adds r1, 0xF
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x1E
|
|
bls _081812B8
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x34]
|
|
b _081812D4
|
|
.pool
|
|
_081812B8:
|
|
adds r0, r2, 0
|
|
adds r0, 0xF
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1E
|
|
bls _081812DA
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x26]
|
|
movs r6, 0x36
|
|
ldrsh r0, [r4, r6]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
_081812D4:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_081812DA:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
ble _08181332
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bgt _08181332
|
|
movs r3, 0
|
|
strh r3, [r4, 0x24]
|
|
strh r3, [r4, 0x26]
|
|
ldr r5, =gUnknown_03001240
|
|
movs r6, 0x2E
|
|
ldrsh r0, [r4, r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r2, [r1, 0x4]
|
|
movs r6, 0x4
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, 0x1
|
|
ble _08181328
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x4]
|
|
strh r3, [r4, 0x38]
|
|
strh r3, [r4, 0x3A]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0xA
|
|
strh r1, [r0]
|
|
b _08181332
|
|
.pool
|
|
_08181328:
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08181332:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3A]
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_0818134A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181214
|
|
|
|
thumb_func_start pokemonanimfunc_2B
|
|
pokemonanimfunc_2B: @ 8181354
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8181370
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_2B
|
|
|
|
thumb_func_start sub_8181370
|
|
sub_8181370: @ 8181370
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x3A]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xC0
|
|
ble _081813BA
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _081813BA
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
b _081813D2
|
|
_081813BA:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x40
|
|
ble _081813DE
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _081813DE
|
|
ldr r1, =0xffffff00
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
_081813D2:
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
_081813DE:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xFF
|
|
ble _08181404
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08181404:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181370
|
|
|
|
thumb_func_start pokemonanimfunc_2C
|
|
pokemonanimfunc_2C: @ 8181418
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08181442
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
strh r2, [r4, 0x3A]
|
|
strh r2, [r4, 0x38]
|
|
strh r2, [r4, 0x36]
|
|
_08181442:
|
|
ldr r1, =gUnknown_0860AA64
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
lsls r2, r0, 1
|
|
adds r0, r1, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08181464
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _081814CE
|
|
.pool
|
|
_08181464:
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x1
|
|
bne _0818149A
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08181488
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
movs r2, 0x10
|
|
bl BlendPalette
|
|
b _08181494
|
|
.pool
|
|
_08181488:
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
_08181494:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, =gUnknown_0860AA64
|
|
_0818149A:
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _081814C8
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _081814CE
|
|
.pool
|
|
_081814C8:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_081814CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_2C
|
|
|
|
thumb_func_start sub_81814D4
|
|
sub_81814D4: @ 81814D4
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _081814E6
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_081814E6:
|
|
adds r0, r6, 0
|
|
bl sub_817F70C
|
|
ldr r4, =gUnknown_03001240
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r6, r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r4
|
|
movs r0, 0x32
|
|
ldrsh r1, [r6, r0]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
ble _0818154C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r3, 0
|
|
strh r3, [r6, 0x24]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrh r2, [r1, 0x4]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x1
|
|
ble _0818153C
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x4]
|
|
strh r3, [r6, 0x32]
|
|
b _08181588
|
|
.pool
|
|
_0818153C:
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08181588
|
|
.pool
|
|
_0818154C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 8
|
|
movs r3, 0x8
|
|
ldrsh r1, [r2, r3]
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r6, 0x24]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r1, =0x00000ccc
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
bl sub_817F6D4
|
|
_08181588:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
adds r0, r6, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81814D4
|
|
|
|
thumb_func_start pokemonanimfunc_2D
|
|
pokemonanimfunc_2D: @ 81815A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_81814D4
|
|
ldr r0, =sub_81814D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_2D
|
|
|
|
thumb_func_start sub_81815D4
|
|
sub_81815D4: @ 81815D4
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _081815E6
|
|
adds r0, r6, 0
|
|
bl sub_817F670
|
|
_081815E6:
|
|
adds r0, r6, 0
|
|
bl sub_817F70C
|
|
ldr r4, =gUnknown_03001240
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r6, r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r4
|
|
movs r0, 0x32
|
|
ldrsh r1, [r6, r0]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
ble _0818164C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r3, 0
|
|
strh r3, [r6, 0x24]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrh r2, [r1, 0x4]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x1
|
|
ble _0818163C
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x4]
|
|
strh r3, [r6, 0x32]
|
|
b _0818168A
|
|
.pool
|
|
_0818163C:
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _0818168A
|
|
.pool
|
|
_0818164C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 8
|
|
movs r3, 0x8
|
|
ldrsh r1, [r2, r3]
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r6, 0x24]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r1, =0x00000ccc
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
negs r3, r3
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
bl sub_817F6D4
|
|
_0818168A:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
adds r0, r6, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81815D4
|
|
|
|
thumb_func_start pokemonanimfunc_2E
|
|
pokemonanimfunc_2E: @ 81816A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_81815D4
|
|
ldr r0, =sub_81815D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_2E
|
|
|
|
thumb_func_start pokemonanimfunc_2F
|
|
pokemonanimfunc_2F: @ 81816D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
adds r0, r4, 0
|
|
adds r0, 0x28
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
negs r0, r0
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x80
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8181708
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_2F
|
|
|
|
thumb_func_start sub_8181708
|
|
sub_8181708: @ 8181708
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
subs r3, 0x80
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x78
|
|
bgt _08181760
|
|
movs r0, 0x78
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_8181770
|
|
str r0, [r4, 0x1C]
|
|
_08181760:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181708
|
|
|
|
thumb_func_start sub_8181770
|
|
sub_8181770: @ 8181770
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x34
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x14
|
|
bne _08181784
|
|
ldr r0, =sub_8181794
|
|
str r0, [r1, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x34]
|
|
_08181784:
|
|
ldrh r0, [r1, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181770
|
|
|
|
thumb_func_start sub_8181794
|
|
sub_8181794: @ 8181794
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x2
|
|
movs r6, 0
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
subs r3, 0x80
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7F
|
|
ble _08181800
|
|
strh r6, [r4, 0x24]
|
|
strh r6, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
strh r6, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =pokemonanimfunc_10
|
|
str r0, [r4, 0x1C]
|
|
_08181800:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181794
|
|
|
|
thumb_func_start sub_8181810
|
|
sub_8181810: @ 8181810
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1]
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
beq _08181834
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
b _08181950
|
|
.pool
|
|
_08181834:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _0818184A
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r6, [r5, 0x36]
|
|
strh r6, [r5, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
_0818184A:
|
|
movs r3, 0x38
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0
|
|
bne _081818A2
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4, 0
|
|
bl Sin
|
|
strh r0, [r5, 0x3C]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r5, r3]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
strh r0, [r5, 0x26]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
strh r1, [r5, 0x3A]
|
|
subs r1, r4, r1
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r5, 0x3C]
|
|
adds r2, r4
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r3, 0x36
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0x80
|
|
bne _0818193A
|
|
strh r6, [r5, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
b _0818193A
|
|
_081818A2:
|
|
cmp r0, 0x1
|
|
bne _0818193A
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
strh r0, [r5, 0x3C]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r5, r3]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r5, 0x26]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x80
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
strh r1, [r5, 0x3A]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r2, r3, 0
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r0, [r5, 0x3C]
|
|
subs r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x36
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x80
|
|
bne _0818193A
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r5, r3]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r2, [r1, 0x4]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
ble _08181922
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xA
|
|
strh r1, [r0]
|
|
strh r6, [r5, 0x36]
|
|
strh r6, [r5, 0x38]
|
|
b _0818193A
|
|
_08181922:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r5, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
_0818193A:
|
|
ldr r2, =gUnknown_03001240
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x6]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
_08181950:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181810
|
|
|
|
thumb_func_start pokemonanimfunc_30
|
|
pokemonanimfunc_30: @ 8181960
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_8181810
|
|
ldr r0, =sub_8181810
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_30
|
|
|
|
thumb_func_start pokemonanimfunc_31
|
|
pokemonanimfunc_31: @ 8181994
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r4, [r5, r0]
|
|
adds r0, r5, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r4, r0
|
|
ble _081819B8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x24]
|
|
b _08181A62
|
|
.pool
|
|
_081819B8:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bge _081819C2
|
|
adds r0, 0x7F
|
|
_081819C2:
|
|
asrs r0, 7
|
|
cmp r0, 0x1
|
|
beq _081819F8
|
|
cmp r0, 0x1
|
|
bgt _081819D2
|
|
cmp r0, 0
|
|
beq _081819DC
|
|
b _08181A48
|
|
_081819D2:
|
|
cmp r0, 0x2
|
|
beq _08181A12
|
|
cmp r0, 0x3
|
|
beq _08181A2A
|
|
b _08181A48
|
|
_081819DC:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _081819E4
|
|
adds r0, 0x7F
|
|
_081819E4:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r4, r0
|
|
lsls r0, 3
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _081819F4
|
|
adds r0, 0x7F
|
|
_081819F4:
|
|
asrs r0, 7
|
|
b _08181A46
|
|
_081819F8:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08181A00
|
|
adds r0, 0x7F
|
|
_08181A00:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r4, r0
|
|
cmp r0, 0
|
|
bge _08181A0C
|
|
adds r0, 0xF
|
|
_08181A0C:
|
|
asrs r0, 4
|
|
subs r0, 0x8
|
|
b _08181A46
|
|
_08181A12:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08181A1A
|
|
adds r0, 0x7F
|
|
_08181A1A:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r4, r0
|
|
cmp r0, 0
|
|
bge _08181A26
|
|
adds r0, 0xF
|
|
_08181A26:
|
|
asrs r0, 4
|
|
b _08181A46
|
|
_08181A2A:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08181A32
|
|
adds r0, 0x7F
|
|
_08181A32:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r4, r0
|
|
lsls r0, 3
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08181A42
|
|
adds r0, 0x7F
|
|
_08181A42:
|
|
asrs r0, 7
|
|
adds r0, 0x8
|
|
_08181A46:
|
|
strh r0, [r5, 0x24]
|
|
_08181A48:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08181A50
|
|
adds r0, 0x7F
|
|
_08181A50:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r4, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
_08181A62:
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_31
|
|
|
|
thumb_func_start pokemonanimfunc_32
|
|
pokemonanimfunc_32: @ 8181A78
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
strh r5, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
bl sub_8181ABC
|
|
ldr r0, =sub_8181ABC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_32
|
|
|
|
thumb_func_start sub_8181ABC
|
|
sub_8181ABC: @ 8181ABC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r6
|
|
ldrh r0, [r1]
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _08181AE0
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
b _08181B44
|
|
.pool
|
|
_08181AE0:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x32
|
|
ldrsh r2, [r4, r1]
|
|
adds r0, r2, 0
|
|
cmp r0, 0x80
|
|
ble _08181AFC
|
|
strh r5, [r4, 0x32]
|
|
ldr r0, =sub_8181B4C
|
|
str r0, [r4, 0x1C]
|
|
b _08181B3E
|
|
.pool
|
|
_08181AFC:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
lsls r3, r0, 3
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _08181B16
|
|
adds r0, 0x7F
|
|
_08181B16:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r1, r2, r0
|
|
adds r0, r3, 0
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _08181B26
|
|
adds r0, 0x7F
|
|
_08181B26:
|
|
asrs r0, 7
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x32]
|
|
_08181B3E:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_08181B44:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8181ABC
|
|
|
|
thumb_func_start sub_8181B4C
|
|
sub_8181B4C: @ 8181B4C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x30
|
|
ble _08181B7C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_8181C2C
|
|
str r0, [r4, 0x1C]
|
|
b _08181C1A
|
|
.pool
|
|
_08181B7C:
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x40
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r6, r1, 0
|
|
adds r0, r6
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bhi _08181BBA
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x34]
|
|
ldr r2, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r0, 0x8]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x24]
|
|
_08181BBA:
|
|
movs r5, 0
|
|
lsls r1, r3, 16
|
|
asrs r2, r1, 16
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
adds r6, r1, 0
|
|
cmp r2, r0
|
|
ble _08181BD6
|
|
subs r0, r2
|
|
cmp r0, 0
|
|
bge _08181BD2
|
|
adds r0, 0x7
|
|
_08181BD2:
|
|
lsls r0, 13
|
|
lsrs r5, r0, 16
|
|
_08181BD6:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x14
|
|
bl Sin
|
|
negs r0, r0
|
|
lsls r1, r5, 16
|
|
asrs r1, 16
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
asrs r2, r6, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x8
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x36]
|
|
_08181C1A:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181B4C
|
|
|
|
thumb_func_start sub_8181C2C
|
|
sub_8181C2C: @ 8181C2C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r3, [r4, r0]
|
|
cmp r3, 0x80
|
|
ble _08181C90
|
|
ldr r3, =gUnknown_03001240
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r2, [r1, 0x4]
|
|
movs r5, 0x4
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0x1
|
|
ble _08181C7C
|
|
subs r0, r2, 0x1
|
|
movs r2, 0
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0xA
|
|
strh r1, [r0]
|
|
strh r2, [r4, 0x34]
|
|
strh r2, [r4, 0x32]
|
|
strh r2, [r4, 0x36]
|
|
ldr r0, =sub_8181ABC
|
|
b _08181C84
|
|
.pool
|
|
_08181C7C:
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
_08181C84:
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _08181CD0
|
|
.pool
|
|
_08181C90:
|
|
ldr r2, =gUnknown_03001240
|
|
movs r5, 0x2E
|
|
ldrsh r1, [r4, r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x8
|
|
ldrsh r5, [r0, r1]
|
|
lsls r1, r5, 3
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08181CAC
|
|
adds r0, 0x7F
|
|
_08181CAC:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r2, r3, r0
|
|
adds r0, r1, 0
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _08181CBC
|
|
adds r0, 0x7F
|
|
_08181CBC:
|
|
asrs r0, 7
|
|
lsls r1, r5, 3
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
_08181CD0:
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181C2C
|
|
|
|
thumb_func_start sub_8181CE8
|
|
sub_8181CE8: @ 8181CE8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08181D00
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08181D00:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0xFE
|
|
ble _08181D60
|
|
movs r5, 0
|
|
strh r5, [r4, 0x24]
|
|
strh r5, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldr r2, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x4]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
ble _08181D48
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x4]
|
|
strh r5, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
b _08181D52
|
|
.pool
|
|
_08181D48:
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08181D52:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
b _08181DA6
|
|
.pool
|
|
_08181D60:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r4, r3]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
ldr r2, =gUnknown_03001240
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x6]
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_08181DA6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181CE8
|
|
|
|
thumb_func_start pokemonanimfunc_33
|
|
pokemonanimfunc_33: @ 8181DB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_8181CE8
|
|
ldr r0, =sub_8181CE8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_33
|
|
|
|
thumb_func_start pokemonanimfunc_34
|
|
pokemonanimfunc_34: @ 8181DE4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08181DFC
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08181DFC:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xFE
|
|
ble _08181E34
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
b _08181E8A
|
|
.pool
|
|
_08181E34:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08181E4E
|
|
adds r0, 0x7F
|
|
_08181E4E:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_08181E8A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_34
|
|
|
|
thumb_func_start pokemonanimfunc_35
|
|
pokemonanimfunc_35: @ 8181E90
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _08181E9E
|
|
strh r0, [r3, 0x3C]
|
|
_08181E9E:
|
|
ldrh r4, [r3, 0x32]
|
|
movs r5, 0x32
|
|
ldrsh r1, [r3, r5]
|
|
ldrh r2, [r3, 0x3C]
|
|
movs r5, 0x3C
|
|
ldrsh r0, [r3, r5]
|
|
cmp r1, r0
|
|
bne _08181EC8
|
|
movs r0, 0
|
|
strh r0, [r3, 0x3C]
|
|
adds r0, r4, 0x1
|
|
strh r0, [r3, 0x32]
|
|
adds r1, r3, 0
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r2, r1, 0
|
|
b _08181ED8
|
|
_08181EC8:
|
|
adds r0, r2, 0x1
|
|
strh r0, [r3, 0x3C]
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08181ED8:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0xA
|
|
ble _08181EEE
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r3, 0x1C]
|
|
_08181EEE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_35
|
|
|
|
thumb_func_start pokemonanimfunc_36
|
|
pokemonanimfunc_36: @ 8181EF8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8181F14
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_36
|
|
|
|
thumb_func_start sub_8181F14
|
|
sub_8181F14: @ 8181F14
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1F
|
|
ble _08181F34
|
|
movs r0, 0
|
|
movs r1, 0x20
|
|
strh r1, [r4, 0x3C]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_8181F50
|
|
str r0, [r4, 0x1C]
|
|
b _08181F38
|
|
.pool
|
|
_08181F34:
|
|
adds r0, r1, 0x4
|
|
strh r0, [r4, 0x3C]
|
|
_08181F38:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8181F14
|
|
|
|
thumb_func_start sub_8181F50
|
|
sub_8181F50: @ 8181F50
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _08181F74
|
|
ldr r0, =sub_8181FC0
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
b _08181FAE
|
|
.pool
|
|
_08181F74:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 4
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08181F84
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08181F84:
|
|
asrs r0, 9
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08181F94
|
|
adds r0, 0x7F
|
|
_08181F94:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x32]
|
|
_08181FAE:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8181F50
|
|
|
|
thumb_func_start sub_8181FC0
|
|
sub_8181FC0: @ 8181FC0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x2
|
|
movs r1, 0
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08181FEC
|
|
strh r1, [r4, 0x3C]
|
|
strh r1, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08181FFE
|
|
.pool
|
|
_08181FEC:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
_08181FFE:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8181FC0
|
|
|
|
thumb_func_start pokemonanimfunc_37
|
|
pokemonanimfunc_37: @ 818201C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08182036
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_08182036:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xFF
|
|
ble _08182060
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _081820A6
|
|
.pool
|
|
_08182060:
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182072
|
|
adds r0, 0x7F
|
|
_08182072:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182092
|
|
adds r0, 0x7F
|
|
_08182092:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_081820A6:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081820B2
|
|
adds r0, 0x7F
|
|
_081820B2:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
adds r3, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_37
|
|
|
|
thumb_func_start pokemonanimfunc_38
|
|
pokemonanimfunc_38: @ 81820E0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, =sub_81820FC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_38
|
|
|
|
thumb_func_start sub_81820FC
|
|
sub_81820FC: @ 81820FC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x18
|
|
ble _0818212C
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _0818214A
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, =sub_818216C
|
|
str r0, [r4, 0x1C]
|
|
b _0818214A
|
|
.pool
|
|
_0818212C:
|
|
adds r0, r1, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_0818214A:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
negs r3, r3
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81820FC
|
|
|
|
thumb_func_start sub_818216C
|
|
sub_818216C: @ 818216C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x20
|
|
ble _0818218C
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
ldr r0, =sub_81821CC
|
|
str r0, [r4, 0x1C]
|
|
b _081821AA
|
|
.pool
|
|
_0818218C:
|
|
adds r0, r1, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_081821AA:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
negs r3, r3
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_818216C
|
|
|
|
thumb_func_start sub_81821CC
|
|
sub_81821CC: @ 81821CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 2
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x9
|
|
ble _081821F0
|
|
movs r0, 0x20
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8182248
|
|
str r0, [r4, 0x1C]
|
|
_081821F0:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1D
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x6
|
|
bls _08182224
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_08182224:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
negs r3, r3
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81821CC
|
|
|
|
thumb_func_start sub_8182248
|
|
sub_8182248: @ 8182248
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bgt _08182270
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0818228E
|
|
.pool
|
|
_08182270:
|
|
subs r0, r1, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_0818228E:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3C]
|
|
negs r3, r3
|
|
lsls r3, 24
|
|
lsrs r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8182248
|
|
|
|
thumb_func_start pokemonanimfunc_39
|
|
pokemonanimfunc_39: @ 81822B0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x28
|
|
ble _081822D0
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
b _0818235C
|
|
.pool
|
|
_081822D0:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
movs r5, 0xFF
|
|
cmp r0, 0
|
|
bne _081822DC
|
|
movs r5, 0x1
|
|
_081822DC:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _081822E8
|
|
adds r0, r2, 0x3
|
|
_081822E8:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
lsrs r0, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
cmp r1, 0
|
|
bne _0818232C
|
|
lsls r0, r2, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0818230C
|
|
adds r0, 0xFF
|
|
_0818230C:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
strh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
b _0818235A
|
|
_0818232C:
|
|
lsls r0, r2, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0818233C
|
|
adds r0, 0xFF
|
|
_0818233C:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
muls r0, r1
|
|
strh r0, [r4, 0x24]
|
|
_0818235A:
|
|
strh r0, [r4, 0x26]
|
|
_0818235C:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_39
|
|
|
|
thumb_func_start pokemonanimfunc_3A
|
|
pokemonanimfunc_3A: @ 8182370
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08182392
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
strh r5, [r4, 0x38]
|
|
strh r5, [r4, 0x3A]
|
|
strh r5, [r4, 0x3C]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08182392:
|
|
ldrh r1, [r4, 0x3A]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _081823E4
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
beq _08182494
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 3
|
|
movs r1, 0x14
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x40
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r2, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
subs r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
b _08182494
|
|
_081823E4:
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3
|
|
bne _08182424
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3F
|
|
ble _08182410
|
|
movs r0, 0x40
|
|
strh r0, [r4, 0x3C]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08182410:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x40
|
|
bl Cos
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
b _08182474
|
|
.pool
|
|
_08182424:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x40
|
|
bl Sin
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3F
|
|
ble _08182448
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
strh r1, [r4, 0x38]
|
|
movs r1, 0xA
|
|
strh r1, [r4, 0x3A]
|
|
strh r0, [r4, 0x3C]
|
|
b _08182474
|
|
_08182448:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x30
|
|
ble _0818245C
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _0818245C
|
|
movs r0, 0x2
|
|
b _0818246E
|
|
_0818245C:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _08182474
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _08182474
|
|
movs r0, 0x1
|
|
_0818246E:
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x3A]
|
|
_08182474:
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r2, r0, 0
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
subs r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08182494:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_3A
|
|
|
|
thumb_func_start pokemonanimfunc_3B
|
|
pokemonanimfunc_3B: @ 81824A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _081824BA
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_081824BA:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _081824E8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08182540
|
|
.pool
|
|
_081824E8:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081824F4
|
|
adds r0, 0xFF
|
|
_081824F4:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182518
|
|
adds r0, 0x7F
|
|
_08182518:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x60
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r2, r1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08182540:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_3B
|
|
|
|
thumb_func_start pokemonanimfunc_3C
|
|
pokemonanimfunc_3C: @ 8182548
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08182562
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_08182562:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
cmp r0, r5
|
|
ble _08182590
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _081825D4
|
|
.pool
|
|
_08182590:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081825AE
|
|
adds r0, 0x3F
|
|
_081825AE:
|
|
asrs r0, 6
|
|
lsls r0, 6
|
|
subs r0, r1, r0
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
movs r1, 0x80
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r2, r5
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_081825D4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_3C
|
|
|
|
thumb_func_start pokemonanimfunc_3D
|
|
pokemonanimfunc_3D: @ 81825DC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
ldr r0, =sub_81825F8
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_3D
|
|
|
|
thumb_func_start sub_81825F8
|
|
sub_81825F8: @ 81825F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
movs r1, 0
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3F
|
|
ble _0818261C
|
|
strh r1, [r4, 0x3C]
|
|
strh r1, [r4, 0x3A]
|
|
ldr r0, =sub_8182648
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x40
|
|
b _08182620
|
|
.pool
|
|
_0818261C:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
_08182620:
|
|
movs r1, 0x80
|
|
bl Sin
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
lsls r2, r0, 16
|
|
asrs r2, 16
|
|
adds r2, r1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81825F8
|
|
|
|
thumb_func_start sub_8182648
|
|
sub_8182648: @ 8182648
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5F
|
|
ble _08182672
|
|
movs r0, 0
|
|
movs r1, 0x80
|
|
bl Cos
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _081826C8
|
|
_08182672:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
lsls r1, 2
|
|
negs r1, r1
|
|
subs r1, r0
|
|
strh r1, [r4, 0x26]
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3F
|
|
ble _081826A4
|
|
ldr r5, =0x0000ffff
|
|
adds r0, r1, 0
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _081826A8
|
|
.pool
|
|
_081826A4:
|
|
movs r5, 0x1
|
|
movs r0, 0
|
|
_081826A8:
|
|
lsls r0, 16
|
|
asrs r0, 15
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x80
|
|
bl Cos
|
|
lsls r1, r5, 16
|
|
asrs r1, 16
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
_081826C8:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r2, r1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
bne _081826EE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_81826F8
|
|
str r0, [r4, 0x1C]
|
|
_081826EE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8182648
|
|
|
|
thumb_func_start sub_81826F8
|
|
sub_81826F8: @ 81826F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x80
|
|
bl Cos
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xC
|
|
bl Cos
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3F
|
|
ble _08182742
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08182742:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
adds r2, r1
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81826F8
|
|
|
|
thumb_func_start sub_8182764
|
|
sub_8182764: @ 8182764
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _08182798
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
b _081827F4
|
|
.pool
|
|
_08182798:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081827A4
|
|
adds r0, 0xFF
|
|
_081827A4:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081827CC
|
|
adds r0, 0x7F
|
|
_081827CC:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x60
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_081827F4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8182764
|
|
|
|
thumb_func_start pokemonanimfunc_3E
|
|
pokemonanimfunc_3E: @ 81827FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08182822
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r1, 0x8
|
|
strh r1, [r4, 0x3A]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x38]
|
|
strh r1, [r4, 0x36]
|
|
_08182822:
|
|
adds r0, r4, 0
|
|
bl sub_8182764
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_3E
|
|
|
|
thumb_func_start sub_8182830
|
|
sub_8182830: @ 8182830
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _08182864
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
b _081828C0
|
|
.pool
|
|
_08182864:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182870
|
|
adds r0, 0xFF
|
|
_08182870:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182898
|
|
adds r0, 0x3F
|
|
_08182898:
|
|
asrs r0, 6
|
|
lsls r0, 6
|
|
subs r0, r1, r0
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
movs r1, 0x80
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_081828C0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8182830
|
|
|
|
thumb_func_start pokemonanimfunc_3F
|
|
pokemonanimfunc_3F: @ 81828C8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _081828EE
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x3A]
|
|
adds r0, 0xFC
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x36]
|
|
_081828EE:
|
|
adds r0, r4, 0
|
|
bl sub_8182830
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_3F
|
|
|
|
thumb_func_start pokemonanimfunc_40
|
|
pokemonanimfunc_40: @ 81828FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _0818291A
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_0818291A:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _08182948
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0818299E
|
|
.pool
|
|
_08182948:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182954
|
|
adds r0, 0xFF
|
|
_08182954:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182978
|
|
adds r0, 0x7F
|
|
_08182978:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x60
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_0818299E:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_40
|
|
|
|
thumb_func_start pokemonanimfunc_41
|
|
pokemonanimfunc_41: @ 81829AC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _081829CA
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_081829CA:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _081829F8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08182A5E
|
|
.pool
|
|
_081829F8:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r0, 0
|
|
cmp r0, 0
|
|
bge _08182A04
|
|
adds r1, 0xFF
|
|
_08182A04:
|
|
asrs r1, 8
|
|
lsls r1, 8
|
|
subs r1, r0, r1
|
|
lsls r1, 16
|
|
asrs r0, r1, 16
|
|
lsrs r1, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x10
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r0, 0
|
|
cmp r0, 0
|
|
bge _08182A30
|
|
adds r1, 0xFF
|
|
_08182A30:
|
|
asrs r1, 8
|
|
lsls r1, 8
|
|
subs r1, r0, r1
|
|
lsls r1, 16
|
|
asrs r0, r1, 16
|
|
lsrs r1, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x40
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
negs r2, r2
|
|
lsls r2, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08182A5E:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_41
|
|
|
|
thumb_func_start pokemonanimfunc_42
|
|
pokemonanimfunc_42: @ 8182A6C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08182A8A
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
_08182A8A:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
ble _08182AB8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08182B16
|
|
.pool
|
|
_08182AB8:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182AC4
|
|
adds r0, 0xFF
|
|
_08182AC4:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r0, 0
|
|
cmp r0, 0
|
|
bge _08182AEA
|
|
adds r1, 0xFF
|
|
_08182AEA:
|
|
asrs r1, 8
|
|
lsls r1, 8
|
|
subs r1, r0, r1
|
|
lsls r1, 16
|
|
asrs r0, r1, 16
|
|
lsrs r1, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x60
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08182B16:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_42
|
|
|
|
thumb_func_start pokemonanimfunc_43
|
|
pokemonanimfunc_43: @ 8182B24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _08182B48
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
b _08182C08
|
|
.pool
|
|
_08182B48:
|
|
movs r1, 0x32
|
|
ldrsh r2, [r4, r1]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _08182B56
|
|
ldr r1, =0x000001ff
|
|
adds r0, r2, r1
|
|
_08182B56:
|
|
asrs r3, r0, 9
|
|
adds r1, r3, 0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182B62
|
|
adds r0, r1, 0x3
|
|
_08182B62:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
beq _08182BA4
|
|
cmp r0, 0x1
|
|
bgt _08182B80
|
|
cmp r0, 0
|
|
beq _08182B8A
|
|
b _08182BE2
|
|
.pool
|
|
_08182B80:
|
|
cmp r0, 0x2
|
|
beq _08182BB8
|
|
cmp r0, 0x3
|
|
beq _08182BCA
|
|
b _08182BE2
|
|
_08182B8A:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08182B9C
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08182B9C:
|
|
asrs r0, 9
|
|
b _08182BE0
|
|
.pool
|
|
_08182BA4:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08182BB2
|
|
adds r0, 0x1F
|
|
_08182BB2:
|
|
asrs r0, 5
|
|
subs r0, 0x10
|
|
b _08182BE0
|
|
_08182BB8:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08182BC6
|
|
adds r0, 0x1F
|
|
_08182BC6:
|
|
asrs r0, 5
|
|
b _08182BE0
|
|
_08182BCA:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08182BDC
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08182BDC:
|
|
asrs r0, 9
|
|
adds r0, 0x10
|
|
_08182BE0:
|
|
strh r0, [r4, 0x24]
|
|
_08182BE2:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08182BEE
|
|
adds r0, 0x7F
|
|
_08182BEE:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x18
|
|
strh r0, [r4, 0x32]
|
|
_08182C08:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_43
|
|
|
|
thumb_func_start pokemonanimfunc_44
|
|
pokemonanimfunc_44: @ 8182C18
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _08182C34
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x40
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08182C34:
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
movs r3, 0
|
|
strh r1, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x3A]
|
|
movs r5, 0x3A
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0x4
|
|
bne _08182C52
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3F
|
|
ble _08182C60
|
|
b _08182C5A
|
|
_08182C52:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7F
|
|
ble _08182C60
|
|
_08182C5A:
|
|
strh r3, [r4, 0x3C]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
_08182C60:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bhi _08182D08
|
|
lsls r0, 2
|
|
ldr r1, =_08182C78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08182C78:
|
|
.4byte _08182CEC
|
|
.4byte _08182C8C
|
|
.4byte _08182CAA
|
|
.4byte _08182CCC
|
|
.4byte _08182CEC
|
|
_08182C8C:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r5, 0x3C
|
|
ldrsh r0, [r4, r5]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x26]
|
|
b _08182D12
|
|
_08182CAA:
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x80
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
b _08182D12
|
|
_08182CCC:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x80
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x26]
|
|
b _08182D12
|
|
_08182CEC:
|
|
movs r5, 0x3C
|
|
ldrsh r0, [r4, r5]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
b _08182D12
|
|
_08182D08:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_08182D12:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_44
|
|
|
|
thumb_func_start pokemonanimfunc_45
|
|
pokemonanimfunc_45: @ 8182D24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x20
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_8180714
|
|
ldr r0, =sub_8180714
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_45
|
|
|
|
thumb_func_start pokemonanimfunc_46
|
|
pokemonanimfunc_46: @ 8182D40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F8FC
|
|
ldr r0, =sub_817F8FC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_46
|
|
|
|
thumb_func_start pokemonanimfunc_47
|
|
pokemonanimfunc_47: @ 8182D5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F978
|
|
ldr r0, =sub_817F978
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_47
|
|
|
|
thumb_func_start pokemonanimfunc_48
|
|
pokemonanimfunc_48: @ 8182D78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
strh r0, [r1, 0x6]
|
|
ldrh r0, [r4, 0x3A]
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_8180900
|
|
ldr r0, =sub_8180900
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_48
|
|
|
|
thumb_func_start pokemonanimfunc_49
|
|
pokemonanimfunc_49: @ 8182DB4
|
|
push {lr}
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x3A]
|
|
bl pokemonanimfunc_05
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_49
|
|
|
|
thumb_func_start pokemonanimfunc_4A
|
|
pokemonanimfunc_4A: @ 8182DC4
|
|
push {lr}
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x3A]
|
|
bl pokemonanimfunc_48
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_4A
|
|
|
|
thumb_func_start pokemonanimfunc_4B
|
|
pokemonanimfunc_4B: @ 8182DD4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08182DE2
|
|
strh r0, [r4, 0x2E]
|
|
_08182DE2:
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bgt _08182DF6
|
|
adds r0, r4, 0
|
|
bl sub_817FC20
|
|
movs r0, 0x1
|
|
b _08182DF8
|
|
_08182DF6:
|
|
subs r0, r1, 0x1
|
|
_08182DF8:
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_4B
|
|
|
|
thumb_func_start pokemonanimfunc_4C
|
|
pokemonanimfunc_4C: @ 8182E00
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817FCDC
|
|
ldr r0, =sub_817FCDC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_4C
|
|
|
|
thumb_func_start pokemonanimfunc_4D
|
|
pokemonanimfunc_4D: @ 8182E20
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817FD44
|
|
ldr r0, =sub_817FD44
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_4D
|
|
|
|
thumb_func_start pokemonanimfunc_4E
|
|
pokemonanimfunc_4E: @ 8182E3C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r1, 0x6]
|
|
strh r3, [r1]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_817FE30
|
|
ldr r0, =sub_817FE30
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_4E
|
|
|
|
thumb_func_start pokemonanimfunc_4F
|
|
pokemonanimfunc_4F: @ 8182E7C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_817FFF0
|
|
ldr r0, =sub_817FFF0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_4F
|
|
|
|
thumb_func_start pokemonanimfunc_50
|
|
pokemonanimfunc_50: @ 8182EBC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x18
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_818031C
|
|
ldr r0, =sub_818031C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_50
|
|
|
|
thumb_func_start pokemonanimfunc_51
|
|
pokemonanimfunc_51: @ 8182ED8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_81804F8
|
|
ldr r0, =sub_81804F8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_51
|
|
|
|
thumb_func_start pokemonanimfunc_52
|
|
pokemonanimfunc_52: @ 8182EF4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F9F4
|
|
ldr r0, =sub_817F9F4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_52
|
|
|
|
thumb_func_start pokemonanimfunc_53
|
|
pokemonanimfunc_53: @ 8182F10
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x3C
|
|
strh r0, [r1]
|
|
movs r0, 0x1E
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_817FF3C
|
|
ldr r0, =sub_817FF3C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_53
|
|
|
|
thumb_func_start pokemonanimfunc_54
|
|
pokemonanimfunc_54: @ 8182F48
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_8181214
|
|
ldr r0, =sub_8181214
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_54
|
|
|
|
thumb_func_start pokemonanimfunc_55
|
|
pokemonanimfunc_55: @ 8182F80
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_8181810
|
|
ldr r0, =sub_8181810
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_55
|
|
|
|
thumb_func_start pokemonanimfunc_56
|
|
pokemonanimfunc_56: @ 8182FB8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
strh r5, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
bl sub_8181ABC
|
|
ldr r0, =sub_8181ABC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_56
|
|
|
|
thumb_func_start pokemonanimfunc_07
|
|
pokemonanimfunc_07: @ 8182FFC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_8181CE8
|
|
ldr r0, =sub_8181CE8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_07
|
|
|
|
thumb_func_start pokemonanimfunc_08
|
|
pokemonanimfunc_08: @ 8183030
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_8181CE8
|
|
ldr r0, =sub_8181CE8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_08
|
|
|
|
thumb_func_start pokemonanimfunc_0B
|
|
pokemonanimfunc_0B: @ 8183068
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x64
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_81814D4
|
|
ldr r0, =sub_81814D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0B
|
|
|
|
thumb_func_start pokemonanimfunc_0C
|
|
pokemonanimfunc_0C: @ 818309C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_81814D4
|
|
ldr r0, =sub_81814D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0C
|
|
|
|
thumb_func_start pokemonanimfunc_0D
|
|
pokemonanimfunc_0D: @ 81830D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x64
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_81815D4
|
|
ldr r0, =sub_81815D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0D
|
|
|
|
thumb_func_start pokemonanimfunc_0E
|
|
pokemonanimfunc_0E: @ 8183108
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_81815D4
|
|
ldr r0, =sub_81815D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_0E
|
|
|
|
thumb_func_start sub_8183140
|
|
sub_8183140: @ 8183140
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r0, 0x90
|
|
lsls r0, 4
|
|
cmp r2, r0
|
|
ble _0818315C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _08183180
|
|
.pool
|
|
_0818315C:
|
|
adds r1, r2, 0
|
|
adds r1, 0xC0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0818316A
|
|
ldr r3, =0x000001bf
|
|
adds r0, r2, r3
|
|
_0818316A:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
_08183180:
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r3, [r4, 0x32]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8183140
|
|
|
|
thumb_func_start pokemonanimfunc_57
|
|
pokemonanimfunc_57: @ 8183194
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183140
|
|
ldr r0, =sub_8183140
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_57
|
|
|
|
thumb_func_start pokemonanimfunc_58
|
|
pokemonanimfunc_58: @ 81831B4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183140
|
|
ldr r0, =sub_8183140
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_58
|
|
|
|
thumb_func_start pokemonanimfunc_59
|
|
pokemonanimfunc_59: @ 81831D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _081831F8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
b _081832BC
|
|
.pool
|
|
_081831F8:
|
|
movs r1, 0x32
|
|
ldrsh r2, [r4, r1]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _08183206
|
|
ldr r1, =0x000001ff
|
|
adds r0, r2, r1
|
|
_08183206:
|
|
asrs r3, r0, 9
|
|
adds r1, r3, 0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08183212
|
|
adds r0, r1, 0x3
|
|
_08183212:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
beq _08183268
|
|
cmp r0, 0x1
|
|
bgt _08183230
|
|
cmp r0, 0
|
|
beq _0818323A
|
|
b _08183298
|
|
.pool
|
|
_08183230:
|
|
cmp r0, 0x2
|
|
beq _0818324C
|
|
cmp r0, 0x3
|
|
beq _08183284
|
|
b _08183298
|
|
_0818323A:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08183248
|
|
adds r0, 0x1F
|
|
_08183248:
|
|
asrs r0, 5
|
|
b _08183296
|
|
_0818324C:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _0818325E
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_0818325E:
|
|
asrs r0, 9
|
|
b _08183296
|
|
.pool
|
|
_08183268:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _0818327A
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_0818327A:
|
|
asrs r0, 9
|
|
adds r0, 0x10
|
|
b _08183296
|
|
.pool
|
|
_08183284:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08183292
|
|
adds r0, 0x1F
|
|
_08183292:
|
|
asrs r0, 5
|
|
subs r0, 0x10
|
|
_08183296:
|
|
strh r0, [r4, 0x24]
|
|
_08183298:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081832A4
|
|
adds r0, 0x7F
|
|
_081832A4:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x18
|
|
strh r0, [r4, 0x32]
|
|
_081832BC:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_59
|
|
|
|
thumb_func_start sub_81832C8
|
|
sub_81832C8: @ 81832C8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r2, 0x38
|
|
ldrsh r1, [r6, r2]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _0818331A
|
|
mov r0, r8
|
|
strh r0, [r6, 0x26]
|
|
strh r0, [r6, 0x38]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r1, [r6, 0x36]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0x1
|
|
bgt _08183310
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _081833DC
|
|
.pool
|
|
_08183310:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r6, 0x36]
|
|
mov r0, r8
|
|
strh r0, [r6, 0x3C]
|
|
b _081833DC
|
|
_0818331A:
|
|
movs r1, 0x38
|
|
ldrsh r5, [r6, r1]
|
|
lsls r0, r5, 7
|
|
movs r2, 0x3A
|
|
ldrsh r4, [r6, r2]
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r4, 0
|
|
bge _08183334
|
|
adds r4, 0x3
|
|
_08183334:
|
|
asrs r1, r4, 2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r1
|
|
blt _08183358
|
|
cmp r5, r0
|
|
bge _08183358
|
|
ldrh r0, [r6, 0x3C]
|
|
adds r0, 0x33
|
|
strh r0, [r6, 0x3C]
|
|
movs r1, 0xFF
|
|
mov r8, r1
|
|
ands r1, r0
|
|
mov r8, r1
|
|
_08183358:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _0818337C
|
|
lsls r4, r2, 16
|
|
asrs r0, r4, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
ldr r2, =0xffffff00
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
b _08183392
|
|
.pool
|
|
_0818337C:
|
|
lsls r4, r2, 16
|
|
asrs r0, r4, 16
|
|
movs r1, 0x10
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
_08183392:
|
|
adds r7, r4, 0
|
|
ldrh r4, [r6, 0x34]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r5, r8
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl Sin
|
|
adds r5, r0, 0
|
|
asrs r0, r7, 16
|
|
adds r1, r4, 0
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r2, r1, 0
|
|
subs r2, r5
|
|
subs r2, r0
|
|
mov r0, r9
|
|
lsls r1, r0, 16
|
|
asrs r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F618
|
|
ldrh r0, [r6, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x38]
|
|
_081833DC:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81832C8
|
|
|
|
thumb_func_start pokemonanimfunc_5A
|
|
pokemonanimfunc_5A: @ 81833E8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _0818340A
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x28
|
|
strh r0, [r5, 0x3A]
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x38]
|
|
strh r6, [r5, 0x3C]
|
|
_0818340A:
|
|
adds r0, r5, 0
|
|
bl sub_81832C8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_5A
|
|
|
|
thumb_func_start sub_8183418
|
|
sub_8183418: @ 8183418
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r2, 0x38
|
|
ldrsh r1, [r6, r2]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _0818346A
|
|
mov r0, r8
|
|
strh r0, [r6, 0x38]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r1, [r6, 0x36]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0x1
|
|
bgt _08183460
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08183538
|
|
.pool
|
|
_08183460:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r6, 0x36]
|
|
mov r0, r8
|
|
strh r0, [r6, 0x3C]
|
|
b _08183538
|
|
_0818346A:
|
|
movs r1, 0x38
|
|
ldrsh r5, [r6, r1]
|
|
lsls r0, r5, 7
|
|
movs r2, 0x3A
|
|
ldrsh r4, [r6, r2]
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
cmp r4, 0
|
|
bge _08183486
|
|
adds r4, 0x3
|
|
_08183486:
|
|
asrs r1, r4, 2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r1
|
|
blt _081834AC
|
|
cmp r5, r0
|
|
bge _081834AC
|
|
ldrh r0, [r6, 0x3C]
|
|
adds r0, 0x33
|
|
strh r0, [r6, 0x3C]
|
|
movs r1, 0xFF
|
|
mov r8, r1
|
|
mov r2, r8
|
|
ands r2, r0
|
|
mov r8, r2
|
|
_081834AC:
|
|
ldrh r0, [r6, 0x34]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _081834F0
|
|
mov r2, r9
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
adds r1, r7, 0
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
mov r5, r8
|
|
adds r0, r7, 0
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r0, r5, 0
|
|
bl Sin
|
|
ldr r1, =0xffffff00
|
|
adds r0, r1
|
|
adds r4, r0
|
|
lsls r4, 16
|
|
lsrs r1, r4, 16
|
|
b _08183522
|
|
.pool
|
|
_081834F0:
|
|
mov r4, r8
|
|
adds r0, r7, 0
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
mov r2, r9
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
adds r1, r7, 0
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r4
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
_08183522:
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F618
|
|
ldrh r0, [r6, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x38]
|
|
_08183538:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8183418
|
|
|
|
thumb_func_start pokemonanimfunc_5B
|
|
pokemonanimfunc_5B: @ 8183544
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _08183566
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x28
|
|
strh r0, [r5, 0x3A]
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x38]
|
|
strh r6, [r5, 0x3C]
|
|
_08183566:
|
|
adds r0, r5, 0
|
|
bl sub_8183418
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_5B
|
|
|
|
thumb_func_start sub_8183574
|
|
sub_8183574: @ 8183574
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r3, =gUnknown_0860AA80
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r0, r1, r3
|
|
ldrb r5, [r0]
|
|
adds r2, r5, 0
|
|
cmp r5, 0xFF
|
|
beq _081835A6
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_081835A6:
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
movs r7, 0
|
|
cmp r2, 0xFE
|
|
beq _081835C2
|
|
mov r1, r9
|
|
subs r0, r6, r1
|
|
muls r0, r5
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_081835C2:
|
|
cmp r5, 0xFF
|
|
bne _081835D8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
b _0818360A
|
|
.pool
|
|
_081835D8:
|
|
mov r1, r8
|
|
adds r1, 0xC0
|
|
adds r0, r1, 0
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
adds r1, r7, 0
|
|
bl Sin
|
|
adds r0, r7
|
|
strh r0, [r4, 0x26]
|
|
cmp r9, r6
|
|
bne _081835FC
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0
|
|
b _08183608
|
|
_081835FC:
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
_08183608:
|
|
strh r0, [r4, 0x3A]
|
|
_0818360A:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8183574
|
|
|
|
thumb_func_start pokemonanimfunc_5C
|
|
pokemonanimfunc_5C: @ 8183618
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183574
|
|
ldr r0, =sub_8183574
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_5C
|
|
|
|
thumb_func_start pokemonanimfunc_5D
|
|
pokemonanimfunc_5D: @ 8183638
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_817FCDC
|
|
ldr r0, =sub_817FCDC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_5D
|
|
|
|
thumb_func_start pokemonanimfunc_5E
|
|
pokemonanimfunc_5E: @ 8183658
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_817F8FC
|
|
ldr r0, =sub_817F8FC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_5E
|
|
|
|
thumb_func_start pokemonanimfunc_5F
|
|
pokemonanimfunc_5F: @ 8183674
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x28
|
|
ble _08183690
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _081836CA
|
|
.pool
|
|
_08183690:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
movs r5, 0xFF
|
|
cmp r0, 0
|
|
bne _0818369C
|
|
movs r5, 0x1
|
|
_0818369C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _081836B0
|
|
adds r0, 0xFF
|
|
_081836B0:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x9
|
|
bl Sin
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
_081836CA:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_5F
|
|
|
|
thumb_func_start pokemonanimfunc_60
|
|
pokemonanimfunc_60: @ 81836D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x28
|
|
ble _081836F4
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0818372E
|
|
.pool
|
|
_081836F4:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
movs r5, 0xFF
|
|
cmp r0, 0
|
|
bne _08183700
|
|
movs r5, 0x1
|
|
_08183700:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _08183714
|
|
adds r0, 0xFF
|
|
_08183714:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xC
|
|
bl Sin
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
_0818372E:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_60
|
|
|
|
thumb_func_start pokemonanimfunc_61
|
|
pokemonanimfunc_61: @ 818373C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183140
|
|
ldr r0, =sub_8183140
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_61
|
|
|
|
thumb_func_start pokemonanimfunc_62
|
|
pokemonanimfunc_62: @ 818375C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x18
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183574
|
|
ldr r0, =sub_8183574
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_62
|
|
|
|
thumb_func_start pokemonanimfunc_63
|
|
pokemonanimfunc_63: @ 818377C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x38
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x9
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
bl sub_8183574
|
|
ldr r0, =sub_8183574
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_63
|
|
|
|
thumb_func_start pokemonanimfunc_64
|
|
pokemonanimfunc_64: @ 818379C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F758
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, =gUnknown_03001240
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x18
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_817FFF0
|
|
ldr r0, =sub_817FFF0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_64
|
|
|
|
thumb_func_start sub_81837DC
|
|
sub_81837DC: @ 81837DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
movs r5, 0
|
|
movs r0, 0x38
|
|
ldrsh r1, [r7, r0]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r7, r2]
|
|
cmp r1, r0
|
|
ble _0818382C
|
|
strh r5, [r7, 0x26]
|
|
strh r5, [r7, 0x38]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r7, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
ldrh r1, [r7, 0x36]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0x1
|
|
bgt _08183824
|
|
adds r0, r7, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r7, 0x1C]
|
|
b _0818392C
|
|
.pool
|
|
_08183824:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r7, 0x36]
|
|
strh r5, [r7, 0x3C]
|
|
b _0818392C
|
|
_0818382C:
|
|
movs r0, 0x38
|
|
ldrsh r6, [r7, r0]
|
|
lsls r0, r6, 7
|
|
movs r1, 0x3A
|
|
ldrsh r4, [r7, r1]
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r4, 0
|
|
bge _08183846
|
|
adds r4, 0x3
|
|
_08183846:
|
|
asrs r1, r4, 2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r1
|
|
blt _08183866
|
|
cmp r6, r0
|
|
bge _08183866
|
|
ldrh r0, [r7, 0x3C]
|
|
adds r0, 0x33
|
|
strh r0, [r7, 0x3C]
|
|
movs r5, 0xFF
|
|
ands r5, r0
|
|
_08183866:
|
|
ldrh r0, [r7, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
bne _081838B0
|
|
lsls r2, 16
|
|
mov r8, r2
|
|
asrs r0, r2, 16
|
|
mov r1, r9
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
lsls r6, r5, 16
|
|
asrs r5, r6, 16
|
|
mov r0, r9
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r0, r5, 0
|
|
bl Sin
|
|
ldr r2, =0xffffff00
|
|
adds r4, r2
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r0, r8
|
|
b _081838EA
|
|
.pool
|
|
_081838B0:
|
|
lsls r2, 16
|
|
mov r8, r2
|
|
asrs r0, r2, 16
|
|
mov r1, r9
|
|
bl Sin
|
|
adds r6, r0, 0
|
|
lsls r5, 16
|
|
asrs r4, r5, 16
|
|
mov r0, r9
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r6
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
mov r0, r8
|
|
adds r6, r5, 0
|
|
_081838EA:
|
|
asrs r0, 16
|
|
mov r1, r9
|
|
bl Sin
|
|
adds r5, r0, 0
|
|
asrs r4, r6, 16
|
|
mov r0, r9
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r2, r1, 0
|
|
subs r2, r5
|
|
subs r2, r0
|
|
mov r0, r10
|
|
lsls r1, r0, 16
|
|
asrs r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r7, 0
|
|
movs r3, 0
|
|
bl sub_817F618
|
|
ldrh r0, [r7, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r7, 0x38]
|
|
_0818392C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81837DC
|
|
|
|
thumb_func_start pokemonanimfunc_65
|
|
pokemonanimfunc_65: @ 818393C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _0818395E
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x28
|
|
strh r0, [r5, 0x3A]
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x38]
|
|
strh r6, [r5, 0x3C]
|
|
_0818395E:
|
|
adds r0, r5, 0
|
|
bl sub_81837DC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_65
|
|
|
|
thumb_func_start pokemonanimfunc_66
|
|
pokemonanimfunc_66: @ 818396C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _08183990
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
b _08183A54
|
|
.pool
|
|
_08183990:
|
|
movs r1, 0x32
|
|
ldrsh r2, [r4, r1]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0818399E
|
|
ldr r1, =0x000001ff
|
|
adds r0, r2, r1
|
|
_0818399E:
|
|
asrs r3, r0, 9
|
|
adds r1, r3, 0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _081839AA
|
|
adds r0, r1, 0x3
|
|
_081839AA:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
beq _08183A00
|
|
cmp r0, 0x1
|
|
bgt _081839C8
|
|
cmp r0, 0
|
|
beq _081839D2
|
|
b _08183A30
|
|
.pool
|
|
_081839C8:
|
|
cmp r0, 0x2
|
|
beq _081839E4
|
|
cmp r0, 0x3
|
|
beq _08183A1C
|
|
b _08183A30
|
|
_081839D2:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _081839E0
|
|
adds r0, 0x1F
|
|
_081839E0:
|
|
asrs r0, 5
|
|
b _08183A2E
|
|
_081839E4:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _081839F6
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_081839F6:
|
|
asrs r0, 9
|
|
b _08183A2E
|
|
.pool
|
|
_08183A00:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08183A12
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08183A12:
|
|
asrs r0, 9
|
|
adds r0, 0x10
|
|
b _08183A2E
|
|
.pool
|
|
_08183A1C:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08183A2A
|
|
adds r0, 0x1F
|
|
_08183A2A:
|
|
asrs r0, 5
|
|
subs r0, 0x10
|
|
_08183A2E:
|
|
strh r0, [r4, 0x24]
|
|
_08183A30:
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08183A3C
|
|
adds r0, 0x7F
|
|
_08183A3C:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x30
|
|
strh r0, [r4, 0x32]
|
|
_08183A54:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_66
|
|
|
|
thumb_func_start pokemonanimfunc_67
|
|
pokemonanimfunc_67: @ 8183A60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
ble _08183A84
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
b _08183B40
|
|
.pool
|
|
_08183A84:
|
|
movs r1, 0x32
|
|
ldrsh r2, [r4, r1]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _08183A92
|
|
ldr r1, =0x000001ff
|
|
adds r0, r2, r1
|
|
_08183A92:
|
|
asrs r3, r0, 9
|
|
adds r1, r3, 0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08183A9E
|
|
adds r0, r1, 0x3
|
|
_08183A9E:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
beq _08183AF4
|
|
cmp r0, 0x1
|
|
bgt _08183ABC
|
|
cmp r0, 0
|
|
beq _08183AC6
|
|
b _08183B24
|
|
.pool
|
|
_08183ABC:
|
|
cmp r0, 0x2
|
|
beq _08183AD8
|
|
cmp r0, 0x3
|
|
beq _08183B10
|
|
b _08183B24
|
|
_08183AC6:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08183AD4
|
|
adds r0, 0x1F
|
|
_08183AD4:
|
|
asrs r0, 5
|
|
b _08183B22
|
|
_08183AD8:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08183AEA
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08183AEA:
|
|
asrs r0, 9
|
|
b _08183B22
|
|
.pool
|
|
_08183AF4:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 12
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _08183B06
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1
|
|
_08183B06:
|
|
asrs r0, 9
|
|
adds r0, 0x10
|
|
b _08183B22
|
|
.pool
|
|
_08183B10:
|
|
lsls r0, r3, 9
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08183B1E
|
|
adds r0, 0x1F
|
|
_08183B1E:
|
|
asrs r0, 5
|
|
subs r0, 0x10
|
|
_08183B22:
|
|
strh r0, [r4, 0x24]
|
|
_08183B24:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x60
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x40
|
|
strh r0, [r4, 0x32]
|
|
_08183B40:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_67
|
|
|
|
thumb_func_start sub_8183B4C
|
|
sub_8183B4C: @ 8183B4C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08183B5E
|
|
strh r0, [r4, 0x34]
|
|
_08183B5E:
|
|
ldr r7, =gUnknown_0860ADBE
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r5, r7, 0x2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _08183B8C
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x34]
|
|
strh r1, [r4, 0x32]
|
|
_08183B8C:
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r6, r0, r1
|
|
adds r0, r6, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x38
|
|
ldrsh r5, [r4, r1]
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _08183BCC
|
|
ldrh r0, [r4, 0x3A]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08183BC8
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08183C06
|
|
.pool
|
|
_08183BC8:
|
|
strh r1, [r4, 0x32]
|
|
b _08183C06
|
|
_08183BCC:
|
|
adds r0, r6, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
muls r0, r5
|
|
ldrh r2, [r4, 0x24]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r1, r7, 0x1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_08183C06:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8183B4C
|
|
|
|
thumb_func_start pokemonanimfunc_68
|
|
pokemonanimfunc_68: @ 8183C0C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
strh r0, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
bl sub_8183B4C
|
|
ldr r0, =sub_8183B4C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_68
|
|
|
|
thumb_func_start pokemonanimfunc_69
|
|
pokemonanimfunc_69: @ 8183C2C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
bl sub_8183B4C
|
|
ldr r0, =sub_8183B4C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_69
|
|
|
|
thumb_func_start pokemonanimfunc_6A
|
|
pokemonanimfunc_6A: @ 8183C4C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x38]
|
|
strh r0, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
bl sub_8183B4C
|
|
ldr r0, =sub_8183B4C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_6A
|
|
|
|
thumb_func_start sub_8183C6C
|
|
sub_8183C6C: @ 8183C6C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xFF
|
|
ble _08183CAE
|
|
ldrh r1, [r4, 0x38]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bgt _08183CA4
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
b _08183CE8
|
|
.pool
|
|
_08183CA4:
|
|
subs r0, r1, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x38]
|
|
strh r1, [r4, 0x3C]
|
|
b _08183CE8
|
|
_08183CAE:
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, r1, r0
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
cmp r0, r5
|
|
ble _08183CC2
|
|
strh r5, [r4, 0x3C]
|
|
_08183CC2:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x40
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
subs r2, r5, r2
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08183CE8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8183C6C
|
|
|
|
thumb_func_start pokemonanimfunc_6B
|
|
pokemonanimfunc_6B: @ 8183CF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183D16
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_08183D16:
|
|
adds r0, r4, 0
|
|
bl sub_8183C6C
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_6B
|
|
|
|
thumb_func_start pokemonanimfunc_6C
|
|
pokemonanimfunc_6C: @ 8183D28
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183D4E
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x38]
|
|
_08183D4E:
|
|
adds r0, r4, 0
|
|
bl sub_8183C6C
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_6C
|
|
|
|
thumb_func_start pokemonanimfunc_6D
|
|
pokemonanimfunc_6D: @ 8183D60
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183D88
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x36]
|
|
_08183D88:
|
|
adds r0, r4, 0
|
|
bl sub_8182764
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_6D
|
|
|
|
thumb_func_start pokemonanimfunc_6E
|
|
pokemonanimfunc_6E: @ 8183D94
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183DBA
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x3A]
|
|
adds r0, 0xFC
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x36]
|
|
_08183DBA:
|
|
adds r0, r4, 0
|
|
bl sub_8182764
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_6E
|
|
|
|
thumb_func_start pokemonanimfunc_6F
|
|
pokemonanimfunc_6F: @ 8183DC8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183DF0
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x36]
|
|
_08183DF0:
|
|
adds r0, r4, 0
|
|
bl sub_8182830
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_6F
|
|
|
|
thumb_func_start pokemonanimfunc_70
|
|
pokemonanimfunc_70: @ 8183DFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183E22
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r5, [r4, 0x3C]
|
|
movs r1, 0x8
|
|
strh r1, [r4, 0x3A]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x38]
|
|
strh r1, [r4, 0x36]
|
|
_08183E22:
|
|
adds r0, r4, 0
|
|
bl sub_8182830
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_70
|
|
|
|
thumb_func_start pokemonanimfunc_71
|
|
pokemonanimfunc_71: @ 8183E30
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08183E4A
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
_08183E4A:
|
|
adds r0, r4, 0
|
|
bl sub_8180828
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_71
|
|
|
|
thumb_func_start pokemonanimfunc_72
|
|
pokemonanimfunc_72: @ 8183E58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08183E72
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x3A]
|
|
_08183E72:
|
|
adds r0, r4, 0
|
|
bl sub_8180828
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_72
|
|
|
|
thumb_func_start pokemonanimfunc_73
|
|
pokemonanimfunc_73: @ 8183E80
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _08183EA2
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x1E
|
|
strh r0, [r5, 0x3A]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x3C]
|
|
_08183EA2:
|
|
adds r0, r5, 0
|
|
bl sub_81832C8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_73
|
|
|
|
thumb_func_start pokemonanimfunc_74
|
|
pokemonanimfunc_74: @ 8183EB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183ED4
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x3C]
|
|
_08183ED4:
|
|
adds r0, r4, 0
|
|
bl sub_81832C8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_74
|
|
|
|
thumb_func_start pokemonanimfunc_75
|
|
pokemonanimfunc_75: @ 8183EE0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183F06
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x38]
|
|
strh r5, [r4, 0x3C]
|
|
_08183F06:
|
|
adds r0, r4, 0
|
|
bl sub_8183418
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_75
|
|
|
|
thumb_func_start pokemonanimfunc_76
|
|
pokemonanimfunc_76: @ 8183F14
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _08183F38
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x1E
|
|
strh r0, [r5, 0x3A]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x38]
|
|
strh r6, [r5, 0x3C]
|
|
_08183F38:
|
|
adds r0, r5, 0
|
|
bl sub_8183418
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_76
|
|
|
|
thumb_func_start pokemonanimfunc_77
|
|
pokemonanimfunc_77: @ 8183F44
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08183F6A
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x38]
|
|
strh r5, [r4, 0x3C]
|
|
_08183F6A:
|
|
adds r0, r4, 0
|
|
bl sub_81837DC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_77
|
|
|
|
thumb_func_start pokemonanimfunc_78
|
|
pokemonanimfunc_78: @ 8183F78
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _08183F9C
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
bl sub_817F670
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x1E
|
|
strh r0, [r5, 0x3A]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x34]
|
|
strh r6, [r5, 0x38]
|
|
strh r6, [r5, 0x3C]
|
|
_08183F9C:
|
|
adds r0, r5, 0
|
|
bl sub_81837DC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_78
|
|
|
|
thumb_func_start sub_8183FA8
|
|
sub_8183FA8: @ 8183FA8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xFF
|
|
ble _08183FEA
|
|
ldrh r2, [r4, 0x3A]
|
|
movs r3, 0x3A
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x1
|
|
bgt _08183FD0
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
b _0818403E
|
|
.pool
|
|
_08183FD0:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08183FDC
|
|
adds r0, 0xFF
|
|
_08183FDC:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
strh r0, [r4, 0x3C]
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _0818403E
|
|
_08183FEA:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r3, 0x3C
|
|
ldrsh r2, [r4, r3]
|
|
adds r1, r2, 0
|
|
adds r1, 0xC0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0818400C
|
|
ldr r3, =0x000001bf
|
|
adds r0, r2, r3
|
|
_0818400C:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _0818402E
|
|
movs r3, 0x26
|
|
ldrsh r0, [r4, r3]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_0818402E:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x3C]
|
|
_0818403E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8183FA8
|
|
|
|
thumb_func_start pokemonanimfunc_79
|
|
pokemonanimfunc_79: @ 8184048
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _08184066
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
strh r0, [r1, 0x3A]
|
|
strh r2, [r1, 0x3C]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x38]
|
|
strh r0, [r1, 0x36]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x34]
|
|
_08184066:
|
|
adds r0, r1, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_79
|
|
|
|
thumb_func_start pokemonanimfunc_7A
|
|
pokemonanimfunc_7A: @ 8184070
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _0818408E
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
strh r0, [r1, 0x3A]
|
|
strh r2, [r1, 0x3C]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x38]
|
|
strh r0, [r1, 0x36]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x34]
|
|
_0818408E:
|
|
adds r0, r1, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7A
|
|
|
|
thumb_func_start pokemonanimfunc_7B
|
|
pokemonanimfunc_7B: @ 8184098
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _081840B8
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x3A]
|
|
strh r2, [r1, 0x3C]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x38]
|
|
strh r0, [r1, 0x36]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x34]
|
|
_081840B8:
|
|
adds r0, r1, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7B
|
|
|
|
thumb_func_start sub_81840C4
|
|
sub_81840C4: @ 81840C4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
ble _081840FC
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r5, r2]
|
|
ldrh r2, [r5, 0x36]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r5, r3]
|
|
cmp r1, r0
|
|
bgt _081840EC
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r5, 0x1C]
|
|
b _081840F4
|
|
.pool
|
|
_081840EC:
|
|
adds r0, r2, 0x1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x36]
|
|
strh r1, [r5, 0x3C]
|
|
_081840F4:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x24]
|
|
strh r0, [r5, 0x26]
|
|
b _08184188
|
|
_081840FC:
|
|
cmp r0, 0x9F
|
|
ble _08184126
|
|
cmp r0, r1
|
|
ble _08184106
|
|
strh r1, [r5, 0x3C]
|
|
_08184106:
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08184112
|
|
adds r0, 0xFF
|
|
_08184112:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x8
|
|
bl Sin
|
|
negs r0, r0
|
|
b _08184154
|
|
_08184126:
|
|
cmp r0, 0x5F
|
|
ble _0818414A
|
|
movs r0, 0x60
|
|
movs r1, 0x6
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x60
|
|
lsls r0, 17
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
bl Sin
|
|
subs r4, r0
|
|
strh r4, [r5, 0x26]
|
|
b _08184156
|
|
_0818414A:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0x6
|
|
bl Sin
|
|
_08184154:
|
|
strh r0, [r5, 0x26]
|
|
_08184156:
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r5, r3]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r2, 0x38
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrh r0, [r5, 0x36]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0818417E
|
|
lsls r0, r2, 16
|
|
negs r0, r0
|
|
lsrs r2, r0, 16
|
|
_0818417E:
|
|
strh r2, [r5, 0x24]
|
|
ldrh r0, [r5, 0x34]
|
|
ldrh r3, [r5, 0x3C]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x3C]
|
|
_08184188:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81840C4
|
|
|
|
thumb_func_start pokemonanimfunc_7C
|
|
pokemonanimfunc_7C: @ 8184190
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r3, [r2, r0]
|
|
cmp r3, 0
|
|
bne _081841B0
|
|
movs r1, 0x1
|
|
strh r1, [r2, 0x32]
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x3A]
|
|
strh r3, [r2, 0x3C]
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x38]
|
|
strh r1, [r2, 0x36]
|
|
movs r0, 0x4
|
|
strh r0, [r2, 0x34]
|
|
_081841B0:
|
|
adds r0, r2, 0
|
|
bl sub_81840C4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7C
|
|
|
|
thumb_func_start pokemonanimfunc_7D
|
|
pokemonanimfunc_7D: @ 81841BC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r3, [r2, r0]
|
|
cmp r3, 0
|
|
bne _081841DC
|
|
movs r1, 0x1
|
|
strh r1, [r2, 0x32]
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x3A]
|
|
strh r3, [r2, 0x3C]
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x38]
|
|
strh r1, [r2, 0x36]
|
|
movs r0, 0x6
|
|
strh r0, [r2, 0x34]
|
|
_081841DC:
|
|
adds r0, r2, 0
|
|
bl sub_81840C4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7D
|
|
|
|
thumb_func_start pokemonanimfunc_7E
|
|
pokemonanimfunc_7E: @ 81841E8
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r3, [r2, r0]
|
|
cmp r3, 0
|
|
bne _08184208
|
|
movs r1, 0x1
|
|
strh r1, [r2, 0x32]
|
|
movs r0, 0x3
|
|
strh r0, [r2, 0x3A]
|
|
strh r3, [r2, 0x3C]
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x38]
|
|
strh r1, [r2, 0x36]
|
|
movs r0, 0x8
|
|
strh r0, [r2, 0x34]
|
|
_08184208:
|
|
adds r0, r2, 0
|
|
bl sub_81840C4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7E
|
|
|
|
thumb_func_start pokemonanimfunc_7F
|
|
pokemonanimfunc_7F: @ 8184214
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
bne _08184232
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x32]
|
|
strh r0, [r2, 0x3A]
|
|
strh r1, [r2, 0x3C]
|
|
movs r1, 0x4
|
|
strh r1, [r2, 0x38]
|
|
movs r0, 0x6
|
|
strh r0, [r2, 0x36]
|
|
strh r1, [r2, 0x34]
|
|
_08184232:
|
|
adds r0, r2, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_7F
|
|
|
|
thumb_func_start pokemonanimfunc_80
|
|
pokemonanimfunc_80: @ 818423C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _0818425A
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
strh r0, [r1, 0x3A]
|
|
strh r2, [r1, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x38]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x36]
|
|
strh r0, [r1, 0x34]
|
|
_0818425A:
|
|
adds r0, r1, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_80
|
|
|
|
thumb_func_start pokemonanimfunc_81
|
|
pokemonanimfunc_81: @ 8184264
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _08184286
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x3A]
|
|
strh r2, [r1, 0x3C]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x38]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x36]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x34]
|
|
_08184286:
|
|
adds r0, r1, 0
|
|
bl sub_8183FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_81
|
|
|
|
thumb_func_start sub_8184290
|
|
sub_8184290: @ 8184290
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r0, r1, 8
|
|
negs r0, r0
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x36
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl sub_817F3F0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x3A]
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_817F6D4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184290
|
|
|
|
thumb_func_start pokemonanimfunc_82
|
|
pokemonanimfunc_82: @ 81842DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08184300
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, =0x0000ffe0
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x2E]
|
|
_08184300:
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
ble _0818434C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r2, 0
|
|
strh r2, [r4, 0x24]
|
|
strh r2, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _08184348
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08184358
|
|
.pool
|
|
_08184348:
|
|
strh r2, [r4, 0x32]
|
|
b _08184352
|
|
_0818434C:
|
|
adds r0, r4, 0
|
|
bl sub_8184290
|
|
_08184352:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08184358:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_82
|
|
|
|
thumb_func_start pokemonanimfunc_83
|
|
pokemonanimfunc_83: @ 8184360
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08184384
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x5A
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, =0x0000ffe0
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x2E]
|
|
_08184384:
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
ble _081843D0
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r2, 0
|
|
strh r2, [r4, 0x24]
|
|
strh r2, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _081843CC
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _081843DC
|
|
.pool
|
|
_081843CC:
|
|
strh r2, [r4, 0x32]
|
|
b _081843D6
|
|
_081843D0:
|
|
adds r0, r4, 0
|
|
bl sub_8184290
|
|
_081843D6:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_081843DC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_83
|
|
|
|
thumb_func_start pokemonanimfunc_84
|
|
pokemonanimfunc_84: @ 81843E4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _08184408
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, =0x0000ffe0
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x2E]
|
|
_08184408:
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
ble _08184454
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
movs r2, 0
|
|
strh r2, [r4, 0x24]
|
|
strh r2, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _08184450
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _08184460
|
|
.pool
|
|
_08184450:
|
|
strh r2, [r4, 0x32]
|
|
b _0818445A
|
|
_08184454:
|
|
adds r0, r4, 0
|
|
bl sub_8184290
|
|
_0818445A:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_08184460:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_84
|
|
|
|
thumb_func_start sub_8184468
|
|
sub_8184468: @ 8184468
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _0818449C
|
|
movs r0, 0
|
|
strh r0, [r6, 0x26]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
adds r0, r6, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r6, 0x1C]
|
|
b _08184544
|
|
.pool
|
|
_0818449C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r4, [r6, r2]
|
|
adds r1, r4, 0
|
|
bl __modsi3
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _081844BC
|
|
adds r0, 0xFF
|
|
_081844BC:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldrh r0, [r6, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081844F8
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl Sin
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r5, r1, 0
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl Sin
|
|
adds r0, r5
|
|
strh r0, [r6, 0x38]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
b _0818451E
|
|
_081844F8:
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl Sin
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r5, r2, 0
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl Sin
|
|
adds r0, r5
|
|
strh r0, [r6, 0x38]
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
_0818451E:
|
|
bl Sin
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bge _08184530
|
|
adds r0, 0x7
|
|
_08184530:
|
|
lsrs r0, 3
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0x36
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, 0x38
|
|
ldrsh r2, [r6, r0]
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_817F6D4
|
|
_08184544:
|
|
ldrh r0, [r6, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184468
|
|
|
|
thumb_func_start pokemonanimfunc_85
|
|
pokemonanimfunc_85: @ 8184550
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08184570
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x3C]
|
|
_08184570:
|
|
adds r0, r4, 0
|
|
bl sub_8184468
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_85
|
|
|
|
thumb_func_start pokemonanimfunc_86
|
|
pokemonanimfunc_86: @ 818457C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0818459A
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x3C]
|
|
_0818459A:
|
|
adds r0, r4, 0
|
|
bl sub_8184468
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_86
|
|
|
|
thumb_func_start pokemonanimfunc_87
|
|
pokemonanimfunc_87: @ 81845A8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _081845C6
|
|
adds r0, r4, 0
|
|
bl sub_817F670
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x3C]
|
|
_081845C6:
|
|
adds r0, r4, 0
|
|
bl sub_8184468
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_87
|
|
|
|
thumb_func_start sub_81845D4
|
|
sub_81845D4: @ 81845D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x32]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
cmn r1, r0
|
|
bgt _081845FE
|
|
ldrh r0, [r4, 0x3A]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, =sub_8184610
|
|
str r0, [r4, 0x1C]
|
|
_081845FE:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81845D4
|
|
|
|
thumb_func_start sub_8184610
|
|
sub_8184610: @ 8184610
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x24]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
blt _0818462E
|
|
ldr r0, =sub_8184640
|
|
str r0, [r4, 0x1C]
|
|
_0818462E:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8184610
|
|
|
|
thumb_func_start sub_8184640
|
|
sub_8184640: @ 8184640
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x24]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r4, 0x3A]
|
|
movs r3, 0x3A
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
ble _08184668
|
|
strh r2, [r4, 0x24]
|
|
ldr r0, =sub_8184678
|
|
str r0, [r4, 0x1C]
|
|
_08184668:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8184640
|
|
|
|
thumb_func_start sub_8184678
|
|
sub_8184678: @ 8184678
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r2, [r4, 0x34]
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
blt _08184698
|
|
ldr r0, =sub_81846B8
|
|
str r0, [r4, 0x1C]
|
|
b _081846AC
|
|
.pool
|
|
_08184698:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_081846AC:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184678
|
|
|
|
thumb_func_start sub_81846B8
|
|
sub_81846B8: @ 81846B8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F70C
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _081846DA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_817F77C
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
_081846DA:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81846B8
|
|
|
|
thumb_func_start pokemonanimfunc_88
|
|
pokemonanimfunc_88: @ 81846EC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r2, 0
|
|
movs r1, 0x4
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0xC
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x38]
|
|
strh r1, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_81845D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_88
|
|
|
|
thumb_func_start pokemonanimfunc_89
|
|
pokemonanimfunc_89: @ 8184718
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x3A]
|
|
movs r0, 0xC
|
|
strh r0, [r4, 0x38]
|
|
strh r1, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_81845D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_89
|
|
|
|
thumb_func_start pokemonanimfunc_8A
|
|
pokemonanimfunc_8A: @ 8184744
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_817F670
|
|
movs r1, 0
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, =sub_81845D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end pokemonanimfunc_8A
|
|
|
|
thumb_func_start sub_8184770
|
|
sub_8184770: @ 8184770
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x30]
|
|
strh r0, [r1, 0x24]
|
|
ldrh r2, [r1, 0x2E]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
ble _0818478E
|
|
movs r2, 0x30
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x30]
|
|
movs r0, 0
|
|
b _08184790
|
|
_0818478E:
|
|
adds r0, r2, 0x1
|
|
_08184790:
|
|
strh r0, [r1, 0x2E]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184770
|
|
|
|
thumb_func_start sub_8184798
|
|
sub_8184798: @ 8184798
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, =gUnknown_0860AE7C
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8184770
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xFF
|
|
bne _081847D0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0818482E
|
|
.pool
|
|
_081847D0:
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bne _08184800
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _081847F0
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
movs r2, 0x10
|
|
bl BlendPalette
|
|
b _081847FC
|
|
.pool
|
|
_081847F0:
|
|
ldrh r0, [r4, 0x3C]
|
|
ldr r3, =0x000003ff
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
_081847FC:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
_08184800:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _08184828
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _0818482E
|
|
.pool
|
|
_08184828:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_0818482E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184798
|
|
|
|
thumb_func_start pokemonanimfunc_8B
|
|
pokemonanimfunc_8B: @ 8184834
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x32]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08184860
|
|
ldrb r0, [r2, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4, 0
|
|
adds r0, r1
|
|
strh r0, [r2, 0x3C]
|
|
strh r3, [r2, 0x3A]
|
|
strh r3, [r2, 0x38]
|
|
strh r3, [r2, 0x36]
|
|
strh r3, [r2, 0x34]
|
|
_08184860:
|
|
adds r0, r2, 0
|
|
bl sub_8184798
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_8B
|
|
|
|
thumb_func_start pokemonanimfunc_8C
|
|
pokemonanimfunc_8C: @ 818486C
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x32]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0x1
|
|
bne _08184898
|
|
ldrb r0, [r2, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
adds r1, r5, 0
|
|
adds r0, r1
|
|
strh r0, [r2, 0x3C]
|
|
strh r3, [r2, 0x3A]
|
|
strh r3, [r2, 0x38]
|
|
strh r3, [r2, 0x36]
|
|
strh r4, [r2, 0x34]
|
|
_08184898:
|
|
adds r0, r2, 0
|
|
bl sub_8184798
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_8C
|
|
|
|
thumb_func_start pokemonanimfunc_8D
|
|
pokemonanimfunc_8D: @ 81848A4
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x32]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _081848D2
|
|
ldrb r0, [r2, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4, 0
|
|
adds r0, r1
|
|
strh r0, [r2, 0x3C]
|
|
strh r3, [r2, 0x3A]
|
|
strh r3, [r2, 0x38]
|
|
strh r3, [r2, 0x36]
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x34]
|
|
_081848D2:
|
|
adds r0, r2, 0
|
|
bl sub_8184798
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_8D
|
|
|
|
thumb_func_start sub_81848E0
|
|
sub_81848E0: @ 81848E0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7F
|
|
ble _08184904
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl BlendPalette
|
|
ldr r0, =sub_8184D88
|
|
str r0, [r4, 0x1C]
|
|
b _0818492A
|
|
.pool
|
|
_08184904:
|
|
movs r5, 0x32
|
|
ldrsh r0, [r4, r5]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =gUnknown_0860AE88
|
|
movs r5, 0x30
|
|
ldrsh r1, [r4, r5]
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_0818492A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81848E0
|
|
|
|
thumb_func_start sub_8184934
|
|
sub_8184934: @ 8184934
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bge _081849CC
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
movs r3, 0x38
|
|
ldrsh r1, [r4, r3]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
ble _08184970
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x36
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
bge _0818496C
|
|
strh r2, [r4, 0x38]
|
|
_0818496C:
|
|
strh r2, [r4, 0x24]
|
|
b _081849C6
|
|
_08184970:
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 15
|
|
movs r0, 0x1
|
|
subs r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 7
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _081849A4
|
|
adds r0, 0xFF
|
|
_081849A4:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl Sin
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_081849C6:
|
|
adds r0, r4, 0
|
|
bl sub_817F70C
|
|
_081849CC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8184934
|
|
|
|
thumb_func_start pokemonanimfunc_8E
|
|
pokemonanimfunc_8E: @ 81849D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _081849FE
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r2, [r4, 0x30]
|
|
_081849FE:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184A0E
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184A0E:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184A30
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184A30:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_8E
|
|
|
|
thumb_func_start pokemonanimfunc_8F
|
|
pokemonanimfunc_8F: @ 8184A3C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184A66
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r2, [r4, 0x30]
|
|
_08184A66:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184A76
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184A76:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184A98
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184A98:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_8F
|
|
|
|
thumb_func_start pokemonanimfunc_90
|
|
pokemonanimfunc_90: @ 8184AA4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184ACE
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r2, [r4, 0x30]
|
|
_08184ACE:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184ADE
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184ADE:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184B00
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184B00:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_90
|
|
|
|
thumb_func_start pokemonanimfunc_91
|
|
pokemonanimfunc_91: @ 8184B0C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184B38
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_08184B38:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184B48
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184B48:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184B6A
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184B6A:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_91
|
|
|
|
thumb_func_start pokemonanimfunc_92
|
|
pokemonanimfunc_92: @ 8184B78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184BA2
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r0, [r4, 0x30]
|
|
_08184BA2:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184BB2
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184BB2:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184BD4
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184BD4:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_92
|
|
|
|
thumb_func_start pokemonanimfunc_93
|
|
pokemonanimfunc_93: @ 8184BE0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184C0A
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r0, [r4, 0x30]
|
|
_08184C0A:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184C1A
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184C1A:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184C3C
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184C3C:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_93
|
|
|
|
thumb_func_start pokemonanimfunc_94
|
|
pokemonanimfunc_94: @ 8184C48
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184C72
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
strh r0, [r4, 0x30]
|
|
_08184C72:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184C82
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184C82:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184CA4
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184CA4:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_94
|
|
|
|
thumb_func_start pokemonanimfunc_95
|
|
pokemonanimfunc_95: @ 8184CB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184CDC
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_08184CDC:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184CEC
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184CEC:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184D0E
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184D0E:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_95
|
|
|
|
thumb_func_start pokemonanimfunc_96
|
|
pokemonanimfunc_96: @ 8184D1C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _08184D48
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x50
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_08184D48:
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08184D58
|
|
adds r0, r4, 0
|
|
bl sub_81848E0
|
|
_08184D58:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r4, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x36
|
|
ldrsh r0, [r4, r3]
|
|
muls r1, r0
|
|
movs r0, 0x80
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
cmp r2, r0
|
|
blt _08184D7A
|
|
adds r0, r4, 0
|
|
bl sub_8184934
|
|
_08184D7A:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pokemonanimfunc_96
|
|
|
|
thumb_func_start sub_8184D88
|
|
sub_8184D88: @ 8184D88
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08184D9C
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
_08184D9C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8184D88
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|