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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, qword [rcx]
mov rax, qword [r9 + 0x20]
mov rsi, rcx
mov r14, qword [rsi + 0x10]
xor ecx, ecx
mov r11, r9
mov r9, qword [rdx + 0x20]
mov r12, rdx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r14
mov edi, ecx
mov qword [rsp + 0x48], rax
mov r13d, ecx
mov dword [rsp + 0x24], ecx
mov r10d, ecx
lea ebp, [rcx + 1]
cmp dword [rdx + 0x14], ecx
jle 0x1800991a1
mov eax, 0xffbf
and word [r9 + 0x12], ax
mov edx, dword [r11 + 0x44]
movzx ecx, word [r9 + 0x12]
cmp dword [r9 + 0x1c], edx
jne 0x18009918c
test qword [r9 + 0x28], r8
jne 0x18009918c
movzx eax, word [r9 + 0x14]
test eax, 0xfffff7ff
je 0x18009918c
test cl, cl
js 0x18009918c
test byte [r11 + 0x3c], 0x58
je 0x180099180
mov rax, qword [r9]
test byte [rax + 4], 3
je 0x18009918c
cmp dword [rax + 0x34], edx
jne 0x18009918c
test byte [r11 + 0x3c], 0x18
je 0x180099180
test byte [rax + 4], 2
jne 0x18009918c
add r13d, ebp
or cx, 0x40
mov word [r9 + 0x12], cx
add r10d, ebp
add r9, 0x38
cmp r10d, dword [r12 + 0x14]
jl 0x18009912f
mov dword [rsp + 0x24], r13d
xor ecx, ecx
mov r15d, ecx
mov dword [rsp + 0x30], ecx
test r14, r14
je 0x1800992d4
movsxd rbp, dword [r14]
mov r12d, ecx
mov r13, rcx
mov r14, rbp
test ebp, ebp
jle 0x1800992a0
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x48]
add rsi, 0x18
xor ebp, ebp
lea eax, [rbp + 1]
mov rbx, qword [rsi - 0x10]
xor r8d, r8d
mov edx, eax
mov rcx, rbx
call fcn.18005e500
test eax, eax
jne 0x180099271
test byte [rsi], 2
jne 0x180099289
cmp byte [rbx], 0xa7
jne 0x18009920b
mov eax, dword [rdi + 0x44]
cmp dword [rbx + 0x2c], eax
je 0x180099271
cmp byte [rbx], 0x71
jne 0x180099289
mov rcx, qword [rbx + 0x10]
cmp byte [rcx], 0xa7
jne 0x180099289
mov eax, dword [rdi + 0x44]
cmp dword [rcx + 0x2c], eax
jne 0x180099289
movzx eax, word [rcx + 0x30]
mov word [rbx + 0x30], ax
cmp word [rcx + 0x30], bp
jl 0x180099271
movsx rax, word [rcx + 0x30]
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 8]
lea rcx, [rax + rcx*8]
call fcn.180069ee8
mov rcx, qword [rbx + 8]
lea rdx, [0x1800f3c58]
test rax, rax
cmovne rdx, rax
test rcx, rcx
jne 0x180099263
neg rdx
sbb eax, eax
jmp 0x18009926d
test rdx, rdx
je 0x180099289
call fcn.18002bf28
test eax, eax
jne 0x180099289
mov eax, 1
add rsi, 0x20
add r13, rax
add r12d, eax
cmp r13, r14
jl 0x1800991e0
mov r15d, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x90]
mov edi, ebp
mov ebp, r14d
mov r14, qword [rsp + 0x38]
cmp r12d, ebp
mov r12, qword [rsp + 0x98]
jne 0x1800992d4
movzx eax, word [rsi + 0x3c]
mov r15d, ebp
test al, al
jns 0x1800992ca
mov edi, eax
shr edi, 9
and edi, 1
add edi, 2
jmp 0x1800992d4
test al, 0x40
mov eax, 1
cmovne edi, eax
movsxd rsi, dword [rsp + 0x24]
mov rcx, qword [rbx]
movsxd r13, r15d
mov rax, rsi
imul rax, rax, 0x1c
lea rdx, [rax + r13*8 + 0x88]
call fcn.1800291a8
xor ecx, ecx
mov rbx, rax
test rax, rax
jne 0x180099315
mov rcx, qword [rsp + 0x40]
lea rdx, str.out_of_memory
call fcn.18002bda4
xor eax, eax
jmp 0x180099498
lea r8, [rax + rsi*8 + 0x80]
lea rax, [rsi + rsi*2]
mov r10d, ecx
mov qword [rbx + 8], r8
lea rbp, [r8 + rax*4]
mov r11d, ecx
mov qword [rbx + 0x18], rbp
lea rax, [rbp + r13*8]
movzx r15d, cx
mov qword [rbx + 0x20], rax
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x60], r12
mov dword [rbx + 0x70], edi
mov dword [rbx + 0x74], ecx
mov qword [rbx + 0x68], rax
mov r9, qword [r12 + 0x20]
cmp dword [r12 + 0x14], ecx
jle 0x18009943b
mov esi, 0x10
add r8, 4
lea edi, [rsi - 0xf]
test byte [r9 + 0x12], 0x40
je 0x180099427
mov eax, dword [r9 + 0x20]
mov dword [r8 + 4], r11d
mov dword [r8 - 4], eax
movzx edx, word [r9 + 0x14]
mov eax, 0x3fff
and dx, ax
cmp dx, di
jne 0x1800993bc
mov eax, 0x8000
test word [r9 + 0x12], ax
jne 0x1800993b7
xor eax, eax
mov ecx, r10d
mov edx, edi
shl edx, cl
cmp r10d, 0x1f
cmovle eax, edx
or dword [rbx + 0x74], eax
mov edx, 2
cmp dx, 0x40
jne 0x1800993c8
mov al, byte [r9 + 0x17]
jmp 0x1800993df
mov eax, 0x180
test ax, dx
je 0x1800993e4
mov eax, 0x100
cmp dx, ax
setne al
add al, 0x47
mov byte [r8], al
jmp 0x180099420
mov byte [r8], dl
test dl, 0x3c
je 0x180099420
mov rcx, qword [r9]
mov rcx, qword [rcx + 0x18]
call fcn.18005c64c
cmp eax, edi
jle 0x180099420
cmp r10d, esi
jge 0x18009940d
mov eax, edi
mov ecx, r10d
shl ax, cl
or r15w, ax
cmp dx, si
jne 0x180099416
mov byte [r8], 8
cmp dx, 4
jne 0x180099420
mov byte [r8], 0x20
add r10d, edi
add r8, 0xc
add r11d, edi
add r9, 0x38
cmp r11d, dword [r12 + 0x14]
jl 0x18009936f
xor ecx, ecx
mov dword [rbx], r10d
mov esi, ecx
test r13, r13
jle 0x180099486
lea rdi, [r14 + 0x18]
mov r14d, 1
mov r12, qword [rdi - 0x10]
xor r8d, r8d
mov edx, r14d
mov rcx, r12
call fcn.18005e500
test eax, eax
jne 0x18009947d
movsx eax, word [r12 + 0x30]
add esi, r14d
mov dword [rbp], eax
mov al, byte [rdi]
and al, r14b
add rbp, 8
mov byte [rbp - 4], al
add rdi, 0x20
sub r13, r14
jne 0x18009944f
mov rax, qword [rsp + 0xb0]
mov dword [rbx + 0x10], esi
mov word [rax], r15w
mov rax, rbx
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret