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