Function at 0x140068671
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rbp, r9
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov r15, qword [rsp + 0xc0]
lea r14, [rsp + 0x48]
mov rcx, r14
call fcn.140068147
mov rax, qword [r14]
test rax, rax
je 0x1400686bb
cmp eax, 2
jne 0x1400686fc
mov qword [rsi], 2
jmp 0x14006887b
cmp qword [rbx], 0
je 0x14006894e
test r15, r15
je 0x140068711
mov rax, r15
shr rax, 0x20
jne 0x14006894e
mov rcx, qword [rbx + 0x28]
call fcn.14001ff60
mov r12, rax
mov rax, qword [rax + 0x30]
cmp rax, 2
jae 0x14006871c
movabs r14, 0xd00000003
jmp 0x1400687de
mov rax, qword [rsp + 0x50]
mov qword [rsi], 1
mov qword [rsi + 8], rax
jmp 0x14006887b
xor r13d, r13d
xor r15d, r15d
jmp 0x140068874
lea rcx, [rbx + 0x28]
cmp eax, 2
jne 0x1400687c7
cmp dl, 2
je 0x1400687ea
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], rcx
mov rax, qword [rcx]
mov r13d, r15d
mov r12d, 0x7fffffff
cmp r13, r12
cmovb r12, r13
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov r14d, 2
xor eax, eax
mov qword [rsp + 0x28], rax
xor r15d, r15d
dec r14
je 0x140068866
mov rcx, qword [rsp + 0x40]
mov rdx, rbp
mov r8d, r12d
xor r9d, r9d
call sub.ws2_32.dll_recv
cmp eax, 0xffffffff
je 0x14006878c
cdqe
jmp 0x14006879e
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x14006888c
xor eax, eax
add r15, rax
cmp rax, r13
jae 0x140068767
mov bpl, 1
mov r12, qword [rsp + 0x30]
mov rcx, r12
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
test bpl, bpl
jne 0x140068871
mov r13, qword [rsp + 0x28]
jmp 0x1400687f3
mov rdx, r12
add rdx, 0x10
mov r14, qword [r12 + 0x38]
and qword [r12 + 0x30], 0
call fcn.14001ffb7
mov rcx, r12
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov r12, r14
mov r13d, 1
mov r15, r12
mov rcx, r15
call fcn.1400683b0
cmp al, 0xd
jne 0x140068874
lock and qword [rbx + 0x48], 0xfffffffffffffffe
lea r14, [rsp + 0x48]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.140068147
mov rax, qword [r14]
test rax, rax
je 0x140068837
cmp eax, 1
jne 0x140068844
mov rax, qword [rsp + 0x50]
mov qword [rsi], 1
mov qword [rsi + 8], rax
jmp 0x14006884b
mov rax, qword [rdi]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
call qword [rdx + 0x10]
mov qword [rsi], 2
mov rcx, r13
mov rdx, r15
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400610f1
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
mov qword [rsi], r13
mov qword [rsi + 8], r15
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
shl rax, 0x20
or rax, 2
test r15, r15
je 0x1400688e0
mov r13, rax
mov rcx, rax
call fcn.14000b7be
cmp al, 0xd
mov r12, qword [rsp + 0x30]
jne 0x140068922
mov r14, r12
add r14, 0x10
mov rcx, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
call fcn.140020120
and qword [r12 + 0x30], 0
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.14001ffb7
mov rcx, r13
call fcn.14001fa32
jmp 0x14006893f
mov r12, qword [rsp + 0x30]
mov r14, r12
add r14, 0x10
mov rcx, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
mov r15, rax
call fcn.140020120
and qword [r12 + 0x30], 0
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.14001ffb7
mov eax, 1
mov qword [rsp + 0x28], rax
xor ebp, ebp
jmp 0x1400687ae
mov rcx, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
call fcn.140020120
mov qword [r12 + 0x30], 3
mov qword [r12 + 0x38], r13
mov bpl, 1
xor eax, eax
mov qword [rsp + 0x28], rax
jmp 0x1400687ae
ud2