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

	.syntax unified

	.text

	thumb_func_start sub_8034C54
sub_8034C54: @ 8034C54
	push {r4-r7,lr}
	adds r4, r0, 0
	ldr r5, =gUnknown_02022E10
	ldr r0, [r5]
	cmp r0, 0
	beq _08034C64
	bl sub_8034CC8
_08034C64:
	movs r0, 0x8
	bl Alloc
	str r0, [r5]
	cmp r0, 0
	bne _08034C78
	movs r0, 0
	b _08034CC0
	.pool
_08034C78:
	lsls r0, r4, 3
	subs r0, r4
	lsls r0, 2
	bl Alloc
	ldr r1, [r5]
	str r0, [r1, 0x4]
	cmp r0, 0
	bne _08034C94
	adds r0, r1, 0
	bl Free
	movs r0, 0
	b _08034CC0
_08034C94:
	str r4, [r1]
	movs r3, 0
	cmp r3, r4
	bcs _08034CBE
	movs r7, 0
	movs r6, 0xFF
	movs r2, 0
_08034CA2:
	ldr r0, [r5]
	ldr r0, [r0, 0x4]
	adds r0, r2, r0
	strb r7, [r0]
	ldr r0, [r5]
	ldr r1, [r0, 0x4]
	adds r1, r2, r1
	ldrb r0, [r1, 0x1]
	orrs r0, r6
	strb r0, [r1, 0x1]
	adds r2, 0x1C
	adds r3, 0x1
	cmp r3, r4
	bcc _08034CA2
_08034CBE:
	movs r0, 0x1
_08034CC0:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8034C54

	thumb_func_start sub_8034CC8
sub_8034CC8: @ 8034CC8
	push {r4,r5,lr}
	ldr r2, =gUnknown_02022E10
	ldr r1, [r2]
	cmp r1, 0
	beq _08034D08
	ldr r0, [r1, 0x4]
	cmp r0, 0
	beq _08034CFC
	movs r4, 0
	ldr r0, [r1]
	cmp r4, r0
	bcs _08034CF2
	adds r5, r2, 0
_08034CE2:
	adds r0, r4, 0
	bl sub_80353DC
	adds r4, 0x1
	ldr r0, [r5]
	ldr r0, [r0]
	cmp r4, r0
	bcc _08034CE2
_08034CF2:
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r0, [r0, 0x4]
	bl Free
_08034CFC:
	ldr r4, =gUnknown_02022E10
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_08034D08:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8034CC8

	thumb_func_start sub_8034D14
sub_8034D14: @ 8034D14
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r8, r0
	mov r10, r1
	adds r5, r2, 0
	ldr r6, =gUnknown_02022E10
	ldr r0, [r6]
	cmp r0, 0
	beq _08034DD4
	ldr r1, [r0, 0x4]
	mov r0, r8
	lsls r2, r0, 3
	subs r0, r2, r0
	lsls r4, r0, 2
	adds r1, r4, r1
	ldrb r0, [r1]
	mov r9, r2
	cmp r0, 0
	bne _08034DD4
	ldrb r0, [r5, 0x1]
	bl sub_8035518
	ldr r1, [r6]
	ldr r1, [r1, 0x4]
	adds r1, r4, r1
	strb r0, [r1, 0x1]
	ldr r0, [r6]
	ldr r0, [r0, 0x4]
	adds r0, r4, r0
	ldrb r0, [r0, 0x1]
	cmp r0, 0xFF
	beq _08034DD4
	ldr r0, [r5, 0x8]
	ldrh r0, [r0, 0x6]
	bl GetSpriteTileStartByTag
	ldr r2, [r6]
	ldr r1, [r2, 0x4]
	adds r1, r4, r1
	strh r0, [r1, 0xA]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	ldrh r1, [r0, 0xA]
	ldr r7, =0xffff0000
	lsrs r0, r7, 16
	cmp r1, r0
	bne _08034DE0
	ldr r2, [r5, 0x8]
	ldrh r0, [r2, 0x4]
	adds r1, r2, 0
	cmp r0, 0
	beq _08034D94
	adds r0, r1, 0
	bl LoadSpriteSheet
	b _08034DB4
	.pool
_08034D94:
	ldr r0, [r2]
	ldr r1, [r2, 0x4]
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r0, [r2]
	bl sub_8034974
	lsls r0, 16
	lsrs r0, 16
	ldr r1, [sp, 0x4]
	ands r1, r7
	orrs r1, r0
	str r1, [sp, 0x4]
	mov r0, sp
	bl LoadCompressedObjectPic
_08034DB4:
	ldr r1, [r6]
	ldr r1, [r1, 0x4]
	adds r1, r4, r1
	strh r0, [r1, 0xA]
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	mov r2, r9
	mov r3, r8
	subs r0, r2, r3
	lsls r0, 2
	adds r0, r1
	ldrh r1, [r0, 0xA]
	ldr r0, =0x0000ffff
	cmp r1, r0
	bne _08034DE0
_08034DD4:
	movs r0, 0
	b _08034EE8
	.pool
_08034DE0:
	ldr r0, [r5, 0xC]
	ldrh r0, [r0, 0x4]
	bl IndexOfSpritePaletteTag
	ldr r6, =gUnknown_02022E10
	ldr r1, [r6]
	ldr r1, [r1, 0x4]
	mov r4, r9
	mov r3, r8
	subs r2, r4, r3
	lsls r4, r2, 2
	adds r1, r4, r1
	strb r0, [r1, 0x4]
	ldr r0, [r6]
	ldr r0, [r0, 0x4]
	adds r0, r4, r0
	ldrb r0, [r0, 0x4]
	cmp r0, 0xFF
	bne _08034E14
	ldr r0, [r5, 0xC]
	bl LoadSpritePalette
	ldr r1, [r6]
	ldr r1, [r1, 0x4]
	adds r1, r4, r1
	strb r0, [r1, 0x4]
_08034E14:
	ldr r0, [r6]
	ldr r1, [r0, 0x4]
	adds r1, r4, r1
	ldrb r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r1, 0x2]
	ldr r0, [r6]
	ldr r0, [r0, 0x4]
	adds r0, r4, r0
	ldrb r1, [r5, 0x1]
	strb r1, [r0, 0x3]
	ldr r2, [r6]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	ldrh r1, [r5, 0x4]
	strh r1, [r0, 0xC]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	ldrh r1, [r5, 0x6]
	strh r1, [r0, 0xE]
	ldr r1, [r2, 0x4]
	adds r1, r4, r1
	ldrb r0, [r5]
	lsls r0, 28
	lsrs r0, 30
	strb r0, [r1, 0x6]
	ldr r0, [r6]
	ldr r1, [r0, 0x4]
	adds r1, r4, r1
	ldrb r0, [r5]
	lsls r0, 26
	lsrs r0, 30
	strb r0, [r1, 0x5]
	ldr r0, [r6]
	ldr r1, [r0, 0x4]
	adds r1, r4, r1
	ldrb r0, [r5]
	lsrs r0, 6
	strb r0, [r1, 0x7]
	ldr r0, [r6]
	ldr r0, [r0, 0x4]
	adds r0, r4, r0
	ldrb r1, [r5, 0x2]
	strb r1, [r0, 0x8]
	ldrb r1, [r5]
	lsls r0, r1, 28
	lsrs r0, 30
	lsls r1, 26
	lsrs r1, 30
	bl sub_80355F8
	ldr r1, [r6]
	ldr r1, [r1, 0x4]
	adds r1, r4, r1
	strb r0, [r1, 0x9]
	ldr r2, [r6]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	ldr r1, [r5, 0x8]
	ldrh r1, [r1, 0x6]
	strh r1, [r0, 0x10]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	ldr r1, [r5, 0xC]
	ldrh r1, [r1, 0x4]
	strh r1, [r0, 0x12]
	ldr r0, [r2, 0x4]
	adds r0, r4, r0
	movs r1, 0x1
	strb r1, [r0]
	ldr r0, [r6]
	ldr r0, [r0, 0x4]
	adds r0, r4, r0
	str r1, [r0, 0x14]
	movs r3, 0x1
	ldrb r0, [r5, 0x1]
	cmp r3, r0
	bcs _08034ECA
_08034EB2:
	ldr r0, [r6]
	ldr r2, [r0, 0x4]
	adds r2, r4, r2
	ldr r1, [r2, 0x14]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	str r0, [r2, 0x14]
	adds r3, 0x1
	ldrb r2, [r5, 0x1]
	cmp r3, r2
	bcc _08034EB2
_08034ECA:
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	mov r3, r9
	mov r4, r8
	subs r1, r3, r4
	lsls r1, 2
	ldr r0, [r0, 0x4]
	adds r0, r1
	bl sub_8034EFC
	mov r0, r8
	mov r1, r10
	bl sub_8035044
	movs r0, 0x1
_08034EE8:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8034D14

	thumb_func_start sub_8034EFC
sub_8034EFC: @ 8034EFC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r4, r0, 0
	ldrb r5, [r4, 0x1]
	movs r0, 0xC
	ldrsh r7, [r4, r0]
	ldrb r0, [r4, 0x3]
	adds r0, 0x1
	mov r8, r0
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	lsls r1, r5, 3
	ldr r2, =gUnknown_030022F8
	mov r9, r2
	add r1, r9
	mov r0, r8
	lsls r2, r0, 2
	movs r0, 0x80
	lsls r0, 17
	orrs r2, r0
	mov r0, sp
	bl CpuSet
	movs r6, 0
	ldrb r5, [r4, 0x1]
	cmp r6, r8
	bcs _08034FCE
	movs r1, 0x3F
	mov r10, r1
	movs r2, 0xD
	negs r2, r2
	mov r9, r2
_08034F46:
	lsls r0, r5, 3
	ldr r1, =gMain
	adds r3, r0, r1
	ldrh r1, [r4, 0xE]
	adds r0, r3, 0
	adds r0, 0x38
	strb r1, [r0]
	ldr r2, =0x000001ff
	adds r0, r2, 0
	adds r1, r7, 0
	ands r1, r0
	ldrh r2, [r3, 0x3A]
	ldr r0, =0xfffffe00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x3A]
	ldrb r1, [r4, 0x6]
	movs r0, 0x39
	adds r0, r3
	mov r12, r0
	lsls r1, 6
	ldrb r2, [r0]
	mov r0, r10
	ands r0, r2
	orrs r0, r1
	mov r1, r12
	strb r0, [r1]
	ldrb r1, [r4, 0x5]
	movs r2, 0x3B
	adds r2, r3
	mov r12, r2
	lsls r1, 6
	ldrb r2, [r2]
	mov r0, r10
	ands r0, r2
	orrs r0, r1
	mov r1, r12
	strb r0, [r1]
	ldrh r0, [r4, 0xA]
	ldr r1, =0x000003ff
	ands r1, r0
	ldrh r2, [r3, 0x3C]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x3C]
	adds r3, 0x3D
	movs r0, 0x3
	ldrb r1, [r4, 0x7]
	ands r1, r0
	lsls r1, 2
	ldrb r2, [r3]
	mov r0, r9
	ands r0, r2
	orrs r0, r1
	strb r0, [r3]
	ldrb r2, [r4, 0x4]
	lsls r2, 4
	movs r1, 0xF
	ands r0, r1
	orrs r0, r2
	strb r0, [r3]
	ldrb r0, [r4, 0x8]
	adds r7, r0
	adds r6, 0x1
	adds r5, 0x1
	cmp r6, r8
	bcc _08034F46
_08034FCE:
	subs r5, 0x1
	ldr r0, =gMain
	lsls r3, r5, 3
	adds r3, r0
	movs r2, 0xC
	ldrsh r1, [r4, r2]
	ldrb r0, [r4, 0x8]
	subs r1, r0
	ldr r2, =0x000001ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x3A]
	ldr r0, =0xfffffe00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x3A]
	adds r2, r3, 0
	adds r2, 0x39
	ldrb r1, [r2]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
	ldrb r0, [r4, 0x9]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 1
	ldrh r4, [r4, 0xA]
	adds r1, r4
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x3C]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x3C]
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8034EFC

	thumb_func_start sub_8035044
sub_8035044: @ 8035044
	push {r4-r6,lr}
	adds r3, r0, 0
	adds r4, r1, 0
	ldr r0, =gUnknown_02022E10
	ldr r1, [r0]
	adds r6, r0, 0
	cmp r1, 0
	beq _080350A8
	ldr r2, [r1, 0x4]
	lsls r1, r3, 3
	subs r0, r1, r3
	lsls r0, 2
	adds r2, r0, r2
	ldrb r0, [r2]
	adds r5, r1, 0
	cmp r0, 0
	beq _080350A8
	str r4, [r2, 0x18]
	cmp r4, 0
	bge _08035078
	movs r2, 0x1
	negs r4, r4
	b _0803507A
	.pool
_08035078:
	movs r2, 0
_0803507A:
	ldr r0, [r6]
	ldr r1, [r0, 0x4]
	subs r0, r5, r3
	lsls r0, 2
	adds r0, r1
	ldrb r3, [r0, 0x2]
	cmp r3, 0x1
	beq _0803509A
	cmp r3, 0x1
	ble _08035092
	cmp r3, 0x2
	beq _080350A2
_08035092:
	adds r1, r4, 0
	bl sub_80350B0
	b _080350A8
_0803509A:
	adds r1, r4, 0
	bl sub_8035164
	b _080350A8
_080350A2:
	adds r1, r4, 0
	bl sub_80352C0
_080350A8:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8035044

	thumb_func_start sub_80350B0
sub_80350B0: @ 80350B0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r8, r0
	mov r9, r1
	str r2, [sp]
	ldr r5, [r0, 0x14]
	ldrb r7, [r0, 0x1]
	ldr r0, =gMain
	mov r10, r0
	cmp r5, 0
	beq _0803511A
	lsls r0, r7, 3
	adds r0, 0x3C
	mov r1, r10
	adds r6, r0, r1
_080350D6:
	mov r0, r9
	adds r1, r5, 0
	bl __udivsi3
	adds r4, r0, 0
	adds r0, r4, 0
	muls r0, r5
	mov r2, r9
	subs r2, r0
	mov r9, r2
	adds r0, r5, 0
	movs r1, 0xA
	bl __udivsi3
	adds r5, r0, 0
	mov r1, r8
	ldrb r0, [r1, 0x9]
	adds r1, r4, 0
	muls r1, r0
	mov r2, r8
	ldrh r2, [r2, 0xA]
	adds r1, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r0, [r6]
	ldr r2, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r6]
	adds r6, 0x8
	adds r7, 0x1
	cmp r5, 0
	bne _080350D6
_0803511A:
	ldr r0, [sp]
	cmp r0, 0
	beq _08035140
	lsls r0, r7, 3
	add r0, r10
	adds r0, 0x39
	ldrb r2, [r0]
	movs r1, 0x4
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	b _08035154
	.pool
_08035140:
	lsls r2, r7, 3
	add r2, r10
	adds r2, 0x39
	ldrb r1, [r2]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
_08035154:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80350B0

	thumb_func_start sub_8035164
sub_8035164: @ 8035164
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r0, 0
	mov r8, r1
	str r2, [sp]
	ldr r5, [r6, 0x14]
	ldr r3, =gUnknown_03000DD4
	ldrb r0, [r6, 0x1]
	str r0, [r3]
	ldr r2, =gUnknown_03000DD8
	movs r0, 0
	str r0, [r2]
	ldr r1, =gUnknown_03000DDC
	subs r0, 0x1
	str r0, [r1]
	adds r7, r3, 0
	mov r10, r1
	ldr r0, =gMain
	mov r9, r0
	cmp r5, 0
	beq _0803524C
_08035196:
	mov r0, r8
	adds r1, r5, 0
	bl __udivsi3
	adds r4, r0, 0
	adds r0, r4, 0
	muls r0, r5
	mov r1, r8
	subs r1, r0
	mov r8, r1
	adds r0, r5, 0
	movs r1, 0xA
	bl __udivsi3
	adds r5, r0, 0
	cmp r4, 0
	bne _080351C8
	mov r2, r10
	ldr r1, [r2]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	bne _080351C8
	cmp r5, 0
	bne _08035224
_080351C8:
	ldr r2, [r7]
	lsls r2, 3
	add r2, r9
	ldrb r0, [r6, 0x9]
	adds r3, r4, 0
	muls r3, r0
	ldrh r4, [r6, 0xA]
	adds r3, r4
	ldr r1, =0x000003ff
	adds r0, r1, 0
	ands r3, r0
	ldrh r0, [r2, 0x3C]
	ldr r4, =0xfffffc00
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r3
	strh r0, [r2, 0x3C]
	adds r2, 0x39
	ldrb r0, [r2]
	movs r1, 0x4
	negs r1, r1
	ands r0, r1
	strb r0, [r2]
	mov r2, r10
	ldr r1, [r2]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	bne _0803523A
	ldr r4, =gUnknown_03000DD8
	ldr r0, [r4]
	str r0, [r2]
	b _0803523A
	.pool
_08035224:
	ldr r0, [r7]
	lsls r0, 3
	add r0, r9
	adds r0, 0x39
	ldrb r1, [r0]
	movs r2, 0x4
	negs r2, r2
	ands r1, r2
	movs r2, 0x2
	orrs r1, r2
	strb r1, [r0]
_0803523A:
	ldr r0, [r7]
	adds r0, 0x1
	str r0, [r7]
	ldr r4, =gUnknown_03000DD8
	ldr r0, [r4]
	adds r0, 0x1
	str r0, [r4]
	cmp r5, 0
	bne _08035196
_0803524C:
	ldr r0, [sp]
	cmp r0, 0
	beq _08035298
	ldr r1, [r7]
	lsls r1, 3
	add r1, r9
	adds r1, 0x39
	ldrb r2, [r1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r3, [r7]
	lsls r3, 3
	add r3, r9
	movs r1, 0xC
	ldrsh r2, [r6, r1]
	mov r4, r10
	ldr r0, [r4]
	subs r0, 0x1
	ldrb r1, [r6, 0x8]
	muls r0, r1
	adds r2, r0
	ldr r1, =0x000001ff
	adds r0, r1, 0
	ands r2, r0
	ldrh r1, [r3, 0x3A]
	ldr r0, =0xfffffe00
	ands r0, r1
	orrs r0, r2
	strh r0, [r3, 0x3A]
	b _080352AE
	.pool
_08035298:
	ldr r0, [r7]
	lsls r0, 3
	add r0, r9
	adds r0, 0x39
	ldrb r2, [r0]
	movs r1, 0x4
	negs r1, r1
	ands r1, r2
	movs r2, 0x2
	orrs r1, r2
	strb r1, [r0]
_080352AE:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8035164

	thumb_func_start sub_80352C0
sub_80352C0: @ 80352C0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	mov r8, r0
	mov r10, r1
	str r2, [sp]
	ldr r5, [r0, 0x14]
	ldrb r3, [r0, 0x1]
	movs r0, 0
	str r0, [sp, 0x4]
	mov r9, r0
	cmp r5, 0
	beq _0803535A
_080352E0:
	lsls r0, r3, 3
	adds r1, r0, 0
	adds r1, 0x39
	ldr r2, =gMain
	adds r7, r1, r2
	adds r0, 0x3C
	adds r6, r0, r2
_080352EE:
	mov r0, r10
	adds r1, r5, 0
	str r3, [sp, 0x8]
	bl __udivsi3
	adds r4, r0, 0
	adds r0, r4, 0
	muls r0, r5
	mov r1, r10
	subs r1, r0
	mov r10, r1
	adds r0, r5, 0
	movs r1, 0xA
	bl __udivsi3
	adds r5, r0, 0
	ldr r3, [sp, 0x8]
	cmp r4, 0
	bne _0803531E
	ldr r2, [sp, 0x4]
	cmp r2, 0
	bne _0803531E
	cmp r5, 0
	bne _080352E0
_0803531E:
	movs r0, 0x1
	str r0, [sp, 0x4]
	mov r1, r8
	ldrb r0, [r1, 0x9]
	adds r2, r4, 0
	muls r2, r0
	ldrh r4, [r1, 0xA]
	adds r2, r4
	ldr r1, =0x000003ff
	adds r0, r1, 0
	ands r2, r0
	ldrh r0, [r6]
	ldr r4, =0xfffffc00
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strh r0, [r6]
	ldrb r0, [r7]
	movs r2, 0x4
	negs r2, r2
	adds r1, r2, 0
	ands r0, r1
	strb r0, [r7]
	adds r7, 0x8
	adds r6, 0x8
	adds r3, 0x1
	movs r4, 0x1
	add r9, r4
	cmp r5, 0
	bne _080352EE
_0803535A:
	mov r0, r8
	ldrb r0, [r0, 0x3]
	cmp r9, r0
	bge _0803538A
	ldr r1, =gMain
	movs r5, 0x4
	negs r5, r5
	movs r4, 0x2
	lsls r0, r3, 3
	adds r0, 0x39
	adds r2, r0, r1
_08035370:
	ldrb r1, [r2]
	adds r0, r5, 0
	ands r0, r1
	orrs r0, r4
	strb r0, [r2]
	adds r2, 0x8
	adds r3, 0x1
	movs r1, 0x1
	add r9, r1
	mov r0, r8
	ldrb r0, [r0, 0x3]
	cmp r9, r0
	blt _08035370
_0803538A:
	ldr r1, [sp]
	cmp r1, 0
	beq _080353B0
	lsls r0, r3, 3
	ldr r2, =gMain
	adds r0, r2
	adds r0, 0x39
	ldrb r2, [r0]
	movs r1, 0x4
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	b _080353C6
	.pool
_080353B0:
	lsls r2, r3, 3
	ldr r4, =gMain
	adds r2, r4
	adds r2, 0x39
	ldrb r1, [r2]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
_080353C6:
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80352C0

	thumb_func_start sub_80353DC
sub_80353DC: @ 80353DC
	push {r4-r7,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	cmp r0, 0
	beq _0803546E
	ldr r2, [r0, 0x4]
	lsls r1, r4, 3
	subs r0, r1, r4
	lsls r0, 2
	adds r2, r0, r2
	ldrb r0, [r2]
	adds r5, r1, 0
	cmp r0, 0
	beq _0803546E
	ldrb r3, [r2, 0x3]
	adds r0, r3, 0x1
	ldrb r2, [r2, 0x1]
	cmp r0, 0
	beq _08035426
	ldr r1, =gMain
	movs r7, 0x4
	negs r7, r7
	movs r6, 0x2
	adds r3, r0, 0
	lsls r0, r2, 3
	adds r0, 0x39
	adds r2, r0, r1
_08035414:
	ldrb r1, [r2]
	adds r0, r7, 0
	ands r0, r1
	orrs r0, r6
	strb r0, [r2]
	subs r3, 0x1
	adds r2, 0x8
	cmp r3, 0
	bne _08035414
_08035426:
	adds r0, r4, 0
	bl sub_8035570
	cmp r0, 0
	bne _08035442
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	subs r0, r5, r4
	lsls r0, 2
	adds r0, r1
	ldrh r0, [r0, 0x10]
	bl FreeSpriteTilesByTag
_08035442:
	adds r0, r4, 0
	bl sub_80355B4
	cmp r0, 0
	bne _0803545E
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	subs r0, r5, r4
	lsls r0, 2
	adds r0, r1
	ldrh r0, [r0, 0x12]
	bl FreeSpritePaletteByTag
_0803545E:
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	subs r0, r5, r4
	lsls r0, 2
	adds r0, r1
	movs r1, 0
	strb r1, [r0]
_0803546E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80353DC

	thumb_func_start sub_803547C
sub_803547C: @ 803547C
	push {r4-r7,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r0, =gUnknown_02022E10
	ldr r1, [r0]
	adds r7, r0, 0
	cmp r1, 0
	beq _0803550C
	ldr r2, [r1, 0x4]
	lsls r1, r4, 3
	subs r0, r1, r4
	lsls r0, 2
	adds r2, r0, r2
	ldrb r0, [r2]
	adds r6, r1, 0
	cmp r0, 0
	beq _0803550C
	ldrb r3, [r2, 0x3]
	adds r1, r3, 0x1
	ldrb r0, [r2, 0x1]
	cmp r5, 0
	beq _080354D8
	cmp r1, 0
	beq _0803550C
	ldr r1, =gMain
	movs r5, 0x4
	negs r5, r5
	movs r4, 0x2
	adds r3, 0x1
	lsls r0, 3
	adds r0, 0x39
	adds r2, r0, r1
_080354BC:
	ldrb r1, [r2]
	adds r0, r5, 0
	ands r0, r1
	orrs r0, r4
	strb r0, [r2]
	subs r3, 0x1
	adds r2, 0x8
	cmp r3, 0
	bne _080354BC
	b _0803550C
	.pool
_080354D8:
	cmp r1, 0
	beq _080354FA
	ldr r1, =gMain
	movs r5, 0x4
	negs r5, r5
	adds r3, 0x1
	lsls r0, 3
	adds r0, 0x39
	adds r2, r0, r1
_080354EA:
	ldrb r1, [r2]
	adds r0, r5, 0
	ands r0, r1
	strb r0, [r2]
	subs r3, 0x1
	adds r2, 0x8
	cmp r3, 0
	bne _080354EA
_080354FA:
	ldr r0, [r7]
	ldr r1, [r0, 0x4]
	subs r0, r6, r4
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0, 0x18]
	adds r0, r4, 0
	bl sub_8035044
_0803550C:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_803547C

	thumb_func_start sub_8035518
sub_8035518: @ 8035518
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r5, 0x40
	movs r3, 0
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r2, [r0]
	cmp r3, r2
	bcs _0803555A
	ldr r1, [r0, 0x4]
_0803552E:
	ldrb r0, [r1]
	cmp r0, 0
	bne _08035548
	ldrb r0, [r1, 0x1]
	cmp r0, 0xFF
	beq _08035552
	ldrb r0, [r1, 0x3]
	cmp r0, r4
	bhi _08035552
	ldrb r0, [r1, 0x1]
	b _0803556A
	.pool
_08035548:
	adds r0, r5, 0x1
	ldrb r5, [r1, 0x3]
	adds r0, r5
	lsls r0, 16
	lsrs r5, r0, 16
_08035552:
	adds r1, 0x1C
	adds r3, 0x1
	cmp r3, r2
	bcc _0803552E
_0803555A:
	adds r0, r5, r4
	adds r0, 0x1
	cmp r0, 0x80
	bgt _08035568
	lsls r0, r5, 24
	lsrs r0, 24
	b _0803556A
_08035568:
	movs r0, 0xFF
_0803556A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8035518

	thumb_func_start sub_8035570
sub_8035570: @ 8035570
	push {r4-r6,lr}
	adds r3, r0, 0
	movs r2, 0
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r4, [r0]
	cmp r2, r4
	bcs _080355AC
	ldr r1, [r0, 0x4]
	lsls r0, r3, 3
	subs r0, r3
	lsls r0, 2
	adds r5, r0, r1
_0803558A:
	ldrb r0, [r1]
	cmp r0, 0
	beq _080355A4
	cmp r2, r3
	beq _080355A4
	ldrh r0, [r1, 0x10]
	ldrh r6, [r5, 0x10]
	cmp r0, r6
	bne _080355A4
	movs r0, 0x1
	b _080355AE
	.pool
_080355A4:
	adds r1, 0x1C
	adds r2, 0x1
	cmp r2, r4
	bcc _0803558A
_080355AC:
	movs r0, 0
_080355AE:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8035570

	thumb_func_start sub_80355B4
sub_80355B4: @ 80355B4
	push {r4-r6,lr}
	adds r3, r0, 0
	movs r2, 0
	ldr r0, =gUnknown_02022E10
	ldr r0, [r0]
	ldr r4, [r0]
	cmp r2, r4
	bcs _080355F0
	ldr r1, [r0, 0x4]
	lsls r0, r3, 3
	subs r0, r3
	lsls r0, 2
	adds r5, r0, r1
_080355CE:
	ldrb r0, [r1]
	cmp r0, 0
	beq _080355E8
	cmp r2, r3
	beq _080355E8
	ldrh r0, [r1, 0x12]
	ldrh r6, [r5, 0x12]
	cmp r0, r6
	bne _080355E8
	movs r0, 0x1
	b _080355F2
	.pool
_080355E8:
	adds r1, 0x1C
	adds r2, 0x1
	cmp r2, r4
	bcc _080355CE
_080355F0:
	movs r0, 0
_080355F2:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_80355B4

	thumb_func_start sub_80355F8
sub_80355F8: @ 80355F8
	ldr r2, =gUnknown_082FF1C8
	lsls r0, 2
	adds r1, r0
	adds r1, r2
	ldrb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_80355F8

	thumb_func_start sub_8035608
sub_8035608: @ 8035608
	push {lr}
	bl ResetSpriteData
	ldr r0, =gUnknown_0831AC88
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	ldr r0, =sub_8035648
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8035608

	thumb_func_start sub_8035648
sub_8035648: @ 8035648
	push {lr}
	bl AnimateSprites
	bl BuildOamBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8035648

	thumb_func_start trs_config
trs_config: @ 8035658
	push {r4,lr}
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0831AA08
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	movs r0, 0x80
	lsls r0, 11
	ands r1, r0
	cmp r1, 0
	beq _080356A4
	ldr r0, =gBattleScripting
	adds r0, 0x24
	movs r1, 0x1
	strb r1, [r0]
	ldr r4, =gUnknown_02023060
	ldr r1, [r4]
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	movs r0, 0x2
	bl SetBgTilemapBuffer
	b _080356AA
	.pool
_080356A4:
	ldr r0, =gBattleScripting
	adds r0, 0x24
	strb r1, [r0]
_080356AA:
	ldr r1, =gUnknown_0831ABA0
	ldr r0, =gBattleScripting
	adds r0, 0x24
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl InitWindows
	bl DeactivateAllTextPrinters
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end trs_config

	thumb_func_start sub_80356D0
sub_80356D0: @ 80356D0
	push {lr}
	movs r0, 0x2
	bl DisableInterrupts
	movs r0, 0xC5
	bl EnableInterrupts
	bl trs_config
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldr r1, =0x0000b040
	movs r0, 0
	bl SetGpuReg
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80356D0

	thumb_func_start ApplyPlayerChosenFrameToBattleMenu
ApplyPlayerChosenFrameToBattleMenu: @ 803570C
	push {lr}
	movs r0, 0x2
	movs r1, 0x12
	movs r2, 0x10
	bl sub_809882C
	movs r0, 0x2
	movs r1, 0x22
	movs r2, 0x10
	bl sub_809882C
	ldr r0, =gUnknown_08D85600
	movs r1, 0x50
	movs r2, 0x20
	bl LoadCompressedPalette
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x80
	lsls r1, 11
	ands r0, r1
	cmp r0, 0
	beq _0803575A
	movs r0, 0x70
	bl sub_81978B0
	movs r0, 0
	movs r1, 0x30
	movs r2, 0x70
	bl copy_textbox_border_tile_patterns_to_vram
	ldr r0, =gPlttBufferUnfaded
	adds r0, 0xEC
	movs r1, 0
	strh r1, [r0]
	ldr r1, =gPlttBufferFaded + 0xEC
	movs r2, 0x1
	bl CpuSet
_0803575A:
	pop {r0}
	bx r0
	.pool
	thumb_func_end ApplyPlayerChosenFrameToBattleMenu

	thumb_func_start DrawMainBattleBackground
DrawMainBattleBackground: @ 8035770
	push {r4,r5,lr}
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	ldr r0, =0x023f0902
	ands r0, r1
	cmp r0, 0
	beq _080357B0
	ldr r0, =gUnknown_08D7C440
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7CA28
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7C9EC
	b _08035A52
	.pool
_080357B0:
	movs r0, 0x80
	lsls r0, 21
	ands r0, r1
	cmp r0, 0
	beq _080357E4
	ldr r0, =gUnknown_08D7BB14
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7C154
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7DF30
	b _08035A52
	.pool
_080357E4:
	movs r0, 0x80
	lsls r0, 22
	ands r0, r1
	cmp r0, 0
	beq _08035818
	ldr r0, =gUnknown_08D7A108
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7A720
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7DEF4
	b _08035A52
	.pool
_08035818:
	movs r0, 0x80
	lsls r0, 23
	ands r0, r1
	cmp r0, 0
	beq _0803584C
	ldr r0, =gUnknown_08D7D590
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7DC04
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E234
	b _08035A52
	.pool
_0803584C:
	movs r0, 0x8
	ands r1, r0
	cmp r1, 0
	beq _080358C4
	ldr r2, =gTrainers
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x1]
	cmp r0, 0x20
	bne _08035898
	ldr r0, =gUnknown_08D7C440
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7CA28
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7DFC4
	b _08035A52
	.pool
_08035898:
	cmp r0, 0x26
	bne _080358C4
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E1F8
	b _08035A52
	.pool
_080358C4:
	bl sav1_map_get_battletype
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x8
	bhi _08035904
	lsls r0, 2
	ldr r1, =_080358E0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080358E0:
	.4byte _08035904
	.4byte _08035950
	.4byte _08035978
	.4byte _080359A0
	.4byte _080359C8
	.4byte _080359F0
	.4byte _08035A18
	.4byte _08035A40
	.4byte _08035A70
_08035904:
	ldr r4, =gBattleTerrainTable
	ldr r5, =gBattleTerrain
	ldrb r1, [r5]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldr r0, [r0]
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldrb r1, [r5]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r1, r4, 0x4
	adds r0, r1
	ldr r0, [r0]
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldrb r1, [r5]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r4, 0x10
	adds r0, r4
	ldr r0, [r0]
	b _08035A52
	.pool
_08035950:
	ldr r0, =gUnknown_08D7C440
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7CA28
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7DF88
	b _08035A52
	.pool
_08035978:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E060
	b _08035A52
	.pool
_080359A0:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E000
	b _08035A52
	.pool
_080359C8:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E0CC
	b _08035A52
	.pool
_080359F0:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E11C
	b _08035A52
	.pool
_08035A18:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E164
	b _08035A52
	.pool
_08035A40:
	ldr r0, =gUnknown_08D7CCD8
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7D2E0
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7E1A8
_08035A52:
	movs r1, 0x20
	movs r2, 0x60
	bl LoadCompressedPalette
	b _08035A8A
	.pool
_08035A70:
	ldr r0, =gUnknown_08D7C440
	ldr r1, =0x06008000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7CA28
	ldr r1, =0x0600d000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7C9EC
	movs r1, 0x20
	movs r2, 0x60
	bl LoadCompressedPalette
_08035A8A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DrawMainBattleBackground

	thumb_func_start LoadBattleTextboxAndBackground
LoadBattleTextboxAndBackground: @ 8035AA4
	push {lr}
	ldr r0, =gUnknown_08C00000
	movs r1, 0xC0
	lsls r1, 19
	bl LZDecompressVram
	ldr r1, =gUnknown_08C00524
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_08C004E0
	movs r1, 0
	movs r2, 0x40
	bl LoadCompressedPalette
	bl ApplyPlayerChosenFrameToBattleMenu
	bl DrawMainBattleBackground
	pop {r0}
	bx r0
	.pool
	thumb_func_end LoadBattleTextboxAndBackground

	thumb_func_start sub_8035AE4
sub_8035AE4: @ 8035AE4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x18
	ldr r4, [sp, 0x34]
	lsls r0, 24
	lsrs r6, r0, 24
	adds r7, r6, 0
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 24
	lsrs r3, 24
	mov r12, r3
	lsls r4, 24
	lsrs r4, 24
	mov r9, r4
	movs r4, 0
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08035BCC
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	movs r2, 0x12
	ldrsh r0, [r1, r2]
	cmp r0, 0
	beq _08035B56
	cmp r5, 0x1
	beq _08035B7E
	cmp r5, 0x1
	bgt _08035B44
	cmp r5, 0
	beq _08035B4E
	b _08035B88
	.pool
_08035B44:
	cmp r5, 0x2
	beq _08035B52
	cmp r5, 0x3
	beq _08035B72
	b _08035B88
_08035B4E:
	ldrh r0, [r1, 0xE]
	b _08035B74
_08035B52:
	ldrh r1, [r1, 0xE]
	b _08035B80
_08035B56:
	cmp r5, 0x1
	beq _08035B72
	cmp r5, 0x1
	bgt _08035B64
	cmp r5, 0
	beq _08035B6E
	b _08035B88
_08035B64:
	cmp r5, 0x2
	beq _08035B7A
	cmp r5, 0x3
	beq _08035B7E
	b _08035B88
_08035B6E:
	ldrh r0, [r1, 0xE]
	b _08035B74
_08035B72:
	ldrh r0, [r1, 0x10]
_08035B74:
	movs r4, 0x3F
	ands r4, r0
	b _08035B88
_08035B7A:
	ldrh r1, [r1, 0xE]
	b _08035B80
_08035B7E:
	ldrh r1, [r1, 0x10]
_08035B80:
	movs r0, 0xFC
	lsls r0, 4
	ands r0, r1
	lsrs r4, r0, 6
_08035B88:
	movs r2, 0
	movs r6, 0x3
	ldr r0, =0x00006001
	adds r5, r0, 0
	add r3, sp, 0xC
_08035B92:
	lsls r1, r2, 1
	adds r0, r6, 0
	lsls r0, r1
	ands r0, r4
	asrs r0, r1
	adds r0, r5
	strh r0, [r3]
	adds r3, 0x2
	adds r2, 0x1
	cmp r2, 0x2
	ble _08035B92
	movs r0, 0x3
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	mov r0, r8
	add r1, sp, 0xC
	mov r2, r12
	mov r3, r9
	bl CopyToBgTilemapBufferRect_ChangePalette
	mov r0, r8
	bl CopyBgTilemapBufferToVram
	b _08035C36
	.pool
_08035BCC:
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r0, [r0]
	cmp r5, r0
	bne _08035BEC
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldrh r4, [r0, 0xE]
	b _08035BF8
	.pool
_08035BEC:
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldrh r4, [r0, 0x10]
_08035BF8:
	movs r2, 0
	movs r6, 0x3
	ldr r0, =0x00006001
	adds r5, r0, 0
	add r3, sp, 0xC
_08035C02:
	lsls r1, r2, 1
	adds r0, r6, 0
	lsls r0, r1
	ands r0, r4
	asrs r0, r1
	adds r0, r5
	strh r0, [r3]
	adds r3, 0x2
	adds r2, 0x1
	cmp r2, 0x5
	ble _08035C02
	movs r0, 0x6
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	mov r0, r8
	add r1, sp, 0xC
	mov r2, r12
	mov r3, r9
	bl CopyToBgTilemapBufferRect_ChangePalette
	mov r0, r8
	bl CopyBgTilemapBufferToVram
_08035C36:
	add sp, 0x18
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8035AE4

	thumb_func_start sub_8035C4C
sub_8035C4C: @ 8035C4C
	push {lr}
	ldr r0, =gBattleOutcome
	ldrb r2, [r0]
	cmp r2, 0x3
	bne _08035C68
	ldr r0, =gText_Draw
	movs r1, 0x15
	bl BattleHandleAddTextPrinter
	b _08035D68
	.pool
_08035C68:
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08035CE2
	cmp r2, 0x1
	bne _08035CAE
	ldr r2, =gLinkPlayers
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r1, [r0]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x18]
	cmp r0, 0x1
	beq _08035CFC
	cmp r0, 0x1
	bgt _08035CA4
	cmp r0, 0
	beq _08035D36
	b _08035D68
	.pool
_08035CA4:
	cmp r0, 0x2
	beq _08035D36
	cmp r0, 0x3
	bne _08035D68
	b _08035CFC
_08035CAE:
	ldr r2, =gLinkPlayers
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r1, [r0]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x18]
	cmp r0, 0x1
	beq _08035D36
	cmp r0, 0x1
	bgt _08035CD8
	cmp r0, 0
	beq _08035CFC
	b _08035D68
	.pool
_08035CD8:
	cmp r0, 0x2
	beq _08035CFC
	cmp r0, 0x3
	bne _08035D68
	b _08035D36
_08035CE2:
	cmp r2, 0x1
	bne _08035D20
	ldr r2, =gLinkPlayers
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r1, [r0]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x18]
	cmp r0, 0
	beq _08035D36
_08035CFC:
	ldr r0, =gText_Win
	movs r1, 0x17
	bl BattleHandleAddTextPrinter
	ldr r0, =gText_Loss
	movs r1, 0x16
	bl BattleHandleAddTextPrinter
	b _08035D68
	.pool
_08035D20:
	ldr r2, =gLinkPlayers
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r1, [r0]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x18]
	cmp r0, 0
	beq _08035D58
_08035D36:
	ldr r0, =gText_Win
	movs r1, 0x16
	bl BattleHandleAddTextPrinter
	ldr r0, =gText_Loss
	movs r1, 0x17
	bl BattleHandleAddTextPrinter
	b _08035D68
	.pool
_08035D58:
	ldr r0, =gText_Win
	movs r1, 0x17
	bl BattleHandleAddTextPrinter
	ldr r0, =gText_Loss
	movs r1, 0x16
	bl BattleHandleAddTextPrinter
_08035D68:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8035C4C

	thumb_func_start task00_0800F6FC
task00_0800F6FC: @ 8035D74
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r1, =gTasks
	lsls r0, r7, 2
	mov r8, r0
	adds r0, r7
	lsls r0, 3
	adds r5, r0, r1
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r0, 0x1
	bne _08035D96
	b _08035EC4
_08035D96:
	cmp r0, 0x1
	bgt _08035DA4
	cmp r0, 0
	beq _08035DAC
	b _08036138
	.pool
_08035DA4:
	cmp r0, 0x2
	bne _08035DAA
	b _08035F64
_08035DAA:
	b _08036138
_08035DAC:
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08035E44
	movs r5, 0
	movs r6, 0x3
_08035DBC:
	ldr r0, =gLinkPlayers + 8
	adds r1, r5, r0
	subs r0, 0x8
	adds r4, r5, r0
	ldrh r0, [r4, 0x18]
	cmp r0, 0x1
	beq _08035DF4
	cmp r0, 0x1
	bgt _08035DDC
	cmp r0, 0
	beq _08035DE6
	b _08035E3A
	.pool
_08035DDC:
	cmp r0, 0x2
	beq _08035E08
	cmp r0, 0x3
	beq _08035E22
	b _08035E3A
_08035DE6:
	adds r0, r1, 0
	movs r1, 0x11
	bl BattleHandleAddTextPrinter
	ldrb r1, [r4, 0x18]
	movs r0, 0x4
	b _08035E14
_08035DF4:
	adds r0, r1, 0
	movs r1, 0x12
	bl BattleHandleAddTextPrinter
	ldrb r1, [r4, 0x18]
	movs r0, 0x4
	str r0, [sp]
	adds r0, r7, 0
	movs r2, 0x2
	b _08035E1A
_08035E08:
	adds r0, r1, 0
	movs r1, 0x13
	bl BattleHandleAddTextPrinter
	ldrb r1, [r4, 0x18]
	movs r0, 0x8
_08035E14:
	str r0, [sp]
	adds r0, r7, 0
	movs r2, 0x1
_08035E1A:
	movs r3, 0x2
	bl sub_8035AE4
	b _08035E3A
_08035E22:
	adds r0, r1, 0
	movs r1, 0x14
	bl BattleHandleAddTextPrinter
	ldrb r1, [r4, 0x18]
	movs r0, 0x8
	str r0, [sp]
	adds r0, r7, 0
	movs r2, 0x2
	movs r3, 0x2
	bl sub_8035AE4
_08035E3A:
	adds r5, 0x1C
	subs r6, 0x1
	cmp r6, 0
	bge _08035DBC
	b _08035EA6
_08035E44:
	ldr r0, =gBattleScripting
	adds r0, 0x25
	ldrb r5, [r0]
	movs r0, 0x1
	adds r6, r5, 0
	eors r6, r0
	adds r1, r6, 0
	ldr r4, =gLinkPlayers
	lsls r0, r5, 3
	subs r0, r5
	lsls r0, 2
	adds r0, r4
	ldrh r0, [r0, 0x18]
	cmp r0, 0
	beq _08035E66
	adds r6, r5, 0
	adds r5, r1, 0
_08035E66:
	lsls r0, r5, 3
	subs r0, r5
	lsls r0, 2
	adds r4, 0x8
	adds r1, r0, r4
	adds r0, r1, 0
	movs r1, 0xF
	bl BattleHandleAddTextPrinter
	lsls r0, r6, 3
	subs r0, r6
	lsls r0, 2
	adds r1, r0, r4
	adds r0, r1, 0
	movs r1, 0x10
	bl BattleHandleAddTextPrinter
	movs r4, 0x7
	str r4, [sp]
	adds r0, r7, 0
	adds r1, r5, 0
	movs r2, 0x1
	movs r3, 0x2
	bl sub_8035AE4
	str r4, [sp]
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x2
	movs r3, 0x2
	bl sub_8035AE4
_08035EA6:
	ldr r0, =gTasks
	mov r2, r8
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _08036138
	.pool
_08035EC4:
	ldr r0, =0x00002710
	bl AllocSpritePalette
	lsls r0, 24
	ldr r2, =gPlttBufferUnfaded
	lsrs r0, 19
	ldr r3, =0x0000021e
	adds r0, r3
	adds r2, r0, r2
	ldr r1, =gPlttBufferFaded
	adds r0, r1
	ldr r1, =0x00007fff
	strh r1, [r0]
	strh r1, [r2]
	ldr r0, =gUnknown_0831A9D0
	movs r1, 0x6F
	movs r2, 0x50
	movs r3, 0
	bl CreateSprite
	ldr r4, =gBattleStruct
	ldr r1, [r4]
	adds r1, 0x7D
	strb r0, [r1]
	ldr r0, =gUnknown_0831A9E8
	movs r1, 0x81
	movs r2, 0x50
	movs r3, 0
	bl CreateSprite
	ldr r1, [r4]
	adds r1, 0x7E
	strb r0, [r1]
	ldr r3, =gSprites
	ldr r0, [r4]
	adds r0, 0x7D
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r4]
	adds r0, 0x7E
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	b _08036138
	.pool
_08035F64:
	movs r1, 0x12
	ldrsh r0, [r5, r1]
	cmp r0, 0
	beq _08035FCC
	ldr r4, =gBattle_BG1_X
	ldrh r0, [r5, 0xA]
	bl Sin2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08035F7E
	adds r0, 0x1F
_08035F7E:
	asrs r1, r0, 5
	movs r2, 0x14
	negs r2, r2
	adds r0, r2, 0
	subs r0, r1
	strh r0, [r4]
	ldr r4, =gBattle_BG2_X
	ldrh r0, [r5, 0xC]
	bl Sin2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08035F9C
	adds r0, 0x1F
_08035F9C:
	asrs r1, r0, 5
	movs r3, 0x8C
	negs r3, r3
	adds r0, r3, 0
	subs r0, r1
	strh r0, [r4]
	ldr r0, =gBattle_BG1_Y
	ldr r2, =0x0000ffdc
	adds r1, r2, 0
	strh r1, [r0]
	ldr r0, =gBattle_BG2_Y
	strh r1, [r0]
	b _08036038
	.pool
_08035FCC:
	ldr r4, =gBattle_BG1_X
	ldrh r0, [r5, 0xA]
	bl Sin2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08035FDE
	adds r0, 0x1F
_08035FDE:
	asrs r1, r0, 5
	movs r3, 0x14
	negs r3, r3
	adds r0, r3, 0
	subs r0, r1
	strh r0, [r4]
	ldr r4, =gBattle_BG1_Y
	ldrh r0, [r5, 0xA]
	bl Cos2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08035FFC
	adds r0, 0x1F
_08035FFC:
	asrs r0, 5
	subs r0, 0xA4
	strh r0, [r4]
	ldr r4, =gBattle_BG2_X
	ldrh r0, [r5, 0xC]
	bl Sin2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08036014
	adds r0, 0x1F
_08036014:
	asrs r1, r0, 5
	movs r2, 0x8C
	negs r2, r2
	adds r0, r2, 0
	subs r0, r1
	strh r0, [r4]
	ldr r4, =gBattle_BG2_Y
	ldrh r0, [r5, 0xC]
	bl Cos2
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bge _08036032
	adds r0, 0x1F
_08036032:
	asrs r0, 5
	subs r0, 0xA4
	strh r0, [r4]
_08036038:
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r1, r0, r1
	ldrh r0, [r1, 0xC]
	movs r2, 0xC
	ldrsh r3, [r1, r2]
	mov r8, r3
	cmp r3, 0
	beq _08036070
	subs r0, 0x2
	strh r0, [r1, 0xC]
	ldrh r0, [r1, 0xA]
	adds r0, 0x2
	strh r0, [r1, 0xA]
	b _08036138
	.pool
_08036070:
	movs r3, 0x12
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _0803607C
	bl sub_8035C4C
_0803607C:
	movs r0, 0x78
	bl PlaySE
	adds r0, r7, 0
	bl DestroyTask
	ldr r4, =gSprites
	ldr r5, =gBattleStruct
	ldr r0, [r5]
	adds r0, 0x7D
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	adds r1, 0x3E
	ldrb r3, [r1]
	movs r2, 0x5
	negs r2, r2
	adds r0, r2, 0
	ands r0, r3
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, 0x7E
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	ands r2, r1
	strb r2, [r0]
	ldr r5, [r5]
	adds r6, r5, 0
	adds r6, 0x7E
	ldrb r0, [r6]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r4
	ldrh r3, [r2, 0x4]
	lsls r1, r3, 22
	lsrs r1, 22
	adds r1, 0x40
	ldr r7, =0x000003ff
	adds r0, r7, 0
	ands r1, r0
	ldr r0, =0xfffffc00
	ands r0, r3
	orrs r0, r1
	strh r0, [r2, 0x4]
	adds r5, 0x7D
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	mov r1, r8
	strh r1, [r0, 0x2E]
	ldrb r1, [r6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	movs r1, 0x1
	strh r1, [r0, 0x2E]
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldrh r1, [r0, 0x20]
	strh r1, [r0, 0x30]
	ldrb r1, [r6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldrh r1, [r0, 0x20]
	strh r1, [r0, 0x30]
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	mov r2, r8
	strh r2, [r0, 0x32]
	ldrb r1, [r6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	strh r2, [r0, 0x32]
_08036138:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task00_0800F6FC

	thumb_func_start LoadBattleEntryBackground
LoadBattleEntryBackground: @ 8036154
	push {r4,r5,lr}
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08036208
	ldr r0, =gUnknown_08D778F0
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D77B0C
	ldr r1, =0x06010000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D77AE4
	movs r1, 0x60
	movs r2, 0x20
	bl LoadCompressedPalette
	movs r0, 0x1
	movs r1, 0x3
	movs r2, 0x1
	bl SetBgAttribute
	ldr r1, =0x00005c04
	movs r0, 0xA
	bl SetGpuReg
	ldr r4, =gUnknown_08D779D8
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x48
	movs r1, 0x36
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x36
	bl SetGpuReg
	ldr r0, =gBattle_BG1_Y
	ldr r2, =0x0000ff5c
	adds r1, r2, 0
	strh r1, [r0]
	ldr r0, =gBattle_BG2_Y
	strh r1, [r0]
	ldr r0, =gUnknown_0831AA00
	bl LoadCompressedObjectPicUsingHeap
	b _080363AC
	.pool
_08036208:
	ldr r0, =0x023f0902
	ands r0, r1
	cmp r0, 0
	beq _0803628C
	movs r0, 0x80
	lsls r0, 15
	ands r1, r0
	cmp r1, 0
	beq _08036224
	ldr r0, =gPartnerTrainerId
	ldrh r1, [r0]
	ldr r0, =0x00000c03
	cmp r1, r0
	bne _08036248
_08036224:
	ldr r0, =gUnknown_08D820D4
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D824E4
	b _08036382
	.pool
_08036248:
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0x2
	bl SetBgAttribute
	ldr r1, =gUnknown_08D857A8
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r1, =gUnknown_08D85A1C
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	b _080363AC
	.pool
_0803628C:
	movs r0, 0x80
	lsls r0, 21
	ands r0, r1
	cmp r0, 0
	beq _080362B0
	ldr r0, =gUnknown_08D81610
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D81E2C
	b _08036382
	.pool
_080362B0:
	movs r0, 0x80
	lsls r0, 22
	ands r0, r1
	cmp r0, 0
	beq _080362D4
	ldr r0, =gUnknown_08D7F9F8
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D7FEC4
	b _08036382
	.pool
_080362D4:
	movs r0, 0x80
	lsls r0, 23
	ands r0, r1
	cmp r0, 0
	beq _080362F8
	ldr r0, =gUnknown_08D82608
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D82C70
	b _08036382
	.pool
_080362F8:
	movs r0, 0x8
	ands r1, r0
	cmp r1, 0
	beq _08036350
	ldr r2, =gTrainers
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x1]
	cmp r0, 0x20
	bne _08036334
	ldr r0, =gUnknown_08D820D4
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D824E4
	b _08036382
	.pool
_08036334:
	cmp r0, 0x26
	bne _08036350
	ldr r0, =gUnknown_08D820D4
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D824E4
	b _08036382
	.pool
_08036350:
	bl sav1_map_get_battletype
	lsls r0, 24
	cmp r0, 0
	bne _0803639C
	ldr r4, =gBattleTerrainTable
	ldr r5, =gBattleTerrain
	ldrb r1, [r5]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r1, r4, 0
	adds r1, 0x8
	adds r0, r1
	ldr r0, [r0]
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldrb r1, [r5]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r4, 0xC
	adds r0, r4
	ldr r0, [r0]
_08036382:
	ldr r1, =0x0600e000
	bl LZDecompressVram
	b _080363AC
	.pool
_0803639C:
	ldr r0, =gUnknown_08D820D4
	ldr r1, =0x06004000
	bl LZDecompressVram
	ldr r0, =gUnknown_08D824E4
	ldr r1, =0x0600e000
	bl LZDecompressVram
_080363AC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end LoadBattleEntryBackground

	thumb_func_start LoadChosenBattleElement
LoadChosenBattleElement: @ 80363C4
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	movs r4, 0
	cmp r0, 0x6
	bls _080363D2
	b _08036756
_080363D2:
	lsls r0, 2
	ldr r1, =_080363E0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080363E0:
	.4byte _080363FC
	.4byte _0803640C
	.4byte _08036424
	.4byte _08036434
	.4byte _0803652C
	.4byte _08036638
	.4byte _08036750
_080363FC:
	ldr r0, =gUnknown_08C00000
	movs r1, 0xC0
	lsls r1, 19
	bl LZDecompressVram
	b _08036758
	.pool
_0803640C:
	ldr r1, =gUnknown_08C00524
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	b _08036758
	.pool
_08036424:
	ldr r0, =gUnknown_08C004E0
	movs r1, 0
	movs r2, 0x40
	bl LoadCompressedPalette
	b _08036758
	.pool
_08036434:
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	ldr r0, =0x023f0902
	ands r0, r1
	cmp r0, 0
	bne _08036518
	movs r0, 0x80
	lsls r0, 21
	ands r0, r1
	cmp r0, 0
	beq _0803645C
	ldr r0, =gUnknown_08D7BB14
	b _0803651A
	.pool
_0803645C:
	movs r0, 0x8
	ands r1, r0
	cmp r1, 0
	beq _0803648C
	ldr r2, =gTrainers
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x1]
	cmp r0, 0x20
	beq _08036518
	cmp r0, 0x26
	bne _0803648C
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_0803648C:
	bl sav1_map_get_battletype
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x8
	bhi _080364CC
	lsls r0, 2
	ldr r1, =_080364A8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080364A8:
	.4byte _080364CC
	.4byte _08036518
	.4byte _080364E8
	.4byte _080364F0
	.4byte _080364F8
	.4byte _08036500
	.4byte _08036508
	.4byte _08036510
	.4byte _08036518
_080364CC:
	ldr r2, =gBattleTerrainTable
	ldr r0, =gBattleTerrain
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	b _0803651A
	.pool
_080364E8:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_080364F0:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_080364F8:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_08036500:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_08036508:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_08036510:
	ldr r0, =gUnknown_08D7CCD8
	b _0803651A
	.pool
_08036518:
	ldr r0, =gUnknown_08D7C440
_0803651A:
	ldr r1, =0x06008000
	bl LZDecompressVram
	b _08036758
	.pool
_0803652C:
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	ldr r0, =0x023f0902
	ands r0, r1
	cmp r0, 0
	beq _0803653A
	b _08036624
_0803653A:
	movs r0, 0x80
	lsls r0, 5
	ands r0, r1
	cmp r0, 0
	beq _08036568
	ldr r0, =gGameVersion
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _08036560
	ldr r0, =gUnknown_08D7C154
	b _08036626
	.pool
_08036560:
	ldr r0, =gUnknown_08D7A720
	b _08036626
	.pool
_08036568:
	movs r0, 0x8
	ands r1, r0
	cmp r1, 0
	beq _08036598
	ldr r2, =gTrainers
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x1]
	cmp r0, 0x20
	beq _08036624
	cmp r0, 0x26
	bne _08036598
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_08036598:
	bl sav1_map_get_battletype
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x8
	bhi _080365D8
	lsls r0, 2
	ldr r1, =_080365B4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080365B4:
	.4byte _080365D8
	.4byte _08036624
	.4byte _080365F4
	.4byte _080365FC
	.4byte _08036604
	.4byte _0803660C
	.4byte _08036614
	.4byte _0803661C
	.4byte _08036624
_080365D8:
	ldr r2, =gBattleTerrainTable
	ldr r0, =gBattleTerrain
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, 0x4
	adds r0, r2
	ldr r0, [r0]
	b _08036626
	.pool
_080365F4:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_080365FC:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_08036604:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_0803660C:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_08036614:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_0803661C:
	ldr r0, =gUnknown_08D7D2E0
	b _08036626
	.pool
_08036624:
	ldr r0, =gUnknown_08D7CA28
_08036626:
	ldr r1, =0x0600d000
	bl LZDecompressVram
	b _08036758
	.pool
_08036638:
	ldr r0, =gBattleTypeFlags
	ldr r1, [r0]
	ldr r0, =0x023f0902
	ands r0, r1
	cmp r0, 0
	beq _08036646
	b _08036740
_08036646:
	movs r0, 0x80
	lsls r0, 5
	ands r0, r1
	cmp r0, 0
	beq _08036674
	ldr r0, =gGameVersion
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _0803666C
	ldr r0, =gUnknown_08D7DF30
	b _08036742
	.pool
_0803666C:
	ldr r0, =gUnknown_08D7DEF4
	b _08036742
	.pool
_08036674:
	movs r0, 0x8
	ands r1, r0
	cmp r1, 0
	beq _080366AC
	ldr r2, =gTrainers
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x1]
	cmp r0, 0x20
	bne _080366A0
	ldr r0, =gUnknown_08D7DFC4
	b _08036742
	.pool
_080366A0:
	cmp r0, 0x26
	bne _080366AC
	ldr r0, =gUnknown_08D7E1F8
	b _08036742
	.pool
_080366AC:
	bl sav1_map_get_battletype
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x8
	bhi _080366EC
	lsls r0, 2
	ldr r1, =_080366C8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080366C8:
	.4byte _080366EC
	.4byte _08036708
	.4byte _08036710
	.4byte _08036718
	.4byte _08036720
	.4byte _08036728
	.4byte _08036730
	.4byte _08036738
	.4byte _08036740
_080366EC:
	ldr r2, =gBattleTerrainTable
	ldr r0, =gBattleTerrain
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, 0x10
	adds r0, r2
	ldr r0, [r0]
	b _08036742
	.pool
_08036708:
	ldr r0, =gUnknown_08D7DF88
	b _08036742
	.pool
_08036710:
	ldr r0, =gUnknown_08D7E060
	b _08036742
	.pool
_08036718:
	ldr r0, =gUnknown_08D7E000
	b _08036742
	.pool
_08036720:
	ldr r0, =gUnknown_08D7E0CC
	b _08036742
	.pool
_08036728:
	ldr r0, =gUnknown_08D7E11C
	b _08036742
	.pool
_08036730:
	ldr r0, =gUnknown_08D7E164
	b _08036742
	.pool
_08036738:
	ldr r0, =gUnknown_08D7E1A8
	b _08036742
	.pool
_08036740:
	ldr r0, =gUnknown_08D7C9EC
_08036742:
	movs r1, 0x20
	movs r2, 0x60
	bl LoadCompressedPalette
	b _08036758
	.pool
_08036750:
	bl ApplyPlayerChosenFrameToBattleMenu
	b _08036758
_08036756:
	movs r4, 0x1
_08036758:
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end LoadChosenBattleElement

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