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

	.syntax unified

	.text

	thumb_func_start sub_800DCB4
sub_800DCB4: @ 800DCB4
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r3, 0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0800DCD8
	ldr r5, =gUnknown_082ED470
	adds r2, r1, 0
_0800DCC4:
	adds r1, r4, r3
	ldrb r0, [r2]
	adds r0, r5
	ldrb r0, [r0]
	strb r0, [r1]
	adds r2, 0x1
	adds r3, 0x1
	ldrb r0, [r2]
	cmp r0, 0xFF
	bne _0800DCC4
_0800DCD8:
	adds r1, r4, r3
	movs r0, 0
	strb r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800DCB4

	thumb_func_start sub_800DCE8
sub_800DCE8: @ 800DCE8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r3, 0
	ldrb r0, [r1]
	cmp r0, 0
	beq _0800DD0C
	ldr r5, =gUnknown_082ED370
	adds r2, r1, 0
_0800DCF8:
	adds r1, r4, r3
	ldrb r0, [r2]
	adds r0, r5
	ldrb r0, [r0]
	strb r0, [r1]
	adds r2, 0x1
	adds r3, 0x1
	ldrb r0, [r2]
	cmp r0, 0
	bne _0800DCF8
_0800DD0C:
	adds r1, r4, r3
	movs r0, 0xFF
	strb r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800DCE8

	thumb_func_start sub_800DD1C
sub_800DD1C: @ 800DD1C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r6, 0
	ldr r0, =gUnknown_03007890
	ldr r4, [r0]
	ldrb r2, [r4, 0x2]
	ldrb r1, [r4]
	adds r7, r0, 0
	cmp r1, 0x1
	bne _0800DD72
	movs r3, 0
	ands r1, r2
	cmp r1, 0
	beq _0800DD4E
	cmp r5, 0x1
	bne _0800DD48
	ldrb r0, [r4, 0xA]
	b _0800DD8C
	.pool
_0800DD48:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
_0800DD4E:
	lsrs r2, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bhi _0800DD8A
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	beq _0800DD4E
	adds r0, r6, 0x1
	cmp r5, r0
	bne _0800DD48
_0800DD68:
	ldr r0, [r7]
	adds r0, 0xA
	adds r0, r3
	ldrb r0, [r0]
	b _0800DD8C
_0800DD72:
	movs r3, 0
	movs r1, 0x1
_0800DD76:
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _0800DD68
	lsrs r2, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _0800DD76
_0800DD8A:
	movs r0, 0
_0800DD8C:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_800DD1C

	thumb_func_start sub_800DD94
sub_800DD94: @ 800DD94
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r7, r0, 0
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	movs r4, 0
	ldr r0, =gSaveBlock2Ptr
	mov r8, r0
	adds r6, r7, 0x2
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0xA
_0800DDB2:
	adds r0, r6, r4
	adds r1, r5, r4
	ldrb r1, [r1]
	strb r1, [r0]
	adds r4, 0x1
	cmp r4, 0x1
	ble _0800DDB2
	movs r4, 0
	lsls r2, 7
	mov r12, r2
	adds r1, r7, 0x4
_0800DDC8:
	adds r0, r1, r4
	strb r3, [r0]
	asrs r3, 8
	adds r4, 0x1
	cmp r4, 0x3
	ble _0800DDC8
	mov r1, r8
	ldr r0, [r1]
	ldrb r0, [r0, 0x8]
	movs r6, 0x1
	movs r1, 0x1
	ands r1, r0
	ldrb r2, [r7, 0xB]
	movs r5, 0x2
	negs r5, r5
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r7, 0xB]
	movs r4, 0x7F
	mov r1, r9
	ands r1, r4
	ldrb r2, [r7, 0xA]
	movs r0, 0x80
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	ands r0, r4
	mov r1, r12
	orrs r0, r1
	strb r0, [r7, 0xA]
	ldrb r0, [r7]
	movs r1, 0x10
	negs r1, r1
	ands r1, r0
	movs r0, 0x2
	orrs r1, r0
	ldrb r2, [r7, 0x1]
	movs r0, 0x3D
	negs r0, r0
	ands r0, r2
	movs r2, 0xC
	orrs r0, r2
	strb r0, [r7, 0x1]
	movs r0, 0x11
	negs r0, r0
	ands r1, r0
	subs r0, 0x10
	ands r1, r0
	subs r0, 0x20
	ands r1, r0
	strb r1, [r7]
	ldr r0, =0x0000087f
	bl FlagGet
	lsls r0, 7
	ldrb r1, [r7]
	ands r4, r1
	orrs r4, r0
	strb r4, [r7]
	bl IsNationalPokedexEnabled
	ands r0, r6
	ldrb r1, [r7, 0x1]
	ands r5, r1
	orrs r5, r0
	strb r5, [r7, 0x1]
	ldr r0, =0x00000864
	bl FlagGet
	ands r6, r0
	lsls r6, 1
	ldrb r1, [r7, 0x1]
	movs r0, 0x3
	negs r0, r0
	ands r0, r1
	orrs r0, r6
	strb r0, [r7, 0x1]
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800DD94

	thumb_func_start sub_800DE7C
sub_800DE7C: @ 800DE7C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r7, r0, 0
	mov r8, r1
	lsls r2, 24
	lsrs r5, r2, 24
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x6]
	cmp r0, 0x1
	bne _0800DED8
	movs r0, 0x1
	mov r9, r0
	ldr r6, =gUnknown_03007890
	ldr r0, [r6]
	lsls r4, r5, 5
	adds r0, r4
	ldrh r0, [r0, 0x18]
	bl sub_8010454
	cmp r0, 0
	beq _0800DEB8
	ldr r1, [r6]
	ldrb r0, [r1, 0x7]
	asrs r0, r5
	mov r2, r9
	ands r0, r2
	cmp r0, 0
	bne _0800DEF0
_0800DEB8:
	adds r0, r7, 0
	movs r1, 0
	movs r2, 0xD
	bl memset
	mov r0, r8
	movs r1, 0
	movs r2, 0x8
	bl memset
	b _0800DF24
	.pool
_0800DED8:
	movs r0, 0
	mov r9, r0
	ldr r6, =gUnknown_03007890
	ldr r0, [r6]
	lsls r4, r5, 5
	adds r0, r4
	ldrh r0, [r0, 0x18]
	bl sub_8010454
	cmp r0, 0
	beq _0800DF10
	ldr r1, [r6]
_0800DEF0:
	adds r1, r4, r1
	adds r1, 0x1A
	adds r0, r7, 0
	movs r2, 0xD
	bl memcpy
	ldr r1, [r6]
	adds r1, r4, r1
	adds r1, 0x29
	mov r0, r8
	movs r2, 0x8
	bl memcpy
	b _0800DF24
	.pool
_0800DF10:
	adds r0, r7, 0
	movs r1, 0
	movs r2, 0xD
	bl memset
	mov r0, r8
	movs r1, 0
	movs r2, 0x8
	bl memset
_0800DF24:
	mov r0, r9
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_800DE7C

	thumb_func_start sub_800DF34
sub_800DF34: @ 800DF34
	push {r4-r7,lr}
	adds r3, r0, 0
	adds r5, r1, 0
	lsls r2, 24
	movs r7, 0
	ldr r6, =gUnknown_03007890
	ldr r0, [r6]
	lsrs r4, r2, 19
	adds r2, r0, r4
	ldrh r1, [r2, 0x18]
	ldr r0, =0x00007f7d
	cmp r1, r0
	bne _0800DF74
	adds r1, r2, 0
	adds r1, 0x1A
	adds r0, r3, 0
	movs r2, 0xD
	bl memcpy
	ldr r1, [r6]
	adds r1, r4, r1
	adds r1, 0x29
	adds r0, r5, 0
	movs r2, 0x8
	bl memcpy
	movs r7, 0x1
	b _0800DF88
	.pool
_0800DF74:
	adds r0, r3, 0
	movs r1, 0
	movs r2, 0xD
	bl memset
	adds r0, r5, 0
	movs r1, 0
	movs r2, 0x8
	bl memset
_0800DF88:
	adds r0, r7, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_800DF34

	thumb_func_start sub_800DF90
sub_800DF90: @ 800DF90
	push {r4,lr}
	adds r4, r1, 0
	ldr r1, =gUnknown_02022B14
	movs r2, 0xD
	bl memcpy
	ldr r1, =gUnknown_02022B22
	adds r0, r4, 0
	movs r2, 0x8
	bl memcpy
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800DF90

	thumb_func_start sub_800DFB4
sub_800DFB4: @ 800DFB4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 24
	lsrs r2, r1, 24
	cmp r3, 0
	bne _0800DFCA
	cmp r2, 0
	bne _0800DFCA
	movs r3, 0xE7
	movs r2, 0x8
_0800DFCA:
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0800E024
	ldr r0, =gUnknown_082ED5F0
	adds r1, r3, 0
	movs r3, 0
	bl CreateSprite
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =gSprites
	lsls r4, r5, 4
	adds r4, r5
	lsls r4, 2
	adds r4, r0
	ldr r0, =0x00001234
	strh r0, [r4, 0x3C]
	ldr r0, =gUnknown_082ED5E0
	ldrh r0, [r0, 0x6]
	bl GetSpriteTileStartByTag
	strh r0, [r4, 0x3A]
	adds r4, 0x3E
	ldrb r0, [r4]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r4]
	ldr r0, =gUnknown_02022B10
	strb r5, [r0]
	b _0800E06A
	.pool
_0800E024:
	ldr r0, =gUnknown_082ED5F0
	adds r1, r3, 0
	movs r3, 0
	bl CreateSprite
	ldr r4, =gUnknown_02022B10
	strb r0, [r4]
	ldr r5, =gSprites
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldr r1, =0x00001234
	strh r1, [r0, 0x3C]
	ldr r0, =gUnknown_082ED5E0
	ldrh r0, [r0, 0x6]
	bl GetSpriteTileStartByTag
	ldrb r2, [r4]
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	adds r1, r5
	strh r0, [r1, 0x3A]
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
_0800E06A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800DFB4

	thumb_func_start sub_800E084
sub_800E084: @ 800E084
	push {r4,lr}
	ldr r4, =gSprites
	ldr r3, =gUnknown_02022B10
	ldrb r1, [r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, r0, r4
	movs r0, 0x3C
	ldrsh r1, [r2, r0]
	ldr r0, =0x00001234
	cmp r1, r0
	bne _0800E0CA
	movs r0, 0
	strh r0, [r2, 0x3C]
	ldrb r1, [r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
	ldr r3, =gMain
	movs r0, 0x84
	lsls r0, 3
	adds r3, r0
	ldr r0, =gDummyOamData
	ldr r1, [r0]
	ldr r2, [r0, 0x4]
	str r1, [r3]
	str r2, [r3, 0x4]
	ldr r1, =0x070003e8
	movs r2, 0x4
	bl CpuSet
_0800E0CA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E084

	thumb_func_start sub_800E0E8
sub_800E0E8: @ 800E0E8
	push {r4,lr}
	ldr r4, =gUnknown_082ED5E0
	ldrh r0, [r4, 0x6]
	bl GetSpriteTileStartByTag
	lsls r0, 16
	ldr r1, =0xffff0000
	cmp r0, r1
	bne _0800E100
	adds r0, r4, 0
	bl LoadCompressedObjectPic
_0800E100:
	ldr r0, =gUnknown_082ED5E8
	bl LoadSpritePalette
	ldr r1, =gUnknown_02022B10
	movs r0, 0xFF
	strb r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E0E8

	thumb_func_start sub_800E124
sub_800E124: @ 800E124
	push {r4,lr}
	ldr r1, =gUnknown_03007890
	ldr r0, [r1]
	ldrb r2, [r0, 0x2]
	movs r3, 0
	movs r4, 0x1
_0800E130:
	adds r0, r2, 0
	ands r0, r4
	cmp r0, 0
	beq _0800E148
	ldr r0, [r1]
	adds r0, 0xA
	adds r0, r3
	ldrb r0, [r0]
	b _0800E156
	.pool
_0800E148:
	lsrs r2, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _0800E130
	movs r0, 0
_0800E156:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_800E124

	thumb_func_start sub_800E15C
sub_800E15C: @ 800E15C
	push {lr}
	adds r2, r0, 0
	movs r3, 0x32
	ldrsh r0, [r2, r3]
	cmp r0, r1
	beq _0800E170
	movs r0, 0
	strh r1, [r2, 0x32]
	strh r0, [r2, 0x34]
	strh r0, [r2, 0x36]
_0800E170:
	pop {r0}
	bx r0
	thumb_func_end sub_800E15C

	thumb_func_start sub_800E174
sub_800E174: @ 800E174
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r1, =gUnknown_02022B10
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _0800E184
	b _0800E346
_0800E184:
	ldr r2, =gSprites
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, r0, r2
	movs r0, 0x3C
	ldrsh r1, [r2, r0]
	ldr r0, =0x00001234
	cmp r1, r0
	beq _0800E19C
	b _0800E346
_0800E19C:
	adds r6, r2, 0
	movs r5, 0xFF
	movs r4, 0
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0800E1F6
	adds r7, r6, 0
	adds r7, 0x28
	movs r1, 0x29
	adds r1, r6
	mov r8, r1
	b _0800E1E6
	.pool
_0800E1C8:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r4, 0
	bl sub_800DD1C
	lsls r0, 24
	lsrs r0, 24
	cmp r5, r0
	bcc _0800E1E6
	adds r0, r4, 0
	bl sub_800DD1C
	lsls r0, 24
	lsrs r5, r0, 24
_0800E1E6:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x1
	cmp r4, r0
	blt _0800E1C8
	b _0800E208
_0800E1F6:
	bl sub_800E124
	lsls r0, 24
	lsrs r5, r0, 24
	adds r7, r6, 0
	adds r7, 0x28
	movs r2, 0x29
	adds r2, r6
	mov r8, r2
_0800E208:
	bl sub_8012224
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0800E218
	movs r0, 0x4
	b _0800E246
_0800E218:
	cmp r5, 0x18
	bhi _0800E220
	movs r0, 0x3
	b _0800E246
_0800E220:
	adds r0, r5, 0
	subs r0, 0x19
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x65
	bhi _0800E230
	movs r0, 0x2
	b _0800E246
_0800E230:
	adds r0, r5, 0
	subs r0, 0x7F
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x65
	bhi _0800E240
	movs r0, 0x1
	b _0800E246
_0800E240:
	cmp r5, 0xE4
	bls _0800E248
	movs r0, 0
_0800E246:
	strh r0, [r6, 0x2E]
_0800E248:
	movs r3, 0x2E
	ldrsh r1, [r6, r3]
	movs r2, 0x30
	ldrsh r0, [r6, r2]
	cmp r1, r0
	beq _0800E25E
	adds r0, r6, 0
	bl sub_800E15C
	ldrh r0, [r6, 0x2E]
	strh r0, [r6, 0x30]
_0800E25E:
	movs r0, 0x32
	ldrsh r1, [r6, r0]
	ldr r2, [r6, 0x8]
	lsls r1, 2
	adds r1, r2
	movs r3, 0x36
	ldrsh r0, [r6, r3]
	ldr r1, [r1]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	lsls r0, 10
	lsrs r0, 26
	movs r3, 0x34
	ldrsh r1, [r6, r3]
	cmp r0, r1
	bge _0800E2AC
	ldrh r0, [r6, 0x36]
	adds r0, 0x1
	movs r3, 0
	strh r0, [r6, 0x36]
	strh r3, [r6, 0x34]
	movs r1, 0x32
	ldrsh r0, [r6, r1]
	lsls r0, 2
	adds r0, r2
	movs r2, 0x36
	ldrsh r1, [r6, r2]
	ldr r0, [r0]
	lsls r1, 2
	adds r1, r0
	movs r0, 0
	ldrsh r1, [r1, r0]
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	bne _0800E2B2
	strh r3, [r6, 0x36]
	b _0800E2B2
_0800E2AC:
	ldrh r0, [r6, 0x34]
	adds r0, 0x1
	strh r0, [r6, 0x34]
_0800E2B2:
	ldr r4, =gMain
	movs r1, 0x84
	lsls r1, 3
	adds r0, r4, r1
	ldr r1, =gUnknown_082ED570
	ldr r2, [r1, 0x4]
	ldr r1, [r1]
	str r1, [r0]
	str r2, [r0, 0x4]
	movs r3, 0x20
	ldrsh r2, [r6, r3]
	movs r1, 0
	ldrsb r1, [r7, r1]
	adds r2, r1
	ldr r1, =0x00000422
	adds r5, r4, r1
	ldr r3, =0x000001ff
	adds r1, r3, 0
	ands r2, r1
	ldrh r3, [r5]
	ldr r1, =0xfffffe00
	ands r1, r3
	orrs r1, r2
	strh r1, [r5]
	ldrh r1, [r6, 0x22]
	mov r2, r8
	ldrb r2, [r2]
	adds r1, r2
	strb r1, [r0]
	ldrb r2, [r6, 0x5]
	ldr r3, =0x00000425
	adds r5, r4, r3
	lsrs r2, 4
	lsls r2, 4
	ldrb r3, [r5]
	movs r1, 0xF
	ands r1, r3
	orrs r1, r2
	strb r1, [r5]
	movs r1, 0x32
	ldrsh r2, [r6, r1]
	ldr r1, [r6, 0x8]
	lsls r2, 2
	adds r2, r1
	movs r3, 0x36
	ldrsh r1, [r6, r3]
	ldr r2, [r2]
	lsls r1, 2
	adds r1, r2
	ldrh r2, [r1]
	ldrh r6, [r6, 0x3A]
	adds r2, r6
	ldr r1, =0x00000424
	adds r4, r1
	ldr r3, =0x000003ff
	adds r1, r3, 0
	ands r2, r1
	ldrh r3, [r4]
	ldr r1, =0xfffffc00
	ands r1, r3
	orrs r1, r2
	strh r1, [r4]
	ldr r1, =0x070003e8
	movs r2, 0x4
	bl CpuSet
	bl sub_8011A74
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0800E346
	bl sub_800E084
_0800E346:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E174

	thumb_func_start sub_800E378
sub_800E378: @ 800E378
	push {lr}
	stm r0!, {r1}
	adds r1, r2, 0
	bl StringCopy
	pop {r0}
	bx r0
	thumb_func_end sub_800E378

	thumb_func_start sub_800E388
sub_800E388: @ 800E388
	push {lr}
	adds r2, r0, 0
	movs r1, 0
_0800E38E:
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800E39A
	movs r0, 0x1
	b _0800E3A2
_0800E39A:
	adds r1, 0x1
	cmp r1, 0x7
	ble _0800E38E
	movs r0, 0
_0800E3A2:
	pop {r1}
	bx r1
	thumb_func_end sub_800E388

	thumb_func_start sub_800E3A8
sub_800E3A8: @ 800E3A8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	ldr r0, =gWirelessCommType
	ldrb r0, [r0]
	cmp r0, 0
	bne _0800E3BE
	b _0800E520
_0800E3BE:
	movs r0, 0xF0
	bl AllocZeroed
	str r0, [sp, 0x14]
	movs r4, 0
	b _0800E434
	.pool
_0800E3D0:
	lsls r2, r4, 2
	mov r0, sp
	adds r1, r0, r2
	movs r0, 0x1
	negs r0, r0
	str r0, [r1]
	movs r5, 0
	mov r8, r2
	lsls r0, r4, 3
	adds r1, r4, 0x1
	mov r9, r1
	subs r0, r4
	lsls r0, 2
	str r0, [sp, 0x1C]
	ldr r7, =gLinkPlayers + 8
	mov r10, r7
	ldr r6, =0x00003b98
	movs r4, 0
	mov r0, r10
	subs r0, 0x4
	ldr r1, [sp, 0x1C]
	adds r3, r1, r0
_0800E3FC:
	ldrh r1, [r3]
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r7, =0x00003b98
	adds r0, r2, r7
	adds r0, r4
	ldr r0, [r0]
	cmp r1, r0
	bne _0800E428
	adds r1, r2, r6
	adds r1, 0x4
	ldr r0, [sp, 0x1C]
	add r0, r10
	str r3, [sp, 0x18]
	bl StringCompare
	ldr r3, [sp, 0x18]
	cmp r0, 0
	bne _0800E428
	mov r0, sp
	add r0, r8
	str r5, [r0]
_0800E428:
	adds r6, 0xC
	adds r4, 0xC
	adds r5, 0x1
	cmp r5, 0x13
	ble _0800E3FC
	mov r4, r9
_0800E434:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	blt _0800E3D0
	movs r0, 0
	mov r8, r0
	movs r4, 0
	mov r7, sp
	movs r5, 0
	ldr r6, [sp, 0x14]
	b _0800E4AC
	.pool
_0800E45C:
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	beq _0800E4A6
	ldr r2, =gLinkPlayers
	adds r0, r5, r2
	ldrh r0, [r0, 0x1A]
	cmp r0, 0x1
	beq _0800E4A6
	adds r0, r2, 0x4
	adds r0, r5, r0
	ldrh r1, [r0]
	adds r2, 0x8
	adds r2, r5, r2
	adds r0, r6, 0
	bl sub_800E378
	ldr r2, [r7]
	cmp r2, 0
	blt _0800E4A0
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	ldr r1, =0x00003b9c
	adds r0, r1
	movs r1, 0
	movs r2, 0x8
	bl memset
_0800E4A0:
	adds r6, 0xC
	movs r0, 0x1
	add r8, r0
_0800E4A6:
	adds r7, 0x4
	adds r5, 0x1C
	adds r4, 0x1
_0800E4AC:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	blt _0800E45C
	movs r4, 0
	ldr r1, =gSaveBlock1Ptr
	mov r9, r1
	ldr r6, =0x00003b98
	movs r7, 0
	mov r1, r8
	lsls r0, r1, 1
	add r0, r8
	lsls r0, 2
	ldr r1, [sp, 0x14]
	adds r5, r0, r1
_0800E4CE:
	mov r1, r9
	ldr r0, [r1]
	adds r0, r6
	adds r0, 0x4
	bl sub_800E388
	cmp r0, 0
	beq _0800E500
	mov r0, r9
	ldr r2, [r0]
	ldr r1, =0x00003b98
	adds r0, r2, r1
	adds r0, r7
	ldr r1, [r0]
	adds r2, r6
	adds r2, 0x4
	adds r0, r5, 0
	bl sub_800E378
	adds r5, 0xC
	movs r0, 0x1
	add r8, r0
	mov r1, r8
	cmp r1, 0x13
	bgt _0800E50A
_0800E500:
	adds r6, 0xC
	adds r7, 0xC
	adds r4, 0x1
	cmp r4, 0x13
	ble _0800E4CE
_0800E50A:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r7, =0x00003b98
	adds r0, r7
	ldr r1, [sp, 0x14]
	movs r2, 0xF0
	bl memcpy
	ldr r0, [sp, 0x14]
	bl Free
_0800E520:
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E3A8

	thumb_func_start sub_800E540
sub_800E540: @ 800E540
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	mov r9, r1
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	movs r7, 0
	ldr r6, =gSaveBlock1Ptr
	ldr r4, =0x00003b98
	movs r5, 0
_0800E558:
	ldr r0, [r6]
	adds r0, r4
	adds r0, 0x4
	mov r1, r9
	bl StringCompare
	cmp r0, 0
	bne _0800E584
	ldr r0, [r6]
	ldr r1, =0x00003b98
	adds r0, r1
	adds r0, r5
	ldr r0, [r0]
	cmp r0, r8
	bne _0800E584
	movs r0, 0x1
	b _0800E59E
	.pool
_0800E584:
	ldr r0, [r6]
	adds r0, r4
	adds r0, 0x4
	bl sub_800E388
	cmp r0, 0
	beq _0800E59C
	adds r4, 0xC
	adds r5, 0xC
	adds r7, 0x1
	cmp r7, 0x13
	ble _0800E558
_0800E59C:
	movs r0, 0
_0800E59E:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_800E540

	thumb_func_start sub_800E5AC
sub_800E5AC: @ 800E5AC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	ldr r0, =0x00003b98
	mov r8, r0
	movs r7, 0
	mov r6, r8
	movs r5, 0
	movs r4, 0x13
_0800E5C0:
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	mov r2, r8
	adds r0, r1, r2
	adds r0, r5
	str r7, [r0]
	mov r0, sp
	strh r7, [r0]
	adds r1, r6
	adds r1, 0x4
	ldr r2, =0x01000004
	bl CpuSet
	adds r6, 0xC
	adds r5, 0xC
	subs r4, 0x1
	cmp r4, 0
	bge _0800E5C0
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E5AC

	thumb_func_start nullsub_5
nullsub_5: @ 800E5FC
	bx lr
	thumb_func_end nullsub_5

	thumb_func_start nullsub_13
nullsub_13: @ 800E600
	bx lr
	thumb_func_end nullsub_13

	thumb_func_start sub_800E604
sub_800E604: @ 800E604
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	ldr r6, =gUnknown_03005000
	adds r5, r6, 0
	adds r5, 0xEE
	ldrb r4, [r5]
	mov r0, sp
	movs r7, 0
	strh r7, [r0]
	ldr r2, =0x0100067a
	adds r1, r6, 0
	bl CpuSet
	ldrb r0, [r5]
	strb r4, [r5]
	movs r0, 0xFF
	strb r0, [r6, 0xC]
	ldrb r0, [r5]
	cmp r0, 0x4
	beq _0800E636
	ldrb r0, [r5]
	strb r7, [r5]
_0800E636:
	mov r7, sp
	adds r7, 0x2
	add r0, sp, 0x4
	mov r8, r0
	movs r0, 0x6
	add r0, sp
	mov r9, r0
	adds r5, r6, 0
	adds r5, 0x80
	movs r4, 0x4
_0800E64A:
	adds r0, r5, 0
	bl sub_800FCC4
	adds r5, 0x14
	subs r4, 0x1
	cmp r4, 0
	bge _0800E64A
	movs r5, 0
	ldr r4, =gUnknown_0300506C
	adds r0, r4, 0
	bl sub_800FCC4
	adds r0, r4, 0
	adds r0, 0xB8
	bl sub_800D6C8
	ldr r0, =0x0000097c
	adds r4, r0
	adds r0, r4, 0
	bl sub_800D724
	strh r5, [r7]
	ldr r1, =gSendCmd
	ldr r2, =0x01000008
	adds r0, r7, 0
	bl CpuSet
	mov r0, r8
	strh r5, [r0]
	ldr r1, =gRecvCmds
	ldr r2, =0x01000028
	bl CpuSet
	mov r0, r9
	strh r5, [r0]
	ldr r1, =gLinkPlayers
	ldr r2, =0x01000046
	bl CpuSet
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E604

	thumb_func_start sub_800E6D0
sub_800E6D0: @ 800E6D0
	push {r4-r6,lr}
	ldr r4, =gIntrTable
	ldr r5, [r4, 0x4]
	ldr r6, [r4, 0x8]
	bl sub_800E700
	bl rfu_REQ_stopMode
	bl rfu_waitREQComplete
	ldr r1, =0x04000208
	movs r0, 0
	strh r0, [r1]
	str r5, [r4, 0x4]
	str r6, [r4, 0x8]
	movs r0, 0x1
	strh r0, [r1]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E6D0

	thumb_func_start sub_800E700
sub_800E700: @ 800E700
	push {r4,lr}
	ldr r0, =gUnknown_03004190
	ldr r1, =0x00000e64
	ldr r4, =gIntrTable + 0x4
	adds r2, r4, 0
	movs r3, 0x1
	bl rfu_initializeAPI
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	bne _0800E732
	ldr r0, =gLinkType
	strh r1, [r0]
	bl sub_800AAF4
	movs r0, 0
	bl sub_80111B0
	bl sub_800E604
	adds r1, r4, 0x4
	movs r0, 0x3
	bl rfu_setTimerInterrupt
_0800E732:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E700

	thumb_func_start sub_800E748
sub_800E748: @ 800E748
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_8010750
	ldr r0, =gUnknown_03005000
	ldrh r0, [r0, 0x4]
	cmp r0, 0x12
	bls _0800E75C
	b _0800E862
_0800E75C:
	lsls r0, 2
	ldr r1, =_0800E770
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0800E770:
	.4byte _0800E7BC
	.4byte _0800E862
	.4byte _0800E7E4
	.4byte _0800E862
	.4byte _0800E814
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E862
	.4byte _0800E828
_0800E7BC:
	ldr r0, =gUnknown_02022B2C
	bl sub_800BFCC
	ldr r0, =gUnknown_03005000
	movs r2, 0x1
	strh r2, [r0, 0x4]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	strh r2, [r0, 0xA]
	b _0800E862
	.pool
_0800E7E4:
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	ldr r3, =gUnknown_082ED6E0
	movs r1, 0
	movs r2, 0xF0
	bl sub_800C054
	movs r0, 0x3
	strh r0, [r4, 0x4]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0x6
	strh r1, [r0, 0xA]
	b _0800E862
	.pool
_0800E814:
	movs r0, 0
	bl sub_800C27C
	ldr r1, =gUnknown_03005000
	movs r0, 0x5
	strh r0, [r1, 0x4]
	b _0800E862
	.pool
_0800E828:
	ldr r4, =gUnknown_03005000
	ldr r0, =0x00000cdb
	adds r1, r4, r0
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r0, =sub_800EDBC
	bl sub_800D52C
	bl sub_800EAB4
	bl sub_800EAFC
	movs r0, 0x14
	strh r0, [r4, 0x4]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	strh r1, [r0, 0xA]
	ldr r0, =sub_801084C
	movs r1, 0x5
	bl CreateTask
	adds r0, r5, 0
	bl DestroyTask
_0800E862:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E748

	thumb_func_start sub_800E87C
sub_800E87C: @ 800E87C
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_082ED6A5
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_800E87C

	thumb_func_start sub_800E88C
sub_800E88C: @ 800E88C
	push {r4-r7,lr}
	adds r2, r0, 0
	adds r5, r1, 0
	movs r4, 0x1
	adds r1, r2, 0
	movs r6, 0
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	bne _0800E8CC
	movs r3, 0
	movs r5, 0x1
	ldr r1, =gUnknown_03005CDE
_0800E8A6:
	adds r0, r2, 0
	ands r0, r5
	cmp r0, 0
	beq _0800E8B8
	adds r0, r3, r1
	strb r4, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
_0800E8B8:
	asrs r2, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _0800E8A6
	b _0800E942
	.pool
_0800E8CC:
	movs r3, 0
	mvns r0, r1
	mov r12, r0
	movs r7, 0x1
	ldr r4, =gUnknown_03005CDE
_0800E8D6:
	adds r2, r1, 0
	ands r2, r7
	cmp r2, 0
	bne _0800E8E2
	adds r0, r3, r4
	strb r2, [r0]
_0800E8E2:
	asrs r1, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _0800E8D6
	movs r4, 0x4
	ldr r0, =gUnknown_03005CDE
	ldrb r7, [r0]
_0800E8F4:
	movs r3, 0
	subs r1, r4, 0x1
	cmp r7, r4
	beq _0800E910
	ldr r2, =gUnknown_03005CDE
_0800E8FE:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bhi _0800E910
	adds r0, r3, r2
	ldrb r0, [r0]
	cmp r0, r4
	bne _0800E8FE
_0800E910:
	cmp r3, 0x4
	bne _0800E916
	adds r6, r4, 0
_0800E916:
	lsls r0, r1, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _0800E8F4
	mov r0, r12
	ands r5, r0
	movs r3, 0
	movs r2, 0x1
	ldr r1, =gUnknown_03005CDE
_0800E928:
	adds r0, r5, 0
	ands r0, r2
	cmp r0, 0
	beq _0800E936
	adds r0, r3, r1
	strb r6, [r0]
	adds r6, 0x1
_0800E936:
	asrs r5, 1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _0800E928
_0800E942:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E88C

	thumb_func_start sub_800E94C
sub_800E94C: @ 800E94C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =gUnknown_03005000
	ldrh r3, [r0, 0x4]
	adds r7, r0, 0
	cmp r3, 0xC
	bls _0800E95E
	b _0800EA9A
_0800E95E:
	lsls r0, r3, 2
	ldr r1, =_0800E970
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0800E970:
	.4byte _0800E9A4
	.4byte _0800EA9A
	.4byte _0800EA9A
	.4byte _0800EA9A
	.4byte _0800EA9A
	.4byte _0800EA9A
	.4byte _0800E9BC
	.4byte _0800EA9A
	.4byte _0800EA9A
	.4byte _0800E9E4
	.4byte _0800EA9A
	.4byte _0800E9F8
	.4byte _0800EA3C
_0800E9A4:
	ldr r0, =gUnknown_082ED608
	bl sub_800BFCC
	ldr r0, =gUnknown_03005000
	movs r2, 0x1
	strh r2, [r0, 0x4]
	b _0800E9CC
	.pool
_0800E9BC:
	ldrb r0, [r7, 0xC]
	ldr r3, =gUnknown_082ED6E0
	movs r1, 0
	movs r2, 0xF0
	bl sub_800C054
	movs r2, 0x7
	strh r2, [r7, 0x4]
_0800E9CC:
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	strh r2, [r0, 0xA]
	b _0800EA9A
	.pool
_0800E9E4:
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	movs r0, 0xA
	strh r0, [r1, 0xA]
	b _0800EA9A
	.pool
_0800E9F8:
	bl sub_80107A0
	cmp r0, 0x6
	beq _0800EA1C
	cmp r0, 0x6
	bgt _0800EA0A
	cmp r0, 0x5
	beq _0800EA10
	b _0800EA9A
_0800EA0A:
	cmp r0, 0x9
	beq _0800EA1C
	b _0800EA9A
_0800EA10:
	ldr r1, =gUnknown_03005000
	movs r0, 0xC
	strh r0, [r1, 0x4]
	b _0800EA9A
	.pool
_0800EA1C:
	bl sub_800D630
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000ce4
	adds r0, r1
	movs r1, 0x2
	strb r1, [r0]
	adds r0, r6, 0
	bl DestroyTask
	b _0800EA9A
	.pool
_0800EA3C:
	ldr r0, =0x00000c3e
	adds r4, r7, r0
	ldrb r0, [r4]
	movs r5, 0x80
	lsls r5, 17
	lsls r5, r0
	lsrs r5, 24
	ldrb r1, [r4]
	movs r0, 0xC
	bl rfu_clearSlot
	ldrb r1, [r4]
	ldr r0, =0x00000c3f
	adds r2, r7, r0
	movs r0, 0x10
	movs r3, 0x46
	bl rfu_setRecvBuffer
	adds r1, r7, 0
	adds r1, 0x4C
	adds r0, r5, 0
	movs r2, 0xE
	bl rfu_UNI_setSendData
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	strh r1, [r0, 0xA]
	adds r0, r6, 0
	bl DestroyTask
	ldr r4, =gUnknown_02022B44
	ldrb r0, [r4, 0xF]
	cmp r0, 0
	bne _0800EA92
	bl sub_801227C
	ldrb r0, [r4, 0xF]
	adds r0, 0x1
	strb r0, [r4, 0xF]
_0800EA92:
	ldr r0, =sub_801084C
	movs r1, 0x5
	bl CreateTask
_0800EA9A:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800E94C

	thumb_func_start sub_800EAB4
sub_800EAB4: @ 800EAB4
	push {r4,r5,lr}
	ldr r0, =gUnknown_03004140
	ldrb r5, [r0]
	movs r4, 0
_0800EABC:
	movs r0, 0x1
	ands r0, r5
	cmp r0, 0
	beq _0800EAE0
	lsls r2, r4, 3
	subs r2, r4
	lsls r2, 1
	ldr r0, =gUnknown_03005014
	adds r2, r0
	movs r0, 0x10
	adds r1, r4, 0
	movs r3, 0xE
	bl rfu_setRecvBuffer
	movs r0, 0x3
	adds r1, r4, 0
	bl rfu_clearSlot
_0800EAE0:
	lsrs r5, 1
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _0800EABC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EAB4

	thumb_func_start sub_800EAFC
sub_800EAFC: @ 800EAFC
	push {r4-r6,lr}
	ldr r0, =gUnknown_03004140
	ldrb r5, [r0]
	ldr r4, =gUnknown_03005C87
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0x46
	bl rfu_UNI_setSendData
	adds r0, r5, 0
	bl sub_800E87C
	ldr r1, =0xfffff379
	adds r6, r4, r1
	adds r1, r4, 0
	adds r1, 0x53
	strb r0, [r1]
	adds r4, 0x5B
	strb r5, [r4]
	movs r1, 0x1
	negs r1, r1
	adds r0, r5, 0
	bl sub_800E88C
	movs r0, 0x1
	strb r0, [r6, 0xC]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EAFC

	thumb_func_start sub_800EB44
sub_800EB44: @ 800EB44
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x54
	bne _0800EB78
	bl sub_8011A74
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _0800EB78
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0]
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
	movs r0, 0
	movs r1, 0
	bl sub_8011A64
_0800EB78:
	ldr r0, =gUnknown_03005000
	ldrh r2, [r0, 0x4]
	adds r6, r0, 0
	cmp r2, 0x12
	bls _0800EB84
	b _0800ECF4
_0800EB84:
	lsls r0, r2, 2
	ldr r1, =_0800EB9C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0800EB9C:
	.4byte _0800EBE8
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800ECF4
	.4byte _0800EC38
	.4byte _0800EC98
	.4byte _0800ECF4
	.4byte _0800ECAC
	.4byte _0800EC10
	.4byte _0800ECF4
_0800EBE8:
	ldr r0, =gUnknown_02022B2C
	bl sub_800BFCC
	ldr r0, =gUnknown_03005000
	movs r2, 0x1
	strh r2, [r0, 0x4]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	strh r2, [r0, 0xA]
	b _0800ECF4
	.pool
_0800EC10:
	ldr r3, =gUnknown_082ED6E0
	movs r0, 0x2
	movs r1, 0
	movs r2, 0xF0
	bl sub_800C054
	ldr r0, =sub_800ED34
	bl sub_800D52C
	ldr r1, =gUnknown_03005000
	movs r0, 0x12
	strh r0, [r1, 0x4]
	b _0800ECF4
	.pool
_0800EC38:
	ldr r1, =0x00000c3e
	adds r0, r6, r1
	ldrb r1, [r0]
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r1
	lsrs r0, 24
	adds r1, r6, 0
	adds r1, 0x4C
	movs r2, 0xE
	bl rfu_UNI_setSendData
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _0800ECF4
	strb r0, [r6, 0xC]
	adds r0, r5, 0
	bl DestroyTask
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	movs r2, 0x16
	ldrsh r0, [r1, r2]
	cmp r0, 0
	beq _0800EC88
	ldr r0, =sub_8010D0C
	movs r1, 0x1
	bl CreateTask
	b _0800ECF4
	.pool
_0800EC88:
	ldr r0, =sub_801084C
	movs r1, 0x5
	bl CreateTask
	b _0800ECF4
	.pool
_0800EC98:
	movs r0, 0
	bl sub_800C27C
	ldr r1, =gUnknown_03005000
	movs r0, 0xF
	strh r0, [r1, 0x4]
	b _0800ECF4
	.pool
_0800ECAC:
	ldr r0, =0x00000cdb
	adds r1, r6, r0
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r0, =sub_800EDBC
	bl sub_800D52C
	movs r0, 0x1
	bl sub_8011068
	bl sub_800EAB4
	bl sub_800EAFC
	movs r0, 0x14
	strh r0, [r6, 0x4]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	strh r1, [r0, 0xA]
	movs r4, 0x1
	strb r4, [r6, 0xC]
	ldr r0, =sub_801084C
	movs r1, 0x5
	bl CreateTask
	ldr r1, =0x00000ce8
	adds r0, r6, r1
	strb r4, [r0]
	adds r0, r5, 0
	bl DestroyTask
_0800ECF4:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EB44

	thumb_func_start sub_800ED10
sub_800ED10: @ 800ED10
	push {lr}
	ldr r3, =gUnknown_082ED6E0
	movs r0, 0x1
	movs r1, 0
	movs r2, 0xF0
	bl sub_800C054
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800ED10

	thumb_func_start sub_800ED28
sub_800ED28: @ 800ED28
	push {lr}
	movs r0, 0
	bl sub_800C27C
	pop {r0}
	bx r0
	thumb_func_end sub_800ED28

	thumb_func_start sub_800ED34
sub_800ED34: @ 800ED34
	push {r4,lr}
	ldr r0, =gUnknown_03005000
	movs r2, 0
	movs r1, 0xD
	adds r0, 0x59
_0800ED3E:
	strb r2, [r0]
	subs r0, 0x1
	subs r1, 0x1
	cmp r1, 0
	bge _0800ED3E
	bl rfu_REQ_recvData
	bl rfu_waitREQComplete
	ldr r1, =gUnknown_03007870
	ldr r3, =gUnknown_03005000
	ldr r0, =0x00000c3e
	adds r4, r3, r0
	ldrb r0, [r4]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	ldrb r0, [r0, 0x12]
	cmp r0, 0
	beq _0800ED9A
	movs r2, 0xCD
	lsls r2, 4
	adds r1, r3, r2
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r1, 0x92
	lsls r1, 1
	adds r0, r3, r1
	ldr r2, =0x00000c3f
	adds r1, r3, r2
	bl sub_800D7D8
	ldr r1, =gUnknown_02022B44
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	bl sub_800F048
	ldrb r0, [r4]
	bl rfu_UNI_readySendData
	ldrb r0, [r4]
	bl rfu_UNI_clearRecvNewDataFlag
_0800ED9A:
	movs r0, 0x1
	bl rfu_REQ_sendData_wrapper
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800ED34

	thumb_func_start sub_800EDBC
sub_800EDBC: @ 800EDBC
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cdb
	adds r0, r1
	ldrb r1, [r0]
	movs r1, 0x1
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_800EDBC

	thumb_func_start sub_800EDD4
sub_800EDD4: @ 800EDD4
	push {r4-r6,lr}
	bl sub_800C048
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	bne _0800EDF0
	ldr r0, =sub_800E748
	b _0800EDF6
	.pool
_0800EDF0:
	cmp r0, 0
	bne _0800EE18
	ldr r0, =sub_800E94C
_0800EDF6:
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0800EE38
	adds r0, r4, 0
	adds r0, 0x67
	ldrb r0, [r0]
	bl DestroyTask
	bl sub_800E604
	b _0800EE38
	.pool
_0800EE18:
	cmp r0, 0x2
	bne _0800EE38
	ldr r0, =sub_800EB44
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0800EE38
	adds r0, r4, 0
	adds r0, 0x67
	ldrb r0, [r0]
	bl DestroyTask
	bl sub_800E604
_0800EE38:
	movs r5, 0
	ldr r6, =gUnknown_082ED7E0
_0800EE3C:
	lsls r0, r5, 2
	adds r0, r6
	ldr r4, [r0]
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0800EE5E
	adds r0, r4, 0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_0800EE5E:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x2
	bls _0800EE3C
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EDD4

	thumb_func_start sub_800EE78
sub_800EE78: @ 800EE78
	push {lr}
	ldr r0, =sub_800E748
	movs r1, 0x1
	bl CreateTask
	ldr r1, =gUnknown_03005000
	adds r1, 0x67
	strb r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EE78

	thumb_func_start sub_800EE94
sub_800EE94: @ 800EE94
	push {lr}
	ldr r1, =gUnknown_03005000
	ldrh r0, [r1, 0x4]
	cmp r0, 0x7
	bne _0800EEB4
	ldr r2, =0x00000ccd
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800EEB4
	movs r0, 0x1
	b _0800EEB6
	.pool
_0800EEB4:
	movs r0, 0
_0800EEB6:
	pop {r1}
	bx r1
	thumb_func_end sub_800EE94

	thumb_func_start sub_800EEBC
sub_800EEBC: @ 800EEBC
	push {r4,lr}
	ldr r4, =gUnknown_03005000
	ldrh r0, [r4, 0x4]
	cmp r0, 0x7
	bne _0800EEF8
	ldr r0, =gUnknown_03007890
	ldr r1, [r0]
	ldr r2, =0x00000c3d
	adds r0, r4, r2
	ldrb r0, [r0]
	lsls r0, 5
	adds r1, r0
	ldrh r0, [r1, 0x14]
	movs r1, 0xF0
	bl sub_800C12C
	lsls r0, 24
	cmp r0, 0
	bne _0800EEF8
	movs r0, 0x9
	strh r0, [r4, 0x4]
	movs r0, 0x1
	b _0800EEFA
	.pool
_0800EEF8:
	movs r0, 0
_0800EEFA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_800EEBC

	thumb_func_start sub_800EF00
sub_800EF00: @ 800EF00
	push {lr}
	ldr r0, =sub_800E94C
	movs r1, 0x1
	bl CreateTask
	ldr r1, =gUnknown_03005000
	adds r1, 0x67
	strb r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EF00

	thumb_func_start sub_800EF1C
sub_800EF1C: @ 800EF1C
	push {lr}
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0]
	cmp r0, 0
	bne _0800EF30
	movs r0, 0
	b _0800EF32
	.pool
_0800EF30:
	movs r0, 0x1
_0800EF32:
	pop {r1}
	bx r1
	thumb_func_end sub_800EF1C

	thumb_func_start sub_800EF38
sub_800EF38: @ 800EF38
	ldr r1, =gUnknown_03005000
	movs r0, 0x4
	strh r0, [r1, 0x4]
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0]
	ldr r2, =0x00000ce7
	adds r1, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_800EF38

	thumb_func_start sub_800EF58
sub_800EF58: @ 800EF58
	push {lr}
	adds r1, r0, 0
	ldr r2, =gUnknown_03005000
	ldrh r0, [r2, 0x4]
	cmp r0, 0x11
	beq _0800EF68
	cmp r1, 0
	beq _0800EF74
_0800EF68:
	movs r0, 0x12
	strh r0, [r2, 0x4]
	movs r0, 0x1
	b _0800EF76
	.pool
_0800EF74:
	movs r0, 0
_0800EF76:
	pop {r1}
	bx r1
	thumb_func_end sub_800EF58

	thumb_func_start sub_800EF7C
sub_800EF7C: @ 800EF7C
	ldr r1, =gUnknown_03005000
	movs r0, 0xE
	strh r0, [r1, 0x4]
	bx lr
	.pool
	thumb_func_end sub_800EF7C

	thumb_func_start sub_800EF88
sub_800EF88: @ 800EF88
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	movs r2, 0
	b _0800EF9A
_0800EF92:
	lsrs r1, 1
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
_0800EF9A:
	cmp r2, 0x3
	bhi _0800EFAC
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0800EF92
	adds r0, r2, 0
	bl rfu_UNI_readySendData
_0800EFAC:
	pop {r0}
	bx r0
	thumb_func_end sub_800EF88

	thumb_func_start sub_800EFB0
sub_800EFB0: @ 800EFB0
	push {r4-r7,lr}
	sub sp, 0x4
	movs r2, 0
	ldr r7, =gRecvCmds
	ldr r0, =gUnknown_03005000
	adds r6, r7, 0
	ldr r1, =0x00000c87
	adds r5, r0, r1
_0800EFC0:
	movs r3, 0
	lsls r0, r2, 3
	lsls r1, r2, 4
	adds r4, r2, 0x1
	subs r0, r2
	lsls r0, 1
	adds r2, r0, r5
	adds r1, r6
_0800EFD0:
	ldrh r0, [r1]
	lsrs r0, 8
	strb r0, [r2, 0x1]
	ldrh r0, [r1]
	strb r0, [r2]
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	cmp r3, 0x6
	ble _0800EFD0
	adds r2, r4, 0
	cmp r2, 0x4
	ble _0800EFC0
	movs r0, 0
	mov r1, sp
	strh r0, [r1]
	ldr r2, =0x01000028
	mov r0, sp
	adds r1, r7, 0
	bl CpuSet
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800EFB0

	thumb_func_start sub_800F014
sub_800F014: @ 800F014
	push {lr}
	ldr r3, =gSendCmd
	ldr r2, =gRecvCmds
	movs r1, 0x6
_0800F01C:
	ldrh r0, [r3]
	strh r0, [r2]
	adds r3, 0x2
	adds r2, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _0800F01C
	ldr r1, =gSendCmd
	movs r2, 0
	adds r0, r1, 0
	adds r0, 0xC
_0800F032:
	strh r2, [r0]
	subs r0, 0x2
	cmp r0, r1
	bge _0800F032
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800F014

	thumb_func_start sub_800F048
sub_800F048: @ 800F048
	push {r4,r5,lr}
	ldr r4, =gUnknown_03005000
	ldr r0, =0x00000c3c
	adds r5, r4, r0
	ldrb r0, [r5]
	cmp r0, 0
	beq _0800F07A
	ldr r1, =0x00000c1c
	adds r0, r4, r1
	adds r1, r4, 0
	adds r1, 0x4C
	bl sub_800DAC8
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =0x00000c3a
	adds r0, r4, r1
	ldrb r0, [r0]
	adds r1, r0, 0
	cmp r1, 0
	bne _0800F076
	ldrb r0, [r5]
	strb r1, [r5]
_0800F076:
	cmp r2, 0
	bne _0800F09E
_0800F07A:
	ldr r5, =gUnknown_03005000
	ldr r1, =0x00000c3c
	adds r0, r5, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _0800F09E
	ldr r1, =0x000009e8
	adds r0, r5, r1
	adds r4, r5, 0
	adds r4, 0x4C
	adds r1, r4, 0
	bl sub_800D9DC
	ldr r1, =0x00000c1c
	adds r0, r5, r1
	adds r1, r4, 0
	bl sub_800DA68
_0800F09E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800F048

	thumb_func_start sub_800F0B8
sub_800F0B8: @ 800F0B8
	push {r4,lr}
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	cmp r0, 0
	bne _0800F0CC
_0800F0C4:
	movs r0, 0
	b _0800F0EC
	.pool
_0800F0CC:
	movs r3, 0
	ldr r4, =gRecvCmds
_0800F0D0:
	movs r2, 0
	lsls r0, r3, 4
	adds r1, r0, r4
_0800F0D6:
	ldrh r0, [r1]
	cmp r0, 0
	bne _0800F0C4
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, 0x6
	ble _0800F0D6
	adds r3, 0x1
	cmp r3, 0x4
	ble _0800F0D0
	movs r0, 0x1
_0800F0EC:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800F0B8

	thumb_func_start sub_800F0F8
sub_800F0F8: @ 800F0F8
	push {r4-r6,lr}
	ldr r6, =gUnknown_03005000
	ldrh r0, [r6, 0x4]
	cmp r0, 0x13
	bhi _0800F118
	bl rfu_REQ_recvData
	bl rfu_waitREQComplete
	movs r0, 0
	bl rfu_REQ_sendData_wrapper
	b _0800F1D2
	.pool
_0800F118:
	ldr r0, =0x00000cdb
	adds r1, r6, r0
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r0, =0x00000ce2
	adds r1, r6, r0
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r1, [r1]
	ldrb r0, [r0, 0x2]
	ands r0, r1
	cmp r0, r1
	bne _0800F1D2
	cmp r0, 0
	beq _0800F1D2
	ldr r1, =0x00000cdc
	adds r0, r6, r1
	ldrb r0, [r0]
	adds r5, r0, 0
	cmp r5, 0
	bne _0800F1C8
	ldr r0, =0x00000ce3
	adds r4, r6, r0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0800F1A8
	bl sub_8011D6C
	strb r5, [r4]
	ldr r1, =0x00000ce4
	adds r0, r6, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0800F18C
	movs r4, 0x80
	lsls r4, 8
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
	adds r0, r4, 0
	bl sub_8011170
	b _0800F1D2
	.pool
_0800F18C:
	ldr r0, =gUnknown_03004140
	ldrb r4, [r0]
	cmp r4, 0
	bne _0800F1A8
	bl sub_800EDD4
	ldr r0, =gReceivedRemoteLinkPlayers
	strb r4, [r0]
	b _0800F1D2
	.pool
_0800F1A8:
	bl sub_800EFB0
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cda
	adds r0, r1
	ldrb r0, [r0]
	bl rfu_UNI_readySendData
	movs r0, 0x1
	bl rfu_REQ_sendData_wrapper
	b _0800F1CC
	.pool
_0800F1C8:
	bl rfu_REQ_PARENT_resumeRetransmitAndChange
_0800F1CC:
	ldr r1, =gUnknown_03005000
	movs r0, 0x1
	strb r0, [r1, 0xE]
_0800F1D2:
	movs r0, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800F0F8

	thumb_func_start sub_800F1E0
sub_800F1E0: @ 800F1E0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	ldr r0, =gUnknown_03005000
	ldrh r1, [r0, 0x4]
	adds r6, r0, 0
	cmp r1, 0x13
	bhi _0800F1F8
	b _0800F45A
_0800F1F8:
	ldrb r0, [r6, 0xE]
	cmp r0, 0x1
	beq _0800F200
	b _0800F45A
_0800F200:
	bl rfu_waitREQComplete
	ldr r0, =0x00000cdb
	adds r2, r6, r0
	ldrb r0, [r2]
	cmp r0, 0
	bne _0800F220
	adds r1, r6, 0
	adds r1, 0xEE
_0800F212:
	ldrb r0, [r1]
	cmp r0, 0
	beq _0800F21A
	b _0800F480
_0800F21A:
	ldrb r0, [r2]
	cmp r0, 0
	beq _0800F212
_0800F220:
	bl rfu_REQ_recvData
	bl rfu_waitREQComplete
	ldr r2, =gUnknown_03004140
	ldr r4, =gUnknown_03005000
	ldr r1, =0x00000ce2
	adds r0, r4, r1
	ldrb r1, [r2, 0x3]
	ldrb r0, [r0]
	ands r1, r0
	cmp r1, r0
	beq _0800F23C
	b _0800F444
_0800F23C:
	ldr r6, =0x00000cdc
	adds r1, r4, r6
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, =gUnknown_02022B44
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	ldrb r7, [r2]
	movs r5, 0
_0800F252:
	movs r0, 0x1
	ands r0, r7
	lsrs r1, r7, 1
	str r1, [sp, 0x4]
	adds r2, r5, 0x1
	str r2, [sp]
	cmp r0, 0
	bne _0800F264
	b _0800F364
_0800F264:
	ldr r1, =gUnknown_03005000
	lsls r2, r5, 3
	subs r0, r2, r5
	lsls r4, r0, 1
	adds r0, r1, 0
	adds r0, 0x15
	adds r0, r4, r0
	ldrb r0, [r0]
	adds r6, r1, 0
	adds r3, r2, 0
	lsls r1, r5, 24
	mov r10, r1
	cmp r0, 0
	beq _0800F35C
	ldr r2, =0x00000cee
	adds r0, r6, r2
	adds r1, r5, r0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0800F2E0
	adds r0, r6, 0
	adds r0, 0x14
	adds r0, r4, r0
	ldrb r2, [r0]
	lsrs r2, 5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	cmp r2, r0
	beq _0800F2E0
	ldr r0, =0x00000cea
	adds r1, r6, r0
	adds r1, r5, r1
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bls _0800F35C
	movs r0, 0x81
	lsls r0, 8
	bl sub_8011170
	b _0800F35C
	.pool
_0800F2E0:
	ldr r2, =gUnknown_03005000
	ldr r6, =0x00000cee
	adds r1, r2, r6
	adds r1, r5, r1
	subs r3, r5
	lsls r3, 1
	adds r4, r2, 0
	adds r4, 0x14
	adds r2, r3, r4
	ldrb r0, [r2]
	lsrs r0, 5
	strb r0, [r1]
	ldr r1, =gUnknown_03005000
	subs r6, 0x4
	adds r0, r1, r6
	adds r0, r5, r0
	movs r1, 0
	strb r1, [r0]
	ldrb r1, [r2]
	movs r0, 0x1F
	ands r0, r1
	strb r0, [r2]
	ldr r2, =gUnknown_03005CDE
	adds r0, r5, r2
	ldrb r0, [r0]
	movs r6, 0
	lsls r1, r5, 24
	mov r10, r1
	lsrs r2, r7, 1
	str r2, [sp, 0x4]
	adds r5, 0x1
	str r5, [sp]
	ldr r1, =gRecvCmds
	mov r9, r1
	adds r5, r3, 0
	adds r7, r4, 0
	lsls r0, 4
	mov r8, r0
	adds r2, r5, 0x1
	mov r12, r2
_0800F330:
	lsls r1, r6, 1
	mov r0, r8
	adds r4, r1, r0
	add r4, r9
	mov r2, r12
	adds r3, r1, r2
	adds r3, r7
	ldrb r2, [r3]
	lsls r2, 8
	adds r1, r5
	adds r1, r7
	ldrb r0, [r1]
	orrs r0, r2
	strh r0, [r4]
	movs r0, 0
	strb r0, [r3]
	strb r0, [r1]
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x6
	bls _0800F330
_0800F35C:
	mov r1, r10
	lsrs r0, r1, 24
	bl rfu_UNI_clearRecvNewDataFlag
_0800F364:
	ldr r2, [sp, 0x4]
	lsls r0, r2, 16
	lsrs r7, r0, 16
	ldr r6, [sp]
	lsls r0, r6, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bhi _0800F376
	b _0800F252
_0800F376:
	bl sub_800F014
	movs r0, 0
	bl sub_800F86C
	bl sub_8010528
	ldr r4, =gUnknown_03005000
	ldr r1, =0x00000ce5
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800F452
	ldr r2, =0x00000cd9
	adds r0, r4, r2
	ldrb r2, [r0]
	cmp r2, 0
	bne _0800F452
	ldr r0, =gUnknown_02022B44
	ldrb r1, [r0, 0xE]
	strb r2, [r0, 0xE]
	ldr r6, =0x00000cda
	adds r0, r4, r6
	ldrb r1, [r0]
	movs r0, 0x3
	bl rfu_clearSlot
	movs r5, 0
	adds r7, r4, 0
	adds r7, 0x14
_0800F3B2:
	ldr r0, =0x00000ce5
	adds r6, r4, r0
	ldrb r0, [r6]
	asrs r0, r5
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0800F3D6
	lsls r1, r5, 24
	lsrs r1, 24
	lsls r2, r5, 3
	subs r2, r5
	lsls r2, 1
	adds r2, r7
	movs r0, 0x10
	movs r3, 0xE
	bl rfu_setRecvBuffer
_0800F3D6:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _0800F3B2
	subs r4, r6, 0x3
	ldrb r0, [r4]
	ldrb r2, [r6]
	adds r1, r0, 0
	orrs r1, r2
	bl sub_800E88C
	ldrb r1, [r6]
	movs r2, 0
	strb r1, [r6, 0x4]
	ldrb r0, [r4]
	orrs r0, r1
	strb r0, [r4]
	strb r2, [r6]
	ldrb r0, [r4]
	adds r1, r6, 0
	subs r1, 0x5E
	movs r2, 0x46
	bl rfu_UNI_setSendData
	ldrb r0, [r4]
	bl sub_800E87C
	adds r1, r6, 0
	subs r1, 0xB
	strb r0, [r1]
	ldr r0, =sub_8010AAC
	movs r1, 0
	bl CreateTask
	b _0800F452
	.pool
_0800F444:
	ldr r2, =0x00000cdc
	adds r1, r4, r2
	ldrb r0, [r1]
	movs r2, 0
	movs r0, 0x1
	strb r0, [r1]
	strb r2, [r4, 0xE]
_0800F452:
	ldr r1, =gUnknown_03005000
	movs r0, 0
	strb r0, [r1, 0xE]
	adds r6, r1, 0
_0800F45A:
	ldr r1, =0x00000cdc
	adds r0, r6, r1
	ldrb r0, [r0]
	adds r1, r0, 0
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	cmp r0, 0
	beq _0800F484
	movs r0, 0x1
	ands r0, r1
	b _0800F486
	.pool
_0800F480:
	movs r0, 0
	b _0800F486
_0800F484:
	movs r0, 0
_0800F486:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_800F1E0

	thumb_func_start sub_800F498
sub_800F498: @ 800F498
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r2, r1, 0
	ldrh r1, [r4]
	cmp r1, 0
	beq _0800F4DC
	ldr r0, =gUnknown_03005000
	movs r5, 0x81
	lsls r5, 1
	adds r3, r0, r5
	ldrb r0, [r3]
	lsls r0, 5
	orrs r0, r1
	strh r0, [r4]
	ldrb r0, [r3]
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	strb r0, [r3]
	adds r3, r4, 0
	movs r4, 0x6
_0800F4C2:
	ldrh r1, [r3]
	lsrs r0, r1, 8
	strb r0, [r2, 0x1]
	strb r1, [r2]
	adds r2, 0x2
	adds r3, 0x2
	subs r4, 0x1
	cmp r4, 0
	bge _0800F4C2
	b _0800F4EA
	.pool
_0800F4DC:
	movs r1, 0
	adds r0, r2, 0
	adds r0, 0xD
_0800F4E2:
	strb r1, [r0]
	subs r0, 0x1
	cmp r0, r2
	bge _0800F4E2
_0800F4EA:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_800F498

	thumb_func_start sub_800F4F0
sub_800F4F0: @ 800F4F0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x58
	ldr r0, =gUnknown_03005124
	mov r1, sp
	bl sub_800D934
	movs r1, 0
	ldr r0, =gRecvCmds
	mov r12, r0
_0800F506:
	movs r4, 0
	lsls r0, r1, 3
	adds r2, r1, 0x1
	mov r8, r2
	lsls r6, r1, 4
	subs r0, r1
	lsls r5, r0, 1
_0800F514:
	lsls r1, r4, 1
	adds r3, r1, r6
	add r3, r12
	adds r1, r5, r1
	adds r0, r1, 0x1
	add r0, sp
	ldrb r2, [r0]
	lsls r2, 8
	mov r7, sp
	adds r0, r7, r1
	ldrb r0, [r0]
	orrs r0, r2
	strh r0, [r3]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x6
	bls _0800F514
	mov r1, r8
	lsls r0, r1, 24
	lsrs r1, r0, 24
	cmp r1, 0x4
	bls _0800F506
	movs r0, 0
	bl sub_800F86C
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x2]
	cmp r0, 0
	bne _0800F5C0
	ldr r0, =gUnknown_03005000
	ldr r2, =0x00000ce4
	adds r0, r2
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800F5C0
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r1, [r0, 0x2]
	ldrb r0, [r0, 0x3]
	orrs r0, r1
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
	bl sub_8011A74
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0800F58C
	cmp r0, 0x6
	beq _0800F58C
	cmp r0, 0x9
	beq _0800F58C
	movs r1, 0x90
	lsls r1, 8
	movs r0, 0x2
	bl sub_8011A64
_0800F58C:
	bl rfu_clearAllSlot
	ldr r1, =gReceivedRemoteLinkPlayers
	movs r0, 0
	strb r0, [r1]
	ldr r0, =gUnknown_03005000
	movs r5, 0
	str r5, [r0]
	ldr r7, =0x00000ce4
	adds r6, r0, r7
	ldrb r0, [r6]
	cmp r0, 0x1
	bne _0800F5B8
	movs r4, 0x90
	lsls r4, 8
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
	adds r0, r4, 0
	bl sub_8011170
_0800F5B8:
	ldr r0, =gUnknown_03004140
	strb r5, [r0, 0x5]
	strb r5, [r0, 0x4]
	strb r5, [r6]
_0800F5C0:
	ldr r6, =gUnknown_03005000
	movs r0, 0xCD
	lsls r0, 4
	adds r2, r6, r0
	ldrb r0, [r2]
	cmp r0, 0
	beq _0800F604
	ldrb r0, [r2]
	subs r0, 0x1
	ldrb r1, [r2]
	strb r0, [r2]
	bl sub_8010528
	ldr r5, =gSendCmd
	add r4, sp, 0x48
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_800F498
	ldr r1, =0x000009e8
	adds r0, r6, r1
	adds r1, r4, 0
	bl sub_800D888
	movs r1, 0
	movs r2, 0
_0800F5F4:
	lsls r0, r1, 1
	adds r0, r5
	strh r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x6
	bls _0800F5F4
_0800F604:
	bl sub_800F0B8
	add sp, 0x58
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800F4F0

	thumb_func_start sub_800F638
sub_800F638: @ 800F638
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r0, =gUnknown_03005000
	ldr r2, [r0, 0x70]
	mov r10, r2
	movs r5, 0
	adds r2, r0, 0
	adds r2, 0x6E
	ldrh r3, [r2]
	cmp r5, r3
	bge _0800F6D4
	mov r9, r0
	ldr r0, =gUnknown_03000D90
	mov r8, r0
_0800F65A:
	movs r0, 0x1
	ands r0, r1
	lsrs r7, r1, 1
	adds r6, r5, 0x1
	cmp r0, 0
	bne _0800F6C8
	ldr r1, =0xffff8900
	adds r0, r1, 0
	adds r1, r5, 0
	orrs r1, r0
	mov r2, r8
	strh r1, [r2]
	movs r4, 0
	lsls r0, r5, 1
	ldr r3, =gUnknown_03000D80
	mov r12, r3
	adds r0, r5
	lsls r0, 2
	mov r1, r10
	adds r2, r0, r1
	mov r3, r8
	adds r3, 0x2
_0800F686:
	ldrb r1, [r2, 0x1]
	lsls r1, 8
	ldrb r0, [r2]
	orrs r0, r1
	strh r0, [r3]
	adds r2, 0x2
	adds r3, 0x2
	adds r4, 0x1
	cmp r4, 0x6
	ble _0800F686
	movs r4, 0
	ldr r2, =gUnknown_03000D90
	ldr r1, =gUnknown_03000D80
_0800F6A0:
	ldrh r0, [r2]
	lsrs r0, 8
	strb r0, [r1, 0x1]
	ldrh r0, [r2]
	strb r0, [r1]
	adds r2, 0x2
	adds r1, 0x2
	adds r4, 0x1
	cmp r4, 0x6
	ble _0800F6A0
	ldr r0, =gUnknown_030059E8
	mov r1, r12
	bl sub_800D888
	movs r1, 0x1
	lsls r1, r5
	mov r2, r9
	ldr r0, [r2, 0x78]
	orrs r0, r1
	str r0, [r2, 0x78]
_0800F6C8:
	adds r1, r7, 0
	adds r5, r6, 0
	ldr r3, =gUnknown_0300506E
	ldrh r3, [r3]
	cmp r5, r3
	blt _0800F65A
_0800F6D4:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800F638

	thumb_func_start sub_800F6FC
sub_800F6FC: @ 800F6FC
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	ldr r0, =gUnknown_03005000
	ldrb r2, [r0, 0xC]
	cmp r2, 0x1
	bne _0800F71C
	cmp r1, 0
	beq _0800F71C
	adds r0, 0x61
	adds r0, r1, r0
	strb r2, [r0]
	b _0800F724
	.pool
_0800F71C:
	adds r0, 0x5C
	adds r0, r1, r0
	movs r1, 0x1
	strb r1, [r0]
_0800F724:
	pop {r0}
	bx r0
	thumb_func_end sub_800F6FC

	thumb_func_start sub_800F728
sub_800F728: @ 800F728
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gUnknown_03005000
	adds r1, r3, 0
	adds r1, 0x5C
	adds r1, r0, r1
	movs r2, 0
	strb r2, [r1]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, r3
	adds r1, 0x92
	strb r2, [r1]
	bx lr
	.pool
	thumb_func_end sub_800F728

	thumb_func_start sub_800F74C
sub_800F74C: @ 800F74C
	push {r4,r5,lr}
	adds r3, r0, 0
	ldr r0, =gUnknown_03005000
	ldrb r1, [r0, 0xC]
	adds r5, r0, 0
	cmp r1, 0x1
	bne _0800F764
	movs r0, 0
	b _0800F786
	.pool
_0800F764:
	movs r2, 0
	ldr r0, =0x00000cde
	adds r4, r5, r0
_0800F76A:
	adds r1, r2, r4
	adds r0, r3, r2
	ldrb r0, [r0]
	strb r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _0800F76A
	ldr r1, =0x00000c3e
	adds r0, r5, r1
	ldrb r0, [r0]
	adds r0, r3
	ldrb r0, [r0]
_0800F786:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800F74C

	thumb_func_start rfu_func_080F97B8
rfu_func_080F97B8: @ 800F794
	push {lr}
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800F7C6
	ldr r3, =gUnknown_03005DA8
	ldrh r2, [r3]
	cmp r2, 0
	beq _0800F7C6
	ldr r0, =gLinkTransferringData
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _0800F7C6
	ldr r1, =gUnknown_03000D78
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldrb r0, [r1]
	lsls r0, 8
	orrs r0, r2
	strh r0, [r3]
	movs r0, 0xBE
	lsls r0, 8
	bl sub_800FD14
_0800F7C6:
	pop {r0}
	bx r0
	.pool
	thumb_func_end rfu_func_080F97B8

	thumb_func_start sub_800F7DC
sub_800F7DC: @ 800F7DC
	ldr r0, =gUnknown_02022B14
	bx lr
	.pool
	thumb_func_end sub_800F7DC

	thumb_func_start sub_800F7E4
sub_800F7E4: @ 800F7E4
	push {lr}
	movs r2, 0
	ldr r0, =gUnknown_03005000
	ldr r1, [r0]
	ldr r0, =rfu_func_080F97B8
	cmp r1, r0
	bne _0800F7F4
	movs r2, 0x1
_0800F7F4:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800F7E4

	thumb_func_start sub_800F804
sub_800F804: @ 800F804
	ldr r1, =gUnknown_03005000
	ldr r0, =rfu_func_080F97B8
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_800F804

	thumb_func_start Rfu_set_zero
Rfu_set_zero: @ 800F814
	ldr r1, =gUnknown_03005000
	movs r0, 0
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end Rfu_set_zero

	thumb_func_start sub_800F820
sub_800F820: @ 800F820
	push {lr}
	movs r0, 0x88
	lsls r0, 7
	bl sub_800FD14
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _0800F83C
	bl sub_8082D18
	ldr r1, =gSendCmd
	strh r0, [r1, 0xC]
_0800F83C:
	ldr r1, =gUnknown_020223C0
	ldr r0, [r1]
	adds r0, 0x1
	str r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800F820

	thumb_func_start sub_800F850
sub_800F850: @ 800F850
	push {lr}
	ldr r1, =gUnknown_03005000
	ldr r0, [r1]
	cmp r0, 0
	bne _0800F85E
	ldr r0, =sub_800F820
	str r0, [r1]
_0800F85E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800F850

	thumb_func_start sub_800F86C
sub_800F86C: @ 800F86C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	movs r0, 0
	mov r8, r0
_0800F87A:
	mov r1, r8
	lsls r0, r1, 4
	ldr r2, =gRecvCmds
	adds r1, r0, r2
	ldrh r7, [r1]
	movs r3, 0xFF
	lsls r3, 8
	adds r1, r3, 0
	ands r1, r7
	movs r2, 0x88
	lsls r2, 8
	adds r5, r0, 0
	cmp r1, r2
	beq _0800F960
	cmp r1, r2
	bgt _0800F8D6
	movs r0, 0xCC
	lsls r0, 7
	cmp r1, r0
	bne _0800F8A4
	b _0800FAE0
_0800F8A4:
	cmp r1, r0
	bgt _0800F8C4
	movs r0, 0x88
	lsls r0, 7
	cmp r1, r0
	bne _0800F8B2
	b _0800FBF4
_0800F8B2:
	movs r0, 0xBE
	lsls r0, 7
	cmp r1, r0
	bne _0800F8BC
	b _0800FAD0
_0800F8BC:
	b _0800FC04
	.pool
_0800F8C4:
	movs r0, 0xEE
	lsls r0, 7
	cmp r1, r0
	beq _0800F920
	movs r0, 0xF0
	lsls r0, 7
	cmp r1, r0
	beq _0800F90E
	b _0800FC04
_0800F8D6:
	movs r0, 0xBE
	lsls r0, 8
	cmp r1, r0
	bne _0800F8E0
	b _0800FBF4
_0800F8E0:
	cmp r1, r0
	bgt _0800F8F8
	movs r0, 0x89
	lsls r0, 8
	cmp r1, r0
	beq _0800F9C8
	movs r0, 0xA1
	lsls r0, 8
	cmp r1, r0
	bne _0800F8F6
	b _0800FAAC
_0800F8F6:
	b _0800FC04
_0800F8F8:
	movs r0, 0xED
	lsls r0, 8
	cmp r1, r0
	bne _0800F902
	b _0800FB10
_0800F902:
	movs r0, 0xEE
	lsls r0, 8
	cmp r1, r0
	bne _0800F90C
	b _0800FBB0
_0800F90C:
	b _0800FC04
_0800F90E:
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	cmp r0, 0
	bne _0800F920
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800F920
	b _0800FC50
_0800F920:
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0]
	mov r6, r8
	adds r6, 0x1
	cmp r0, 0
	beq _0800F930
	b _0800FC08
_0800F930:
	ldr r1, =gRecvCmds+0x2
	adds r0, r5, r1
	ldrh r0, [r0]
	ldr r2, =gUnknown_03005000
	strb r0, [r2, 0xD]
	ldr r3, =gRecvCmds+0x4
	adds r0, r5, r3
	bl sub_800F74C
	ldr r4, =gUnknown_03005CCE
	strb r0, [r4]
	b _0800FC08
	.pool
_0800F960:
	ldr r0, =gUnknown_03005000
	mov r9, r0
	mov r1, r8
	lsls r0, r1, 2
	add r0, r8
	lsls r7, r0, 2
	mov r2, r9
	adds r3, r7, r2
	movs r4, 0x92
	adds r4, r3
	mov r12, r4
	ldrb r4, [r4]
	mov r6, r8
	adds r6, 0x1
	cmp r4, 0
	beq _0800F982
	b _0800FC08
_0800F982:
	adds r0, r3, 0
	adds r0, 0x80
	movs r2, 0
	strh r4, [r0]
	ldr r1, =gRecvCmds+0x2
	adds r0, r5, r1
	ldrh r0, [r0]
	adds r1, r3, 0
	adds r1, 0x82
	strh r0, [r1]
	ldr r1, =gRecvCmds+0x4
	adds r0, r5, r1
	ldrh r1, [r0]
	adds r0, r3, 0
	adds r0, 0x91
	strb r1, [r0]
	mov r0, r9
	adds r0, 0x88
	adds r0, r7, r0
	str r4, [r0]
	movs r0, 0x1
	mov r3, r12
	strb r0, [r3]
	mov r0, r9
	adds r0, 0x5C
	add r0, r8
	strb r2, [r0]
	b _0800FC08
	.pool
_0800F9C8:
	ldr r4, =gUnknown_03005000
	mov r9, r4
	mov r0, r8
	lsls r1, r0, 2
	adds r0, r1, r0
	lsls r4, r0, 2
	mov r3, r9
	adds r2, r4, r3
	adds r0, r2, 0
	adds r0, 0x92
	ldrb r3, [r0]
	mov r10, r1
	mov r6, r8
	adds r6, 0x1
	cmp r3, 0x1
	beq _0800F9EA
	b _0800FC08
_0800F9EA:
	movs r0, 0xFF
	ands r0, r7
	adds r2, 0x80
	strh r0, [r2]
	mov r1, r9
	adds r1, 0x88
	adds r1, r4, r1
	lsls r3, r0
	ldr r0, [r1]
	orrs r0, r3
	str r0, [r1]
	movs r4, 0
	ldr r0, =gBlockRecvBuffer
	mov r9, r0
	mov r12, r2
	mov r1, r8
	lsls r7, r1, 8
	adds r3, r5, 0
_0800FA0E:
	mov r2, r12
	ldrh r0, [r2]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 1
	adds r1, r4
	lsls r1, 1
	adds r1, r7
	add r1, r9
	adds r2, r4, 0x1
	lsls r0, r2, 1
	adds r0, r3
	ldr r4, =gRecvCmds
	adds r0, r4
	ldrh r0, [r0]
	strh r0, [r1]
	lsls r2, 16
	lsrs r4, r2, 16
	cmp r4, 0x5
	bls _0800FA0E
	ldr r4, =gUnknown_03005000
	mov r0, r10
	add r0, r8
	lsls r0, 2
	adds r1, r4, 0
	adds r1, 0x88
	adds r1, r0, r1
	adds r2, r0, r4
	adds r0, r2, 0
	adds r0, 0x82
	ldrh r0, [r0]
	lsls r0, 2
	ldr r3, =gUnknown_082ED628
	adds r0, r3
	ldr r1, [r1]
	ldr r0, [r0]
	cmp r1, r0
	beq _0800FA5C
	b _0800FC08
_0800FA5C:
	adds r1, r2, 0
	adds r1, 0x92
	movs r0, 0x2
	strb r0, [r1]
	mov r1, r8
	lsls r0, r1, 24
	lsrs r0, 24
	bl sub_800F6FC
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	beq _0800FA7E
	b _0800FC08
_0800FA7E:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0800FA88
	b _0800FC08
_0800FA88:
	ldrb r0, [r4, 0xC]
	cmp r0, 0
	beq _0800FA90
	b _0800FC08
_0800FA90:
	ldr r0, =gBlockRecvBuffer
	bl sub_8010A70
	b _0800FC08
	.pool
_0800FAAC:
	ldr r2, =gUnknown_082ED6B8
	ldr r3, =gRecvCmds+0x2
	adds r0, r5, r3
	ldrh r1, [r0]
	lsls r1, 3
	adds r0, r1, r2
	ldr r0, [r0]
	adds r2, 0x4
	adds r1, r2
	ldrh r1, [r1]
	bl sub_800FE84
	b _0800FC04
	.pool
_0800FAD0:
	ldr r1, =gUnknown_030050E4
	add r1, r8
	movs r0, 0x1
	strb r0, [r1]
	b _0800FC04
	.pool
_0800FAE0:
	ldr r2, =gUnknown_03005000
	movs r4, 0x80
	lsls r4, 1
	adds r0, r2, r4
	ldr r3, =gRecvCmds+0x2
	adds r1, r5, r3
	ldrh r0, [r0]
	mov r6, r8
	adds r6, 0x1
	ldrh r1, [r1]
	cmp r0, r1
	beq _0800FAFA
	b _0800FC08
_0800FAFA:
	adds r0, r2, 0
	adds r0, 0xE9
	add r0, r8
	movs r1, 0x1
	strb r1, [r0]
	b _0800FC08
	.pool
_0800FB10:
	ldr r7, =gUnknown_03005000
	ldrb r2, [r7, 0xC]
	cmp r2, 0
	bne _0800FB78
	ldr r3, =gReceivedRemoteLinkPlayers
	ldrb r0, [r3]
	mov r6, r8
	adds r6, 0x1
	cmp r0, 0
	beq _0800FC08
	ldr r0, =gRecvCmds+0x2
	adds r4, r5, r0
	ldrh r1, [r4]
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0, 0x2]
	ands r1, r0
	cmp r1, 0
	beq _0800FB48
	strb r2, [r3]
	bl sub_800D630
	ldr r1, =gRecvCmds+0x4
	adds r0, r5, r1
	ldrh r1, [r0]
	ldr r2, =0x00000ce4
	adds r0, r7, r2
	strb r1, [r0]
_0800FB48:
	ldr r0, =gRecvCmds
	adds r0, 0x6
	adds r0, r5, r0
	ldrh r0, [r0]
	strb r0, [r7, 0xD]
	ldrh r0, [r4]
	bl sub_80109E8
	b _0800FC08
	.pool
_0800FB78:
	movs r0, 0xEE
	lsls r0, 8
	bl sub_800FD14
	ldr r1, =gSendCmd
	ldr r3, =gRecvCmds+0x2
	adds r0, r5, r3
	ldrh r0, [r0]
	strh r0, [r1, 0x2]
	ldr r4, =gRecvCmds+0x4
	adds r0, r5, r4
	ldrh r0, [r0]
	strh r0, [r1, 0x4]
	ldr r0, =gRecvCmds
	adds r0, 0x6
	adds r0, r5, r0
	ldrh r0, [r0]
	strh r0, [r1, 0x6]
	b _0800FC04
	.pool
_0800FBB0:
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	mov r6, r8
	adds r6, 0x1
	cmp r0, 0x1
	bne _0800FC44
	ldr r0, =0x00000ce3
	adds r2, r4, r0
	ldr r1, =gRecvCmds+0x2
	adds r3, r5, r1
	ldrb r1, [r3]
	ldrb r0, [r2]
	orrs r0, r1
	strb r0, [r2]
	ldr r2, =gRecvCmds+0x4
	adds r0, r5, r2
	ldrh r1, [r0]
	ldr r2, =0x00000ce4
	adds r0, r4, r2
	strb r1, [r0]
	ldrh r0, [r3]
	bl sub_80109E8
	b _0800FC08
	.pool
_0800FBF4:
	ldr r0, =gLinkPartnersHeldKeys
	mov r3, r8
	lsls r1, r3, 1
	adds r1, r0
	ldr r4, =gRecvCmds+0x2
	adds r0, r5, r4
	ldrh r0, [r0]
	strh r0, [r1]
_0800FC04:
	mov r6, r8
	adds r6, 0x1
_0800FC08:
	ldr r3, =gUnknown_03005000
	ldrb r4, [r3, 0xC]
	cmp r4, 0x1
	bne _0800FC44
	adds r0, r3, 0
	adds r0, 0x61
	mov r1, r8
	adds r2, r1, r0
	ldrb r0, [r2]
	adds r1, r0, 0
	cmp r1, 0
	beq _0800FC44
	cmp r1, 0x4
	bne _0800FC40
	adds r0, r3, 0
	adds r0, 0x5C
	add r0, r8
	movs r1, 0
	strb r4, [r0]
	strb r1, [r2]
	b _0800FC44
	.pool
_0800FC40:
	adds r0, 0x1
	strb r0, [r2]
_0800FC44:
	lsls r0, r6, 16
	lsrs r0, 16
	mov r8, r0
	cmp r0, 0x4
	bhi _0800FC50
	b _0800F87A
_0800FC50:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_800F86C

	thumb_func_start sub_800FC60
sub_800FC60: @ 800FC60
	push {lr}
	movs r2, 0
	ldr r0, =gUnknown_03005000
	adds r1, r0, 0
	adds r1, 0x92
_0800FC6A:
	ldrb r0, [r1]
	cmp r0, 0
	beq _0800FC78
	movs r0, 0
	b _0800FC82
	.pool
_0800FC78:
	adds r1, 0x14
	adds r2, 0x1
	cmp r2, 0x4
	ble _0800FC6A
	movs r0, 0x1
_0800FC82:
	pop {r1}
	bx r1
	thumb_func_end sub_800FC60

	thumb_func_start sub_800FC88
sub_800FC88: @ 800FC88
	push {r4,lr}
	movs r1, 0
	ldr r2, =gUnknown_03005000
	ldrb r0, [r2, 0xD]
	cmp r1, r0
	bge _0800FCBC
	adds r4, r0, 0
	adds r3, r2, 0
	adds r3, 0x92
	adds r2, 0x5C
_0800FC9C:
	ldrb r0, [r3]
	cmp r0, 0x2
	bne _0800FCAA
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _0800FCB4
_0800FCAA:
	movs r0, 0
	b _0800FCBE
	.pool
_0800FCB4:
	adds r3, 0x14
	adds r1, 0x1
	cmp r1, r4
	blt _0800FC9C
_0800FCBC:
	movs r0, 0x1
_0800FCBE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_800FC88

	thumb_func_start sub_800FCC4
sub_800FCC4: @ 800FCC4
	movs r2, 0
	movs r1, 0
	strh r1, [r0]
	strh r1, [r0, 0x2]
	str r1, [r0, 0x4]
	str r1, [r0, 0x8]
	strb r2, [r0, 0x10]
	strb r2, [r0, 0x11]
	strb r2, [r0, 0x12]
	bx lr
	thumb_func_end sub_800FCC4

	thumb_func_start sub_800FCD8
sub_800FCD8: @ 800FCD8
	push {r4,lr}
	movs r2, 0
	movs r1, 0
	ldr r0, =gUnknown_03005000
	adds r3, r0, 0
	adds r3, 0x92
	adds r4, r0, 0
	adds r4, 0x5C
_0800FCE8:
	ldrb r0, [r3]
	cmp r0, 0x2
	bne _0800FCFE
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0800FCFE
	lsls r0, r1
	orrs r2, r0
	lsls r0, r2, 24
	lsrs r2, r0, 24
_0800FCFE:
	adds r3, 0x14
	adds r1, 0x1
	cmp r1, 0x4
	ble _0800FCE8
	adds r0, r2, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800FCD8

	thumb_func_start sub_800FD14
sub_800FD14: @ 800FD14
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r5, =gSendCmd
	strh r1, [r5]
	movs r0, 0xF0
	lsls r0, 7
	adds r4, r5, 0
	cmp r1, r0
	beq _0800FDB0
	cmp r1, r0
	bgt _0800FD62
	movs r0, 0xBE
	lsls r0, 7
	cmp r1, r0
	beq _0800FE00
	cmp r1, r0
	bgt _0800FD50
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	beq _0800FE20
	movs r0, 0x88
	lsls r0, 7
	cmp r1, r0
	beq _0800FE14
	b _0800FE46
	.pool
_0800FD50:
	movs r0, 0xCC
	lsls r0, 7
	cmp r1, r0
	beq _0800FE00
	movs r0, 0xEE
	lsls r0, 7
	cmp r1, r0
	beq _0800FDB0
	b _0800FE46
_0800FD62:
	movs r0, 0xBE
	lsls r0, 8
	cmp r1, r0
	beq _0800FE40
	cmp r1, r0
	bgt _0800FE46
	movs r0, 0x88
	lsls r0, 8
	cmp r1, r0
	beq _0800FD80
	movs r0, 0xA1
	lsls r0, 8
	cmp r1, r0
	beq _0800FD98
	b _0800FE46
_0800FD80:
	ldr r0, =gUnknown_03005000
	adds r1, r0, 0
	adds r1, 0x6E
	ldrh r1, [r1]
	strh r1, [r5, 0x2]
	adds r0, 0x7D
	ldrb r0, [r0]
	adds r0, 0x80
	strh r0, [r5, 0x4]
	b _0800FE46
	.pool
_0800FD98:
	bl sub_800FC60
	lsls r0, 24
	cmp r0, 0
	beq _0800FE46
	ldr r0, =gUnknown_03005000
	adds r0, 0x5A
	ldrb r0, [r0]
	b _0800FE44
	.pool
_0800FDB0:
	ldr r3, =gUnknown_03005000
	ldr r1, =0x00000ce2
	adds r0, r3, r1
	ldr r2, =0x00000ce3
	adds r1, r3, r2
	ldrb r2, [r0]
	ldrb r0, [r1]
	eors r0, r2
	ldr r1, =gUnknown_082ED695
	adds r0, r1
	ldrb r0, [r0]
	adds r0, 0x1
	strb r0, [r3, 0xD]
	ldrb r0, [r3, 0xD]
	strh r0, [r4, 0x2]
	adds r2, r4, 0x4
	movs r4, 0
	ldr r0, =0x00000cde
	adds r3, r0
_0800FDD6:
	adds r1, r2, r4
	adds r0, r4, r3
	ldrb r0, [r0]
	strb r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _0800FDD6
	b _0800FE46
	.pool
_0800FE00:
	ldr r0, =gUnknown_03005000
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r4, 0x2]
	b _0800FE46
	.pool
_0800FE14:
	strh r1, [r5]
	ldr r0, =gMain
	ldrh r0, [r0, 0x2C]
	b _0800FE44
	.pool
_0800FE20:
	movs r4, 0
	ldr r3, =gUnknown_030050F2
_0800FE24:
	adds r2, r4, 0x1
	lsls r1, r2, 1
	adds r1, r5
	lsls r0, r4, 1
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r1]
	lsls r2, 24
	lsrs r4, r2, 24
	cmp r4, 0x5
	bls _0800FE24
	b _0800FE46
	.pool
_0800FE40:
	ldr r0, =gUnknown_03005DA8
	ldrh r0, [r0]
_0800FE44:
	strh r0, [r5, 0x2]
_0800FE46:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800FD14

	thumb_func_start sub_800FE50
sub_800FE50: @ 800FE50
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0800FE76
	bl sub_8011A80
	cmp r0, 0
	bne _0800FE76
	ldr r0, =gUnknown_030050F2
	adds r1, r4, 0
	movs r2, 0xC
	bl memcpy
	movs r0, 0xBC
	lsls r0, 6
	bl sub_800FD14
_0800FE76:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800FE50

	thumb_func_start sub_800FE84
@ bool8 sub_800FE84(u32 a1, u32 size)
sub_800FE84: @ 800FE84
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r7, r0, 0
	adds r6, r1, 0
	ldr r5, =gUnknown_03005000
	ldr r0, [r5]
	cmp r0, 0
	bne _0800FEB8
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0800FEB8
	movs r0, 0x7C
	adds r0, r5
	mov r9, r0
	ldrb r1, [r0]
	mov r8, r1
	cmp r1, 0
	beq _0800FEC8
	ldr r1, =gUnknown_02022B44
	adds r1, 0x83
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0800FEB8:
	movs r0, 0
	b _0800FF32
	.pool
_0800FEC8:
	adds r0, r6, 0
	movs r1, 0xC
	bl __umodsi3
	negs r4, r0
	orrs r4, r0
	lsrs r4, 31
	bl GetMultiplayerId
	adds r1, r5, 0
	adds r1, 0x7D
	strb r0, [r1]
	movs r0, 0x1
	mov r1, r9
	strb r0, [r1]
	adds r0, r6, 0
	movs r1, 0xC
	bl __udivsi3
	adds r0, r4
	adds r1, r5, 0
	adds r1, 0x6E
	strh r0, [r1]
	adds r0, r5, 0
	adds r0, 0x6C
	mov r1, r8
	strh r1, [r0]
	movs r0, 0x80
	lsls r0, 1
	cmp r6, r0
	bls _0800FF0A
	str r7, [r5, 0x70]
	b _0800FF1C
_0800FF0A:
	ldr r4, =gBlockSendBuffer
	cmp r7, r4
	beq _0800FF1A
	adds r0, r4, 0
	adds r1, r7, 0
	adds r2, r6, 0
	bl memcpy
_0800FF1A:
	str r4, [r5, 0x70]
_0800FF1C:
	movs r0, 0x88
	lsls r0, 8
	bl sub_800FD14
	ldr r0, =gUnknown_03005000
	ldr r1, =rfufunc_80F9F44
	str r1, [r0]
	adds r0, 0x5B
	movs r1, 0
	strb r1, [r0]
	movs r0, 0x1
_0800FF32:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_800FE84

	thumb_func_start rfufunc_80F9F44
rfufunc_80F9F44: @ 800FF4C
	push {r4,r5,lr}
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0800FFA0
	movs r5, 0x88
	lsls r5, 8
	adds r0, r5, 0
	bl sub_800FD14
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	bne _0800FF84
	adds r1, r4, 0
	adds r1, 0x5B
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bls _0800FFA0
	b _0800FF9C
	.pool
_0800FF84:
	bl GetMultiplayerId
	ldr r1, =gRecvCmds
	lsls r0, 24
	lsrs r0, 20
	adds r0, r1
	ldrh r1, [r0]
	movs r0, 0xFF
	lsls r0, 8
	ands r0, r1
	cmp r0, r5
	bne _0800FFA0
_0800FF9C:
	ldr r0, =sub_800FFB0
	str r0, [r4]
_0800FFA0:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end rfufunc_80F9F44

	thumb_func_start sub_800FFB0
sub_800FFB0: @ 800FFB0
	push {r4-r6,lr}
	ldr r0, =gUnknown_03005000
	mov r12, r0
	ldr r5, [r0, 0x70]
	ldr r3, =gSendCmd
	mov r2, r12
	adds r2, 0x6C
	ldrh r1, [r2]
	movs r4, 0x89
	lsls r4, 8
	adds r0, r4, 0
	orrs r0, r1
	strh r0, [r3]
	movs r4, 0
	adds r6, r2, 0
	adds r3, 0x2
_0800FFD0:
	lsls r2, r4, 1
	ldrh r1, [r6]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, r5
	ldrb r1, [r0, 0x1]
	lsls r1, 8
	ldrb r0, [r0]
	orrs r0, r1
	strh r0, [r3]
	adds r3, 0x2
	adds r4, 0x1
	cmp r4, 0x6
	ble _0800FFD0
	mov r0, r12
	adds r0, 0x6C
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	adds r0, 0x2
	ldrh r0, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r0, r1
	bhi _08010014
	mov r0, r12
	adds r0, 0x7C
	movs r1, 0
	strb r1, [r0]
	ldr r0, =rfufunc_80FA020
	mov r1, r12
	str r0, [r1]
_08010014:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_800FFB0

	thumb_func_start rfufunc_80FA020
rfufunc_80FA020: @ 8010028
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	ldr r5, =gUnknown_03005000
	ldr r0, [r5, 0x70]
	mov r8, r0
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _080100F0
	ldr r3, =gSendCmd
	adds r2, r5, 0
	adds r2, 0x6E
	ldrh r0, [r2]
	subs r0, 0x1
	ldr r4, =0xffff8900
	adds r1, r4, 0
	orrs r0, r1
	strh r0, [r3]
	movs r4, 0
	mov r9, r5
	ldr r0, =gRecvCmds
	mov r12, r0
	lsls r5, r6, 4
	adds r7, r2, 0
	adds r3, 0x2
_08010064:
	lsls r2, r4, 1
	ldrh r1, [r7]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	add r0, r8
	adds r1, r0, 0
	subs r1, 0xB
	ldrb r1, [r1]
	lsls r1, 8
	subs r0, 0xC
	ldrb r0, [r0]
	orrs r0, r1
	strh r0, [r3]
	adds r3, 0x2
	adds r4, 0x1
	cmp r4, 0x6
	ble _08010064
	mov r1, r12
	adds r0, r5, r1
	ldrb r1, [r0]
	mov r3, r9
	adds r0, r3, 0
	adds r0, 0x6E
	ldrh r0, [r0]
	subs r0, 0x1
	cmp r1, r0
	bne _080100F4
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 2
	adds r1, r3, 0
	adds r1, 0x88
	adds r1, r0, r1
	ldr r2, =gUnknown_082ED628
	adds r0, r3
	adds r0, 0x82
	ldrh r0, [r0]
	lsls r0, 2
	adds r0, r2
	ldr r1, [r1]
	ldr r0, [r0]
	cmp r1, r0
	beq _080100E8
	adds r0, r6, 0
	bl sub_800F638
	ldr r1, =gUnknown_02022B44
	adds r1, 0x64
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _080100F4
	.pool
_080100E8:
	movs r0, 0
	mov r4, r9
	str r0, [r4]
	b _080100F4
_080100F0:
	movs r0, 0
	str r0, [r5]
_080100F4:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end rfufunc_80FA020

	thumb_func_start sub_8010100
sub_8010100: @ 8010100
	push {lr}
	ldr r1, =gUnknown_03005000
	adds r1, 0x5A
	strb r0, [r1]
	movs r0, 0xA1
	lsls r0, 8
	bl sub_800FD14
	movs r0, 0x1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8010100

	thumb_func_start sub_801011C
sub_801011C: @ 801011C
	push {lr}
	bl rfu_clearAllSlot
	bl sub_800C048
	ldr r1, =gReceivedRemoteLinkPlayers
	movs r0, 0
	strb r0, [r1]
	ldr r2, =gUnknown_03005000
	adds r3, r2, 0
	adds r3, 0xEF
	movs r1, 0
	movs r0, 0x1
	strb r0, [r3]
	str r1, [r2]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801011C

	thumb_func_start sub_8010148
sub_8010148: @ 8010148
	push {lr}
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r1, [r0, 0x2]
	ldrb r0, [r0, 0x3]
	orrs r0, r1
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
	bl sub_801011C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010148

	thumb_func_start sub_8010168
sub_8010168: @ 8010168
	push {r4,lr}
	ldr r4, =gUnknown_03005000
	ldrb r0, [r4, 0xC]
	cmp r0, 0
	bne _08010188
	bl sub_800D630
	ldr r0, =0x00000ce4
	adds r1, r4, r0
	movs r0, 0x2
	strb r0, [r1]
	b _0801018C
	.pool
_08010188:
	ldr r0, =sub_8010148
	str r0, [r4]
_0801018C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010168

	thumb_func_start sub_8010198
sub_8010198: @ 8010198
	push {lr}
	bl sub_800D630
	ldr r2, =gUnknown_03005000
	ldr r0, =0x00000ce4
	adds r1, r2, r0
	movs r0, 0x1
	strb r0, [r1]
	ldr r0, =gUnknown_03007890
	ldr r1, [r0]
	ldrb r0, [r1, 0x2]
	ldrb r1, [r1, 0x3]
	orrs r0, r1
	ldr r1, =0x00000ce3
	adds r2, r1
	strb r0, [r2]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010198

	thumb_func_start sub_80101CC
sub_80101CC: @ 80101CC
	push {r4,r5,lr}
	ldr r0, =gUnknown_03005000
	ldrb r5, [r0, 0xD]
	movs r2, 0
	movs r1, 0
	adds r3, r0, 0
	adds r4, r3, 0
	adds r4, 0xE4
_080101DC:
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0
	beq _080101E6
	adds r2, 0x1
_080101E6:
	adds r1, 0x1
	cmp r1, 0x4
	ble _080101DC
	cmp r2, r5
	bne _08010220
	ldr r2, =gBattleTypeFlags
	ldr r0, [r2]
	movs r1, 0x21
	negs r1, r1
	ands r0, r1
	str r0, [r2]
	ldrb r0, [r3, 0xC]
	cmp r0, 0
	bne _0801021C
	adds r0, r3, 0
	adds r0, 0xEE
	ldrb r1, [r0]
	movs r1, 0x3
	strb r1, [r0]
	bl sub_8010168
	b _08010220
	.pool
_0801021C:
	ldr r0, =sub_8010168
	str r0, [r3]
_08010220:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80101CC

	thumb_func_start sub_801022C
sub_801022C: @ 801022C
	push {r4,lr}
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0801024E
	ldr r4, =gUnknown_03005000
	ldr r1, =0x00000ce8
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801024E
	movs r0, 0xBE
	lsls r0, 7
	bl sub_800FD14
	ldr r0, =sub_80101CC
	str r0, [r4]
_0801024E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801022C

	thumb_func_start sub_8010264
sub_8010264: @ 8010264
	push {lr}
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r2, =gUnknown_03005000
	ldr r0, [r2]
	cmp r0, 0
	bne _08010284
	ldr r1, =0x00000cd9
	adds r0, r2, r1
	movs r1, 0x1
	strb r1, [r0]
	ldr r0, =sub_801022C
	str r0, [r2]
	adds r0, r3, 0
	bl DestroyTask
_08010284:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010264

	thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc
task_add_05_task_del_08FA224_when_no_RfuFunc: @ 8010294
	push {r4,lr}
	ldr r4, =sub_8010264
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _080102AC
	adds r0, r4, 0
	movs r1, 0x5
	bl CreateTask
_080102AC:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc

	thumb_func_start sub_80102B8
sub_80102B8: @ 80102B8
	push {r4,r5,lr}
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	beq _080102E6
	ldr r1, =gUnknown_03005000
	ldr r2, =0x000009e6
	adds r0, r1, r2
	ldrb r0, [r0]
	adds r4, r0, 0
	cmp r4, 0
	bne _080102E6
	adds r5, r1, 0
	adds r5, 0xFE
	ldrh r0, [r5]
	cmp r0, 0x3C
	bls _080102E6
	movs r0, 0xCC
	lsls r0, 7
	bl sub_800FD14
	strh r4, [r5]
_080102E6:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0
	cmp r1, r2
	bcs _08010312
	ldr r0, =gUnknown_03005000
	adds r3, r0, 0
	adds r3, 0xE9
	ldrb r0, [r3]
	cmp r0, 0
	beq _08010312
_08010300:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, r2
	bcs _08010312
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _08010300
_08010312:
	ldr r4, =gUnknown_03005000
	cmp r1, r2
	bne _0801033E
	movs r1, 0
	adds r3, r4, 0
	adds r3, 0xE9
	movs r2, 0
_08010320:
	adds r0, r1, r3
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x4
	bls _08010320
	movs r1, 0x80
	lsls r1, 1
	adds r0, r4, r1
	ldrh r1, [r0]
	adds r1, 0x1
	movs r2, 0
	strh r1, [r0]
	str r2, [r4]
_0801033E:
	adds r1, r4, 0
	adds r1, 0xFE
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80102B8

	thumb_func_start sub_8010358
sub_8010358: @ 8010358
	push {r4,lr}
	ldr r4, =gUnknown_03005000
	ldr r1, =0x000009e6
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801037A
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0801037A
	movs r0, 0xCC
	lsls r0, 7
	bl sub_800FD14
	ldr r0, =sub_80102B8
	str r0, [r4]
_0801037A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010358

	thumb_func_start sub_8010390
sub_8010390: @ 8010390
	push {r4,lr}
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	beq _080103CC
	ldr r4, =gUnknown_03005000
	ldr r1, =0x000009e6
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801041E
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0801041E
	movs r0, 0xCC
	lsls r0, 7
	bl sub_800FD14
	ldr r0, =sub_80102B8
	b _0801041C
	.pool
_080103CC:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0x1
	cmp r1, r2
	bcs _080103FA
	ldr r3, =gUnknown_03005000
	adds r0, r3, 0
	adds r0, 0xEA
	ldrb r0, [r0]
	cmp r0, 0
	beq _080103FA
	adds r3, 0xE9
_080103E8:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, r2
	bcs _080103FA
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _080103E8
_080103FA:
	cmp r1, r2
	bne _0801041E
	ldr r4, =gUnknown_03005000
	ldr r1, =0x000009e6
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801041E
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _0801041E
	movs r0, 0xCC
	lsls r0, 7
	bl sub_800FD14
	ldr r0, =sub_8010358
_0801041C:
	str r0, [r4]
_0801041E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010390

	thumb_func_start sub_8010434
sub_8010434: @ 8010434
	push {lr}
	ldr r1, =gUnknown_03005000
	ldr r2, [r1]
	cmp r2, 0
	bne _08010448
	ldr r0, =sub_8010390
	str r0, [r1]
	adds r0, r1, 0
	adds r0, 0xFE
	strh r2, [r0]
_08010448:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010434

	thumb_func_start sub_8010454
sub_8010454: @ 8010454
	push {r4,lr}
	adds r3, r0, 0
	ldr r1, =gUnknown_082ED6E0
	ldrh r0, [r1]
	cmp r0, r3
	beq _08010482
	ldr r4, =0x0000ffff
	adds r2, r1, 0
_08010464:
	ldrh r0, [r2]
	cmp r0, r4
	bne _08010478
	movs r0, 0
	b _08010484
	.pool
_08010478:
	adds r1, 0x2
	adds r2, 0x2
	ldrh r0, [r1]
	cmp r0, r3
	bne _08010464
_08010482:
	movs r0, 0x1
_08010484:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8010454

	thumb_func_start sub_801048C
sub_801048C: @ 801048C
	push {lr}
	cmp r0, 0
	beq _080104A0
	movs r1, 0x96
	lsls r1, 2
	movs r0, 0x1
	bl sub_800D550
	movs r0, 0
	b _080104AC
_080104A0:
	movs r0, 0
	movs r1, 0
	bl sub_800D550
	lsls r0, 24
	lsrs r0, 24
_080104AC:
	pop {r1}
	bx r1
	thumb_func_end sub_801048C

	thumb_func_start sub_80104B0
sub_80104B0: @ 80104B0
	push {lr}
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cd9
	adds r0, r1
	movs r1, 0x1
	strb r1, [r0]
	movs r0, 0
	bl sub_800C27C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80104B0

	thumb_func_start rfu_get_multiplayer_id
rfu_get_multiplayer_id: @ 80104D0
	push {lr}
	ldr r1, =gUnknown_03005000
	ldrb r0, [r1, 0xC]
	cmp r0, 0x1
	beq _080104EC
	ldr r2, =0x00000cce
	adds r0, r1, r2
	ldrb r0, [r0]
	b _080104EE
	.pool
_080104EC:
	movs r0, 0
_080104EE:
	pop {r1}
	bx r1
	thumb_func_end rfu_get_multiplayer_id

	thumb_func_start sub_80104F4
sub_80104F4: @ 80104F4
	ldr r0, =gUnknown_03005000
	ldrb r0, [r0, 0xD]
	bx lr
	.pool
	thumb_func_end sub_80104F4

	thumb_func_start sub_8010500
sub_8010500: @ 8010500
	push {lr}
	ldr r2, =gUnknown_03005000
	adds r0, r2, 0
	adds r0, 0xF1
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _08010518
	movs r0, 0
	b _08010524
	.pool
_08010518:
	movs r1, 0
	ldr r0, [r2]
	cmp r0, 0
	bne _08010522
	movs r1, 0x1
_08010522:
	adds r0, r1, 0
_08010524:
	pop {r1}
	bx r1
	thumb_func_end sub_8010500

	thumb_func_start sub_8010528
sub_8010528: @ 8010528
	push {lr}
	ldr r0, =gUnknown_03005000
	ldr r0, [r0]
	cmp r0, 0
	beq _08010536
	bl _call_via_r0
_08010536:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010528

	thumb_func_start sub_8010540
sub_8010540: @ 8010540
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r7, 0
	movs r5, 0
	ldr r6, =gUnknown_03005000
	ldr r0, =0x00000c3e
	adds r0, r6
	mov r8, r0
_08010552:
	ldr r1, =0x00000cd1
	adds r0, r6, r1
	adds r4, r5, r0
	ldrb r0, [r4]
	subs r0, 0x5
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _080105DA
	ldr r1, =gUnknown_03007880
	lsls r0, r5, 2
	adds r0, r1
	ldr r0, [r0]
	ldrh r0, [r0, 0x34]
	cmp r0, 0x46
	beq _08010576
	cmp r0, 0x48
	bne _080105C0
_08010576:
	ldr r2, =0x00000cd5
	adds r0, r6, r2
	adds r1, r5, r0
	ldrb r0, [r1]
	cmp r0, 0x8
	bne _080105DA
	movs r0, 0x9
	strb r0, [r4]
	movs r0, 0xA
	strb r0, [r1]
	lsls r1, r5, 24
	lsrs r1, 24
	movs r0, 0x8
	bl rfu_clearSlot
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r5
	lsrs r0, 24
	movs r1, 0x8
	adds r2, r4, 0
	movs r3, 0x1
	bl rfu_NI_setSendData
	movs r7, 0x1
	b _080105DA
	.pool
_080105C0:
	mov r2, r8
	ldrb r0, [r2]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	ldrh r0, [r0, 0x34]
	cmp r0, 0x47
	bne _080105DA
	lsls r1, r5, 24
	lsrs r1, 24
	movs r0, 0x8
	bl rfu_clearSlot
_080105DA:
	adds r5, 0x1
	cmp r5, 0x3
	ble _08010552
	adds r0, r7, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8010540

	thumb_func_start sub_80105EC
sub_80105EC: @ 80105EC
	push {r4-r6,lr}
	movs r3, 0
	movs r1, 0
	ldr r5, =gUnknown_03005CD5
	movs r6, 0x1
	movs r4, 0
_080105F8:
	adds r2, r1, r5
	ldrb r0, [r2]
	cmp r0, 0xB
	bne _0801060C
	adds r0, r6, 0
	lsls r0, r1
	orrs r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
	strb r4, [r2]
_0801060C:
	adds r1, 0x1
	cmp r1, 0x3
	ble _080105F8
	cmp r3, 0
	beq _08010620
	adds r0, r3, 0
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
_08010620:
	movs r1, 0
	ldr r2, =gUnknown_03005CD5
_08010624:
	adds r0, r1, r2
	ldrb r0, [r0]
	subs r0, 0xA
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _0801063C
	movs r0, 0x1
	b _08010644
	.pool
_0801063C:
	adds r1, 0x1
	cmp r1, 0x3
	ble _08010624
	movs r0, 0
_08010644:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_80105EC

	thumb_func_start sub_801064C
sub_801064C: @ 801064C
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	lsls r2, 16
	lsrs r2, 16
	adds r1, r2, 0
	bl sub_8011CE4
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0xFF
	beq _08010680
	ldr r0, =gUnknown_03005000
	ldr r2, =0x00000cd1
	adds r0, r2
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r0, 0x9
	beq _08010680
	movs r0, 0
	b _08010682
	.pool
_08010680:
	movs r0, 0x1
_08010682:
	pop {r1}
	bx r1
	thumb_func_end sub_801064C

	thumb_func_start sub_8010688
sub_8010688: @ 8010688
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r0, r2, 0
	lsls r6, 24
	lsrs r6, 24
	lsls r1, 16
	lsrs r1, 16
	bl sub_8011CE4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, =gUnknown_03005000
	ldr r0, =0x00000cd1
	adds r5, r0
	adds r5, r4, r5
	strb r6, [r5]
	movs r0, 0x4
	adds r1, r4, 0
	bl rfu_clearSlot
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r4
	lsrs r0, 24
	movs r1, 0x8
	adds r2, r5, 0
	movs r3, 0x1
	bl rfu_NI_setSendData
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010688

	thumb_func_start sub_80106D4
sub_80106D4: @ 80106D4
	push {r4,r5,lr}
	ldr r4, =gUnknown_03005000
	ldr r0, =0x00000c85
	adds r5, r4, r0
	movs r0, 0x8
	strb r0, [r5]
	ldr r0, =0x00000c3e
	adds r4, r0
	ldrb r1, [r4]
	movs r0, 0x4
	bl rfu_clearSlot
	ldrb r1, [r4]
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r1
	lsrs r0, 24
	movs r1, 0x8
	adds r2, r5, 0
	movs r3, 0x1
	bl rfu_NI_setSendData
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80106D4

	thumb_func_start sub_8010714
sub_8010714: @ 8010714
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	lsls r2, 16
	lsrs r2, 16
	adds r1, r2, 0
	bl sub_8011CE4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	bne _08010730
	movs r0, 0x2
	b _0801074A
_08010730:
	ldr r1, =gUnknown_03007880
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0
	beq _08010748
	movs r0, 0
	b _0801074A
	.pool
_08010748:
	movs r0, 0x1
_0801074A:
	pop {r1}
	bx r1
	thumb_func_end sub_8010714

	thumb_func_start sub_8010750
sub_8010750: @ 8010750
	push {r4,r5,lr}
	bl sub_8010540
	movs r4, 0
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cd5
	adds r5, r0, r1
_0801075E:
	ldr r1, =gUnknown_03007880
	lsls r0, r4, 2
	adds r0, r1
	ldr r0, [r0]
	ldrh r0, [r0]
	subs r0, 0x26
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bhi _08010788
	adds r1, r4, r5
	ldrb r0, [r1]
	cmp r0, 0xA
	bne _0801077E
	movs r0, 0xB
	strb r0, [r1]
_0801077E:
	lsls r1, r4, 24
	lsrs r1, 24
	movs r0, 0x4
	bl rfu_clearSlot
_08010788:
	adds r4, 0x1
	cmp r4, 0x3
	ble _0801075E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010750

	thumb_func_start sub_80107A0
sub_80107A0: @ 80107A0
	push {r4,r5,lr}
	movs r4, 0
	ldr r1, =gUnknown_03005000
	ldr r2, =0x00000c85
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x8
	bne _080107DA
	ldr r2, =gUnknown_03007880
	ldr r0, =0x00000c3e
	adds r1, r0
	ldrb r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x26
	beq _080107D2
	ldrb r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x27
	bne _080107DA
_080107D2:
	ldrb r1, [r1]
	movs r0, 0x4
	bl rfu_clearSlot
_080107DA:
	ldr r2, =gUnknown_03007880
	ldr r5, =gUnknown_03005000
	ldr r0, =0x00000c3e
	adds r1, r5, r0
	ldrb r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0, 0x34]
	cmp r0, 0x46
	beq _080107FE
	ldrb r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0, 0x34]
	cmp r0, 0x48
	bne _0801082C
_080107FE:
	ldrb r1, [r1]
	movs r0, 0x8
	bl rfu_clearSlot
	ldr r2, =0x00000c86
	adds r4, r5, r2
	ldrb r0, [r4]
	movs r1, 0
	bl sub_8011A64
	ldrb r4, [r4]
	b _08010844
	.pool
_0801082C:
	ldrb r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0, 0x34]
	cmp r0, 0x47
	bne _08010844
	ldrb r1, [r1]
	movs r0, 0x8
	bl rfu_clearSlot
	movs r4, 0x6
_08010844:
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80107A0

	thumb_func_start sub_801084C
sub_801084C: @ 801084C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r5, =gUnknown_03005000
	adds r0, r5, 0
	adds r0, 0xF1
	ldrb r0, [r0]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08010872
	ldr r0, =0x00000ce8
	adds r1, r5, r0
	movs r0, 0
	strb r0, [r1]
	adds r0, r6, 0
	bl DestroyTask
_08010872:
	ldr r2, =gTasks
	lsls r1, r6, 2
	adds r0, r1, r6
	lsls r0, 3
	adds r4, r0, r2
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	adds r7, r1, 0
	cmp r0, 0x3
	beq _0801091C
	cmp r0, 0x3
	bgt _080108A4
	cmp r0, 0x1
	beq _080108CC
	cmp r0, 0x1
	bgt _08010918
	cmp r0, 0
	beq _080108B6
	b _080109D2
	.pool
_080108A4:
	cmp r0, 0x5
	beq _08010950
	cmp r0, 0x5
	blt _0801093E
	cmp r0, 0x6
	beq _08010984
	cmp r0, 0x65
	beq _08010904
	b _080109D2
_080108B6:
	bl sub_800FC60
	lsls r0, 24
	cmp r0, 0
	bne _080108C2
	b _080109D2
_080108C2:
	bl ResetBlockReceivedFlags
	bl sub_800B348
	b _08010948
_080108CC:
	ldrb r0, [r5, 0xC]
	cmp r0, 0x1
	bne _0801090C
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _080108E8
	movs r0, 0xF0
	lsls r0, 7
	bl sub_800FD14
	b _080108F0
	.pool
_080108E8:
	movs r0, 0xEE
	lsls r0, 7
	bl sub_800FD14
_080108F0:
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
	movs r0, 0x65
	strh r0, [r1, 0x8]
	b _080109D2
	.pool
_08010904:
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	bne _080109D2
_0801090C:
	movs r0, 0x2
	strh r0, [r4, 0x8]
	b _080109D2
	.pool
_08010918:
	ldrb r0, [r5, 0xD]
	b _08010944
_0801091C:
	ldrb r0, [r5, 0xC]
	cmp r0, 0x1
	bne _08010948
	bl sub_800FC60
	lsls r0, 24
	cmp r0, 0
	beq _080109D2
	adds r1, r5, 0
	adds r1, 0x5A
	movs r0, 0
	strb r0, [r1]
	movs r0, 0xA1
	lsls r0, 8
	bl sub_800FD14
	b _08010948
_0801093E:
	bl sub_800FC88
	lsls r0, 24
_08010944:
	cmp r0, 0
	beq _080109D2
_08010948:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _080109D2
_08010950:
	movs r4, 0
	ldrb r0, [r5, 0xD]
	cmp r4, r0
	bge _0801096E
_08010958:
	adds r0, r4, 0
	bl sub_800B3A4
	lsls r0, r4, 24
	lsrs r0, 24
	bl sub_800F728
	adds r4, 0x1
	ldrb r2, [r5, 0xD]
	cmp r4, r2
	blt _08010958
_0801096E:
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _080109D2
	.pool
_08010984:
	adds r0, r6, 0
	bl DestroyTask
	ldr r1, =gReceivedRemoteLinkPlayers
	movs r0, 0x1
	strb r0, [r1]
	ldr r0, =0x00000ce8
	adds r1, r5, r0
	movs r0, 0
	strb r0, [r1]
	movs r1, 0x96
	lsls r1, 2
	movs r0, 0x1
	bl sub_800D550
	ldr r2, =0x00000ce6
	adds r1, r5, r2
	ldrb r0, [r1]
	cmp r0, 0
	beq _080109D2
	movs r4, 0
	adds r2, r1, 0
	movs r3, 0x1
	ldr r0, =0x00000ce5
	adds r5, r0
_080109B6:
	ldrb r0, [r2]
	asrs r0, r4
	ands r0, r3
	cmp r0, 0
	beq _080109CC
	adds r0, r3, 0
	lsls r0, r4
	strb r0, [r5]
	ldrb r1, [r2]
	eors r0, r1
	strb r0, [r2]
_080109CC:
	adds r4, 0x1
	cmp r4, 0x3
	ble _080109B6
_080109D2:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801084C

	thumb_func_start sub_80109E8
sub_80109E8: @ 80109E8
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r2, r0, 16
	movs r1, 0
	movs r5, 0x1
	ldr r4, =gUnknown_03005CDE
	movs r3, 0
_080109F6:
	adds r0, r2, 0
	asrs r0, r1
	ands r0, r5
	cmp r0, 0
	beq _08010A04
	adds r0, r1, r4
	strb r3, [r0]
_08010A04:
	adds r1, 0x1
	cmp r1, 0x3
	ble _080109F6
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80109E8

	thumb_func_start sub_8010A14
sub_8010A14: @ 8010A14
	push {r4-r7,lr}
	adds r2, r0, 0
	ldr r1, =gUnknown_03005000
	ldrb r0, [r2, 0xF]
	strb r0, [r1, 0xD]
	movs r4, 0
	ldr r0, =0x00000cde
	adds r5, r1, r0
	adds r3, r2, 0
	adds r3, 0x10
_08010A28:
	adds r0, r4, r5
	adds r1, r3, r4
	ldrb r1, [r1]
	strb r1, [r0]
	adds r4, 0x1
	cmp r4, 0x3
	ble _08010A28
	adds r6, r2, 0
	ldr r5, =gLinkPlayers
	movs r4, 0x4
_08010A3C:
	adds r0, r5, 0
	adds r1, r6, 0
	adds r1, 0x14
	ldm r1!, {r2,r3,r7}
	stm r0!, {r2,r3,r7}
	ldm r1!, {r2,r3,r7}
	stm r0!, {r2,r3,r7}
	ldr r1, [r1]
	str r1, [r0]
	adds r0, r5, 0
	bl sub_800B524
	adds r6, 0x1C
	adds r5, 0x1C
	subs r4, 0x1
	cmp r4, 0
	bge _08010A3C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010A14

	thumb_func_start sub_8010A70
sub_8010A70: @ 8010A70
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r0, =gUnknown_082ED7EC
	adds r1, r4, 0
	bl strcmp
	adds r5, r0, 0
	cmp r5, 0
	bne _08010A9C
	adds r0, r4, 0
	bl sub_8010A14
	mov r0, sp
	strh r5, [r0]
	ldr r2, =0x0100007e
	adds r1, r4, 0
	bl CpuSet
	movs r0, 0
	bl ResetBlockReceivedFlag
_08010A9C:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010A70

	thumb_func_start sub_8010AAC
sub_8010AAC: @ 8010AAC
	push {r4-r7,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r3, =gUnknown_03005000
	ldr r2, =gUnknown_082ED68C
	ldr r1, =0x00000ce9
	adds r0, r3, r1
	ldrb r1, [r0]
	adds r1, r2
	ldr r2, =0x00000cde
	adds r0, r3, r2
	ldrb r1, [r1]
	adds r0, r1
	ldrb r4, [r0]
	adds r0, r3, 0
	adds r0, 0xF1
	ldrb r0, [r0]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08010AE8
	ldr r5, =0x00000ce8
	adds r1, r3, r5
	movs r0, 0
	strb r0, [r1]
	adds r0, r6, 0
	bl DestroyTask
_08010AE8:
	ldr r0, =gTasks
	lsls r2, r6, 2
	adds r1, r2, r6
	lsls r1, 3
	adds r1, r0
	movs r3, 0x8
	ldrsh r1, [r1, r3]
	adds r3, r0, 0
	adds r7, r2, 0
	cmp r1, 0x5
	bls _08010B00
	b _08010CF0
_08010B00:
	lsls r0, r1, 2
	ldr r1, =_08010B28
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08010B28:
	.4byte _08010B40
	.4byte _08010B60
	.4byte _08010B78
	.4byte _08010BC0
	.4byte _08010C0A
	.4byte _08010C94
_08010B40:
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	beq _08010B4A
	b _08010CF0
_08010B4A:
	adds r0, r4, 0
	bl ResetBlockReceivedFlag
	movs r0, 0xF0
	lsls r0, 7
	bl sub_800FD14
	b _08010C4A
	.pool
_08010B60:
	ldr r0, =gSendCmd
	ldrh r0, [r0]
	cmp r0, 0
	beq _08010B6A
	b _08010CF0
_08010B6A:
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r3
	b _08010C52
	.pool
_08010B78:
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	asrs r0, r4
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08010B8C
	b _08010CF0
_08010B8C:
	adds r0, r4, 0
	bl ResetBlockReceivedFlag
	lsls r2, r4, 8
	ldr r0, =gBlockRecvBuffer
	adds r2, r0
	ldr r1, =gLinkPlayers
	lsls r0, r4, 3
	subs r0, r4
	lsls r0, 2
	adds r0, r1
	adds r1, r0, 0
	adds r2, 0x10
	ldm r2!, {r3-r5}
	stm r1!, {r3-r5}
	ldm r2!, {r3-r5}
	stm r1!, {r3-r5}
	ldr r2, [r2]
	str r2, [r1]
	bl sub_800B524
	b _08010C4A
	.pool
_08010BC0:
	ldr r5, =gBlockSendBuffer
	adds r1, r5, 0
	ldr r0, =gUnknown_082ED7EC
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldrh r2, [r0]
	strh r2, [r1]
	ldrb r0, [r0, 0x2]
	strb r0, [r1, 0x2]
	ldr r1, =gUnknown_03005000
	ldrb r0, [r1, 0xD]
	strb r0, [r5, 0xF]
	movs r2, 0
	adds r4, r5, 0
	adds r4, 0x10
	ldr r0, =0x00000cde
	adds r3, r1, r0
_08010BE2:
	adds r0, r4, r2
	adds r1, r2, r3
	ldrb r1, [r1]
	strb r1, [r0]
	adds r2, 0x1
	cmp r2, 0x3
	ble _08010BE2
	ldr r1, =gLinkPlayers
	adds r0, r5, 0
	adds r0, 0x14
	movs r2, 0x8C
	bl memcpy
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_08010C0A:
	ldr r5, =gBlockSendBuffer
	ldr r1, =gUnknown_03005000
	ldrb r0, [r1, 0xD]
	strb r0, [r5, 0xF]
	movs r2, 0
	ldr r3, =gLinkPlayers
	mov r12, r3
	adds r4, r5, 0
	adds r4, 0x10
	ldr r0, =0x00000cde
	adds r3, r1, r0
_08010C20:
	adds r0, r4, r2
	adds r1, r2, r3
	ldrb r1, [r1]
	strb r1, [r0]
	adds r2, 0x1
	cmp r2, 0x3
	ble _08010C20
	adds r0, r5, 0
	adds r0, 0x14
	mov r1, r12
	movs r2, 0x8C
	bl memcpy
	ldr r1, =gBlockSendBuffer
	movs r0, 0
	movs r2, 0xA0
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _08010CF0
_08010C4A:
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
_08010C52:
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _08010CF0
	.pool
_08010C74:
	adds r0, r3, 0
	lsls r0, r2
	ldr r2, =0x00000ce5
	adds r1, r5, r2
	strb r0, [r1]
	ldrb r1, [r4]
	eors r0, r1
	strb r0, [r4]
	ldr r4, =0x00000ce8
	adds r0, r5, r4
	strb r3, [r0]
	b _08010CEA
	.pool
_08010C94:
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _08010CF0
	bl GetBlockReceivedStatus
	movs r1, 0x1
	ands r1, r0
	cmp r1, 0
	beq _08010CF0
	mov r0, sp
	movs r4, 0
	strh r4, [r0]
	ldr r1, =gBlockRecvBuffer
	ldr r2, =0x0100007e
	bl CpuSet
	movs r0, 0
	bl ResetBlockReceivedFlag
	ldr r1, =gUnknown_03005000
	ldr r5, =0x00000ce8
	adds r0, r1, r5
	strb r4, [r0]
	ldr r0, =0x00000ce6
	adds r3, r1, r0
	ldrb r0, [r3]
	cmp r0, 0
	beq _08010CEA
	movs r2, 0
	adds r5, r1, 0
	adds r4, r3, 0
	ldrb r1, [r4]
	movs r3, 0x1
_08010CDA:
	adds r0, r1, 0
	asrs r0, r2
	ands r0, r3
	cmp r0, 0
	bne _08010C74
	adds r2, 0x1
	cmp r2, 0x3
	ble _08010CDA
_08010CEA:
	adds r0, r6, 0
	bl DestroyTask
_08010CF0:
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010AAC

	thumb_func_start sub_8010D0C
sub_8010D0C: @ 8010D0C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r6, =gUnknown_03005000
	adds r0, r6, 0
	adds r0, 0xF1
	ldrb r0, [r0]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _08010D2A
	adds r0, r5, 0
	bl DestroyTask
_08010D2A:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	beq _08010D70
	cmp r0, 0x1
	bgt _08010D50
	cmp r0, 0
	beq _08010D56
	b _08010DA6
	.pool
_08010D50:
	cmp r0, 0x2
	beq _08010D82
	b _08010DA6
_08010D56:
	ldrb r0, [r6, 0xD]
	cmp r0, 0
	beq _08010DA6
	bl sub_800B348
	ldr r1, =gBlockSendBuffer
	movs r0, 0
	movs r2, 0x3C
	bl SendBlock
	b _08010D7A
	.pool
_08010D70:
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _08010DA6
_08010D7A:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _08010DA6
_08010D82:
	bl GetBlockReceivedStatus
	movs r4, 0x1
	adds r1, r4, 0
	ands r1, r0
	cmp r1, 0
	beq _08010DA6
	ldr r0, =gBlockRecvBuffer
	bl sub_8010A14
	movs r0, 0
	bl ResetBlockReceivedFlag
	ldr r0, =gReceivedRemoteLinkPlayers
	strb r4, [r0]
	adds r0, r5, 0
	bl DestroyTask
_08010DA6:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010D0C

	thumb_func_start sub_8010DB4
sub_8010DB4: @ 8010DB4
	push {r4-r7,lr}
	ldr r0, =gUnknown_03005000
	adds r1, r0, 0
	adds r1, 0xEE
	ldrb r1, [r1]
	adds r3, r0, 0
	cmp r1, 0x1
	bne _08010E5C
	ldr r2, =gUnknown_03004140
	ldrb r0, [r2, 0x2]
	cmp r0, 0
	bne _08010E5C
	ldr r0, =gMain
	ldr r1, [r0, 0x4]
	ldr r0, =sub_8018438
	cmp r1, r0
	beq _08010DDE
	ldr r0, [r2, 0x3C]
	ldrb r0, [r0, 0x4]
	cmp r0, 0
	beq _08010DE4
_08010DDE:
	ldr r1, =gWirelessCommType
	movs r0, 0x2
	strb r0, [r1]
_08010DE4:
	ldr r4, =CB2_LinkError
	adds r0, r4, 0
	bl SetMainCallback2
	ldr r0, =gMain
	str r4, [r0, 0x8]
	ldr r5, =gUnknown_03005000
	ldrh r0, [r5, 0xA]
	lsls r4, r0, 16
	ldrh r0, [r5, 0x10]
	lsls r0, 8
	orrs r4, r0
	ldrh r0, [r5, 0x12]
	orrs r4, r0
	ldr r1, =0x000009e6
	adds r0, r5, r1
	ldrb r0, [r0]
	adds r7, r0, 0
	ldr r1, =0x00000c1a
	adds r0, r5, r1
	ldrb r0, [r0]
	adds r6, r0, 0
	bl sub_8011A74
	movs r3, 0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _08010E20
	movs r3, 0x1
_08010E20:
	adds r0, r4, 0
	adds r1, r7, 0
	adds r2, r6, 0
	bl sub_800AF18
	adds r0, r5, 0
	adds r0, 0xEE
	ldrb r1, [r0]
	movs r1, 0x2
	strb r1, [r0]
	bl CloseLink
	b _08010E8E
	.pool
_08010E5C:
	ldr r1, =0x00000c1b
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08010E70
	ldr r1, =0x000009e7
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _08010E8E
_08010E70:
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x2]
	cmp r0, 0
	beq _08010E7C
	bl sub_800D630
_08010E7C:
	movs r4, 0xE0
	lsls r4, 7
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_8011A64
	adds r0, r4, 0
	bl sub_8011170
_08010E8E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010DB4

	thumb_func_start rfu_REQ_recvData_then_sendData
rfu_REQ_recvData_then_sendData: @ 8010EA0
	push {lr}
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x6]
	cmp r0, 0x1
	bne _08010EB8
	bl rfu_REQ_recvData
	bl rfu_waitREQComplete
	movs r0, 0
	bl rfu_REQ_sendData_wrapper
_08010EB8:
	pop {r0}
	bx r0
	.pool
	thumb_func_end rfu_REQ_recvData_then_sendData

	thumb_func_start sub_8010EC0
sub_8010EC0: @ 8010EC0
	push {r4,r5,lr}
	movs r5, 0
	ldr r4, =gUnknown_03005000
	ldr r1, =0x00000ccd
	adds r0, r4, r1
	strb r5, [r0]
	bl Random2
	lsls r0, 16
	lsrs r0, 16
	bl sub_800C54C
	adds r0, r4, 0
	adds r0, 0xEF
	ldrb r0, [r0]
	cmp r0, 0
	bne _08010F14
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	beq _08010F02
	cmp r0, 0x1
	bgt _08010EFC
	cmp r0, 0
	beq _08010F08
	b _08010F14
	.pool
_08010EFC:
	cmp r0, 0x2
	beq _08010F10
	b _08010F14
_08010F02:
	bl sub_800F0F8
	b _08010F14
_08010F08:
	bl sub_800F4F0
	adds r5, r0, 0
	b _08010F14
_08010F10:
	bl rfu_REQ_recvData_then_sendData
_08010F14:
	adds r0, r5, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8010EC0

	thumb_func_start sub_8010F1C
sub_8010F1C: @ 8010F1C
	push {r4,lr}
	movs r4, 0
	ldr r1, =gUnknown_03005000
	adds r0, r1, 0
	adds r0, 0xEF
	ldrb r0, [r0]
	cmp r0, 0
	bne _08010F3C
	ldrb r0, [r1, 0xC]
	cmp r0, 0x1
	bne _08010F38
	bl sub_800F1E0
	adds r4, r0, 0
_08010F38:
	bl sub_8010DB4
_08010F3C:
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8010F1C

	thumb_func_start sub_8010F48
sub_8010F48: @ 8010F48
	push {lr}
	ldr r0, =gUnknown_02022B22
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010F48

	thumb_func_start sub_8010F60
sub_8010F60: @ 8010F60
	push {r4,lr}
	ldr r4, =gUnknown_02022B14
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0xD
	bl memset
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_800DD94
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010F60

	thumb_func_start sub_8010F84
sub_8010F84: @ 8010F84
	push {r4,lr}
	adds r4, r0, 0
	adds r3, r1, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_02022B14
	adds r1, r4, 0
	bl sub_800DD94
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010F84

	thumb_func_start sub_8010FA0
sub_8010FA0: @ 8010FA0
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022B14
	movs r4, 0x1
	ands r0, r4
	lsls r0, 4
	ldrb r3, [r5]
	movs r2, 0x11
	negs r2, r2
	ands r2, r3
	orrs r2, r0
	ands r1, r4
	lsls r1, 5
	movs r0, 0x21
	negs r0, r0
	ands r2, r0
	orrs r2, r1
	strb r2, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010FA0

	thumb_func_start sub_8010FCC
sub_8010FCC: @ 8010FCC
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022B14
	lsls r0, 2
	ldrb r4, [r5, 0x9]
	movs r3, 0x3
	ands r3, r4
	orrs r3, r0
	strb r3, [r5, 0x9]
	ldr r3, =0x000003ff
	adds r0, r3, 0
	ands r1, r0
	ldrh r3, [r5, 0x8]
	ldr r0, =0xfffffc00
	ands r0, r3
	orrs r0, r1
	strh r0, [r5, 0x8]
	lsls r2, 1
	ldrb r1, [r5, 0xB]
	movs r0, 0x1
	ands r0, r1
	orrs r0, r2
	strb r0, [r5, 0xB]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8010FCC

	thumb_func_start sub_801100C
sub_801100C: @ 801100C
	push {r4,lr}
	movs r4, 0x80
	ldr r3, =gLinkPlayers
	lsls r1, r0, 3
	subs r1, r0
	lsls r1, 2
	adds r0, r1, r3
	ldrb r2, [r0, 0x13]
	lsls r2, 3
	orrs r2, r4
	adds r3, 0x4
	adds r1, r3
	ldr r0, [r1]
	movs r1, 0x7
	ands r0, r1
	orrs r0, r2
	lsls r0, 24
	lsrs r0, 24
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801100C

	thumb_func_start sub_801103C
sub_801103C: @ 801103C
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022B14
	movs r4, 0x1
	b _08011054
	.pool
_08011048:
	adds r0, r4, 0
	bl sub_801100C
	adds r1, r5, r4
	strb r0, [r1, 0x3]
	adds r4, 0x1
_08011054:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	blt _08011048
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801103C

	thumb_func_start sub_8011068
sub_8011068: @ 8011068
	push {lr}
	lsls r0, 24
	ldr r2, =gUnknown_02022B14
	lsrs r0, 17
	ldrb r3, [r2, 0xA]
	movs r1, 0x7F
	ands r1, r3
	orrs r1, r0
	strb r1, [r2, 0xA]
	ldr r3, =gUnknown_02022B22
	movs r0, 0
	movs r1, 0x2
	bl rfu_REQ_configGameData
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011068

	thumb_func_start sub_8011090
sub_8011090: @ 8011090
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _0801109E
	bl sub_8010F84
_0801109E:
	ldr r2, =gUnknown_02022B14
	ldr r3, =gUnknown_02022B22
	movs r0, 0
	movs r1, 0x2
	bl rfu_REQ_configGameData
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011090

	thumb_func_start sub_80110B8
sub_80110B8: @ 80110B8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r9, r0
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	bne _0801114C
	movs r5, 0
	movs r7, 0
	ldr r3, =gUnknown_03005000
	ldr r1, =0x00000ce2
	adds r0, r3, r1
	ldr r2, =0x00000ce3
	adds r1, r3, r2
	ldrb r2, [r0]
	ldrb r0, [r1]
	adds r1, r0, 0
	eors r1, r2
	mov r8, r1
	movs r4, 0
	movs r6, 0x1
	ldr r2, =gLinkPlayers
	mov r12, r2
	ldr r0, =0x00000cde
	adds r0, r3
	mov r10, r0
	mov r3, r12
	adds r3, 0x4
_080110FC:
	mov r0, r8
	asrs r0, r4
	ands r0, r6
	cmp r0, 0
	beq _0801113C
	mov r1, r10
	adds r0, r4, r1
	ldrb r1, [r0]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	mov r2, r12
	adds r1, r0, r2
	ldrb r1, [r1, 0x13]
	adds r2, r6, 0
	ands r2, r1
	lsls r2, 3
	adds r0, r3
	ldr r1, [r0]
	movs r0, 0x7
	ands r1, r0
	movs r0, 0x80
	orrs r1, r0
	orrs r2, r1
	lsls r0, r5, 3
	lsls r2, r0
	orrs r7, r2
	adds r5, 0x1
	mov r0, r9
	subs r0, 0x1
	cmp r5, r0
	beq _08011142
_0801113C:
	adds r4, 0x1
	cmp r4, 0x3
	ble _080110FC
_08011142:
	movs r0, 0x45
	adds r1, r7, 0
	movs r2, 0
	bl sub_8011090
_0801114C:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80110B8

	thumb_func_start sub_8011170
sub_8011170: @ 8011170
	push {r4,lr}
	adds r4, r0, 0
	ldr r2, =gUnknown_03005000
	adds r3, r2, 0
	adds r3, 0xEE
	ldrb r0, [r3]
	cmp r0, 0
	bne _08011192
	ldr r1, =gUnknown_03004140
	ldrh r0, [r1, 0x14]
	strh r0, [r2, 0x10]
	ldrh r0, [r1, 0x16]
	strh r0, [r2, 0x12]
	strh r4, [r2, 0xA]
	ldrb r0, [r3]
	movs r0, 0x1
	strb r0, [r3]
_08011192:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011170

	thumb_func_start sub_80111A0
sub_80111A0: @ 80111A0
	ldr r0, =gUnknown_03005000
	adds r0, 0xEE
	ldrb r1, [r0]
	movs r1, 0
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_80111A0

	thumb_func_start sub_80111B0
sub_80111B0: @ 80111B0
	push {lr}
	adds r2, r0, 0
	cmp r2, 0
	bne _080111C8
	ldr r0, =gUnknown_03005000
	adds r0, 0xEE
	ldrb r1, [r0]
	strb r2, [r0]
	b _080111D2
	.pool
_080111C8:
	ldr r0, =gUnknown_03005000
	adds r0, 0xEE
	ldrb r1, [r0]
	movs r1, 0x4
	strb r1, [r0]
_080111D2:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80111B0

	thumb_func_start sub_80111DC
sub_80111DC: @ 80111DC
	push {lr}
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0]
	movs r1, 0x1
	bl sub_8011E94
	ldr r1, =gUnknown_03005000
	movs r0, 0
	str r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80111DC

	thumb_func_start sub_80111FC
sub_80111FC: @ 80111FC
	ldr r1, =gUnknown_03005000
	ldr r0, =sub_80111DC
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_80111FC

	thumb_func_start sub_801120C
sub_801120C: @ 801120C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r6, 0
	cmp r4, 0x32
	bne _08011222
	b _08011360
_08011222:
	cmp r4, 0x32
	bgt _08011252
	cmp r4, 0x13
	bgt _08011240
	cmp r4, 0x12
	blt _08011230
	b _080113EE
_08011230:
	cmp r4, 0x10
	bne _08011236
	b _080113EE
_08011236:
	cmp r4, 0x10
	bgt _0801128C
	cmp r4, 0
	beq _0801127E
	b _080113EE
_08011240:
	cmp r4, 0x30
	bne _08011246
	b _0801136C
_08011246:
	cmp r4, 0x30
	ble _0801124C
	b _08011354
_0801124C:
	cmp r4, 0x14
	beq _08011328
	b _080113EE
_08011252:
	cmp r4, 0x44
	bgt _08011264
	cmp r4, 0x42
	blt _0801125C
	b _080113EE
_0801125C:
	cmp r4, 0x33
	bne _08011262
	b _0801136C
_08011262:
	b _080113EE
_08011264:
	cmp r4, 0xF3
	bne _0801126A
	b _080113BA
_0801126A:
	cmp r4, 0xF3
	bgt _08011276
	cmp r4, 0xF0
	bge _08011274
	b _080113EE
_08011274:
	b _080113D4
_08011276:
	cmp r4, 0xFF
	bne _0801127C
	b _080113D4
_0801127C:
	b _080113EE
_0801127E:
	ldr r1, =gUnknown_03005000
	movs r0, 0x2
	strh r0, [r1, 0x4]
	b _080113EE
	.pool
_0801128C:
	ldr r0, =gUnknown_03004140
	ldrh r0, [r0, 0x14]
	bl sub_80115EC
	movs r5, 0
	movs r0, 0x1
	mov r8, r0
	ldr r1, =gUnknown_03005000
	mov r9, r1
	ldr r3, =0x00000cd5
	add r3, r9
	mov r10, r3
	movs r7, 0x7F
_080112A6:
	ldr r0, =gUnknown_03004140
	ldrh r0, [r0, 0x14]
	asrs r0, r5
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	beq _0801130E
	ldr r0, =gUnknown_03007890
	lsls r1, r5, 5
	adds r1, 0x14
	ldr r0, [r0]
	adds r0, r1
	ldrb r0, [r0, 0x10]
	adds r4, r7, 0
	ands r4, r0
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	adds r0, r7, 0
	ands r0, r1
	cmp r4, r0
	bne _08011304
	ldr r0, =0x00000cd1
	add r0, r9
	adds r0, r5, r0
	movs r1, 0
	strb r1, [r0]
	mov r3, r10
	adds r2, r5, r3
	strb r1, [r2]
	movs r0, 0x20
	adds r1, r5, 0
	movs r3, 0x1
	bl rfu_setRecvBuffer
	b _0801130E
	.pool
_08011304:
	mov r0, r8
	lsls r0, r5
	orrs r6, r0
	lsls r0, r6, 24
	lsrs r6, r0, 24
_0801130E:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _080112A6
	cmp r6, 0
	beq _080113EE
	adds r0, r6, 0
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
	b _080113EE
_08011328:
	ldr r4, =gUnknown_03005000
	ldr r1, =0x00000ce7
	adds r0, r4, r1
	ldr r1, =gUnknown_03004140
	ldrb r2, [r0]
	ldrb r0, [r1]
	cmp r2, r0
	beq _08011342
	eors r0, r2
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
_08011342:
	movs r0, 0x11
	strh r0, [r4, 0x4]
	b _080113EE
	.pool
_08011354:
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	b _080113EA
	.pool
_08011360:
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	movs r1, 0x3
	b _080113EC
	.pool
_0801136C:
	ldr r1, =gUnknown_03005000
	adds r2, r1, 0
	adds r2, 0xF0
	movs r0, 0x4
	strb r0, [r2]
	ldr r3, =0x00000ce2
	adds r1, r3
	ldr r0, =gUnknown_03004140
	ldrb r2, [r0, 0x14]
	ldrb r0, [r1]
	adds r3, r0, 0
	bics r3, r2
	adds r2, r3, 0
	strb r2, [r1]
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _080113B0
	cmp r2, 0
	bne _080113AC
	adds r0, r4, 0
	bl sub_8011170
	b _080113B0
	.pool
_080113AC:
	bl sub_80111FC
_080113B0:
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
	b _080113EE
_080113BA:
	movs r0, 0x1
	movs r1, 0xF3
	bl sub_8011A64
	movs r0, 0xF3
	bl sub_8011170
	ldr r0, =gUnknown_03005000
	adds r0, 0xEF
	b _080113EA
	.pool
_080113D4:
	adds r0, r4, 0
	bl sub_8011170
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_8011A64
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cdb
	adds r0, r1
	ldrb r1, [r0]
_080113EA:
	movs r1, 0x1
_080113EC:
	strb r1, [r0]
_080113EE:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801120C

	thumb_func_start sub_8011404
sub_8011404: @ 8011404
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x31
	bne _08011410
	b _08011570
_08011410:
	cmp r4, 0x31
	bgt _0801143E
	cmp r4, 0x22
	beq _08011494
	cmp r4, 0x22
	bgt _0801142C
	cmp r4, 0x20
	beq _0801147C
	cmp r4, 0x20
	ble _08011426
	b _080115DE
_08011426:
	cmp r4, 0
	beq _0801146E
	b _080115DE
_0801142C:
	cmp r4, 0x24
	beq _080114BA
	cmp r4, 0x24
	blt _080114B0
	cmp r4, 0x25
	beq _08011504
	cmp r4, 0x30
	beq _0801150E
	b _080115DE
_0801143E:
	cmp r4, 0x44
	bgt _08011454
	cmp r4, 0x42
	blt _08011448
	b _080115DE
_08011448:
	cmp r4, 0x33
	beq _08011522
	cmp r4, 0x33
	bge _08011452
	b _0801158C
_08011452:
	b _080115DE
_08011454:
	cmp r4, 0xF3
	bne _0801145A
	b _080115AC
_0801145A:
	cmp r4, 0xF3
	bgt _08011466
	cmp r4, 0xF0
	bge _08011464
	b _080115DE
_08011464:
	b _080115C4
_08011466:
	cmp r4, 0xFF
	bne _0801146C
	b _080115C4
_0801146C:
	b _080115DE
_0801146E:
	ldr r1, =gUnknown_03005000
	movs r0, 0x6
	strh r0, [r1, 0x4]
	b _080115DE
	.pool
_0801147C:
	ldr r0, =gUnknown_03005000
	ldr r1, =gUnknown_03004140
	ldrh r1, [r1, 0x14]
	ldr r2, =0x00000ccd
	adds r0, r2
	b _080115DC
	.pool
_08011494:
	ldr r0, =gUnknown_03005000
	ldr r1, =gUnknown_03004140
	ldrh r1, [r1, 0x14]
	ldr r2, =0x00000c3e
	adds r0, r2
	ldrb r2, [r0]
	b _080115DC
	.pool
_080114B0:
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
	b _080115DE
_080114BA:
	ldr r4, =gUnknown_03005000
	movs r1, 0
	movs r0, 0xB
	strh r0, [r4, 0x4]
	ldr r2, =0x00000c85
	adds r0, r4, r2
	strb r1, [r0]
	ldr r0, =0x00000c86
	adds r2, r4, r0
	strb r1, [r2]
	ldr r1, =0x00000c3e
	adds r5, r4, r1
	ldrb r1, [r5]
	movs r0, 0x20
	movs r3, 0x1
	bl rfu_setRecvBuffer
	ldrb r1, [r5]
	ldr r2, =0x00000c3f
	adds r4, r2
	movs r0, 0x10
	adds r2, r4, 0
	movs r3, 0x46
	bl rfu_setRecvBuffer
	b _080115DE
	.pool
_08011504:
	movs r0, 0x2
	movs r1, 0x25
	bl sub_8011A64
	b _080115DE
_0801150E:
	ldr r0, =gUnknown_03005000
	adds r2, r0, 0
	adds r2, 0xF0
	movs r1, 0x2
	strb r1, [r2]
	ldr r1, =0x00000c86
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x6
	beq _080115DE
_08011522:
	ldr r2, =gUnknown_03005000
	adds r1, r2, 0
	adds r1, 0xF0
	ldrb r0, [r1]
	cmp r0, 0x2
	beq _08011532
	movs r0, 0x4
	strb r0, [r1]
_08011532:
	ldr r1, =0x00000c86
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x9
	beq _08011544
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
_08011544:
	ldr r0, =gUnknown_082ED7FC
	movs r1, 0x5
	movs r2, 0x5
	bl nullsub_5
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _080115DE
	adds r0, r4, 0
	bl sub_8011170
	b _080115DE
	.pool
_08011570:
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	movs r1, 0x1
	strb r1, [r0]
	ldr r0, =gUnknown_082ED814
	movs r1, 0x5
	movs r2, 0x5
	bl nullsub_5
	b _080115DE
	.pool
_0801158C:
	ldr r1, =gUnknown_03005000
	adds r2, r1, 0
	adds r2, 0xF0
	movs r0, 0x3
	strb r0, [r2]
	ldr r2, =0x00000c3c
	adds r1, r2
	ldrb r0, [r1]
	movs r0, 0x1
	strb r0, [r1]
	b _080115DE
	.pool
_080115AC:
	movs r0, 0x1
	movs r1, 0xF3
	bl sub_8011A64
	movs r0, 0xF3
	bl sub_8011170
	ldr r0, =gUnknown_03005000
	adds r0, 0xEF
	b _080115DA
	.pool
_080115C4:
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_8011A64
	adds r0, r4, 0
	bl sub_8011170
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000cdb
	adds r0, r1
	ldrb r1, [r0]
_080115DA:
	movs r1, 0x1
_080115DC:
	strb r1, [r0]
_080115DE:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011404

	thumb_func_start sub_80115EC
sub_80115EC: @ 80115EC
	push {r4-r6,lr}
	adds r3, r0, 0
	movs r2, 0
	movs r6, 0x1
	ldr r0, =gUnknown_03005000
	ldr r4, =0x00000cea
	adds r1, r0, r4
	movs r5, 0
	movs r4, 0xFF
_080115FE:
	adds r0, r3, 0
	asrs r0, r2
	ands r0, r6
	cmp r0, 0
	beq _08011610
	strb r5, [r1]
	ldrb r0, [r1, 0x4]
	orrs r0, r4
	strb r0, [r1, 0x4]
_08011610:
	adds r1, 0x1
	adds r2, 0x1
	cmp r2, 0x3
	ble _080115FE
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80115EC

	thumb_func_start sub_8011628
sub_8011628: @ 8011628
	push {r4-r7,lr}
	adds r5, r0, 0
	movs r3, 0
	movs r2, 0
	movs r4, 0x1
	ldr r6, =gUnknown_03007890
	movs r7, 0x7F
_08011636:
	adds r0, r5, 0
	asrs r0, r2
	ands r0, r4
	cmp r0, 0
	beq _0801165C
	lsls r1, r2, 5
	adds r1, 0x14
	ldr r0, [r6]
	adds r0, r1
	ldrb r1, [r0, 0x10]
	adds r0, r7, 0
	ands r0, r1
	cmp r0, 0x45
	bne _0801165C
	adds r0, r4, 0
	lsls r0, r2
	orrs r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
_0801165C:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _08011636
	adds r0, r3, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8011628

	thumb_func_start sub_8011674
sub_8011674: @ 8011674
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x25
	bne _08011680
	b _080118EC
_08011680:
	cmp r4, 0x25
	bgt _080116C2
	cmp r4, 0x14
	bne _0801168A
	b _08011804
_0801168A:
	cmp r4, 0x14
	bgt _080116A2
	cmp r4, 0x11
	beq _08011722
	cmp r4, 0x11
	ble _08011698
	b _08011A42
_08011698:
	cmp r4, 0
	beq _0801170C
	cmp r4, 0x10
	beq _08011718
	b _08011A42
_080116A2:
	cmp r4, 0x22
	bne _080116A8
	b _08011868
_080116A8:
	cmp r4, 0x22
	bgt _080116B4
	cmp r4, 0x20
	bne _080116B2
	b _08011850
_080116B2:
	b _08011A42
_080116B4:
	cmp r4, 0x23
	bne _080116BA
	b _08011884
_080116BA:
	cmp r4, 0x24
	bne _080116C0
	b _080118BA
_080116C0:
	b _08011A42
_080116C2:
	cmp r4, 0x44
	bgt _080116F2
	cmp r4, 0x42
	blt _080116CC
	b _08011A42
_080116CC:
	cmp r4, 0x32
	bne _080116D2
	b _08011914
_080116D2:
	cmp r4, 0x32
	bgt _080116E4
	cmp r4, 0x30
	bne _080116DC
	b _08011940
_080116DC:
	cmp r4, 0x31
	bne _080116E2
	b _080118F6
_080116E2:
	b _08011A42
_080116E4:
	cmp r4, 0x33
	bne _080116EA
	b _08011948
_080116EA:
	cmp r4, 0x40
	bne _080116F0
	b _080119FC
_080116F0:
	b _08011A42
_080116F2:
	cmp r4, 0xF3
	bne _080116F8
	b _08011A0C
_080116F8:
	cmp r4, 0xF3
	bgt _08011704
	cmp r4, 0xF0
	bge _08011702
	b _08011A42
_08011702:
	b _08011A28
_08011704:
	cmp r4, 0xFF
	bne _0801170A
	b _08011A28
_0801170A:
	b _08011A42
_0801170C:
	ldr r1, =gUnknown_03005000
	movs r0, 0x11
	strh r0, [r1, 0x4]
	b _08011A42
	.pool
_08011718:
	movs r0, 0x4
	movs r1, 0
	bl sub_8011A64
	b _08011A42
_08011722:
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	bne _080117DC
	ldr r5, =gUnknown_03005000
	ldr r1, =0x00000cd9
	adds r0, r5, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _080117DC
	ldr r0, =gUnknown_03004140
	ldrh r0, [r0, 0x14]
	bl sub_8011628
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	beq _080117A6
	adds r0, r4, 0
	bl sub_800E87C
	movs r2, 0x1
	mov r12, r2
	mov r1, r12
	lsls r1, r0
	lsls r1, 24
	lsrs r1, 24
	ldr r7, =0x00000ce6
	adds r6, r5, r7
	ldrb r2, [r6]
	cmp r2, 0
	bne _08011798
	ldr r0, =0x00000ce8
	adds r3, r5, r0
	ldrb r0, [r3]
	cmp r0, 0
	bne _08011798
	subs r7, 0x1
	adds r0, r5, r7
	strb r1, [r0]
	eors r1, r4
	orrs r1, r2
	strb r1, [r6]
	mov r0, r12
	strb r0, [r3]
	b _080117A6
	.pool
_08011798:
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000ce6
	adds r0, r1
	ldrb r2, [r0]
	adds r1, r4, 0
	orrs r1, r2
	strb r1, [r0]
_080117A6:
	ldr r0, =gUnknown_03004140
	ldrh r1, [r0, 0x14]
	cmp r4, r1
	beq _080117F6
	ldr r2, =gUnknown_03005000
	ldr r7, =0x00000ce3
	adds r3, r2, r7
	adds r0, r4, 0
	eors r0, r1
	ldrb r1, [r3]
	orrs r0, r1
	strb r0, [r3]
	ldr r0, =0x00000ce4
	adds r2, r0
	movs r0, 0x2
	strb r0, [r2]
	b _080117F6
	.pool
_080117DC:
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x54
	bne _080117F6
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0]
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
_080117F6:
	ldr r0, =gUnknown_03004140
	ldrh r0, [r0, 0x14]
	bl sub_80115EC
	b _08011A42
	.pool
_08011804:
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	beq _08011836
	ldr r4, =gUnknown_03004140
	ldrb r0, [r4, 0x1]
	cmp r0, 0x1
	bls _08011836
	ldrb r0, [r4, 0x14]
	bl sub_800E87C
	movs r1, 0x80
	lsls r1, 17
	lsls r1, r0
	lsrs r1, 24
	ldrb r0, [r4]
	eors r1, r0
	adds r0, r1, 0
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
_08011836:
	ldr r1, =gUnknown_03005000
	ldrh r0, [r1, 0x4]
	cmp r0, 0xF
	beq _08011840
	b _08011A42
_08011840:
	movs r0, 0x10
	strh r0, [r1, 0x4]
	b _08011A42
	.pool
_08011850:
	ldr r0, =gUnknown_03005000
	ldr r1, =gUnknown_03004140
	ldrh r1, [r1, 0x14]
	ldr r2, =0x00000ccd
	adds r0, r2
	b _08011A40
	.pool
_08011868:
	ldr r0, =gUnknown_03005000
	ldr r1, =gUnknown_03004140
	ldrh r1, [r1, 0x14]
	ldr r7, =0x00000c3e
	adds r0, r7
	ldrb r2, [r0]
	b _08011A40
	.pool
_08011884:
	ldr r1, =gUnknown_03005000
	movs r0, 0x12
	strh r0, [r1, 0x4]
	ldr r0, =0x00000ccf
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, 0x1
	bhi _080118B0
	adds r0, 0x1
	strb r0, [r1]
	ldr r0, =sub_801209C
	movs r1, 0x2
	bl CreateTask
	b _08011A42
	.pool
_080118B0:
	movs r0, 0x2
	movs r1, 0x23
	bl sub_8011A64
	b _08011A42
_080118BA:
	ldr r4, =gUnknown_03005000
	movs r0, 0xD
	strh r0, [r4, 0x4]
	movs r0, 0x3
	movs r1, 0
	bl sub_8011A64
	ldr r1, =0x00000c3e
	adds r0, r4, r1
	ldrb r1, [r0]
	ldr r2, =0x00000c3f
	adds r4, r2
	movs r0, 0x10
	adds r2, r4, 0
	movs r3, 0x46
	bl rfu_setRecvBuffer
	b _08011A42
	.pool
_080118EC:
	movs r0, 0x2
	movs r1, 0x25
	bl sub_8011A64
	b _08011A42
_080118F6:
	ldr r0, =gUnknown_03004140
	ldrb r1, [r0]
	ldrh r0, [r0, 0x14]
	ands r1, r0
	cmp r1, 0
	bne _08011904
	b _08011A42
_08011904:
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	movs r1, 0x1
	b _08011A40
	.pool
_08011914:
	ldr r2, =gUnknown_03005000
	adds r1, r2, 0
	adds r1, 0xF0
	movs r0, 0x3
	strb r0, [r1]
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801192A
	b _08011A42
_0801192A:
	ldr r7, =0x00000c3c
	adds r0, r2, r7
	ldrb r1, [r0]
	movs r1, 0x1
	b _08011A40
	.pool
_08011940:
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	movs r1, 0x2
	strb r1, [r0]
_08011948:
	ldr r2, =gUnknown_03005000
	adds r1, r2, 0
	adds r1, 0xF0
	ldrb r0, [r1]
	cmp r0, 0x2
	beq _08011958
	movs r0, 0x4
	strb r0, [r1]
_08011958:
	ldrb r0, [r2, 0xC]
	cmp r0, 0x1
	bne _08011996
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _080119B4
	ldr r0, =0x00000ce2
	adds r2, r0
	ldr r0, =gUnknown_03004140
	ldrb r1, [r0, 0x14]
	ldrb r0, [r2]
	bics r0, r1
	strb r0, [r2]
	cmp r0, 0
	bne _08011990
	adds r0, r4, 0
	bl sub_8011170
	b _080119B4
	.pool
_08011990:
	bl sub_80111FC
	b _080119B4
_08011996:
	ldr r1, =0x00000ce4
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _080119B4
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _080119B4
	adds r0, r4, 0
	bl sub_8011170
	movs r0, 0
	bl sub_800C27C
_080119B4:
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _080119DA
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x7]
	cmp r0, 0
	bne _080119DA
	ldr r0, =sub_800EB44
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080119DA
	ldr r1, =gUnknown_03005000
	movs r0, 0x11
	strh r0, [r1, 0x4]
_080119DA:
	movs r0, 0x2
	adds r1, r4, 0
	bl sub_8011A64
	b _08011A42
	.pool
_080119FC:
	ldr r0, =gUnknown_03005000
	ldr r2, =0x00000ce3
	adds r0, r2
	b _08011A3E
	.pool
_08011A0C:
	movs r0, 0x1
	movs r1, 0xF3
	bl sub_8011A64
	movs r0, 0xF3
	bl sub_8011170
	ldr r0, =gUnknown_03005000
	adds r0, 0xEF
	movs r1, 0x1
	b _08011A40
	.pool
_08011A28:
	adds r0, r4, 0
	bl sub_8011170
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_8011A64
	ldr r0, =gUnknown_03005000
	ldr r7, =0x00000cdb
	adds r0, r7
	ldrb r1, [r0]
_08011A3E:
	movs r1, 0
_08011A40:
	strb r1, [r0]
_08011A42:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011674

	thumb_func_start sub_8011A50
sub_8011A50: @ 8011A50
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000ce4
	adds r0, r1
	movs r1, 0x2
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_8011A50

	thumb_func_start sub_8011A64
sub_8011A64: @ 8011A64
	ldr r2, =gUnknown_03005000
	adds r3, r2, 0
	adds r3, 0xF1
	strb r0, [r3]
	strh r1, [r2, 0xA]
	bx lr
	.pool
	thumb_func_end sub_8011A64

	thumb_func_start sub_8011A74
sub_8011A74: @ 8011A74
	ldr r0, =gUnknown_03005000
	adds r0, 0xF1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8011A74

	thumb_func_start sub_8011A80
sub_8011A80: @ 8011A80
	push {lr}
	bl sub_8011A74
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x1
	cmp r0, 0x1
	bls _08011A94
	movs r0, 0
	b _08011A96
_08011A94:
	movs r0, 0x1
_08011A96:
	pop {r1}
	bx r1
	thumb_func_end sub_8011A80

	thumb_func_start sub_8011A9C
sub_8011A9C: @ 8011A9C
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000ce8
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8011A9C

	thumb_func_start Rfu_IsMaster
Rfu_IsMaster: @ 8011AB0
	ldr r0, =gUnknown_03005000
	ldrb r0, [r0, 0xC]
	bx lr
	.pool
	thumb_func_end Rfu_IsMaster

	thumb_func_start RfuVSync
RfuVSync: @ 8011ABC
	push {lr}
	bl rfu_syncVBlank_
	pop {r0}
	bx r0
	thumb_func_end RfuVSync

	thumb_func_start sub_8011AC8
sub_8011AC8: @ 8011AC8
	push {lr}
	sub sp, 0x4
	movs r0, 0
	str r0, [sp]
	ldr r1, =gRecvCmds
	ldr r2, =0x05000014
	mov r0, sp
	bl CpuSet
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011AC8

	thumb_func_start sub_8011AE8
sub_8011AE8: @ 8011AE8
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8011AE8

	thumb_func_start sub_8011AFC
sub_8011AFC: @ 8011AFC
	push {r4,lr}
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl ResetTasks
	bl ResetPaletteFade
	ldr r0, =sub_8011AE8
	bl SetVBlankCallback
	bl sub_80093CC
	lsls r0, 24
	cmp r0, 0
	beq _08011B70
	ldr r1, =gLinkType
	ldr r2, =0x00001111
	adds r0, r2, 0
	strh r0, [r1]
	bl sub_800B488
	bl OpenLink
	ldr r0, =gMain
	ldrh r0, [r0, 0x24]
	bl SeedRng
	movs r4, 0
_08011B38:
	bl Random
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	adds r1, 0xA
	adds r1, r4
	strb r0, [r1]
	adds r4, 0x1
	cmp r4, 0x3
	ble _08011B38
	movs r1, 0xAA
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	bl sub_8011BA4
	ldr r0, =sub_8011BF8
	bl SetMainCallback2
_08011B70:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011AFC

	thumb_func_start sub_8011B90
sub_8011B90: @ 8011B90
	push {lr}
	ldr r0, =sub_800EB44
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8011B90

	thumb_func_start sub_8011BA4
sub_8011BA4: @ 8011BA4
	push {r4,lr}
	ldr r4, =nullsub_89
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _08011BC2
	adds r0, r4, 0
	movs r1, 0
	bl CreateTask
	ldr r1, =gUnknown_03005000
	adds r1, 0x66
	strb r0, [r1]
_08011BC2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011BA4

	thumb_func_start sub_8011BD0
sub_8011BD0: @ 8011BD0
	push {lr}
	ldr r0, =nullsub_89
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08011BEA
	ldr r0, =gUnknown_03005000
	adds r0, 0x66
	ldrb r0, [r0]
	bl DestroyTask
_08011BEA:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011BD0

	thumb_func_start sub_8011BF8
sub_8011BF8: @ 8011BF8
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_8011BF8

	thumb_func_start sub_8011C10
sub_8011C10: @ 8011C10
	push {r4-r6,lr}
	adds r4, r0, 0
	ldr r1, =gUnknown_03005000
	movs r0, 0x1
	strb r0, [r1, 0xC]
	bl sub_8010F48
	ldr r0, =sub_801120C
	movs r1, 0
	bl sub_800BF4C
	ldr r2, =gUnknown_02022B2C
	adds r1, r2, 0
	ldr r0, =gUnknown_082ED608
	ldm r0!, {r3,r5,r6}
	stm r1!, {r3,r5,r6}
	ldm r0!, {r3,r5,r6}
	stm r1!, {r3,r5,r6}
	ldr r0, =gUnknown_082ED620
	subs r4, 0x1
	adds r4, r0
	ldrb r0, [r4]
	strh r0, [r2, 0x2]
	bl sub_800EE78
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011C10

	thumb_func_start sub_8011C5C
sub_8011C5C: @ 8011C5C
	push {lr}
	ldr r1, =gUnknown_03005000
	movs r0, 0
	strb r0, [r1, 0xC]
	bl sub_8010F48
	ldr r0, =sub_8011404
	ldr r1, =sub_800ED34
	bl sub_800BF4C
	bl sub_800EF00
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011C5C

	thumb_func_start sub_8011C84
sub_8011C84: @ 8011C84
	push {r4-r7,lr}
	ldr r4, =gUnknown_03005000
	movs r5, 0
	movs r0, 0x2
	strb r0, [r4, 0xC]
	bl sub_8010F48
	ldr r0, =sub_8011674
	movs r1, 0
	bl sub_800BF4C
	ldr r2, =gUnknown_02022B2C
	adds r1, r2, 0
	ldr r0, =gUnknown_082ED608
	ldm r0!, {r3,r6,r7}
	stm r1!, {r3,r6,r7}
	ldm r0!, {r3,r6,r7}
	stm r1!, {r3,r6,r7}
	strb r5, [r2, 0x11]
	movs r0, 0x96
	lsls r0, 2
	strh r0, [r2, 0x12]
	ldr r0, =sub_800EB44
	movs r1, 0x1
	bl CreateTask
	adds r4, 0x67
	strb r0, [r4]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011C84

	thumb_func_start sub_8011CD8
sub_8011CD8: @ 8011CD8
	ldrb r1, [r0, 0x1]
	lsls r1, 8
	ldrb r0, [r0]
	orrs r0, r1
	bx lr
	thumb_func_end sub_8011CD8

	thumb_func_start sub_8011CE4
sub_8011CE4: @ 8011CE4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	str r0, [sp]
	lsls r1, 16
	lsrs r1, 16
	mov r10, r1
	movs r0, 0xFF
	mov r9, r0
	movs r7, 0
	ldr r1, =gUnknown_03007890
	mov r8, r1
_08011D02:
	lsls r4, r7, 5
	adds r5, r4, 0
	adds r5, 0x14
	mov r1, r8
	ldr r0, [r1]
	adds r0, r5
	adds r0, 0x8
	bl sub_8011CD8
	lsls r0, 16
	lsrs r6, r0, 16
	mov r1, r8
	ldr r0, [r1]
	adds r0, r4
	ldrh r0, [r0, 0x18]
	bl sub_8010454
	cmp r0, 0
	beq _08011D4C
	mov r0, r8
	ldr r1, [r0]
	adds r1, r5
	adds r1, 0x15
	ldr r0, [sp]
	bl StringCompare
	cmp r0, 0
	bne _08011D4C
	cmp r10, r6
	bne _08011D4C
	mov r9, r7
	mov r1, r8
	ldr r0, [r1]
	adds r0, r4
	ldrb r0, [r0, 0x16]
	cmp r0, 0xFF
	bne _08011D56
_08011D4C:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0x3
	bls _08011D02
_08011D56:
	mov r0, r9
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8011CE4

	thumb_func_start sub_8011D6C
sub_8011D6C: @ 8011D6C
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r0, r6, 24
	lsrs r0, 24
	bl rfu_REQ_disconnect
	bl rfu_waitREQComplete
	ldr r4, =gUnknown_03005000
	ldr r0, =0x00000ce2
	adds r5, r4, r0
	ldrb r0, [r5]
	bics r0, r6
	strb r0, [r5]
	ldr r1, =0x00000cda
	adds r6, r4, r1
	ldrb r1, [r6]
	movs r0, 0x1
	bl rfu_clearSlot
	ldrb r0, [r5]
	ldr r1, =0x00000c87
	adds r4, r1
	adds r1, r4, 0
	movs r2, 0x46
	bl rfu_UNI_setSendData
	ldrb r0, [r5]
	bl sub_800E87C
	strb r0, [r6]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011D6C

	thumb_func_start sub_8011DC0
sub_8011DC0: @ 8011DC0
	push {lr}
	lsls r1, 16
	lsrs r1, 16
	bl sub_8011CE4
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0xFF
	beq _08011DDA
	movs r0, 0x1
	lsls r0, r1
	bl sub_8011D6C
_08011DDA:
	pop {r0}
	bx r0
	thumb_func_end sub_8011DC0

	thumb_func_start sub_8011DE0
sub_8011DE0: @ 8011DE0
	push {r4-r6,lr}
	adds r4, r0, 0
	cmp r4, 0
	beq _08011E20
	movs r3, 0
	movs r2, 0
	ldr r5, =gUnknown_03005CDE
	adds r6, r5, 0x4
_08011DF0:
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r0, r4
	bne _08011E0E
	ldrb r0, [r6]
	asrs r0, r2
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08011E0E
	adds r0, r1, 0
	lsls r0, r2
	orrs r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
_08011E0E:
	adds r2, 0x1
	cmp r2, 0x3
	ble _08011DF0
	cmp r3, 0
	beq _08011E20
	adds r0, r3, 0
	movs r1, 0x2
	bl sub_8011E94
_08011E20:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011DE0

	thumb_func_start sub_8011E2C
sub_8011E2C: @ 8011E2C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r6, =gSendCmd
	ldrh r0, [r6]
	cmp r0, 0
	bne _08011E7A
	ldr r5, =gUnknown_03005000
	ldr r1, =0x00000ce8
	adds r0, r5, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _08011E7A
	movs r0, 0xED
	lsls r0, 8
	bl sub_800FD14
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r0, 0x8]
	strh r1, [r6, 0x2]
	ldrh r1, [r0, 0xA]
	strh r1, [r6, 0x4]
	ldr r1, =gUnknown_082ED695
	movs r2, 0x8
	ldrsh r0, [r0, r2]
	adds r0, r1
	ldrb r1, [r5, 0xD]
	ldrb r0, [r0]
	subs r1, r0
	strb r1, [r5, 0xD]
	ldrb r0, [r5, 0xD]
	strh r0, [r6, 0x6]
	adds r0, r4, 0
	bl DestroyTask
_08011E7A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011E2C

	thumb_func_start sub_8011E94
sub_8011E94: @ 8011E94
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r6, r1, 0
	ldr r5, =sub_8011E2C
	adds r0, r5, 0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	bne _08011ECC
	adds r0, r5, 0
	movs r1, 0x5
	bl CreateTask
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	strh r4, [r0, 0x8]
	b _08011EDC
	.pool
_08011ECC:
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	orrs r4, r0
	strh r4, [r1, 0x8]
_08011EDC:
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	strh r6, [r0, 0xA]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011E94

	thumb_func_start sub_8011EF4
sub_8011EF4: @ 8011EF4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	bl sub_800EE94
	lsls r0, 24
	cmp r0, 0
	beq _08011FA4
	adds r0, r4, 0
	adds r0, 0x10
	bl sub_8011CD8
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl sub_8011CE4
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _08011F8C
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	lsls r1, r2, 5
	adds r0, r1
	ldrb r0, [r0, 0x16]
	cmp r0, 0xFF
	beq _08011F5C
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000c3d
	adds r0, r1
	strb r2, [r0]
	bl sub_800EEBC
	cmp r0, 0
	beq _08011FAA
	b _08011F84
	.pool
_08011F5C:
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r5, 0x7F
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0x15
	beq _08011FA4
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0x16
	beq _08011FA4
	movs r1, 0xE0
	lsls r1, 7
	movs r0, 0x2
	bl sub_8011A64
_08011F84:
	adds r0, r6, 0
	bl DestroyTask
	b _08011FAA
_08011F8C:
	ldrh r0, [r4, 0x1E]
	adds r0, 0x1
	strh r0, [r4, 0x1E]
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000c3d
	adds r0, r1
	strb r2, [r0]
	b _08011FAA
	.pool
_08011FA4:
	ldrh r0, [r4, 0x1E]
	adds r0, 0x1
	strh r0, [r4, 0x1E]
_08011FAA:
	movs r1, 0x1E
	ldrsh r0, [r4, r1]
	cmp r0, 0xF0
	ble _08011FC2
	movs r1, 0xE0
	lsls r1, 7
	movs r0, 0x2
	bl sub_8011A64
	adds r0, r6, 0
	bl DestroyTask
_08011FC2:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8011EF4

	thumb_func_start sub_8011FC8
sub_8011FC8: @ 8011FC8
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r5, r1, 16
	lsrs r5, 16
	ldr r0, =gUnknown_03005000
	adds r0, 0xF1
	movs r1, 0
	strb r1, [r0]
	ldr r0, =sub_8011EF4
	movs r1, 0x3
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	adds r0, r4, 0
	adds r1, r6, 0
	bl StringCopy
	strh r5, [r4, 0x10]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8011FC8

	thumb_func_start sub_801200C
sub_801200C: @ 801200C
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 16
	lsrs r5, r0, 16
	bl sub_800F7DC
	ldrb r1, [r0, 0xA]
	movs r2, 0x7F
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0x45
	bne _08012032
	ldrb r1, [r4, 0xA]
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0x45
	beq _08012092
_0801202E:
	movs r0, 0x1
	b _08012094
_08012032:
	ldrb r1, [r4, 0xA]
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0x40
	bne _0801202E
	cmp r5, 0x44
	bne _08012092
	ldr r5, =gUnknown_0300510A
	ldrh r0, [r5, 0x8]
	ldr r3, =0x000003ff
	adds r2, r3, 0
	ands r2, r0
	movs r0, 0xCE
	lsls r0, 1
	cmp r2, r0
	bne _08012068
	ldrh r1, [r4, 0x8]
	adds r0, r3, 0
	ands r0, r1
	cmp r0, r2
	beq _08012092
	b _0801202E
	.pool
_08012068:
	ldrh r1, [r4, 0x8]
	adds r0, r3, 0
	ands r0, r1
	cmp r0, r2
	bne _0801202E
	ldrb r2, [r4, 0xB]
	movs r0, 0xFE
	ldrb r3, [r5, 0xB]
	adds r1, r0, 0
	ands r1, r2
	ands r0, r3
	cmp r1, r0
	bne _0801202E
	ldrb r2, [r4, 0x9]
	movs r0, 0xFC
	ldrb r3, [r5, 0x9]
	adds r1, r0, 0
	ands r1, r2
	ands r0, r3
	cmp r1, r0
	bne _0801202E
_08012092:
	movs r0, 0
_08012094:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801200C

	thumb_func_start sub_801209C
sub_801209C: @ 801209C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r5, r0, 24
	mov r8, r5
	ldr r6, =gUnknown_03005000
	adds r0, r6, 0
	adds r0, 0xF1
	ldrb r0, [r0]
	cmp r0, 0x4
	bne _080120BA
	adds r0, r5, 0
	bl DestroyTask
_080120BA:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	lsls r0, 16
	movs r1, 0x96
	lsls r1, 17
	cmp r0, r1
	ble _080120E4
	movs r1, 0xE0
	lsls r1, 7
	movs r0, 0x2
	bl sub_8011A64
	adds r0, r5, 0
	bl DestroyTask
_080120E4:
	ldr r1, =0x00000ccd
	adds r0, r6, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801217C
	ldr r0, =gUnknown_03004140
	ldrb r0, [r0, 0x6]
	cmp r0, 0
	bne _0801217C
	movs r2, 0x86
	lsls r2, 1
	adds r0, r6, r2
	bl sub_8011CD8
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	ldr r2, =0x00000119
	adds r0, r6, r2
	bl sub_8011CE4
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _0801217C
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	ldr r7, =gUnknown_03007890
	lsls r4, r2, 5
	adds r2, r4, 0
	adds r2, 0x14
	ldr r1, [r7]
	adds r1, r2
	adds r1, 0x6
	bl sub_801200C
	cmp r0, 0
	bne _0801216C
	ldr r0, [r7]
	adds r1, r0, r4
	ldrb r0, [r1, 0x16]
	cmp r0, 0xFF
	beq _0801217C
	ldrh r0, [r1, 0x14]
	movs r1, 0x5A
	bl sub_800C12C
	lsls r0, 24
	cmp r0, 0
	bne _0801217C
	movs r0, 0xA
	strh r0, [r6, 0x4]
	adds r0, r5, 0
	bl DestroyTask
	b _0801217C
	.pool
_0801216C:
	movs r1, 0xE0
	lsls r1, 7
	movs r0, 0x2
	bl sub_8011A64
	mov r0, r8
	bl DestroyTask
_0801217C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_801209C

	thumb_func_start sub_8012188
sub_8012188: @ 8012188
	push {r4-r7,lr}
	adds r3, r0, 0
	adds r5, r1, 0
	lsls r4, r2, 24
	lsrs r4, 24
	ldr r6, =gUnknown_03005000
	ldr r1, =0x00000ccf
	adds r0, r6, r1
	movs r7, 0
	strb r7, [r0]
	adds r0, r6, 0
	adds r0, 0xF1
	strb r7, [r0]
	ldr r1, =0x00000119
	adds r0, r6, r1
	adds r1, r3, 0
	bl StringCopy
	movs r1, 0x85
	lsls r1, 1
	adds r0, r6, r1
	adds r1, r5, 0
	movs r2, 0xD
	bl memcpy
	bl sub_800D658
	ldr r0, =sub_801209C
	movs r1, 0x2
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r5
	strh r4, [r1, 0xA]
	ldr r0, =sub_800EB44
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r1, r0, 24
	adds r2, r1, 0
	cmp r4, 0x45
	bne _08012210
	cmp r1, 0xFF
	beq _0801221E
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	movs r1, 0x1
	strh r1, [r0, 0x16]
	b _0801221E
	.pool
_08012210:
	cmp r2, 0xFF
	beq _0801221E
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r5
	strh r7, [r0, 0x16]
_0801221E:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8012188

	thumb_func_start sub_8012224
sub_8012224: @ 8012224
	push {lr}
	ldr r0, =gUnknown_03005000
	adds r0, 0xF0
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08012238
	movs r0, 0
	b _0801223A
	.pool
_08012238:
	movs r0, 0x1
_0801223A:
	pop {r1}
	bx r1
	thumb_func_end sub_8012224

	thumb_func_start sub_8012240
sub_8012240: @ 8012240
	push {r4,lr}
	movs r1, 0
	ldr r0, =gUnknown_03004140
	ldrb r2, [r0]
	ldr r4, =gUnknown_03005CD1
	movs r3, 0x1
_0801224C:
	adds r0, r2, 0
	asrs r0, r1
	ands r0, r3
	cmp r0, 0
	beq _0801226C
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801226C
	movs r0, 0
	b _08012274
	.pool
_0801226C:
	adds r1, 0x1
	cmp r1, 0x3
	ble _0801224C
	movs r0, 0x1
_08012274:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8012240

	thumb_func_start sub_801227C
sub_801227C: @ 801227C
	push {r4,lr}
	movs r4, 0
_08012280:
	lsls r2, r4, 24
	lsrs r2, 24
	ldr r0, =gUnknown_082ED82C
	movs r1, 0
	bl nullsub_5
	adds r4, 0x1
	cmp r4, 0x13
	ble _08012280
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801227C

	thumb_func_start sub_801229C
sub_801229C: @ 801229C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1C
	movs r2, 0x13
	movs r3, 0x2
	bl nullsub_13
	ldr r4, =gUnknown_03007890
	ldr r0, [r4]
	ldrb r0, [r0, 0x2]
	movs r1, 0x14
	movs r2, 0x1
	movs r3, 0x1
	bl nullsub_13
	ldr r0, [r4]
	ldrb r0, [r0, 0x3]
	movs r1, 0x17
	movs r2, 0x1
	movs r3, 0x1
	bl nullsub_13
	ldr r0, =gUnknown_03005000
	ldrb r0, [r0, 0xC]
	cmp r0, 0x1
	bne _08012378
	movs r6, 0
	adds r7, r4, 0
	movs r5, 0x14
_080122E0:
	ldr r2, [r7]
	ldrb r0, [r2, 0x7]
	asrs r0, r6
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0801231E
	lsls r0, r6, 5
	adds r0, r2, r0
	ldrh r0, [r0, 0x18]
	adds r4, r6, 0x3
	lsls r4, 24
	lsrs r4, 24
	adds r2, r4, 0
	movs r3, 0x4
	bl nullsub_13
	ldr r0, [r7]
	adds r0, r5
	adds r0, 0x6
	movs r1, 0x6
	adds r2, r4, 0
	bl nullsub_5
	ldr r0, [r7]
	adds r0, r5
	adds r0, 0x15
	movs r1, 0x16
	adds r2, r4, 0
	bl nullsub_5
_0801231E:
	adds r5, 0x20
	adds r6, 0x1
	cmp r6, 0x3
	ble _080122E0
	movs r6, 0
	ldr r0, =gUnknown_03005000
	mov r8, r0
_0801232C:
	movs r5, 0
	adds r7, r6, 0x1
	lsls r0, r6, 3
	adds r2, r6, 0
	adds r2, 0xB
	subs r0, r6
	lsls r0, 1
	mov r1, r8
	adds r1, 0x14
	adds r4, r0, r1
	lsls r6, r2, 24
_08012342:
	ldrb r0, [r4]
	lsls r1, r5, 25
	lsrs r1, 24
	lsrs r2, r6, 24
	movs r3, 0x2
	bl nullsub_13
	adds r4, 0x1
	adds r5, 0x1
	cmp r5, 0xD
	ble _08012342
	adds r6, r7, 0
	cmp r6, 0x3
	ble _0801232C
	ldr r0, =gUnknown_082ED868
	movs r1, 0x1
	movs r2, 0xF
	bl nullsub_5
	b _080124AA
	.pool
_08012378:
	ldr r1, [r4]
	ldrb r0, [r1, 0x2]
	cmp r0, 0
	beq _08012414
	ldrb r0, [r1, 0x7]
	cmp r0, 0
	beq _08012414
	movs r6, 0
	movs r5, 0xC0
	lsls r5, 18
_0801238C:
	lsrs r4, r5, 24
	movs r0, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x4
	bl nullsub_13
	ldr r0, =gUnknown_082ED84B
	movs r1, 0x6
	adds r2, r4, 0
	bl nullsub_5
	ldr r0, =gUnknown_082ED85B
	movs r1, 0x16
	adds r2, r4, 0
	bl nullsub_5
	movs r1, 0x80
	lsls r1, 17
	adds r5, r1
	adds r6, 0x1
	cmp r6, 0x3
	ble _0801238C
	ldr r5, =gUnknown_03007890
	ldr r1, [r5]
	ldr r4, =gUnknown_03005000
	ldr r0, =0x00000c3e
	adds r4, r0
	ldrb r0, [r4]
	lsls r0, 5
	adds r1, r0
	ldrh r0, [r1, 0x18]
	movs r1, 0x1
	movs r2, 0x3
	movs r3, 0x4
	bl nullsub_13
	ldrb r1, [r4]
	lsls r1, 5
	adds r1, 0x14
	ldr r0, [r5]
	adds r0, r1
	adds r0, 0x6
	movs r1, 0x6
	movs r2, 0x3
	bl nullsub_5
	ldrb r1, [r4]
	lsls r1, 5
	adds r1, 0x14
	ldr r0, [r5]
	adds r0, r1
	adds r0, 0x15
	movs r1, 0x16
	movs r2, 0x3
	bl nullsub_5
	b _080124AA
	.pool
_08012414:
	movs r6, 0
	ldr r1, =gUnknown_03007890
	ldr r0, [r1]
	ldrb r0, [r0, 0x8]
	cmp r6, r0
	bge _08012470
	adds r7, r1, 0
	movs r1, 0x14
	mov r8, r1
_08012426:
	ldr r0, [r7]
	lsls r5, r6, 5
	adds r1, r0, r5
	ldrb r0, [r1, 0x16]
	cmp r0, 0xFF
	beq _08012462
	ldrh r0, [r1, 0x18]
	adds r4, r6, 0x3
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x4
	bl nullsub_13
	ldr r0, [r7]
	adds r0, r5
	ldrh r0, [r0, 0x14]
	movs r1, 0x6
	adds r2, r4, 0
	movs r3, 0x4
	bl nullsub_13
	ldr r0, [r7]
	add r0, r8
	adds r0, 0x15
	movs r1, 0x16
	adds r2, r4, 0
	bl nullsub_5
_08012462:
	movs r0, 0x20
	add r8, r0
	adds r6, 0x1
	ldr r0, [r7]
	ldrb r0, [r0, 0x8]
	cmp r6, r0
	blt _08012426
_08012470:
	cmp r6, 0x3
	bgt _080124AA
	lsls r0, r6, 24
	movs r1, 0xC0
	lsls r1, 18
	adds r5, r0, r1
_0801247C:
	lsrs r4, r5, 24
	movs r0, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x4
	bl nullsub_13
	ldr r0, =gUnknown_082ED84B
	movs r1, 0x6
	adds r2, r4, 0
	bl nullsub_5
	ldr r0, =gUnknown_082ED85B
	movs r1, 0x16
	adds r2, r4, 0
	bl nullsub_5
	movs r0, 0x80
	lsls r0, 17
	adds r5, r0
	adds r6, 0x1
	cmp r6, 0x3
	ble _0801247C
_080124AA:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801229C

	thumb_func_start sub_80124C0
sub_80124C0: @ 80124C0
	ldr r0, =gUnknown_03005000
	ldr r1, =0x00000c1a
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_80124C0

	thumb_func_start sub_80124D4
sub_80124D4: @ 80124D4
	ldr r0, =gUnknown_03005000
	ldr r1, =0x000009e6
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_80124D4

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