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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rax, qword [rcx + 0x20]
xor r14d, r14d
sub rax, 0x34
mov qword [rcx + 0x78], r14
mov qword [rcx + 0x28], rax
mov ebp, edx
mov rax, qword [rcx + 0x30]
mov rbx, rcx
mov word [rcx + 0x6a], r14w
mov esi, r14d
mov dword [rcx + 0x3c], r14d
mov qword [rcx + 0x70], rax
mov qword [rax + 0x10], rax
mov word [rcx + 0x68], r14w
cmp r14w, word [rcx + 0xb8]
jge 0x18009d4fb
movzx r10d, r14w
mov edi, r14d
mov rax, qword [rbx + 0xd0]
mov r9d, ebp
mov dword [rbx + 0x88], r14d
movzx edx, r10w
mov qword [rbx + 0x80], r14
mov rcx, rbx
movzx r8d, word [rax + rdi]
call fcn.18009d970
test al, al
jne 0x18009d682
mov rax, qword [rbx + 0xd0]
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 0x5c]
movzx r10d, word [rdi + rax]
lea eax, [r8 - 1]
test edx, eax
jne 0x18009d48b
cmp edx, dword [rbx + 0x60]
jl 0x18009d48b
cmp edx, dword [rbx + 0x64]
jg 0x18009d48b
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x18009d48b
mov rax, qword [rbx + 0x70]
movzx ecx, byte [rcx + 0x18]
xor cl, byte [rax + 0x18]
test cl, 8
jne 0x18009d48b
add qword [rbx + 0x30], 0xfffffffffffffffc
mov r9, qword [rbx + 0x70]
mov rax, qword [r9 + 0x10]
cmp qword [rbx + 0x30], rax
je 0x18009d4ae
test byte [r9 + 0x18], 8
je 0x18009d4ae
neg r8d
and r8d, edx
sub edx, r8d
cmp edx, dword [rbx + 8]
jmp 0x18009d4bf
lea eax, [r8 - 1]
neg r8d
add eax, edx
and eax, r8d
sub eax, edx
cmp eax, dword [rbx + 8]
setge dl
mov rcx, rbx
call fcn.18009e330
test al, al
jne 0x18009d682
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x18009d4e2
mov qword [r9 + 0x28], rax
movsx eax, word [rbx + 0xb8]
inc esi
add rdi, 2
inc r10w
cmp esi, eax
jl 0x18009d414
movzx r11d, word [rbx + 0x68]
mov rdx, qword [rbx + 0x78]
cmp r11w, 1
jbe 0x18009d686
test rdx, rdx
je 0x18009d686
mov esi, 0xffff
nop dword [rax]
lea rdi, [rdx + 8]
cmp r11w, 1
jbe 0x18009d539
movsxd rcx, dword [rdx + 0x1c]
mov rax, qword [rdx + 0x10]
lea r10, [rax + rcx*4]
jmp 0x18009d53c
mov r10, r14
mov qword [rdi], r10
test byte [rdx + 0x18], 8
mov r10d, dword [rdx + 0x20]
mov r8d, r10d
mov eax, dword [rdx + 0x1c]
je 0x18009d557
dec r10d
add r10d, eax
jmp 0x18009d56e
sub r8d, eax
inc r8d
dec eax
mov dword [rdx + 0x20], r8d
movsxd rcx, eax
shl rcx, 2
add qword [rdx + 0x10], rcx
movsxd rax, dword [rbx + 0x3c]
mov r9, qword [rbx + 0x20]
mov rcx, rax
shl rcx, 2
sub r9, rcx
lea edx, [rax - 1]
movsxd rax, edx
test edx, edx
js 0x18009d5c1
nop word [rax + rax]
cmp r8d, dword [r9 + rax*4]
jge 0x18009d59e
dec edx
sub rax, 1
jns 0x18009d590
test edx, edx
js 0x18009d5c1
movsxd rax, edx
cmp r8d, dword [r9 + rax*4]
lea rcx, [r9 + rax*4]
jle 0x18009d5f0
nop
sub edx, 1
mov eax, dword [rcx]
mov dword [rcx], r8d
lea rcx, [rcx - 4]
mov r8d, eax
jns 0x18009d5b0
add qword [rbx + 0x28], 0xfffffffffffffffc
mov rax, qword [rbx + 0x28]
cmp rax, qword [rbx + 0x30]
jbe 0x18009d67b
movsxd rcx, dword [rbx + 0x3c]
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rax, [rcx*4 + 4]
mov rcx, qword [rbx + 0x20]
sub rcx, rax
mov dword [rcx], r8d
movsxd rax, dword [rbx + 0x3c]
lea r8d, [r10 + 1]
mov r9, qword [rbx + 0x20]
mov rcx, rax
shl rcx, 2
sub r9, rcx
lea edx, [rax - 1]
movsxd rax, edx
test edx, edx
js 0x18009d641
cmp r8d, dword [r9 + rax*4]
jge 0x18009d61e
dec edx
sub rax, 1
jns 0x18009d610
test edx, edx
js 0x18009d641
movsxd rax, edx
cmp r8d, dword [r9 + rax*4]
lea rcx, [r9 + rax*4]
jle 0x18009d66c
nop
sub edx, 1
mov eax, dword [rcx]
mov dword [rcx], r8d
lea rcx, [rcx - 4]
mov r8d, eax
jns 0x18009d630
add qword [rbx + 0x28], 0xfffffffffffffffc
mov rax, qword [rbx + 0x28]
cmp rax, qword [rbx + 0x30]
jbe 0x18009d67b
movsxd rcx, dword [rbx + 0x3c]
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rax, [rcx*4 + 4]
mov rcx, qword [rbx + 0x20]
sub rcx, rax
mov dword [rcx], r8d
mov rdx, qword [rdi]
add r11w, si
jne 0x18009d520
jmp 0x18009d68a
mov dword [rbx + 0x38], 0x62
mov al, 1
jmp 0x18009d695
mov qword [rbx + 0x78], r14
mov rax, qword [rbx + 0x28]
cmp qword [rbx + 0x30], rax
setae al
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret