mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-20 11:58:04 -05:00
1103 lines
18 KiB
ArmAsm
1103 lines
18 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start nullsub_91
|
|
nullsub_91: @ 810BB88
|
|
bx lr
|
|
thumb_func_end nullsub_91
|
|
|
|
thumb_func_start dp13_810BB8C
|
|
dp13_810BB8C: @ 810BB8C
|
|
push {r4-r7,lr}
|
|
ldr r4, _0810BBAC @ =gUnknown_8453178
|
|
ldr r3, _0810BBB0 @ =gUnknown_203AD58
|
|
movs r2, 0x7
|
|
_0810BB94:
|
|
adds r1, r3, 0
|
|
adds r0, r4, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r3, 0xC
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0810BB94
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810BBAC: .4byte gUnknown_8453178
|
|
_0810BBB0: .4byte gUnknown_203AD58
|
|
thumb_func_end dp13_810BB8C
|
|
|
|
thumb_func_start load_pokemon_image_TODO
|
|
load_pokemon_image_TODO: @ 810BBB4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r6, r1, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [sp, 0x18]
|
|
ldr r1, [sp, 0x1C]
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r7, r4, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r1, 0
|
|
cmp r3, 0
|
|
bne _0810BC28
|
|
cmp r2, 0
|
|
beq _0810BBF4
|
|
cmp r1, 0
|
|
bne _0810BBE8
|
|
lsls r0, r4, 3
|
|
ldr r1, _0810BBE4 @ =gUnknown_82350AC
|
|
b _0810BBFC
|
|
.align 2, 0
|
|
_0810BBE4: .4byte gUnknown_82350AC
|
|
_0810BBE8:
|
|
lsls r0, r4, 3
|
|
ldr r1, _0810BBF0 @ =gUnknown_82350AC
|
|
b _0810BC14
|
|
.align 2, 0
|
|
_0810BBF0: .4byte gUnknown_82350AC
|
|
_0810BBF4:
|
|
cmp r0, 0
|
|
bne _0810BC10
|
|
lsls r0, r4, 3
|
|
ldr r1, _0810BC0C @ =gUnknown_823654C
|
|
_0810BBFC:
|
|
adds r0, r1
|
|
str r2, [sp]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r6, 0
|
|
bl sub_800ECF0
|
|
b _0810BC4E
|
|
.align 2, 0
|
|
_0810BC0C: .4byte gUnknown_823654C
|
|
_0810BC10:
|
|
lsls r0, r4, 3
|
|
ldr r1, _0810BC24 @ =gUnknown_823654C
|
|
_0810BC14:
|
|
adds r0, r1
|
|
str r2, [sp]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r6, 0
|
|
bl LoadSpecialPokePic_DontHandleDeoxys
|
|
b _0810BC4E
|
|
.align 2, 0
|
|
_0810BC24: .4byte gUnknown_823654C
|
|
_0810BC28:
|
|
cmp r2, 0
|
|
beq _0810BC40
|
|
lsls r0, r4, 3
|
|
ldr r1, _0810BC3C @ =gUnknown_823957C
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl DecompressPicFromTable
|
|
b _0810BC4E
|
|
.align 2, 0
|
|
_0810BC3C: .4byte gUnknown_823957C
|
|
_0810BC40:
|
|
lsls r0, r7, 3
|
|
ldr r1, _0810BC58 @ =gUnknown_8239FA4
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
bl DecompressPicFromTable
|
|
_0810BC4E:
|
|
movs r0, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810BC58: .4byte gUnknown_8239FA4
|
|
thumb_func_end load_pokemon_image_TODO
|
|
|
|
thumb_func_start sub_810BC5C
|
|
sub_810BC5C: @ 810BC5C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r4, [sp, 0x10]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
bl load_pokemon_image_TODO
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810BC5C
|
|
|
|
thumb_func_start sub_810BC84
|
|
sub_810BC84: @ 810BC84
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
ldr r1, [sp, 0x18]
|
|
ldr r2, [sp, 0x1C]
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r6, r4, 0
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
mov r12, r5
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
adds r1, r3, 0
|
|
lsls r2, 24
|
|
cmp r2, 0
|
|
bne _0810BCE8
|
|
ldr r0, _0810BCC8 @ =0x0000ffff
|
|
cmp r3, r0
|
|
bne _0810BCD0
|
|
ldr r2, _0810BCCC @ =gUnknown_203AD40
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x2]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
lsls r1, r5, 20
|
|
b _0810BD04
|
|
.align 2, 0
|
|
_0810BCC8: .4byte 0x0000ffff
|
|
_0810BCCC: .4byte gUnknown_203AD40
|
|
_0810BCD0:
|
|
ldr r0, _0810BCE4 @ =gUnknown_203AD40
|
|
strh r3, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
bl LoadCompressedObjectPalette
|
|
b _0810BD2E
|
|
.align 2, 0
|
|
_0810BCE4: .4byte gUnknown_203AD40
|
|
_0810BCE8:
|
|
ldr r0, _0810BD14 @ =0x0000ffff
|
|
cmp r3, r0
|
|
bne _0810BD20
|
|
ldr r2, _0810BD18 @ =gUnknown_203AD40
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x2]
|
|
ldr r1, _0810BD1C @ =gUnknown_8239A1C
|
|
lsls r0, r4, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r2, r12
|
|
lsls r1, r2, 20
|
|
_0810BD04:
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r1, r2
|
|
lsrs r1, 16
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _0810BD2E
|
|
.align 2, 0
|
|
_0810BD14: .4byte 0x0000ffff
|
|
_0810BD18: .4byte gUnknown_203AD40
|
|
_0810BD1C: .4byte gUnknown_8239A1C
|
|
_0810BD20:
|
|
ldr r0, _0810BD38 @ =gUnknown_203AD40
|
|
strh r1, [r0, 0x2]
|
|
lsls r0, r6, 3
|
|
ldr r1, _0810BD3C @ =gUnknown_8239A1C
|
|
adds r0, r1
|
|
bl LoadCompressedObjectPalette
|
|
_0810BD2E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BD38: .4byte gUnknown_203AD40
|
|
_0810BD3C: .4byte gUnknown_8239A1C
|
|
thumb_func_end sub_810BC84
|
|
|
|
thumb_func_start sub_810BD40
|
|
sub_810BD40: @ 810BD40
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
ldr r1, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
bne _0810BD64
|
|
adds r1, r5, 0
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
lsls r1, r4, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _0810BD74
|
|
_0810BD64:
|
|
ldr r1, _0810BD7C @ =gUnknown_8239A1C
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
_0810BD74:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BD7C: .4byte gUnknown_8239A1C
|
|
thumb_func_end sub_810BD40
|
|
|
|
thumb_func_start uns_builder_assign_animtable1
|
|
uns_builder_assign_animtable1: @ 810BD80
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0810BD98
|
|
ldr r1, _0810BD90 @ =gUnknown_203AD40
|
|
ldr r0, _0810BD94 @ =gUnknown_82349BC
|
|
str r0, [r1, 0x8]
|
|
b _0810BDA0
|
|
.align 2, 0
|
|
_0810BD90: .4byte gUnknown_203AD40
|
|
_0810BD94: .4byte gUnknown_82349BC
|
|
_0810BD98:
|
|
ldr r0, _0810BDA4 @ =gUnknown_203AD40
|
|
ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable
|
|
ldr r1, [r1]
|
|
str r1, [r0, 0x8]
|
|
_0810BDA0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0810BDA4: .4byte gUnknown_203AD40
|
|
_0810BDA8: .4byte gTrainerFrontAnimsPtrTable
|
|
thumb_func_end uns_builder_assign_animtable1
|
|
|
|
thumb_func_start oamt_spawn_poke_or_trainer_picture
|
|
oamt_spawn_poke_or_trainer_picture: @ 810BDAC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
str r1, [sp, 0xC]
|
|
str r2, [sp, 0x10]
|
|
ldr r1, [sp, 0x50]
|
|
ldr r2, [sp, 0x54]
|
|
ldr r4, [sp, 0x58]
|
|
ldr r5, [sp, 0x5C]
|
|
ldr r6, [sp, 0x60]
|
|
ldr r7, [sp, 0x64]
|
|
mov r8, r7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x14]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x18]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
str r2, [sp, 0x1C]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x20]
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r10, r5
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r9, r6
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r1, _0810BE44 @ =gUnknown_203AD58
|
|
ldrb r0, [r1, 0xB]
|
|
cmp r0, 0
|
|
beq _0810BE1C
|
|
_0810BE04:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x7
|
|
bhi _0810BE1C
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xB]
|
|
cmp r0, 0
|
|
bne _0810BE04
|
|
_0810BE1C:
|
|
cmp r4, 0x8
|
|
beq _0810BE40
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl Alloc
|
|
adds r7, r0, 0
|
|
cmp r7, 0
|
|
beq _0810BE40
|
|
movs r0, 0x20
|
|
bl Alloc
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bne _0810BE4C
|
|
adds r0, r7, 0
|
|
bl Free
|
|
_0810BE40:
|
|
ldr r0, _0810BE48 @ =0x0000ffff
|
|
b _0810BF16
|
|
.align 2, 0
|
|
_0810BE44: .4byte gUnknown_203AD58
|
|
_0810BE48: .4byte 0x0000ffff
|
|
_0810BE4C:
|
|
mov r1, r9
|
|
str r1, [sp]
|
|
str r5, [sp, 0x4]
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0x10]
|
|
ldr r2, [sp, 0x14]
|
|
adds r3, r7, 0
|
|
bl load_pokemon_image_TODO
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0810BE40
|
|
lsls r2, r4, 1
|
|
str r2, [sp, 0x2C]
|
|
ldr r5, _0810BF28 @ =gUnknown_203AD40
|
|
ldr r0, _0810BF2C @ =gUnknown_8453184
|
|
mov r12, r0
|
|
ldr r1, [sp, 0x18]
|
|
lsls r1, 16
|
|
str r1, [sp, 0x24]
|
|
ldr r2, [sp, 0x1C]
|
|
lsls r2, 16
|
|
str r2, [sp, 0x28]
|
|
movs r3, 0x80
|
|
lsls r3, 4
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
adds r6, r3, 0
|
|
movs r2, 0x3
|
|
_0810BE86:
|
|
str r1, [r0]
|
|
strh r3, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, r6
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0810BE86
|
|
ldr r0, _0810BF30 @ =0x0000ffff
|
|
strh r0, [r5]
|
|
mov r0, r12
|
|
str r0, [r5, 0x4]
|
|
mov r0, r9
|
|
bl uns_builder_assign_animtable1
|
|
mov r1, r8
|
|
str r1, [r5, 0xC]
|
|
ldr r0, _0810BF34 @ =gDummySpriteAffineAnimTable
|
|
str r0, [r5, 0x10]
|
|
ldr r0, _0810BF38 @ =nullsub_91
|
|
str r0, [r5, 0x14]
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x20]
|
|
bl sub_810BC84
|
|
ldr r2, [sp, 0x24]
|
|
asrs r1, r2, 16
|
|
ldr r0, [sp, 0x28]
|
|
asrs r2, r0, 16
|
|
adds r0, r5, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r6, r2, 0
|
|
ldr r0, _0810BF30 @ =0x0000ffff
|
|
cmp r10, r0
|
|
bne _0810BEF6
|
|
ldr r0, _0810BF3C @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r2, [sp, 0x20]
|
|
lsls r3, r2, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
_0810BEF6:
|
|
ldr r1, _0810BF40 @ =gUnknown_203AD58
|
|
ldr r2, [sp, 0x2C]
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
str r7, [r2]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
mov r7, r8
|
|
str r7, [r0]
|
|
mov r0, r10
|
|
strh r0, [r2, 0x8]
|
|
strb r6, [r2, 0xA]
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0xB]
|
|
adds r0, r6, 0
|
|
_0810BF16:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810BF28: .4byte gUnknown_203AD40
|
|
_0810BF2C: .4byte gUnknown_8453184
|
|
_0810BF30: .4byte 0x0000ffff
|
|
_0810BF34: .4byte gDummySpriteAffineAnimTable
|
|
_0810BF38: .4byte nullsub_91
|
|
_0810BF3C: .4byte gSprites
|
|
_0810BF40: .4byte gUnknown_203AD58
|
|
thumb_func_end oamt_spawn_poke_or_trainer_picture
|
|
|
|
thumb_func_start sub_810BF44
|
|
sub_810BF44: @ 810BF44
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
ldr r4, [sp, 0x34]
|
|
ldr r5, [sp, 0x38]
|
|
ldr r6, [sp, 0x3C]
|
|
ldr r7, [sp, 0x40]
|
|
mov r8, r7
|
|
ldr r7, [sp, 0x44]
|
|
mov r9, r7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r7, r8
|
|
lsls r7, 16
|
|
lsrs r7, 16
|
|
mov r8, r7
|
|
mov r7, r9
|
|
lsls r7, 24
|
|
lsrs r7, 24
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
mov r4, r8
|
|
str r4, [sp, 0xC]
|
|
str r7, [sp, 0x10]
|
|
movs r4, 0
|
|
str r4, [sp, 0x14]
|
|
bl oamt_spawn_poke_or_trainer_picture
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810BF44
|
|
|
|
thumb_func_start sub_810BFA4
|
|
sub_810BFA4: @ 810BFA4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r2, 0
|
|
ldr r0, _0810BFDC @ =gUnknown_203AD58
|
|
ldrb r1, [r0, 0xA]
|
|
adds r3, r0, 0
|
|
cmp r1, r4
|
|
beq _0810BFD4
|
|
adds r1, r3, 0
|
|
_0810BFBC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bhi _0810BFD4
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, r4
|
|
bne _0810BFBC
|
|
_0810BFD4:
|
|
cmp r2, 0x8
|
|
bne _0810BFE4
|
|
ldr r0, _0810BFE0 @ =0x0000ffff
|
|
b _0810C03A
|
|
.align 2, 0
|
|
_0810BFDC: .4byte gUnknown_203AD58
|
|
_0810BFE0: .4byte 0x0000ffff
|
|
_0810BFE4:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r3
|
|
ldr r1, [r5]
|
|
mov r8, r1
|
|
adds r1, r3, 0x4
|
|
adds r0, r1
|
|
ldr r7, [r0]
|
|
ldrh r1, [r5, 0x8]
|
|
ldr r0, _0810C044 @ =0x0000ffff
|
|
lsls r6, r4, 4
|
|
cmp r1, r0
|
|
beq _0810C018
|
|
ldr r1, _0810C048 @ =gSprites
|
|
adds r0, r6, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
bl GetSpritePaletteTagByPaletteNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FreeSpritePaletteByTag
|
|
_0810C018:
|
|
adds r0, r6, r4
|
|
lsls r0, 2
|
|
ldr r1, _0810C048 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
mov r0, r8
|
|
bl Free
|
|
adds r0, r7, 0
|
|
bl Free
|
|
adds r1, r5, 0
|
|
ldr r0, _0810C04C @ =gUnknown_8453178
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
movs r0, 0
|
|
_0810C03A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810C044: .4byte 0x0000ffff
|
|
_0810C048: .4byte gSprites
|
|
_0810C04C: .4byte gUnknown_8453178
|
|
thumb_func_end sub_810BFA4
|
|
|
|
thumb_func_start sub_810C050
|
|
sub_810C050: @ 810C050
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
mov r9, r1
|
|
adds r7, r2, 0
|
|
adds r4, r3, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r2, [sp, 0x24]
|
|
ldr r3, [sp, 0x28]
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
adds r0, r2, 0
|
|
movs r1, 0x7
|
|
bl GetWindowAttribute
|
|
adds r3, r0, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_810BC5C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0810C0AC
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
adds r2, r7, 0
|
|
mov r3, r8
|
|
bl sub_810BD40
|
|
movs r0, 0
|
|
b _0810C0AE
|
|
_0810C0AC:
|
|
ldr r0, _0810C0BC @ =0x0000ffff
|
|
_0810C0AE:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810C0BC: .4byte 0x0000ffff
|
|
thumb_func_end sub_810C050
|
|
|
|
thumb_func_start sub_810C0C0
|
|
sub_810C0C0: @ 810C0C0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
str r1, [sp, 0x18]
|
|
str r2, [sp, 0x1C]
|
|
ldr r1, [sp, 0x44]
|
|
ldr r2, [sp, 0x48]
|
|
ldr r4, [sp, 0x4C]
|
|
ldr r5, [sp, 0x50]
|
|
ldr r6, [sp, 0x54]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x20]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl Alloc
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0810C156
|
|
str r6, [sp]
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x1C]
|
|
adds r2, r7, 0
|
|
adds r3, r4, 0
|
|
bl sub_810BC5C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0810C156
|
|
movs r0, 0x40
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
mov r1, r10
|
|
str r1, [sp, 0x8]
|
|
mov r1, r8
|
|
str r1, [sp, 0xC]
|
|
str r0, [sp, 0x10]
|
|
str r0, [sp, 0x14]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BlitBitmapRectToWindow
|
|
str r6, [sp]
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x18]
|
|
ldr r2, [sp, 0x1C]
|
|
ldr r3, [sp, 0x20]
|
|
bl sub_810BD40
|
|
adds r0, r4, 0
|
|
bl Free
|
|
movs r0, 0
|
|
b _0810C158
|
|
_0810C156:
|
|
ldr r0, _0810C168 @ =0x0000ffff
|
|
_0810C158:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810C168: .4byte 0x0000ffff
|
|
thumb_func_end sub_810C0C0
|
|
|
|
thumb_func_start sub_810C16C
|
|
sub_810C16C: @ 810C16C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
ldr r4, [sp, 0x34]
|
|
ldr r5, [sp, 0x38]
|
|
ldr r6, [sp, 0x3C]
|
|
ldr r7, [sp, 0x40]
|
|
mov r8, r7
|
|
ldr r7, [sp, 0x44]
|
|
mov r9, r7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r7, r8
|
|
lsls r7, 16
|
|
lsrs r7, 16
|
|
mov r8, r7
|
|
mov r7, r9
|
|
lsls r7, 24
|
|
lsrs r7, 24
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
mov r4, r8
|
|
str r4, [sp, 0xC]
|
|
movs r4, 0
|
|
str r4, [sp, 0x10]
|
|
str r7, [sp, 0x14]
|
|
bl oamt_spawn_poke_or_trainer_picture
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C16C
|
|
|
|
thumb_func_start sub_810C1CC
|
|
sub_810C1CC: @ 810C1CC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
ldr r7, [sp, 0x38]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r7, 16
|
|
lsrs r7, 16
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
movs r4, 0
|
|
str r4, [sp, 0x10]
|
|
bl sub_810C16C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C1CC
|
|
|
|
thumb_func_start sub_810C214
|
|
sub_810C214: @ 810C214
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_810BFA4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C214
|
|
|
|
thumb_func_start sub_810C228
|
|
sub_810C228: @ 810C228
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
ldr r5, [sp, 0x24]
|
|
ldr r6, [sp, 0x28]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
str r6, [sp, 0xC]
|
|
str r4, [sp, 0x10]
|
|
bl sub_810C0C0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C228
|
|
|
|
thumb_func_start sub_810C25C
|
|
sub_810C25C: @ 810C25C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
ldr r7, [sp, 0x38]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r7, 24
|
|
lsrs r7, 24
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
movs r4, 0
|
|
str r4, [sp, 0x10]
|
|
bl sub_810C0C0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C25C
|
|
|
|
thumb_func_start sub_810C2A4
|
|
sub_810C2A4: @ 810C2A4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
adds r5, r1, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
str r2, [sp]
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
str r3, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x10]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_810BF44
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C2A4
|
|
|
|
thumb_func_start sub_810C2E8
|
|
sub_810C2E8: @ 810C2E8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_810BFA4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C2E8
|
|
|
|
thumb_func_start sub_810C2FC
|
|
sub_810C2FC: @ 810C2FC
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r4, 0
|
|
bl sub_810C050
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C2FC
|
|
|
|
thumb_func_start sub_810C330
|
|
sub_810C330: @ 810C330
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
adds r5, r1, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x10]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_810C0C0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_810C330
|
|
|
|
thumb_func_start sub_810C374
|
|
sub_810C374: @ 810C374
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x1
|
|
bne _0810C39A
|
|
cmp r0, 0
|
|
beq _0810C394
|
|
ldr r0, _0810C390 @ =gFacilityClassToPicIndex
|
|
adds r0, 0x87
|
|
ldrb r0, [r0]
|
|
b _0810C39A
|
|
.align 2, 0
|
|
_0810C390: .4byte gFacilityClassToPicIndex
|
|
_0810C394:
|
|
ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex
|
|
adds r0, 0x86
|
|
ldrb r0, [r0]
|
|
_0810C39A:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0810C3A0: .4byte gFacilityClassToPicIndex
|
|
thumb_func_end sub_810C374
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|