Function at 0x405200
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa18
mov eax, dword [0x483ca0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x1ff
lea eax, [ebp - 0x603]
mov byte [ebp - 0xa09], 0
push 0
push eax
mov esi, ecx
mov byte [ebp - 0x604], 0
call fcn.00438b10
lea eax, [ebp - 0x604]
push eax
lea eax, [esi + 0x302c]
push eax
lea eax, [ebp - 0xa09]
push eax
lea ecx, [esi + 0x1e28]
push ecx
lea edx, [esi + 0x1c28]
push edx
lea eax, [esi + 0x1628]
push eax
lea ebx, [esi + 0x1a28]
push ebx
lea eax, [esi + 0x101c]
push eax
lea edi, [esi + 0xe1c]
lea eax, [esi + 0x21c]
push edi
push eax
call fcn.0040c8b0
lea ebx, [esi + 0x2029]
mov dword [ebp - 0xa08], 0
push str.__called_by_downloader
push ebx
mov dword [ebp - 0xa14], 0
call fcn.00439380
add esp, 0x3c
test eax, eax
je 0x4053d9
lea eax, [ebp - 0xa04]
mov byte [esi + 0x3029], 1
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x200
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0xa04]
push eax
call fcn.0040f9f0
lea ecx, [ebp - 0x404]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4052f1
sub ecx, edx
je 0x40531a
cmp byte [ebp + ecx - 0x405], 0x5c
jne 0x40531a
dec ecx
cmp ecx, 0x200
jae 0x40563e
mov byte [ebp + ecx - 0x404], al
push str.rsp1024hcmd.txt
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x204]
push 0x461410
push eax
call fcn.0043a459
lea eax, [ebp - 0xa08]
push eax
lea eax, [ebp - 0xa14]
push eax
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.0040d6b0
add esp, 0x20
test al, al
je 0x40539b
mov ecx, dword [ebp - 0xa08]
mov eax, dword [ebp - 0xa14]
mov byte [eax + ecx], 0
mov ecx, esi
push dword [ebp - 0xa08]
call fcn.00408a10
push dword [ebp - 0xa08]
call fcn.004167f4
lea eax, [ebp - 0x204]
push eax
push str.Read_from_sCommandParameterFile__s
push 0x18b
jmp 0x40549d
lea eax, [ebp - 0x204]
push eax
push str.failed_to_load__s
push 0x18f
push str.SetupHandler.cpp
push 0
push str.SetupHandler::InitializeSetup
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x1c
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004396df
mov esp, ebp
pop ebp
ret
push str.__called_by_client_to_sync
push ebx
call fcn.00439380
add esp, 8
test eax, eax
je 0x4054b7
push str.rsp1024hcmd.txt
push 0x4613f0
push edi
lea eax, [ebp - 0x204]
mov byte [esi + 0x3029], 1
push str._s_s_s
push eax
call fcn.0043a459
lea eax, [ebp - 0x204]
push eax
push str.sCommandParameterFile___s
push 0x198
push str.SetupHandler.cpp
push 0
push str.SetupHandler::InitializeSetup
push dword [0x4868e8]
call fcn.0040a4c0
lea eax, [ebp - 0xa08]
push eax
lea eax, [ebp - 0xa14]
push eax
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.0040d6b0
add esp, 0x40
test al, al
je 0x405628
mov ecx, dword [ebp - 0xa08]
mov eax, dword [ebp - 0xa14]
mov byte [eax + ecx], 0
mov ecx, esi
push dword [ebp - 0xa08]
call fcn.00408a10
push dword [ebp - 0xa08]
call fcn.004167f4
lea eax, [ebp - 0x204]
push eax
push str.Read_from_sCommandParameterFile___s
push 0x1a1
push str.SetupHandler.cpp
push 0
push str.SetupHandler::InitializeSetup
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x20
cmp byte [esi + 0x3029], 0
je 0x405615
push str.TMServiceCache.txt
push 0x4613f0
push edi
lea eax, [ebp - 0x404]
mov byte [esi + 0x41c], 0
push str._s_s_s
push eax
mov dword [ebp - 0xa10], 0
mov dword [ebp - 0xa18], 0
call fcn.0043a459
lea eax, [ebp - 0x404]
push eax
push str.Refine_directory_by__s
push 0x1b5
push str.SetupHandler.cpp
push 0
push str.SetupHandler::InitializeSetup
push dword [0x4868e8]
call fcn.0040a4c0
lea eax, [ebp - 0xa10]
push eax
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x404]
push 0x200
push eax
call fcn.0040d6b0
mov ecx, dword [ebp - 0xa10]
add esp, 0x40
test ecx, ecx
je 0x4055f2
mov eax, dword [ebp - 0xa18]
mov byte [eax + ecx], 0
lea eax, [esi + 0x1a28]
push eax
push str.____USER_APPLICATION_DIRECTORY___
push str.___USER_APPLICATION_DIRECTORY___
push dword [ebp - 0xa10]
call fcn.0040c820
lea ebx, [esi + 0x1e28]
push ebx
push str.____DESKTOP_DIRECTORY___
push str.___DESKTOP_DIRECTORY___
push dword [ebp - 0xa10]
call fcn.0040c820
lea eax, [esi + 0x1c28]
push eax
push str.____START_MENUE_DIRECTORY___
push str.___START_MENUE_DIRECTORY___
push dword [ebp - 0xa10]
call fcn.0040c820
lea eax, [esi + 0x1c28]
push eax
push ebx
lea eax, [esi + 0x1a28]
push eax
push str.Refined_directories:__m_sUserApplicationDirectory___s__m_sDesktopDirectory___s__m_sStartMenuDirectory___s
push 0x1c0
push str.SetupHandler.cpp
push 0
push str.SetupHandler::InitializeSetup
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x54
push dword [ebp - 0xa10]
call fcn.004167f4
add esp, 4
push 0x4613f0
push edi
lea eax, [esi + 0x121c]
push 0x461410
push eax
call fcn.0043a459
add esp, 0x10
mov word [esi + 0x302a], 1
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004396df
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x204]
push eax
push str.failed_to_load__s
push 0x1a5
jmp 0x4053ac
call fcn.004383dd
int3