pokediamond/arm9/asm/unk_0207550C.s

3512 lines
66 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern gSystem
.text
thumb_func_start sub_0207550C
sub_0207550C: ; 0x0207550C
push {r3-r5, lr}
mov r1, #0x0
mov r2, #0xc
bl LoadItemDataOrGfx
mov r1, #0xe
add r4, r0, #0x0
bl GetItemAttr_PreloadedItemData
cmp r0, #0x1
beq _0207552C
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x1c
pop {r3-r5, pc}
_0207552C:
add r0, r4, #0x0
mov r1, #0x1b
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x1c
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x1d
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x1e
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x1f
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x20
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _02075580
add r0, r4, #0x0
mov r1, #0x21
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _0207558A
_02075580:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x0
pop {r3-r5, pc}
_0207558A:
add r0, r4, #0x0
mov r1, #0x18
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020755A0
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x1
pop {r3-r5, pc}
_020755A0:
add r0, r4, #0x0
mov r1, #0x19
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020755B6
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x2
pop {r3-r5, pc}
_020755B6:
add r0, r4, #0x0
mov r1, #0xf
bl GetItemAttr_PreloadedItemData
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0x10
bl GetItemAttr_PreloadedItemData
lsl r0, r0, #0x1
add r5, r5, r0
add r0, r4, #0x0
mov r1, #0x11
bl GetItemAttr_PreloadedItemData
lsl r0, r0, #0x2
add r5, r5, r0
add r0, r4, #0x0
mov r1, #0x12
bl GetItemAttr_PreloadedItemData
lsl r0, r0, #0x3
add r5, r5, r0
add r0, r4, #0x0
mov r1, #0x13
bl GetItemAttr_PreloadedItemData
lsl r0, r0, #0x4
add r5, r5, r0
add r0, r4, #0x0
mov r1, #0x14
bl GetItemAttr_PreloadedItemData
lsl r0, r0, #0x5
add r5, r5, r0
cmp r5, #0x10
bgt _02075624
bge _0207565A
cmp r5, #0x8
bhi _0207568E
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02075612: ; jump table (using 16-bit offset)
.short _0207568E - _02075612 - 2; case 0
.short _02075632 - _02075612 - 2; case 1
.short _0207563C - _02075612 - 2; case 2
.short _0207568E - _02075612 - 2; case 3
.short _02075646 - _02075612 - 2; case 4
.short _0207568E - _02075612 - 2; case 5
.short _0207568E - _02075612 - 2; case 6
.short _0207568E - _02075612 - 2; case 7
.short _02075650 - _02075612 - 2; case 8
_02075624:
cmp r5, #0x20
bgt _0207562C
beq _02075664
b _0207568E
_0207562C:
cmp r5, #0x3f
beq _0207566E
b _0207568E
_02075632:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x3
pop {r3-r5, pc}
_0207563C:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x4
pop {r3-r5, pc}
_02075646:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x5
pop {r3-r5, pc}
_02075650:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x6
pop {r3-r5, pc}
_0207565A:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x7
pop {r3-r5, pc}
_02075664:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x8
pop {r3-r5, pc}
_0207566E:
add r0, r4, #0x0
mov r1, #0x26
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _02075684
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xb
pop {r3-r5, pc}
_02075684:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x9
pop {r3-r5, pc}
_0207568E:
add r0, r4, #0x0
mov r1, #0x15
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020756A4
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xa
pop {r3-r5, pc}
_020756A4:
add r0, r4, #0x0
mov r1, #0x26
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020756BA
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xb
pop {r3-r5, pc}
_020756BA:
add r0, r4, #0x0
mov r1, #0x30
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _020756D0
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xc
pop {r3-r5, pc}
_020756D0:
bge _020756DC
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x12
pop {r3-r5, pc}
_020756DC:
add r0, r4, #0x0
mov r1, #0x31
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _020756F2
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xd
pop {r3-r5, pc}
_020756F2:
bge _020756FE
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x13
pop {r3-r5, pc}
_020756FE:
add r0, r4, #0x0
mov r1, #0x32
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _02075714
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xe
pop {r3-r5, pc}
_02075714:
bge _02075720
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x14
pop {r3-r5, pc}
_02075720:
add r0, r4, #0x0
mov r1, #0x33
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _02075736
add r0, r4, #0x0
bl Heap_Free
mov r0, #0xf
pop {r3-r5, pc}
_02075736:
bge _02075742
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x15
pop {r3-r5, pc}
_02075742:
add r0, r4, #0x0
mov r1, #0x34
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _02075758
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x10
pop {r3-r5, pc}
_02075758:
bge _02075764
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x16
pop {r3-r5, pc}
_02075764:
add r0, r4, #0x0
mov r1, #0x35
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
ble _0207577A
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x11
pop {r3-r5, pc}
_0207577A:
bge _02075786
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x17
pop {r3-r5, pc}
_02075786:
add r0, r4, #0x0
mov r1, #0x1a
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _0207579C
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x18
pop {r3-r5, pc}
_0207579C:
add r0, r4, #0x0
mov r1, #0x22
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020757B2
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x19
pop {r3-r5, pc}
_020757B2:
add r0, r4, #0x0
mov r1, #0x23
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020757C8
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x1a
pop {r3-r5, pc}
_020757C8:
add r0, r4, #0x0
mov r1, #0x24
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
bne _020757E0
add r0, r4, #0x0
mov r1, #0x25
bl GetItemAttr_PreloadedItemData
cmp r0, #0x0
beq _020757EA
_020757E0:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x1b
pop {r3-r5, pc}
_020757EA:
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x1c
pop {r3-r5, pc}
thumb_func_start sub_020757F4
sub_020757F4: ; 0x020757F4
push {r4-r6, lr}
add r4, r0, #0x0
ldr r0, _02075B8C ; =0x000005A4
add r6, r1, #0x0
ldr r1, _02075B90 ; =0x00000B25
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
add r5, r2, #0x0
bl Party_GetMonByIndex
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
add r0, r6, #0x0
bl sub_0207550C
cmp r0, #0x1b
bls _02075828
b _02075C40
_02075828:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02075834: ; jump table (using 16-bit offset)
.short _02075C40 - _02075834 - 2; case 0
.short _02075C40 - _02075834 - 2; case 1
.short _02075C40 - _02075834 - 2; case 2
.short _02075890 - _02075834 - 2; case 3
.short _0207586C - _02075834 - 2; case 4
.short _020758B4 - _02075834 - 2; case 5
.short _020758D8 - _02075834 - 2; case 6
.short _020758FC - _02075834 - 2; case 7
.short _02075920 - _02075834 - 2; case 8
.short _02075968 - _02075834 - 2; case 9
.short _02075944 - _02075834 - 2; case 10
.short _02075C40 - _02075834 - 2; case 11
.short _0207598C - _02075834 - 2; case 12
.short _020759BE - _02075834 - 2; case 13
.short _020759F0 - _02075834 - 2; case 14
.short _02075A22 - _02075834 - 2; case 15
.short _02075A54 - _02075834 - 2; case 16
.short _02075A86 - _02075834 - 2; case 17
.short _02075AB8 - _02075834 - 2; case 18
.short _02075AEC - _02075834 - 2; case 19
.short _02075B20 - _02075834 - 2; case 20
.short _02075B54 - _02075834 - 2; case 21
.short _02075B88 - _02075834 - 2; case 22
.short _02075BCA - _02075834 - 2; case 23
.short _02075C40 - _02075834 - 2; case 24
.short _02075BFE - _02075834 - 2; case 25
.short _02075BFE - _02075834 - 2; case 26
.short _02075C30 - _02075834 - 2; case 27
_0207586C:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x41
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075890:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x5b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_020758B4:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x43
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_020758D8:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x44
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_020758FC:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x42
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075920:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x49
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075944:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4a
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075968:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x47
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_0207598C:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x0
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_020759BE:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
mov r1, #0x1
ldr r0, [r4, r0]
add r2, r1, #0x0
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_020759F0:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x2
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075A22:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x3
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075A54:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x4
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075A86:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x5
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075AB8:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x0
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075AEC:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
mov r1, #0x1
ldr r0, [r4, r0]
add r2, r1, #0x0
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075B20:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x2
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075B54:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x3
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075B88:
ldr r0, _02075B94 ; =0x0000069C
b _02075B98
.balign 4
_02075B8C: .word 0x000005A4
_02075B90: .word 0x00000B25
_02075B94: .word 0x0000069C
_02075B98:
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x4
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075BCA:
ldr r0, _02075C50 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
mov r2, #0x5
bl BufferStatName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075BFE:
ldr r0, _02075C50 ; =0x0000069C
mov r1, #0x48
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r6, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
add r2, r5, #0x0
bl BufferMoveName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r6, #0x0
bl StringExpandPlaceholders
add r0, r6, #0x0
bl String_Delete
pop {r4-r6, pc}
_02075C30:
ldr r2, _02075C50 ; =0x0000069C
mov r1, #0x45
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl ReadMsgDataIntoString
pop {r4-r6, pc}
_02075C40:
ldr r2, _02075C50 ; =0x0000069C
mov r1, #0x69
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl ReadMsgDataIntoString
pop {r4-r6, pc}
.balign 4
_02075C50: .word 0x0000069C
thumb_func_start sub_02075C54
sub_02075C54: ; 0x02075C54
push {r4, lr}
add r4, r0, #0x0
ldr r0, _02075CCC ; =0x000005A4
ldr r0, [r4, r0]
ldrh r0, [r0, #0x24]
bl sub_0207550C
cmp r0, #0x1c
bhi _02075CCA
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02075C72: ; jump table (using 16-bit offset)
.short _02075CCA - _02075C72 - 2; case 0
.short _02075CCA - _02075C72 - 2; case 1
.short _02075CAC - _02075C72 - 2; case 2
.short _02075CB4 - _02075C72 - 2; case 3
.short _02075CB4 - _02075C72 - 2; case 4
.short _02075CB4 - _02075C72 - 2; case 5
.short _02075CB4 - _02075C72 - 2; case 6
.short _02075CB4 - _02075C72 - 2; case 7
.short _02075CB4 - _02075C72 - 2; case 8
.short _02075CB4 - _02075C72 - 2; case 9
.short _02075CB4 - _02075C72 - 2; case 10
.short _02075CC4 - _02075C72 - 2; case 11
.short _02075CB4 - _02075C72 - 2; case 12
.short _02075CB4 - _02075C72 - 2; case 13
.short _02075CB4 - _02075C72 - 2; case 14
.short _02075CB4 - _02075C72 - 2; case 15
.short _02075CB4 - _02075C72 - 2; case 16
.short _02075CB4 - _02075C72 - 2; case 17
.short _02075CBC - _02075C72 - 2; case 18
.short _02075CBC - _02075C72 - 2; case 19
.short _02075CBC - _02075C72 - 2; case 20
.short _02075CBC - _02075C72 - 2; case 21
.short _02075CBC - _02075C72 - 2; case 22
.short _02075CBC - _02075C72 - 2; case 23
.short _02075CCA - _02075C72 - 2; case 24
.short _02075CB4 - _02075C72 - 2; case 25
.short _02075CB4 - _02075C72 - 2; case 26
.short _02075CB4 - _02075C72 - 2; case 27
.short _02075CCA - _02075C72 - 2; case 28
_02075CAC:
ldr r1, _02075CD0 ; =sub_0207640C
ldr r0, _02075CD4 ; =0x00000B14
str r1, [r4, r0]
pop {r4, pc}
_02075CB4:
ldr r1, _02075CD8 ; =sub_02075D20
ldr r0, _02075CD4 ; =0x00000B14
str r1, [r4, r0]
pop {r4, pc}
_02075CBC:
ldr r1, _02075CDC ; =sub_02075DC0
ldr r0, _02075CD4 ; =0x00000B14
str r1, [r4, r0]
pop {r4, pc}
_02075CC4:
ldr r1, _02075CE0 ; =sub_02075F60
ldr r0, _02075CD4 ; =0x00000B14
str r1, [r4, r0]
_02075CCA:
pop {r4, pc}
.balign 4
_02075CCC: .word 0x000005A4
_02075CD0: .word sub_0207640C
_02075CD4: .word 0x00000B14
_02075CD8: .word sub_02075D20
_02075CDC: .word sub_02075DC0
_02075CE0: .word sub_02075F60
thumb_func_start sub_02075CE4
sub_02075CE4: ; 0x02075CE4
push {r4, lr}
add r4, r0, #0x0
ldr r0, _02075D14 ; =0x00000B24
ldrb r0, [r4, r0]
bl sub_0201BD70
cmp r0, #0x0
beq _02075CF8
mov r0, #0x5
pop {r4, pc}
_02075CF8:
ldr r0, _02075D18 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _02075D10
ldr r0, _02075D1C ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
mov r0, #0x1b
pop {r4, pc}
_02075D10:
mov r0, #0x5
pop {r4, pc}
.balign 4
_02075D14: .word 0x00000B24
_02075D18: .word gSystem
_02075D1C: .word 0x000005A4
thumb_func_start sub_02075D20
sub_02075D20: ; 0x02075D20
push {r3-r5, lr}
sub sp, #0x8
ldr r1, _02075DA8 ; =0x000005A4
add r5, r0, #0x0
ldr r4, [r5, r1]
bl sub_020772CC
str r0, [sp, #0x0]
mov r0, #0xc
str r0, [sp, #0x4]
ldr r2, _02075DAC ; =0x00000B25
ldrh r1, [r4, #0x24]
ldrb r2, [r5, r2]
ldr r0, [r4, #0x0]
mov r3, #0x0
bl UseItemOnMonInParty
ldr r1, _02075DAC ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_0207008C
ldr r1, _02075DAC ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072D1C
ldr r1, _02075DAC ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072DDC
ldr r0, _02075DAC ; =0x00000B25
mov r2, #0x2c
ldrb r1, [r5, r0]
add r0, r5, #0x0
mul r2, r1
add r3, r5, r2
ldr r2, _02075DB0 ; =0x0000070E
ldrh r2, [r3, r2]
lsl r2, r2, #0x14
lsr r2, r2, #0x14
lsl r2, r2, #0x18
lsr r2, r2, #0x18
bl sub_02073A4C
ldr r1, _02075DA8 ; =0x000005A4
add r0, r5, #0x0
ldr r1, [r5, r1]
mov r2, #0x0
ldrh r1, [r1, #0x24]
bl sub_020757F4
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02075DB4 ; =0x000005EC
bl PlaySE
ldr r1, _02075DB8 ; =sub_02075CE4
ldr r0, _02075DBC ; =0x00000B14
str r1, [r5, r0]
mov r0, #0x5
add sp, #0x8
pop {r3-r5, pc}
.balign 4
_02075DA8: .word 0x000005A4
_02075DAC: .word 0x00000B25
_02075DB0: .word 0x0000070E
_02075DB4: .word 0x000005EC
_02075DB8: .word sub_02075CE4
_02075DBC: .word 0x00000B14
thumb_func_start sub_02075DC0
sub_02075DC0: ; 0x02075DC0
push {r3-r7, lr}
sub sp, #0x20
add r5, r0, #0x0
ldr r0, _02075F4C ; =0x000005A4
ldr r1, _02075F50 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
mov r1, #0xd
mov r2, #0x0
add r4, r0, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x18]
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, _02075F4C ; =0x000005A4
ldr r6, [r5, r0]
add r0, r5, #0x0
bl sub_020772CC
str r0, [sp, #0x0]
mov r0, #0xc
str r0, [sp, #0x4]
ldr r2, _02075F50 ; =0x00000B25
ldrh r1, [r6, #0x24]
ldrb r2, [r5, r2]
ldr r0, [r6, #0x0]
mov r3, #0x0
bl UseItemOnMonInParty
ldr r1, _02075F50 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_0207008C
ldr r1, _02075F50 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072D1C
ldr r1, _02075F50 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072DDC
ldr r0, _02075F50 ; =0x00000B25
mov r2, #0x2c
ldrb r1, [r5, r0]
add r0, r5, #0x0
mul r2, r1
add r3, r5, r2
ldr r2, _02075F54 ; =0x0000070E
ldrh r2, [r3, r2]
lsl r2, r2, #0x14
lsr r2, r2, #0x14
lsl r2, r2, #0x18
lsr r2, r2, #0x18
bl sub_02073A4C
add r0, r4, #0x0
mov r1, #0xd
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x1c]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x18]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x14]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x10]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0xc]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x8]
cmp r1, r0
beq _02075F26
_02075EFA:
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
bl GetMonData
cmp r7, r0
ldr r1, _02075F4C ; =0x000005A4
beq _02075F18
ldr r1, [r5, r1]
add r0, r5, #0x0
ldrh r1, [r1, #0x24]
mov r2, #0x0
bl sub_020757F4
b _02075F34
_02075F18:
ldr r1, [r5, r1]
add r0, r5, #0x0
ldrh r1, [r1, #0x24]
mov r2, #0x1
bl sub_020757F4
b _02075F34
_02075F26:
ldr r1, _02075F4C ; =0x000005A4
add r0, r5, #0x0
ldr r1, [r5, r1]
mov r2, #0x2
ldrh r1, [r1, #0x24]
bl sub_020757F4
_02075F34:
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r1, _02075F58 ; =sub_02075CE4
ldr r0, _02075F5C ; =0x00000B14
str r1, [r5, r0]
mov r0, #0x5
add sp, #0x20
pop {r3-r7, pc}
.balign 4
_02075F4C: .word 0x000005A4
_02075F50: .word 0x00000B25
_02075F54: .word 0x0000070E
_02075F58: .word sub_02075CE4
_02075F5C: .word 0x00000B14
thumb_func_start sub_02075F60
sub_02075F60: ; 0x02075F60
push {r4-r7, lr}
sub sp, #0xc
ldr r1, _02076080 ; =0x000005A4
add r5, r0, #0x0
ldr r4, [r5, r1]
bl sub_020772CC
str r0, [sp, #0x0]
mov r0, #0xc
str r0, [sp, #0x4]
ldr r2, _02076084 ; =0x00000B25
ldrh r1, [r4, #0x24]
ldrb r2, [r5, r2]
ldr r0, [r4, #0x0]
mov r3, #0x0
bl UseItemOnMonInParty
ldr r0, _02076080 ; =0x000005A4
ldr r1, _02076084 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
mov r1, #0xa2
mov r2, #0x0
str r0, [sp, #0x8]
bl GetMonData
add r4, r0, #0x0
ldr r0, _02076084 ; =0x00000B25
ldrb r1, [r5, r0]
mov r0, #0x2c
mul r0, r1
add r1, r5, r0
ldr r0, _02076088 ; =0x00000706
ldrh r1, [r1, r0]
cmp r1, #0x0
bne _02075FBC
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x46
bl NewString_ReadMsgData
add r7, r0, #0x0
b _02075FDA
_02075FBC:
cmp r4, r1
bne _02075FCE
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x47
bl NewString_ReadMsgData
add r7, r0, #0x0
b _02075FDA
_02075FCE:
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x40
bl NewString_ReadMsgData
add r7, r0, #0x0
_02075FDA:
ldr r0, [sp, #0x8]
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r0, #0x0
mov r3, #0x6a
str r0, [sp, #0x0]
mov r1, #0x1
ldr r2, _02076084 ; =0x00000B25
str r1, [sp, #0x4]
ldrb r6, [r5, r2]
mov r2, #0x2c
lsl r3, r3, #0x4
mul r2, r6
ldr r0, [r5, r3]
add r2, r5, r2
add r3, #0x66
ldrh r2, [r2, r3]
mov r3, #0x3
sub r2, r4, r2
bl BufferIntegerAsString
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r7, #0x0
bl StringExpandPlaceholders
add r0, r7, #0x0
bl String_Delete
ldr r0, [sp, #0x8]
bl sub_0207C2D4
add r4, r0, #0x0
ldr r1, _02076084 ; =0x00000B25
lsl r2, r4, #0x18
ldrb r1, [r5, r1]
add r0, r5, #0x0
lsr r2, r2, #0x18
bl sub_02073A4C
cmp r4, #0x7
bne _02076062
ldr r1, _02076084 ; =0x00000B25
ldr r0, _0207608C ; =0x0000070E
ldrb r3, [r5, r1]
add r2, r5, r0
mov r0, #0x2c
mul r0, r3
ldrh r4, [r2, r0]
ldr r3, _02076090 ; =0xFFFFF000
and r4, r3
mov r3, #0x7
orr r3, r4
strh r3, [r2, r0]
ldrb r1, [r5, r1]
add r0, r5, #0x0
bl sub_02072B20
_02076062:
ldr r1, _02076084 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_020709FC
ldr r1, _02076094 ; =sub_020760A0
ldr r0, _02076098 ; =0x00000B14
str r1, [r5, r0]
ldr r0, _0207609C ; =0x000005EC
bl PlaySE
mov r0, #0x5
add sp, #0xc
pop {r4-r7, pc}
nop
_02076080: .word 0x000005A4
_02076084: .word 0x00000B25
_02076088: .word 0x00000706
_0207608C: .word 0x0000070E
_02076090: .word 0xFFFFF000
_02076094: .word sub_020760A0
_02076098: .word 0x00000B14
_0207609C: .word 0x000005EC
thumb_func_start sub_020760A0
sub_020760A0: ; 0x020760A0
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076130 ; =0x000005A4
ldr r1, _02076134 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
ldr r1, _02076134 ; =0x00000B25
add r4, r0, #0x0
ldrb r2, [r5, r1]
ldr r0, _02076138 ; =0x00000706
mov r1, #0x2c
add r3, r2, #0x0
add r0, r5, r0
mul r3, r1
ldrh r1, [r0, r3]
cmp r4, r1
beq _020760D4
add r1, r1, #0x1
strh r1, [r0, r3]
_020760D4:
ldr r1, _02076134 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072BBC
ldr r1, _02076134 ; =0x00000B25
add r0, r5, #0x4
ldrb r2, [r5, r1]
lsl r1, r2, #0x2
add r1, r2, r1
add r1, r1, #0x3
lsl r1, r1, #0x4
add r0, r0, r1
mov r1, #0x0
bl FillWindowPixelBuffer
ldr r1, _02076134 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072B7C
ldr r1, _02076134 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072C28
ldr r0, _02076134 ; =0x00000B25
mov r1, #0x2c
ldrb r0, [r5, r0]
add r2, r0, #0x0
mul r2, r1
ldr r0, _02076138 ; =0x00000706
add r2, r5, r2
ldrh r0, [r2, r0]
cmp r4, r0
bne _0207612C
add r0, r5, #0x0
sub r1, #0x2d
mov r2, #0x1
bl sub_020731E8
ldr r1, _0207613C ; =sub_02075CE4
ldr r0, _02076140 ; =0x00000B14
str r1, [r5, r0]
_0207612C:
mov r0, #0x5
pop {r3-r5, pc}
.balign 4
_02076130: .word 0x000005A4
_02076134: .word 0x00000B25
_02076138: .word 0x00000706
_0207613C: .word sub_02075CE4
_02076140: .word 0x00000B14
thumb_func_start sub_02076144
sub_02076144: ; 0x02076144
push {r3, lr}
mov r1, #0x18
mov r2, #0xc
bl GetItemAttr
cmp r0, #0x0
beq _02076156
mov r0, #0x1
pop {r3, pc}
_02076156:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start sub_0207615C
sub_0207615C: ; 0x0207615C
push {r3-r6}
cmp r1, #0x6
blo _02076168
mov r0, #0xff
pop {r3-r6}
bx lr
_02076168:
bhs _02076194
ldr r2, _0207619C ; =0x00000706
mov r3, #0x2c
add r4, r2, #0x0
add r4, #0x23
_02076172:
add r5, r1, #0x0
mul r5, r3
add r6, r0, r5
ldrb r5, [r6, r4]
cmp r5, #0x0
beq _0207618A
ldrh r5, [r6, r2]
cmp r5, #0x0
bne _0207618A
add r0, r1, #0x0
pop {r3-r6}
bx lr
_0207618A:
add r1, r1, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
cmp r1, #0x6
blo _02076172
_02076194:
mov r0, #0xff
pop {r3-r6}
bx lr
nop
_0207619C: .word 0x00000706
thumb_func_start sub_020761A0
sub_020761A0: ; 0x020761A0
push {r3-r7, lr}
ldr r1, _020763DC ; =0x00000B22
add r4, r0, #0x0
ldrb r2, [r4, r1]
cmp r2, #0x3
bls _020761AE
b _020763D6
_020761AE:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #0x6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_020761BA: ; jump table (using 16-bit offset)
.short _020761C2 - _020761BA - 2; case 0
.short _02076212 - _020761BA - 2; case 1
.short _020762DC - _020761BA - 2; case 2
.short _02076360 - _020761BA - 2; case 3
_020761C2:
mov r1, #0x0
bl sub_0207615C
ldr r1, _020763E0 ; =0x00000B25
strb r0, [r4, r1]
ldrb r0, [r4, r1]
cmp r0, #0xff
bne _02076206
ldr r2, _020763E4 ; =0x0000069C
mov r1, #0x69
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl ReadMsgDataIntoString
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r1, _020763E8 ; =sub_02075CE4
ldr r0, _020763EC ; =0x00000B14
mov r2, #0x1
str r1, [r4, r0]
add r0, r4, #0x0
mov r1, #0x0
bl sub_02073CB4
ldr r0, _020763E0 ; =0x00000B25
mov r1, #0x7
strb r1, [r4, r0]
mov r0, #0x5
pop {r3-r7, pc}
_02076206:
cmp r0, #0x0
beq _02076212
add r0, r4, #0x0
mov r1, #0x0
bl sub_020709FC
_02076212:
ldr r0, _020763F0 ; =0x000005A4
ldr r1, _020763E0 ; =0x00000B25
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r5, r0, #0x0
add r0, r4, #0x0
bl sub_020772CC
add r3, r0, #0x0
mov r0, #0xc
str r0, [sp, #0x0]
ldr r1, _020763F0 ; =0x000005A4
add r0, r5, #0x0
ldr r1, [r4, r1]
mov r2, #0x0
ldrh r1, [r1, #0x24]
bl UseItemOnPokemon
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
ldr r0, _020763E4 ; =0x0000069C
mov r1, #0x46
ldr r0, [r4, r0]
bl NewString_ReadMsgData
add r6, r0, #0x0
add r0, r5, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r6, #0x0
bl StringExpandPlaceholders
add r0, r6, #0x0
bl String_Delete
ldr r7, _020763E0 ; =0x00000B25
ldr r3, _020763F4 ; =0x0000070E
ldrb r5, [r4, r7]
mov r2, #0x2c
add r1, r4, r3
add r0, r5, #0x0
mul r0, r2
ldrh r6, [r1, r0]
ldr r5, _020763F8 ; =0xFFFFF000
and r6, r5
mov r5, #0x7
orr r5, r6
strh r5, [r1, r0]
ldrb r1, [r4, r7]
add r0, r4, #0x0
mul r2, r1
add r2, r4, r2
ldrh r2, [r2, r3]
lsl r2, r2, #0x14
lsr r2, r2, #0x14
lsl r2, r2, #0x18
lsr r2, r2, #0x18
bl sub_02073A4C
add r1, r7, #0x0
ldrb r1, [r4, r1]
add r0, r4, #0x0
bl sub_02072B20
add r1, r7, #0x0
ldrb r1, [r4, r1]
add r0, r4, #0x0
bl sub_020709FC
add r1, r7, #0x0
ldrb r1, [r4, r1]
add r0, r4, #0x0
mov r2, #0x1
bl sub_02073CB4
ldr r0, _020763FC ; =0x000005EC
bl PlaySE
sub r0, r7, #0x3
ldrb r1, [r4, r0]
add r1, r1, #0x1
strb r1, [r4, r0]
b _020763D6
_020762DC:
ldr r0, _020763F0 ; =0x000005A4
add r1, r1, #0x3
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
ldr r2, _020763E0 ; =0x00000B25
add r5, r0, #0x0
ldr r0, _02076400 ; =0x00000706
ldrb r3, [r4, r2]
add r1, r4, r0
mov r0, #0x2c
mul r0, r3
ldrh r3, [r1, r0]
add r3, r3, #0x1
strh r3, [r1, r0]
ldrb r1, [r4, r2]
add r0, r4, #0x0
bl sub_02072BBC
ldr r1, _020763E0 ; =0x00000B25
add r0, r4, #0x4
ldrb r2, [r4, r1]
lsl r1, r2, #0x2
add r1, r2, r1
add r1, r1, #0x3
lsl r1, r1, #0x4
add r0, r0, r1
mov r1, #0x0
bl FillWindowPixelBuffer
ldr r1, _020763E0 ; =0x00000B25
add r0, r4, #0x0
ldrb r1, [r4, r1]
bl sub_02072B7C
ldr r1, _020763E0 ; =0x00000B25
add r0, r4, #0x0
ldrb r1, [r4, r1]
bl sub_02072C28
ldr r0, _020763E0 ; =0x00000B25
mov r1, #0x2c
ldrb r0, [r4, r0]
add r2, r0, #0x0
mul r2, r1
ldr r0, _02076400 ; =0x00000706
add r2, r4, r2
ldrh r0, [r2, r0]
cmp r5, r0
bne _020763D6
add r0, r4, #0x0
sub r1, #0x2d
mov r2, #0x1
bl sub_020731E8
ldr r0, _020763DC ; =0x00000B22
ldrb r1, [r4, r0]
add r1, r1, #0x1
strb r1, [r4, r0]
b _020763D6
_02076360:
add r0, r1, #0x2
ldrb r0, [r4, r0]
bl sub_0201BD70
cmp r0, #0x0
bne _020763D6
ldr r0, _02076404 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _020763D6
ldr r0, _02076408 ; =0x000005DC
bl PlaySE
ldr r0, _020763E0 ; =0x00000B25
ldrb r5, [r4, r0]
add r0, r4, #0x0
add r1, r5, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl sub_0207615C
ldr r1, _020763E0 ; =0x00000B25
strb r0, [r4, r1]
ldrb r0, [r4, r1]
cmp r0, #0xff
beq _020763B2
mov r0, #0x89
lsl r0, r0, #0x2
add r0, r4, r0
mov r1, #0x0
bl ClearFrameAndWindow2
add r0, r4, #0x0
add r1, r5, #0x0
bl sub_020709FC
ldr r0, _020763DC ; =0x00000B22
mov r1, #0x1
strb r1, [r4, r0]
b _020763D6
_020763B2:
ldr r0, _020763F0 ; =0x000005A4
mov r2, #0x1
ldr r1, [r4, r0]
mov r3, #0xc
ldr r0, [r1, #0x4]
ldrh r1, [r1, #0x24]
bl Bag_TakeItem
ldr r0, _020763F0 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _020763E0 ; =0x00000B25
mov r1, #0x7
strb r1, [r4, r0]
mov r0, #0x1b
pop {r3-r7, pc}
_020763D6:
mov r0, #0x7
pop {r3-r7, pc}
nop
_020763DC: .word 0x00000B22
_020763E0: .word 0x00000B25
_020763E4: .word 0x0000069C
_020763E8: .word sub_02075CE4
_020763EC: .word 0x00000B14
_020763F0: .word 0x000005A4
_020763F4: .word 0x0000070E
_020763F8: .word 0xFFFFF000
_020763FC: .word 0x000005EC
_02076400: .word 0x00000706
_02076404: .word gSystem
_02076408: .word 0x000005DC
thumb_func_start sub_0207640C
sub_0207640C: ; 0x0207640C
push {r3-r7, lr}
sub sp, #0x8
add r5, r0, #0x0
ldr r0, _020765B0 ; =0x000005A4
ldr r1, _020765B4 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
mov r1, #0xa3
mov r2, #0x0
add r4, r0, #0x0
bl GetMonData
ldr r1, _020765B8 ; =0x00000B28
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa4
bl GetMonData
ldr r1, _020765BC ; =0x00000B2A
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa5
bl GetMonData
ldr r1, _020765C0 ; =0x00000B2C
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa7
bl GetMonData
ldr r1, _020765C4 ; =0x00000B2E
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa8
bl GetMonData
mov r1, #0xb3
lsl r1, r1, #0x4
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa6
mov r2, #0x0
bl GetMonData
ldr r1, _020765C8 ; =0x00000B32
strh r0, [r5, r1]
ldr r0, _020765B0 ; =0x000005A4
ldr r6, [r5, r0]
add r0, r5, #0x0
bl sub_020772CC
str r0, [sp, #0x0]
mov r0, #0xc
str r0, [sp, #0x4]
ldr r2, _020765B4 ; =0x00000B25
ldrh r1, [r6, #0x24]
ldrb r2, [r5, r2]
ldr r0, [r6, #0x0]
mov r3, #0x0
bl UseItemOnMonInParty
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
mul r1, r2
add r2, r5, r1
ldr r1, _020765CC ; =0x0000070A
strh r0, [r2, r1]
add r0, r4, #0x0
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
mul r1, r2
add r2, r5, r1
ldr r1, _020765D0 ; =0x00000706
strh r0, [r2, r1]
add r0, r4, #0x0
mov r1, #0xa3
mov r2, #0x0
bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
mul r1, r2
add r2, r5, r1
ldr r1, _020765D4 ; =0x00000708
strh r0, [r2, r1]
sub r1, #0x6c
ldr r0, [r5, r1]
mov r1, #0xc1
bl NewString_ReadMsgData
add r7, r0, #0x0
add r0, r4, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r0, #0x0
mov r3, #0x6a
str r0, [sp, #0x0]
mov r1, #0x1
ldr r2, _020765B4 ; =0x00000B25
str r1, [sp, #0x4]
ldrb r6, [r5, r2]
mov r2, #0x2c
lsl r3, r3, #0x4
mul r2, r6
ldr r0, [r5, r3]
add r2, r5, r2
add r3, #0x6a
ldrh r2, [r2, r3]
mov r3, #0x3
bl BufferIntegerAsString
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r7, #0x0
bl StringExpandPlaceholders
add r0, r7, #0x0
bl String_Delete
add r0, r4, #0x0
bl sub_0207C2D4
add r4, r0, #0x0
ldr r1, _020765B4 ; =0x00000B25
lsl r2, r4, #0x18
ldrb r1, [r5, r1]
add r0, r5, #0x0
lsr r2, r2, #0x18
bl sub_02073A4C
cmp r4, #0x7
bne _0207656E
ldr r1, _020765B4 ; =0x00000B25
ldr r0, _020765D8 ; =0x0000070E
ldrb r3, [r5, r1]
add r2, r5, r0
mov r0, #0x2c
mul r0, r3
ldrh r4, [r2, r0]
ldr r3, _020765DC ; =0xFFFFF000
and r4, r3
mov r3, #0x7
orr r3, r4
strh r3, [r2, r0]
ldrb r1, [r5, r1]
add r0, r5, #0x0
bl sub_02072B20
_0207656E:
ldr r1, _020765B4 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_020709FC
ldr r0, _020765E0 ; =sub_020760A0
ldr r1, _020765E4 ; =0x00000B14
str r0, [r5, r1]
add r1, #0x11
ldrb r1, [r5, r1]
add r0, r5, #0x0
bl sub_02072D1C
ldr r1, _020765B4 ; =0x00000B25
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_02072DDC
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r1, _020765E8 ; =sub_020765EC
ldr r0, _020765E4 ; =0x00000B14
str r1, [r5, r0]
mov r1, #0x0
add r0, #0x13
strb r1, [r5, r0]
mov r0, #0x5
add sp, #0x8
pop {r3-r7, pc}
.balign 4
_020765B0: .word 0x000005A4
_020765B4: .word 0x00000B25
_020765B8: .word 0x00000B28
_020765BC: .word 0x00000B2A
_020765C0: .word 0x00000B2C
_020765C4: .word 0x00000B2E
_020765C8: .word 0x00000B32
_020765CC: .word 0x0000070A
_020765D0: .word 0x00000706
_020765D4: .word 0x00000708
_020765D8: .word 0x0000070E
_020765DC: .word 0xFFFFF000
_020765E0: .word sub_020760A0
_020765E4: .word 0x00000B14
_020765E8: .word sub_020765EC
thumb_func_start sub_020765EC
sub_020765EC: ; 0x020765EC
push {r3-r5, lr}
ldr r1, _0207686C ; =0x00000B27
add r4, r0, #0x0
ldrb r0, [r4, r1]
cmp r0, #0x6
bhi _020766A8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02076604: ; jump table (using 16-bit offset)
.short _02076612 - _02076604 - 2; case 0
.short _0207663C - _02076604 - 2; case 1
.short _0207665A - _02076604 - 2; case 2
.short _02076680 - _02076604 - 2; case 3
.short _02076780 - _02076604 - 2; case 4
.short _020767A4 - _02076604 - 2; case 5
.short _02076814 - _02076604 - 2; case 6
_02076612:
sub r0, r1, #0x3
ldrb r0, [r4, r0]
bl sub_0201BD70
cmp r0, #0x0
bne _020766A8
ldr r0, _02076870 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _020766A8
ldr r0, _02076874 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_020734C0
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x1
strb r1, [r4, r0]
b _02076868
_0207663C:
ldr r0, _02076870 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _020766A8
ldr r0, _02076874 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207363C
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x2
strb r1, [r4, r0]
b _02076868
_0207665A:
ldr r0, _02076870 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _020766A8
ldr r0, _02076874 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_020736F4
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x3
strb r1, [r4, r0]
ldr r0, _02076878 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
str r1, [r0, #0x34]
b _02076868
_02076680:
ldr r0, _02076878 ; =0x000005A4
sub r1, r1, #0x2
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
ldr r1, _02076878 ; =0x000005A4
add r5, r0, #0x0
ldr r2, [r4, r1]
add r1, r2, #0x0
add r1, #0x34
add r2, #0x26
bl sub_02069818
cmp r0, #0x0
beq _020766B2
ldr r1, _0207687C ; =0x0000FFFE
cmp r0, r1
bne _020766AA
_020766A8:
b _02076868
_020766AA:
add r1, r1, #0x1
cmp r0, r1
beq _020766BA
b _02076724
_020766B2:
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x6
strb r1, [r4, r0]
b _02076868
_020766BA:
add r0, r5, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r2, #0x6a
lsl r2, r2, #0x4
ldr r0, [r4, r2]
sub r2, #0xfc
ldr r2, [r4, r2]
mov r1, #0x1
ldrh r2, [r2, #0x26]
bl BufferMoveName
ldr r0, _02076880 ; =0x0000069C
mov r1, #0x34
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076884 ; =sub_02076950
ldr r1, _02076888 ; =0x00000B18
ldr r2, _0207688C ; =sub_020769A4
str r0, [r4, r1]
add r0, r1, #0x4
str r2, [r4, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r4, r1]
mov r0, #0x14
pop {r3-r5, pc}
_02076724:
add r0, r5, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r2, #0x6a
lsl r2, r2, #0x4
ldr r0, [r4, r2]
sub r2, #0xfc
ldr r2, [r4, r2]
mov r1, #0x1
ldrh r2, [r2, #0x26]
bl BufferMoveName
ldr r0, _02076880 ; =0x0000069C
mov r1, #0xc2
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x4
strb r1, [r4, r0]
b _02076868
_02076780:
sub r0, r1, #0x3
ldrb r0, [r4, r0]
bl sub_0201BD70
cmp r0, #0x0
bne _02076868
ldr r0, _02076870 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _02076868
ldr r0, _02076874 ; =0x000005DC
bl PlaySE
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x3
strb r1, [r4, r0]
b _02076868
_020767A4:
ldr r0, _02076870 ; =gSystem
ldr r2, [r0, #0x48]
mov r0, #0x3
tst r0, r2
beq _02076868
ldr r0, _02076878 ; =0x000005A4
sub r1, r1, #0x2
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
ldr r2, _02076878 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r4, r2]
add r0, r4, #0x0
add r2, #0x28
ldrb r2, [r2, #0x0]
bl sub_02076F2C
ldr r0, _02076880 ; =0x0000069C
mov r1, #0x3d
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r2, #0x6a
lsl r2, r2, #0x4
add r5, r0, #0x0
ldr r0, [r4, r2]
sub r2, #0xfc
ldr r2, [r4, r2]
mov r1, #0x1
ldrh r2, [r2, #0x26]
bl BufferMoveName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _0207686C ; =0x00000B27
mov r1, #0x4
strb r1, [r4, r0]
b _02076868
_02076814:
ldr r0, _02076878 ; =0x000005A4
sub r1, r1, #0x2
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r5, r0, #0x0
ldr r0, _02076878 ; =0x000005A4
ldr r0, [r4, r0]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
bl MapHeader_GetMapEvolutionMethod
add r3, r0, #0x0
ldr r0, _02076878 ; =0x000005A4
lsl r3, r3, #0x10
ldr r1, [r4, r0]
mov r2, #0x0
add r0, r1, #0x0
add r0, #0x3c
str r0, [sp, #0x0]
ldr r0, [r1, #0x0]
add r1, r5, #0x0
lsr r3, r3, #0x10
bl GetMonEvolution
ldr r1, _02076878 ; =0x000005A4
ldr r2, [r4, r1]
strh r0, [r2, #0x38]
ldr r1, [r4, r1]
ldrh r0, [r1, #0x38]
cmp r0, #0x0
beq _0207685E
mov r0, #0x9
b _02076860
_0207685E:
mov r0, #0x0
_02076860:
add r1, #0x23
strb r0, [r1, #0x0]
mov r0, #0x1b
pop {r3-r5, pc}
_02076868:
mov r0, #0x5
pop {r3-r5, pc}
.balign 4
_0207686C: .word 0x00000B27
_02076870: .word gSystem
_02076874: .word 0x000005DC
_02076878: .word 0x000005A4
_0207687C: .word 0x0000FFFE
_02076880: .word 0x0000069C
_02076884: .word sub_02076950
_02076888: .word 0x00000B18
_0207688C: .word sub_020769A4
thumb_func_start sub_02076890
sub_02076890: ; 0x02076890
push {r3-r5, lr}
add r4, r0, #0x0
ldr r0, _0207693C ; =sub_020765EC
ldr r1, _02076940 ; =0x00000B14
mov r2, #0x3
str r0, [r4, r1]
add r0, r1, #0x0
add r0, #0x13
strb r2, [r4, r0]
ldr r0, _02076944 ; =0x000005A4
add r1, #0x11
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r5, r0, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r0, _02076944 ; =0x000005A4
ldr r2, [r4, r0]
add r1, r2, #0x0
add r1, #0x28
ldrb r1, [r1, #0x0]
cmp r1, #0x4
bne _020768E6
add r0, #0xfc
ldrh r2, [r2, #0x26]
ldr r0, [r4, r0]
mov r1, #0x1
bl BufferMoveName
add r0, r4, #0x0
bl sub_020769A4
pop {r3-r5, pc}
_020768E6:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
bl BufferMoveName
ldr r0, _02076948 ; =0x0000069C
mov r1, #0x3c
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _0207694C ; =0x00000B22
mov r1, #0x5
strb r1, [r4, r0]
add r0, r0, #0x5
strb r1, [r4, r0]
mov r0, #0x14
pop {r3-r5, pc}
nop
_0207693C: .word sub_020765EC
_02076940: .word 0x00000B14
_02076944: .word 0x000005A4
_02076948: .word 0x0000069C
_0207694C: .word 0x00000B22
thumb_func_start sub_02076950
sub_02076950: ; 0x02076950
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076998 ; =0x0000069C
mov r1, #0x3b
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _0207699C ; =0x000005A4
mov r1, #0x5
ldr r0, [r5, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _020769A0 ; =0x00000B22
mov r1, #0x15
strb r1, [r5, r0]
mov r0, #0x14
pop {r3-r5, pc}
nop
_02076998: .word 0x0000069C
_0207699C: .word 0x000005A4
_020769A0: .word 0x00000B22
thumb_func_start sub_020769A4
sub_020769A4: ; 0x020769A4
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _020769EC ; =0x0000069C
mov r1, #0x37
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _020769F0 ; =sub_020769FC
ldr r1, _020769F4 ; =0x00000B18
ldr r2, _020769F8 ; =sub_02076A48
str r0, [r5, r1]
add r0, r1, #0x4
str r2, [r5, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r5, r1]
mov r0, #0x14
pop {r3-r5, pc}
.balign 4
_020769EC: .word 0x0000069C
_020769F0: .word sub_020769FC
_020769F4: .word 0x00000B18
_020769F8: .word sub_02076A48
thumb_func_start sub_020769FC
sub_020769FC: ; 0x020769FC
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076A40 ; =0x0000069C
mov r1, #0x3a
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076A44 ; =0x00000B22
mov r1, #0x5
strb r1, [r5, r0]
mov r1, #0x4
add r0, r0, #0x5
strb r1, [r5, r0]
mov r0, #0x14
pop {r3-r5, pc}
nop
_02076A40: .word 0x0000069C
_02076A44: .word 0x00000B22
thumb_func_start sub_02076A48
sub_02076A48: ; 0x02076A48
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076A90 ; =0x0000069C
mov r1, #0x34
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076A94 ; =sub_02076950
ldr r1, _02076A98 ; =0x00000B18
ldr r2, _02076A9C ; =sub_020769A4
str r0, [r5, r1]
add r0, r1, #0x4
str r2, [r5, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r5, r1]
mov r0, #0x14
pop {r3-r5, pc}
.balign 4
_02076A90: .word 0x0000069C
_02076A94: .word sub_02076950
_02076A98: .word 0x00000B18
_02076A9C: .word sub_020769A4
thumb_func_start sub_02076AA0
sub_02076AA0: ; 0x02076AA0
push {r3-r7, lr}
ldr r7, _02076AF4 ; =0x000005A4
add r5, r0, #0x0
add r6, r1, #0x0
mov r4, #0x0
_02076AAA:
add r1, r4, #0x0
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [r5, r7]
ldrh r1, [r0, #0x26]
cmp r2, r1
bne _02076AC6
mov r0, #0xfd
pop {r3-r7, pc}
_02076AC6:
cmp r2, #0x0
beq _02076AD4
add r1, r4, #0x1
lsl r1, r1, #0x18
lsr r4, r1, #0x18
cmp r4, #0x4
blo _02076AAA
_02076AD4:
ldrh r0, [r0, #0x24]
bl ItemToTMHMId
add r1, r0, #0x0
add r0, r6, #0x0
bl sub_0206A13C
cmp r0, #0x0
bne _02076AEA
mov r0, #0xff
pop {r3-r7, pc}
_02076AEA:
cmp r4, #0x4
bne _02076AF0
mov r4, #0xfe
_02076AF0:
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
_02076AF4: .word 0x000005A4
thumb_func_start sub_02076AF8
sub_02076AF8: ; 0x02076AF8
push {r4-r6, lr}
add r4, r0, #0x0
ldr r0, _02076C78 ; =0x000005A4
ldr r1, _02076C7C ; =0x00000B25
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
bl sub_02076AA0
add r5, r0, #0x0
add r0, r6, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
mov r2, #0x6a
lsl r2, r2, #0x4
ldr r0, [r4, r2]
sub r2, #0xfc
ldr r2, [r4, r2]
mov r1, #0x1
ldrh r2, [r2, #0x26]
bl BufferMoveName
cmp r5, #0xfd
bhi _02076B5A
bhs _02076BB2
cmp r5, #0x3
bhi _02076B60
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02076B52: ; jump table (using 16-bit offset)
.short _02076B68 - _02076B52 - 2; case 0
.short _02076B68 - _02076B52 - 2; case 1
.short _02076B68 - _02076B52 - 2; case 2
.short _02076B68 - _02076B52 - 2; case 3
_02076B5A:
cmp r5, #0xfe
bhi _02076B62
beq _02076BF2
_02076B60:
b _02076C72
_02076B62:
cmp r5, #0xff
beq _02076C34
b _02076C72
_02076B68:
add r0, r4, #0x0
add r1, r6, #0x0
add r2, r5, #0x0
bl sub_02076F2C
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3d
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076C78 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076C84 ; =0x00000B22
mov r1, #0x15
strb r1, [r4, r0]
b _02076C72
_02076BB2:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3f
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076C78 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076C84 ; =0x00000B22
mov r1, #0x15
strb r1, [r4, r0]
b _02076C72
_02076BF2:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x34
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076C88 ; =sub_02076DD4
ldr r1, _02076C8C ; =0x00000B18
ldr r2, _02076C90 ; =sub_02076E28
str r0, [r4, r1]
add r0, r1, #0x4
str r2, [r4, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r4, r1]
b _02076C72
_02076C34:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3e
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076C78 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076C84 ; =0x00000B22
mov r1, #0x15
strb r1, [r4, r0]
_02076C72:
mov r0, #0x14
pop {r4-r6, pc}
nop
_02076C78: .word 0x000005A4
_02076C7C: .word 0x00000B25
_02076C80: .word 0x0000069C
_02076C84: .word 0x00000B22
_02076C88: .word sub_02076DD4
_02076C8C: .word 0x00000B18
_02076C90: .word sub_02076E28
thumb_func_start sub_02076C94
sub_02076C94: ; 0x02076C94
push {r3-r5, lr}
add r4, r0, #0x0
ldr r0, _02076D2C ; =0x000005A4
ldr r1, _02076D30 ; =0x00000B25
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r5, r0, #0x0
bl sub_020690E4
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r0, _02076D2C ; =0x000005A4
ldr r2, [r4, r0]
add r1, r2, #0x0
add r1, #0x28
ldrb r1, [r1, #0x0]
cmp r1, #0x4
bne _02076CDC
add r0, #0xfc
ldrh r2, [r2, #0x26]
ldr r0, [r4, r0]
mov r1, #0x1
bl BufferMoveName
add r0, r4, #0x0
bl sub_02076E28
pop {r3-r5, pc}
_02076CDC:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
bl BufferMoveName
ldr r0, _02076D34 ; =0x0000069C
mov r1, #0x3c
ldr r0, [r4, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r4, r1]
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl String_Delete
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076D38 ; =0x00000B22
mov r1, #0x12
strb r1, [r4, r0]
mov r0, #0x14
pop {r3-r5, pc}
.balign 4
_02076D2C: .word 0x000005A4
_02076D30: .word 0x00000B25
_02076D34: .word 0x0000069C
_02076D38: .word 0x00000B22
thumb_func_start sub_02076D3C
sub_02076D3C: ; 0x02076D3C
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076DC0 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _02076DBC
ldr r0, _02076DC4 ; =0x000005A4
ldr r1, _02076DC8 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
ldr r2, _02076DC4 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r5, r2]
add r0, r5, #0x0
add r2, #0x28
ldrb r2, [r2, #0x0]
bl sub_02076F2C
ldr r0, _02076DCC ; =0x0000069C
mov r1, #0x3d
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r2, #0x6a
lsl r2, r2, #0x4
add r4, r0, #0x0
ldr r0, [r5, r2]
sub r2, #0xfc
ldr r2, [r5, r2]
mov r1, #0x1
ldrh r2, [r2, #0x26]
bl BufferMoveName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076DC4 ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076DD0 ; =0x00000B22
mov r1, #0x15
strb r1, [r5, r0]
mov r0, #0x14
pop {r3-r5, pc}
_02076DBC:
mov r0, #0x12
pop {r3-r5, pc}
.balign 4
_02076DC0: .word gSystem
_02076DC4: .word 0x000005A4
_02076DC8: .word 0x00000B25
_02076DCC: .word 0x0000069C
_02076DD0: .word 0x00000B22
thumb_func_start sub_02076DD4
sub_02076DD4: ; 0x02076DD4
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076E1C ; =0x0000069C
mov r1, #0x3b
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076E20 ; =0x000005A4
mov r1, #0x4
ldr r0, [r5, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076E24 ; =0x00000B22
mov r1, #0x15
strb r1, [r5, r0]
mov r0, #0x14
pop {r3-r5, pc}
nop
_02076E1C: .word 0x0000069C
_02076E20: .word 0x000005A4
_02076E24: .word 0x00000B22
thumb_func_start sub_02076E28
sub_02076E28: ; 0x02076E28
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076E70 ; =0x0000069C
mov r1, #0x37
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02076E74 ; =sub_02076E80
ldr r1, _02076E78 ; =0x00000B18
ldr r2, _02076E7C ; =sub_02076ED4
str r0, [r5, r1]
add r0, r1, #0x4
str r2, [r5, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r5, r1]
mov r0, #0x14
pop {r3-r5, pc}
.balign 4
_02076E70: .word 0x0000069C
_02076E74: .word sub_02076E80
_02076E78: .word 0x00000B18
_02076E7C: .word sub_02076ED4
thumb_func_start sub_02076E80
sub_02076E80: ; 0x02076E80
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076EC8 ; =0x0000069C
mov r1, #0x3a
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076ECC ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02076ED0 ; =0x00000B22
mov r1, #0x15
strb r1, [r5, r0]
mov r0, #0x14
pop {r3-r5, pc}
nop
_02076EC8: .word 0x0000069C
_02076ECC: .word 0x000005A4
_02076ED0: .word 0x00000B22
thumb_func_start sub_02076ED4
sub_02076ED4: ; 0x02076ED4
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02076F1C ; =0x0000069C
mov r1, #0x34
ldr r0, [r5, r0]
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl StringExpandPlaceholders
add r0, r4, #0x0
bl String_Delete
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x0
bl sub_020731E8
ldr r0, _02076F20 ; =sub_02076DD4
ldr r1, _02076F24 ; =0x00000B18
ldr r2, _02076F28 ; =sub_02076E28
str r0, [r5, r1]
add r0, r1, #0x4
str r2, [r5, r0]
mov r0, #0x16
add r1, #0xa
strb r0, [r5, r1]
mov r0, #0x14
pop {r3-r5, pc}
.balign 4
_02076F1C: .word 0x0000069C
_02076F20: .word sub_02076DD4
_02076F24: .word 0x00000B18
_02076F28: .word sub_02076E28
thumb_func_start sub_02076F2C
sub_02076F2C: ; 0x02076F2C
push {r3-r6, lr}
sub sp, #0x4
add r5, r0, #0x0
ldr r0, _02076FAC ; =0x000005A4
add r6, r2, #0x0
ldr r0, [r5, r0]
add r4, r1, #0x0
ldrh r0, [r0, #0x26]
add r1, r6, #0x0
add r1, #0x36
str r0, [sp, #0x0]
add r0, r4, #0x0
add r2, sp, #0x0
bl SetMonData
mov r0, #0x0
add r1, r6, #0x0
str r0, [sp, #0x0]
add r0, r4, #0x0
add r1, #0x3e
add r2, sp, #0x0
bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
ldrh r0, [r0, #0x26]
bl WazaGetMaxPp
add r6, #0x3a
str r0, [sp, #0x0]
add r0, r4, #0x0
add r1, r6, #0x0
add r2, sp, #0x0
bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
ldr r1, [r5, r0]
ldrh r0, [r1, #0x24]
cmp r0, #0x0
beq _02076FA8
ldrh r0, [r1, #0x26]
bl MoveIsHM
cmp r0, #0x0
bne _02076F98
ldr r0, _02076FAC ; =0x000005A4
mov r2, #0x1
ldr r1, [r5, r0]
mov r3, #0xc
ldr r0, [r1, #0x4]
ldrh r1, [r1, #0x24]
bl Bag_TakeItem
_02076F98:
add r0, r5, #0x0
bl sub_020772CC
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x4
bl MonApplyFriendshipMod
_02076FA8:
add sp, #0x4
pop {r3-r6, pc}
.balign 4
_02076FAC: .word 0x000005A4
thumb_func_start sub_02076FB0
sub_02076FB0: ; 0x02076FB0
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0207702C ; =0x000005A4
add r6, r1, #0x0
ldr r1, _02077030 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r1, r6, #0x0
add r1, #0x36
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, _02077034 ; =0x0000069C
add r1, r6, #0x0
ldr r0, [r5, r0]
add r1, #0xa2
bl NewString_ReadMsgData
add r7, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x0
add r2, r4, #0x0
bl BufferMoveName
mov r1, #0x6a
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, #0x8
ldr r1, [r5, r1]
add r2, r7, #0x0
bl StringExpandPlaceholders
add r0, r7, #0x0
bl String_Delete
cmp r4, #0x0
ldr r1, _02077038 ; =0x000006F8
bne _0207701C
ldr r0, [r5, r1]
sub r1, #0x50
mov r2, #0x2
ldr r1, [r5, r1]
mvn r2, r2
bl ListMenuItems_AddItem
mov r0, #0x0
pop {r3-r7, pc}
_0207701C:
ldr r0, [r5, r1]
sub r1, #0x50
ldr r1, [r5, r1]
add r2, r6, #0x0
bl ListMenuItems_AddItem
mov r0, #0x1
pop {r3-r7, pc}
.balign 4
_0207702C: .word 0x000005A4
_02077030: .word 0x00000B25
_02077034: .word 0x0000069C
_02077038: .word 0x000006F8
thumb_func_start sub_0207703C
sub_0207703C: ; 0x0207703C
push {r4-r5, lr}
sub sp, #0x14
add r4, r0, #0x0
cmp r1, #0x0
bne _02077050
mov r1, #0x29
mov r2, #0x1
bl sub_020731D4
b _02077058
_02077050:
mov r1, #0x28
mov r2, #0x1
bl sub_020731D4
_02077058:
mov r0, #0x4
mov r1, #0xc
bl ListMenuItems_New
ldr r1, _02077108 ; =0x000006F8
str r0, [r4, r1]
add r0, r4, #0x0
mov r1, #0x0
bl sub_02076FB0
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0x1
bl sub_02076FB0
add r0, r5, r0
lsl r0, r0, #0x18
lsr r5, r0, #0x18
add r0, r4, #0x0
mov r1, #0x2
bl sub_02076FB0
add r0, r5, r0
lsl r0, r0, #0x18
lsr r5, r0, #0x18
add r0, r4, #0x0
mov r1, #0x3
bl sub_02076FB0
add r0, r5, r0
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, _02077108 ; =0x000006F8
mov r2, #0x0
ldr r0, [r4, r0]
str r0, [sp, #0x8]
mov r0, #0x91
lsl r0, r0, #0x2
add r0, r4, r0
str r0, [sp, #0xc]
add r0, sp, #0x8
strb r2, [r0, #0x8]
mov r2, #0x1
strb r2, [r0, #0x9]
mov r2, #0x4
strb r2, [r0, #0xa]
ldrb r3, [r0, #0xb]
mov r2, #0xf
bic r3, r2
strb r3, [r0, #0xb]
ldrb r3, [r0, #0xb]
mov r2, #0x30
bic r3, r2
strb r3, [r0, #0xb]
cmp r1, #0x4
ldrb r2, [r0, #0xb]
bne _020770D6
mov r1, #0xc0
bic r2, r1
mov r1, #0x40
orr r1, r2
strb r1, [r0, #0xb]
b _020770DC
_020770D6:
mov r1, #0xc0
bic r2, r1
strb r2, [r0, #0xb]
_020770DC:
mov r0, #0x91
lsl r0, r0, #0x2
mov r1, #0x1
add r0, r4, r0
add r2, r1, #0x0
mov r3, #0xe
bl DrawFrameAndWindow1
mov r0, #0xc
str r0, [sp, #0x0]
mov r0, #0x2
mov r2, #0x0
str r0, [sp, #0x4]
add r0, sp, #0x8
mov r1, #0x8
add r3, r2, #0x0
bl sub_02001C14
ldr r1, _0207710C ; =0x000006FC
str r0, [r4, r1]
add sp, #0x14
pop {r4-r5, pc}
.balign 4
_02077108: .word 0x000006F8
_0207710C: .word 0x000006FC
thumb_func_start sub_02077110
sub_02077110: ; 0x02077110
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
ldr r0, _0207722C ; =0x000006FC
ldr r0, [r5, r0]
bl sub_02001C78
add r4, r0, #0x0
mov r0, #0x1
mvn r0, r0
cmp r4, r0
beq _02077130
add r0, r0, #0x1
cmp r4, r0
beq _02077226
b _0207716A
_02077130:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r5, r0
mov r1, #0x1
bl ClearFrameAndWindow2
mov r0, #0x91
lsl r0, r0, #0x2
add r0, r5, r0
mov r1, #0x1
bl ClearFrameAndWindow1
ldr r0, _0207722C ; =0x000006FC
mov r1, #0x0
ldr r0, [r5, r0]
bl sub_02001C5C
ldr r0, _02077230 ; =0x000006F8
ldr r0, [r5, r0]
bl ListMenuItems_Delete
add r0, r5, #0x0
mov r1, #0x20
mov r2, #0x1
bl sub_020731C0
add sp, #0x8
mov r0, #0x4
pop {r4-r6, pc}
_0207716A:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r5, r0
mov r1, #0x1
bl ClearFrameAndWindow2
mov r0, #0x91
lsl r0, r0, #0x2
add r0, r5, r0
mov r1, #0x1
bl ClearFrameAndWindow1
ldr r0, _0207722C ; =0x000006FC
mov r1, #0x0
ldr r0, [r5, r0]
bl sub_02001C5C
ldr r0, _02077230 ; =0x000006F8
ldr r0, [r5, r0]
bl ListMenuItems_Delete
ldr r0, _02077234 ; =0x000005A4
ldr r6, [r5, r0]
add r0, r5, #0x0
bl sub_020772CC
str r0, [sp, #0x0]
mov r0, #0xc
str r0, [sp, #0x4]
ldr r2, _02077238 ; =0x00000B25
lsl r3, r4, #0x18
ldrh r1, [r6, #0x24]
ldrb r2, [r5, r2]
ldr r0, [r6, #0x0]
lsr r3, r3, #0x18
bl UseItemOnMonInParty
cmp r0, #0x1
bne _020771F6
ldr r0, _02077234 ; =0x000005A4
ldr r1, _02077238 ; =0x00000B25
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
bl Party_GetMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
bl GetMonData
ldr r1, _02077234 ; =0x000005A4
add r2, r0, #0x0
ldr r1, [r5, r1]
add r0, r5, #0x0
ldrh r1, [r1, #0x24]
bl sub_020757F4
ldr r0, _02077234 ; =0x000005A4
mov r2, #0x1
ldr r1, [r5, r0]
mov r3, #0xc
ldr r0, [r1, #0x4]
ldrh r1, [r1, #0x24]
bl Bag_TakeItem
ldr r0, _0207723C ; =0x000005EC
bl PlaySE
b _02077204
_020771F6:
ldr r2, _02077240 ; =0x0000069C
mov r1, #0x69
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl ReadMsgDataIntoString
_02077204:
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _02077234 ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
add sp, #0x8
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _02077244 ; =0x00000B22
mov r1, #0x15
strb r1, [r5, r0]
mov r0, #0x14
pop {r4-r6, pc}
_02077226:
mov r0, #0x6
add sp, #0x8
pop {r4-r6, pc}
.balign 4
_0207722C: .word 0x000006FC
_02077230: .word 0x000006F8
_02077234: .word 0x000005A4
_02077238: .word 0x00000B25
_0207723C: .word 0x000005EC
_02077240: .word 0x0000069C
_02077244: .word 0x00000B22
thumb_func_start sub_02077248
sub_02077248: ; 0x02077248
push {r4, lr}
add r4, r0, #0x0
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
mov r1, #0x1
bl ClearFrameAndWindow2
ldr r0, _020772BC ; =0x00000B25
ldr r2, _020772C0 ; =0x0000070C
ldrb r1, [r4, r0]
mov r0, #0x2c
mul r0, r1
add r0, r4, r0
ldrh r0, [r0, r2]
cmp r0, #0x0
bne _02077286
add r0, r2, #0x0
sub r0, #0x70
sub r2, #0x68
ldr r0, [r4, r0]
ldr r2, [r4, r2]
mov r1, #0x7f
bl ReadMsgDataIntoString
ldr r1, _020772BC ; =0x00000B25
add r0, r4, #0x0
ldrb r1, [r4, r1]
bl sub_02073AB8
b _0207729C
_02077286:
add r0, r2, #0x0
sub r0, #0x70
sub r2, #0x68
ldr r0, [r4, r0]
ldr r2, [r4, r2]
mov r1, #0x80
bl ReadMsgDataIntoString
ldr r0, _020772BC ; =0x00000B25
mov r1, #0x7
strb r1, [r4, r0]
_0207729C:
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
mov r2, #0x1
bl sub_020731E8
ldr r0, _020772C4 ; =0x000005A4
mov r1, #0x0
ldr r0, [r4, r0]
add r0, #0x23
strb r1, [r0, #0x0]
ldr r0, _020772C8 ; =0x00000B22
mov r1, #0x15
strb r1, [r4, r0]
pop {r4, pc}
nop
_020772BC: .word 0x00000B25
_020772C0: .word 0x0000070C
_020772C4: .word 0x000005A4
_020772C8: .word 0x00000B22
thumb_func_start sub_020772CC
sub_020772CC: ; 0x020772CC
push {r3, lr}
ldr r1, _020772E4 ; =0x000005A4
ldr r0, [r0, r1]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
bl MapHeader_GetMapSec
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, pc}
nop
_020772E4: .word 0x000005A4