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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x60
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [rdi + 0xe4]
mov r15d, 1
mov esi, eax
cmp ecx, 3
je 0x180004f80
xor r14d, r14d
mov ebx, r14d
nop word [rax + rax]
xor eax, eax
lock cmpxchg dword [rdi + 0x208], r15d
je 0x180004f64
mov eax, ebx
and eax, 0xfff
cmp eax, 0xfff
jne 0x180004f55
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
inc ebx
jmp 0x180004f30
mov eax, ebx
and eax, 0x3f
cmp al, 0x3f
jne 0x180004f60
pause
inc ebx
jmp 0x180004f30
mov eax, dword [rdi + 0xe4]
cmp eax, r15d
je 0x180004f99
mov eax, dword [rdi + 0xe4]
test eax, eax
je 0x180004f99
mov dword [rdi + 0x208], r14d
mov ecx, 0x139f
mov dword [rdi + 0xdc], r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x18000527d
mov dword [rdi + 0xe4], 2
mov dword [rdi + 0x208], r14d
mov rcx, qword [rdi + 0xd0]
test rcx, rcx
je 0x180005091
cmp esi, dword [rdi + 0xd8]
je 0x18000507d
mov rcx, qword [rdi + 0x260]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rax, qword [rdi + 0xd0]
mov qword [rsp + 0x80], rax
mov r9d, 0xffffffff
mov dword [rsp + 0x20], 0x1cff
xor r8d, r8d
lea rdx, [rsp + 0x80]
mov ecx, r15d
call qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, r15d
jne 0x180005059
xor r9d, r9d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x180004fe2
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x180005025
jmp 0x180004fe2
test eax, eax
je 0x180005076
cmp eax, 0x102
je 0x1800052a9
cmp eax, 0xffffffff
jne 0x18000529e
jmp 0x1800052b4
mov rcx, qword [rdi + 0xd0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0xd0], r14
mov dword [rdi + 0xd8], r14d
mov eax, dword [rdi + 0xe0]
mov qword [rsp + 0x88], rbp
test eax, eax
je 0x1800050ce
cmp dword [rdi + 0xac], r14d
je 0x1800050c7
mov rcx, qword [rdi + 0xb0]
lea rdx, [0x18002b248]
xor r9d, r9d
lea r8d, [r9 + 0x10]
call qword [sym.imp.WS2_32.dll_send]
mov dword [rdi + 0xe0], r14d
cmp dword [rdi + 0xa0], r14d
je 0x1800050e7
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, r14d
xchg dword [rdi + 0x20], eax
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x180005100
call qword [sym.imp.WS2_32.dll_WSACloseEvent]
mov qword [rdi + 0xb8], r14
mov rcx, qword [rdi + 0xb0]
mov rbp, 0xffffffffffffffff
cmp rcx, rbp
je 0x180005130
mov edx, r15d
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, qword [rdi + 0xb0]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rdi + 0xb0], rbp
lea rcx, [rdi + 0x2c0]
call fcn.180005e20
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rdi + 0x258]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rcx, qword [rdi + 0x260]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rcx, qword [rdi + 0x268]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
cmp dword [rdi + 0x238], r14d
jle 0x1800051a4
nop dword [rax]
mov r8, qword [rdi + 0x240]
cmp r8, qword [rdi + 0x248]
je 0x1800051e4
mov rax, qword [r8 + 8]
mov qword [rdi + 0x240], rax
mov qword [rax + 0x10], r14
test r8, r8
jne 0x1800051f7
lea rcx, [rdi + 0x110]
call fcn.180001a30
mov rax, qword [rdi + 0x100]
lea rdx, [rax - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], r14d
je 0x18000523f
cmp dword [rdx + 0x10], r14d
jge 0x180005218
cmp dword [rax - 0xc], r14d
jl 0x180005293
mov dword [rax - 0x10], r14d
mov rax, qword [rdi + 0x100]
mov byte [rax], r14b
jmp 0x18000523f
test r8, r8
je 0x1800051a4
mov qword [rdi + 0x240], r14
mov qword [rdi + 0x248], r14
mov qword [r8 + 8], r14
xor edx, edx
mov qword [r8 + 0x10], r14
dec dword [rdi + 0x238]
mov rcx, qword [r8]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180005180
lock xadd dword [rdx + 0x10], ebp
sub ebp, r15d
jg 0x18000522b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + htons]
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rdi + 0x100], rax
mov rcx, qword [rdi + 0x98]
mov word [rdi + 0x108], r14w
mov dword [rdi + 0x270], r14d
mov dword [rdi + 0xe4], 3
call qword [sym.imp.KERNEL32.dll_SetEvent]
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbp, qword [rsp + 0x88]
mov eax, r15d
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
mov ecx, 0x80070057
call fcn.180001970
int3
mov ecx, 0x80004005
call fcn.180001970
int3
mov ecx, 0x5b4
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 0x80004005
call fcn.180001970
int3