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

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
push rbp
push r14
sub rsp, 0x68
mov r10d, r8d
mov r14, rdx
mov rbp, rcx
test rdx, rdx
je 0x1400e401d
cmp r8d, 0x400
jb 0x1400e401d
cmp dword [rdx], 0x46464952
jne 0x1400e401d
mov ecx, dword [rdx + 4]
lea eax, [rcx + 8]
cmp eax, r8d
ja 0x1400e401d
cmp ecx, 0x400
jb 0x1400e401d
cmp dword [rdx + 8], 0x464d5344
jne 0x1400e401d
cmp dword [rdx + 0xc], 0x474e4f53
jne 0x1400e401d
mov eax, dword [rdx + 0x10]
cmp eax, r8d
ja 0x1400e401d
mov qword [r11 + 8], rbx
mov dword [rbp + 0x104a0], 0x2000
movzx ecx, word [rdx + 0x3e]
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
lea r13d, [rax + 0x14]
mov dword [rbp + 0x10490], ecx
cmp ecx, 4
jae 0x1400e39cf
mov dword [rbp + 0x10490], 4
jmp 0x1400e39e4
mov r8d, SafeArrayGetLBound
mov eax, ecx
cmp ecx, r8d
cmova eax, r8d
mov dword [rbp + 0x10490], eax
movzx ecx, word [rdx + 0x3a]
lea r9, [rdx + 0x14]
cmp ecx, 0xf0
mov eax, ecx
mov r8d, 0xef
mov r11d, 0x100
cmovae eax, r8d
lea r8, [rbp + 0xeb60]
mov dword [rbp + 0x104a4], eax
movzx eax, byte [rdx + 0x42]
mov dword [rbp + 0x10480], eax
movzx eax, byte [rdx + 0x43]
mov dword [rbp + 0x10484], eax
movzx eax, byte [rdx + 0x40]
lea eax, [rax*4]
mov dword [rbp + 0x10488], eax
dec eax
mov ecx, dword [rbp + 0x10488]
cmp eax, 0xff
cmova ecx, r11d
mov dword [rbp + 0x10488], ecx
xor ecx, ecx
movzx eax, byte [rdx + 0x41]
and eax, 0x7f
mov dword [rbp + 0x104e4], eax
sub r9, rbp
nop
movzx eax, word [rdx + 0x38]
cmp ecx, eax
jae 0x1400e3a73
movzx eax, byte [r9 + r8 - 0xeb20]
jmp 0x1400e3a75
mov al, 0xff
mov byte [r8], al
inc ecx
inc r8
cmp ecx, r11d
jb 0x1400e3a60
mov dword [rbp + 0xd900], pe_nt_image_headers64
movzx eax, byte [rdx + 0x44]
cmp al, 0x80
ja 0x1400e3a9c
add eax, eax
mov dword [rbp + 0xd900], eax
mov dword [rbp + 0xd924], pe_nt_image_headers64
movzx eax, byte [rdx + 0x45]
cmp al, 0x80
ja 0x1400e3ab6
add eax, eax
mov dword [rbp + 0xd924], eax
mov dword [rbp + 0xd948], pe_nt_image_headers64
movzx eax, byte [rdx + 0x46]
cmp al, 0x80
ja 0x1400e3ad0
add eax, eax
mov dword [rbp + 0xd948], eax
mov dword [rbp + 0xd96c], pe_nt_image_headers64
movzx eax, byte [rdx + 0x47]
cmp al, 0x80
ja 0x1400e3aea
add eax, eax
mov dword [rbp + 0xd96c], eax
mov dword [rbp + 0xd990], pe_nt_image_headers64
movzx eax, byte [rdx + 0x48]
cmp al, 0x80
ja 0x1400e3b04
add eax, eax
mov dword [rbp + 0xd990], eax
mov dword [rbp + 0xd9b4], pe_nt_image_headers64
movzx eax, byte [rdx + 0x49]
cmp al, 0x80
ja 0x1400e3b1e
add eax, eax
mov dword [rbp + 0xd9b4], eax
mov dword [rbp + 0xd9d8], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4a]
cmp al, 0x80
ja 0x1400e3b38
add eax, eax
mov dword [rbp + 0xd9d8], eax
mov dword [rbp + 0xd9fc], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4b]
cmp al, 0x80
ja 0x1400e3b52
add eax, eax
mov dword [rbp + 0xd9fc], eax
mov dword [rbp + 0xda20], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4c]
cmp al, 0x80
ja 0x1400e3b6c
add eax, eax
mov dword [rbp + 0xda20], eax
mov dword [rbp + 0xda44], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4d]
cmp al, 0x80
ja 0x1400e3b86
add eax, eax
mov dword [rbp + 0xda44], eax
mov dword [rbp + 0xda68], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4e]
cmp al, 0x80
ja 0x1400e3ba0
add eax, eax
mov dword [rbp + 0xda68], eax
mov dword [rbp + 0xda8c], pe_nt_image_headers64
movzx eax, byte [rdx + 0x4f]
cmp al, 0x80
ja 0x1400e3bba
add eax, eax
mov dword [rbp + 0xda8c], eax
mov dword [rbp + 0xdab0], pe_nt_image_headers64
movzx eax, byte [rdx + 0x50]
cmp al, 0x80
ja 0x1400e3bd4
add eax, eax
mov dword [rbp + 0xdab0], eax
mov dword [rbp + 0xdad4], pe_nt_image_headers64
movzx eax, byte [rdx + 0x51]
cmp al, 0x80
ja 0x1400e3bee
add eax, eax
mov dword [rbp + 0xdad4], eax
mov dword [rbp + 0xdaf8], pe_nt_image_headers64
movzx eax, byte [rdx + 0x52]
cmp al, 0x80
ja 0x1400e3c08
add eax, eax
mov dword [rbp + 0xdaf8], eax
mov dword [rbp + 0xdb1c], pe_nt_image_headers64
movzx eax, byte [rdx + 0x53]
cmp al, 0x80
ja 0x1400e3c22
add eax, eax
mov dword [rbp + 0xdb1c], eax
movups xmm0, xmmword [rdx + 0x14]
xor r12d, r12d
mov ebx, 1
mov dword [rsp + 0x88], r12d
movups xmmword [rbp + 0x10528], xmm0
mov dword [rsp + 0x98], ebx
movsd xmm1, qword [rdx + 0x24]
movsd qword [rbp + 0x10538], xmm1
mov eax, dword [rdx + 0x2c]
lea edx, [r10 - 8]
mov dword [rbp + 0x10540], eax
mov dword [rsp + 0x30], edx
cmp r13d, edx
jae 0x1400e3ffe
mov qword [rsp + 0x60], rsi
lea esi, [rbx + 0x3f]
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x40], r15
nop dword [rax]
mov r8d, r13d
add r8, r14
mov eax, dword [r8]
cmp eax, 0x54544150
jne 0x1400e3ed8
mov ecx, dword [r8 + 4]
add r13d, 8
add ecx, r13d
cmp ecx, r10d
jae 0x1400e3fef
mov edx, dword [rbp + 0x10490]
mov ebx, r13d
mov r13d, ecx
mov ecx, esi
call fcn.1400c7e90
mov rdi, rax
test rax, rax
je 0x1400e3fef
mov word [rbp + r12*2 + 0xe980], si
xor r15d, r15d
mov qword [rbp + r12*8 + 0xe200], rax
lea esi, [rbx + 2]
lea r12d, [r15 + 9]
cmp esi, r13d
ja 0x1400e3eb4
mov ecx, dword [rbp + 0x10490]
inc esi
mov eax, ebx
inc ebx
movzx r8d, byte [rax + r14]
test r8d, r8d
je 0x1400e3e9f
xor edx, edx
mov eax, r8d
and eax, 0xf
div ecx
test r8b, r8b
jns 0x1400e3d38
movzx r9d, byte [rbx + r14]
inc esi
inc ebx
test r9b, r9b
je 0x1400e3d38
lea eax, [r9 + 0xc]
cmp r9b, 0x6c
movzx ecx, al
lea rax, [rdx + rdx*2]
cmova ecx, r9d
mov byte [rdi + rax*2], cl
test r8b, 0x40
je 0x1400e3d4f
movzx eax, byte [rbx + r14]
lea rcx, [rdx + rdx*2]
inc ebx
mov byte [rdi + rcx*2 + 1], al
inc esi
lea rdx, [rdx + rdx*2]
add rdx, rdx
test r8b, 0x20
je 0x1400e3d6e
mov byte [rdx + rdi + 2], 1
movzx ecx, byte [rbx + r14]
inc ebx
inc esi
mov byte [rdx + rdi + 4], cl
test r8b, 0x10
je 0x1400e3eaa
movzx r8d, byte [rbx + r14]
add esi, 2
inc ebx
mov ecx, r8d
movzx eax, byte [rbx + r14]
inc ebx
sub ecx, 8
je 0x1400e3dee
sub ecx, r12d
je 0x1400e3dca
sub ecx, 1
je 0x1400e3dca
cmp ecx, 1
je 0x1400e3db2
mov ecx, r8d
xor r8d, r8d
and cl, 0xf0
cmp cl, 0x20
cmove r8d, r12d
jmp 0x1400e3dce
add rdx, rdi
mov rcx, rbp
mov byte [rdx + 3], 0x21
mov byte [rdx + 5], 0x91
call fcn.1400e6d00
jmp 0x1400e3eaa
and r8d, 0xf
add rdx, rdi
mov byte [rdx + 3], r8b
mov byte [rdx + 5], al
test r8d, r8d
je 0x1400e3eaa
mov rcx, rbp
call fcn.1400e6d00
jmp 0x1400e3eaa
mov ecx, eax
and ecx, 0xf0
je 0x1400e3e88
cmp ecx, 0x10
je 0x1400e3e6e
cmp ecx, 0x20
je 0x1400e3e52
cmp ecx, 0x30
je 0x1400e3e38
cmp ecx, 0x40
je 0x1400e3e1e
mov byte [rdx + rdi + 3], 0
mov byte [rdx + rdi + 5], al
jmp 0x1400e3eaa
add rdx, rdi
and eax, 0xf
or eax, 0x20
mov rcx, rbp
mov byte [rdx + 3], SafeArrayGetElemsize
mov byte [rdx + 5], al
call fcn.1400e6d00
jmp 0x1400e3eaa
add rdx, rdi
and eax, 0xf
or eax, 0x10
mov rcx, rbp
mov byte [rdx + 3], SafeArrayGetElemsize
mov byte [rdx + 5], al
call fcn.1400e6d00
jmp 0x1400e3eaa
add rdx, rdi
and eax, 0xf
or eax, 0xa0
mov rcx, rbp
mov byte [rdx + 3], SafeArrayGetElemsize
mov byte [rdx + 5], al
call fcn.1400e6d00
jmp 0x1400e3eaa
add rdx, rdi
and eax, 0xf
shl eax, 4
mov rcx, rbp
mov byte [rdx + 3], 0xa
mov byte [rdx + 5], al
call fcn.1400e6d00
jmp 0x1400e3eaa
add rdx, rdi
shl eax, 4
mov rcx, rbp
mov byte [rdx + 3], r8b
mov byte [rdx + 5], al
call fcn.1400e6d00
jmp 0x1400e3eaa
lea rcx, [rcx + rcx*2]
inc r15d
lea rdi, [rdi + rcx*2]
cmp r15d, 0x40
jb 0x1400e3ce2
mov r12d, dword [rsp + 0x88]
mov esi, 0x40
mov ebx, dword [rsp + 0x98]
inc r12d
mov dword [rsp + 0x88], r12d
jmp 0x1400e3fd4
cmp ebx, dword [rbp + 0x104a4]
ja 0x1400e3fef
cmp eax, 0x54534e49
jne 0x1400e3fef
mov ecx, dword [r8 + 4]
add ecx, r13d
cmp ecx, edx
jae 0x1400e3fef
movups xmm0, xmmword [r8 + 0x2c]
mov edx, ebx
lea r9d, [r13 + 0x48]
lea r13d, [rcx + 8]
mov ecx, ebx
shl rcx, 5
movups xmmword [rcx + rbp + 0x10528], xmm0
movsd xmm1, qword [r8 + 0x3c]
movsd qword [rcx + rbp + 0x10538], xmm1
mov eax, dword [r8 + 0x44]
mov dword [rcx + rbp + 0x10540], eax
lea rax, [rdx + rdx*8]
movsd xmm0, qword [r8 + 8]
lea rdx, [rbp + 0x8e00]
lea rdx, [rdx + rax*8]
movsd qword [rdx + 0x32], xmm0
mov eax, dword [r8 + 0x10]
mov dword [rdx + 0x3a], eax
movzx eax, byte [r8 + 0x14]
mov byte [rdx + 0x3e], al
mov word [rdx + 0x28], si
movzx eax, word [r8 + 0x28]
mov dword [rdx + 0x20], eax
movzx eax, byte [r8 + 0x15]
and al, 1
movzx ecx, al
add cx, cx
mov word [rdx + 0x2a], cx
mov eax, dword [r8 + 0x18]
mov dword [rdx], eax
mov eax, dword [r8 + 0x1c]
mov dword [rdx + 4], eax
mov eax, dword [r8 + 0x20]
mov dword [rdx + 8], eax
movzx eax, byte [r8 + 0x17]
shl ax, 2
mov word [rdx + 0x26], ax
cmp ax, r11w
jbe 0x1400e3fa7
mov word [rdx + 0x26], r11w
movzx r8d, byte [r8 + 0x15]
mov eax, r10d
shr r8d, 1
sub eax, r9d
not r8d
mov dword [rsp + 0x20], eax
and r8d, 1
add r9, r14
mov rcx, rbp
call fcn.1400c9d90
inc ebx
mov dword [rsp + 0x98], ebx
mov edx, dword [rsp + 0x30]
mov r11d, 0x100
mov r10d, dword [rsp + 0x90]
cmp r13d, edx
jb 0x1400e3c80
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov eax, 1
mov r12, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
add rsp, 0x68
pop r14
pop rbp
ret
xor eax, eax
add rsp, 0x68
pop r14
pop rbp
ret