pmd-red/asm/items_1.s
Dennis da7b30612f
More work on item related functions (#44)
* decompile sub_8091290

* decompile sub_80912c8

* rename functions / struct field

* more names

* decompile 80913A0

* decompile GetItemMove

* decompile sub_80913E0

* rename function

* decompile CanSellItem function

* rename inventory struct

* add some item check functions

* fix renaming stuff

* this file shouldnt have been here

* forgot merge conflict

* decompile more item functions

* rename some stuff

* fix HM/TM naming

* Update src/code_801AFA4.c

Use enum value for USED_TM

* Fix incorrect value

* decompile sub_80915F4

* decompile HasGummiItem

* decompiled another function and renamed stuff

* decompile 2 smaller functions

* more functions

* more decompiling and renaming

* redo change that was undone in the merge
2021-07-12 14:10:32 -05:00

1009 lines
15 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80918EC
sub_80918EC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
_080918F8:
adds r1, r0, 0x1
mov r8, r1
mov r6, r8
cmp r1, 0x7
bgt _08091964
ldr r1, _08091978
mov r9, r1
lsls r7, r0, 2
movs r0, 0x8C
lsls r0, 2
mov r10, r0
_0809190E:
mov r1, r9
ldr r0, [r1]
adds r0, r7
add r0, r10
ldrb r0, [r0]
bl GetItemOrder
adds r4, r0, 0
mov r1, r9
ldr r0, [r1]
lsls r5, r6, 2
adds r0, r5
add r0, r10
ldrb r0, [r0]
bl GetItemOrder
cmp r4, r0
bgt _0809194C
cmp r4, r0
bne _0809195E
mov r1, r9
ldr r0, [r1]
adds r2, r0, r7
ldr r1, _0809197C
adds r2, r1
adds r0, r5
adds r0, r1
ldrb r1, [r2]
ldrb r0, [r0]
cmp r1, r0
bcs _0809195E
_0809194C:
mov r1, r9
ldr r0, [r1]
add r0, r10
adds r2, r0, r7
ldr r3, [r2]
adds r0, r5
ldr r1, [r0]
str r1, [r2]
str r3, [r0]
_0809195E:
adds r6, 0x1
cmp r6, 0x7
ble _0809190E
_08091964:
mov r0, r8
cmp r0, 0x6
ble _080918F8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08091978: .4byte gTeamInventory_203B460
_0809197C: .4byte 0x00000231
thumb_func_end sub_80918EC
thumb_func_start sub_8091980
sub_8091980:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r1, sp
ldr r0, _080919F4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
movs r5, 0
_0809199C:
lsls r0, r5, 24
lsrs r0, 24
bl xxx_init_unk230_substruct
adds r5, 0x1
cmp r5, 0x7
ble _0809199C
mov r0, r8
lsls r7, r0, 2
ldr r6, _080919F8
movs r5, 0x7
_080919B2:
adds r0, r6, 0
bl RandomCapped
adds r4, r0, 0
adds r0, r6, 0
bl RandomCapped
adds r2, r0, 0
mov r1, sp
adds r0, r1, r7
ldr r0, [r0]
adds r1, r4, 0
bl sub_8091E94
lsls r0, 24
lsrs r0, 24
bl sub_80919FC
subs r5, 0x1
cmp r5, 0
bge _080919B2
bl sub_80918EC
mov r0, r8
bl sub_8091BB4
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080919F4: .4byte gUnknown_81097E8
_080919F8: .4byte 0x0000270f
thumb_func_end sub_8091980
thumb_func_start sub_80919FC
sub_80919FC:
push {r4,r5,lr}
sub sp, 0x4
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, sp
bl sub_8090B08
movs r3, 0
ldr r5, _08091A34
movs r4, 0x8C
lsls r4, 2
_08091A14:
ldr r1, [r5]
lsls r2, r3, 2
adds r0, r1, r2
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _08091A38
movs r3, 0x8C
lsls r3, 2
adds r0, r1, r3
adds r0, r2
ldr r1, [sp]
str r1, [r0]
movs r0, 0
b _08091A40
.align 2, 0
_08091A34: .4byte gTeamInventory_203B460
_08091A38:
adds r3, 0x1
cmp r3, 0x7
ble _08091A14
movs r0, 0x1
_08091A40:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80919FC
thumb_func_start sub_8091A48
sub_8091A48:
push {lr}
movs r3, 0
ldr r0, _08091A70
ldr r0, [r0]
movs r2, 0x94
lsls r2, 2
adds r1, r0, r2
movs r2, 0x3
_08091A58:
ldrb r0, [r1]
cmp r0, 0
beq _08091A60
adds r3, 0x1
_08091A60:
adds r1, 0x4
subs r2, 0x1
cmp r2, 0
bge _08091A58
adds r0, r3, 0
pop {r1}
bx r1
.align 2, 0
_08091A70: .4byte gTeamInventory_203B460
thumb_func_end sub_8091A48
thumb_func_start sub_8091A74
sub_8091A74:
lsls r0, 24
ldr r1, _08091A8C
lsrs r0, 22
movs r2, 0x94
lsls r2, 2
adds r0, r2
ldr r1, [r1]
adds r1, r0
movs r0, 0
strb r0, [r1]
strb r0, [r1, 0x1]
bx lr
.align 2, 0
_08091A8C: .4byte gTeamInventory_203B460
thumb_func_end sub_8091A74
thumb_func_start sub_8091A90
sub_8091A90:
lsls r0, 24
ldr r1, _08091AA4
lsrs r0, 22
movs r2, 0x94
lsls r2, 2
adds r0, r2
ldr r1, [r1]
adds r1, r0
adds r0, r1, 0
bx lr
.align 2, 0
_08091AA4: .4byte gTeamInventory_203B460
thumb_func_end sub_8091A90
thumb_func_start sub_8091AA8
sub_8091AA8:
push {r4-r7,lr}
movs r2, 0
movs r4, 0
ldr r7, _08091AB8
movs r6, 0x94
lsls r6, 2
movs r3, 0
b _08091AD4
.align 2, 0
_08091AB8: .4byte gTeamInventory_203B460
_08091ABC:
cmp r2, r4
ble _08091ACE
ldr r0, [r7]
lsls r1, r4, 2
adds r0, r6
adds r1, r0, r1
adds r0, r3
ldr r0, [r0]
str r0, [r1]
_08091ACE:
adds r3, 0x4
adds r2, 0x1
adds r4, 0x1
_08091AD4:
cmp r2, 0x3
bgt _08091AFE
ldr r0, [r7]
adds r0, r3
adds r0, r6
ldrb r0, [r0]
cmp r0, 0
bne _08091AFE
ldr r5, _08091B1C
movs r1, 0x94
lsls r1, 2
_08091AEA:
adds r3, 0x4
adds r2, 0x1
cmp r2, 0x3
bgt _08091AFE
ldr r0, [r5]
adds r0, r3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08091AEA
_08091AFE:
cmp r2, 0x4
bne _08091ABC
cmp r4, 0x3
bgt _08091B14
_08091B06:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8091A74
adds r4, 0x1
cmp r4, 0x3
ble _08091B06
_08091B14:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08091B1C: .4byte gTeamInventory_203B460
thumb_func_end sub_8091AA8
thumb_func_start sub_8091B20
sub_8091B20:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
_08091B2C:
adds r1, r0, 0x1
mov r8, r1
mov r6, r8
cmp r1, 0x3
bgt _08091B98
ldr r1, _08091BAC
mov r9, r1
lsls r7, r0, 2
movs r0, 0x94
lsls r0, 2
mov r10, r0
_08091B42:
mov r1, r9
ldr r0, [r1]
adds r0, r7
add r0, r10
ldrb r0, [r0]
bl GetItemOrder
adds r4, r0, 0
mov r1, r9
ldr r0, [r1]
lsls r5, r6, 2
adds r0, r5
add r0, r10
ldrb r0, [r0]
bl GetItemOrder
cmp r4, r0
bgt _08091B80
cmp r4, r0
bne _08091B92
mov r1, r9
ldr r0, [r1]
adds r2, r0, r7
ldr r1, _08091BB0
adds r2, r1
adds r0, r5
adds r0, r1
ldrb r1, [r2]
ldrb r0, [r0]
cmp r1, r0
bcs _08091B92
_08091B80:
mov r1, r9
ldr r0, [r1]
add r0, r10
adds r2, r0, r7
ldr r3, [r2]
adds r0, r5
ldr r1, [r0]
str r1, [r2]
str r3, [r0]
_08091B92:
adds r6, 0x1
cmp r6, 0x3
ble _08091B42
_08091B98:
mov r0, r8
cmp r0, 0x2
ble _08091B2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08091BAC: .4byte gTeamInventory_203B460
_08091BB0: .4byte 0x00000251
thumb_func_end sub_8091B20
thumb_func_start sub_8091BB4
sub_8091BB4:
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
mov r1, sp
ldr r0, _08091C14
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r0]
str r0, [r1]
movs r5, 0
_08091BCA:
lsls r0, r5, 24
lsrs r0, 24
bl sub_8091A74
adds r5, 0x1
cmp r5, 0x3
ble _08091BCA
lsls r7, r4, 2
ldr r6, _08091C18
movs r5, 0x3
_08091BDE:
adds r0, r6, 0
bl RandomCapped
adds r4, r0, 0
adds r0, r6, 0
bl RandomCapped
adds r2, r0, 0
mov r1, sp
adds r0, r1, r7
ldr r0, [r0]
adds r1, r4, 0
bl sub_8091E94
lsls r0, 24
lsrs r0, 24
bl sub_8091C1C
subs r5, 0x1
cmp r5, 0
bge _08091BDE
bl sub_8091B20
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08091C14: .4byte gUnknown_81097F8
_08091C18: .4byte 0x0000270f
thumb_func_end sub_8091BB4
thumb_func_start sub_8091C1C
sub_8091C1C:
push {r4,r5,lr}
sub sp, 0x4
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, sp
bl sub_8090B08
movs r3, 0
ldr r5, _08091C54
movs r4, 0x94
lsls r4, 2
_08091C34:
ldr r1, [r5]
lsls r2, r3, 2
adds r0, r1, r2
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _08091C58
movs r3, 0x94
lsls r3, 2
adds r0, r1, r3
adds r0, r2
ldr r1, [sp]
str r1, [r0]
movs r0, 0
b _08091C60
.align 2, 0
_08091C54: .4byte gTeamInventory_203B460
_08091C58:
adds r3, 0x1
cmp r3, 0x3
ble _08091C34
movs r0, 0x1
_08091C60:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8091C1C
thumb_func_start sub_8091C68
sub_8091C68:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809486C
movs r4, 0
ldr r5, _08091D10
_08091C7C:
lsls r0, r4, 2
ldr r1, [r5]
adds r1, r0
mov r0, sp
bl sub_8091E28
adds r4, 0x1
cmp r4, 0x13
ble _08091C7C
ldr r6, _08091D10
movs r5, 0x50
movs r4, 0xEF
_08091C94:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0xA
bl sub_809488C
adds r5, 0x2
subs r4, 0x1
cmp r4, 0
bge _08091C94
ldr r6, _08091D10
movs r5, 0x8C
lsls r5, 2
movs r4, 0x7
_08091CB0:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8091DE0
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08091CB0
ldr r6, _08091D10
movs r5, 0x94
lsls r5, 2
movs r4, 0x3
_08091CCA:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8091DE0
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08091CCA
ldr r4, _08091D10
ldr r1, [r4]
movs r0, 0x98
lsls r0, 2
adds r1, r0
mov r0, sp
movs r2, 0x18
bl sub_809488C
ldr r1, [r4]
movs r0, 0x99
lsls r0, 2
adds r1, r0
mov r0, sp
movs r2, 0x18
bl sub_809488C
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08091D10: .4byte gTeamInventory_203B460
thumb_func_end sub_8091C68
thumb_func_start sub_8091D14
sub_8091D14:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809485C
movs r4, 0
ldr r5, _08091DBC
_08091D28:
lsls r0, r4, 2
ldr r1, [r5]
adds r1, r0
mov r0, sp
bl sub_8091E00
adds r4, 0x1
cmp r4, 0x13
ble _08091D28
ldr r6, _08091DBC
movs r5, 0x50
movs r4, 0xEF
_08091D40:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0xA
bl sub_8094924
adds r5, 0x2
subs r4, 0x1
cmp r4, 0
bge _08091D40
ldr r6, _08091DBC
movs r5, 0x8C
lsls r5, 2
movs r4, 0x7
_08091D5C:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8091DC0
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08091D5C
ldr r6, _08091DBC
movs r5, 0x94
lsls r5, 2
movs r4, 0x3
_08091D76:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8091DC0
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08091D76
ldr r4, _08091DBC
ldr r1, [r4]
movs r0, 0x98
lsls r0, 2
adds r1, r0
mov r0, sp
movs r2, 0x18
bl sub_8094924
ldr r1, [r4]
movs r0, 0x99
lsls r0, 2
adds r1, r0
mov r0, sp
movs r2, 0x18
bl sub_8094924
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08091DBC: .4byte gTeamInventory_203B460
thumb_func_end sub_8091D14
thumb_func_start sub_8091DC0
sub_8091DC0:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x8
bl sub_8094924
adds r4, 0x1
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x7
bl sub_8094924
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8091DC0
thumb_func_start sub_8091DE0
sub_8091DE0:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x8
bl sub_809488C
adds r4, 0x1
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x7
bl sub_809488C
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8091DE0
thumb_func_start sub_8091E00
sub_8091E00:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x7
bl sub_8094924
adds r5, 0x2
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x8
bl sub_8094924
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8091E00
thumb_func_start sub_8091E28
sub_8091E28:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x7
bl sub_809488C
adds r5, 0x2
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x8
bl sub_809488C
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8091E28
thumb_func_start sub_8091E50
sub_8091E50:
lsls r0, 24
ldr r1, _08091E5C
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_08091E5C: .4byte gUnknown_810AF50
thumb_func_end sub_8091E50
thumb_func_start sub_8091E60
sub_8091E60:
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r1, 24
lsrs r4, r0, 24
cmp r3, 0x3E
bhi _08091E8C
ldr r2, _08091E88
lsrs r0, 27
lsls r1, r3, 5
adds r0, r1
adds r0, r2
ldrb r0, [r0]
movs r1, 0x7
ands r1, r4
asrs r0, r1
movs r1, 0x1
ands r0, r1
b _08091E8E
.align 2, 0
_08091E88: .4byte gUnknown_8108F64
_08091E8C:
movs r0, 0
_08091E8E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8091E60
thumb_func_start sub_8091E94
sub_8091E94:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _08091EE4
add sp, r4
mov r8, r1
mov r10, r2
ldr r1, _08091EE8
subs r0, 0x1
lsls r0, 2
adds r0, r1
movs r3, 0
add r1, sp, 0x18
mov r9, r1
ldr r2, _08091EEC
mov r12, r2
add r6, sp, 0x1F8
ldr r2, [r0]
adds r7, r6, 0
movs r4, 0
_08091EC0:
ldrh r1, [r2]
cmp r1, r12
bls _08091EF4
ldrh r0, [r2]
ldr r1, _08091EF0
adds r0, r1
cmp r0, 0
beq _08091EFC
movs r5, 0
adds r1, r7, r4
_08091ED4:
strh r5, [r1]
adds r1, 0x2
adds r4, 0x2
adds r3, 0x1
subs r0, 0x1
cmp r0, 0
bne _08091ED4
b _08091EFC
.align 2, 0
_08091EE4: .4byte 0xfffffc10
_08091EE8: .4byte gUnknown_8108E58
_08091EEC: .4byte 0x0000752f
_08091EF0: .4byte 0xffff8ad0
_08091EF4:
adds r0, r6, r4
strh r1, [r0]
adds r4, 0x2
adds r3, 0x1
_08091EFC:
adds r2, 0x2
cmp r3, 0xFB
ble _08091EC0
movs r3, 0xB
add r2, sp, 0x1F8
mov r1, sp
_08091F08:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _08091F08
mov r2, r9
add r1, sp, 0x210
movs r3, 0xEF
_08091F1C:
ldrh r0, [r1]
strh r0, [r2]
adds r1, 0x2
adds r2, 0x2
subs r3, 0x1
cmp r3, 0
bge _08091F1C
movs r7, 0xC
movs r6, 0
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _08091F4A
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, r8
blt _08091F4A
movs r7, 0
b _08091F66
_08091F46:
mov r8, r5
b _08091F9C
_08091F4A:
adds r6, 0x1
cmp r6, 0xB
bgt _08091F66
lsls r0, r6, 1
mov r2, sp
adds r1, r2, r0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08091F4A
cmp r0, r8
blt _08091F4A
lsls r0, r6, 24
lsrs r7, r0, 24
_08091F66:
movs r0, 0x46
mov r8, r0
cmp r7, 0xC
beq _08091F9C
movs r6, 0
mov r4, r9
_08091F72:
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08091F94
lsls r0, r6, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, r7
bne _08091F94
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, r10
bge _08091F46
_08091F94:
adds r4, 0x2
adds r6, 0x1
cmp r6, 0xEF
ble _08091F72
_08091F9C:
mov r0, r8
movs r3, 0xFC
lsls r3, 2
add sp, r3
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8091E94
thumb_func_start sub_8091FB4
sub_8091FB4:
push {r4-r6,lr}
movs r6, 0
_08091FB8:
ldr r0, _08092038
lsls r1, r6, 2
ldr r0, [r0]
adds r4, r0, r1
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08091FE8
movs r0, 0xF7
ands r0, r1
movs r5, 0
strb r0, [r4]
ldrb r0, [r4, 0x2]
cmp r0, 0x69
bne _08091FE8
adds r0, r4, 0
bl GetMoneyValue
bl AddToTeamMoney
strb r5, [r4, 0x2]
strb r5, [r4, 0x1]
strb r5, [r4]
_08091FE8:
adds r6, 0x1
cmp r6, 0x13
ble _08091FB8
bl FillInventoryGaps
movs r6, 0
_08091FF4:
movs r0, 0x58
adds r1, r6, 0
muls r1, r0
ldr r0, _0809203C
ldr r0, [r0]
adds r2, r1, r0
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08092026
adds r4, r2, 0
adds r4, 0x28
ldrb r0, [r4]
cmp r0, 0
beq _08092026
cmp r0, 0x69
bne _08092026
adds r0, r4, 0
bl GetMoneyValue2
bl AddToTeamMoney
movs r0, 0
strb r0, [r4]
_08092026:
adds r6, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r6, r0
ble _08091FF4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08092038: .4byte gTeamInventory_203B460
_0809203C: .4byte gRecruitedPokemonRef
thumb_func_end sub_8091FB4
.align 2,0