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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov rax, qword [0x140081840]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov r12, qword [rbp + 0xf0]
xor r13d, r13d
mov dword [rsp + 0x38], r9d
mov r14, rdx
mov esi, r8d
mov r15, rcx
mov qword [rsp + 0x70], rdx
mov edi, r13d
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x40], r12
test rcx, rcx
je 0x14000a567
cmp dword [rcx], 0xbab1e
jne 0x14000a567
cmp byte [rcx + 0x1f3], dil
je 0x14000a06e
mov eax, 8
jmp 0x14000a256
test r9d, r9d
jns 0x14000a07d
mov eax, 0xa
jmp 0x14000a256
mov r8d, 0xa
mov qword [rsp + 0x1e0], rbx
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x48]
call fcn.140032670
mov rbx, qword [r15 + 8]
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp - 0x58], rax
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rbp - 0x78], xmm0
movups xmmword [rbp - 0x68], xmm0
test rbx, rbx
je 0x14000a0ed
nop dword [rax + rax]
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.1400089e0
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x48]
call fcn.1400324d0
test eax, eax
jne 0x14000a23f
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x14000a0c0
mov eax, dword [rsp + 0x50]
mov rbx, r13
mov dword [rsp + 0x30], eax
mov r13, rsi
mov r8d, 0x400
test esi, esi
je 0x14000a16d
mov rsi, r14
nop dword [rax + rax]
movzx r9d, word [rsi + 8]
movzx eax, r9b
and al, 1
neg al
sbb cx, cx
and cx, 0x300
movzx edx, cx
or dx, r8w
test r9b, 2
cmove dx, cx
lea rcx, [rsp + 0x48]
movzx r8d, dx
or r8w, 0x10
test r9b, 4
cmove r8w, dx
mov rdx, qword [rsi]
call fcn.140032630
test eax, eax
jne 0x14000a23f
inc rbx
add rsi, 0x10
mov r8d, 0x400
cmp rbx, r13
jb 0x14000a110
xor esi, esi
mov ecx, 0x300
mov r14d, esi
cmp dword [rsp + 0x50], esi
jbe 0x14000a28b
mov r15, qword [rsp + 0x48]
movzx edx, word [r15 + rsi + 8]
movzx eax, dx
and ax, cx
neg ax
sbb ecx, ecx
and ecx, 0x29
mov ebx, ecx
or ebx, 4
test r8w, dx
cmove ebx, ecx
test dl, 0x10
je 0x14000a1f9
mov r15, qword [r15 + rsi]
lea rax, [rsp + 0x68]
mov rcx, r15
mov dword [rsp + 0x68], 4
lea r9, [rsp + 0x34]
mov qword [rsp + 0x20], rax
mov edx, 0xffff
mov r8d, 0x1008
or ebx, 0x32
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x14000a1f9
cmp dword [rsp + 0x34], 1
jne 0x14000a1f9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
mov r15, qword [rsp + 0x60]
test ebx, ebx
je 0x14000a21f
mov rcx, qword [rsp + 0x48]
mov r8d, ebx
mov rdx, qword [r15 + 0x1e0]
mov rcx, qword [rsi + rcx]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x14000a278
mov eax, dword [rsp + 0x50]
inc r14
add rsi, 0x10
cmp r14, rax
jae 0x14000a289
mov ecx, 0x300
mov r8d, 0x400
jmp 0x14000a181
lea rcx, [rsp + 0x48]
call fcn.140032640
mov eax, 3
mov rbx, qword [rsp + 0x1e0]
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140065140
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rsp + 0x48]
call fcn.140032640
mov eax, 4
jmp 0x14000a24e
xor esi, esi
lea rdx, [rsp + 0x34]
mov rcx, r15
call fcn.140009f00
mov eax, dword [rsp + 0x34]
mov ebx, dword [rsp + 0x38]
test eax, eax
js 0x14000a2ad
cmp eax, ebx
cmovl ebx, eax
mov dword [rsp + 0x38], ebx
mov eax, dword [rsp + 0x50]
movzx ecx, byte [rbp + 0x100]
test eax, eax
jne 0x14000a39a
test cl, cl
je 0x14000a4f2
xor ecx, ecx
add r15, 0x1e0
mov dword [rsp + 0x20], ecx
mov r9d, ebx
mov ecx, 1
xor r8d, r8d
mov rdx, r15
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
test r13, r13
je 0x14000a43e
mov rdx, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x30]
shl r14, 4
sub rdx, r14
mov qword [rsp + 0x70], rdx
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
lea r8, [rbp - 0x50]
mov r12, qword [rdx + r14]
xor edx, edx
movsx ecx, word [r14 + rax + 0xa]
xor eax, eax
mov dword [rsp + 0x34], ecx
movzx ebx, ax
mov rcx, r12
mov dword [rbp - 0x50], eax
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x14000a3d7
mov r8d, dword [rbp - 0x50]
mov ecx, 0
test r8b, 0x29
setne cl
movzx edx, cx
or dx, 4
test r8b, 0x32
cmove dx, cx
movzx ecx, dx
or cx, 2
test r8b, 4
cmove cx, dx
cmp qword [rsp + 0x40], 0
movzx ebx, cx
je 0x14000a3d7
test esi, esi
jne 0x14000a3d7
test r8d, r8d
je 0x14000a3d7
mov rdx, qword [r15]
inc edi
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
jmp 0x14000a420
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
mov edx, eax
call fcn.140032110
mov esi, eax
test eax, eax
jns 0x14000a3c3
lea rcx, [rsp + 0x48]
call fcn.140032640
mov eax, recv
jmp 0x14000a24e
jle 0x14000a2c8
mov edi, eax
add r15, 0x1e0
jmp 0x14000a2e9
mov rdx, qword [r15]
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test esi, esi
je 0x14000a420
mov r8d, dword [rsp + 0x34]
movzx ecx, bx
or cx, 1
test r8d, 0x300
cmove cx, bx
movzx edx, cx
or dx, 4
test r8b, 0x10
cmove dx, cx
movzx ebx, dx
or bx, 2
bt r8d, 0xa
cmovae bx, dx
mov rdx, qword [rsp + 0x70]
mov word [rdx + r14 + 0xa], bx
add r14, 0x10
sub r13, 1
jne 0x14000a310
mov r12, qword [rsp + 0x40]
cmp dword [rsp + 0x30], 0
je 0x14000a4d9
mov r14, qword [rsp + 0x60]
mov r14, qword [r14 + 8]
mov qword [rsp + 0x40], r14
test r14, r14
je 0x14000a4d9
lea rdx, [rsp + 0x78]
mov rcx, r14
call fcn.1400089e0
xor eax, eax
mov ebx, eax
cmp dword [rbp - 0x60], eax
jbe 0x14000a4cb
xor r14d, r14d
nop dword [rax]
mov rcx, qword [rsp + rbx*8 + 0x78]
lea r8, [rbp - 0x50]
xor edx, edx
mov dword [rbp - 0x50], r14d
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x14000a4aa
test r12, r12
je 0x14000a4aa
test esi, esi
jne 0x14000a4aa
cmp dword [rbp - 0x50], r14d
je 0x14000a4aa
inc edi
mov rdx, qword [r15]
xor r8d, r8d
mov rcx, qword [rsp + rbx*8 + 0x78]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov eax, dword [rbp - 0x60]
inc rbx
cmp rbx, rax
jb 0x14000a480
mov r14, qword [rsp + 0x40]
mov r14, qword [r14 + 0x10]
mov qword [rsp + 0x40], r14
test r14, r14
jne 0x14000a460
mov rcx, qword [r15]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
mov eax, dword [rsp + 0x50]
movzx ecx, byte [rbp + 0x100]
mov r15, qword [rsp + 0x60]
test r12, r12
je 0x14000a4fb
mov dword [r12], edi
cmp byte [rbp + 0xf8], 0
je 0x14000a556
test eax, eax
jne 0x14000a556
test cl, cl
jne 0x14000a556
xor eax, eax
cmp dword [r15], 0xbab1e
mov dword [rsp + 0x30], eax
jne 0x14000a556
cmp byte [r15 + 0x1f3], al
jne 0x14000a556
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.140009f00
test eax, eax
jne 0x14000a556
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x14000a556
mov r9d, dword [rsp + 0x38]
cmp eax, r9d
jg 0x14000a54b
test eax, eax
jns 0x14000a54e
mov eax, r9d
movsxd rcx, eax
call fcn.1400327f0
lea rcx, [rsp + 0x48]
call fcn.140032640
xor eax, eax
jmp 0x14000a24e
mov eax, 1
jmp 0x14000a256