Function at 0x41f460
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x588
mov qword [rsp + 0x580], rbx
mov qword [rsp + 0x578], rsi
mov qword [rsp + 0x570], rdi
mov rbx, rdx
mov qword [rsp + 0x30], 0xfffffffffffffffe
call fcn.004545a0
test eax, eax
je 0x41f505
xor r8d, r8d
lea rdx, str.CDIFxUninstall_::IsDifxCase_n
lea rcx, [rsp + 0x40]
call fcn.00486850
movabs rdx, 0x203a5952544e45
mov qword [rsp + 0x250], rdx
lea rdi, [rsp + 0x250]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x40]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x41f4d4
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x250]
call fcn.004548a0
xor esi, esi
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x28], rax
call fcn.0047fa50
cmp eax, 0xb
je 0x41f526
cmp eax, 0xc
jne 0x41f77d
mov edx, 0x104
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdi, [rsp + 0x140]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.SYSTEM32_]
mov qword [rdi - 1], rax
movzx eax, word [0x004ad490]
mov word [rdi + 7], ax
movzx eax, byte [0x004ad492]
mov byte [rdi + 9], al
lea rdi, [rsp + 0x140]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.DIFXAPI.DLL]
mov qword [rdi - 1], rax
mov eax, dword [0x004ad370]
mov dword [rdi + 7], eax
call fcn.004545a0
test eax, eax
je 0x41f5c7
lea r8, [rsp + 0x140]
lea rdx, str.szSystemDifxPath___s_n
lea rcx, [rsp + 0x40]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x40]
call fcn.004548a0
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x20]
call fcn.004217a0
test eax, eax
je 0x41f612
mov esi, 1
test rbx, rbx
je 0x41f77d
lea rcx, [rsp + 0x140]
lea rax, [rsp + 0x140]
sub rbx, rax
nop
movzx eax, byte [rcx]
mov byte [rbx + rcx], al
inc rcx
test al, al
jne 0x41f600
jmp 0x41f77d
xor edx, edx
lea rcx, [rsp + 0x350]
call fcn.0047fc70
lea rdi, [rsp + 0x350]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.DIFXAPI.DLL]
mov qword [rdi - 1], rax
mov eax, dword [0x004ad370]
mov dword [rdi + 7], eax
call fcn.004545a0
test eax, eax
je 0x41f67c
lea r8, [rsp + 0x350]
lea rdx, str.szLocalDifxPath___s_n
lea rcx, [rsp + 0x40]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x40]
call fcn.004548a0
lea rdx, [rsp + 0x350]
lea rcx, [rsp + 0x20]
call fcn.004217a0
test eax, eax
je 0x41f6c5
mov esi, 1
test rbx, rbx
je 0x41f77d
lea rcx, [rsp + 0x350]
lea rax, [rsp + 0x350]
sub rbx, rax
movzx eax, byte [rcx]
mov byte [rbx + rcx], al
inc rcx
test al, al
jne 0x41f6b3
jmp 0x41f77d
mov r8d, 1
lea rdx, [rsp + 0x460]
mov ecx, 0x104
call fcn.0047fd20
lea rdi, [rsp + 0x460]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.DIFXAPI.DLL]
mov qword [rdi - 1], rax
mov eax, dword [0x004ad370]
mov dword [rdi + 7], eax
call fcn.004545a0
test eax, eax
je 0x41f738
lea r8, [rsp + 0x460]
lea rdx, str.szDifxTempPath___s_n
lea rcx, [rsp + 0x40]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x40]
call fcn.004548a0
lea rdx, [rsp + 0x460]
lea rcx, [rsp + 0x20]
call fcn.004217a0
test eax, eax
je 0x41f77d
mov esi, 1
test rbx, rbx
je 0x41f77d
lea rcx, [rsp + 0x460]
lea rax, [rsp + 0x460]
sub rbx, rax
nop
nop
movzx eax, byte [rcx]
mov byte [rbx + rcx], al
inc rcx
test al, al
jne 0x41f770
call fcn.004545a0
test eax, eax
je 0x41f802
mov r8d, esi
lea rdx, str.CDIFxUninstall::IsDifxCase_:_bRetVal___d_n
lea rcx, [rsp + 0x40]
call fcn.00486850
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x250], rdx
lea rdi, [rsp + 0x250]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x40]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x41f7d0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x250]
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
nop
lea rcx, [rsp + 0x28]
call fcn.0049b1dc
mov eax, esi
mov rbx, qword [rsp + 0x580]
mov rsi, qword [rsp + 0x578]
mov rdi, qword [rsp + 0x570]
add rsp, 0x588
ret