Function at 0x18000cc40
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, 0x378
xor edx, edx
mov rdi, rcx
mov rcx, r9
mov ebp, edx
mov dword [rsp + 0x84], edx
mov qword [rax - 0x2c0], rdx
mov dword [rax - 0x318], edx
mov rsi, rdx
mov qword [rsp + 0x100], r8
call fcn.18000be48
xor r9d, r9d
mov qword [rsp + 0x118], rax
mov ebx, dword [rsp + 0x3a0]
mov r8, qword [rsp + 0x100]
mov edx, r9d
mov dword [rsp + 0x40], edx
lea rcx, [r8 + 4]
mov r8d, dword [r8]
mov eax, edx
add edx, 1
mov dword [rsp + rax*4 + 0x60], r8d
add r8, rcx
cmp edx, 6
mov qword [rsp + rax*8 + 0xa8], rcx
mov dword [rsp + 0x40], edx
jb 0x18000cca9
cmp dword [rsp + 0x60], 1
mov qword [rsp + 0x100], r8
jbe 0x18000d779
mov rax, qword [rsp + 0xa8]
lea rcx, [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x58], rax
call fcn.18000bed4
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0xe8]
call fcn.18000c0c0
xor r9d, r9d
cmp rax, r9
je 0x18000cd41
cmp dword [rsp + 0xe0], r9d
jne 0x18000cd41
mov ecx, dword [rsp + 0xe8]
cmp ecx, r9d
je 0x18000cd75
cmp dword [rsp + 0x3c0], r9d
je 0x18000cd70
cmp ecx, 8
je 0x18000cd75
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rax
je 0x18000cc9a
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x18002f7f8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
jmp 0x18000cc9a
cmp ecx, 7
jne 0x18000cd41
mov rdx, qword [rsp + 0x118]
mov rcx, rax
call fcn.1800178a4
xor r9d, r9d
cmp eax, r9d
je 0x18000cd41
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rax
je 0x18000cdb3
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x18002f7f8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
cmp dword [rsp + 0x74], 1
mov eax, dword [rsp + 0x64]
jbe 0x18000cdce
cmp dword [rsp + 0x68], 1
ja 0x18000cdce
cmp eax, 1
jbe 0x18000d68e
cmp eax, 1
jbe 0x18000cc9a
cmp rsi, r9
jne 0x18000ce70
mov rax, qword [rdi]
lea rdx, [rsp + 0x130]
mov r8d, 1
mov rcx, rdi
call qword [rax + 0x60]
mov ebx, dword [rsp + 0x140]
xor r9d, r9d
cmp ebx, r9d
mov dword [rsp + 0x3a0], ebx
je 0x18000cc9a
mov rcx, qword [0x18002f7f8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
cmp rax, r9
mov rsi, rax
je 0x18000cc9a
mov rax, qword [rdi]
mov dword [rsp + 0x110], r9d
mov dword [rsp + 0x114], r9d
mov rdx, qword [rsp + 0x110]
xor r8d, r8d
mov rcx, rdi
call qword [rax + 0x28]
mov r11, qword [rdi]
xor r9d, r9d
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call qword [r11 + 0x18]
mov eax, dword [rsp + 0x64]
xor r9d, r9d
cmp ebx, r9d
je 0x18000cc9a
mov rcx, qword [rsp + 0xb0]
lea edx, [rax - 1]
call fcn.180022cd4
mov r9d, 0
mov ebx, eax
xor ebx, dword [0x18002fa58]
cmp ebx, 0x1f810a7d
je 0x18000cc93
cmp ebx, 0x2391b9ba
je 0x18000d489
cmp ebx, 0x34222738
je 0x18000d3c7
cmp ebx, 0x717bddf7
je 0x18000d238
cmp ebx, 0x8ef18b32
je 0x18000d19c
cmp ebx, 0xdd2effe2
je 0x18000cc93
cmp ebx, 0xde7cc2ca
je 0x18000d282
cmp ebx, 0xecb73cda
je 0x18000d0fd
cmp dword [rsp + 0x68], 1
jbe 0x18000cc93
mov rax, qword [rsp + 0xb8]
xor ecx, ecx
xor edx, edx
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0xa0], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
call fcn.18000bed4
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [rsp + 0xb8]
lea r8, [rsp + 0x58]
lea edx, [rax + 1]
xor r9d, r9d
call fcn.18000c49c
cmp ebx, 0xa058382c
jne 0x18000d011
cmp dword [rsp + 0x64], 3
jne 0x18000d011
xor eax, eax
cmp dword [rsp + 0x3c8], eax
je 0x18000d0b5
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
mov rcx, qword [0x18002f7f8]
mov dword [rsp + 0x50], eax
add eax, ebx
xor edx, edx
mov r8d, eax
mov dword [rsp + 0xa0], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor ecx, ecx
cmp rax, rcx
mov qword [rsp + 0x78], rax
je 0x18000d0bc
mov ebx, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rcx, rax
mov r8, rbx
call sub.ntdll.dll_memcpy
mov rax, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x3a0]
lea rcx, [rbx + rax]
mov rdx, rsi
call sub.ntdll.dll_memcpy
mov r11d, dword [rsp + 0xa0]
mov ebx, dword [rsp + 0x3a0]
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x8c], r11d
xor ecx, ecx
jmp 0x18000d07b
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
cmp eax, ebx
ja 0x18000d062
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x48]
lea rax, [rsp + 0x8c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov edx, ebx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.18000c140
mov r11d, eax
mov rax, qword [rsp + 0xa0]
jmp 0x18000d06d
mov rax, qword [rsp + 0x78]
mov r11d, 0x57
xor ecx, ecx
cmp r11d, ecx
cmovne rax, rcx
mov qword [rsp + 0x78], rax
cmp rax, rcx
je 0x18000d0bc
mov rcx, qword [0x18002f7f8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0x78]
mov dword [rsp + 0x3a0], ebx
or ebp, 8
mov dword [rsp + 0x84], 1
jmp 0x18000d0bc
mov ebx, dword [rsp + 0x3a0]
mov rax, qword [rsp + 0xb8]
cmp qword [rsp + 0x58], rax
je 0x18000d0df
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x18002f7f8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xb0]
mov r9d, 0
cmp qword [rsp + 0x48], rax
je 0x18000cc9a
jmp 0x18000d626
cmp dword [rsp + 0x68], 1
mov ebx, dword [rsp + 0x3a0]
jb 0x18000cc9a
cmp dword [rsp + 0x74], 1
jbe 0x18000d134
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.180017adc
xor r9d, r9d
cmp rax, r9
je 0x18000cc9a
mov rcx, qword [rsp + 0xb8]
lea r8, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor r9d, r9d
cmp eax, r9d
je 0x18000cc9a
mov ecx, dword [rsp + 0x40]
cmp ecx, r9d
je 0x18000cc9a
movzx eax, cx
lea r8d, [r9 + 4]
lea rdx, [rsp + 0x88]
shl ax, 2
mov word [rsp + 0x8a], 0xc8
add cx, ax
mov word [rsp + 0x88], cx
mov ecx, 0x125
call fcn.18000f470
or ebp, 0x20
jmp 0x18000cd68
cmp dword [rsp + 0x68], 1
mov ebx, dword [rsp + 0x3a0]
jb 0x18000cc9a
cmp dword [rsp + 0x74], 1
jbe 0x18000d1d3
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.180017adc
xor r9d, r9d
cmp rax, r9
je 0x18000cc9a
lea rdx, [rsp + 0x1d0]
mov cx, 0x201
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor r9d, r9d
cmp eax, r9d
jne 0x18000d20b
mov rcx, qword [rsp + 0xb8]
lea r8d, [r9 + 1]
lea rdx, [rsp + 0x120]
call fcn.180017064
xor r9d, r9d
jmp 0x18000d20e
mov eax, r9d
cmp eax, r9d
je 0x18000cc9a
xor r9d, r9d
lea rdx, [rsp + 0x120]
mov ecx, 0x127
lea r8d, [r9 + 0x10]
call fcn.18000f470
or ebp, 0x40
jmp 0x18000cd68
cmp dword [rsp + 0x68], 1
jb 0x18000d282
cmp dword [rsp + 0x74], 1
jbe 0x18000d264
mov r8, qword [rsp + 0xd0]
mov edx, dword [rsp + 0x3a0]
mov rcx, rsi
call fcn.180017adc
xor ecx, ecx
cmp rax, rcx
je 0x18000d282
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0xb8]
xor r9d, r9d
mov ecx, 0x126
call fcn.18000f470
bts ebp, 7
mov rbx, qword [rsp + 0xd0]
mov rcx, rbx
mov qword [rsp + 0x48], rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8, [rsp + 0x48]
xor r9d, r9d
lea edx, [rax + 1]
mov rcx, rbx
call fcn.18000c49c
mov ebx, dword [rsp + 0x3a0]
xor r9d, r9d
cmp eax, r9d
je 0x18000cc9a
lea r8, [rsp + 0x98]
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
xor r9d, r9d
cmp eax, r9d
jne 0x18000cc9a
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0xd8]
call fcn.1800043fc
xor ebx, ebx
cmp eax, ebx
jne 0x18000d3ad
mov rcx, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x80]
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rcx]
xor r9d, r9d
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x98]
mov dword [rsp + 0xf8], ebx
mov rax, qword [rcx]
mov dword [rsp + 0xfc], ebx
mov rdx, qword [rsp + 0xf8]
xor r9d, r9d
xor r8d, r8d
call qword [rax + 0x28]
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x18002f7f8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0x3c8]
mov r9, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x3b0]
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], eax
xor edx, edx
mov dword [rsp + 0x20], ebx
call fcn.18000cc40
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x18002f7f8]
xor edx, edx
or ebp, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ebx, dword [rsp + 0x3a0]
jmp 0x18000cd68
cmp dword [rsp + 0x74], 1
mov ebx, dword [rsp + 0x3a0]
jbe 0x18000d3f3
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.180017adc
xor r9d, r9d
cmp rax, r9
je 0x18000cc9a
cmp dword [rsp + 0x68], r9d
mov word [rsp + 0x54], 1
mov word [rsp + 0x56], 0xbb8
je 0x18000d46b
cmp dword [rsp + 0x6c], r9d
je 0x18000d46b
mov rcx, qword [rsp + 0xb8]
lea r8, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
cmp eax, edx
je 0x18000d43e
mov eax, dword [rsp + 0x40]
movzx ecx, word [rsp + 0x54]
cmp eax, edx
cmovne cx, ax
mov word [rsp + 0x54], cx
mov rcx, qword [rsp + 0xc0]
lea r8, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
cmp eax, edx
je 0x18000d46b
mov eax, dword [rsp + 0x40]
movzx ecx, word [rsp + 0x56]
cmp eax, edx
cmovne cx, ax
mov word [rsp + 0x56], cx
xor r9d, r9d
lea rdx, [rsp + 0x54]
mov ecx, 0x125
lea r8d, [r9 + 4]
call fcn.18000f470
or ebp, 4
jmp 0x18000cd68
mov rcx, qword [rsp + 0x3a8]
xor edx, edx
cmp rcx, rdx
je 0x18000d630
mov rax, qword [rcx]
lea r8d, [rdx + 1]
lea rdx, [rsp + 0x180]
call qword [rax + 0x60]
mov eax, dword [rsp + 0x190]
mov ebx, dword [rsp + 0x3a0]
mov rcx, qword [0x18002f7f8]
lea r8d, [rbx + rax]
xor edx, edx
mov dword [rsp + 0x50], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
cmp rax, r9
mov qword [rsp + 0x48], rax
je 0x18000cc9a
mov r11, qword [rsp + 0x3a8]
mov dword [rsp + 0x108], r9d
mov dword [rsp + 0x10c], r9d
mov rax, qword [r11]
mov rdx, qword [rsp + 0x108]
xor r8d, r8d
mov rcx, r11
call qword [rax + 0x28]
mov rax, qword [rsp + 0x3a8]
mov r8d, dword [rsp + 0x50]
mov r11, qword [rax]
mov rdx, qword [rsp + 0x48]
xor r9d, r9d
mov rcx, rax
call qword [r11 + 0x18]
mov r11, qword [rsp + 0x3a8]
xor ecx, ecx
xor eax, eax
mov dword [rsp + 0xf0], ecx
mov dword [rsp + 0xf4], ecx
mov rdx, qword [rsp + 0xf0]
mov dword [rsp + 0x94], eax
mov rax, qword [r11]
mov dword [rsp + 0x90], ecx
xor r9d, r9d
xor r8d, r8d
mov rcx, r11
call qword [rax + 0x28]
mov rax, qword [rsp + 0x3a8]
mov rdx, qword [rsp + 0x90]
mov r11, qword [rax]
mov rcx, rax
call qword [r11 + 0x30]
mov ecx, dword [rsp + 0x50]
mov r8, rbx
add rcx, qword [rsp + 0x48]
mov rdx, rsi
call sub.ntdll.dll_memcpy
mov r8d, dword [rsp + 0x50]
mov r9, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x48]
xor eax, eax
cmp dword [rsp + 0x68], 1
cmova rax, qword [rsp + 0xb8]
lea rcx, [rsp + 0xe4]
add r8d, ebx
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x3b8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x20], rax
call fcn.18000cab8
xor ecx, ecx
cmp eax, ecx
je 0x18000d5f6
or ebp, 2
mov r8d, dword [rsp + 0xe4]
cmp r8d, ecx
je 0x18000d626
mov r11, qword [rsp + 0x3a8]
mov edx, dword [rsp + 0x50]
xor r9d, r9d
mov r10, qword [r11]
add edx, ebx
mov rcx, r11
sub rdx, r8
add rdx, qword [rsp + 0x48]
call qword [r10 + 0x20]
mov r8, qword [rsp + 0x48]
jmp 0x18000cd59
cmp dword [rsp + 0x68], 1
mov ebx, dword [rsp + 0x3a0]
mov r9, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x3b8]
mov qword [rsp + 0x30], rdx
mov rax, rdx
cmova rax, qword [rsp + 0xb8]
mov r8d, ebx
mov rdx, rsi
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x20], rax
call fcn.18000cab8
xor r9d, r9d
cmp eax, r9d
je 0x18000cc9a
or ebp, 2
jmp 0x18000cc9a
mov rax, qword [rsp + 0x3d0]
cmp rax, r9
je 0x18000d779
cmp qword [rax + 8], r9
jne 0x18000d6bb
xor edx, edx
mov rcx, rax
call fcn.18001f334
xor r9d, r9d
cmp eax, r9d
jne 0x18000d779
xor eax, eax
mov dword [rsp + 0x3a0], r9d
mov dword [rsp + 0x3a4], r9d
mov rdx, qword [rsp + 0x3a0]
mov dword [rsp + 0x94], eax
mov rax, qword [rdi]
mov dword [rsp + 0x90], r9d
xor r8d, r8d
mov rcx, rdi
xor r9d, r9d
call qword [rax + 0x28]
mov r11, qword [rdi]
mov rdx, qword [rsp + 0x90]
mov rcx, rdi
call qword [r11 + 0x30]
mov rax, qword [rsp + 0x3d0]
mov r11, qword [rdi]
mov r8d, dword [rax + 0x44]
mov rdx, qword [rax]
xor r9d, r9d
mov rcx, rdi
call qword [r11 + 0x20]
xor ecx, ecx
cmp rsi, rcx
je 0x18000d73f
mov rcx, qword [0x18002f7f8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
mov rsi, rcx
mov eax, dword [rsp + 0x3c8]
mov r9, qword [rsp + 0x3d0]
mov r8, qword [rsp + 0x3b0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, rdi
add r9, 0x50
xor edx, edx
call fcn.18000cc40
or eax, 1
or ebp, eax
xor r9d, r9d
cmp rsi, r9
je 0x18000d7fc
mov ecx, dword [rsp + 0x84]
cmp ecx, r9d
je 0x18000d7e7
xor eax, eax
mov dword [rsp + 0x3d0], r9d
mov dword [rsp + 0x3d4], r9d
mov rdx, qword [rsp + 0x3d0]
mov dword [rsp + 0x3b4], eax
mov rax, qword [rdi]
mov dword [rsp + 0x3b0], r9d
xor r8d, r8d
mov rcx, rdi
xor r9d, r9d
call qword [rax + 0x28]
mov r11, qword [rdi]
mov rdx, qword [rsp + 0x3b0]
mov rcx, rdi
call qword [r11 + 0x30]
mov r11, qword [rdi]
xor r9d, r9d
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call qword [r11 + 0x20]
mov rcx, qword [0x18002f7f8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
mov r10, qword [rdi]
mov dword [rsp + 0x3d0], r9d
mov dword [rsp + 0x3d4], r9d
mov rdx, qword [rsp + 0x3d0]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [r10 + 0x28]
mov eax, ebp
add rsp, 0x378
pop rdi
pop rsi
pop rbp
pop rbx
ret