Function at 0x411420
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x451084]
xor eax, ebp
mov dword [ebp - 4], eax
push str.commonappdata
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x4114c4
push 0
push 0x23
lea eax, [ebp - 0x130]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
cmp eax, 1
jne 0x411484
lea ecx, [ebp - 0x130]
push ecx
push str.commonappdata
push edi
mov eax, esi
call fcn.00411350
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.xstr_get_real_path__SHGetSpecialFolderPathA__u_n
push 0x203
push 0x444ed5
push 0x191f03
mov edx, str....._src_saturnxstring.cpp
mov ecx, 0x444ed5
call fcn.0040dd10
add esp, 0x14
mov eax, 0xffffffeb
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
push str.tmp
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x41156b
lea edx, [ebp - 0x130]
push edx
push pe_nt_image_headers32
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x41152b
cmp byte [ebp + eax - 0x131], 0x5c
lea eax, [ebp + eax - 0x131]
jne 0x411504
mov byte [eax], 0
lea eax, [ebp - 0x130]
push eax
push str.tmp
push edi
mov eax, esi
call fcn.00411350
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.xstr_get_real_path__GetTempPathA__u_n
push 0x213
push 0x444ed5
push 0x191f03
mov edx, str....._src_saturnxstring.cpp
mov ecx, 0x444ed5
call fcn.0040dd10
add esp, 0x14
mov eax, 0xffffffeb
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
push str.locallow
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x411636
push 0
push 0x1c
lea ecx, [ebp - 0x130]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
cmp eax, 1
jne 0x4115f6
lea edx, [ebp - 0x130]
push str.Local
push edx
call fcn.00431390
add esp, 8
test eax, eax
je 0x41186a
mov ecx, dword [str.LocalLow]
mov dword [eax], ecx
mov edx, dword [0x447610]
mov dword [eax + 4], edx
mov cl, byte [0x447614]
lea edx, [ebp - 0x130]
push edx
mov byte [eax + 8], cl
push str.locallow
push edi
mov eax, esi
call fcn.00411350
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.xstr_get_real_path__SHGetSpecialFolderPathA__u_n
push 0x227
push 0x444ed5
push 0x191f03
mov edx, str....._src_saturnxstring.cpp
mov ecx, 0x444ed5
call fcn.0040dd10
add esp, 0x14
mov eax, 0xffffffeb
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
push str.pf32
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x4116d6
push str.SystemDrive
call fcn.00431a3a
add esp, 4
test eax, eax
je 0x411671
cmp byte [eax], 0
je 0x411671
lea edx, [ebp - 0xc]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x411667
call fcn.0040d6a0
cmp eax, 1
jne 0x411692
lea eax, [ebp - 0xc]
push eax
push str._sProgram_Files__x86__
push pe_nt_image_headers32
lea ecx, [ebp - 0x130]
push ecx
jmp 0x4116a7
lea edx, [ebp - 0xc]
push edx
push str._sProgram_Files_
push pe_nt_image_headers32
lea eax, [ebp - 0x130]
push eax
call fcn.004224b8
add esp, 0x10
lea ecx, [ebp - 0x130]
push ecx
push str.pf32
push edi
mov eax, esi
call fcn.00411350
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
call fcn.0040d6a0
cmp eax, 1
jne 0x4117c0
push str.pf64
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x411752
push str.SystemDrive
call fcn.00431a3a
add esp, 4
test eax, eax
je 0x411711
mov ecx, eax
lea eax, [ebp - 0xc]
call fcn.0040d6d0
lea edx, [ebp - 0xc]
push edx
push str._sProgram_Files_
lea eax, [ebp - 0x130]
push pe_nt_image_headers32
push eax
call fcn.004224b8
lea ecx, [ebp - 0x130]
push ecx
push str.pf64
push edi
mov eax, esi
call fcn.00411350
add esp, 0x1c
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
push str.sys64
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x4117c0
push str.SystemRoot
call fcn.00431a3a
add esp, 4
test eax, eax
je 0x41177f
mov ecx, eax
lea eax, [ebp - 0x2c]
call fcn.0040d6d0
lea edx, [ebp - 0x2c]
push edx
push str._s_sysnative_
lea eax, [ebp - 0x130]
push pe_nt_image_headers32
push eax
call fcn.004224b8
lea ecx, [ebp - 0x130]
push ecx
push str.sys64
push edi
mov eax, esi
call fcn.00411350
add esp, 0x1c
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
push str.sys32
push esi
call fcn.00431390
add esp, 8
test eax, eax
je 0x411856
push str.SystemRoot
call fcn.00431a3a
add esp, 4
test eax, eax
je 0x4117f1
mov ecx, eax
lea eax, [ebp - 0x2c]
call fcn.0040d6d0
call fcn.0040d6a0
cmp eax, 1
jne 0x411812
lea edx, [ebp - 0x2c]
push edx
push str._sSysWOW64_
push pe_nt_image_headers32
lea eax, [ebp - 0x130]
push eax
jmp 0x411827
lea ecx, [ebp - 0x2c]
push ecx
push str._sSystem32_
push pe_nt_image_headers32
lea edx, [ebp - 0x130]
push edx
call fcn.004224b8
add esp, 0x10
lea eax, [ebp - 0x130]
push eax
push str.sys32
push edi
mov eax, esi
call fcn.00411350
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421cf1
mov esp, ebp
pop ebp
ret
mov edx, edi
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x411860
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
call fcn.00421cf1
mov esp, ebp
pop ebp
ret