Function at 0x41e570
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x488
mov qword [rsp + 0x480], rbx
mov qword [rsp + 0x478], rbp
mov qword [rsp + 0x470], rsi
mov qword [rsp + 0x468], rdi
mov rbx, rdx
mov rbp, rcx
mov qword [rsp + 0x30], 0xfffffffffffffffe
call fcn.004545a0
test eax, eax
je 0x41e621
xor r8d, r8d
lea rdx, str.CDIFxInstall_::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
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x41e5f0
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 0x41e642
cmp eax, 0xc
jne 0x41e7f4
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 0x41e6e3
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 0x41e732
mov esi, 1
test rbx, rbx
je 0x41e7f4
lea rcx, [rsp + 0x140]
lea rax, [rsp + 0x140]
sub rbx, rax
nop
nop
movzx eax, byte [rcx]
mov byte [rbx + rcx], al
inc rcx
test al, al
jne 0x41e720
jmp 0x41e7f4
xor edx, edx
lea rcx, [rsp + 0x350]
call fcn.0047fc70
mov rdx, qword [rbp]
mov edx, dword [rdx - 8]
mov rcx, rbp
call fcn.0049b550
mov r11, rax
lea rdi, [rsp + 0x350]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor edx, edx
nop
nop
movzx ecx, byte [r11 + rdx]
mov byte [rdi + rdx - 1], cl
inc rdx
test cl, cl
jne 0x41e770
call fcn.004545a0
test eax, eax
je 0x41e7b4
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 0x41e7f4
mov esi, 1
test rbx, rbx
je 0x41e7f4
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 0x41e7e7
call fcn.004545a0
test eax, eax
je 0x41e872
mov r8d, esi
lea rdx, str.CDIFxInstall::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
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x41e840
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 + 0x480]
mov rbp, qword [rsp + 0x478]
mov rsi, qword [rsp + 0x470]
mov rdi, qword [rsp + 0x468]
add rsp, 0x488
ret