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

Disassembly:
push 0xffffffffffffffff
push 0x10288c3f
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0xdc]
mov dword fs:[0], eax
lea eax, [esp + 0xb4]
push eax
call fcn.100bf190
mov dword [esp + 0xe4], 1
xor ebx, ebx
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0xbc]
push ecx
call edi
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x34], ebx
cmp eax, ebx
je 0x1019f605
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0xc0]
push ecx
push 1
push eax
call edx
cmp eax, ebx
jl 0x1019faf1
cmp dword [esp + 0x34], ebx
seta al
cmp al, bl
je 0x1019fb31
lea eax, [esp + 0x1c]
push eax
lea esi, [esp + 0xb8]
call fcn.100bef90
mov byte [esp + 0xe4], 2
push 0x103b7524
lea ecx, [esp + 0x40]
call fcn.10003eb0
mov byte [esp + 0xe4], 4
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [esp + 0x44]
push ecx
call esi
mov byte [esp + 0xe4], 5
mov dword [esp + 0x54], ebx
mov byte [esp + 0xe4], 6
lea edx, [esp + 0x24]
push edx
call esi
mov byte [esp + 0xe4], 7
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x24]
call eax
cmp eax, ebx
jl 0x1019fafe
cmp word [esp + 0x38], bx
je 0x1019f6fe
mov byte [esp + 0xe4], 6
lea ecx, [esp + 0x24]
push ecx
call edi
mov byte [esp + 0xe4], 8
lea edx, [esp + 0x44]
push edx
call edi
mov byte [esp + 0xe4], 2
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1019f6dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe4], 1
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x1019f5c7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x1019f5c7
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebx
call fcn.100041b0
lea eax, [esp + 0x44]
push eax
call edi
cmp eax, ebx
jl 0x1019faf1
mov ecx, 8
mov word [esp + 0x44], cx
lea eax, [esp + 0x4c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x4c], ebx
mov edx, dword [esi]
mov ecx, dword [edx + 0x2c]
push eax
push esi
call ecx
cmp eax, ebx
jl 0x1019fb0f
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
lea ecx, [esp + 0x24]
push ecx
push eax
call edx
cmp eax, ebx
jl 0x1019fb20
movzx eax, word [esp + 0x24]
cmp eax, 0x13
jg 0x1019f95b
cmp eax, 0x10
jge case.0x1019f78c.2
sub eax, 2
cmp eax, 9
ja case.0x1019f78c.4
movzx eax, byte [eax + 0x1019fb70]
jmp dword [eax*4 + 0x1019fb64]
mov ebp, 1
call fcn.10045b90
cmp dword [eax + 0x1c], 5
jl 0x1019f89b
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 0x14
mov esi, 7
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str..PerformInstall.cpp
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x100], 0x11
push 0x1150
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x98], esp
push 0x25
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str.CNVInstaller::WritePropertiesToRegKey
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0x120], 0x12
lea ecx, [esp + 0x57]
lea edx, [esp + 0x10c]
lea eax, [esp + 0x78]
mov dword [esp + 0x110], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xc8], eax
lea ecx, [esp + 0xd0]
lea edx, [esp + 0xc8]
lea eax, [esp + 0xb8]
push 5
mov byte [esp + 0x5b], bl
mov dword [esp + 0xd4], str.Persisting_property
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xbc], str.to_registry
mov dword [esp + 0xc0], edx
mov dword [esp + 0xac], 0x102df820
mov dword [esp + 0xb0], eax
call fcn.10045b90
push eax
mov byte [esp + 0x128], 7
lea edi, [esp + 0xb0]
call fcn.10002b50
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x20], ebx
mov byte [esp + 0xe4], 0x13
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push ebp
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.101e42a0
add esp, 0x14
mov esi, eax
push esi
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], esi
call fcn.10003840
mov ecx, dword [esp + 0xf4]
add esp, 4
push eax
call fcn.101e4a80
mov byte [esp + 0xe4], 7
cmp esi, ebx
je 0x1019f907
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
mov dword [esp + 0x20], ebx
mov byte [esp + 0xe4], 6
lea eax, [esp + 0x24]
push eax
call edi
mov byte [esp + 0xe4], 0x14
lea ecx, [esp + 0x44]
push ecx
call edi
mov byte [esp + 0xe4], 2
lea ecx, [esp + 0x3c]
call fcn.10004720
mov byte [esp + 0xe4], 1
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x1019f5c7
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x1019f5c7
cmp eax, 0x17
jg 0x1019f981
cmp eax, 0x16
jge case.0x1019f78c.2
add eax, 0xffffffec
cmp eax, 1
ja case.0x1019f78c.4
mov ebp, 0xb
jmp 0x1019f798
mov ebp, 4
jmp 0x1019f798
cmp eax, 0x2011
jne case.0x1019f78c.4
lea ecx, [esp + 0x24]
push ecx
mov ebp, 3
call fcn.101e3980
add esp, 4
jmp 0x1019f798
call fcn.10045b90
cmp dword [eax + 0x1c], 4
jl 0x1019fabd
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x78], esp
push 0x14
mov esi, 7
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str..PerformInstall.cpp
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x100], 0xc
push 0x114d
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x9c], esp
push 0x25
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str.CNVInstaller::WritePropertiesToRegKey
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0x120], 0xd
lea ecx, [esp + 0x57]
lea edx, [esp + 0xe8]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xb4], edx
lea eax, [esp + 0x78]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xe0]
mov dword [esp + 0xe0], eax
mov ax, word [esp + 0x60]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xdc], edx
lea ecx, [esp + 0xd8]
lea edx, [esp + 0xa0]
push 4
mov byte [esp + 0x5b], bl
mov dword [esp + 0xb4], 0x102dc94c
mov dword [esp + 0xdc], str.not_recorded__type
mov word [esp + 0xa4], ax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xc4], 0x102df67c
mov dword [esp + 0xc8], edx
call fcn.10045b90
push eax
mov byte [esp + 0x128], 7
lea edi, [esp + 0xc8]
call fcn.10002b50
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0xe4], 6
lea eax, [esp + 0x24]
push eax
call edi
mov byte [esp + 0xe4], 0xe
lea ecx, [esp + 0x44]
push ecx
call edi
mov byte [esp + 0xe4], 2
lea ecx, [esp + 0x3c]
call fcn.10004720
jmp 0x1019f93a
push ebx
push ebx
push 0x102b274a
push eax
call fcn.100048f0
push ebx
push 0x1128
push 0x102dcf48
push eax
call fcn.100048f0
push ebx
push 0x112d
push 0x102dcf48
push eax
call fcn.100048f0
push ebx
push 0x112e
push 0x102dcf48
push eax
call fcn.100048f0
mov dword [esp + 0xe4], 0xffffffff
lea ecx, [esp + 0xb4]
push ecx
call fcn.10040980
mov ecx, dword [esp + 0xdc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret