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

	.syntax unified

	.text

	thumb_func_start sub_811EA44
sub_811EA44: @ 811EA44
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	ldr r4, [sp, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp]
	lsls r4, 24
	lsrs r7, r4, 24
	bl reset_brm
	ldr r6, _0811EA8C @ =gUnknown_203B09C
	movs r0, 0x8E
	lsls r0, 2
	bl Alloc
	adds r5, r0, 0
	str r5, [r6]
	cmp r5, 0
	bne _0811EA90
	ldr r0, [sp, 0x2C]
	bl SetMainCallback2
	b _0811EB80
	.align 2, 0
_0811EA8C: .4byte gUnknown_203B09C
_0811EA90:
	ldr r3, _0811EAE0 @ =gUnknown_203B0A0
	movs r1, 0xF
	mov r0, r9
	ands r1, r0
	ldrb r2, [r3, 0x8]
	movs r0, 0x10
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x8]
	ldr r1, [sp, 0x2C]
	str r1, [r3]
	movs r4, 0
	mov r0, r8
	strb r0, [r3, 0xB]
	lsls r2, r7, 2
	ldrh r1, [r5, 0xA]
	movs r0, 0x3
	ands r0, r1
	orrs r0, r2
	strh r0, [r5, 0xA]
	ldr r0, [sp, 0x28]
	str r0, [r5]
	str r4, [r5, 0x4]
	ldrb r1, [r5, 0x8]
	movs r0, 0xF
	negs r0, r0
	ands r0, r1
	strb r0, [r5, 0x8]
	adds r7, r3, 0
	mov r1, r9
	cmp r1, 0x4
	bne _0811EAE4
	ldr r0, [r6]
	ldrb r1, [r0, 0x8]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0, 0x8]
	b _0811EAF0
	.align 2, 0
_0811EAE0: .4byte gUnknown_203B0A0
_0811EAE4:
	ldr r2, [r6]
	ldrb r1, [r2, 0x8]
	movs r0, 0x2
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x8]
_0811EAF0:
	mov r5, r10
	cmp r5, 0xFF
	beq _0811EB08
	movs r0, 0x3
	ands r0, r5
	lsls r0, 4
	ldrb r2, [r7, 0x8]
	movs r1, 0x31
	negs r1, r1
	ands r1, r2
	orrs r1, r0
	strb r1, [r7, 0x8]
_0811EB08:
	movs r2, 0
	ldr r5, _0811EB90 @ =gUnknown_203B09C
	movs r4, 0x86
	lsls r4, 2
	movs r3, 0
_0811EB12:
	ldr r0, [r5]
	lsls r1, r2, 1
	adds r0, r4
	adds r0, r1
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0xF
	bls _0811EB12
	movs r2, 0
	ldr r4, _0811EB90 @ =gUnknown_203B09C
	movs r3, 0xFF
_0811EB2C:
	ldr r0, [r4]
	adds r0, 0xC
	adds r0, r2
	ldrb r1, [r0]
	orrs r1, r3
	strb r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x2
	bls _0811EB2C
	ldr r0, [sp]
	cmp r0, 0
	beq _0811EB68
	adds r1, r7, 0
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	cmp r0, 0x5
	bgt _0811EB66
	adds r1, r0, 0
	movs r0, 0x64
	muls r0, r1
	ldr r1, _0811EB94 @ =gPlayerParty
	adds r0, r1
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	bne _0811EB6A
_0811EB66:
	movs r0, 0
_0811EB68:
	strb r0, [r7, 0x9]
_0811EB6A:
	ldr r2, _0811EB98 @ =gTextFlags
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	bl CalculatePlayerPartyCount
	ldr r0, _0811EB9C @ =sub_811EBD0
	bl SetMainCallback2
_0811EB80:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811EB90: .4byte gUnknown_203B09C
_0811EB94: .4byte gPlayerParty
_0811EB98: .4byte gTextFlags
_0811EB9C: .4byte sub_811EBD0
	thumb_func_end sub_811EA44

	thumb_func_start sub_811EBA0
sub_811EBA0: @ 811EBA0
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl do_scheduled_bg_tilemap_copies_to_vram
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_811EBA0

	thumb_func_start sub_811EBBC
sub_811EBBC: @ 811EBBC
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_811EBBC

	thumb_func_start sub_811EBD0
sub_811EBD0: @ 811EBD0
	push {lr}
_0811EBD2:
	bl sub_80BF748
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811EBF6
	bl sub_811EBFC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811EBF6
	bl sub_80BF708
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0811EBD2
_0811EBF6:
	pop {r0}
	bx r0
	thumb_func_end sub_811EBD0

	thumb_func_start sub_811EBFC
sub_811EBFC: @ 811EBFC
	push {r4,lr}
	sub sp, 0x4
	ldr r0, _0811EC1C @ =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x16
	bls _0811EC10
	b _0811EE14
_0811EC10:
	lsls r0, 2
	ldr r1, _0811EC20 @ =_0811EC24
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_0811EC1C: .4byte gMain
_0811EC20: .4byte _0811EC24
	.align 2, 0
_0811EC24:
	.4byte _0811EC80
	.4byte _0811EC8E
	.4byte _0811EC94
	.4byte _0811ECA8
	.4byte _0811ECAE
	.4byte _0811ECB4
	.4byte _0811ECC6
	.4byte _0811ECCC
	.4byte _0811ECF4
	.4byte _0811ED02
	.4byte _0811ED14
	.4byte _0811ED38
	.4byte _0811ED3E
	.4byte _0811ED44
	.4byte _0811ED4A
	.4byte _0811ED50
	.4byte _0811ED70
	.4byte _0811ED90
	.4byte _0811ED96
	.4byte _0811EDAC
	.4byte _0811EDB4
	.4byte _0811EDD0
	.4byte _0811EDDE
_0811EC80:
	bl sub_80BF768
	bl sub_80BF77C
	bl clear_scheduled_bg_copies_to_vram
	b _0811EDFC
_0811EC8E:
	bl remove_some_task
	b _0811EDFC
_0811EC94:
	bl ResetPaletteFade
	ldr r2, _0811ECA4 @ =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	b _0811EDFA
	.align 2, 0
_0811ECA4: .4byte gPaletteFade
_0811ECA8:
	bl ResetSpriteData
	b _0811EDFC
_0811ECAE:
	bl FreeAllSpritePalettes
	b _0811EDFC
_0811ECB4:
	bl sub_80BF708
	lsls r0, 24
	cmp r0, 0
	beq _0811ECC0
	b _0811EDFC
_0811ECC0:
	bl ResetTasks
	b _0811EDFC
_0811ECC6:
	bl sub_81208E4
	b _0811EDFC
_0811ECCC:
	bl sub_811EECC
	lsls r0, 24
	cmp r0, 0
	bne _0811ECDE
	bl sub_811EE38
	movs r0, 0x1
	b _0811EE2E
_0811ECDE:
	ldr r0, _0811ECF0 @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _0811EDFC
	.align 2, 0
_0811ECF0: .4byte gUnknown_203B09C
_0811ECF4:
	bl sub_811EF44
	lsls r0, 24
	cmp r0, 0
	bne _0811ED00
	b _0811EE2C
_0811ED00:
	b _0811EDFC
_0811ED02:
	ldr r0, _0811ED10 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsls r0, 26
	lsrs r0, 30
	bl sub_8121060
	b _0811EDFC
	.align 2, 0
_0811ED10: .4byte gUnknown_203B0A0
_0811ED14:
	ldr r0, _0811ED30 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsls r0, 26
	lsrs r0, 30
	bl sub_811F0BC
	ldr r0, _0811ED34 @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _0811EDFC
	.align 2, 0
_0811ED30: .4byte gUnknown_203B0A0
_0811ED34: .4byte gUnknown_203B09C
_0811ED38:
	bl sub_8122550
	b _0811EDFC
_0811ED3E:
	bl sub_8122860
	b _0811EDFC
_0811ED44:
	bl sub_8122980
	b _0811EDFC
_0811ED4A:
	bl sub_809707C
	b _0811EDFC
_0811ED50:
	bl party_menu_add_per_mon_objects
	lsls r0, 24
	cmp r0, 0
	beq _0811EE2C
	ldr r0, _0811ED6C @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _0811EDFC
	.align 2, 0
_0811ED6C: .4byte gUnknown_203B09C
_0811ED70:
	bl sub_811F5EC
	lsls r0, 24
	cmp r0, 0
	beq _0811EE2C
	ldr r0, _0811ED8C @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _0811EDFC
	.align 2, 0
_0811ED8C: .4byte gUnknown_203B09C
_0811ED90:
	bl sub_811F774
	b _0811EDFC
_0811ED96:
	ldr r0, _0811EDA8 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	lsrs r0, 31
	bl sub_81210F8
	b _0811EDFC
	.align 2, 0
_0811EDA8: .4byte gUnknown_203B09C
_0811EDAC:
	movs r0, 0x5
	bl sub_812B1F0
	b _0811EDFC
_0811EDB4:
	ldr r4, _0811EDCC @ =gUnknown_203B09C
	ldr r0, [r4]
	ldr r0, [r0]
	movs r1, 0
	bl CreateTask
	ldr r0, [r4]
	ldrh r0, [r0, 0xA]
	lsrs r0, 2
	bl sub_8121D0C
	b _0811EDFC
	.align 2, 0
_0811EDCC: .4byte gUnknown_203B09C
_0811EDD0:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	b _0811EDFC
_0811EDDE:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r2, _0811EE0C @ =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
_0811EDFA:
	strb r0, [r2, 0x8]
_0811EDFC:
	ldr r1, _0811EE10 @ =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0811EE2C
	.align 2, 0
_0811EE0C: .4byte gPaletteFade
_0811EE10: .4byte gMain
_0811EE14:
	ldr r0, _0811EE24 @ =sub_811EBBC
	bl SetVBlankCallback
	ldr r0, _0811EE28 @ =sub_811EBA0
	bl SetMainCallback2
	movs r0, 0x1
	b _0811EE2E
	.align 2, 0
_0811EE24: .4byte sub_811EBBC
_0811EE28: .4byte sub_811EBA0
_0811EE2C:
	movs r0, 0
_0811EE2E:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811EBFC

	thumb_func_start sub_811EE38
sub_811EE38: @ 811EE38
	push {lr}
	sub sp, 0x4
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, _0811EE68 @ =sub_811EE74
	movs r1, 0
	bl CreateTask
	ldr r0, _0811EE6C @ =sub_811EBBC
	bl SetVBlankCallback
	ldr r0, _0811EE70 @ =sub_811EBA0
	bl SetMainCallback2
	add sp, 0x4
	pop {r0}
	bx r0
	.align 2, 0
_0811EE68: .4byte sub_811EE74
_0811EE6C: .4byte sub_811EBBC
_0811EE70: .4byte sub_811EBA0
	thumb_func_end sub_811EE38

	thumb_func_start sub_811EE74
sub_811EE74: @ 811EE74
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _0811EEA0 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811EE98
	ldr r0, _0811EEA4 @ =gUnknown_203B0A0
	ldr r0, [r0]
	bl SetMainCallback2
	bl sub_811F070
	adds r0, r4, 0
	bl DestroyTask
_0811EE98:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0811EEA0: .4byte gPaletteFade
_0811EEA4: .4byte gUnknown_203B0A0
	thumb_func_end sub_811EE74

	thumb_func_start reset_brm
reset_brm: @ 811EEA8
	ldr r0, _0811EEBC @ =gUnknown_203B09C
	movs r1, 0
	str r1, [r0]
	ldr r0, _0811EEC0 @ =gUnknown_203B0BC
	str r1, [r0]
	ldr r0, _0811EEC4 @ =gUnknown_203B0B4
	str r1, [r0]
	ldr r0, _0811EEC8 @ =gUnknown_203B0B8
	str r1, [r0]
	bx lr
	.align 2, 0
_0811EEBC: .4byte gUnknown_203B09C
_0811EEC0: .4byte gUnknown_203B0BC
_0811EEC4: .4byte gUnknown_203B0B4
_0811EEC8: .4byte gUnknown_203B0B8
	thumb_func_end reset_brm

	thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
	push {r4,r5,lr}
	bl sub_80BF7C8
	ldr r5, _0811EF34 @ =gUnknown_203B0BC
	movs r4, 0x80
	lsls r4, 4
	adds r0, r4, 0
	bl Alloc
	str r0, [r5]
	cmp r0, 0
	beq _0811EF3C
	movs r1, 0
	adds r2, r4, 0
	bl memset
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, _0811EF38 @ =gUnknown_8459EB8
	movs r0, 0
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r1, [r5]
	movs r0, 0x1
	bl SetBgTilemapBuffer
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x1
	b _0811EF3E
	.align 2, 0
_0811EF34: .4byte gUnknown_203B0BC
_0811EF38: .4byte gUnknown_8459EB8
_0811EF3C:
	movs r0, 0
_0811EF3E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811EECC

	thumb_func_start sub_811EF44
sub_811EF44: @ 811EF44
	push {r4,lr}
	sub sp, 0x4
	ldr r0, _0811EF64 @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0x7
	bhi _0811F02C
	lsls r0, 2
	ldr r1, _0811EF68 @ =_0811EF6C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_0811EF64: .4byte gUnknown_203B09C
_0811EF68: .4byte _0811EF6C
	.align 2, 0
_0811EF6C:
	.4byte _0811EF8C
	.4byte _0811EFB4
	.4byte _0811EFD4
	.4byte _0811F000
	.4byte _0811F004
	.4byte _0811F008
	.4byte _0811F00C
	.4byte _0811F010
_0811EF8C:
	ldr r4, _0811EFAC @ =gUnknown_203B0B8
	ldr r0, _0811EFB0 @ =gUnknown_8E82700
	mov r1, sp
	bl malloc_and_decompress
	adds r1, r0, 0
	str r1, [r4]
	ldr r2, [sp]
	lsls r2, 16
	lsrs r2, 16
	movs r0, 0x1
	movs r3, 0
	bl LoadBgTiles
	b _0811F016
	.align 2, 0
_0811EFAC: .4byte gUnknown_203B0B8
_0811EFB0: .4byte gUnknown_8E82700
_0811EFB4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811F030
	ldr r0, _0811EFCC @ =gUnknown_8E82AB0
	ldr r1, _0811EFD0 @ =gUnknown_203B0BC
	ldr r1, [r1]
	bl LZDecompressWram
	b _0811F016
	.align 2, 0
_0811EFCC: .4byte gUnknown_8E82AB0
_0811EFD0: .4byte gUnknown_203B0BC
_0811EFD4:
	ldr r0, _0811EFF4 @ =gUnknown_8E829C8
	movs r2, 0xB0
	lsls r2, 1
	movs r1, 0
	bl LoadCompressedPalette
	ldr r0, _0811EFF8 @ =gPlttBufferUnfaded
	ldr r4, _0811EFFC @ =gUnknown_203B09C
	ldr r1, [r4]
	adds r1, 0x18
	movs r2, 0xB0
	bl CpuSet
	ldr r1, [r4]
	b _0811F01A
	.align 2, 0
_0811EFF4: .4byte gUnknown_8E829C8
_0811EFF8: .4byte gPlttBufferUnfaded
_0811EFFC: .4byte gUnknown_203B09C
_0811F000:
	movs r0, 0x4
	b _0811F012
_0811F004:
	movs r0, 0x5
	b _0811F012
_0811F008:
	movs r0, 0x6
	b _0811F012
_0811F00C:
	movs r0, 0x7
	b _0811F012
_0811F010:
	movs r0, 0x8
_0811F012:
	bl sub_811F03C
_0811F016:
	ldr r0, _0811F028 @ =gUnknown_203B09C
	ldr r1, [r0]
_0811F01A:
	movs r0, 0x86
	lsls r0, 2
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811F030
	.align 2, 0
_0811F028: .4byte gUnknown_203B09C
_0811F02C:
	movs r0, 0x1
	b _0811F032
_0811F030:
	movs r0, 0
_0811F032:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811EF44

	thumb_func_start sub_811F03C
sub_811F03C: @ 811F03C
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 28
	ldr r5, _0811F068 @ =gPlttBufferUnfaded + 0x60
	lsrs r4, 23
	adds r1, r5, 0
	subs r1, 0x60
	adds r1, r4, r1
	adds r0, r5, 0
	movs r2, 0x10
	bl CpuSet
	ldr r0, _0811F06C @ =gPlttBufferFaded
	adds r4, r0
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0x10
	bl CpuSet
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0811F068: .4byte gPlttBufferUnfaded + 0x60
_0811F06C: .4byte gPlttBufferFaded
	thumb_func_end sub_811F03C

	thumb_func_start sub_811F070
sub_811F070: @ 811F070
	push {lr}
	ldr r0, _0811F0AC @ =gUnknown_203B09C
	ldr r0, [r0]
	cmp r0, 0
	beq _0811F07E
	bl Free
_0811F07E:
	ldr r0, _0811F0B0 @ =gUnknown_203B0BC
	ldr r0, [r0]
	cmp r0, 0
	beq _0811F08A
	bl Free
_0811F08A:
	ldr r0, _0811F0B4 @ =gUnknown_203B0B8
	ldr r0, [r0]
	cmp r0, 0
	beq _0811F096
	bl Free
_0811F096:
	ldr r0, _0811F0B8 @ =gUnknown_203B0B4
	ldr r0, [r0]
	cmp r0, 0
	beq _0811F0A2
	bl Free
_0811F0A2:
	bl FreeAllWindowBuffers
	pop {r0}
	bx r0
	.align 2, 0
_0811F0AC: .4byte gUnknown_203B09C
_0811F0B0: .4byte gUnknown_203B0BC
_0811F0B4: .4byte gUnknown_203B0B8
_0811F0B8: .4byte gUnknown_203B0B4
	thumb_func_end sub_811F070

	thumb_func_start sub_811F0BC
sub_811F0BC: @ 811F0BC
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, _0811F108 @ =gUnknown_203B0B4
	movs r0, 0x60
	bl Alloc
	str r0, [r4]
	movs r2, 0
	ldr r7, _0811F10C @ =gUnknown_8459EE4
	lsls r0, r5, 1
	adds r0, r5
	lsls r3, r0, 4
	mov r12, r4
	ldr r6, _0811F110 @ =gUnknown_8459F04
_0811F0DA:
	ldr r0, [r4]
	lsls r1, r2, 4
	adds r1, r0
	str r7, [r1]
	lsls r0, r2, 3
	adds r0, r6
	adds r0, r3, r0
	str r0, [r1, 0x4]
	strb r2, [r1, 0x8]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x5
	bls _0811F0DA
	mov r1, r12
	ldr r0, [r1]
	ldr r1, _0811F114 @ =gUnknown_8459EC4
	str r1, [r0]
	cmp r5, 0x3
	bne _0811F118
	str r1, [r0, 0x30]
	b _0811F11E
	.align 2, 0
_0811F108: .4byte gUnknown_203B0B4
_0811F10C: .4byte gUnknown_8459EE4
_0811F110: .4byte gUnknown_8459F04
_0811F114: .4byte gUnknown_8459EC4
_0811F118:
	cmp r5, 0
	beq _0811F11E
	str r1, [r0, 0x10]
_0811F11E:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_811F0BC

	thumb_func_start sub_811F124
sub_811F124: @ 811F124
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _0811F16C @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x5
	bne _0811F174
	cmp r4, 0x2
	bls _0811F174
	adds r0, r4, 0
	bl sub_811F528
	ldr r5, _0811F170 @ =gUnknown_203B0B4
	lsls r4, 4
	ldr r0, [r5]
	adds r0, r4
	movs r1, 0x8
	bl sub_812142C
	ldr r0, [r5]
	adds r0, r4, r0
	ldrb r0, [r0, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r5]
	adds r4, r0
	ldrb r0, [r4, 0x8]
	bl PutWindowTilemap
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	b _0811F22A
	.align 2, 0
_0811F16C: .4byte gUnknown_203B0A0
_0811F170: .4byte gUnknown_203B0B4
_0811F174:
	movs r0, 0x64
	muls r0, r4
	ldr r1, _0811F1A4 @ =gPlayerParty
	adds r0, r1
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	bne _0811F1AC
	ldr r5, _0811F1A8 @ =gUnknown_203B0B4
	ldr r0, [r5]
	lsls r4, 4
	adds r0, r4, r0
	ldrb r0, [r0, 0x8]
	bl sub_8121404
	ldr r0, [r5]
	adds r0, r4, r0
	ldrb r0, [r0, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	b _0811F218
	.align 2, 0
_0811F1A4: .4byte gPlayerParty
_0811F1A8: .4byte gUnknown_203B0B4
_0811F1AC:
	ldr r0, _0811F1C0 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	movs r1, 0xF
	ands r1, r0
	cmp r1, 0x4
	bne _0811F1C4
	adds r0, r4, 0
	bl sub_811F388
	b _0811F1E2
	.align 2, 0
_0811F1C0: .4byte gUnknown_203B0A0
_0811F1C4:
	cmp r1, 0xB
	bne _0811F1D0
	adds r0, r4, 0
	bl sub_811F404
	b _0811F1E2
_0811F1D0:
	adds r0, r4, 0
	bl sub_811F430
	lsls r0, 24
	cmp r0, 0
	bne _0811F1E2
	adds r0, r4, 0
	bl sub_811F234
_0811F1E2:
	ldr r2, _0811F1F8 @ =gUnknown_203B0A0
	ldrb r1, [r2, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x5
	bne _0811F1FC
	adds r0, r4, 0
	movs r1, 0
	bl sub_811F818
	b _0811F216
	.align 2, 0
_0811F1F8: .4byte gUnknown_203B0A0
_0811F1FC:
	movs r0, 0x9
	ldrsb r0, [r2, r0]
	cmp r0, r4
	bne _0811F20E
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811F818
	b _0811F216
_0811F20E:
	adds r0, r4, 0
	movs r1, 0
	bl sub_811F818
_0811F216:
	lsls r4, 4
_0811F218:
	ldr r0, _0811F230 @ =gUnknown_203B0B4
	ldr r0, [r0]
	adds r0, r4, r0
	ldrb r0, [r0, 0x8]
	bl PutWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
_0811F22A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0811F230: .4byte gUnknown_203B0B4
	thumb_func_end sub_811F124

	thumb_func_start sub_811F234
sub_811F234: @ 811F234
	push {r4-r7,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x64
	adds r1, r4, 0
	muls r1, r0
	ldr r0, _0811F284 @ =gPlayerParty
	adds r7, r1, r0
	adds r0, r7, 0
	movs r1, 0x2D
	bl GetMonData
	adds r2, r0, 0
	cmp r2, 0
	beq _0811F28C
	ldr r6, _0811F288 @ =gUnknown_203B0B4
	ldr r0, [r6]
	lsls r5, r4, 4
	adds r0, r5, r0
	ldr r2, [r0]
	ldrb r0, [r0, 0x8]
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	ldr r4, [r2]
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl _call_via_r4
	ldr r1, [r6]
	adds r1, r5
	adds r0, r7, 0
	movs r2, 0
	bl sub_8121738
	b _0811F2EE
	.align 2, 0
_0811F284: .4byte gPlayerParty
_0811F288: .4byte gUnknown_203B0B4
_0811F28C:
	ldr r5, _0811F2F8 @ =gUnknown_203B0B4
	ldr r0, [r5]
	lsls r4, 4
	adds r0, r4, r0
	ldr r1, [r0]
	ldrb r0, [r0, 0x8]
	str r2, [sp]
	str r2, [sp, 0x4]
	ldr r6, [r1]
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl _call_via_r6
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	movs r2, 0
	bl sub_8121738
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	movs r2, 0
	bl sub_8121790
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	movs r2, 0
	bl sub_8121854
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	movs r2, 0
	bl sub_812199C
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	movs r2, 0
	bl sub_8121A3C
	ldr r1, [r5]
	adds r1, r4
	adds r0, r7, 0
	bl sub_8121AF0
_0811F2EE:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811F2F8: .4byte gUnknown_203B0B4
	thumb_func_end sub_811F234

	thumb_func_start sub_811F2FC
sub_811F2FC: @ 811F2FC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	movs r1, 0x64
	adds r2, r0, 0
	muls r2, r1
	ldr r1, _0811F380 @ =gPlayerParty
	adds r6, r2, r1
	ldr r7, _0811F384 @ =gUnknown_203B0B4
	ldr r1, [r7]
	lsls r5, r0, 4
	adds r1, r5, r1
	ldr r2, [r1]
	ldrb r0, [r1, 0x8]
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	ldr r4, [r2]
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl _call_via_r4
	ldr r1, [r7]
	adds r1, r5
	adds r0, r6, 0
	movs r2, 0
	bl sub_8121738
	adds r0, r6, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _0811F368
	ldr r1, [r7]
	adds r1, r5
	adds r0, r6, 0
	movs r2, 0
	bl sub_8121790
	ldr r1, [r7]
	adds r1, r5
	adds r0, r6, 0
	movs r2, 0
	bl sub_8121854
_0811F368:
	ldr r1, [r7]
	adds r1, r5
	mov r0, r8
	movs r2, 0
	bl sub_8121C70
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811F380: .4byte gPlayerParty
_0811F384: .4byte gUnknown_203B0B4
	thumb_func_end sub_811F2FC

	thumb_func_start sub_811F388
sub_811F388: @ 811F388
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x64
	muls r0, r4
	ldr r1, _0811F3AC @ =gPlayerParty
	adds r0, r1
	ldr r5, _0811F3B0 @ =gUnknown_203B0D4
	bl sub_8127550
	lsls r0, 24
	cmp r0, 0
	bne _0811F3C2
	adds r0, r4, 0
	movs r1, 0x6
	bl sub_811F2FC
	b _0811F3F8
	.align 2, 0
_0811F3AC: .4byte gPlayerParty
_0811F3B0: .4byte gUnknown_203B0D4
_0811F3B4:
	adds r1, 0x2
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl sub_811F2FC
	b _0811F3F8
_0811F3C2:
	ldr r0, _0811F400 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xC0
	ands r0, r1
	movs r3, 0x3
	cmp r0, 0x80
	bne _0811F3D2
	movs r3, 0x2
_0811F3D2:
	movs r1, 0
	cmp r1, r3
	bcs _0811F3F0
_0811F3D8:
	adds r2, r5, r1
	ldrb r0, [r2]
	cmp r0, 0
	beq _0811F3E6
	subs r0, 0x1
	cmp r0, r4
	beq _0811F3B4
_0811F3E6:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, r3
	bcc _0811F3D8
_0811F3F0:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811F2FC
_0811F3F8:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0811F400: .4byte gUnknown_203B0A0
	thumb_func_end sub_811F388

	thumb_func_start sub_811F404
sub_811F404: @ 811F404
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r4, 0
	bl sub_81209D4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0811F422
	adds r0, r4, 0
	movs r1, 0x5
	bl sub_811F2FC
	b _0811F42A
_0811F422:
	adds r0, r4, 0
	movs r1, 0x6
	bl sub_811F2FC
_0811F42A:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811F404

	thumb_func_start sub_811F430
sub_811F430: @ 811F430
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, _0811F468 @ =gPlayerParty
	adds r6, r1, r0
	ldr r0, _0811F46C @ =gUnknown_203AD30
	ldrh r4, [r0]
	ldr r0, _0811F470 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0xC
	bne _0811F47C
	ldr r0, _0811F474 @ =gUnknown_20370D0
	movs r1, 0
	strh r1, [r0]
	ldr r0, _0811F478 @ =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0xE
	bhi _0811F492
	lsls r2, r0, 24
	lsrs r2, 24
	adds r0, r5, 0
	movs r1, 0
	bl sub_811F4D0
	b _0811F4C6
	.align 2, 0
_0811F468: .4byte gPlayerParty
_0811F46C: .4byte gUnknown_203AD30
_0811F470: .4byte gUnknown_203B0A0
_0811F474: .4byte gUnknown_20370D0
_0811F478: .4byte gSpecialVar_0x8005
_0811F47C:
	cmp r0, 0x3
	bne _0811F492
	adds r0, r4, 0
	bl sub_80A1150
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811F496
	cmp r0, 0x2
	beq _0811F4A2
_0811F492:
	movs r0, 0
	b _0811F4C8
_0811F496:
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0
	bl sub_811F4D0
	b _0811F4C6
_0811F4A2:
	adds r0, r6, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _0811F4BE
	adds r0, r6, 0
	movs r1, 0x3
	adds r2, r4, 0
	bl GetEvolutionTargetSpecies
	lsls r0, 16
	cmp r0, 0
	bne _0811F492
_0811F4BE:
	adds r0, r5, 0
	movs r1, 0
	bl sub_811F2FC
_0811F4C6:
	movs r0, 0x1
_0811F4C8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_811F430

	thumb_func_start sub_811F4D0
sub_811F4D0: @ 811F4D0
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 16
	lsrs r1, 16
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0x64
	muls r0, r4
	ldr r3, _0811F4FC @ =gPlayerParty
	adds r0, r3
	bl sub_8120B20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	beq _0811F50E
	cmp r0, 0x2
	bgt _0811F500
	cmp r0, 0x1
	beq _0811F504
	b _0811F518
	.align 2, 0
_0811F4FC: .4byte gPlayerParty
_0811F500:
	cmp r0, 0x3
	bne _0811F518
_0811F504:
	adds r0, r4, 0
	movs r1, 0x8
	bl sub_811F2FC
	b _0811F520
_0811F50E:
	adds r0, r4, 0
	movs r1, 0x9
	bl sub_811F2FC
	b _0811F520
_0811F518:
	adds r0, r4, 0
	movs r1, 0x7
	bl sub_811F2FC
_0811F520:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811F4D0

	thumb_func_start sub_811F528
sub_811F528: @ 811F528
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _0811F558 @ =gUnknown_203B0B4
	lsls r2, r0, 4
	ldr r1, [r1]
	adds r5, r1, r2
	subs r0, 0x3
	lsls r0, 24
	ldr r1, _0811F55C @ =gUnknown_2022B58
	mov r8, r1
	lsrs r7, r0, 19
	adds r6, r7, r1
	ldrh r0, [r6]
	cmp r0, 0
	bne _0811F560
	ldrb r0, [r5, 0x8]
	bl sub_8121404
	b _0811F5DC
	.align 2, 0
_0811F558: .4byte gUnknown_203B0B4
_0811F55C: .4byte gUnknown_2022B58
_0811F560:
	ldr r2, [r5]
	ldrb r0, [r5, 0x8]
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	ldr r4, [r2]
	movs r2, 0
	movs r3, 0
	bl _call_via_r4
	ldr r4, _0811F5E8 @ =gStringVar1
	mov r0, r8
	adds r0, 0x4
	adds r7, r0
	adds r0, r4, 0
	adds r1, r7, 0
	bl StringCopy
	adds r0, r4, 0
	bl StringGetEnd10
	adds r0, r4, 0
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x5
	bhi _0811F5A0
	adds r0, r4, 0
	movs r1, 0x1
	bl ConvertInternationalString
_0811F5A0:
	ldrb r0, [r5, 0x8]
	ldr r3, [r5]
	adds r3, 0x4
	adds r1, r4, 0
	movs r2, 0
	bl sub_8121704
	ldrb r0, [r6, 0xF]
	adds r1, r5, 0
	bl sub_8121808
	ldrb r0, [r6, 0x1C]
	ldrh r1, [r6]
	adds r2, r7, 0
	adds r3, r5, 0
	bl sub_81218BC
	ldrh r0, [r6, 0x10]
	adds r1, r5, 0
	bl sub_8121A04
	ldrh r0, [r6, 0x12]
	adds r1, r5, 0
	bl sub_8121AA4
	ldrh r0, [r6, 0x10]
	ldrh r1, [r6, 0x12]
	adds r2, r5, 0
	bl sub_8121B2C
_0811F5DC:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811F5E8: .4byte gStringVar1
	thumb_func_end sub_811F528

	thumb_func_start sub_811F5EC
sub_811F5EC: @ 811F5EC
	push {r4,r5,lr}
	ldr r5, _0811F614 @ =gUnknown_203B09C
	ldr r0, [r5]
	movs r4, 0x86
	lsls r4, 2
	adds r0, r4
	ldrb r0, [r0]
	bl sub_811F124
	ldr r1, [r5]
	adds r1, r4
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x6
	beq _0811F618
	movs r0, 0
	b _0811F61A
	.align 2, 0
_0811F614: .4byte gUnknown_203B09C
_0811F618:
	movs r0, 0x1
_0811F61A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811F5EC

	thumb_func_start sub_811F620
sub_811F620: @ 811F620
	lsls r0, 16
	ldr r1, _0811F630 @ =gUnknown_203B0B8
	lsrs r0, 11
	ldr r1, [r1]
	adds r1, r0
	adds r0, r1, 0
	bx lr
	.align 2, 0
_0811F630: .4byte gUnknown_203B0B8
	thumb_func_end sub_811F620

	thumb_func_start party_menu_add_per_mon_objects_internal
party_menu_add_per_mon_objects_internal: @ 811F634
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _0811F6A8 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x5
	bne _0811F6E4
	cmp r7, 0x2
	bls _0811F6E4
	subs r0, r7, 0x3
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r0, _0811F6AC @ =gUnknown_2022B58
	mov r9, r0
	mov r2, r10
	lsls r2, 5
	mov r8, r2
	mov r6, r8
	add r6, r9
	ldrh r0, [r6]
	cmp r0, 0
	beq _0811F728
	mov r1, r9
	adds r1, 0x18
	add r1, r8
	ldr r1, [r1]
	ldr r4, _0811F6B0 @ =gUnknown_203B0B4
	lsls r5, r7, 4
	ldr r2, [r4]
	adds r2, r5
	movs r3, 0
	str r3, [sp]
	bl party_menu_link_mon_icon_anim
	ldrh r0, [r6]
	ldrh r1, [r6, 0x2]
	ldr r2, [r4]
	adds r2, r5
	bl party_menu_link_mon_held_item_object
	ldrh r0, [r6]
	ldr r1, [r4]
	adds r1, r5
	bl party_menu_link_mon_pokeball_object
	ldrh r0, [r6, 0x10]
	cmp r0, 0
	bne _0811F6B4
	movs r3, 0x7
	b _0811F6C4
	.align 2, 0
_0811F6A8: .4byte gUnknown_203B0A0
_0811F6AC: .4byte gUnknown_2022B58
_0811F6B0: .4byte gUnknown_203B0B4
_0811F6B4:
	mov r0, r9
	adds r0, 0x14
	add r0, r8
	ldr r0, [r0]
	bl pokemon_ailments_get_primary
	lsls r0, 24
	lsrs r3, r0, 24
_0811F6C4:
	ldr r1, _0811F6DC @ =gUnknown_2022B58
	mov r2, r10
	lsls r0, r2, 5
	adds r0, r1
	ldrh r0, [r0]
	ldr r1, _0811F6E0 @ =gUnknown_203B0B4
	ldr r2, [r1]
	adds r2, r5
	adds r1, r3, 0
	bl party_menu_link_mon_status_condition_object
	b _0811F728
	.align 2, 0
_0811F6DC: .4byte gUnknown_2022B58
_0811F6E0: .4byte gUnknown_203B0B4
_0811F6E4:
	movs r0, 0x64
	adds r1, r7, 0
	muls r1, r0
	ldr r0, _0811F738 @ =gPlayerParty
	adds r6, r1, r0
	adds r0, r6, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _0811F728
	ldr r4, _0811F73C @ =gUnknown_203B0B4
	lsls r5, r7, 4
	ldr r1, [r4]
	adds r1, r5
	adds r0, r6, 0
	adds r2, r7, 0
	bl party_menu_icon_anim
	ldr r1, [r4]
	adds r1, r5
	adds r0, r6, 0
	bl party_menu_held_item_object
	ldr r1, [r4]
	adds r1, r5
	adds r0, r6, 0
	bl party_menu_pokeball_object
	ldr r1, [r4]
	adds r1, r5
	adds r0, r6, 0
	bl party_menu_status_condition_object
_0811F728:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811F738: .4byte gPlayerParty
_0811F73C: .4byte gUnknown_203B0B4
	thumb_func_end party_menu_add_per_mon_objects_internal

	thumb_func_start party_menu_add_per_mon_objects
party_menu_add_per_mon_objects: @ 811F740
	push {r4,r5,lr}
	ldr r5, _0811F768 @ =gUnknown_203B09C
	ldr r0, [r5]
	movs r4, 0x86
	lsls r4, 2
	adds r0, r4
	ldrb r0, [r0]
	bl party_menu_add_per_mon_objects_internal
	ldr r1, [r5]
	adds r1, r4
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x6
	beq _0811F76C
	movs r0, 0
	b _0811F76E
	.align 2, 0
_0811F768: .4byte gUnknown_203B09C
_0811F76C:
	movs r0, 0x1
_0811F76E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end party_menu_add_per_mon_objects

	thumb_func_start sub_811F774
sub_811F774: @ 811F774
	push {r4,lr}
	sub sp, 0xC
	ldr r0, _0811F79C @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x5
	bne _0811F7A0
	movs r0, 0x7
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r1, 0xE
	movs r2, 0x17
	movs r3, 0x11
	bl FillBgTilemapBufferRect
	b _0811F808
	.align 2, 0
_0811F79C: .4byte gUnknown_203B0A0
_0811F7A0:
	ldr r4, _0811F7D8 @ =gUnknown_203B09C
	ldr r0, [r4]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _0811F7E0
	movs r0, 0xBF
	movs r1, 0x88
	bl sub_8122794
	ldr r3, [r4]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x7F
	ands r0, r1
	lsls r0, 4
	ldrh r2, [r3, 0x8]
	ldr r1, _0811F7DC @ =0xfffff80f
	ands r1, r2
	orrs r1, r0
	strh r1, [r3, 0x8]
	bl sub_811F9DC
	movs r0, 0xBF
	movs r1, 0x98
	bl sub_8122794
	b _0811F7E8
	.align 2, 0
_0811F7D8: .4byte gUnknown_203B09C
_0811F7DC: .4byte 0xfffff80f
_0811F7E0:
	movs r0, 0xC6
	movs r1, 0x94
	bl sub_8122754
_0811F7E8:
	ldr r3, [r4]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x7F
	ands r0, r1
	lsls r0, 11
	ldr r1, [r3, 0x8]
	ldr r2, _0811F810 @ =0xfffc07ff
	ands r1, r2
	orrs r1, r0
	str r1, [r3, 0x8]
	ldr r0, _0811F814 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	movs r1, 0x1
	bl sub_811F818
_0811F808:
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0811F810: .4byte 0xfffc07ff
_0811F814: .4byte gUnknown_203B0A0
	thumb_func_end sub_811F774

	thumb_func_start sub_811F818
sub_811F818: @ 811F818
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	cmp r7, 0x6
	beq _0811F884
	cmp r7, 0x7
	beq _0811F8C0
	movs r0, 0x64
	muls r0, r7
	ldr r1, _0811F87C @ =gPlayerParty
	adds r0, r1
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _0811F934
	ldr r6, _0811F880 @ =gUnknown_203B0B4
	lsls r5, r7, 4
	ldr r4, [r6]
	adds r4, r5
	adds r0, r7, 0
	mov r1, r8
	bl sub_811F944
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl sub_812142C
	ldr r0, [r6]
	adds r0, r5, r0
	ldrb r0, [r0, 0x9]
	mov r1, r8
	bl sub_812238C
	ldr r0, [r6]
	adds r5, r0
	ldrb r0, [r5, 0xB]
	mov r1, r8
	bl sub_81227B8
	b _0811F934
	.align 2, 0
_0811F87C: .4byte gPlayerParty
_0811F880: .4byte gUnknown_203B0B4
_0811F884:
	mov r0, r8
	cmp r0, 0
	bne _0811F89E
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r1, 0x17
	movs r2, 0x10
	movs r3, 0x7
	bl sub_80F6B08
	b _0811F8B0
_0811F89E:
	movs r0, 0x2
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x17
	movs r2, 0x10
	movs r3, 0x7
	bl sub_80F6B08
_0811F8B0:
	ldr r0, _0811F8BC @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrh r0, [r0, 0x8]
	lsls r0, 21
	b _0811F926
	.align 2, 0
_0811F8BC: .4byte gUnknown_203B09C
_0811F8C0:
	ldr r0, _0811F8E0 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	bne _0811F8F2
	mov r0, r8
	cmp r0, 0
	bne _0811F8E4
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r1, 0x17
	movs r2, 0x11
	b _0811F904
	.align 2, 0
_0811F8E0: .4byte gUnknown_203B09C
_0811F8E4:
	movs r0, 0x2
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x17
	movs r2, 0x11
	b _0811F904
_0811F8F2:
	mov r0, r8
	cmp r0, 0
	bne _0811F90C
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r1, 0x17
	movs r2, 0x12
_0811F904:
	movs r3, 0x7
	bl sub_80F6B08
	b _0811F91E
_0811F90C:
	movs r0, 0x2
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x17
	movs r2, 0x12
	movs r3, 0x7
	bl sub_80F6B08
_0811F91E:
	ldr r0, _0811F940 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldr r0, [r0, 0x8]
	lsls r0, 14
_0811F926:
	lsrs r0, 25
	mov r1, r8
	bl sub_81227B8
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
_0811F934:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0811F940: .4byte gUnknown_203B09C
	thumb_func_end sub_811F818

	thumb_func_start sub_811F944
sub_811F944: @ 811F944
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 24
	lsrs r1, 24
	movs r4, 0
	cmp r1, 0x1
	bne _0811F956
	movs r4, 0x1
_0811F956:
	movs r0, 0x64
	muls r0, r5
	ldr r1, _0811F9D4 @ =gPlayerParty
	adds r0, r1
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	bne _0811F96C
	movs r0, 0x2
	orrs r4, r0
_0811F96C:
	ldr r2, _0811F9D8 @ =gUnknown_203B0A0
	ldrb r1, [r2, 0x8]
	movs r0, 0x30
	ands r0, r1
	cmp r0, 0x20
	bne _0811F98C
	cmp r5, 0x1
	beq _0811F984
	cmp r5, 0x4
	beq _0811F984
	cmp r5, 0x5
	bne _0811F98C
_0811F984:
	movs r0, 0x8
	orrs r4, r0
	lsls r0, r4, 24
	lsrs r4, r0, 24
_0811F98C:
	ldrb r1, [r2, 0xB]
	cmp r1, 0x9
	bne _0811F99A
	movs r0, 0x10
	orrs r4, r0
	lsls r0, r4, 24
	lsrs r4, r0, 24
_0811F99A:
	cmp r1, 0x8
	bne _0811F9B6
	movs r0, 0x9
	ldrsb r0, [r2, r0]
	cmp r5, r0
	beq _0811F9AE
	movs r0, 0xA
	ldrsb r0, [r2, r0]
	cmp r5, r0
	bne _0811F9B6
_0811F9AE:
	movs r0, 0x4
	orrs r4, r0
	lsls r0, r4, 24
	lsrs r4, r0, 24
_0811F9B6:
	ldrb r0, [r2, 0xB]
	cmp r0, 0xA
	bne _0811F9CC
	movs r0, 0x9
	ldrsb r0, [r2, r0]
	cmp r5, r0
	bne _0811F9CC
	movs r0, 0x20
	orrs r4, r0
	lsls r0, r4, 24
	lsrs r4, r0, 24
_0811F9CC:
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.align 2, 0
_0811F9D4: .4byte gPlayerParty
_0811F9D8: .4byte gUnknown_203B0A0
	thumb_func_end sub_811F944

	thumb_func_start sub_811F9DC
sub_811F9DC: @ 811F9DC
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r1, _0811FA18 @ =gUnknown_8459FC4
	movs r6, 0x7
	str r6, [sp]
	movs r5, 0x2
	str r5, [sp, 0x4]
	movs r4, 0x11
	str r4, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x17
	movs r3, 0x10
	bl CopyToBgTilemapBufferRect_ChangePalette
	ldr r1, _0811FA1C @ =gUnknown_8459FE0
	str r6, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x17
	movs r3, 0x12
	bl CopyToBgTilemapBufferRect_ChangePalette
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0811FA18: .4byte gUnknown_8459FC4
_0811FA1C: .4byte gUnknown_8459FE0
	thumb_func_end sub_811F9DC

	thumb_func_start sub_811FA20
sub_811FA20: @ 811FA20
	push {lr}
	ldr r0, _0811FA34 @ =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x4B
	ands r0, r1
	cmp r0, 0x4B
	beq _0811FA38
	movs r0, 0
	b _0811FA3A
	.align 2, 0
_0811FA34: .4byte gBattleTypeFlags
_0811FA38:
	movs r0, 0x1
_0811FA3A:
	pop {r1}
	bx r1
	thumb_func_end sub_811FA20

	thumb_func_start sub_811FA40
sub_811FA40: @ 811FA40
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r6, r1, 0
	movs r0, 0x64
	bl Alloc
	adds r5, r0, 0
	adds r1, r4, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r6, 0
	adds r1, r5, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r5, 0
	bl Free
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_811FA40

	thumb_func_start sub_811FA78
sub_811FA78: @ 811FA78
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r1, _0811FAAC @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _0811FAB0 @ =sub_811FAB4
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0811FAAC: .4byte gTasks
_0811FAB0: .4byte sub_811FAB4
	thumb_func_end sub_811FA78

	thumb_func_start sub_811FAB4
sub_811FAB4: @ 811FAB4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _0811FAE8 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811FB04
	ldr r4, _0811FAEC @ =gUnknown_203B0A0
	ldrb r1, [r4, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _0811FAD6
	bl sub_81280C4
_0811FAD6:
	ldr r0, _0811FAF0 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldr r0, [r0, 0x4]
	cmp r0, 0
	beq _0811FAF4
	bl SetMainCallback2
	b _0811FAFA
	.align 2, 0
_0811FAE8: .4byte gPaletteFade
_0811FAEC: .4byte gUnknown_203B0A0
_0811FAF0: .4byte gUnknown_203B09C
_0811FAF4:
	ldr r0, [r4]
	bl SetMainCallback2
_0811FAFA:
	bl sub_811F070
	adds r0, r5, 0
	bl DestroyTask
_0811FB04:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811FAB4

	thumb_func_start GetCursorSelectionMonId
GetCursorSelectionMonId: @ 811FB0C
	ldr r0, _0811FB14 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	bx lr
	.align 2, 0
_0811FB14: .4byte gUnknown_203B0A0
	thumb_func_end GetCursorSelectionMonId

	thumb_func_start sub_811FB18
sub_811FB18: @ 811FB18
	ldr r0, _0811FB24 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsls r0, 28
	lsrs r0, 28
	bx lr
	.align 2, 0
_0811FB24: .4byte gUnknown_203B0A0
	thumb_func_end sub_811FB18

	thumb_func_start sub_811FB28
sub_811FB28: @ 811FB28
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	ldr r0, _0811FB64 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811FB98
	bl sub_80BF748
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811FB98
	bl sub_811FBA4
	adds r4, r0, 0
	bl sub_811FEFC
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	beq _0811FB78
	cmp r0, 0x2
	bgt _0811FB68
	cmp r0, 0x1
	beq _0811FB6E
	b _0811FB98
	.align 2, 0
_0811FB64: .4byte gPaletteFade
_0811FB68:
	cmp r0, 0x8
	beq _0811FB82
	b _0811FB98
_0811FB6E:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811FBC4
	b _0811FB98
_0811FB78:
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_811FD88
	b _0811FB98
_0811FB82:
	ldr r0, _0811FBA0 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _0811FB98
	movs r0, 0x5
	bl PlaySE
	bl sub_8124258
_0811FB98:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0811FBA0: .4byte gUnknown_203B09C
	thumb_func_end sub_811FB28

	thumb_func_start sub_811FBA4
sub_811FBA4: @ 811FBA4
	push {lr}
	ldr r0, _0811FBB8 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0xB]
	cmp r1, 0x8
	beq _0811FBB2
	cmp r1, 0xA
	bne _0811FBBC
_0811FBB2:
	adds r0, 0xA
	b _0811FBBE
	.align 2, 0
_0811FBB8: .4byte gUnknown_203B0A0
_0811FBBC:
	adds r0, 0x9
_0811FBBE:
	pop {r1}
	bx r1
	thumb_func_end sub_811FBA4

	thumb_func_start sub_811FBC4
sub_811FBC4: @ 811FBC4
	push {r4-r6,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0
	ldrsb r0, [r5, r0]
	cmp r0, 0x6
	bne _0811FBE4
	ldr r0, _0811FBE0 @ =gUnknown_203B0A0
	ldr r1, [r0, 0x4]
	adds r0, r6, 0
	bl _call_via_r1
	b _0811FD56
	.align 2, 0
_0811FBE0: .4byte gUnknown_203B0A0
_0811FBE4:
	ldr r0, _0811FBFC @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	subs r0, 0x3
	cmp r0, 0xA
	bls _0811FBF0
	b _0811FD4A
_0811FBF0:
	lsls r0, 2
	ldr r1, _0811FC00 @ =_0811FC04
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_0811FBFC: .4byte gUnknown_203B0A0
_0811FC00: .4byte _0811FC04
	.align 2, 0
_0811FC04:
	.4byte _0811FC46
	.4byte _0811FD4A
	.4byte _0811FCC0
	.4byte _0811FCC0
	.4byte _0811FCA6
	.4byte _0811FCDA
	.4byte _0811FD4A
	.4byte _0811FC30
	.4byte _0811FCE8
	.4byte _0811FC8C
	.4byte _0811FD34
_0811FC30:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	bne _0811FC3E
	b _0811FD56
_0811FC3E:
	adds r0, r6, 0
	bl sub_80E5724
	b _0811FD56
_0811FC46:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	bne _0811FC54
	b _0811FD56
_0811FC54:
	ldr r0, _0811FC78 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _0811FC68
	ldr r0, _0811FC7C @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _0811FC80 @ =sub_8128184
	str r0, [r1, 0x4]
_0811FC68:
	ldr r0, _0811FC84 @ =gUnknown_3005E98
	ldr r1, _0811FC88 @ =sub_81255BC
	ldr r2, [r0]
	adds r0, r6, 0
	bl _call_via_r2
	b _0811FD56
	.align 2, 0
_0811FC78: .4byte gUnknown_203B0A0
_0811FC7C: .4byte gUnknown_203B09C
_0811FC80: .4byte sub_8128184
_0811FC84: .4byte gUnknown_3005E98
_0811FC88: .4byte sub_81255BC
_0811FC8C:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	beq _0811FD56
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_8126DC8
	b _0811FD56
_0811FCA6:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	beq _0811FD56
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_8127404
	b _0811FD56
_0811FCC0:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	beq _0811FD56
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_8126F40
	b _0811FD56
_0811FCDA:
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_8122E5C
	b _0811FD56
_0811FCE8:
	movs r0, 0x5
	bl PlaySE
	ldr r1, _0811FD24 @ =gUnknown_20370C0
	movs r0, 0
	ldrsb r0, [r5, r0]
	strh r0, [r1]
	ldr r0, _0811FD28 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x7
	bne _0811FD1A
	ldr r4, _0811FD2C @ =gSpecialVar_0x8005
	movs r1, 0
	ldrsb r1, [r5, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _0811FD30 @ =gPlayerParty
	adds r0, r1
	bl GetNumberOfRelearnableMoves
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
_0811FD1A:
	adds r0, r6, 0
	bl sub_811FA78
	b _0811FD56
	.align 2, 0
_0811FD24: .4byte gUnknown_20370C0
_0811FD28: .4byte gUnknown_203B0A0
_0811FD2C: .4byte gSpecialVar_0x8005
_0811FD30: .4byte gPlayerParty
_0811FD34:
	adds r0, r5, 0
	bl sub_811FD5C
	lsls r0, 24
	cmp r0, 0
	beq _0811FD56
	ldrb r1, [r5]
	adds r0, r6, 0
	bl sub_81209F4
	b _0811FD56
_0811FD4A:
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_8122C30
_0811FD56:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_811FBC4

	thumb_func_start sub_811FD5C
sub_811FD5C: @ 811FD5C
	push {lr}
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _0811FD78 @ =gPlayerParty
	adds r0, r1
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0x1
	beq _0811FD7C
	movs r0, 0x1
	b _0811FD84
	.align 2, 0
_0811FD78: .4byte gPlayerParty
_0811FD7C:
	movs r0, 0x1A
	bl PlaySE
	movs r0, 0
_0811FD84:
	pop {r1}
	bx r1
	thumb_func_end sub_811FD5C

	thumb_func_start sub_811FD88
sub_811FD88: @ 811FD88
	push {r4,r5,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _0811FDA4 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x8
	beq _0811FDBA
	cmp r0, 0x8
	bgt _0811FDA8
	cmp r0, 0x1
	beq _0811FDB2
	b _0811FDD6
	.align 2, 0
_0811FDA4: .4byte gUnknown_203B0A0
_0811FDA8:
	cmp r0, 0xA
	beq _0811FDBA
	cmp r0, 0xD
	beq _0811FDC8
	b _0811FDD6
_0811FDB2:
	movs r0, 0x1A
	bl PlaySE
	b _0811FE14
_0811FDBA:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81235E8
	b _0811FE14
_0811FDC8:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_8120A58
	b _0811FE14
_0811FDD6:
	movs r0, 0x5
	bl PlaySE
	ldr r0, _0811FDF0 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x4
	bne _0811FDF4
	adds r0, r4, 0
	bl sub_811FE24
	b _0811FE14
	.align 2, 0
_0811FDF0: .4byte gUnknown_203B0A0
_0811FDF4:
	bl sub_80BF708
	lsls r0, 24
	cmp r0, 0
	bne _0811FE04
	ldr r1, _0811FE1C @ =gUnknown_20370C0
	movs r0, 0x7
	strh r0, [r1]
_0811FE04:
	ldr r0, _0811FE20 @ =gUnknown_203B0C0
	movs r1, 0
	strb r1, [r0]
	movs r0, 0x7
	strb r0, [r5]
	adds r0, r4, 0
	bl sub_811FA78
_0811FE14:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0811FE1C: .4byte gUnknown_20370C0
_0811FE20: .4byte gUnknown_203B0C0
	thumb_func_end sub_811FD88

	thumb_func_start sub_811FE24
sub_811FE24: @ 811FE24
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _0811FE5C @ =gUnknown_203B09C
	ldr r0, [r0]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r5, _0811FE60 @ =gStringVar4
	ldr r1, _0811FE64 @ =gUnknown_84176CF
	adds r0, r5, 0
	bl StringExpandPlaceholders
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _0811FE68 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _0811FE6C @ =sub_811FE70
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0811FE5C: .4byte gUnknown_203B09C
_0811FE60: .4byte gStringVar4
_0811FE64: .4byte gUnknown_84176CF
_0811FE68: .4byte gTasks
_0811FE6C: .4byte sub_811FE70
	thumb_func_end sub_811FE24

	thumb_func_start sub_811FE70
sub_811FE70: @ 811FE70
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811FE94
	bl sub_812200C
	ldr r0, _0811FE9C @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _0811FEA0 @ =sub_811FEA4
	str r0, [r1]
_0811FE94:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0811FE9C: .4byte gTasks
_0811FEA0: .4byte sub_811FEA4
	thumb_func_end sub_811FE70

	thumb_func_start sub_811FEA4
sub_811FEA4: @ 811FEA4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811FECA
	cmp r1, 0
	bgt _0811FEC4
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811FEE8
	b _0811FEF4
_0811FEC4:
	cmp r1, 0x1
	beq _0811FEEE
	b _0811FEF4
_0811FECA:
	ldr r0, _0811FEE0 @ =gUnknown_203B0C0
	strb r1, [r0]
	ldr r1, _0811FEE4 @ =gUnknown_203B0A0
	movs r0, 0x7
	strb r0, [r1, 0x9]
	bl sub_81274FC
	adds r0, r4, 0
	bl sub_811FA78
	b _0811FEF4
	.align 2, 0
_0811FEE0: .4byte gUnknown_203B0C0
_0811FEE4: .4byte gUnknown_203B0A0
_0811FEE8:
	movs r0, 0x5
	bl PlaySE
_0811FEEE:
	adds r0, r4, 0
	bl sub_81203B8
_0811FEF4:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811FEA4

	thumb_func_start sub_811FEFC
sub_811FEFC: @ 811FEFC
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, _0811FF14 @ =gMain
	ldrh r1, [r0, 0x30]
	adds r3, r0, 0
	cmp r1, 0x20
	beq _0811FF2A
	cmp r1, 0x20
	bgt _0811FF18
	cmp r1, 0x10
	beq _0811FF2E
	b _0811FF32
	.align 2, 0
_0811FF14: .4byte gMain
_0811FF18:
	cmp r1, 0x40
	beq _0811FF22
	cmp r1, 0x80
	beq _0811FF26
	b _0811FF32
_0811FF22:
	movs r1, 0xFF
	b _0811FF4E
_0811FF26:
	movs r1, 0x1
	b _0811FF4E
_0811FF2A:
	movs r1, 0xFE
	b _0811FF4E
_0811FF2E:
	movs r1, 0x2
	b _0811FF4E
_0811FF32:
	bl sub_80BF66C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811FF46
	cmp r0, 0x2
	beq _0811FF4A
	movs r1, 0
	b _0811FF4C
_0811FF46:
	movs r1, 0xFF
	b _0811FF4C
_0811FF4A:
	movs r1, 0x1
_0811FF4C:
	ldr r3, _0811FF5C @ =gMain
_0811FF4E:
	ldrh r2, [r3, 0x2E]
	movs r0, 0x8
	ands r0, r2
	cmp r0, 0
	beq _0811FF60
	movs r0, 0x8
	b _0811FF8C
	.align 2, 0
_0811FF5C: .4byte gMain
_0811FF60:
	lsls r0, r1, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811FF72
	adds r0, r4, 0
	bl sub_811FF94
	movs r0, 0
	b _0811FF8C
_0811FF72:
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	beq _0811FF86
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0x7
	bne _0811FF86
	movs r0, 0x2
	b _0811FF8C
_0811FF86:
	ldrh r1, [r3, 0x2E]
	movs r0, 0x3
	ands r0, r1
_0811FF8C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811FEFC

	thumb_func_start sub_811FF94
sub_811FF94: @ 811FF94
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r1, 24
	lsrs r1, 24
	ldrb r4, [r5]
	ldr r0, _0811FFB8 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsls r0, 26
	lsrs r0, 30
	cmp r0, 0
	bne _0811FFBC
	lsls r1, 24
	asrs r1, 24
	adds r0, r5, 0
	bl sub_811FFF0
	b _0811FFC6
	.align 2, 0
_0811FFB8: .4byte gUnknown_203B0A0
_0811FFBC:
	lsls r1, 24
	asrs r1, 24
	adds r0, r5, 0
	bl sub_81200F8
_0811FFC6:
	movs r1, 0
	ldrsb r1, [r5, r1]
	lsls r4, 24
	asrs r0, r4, 24
	cmp r1, r0
	beq _0811FFE8
	movs r0, 0x5
	bl PlaySE
	lsrs r0, r4, 24
	movs r1, 0
	bl sub_811F818
	ldrb r0, [r5]
	movs r1, 0x1
	bl sub_811F818
_0811FFE8:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811FF94

	thumb_func_start sub_811FFF0
sub_811FFF0: @ 811FFF0
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 24
	asrs r1, 24
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08120016
	cmp r1, r0
	bgt _0812000C
	subs r0, 0x1
	cmp r1, r0
	beq _081200C0
	b _081200EE
_0812000C:
	cmp r1, 0x1
	beq _0812005C
	cmp r1, 0x2
	beq _08120094
	b _081200EE
_08120016:
	ldrb r0, [r4]
	movs r1, 0
	ldrsb r1, [r4, r1]
	cmp r1, 0
	bne _08120024
	movs r0, 0x7
	b _081200EC
_08120024:
	cmp r1, 0x6
	bne _08120034
	ldr r0, _08120030 @ =gPlayerPartyCount
	ldrb r0, [r0]
	subs r0, 0x1
	b _081200EC
	.align 2, 0
_08120030: .4byte gPlayerPartyCount
_08120034:
	cmp r1, 0x7
	bne _08120058
	ldr r0, _08120048 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _0812004C
	movs r0, 0x6
	b _081200EC
	.align 2, 0
_08120048: .4byte gUnknown_203B09C
_0812004C:
	ldr r0, _08120054 @ =gPlayerPartyCount
	ldrb r0, [r0]
	subs r0, 0x1
	b _081200EC
	.align 2, 0
_08120054: .4byte gPlayerPartyCount
_08120058:
	subs r0, 0x1
	b _081200EC
_0812005C:
	ldrb r2, [r4]
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0x7
	beq _081200EA
	movs r1, 0
	ldrsb r1, [r4, r1]
	ldr r0, _08120084 @ =gPlayerPartyCount
	ldrb r0, [r0]
	subs r0, 0x1
	cmp r1, r0
	bne _08120090
	ldr r0, _08120088 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _0812008C
	movs r0, 0x6
	b _081200EC
	.align 2, 0
_08120084: .4byte gPlayerPartyCount
_08120088: .4byte gUnknown_203B09C
_0812008C:
	movs r0, 0x7
	b _081200EC
_08120090:
	adds r0, r2, 0x1
	b _081200EC
_08120094:
	ldr r0, _081200B8 @ =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081200EE
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0
	bne _081200EE
	ldr r0, _081200BC @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 28
	lsrs r0, 29
	cmp r0, 0
	bne _081200EC
	movs r0, 0x1
	b _081200EC
	.align 2, 0
_081200B8: .4byte gPlayerPartyCount
_081200BC: .4byte gUnknown_203B09C
_081200C0:
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0
	beq _081200EE
	cmp r0, 0x6
	beq _081200EE
	cmp r0, 0x7
	beq _081200EE
	ldr r0, _081200F4 @ =gUnknown_203B09C
	ldr r3, [r0]
	movs r1, 0
	ldrsb r1, [r4, r1]
	movs r0, 0x7
	ands r1, r0
	lsls r1, 1
	ldrb r2, [r3, 0x8]
	movs r0, 0xF
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x8]
_081200EA:
	movs r0, 0
_081200EC:
	strb r0, [r4]
_081200EE:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081200F4: .4byte gUnknown_203B09C
	thumb_func_end sub_811FFF0

	thumb_func_start sub_81200F8
sub_81200F8: @ 81200F8
	push {r4-r6,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r2, r1, 24
	asrs r5, r1, 24
	movs r6, 0x1
	negs r6, r6
	cmp r5, r6
	beq _08120124
	cmp r5, r6
	bgt _0812011A
	movs r0, 0x2
	negs r0, r0
	cmp r5, r0
	bne _08120118
	b _08120238
_08120118:
	b _08120290
_0812011A:
	cmp r5, 0x1
	beq _08120180
	cmp r5, 0x2
	beq _081201C0
	b _08120290
_08120124:
	ldrb r1, [r4]
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0
	bne _08120132
	movs r0, 0x7
	b _0812028E
_08120132:
	cmp r0, 0x6
	bne _08120144
	ldr r0, _08120140 @ =gPlayerPartyCount
	ldrb r0, [r0]
	subs r0, 0x1
	b _0812028E
	.align 2, 0
_08120140: .4byte gPlayerPartyCount
_08120144:
	cmp r0, 0x7
	bne _08120160
	ldr r0, _08120158 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _0812015C
	movs r0, 0x6
	b _0812028E
	.align 2, 0
_08120158: .4byte gUnknown_203B09C
_0812015C:
	subs r0, r1, 0x1
	strb r0, [r4]
_08120160:
	movs r0, 0
	ldrsb r0, [r4, r0]
	lsls r1, r2, 24
	asrs r1, 24
	bl sub_812029C
	lsls r0, 24
	lsrs r2, r0, 24
	asrs r0, 24
	movs r1, 0x1
	negs r1, r1
	cmp r0, r1
	bne _0812017C
	b _08120290
_0812017C:
	strb r2, [r4]
	b _08120290
_08120180:
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0x6
	bne _0812018C
	movs r0, 0x7
	b _0812028E
_0812018C:
	cmp r0, 0x7
	bne _08120194
	movs r0, 0
	b _0812028E
_08120194:
	movs r0, 0
	ldrsb r0, [r4, r0]
	movs r1, 0x1
	bl sub_812029C
	lsls r0, 24
	lsrs r2, r0, 24
	asrs r0, 24
	cmp r0, r6
	bne _0812017C
	ldr r0, _081201B8 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _081201BC
	movs r0, 0x6
	b _0812028E
	.align 2, 0
_081201B8: .4byte gUnknown_203B09C
_081201BC:
	movs r0, 0x7
	b _0812028E
_081201C0:
	movs r0, 0
	ldrsb r0, [r4, r0]
	cmp r0, 0
	bne _081201F8
	ldr r0, _081201E8 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 28
	lsrs r6, r0, 29
	cmp r6, 0x3
	bne _081201F0
	ldr r0, _081201EC @ =gUnknown_20243B0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08120290
	strb r6, [r4]
	b _08120290
	.align 2, 0
_081201E8: .4byte gUnknown_203B09C
_081201EC: .4byte gUnknown_20243B0
_081201F0:
	ldr r0, _081201F4 @ =gUnknown_202434C
	b _0812020C
	.align 2, 0
_081201F4: .4byte gUnknown_202434C
_081201F8:
	cmp r0, 0x1
	bne _08120290
	ldr r0, _0812021C @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 28
	lsrs r5, r0, 29
	cmp r5, 0x5
	bne _08120224
	ldr r0, _08120220 @ =gUnknown_2024478
_0812020C:
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08120290
	strb r5, [r4]
	b _08120290
	.align 2, 0
_0812021C: .4byte gUnknown_203B09C
_08120220: .4byte gUnknown_2024478
_08120224:
	ldr r0, _08120234 @ =gUnknown_2024414
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08120290
	movs r0, 0x4
	b _0812028E
	.align 2, 0
_08120234: .4byte gUnknown_2024414
_08120238:
	ldrb r1, [r4]
	subs r0, r1, 0x2
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08120268
	ldr r0, _08120264 @ =gUnknown_203B09C
	ldr r3, [r0]
	movs r1, 0
	ldrsb r1, [r4, r1]
	movs r0, 0x7
	ands r1, r0
	lsls r1, 1
	ldrb r2, [r3, 0x8]
	movs r0, 0xF
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x8]
	movs r0, 0
	b _0812028E
	.align 2, 0
_08120264: .4byte gUnknown_203B09C
_08120268:
	subs r0, r1, 0x4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08120290
	ldr r0, _08120298 @ =gUnknown_203B09C
	ldr r3, [r0]
	movs r1, 0
	ldrsb r1, [r4, r1]
	movs r0, 0x7
	ands r1, r0
	lsls r1, 1
	ldrb r2, [r3, 0x8]
	movs r0, 0xF
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x8]
	movs r0, 0x1
_0812028E:
	strb r0, [r4]
_08120290:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08120298: .4byte gUnknown_203B09C
	thumb_func_end sub_81200F8

	thumb_func_start sub_812029C
sub_812029C: @ 812029C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 24
	asrs r6, r1, 24
_081202A6:
	lsls r0, r5, 24
	asrs r0, 24
	adds r0, r6
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, r5, 24
	lsrs r0, r1, 24
	cmp r0, 0x5
	bhi _081202D4
	asrs r4, r1, 24
	movs r0, 0x64
	muls r0, r4
	ldr r1, _081202D0 @ =gPlayerParty
	adds r0, r1
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _081202A6
	adds r0, r4, 0
	b _081202D8
	.align 2, 0
_081202D0: .4byte gPlayerParty
_081202D4:
	movs r0, 0x1
	negs r0, r0
_081202D8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_812029C

	thumb_func_start GetMonNickname
GetMonNickname: @ 81202E0
	push {r4,lr}
	adds r4, r1, 0
	movs r1, 0x2
	adds r2, r4, 0
	bl GetMonData
	adds r0, r4, 0
	bl StringGetEnd10
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end GetMonNickname

	thumb_func_start sub_81202F8
sub_81202F8: @ 81202F8
	push {r4,lr}
	lsls r4, r1, 24
	lsrs r4, 24
	bl sub_8121FC0
	ldr r0, _08120320 @ =sub_8120328
	movs r1, 0x1
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, _08120324 @ =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0x8]
	pop {r4}
	pop {r1}
	bx r1
	.align 2, 0
_08120320: .4byte sub_8120328
_08120324: .4byte gTasks
	thumb_func_end sub_81202F8

	thumb_func_start sub_8120328
sub_8120328: @ 8120328
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	movs r0, 0x6
	bl sub_80BF518
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	beq _08120364
	ldr r0, _0812036C @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _0812035E
	movs r0, 0x6
	movs r1, 0
	bl sub_810F4D8
	movs r0, 0x6
	bl ClearWindowTilemap
_0812035E:
	adds r0, r5, 0
	bl DestroyTask
_08120364:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0812036C: .4byte gTasks
	thumb_func_end sub_8120328

	thumb_func_start sub_8120370
sub_8120370: @ 8120370
	push {lr}
	ldr r0, _08120380 @ =sub_8120328
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.align 2, 0
_08120380: .4byte sub_8120328
	thumb_func_end sub_8120370

	thumb_func_start sub_8120384
sub_8120384: @ 8120384
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_80BF748
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081203AA
	movs r0, 0
	bl sub_8121D0C
	ldr r0, _081203B0 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _081203B4 @ =sub_811FB28
	str r0, [r1]
_081203AA:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081203B0: .4byte gTasks
_081203B4: .4byte sub_811FB28
	thumb_func_end sub_8120384

	thumb_func_start sub_81203B8
sub_81203B8: @ 81203B8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08120410
	movs r0, 0x6
	movs r1, 0
	bl sub_810F4D8
	movs r0, 0x6
	bl ClearWindowTilemap
	bl sub_80BF708
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081203FC
	ldr r0, _081203F4 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _081203F8 @ =sub_8120384
	b _0812040E
	.align 2, 0
_081203F4: .4byte gTasks
_081203F8: .4byte sub_8120384
_081203FC:
	movs r0, 0
	bl sub_8121D0C
	ldr r0, _08120418 @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812041C @ =sub_811FB28
_0812040E:
	str r0, [r1]
_08120410:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120418: .4byte gTasks
_0812041C: .4byte sub_811FB28
	thumb_func_end sub_81203B8

	thumb_func_start sub_8120420
sub_8120420: @ 8120420
	push {r4-r6,lr}
	adds r5, r0, 0
	lsls r1, 16
	lsrs r4, r1, 16
	lsls r2, 24
	lsrs r6, r2, 24
	lsls r3, 24
	cmp r3, 0
	bne _0812043C
	ldr r3, _08120438 @ =0x0000ffff
	movs r0, 0x5
	b _08120448
	.align 2, 0
_08120438: .4byte 0x0000ffff
_0812043C:
	ldr r0, _08120454 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x6
	bne _0812045C
	ldr r3, _08120458 @ =0x0000ffff
	movs r0, 0x7
_08120448:
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_80A2294
	b _08120468
	.align 2, 0
_08120454: .4byte gUnknown_203B0A0
_08120458: .4byte 0x0000ffff
_0812045C:
	ldr r3, _08120498 @ =0x0000ffff
	movs r0, 0x6
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_80A2294
_08120468:
	ldr r1, _0812049C @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	ldr r1, _081204A0 @ =gStringVar2
	adds r0, r4, 0
	bl sub_8099E90
	ldr r4, _081204A4 @ =gStringVar4
	ldr r1, _081204A8 @ =gUnknown_8416C2A
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	adds r1, r6, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08120498: .4byte 0x0000ffff
_0812049C: .4byte gStringVar1
_081204A0: .4byte gStringVar2
_081204A4: .4byte gStringVar4
_081204A8: .4byte gUnknown_8416C2A
	thumb_func_end sub_8120420

	thumb_func_start sub_81204AC
sub_81204AC: @ 81204AC
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r2, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	ldr r3, _081204F8 @ =0x0000ffff
	movs r0, 0x8
	adds r1, r6, 0
	adds r2, r4, 0
	bl sub_80A2294
	ldr r1, _081204FC @ =gStringVar1
	adds r0, r6, 0
	bl GetMonNickname
	ldr r1, _08120500 @ =gStringVar2
	adds r0, r4, 0
	bl sub_8099E90
	ldr r4, _08120504 @ =gStringVar4
	ldr r1, _08120508 @ =gUnknown_8416CAC
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081204F8: .4byte 0x0000ffff
_081204FC: .4byte gStringVar1
_08120500: .4byte gStringVar2
_08120504: .4byte gStringVar4
_08120508: .4byte gUnknown_8416CAC
	thumb_func_end sub_81204AC

	thumb_func_start sub_812050C
sub_812050C: @ 812050C
	push {r4,r5,lr}
	adds r4, r1, 0
	adds r5, r2, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	ldr r1, _08120548 @ =gStringVar1
	bl GetMonNickname
	ldr r1, _0812054C @ =gStringVar2
	adds r0, r4, 0
	bl sub_8099E90
	ldr r4, _08120550 @ =gStringVar4
	ldr r1, _08120554 @ =gUnknown_8416C49
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120548: .4byte gStringVar1
_0812054C: .4byte gStringVar2
_08120550: .4byte gStringVar4
_08120554: .4byte gUnknown_8416C49
	thumb_func_end sub_812050C

	thumb_func_start sub_8120558
sub_8120558: @ 8120558
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	lsls r6, 24
	lsrs r6, 24
	ldr r0, _081205B0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081205B4 @ =gPlayerParty
	adds r0, r1
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_8124B60
	ldr r1, _081205B8 @ =gStringVar1
	adds r0, r4, 0
	bl sub_8099E90
	ldr r1, _081205BC @ =gStringVar2
	adds r0, r5, 0
	bl sub_8099E90
	ldr r4, _081205C0 @ =gStringVar4
	ldr r1, _081205C4 @ =gUnknown_8416CEA
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	adds r1, r6, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081205B0: .4byte gUnknown_203B0A0
_081205B4: .4byte gPlayerParty
_081205B8: .4byte gStringVar1
_081205BC: .4byte gStringVar2
_081205C0: .4byte gStringVar4
_081205C4: .4byte gUnknown_8416CEA
	thumb_func_end sub_8120558

	thumb_func_start sub_81205C8
sub_81205C8: @ 81205C8
	push {r4-r7,lr}
	sub sp, 0x4
	adds r6, r0, 0
	lsls r5, r1, 16
	lsrs r4, r5, 16
	adds r7, r4, 0
	adds r0, r4, 0
	bl itemid_is_mail
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081205F2
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_8097D38
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _08120606
_081205F2:
	mov r0, sp
	strb r7, [r0]
	mov r1, sp
	lsrs r0, r5, 24
	strb r0, [r1, 0x1]
	adds r0, r6, 0
	movs r1, 0xC
	mov r2, sp
	bl SetMonData
_08120606:
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81205C8

	thumb_func_start sub_8120610
sub_8120610: @ 8120610
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r1, sp
	strh r0, [r1]
	cmp r0, 0
	bne _0812062C
	movs r0, 0
	b _0812064E
_0812062C:
	movs r1, 0x1
	bl sub_809A084
	lsls r0, 24
	cmp r0, 0
	beq _0812064C
	movs r1, 0
	mov r0, sp
	strh r1, [r0]
	adds r0, r4, 0
	movs r1, 0xC
	mov r2, sp
	bl SetMonData
	movs r0, 0x2
	b _0812064E
_0812064C:
	movs r0, 0x1
_0812064E:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8120610

	thumb_func_start sub_8120658
sub_8120658: @ 8120658
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	beq _08120678
	cmp r0, 0x5
	beq _0812067E
	ldr r1, _08120674 @ =gUnknown_8416285
	b _08120686
	.align 2, 0
_08120674: .4byte gUnknown_8416285
_08120678:
	movs r0, 0xB6
	lsls r0, 1
	b _08120680
_0812067E:
	ldr r0, _08120698 @ =0x0000016d
_08120680:
	bl ItemId_GetItem
	adds r1, r0, 0
_08120686:
	ldr r0, _0812069C @ =gStringVar1
	bl StringCopy
	ldr r0, _081206A0 @ =gStringVar4
	ldr r1, _081206A4 @ =gUnknown_8416D78
	bl StringExpandPlaceholders
	pop {r0}
	bx r0
	.align 2, 0
_08120698: .4byte 0x0000016d
_0812069C: .4byte gStringVar1
_081206A0: .4byte gStringVar4
_081206A4: .4byte gUnknown_8416D78
	thumb_func_end sub_8120658

	thumb_func_start sub_81206A8
sub_81206A8: @ 81206A8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r0, 2
	add r0, r8
	lsls r0, 3
	ldr r1, _08120750 @ =gTasks+0x8
	adds r7, r0, r1
	ldrh r0, [r7, 0x4]
	ldrh r1, [r7]
	adds r0, r1
	strh r0, [r7]
	ldrh r0, [r7, 0x6]
	subs r0, 0x1
	strh r0, [r7, 0x6]
	movs r2, 0x8
	ldrsh r0, [r7, r2]
	movs r5, 0x64
	muls r0, r5
	ldr r4, _08120754 @ =gPlayerParty
	adds r0, r4
	movs r1, 0x39
	adds r2, r7, 0
	bl SetMonData
	movs r3, 0x8
	ldrsh r2, [r7, r3]
	adds r0, r2, 0
	muls r0, r5
	adds r0, r4
	ldr r6, _08120758 @ =gUnknown_203B0B4
	lsls r2, 4
	ldr r1, [r6]
	adds r1, r2
	movs r2, 0x1
	bl sub_812199C
	movs r0, 0x8
	ldrsh r2, [r7, r0]
	adds r0, r2, 0
	muls r0, r5
	adds r0, r4
	lsls r2, 4
	ldr r1, [r6]
	adds r1, r2
	bl sub_8121AF0
	movs r1, 0x6
	ldrsh r0, [r7, r1]
	cmp r0, 0
	beq _08120724
	movs r2, 0
	ldrsh r1, [r7, r2]
	cmp r1, 0
	beq _08120724
	movs r3, 0x2
	ldrsh r0, [r7, r3]
	cmp r1, r0
	bne _08120746
_08120724:
	movs r0, 0
	ldrsh r1, [r7, r0]
	movs r2, 0xA
	ldrsh r0, [r7, r2]
	cmp r1, r0
	ble _08120740
	ldr r0, _0812075C @ =gStringVar2
	movs r3, 0xA
	ldrsh r2, [r7, r3]
	subs r1, r2
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
_08120740:
	mov r0, r8
	bl SwitchTaskToFollowupFunc
_08120746:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08120750: .4byte gTasks+0x8
_08120754: .4byte gPlayerParty
_08120758: .4byte gUnknown_203B0B4
_0812075C: .4byte gStringVar2
	thumb_func_end sub_81206A8

	thumb_func_start sub_8120760
sub_8120760: @ 8120760
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r8, r0
	mov r9, r1
	adds r5, r2, 0
	mov r10, r3
	ldr r7, [sp, 0x20]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r0, r9
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r5, 24
	lsrs r5, 24
	mov r0, r10
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	movs r0, 0x64
	mov r6, r9
	muls r6, r0
	ldr r0, _081207E4 @ =gPlayerParty
	adds r6, r0
	mov r0, r8
	lsls r4, r0, 2
	add r4, r8
	lsls r4, 3
	ldr r0, _081207E8 @ =gTasks+0x8
	adds r4, r0
	adds r0, r6, 0
	movs r1, 0x39
	bl GetMonData
	strh r0, [r4]
	adds r0, r6, 0
	movs r1, 0x3A
	bl GetMonData
	strh r0, [r4, 0x2]
	lsls r5, 24
	asrs r5, 24
	strh r5, [r4, 0x4]
	mov r0, r10
	strh r0, [r4, 0x6]
	mov r0, r9
	strh r0, [r4, 0x8]
	ldrh r0, [r4]
	strh r0, [r4, 0xA]
	ldr r1, _081207EC @ =sub_81206A8
	mov r0, r8
	adds r2, r7, 0
	bl SetTaskFuncWithFollowupFunc
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081207E4: .4byte gPlayerParty
_081207E8: .4byte gTasks+0x8
_081207EC: .4byte sub_81206A8
	thumb_func_end sub_8120760

	thumb_func_start sub_81207F0
sub_81207F0: @ 81207F0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, _08120814 @ =gTasks+0x8
	adds r3, r0, r1
	cmp r5, 0x5
	bhi _08120852
	lsls r0, r5, 2
	ldr r1, _08120818 @ =_0812081C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08120814: .4byte gTasks+0x8
_08120818: .4byte _0812081C
	.align 2, 0
_0812081C:
	.4byte _08120834
	.4byte _0812083A
	.4byte _0812083E
	.4byte _08120842
	.4byte _08120846
	.4byte _0812084A
_08120834:
	strh r2, [r3]
	strh r2, [r3, 0xA]
	b _08120852
_0812083A:
	strh r2, [r3, 0x2]
	b _08120852
_0812083E:
	strh r2, [r3, 0x4]
	b _08120852
_08120842:
	strh r2, [r3, 0x6]
	b _08120852
_08120846:
	strh r2, [r3, 0x8]
	b _08120852
_0812084A:
	ldr r1, _08120858 @ =sub_81206A8
	adds r0, r4, 0
	bl SetTaskFuncWithFollowupFunc
_08120852:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120858: .4byte sub_81206A8
	thumb_func_end sub_81207F0

	thumb_func_start pokemon_ailments_get_primary
pokemon_ailments_get_primary: @ 812085C
	push {lr}
	adds r1, r0, 0
	movs r0, 0x88
	ands r0, r1
	cmp r0, 0
	beq _0812086C
	movs r0, 0x1
	b _0812089E
_0812086C:
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08120878
	movs r0, 0x2
	b _0812089E
_08120878:
	movs r0, 0x7
	ands r0, r1
	cmp r0, 0
	beq _08120884
	movs r0, 0x3
	b _0812089E
_08120884:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _08120890
	movs r0, 0x4
	b _0812089E
_08120890:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _0812089C
	movs r0, 0
	b _0812089E
_0812089C:
	movs r0, 0x5
_0812089E:
	pop {r1}
	bx r1
	thumb_func_end pokemon_ailments_get_primary

	thumb_func_start sub_81208A4
sub_81208A4: @ 81208A4
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	bne _081208B6
	movs r0, 0x7
	b _081208DE
_081208B6:
	adds r0, r4, 0
	movs r1, 0x37
	bl GetMonData
	bl pokemon_ailments_get_primary
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	bne _081208DE
	adds r0, r4, 0
	movs r1, 0
	bl CheckPartyPokerus
	lsls r0, 24
	cmp r0, 0
	bne _081208DC
	movs r0, 0
	b _081208DE
_081208DC:
	movs r0, 0x6
_081208DE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81208A4

	thumb_func_start sub_81208E4
sub_81208E4: @ 81208E4
	push {r4,r5,lr}
	ldr r2, _08120934 @ =gUnknown_203B0A0
	ldrb r1, [r2, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0xB
	bne _0812096E
	adds r5, r2, 0
	adds r5, 0xE
	movs r0, 0
	strh r0, [r2, 0xE]
	ldr r0, _08120938 @ =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0
	bne _08120944
	movs r4, 0
	ldr r0, _0812093C @ =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	bcs _0812096E
_0812090C:
	movs r0, 0x64
	muls r0, r4
	ldr r1, _08120940 @ =gPlayerParty
	adds r0, r1
	bl sub_812097C
	lsls r0, 16
	lsrs r0, 16
	lsls r0, r4
	ldrh r1, [r5]
	adds r0, r1
	strh r0, [r5]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _0812093C @ =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	bcc _0812090C
	b _0812096E
	.align 2, 0
_08120934: .4byte gUnknown_203B0A0
_08120938: .4byte gSpecialVar_0x8005
_0812093C: .4byte gPlayerPartyCount
_08120940: .4byte gPlayerParty
_08120944:
	movs r4, 0
	b _08120966
_08120948:
	movs r0, 0x64
	muls r0, r4
	ldr r1, _08120974 @ =gPlayerParty
	adds r0, r1
	bl sub_81209AC
	lsls r0, 16
	lsrs r0, 16
	lsls r0, r4
	ldrh r1, [r5]
	adds r0, r1
	strh r0, [r5]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
_08120966:
	ldr r0, _08120978 @ =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	bcc _08120948
_0812096E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120974: .4byte gPlayerParty
_08120978: .4byte gPlayerPartyCount
	thumb_func_end sub_81208E4

	thumb_func_start sub_812097C
sub_812097C: @ 812097C
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0x1
	beq _081209A2
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	bl sub_8149A00
	cmp r0, 0
	beq _081209A2
	movs r0, 0x1
	b _081209A4
_081209A2:
	movs r0, 0
_081209A4:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_812097C

	thumb_func_start sub_81209AC
sub_81209AC: @ 81209AC
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0x1
	beq _081209CA
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0x55
	bne _081209CA
	movs r0, 0x1
	b _081209CC
_081209CA:
	movs r0, 0
_081209CC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81209AC

	thumb_func_start sub_81209D4
sub_81209D4: @ 81209D4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _081209F0 @ =gUnknown_203B0A0
	movs r2, 0xE
	ldrsh r1, [r1, r2]
	asrs r1, r0
	movs r0, 0x1
	ands r1, r0
	cmp r1, 0
	bne _081209EC
	movs r0, 0
_081209EC:
	pop {r1}
	bx r1
	.align 2, 0
_081209F0: .4byte gUnknown_203B0A0
	thumb_func_end sub_81209D4

	thumb_func_start sub_81209F4
sub_81209F4: @ 81209F4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	adds r0, r5, 0
	bl sub_81209D4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08120A24
	movs r0, 0x5
	bl PlaySE
	ldr r0, _08120A20 @ =gUnknown_20370C0
	strh r5, [r0]
	adds r0, r4, 0
	bl sub_811FA78
	b _08120A46
	.align 2, 0
_08120A20: .4byte gUnknown_20370C0
_08120A24:
	movs r0, 0x1A
	bl PlaySE
	ldr r0, _08120A4C @ =gUnknown_8417696
	movs r1, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08120A50 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08120A54 @ =sub_81203B8
	str r1, [r0]
_08120A46:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120A4C: .4byte gUnknown_8417696
_08120A50: .4byte gTasks
_08120A54: .4byte sub_81203B8
	thumb_func_end sub_81209F4

	thumb_func_start sub_8120A58
sub_8120A58: @ 8120A58
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _08120A84 @ =gUnknown_84176B8
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08120A88 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08120A8C @ =sub_8120A90
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120A84: .4byte gUnknown_84176B8
_08120A88: .4byte gTasks
_08120A8C: .4byte sub_8120A90
	thumb_func_end sub_8120A58

	thumb_func_start sub_8120A90
sub_8120A90: @ 8120A90
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08120AB4
	bl sub_812200C
	ldr r0, _08120ABC @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120AC0 @ =sub_8120AC4
	str r0, [r1]
_08120AB4:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120ABC: .4byte gTasks
_08120AC0: .4byte sub_8120AC4
	thumb_func_end sub_8120A90

	thumb_func_start sub_8120AC4
sub_8120AC4: @ 8120AC4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _08120AEA
	cmp r1, 0
	bgt _08120AE4
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08120AFC
	b _08120B10
_08120AE4:
	cmp r1, 0x1
	beq _08120B02
	b _08120B10
_08120AEA:
	ldr r1, _08120AF8 @ =gUnknown_20370C0
	movs r0, 0x7
	strh r0, [r1]
	adds r0, r4, 0
	bl sub_811FA78
	b _08120B10
	.align 2, 0
_08120AF8: .4byte gUnknown_20370C0
_08120AFC:
	movs r0, 0x5
	bl PlaySE
_08120B02:
	ldr r0, _08120B18 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120B1C @ =sub_81203B8
	str r0, [r1]
_08120B10:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120B18: .4byte gTasks
_08120B1C: .4byte sub_81203B8
	thumb_func_end sub_8120AC4

	thumb_func_start sub_8120B20
sub_8120B20: @ 8120B20
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r0, 0
	lsls r1, 16
	lsrs r4, r1, 16
	adds r7, r4, 0
	lsls r2, 24
	lsrs r6, r2, 24
	mov r8, r6
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	beq _08120B42
	movs r0, 0x3
	b _08120B9E
_08120B42:
	movs r0, 0x90
	lsls r0, 1
	cmp r4, r0
	bls _08120B64
	adds r1, r4, 0
	subs r1, 0x21
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	bl CanMonLearnTMHM
	cmp r0, 0
	beq _08120B7C
	adds r0, r7, 0
	bl ItemIdToBattleMoveId
	b _08120B86
_08120B64:
	adds r0, r5, 0
	movs r1, 0xB
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	adds r1, r6, 0
	bl sub_8120BE8
	lsls r0, 24
	cmp r0, 0
	bne _08120B80
_08120B7C:
	movs r0, 0x1
	b _08120B9E
_08120B80:
	mov r0, r8
	bl sub_8120BA8
_08120B86:
	lsls r0, 16
	lsrs r1, r0, 16
	adds r0, r5, 0
	bl pokemon_has_move
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08120B9C
	movs r0, 0
	b _08120B9E
_08120B9C:
	movs r0, 0x2
_08120B9E:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8120B20

	thumb_func_start sub_8120BA8
sub_8120BA8: @ 8120BA8
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x10
	beq _08120BC8
	cmp r1, 0x10
	bgt _08120BBC
	cmp r1, 0xF
	beq _08120BC2
	b _08120BD6
_08120BBC:
	cmp r1, 0x11
	beq _08120BD0
	b _08120BD6
_08120BC2:
	movs r0, 0xA9
	lsls r0, 1
	b _08120BDE
_08120BC8:
	ldr r0, _08120BCC @ =0x00000133
	b _08120BDE
	.align 2, 0
_08120BCC: .4byte 0x00000133
_08120BD0:
	movs r0, 0x9A
	lsls r0, 1
	b _08120BDE
_08120BD6:
	ldr r0, _08120BE4 @ =gUnknown_8459B60
	lsls r1, 1
	adds r1, r0
	ldrh r0, [r1]
_08120BDE:
	pop {r1}
	bx r1
	.align 2, 0
_08120BE4: .4byte gUnknown_8459B60
	thumb_func_end sub_8120BA8

	thumb_func_start sub_8120BE8
sub_8120BE8: @ 8120BE8
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	lsls r1, 24
	lsrs r2, r1, 24
	cmp r2, 0x10
	beq _08120C0C
	cmp r2, 0x10
	bgt _08120C00
	cmp r2, 0xF
	beq _08120C06
	b _08120C18
_08120C00:
	cmp r2, 0x11
	beq _08120C12
	b _08120C18
_08120C06:
	cmp r0, 0x3
	beq _08120C34
	b _08120C2A
_08120C0C:
	cmp r0, 0x6
	beq _08120C34
	b _08120C2A
_08120C12:
	cmp r0, 0x9
	beq _08120C34
	b _08120C2A
_08120C18:
	ldr r1, _08120C30 @ =gUnknown_8459B7E
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	asrs r0, r2
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08120C34
_08120C2A:
	movs r0, 0
	b _08120C36
	.align 2, 0
_08120C30: .4byte gUnknown_8459B7E
_08120C34:
	movs r0, 0x1
_08120C36:
	pop {r1}
	bx r1
	thumb_func_end sub_8120BE8

	thumb_func_start sub_8120C3C
sub_8120C3C: @ 8120C3C
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08120C60 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08120C5C
	ldr r0, _08120C64 @ =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120C68 @ =sub_8120C6C
	str r0, [r1]
_08120C5C:
	pop {r0}
	bx r0
	.align 2, 0
_08120C60: .4byte gPaletteFade
_08120C64: .4byte gTasks
_08120C68: .4byte sub_8120C6C
	thumb_func_end sub_8120C3C

	thumb_func_start sub_8120C6C
sub_8120C6C: @ 8120C6C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _08120C9C @ =0xffff1fff
	movs r1, 0
	str r1, [sp]
	movs r1, 0x4
	movs r2, 0
	movs r3, 0x6
	bl BeginNormalPaletteFade
	ldr r1, _08120CA0 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08120CA4 @ =sub_8120CA8
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120C9C: .4byte 0xffff1fff
_08120CA0: .4byte gTasks
_08120CA4: .4byte sub_8120CA8
	thumb_func_end sub_8120C6C

	thumb_func_start sub_8120CA8
sub_8120CA8: @ 8120CA8
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08120CCC @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08120CC8
	ldr r0, _08120CD0 @ =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120CD4 @ =sub_8120CD8
	str r0, [r1]
_08120CC8:
	pop {r0}
	bx r0
	.align 2, 0
_08120CCC: .4byte gPaletteFade
_08120CD0: .4byte gTasks
_08120CD4: .4byte sub_8120CD8
	thumb_func_end sub_8120CA8

	thumb_func_start sub_8120CD8
sub_8120CD8: @ 8120CD8
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_81220D4
	ldr r2, _08120D00 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r2
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1, 0x8]
	ldr r0, _08120D04 @ =sub_8120D08
	str r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120D00: .4byte gTasks
_08120D04: .4byte sub_8120D08
	thumb_func_end sub_8120CD8

	thumb_func_start sub_8120D08
sub_8120D08: @ 8120D08
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r4, r1, 3
	ldr r5, _08120D38 @ =gTasks+0x8
	adds r0, r4, r5
	ldrb r0, [r0]
	bl sub_80BF518
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	beq _08120D30
	adds r0, r5, 0
	subs r0, 0x8
	adds r0, r4, r0
	ldr r1, _08120D3C @ =sub_8120D40
	str r1, [r0]
_08120D30:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120D38: .4byte gTasks+0x8
_08120D3C: .4byte sub_8120D40
	thumb_func_end sub_8120D08

	thumb_func_start sub_8120D40
sub_8120D40: @ 8120D40
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _08120D70 @ =0xffff0008
	movs r1, 0
	str r1, [sp]
	movs r1, 0x4
	movs r2, 0x6
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r1, _08120D74 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08120D78 @ =sub_8120D7C
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120D70: .4byte 0xffff0008
_08120D74: .4byte gTasks
_08120D78: .4byte sub_8120D7C
	thumb_func_end sub_8120D40

	thumb_func_start sub_8120D7C
sub_8120D7C: @ 8120D7C
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08120DA0 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08120D9C
	ldr r0, _08120DA4 @ =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120DA8 @ =sub_8120DAC
	str r0, [r1]
_08120D9C:
	pop {r0}
	bx r0
	.align 2, 0
_08120DA0: .4byte gPaletteFade
_08120DA4: .4byte gTasks
_08120DA8: .4byte sub_8120DAC
	thumb_func_end sub_8120D7C

	thumb_func_start sub_8120DAC
sub_8120DAC: @ 8120DAC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, _08120DD4 @ =gTasks+0x8
	adds r0, r4, r5
	ldrb r0, [r0]
	ldr r1, _08120DD8 @ =gUnknown_8417494
	bl sub_8122084
	subs r5, 0x8
	adds r4, r5
	ldr r0, _08120DDC @ =sub_8120DE0
	str r0, [r4]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08120DD4: .4byte gTasks+0x8
_08120DD8: .4byte gUnknown_8417494
_08120DDC: .4byte sub_8120DE0
	thumb_func_end sub_8120DAC

	thumb_func_start sub_8120DE0
sub_8120DE0: @ 8120DE0
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r5, r1, 3
	ldr r6, _08120E14 @ =gTasks+0x8
	adds r4, r5, r6
	ldrb r0, [r4]
	bl sub_80BF518
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	beq _08120E0E
	ldrb r0, [r4]
	bl sub_8122110
	adds r0, r6, 0
	subs r0, 0x8
	adds r0, r5, r0
	ldr r1, _08120E18 @ =sub_8120E1C
	str r1, [r0]
_08120E0E:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08120E14: .4byte gTasks+0x8
_08120E18: .4byte sub_8120E1C
	thumb_func_end sub_8120DE0

	thumb_func_start sub_8120E1C
sub_8120E1C: @ 8120E1C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _08120E4C @ =0x0000fff7
	movs r1, 0
	str r1, [sp]
	movs r1, 0x4
	movs r2, 0x6
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r1, _08120E50 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08120E54 @ =sub_8120E58
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120E4C: .4byte 0x0000fff7
_08120E50: .4byte gTasks
_08120E54: .4byte sub_8120E58
	thumb_func_end sub_8120E1C

	thumb_func_start sub_8120E58
sub_8120E58: @ 8120E58
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _08120E90 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08120EAC
	movs r0, 0
	movs r1, 0x4F
	movs r2, 0xD0
	bl sub_815001C
	movs r0, 0
	movs r1, 0x58
	movs r2, 0xF0
	bl sub_814FF2C
	ldr r0, _08120E94 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x3
	bne _08120E98
	movs r0, 0x5
	bl sub_8121D0C
	b _08120E9E
	.align 2, 0
_08120E90: .4byte gPaletteFade
_08120E94: .4byte gUnknown_203B0A0
_08120E98:
	movs r0, 0
	bl sub_8121D0C
_08120E9E:
	ldr r0, _08120EB4 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08120EB8 @ =sub_811FB28
	str r0, [r1]
_08120EAC:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08120EB4: .4byte gTasks
_08120EB8: .4byte sub_811FB28
	thumb_func_end sub_8120E58

	thumb_func_start sub_8120EBC
sub_8120EBC: @ 8120EBC
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, _08120ED8 @ =gTasks+0x8
	adds r3, r1, r0
	movs r2, 0
	strh r2, [r3]
	subs r0, 0x8
	adds r1, r0
	ldr r0, _08120EDC @ =sub_8120EE0
	str r0, [r1]
	bx lr
	.align 2, 0
_08120ED8: .4byte gTasks+0x8
_08120EDC: .4byte sub_8120EE0
	thumb_func_end sub_8120EBC

	thumb_func_start sub_8120EE0
sub_8120EE0: @ 8120EE0
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, _08120F1C @ =gTasks+0x8
	adds r6, r0, r1
	ldr r0, _08120F20 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08120F68
	adds r0, r5, 0
	bl sub_8120F78
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08120F68
	movs r1, 0
	ldrsh r0, [r6, r1]
	cmp r0, 0xA0
	beq _08120F38
	cmp r0, 0xA0
	bgt _08120F24
	cmp r0, 0x50
	beq _08120F2A
	b _08120F62
	.align 2, 0
_08120F1C: .4byte gTasks+0x8
_08120F20: .4byte gPaletteFade
_08120F24:
	cmp r0, 0xF0
	beq _08120F44
	b _08120F62
_08120F2A:
	ldr r0, _08120F34 @ =gUnknown_203B0A9
	movs r1, 0x2
	bl sub_811FF94
	b _08120F62
	.align 2, 0
_08120F34: .4byte gUnknown_203B0A9
_08120F38:
	movs r0, 0x5
	bl PlaySE
	bl sub_8122BD4
	b _08120F62
_08120F44:
	ldr r4, _08120F70 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xE
	bl sub_8121CE4
	ldr r1, _08120F74 @ =gUnknown_845A618
	ldr r0, [r4]
	ldrb r0, [r0, 0xF]
	lsls r0, 3
	adds r1, 0x4
	adds r0, r1
	ldr r1, [r0]
	adds r0, r5, 0
	bl _call_via_r1
_08120F62:
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
_08120F68:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08120F70: .4byte gUnknown_203B09C
_08120F74: .4byte gUnknown_845A618
	thumb_func_end sub_8120EE0

	thumb_func_start sub_8120F78
sub_8120F78: @ 8120F78
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08120F90 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _08120F94
	movs r0, 0
	b _08120FA4
	.align 2, 0
_08120F90: .4byte gMain
_08120F94:
	ldr r0, _08120FA8 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08120FAC @ =sub_8120FB0
	str r0, [r1, 0x4]
	adds r0, r2, 0
	bl sub_811FA78
	movs r0, 0x1
_08120FA4:
	pop {r1}
	bx r1
	.align 2, 0
_08120FA8: .4byte gUnknown_203B09C
_08120FAC: .4byte sub_8120FB0
	thumb_func_end sub_8120F78

	thumb_func_start sub_8120FB0
sub_8120FB0: @ 8120FB0
	push {lr}
	bl FreeRestoreBattleData
	bl LoadPlayerParty
	bl sub_815AC20
	ldr r0, _08120FC8 @ =sub_815ABFC
	bl SetMainCallback2
	pop {r0}
	bx r0
	.align 2, 0
_08120FC8: .4byte sub_815ABFC
	thumb_func_end sub_8120FB0

	thumb_func_start sub_8120FCC
sub_8120FCC: @ 8120FCC
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, _08120FE8 @ =gTasks+0x8
	adds r3, r1, r0
	movs r2, 0
	strh r2, [r3]
	subs r0, 0x8
	adds r1, r0
	ldr r0, _08120FEC @ =sub_8120FF0
	str r0, [r1]
	bx lr
	.align 2, 0
_08120FE8: .4byte gTasks+0x8
_08120FEC: .4byte sub_8120FF0
	thumb_func_end sub_8120FCC

	thumb_func_start sub_8120FF0
sub_8120FF0: @ 8120FF0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	adds r5, r2, 0
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, _0812102C @ =gTasks+0x8
	adds r4, r0, r1
	ldr r0, _08121030 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08121048
	adds r0, r2, 0
	bl sub_8120F78
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08121048
	ldrh r1, [r4]
	movs r2, 0
	ldrsh r0, [r4, r2]
	cmp r0, 0x50
	beq _08121034
	adds r0, r1, 0x1
	strh r0, [r4]
	b _08121048
	.align 2, 0
_0812102C: .4byte gTasks+0x8
_08121030: .4byte gPaletteFade
_08121034:
	ldr r0, _08121050 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08121054 @ =sub_8128184
	str r0, [r1, 0x4]
	ldr r0, _08121058 @ =gUnknown_3005E98
	ldr r1, _0812105C @ =sub_81255BC
	ldr r2, [r0]
	adds r0, r5, 0
	bl _call_via_r2
_08121048:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08121050: .4byte gUnknown_203B09C
_08121054: .4byte sub_8128184
_08121058: .4byte gUnknown_3005E98
_0812105C: .4byte sub_81255BC
	thumb_func_end sub_8120FF0

	thumb_func_start sub_8121060
sub_8121060: @ 8121060
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x1
	beq _08121088
	cmp r0, 0x1
	bgt _08121076
	cmp r0, 0
	beq _0812107C
	b _081210A0
_08121076:
	cmp r1, 0x2
	beq _08121094
	b _081210A0
_0812107C:
	ldr r0, _08121084 @ =gUnknown_845A010
	bl InitWindows
	b _081210A6
	.align 2, 0
_08121084: .4byte gUnknown_845A010
_08121088:
	ldr r0, _08121090 @ =gUnknown_845A050
	bl InitWindows
	b _081210A6
	.align 2, 0
_08121090: .4byte gUnknown_845A050
_08121094:
	ldr r0, _0812109C @ =gUnknown_845A090
	bl InitWindows
	b _081210A6
	.align 2, 0
_0812109C: .4byte gUnknown_845A090
_081210A0:
	ldr r0, _081210F4 @ =gUnknown_845A0D0
	bl InitWindows
_081210A6:
	bl DeactivateAllTextPrinters
	movs r4, 0
_081210AC:
	adds r0, r4, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _081210AC
	movs r0, 0
	movs r1, 0x4F
	movs r2, 0xD0
	bl sub_815001C
	movs r0, 0
	movs r1, 0x58
	movs r2, 0xF0
	bl sub_814FF2C
	movs r0, 0x2
	bl stdpal_get
	movs r1, 0xC0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0
	bl stdpal_get
	movs r1, 0xE0
	movs r2, 0x20
	bl LoadPalette
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081210F4: .4byte gUnknown_845A0D0
	thumb_func_end sub_8121060

	thumb_func_start sub_81210F8
sub_81210F8: @ 81210F8
	push {r4-r6,lr}
	sub sp, 0x14
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08121174 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x5
	bne _0812110E
	b _08121238
_0812110E:
	cmp r2, 0x1
	bne _08121188
	ldr r0, _08121178 @ =gUnknown_845A118
	bl AddWindow
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r5, _0812117C @ =gUnknown_84169D5
	movs r0, 0
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	movs r2, 0x30
	subs r2, r0
	lsrs r2, 1
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	ldr r0, _08121180 @ =gUnknown_8459FFC
	str r0, [sp, 0x8]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0xC]
	str r5, [sp, 0x10]
	adds r0, r4, 0
	movs r1, 0
	movs r3, 0x1
	bl AddTextPrinterParametrized2
	adds r0, r4, 0
	bl PutWindowTilemap
	adds r0, r4, 0
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, _08121184 @ =gUnknown_845A110
	bl AddWindow
	lsls r0, 24
	lsrs r6, r0, 24
	movs r5, 0
	b _08121194
	.align 2, 0
_08121174: .4byte gUnknown_203B0A0
_08121178: .4byte gUnknown_845A118
_0812117C: .4byte gUnknown_84169D5
_08121180: .4byte gUnknown_8459FFC
_08121184: .4byte gUnknown_845A110
_08121188:
	ldr r0, _081211E0 @ =gUnknown_845A108
	bl AddWindow
	lsls r0, 24
	lsrs r6, r0, 24
	movs r5, 0x3
_08121194:
	adds r0, r6, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r0, _081211E4 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0xA
	beq _081211F0
	ldr r4, _081211E8 @ =gUnknown_84161C1
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	movs r1, 0x30
	subs r1, r0
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	adds r1, r5, r1
	lsls r1, 24
	lsrs r5, r1, 24
	ldr r0, _081211EC @ =gUnknown_8459FFC
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl box_print
	b _08121224
	.align 2, 0
_081211E0: .4byte gUnknown_845A108
_081211E4: .4byte gUnknown_203B0A0
_081211E8: .4byte gUnknown_84161C1
_081211EC: .4byte gUnknown_8459FFC
_081211F0:
	ldr r4, _08121240 @ =gUnknown_84161C8
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	movs r1, 0x30
	subs r1, r0
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	adds r1, r5, r1
	lsls r1, 24
	lsrs r5, r1, 24
	ldr r0, _08121244 @ =gUnknown_8459FFC
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl box_print
_08121224:
	adds r0, r6, 0
	bl PutWindowTilemap
	adds r0, r6, 0
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
_08121238:
	add sp, 0x14
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08121240: .4byte gUnknown_84161C8
_08121244: .4byte gUnknown_8459FFC
	thumb_func_end sub_81210F8

	thumb_func_start sub_8121248
sub_8121248: @ 8121248
	lsls r0, 24
	ldr r1, _08121258 @ =gUnknown_203B09C
	lsrs r0, 23
	adds r0, 0x18
	ldr r1, [r1]
	adds r1, r0
	adds r0, r1, 0
	bx lr
	.align 2, 0
_08121258: .4byte gUnknown_203B09C
	thumb_func_end sub_8121248

	thumb_func_start sub_812125C
sub_812125C: @ 812125C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	str r1, [sp, 0xC]
	ldr r1, [sp, 0x4C]
	ldr r4, [sp, 0x50]
	ldr r5, [sp, 0x54]
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x8]
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp, 0x10]
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x14]
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x18]
	lsls r4, 24
	lsrs r6, r4, 24
	lsls r5, 24
	lsrs r5, 24
	mov r10, r5
	mov r0, r10
	muls r0, r6
	lsls r0, 5
	bl AllocZeroed
	mov r9, r0
	cmp r0, 0
	beq _0812132A
	movs r5, 0
	ldr r0, [sp, 0x14]
	lsls r0, 19
	str r0, [sp, 0x1C]
	ldr r1, [sp, 0x18]
	lsls r1, 19
	str r1, [sp, 0x20]
	lsls r2, r6, 19
	str r2, [sp, 0x24]
	mov r0, r10
	lsls r0, 19
	str r0, [sp, 0x28]
	cmp r5, r10
	bcs _08121308
_081212BE:
	movs r4, 0
	adds r1, r5, 0x1
	mov r8, r1
	cmp r4, r6
	bcs _081212FE
	ldr r2, [sp, 0x18]
	adds r0, r2, r5
	ldr r2, [sp, 0x10]
	adds r1, r0, 0
	muls r1, r2
	adds r7, r1, 0
_081212D4:
	ldr r1, [sp, 0x14]
	adds r0, r1, r4
	adds r0, r7
	ldr r2, [sp, 0xC]
	adds r0, r2, r0
	ldrb r0, [r0]
	bl sub_811F620
	adds r1, r5, 0
	muls r1, r6
	adds r1, r4
	lsls r1, 5
	add r1, r9
	movs r2, 0x10
	bl CpuSet
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r6
	bcc _081212D4
_081212FE:
	mov r1, r8
	lsls r0, r1, 24
	lsrs r5, r0, 24
	cmp r5, r10
	bcc _081212BE
_08121308:
	ldr r0, [sp, 0x1C]
	lsrs r2, r0, 16
	ldr r1, [sp, 0x20]
	lsrs r3, r1, 16
	ldr r1, [sp, 0x24]
	lsrs r0, r1, 16
	str r0, [sp]
	ldr r1, [sp, 0x28]
	lsrs r0, r1, 16
	str r0, [sp, 0x4]
	ldr r0, [sp, 0x8]
	mov r1, r9
	bl BlitBitmapToWindow
	mov r0, r9
	bl Free
_0812132A:
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_812125C

	thumb_func_start sub_812133C
sub_812133C: @ 812133C
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r4, [sp, 0x1C]
	ldr r5, [sp, 0x20]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	cmp r3, 0
	bne _08121368
	cmp r4, 0
	bne _08121368
	movs r3, 0xA
	movs r4, 0x7
_08121368:
	cmp r5, 0
	bne _08121384
	ldr r1, _08121380 @ =gUnknown_845A180
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r2, 0xA
	adds r3, r6, 0
	bl sub_812125C
	b _08121394
	.align 2, 0
_08121380: .4byte gUnknown_845A180
_08121384:
	ldr r1, _0812139C @ =gUnknown_845A1C6
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r2, 0xA
	adds r3, r6, 0
	bl sub_812125C
_08121394:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0812139C: .4byte gUnknown_845A1C6
	thumb_func_end sub_812133C

	thumb_func_start sub_81213A0
sub_81213A0: @ 81213A0
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r4, [sp, 0x1C]
	ldr r5, [sp, 0x20]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	cmp r3, 0
	bne _081213CC
	cmp r4, 0
	bne _081213CC
	movs r3, 0x12
	movs r4, 0x3
_081213CC:
	cmp r5, 0
	bne _081213E8
	ldr r1, _081213E4 @ =gUnknown_845A20C
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r2, 0x12
	adds r3, r6, 0
	bl sub_812125C
	b _081213F8
	.align 2, 0
_081213E4: .4byte gUnknown_845A20C
_081213E8:
	ldr r1, _08121400 @ =gUnknown_845A242
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r2, 0x12
	adds r3, r6, 0
	bl sub_812125C
_081213F8:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08121400: .4byte gUnknown_845A242
	thumb_func_end sub_81213A0

	thumb_func_start sub_8121404
sub_8121404: @ 8121404
	push {lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _08121428 @ =gUnknown_845A278
	movs r2, 0
	str r2, [sp]
	movs r2, 0x12
	str r2, [sp, 0x4]
	movs r2, 0x3
	str r2, [sp, 0x8]
	movs r2, 0x12
	movs r3, 0
	bl sub_812125C
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08121428: .4byte gUnknown_845A278
	thumb_func_end sub_8121404

	thumb_func_start sub_812142C
sub_812142C: @ 812142C
	push {r4-r7,lr}
	lsls r1, 24
	lsrs r4, r1, 24
	adds r5, r4, 0
	ldrb r0, [r0, 0x8]
	movs r1, 0x5
	bl GetWindowAttribute
	lsls r0, 28
	lsrs r6, r0, 24
	adds r7, r6, 0
	movs r0, 0x20
	ands r0, r4
	cmp r0, 0
	beq _081214A0
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _0812145C
	ldr r5, _08121458 @ =gUnknown_845A2D4
	b _0812160A
	.align 2, 0
_08121458: .4byte gUnknown_845A2D4
_0812145C:
	ldr r5, _08121494 @ =gUnknown_845A2D4
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121498 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _0812149C @ =gUnknown_845A2E3
	b _0812163E
	.align 2, 0
_08121494: .4byte gUnknown_845A2D4
_08121498: .4byte gUnknown_845A2B2
_0812149C: .4byte gUnknown_845A2E3
_081214A0:
	movs r0, 0x10
	ands r0, r4
	cmp r0, 0
	beq _081214EC
	ldr r5, _081214E0 @ =gUnknown_845A2D4
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _081214E4 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _081214E8 @ =gUnknown_845A2E3
	b _0812163E
	.align 2, 0
_081214E0: .4byte gUnknown_845A2D4
_081214E4: .4byte gUnknown_845A2B2
_081214E8: .4byte gUnknown_845A2E3
_081214EC:
	movs r0, 0x4
	ands r0, r4
	cmp r0, 0
	beq _08121548
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _08121504
	ldr r5, _08121500 @ =gUnknown_845A2D4
	b _0812160A
	.align 2, 0
_08121500: .4byte gUnknown_845A2D4
_08121504:
	ldr r5, _0812153C @ =gUnknown_845A2D4
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121540 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _08121544 @ =gUnknown_845A2E3
	b _0812163E
	.align 2, 0
_0812153C: .4byte gUnknown_845A2D4
_08121540: .4byte gUnknown_845A2B2
_08121544: .4byte gUnknown_845A2E3
_08121548:
	movs r0, 0x2
	ands r0, r4
	cmp r0, 0
	beq _081215A4
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _08121560
	ldr r5, _0812155C @ =gUnknown_845A2D1
	b _0812160A
	.align 2, 0
_0812155C: .4byte gUnknown_845A2D1
_08121560:
	ldr r5, _08121598 @ =gUnknown_845A2C8
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _0812159C @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _081215A0 @ =gUnknown_845A2DD
	b _0812163E
	.align 2, 0
_08121598: .4byte gUnknown_845A2C8
_0812159C: .4byte gUnknown_845A2B2
_081215A0: .4byte gUnknown_845A2DD
_081215A4:
	movs r0, 0x8
	ands r0, r4
	cmp r0, 0
	beq _08121600
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _081215BC
	ldr r5, _081215B8 @ =gUnknown_845A2CE
	b _0812160A
	.align 2, 0
_081215B8: .4byte gUnknown_845A2CE
_081215BC:
	ldr r5, _081215F4 @ =gUnknown_845A2C5
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _081215F8 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _081215FC @ =gUnknown_845A2DA
	b _0812163E
	.align 2, 0
_081215F4: .4byte gUnknown_845A2C5
_081215F8: .4byte gUnknown_845A2B2
_081215FC: .4byte gUnknown_845A2DA
_08121600:
	movs r0, 0x1
	ands r5, r0
	cmp r5, 0
	beq _08121684
	ldr r5, _08121674 @ =gUnknown_845A2CB
_0812160A:
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121678 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _0812167C @ =gUnknown_845A2E0
_0812163E:
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121680 @ =gUnknown_845A2B5
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	b _081216EC
	.align 2, 0
_08121674: .4byte gUnknown_845A2CB
_08121678: .4byte gUnknown_845A2B2
_0812167C: .4byte gUnknown_845A2E0
_08121680: .4byte gUnknown_845A2B5
_08121684:
	ldr r5, _081216F4 @ =gUnknown_845A2C2
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _081216F8 @ =gUnknown_845A2B2
	ldrb r1, [r4]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldr r5, _081216FC @ =gUnknown_845A2D7
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121700 @ =gUnknown_845A2B5
	ldrb r1, [r4]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x2]
	bl sub_8121248
	ldrb r1, [r4, 0x2]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
_081216EC:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081216F4: .4byte gUnknown_845A2C2
_081216F8: .4byte gUnknown_845A2B2
_081216FC: .4byte gUnknown_845A2D7
_08121700: .4byte gUnknown_845A2B5
	thumb_func_end sub_812142C

	thumb_func_start sub_8121704
sub_8121704: @ 8121704
	push {r4,r5,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	ldrb r5, [r3]
	ldrb r3, [r3, 0x1]
	lsls r4, r2, 1
	adds r4, r2
	ldr r2, _08121734 @ =gUnknown_8459FFC
	adds r4, r2
	str r4, [sp]
	movs r2, 0
	str r2, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0
	adds r2, r5, 0
	bl box_print
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08121734: .4byte gUnknown_8459FFC
	thumb_func_end sub_8121704

	thumb_func_start sub_8121738
sub_8121738: @ 8121738
	push {r4-r7,lr}
	sub sp, 0x14
	adds r7, r0, 0
	adds r6, r1, 0
	lsls r2, 24
	lsrs r4, r2, 24
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08121788
	cmp r4, 0x1
	bne _08121772
	ldr r5, [r6]
	ldrb r0, [r6, 0x8]
	ldrb r1, [r5, 0x4]
	lsrs r1, 3
	ldrb r2, [r5, 0x5]
	lsrs r2, 3
	ldrb r3, [r5, 0x6]
	lsrs r3, 3
	ldrb r4, [r5, 0x7]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_08121772:
	adds r0, r7, 0
	add r1, sp, 0x8
	bl GetMonNickname
	ldrb r0, [r6, 0x8]
	ldr r3, [r6]
	adds r3, 0x4
	add r1, sp, 0x8
	movs r2, 0
	bl sub_8121704
_08121788:
	add sp, 0x14
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8121738

	thumb_func_start sub_8121790
sub_8121790: @ 8121790
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	adds r6, r0, 0
	adds r7, r1, 0
	lsls r2, 24
	lsrs r4, r2, 24
	mov r8, r4
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _081217FC
	adds r0, r6, 0
	bl sub_81208A4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _081217BE
	cmp r0, 0x6
	bne _081217FC
_081217BE:
	cmp r4, 0
	beq _081217E4
	ldr r5, [r7]
	ldrb r0, [r7, 0x8]
	ldrb r1, [r5, 0x8]
	lsrs r1, 3
	ldrb r2, [r5, 0x9]
	lsrs r2, 3
	adds r2, 0x1
	ldrb r3, [r5, 0xA]
	lsrs r3, 3
	ldrb r4, [r5, 0xB]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_081217E4:
	mov r0, r8
	cmp r0, 0x2
	beq _081217FC
	adds r0, r6, 0
	movs r1, 0x38
	bl GetMonData
	lsls r0, 24
	lsrs r0, 24
	adds r1, r7, 0
	bl sub_8121808
_081217FC:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8121790

	thumb_func_start sub_8121808
sub_8121808: @ 8121808
	push {r4-r6,lr}
	adds r2, r0, 0
	adds r6, r1, 0
	lsls r2, 24
	lsrs r2, 24
	ldr r5, _08121848 @ =gStringVar2
	adds r0, r5, 0
	adds r1, r2, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r4, _0812184C @ =gStringVar1
	ldr r1, _08121850 @ =gUnknown_8416223
	adds r0, r4, 0
	bl StringCopy
	adds r0, r4, 0
	adds r1, r5, 0
	bl StringAppend
	ldrb r0, [r6, 0x8]
	ldr r3, [r6]
	adds r3, 0x8
	adds r1, r4, 0
	movs r2, 0
	bl sub_8121704
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08121848: .4byte gStringVar2
_0812184C: .4byte gStringVar1
_08121850: .4byte gUnknown_8416223
	thumb_func_end sub_8121808

	thumb_func_start sub_8121854
sub_8121854: @ 8121854
	push {r4-r7,lr}
	sub sp, 0x14
	adds r6, r0, 0
	adds r7, r1, 0
	lsls r2, 24
	lsrs r2, 24
	cmp r2, 0x1
	bne _08121886
	ldr r5, [r7]
	ldrb r0, [r7, 0x8]
	ldrb r1, [r5, 0xC]
	lsrs r1, 3
	ldrb r2, [r5, 0xD]
	lsrs r2, 3
	adds r2, 0x1
	ldrb r3, [r5, 0xE]
	lsrs r3, 3
	ldrb r4, [r5, 0xF]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_08121886:
	adds r0, r6, 0
	add r1, sp, 0x8
	bl GetMonNickname
	adds r0, r6, 0
	bl GetMonGender
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r6, 0
	movs r1, 0xB
	bl GetMonData
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	add r2, sp, 0x8
	adds r3, r7, 0
	bl sub_81218BC
	add sp, 0x14
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8121854

	thumb_func_start sub_81218BC
sub_81218BC: @ 81218BC
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	mov r9, r2
	adds r7, r3, 0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 16
	lsrs r4, r1, 16
	adds r5, r4, 0
	ldrb r0, [r7, 0x8]
	movs r1, 0x5
	bl GetWindowAttribute
	lsls r0, 28
	lsrs r6, r0, 24
	cmp r4, 0
	beq _08121982
	cmp r4, 0x20
	beq _081218EC
	cmp r4, 0x1D
	bne _08121900
_081218EC:
	movs r0, 0xB
	adds r1, r5, 0
	muls r1, r0
	ldr r0, _0812190C @ =gSpeciesNames
	adds r1, r0
	mov r0, r9
	bl StringCompare
	cmp r0, 0
	beq _08121982
_08121900:
	mov r0, r8
	cmp r0, 0
	beq _08121910
	cmp r0, 0xFE
	beq _08121950
	b _08121982
	.align 2, 0
_0812190C: .4byte gSpeciesNames
_08121910:
	ldr r5, _08121944 @ =gUnknown_845A2B8
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121948 @ =gUnknown_845A2AE
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r7, 0x8]
	ldr r1, _0812194C @ =gUnknown_841621F
	ldr r3, [r7]
	adds r3, 0xC
	movs r2, 0x2
	bl sub_8121704
	b _08121982
	.align 2, 0
_08121944: .4byte gUnknown_845A2B8
_08121948: .4byte gUnknown_845A2AE
_0812194C: .4byte gUnknown_841621F
_08121950:
	ldr r5, _08121990 @ =gUnknown_845A2BA
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121994 @ =gUnknown_845A2AE
	ldrb r1, [r4]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r6
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r7, 0x8]
	ldr r1, _08121998 @ =gUnknown_8416221
	ldr r3, [r7]
	adds r3, 0xC
	movs r2, 0x2
	bl sub_8121704
_08121982:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08121990: .4byte gUnknown_845A2BA
_08121994: .4byte gUnknown_845A2AE
_08121998: .4byte gUnknown_8416221
	thumb_func_end sub_81218BC

	thumb_func_start sub_812199C
sub_812199C: @ 812199C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	adds r7, r0, 0
	adds r6, r1, 0
	lsls r2, 24
	lsrs r4, r2, 24
	mov r8, r4
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _081219F6
	cmp r4, 0
	beq _081219DE
	ldr r5, [r6]
	ldrb r0, [r6, 0x8]
	ldrb r1, [r5, 0x10]
	lsrs r1, 3
	ldrb r2, [r5, 0x11]
	lsrs r2, 3
	adds r2, 0x1
	ldrb r3, [r5, 0x12]
	lsrs r3, 3
	ldrb r4, [r5, 0x13]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_081219DE:
	mov r0, r8
	cmp r0, 0x2
	beq _081219F6
	adds r0, r7, 0
	movs r1, 0x39
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	adds r1, r6, 0
	bl sub_8121A04
_081219F6:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_812199C

	thumb_func_start sub_8121A04
sub_8121A04: @ 8121A04
	push {r4,r5,lr}
	adds r2, r0, 0
	adds r4, r1, 0
	lsls r2, 16
	lsrs r2, 16
	ldr r5, _08121A38 @ =gStringVar1
	adds r0, r5, 0
	adds r1, r2, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r1, 0xBA
	strb r1, [r0]
	movs r1, 0xFF
	strb r1, [r0, 0x1]
	ldrb r0, [r4, 0x8]
	ldr r3, [r4]
	adds r3, 0x10
	adds r1, r5, 0
	movs r2, 0
	bl sub_8121704
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08121A38: .4byte gStringVar1
	thumb_func_end sub_8121A04

	thumb_func_start sub_8121A3C
sub_8121A3C: @ 8121A3C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	adds r7, r0, 0
	adds r6, r1, 0
	lsls r2, 24
	lsrs r4, r2, 24
	mov r8, r4
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08121A98
	cmp r4, 0
	beq _08121A80
	ldr r5, [r6]
	ldrb r0, [r6, 0x8]
	ldrb r1, [r5, 0x14]
	lsrs r1, 3
	adds r1, 0x1
	ldrb r2, [r5, 0x15]
	lsrs r2, 3
	adds r2, 0x1
	ldrb r3, [r5, 0x16]
	lsrs r3, 3
	ldrb r4, [r5, 0x17]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_08121A80:
	mov r0, r8
	cmp r0, 0x2
	beq _08121A98
	adds r0, r7, 0
	movs r1, 0x3A
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	adds r1, r6, 0
	bl sub_8121AA4
_08121A98:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8121A3C

	thumb_func_start sub_8121AA4
sub_8121AA4: @ 8121AA4
	push {r4-r6,lr}
	adds r2, r0, 0
	adds r6, r1, 0
	lsls r2, 16
	lsrs r2, 16
	ldr r5, _08121AE4 @ =gStringVar2
	adds r0, r5, 0
	adds r1, r2, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r4, _08121AE8 @ =gStringVar1
	ldr r1, _08121AEC @ =gUnknown_841620C
	adds r0, r4, 0
	bl StringCopy
	adds r0, r4, 0
	adds r1, r5, 0
	bl StringAppend
	ldrb r0, [r6, 0x8]
	ldr r3, [r6]
	adds r3, 0x14
	adds r1, r4, 0
	movs r2, 0
	bl sub_8121704
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08121AE4: .4byte gStringVar2
_08121AE8: .4byte gStringVar1
_08121AEC: .4byte gUnknown_841620C
	thumb_func_end sub_8121AA4

	thumb_func_start sub_8121AF0
sub_8121AF0: @ 8121AF0
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08121B24
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r5, 0
	movs r1, 0x3A
	bl GetMonData
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	adds r2, r6, 0
	bl sub_8121B2C
_08121B24:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8121AF0

	thumb_func_start sub_8121B2C
sub_8121B2C: @ 8121B2C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r6, r2, 0
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 16
	lsrs r1, 16
	mov r9, r1
	ldrb r0, [r6, 0x8]
	movs r1, 0x5
	bl GetWindowAttribute
	lsls r0, 28
	lsrs r7, r0, 24
	mov r1, r8
	lsls r0, r1, 16
	asrs r0, 16
	mov r2, r9
	lsls r1, r2, 16
	asrs r1, 16
	bl GetHPBarLevel
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	beq _08121B78
	cmp r0, 0x2
	blt _08121BA8
	cmp r0, 0x4
	bgt _08121BA8
	ldr r5, _08121B74 @ =gUnknown_845A2BC
	b _08121B7A
	.align 2, 0
_08121B74: .4byte gUnknown_845A2BC
_08121B78:
	ldr r5, _08121BA0 @ =gUnknown_845A2BE
_08121B7A:
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121BA4 @ =gUnknown_845A2B0
	ldrb r1, [r4]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	b _08121BCC
	.align 2, 0
_08121BA0: .4byte gUnknown_845A2BE
_08121BA4: .4byte gUnknown_845A2B0
_08121BA8:
	ldr r5, _08121C68 @ =gUnknown_845A2C0
	ldrb r0, [r5]
	bl sub_8121248
	ldr r4, _08121C6C @ =gUnknown_845A2B0
	ldrb r1, [r4]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
	ldrb r0, [r5, 0x1]
	bl sub_8121248
	ldrb r1, [r4, 0x1]
	adds r1, r7
	movs r2, 0x2
	bl LoadPalette
_08121BCC:
	mov r1, r8
	lsls r0, r1, 16
	asrs r0, 16
	mov r2, r9
	lsls r1, r2, 16
	asrs r1, 16
	ldr r2, [r6]
	ldrb r2, [r2, 0x1A]
	bl GetScaledHPFraction
	lsls r0, 24
	lsrs r5, r0, 24
	ldrb r0, [r6, 0x8]
	ldr r4, _08121C6C @ =gUnknown_845A2B0
	ldrb r1, [r4, 0x1]
	ldr r3, [r6]
	ldrb r2, [r3, 0x18]
	ldrb r3, [r3, 0x19]
	str r5, [sp]
	movs r7, 0x1
	str r7, [sp, 0x4]
	bl FillWindowPixelRect
	ldrb r0, [r6, 0x8]
	ldrb r1, [r4]
	ldr r3, [r6]
	ldrb r2, [r3, 0x18]
	ldrb r3, [r3, 0x19]
	adds r3, 0x1
	str r5, [sp]
	movs r4, 0x2
	str r4, [sp, 0x4]
	bl FillWindowPixelRect
	ldr r1, [r6]
	ldrb r0, [r1, 0x1A]
	cmp r5, r0
	beq _08121C50
	ldrb r0, [r6, 0x8]
	ldrb r2, [r1, 0x18]
	adds r2, r5
	ldrb r3, [r1, 0x19]
	ldrb r1, [r1, 0x1A]
	subs r1, r5
	lsls r1, 16
	lsrs r1, 16
	str r1, [sp]
	str r7, [sp, 0x4]
	movs r1, 0xD
	bl FillWindowPixelRect
	ldrb r0, [r6, 0x8]
	ldr r1, [r6]
	ldrb r2, [r1, 0x18]
	adds r2, r5
	ldrb r3, [r1, 0x19]
	adds r3, 0x1
	ldrb r1, [r1, 0x1A]
	subs r1, r5
	lsls r1, 16
	lsrs r1, 16
	str r1, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x2
	bl FillWindowPixelRect
_08121C50:
	ldrb r0, [r6, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08121C68: .4byte gUnknown_845A2C0
_08121C6C: .4byte gUnknown_845A2B0
	thumb_func_end sub_8121B2C

	thumb_func_start sub_8121C70
sub_8121C70: @ 8121C70
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r6, r1, 0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r2, 24
	lsrs r2, 24
	adds r7, r2, 0
	cmp r7, 0
	beq _08121CAA
	ldr r5, [r6]
	ldrb r0, [r6, 0x8]
	ldrb r1, [r5, 0x1C]
	lsrs r1, 3
	ldrb r2, [r5, 0x1D]
	lsrs r2, 3
	ldrb r3, [r5, 0x1E]
	lsrs r3, 3
	ldrb r4, [r5, 0x1F]
	lsrs r4, 3
	str r4, [sp]
	movs r4, 0x1
	str r4, [sp, 0x4]
	ldr r4, [r5]
	bl _call_via_r4
_08121CAA:
	cmp r7, 0x2
	beq _08121CD0
	ldrb r0, [r6, 0x8]
	ldr r1, [r6]
	ldrb r2, [r1, 0x1C]
	ldrb r3, [r1, 0x1D]
	ldr r1, _08121CDC @ =gUnknown_8459FFC
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r4, _08121CE0 @ =gUnknown_845A354
	mov r5, r8
	lsls r1, r5, 2
	adds r1, r4
	ldr r1, [r1]
	str r1, [sp, 0x8]
	movs r1, 0x1
	bl box_print
_08121CD0:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08121CDC: .4byte gUnknown_8459FFC
_08121CE0: .4byte gUnknown_845A354
	thumb_func_end sub_8121C70

	thumb_func_start sub_8121CE4
sub_8121CE4: @ 8121CE4
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _08121D04
	movs r1, 0
	bl sub_810F4D8
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0xFF
	strb r0, [r4]
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
_08121D04:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8121CE4

	thumb_func_start sub_8121D0C
sub_8121D0C: @ 8121D0C
	push {r4-r6,lr}
	sub sp, 0xC
	adds r6, r0, 0
	ldr r0, _08121D3C @ =gUnknown_203B09C
	ldr r4, [r0]
	adds r5, r4, 0
	adds r5, 0xD
	ldrb r0, [r4, 0xD]
	cmp r0, 0xFF
	beq _08121D26
	adds r0, r5, 0
	bl sub_8121CE4
_08121D26:
	cmp r6, 0x7F
	beq _08121DE8
	adds r0, r6, 0
	subs r0, 0x16
	cmp r0, 0x4
	bhi _08121D80
	lsls r0, 2
	ldr r1, _08121D40 @ =_08121D44
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08121D3C: .4byte gUnknown_203B09C
_08121D40: .4byte _08121D44
	.align 2, 0
_08121D44:
	.4byte _08121D58
	.4byte _08121D70
	.4byte _08121D70
	.4byte _08121D60
	.4byte _08121D68
_08121D58:
	ldr r0, _08121D5C @ =gUnknown_845A128
	b _08121D72
	.align 2, 0
_08121D5C: .4byte gUnknown_845A128
_08121D60:
	ldr r0, _08121D64 @ =gUnknown_845A130
	b _08121D72
	.align 2, 0
_08121D64: .4byte gUnknown_845A130
_08121D68:
	ldr r0, _08121D6C @ =gUnknown_845A138
	b _08121D72
	.align 2, 0
_08121D6C: .4byte gUnknown_845A138
_08121D70:
	ldr r0, _08121D7C @ =gUnknown_845A140
_08121D72:
	bl AddWindow
	strb r0, [r5]
	b _08121D88
	.align 2, 0
_08121D7C: .4byte gUnknown_845A140
_08121D80:
	ldr r0, _08121D9C @ =gUnknown_845A120
	bl AddWindow
	strb r0, [r4, 0xD]
_08121D88:
	cmp r6, 0
	bne _08121DB0
	ldr r0, _08121DA0 @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 31
	cmp r0, 0
	beq _08121DA4
	movs r6, 0x2
	b _08121DB0
	.align 2, 0
_08121D9C: .4byte gUnknown_845A120
_08121DA0: .4byte gUnknown_203B09C
_08121DA4:
	bl sub_8121DF8
	lsls r0, 24
	cmp r0, 0
	bne _08121DB0
	movs r6, 0x1
_08121DB0:
	ldrb r0, [r5]
	movs r1, 0
	movs r2, 0x58
	movs r3, 0xF
	bl SetWindowBorderStyle
	ldr r4, _08121DF0 @ =gStringVar4
	ldr r1, _08121DF4 @ =gUnknown_845A2E8
	lsls r0, r6, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldrb r0, [r5]
	movs r1, 0x2
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x2
	adds r2, r4, 0
	movs r3, 0
	bl AddTextPrinterParameterized
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
_08121DE8:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08121DF0: .4byte gStringVar4
_08121DF4: .4byte gUnknown_845A2E8
	thumb_func_end sub_8121D0C

	thumb_func_start sub_8121DF8
sub_8121DF8: @ 8121DF8
	push {r4-r7,lr}
	ldr r7, _08121E0C @ =gPlayerParty
	movs r6, 0
	ldr r0, _08121E10 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x1
	bne _08121E14
_08121E06:
	movs r0, 0x1
	b _08121E56
	.align 2, 0
_08121E0C: .4byte gPlayerParty
_08121E10: .4byte gUnknown_203B0A0
_08121E14:
	movs r5, 0
_08121E16:
	movs r0, 0x64
	muls r0, r5
	adds r4, r7, r0
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08121E46
	adds r0, r4, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	bne _08121E40
	adds r0, r4, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	beq _08121E46
_08121E40:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
_08121E46:
	cmp r6, 0x1
	bhi _08121E06
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _08121E16
	movs r0, 0
_08121E56:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8121DF8

	thumb_func_start sub_8121E5C
sub_8121E5C: @ 8121E5C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x24
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x1
	beq _08121EBC
	cmp r4, 0x1
	bgt _08121E78
	cmp r4, 0
	beq _08121E7E
	b _08121ECC
_08121E78:
	cmp r4, 0x2
	beq _08121EC4
	b _08121ECC
_08121E7E:
	ldr r0, _08121EB4 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldrb r0, [r1, 0x17]
	lsls r0, 1
	movs r3, 0x13
	subs r3, r0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0xA
	str r0, [sp]
	ldrb r0, [r1, 0x17]
	lsls r0, 25
	lsrs r0, 24
	str r0, [sp, 0x4]
	movs r0, 0xE
	str r0, [sp, 0x8]
	ldr r0, _08121EB8 @ =0x000002bf
	str r0, [sp, 0xC]
	add r0, sp, 0x14
	movs r1, 0x2
	movs r2, 0x13
	bl SetWindowTemplateFields
	ldr r0, [sp, 0x14]
	ldr r1, [sp, 0x18]
	b _08121ED2
	.align 2, 0
_08121EB4: .4byte gUnknown_203B09C
_08121EB8: .4byte 0x000002bf
_08121EBC:
	ldr r0, _08121EC0 @ =gUnknown_845A148
	b _08121ECE
	.align 2, 0
_08121EC0: .4byte gUnknown_845A148
_08121EC4:
	ldr r0, _08121EC8 @ =gUnknown_845A150
	b _08121ECE
	.align 2, 0
_08121EC8: .4byte gUnknown_845A150
_08121ECC:
	ldr r0, _08121EF8 @ =gUnknown_845A158
_08121ECE:
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
_08121ED2:
	str r0, [sp, 0x1C]
	str r1, [sp, 0x20]
	add r0, sp, 0x1C
	bl AddWindow
	ldr r6, _08121EFC @ =gUnknown_203B09C
	ldr r1, [r6]
	strb r0, [r1, 0xC]
	ldr r0, [r6]
	ldrb r0, [r0, 0xC]
	movs r1, 0
	movs r2, 0x4F
	movs r3, 0xD
	bl SetWindowBorderStyle
	cmp r4, 0x3
	bne _08121F00
	ldr r0, [r6]
	b _08121FA2
	.align 2, 0
_08121EF8: .4byte gUnknown_845A158
_08121EFC: .4byte gUnknown_203B09C
_08121F00:
	movs r0, 0x2
	movs r1, 0
	bl GetMenuCursorDimensionByFont
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r0, 0x2
	movs r1, 0x2
	bl GetFontAttribute
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r5, 0
	ldr r0, [r6]
	ldrb r0, [r0, 0x17]
	cmp r5, r0
	bcs _08121F7A
	adds r7, r6, 0
	movs r6, 0
_08121F2A:
	ldr r1, [r7]
	adds r0, r1, 0
	adds r0, 0xF
	adds r4, r0, r5
	ldrb r0, [r4]
	movs r2, 0x3
	cmp r0, 0x11
	bls _08121F3C
	movs r2, 0x4
_08121F3C:
	ldrb r0, [r1, 0xC]
	lsls r3, r5, 4
	adds r3, 0x2
	lsls r3, 24
	lsrs r3, 24
	mov r1, r8
	str r1, [sp]
	str r6, [sp, 0x4]
	lsls r1, r2, 1
	adds r1, r2
	ldr r2, _08121FB4 @ =gUnknown_8459FFC
	adds r1, r2
	str r1, [sp, 0x8]
	str r6, [sp, 0xC]
	ldr r2, _08121FB8 @ =gUnknown_845A618
	ldrb r1, [r4]
	lsls r1, 3
	adds r1, r2
	ldr r1, [r1]
	str r1, [sp, 0x10]
	movs r1, 0x2
	mov r2, r9
	bl AddTextPrinterParametrized2
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, [r7]
	ldrb r0, [r0, 0x17]
	cmp r5, r0
	bcc _08121F2A
_08121F7A:
	ldr r4, _08121FBC @ =gUnknown_203B09C
	ldr r2, [r4]
	ldrb r0, [r2, 0xC]
	movs r1, 0x10
	str r1, [sp]
	ldrb r1, [r2, 0x17]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	str r1, [sp, 0xC]
	movs r1, 0x2
	movs r2, 0
	movs r3, 0x2
	bl sub_810F774
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r0, [r4]
_08121FA2:
	ldrb r0, [r0, 0xC]
	add sp, 0x24
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_08121FB4: .4byte gUnknown_8459FFC
_08121FB8: .4byte gUnknown_845A618
_08121FBC: .4byte gUnknown_203B09C
	thumb_func_end sub_8121E5C

	thumb_func_start sub_8121FC0
sub_8121FC0: @ 8121FC0
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	movs r0, 0x6
	movs r1, 0
	movs r2, 0x4F
	movs r3, 0xD
	bl SetWindowBorderStyle
	ldr r2, _08122008 @ =gTextFlags
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2]
	bl sub_80F78A8
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0x6
	movs r1, 0x2
	adds r2, r4, 0
	bl AddTextPrinterParametrized
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122008: .4byte gTextFlags
	thumb_func_end sub_8121FC0

	thumb_func_start sub_812200C
sub_812200C: @ 812200C
	push {lr}
	sub sp, 0xC
	ldr r0, _08122030 @ =gUnknown_845A160
	movs r1, 0x4F
	str r1, [sp]
	movs r1, 0xD
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x2
	movs r2, 0
	movs r3, 0x2
	bl sub_810FF60
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08122030: .4byte gUnknown_845A160
	thumb_func_end sub_812200C

	thumb_func_start sub_8122034
sub_8122034: @ 8122034
	push {r4,lr}
	ldr r0, _0812205C @ =gUnknown_845A168
	bl AddWindow
	ldr r4, _08122060 @ =gUnknown_203B09C
	ldr r1, [r4]
	strb r0, [r1, 0xC]
	ldr r0, [r4]
	ldrb r0, [r0, 0xC]
	movs r1, 0
	movs r2, 0x4F
	movs r3, 0xD
	bl SetWindowBorderStyle
	ldr r0, [r4]
	ldrb r0, [r0, 0xC]
	pop {r4}
	pop {r1}
	bx r1
	.align 2, 0
_0812205C: .4byte gUnknown_845A168
_08122060: .4byte gUnknown_203B09C
	thumb_func_end sub_8122034

	thumb_func_start sub_8122064
sub_8122064: @ 8122064
	push {r4,lr}
	ldr r4, _08122080 @ =gUnknown_203B09C
	ldr r0, [r4]
	ldrb r0, [r0, 0xC]
	bl ClearWindowTilemap
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122080: .4byte gUnknown_203B09C
	thumb_func_end sub_8122064

	thumb_func_start sub_8122084
sub_8122084: @ 8122084
	push {r4,r5,lr}
	sub sp, 0x10
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, _081220CC @ =gStringVar4
	adds r0, r5, 0
	bl StringExpandPlaceholders
	ldr r2, _081220D0 @ =gTextFlags
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2]
	bl sub_80F78A8
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	adds r0, r4, 0
	movs r1, 0x4
	adds r2, r5, 0
	bl AddTextPrinterParametrized
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081220CC: .4byte gStringVar4
_081220D0: .4byte gTextFlags
	thumb_func_end sub_8122084

	thumb_func_start sub_81220D4
sub_81220D4: @ 81220D4
	push {r4,lr}
	ldr r0, _08122108 @ =gUnknown_845A170
	bl AddWindow
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0x4F
	movs r2, 0xE0
	bl sub_814FEAC
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0x4F
	movs r3, 0xE
	bl sub_810EDC4
	ldr r1, _0812210C @ =gUnknown_8417457
	adds r0, r4, 0
	bl sub_8122084
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.align 2, 0
_08122108: .4byte gUnknown_845A170
_0812210C: .4byte gUnknown_8417457
	thumb_func_end sub_81220D4

	thumb_func_start sub_8122110
sub_8122110: @ 8122110
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl ClearWindowTilemap
	adds r0, r4, 0
	movs r1, 0
	bl sub_810F260
	adds r0, r4, 0
	bl RemoveWindow
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8122110

	thumb_func_start sub_8122138
sub_8122138: @ 8122138
	push {r4,r5,lr}
	sub sp, 0x14
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	ldr r0, _08122168 @ =gUnknown_203B09C
	ldr r4, [r0]
	cmp r5, 0x11
	bhi _0812216C
	ldrb r0, [r4, 0xE]
	cmp r0, 0xFF
	beq _081221C0
	bl ClearWindowTilemap
	ldrb r0, [r4, 0xE]
	bl RemoveWindow
	movs r0, 0xFF
	strb r0, [r4, 0xE]
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	b _081221C0
	.align 2, 0
_08122168: .4byte gUnknown_203B09C
_0812216C:
	ldrb r0, [r4, 0xE]
	cmp r0, 0xFF
	bne _0812217A
	ldr r0, _081221C8 @ =gUnknown_845A178
	bl AddWindow
	strb r0, [r4, 0xE]
_0812217A:
	ldrb r0, [r4, 0xE]
	bl sub_8112F18
	movs r0, 0x2
	movs r1, 0x2
	bl GetFontAttribute
	lsls r0, 24
	lsrs r0, 24
	ldrb r2, [r4, 0xE]
	str r0, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r0, _081221CC @ =gUnknown_845A00B
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	ldr r1, _081221D0 @ =gUnknown_845A37C
	adds r0, r5, 0
	subs r0, 0x12
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	str r0, [sp, 0x10]
	adds r0, r2, 0
	movs r1, 0x2
	movs r2, 0x3
	movs r3, 0x6
	bl AddTextPrinterParametrized2
	ldrb r0, [r4, 0xE]
	bl PutWindowTilemap
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
_081221C0:
	add sp, 0x14
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081221C8: .4byte gUnknown_845A178
_081221CC: .4byte gUnknown_845A00B
_081221D0: .4byte gUnknown_845A37C
	thumb_func_end sub_8122138

	thumb_func_start party_menu_icon_anim
party_menu_icon_anim: @ 81221D4
	push {r4-r7,lr}
	sub sp, 0x4
	adds r5, r0, 0
	adds r7, r1, 0
	adds r4, r2, 0
	movs r6, 0x1
	bl sub_811FA20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0812220A
	ldr r0, _08122240 @ =gMain
	ldr r1, _08122244 @ =0x00000439
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0812220A
	ldr r0, _08122248 @ =gUnknown_845A59C
	adds r0, r4, r0
	ldrb r1, [r0]
	eors r1, r6
	negs r0, r1
	orrs r0, r1
	lsrs r6, r0, 31
_0812220A:
	adds r0, r5, 0
	movs r1, 0x41
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r5, 0
	movs r1, 0
	bl GetMonData
	adds r1, r0, 0
	str r6, [sp]
	adds r0, r4, 0
	adds r2, r7, 0
	movs r3, 0x1
	bl party_menu_link_mon_icon_anim
	ldrb r0, [r7, 0x9]
	adds r1, r5, 0
	bl sub_8122358
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08122240: .4byte gMain
_08122244: .4byte 0x00000439
_08122248: .4byte gUnknown_845A59C
	thumb_func_end party_menu_icon_anim

	thumb_func_start party_menu_link_mon_icon_anim
party_menu_link_mon_icon_anim: @ 812224C
	push {r4-r7,lr}
	sub sp, 0xC
	adds r6, r1, 0
	adds r4, r2, 0
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r3, 24
	lsrs r7, r3, 24
	cmp r5, 0
	beq _0812229A
	ldr r1, _081222A4 @ =sub_809718C
	ldr r0, [r4, 0x4]
	ldrb r2, [r0]
	ldrb r3, [r0, 0x1]
	movs r0, 0x4
	str r0, [sp]
	str r6, [sp, 0x4]
	ldr r0, [sp, 0x20]
	str r0, [sp, 0x8]
	adds r0, r5, 0
	bl sub_8096E18
	strb r0, [r4, 0x9]
	ldr r2, _081222A8 @ =gSprites
	ldrb r0, [r4, 0x9]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	movs r0, 0x3
	adds r2, r7, 0
	ands r2, r0
	lsls r2, 2
	ldrb r3, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r3
	orrs r0, r2
	strb r0, [r1, 0x5]
_0812229A:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081222A4: .4byte sub_809718C
_081222A8: .4byte gSprites
	thumb_func_end party_menu_link_mon_icon_anim

	thumb_func_start sub_81222AC
sub_81222AC: @ 81222AC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 16
	asrs r1, 16
	lsls r2, 16
	asrs r2, 16
	adds r0, r1, 0
	adds r1, r2, 0
	bl GetHPBarLevel
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	beq _0812230C
	cmp r0, 0x2
	bgt _081222D4
	cmp r0, 0x1
	beq _08122324
	b _0812233C
_081222D4:
	cmp r0, 0x3
	beq _081222F4
	cmp r0, 0x4
	bne _0812233C
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	ldr r1, _081222F0 @ =gSprites
	adds r0, r1
	movs r1, 0
	bl sub_8097414
	b _0812234C
	.align 2, 0
_081222F0: .4byte gSprites
_081222F4:
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	ldr r1, _08122308 @ =gSprites
	adds r0, r1
	movs r1, 0x1
	bl sub_8097414
	b _0812234C
	.align 2, 0
_08122308: .4byte gSprites
_0812230C:
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	ldr r1, _08122320 @ =gSprites
	adds r0, r1
	movs r1, 0x2
	bl sub_8097414
	b _0812234C
	.align 2, 0
_08122320: .4byte gSprites
_08122324:
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	ldr r1, _08122338 @ =gSprites
	adds r0, r1
	movs r1, 0x3
	bl sub_8097414
	b _0812234C
	.align 2, 0
_08122338: .4byte gSprites
_0812233C:
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	ldr r1, _08122354 @ =gSprites
	adds r0, r1
	movs r1, 0x4
	bl sub_8097414
_0812234C:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122354: .4byte gSprites
	thumb_func_end sub_81222AC

	thumb_func_start sub_8122358
sub_8122358: @ 8122358
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0x39
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r6, 0
	movs r1, 0x3A
	bl GetMonData
	adds r2, r0, 0
	lsls r2, 16
	lsrs r2, 16
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_81222AC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8122358

	thumb_func_start sub_812238C
sub_812238C: @ 812238C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	ldr r5, _081223BC @ =gSprites
	lsls r0, r4, 4
	adds r0, r4
	lsls r6, r0, 2
	adds r2, r6, r5
	movs r7, 0
	movs r3, 0
	strh r3, [r2, 0x2E]
	mov r12, r5
	cmp r1, 0
	bne _081223E4
	movs r1, 0x20
	ldrsh r0, [r2, r1]
	cmp r0, 0x10
	bne _081223C4
	strh r3, [r2, 0x24]
	ldr r0, _081223C0 @ =0x0000fffc
	strh r0, [r2, 0x26]
	b _081223CA
	.align 2, 0
_081223BC: .4byte gSprites
_081223C0: .4byte 0x0000fffc
_081223C4:
	ldr r0, _081223DC @ =0x0000fffc
	strh r0, [r2, 0x24]
	strh r3, [r2, 0x26]
_081223CA:
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	mov r1, r12
	adds r1, 0x1C
	adds r0, r1
	ldr r1, _081223E0 @ =sub_8122428
	b _081223F0
	.align 2, 0
_081223DC: .4byte 0x0000fffc
_081223E0: .4byte sub_8122428
_081223E4:
	strh r3, [r2, 0x24]
	strh r3, [r2, 0x26]
	adds r0, r5, 0
	adds r0, 0x1C
	adds r0, r6, r0
	ldr r1, _081223F8 @ =sub_81223FC
_081223F0:
	str r1, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081223F8: .4byte sub_81223FC
	thumb_func_end sub_812238C

	thumb_func_start sub_81223FC
sub_81223FC: @ 81223FC
	push {r4,lr}
	adds r4, r0, 0
	bl UpdateMonIconFrame
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _08122422
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08122420
	ldr r0, _0812241C @ =0x0000fffd
	strh r0, [r4, 0x26]
	b _08122422
	.align 2, 0
_0812241C: .4byte 0x0000fffd
_08122420:
	strh r1, [r4, 0x26]
_08122422:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81223FC

	thumb_func_start sub_8122428
sub_8122428: @ 8122428
	push {lr}
	bl UpdateMonIconFrame
	pop {r0}
	bx r0
	thumb_func_end sub_8122428

	thumb_func_start party_menu_held_item_object
party_menu_held_item_object: @ 8122434
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _0812245C
	ldr r0, _08122464 @ =gUnknown_845A43C
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x2]
	ldrb r2, [r2, 0x3]
	movs r3, 0
	bl CreateSprite
	strb r0, [r4, 0xA]
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_81224B4
_0812245C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08122464: .4byte gUnknown_845A43C
	thumb_func_end party_menu_held_item_object

	thumb_func_start party_menu_link_mon_held_item_object
party_menu_link_mon_held_item_object: @ 8122468
	push {r4,r5,lr}
	adds r4, r2, 0
	lsls r0, 16
	lsls r1, 16
	lsrs r5, r1, 16
	cmp r0, 0
	beq _081224A4
	ldr r0, _081224AC @ =gUnknown_845A43C
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x2]
	ldrb r2, [r2, 0x3]
	movs r3, 0
	bl CreateSprite
	strb r0, [r4, 0xA]
	ldr r2, _081224B0 @ =gSprites
	ldrb r0, [r4, 0xA]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x5]
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_81224D0
_081224A4:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081224AC: .4byte gUnknown_845A43C
_081224B0: .4byte gSprites
	thumb_func_end party_menu_link_mon_held_item_object

	thumb_func_start sub_81224B4
sub_81224B4: @ 81224B4
	push {r4,lr}
	adds r4, r1, 0
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	adds r1, r4, 0
	bl sub_81224D0
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81224B4

	thumb_func_start sub_81224D0
sub_81224D0: @ 81224D0
	push {r4,lr}
	adds r4, r1, 0
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _081224F8
	ldr r2, _081224F4 @ =gSprites
	ldrb r1, [r4, 0xA]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	b _08122544
	.align 2, 0
_081224F4: .4byte gSprites
_081224F8:
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _0812251C
	ldrb r1, [r4, 0xA]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, _08122518 @ =gSprites
	adds r0, r1
	movs r1, 0x1
	bl StartSpriteAnim
	b _0812252E
	.align 2, 0
_08122518: .4byte gSprites
_0812251C:
	ldrb r1, [r4, 0xA]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, _0812254C @ =gSprites
	adds r0, r1
	movs r1, 0
	bl StartSpriteAnim
_0812252E:
	ldr r2, _0812254C @ =gSprites
	ldrb r1, [r4, 0xA]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
_08122544:
	strb r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0812254C: .4byte gSprites
	thumb_func_end sub_81224D0

	thumb_func_start sub_8122550
sub_8122550: @ 8122550
	push {lr}
	ldr r0, _08122564 @ =gUnknown_845A42C
	bl LoadSpriteSheet
	ldr r0, _08122568 @ =gUnknown_845A434
	bl LoadSpritePalette
	pop {r0}
	bx r0
	.align 2, 0
_08122564: .4byte gUnknown_845A42C
_08122568: .4byte gUnknown_845A434
	thumb_func_end sub_8122550

	thumb_func_start sub_812256C
sub_812256C: @ 812256C
	push {r4-r7,lr}
	adds r6, r0, 0
	adds r7, r1, 0
	lsls r2, 24
	lsrs r2, 24
	cmp r2, 0
	beq _08122580
	cmp r2, 0x1
	beq _081225C8
	b _08122604
_08122580:
	movs r5, 0
	ldrb r0, [r6]
	cmp r5, r0
	bcs _08122604
_08122588:
	movs r0, 0x64
	muls r0, r5
	ldr r1, _081225C4 @ =gPlayerParty
	adds r0, r1
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	beq _081225B4
	adds r0, r7, r5
	ldrb r4, [r0]
	adds r0, r1, 0
	bl itemid_is_mail
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl sub_8122610
_081225B4:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	ldrb r0, [r6]
	cmp r5, r0
	bcc _08122588
	b _08122604
	.align 2, 0
_081225C4: .4byte gPlayerParty
_081225C8:
	movs r5, 0
	b _081225FE
_081225CC:
	movs r0, 0x64
	muls r0, r5
	ldr r1, _0812260C @ =gEnemyParty
	adds r0, r1
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	beq _081225F8
	adds r0, r5, r7
	ldrb r4, [r0, 0x6]
	adds r0, r1, 0
	bl itemid_is_mail
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl sub_8122610
_081225F8:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
_081225FE:
	ldrb r0, [r6, 0x1]
	cmp r5, r0
	bcc _081225CC
_08122604:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0812260C: .4byte gEnemyParty
	thumb_func_end sub_812256C

	thumb_func_start sub_8122610
sub_8122610: @ 8122610
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	adds r6, r0, 0
	mov r9, r1
	lsls r6, 24
	lsrs r6, 24
	mov r0, r9
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	ldr r0, _08122688 @ =gSprites
	mov r8, r0
	lsls r0, r6, 4
	adds r0, r6
	lsls r0, 2
	add r0, r8
	adds r0, 0x43
	ldrb r3, [r0]
	ldr r0, _0812268C @ =gUnknown_845A43C
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0xFA
	movs r2, 0xAA
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	mov r0, r8
	adds r5, r4, r0
	movs r0, 0x4
	strh r0, [r5, 0x24]
	movs r0, 0xA
	strh r0, [r5, 0x26]
	movs r0, 0x1C
	add r8, r0
	add r4, r8
	ldr r0, _08122690 @ =sub_8122694
	str r0, [r4]
	strh r6, [r5, 0x3C]
	adds r0, r5, 0
	mov r1, r9
	bl StartSpriteAnim
	ldr r1, [r4]
	adds r0, r5, 0
	bl _call_via_r1
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08122688: .4byte gSprites
_0812268C: .4byte gUnknown_845A43C
_08122690: .4byte sub_8122694
	thumb_func_end sub_8122610

	thumb_func_start sub_8122694
sub_8122694: @ 8122694
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x3C]
	lsls r1, 24
	lsrs r1, 24
	ldr r2, _081226C4 @ =gSprites
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, r0, r2
	adds r0, r2, 0
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	bge _081226C8
	adds r0, r4, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _081226E6
	.align 2, 0
_081226C4: .4byte gSprites
_081226C8:
	adds r3, r4, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r3]
	ldrh r0, [r2, 0x24]
	ldrh r1, [r2, 0x20]
	adds r0, r1
	strh r0, [r4, 0x20]
	ldrh r0, [r2, 0x26]
	ldrh r2, [r2, 0x22]
	adds r0, r2
	strh r0, [r4, 0x22]
_081226E6:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8122694

	thumb_func_start party_menu_pokeball_object
party_menu_pokeball_object: @ 81226EC
	push {r4,lr}
	adds r4, r1, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _0812270A
	ldr r0, _08122710 @ =gUnknown_845A484
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x6]
	ldrb r2, [r2, 0x7]
	movs r3, 0x8
	bl CreateSprite
	strb r0, [r4, 0xB]
_0812270A:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122710: .4byte gUnknown_845A484
	thumb_func_end party_menu_pokeball_object

	thumb_func_start party_menu_link_mon_pokeball_object
party_menu_link_mon_pokeball_object: @ 8122714
	push {r4,lr}
	adds r4, r1, 0
	lsls r0, 16
	cmp r0, 0
	beq _08122744
	ldr r0, _0812274C @ =gUnknown_845A484
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x6]
	ldrb r2, [r2, 0x7]
	movs r3, 0x8
	bl CreateSprite
	strb r0, [r4, 0xB]
	ldr r2, _08122750 @ =gSprites
	ldrb r0, [r4, 0xB]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x5]
_08122744:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0812274C: .4byte gUnknown_845A484
_08122750: .4byte gSprites
	thumb_func_end party_menu_link_mon_pokeball_object

	thumb_func_start sub_8122754
sub_8122754: @ 8122754
	push {lr}
	adds r3, r0, 0
	adds r2, r1, 0
	lsls r3, 24
	lsrs r3, 24
	lsls r2, 24
	lsrs r2, 24
	ldr r0, _0812278C @ =gUnknown_845A484
	adds r1, r3, 0
	movs r3, 0x8
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, _08122790 @ =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r3, [r1, 0x5]
	movs r2, 0xD
	negs r2, r2
	ands r2, r3
	movs r3, 0x8
	orrs r2, r3
	strb r2, [r1, 0x5]
	pop {r1}
	bx r1
	.align 2, 0
_0812278C: .4byte gUnknown_845A484
_08122790: .4byte gSprites
	thumb_func_end sub_8122754

	thumb_func_start sub_8122794
sub_8122794: @ 8122794
	push {lr}
	adds r3, r0, 0
	adds r2, r1, 0
	lsls r3, 24
	lsrs r3, 24
	lsls r2, 24
	lsrs r2, 24
	ldr r0, _081227B4 @ =gUnknown_845A4F4
	adds r1, r3, 0
	movs r3, 0x8
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.align 2, 0
_081227B4: .4byte gUnknown_845A4F4
	thumb_func_end sub_8122794

	thumb_func_start sub_81227B8
sub_81227B8: @ 81227B8
	push {lr}
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r2, _081227D8 @ =gSprites
	adds r0, r2
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.align 2, 0
_081227D8: .4byte gSprites
	thumb_func_end sub_81227B8

	thumb_func_start sub_81227DC
sub_81227DC: @ 81227DC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	cmp r6, 0
	bne _08122820
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	ldr r0, _0812281C @ =gSprites
	mov r8, r0
	add r4, r8
	adds r0, r4, 0
	movs r1, 0x2
	bl StartSpriteAnim
	lsls r5, r7, 4
	adds r5, r7
	lsls r5, 2
	add r5, r8
	adds r0, r5, 0
	movs r1, 0x4
	bl StartSpriteAnim
	strh r6, [r4, 0x26]
	strh r6, [r5, 0x26]
	b _0812284C
	.align 2, 0
_0812281C: .4byte gSprites
_08122820:
	lsls r5, r0, 4
	adds r5, r0
	lsls r5, 2
	ldr r0, _08122858 @ =gSprites
	mov r8, r0
	add r5, r8
	adds r0, r5, 0
	movs r1, 0x3
	bl StartSpriteAnim
	lsls r4, r7, 4
	adds r4, r7
	lsls r4, 2
	add r4, r8
	adds r0, r4, 0
	movs r1, 0x5
	bl StartSpriteAnim
	ldr r0, _0812285C @ =0x0000fffc
	strh r0, [r5, 0x26]
	movs r0, 0x4
	strh r0, [r4, 0x26]
_0812284C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08122858: .4byte gSprites
_0812285C: .4byte 0x0000fffc
	thumb_func_end sub_81227DC

	thumb_func_start sub_8122860
sub_8122860: @ 8122860
	push {lr}
	ldr r0, _08122878 @ =gUnknown_845A474
	bl LoadCompressedObjectPic
	ldr r0, _0812287C @ =gUnknown_845A4EC
	bl LoadCompressedObjectPic
	ldr r0, _08122880 @ =gUnknown_845A47C
	bl LoadCompressedObjectPalette
	pop {r0}
	bx r0
	.align 2, 0
_08122878: .4byte gUnknown_845A474
_0812287C: .4byte gUnknown_845A4EC
_08122880: .4byte gUnknown_845A47C
	thumb_func_end sub_8122860

	thumb_func_start party_menu_status_condition_object
party_menu_status_condition_object: @ 8122884
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _081228AC
	ldr r0, _081228B4 @ =gUnknown_845A584
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x4]
	ldrb r2, [r2, 0x5]
	movs r3, 0
	bl CreateSprite
	strb r0, [r4, 0xC]
	adds r0, r5, 0
	adds r1, r4, 0
	bl party_menu_get_status_condition_and_update_object
_081228AC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081228B4: .4byte gUnknown_845A584
	thumb_func_end party_menu_status_condition_object

	thumb_func_start party_menu_link_mon_status_condition_object
party_menu_link_mon_status_condition_object: @ 81228B8
	push {r4,r5,lr}
	adds r4, r2, 0
	lsls r0, 16
	lsls r1, 24
	lsrs r5, r1, 24
	cmp r0, 0
	beq _081228F4
	ldr r0, _081228FC @ =gUnknown_845A584
	ldr r2, [r4, 0x4]
	ldrb r1, [r2, 0x4]
	ldrb r2, [r2, 0x5]
	movs r3, 0
	bl CreateSprite
	strb r0, [r4, 0xC]
	adds r0, r5, 0
	adds r1, r4, 0
	bl party_menu_update_status_condition_object
	ldr r2, _08122900 @ =gSprites
	ldrb r0, [r4, 0xC]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x5]
_081228F4:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081228FC: .4byte gUnknown_845A584
_08122900: .4byte gSprites
	thumb_func_end party_menu_link_mon_status_condition_object

	thumb_func_start party_menu_get_status_condition_and_update_object
party_menu_get_status_condition_and_update_object: @ 8122904
	push {r4,lr}
	adds r4, r1, 0
	bl sub_81208A4
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	bl party_menu_update_status_condition_object
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end party_menu_get_status_condition_and_update_object

	thumb_func_start party_menu_update_status_condition_object
party_menu_update_status_condition_object: @ 812291C
	push {r4,r5,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	beq _0812292C
	cmp r2, 0x6
	bne _08122948
_0812292C:
	ldr r2, _08122944 @ =gSprites
	ldrb r1, [r5, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	b _08122972
	.align 2, 0
_08122944: .4byte gSprites
_08122948:
	ldrb r1, [r5, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, _0812297C @ =gSprites
	adds r0, r4
	subs r1, r2, 0x1
	lsls r1, 24
	lsrs r1, 24
	bl StartSpriteAnim
	ldrb r1, [r5, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
_08122972:
	strb r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_0812297C: .4byte gSprites
	thumb_func_end party_menu_update_status_condition_object

	thumb_func_start sub_8122980
sub_8122980: @ 8122980
	push {lr}
	ldr r0, _08122994 @ =gUnknown_845A574
	bl LoadCompressedObjectPic
	ldr r0, _08122998 @ =gUnknown_845A57C
	bl LoadCompressedObjectPalette
	pop {r0}
	bx r0
	.align 2, 0
_08122994: .4byte gUnknown_845A574
_08122998: .4byte gUnknown_845A57C
	thumb_func_end sub_8122980

	thumb_func_start sub_812299C
sub_812299C: @ 812299C
	push {r4,lr}
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	cmp r2, 0
	bne _081229B0
	bl sub_81229FC
	b _081229E8
_081229B0:
	ldr r4, _081229F0 @ =gUnknown_203B09C
	ldr r1, [r4]
	ldr r0, _081229F4 @ =gUnknown_845A760
	adds r0, r2, r0
	ldrb r0, [r0]
	strb r0, [r1, 0x17]
	movs r3, 0
	ldr r0, [r4]
	ldrb r0, [r0, 0x17]
	cmp r3, r0
	bcs _081229E8
	ldr r1, _081229F8 @ =gUnknown_845A72C
	lsls r0, r2, 2
	adds r2, r0, r1
_081229CC:
	ldr r1, [r4]
	adds r1, 0xF
	adds r1, r3
	ldr r0, [r2]
	adds r0, r3
	ldrb r0, [r0]
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r0, [r4]
	ldrb r0, [r0, 0x17]
	cmp r3, r0
	bcc _081229CC
_081229E8:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081229F0: .4byte gUnknown_203B09C
_081229F4: .4byte gUnknown_845A760
_081229F8: .4byte gUnknown_845A72C
	thumb_func_end sub_812299C

	thumb_func_start sub_81229FC
sub_81229FC: @ 81229FC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r9, r0
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	ldr r2, _08122A78 @ =gUnknown_203B09C
	ldr r1, [r2]
	movs r0, 0
	strb r0, [r1, 0x17]
	ldr r1, [r2]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	movs r2, 0
	bl AppendToList
	movs r7, 0
	ldr r0, _08122A7C @ =gUnknown_845A76E
	ldrh r0, [r0]
	str r0, [sp]
	mov r0, r9
	adds r0, 0x64
	str r0, [sp, 0x4]
_08122A34:
	movs r4, 0
	adds r1, r7, 0x1
	mov r8, r1
	ldr r0, [sp]
	cmp r0, 0xC
	beq _08122A90
	movs r0, 0x64
	mov r6, r10
	muls r6, r0
	ldr r5, _08122A7C @ =gUnknown_845A76E
_08122A48:
	mov r1, r9
	adds r0, r1, r6
	adds r1, r7, 0
	adds r1, 0xD
	bl GetMonData
	lsls r1, r4, 1
	adds r1, r5
	ldrh r1, [r1]
	cmp r0, r1
	bne _08122A80
	ldr r0, _08122A78 @ =gUnknown_203B09C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	adds r2, r4, 0
	adds r2, 0x12
	lsls r2, 24
	lsrs r2, 24
	bl AppendToList
	b _08122A90
	.align 2, 0
_08122A78: .4byte gUnknown_203B09C
_08122A7C: .4byte gUnknown_845A76E
_08122A80:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 1
	adds r0, r5
	ldrh r0, [r0]
	cmp r0, 0xC
	bne _08122A48
_08122A90:
	mov r1, r8
	lsls r0, r1, 24
	lsrs r7, r0, 24
	cmp r7, 0x3
	bls _08122A34
	ldr r0, [sp, 0x4]
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08122AB6
	ldr r0, _08122AE8 @ =gUnknown_203B09C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	movs r2, 0x1
	bl AppendToList
_08122AB6:
	movs r0, 0x64
	mov r1, r10
	muls r1, r0
	adds r0, r1, 0
	add r0, r9
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _08122AEC
	ldr r0, _08122AE8 @ =gUnknown_203B09C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	movs r2, 0x6
	bl AppendToList
	b _08122AFC
	.align 2, 0
_08122AE8: .4byte gUnknown_203B09C
_08122AEC:
	ldr r0, _08122B1C @ =gUnknown_203B09C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	movs r2, 0x3
	bl AppendToList
_08122AFC:
	ldr r0, _08122B1C @ =gUnknown_203B09C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xF
	adds r1, 0x17
	movs r2, 0x2
	bl AppendToList
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08122B1C: .4byte gUnknown_203B09C
	thumb_func_end sub_81229FC

	thumb_func_start sub_8122B20
sub_8122B20: @ 8122B20
	push {lr}
	adds r2, r0, 0
	ldr r1, _08122B3C @ =gUnknown_203B0A0
	ldrb r0, [r1, 0x8]
	lsls r0, 28
	lsrs r0, 28
	adds r3, r1, 0
	cmp r0, 0xA
	bhi _08122BCA
	lsls r0, 2
	ldr r1, _08122B40 @ =_08122B44
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08122B3C: .4byte gUnknown_203B0A0
_08122B40: .4byte _08122B44
	.align 2, 0
_08122B44:
	.4byte _08122B70
	.4byte _08122B80
	.4byte _08122BCA
	.4byte _08122BCA
	.4byte _08122B8C
	.4byte _08122BCA
	.4byte _08122BAC
	.4byte _08122BCA
	.4byte _08122BBE
	.4byte _08122BC2
	.4byte _08122BC6
_08122B70:
	adds r0, r2, 0
	movs r1, 0x2D
	bl GetMonData
	negs r1, r0
	orrs r1, r0
	lsrs r1, 31
	b _08122BCC
_08122B80:
	adds r0, r2, 0
	bl sub_8127A84
	lsls r0, 24
	lsrs r1, r0, 24
	b _08122BCC
_08122B8C:
	movs r0, 0x9
	ldrsb r0, [r3, r0]
	bl sub_8127510
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _08122BA4
	cmp r0, 0x1
	beq _08122BA8
	movs r1, 0x7
	b _08122BCC
_08122BA4:
	movs r1, 0x4
	b _08122BCC
_08122BA8:
	movs r1, 0x5
	b _08122BCC
_08122BAC:
	adds r0, r2, 0
	movs r1, 0x2D
	bl GetMonData
	movs r1, 0x6
	cmp r0, 0
	beq _08122BCC
	movs r1, 0x7
	b _08122BCC
_08122BBE:
	movs r1, 0xA
	b _08122BCC
_08122BC2:
	movs r1, 0xB
	b _08122BCC
_08122BC6:
	movs r1, 0xC
	b _08122BCC
_08122BCA:
	movs r1, 0
_08122BCC:
	adds r0, r1, 0
	pop {r1}
	bx r1
	thumb_func_end sub_8122B20

	thumb_func_start sub_8122BD4
sub_8122BD4: @ 8122BD4
	push {r4-r6,lr}
	ldr r5, _08122C20 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r5, r1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r6, _08122C24 @ =gPlayerParty
	adds r4, r6
	ldr r1, _08122C28 @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	ldr r0, _08122C2C @ =gUnknown_203B09C
	ldr r0, [r0]
	adds r0, 0xD
	bl sub_8121CE4
	ldrb r5, [r5, 0x9]
	adds r0, r4, 0
	bl sub_8122B20
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r6, 0
	adds r1, r5, 0
	bl sub_812299C
	movs r0, 0
	bl sub_8121E5C
	movs r0, 0x16
	bl sub_8121D0C
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08122C20: .4byte gUnknown_203B0A0
_08122C24: .4byte gPlayerParty
_08122C28: .4byte gStringVar1
_08122C2C: .4byte gUnknown_203B09C
	thumb_func_end sub_8122BD4

	thumb_func_start sub_8122C30
sub_8122C30: @ 8122C30
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_8122BD4
	ldr r1, _08122C54 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0xFF
	strh r1, [r0, 0x8]
	ldr r1, _08122C58 @ =sub_8122C5C
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122C54: .4byte gTasks
_08122C58: .4byte sub_8122C5C
	thumb_func_end sub_8122C30

	thumb_func_start sub_8122C5C
sub_8122C5C: @ 8122C5C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, _08122C94 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08122D3E
	bl sub_80BF748
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08122D3E
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, _08122C98 @ =gTasks+0x8
	adds r7, r0, r1
	ldr r0, _08122C9C @ =gUnknown_203B09C
	ldr r0, [r0]
	ldrb r0, [r0, 0x17]
	cmp r0, 0x3
	bhi _08122CA0
	bl ProcessMenuInputNoWrapAround_other
	b _08122CA4
	.align 2, 0
_08122C94: .4byte gPaletteFade
_08122C98: .4byte gTasks+0x8
_08122C9C: .4byte gUnknown_203B09C
_08122CA0:
	bl ProcessMenuInput_other
_08122CA4:
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0
	ldrsh r4, [r7, r0]
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	beq _08122CCE
	ldr r0, _08122D14 @ =gUnknown_203B09C
	ldr r4, [r0]
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r0, 24
	adds r4, 0xF
	adds r4, r0
	ldrb r0, [r4]
	bl sub_8122138
_08122CCE:
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7]
	lsls r0, r5, 24
	asrs r5, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r5, r0
	beq _08122D3E
	adds r0, 0x1
	cmp r5, r0
	bne _08122D1C
	movs r0, 0x5
	bl PlaySE
	ldr r4, _08122D14 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xE
	bl sub_8121CE4
	ldr r2, _08122D18 @ =gUnknown_845A618
	ldr r0, [r4]
	ldrb r1, [r0, 0x17]
	adds r0, r1
	ldrb r0, [r0, 0xE]
	lsls r0, 3
	adds r2, 0x4
	adds r0, r2
	ldr r1, [r0]
	adds r0, r6, 0
	bl _call_via_r1
	b _08122D3E
	.align 2, 0
_08122D14: .4byte gUnknown_203B09C
_08122D18: .4byte gUnknown_845A618
_08122D1C:
	ldr r4, _08122D44 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xE
	bl sub_8121CE4
	ldr r1, _08122D48 @ =gUnknown_845A618
	ldr r0, [r4]
	adds r0, 0xF
	adds r0, r5
	ldrb r0, [r0]
	lsls r0, 3
	adds r1, 0x4
	adds r0, r1
	ldr r1, [r0]
	adds r0, r6, 0
	bl _call_via_r1
_08122D3E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08122D44: .4byte gUnknown_203B09C
_08122D48: .4byte gUnknown_845A618
	thumb_func_end sub_8122C5C

	thumb_func_start sub_8122D4C
sub_8122D4C: @ 8122D4C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	ldr r0, _08122D70 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08122D74 @ =sub_8122D78
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122D70: .4byte gUnknown_203B09C
_08122D74: .4byte sub_8122D78
	thumb_func_end sub_8122D4C

	thumb_func_start sub_8122D78
sub_8122D78: @ 8122D78
	push {r4,lr}
	sub sp, 0x4
	ldr r4, _08122DAC @ =gUnknown_203B0A0
	ldrb r1, [r4, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _08122D8C
	bl pokemon_change_order
_08122D8C:
	ldr r0, _08122DB0 @ =gPlayerParty
	ldrb r1, [r4, 0x9]
	ldr r2, _08122DB4 @ =gPlayerPartyCount
	ldrb r2, [r2]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldr r3, _08122DB8 @ =sub_8122DBC
	movs r4, 0
	str r4, [sp]
	bl sub_81344F8
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08122DAC: .4byte gUnknown_203B0A0
_08122DB0: .4byte gPlayerParty
_08122DB4: .4byte gPlayerPartyCount
_08122DB8: .4byte sub_8122DBC
	thumb_func_end sub_8122D78

	thumb_func_start sub_8122DBC
sub_8122DBC: @ 8122DBC
	push {lr}
	sub sp, 0xC
	ldr r2, _08122DF4 @ =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	strb r0, [r2, 0x8]
	bl sub_8138B20
	ldr r3, _08122DF8 @ =gUnknown_203B0A0
	strb r0, [r3, 0x9]
	ldrb r0, [r3, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r3, 0xB]
	movs r1, 0x16
	str r1, [sp]
	ldr r1, _08122DFC @ =sub_8122C30
	str r1, [sp, 0x4]
	ldr r1, [r3]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08122DF4: .4byte gPaletteFade
_08122DF8: .4byte gUnknown_203B0A0
_08122DFC: .4byte sub_8122C30
	thumb_func_end sub_8122DBC

	thumb_func_start brm_switch
brm_switch: @ 8122E00
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	movs r0, 0x5
	bl PlaySE
	ldr r5, _08122E4C @ =gUnknown_203B0A0
	movs r0, 0x8
	strb r0, [r5, 0xB]
	ldr r4, _08122E50 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	movs r0, 0x3
	bl sub_8121D0C
	ldrb r0, [r5, 0x9]
	movs r1, 0x1
	bl sub_811F818
	ldrb r0, [r5, 0x9]
	strb r0, [r5, 0xA]
	ldr r1, _08122E54 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08122E58 @ =sub_811FB28
	str r1, [r0]
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08122E4C: .4byte gUnknown_203B0A0
_08122E50: .4byte gUnknown_203B09C
_08122E54: .4byte gTasks
_08122E58: .4byte sub_811FB28
	thumb_func_end brm_switch

	thumb_func_start sub_8122E5C
sub_8122E5C: @ 8122E5C
	push {r4-r7,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, _08122E84 @ =gTasks+0x8
	adds r6, r0, r1
	ldr r4, _08122E88 @ =gUnknown_203B0A0
	movs r1, 0xA
	ldrsb r1, [r4, r1]
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	cmp r1, r0
	bne _08122E8C
	adds r0, r7, 0
	bl sub_81235E8
	b _08122FE2
	.align 2, 0
_08122E84: .4byte gTasks+0x8
_08122E88: .4byte gUnknown_203B0A0
_08122E8C:
	bl sub_812358C
	add r2, sp, 0x8
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	ldr r1, _08122EE8 @ =gUnknown_203B0B4
	ldr r1, [r1]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	movs r4, 0
	strb r0, [r2]
	adds r0, r2, 0
	ldrb r0, [r0]
	movs r1, 0x1
	bl GetWindowAttribute
	strh r0, [r6]
	add r0, sp, 0x8
	ldrb r0, [r0]
	movs r1, 0x2
	bl GetWindowAttribute
	strh r0, [r6, 0x2]
	add r0, sp, 0x8
	ldrb r0, [r0]
	movs r1, 0x3
	bl GetWindowAttribute
	strh r0, [r6, 0x4]
	add r0, sp, 0x8
	ldrb r0, [r0]
	movs r1, 0x4
	bl GetWindowAttribute
	strh r0, [r6, 0x6]
	strh r4, [r6, 0x10]
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	cmp r0, 0xA
	bne _08122EEC
	movs r2, 0x1
	negs r2, r2
	adds r0, r2, 0
	b _08122EEE
	.align 2, 0
_08122EE8: .4byte gUnknown_203B0B4
_08122EEC:
	movs r0, 0x1
_08122EEE:
	strh r0, [r6, 0x14]
	add r2, sp, 0x8
	ldr r0, _08122F4C @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xA]
	lsls r0, 24
	asrs r0, 24
	ldr r1, _08122F50 @ =gUnknown_203B0B4
	ldr r1, [r1]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	movs r4, 0
	strb r0, [r2, 0x1]
	adds r0, r2, 0
	ldrb r0, [r0, 0x1]
	movs r1, 0x1
	bl GetWindowAttribute
	strh r0, [r6, 0x8]
	add r0, sp, 0x8
	ldrb r0, [r0, 0x1]
	movs r1, 0x2
	bl GetWindowAttribute
	strh r0, [r6, 0xA]
	add r0, sp, 0x8
	ldrb r0, [r0, 0x1]
	movs r1, 0x3
	bl GetWindowAttribute
	strh r0, [r6, 0xC]
	add r0, sp, 0x8
	ldrb r0, [r0, 0x1]
	movs r1, 0x4
	bl GetWindowAttribute
	strh r0, [r6, 0xE]
	strh r4, [r6, 0x12]
	movs r1, 0xC
	ldrsh r0, [r6, r1]
	cmp r0, 0xA
	bne _08122F54
	movs r2, 0x1
	negs r2, r2
	adds r0, r2, 0
	b _08122F56
	.align 2, 0
_08122F4C: .4byte gUnknown_203B0A0
_08122F50: .4byte gUnknown_203B0B4
_08122F54:
	movs r0, 0x1
_08122F56:
	strh r0, [r6, 0x16]
	ldr r4, _08122FEC @ =gUnknown_203B0C8
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	movs r2, 0x6
	ldrsh r0, [r6, r2]
	lsls r0, 1
	muls r0, r1
	bl Alloc
	str r0, [r4]
	ldr r5, _08122FF0 @ =gUnknown_203B0CC
	movs r0, 0xC
	ldrsh r1, [r6, r0]
	movs r2, 0xE
	ldrsh r0, [r6, r2]
	lsls r0, 1
	muls r0, r1
	bl Alloc
	str r0, [r5]
	ldr r1, [r4]
	ldrb r2, [r6]
	ldrb r3, [r6, 0x2]
	ldrb r0, [r6, 0x4]
	str r0, [sp]
	ldrb r0, [r6, 0x6]
	str r0, [sp, 0x4]
	movs r0, 0
	bl sub_80F6B94
	ldr r1, [r5]
	ldrb r2, [r6, 0x8]
	ldrb r3, [r6, 0xA]
	ldrb r0, [r6, 0xC]
	str r0, [sp]
	ldrb r0, [r6, 0xE]
	str r0, [sp, 0x4]
	movs r0, 0
	bl sub_80F6B94
	add r0, sp, 0x8
	ldrb r0, [r0]
	bl ClearWindowTilemap
	add r0, sp, 0x8
	ldrb r0, [r0, 0x1]
	bl ClearWindowTilemap
	ldr r4, _08122FF4 @ =gUnknown_203B0A0
	movs r0, 0x9
	strb r0, [r4, 0xB]
	ldrb r0, [r4, 0x9]
	movs r1, 0x1
	bl sub_811F818
	ldrb r0, [r4, 0xA]
	movs r1, 0x1
	bl sub_811F818
	adds r0, r7, 0
	bl sub_81231E8
	ldr r1, _08122FF8 @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _08122FFC @ =sub_8123270
	str r1, [r0]
_08122FE2:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08122FEC: .4byte gUnknown_203B0C8
_08122FF0: .4byte gUnknown_203B0CC
_08122FF4: .4byte gUnknown_203B0A0
_08122FF8: .4byte gTasks
_08122FFC: .4byte sub_8123270
	thumb_func_end sub_8122E5C

	thumb_func_start sub_8123000
sub_8123000: @ 8123000
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r2, 0
	mov r12, r3
	ldr r7, [sp, 0x18]
	lsls r0, 16
	lsrs r3, r0, 16
	adds r5, r3, 0
	lsls r1, 16
	lsrs r2, r1, 16
	mov r8, r2
	lsls r0, r3, 16
	asrs r1, r0, 16
	lsls r0, r2, 16
	asrs r0, 16
	adds r4, r1, r0
	cmp r4, 0
	blt _0812302A
	cmp r1, 0x1F
	ble _0812302E
_0812302A:
	movs r0, 0
	b _0812305C
_0812302E:
	cmp r1, 0
	bge _08123042
	negs r0, r1
	strb r0, [r6]
	movs r0, 0
	mov r1, r12
	strb r0, [r1]
	adds r0, r2, r3
	strb r0, [r7]
	b _0812305A
_08123042:
	movs r0, 0
	strb r0, [r6]
	mov r0, r12
	strb r5, [r0]
	cmp r4, 0x1F
	ble _08123056
	movs r0, 0x20
	subs r0, r5
	strb r0, [r7]
	b _0812305A
_08123056:
	mov r1, r8
	strb r1, [r7]
_0812305A:
	movs r0, 0x1
_0812305C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8123000

	thumb_func_start sub_8123068
sub_8123068: @ 8123068
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x34
	str r0, [sp, 0x28]
	ldr r0, [sp, 0x54]
	ldr r4, [sp, 0x58]
	lsls r2, 16
	lsrs r2, 16
	mov r9, r2
	lsls r3, 16
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	lsls r4, 16
	lsrs r4, 16
	str r4, [sp, 0x30]
	lsls r1, 16
	asrs r7, r1, 16
	lsrs r0, r3, 16
	str r0, [sp, 0x2C]
	asrs r3, 16
	mov r8, r3
	mov r5, sp
	adds r5, 0x25
	mov r6, sp
	adds r6, 0x26
	str r6, [sp]
	adds r0, r7, 0
	mov r1, r8
	add r2, sp, 0x24
	adds r3, r5, 0
	bl sub_8123000
	lsls r0, 24
	cmp r0, 0
	beq _08123122
	ldrb r2, [r5]
	mov r1, r9
	lsls r0, r1, 24
	lsrs r0, 24
	mov r9, r0
	ldrb r0, [r6]
	str r0, [sp]
	mov r1, r10
	lsls r0, r1, 24
	lsrs r4, r0, 24
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	mov r3, r9
	bl FillBgTilemapBufferRect_Palette0
	ldr r1, [sp, 0x30]
	lsls r0, r1, 16
	asrs r0, 16
	adds r0, r7, r0
	lsls r0, 16
	asrs r0, 16
	str r6, [sp]
	mov r1, r8
	add r2, sp, 0x24
	adds r3, r5, 0
	bl sub_8123000
	lsls r0, 24
	cmp r0, 0
	beq _08123122
	add r0, sp, 0x24
	ldrb r2, [r0]
	ldr r1, [sp, 0x2C]
	lsls r0, r1, 24
	lsrs r0, 24
	str r0, [sp]
	str r4, [sp, 0x4]
	ldrb r0, [r5]
	str r0, [sp, 0x8]
	mov r0, r9
	str r0, [sp, 0xC]
	ldrb r0, [r6]
	str r0, [sp, 0x10]
	str r4, [sp, 0x14]
	movs r0, 0x11
	str r0, [sp, 0x18]
	movs r0, 0
	str r0, [sp, 0x1C]
	str r0, [sp, 0x20]
	ldr r1, [sp, 0x28]
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
_08123122:
	add sp, 0x34
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8123068

	thumb_func_start sub_8123134
sub_8123134: @ 8123134
	push {r4,lr}
	ldr r4, _08123184 @ =gSprites
	ldrb r2, [r0, 0xB]
	lsls r3, r2, 4
	adds r3, r2
	lsls r3, 2
	adds r3, r4
	lsls r1, 16
	asrs r1, 13
	ldrh r2, [r3, 0x24]
	adds r2, r1
	strh r2, [r3, 0x24]
	ldrb r3, [r0, 0xA]
	lsls r2, r3, 4
	adds r2, r3
	lsls r2, 2
	adds r2, r4
	ldrh r3, [r2, 0x24]
	adds r3, r1
	strh r3, [r2, 0x24]
	ldrb r3, [r0, 0x9]
	lsls r2, r3, 4
	adds r2, r3
	lsls r2, 2
	adds r2, r4
	ldrh r3, [r2, 0x24]
	adds r3, r1
	strh r3, [r2, 0x24]
	ldrb r2, [r0, 0xC]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r4
	ldrh r2, [r0, 0x24]
	adds r2, r1
	strh r2, [r0, 0x24]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123184: .4byte gSprites
	thumb_func_end sub_8123134

	thumb_func_start sub_8123188
sub_8123188: @ 8123188
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, _081231DC @ =gTasks+0x8
	adds r4, r1, r0
	movs r1, 0x14
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081231B6
	ldr r2, _081231E0 @ =gUnknown_203B0B4
	ldr r0, _081231E4 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	lsls r1, 4
	ldr r0, [r2]
	adds r0, r1
	movs r2, 0x14
	ldrsh r1, [r4, r2]
	bl sub_8123134
_081231B6:
	movs r1, 0x16
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081231D4
	ldr r2, _081231E0 @ =gUnknown_203B0B4
	ldr r0, _081231E4 @ =gUnknown_203B0A0
	movs r1, 0xA
	ldrsb r1, [r0, r1]
	lsls r1, 4
	ldr r0, [r2]
	adds r0, r1
	movs r2, 0x16
	ldrsh r1, [r4, r2]
	bl sub_8123134
_081231D4:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081231DC: .4byte gTasks+0x8
_081231E0: .4byte gUnknown_203B0B4
_081231E4: .4byte gUnknown_203B0A0
	thumb_func_end sub_8123188

	thumb_func_start sub_81231E8
sub_81231E8: @ 81231E8
	push {r4-r6,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, _08123264 @ =gTasks+0x8
	adds r5, r1, r0
	movs r1, 0x14
	ldrsh r0, [r5, r1]
	cmp r0, 0
	beq _08123228
	ldr r0, _08123268 @ =gUnknown_203B0C8
	ldr r0, [r0]
	ldrh r1, [r5, 0x10]
	ldrh r2, [r5]
	adds r1, r2
	lsls r1, 16
	asrs r1, 16
	movs r3, 0x2
	ldrsh r2, [r5, r3]
	movs r4, 0x4
	ldrsh r3, [r5, r4]
	movs r6, 0x6
	ldrsh r4, [r5, r6]
	str r4, [sp]
	movs r6, 0x14
	ldrsh r4, [r5, r6]
	str r4, [sp, 0x4]
	bl sub_8123068
_08123228:
	movs r1, 0x16
	ldrsh r0, [r5, r1]
	cmp r0, 0
	beq _08123256
	ldr r0, _0812326C @ =gUnknown_203B0CC
	ldr r0, [r0]
	ldrh r1, [r5, 0x12]
	ldrh r2, [r5, 0x8]
	adds r1, r2
	lsls r1, 16
	asrs r1, 16
	movs r3, 0xA
	ldrsh r2, [r5, r3]
	movs r4, 0xC
	ldrsh r3, [r5, r4]
	movs r6, 0xE
	ldrsh r4, [r5, r6]
	str r4, [sp]
	movs r6, 0x16
	ldrsh r4, [r5, r6]
	str r4, [sp, 0x4]
	bl sub_8123068
_08123256:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08123264: .4byte gTasks+0x8
_08123268: .4byte gUnknown_203B0C8
_0812326C: .4byte gUnknown_203B0CC
	thumb_func_end sub_81231E8

	thumb_func_start sub_8123270
sub_8123270: @ 8123270
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r7, r0, 3
	ldr r0, _08123370 @ =gTasks+0x8
	mov r8, r0
	adds r6, r7, r0
	adds r0, r4, 0
	bl sub_81231E8
	adds r0, r4, 0
	bl sub_8123188
	ldrh r1, [r6, 0x14]
	ldrh r2, [r6, 0x10]
	adds r1, r2
	strh r1, [r6, 0x10]
	ldrh r0, [r6, 0x16]
	ldrh r3, [r6, 0x12]
	adds r0, r3
	strh r0, [r6, 0x12]
	add r2, sp, 0x8
	ldrh r0, [r6]
	adds r0, r1
	strh r0, [r2]
	adds r1, r2, 0
	ldrh r0, [r6, 0x12]
	ldrh r3, [r6, 0x8]
	adds r2, r0, r3
	strh r2, [r1, 0x2]
	adds r0, r1, 0
	ldrh r0, [r0]
	cmp r0, 0x21
	bls _08123362
	lsls r0, r2, 16
	lsrs r0, 16
	cmp r0, 0x21
	bls _08123362
	movs r1, 0x14
	ldrsh r0, [r6, r1]
	negs r0, r0
	strh r0, [r6, 0x14]
	movs r2, 0x16
	ldrsh r0, [r6, r2]
	negs r0, r0
	strh r0, [r6, 0x16]
	bl swap_pokemon_and_oams
	ldr r4, _08123374 @ =gUnknown_203B0A0
	ldrb r0, [r4, 0x9]
	bl sub_811F234
	ldrb r0, [r4, 0xA]
	bl sub_811F234
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	ldr r5, _08123378 @ =gUnknown_203B0B4
	ldr r1, [r5]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl PutWindowTilemap
	movs r0, 0xA
	ldrsb r0, [r4, r0]
	ldr r1, [r5]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl PutWindowTilemap
	ldr r0, _0812337C @ =gUnknown_203B0C8
	ldr r1, [r0]
	ldrb r2, [r6]
	ldrb r3, [r6, 0x2]
	ldrb r0, [r6, 0x4]
	str r0, [sp]
	ldrb r0, [r6, 0x6]
	str r0, [sp, 0x4]
	movs r0, 0
	bl sub_80F6B94
	ldr r0, _08123380 @ =gUnknown_203B0CC
	ldr r1, [r0]
	ldrb r2, [r6, 0x8]
	ldrb r3, [r6, 0xA]
	ldrb r0, [r6, 0xC]
	str r0, [sp]
	ldrb r0, [r6, 0xE]
	str r0, [sp, 0x4]
	movs r0, 0
	bl sub_80F6B94
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	ldr r1, [r5]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl ClearWindowTilemap
	movs r0, 0xA
	ldrsb r0, [r4, r0]
	ldr r1, [r5]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl ClearWindowTilemap
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	ldr r1, _08123384 @ =sub_8123388
	str r1, [r0]
_08123362:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08123370: .4byte gTasks+0x8
_08123374: .4byte gUnknown_203B0A0
_08123378: .4byte gUnknown_203B0B4
_0812337C: .4byte gUnknown_203B0C8
_08123380: .4byte gUnknown_203B0CC
_08123384: .4byte sub_8123388
	thumb_func_end sub_8123270

	thumb_func_start sub_8123388
sub_8123388: @ 8123388
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, _081233E8 @ =gTasks+0x8
	adds r4, r0, r1
	adds r0, r6, 0
	bl sub_81231E8
	adds r0, r6, 0
	bl sub_8123188
	movs r1, 0x14
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081233F4
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _081233F4
	ldr r5, _081233EC @ =gUnknown_203B0A0
	movs r0, 0x9
	ldrsb r0, [r5, r0]
	ldr r4, _081233F0 @ =gUnknown_203B0B4
	ldr r1, [r4]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl PutWindowTilemap
	movs r0, 0xA
	ldrsb r0, [r5, r0]
	ldr r1, [r4]
	lsls r0, 4
	adds r0, r1
	ldrb r0, [r0, 0x8]
	bl PutWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r6, 0
	bl sub_81235E8
	b _08123418
	.align 2, 0
_081233E8: .4byte gTasks+0x8
_081233EC: .4byte gUnknown_203B0A0
_081233F0: .4byte gUnknown_203B0B4
_081233F4:
	ldrh r1, [r4, 0x14]
	ldrh r0, [r4, 0x10]
	adds r1, r0
	strh r1, [r4, 0x10]
	ldrh r0, [r4, 0x16]
	ldrh r2, [r4, 0x12]
	adds r0, r2
	strh r0, [r4, 0x12]
	lsls r1, 16
	asrs r1, 16
	cmp r1, 0
	bne _0812340E
	strh r1, [r4, 0x14]
_0812340E:
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _08123418
	strh r0, [r4, 0x16]
_08123418:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8123388

	thumb_func_start oamt_swap_pos
oamt_swap_pos: @ 8123420
	push {r4-r6,lr}
	mov r6, r10
	mov r5, r9
	mov r4, r8
	push {r4-r6}
	ldrb r3, [r0]
	ldrb r2, [r1]
	strb r2, [r0]
	strb r3, [r1]
	ldr r5, _081234E8 @ =gSprites
	ldrb r2, [r0]
	lsls r3, r2, 4
	adds r3, r2
	lsls r3, 2
	adds r3, r5
	ldrh r6, [r3, 0x20]
	ldrh r2, [r3, 0x22]
	mov r8, r2
	ldrh r2, [r3, 0x24]
	mov r9, r2
	ldrh r2, [r3, 0x26]
	mov r10, r2
	ldrb r4, [r1]
	lsls r2, r4, 4
	adds r2, r4
	lsls r2, 2
	adds r2, r5
	ldrh r2, [r2, 0x20]
	strh r2, [r3, 0x20]
	ldrb r2, [r0]
	lsls r3, r2, 4
	adds r3, r2
	lsls r3, 2
	adds r3, r5
	ldrb r4, [r1]
	lsls r2, r4, 4
	adds r2, r4
	lsls r2, 2
	adds r2, r5
	ldrh r2, [r2, 0x22]
	strh r2, [r3, 0x22]
	ldrb r2, [r0]
	lsls r3, r2, 4
	adds r3, r2
	lsls r3, 2
	adds r3, r5
	ldrb r4, [r1]
	lsls r2, r4, 4
	adds r2, r4
	lsls r2, 2
	adds r2, r5
	ldrh r2, [r2, 0x24]
	strh r2, [r3, 0x24]
	ldrb r0, [r0]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r5
	ldrb r3, [r1]
	lsls r0, r3, 4
	adds r0, r3
	lsls r0, 2
	adds r0, r5
	ldrh r0, [r0, 0x26]
	strh r0, [r2, 0x26]
	ldrb r2, [r1]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r5
	strh r6, [r0, 0x20]
	ldrb r2, [r1]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r5
	mov r2, r8
	strh r2, [r0, 0x22]
	ldrb r2, [r1]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r5
	mov r2, r9
	strh r2, [r0, 0x24]
	ldrb r1, [r1]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	mov r1, r10
	strh r1, [r0, 0x26]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081234E8: .4byte gSprites
	thumb_func_end oamt_swap_pos

	thumb_func_start swap_pokemon_and_oams
swap_pokemon_and_oams: @ 81234EC
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r1, _08123580 @ =gUnknown_203B0B4
	ldr r2, _08123584 @ =gUnknown_203B0A0
	movs r3, 0x9
	ldrsb r3, [r2, r3]
	lsls r0, r3, 4
	ldr r1, [r1]
	adds r0, r1, r0
	str r0, [sp]
	ldrb r2, [r2, 0xA]
	lsls r2, 24
	asrs r2, 24
	lsls r0, r2, 4
	adds r0, r1, r0
	str r0, [sp, 0x4]
	movs r1, 0x64
	adds r4, r3, 0
	muls r4, r1
	ldr r0, _08123588 @ =gPlayerParty
	adds r4, r0
	adds r5, r2, 0
	muls r5, r1
	adds r5, r0
	movs r0, 0x64
	bl Alloc
	adds r6, r0, 0
	adds r1, r4, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r5, 0
	adds r1, r6, 0
	movs r2, 0x64
	bl memcpy
	adds r0, r6, 0
	bl Free
	ldr r0, [sp]
	adds r0, 0xB
	ldr r1, [sp, 0x4]
	adds r1, 0xB
	bl oamt_swap_pos
	ldr r0, [sp]
	adds r0, 0xA
	ldr r1, [sp, 0x4]
	adds r1, 0xA
	bl oamt_swap_pos
	ldr r0, [sp]
	adds r0, 0x9
	ldr r1, [sp, 0x4]
	adds r1, 0x9
	bl oamt_swap_pos
	ldr r0, [sp]
	adds r0, 0xC
	ldr r1, [sp, 0x4]
	adds r1, 0xC
	bl oamt_swap_pos
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08123580: .4byte gUnknown_203B0B4
_08123584: .4byte gUnknown_203B0A0
_08123588: .4byte gPlayerParty
	thumb_func_end swap_pokemon_and_oams

	thumb_func_start sub_812358C
sub_812358C: @ 812358C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	movs r0, 0x4
	bl Alloc
	adds r4, r0, 0
	ldr r0, _081235E0 @ =gUnknown_203B0A0
	mov r8, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r6, 0x64
	muls r0, r6
	ldr r5, _081235E4 @ =gPlayerParty
	adds r0, r5
	movs r1, 0x41
	bl GetMonData
	strh r0, [r4]
	mov r1, r8
	movs r0, 0xA
	ldrsb r0, [r1, r0]
	muls r0, r6
	adds r0, r5
	movs r1, 0x41
	bl GetMonData
	strh r0, [r4, 0x2]
	movs r0, 0x3
	adds r1, r4, 0
	bl sub_8113550
	adds r0, r4, 0
	bl Free
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081235E0: .4byte gUnknown_203B0A0
_081235E4: .4byte gPlayerParty
	thumb_func_end sub_812358C

	thumb_func_start sub_81235E8
sub_81235E8: @ 81235E8
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, _08123630 @ =gUnknown_203B09C
	ldr r0, [r0]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r4, _08123634 @ =gUnknown_203B0A0
	movs r0, 0
	strb r0, [r4, 0xB]
	ldrb r0, [r4, 0x9]
	movs r1, 0
	bl sub_811F818
	ldrb r0, [r4, 0xA]
	strb r0, [r4, 0x9]
	ldrb r0, [r4, 0xA]
	movs r1, 0x1
	bl sub_811F818
	movs r0, 0
	bl sub_8121D0C
	ldr r1, _08123638 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _0812363C @ =sub_811FB28
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08123630: .4byte gUnknown_203B09C
_08123634: .4byte gUnknown_203B0A0
_08123638: .4byte gTasks
_0812363C: .4byte sub_811FB28
	thumb_func_end sub_81235E8

	thumb_func_start brm_cancel_1
brm_cancel_1: @ 8123640
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r4, _08123674 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, _08123678 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x6
	bne _0812367C
	movs r0, 0xF
	bl sub_8121D0C
	b _08123682
	.align 2, 0
_08123674: .4byte gUnknown_203B09C
_08123678: .4byte gUnknown_203B0A0
_0812367C:
	movs r0, 0
	bl sub_8121D0C
_08123682:
	ldr r0, _08123698 @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812369C @ =sub_811FB28
	str r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08123698: .4byte gTasks
_0812369C: .4byte sub_811FB28
	thumb_func_end brm_cancel_1

	thumb_func_start sub_81236A0
sub_81236A0: @ 81236A0
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	movs r0, 0x5
	bl PlaySE
	ldr r4, _081236F0 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, _081236F4 @ =gPlayerParty
	ldr r1, _081236F8 @ =gUnknown_203B0A0
	ldrb r1, [r1, 0x9]
	movs r2, 0x8
	bl sub_812299C
	movs r0, 0x1
	bl sub_8121E5C
	movs r0, 0x19
	bl sub_8121D0C
	ldr r1, _081236FC @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0xFF
	strh r1, [r0, 0x8]
	ldr r1, _08123700 @ =sub_8122C5C
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081236F0: .4byte gUnknown_203B09C
_081236F4: .4byte gPlayerParty
_081236F8: .4byte gUnknown_203B0A0
_081236FC: .4byte gTasks
_08123700: .4byte sub_8122C5C
	thumb_func_end sub_81236A0

	thumb_func_start sub_8123704
sub_8123704: @ 8123704
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	ldr r0, _08123728 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _0812372C @ =sub_8123730
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123728: .4byte gUnknown_203B09C
_0812372C: .4byte sub_8123730
	thumb_func_end sub_8123704

	thumb_func_start sub_8123730
sub_8123730: @ 8123730
	push {lr}
	ldr r2, _08123740 @ =c2_8123744
	movs r0, 0x1
	movs r1, 0x3
	bl sub_8107DB4
	pop {r0}
	bx r0
	.align 2, 0
_08123740: .4byte c2_8123744
	thumb_func_end sub_8123730

	thumb_func_start c2_8123744
c2_8123744: @ 8123744
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	ldr r6, _0812376C @ =gUnknown_203AD30
	ldrh r0, [r6]
	cmp r0, 0
	bne _08123778
	ldr r3, _08123770 @ =gUnknown_203B0A0
	ldrb r0, [r3, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r3, 0xB]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _08123774 @ =sub_8122C30
	str r1, [sp, 0x4]
	ldr r1, [r3]
	b _081237AE
	.align 2, 0
_0812376C: .4byte gUnknown_203AD30
_08123770: .4byte gUnknown_203B0A0
_08123774: .4byte sub_8122C30
_08123778:
	ldr r4, _081237BC @ =gUnknown_203B0D8
	ldr r5, _081237C0 @ =gUnknown_203B0A0
	movs r0, 0x9
	ldrsb r0, [r5, r0]
	movs r1, 0x64
	mov r8, r1
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	ldr r7, _081237C4 @ =gPlayerParty
	adds r0, r7
	movs r1, 0xC
	bl GetMonData
	strh r0, [r4]
	lsls r0, 16
	cmp r0, 0
	beq _081237CC
	ldrb r0, [r5, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r5, 0xB]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _081237C8 @ =sub_81238A4
	str r1, [sp, 0x4]
	ldr r1, [r5]
_081237AE:
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
	b _08123814
	.align 2, 0
_081237BC: .4byte gUnknown_203B0D8
_081237C0: .4byte gUnknown_203B0A0
_081237C4: .4byte gPlayerParty
_081237C8: .4byte sub_81238A4
_081237CC:
	ldrh r0, [r6]
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _081237F8
	ldrh r0, [r6]
	movs r1, 0x1
	bl sub_809A1D8
	movs r0, 0x9
	ldrsb r0, [r5, r0]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	adds r0, r7
	ldrh r1, [r6]
	bl sub_81205C8
	bl sub_8123A80
	b _08123814
_081237F8:
	ldrb r0, [r5, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r5, 0xB]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _08123820 @ =sub_8123824
	str r1, [sp, 0x4]
	ldr r1, [r5]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
_08123814:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08123820: .4byte sub_8123824
	thumb_func_end c2_8123744

	thumb_func_start sub_8123824
sub_8123824: @ 8123824
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _0812388C @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08123880
	ldr r0, _08123890 @ =gUnknown_203AD30
	ldrh r4, [r0]
	ldr r0, _08123894 @ =gUnknown_203B0A0
	mov r8, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r6, 0x64
	muls r0, r6
	ldr r5, _08123898 @ =gPlayerParty
	adds r0, r5
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0
	bl sub_8120420
	mov r1, r8
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	muls r0, r6
	adds r0, r5
	adds r1, r4, 0
	bl sub_81205C8
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_809A1D8
	ldr r1, _0812389C @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _081238A0 @ =sub_8123BF0
	str r1, [r0]
_08123880:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0812388C: .4byte gPaletteFade
_08123890: .4byte gUnknown_203AD30
_08123894: .4byte gUnknown_203B0A0
_08123898: .4byte gPlayerParty
_0812389C: .4byte gTasks
_081238A0: .4byte sub_8123BF0
	thumb_func_end sub_8123824

	thumb_func_start sub_81238A4
sub_81238A4: @ 81238A4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _081238E4 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081238DC
	ldr r0, _081238E8 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081238EC @ =gPlayerParty
	adds r0, r1
	ldr r1, _081238F0 @ =gUnknown_203B0D8
	ldrh r1, [r1]
	movs r2, 0x1
	bl sub_812050C
	ldr r1, _081238F4 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _081238F8 @ =sub_81238FC
	str r1, [r0]
_081238DC:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081238E4: .4byte gPaletteFade
_081238E8: .4byte gUnknown_203B0A0
_081238EC: .4byte gPlayerParty
_081238F0: .4byte gUnknown_203B0D8
_081238F4: .4byte gTasks
_081238F8: .4byte sub_81238FC
	thumb_func_end sub_81238A4

	thumb_func_start sub_81238FC
sub_81238FC: @ 81238FC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08123920
	bl sub_812200C
	ldr r0, _08123928 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812392C @ =sub_8123930
	str r0, [r1]
_08123920:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123928: .4byte gTasks
_0812392C: .4byte sub_8123930
	thumb_func_end sub_81238FC

	thumb_func_start sub_8123930
sub_8123930: @ 8123930
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _08123956
	cmp r1, 0
	bgt _08123950
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08123A2C
	b _08123A40
_08123950:
	cmp r1, 0x1
	beq _08123A32
	b _08123A40
_08123956:
	ldr r5, _08123998 @ =gUnknown_203AD30
	ldrh r0, [r5]
	movs r1, 0x1
	bl sub_809A1D8
	ldr r6, _0812399C @ =gUnknown_203B0D8
	ldrh r0, [r6]
	movs r1, 0x1
	bl sub_809A084
	lsls r0, 24
	cmp r0, 0
	bne _081239AC
	ldrh r0, [r5]
	movs r1, 0x1
	bl sub_809A084
	ldrh r0, [r6]
	bl sub_8120658
	ldr r0, _081239A0 @ =gStringVar4
	movs r1, 0
	bl sub_81202F8
	ldr r1, _081239A4 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _081239A8 @ =sub_81203B8
	str r1, [r0]
	b _08123A40
	.align 2, 0
_08123998: .4byte gUnknown_203AD30
_0812399C: .4byte gUnknown_203B0D8
_081239A0: .4byte gStringVar4
_081239A4: .4byte gTasks
_081239A8: .4byte sub_81203B8
_081239AC:
	ldrh r0, [r5]
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _081239EC
	ldr r0, _081239DC @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081239E0 @ =gPlayerParty
	adds r0, r1
	ldrh r1, [r5]
	bl sub_81205C8
	ldr r1, _081239E4 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _081239E8 @ =sub_8123A50
	str r1, [r0]
	b _08123A40
	.align 2, 0
_081239DC: .4byte gUnknown_203B0A0
_081239E0: .4byte gPlayerParty
_081239E4: .4byte gTasks
_081239E8: .4byte sub_8123A50
_081239EC:
	ldr r0, _08123A1C @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08123A20 @ =gPlayerParty
	adds r0, r1
	ldrh r1, [r5]
	bl sub_81205C8
	ldrh r0, [r5]
	ldrh r1, [r6]
	movs r2, 0x1
	bl sub_8120558
	ldr r1, _08123A24 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08123A28 @ =sub_8123BF0
	str r1, [r0]
	b _08123A40
	.align 2, 0
_08123A1C: .4byte gUnknown_203B0A0
_08123A20: .4byte gPlayerParty
_08123A24: .4byte gTasks
_08123A28: .4byte sub_8123BF0
_08123A2C:
	movs r0, 0x5
	bl PlaySE
_08123A32:
	ldr r0, _08123A48 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08123A4C @ =sub_81203B8
	str r0, [r1]
_08123A40:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08123A48: .4byte gTasks
_08123A4C: .4byte sub_81203B8
	thumb_func_end sub_8123930

	thumb_func_start sub_8123A50
sub_8123A50: @ 8123A50
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08123A70
	ldr r0, _08123A78 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08123A7C @ =sub_8123A80
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
_08123A70:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123A78: .4byte gUnknown_203B09C
_08123A7C: .4byte sub_8123A80
	thumb_func_end sub_8123A50

	thumb_func_start sub_8123A80
sub_8123A80: @ 8123A80
	push {lr}
	ldr r0, _08123AB8 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08123ABC @ =gPlayerParty
	adds r0, r1
	movs r1, 0x40
	bl GetMonData
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _08123AC0 @ =gSaveBlock1Ptr
	lsls r2, r0, 3
	adds r2, r0
	lsls r2, 2
	ldr r0, _08123AC4 @ =0x00002cd0
	adds r2, r0
	ldr r1, [r1]
	adds r1, r2
	ldr r2, _08123AC8 @ =sub_8123ACC
	movs r0, 0x4
	bl sub_80FEBAC
	pop {r0}
	bx r0
	.align 2, 0
_08123AB8: .4byte gUnknown_203B0A0
_08123ABC: .4byte gPlayerParty
_08123AC0: .4byte gSaveBlock1Ptr
_08123AC4: .4byte 0x00002cd0
_08123AC8: .4byte sub_8123ACC
	thumb_func_end sub_8123A80

	thumb_func_start sub_8123ACC
sub_8123ACC: @ 8123ACC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	ldr r6, _08123B38 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r6, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08123B3C @ =gPlayerParty
	adds r5, r1, r0
	adds r0, r5, 0
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	ldr r0, _08123B40 @ =gUnknown_20370D0
	ldrh r7, [r0]
	cmp r7, 0
	bne _08123B4C
	adds r0, r5, 0
	bl TakeMailFromMon
	ldr r4, _08123B44 @ =gUnknown_203B0D8
	adds r0, r5, 0
	movs r1, 0xC
	adds r2, r4, 0
	bl SetMonData
	ldrh r0, [r4]
	movs r1, 0x1
	bl sub_809A1D8
	mov r0, r8
	movs r1, 0x1
	bl sub_809A084
	ldrb r0, [r6, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r6, 0xB]
	str r7, [sp]
	ldr r1, _08123B48 @ =sub_8122C30
	str r1, [sp, 0x4]
	ldr r1, [r6]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
	b _08123B68
	.align 2, 0
_08123B38: .4byte gUnknown_203B0A0
_08123B3C: .4byte gPlayerParty
_08123B40: .4byte gUnknown_20370D0
_08123B44: .4byte gUnknown_203B0D8
_08123B48: .4byte sub_8122C30
_08123B4C:
	ldrb r0, [r6, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r6, 0xB]
	movs r1, 0
	str r1, [sp]
	ldr r1, _08123B74 @ =sub_8123B78
	str r1, [sp, 0x4]
	ldr r1, [r6]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
_08123B68:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08123B74: .4byte sub_8123B78
	thumb_func_end sub_8123ACC

	thumb_func_start sub_8123B78
sub_8123B78: @ 8123B78
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _08123BB0 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08123BDE
	ldr r1, _08123BB4 @ =gUnknown_203B0D8
	ldrh r0, [r1]
	cmp r0, 0
	bne _08123BC4
	ldr r0, _08123BB8 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08123BBC @ =gPlayerParty
	adds r0, r1
	ldr r1, _08123BC0 @ =gUnknown_203AD30
	ldrh r1, [r1]
	movs r2, 0
	movs r3, 0
	bl sub_8120420
	b _08123BD0
	.align 2, 0
_08123BB0: .4byte gPaletteFade
_08123BB4: .4byte gUnknown_203B0D8
_08123BB8: .4byte gUnknown_203B0A0
_08123BBC: .4byte gPlayerParty
_08123BC0: .4byte gUnknown_203AD30
_08123BC4:
	ldr r0, _08123BE4 @ =gUnknown_203AD30
	ldrh r0, [r0]
	ldrh r1, [r1]
	movs r2, 0
	bl sub_8120558
_08123BD0:
	ldr r0, _08123BE8 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08123BEC @ =sub_8123BF0
	str r0, [r1]
_08123BDE:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123BE4: .4byte gUnknown_203AD30
_08123BE8: .4byte gTasks
_08123BEC: .4byte sub_8123BF0
	thumb_func_end sub_8123B78

	thumb_func_start sub_8123BF0
sub_8123BF0: @ 8123BF0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _08123C2C @ =gUnknown_203B0A0
	ldrb r4, [r0, 0x9]
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08123C24
	lsls r2, r4, 24
	asrs r2, 24
	movs r0, 0x64
	muls r0, r2
	ldr r1, _08123C30 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08123C34 @ =gUnknown_203B0B4
	lsls r2, 4
	ldr r1, [r1]
	adds r1, r2
	bl sub_81224B4
	adds r0, r5, 0
	bl sub_81203B8
_08123C24:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08123C2C: .4byte gUnknown_203B0A0
_08123C30: .4byte gPlayerParty
_08123C34: .4byte gUnknown_203B0B4
	thumb_func_end sub_8123BF0

	thumb_func_start sub_8123C38
sub_8123C38: @ 8123C38
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _08123C90 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08123C94 @ =gPlayerParty
	adds r5, r1, r0
	adds r0, r5, 0
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r6, r0, 16
	movs r0, 0x5
	bl PlaySE
	ldr r4, _08123C98 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	adds r0, r5, 0
	bl sub_8120610
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _08123C9C
	cmp r0, 0x1
	beq _08123CC0
	adds r0, r5, 0
	adds r1, r6, 0
	movs r2, 0x1
	bl sub_81204AC
	b _08123CCE
	.align 2, 0
_08123C90: .4byte gUnknown_203B0A0
_08123C94: .4byte gPlayerParty
_08123C98: .4byte gUnknown_203B09C
_08123C9C:
	ldr r1, _08123CB4 @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	ldr r4, _08123CB8 @ =gStringVar4
	ldr r1, _08123CBC @ =gUnknown_8416C8F
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	b _08123CC8
	.align 2, 0
_08123CB4: .4byte gStringVar1
_08123CB8: .4byte gStringVar4
_08123CBC: .4byte gUnknown_8416C8F
_08123CC0:
	adds r0, r6, 0
	bl sub_8120658
	ldr r0, _08123CE8 @ =gStringVar4
_08123CC8:
	movs r1, 0x1
	bl sub_81202F8
_08123CCE:
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r0, _08123CEC @ =gTasks
	lsls r1, r7, 2
	adds r1, r7
	lsls r1, 3
	adds r1, r0
	ldr r0, _08123CF0 @ =sub_8123BF0
	str r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08123CE8: .4byte gStringVar4
_08123CEC: .4byte gTasks
_08123CF0: .4byte sub_8123BF0
	thumb_func_end sub_8123C38

	thumb_func_start sub_8123CF4
sub_8123CF4: @ 8123CF4
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	movs r0, 0x5
	bl PlaySE
	ldr r4, _08123D44 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, _08123D48 @ =gPlayerParty
	ldr r1, _08123D4C @ =gUnknown_203B0A0
	ldrb r1, [r1, 0x9]
	movs r2, 0x9
	bl sub_812299C
	movs r0, 0x2
	bl sub_8121E5C
	movs r0, 0x1A
	bl sub_8121D0C
	ldr r1, _08123D50 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0xFF
	strh r1, [r0, 0x8]
	ldr r1, _08123D54 @ =sub_8122C5C
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08123D44: .4byte gUnknown_203B09C
_08123D48: .4byte gPlayerParty
_08123D4C: .4byte gUnknown_203B0A0
_08123D50: .4byte gTasks
_08123D54: .4byte sub_8122C5C
	thumb_func_end sub_8123CF4

	thumb_func_start sub_8123D58
sub_8123D58: @ 8123D58
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	ldr r0, _08123D7C @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08123D80 @ =sub_8123D84
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123D7C: .4byte gUnknown_203B09C
_08123D80: .4byte sub_8123D84
	thumb_func_end sub_8123D58

	thumb_func_start sub_8123D84
sub_8123D84: @ 8123D84
	push {lr}
	ldr r0, _08123DB8 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08123DBC @ =gPlayerParty
	adds r0, r1
	movs r1, 0x40
	bl GetMonData
	ldr r2, _08123DC0 @ =gSaveBlock1Ptr
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	ldr r0, _08123DC4 @ =0x00002cd0
	adds r1, r0
	ldr r0, [r2]
	adds r0, r1
	ldr r1, _08123DC8 @ =sub_8123DCC
	movs r2, 0x1
	bl sub_80BEBEC
	pop {r0}
	bx r0
	.align 2, 0
_08123DB8: .4byte gUnknown_203B0A0
_08123DBC: .4byte gPlayerParty
_08123DC0: .4byte gSaveBlock1Ptr
_08123DC4: .4byte 0x00002cd0
_08123DC8: .4byte sub_8123DCC
	thumb_func_end sub_8123D84

	thumb_func_start sub_8123DCC
sub_8123DCC: @ 8123DCC
	push {lr}
	sub sp, 0xC
	ldr r2, _08123E00 @ =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	strb r0, [r2, 0x8]
	ldr r3, _08123E04 @ =gUnknown_203B0A0
	ldrb r0, [r3, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r3, 0xB]
	movs r1, 0x16
	str r1, [sp]
	ldr r1, _08123E08 @ =sub_8122C30
	str r1, [sp, 0x4]
	ldr r1, [r3]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08123E00: .4byte gPaletteFade
_08123E04: .4byte gUnknown_203B0A0
_08123E08: .4byte sub_8122C30
	thumb_func_end sub_8123DCC

	thumb_func_start brm_take_2
brm_take_2: @ 8123E0C
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	ldr r5, _08123E48 @ =gUnknown_203B09C
	ldr r0, [r5]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, [r5]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, _08123E4C @ =gUnknown_8416B64
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _08123E50 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08123E54 @ =sub_8123E58
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08123E48: .4byte gUnknown_203B09C
_08123E4C: .4byte gUnknown_8416B64
_08123E50: .4byte gTasks
_08123E54: .4byte sub_8123E58
	thumb_func_end brm_take_2

	thumb_func_start sub_8123E58
sub_8123E58: @ 8123E58
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08123E7C
	bl sub_812200C
	ldr r0, _08123E84 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08123E88 @ =sub_8123E8C
	str r0, [r1]
_08123E7C:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123E84: .4byte gTasks
_08123E88: .4byte sub_8123E8C
	thumb_func_end sub_8123E58

	thumb_func_start sub_8123E8C
sub_8123E8C: @ 8123E8C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _08123EB2
	cmp r1, 0
	bgt _08123EAC
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08123F1C
	b _08123F38
_08123EAC:
	cmp r1, 0x1
	beq _08123F22
	b _08123F38
_08123EB2:
	ldr r0, _08123EE4 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08123EE8 @ =gPlayerParty
	adds r0, r1
	bl sub_809803C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _08123EF8
	ldr r0, _08123EEC @ =gUnknown_8416B86
	movs r1, 0
	bl sub_81202F8
	ldr r1, _08123EF0 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08123EF4 @ =sub_8123BF0
	b _08123F36
	.align 2, 0
_08123EE4: .4byte gUnknown_203B0A0
_08123EE8: .4byte gPlayerParty
_08123EEC: .4byte gUnknown_8416B86
_08123EF0: .4byte gTasks
_08123EF4: .4byte sub_8123BF0
_08123EF8:
	ldr r0, _08123F10 @ =gUnknown_8416BA6
	movs r1, 0
	bl sub_81202F8
	ldr r1, _08123F14 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08123F18 @ =sub_81203B8
	b _08123F36
	.align 2, 0
_08123F10: .4byte gUnknown_8416BA6
_08123F14: .4byte gTasks
_08123F18: .4byte sub_81203B8
_08123F1C:
	movs r0, 0x5
	bl PlaySE
_08123F22:
	ldr r0, _08123F40 @ =gUnknown_8416BC3
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _08123F44 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08123F48 @ =sub_8123F4C
_08123F36:
	str r1, [r0]
_08123F38:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123F40: .4byte gUnknown_8416BC3
_08123F44: .4byte gTasks
_08123F48: .4byte sub_8123F4C
	thumb_func_end sub_8123E8C

	thumb_func_start sub_8123F4C
sub_8123F4C: @ 8123F4C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08123F70
	bl sub_812200C
	ldr r0, _08123F78 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08123F7C @ =sub_8123F80
	str r0, [r1]
_08123F70:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08123F78: .4byte gTasks
_08123F7C: .4byte sub_8123F80
	thumb_func_end sub_8123F4C

	thumb_func_start sub_8123F80
sub_8123F80: @ 8123F80
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r5, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _08123FAA
	cmp r1, 0
	bgt _08123FA4
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0812403C
	b _08124050
_08123FA4:
	cmp r1, 0x1
	beq _08124042
	b _08124050
_08123FAA:
	ldr r0, _08123FFC @ =gUnknown_203B0A0
	mov r8, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r7, 0x64
	muls r0, r7
	ldr r6, _08124000 @ =gPlayerParty
	adds r0, r6
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r4, r0, 16
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_809A084
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124010
	mov r1, r8
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	muls r0, r7
	adds r0, r6
	bl TakeMailFromMon
	ldr r0, _08124004 @ =gUnknown_8416CC7
	movs r1, 0
	bl sub_81202F8
	ldr r1, _08124008 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _0812400C @ =sub_8123BF0
	str r1, [r0]
	b _08124050
	.align 2, 0
_08123FFC: .4byte gUnknown_203B0A0
_08124000: .4byte gPlayerParty
_08124004: .4byte gUnknown_8416CC7
_08124008: .4byte gTasks
_0812400C: .4byte sub_8123BF0
_08124010:
	adds r0, r4, 0
	bl sub_8120658
	ldr r0, _08124030 @ =gStringVar4
	movs r1, 0
	bl sub_81202F8
	ldr r1, _08124034 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08124038 @ =sub_81203B8
	str r1, [r0]
	b _08124050
	.align 2, 0
_08124030: .4byte gStringVar4
_08124034: .4byte gTasks
_08124038: .4byte sub_81203B8
_0812403C:
	movs r0, 0x5
	bl PlaySE
_08124042:
	ldr r0, _0812405C @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _08124060 @ =sub_81203B8
	str r0, [r1]
_08124050:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_0812405C: .4byte gTasks
_08124060: .4byte sub_81203B8
	thumb_func_end sub_8123F80

	thumb_func_start sub_8124064
sub_8124064: @ 8124064
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	ldr r0, _081240E0 @ =gUnknown_203B0A0
	mov r8, r0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	adds r5, r1, 0
	muls r5, r0
	ldr r0, _081240E4 @ =gPlayerParty
	mov r9, r0
	add r5, r9
	movs r0, 0x5
	bl PlaySE
	ldr r4, _081240E8 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	mov r0, r8
	ldrb r4, [r0, 0x9]
	adds r0, r5, 0
	bl sub_8122B20
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	mov r0, r9
	adds r1, r4, 0
	bl sub_812299C
	movs r0, 0
	bl sub_8121E5C
	movs r0, 0x16
	bl sub_8121D0C
	ldr r1, _081240EC @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	movs r1, 0xFF
	strh r1, [r0, 0x8]
	ldr r1, _081240F0 @ =sub_8122C5C
	str r1, [r0]
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081240E0: .4byte gUnknown_203B0A0
_081240E4: .4byte gPlayerParty
_081240E8: .4byte gUnknown_203B09C
_081240EC: .4byte gTasks
_081240F0: .4byte sub_8122C5C
	thumb_func_end sub_8124064

	thumb_func_start sub_81240F4
sub_81240F4: @ 81240F4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r5, _08124120 @ =gUnknown_203B09C
	ldr r0, [r5]
	adds r0, 0xC
	bl sub_8121CE4
	bl sub_8127AC0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124124
	adds r0, r4, 0
	bl sub_811FA78
	b _08124142
	.align 2, 0
_08124120: .4byte gUnknown_203B09C
_08124124:
	ldr r0, [r5]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r0, _08124148 @ =gStringVar4
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _0812414C @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08124150 @ =sub_81203B8
	str r1, [r0]
_08124142:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08124148: .4byte gStringVar4
_0812414C: .4byte gTasks
_08124150: .4byte sub_81203B8
	thumb_func_end sub_81240F4

	thumb_func_start sub_8124154
sub_8124154: @ 8124154
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _0812417C @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0x80
	bne _08124184
	movs r0, 0x2
	mov r8, r0
	ldr r1, _08124180 @ =gUnknown_8416B3E
	str r1, [sp]
	b _0812418C
	.align 2, 0
_0812417C: .4byte gUnknown_203B0A0
_08124180: .4byte gUnknown_8416B3E
_08124184:
	movs r2, 0x3
	mov r8, r2
	ldr r0, _081241FC @ =gUnknown_8416B16
	str r0, [sp]
_0812418C:
	ldr r4, _08124200 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	movs r5, 0
	lsls r1, r7, 2
	mov r9, r1
	cmp r5, r8
	bcs _08124222
	ldr r6, _08124204 @ =gUnknown_203B0A0
	ldr r1, _08124208 @ =gTasks
	mov r2, r9
	adds r0, r2, r7
	lsls r0, 3
	adds r0, r1
	mov r10, r0
_081241B6:
	ldr r0, _0812420C @ =gUnknown_203B0D4
	adds r4, r5, r0
	ldrb r0, [r4]
	cmp r0, 0
	bne _08124218
	movs r0, 0x5
	bl PlaySE
	ldrb r0, [r6, 0x9]
	adds r0, 0x1
	strb r0, [r4]
	adds r0, r5, 0x2
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _08124210 @ =gUnknown_203B0B4
	movs r2, 0x9
	ldrsb r2, [r6, r2]
	lsls r2, 4
	ldr r1, [r1]
	adds r1, r2
	movs r2, 0x1
	bl sub_8121C70
	mov r0, r8
	subs r0, 0x1
	cmp r5, r0
	bne _081241F0
	bl sub_8124258
_081241F0:
	movs r0, 0
	bl sub_8121D0C
	ldr r0, _08124214 @ =sub_811FB28
	mov r1, r10
	b _0812423C
	.align 2, 0
_081241FC: .4byte gUnknown_8416B16
_08124200: .4byte gUnknown_203B09C
_08124204: .4byte gUnknown_203B0A0
_08124208: .4byte gTasks
_0812420C: .4byte gUnknown_203B0D4
_08124210: .4byte gUnknown_203B0B4
_08124214: .4byte sub_811FB28
_08124218:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r8
	bcc _081241B6
_08124222:
	movs r0, 0x1A
	bl PlaySE
	ldr r0, [sp]
	movs r1, 0x1
	bl sub_81202F8
	ldr r0, _08124250 @ =gTasks
	mov r2, r9
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldr r0, _08124254 @ =sub_81203B8
_0812423C:
	str r0, [r1]
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124250: .4byte gTasks
_08124254: .4byte sub_81203B8
	thumb_func_end sub_8124154

	thumb_func_start sub_8124258
sub_8124258: @ 8124258
	push {r4,lr}
	ldr r4, _08124274 @ =gUnknown_203B0A0
	ldrb r0, [r4, 0x9]
	movs r1, 0
	bl sub_811F818
	movs r0, 0x6
	strb r0, [r4, 0x9]
	movs r1, 0x1
	bl sub_811F818
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08124274: .4byte gUnknown_203B0A0
	thumb_func_end sub_8124258

	thumb_func_start sub_8124278
sub_8124278: @ 8124278
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r4, _081242BC @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	movs r4, 0
	ldr r3, _081242C0 @ =gUnknown_203B0D4
	ldr r6, _081242C4 @ =gUnknown_203B0A0
	adds r5, r6, 0
_0812429E:
	adds r2, r4, r3
	ldrb r1, [r2]
	movs r0, 0x9
	ldrsb r0, [r5, r0]
	adds r0, 0x1
	cmp r1, r0
	bne _081242DC
	movs r1, 0
	strb r1, [r2]
	cmp r4, 0
	beq _081242C8
	cmp r4, 0x1
	beq _081242D4
	b _081242E6
	.align 2, 0
_081242BC: .4byte gUnknown_203B09C
_081242C0: .4byte gUnknown_203B0D4
_081242C4: .4byte gUnknown_203B0A0
_081242C8:
	ldrb r0, [r3, 0x1]
	strb r0, [r3]
	ldrb r0, [r3, 0x2]
	strb r0, [r3, 0x1]
	strb r4, [r3, 0x2]
	b _081242E6
_081242D4:
	ldrb r0, [r3, 0x2]
	strb r0, [r3, 0x1]
	strb r1, [r3, 0x2]
	b _081242E6
_081242DC:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _0812429E
_081242E6:
	ldr r5, _08124344 @ =gUnknown_203B0B4
	movs r0, 0x9
	ldrsb r0, [r6, r0]
	lsls r0, 4
	ldr r1, [r5]
	adds r1, r0
	movs r0, 0x1
	movs r2, 0x1
	bl sub_8121C70
	ldr r4, _08124348 @ =gUnknown_203B0D4
	ldrb r0, [r4]
	cmp r0, 0
	beq _08124312
	lsls r0, 4
	subs r0, 0x10
	ldr r1, [r5]
	adds r1, r0
	movs r0, 0x2
	movs r2, 0x1
	bl sub_8121C70
_08124312:
	ldrb r0, [r4, 0x1]
	cmp r0, 0
	beq _08124328
	lsls r0, 4
	subs r0, 0x10
	ldr r1, [r5]
	adds r1, r0
	movs r0, 0x3
	movs r2, 0x1
	bl sub_8121C70
_08124328:
	movs r0, 0
	bl sub_8121D0C
	ldr r0, _0812434C @ =gTasks
	lsls r1, r7, 2
	adds r1, r7
	lsls r1, 3
	adds r1, r0
	ldr r0, _08124350 @ =sub_811FB28
	str r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124344: .4byte gUnknown_203B0B4
_08124348: .4byte gUnknown_203B0D4
_0812434C: .4byte gTasks
_08124350: .4byte sub_811FB28
	thumb_func_end sub_8124278

	thumb_func_start sub_8124354
sub_8124354: @ 8124354
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	ldr r1, _0812437C @ =gUnknown_20370C0
	ldr r0, _08124380 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	strh r0, [r1]
	adds r0, r4, 0
	bl sub_811FA78
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0812437C: .4byte gUnknown_20370C0
_08124380: .4byte gUnknown_203B0A0
	thumb_func_end sub_8124354

	thumb_func_start sub_8124384
sub_8124384: @ 8124384
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _08124410 @ =gUnknown_203B0A0
	mov r9, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r1, 0x64
	mov r8, r1
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	ldr r4, _08124414 @ =gPlayerParty
	adds r0, r4
	movs r1, 0x41
	bl GetMonData
	adds r6, r0, 0
	lsls r6, 16
	lsrs r6, 16
	mov r1, r9
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	adds r0, r4
	movs r1, 0xB
	bl GetMonData
	adds r5, r0, 0
	lsls r5, 16
	lsrs r5, 16
	mov r1, r9
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	adds r0, r4
	movs r1, 0x50
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_80F9800
	ldr r0, [r0]
	adds r1, r6, 0
	adds r2, r5, 0
	adds r3, r4, 0
	bl sub_804FCE0
	cmp r0, 0x1
	beq _08124418
	cmp r0, 0x2
	beq _0812442C
	movs r0, 0x5
	bl PlaySE
	adds r0, r7, 0
	bl sub_811FA78
	b _0812446C
	.align 2, 0
_08124410: .4byte gUnknown_203B0A0
_08124414: .4byte gPlayerParty
_08124418:
	ldr r0, _08124424 @ =gStringVar4
	ldr r1, _08124428 @ =gUnknown_84170BC
	bl StringExpandPlaceholders
	b _08124434
	.align 2, 0
_08124424: .4byte gStringVar4
_08124428: .4byte gUnknown_84170BC
_0812442C:
	ldr r0, _08124478 @ =gStringVar4
	ldr r1, _0812447C @ =gUnknown_84170E0
	bl StringExpandPlaceholders
_08124434:
	movs r0, 0x1A
	bl PlaySE
	ldr r4, _08124480 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r4, _08124478 @ =gStringVar4
	ldr r1, _08124484 @ =gUnknown_84169D9
	adds r0, r4, 0
	bl StringAppend
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _08124488 @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _0812448C @ =sub_81203B8
	str r1, [r0]
_0812446C:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124478: .4byte gStringVar4
_0812447C: .4byte gUnknown_84170E0
_08124480: .4byte gUnknown_203B09C
_08124484: .4byte gUnknown_84169D9
_08124488: .4byte gTasks
_0812448C: .4byte sub_81203B8
	thumb_func_end sub_8124384

	thumb_func_start brm_trade_1
brm_trade_1: @ 8124490
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _08124558 @ =gUnknown_203B0A0
	mov r8, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r6, 0x64
	muls r0, r6
	ldr r4, _0812455C @ =gPlayerParty
	adds r0, r4
	movs r1, 0x41
	bl GetMonData
	mov r9, r0
	mov r1, r9
	lsls r1, 16
	lsrs r1, 16
	mov r9, r1
	mov r1, r8
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	muls r0, r6
	adds r0, r4
	movs r1, 0xB
	bl GetMonData
	adds r5, r0, 0
	lsls r5, 16
	lsrs r5, 16
	mov r1, r8
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	muls r0, r6
	adds r0, r4
	movs r1, 0x50
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_80F9800
	ldr r0, [r0]
	ldr r1, _08124560 @ =gUnknown_203B064
	ldr r1, [r1]
	ldr r2, _08124564 @ =gUnknown_203B068
	ldrh r3, [r2]
	ldr r2, _08124568 @ =gUnknown_203B06A
	ldrb r2, [r2]
	str r2, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	mov r2, r9
	bl sub_804FBEC
	cmp r0, 0
	beq _08124584
	ldr r5, _0812456C @ =gStringVar4
	ldr r1, _08124570 @ =gUnknown_845A7E8
	subs r0, 0x1
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r5, 0
	bl StringExpandPlaceholders
	movs r0, 0x1A
	bl PlaySE
	ldr r4, _08124574 @ =gUnknown_203B09C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r4]
	adds r0, 0xD
	bl sub_8121CE4
	ldr r1, _08124578 @ =gUnknown_84169D9
	adds r0, r5, 0
	bl StringAppend
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _0812457C @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _08124580 @ =sub_81203B8
	str r1, [r0]
	b _08124590
	.align 2, 0
_08124558: .4byte gUnknown_203B0A0
_0812455C: .4byte gPlayerParty
_08124560: .4byte gUnknown_203B064
_08124564: .4byte gUnknown_203B068
_08124568: .4byte gUnknown_203B06A
_0812456C: .4byte gStringVar4
_08124570: .4byte gUnknown_845A7E8
_08124574: .4byte gUnknown_203B09C
_08124578: .4byte gUnknown_84169D9
_0812457C: .4byte gTasks
_08124580: .4byte sub_81203B8
_08124584:
	movs r0, 0x5
	bl PlaySE
	adds r0, r7, 0
	bl sub_811FA78
_08124590:
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end brm_trade_1

	thumb_func_start nullsub_93
nullsub_93: @ 81245A0
	bx lr
	thumb_func_end nullsub_93

	thumb_func_start sub_81245A4
sub_81245A4: @ 81245A4
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	bl GetMenuCursorPos
	ldr r5, _08124610 @ =gUnknown_203B09C
	ldr r1, [r5]
	lsls r0, 24
	lsrs r0, 24
	adds r1, 0xF
	adds r1, r0
	ldrb r0, [r1]
	subs r0, 0x12
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r1, _08124614 @ =gUnknown_845A788
	lsls r0, r4, 3
	adds r7, r0, r1
	ldr r0, [r7]
	cmp r0, 0
	bne _081245D6
	b _081247B4
_081245D6:
	ldr r0, [r5]
	adds r0, 0xC
	bl sub_8121CE4
	ldr r0, [r5]
	adds r0, 0xD
	bl sub_8121CE4
	bl sub_80BF708
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081245FA
	bl InUnionRoom
	cmp r0, 0x1
	bne _0812461C
_081245FA:
	adds r0, r4, 0
	subs r0, 0x9
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08124618
	movs r0, 0xD
	bl sub_8121D0C
	b _081247A6
	.align 2, 0
_08124610: .4byte gUnknown_203B09C
_08124614: .4byte gUnknown_845A788
_08124618:
	ldrb r0, [r7, 0x4]
	b _081247A2
_0812461C:
	cmp r4, 0x6
	bhi _08124658
	movs r1, 0x82
	lsls r1, 4
	adds r0, r4, r1
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08124658
	ldr r0, _0812464C @ =gUnknown_8416AE2
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _08124650 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08124654 @ =sub_81203B8
	str r1, [r0]
	b _081247B4
	.align 2, 0
_0812464C: .4byte gUnknown_8416AE2
_08124650: .4byte gTasks
_08124654: .4byte sub_81203B8
_08124658:
	ldr r1, _08124680 @ =gUnknown_845A788
	lsls r0, r4, 3
	adds r5, r0, r1
	ldr r0, [r5]
	bl _call_via_r0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0812466E
	b _0812478C
_0812466E:
	subs r0, r4, 0x2
	cmp r0, 0x8
	bhi _0812475C
	lsls r0, 2
	ldr r1, _08124684 @ =_08124688
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08124680: .4byte gUnknown_845A788
_08124684: .4byte _08124688
	.align 2, 0
_08124688:
	.4byte _0812474C
	.4byte _0812475C
	.4byte _0812475C
	.4byte _0812475C
	.4byte _0812475C
	.4byte _081246B4
	.4byte _081246F0
	.4byte _081246AC
	.4byte _081246AC
_081246AC:
	adds r0, r6, 0
	bl sub_80E56DC
	b _081247B4
_081246B4:
	ldr r0, _081246E0 @ =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r0, 0x1C
	ldrsb r0, [r1, r0]
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1, 0x1D]
	lsls r1, 24
	asrs r1, 24
	lsls r1, 16
	lsrs r1, 16
	bl get_mapheader_by_bank_and_number
	adds r1, r0, 0
	ldr r0, _081246E4 @ =gStringVar1
	ldrb r1, [r1, 0x14]
	bl sub_80C4DF8
	ldr r0, _081246E8 @ =gStringVar4
	ldr r1, _081246EC @ =gUnknown_8417640
	b _08124720
	.align 2, 0
_081246E0: .4byte gSaveBlock1Ptr
_081246E4: .4byte gStringVar1
_081246E8: .4byte gStringVar4
_081246EC: .4byte gUnknown_8417640
_081246F0:
	ldr r0, _08124738 @ =gSaveBlock1Ptr
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	lsls r0, 16
	lsrs r0, 16
	adds r1, 0x25
	ldrb r1, [r1]
	lsls r1, 24
	asrs r1, 24
	lsls r1, 16
	lsrs r1, 16
	bl get_mapheader_by_bank_and_number
	adds r1, r0, 0
	ldr r0, _0812473C @ =gStringVar1
	ldrb r1, [r1, 0x14]
	bl sub_80C4DF8
	ldr r0, _08124740 @ =gStringVar4
	ldr r1, _08124744 @ =gUnknown_8417615
_08124720:
	bl StringExpandPlaceholders
	adds r0, r6, 0
	bl sub_81247C4
	ldr r0, _08124748 @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0x86
	lsls r1, 2
	adds r0, r1
	strh r4, [r0]
	b _081247B4
	.align 2, 0
_08124738: .4byte gSaveBlock1Ptr
_0812473C: .4byte gStringVar1
_08124740: .4byte gStringVar4
_08124744: .4byte gUnknown_8417615
_08124748: .4byte gUnknown_203B09C
_0812474C:
	ldr r1, _08124754 @ =gUnknown_203B0A0
	ldr r0, _08124758 @ =sub_80C4EF8
	str r0, [r1]
	b _08124778
	.align 2, 0
_08124754: .4byte gUnknown_203B0A0
_08124758: .4byte sub_80C4EF8
_0812475C:
	ldr r1, _08124780 @ =gUnknown_203B0A0
	ldr r0, _08124784 @ =c2_exit_to_overworld_2_switch
	str r0, [r1]
	bl GetCursorSelectionMonId
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, _08124788 @ =gPlayerParty
	adds r0, r1
	adds r1, r4, 0
	bl sub_8124BB0
_08124778:
	adds r0, r6, 0
	bl sub_811FA78
	b _081247B4
	.align 2, 0
_08124780: .4byte gUnknown_203B0A0
_08124784: .4byte c2_exit_to_overworld_2_switch
_08124788: .4byte gPlayerParty
_0812478C:
	cmp r4, 0
	beq _0812479A
	cmp r4, 0x4
	bne _081247A0
	bl sub_8124A0C
	b _081247A6
_0812479A:
	bl sub_8124954
	b _081247A6
_081247A0:
	ldrb r0, [r5, 0x4]
_081247A2:
	bl sub_8121D0C
_081247A6:
	ldr r0, _081247BC @ =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, _081247C0 @ =task_brm_cancel_1_on_keypad_a_or_b
	str r0, [r1]
_081247B4:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081247BC: .4byte gTasks
_081247C0: .4byte task_brm_cancel_1_on_keypad_a_or_b
	thumb_func_end sub_81245A4

	thumb_func_start sub_81247C4
sub_81247C4: @ 81247C4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _081247E8 @ =gStringVar4
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _081247EC @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _081247F0 @ =sub_81247F4
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081247E8: .4byte gStringVar4
_081247EC: .4byte gTasks
_081247F0: .4byte sub_81247F4
	thumb_func_end sub_81247C4

	thumb_func_start sub_81247F4
sub_81247F4: @ 81247F4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08124818
	bl sub_812200C
	ldr r0, _08124820 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08124824 @ =sub_8124828
	str r0, [r1]
_08124818:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08124820: .4byte gTasks
_08124824: .4byte sub_8124828
	thumb_func_end sub_81247F4

	thumb_func_start sub_8124828
sub_8124828: @ 8124828
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0812484E
	cmp r1, 0
	bgt _08124848
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0812488C
	b _081248A2
_08124848:
	cmp r1, 0x1
	beq _08124892
	b _081248A2
_0812484E:
	ldr r1, _0812487C @ =gUnknown_203B0A0
	ldr r0, _08124880 @ =c2_exit_to_overworld_2_switch
	str r0, [r1]
	bl GetCursorSelectionMonId
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, _08124884 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08124888 @ =gUnknown_203B09C
	ldr r1, [r1]
	movs r2, 0x86
	lsls r2, 2
	adds r1, r2
	ldrb r1, [r1]
	bl sub_8124BB0
	adds r0, r4, 0
	bl sub_811FA78
	b _081248A2
	.align 2, 0
_0812487C: .4byte gUnknown_203B0A0
_08124880: .4byte c2_exit_to_overworld_2_switch
_08124884: .4byte gPlayerParty
_08124888: .4byte gUnknown_203B09C
_0812488C:
	movs r0, 0x5
	bl PlaySE
_08124892:
	ldr r0, _081248A8 @ =gUnknown_3005024
	movs r1, 0
	str r1, [r0]
	ldr r0, _081248AC @ =gUnknown_203B0C4
	str r1, [r0]
	adds r0, r4, 0
	bl sub_81203B8
_081248A2:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081248A8: .4byte gUnknown_3005024
_081248AC: .4byte gUnknown_203B0C4
	thumb_func_end sub_8124828

	thumb_func_start hm_add_c3_launch_phase_2
hm_add_c3_launch_phase_2: @ 81248B0
	push {lr}
	bl sub_807DC00
	ldr r0, _081248C4 @ =task_launch_hm_phase_2
	movs r1, 0x8
	bl CreateTask
	movs r0, 0x1
	pop {r1}
	bx r1
	.align 2, 0
_081248C4: .4byte task_launch_hm_phase_2
	thumb_func_end hm_add_c3_launch_phase_2

	thumb_func_start task_launch_hm_phase_2
task_launch_hm_phase_2: @ 81248C8
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_807AA70
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081248F4
	bl brm_get_selected_species
	ldr r1, _081248FC @ =gUnknown_20386E0
	lsls r0, 16
	lsrs r0, 16
	str r0, [r1]
	ldr r0, _08124900 @ =gUnknown_203B0C4
	ldr r0, [r0]
	bl _call_via_r0
	adds r0, r4, 0
	bl DestroyTask
_081248F4:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081248FC: .4byte gUnknown_20386E0
_08124900: .4byte gUnknown_203B0C4
	thumb_func_end task_launch_hm_phase_2

	thumb_func_start brm_get_selected_species
brm_get_selected_species: @ 8124904
	push {lr}
	ldr r0, _08124924 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08124928 @ =gPlayerParty
	adds r0, r1
	movs r1, 0xB
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	.align 2, 0
_08124924: .4byte gUnknown_203B0A0
_08124928: .4byte gPlayerParty
	thumb_func_end brm_get_selected_species

	thumb_func_start task_brm_cancel_1_on_keypad_a_or_b
task_brm_cancel_1_on_keypad_a_or_b: @ 812492C
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, _08124950 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08124946
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0812494C
_08124946:
	adds r0, r2, 0
	bl brm_cancel_1
_0812494C:
	pop {r0}
	bx r0
	.align 2, 0
_08124950: .4byte gMain
	thumb_func_end task_brm_cancel_1_on_keypad_a_or_b

	thumb_func_start sub_8124954
sub_8124954: @ 8124954
	push {lr}
	ldr r0, _0812496C @ =0x00000806
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124970
	movs r0, 0xC
	bl sub_8121D0C
	b _08124976
	.align 2, 0
_0812496C: .4byte 0x00000806
_08124970:
	movs r0, 0xD
	bl sub_8121D0C
_08124976:
	pop {r0}
	bx r0
	thumb_func_end sub_8124954

	thumb_func_start hm_surf_run_dp02scr
hm_surf_run_dp02scr: @ 812497C
	push {lr}
	bl GetCursorSelectionMonId
	ldr r1, _08124994 @ =gUnknown_20386E0
	lsls r0, 24
	lsrs r0, 24
	str r0, [r1]
	movs r0, 0x9
	bl FieldEffectStart
	pop {r0}
	bx r0
	.align 2, 0
_08124994: .4byte gUnknown_20386E0
	thumb_func_end hm_surf_run_dp02scr

	thumb_func_start sub_8124998
sub_8124998: @ 8124998
	push {r4,lr}
	sub sp, 0x4
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	mov r0, sp
	movs r1, 0
	ldrsh r0, [r0, r1]
	movs r2, 0
	ldrsh r1, [r4, r2]
	bl MapGridGetMetatileBehaviorAt
	lsls r0, 24
	lsrs r0, 24
	bl sub_8059CC8
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08124A00
	bl PartyHasMonWithSurf
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124A00
	bl IsPlayerFacingSurfableFishableWater
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124A00
	ldr r1, _081249F0 @ =gUnknown_3005024
	ldr r0, _081249F4 @ =hm_add_c3_launch_phase_2
	str r0, [r1]
	ldr r1, _081249F8 @ =gUnknown_203B0C4
	ldr r0, _081249FC @ =hm_surf_run_dp02scr
	str r0, [r1]
	movs r0, 0x1
	b _08124A02
	.align 2, 0
_081249F0: .4byte gUnknown_3005024
_081249F4: .4byte hm_add_c3_launch_phase_2
_081249F8: .4byte gUnknown_203B0C4
_081249FC: .4byte hm_surf_run_dp02scr
_08124A00:
	movs r0, 0
_08124A02:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8124998

	thumb_func_start sub_8124A0C
sub_8124A0C: @ 8124A0C
	push {r4,lr}
	sub sp, 0x4
	movs r0, 0x8
	bl TestPlayerAvatarFlags
	lsls r0, 24
	cmp r0, 0
	beq _08124A24
	movs r0, 0x9
	bl sub_8121D0C
	b _08124A82
_08124A24:
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	mov r0, sp
	movs r1, 0
	ldrsh r0, [r0, r1]
	movs r2, 0
	ldrsh r1, [r4, r2]
	bl MapGridGetMetatileBehaviorAt
	lsls r0, 24
	lsrs r0, 24
	bl sub_8059CC8
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124A56
	movs r0, 0xA
	bl sub_8121D0C
	b _08124A82
_08124A56:
	ldr r0, _08124A78 @ =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r0, 0x4
	ldrsb r0, [r1, r0]
	cmp r0, 0x3
	bne _08124A7C
	ldrb r0, [r1, 0x5]
	subs r0, 0x23
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08124A7C
	movs r0, 0xB
	bl sub_8121D0C
	b _08124A82
	.align 2, 0
_08124A78: .4byte gSaveBlock1Ptr
_08124A7C:
	movs r0, 0x8
	bl sub_8121D0C
_08124A82:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8124A0C

	thumb_func_start sub_8124A8C
sub_8124A8C: @ 8124A8C
	push {lr}
	ldr r0, _08124AA4 @ =gMapHeader
	ldrb r0, [r0, 0x17]
	bl is_light_level_1_2_3_or_6
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08124AA8
	movs r0, 0
	b _08124AAA
	.align 2, 0
_08124AA4: .4byte gMapHeader
_08124AA8:
	movs r0, 0x1
_08124AAA:
	pop {r1}
	bx r1
	thumb_func_end sub_8124A8C

	thumb_func_start sub_8124AB0
sub_8124AB0: @ 8124AB0
	push {lr}
	sub sp, 0xC
	movs r0, 0
	str r0, [sp]
	ldr r0, _08124AD4 @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _08124AD8 @ =sub_80568A8
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08124AD4: .4byte sub_811FB28
_08124AD8: .4byte sub_80568A8
	thumb_func_end sub_8124AB0

	thumb_func_start hm2_waterfall
hm2_waterfall: @ 8124ADC
	push {lr}
	bl GetCursorSelectionMonId
	ldr r1, _08124AF4 @ =gUnknown_20386E0
	lsls r0, 24
	lsrs r0, 24
	str r0, [r1]
	movs r0, 0x2B
	bl FieldEffectStart
	pop {r0}
	bx r0
	.align 2, 0
_08124AF4: .4byte gUnknown_20386E0
	thumb_func_end hm2_waterfall

	thumb_func_start hm_prepare_waterfall
hm_prepare_waterfall: @ 8124AF8
	push {r4,lr}
	sub sp, 0x4
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	mov r0, sp
	movs r1, 0
	ldrsh r0, [r0, r1]
	movs r2, 0
	ldrsh r1, [r4, r2]
	bl MapGridGetMetatileBehaviorAt
	lsls r0, 24
	lsrs r0, 24
	bl MetatileBehavior_IsWaterfall
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124B54
	bl IsPlayerSurfingNorth
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124B54
	ldr r1, _08124B44 @ =gUnknown_3005024
	ldr r0, _08124B48 @ =hm_add_c3_launch_phase_2
	str r0, [r1]
	ldr r1, _08124B4C @ =gUnknown_203B0C4
	ldr r0, _08124B50 @ =hm2_waterfall
	str r0, [r1]
	movs r0, 0x1
	b _08124B56
	.align 2, 0
_08124B44: .4byte gUnknown_3005024
_08124B48: .4byte hm_add_c3_launch_phase_2
_08124B4C: .4byte gUnknown_203B0C4
_08124B50: .4byte hm2_waterfall
_08124B54:
	movs r0, 0
_08124B56:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end hm_prepare_waterfall

	thumb_func_start sub_8124B60
sub_8124B60: @ 8124B60
	push {r4-r7,lr}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r2, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	movs r0, 0x8
	bl Alloc
	adds r7, r0, 0
	adds r0, r6, 0
	movs r1, 0x41
	bl GetMonData
	strh r0, [r7, 0x4]
	strh r4, [r7]
	strh r5, [r7, 0x2]
	ldr r0, _08124B98 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x6
	bne _08124B9C
	movs r0, 0xA
	adds r1, r7, 0
	bl sub_8113550
	b _08124BA4
	.align 2, 0
_08124B98: .4byte gUnknown_203B0A0
_08124B9C:
	movs r0, 0x9
	adds r1, r7, 0
	bl sub_8113550
_08124BA4:
	adds r0, r7, 0
	bl Free
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8124B60

	thumb_func_start sub_8124BB0
sub_8124BB0: @ 8124BB0
	push {r4-r6,lr}
	adds r5, r0, 0
	lsls r4, r1, 24
	lsrs r4, 24
	movs r0, 0x4
	bl Alloc
	adds r6, r0, 0
	adds r0, r5, 0
	movs r1, 0x41
	bl GetMonData
	strh r0, [r6]
	strb r4, [r6, 0x2]
	ldrb r0, [r6, 0x2]
	cmp r0, 0x7
	beq _08124BDA
	cmp r0, 0x8
	beq _08124BFC
	movs r0, 0xFF
	b _08124C00
_08124BDA:
	ldr r0, _08124BF8 @ =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r0, 0x1C
	ldrsb r0, [r1, r0]
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1, 0x1D]
	lsls r1, 24
	asrs r1, 24
	lsls r1, 16
	lsrs r1, 16
	bl get_mapheader_by_bank_and_number
	b _08124BFE
	.align 2, 0
_08124BF8: .4byte gSaveBlock1Ptr
_08124BFC:
	ldr r0, _08124C18 @ =gMapHeader
_08124BFE:
	ldrb r0, [r0, 0x14]
_08124C00:
	strb r0, [r6, 0x3]
	movs r0, 0x24
	adds r1, r6, 0
	bl sub_8113550
	adds r0, r6, 0
	bl Free
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08124C18: .4byte gMapHeader
	thumb_func_end sub_8124BB0

	thumb_func_start sub_8124C1C
sub_8124C1C: @ 8124C1C
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x8
	bl Alloc
	adds r4, r0, 0
	ldrb r0, [r5]
	strb r0, [r4]
	ldrb r0, [r5, 0x1]
	strb r0, [r4, 0x1]
	movs r0, 0
	ldrsb r0, [r4, r0]
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x1
	ldrsb r1, [r4, r1]
	lsls r1, 16
	lsrs r1, 16
	bl get_mapheader_by_bank_and_number
	adds r5, r0, 0
	adds r0, r4, 0
	bl Free
	movs r0, 0x4
	bl Alloc
	adds r4, r0, 0
	bl GetCursorSelectionMonId
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, _08124C88 @ =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	bl GetMonData
	strh r0, [r4]
	movs r0, 0x2
	strb r0, [r4, 0x2]
	ldrb r0, [r5, 0x14]
	strb r0, [r4, 0x3]
	movs r0, 0x24
	adds r1, r4, 0
	bl sub_8113550
	adds r0, r4, 0
	bl Free
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08124C88: .4byte gPlayerParty
	thumb_func_end sub_8124C1C

	thumb_func_start sub_8124C8C
sub_8124C8C: @ 8124C8C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	ldr r6, _08124CB4 @ =sub_8124D90
	ldr r0, _08124CB8 @ =gMain
	ldr r1, _08124CBC @ =0x00000439
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08124CCC
	movs r0, 0x1
	mov r8, r0
	bl sub_81278B4
	lsls r0, 24
	lsrs r7, r0, 24
	b _08124CD2
	.align 2, 0
_08124CB4: .4byte sub_8124D90
_08124CB8: .4byte gMain
_08124CBC: .4byte 0x00000439
_08124CC0:
	ldr r0, _08124CC8 @ =gUnknown_203B0A0
	strb r5, [r0, 0x9]
	b _08124D16
	.align 2, 0
_08124CC8: .4byte gUnknown_203B0A0
_08124CCC:
	movs r1, 0
	mov r8, r1
	movs r7, 0
_08124CD2:
	ldr r4, _08124D30 @ =gUnknown_203AD30
	ldrh r0, [r4]
	bl GetItemEffectType
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xA
	bne _08124D44
	ldr r1, _08124D34 @ =gUnknown_203B0A0
	movs r0, 0
	strb r0, [r1, 0x9]
	movs r5, 0
_08124CEA:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, _08124D38 @ =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08124D0C
	adds r0, r4, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	beq _08124CC0
_08124D0C:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _08124CEA
_08124D16:
	ldr r0, _08124D30 @ =gUnknown_203AD30
	ldrh r0, [r0]
	bl GetPocketByItemId
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bne _08124D28
	ldr r6, _08124D3C @ =sub_8124DB0
_08124D28:
	ldr r1, _08124D40 @ =sub_8124FC8
	movs r0, 0x7F
	b _08124D6A
	.align 2, 0
_08124D30: .4byte gUnknown_203AD30
_08124D34: .4byte gUnknown_203B0A0
_08124D38: .4byte gPlayerParty
_08124D3C: .4byte sub_8124DB0
_08124D40: .4byte sub_8124FC8
_08124D44:
	ldrh r0, [r4]
	bl GetPocketByItemId
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	beq _08124D5A
	cmp r0, 0x5
	beq _08124D64
	movs r0, 0x5
	b _08124D68
_08124D5A:
	movs r0, 0x4
	ldr r6, _08124D60 @ =sub_8124DA0
	b _08124D68
	.align 2, 0
_08124D60: .4byte sub_8124DA0
_08124D64:
	movs r0, 0x5
	ldr r6, _08124D88 @ =sub_8124DB0
_08124D68:
	ldr r1, _08124D8C @ =sub_811FB28
_08124D6A:
	str r0, [sp]
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	adds r1, r7, 0
	movs r2, 0x3
	movs r3, 0x1
	bl sub_811EA44
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124D88: .4byte sub_8124DB0
_08124D8C: .4byte sub_811FB28
	thumb_func_end sub_8124C8C

	thumb_func_start sub_8124D90
sub_8124D90: @ 8124D90
	push {lr}
	movs r0, 0xB
	movs r1, 0x3
	movs r2, 0
	bl sub_8107DB4
	pop {r0}
	bx r0
	thumb_func_end sub_8124D90

	thumb_func_start sub_8124DA0
sub_8124DA0: @ 8124DA0
	push {lr}
	movs r0, 0x5
	movs r1, 0
	movs r2, 0xFF
	bl sub_81317F8
	pop {r0}
	bx r0
	thumb_func_end sub_8124DA0

	thumb_func_start sub_8124DB0
sub_8124DB0: @ 8124DB0
	push {lr}
	movs r0, 0x6
	movs r1, 0
	movs r2, 0xFF
	bl sub_813CD50
	pop {r0}
	bx r0
	thumb_func_end sub_8124DB0

	thumb_func_start sub_8124DC0
sub_8124DC0: @ 8124DC0
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _08124DD8 @ =gUnknown_203B09C
	ldr r2, [r1]
	ldr r1, _08124DDC @ =sub_8124DE0
	str r1, [r2, 0x4]
	bl sub_811FA78
	pop {r0}
	bx r0
	.align 2, 0
_08124DD8: .4byte gUnknown_203B09C
_08124DDC: .4byte sub_8124DE0
	thumb_func_end sub_8124DC0

	thumb_func_start sub_8124DE0
sub_8124DE0: @ 8124DE0
	push {r4,lr}
	ldr r4, _08124E0C @ =gUnknown_203AD30
	ldrh r0, [r4]
	bl sub_80A1150
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _08124E2C
	bl sub_8126C24
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08124E18
	ldr r0, _08124E10 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	ldrh r1, [r4]
	ldr r2, _08124E14 @ =sub_8126BD4
	bl sub_811C540
	b _08124E38
	.align 2, 0
_08124E0C: .4byte gUnknown_203AD30
_08124E10: .4byte gUnknown_203B0A0
_08124E14: .4byte sub_8126BD4
_08124E18:
	ldr r2, _08124E28 @ =gUnknown_203B0A0
	ldrb r0, [r2, 0x9]
	ldrh r1, [r4]
	ldr r2, [r2]
	bl sub_811C5AC
	b _08124E38
	.align 2, 0
_08124E28: .4byte gUnknown_203B0A0
_08124E2C:
	ldr r0, _08124E40 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	ldrh r1, [r4]
	ldr r2, _08124E44 @ =sub_8124E48
	bl sub_811C540
_08124E38:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08124E40: .4byte gUnknown_203B0A0
_08124E44: .4byte sub_8124E48
	thumb_func_end sub_8124DE0

	thumb_func_start sub_8124E48
sub_8124E48: @ 8124E48
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	ldr r7, _08124EBC @ =gUnknown_203AD30
	ldrh r0, [r7]
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _08124EC8
	bl sub_811D178
	cmp r0, 0x1
	bne _08124EC8
	ldr r0, _08124EC0 @ =gUnknown_203B0A0
	mov r8, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r6, 0x64
	adds r4, r0, 0
	muls r4, r6
	ldr r5, _08124EC4 @ =gPlayerParty
	adds r4, r5
	ldrh r0, [r7]
	bl ItemIdToBattleMoveId
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl GiveMoveToMon
	mov r1, r8
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	muls r0, r6
	adds r0, r5
	movs r1, 0x4
	bl AdjustFriendship
	ldrh r1, [r7]
	movs r0, 0xA9
	lsls r0, 1
	cmp r1, r0
	bhi _08124EB0
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A1D8
_08124EB0:
	mov r1, r8
	ldr r0, [r1]
	bl SetMainCallback2
	b _08124EE6
	.align 2, 0
_08124EBC: .4byte gUnknown_203AD30
_08124EC0: .4byte gUnknown_203B0A0
_08124EC4: .4byte gPlayerParty
_08124EC8:
	ldr r2, _08124EF4 @ =gUnknown_203B0A0
	ldrb r0, [r2, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r3, [r2, 0x9]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _08124EF8 @ =sub_8124FC8
	str r1, [sp, 0x4]
	ldr r1, [r2]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r2, 0
	bl sub_811EA44
_08124EE6:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124EF4: .4byte gUnknown_203B0A0
_08124EF8: .4byte sub_8124FC8
	thumb_func_end sub_8124E48

	thumb_func_start sub_8124EFC
sub_8124EFC: @ 8124EFC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	bl sub_811D178
	cmp r0, 0x1
	bne _08124F94
	ldr r0, _08124F88 @ =gUnknown_203B0A0
	mov r8, r0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	adds r5, r1, 0
	muls r5, r0
	ldr r0, _08124F8C @ =gPlayerParty
	adds r5, r0
	bl sub_8138B2C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r1, r4, 0
	adds r1, 0xD
	adds r0, r5, 0
	bl GetMonData
	adds r6, r0, 0
	lsls r6, 16
	lsrs r6, 16
	adds r0, r5, 0
	adds r1, r4, 0
	bl RemoveMonPPBonus
	ldr r7, _08124F90 @ =gUnknown_203AD30
	ldrh r0, [r7]
	bl ItemIdToBattleMoveId
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r5, 0
	adds r2, r4, 0
	bl SetMonMoveSlot
	adds r0, r5, 0
	movs r1, 0x4
	bl AdjustFriendship
	ldrh r2, [r7]
	movs r0, 0x4
	adds r1, r5, 0
	adds r3, r6, 0
	bl sub_80A2294
	ldrh r1, [r7]
	movs r0, 0xA9
	lsls r0, 1
	cmp r1, r0
	bhi _08124F7C
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A1D8
_08124F7C:
	mov r1, r8
	ldr r0, [r1]
	bl SetMainCallback2
	b _08124FB2
	.align 2, 0
_08124F88: .4byte gUnknown_203B0A0
_08124F8C: .4byte gPlayerParty
_08124F90: .4byte gUnknown_203AD30
_08124F94:
	ldr r4, _08124FC0 @ =gUnknown_203B0A0
	ldrb r0, [r4, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r4, 0xB]
	ldrb r3, [r4, 0x9]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _08124FC4 @ =sub_8124FC8
	str r1, [sp, 0x4]
	ldr r1, [r4]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	bl sub_811EA44
_08124FB2:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08124FC0: .4byte gUnknown_203B0A0
_08124FC4: .4byte sub_8124FC8
	thumb_func_end sub_8124EFC

	thumb_func_start sub_8124FC8
sub_8124FC8: @ 8124FC8
	push {lr}
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r0, _08125000 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08124FFA
	ldr r0, _08125004 @ =gUnknown_203B0A0
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _08124FEE
	ldr r0, _08125008 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _0812500C @ =sub_8128184
	str r0, [r1, 0x4]
_08124FEE:
	ldr r0, _08125010 @ =gUnknown_3005E98
	ldr r1, _08125014 @ =sub_81255BC
	ldr r2, [r0]
	adds r0, r3, 0
	bl _call_via_r2
_08124FFA:
	pop {r0}
	bx r0
	.align 2, 0
_08125000: .4byte gPaletteFade
_08125004: .4byte gUnknown_203B0A0
_08125008: .4byte gUnknown_203B09C
_0812500C: .4byte sub_8128184
_08125010: .4byte gUnknown_3005E98
_08125014: .4byte sub_81255BC
	thumb_func_end sub_8124FC8

	thumb_func_start IsHPRecoveryItem
IsHPRecoveryItem: @ 8125018
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xAF
	bne _08125034
	ldr r0, _0812502C @ =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, _08125030 @ =0x00003108
	adds r0, r1
	b _0812503E
	.align 2, 0
_0812502C: .4byte gSaveBlock1Ptr
_08125030: .4byte 0x00003108
_08125034:
	ldr r1, _0812504C @ =gItemEffectTable
	subs r0, 0xD
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
_0812503E:
	ldrb r1, [r0, 0x4]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	bne _08125050
	movs r0, 0
	b _08125052
	.align 2, 0
_0812504C: .4byte gItemEffectTable
_08125050:
	movs r0, 0x1
_08125052:
	pop {r1}
	bx r1
	thumb_func_end IsHPRecoveryItem

	thumb_func_start GetMedicineItemEffectMessage
GetMedicineItemEffectMessage: @ 8125058
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl GetItemEffectType
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x3
	cmp r0, 0x12
	bls _0812506E
	b _08125204
_0812506E:
	lsls r0, 2
	ldr r1, _08125078 @ =_0812507C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08125078: .4byte _0812507C
	.align 2, 0
_0812507C:
	.4byte _081250C8
	.4byte _081250DC
	.4byte _081250F0
	.4byte _08125104
	.4byte _08125118
	.4byte _0812512C
	.4byte _08125140
	.4byte _08125204
	.4byte _08125154
	.4byte _08125178
	.4byte _08125168
	.4byte _081251A8
	.4byte _081251B8
	.4byte _08125198
	.4byte _08125188
	.4byte _08125204
	.4byte _081251DC
	.4byte _081251DC
	.4byte _081251F0
_081250C8:
	ldr r0, _081250D4 @ =gStringVar4
	ldr r1, _081250D8 @ =gUnknown_8416F4E
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081250D4: .4byte gStringVar4
_081250D8: .4byte gUnknown_8416F4E
_081250DC:
	ldr r0, _081250E8 @ =gStringVar4
	ldr r1, _081250EC @ =gUnknown_8416F8C
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081250E8: .4byte gStringVar4
_081250EC: .4byte gUnknown_8416F8C
_081250F0:
	ldr r0, _081250FC @ =gStringVar4
	ldr r1, _08125100 @ =gUnknown_8416F9A
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081250FC: .4byte gStringVar4
_08125100: .4byte gUnknown_8416F9A
_08125104:
	ldr r0, _08125110 @ =gStringVar4
	ldr r1, _08125114 @ =gUnknown_8416FB2
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_08125110: .4byte gStringVar4
_08125114: .4byte gUnknown_8416FB2
_08125118:
	ldr r0, _08125124 @ =gStringVar4
	ldr r1, _08125128 @ =gUnknown_8416F6F
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_08125124: .4byte gStringVar4
_08125128: .4byte gUnknown_8416F6F
_0812512C:
	ldr r0, _08125138 @ =gStringVar4
	ldr r1, _0812513C @ =gUnknown_8417052
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_08125138: .4byte gStringVar4
_0812513C: .4byte gUnknown_8417052
_08125140:
	ldr r0, _0812514C @ =gStringVar4
	ldr r1, _08125150 @ =gUnknown_8417075
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_0812514C: .4byte gStringVar4
_08125150: .4byte gUnknown_8417075
_08125154:
	ldr r0, _08125160 @ =gStringVar4
	ldr r1, _08125164 @ =gUnknown_8416FED
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_08125160: .4byte gStringVar4
_08125164: .4byte gUnknown_8416FED
_08125168:
	ldr r0, _08125170 @ =gStringVar2
	ldr r1, _08125174 @ =gUnknown_84169C2
	b _081251BC
	.align 2, 0
_08125170: .4byte gStringVar2
_08125174: .4byte gUnknown_84169C2
_08125178:
	ldr r0, _08125180 @ =gStringVar2
	ldr r1, _08125184 @ =gUnknown_8417674
	b _081251BC
	.align 2, 0
_08125180: .4byte gStringVar2
_08125184: .4byte gUnknown_8417674
_08125188:
	ldr r0, _08125190 @ =gStringVar2
	ldr r1, _08125194 @ =gUnknown_841767B
	b _081251BC
	.align 2, 0
_08125190: .4byte gStringVar2
_08125194: .4byte gUnknown_841767B
_08125198:
	ldr r0, _081251A0 @ =gStringVar2
	ldr r1, _081251A4 @ =gUnknown_841768D
	b _081251BC
	.align 2, 0
_081251A0: .4byte gStringVar2
_081251A4: .4byte gUnknown_841768D
_081251A8:
	ldr r0, _081251B0 @ =gStringVar2
	ldr r1, _081251B4 @ =gUnknown_84169C5
	b _081251BC
	.align 2, 0
_081251B0: .4byte gStringVar2
_081251B4: .4byte gUnknown_84169C5
_081251B8:
	ldr r0, _081251CC @ =gStringVar2
	ldr r1, _081251D0 @ =gUnknown_84169CD
_081251BC:
	bl StringCopy
	ldr r0, _081251D4 @ =gStringVar4
	ldr r1, _081251D8 @ =gUnknown_8417032
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081251CC: .4byte gStringVar2
_081251D0: .4byte gUnknown_84169CD
_081251D4: .4byte gStringVar4
_081251D8: .4byte gUnknown_8417032
_081251DC:
	ldr r0, _081251E8 @ =gStringVar4
	ldr r1, _081251EC @ =gUnknown_8417002
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081251E8: .4byte gStringVar4
_081251EC: .4byte gUnknown_8417002
_081251F0:
	ldr r0, _081251FC @ =gStringVar4
	ldr r1, _08125200 @ =gUnknown_8416FC7
	bl StringExpandPlaceholders
	b _0812520C
	.align 2, 0
_081251FC: .4byte gStringVar4
_08125200: .4byte gUnknown_8416FC7
_08125204:
	ldr r0, _08125210 @ =gStringVar4
	ldr r1, _08125214 @ =gUnknown_84169DC
	bl StringExpandPlaceholders
_0812520C:
	pop {r0}
	bx r0
	.align 2, 0
_08125210: .4byte gStringVar4
_08125214: .4byte gUnknown_84169DC
	thumb_func_end GetMedicineItemEffectMessage

	thumb_func_start UsingHPEVItemOnShedinja
UsingHPEVItemOnShedinja: @ 8125218
	push {r4,lr}
	adds r4, r0, 0
	lsls r0, r1, 16
	lsrs r0, 16
	bl GetItemEffectType
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xD
	bne _08125244
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	ldr r1, _08125240 @ =0x0000012f
	cmp r0, r1
	bne _08125244
	movs r0, 0
	b _08125246
	.align 2, 0
_08125240: .4byte 0x0000012f
_08125244:
	movs r0, 0x1
_08125246:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end UsingHPEVItemOnShedinja

	thumb_func_start IsBlueYellowRedFlute
IsBlueYellowRedFlute: @ 812524C
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x27
	beq _0812525E
	cmp r0, 0x29
	beq _0812525E
	cmp r0, 0x28
	bne _08125262
_0812525E:
	movs r0, 0x1
	b _08125264
_08125262:
	movs r0, 0
_08125264:
	pop {r1}
	bx r1
	thumb_func_end IsBlueYellowRedFlute

	thumb_func_start ExecuteTableBasedItemEffect__
ExecuteTableBasedItemEffect__: @ 8125268
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 16
	lsrs r5, r1, 16
	lsls r2, 24
	lsrs r6, r2, 24
	ldr r0, _08125294 @ =gMain
	ldr r1, _08125298 @ =0x00000439
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081252A0
	movs r0, 0x64
	muls r0, r3
	ldr r1, _0812529C @ =gPlayerParty
	adds r0, r1
	adds r1, r5, 0
	adds r2, r3, 0
	b _081252BA
	.align 2, 0
_08125294: .4byte gMain
_08125298: .4byte 0x00000439
_0812529C: .4byte gPlayerParty
_081252A0:
	movs r0, 0x64
	adds r4, r3, 0
	muls r4, r0
	ldr r0, _081252CC @ =gPlayerParty
	adds r4, r0
	adds r0, r3, 0
	bl sub_8127F7C
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r4, 0
	adds r1, r5, 0
_081252BA:
	adds r3, r6, 0
	bl ExecuteTableBasedItemEffect
	lsls r0, 24
	lsrs r0, 24
	pop {r4-r6}
	pop {r1}
	bx r1
	.align 2, 0
_081252CC: .4byte gPlayerParty
	thumb_func_end ExecuteTableBasedItemEffect__

	thumb_func_start sub_81252D0
sub_81252D0: @ 81252D0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r1
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _08125300 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08125304 @ =gPlayerParty
	adds r5, r1, r0
	ldr r0, _08125308 @ =gUnknown_203AD30
	ldrh r6, [r0]
	adds r0, r5, 0
	adds r1, r6, 0
	bl UsingHPEVItemOnShedinja
	lsls r0, 24
	cmp r0, 0
	bne _0812530C
	movs r4, 0x1
	b _08125342
	.align 2, 0
_08125300: .4byte gUnknown_203B0A0
_08125304: .4byte gPlayerParty
_08125308: .4byte gUnknown_203AD30
_0812530C:
	adds r0, r6, 0
	bl IsHPRecoveryItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08125330
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r5, 0
	movs r1, 0x3A
	bl GetMonData
_08125330:
	ldr r0, _08125370 @ =gUnknown_203B0A0
	ldrb r2, [r0, 0x9]
	adds r0, r5, 0
	adds r1, r6, 0
	movs r3, 0
	bl PokemonUseItemEffects2
	lsls r0, 24
	lsrs r4, r0, 24
_08125342:
	movs r0, 0x5
	bl PlaySE
	cmp r4, 0
	beq _08125380
	ldr r1, _08125374 @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	ldr r0, _08125378 @ =gUnknown_84169DC
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _0812537C @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	mov r1, r8
	str r1, [r0]
	b _08125398
	.align 2, 0
_08125370: .4byte gUnknown_203B0A0
_08125374: .4byte gUnknown_203B0C0
_08125378: .4byte gUnknown_84169DC
_0812537C: .4byte gTasks
_08125380:
	ldr r3, _081253A4 @ =0x0000ffff
	movs r0, 0x4
	adds r1, r5, 0
	adds r2, r6, 0
	bl sub_80A2294
	adds r0, r7, 0
	bl sub_8124DC0
	ldr r1, _081253A8 @ =gUnknown_3005E98
	ldr r0, _081253AC @ =ItemUseCB_Medicine
	str r0, [r1]
_08125398:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081253A4: .4byte 0x0000ffff
_081253A8: .4byte gUnknown_3005E98
_081253AC: .4byte ItemUseCB_Medicine
	thumb_func_end sub_81252D0

	thumb_func_start ItemUseCB_Medicine
ItemUseCB_Medicine: @ 81253B0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	str r1, [sp, 0x4]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r0, 0
	mov r10, r0
	ldr r0, _08125438 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _0812543C @ =gPlayerParty
	adds r5, r1, r0
	ldr r0, _08125440 @ =gUnknown_203AD30
	ldrh r6, [r0]
	adds r0, r5, 0
	adds r1, r6, 0
	bl UsingHPEVItemOnShedinja
	lsls r0, 24
	cmp r0, 0
	beq _08125428
	adds r0, r6, 0
	bl IsHPRecoveryItem
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	cmp r0, 0x1
	bne _08125416
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	adds r0, r5, 0
	movs r1, 0x3A
	bl GetMonData
	cmp r10, r0
	bne _08125416
	movs r1, 0
	mov r8, r1
_08125416:
	ldr r4, _08125438 @ =gUnknown_203B0A0
	ldrb r0, [r4, 0x9]
	adds r1, r6, 0
	movs r2, 0
	bl ExecuteTableBasedItemEffect__
	lsls r0, 24
	cmp r0, 0
	beq _0812544C
_08125428:
	ldr r1, _08125444 @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x5
	bl PlaySE
	ldr r0, _08125448 @ =gUnknown_84169DC
	b _0812551C
	.align 2, 0
_08125438: .4byte gUnknown_203B0A0
_0812543C: .4byte gPlayerParty
_08125440: .4byte gUnknown_203AD30
_08125444: .4byte gUnknown_203B0C0
_08125448: .4byte gUnknown_84169DC
_0812544C:
	ldr r1, _08125474 @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	adds r0, r6, 0
	bl IsBlueYellowRedFlute
	lsls r0, 24
	cmp r0, 0
	bne _08125478
	movs r0, 0x1
	bl PlaySE
	ldrb r0, [r4, 0xB]
	cmp r0, 0xE
	beq _0812547E
	adds r0, r6, 0
	movs r1, 0x1
	bl sub_809A1D8
	b _0812547E
	.align 2, 0
_08125474: .4byte gUnknown_203B0C0
_08125478:
	movs r0, 0x6E
	bl PlaySE
_0812547E:
	ldr r4, _081254FC @ =gUnknown_203B0B4
	ldr r7, _08125500 @ =gUnknown_203B0A0
	movs r0, 0x9
	ldrsb r0, [r7, r0]
	lsls r0, 4
	ldr r1, [r4]
	adds r1, r0
	adds r0, r5, 0
	bl party_menu_get_status_condition_and_update_object
	ldr r2, _08125504 @ =gSprites
	movs r0, 0x9
	ldrsb r0, [r7, r0]
	ldr r1, [r4]
	lsls r0, 4
	adds r3, r0, r1
	ldrb r1, [r3, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	bge _081254BC
	adds r0, r5, 0
	adds r1, r3, 0
	movs r2, 0x1
	bl sub_8121790
_081254BC:
	mov r2, r8
	cmp r2, 0x1
	bne _0812550C
	mov r0, r10
	cmp r0, 0
	bne _081254D0
	ldrb r0, [r7, 0x9]
	movs r1, 0x1
	bl sub_811F818
_081254D0:
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	adds r3, r0, 0
	mov r1, r10
	subs r3, r1
	lsls r3, 16
	asrs r3, 16
	ldrb r1, [r7, 0x9]
	ldr r0, _08125508 @ =sub_8125554
	str r0, [sp]
	mov r0, r9
	movs r2, 0x1
	bl sub_8120760
	mov r0, r9
	movs r1, 0
	mov r2, r10
	bl sub_81207F0
	b _08125538
	.align 2, 0
_081254FC: .4byte gUnknown_203B0B4
_08125500: .4byte gUnknown_203B0A0
_08125504: .4byte gSprites
_08125508: .4byte sub_8125554
_0812550C:
	ldr r1, _08125548 @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	adds r0, r6, 0
	bl GetMedicineItemEffectMessage
	ldr r0, _0812554C @ =gStringVar4
_0812551C:
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08125550 @ =gTasks
	mov r2, r9
	lsls r0, r2, 2
	add r0, r9
	lsls r0, 3
	adds r0, r1
	ldr r1, [sp, 0x4]
	str r1, [r0]
_08125538:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08125548: .4byte gStringVar1
_0812554C: .4byte gStringVar4
_08125550: .4byte gTasks
	thumb_func_end ItemUseCB_Medicine

	thumb_func_start sub_8125554
sub_8125554: @ 8125554
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, _081255A0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081255A4 @ =gPlayerParty
	adds r0, r1
	ldr r1, _081255A8 @ =gStringVar1
	bl GetMonNickname
	ldr r4, _081255AC @ =gStringVar4
	ldr r1, _081255B0 @ =gUnknown_8416F27
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	bl sub_803539C
	ldr r1, _081255B4 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _081255B8 @ =sub_81255BC
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081255A0: .4byte gUnknown_203B0A0
_081255A4: .4byte gPlayerParty
_081255A8: .4byte gStringVar1
_081255AC: .4byte gStringVar4
_081255B0: .4byte gUnknown_8416F27
_081255B4: .4byte gTasks
_081255B8: .4byte sub_81255BC
	thumb_func_end sub_8125554

	thumb_func_start sub_81255BC
sub_81255BC: @ 81255BC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081255E2
	ldr r0, _081255E8 @ =gUnknown_203B0C0
	ldrb r1, [r0]
	cmp r1, 0
	bne _081255DC
	ldr r0, _081255EC @ =gUnknown_203B09C
	ldr r0, [r0]
	str r1, [r0, 0x4]
_081255DC:
	adds r0, r4, 0
	bl sub_811FA78
_081255E2:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081255E8: .4byte gUnknown_203B0C0
_081255EC: .4byte gUnknown_203B09C
	thumb_func_end sub_81255BC

	thumb_func_start sub_81255F0
sub_81255F0: @ 81255F0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	mov r10, r0
	movs r1, 0x2
	mov r8, r1
	movs r0, 0x3
	bl sub_8121E5C
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r6, 0
	movs r0, 0x64
	adds r2, r4, 0
	muls r2, r0
	str r2, [sp, 0xC]
_08125620:
	ldr r0, _081256B8 @ =gPlayerParty
	adds r1, r6, 0
	adds r1, 0xD
	ldr r2, [sp, 0xC]
	adds r0, r2, r0
	bl GetMonData
	adds r5, r0, 0
	lsls r5, 16
	lsrs r5, 16
	mov r0, r8
	movs r1, 0
	bl GetFontAttribute
	adds r4, r0, 0
	mov r0, r8
	movs r1, 0x2
	bl GetFontAttribute
	adds r4, r0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xD
	adds r2, r5, 0
	muls r2, r0
	ldr r0, _081256BC @ =gUnknown_8247094
	adds r2, r0
	lsls r0, r6, 4
	adds r0, 0x2
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r7, 0
	str r7, [sp, 0x8]
	mov r0, r9
	mov r1, r8
	adds r3, r4, 0
	bl AddTextPrinterParameterized
	cmp r5, 0
	beq _08125680
	mov r0, r10
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
_08125680:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _08125620
	movs r0, 0x10
	str r0, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	mov r0, r9
	mov r1, r8
	movs r2, 0
	movs r3, 0x2
	bl sub_810F7D8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081256B8: .4byte gPlayerParty
_081256BC: .4byte gUnknown_8247094
	thumb_func_end sub_81255F0

	thumb_func_start sub_81256C0
sub_81256C0: @ 81256C0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	bl ProcessMenuInput
	lsls r0, 24
	asrs r1, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	beq _081256F2
	adds r0, 0x1
	cmp r1, r0
	bne _081256EC
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81257D4
	b _081256F2
_081256EC:
	adds r0, r5, 0
	bl sub_8125790
_081256F2:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81256C0

	thumb_func_start sub_81256F8
sub_81256F8: @ 81256F8
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _08125710 @ =gUnknown_203AD30
	ldrh r0, [r0]
	cmp r0, 0xAF
	bne _0812571C
	ldr r0, _08125714 @ =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, _08125718 @ =0x00003108
	adds r0, r1
	b _08125726
	.align 2, 0
_08125710: .4byte gUnknown_203AD30
_08125714: .4byte gSaveBlock1Ptr
_08125718: .4byte 0x00003108
_0812571C:
	ldr r1, _0812574C @ =gItemEffectTable
	subs r0, 0xD
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
_08125726:
	ldrb r1, [r0, 0x4]
	movs r0, 0x10
	ands r0, r1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _0812575C
	ldr r0, _08125750 @ =gUnknown_203B0A0
	strh r1, [r0, 0xE]
	ldrb r1, [r0, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _08125754
	adds r0, r4, 0
	bl sub_8125958
	b _0812577E
	.align 2, 0
_0812574C: .4byte gItemEffectTable
_08125750: .4byte gUnknown_203B0A0
_08125754:
	adds r0, r4, 0
	bl sub_812580C
	b _0812577E
_0812575C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x17
	bl sub_8121D0C
	ldr r0, _08125784 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	bl sub_81255F0
	ldr r1, _08125788 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _0812578C @ =sub_81256C0
	str r1, [r0]
_0812577E:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125784: .4byte gUnknown_203B0A0
_08125788: .4byte gTasks
_0812578C: .4byte sub_81256C0
	thumb_func_end sub_81256F8

	thumb_func_start sub_8125790
sub_8125790: @ 8125790
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _081257C0 @ =gUnknown_203B09C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_8121CE4
	bl GetMenuCursorPos
	ldr r1, _081257C4 @ =gUnknown_203B0A0
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1, 0xE]
	ldrb r1, [r1, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _081257C8
	adds r0, r4, 0
	bl sub_8125958
	b _081257CE
	.align 2, 0
_081257C0: .4byte gUnknown_203B09C
_081257C4: .4byte gUnknown_203B0A0
_081257C8:
	adds r0, r4, 0
	bl sub_812580C
_081257CE:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8125790

	thumb_func_start sub_81257D4
sub_81257D4: @ 81257D4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, _08125800 @ =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r0, _08125804 @ =sub_811FB28
	str r0, [r1]
	ldr r0, _08125808 @ =gUnknown_203B09C
	ldr r0, [r0]
	movs r1, 0
	str r1, [r0, 0x4]
	adds r0, 0xC
	bl sub_8121CE4
	movs r0, 0x5
	bl sub_8121D0C
	pop {r0}
	bx r0
	.align 2, 0
_08125800: .4byte gTasks
_08125804: .4byte sub_811FB28
_08125808: .4byte gUnknown_203B09C
	thumb_func_end sub_81257D4

	thumb_func_start sub_812580C
sub_812580C: @ 812580C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r3, _08125860 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r3, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08125864 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08125868 @ =gUnknown_203AD30
	ldrh r1, [r1]
	ldrb r2, [r3, 0x9]
	ldrb r3, [r3, 0xE]
	bl PokemonUseItemEffects2
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	cmp r4, 0
	beq _0812587C
	ldr r1, _0812586C @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	ldr r0, _08125870 @ =gUnknown_84169DC
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08125874 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125878 @ =sub_81255BC
	str r1, [r0]
	b _08125888
	.align 2, 0
_08125860: .4byte gUnknown_203B0A0
_08125864: .4byte gPlayerParty
_08125868: .4byte gUnknown_203AD30
_0812586C: .4byte gUnknown_203B0C0
_08125870: .4byte gUnknown_84169DC
_08125874: .4byte gTasks
_08125878: .4byte sub_81255BC
_0812587C:
	adds r0, r5, 0
	bl sub_8124DC0
	ldr r1, _08125890 @ =gUnknown_3005E98
	ldr r0, _08125894 @ =sub_8125898
	str r0, [r1]
_08125888:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08125890: .4byte gUnknown_3005E98
_08125894: .4byte sub_8125898
	thumb_func_end sub_812580C

	thumb_func_start sub_8125898
sub_8125898: @ 8125898
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	mov r8, r0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r5, _08125930 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r5, r1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, _08125934 @ =gPlayerParty
	adds r4, r0
	ldrb r0, [r5, 0x9]
	ldr r6, _08125938 @ =gUnknown_203AD30
	ldrh r1, [r6]
	ldrb r2, [r5, 0xE]
	bl ExecuteTableBasedItemEffect__
	ldr r1, _0812593C @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	ldrh r2, [r6]
	ldr r3, _08125940 @ =0x0000ffff
	movs r0, 0x4
	adds r1, r4, 0
	bl sub_80A2294
	movs r0, 0x1
	bl PlaySE
	ldrh r0, [r6]
	movs r1, 0x1
	bl sub_809A1D8
	movs r2, 0xE
	ldrsh r1, [r5, r2]
	adds r1, 0xD
	adds r0, r4, 0
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	ldr r2, _08125944 @ =gStringVar1
	movs r1, 0xD
	muls r1, r0
	ldr r0, _08125948 @ =gUnknown_8247094
	adds r1, r0
	adds r0, r2, 0
	bl StringCopy
	ldrh r0, [r6]
	bl GetMedicineItemEffectMessage
	ldr r0, _0812594C @ =gStringVar4
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08125950 @ =gTasks
	mov r2, r8
	lsls r0, r2, 2
	add r0, r8
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125954 @ =sub_81255BC
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08125930: .4byte gUnknown_203B0A0
_08125934: .4byte gPlayerParty
_08125938: .4byte gUnknown_203AD30
_0812593C: .4byte gUnknown_203B0C0
_08125940: .4byte 0x0000ffff
_08125944: .4byte gStringVar1
_08125948: .4byte gUnknown_8247094
_0812594C: .4byte gStringVar4
_08125950: .4byte gTasks
_08125954: .4byte sub_81255BC
	thumb_func_end sub_8125898

	thumb_func_start sub_8125958
sub_8125958: @ 8125958
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	movs r4, 0
	ldr r7, _08125990 @ =gUnknown_203B0AE
	ldr r0, _08125994 @ =gUnknown_203AD30
	ldrh r5, [r0]
	movs r0, 0xE
	negs r0, r0
	adds r0, r7
	mov r8, r0
	ldrb r0, [r0, 0x9]
	ldrb r2, [r7]
	adds r1, r5, 0
	bl ExecuteTableBasedItemEffect__
	lsls r0, 24
	cmp r0, 0
	beq _081259A0
	ldr r0, _08125998 @ =gUnknown_203B0C0
	strb r4, [r0]
	movs r0, 0x5
	bl PlaySE
	ldr r0, _0812599C @ =gUnknown_84169DC
	b _081259F6
	.align 2, 0
_08125990: .4byte gUnknown_203B0AE
_08125994: .4byte gUnknown_203AD30
_08125998: .4byte gUnknown_203B0C0
_0812599C: .4byte gUnknown_84169DC
_081259A0:
	ldr r1, _08125A1C @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	mov r0, r8
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, _08125A20 @ =gPlayerParty
	adds r4, r0
	ldr r3, _08125A24 @ =0x0000ffff
	movs r0, 0x4
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_80A2294
	movs r0, 0x1
	bl PlaySE
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_809A1D8
	movs r0, 0
	ldrsh r1, [r7, r0]
	adds r1, 0xD
	adds r0, r4, 0
	bl GetMonData
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, _08125A28 @ =gStringVar1
	movs r1, 0xD
	muls r1, r4
	ldr r2, _08125A2C @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	adds r0, r5, 0
	bl GetMedicineItemEffectMessage
	ldr r0, _08125A30 @ =gStringVar4
_081259F6:
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08125A34 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125A38 @ =sub_81255BC
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08125A1C: .4byte gUnknown_203B0C0
_08125A20: .4byte gPlayerParty
_08125A24: .4byte 0x0000ffff
_08125A28: .4byte gStringVar1
_08125A2C: .4byte gUnknown_8247094
_08125A30: .4byte gStringVar4
_08125A34: .4byte gTasks
_08125A38: .4byte sub_81255BC
	thumb_func_end sub_8125958

	thumb_func_start dp05_pp_up
dp05_pp_up: @ 8125A3C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x18
	bl sub_8121D0C
	ldr r0, _08125A6C @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x9]
	bl sub_81255F0
	ldr r1, _08125A70 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125A74 @ =sub_81256C0
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125A6C: .4byte gUnknown_203B0A0
_08125A70: .4byte gTasks
_08125A74: .4byte sub_81256C0
	thumb_func_end dp05_pp_up

	thumb_func_start ItemIdToBattleMoveId
ItemIdToBattleMoveId: @ 8125A78
	lsls r0, 16
	ldr r1, _08125A88 @ =0xfedf0000
	adds r0, r1
	ldr r1, _08125A8C @ =gUnknown_845A80C
	lsrs r0, 15
	adds r0, r1
	ldrh r0, [r0]
	bx lr
	.align 2, 0
_08125A88: .4byte 0xfedf0000
_08125A8C: .4byte gUnknown_845A80C
	thumb_func_end ItemIdToBattleMoveId

	thumb_func_start sub_8125A90
sub_8125A90: @ 8125A90
	push {lr}
	lsls r0, 16
	lsrs r2, r0, 16
	movs r1, 0
	ldr r3, _08125AAC @ =gUnknown_845A80C
_08125A9A:
	adds r0, r1, 0
	adds r0, 0x32
	lsls r0, 1
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, r2
	bne _08125AB0
	movs r0, 0x1
	b _08125ABC
	.align 2, 0
_08125AAC: .4byte gUnknown_845A80C
_08125AB0:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x6
	bls _08125A9A
	movs r0, 0
_08125ABC:
	pop {r1}
	bx r1
	thumb_func_end sub_8125A90

	thumb_func_start pokemon_has_move
pokemon_has_move: @ 8125AC0
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r1, 16
	lsrs r5, r1, 16
	movs r4, 0
_08125ACA:
	adds r1, r4, 0
	adds r1, 0xD
	adds r0, r6, 0
	bl GetMonData
	cmp r0, r5
	bne _08125ADC
	movs r0, 0x1
	b _08125AE8
_08125ADC:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _08125ACA
	movs r0, 0
_08125AE8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end pokemon_has_move

	thumb_func_start sub_8125AF0
sub_8125AF0: @ 8125AF0
	push {r4,lr}
	adds r1, r0, 0
	ldr r4, _08125B10 @ =gStringVar4
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125B10: .4byte gStringVar4
	thumb_func_end sub_8125AF0

	thumb_func_start sub_8125B14
sub_8125B14: @ 8125B14
	push {r4,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_8125AF0
	ldr r1, _08125B38 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125B3C @ =sub_81255BC
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125B38: .4byte gTasks
_08125B3C: .4byte sub_81255BC
	thumb_func_end sub_8125B14

	thumb_func_start sub_8125B40
sub_8125B40: @ 8125B40
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r7, _08125BD0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r7, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08125BD4 @ =gPlayerParty
	adds r4, r1, r0
	movs r0, 0xE
	adds r0, r7
	mov r8, r0
	ldr r0, _08125BD8 @ =gUnknown_203AD30
	ldrh r5, [r0]
	ldr r1, _08125BDC @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	adds r0, r5, 0
	bl ItemIdToBattleMoveId
	strh r0, [r7, 0xE]
	ldr r0, _08125BE0 @ =gStringVar2
	movs r1, 0xE
	ldrsh r2, [r7, r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _08125BE4 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	movs r0, 0
	mov r1, r8
	strh r0, [r1, 0x2]
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0
	bl sub_8120B20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08125BF4
	cmp r0, 0x2
	beq _08125BFC
	ldrh r1, [r7, 0xE]
	adds r0, r4, 0
	bl GiveMoveToMon
	lsls r0, 16
	lsrs r0, 16
	ldr r3, _08125BE8 @ =0x0000ffff
	cmp r0, r3
	beq _08125C0C
	movs r0, 0x4
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_80A2294
	adds r0, r6, 0
	bl sub_8124DC0
	ldr r1, _08125BEC @ =gUnknown_3005E98
	ldr r0, _08125BF0 @ =sub_8125C38
	str r0, [r1]
	b _08125C20
	.align 2, 0
_08125BD0: .4byte gUnknown_203B0A0
_08125BD4: .4byte gPlayerParty
_08125BD8: .4byte gUnknown_203AD30
_08125BDC: .4byte gStringVar1
_08125BE0: .4byte gStringVar2
_08125BE4: .4byte gUnknown_8247094
_08125BE8: .4byte 0x0000ffff
_08125BEC: .4byte gUnknown_3005E98
_08125BF0: .4byte sub_8125C38
_08125BF4:
	ldr r1, _08125BF8 @ =gUnknown_8416DC2
	b _08125BFE
	.align 2, 0
_08125BF8: .4byte gUnknown_8416DC2
_08125BFC:
	ldr r1, _08125C08 @ =gUnknown_8416F10
_08125BFE:
	adds r0, r6, 0
	bl sub_8125B14
	b _08125C20
	.align 2, 0
_08125C08: .4byte gUnknown_8416F10
_08125C0C:
	ldr r0, _08125C2C @ =gUnknown_8416DF7
	bl sub_8125AF0
	ldr r1, _08125C30 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125C34 @ =sub_8125D88
	str r1, [r0]
_08125C20:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08125C2C: .4byte gUnknown_8416DF7
_08125C30: .4byte gTasks
_08125C34: .4byte sub_8125D88
	thumb_func_end sub_8125B40

	thumb_func_start sub_8125C38
sub_8125C38: @ 8125C38
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl sub_8125C48
	pop {r0}
	bx r0
	thumb_func_end sub_8125C38

	thumb_func_start sub_8125C48
sub_8125C48: @ 8125C48
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, _08125CCC @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r2, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08125CD0 @ =gPlayerParty
	adds r5, r1, r0
	adds r6, r2, 0
	adds r6, 0xE
	ldr r0, _08125CD4 @ =gUnknown_203AD30
	ldrh r4, [r0]
	movs r1, 0x2
	ldrsh r0, [r6, r1]
	cmp r0, 0
	bne _08125C84
	adds r0, r5, 0
	movs r1, 0x4
	bl AdjustFriendship
	movs r0, 0xA9
	lsls r0, 1
	cmp r4, r0
	bhi _08125C84
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_809A1D8
_08125C84:
	ldr r1, _08125CD8 @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	ldr r0, _08125CDC @ =gStringVar2
	movs r1, 0
	ldrsh r2, [r6, r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _08125CE0 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r4, _08125CE4 @ =gStringVar4
	ldr r1, _08125CE8 @ =gUnknown_8416DB3
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08125CEC @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125CF0 @ =sub_8125CF4
	str r1, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08125CCC: .4byte gUnknown_203B0A0
_08125CD0: .4byte gPlayerParty
_08125CD4: .4byte gUnknown_203AD30
_08125CD8: .4byte gStringVar1
_08125CDC: .4byte gStringVar2
_08125CE0: .4byte gUnknown_8247094
_08125CE4: .4byte gStringVar4
_08125CE8: .4byte gUnknown_8416DB3
_08125CEC: .4byte gTasks
_08125CF0: .4byte sub_8125CF4
	thumb_func_end sub_8125C48

	thumb_func_start sub_8125CF4
sub_8125CF4: @ 8125CF4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08125D1A
	ldr r0, _08125D20 @ =0x00000101
	bl PlayFanfare
	ldr r1, _08125D24 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125D28 @ =sub_8125D2C
	str r1, [r0]
_08125D1A:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125D20: .4byte 0x00000101
_08125D24: .4byte gTasks
_08125D28: .4byte sub_8125D2C
	thumb_func_end sub_8125CF4

	thumb_func_start sub_8125D2C
sub_8125D2C: @ 8125D2C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	bl IsFanfareTaskInactive
	lsls r0, 24
	cmp r0, 0
	beq _08125D7E
	ldr r0, _08125D68 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r2, 0x1
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _08125D54
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08125D7E
_08125D54:
	ldr r0, _08125D6C @ =gUnknown_203B0A0
	movs r1, 0x10
	ldrsh r0, [r0, r1]
	cmp r0, 0x1
	bne _08125D70
	adds r0, r4, 0
	bl sub_81266A0
	b _08125D7E
	.align 2, 0
_08125D68: .4byte gMain
_08125D6C: .4byte gUnknown_203B0A0
_08125D70:
	cmp r0, 0x2
	bne _08125D78
	ldr r0, _08125D84 @ =gUnknown_20370D0
	strh r2, [r0]
_08125D78:
	adds r0, r5, 0
	bl sub_811FA78
_08125D7E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08125D84: .4byte gUnknown_20370D0
	thumb_func_end sub_8125D2C

	thumb_func_start sub_8125D88
sub_8125D88: @ 8125D88
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08125DAC
	bl sub_812200C
	ldr r0, _08125DB4 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08125DB8 @ =sub_8125DBC
	str r0, [r1]
_08125DAC:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125DB4: .4byte gTasks
_08125DB8: .4byte sub_8125DBC
	thumb_func_end sub_8125D88

	thumb_func_start sub_8125DBC
sub_8125DBC: @ 8125DBC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _08125DE2
	cmp r1, 0
	bgt _08125DDC
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08125E08
	b _08125E14
_08125DDC:
	cmp r1, 0x1
	beq _08125E0E
	b _08125E14
_08125DE2:
	ldr r0, _08125DFC @ =gUnknown_8416EA4
	movs r1, 0x1
	bl sub_81202F8
	ldr r1, _08125E00 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08125E04 @ =sub_8125E1C
	str r1, [r0]
	b _08125E14
	.align 2, 0
_08125DFC: .4byte gUnknown_8416EA4
_08125E00: .4byte gTasks
_08125E04: .4byte sub_8125E1C
_08125E08:
	movs r0, 0x5
	bl PlaySE
_08125E0E:
	adds r0, r4, 0
	bl sub_81260D8
_08125E14:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8125DBC

	thumb_func_start sub_8125E1C
sub_8125E1C: @ 8125E1C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08125E3C
	ldr r0, _08125E44 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _08125E48 @ =sub_8125E4C
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
_08125E3C:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125E44: .4byte gUnknown_203B09C
_08125E48: .4byte sub_8125E4C
	thumb_func_end sub_8125E1C

	thumb_func_start sub_8125E4C
sub_8125E4C: @ 8125E4C
	push {r4,lr}
	sub sp, 0x4
	ldr r0, _08125E74 @ =gPlayerParty
	ldr r4, _08125E78 @ =gUnknown_203B0A0
	ldrb r1, [r4, 0x9]
	ldr r2, _08125E7C @ =gPlayerPartyCount
	ldrb r2, [r2]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldr r3, _08125E80 @ =sub_8125E84
	ldrh r4, [r4, 0xE]
	str r4, [sp]
	bl sub_8134738
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08125E74: .4byte gPlayerParty
_08125E78: .4byte gUnknown_203B0A0
_08125E7C: .4byte gPlayerPartyCount
_08125E80: .4byte sub_8125E84
	thumb_func_end sub_8125E4C

	thumb_func_start sub_8125E84
sub_8125E84: @ 8125E84
	push {r4,r5,lr}
	sub sp, 0xC
	bl sub_8138B2C
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r4, _08125ED0 @ =gUnknown_203B0A0
	movs r0, 0x10
	ldrsh r5, [r4, r0]
	cmp r5, 0
	bne _08125EE8
	cmp r2, 0x4
	beq _08125EE8
	movs r1, 0x9
	ldrsb r1, [r4, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08125ED4 @ =gPlayerParty
	adds r0, r1
	adds r1, r2, 0
	adds r1, 0xD
	bl GetMonData
	adds r2, r0, 0
	lsls r2, 16
	lsrs r2, 16
	ldrb r0, [r4, 0x9]
	ldr r1, _08125ED8 @ =gUnknown_203AD30
	ldrh r1, [r1]
	ldr r3, _08125EDC @ =sub_8124EFC
	bl sub_811C568
	ldr r1, _08125EE0 @ =gUnknown_3005E98
	ldr r0, _08125EE4 @ =sub_8125F4C
	str r0, [r1]
	strb r5, [r4, 0xB]
	b _08125F02
	.align 2, 0
_08125ED0: .4byte gUnknown_203B0A0
_08125ED4: .4byte gPlayerParty
_08125ED8: .4byte gUnknown_203AD30
_08125EDC: .4byte sub_8124EFC
_08125EE0: .4byte gUnknown_3005E98
_08125EE4: .4byte sub_8125F4C
_08125EE8:
	movs r0, 0x7F
	str r0, [sp]
	ldr r0, _08125F0C @ =sub_8125F14
	str r0, [sp, 0x4]
	ldr r0, _08125F10 @ =gUnknown_203B0A0
	ldr r0, [r0]
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_811EA44
_08125F02:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08125F0C: .4byte sub_8125F14
_08125F10: .4byte gUnknown_203B0A0
	thumb_func_end sub_8125E84

	thumb_func_start sub_8125F14
sub_8125F14: @ 8125F14
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	ldr r0, _08125F3C @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08125F46
	bl sub_8138B2C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	beq _08125F40
	adds r0, r4, 0
	bl sub_8125FFC
	b _08125F46
	.align 2, 0
_08125F3C: .4byte gPaletteFade
_08125F40:
	adds r0, r5, 0
	bl sub_81260D8
_08125F46:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8125F14

	thumb_func_start sub_8125F4C
sub_8125F4C: @ 8125F4C
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl sub_8125F5C
	pop {r0}
	bx r0
	thumb_func_end sub_8125F4C

	thumb_func_start sub_8125F5C
sub_8125F5C: @ 8125F5C
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	mov r8, r0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, _08125FE4 @ =gUnknown_203B0A0
	mov r9, r0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	adds r6, r1, 0
	muls r6, r0
	ldr r0, _08125FE8 @ =gPlayerParty
	adds r6, r0
	bl sub_8138B2C
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	adds r1, r5, 0
	adds r1, 0xD
	adds r0, r6, 0
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, _08125FEC @ =gUnknown_203AD30
	ldrh r2, [r0]
	movs r0, 0x4
	adds r1, r6, 0
	adds r3, r4, 0
	bl sub_80A2294
	ldr r1, _08125FF0 @ =gStringVar1
	adds r0, r6, 0
	bl GetMonNickname
	ldr r0, _08125FF4 @ =gStringVar2
	movs r1, 0xD
	muls r1, r4
	ldr r2, _08125FF8 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	adds r0, r6, 0
	adds r1, r5, 0
	bl RemoveMonPPBonus
	mov r0, r9
	ldrh r1, [r0, 0xE]
	adds r0, r6, 0
	adds r2, r5, 0
	bl SetMonMoveSlot
	mov r0, r8
	bl sub_8125C48
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08125FE4: .4byte gUnknown_203B0A0
_08125FE8: .4byte gPlayerParty
_08125FEC: .4byte gUnknown_203AD30
_08125FF0: .4byte gStringVar1
_08125FF4: .4byte gStringVar2
_08125FF8: .4byte gUnknown_8247094
	thumb_func_end sub_8125F5C

	thumb_func_start sub_8125FFC
sub_8125FFC: @ 8125FFC
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	ldr r0, _0812605C @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	adds r5, r1, 0
	muls r5, r0
	ldr r0, _08126060 @ =gPlayerParty
	adds r5, r0
	bl sub_8138B2C
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r1, 0xD
	adds r0, r5, 0
	bl GetMonData
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r1, _08126064 @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	ldr r0, _08126068 @ =gStringVar2
	movs r1, 0xD
	muls r1, r4
	ldr r2, _0812606C @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r0, _08126070 @ =gUnknown_8416EC6
	bl sub_8125AF0
	ldr r1, _08126074 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126078 @ =sub_812607C
	str r1, [r0]
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0812605C: .4byte gUnknown_203B0A0
_08126060: .4byte gPlayerParty
_08126064: .4byte gStringVar1
_08126068: .4byte gStringVar2
_0812606C: .4byte gUnknown_8247094
_08126070: .4byte gUnknown_8416EC6
_08126074: .4byte gTasks
_08126078: .4byte sub_812607C
	thumb_func_end sub_8125FFC

	thumb_func_start sub_812607C
sub_812607C: @ 812607C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081260C8
	ldr r5, _081260D0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r5, r1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, _081260D4 @ =gPlayerParty
	adds r4, r0
	bl sub_8138B2C
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl RemoveMonPPBonus
	ldrh r5, [r5, 0xE]
	bl sub_8138B2C
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r4, 0
	adds r1, r5, 0
	bl SetMonMoveSlot
	adds r0, r6, 0
	bl sub_8125C48
_081260C8:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081260D0: .4byte gUnknown_203B0A0
_081260D4: .4byte gPlayerParty
	thumb_func_end sub_812607C

	thumb_func_start sub_81260D8
sub_81260D8: @ 81260D8
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, _08126120 @ =gStringVar2
	ldr r1, _08126124 @ =gUnknown_203B0A0
	movs r3, 0xE
	ldrsh r2, [r1, r3]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _08126128 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r4, _0812612C @ =gStringVar4
	ldr r1, _08126130 @ =gUnknown_8416E6B
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08126134 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126138 @ =sub_812613C
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08126120: .4byte gStringVar2
_08126124: .4byte gUnknown_203B0A0
_08126128: .4byte gUnknown_8247094
_0812612C: .4byte gStringVar4
_08126130: .4byte gUnknown_8416E6B
_08126134: .4byte gTasks
_08126138: .4byte sub_812613C
	thumb_func_end sub_81260D8

	thumb_func_start sub_812613C
sub_812613C: @ 812613C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08126160
	bl sub_812200C
	ldr r0, _08126168 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812616C @ =sub_8126170
	str r0, [r1]
_08126160:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08126168: .4byte gTasks
_0812616C: .4byte sub_8126170
	thumb_func_end sub_812613C

	thumb_func_start sub_8126170
sub_8126170: @ 8126170
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r7, _081261A0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r7, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _081261A4 @ =gPlayerParty
	adds r4, r1, r0
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r5, r0, 24
	cmp r5, 0
	beq _081261AE
	cmp r5, 0
	bgt _081261A8
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	beq _08126234
	b _0812626A
	.align 2, 0
_081261A0: .4byte gUnknown_203B0A0
_081261A4: .4byte gPlayerParty
_081261A8:
	cmp r5, 0x1
	beq _0812623A
	b _0812626A
_081261AE:
	ldr r1, _081261F4 @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	ldr r0, _081261F8 @ =gStringVar2
	movs r1, 0xE
	ldrsh r2, [r7, r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _081261FC @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r4, _08126200 @ =gStringVar4
	ldr r1, _08126204 @ =gUnknown_8416E84
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r3, 0x10
	ldrsh r0, [r7, r3]
	cmp r0, 0x1
	bne _08126210
	ldr r0, _08126208 @ =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812620C @ =sub_812628C
	str r0, [r1]
	b _0812626A
	.align 2, 0
_081261F4: .4byte gStringVar1
_081261F8: .4byte gStringVar2
_081261FC: .4byte gUnknown_8247094
_08126200: .4byte gStringVar4
_08126204: .4byte gUnknown_8416E84
_08126208: .4byte gTasks
_0812620C: .4byte sub_812628C
_08126210:
	cmp r0, 0x2
	bne _08126218
	ldr r0, _08126228 @ =gUnknown_20370D0
	strh r5, [r0]
_08126218:
	ldr r0, _0812622C @ =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, _08126230 @ =sub_81255BC
	str r0, [r1]
	b _0812626A
	.align 2, 0
_08126228: .4byte gUnknown_20370D0
_0812622C: .4byte gTasks
_08126230: .4byte sub_81255BC
_08126234:
	movs r0, 0x5
	bl PlaySE
_0812623A:
	ldr r1, _08126270 @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	ldr r0, _08126274 @ =gStringVar2
	ldr r1, _08126278 @ =gUnknown_203B0A0
	movs r3, 0xE
	ldrsh r2, [r1, r3]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _0812627C @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r0, _08126280 @ =gUnknown_8416DF7
	bl sub_8125AF0
	ldr r1, _08126284 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126288 @ =sub_8125D88
	str r1, [r0]
_0812626A:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126270: .4byte gStringVar1
_08126274: .4byte gStringVar2
_08126278: .4byte gUnknown_203B0A0
_0812627C: .4byte gUnknown_8247094
_08126280: .4byte gUnknown_8416DF7
_08126284: .4byte gTasks
_08126288: .4byte sub_8125D88
	thumb_func_end sub_8126170

	thumb_func_start sub_812628C
sub_812628C: @ 812628C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081262A4
	adds r0, r4, 0
	bl sub_81266A0
_081262A4:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_812628C

	thumb_func_start dp05_rare_candy
dp05_rare_candy: @ 81262AC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r1
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r7, _081262E8 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r7, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _081262EC @ =gPlayerParty
	adds r4, r1, r0
	ldr r0, _081262F0 @ =gUnknown_203AD30
	ldrh r5, [r0]
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	cmp r0, 0x64
	beq _081262F4
	ldrb r2, [r7, 0x9]
	adds r0, r4, 0
	adds r1, r5, 0
	movs r3, 0
	bl PokemonUseItemEffects2
	lsls r0, 24
	lsrs r4, r0, 24
	b _081262F6
	.align 2, 0
_081262E8: .4byte gUnknown_203B0A0
_081262EC: .4byte gPlayerParty
_081262F0: .4byte gUnknown_203AD30
_081262F4:
	movs r4, 0x1
_081262F6:
	movs r0, 0x5
	bl PlaySE
	cmp r4, 0
	beq _08126330
	ldr r1, _08126324 @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	ldr r0, _08126328 @ =gUnknown_84169DC
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _0812632C @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	mov r1, r8
	str r1, [r0]
	b _0812633C
	.align 2, 0
_08126324: .4byte gUnknown_203B0C0
_08126328: .4byte gUnknown_84169DC
_0812632C: .4byte gTasks
_08126330:
	adds r0, r6, 0
	bl sub_8124DC0
	ldr r1, _08126348 @ =gUnknown_3005E98
	ldr r0, _0812634C @ =sub_8126350
	str r0, [r1]
_0812633C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126348: .4byte gUnknown_3005E98
_0812634C: .4byte sub_8126350
	thumb_func_end dp05_rare_candy

	thumb_func_start sub_8126350
sub_8126350: @ 8126350
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r6, _08126410 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r6, r1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, _08126414 @ =gPlayerParty
	adds r4, r0
	ldr r0, _08126418 @ =gUnknown_203B09C
	ldr r7, [r0]
	movs r2, 0x86
	lsls r2, 2
	adds r1, r7, r2
	adds r0, r4, 0
	bl sub_811D130
	ldrb r0, [r6, 0x9]
	ldr r5, _0812641C @ =gUnknown_203AD30
	ldrh r1, [r5]
	movs r2, 0
	bl ExecuteTableBasedItemEffect__
	movs r0, 0x89
	lsls r0, 2
	adds r1, r7, r0
	adds r0, r4, 0
	bl sub_811D130
	ldr r1, _08126420 @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	ldrh r2, [r5]
	ldr r3, _08126424 @ =0x0000ffff
	movs r0, 0x4
	adds r1, r4, 0
	bl sub_80A2294
	movs r0, 0
	bl PlayFanfareByFanfareNum
	ldrb r0, [r6, 0x9]
	adds r1, r4, 0
	bl sub_8126440
	ldrh r0, [r5]
	movs r1, 0x1
	bl sub_809A1D8
	ldr r1, _08126428 @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	ldr r0, _0812642C @ =gStringVar2
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r4, _08126430 @ =gStringVar4
	ldr r1, _08126434 @ =gUnknown_8417017
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08126438 @ =gTasks
	mov r2, r8
	lsls r0, r2, 2
	add r0, r8
	lsls r0, 3
	adds r0, r1
	ldr r1, _0812643C @ =sub_81264C8
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126410: .4byte gUnknown_203B0A0
_08126414: .4byte gPlayerParty
_08126418: .4byte gUnknown_203B09C
_0812641C: .4byte gUnknown_203AD30
_08126420: .4byte gUnknown_203B0C0
_08126424: .4byte 0x0000ffff
_08126428: .4byte gStringVar1
_0812642C: .4byte gStringVar2
_08126430: .4byte gStringVar4
_08126434: .4byte gUnknown_8417017
_08126438: .4byte gTasks
_0812643C: .4byte sub_81264C8
	thumb_func_end sub_8126350

	thumb_func_start sub_8126440
sub_8126440: @ 8126440
	push {r4-r7,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r0, 24
	adds r7, r0, 0
	ldr r6, _081264C0 @ =gUnknown_203B0B4
	lsls r4, r7, 4
	ldr r1, [r6]
	adds r1, r4
	adds r0, r5, 0
	bl party_menu_get_status_condition_and_update_object
	ldr r2, _081264C4 @ =gSprites
	ldr r0, [r6]
	adds r3, r4, r0
	ldrb r1, [r3, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	bge _0812647C
	adds r0, r5, 0
	adds r1, r3, 0
	movs r2, 0x1
	bl sub_8121790
_0812647C:
	ldr r1, [r6]
	adds r1, r4
	adds r0, r5, 0
	movs r2, 0x1
	bl sub_812199C
	ldr r1, [r6]
	adds r1, r4
	adds r0, r5, 0
	movs r2, 0x1
	bl sub_8121A3C
	ldr r1, [r6]
	adds r1, r4
	adds r0, r5, 0
	bl sub_8121AF0
	ldr r0, [r6]
	adds r0, r4, r0
	ldrb r0, [r0, 0x9]
	adds r1, r5, 0
	bl sub_8122358
	adds r0, r7, 0
	movs r1, 0x1
	bl sub_811F818
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081264C0: .4byte gUnknown_203B0B4
_081264C4: .4byte gSprites
	thumb_func_end sub_8126440

	thumb_func_start sub_81264C8
sub_81264C8: @ 81264C8
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0
	bl WaitFanfare
	lsls r0, 24
	cmp r0, 0
	beq _08126514
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08126514
	ldr r0, _0812651C @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _081264FA
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08126514
_081264FA:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_8126570
	ldr r0, _08126520 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08126524 @ =sub_8126528
	str r0, [r1]
_08126514:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_0812651C: .4byte gMain
_08126520: .4byte gTasks
_08126524: .4byte sub_8126528
	thumb_func_end sub_81264C8

	thumb_func_start sub_8126528
sub_8126528: @ 8126528
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _08126564 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08126542
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0812655C
_08126542:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81265BC
	ldr r0, _08126568 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812656C @ =sub_81265F8
	str r0, [r1]
_0812655C:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08126564: .4byte gMain
_08126568: .4byte gTasks
_0812656C: .4byte sub_81265F8
	thumb_func_end sub_8126528

	thumb_func_start sub_8126570
sub_8126570: @ 8126570
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r0, _081265B8 @ =gUnknown_203B09C
	ldr r5, [r0]
	movs r0, 0x86
	lsls r0, 2
	adds r4, r5, r0
	bl sub_8122034
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x18]
	ldrh r0, [r4, 0x18]
	movs r1, 0x89
	lsls r1, 2
	adds r2, r5, r1
	movs r1, 0x2
	str r1, [sp]
	movs r1, 0x3
	str r1, [sp, 0x4]
	adds r1, r4, 0
	movs r3, 0x1
	bl sub_811E7F0
	ldrb r0, [r4, 0x18]
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081265B8: .4byte gUnknown_203B09C
	thumb_func_end sub_8126570

	thumb_func_start sub_81265BC
sub_81265BC: @ 81265BC
	push {r4,lr}
	sub sp, 0x4
	ldr r0, _081265F4 @ =gUnknown_203B09C
	ldr r1, [r0]
	movs r0, 0x86
	lsls r0, 2
	adds r4, r1, r0
	ldrh r0, [r4, 0x18]
	movs r2, 0x89
	lsls r2, 2
	adds r1, r2
	movs r2, 0x3
	str r2, [sp]
	movs r2, 0x1
	movs r3, 0x2
	bl sub_811E93C
	ldrb r0, [r4, 0x18]
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081265F4: .4byte gUnknown_203B09C
	thumb_func_end sub_81265BC

	thumb_func_start sub_81265F8
sub_81265F8: @ 81265F8
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0
	bl WaitFanfare
	lsls r0, 24
	cmp r0, 0
	beq _0812669A
	ldr r0, _08126650 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r6, 0x1
	adds r0, r6, 0
	ands r0, r1
	cmp r0, 0
	bne _08126620
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0812669A
_08126620:
	bl sub_8122064
	ldr r4, _08126654 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r4, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08126658 @ =gPlayerParty
	adds r0, r1
	movs r1, 0x1
	bl MonTryLearningNewMove
	lsls r0, 16
	lsrs r1, r0, 16
	strh r6, [r4, 0x10]
	ldr r0, _0812665C @ =0x0000fffe
	cmp r1, r0
	beq _0812667C
	cmp r1, r0
	bgt _08126660
	cmp r1, 0
	beq _0812666C
	b _08126694
	.align 2, 0
_08126650: .4byte gMain
_08126654: .4byte gUnknown_203B0A0
_08126658: .4byte gPlayerParty
_0812665C: .4byte 0x0000fffe
_08126660:
	ldr r0, _08126668 @ =0x0000ffff
	cmp r1, r0
	beq _08126674
	b _08126694
	.align 2, 0
_08126668: .4byte 0x0000ffff
_0812666C:
	adds r0, r5, 0
	bl sub_8126704
	b _0812669A
_08126674:
	adds r0, r5, 0
	bl sub_8126770
	b _0812669A
_0812667C:
	ldr r0, _0812668C @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _08126690 @ =sub_81266A0
	str r0, [r1]
	b _0812669A
	.align 2, 0
_0812668C: .4byte gTasks
_08126690: .4byte sub_81266A0
_08126694:
	adds r0, r5, 0
	bl sub_8126804
_0812669A:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81265F8

	thumb_func_start sub_81266A0
sub_81266A0: @ 81266A0
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _081266D0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081266D4 @ =gPlayerParty
	adds r0, r1
	movs r1, 0
	bl MonTryLearningNewMove
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r0, _081266D8 @ =0x0000fffe
	cmp r1, r0
	beq _081266FE
	cmp r1, r0
	bgt _081266DC
	cmp r1, 0
	beq _081266E8
	b _081266F8
	.align 2, 0
_081266D0: .4byte gUnknown_203B0A0
_081266D4: .4byte gPlayerParty
_081266D8: .4byte 0x0000fffe
_081266DC:
	ldr r0, _081266E4 @ =0x0000ffff
	cmp r1, r0
	beq _081266F0
	b _081266F8
	.align 2, 0
_081266E4: .4byte 0x0000ffff
_081266E8:
	adds r0, r4, 0
	bl sub_8126704
	b _081266FE
_081266F0:
	adds r0, r4, 0
	bl sub_8126770
	b _081266FE
_081266F8:
	adds r0, r4, 0
	bl sub_8126804
_081266FE:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81266A0

	thumb_func_start sub_8126704
sub_8126704: @ 8126704
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r6, _08126748 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r6, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _0812674C @ =gPlayerParty
	adds r7, r1, r0
	adds r0, r7, 0
	movs r1, 0
	movs r2, 0
	bl GetEvolutionTargetSpecies
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0
	beq _08126754
	bl sub_811F070
	ldr r0, _08126750 @ =gUnknown_300537C
	ldr r1, [r6]
	str r1, [r0]
	ldrb r3, [r6, 0x9]
	adds r0, r7, 0
	adds r1, r4, 0
	movs r2, 0x1
	bl BeginEvolutionScene
	adds r0, r5, 0
	bl DestroyTask
	b _08126762
	.align 2, 0
_08126748: .4byte gUnknown_203B0A0
_0812674C: .4byte gPlayerParty
_08126750: .4byte gUnknown_300537C
_08126754:
	ldr r0, _08126768 @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _0812676C @ =sub_81255BC
	str r0, [r1]
_08126762:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126768: .4byte gTasks
_0812676C: .4byte sub_81255BC
	thumb_func_end sub_8126704

	thumb_func_start sub_8126770
sub_8126770: @ 8126770
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, _081267DC @ =gUnknown_203B0A0
	mov r8, r0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _081267E0 @ =gPlayerParty
	adds r0, r1
	ldr r1, _081267E4 @ =gStringVar1
	bl GetMonNickname
	ldr r0, _081267E8 @ =gStringVar2
	ldr r6, _081267EC @ =gMoveToLearn
	ldrh r2, [r6]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _081267F0 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r4, _081267F4 @ =gStringVar4
	ldr r1, _081267F8 @ =gUnknown_8416DF7
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldrh r0, [r6]
	mov r1, r8
	strh r0, [r1, 0xE]
	ldr r1, _081267FC @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126800 @ =sub_8125D88
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081267DC: .4byte gUnknown_203B0A0
_081267E0: .4byte gPlayerParty
_081267E4: .4byte gStringVar1
_081267E8: .4byte gStringVar2
_081267EC: .4byte gMoveToLearn
_081267F0: .4byte gUnknown_8247094
_081267F4: .4byte gStringVar4
_081267F8: .4byte gUnknown_8416DF7
_081267FC: .4byte gTasks
_08126800: .4byte sub_8125D88
	thumb_func_end sub_8126770

	thumb_func_start sub_8126804
sub_8126804: @ 8126804
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r6, r0, 0
	adds r5, r1, 0
	lsls r6, 24
	lsrs r6, 24
	lsls r5, 16
	lsrs r5, 16
	ldr r0, _08126870 @ =gUnknown_203B0A0
	mov r8, r0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08126874 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08126878 @ =gStringVar1
	bl GetMonNickname
	ldr r0, _0812687C @ =gStringVar2
	movs r1, 0xD
	muls r1, r5
	ldr r2, _08126880 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	ldr r4, _08126884 @ =gStringVar4
	ldr r1, _08126888 @ =gUnknown_8416DB3
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	mov r0, r8
	strh r5, [r0, 0xE]
	ldr r1, _0812688C @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126890 @ =sub_8125CF4
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08126870: .4byte gUnknown_203B0A0
_08126874: .4byte gPlayerParty
_08126878: .4byte gStringVar1
_0812687C: .4byte gStringVar2
_08126880: .4byte gUnknown_8247094
_08126884: .4byte gStringVar4
_08126888: .4byte gUnknown_8416DB3
_0812688C: .4byte gTasks
_08126890: .4byte sub_8125CF4
	thumb_func_end sub_8126804

	thumb_func_start sub_8126894
sub_8126894: @ 8126894
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _081268C8 @ =gUnknown_203B09C
	ldr r2, [r1]
	movs r3, 0x86
	lsls r3, 2
	adds r1, r2, r3
	movs r3, 0
	strh r3, [r1]
	ldr r4, _081268CC @ =0x0000021a
	adds r1, r2, r4
	strh r3, [r1]
	ldr r1, _081268D0 @ =gUnknown_203B0A0
	ldrb r1, [r1, 0x9]
	lsls r1, 24
	asrs r1, 24
	movs r3, 0x87
	lsls r3, 2
	adds r2, r3
	strh r1, [r2]
	bl sub_81268D4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081268C8: .4byte gUnknown_203B09C
_081268CC: .4byte 0x0000021a
_081268D0: .4byte gUnknown_203B0A0
	thumb_func_end sub_8126894

	thumb_func_start sub_81268D4
sub_81268D4: @ 81268D4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	mov r9, r4
	ldr r6, _08126930 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r6, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08126934 @ =gPlayerParty
	adds r5, r1, r0
	adds r0, r5, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08126920
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	ldrb r0, [r6, 0x9]
	ldr r1, _08126938 @ =gUnknown_203AD30
	ldrh r1, [r1]
	movs r2, 0
	bl ExecuteTableBasedItemEffect__
	lsls r0, 24
	cmp r0, 0
	beq _08126944
_08126920:
	ldr r0, _0812693C @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08126940 @ =sub_8126A18
	str r0, [r1]
	b _081269EE
	.align 2, 0
_08126930: .4byte gUnknown_203B0A0
_08126934: .4byte gPlayerParty
_08126938: .4byte gUnknown_203AD30
_0812693C: .4byte gTasks
_08126940: .4byte sub_8126A18
_08126944:
	movs r0, 0x1
	bl PlaySE
	ldr r7, _08126A00 @ =gUnknown_203B09C
	ldr r0, [r7]
	ldr r1, _08126A04 @ =0x0000021a
	mov r10, r1
	add r0, r10
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0
	bne _08126960
	ldr r0, _08126A08 @ =gUnknown_203B0D0
	str r5, [r0]
_08126960:
	ldr r4, _08126A0C @ =gUnknown_203B0B4
	movs r0, 0x9
	ldrsb r0, [r6, r0]
	lsls r0, 4
	ldr r1, [r4]
	adds r1, r0
	adds r0, r5, 0
	bl party_menu_get_status_condition_and_update_object
	ldr r2, _08126A10 @ =gSprites
	movs r0, 0x9
	ldrsb r0, [r6, r0]
	ldr r1, [r4]
	lsls r0, 4
	adds r3, r0, r1
	ldrb r1, [r3, 0xC]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	bge _0812699C
	adds r0, r5, 0
	adds r1, r3, 0
	movs r2, 0x1
	bl sub_8121790
_0812699C:
	ldr r0, [r7]
	movs r1, 0x87
	lsls r1, 2
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0
	bl sub_811F818
	ldrb r0, [r6, 0x9]
	movs r1, 0x1
	bl sub_811F818
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	adds r3, r0, 0
	mov r2, r8
	subs r3, r2
	lsls r3, 16
	asrs r3, 16
	ldrb r1, [r6, 0x9]
	ldr r0, _08126A14 @ =sub_8126AFC
	str r0, [sp]
	mov r0, r9
	movs r2, 0x1
	bl sub_8120760
	mov r0, r9
	movs r1, 0
	mov r2, r8
	bl sub_81207F0
	ldr r0, [r7]
	movs r2, 0x86
	lsls r2, 2
	adds r1, r0, r2
	movs r2, 0x1
	strh r2, [r1]
	add r0, r10
	strh r2, [r0]
_081269EE:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126A00: .4byte gUnknown_203B09C
_08126A04: .4byte 0x0000021a
_08126A08: .4byte gUnknown_203B0D0
_08126A0C: .4byte gUnknown_203B0B4
_08126A10: .4byte gSprites
_08126A14: .4byte sub_8126AFC
	thumb_func_end sub_81268D4

	thumb_func_start sub_8126A18
sub_8126A18: @ 8126A18
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08126AF6
	ldr r5, _08126A80 @ =gUnknown_203B09C
	ldr r2, [r5]
	movs r0, 0x86
	lsls r0, 2
	adds r1, r2, r0
	movs r3, 0
	ldrsh r0, [r1, r3]
	ldr r3, _08126A84 @ =gUnknown_203B0A0
	cmp r0, 0x1
	bne _08126A4E
	movs r0, 0
	strh r0, [r1]
	movs r1, 0x9
	ldrsb r1, [r3, r1]
	movs r6, 0x87
	lsls r6, 2
	adds r0, r2, r6
	strh r1, [r0]
_08126A4E:
	adds r1, r3, 0
	ldrb r0, [r1, 0x9]
	adds r0, 0x1
	strb r0, [r1, 0x9]
	lsls r0, 24
	asrs r0, 24
	cmp r0, 0x6
	bne _08126AF0
	ldr r0, [r5]
	ldr r1, _08126A88 @ =0x0000021a
	adds r0, r1
	movs r2, 0
	ldrsh r1, [r0, r2]
	cmp r1, 0
	bne _08126A94
	ldr r0, _08126A8C @ =gUnknown_203B0C0
	strb r1, [r0]
	ldr r0, _08126A90 @ =gUnknown_84169DC
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	b _08126ABE
	.align 2, 0
_08126A80: .4byte gUnknown_203B09C
_08126A84: .4byte gUnknown_203B0A0
_08126A88: .4byte 0x0000021a
_08126A8C: .4byte gUnknown_203B0C0
_08126A90: .4byte gUnknown_84169DC
_08126A94:
	ldr r1, _08126AD4 @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	ldrb r1, [r3, 0x8]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	beq _08126AB4
	ldr r0, _08126AD8 @ =gUnknown_203B0D0
	ldr r1, [r0]
	ldr r0, _08126ADC @ =gUnknown_203AD30
	ldrh r2, [r0]
	ldr r3, _08126AE0 @ =0x0000ffff
	movs r0, 0x4
	bl sub_80A2294
_08126AB4:
	ldr r0, _08126ADC @ =gUnknown_203AD30
	ldrh r0, [r0]
	movs r1, 0x1
	bl sub_809A1D8
_08126ABE:
	ldr r1, _08126AE4 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126AE8 @ =sub_81255BC
	str r1, [r0]
	ldr r1, _08126AEC @ =gUnknown_203B0A0
	movs r0, 0
	strb r0, [r1, 0x9]
	b _08126AF6
	.align 2, 0
_08126AD4: .4byte gUnknown_203B0C0
_08126AD8: .4byte gUnknown_203B0D0
_08126ADC: .4byte gUnknown_203AD30
_08126AE0: .4byte 0x0000ffff
_08126AE4: .4byte gTasks
_08126AE8: .4byte sub_81255BC
_08126AEC: .4byte gUnknown_203B0A0
_08126AF0:
	adds r0, r4, 0
	bl sub_81268D4
_08126AF6:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8126A18

	thumb_func_start sub_8126AFC
sub_8126AFC: @ 8126AFC
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, _08126B44 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08126B48 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08126B4C @ =gStringVar1
	bl GetMonNickname
	ldr r4, _08126B50 @ =gStringVar4
	ldr r1, _08126B54 @ =gUnknown_8416F27
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r4, 0
	movs r1, 0
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08126B58 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126B5C @ =sub_8126A18
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08126B44: .4byte gUnknown_203B0A0
_08126B48: .4byte gPlayerParty
_08126B4C: .4byte gStringVar1
_08126B50: .4byte gStringVar4
_08126B54: .4byte gUnknown_8416F27
_08126B58: .4byte gTasks
_08126B5C: .4byte sub_8126A18
	thumb_func_end sub_8126AFC

	thumb_func_start sub_8126B60
sub_8126B60: @ 8126B60
	push {r4,r5,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x5
	bl PlaySE
	ldr r2, _08126BB0 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r2, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08126BB4 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08126BB8 @ =gUnknown_203AD30
	ldrh r1, [r1]
	ldrb r2, [r2, 0x9]
	movs r3, 0
	bl PokemonUseItemEffects2
	lsls r0, 24
	cmp r0, 0
	beq _08126BC8
	ldr r1, _08126BBC @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	ldr r0, _08126BC0 @ =gUnknown_84169DC
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _08126BC4 @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	str r5, [r0]
	b _08126BCE
	.align 2, 0
_08126BB0: .4byte gUnknown_203B0A0
_08126BB4: .4byte gPlayerParty
_08126BB8: .4byte gUnknown_203AD30
_08126BBC: .4byte gUnknown_203B0C0
_08126BC0: .4byte gUnknown_84169DC
_08126BC4: .4byte gTasks
_08126BC8:
	adds r0, r4, 0
	bl sub_8124DC0
_08126BCE:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8126B60

	thumb_func_start sub_8126BD4
sub_8126BD4: @ 8126BD4
	push {r4,r5,lr}
	ldr r1, _08126C10 @ =gUnknown_300537C
	ldr r4, _08126C14 @ =gUnknown_203B0A0
	ldr r0, [r4]
	str r0, [r1]
	ldrb r0, [r4, 0x9]
	ldr r5, _08126C18 @ =gUnknown_203AD30
	ldrh r1, [r5]
	movs r2, 0
	bl ExecuteTableBasedItemEffect__
	movs r1, 0x9
	ldrsb r1, [r4, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08126C1C @ =gPlayerParty
	adds r1, r0
	ldrh r2, [r5]
	ldr r3, _08126C20 @ =0x0000ffff
	movs r0, 0x4
	bl sub_80A2294
	ldrh r0, [r5]
	movs r1, 0x1
	bl sub_809A1D8
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08126C10: .4byte gUnknown_300537C
_08126C14: .4byte gUnknown_203B0A0
_08126C18: .4byte gUnknown_203AD30
_08126C1C: .4byte gPlayerParty
_08126C20: .4byte 0x0000ffff
	thumb_func_end sub_8126BD4

	thumb_func_start sub_8126C24
sub_8126C24: @ 8126C24
	push {lr}
	bl sub_806E25C
	cmp r0, 0
	bne _08126C60
	ldr r0, _08126C54 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08126C58 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08126C5C @ =gUnknown_203AD30
	ldrh r2, [r1]
	movs r1, 0x2
	bl GetEvolutionTargetSpecies
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x97
	bls _08126C60
	movs r0, 0
	b _08126C62
	.align 2, 0
_08126C54: .4byte gUnknown_203B0A0
_08126C58: .4byte gPlayerParty
_08126C5C: .4byte gUnknown_203AD30
_08126C60:
	movs r0, 0x1
_08126C62:
	pop {r1}
	bx r1
	thumb_func_end sub_8126C24

	thumb_func_start GetItemEffectType
GetItemEffectType: @ 8126C68
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r1, r0, 16
	adds r2, r1, 0
	subs r2, 0xD
	lsls r0, r2, 16
	lsrs r0, 16
	cmp r0, 0xA5
	bls _08126C7C
	b _08126DBC
_08126C7C:
	cmp r1, 0xAF
	bne _08126C94
	ldr r0, _08126C8C @ =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, _08126C90 @ =0x00003108
	adds r4, r0, r1
	b _08126C9C
	.align 2, 0
_08126C8C: .4byte gSaveBlock1Ptr
_08126C90: .4byte 0x00003108
_08126C94:
	ldr r1, _08126CC4 @ =gItemEffectTable
	lsls r0, r2, 2
	adds r0, r1
	ldr r4, [r0]
_08126C9C:
	ldrb r1, [r4]
	movs r5, 0x3F
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	bne _08126CBE
	ldrb r0, [r4, 0x1]
	cmp r0, 0
	bne _08126CBE
	ldrb r0, [r4, 0x2]
	cmp r0, 0
	bne _08126CBE
	ldrb r3, [r4, 0x3]
	movs r0, 0x80
	ands r0, r3
	cmp r0, 0
	beq _08126CC8
_08126CBE:
	movs r0, 0
	b _08126DC2
	.align 2, 0
_08126CC4: .4byte gItemEffectTable
_08126CC8:
	movs r2, 0x40
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	beq _08126CD6
	movs r0, 0xA
	b _08126DC2
_08126CD6:
	adds r0, r2, 0
	ands r0, r3
	cmp r0, 0
	beq _08126CE2
	movs r0, 0x1
	b _08126DC2
_08126CE2:
	adds r2, r5, 0
	ands r2, r3
	cmp r2, 0
	bne _08126CF0
	lsrs r0, r1, 7
	cmp r0, 0
	beq _08126D32
_08126CF0:
	cmp r2, 0x20
	bne _08126CF8
	movs r0, 0x4
	b _08126DC2
_08126CF8:
	cmp r2, 0x10
	bne _08126D00
	movs r0, 0x3
	b _08126DC2
_08126D00:
	cmp r2, 0x8
	bne _08126D08
	movs r0, 0x5
	b _08126DC2
_08126D08:
	cmp r2, 0x4
	bne _08126D10
	movs r0, 0x6
	b _08126DC2
_08126D10:
	cmp r2, 0x2
	bne _08126D18
	movs r0, 0x7
	b _08126DC2
_08126D18:
	cmp r2, 0x1
	bne _08126D20
	movs r0, 0x8
	b _08126DC2
_08126D20:
	lsrs r0, r1, 7
	cmp r0, 0
	beq _08126D2E
	cmp r2, 0
	bne _08126D2E
	movs r0, 0x9
	b _08126DC2
_08126D2E:
	movs r0, 0xB
	b _08126DC2
_08126D32:
	ldrb r1, [r4, 0x4]
	movs r0, 0x44
	ands r0, r1
	adds r2, r1, 0
	cmp r0, 0
	beq _08126D42
	movs r0, 0x2
	b _08126DC2
_08126D42:
	movs r5, 0x2
	adds r0, r5, 0
	ands r0, r2
	cmp r0, 0
	beq _08126D50
	movs r0, 0xC
	b _08126DC2
_08126D50:
	movs r3, 0x1
	adds r0, r3, 0
	ands r0, r2
	cmp r0, 0
	beq _08126D5E
	movs r0, 0xD
	b _08126DC2
_08126D5E:
	ldrb r1, [r4, 0x5]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _08126D6C
	movs r0, 0xE
	b _08126DC2
_08126D6C:
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _08126D78
	movs r0, 0xF
	b _08126DC2
_08126D78:
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	beq _08126D84
	movs r0, 0x10
	b _08126DC2
_08126D84:
	adds r0, r3, 0
	ands r0, r1
	cmp r0, 0
	beq _08126D90
	movs r0, 0x11
	b _08126DC2
_08126D90:
	movs r0, 0x80
	ands r0, r2
	cmp r0, 0
	beq _08126D9C
	movs r0, 0x12
	b _08126DC2
_08126D9C:
	movs r0, 0x20
	ands r0, r2
	cmp r0, 0
	beq _08126DA8
	movs r0, 0x13
	b _08126DC2
_08126DA8:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08126DB4
	movs r0, 0x14
	b _08126DC2
_08126DB4:
	movs r0, 0x18
	ands r0, r2
	cmp r0, 0
	bne _08126DC0
_08126DBC:
	movs r0, 0x16
	b _08126DC2
_08126DC0:
	movs r0, 0x15
_08126DC2:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end GetItemEffectType

	thumb_func_start sub_8126DC8
sub_8126DC8: @ 8126DC8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, _08126E4C @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08126E98
	ldr r7, _08126E50 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r7, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08126E54 @ =gPlayerParty
	adds r5, r1, r0
	movs r0, 0xE
	adds r0, r7
	mov r8, r0
	ldr r1, _08126E58 @ =gStringVar1
	adds r0, r5, 0
	bl GetMonNickname
	ldr r4, _08126E5C @ =gSpecialVar_0x8005
	ldrb r0, [r4]
	bl sub_8120BA8
	strh r0, [r7, 0xE]
	ldr r0, _08126E60 @ =gStringVar2
	movs r1, 0xE
	ldrsh r2, [r7, r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, _08126E64 @ =gUnknown_8247094
	adds r1, r2
	bl StringCopy
	movs r0, 0x2
	mov r1, r8
	strh r0, [r1, 0x2]
	ldrb r2, [r4]
	adds r0, r5, 0
	movs r1, 0
	bl sub_8120B20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08126E6C
	cmp r0, 0x2
	beq _08126E74
	ldrh r1, [r7, 0xE]
	adds r0, r5, 0
	bl GiveMoveToMon
	lsls r0, 16
	ldr r1, _08126E68 @ =0xffff0000
	cmp r0, r1
	beq _08126E84
	adds r0, r6, 0
	bl sub_8125C48
	b _08126E98
	.align 2, 0
_08126E4C: .4byte gPaletteFade
_08126E50: .4byte gUnknown_203B0A0
_08126E54: .4byte gPlayerParty
_08126E58: .4byte gStringVar1
_08126E5C: .4byte gSpecialVar_0x8005
_08126E60: .4byte gStringVar2
_08126E64: .4byte gUnknown_8247094
_08126E68: .4byte 0xffff0000
_08126E6C:
	ldr r1, _08126E70 @ =gUnknown_8416DC2
	b _08126E76
	.align 2, 0
_08126E70: .4byte gUnknown_8416DC2
_08126E74:
	ldr r1, _08126E80 @ =gUnknown_8416F10
_08126E76:
	adds r0, r6, 0
	bl sub_8125B14
	b _08126E98
	.align 2, 0
_08126E80: .4byte gUnknown_8416F10
_08126E84:
	ldr r0, _08126EA4 @ =gUnknown_8416DF7
	bl sub_8125AF0
	ldr r1, _08126EA8 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126EAC @ =sub_8125D88
	str r1, [r0]
_08126E98:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126EA4: .4byte gUnknown_8416DF7
_08126EA8: .4byte gTasks
_08126EAC: .4byte sub_8125D88
	thumb_func_end sub_8126DC8

	thumb_func_start CB2_PartyMenuFromStartMenu
CB2_PartyMenuFromStartMenu: @ 8126EB0
	push {lr}
	sub sp, 0xC
	movs r0, 0
	str r0, [sp]
	ldr r0, _08126ED4 @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _08126ED8 @ =sub_80568A8
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08126ED4: .4byte sub_811FB28
_08126ED8: .4byte sub_80568A8
	thumb_func_end CB2_PartyMenuFromStartMenu

	thumb_func_start sub_8126EDC
sub_8126EDC: @ 8126EDC
	push {lr}
	sub sp, 0xC
	ldr r0, _08126EF8 @ =gUnknown_203AD30
	ldrh r0, [r0]
	bl GetPocketByItemId
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	beq _08126F00
	cmp r0, 0x5
	beq _08126F08
	ldr r1, _08126EFC @ =sub_8124D90
	b _08126F0A
	.align 2, 0
_08126EF8: .4byte gUnknown_203AD30
_08126EFC: .4byte sub_8124D90
_08126F00:
	ldr r1, _08126F04 @ =sub_8124DA0
	b _08126F0A
	.align 2, 0
_08126F04: .4byte sub_8124DA0
_08126F08:
	ldr r1, _08126F30 @ =sub_8124DB0
_08126F0A:
	movs r0, 0x6
	str r0, [sp]
	ldr r0, _08126F34 @ =sub_811FB28
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0x5
	movs r3, 0
	bl sub_811EA44
	ldr r1, _08126F38 @ =gUnknown_203B0A0
	ldr r0, _08126F3C @ =gUnknown_203AD30
	ldrh r0, [r0]
	strh r0, [r1, 0xC]
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08126F30: .4byte sub_8124DB0
_08126F34: .4byte sub_811FB28
_08126F38: .4byte gUnknown_203B0A0
_08126F3C: .4byte gUnknown_203AD30
	thumb_func_end sub_8126EDC

	thumb_func_start sub_8126F40
sub_8126F40: @ 8126F40
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r6, r4, 0
	ldr r5, _08126F80 @ =gUnknown_203B0D8
	ldr r0, _08126F84 @ =gUnknown_203B0A0
	mov r9, r0
	ldrb r0, [r0, 0x9]
	lsls r0, 24
	asrs r0, 24
	movs r1, 0x64
	mov r8, r1
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	ldr r7, _08126F88 @ =gPlayerParty
	adds r0, r7
	movs r1, 0xC
	bl GetMonData
	strh r0, [r5]
	lsls r0, 16
	cmp r0, 0
	bne _08126F8C
	adds r0, r4, 0
	bl sub_8126FD8
	b _08126FC4
	.align 2, 0
_08126F80: .4byte gUnknown_203B0D8
_08126F84: .4byte gUnknown_203B0A0
_08126F88: .4byte gPlayerParty
_08126F8C:
	ldrh r0, [r5]
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _08126FA0
	adds r0, r4, 0
	bl sub_812734C
	b _08126FC4
_08126FA0:
	mov r1, r9
	movs r0, 0x9
	ldrsb r0, [r1, r0]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	adds r0, r7
	ldrh r1, [r5]
	movs r2, 0x1
	bl sub_812050C
	ldr r1, _08126FD0 @ =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, _08126FD4 @ =sub_8127234
	str r1, [r0]
_08126FC4:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08126FD0: .4byte gTasks
_08126FD4: .4byte sub_8127234
	thumb_func_end sub_8126F40

	thumb_func_start sub_8126FD8
sub_8126FD8: @ 8126FD8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r5, _08127004 @ =gUnknown_203B0A0
	ldrh r0, [r5, 0xC]
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _08127010
	ldrh r0, [r5, 0xC]
	bl sub_8127384
	ldr r0, _08127008 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _0812700C @ =sub_81270E0
	str r0, [r1, 0x4]
	adds r0, r4, 0
	bl sub_811FA78
	b _08127016
	.align 2, 0
_08127004: .4byte gUnknown_203B0A0
_08127008: .4byte gUnknown_203B09C
_0812700C: .4byte sub_81270E0
_08127010:
	adds r0, r4, 0
	bl sub_812701C
_08127016:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8126FD8

	thumb_func_start sub_812701C
sub_812701C: @ 812701C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, _08127084 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08127078
	ldr r4, _08127088 @ =gUnknown_203B0A0
	ldrh r5, [r4, 0xC]
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	movs r1, 0x64
	mov r8, r1
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	ldr r6, _0812708C @ =gPlayerParty
	adds r0, r6
	adds r1, r5, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_8120420
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	adds r0, r6
	adds r1, r5, 0
	bl sub_81205C8
	adds r0, r5, 0
	bl sub_8127384
	ldr r1, _08127090 @ =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, _08127094 @ =sub_8127098
	str r1, [r0]
_08127078:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08127084: .4byte gPaletteFade
_08127088: .4byte gUnknown_203B0A0
_0812708C: .4byte gPlayerParty
_08127090: .4byte gTasks
_08127094: .4byte sub_8127098
	thumb_func_end sub_812701C

	thumb_func_start sub_8127098
sub_8127098: @ 8127098
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _081270D4 @ =gUnknown_203B0A0
	ldrb r4, [r0, 0x9]
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081270CC
	lsls r2, r4, 24
	asrs r2, 24
	movs r0, 0x64
	muls r0, r2
	ldr r1, _081270D8 @ =gPlayerParty
	adds r0, r1
	ldr r1, _081270DC @ =gUnknown_203B0B4
	lsls r2, 4
	ldr r1, [r1]
	adds r1, r2
	bl sub_81224B4
	adds r0, r5, 0
	bl sub_811FA78
_081270CC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_081270D4: .4byte gUnknown_203B0A0
_081270D8: .4byte gPlayerParty
_081270DC: .4byte gUnknown_203B0B4
	thumb_func_end sub_8127098

	thumb_func_start sub_81270E0
sub_81270E0: @ 81270E0
	push {r4-r6,lr}
	ldr r4, _08127128 @ =gUnknown_203B0A0
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	movs r6, 0x64
	muls r0, r6
	ldr r5, _0812712C @ =gPlayerParty
	adds r0, r5
	ldrh r1, [r4, 0xC]
	bl sub_81205C8
	movs r0, 0x9
	ldrsb r0, [r4, r0]
	muls r0, r6
	adds r0, r5
	movs r1, 0x40
	bl GetMonData
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _08127130 @ =gSaveBlock1Ptr
	lsls r2, r0, 3
	adds r2, r0
	lsls r2, 2
	ldr r0, _08127134 @ =0x00002cd0
	adds r2, r0
	ldr r1, [r1]
	adds r1, r2
	ldr r2, _08127138 @ =sub_812713C
	movs r0, 0x4
	bl sub_80FEBAC
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08127128: .4byte gUnknown_203B0A0
_0812712C: .4byte gPlayerParty
_08127130: .4byte gSaveBlock1Ptr
_08127134: .4byte 0x00002cd0
_08127138: .4byte sub_812713C
	thumb_func_end sub_81270E0

	thumb_func_start sub_812713C
sub_812713C: @ 812713C
	push {r4-r7,lr}
	sub sp, 0xC
	ldr r6, _0812718C @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r6, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08127190 @ =gPlayerParty
	adds r5, r1, r0
	adds r0, r5, 0
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r0, _08127194 @ =gUnknown_20370D0
	ldrh r0, [r0]
	cmp r0, 0
	bne _0812719C
	adds r0, r5, 0
	bl TakeMailFromMon
	ldr r4, _08127198 @ =gUnknown_203B0D8
	adds r0, r5, 0
	movs r1, 0xC
	adds r2, r4, 0
	bl SetMonData
	ldrh r0, [r4]
	movs r1, 0x1
	bl sub_809A1D8
	adds r0, r7, 0
	bl sub_81273AC
	ldr r0, [r6]
	bl SetMainCallback2
	b _081271B8
	.align 2, 0
_0812718C: .4byte gUnknown_203B0A0
_08127190: .4byte gPlayerParty
_08127194: .4byte gUnknown_20370D0
_08127198: .4byte gUnknown_203B0D8
_0812719C:
	ldrb r0, [r6, 0x8]
	lsls r0, 28
	lsrs r0, 28
	ldrb r2, [r6, 0xB]
	movs r1, 0x7F
	str r1, [sp]
	ldr r1, _081271C0 @ =sub_81271C4
	str r1, [sp, 0x4]
	ldr r1, [r6]
	str r1, [sp, 0x8]
	movs r1, 0xFF
	movs r3, 0x1
	bl sub_811EA44
_081271B8:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_081271C0: .4byte sub_81271C4
	thumb_func_end sub_812713C

	thumb_func_start sub_81271C4
sub_81271C4: @ 81271C4
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _081271EC @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0812721E
	ldr r1, _081271F0 @ =gUnknown_203B0D8
	ldrh r0, [r1]
	cmp r0, 0
	beq _081271F8
	ldr r0, _081271F4 @ =gUnknown_203B0A0
	ldrh r0, [r0, 0xC]
	ldrh r1, [r1]
	movs r2, 0
	bl sub_8120558
	b _08127210
	.align 2, 0
_081271EC: .4byte gPaletteFade
_081271F0: .4byte gUnknown_203B0D8
_081271F4: .4byte gUnknown_203B0A0
_081271F8:
	ldr r2, _08127224 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r2, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _08127228 @ =gPlayerParty
	adds r0, r1
	ldrh r1, [r2, 0xC]
	movs r2, 0
	movs r3, 0x1
	bl sub_8120420
_08127210:
	ldr r0, _0812722C @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08127230 @ =sub_8127098
	str r0, [r1]
_0812721E:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127224: .4byte gUnknown_203B0A0
_08127228: .4byte gPlayerParty
_0812722C: .4byte gTasks
_08127230: .4byte sub_8127098
	thumb_func_end sub_81271C4

	thumb_func_start sub_8127234
sub_8127234: @ 8127234
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8120370
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08127258
	bl sub_812200C
	ldr r0, _08127260 @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _08127264 @ =sub_8127268
	str r0, [r1]
_08127258:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127260: .4byte gTasks
_08127264: .4byte sub_8127268
	thumb_func_end sub_8127234

	thumb_func_start sub_8127268
sub_8127268: @ 8127268
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0812728E
	cmp r1, 0
	bgt _08127288
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08127328
	b _0812733C
_08127288:
	cmp r1, 0x1
	beq _0812732E
	b _0812733C
_0812728E:
	ldr r7, _081272C0 @ =gUnknown_203B0A0
	ldrh r4, [r7, 0xC]
	adds r0, r4, 0
	bl sub_8127384
	ldr r6, _081272C4 @ =gUnknown_203B0D8
	ldrh r0, [r6]
	movs r1, 0x1
	bl sub_809A084
	lsls r0, 24
	cmp r0, 0
	bne _081272CC
	adds r0, r4, 0
	bl sub_81273AC
	ldrh r0, [r6]
	bl sub_8120658
	ldr r0, _081272C8 @ =gStringVar4
	movs r1, 0
	bl sub_81202F8
	b _0812730C
	.align 2, 0
_081272C0: .4byte gUnknown_203B0A0
_081272C4: .4byte gUnknown_203B0D8
_081272C8: .4byte gStringVar4
_081272CC:
	adds r0, r4, 0
	bl itemid_is_mail
	lsls r0, 24
	cmp r0, 0
	beq _081272F0
	ldr r0, _081272E8 @ =gUnknown_203B09C
	ldr r1, [r0]
	ldr r0, _081272EC @ =sub_81270E0
	str r0, [r1, 0x4]
	adds r0, r5, 0
	bl sub_811FA78
	b _0812733C
	.align 2, 0
_081272E8: .4byte gUnknown_203B09C
_081272EC: .4byte sub_81270E0
_081272F0:
	movs r1, 0x9
	ldrsb r1, [r7, r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, _0812731C @ =gPlayerParty
	adds r0, r1
	adds r1, r4, 0
	bl sub_81205C8
	ldrh r1, [r6]
	adds r0, r4, 0
	movs r2, 0x1
	bl sub_8120558
_0812730C:
	ldr r1, _08127320 @ =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, _08127324 @ =sub_8127098
	str r1, [r0]
	b _0812733C
	.align 2, 0
_0812731C: .4byte gPlayerParty
_08127320: .4byte gTasks
_08127324: .4byte sub_8127098
_08127328:
	movs r0, 0x5
	bl PlaySE
_0812732E:
	ldr r0, _08127344 @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _08127348 @ =sub_8127098
	str r0, [r1]
_0812733C:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08127344: .4byte gTasks
_08127348: .4byte sub_8127098
	thumb_func_end sub_8127268

	thumb_func_start sub_812734C
sub_812734C: @ 812734C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, _08127378 @ =gUnknown_8416BFB
	movs r1, 0x1
	bl sub_81202F8
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, _0812737C @ =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, _08127380 @ =sub_8127098
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127378: .4byte gUnknown_8416BFB
_0812737C: .4byte gTasks
_08127380: .4byte sub_8127098
	thumb_func_end sub_812734C

	thumb_func_start sub_8127384
sub_8127384: @ 8127384
	push {lr}
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r0, _0812739C @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x6
	bne _081273A0
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A460
	b _081273A8
	.align 2, 0
_0812739C: .4byte gUnknown_203B0A0
_081273A0:
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A1D8
_081273A8:
	pop {r0}
	bx r0
	thumb_func_end sub_8127384

	thumb_func_start sub_81273AC
sub_81273AC: @ 81273AC
	push {lr}
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r0, _081273C4 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x5
	beq _081273C8
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A3C8
	b _081273D0
	.align 2, 0
_081273C4: .4byte gUnknown_203B0A0
_081273C8:
	adds r0, r1, 0
	movs r1, 0x1
	bl sub_809A084
_081273D0:
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81273AC

	thumb_func_start sub_81273D8
sub_81273D8: @ 81273D8
	push {lr}
	sub sp, 0xC
	movs r0, 0x6
	str r0, [sp]
	ldr r0, _081273FC @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _08127400 @ =sub_80EC500
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0x7
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_081273FC: .4byte sub_811FB28
_08127400: .4byte sub_80EC500
	thumb_func_end sub_81273D8

	thumb_func_start sub_8127404
sub_8127404: @ 8127404
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, _08127450 @ =gUnknown_203B0A0
	movs r1, 0x9
	ldrsb r1, [r0, r1]
	movs r0, 0x64
	muls r1, r0
	ldr r0, _08127454 @ =gPlayerParty
	adds r5, r1, r0
	ldr r1, _08127458 @ =gUnknown_203B0C0
	movs r0, 0
	strb r0, [r1]
	ldr r2, _0812745C @ =gSaveBlock1Ptr
	ldr r0, _08127460 @ =gUnknown_203AAC4
	ldrh r1, [r0]
	adds r1, 0x6
	ldrh r0, [r0, 0x2]
	adds r1, r0
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, _08127464 @ =0x00002cd0
	adds r0, r1
	ldr r1, [r2]
	adds r4, r1, r0
	adds r0, r5, 0
	movs r1, 0xC
	bl GetMonData
	cmp r0, 0
	beq _0812746C
	ldr r0, _08127468 @ =gUnknown_8416D17
	movs r1, 0x1
	bl sub_81202F8
	b _08127482
	.align 2, 0
_08127450: .4byte gUnknown_203B0A0
_08127454: .4byte gPlayerParty
_08127458: .4byte gUnknown_203B0C0
_0812745C: .4byte gSaveBlock1Ptr
_08127460: .4byte gUnknown_203AAC4
_08127464: .4byte 0x00002cd0
_08127468: .4byte gUnknown_8416D17
_0812746C:
	adds r0, r5, 0
	adds r1, r4, 0
	bl GiveMailToMon2
	adds r0, r4, 0
	bl ClearMailStruct
	ldr r0, _0812749C @ =gUnknown_8416D4F
	movs r1, 0x1
	bl sub_81202F8
_08127482:
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r0, _081274A0 @ =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, _081274A4 @ =sub_8127098
	str r0, [r1]
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0812749C: .4byte gUnknown_8416D4F
_081274A0: .4byte gTasks
_081274A4: .4byte sub_8127098
	thumb_func_end sub_8127404

	thumb_func_start sub_81274A8
sub_81274A8: @ 81274A8
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_81274FC
	movs r0, 0
	str r0, [sp]
	ldr r0, _081274EC @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _081274F0 @ =gMain
	ldr r0, [r0, 0x8]
	str r0, [sp, 0x8]
	movs r0, 0x4
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	ldr r1, _081274F4 @ =gUnknown_203B0A0
	lsls r4, 6
	ldrb r2, [r1, 0x8]
	movs r0, 0x3F
	ands r0, r2
	orrs r0, r4
	strb r0, [r1, 0x8]
	ldr r0, _081274F8 @ =sub_812773C
	str r0, [r1, 0x4]
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081274EC: .4byte sub_811FB28
_081274F0: .4byte gMain
_081274F4: .4byte gUnknown_203B0A0
_081274F8: .4byte sub_812773C
	thumb_func_end sub_81274A8

	thumb_func_start sub_81274FC
sub_81274FC: @ 81274FC
	push {lr}
	ldr r0, _0812750C @ =gUnknown_203B0D4
	movs r1, 0
	movs r2, 0x3
	bl memset
	pop {r0}
	bx r0
	.align 2, 0
_0812750C: .4byte gUnknown_203B0D4
	thumb_func_end sub_81274FC

	thumb_func_start sub_8127510
sub_8127510: @ 8127510
	push {r4,lr}
	lsls r0, 24
	asrs r4, r0, 24
	movs r0, 0x64
	muls r0, r4
	ldr r1, _0812752C @ =gPlayerParty
	adds r0, r1
	bl sub_8127550
	lsls r0, 24
	cmp r0, 0
	bne _08127530
	movs r0, 0x2
	b _08127548
	.align 2, 0
_0812752C: .4byte gPlayerParty
_08127530:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r0, 24
	bl sub_8127710
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08127546
	movs r0, 0
	b _08127548
_08127546:
	movs r0, 0x1
_08127548:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8127510

	thumb_func_start sub_8127550
sub_8127550: @ 8127550
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r5, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _0812757A
	ldr r0, _08127580 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsrs r1, r0, 6
	cmp r1, 0
	beq _08127584
	cmp r1, 0x1
	beq _08127592
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	cmp r0, 0x1E
	bls _081275E0
_0812757A:
	movs r0, 0
	b _081275E2
	.align 2, 0
_08127580: .4byte gUnknown_203B0A0
_08127584:
	adds r0, r4, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	bne _081275E0
	b _0812757A
_08127592:
	ldr r0, _081275E8 @ =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r2, _081275EC @ =0x0000055c
	adds r0, r2
	ldrb r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _081275AE
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	cmp r0, 0x32
	bhi _0812757A
_081275AE:
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r3, _081275F0 @ =gUnknown_84020C4
	lsls r1, r5, 1
	adds r0, r1, r3
	ldrh r0, [r0]
	ldr r2, _081275F4 @ =0x0000ffff
	cmp r0, r2
	beq _081275E0
_081275C8:
	adds r0, r1, r3
	ldrh r0, [r0]
	cmp r0, r4
	beq _0812757A
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, r5, 1
	adds r0, r1, r3
	ldrh r0, [r0]
	cmp r0, r2
	bne _081275C8
_081275E0:
	movs r0, 0x1
_081275E2:
	pop {r4,r5}
	pop {r1}
	bx r1
	.align 2, 0
_081275E8: .4byte gSaveBlock2Ptr
_081275EC: .4byte 0x0000055c
_081275F0: .4byte gUnknown_84020C4
_081275F4: .4byte 0x0000ffff
	thumb_func_end sub_8127550

	thumb_func_start sub_81275F8
sub_81275F8: @ 81275F8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r0, _08127618 @ =gPlayerParty
	mov r10, r0
	ldr r0, _0812761C @ =gUnknown_203B0A0
	ldrb r0, [r0, 0x8]
	lsrs r0, 6
	cmp r0, 0x1
	beq _08127620
	cmp r0, 0x2
	beq _081276E8
	b _08127700
	.align 2, 0
_08127618: .4byte gPlayerParty
_0812761C: .4byte gUnknown_203B0A0
_08127620:
	ldr r1, _0812762C @ =gUnknown_203B0D4
	ldrb r0, [r1, 0x2]
	cmp r0, 0
	bne _08127630
	movs r0, 0x11
	b _08127702
	.align 2, 0
_0812762C: .4byte gUnknown_203B0D4
_08127630:
	movs r5, 0
_08127632:
	ldr r2, _081276DC @ =gUnknown_203B0D4
	adds r4, r2, r5
	ldrb r0, [r4]
	movs r1, 0x64
	muls r0, r1
	subs r0, 0x64
	add r0, r10
	movs r1, 0xB
	bl GetMonData
	ldr r2, _081276E0 @ =gUnknown_203B09C
	ldr r1, [r2]
	ldr r2, _081276E4 @ =0x00000236
	adds r1, r2
	strh r0, [r1]
	ldrb r0, [r4]
	movs r1, 0x64
	muls r0, r1
	subs r0, 0x64
	add r0, r10
	movs r1, 0xC
	bl GetMonData
	ldr r2, _081276E0 @ =gUnknown_203B09C
	ldr r1, [r2]
	movs r2, 0x8D
	lsls r2, 2
	adds r1, r2
	strh r0, [r1]
	adds r1, r5, 0x1
	lsls r0, r1, 24
	lsrs r5, r0, 24
	mov r9, r1
	cmp r5, 0x2
	bhi _081276D0
	ldr r0, _081276E0 @ =gUnknown_203B09C
	mov r8, r0
	movs r7, 0x64
_0812767E:
	mov r1, r8
	ldr r0, [r1]
	ldr r2, _081276E4 @ =0x00000236
	adds r0, r2
	movs r1, 0
	ldrsh r4, [r0, r1]
	ldr r2, _081276DC @ =gUnknown_203B0D4
	adds r6, r2, r5
	ldrb r0, [r6]
	muls r0, r7
	subs r0, 0x64
	add r0, r10
	movs r1, 0xB
	bl GetMonData
	cmp r4, r0
	beq _081276F8
	mov r1, r8
	ldr r0, [r1]
	movs r2, 0x8D
	lsls r2, 2
	adds r1, r0, r2
	movs r2, 0
	ldrsh r0, [r1, r2]
	cmp r0, 0
	beq _081276C6
	adds r4, r0, 0
	ldrb r0, [r6]
	muls r0, r7
	subs r0, 0x64
	add r0, r10
	movs r1, 0xC
	bl GetMonData
	cmp r4, r0
	beq _081276FC
_081276C6:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x2
	bls _0812767E
_081276D0:
	mov r1, r9
	lsls r0, r1, 24
	lsrs r5, r0, 24
	cmp r5, 0x1
	bls _08127632
	b _08127700
	.align 2, 0
_081276DC: .4byte gUnknown_203B0D4
_081276E0: .4byte gUnknown_203B09C
_081276E4: .4byte 0x00000236
_081276E8:
	ldr r2, _081276F4 @ =gUnknown_203B0D4
	ldrb r0, [r2, 0x1]
	cmp r0, 0
	bne _08127700
	movs r0, 0x12
	b _08127702
	.align 2, 0
_081276F4: .4byte gUnknown_203B0D4
_081276F8:
	movs r0, 0x13
	b _08127702
_081276FC:
	movs r0, 0x14
	b _08127702
_08127700:
	movs r0, 0xFF
_08127702:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81275F8

	thumb_func_start sub_8127710
sub_8127710: @ 8127710
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0
	ldr r3, _08127728 @ =gUnknown_203B0D4
_0812771A:
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, r2
	bne _0812772C
	movs r0, 0x1
	b _08127738
	.align 2, 0
_08127728: .4byte gUnknown_203B0D4
_0812772C:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x2
	bls _0812771A
	movs r0, 0
_08127738:
	pop {r1}
	bx r1
	thumb_func_end sub_8127710

	thumb_func_start sub_812773C
sub_812773C: @ 812773C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	bl sub_81275F8
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xFF
	beq _08127768
	movs r0, 0x1A
	bl PlaySE
	adds r0, r4, 0
	bl sub_8121D0C
	ldr r0, _08127764 @ =gTasks
	lsls r1, r5, 2
	adds r1, r5
	b _08127796
	.align 2, 0
_08127764: .4byte gTasks
_08127768:
	ldr r0, _08127780 @ =gUnknown_203B0D4
	ldrb r0, [r0]
	cmp r0, 0
	beq _08127784
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_811FA78
	b _0812779E
	.align 2, 0
_08127780: .4byte gUnknown_203B0D4
_08127784:
	movs r0, 0x1A
	bl PlaySE
	movs r0, 0xE
	bl sub_8121D0C
	ldr r0, _081277A4 @ =gTasks
	lsls r1, r6, 2
	adds r1, r6
_08127796:
	lsls r1, 3
	adds r1, r0
	ldr r0, _081277A8 @ =sub_81277AC
	str r0, [r1]
_0812779E:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081277A4: .4byte gTasks
_081277A8: .4byte sub_81277AC
	thumb_func_end sub_812773C

	thumb_func_start sub_81277AC
sub_81277AC: @ 81277AC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _081277E8 @ =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _081277C6
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081277E0
_081277C6:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_8121D0C
	ldr r0, _081277EC @ =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, _081277F0 @ =sub_811FB28
	str r0, [r1]
_081277E0:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081277E8: .4byte gMain
_081277EC: .4byte gTasks
_081277F0: .4byte sub_811FB28
	thumb_func_end sub_81277AC

	thumb_func_start sub_81277F4
sub_81277F4: @ 81277F4
	push {lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	movs r2, 0
	str r2, [sp]
	ldr r2, _08127818 @ =sub_811FB28
	str r2, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08127818: .4byte sub_811FB28
	thumb_func_end sub_81277F4

	thumb_func_start sub_812781C
sub_812781C: @ 812781C
	push {lr}
	sub sp, 0xC
	ldr r0, _08127844 @ =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0xE
	bhi _08127850
	movs r0, 0x4
	str r0, [sp]
	ldr r0, _08127848 @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _0812784C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0xC
	movs r3, 0
	bl sub_811EA44
	b _08127870
	.align 2, 0
_08127844: .4byte gSpecialVar_0x8005
_08127848: .4byte sub_811FB28
_0812784C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08127850:
	movs r0, 0x7F
	str r0, [sp]
	ldr r0, _08127878 @ =sub_8126DC8
	str r0, [sp, 0x4]
	ldr r0, _0812787C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0xC
	movs r3, 0
	bl sub_811EA44
	ldr r1, _08127880 @ =gUnknown_203B0A0
	ldr r0, _08127884 @ =gUnknown_20370C6
	ldrh r0, [r0]
	strb r0, [r1, 0x9]
_08127870:
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08127878: .4byte sub_8126DC8
_0812787C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08127880: .4byte gUnknown_203B0A0
_08127884: .4byte gUnknown_20370C6
	thumb_func_end sub_812781C

	thumb_func_start sub_8127888
sub_8127888: @ 8127888
	push {lr}
	sub sp, 0xC
	movs r0, 0x1
	str r0, [sp]
	ldr r0, _081278AC @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _081278B0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
	str r0, [sp, 0x8]
	movs r0, 0xB
	movs r1, 0
	movs r2, 0xD
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_081278AC: .4byte sub_811FB28
_081278B0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
	thumb_func_end sub_8127888

	thumb_func_start sub_81278B4
sub_81278B4: @ 81278B4
	push {lr}
	bl sub_8075290
	lsls r0, 24
	cmp r0, 0
	bne _081278C4
	movs r0, 0
	b _081278D6
_081278C4:
	bl sub_811FA20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081278D4
	movs r0, 0x1
	b _081278D6
_081278D4:
	movs r0, 0x2
_081278D6:
	pop {r1}
	bx r1
	thumb_func_end sub_81278B4

	thumb_func_start sub_81278DC
sub_81278DC: @ 81278DC
	push {r4,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x8
	bl sub_80EB2E0
	lsls r0, 24
	cmp r0, 0
	bne _08127930
	ldr r0, _08127924 @ =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08127930
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0x7F
	str r0, [sp]
	ldr r0, _08127928 @ =sub_8120C3C
	str r0, [sp, 0x4]
	ldr r0, _0812792C @ =sub_8030ADC
	str r0, [sp, 0x8]
	movs r0, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl sub_811EA44
	movs r0, 0x8
	bl sub_80EB2F4
	b _08127950
	.align 2, 0
_08127924: .4byte gBattleTypeFlags
_08127928: .4byte sub_8120C3C
_0812792C: .4byte sub_8030ADC
_08127930:
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	str r0, [sp]
	ldr r0, _08127960 @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _08127964 @ =sub_8030ADC
	str r0, [sp, 0x8]
	movs r0, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl sub_811EA44
_08127950:
	bl nullsub_44
	bl pokemon_change_order
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127960: .4byte sub_811FB28
_08127964: .4byte sub_8030ADC
	thumb_func_end sub_81278DC

	thumb_func_start sub_8127968
sub_8127968: @ 8127968
	push {lr}
	sub sp, 0xC
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	str r0, [sp]
	ldr r0, _0812799C @ =sub_8120EBC
	str r0, [sp, 0x4]
	ldr r0, _081279A0 @ =sub_8030ADC
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	bl nullsub_44
	bl pokemon_change_order
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_0812799C: .4byte sub_8120EBC
_081279A0: .4byte sub_8030ADC
	thumb_func_end sub_8127968

	thumb_func_start sub_81279A4
sub_81279A4: @ 81279A4
	push {lr}
	sub sp, 0xC
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0x5
	str r0, [sp]
	ldr r0, _081279D8 @ =sub_8120FCC
	str r0, [sp, 0x4]
	ldr r0, _081279DC @ =sub_8107ECC
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0xE
	movs r3, 0
	bl sub_811EA44
	bl nullsub_44
	bl pokemon_change_order
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_081279D8: .4byte sub_8120FCC
_081279DC: .4byte sub_8107ECC
	thumb_func_end sub_81279A4

	thumb_func_start sub_81279E0
sub_81279E0: @ 81279E0
	push {r4,lr}
	sub sp, 0xC
	movs r0, 0x8
	bl sub_80EB2E0
	lsls r0, 24
	cmp r0, 0
	bne _08127A30
	ldr r0, _08127A24 @ =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08127A30
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0x7F
	str r0, [sp]
	ldr r0, _08127A28 @ =sub_8120C3C
	str r0, [sp, 0x4]
	ldr r0, _08127A2C @ =sub_8107ECC
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x3
	movs r3, 0
	bl sub_811EA44
	movs r0, 0x8
	bl sub_80EB2F4
	b _08127A62
	.align 2, 0
_08127A24: .4byte gBattleTypeFlags
_08127A28: .4byte sub_8120C3C
_08127A2C: .4byte sub_8107ECC
_08127A30:
	ldr r0, _08127A74 @ =gUnknown_203AD30
	ldrh r0, [r0]
	bl GetPocketByItemId
	lsls r0, 24
	lsrs r0, 24
	ldr r4, _08127A78 @ =sub_8107ECC
	cmp r0, 0x5
	bne _08127A44
	ldr r4, _08127A7C @ =sub_8124DB0
_08127A44:
	bl sub_81278B4
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0x5
	str r0, [sp]
	ldr r0, _08127A80 @ =sub_811FB28
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x3
	movs r3, 0
	bl sub_811EA44
_08127A62:
	bl nullsub_44
	bl pokemon_change_order
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127A74: .4byte gUnknown_203AD30
_08127A78: .4byte sub_8107ECC
_08127A7C: .4byte sub_8124DB0
_08127A80: .4byte sub_811FB28
	thumb_func_end sub_81279E0

	thumb_func_start sub_8127A84
sub_8127A84: @ 8127A84
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, _08127AA4 @ =gUnknown_20242E8
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08127AA0
	adds r0, r4, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	beq _08127AA8
_08127AA0:
	movs r0, 0x7
	b _08127ABA
	.align 2, 0
_08127AA4: .4byte gUnknown_20242E8
_08127AA8:
	ldr r0, _08127AB4 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x1
	beq _08127AB8
	movs r0, 0x2
	b _08127ABA
	.align 2, 0
_08127AB4: .4byte gUnknown_203B0A0
_08127AB8:
	movs r0, 0x3
_08127ABA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8127A84

	thumb_func_start sub_8127AC0
sub_8127AC0: @ 8127AC0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	bl GetCursorSelectionMonId
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_811FA20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08127B08
	cmp r5, 0x1
	beq _08127AE6
	cmp r5, 0x4
	beq _08127AE6
	cmp r5, 0x5
	bne _08127B08
_08127AE6:
	ldr r4, _08127AFC @ =gStringVar1
	bl sub_80444C4
	adds r1, r0, 0
	adds r0, r4, 0
	bl StringCopy
	ldr r0, _08127B00 @ =gStringVar4
	ldr r1, _08127B04 @ =gUnknown_8416A98
	b _08127C86
	.align 2, 0
_08127AFC: .4byte gStringVar1
_08127B00: .4byte gStringVar4
_08127B04: .4byte gUnknown_8416A98
_08127B08:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, _08127B2C @ =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	bne _08127B3C
	ldr r1, _08127B30 @ =gStringVar1
	adds r0, r4, 0
	bl GetMonNickname
	ldr r0, _08127B34 @ =gStringVar4
	ldr r1, _08127B38 @ =gUnknown_8416A75
	b _08127C86
	.align 2, 0
_08127B2C: .4byte gPlayerParty
_08127B30: .4byte gStringVar1
_08127B34: .4byte gStringVar4
_08127B38: .4byte gUnknown_8416A75
_08127B3C:
	movs r4, 0
	b _08127B68
_08127B40:
	adds r0, r4, 0
	bl GetBattlerSide
	lsls r0, 24
	cmp r0, 0
	bne _08127B62
	adds r0, r5, 0
	bl sub_8127F7C
	lsls r0, 24
	ldr r2, _08127B90 @ =gBattlerPartyIndexes
	lsls r1, r4, 1
	adds r1, r2
	lsrs r0, 24
	ldrh r1, [r1]
	cmp r0, r1
	beq _08127C40
_08127B62:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
_08127B68:
	ldr r0, _08127B94 @ =gBattlersCount
	ldrb r0, [r0]
	cmp r4, r0
	bcc _08127B40
	movs r7, 0x64
	adds r0, r5, 0
	muls r0, r7
	ldr r1, _08127B98 @ =gPlayerParty
	mov r8, r1
	adds r6, r0, r1
	adds r0, r6, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	beq _08127BA4
	ldr r0, _08127B9C @ =gStringVar4
	ldr r1, _08127BA0 @ =gUnknown_8416ACB
	b _08127C86
	.align 2, 0
_08127B90: .4byte gBattlerPartyIndexes
_08127B94: .4byte gBattlersCount
_08127B98: .4byte gPlayerParty
_08127B9C: .4byte gStringVar4
_08127BA0: .4byte gUnknown_8416ACB
_08127BA4:
	adds r0, r5, 0
	bl sub_8127F7C
	ldr r1, _08127BC8 @ =gBattleStruct
	ldr r1, [r1]
	adds r1, 0x8B
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r1]
	cmp r0, r1
	bne _08127BD8
	ldr r1, _08127BCC @ =gStringVar1
	adds r0, r6, 0
	bl GetMonNickname
	ldr r0, _08127BD0 @ =gStringVar4
	ldr r1, _08127BD4 @ =gUnknown_8416A55
	b _08127C86
	.align 2, 0
_08127BC8: .4byte gBattleStruct
_08127BCC: .4byte gStringVar1
_08127BD0: .4byte gStringVar4
_08127BD4: .4byte gUnknown_8416A55
_08127BD8:
	ldr r0, _08127BE8 @ =gUnknown_203B0A0
	ldrb r0, [r0, 0xB]
	cmp r0, 0x4
	bne _08127BEC
	bl sub_8044348
	b _08127C8A
	.align 2, 0
_08127BE8: .4byte gUnknown_203B0A0
_08127BEC:
	cmp r0, 0x2
	beq _08127C64
	adds r0, r5, 0
	bl sub_8127F7C
	ldr r1, _08127C30 @ =gUnknown_203B0C1
	strb r0, [r1]
	ldr r1, _08127C34 @ =gUnknown_203B0C0
	movs r0, 0x1
	strb r0, [r1]
	ldr r1, _08127C38 @ =gBattlerPartyIndexes
	ldr r0, _08127C3C @ =gBattlerInMenuId
	ldrb r0, [r0]
	lsls r0, 1
	adds r0, r1
	ldrb r0, [r0]
	bl pokemon_order_func
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_8127FF4
	adds r0, r4, 0
	muls r0, r7
	add r0, r8
	adds r1, r6, 0
	bl sub_811FA40
	movs r0, 0x1
	b _08127C8C
	.align 2, 0
_08127C30: .4byte gUnknown_203B0C1
_08127C34: .4byte gUnknown_203B0C0
_08127C38: .4byte gBattlerPartyIndexes
_08127C3C: .4byte gBattlerInMenuId
_08127C40:
	movs r0, 0x64
	muls r0, r5
	ldr r1, _08127C54 @ =gPlayerParty
	adds r0, r1
	ldr r1, _08127C58 @ =gStringVar1
	bl GetMonNickname
	ldr r0, _08127C5C @ =gStringVar4
	ldr r1, _08127C60 @ =gUnknown_8416A3A
	b _08127C86
	.align 2, 0
_08127C54: .4byte gPlayerParty
_08127C58: .4byte gStringVar1
_08127C5C: .4byte gStringVar4
_08127C60: .4byte gUnknown_8416A3A
_08127C64:
	ldr r0, _08127C98 @ =gBattlerInMenuId
	ldrb r0, [r0]
	ldr r1, _08127C9C @ =gBattlerPartyIndexes
	lsls r0, 1
	adds r0, r1
	ldrb r0, [r0]
	bl pokemon_order_func
	lsls r0, 24
	lsrs r0, 24
	muls r0, r7
	add r0, r8
	ldr r1, _08127CA0 @ =gStringVar1
	bl GetMonNickname
	ldr r0, _08127CA4 @ =gStringVar4
	ldr r1, _08127CA8 @ =gUnknown_8416A1E
_08127C86:
	bl StringExpandPlaceholders
_08127C8A:
	movs r0, 0
_08127C8C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_08127C98: .4byte gBattlerInMenuId
_08127C9C: .4byte gBattlerPartyIndexes
_08127CA0: .4byte gStringVar1
_08127CA4: .4byte gStringVar4
_08127CA8: .4byte gUnknown_8416A1E
	thumb_func_end sub_8127AC0

	thumb_func_start sub_8127CAC
sub_8127CAC: @ 8127CAC
	push {r4,lr}
	ldr r4, _08127CC8 @ =gUnknown_203B0DC
	bl sub_80435E0
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl sub_8127CCC
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127CC8: .4byte gUnknown_203B0DC
	thumb_func_end sub_8127CAC

	thumb_func_start sub_8127CCC
sub_8127CCC: @ 8127CCC
	push {r4-r6,lr}
	sub sp, 0x8
	adds r6, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	bl sub_811FA20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08127D02
	cmp r4, 0
	beq _08127CF4
	movs r0, 0x30
	strb r0, [r6]
	movs r0, 0x45
	strb r0, [r6, 0x1]
	movs r0, 0x12
	strb r0, [r6, 0x2]
	b _08127D9C
_08127CF4:
	movs r0, 0x3
	strb r0, [r6]
	movs r0, 0x12
	strb r0, [r6, 0x1]
	movs r0, 0x45
	strb r0, [r6, 0x2]
	b _08127D9C
_08127D02:
	bl sub_8075290
	lsls r0, 24
	cmp r0, 0
	bne _08127D40
	movs r5, 0x1
	movs r0, 0
	bl GetBattlerAtPosition
	mov r2, sp
	ldr r1, _08127D3C @ =gBattlerPartyIndexes
	lsls r0, 24
	lsrs r0, 23
	adds r0, r1
	ldrh r0, [r0]
	strb r0, [r2]
	movs r4, 0
	mov r1, sp
_08127D26:
	ldrb r0, [r1]
	cmp r4, r0
	beq _08127D34
	mov r2, sp
	adds r0, r2, r5
	strb r4, [r0]
	adds r5, 0x1
_08127D34:
	adds r4, 0x1
	cmp r4, 0x5
	ble _08127D26
	b _08127D84
	.align 2, 0
_08127D3C: .4byte gBattlerPartyIndexes
_08127D40:
	movs r5, 0x2
	movs r0, 0
	bl GetBattlerAtPosition
	mov r1, sp
	ldr r4, _08127DA4 @ =gBattlerPartyIndexes
	lsls r0, 24
	lsrs r0, 23
	adds r0, r4
	ldrh r0, [r0]
	strb r0, [r1]
	movs r0, 0x2
	bl GetBattlerAtPosition
	mov r1, sp
	lsls r0, 24
	lsrs r0, 23
	adds r0, r4
	ldrh r0, [r0]
	strb r0, [r1, 0x1]
	movs r4, 0
_08127D6A:
	ldrb r0, [r1]
	cmp r4, r0
	beq _08127D7E
	ldrb r0, [r1, 0x1]
	cmp r4, r0
	beq _08127D7E
	mov r2, sp
	adds r0, r2, r5
	strb r4, [r0]
	adds r5, 0x1
_08127D7E:
	adds r4, 0x1
	cmp r4, 0x5
	ble _08127D6A
_08127D84:
	movs r4, 0
	mov r3, sp
_08127D88:
	adds r0, r6, r4
	ldrb r1, [r3]
	lsls r1, 4
	ldrb r2, [r3, 0x1]
	orrs r1, r2
	strb r1, [r0]
	adds r3, 0x2
	adds r4, 0x1
	cmp r4, 0x2
	ble _08127D88
_08127D9C:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08127DA4: .4byte gBattlerPartyIndexes
	thumb_func_end sub_8127CCC

	thumb_func_start sub_8127DA8
sub_8127DA8: @ 8127DA8
	push {lr}
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r0, _08127DC8 @ =gBattleStruct
	lsls r3, r2, 1
	adds r3, r2
	adds r3, 0x60
	ldr r0, [r0]
	adds r0, r3
	bl sub_8127DCC
	pop {r0}
	bx r0
	.align 2, 0
_08127DC8: .4byte gBattleStruct
	thumb_func_end sub_8127DA8

	thumb_func_start sub_8127DCC
sub_8127DCC: @ 8127DCC
	push {r4-r7,lr}
	sub sp, 0x8
	adds r5, r0, 0
	adds r0, r2, 0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r0, 24
	lsrs r0, 24
	bl GetBattlerSide
	lsls r0, 24
	cmp r0, 0
	bne _08127DF4
	movs r0, 0
	bl GetBattlerAtPosition
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x2
	b _08127E00
_08127DF4:
	movs r0, 0x1
	bl GetBattlerAtPosition
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x3
_08127E00:
	bl GetBattlerAtPosition
	lsls r0, 24
	lsrs r6, r0, 24
	bl sub_811FA20
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08127E34
	cmp r7, 0
	beq _08127E26
	movs r0, 0x30
	strb r0, [r5]
	movs r0, 0x45
	strb r0, [r5, 0x1]
	movs r0, 0x12
	strb r0, [r5, 0x2]
	b _08127EB6
_08127E26:
	movs r0, 0x3
	strb r0, [r5]
	movs r0, 0x12
	strb r0, [r5, 0x1]
	movs r0, 0x45
	strb r0, [r5, 0x2]
	b _08127EB6
_08127E34:
	bl sub_8075290
	lsls r0, 24
	cmp r0, 0
	bne _08127E6C
	movs r3, 0x1
	mov r2, sp
	ldr r1, _08127E68 @ =gBattlerPartyIndexes
	lsls r0, r4, 1
	adds r0, r1
	ldrh r0, [r0]
	strb r0, [r2]
	movs r4, 0
	mov r1, sp
_08127E50:
	ldrb r0, [r1]
	cmp r4, r0
	beq _08127E5E
	mov r2, sp
	adds r0, r2, r3
	strb r4, [r0]
	adds r3, 0x1
_08127E5E:
	adds r4, 0x1
	cmp r4, 0x5
	ble _08127E50
	b _08127E9E
	.align 2, 0
_08127E68: .4byte gBattlerPartyIndexes
_08127E6C:
	movs r3, 0x2
	mov r1, sp
	ldr r2, _08127EC0 @ =gBattlerPartyIndexes
	lsls r0, r4, 1
	adds r0, r2
	ldrh r0, [r0]
	strb r0, [r1]
	lsls r0, r6, 1
	adds r0, r2
	ldrh r0, [r0]
	strb r0, [r1, 0x1]
	movs r4, 0
_08127E84:
	ldrb r0, [r1]
	cmp r4, r0
	beq _08127E98
	ldrb r0, [r1, 0x1]
	cmp r4, r0
	beq _08127E98
	mov r2, sp
	adds r0, r2, r3
	strb r4, [r0]
	adds r3, 0x1
_08127E98:
	adds r4, 0x1
	cmp r4, 0x5
	ble _08127E84
_08127E9E:
	movs r4, 0
	mov r3, sp
_08127EA2:
	adds r0, r5, r4
	ldrb r1, [r3]
	lsls r1, 4
	ldrb r2, [r3, 0x1]
	orrs r1, r2
	strb r1, [r0]
	adds r3, 0x2
	adds r4, 0x1
	cmp r4, 0x2
	ble _08127EA2
_08127EB6:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08127EC0: .4byte gBattlerPartyIndexes
	thumb_func_end sub_8127DCC

	thumb_func_start sub_8127EC4
sub_8127EC4: @ 8127EC4
	push {r4-r7,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	movs r7, 0
	bl sub_811FA20
	lsls r0, 24
	cmp r0, 0
	beq _08127F72
	ldr r0, _08127F28 @ =gBattleStruct
	lsls r1, r4, 1
	adds r1, r4
	adds r1, 0x60
	ldr r0, [r0]
	adds r4, r0, r1
	movs r2, 0
	add r6, sp
	mov r12, r6
	movs r6, 0xF
	mov r3, sp
_08127EF6:
	adds r1, r4, r2
	ldrb r0, [r1]
	lsrs r0, 4
	strb r0, [r3]
	adds r3, 0x1
	ldrb r1, [r1]
	adds r0, r6, 0
	ands r0, r1
	strb r0, [r3]
	adds r3, 0x1
	adds r2, 0x1
	cmp r2, 0x2
	ble _08127EF6
	mov r0, r12
	ldrb r3, [r0]
	movs r2, 0
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, r5
	bne _08127F2C
	mov r0, sp
	ldrb r7, [r0]
	strb r3, [r0]
	b _08127F40
	.align 2, 0
_08127F28: .4byte gBattleStruct
_08127F2C:
	adds r2, 0x1
	cmp r2, 0x5
	bgt _08127F40
	mov r0, sp
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, r5
	bne _08127F2C
	adds r7, r0, 0
	strb r3, [r1]
_08127F40:
	cmp r2, 0x6
	beq _08127F72
	mov r0, r12
	strb r7, [r0]
	mov r0, sp
	ldrb r0, [r0]
	lsls r0, 4
	mov r1, sp
	ldrb r1, [r1, 0x1]
	orrs r0, r1
	strb r0, [r4]
	mov r0, sp
	ldrb r0, [r0, 0x2]
	lsls r0, 4
	mov r1, sp
	ldrb r1, [r1, 0x3]
	orrs r0, r1
	strb r0, [r4, 0x1]
	mov r0, sp
	ldrb r0, [r0, 0x4]
	lsls r0, 4
	mov r1, sp
	ldrb r1, [r1, 0x5]
	orrs r0, r1
	strb r0, [r4, 0x2]
_08127F72:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8127EC4

	thumb_func_start sub_8127F7C
sub_8127F7C: @ 8127F7C
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0x1
	ands r1, r2
	lsrs r2, r0, 25
	cmp r1, 0
	beq _08127F9C
	ldr r0, _08127F98 @ =gUnknown_203B0DC
	adds r0, r2, r0
	ldrb r0, [r0]
	movs r1, 0xF
	ands r1, r0
	b _08127FA4
	.align 2, 0
_08127F98: .4byte gUnknown_203B0DC
_08127F9C:
	ldr r0, _08127FAC @ =gUnknown_203B0DC
	adds r0, r2, r0
	ldrb r0, [r0]
	lsrs r1, r0, 4
_08127FA4:
	adds r0, r1, 0
	pop {r1}
	bx r1
	.align 2, 0
_08127FAC: .4byte gUnknown_203B0DC
	thumb_func_end sub_8127F7C

	thumb_func_start sub_8127FB0
sub_8127FB0: @ 8127FB0
	push {r4,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 24
	lsrs r4, r1, 24
	movs r1, 0x1
	ands r1, r3
	lsrs r3, r0, 25
	cmp r1, 0
	beq _08127FD8
	ldr r0, _08127FD4 @ =gUnknown_203B0DC
	adds r0, r3, r0
	ldrb r2, [r0]
	movs r1, 0xF0
	ands r1, r2
	orrs r1, r4
	strb r1, [r0]
	b _08127FE8
	.align 2, 0
_08127FD4: .4byte gUnknown_203B0DC
_08127FD8:
	ldr r2, _08127FF0 @ =gUnknown_203B0DC
	adds r2, r3, r2
	ldrb r1, [r2]
	movs r0, 0xF
	ands r0, r1
	lsls r1, r4, 4
	orrs r0, r1
	strb r0, [r2]
_08127FE8:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08127FF0: .4byte gUnknown_203B0DC
	thumb_func_end sub_8127FB0

	thumb_func_start sub_8127FF4
sub_8127FF4: @ 8127FF4
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	adds r0, r5, 0
	bl sub_8127F7C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r6, 0
	bl sub_8127F7C
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	bl sub_8127FB0
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_8127FB0
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8127FF4

	thumb_func_start pokemon_order_func
pokemon_order_func: @ 8128030
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r3, 0
	movs r2, 0
	ldr r5, _08128058 @ =gUnknown_203B0DC
_0812803C:
	adds r0, r3, r5
	ldrb r1, [r0]
	lsrs r0, r1, 4
	cmp r0, r4
	beq _08128054
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	movs r0, 0xF
	ands r0, r1
	cmp r0, r4
	bne _0812805C
_08128054:
	adds r0, r2, 0
	b _0812806E
	.align 2, 0
_08128058: .4byte gUnknown_203B0DC
_0812805C:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x2
	bls _0812803C
	movs r0, 0
_0812806E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end pokemon_order_func

	thumb_func_start pokemon_change_order
pokemon_change_order: @ 8128074
	push {r4-r6,lr}
	movs r4, 0x96
	lsls r4, 2
	adds r0, r4, 0
	bl Alloc
	adds r5, r0, 0
	ldr r1, _081280C0 @ =gPlayerParty
	adds r2, r4, 0
	bl memcpy
	movs r4, 0
	movs r6, 0x64
_0812808E:
	adds r0, r4, 0
	bl pokemon_order_func
	lsls r0, 24
	lsrs r0, 24
	muls r0, r6
	ldr r1, _081280C0 @ =gPlayerParty
	adds r0, r1
	adds r1, r4, 0
	muls r1, r6
	adds r1, r5
	movs r2, 0x64
	bl memcpy
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _0812808E
	adds r0, r5, 0
	bl Free
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_081280C0: .4byte gPlayerParty
	thumb_func_end pokemon_change_order

	thumb_func_start sub_81280C4
sub_81280C4: @ 81280C4
	push {r4-r6,lr}
	movs r4, 0x96
	lsls r4, 2
	adds r0, r4, 0
	bl Alloc
	adds r5, r0, 0
	ldr r1, _08128110 @ =gPlayerParty
	adds r2, r4, 0
	bl memcpy
	movs r4, 0
	movs r6, 0x64
_081280DE:
	adds r0, r4, 0
	bl sub_8127F7C
	lsls r0, 24
	lsrs r0, 24
	muls r0, r6
	ldr r1, _08128110 @ =gPlayerParty
	adds r0, r1
	adds r1, r4, 0
	muls r1, r6
	adds r1, r5
	movs r2, 0x64
	bl memcpy
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _081280DE
	adds r0, r5, 0
	bl Free
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08128110: .4byte gPlayerParty
	thumb_func_end sub_81280C4

	thumb_func_start sub_8128114
sub_8128114: @ 8128114
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r6, 0x1
	movs r7, 0x64
	ldr r0, _0812816C @ =gPlayerParty
	mov r8, r0
_08128122:
	adds r0, r6, 0
	bl sub_8127F7C
	lsls r0, 24
	lsrs r0, 24
	muls r0, r7
	mov r1, r8
	adds r5, r0, r1
	adds r0, r5, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _08128170
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	cmp r0, 0
	beq _08128170
	movs r0, 0
	bl sub_8127F7C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	adds r1, r6, 0
	bl sub_8127FF4
	adds r0, r4, 0
	muls r0, r7
	add r0, r8
	adds r1, r5, 0
	bl sub_811FA40
	b _0812817A
	.align 2, 0
_0812816C: .4byte gPlayerParty
_08128170:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x5
	bls _08128122
_0812817A:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8128114

	thumb_func_start sub_8128184
sub_8128184: @ 8128184
	push {lr}
	bl sub_8108CF0
	ldr r0, _08128194 @ =sub_8030ADC
	bl SetMainCallback2
	pop {r0}
	bx r0
	.align 2, 0
_08128194: .4byte sub_8030ADC
	thumb_func_end sub_8128184

	thumb_func_start sub_8128198
sub_8128198: @ 8128198
	push {lr}
	sub sp, 0xC
	movs r0, 0x7F
	str r0, [sp]
	ldr r0, _081281BC @ =sub_81281C4
	str r0, [sp, 0x4]
	ldr r0, _081281C0 @ =gMain
	ldr r0, [r0, 0x8]
	str r0, [sp, 0x8]
	movs r0, 0x5
	movs r1, 0x3
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_081281BC: .4byte sub_81281C4
_081281C0: .4byte gMain
	thumb_func_end sub_8128198

	thumb_func_start sub_81281C4
sub_81281C4: @ 81281C4
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, _081281F4 @ =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	movs r1, 0x80
	lsls r1, 1
	strh r1, [r4, 0x8]
	bl sub_81282DC
	movs r1, 0x80
	lsls r1, 9
	movs r0, 0x2
	movs r2, 0
	bl ChangeBgX
	ldr r0, _081281F8 @ =sub_81281FC
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_081281F4: .4byte gTasks
_081281F8: .4byte sub_81281FC
	thumb_func_end sub_81281C4

	thumb_func_start sub_81281FC
sub_81281FC: @ 81281FC
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r6, r5, 2
	adds r0, r6, r5
	lsls r0, 3
	ldr r1, _08128270 @ =gTasks+0x8
	adds r4, r0, r1
	ldr r0, _08128274 @ =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08128268
	ldrh r0, [r4]
	subs r0, 0x8
	strh r0, [r4]
	adds r0, r5, 0
	bl sub_81282DC
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _08128268
	movs r4, 0x3
	ldr r7, _08128278 @ =gUnknown_2022B58
_08128230:
	subs r0, r4, 0x3
	lsls r0, 5
	adds r0, r7
	ldrh r0, [r0]
	cmp r0, 0
	beq _0812824C
	ldr r0, _0812827C @ =gUnknown_203B0B4
	ldr r1, [r0]
	lsls r0, r4, 4
	adds r0, r1
	ldrb r0, [r0, 0x9]
	movs r1, 0
	bl sub_812238C
_0812824C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _08128230
	movs r0, 0x71
	bl PlaySE
	ldr r0, _08128280 @ =gTasks
	adds r1, r6, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, _08128284 @ =sub_8128288
	str r0, [r1]
_08128268:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08128270: .4byte gTasks+0x8
_08128274: .4byte gPaletteFade
_08128278: .4byte gUnknown_2022B58
_0812827C: .4byte gUnknown_203B0B4
_08128280: .4byte gTasks
_08128284: .4byte sub_8128288
	thumb_func_end sub_81281FC

	thumb_func_start sub_8128288
sub_8128288: @ 8128288
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, _081282B4 @ =gTasks+0x8
	adds r0, r1
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	movs r0, 0x80
	lsls r0, 17
	cmp r1, r0
	bne _081282AE
	adds r0, r2, 0
	bl sub_811FA78
_081282AE:
	pop {r0}
	bx r0
	.align 2, 0
_081282B4: .4byte gTasks+0x8
	thumb_func_end sub_8128288

	thumb_func_start sub_81282B8
sub_81282B8: @ 81282B8
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r1, 16
	lsrs r3, r1, 16
	cmp r1, 0
	blt _081282D2
	ldr r1, _081282D8 @ =gSprites
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	strh r3, [r0, 0x24]
_081282D2:
	pop {r0}
	bx r0
	.align 2, 0
_081282D8: .4byte gSprites
	thumb_func_end sub_81282B8

	thumb_func_start sub_81282DC
sub_81282DC: @ 81282DC
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, _08128364 @ =gTasks+0x8
	adds r5, r1, r0
	movs r6, 0x3
	ldr r7, _08128368 @ =gUnknown_203B0B4
_081282F0:
	ldr r0, _0812836C @ =gUnknown_2022B58
	subs r1, r6, 0x3
	lsls r1, 5
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, 0
	beq _08128348
	ldr r0, [r7]
	lsls r4, r6, 4
	adds r0, r4, r0
	ldrb r0, [r0, 0x9]
	ldrh r1, [r5]
	subs r1, 0x8
	lsls r1, 16
	asrs r1, 16
	bl sub_81282B8
	ldr r0, [r7]
	adds r0, r4, r0
	ldrb r0, [r0, 0xA]
	ldrh r1, [r5]
	subs r1, 0x8
	lsls r1, 16
	asrs r1, 16
	bl sub_81282B8
	ldr r0, [r7]
	adds r0, r4, r0
	ldrb r0, [r0, 0xB]
	ldrh r1, [r5]
	subs r1, 0x8
	lsls r1, 16
	asrs r1, 16
	bl sub_81282B8
	ldr r0, [r7]
	adds r4, r0
	ldrb r0, [r4, 0xC]
	ldrh r1, [r5]
	subs r1, 0x8
	lsls r1, 16
	asrs r1, 16
	bl sub_81282B8
_08128348:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x5
	bls _081282F0
	movs r1, 0x80
	lsls r1, 4
	movs r0, 0x2
	movs r2, 0x1
	bl ChangeBgX
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08128364: .4byte gTasks+0x8
_08128368: .4byte gUnknown_203B0B4
_0812836C: .4byte gUnknown_2022B58
	thumb_func_end sub_81282DC

	thumb_func_start sub_8128370
sub_8128370: @ 8128370
	push {lr}
	sub sp, 0xC
	ldr r1, _08128398 @ =gUnknown_3005024
	ldr r0, _0812839C @ =hm_add_c3_without_phase_2
	str r0, [r1]
	movs r0, 0xF
	str r0, [sp]
	ldr r0, _081283A0 @ =sub_811FB28
	str r0, [sp, 0x4]
	ldr r0, _081283A4 @ =c2_exit_to_overworld_2_switch
	str r0, [sp, 0x8]
	movs r0, 0x6
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_08128398: .4byte gUnknown_3005024
_0812839C: .4byte hm_add_c3_without_phase_2
_081283A0: .4byte sub_811FB28
_081283A4: .4byte c2_exit_to_overworld_2_switch
	thumb_func_end sub_8128370

	thumb_func_start sub_81283A8
sub_81283A8: @ 81283A8
	push {lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	ldr r2, _081283D4 @ =gUnknown_3005024
	ldr r1, _081283D8 @ =hm_add_c3_without_phase_2
	str r1, [r2]
	movs r1, 0
	str r1, [sp]
	ldr r1, _081283DC @ =sub_811FB28
	str r1, [sp, 0x4]
	ldr r1, _081283E0 @ =c2_exit_to_overworld_2_switch
	str r1, [sp, 0x8]
	movs r1, 0
	movs r2, 0xB
	movs r3, 0
	bl sub_811EA44
	add sp, 0xC
	pop {r0}
	bx r0
	.align 2, 0
_081283D4: .4byte gUnknown_3005024
_081283D8: .4byte hm_add_c3_without_phase_2
_081283DC: .4byte sub_811FB28
_081283E0: .4byte c2_exit_to_overworld_2_switch
	thumb_func_end sub_81283A8

	thumb_func_start hm_add_c3_without_phase_2
hm_add_c3_without_phase_2: @ 81283E4
	push {lr}
	bl sub_807DC00
	ldr r0, _081283F8 @ =task_hm_without_phase_2
	movs r1, 0xA
	bl CreateTask
	movs r0, 0x1
	pop {r1}
	bx r1
	.align 2, 0
_081283F8: .4byte task_hm_without_phase_2
	thumb_func_end hm_add_c3_without_phase_2

	thumb_func_start task_hm_without_phase_2
task_hm_without_phase_2: @ 81283FC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_807AA70
	lsls r0, 24
	cmp r0, 0
	beq _0812841A
	adds r0, r4, 0
	bl DestroyTask
	bl ScriptContext2_Disable
	bl EnableBothScriptContexts
_0812841A:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end task_hm_without_phase_2

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