Function at 0x14041aa20
Capabilities:
Send data
Send data on socket

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
movups xmmword [rsp + 0xb0], xmm6
mov rdi, rcx
lea rbp, [rcx + 0x30]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [rdi + 0x200], 0
mov byte [rdi + 0x248], 1
mov byte [rdi + 0x1f8], 1
je 0x14041aaed
lea rax, [rsp + 0x4f]
mov rcx, qword [rdi + 0x60]
mov byte [rsp + 0x4f], 0
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x68], rax
mov rsi, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea r9, [rsp + 0x90]
mov r8d, 1
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov dword [rsp + 0x90], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.WS2_32.dll_WSASend]
lea rcx, [rsp + 0x70]
mov rsi, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.14004b220
mov rsi, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rbp
call rsi
mov rsi, qword [rdi + 0x200]
test rsi, rsi
je 0x14041ab27
cmp byte [rsi + 8], 0
je 0x14041ad37
mov edx, 0x10
mov rcx, rsi
call fcn.14053f090
mov qword [rdi + 0x200], 0
pxor xmm6, xmm6
lea rbx, [rdi + 0x78]
lea rbp, [rdi + 0x1b8]
movups xmmword [rsp + 0x50], xmm6
mov rcx, qword [rbx]
cmp rcx, rbx
jne 0x14041ab9e
jmp 0x14041ac2e
mov qword [rdx + 8], rbx
mov qword [rdx], rbx
mov rax, qword [rbx + 0x18]
mov qword [rcx + 0x10], 0
cmp rcx, rax
je 0x14041ac20
cmp rsi, rax
je 0x14041ac20
mov rdx, rcx
mov r8, rsi
mov rcx, rax
call fcn.14052f2f0
add qword [rbx + 0x28], 1
sub qword [rbx + 0x10], 1
sub qword [rbx - 8], 1
cmp rsi, rbx
je 0x14041ac2e
mov rcx, rsi
mov r8, qword [rcx + 0x18]
mov rsi, qword [rcx]
test r8, r8
je 0x14041abc9
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x14041ad10
mov qword [rdx + 0x20], r8
mov r9, qword [rcx + 0x20]
movups xmmword [rcx + 0x18], xmm6
mov qword [rsp + 0x58], r9
cmp rcx, rbx
je 0x14041ad8b
mov r10, qword [rbx + 0x38]
test r10, r10
je 0x14041ad6c
mov rax, qword [rcx + 0x10]
xor edx, edx
div r10
shl rdx, 4
add rdx, qword [rbx + 0x30]
mov r11, qword [rdx]
mov r8, qword [rdx + 8]
cmp rcx, r11
jne 0x14041acf0
cmp rcx, r8
je 0x14041ab50
cmp rcx, r11
jne 0x14041acf0
mov r9, qword [rcx]
mov qword [rdx], r9
jmp 0x14041ab57
sub qword [rbx - 8], 1
cmp rsi, rbx
jne 0x14041ab9b
add rbx, 0x50
cmp rbp, rbx
jne 0x14041ab3b
mov rbx, qword [rdi + 0x1f0]
lea rsi, [rsp + 0x50]
test rbx, rbx
je 0x14041ac65
nop dword [rax]
mov rbp, qword [rbx]
mov rdx, rsi
mov rcx, rbx
call qword [rbp + 0x30]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14041ac50
mov rdx, qword [rsp + 0x50]
mov rbp, qword [rdi + 0x28]
test rdx, rdx
je 0x14041ad1a
lea rdi, [rsp + 0x90]
jmp 0x14041acd2
mov qword [rdx + 0x20], 0
lock sub dword [rbp + 0x30], 1
xor r9d, r9d
xor ecx, ecx
mov r11, qword [rdx + 0x28]
mov qword [rsp + 0x90], 0
mov r8, rdi
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
call r11
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x14041ad1a
mov rcx, qword [rdx + 0x20]
mov qword [rsp + 0x50], rcx
test rcx, rcx
jne 0x14041ac88
mov qword [rsp + 0x58], 0
jmp 0x14041ac88
cmp rcx, r8
jne 0x14041ab57
mov r10, qword [rcx + 8]
mov qword [rdx + 8], r10
jmp 0x14041ab57
mov qword [rsp + 0x50], r8
jmp 0x14041abbc
mov rcx, rsi
call fcn.14043b3d0
nop
movups xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, qword [rsi]
xor edx, edx
call fcn.1403cb7c0
mov byte [rsi + 8], 1
mov rsi, qword [rdi + 0x200]
test rsi, rsi
je 0x14041ab1c
cmp byte [rsi + 8], 0
jne 0x14041ab0f
mov rcx, qword [rsi]
call fcn.1403cbb60
jmp 0x14041ab0f
mov r8d, 0xb8
lea rdx, [0x140553fb0]
lea rsi, [rsp + 0x50]
lea rcx, [0x140553fee]
call qword [sym.imp.msvcrt.dll__assert]
mov r8d, 0xb7
lea rdx, [0x140553fb0]
lea rsi, [rsp + 0x50]
lea rcx, [0x140553fda]
call qword [sym.imp.msvcrt.dll__assert]
mov rbx, rax
mov rcx, rbp
call rsi
mov rcx, rbx
call fcn.1403e4610
mov rcx, rsi
mov rbx, rax
call fcn.14043b3d0
jmp 0x14041adb2