Function at 0x18009a680
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
sub rsp, 0x20
cmp byte [rdx], 0x31
mov rbx, rcx
jne 0x18009a88a
test rcx, rcx
jne 0x18009a6a0
lea eax, [rcx - 2]
add rsp, 0x20
pop rbx
ret
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x30], rsi
xor esi, esi
mov qword [rsp + 0x38], rdi
mov qword [rcx + 0x20], rsi
test rax, rax
jne 0x18009a6cc
lea rax, [0x18009cf40]
mov qword [rcx + 0x40], rsi
mov qword [rcx + 0x30], rax
mov ecx, esi
jmp 0x18009a6d0
mov rcx, qword [rcx + 0x40]
cmp qword [rbx + 0x38], rsi
jne 0x18009a6e1
lea rdx, [0x18009cf50]
mov qword [rbx + 0x38], rdx
mov edx, 1
mov r8d, 0x1720
call rax
mov rdi, rax
test rax, rax
je 0x18009a875
mov qword [rbx + 0x28], rax
mov edx, 0x8000
mov qword [rax], rbx
mov r8d, 2
mov dword [rax + 8], 0x2a
mov dword [rax + 0x2c], 2
mov qword [rax + 0x30], rsi
mov dword [rax + 0x48], InitCommonControls
mov dword [rax + 0x44], 0x8000
mov dword [rax + 0x4c], 0x7fff
mov dword [rax + 0x78], InitCommonControls
mov dword [rax + 0x74], 0x800
mov dword [rax + 0x7c], 0x7ff
mov dword [rax + 0x80], 4
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov edx, dword [rdi + 0x44]
mov r8d, 2
mov qword [rdi + 0x50], rax
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov edx, dword [rdi + 0x74]
mov r8d, 2
mov qword [rdi + 0x60], rax
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov dword [rdi + 0x1718], esi
mov edx, 0x400
mov qword [rdi + 0x68], rax
mov r8d, 4
mov dword [rdi + 0x16f0], 0x400
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov rdx, rax
mov qword [rdi + 0x10], rax
mov eax, dword [rdi + 0x16f0]
lea ecx, [rax*4]
mov dword [rdi + 0x18], ecx
cmp qword [rdi + 0x50], rsi
je 0x18009a819
cmp qword [rdi + 0x60], rsi
je 0x18009a819
cmp qword [rdi + 0x68], rsi
je 0x18009a819
test rdx, rdx
je 0x18009a819
mov ecx, eax
mov qword [rdi + 0xac], 6
shr rax, 1
mov byte [rdi + 0x3c], 8
lea rax, [rdx + rax*2]
mov qword [rdi + 0x16f8], rax
lea rax, [rdx + rcx*2]
add rcx, rax
mov qword [rdi + 0x16e8], rcx
mov rcx, rbx
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
jmp 0x18009a8a0
mov rax, qword [str.insufficient_memory]
mov dword [rdi + 8], 0x29a
mov qword [rbx + 0x20], rax
cmp qword [rbx + 0x30], rsi
je 0x18009a875
cmp qword [rbx + 0x38], rsi
je 0x18009a875
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x18009a875
cmp qword [rax], rbx
jne 0x18009a875
mov ecx, dword [rax + 8]
lea eax, [rcx - 0x2a]
cmp eax, 0x3d
ja 0x18009a860
movabs rdx, 0x2002000088008001
bt rdx, rax
jb 0x18009a86d
cmp ecx, 0x71
je 0x18009a86d
cmp ecx, 0x29a
jne 0x18009a875
mov rcx, rbx
call fcn.18009b5a0
mov rsi, qword [rsp + 0x30]
mov eax, 0xfffffffc
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
mov eax, 0xfffffffa
add rsp, 0x20
pop rbx
ret
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x18009aa76
cmp qword [rcx + 0x30], 0
je 0x18009aa76
cmp qword [rcx + 0x38], 0
je 0x18009aa76
mov rcx, qword [rcx + 0x28]
test rcx, rcx
je 0x18009aa76
cmp qword [rcx], rbx
jne 0x18009aa76
mov edx, dword [rcx + 8]
lea eax, [rdx - 0x2a]
cmp eax, 0x3d
ja 0x18009a8f9
movabs r8, 0x2002000088008001
bt r8, rax
jb 0x18009a90a
cmp edx, 0x71
je 0x18009a90a
cmp edx, 0x29a
jne 0x18009aa76
mov dword [rbx + 0x48], 2
mov qword [rsp + 0x30], rdi
xor edi, edi
mov dword [rbx + 0x1c], edi
mov dword [rbx + 0xc], edi
mov qword [rbx + 0x20], rdi
mov rax, qword [rcx + 0x10]
mov edx, dword [rcx + 0x2c]
mov qword [rcx + 0x20], rax
mov dword [rcx + 0x28], edi
test edx, edx
jns 0x18009a939
neg edx
mov dword [rcx + 0x2c], edx
cmp edx, 2
jne 0x18009a943
lea eax, [rdx + 0x37]
jmp 0x18009a954
test edx, edx
mov eax, WSAStartup
mov r8d, 0x2a
cmovne eax, r8d
mov dword [rcx + 8], eax
cmp edx, 2
mov eax, edi
setne al
mov dword [rbx + 0x4c], eax
lea rax, [rcx + 0xbc]
mov qword [rcx + 0xb40], rax
lea rax, [0x1801b6e30]
mov qword [rcx + 0xb50], rax
lea rax, [rcx + 0x9b0]
mov qword [rcx + 0xb58], rax
lea rax, [0x1801b4188]
mov qword [rcx + 0xb68], rax
lea rax, [rcx + 0xaa4]
mov qword [rcx + 0xb70], rax
lea rax, [0x1801b6e10]
mov qword [rcx + 0xb80], rax
mov dword [rcx + 0x40], edi
mov word [rcx + 0x1710], di
mov dword [rcx + 0x1714], edi
call fcn.18009df10
mov rbx, qword [rbx + 0x28]
xor edx, edx
mov eax, dword [rbx + 0x44]
mov ecx, dword [rbx + 0x74]
add eax, eax
mov dword [rbx + 0x58], eax
dec ecx
mov rax, qword [rbx + 0x68]
mov word [rax + rcx*2], di
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
dec r8d
add r8, r8
call fcn.18014be70
movsxd rdx, dword [rbx + 0xac]
lea r8, [0x1801b41b0]
add rdx, rdx
movzx eax, word [r8 + rdx*8 + 2]
mov dword [rbx + 0xa8], eax
movzx eax, word [r8 + rdx*8]
mov dword [rbx + 0xb4], eax
mov eax, edi
movzx ecx, word [r8 + rdx*8 + 4]
mov dword [rbx + 0xb8], ecx
movzx ecx, word [r8 + rdx*8 + 6]
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0x84], edi
mov dword [rbx + 0x9c], edi
mov dword [rbx + 0x170c], edi
mov dword [rbx + 0x70], edi
mov rdi, qword [rsp + 0x30]
mov dword [rbx + 0xa4], ecx
mov dword [rbx + 0xa0], 2
mov dword [rbx + 0x88], 2
add rsp, 0x20
pop rbx
ret
mov eax, 0xfffffffe
add rsp, 0x20
pop rbx
ret