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

Disassembly:
endbr64
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
movups xmmword [rsp + 0x50], xmm6
mov rdi, qword [0x140485900]
mov rbx, qword [rsp + 0xc0]
movq xmm6, rbx
punpcklqdq xmm6, xmm6
mov rsi, rcx
mov rax, r8
mov r8, r9
mov r9d, dword [rsp + 0xb8]
mov rcx, qword [rdi]
mov qword [rsp + 0x48], rcx
xor ecx, ecx
mov rcx, qword [rsi + 8]
lock add dword [rcx + 0x30], 1
test r9b, r9b
jne 0x140304718
mov rcx, qword [rdx]
cmp rcx, 0xffffffffffffffff
je 0x140304698
mov edx, dword [rsp + 0xb0]
mov qword [rsp + 0x28], rbx
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x44], edx
lea rdx, [rsp + 0x44]
mov qword [rsp + 0x20], rdx
mov rdx, rax
mov qword [rsp + 0x30], 0
call qword [sym.imp.WS2_32.dll_WSARecv]
mov ebp, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
je 0x140304828
cmp eax, 0x4d2
je 0x1403047a0
cmp eax, 0x3e5
setne dl
mov rsi, qword [rsi + 8]
test ebp, ebp
je 0x1403047b0
test dl, dl
je 0x1403047b0
movd xmm1, dword [rsp + 0x40]
movd xmm0, eax
xor edx, edx
mov r9, rbx
lea rax, [0x14037a7e0]
mov dword [rbx + 0x30], 1
mov r8d, 2
punpckldq xmm0, xmm1
mov qword [rbx], rax
movq qword [rbx + 0x10], xmm0
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x140304678
lea rbp, [rsi + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbx + 0x20], 0
mov rax, qword [rsi + 0x98]
test rax, rax
je 0x140304860
mov qword [rax + 0x20], rbx
mov qword [rsi + 0x98], rbx
mov eax, 1
xchg dword [rsi + 0x58], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop word [rax + rax]
mov rax, qword [rsp + 0x48]
sub rax, qword [rdi]
jne 0x140304875
movups xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rsi, qword [rsi + 8]
lea rax, [0x14037a7e0]
xor edx, edx
mov r9, rbx
mov dword [rbx + 0x30], 1
mov r8d, 2
mov qword [rbx], rax
mov qword [rbx + 0x10], 0x2719
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x140304678
lea rbp, [rsi + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbx + 0x20], 0
mov rax, qword [rsi + 0x98]
test rax, rax
je 0x140304850
mov qword [rax + 0x20], rbx
mov qword [rsi + 0x98], rbx
mov eax, 1
xchg dword [rsi + 0x58], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140304678
mov rsi, qword [rsi + 8]
lea rax, [0x14037a7e0]
xor edx, edx
mov r9, rbx
mov dword [rbx + 0x30], 1
mov r8d, 2
mov qword [rbx], rax
mov qword [rbx + 0x10], 0
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x140304678
lea rbp, [rsi + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbx + 0x20], 0
mov rax, qword [rsi + 0x98]
test rax, rax
je 0x140304840
mov qword [rax + 0x20], rbx
mov qword [rsi + 0x98], rbx
mov eax, 1
xchg dword [rsi + 0x58], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140304678
mov edx, 1
mov eax, 0x274d
jmp 0x1403045e0
xor eax, eax
mov edx, 1
lock cmpxchg dword [rbx + 0x30], edx
cmp eax, 1
jne 0x140304678
xor edx, edx
mov rcx, qword [rsi + 0x28]
mov r9, rbx
mov r8d, 2
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x140304678
lea rbp, [rsi + 0x60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbx + 0x20], 0
mov rax, qword [rsi + 0x98]
test rax, rax
je 0x14030486c
mov qword [rax + 0x20], rbx
mov qword [rsi + 0x98], rbx
mov eax, 1
xchg dword [rsi + 0x58], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140304678
mov edx, 1
mov eax, 0x2746
jmp 0x1403045e0
movups xmmword [rsi + 0x90], xmm6
jmp 0x140304782
movups xmmword [rsi + 0x90], xmm6
jmp 0x1403046fe
movups xmmword [rsi + 0x90], xmm6
jmp 0x140304661
movups xmmword [rsi + 0x90], xmm6
jmp 0x14030480e
call dbg.__stack_chk_fail
nop
nop
nop
nop
nop
nop