Function at 0x415890
Capabilities:
Get common file path
Identify system language via api
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4ac
mov eax, dword [0x4713e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x4a4], 0
push 0x80
lea eax, [ebp - 0x284]
push eax
push 1
mov ecx, dword [0x5ada44]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4158ef
push 0x80
push str.NEUTRAL
lea edx, [ebp - 0x284]
push edx
call fcn.00414070
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov word [ebp - 0x4a8], ax
lea eax, [ebp - 0x494]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0
lea ecx, [ebp - 0x4a4]
push ecx
lea edx, [ebp - 0x4a0]
push edx
push 0
call fcn.00424dc0
add esp, 0x10
mov eax, dword [ebp - 0x4a4]
and eax, 0xffff
movzx ecx, ax
push ecx
mov edx, dword [ebp - 0x4a4]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
push eax
mov ecx, dword [ebp - 0x4a0]
and ecx, 0xffff
movzx edx, cx
push edx
mov eax, dword [ebp - 0x4a0]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
push ecx
push str.STP_STPVERS__05u._05u._05u._05u
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00418fd0
add esp, 0x1c
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.STP_STPCPID__08x
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00418fd0
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_WINDIR_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push 0x12c
mov edx, dword [ebp - 0x498]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_SYSWINDIR_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push 0x12c
mov edx, dword [ebp - 0x498]
push edx
call fcn.0041bca0
add esp, 8
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_SYSDIR_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push 0x12c
mov edx, dword [ebp - 0x498]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_TMPDIR_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push str.TEMP
call fcn.00439775
add esp, 4
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x49c], 0
jne 0x415c58
push 0x468628
call fcn.00439775
add esp, 4
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x49c], 0
jne 0x415c58
mov dword [ebp - 0x49c], 0x46862c
mov edx, dword [ebp - 0x49c]
push edx
mov eax, dword [ebp - 0x498]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_STPDIR_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
push 0x12c
mov eax, dword [ebp - 0x498]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.0043a8c0
add esp, 8
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x49c], 0
je 0x415d25
mov edx, dword [ebp - 0x49c]
mov byte [edx], 0
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_STPNAME_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push 0x12c
mov edx, dword [ebp - 0x498]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x200
lea eax, [ebp - 0x484]
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea edx, [ebp - 0x484]
push edx
mov eax, dword [ebp - 0x498]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_CURDIR_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
mov eax, dword [ebp - 0x498]
push eax
push 0x12c
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_DATE_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
movzx eax, word [ebp - 0x48e]
push eax
movzx ecx, word [ebp - 0x492]
push ecx
movzx edx, word [ebp - 0x494]
push edx
push 0x46866c
mov eax, dword [ebp - 0x498]
push eax
call fcn.00439aa0
add esp, 0x14
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_TIME_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
movzx eax, word [ebp - 0x488]
push eax
movzx ecx, word [ebp - 0x48a]
push ecx
movzx edx, word [ebp - 0x48c]
push edx
push 0x468688
mov eax, dword [ebp - 0x498]
push eax
call fcn.00439aa0
add esp, 0x14
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_NICETIME_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
push 0x12c
lea eax, [ebp - 0x494]
push eax
call fcn.00419550
add esp, 4
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.00414070
add esp, 0xc
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x24
lea eax, [ebp - 0x204]
push eax
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x498]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x498]
push edx
call fcn.004392f0
add esp, 8
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push str.STP_OSLANG_
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x204]
push edx
call fcn.004393f0
add esp, 4
lea eax, [ebp + eax - 0x204]
mov dword [ebp - 0x498], eax
movzx ecx, word [ebp - 0x4a8]
push ecx
push str._04x
mov edx, dword [ebp - 0x498]
push edx
call fcn.00439aa0
add esp, 0xc
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push str.STP_RESLANG_
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x204]
push eax
call fcn.004393f0
add esp, 4
lea ecx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], ecx
push 0x12c
lea edx, [ebp - 0x284]
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.00414070
add esp, 0xc
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x4686d0
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
push 0x12c
push 0x5ace20
mov eax, dword [ebp - 0x498]
push eax
call fcn.00414070
add esp, 0xc
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x4686e0
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
push 0x12c
push 0x5ad220
mov eax, dword [ebp - 0x498]
push eax
call fcn.00414070
add esp, 0xc
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_WOW64_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
push 0x12c
push 0x4686fc
mov eax, dword [ebp - 0x498]
push eax
call fcn.00414070
add esp, 0xc
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
push 0x24
lea edx, [ebp - 0x204]
push edx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x498]
add eax, 1
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.004392f0
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push str.STP_RUNONWOW64_
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x204]
push ecx
call fcn.004393f0
add esp, 4
lea edx, [ebp + eax - 0x204]
mov dword [ebp - 0x498], edx
cmp dword [0x4677e8], 0
je 0x4163df
mov dword [ebp - 0x4ac], 0x468714
jmp 0x4163e9
mov dword [ebp - 0x4ac], 0x468718
push 0x12c
mov eax, dword [ebp - 0x4ac]
push eax
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.00414070
add esp, 0xc
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x24
lea eax, [ebp - 0x204]
push eax
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x498]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x498]
push edx
call fcn.004392f0
add esp, 8
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x200
lea ecx, [ebp - 0x204]
push ecx
push str.PACK_BUILD1900
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x416680
lea edx, [ebp - 0x494]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.004396d4
add esp, 4
push eax
call fcn.00428e60
add esp, 8
push str.STP_PACKDATE_
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x204]
push edx
call fcn.004393f0
add esp, 4
lea eax, [ebp + eax - 0x204]
mov dword [ebp - 0x498], eax
movzx ecx, word [ebp - 0x48e]
push ecx
movzx edx, word [ebp - 0x492]
push edx
movzx eax, word [ebp - 0x494]
push eax
push str._04u_02u_02u
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.00439aa0
add esp, 0x14
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x24
lea eax, [ebp - 0x204]
push eax
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x498]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x498]
push edx
call fcn.004392f0
add esp, 8
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push str.STP_PACKTIME_
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x204]
push edx
call fcn.004393f0
add esp, 4
lea eax, [ebp + eax - 0x204]
mov dword [ebp - 0x498], eax
movzx ecx, word [ebp - 0x488]
push ecx
movzx edx, word [ebp - 0x48a]
push edx
movzx eax, word [ebp - 0x48c]
push eax
push str._02u_02u_02u
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.00439aa0
add esp, 0x14
lea edx, [ebp - 0x204]
push edx
call fcn.00451a10
add esp, 4
push 0x24
lea eax, [ebp - 0x204]
push eax
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x498]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x498]
push edx
call fcn.004392f0
add esp, 8
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push str.STP_PACKNICETIME_
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x204]
push edx
call fcn.004393f0
add esp, 4
lea eax, [ebp + eax - 0x204]
mov dword [ebp - 0x498], eax
push 0x12c
lea ecx, [ebp - 0x494]
push ecx
call fcn.00419550
add esp, 4
push eax
mov edx, dword [ebp - 0x498]
push edx
call fcn.00414070
add esp, 0xc
lea eax, [ebp - 0x204]
push eax
call fcn.00451a10
add esp, 4
push 0x24
lea ecx, [ebp - 0x204]
push ecx
call fcn.00439480
add esp, 8
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
add edx, 1
push edx
mov eax, dword [ebp - 0x498]
push eax
call fcn.004392f0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call fcn.00451a10
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00439b24
mov esp, ebp
pop ebp
ret