Function at 0x180019cac
Capabilities:
Initialize winsock library

Disassembly:
mov rax, rsp
push r13
push r14
push r15
sub rsp, 0x9d0
mov qword [rax - 0x628], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
movaps xmmword [rax - 0x28], xmm6
mov r14, r9
mov rdi, r8
mov r15, rdx
mov r12, rcx
mov ecx, 0x38
call fcn.18013133c
mov rsi, rax
mov qword [rsp + 0x410], rax
mov rcx, rax
call fcn.1800178f4
mov ebx, eax
mov dword [rsp + 0xd0], eax
call fcn.1800159e0
mov r8, rax
mov edx, ebx
lea rcx, [rsp + 0x518]
call fcn.1800164a8
lea rdx, str.mutex
lea rcx, [rsp + 0x518]
call fcn.1800173c0
nop
lea rax, [rsp + 0x88]
mov qword [rsi + 0x28], rax
xor r13d, r13d
mov qword [rsi + 0x30], r13
mov qword [rsp + 0x88], rsi
lea esi, [r13 + 1]
mov eax, esi
lock xadd dword [0x1801ffbf0], eax
add eax, esi
cmp eax, esi
jne 0x180019d86
lea ecx, [rsi + 1]
lea rdx, [rsp + 0x810]
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [rsp + 0xd4], eax
xchg dword [0x1801ffbf4], eax
mov ebx, r13d
lock xadd dword [0x1801ffbf4], ebx
mov dword [rsp + 0xd8], ebx
test ebx, ebx
je 0x180019dc8
call fcn.1800159e0
mov r8, rax
mov edx, ebx
lea rcx, [rsp + 0x530]
call fcn.1800164a8
lea rdx, str.winsock
lea rcx, [rsp + 0x530]
call fcn.1800173c0
nop
mov ecx, 0xb0
call fcn.18013133c
mov qword [rsp + 0x418], rax
xor r9d, r9d
lea rdx, [rsp + 0x88]
mov rcx, rax
call fcn.180017e58
mov rbx, rax
mov qword [rsp + 0x420], rax
mov qword [rsp + 0xe0], rax
mov rdx, rax
mov rcx, qword [rsp + 0x88]
call fcn.18001d90c
mov qword [rsp + 0xe0], r13
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0xa0]
call fcn.18001b038
nop
mov rdx, qword [rsp + 0xa8]
sub rdx, qword [rsp + 0xa0]
mov rax, rdx
neg rax
sbb rcx, rcx
and rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x428], rcx
mov qword [rsp + 0x430], rdx
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rdx
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x750]
call fcn.18001955c
nop
mov qword [rsp + 0x4d8], r13
mov qword [rsp + 0x200], r14
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x208], rax
lea rax, [rsp + 0x750]
mov qword [rsp + 0x210], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x218], rax
lea rax, [rsp + 0x4a0]
mov qword [rsp + 0x220], rax
mov qword [rsp + 0x148], r13
lea rax, [rsp + 0x110]
mov qword [rsp + 0x438], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x3a8], rax
lea rbx, vtable.std::_Func_base_void__class_boost::system::error_code_const____ptr64__unsigned_long_long_unsigned___int64__.0
mov qword [rsp + 0x110], rbx
lea rax, vtable.std::_Func_impl_class__lambda_59de4274ea33a419a92199225f41a318___class_std::allocator_int___void__class_boost::system::error_code_const____ptr64__unsigned_long_long_unsigned___int64__.0
mov qword [rsp + 0x110], rax
movups xmm0, xmmword [rsp + 0x200]
movups xmmword [rsp + 0x118], xmm0
movups xmm1, xmmword [rsp + 0x210]
movups xmmword [rsp + 0x128], xmm1
movsd xmm0, qword [rsp + 0x220]
movsd qword [rsp + 0x138], xmm0
lea rax, [rsp + 0x110]
mov qword [rsp + 0x148], rax
lea rdx, [rsp + 0x4a0]
lea rcx, [rsp + 0x110]
call fcn.18001d4f0
nop
mov rcx, qword [rsp + 0x148]
test rcx, rcx
je 0x180019f9c
mov rax, qword [rcx]
lea rdx, [rsp + 0x110]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rsp + 0x148], r13
lea rcx, [rsp + 0xb8]
call fcn.18001b038
nop
mov rdx, qword [rsp + 0xc0]
sub rdx, qword [rsp + 0xb8]
mov rax, rdx
neg rax
sbb rcx, rcx
and rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x440], rcx
mov qword [rsp + 0x448], rdx
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rdx
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x690]
call fcn.18001955c
nop
mov qword [rsp + 0x498], r13
mov rax, qword [rsp + 0xa10]
mov qword [rsp + 0x1d8], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x1e0], rax
lea rax, [rsp + 0x690]
mov qword [rsp + 0x1e8], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x1f0], rax
lea rax, [rsp + 0x460]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x188], r13
lea rax, [rsp + 0x150]
mov qword [rsp + 0x458], rax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x150], rbx
lea rax, vtable.std::_Func_impl_class__lambda_6b1edc40684587448beb96a6046e705d___class_std::allocator_int___void__class_boost::system::error_code_const____ptr64__unsigned_long_long_unsigned___int64__.0
mov qword [rsp + 0x150], rax
movups xmm0, xmmword [rsp + 0x1d8]
movups xmmword [rsp + 0x158], xmm0
movups xmm1, xmmword [rsp + 0x1e8]
movups xmmword [rsp + 0x168], xmm1
movsd xmm0, qword [rsp + 0x1f8]
movsd qword [rsp + 0x178], xmm0
lea rax, [rsp + 0x150]
mov qword [rsp + 0x188], rax
lea rdx, [rsp + 0x460]
lea rcx, [rsp + 0x150]
call fcn.18001d4f0
nop
mov rcx, qword [rsp + 0x188]
test rcx, rcx
je 0x18001a119
mov rax, qword [rcx]
lea rdx, [rsp + 0x150]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rsp + 0x188], r13
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x348], rax
cmp qword [rdi + 0x18], 0x10
jb 0x18001a12f
mov rdi, qword [rdi]
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0x270], rdi
mov qword [rsp + 0x278], rax
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x5d0]
call fcn.18001955c
nop
lea rcx, [rsp + 0x310]
call fcn.180019a8c
nop
mov rdx, rax
lea rcx, [rsp + 0x598]
call fcn.18001a880
nop
mov rcx, qword [rsp + 0x320]
test rcx, rcx
je 0x18001a1bf
mov rdx, qword [rsp + 0x330]
sub rdx, rcx
sar rdx, 3
mov qword [rsp + 0x350], rdx
mov r8d, 8
call fcn.1800060dc
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x320], xmm0
mov qword [rsp + 0x330], r13
mov rcx, qword [rsp + 0x318]
test rcx, rcx
je 0x18001a1d3
call qword [rsp + 0x310]
lea r8, [0x1801aa7bc]
mov rdx, r12
lea rcx, [rsp + 0x2a0]
call fcn.180013248
nop
mov r8, r15
mov rdx, rax
lea rcx, [rsp + 0x280]
call fcn.180013334
nop
mov rcx, qword [rsp + 0x5d8]
mov qword [rsp + 0x3d0], rcx
lea rcx, [rsp + 0x5d0]
mov qword [rsp + 0x3d8], rcx
mov rcx, qword [rsp + 0x6f8]
mov qword [rsp + 0x3e8], rcx
lea rcx, [rsp + 0x690]
mov qword [rsp + 0x3f0], rcx
mov rcx, qword [rsp + 0x7b8]
mov qword [rsp + 0x400], rcx
lea rcx, [rsp + 0x750]
mov qword [rsp + 0x408], rcx
lea rcx, [rsp + 0x598]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x3c8]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x3e0]
lea r8, [rsp + 0x3f8]
mov rdx, rax
lea rcx, [rsp + 0x1a8]
call fcn.18001c9d4
nop
mov rdx, qword [rsp + 0x298]
cmp rdx, 0x10
jb 0x18001a2c3
inc rdx
mov qword [rsp + 0x358], rdx
mov r8, rsi
mov rcx, qword [rsp + 0x280]
call fcn.1800060dc
mov ebx, SafeArrayGetLBound
mov qword [rsp + 0x298], rbx
mov qword [rsp + 0x290], r13
mov byte [rsp + 0x280], r13b
mov rdx, qword [rsp + 0x2b8]
cmp rdx, 0x10
jb 0x18001a309
inc rdx
mov qword [rsp + 0x360], rdx
mov r8, rsi
mov rcx, qword [rsp + 0x2a0]
call fcn.1800060dc
mov qword [rsp + 0x2b8], rbx
mov qword [rsp + 0x2b0], r13
mov byte [rsp + 0x2a0], r13b
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x368], rax
mov al, byte [rsp + 0x40]
mov byte [rsp + 0x41], al
xor eax, eax
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], r13
movups xmm0, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x550], xmm0
movsd xmm1, qword [rsp + 0x1a0]
movsd qword [rsp + 0x560], xmm1
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x4e8], rax
movups xmm1, xmmword [rsp + 0x270]
movups xmmword [rsp + 0x4f0], xmm1
mov qword [rsp + 0x500], r13
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x510], rax
mov dword [rsp + 0x508], esi
movdqa xmm0, xmm1
psrldq xmm0, 8
movq r8, xmm0
mov rcx, r8
test r8, r8
cmovne rcx, r13
mov qword [rsp + 0x450], rcx
movq rdx, xmm1
add rdx, rcx
mov qword [rsp + 0x370], rdx
sub r8, rcx
mov qword [rsp + 0x378], r8
mov eax, 0x10000
cmp r8, rax
cmovb rax, r8
mov qword [rsp + 0x380], rax
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x230], rax
lea r8, [rsp + 0x4e0]
lea rdx, [rsp + 0x228]
lea rcx, [rsp + 0x5d0]
call fcn.180020e84
lea r8, [rsp + 0x4a0]
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x750]
call fcn.18001c874
lea r8, [rsp + 0x460]
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x690]
call fcn.18001c874
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], r13
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x98]
call fcn.180018484
test byte [rsp + 0x80], sil
je 0x18001a4ae
cmp qword [rsp + 0x80], rsi
jne 0x18001a4bd
cmp dword [rsp + 0x70], r13d
setne al
jmp 0x18001a4b1
mov al, r13b
mov byte [rsp + 0x40], al
test al, al
je 0x18001a5a7
lea r8, [rsp + 0x70]
xor edx, edx
lea rcx, [rsp + 0x2c0]
call fcn.1800174b0
nop
cmp qword [rax + 0x18], 0x10
jb 0x18001a4dc
mov rax, qword [rax]
lea rcx, vtable.std::exception.0
mov qword [rsp + 0x2e0], rcx
xor ecx, ecx
mov qword [rsp + 0x2e8], rcx
mov qword [rsp + 0x2f0], rcx
mov qword [rsp + 0x238], rax
mov byte [rsp + 0x240], sil
lea rdx, [rsp + 0x2e8]
lea rcx, [rsp + 0x238]
call fcn.180151264
nop
lea rax, vtable.std::runtime_error.0
mov qword [rsp + 0x2e0], rax
mov rdx, qword [rsp + 0x2d8]
cmp rdx, 0x10
jb 0x18001a553
inc rdx
mov r8, rsi
mov rcx, qword [rsp + 0x2c0]
call fcn.1800060dc
mov qword [rsp + 0x2d8], rbx
mov qword [rsp + 0x2d0], r13
mov byte [rsp + 0x2c0], r13b
lea rax, vtable.boost::system::system_error.0
mov qword [rsp + 0x2e0], rax
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x2f8], xmm0
movsd xmm1, qword [rsp + 0x80]
movsd qword [rsp + 0x308], xmm1
lea rcx, [rsp + 0x2e0]
call fcn.18001b958
nop
mov dword [rsp + 0x60], r13d
call fcn.180015834
mov qword [rsp + 0x68], rax
cmp byte [rsp + 0x1d1], r13b
jne 0x18001a70c
mov rax, qword [rsp + 0x1c0]
mov ecx, dword [rax]
mov dword [rsp + 0x4c], ecx
cmp ecx, 0x103
jne 0x18001a70c
mov rcx, qword [rsp + 0x1a8]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x18001a70c
mov dword [rsp + 0x44], esi
or ebx, 0xffffffff
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x18001a636
call fcn.180015834
mov rbx, rax
mov qword [rsp + 0x388], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x250], eax
mov qword [rsp + 0x258], rbx
movaps xmm6, xmmword [rsp + 0x250]
jmp 0x18001a67a
lea rdx, [rsp + 0x44]
mov rcx, qword [rsp + 0x1a8]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x18001a681
call fcn.180015834
mov rbx, rax
mov qword [rsp + 0x3b8], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x260], eax
mov qword [rsp + 0x268], rbx
movaps xmm6, xmmword [rsp + 0x260]
movaps xmmword [rsp + 0x60], xmm6
jmp 0x18001a695
mov dword [rsp + 0x60], r13d
call fcn.180015834
mov qword [rsp + 0x68], rax
movaps xmm6, xmmword [rsp + 0x60]
mov rcx, qword [rsp + 0x1a8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rsp + 0x1a8], 0xffffffffffffffff
cmp dword [rsp + 0x60], r13d
jne 0x18001a6c3
mov ecx, dword [rsp + 0x44]
mov rax, qword [rsp + 0x1c0]
xchg dword [rax], ecx
jmp 0x18001a70c
movdqa xmmword [rsp + 0x390], xmm6
lea r8, str.wait_error
lea rdx, [rsp + 0x390]
lea rcx, [rsp + 0x570]
call fcn.1800079f4
nop
lea rax, vtable.boost::process::process_error.0
mov qword [rsp + 0x570], rax
lea rdx, [0x1801e5960]
lea rcx, [rsp + 0x570]
call fcn.180153440
mov rax, qword [rsp + 0x1c0]
mov ecx, dword [rax]
mov dword [rsp + 0x50], ecx
mov eax, ecx
mov dword [rsp + 0x48], ecx
lea rcx, [rsp + 0x1a8]
call fcn.180019878
nop
lea rcx, [rsp + 0x598]
call fcn.180019c38
nop
lea rcx, [rsp + 0x5d0]
call fcn.180019750
nop
mov rcx, qword [rsp + 0x498]
test rcx, rcx
je 0x18001a773
mov rax, qword [rcx]
lea rdx, [rsp + 0x460]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rsp + 0x498], r13
lea rcx, [rsp + 0x690]
call fcn.180019750
nop
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x18001a7bd
mov rdx, qword [rsp + 0xc8]
sub rdx, rcx
mov qword [rsp + 0x3b0], rdx
mov r8, rsi
call fcn.1800060dc
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], r13
mov rcx, qword [rsp + 0x4d8]
test rcx, rcx
je 0x18001a7e6
mov rax, qword [rcx]
lea rdx, [rsp + 0x4a0]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rsp + 0x4d8], r13
lea rcx, [rsp + 0x750]
call fcn.180019750
nop
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x18001a830
mov rdx, qword [rsp + 0xb0]
sub rdx, rcx
mov qword [rsp + 0x3a0], rdx
mov r8, rsi
call fcn.1800060dc
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], r13
or eax, 0xffffffff
lock xadd dword [0x1801ffbf0], eax
cmp eax, 1
jne 0x18001a847
call qword [sym.imp.WS2_32.dll_WSACleanup]
nop
lea rcx, [rsp + 0x88]
call fcn.180017ad4
nop
mov eax, dword [rsp + 0x48]
lea r11, [rsp + 0x9d0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
ret