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

Disassembly:
push rbx
sub rsp, 0x20
cmp byte [rdx], 0x31
mov rbx, rcx
jne 0x1800971ba
test rcx, rcx
jne 0x180096fd0
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 0x180096ffc
lea rax, [0x180099a20]
mov qword [rcx + 0x40], rsi
mov qword [rcx + 0x30], rax
mov ecx, esi
jmp 0x180097000
mov rcx, qword [rcx + 0x40]
cmp qword [rbx + 0x38], rsi
jne 0x180097011
lea rdx, [0x180099a30]
mov qword [rbx + 0x38], rdx
mov edx, 1
mov r8d, 0x1720
call rax
mov rdi, rax
test rax, rax
je 0x1800971a5
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 0x180097149
cmp qword [rdi + 0x60], rsi
je 0x180097149
cmp qword [rdi + 0x68], rsi
je 0x180097149
test rdx, rdx
je 0x180097149
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 0x1800971d0
mov rax, qword [str.insufficient_memory]
mov dword [rdi + 8], 0x29a
mov qword [rbx + 0x20], rax
cmp qword [rbx + 0x30], rsi
je 0x1800971a5
cmp qword [rbx + 0x38], rsi
je 0x1800971a5
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x1800971a5
cmp qword [rax], rbx
jne 0x1800971a5
mov ecx, dword [rax + 8]
lea eax, [rcx - 0x2a]
cmp eax, 0x3d
ja 0x180097190
movabs rdx, 0x2002000088008001
bt rdx, rax
jb 0x18009719d
cmp ecx, 0x71
je 0x18009719d
cmp ecx, 0x29a
jne 0x1800971a5
mov rcx, rbx
call fcn.180097ed0
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 0x1800973a6
cmp qword [rcx + 0x30], 0
je 0x1800973a6
cmp qword [rcx + 0x38], 0
je 0x1800973a6
mov rcx, qword [rcx + 0x28]
test rcx, rcx
je 0x1800973a6
cmp qword [rcx], rbx
jne 0x1800973a6
mov edx, dword [rcx + 8]
lea eax, [rdx - 0x2a]
cmp eax, 0x3d
ja 0x180097229
movabs r8, 0x2002000088008001
bt r8, rax
jb 0x18009723a
cmp edx, 0x71
je 0x18009723a
cmp edx, 0x29a
jne 0x1800973a6
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 0x180097269
neg edx
mov dword [rcx + 0x2c], edx
cmp edx, 2
jne 0x180097273
lea eax, [rdx + 0x37]
jmp 0x180097284
test edx, edx
mov eax, 0x71
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, [0x1800ec238]
mov qword [rcx + 0xb50], rax
lea rax, [rcx + 0x9b0]
mov qword [rcx + 0xb58], rax
lea rax, [0x1800e9518]
mov qword [rcx + 0xb68], rax
lea rax, [rcx + 0xaa4]
mov qword [rcx + 0xb70], rax
lea rax, [0x1800ec1a0]
mov qword [rcx + 0xb80], rax
mov dword [rcx + 0x40], edi
mov word [rcx + 0x1710], di
mov dword [rcx + 0x1714], edi
call fcn.18009a9f0
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.1800a0440
movsxd rdx, dword [rbx + 0xac]
lea r8, [0x1800e95c0]
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