sub_800F86C

This commit is contained in:
PikalaxALT
2018-01-19 21:50:30 -05:00
parent c383d490ad
commit 1c15b896a8
3 changed files with 115 additions and 466 deletions

View File

@@ -5,468 +5,6 @@
.text
thumb_func_start sub_800F86C
sub_800F86C: @ 800F86C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
mov r8, r0
_0800F87A:
mov r1, r8
lsls r0, r1, 4
ldr r2, =gRecvCmds
adds r1, r0, r2
ldrh r7, [r1]
movs r3, 0xFF
lsls r3, 8
adds r1, r3, 0
ands r1, r7
movs r2, 0x88
lsls r2, 8
adds r5, r0, 0
cmp r1, r2
beq _0800F960
cmp r1, r2
bgt _0800F8D6
movs r0, 0xCC
lsls r0, 7
cmp r1, r0
bne _0800F8A4
b _0800FAE0
_0800F8A4:
cmp r1, r0
bgt _0800F8C4
movs r0, 0x88
lsls r0, 7
cmp r1, r0
bne _0800F8B2
b _0800FBF4
_0800F8B2:
movs r0, 0xBE
lsls r0, 7
cmp r1, r0
bne _0800F8BC
b _0800FAD0
_0800F8BC:
b _0800FC04
.pool
_0800F8C4:
movs r0, 0xEE
lsls r0, 7
cmp r1, r0
beq _0800F920
movs r0, 0xF0
lsls r0, 7
cmp r1, r0
beq _0800F90E
b _0800FC04
_0800F8D6:
movs r0, 0xBE
lsls r0, 8
cmp r1, r0
bne _0800F8E0
b _0800FBF4
_0800F8E0:
cmp r1, r0
bgt _0800F8F8
movs r0, 0x89
lsls r0, 8
cmp r1, r0
beq _0800F9C8
movs r0, 0xA1
lsls r0, 8
cmp r1, r0
bne _0800F8F6
b _0800FAAC
_0800F8F6:
b _0800FC04
_0800F8F8:
movs r0, 0xED
lsls r0, 8
cmp r1, r0
bne _0800F902
b _0800FB10
_0800F902:
movs r0, 0xEE
lsls r0, 8
cmp r1, r0
bne _0800F90C
b _0800FBB0
_0800F90C:
b _0800FC04
_0800F90E:
ldr r4, =gUnknown_03005000
ldrb r0, [r4, 0xC]
cmp r0, 0
bne _0800F920
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _0800F920
b _0800FC50
_0800F920:
ldr r0, =gUnknown_03007890
ldr r0, [r0]
ldrb r0, [r0]
mov r6, r8
adds r6, 0x1
cmp r0, 0
beq _0800F930
b _0800FC08
_0800F930:
ldr r1, =gRecvCmds+0x2
adds r0, r5, r1
ldrh r0, [r0]
ldr r2, =gUnknown_03005000
strb r0, [r2, 0xD]
ldr r3, =gRecvCmds+0x4
adds r0, r5, r3
bl sub_800F74C
ldr r4, =gUnknown_03005000+0xCCE
strb r0, [r4]
b _0800FC08
.pool
_0800F960:
ldr r0, =gUnknown_03005000
mov r9, r0
mov r1, r8
lsls r0, r1, 2
add r0, r8
lsls r7, r0, 2
mov r2, r9
adds r3, r7, r2
movs r4, 0x92
adds r4, r3
mov r12, r4
ldrb r4, [r4]
mov r6, r8
adds r6, 0x1
cmp r4, 0
beq _0800F982
b _0800FC08
_0800F982:
adds r0, r3, 0
adds r0, 0x80
movs r2, 0
strh r4, [r0]
ldr r1, =gRecvCmds+0x2
adds r0, r5, r1
ldrh r0, [r0]
adds r1, r3, 0
adds r1, 0x82
strh r0, [r1]
ldr r1, =gRecvCmds+0x4
adds r0, r5, r1
ldrh r1, [r0]
adds r0, r3, 0
adds r0, 0x91
strb r1, [r0]
mov r0, r9
adds r0, 0x88
adds r0, r7, r0
str r4, [r0]
movs r0, 0x1
mov r3, r12
strb r0, [r3]
mov r0, r9
adds r0, 0x5C
add r0, r8
strb r2, [r0]
b _0800FC08
.pool
_0800F9C8:
ldr r4, =gUnknown_03005000
mov r9, r4
mov r0, r8
lsls r1, r0, 2
adds r0, r1, r0
lsls r4, r0, 2
mov r3, r9
adds r2, r4, r3
adds r0, r2, 0
adds r0, 0x92
ldrb r3, [r0]
mov r10, r1
mov r6, r8
adds r6, 0x1
cmp r3, 0x1
beq _0800F9EA
b _0800FC08
_0800F9EA:
movs r0, 0xFF
ands r0, r7
adds r2, 0x80
strh r0, [r2]
mov r1, r9
adds r1, 0x88
adds r1, r4, r1
lsls r3, r0
ldr r0, [r1]
orrs r0, r3
str r0, [r1]
movs r4, 0
ldr r0, =gBlockRecvBuffer
mov r9, r0
mov r12, r2
mov r1, r8
lsls r7, r1, 8
adds r3, r5, 0
_0800FA0E:
mov r2, r12
ldrh r0, [r2]
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
adds r1, r4
lsls r1, 1
adds r1, r7
add r1, r9
adds r2, r4, 0x1
lsls r0, r2, 1
adds r0, r3
ldr r4, =gRecvCmds
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
lsls r2, 16
lsrs r4, r2, 16
cmp r4, 0x5
bls _0800FA0E
ldr r4, =gUnknown_03005000
mov r0, r10
add r0, r8
lsls r0, 2
adds r1, r4, 0
adds r1, 0x88
adds r1, r0, r1
adds r2, r0, r4
adds r0, r2, 0
adds r0, 0x82
ldrh r0, [r0]
lsls r0, 2
ldr r3, =gUnknown_082ED628
adds r0, r3
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _0800FA5C
b _0800FC08
_0800FA5C:
adds r1, r2, 0
adds r1, 0x92
movs r0, 0x2
strb r0, [r1]
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
bl sub_800F6FC
bl sub_800F7DC
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
beq _0800FA7E
b _0800FC08
_0800FA7E:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0800FA88
b _0800FC08
_0800FA88:
ldrb r0, [r4, 0xC]
cmp r0, 0
beq _0800FA90
b _0800FC08
_0800FA90:
ldr r0, =gBlockRecvBuffer
bl sub_8010A70
b _0800FC08
.pool
_0800FAAC:
ldr r2, =gUnknown_082ED6B8
ldr r3, =gRecvCmds+0x2
adds r0, r5, r3
ldrh r1, [r0]
lsls r1, 3
adds r0, r1, r2
ldr r0, [r0]
adds r2, 0x4
adds r1, r2
ldrh r1, [r1]
bl sub_800FE84
b _0800FC04
.pool
_0800FAD0:
ldr r1, =gUnknown_03005000+0xE4
add r1, r8
movs r0, 0x1
strb r0, [r1]
b _0800FC04
.pool
_0800FAE0:
ldr r2, =gUnknown_03005000
movs r4, 0x80
lsls r4, 1
adds r0, r2, r4
ldr r3, =gRecvCmds+0x2
adds r1, r5, r3
ldrh r0, [r0]
mov r6, r8
adds r6, 0x1
ldrh r1, [r1]
cmp r0, r1
beq _0800FAFA
b _0800FC08
_0800FAFA:
adds r0, r2, 0
adds r0, 0xE9
add r0, r8
movs r1, 0x1
strb r1, [r0]
b _0800FC08
.pool
_0800FB10:
ldr r7, =gUnknown_03005000
ldrb r2, [r7, 0xC]
cmp r2, 0
bne _0800FB78
ldr r3, =gReceivedRemoteLinkPlayers
ldrb r0, [r3]
mov r6, r8
adds r6, 0x1
cmp r0, 0
beq _0800FC08
ldr r0, =gRecvCmds+0x2
adds r4, r5, r0
ldrh r1, [r4]
ldr r0, =gUnknown_03007890
ldr r0, [r0]
ldrb r0, [r0, 0x2]
ands r1, r0
cmp r1, 0
beq _0800FB48
strb r2, [r3]
bl sub_800D630
ldr r1, =gRecvCmds+0x4
adds r0, r5, r1
ldrh r1, [r0]
ldr r2, =0x00000ce4
adds r0, r7, r2
strb r1, [r0]
_0800FB48:
ldr r0, =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
strb r0, [r7, 0xD]
ldrh r0, [r4]
bl sub_80109E8
b _0800FC08
.pool
_0800FB78:
movs r0, 0xEE
lsls r0, 8
bl sub_800FD14
ldr r1, =gSendCmd
ldr r3, =gRecvCmds+0x2
adds r0, r5, r3
ldrh r0, [r0]
strh r0, [r1, 0x2]
ldr r4, =gRecvCmds+0x4
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r1, 0x4]
ldr r0, =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
strh r0, [r1, 0x6]
b _0800FC04
.pool
_0800FBB0:
ldr r4, =gUnknown_03005000
ldrb r0, [r4, 0xC]
mov r6, r8
adds r6, 0x1
cmp r0, 0x1
bne _0800FC44
ldr r0, =0x00000ce3
adds r2, r4, r0
ldr r1, =gRecvCmds+0x2
adds r3, r5, r1
ldrb r1, [r3]
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
ldr r2, =gRecvCmds+0x4
adds r0, r5, r2
ldrh r1, [r0]
ldr r2, =0x00000ce4
adds r0, r4, r2
strb r1, [r0]
ldrh r0, [r3]
bl sub_80109E8
b _0800FC08
.pool
_0800FBF4:
ldr r0, =gLinkPartnersHeldKeys
mov r3, r8
lsls r1, r3, 1
adds r1, r0
ldr r4, =gRecvCmds+0x2
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r1]
_0800FC04:
mov r6, r8
adds r6, 0x1
_0800FC08:
ldr r3, =gUnknown_03005000
ldrb r4, [r3, 0xC]
cmp r4, 0x1
bne _0800FC44
adds r0, r3, 0
adds r0, 0x61
mov r1, r8
adds r2, r1, r0
ldrb r0, [r2]
adds r1, r0, 0
cmp r1, 0
beq _0800FC44
cmp r1, 0x4
bne _0800FC40
adds r0, r3, 0
adds r0, 0x5C
add r0, r8
movs r1, 0
strb r4, [r0]
strb r1, [r2]
b _0800FC44
.pool
_0800FC40:
adds r0, 0x1
strb r0, [r2]
_0800FC44:
lsls r0, r6, 16
lsrs r0, 16
mov r8, r0
cmp r0, 0x4
bhi _0800FC50
b _0800F87A
_0800FC50:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_800F86C
thumb_func_start sub_800FC60
sub_800FC60: @ 800FC60
push {lr}