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

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x180097577
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 0x1800975a3
lea rax, [0x180099cb0]
mov qword [rcx + 0x40], rsi
mov qword [rcx + 0x30], rax
mov ecx, esi
jmp 0x1800975a7
mov rcx, qword [rcx + 0x40]
cmp qword [rbx + 0x38], rsi
jne 0x1800975b8
lea rdx, [0x180099cc0]
mov qword [rbx + 0x38], rdx
mov edx, 1
mov r8d, 0x1720
call rax
mov rdi, rax
test rax, rax
je 0x18009770a
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], 0xf
mov dword [rax + 0x44], 0x8000
mov dword [rax + 0x4c], 0x7fff
mov dword [rax + 0x78], 0xb
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 0x1800976f0
cmp qword [rdi + 0x60], rsi
je 0x1800976f0
cmp qword [rdi + 0x68], rsi
je 0x1800976f0
test rdx, rdx
je 0x1800976f0
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 0x180097720
mov rax, qword [str.insufficient_memory]
mov rcx, rbx
mov dword [rdi + 8], 0x29a
mov qword [rbx + 0x20], rax
call fcn.180098320
mov rsi, qword [rsp + 0x30]
mov eax, 0xfffffffc
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
test rcx, rcx
je 0x18009790d
cmp qword [rcx + 0x30], 0
je 0x18009790d
cmp qword [rcx + 0x38], 0
je 0x18009790d
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x18009790d
cmp qword [rbx], rcx
jne 0x18009790d
mov ecx, dword [rbx + 8]
lea eax, [rcx - 0x2a]
cmp eax, 0x3d
ja 0x18009777d
movabs rdx, 0x2002000088008001
bt rdx, rax
jb 0x18009778e
cmp ecx, 0x71
je 0x18009778e
cmp ecx, 0x29a
jne 0x18009790d
mov dword [rdi + 0x48], 2
mov qword [rsp + 0x30], rsi
xor esi, esi
mov dword [rdi + 0x1c], esi
mov dword [rdi + 0xc], esi
mov qword [rdi + 0x20], rsi
mov rax, qword [rbx + 0x10]
mov qword [rbx + 0x20], rax
mov eax, dword [rbx + 0x2c]
mov dword [rbx + 0x28], esi
test eax, eax
jns 0x1800977bd
neg eax
mov dword [rbx + 0x2c], eax
cmp eax, 2
jne 0x1800977c7
lea ecx, [rax + 0x37]
jmp 0x1800977d6
test eax, eax
mov ecx, 0x71
mov edx, 0x2a
cmovne ecx, edx
mov dword [rbx + 8], ecx
cmp eax, 2
jne 0x1800977e2
mov eax, esi
jmp 0x1800977ee
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180099cd0
mov dword [rdi + 0x4c], eax
mov rcx, rbx
lea rax, [rbx + 0xbc]
mov dword [rbx + 0x40], esi
mov qword [rbx + 0xb40], rax
lea rax, [0x1800e02f8]
mov qword [rbx + 0xb50], rax
lea rax, [rbx + 0x9b0]
mov qword [rbx + 0xb58], rax
lea rax, [0x1800e0548]
mov qword [rbx + 0xb68], rax
lea rax, [rbx + 0xaa4]
mov qword [rbx + 0xb70], rax
lea rax, [0x1800ddcc8]
mov qword [rbx + 0xb80], rax
mov word [rbx + 0x1710], si
mov dword [rbx + 0x1714], esi
call fcn.18009ac80
mov rbx, qword [rdi + 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], si
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
dec r8d
add r8, r8
call sub.VCRUNTIME140.dll_memset
movsxd rdx, dword [rbx + 0xac]
lea r8, [0x1800ddd00]
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, esi
movzx ecx, word [r8 + rdx*8 + 4]
mov dword [rbx + 0xb8], ecx
movzx ecx, word [r8 + rdx*8 + 6]
mov qword [rbx + 0x90], rsi
mov dword [rbx + 0x84], esi
mov dword [rbx + 0x9c], esi
mov dword [rbx + 0x170c], esi
mov dword [rbx + 0x70], esi
mov rsi, qword [rsp + 0x30]
mov dword [rbx + 0xa4], ecx
mov dword [rbx + 0xa0], 2
mov dword [rbx + 0x88], 2
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x38]
mov eax, 0xfffffffe
add rsp, 0x20
pop rdi
ret