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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
movaps xmmword [rsp + 0x180], xmm6
mov rbx, rcx
test rcx, rcx
je 0x140114a40
mov rax, qword [rcx + 0x1d8]
test rax, rax
je 0x140114796
mov byte [rax], 0
cmp qword [rbx + 0xd0], 0
jne 0x140115027
mov rdi, qword [rbx + 0xd8]
test rdi, rdi
je 0x140115040
movzx r15d, byte [rdi + 0x18b]
mov eax, 0x5d
test r15b, r15b
jne 0x140114a45
mov r8, qword [rbx + 0xa60]
mov edx, 6
mov rcx, rdi
call fcn.14027af60
mov rdx, rbx
mov rcx, rdi
call fcn.14011ffc0
test eax, eax
jne 0x1401151c5
mov dword [rsp + 0x58], eax
mov edx, dword [rdi]
xor ebp, ebp
mov esi, r15d
mov eax, esi
xor eax, 1
test ebp, ebp
sete cl
and al, cl
mov byte [rsp + 0x4e], al
je 0x1401153b1
cmp edx, 0xbab1e
jne 0x140114a40
cmp byte [rdi + 0x18b], 0
jne 0x1401153bc
mov rbp, qword [rdi + 8]
xor r14d, r14d
lea rsi, [rsp + 0x80]
test rbp, rbp
je 0x1401151ef
nop dword [rax + rax]
mov rdx, rsi
mov rcx, rbp
call fcn.140120ba0
mov rcx, rsi
mov edx, 0x10
lea r8d, [rdx - 0x10]
bt eax, r8d
jae 0x140114a68
cmp qword [rcx], 0xffffffffffffffff
je 0x140114888
add r14d, 1
bt eax, edx
jae 0x14011487c
add r14d, 1
add edx, 1
add rcx, 8
cmp edx, 0x15
jne 0x14011485b
mov rbp, qword [rbp + 8]
test rbp, rbp
jne 0x140114848
cmp byte [rdi + 0x18d], 0
lea esi, [r14 + 1]
jne 0x140115017
cmp qword [rdi + 0xb0], 0
je 0x140115004
lea rdx, [rsp + 0x7c]
mov rcx, rdi
call fcn.140128ac0
mov eax, dword [rsp + 0x7c]
mov edx, 0x3e8
cmp eax, edx
cmovle edx, eax
mov r12d, edx
test eax, eax
js 0x14011500c
cmp esi, 0xa
jbe 0x140114ad8
mov ecx, esi
shl rcx, 4
call qword [sub.msvcrt.dll_malloc]
mov rbp, rax
test rax, rax
je 0x1401152ad
movzx eax, byte [rsp + 0x4e]
mov byte [rsp + 0x4f], al
mov r13, qword [rdi + 8]
test r13, r13
je 0x140115286
mov dword [rsp + 0x50], r12d
xor r15d, r15d
lea rsi, [rsp + 0x80]
mov dword [rsp + 0x5c], r14d
nop word [rax + rax]
mov rdx, rsi
mov rcx, r13
xor r12d, r12d
call fcn.140120ba0
mov r14d, eax
lea ecx, [r12 + 0x10]
mov eax, r14d
sar eax, cl
and eax, 1
bt r14d, r12d
jb 0x140114a90
test eax, eax
je 0x1401149c6
mov rcx, qword [rsi + r12*8]
cmp rcx, 0xffffffffffffffff
je 0x1401149c6
mov r10d, 0x32
mov dword [rsp + 0x40], r10d
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x38], rcx
call qword [sym.imp.WS2_32.dll_send]
mov eax, r15d
mov rcx, qword [rsp + 0x38]
mov edx, 0x10
shl rax, 4
mov r10d, dword [rsp + 0x40]
add r15d, 1
add rax, rbp
mov qword [rax], rcx
mov word [rax + 8], dx
mov rdx, qword [rdi + 0x180]
mov r8d, r10d
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x140114fa9
add r12, 1
cmp r12, 5
jne 0x140114939
mov r13, qword [r13 + 8]
test r13, r13
jne 0x140114928
mov r12d, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x5c]
lea r13, [rsp + 0xe0]
test r15d, r15d
je 0x140114af1
mov edx, r15d
mov rax, rbp
shl rdx, 4
add rdx, rbp
jmp 0x140114a0d
add rax, 0x10
cmp rax, rdx
je 0x140115286
cmp qword [rax], 0xffffffffffffffff
je 0x140114a00
xor r8d, r8d
mov edx, r15d
mov rcx, rbp
call fcn.1401229d0
test eax, eax
js 0x1401153a3
lea r13, [rsp + 0xe0]
jne 0x140114b11
jmp 0x140114af1
mov eax, 0x2b
movaps xmm6, xmmword [rsp + 0x180]
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
bt eax, edx
jae 0x140114888
cmp qword [rcx], 0xffffffffffffffff
jne 0x140114878
mov rbp, qword [rbp + 8]
test rbp, rbp
jne 0x140114848
jmp 0x140114891
mov rcx, qword [rsi + r12*8]
cmp rcx, 0xffffffffffffffff
je 0x1401149c6
mov edx, r15d
mov r8d, 0x300
add r15d, 1
mov r10d, 0x29
shl rdx, 4
add rdx, rbp
mov qword [rdx], rcx
mov word [rdx + 8], r8w
test eax, eax
je 0x1401149a0
mov r10d, 0x3b
jmp 0x140114964
lea r13, [rsp + 0xe0]
mov byte [rsp + 0x4f], 0
mov rbp, r13
test r14d, r14d
jne 0x140115221
mov dword [rsp + 0x20], 0
lea rdx, [rdi + 0x180]
mov r9d, r12d
xor r8d, r8d
mov ecx, 1
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
test r14d, r14d
je 0x140114be0
mov r15, qword [rdi + 8]
test r15, r15
je 0x140114be0
lea rsi, [rsp + 0x80]
mov qword [rsp + 0x40], rbp
mov r14, qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x1e0], rbx
mov rbx, r15
mov r13, qword [rsp + 0x38]
mov rcx, rbx
mov rdx, r13
call fcn.140120ba0
mov r15d, eax
test eax, 0x10001
je 0x140114bc5
mov r12, qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
xor ebp, ebp
lea rsi, [rsp + 0xb0]
mov rcx, qword [r13]
mov r8, rsi
xor edx, edx
mov dword [rsp + 0xb0], 0
call r12
mov rdx, qword [rdi + 0x180]
mov rcx, qword [r13]
xor r8d, r8d
call r14
mov eax, ebp
add ebp, 1
cmp ebp, 5
je 0x140114bc5
mov edx, 1
mov ecx, ebp
add eax, 0x11
add r13, 8
shl edx, cl
bts edx, eax
test edx, r15d
jne 0x140114b7b
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140114b50
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x1e0]
mov r13, qword [rsp + 0x50]
mov rcx, qword [rdi + 0x180]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
cmp byte [rsp + 0x4f], 0
je 0x140114bfd
mov rcx, rbp
call qword [fcn.14034efb0]
mov rcx, r13
call fcn.1401284e0
mov edx, dword [rdi]
cmp edx, 0xbab1e
je 0x140114c20
xor esi, esi
mov ebp, 1
jmp 0x1401147fc
movzx esi, byte [rdi + 0x18b]
test sil, sil
jne 0x14011522e
mov rbp, qword [rdi + 8]
test rbp, rbp
je 0x140115378
xor r12d, r12d
mov r8, rbp
mov rdx, r13
mov rcx, rdi
call fcn.14012dbd0
mov rbp, qword [rbp + 8]
test eax, eax
cmovne r12d, eax
test rbp, rbp
jne 0x140114c40
mov r8, qword [rdi + 0xb0]
mov r14, qword [rsp + 0xe0]
mov r15d, dword [rsp + 0xe8]
test r8, r8
je 0x140114e63
mov qword [rsp + 0x38], rdi
movabs rbp, 0x20c49ba5e353f6
movabs r13, 0xffdf3b645a1cac0a
mov dword [rsp + 0x40], r12d
mov byte [rsp + 0x4f], sil
mov qword [rsp + 0x1e0], rbx
mov ebx, r15d
mov r15, r14
mov r14, qword [rsp + 0x1e0]
nop word cs:[rax + rax]
xor edx, edx
xor ecx, ecx
call fcn.1402c3ba0
cmp qword [rax + 0x20], r15
jg 0x140114f20
jne 0x140114cde
cmp ebx, dword [rax + 0x28]
jl 0x140114f20
mov rdx, qword [rax + 0x10]
cmp rax, rdx
je 0x140114fa0
movdqu xmm2, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x20]
movups xmmword [rdx], xmm2
mov rcx, qword [rax + 0x18]
movups xmmword [rdx + 0x20], xmm1
mov qword [rdx + 0x18], rcx
mov qword [rcx + 0x10], rdx
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rax + 0x30]
pxor xmm6, xmm6
mov qword [rdi + 0xb0], rdx
mov rdx, qword [rsi + 0xec0]
mov rcx, rdx
test rdx, rdx
jne 0x140114d86
jmp 0x140114ef9
mov rax, qword [rsi + 0xed0]
sub r11, 1
cmp rdx, rcx
je 0x140114e88
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x140114d51
mov qword [rcx + 0x10], rdi
test rdi, rdi
je 0x140114ec0
mov qword [rdi + 8], rcx
mov qword [rdx + 0x10], 0
movups xmmword [rdx], xmm6
mov qword [rsi + 0xed8], r11
test rax, rax
je 0x140114d7c
mov rdx, r12
xor ecx, ecx
call rax
mov rcx, qword [rsi + 0xec0]
mov rdx, rdi
mov r12, qword [rdx]
mov r8, qword [r12 + 0x18]
sub r8, r15
cmp r8, rbp
jg 0x140114de2
mov r9d, dword [r12 + 0x20]
cmp r8, r13
jl 0x140114dc9
sub r9d, ebx
imul r8, r8, 0x3e8
movsxd rax, r9d
sar r9d, 0x1f
imul rax, rax, 0x10624dd3
sar rax, 0x26
sub eax, r9d
cdqe
add rax, r8
test rax, rax
jg 0x140114de2
mov r11, qword [rsi + 0xed8]
mov rdi, qword [rdx + 0x10]
test r11, r11
jne 0x140114d30
test rdi, rdi
jne 0x140114d83
test rcx, rcx
je 0x140114ef9
nop dword [rax + rax]
mov rdx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x18]
lea r8, [rsi + 0xe88]
lea rcx, [rsp + 0x60]
mov rbx, qword [rsp + 0x38]
mov qword [rsi + 0xe78], rax
mov qword [rsi + 0xe80], rdx
mov qword [rsp + 0x68], rdx
mov rdx, qword [rbx + 0xb0]
mov qword [rsp + 0x60], rax
call fcn.1401240a0
mov qword [rbx + 0xb0], rax
mov r8, rax
mov r15, qword [rsp + 0xe0]
mov ebx, dword [rsp + 0xe8]
test r8, r8
jne 0x140114cc0
mov rdi, qword [rsp + 0x38]
mov r12d, dword [rsp + 0x40]
mov rbx, r14
movzx esi, byte [rsp + 0x4f]
xor eax, eax
mov ebp, dword [rdi + 0x1c]
mov qword [rdi + 0xb0], rax
test r12d, r12d
jle 0x140114f45
mov edx, dword [rdi]
mov ebp, r12d
jmp 0x1401147fc
mov qword [rsi + 0xec0], rdi
test rdi, rdi
je 0x140114f70
mov qword [rdi + 8], 0
mov qword [rcx + 0x10], 0
movups xmmword [rcx], xmm6
mov qword [rsi + 0xed8], r11
test rax, rax
jne 0x140114d75
jmp 0x140114d7c
pxor xmm0, xmm0
mov qword [rsi + 0xec8], rcx
mov qword [rdx + 0x10], 0
movups xmmword [rdx], xmm0
mov qword [rsi + 0xed8], r11
test rax, rax
je 0x140114ee9
mov rdx, r12
xor ecx, ecx
call rax
mov rcx, qword [rsi + 0xec0]
test rcx, rcx
jne 0x140114df0
mov qword [rsi + 0xe78], 0
mov rax, qword [rsp + 0x38]
mov dword [rsi + 0xe80], 0
mov r8, qword [rax + 0xb0]
jmp 0x140114e39
mov rdi, qword [rsp + 0x38]
mov r12d, dword [rsp + 0x40]
mov rbx, r14
movzx esi, byte [rsp + 0x4f]
mov qword [rdi + 0xb0], rax
mov ebp, dword [rdi + 0x1c]
test r12d, r12d
jg 0x140114e78
mov rcx, rdi
call fcn.140128b80
mov edx, dword [rdi]
test eax, eax
jne 0x140115293
test ebp, ebp
je 0x14011523a
xor ebp, ebp
jmp 0x1401147fc
mov qword [rsi + 0xec8], 0
pxor xmm0, xmm0
mov qword [rcx + 0x10], 0
movups xmmword [rcx], xmm0
mov qword [rsi + 0xed8], r11
test rax, rax
jne 0x140114ee2
jmp 0x140114ef9
mov rdx, qword [rax + 8]
jmp 0x140114d07
cmp byte [rsp + 0x4f], 0
mov eax, dword [rsp + 0x58]
je 0x140114fc5
mov dword [rsp + 0x38], eax
mov rcx, rbp
call qword [fcn.14034efb0]
mov eax, dword [rsp + 0x38]
mov esi, 4
mov edx, dword [rdi]
test esi, esi
jne 0x14011529a
cmp edx, 0xbab1e
jne 0x140114a45
cmp dword [rbx], 0xc0dedbad
jne 0x140114a45
mov rdx, rbx
mov rcx, rdi
mov dword [rsp + 0x38], eax
call fcn.1402c3db0
mov eax, dword [rsp + 0x38]
jmp 0x140114a45
mov dword [rsp + 0x7c], 0xffffffff
mov r12d, 0x3e8
jmp 0x1401148d6
mov dword [rsp + 0x7c], 0
xor r12d, r12d
jmp 0x1401148d6
lea rdx, str.easy_handle_already_used_in_multi_handle
mov rcx, rbx
call fcn.1401234a0
mov eax, 2
jmp 0x140114a45
mov edx, 0x190
mov ecx, 1
call qword [sub.msvcrt.dll_calloc]
mov rdi, rax
test rax, rax
je 0x1401151e5
lea rax, [0x14013fe40]
lea rsi, [0x14013c480]
mov dword [rdi], 0xbab1e
movq xmm3, rax
movq xmm6, rsi
mov rax, qword [0x14048d0c0]
lea rsi, [0x140117630]
movq xmm0, rsi
punpcklqdq xmm6, xmm3
mov qword [rdi + 0x80], 0
lea rsi, [rdi + 0xf0]
mov qword [rdi + 0x98], rax
lea rax, [0x140117620]
movq xmm4, rax
mov rax, qword [fcn.1401172d0]
mov qword [rdi + 0xa8], 0
mov dword [rdi + 0xa0], 7
punpcklqdq xmm0, xmm4
mov qword [rdi + 0xc0], 0
mov qword [rdi + 0xd8], rax
mov qword [rdi + 0xe8], 0
mov dword [rdi + 0xe0], 1
movups xmmword [rdi + 0x88], xmm6
movups xmmword [rdi + 0xc8], xmm0
call fcn.140114670
mov qword [rdi + 0x140], rax
test rax, rax
je 0x1401152bb
mov rdx, qword [0x14048d080]
pxor xmm0, xmm0
mov qword [rdi + 0xf0], 0
mov qword [rdi + 0x118], 0
mov qword [rdi + 0x108], rdx
mov dword [rdi + 0x110], 3
movups xmmword [rdi + 0xf8], xmm6
mov qword [rax + 0xc88], rsi
mov qword [rdi + 0x38], 0
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x58], 0
mov qword [rdi + 0x50], 0
mov byte [rdi + 0x189], 1
mov dword [rdi + 0x148], 0xffffffff
mov dword [rdi + 0x178], 0x64
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x40], xmm0
call qword [sym.imp.WS2_32.dll_WSACreateEvent]
mov qword [rdi + 0x180], rax
test rax, rax
je 0x1401152bb
mov qword [rbx + 0xd8], rdi
jmp 0x1401147b4
cmp dword [rdi], 0xbab1e
je 0x140115356
mov qword [rbx + 0xd8], 0
cmp eax, 3
jne 0x140115036
mov eax, 0x1b
jmp 0x140114a45
cmp byte [rdi + 0x18d], 0
mov esi, 1
je 0x1401148a2
lea r13, [rsp + 0xe0]
mov dword [rsp + 0x7c], 0
xor r12d, r12d
mov byte [rsp + 0x4f], 0
mov rbp, r13
jmp 0x140114af1
lea rbp, [rsp + 0xe0]
jmp 0x140114900
xor esi, esi
mov ebp, 8
jmp 0x1401147fc
cmp edx, 0xbab1e
jne 0x1401147fc
cmp byte [rdi + 0x18b], 0
jne 0x1401147fc
xor esi, esi
cmp qword [rdi + 0x38], 0
lea rcx, [rdi + 0x20]
je 0x1401147fc
mov rdx, qword [rdi + 0x20]
xor r8d, r8d
mov rsi, qword [rdx]
call fcn.14011de00
mov edx, dword [rdi]
mov eax, dword [rsi + 0x28]
movzx esi, byte [rsp + 0x4e]
mov dword [rsp + 0x58], eax
jmp 0x1401147fc
lea r13, [rsp + 0xe0]
jmp 0x140114af1
mov ebp, eax
jmp 0x1401147fc
cmp esi, 3
jne 0x1401153bc
mov eax, 0x1b
jmp 0x140114fd4
mov eax, dword [rsp + 0x58]
mov esi, 3
jmp 0x140114fca
lea rbx, [rsp + 0xe0]
lea rbp, [rdi + 0xc0]
mov dword [rsp + 0xe8], 0
mov rcx, rbx
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xf0], 0
call fcn.140143e50
test rax, rax
je 0x140115316
nop word cs:[rax + rax]
mov rcx, qword [rax + 0x18]
call fcn.140143d20
mov rcx, rbx
call fcn.140143e50
test rax, rax
jne 0x140115300
mov rcx, rbp
call fcn.140143d20
lea rcx, [rdi + 0x80]
call fcn.140143d20
mov rcx, rsi
call fcn.140143d20
lea rcx, [rdi + 0x20]
xor edx, edx
call fcn.14011dea0
lea rcx, [rdi + 0x40]
xor edx, edx
call fcn.14011dea0
mov rcx, rdi
call qword [fcn.14034efb0]
jmp 0x1401151e5
cmp byte [rdi + 0x18b], 0
jne 0x1401151d1
mov rcx, rdi
mov dword [rsp + 0x38], eax
call fcn.1402c4060
mov eax, dword [rsp + 0x38]
jmp 0x1401151d1
mov r8, qword [rdi + 0xb0]
mov r14, qword [rsp + 0xe0]
xor r12d, r12d
mov r15d, dword [rsp + 0xe8]
test r8, r8
jne 0x140114c7d
mov ebp, dword [rdi + 0x1c]
jmp 0x140114f45
mov eax, dword [rsp + 0x58]
mov esi, 0xc
jmp 0x140114fca
mov eax, dword [rsp + 0x58]
mov esi, ebp
jmp 0x140114fcc
mov eax, 0x2b
jmp 0x140114fd4