Function at 0x1403041d0
Capabilities:
Receive data
Receive data on socket
Send data
Send 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 0x140304378
mov rcx, qword [rdx]
cmp rcx, 0xffffffffffffffff
je 0x1403042f8
mov edx, dword [rsp + 0xb0]
mov qword [rsp + 0x28], rbx
lea r9, [rsp + 0x44]
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x20], edx
mov rdx, rax
mov qword [rsp + 0x30], 0
call qword [sym.imp.WS2_32.dll_WSASend]
mov ebp, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x4d2
je 0x1403044c8
cmp eax, 0x3e5
setne dl
mov rsi, qword [rsi + 8]
test ebp, ebp
je 0x140304400
test dl, dl
je 0x140304400
movd xmm1, dword [rsp + 0x44]
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
je 0x140304480
nop word [rax + rax]
mov rax, qword [rsp + 0x48]
sub rax, qword [rdi]
jne 0x140304515
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 0x1403042d8
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 0x1403044f0
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 0x1403042d8
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 0x1403042d8
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 0x1403044e0
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 0x1403042d8
xor eax, eax
mov edx, 1
lock cmpxchg dword [rbx + 0x30], edx
cmp eax, 1
jne 0x1403042d8
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 0x1403042d8
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 0x140304509
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 0x1403042d8
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 0x140304500
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 0x1403042d8
mov edx, 1
mov eax, 0x274d
jmp 0x14030427d
movups xmmword [rsi + 0x90], xmm6
jmp 0x1403043e2
movups xmmword [rsi + 0x90], xmm6
jmp 0x14030435e
movups xmmword [rsi + 0x90], xmm6
jmp 0x1403044ac
movups xmmword [rsi + 0x90], xmm6
jmp 0x140304462
call dbg.__stack_chk_fail
nop
nop
nop
nop
nop
nop