Function at 0x180010e30
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.180003000
mov qword [rsp + 0x128], rax
mov edi, dword [rsp + 0x3b0]
xor edx, edx
mov r9d, 1
mov r8, qword [rsp + 0x108]
mov dword [rsp + 0x44], edx
lea rcx, [r8 + 4]
mov r8d, dword [r8]
mov eax, edx
add edx, r9d
mov dword [rsp + rax*4 + 0x70], r8d
add r8, rcx
mov qword [rsp + rax*8 + 0xc0], rcx
mov dword [rsp + 0x44], edx
cmp edx, 6
jb 0x180010e9f
xor edx, edx
mov qword [rsp + 0x108], r8
cmp dword [rsp + 0x70], r9d
jbe 0x1800119ad
mov rax, qword [rsp + 0xc0]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
call fcn.180029010
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0xf4]
lea rdx, [rsp + 0xf0]
call fcn.18002b43c
xor edx, edx
cmp rax, rdx
je 0x180010f33
cmp dword [rsp + 0xf4], edx
jne 0x180010f33
mov ecx, dword [rsp + 0xf0]
cmp ecx, edx
je 0x180010f76
cmp dword [rsp + 0x3d0], edx
je 0x180010f71
cmp ecx, 8
je 0x180010f76
mov rax, qword [rsp + 0xc0]
mov r9d, 1
cmp qword [rsp + 0x50], rax
je 0x180010e93
mov r8, qword [rsp + 0x50]
xor edx, edx
mov rcx, qword [0x180035a68]
call qword [sym.imp.kERNEL32.dll_HeapFree]
jmp 0x180010e8b
mov edi, dword [rsp + 0x3b0]
jmp 0x180010e93
cmp ecx, 7
jne 0x180010f33
mov rdx, qword [rsp + 0x128]
mov rcx, rax
call fcn.18002c09c
xor edx, edx
cmp eax, edx
je 0x180010f33
mov rax, qword [rsp + 0xc0]
cmp qword [rsp + 0x50], rax
je 0x180010faf
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x180035a68]
call qword [sym.imp.kERNEL32.dll_HeapFree]
xor edx, edx
mov eax, dword [rsp + 0x74]
mov r9d, 1
cmp dword [rsp + 0x84], r9d
jbe 0x180010fd3
cmp dword [rsp + 0x78], r9d
ja 0x180010fd3
cmp eax, r9d
jbe 0x1800118b5
cmp eax, r9d
jbe 0x180010e93
cmp rbp, rdx
jne 0x180011079
mov rax, qword [rsi]
lea rdx, [rsp + 0x140]
mov r8d, r9d
mov rcx, rsi
call qword [rax + 0x60]
mov edi, dword [rsp + 0x150]
xor edx, edx
mov dword [rsp + 0x3b0], edi
lea r9d, [rdx + 1]
cmp edi, edx
je 0x180010e93
mov rcx, qword [0x180035a68]
mov r8, rdi
call qword [sym.imp.kERNEL32.dll_HeapAlloc]
xor edx, edx
mov rbp, rax
lea r9d, [rdx + 1]
cmp rax, rdx
je 0x180010e93
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
lea r9d, [rdx + 1]
cmp edi, edx
je 0x180010e93
mov rcx, qword [rsp + 0xc8]
lea edx, [rax - 1]
call fcn.18001e8e8
mov edx, 0
mov edi, eax
lea r9d, [rdx + 1]
xor edi, dword [0x180035c58]
cmp edi, 0x1ddeb827
je 0x180011806
cmp edi, 0x2c477b1f
je 0x180010f65
cmp edi, 0x2f154637
je 0x18001161d
cmp edi, 0x7f980fcf
je 0x180011767
cmp edi, 0x8012590a
je 0x1800115cc
cmp edi, 0xc54ba3c5
je 0x180011505
cmp edi, 0xd2f83d47
je 0x1800112f9
cmp edi, 0xeee88e80
je 0x180010f65
cmp dword [rsp + 0x78], r9d
jbe 0x180010f65
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.180029010
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.1800183b4
cmp edi, 0x5131bcd1
jne 0x18001120d
cmp dword [rsp + 0x74], 3
jne 0x18001120d
xor eax, eax
cmp dword [rsp + 0x3d8], eax
je 0x1800112a9
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.kERNEL32.dll_lstrlenA]
mov edi, dword [rsp + 0x3b0]
mov rcx, qword [0x180035a68]
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
mov qword [rsp + 0x68], rax
cmp rax, rcx
je 0x1800112a9
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 0x18001126d
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.kERNEL32.dll_lstrlenA]
mov edi, dword [rsp + 0x3b0]
cmp eax, edi
ja 0x18001125b
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.180025984
mov rdi, qword [rsp + 0xb8]
jmp 0x180011265
mov rdi, qword [rsp + 0x68]
mov eax, 0x57
xor ecx, ecx
cmp eax, ecx
cmovne rdi, rcx
cmp rdi, rcx
je 0x1800112a9
mov rcx, qword [0x180035a68]
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 0x1800112b0
mov edi, dword [rsp + 0x3b0]
mov rax, qword [rsp + 0xd0]
cmp qword [rsp + 0x50], rax
je 0x1800112d3
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x180035a68]
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xc8]
mov edx, 0
lea r9d, [rdx + 1]
cmp qword [rsp + 0x60], rax
je 0x180010e93
mov r8, qword [rsp + 0x60]
jmp 0x180010f53
mov rcx, qword [rsp + 0x3b8]
cmp rcx, rdx
je 0x1800114a1
mov rax, qword [rcx]
lea rdx, [rsp + 0x190]
mov r8d, r9d
call qword [rax + 0x60]
mov eax, dword [rsp + 0x1a0]
mov edi, dword [rsp + 0x3b0]
mov rcx, qword [0x180035a68]
lea r8d, [rdi + rax]
xor edx, edx
mov dword [rsp + 0x48], eax
call qword [sym.imp.kERNEL32.dll_HeapAlloc]
xor edx, edx
mov qword [rsp + 0x60], rax
cmp rax, rdx
je 0x180010e8d
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.180024f78
xor ecx, ecx
cmp eax, ecx
je 0x180011467
or ebx, 2
mov dword [rsp + 0x40], ebx
mov r8d, dword [rsp + 0x100]
cmp r8d, ecx
je 0x180011497
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 0x180010f51
cmp dword [rsp + 0x78], r9d
mov edi, dword [rsp + 0x3b0]
mov rcx, qword [rsp + 0x3c8]
mov r9, qword [rsp + 0xd8]
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.180024f78
xor edx, edx
lea r9d, [rdx + 1]
cmp eax, edx
je 0x180010e93
or ebx, 2
mov dword [rsp + 0x40], ebx
jmp 0x180010e93
mov edi, dword [rsp + 0x3b0]
mov eax, r9d
cmp dword [rsp + 0x84], eax
jbe 0x180011538
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.18002c2c4
xor edx, edx
cmp rax, rdx
je 0x180010e8d
lea eax, [rdx + 1]
mov word [rsp + 0x58], ax
mov eax, 0xbb8
mov word [rsp + 0x5a], ax
cmp dword [rsp + 0x78], edx
je 0x1800115af
cmp dword [rsp + 0x7c], edx
je 0x1800115af
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 0x180011582
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 0x1800115af
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]
lea r8d, [r9 + 4]
lea ecx, [r9 + 0x34]
call fcn.18000bc1c
or ebx, 4
jmp 0x1800118ac
mov eax, r9d
cmp dword [rsp + 0x78], eax
jb 0x18001161d
cmp dword [rsp + 0x84], eax
jbe 0x1800115fc
mov r8, qword [rsp + 0xe8]
mov edx, dword [rsp + 0x3b0]
mov rcx, rbp
call fcn.18002c2c4
xor ecx, ecx
cmp rax, rcx
je 0x18001161d
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0xd0]
xor r9d, r9d
lea ecx, [r9 + 0x35]
call fcn.18000bc1c
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]
mov edx, 1
lea r8, [rsp + 0x68]
xor r9d, r9d
mov rcx, rdi
add edx, eax
call fcn.1800183b4
mov edi, dword [rsp + 0x3b0]
xor edx, edx
cmp eax, edx
je 0x180010e8d
lea r8, [rsp + 0xb0]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
xor edx, edx
lea r9d, [rdx + 1]
cmp eax, edx
jne 0x180010e93
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x8c]
lea rdx, [rsp + 0xf8]
xor r9d, r9d
call fcn.18002bf00
xor edi, edi
cmp eax, edi
jne 0x180011754
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 [0x180035a68]
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.180010e30
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x180035a68]
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]
jmp 0x180010e84
mov edi, dword [rsp + 0x3b0]
cmp dword [rsp + 0x78], r9d
jb 0x180010e93
cmp dword [rsp + 0x84], r9d
jbe 0x1800117a4
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.18002c2c4
xor edx, edx
lea r9d, [rdx + 1]
cmp rax, rdx
je 0x180010e93
lea rdx, [rsp + 0x1e0]
mov ecx, 0x201
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor edx, edx
cmp eax, edx
jne 0x1800117d6
mov rcx, qword [rsp + 0xd0]
lea rdx, [rsp + 0x130]
call fcn.1800227b0
xor edx, edx
jmp 0x1800117d8
mov eax, edx
mov r9d, 1
cmp eax, edx
je 0x180010e93
xor r9d, r9d
lea rdx, [rsp + 0x130]
lea r8d, [r9 + 0x10]
lea ecx, [r9 + 0x36]
call fcn.18000bc1c
or ebx, 0x40
jmp 0x1800118ac
mov edi, dword [rsp + 0x3b0]
cmp dword [rsp + 0x78], r9d
jb 0x180010e93
cmp dword [rsp + 0x84], r9d
jbe 0x180011843
mov r8, qword [rsp + 0xe8]
mov edx, edi
mov rcx, rbp
call fcn.18002c2c4
xor edx, edx
lea r9d, [rdx + 1]
cmp rax, rdx
je 0x180010e93
mov rcx, qword [rsp + 0xd0]
lea r8, [rsp + 0x44]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
xor edx, edx
lea r9d, [rdx + 1]
cmp eax, edx
je 0x180010e93
mov ecx, dword [rsp + 0x44]
cmp ecx, edx
je 0x180010e93
movzx eax, cx
xor r9d, r9d
lea r8d, [rdx + 4]
shl ax, 2
lea rdx, [rsp + 0x88]
add cx, ax
mov eax, 0xc8
mov word [rsp + 0x88], cx
lea ecx, [r9 + 0x34]
mov word [rsp + 0x8a], ax
call fcn.18000bc1c
or ebx, 0x20
mov dword [rsp + 0x40], ebx
jmp 0x180010e8b
mov rdi, qword [rsp + 0x3e0]
cmp rdi, rdx
je 0x1800119ad
cmp qword [rdi + 0x18], rdx
jne 0x1800118de
mov rcx, rdi
call fcn.18001818c
xor edx, edx
cmp eax, edx
jne 0x1800119ad
mov rcx, rdi
call fcn.1800055cc
xor edx, edx
cmp eax, edx
jne 0x1800119ad
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.180029010
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 0x180011975
mov rcx, qword [0x180035a68]
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.180010e30
mov ebx, dword [rsp + 0x40]
or eax, 1
or ebx, eax
xor edx, edx
cmp rbp, rdx
je 0x180011a30
mov ecx, dword [rsp + 0xa0]
cmp ecx, edx
je 0x180011a1c
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 [0x180035a68]
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