Function at 0x18000dd7c
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.18000cf84
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 0x18000dde5
cmp dword [rsp + 0x60], 1
mov qword [rsp + 0x100], r8
jbe 0x18000e8b9
mov rax, qword [rsp + 0xa8]
lea rcx, [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x58], rax
call fcn.18000d010
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0xe8]
call fcn.18000d1fc
xor r9d, r9d
cmp rax, r9
je 0x18000de7d
cmp dword [rsp + 0xe0], r9d
jne 0x18000de7d
mov ecx, dword [rsp + 0xe8]
cmp ecx, r9d
je 0x18000deb1
cmp dword [rsp + 0x3c0], r9d
je 0x18000deac
cmp ecx, 8
je 0x18000deb1
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rax
je 0x18000ddd6
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
jmp 0x18000ddd6
cmp ecx, 7
jne 0x18000de7d
mov rdx, qword [rsp + 0x118]
mov rcx, rax
call fcn.18001a730
xor r9d, r9d
cmp eax, r9d
je 0x18000de7d
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rax
je 0x18000deef
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
cmp dword [rsp + 0x74], 1
mov eax, dword [rsp + 0x64]
jbe 0x18000df0a
cmp dword [rsp + 0x68], 1
ja 0x18000df0a
cmp eax, 1
jbe 0x18000e7ce
cmp eax, 1
jbe 0x18000ddd6
cmp rsi, r9
jne 0x18000dfac
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 0x18000ddd6
mov rcx, qword [0x180052eb0]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
cmp rax, r9
mov rsi, rax
je 0x18000ddd6
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 0x18000ddd6
mov rcx, qword [rsp + 0xb0]
lea edx, [rax - 1]
call fcn.1800416ac
mov ebx, eax
xor ebx, dword [0x18005308c]
cmp ebx, 0x533f7af
je 0x18000e54e
cmp ebx, 0x661ca87
mov r9d, 0
je 0x18000ddcf
cmp ebx, 0x37f809bf
je 0x18000e72f
cmp ebx, 0x55bebe57
je 0x18000e693
cmp ebx, 0xaa34e892
je 0x18000e504
cmp ebx, 0xc4ce3f18
je 0x18000ddcf
cmp ebx, 0xef6d125d
je 0x18000e442
cmp ebx, 0xf8de8cdf
je 0x18000e23e
cmp dword [rsp + 0x68], 1
jbe 0x18000ddcf
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.18000d010
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.18000d5d8
cmp ebx, 0x7b170d49
jne 0x18000e14d
cmp dword [rsp + 0x64], 3
jne 0x18000e14d
xor eax, eax
cmp dword [rsp + 0x3c8], eax
je 0x18000e1f1
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
mov rcx, qword [0x180052eb0]
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 0x18000e1f8
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 0x18000e1b7
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
cmp eax, ebx
ja 0x18000e19e
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.18000d27c
mov r11d, eax
mov rax, qword [rsp + 0xa0]
jmp 0x18000e1a9
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 0x18000e1f8
mov rcx, qword [0x180052eb0]
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 0x18000e1f8
mov ebx, dword [rsp + 0x3a0]
mov rax, qword [rsp + 0xb8]
cmp qword [rsp + 0x58], rax
je 0x18000e21b
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xb0]
mov r9d, 0
cmp qword [rsp + 0x48], rax
je 0x18000ddd6
mov r8, qword [rsp + 0x48]
jmp 0x18000de95
mov rcx, qword [rsp + 0x3a8]
xor edx, edx
cmp rcx, rdx
je 0x18000e3e4
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 [0x180052eb0]
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 0x18000ddd6
mov r11, qword [rsp + 0x3a8]
mov dword [rsp + 0xf8], r9d
mov dword [rsp + 0xfc], r9d
mov rax, qword [r11]
mov rdx, qword [rsp + 0xf8]
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 + 0x108], ecx
mov dword [rsp + 0x10c], ecx
mov rdx, qword [rsp + 0x108]
mov dword [rsp + 0xf4], eax
mov rax, qword [r11]
mov dword [rsp + 0xf0], ecx
xor r9d, r9d
xor r8d, r8d
mov rcx, r11
call qword [rax + 0x28]
mov rax, qword [rsp + 0x3a8]
mov rdx, qword [rsp + 0xf0]
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.18000dbf4
xor ecx, ecx
cmp eax, ecx
je 0x18000e3ab
or ebp, 2
mov r8d, dword [rsp + 0xe4]
cmp r8d, ecx
je 0x18000e234
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]
jmp 0x18000e234
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.18000dbf4
xor r9d, r9d
cmp eax, r9d
je 0x18000ddd6
or ebp, 2
jmp 0x18000ddd6
cmp dword [rsp + 0x74], 1
mov ebx, dword [rsp + 0x3a0]
jbe 0x18000e46e
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001a968
xor r9d, r9d
cmp rax, r9
je 0x18000ddd6
cmp dword [rsp + 0x68], r9d
mov word [rsp + 0x54], 1
mov word [rsp + 0x56], 0xbb8
je 0x18000e4e6
cmp dword [rsp + 0x6c], r9d
je 0x18000e4e6
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 0x18000e4b9
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 0x18000e4e6
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.180011298
or ebp, 4
jmp 0x18000dea4
cmp dword [rsp + 0x68], 1
jb 0x18000e54e
cmp dword [rsp + 0x74], 1
jbe 0x18000e530
mov r8, qword [rsp + 0xd0]
mov edx, dword [rsp + 0x3a0]
mov rcx, rsi
call fcn.18001a968
xor ecx, ecx
cmp rax, rcx
je 0x18000e54e
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0xb8]
xor r9d, r9d
mov ecx, 0x126
call fcn.180011298
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.18000d5d8
mov ebx, dword [rsp + 0x3a0]
xor r9d, r9d
cmp eax, r9d
je 0x18000ddd6
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 0x18000ddd6
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0xd8]
call fcn.180004abc
xor ebx, ebx
cmp eax, ebx
jne 0x18000e679
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 + 0x90], ebx
mov rax, qword [rcx]
mov dword [rsp + 0x94], ebx
mov rdx, qword [rsp + 0x90]
xor r9d, r9d
xor r8d, r8d
call qword [rax + 0x28]
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x180052eb0]
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.18000dd7c
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x180052eb0]
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 0x18000dea4
cmp dword [rsp + 0x68], 1
mov ebx, dword [rsp + 0x3a0]
jb 0x18000ddd6
cmp dword [rsp + 0x74], 1
jbe 0x18000e6ca
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001a968
xor r9d, r9d
cmp rax, r9
je 0x18000ddd6
lea rdx, [rsp + 0x1d0]
mov cx, 0x201
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor r9d, r9d
cmp eax, r9d
jne 0x18000e702
mov rcx, qword [rsp + 0xb8]
lea r8d, [r9 + 1]
lea rdx, [rsp + 0x120]
call fcn.180019c64
xor r9d, r9d
jmp 0x18000e705
mov eax, r9d
cmp eax, r9d
je 0x18000ddd6
xor r9d, r9d
lea rdx, [rsp + 0x120]
mov ecx, 0x127
lea r8d, [r9 + 0x10]
call fcn.180011298
or ebp, 0x40
jmp 0x18000dea4
cmp dword [rsp + 0x68], 1
mov ebx, dword [rsp + 0x3a0]
jb 0x18000ddd6
cmp dword [rsp + 0x74], 1
jbe 0x18000e766
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001a968
xor r9d, r9d
cmp rax, r9
je 0x18000ddd6
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 0x18000ddd6
mov ecx, dword [rsp + 0x40]
cmp ecx, r9d
je 0x18000ddd6
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.180011298
or ebp, 0x20
jmp 0x18000dea4
mov rax, qword [rsp + 0x3d0]
cmp rax, r9
je 0x18000e8b9
cmp qword [rax + 8], r9
jne 0x18000e7fb
xor edx, edx
mov rcx, rax
call fcn.180014740
xor r9d, r9d
cmp eax, r9d
jne 0x18000e8b9
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 0x18000e87f
mov rcx, qword [0x180052eb0]
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.18000dd7c
or eax, 1
or ebp, eax
xor r9d, r9d
cmp rsi, r9
je 0x18000e93c
mov ecx, dword [rsp + 0x84]
cmp ecx, r9d
je 0x18000e927
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 [0x180052eb0]
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