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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0xa8]
sub rsp, 0x1a8
mov rax, qword [0x1402e1040]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0x100]
xor edi, edi
mov r12d, r8d
mov r13, rdx
mov dword [rsp + 0x3c], r9d
mov r15, rcx
mov dword [rsp + 0x44], r12d
mov esi, edi
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x70], rax
test rcx, rcx
je 0x140108f68
cmp dword [rcx], 0xbab1e
jne 0x140108f68
cmp byte [rcx + 0x22b], sil
je 0x140108a0a
mov eax, 8
jmp 0x140108f6d
test r9d, r9d
jns 0x140108a19
mov eax, 0xa
jmp 0x140108f6d
xorps xmm0, xmm0
mov qword [rsp + 0x1f0], rbx
lea rax, [rbp - 0x10]
mov qword [rsp + 0x1a0], r14
mov r14, qword [rcx + 8]
mov qword [rsp + 0x58], rax
xor eax, eax
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x64], 0xa
mov qword [rbp - 0x50], rax
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
test r14, r14
je 0x140108ad8
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.140108420
mov r9d, dword [rbp - 0x58]
mov rbx, rdi
test r9d, r9d
je 0x140108acf
nop dword [rax]
movzx eax, byte [rbp + rbx - 0x54]
and al, 1
neg al
sbb cx, cx
and cx, 0x300
movzx r8d, cx
or r8w, 0x10
test byte [rbp + rbx - 0x54], 2
cmove r8w, cx
test r8w, r8w
je 0x140108ac4
mov rdx, qword [rbp + rbx*8 - 0x80]
lea rcx, [rsp + 0x58]
mov r9b, 1
call fcn.140135760
test eax, eax
jne 0x140108aed
mov r9d, dword [rbp - 0x58]
inc rbx
mov eax, r9d
cmp rbx, rax
jb 0x140108a80
mov r14, qword [r14 + 0x10]
test r14, r14
jne 0x140108a61
lea rcx, [r15 + 0x158]
lea rdx, [rsp + 0x58]
call fcn.14011f500
test eax, eax
je 0x140108afc
mov rbx, qword [rsp + 0x58]
mov edi, 3
jmp 0x140108f44
mov r14d, dword [rsp + 0x60]
mov rbx, rdi
mov dword [rsp + 0x40], r14d
mov r8d, 0x400
mov dword [rsp + 0x38], r14d
test r12, r12
je 0x140108b86
mov r14, r13
nop dword [rax]
movzx r9d, word [r14 + 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 + 0x58]
movzx r8d, dx
or r8w, 0x10
test r9b, 4
cmove r8w, dx
mov rdx, qword [r14]
xor r9d, r9d
call fcn.140135760
test eax, eax
jne 0x140108aed
inc rbx
add r14, 0x10
mov r8d, 0x400
cmp rbx, r12
jb 0x140108b20
mov r14d, dword [rsp + 0x60]
mov dword [rsp + 0x40], r14d
mov rbx, qword [rsp + 0x58]
mov r12, rdi
mov r13d, r14d
mov ecx, 0x300
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x30], rbx
test r14d, r14d
je 0x140108c71
mov r14, rbx
nop dword [rax]
movzx edx, word [r14 + 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 0x140108c26
mov r13, qword [r14]
lea rax, [rsp + 0x7c]
mov rcx, r13
mov dword [rsp + 0x7c], 4
lea r9, [rsp + 0x78]
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 0x140108c21
cmp dword [rsp + 0x78], 1
jne 0x140108c21
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [sym.imp.WS2_32.dll_send]
mov r13, qword [rsp + 0x48]
test ebx, ebx
je 0x140108c41
mov rdx, qword [r15 + 0x218]
mov r8d, ebx
mov rcx, qword [r14]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x140108c5d
inc r12
add r14, 0x10
cmp r12, r13
jae 0x140108c67
mov ecx, 0x300
mov r8d, 0x400
jmp 0x140108bb0
mov edi, 3
jmp 0x140108f3f
mov rbx, qword [rsp + 0x30]
mov r14d, dword [rsp + 0x40]
lea rdx, [rsp + 0x78]
mov rcx, r15
call fcn.14010c120
mov eax, dword [rsp + 0x78]
mov r12d, dword [rsp + 0x3c]
test eax, eax
js 0x140108c97
cmp eax, r12d
cmovl r12d, eax
mov dword [rsp + 0x3c], r12d
movzx ecx, byte [rbp + 0x110]
test r14d, r14d
jne 0x140108d81
test cl, cl
je 0x140108ec5
mov r14d, edi
lea rdx, [r15 + 0x218]
mov dword [rsp + 0x20], edi
mov r9d, r12d
xor r8d, r8d
mov ecx, 1
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov eax, dword [rsp + 0x44]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140108e1b
mov rcx, qword [rsp + 0x50]
mov r12d, dword [rsp + 0x38]
shl r12, 4
sub rcx, r12
mov qword [rsp + 0x50], rcx
nop word [rax + rax]
movsx eax, word [r12 + rbx + 0xa]
lea r8, [rbp - 0x48]
mov r13, qword [rcx + r12]
xor edx, edx
mov rcx, r13
mov dword [rsp + 0x44], eax
movzx ebx, di
mov dword [rbp - 0x48], edi
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x140108dad
mov r8d, dword [rbp - 0x48]
mov ecx, edi
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
movzx ebx, cx
cmp qword [rsp + 0x70], rdi
je 0x140108dad
test r14d, r14d
jne 0x140108dad
test r8d, r8d
je 0x140108dad
mov rdx, qword [r15 + 0x218]
inc esi
xor r8d, r8d
mov rcx, r13
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
jmp 0x140108dfb
xor r8d, r8d
mov edx, r14d
mov rcx, rbx
call fcn.140135350
mov r14d, eax
test eax, eax
jns 0x140108da0
mov edi, listen
jmp 0x140108f44
jle 0x140108cb2
mov esi, eax
jmp 0x140108cce
mov rdx, qword [r15 + 0x218]
xor r8d, r8d
mov rcx, r13
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test r14d, r14d
je 0x140108dfb
mov r8d, dword [rsp + 0x44]
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 rcx, qword [rsp + 0x50]
mov word [rcx + r12 + 0xa], bx
add r12, 0x10
sub qword [rsp + 0x48], 1
mov rbx, qword [rsp + 0x30]
jne 0x140108d00
cmp dword [rsp + 0x38], edi
je 0x140108eac
mov r13, qword [r15 + 8]
mov qword [rsp + 0x50], r13
test r13, r13
je 0x140108eac
lea rdx, [rbp - 0x80]
mov rcx, r13
call fcn.140108420
mov rbx, rdi
cmp dword [rbp - 0x58], ebx
jbe 0x140108e9e
mov r13, qword [rsp + 0x70]
nop dword [rax]
mov rcx, qword [rbp + rbx*8 - 0x80]
lea r8, [rbp - 0x48]
xor edx, edx
mov dword [rbp - 0x48], edi
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x140108e79
test r13, r13
je 0x140108e79
test r14d, r14d
jne 0x140108e79
cmp dword [rbp - 0x48], edi
je 0x140108e79
inc esi
mov rdx, qword [r15 + 0x218]
xor r8d, r8d
mov rcx, qword [rbp + rbx*8 - 0x80]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov eax, dword [rbp - 0x58]
inc rbx
cmp rbx, rax
jb 0x140108e50
mov r13, qword [rsp + 0x50]
mov r13, qword [r13 + 0x10]
mov qword [rsp + 0x50], r13
test r13, r13
jne 0x140108e33
mov rcx, qword [r15 + 0x218]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
movzx ecx, byte [rbp + 0x110]
mov r14d, dword [rsp + 0x40]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x140108ed1
mov dword [rax], esi
cmp byte [rbp + 0x108], dil
je 0x140108f3f
test r14d, r14d
jne 0x140108f3f
test cl, cl
jne 0x140108f3f
cmp dword [r15], 0xbab1e
mov dword [rsp + 0x38], edi
jne 0x140108f3f
cmp byte [r15 + 0x22b], dil
jne 0x140108f3f
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.14010c120
test eax, eax
jne 0x140108f3f
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x140108f3f
mov r9d, dword [rsp + 0x3c]
cmp eax, r9d
jg 0x140108f20
test eax, eax
jns 0x140108f23
mov eax, r9d
movsxd rcx, eax
test eax, eax
je 0x140108f3f
jns 0x140108f39
mov ecx, 0x2726
call qword [sym.imp.WS2_32.dll_WSASetLastError]
jmp 0x140108f3f
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rbx, qword [rsp + 0x30]
cmp byte [rsp + 0x68], 0
mov r14, qword [rsp + 0x1a0]
je 0x140108f5c
mov rcx, rbx
call qword [0x1402e1138]
mov rbx, qword [rsp + 0x1f0]
mov eax, edi
jmp 0x140108f6d
mov eax, 1
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140171bd0
add rsp, 0x1a8
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret