.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text


	thumb_func_start CheckBagHasSpace
CheckBagHasSpace: @ 80D6800
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 16
	lsrs r5, r1, 16
	bl ItemId_GetPocket
	lsls r0, 24
	cmp r0, 0
	beq _080D6906
	bl InBattlePyramid
	lsls r0, 24
	cmp r0, 0
	bne _080D6838
	ldr r0, =0x00004004
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080D684C
_080D6838:
	mov r0, r8
	adds r1, r5, 0
	bl CheckPyramidBagHasSpace
	lsls r0, 24
	lsrs r0, 24
	b _080D6916
	.pool
_080D684C:
	mov r0, r8
	bl ItemId_GetPocket
	subs r0, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r7, =0x000003e7
	cmp r2, 0x3
	beq _080D6860
	movs r7, 0x63
_080D6860:
	movs r6, 0
	ldr r1, =gBagPockets
	lsls r4, r2, 3
	adds r0, r4, r1
	mov r9, r4
	ldrb r0, [r0, 0x4]
	cmp r6, r0
	bcs _080D68BC
	subs r0, r2, 0x2
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
_080D6878:
	adds r0, r4, r1
	ldr r1, [r0]
	lsls r0, r6, 2
	adds r1, r0, r1
	ldrh r0, [r1]
	cmp r0, r8
	bne _080D68AC
	adds r0, r1, 0x2
	str r2, [sp]
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r1, r0, 16
	adds r0, r1, r5
	ldr r2, [sp]
	cmp r0, r7
	ble _080D6914
	mov r0, r10
	cmp r0, 0x1
	bls _080D6906
	subs r0, r7, r1
	subs r0, r5, r0
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0
	beq _080D6914
_080D68AC:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gBagPockets
	adds r0, r4, r1
	ldrb r0, [r0, 0x4]
	cmp r6, r0
	bcc _080D6878
_080D68BC:
	cmp r5, 0
	beq _080D6914
	movs r6, 0
	ldr r3, =gBagPockets
	mov r1, r9
	adds r0, r1, r3
	ldrb r0, [r0, 0x4]
	cmp r6, r0
	bcs _080D6902
	adds r4, r3, 0
	subs r0, r2, 0x2
	lsls r0, 24
	lsrs r2, r0, 24
_080D68D6:
	adds r0, r1, r4
	ldr r1, [r0]
	lsls r0, r6, 2
	adds r0, r1
	ldrh r0, [r0]
	cmp r0, 0
	bne _080D68F2
	cmp r5, r7
	bls _080D6914
	cmp r2, 0x1
	bls _080D6906
	subs r0, r5, r7
	lsls r0, 16
	lsrs r5, r0, 16
_080D68F2:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	mov r1, r9
	adds r0, r1, r3
	ldrb r0, [r0, 0x4]
	cmp r6, r0
	bcc _080D68D6
_080D6902:
	cmp r5, 0
	beq _080D6914
_080D6906:
	movs r0, 0
	b _080D6916
	.pool
_080D6914:
	movs r0, 0x1
_080D6916:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end CheckBagHasSpace

	thumb_func_start AddBagItem
@ int AddBagItem(int item_id, int quantity)
AddBagItem: @ 80D6928
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	lsls r1, 16
	lsrs r5, r1, 16
	bl ItemId_GetPocket
	lsls r0, 24
	cmp r0, 0
	bne _080D694C
	movs r0, 0
	b _080D6A92
_080D694C:
	bl InBattlePyramid
	lsls r0, 24
	cmp r0, 0
	bne _080D6964
	ldr r0, =0x00004004
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080D6978
_080D6964:
	mov r0, r9
	adds r1, r5, 0
	bl AddPyramidBagItem
	lsls r0, 24
	lsrs r0, 24
	b _080D6A92
	.pool
_080D6978:
	mov r0, r9
	bl ItemId_GetPocket
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r1, r0, 3
	ldr r0, =gBagPockets
	adds r7, r1, r0
	ldrb r0, [r7, 0x4]
	lsls r0, 2
	bl AllocZeroed
	mov r8, r0
	ldr r1, [r7]
	ldrb r2, [r7, 0x4]
	lsls r2, 2
	bl memcpy
	ldr r2, =0x000003e7
	mov r0, r10
	cmp r0, 0x3
	beq _080D69AA
	movs r2, 0x63
_080D69AA:
	movs r6, 0
	ldrb r0, [r7, 0x4]
	cmp r6, r0
	bcs _080D6A06
	mov r0, r10
	subs r0, 0x2
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
_080D69BC:
	lsls r0, r6, 2
	mov r3, r8
	adds r1, r0, r3
	ldrh r0, [r1]
	cmp r0, r9
	bne _080D69FA
	adds r4, r1, 0x2
	adds r0, r4, 0
	str r2, [sp, 0x4]
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r0, 16
	adds r1, r0, r5
	ldr r2, [sp, 0x4]
	cmp r1, r2
	ble _080D6A68
	ldr r1, [sp]
	cmp r1, 0x1
	bls _080D6A74
	subs r0, r2, r0
	subs r0, r5, r0
	lsls r0, 16
	lsrs r5, r0, 16
	adds r0, r4, 0
	adds r1, r2, 0
	bl SetBagItemQuantity
	ldr r2, [sp, 0x4]
	cmp r5, 0
	beq _080D6A7E
_080D69FA:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r0, [r7, 0x4]
	cmp r6, r0
	bcc _080D69BC
_080D6A06:
	cmp r5, 0
	beq _080D6A7E
	movs r6, 0
	cmp r6, r0
	bcs _080D6A62
	mov r0, r10
	subs r0, 0x2
	lsls r0, 24
	lsrs r4, r0, 24
_080D6A18:
	lsls r0, r6, 2
	mov r3, r8
	adds r1, r0, r3
	ldrh r0, [r1]
	cmp r0, 0
	bne _080D6A56
	mov r0, r9
	strh r0, [r1]
	cmp r5, r2
	bhi _080D6A40
	adds r0, r1, 0x2
	adds r1, r5, 0
	bl SetBagItemQuantity
	b _080D6A7E
	.pool
_080D6A40:
	cmp r4, 0x1
	bls _080D6A74
	subs r0, r5, r2
	lsls r0, 16
	lsrs r5, r0, 16
	adds r0, r1, 0x2
	adds r1, r2, 0
	str r2, [sp, 0x4]
	bl SetBagItemQuantity
	ldr r2, [sp, 0x4]
_080D6A56:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r1, [r7, 0x4]
	cmp r6, r1
	bcc _080D6A18
_080D6A62:
	cmp r5, 0
	beq _080D6A7E
	b _080D6A74
_080D6A68:
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl SetBagItemQuantity
	b _080D6A7E
_080D6A74:
	mov r0, r8
	bl Free
	movs r0, 0
	b _080D6A92
_080D6A7E:
	ldr r0, [r7]
	ldrb r2, [r7, 0x4]
	lsls r2, 2
	mov r1, r8
	bl memcpy
	mov r0, r8
	bl Free
	movs r0, 0x1
_080D6A92:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end AddBagItem

	thumb_func_start RemoveBagItem
@ pokescrcmd
RemoveBagItem: @ 80D6AA4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 16
	lsrs r7, r1, 16
	movs r4, 0
	bl ItemId_GetPocket
	lsls r0, 24
	cmp r0, 0
	beq _080D6B38
	mov r0, r8
	cmp r0, 0
	beq _080D6B38
	bl InBattlePyramid
	lsls r0, 24
	cmp r0, 0
	bne _080D6AE0
	ldr r0, =0x00004004
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080D6AF4
_080D6AE0:
	mov r0, r8
	adds r1, r7, 0
	bl RemovePyramidBagItem
	lsls r0, 24
	lsrs r0, 24
	b _080D6C5A
	.pool
_080D6AF4:
	mov r0, r8
	bl ItemId_GetPocket
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r1, r0, 3
	ldr r0, =gBagPockets
	adds r5, r1, r0
	movs r6, 0
	ldrb r2, [r5, 0x4]
	cmp r6, r2
	bcs _080D6B34
_080D6B10:
	ldr r0, [r5]
	lsls r1, r6, 2
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, r8
	bne _080D6B28
	adds r0, r1, 0x2
	bl GetBagItemQuantity
	adds r0, r4, r0
	lsls r0, 16
	lsrs r4, r0, 16
_080D6B28:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r0, [r5, 0x4]
	cmp r6, r0
	bcc _080D6B10
_080D6B34:
	cmp r4, r7
	bcs _080D6B40
_080D6B38:
	movs r0, 0
	b _080D6C5A
	.pool
_080D6B40:
	bl CurrentMapIsSecretBase
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080D6B70
	ldr r4, =0x000040ee
	adds r0, r4, 0
	bl VarGet
	adds r1, r0, 0
	movs r2, 0x80
	lsls r2, 2
	adds r0, r2, 0
	orrs r1, r0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl VarSet
	ldr r0, =0x000040ed
	mov r1, r8
	bl VarSet
_080D6B70:
	mov r0, r9
	bl sub_81ABB2C
	lsls r0, 24
	lsrs r1, r0, 24
	ldrb r0, [r5, 0x4]
	cmp r0, r1
	bls _080D6BE6
	ldr r0, [r5]
	lsls r1, 2
	adds r2, r1, r0
	ldrh r0, [r2]
	adds r4, r1, 0
	cmp r0, r8
	bne _080D6BE6
	adds r0, r2, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, r7
	bcc _080D6BB8
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	subs r1, r7
	lsls r1, 16
	lsrs r1, 16
	bl SetBagItemQuantity
	movs r7, 0
	b _080D6BCA
	.pool
_080D6BB8:
	subs r0, r7, r1
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	movs r1, 0
	bl SetBagItemQuantity
_080D6BCA:
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	bne _080D6BE2
	ldr r0, [r5]
	adds r0, r4, r0
	strh r2, [r0]
_080D6BE2:
	cmp r7, 0
	beq _080D6C58
_080D6BE6:
	movs r6, 0
	ldrb r0, [r5, 0x4]
	cmp r6, r0
	bcs _080D6C58
_080D6BEE:
	ldr r0, [r5]
	lsls r1, r6, 2
	adds r2, r1, r0
	ldrh r0, [r2]
	adds r4, r1, 0
	cmp r0, r8
	bne _080D6C4C
	adds r0, r2, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, r7
	bcc _080D6C1E
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	subs r1, r7
	lsls r1, 16
	lsrs r1, 16
	bl SetBagItemQuantity
	movs r7, 0
	b _080D6C30
_080D6C1E:
	subs r0, r7, r1
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	movs r1, 0
	bl SetBagItemQuantity
_080D6C30:
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	bne _080D6C48
	ldr r0, [r5]
	adds r0, r4, r0
	strh r2, [r0]
_080D6C48:
	cmp r7, 0
	beq _080D6C58
_080D6C4C:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r2, [r5, 0x4]
	cmp r6, r2
	bcc _080D6BEE
_080D6C58:
	movs r0, 0x1
_080D6C5A:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end RemoveBagItem

	thumb_func_start GetPocketByItemId
GetPocketByItemId: @ 80D6C68
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end GetPocketByItemId

	thumb_func_start ClearItemSlots
ClearItemSlots: @ 80D6C7C
	push {r4-r7,lr}
	adds r6, r0, 0
	lsls r1, 24
	movs r4, 0
	lsrs r1, 24
	cmp r4, r1
	bcs _080D6CA6
	adds r5, r1, 0
	movs r7, 0
_080D6C8E:
	lsls r0, r4, 2
	adds r0, r6
	strh r7, [r0]
	adds r0, 0x2
	movs r1, 0
	bl SetBagItemQuantity
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, r5
	bcc _080D6C8E
_080D6CA6:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end ClearItemSlots

	thumb_func_start sub_80D6CAC
sub_80D6CAC: @ 80D6CAC
	push {lr}
	movs r1, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	movs r3, 0x93
	lsls r3, 3
_080D6CB8:
	lsls r0, r1, 24
	asrs r1, r0, 24
	lsls r0, r1, 2
	adds r0, r2, r0
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, 0
	bne _080D6CD0
	adds r0, r1, 0
	b _080D6CE0
	.pool
_080D6CD0:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	asrs r0, 24
	cmp r0, 0x31
	ble _080D6CB8
	movs r0, 0x1
	negs r0, r0
_080D6CE0:
	pop {r1}
	bx r1
	thumb_func_end sub_80D6CAC

	thumb_func_start sub_80D6CE4
sub_80D6CE4: @ 80D6CE4
	push {r4,lr}
	movs r2, 0
	movs r1, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r3, [r0]
	movs r4, 0x93
	lsls r4, 3
_080D6CF2:
	lsls r0, r1, 2
	adds r0, r3, r0
	adds r0, r4
	ldrh r0, [r0]
	cmp r0, 0
	beq _080D6D04
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
_080D6D04:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x31
	bls _080D6CF2
	adds r0, r2, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80D6CE4

	thumb_func_start CheckPCHasItem
CheckPCHasItem: @ 80D6D1C
	push {r4-r6,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 16
	lsrs r5, r1, 16
	movs r4, 0
_080D6D28:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	lsls r1, r4, 2
	adds r0, r2, r1
	movs r3, 0x93
	lsls r3, 3
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, r6
	bne _080D6D5C
	adds r0, r1, r2
	ldr r1, =0x0000049a
	adds r0, r1
	bl GetBagItemId
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r5
	bcc _080D6D5C
	movs r0, 0x1
	b _080D6D68
	.pool
_080D6D5C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x31
	bls _080D6D28
	movs r0, 0
_080D6D68:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end CheckPCHasItem

	thumb_func_start AddPCItem
AddPCItem: @ 80D6D70
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 16
	lsrs r5, r1, 16
	movs r0, 0xC8
	bl AllocZeroed
	adds r7, r0, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r0, 0x93
	lsls r0, 3
	adds r1, r0
	adds r0, r7, 0
	movs r2, 0xC8
	bl memcpy
	movs r6, 0
_080D6D9C:
	lsls r0, r6, 2
	adds r1, r0, r7
	ldrh r0, [r1]
	cmp r0, r8
	bne _080D6DD0
	adds r4, r1, 0x2
	adds r0, r4, 0
	bl GetBagItemId
	lsls r0, 16
	lsrs r2, r0, 16
	adds r1, r2, r5
	ldr r3, =0x000003e7
	cmp r1, r3
	ble _080D6E04
	ldr r1, =0x0000fc19
	adds r0, r5, r1
	adds r0, r2, r0
	lsls r0, 16
	lsrs r5, r0, 16
	adds r0, r4, 0
	adds r1, r3, 0
	bl SetBagItemId
	cmp r5, 0
	beq _080D6E20
_080D6DD0:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x31
	bls _080D6D9C
	cmp r5, 0
	beq _080D6E20
	bl sub_80D6CAC
	lsls r0, 24
	asrs r1, r0, 24
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	bne _080D6E10
	adds r0, r7, 0
	bl Free
	movs r0, 0
	b _080D6E3A
	.pool
_080D6E04:
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl SetBagItemId
	b _080D6E20
_080D6E10:
	lsls r0, r1, 2
	adds r0, r7
	mov r1, r8
	strh r1, [r0]
	adds r0, 0x2
	adds r1, r5, 0
	bl SetBagItemId
_080D6E20:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0x93
	lsls r1, 3
	adds r0, r1
	adds r1, r7, 0
	movs r2, 0xC8
	bl memcpy
	adds r0, r7, 0
	bl Free
	movs r0, 0x1
_080D6E3A:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end AddPCItem

	thumb_func_start sub_80D6E48
sub_80D6E48: @ 80D6E48
	push {lr}
	lsls r0, 24
	lsls r1, 16
	lsrs r1, 16
	ldr r2, =gSaveBlock1Ptr
	ldr r2, [r2]
	lsrs r0, 22
	adds r3, r2, r0
	ldr r0, =0x0000049a
	adds r2, r3, r0
	ldrh r0, [r2]
	subs r0, r1
	strh r0, [r2]
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	bne _080D6E76
	movs r2, 0x93
	lsls r2, 3
	adds r0, r3, r2
	strh r1, [r0]
	bl sub_80D6E84
_080D6E76:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80D6E48

	thumb_func_start sub_80D6E84
sub_80D6E84: @ 80D6E84
	push {r4-r7,lr}
	movs r2, 0
_080D6E88:
	adds r1, r2, 0x1
	lsls r0, r1, 16
	lsrs r4, r0, 16
	adds r6, r1, 0
	cmp r4, 0x31
	bhi _080D6ECA
	ldr r0, =gSaveBlock1Ptr
	mov r12, r0
	lsls r5, r2, 2
	movs r7, 0x93
	lsls r7, 3
_080D6E9E:
	mov r0, r12
	ldr r1, [r0]
	adds r0, r1, r5
	adds r0, r7
	ldrh r0, [r0]
	cmp r0, 0
	bne _080D6EC0
	movs r0, 0x93
	lsls r0, 3
	adds r1, r0
	adds r2, r1, r5
	ldr r3, [r2]
	lsls r0, r4, 2
	adds r1, r0
	ldr r0, [r1]
	str r0, [r2]
	str r3, [r1]
_080D6EC0:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x31
	bls _080D6E9E
_080D6ECA:
	lsls r0, r6, 16
	lsrs r2, r0, 16
	cmp r2, 0x30
	bls _080D6E88
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80D6E84

	thumb_func_start sub_80D6EDC
sub_80D6EDC: @ 80D6EDC
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x00000496
	adds r1, r0, r2
	ldrh r2, [r1]
	ldr r3, =0x00000103
	cmp r2, r3
	beq _080D6F04
	movs r0, 0x88
	lsls r0, 1
	cmp r2, r0
	beq _080D6F0C
	b _080D6F0E
	.pool
_080D6F04:
	movs r0, 0x88
	lsls r0, 1
	strh r0, [r1]
	b _080D6F0E
_080D6F0C:
	strh r3, [r1]
_080D6F0E:
	pop {r0}
	bx r0
	thumb_func_end sub_80D6EDC

	thumb_func_start BagGetItemIdByPocketPosition
@ int BagGetItemIdByPocketPosition(int pocket_id_plus_1, int item_index_in_pocket)
BagGetItemIdByPocketPosition: @ 80D6F14
	lsls r0, 24
	lsls r1, 16
	ldr r2, =gBagPockets
	lsrs r0, 21
	subs r0, 0x8
	adds r0, r2
	ldr r0, [r0]
	lsrs r1, 14
	adds r1, r0
	ldrh r0, [r1]
	bx lr
	.pool
	thumb_func_end BagGetItemIdByPocketPosition

	thumb_func_start BagGetQuantityByPocketPosition
@ int BagGetQuantityByPocketPosition(int pocket_id_plus_1, int item_index_in_pocket)
BagGetQuantityByPocketPosition: @ 80D6F30
	push {lr}
	lsls r0, 24
	lsls r1, 16
	ldr r2, =gBagPockets
	lsrs r0, 21
	subs r0, 0x8
	adds r0, r2
	lsrs r1, 14
	ldr r0, [r0]
	adds r0, r1
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	.pool
	thumb_func_end BagGetQuantityByPocketPosition

	thumb_func_start swap32
swap32: @ 80D6F58
	ldr r3, [r0]
	ldr r2, [r1]
	str r2, [r0]
	str r3, [r1]
	bx lr
	thumb_func_end swap32

	thumb_func_start sub_80D6F64
sub_80D6F64: @ 80D6F64
	push {r4-r7,lr}
	adds r6, r0, 0
	movs r3, 0
	b _080D6FA6
_080D6F6C:
	adds r1, r3, 0x1
	lsls r0, r1, 16
	lsrs r4, r0, 16
	adds r7, r1, 0
	cmp r4, r2
	bcs _080D6FA2
	lsls r5, r3, 2
_080D6F7A:
	ldr r0, [r6]
	adds r0, r5
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	cmp r0, 0
	bne _080D6F96
	ldr r1, [r6]
	adds r0, r1, r5
	lsls r2, r4, 2
	adds r1, r2
	bl swap32
_080D6F96:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	ldrb r0, [r6, 0x4]
	cmp r4, r0
	bcc _080D6F7A
_080D6FA2:
	lsls r0, r7, 16
	lsrs r3, r0, 16
_080D6FA6:
	ldrb r2, [r6, 0x4]
	subs r0, r2, 0x1
	cmp r3, r0
	blt _080D6F6C
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80D6F64

	thumb_func_start sub_80D6FB4
sub_80D6FB4: @ 80D6FB4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	movs r3, 0
	b _080D701A
_080D6FC0:
	adds r1, r3, 0x1
	lsls r0, r1, 16
	lsrs r5, r0, 16
	mov r8, r1
	cmp r5, r2
	bcs _080D7014
	lsls r7, r3, 2
_080D6FCE:
	ldr r0, [r6]
	adds r0, r7
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	lsls r4, r5, 2
	cmp r0, 0
	beq _080D6FFE
	ldr r0, [r6]
	adds r0, r4
	adds r0, 0x2
	bl GetBagItemQuantity
	lsls r0, 16
	cmp r0, 0
	beq _080D7008
	ldr r0, [r6]
	adds r1, r7, r0
	adds r0, r4, r0
	ldrh r1, [r1]
	ldrh r0, [r0]
	cmp r1, r0
	bls _080D7008
_080D6FFE:
	ldr r1, [r6]
	adds r0, r1, r7
	adds r1, r4
	bl swap32
_080D7008:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	ldrb r0, [r6, 0x4]
	cmp r5, r0
	bcc _080D6FCE
_080D7014:
	mov r1, r8
	lsls r0, r1, 16
	lsrs r3, r0, 16
_080D701A:
	ldrb r2, [r6, 0x4]
	subs r0, r2, 0x1
	cmp r3, r0
	blt _080D6FC0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80D6FB4

	thumb_func_start sub_80D702C
sub_80D702C: @ 80D702C
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r3, r2, 0
	cmp r1, r3
	beq _080D708C
	lsls r0, r1, 2
	adds r0, r4
	ldr r6, [r0]
	cmp r3, r1
	bls _080D7064
	subs r3, 0x1
	lsls r1, 16
	lsls r0, r3, 16
	asrs r2, r0, 16
	cmp r1, r0
	bge _080D7086
	adds r5, r2, 0
_080D704E:
	asrs r2, r1, 16
	lsls r0, r2, 2
	adds r0, r4
	ldr r1, [r0, 0x4]
	str r1, [r0]
	adds r2, 0x1
	lsls r1, r2, 16
	asrs r0, r1, 16
	cmp r0, r5
	blt _080D704E
	b _080D7086
_080D7064:
	lsls r1, 16
	lsls r0, r3, 16
	asrs r2, r0, 16
	cmp r1, r0
	ble _080D7086
	adds r5, r2, 0
_080D7070:
	asrs r2, r1, 16
	lsls r1, r2, 2
	adds r1, r4
	subs r0, r1, 0x4
	ldr r0, [r0]
	str r0, [r1]
	subs r2, 0x1
	lsls r1, r2, 16
	asrs r0, r1, 16
	cmp r0, r5
	bgt _080D7070
_080D7086:
	lsls r0, r3, 2
	adds r0, r4
	str r6, [r0]
_080D708C:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_80D702C

	thumb_func_start ClearBag
ClearBag: @ 80D7094
	push {r4,r5,lr}
	movs r4, 0
	ldr r5, =gBagPockets
_080D709A:
	lsls r1, r4, 3
	adds r1, r5
	ldr r0, [r1]
	ldrb r1, [r1, 0x4]
	bl ClearItemSlots
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x4
	bls _080D709A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end ClearBag

	thumb_func_start CountTotalItemQuantityInBag
@ u16 CountTotalItemQuantityInBag(u16 itemId)
CountTotalItemQuantityInBag: @ 80D70BC
	push {r4-r7,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	movs r7, 0
	adds r0, r6, 0
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 21
	ldr r1, =gUnknown_02039DD0
	adds r5, r0, r1
	movs r4, 0
	ldrb r0, [r5, 0x4]
	cmp r7, r0
	bcs _080D70FE
_080D70DA:
	ldr r0, [r5]
	lsls r1, r4, 2
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, r6
	bne _080D70F2
	adds r0, r1, 0x2
	bl GetBagItemQuantity
	adds r0, r7, r0
	lsls r0, 16
	lsrs r7, r0, 16
_080D70F2:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	ldrb r0, [r5, 0x4]
	cmp r4, r0
	bcc _080D70DA
_080D70FE:
	adds r0, r7, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end CountTotalItemQuantityInBag

	thumb_func_start CheckPyramidBagHasItem
CheckPyramidBagHasItem: @ 80D710C
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r2, r3, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r1, =0x00000e54
	adds r0, r1
	adds r3, r0
	movs r1, 0
_080D7140:
	lsls r0, r1, 1
	adds r0, r2
	ldrh r0, [r0]
	cmp r0, r5
	bne _080D7170
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, r4
	bcs _080D715C
	subs r0, r4, r0
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0
	bne _080D7170
_080D715C:
	movs r0, 0x1
	b _080D717C
	.pool
_080D7170:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x9
	bls _080D7140
	movs r0, 0
_080D717C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end CheckPyramidBagHasItem

	thumb_func_start CheckPyramidBagHasSpace
CheckPyramidBagHasSpace: @ 80D7184
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r2, r3, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r1, =0x00000e54
	adds r0, r1
	adds r3, r0
	movs r1, 0
_080D71B8:
	lsls r0, r1, 1
	adds r0, r2
	ldrh r0, [r0]
	cmp r0, r5
	beq _080D71C6
	cmp r0, 0
	bne _080D71F0
_080D71C6:
	adds r0, r3, r1
	ldrb r0, [r0]
	adds r0, r4
	cmp r0, 0x63
	ble _080D71DA
	subs r0, 0x63
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0
	bne _080D71F0
_080D71DA:
	movs r0, 0x1
	b _080D71FC
	.pool
_080D71F0:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x9
	bls _080D71B8
	movs r0, 0
_080D71FC:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end CheckPyramidBagHasSpace

	thumb_func_start AddPyramidBagItem
AddPyramidBagItem: @ 80D7204
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 16
	lsrs r7, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r0, r3
	mov r9, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r1, =0x00000e54
	adds r0, r1
	adds r3, r0
	mov r8, r3
	movs r0, 0x14
	bl Alloc
	adds r5, r0, 0
	movs r0, 0xA
	bl Alloc
	adds r6, r0, 0
	adds r0, r5, 0
	mov r1, r9
	movs r2, 0x14
	bl memcpy
	adds r0, r6, 0
	mov r1, r8
	movs r2, 0xA
	bl memcpy
	movs r2, 0
_080D7266:
	lsls r0, r2, 1
	adds r0, r5
	ldrh r0, [r0]
	cmp r0, r7
	bne _080D72AA
	adds r1, r6, r2
	ldrb r0, [r1]
	cmp r0, 0x62
	bhi _080D72AA
	adds r0, r4
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x63
	bls _080D72A4
	ldrb r0, [r1]
	subs r0, 0x63
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0x63
	strb r0, [r1]
	b _080D72A6
	.pool
_080D72A4:
	movs r4, 0
_080D72A6:
	cmp r4, 0
	beq _080D7304
_080D72AA:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x9
	bls _080D7266
	cmp r4, 0
	beq _080D7304
	movs r2, 0
_080D72BA:
	lsls r0, r2, 1
	adds r1, r0, r5
	ldrh r0, [r1]
	cmp r0, 0
	bne _080D72E6
	strh r7, [r1]
	adds r1, r6, r2
	strb r4, [r1]
	lsls r0, r4, 24
	lsrs r0, 24
	cmp r0, 0x63
	bls _080D72E0
	ldrb r0, [r1]
	subs r0, 0x63
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0x63
	strb r0, [r1]
	b _080D72E2
_080D72E0:
	movs r4, 0
_080D72E2:
	cmp r4, 0
	beq _080D7304
_080D72E6:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x9
	bls _080D72BA
	cmp r4, 0
	beq _080D7304
	adds r0, r5, 0
	bl Free
	adds r0, r6, 0
	bl Free
	movs r0, 0
	b _080D7326
_080D7304:
	mov r0, r9
	adds r1, r5, 0
	movs r2, 0x14
	bl memcpy
	mov r0, r8
	adds r1, r6, 0
	movs r2, 0xA
	bl memcpy
	adds r0, r5, 0
	bl Free
	adds r0, r6, 0
	bl Free
	movs r0, 0x1
_080D7326:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end AddPyramidBagItem

	thumb_func_start RemovePyramidBagItem
RemovePyramidBagItem: @ 80D7334
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r0, r3
	mov r8, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r1, =0x00000e54
	adds r0, r1
	adds r7, r3, r0
	ldr r1, =gUnknown_0203CF30
	ldrh r0, [r1, 0x8]
	ldrh r1, [r1, 0x6]
	adds r0, r1
	lsls r0, 16
	lsrs r2, r0, 16
	lsls r0, r2, 1
	mov r1, r8
	adds r3, r0, r1
	ldrh r0, [r3]
	cmp r0, r9
	bne _080D73B4
	adds r1, r7, r2
	ldrb r0, [r1]
	cmp r0, r4
	bcc _080D73B4
	subs r0, r4
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	bne _080D744C
	strh r0, [r3]
	b _080D744C
	.pool
_080D73B4:
	movs r0, 0x14
	bl Alloc
	adds r5, r0, 0
	movs r0, 0xA
	bl Alloc
	adds r6, r0, 0
	adds r0, r5, 0
	mov r1, r8
	movs r2, 0x14
	bl memcpy
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0xA
	bl memcpy
	movs r2, 0
_080D73DA:
	lsls r0, r2, 1
	adds r3, r0, r5
	ldrh r0, [r3]
	cmp r0, r9
	bne _080D740E
	adds r1, r6, r2
	ldrb r0, [r1]
	cmp r0, r4
	bcc _080D73FC
	subs r0, r4
	strb r0, [r1]
	movs r4, 0
	lsls r0, 24
	cmp r0, 0
	bne _080D740A
	strh r4, [r3]
	b _080D740A
_080D73FC:
	subs r0, r4, r0
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0
	strb r0, [r1]
	movs r0, 0
	strh r0, [r3]
_080D740A:
	cmp r4, 0
	beq _080D742C
_080D740E:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x9
	bls _080D73DA
	cmp r4, 0
	beq _080D742C
	adds r0, r5, 0
	bl Free
	adds r0, r6, 0
	bl Free
	movs r0, 0
	b _080D744E
_080D742C:
	mov r0, r8
	adds r1, r5, 0
	movs r2, 0x14
	bl memcpy
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0xA
	bl memcpy
	adds r0, r5, 0
	bl Free
	adds r0, r6, 0
	bl Free
_080D744C:
	movs r0, 0x1
_080D744E:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end RemovePyramidBagItem

	thumb_func_start SanitizeItemId
SanitizeItemId: @ 80D745C
	push {lr}
	lsls r0, 16
	lsrs r1, r0, 16
	movs r0, 0xBC
	lsls r0, 1
	cmp r1, r0
	bhi _080D746E
	adds r0, r1, 0
	b _080D7470
_080D746E:
	movs r0, 0
_080D7470:
	pop {r1}
	bx r1
	thumb_func_end SanitizeItemId

	thumb_func_start ItemId_GetItem
@ item *ItemId_GetItem(s16 itemId)
ItemId_GetItem: @ 80D7474
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	ldr r1, =gItems
	adds r0, r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetItem

	thumb_func_start itemid_get_number
itemid_get_number: @ 80D7494
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrh r0, [r0, 0xE]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end itemid_get_number

	thumb_func_start itemid_get_market_price
itemid_get_market_price: @ 80D74B8
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrh r0, [r0, 0x10]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end itemid_get_market_price

	thumb_func_start ItemId_GetHoldEffect
ItemId_GetHoldEffect: @ 80D74DC
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x12]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetHoldEffect

	thumb_func_start ItemId_GetHoldEffectParam
ItemId_GetHoldEffectParam: @ 80D7500
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x13]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetHoldEffectParam

	thumb_func_start ItemId_GetDescription
ItemId_GetDescription: @ 80D7524
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r4, 0x14
	adds r0, r4
	ldr r0, [r0]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetDescription

	thumb_func_start itemid_is_unique
itemid_is_unique: @ 80D7548
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x18]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end itemid_is_unique

	thumb_func_start itemid_get_x19
itemid_get_x19: @ 80D756C
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x19]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end itemid_get_x19

	thumb_func_start ItemId_GetPocket
ItemId_GetPocket: @ 80D7590
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x1A]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetPocket

	thumb_func_start ItemId_GetType
ItemId_GetType: @ 80D75B4
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	ldrb r0, [r0, 0x1B]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetType

	thumb_func_start ItemId_GetFieldFunc
ItemId_GetFieldFunc: @ 80D75D8
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r4, 0x1C
	adds r0, r4
	ldr r0, [r0]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetFieldFunc

	thumb_func_start ItemId_GetBattleUsage
ItemId_GetBattleUsage: @ 80D75FC
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	adds r0, 0x20
	ldrb r0, [r0]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetBattleUsage

	thumb_func_start ItemId_GetBattleFunc
ItemId_GetBattleFunc: @ 80D7620
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r4, 0x24
	adds r0, r4
	ldr r0, [r0]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetBattleFunc

	thumb_func_start ItemId_GetSecondaryId
ItemId_GetSecondaryId: @ 80D7644
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gItems
	bl SanitizeItemId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x2C
	muls r0, r1
	adds r0, r4
	adds r0, 0x28
	ldrb r0, [r0]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ItemId_GetSecondaryId

	.align 2, 0 @ Don't pad with nop.