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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov r10d, dword [rcx + 0xc8]
mov r14, r8
mov rax, rcx
mov r8, qword [rcx + 0x30]
mov r15, rdx
cmp r9d, 7
je 0x452100
ja 0x451f10
cmp r9d, 5
je 0x4520e0
cmp r9d, 6
jne 0x4520c0
movabs rdx, 0xcf1bbcdcbf9b0000
imul rdx, qword [r15]
mov ecx, 0x40
sub ecx, r10d
shr rdx, cl
mov edi, dword [rax + 0xc4]
mov r9d, 1
mov rbx, qword [rax + 8]
lea r10, [r8 + rdx*4]
mov rsi, qword [rax + 0x10]
mov r8, r15
mov rbp, qword [rax + 0x40]
lea ecx, [rdi - 1]
mov edi, r9d
sub r8, rbx
mov edx, dword [r10]
shl edi, cl
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x78], rsi
mov r11d, r8d
lea edi, [rdi - 1]
mov qword [rsp + 0x40], rbx
add rsi, rcx
sub r11d, edi
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x58], rsi
mov rsi, rbx
lea ebx, [r8 + 9]
add rsi, rcx
cmp edi, r8d
mov dword [rsp + 0x3c], edi
mov ecx, 0
cmovb ecx, r11d
and edi, r8d
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0x48], ecx
mov ecx, edi
add ecx, ecx
mov dword [rsp + 0x90], ebx
lea rdi, [rbp + rcx*4]
mov ecx, dword [rax + 0xcc]
mov qword [rsp + 0x18], rdi
add rdi, 4
mov qword [rsp + 0x20], rdi
mov edi, dword [rax + 0x1c]
mov eax, 0xfffffff8
shl r9d, cl
sub eax, r8d
mov dword [r10], r8d
lea r11d, [r9 - 1]
mov dword [rsp + 0x4c], edi
mov dword [rsp + 0x94], eax
cmp edx, edi
jb 0x452172
test r9d, r9d
je 0x452172
lea rax, [r14 - 7]
xor r13d, r13d
xor edi, edi
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x28], rax
lea rax, [r14 - 3]
mov qword [rsp + 0x68], rax
lea rax, [r14 - 1]
mov r14, r13
mov r13, r15
mov qword [rsp + 0x70], rax
mov r15, qword [rsp + 0x110]
mov qword [rsp + 8], 8
jmp 0x451c09
mov rax, qword [rsp + 0x18]
mov dword [rax], edx
cmp dword [rsp + 0x48], edx
jae 0x452160
lea rax, [rbx + 4]
mov edx, dword [rbx + 4]
mov r14, rcx
mov qword [rsp + 0x18], rax
test r11d, r11d
setne cl
cmp dword [rsp + 0x4c], edx
setbe al
sub r11d, 1
test cl, al
je 0x451f50
mov eax, dword [rsp + 0x3c]
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
mov r9d, edx
and eax, edx
add eax, eax
cmp r14, rdi
cmovbe rcx, r14
lea rbx, [rbx + rax*4]
lea r8, [r13 + rcx]
lea rax, [rcx + r9]
cmp qword [rsp + 0x10], rax
ja 0x451d40
mov rax, qword [rsp + 0x40]
lea r10, [rax + r9]
lea rax, [r10 + rcx]
cmp qword [rsp + 0x28], r8
jbe 0x451ce0
mov r9, qword [rax]
mov rsi, qword [r8]
cmp r9, rsi
je 0x451dc0
xor r9, rsi
xor r12d, r12d
tzcnt r12, r9
sar r12d, 3
movsxd r12, r12d
add rcx, r12
cmp rcx, qword [rsp + 8]
jbe 0x451c9b
mov eax, dword [rsp + 0x90]
mov qword [rsp + 8], rcx
sub eax, edx
cmp rcx, rax
jbe 0x451c9b
lea eax, [rdx + rcx]
mov dword [rsp + 0x90], eax
lea rax, [r13 + rcx]
cmp r15, rax
je 0x451f50
movzx eax, byte [rax]
cmp byte [r10 + rcx], al
jb 0x451bd0
mov rax, qword [rsp + 0x20]
mov dword [rax], edx
cmp dword [rsp + 0x48], edx
jae 0x451f40
mov qword [rsp + 0x20], rbx
mov edx, dword [rbx]
mov rdi, rcx
jmp 0x451bf0
mov r12, r8
cmp r12, qword [rsp + 0x68]
jae 0x451d00
mov esi, dword [r12]
cmp dword [rax], esi
jne 0x451d00
add r12, 4
add rax, 4
nop word [rax + rax]
cmp r12, qword [rsp + 0x70]
jae 0x451d20
movzx esi, word [r12]
cmp word [rax], si
jne 0x451d20
add r12, 2
add rax, 2
nop dword [rax]
cmp r15, r12
jbe 0x451d36
movzx esi, byte [r12]
cmp byte [rax], sil
sete al
movzx eax, al
add r12, rax
sub r12, r8
jmp 0x451c74
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
lea r10, [rax + r9]
lea rbp, [r10 + rcx]
sub rsi, rbp
add rsi, r8
cmp r15, rsi
cmovb rsi, r15
mov rax, rsi
mov qword [rsp + 0x50], rsi
sub rax, 7
cmp rax, r8
jbe 0x451e00
mov r12, qword [rbp]
mov rsi, r12
mov r12, qword [r8]
cmp rsi, r12
je 0x451fb8
xor r12, rsi
tzcnt r12, r12
sar r12d, 3
movsxd r12, r12d
add rbp, r12
cmp qword [rsp + 0x58], rbp
je 0x451e8e
add rcx, r12
lea rax, [r9 + rcx]
add r9, qword [rsp + 0x40]
cmp qword [rsp + 0x10], rax
cmovbe r10, r9
jmp 0x451c77
lea r12, [r8 + 8]
add rax, 8
cmp qword [rsp + 0x28], r12
jbe 0x451ce3
mov r9, qword [rax]
mov rsi, qword [r12]
cmp r9, rsi
je 0x452018
xor r9, rsi
xor eax, eax
tzcnt rax, r9
sar eax, 3
cdqe
add r12, rax
sub r12, r8
jmp 0x451c74
mov qword [rsp + 0x60], rbp
mov r12, r8
mov rax, qword [rsp + 0x50]
sub rax, 3
cmp r12, rax
jae 0x451e30
mov rax, qword [rsp + 0x60]
mov esi, dword [r12]
cmp dword [rax], esi
jne 0x451e30
add qword [rsp + 0x60], 4
add r12, 4
nop dword [rax]
mov rax, qword [rsp + 0x50]
sub rax, 1
cmp r12, rax
jae 0x451e60
mov rax, qword [rsp + 0x60]
movzx esi, word [r12]
cmp word [rax], si
jne 0x451e60
add qword [rsp + 0x60], 2
add r12, 2
nop word [rax + rax]
cmp qword [rsp + 0x50], r12
jbe 0x451e7d
mov rax, qword [rsp + 0x60]
movzx esi, byte [r12]
cmp byte [rax], sil
sete al
movzx eax, al
add r12, rax
sub r12, r8
add rbp, r12
cmp qword [rsp + 0x58], rbp
jne 0x451da4
lea rbp, [r8 + r12]
cmp rbp, qword [rsp + 0x28]
jae 0x452030
mov rax, qword [rsp + 0x80]
mov r8, qword [rbp]
mov rax, qword [rax]
cmp rax, r8
jne 0x452090
mov rsi, qword [rsp + 0x80]
lea rax, [rbp + 8]
add rsi, 8
cmp qword [rsp + 0x28], rax
jbe 0x45203b
mov dword [rsp + 0x60], edx
mov rdx, qword [rax]
mov r8, qword [rsi]
mov qword [rsp + 0x50], rdx
cmp r8, rdx
je 0x452140
xor r8, qword [rsp + 0x50]
mov edx, dword [rsp + 0x60]
tzcnt r8, r8
sar r8d, 3
movsxd r8, r8d
add rax, r8
sub rax, rbp
jmp 0x45206b
cmp r9d, 8
jne 0x4520c0
movabs rdx, 0xcf1bbcdcb7a56463
imul rdx, qword [r15]
mov ecx, 0x40
sub ecx, r10d
shr rdx, cl
jmp 0x451ab4
lea rax, [rsp + 0xac]
mov qword [rsp + 0x20], rax
nop dword [rax]
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 8]
mov dword [rax], 0
mov rax, qword [rsp + 0x18]
mov dword [rax], 0
mov eax, dword [rsp + 0x90]
add eax, dword [rsp + 0x94]
cmp rbx, 0x180
jbe 0x451f9d
mov edx, ebx
mov ecx, 0xc0
sub edx, 0x180
cmp edx, 0xc0
cmova edx, ecx
cmp eax, edx
cmovb eax, edx
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rbp + 8]
lea r12, [r8 + 8]
mov qword [rsp + 0x60], rsi
cmp rax, r12
jbe 0x451e08
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x60]
mov rsi, qword [rax]
mov rax, qword [r12]
mov qword [rsp + 0x88], rax
cmp rsi, rax
je 0x4520a0
mov rax, qword [rsp + 0x88]
xor rax, rsi
tzcnt rax, rax
sar eax, 3
cdqe
add r12, rax
sub r12, r8
jmp 0x451d96
add r12, 8
add rax, 8
cmp qword [rsp + 0x28], r12
ja 0x451dd3
jmp 0x451ce3
mov rsi, qword [rsp + 0x80]
mov rax, rbp
cmp rax, qword [rsp + 0x68]
jae 0x45204e
mov r8d, dword [rax]
cmp dword [rsi], r8d
je 0x45211e
cmp rax, qword [rsp + 0x70]
jae 0x452063
movzx r8d, word [rax]
cmp word [rsi], r8w
je 0x45212b
cmp r15, rax
ja 0x452078
sub rax, rbp
add r12, rax
jmp 0x451da4
movzx r8d, byte [rax]
cmp byte [rsi], r8b
sete r8b
movzx r8d, r8b
add rax, r8
jmp 0x452068
xor rax, r8
tzcnt rax, rax
sar eax, 3
cdqe
jmp 0x45206b
add qword [rsp + 0x60], 8
add r12, 8
cmp qword [rsp + 0x98], r12
ja 0x451fd6
jmp 0x451e08
imul edx, dword [r15], 0x9e3779b1
mov ecx, 0x20
sub ecx, r10d
shr edx, cl
jmp 0x451ab4
movabs rdx, 0xcf1bbcdcbb000000
imul rdx, qword [r15]
mov ecx, 0x40
sub ecx, r10d
shr rdx, cl
jmp 0x451ab4
movabs rdx, 0xcf1bbcdcbfa56300
imul rdx, qword [r15]
mov ecx, 0x40
sub ecx, r10d
shr rdx, cl
jmp 0x451ab4
add rax, 4
add rsi, 4
jmp 0x45204e
add rax, 2
add rsi, 2
jmp 0x452063
add rax, 8
add rsi, 8
cmp qword [rsp + 0x28], rax
ja 0x451ed4
mov edx, dword [rsp + 0x60]
jmp 0x45203b
lea rax, [rsp + 0xac]
mov qword [rsp + 0x18], rax
jmp 0x451f50
mov rax, qword [rsp + 0x18]
mov qword [rax], 0
mov eax, 1
jmp 0x451f9d