Function at 0x14015c6f0
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 0x14015d134
cmp r8d, 0x84
jbe 0x14015d134
cmp word [rdx + 0x4c], 0
je 0x14015d134
cmp dword [rdx], 0x304d4244
jne 0x14015d134
cmp word [rdx + 0x48], 0
je 0x14015d134
cmp dword [rdx + 0x4e], 0x474e4f53
jne 0x14015d134
cmp dword [rdx + 8], 0x454d414e
jne 0x14015d134
cmp dword [rdx + 0xc], 0x2c000000
jne 0x14015d134
cmp dword [rdx + 0x3c], 0x4f464e49
jne 0x14015d134
cmp dword [rdx + 0x40], 0xa000000
jne 0x14015d134
movzx eax, word [rdx + 0x82]
rol ax, 8
movzx r9d, ax
lea r10d, [r9 + r9]
lea eax, [r10 + 0x9c]
cmp eax, r8d
jae 0x14015d134
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 0x14015c82e
mov dword [r13 + 0x10490], 4
jmp 0x14015c83c
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 0x14015c8ad
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 0x14015c8ad
inc edx
inc r8
cmp edx, r9d
jb 0x14015c890
lea esi, [r10 + 0x84]
lea eax, [rsi + 0xa]
cmp eax, r15d
jae 0x14015cbe1
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 0x14015cbd4
cmp edx, r15d
ja 0x14015cbd4
cmp ecx, 0x54534e49
jne 0x14015cc0c
cmp ebx, 0xf0
jb 0x14015c930
mov ebx, 0xef
mov dword [rsp + 0xc8], ebx
jmp 0x14015c93f
mov dword [rsp + 0xc8], ebx
test ebx, ebx
je 0x14015cbc0
mov rdi, qword [rsp + 0xb0]
mov r15d, 1
mov r13d, esi
lea rax, [rbp + 0x32]
mov r12d, r15d
cmp rax, r13
ja 0x14015cb9d
mov ecx, 0x278
call fcn.140125e50
mov rbx, rax
test rax, rax
je 0x14015d110
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 0x14015c9a9
lea rax, [r14 + r14*8]
lea rdi, [rdi + rax*8]
add rdi, 0x8e00
jmp 0x14015c9ab
xor edi, edi
xor edx, edx
mov r8d, 0x278
mov rcx, rbx
call fcn.140076610
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 0x14015ca4b
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 0x14015ca8b
mov dword [rbx + 4], 0x200
jmp 0x14015ca94
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 0x14015cab0
test rdi, rdi
je 0x14015cb70
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 0x14015cb02
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.140128600
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 0x14015cb70
test bl, 3
je 0x14015cb70
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 0x14015cb70
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 0x14015c950
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 0x14015c8e0
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 0x14015cd4d
lea eax, [rbp + 1]
xor ebx, ebx
movzx edi, byte [rax + r11]
add ebp, 2
test edi, edi
je 0x14015cd3d
nop dword [rax]
lea rax, [rbp + 0x88]
mov ecx, ebp
cmp rax, rsi
ja 0x14015cd3d
add r11, rcx
movzx ecx, word [r11]
rol cx, 8
lea eax, [rcx - 1]
cmp ax, r12w
ja 0x14015cd25
movzx eax, cx
mov r9, qword [r13 + rax*8 + 0xd180]
test r9, r9
je 0x14015cd25
cmp byte [r11 + 3], 0
je 0x14015cd25
test byte [r11 + 2], 1
je 0x14015cc85
or dword [r9 + 4], 1
test byte [r11 + 2], 2
je 0x14015cc91
or dword [r9 + 4], 2
test byte [r11 + 2], 4
je 0x14015cc9d
or dword [r9 + 4], 4
movzx ecx, byte [r11 + 3]
inc cl
mov byte [r9 + 0x22c], cl
cmp cl, 0x20
jbe 0x14015ccba
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 0x14015cd25
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 0x14015ccf0
mov r11, qword [rsp + 0xb8]
add ebp, 0x88
inc ebx
cmp ebx, edi
jb 0x14015cc30
mov ebx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x30]
jmp 0x14015cbc0
cmp ecx, 0x54544150
jne 0x14015d013
xor r12d, r12d
mov dword [rsp + 0x40], r12d
cmp edi, 0xf0
jbe 0x14015cd74
mov edi, 0xf0
mov dword [rsp + 0x30], edi
jmp 0x14015cd80
mov dword [rsp + 0x30], edi
test edi, edi
je 0x14015cbba
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 0x14015d007
mov r14d, dword [rbx + r11 + 2]
add ebp, 6
bswap r14d
add ebp, r14d
mov dword [rsp + 0x3c], ebp
cmp ebp, esi
ja 0x14015d007
cmp r14d, esi
ja 0x14015d007
movzx eax, word [rbx + r11]
rol ax, 8
movzx r15d, ax
lea eax, [r15 - 4]
cmp eax, 0xfc
ja 0x14015cfea
mov edx, dword [r13 + 0x10490]
mov ecx, r15d
call fcn.1401286e0
mov r11, qword [rsp + 0xb8]
mov rsi, rax
test rax, rax
je 0x14015cfe1
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 0x14015cfd9
mov edx, dword [r13 + 0x10490]
mov r12d, 0xff
cmp ebp, r15d
jae 0x14015cfcc
movzx r8d, byte [rbx + rdi + 6]
inc ebx
mov ecx, ebx
test r8d, r8d
je 0x14015cfb4
movzx r9d, byte [rbx + rdi + 6]
dec r8d
movzx eax, r9b
inc ebx
and al, 1
cmp r8d, edx
jae 0x14015cf74
test al, al
je 0x14015ceaf
movzx edx, byte [rbx + rdi + 6]
lea ebx, [rcx + 2]
cmp edx, 0x1f
jne 0x14015ce8d
mov edx, r12d
jmp 0x14015cea8
lea eax, [rdx - 1]
cmp eax, 0xfc
ja 0x14015cea8
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 0x14015cec4
movzx eax, byte [rbx + rdi + 6]
lea rcx, [r8 + r8*2]
mov byte [rsi + rcx*2 + 1], al
inc ebx
test r9b, 0x3c
je 0x14015cfab
xor r10d, r10d
xor r11d, r11d
mov ecx, r12d
mov edx, r12d
test r9b, 4
je 0x14015cee7
movzx ecx, byte [rbx + rdi + 6]
inc ebx
test r9b, 8
je 0x14015cef5
movzx r10d, byte [rbx + rdi + 6]
inc ebx
test r9b, 0x10
je 0x14015cf02
movzx edx, byte [rbx + rdi + 6]
inc ebx
test r9b, 0x20
je 0x14015cf10
movzx r11d, byte [rbx + rdi + 6]
inc ebx
cmp ecx, 0xc
jne 0x14015cf25
lea rax, [r8 + r8*2]
mov byte [rsi + rax*2 + 2], 1
mov byte [rsi + rax*2 + 4], r10b
jmp 0x14015cf4a
cmp edx, 0xc
jne 0x14015cf3b
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 0x14015cf4a
cmp ecx, 0x10
jb 0x14015cf54
cmp edx, 0x10
jae 0x14015cf54
mov ecx, edx
mov r10d, r11d
cmp edx, 0x13
ja 0x14015cfab
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.140150690
mov edx, dword [r13 + 0x10490]
jmp 0x14015cfc0
test al, al
je 0x14015cf7b
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 0x14015cfab
inc ebx
mov edx, dword [r13 + 0x10490]
jmp 0x14015cfc0
mov eax, edx
inc ebp
lea rcx, [rax + rax*2]
lea rsi, [rsi + rcx*2]
lea eax, [rbx + 3]
cmp eax, r14d
jb 0x14015ce41
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 0x14015cda0
mov ebx, dword [rsp + 0xc8]
jmp 0x14015cbad
cmp ecx, 0x4c504d53
jne 0x14015cbc0
mov ebx, 1
cmp r14d, 0xf0
jb 0x14015d041
mov r14d, 0xef
mov dword [rsp + 0x34], r14d
mov dword [r13 + 0x104a4], r14d
jmp 0x14015d056
mov dword [r13 + 0x104a4], r14d
mov dword [rsp + 0x34], r14d
cmp r14d, ebx
jb 0x14015d128
mov edi, esi
nop dword [rax + rax]
lea rax, [rbp + 0xa]
cmp rax, rdi
jae 0x14015cd3d
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 0x14015d0a7
or word [r10 + 0x8e2a], 1
add edx, edx
add ebp, 8
add ebp, edx
cmp ebp, esi
ja 0x14015cd3d
cmp edx, r15d
ja 0x14015cd3d
test r8b, 3
je 0x14015d0f5
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.1401272e0
mov r11, qword [rsp + 0xb8]
inc ebx
cmp ebx, r14d
jbe 0x14015d060
mov ebx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x30]
jmp 0x14015cbc0
mov r13, qword [rsp + 0xb0]
mov esi, dword [rsp + 0x38]
mov ebx, dword [rsp + 0xc8]
jmp 0x14015cba9
mov ebx, dword [rsp + 0xc8]
jmp 0x14015cbc0
xor eax, eax
add rsp, 0x98
pop r15
pop r13
ret