Function at 0x18000ce14
Capabilities:
Initialize winsock library

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x388
xor edx, edx
mov rsi, rcx
mov rcx, r9
mov ebx, edx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0xa0], edx
mov qword [rax - 0x2b0], rdx
mov dword [rax - 0x31c], edx
mov rbp, rdx
mov qword [rsp + 0x108], r8
call fcn.180019834
xor edx, edx
mov qword [rsp + 0x128], rax
mov edi, dword [rsp + 0x3b0]
mov r8, qword [rsp + 0x108]
mov dword [rsp + 0x44], edx
lea rcx, [r8 + 4]
mov r8d, dword [r8]
mov eax, edx
add edx, 1
mov dword [rsp + rax*4 + 0x70], r8d
add r8, rcx
cmp edx, 6
mov qword [rsp + rax*8 + 0xc0], rcx
mov dword [rsp + 0x44], edx
jb 0x18000ce7d
xor edx, edx
cmp dword [rsp + 0x70], 1
mov qword [rsp + 0x108], r8
jbe 0x18000d952
mov rax, qword [rsp + 0xc0]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
call fcn.18000bde0
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0xf4]
lea rdx, [rsp + 0xf0]
call fcn.18000c618
xor edx, edx
cmp rax, rdx
je 0x18000cf11
cmp dword [rsp + 0xf4], edx
jne 0x18000cf11
mov ecx, dword [rsp + 0xf0]
cmp ecx, edx
je 0x18000cf44
cmp dword [rsp + 0x3d0], edx
je 0x18000cf3f
cmp ecx, 8
je 0x18000cf44
mov rax, qword [rsp + 0xc0]
cmp qword [rsp + 0x50], rax
je 0x18000ce71
mov r8, qword [rsp + 0x50]
xor edx, edx
mov rcx, qword [0x1800307d8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor edx, edx
jmp 0x18000ce71
cmp ecx, 7
jne 0x18000cf11
mov rdx, qword [rsp + 0x128]
mov rcx, rax
call fcn.180018b64
xor edx, edx
cmp eax, edx
je 0x18000cf11
mov rax, qword [rsp + 0xc0]
cmp qword [rsp + 0x50], rax
je 0x18000cf7d
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x1800307d8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor edx, edx
cmp dword [rsp + 0x84], 1
mov eax, dword [rsp + 0x74]
jbe 0x18000cf9b
cmp dword [rsp + 0x78], 1
ja 0x18000cf9b
cmp eax, 1
jbe 0x18000d85a
cmp eax, 1
jbe 0x18000ce71
cmp rbp, rdx
jne 0x18000d038
mov rax, qword [rsi]
lea rdx, [rsp + 0x140]
mov r8d, 1
mov rcx, rsi
call qword [rax + 0x60]
mov edi, dword [rsp + 0x150]
xor edx, edx
cmp edi, edx
mov dword [rsp + 0x3b0], edi
je 0x18000ce71
mov rcx, qword [0x1800307d8]
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor edx, edx
cmp rax, rdx
mov rbp, rax
je 0x18000ce71
mov rax, qword [rsi]
mov dword [rsp + 0x110], edx
mov dword [rsp + 0x114], edx
mov rdx, qword [rsp + 0x110]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [rax + 0x28]
mov r11, qword [rsi]
xor r9d, r9d
mov r8d, edi
mov rdx, rbp
mov rcx, rsi
call qword [r11 + 0x18]
mov eax, dword [rsp + 0x74]
xor edx, edx
cmp edi, edx
je 0x18000ce71
mov rcx, qword [rsp + 0xc8]
lea edx, [rax - 1]
call fcn.180023f18
mov edi, eax
xor edi, dword [0x1800309f8]
cmp edi, 0x7048b13
je 0x18000d7b0
cmp edi, 0x35cf7503
je 0x18000d5ce
cmp edi, 0x369d482b
mov edx, 0
je 0x18000ce6a
cmp edi, 0x65423cfb
je 0x18000d717
cmp edi, 0x9ac86a3e
je 0x18000d57d
cmp edi, 0xc8220e73
je 0x18000d372
cmp edi, 0xdf9190f1
je 0x18000d2b0
cmp edi, 0xf432bdb4
je 0x18000ce6a
cmp dword [rsp + 0x78], 1
jbe 0x18000ce6a
mov rax, qword [rsp + 0xd0]
xor ecx, ecx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0xb8], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
call fcn.18000bde0
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [rsp + 0xd0]
lea r8, [rsp + 0x50]
lea edx, [rax + 1]
xor r9d, r9d
call fcn.18000ca08
cmp edi, 0x4beb8fe5
jne 0x18000d1c8
cmp dword [rsp + 0x74], 3
jne 0x18000d1c8
xor eax, eax
cmp dword [rsp + 0x3d8], eax
je 0x18000d264
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, dword [rsp + 0x3b0]
mov rcx, qword [0x1800307d8]
mov dword [rsp + 0x48], eax
add eax, edi
xor edx, edx
mov r8d, eax
mov dword [rsp + 0xb8], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor ecx, ecx
cmp rax, rcx
mov qword [rsp + 0x68], rax
je 0x18000d264
mov ebx, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
mov r8, rbx
call sub.ntdll.dll_memcpy
mov r8, rdi
mov rdi, qword [rsp + 0x68]
lea rcx, [rbx + rdi]
mov rdx, rbp
call sub.ntdll.dll_memcpy
mov r11d, dword [rsp + 0xb8]
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x90], r11d
xor ecx, ecx
jmp 0x18000d228
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, dword [rsp + 0x3b0]
cmp eax, edi
ja 0x18000d216
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov edx, edi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18000c6ac
mov rdi, qword [rsp + 0xb8]
jmp 0x18000d220
mov rdi, qword [rsp + 0x68]
mov eax, 0x57
xor ecx, ecx
cmp eax, ecx
cmovne rdi, rcx
cmp rdi, rcx
je 0x18000d264
mov rcx, qword [0x1800307d8]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, rdi
mov edi, dword [rsp + 0x90]
or ebx, 8
mov dword [rsp + 0xa0], 1
mov dword [rsp + 0x3b0], edi
mov dword [rsp + 0x40], ebx
jmp 0x18000d26b
mov edi, dword [rsp + 0x3b0]
mov rax, qword [rsp + 0xd0]
cmp qword [rsp + 0x50], rax
je 0x18000d28e
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x1800307d8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xc8]
mov edx, 0
cmp qword [rsp + 0x60], rax
je 0x18000ce71
mov r8, qword [rsp + 0x60]
jmp 0x18000cf2b
cmp dword [rsp + 0x84], 1
mov edi, dword [rsp + 0x3b0]
jbe 0x18000d2de
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.180018d9c
xor edx, edx
cmp rax, rdx
je 0x18000ce71
cmp dword [rsp + 0x78], edx
mov word [rsp + 0x58], 1
mov word [rsp + 0x5a], 0xbb8
je 0x18000d354
cmp dword [rsp + 0x7c], edx
je 0x18000d354
mov rcx, qword [rsp + 0xd0]
lea r8, [rsp + 0x44]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
cmp eax, edx
je 0x18000d327
mov eax, dword [rsp + 0x44]
movzx ecx, word [rsp + 0x58]
cmp eax, edx
cmovne cx, ax
mov word [rsp + 0x58], cx
mov rcx, qword [rsp + 0xd8]
lea r8, [rsp + 0x44]
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
cmp eax, edx
je 0x18000d354
mov eax, dword [rsp + 0x44]
movzx ecx, word [rsp + 0x5a]
cmp eax, edx
cmovne cx, ax
mov word [rsp + 0x5a], cx
xor r9d, r9d
lea rdx, [rsp + 0x58]
mov ecx, 0x125
lea r8d, [r9 + 4]
call fcn.18000f594
or ebx, 4
jmp 0x18000d851
mov rcx, qword [rsp + 0x3b8]
cmp rcx, rdx
je 0x18000d51d
mov rax, qword [rcx]
lea rdx, [rsp + 0x190]
mov r8d, 1
call qword [rax + 0x60]
mov eax, dword [rsp + 0x1a0]
mov edi, dword [rsp + 0x3b0]
mov rcx, qword [0x1800307d8]
lea r8d, [rdi + rax]
xor edx, edx
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor edx, edx
cmp rax, rdx
mov qword [rsp + 0x60], rax
je 0x18000ce71
mov r11, qword [rsp + 0x3b8]
mov dword [rsp + 0x120], edx
mov dword [rsp + 0x124], edx
mov rax, qword [r11]
mov rdx, qword [rsp + 0x120]
xor r9d, r9d
xor r8d, r8d
mov rcx, r11
call qword [rax + 0x28]
mov rax, qword [rsp + 0x3b8]
mov r8d, dword [rsp + 0x48]
mov r11, qword [rax]
mov rdx, qword [rsp + 0x60]
xor r9d, r9d
mov rcx, rax
call qword [r11 + 0x18]
mov r11, qword [rsp + 0x3b8]
xor ecx, ecx
xor eax, eax
mov dword [rsp + 0x118], ecx
mov dword [rsp + 0x11c], ecx
mov rdx, qword [rsp + 0x118]
mov dword [rsp + 0x9c], eax
mov rax, qword [r11]
mov dword [rsp + 0x98], ecx
xor r9d, r9d
xor r8d, r8d
mov rcx, r11
call qword [rax + 0x28]
mov rax, qword [rsp + 0x3b8]
mov rdx, qword [rsp + 0x98]
mov r11, qword [rax]
mov rcx, rax
call qword [r11 + 0x30]
mov ecx, dword [rsp + 0x48]
mov r8, rdi
add rcx, qword [rsp + 0x60]
mov rdx, rbp
call sub.ntdll.dll_memcpy
mov r8d, dword [rsp + 0x48]
mov r9, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x60]
xor eax, eax
cmp dword [rsp + 0x78], 1
cmova rax, qword [rsp + 0xd0]
lea rcx, [rsp + 0x100]
add r8d, edi
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x3c8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.18000cc8c
xor ecx, ecx
cmp eax, ecx
je 0x18000d4e3
or ebx, 2
mov dword [rsp + 0x40], ebx
mov r8d, dword [rsp + 0x100]
cmp r8d, ecx
je 0x18000d513
mov r11, qword [rsp + 0x3b8]
mov edx, dword [rsp + 0x48]
xor r9d, r9d
mov r10, qword [r11]
add edx, edi
mov rcx, r11
sub rdx, r8
add rdx, qword [rsp + 0x60]
call qword [r10 + 0x20]
mov r8, qword [rsp + 0x60]
jmp 0x18000cf29
cmp dword [rsp + 0x78], 1
mov edi, dword [rsp + 0x3b0]
mov r9, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x3c8]
mov qword [rsp + 0x30], rdx
mov rax, rdx
cmova rax, qword [rsp + 0xd0]
mov r8d, edi
mov rdx, rbp
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.18000cc8c
xor edx, edx
cmp eax, edx
je 0x18000ce71
or ebx, 2
mov dword [rsp + 0x40], ebx
jmp 0x18000ce71
cmp dword [rsp + 0x78], 1
jb 0x18000d5ce
cmp dword [rsp + 0x84], 1
jbe 0x18000d5ac
mov r8, qword [rsp + 0xe8]
mov edx, dword [rsp + 0x3b0]
mov rcx, rbp
call fcn.180018d9c
xor ecx, ecx
cmp rax, rcx
je 0x18000d5ce
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0xd0]
xor r9d, r9d
mov ecx, 0x126
call fcn.18000f594
bts ebx, 7
mov dword [rsp + 0x40], ebx
mov rdi, qword [rsp + 0xe8]
mov rcx, rdi
mov qword [rsp + 0x68], rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8, [rsp + 0x68]
xor r9d, r9d
lea edx, [rax + 1]
mov rcx, rdi
call fcn.18000ca08
mov edi, dword [rsp + 0x3b0]
xor edx, edx
cmp eax, edx
je 0x18000ce71
lea r8, [rsp + 0xb0]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
xor edx, edx
cmp eax, edx
jne 0x18000ce71
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x8c]
lea rdx, [rsp + 0xf8]
xor r9d, r9d
call fcn.1800049fc
xor edi, edi
cmp eax, edi
jne 0x18000d6fd
mov rcx, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0x8c]
mov rdx, qword [rsp + 0xf8]
mov rax, qword [rcx]
xor r9d, r9d
call qword [rax + 0x20]
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0xa8], edi
mov rax, qword [rcx]
mov dword [rsp + 0xac], edi
mov rdx, qword [rsp + 0xa8]
xor r9d, r9d
xor r8d, r8d
call qword [rax + 0x28]
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x1800307d8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0x3d8]
mov r9, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x3c0]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], eax
xor edx, edx
mov dword [rsp + 0x20], edi
call fcn.18000ce14
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1800307d8]
or ebx, eax
xor edx, edx
mov dword [rsp + 0x40], ebx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov edi, dword [rsp + 0x3b0]
jmp 0x18000cf38
cmp dword [rsp + 0x78], 1
mov edi, dword [rsp + 0x3b0]
jb 0x18000ce71
cmp dword [rsp + 0x84], 1
jbe 0x18000d750
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.180018d9c
xor edx, edx
cmp rax, rdx
je 0x18000ce71
lea rdx, [rsp + 0x1e0]
mov cx, 0x201
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor edx, edx
cmp eax, edx
jne 0x18000d785
mov rcx, qword [rsp + 0xd0]
lea r8d, [rdx + 1]
lea rdx, [rsp + 0x130]
call fcn.180017f68
xor edx, edx
jmp 0x18000d787
mov eax, edx
cmp eax, edx
je 0x18000ce71
xor r9d, r9d
lea rdx, [rsp + 0x130]
mov ecx, 0x127
lea r8d, [r9 + 0x10]
call fcn.18000f594
or ebx, 0x40
jmp 0x18000d851
cmp dword [rsp + 0x78], 1
mov edi, dword [rsp + 0x3b0]
mov edx, 0
jb 0x18000ce71
cmp dword [rsp + 0x84], 1
jbe 0x18000d7ee
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.180018d9c
xor edx, edx
cmp rax, rdx
je 0x18000ce71
mov rcx, qword [rsp + 0xd0]
lea r8, [rsp + 0x44]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
cmp eax, edx
je 0x18000ce71
mov ecx, dword [rsp + 0x44]
cmp ecx, edx
je 0x18000ce71
movzx eax, cx
lea r8d, [rdx + 4]
lea rdx, [rsp + 0x88]
shl ax, 2
xor r9d, r9d
mov word [rsp + 0x8a], 0xc8
add cx, ax
mov word [rsp + 0x88], cx
mov ecx, 0x125
call fcn.18000f594
or ebx, 0x20
mov dword [rsp + 0x40], ebx
jmp 0x18000cf38
mov rdi, qword [rsp + 0x3e0]
cmp rdi, rdx
je 0x18000d952
cmp qword [rdi + 0x18], rdx
jne 0x18000d883
mov rcx, rdi
call fcn.18001af84
xor edx, edx
cmp eax, edx
jne 0x18000d952
mov rcx, rdi
call fcn.18001ae08
xor edx, edx
cmp eax, edx
jne 0x18000d952
xor eax, eax
mov dword [rsp + 0x98], edx
mov dword [rsp + 0xa8], edx
mov dword [rsp + 0x9c], eax
mov rax, qword [rsi]
mov dword [rsp + 0xac], edx
mov rdx, qword [rsp + 0xa8]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [rax + 0x28]
mov r11, qword [rsi]
mov rdx, qword [rsp + 0x98]
mov rcx, rsi
call qword [r11 + 0x30]
lea rdx, [rdi + 0x58]
lea rcx, [rdi + 0x10]
call fcn.18000bde0
mov r11, qword [rsi]
mov r8d, dword [rdi + 0x58]
mov rdx, qword [rdi + 0x10]
xor r9d, r9d
mov rcx, rsi
call qword [r11 + 0x20]
xor ebx, ebx
cmp rbp, rbx
je 0x18000d91a
mov rcx, qword [0x1800307d8]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, rbx
mov eax, dword [rsp + 0x3d8]
mov r8, qword [rsp + 0x3c0]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], eax
mov r9, rdi
xor edx, edx
add r9, 0x60
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.18000ce14
mov ebx, dword [rsp + 0x40]
or eax, 1
or ebx, eax
xor edx, edx
cmp rbp, rdx
je 0x18000d9d5
mov ecx, dword [rsp + 0xa0]
cmp ecx, edx
je 0x18000d9c1
xor eax, eax
mov dword [rsp + 0x3e0], edx
mov dword [rsp + 0x3c0], edx
mov dword [rsp + 0x3e4], eax
mov rax, qword [rsi]
mov dword [rsp + 0x3c4], edx
mov rdx, qword [rsp + 0x3c0]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [rax + 0x28]
mov r11, qword [rsi]
mov rdx, qword [rsp + 0x3e0]
mov rcx, rsi
call qword [r11 + 0x30]
mov r11, qword [rsi]
mov r8d, dword [rsp + 0x3b0]
xor r9d, r9d
mov rdx, rbp
mov rcx, rsi
call qword [r11 + 0x20]
mov rcx, qword [0x1800307d8]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor edx, edx
mov r10, qword [rsi]
mov dword [rsp + 0x3c0], edx
mov dword [rsp + 0x3c4], edx
mov rdx, qword [rsp + 0x3c0]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [r10 + 0x28]
mov eax, ebx
add rsp, 0x388
pop rdi
pop rsi
pop rbp
pop rbx
ret