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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov ebx, 1
test rcx, rcx
je 0x14019f85d
mov r13, rcx
cmp dword [rcx], 0xbab1e
jne 0x14019f85d
mov eax, dword [r13 + 0x18c]
mov ebx, 8
test al, 4
jne 0x14019f85d
mov ebp, r9d
test r9d, r9d
js 0x14019f0cc
mov r15d, r8d
mov rdi, rdx
mov rbx, qword [r13 + 8]
xor r12d, r12d
mov r14d, 0
test rbx, rbx
mov qword [rsp + 0x50], r15
je 0x14019f020
xor r14d, r14d
lea r15, [rsp + 0x60]
jmp 0x14019ee90
mov r14d, ecx
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14019f014
mov esi, r14d
mov rcx, rbx
mov rdx, r15
call fcn.14019ed60
mov ecx, eax
and ecx, 1
mov rdx, qword [rsp + 0x60]
xor r14d, r14d
cmp rdx, 0xffffffffffffffff
setne r14b
add r14d, esi
test ecx, ecx
cmove r14d, esi
cmp ecx, 1
mov ecx, 0
sbb rcx, rcx
or rcx, rdx
test eax, 0x10000
je 0x14019eee8
mov rdx, qword [rsp + 0x60]
xor r8d, r8d
cmp rdx, 0xffffffffffffffff
setne r8b
cmovne rcx, rdx
add r14d, r8d
cmp rcx, 0xffffffffffffffff
je 0x14019ee83
mov edx, eax
and edx, 2
mov r8, qword [rsp + 0x68]
xor ecx, ecx
cmp r8, 0xffffffffffffffff
setne cl
add ecx, r14d
test edx, edx
cmove ecx, r14d
cmp edx, 1
mov edx, 0
sbb rdx, rdx
or rdx, r8
test eax, 0x20000
je 0x14019ef36
mov r8, qword [rsp + 0x68]
xor r9d, r9d
cmp r8, 0xffffffffffffffff
setne r9b
cmovne rdx, r8
add ecx, r9d
cmp rdx, 0xffffffffffffffff
je 0x14019ee80
mov edx, eax
and edx, 4
mov r8, qword [rsp + 0x70]
xor r14d, r14d
cmp r8, 0xffffffffffffffff
setne r14b
add r14d, ecx
test edx, edx
cmove r14d, ecx
cmp edx, 1
mov ecx, 0
sbb rcx, rcx
or rcx, r8
test eax, 0x40000
je 0x14019ef8a
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
cmp rdx, 0xffffffffffffffff
setne r8b
cmovne rcx, rdx
add r14d, r8d
cmp rcx, 0xffffffffffffffff
je 0x14019ee83
mov edx, eax
and edx, 8
mov r8, qword [rsp + 0x78]
xor ecx, ecx
cmp r8, 0xffffffffffffffff
setne cl
add ecx, r14d
test edx, edx
cmove ecx, r14d
cmp edx, 1
mov edx, 0
sbb rdx, rdx
or rdx, r8
test eax, 0x80000
je 0x14019efdc
mov r8, qword [rsp + 0x78]
xor r9d, r9d
cmp r8, 0xffffffffffffffff
setne r9b
cmovne rdx, r8
add ecx, r9d
cmp rdx, 0xffffffffffffffff
je 0x14019f00c
xor r14d, r14d
cmp qword [rsp + 0x80], 0xffffffffffffffff
setne r14b
lea edx, [rcx + r14]
test al, 0x10
cmove edx, ecx
add r14d, edx
test eax, 0x100000
cmove r14d, edx
jmp 0x14019ee83
mov r14d, ecx
jmp 0x14019ee83
mov eax, dword [r13 + 0x18c]
mov r15, qword [rsp + 0x50]
test al, 8
jne 0x14019f0dc
cmp qword [r13 + 0xb0], 0
je 0x14019f0d6
lea rcx, [rsp + 0xd0]
call fcn.1401a97e0
mov rdx, qword [r13 + 0xb0]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
lea rcx, [rsp + 0xa0]
call fcn.1402130a0
mov qword [r13 + 0xb0], rax
lea rcx, [rax + 0x20]
mov rdx, qword [rsp + 0xd0]
xor r12d, r12d
cmp qword [rax + 0x20], rdx
jl 0x14019f0dc
jg 0x14019f08c
mov eax, dword [rax + 0x28]
cmp eax, dword [rsp + 0xd8]
jle 0x14019f0dc
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x90]
call fcn.1401a9880
cmp rax, 2
mov r12d, 1
cmovge r12, rax
jmp 0x14019f0dc
mov ebx, 0xa
jmp 0x14019f85d
mov r12d, 0xffffffff
cmp r12d, ebp
mov esi, ebp
cmovl esi, r12d
test r12d, r12d
cmovs esi, ebp
movzx ecx, byte [rsp + 0x1f0]
add ecx, r15d
add ecx, r14d
cmp ecx, 0xb
mov dword [rsp + 0x44], ecx
jae 0x14019f111
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x38], rax
jmp 0x14019f12e
mov rax, qword [0x1402654c8]
mov ecx, ecx
shl rcx, 4
call qword [rax]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14019f431
mov dword [rsp + 0x5c], esi
xor r15d, r15d
test r14d, r14d
je 0x14019f2aa
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x14019f2aa
xor r15d, r15d
lea rdx, [rsp + 0x60]
mov rsi, r13
mov qword [rsp + 0x48], rcx
call fcn.14019ed60
mov ebx, eax
xor ebp, ebp
nop word cs:[rax + rax]
xor r12d, r12d
bt ebx, ebp
jae 0x14019f1b0
mov rax, qword [rsp + rbp*8 + 0x60]
cmp rax, 0xffffffffffffffff
je 0x14019f1b0
mov ecx, r15d
shl rcx, 4
mov rdx, qword [rsp + 0x38]
mov qword [rdx + rcx], rax
mov word [rdx + rcx + 8], 0x300
inc r15d
mov r12d, 0x29
jmp 0x14019f1b7
mov rax, 0xffffffffffffffff
mov edx, ebx
mov ecx, ebp
shr edx, cl
test edx, 0x10000
je 0x14019f250
mov r13, qword [rsp + rbp*8 + 0x60]
cmp r13, 0xffffffffffffffff
je 0x14019f250
mov dword [rsp + 0x90], 4
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov edx, 0xffff
mov r8d, 0x1008
lea r9, [rsp + 0xa0]
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x14019f22b
cmp dword [rsp + 0xa0], 1
jne 0x14019f22b
mov rcx, r13
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
or r12d, 0x32
mov eax, r15d
shl rax, 4
mov rcx, qword [rsp + 0x38]
mov qword [rcx + rax], r13
mov word [rcx + rax + 8], 0x10
inc r15d
jmp 0x14019f259
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14019f290
mov rdx, qword [rsi + 0x180]
mov rcx, r13
mov r8d, r12d
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp dword [rsp + 0x44], 0xb
jb 0x14019f27b
test eax, eax
jne 0x14019f43b
test eax, eax
jne 0x14019f474
inc rbp
cmp rbp, 5
jne 0x14019f170
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 8]
test rcx, rcx
mov r13, rsi
lea rdx, [rsp + 0x60]
jne 0x14019f153
mov qword [rsp + 0x30], r13
mov rax, qword [rsp + 0x50]
test eax, eax
je 0x14019f3e2
mov r13d, eax
shl r13, 4
xor ebx, ebx
mov r12d, 0x29
mov rsi, qword [rsp + 0x38]
jmp 0x14019f2f0
inc r15d
add rbx, 0x10
cmp r13, rbx
je 0x14019f3e2
movzx eax, word [rdi + rbx + 8]
mov ecx, eax
and ecx, 1
cmovne ecx, r12d
mov edx, eax
and edx, 2
lea ebp, [rcx + rdx*2]
test al, 4
je 0x14019f36a
mov r12, qword [rdi + rbx]
mov dword [rsp + 0x90], 4
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov edx, 0xffff
mov r8d, 0x1008
lea r9, [rsp + 0xa0]
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x14019f361
cmp dword [rsp + 0xa0], 1
jne 0x14019f361
mov rcx, r12
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
or ebp, 0x32
mov r12d, 0x29
mov rcx, qword [rdi + rbx]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
mov r8d, ebp
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x14019f453
mov rax, qword [rdi + rbx]
mov ecx, r15d
shl rcx, 4
mov qword [rsi + rcx], rax
movzx eax, word [rdi + rbx + 8]
and eax, 1
neg eax
and eax, 0x300
mov word [rsi + rcx + 8], ax
movzx edx, word [rdi + rbx + 8]
test dl, 6
je 0x14019f2e0
add rcx, rsi
add rcx, 8
mov r8d, edx
and r8d, 2
shl r8d, 9
and edx, 4
lea edx, [r8 + rdx*4]
movzx eax, ax
or eax, edx
mov word [rcx], ax
jmp 0x14019f2e0
mov r12, qword [rsp + 0x1e0]
test r15d, r15d
mov rsi, qword [rsp + 0x30]
jne 0x14019f404
xor ebx, ebx
cmp byte [rsp + 0x1f0], 0
je 0x14019f7d0
test r15d, r15d
je 0x14019f47e
mov rcx, qword [rsp + 0x38]
mov edx, r15d
xor r8d, r8d
call fcn.1402135a0
test eax, eax
js 0x14019f858
je 0x14019f47e
mov ecx, eax
mov dword [rsp + 0x48], 0
mov esi, eax
jmp 0x14019f4a8
mov ebx, 3
jmp 0x14019f85d
mov rax, qword [0x1402654c0]
mov rcx, qword [rsp + 0x38]
call qword [rax]
mov ebx, 4
jmp 0x14019f85d
mov ebx, 4
cmp dword [rsp + 0x44], 0xb
jb 0x14019f85d
mov rax, qword [0x1402654c0]
mov rcx, rsi
call qword [rax]
jmp 0x14019f85d
mov ebx, 4
jmp 0x14019f85d
lea rdx, [rsi + 0x180]
mov dword [rsp + 0x20], 0
xor esi, esi
mov ecx, 1
xor r8d, r8d
mov r9d, dword [rsp + 0x5c]
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov al, 1
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
test eax, eax
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x40], esi
je 0x14019f5a9
test r12, r12
setne dl
and dl, byte [rsp + 0x48]
mov byte [rsp + 0x2f], dl
mov eax, eax
shl rax, 4
mov qword [rsp + 0x50], rax
xor ebp, ebp
mov r13d, r14d
jmp 0x14019f4fc
mov word [rdi + rbp + 0xa], si
add rbp, 0x10
inc r13d
cmp qword [rsp + 0x50], rbp
mov rcx, qword [rsp + 0x38]
je 0x14019f5a9
mov eax, r13d
shl rax, 4
movzx ebx, word [rcx + rax + 0xa]
mov r12, qword [rdi + rbp]
mov dword [rsp + 0xa0], 0
xor esi, esi
mov rcx, r12
xor edx, edx
lea r8, [rsp + 0xa0]
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x14019f55f
mov eax, dword [rsp + 0xa0]
xor ecx, ecx
test al, 0x29
setne cl
lea edx, [rcx + 4]
test al, 0x32
cmove edx, ecx
mov esi, eax
shr esi, 1
and esi, 2
or esi, edx
test eax, eax
setne al
and al, byte [rsp + 0x2f]
movzx eax, al
add dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
mov rcx, r12
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp byte [rsp + 0x48], 0
jne 0x14019f4e0
xor eax, eax
test ebx, 0x300
setne al
mov ecx, ebx
shr ecx, 2
and ecx, 4
shr ebx, 9
and ebx, 2
or ebx, ecx
or ebx, eax
movzx esi, si
or esi, ebx
jmp 0x14019f4e0
test r14d, r14d
je 0x14019f7b0
mov rax, qword [rsp + 0x30]
mov rdi, qword [rax + 8]
test rdi, rdi
je 0x14019f7b0
mov rbp, qword [rsp + 0x1e0]
test rbp, rbp
setne bpl
and bpl, byte [rsp + 0x48]
lea r13, [rsp + 0xa0]
mov r14, qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
mov rbx, qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov esi, dword [rsp + 0x40]
jmp 0x14019f61a
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
xor r8d, r8d
call rbx
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x14019f7b4
mov rcx, rdi
lea rdx, [rsp + 0x60]
call fcn.14019ed60
test eax, 0x10001
je 0x14019f60d
mov r12d, eax
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14019f660
cmp dword [rsp + 0xa0], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
xor r8d, r8d
call rbx
test r12d, 0x20002
je 0x14019f60d
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x68]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14019f6ae
cmp dword [rsp + 0xa0], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
xor r8d, r8d
call rbx
test r12d, 0x40004
je 0x14019f60d
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x70]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14019f700
cmp dword [rsp + 0xa0], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
xor r8d, r8d
call rbx
test r12d, 0x80008
je 0x14019f60d
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x78]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14019f752
cmp dword [rsp + 0xa0], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x180]
xor r8d, r8d
call rbx
test r12d, 0x100010
je 0x14019f60d
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x80]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14019f5f4
cmp dword [rsp + 0xa0], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
jmp 0x14019f5f4
mov esi, dword [rsp + 0x40]
mov ebx, esi
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsi + 0x180]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
mov r12, qword [rsp + 0x1e0]
cmp dword [rsp + 0x44], 0xb
jb 0x14019f7e5
mov rax, qword [0x1402654c0]
mov rcx, qword [rsp + 0x38]
call qword [rax]
test r12, r12
je 0x14019f7ee
mov dword [r12], ebx
xor ebx, ebx
test r15d, r15d
jne 0x14019f85d
cmp byte [rsp + 0x1e8], 0
je 0x14019f85d
cmp byte [rsp + 0x1f0], 0
jne 0x14019f85d
mov dword [rsp + 0x90], 0
cmp dword [rsi], 0xbab1e
jne 0x14019f85d
test byte [rsi + 0x18c], 4
jne 0x14019f85d
lea rdx, [rsp + 0x90]
mov rcx, rsi
call fcn.1401a17f0
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x14019f85d
mov ecx, eax
mov edx, dword [rsp + 0x5c]
cmovs ecx, edx
cmp eax, edx
cmovg ecx, edx
movsxd rcx, ecx
call fcn.1402133e0
jmp 0x14019f85d
mov ebx, 0xc
mov eax, ebx
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret