summaryrefslogtreecommitdiff
path: root/asm/berry_crush_2.s
diff options
context:
space:
mode:
authorSwastik Baranwal <swstkbaranwal@gmail.com>2019-06-23 18:47:35 +0530
committerGitHub <noreply@github.com>2019-06-23 18:47:35 +0530
commit99703c6ab831d34e6859d8a8f53ba8e73dc4d3d9 (patch)
tree3a712d3039d152616af58a45a13d82c40a87e58f /asm/berry_crush_2.s
parent6d190f861e3559eec922cd760778c0cba6e08397 (diff)
parent9ee0c34758a63f8c00724b6fc984b4e96be2f7af (diff)
Merge pull request #5 from pret/master
Take files
Diffstat (limited to 'asm/berry_crush_2.s')
-rw-r--r--asm/berry_crush_2.s3494
1 files changed, 3494 insertions, 0 deletions
diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s
new file mode 100644
index 000000000..172724d0f
--- /dev/null
+++ b/asm/berry_crush_2.s
@@ -0,0 +1,3494 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_814BB4C
+sub_814BB4C: @ 814BB4C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ mov r8, r4
+ bl sub_814B6F0
+ adds r6, r0, 0
+ cmp r5, 0x19
+ bls _0814BB6A
+ movs r5, 0
+_0814BB6A:
+ cmp r4, 0
+ beq _0814BB74
+ cmp r4, 0x1
+ beq _0814BBA0
+ b _0814BBAA
+_0814BB74:
+ cmp r5, 0
+ beq _0814BB88
+ ldr r0, _0814BB9C @ =gUnknown_846E34C
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r2, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl _call_via_r2
+_0814BB88:
+ ldrb r0, [r6, 0xE]
+ cmp r0, 0x19
+ bls _0814BB92
+ mov r0, r8
+ strb r0, [r6, 0xE]
+_0814BB92:
+ ldr r0, _0814BB9C @ =gUnknown_846E34C
+ ldrb r1, [r6, 0xE]
+ lsls r1, 2
+ b _0814BBA4
+ .align 2, 0
+_0814BB9C: .4byte gUnknown_846E34C
+_0814BBA0:
+ ldr r0, _0814BBB4 @ =gUnknown_846E34C
+ lsls r1, r5, 2
+_0814BBA4:
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r6, 0x4]
+_0814BBAA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814BBB4: .4byte gUnknown_846E34C
+ thumb_func_end sub_814BB4C
+
+ thumb_func_start sub_814BBB8
+sub_814BBB8: @ 814BBB8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ lsls r3, 8
+ orrs r2, r3
+ ldrb r3, [r1, 0x2]
+ lsls r3, 16
+ orrs r2, r3
+ ldrb r3, [r1, 0x3]
+ lsls r3, 24
+ adds r0, r2, 0
+ orrs r0, r3
+ ldrb r2, [r1, 0x9]
+ strb r2, [r1]
+ ldrb r4, [r1, 0x8]
+ lsls r4, 8
+ ldrb r2, [r1, 0x7]
+ orrs r4, r2
+ ldr r5, _0814BC0C @ =gPaletteFade
+ ldrb r3, [r5, 0x8]
+ movs r2, 0x7F
+ ands r2, r3
+ strb r2, [r5, 0x8]
+ movs r5, 0x4
+ ldrsb r5, [r1, r5]
+ ldrb r2, [r1, 0x5]
+ ldrb r3, [r1, 0x6]
+ str r4, [sp]
+ adds r1, r5, 0
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ movs r0, 0x2
+ strb r0, [r6, 0xE]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814BC0C: .4byte gPaletteFade
+ thumb_func_end sub_814BBB8
+
+ thumb_func_start sub_814BC10
+sub_814BC10: @ 814BC10
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _0814BC44
+ cmp r0, 0x1
+ bgt _0814BC26
+ cmp r0, 0
+ beq _0814BC30
+ b _0814BC66
+_0814BC26:
+ cmp r0, 0x2
+ beq _0814BC4A
+ cmp r0, 0x3
+ beq _0814BC56
+ b _0814BC66
+_0814BC30:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814BC6C
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0814BC66
+ movs r0, 0x3
+ b _0814BC6A
+_0814BC44:
+ bl sub_80FA42C
+ b _0814BC66
+_0814BC4A:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814BC66
+ b _0814BC6C
+_0814BC56:
+ ldrb r0, [r4, 0xF]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0
+ strb r0, [r4, 0xC]
+ b _0814BC6E
+_0814BC66:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+_0814BC6A:
+ strb r0, [r4, 0xC]
+_0814BC6C:
+ movs r0, 0
+_0814BC6E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BC10
+
+ thumb_func_start sub_814BC74
+sub_814BC74: @ 814BC74
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r5, r1, 0
+ ldrb r4, [r5, 0x3]
+ lsls r4, 8
+ ldrb r0, [r5, 0x2]
+ orrs r4, r0
+ ldrb r6, [r7, 0xC]
+ cmp r6, 0x1
+ beq _0814BD20
+ cmp r6, 0x1
+ bgt _0814BC98
+ cmp r6, 0
+ beq _0814BCA2
+ b _0814BD68
+_0814BC98:
+ cmp r6, 0x2
+ beq _0814BD38
+ cmp r6, 0x3
+ beq _0814BD48
+ b _0814BD68
+_0814BCA2:
+ movs r0, 0
+ movs r1, 0
+ bl DrawDialogueFrame
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x2
+ mov r8, r0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0814BCF0
+ ldr r4, _0814BCE8 @ =gStringVar4
+ ldr r1, _0814BCEC @ =gUnknown_846E328
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldrb r3, [r7, 0xB]
+ str r6, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl AddTextPrinterParameterized2
+ b _0814BD12
+ .align 2, 0
+_0814BCE8: .4byte gStringVar4
+_0814BCEC: .4byte gUnknown_846E328
+_0814BCF0:
+ ldr r1, _0814BD1C @ =gUnknown_846E328
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrb r3, [r7, 0xB]
+ str r4, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ bl AddTextPrinterParameterized2
+_0814BD12:
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0814BD68
+ .align 2, 0
+_0814BD1C: .4byte gUnknown_846E328
+_0814BD20:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814BD6E
+ cmp r4, 0
+ bne _0814BD68
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+ strb r0, [r7, 0xC]
+ b _0814BD68
+_0814BD38:
+ ldr r0, _0814BD44 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ ands r4, r0
+ cmp r4, 0
+ bne _0814BD68
+ b _0814BD6E
+ .align 2, 0
+_0814BD44: .4byte gMain
+_0814BD48:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814BD5A
+ movs r0, 0
+ movs r1, 0x1
+ bl ClearDialogWindowAndFrame
+_0814BD5A:
+ ldrb r0, [r7, 0xE]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ ldrb r0, [r5, 0x4]
+ b _0814BD6C
+_0814BD68:
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+_0814BD6C:
+ strb r0, [r7, 0xC]
+_0814BD6E:
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BC74
+
+ thumb_func_start sub_814BD7C
+sub_814BD7C: @ 814BD7C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_814D5C8
+ cmp r0, 0
+ beq _0814BD94
+ ldrb r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x36
+ movs r1, 0
+ bl sub_814BB4C
+_0814BD94:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BD7C
+
+ thumb_func_start sub_814BD9C
+sub_814BD9C: @ 814BD9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_814D888
+ cmp r0, 0
+ beq _0814BDB4
+ ldrb r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x36
+ movs r1, 0
+ bl sub_814BB4C
+_0814BDB4:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BD9C
+
+ thumb_func_start sub_814BDBC
+sub_814BDBC: @ 814BDBC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0
+ beq _0814BDCC
+ cmp r0, 0x1
+ beq _0814BDD2
+ b _0814BDFC
+_0814BDCC:
+ bl sub_80FA42C
+ b _0814BDFC
+_0814BDD2:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814BE02
+ ldr r0, _0814BDF8 @ =0x00000111
+ bl PlayNewMapMusic
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0x3
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _0814BE02
+ .align 2, 0
+_0814BDF8: .4byte 0x00000111
+_0814BDFC:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_0814BE02:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BDBC
+
+ thumb_func_start sub_814BE0C
+sub_814BE0C: @ 814BE0C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0
+ beq _0814BE22
+ cmp r0, 0x1
+ beq _0814BE48
+ adds r0, 0x1
+ b _0814BE58
+_0814BE22:
+ adds r0, r4, 0
+ bl sub_814D4D8
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x7
+ strb r0, [r4, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814BE5A
+_0814BE48:
+ movs r0, 0x8
+ strb r0, [r4, 0xE]
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0x2
+_0814BE58:
+ strb r0, [r4, 0xC]
+_0814BE5A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BE0C
+
+ thumb_func_start sub_814BE64
+sub_814BE64: @ 814BE64
+ push {lr}
+ movs r1, 0
+ str r1, [r0, 0x4]
+ ldr r0, _0814BE78 @ =sub_814B8F0
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814BE78: .4byte sub_814B8F0
+ thumb_func_end sub_814BE64
+
+ thumb_func_start sub_814BE7C
+sub_814BE7C: @ 814BE7C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r2, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x5
+ bls _0814BE8C
+ b _0814BFC0
+_0814BE8C:
+ lsls r0, 2
+ ldr r1, _0814BE98 @ =_0814BE9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814BE98: .4byte _0814BE9C
+ .align 2, 0
+_0814BE9C:
+ .4byte _0814BEB4
+ .4byte _0814BED4
+ .4byte _0814BEDA
+ .4byte _0814BF0A
+ .4byte _0814BF1A
+ .4byte _0814BFA4
+_0814BEB4:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x9
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814BFC6
+_0814BED4:
+ bl sub_80FA42C
+ b _0814BFC0
+_0814BEDA:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814BFC6
+ adds r4, r5, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ ldrb r0, [r5, 0x8]
+ lsls r0, 5
+ adds r0, r5, r0
+ adds r0, 0xA4
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _0814BFC0
+_0814BF0A:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814BFC6
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ b _0814BFC0
+_0814BF1A:
+ bl GetBlockReceivedStatus
+ ldr r2, _0814BF98 @ =gUnknown_846E3C8
+ ldrb r4, [r5, 0x9]
+ subs r1, r4, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0814BFC6
+ movs r3, 0
+ cmp r3, r4
+ bcs _0814BF7E
+ ldr r7, _0814BF9C @ =gBlockRecvBuffer
+ movs r6, 0
+ ldr r4, _0814BFA0 @ =gUnknown_83DFC9C
+_0814BF3C:
+ lsls r0, r3, 5
+ adds r0, r5, r0
+ lsls r1, r3, 8
+ adds r1, r7
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ adds r2, 0xA4
+ strh r1, [r2]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xB0
+ bls _0814BF56
+ strh r6, [r2]
+_0814BF56:
+ ldrh r1, [r2]
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x18]
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ ldr r0, [r5, 0x1C]
+ adds r0, r1
+ str r0, [r5, 0x1C]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r3, r0
+ bcc _0814BF3C
+_0814BF7E:
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ bl ResetBlockReceivedFlags
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r1, 0x80
+ lsls r1, 6
+ bl sub_80D8B68
+ str r0, [r5, 0x20]
+ b _0814BFC0
+ .align 2, 0
+_0814BF98: .4byte gUnknown_846E3C8
+_0814BF9C: .4byte gBlockRecvBuffer
+_0814BFA0: .4byte gUnknown_83DFC9C
+_0814BFA4:
+ movs r0, 0
+ movs r1, 0x1
+ bl ClearDialogWindowAndFrame
+ movs r0, 0xA
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0x4
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _0814BFC6
+_0814BFC0:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814BFC6:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BE7C
+
+ thumb_func_start sub_814BFD0
+sub_814BFD0: @ 814BFD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x6
+ bls _0814BFDC
+ b _0814C108
+_0814BFDC:
+ lsls r0, 2
+ ldr r1, _0814BFE8 @ =_0814BFEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814BFE8: .4byte _0814BFEC
+ .align 2, 0
+_0814BFEC:
+ .4byte _0814C008
+ .4byte _0814C01A
+ .4byte _0814C048
+ .4byte _0814C080
+ .4byte _0814C0B0
+ .4byte _0814C0D2
+ .4byte _0814C0E4
+_0814C008:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ adds r0, r4, 0
+ bl sub_814DA24
+ bl sub_80FA42C
+ b _0814C108
+_0814C01A:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C10E
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _0814C044 @ =0x00000139
+ adds r1, r4, r3
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r4, r3
+ strb r0, [r1]
+ b _0814C108
+ .align 2, 0
+_0814C044: .4byte 0x00000139
+_0814C048:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r3, r4, r0
+ ldrb r0, [r3]
+ lsls r0, 2
+ movs r2, 0xB8
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r1, r0
+ ldr r2, [r0]
+ ldr r0, _0814C07C @ =sub_814DB84
+ str r0, [r2, 0x1C]
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r1, 0x2C
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x36
+ bl PlaySE
+ b _0814C108
+ .align 2, 0
+_0814C07C: .4byte sub_814DB84
+_0814C080:
+ movs r3, 0x9C
+ lsls r3, 1
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r3, 0x38
+ adds r1, r4, r3
+ adds r3, r1, r0
+ ldr r0, [r3]
+ ldr r1, [r0, 0x1C]
+ ldr r0, _0814C0AC @ =sub_814DB84
+ cmp r1, r0
+ beq _0814C10E
+ movs r0, 0
+ str r0, [r3]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ bl sub_80FA42C
+ b _0814C108
+ .align 2, 0
+_0814C0AC: .4byte sub_814DB84
+_0814C0B0:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C10E
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ ldrb r2, [r4, 0x9]
+ cmp r0, r2
+ bcs _0814C0CC
+ movs r0, 0x2
+ b _0814C10C
+_0814C0CC:
+ movs r0, 0
+ strb r0, [r1]
+ b _0814C108
+_0814C0D2:
+ movs r3, 0x9C
+ lsls r3, 1
+ adds r1, r4, r3
+ adds r0, r4, 0
+ bl sub_814DC24
+ bl sub_80FA42C
+ b _0814C108
+_0814C0E4:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C10E
+ movs r0, 0x25
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _0814C10E
+_0814C108:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+_0814C10C:
+ strb r0, [r4, 0xC]
+_0814C10E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814BFD0
+
+ thumb_func_start sub_814C118
+sub_814C118: @ 814C118
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0xC]
+ cmp r1, 0x1
+ beq _0814C17C
+ cmp r1, 0x1
+ bgt _0814C12C
+ cmp r1, 0
+ beq _0814C136
+ b _0814C23C
+_0814C12C:
+ cmp r1, 0x2
+ beq _0814C1FC
+ cmp r1, 0x3
+ beq _0814C21E
+ b _0814C23C
+_0814C136:
+ ldrh r0, [r4, 0x2A]
+ adds r0, 0x4
+ strh r0, [r4, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0814C144
+ b _0814C242
+_0814C144:
+ strh r1, [r4, 0x2A]
+ ldr r0, _0814C174 @ =0x00000139
+ adds r3, r4, r0
+ movs r0, 0x4
+ strb r0, [r3]
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _0814C178 @ =gUnknown_846E2F0
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r2, 0x9D
+ lsls r2, 1
+ adds r1, r4, r2
+ strb r0, [r1]
+ movs r0, 0xCF
+ bl PlaySE
+ b _0814C23C
+ .align 2, 0
+_0814C174: .4byte 0x00000139
+_0814C178: .4byte gUnknown_846E2F0
+_0814C17C:
+ ldr r7, _0814C1F4 @ =gUnknown_846E2F0
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r6, r4, r0
+ ldr r1, _0814C1F8 @ =0x00000139
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ ldrb r2, [r6]
+ adds r0, r2
+ adds r0, r7
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ strh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ movs r1, 0x9D
+ lsls r1, 1
+ adds r2, r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _0814C242
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0814C23C
+ subs r0, 0x1
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ strb r0, [r6]
+ b _0814C242
+ .align 2, 0
+_0814C1F4: .4byte gUnknown_846E2F0
+_0814C1F8: .4byte 0x00000139
+_0814C1FC:
+ movs r0, 0
+ strh r0, [r4, 0x2C]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ bl sub_80FA42C
+ b _0814C23C
+_0814C21E:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C242
+ movs r0, 0xC
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _0814C242
+_0814C23C:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_0814C242:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814C118
+
+ thumb_func_start sub_814C24C
+sub_814C24C: @ 814C24C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _0814C26C
+ cmp r0, 0x1
+ bgt _0814C262
+ cmp r0, 0
+ beq _0814C292
+ b _0814C2EC
+_0814C262:
+ cmp r0, 0x2
+ beq _0814C28A
+ cmp r0, 0x3
+ beq _0814C298
+ b _0814C2EC
+_0814C26C:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C2F2
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x78
+ movs r3, 0x50
+ bl sub_815F138
+ b _0814C2EC
+_0814C28A:
+ bl sub_815F198
+ cmp r0, 0
+ bne _0814C2F2
+_0814C292:
+ bl sub_80FA42C
+ b _0814C2EC
+_0814C298:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814C2F2
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _0814C2D4 @ =0x00000139
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, r4, r2
+ strb r0, [r1]
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ bne _0814C2D8
+ movs r0, 0xD
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814C2E2
+ .align 2, 0
+_0814C2D4: .4byte 0x00000139
+_0814C2D8:
+ movs r0, 0xE
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+_0814C2E2:
+ movs r1, 0
+ movs r0, 0x7
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _0814C2F2
+_0814C2EC:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_0814C2F2:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814C24C
+
+ thumb_func_start sub_814C2FC
+sub_814C2FC: @ 814C2FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0
+ adds r7, r2, 0
+ ldrb r1, [r4, 0x9]
+ cmp r7, r1
+ bcs _0814C40A
+ movs r2, 0x5E
+ adds r2, r4
+ mov r9, r2
+ ldr r3, _0814C3C0 @ =gUnknown_846E2E0
+ mov r10, r3
+_0814C320:
+ lsls r0, r7, 4
+ ldr r1, _0814C3C4 @ =gRecvCmds
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ movs r3, 0xBC
+ lsls r3, 6
+ cmp r0, r3
+ bne _0814C3FE
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x2
+ bne _0814C3FE
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0814C3F6
+ mov r0, r9
+ ldrb r2, [r0]
+ lsrs r1, r2, 3
+ mov r3, r10
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ orrs r1, r0
+ lsls r1, 3
+ movs r0, 0x7
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r9
+ strb r0, [r1]
+ lsls r2, r7, 5
+ adds r3, r4, r2
+ mov r12, r3
+ mov r1, r12
+ adds r1, 0xB5
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r1, 0x7
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ subs r1, 0x8
+ ldrh r0, [r4, 0x28]
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r5, r12
+ adds r5, 0xAA
+ ldrh r1, [r5]
+ subs r0, r1, 0x1
+ adds r6, r2, 0
+ cmp r3, r0
+ blt _0814C3C8
+ adds r0, r1, 0x1
+ cmp r3, r0
+ bgt _0814C3C8
+ mov r1, r12
+ adds r1, 0xA8
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r3, [r5]
+ mov r0, r12
+ adds r0, 0xAC
+ ldrh r1, [r1]
+ ldrh r2, [r0]
+ cmp r1, r2
+ bls _0814C3D6
+ strh r1, [r0]
+ b _0814C3D6
+ .align 2, 0
+_0814C3C0: .4byte gUnknown_846E2E0
+_0814C3C4: .4byte gRecvCmds
+_0814C3C8:
+ adds r0, r4, r6
+ adds r2, r0, 0
+ adds r2, 0xA8
+ movs r1, 0
+ strh r1, [r2]
+ adds r0, 0xAA
+ strh r3, [r0]
+_0814C3D6:
+ adds r1, r4, r6
+ ldrh r0, [r4, 0x28]
+ adds r3, r1, 0
+ adds r3, 0xA6
+ movs r2, 0
+ strh r0, [r3]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _0814C3FE
+ strb r2, [r1]
+ b _0814C3FE
+_0814C3F6:
+ lsls r0, r7, 5
+ adds r0, r4, r0
+ adds r0, 0xB5
+ strb r1, [r0]
+_0814C3FE:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r3, [r4, 0x9]
+ cmp r7, r3
+ bcc _0814C320
+_0814C40A:
+ mov r0, r8
+ cmp r0, 0x1
+ bls _0814C440
+ movs r7, 0
+ ldrb r1, [r4, 0x9]
+ cmp r7, r1
+ bcs _0814C440
+ movs r3, 0x2
+_0814C41A:
+ lsls r0, r7, 5
+ adds r1, r4, r0
+ adds r2, r1, 0
+ adds r2, 0xB5
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0814C434
+ orrs r0, r3
+ strb r0, [r2]
+ adds r1, 0xB0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0814C434:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r2, [r4, 0x9]
+ cmp r7, r2
+ bcc _0814C41A
+_0814C440:
+ mov r3, r8
+ cmp r3, 0
+ beq _0814C4A8
+ ldrh r0, [r4, 0x2E]
+ add r0, r8
+ strh r0, [r4, 0x2E]
+ ldr r1, _0814C490 @ =gUnknown_846E2E8
+ mov r0, r8
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r4, 0x34]
+ add r0, r8
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x1A]
+ add r0, r8
+ strh r0, [r4, 0x1A]
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ movs r3, 0x1A
+ ldrsh r2, [r4, r3]
+ subs r0, r2
+ cmp r0, 0
+ ble _0814C494
+ lsls r2, 8
+ ldr r1, [r4, 0x20]
+ adds r0, r2, 0
+ bl sub_80D8B68
+ adds r2, r0, 0
+ asrs r2, 8
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r2, [r0]
+ b _0814C4A8
+ .align 2, 0
+_0814C490: .4byte gUnknown_846E2E8
+_0814C494:
+ adds r1, r4, 0
+ adds r1, 0x24
+ movs r0, 0x20
+ strb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x5E
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_0814C4A8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814C2FC
+
+ thumb_func_start sub_814C4B8
+sub_814C4B8: @ 814C4B8
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r6, 0
+ movs r1, 0
+ adds r4, r1, 0
+ ldrb r0, [r3, 0x9]
+ cmp r4, r0
+ bcs _0814C510
+ adds r5, r3, 0
+ adds r5, 0x64
+_0814C4CC:
+ lsls r0, r4, 5
+ adds r1, r3, r0
+ adds r0, r1, 0
+ adds r0, 0xB5
+ ldrb r2, [r0]
+ cmp r2, 0
+ beq _0814C504
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r1, 0
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ adds r1, r0, 0x1
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0814C4F4
+ movs r0, 0x4
+ orrs r1, r0
+_0814C4F4:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+_0814C504:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r3, 0x9]
+ cmp r4, r1
+ bcc _0814C4CC
+_0814C510:
+ adds r0, r3, 0
+ adds r0, 0x24
+ ldrb r1, [r0]
+ adds r0, 0x3C
+ strh r1, [r0]
+ cmp r6, 0
+ bne _0814C534
+ ldr r2, _0814C530 @ =0x0000013b
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0814C600
+ movs r4, 0x9C
+ lsls r4, 1
+ adds r1, r3, r4
+ b _0814C572
+ .align 2, 0
+_0814C530: .4byte 0x0000013b
+_0814C534:
+ ldr r5, _0814C560 @ =0x0000013b
+ adds r2, r3, r5
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0814C57A
+ ldr r0, _0814C564 @ =0x00000139
+ adds r1, r3, r0
+ ldrb r2, [r1]
+ cmp r6, r2
+ beq _0814C56C
+ subs r0, r6, 0x1
+ strb r0, [r1]
+ ldr r1, _0814C568 @ =gUnknown_846E314
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x9D
+ lsls r4, 1
+ adds r1, r3, r4
+ strb r0, [r1]
+ b _0814C5A0
+ .align 2, 0
+_0814C560: .4byte 0x0000013b
+_0814C564: .4byte 0x00000139
+_0814C568: .4byte gUnknown_846E314
+_0814C56C:
+ movs r5, 0x9C
+ lsls r5, 1
+ adds r1, r3, r5
+_0814C572:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0814C5A0
+_0814C57A:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ subs r0, r6, 0x1
+ ldr r4, _0814C5D0 @ =0x00000139
+ adds r1, r3, r4
+ strb r0, [r1]
+ ldr r1, _0814C5D4 @ =gUnknown_846E314
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r5, 0x9D
+ lsls r5, 1
+ adds r1, r3, r5
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r2]
+_0814C5A0:
+ ldr r0, _0814C5D8 @ =0x0000013b
+ adds r4, r3, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0814C600
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r5, 0x9D
+ lsls r5, 1
+ adds r2, r3, r5
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bcc _0814C5DC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r5, _0814C5D0 @ =0x00000139
+ adds r1, r3, r5
+ strb r0, [r1]
+ strb r0, [r2]
+ strb r0, [r4]
+ movs r1, 0
+ b _0814C5F0
+ .align 2, 0
+_0814C5D0: .4byte 0x00000139
+_0814C5D4: .4byte gUnknown_846E314
+_0814C5D8: .4byte 0x0000013b
+_0814C5DC:
+ ldr r2, _0814C5F8 @ =gUnknown_846E314
+ ldrb r1, [r1]
+ ldr r4, _0814C5FC @ =0x00000139
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, 0x1
+ adds r1, r0
+ adds r1, r2
+ ldrb r1, [r1]
+_0814C5F0:
+ adds r0, r3, 0
+ adds r0, 0x5F
+ strb r1, [r0]
+ b _0814C608
+ .align 2, 0
+_0814C5F8: .4byte gUnknown_846E314
+_0814C5FC: .4byte 0x00000139
+_0814C600:
+ adds r1, r3, 0
+ adds r1, 0x5F
+ movs r0, 0
+ strb r0, [r1]
+_0814C608:
+ ldrh r1, [r3, 0x26]
+ adds r0, r3, 0
+ adds r0, 0x62
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814C4B8
+
+ thumb_func_start sub_814C618
+sub_814C618: @ 814C618
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r3, _0814C6AC @ =gMain
+ ldrh r1, [r3, 0x2E]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0814C63A
+ adds r2, r5, 0
+ adds r2, 0x5E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814C63A:
+ ldrh r1, [r3, 0x2C]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0814C65A
+ ldrb r0, [r5, 0x8]
+ lsls r0, 5
+ adds r0, r5, r0
+ adds r1, r0, 0
+ adds r1, 0xB2
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x28]
+ cmp r0, r2
+ bcs _0814C65A
+ adds r0, 0x1
+ strh r0, [r1]
+_0814C65A:
+ ldrb r0, [r5, 0x8]
+ adds r7, r5, 0
+ adds r7, 0x5E
+ cmp r0, 0
+ beq _0814C670
+ ldrb r1, [r7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0814C670
+ b _0814C7AC
+_0814C670:
+ adds r4, r5, 0
+ adds r4, 0x5C
+ movs r0, 0x2
+ strh r0, [r4]
+ ldrh r0, [r5, 0x28]
+ movs r1, 0x1E
+ bl __umodsi3
+ lsls r0, 16
+ mov r8, r4
+ adds r6, r5, 0
+ adds r6, 0x25
+ cmp r0, 0
+ bne _0814C6C8
+ movs r0, 0x2E
+ ldrsh r2, [r5, r0]
+ ldr r1, _0814C6B0 @ =gUnknown_846E3C4
+ ldrb r0, [r5, 0x9]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ ble _0814C6B4
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrb r0, [r6]
+ movs r1, 0x10
+ orrs r0, r1
+ b _0814C6BC
+ .align 2, 0
+_0814C6AC: .4byte gMain
+_0814C6B0: .4byte gUnknown_846E3C4
+_0814C6B4:
+ ldrb r1, [r6]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+_0814C6BC:
+ strb r0, [r6]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+_0814C6C8:
+ ldrh r0, [r5, 0x28]
+ movs r1, 0xF
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814C73E
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ ldr r3, _0814C6F4 @ =gUnknown_846E3B4
+ ldrb r0, [r5, 0x9]
+ subs r0, 0x2
+ lsls r1, r0, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0814C6F8
+ ldrb r1, [r6]
+ movs r0, 0x1F
+ ands r0, r1
+ strb r0, [r6]
+ b _0814C738
+ .align 2, 0
+_0814C6F4: .4byte gUnknown_846E3B4
+_0814C6F8:
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0814C70C
+ ldrb r0, [r6]
+ movs r1, 0x1F
+ ands r1, r0
+ movs r0, 0x20
+ b _0814C734
+_0814C70C:
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0814C71C
+ movs r0, 0x2
+ strh r0, [r5, 0x34]
+ b _0814C738
+_0814C71C:
+ adds r0, r3, 0x3
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0814C72C
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ b _0814C738
+_0814C72C:
+ ldrb r0, [r6]
+ movs r1, 0x1F
+ ands r1, r0
+ movs r0, 0x80
+_0814C734:
+ orrs r1, r0
+ strb r1, [r6]
+_0814C738:
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ b _0814C76A
+_0814C73E:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3C
+ bls _0814C76A
+ cmp r0, 0x46
+ bls _0814C75A
+ bl sub_80FBA44
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ b _0814C76A
+_0814C75A:
+ ldrb r0, [r7]
+ movs r4, 0xF8
+ ands r4, r0
+ cmp r4, 0
+ bne _0814C76A
+ bl sub_80FBA44
+ strh r4, [r5, 0x10]
+_0814C76A:
+ ldrh r1, [r5, 0x28]
+ ldr r0, _0814C7B8 @ =0x00008c9f
+ cmp r1, r0
+ bls _0814C77A
+ ldrb r0, [r7]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r7]
+_0814C77A:
+ ldrb r1, [r6]
+ lsls r1, 27
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r7]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7]
+ ldrb r0, [r6]
+ lsrs r0, 5
+ adds r2, r5, 0
+ adds r2, 0x66
+ strh r0, [r2]
+ adds r4, r5, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0xC
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_80F9E2C
+_0814C7AC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814C7B8: .4byte 0x00008c9f
+ thumb_func_end sub_814C618
+
+ thumb_func_start sub_814C7BC
+sub_814C7BC: @ 814C7BC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r3, _0814C808 @ =gRecvCmds
+ ldrb r0, [r5, 0x9]
+ cmp r4, r0
+ bcs _0814C7E0
+ movs r1, 0
+_0814C7CC:
+ lsls r0, r4, 5
+ adds r0, r5, r0
+ adds r0, 0xB5
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r4, r0
+ bcc _0814C7CC
+_0814C7E0:
+ adds r2, r3, 0
+ ldrh r0, [r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0814C7F8
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x2
+ beq _0814C80C
+_0814C7F8:
+ adds r2, r5, 0
+ adds r2, 0x25
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _0814C84A
+ .align 2, 0
+_0814C808: .4byte gRecvCmds
+_0814C80C:
+ adds r4, r5, 0
+ adds r4, 0x4E
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0xE
+ bl memcpy
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2A]
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ strh r0, [r5, 0x2C]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x28]
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_814DC5C
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814C84A
+ adds r0, r5, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0814C84A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814C7BC
+
+ thumb_func_start sub_814C850
+sub_814C850: @ 814C850
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x4E
+ movs r1, 0
+ movs r2, 0xE
+ bl memset
+ adds r0, r4, 0
+ bl sub_814C7BC
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ adds r0, r4, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0814C8D8
+ ldrh r1, [r4, 0x28]
+ ldr r0, _0814C8C0 @ =0x00008c9f
+ cmp r1, r0
+ bls _0814C8C4
+ adds r0, 0x1
+ strh r0, [r4, 0x28]
+ movs r0, 0x10
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814C8CE
+ .align 2, 0
+_0814C8C0: .4byte 0x00008c9f
+_0814C8C4:
+ movs r0, 0xF
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+_0814C8CE:
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _0814C8F2
+_0814C8D8:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_814C2FC
+ adds r0, r4, 0
+ bl sub_814C4B8
+ adds r0, r4, 0
+ bl sub_814C618
+ movs r0, 0
+_0814C8F2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814C850
+
+ thumb_func_start sub_814C8F8
+sub_814C8F8: @ 814C8F8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x4E
+ movs r1, 0
+ movs r2, 0xE
+ bl memset
+ adds r0, r4, 0
+ bl sub_814C7BC
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ adds r0, r4, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0814C980
+ ldrh r1, [r4, 0x28]
+ ldr r0, _0814C968 @ =0x00008c9f
+ cmp r1, r0
+ bls _0814C96C
+ adds r0, 0x1
+ strh r0, [r4, 0x28]
+ movs r0, 0x10
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814C976
+ .align 2, 0
+_0814C968: .4byte 0x00008c9f
+_0814C96C:
+ movs r0, 0xF
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+_0814C976:
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _0814C988
+_0814C980:
+ adds r0, r4, 0
+ bl sub_814C618
+ movs r0, 0
+_0814C988:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814C8F8
+
+ thumb_func_start sub_814C990
+sub_814C990: @ 814C990
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x5
+ bls _0814C99C
+ b _0814CB12
+_0814C99C:
+ lsls r0, 2
+ ldr r1, _0814C9A8 @ =_0814C9AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814C9A8: .4byte _0814C9AC
+ .align 2, 0
+_0814C9AC:
+ .4byte _0814C9C4
+ .4byte _0814C9EC
+ .4byte _0814CA3C
+ .4byte _0814CABC
+ .4byte _0814CADA
+ .4byte _0814CAF4
+_0814C9C4:
+ movs r0, 0x8
+ strh r0, [r4, 0x12]
+ movs r0, 0xCF
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0814C9E8 @ =0x000003ff
+ movs r1, 0x8
+ bl BlendPalettes
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _0814CB12
+ .align 2, 0
+_0814C9E8: .4byte 0x000003ff
+_0814C9EC:
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ subs r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0814CA02
+ b _0814CB18
+_0814CA02:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0814CA30 @ =0x000003ff
+ movs r1, 0
+ bl BlendPalettes
+ ldr r2, _0814CA34 @ =0x00000139
+ adds r1, r4, r2
+ movs r0, 0x4
+ strb r0, [r1]
+ movs r0, 0
+ strb r0, [r5]
+ ldr r2, _0814CA38 @ =gUnknown_846E2F0
+ ldrb r1, [r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r2, 0x9D
+ lsls r2, 1
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _0814CB12
+ .align 2, 0
+_0814CA30: .4byte 0x000003ff
+_0814CA34: .4byte 0x00000139
+_0814CA38: .4byte gUnknown_846E2F0
+_0814CA3C:
+ ldr r7, _0814CAB4 @ =gUnknown_846E2F0
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r6, r4, r0
+ ldr r1, _0814CAB8 @ =0x00000139
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ ldrb r2, [r6]
+ adds r0, r2
+ adds r0, r7
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ strh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ movs r1, 0x9D
+ lsls r1, 1
+ adds r2, r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _0814CB18
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0814CB12
+ subs r0, 0x1
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ strb r0, [r6]
+ b _0814CB18
+ .align 2, 0
+_0814CAB4: .4byte gUnknown_846E2F0
+_0814CAB8: .4byte 0x00000139
+_0814CABC:
+ movs r0, 0
+ strh r0, [r4, 0x2C]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ b _0814CB12
+_0814CADA:
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r4, 0
+ bl sub_814DE50
+ cmp r0, 0
+ beq _0814CB18
+ bl sub_80FA42C
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ b _0814CB12
+_0814CAF4:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814CB18
+ movs r0, 0x11
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _0814CB1A
+_0814CB12:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_0814CB18:
+ movs r0, 0
+_0814CB1A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814C990
+
+ thumb_func_start sub_814CB20
+sub_814CB20: @ 814CB20
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x1
+ beq _0814CB64
+ cmp r0, 0x1
+ bgt _0814CB38
+ cmp r0, 0
+ beq _0814CB42
+ b _0814CBFC
+_0814CB38:
+ cmp r0, 0x2
+ beq _0814CB8A
+ cmp r0, 0x3
+ beq _0814CBBC
+ b _0814CBFC
+_0814CB42:
+ movs r0, 0x9
+ strh r0, [r5, 0x12]
+ movs r0, 0x1A
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x8
+ movs r2, 0x1F
+ bl BlendPalettes
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ b _0814CBFC
+_0814CB64:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0814CC02
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ movs r2, 0x1F
+ bl BlendPalettes
+ movs r0, 0
+ strb r0, [r4]
+ b _0814CBFC
+_0814CB8A:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_814DE50
+ cmp r0, 0
+ beq _0814CC02
+ bl sub_80FA42C
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ b _0814CBFC
+_0814CBBC:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814CC02
+ ldr r0, _0814CBF8 @ =gStringVar1
+ ldr r1, [r5, 0x1C]
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x7
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0
+ strh r4, [r5, 0x10]
+ b _0814CC00
+ .align 2, 0
+_0814CBF8: .4byte gStringVar1
+_0814CBFC:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+_0814CC00:
+ strb r0, [r5, 0xC]
+_0814CC02:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814CB20
+
+ thumb_func_start sub_814CC0C
+sub_814CC0C: @ 814CC0C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldrb r0, [r7, 0xC]
+ cmp r0, 0x7
+ bls _0814CC22
+ b _0814CF8E
+_0814CC22:
+ lsls r0, 2
+ ldr r1, _0814CC2C @ =_0814CC30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814CC2C: .4byte _0814CC30
+ .align 2, 0
+_0814CC30:
+ .4byte _0814CC50
+ .4byte _0814CC8A
+ .4byte _0814CC98
+ .4byte _0814CD00
+ .4byte _0814CE80
+ .4byte _0814CF30
+ .4byte _0814CF3C
+ .4byte _0814CF70
+_0814CC50:
+ adds r4, r7, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ ldrb r0, [r7, 0x8]
+ lsls r0, 5
+ adds r0, r7, r0
+ adds r2, r0, 0
+ adds r2, 0xB2
+ ldrh r1, [r7, 0x28]
+ ldrh r0, [r2]
+ cmp r0, r1
+ bls _0814CC72
+ strh r1, [r2]
+_0814CC72:
+ ldrb r0, [r7, 0x8]
+ lsls r0, 5
+ adds r0, r7, r0
+ adds r0, 0xB2
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _0814CF8E
+_0814CC8A:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814CC96
+ b _0814CF94
+_0814CC96:
+ b _0814CF64
+_0814CC98:
+ bl GetBlockReceivedStatus
+ ldr r2, _0814CCF4 @ =gUnknown_846E3C8
+ ldrb r3, [r7, 0x9]
+ subs r1, r3, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0814CCB0
+ b _0814CF94
+_0814CCB0:
+ movs r0, 0
+ mov r8, r0
+ adds r4, r7, 0
+ adds r4, 0x42
+ cmp r8, r3
+ bcs _0814CCDE
+ ldr r2, _0814CCF8 @ =gBlockRecvBuffer
+_0814CCBE:
+ mov r3, r8
+ lsls r1, r3, 5
+ adds r1, r7, r1
+ lsls r0, r3, 8
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r1, 0xB2
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r6, [r7, 0x9]
+ cmp r8, r6
+ bcc _0814CCBE
+_0814CCDE:
+ movs r0, 0
+ strh r0, [r7, 0x10]
+ strh r0, [r4]
+ bl ResetBlockReceivedFlags
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0
+ bne _0814CCFC
+ movs r0, 0x3
+ b _0814CF92
+ .align 2, 0
+_0814CCF4: .4byte gUnknown_846E3C8
+_0814CCF8: .4byte gBlockRecvBuffer
+_0814CCFC:
+ movs r0, 0x6
+ b _0814CF92
+_0814CD00:
+ adds r0, r7, 0
+ adds r0, 0x68
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ ldrh r1, [r7, 0x28]
+ adds r0, r7, 0
+ adds r0, 0x6C
+ strh r1, [r0]
+ movs r0, 0x18
+ ldrsh r4, [r7, r0]
+ ldrh r0, [r7, 0x28]
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r7, 0
+ adds r1, 0x6E
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ lsls r0, 8
+ movs r4, 0xC8
+ lsls r4, 6
+ adds r1, r4, 0
+ bl sub_80D8AE0
+ adds r2, r0, 0
+ movs r3, 0x32
+ ldrsh r1, [r7, r3]
+ lsls r1, 8
+ bl sub_80D8B68
+ adds r2, r0, r4
+ asrs r2, 8
+ movs r1, 0x7F
+ adds r0, r2, 0
+ ands r0, r1
+ adds r1, r7, 0
+ adds r1, 0x70
+ strh r0, [r1]
+ lsls r2, 8
+ movs r1, 0xC8
+ lsls r1, 7
+ adds r0, r2, 0
+ bl sub_80D8B68
+ adds r2, r0, 0
+ ldrb r1, [r7, 0x9]
+ ldr r0, [r7, 0x1C]
+ muls r0, r1
+ lsls r4, r0, 8
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80D8AE0
+ adds r4, r0, 0
+ asrs r0, r4, 8
+ str r0, [r7, 0x68]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r1, r7, 0
+ adds r1, 0x8F
+ strb r0, [r1]
+ movs r6, 0
+ mov r8, r6
+ mov r9, r1
+ ldrb r0, [r7, 0x9]
+ cmp r8, r0
+ bcc _0814CDA4
+ b _0814CF8E
+_0814CDA4:
+ adds r0, r7, 0
+ adds r0, 0x88
+ add r0, r8
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r7, 0
+ adds r0, 0x90
+ add r0, r8
+ strb r1, [r0]
+ mov r3, r8
+ lsls r2, r3, 1
+ adds r1, r7, 0
+ adds r1, 0x74
+ adds r1, r2
+ lsls r0, r3, 5
+ adds r3, r7, r0
+ adds r5, r3, 0
+ adds r5, 0xAE
+ ldrh r0, [r5]
+ strh r0, [r1]
+ adds r1, r7, 0
+ adds r1, 0x72
+ ldrh r6, [r1]
+ adds r0, r6
+ strh r0, [r1]
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r6, r2, 0
+ cmp r0, 0x1
+ beq _0814CE0E
+ cmp r0, 0x1
+ bgt _0814CDEA
+ cmp r0, 0
+ beq _0814CDF0
+ b _0814CE64
+_0814CDEA:
+ cmp r0, 0x2
+ beq _0814CE2C
+ b _0814CE64
+_0814CDF0:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _0814CE32
+ adds r0, r3, 0
+ adds r0, 0xAC
+ ldrh r2, [r0]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_80D8AE0
+ adds r2, r0, 0
+ ldrh r4, [r5]
+ b _0814CE5A
+_0814CE0E:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _0814CE32
+ adds r0, r3, 0
+ adds r0, 0xB0
+ ldrh r2, [r0]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_80D8AE0
+ adds r2, r0, 0
+ ldrh r4, [r5]
+ b _0814CE5A
+_0814CE2C:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0814CE36
+_0814CE32:
+ movs r4, 0
+ b _0814CE64
+_0814CE36:
+ adds r1, r3, 0
+ adds r1, 0xB2
+ ldrh r0, [r1]
+ ldrh r2, [r7, 0x28]
+ cmp r0, r2
+ bcc _0814CE48
+ movs r4, 0xC8
+ lsls r4, 7
+ b _0814CE64
+_0814CE48:
+ ldrh r2, [r1]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_80D8AE0
+ adds r2, r0, 0
+ ldrh r4, [r7, 0x28]
+_0814CE5A:
+ lsls r4, 8
+ adds r1, r4, 0
+ bl sub_80D8B68
+ adds r4, r0, 0
+_0814CE64:
+ asrs r4, 4
+ adds r0, r7, 0
+ adds r0, 0x7E
+ adds r0, r6
+ strh r4, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r3, [r7, 0x9]
+ cmp r8, r3
+ bcc _0814CDA4
+ b _0814CF8E
+_0814CE80:
+ movs r6, 0
+ mov r8, r6
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ adds r1, r7, 0
+ adds r1, 0x68
+ str r1, [sp, 0xC]
+ cmp r8, r0
+ bge _0814CF24
+_0814CE92:
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r2, r8
+ adds r2, 0x1
+ str r2, [sp, 0x8]
+ cmp r4, r8
+ bls _0814CF14
+ adds r3, r7, 0
+ adds r3, 0x74
+ str r3, [sp]
+ adds r6, r7, 0
+ adds r6, 0x88
+ str r6, [sp, 0x4]
+ movs r0, 0x90
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x7E
+ adds r1, r7
+ mov r9, r1
+_0814CEBC:
+ subs r2, r4, 0x1
+ mov r12, r2
+ lsls r6, r2, 1
+ ldr r0, [sp]
+ adds r3, r0, r6
+ lsls r5, r4, 1
+ adds r1, r0, r5
+ ldrh r2, [r3]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bcs _0814CEE6
+ ldrh r0, [r1]
+ strh r2, [r1]
+ strh r0, [r3]
+ ldr r1, [sp, 0x4]
+ adds r2, r1, r4
+ ldrb r3, [r2]
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+_0814CEE6:
+ mov r2, r9
+ adds r3, r2, r6
+ adds r1, r2, r5
+ ldrh r2, [r3]
+ ldrh r6, [r1]
+ cmp r2, r6
+ bcs _0814CF0A
+ ldrh r0, [r1]
+ strh r2, [r1]
+ strh r0, [r3]
+ mov r0, r10
+ adds r2, r0, r4
+ ldrb r3, [r2]
+ mov r1, r10
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+_0814CF0A:
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bhi _0814CEBC
+_0814CF14:
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ cmp r8, r0
+ blt _0814CE92
+_0814CF24:
+ movs r0, 0
+ ldr r1, [sp, 0xC]
+ movs r2, 0x30
+ bl SendBlock
+ b _0814CF8E
+_0814CF30:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814CF94
+ b _0814CF64
+_0814CF3C:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0814CF94
+ adds r4, r7, 0
+ adds r4, 0x68
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ ldr r1, _0814CF6C @ =gBlockRecvBuffer
+ adds r0, r4, 0
+ movs r2, 0x30
+ bl memcpy
+ bl ResetBlockReceivedFlags
+_0814CF64:
+ movs r0, 0
+ strh r0, [r7, 0x10]
+ b _0814CF8E
+ .align 2, 0
+_0814CF6C: .4byte gBlockRecvBuffer
+_0814CF70:
+ bl sub_814B930
+ movs r0, 0x12
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0
+ movs r1, 0xB
+ strh r1, [r7, 0x12]
+ strb r0, [r7, 0xC]
+ adds r1, r7, 0
+ adds r1, 0x24
+ strb r0, [r1]
+ b _0814CF94
+_0814CF8E:
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+_0814CF92:
+ strb r0, [r7, 0xC]
+_0814CF94:
+ movs r0, 0
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814CC0C
+
+ thumb_func_start sub_814CFA8
+sub_814CFA8: @ 814CFA8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x4
+ bhi _0814D084
+ lsls r0, 2
+ ldr r1, _0814CFC0 @ =_0814CFC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814CFC0: .4byte _0814CFC4
+ .align 2, 0
+_0814CFC4:
+ .4byte _0814CFD8
+ .4byte _0814CFEA
+ .4byte _0814CFFC
+ .4byte _0814D02C
+ .4byte _0814D03C
+_0814CFD8:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_814E644
+ cmp r0, 0
+ bne _0814D084
+ b _0814D08A
+_0814CFEA:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x1E
+ strb r0, [r1]
+ b _0814D084
+_0814CFFC:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0814D00E
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0814D08A
+_0814D00E:
+ ldr r0, _0814D028 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814D08A
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_814E80C
+ b _0814D084
+ .align 2, 0
+_0814D028: .4byte gMain
+_0814D02C:
+ ldrh r0, [r5, 0x12]
+ cmp r0, 0xC
+ bhi _0814D084
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _0814D08A
+_0814D03C:
+ ldr r0, _0814D07C @ =gStringVar1
+ ldr r1, [r5, 0x1C]
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, _0814D080 @ =gStringVar2
+ bl GetBerryPowder
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ strb r4, [r5, 0xC]
+ b _0814D08A
+ .align 2, 0
+_0814D07C: .4byte gStringVar1
+_0814D080: .4byte gStringVar2
+_0814D084:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814D08A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814CFA8
+
+ thumb_func_start sub_814D094
+sub_814D094: @ 814D094
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x4
+ bhi _0814D178
+ lsls r0, 2
+ ldr r1, _0814D0AC @ =_0814D0B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814D0AC: .4byte _0814D0B0
+ .align 2, 0
+_0814D0B0:
+ .4byte _0814D0C4
+ .4byte _0814D100
+ .4byte _0814D106
+ .4byte _0814D150
+ .4byte _0814D164
+_0814D0C4:
+ ldrh r1, [r5, 0x28]
+ ldr r0, _0814D0FC @ =0x00008c9f
+ cmp r1, r0
+ bls _0814D0D6
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r5, r1
+ bl sub_814EB04
+_0814D0D6:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_814D5A4
+ movs r4, 0
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ strb r4, [r5, 0xC]
+ b _0814D17E
+ .align 2, 0
+_0814D0FC: .4byte 0x00008c9f
+_0814D100:
+ bl sub_80FA42C
+ b _0814D178
+_0814D106:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D17E
+ movs r0, 0
+ movs r1, 0
+ bl DrawDialogueFrame
+ ldr r2, _0814D148 @ =gUnknown_8419F54
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ movs r3, 0
+ bl AddTextPrinterParameterized2
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, _0814D14C @ =sub_80DA634
+ movs r1, 0
+ bl CreateTask
+ b _0814D178
+ .align 2, 0
+_0814D148: .4byte gUnknown_8419F54
+_0814D14C: .4byte sub_80DA634
+_0814D150:
+ ldr r0, _0814D160 @ =sub_80DA634
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D178
+ b _0814D17E
+ .align 2, 0
+_0814D160: .4byte sub_80DA634
+_0814D164:
+ movs r0, 0x14
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r1, 0
+ movs r0, 0xF
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _0814D17E
+_0814D178:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814D17E:
+ movs r0, 0
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D094
+
+ thumb_func_start sub_814D188
+sub_814D188: @ 814D188
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x1
+ beq _0814D1CA
+ cmp r0, 0x1
+ bgt _0814D1A0
+ cmp r0, 0
+ beq _0814D1A6
+ b _0814D230
+_0814D1A0:
+ cmp r0, 0x2
+ beq _0814D1D0
+ b _0814D230
+_0814D1A6:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r6, 0
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x14
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0
+ strb r0, [r5, 0xC]
+ b _0814D238
+_0814D1CA:
+ bl sub_80F7858
+ b _0814D230
+_0814D1D0:
+ bl Menu_ProcessInputNoWrapClearOnChoose
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _0814D236
+ adds r0, r5, 0
+ adds r0, 0x42
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ cmp r4, 0
+ bne _0814D202
+ bl CheckHasAtLeastOneBerry
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D1FE
+ strh r4, [r5, 0x14]
+ b _0814D206
+_0814D1FE:
+ movs r0, 0x3
+ b _0814D204
+_0814D202:
+ movs r0, 0x1
+_0814D204:
+ strh r0, [r5, 0x14]
+_0814D206:
+ movs r0, 0
+ movs r1, 0x1
+ bl ClearDialogWindowAndFrame
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_814D5A4
+ movs r0, 0x15
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ strb r4, [r5, 0xC]
+ b _0814D236
+_0814D230:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814D236:
+ movs r0, 0
+_0814D238:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D188
+
+ thumb_func_start sub_814D240
+sub_814D240: @ 814D240
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _0814D266
+ cmp r0, 0x1
+ bgt _0814D256
+ cmp r0, 0
+ beq _0814D260
+ b _0814D30C
+_0814D256:
+ cmp r0, 0x2
+ beq _0814D288
+ cmp r0, 0x3
+ beq _0814D296
+ b _0814D30C
+_0814D260:
+ bl sub_80FA42C
+ b _0814D30C
+_0814D266:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D312
+ ldrh r0, [r4, 0x14]
+ adds r1, r4, 0
+ adds r1, 0x42
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x4E
+ strh r5, [r0]
+ movs r0, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _0814D30C
+_0814D288:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D312
+ strh r5, [r4, 0x10]
+ b _0814D30C
+_0814D296:
+ bl GetBlockReceivedStatus
+ ldr r2, _0814D2E8 @ =gUnknown_846E3C8
+ ldrb r3, [r4, 0x9]
+ subs r1, r3, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0814D312
+ adds r7, r4, 0
+ adds r7, 0x42
+ adds r6, r4, 0
+ adds r6, 0x4E
+ cmp r5, r3
+ bcs _0814D2D4
+ adds r1, r6, 0
+ ldr r2, _0814D2EC @ =gBlockRecvBuffer
+_0814D2BC:
+ lsls r0, r5, 8
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4, 0x9]
+ cmp r5, r0
+ bcc _0814D2BC
+_0814D2D4:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0814D2F0
+ movs r0, 0x17
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ b _0814D2FA
+ .align 2, 0
+_0814D2E8: .4byte gUnknown_846E3C8
+_0814D2EC: .4byte gBlockRecvBuffer
+_0814D2F0:
+ movs r0, 0x16
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+_0814D2FA:
+ bl ResetBlockReceivedFlags
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r7]
+ strh r0, [r6]
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _0814D314
+_0814D30C:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_0814D312:
+ movs r0, 0
+_0814D314:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D240
+
+ thumb_func_start sub_814D31C
+sub_814D31C: @ 814D31C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _0814D34A
+ cmp r4, 0x1
+ bgt _0814D332
+ cmp r4, 0
+ beq _0814D33C
+ b _0814D394
+_0814D332:
+ cmp r4, 0x2
+ beq _0814D356
+ cmp r4, 0x3
+ beq _0814D37A
+ b _0814D394
+_0814D33C:
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ b _0814D370
+_0814D34A:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D394
+ b _0814D39A
+_0814D356:
+ movs r0, 0
+ movs r1, 0x1
+ bl ClearDialogWindowAndFrame
+ adds r0, r5, 0
+ bl sub_814DA04
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+_0814D370:
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ b _0814D394
+_0814D37A:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814D39A
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ movs r0, 0
+ strh r4, [r5, 0x12]
+ b _0814D398
+_0814D394:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+_0814D398:
+ strb r0, [r5, 0xC]
+_0814D39A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D31C
+
+ thumb_func_start sub_814D3A4
+sub_814D3A4: @ 814D3A4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _0814D41C
+ cmp r4, 0x1
+ bgt _0814D3BA
+ cmp r4, 0
+ beq _0814D3C0
+ b _0814D456
+_0814D3BA:
+ cmp r4, 0x2
+ beq _0814D434
+ b _0814D456
+_0814D3C0:
+ movs r0, 0
+ movs r1, 0
+ bl DrawDialogueFrame
+ ldrh r1, [r5, 0x14]
+ cmp r1, 0x3
+ bne _0814D3F0
+ ldr r0, _0814D3EC @ =gUnknown_846E328
+ ldr r2, [r0, 0x14]
+ ldrb r3, [r5, 0xB]
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ bl AddTextPrinterParameterized2
+ b _0814D40C
+ .align 2, 0
+_0814D3EC: .4byte gUnknown_846E328
+_0814D3F0:
+ ldr r0, _0814D418 @ =gUnknown_846E328
+ ldr r2, [r0, 0x18]
+ ldrb r3, [r5, 0xB]
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ bl AddTextPrinterParameterized2
+_0814D40C:
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0814D456
+ .align 2, 0
+_0814D418: .4byte gUnknown_846E328
+_0814D41C:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814D45C
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x78
+ strb r0, [r1]
+ b _0814D456
+_0814D434:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0814D448
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0814D45C
+_0814D448:
+ movs r0, 0x18
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ strb r4, [r5, 0xC]
+ b _0814D45C
+_0814D456:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814D45C:
+ movs r0, 0
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D3A4
+
+ thumb_func_start sub_814D468
+sub_814D468: @ 814D468
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _0814D488
+ cmp r4, 0x1
+ bgt _0814D47C
+ cmp r4, 0
+ beq _0814D482
+ b _0814D4B8
+_0814D47C:
+ cmp r4, 0x2
+ beq _0814D498
+ b _0814D4B8
+_0814D482:
+ bl sub_80FA42C
+ b _0814D4B8
+_0814D488:
+ bl sub_800A4BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814D4BE
+ bl sub_800AAC0
+ b _0814D4B8
+_0814D498:
+ ldr r0, _0814D4B4 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0814D4BE
+ movs r0, 0x19
+ strb r0, [r5, 0xE]
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_814BB4C
+ strb r4, [r5, 0xC]
+ b _0814D4BE
+ .align 2, 0
+_0814D4B4: .4byte gReceivedRemoteLinkPlayers
+_0814D4B8:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0814D4BE:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D468
+
+ thumb_func_start sub_814D4C8
+sub_814D4C8: @ 814D4C8
+ push {lr}
+ movs r0, 0
+ bl sub_814B6FC
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814D4C8
+
+ thumb_func_start sub_814D4D8
+sub_814D4D8: @ 814D4D8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r0, 0x33
+ bl IncrementGameStat
+ strb r5, [r4, 0xD]
+ movs r1, 0
+ strh r5, [r4, 0x10]
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ str r5, [r4, 0x1C]
+ strh r5, [r4, 0x18]
+ strh r5, [r4, 0x1A]
+ str r5, [r4, 0x20]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x25
+ movs r0, 0
+ strb r0, [r1]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x28]
+ strh r5, [r4, 0x2E]
+ ldr r0, _0814D560 @ =0x0000ffff
+ strh r0, [r4, 0x32]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x34]
+ movs r6, 0
+ movs r3, 0
+_0814D518:
+ lsls r0, r5, 5
+ adds r2, r4, r0
+ adds r1, r2, 0
+ adds r1, 0xA4
+ ldr r0, _0814D560 @ =0x0000ffff
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xA6
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r1, 0x6
+ movs r0, 0x1
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xAC
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strb r6, [r0]
+ adds r0, 0x1
+ strb r6, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0814D518
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814D560: .4byte 0x0000ffff
+ thumb_func_end sub_814D4D8
+
+ thumb_func_start sub_814D564
+sub_814D564: @ 814D564
+ push {r4-r6,lr}
+ sub sp, 0x8
+ str r2, [sp, 0x4]
+ ldr r5, [sp, 0x18]
+ ldr r6, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ mov r2, sp
+ strh r4, [r2]
+ add r4, sp, 0x4
+ ldrb r2, [r4]
+ strb r2, [r0]
+ ldrb r2, [r4, 0x1]
+ strb r2, [r0, 0x1]
+ ldrb r2, [r4, 0x2]
+ strb r2, [r0, 0x2]
+ ldrb r2, [r4, 0x3]
+ strb r2, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ strb r5, [r0, 0x5]
+ strb r6, [r0, 0x6]
+ mov r2, sp
+ ldrb r2, [r2]
+ strb r2, [r0, 0x7]
+ mov r2, sp
+ ldrb r2, [r2, 0x1]
+ strb r2, [r0, 0x8]
+ strb r1, [r0, 0x9]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814D564
+
+ thumb_func_start sub_814D5A4
+sub_814D5A4: @ 814D5A4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ mov r4, sp
+ strh r3, [r4]
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ mov r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0, 0x2]
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ strb r1, [r0, 0x3]
+ strb r5, [r0, 0x4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814D5A4
+
+ .align 2, 0 @ Don't pad with nop.