summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/link_rfu_2.s2075
-rw-r--r--asm/link_rfu_4.s2071
-rw-r--r--data/link_rfu_2.s125
-rw-r--r--data/link_rfu_4.s128
-rw-r--r--include/global.h9
-rw-r--r--ld_script.txt2
-rw-r--r--sym_common.txt6
7 files changed, 2220 insertions, 2196 deletions
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index d13b2d2d6..716faa934 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -5334,14 +5334,14 @@ _080FAF18: .4byte Rfu
thumb_func_start sub_80FAF1C
sub_80FAF1C: @ 80FAF1C
push {lr}
- ldr r0, _080FAF2C @ =Rfu+0x9b0
+ ldr r0, _080FAF2C @ =gUnknown_3005E00
ldr r1, _080FAF30 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
pop {r0}
bx r0
.align 2, 0
-_080FAF2C: .4byte Rfu+0x9b0
+_080FAF2C: .4byte gUnknown_3005E00
_080FAF30: .4byte gSaveBlock2Ptr
thumb_func_end sub_80FAF1C
@@ -5452,7 +5452,7 @@ sub_80FAFE0: @ 80FAFE0
ands r1, r3
orrs r1, r0
strb r1, [r2, 0xA]
- ldr r3, _080FB004 @ =Rfu+0x9b0
+ ldr r3, _080FB004 @ =gUnknown_3005E00
movs r0, 0
movs r1, 0x2
bl rfu_REQ_configGameData
@@ -5460,7 +5460,7 @@ sub_80FAFE0: @ 80FAFE0
bx r0
.align 2, 0
_080FB000: .4byte gUnknown_3005440
-_080FB004: .4byte Rfu+0x9b0
+_080FB004: .4byte gUnknown_3005E00
thumb_func_end sub_80FAFE0
thumb_func_start sub_80FB008
@@ -5473,7 +5473,7 @@ sub_80FB008: @ 80FB008
bl sub_80FAF58
_080FB016:
ldr r2, _080FB028 @ =gUnknown_3005440
- ldr r3, _080FB02C @ =Rfu+0x9b0
+ ldr r3, _080FB02C @ =gUnknown_3005E00
movs r0, 0
movs r1, 0x2
bl rfu_REQ_configGameData
@@ -5481,7 +5481,7 @@ _080FB016:
bx r0
.align 2, 0
_080FB028: .4byte gUnknown_3005440
-_080FB02C: .4byte Rfu+0x9b0
+_080FB02C: .4byte gUnknown_3005E00
thumb_func_end sub_80FB008
thumb_func_start sub_80FB030
@@ -8122,2067 +8122,4 @@ nullsub_89: @ 80FC474
bx lr
thumb_func_end nullsub_89
- thumb_func_start sub_80FC478
-sub_80FC478: @ 80FC478
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r0, 0
- movs r4, 0
- movs r5, 0x46
-_080FC482:
- adds r2, r0, 0x1
- movs r1, 0x45
- muls r0, r5
- adds r0, r3
- adds r0, 0x45
-_080FC48C:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080FC48C
- adds r0, r2, 0
- cmp r0, 0x13
- ble _080FC482
- movs r1, 0
- ldr r2, _080FC4C8 @ =0x00000579
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- movs r2, 0xAF
- lsls r2, 3
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC4CC @ =0x0000057a
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC4D0 @ =0x0000057b
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC4C8: .4byte 0x00000579
-_080FC4CC: .4byte 0x0000057a
-_080FC4D0: .4byte 0x0000057b
- thumb_func_end sub_80FC478
-
- thumb_func_start sub_80FC4D4
-sub_80FC4D4: @ 80FC4D4
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0
- movs r4, 0
-_080FC4DC:
- lsls r0, r1, 3
- adds r2, r1, 0x1
- subs r0, r1
- movs r1, 0xD
- lsls r0, 1
- adds r0, r3
- adds r0, 0xD
-_080FC4EA:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080FC4EA
- adds r1, r2, 0
- cmp r1, 0x27
- ble _080FC4DC
- movs r1, 0
- ldr r2, _080FC524 @ =0x00000231
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- movs r2, 0x8C
- lsls r2, 2
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC528 @ =0x00000232
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC52C @ =0x00000233
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC524: .4byte 0x00000231
-_080FC528: .4byte 0x00000232
-_080FC52C: .4byte 0x00000233
- thumb_func_end sub_80FC4D4
-
- thumb_func_start sub_80FC530
-sub_80FC530: @ 80FC530
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0
- movs r4, 0
-_080FC538:
- lsls r0, r1, 8
- adds r2, r1, 0x1
- movs r1, 0xFF
- adds r0, r3
- adds r0, 0xFF
-_080FC542:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080FC542
- adds r1, r2, 0
- cmp r1, 0x1
- ble _080FC538
- movs r1, 0
- ldr r2, _080FC57C @ =0x00000201
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- movs r2, 0x80
- lsls r2, 2
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC580 @ =0x00000202
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r2, _080FC584 @ =0x00000203
- adds r0, r3, r2
- ldrb r2, [r0]
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC57C: .4byte 0x00000201
-_080FC580: .4byte 0x00000202
-_080FC584: .4byte 0x00000203
- thumb_func_end sub_80FC530
-
- thumb_func_start sub_80FC588
-sub_80FC588: @ 80FC588
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _080FC620 @ =0x0000057a
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _080FC628
- ldr r0, _080FC624 @ =0x04000208
- ldrh r1, [r0]
- adds r7, r1, 0
- movs r1, 0
- strh r1, [r0]
- movs r3, 0
- movs r2, 0
-_080FC5A6:
- adds r1, r6, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080FC5BA
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080FC5BA
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080FC5BA:
- adds r2, 0xE
- cmp r2, 0x45
- ble _080FC5A6
- cmp r3, 0x5
- beq _080FC618
- movs r2, 0
- movs r0, 0xAF
- lsls r0, 3
- adds r3, r5, r0
- movs r4, 0x46
-_080FC5CE:
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r5, r1
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x45
- ble _080FC5CE
- movs r1, 0xAF
- lsls r1, 3
- adds r4, r5, r1
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0x14
- bl __umodsi3
- ldrb r1, [r4]
- strb r0, [r4]
- ldr r0, _080FC620 @ =0x0000057a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r1, 0
- adds r0, r6, 0
- adds r0, 0x45
-_080FC610:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r6
- bge _080FC610
-_080FC618:
- ldr r0, _080FC624 @ =0x04000208
- strh r7, [r0]
- b _080FC632
- .align 2, 0
-_080FC620: .4byte 0x0000057a
-_080FC624: .4byte 0x04000208
-_080FC628:
- ldr r1, _080FC638 @ =0x0000057b
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_080FC632:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC638: .4byte 0x0000057b
- thumb_func_end sub_80FC588
-
- thumb_func_start sub_80FC63C
-sub_80FC63C: @ 80FC63C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r1, _080FC6CC @ =0x00000232
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0x27
- bhi _080FC6D4
- ldr r1, _080FC6D0 @ =0x04000208
- ldrh r0, [r1]
- adds r7, r0, 0
- movs r0, 0
- strh r0, [r1]
- movs r2, 0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080FC66C
-_080FC65E:
- adds r2, 0x1
- cmp r2, 0xD
- bgt _080FC66C
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FC65E
-_080FC66C:
- cmp r2, 0xE
- beq _080FC6C4
- movs r2, 0
- movs r0, 0x8C
- lsls r0, 2
- adds r3, r6, r0
-_080FC678:
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r2, r0
- adds r0, r6, r0
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xD
- ble _080FC678
- movs r1, 0x8C
- lsls r1, 2
- adds r4, r6, r1
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0x28
- bl __umodsi3
- ldrb r1, [r4]
- strb r0, [r4]
- ldr r0, _080FC6CC @ =0x00000232
- adds r1, r6, r0
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r1, 0
- adds r0, r5, 0
- adds r0, 0xD
-_080FC6BC:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r5
- bge _080FC6BC
-_080FC6C4:
- ldr r0, _080FC6D0 @ =0x04000208
- strh r7, [r0]
- b _080FC6DE
- .align 2, 0
-_080FC6CC: .4byte 0x00000232
-_080FC6D0: .4byte 0x04000208
-_080FC6D4:
- ldr r1, _080FC6E4 @ =0x00000233
- adds r0, r6, r1
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_080FC6DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC6E4: .4byte 0x00000233
- thumb_func_end sub_80FC63C
-
- thumb_func_start sub_80FC6E8
-sub_80FC6E8: @ 80FC6E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r3, r1, 0
- ldr r1, _080FC730 @ =0x04000208
- ldrh r0, [r1]
- mov r8, r0
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xAF
- lsls r1, 3
- adds r0, r5, r1
- ldr r7, _080FC734 @ =0x00000579
- adds r4, r5, r7
- ldrb r1, [r0]
- ldrb r0, [r4]
- cmp r1, r0
- beq _080FC718
- ldr r1, _080FC738 @ =0x0000057b
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FC73C
-_080FC718:
- movs r1, 0
- adds r0, r3, 0
- adds r0, 0x45
-_080FC71E:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r3
- bge _080FC71E
- ldr r0, _080FC730 @ =0x04000208
- mov r7, r8
- strh r7, [r0]
- movs r0, 0
- b _080FC784
- .align 2, 0
-_080FC730: .4byte 0x04000208
-_080FC734: .4byte 0x00000579
-_080FC738: .4byte 0x0000057b
-_080FC73C:
- movs r2, 0
- movs r6, 0x46
-_080FC740:
- adds r1, r3, r2
- ldrb r0, [r4]
- adds r7, r0, 0
- muls r7, r6
- adds r0, r7, 0
- adds r0, r2, r0
- adds r0, r5, r0
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x45
- ble _080FC740
- ldr r0, _080FC790 @ =0x00000579
- adds r4, r5, r0
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0x14
- bl __umodsi3
- ldrb r1, [r4]
- strb r0, [r4]
- ldr r7, _080FC794 @ =0x0000057a
- adds r1, r5, r7
- ldrb r0, [r1]
- subs r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- ldr r0, _080FC798 @ =0x04000208
- mov r1, r8
- strh r1, [r0]
- movs r0, 0x1
-_080FC784:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080FC790: .4byte 0x00000579
-_080FC794: .4byte 0x0000057a
-_080FC798: .4byte 0x04000208
- thumb_func_end sub_80FC6E8
-
- thumb_func_start sub_80FC79C
-sub_80FC79C: @ 80FC79C
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r1, 0x8C
- lsls r1, 2
- adds r0, r5, r1
- adds r1, 0x1
- adds r4, r5, r1
- ldrb r1, [r0]
- ldrb r0, [r4]
- cmp r1, r0
- beq _080FC7C0
- ldr r1, _080FC7C4 @ =0x00000233
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r2, r0, 0
- cmp r2, 0
- beq _080FC7C8
-_080FC7C0:
- movs r0, 0
- b _080FC814
- .align 2, 0
-_080FC7C4: .4byte 0x00000233
-_080FC7C8:
- ldr r1, _080FC81C @ =0x04000208
- ldrh r0, [r1]
- adds r7, r0, 0
- strh r2, [r1]
- movs r3, 0
-_080FC7D2:
- adds r2, r6, r3
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r3, r0
- adds r0, r5, r0
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0xD
- ble _080FC7D2
- ldr r0, _080FC820 @ =0x00000231
- adds r4, r5, r0
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0x28
- bl __umodsi3
- ldrb r1, [r4]
- strb r0, [r4]
- ldr r0, _080FC824 @ =0x00000232
- adds r1, r5, r0
- ldrb r0, [r1]
- subs r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- ldr r0, _080FC81C @ =0x04000208
- strh r7, [r0]
- movs r0, 0x1
-_080FC814:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080FC81C: .4byte 0x04000208
-_080FC820: .4byte 0x00000231
-_080FC824: .4byte 0x00000232
- thumb_func_end sub_80FC79C
-
- thumb_func_start sub_80FC828
-sub_80FC828: @ 80FC828
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _080FC83E
- adds r0, r2, 0
- movs r1, 0
- bl sub_80FC888
- b _080FC880
-_080FC83E:
- movs r3, 0
-_080FC840:
- ldrb r1, [r2, 0x1C]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r3, r0
- adds r0, r2, r0
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0xD
- ble _080FC840
- ldrb r0, [r2, 0x1C]
- adds r0, 0x1
- ldrb r1, [r2, 0x1C]
- strb r0, [r2, 0x1C]
- ldrb r1, [r2, 0x1C]
- movs r0, 0x1
- ands r0, r1
- ldrb r1, [r2, 0x1C]
- strb r0, [r2, 0x1C]
- ldrb r0, [r2, 0x1E]
- cmp r0, 0x1
- bhi _080FC87A
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- ldrb r1, [r2, 0x1E]
- strb r0, [r2, 0x1E]
- b _080FC880
-_080FC87A:
- ldrb r0, [r2, 0x1C]
- ldrb r1, [r2, 0x1D]
- strb r0, [r2, 0x1D]
-_080FC880:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FC828
-
- thumb_func_start sub_80FC888
-sub_80FC888: @ 80FC888
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- ldrb r0, [r3, 0x1E]
- cmp r0, 0
- bne _080FC898
- movs r0, 0
- b _080FC8D2
-_080FC898:
- cmp r5, 0
- beq _080FC8B6
- movs r4, 0
-_080FC89E:
- adds r2, r5, r4
- ldrb r1, [r3, 0x1D]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- adds r0, r3, r0
- ldrb r0, [r0]
- strb r0, [r2]
- adds r4, 0x1
- cmp r4, 0xD
- ble _080FC89E
-_080FC8B6:
- ldrb r0, [r3, 0x1D]
- adds r0, 0x1
- ldrb r1, [r3, 0x1D]
- strb r0, [r3, 0x1D]
- ldrb r1, [r3, 0x1D]
- movs r0, 0x1
- ands r0, r1
- ldrb r1, [r3, 0x1D]
- strb r0, [r3, 0x1D]
- ldrb r0, [r3, 0x1E]
- subs r0, 0x1
- ldrb r1, [r3, 0x1E]
- strb r0, [r3, 0x1E]
- movs r0, 0x1
-_080FC8D2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FC888
-
- thumb_func_start sub_80FC8D8
-sub_80FC8D8: @ 80FC8D8
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- ldr r1, _080FC92C @ =0x00000202
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _080FC930
- movs r2, 0
- movs r0, 0x80
- lsls r0, 2
- adds r4, r3, r0
-_080FC8F0:
- ldrb r0, [r4]
- lsls r0, 8
- adds r0, r2, r0
- adds r0, r3, r0
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xFF
- ble _080FC8F0
- movs r0, 0x80
- lsls r0, 2
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- ldrb r2, [r1]
- strb r0, [r1]
- ldr r0, _080FC92C @ =0x00000202
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- b _080FC93A
- .align 2, 0
-_080FC92C: .4byte 0x00000202
-_080FC930:
- ldr r1, _080FC940 @ =0x00000203
- adds r0, r3, r1
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_080FC93A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC940: .4byte 0x00000203
- thumb_func_end sub_80FC8D8
-
- thumb_func_start sub_80FC944
-sub_80FC944: @ 80FC944
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- movs r1, 0x80
- lsls r1, 2
- adds r0, r3, r1
- adds r1, 0x1
- adds r4, r3, r1
- ldrb r1, [r0]
- ldrb r0, [r4]
- cmp r1, r0
- beq _080FC966
- ldr r1, _080FC96C @ =0x00000203
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FC970
-_080FC966:
- movs r0, 0
- b _080FC9AA
- .align 2, 0
-_080FC96C: .4byte 0x00000203
-_080FC970:
- movs r2, 0
-_080FC972:
- adds r0, r5, r2
- ldrb r1, [r4]
- lsls r1, 8
- adds r1, r2, r1
- adds r1, r3, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xFF
- ble _080FC972
- ldr r0, _080FC9B0 @ =0x00000201
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- ldrb r2, [r1]
- strb r0, [r1]
- ldr r0, _080FC9B4 @ =0x00000202
- adds r1, r3, r0
- ldrb r0, [r1]
- subs r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r0, 0x1
-_080FC9AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FC9B0: .4byte 0x00000201
-_080FC9B4: .4byte 0x00000202
- thumb_func_end sub_80FC944
-
- thumb_func_start sub_80FC9B8
-sub_80FC9B8: @ 80FC9B8
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- movs r5, 0
- cmp r1, 0x1
- beq _080FC9F6
- cmp r1, 0x1
- bgt _080FC9D2
- cmp r1, 0
- beq _080FC9DC
- b _080FCA6A
-_080FC9D2:
- cmp r0, 0x2
- beq _080FCA16
- cmp r0, 0x3
- beq _080FCA36
- b _080FCA6A
-_080FC9DC:
- movs r4, 0
-_080FC9DE:
- adds r0, r6, r4
- adds r1, r4, 0x1
- strb r1, [r0]
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, r1, 0
- cmp r4, 0xC7
- ble _080FC9DE
- b _080FCA30
-_080FC9F6:
- movs r4, 0
- adds r2, r6, 0
- adds r2, 0xC8
-_080FC9FC:
- adds r0, r6, r4
- adds r1, r4, 0x1
- strb r1, [r0]
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, r1, 0
- cmp r4, 0x63
- ble _080FC9FC
- strh r5, [r2]
- b _080FCA6A
-_080FCA16:
- movs r4, 0
-_080FCA18:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, r4
- strb r0, [r1]
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0xC7
- ble _080FCA18
-_080FCA30:
- adds r0, r6, r4
- strh r5, [r0]
- b _080FCA6A
-_080FCA36:
- movs r4, 0
- ldr r3, _080FCA70 @ =gUnknown_3002018
- ldrb r1, [r3]
- ldrb r0, [r3]
- adds r7, r0, 0x1
- adds r2, r1, 0x1
- movs r0, 0xFF
- mov r12, r0
-_080FCA46:
- adds r0, r6, r4
- adds r1, r4, 0x1
- strb r2, [r0]
- adds r0, r4, r7
- mov r4, r12
- ands r0, r4
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r2, 0x1
- adds r4, r1, 0
- cmp r1, 0xC7
- ble _080FCA46
- adds r0, r6, r1
- strh r5, [r0]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_080FCA6A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCA70: .4byte gUnknown_3002018
- thumb_func_end sub_80FC9B8
-
- thumb_func_start sub_80FCA74
-sub_80FCA74: @ 80FCA74
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080FCA98
- ldr r5, _080FCAA4 @ =gUnknown_843F104
- adds r2, r1, 0
-_080FCA84:
- 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 _080FCA84
-_080FCA98:
- adds r1, r4, r3
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCAA4: .4byte gUnknown_843F104
- thumb_func_end sub_80FCA74
-
- thumb_func_start sub_80FCAA8
-sub_80FCAA8: @ 80FCAA8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FCACC
- ldr r5, _080FCAD8 @ =gUnknown_843F004
- adds r2, r1, 0
-_080FCAB8:
- 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 _080FCAB8
-_080FCACC:
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCAD8: .4byte gUnknown_843F004
- thumb_func_end sub_80FCAA8
-
- thumb_func_start sub_80FCADC
-sub_80FCADC: @ 80FCADC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r0, _080FCB04 @ =gRfuLinkStatus
- ldr r4, [r0]
- ldrb r2, [r4, 0x2]
- ldrb r1, [r4]
- adds r7, r0, 0
- cmp r1, 0x1
- bne _080FCB32
- movs r3, 0
- ands r1, r2
- cmp r1, 0
- beq _080FCB0E
- cmp r5, 0x1
- bne _080FCB08
- ldrb r0, [r4, 0xA]
- b _080FCB4C
- .align 2, 0
-_080FCB04: .4byte gRfuLinkStatus
-_080FCB08:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080FCB0E:
- lsrs r2, 1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bhi _080FCB4A
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080FCB0E
- adds r0, r6, 0x1
- cmp r5, r0
- bne _080FCB08
-_080FCB28:
- ldr r0, [r7]
- adds r0, 0xA
- adds r0, r3
- ldrb r0, [r0]
- b _080FCB4C
-_080FCB32:
- movs r3, 0
- movs r1, 0x1
-_080FCB36:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FCB28
- lsrs r2, 1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080FCB36
-_080FCB4A:
- movs r0, 0
-_080FCB4C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FCADC
-
- thumb_func_start sub_80FCB54
-sub_80FCB54: @ 80FCB54
- 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, _080FCC30 @ =gSaveBlock2Ptr
- mov r8, r0
- adds r6, r7, 0x2
- ldr r0, [r0]
- adds r5, r0, 0
- adds r5, 0xA
-_080FCB72:
- adds r0, r6, r4
- adds r1, r5, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x1
- ble _080FCB72
- movs r4, 0
- lsls r2, 7
- mov r12, r2
- adds r1, r7, 0x4
-_080FCB88:
- adds r0, r1, r4
- strb r3, [r0]
- asrs r3, 8
- adds r4, 0x1
- cmp r4, 0x3
- ble _080FCB88
- 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
- .ifdef FIRERED
- movs r2, 0x10 @ VERSION_FIRE_RED << 2
- .else
- .ifdef LEAFGREEN
- movs r2, 0x14 @ VERSION_LEAF_GREEN << 2
- .endif
- .endif
- 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, _080FCC34 @ =0x00000844
- 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, _080FCC38 @ =0x0000082c
- 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
- .align 2, 0
-_080FCC30: .4byte gSaveBlock2Ptr
-_080FCC34: .4byte 0x00000844
-_080FCC38: .4byte 0x0000082c
- thumb_func_end sub_80FCB54
-
- thumb_func_start sub_80FCC3C
-sub_80FCC3C: @ 80FCC3C
- 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, _080FCC90 @ =gUnknown_3005E10
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _080FCC98
- movs r0, 0x1
- mov r9, r0
- ldr r6, _080FCC94 @ =gRfuLinkStatus
- ldr r0, [r6]
- lsls r4, r5, 5
- adds r0, r4
- ldrh r0, [r0, 0x18]
- bl sub_80FA44C
- cmp r0, 0
- beq _080FCC78
- ldr r1, [r6]
- ldrb r0, [r1, 0x7]
- asrs r0, r5
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _080FCCB0
-_080FCC78:
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0xD
- bl memset
- mov r0, r8
- movs r1, 0
- movs r2, 0x8
- bl memset
- b _080FCCE4
- .align 2, 0
-_080FCC90: .4byte gUnknown_3005E10
-_080FCC94: .4byte gRfuLinkStatus
-_080FCC98:
- movs r0, 0
- mov r9, r0
- ldr r6, _080FCCCC @ =gRfuLinkStatus
- ldr r0, [r6]
- lsls r4, r5, 5
- adds r0, r4
- ldrh r0, [r0, 0x18]
- bl sub_80FA44C
- cmp r0, 0
- beq _080FCCD0
- ldr r1, [r6]
-_080FCCB0:
- 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 _080FCCE4
- .align 2, 0
-_080FCCCC: .4byte gRfuLinkStatus
-_080FCCD0:
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0xD
- bl memset
- mov r0, r8
- movs r1, 0
- movs r2, 0x8
- bl memset
-_080FCCE4:
- mov r0, r9
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FCC3C
-
- thumb_func_start sub_80FCCF4
-sub_80FCCF4: @ 80FCCF4
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- movs r7, 0
- ldr r6, _080FCD2C @ =gRfuLinkStatus
- ldr r0, [r6]
- lsrs r4, r2, 19
- adds r2, r0, r4
- ldrh r1, [r2, 0x18]
- ldr r0, _080FCD30 @ =0x00007f7d
- cmp r1, r0
- bne _080FCD34
- 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 _080FCD48
- .align 2, 0
-_080FCD2C: .4byte gRfuLinkStatus
-_080FCD30: .4byte 0x00007f7d
-_080FCD34:
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xD
- bl memset
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
-_080FCD48:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FCCF4
-
- thumb_func_start sub_80FCD50
-sub_80FCD50: @ 80FCD50
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _080FCD6C @ =gUnknown_3005440
- movs r2, 0xD
- bl memcpy
- ldr r1, _080FCD70 @ =Rfu+0x9b0
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCD6C: .4byte gUnknown_3005440
-_080FCD70: .4byte Rfu+0x9b0
- thumb_func_end sub_80FCD50
-
- thumb_func_start CreateWirelessStatusIndicatorSprite
-CreateWirelessStatusIndicatorSprite: @ 80FCD74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r3, 0
- bne _080FCD8A
- cmp r2, 0
- bne _080FCD8A
- movs r3, 0xE7
- movs r2, 0x8
-_080FCD8A:
- ldr r0, _080FCDCC @ =gRfuLinkStatus
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080FCDE4
- ldr r0, _080FCDD0 @ =gUnknown_843F284
- adds r1, r3, 0
- movs r3, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080FCDD4 @ =gSprites
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r4, r0
- ldr r0, _080FCDD8 @ =0x00001234
- strh r0, [r4, 0x3C]
- ldr r0, _080FCDDC @ =gUnknown_843F274
- 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, _080FCDE0 @ =gUnknown_203ACE4
- strb r5, [r0]
- b _080FCE2A
- .align 2, 0
-_080FCDCC: .4byte gRfuLinkStatus
-_080FCDD0: .4byte gUnknown_843F284
-_080FCDD4: .4byte gSprites
-_080FCDD8: .4byte 0x00001234
-_080FCDDC: .4byte gUnknown_843F274
-_080FCDE0: .4byte gUnknown_203ACE4
-_080FCDE4:
- ldr r0, _080FCE30 @ =gUnknown_843F284
- adds r1, r3, 0
- movs r3, 0
- bl CreateSprite
- ldr r4, _080FCE34 @ =gUnknown_203ACE4
- strb r0, [r4]
- ldr r5, _080FCE38 @ =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080FCE3C @ =0x00001234
- strh r1, [r0, 0x3C]
- ldr r0, _080FCE40 @ =gUnknown_843F274
- 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]
-_080FCE2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCE30: .4byte gUnknown_843F284
-_080FCE34: .4byte gUnknown_203ACE4
-_080FCE38: .4byte gSprites
-_080FCE3C: .4byte 0x00001234
-_080FCE40: .4byte gUnknown_843F274
- thumb_func_end CreateWirelessStatusIndicatorSprite
-
- thumb_func_start DestroyWirelessStatusIndicatorSprite
-DestroyWirelessStatusIndicatorSprite: @ 80FCE44
- push {r4,lr}
- ldr r4, _080FCE90 @ =gSprites
- ldr r3, _080FCE94 @ =gUnknown_203ACE4
- 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, _080FCE98 @ =0x00001234
- cmp r1, r0
- bne _080FCE8A
- 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, _080FCE9C @ =gMain
- movs r0, 0x84
- lsls r0, 3
- adds r3, r0
- ldr r0, _080FCEA0 @ =gDummyOamData
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [r3]
- str r2, [r3, 0x4]
- ldr r1, _080FCEA4 @ =0x070003e8
- movs r2, 0x4
- bl CpuSet
-_080FCE8A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCE90: .4byte gSprites
-_080FCE94: .4byte gUnknown_203ACE4
-_080FCE98: .4byte 0x00001234
-_080FCE9C: .4byte gMain
-_080FCEA0: .4byte gDummyOamData
-_080FCEA4: .4byte 0x070003e8
- thumb_func_end DestroyWirelessStatusIndicatorSprite
-
- thumb_func_start LoadWirelessStatusIndicatorSpriteGfx
-LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8
- push {r4,lr}
- ldr r4, _080FCED4 @ =gUnknown_843F274
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _080FCED8 @ =0xffff0000
- cmp r0, r1
- bne _080FCEC0
- adds r0, r4, 0
- bl LoadCompressedSpriteSheet
-_080FCEC0:
- ldr r0, _080FCEDC @ =gUnknown_843F27C
- bl LoadSpritePalette
- ldr r1, _080FCEE0 @ =gUnknown_203ACE4
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCED4: .4byte gUnknown_843F274
-_080FCED8: .4byte 0xffff0000
-_080FCEDC: .4byte gUnknown_843F27C
-_080FCEE0: .4byte gUnknown_203ACE4
- thumb_func_end LoadWirelessStatusIndicatorSpriteGfx
-
- thumb_func_start sub_80FCEE4
-sub_80FCEE4: @ 80FCEE4
- push {r4,lr}
- ldr r1, _080FCF04 @ =gRfuLinkStatus
- ldr r0, [r1]
- ldrb r2, [r0, 0x2]
- movs r3, 0
- movs r4, 0x1
-_080FCEF0:
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _080FCF08
- ldr r0, [r1]
- adds r0, 0xA
- adds r0, r3
- ldrb r0, [r0]
- b _080FCF16
- .align 2, 0
-_080FCF04: .4byte gRfuLinkStatus
-_080FCF08:
- lsrs r2, 1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080FCEF0
- movs r0, 0
-_080FCF16:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FCEE4
-
- thumb_func_start sub_80FCF1C
-sub_80FCF1C: @ 80FCF1C
- push {lr}
- adds r2, r0, 0
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, r1
- beq _080FCF30
- movs r0, 0
- strh r1, [r2, 0x32]
- strh r0, [r2, 0x34]
- strh r0, [r2, 0x36]
-_080FCF30:
- pop {r0}
- bx r0
- thumb_func_end sub_80FCF1C
-
- thumb_func_start sub_80FCF34
-sub_80FCF34: @ 80FCF34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _080FCF78 @ =gUnknown_203ACE4
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080FCF44
- b _080FD106
-_080FCF44:
- ldr r2, _080FCF7C @ =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, _080FCF80 @ =0x00001234
- cmp r1, r0
- beq _080FCF5C
- b _080FD106
-_080FCF5C:
- adds r6, r2, 0
- movs r5, 0xFF
- movs r4, 0
- ldr r0, _080FCF84 @ =gRfuLinkStatus
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080FCFB6
- adds r7, r6, 0
- adds r7, 0x28
- movs r1, 0x29
- adds r1, r6
- mov r8, r1
- b _080FCFA6
- .align 2, 0
-_080FCF78: .4byte gUnknown_203ACE4
-_080FCF7C: .4byte gSprites
-_080FCF80: .4byte 0x00001234
-_080FCF84: .4byte gRfuLinkStatus
-_080FCF88:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80FCADC
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcc _080FCFA6
- adds r0, r4, 0
- bl sub_80FCADC
- lsls r0, 24
- lsrs r5, r0, 24
-_080FCFA6:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r4, r0
- blt _080FCF88
- b _080FCFC8
-_080FCFB6:
- bl sub_80FCEE4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r6, 0
- adds r7, 0x28
- movs r2, 0x29
- adds r2, r6
- mov r8, r2
-_080FCFC8:
- bl sub_80FC1B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FCFD8
- movs r0, 0x4
- b _080FD006
-_080FCFD8:
- cmp r5, 0x18
- bhi _080FCFE0
- movs r0, 0x3
- b _080FD006
-_080FCFE0:
- adds r0, r5, 0
- subs r0, 0x19
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x65
- bhi _080FCFF0
- movs r0, 0x2
- b _080FD006
-_080FCFF0:
- adds r0, r5, 0
- subs r0, 0x7F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x65
- bhi _080FD000
- movs r0, 0x1
- b _080FD006
-_080FD000:
- cmp r5, 0xE4
- bls _080FD008
- movs r0, 0
-_080FD006:
- strh r0, [r6, 0x2E]
-_080FD008:
- movs r3, 0x2E
- ldrsh r1, [r6, r3]
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r1, r0
- beq _080FD01E
- adds r0, r6, 0
- bl sub_80FCF1C
- ldrh r0, [r6, 0x2E]
- strh r0, [r6, 0x30]
-_080FD01E:
- 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 _080FD06C
- 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 _080FD072
- strh r3, [r6, 0x36]
- b _080FD072
-_080FD06C:
- ldrh r0, [r6, 0x34]
- adds r0, 0x1
- strh r0, [r6, 0x34]
-_080FD072:
- ldr r4, _080FD110 @ =gMain
- movs r1, 0x84
- lsls r1, 3
- adds r0, r4, r1
- ldr r1, _080FD114 @ =gUnknown_843F204
- 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, _080FD118 @ =0x00000422
- adds r5, r4, r1
- ldr r3, _080FD11C @ =0x000001ff
- adds r1, r3, 0
- ands r2, r1
- ldrh r3, [r5]
- ldr r1, _080FD120 @ =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, _080FD124 @ =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, _080FD128 @ =0x00000424
- adds r4, r1
- ldr r3, _080FD12C @ =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldrh r3, [r4]
- ldr r1, _080FD130 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r4]
- ldr r1, _080FD134 @ =0x070003e8
- movs r2, 0x4
- bl CpuSet
- bl sub_80FB9F4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FD106
- bl DestroyWirelessStatusIndicatorSprite
-_080FD106:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD110: .4byte gMain
-_080FD114: .4byte gUnknown_843F204
-_080FD118: .4byte 0x00000422
-_080FD11C: .4byte 0x000001ff
-_080FD120: .4byte 0xfffffe00
-_080FD124: .4byte 0x00000425
-_080FD128: .4byte 0x00000424
-_080FD12C: .4byte 0x000003ff
-_080FD130: .4byte 0xfffffc00
-_080FD134: .4byte 0x070003e8
- thumb_func_end sub_80FCF34
-
- thumb_func_start sub_80FD138
-sub_80FD138: @ 80FD138
- push {r4,r5,lr}
- adds r4, r0, 0
- str r1, [r4]
- movs r3, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _080FD15C
- adds r5, r4, 0x4
-_080FD148:
- adds r1, r5, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- bgt _080FD15C
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080FD148
-_080FD15C:
- adds r0, r4, 0x4
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD138
-
- thumb_func_start sub_80FD16C
-sub_80FD16C: @ 80FD16C
- push {lr}
- movs r2, 0
- movs r1, 0x7
-_080FD172:
- strb r2, [r0]
- adds r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080FD172
- pop {r0}
- bx r0
- thumb_func_end sub_80FD16C
-
- thumb_func_start sub_80FD180
-sub_80FD180: @ 80FD180
- push {lr}
- adds r1, r0, 0
- movs r2, 0
-_080FD186:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0
- beq _080FD192
- movs r0, 0
- b _080FD19A
-_080FD192:
- adds r2, 0x1
- cmp r2, 0x7
- ble _080FD186
- movs r0, 0x1
-_080FD19A:
- pop {r1}
- bx r1
- thumb_func_end sub_80FD180
-
- thumb_func_start sub_80FD1A0
-sub_80FD1A0: @ 80FD1A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r0, _080FD1C4 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FD1B6
- b _080FD318
-_080FD1B6:
- movs r0, 0xF0
- bl AllocZeroed
- str r0, [sp, 0x14]
- movs r4, 0
- b _080FD22C
- .align 2, 0
-_080FD1C4: .4byte gWirelessCommType
-_080FD1C8:
- 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 r2, _080FD24C @ =gLinkPlayers + 8
- mov r10, r2
- ldr r6, _080FD250 @ =0x00003ba8
- movs r4, 0
- mov r0, r10
- subs r0, 0x4
- ldr r7, [sp, 0x1C]
- adds r3, r7, r0
-_080FD1F4:
- ldrh r1, [r3]
- ldr r0, _080FD254 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r7, _080FD250 @ =0x00003ba8
- adds r0, r2, r7
- adds r0, r4
- ldr r0, [r0]
- cmp r1, r0
- bne _080FD220
- 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 _080FD220
- mov r0, sp
- add r0, r8
- str r5, [r0]
-_080FD220:
- adds r6, 0xC
- adds r4, 0xC
- adds r5, 0x1
- cmp r5, 0x13
- ble _080FD1F4
- mov r4, r9
-_080FD22C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080FD1C8
- movs r0, 0
- mov r8, r0
- movs r4, 0
- ldr r1, _080FD254 @ =gSaveBlock1Ptr
- mov r9, r1
- mov r7, sp
- movs r5, 0
- ldr r6, [sp, 0x14]
- b _080FD2A4
- .align 2, 0
-_080FD24C: .4byte gLinkPlayers + 8
-_080FD250: .4byte 0x00003ba8
-_080FD254: .4byte gSaveBlock1Ptr
-_080FD258:
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _080FD29E
- ldr r2, _080FD328 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r0, [r0, 0x1A]
- cmp r0, 0x1
- beq _080FD29E
- adds r0, r2, 0x4
- adds r0, r5, r0
- ldrh r1, [r0]
- adds r2, 0x8
- adds r2, r5, r2
- adds r0, r6, 0
- bl sub_80FD138
- ldr r1, [r7]
- cmp r1, 0
- blt _080FD298
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- mov r2, r9
- ldr r1, [r2]
- adds r0, r1
- ldr r1, _080FD32C @ =0x00003bac
- adds r0, r1
- bl sub_80FD16C
-_080FD298:
- adds r6, 0xC
- movs r2, 0x1
- add r8, r2
-_080FD29E:
- adds r7, 0x4
- adds r5, 0x1C
- adds r4, 0x1
-_080FD2A4:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080FD258
- movs r4, 0
- ldr r7, _080FD330 @ =gSaveBlock1Ptr
- mov r9, r7
- ldr r6, _080FD334 @ =0x00003ba8
- movs r7, 0
- mov r1, r8
- lsls r0, r1, 1
- add r0, r8
- lsls r0, 2
- ldr r2, [sp, 0x14]
- adds r5, r0, r2
-_080FD2C6:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r6
- adds r0, 0x4
- bl sub_80FD180
- cmp r0, 0
- bne _080FD2F8
- mov r0, r9
- ldr r2, [r0]
- ldr r1, _080FD334 @ =0x00003ba8
- adds r0, r2, r1
- adds r0, r7
- ldr r1, [r0]
- adds r2, r6
- adds r2, 0x4
- adds r0, r5, 0
- bl sub_80FD138
- adds r5, 0xC
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x13
- bgt _080FD302
-_080FD2F8:
- adds r6, 0xC
- adds r7, 0xC
- adds r4, 0x1
- cmp r4, 0x13
- ble _080FD2C6
-_080FD302:
- ldr r0, _080FD330 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _080FD334 @ =0x00003ba8
- adds r0, r1
- ldr r1, [sp, 0x14]
- movs r2, 0xF0
- bl memcpy
- ldr r0, [sp, 0x14]
- bl Free
-_080FD318:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD328: .4byte gLinkPlayers
-_080FD32C: .4byte 0x00003bac
-_080FD330: .4byte gSaveBlock1Ptr
-_080FD334: .4byte 0x00003ba8
- thumb_func_end sub_80FD1A0
-
- thumb_func_start sub_80FD338
-sub_80FD338: @ 80FD338
- 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, _080FD374 @ =gSaveBlock1Ptr
- ldr r4, _080FD378 @ =0x00003ba8
- movs r5, 0
-_080FD350:
- ldr r0, [r6]
- adds r0, r4
- adds r0, 0x4
- mov r1, r9
- movs r2, 0x7
- bl StringCompareN
- cmp r0, 0
- bne _080FD37C
- ldr r0, [r6]
- ldr r1, _080FD378 @ =0x00003ba8
- adds r0, r1
- adds r0, r5
- ldr r0, [r0]
- cmp r0, r8
- bne _080FD37C
- movs r0, 0x1
- b _080FD396
- .align 2, 0
-_080FD374: .4byte gSaveBlock1Ptr
-_080FD378: .4byte 0x00003ba8
-_080FD37C:
- ldr r0, [r6]
- adds r0, r4
- adds r0, 0x4
- bl sub_80FD180
- cmp r0, 0
- bne _080FD394
- adds r4, 0xC
- adds r5, 0xC
- adds r7, 0x1
- cmp r7, 0x13
- ble _080FD350
-_080FD394:
- movs r0, 0
-_080FD396:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD338
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s
new file mode 100644
index 000000000..7d3d3ca7a
--- /dev/null
+++ b/asm/link_rfu_4.s
@@ -0,0 +1,2071 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FC478
+sub_80FC478: @ 80FC478
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r0, 0
+ movs r4, 0
+ movs r5, 0x46
+_080FC482:
+ adds r2, r0, 0x1
+ movs r1, 0x45
+ muls r0, r5
+ adds r0, r3
+ adds r0, 0x45
+_080FC48C:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080FC48C
+ adds r0, r2, 0
+ cmp r0, 0x13
+ ble _080FC482
+ movs r1, 0
+ ldr r2, _080FC4C8 @ =0x00000579
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC4CC @ =0x0000057a
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC4D0 @ =0x0000057b
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC4C8: .4byte 0x00000579
+_080FC4CC: .4byte 0x0000057a
+_080FC4D0: .4byte 0x0000057b
+ thumb_func_end sub_80FC478
+
+ thumb_func_start sub_80FC4D4
+sub_80FC4D4: @ 80FC4D4
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ movs r4, 0
+_080FC4DC:
+ lsls r0, r1, 3
+ adds r2, r1, 0x1
+ subs r0, r1
+ movs r1, 0xD
+ lsls r0, 1
+ adds r0, r3
+ adds r0, 0xD
+_080FC4EA:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080FC4EA
+ adds r1, r2, 0
+ cmp r1, 0x27
+ ble _080FC4DC
+ movs r1, 0
+ ldr r2, _080FC524 @ =0x00000231
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC528 @ =0x00000232
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC52C @ =0x00000233
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC524: .4byte 0x00000231
+_080FC528: .4byte 0x00000232
+_080FC52C: .4byte 0x00000233
+ thumb_func_end sub_80FC4D4
+
+ thumb_func_start sub_80FC530
+sub_80FC530: @ 80FC530
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ movs r4, 0
+_080FC538:
+ lsls r0, r1, 8
+ adds r2, r1, 0x1
+ movs r1, 0xFF
+ adds r0, r3
+ adds r0, 0xFF
+_080FC542:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080FC542
+ adds r1, r2, 0
+ cmp r1, 0x1
+ ble _080FC538
+ movs r1, 0
+ ldr r2, _080FC57C @ =0x00000201
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC580 @ =0x00000202
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r2, _080FC584 @ =0x00000203
+ adds r0, r3, r2
+ ldrb r2, [r0]
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC57C: .4byte 0x00000201
+_080FC580: .4byte 0x00000202
+_080FC584: .4byte 0x00000203
+ thumb_func_end sub_80FC530
+
+ thumb_func_start sub_80FC588
+sub_80FC588: @ 80FC588
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r1, _080FC620 @ =0x0000057a
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _080FC628
+ ldr r0, _080FC624 @ =0x04000208
+ ldrh r1, [r0]
+ adds r7, r1, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0
+ movs r2, 0
+_080FC5A6:
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080FC5BA
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080FC5BA
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080FC5BA:
+ adds r2, 0xE
+ cmp r2, 0x45
+ ble _080FC5A6
+ cmp r3, 0x5
+ beq _080FC618
+ movs r2, 0
+ movs r0, 0xAF
+ lsls r0, 3
+ adds r3, r5, r0
+ movs r4, 0x46
+_080FC5CE:
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r2, r1
+ adds r1, r5, r1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x45
+ ble _080FC5CE
+ movs r1, 0xAF
+ lsls r1, 3
+ adds r4, r5, r1
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0x14
+ bl __umodsi3
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldr r0, _080FC620 @ =0x0000057a
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r1, 0
+ adds r0, r6, 0
+ adds r0, 0x45
+_080FC610:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, r6
+ bge _080FC610
+_080FC618:
+ ldr r0, _080FC624 @ =0x04000208
+ strh r7, [r0]
+ b _080FC632
+ .align 2, 0
+_080FC620: .4byte 0x0000057a
+_080FC624: .4byte 0x04000208
+_080FC628:
+ ldr r1, _080FC638 @ =0x0000057b
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+_080FC632:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC638: .4byte 0x0000057b
+ thumb_func_end sub_80FC588
+
+ thumb_func_start sub_80FC63C
+sub_80FC63C: @ 80FC63C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r1, _080FC6CC @ =0x00000232
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0x27
+ bhi _080FC6D4
+ ldr r1, _080FC6D0 @ =0x04000208
+ ldrh r0, [r1]
+ adds r7, r0, 0
+ movs r0, 0
+ strh r0, [r1]
+ movs r2, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080FC66C
+_080FC65E:
+ adds r2, 0x1
+ cmp r2, 0xD
+ bgt _080FC66C
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC65E
+_080FC66C:
+ cmp r2, 0xE
+ beq _080FC6C4
+ movs r2, 0
+ movs r0, 0x8C
+ lsls r0, 2
+ adds r3, r6, r0
+_080FC678:
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ adds r0, r6, r0
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xD
+ ble _080FC678
+ movs r1, 0x8C
+ lsls r1, 2
+ adds r4, r6, r1
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0x28
+ bl __umodsi3
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldr r0, _080FC6CC @ =0x00000232
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r1, 0
+ adds r0, r5, 0
+ adds r0, 0xD
+_080FC6BC:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, r5
+ bge _080FC6BC
+_080FC6C4:
+ ldr r0, _080FC6D0 @ =0x04000208
+ strh r7, [r0]
+ b _080FC6DE
+ .align 2, 0
+_080FC6CC: .4byte 0x00000232
+_080FC6D0: .4byte 0x04000208
+_080FC6D4:
+ ldr r1, _080FC6E4 @ =0x00000233
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+_080FC6DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC6E4: .4byte 0x00000233
+ thumb_func_end sub_80FC63C
+
+ thumb_func_start sub_80FC6E8
+sub_80FC6E8: @ 80FC6E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r3, r1, 0
+ ldr r1, _080FC730 @ =0x04000208
+ ldrh r0, [r1]
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xAF
+ lsls r1, 3
+ adds r0, r5, r1
+ ldr r7, _080FC734 @ =0x00000579
+ adds r4, r5, r7
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ cmp r1, r0
+ beq _080FC718
+ ldr r1, _080FC738 @ =0x0000057b
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC73C
+_080FC718:
+ movs r1, 0
+ adds r0, r3, 0
+ adds r0, 0x45
+_080FC71E:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, r3
+ bge _080FC71E
+ ldr r0, _080FC730 @ =0x04000208
+ mov r7, r8
+ strh r7, [r0]
+ movs r0, 0
+ b _080FC784
+ .align 2, 0
+_080FC730: .4byte 0x04000208
+_080FC734: .4byte 0x00000579
+_080FC738: .4byte 0x0000057b
+_080FC73C:
+ movs r2, 0
+ movs r6, 0x46
+_080FC740:
+ adds r1, r3, r2
+ ldrb r0, [r4]
+ adds r7, r0, 0
+ muls r7, r6
+ adds r0, r7, 0
+ adds r0, r2, r0
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x45
+ ble _080FC740
+ ldr r0, _080FC790 @ =0x00000579
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0x14
+ bl __umodsi3
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldr r7, _080FC794 @ =0x0000057a
+ adds r1, r5, r7
+ ldrb r0, [r1]
+ subs r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldr r0, _080FC798 @ =0x04000208
+ mov r1, r8
+ strh r1, [r0]
+ movs r0, 0x1
+_080FC784:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC790: .4byte 0x00000579
+_080FC794: .4byte 0x0000057a
+_080FC798: .4byte 0x04000208
+ thumb_func_end sub_80FC6E8
+
+ thumb_func_start sub_80FC79C
+sub_80FC79C: @ 80FC79C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r1, 0x8C
+ lsls r1, 2
+ adds r0, r5, r1
+ adds r1, 0x1
+ adds r4, r5, r1
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ cmp r1, r0
+ beq _080FC7C0
+ ldr r1, _080FC7C4 @ =0x00000233
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _080FC7C8
+_080FC7C0:
+ movs r0, 0
+ b _080FC814
+ .align 2, 0
+_080FC7C4: .4byte 0x00000233
+_080FC7C8:
+ ldr r1, _080FC81C @ =0x04000208
+ ldrh r0, [r1]
+ adds r7, r0, 0
+ strh r2, [r1]
+ movs r3, 0
+_080FC7D2:
+ adds r2, r6, r3
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r3, r0
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0xD
+ ble _080FC7D2
+ ldr r0, _080FC820 @ =0x00000231
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0x28
+ bl __umodsi3
+ ldrb r1, [r4]
+ strb r0, [r4]
+ ldr r0, _080FC824 @ =0x00000232
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldr r0, _080FC81C @ =0x04000208
+ strh r7, [r0]
+ movs r0, 0x1
+_080FC814:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC81C: .4byte 0x04000208
+_080FC820: .4byte 0x00000231
+_080FC824: .4byte 0x00000232
+ thumb_func_end sub_80FC79C
+
+ thumb_func_start sub_80FC828
+sub_80FC828: @ 80FC828
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _080FC83E
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_80FC888
+ b _080FC880
+_080FC83E:
+ movs r3, 0
+_080FC840:
+ ldrb r1, [r2, 0x1C]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r3, r0
+ adds r0, r2, r0
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0xD
+ ble _080FC840
+ ldrb r0, [r2, 0x1C]
+ adds r0, 0x1
+ ldrb r1, [r2, 0x1C]
+ strb r0, [r2, 0x1C]
+ ldrb r1, [r2, 0x1C]
+ movs r0, 0x1
+ ands r0, r1
+ ldrb r1, [r2, 0x1C]
+ strb r0, [r2, 0x1C]
+ ldrb r0, [r2, 0x1E]
+ cmp r0, 0x1
+ bhi _080FC87A
+ ldrb r0, [r2, 0x1E]
+ adds r0, 0x1
+ ldrb r1, [r2, 0x1E]
+ strb r0, [r2, 0x1E]
+ b _080FC880
+_080FC87A:
+ ldrb r0, [r2, 0x1C]
+ ldrb r1, [r2, 0x1D]
+ strb r0, [r2, 0x1D]
+_080FC880:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC828
+
+ thumb_func_start sub_80FC888
+sub_80FC888: @ 80FC888
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r3, 0x1E]
+ cmp r0, 0
+ bne _080FC898
+ movs r0, 0
+ b _080FC8D2
+_080FC898:
+ cmp r5, 0
+ beq _080FC8B6
+ movs r4, 0
+_080FC89E:
+ adds r2, r5, r4
+ ldrb r1, [r3, 0x1D]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r4, r0
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _080FC89E
+_080FC8B6:
+ ldrb r0, [r3, 0x1D]
+ adds r0, 0x1
+ ldrb r1, [r3, 0x1D]
+ strb r0, [r3, 0x1D]
+ ldrb r1, [r3, 0x1D]
+ movs r0, 0x1
+ ands r0, r1
+ ldrb r1, [r3, 0x1D]
+ strb r0, [r3, 0x1D]
+ ldrb r0, [r3, 0x1E]
+ subs r0, 0x1
+ ldrb r1, [r3, 0x1E]
+ strb r0, [r3, 0x1E]
+ movs r0, 0x1
+_080FC8D2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FC888
+
+ thumb_func_start sub_80FC8D8
+sub_80FC8D8: @ 80FC8D8
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ ldr r1, _080FC92C @ =0x00000202
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080FC930
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 2
+ adds r4, r3, r0
+_080FC8F0:
+ ldrb r0, [r4]
+ lsls r0, 8
+ adds r0, r2, r0
+ adds r0, r3, r0
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xFF
+ ble _080FC8F0
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldrb r2, [r1]
+ movs r0, 0x1
+ ands r0, r2
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldr r0, _080FC92C @ =0x00000202
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ b _080FC93A
+ .align 2, 0
+_080FC92C: .4byte 0x00000202
+_080FC930:
+ ldr r1, _080FC940 @ =0x00000203
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+_080FC93A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC940: .4byte 0x00000203
+ thumb_func_end sub_80FC8D8
+
+ thumb_func_start sub_80FC944
+sub_80FC944: @ 80FC944
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ movs r1, 0x80
+ lsls r1, 2
+ adds r0, r3, r1
+ adds r1, 0x1
+ adds r4, r3, r1
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ cmp r1, r0
+ beq _080FC966
+ ldr r1, _080FC96C @ =0x00000203
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC970
+_080FC966:
+ movs r0, 0
+ b _080FC9AA
+ .align 2, 0
+_080FC96C: .4byte 0x00000203
+_080FC970:
+ movs r2, 0
+_080FC972:
+ adds r0, r5, r2
+ ldrb r1, [r4]
+ lsls r1, 8
+ adds r1, r2, r1
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xFF
+ ble _080FC972
+ ldr r0, _080FC9B0 @ =0x00000201
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldrb r2, [r1]
+ movs r0, 0x1
+ ands r0, r2
+ ldrb r2, [r1]
+ strb r0, [r1]
+ ldr r0, _080FC9B4 @ =0x00000202
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0x1
+_080FC9AA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC9B0: .4byte 0x00000201
+_080FC9B4: .4byte 0x00000202
+ thumb_func_end sub_80FC944
+
+ thumb_func_start sub_80FC9B8
+sub_80FC9B8: @ 80FC9B8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ movs r5, 0
+ cmp r1, 0x1
+ beq _080FC9F6
+ cmp r1, 0x1
+ bgt _080FC9D2
+ cmp r1, 0
+ beq _080FC9DC
+ b _080FCA6A
+_080FC9D2:
+ cmp r0, 0x2
+ beq _080FCA16
+ cmp r0, 0x3
+ beq _080FCA36
+ b _080FCA6A
+_080FC9DC:
+ movs r4, 0
+_080FC9DE:
+ adds r0, r6, r4
+ adds r1, r4, 0x1
+ strb r1, [r0]
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, r1, 0
+ cmp r4, 0xC7
+ ble _080FC9DE
+ b _080FCA30
+_080FC9F6:
+ movs r4, 0
+ adds r2, r6, 0
+ adds r2, 0xC8
+_080FC9FC:
+ adds r0, r6, r4
+ adds r1, r4, 0x1
+ strb r1, [r0]
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, r1, 0
+ cmp r4, 0x63
+ ble _080FC9FC
+ strh r5, [r2]
+ b _080FCA6A
+_080FCA16:
+ movs r4, 0
+_080FCA18:
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, r4
+ strb r0, [r1]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x1
+ cmp r4, 0xC7
+ ble _080FCA18
+_080FCA30:
+ adds r0, r6, r4
+ strh r5, [r0]
+ b _080FCA6A
+_080FCA36:
+ movs r4, 0
+ ldr r3, _080FCA70 @ =gUnknown_3002018
+ ldrb r1, [r3]
+ ldrb r0, [r3]
+ adds r7, r0, 0x1
+ adds r2, r1, 0x1
+ movs r0, 0xFF
+ mov r12, r0
+_080FCA46:
+ adds r0, r6, r4
+ adds r1, r4, 0x1
+ strb r2, [r0]
+ adds r0, r4, r7
+ mov r4, r12
+ ands r0, r4
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r2, 0x1
+ adds r4, r1, 0
+ cmp r1, 0xC7
+ ble _080FCA46
+ adds r0, r6, r1
+ strh r5, [r0]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+_080FCA6A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCA70: .4byte gUnknown_3002018
+ thumb_func_end sub_80FC9B8
+
+ thumb_func_start sub_80FCA74
+sub_80FCA74: @ 80FCA74
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080FCA98
+ ldr r5, _080FCAA4 @ =gUnknown_843F104
+ adds r2, r1, 0
+_080FCA84:
+ 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 _080FCA84
+_080FCA98:
+ adds r1, r4, r3
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAA4: .4byte gUnknown_843F104
+ thumb_func_end sub_80FCA74
+
+ thumb_func_start sub_80FCAA8
+sub_80FCAA8: @ 80FCAA8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FCACC
+ ldr r5, _080FCAD8 @ =gUnknown_843F004
+ adds r2, r1, 0
+_080FCAB8:
+ 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 _080FCAB8
+_080FCACC:
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAD8: .4byte gUnknown_843F004
+ thumb_func_end sub_80FCAA8
+
+ thumb_func_start sub_80FCADC
+sub_80FCADC: @ 80FCADC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r0, _080FCB04 @ =gRfuLinkStatus
+ ldr r4, [r0]
+ ldrb r2, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bne _080FCB32
+ movs r3, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _080FCB0E
+ cmp r5, 0x1
+ bne _080FCB08
+ ldrb r0, [r4, 0xA]
+ b _080FCB4C
+ .align 2, 0
+_080FCB04: .4byte gRfuLinkStatus
+_080FCB08:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080FCB0E:
+ lsrs r2, 1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bhi _080FCB4A
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FCB0E
+ adds r0, r6, 0x1
+ cmp r5, r0
+ bne _080FCB08
+_080FCB28:
+ ldr r0, [r7]
+ adds r0, 0xA
+ adds r0, r3
+ ldrb r0, [r0]
+ b _080FCB4C
+_080FCB32:
+ movs r3, 0
+ movs r1, 0x1
+_080FCB36:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCB28
+ lsrs r2, 1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080FCB36
+_080FCB4A:
+ movs r0, 0
+_080FCB4C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FCADC
+
+ thumb_func_start sub_80FCB54
+sub_80FCB54: @ 80FCB54
+ 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, _080FCC30 @ =gSaveBlock2Ptr
+ mov r8, r0
+ adds r6, r7, 0x2
+ ldr r0, [r0]
+ adds r5, r0, 0
+ adds r5, 0xA
+_080FCB72:
+ adds r0, r6, r4
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _080FCB72
+ movs r4, 0
+ lsls r2, 7
+ mov r12, r2
+ adds r1, r7, 0x4
+_080FCB88:
+ adds r0, r1, r4
+ strb r3, [r0]
+ asrs r3, 8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080FCB88
+ 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
+ .ifdef FIRERED
+ movs r2, 0x10 @ VERSION_FIRE_RED << 2
+ .else
+ .ifdef LEAFGREEN
+ movs r2, 0x14 @ VERSION_LEAF_GREEN << 2
+ .endif
+ .endif
+ 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, _080FCC34 @ =0x00000844
+ 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, _080FCC38 @ =0x0000082c
+ 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
+ .align 2, 0
+_080FCC30: .4byte gSaveBlock2Ptr
+_080FCC34: .4byte 0x00000844
+_080FCC38: .4byte 0x0000082c
+ thumb_func_end sub_80FCB54
+
+ thumb_func_start sub_80FCC3C
+sub_80FCC3C: @ 80FCC3C
+ 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, _080FCC90 @ =gUnknown_3005E10
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _080FCC98
+ movs r0, 0x1
+ mov r9, r0
+ ldr r6, _080FCC94 @ =gRfuLinkStatus
+ ldr r0, [r6]
+ lsls r4, r5, 5
+ adds r0, r4
+ ldrh r0, [r0, 0x18]
+ bl sub_80FA44C
+ cmp r0, 0
+ beq _080FCC78
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x7]
+ asrs r0, r5
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _080FCCB0
+_080FCC78:
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0xD
+ bl memset
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ b _080FCCE4
+ .align 2, 0
+_080FCC90: .4byte gUnknown_3005E10
+_080FCC94: .4byte gRfuLinkStatus
+_080FCC98:
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _080FCCCC @ =gRfuLinkStatus
+ ldr r0, [r6]
+ lsls r4, r5, 5
+ adds r0, r4
+ ldrh r0, [r0, 0x18]
+ bl sub_80FA44C
+ cmp r0, 0
+ beq _080FCCD0
+ ldr r1, [r6]
+_080FCCB0:
+ 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 _080FCCE4
+ .align 2, 0
+_080FCCCC: .4byte gRfuLinkStatus
+_080FCCD0:
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0xD
+ bl memset
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+_080FCCE4:
+ mov r0, r9
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FCC3C
+
+ thumb_func_start sub_80FCCF4
+sub_80FCCF4: @ 80FCCF4
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ movs r7, 0
+ ldr r6, _080FCD2C @ =gRfuLinkStatus
+ ldr r0, [r6]
+ lsrs r4, r2, 19
+ adds r2, r0, r4
+ ldrh r1, [r2, 0x18]
+ ldr r0, _080FCD30 @ =0x00007f7d
+ cmp r1, r0
+ bne _080FCD34
+ 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 _080FCD48
+ .align 2, 0
+_080FCD2C: .4byte gRfuLinkStatus
+_080FCD30: .4byte 0x00007f7d
+_080FCD34:
+ adds r0, r3, 0
+ movs r1, 0
+ movs r2, 0xD
+ bl memset
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+_080FCD48:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FCCF4
+
+ thumb_func_start sub_80FCD50
+sub_80FCD50: @ 80FCD50
+ push {r4,lr}
+ adds r4, r1, 0
+ ldr r1, _080FCD6C @ =gUnknown_3005440
+ movs r2, 0xD
+ bl memcpy
+ ldr r1, _080FCD70 @ =gUnknown_3005E00
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl memcpy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCD6C: .4byte gUnknown_3005440
+_080FCD70: .4byte gUnknown_3005E00
+ thumb_func_end sub_80FCD50
+
+ thumb_func_start CreateWirelessStatusIndicatorSprite
+CreateWirelessStatusIndicatorSprite: @ 80FCD74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r3, 0
+ bne _080FCD8A
+ cmp r2, 0
+ bne _080FCD8A
+ movs r3, 0xE7
+ movs r2, 0x8
+_080FCD8A:
+ ldr r0, _080FCDCC @ =gRfuLinkStatus
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FCDE4
+ ldr r0, _080FCDD0 @ =gUnknown_843F284
+ adds r1, r3, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080FCDD4 @ =gSprites
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, _080FCDD8 @ =0x00001234
+ strh r0, [r4, 0x3C]
+ ldr r0, _080FCDDC @ =gUnknown_843F274
+ 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, _080FCDE0 @ =gUnknown_203ACE4
+ strb r5, [r0]
+ b _080FCE2A
+ .align 2, 0
+_080FCDCC: .4byte gRfuLinkStatus
+_080FCDD0: .4byte gUnknown_843F284
+_080FCDD4: .4byte gSprites
+_080FCDD8: .4byte 0x00001234
+_080FCDDC: .4byte gUnknown_843F274
+_080FCDE0: .4byte gUnknown_203ACE4
+_080FCDE4:
+ ldr r0, _080FCE30 @ =gUnknown_843F284
+ adds r1, r3, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _080FCE34 @ =gUnknown_203ACE4
+ strb r0, [r4]
+ ldr r5, _080FCE38 @ =gSprites
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080FCE3C @ =0x00001234
+ strh r1, [r0, 0x3C]
+ ldr r0, _080FCE40 @ =gUnknown_843F274
+ 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]
+_080FCE2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE30: .4byte gUnknown_843F284
+_080FCE34: .4byte gUnknown_203ACE4
+_080FCE38: .4byte gSprites
+_080FCE3C: .4byte 0x00001234
+_080FCE40: .4byte gUnknown_843F274
+ thumb_func_end CreateWirelessStatusIndicatorSprite
+
+ thumb_func_start DestroyWirelessStatusIndicatorSprite
+DestroyWirelessStatusIndicatorSprite: @ 80FCE44
+ push {r4,lr}
+ ldr r4, _080FCE90 @ =gSprites
+ ldr r3, _080FCE94 @ =gUnknown_203ACE4
+ 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, _080FCE98 @ =0x00001234
+ cmp r1, r0
+ bne _080FCE8A
+ 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, _080FCE9C @ =gMain
+ movs r0, 0x84
+ lsls r0, 3
+ adds r3, r0
+ ldr r0, _080FCEA0 @ =gDummyOamData
+ ldr r1, [r0]
+ ldr r2, [r0, 0x4]
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ ldr r1, _080FCEA4 @ =0x070003e8
+ movs r2, 0x4
+ bl CpuSet
+_080FCE8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE90: .4byte gSprites
+_080FCE94: .4byte gUnknown_203ACE4
+_080FCE98: .4byte 0x00001234
+_080FCE9C: .4byte gMain
+_080FCEA0: .4byte gDummyOamData
+_080FCEA4: .4byte 0x070003e8
+ thumb_func_end DestroyWirelessStatusIndicatorSprite
+
+ thumb_func_start LoadWirelessStatusIndicatorSpriteGfx
+LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8
+ push {r4,lr}
+ ldr r4, _080FCED4 @ =gUnknown_843F274
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _080FCED8 @ =0xffff0000
+ cmp r0, r1
+ bne _080FCEC0
+ adds r0, r4, 0
+ bl LoadCompressedSpriteSheet
+_080FCEC0:
+ ldr r0, _080FCEDC @ =gUnknown_843F27C
+ bl LoadSpritePalette
+ ldr r1, _080FCEE0 @ =gUnknown_203ACE4
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCED4: .4byte gUnknown_843F274
+_080FCED8: .4byte 0xffff0000
+_080FCEDC: .4byte gUnknown_843F27C
+_080FCEE0: .4byte gUnknown_203ACE4
+ thumb_func_end LoadWirelessStatusIndicatorSpriteGfx
+
+ thumb_func_start sub_80FCEE4
+sub_80FCEE4: @ 80FCEE4
+ push {r4,lr}
+ ldr r1, _080FCF04 @ =gRfuLinkStatus
+ ldr r0, [r1]
+ ldrb r2, [r0, 0x2]
+ movs r3, 0
+ movs r4, 0x1
+_080FCEF0:
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _080FCF08
+ ldr r0, [r1]
+ adds r0, 0xA
+ adds r0, r3
+ ldrb r0, [r0]
+ b _080FCF16
+ .align 2, 0
+_080FCF04: .4byte gRfuLinkStatus
+_080FCF08:
+ lsrs r2, 1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080FCEF0
+ movs r0, 0
+_080FCF16:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FCEE4
+
+ thumb_func_start sub_80FCF1C
+sub_80FCF1C: @ 80FCF1C
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, r1
+ beq _080FCF30
+ movs r0, 0
+ strh r1, [r2, 0x32]
+ strh r0, [r2, 0x34]
+ strh r0, [r2, 0x36]
+_080FCF30:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FCF1C
+
+ thumb_func_start sub_80FCF34
+sub_80FCF34: @ 80FCF34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _080FCF78 @ =gUnknown_203ACE4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080FCF44
+ b _080FD106
+_080FCF44:
+ ldr r2, _080FCF7C @ =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, _080FCF80 @ =0x00001234
+ cmp r1, r0
+ beq _080FCF5C
+ b _080FD106
+_080FCF5C:
+ adds r6, r2, 0
+ movs r5, 0xFF
+ movs r4, 0
+ ldr r0, _080FCF84 @ =gRfuLinkStatus
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FCFB6
+ adds r7, r6, 0
+ adds r7, 0x28
+ movs r1, 0x29
+ adds r1, r6
+ mov r8, r1
+ b _080FCFA6
+ .align 2, 0
+_080FCF78: .4byte gUnknown_203ACE4
+_080FCF7C: .4byte gSprites
+_080FCF80: .4byte 0x00001234
+_080FCF84: .4byte gRfuLinkStatus
+_080FCF88:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80FCADC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcc _080FCFA6
+ adds r0, r4, 0
+ bl sub_80FCADC
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080FCFA6:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r4, r0
+ blt _080FCF88
+ b _080FCFC8
+_080FCFB6:
+ bl sub_80FCEE4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r6, 0
+ adds r7, 0x28
+ movs r2, 0x29
+ adds r2, r6
+ mov r8, r2
+_080FCFC8:
+ bl sub_80FC1B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FCFD8
+ movs r0, 0x4
+ b _080FD006
+_080FCFD8:
+ cmp r5, 0x18
+ bhi _080FCFE0
+ movs r0, 0x3
+ b _080FD006
+_080FCFE0:
+ adds r0, r5, 0
+ subs r0, 0x19
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x65
+ bhi _080FCFF0
+ movs r0, 0x2
+ b _080FD006
+_080FCFF0:
+ adds r0, r5, 0
+ subs r0, 0x7F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x65
+ bhi _080FD000
+ movs r0, 0x1
+ b _080FD006
+_080FD000:
+ cmp r5, 0xE4
+ bls _080FD008
+ movs r0, 0
+_080FD006:
+ strh r0, [r6, 0x2E]
+_080FD008:
+ movs r3, 0x2E
+ ldrsh r1, [r6, r3]
+ movs r2, 0x30
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ beq _080FD01E
+ adds r0, r6, 0
+ bl sub_80FCF1C
+ ldrh r0, [r6, 0x2E]
+ strh r0, [r6, 0x30]
+_080FD01E:
+ 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 _080FD06C
+ 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 _080FD072
+ strh r3, [r6, 0x36]
+ b _080FD072
+_080FD06C:
+ ldrh r0, [r6, 0x34]
+ adds r0, 0x1
+ strh r0, [r6, 0x34]
+_080FD072:
+ ldr r4, _080FD110 @ =gMain
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r4, r1
+ ldr r1, _080FD114 @ =gUnknown_843F204
+ 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, _080FD118 @ =0x00000422
+ adds r5, r4, r1
+ ldr r3, _080FD11C @ =0x000001ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldrh r3, [r5]
+ ldr r1, _080FD120 @ =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, _080FD124 @ =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, _080FD128 @ =0x00000424
+ adds r4, r1
+ ldr r3, _080FD12C @ =0x000003ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldrh r3, [r4]
+ ldr r1, _080FD130 @ =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r4]
+ ldr r1, _080FD134 @ =0x070003e8
+ movs r2, 0x4
+ bl CpuSet
+ bl sub_80FB9F4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FD106
+ bl DestroyWirelessStatusIndicatorSprite
+_080FD106:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD110: .4byte gMain
+_080FD114: .4byte gUnknown_843F204
+_080FD118: .4byte 0x00000422
+_080FD11C: .4byte 0x000001ff
+_080FD120: .4byte 0xfffffe00
+_080FD124: .4byte 0x00000425
+_080FD128: .4byte 0x00000424
+_080FD12C: .4byte 0x000003ff
+_080FD130: .4byte 0xfffffc00
+_080FD134: .4byte 0x070003e8
+ thumb_func_end sub_80FCF34
+
+ thumb_func_start sub_80FD138
+sub_80FD138: @ 80FD138
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ str r1, [r4]
+ movs r3, 0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _080FD15C
+ adds r5, r4, 0x4
+_080FD148:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ bgt _080FD15C
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080FD148
+_080FD15C:
+ adds r0, r4, 0x4
+ adds r0, r3
+ movs r1, 0xFF
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD138
+
+ thumb_func_start sub_80FD16C
+sub_80FD16C: @ 80FD16C
+ push {lr}
+ movs r2, 0
+ movs r1, 0x7
+_080FD172:
+ strb r2, [r0]
+ adds r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080FD172
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD16C
+
+ thumb_func_start sub_80FD180
+sub_80FD180: @ 80FD180
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0
+_080FD186:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0
+ beq _080FD192
+ movs r0, 0
+ b _080FD19A
+_080FD192:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080FD186
+ movs r0, 0x1
+_080FD19A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD180
+
+ thumb_func_start sub_80FD1A0
+sub_80FD1A0: @ 80FD1A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r0, _080FD1C4 @ =gWirelessCommType
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FD1B6
+ b _080FD318
+_080FD1B6:
+ movs r0, 0xF0
+ bl AllocZeroed
+ str r0, [sp, 0x14]
+ movs r4, 0
+ b _080FD22C
+ .align 2, 0
+_080FD1C4: .4byte gWirelessCommType
+_080FD1C8:
+ 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 r2, _080FD24C @ =gLinkPlayers + 8
+ mov r10, r2
+ ldr r6, _080FD250 @ =0x00003ba8
+ movs r4, 0
+ mov r0, r10
+ subs r0, 0x4
+ ldr r7, [sp, 0x1C]
+ adds r3, r7, r0
+_080FD1F4:
+ ldrh r1, [r3]
+ ldr r0, _080FD254 @ =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r7, _080FD250 @ =0x00003ba8
+ adds r0, r2, r7
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _080FD220
+ 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 _080FD220
+ mov r0, sp
+ add r0, r8
+ str r5, [r0]
+_080FD220:
+ adds r6, 0xC
+ adds r4, 0xC
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _080FD1F4
+ mov r4, r9
+_080FD22C:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080FD1C8
+ movs r0, 0
+ mov r8, r0
+ movs r4, 0
+ ldr r1, _080FD254 @ =gSaveBlock1Ptr
+ mov r9, r1
+ mov r7, sp
+ movs r5, 0
+ ldr r6, [sp, 0x14]
+ b _080FD2A4
+ .align 2, 0
+_080FD24C: .4byte gLinkPlayers + 8
+_080FD250: .4byte 0x00003ba8
+_080FD254: .4byte gSaveBlock1Ptr
+_080FD258:
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _080FD29E
+ ldr r2, _080FD328 @ =gLinkPlayers
+ adds r0, r5, r2
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0x1
+ beq _080FD29E
+ adds r0, r2, 0x4
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ adds r2, 0x8
+ adds r2, r5, r2
+ adds r0, r6, 0
+ bl sub_80FD138
+ ldr r1, [r7]
+ cmp r1, 0
+ blt _080FD298
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ mov r2, r9
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, _080FD32C @ =0x00003bac
+ adds r0, r1
+ bl sub_80FD16C
+_080FD298:
+ adds r6, 0xC
+ movs r2, 0x1
+ add r8, r2
+_080FD29E:
+ adds r7, 0x4
+ adds r5, 0x1C
+ adds r4, 0x1
+_080FD2A4:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080FD258
+ movs r4, 0
+ ldr r7, _080FD330 @ =gSaveBlock1Ptr
+ mov r9, r7
+ ldr r6, _080FD334 @ =0x00003ba8
+ movs r7, 0
+ mov r1, r8
+ lsls r0, r1, 1
+ add r0, r8
+ lsls r0, 2
+ ldr r2, [sp, 0x14]
+ adds r5, r0, r2
+_080FD2C6:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r6
+ adds r0, 0x4
+ bl sub_80FD180
+ cmp r0, 0
+ bne _080FD2F8
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r1, _080FD334 @ =0x00003ba8
+ adds r0, r2, r1
+ adds r0, r7
+ ldr r1, [r0]
+ adds r2, r6
+ adds r2, 0x4
+ adds r0, r5, 0
+ bl sub_80FD138
+ adds r5, 0xC
+ movs r2, 0x1
+ add r8, r2
+ mov r0, r8
+ cmp r0, 0x13
+ bgt _080FD302
+_080FD2F8:
+ adds r6, 0xC
+ adds r7, 0xC
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _080FD2C6
+_080FD302:
+ ldr r0, _080FD330 @ =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, _080FD334 @ =0x00003ba8
+ adds r0, r1
+ ldr r1, [sp, 0x14]
+ movs r2, 0xF0
+ bl memcpy
+ ldr r0, [sp, 0x14]
+ bl Free
+_080FD318:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD328: .4byte gLinkPlayers
+_080FD32C: .4byte 0x00003bac
+_080FD330: .4byte gSaveBlock1Ptr
+_080FD334: .4byte 0x00003ba8
+ thumb_func_end sub_80FD1A0
+
+ thumb_func_start sub_80FD338
+sub_80FD338: @ 80FD338
+ 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, _080FD374 @ =gSaveBlock1Ptr
+ ldr r4, _080FD378 @ =0x00003ba8
+ movs r5, 0
+_080FD350:
+ ldr r0, [r6]
+ adds r0, r4
+ adds r0, 0x4
+ mov r1, r9
+ movs r2, 0x7
+ bl StringCompareN
+ cmp r0, 0
+ bne _080FD37C
+ ldr r0, [r6]
+ ldr r1, _080FD378 @ =0x00003ba8
+ adds r0, r1
+ adds r0, r5
+ ldr r0, [r0]
+ cmp r0, r8
+ bne _080FD37C
+ movs r0, 0x1
+ b _080FD396
+ .align 2, 0
+_080FD374: .4byte gSaveBlock1Ptr
+_080FD378: .4byte 0x00003ba8
+_080FD37C:
+ ldr r0, [r6]
+ adds r0, r4
+ adds r0, 0x4
+ bl sub_80FD180
+ cmp r0, 0
+ bne _080FD394
+ adds r4, 0xC
+ adds r5, 0xC
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _080FD350
+_080FD394:
+ movs r0, 0
+_080FD396:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD338
+
+ .align 2, 0 @ Don't pad with nop
diff --git a/data/link_rfu_2.s b/data/link_rfu_2.s
index eae60cce1..ff63f205c 100644
--- a/data/link_rfu_2.s
+++ b/data/link_rfu_2.s
@@ -150,128 +150,3 @@ gUnknown_843EE64:: @ 843EE64
.asciz "PARENT"
.align 2
.asciz "SEARCH"
-
- .align 2
-gUnknown_843EEC0::
- .incbin "graphics/interface/wireless_link_icon.gbapal"
-
-gUnknown_843EEE0::
- .incbin "graphics/interface/wireless_link_icon.4bpp.lz"
-
-gUnknown_843F004:: @ 843F004
- .byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37
- .byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
- .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47
- .byte 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
- .byte 0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba
- .byte 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8
- .byte 0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
- .byte 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1
- .byte 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9
- .byte 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1
- .byte 0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6
- .byte 0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb
- .byte 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3
- .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
- .byte 0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32
- .byte 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02
- .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a
- .byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
- .byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a
- .byte 0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f
- .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0
- .byte 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57
- .byte 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f
- .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67
- .byte 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f
- .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
- .byte 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac
- .byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23
- .byte 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b
- .byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
- .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
-
-gUnknown_843F104:: @ 843F104
- .byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
- .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
- .byte 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c
- .byte 0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3
- .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
- .byte 0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c
- .byte 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07
- .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
- .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
- .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
- .byte 0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
- .byte 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf
- .byte 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7
- .byte 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf
- .byte 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7
- .byte 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7
- .byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2
- .byte 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa
- .byte 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03
- .byte 0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
- .byte 0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36
- .byte 0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5
- .byte 0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20
- .byte 0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45
- .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d
- .byte 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55
- .byte 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63
- .byte 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b
- .byte 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73
- .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20
- .byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
-
-gUnknown_843F204:: @ 843F204
- .4byte 0x40000000, 0x00000000
-
-gAnimCmd_843F20C::
- obj_image_anim_frame 0x0004, 5
- obj_image_anim_frame 0x0008, 5
- obj_image_anim_frame 0x000c, 5
- obj_image_anim_frame 0x0010, 10
- obj_image_anim_frame 0x000c, 5
- obj_image_anim_frame 0x0008, 5
- obj_image_anim_jump 0
-
-gAnimCmd_843F228::
- obj_image_anim_frame 0x0004, 5
- obj_image_anim_frame 0x0008, 5
- obj_image_anim_frame 0x000c, 10
- obj_image_anim_frame 0x0008, 5
- obj_image_anim_jump 0
-
-gAnimCmd_843F23C::
- obj_image_anim_frame 0x0004, 5
- obj_image_anim_frame 0x0008, 5
- obj_image_anim_jump 0
-
-gAnimCmd_843F248::
- obj_image_anim_frame 0x0004, 10
- obj_image_anim_frame 0x0014, 10
- obj_image_anim_jump 0
-
-gAnimCmd_843F254::
- obj_image_anim_frame 0x0018, 10
- obj_image_anim_frame 0x0004, 10
- obj_image_anim_jump 0
-
-gSpriteAnimTable_843F260::
- .4byte gAnimCmd_843F20C
- .4byte gAnimCmd_843F228
- .4byte gAnimCmd_843F23C
- .4byte gAnimCmd_843F248
- .4byte gAnimCmd_843F254
-
-gUnknown_843F274:: @ 843F274
- obj_tiles gUnknown_843EEE0, 0x0380, 54321
-
-gUnknown_843F27C:: @ 843F27C
- obj_pal gUnknown_843EEC0, 54322
-
-gUnknown_843F284:: @ 843F284
- spr_template 54321, 54322, gUnknown_843F204, gSpriteAnimTable_843F260, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/link_rfu_4.s b/data/link_rfu_4.s
new file mode 100644
index 000000000..da3b341dc
--- /dev/null
+++ b/data/link_rfu_4.s
@@ -0,0 +1,128 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+ .section .rodata
+ .align 2, 0
+
+gUnknown_843EEC0::
+ .incbin "graphics/interface/wireless_link_icon.gbapal"
+
+gUnknown_843EEE0::
+ .incbin "graphics/interface/wireless_link_icon.4bpp.lz"
+
+gUnknown_843F004:: @ 843F004
+ .byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37
+ .byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
+ .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47
+ .byte 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
+ .byte 0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba
+ .byte 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8
+ .byte 0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
+ .byte 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1
+ .byte 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9
+ .byte 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1
+ .byte 0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6
+ .byte 0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb
+ .byte 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3
+ .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
+ .byte 0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32
+ .byte 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02
+ .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a
+ .byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
+ .byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a
+ .byte 0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f
+ .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0
+ .byte 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57
+ .byte 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f
+ .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67
+ .byte 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f
+ .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
+ .byte 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac
+ .byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23
+ .byte 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b
+ .byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
+ .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
+
+gUnknown_843F104:: @ 843F104
+ .byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
+ .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
+ .byte 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c
+ .byte 0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3
+ .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
+ .byte 0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c
+ .byte 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07
+ .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
+ .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
+ .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
+ .byte 0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
+ .byte 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf
+ .byte 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7
+ .byte 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf
+ .byte 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7
+ .byte 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7
+ .byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2
+ .byte 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa
+ .byte 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03
+ .byte 0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
+ .byte 0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36
+ .byte 0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5
+ .byte 0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20
+ .byte 0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45
+ .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d
+ .byte 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55
+ .byte 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63
+ .byte 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b
+ .byte 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73
+ .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20
+ .byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20
+ .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
+
+gUnknown_843F204:: @ 843F204
+ .4byte 0x40000000, 0x00000000
+
+gAnimCmd_843F20C::
+ obj_image_anim_frame 0x0004, 5
+ obj_image_anim_frame 0x0008, 5
+ obj_image_anim_frame 0x000c, 5
+ obj_image_anim_frame 0x0010, 10
+ obj_image_anim_frame 0x000c, 5
+ obj_image_anim_frame 0x0008, 5
+ obj_image_anim_jump 0
+
+gAnimCmd_843F228::
+ obj_image_anim_frame 0x0004, 5
+ obj_image_anim_frame 0x0008, 5
+ obj_image_anim_frame 0x000c, 10
+ obj_image_anim_frame 0x0008, 5
+ obj_image_anim_jump 0
+
+gAnimCmd_843F23C::
+ obj_image_anim_frame 0x0004, 5
+ obj_image_anim_frame 0x0008, 5
+ obj_image_anim_jump 0
+
+gAnimCmd_843F248::
+ obj_image_anim_frame 0x0004, 10
+ obj_image_anim_frame 0x0014, 10
+ obj_image_anim_jump 0
+
+gAnimCmd_843F254::
+ obj_image_anim_frame 0x0018, 10
+ obj_image_anim_frame 0x0004, 10
+ obj_image_anim_jump 0
+
+gSpriteAnimTable_843F260::
+ .4byte gAnimCmd_843F20C
+ .4byte gAnimCmd_843F228
+ .4byte gAnimCmd_843F23C
+ .4byte gAnimCmd_843F248
+ .4byte gAnimCmd_843F254
+
+gUnknown_843F274:: @ 843F274
+ obj_tiles gUnknown_843EEE0, 0x0380, 54321
+
+gUnknown_843F27C:: @ 843F27C
+ obj_pal gUnknown_843EEC0, 54322
+
+gUnknown_843F284:: @ 843F284
+ spr_template 54321, 54322, gUnknown_843F204, gSpriteAnimTable_843F260, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/include/global.h b/include/global.h
index d8ea62d5c..6386071c4 100644
--- a/include/global.h
+++ b/include/global.h
@@ -712,6 +712,12 @@ struct TrainerRematchState
u8 rematches[100];
};
+struct TrainerNameRecord
+{
+ u32 trainerId;
+ u8 trainerName[PLAYER_NAME_LENGTH];
+};
+
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@@ -766,7 +772,8 @@ struct SaveBlock1
/*0x3A18*/ u8 seen2[DEX_FLAGS_NO];
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
/*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS];
- /*0x3A94*/ u8 filler3A94[0x204];
+ /*0x3A94*/ u8 filler3A94[0x114];
+ /*0x3BA8*/ struct TrainerNameRecord trainerNameRecords[20];
/*0x3C98*/ struct DaycareMon route5DayCareMon;
/*0x3D24*/ u8 filler3D24[0x10];
/*0x3D34*/ u32 unkArrayIdx;
diff --git a/ld_script.txt b/ld_script.txt
index 05ed8277a..d164b3f56 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -226,6 +226,7 @@ SECTIONS {
src/save_menu_util.o(.text);
src/map_preview_screen.o(.text);
asm/link_rfu_2.o(.text);
+ asm/link_rfu_4.o(.text);
src/link_rfu.o(.text);
asm/easy_chat_2.o(.text);
src/pokedex_screen.o(.text);
@@ -510,6 +511,7 @@ SECTIONS {
data/box_party_pokemon_dropdown.o(.rodata);
src/map_preview_screen.o(.rodata);
data/link_rfu_2.o(.rodata);
+ data/link_rfu_4.o(.rodata);
data/link_rfu.o(.rodata);
src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata);
diff --git a/sym_common.txt b/sym_common.txt
index c4cd329d0..848c19613 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -80,7 +80,11 @@ gUnknown_3005440: @ 3005440
@ This name is necessary to match assert statements in link_rfu_2
Rfu: @ 3005450
- .space 0x9C0
+ .space 0x9AC
+
+ .align 4
+gUnknown_3005E00: @ 3005E00
+ .space 0x10
.align 4
.include "link_rfu.o"