summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2017-01-18 23:43:25 -0600
committerYamaArashi <YamaArashi@users.noreply.github.com>2017-01-18 21:43:25 -0800
commit5fae4fddf5c41eba64c96cbd5e7c132f5b6d400f (patch)
tree4471805a0b1d1720e8b10f03ffeddee5580d045f /asm
parent56f432fca2d552d8f0cda1a7fbab8aeb7d926fa2 (diff)
decompile more of rom3 (#199)
* start decompiling rom3 * newline * decompile sub_800BA78 * decompile more of rom3 * battle type constants * decompile sub_800C35C * remove sh.exe.stackdump
Diffstat (limited to 'asm')
-rw-r--r--asm/rom3.s900
1 files changed, 0 insertions, 900 deletions
diff --git a/asm/rom3.s b/asm/rom3.s
index 1717e3688..9ab9f021e 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -6,906 +6,6 @@
.text
- thumb_func_start sub_800BD54
-sub_800BD54: @ 800BD54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800BD74 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800BD6C
- b _0800BE88
-_0800BD6C:
- movs r0, 0
- mov r8, r0
- b _0800BE7E
- .align 2, 0
-_0800BD74: .4byte gBattleTypeFlags
-_0800BD78:
- movs r5, 0
- movs r0, 0x1
- add r0, r8
- mov r10, r0
- ldr r0, _0800BDA4 @ =gUnknown_02024A72
- add r0, r8
- mov r9, r0
- mov r0, r8
- lsls r6, r0, 1
- movs r7, 0
-_0800BD8C:
- mov r0, r8
- cmp r0, 0x1
- bgt _0800BDF4
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800BDAC
- ldr r0, _0800BDA8 @ =gPlayerParty
- b _0800BDAE
- .align 2, 0
-_0800BDA4: .4byte gUnknown_02024A72
-_0800BDA8: .4byte gPlayerParty
-_0800BDAC:
- ldr r0, _0800BDEC @ =gEnemyParty
-_0800BDAE:
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0800BE74
- ldr r0, _0800BDF0 @ =gUnknown_02024A6A
- adds r0, r6, r0
- strh r5, [r0]
- b _0800BE7C
- .align 2, 0
-_0800BDEC: .4byte gEnemyParty
-_0800BDF0: .4byte gUnknown_02024A6A
-_0800BDF4:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800BE1C
- ldr r0, _0800BE18 @ =gPlayerParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0xB
- b _0800BE30
- .align 2, 0
-_0800BE18: .4byte gPlayerParty
-_0800BE1C:
- ldr r0, _0800BE6C @ =gEnemyParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
-_0800BE30:
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0800BE74
- ldr r1, _0800BE70 @ =gUnknown_02024A6A
- mov r0, r8
- subs r0, 0x2
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _0800BE74
- adds r0, r6, r1
- strh r5, [r0]
- b _0800BE7C
- .align 2, 0
-_0800BE6C: .4byte gEnemyParty
-_0800BE70: .4byte gUnknown_02024A6A
-_0800BE74:
- adds r7, 0x64
- adds r5, 0x1
- cmp r5, 0x5
- ble _0800BD8C
-_0800BE7C:
- mov r8, r10
-_0800BE7E:
- ldr r0, _0800BE98 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r8, r0
- bge _0800BE88
- b _0800BD78
-_0800BE88:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BE98: .4byte gUnknown_02024A68
- thumb_func_end sub_800BD54
-
- thumb_func_start dp01_prepare_buffer
-dp01_prepare_buffer: @ 800BE9C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _0800BEC4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800BEC8
- adds r0, r3, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl dp01_prepare_buffer_wireless_probably
- b _0800BF1A
- .align 2, 0
-_0800BEC4: .4byte gBattleTypeFlags
-_0800BEC8:
- cmp r5, 0
- beq _0800BED2
- cmp r5, 0x1
- beq _0800BEFC
- b _0800BF1A
-_0800BED2:
- movs r3, 0
- cmp r3, r2
- bge _0800BF1A
- ldr r6, _0800BEF4 @ =gUnknown_02023A60
- ldr r5, _0800BEF8 @ =gUnknown_02024A60
-_0800BEDC:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _0800BEDC
- b _0800BF1A
- .align 2, 0
-_0800BEF4: .4byte gUnknown_02023A60
-_0800BEF8: .4byte gUnknown_02024A60
-_0800BEFC:
- movs r3, 0
- cmp r3, r2
- bge _0800BF1A
- ldr r6, _0800BF20 @ =gUnknown_02024260
- ldr r5, _0800BF24 @ =gUnknown_02024A60
-_0800BF06:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _0800BF06
-_0800BF1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BF20: .4byte gUnknown_02024260
-_0800BF24: .4byte gUnknown_02024A60
- thumb_func_end dp01_prepare_buffer
-
- thumb_func_start sub_800BF28
-sub_800BF28: @ 800BF28
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0800BFD0 @ =sub_800C1A8
- movs r1, 0
- bl CreateTask
- ldr r2, _0800BFD4 @ =gUnknown_020238C4
- strb r0, [r2]
- ldr r5, _0800BFD8 @ =gTasks
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r6, 0
- movs r4, 0
- strh r4, [r0, 0x1E]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, _0800BFDC @ =sub_800C47C
- movs r1, 0
- bl CreateTask
- ldr r2, _0800BFE0 @ =gUnknown_020238C5
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, _0800BFE4 @ =gUnknown_020238C6
- strb r6, [r0]
- mov r0, sp
- strh r4, [r0]
- ldr r1, _0800BFE8 @ =0x02014000
- ldr r2, _0800BFEC @ =0x01001000
- bl CpuSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BFD0: .4byte sub_800C1A8
-_0800BFD4: .4byte gUnknown_020238C4
-_0800BFD8: .4byte gTasks
-_0800BFDC: .4byte sub_800C47C
-_0800BFE0: .4byte gUnknown_020238C5
-_0800BFE4: .4byte gUnknown_020238C6
-_0800BFE8: .4byte 0x02014000
-_0800BFEC: .4byte 0x01001000
- thumb_func_end sub_800BF28
-
- thumb_func_start dp01_prepare_buffer_wireless_probably
-dp01_prepare_buffer_wireless_probably: @ 800BFF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r1, 0x3
- mov r0, r8
- bics r0, r1
- adds r0, 0x4
- mov r9, r0
- ldr r2, _0800C168 @ =gTasks
- ldr r3, _0800C16C @ =gUnknown_020238C4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r2
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- add r0, r9
- adds r0, 0x9
- movs r1, 0x80
- lsls r1, 5
- adds r5, r2, 0
- cmp r0, r1
- ble _0800C042
- ldrh r0, [r4, 0x24]
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0x24]
-_0800C042:
- ldr r4, _0800C170 @ =0x02000000
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- movs r7, 0xA0
- lsls r7, 9
- adds r0, r7
- adds r0, r4
- strb r6, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- ldr r2, _0800C174 @ =0x00014001
- adds r0, r2
- adds r0, r4
- ldr r1, _0800C178 @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- ldr r1, _0800C17C @ =0x00014002
- adds r0, r1
- adds r0, r4
- ldr r1, _0800C180 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- ldr r7, _0800C184 @ =0x00014003
- adds r0, r7
- adds r0, r4
- ldr r1, _0800C188 @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- ldr r2, _0800C18C @ =0x00014004
- adds r0, r2
- adds r0, r4
- mov r7, r9
- strb r7, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r7, _0800C190 @ =0x00014005
- adds r1, r7
- adds r1, r4
- movs r0, 0xFF
- lsls r0, 8
- mov r2, r9
- ands r0, r2
- asrs r0, 8
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- ldr r1, _0800C194 @ =0x00014006
- adds r0, r1
- adds r0, r4
- ldr r1, _0800C198 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- ldr r7, _0800C19C @ =0x00014007
- adds r0, r7
- adds r0, r4
- ldr r1, _0800C1A0 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r0]
- movs r2, 0
- cmp r2, r8
- bge _0800C146
- mov r12, r4
- adds r6, r3, 0
- ldr r4, _0800C1A4 @ =0x00014008
-_0800C122:
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0800C168 @ =gTasks
- adds r0, r1
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- adds r0, r2, r4
- adds r1, r0
- add r1, r12
- mov r7, r10
- adds r0, r7, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, r8
- blt _0800C122
-_0800C146:
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x24]
- add r0, r9
- adds r0, 0x8
- strh r0, [r1, 0x24]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C168: .4byte gTasks
-_0800C16C: .4byte gUnknown_020238C4
-_0800C170: .4byte 0x02000000
-_0800C174: .4byte 0x00014001
-_0800C178: .4byte gUnknown_02024A60
-_0800C17C: .4byte 0x00014002
-_0800C180: .4byte gUnknown_02024C07
-_0800C184: .4byte 0x00014003
-_0800C188: .4byte gUnknown_02024C08
-_0800C18C: .4byte 0x00014004
-_0800C190: .4byte 0x00014005
-_0800C194: .4byte 0x00014006
-_0800C198: .4byte gUnknown_02024C0C
-_0800C19C: .4byte 0x00014007
-_0800C1A0: .4byte gUnknown_02024C0A
-_0800C1A4: .4byte 0x00014008
- thumb_func_end dp01_prepare_buffer_wireless_probably
-
- thumb_func_start sub_800C1A8
-sub_800C1A8: @ 800C1A8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0800C1D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x5
- bls _0800C1C4
- b _0800C354
-_0800C1C4:
- lsls r0, 2
- ldr r1, _0800C1D4 @ =_0800C1D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800C1D0: .4byte gTasks
-_0800C1D4: .4byte _0800C1D8
- .align 2, 0
-_0800C1D8:
- .4byte _0800C1F0
- .4byte _0800C204
- .4byte _0800C220
- .4byte _0800C25C
- .4byte _0800C2E6
- .4byte _0800C338
-_0800C1F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- movs r1, 0x64
- strh r1, [r0, 0x1C]
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- b _0800C354
-_0800C204:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x1C]
- subs r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- cmp r0, 0
- beq _0800C21A
- b _0800C354
-_0800C21A:
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
-_0800C220:
- bl GetLinkPlayerCount_2
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _0800C248
- bl sub_8007F4C
- ldr r0, _0800C244 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
- .align 2, 0
-_0800C244: .4byte gTasks
-_0800C248:
- ldr r0, _0800C258 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
- .align 2, 0
-_0800C258: .4byte gTasks
-_0800C25C:
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r7
- movs r5, 0x26
- ldrsh r3, [r2, r5]
- movs r0, 0x24
- ldrsh r6, [r2, r0]
- mov r12, r6
- cmp r3, r12
- beq _0800C354
- ldrh r0, [r2, 0x22]
- movs r6, 0x22
- ldrsh r5, [r2, r6]
- cmp r5, 0
- bne _0800C2E0
- cmp r3, r12
- ble _0800C28C
- movs r6, 0x20
- ldrsh r0, [r2, r6]
- cmp r3, r0
- bne _0800C28C
- strh r5, [r2, 0x20]
- strh r5, [r2, 0x26]
-_0800C28C:
- ldr r5, _0800C2D4 @ =0x02000000
- adds r4, r1, r4
- lsls r4, 3
- adds r4, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- ldr r1, _0800C2D8 @ =0x00014004
- adds r0, r2, r1
- adds r0, r5
- ldrb r1, [r0]
- ldr r6, _0800C2DC @ =0x00014005
- adds r2, r6
- adds r2, r5
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- adds r1, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- movs r2, 0xA0
- lsls r2, 9
- adds r5, r2
- adds r1, r5
- adds r2, r6, 0
- bl SendBlock
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- b _0800C354
- .align 2, 0
-_0800C2D4: .4byte 0x02000000
-_0800C2D8: .4byte 0x00014004
-_0800C2DC: .4byte 0x00014005
-_0800C2E0:
- subs r0, 0x1
- strh r0, [r2, 0x22]
- b _0800C354
-_0800C2E6:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0800C354
- ldr r2, _0800C328 @ =0x02000000
- ldr r0, _0800C32C @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- ldr r5, _0800C330 @ =0x00014004
- adds r0, r1, r5
- adds r0, r2
- ldrb r0, [r0]
- ldr r6, _0800C334 @ =0x00014005
- adds r1, r6
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- movs r2, 0x1
- strh r2, [r3, 0x22]
- orrs r0, r1
- ldrh r1, [r3, 0x26]
- adds r0, r1
- adds r0, 0x8
- strh r0, [r3, 0x26]
- movs r0, 0x3
- strh r0, [r3, 0x1E]
- b _0800C354
- .align 2, 0
-_0800C328: .4byte 0x02000000
-_0800C32C: .4byte gTasks
-_0800C330: .4byte 0x00014004
-_0800C334: .4byte 0x00014005
-_0800C338:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- lsls r0, 16
- cmp r0, 0
- bne _0800C354
- movs r0, 0x1
- strh r0, [r1, 0x22]
- movs r0, 0x3
-_0800C352:
- strh r0, [r1, 0x1E]
-_0800C354:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800C1A8
-
- thumb_func_start sub_800C35C
-sub_800C35C: @ 800C35C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800C38C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800C458
- ldr r0, _0800C390 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800C458
- ldr r0, _0800C394 @ =gLinkPlayers
- ldr r1, [r0, 0x14]
- ldr r0, _0800C398 @ =0x00002211
- cmp r1, r0
- bne _0800C458
- movs r4, 0
- ldr r0, _0800C39C @ =gBlockRecvBuffer
- mov r10, r0
- b _0800C44C
- .align 2, 0
-_0800C38C: .4byte gReceivedRemoteLinkPlayers
-_0800C390: .4byte gBattleTypeFlags
-_0800C394: .4byte gLinkPlayers
-_0800C398: .4byte 0x00002211
-_0800C39C: .4byte gBlockRecvBuffer
-_0800C3A0:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800C468 @ =gBitTable
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- ands r0, r1
- adds r1, r4, 0x1
- mov r9, r1
- cmp r0, 0
- beq _0800C446
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- lsls r0, r4, 8
- mov r2, r10
- adds r3, r0, r2
- ldr r1, _0800C46C @ =gBlockRecvBuffer + 0x4
- adds r0, r1
- ldrh r6, [r0]
- ldr r7, _0800C470 @ =gTasks
- ldr r2, _0800C474 @ =gUnknown_020238C5
- mov r12, r2
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r7
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- adds r0, r6, 0
- adds r0, 0x9
- adds r1, r0
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- ble _0800C402
- ldrh r0, [r2, 0x24]
- strh r0, [r2, 0x20]
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x24]
-_0800C402:
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r0, _0800C478 @ =0x02015000
- adds r5, r1, r0
- adds r4, r3, 0
- movs r2, 0
- adds r3, r6, 0
- adds r3, 0x8
- mov r8, r7
- mov r7, r12
- cmp r2, r3
- bge _0800C434
-_0800C426:
- adds r0, r5, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r3
- blt _0800C426
-_0800C434:
- ldrb r0, [r7]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x24]
- adds r0, r6, r0
- adds r0, 0x8
- strh r0, [r1, 0x24]
-_0800C446:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r4, r0, 24
-_0800C44C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0800C3A0
-_0800C458:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C468: .4byte gBitTable
-_0800C46C: .4byte gBlockRecvBuffer + 0x4
-_0800C470: .4byte gTasks
-_0800C474: .4byte gUnknown_020238C5
-_0800C478: .4byte 0x02015000
- thumb_func_end sub_800C35C
-
thumb_func_start sub_800C47C
sub_800C47C: @ 800C47C
push {r4-r7,lr}