Function at 0x1801587c0
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 0x18015890b
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.180158d80
test al, al
jne 0x180158a92
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 0x18015889b
cmp edx, dword [rbx + 0x60]
jl 0x18015889b
cmp edx, dword [rbx + 0x64]
jg 0x18015889b
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x18015889b
mov rax, qword [rbx + 0x70]
movzx ecx, byte [rcx + 0x18]
xor cl, byte [rax + 0x18]
test cl, 8
jne 0x18015889b
add qword [rbx + 0x30], 0xfffffffffffffffc
mov r9, qword [rbx + 0x70]
mov rax, qword [r9 + 0x10]
cmp qword [rbx + 0x30], rax
je 0x1801588be
test byte [r9 + 0x18], 8
je 0x1801588be
neg r8d
and r8d, edx
sub edx, r8d
cmp edx, dword [rbx + 8]
jmp 0x1801588cf
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.180159740
test al, al
jne 0x180158a92
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x1801588f2
mov qword [r9 + 0x28], rax
movsx eax, word [rbx + 0xb8]
inc esi
add rdi, 2
inc r10w
cmp esi, eax
jl 0x180158824
movzx r11d, word [rbx + 0x68]
mov rdx, qword [rbx + 0x78]
cmp r11w, 1
jbe 0x180158a96
test rdx, rdx
je 0x180158a96
mov esi, 0xffff
nop dword [rax]
lea rdi, [rdx + 8]
cmp r11w, 1
jbe 0x180158949
movsxd rcx, dword [rdx + 0x1c]
mov rax, qword [rdx + 0x10]
lea r10, [rax + rcx*4]
jmp 0x18015894c
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 0x180158967
dec r10d
add r10d, eax
jmp 0x18015897e
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 0x1801589d1
nop word [rax + rax]
cmp r8d, dword [r9 + rax*4]
jge 0x1801589ae
dec edx
sub rax, 1
jns 0x1801589a0
test edx, edx
js 0x1801589d1
movsxd rax, edx
cmp r8d, dword [r9 + rax*4]
lea rcx, [r9 + rax*4]
jle 0x180158a00
nop
sub edx, 1
mov eax, dword [rcx]
mov dword [rcx], r8d
lea rcx, [rcx - 4]
mov r8d, eax
jns 0x1801589c0
add qword [rbx + 0x28], 0xfffffffffffffffc
mov rax, qword [rbx + 0x28]
cmp rax, qword [rbx + 0x30]
jbe 0x180158a8b
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 0x180158a51
cmp r8d, dword [r9 + rax*4]
jge 0x180158a2e
dec edx
sub rax, 1
jns 0x180158a20
test edx, edx
js 0x180158a51
movsxd rax, edx
cmp r8d, dword [r9 + rax*4]
lea rcx, [r9 + rax*4]
jle 0x180158a7c
nop
sub edx, 1
mov eax, dword [rcx]
mov dword [rcx], r8d
lea rcx, [rcx - 4]
mov r8d, eax
jns 0x180158a40
add qword [rbx + 0x28], 0xfffffffffffffffc
mov rax, qword [rbx + 0x28]
cmp rax, qword [rbx + 0x30]
jbe 0x180158a8b
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 0x180158930
jmp 0x180158a9a
mov dword [rbx + 0x38], 0x62
mov al, 1
jmp 0x180158aa5
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