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

Disassembly:
mov rax, rsp
sub rsp, 0x98
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov qword [rax - 0x18], r14
mov r14, rdx
mov r12, rcx
mov word [rdx], 0
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x419c0b
mov rcx, qword [rcx + 0x10]
mov rax, rcx
sub rax, rdi
sar rax, 3
je 0x419c0b
xor r13d, r13d
mov rbx, r13
mov qword [rsp + 0x48], r13
cmp rdi, rcx
jbe 0x419940
call fcn.0056a700
mov rsi, qword [r12 + 0x10]
cmp qword [r12 + 8], rsi
jbe 0x419951
call fcn.0056a700
cmp rdi, rsi
je 0x419b89
cmp rdi, qword [r12 + 0x10]
jb 0x419966
call fcn.0056a700
mov rcx, qword [rdi]
mov word [rsp + 0x58], 9
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x419981
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test rbx, rbx
jne 0x4199c4
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r13d
lea r8, [rsp + 0x40]
lea edx, [rbx + 1]
mov cx, SafeArrayDestroy
call qword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov rbx, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x419b26
mov rcx, rax
call qword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
test eax, eax
js 0x419b26
mov dword [rsp + 0x24], r13d
lea r8, [rsp + 0x24]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
test eax, eax
js 0x419b81
lea r8, [rsp + 0x38]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
test eax, eax
js 0x419b79
lea r8, [rsp + 0x34]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
test eax, eax
js 0x419b71
mov eax, dword [rsp + 0x34]
sub eax, dword [rsp + 0x38]
add eax, 2
mov dword [rsp + 0x50], eax
mov esi, dword [rsp + 0x24]
mov dword [rsp + 0x54], esi
test rbx, rbx
je 0x419b66
movzx eax, byte [rbx + 2]
shr al, 4
not al
and al, 1
je 0x419b26
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
test eax, eax
js 0x419b26
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test eax, eax
js 0x419b26
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
test eax, eax
js 0x419b26
lea r8, [rsp + 0x3c]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
test eax, eax
js 0x419b5e
lea r8, [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
test eax, eax
js 0x419b56
mov eax, dword [rsp + 0x30]
sub eax, dword [rsp + 0x3c]
add esi, eax
mov dword [rsp + 0x28], r13d
lea r8, [rsp + 0x28]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayLock]
test eax, eax
js 0x419b4e
mov ebp, dword [rsp + 0x28]
cmp esi, ebp
jl 0x419b26
mov dword [rsp + 0x2c], r13d
lea r8, [rsp + 0x2c]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
test eax, eax
js 0x419b46
cmp esi, dword [rsp + 0x2c]
jg 0x419b26
sub esi, ebp
movsxd rax, esi
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x10]
lea rcx, [rax + rcx*8]
lea rdx, [rsp + 0x58]
call qword [sym.imp.OLEAUT32.dll_VariantChangeType]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp rdi, qword [r12 + 0x10]
jb 0x419b3d
call fcn.0056a700
add rdi, 8
jmp 0x419940
mov ecx, eax
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
int3
mov ecx, 0x80004005
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
int3
mov ecx, eax
call fcn.00401020
nop
lea rdx, [r14 + 8]
mov eax, r13d
test rdx, rdx
setne al
test eax, eax
jne 0x419ba5
mov ecx, 0x80004003
call fcn.00401020
int3
test rbx, rbx
setne r13b
test r13d, r13d
jne 0x419bbc
mov ecx, 0x80004005
call fcn.00401020
int3
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_DispGetParam]
mov edi, eax
test eax, eax
jns 0x419bea
test rbx, rbx
je 0x419be6
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
test eax, eax
js 0x419be6
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
mov eax, edi
jmp 0x419c0d
mov word [r14], 0x200c
test rbx, rbx
je 0x419c0b
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
test eax, eax
js 0x419c0b
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
xor eax, eax
mov rbx, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xb8]
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
add rsp, 0x98
ret