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

Disassembly:
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x1403486d0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, rcx
mov qword [rsp + 0x68], r8
mov rcx, rdx
mov rbx, rdx
call qword [sym.imp.CoreFoundation.dll_CFDataGetBytePtr]
mov rcx, rbx
mov rdi, rax
call qword [sym.imp.CoreFoundation.dll_CFDataGetLength]
xor r15d, r15d
mov qword [rsp + 0x48], rdi
mov rdx, rax
mov r14d, 0xffff995d
cmp rax, 2
jae 0x140191579
mov ebx, 0xffffffce
mov rcx, rdi
test ebx, ebx
jne 0x140191aec
cmp rdx, 1
jae 0x1401915a7
mov eax, dword [rsp + 0x38]
mov ebx, 0xffffffce
jmp 0x1401915b7
movzx ecx, byte [rdi]
lea rax, [rdi + 1]
movzx eax, byte [rdi + 1]
add rdi, 2
shl cx, 8
sub rdx, 2
or cx, ax
mov ebx, r15d
cmp cx, word [reloc.OLEAUT32.dll_SysReAllocString]
je 0x14019155d
mov ebx, r14d
mov rcx, rdi
jmp 0x1401915c6
movzx eax, byte [rdi]
dec rdx
lea rdi, [rcx + 1]
mov ebx, r15d
mov rcx, rdi
test ebx, ebx
jne 0x140191aec
cmp eax, 3
cmovne ebx, r14d
test ebx, ebx
jne 0x140191aec
test rdx, rdx
jne 0x1401915db
mov ebx, r14d
jmp 0x140191aec
cmp rdx, 1
jae 0x1401915e8
mov ebx, 0xffffffce
jmp 0x1401915fc
movzx eax, byte [rdi]
dec rdx
lea rdi, [rcx + 1]
mov ebx, r15d
test al, al
jne 0x1401915d3
mov rcx, rdi
test ebx, ebx
jne 0x140191aec
cmp rdx, 4
jae 0x140191614
mov ebx, 0xffffffce
jmp 0x140191aec
movzx eax, byte [rdi + 1]
lea r8, [rdx - 4]
movzx r9d, byte [rdi]
mov edx, dword [rsi + 0x60]
shl r9d, 8
or r9d, eax
movzx eax, byte [rdi + 2]
shl r9d, 8
or r9d, eax
movzx eax, byte [rdi + 3]
shl r9d, 8
or r9d, eax
mov dword [rsp + 0x3c], r9d
cmp r9d, edx
je 0x14019166f
lea eax, [rdx - 1]
cmp r9d, eax
jne 0x140191658
cmp qword [rsi + 0x68], r15
jne 0x14019166f
mov ebx, r15d
lea eax, [r9 + 1]
cmp eax, edx
setb bl
add ebx, 0xffff9d0f
jmp 0x140191aec
cmp r8, 4
jb 0x14019160a
movzx eax, byte [rcx + 5]
lea rdi, [rcx + 8]
movzx r10d, byte [rcx + 4]
lea r11, [r8 - 4]
shl r10d, 8
or r10d, eax
mov qword [rsp + 0xa0], r13
movzx eax, byte [rcx + 6]
shl r10d, 8
or r10d, eax
mov qword [rsp + 0x60], rdi
movzx eax, byte [rcx + 7]
mov ecx, dword [rsi + 0x48]
shl r10d, 8
or r10d, eax
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x38], r10d
cmp r10d, ecx
je 0x1401916e7
lea eax, [rcx + 1]
cmp r10d, eax
jne 0x1401916d3
mov r13, qword [rsi + 0x58]
test r13, r13
jne 0x1401916eb
cmp r10d, ecx
mov ebx, r15d
setb bl
add ebx, 0xffff9d0f
jmp 0x140191ae4
mov r13, qword [rsi + 0x50]
mov qword [rsp + 0xf8], rbp
mov qword [rsp + 0xa8], r12
cmp r9d, edx
jne 0x140191706
mov rax, qword [rsi + 0x70]
jmp 0x14019170a
mov rax, qword [rsi + 0x68]
mov qword [rsp + 0x30], rax
mov rbp, r15
mov r12, r15
test r13, r13
je 0x140191891
test rax, rax
je 0x140191891
mov r14d, r15d
lea rbx, [rsi + 0x88]
mov edi, r14d
lea r15, [rsi + 0x88]
shl rdi, 7
mov rcx, r13
add r15, rdi
call fcn.140197ba0
mov rdx, rax
mov r8d, reloc.OLEAUT32.dll_SafeArrayLock
mov rcx, r15
call fcn.140198360
test rax, rax
jne 0x140191787
mov rcx, qword [rsp + 0x30]
call fcn.140197ba0
lea rcx, [rsi + 0x9c]
mov rdx, rax
add rcx, rdi
mov r8d, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.140198360
test rax, rax
je 0x1401917e0
test rbp, rbp
jne 0x1401917cd
mov dl, 1
xor eax, eax
cmp rax, 0x14
jae 0x1401917a6
movzx ecx, byte [rax + rbx]
test cl, cl
sete dl
inc rax
test cl, cl
je 0x140191790
test dl, dl
je 0x1401917cd
mov dl, 1
xor ecx, ecx
nop
cmp rcx, 0x14
jae 0x1401917c7
movzx eax, byte [rcx + rbx + 0x14]
test al, al
sete dl
inc rcx
test al, al
je 0x1401917b0
test dl, dl
cmovne rbp, r15
inc r14d
sub rbx, 0xffffffffffffff80
cmp r14d, 4
jl 0x140191731
jmp 0x1401917e3
mov r12, r15
test r12, r12
jne 0x140191863
test rbp, rbp
lea r12, [rsi + 0x88]
mov rcx, r13
cmovne r12, rbp
call fcn.140197ba0
mov rcx, qword [rsp + 0x30]
movups xmm0, xmmword [rax]
movups xmmword [r12], xmm0
mov eax, dword [rax + 0x10]
mov dword [r12 + 0x10], eax
call fcn.140197ba0
mov rdx, qword [rsp + 0x30]
lea rcx, [r12 + 0x60]
xor r15d, r15d
lea r9, [r12 + 0x28]
lea r8, [r12 + 0x3c]
movups xmm0, xmmword [rax]
movups xmmword [r12 + 0x14], xmm0
mov eax, dword [rax + 0x10]
mov dword [r12 + 0x24], eax
lea rax, [r12 + 0x4c]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, r13
mov qword [r12 + 0x70], r15
mov qword [r12 + 0x78], r15
call fcn.140197c00
jmp 0x140191866
xor r15d, r15d
mov r11, qword [rsp + 0x58]
lea rax, [r12 + 0x4c]
mov rdi, qword [rsp + 0x60]
lea r13, [r12 + 0x78]
mov qword [rsp + 0x30], rax
mov r14d, 0xffff995d
lea rax, [r12 + 0x60]
mov qword [rsp + 0x50], rax
jmp 0x1401918a2
lea r13, [0x14037e5e0]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x50], r15
cmp r11, 4
jae 0x1401918af
mov ebx, 0xffffffce
jmp 0x1401918f7
movzx eax, byte [rdi + 1]
lea r8, [rdi + 4]
movzx edx, byte [rdi]
add r11, 0xfffffffffffffffc
shl edx, 8
mov ebx, r15d
or edx, eax
movzx eax, byte [rdi + 2]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 3]
shl edx, 8
or rdx, rax
cmp rdx, r11
jbe 0x1401918e6
mov ebx, r14d
jmp 0x140191ad4
mov qword [rsp + 0x70], rdx
lea rdi, [r8 + rdx]
mov qword [rsp + 0x40], r8
sub r11, rdx
test ebx, ebx
jne 0x140191ad4
cmp r11, 8
jae 0x14019190f
mov ebx, 0xffffffce
jmp 0x140191ad4
movzx eax, byte [rdi + 1]
lea rbp, [rdi + 8]
movzx r14d, byte [rdi]
lea rdx, [r11 - 8]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 2]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 3]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 4]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 5]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 6]
shl r14, 8
or r14, rax
movzx eax, byte [rdi + 7]
shl r14, 8
or r14, rax
cmp r14, qword [r13]
ja 0x140191978
mov ebx, 0xffff9d10
jmp 0x140191ad4
cmp rdx, 4
jae 0x14019198f
mov rdi, qword [rsp + 0x40]
mov ebx, 0xffffffce
mov r12, qword [rsp + 0x40]
jmp 0x1401919c6
movzx eax, byte [rbp + 1]
lea r12, [rbp + 4]
movzx edi, byte [rbp]
add rdx, 0xfffffffffffffffc
shl edi, 8
mov ebx, r15d
or edi, eax
movzx eax, byte [rbp + 2]
shl edi, 8
or edi, eax
movzx eax, byte [rbp + 3]
shl edi, 8
or rdi, rax
cmp rdi, rdx
ja 0x1401919dc
lea rbp, [rdi + r12]
sub rdx, rdi
mov r15, rbp
test ebx, ebx
jne 0x140191ad4
sub r15, qword [rsp + 0x48]
cmp rdx, 0x14
jae 0x1401919e6
mov ebx, 0xffff995d
jmp 0x140191ad4
call fcn.1400183b0
mov r8, qword [rsp + 0x30]
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x28], rcx
mov r9, r15
mov rcx, qword [rsp + 0x48]
mov edx, reloc.OLEAUT32.dll_SafeArrayLock
mov qword [rsp + 0x20], rcx
mov rcx, rax
call fcn.14001aeb0
mov r8d, reloc.OLEAUT32.dll_SafeArrayLock
lea rcx, [rsp + 0x78]
mov rdx, rbp
call fcn.140198360
test rax, rax
je 0x140191a36
mov ebx, 0xffff9d33
jmp 0x140191ad4
mov rcx, qword [rsp + 0x68]
mov rdx, rdi
call fcn.140191d60
mov rdx, qword [rsp + 0x50]
mov r9, rdi
mov qword [rsp + 0x28], rax
mov r8, r14
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov qword [rsp + 0x20], r12
call fcn.140196a20
mov qword [r13], r14
lea r8, [rsp + 0x70]
mov rcx, qword [sym.imp.CoreFoundation.dll_kCFAllocatorDefault]
lea rdx, [rsp + 0x40]
mov rcx, qword [rcx]
call fcn.140198050
mov rdi, rax
test rax, rax
je 0x140191a9b
mov eax, dword [rsp + 0x3c]
cmp eax, dword [rsi + 0x60]
jne 0x140191a9b
mov rdx, rdi
mov rcx, rsi
call fcn.14018fdd0
mov edx, dword [rsi + 0x48]
inc edx
cmp dword [rsp + 0x38], edx
jne 0x140191aae
mov rcx, rsi
call fcn.1401902a0
mov rcx, rsi
call fcn.1401905c0
mov r8, qword [rsi + 0x70]
mov rcx, rsi
mov rdx, qword [rsi + 0x50]
call fcn.1401902e0
test rdi, rdi
je 0x140191ad4
mov rcx, rdi
call qword [sym.imp.CoreFoundation.dll_CFRelease]
mov r12, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xa0]
mov eax, ebx
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1400e6b50
add rsp, 0xb0
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret