Function at 0x18000dd6c
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.18000cf74
mov qword [rsp + 0x118], rax
mov ebx, dword [rsp + 0x3a0]
xor r9d, r9d
mov r10d, 1
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, r10d
mov dword [rsp + rax*4 + 0x60], r8d
add r8, rcx
mov qword [rsp + rax*8 + 0xa8], rcx
mov dword [rsp + 0x40], edx
cmp edx, 6
jb 0x18000dddb
mov qword [rsp + 0x100], r8
cmp dword [rsp + 0x60], r10d
jbe 0x18000e8f5
mov rax, qword [rsp + 0xa8]
lea rcx, [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x58], rax
call fcn.18000d000
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0xe8]
call fcn.18000d1ec
xor r9d, r9d
cmp rax, r9
je 0x18000de73
cmp dword [rsp + 0xe0], r9d
jne 0x18000de73
mov ecx, dword [rsp + 0xe8]
cmp ecx, r9d
je 0x18000deb6
cmp dword [rsp + 0x3c0], r9d
je 0x18000deb1
cmp ecx, 8
je 0x18000deb6
mov rax, qword [rsp + 0xa8]
mov r10d, 1
cmp qword [rsp + 0x58], rax
je 0x18000ddcc
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180059270]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x18000ddc3
mov ebx, dword [rsp + 0x3a0]
jmp 0x18000ddcc
cmp ecx, 7
jne 0x18000de73
mov rdx, qword [rsp + 0x118]
mov rcx, rax
call fcn.18001a8ac
xor r9d, r9d
cmp eax, r9d
je 0x18000de73
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rax
je 0x18000def4
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180059270]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r9d, r9d
mov eax, dword [rsp + 0x64]
mov r10d, 1
cmp dword [rsp + 0x74], r10d
jbe 0x18000df15
cmp dword [rsp + 0x68], r10d
ja 0x18000df15
cmp eax, r10d
jbe 0x18000e80a
cmp eax, r10d
jbe 0x18000ddcc
cmp rsi, r9
jne 0x18000dfc0
mov rax, qword [rdi]
lea rdx, [rsp + 0x130]
mov r8d, r10d
mov rcx, rdi
call qword [rax + 0x60]
mov ebx, dword [rsp + 0x140]
xor r9d, r9d
mov dword [rsp + 0x3a0], ebx
lea r10d, [r9 + 1]
cmp ebx, r9d
je 0x18000ddcc
mov rcx, qword [0x180059270]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
mov rsi, rax
lea r10d, [r9 + 1]
cmp rax, r9
je 0x18000ddcc
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
lea r10d, [r9 + 1]
cmp ebx, r9d
je 0x18000ddcc
mov rcx, qword [rsp + 0xb0]
lea edx, [rax - 1]
call fcn.180044c10
mov ebx, eax
xor ebx, dword [0x18005944c]
cmp ebx, 0x533f7af
je 0x18000e575
mov r9d, 0
lea r10d, [r9 + 1]
cmp ebx, 0x661ca87
je 0x18000dea5
cmp ebx, 0x37f809bf
je 0x18000e762
cmp ebx, 0x55bebe57
je 0x18000e6bb
cmp ebx, 0xaa34e892
je 0x18000e52a
cmp ebx, 0xc4ce3f18
je 0x18000dea5
cmp ebx, 0xef6d125d
je 0x18000e461
cmp ebx, 0xf8de8cdf
je 0x18000e25a
cmp dword [rsp + 0x68], r10d
jbe 0x18000dea5
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.18000d000
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.18000d5c8
cmp ebx, 0x7b170d49
jne 0x18000e165
cmp dword [rsp + 0x64], 3
jne 0x18000e165
xor eax, eax
cmp dword [rsp + 0x3c8], eax
je 0x18000e209
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
mov rcx, qword [0x180059270]
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
mov qword [rsp + 0x78], rax
cmp rax, rcx
je 0x18000e210
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 0x18000e1cf
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [rsp + 0x3a0]
cmp eax, ebx
ja 0x18000e1b6
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.18000d26c
mov r11d, eax
mov rax, qword [rsp + 0xa0]
jmp 0x18000e1c1
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 0x18000e210
mov rcx, qword [0x180059270]
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 0x18000e210
mov ebx, dword [rsp + 0x3a0]
mov rax, qword [rsp + 0xb8]
cmp qword [rsp + 0x58], rax
je 0x18000e233
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180059270]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xb0]
mov r9d, 0
lea r10d, [r9 + 1]
cmp qword [rsp + 0x48], rax
je 0x18000ddcc
mov r8, qword [rsp + 0x48]
jmp 0x18000de91
mov rcx, qword [rsp + 0x3a8]
xor edx, edx
cmp rcx, rdx
je 0x18000e3ff
mov rax, qword [rcx]
lea rdx, [rsp + 0x180]
mov r8d, r10d
call qword [rax + 0x60]
mov eax, dword [rsp + 0x190]
mov ebx, dword [rsp + 0x3a0]
mov rcx, qword [0x180059270]
lea r8d, [rbx + rax]
xor edx, edx
mov dword [rsp + 0x50], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
mov qword [rsp + 0x48], rax
cmp rax, r9
je 0x18000ddc6
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.18000dbe4
xor ecx, ecx
cmp eax, ecx
je 0x18000e3c6
or ebp, 2
mov r8d, dword [rsp + 0xe4]
cmp r8d, ecx
je 0x18000e250
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 0x18000e250
cmp dword [rsp + 0x68], r10d
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.18000dbe4
xor r9d, r9d
lea r10d, [r9 + 1]
cmp eax, r9d
je 0x18000ddcc
or ebp, 2
jmp 0x18000ddcc
mov ebx, dword [rsp + 0x3a0]
mov eax, r10d
cmp dword [rsp + 0x74], eax
jbe 0x18000e493
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001aad4
xor r9d, r9d
cmp rax, r9
je 0x18000ddc6
lea eax, [r9 + 1]
mov word [rsp + 0x54], ax
mov eax, 0xbb8
mov word [rsp + 0x56], ax
cmp dword [rsp + 0x68], r9d
je 0x18000e50c
cmp dword [rsp + 0x6c], r9d
je 0x18000e50c
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 0x18000e4df
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 0x18000e50c
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.1800112ec
or ebp, 4
jmp 0x18000ddc3
mov eax, r10d
cmp dword [rsp + 0x68], eax
jb 0x18000e575
cmp dword [rsp + 0x74], eax
jbe 0x18000e557
mov r8, qword [rsp + 0xd0]
mov edx, dword [rsp + 0x3a0]
mov rcx, rsi
call fcn.18001aad4
xor ecx, ecx
cmp rax, rcx
je 0x18000e575
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0xb8]
xor r9d, r9d
mov ecx, 0x126
call fcn.1800112ec
bts ebp, 7
mov rbx, qword [rsp + 0xd0]
mov rcx, rbx
mov qword [rsp + 0x48], rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 1
lea r8, [rsp + 0x48]
xor r9d, r9d
mov rcx, rbx
add edx, eax
call fcn.18000d5c8
mov ebx, dword [rsp + 0x3a0]
xor r9d, r9d
cmp eax, r9d
je 0x18000ddc6
lea r8, [rsp + 0x98]
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
xor r9d, r9d
lea r10d, [r9 + 1]
cmp eax, r9d
jne 0x18000ddcc
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0xd8]
call fcn.180004ccc
xor ebx, ebx
cmp eax, ebx
jne 0x18000e6a8
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 [0x180059270]
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.18000dd6c
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x180059270]
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]
jmp 0x18000ddbc
mov ebx, dword [rsp + 0x3a0]
cmp dword [rsp + 0x68], r10d
jb 0x18000ddcc
cmp dword [rsp + 0x74], r10d
jbe 0x18000e6f6
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001aad4
xor r9d, r9d
lea r10d, [r9 + 1]
cmp rax, r9
je 0x18000ddcc
lea rdx, [rsp + 0x1d0]
mov ecx, 0x201
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor r9d, r9d
cmp eax, r9d
jne 0x18000e72f
mov rcx, qword [rsp + 0xb8]
lea r8d, [r9 + 1]
lea rdx, [rsp + 0x120]
call fcn.180019ca8
xor r9d, r9d
jmp 0x18000e732
mov eax, r9d
mov r10d, 1
cmp eax, r9d
je 0x18000ddcc
lea r8d, [r10 + 0xf]
lea rdx, [rsp + 0x120]
xor r9d, r9d
mov ecx, 0x127
call fcn.1800112ec
or ebp, 0x40
jmp 0x18000ddc3
mov ebx, dword [rsp + 0x3a0]
cmp dword [rsp + 0x68], r10d
jb 0x18000ddcc
cmp dword [rsp + 0x74], r10d
jbe 0x18000e79d
mov r8, qword [rsp + 0xd0]
mov edx, ebx
mov rcx, rsi
call fcn.18001aad4
xor r9d, r9d
lea r10d, [r9 + 1]
cmp rax, r9
je 0x18000ddcc
mov rcx, qword [rsp + 0xb8]
lea r8, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor r9d, r9d
lea r10d, [r9 + 1]
cmp eax, r9d
je 0x18000ddcc
mov ecx, dword [rsp + 0x40]
cmp ecx, r9d
je 0x18000ddcc
movzx eax, cx
lea r8d, [r9 + 4]
lea rdx, [rsp + 0x88]
shl ax, 2
add cx, ax
mov eax, 0xc8
mov word [rsp + 0x88], cx
lea ecx, [rax + 0x5d]
mov word [rsp + 0x8a], ax
call fcn.1800112ec
or ebp, 0x20
jmp 0x18000ddc3
mov rax, qword [rsp + 0x3d0]
cmp rax, r9
je 0x18000e8f5
cmp qword [rax + 8], r9
jne 0x18000e837
xor edx, edx
mov rcx, rax
call fcn.180014910
xor r9d, r9d
cmp eax, r9d
jne 0x18000e8f5
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 0x18000e8bb
mov rcx, qword [0x180059270]
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.18000dd6c
or eax, 1
or ebp, eax
xor r9d, r9d
cmp rsi, r9
je 0x18000e978
mov ecx, dword [rsp + 0x84]
cmp ecx, r9d
je 0x18000e963
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 [0x180059270]
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