.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80FA0F8 sub_80FA0F8: @ 80FA0F8 push {lr} ldr r1, _080FA110 @ =Rfu adds r1, 0x5A strb r0, [r1] movs r0, 0xA1 lsls r0, 8 bl sub_80F9D04 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080FA110: .4byte Rfu thumb_func_end sub_80FA0F8 thumb_func_start sub_80FA114 sub_80FA114: @ 80FA114 push {lr} bl rfu_clearAllSlot bl sub_80FD52C ldr r1, _080FA138 @ =gReceivedRemoteLinkPlayers movs r0, 0 strb r0, [r1] ldr r2, _080FA13C @ =Rfu adds r3, r2, 0 adds r3, 0xEF movs r1, 0 movs r0, 0x1 strb r0, [r3] str r1, [r2] pop {r0} bx r0 .align 2, 0 _080FA138: .4byte gReceivedRemoteLinkPlayers _080FA13C: .4byte Rfu thumb_func_end sub_80FA114 thumb_func_start sub_80FA140 sub_80FA140: @ 80FA140 push {lr} ldr r0, _080FA15C @ =gRfuLinkStatus ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] orrs r0, r1 bl rfu_REQ_disconnect bl rfu_waitREQComplete bl sub_80FA114 pop {r0} bx r0 .align 2, 0 _080FA15C: .4byte gRfuLinkStatus thumb_func_end sub_80FA140 thumb_func_start sub_80FA160 sub_80FA160: @ 80FA160 push {r4,lr} ldr r4, _080FA178 @ =Rfu ldrb r0, [r4, 0xC] cmp r0, 0 bne _080FA180 bl sub_80FEB14 ldr r0, _080FA17C @ =0x0000099c adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] b _080FA184 .align 2, 0 _080FA178: .4byte Rfu _080FA17C: .4byte 0x0000099c _080FA180: ldr r0, _080FA18C @ =sub_80FA140 str r0, [r4] _080FA184: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA18C: .4byte sub_80FA140 thumb_func_end sub_80FA160 thumb_func_start sub_80FA190 sub_80FA190: @ 80FA190 push {lr} bl sub_80FEB14 ldr r2, _080FA1B4 @ =Rfu ldr r0, _080FA1B8 @ =0x0000099c adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080FA1BC @ =gRfuLinkStatus ldr r1, [r0] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] orrs r0, r1 ldr r1, _080FA1C0 @ =0x0000099b adds r2, r1 strb r0, [r2] pop {r0} bx r0 .align 2, 0 _080FA1B4: .4byte Rfu _080FA1B8: .4byte 0x0000099c _080FA1BC: .4byte gRfuLinkStatus _080FA1C0: .4byte 0x0000099b thumb_func_end sub_80FA190 thumb_func_start sub_80FA1C4 sub_80FA1C4: @ 80FA1C4 push {r4,r5,lr} ldr r0, _080FA208 @ =Rfu ldrb r5, [r0, 0xD] movs r2, 0 movs r1, 0 adds r3, r0, 0 adds r4, r3, 0 adds r4, 0xE4 _080FA1D4: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080FA1DE adds r2, 0x1 _080FA1DE: adds r1, 0x1 cmp r1, 0x4 ble _080FA1D4 cmp r2, r5 bne _080FA218 ldr r2, _080FA20C @ =gBattleTypeFlags ldr r0, [r2] ldr r1, _080FA210 @ =0x0000ffdf ands r0, r1 str r0, [r2] ldrb r0, [r3, 0xC] cmp r0, 0 bne _080FA214 adds r0, r3, 0 adds r0, 0xEE ldrb r1, [r0] movs r1, 0x3 strb r1, [r0] bl sub_80FA160 b _080FA218 .align 2, 0 _080FA208: .4byte Rfu _080FA20C: .4byte gBattleTypeFlags _080FA210: .4byte 0x0000ffdf _080FA214: ldr r0, _080FA220 @ =sub_80FA160 str r0, [r3] _080FA218: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA220: .4byte sub_80FA160 thumb_func_end sub_80FA1C4 thumb_func_start sub_80FA224 sub_80FA224: @ 80FA224 push {r4,lr} ldr r0, _080FA250 @ =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080FA248 ldr r4, _080FA254 @ =Rfu movs r1, 0x9A lsls r1, 4 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080FA248 movs r0, 0xBE lsls r0, 7 bl sub_80F9D04 ldr r0, _080FA258 @ =sub_80FA1C4 str r0, [r4] _080FA248: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA250: .4byte gSendCmd _080FA254: .4byte Rfu _080FA258: .4byte sub_80FA1C4 thumb_func_end sub_80FA224 thumb_func_start sub_80FA25C sub_80FA25C: @ 80FA25C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080FA280 @ =Rfu ldr r0, [r2] cmp r0, 0 bne _080FA27C ldr r1, _080FA284 @ =0x00000991 adds r0, r2, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _080FA288 @ =sub_80FA224 str r0, [r2] adds r0, r3, 0 bl DestroyTask _080FA27C: pop {r0} bx r0 .align 2, 0 _080FA280: .4byte Rfu _080FA284: .4byte 0x00000991 _080FA288: .4byte sub_80FA224 thumb_func_end sub_80FA25C thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc task_add_05_task_del_08FA224_when_no_RfuFunc: @ 80FA28C push {r4,lr} ldr r4, _080FA2AC @ =sub_80FA25C adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080FA2A4 adds r0, r4, 0 movs r1, 0x5 bl CreateTask _080FA2A4: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA2AC: .4byte sub_80FA25C thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc thumb_func_start sub_80FA2B0 sub_80FA2B0: @ 80FA2B0 push {r4,r5,lr} bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _080FA2DE ldr r1, _080FA348 @ =Rfu ldr r2, _080FA34C @ =0x0000069e adds r0, r1, r2 ldrb r0, [r0] adds r4, r0, 0 cmp r4, 0 bne _080FA2DE adds r5, r1, 0 adds r5, 0xFE ldrh r0, [r5] cmp r0, 0x3C bls _080FA2DE movs r0, 0xCC lsls r0, 7 bl sub_80F9D04 strh r4, [r5] _080FA2DE: bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 cmp r1, r2 bcs _080FA30A ldr r0, _080FA348 @ =Rfu adds r3, r0, 0 adds r3, 0xE9 ldrb r0, [r3] cmp r0, 0 beq _080FA30A _080FA2F8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcs _080FA30A adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080FA2F8 _080FA30A: ldr r4, _080FA348 @ =Rfu cmp r1, r2 bne _080FA336 movs r1, 0 adds r3, r4, 0 adds r3, 0xE9 movs r2, 0 _080FA318: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080FA318 movs r1, 0x80 lsls r1, 1 adds r0, r4, r1 ldrh r1, [r0] adds r1, 0x1 movs r2, 0 strh r1, [r0] str r2, [r4] _080FA336: adds r1, r4, 0 adds r1, 0xFE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA348: .4byte Rfu _080FA34C: .4byte 0x0000069e thumb_func_end sub_80FA2B0 thumb_func_start sub_80FA350 sub_80FA350: @ 80FA350 push {r4,lr} ldr r4, _080FA378 @ =Rfu ldr r1, _080FA37C @ =0x0000069e adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080FA372 ldr r0, _080FA380 @ =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080FA372 movs r0, 0xCC lsls r0, 7 bl sub_80F9D04 ldr r0, _080FA384 @ =sub_80FA2B0 str r0, [r4] _080FA372: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA378: .4byte Rfu _080FA37C: .4byte 0x0000069e _080FA380: .4byte gSendCmd _080FA384: .4byte sub_80FA2B0 thumb_func_end sub_80FA350 thumb_func_start sub_80FA388 sub_80FA388: @ 80FA388 push {r4,lr} bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _080FA3C4 ldr r4, _080FA3B4 @ =Rfu ldr r1, _080FA3B8 @ =0x0000069e adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080FA416 ldr r0, _080FA3BC @ =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080FA416 movs r0, 0xCC lsls r0, 7 bl sub_80F9D04 ldr r0, _080FA3C0 @ =sub_80FA2B0 b _080FA414 .align 2, 0 _080FA3B4: .4byte Rfu _080FA3B8: .4byte 0x0000069e _080FA3BC: .4byte gSendCmd _080FA3C0: .4byte sub_80FA2B0 _080FA3C4: bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 cmp r1, r2 bcs _080FA3F2 ldr r3, _080FA41C @ =Rfu adds r0, r3, 0 adds r0, 0xEA ldrb r0, [r0] cmp r0, 0 beq _080FA3F2 adds r3, 0xE9 _080FA3E0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcs _080FA3F2 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080FA3E0 _080FA3F2: cmp r1, r2 bne _080FA416 ldr r4, _080FA41C @ =Rfu ldr r1, _080FA420 @ =0x0000069e adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080FA416 ldr r0, _080FA424 @ =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080FA416 movs r0, 0xCC lsls r0, 7 bl sub_80F9D04 ldr r0, _080FA428 @ =sub_80FA350 _080FA414: str r0, [r4] _080FA416: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA41C: .4byte Rfu _080FA420: .4byte 0x0000069e _080FA424: .4byte gSendCmd _080FA428: .4byte sub_80FA350 thumb_func_end sub_80FA388 thumb_func_start sub_80FA42C sub_80FA42C: @ 80FA42C push {lr} ldr r1, _080FA444 @ =Rfu ldr r2, [r1] cmp r2, 0 bne _080FA440 ldr r0, _080FA448 @ =sub_80FA388 str r0, [r1] adds r0, r1, 0 adds r0, 0xFE strh r2, [r0] _080FA440: pop {r0} bx r0 .align 2, 0 _080FA444: .4byte Rfu _080FA448: .4byte sub_80FA388 thumb_func_end sub_80FA42C thumb_func_start sub_80FA44C sub_80FA44C: @ 80FA44C push {r4,lr} adds r3, r0, 0 ldr r1, _080FA468 @ =gUnknown_843EC8C ldrh r0, [r1] cmp r0, r3 beq _080FA47A ldr r4, _080FA46C @ =0x0000ffff adds r2, r1, 0 _080FA45C: ldrh r0, [r2] cmp r0, r4 bne _080FA470 movs r0, 0 b _080FA47C .align 2, 0 _080FA468: .4byte gUnknown_843EC8C _080FA46C: .4byte 0x0000ffff _080FA470: adds r1, 0x2 adds r2, 0x2 ldrh r0, [r1] cmp r0, r3 bne _080FA45C _080FA47A: movs r0, 0x1 _080FA47C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FA44C thumb_func_start sub_80FA484 sub_80FA484: @ 80FA484 push {lr} cmp r0, 0 beq _080FA498 movs r1, 0x96 lsls r1, 2 movs r0, 0x1 bl sub_80FEA34 movs r0, 0 b _080FA4A4 _080FA498: movs r0, 0 movs r1, 0 bl sub_80FEA34 lsls r0, 24 lsrs r0, 24 _080FA4A4: pop {r1} bx r1 thumb_func_end sub_80FA484 thumb_func_start sub_80FA4A8 sub_80FA4A8: @ 80FA4A8 push {lr} ldr r0, _080FA4C0 @ =Rfu ldr r1, _080FA4C4 @ =0x00000991 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0 bl sub_80FD760 pop {r0} bx r0 .align 2, 0 _080FA4C0: .4byte Rfu _080FA4C4: .4byte 0x00000991 thumb_func_end sub_80FA4A8 thumb_func_start rfu_get_multiplayer_id rfu_get_multiplayer_id: @ 80FA4C8 push {lr} ldr r1, _080FA4DC @ =Rfu ldrb r0, [r1, 0xC] cmp r0, 0x1 beq _080FA4E4 ldr r2, _080FA4E0 @ =0x00000986 adds r0, r1, r2 ldrb r0, [r0] b _080FA4E6 .align 2, 0 _080FA4DC: .4byte Rfu _080FA4E0: .4byte 0x00000986 _080FA4E4: movs r0, 0 _080FA4E6: pop {r1} bx r1 thumb_func_end rfu_get_multiplayer_id thumb_func_start GetRfuPlayerCount GetRfuPlayerCount: @ 80FA4EC ldr r0, _080FA4F4 @ =Rfu ldrb r0, [r0, 0xD] bx lr .align 2, 0 _080FA4F4: .4byte Rfu thumb_func_end GetRfuPlayerCount thumb_func_start IsLinkRfuTaskFinished IsLinkRfuTaskFinished: @ 80FA4F8 push {lr} movs r1, 0 ldr r0, _080FA50C @ =Rfu ldr r0, [r0] cmp r0, 0 bne _080FA506 movs r1, 0x1 _080FA506: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080FA50C: .4byte Rfu thumb_func_end IsLinkRfuTaskFinished thumb_func_start sub_80FA510 sub_80FA510: @ 80FA510 push {lr} ldr r0, _080FA524 @ =Rfu ldr r0, [r0] cmp r0, 0 beq _080FA51E bl _call_via_r0 _080FA51E: pop {r0} bx r0 .align 2, 0 _080FA524: .4byte Rfu thumb_func_end sub_80FA510 thumb_func_start sub_80FA528 sub_80FA528: @ 80FA528 push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 movs r5, 0 ldr r6, _080FA594 @ =Rfu ldr r0, _080FA598 @ =0x000008f6 adds r0, r6 mov r8, r0 _080FA53A: ldr r1, _080FA59C @ =0x00000989 adds r0, r6, r1 adds r4, r5, r0 ldrb r0, [r4] subs r0, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080FA5C2 ldr r1, _080FA5A0 @ =gRfuSlotStatusNI lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x46 beq _080FA55E cmp r0, 0x48 bne _080FA5A8 _080FA55E: ldr r2, _080FA5A4 @ =0x0000098d adds r0, r6, r2 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0x8 bne _080FA5C2 movs r0, 0x9 strb r0, [r4] movs r0, 0xA strb r0, [r1] lsls r1, r5, 24 lsrs r1, 24 movs r0, 0x8 bl rfu_clearSlot movs r0, 0x80 lsls r0, 17 lsls r0, r5 lsrs r0, 24 movs r1, 0x8 adds r2, r4, 0 movs r3, 0x1 bl rfu_NI_setSendData movs r7, 0x1 b _080FA5C2 .align 2, 0 _080FA594: .4byte Rfu _080FA598: .4byte 0x000008f6 _080FA59C: .4byte 0x00000989 _080FA5A0: .4byte gRfuSlotStatusNI _080FA5A4: .4byte 0x0000098d _080FA5A8: mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x47 bne _080FA5C2 lsls r1, r5, 24 lsrs r1, 24 movs r0, 0x8 bl rfu_clearSlot _080FA5C2: adds r5, 0x1 cmp r5, 0x3 ble _080FA53A adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FA528 thumb_func_start sub_80FA5D4 sub_80FA5D4: @ 80FA5D4 push {r4-r6,lr} movs r3, 0 movs r1, 0 ldr r5, _080FA620 @ =Rfu+0x98d movs r6, 0x1 movs r4, 0 _080FA5E0: adds r2, r1, r5 ldrb r0, [r2] cmp r0, 0xB bne _080FA5F4 adds r0, r6, 0 lsls r0, r1 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 strb r4, [r2] _080FA5F4: adds r1, 0x1 cmp r1, 0x3 ble _080FA5E0 cmp r3, 0 beq _080FA608 adds r0, r3, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete _080FA608: movs r1, 0 ldr r2, _080FA620 @ =Rfu+0x98d _080FA60C: adds r0, r1, r2 ldrb r0, [r0] subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080FA624 movs r0, 0x1 b _080FA62C .align 2, 0 _080FA620: .4byte Rfu+0x98d _080FA624: adds r1, 0x1 cmp r1, 0x3 ble _080FA60C movs r0, 0 _080FA62C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FA5D4 thumb_func_start sub_80FA634 sub_80FA634: @ 80FA634 push {lr} adds r2, r0, 0 adds r0, r1, 0 lsls r2, 16 lsrs r2, 16 adds r1, r2, 0 bl sub_80FBC70 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _080FA668 ldr r0, _080FA660 @ =Rfu ldr r2, _080FA664 @ =0x00000989 adds r0, r2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x9 beq _080FA668 movs r0, 0 b _080FA66A .align 2, 0 _080FA660: .4byte Rfu _080FA664: .4byte 0x00000989 _080FA668: movs r0, 0x1 _080FA66A: pop {r1} bx r1 thumb_func_end sub_80FA634 thumb_func_start sub_80FA670 sub_80FA670: @ 80FA670 push {r4-r6,lr} adds r6, r0, 0 adds r0, r2, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 16 lsrs r1, 16 bl sub_80FBC70 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080FA6B4 @ =Rfu ldr r0, _080FA6B8 @ =0x00000989 adds r5, r0 adds r5, r4, r5 strb r6, [r5] movs r0, 0x4 adds r1, r4, 0 bl rfu_clearSlot movs r0, 0x80 lsls r0, 17 lsls r0, r4 lsrs r0, 24 movs r1, 0x8 adds r2, r5, 0 movs r3, 0x1 bl rfu_NI_setSendData pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FA6B4: .4byte Rfu _080FA6B8: .4byte 0x00000989 thumb_func_end sub_80FA670 thumb_func_start sub_80FA6BC sub_80FA6BC: @ 80FA6BC push {r4,r5,lr} ldr r4, _080FA6F0 @ =Rfu ldr r0, _080FA6F4 @ =0x0000093d adds r5, r4, r0 movs r0, 0x8 strb r0, [r5] ldr r0, _080FA6F8 @ =0x000008f6 adds r4, r0 ldrb r1, [r4] movs r0, 0x4 bl rfu_clearSlot ldrb r1, [r4] movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r0, 24 movs r1, 0x8 adds r2, r5, 0 movs r3, 0x1 bl rfu_NI_setSendData pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA6F0: .4byte Rfu _080FA6F4: .4byte 0x0000093d _080FA6F8: .4byte 0x000008f6 thumb_func_end sub_80FA6BC thumb_func_start sub_80FA6FC sub_80FA6FC: @ 80FA6FC push {lr} adds r2, r0, 0 adds r0, r1, 0 lsls r2, 16 lsrs r2, 16 adds r1, r2, 0 bl sub_80FBC70 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080FA718 movs r0, 0x2 b _080FA732 _080FA718: ldr r1, _080FA72C @ =gRfuSlotStatusNI lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0 beq _080FA730 movs r0, 0 b _080FA732 .align 2, 0 _080FA72C: .4byte gRfuSlotStatusNI _080FA730: movs r0, 0x1 _080FA732: pop {r1} bx r1 thumb_func_end sub_80FA6FC thumb_func_start sub_80FA738 sub_80FA738: @ 80FA738 push {r4,r5,lr} bl sub_80FA528 movs r4, 0 ldr r0, _080FA77C @ =Rfu ldr r1, _080FA780 @ =0x0000098d adds r5, r0, r1 _080FA746: ldr r1, _080FA784 @ =gRfuSlotStatusNI lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] subs r0, 0x26 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080FA770 adds r1, r4, r5 ldrb r0, [r1] cmp r0, 0xA bne _080FA766 movs r0, 0xB strb r0, [r1] _080FA766: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x4 bl rfu_clearSlot _080FA770: adds r4, 0x1 cmp r4, 0x3 ble _080FA746 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA77C: .4byte Rfu _080FA780: .4byte 0x0000098d _080FA784: .4byte gRfuSlotStatusNI thumb_func_end sub_80FA738 thumb_func_start sub_80FA788 sub_80FA788: @ 80FA788 push {r4,r5,lr} movs r4, 0 ldr r1, _080FA800 @ =Rfu ldr r2, _080FA804 @ =0x0000093d adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x8 bne _080FA7C2 ldr r2, _080FA808 @ =gRfuSlotStatusNI ldr r0, _080FA80C @ =0x000008f6 adds r1, r0 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x26 beq _080FA7BA ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x27 bne _080FA7C2 _080FA7BA: ldrb r1, [r1] movs r0, 0x4 bl rfu_clearSlot _080FA7C2: ldr r2, _080FA808 @ =gRfuSlotStatusNI ldr r5, _080FA800 @ =Rfu ldr r0, _080FA80C @ =0x000008f6 adds r1, r5, r0 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x46 beq _080FA7E6 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x48 bne _080FA814 _080FA7E6: ldrb r1, [r1] movs r0, 0x8 bl rfu_clearSlot ldr r2, _080FA810 @ =0x0000093e adds r4, r5, r2 ldrb r0, [r4] movs r1, 0 bl sub_80FB9E4 ldrb r4, [r4] b _080FA82C .align 2, 0 _080FA800: .4byte Rfu _080FA804: .4byte 0x0000093d _080FA808: .4byte gRfuSlotStatusNI _080FA80C: .4byte 0x000008f6 _080FA810: .4byte 0x0000093e _080FA814: ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x47 bne _080FA82C ldrb r1, [r1] movs r0, 0x8 bl rfu_clearSlot movs r4, 0x6 _080FA82C: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FA788 thumb_func_start sub_80FA834 sub_80FA834: @ 80FA834 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080FA884 @ =Rfu adds r0, r5, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080FA85C movs r0, 0x9A lsls r0, 4 adds r1, r5, r0 movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl DestroyTask _080FA85C: ldr r2, _080FA888 @ =gTasks lsls r1, r6, 2 adds r0, r1, r6 lsls r0, 3 adds r4, r0, r2 movs r2, 0x8 ldrsh r0, [r4, r2] adds r7, r1, 0 cmp r0, 0x3 beq _080FA904 cmp r0, 0x3 bgt _080FA88C cmp r0, 0x1 beq _080FA8B4 cmp r0, 0x1 bgt _080FA900 cmp r0, 0 beq _080FA89E b _080FA9BC .align 2, 0 _080FA884: .4byte Rfu _080FA888: .4byte gTasks _080FA88C: cmp r0, 0x5 beq _080FA938 cmp r0, 0x5 blt _080FA926 cmp r0, 0x6 beq _080FA96C cmp r0, 0x65 beq _080FA8EC b _080FA9BC _080FA89E: bl sub_80F9C50 lsls r0, 24 cmp r0, 0 bne _080FA8AA b _080FA9BC _080FA8AA: bl ResetBlockReceivedFlags bl sub_800B0B4 b _080FA930 _080FA8B4: ldrb r0, [r5, 0xC] cmp r0, 0x1 bne _080FA8F4 ldr r0, _080FA8CC @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080FA8D0 movs r0, 0xF0 lsls r0, 7 bl sub_80F9D04 b _080FA8D8 .align 2, 0 _080FA8CC: .4byte gReceivedRemoteLinkPlayers _080FA8D0: movs r0, 0xEE lsls r0, 7 bl sub_80F9D04 _080FA8D8: ldr r0, _080FA8E8 @ =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 movs r0, 0x65 strh r0, [r1, 0x8] b _080FA9BC .align 2, 0 _080FA8E8: .4byte gTasks _080FA8EC: ldr r0, _080FA8FC @ =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080FA9BC _080FA8F4: movs r0, 0x2 strh r0, [r4, 0x8] b _080FA9BC .align 2, 0 _080FA8FC: .4byte gSendCmd _080FA900: ldrb r0, [r5, 0xD] b _080FA92C _080FA904: ldrb r0, [r5, 0xC] cmp r0, 0x1 bne _080FA930 bl sub_80F9C50 lsls r0, 24 cmp r0, 0 beq _080FA9BC adds r1, r5, 0 adds r1, 0x5A movs r0, 0 strb r0, [r1] movs r0, 0xA1 lsls r0, 8 bl sub_80F9D04 b _080FA930 _080FA926: bl sub_80F9C78 lsls r0, 24 _080FA92C: cmp r0, 0 beq _080FA9BC _080FA930: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080FA9BC _080FA938: movs r4, 0 ldrb r0, [r5, 0xD] cmp r4, r0 bge _080FA956 _080FA940: adds r0, r4, 0 bl sub_800B110 lsls r0, r4, 24 lsrs r0, 24 bl Rfu_ResetBlockReceivedFlag adds r4, 0x1 ldrb r2, [r5, 0xD] cmp r4, r2 blt _080FA940 _080FA956: ldr r0, _080FA968 @ =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080FA9BC .align 2, 0 _080FA968: .4byte gTasks _080FA96C: adds r0, r6, 0 bl DestroyTask ldr r1, _080FA9C4 @ =gReceivedRemoteLinkPlayers movs r0, 0x1 strb r0, [r1] movs r0, 0x9A lsls r0, 4 adds r1, r5, r0 movs r0, 0 strb r0, [r1] movs r1, 0x96 lsls r1, 2 movs r0, 0x1 bl sub_80FEA34 ldr r2, _080FA9C8 @ =0x0000099e adds r1, r5, r2 ldrb r0, [r1] cmp r0, 0 beq _080FA9BC movs r4, 0 adds r2, r1, 0 movs r3, 0x1 ldr r0, _080FA9CC @ =0x0000099d adds r5, r0 _080FA9A0: ldrb r0, [r2] asrs r0, r4 ands r0, r3 cmp r0, 0 beq _080FA9B6 adds r0, r3, 0 lsls r0, r4 strb r0, [r5] ldrb r1, [r2] eors r0, r1 strb r0, [r2] _080FA9B6: adds r4, 0x1 cmp r4, 0x3 ble _080FA9A0 _080FA9BC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA9C4: .4byte gReceivedRemoteLinkPlayers _080FA9C8: .4byte 0x0000099e _080FA9CC: .4byte 0x0000099d thumb_func_end sub_80FA834 thumb_func_start sub_80FA9D0 sub_80FA9D0: @ 80FA9D0 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 movs r5, 0x1 ldr r4, _080FA9F8 @ =Rfu+0x996 movs r3, 0 _080FA9DE: adds r0, r2, 0 asrs r0, r1 ands r0, r5 cmp r0, 0 beq _080FA9EC adds r0, r1, r4 strb r3, [r0] _080FA9EC: adds r1, 0x1 cmp r1, 0x3 ble _080FA9DE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA9F8: .4byte Rfu+0x996 thumb_func_end sub_80FA9D0 thumb_func_start sub_80FA9FC sub_80FA9FC: @ 80FA9FC push {r4-r7,lr} adds r2, r0, 0 ldr r1, _080FAA4C @ =Rfu ldrb r0, [r2, 0xF] strb r0, [r1, 0xD] movs r4, 0 ldr r0, _080FAA50 @ =0x00000996 adds r5, r1, r0 adds r3, r2, 0 adds r3, 0x10 _080FAA10: adds r0, r4, r5 adds r1, r3, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _080FAA10 adds r6, r2, 0 ldr r5, _080FAA54 @ =gLinkPlayers movs r4, 0x4 _080FAA24: adds r0, r5, 0 adds r1, r6, 0 adds r1, 0x14 ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldr r1, [r1] str r1, [r0] adds r0, r5, 0 bl sub_800B284 adds r6, 0x1C adds r5, 0x1C subs r4, 0x1 cmp r4, 0 bge _080FAA24 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FAA4C: .4byte Rfu _080FAA50: .4byte 0x00000996 _080FAA54: .4byte gLinkPlayers thumb_func_end sub_80FA9FC thumb_func_start sub_80FAA58 sub_80FAA58: @ 80FAA58 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, _080FAA8C @ =gUnknown_843EDE4 "PokemonSioInfo" adds r1, r4, 0 bl strcmp adds r5, r0, 0 cmp r5, 0 bne _080FAA84 adds r0, r4, 0 bl sub_80FA9FC mov r0, sp strh r5, [r0] ldr r2, _080FAA90 @ =0x0100007e adds r1, r4, 0 bl CpuSet movs r0, 0 bl ResetBlockReceivedFlag _080FAA84: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FAA8C: .4byte gUnknown_843EDE4 _080FAA90: .4byte 0x0100007e thumb_func_end sub_80FAA58 thumb_func_start sub_80FAA94 sub_80FAA94: @ 80FAA94 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _080FAAF4 @ =Rfu ldr r2, _080FAAF8 @ =gUnknown_843EC38 ldr r1, _080FAAFC @ =0x000009a1 adds r0, r3, r1 ldrb r1, [r0] adds r1, r2 ldr r2, _080FAB00 @ =0x00000996 adds r0, r3, r2 ldrb r1, [r1] adds r0, r1 ldrb r4, [r0] adds r0, r3, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080FAAD2 movs r5, 0x9A lsls r5, 4 adds r1, r3, r5 movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl DestroyTask _080FAAD2: ldr r0, _080FAB04 @ =gTasks lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] adds r3, r0, 0 adds r7, r2, 0 cmp r1, 0x5 bls _080FAAEA b _080FACD6 _080FAAEA: lsls r0, r1, 2 ldr r1, _080FAB08 @ =_080FAB0C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FAAF4: .4byte Rfu _080FAAF8: .4byte gUnknown_843EC38 _080FAAFC: .4byte 0x000009a1 _080FAB00: .4byte 0x00000996 _080FAB04: .4byte gTasks _080FAB08: .4byte _080FAB0C .align 2, 0 _080FAB0C: .4byte _080FAB24 .4byte _080FAB44 .4byte _080FAB5C .4byte _080FABA4 .4byte _080FABEE .4byte _080FAC78 _080FAB24: ldr r0, _080FAB40 @ =gSendCmd ldrh r0, [r0] cmp r0, 0 beq _080FAB2E b _080FACD6 _080FAB2E: adds r0, r4, 0 bl ResetBlockReceivedFlag movs r0, 0xF0 lsls r0, 7 bl sub_80F9D04 b _080FAC2E .align 2, 0 _080FAB40: .4byte gSendCmd _080FAB44: ldr r0, _080FAB58 @ =gSendCmd ldrh r0, [r0] cmp r0, 0 beq _080FAB4E b _080FACD6 _080FAB4E: adds r1, r7, r6 lsls r1, 3 adds r1, r3 b _080FAC36 .align 2, 0 _080FAB58: .4byte gSendCmd _080FAB5C: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080FAB70 b _080FACD6 _080FAB70: adds r0, r4, 0 bl ResetBlockReceivedFlag lsls r2, r4, 8 ldr r0, _080FAB9C @ =gBlockRecvBuffer adds r2, r0 ldr r1, _080FABA0 @ =gLinkPlayers lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 adds r1, r0, 0 adds r2, 0x10 ldm r2!, {r3-r5} stm r1!, {r3-r5} ldm r2!, {r3-r5} stm r1!, {r3-r5} ldr r2, [r2] str r2, [r1] bl sub_800B284 b _080FAC2E .align 2, 0 _080FAB9C: .4byte gBlockRecvBuffer _080FABA0: .4byte gLinkPlayers _080FABA4: ldr r5, _080FAC40 @ =gBlockSendBuffer adds r1, r5, 0 ldr r0, _080FAC44 @ =gUnknown_843EDE4 "PokemonSioInfo" ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r2, [r0] strh r2, [r1] ldrb r0, [r0, 0x2] strb r0, [r1, 0x2] ldr r1, _080FAC48 @ =Rfu ldrb r0, [r1, 0xD] strb r0, [r5, 0xF] movs r2, 0 adds r4, r5, 0 adds r4, 0x10 ldr r0, _080FAC4C @ =0x00000996 adds r3, r1, r0 _080FABC6: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080FABC6 ldr r1, _080FAC50 @ =gLinkPlayers adds r0, r5, 0 adds r0, 0x14 movs r2, 0x8C bl memcpy ldr r0, _080FAC54 @ =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080FABEE: ldr r5, _080FAC40 @ =gBlockSendBuffer ldr r1, _080FAC48 @ =Rfu ldrb r0, [r1, 0xD] strb r0, [r5, 0xF] movs r2, 0 ldr r3, _080FAC50 @ =gLinkPlayers mov r12, r3 adds r4, r5, 0 adds r4, 0x10 ldr r0, _080FAC4C @ =0x00000996 adds r3, r1, r0 _080FAC04: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080FAC04 adds r0, r5, 0 adds r0, 0x14 mov r1, r12 movs r2, 0x8C bl memcpy ldr r1, _080FAC40 @ =gBlockSendBuffer movs r0, 0 movs r2, 0xA0 bl SendBlock lsls r0, 24 cmp r0, 0 beq _080FACD6 _080FAC2E: ldr r0, _080FAC54 @ =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 _080FAC36: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080FACD6 .align 2, 0 _080FAC40: .4byte gBlockSendBuffer _080FAC44: .4byte gUnknown_843EDE4 _080FAC48: .4byte Rfu _080FAC4C: .4byte 0x00000996 _080FAC50: .4byte gLinkPlayers _080FAC54: .4byte gTasks _080FAC58: adds r0, r3, 0 lsls r0, r2 ldr r2, _080FAC74 @ =0x0000099d adds r1, r5, r2 strb r0, [r1] ldrb r1, [r4] eors r0, r1 strb r0, [r4] movs r4, 0x9A lsls r4, 4 adds r0, r5, r4 strb r3, [r0] b _080FACD0 .align 2, 0 _080FAC74: .4byte 0x0000099d _080FAC78: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080FACD6 bl GetBlockReceivedStatus movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080FACD6 mov r0, sp movs r4, 0 strh r4, [r0] ldr r1, _080FACE0 @ =gBlockRecvBuffer ldr r2, _080FACE4 @ =0x0100007e bl CpuSet movs r0, 0 bl ResetBlockReceivedFlag ldr r1, _080FACE8 @ =Rfu movs r5, 0x9A lsls r5, 4 adds r0, r1, r5 strb r4, [r0] ldr r0, _080FACEC @ =0x0000099e adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0 beq _080FACD0 movs r2, 0 adds r5, r1, 0 adds r4, r3, 0 ldrb r1, [r4] movs r3, 0x1 _080FACC0: adds r0, r1, 0 asrs r0, r2 ands r0, r3 cmp r0, 0 bne _080FAC58 adds r2, 0x1 cmp r2, 0x3 ble _080FACC0 _080FACD0: adds r0, r6, 0 bl DestroyTask _080FACD6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FACE0: .4byte gBlockRecvBuffer _080FACE4: .4byte 0x0100007e _080FACE8: .4byte Rfu _080FACEC: .4byte 0x0000099e thumb_func_end sub_80FAA94 thumb_func_start sub_80FACF0 sub_80FACF0: @ 80FACF0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _080FAD2C @ =Rfu adds r0, r6, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080FAD0E adds r0, r5, 0 bl DestroyTask _080FAD0E: ldr r1, _080FAD30 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080FAD54 cmp r0, 0x1 bgt _080FAD34 cmp r0, 0 beq _080FAD3A b _080FAD8A .align 2, 0 _080FAD2C: .4byte Rfu _080FAD30: .4byte gTasks _080FAD34: cmp r0, 0x2 beq _080FAD66 b _080FAD8A _080FAD3A: ldrb r0, [r6, 0xD] cmp r0, 0 beq _080FAD8A bl sub_800B0B4 ldr r1, _080FAD50 @ =gBlockSendBuffer movs r0, 0 movs r2, 0x3C bl SendBlock b _080FAD5E .align 2, 0 _080FAD50: .4byte gBlockSendBuffer _080FAD54: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080FAD8A _080FAD5E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080FAD8A _080FAD66: bl GetBlockReceivedStatus movs r4, 0x1 adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _080FAD8A ldr r0, _080FAD90 @ =gBlockRecvBuffer bl sub_80FA9FC movs r0, 0 bl ResetBlockReceivedFlag ldr r0, _080FAD94 @ =gReceivedRemoteLinkPlayers strb r4, [r0] adds r0, r5, 0 bl DestroyTask _080FAD8A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FAD90: .4byte gBlockRecvBuffer _080FAD94: .4byte gReceivedRemoteLinkPlayers thumb_func_end sub_80FACF0 thumb_func_start sub_80FAD98 sub_80FAD98: @ 80FAD98 push {r4-r7,lr} ldr r0, _080FAE10 @ =Rfu adds r7, r0, 0 adds r7, 0xEE ldrb r1, [r7] adds r5, r0, 0 cmp r1, 0x1 bne _080FAE30 ldr r0, _080FAE14 @ =gUnknown_3005E10 ldrb r0, [r0, 0x2] cmp r0, 0 bne _080FAE30 ldr r6, _080FAE18 @ =gMain ldr r1, [r6, 0x4] ldr r0, _080FAE1C @ =c2_mystery_gift_e_reader_run cmp r1, r0 bne _080FADC0 ldr r1, _080FAE20 @ =gWirelessCommType movs r0, 0x2 strb r0, [r1] _080FADC0: ldr r4, _080FAE24 @ =CB2_LinkError adds r0, r4, 0 bl SetMainCallback2 str r4, [r6, 0x8] ldrh r0, [r5, 0xA] lsls r4, r0, 16 ldrh r0, [r5, 0x10] lsls r0, 8 orrs r4, r0 ldrh r0, [r5, 0x12] orrs r4, r0 ldr r1, _080FAE28 @ =0x0000069e adds r0, r5, r1 ldrb r0, [r0] adds r6, r0, 0 ldr r1, _080FAE2C @ =0x000008d2 adds r0, r5, r1 ldrb r0, [r0] adds r5, r0, 0 bl sub_80FB9F4 movs r3, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080FADF8 movs r3, 0x1 _080FADF8: adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_800ACBC ldrb r0, [r7] movs r0, 0x2 strb r0, [r7] bl CloseLink b _080FAE62 .align 2, 0 _080FAE10: .4byte Rfu _080FAE14: .4byte gUnknown_3005E10 _080FAE18: .4byte gMain _080FAE1C: .4byte c2_mystery_gift_e_reader_run _080FAE20: .4byte gWirelessCommType _080FAE24: .4byte CB2_LinkError _080FAE28: .4byte 0x0000069e _080FAE2C: .4byte 0x000008d2 _080FAE30: ldr r1, _080FAE68 @ =0x000008d3 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080FAE44 ldr r1, _080FAE6C @ =0x0000069f adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080FAE62 _080FAE44: ldr r0, _080FAE70 @ =gUnknown_3005E10 ldrb r0, [r0, 0x2] cmp r0, 0 beq _080FAE50 bl sub_80FEB14 _080FAE50: movs r4, 0xE0 lsls r4, 7 movs r0, 0x1 adds r1, r4, 0 bl sub_80FB9E4 adds r0, r4, 0 bl sub_80FB0E8 _080FAE62: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FAE68: .4byte 0x000008d3 _080FAE6C: .4byte 0x0000069f _080FAE70: .4byte gUnknown_3005E10 thumb_func_end sub_80FAD98 thumb_func_start rfu_REQ_recvData_then_sendData rfu_REQ_recvData_then_sendData: @ 80FAE74 push {lr} ldr r0, _080FAE90 @ =gUnknown_3005E10 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _080FAE8C bl rfu_REQ_recvData bl rfu_waitREQComplete movs r0, 0 bl LinkRfu_REQ_SendData_HandleParentRelationship _080FAE8C: pop {r0} bx r0 .align 2, 0 _080FAE90: .4byte gUnknown_3005E10 thumb_func_end rfu_REQ_recvData_then_sendData thumb_func_start sub_80FAE94 sub_80FAE94: @ 80FAE94 push {r4,r5,lr} movs r5, 0 ldr r4, _080FAEC8 @ =Rfu ldr r1, _080FAECC @ =0x00000985 adds r0, r4, r1 strb r5, [r0] bl Random lsls r0, 16 lsrs r0, 16 bl sub_80FDA30 adds r0, r4, 0 adds r0, 0xEF ldrb r0, [r0] cmp r0, 0 bne _080FAEE8 ldrb r0, [r4, 0xC] cmp r0, 0x1 beq _080FAED6 cmp r0, 0x1 bgt _080FAED0 cmp r0, 0 beq _080FAEDC b _080FAEE8 .align 2, 0 _080FAEC8: .4byte Rfu _080FAECC: .4byte 0x00000985 _080FAED0: cmp r0, 0x2 beq _080FAEE4 b _080FAEE8 _080FAED6: bl sub_80F911C b _080FAEE8 _080FAEDC: bl sub_80F9514 adds r5, r0, 0 b _080FAEE8 _080FAEE4: bl rfu_REQ_recvData_then_sendData _080FAEE8: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FAE94 thumb_func_start sub_80FAEF0 sub_80FAEF0: @ 80FAEF0 push {r4,lr} movs r4, 0 ldr r1, _080FAF18 @ =Rfu adds r0, r1, 0 adds r0, 0xEF ldrb r0, [r0] cmp r0, 0 bne _080FAF10 ldrb r0, [r1, 0xC] cmp r0, 0x1 bne _080FAF0C bl sub_80F9204 adds r4, r0, 0 _080FAF0C: bl sub_80FAD98 _080FAF10: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080FAF18: .4byte Rfu thumb_func_end sub_80FAEF0 thumb_func_start sub_80FAF1C sub_80FAF1C: @ 80FAF1C push {lr} ldr r0, _080FAF2C @ =gUnknown_3005E00 ldr r1, _080FAF30 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 _080FAF2C: .4byte gUnknown_3005E00 _080FAF30: .4byte gSaveBlock2Ptr thumb_func_end sub_80FAF1C thumb_func_start sub_80FAF34 sub_80FAF34: @ 80FAF34 push {r4,lr} ldr r4, _080FAF54 @ =gUnknown_3005440 adds r0, r4, 0 movs r1, 0 movs r2, 0xD bl memset adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80FCB54 pop {r4} pop {r0} bx r0 .align 2, 0 _080FAF54: .4byte gUnknown_3005440 thumb_func_end sub_80FAF34 thumb_func_start sub_80FAF58 sub_80FAF58: @ 80FAF58 push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080FAF70 @ =gUnknown_3005440 adds r1, r4, 0 bl sub_80FCB54 pop {r4} pop {r0} bx r0 .align 2, 0 _080FAF70: .4byte gUnknown_3005440 thumb_func_end sub_80FAF58 thumb_func_start sub_80FAF74 sub_80FAF74: @ 80FAF74 push {r4,r5,lr} ldr r5, _080FAF9C @ =gUnknown_3005440 movs r4, 0x1 ands r0, r4 lsls r0, 4 ldrb r3, [r5] movs r2, 0x11 negs r2, r2 ands r2, r3 orrs r2, r0 ands r1, r4 lsls r1, 5 movs r0, 0x21 negs r0, r0 ands r2, r0 orrs r2, r1 strb r2, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FAF9C: .4byte gUnknown_3005440 thumb_func_end sub_80FAF74 thumb_func_start sub_80FAFA0 sub_80FAFA0: @ 80FAFA0 push {r4,r5,lr} ldr r5, _080FAFD4 @ =gUnknown_3005440 lsls r0, 2 ldrb r4, [r5, 0x9] movs r3, 0x3 ands r3, r4 orrs r3, r0 strb r3, [r5, 0x9] ldr r3, _080FAFD8 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldrh r3, [r5, 0x8] ldr r0, _080FAFDC @ =0xfffffc00 ands r0, r3 orrs r0, r1 strh r0, [r5, 0x8] lsls r2, 1 ldrb r1, [r5, 0xB] movs r0, 0x1 ands r0, r1 orrs r0, r2 strb r0, [r5, 0xB] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FAFD4: .4byte gUnknown_3005440 _080FAFD8: .4byte 0x000003ff _080FAFDC: .4byte 0xfffffc00 thumb_func_end sub_80FAFA0 thumb_func_start sub_80FAFE0 sub_80FAFE0: @ 80FAFE0 push {lr} lsls r0, 24 ldr r2, _080FB000 @ =gUnknown_3005440 lsrs r0, 17 ldrb r3, [r2, 0xA] movs r1, 0x7F ands r1, r3 orrs r1, r0 strb r1, [r2, 0xA] ldr r3, _080FB004 @ =gUnknown_3005E00 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData pop {r0} bx r0 .align 2, 0 _080FB000: .4byte gUnknown_3005440 _080FB004: .4byte gUnknown_3005E00 thumb_func_end sub_80FAFE0 thumb_func_start sub_80FB008 sub_80FB008: @ 80FB008 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080FB016 bl sub_80FAF58 _080FB016: ldr r2, _080FB028 @ =gUnknown_3005440 ldr r3, _080FB02C @ =gUnknown_3005E00 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData pop {r0} bx r0 .align 2, 0 _080FB028: .4byte gUnknown_3005440 _080FB02C: .4byte gUnknown_3005E00 thumb_func_end sub_80FB008 thumb_func_start sub_80FB030 sub_80FB030: @ 80FB030 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 bl sub_80F9800 ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 bne _080FB0C4 movs r5, 0 movs r7, 0 ldr r3, _080FB0D4 @ =Rfu ldr r1, _080FB0D8 @ =0x0000099a adds r0, r3, r1 ldr r2, _080FB0DC @ =0x0000099b adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] adds r1, r0, 0 eors r1, r2 mov r8, r1 movs r4, 0 movs r6, 0x1 ldr r2, _080FB0E0 @ =gLinkPlayers mov r12, r2 ldr r0, _080FB0E4 @ =0x00000996 adds r0, r3 mov r10, r0 mov r3, r12 adds r3, 0x4 _080FB074: mov r0, r8 asrs r0, r4 ands r0, r6 cmp r0, 0 beq _080FB0B4 mov r1, r10 adds r0, r4, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r2, r12 adds r1, r0, r2 ldrb r1, [r1, 0x13] adds r2, r6, 0 ands r2, r1 lsls r2, 3 adds r0, r3 ldr r1, [r0] movs r0, 0x7 ands r1, r0 movs r0, 0x80 orrs r1, r0 orrs r2, r1 lsls r0, r5, 3 lsls r2, r0 orrs r7, r2 adds r5, 0x1 mov r0, r9 subs r0, 0x1 cmp r5, r0 beq _080FB0BA _080FB0B4: adds r4, 0x1 cmp r4, 0x3 ble _080FB074 _080FB0BA: movs r0, 0x45 adds r1, r7, 0 movs r2, 0 bl sub_80FB008 _080FB0C4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB0D4: .4byte Rfu _080FB0D8: .4byte 0x0000099a _080FB0DC: .4byte 0x0000099b _080FB0E0: .4byte gLinkPlayers _080FB0E4: .4byte 0x00000996 thumb_func_end sub_80FB030 thumb_func_start sub_80FB0E8 sub_80FB0E8: @ 80FB0E8 push {r4,lr} adds r4, r0, 0 ldr r2, _080FB110 @ =Rfu adds r3, r2, 0 adds r3, 0xEE ldrb r0, [r3] cmp r0, 0 bne _080FB10A ldr r1, _080FB114 @ =gUnknown_3005E10 ldrh r0, [r1, 0x14] strh r0, [r2, 0x10] ldrh r0, [r1, 0x16] strh r0, [r2, 0x12] strh r4, [r2, 0xA] ldrb r0, [r3] movs r0, 0x1 strb r0, [r3] _080FB10A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FB110: .4byte Rfu _080FB114: .4byte gUnknown_3005E10 thumb_func_end sub_80FB0E8 thumb_func_start sub_80FB118 sub_80FB118: @ 80FB118 ldr r0, _080FB124 @ =Rfu adds r0, 0xEE ldrb r1, [r0] movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080FB124: .4byte Rfu thumb_func_end sub_80FB118 thumb_func_start sub_80FB128 sub_80FB128: @ 80FB128 push {lr} adds r2, r0, 0 cmp r2, 0 bne _080FB140 ldr r0, _080FB13C @ =Rfu adds r0, 0xEE ldrb r1, [r0] strb r2, [r0] b _080FB14A .align 2, 0 _080FB13C: .4byte Rfu _080FB140: ldr r0, _080FB150 @ =Rfu adds r0, 0xEE ldrb r1, [r0] movs r1, 0x4 strb r1, [r0] _080FB14A: pop {r0} bx r0 .align 2, 0 _080FB150: .4byte Rfu thumb_func_end sub_80FB128 thumb_func_start sub_80FB154 sub_80FB154: @ 80FB154 push {lr} ldr r0, _080FB16C @ =gUnknown_3005E10 ldrb r0, [r0] movs r1, 0x1 bl sub_80FBE20 ldr r1, _080FB170 @ =Rfu movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080FB16C: .4byte gUnknown_3005E10 _080FB170: .4byte Rfu thumb_func_end sub_80FB154 thumb_func_start sub_80FB174 sub_80FB174: @ 80FB174 ldr r1, _080FB17C @ =Rfu ldr r0, _080FB180 @ =sub_80FB154 str r0, [r1] bx lr .align 2, 0 _080FB17C: .4byte Rfu _080FB180: .4byte sub_80FB154 thumb_func_end sub_80FB174 thumb_func_start sub_80FB184 sub_80FB184: @ 80FB184 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 movs r6, 0 cmp r4, 0x32 bne _080FB19A b _080FB2D8 _080FB19A: cmp r4, 0x32 bgt _080FB1CA cmp r4, 0x13 bgt _080FB1B8 cmp r4, 0x12 blt _080FB1A8 b _080FB366 _080FB1A8: cmp r4, 0x10 bne _080FB1AE b _080FB366 _080FB1AE: cmp r4, 0x10 bgt _080FB204 cmp r4, 0 beq _080FB1F6 b _080FB366 _080FB1B8: cmp r4, 0x30 bne _080FB1BE b _080FB2E4 _080FB1BE: cmp r4, 0x30 ble _080FB1C4 b _080FB2CC _080FB1C4: cmp r4, 0x14 beq _080FB2A0 b _080FB366 _080FB1CA: cmp r4, 0x44 bgt _080FB1DC cmp r4, 0x42 blt _080FB1D4 b _080FB366 _080FB1D4: cmp r4, 0x33 bne _080FB1DA b _080FB2E4 _080FB1DA: b _080FB366 _080FB1DC: cmp r4, 0xF3 bne _080FB1E2 b _080FB332 _080FB1E2: cmp r4, 0xF3 bgt _080FB1EE cmp r4, 0xF0 bge _080FB1EC b _080FB366 _080FB1EC: b _080FB34C _080FB1EE: cmp r4, 0xFF bne _080FB1F4 b _080FB34C _080FB1F4: b _080FB366 _080FB1F6: ldr r1, _080FB200 @ =Rfu movs r0, 0x2 strh r0, [r1, 0x4] b _080FB366 .align 2, 0 _080FB200: .4byte Rfu _080FB204: ldr r0, _080FB268 @ =gUnknown_3005E10 ldrh r0, [r0, 0x14] bl sub_80FB564 movs r5, 0 movs r0, 0x1 mov r8, r0 ldr r1, _080FB26C @ =Rfu mov r9, r1 ldr r3, _080FB270 @ =0x0000098d add r3, r9 mov r10, r3 movs r7, 0x7F _080FB21E: ldr r0, _080FB268 @ =gUnknown_3005E10 ldrh r0, [r0, 0x14] asrs r0, r5 mov r1, r8 ands r0, r1 cmp r0, 0 beq _080FB286 ldr r0, _080FB274 @ =gRfuLinkStatus lsls r1, r5, 5 adds r1, 0x14 ldr r0, [r0] adds r0, r1 ldrb r0, [r0, 0x10] adds r4, r7, 0 ands r4, r0 bl sub_80F9800 ldrb r1, [r0, 0xA] adds r0, r7, 0 ands r0, r1 cmp r4, r0 bne _080FB27C ldr r0, _080FB278 @ =0x00000989 add r0, r9 adds r0, r5, r0 movs r1, 0 strb r1, [r0] mov r3, r10 adds r2, r5, r3 strb r1, [r2] movs r0, 0x20 adds r1, r5, 0 movs r3, 0x1 bl rfu_setRecvBuffer b _080FB286 .align 2, 0 _080FB268: .4byte gUnknown_3005E10 _080FB26C: .4byte Rfu _080FB270: .4byte 0x0000098d _080FB274: .4byte gRfuLinkStatus _080FB278: .4byte 0x00000989 _080FB27C: mov r0, r8 lsls r0, r5 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _080FB286: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080FB21E cmp r6, 0 beq _080FB366 adds r0, r6, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete b _080FB366 _080FB2A0: ldr r4, _080FB2C0 @ =Rfu ldr r1, _080FB2C4 @ =0x0000099f adds r0, r4, r1 ldr r1, _080FB2C8 @ =gUnknown_3005E10 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 beq _080FB2BA eors r0, r2 bl rfu_REQ_disconnect bl rfu_waitREQComplete _080FB2BA: movs r0, 0x11 strh r0, [r4, 0x4] b _080FB366 .align 2, 0 _080FB2C0: .4byte Rfu _080FB2C4: .4byte 0x0000099f _080FB2C8: .4byte gUnknown_3005E10 _080FB2CC: ldr r0, _080FB2D4 @ =Rfu adds r0, 0xF0 b _080FB362 .align 2, 0 _080FB2D4: .4byte Rfu _080FB2D8: ldr r0, _080FB2E0 @ =Rfu adds r0, 0xF0 movs r1, 0x3 b _080FB364 .align 2, 0 _080FB2E0: .4byte Rfu _080FB2E4: ldr r1, _080FB314 @ =Rfu adds r2, r1, 0 adds r2, 0xF0 movs r0, 0x4 strb r0, [r2] ldr r3, _080FB318 @ =0x0000099a adds r1, r3 ldr r0, _080FB31C @ =gUnknown_3005E10 ldrb r2, [r0, 0x14] ldrb r0, [r1] adds r3, r0, 0 bics r3, r2 adds r2, r3, 0 strb r2, [r1] ldr r0, _080FB320 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080FB328 cmp r2, 0 bne _080FB324 adds r0, r4, 0 bl sub_80FB0E8 b _080FB328 .align 2, 0 _080FB314: .4byte Rfu _080FB318: .4byte 0x0000099a _080FB31C: .4byte gUnknown_3005E10 _080FB320: .4byte gReceivedRemoteLinkPlayers _080FB324: bl sub_80FB174 _080FB328: movs r0, 0x2 adds r1, r4, 0 bl sub_80FB9E4 b _080FB366 _080FB332: movs r0, 0x1 movs r1, 0xF3 bl sub_80FB9E4 movs r0, 0xF3 bl sub_80FB0E8 ldr r0, _080FB348 @ =Rfu adds r0, 0xEF b _080FB362 .align 2, 0 _080FB348: .4byte Rfu _080FB34C: adds r0, r4, 0 bl sub_80FB0E8 movs r0, 0x1 adds r1, r4, 0 bl sub_80FB9E4 ldr r0, _080FB374 @ =Rfu ldr r1, _080FB378 @ =0x00000993 adds r0, r1 ldrb r1, [r0] _080FB362: movs r1, 0x1 _080FB364: strb r1, [r0] _080FB366: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB374: .4byte Rfu _080FB378: .4byte 0x00000993 thumb_func_end sub_80FB184 thumb_func_start sub_80FB37C sub_80FB37C: @ 80FB37C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x31 bne _080FB388 b _080FB4E8 _080FB388: cmp r4, 0x31 bgt _080FB3B6 cmp r4, 0x22 beq _080FB40C cmp r4, 0x22 bgt _080FB3A4 cmp r4, 0x20 beq _080FB3F4 cmp r4, 0x20 ble _080FB39E b _080FB556 _080FB39E: cmp r4, 0 beq _080FB3E6 b _080FB556 _080FB3A4: cmp r4, 0x24 beq _080FB432 cmp r4, 0x24 blt _080FB428 cmp r4, 0x25 beq _080FB47C cmp r4, 0x30 beq _080FB486 b _080FB556 _080FB3B6: cmp r4, 0x44 bgt _080FB3CC cmp r4, 0x42 blt _080FB3C0 b _080FB556 _080FB3C0: cmp r4, 0x33 beq _080FB49A cmp r4, 0x33 bge _080FB3CA b _080FB504 _080FB3CA: b _080FB556 _080FB3CC: cmp r4, 0xF3 bne _080FB3D2 b _080FB524 _080FB3D2: cmp r4, 0xF3 bgt _080FB3DE cmp r4, 0xF0 bge _080FB3DC b _080FB556 _080FB3DC: b _080FB53C _080FB3DE: cmp r4, 0xFF bne _080FB3E4 b _080FB53C _080FB3E4: b _080FB556 _080FB3E6: ldr r1, _080FB3F0 @ =Rfu movs r0, 0x6 strh r0, [r1, 0x4] b _080FB556 .align 2, 0 _080FB3F0: .4byte Rfu _080FB3F4: ldr r0, _080FB400 @ =Rfu ldr r1, _080FB404 @ =gUnknown_3005E10 ldrh r1, [r1, 0x14] ldr r2, _080FB408 @ =0x00000985 adds r0, r2 b _080FB554 .align 2, 0 _080FB400: .4byte Rfu _080FB404: .4byte gUnknown_3005E10 _080FB408: .4byte 0x00000985 _080FB40C: ldr r0, _080FB41C @ =Rfu ldr r1, _080FB420 @ =gUnknown_3005E10 ldrh r1, [r1, 0x14] ldr r2, _080FB424 @ =0x000008f6 adds r0, r2 ldrb r2, [r0] b _080FB554 .align 2, 0 _080FB41C: .4byte Rfu _080FB420: .4byte gUnknown_3005E10 _080FB424: .4byte 0x000008f6 _080FB428: movs r0, 0x2 adds r1, r4, 0 bl sub_80FB9E4 b _080FB556 _080FB432: ldr r4, _080FB468 @ =Rfu movs r1, 0 movs r0, 0xB strh r0, [r4, 0x4] ldr r2, _080FB46C @ =0x0000093d adds r0, r4, r2 strb r1, [r0] ldr r0, _080FB470 @ =0x0000093e adds r2, r4, r0 strb r1, [r2] ldr r1, _080FB474 @ =0x000008f6 adds r5, r4, r1 ldrb r1, [r5] movs r0, 0x20 movs r3, 0x1 bl rfu_setRecvBuffer ldrb r1, [r5] ldr r2, _080FB478 @ =0x000008f7 adds r4, r2 movs r0, 0x10 adds r2, r4, 0 movs r3, 0x46 bl rfu_setRecvBuffer b _080FB556 .align 2, 0 _080FB468: .4byte Rfu _080FB46C: .4byte 0x0000093d _080FB470: .4byte 0x0000093e _080FB474: .4byte 0x000008f6 _080FB478: .4byte 0x000008f7 _080FB47C: movs r0, 0x2 movs r1, 0x25 bl sub_80FB9E4 b _080FB556 _080FB486: ldr r0, _080FB4D8 @ =Rfu adds r2, r0, 0 adds r2, 0xF0 movs r1, 0x2 strb r1, [r2] ldr r1, _080FB4DC @ =0x0000093e adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 beq _080FB556 _080FB49A: ldr r2, _080FB4D8 @ =Rfu adds r1, r2, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0x2 beq _080FB4AA movs r0, 0x4 strb r0, [r1] _080FB4AA: ldr r1, _080FB4DC @ =0x0000093e adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x9 beq _080FB4BC movs r0, 0x2 adds r1, r4, 0 bl sub_80FB9E4 _080FB4BC: ldr r0, _080FB4E0 @ =gUnknown_843EDF8 "LINK LOSS DISCONNECT!" movs r1, 0x5 movs r2, 0x5 bl nullsub_87 ldr r0, _080FB4E4 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080FB556 adds r0, r4, 0 bl sub_80FB0E8 b _080FB556 .align 2, 0 _080FB4D8: .4byte Rfu _080FB4DC: .4byte 0x0000093e _080FB4E0: .4byte gUnknown_843EDF8 _080FB4E4: .4byte gReceivedRemoteLinkPlayers _080FB4E8: ldr r0, _080FB4FC @ =Rfu adds r0, 0xF0 movs r1, 0x1 strb r1, [r0] ldr r0, _080FB500 @ =gUnknown_843EE10 "LINK LOSS RECOVERY NOW" movs r1, 0x5 movs r2, 0x5 bl nullsub_87 b _080FB556 .align 2, 0 _080FB4FC: .4byte Rfu _080FB500: .4byte gUnknown_843EE10 _080FB504: ldr r1, _080FB51C @ =Rfu adds r2, r1, 0 adds r2, 0xF0 movs r0, 0x3 strb r0, [r2] ldr r2, _080FB520 @ =0x000008f4 adds r1, r2 ldrb r0, [r1] movs r0, 0x1 strb r0, [r1] b _080FB556 .align 2, 0 _080FB51C: .4byte Rfu _080FB520: .4byte 0x000008f4 _080FB524: movs r0, 0x1 movs r1, 0xF3 bl sub_80FB9E4 movs r0, 0xF3 bl sub_80FB0E8 ldr r0, _080FB538 @ =Rfu adds r0, 0xEF b _080FB552 .align 2, 0 _080FB538: .4byte Rfu _080FB53C: movs r0, 0x1 adds r1, r4, 0 bl sub_80FB9E4 adds r0, r4, 0 bl sub_80FB0E8 ldr r0, _080FB55C @ =Rfu ldr r1, _080FB560 @ =0x00000993 adds r0, r1 ldrb r1, [r0] _080FB552: movs r1, 0x1 _080FB554: strb r1, [r0] _080FB556: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FB55C: .4byte Rfu _080FB560: .4byte 0x00000993 thumb_func_end sub_80FB37C thumb_func_start sub_80FB564 sub_80FB564: @ 80FB564 push {r4-r6,lr} adds r3, r0, 0 movs r2, 0 movs r6, 0x1 ldr r0, _080FB598 @ =Rfu ldr r4, _080FB59C @ =0x000009a2 adds r1, r0, r4 movs r5, 0 movs r4, 0xFF _080FB576: adds r0, r3, 0 asrs r0, r2 ands r0, r6 cmp r0, 0 beq _080FB588 strb r5, [r1] ldrb r0, [r1, 0x4] orrs r0, r4 strb r0, [r1, 0x4] _080FB588: adds r1, 0x1 adds r2, 0x1 cmp r2, 0x3 ble _080FB576 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FB598: .4byte Rfu _080FB59C: .4byte 0x000009a2 thumb_func_end sub_80FB564 thumb_func_start sub_80FB5A0 sub_80FB5A0: @ 80FB5A0 push {r4-r7,lr} adds r5, r0, 0 movs r3, 0 movs r2, 0 movs r4, 0x1 ldr r6, _080FB5E8 @ =gRfuLinkStatus movs r7, 0x7F _080FB5AE: adds r0, r5, 0 asrs r0, r2 ands r0, r4 cmp r0, 0 beq _080FB5D4 lsls r1, r2, 5 adds r1, 0x14 ldr r0, [r6] adds r0, r1 ldrb r1, [r0, 0x10] adds r0, r7, 0 ands r0, r1 cmp r0, 0x45 bne _080FB5D4 adds r0, r4, 0 lsls r0, r2 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 _080FB5D4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080FB5AE adds r0, r3, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080FB5E8: .4byte gRfuLinkStatus thumb_func_end sub_80FB5A0 thumb_func_start sub_80FB5EC sub_80FB5EC: @ 80FB5EC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x25 bne _080FB5F8 b _080FB86C _080FB5F8: cmp r4, 0x25 bgt _080FB63A cmp r4, 0x14 bne _080FB602 b _080FB780 _080FB602: cmp r4, 0x14 bgt _080FB61A cmp r4, 0x11 beq _080FB69A cmp r4, 0x11 ble _080FB610 b _080FB9C2 _080FB610: cmp r4, 0 beq _080FB684 cmp r4, 0x10 beq _080FB690 b _080FB9C2 _080FB61A: cmp r4, 0x22 bne _080FB620 b _080FB7E8 _080FB620: cmp r4, 0x22 bgt _080FB62C cmp r4, 0x20 bne _080FB62A b _080FB7D0 _080FB62A: b _080FB9C2 _080FB62C: cmp r4, 0x23 bne _080FB632 b _080FB804 _080FB632: cmp r4, 0x24 bne _080FB638 b _080FB83A _080FB638: b _080FB9C2 _080FB63A: cmp r4, 0x44 bgt _080FB66A cmp r4, 0x42 blt _080FB644 b _080FB9C2 _080FB644: cmp r4, 0x32 bne _080FB64A b _080FB894 _080FB64A: cmp r4, 0x32 bgt _080FB65C cmp r4, 0x30 bne _080FB654 b _080FB8C0 _080FB654: cmp r4, 0x31 bne _080FB65A b _080FB876 _080FB65A: b _080FB9C2 _080FB65C: cmp r4, 0x33 bne _080FB662 b _080FB8C8 _080FB662: cmp r4, 0x40 bne _080FB668 b _080FB97C _080FB668: b _080FB9C2 _080FB66A: cmp r4, 0xF3 bne _080FB670 b _080FB98C _080FB670: cmp r4, 0xF3 bgt _080FB67C cmp r4, 0xF0 bge _080FB67A b _080FB9C2 _080FB67A: b _080FB9A8 _080FB67C: cmp r4, 0xFF bne _080FB682 b _080FB9A8 _080FB682: b _080FB9C2 _080FB684: ldr r1, _080FB68C @ =Rfu movs r0, 0x11 strh r0, [r1, 0x4] b _080FB9C2 .align 2, 0 _080FB68C: .4byte Rfu _080FB690: movs r0, 0x4 movs r1, 0 bl sub_80FB9E4 b _080FB9C2 _080FB69A: bl sub_80F9800 ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 bne _080FB758 ldr r5, _080FB704 @ =Rfu ldr r1, _080FB708 @ =0x00000991 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080FB758 ldr r0, _080FB70C @ =gUnknown_3005E10 ldrh r0, [r0, 0x14] bl sub_80FB5A0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080FB722 adds r0, r4, 0 bl sub_80F886C lsls r0, 24 lsrs r0, 24 movs r2, 0x1 mov r12, r2 mov r1, r12 lsls r1, r0 lsls r1, 24 lsrs r1, 24 ldr r7, _080FB710 @ =0x0000099e adds r6, r5, r7 ldrb r2, [r6] cmp r2, 0 bne _080FB714 movs r0, 0x9A lsls r0, 4 adds r3, r5, r0 ldrb r0, [r3] cmp r0, 0 bne _080FB714 subs r7, 0x1 adds r0, r5, r7 strb r1, [r0] eors r1, r4 orrs r1, r2 strb r1, [r6] mov r0, r12 strb r0, [r3] b _080FB722 .align 2, 0 _080FB704: .4byte Rfu _080FB708: .4byte 0x00000991 _080FB70C: .4byte gUnknown_3005E10 _080FB710: .4byte 0x0000099e _080FB714: ldr r0, _080FB744 @ =Rfu ldr r1, _080FB748 @ =0x0000099e adds r0, r1 ldrb r2, [r0] adds r1, r4, 0 orrs r1, r2 strb r1, [r0] _080FB722: ldr r0, _080FB74C @ =gUnknown_3005E10 ldrh r1, [r0, 0x14] cmp r4, r1 beq _080FB772 ldr r2, _080FB744 @ =Rfu ldr r7, _080FB750 @ =0x0000099b adds r3, r2, r7 adds r0, r4, 0 eors r0, r1 ldrb r1, [r3] orrs r0, r1 strb r0, [r3] ldr r0, _080FB754 @ =0x0000099c adds r2, r0 movs r0, 0x2 strb r0, [r2] b _080FB772 .align 2, 0 _080FB744: .4byte Rfu _080FB748: .4byte 0x0000099e _080FB74C: .4byte gUnknown_3005E10 _080FB750: .4byte 0x0000099b _080FB754: .4byte 0x0000099c _080FB758: bl sub_80F9800 ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x54 bne _080FB772 ldr r0, _080FB77C @ =gUnknown_3005E10 ldrb r0, [r0] bl rfu_REQ_disconnect bl rfu_waitREQComplete _080FB772: ldr r0, _080FB77C @ =gUnknown_3005E10 ldrh r0, [r0, 0x14] bl sub_80FB564 b _080FB9C2 .align 2, 0 _080FB77C: .4byte gUnknown_3005E10 _080FB780: bl sub_80F9800 ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 beq _080FB7B6 ldr r4, _080FB7C8 @ =gUnknown_3005E10 ldrb r0, [r4, 0x1] cmp r0, 0x1 bls _080FB7B6 ldrb r0, [r4, 0x14] bl sub_80F886C lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r1, 24 ldrb r0, [r4] eors r1, r0 adds r0, r1, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete _080FB7B6: ldr r1, _080FB7CC @ =Rfu ldrh r0, [r1, 0x4] cmp r0, 0xF beq _080FB7C0 b _080FB9C2 _080FB7C0: movs r0, 0x10 strh r0, [r1, 0x4] b _080FB9C2 .align 2, 0 _080FB7C8: .4byte gUnknown_3005E10 _080FB7CC: .4byte Rfu _080FB7D0: ldr r0, _080FB7DC @ =Rfu ldr r1, _080FB7E0 @ =gUnknown_3005E10 ldrh r1, [r1, 0x14] ldr r2, _080FB7E4 @ =0x00000985 adds r0, r2 b _080FB9C0 .align 2, 0 _080FB7DC: .4byte Rfu _080FB7E0: .4byte gUnknown_3005E10 _080FB7E4: .4byte 0x00000985 _080FB7E8: ldr r0, _080FB7F8 @ =Rfu ldr r1, _080FB7FC @ =gUnknown_3005E10 ldrh r1, [r1, 0x14] ldr r7, _080FB800 @ =0x000008f6 adds r0, r7 ldrb r2, [r0] b _080FB9C0 .align 2, 0 _080FB7F8: .4byte Rfu _080FB7FC: .4byte gUnknown_3005E10 _080FB800: .4byte 0x000008f6 _080FB804: ldr r1, _080FB824 @ =Rfu movs r0, 0x12 strh r0, [r1, 0x4] ldr r0, _080FB828 @ =0x00000987 adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 bhi _080FB830 adds r0, 0x1 strb r0, [r1] ldr r0, _080FB82C @ =sub_80FC028 movs r1, 0x2 bl CreateTask b _080FB9C2 .align 2, 0 _080FB824: .4byte Rfu _080FB828: .4byte 0x00000987 _080FB82C: .4byte sub_80FC028 _080FB830: movs r0, 0x2 movs r1, 0x23 bl sub_80FB9E4 b _080FB9C2 _080FB83A: ldr r4, _080FB860 @ =Rfu movs r0, 0xD strh r0, [r4, 0x4] movs r0, 0x3 movs r1, 0 bl sub_80FB9E4 ldr r1, _080FB864 @ =0x000008f6 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080FB868 @ =0x000008f7 adds r4, r2 movs r0, 0x10 adds r2, r4, 0 movs r3, 0x46 bl rfu_setRecvBuffer b _080FB9C2 .align 2, 0 _080FB860: .4byte Rfu _080FB864: .4byte 0x000008f6 _080FB868: .4byte 0x000008f7 _080FB86C: movs r0, 0x2 movs r1, 0x25 bl sub_80FB9E4 b _080FB9C2 _080FB876: ldr r0, _080FB88C @ =gUnknown_3005E10 ldrb r1, [r0] ldrh r0, [r0, 0x14] ands r1, r0 cmp r1, 0 bne _080FB884 b _080FB9C2 _080FB884: ldr r0, _080FB890 @ =Rfu adds r0, 0xF0 movs r1, 0x1 b _080FB9C0 .align 2, 0 _080FB88C: .4byte gUnknown_3005E10 _080FB890: .4byte Rfu _080FB894: ldr r2, _080FB8B4 @ =Rfu adds r1, r2, 0 adds r1, 0xF0 movs r0, 0x3 strb r0, [r1] ldr r0, _080FB8B8 @ =gRfuLinkStatus ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _080FB8AA b _080FB9C2 _080FB8AA: ldr r7, _080FB8BC @ =0x000008f4 adds r0, r2, r7 ldrb r1, [r0] movs r1, 0x1 b _080FB9C0 .align 2, 0 _080FB8B4: .4byte Rfu _080FB8B8: .4byte gRfuLinkStatus _080FB8BC: .4byte 0x000008f4 _080FB8C0: ldr r0, _080FB900 @ =Rfu adds r0, 0xF0 movs r1, 0x2 strb r1, [r0] _080FB8C8: ldr r2, _080FB900 @ =Rfu adds r1, r2, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0x2 beq _080FB8D8 movs r0, 0x4 strb r0, [r1] _080FB8D8: ldrb r0, [r2, 0xC] cmp r0, 0x1 bne _080FB916 ldr r0, _080FB904 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080FB934 ldr r0, _080FB908 @ =0x0000099a adds r2, r0 ldr r0, _080FB90C @ =gUnknown_3005E10 ldrb r1, [r0, 0x14] ldrb r0, [r2] bics r0, r1 strb r0, [r2] cmp r0, 0 bne _080FB910 adds r0, r4, 0 bl sub_80FB0E8 b _080FB934 .align 2, 0 _080FB900: .4byte Rfu _080FB904: .4byte gReceivedRemoteLinkPlayers _080FB908: .4byte 0x0000099a _080FB90C: .4byte gUnknown_3005E10 _080FB910: bl sub_80FB174 b _080FB934 _080FB916: ldr r1, _080FB964 @ =0x0000099c adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080FB934 ldr r0, _080FB968 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080FB934 adds r0, r4, 0 bl sub_80FB0E8 movs r0, 0 bl sub_80FD760 _080FB934: ldr r0, _080FB96C @ =gRfuLinkStatus ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF bne _080FB95A ldr r0, _080FB970 @ =gUnknown_3005E10 ldrb r0, [r0, 0x7] cmp r0, 0 bne _080FB95A ldr r0, _080FB974 @ =sub_80F8B34 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FB95A ldr r1, _080FB978 @ =Rfu movs r0, 0x11 strh r0, [r1, 0x4] _080FB95A: movs r0, 0x2 adds r1, r4, 0 bl sub_80FB9E4 b _080FB9C2 .align 2, 0 _080FB964: .4byte 0x0000099c _080FB968: .4byte gReceivedRemoteLinkPlayers _080FB96C: .4byte gRfuLinkStatus _080FB970: .4byte gUnknown_3005E10 _080FB974: .4byte sub_80F8B34 _080FB978: .4byte Rfu _080FB97C: ldr r0, _080FB984 @ =Rfu ldr r2, _080FB988 @ =0x0000099b adds r0, r2 b _080FB9BE .align 2, 0 _080FB984: .4byte Rfu _080FB988: .4byte 0x0000099b _080FB98C: movs r0, 0x1 movs r1, 0xF3 bl sub_80FB9E4 movs r0, 0xF3 bl sub_80FB0E8 ldr r0, _080FB9A4 @ =Rfu adds r0, 0xEF movs r1, 0x1 b _080FB9C0 .align 2, 0 _080FB9A4: .4byte Rfu _080FB9A8: adds r0, r4, 0 bl sub_80FB0E8 movs r0, 0x1 adds r1, r4, 0 bl sub_80FB9E4 ldr r0, _080FB9C8 @ =Rfu ldr r7, _080FB9CC @ =0x00000993 adds r0, r7 ldrb r1, [r0] _080FB9BE: movs r1, 0 _080FB9C0: strb r1, [r0] _080FB9C2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB9C8: .4byte Rfu _080FB9CC: .4byte 0x00000993 thumb_func_end sub_80FB5EC thumb_func_start sub_80FB9D0 sub_80FB9D0: @ 80FB9D0 ldr r0, _080FB9DC @ =Rfu ldr r1, _080FB9E0 @ =0x0000099c adds r0, r1 movs r1, 0x2 strb r1, [r0] bx lr .align 2, 0 _080FB9DC: .4byte Rfu _080FB9E0: .4byte 0x0000099c thumb_func_end sub_80FB9D0 thumb_func_start sub_80FB9E4 sub_80FB9E4: @ 80FB9E4 ldr r2, _080FB9F0 @ =Rfu adds r3, r2, 0 adds r3, 0xF1 strb r0, [r3] strh r1, [r2, 0xA] bx lr .align 2, 0 _080FB9F0: .4byte Rfu thumb_func_end sub_80FB9E4 thumb_func_start sub_80FB9F4 sub_80FB9F4: @ 80FB9F4 ldr r0, _080FB9FC @ =Rfu adds r0, 0xF1 ldrb r0, [r0] bx lr .align 2, 0 _080FB9FC: .4byte Rfu thumb_func_end sub_80FB9F4 thumb_func_start sub_80FBA00 sub_80FBA00: @ 80FBA00 push {lr} bl sub_80FB9F4 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x1 bls _080FBA14 movs r0, 0 b _080FBA16 _080FBA14: movs r0, 0x1 _080FBA16: pop {r1} bx r1 thumb_func_end sub_80FBA00 thumb_func_start sub_80FBA1C sub_80FBA1C: @ 80FBA1C ldr r0, _080FBA28 @ =Rfu movs r1, 0x9A lsls r1, 4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080FBA28: .4byte Rfu thumb_func_end sub_80FBA1C thumb_func_start Rfu_IsMaster Rfu_IsMaster: @ 80FBA2C ldr r0, _080FBA34 @ =Rfu ldrb r0, [r0, 0xC] bx lr .align 2, 0 _080FBA34: .4byte Rfu thumb_func_end Rfu_IsMaster thumb_func_start RFUVSync RFUVSync: @ 80FBA38 push {lr} bl rfu_syncVBlank_ pop {r0} bx r0 thumb_func_end RFUVSync thumb_func_start sub_80FBA44 sub_80FBA44: @ 80FBA44 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _080FBA5C @ =gRecvCmds ldr r2, _080FBA60 @ =0x05000014 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080FBA5C: .4byte gRecvCmds _080FBA60: .4byte 0x05000014 thumb_func_end sub_80FBA44 thumb_func_start sub_80FBA64 sub_80FBA64: @ 80FBA64 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80FBA64 thumb_func_start sub_80FBA78 sub_80FBA78: @ 80FBA78 push {r4,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks bl ResetPaletteFade ldr r0, _080FBAF4 @ =sub_80FBA64 bl SetVBlankCallback bl IsWirelessAdapterConnected lsls r0, 24 cmp r0, 0 beq _080FBAEC ldr r1, _080FBAF8 @ =gLinkType ldr r2, _080FBAFC @ =0x00001111 adds r0, r2, 0 strh r0, [r1] bl sub_800B1F4 bl OpenLink ldr r0, _080FBB00 @ =gMain ldrh r0, [r0, 0x24] bl SeedRng movs r4, 0 _080FBAB4: bl Random ldr r1, _080FBB04 @ =gSaveBlock2Ptr ldr r1, [r1] adds r1, 0xA adds r1, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _080FBAB4 movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_80FBB20 ldr r0, _080FBB08 @ =sub_80FBB74 bl SetMainCallback2 _080FBAEC: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBAF4: .4byte sub_80FBA64 _080FBAF8: .4byte gLinkType _080FBAFC: .4byte 0x00001111 _080FBB00: .4byte gMain _080FBB04: .4byte gSaveBlock2Ptr _080FBB08: .4byte sub_80FBB74 thumb_func_end sub_80FBA78 thumb_func_start sub_80FBB0C sub_80FBB0C: @ 80FBB0C push {lr} ldr r0, _080FBB1C @ =sub_80F8B34 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080FBB1C: .4byte sub_80F8B34 thumb_func_end sub_80FBB0C thumb_func_start sub_80FBB20 sub_80FBB20: @ 80FBB20 push {r4,lr} ldr r4, _080FBB44 @ =nullsub_89 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080FBB3E adds r0, r4, 0 movs r1, 0 bl CreateTask ldr r1, _080FBB48 @ =Rfu adds r1, 0x66 strb r0, [r1] _080FBB3E: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBB44: .4byte nullsub_89 _080FBB48: .4byte Rfu thumb_func_end sub_80FBB20 thumb_func_start sub_80FBB4C sub_80FBB4C: @ 80FBB4C push {lr} ldr r0, _080FBB6C @ =nullsub_89 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FBB66 ldr r0, _080FBB70 @ =Rfu adds r0, 0x66 ldrb r0, [r0] bl DestroyTask _080FBB66: pop {r0} bx r0 .align 2, 0 _080FBB6C: .4byte nullsub_89 _080FBB70: .4byte Rfu thumb_func_end sub_80FBB4C thumb_func_start sub_80FBB74 sub_80FBB74: @ 80FBB74 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80FBB74 thumb_func_start sub_80FBB8C sub_80FBB8C: @ 80FBB8C push {r4-r6,lr} adds r4, r0, 0 ldr r1, _080FBBC4 @ =Rfu movs r0, 0x1 strb r0, [r1, 0xC] bl sub_80FAF1C ldr r0, _080FBBC8 @ =sub_80FB184 movs r1, 0 bl sub_80FD430 ldr r2, _080FBBCC @ =gUnknown_203ABF0 adds r1, r2, 0 ldr r0, _080FBBD0 @ =gUnknown_843EBB4 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldr r0, _080FBBD4 @ =gUnknown_843EBCC subs r4, 0x1 adds r4, r0 ldrb r0, [r4] strh r0, [r2, 0x2] bl sub_80F8E74 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBBC4: .4byte Rfu _080FBBC8: .4byte sub_80FB184 _080FBBCC: .4byte gUnknown_203ABF0 _080FBBD0: .4byte gUnknown_843EBB4 _080FBBD4: .4byte gUnknown_843EBCC thumb_func_end sub_80FBB8C thumb_func_start sub_80FBBD8 sub_80FBBD8: @ 80FBBD8 push {lr} ldr r1, _080FBBF4 @ =Rfu movs r0, 0 strb r0, [r1, 0xC] bl sub_80FAF1C ldr r0, _080FBBF8 @ =sub_80FB37C ldr r1, _080FBBFC @ =sub_80F8D20 bl sub_80FD430 bl sub_80F8F10 pop {r0} bx r0 .align 2, 0 _080FBBF4: .4byte Rfu _080FBBF8: .4byte sub_80FB37C _080FBBFC: .4byte sub_80F8D20 thumb_func_end sub_80FBBD8 thumb_func_start sub_80FBC00 sub_80FBC00: @ 80FBC00 push {r4-r7,lr} ldr r0, _080FBC4C @ =gUnknown_203ADFA ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080FBC46 ldr r4, _080FBC50 @ =Rfu movs r5, 0 movs r0, 0x2 strb r0, [r4, 0xC] bl sub_80FAF1C ldr r0, _080FBC54 @ =sub_80FB5EC movs r1, 0 bl sub_80FD430 ldr r2, _080FBC58 @ =gUnknown_203ABF0 adds r1, r2, 0 ldr r0, _080FBC5C @ =gUnknown_843EBB4 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} strb r5, [r2, 0x11] movs r0, 0x96 lsls r0, 2 strh r0, [r2, 0x12] ldr r0, _080FBC60 @ =sub_80F8B34 movs r1, 0x1 bl CreateTask adds r4, 0x67 strb r0, [r4] _080FBC46: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FBC4C: .4byte gUnknown_203ADFA _080FBC50: .4byte Rfu _080FBC54: .4byte sub_80FB5EC _080FBC58: .4byte gUnknown_203ABF0 _080FBC5C: .4byte gUnknown_843EBB4 _080FBC60: .4byte sub_80F8B34 thumb_func_end sub_80FBC00 thumb_func_start sub_80FBC64 sub_80FBC64: @ 80FBC64 ldrb r1, [r0, 0x1] lsls r1, 8 ldrb r0, [r0] orrs r0, r1 bx lr thumb_func_end sub_80FBC64 thumb_func_start sub_80FBC70 sub_80FBC70: @ 80FBC70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r0, [sp] lsls r1, 16 lsrs r1, 16 mov r10, r1 movs r0, 0xFF mov r9, r0 movs r7, 0 ldr r1, _080FBCF4 @ =gRfuLinkStatus mov r8, r1 _080FBC8E: lsls r4, r7, 5 adds r5, r4, 0 adds r5, 0x14 mov r1, r8 ldr r0, [r1] adds r0, r5 adds r0, 0x8 bl sub_80FBC64 lsls r0, 16 lsrs r6, r0, 16 mov r1, r8 ldr r0, [r1] adds r0, r4 ldrh r0, [r0, 0x18] bl sub_80FA44C cmp r0, 0 beq _080FBCD8 mov r0, r8 ldr r1, [r0] adds r1, r5 adds r1, 0x15 ldr r0, [sp] bl StringCompare cmp r0, 0 bne _080FBCD8 cmp r10, r6 bne _080FBCD8 mov r9, r7 mov r1, r8 ldr r0, [r1] adds r0, r4 ldrb r0, [r0, 0x16] cmp r0, 0xFF bne _080FBCE2 _080FBCD8: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080FBC8E _080FBCE2: mov r0, r9 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080FBCF4: .4byte gRfuLinkStatus thumb_func_end sub_80FBC70 thumb_func_start sub_80FBCF8 sub_80FBCF8: @ 80FBCF8 push {r4-r6,lr} adds r6, r0, 0 lsls r0, r6, 24 lsrs r0, 24 bl rfu_REQ_disconnect bl rfu_waitREQComplete ldr r4, _080FBD3C @ =Rfu ldr r0, _080FBD40 @ =0x0000099a adds r5, r4, r0 ldrb r0, [r5] bics r0, r6 strb r0, [r5] ldr r1, _080FBD44 @ =0x00000992 adds r6, r4, r1 ldrb r1, [r6] movs r0, 0x1 bl rfu_clearSlot ldrb r0, [r5] ldr r1, _080FBD48 @ =0x0000093f adds r4, r1 adds r1, r4, 0 movs r2, 0x46 bl rfu_UNI_setSendData ldrb r0, [r5] bl sub_80F886C strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBD3C: .4byte Rfu _080FBD40: .4byte 0x0000099a _080FBD44: .4byte 0x00000992 _080FBD48: .4byte 0x0000093f thumb_func_end sub_80FBCF8 thumb_func_start sub_80FBD4C sub_80FBD4C: @ 80FBD4C push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80FBC70 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _080FBD66 movs r0, 0x1 lsls r0, r1 bl sub_80FBCF8 _080FBD66: pop {r0} bx r0 thumb_func_end sub_80FBD4C thumb_func_start sub_80FBD6C sub_80FBD6C: @ 80FBD6C push {r4-r6,lr} adds r4, r0, 0 cmp r4, 0 beq _080FBDAC movs r3, 0 movs r2, 0 ldr r5, _080FBDB4 @ =Rfu+0x996 adds r6, r5, 0x4 _080FBD7C: adds r0, r2, r5 ldrb r0, [r0] cmp r0, r4 bne _080FBD9A ldrb r0, [r6] asrs r0, r2 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080FBD9A adds r0, r1, 0 lsls r0, r2 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 _080FBD9A: adds r2, 0x1 cmp r2, 0x3 ble _080FBD7C cmp r3, 0 beq _080FBDAC adds r0, r3, 0 movs r1, 0x2 bl sub_80FBE20 _080FBDAC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBDB4: .4byte Rfu+0x996 thumb_func_end sub_80FBD6C thumb_func_start sub_80FBDB8 sub_80FBDB8: @ 80FBDB8 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, _080FBE10 @ =gSendCmd ldrh r0, [r6] cmp r0, 0 bne _080FBE08 ldr r5, _080FBE14 @ =Rfu movs r1, 0x9A lsls r1, 4 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080FBE08 movs r0, 0xED lsls r0, 8 bl sub_80F9D04 ldr r1, _080FBE18 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] strh r1, [r6, 0x2] ldrh r1, [r0, 0xA] strh r1, [r6, 0x4] ldr r1, _080FBE1C @ =gUnknown_843EC41 movs r2, 0x8 ldrsh r0, [r0, r2] adds r0, r1 ldrb r1, [r5, 0xD] ldrb r0, [r0] subs r1, r0 strb r1, [r5, 0xD] ldrb r0, [r5, 0xD] strh r0, [r6, 0x6] adds r0, r4, 0 bl DestroyTask _080FBE08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBE10: .4byte gSendCmd _080FBE14: .4byte Rfu _080FBE18: .4byte gTasks _080FBE1C: .4byte gUnknown_843EC41 thumb_func_end sub_80FBDB8 thumb_func_start sub_80FBE20 sub_80FBE20: @ 80FBE20 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r5, _080FBE50 @ =sub_80FBDB8 adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF bne _080FBE58 adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080FBE54 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] b _080FBE68 .align 2, 0 _080FBE50: .4byte sub_80FBDB8 _080FBE54: .4byte gTasks _080FBE58: ldr r0, _080FBE7C @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] orrs r4, r0 strh r4, [r1, 0x8] _080FBE68: ldr r1, _080FBE7C @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r6, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBE7C: .4byte gTasks thumb_func_end sub_80FBE20 thumb_func_start sub_80FBE80 sub_80FBE80: @ 80FBE80 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080FBED8 @ =gTasks+0x8 adds r4, r0, r1 bl sub_80F8EA4 lsls r0, 24 cmp r0, 0 beq _080FBF30 adds r0, r4, 0 adds r0, 0x10 bl sub_80FBC64 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_80FBC70 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080FBF18 ldr r0, _080FBEDC @ =gRfuLinkStatus ldr r0, [r0] lsls r1, r2, 5 adds r0, r1 ldrb r0, [r0, 0x16] cmp r0, 0xFF beq _080FBEE8 ldr r0, _080FBEE0 @ =Rfu ldr r1, _080FBEE4 @ =0x000008f5 adds r0, r1 strb r2, [r0] bl sub_80F8ECC cmp r0, 0 beq _080FBF36 b _080FBF10 .align 2, 0 _080FBED8: .4byte gTasks+0x8 _080FBEDC: .4byte gRfuLinkStatus _080FBEE0: .4byte Rfu _080FBEE4: .4byte 0x000008f5 _080FBEE8: bl sub_80F9800 ldrb r1, [r0, 0xA] movs r5, 0x7F adds r0, r5, 0 ands r0, r1 cmp r0, 0x15 beq _080FBF30 bl sub_80F9800 ldrb r1, [r0, 0xA] adds r0, r5, 0 ands r0, r1 cmp r0, 0x16 beq _080FBF30 movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_80FB9E4 _080FBF10: adds r0, r6, 0 bl DestroyTask b _080FBF36 _080FBF18: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] ldr r0, _080FBF28 @ =Rfu ldr r1, _080FBF2C @ =0x000008f5 adds r0, r1 strb r2, [r0] b _080FBF36 .align 2, 0 _080FBF28: .4byte Rfu _080FBF2C: .4byte 0x000008f5 _080FBF30: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] _080FBF36: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0xF0 ble _080FBF4E movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_80FB9E4 adds r0, r6, 0 bl DestroyTask _080FBF4E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80FBE80 thumb_func_start sub_80FBF54 sub_80FBF54: @ 80FBF54 push {r4-r6,lr} adds r6, r0, 0 lsls r5, r1, 16 lsrs r5, 16 ldr r0, _080FBF8C @ =Rfu adds r0, 0xF1 movs r1, 0 strb r1, [r0] ldr r0, _080FBF90 @ =sub_80FBE80 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080FBF94 @ =gTasks+0x8 adds r4, r0 adds r0, r4, 0 adds r1, r6, 0 bl StringCopy strh r5, [r4, 0x10] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBF8C: .4byte Rfu _080FBF90: .4byte sub_80FBE80 _080FBF94: .4byte gTasks+0x8 thumb_func_end sub_80FBF54 thumb_func_start sub_80FBF98 sub_80FBF98: @ 80FBF98 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 16 lsrs r5, r0, 16 bl sub_80F9800 ldrb r1, [r0, 0xA] movs r2, 0x7F adds r0, r2, 0 ands r0, r1 cmp r0, 0x45 bne _080FBFBE ldrb r1, [r4, 0xA] adds r0, r2, 0 ands r0, r1 cmp r0, 0x45 beq _080FC01E _080FBFBA: movs r0, 0x1 b _080FC020 _080FBFBE: ldrb r1, [r4, 0xA] adds r0, r2, 0 ands r0, r1 cmp r0, 0x40 bne _080FBFBA cmp r5, 0x44 bne _080FC01E ldr r5, _080FBFEC @ =Rfu+0x10a ldrh r0, [r5, 0x8] ldr r3, _080FBFF0 @ =0x000003ff adds r2, r3, 0 ands r2, r0 movs r0, 0xCE lsls r0, 1 cmp r2, r0 bne _080FBFF4 ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, r2 beq _080FC01E b _080FBFBA .align 2, 0 _080FBFEC: .4byte Rfu+0x10a _080FBFF0: .4byte 0x000003ff _080FBFF4: ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, r2 bne _080FBFBA ldrb r2, [r4, 0xB] movs r0, 0xFE ldrb r3, [r5, 0xB] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _080FBFBA ldrb r2, [r4, 0x9] movs r0, 0xFC ldrb r3, [r5, 0x9] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _080FBFBA _080FC01E: movs r0, 0 _080FC020: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FBF98 thumb_func_start sub_80FC028 sub_80FC028: @ 80FC028 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 mov r8, r5 ldr r6, _080FC0E0 @ =Rfu adds r0, r6, 0 adds r0, 0xF1 ldrb r0, [r0] cmp r0, 0x4 bne _080FC046 adds r0, r5, 0 bl DestroyTask _080FC046: ldr r1, _080FC0E4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 movs r1, 0x96 lsls r1, 17 cmp r0, r1 ble _080FC070 movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_80FB9E4 adds r0, r5, 0 bl DestroyTask _080FC070: ldr r1, _080FC0E8 @ =0x00000985 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _080FC108 ldr r0, _080FC0EC @ =gUnknown_3005E10 ldrb r0, [r0, 0x6] cmp r0, 0 bne _080FC108 movs r2, 0x86 lsls r2, 1 adds r0, r6, r2 bl sub_80FBC64 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r2, _080FC0F0 @ =0x00000119 adds r0, r6, r2 bl sub_80FBC70 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080FC108 movs r1, 0xA ldrsh r0, [r4, r1] ldr r7, _080FC0F4 @ =gRfuLinkStatus lsls r4, r2, 5 adds r2, r4, 0 adds r2, 0x14 ldr r1, [r7] adds r1, r2 adds r1, 0x6 bl sub_80FBF98 cmp r0, 0 bne _080FC0F8 ldr r0, [r7] adds r1, r0, r4 ldrb r0, [r1, 0x16] cmp r0, 0xFF beq _080FC108 ldrh r0, [r1, 0x14] movs r1, 0x5A bl sub_80FD610 lsls r0, 24 cmp r0, 0 bne _080FC108 movs r0, 0xA strh r0, [r6, 0x4] adds r0, r5, 0 bl DestroyTask b _080FC108 .align 2, 0 _080FC0E0: .4byte Rfu _080FC0E4: .4byte gTasks _080FC0E8: .4byte 0x00000985 _080FC0EC: .4byte gUnknown_3005E10 _080FC0F0: .4byte 0x00000119 _080FC0F4: .4byte gRfuLinkStatus _080FC0F8: movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_80FB9E4 mov r0, r8 bl DestroyTask _080FC108: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FC028 thumb_func_start sub_80FC114 sub_80FC114: @ 80FC114 push {r4-r7,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 ldr r6, _080FC184 @ =Rfu ldr r1, _080FC188 @ =0x00000987 adds r0, r6, r1 movs r7, 0 strb r7, [r0] adds r0, r6, 0 adds r0, 0xF1 strb r7, [r0] ldr r1, _080FC18C @ =0x00000119 adds r0, r6, r1 adds r1, r3, 0 bl StringCopy movs r1, 0x85 lsls r1, 1 adds r0, r6, r1 adds r1, r5, 0 movs r2, 0xD bl memcpy bl sub_80FEB3C ldr r0, _080FC190 @ =sub_80FC028 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r5, _080FC194 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 strh r4, [r1, 0xA] ldr r0, _080FC198 @ =sub_80F8B34 bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r4, 0x45 bne _080FC19C cmp r1, 0xFF beq _080FC1AA lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0x16] b _080FC1AA .align 2, 0 _080FC184: .4byte Rfu _080FC188: .4byte 0x00000987 _080FC18C: .4byte 0x00000119 _080FC190: .4byte sub_80FC028 _080FC194: .4byte gTasks _080FC198: .4byte sub_80F8B34 _080FC19C: cmp r2, 0xFF beq _080FC1AA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 strh r7, [r0, 0x16] _080FC1AA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FC114 thumb_func_start sub_80FC1B0 sub_80FC1B0: @ 80FC1B0 push {lr} ldr r0, _080FC1C0 @ =Rfu adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0x1 beq _080FC1C4 movs r0, 0 b _080FC1C6 .align 2, 0 _080FC1C0: .4byte Rfu _080FC1C4: movs r0, 0x1 _080FC1C6: pop {r1} bx r1 thumb_func_end sub_80FC1B0 thumb_func_start sub_80FC1CC sub_80FC1CC: @ 80FC1CC push {r4,lr} movs r1, 0 ldr r0, _080FC1F0 @ =gUnknown_3005E10 ldrb r2, [r0] ldr r4, _080FC1F4 @ =Rfu+0x989 movs r3, 0x1 _080FC1D8: adds r0, r2, 0 asrs r0, r1 ands r0, r3 cmp r0, 0 beq _080FC1F8 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _080FC1F8 movs r0, 0 b _080FC200 .align 2, 0 _080FC1F0: .4byte gUnknown_3005E10 _080FC1F4: .4byte Rfu+0x989 _080FC1F8: adds r1, 0x1 cmp r1, 0x3 ble _080FC1D8 movs r0, 0x1 _080FC200: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FC1CC thumb_func_start sub_80FC208 sub_80FC208: @ 80FC208 push {r4,lr} movs r4, 0 _080FC20C: lsls r2, r4, 24 lsrs r2, 24 ldr r0, _080FC224 @ =gUnknown_843EE28 movs r1, 0 bl nullsub_87 adds r4, 0x1 cmp r4, 0x13 ble _080FC20C pop {r4} pop {r0} bx r0 .align 2, 0 _080FC224: .4byte gUnknown_843EE28 thumb_func_end sub_80FC208 thumb_func_start sub_80FC228 sub_80FC228: @ 80FC228 push {r4-r7,lr} mov r7, r8 push {r7} bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 movs r1, 0x1C movs r2, 0x13 movs r3, 0x2 bl nullsub_88 ldr r4, _080FC2F8 @ =gRfuLinkStatus ldr r0, [r4] ldrb r0, [r0, 0x2] movs r1, 0x14 movs r2, 0x1 movs r3, 0x1 bl nullsub_88 ldr r0, [r4] ldrb r0, [r0, 0x3] movs r1, 0x17 movs r2, 0x1 movs r3, 0x1 bl nullsub_88 ldr r0, _080FC2FC @ =Rfu ldrb r0, [r0, 0xC] cmp r0, 0x1 bne _080FC304 movs r6, 0 adds r7, r4, 0 movs r5, 0x14 _080FC26C: ldr r2, [r7] ldrb r0, [r2, 0x7] asrs r0, r6 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080FC2AA lsls r0, r6, 5 adds r0, r2, r0 ldrh r0, [r0, 0x18] adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 adds r2, r4, 0 movs r3, 0x4 bl nullsub_88 ldr r0, [r7] adds r0, r5 adds r0, 0x6 movs r1, 0x6 adds r2, r4, 0 bl nullsub_87 ldr r0, [r7] adds r0, r5 adds r0, 0x15 movs r1, 0x16 adds r2, r4, 0 bl nullsub_87 _080FC2AA: adds r5, 0x20 adds r6, 0x1 cmp r6, 0x3 ble _080FC26C movs r6, 0 ldr r0, _080FC2FC @ =Rfu mov r8, r0 _080FC2B8: movs r5, 0 adds r7, r6, 0x1 lsls r0, r6, 3 adds r2, r6, 0 adds r2, 0xB subs r0, r6 lsls r0, 1 mov r1, r8 adds r1, 0x14 adds r4, r0, r1 lsls r6, r2, 24 _080FC2CE: ldrb r0, [r4] lsls r1, r5, 25 lsrs r1, 24 lsrs r2, r6, 24 movs r3, 0x2 bl nullsub_88 adds r4, 0x1 adds r5, 0x1 cmp r5, 0xD ble _080FC2CE adds r6, r7, 0 cmp r6, 0x3 ble _080FC2B8 ldr r0, _080FC300 @ =gUnknown_843EE64 "NOWSLOT" movs r1, 0x1 movs r2, 0xF bl nullsub_87 b _080FC436 .align 2, 0 _080FC2F8: .4byte gRfuLinkStatus _080FC2FC: .4byte Rfu _080FC300: .4byte gUnknown_843EE64 _080FC304: ldr r1, [r4] ldrb r0, [r1, 0x2] cmp r0, 0 beq _080FC3A0 ldrb r0, [r1, 0x7] cmp r0, 0 beq _080FC3A0 movs r6, 0 movs r5, 0xC0 lsls r5, 18 _080FC318: lsrs r4, r5, 24 movs r0, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_88 ldr r0, _080FC38C @ =gUnknown_843EE47 movs r1, 0x6 adds r2, r4, 0 bl nullsub_87 ldr r0, _080FC390 @ =gUnknown_843EE57 movs r1, 0x16 adds r2, r4, 0 bl nullsub_87 movs r1, 0x80 lsls r1, 17 adds r5, r1 adds r6, 0x1 cmp r6, 0x3 ble _080FC318 ldr r5, _080FC394 @ =gRfuLinkStatus ldr r1, [r5] ldr r4, _080FC398 @ =Rfu ldr r0, _080FC39C @ =0x000008f6 adds r4, r0 ldrb r0, [r4] lsls r0, 5 adds r1, r0 ldrh r0, [r1, 0x18] movs r1, 0x1 movs r2, 0x3 movs r3, 0x4 bl nullsub_88 ldrb r1, [r4] lsls r1, 5 adds r1, 0x14 ldr r0, [r5] adds r0, r1 adds r0, 0x6 movs r1, 0x6 movs r2, 0x3 bl nullsub_87 ldrb r1, [r4] lsls r1, 5 adds r1, 0x14 ldr r0, [r5] adds r0, r1 adds r0, 0x15 movs r1, 0x16 movs r2, 0x3 bl nullsub_87 b _080FC436 .align 2, 0 _080FC38C: .4byte gUnknown_843EE47 _080FC390: .4byte gUnknown_843EE57 _080FC394: .4byte gRfuLinkStatus _080FC398: .4byte Rfu _080FC39C: .4byte 0x000008f6 _080FC3A0: movs r6, 0 ldr r1, _080FC440 @ =gRfuLinkStatus ldr r0, [r1] ldrb r0, [r0, 0x8] cmp r6, r0 bge _080FC3FC adds r7, r1, 0 movs r1, 0x14 mov r8, r1 _080FC3B2: ldr r0, [r7] lsls r5, r6, 5 adds r1, r0, r5 ldrb r0, [r1, 0x16] cmp r0, 0xFF beq _080FC3EE ldrh r0, [r1, 0x18] adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_88 ldr r0, [r7] adds r0, r5 ldrh r0, [r0, 0x14] movs r1, 0x6 adds r2, r4, 0 movs r3, 0x4 bl nullsub_88 ldr r0, [r7] add r0, r8 adds r0, 0x15 movs r1, 0x16 adds r2, r4, 0 bl nullsub_87 _080FC3EE: movs r0, 0x20 add r8, r0 adds r6, 0x1 ldr r0, [r7] ldrb r0, [r0, 0x8] cmp r6, r0 blt _080FC3B2 _080FC3FC: cmp r6, 0x3 bgt _080FC436 lsls r0, r6, 24 movs r1, 0xC0 lsls r1, 18 adds r5, r0, r1 _080FC408: lsrs r4, r5, 24 movs r0, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_88 ldr r0, _080FC444 @ =gUnknown_843EE47 movs r1, 0x6 adds r2, r4, 0 bl nullsub_87 ldr r0, _080FC448 @ =gUnknown_843EE57 movs r1, 0x16 adds r2, r4, 0 bl nullsub_87 movs r0, 0x80 lsls r0, 17 adds r5, r0 adds r6, 0x1 cmp r6, 0x3 ble _080FC408 _080FC436: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC440: .4byte gRfuLinkStatus _080FC444: .4byte gUnknown_843EE47 _080FC448: .4byte gUnknown_843EE57 thumb_func_end sub_80FC228 thumb_func_start sub_80FC44C sub_80FC44C: @ 80FC44C ldr r0, _080FC458 @ =Rfu ldr r1, _080FC45C @ =0x000008d2 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080FC458: .4byte Rfu _080FC45C: .4byte 0x000008d2 thumb_func_end sub_80FC44C thumb_func_start GetRfuRecvQueueLength GetRfuRecvQueueLength: @ 80FC460 ldr r0, _080FC46C @ =Rfu ldr r1, _080FC470 @ =0x0000069e adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080FC46C: .4byte Rfu _080FC470: .4byte 0x0000069e thumb_func_end GetRfuRecvQueueLength thumb_func_start nullsub_89 nullsub_89: @ 80FC474 bx lr thumb_func_end nullsub_89 .align 2, 0 @ Don't pad with nop.