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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
movsxd rsi, dword [rdx + 0x3c]
xorps xmm0, xmm0
mov r14, rdx
mov r13, rcx
movups xmmword [rsp + 0x30], xmm0
add rsi, rdx
je 0x14001eb14
cmp dword [rsi], 0x4550
jne 0x14001eb14
mov eax, 0x8664
cmp word [rsi + 4], ax
jne 0x14001eb14
mov r9d, dword [rsi + 0x38]
test r9b, 1
jne 0x14001eb14
movzx eax, word [rsi + 0x14]
xor edx, edx
movzx ecx, word [rsi + 6]
add rax, 0x24
movzx r12d, word [rsi + 0x16]
mov ebx, edx
cmp dx, cx
jae 0x14001e607
add rax, rsi
mov r8d, ecx
mov ecx, dword [rax + 4]
mov edx, dword [rax]
test ecx, ecx
jne 0x14001e5f6
lea ecx, [rdx + r9]
jmp 0x14001e5f8
add ecx, edx
cmp ecx, ebx
cmova ebx, ecx
add rax, 0x28
sub r8, 1
jne 0x14001e5e7
lea rcx, [rsp + 0x40]
call qword [r13 + 0x30]
mov edx, dword [rsp + 0x44]
mov eax, edx
neg eax
lea ebp, [rdx - 1]
add ebp, dword [rsi + 0x50]
lea rcx, [rdx - 1]
and rbp, rax
mov eax, ebx
add rcx, rax
lea rax, [rdx - 1]
not rax
and rcx, rax
cmp rbp, rcx
jne 0x14001eb14
mov rax, qword [r13 + 0x20]
mov r9d, 4
mov rcx, qword [rsi + 0x30]
mov r8d, 0x3000
mov rdx, rbp
call rax
mov rdi, rax
test rax, rax
jne 0x14001e676
mov rax, qword [r13 + 0x20]
lea r9d, [rdi + 4]
mov r8d, 0x3000
mov rdx, rbp
xor ecx, ecx
call rax
mov rdi, rax
movsxd rcx, dword [r14 + 0x3c]
mov dword [rdi + 0x3c], ecx
mov edx, dword [rsi + 0x54]
lea r8, [rcx + r14]
lea rcx, [rcx + rdi]
sub edx, dword [r14 + 0x3c]
je 0x14001e6a2
sub r8, rcx
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14001e691
movsxd r15, dword [rdi + 0x3c]
xor eax, eax
add r15, rdi
mov r10d, eax
movzx r9d, word [r15 + 0x14]
add r9, 0x2c
cmp ax, word [r15 + 6]
jae 0x14001e702
add r9, r15
mov r8d, dword [r9]
mov ecx, dword [r9 - 8]
add r8, r14
mov edx, dword [r9 - 4]
add rcx, rdi
test rdx, rdx
je 0x14001e6f1
sub r8, rcx
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14001e6e0
movzx eax, word [r15 + 6]
inc r10d
add r9, 0x28
cmp r10d, eax
jb 0x14001e6c1
mov r10, rdi
sub r10, qword [r15 + 0x30]
je 0x14001e7ec
cmp dword [r15 + 0xb4], 0
je 0x14001e7ec
mov r8d, dword [r15 + 0xb0]
add r8, rdi
cmp dword [r8], 0
je 0x14001e7ec
mov eax, dword [r8 + 4]
lea r9, [r8 + 8]
add rax, r8
cmp r9, rax
je 0x14001e7df
nop word [rax + rax]
movzx edx, word [r9]
movzx ecx, dx
movzx eax, dx
shr cx, 0xc
cmp cx, 0xa
jne 0x14001e777
mov ecx, dword [r8]
and edx, 0xfff
lea rax, [rdi + rdx]
add qword [rcx + rax], r10
jmp 0x14001e7cb
cmp cx, 3
jne 0x14001e790
mov edx, dword [r8]
and eax, 0xfff
add rax, rdi
add rdx, rax
mov eax, r10d
jmp 0x14001e7c8
cmp cx, 1
jne 0x14001e7b0
mov edx, dword [r8]
and eax, 0xfff
add rax, rdi
add rdx, rax
mov rax, r10
shr rax, 0x10
movzx eax, ax
jmp 0x14001e7c8
cmp cx, 2
jne 0x14001e7cb
mov edx, dword [r8]
and eax, 0xfff
add rax, rdi
add rdx, rax
movzx eax, r10w
add qword [rdx], rax
mov eax, dword [r8 + 4]
add r9, 2
add rax, r8
cmp r9, rax
jne 0x14001e750
cmp dword [r9], 0
mov r8, r9
jne 0x14001e731
cmp dword [r15 + 0x94], 0
je 0x14001e89d
mov r14d, dword [r15 + 0x90]
add r14, rdi
cmp dword [r14 + 0xc], 0
je 0x14001e89d
nop
mov ecx, dword [r14 + 0xc]
mov rax, qword [r13 + 0x18]
add rcx, rdi
call rax
mov esi, dword [r14]
mov rbp, rax
mov ebx, dword [r14 + 0x10]
add rsi, rdi
add rbx, rdi
mov rdx, qword [rsi]
test rdx, rdx
je 0x14001e88e
jns 0x14001e83f
movzx r8d, dx
xor edx, edx
jmp 0x14001e873
lea r8, [rdi + 2]
xor ecx, ecx
add r8, rdx
cmp byte [r8], cl
je 0x14001e85c
mov rax, r8
inc rcx
lea rax, [rax + 1]
cmp byte [rax], 0
jne 0x14001e850
mov qword [rsp + 0x38], r8
lea rdx, [rsp + 0x30]
xor r8d, r8d
mov word [rsp + 0x30], cx
mov word [rsp + 0x32], cx
mov r9, rbx
mov rcx, rbp
call qword [r13 + 0x10]
mov rdx, qword [rsi + 8]
add rsi, 8
add rbx, 8
test rdx, rdx
jne 0x14001e835
add r14, 0x14
cmp dword [r14 + 0xc], 0
jne 0x14001e810
movzx ebx, word [r15 + 0x14]
xor r14d, r14d
add rbx, 0x28
mov esi, r14d
lea ebp, [r14 + 1]
cmp r14w, word [r15 + 6]
jae 0x14001e978
add rbx, r15
lea edx, [rbp + 0xf]
lea r14d, [rbp + 1]
lea r9d, [rbp + 0x1f]
nop dword [rax]
cmp dword [rbx], 0
je 0x14001e962
mov ecx, dword [rbx + 0x14]
mov eax, ecx
and eax, 0x40000000
bt ecx, 0x1d
jb 0x14001e909
test eax, eax
jne 0x14001e8fb
test ecx, ecx
mov r8d, 8
cmovns r8d, ebp
jmp 0x14001e927
test ecx, ecx
mov r8d, 4
cmovns r8d, r14d
jmp 0x14001e927
test eax, eax
jne 0x14001e91b
test ecx, ecx
mov r8d, pe_nt_image_headers64
cmovns r8d, edx
jmp 0x14001e927
test ecx, ecx
mov r8d, 0x40
cmovns r8d, r9d
mov dword [rsp + 0xc8], r8d
test dword [rbx + 0x14], 0x4000000
je 0x14001e945
bts r8d, 9
mov dword [rsp + 0xc8], r8d
mov ecx, dword [rbx - 4]
lea r9, [rsp + 0xc8]
mov edx, dword [rbx]
add rcx, rdi
call qword [r13 + 0x38]
mov edx, 0x10
lea r9d, [rdx + 0x10]
movzx eax, word [r15 + 6]
inc esi
add rbx, 0x28
cmp esi, eax
jb 0x14001e8d0
xor r14d, r14d
xor edx, edx
xor r8d, r8d
lea rcx, [rdx - 1]
call qword [r13 + 0x28]
mov r10d, dword [r15 + 0x28]
add r10, rdi
bt r12d, 0xd
jb 0x14001e9a5
mov qword [rsp + 0x28], r14
mov r8, r10
mov dword [rsp + 0x20], r14d
jmp 0x14001eab4
xor r8d, r8d
mov edx, ebp
mov rcx, rdi
call r10
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x14001eadf
cmp dword [r15 + 0x8c], 0
je 0x14001eadf
mov r14d, dword [r15 + 0x88]
add r14, rdi
mov r15d, dword [r14 + 0x18]
test r15d, r15d
je 0x14001eadf
cmp dword [r14 + 0x14], 0
je 0x14001eadf
mov esi, dword [r14 + 0x20]
xor r12d, r12d
mov ebx, dword [r14 + 0x24]
add rsi, rdi
add rbx, rdi
mov ebp, r12d
test r15d, r15d
je 0x14001eadf
nop
mov r10d, dword [rsi]
add r10, rdi
je 0x14001eadf
movzx r8d, byte [rax]
mov r9, rax
test r8b, r8b
je 0x14001ea73
nop dword [rax + rax]
movzx edx, byte [r10]
movzx r8d, byte [r9]
test dl, dl
je 0x14001ea6e
mov ecx, r8d
sub r8b, 0x41
cmp r8b, 0x19
lea eax, [rcx + 0x20]
movzx r11d, al
lea eax, [rdx - 0x41]
cmova r11d, ecx
cmp al, 0x19
ja 0x14001ea5c
add dl, 0x20
cmp r11b, dl
jne 0x14001ea7d
inc r9
inc r10
cmp byte [r9], r12b
jne 0x14001ea30
jmp 0x14001ea73
test r8b, r8b
jne 0x14001ea7d
cmp byte [r10], r12b
jne 0x14001ea7d
test rbx, rbx
jne 0x14001ea99
inc ebp
add rsi, 4
add rbx, 2
cmp ebp, r15d
jae 0x14001eadf
mov rax, qword [rsp + 0xc0]
jmp 0x14001ea10
mov ecx, dword [r14 + 0x1c]
movzx edx, word [rbx]
add rcx, rdi
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
mov r8d, dword [rcx + rdx*4]
add r8, rdi
mov rax, qword [r13 + 0x60]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call rax
mov rbx, rax
test rax, rax
je 0x14001eb14
mov edx, 0xffffffff
mov rcx, rax
call qword [r13 + 0x68]
mov rcx, rbx
call qword [r13 + 0x88]
mov rax, qword [r13 + 0x48]
test rax, rax
je 0x14001eb0f
cmp qword [r13 + 0x50], 0
je 0x14001eb0f
mov rbx, qword [rsp + 0xb8]
xor edx, edx
mov rcx, rbx
mov r8d, 0x8000
call rax
test eax, eax
jne 0x14001eb0f
mov rcx, rbx
call qword [r13 + 0x50]
mov rax, rdi
jmp 0x14001eb16
xor eax, eax
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret