Function at 0x14002bb10
Capabilities:
Initialize winsock library

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x14008a6c0]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
movzx r14d, r8b
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x28], rcx
xor r15d, r15d
mov byte [rcx], r15b
mov ecx, 0x202
lea rdx, [rbp + 0x20]
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov ebx, eax
test eax, eax
jne 0x14002c69d
movzx eax, word [rbp + 0x20]
cmp al, 2
jne 0x14002c674
shr ax, 8
cmp al, 2
jne 0x14002c674
mov byte [rdi], 1
mov byte [rdi + 1], r14b
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rdi + 8], xmm0
mov qword [rdi + 0x18], r15
mov r8d, recv
mov qword [rdi + 0x20], r8
mov byte [rdi + 8], bl
vmovups xmmword [rdi + 0x28], xmm0
mov qword [rdi + 0x38], r15
mov qword [rdi + 0x40], r8
mov byte [rdi + 0x28], bl
vmovups xmmword [rdi + 0x48], xmm0
mov qword [rdi + 0x58], r15
mov qword [rdi + 0x60], r8
mov byte [rdi + 0x48], bl
vmovups xmmword [rdi + 0x68], xmm0
mov qword [rdi + 0x78], r15
mov qword [rdi + 0x80], r8
mov byte [rdi + 0x68], bl
vmovups xmmword [rdi + 0x88], xmm0
mov qword [rdi + 0x98], r15
mov qword [rdi + 0xa0], r8
mov byte [rdi + 0x88], bl
mov r12, qword [rsi + 0x10]
mov r15, rsi
mov rax, qword [rsi + 0x18]
cmp rax, r8
jbe 0x14002bc09
mov r15, qword [rsi]
mov r13, 0xffffffffffffffff
cmp r12, 3
jb 0x14002bc80
lea r14, [r12 + r15]
lea r8, [r14 - 2]
sub r8, r15
lea edx, [r13 + 0x3b]
mov rcx, r15
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
je 0x14002bc76
cmp byte [rbx], 0x3a
jne 0x14002bc4a
cmp byte [rbx + 1], 0x2f
jne 0x14002bc4a
cmp byte [rbx + 2], 0x2f
jne 0x14002bc4a
xor eax, eax
jmp 0x14002bc4f
sbb eax, eax
or eax, 1
test eax, eax
je 0x14002bd43
inc rbx
lea r8, [r14 - 2]
sub r8, rbx
mov edx, 0x3a
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
jne 0x14002bc35
mov r8d, recv
mov rax, qword [rsi + 0x18]
mov rbx, r13
movabs r13, 0x7fffffffffffffff
movabs r9, 0x8000000000000000
cmp rbx, 0xffffffffffffffff
je 0x14002be99
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x78], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp - 0x78], xmm1
mov r8, rbx
cmp r12, rbx
cmovb r8, r12
mov rdx, rsi
cmp rax, 0xf
jbe 0x14002bcca
mov rdx, qword [rsi]
lea rcx, [rsp + 0x78]
call fcn.1400048f0
lea r14, [rdi + 8]
lea rax, [rsp + 0x78]
cmp r14, rax
je 0x14002bd55
mov rdx, qword [r14 + 0x18]
cmp rdx, 0xf
jbe 0x14002bd1c
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x14002bd17
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [r14 + 0x10], 0
mov r15d, recv
mov byte [r14], 0
vmovups ymm0, ymmword [rsp + 0x78]
vmovups ymmword [r14], ymm0
mov edx, r15d
mov byte [rsp + 0x78], 0
jmp 0x14002bd5f
sub rbx, r15
mov r8d, recv
mov rax, qword [rsi + 0x18]
jmp 0x14002bc83
mov rdx, qword [rbp - 0x70]
mov r15d, recv
cmp rdx, 0xf
jbe 0x14002bd9a
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002bd92
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002c5f6
vzeroupper
call fcn.14004e814
add rbx, 3
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x68], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp - 0x58], xmm1
mov rax, qword [rsi + 0x10]
cmp rax, rbx
jb 0x14002c66b
sub rax, rbx
mov r12, 0xffffffffffffffff
mov r8, r12
cmp rax, r12
cmovb r8, rax
cmp qword [rsi + 0x18], 0xf
jbe 0x14002bddb
mov rsi, qword [rsi]
lea rdx, [rsi + rbx]
lea rcx, [rbp - 0x68]
vzeroupper
call fcn.1400048f0
lea rbx, [rdi + 0x88]
lea rax, [rbp - 0x68]
cmp rbx, rax
je 0x14002be52
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14002be35
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14002be30
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [rbx + 0x10], 0
mov byte [rbx], 0
vmovups ymm0, ymmword [rbp - 0x68]
vmovups ymmword [rbx], ymm0
mov rdx, r15
mov byte [rbp - 0x68], 0
jmp 0x14002be56
mov rdx, qword [rbp - 0x50]
cmp rdx, 0xf
jbe 0x14002bf9c
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002be8c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002c5f6
vzeroupper
call fcn.14004e814
jmp 0x14002bf9c
mov rcx, qword [rdi + 0x20]
cmp rcx, 4
jb 0x14002bec8
lea rax, [rdi + 8]
cmp rcx, 0xf
jbe 0x14002beb1
mov rax, qword [rdi + 8]
mov qword [rdi + 0x18], 4
mov dword [rax], 0x70747468
mov byte [rax + 4], 0
jmp 0x14002bf73
mov rdx, rcx
shr rdx, 1
mov rax, r13
sub rax, rdx
cmp rcx, rax
jbe 0x14002bee2
mov r14, r13
lea rax, [r9 + 0x27]
jmp 0x14002bf0b
lea rax, [rcx + rdx]
mov r14, r8
cmp rax, 0xf
cmova r14, rax
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x14002bf43
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14002c6d3
mov rcx, rax
call fcn.14004e7d8
mov rcx, rax
test rax, rax
je 0x14002c5f6
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov qword [rdi + 0x18], 4
mov qword [rdi + 0x20], r14
mov dword [rax], 0x70747468
mov byte [rax + 4], 0
jmp 0x14002bf6f
test rcx, rcx
je 0x14002bf4f
call fcn.14004e7d8
jmp 0x14002bf2b
xor eax, eax
mov qword [rdi + 0x18], 4
mov qword [rdi + 0x20], r14
mov dword [0], 0x70747468
mov byte [4], al
mov qword [rdi + 8], rax
lea rcx, [rdi + 0x88]
cmp rcx, rsi
je 0x14002bf95
mov r8, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0xf
jbe 0x14002bf8d
mov rsi, qword [rsi]
mov rdx, rsi
call fcn.14000aa60
mov r12, 0xffffffffffffffff
lea rbx, [rdi + 0x88]
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0xf
jbe 0x14002bfb1
mov rbx, qword [rbx]
test r8, r8
je 0x14002bfe6
mov edx, 0x23
mov rcx, rbx
vzeroupper
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14002bfe6
sub rax, rbx
cmp rax, 0xffffffffffffffff
je 0x14002bfe6
lea rcx, [rdi + 0x88]
xor r8d, r8d
mov rdx, rax
call fcn.14001be60
lea r14, [rdi + 0x88]
mov rbx, qword [r14 + 0x10]
mov r15, qword [r14 + 0x18]
cmp r15, 0xf
jbe 0x14002bffe
mov r14, qword [r14]
test rbx, rbx
je 0x14002c254
mov r8, rbx
mov edx, 0x2f
mov rcx, r14
vzeroupper
call sub.VCRUNTIME140.dll_memchr
mov rsi, rax
test rax, rax
je 0x14002c254
sub rsi, r14
cmp rsi, 0xffffffffffffffff
je 0x14002c254
lea rdx, [rdi + 0x88]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x48], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp - 0x38], xmm1
mov r8, rsi
cmp rbx, rsi
cmovb r8, rbx
cmp r15, 0xf
jbe 0x14002c05f
mov rdx, qword [rdx]
lea rcx, [rbp - 0x48]
call fcn.1400048f0
lea rbx, [rdi + 0x28]
lea rax, [rbp - 0x48]
cmp rbx, rax
je 0x14002c0d2
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14002c0af
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14002c0aa
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [rbx + 0x10], 0
mov r14d, recv
mov byte [rbx], 0
vmovups ymm0, ymmword [rbp - 0x48]
vmovups ymmword [rbx], ymm0
mov edx, r14d
mov byte [rbp - 0x48], 0
jmp 0x14002c0dc
mov rdx, qword [rbp - 0x30]
mov r14d, recv
cmp rdx, 0xf
jbe 0x14002c116
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002c10e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002c5f6
vzeroupper
call fcn.14004e814
lea rax, [rdi + 0x88]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp - 0x18], xmm1
mov rcx, qword [rax + 0x10]
cmp rcx, rsi
jb 0x14002c66b
sub rcx, rsi
mov r8, r12
cmp rcx, 0xffffffffffffffff
cmovb r8, rcx
cmp qword [rax + 0x18], 0xf
jbe 0x14002c154
mov rax, qword [rax]
lea rdx, [rsi + rax]
lea rcx, [rbp - 0x28]
vzeroupper
call fcn.1400048f0
lea rbx, [rdi + 0x88]
lea rax, [rbp - 0x28]
cmp rbx, rax
je 0x14002c1cb
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14002c1ae
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14002c1a9
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [rbx + 0x10], 0
mov byte [rbx], 0
vmovups ymm0, ymmword [rbp - 0x28]
vmovups ymmword [rbx], ymm0
mov rdx, r14
mov byte [rbp - 0x28], 0
jmp 0x14002c1cf
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x14002c209
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002c201
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002c5f6
vzeroupper
call fcn.14004e814
mov r13d, recv
lea rbx, [rdi + 0x28]
mov r14, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
cmp r15, 0xf
jbe 0x14002c224
mov rbx, qword [rbx]
test r14, r14
je 0x14002c481
mov r8, r14
mov edx, 0x3a
mov rcx, rbx
vzeroupper
call sub.VCRUNTIME140.dll_memchr
mov rsi, rax
test rax, rax
je 0x14002c481
sub rsi, rbx
jmp 0x14002c484
lea r12, [rdi + 0x88]
lea rsi, [rdi + 0x28]
cmp rsi, r12
je 0x14002c3a2
cmp r15, 0xf
jbe 0x14002c272
mov r12, qword [r12]
mov r15, qword [rsi + 0x18]
cmp rbx, r15
ja 0x14002c2a6
mov r14, rsi
cmp r15, 0xf
jbe 0x14002c287
mov r14, qword [rsi]
mov qword [rsi + 0x10], rbx
mov r8, rbx
mov rdx, r12
mov rcx, r14
vzeroupper
call sub.VCRUNTIME140.dll_memmove
mov byte [r14 + rbx], 0
jmp 0x14002c3a2
cmp rbx, r13
ja 0x14002c6ca
mov rcx, rbx
or rcx, 0xf
cmp rcx, r13
jbe 0x14002c2cb
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14002c313
mov rdx, r15
shr rdx, 1
mov rax, r13
sub rax, rdx
cmp r15, rax
jbe 0x14002c2ec
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14002c313
lea rax, [rdx + r15]
cmp rcx, rax
cmovb rcx, rax
mov r13, rcx
inc rcx
cmp rcx, 0x1000
jb 0x14002c335
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14002c6d3
mov rcx, rax
vzeroupper
call fcn.14004e7d8
test rax, rax
je 0x14002c5f6
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x14002c34a
test rcx, rcx
je 0x14002c347
vzeroupper
call fcn.14004e7d8
mov r14, rax
jmp 0x14002c34a
xor r14d, r14d
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], r13
mov r8, rbx
mov rdx, r12
mov rcx, r14
vzeroupper
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + rbx], 0
cmp r15, 0xf
jbe 0x14002c39f
mov rcx, qword [rsi]
lea rdx, [r15 + 1]
cmp rdx, 0x1000
jb 0x14002c39a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [rsi], r14
lea rbx, [rdi + 0x88]
mov rcx, qword [rbx + 0x18]
cmp rcx, 1
jb 0x14002c3d8
mov rax, rbx
cmp rcx, 0xf
jbe 0x14002c3bf
mov rax, qword [rbx]
mov qword [rbx + 0x10], 1
mov word [rax], 0x2f
mov r12, 0xffffffffffffffff
jmp 0x14002c209
mov rax, rcx
shr rax, 1
add rcx, rax
mov r13d, recv
mov esi, r13d
cmp rcx, r13
cmova rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x14002c44e
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14002c6d3
mov rcx, rax
vzeroupper
call fcn.14004e7d8
mov rcx, rax
test rax, rax
je 0x14002c5f6
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov qword [rbx + 0x10], 1
mov qword [rbx + 0x18], rsi
mov word [rax], 0x2f
mov qword [rbx], rax
mov r12, 0xffffffffffffffff
jmp 0x14002c20f
test rcx, rcx
je 0x14002c45d
vzeroupper
call fcn.14004e7d8
jmp 0x14002c42e
xor eax, eax
mov qword [rbx + 0x10], 1
mov qword [rbx + 0x18], rsi
mov word [0], 0x2f
mov qword [rbx], rax
lea r12, [rax - 1]
jmp 0x14002c20f
mov rsi, r12
lea rdx, [rdi + 0x28]
cmp rsi, 0xffffffffffffffff
je 0x14002c607
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 8], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp + 8], xmm1
mov r8, rsi
cmp r14, rsi
cmovb r8, r14
cmp r15, 0xf
jbe 0x14002c4b7
mov rdx, qword [rdx]
lea rcx, [rbp - 8]
vzeroupper
call fcn.1400048f0
lea rbx, [rdi + 0x48]
lea rax, [rbp - 8]
cmp rbx, rax
je 0x14002c524
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14002c50a
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14002c505
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002c5f6
mov rcx, r8
call fcn.14004e814
mov qword [rbx + 0x10], 0
mov byte [rbx], 0
vmovups ymm0, ymmword [rbp - 8]
vmovups ymmword [rbx], ymm0
mov byte [rbp - 8], 0
jmp 0x14002c528
mov r13, qword [rbp + 0x10]
cmp r13, 0xf
jbe 0x14002c563
lea rdx, [r13 + 1]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002c55b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002c5f6
vzeroupper
call fcn.14004e814
lea rax, [rdi + 0x28]
inc rsi
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x58], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rsp + 0x68], xmm1
mov rcx, qword [rax + 0x10]
cmp rcx, rsi
jb 0x14002c66b
sub rcx, rsi
cmp rcx, 0xffffffffffffffff
cmovb r12, rcx
cmp qword [rax + 0x18], 0xf
jbe 0x14002c5a0
mov rax, qword [rax]
lea rdx, [rax + rsi]
mov r8, r12
lea rcx, [rsp + 0x58]
vzeroupper
call fcn.1400048f0
lea rcx, [rdi + 0x68]
lea rdx, [rsp + 0x58]
call fcn.14002d420
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x14002c63e
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002c600
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002c600
vzeroupper
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14004e814
jmp 0x14002c63e
lea rcx, [rdi + 0x48]
cmp rcx, rdx
je 0x14002c624
cmp r15, 0xf
jbe 0x14002c619
mov rdx, qword [rdx]
mov r8, r14
vzeroupper
call fcn.14000aa60
lea rcx, [rdi + 0x68]
mov r8d, 2
lea rdx, [0x14005bf24]
vzeroupper
call fcn.14000aa60
nop
mov rax, rdi
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.14004eb70
mov rbx, qword [rsp + 0x320]
add rsp, 0x2d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
vzeroupper
call fcn.1400304b0
nop
call qword [sym.imp.WS2_32.dll_WSACleanup]
lea rdx, str.Invalid_WinSock_version
lea rcx, [rsp + 0x58]
call fcn.14002cd20
lea rdx, [0x1400861c0]
lea rcx, [rsp + 0x58]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
call fcn.140036580
mov r8, rax
lea r9, str.WSAStartup_failed
mov edx, ebx
lea rcx, [rsp + 0x30]
call fcn.14002cdb0
lea rdx, [0x140085fc0]
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
vzeroupper
call fcn.1400063d0
int3
vzeroupper
call fcn.140006220
int3