Function at 0x140004b20
Capabilities:
Get common file path
Set current directory

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x230
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rbx, rcx
lea rdx, str.iProDifX
add rcx, 0xe8
call fcn.140002010
test eax, eax
je 0x140004b72
lea rcx, str.iProDifX__PreviousInstanceRunning
call fcn.140003770
mov rcx, rbx
call fcn.14000565c
jmp 0x140004e5a
lea rcx, [rbx + 0xe8]
call fcn.1400020c0
cmp eax, 1
jne 0x140004bd0
lea rcx, str.iProDifX__There_is_another_instance_of_Device_Installation_running
call fcn.140003770
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rbx + 0xe8]
call fcn.1400020c0
cmp eax, 1
jne 0x140004bd0
lea rcx, str.iProDifX__There_is_still_another_instance_of_Device_Installation_running
call fcn.140003770
lea rcx, str.iProDifX__Driver_is_not_installed.
call fcn.140003770
mov rcx, rbx
call fcn.14000565c
jmp 0x140004e5a
xor eax, eax
mov dword [rbx + 0x4b58], eax
mov dword [rbx + 0x4b5c], eax
mov dword [rbx + 0x4b60], eax
mov dword [rbx + 0x4b64], eax
mov r8, qword [0x14005ae88]
mov r8, qword [r8]
lea rdx, [0x14003f760]
lea rcx, [rbx + 0x35c0]
call fcn.140001490
mov edx, 0x5c
mov rcx, qword [rbx + 0x35c0]
call fcn.14001c230
test rax, rax
jne 0x140004c22
or eax, 0xffffffff
jmp 0x140004c28
sub eax, dword [rbx + 0x35c0]
mov r8d, eax
lea rdx, [rsp + 0x250]
lea rcx, [rbx + 0x35c0]
call fcn.140002610
nop
mov rdx, rax
lea rcx, [rbx + 0x35b8]
call fcn.140002a70
nop
mov rdx, qword [rsp + 0x250]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140004c74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbx + 0x35c0]
lea rcx, str.iProDifX____s_
call fcn.140003770
mov rcx, qword [rbx + 0x35b8]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea rdx, [rsp + 0x120]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea r8, [rbx + 0x3704]
lea rdx, [rsp + 0x120]
mov rcx, rbx
call fcn.1400040a0
mov edx, dword [rbx + 0x4b54]
lea rcx, str.iProDifX____d_
call fcn.140003770
mov r12d, 1
cmp dword [0x14005ae80], r12d
jle 0x140004e13
mov ebp, 8
nop
nop
mov rax, qword [0x14005ae88]
mov rsi, qword [rax + rbp]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
mov rdx, rcx
mov rcx, rsi
call fcn.14001c070
test eax, eax
je 0x140004d2f
mov rdx, qword [0x14005ae88]
mov rdx, qword [rdx + rbp]
lea rcx, str.iProDifX___Error_encoutnered_while_parsing_argument___s_
call fcn.140003770
mov rdx, rsi
lea rcx, str.iProDifX___s
call fcn.140003770
lea rdx, str._silent
mov rcx, rsi
call fcn.14001bc20
test rax, rax
je 0x140004d5e
mov dword [rbx + 0x4b58], 1
jmp 0x140004dd2
lea rdx, str._remove
mov rcx, rsi
call fcn.14001bc20
test rax, rax
je 0x140004d7e
mov dword [rbx + 0x4b5c], 1
jmp 0x140004dd2
lea rdx, str._reinstall
mov rcx, rsi
call fcn.14001bc20
test rax, rax
je 0x140004d9e
mov dword [rbx + 0x4b60], 1
jmp 0x140004dd2
lea rdx, str._infclear
mov rcx, rsi
call fcn.14001bc20
test rax, rax
je 0x140004dbe
mov dword [rbx + 0x4b64], 1
jmp 0x140004dd2
lea rdx, str._install
mov rcx, rsi
call fcn.14001bc20
test rax, rax
je 0x140004de9
add r12d, 1
add rbp, 8
cmp r12d, dword [0x14005ae80]
jl 0x140004cf0
jmp 0x140004e13
lea rcx, [rsp + 0x30]
call fcn.1400035c0
nop
lea rcx, [rsp + 0x30]
call fcn.140005f7c
mov rcx, rbx
call fcn.14000565c
nop
lea rcx, [rsp + 0x30]
call fcn.140005478
jmp 0x140004e5a
cmp dword [rbx + 0x4b58], 0
jne 0x140004e2d
lea rcx, [rbx + 0x390]
mov edx, 0x66
call fcn.140001540
cmp dword [rbx + 0x4b64], 0
jne 0x140004e3e
mov rcx, rbx
call fcn.140003820
mov rcx, rbx
call fcn.140004a80
lea rcx, str.iProDifX__Done
call fcn.140003770
mov rcx, rbx
call fcn.14000565c
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret