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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push r13
push r15
sub rsp, 0x98
mov r15d, r8d
mov r11, rdx
mov r13, rcx
test rdx, rdx
je 0x14015f194
cmp r8d, 0x84
jbe 0x14015f194
cmp word [rdx + 0x4c], 0
je 0x14015f194
cmp dword [rdx], 0x304d4244
jne 0x14015f194
cmp word [rdx + 0x48], 0
je 0x14015f194
cmp dword [rdx + 0x4e], 0x474e4f53
jne 0x14015f194
cmp dword [rdx + 8], 0x454d414e
jne 0x14015f194
cmp dword [rdx + 0xc], 0x2c000000
jne 0x14015f194
cmp dword [rdx + 0x3c], 0x4f464e49
jne 0x14015f194
cmp dword [rdx + 0x40], 0xa000000
jne 0x14015f194
movzx eax, word [rdx + 0x82]
rol ax, 8
movzx r9d, ax
lea r10d, [r9 + r9]
lea eax, [r10 + 0x9c]
cmp eax, r8d
jae 0x14015f194
movzx eax, word [rdx + 0x44]
rol ax, 8
mov qword [rsp + 0x90], rbx
movzx ebx, ax
movzx eax, word [rdx + 0x46]
rol ax, 8
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x68], r14
movzx r14d, ax
movzx eax, word [rdx + 0x4a]
rol ax, 8
movzx edi, ax
mov dword [rcx + 0x104a0], 0x80000
movzx eax, word [rdx + 0x4c]
mov edx, 0x40
rol ax, 8
movzx ecx, ax
mov dword [rsp + 0xc8], ebx
mov dword [rsp + 0x34], r14d
mov dword [rsp + 0x30], edi
mov dword [r13 + 0x10490], ecx
cmp ecx, 4
jae 0x14015e88e
mov dword [r13 + 0x10490], 4
jmp 0x14015e89c
cmp ecx, edx
mov eax, ecx
cmova eax, edx
mov dword [r13 + 0x10490], eax
cmp byte [r11 + 0x10], 0
mov eax, SafeArrayGetElemsize
mov ecx, 0x56
mov esi, 0xfe
cmove eax, ecx
xor edx, edx
movups xmm0, xmmword [rax + r11]
movups xmmword [r13 + 0x10528], xmm0
movups xmm1, xmmword [rax + r11 + 0x10]
movups xmmword [r13 + 0x10538], xmm1
mov byte [r13 + 0x10547], 0
test r9d, r9d
je 0x14015e90d
lea r8, [r13 + 0xeb60]
nop dword [rax]
nop dword [rax + rax]
lea eax, [rdx*2 + 0x85]
movzx eax, byte [rax + r11]
mov byte [r8], al
cmp edx, esi
jae 0x14015e90d
inc edx
inc r8
cmp edx, r9d
jb 0x14015e8f0
lea esi, [r10 + 0x84]
lea eax, [rsi + 0xa]
cmp eax, r15d
jae 0x14015ec41
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x70], r12
mov r12d, 0xee
nop dword [rax]
nop word [rax + rax]
mov eax, esi
add esi, 8
mov ebp, esi
mov dword [rsp + 0x3c], ebp
mov edx, dword [rax + r11 + 4]
mov ecx, dword [rax + r11]
bswap edx
add esi, edx
mov dword [rsp + 0x38], esi
cmp esi, r15d
ja 0x14015ec34
cmp edx, r15d
ja 0x14015ec34
cmp ecx, 0x54534e49
jne 0x14015ec6c
cmp ebx, 0xf0
jb 0x14015e990
mov ebx, 0xef
mov dword [rsp + 0xc8], ebx
jmp 0x14015e99f
mov dword [rsp + 0xc8], ebx
test ebx, ebx
je 0x14015ec20
mov rdi, qword [rsp + 0xb0]
mov r15d, 1
mov r13d, esi
lea rax, [rbp + 0x32]
mov r12d, r15d
cmp rax, r13
ja 0x14015ebfd
mov ecx, 0x278
call fcn.140127eb0
mov rbx, rax
test rax, rax
je 0x14015f170
mov rax, qword [rsp + 0xb8]
mov ecx, 0xee
movzx esi, word [rax + rbp + 0x1e]
rol si, 8
movzx r14d, si
lea eax, [rsi - 1]
cmp ax, cx
ja 0x14015ea09
lea rax, [r14 + r14*8]
lea rdi, [rdi + rax*8]
add rdi, 0x8e00
jmp 0x14015ea0b
xor edi, edi
xor edx, edx
mov r8d, 0x278
mov rcx, rbx
call fcn.140078640
mov r11, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
movups xmm0, xmmword [r11 + rbp]
movups xmmword [rbx + 0x249], xmm0
movsd xmm1, qword [r11 + rbp + 0x10]
movsd qword [rbx + 0x259], xmm1
mov eax, dword [r11 + rbp + 0x18]
mov dword [rbx + 0x261], eax
movzx eax, word [r11 + rbp + 0x1c]
mov word [rbx + 0x265], ax
test rdi, rdi
je 0x14015eaab
movups xmm0, xmmword [r11 + rbp]
shl r14, 5
movups xmmword [r14 + rcx + 0x10528], xmm0
movsd xmm1, qword [r11 + rbp + 0x10]
movsd qword [r14 + rcx + 0x10538], xmm1
mov eax, dword [r11 + rbp + 0x18]
mov dword [r14 + rcx + 0x10540], eax
movzx eax, word [r11 + rbp + 0x1c]
mov word [r14 + rcx + 0x10544], ax
mov byte [r14 + rcx + 0x10546], 0
mov eax, r15d
mov r8d, 0x40
mov qword [rcx + rax*8 + 0xd180], rbx
mov ecx, 0xfe
mov dword [rbx], 0x400
mov word [rbx + 8], r8w
movzx eax, word [r11 + rbp + 0x2e]
rol ax, 8
mov word [rbx + 0xa], ax
dec ax
cmp ax, cx
ja 0x14015eaeb
mov dword [rbx + 4], 0x200
jmp 0x14015eaf4
mov eax, 0x80
mov word [rbx + 0xa], ax
mov byte [rbx + 0x248], 0x3c
lea rdx, [rbx + 0x1ac]
xor ecx, ecx
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 1]
mov byte [rdx - 0x80], sil
inc ecx
mov byte [rdx], al
lea rdx, [rdx + 1]
cmp ecx, 0x78
jb 0x14015eb10
test rdi, rdi
je 0x14015ebd0
movzx eax, word [r11 + rbp + 0x30]
mov ecx, 0xff
rol ax, 8
movzx ebx, ax
movzx eax, word [r11 + rbp + 0x20]
rol ax, 8
shl ax, 2
mov word [rdi + 0x26], ax
dec ax
cmp ax, cx
jbe 0x14015eb62
mov eax, 0x100
mov word [rdi + 0x26], ax
mov word [rdi + 0x28], r8w
mov ecx, dword [r11 + rbp + 0x22]
bswap ecx
mov dword [rdi + 0x20], ecx
call fcn.14012a660
mov r11, qword [rsp + 0xb8]
mov ecx, eax
and cl, 0x7f
sar eax, 7
mov byte [rdi + 0x2d], cl
mov byte [rdi + 0x2c], al
cmp dword [r11 + rbp + 0x2a], 0
je 0x14015ebd0
test bl, 3
je 0x14015ebd0
mov ecx, dword [r11 + rbp + 0x26]
bswap ecx
mov dword [rdi + 4], ecx
mov eax, dword [r11 + rbp + 0x2a]
bswap eax
add eax, ecx
mov ecx, 0xfffb
mov dword [rdi + 8], eax
movzx eax, word [rdi + 0x2a]
and ax, cx
or ax, 2
mov word [rdi + 0x2a], ax
test bl, 2
je 0x14015ebd0
or ax, 4
mov word [rdi + 0x2a], ax
mov ebp, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0xb0]
add ebp, 0x32
mov ebx, dword [rsp + 0xc8]
mov dword [rsp + 0x3c], ebp
mov dword [rdi + 0x104a8], r15d
inc r15d
cmp r12d, ebx
jb 0x14015e9b0
mov r13, qword [rsp + 0xb0]
mov esi, dword [rsp + 0x38]
mov edi, dword [rsp + 0x30]
mov r14d, dword [rsp + 0x34]
mov r15d, dword [rsp + 0xc0]
mov r12d, 0xee
mov r11, qword [rsp + 0xb8]
lea ecx, [rsi + 0xa]
cmp ecx, r15d
jb 0x14015e940
mov rbp, qword [rsp + 0x88]
mov r12, qword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
mov eax, 1
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
add rsp, 0x98
pop r15
pop r13
ret
cmp ecx, 0x564e4556
jne 0x14015edad
lea eax, [rbp + 1]
xor ebx, ebx
movzx edi, byte [rax + r11]
add ebp, 2
test edi, edi
je 0x14015ed9d
nop dword [rax]
lea rax, [rbp + 0x88]
mov ecx, ebp
cmp rax, rsi
ja 0x14015ed9d
add r11, rcx
movzx ecx, word [r11]
rol cx, 8
lea eax, [rcx - 1]
cmp ax, r12w
ja 0x14015ed85
movzx eax, cx
mov r9, qword [r13 + rax*8 + 0xd180]
test r9, r9
je 0x14015ed85
cmp byte [r11 + 3], 0
je 0x14015ed85
test byte [r11 + 2], 1
je 0x14015ece5
or dword [r9 + 4], 1
test byte [r11 + 2], 2
je 0x14015ecf1
or dword [r9 + 4], 2
test byte [r11 + 2], 4
je 0x14015ecfd
or dword [r9 + 4], 4
movzx ecx, byte [r11 + 3]
inc cl
mov byte [r9 + 0x22c], cl
cmp cl, 0x20
jbe 0x14015ed1a
mov byte [r9 + 0x22c], 0x20
mov cl, 0x20
movzx eax, byte [r11 + 5]
xor r10d, r10d
mov byte [r9 + 0x22f], al
movzx eax, byte [r11 + 6]
mov byte [r9 + 0x230], al
movzx eax, byte [r11 + 4]
mov byte [r9 + 0x232], al
mov byte [r9 + 0x231], al
test cl, cl
je 0x14015ed85
nop dword [rax]
lea edx, [r10 + r10]
movzx ecx, word [r11 + rdx*2 + 8]
lea eax, [rdx + 1]
rol cx, 8
mov word [r9 + r10*2 + 0xc], cx
movzx eax, byte [r11 + rax*2 + 9]
mov byte [r10 + r9 + 0xcc], al
inc r10d
movzx eax, byte [r9 + 0x22c]
cmp r10d, eax
jb 0x14015ed50
mov r11, qword [rsp + 0xb8]
add ebp, 0x88
inc ebx
cmp ebx, edi
jb 0x14015ec90
mov ebx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x30]
jmp 0x14015ec20
cmp ecx, 0x54544150
jne 0x14015f073
xor r12d, r12d
mov dword [rsp + 0x40], r12d
cmp edi, 0xf0
jbe 0x14015edd4
mov edi, 0xf0
mov dword [rsp + 0x30], edi
jmp 0x14015ede0
mov dword [rsp + 0x30], edi
test edi, edi
je 0x14015ec1a
lea rax, [r13 + 0xe200]
mov ecx, esi
mov qword [rsp + 0x58], rax
lea rax, [r13 + 0xe980]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rcx
nop
mov ebx, ebp
lea rax, [rbx + 8]
cmp rax, rcx
ja 0x14015f067
mov r14d, dword [rbx + r11 + 2]
add ebp, 6
bswap r14d
add ebp, r14d
mov dword [rsp + 0x3c], ebp
cmp ebp, esi
ja 0x14015f067
cmp r14d, esi
ja 0x14015f067
movzx eax, word [rbx + r11]
rol ax, 8
movzx r15d, ax
lea eax, [r15 - 4]
cmp eax, 0xfc
ja 0x14015f04a
mov edx, dword [r13 + 0x10490]
mov ecx, r15d
call fcn.14012a740
mov r11, qword [rsp + 0xb8]
mov rsi, rax
test rax, rax
je 0x14015f041
mov rax, qword [rsp + 0x50]
lea rdi, [rbx + r11]
xor ebp, ebp
xor ebx, ebx
mov word [rax], r15w
mov rax, qword [rsp + 0x58]
mov qword [rax], rsi
cmp r14d, 3
jbe 0x14015f039
mov edx, dword [r13 + 0x10490]
mov r12d, 0xff
cmp ebp, r15d
jae 0x14015f02c
movzx r8d, byte [rbx + rdi + 6]
inc ebx
mov ecx, ebx
test r8d, r8d
je 0x14015f014
movzx r9d, byte [rbx + rdi + 6]
dec r8d
movzx eax, r9b
inc ebx
and al, 1
cmp r8d, edx
jae 0x14015efd4
test al, al
je 0x14015ef0f
movzx edx, byte [rbx + rdi + 6]
lea ebx, [rcx + 2]
cmp edx, 0x1f
jne 0x14015eeed
mov edx, r12d
jmp 0x14015ef08
lea eax, [rdx - 1]
cmp eax, 0xfc
ja 0x14015ef08
mov eax, edx
and edx, 0xf
shr eax, 4
lea ecx, [rax + rax*2]
lea edx, [rdx + rcx*4]
add edx, 0xd
lea rax, [r8 + r8*2]
mov byte [rsi + rax*2], dl
test r9b, 2
je 0x14015ef24
movzx eax, byte [rbx + rdi + 6]
lea rcx, [r8 + r8*2]
mov byte [rsi + rcx*2 + 1], al
inc ebx
test r9b, 0x3c
je 0x14015f00b
xor r10d, r10d
xor r11d, r11d
mov ecx, r12d
mov edx, r12d
test r9b, 4
je 0x14015ef47
movzx ecx, byte [rbx + rdi + 6]
inc ebx
test r9b, 8
je 0x14015ef55
movzx r10d, byte [rbx + rdi + 6]
inc ebx
test r9b, 0x10
je 0x14015ef62
movzx edx, byte [rbx + rdi + 6]
inc ebx
test r9b, 0x20
je 0x14015ef70
movzx r11d, byte [rbx + rdi + 6]
inc ebx
cmp ecx, 0xc
jne 0x14015ef85
lea rax, [r8 + r8*2]
mov byte [rsi + rax*2 + 2], 1
mov byte [rsi + rax*2 + 4], r10b
jmp 0x14015efaa
cmp edx, 0xc
jne 0x14015ef9b
lea rax, [r8 + r8*2]
mov edx, r12d
mov byte [rsi + rax*2 + 2], 1
mov byte [rsi + rax*2 + 4], r11b
cmp ecx, 0x13
ja 0x14015efaa
cmp ecx, 0x10
jb 0x14015efb4
cmp edx, 0x10
jae 0x14015efb4
mov ecx, edx
mov r10d, r11d
cmp edx, 0x13
ja 0x14015f00b
lea rax, [r8 + r8*2]
lea rdx, [rsi + rax*2]
mov byte [rdx + 3], cl
mov rcx, r13
mov byte [rdx + 5], r10b
call fcn.1401526f0
mov edx, dword [r13 + 0x10490]
jmp 0x14015f020
test al, al
je 0x14015efdb
lea ebx, [rcx + 2]
test r9b, 2
lea eax, [rbx + 1]
cmove eax, ebx
test r9b, 4
lea ecx, [rax + 1]
cmove ecx, eax
test r9b, 8
lea eax, [rcx + 1]
cmove eax, ecx
test r9b, 0x10
lea ebx, [rax + 1]
cmove ebx, eax
test r9b, 0x20
je 0x14015f00b
inc ebx
mov edx, dword [r13 + 0x10490]
jmp 0x14015f020
mov eax, edx
inc ebp
lea rcx, [rax + rax*2]
lea rsi, [rsi + rcx*2]
lea eax, [rbx + 3]
cmp eax, r14d
jb 0x14015eea1
mov r12d, dword [rsp + 0x40]
mov r11, qword [rsp + 0xb8]
mov edi, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x48]
mov esi, dword [rsp + 0x38]
add qword [rsp + 0x50], 2
inc r12d
add qword [rsp + 0x58], 8
mov dword [rsp + 0x40], r12d
cmp r12d, edi
jb 0x14015ee00
mov ebx, dword [rsp + 0xc8]
jmp 0x14015ec0d
cmp ecx, 0x4c504d53
jne 0x14015ec20
mov ebx, 1
cmp r14d, 0xf0
jb 0x14015f0a1
mov r14d, 0xef
mov dword [rsp + 0x34], r14d
mov dword [r13 + 0x104a4], r14d
jmp 0x14015f0b6
mov dword [r13 + 0x104a4], r14d
mov dword [rsp + 0x34], r14d
cmp r14d, ebx
jb 0x14015f188
mov edi, esi
nop dword [rax + rax]
lea rax, [rbp + 0xa]
cmp rax, rdi
jae 0x14015ed9d
mov r8d, dword [r11 + rbp]
lea r9, [r11 + rbp]
mov edx, dword [r9 + 4]
mov eax, ebx
bswap r8d
bswap edx
lea rcx, [rax + rax*8]
lea r10, [rcx*8]
add r10, r13
mov dword [r10 + 0x8e00], edx
test r8b, 2
je 0x14015f107
or word [r10 + 0x8e2a], 1
add edx, edx
add ebp, 8
add ebp, edx
cmp ebp, esi
ja 0x14015ed9d
cmp edx, r15d
ja 0x14015ed9d
test r8b, 3
je 0x14015f155
movzx eax, byte [r10 + 0x8e2a]
add r9, 8
and al, 1
mov dword [rsp + 0x20], edx
neg al
lea rdx, [r10 + 0x8e00]
mov rcx, r13
sbb r8d, r8d
and r8d, 7
call fcn.140129340
mov r11, qword [rsp + 0xb8]
inc ebx
cmp ebx, r14d
jbe 0x14015f0c0
mov ebx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x30]
jmp 0x14015ec20
mov r13, qword [rsp + 0xb0]
mov esi, dword [rsp + 0x38]
mov ebx, dword [rsp + 0xc8]
jmp 0x14015ec09
mov ebx, dword [rsp + 0xc8]
jmp 0x14015ec20
xor eax, eax
add rsp, 0x98
pop r15
pop r13
ret