Function at 0x402dd3
Capabilities:
Check if file exists
Get common file path

Disassembly:
jmp 0x40743e
push ebp
lea ebp, [esp - 0x19f8]
mov eax, 0x1a78
call fcn.004250e0
mov eax, dword [0x46c134]
xor eax, ebp
mov dword [ebp + 0x19f4], eax
mov eax, dword [ebp + 0x1a04]
push ebx
push esi
mov esi, dword [ebp + 0x1a00]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x80], eax
call fcn.00402dce
cmp eax, 1
jne 0x407485
xor eax, eax
jmp 0x407848
push edi
xor edi, edi
cmp esi, edi
je 0x407842
cmp word [esi], di
je 0x407842
xor eax, eax
mov ebx, 0x206
push ebx
mov word [ebp + 0x15e4], ax
lea eax, [ebp + 0x15e6]
push edi
push eax
call fcn.004246b0
xor eax, eax
push ebx
mov word [ebp + 0x17ec], ax
lea eax, [ebp + 0x17ee]
push edi
push eax
call fcn.004246b0
xor eax, eax
mov esi, 0x40e
push esi
mov word [ebp + 0xdc4], ax
lea eax, [ebp + 0xdc6]
push edi
push eax
call fcn.004246b0
xor eax, eax
push esi
mov word [ebp + 0x11d4], ax
lea eax, [ebp + 0x11d6]
push edi
push eax
call fcn.004246b0
xor eax, eax
push esi
mov word [ebp + 0x39c], ax
lea eax, [ebp + 0x39e]
push edi
push eax
call fcn.004246b0
xor eax, eax
push esi
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x72]
push edi
push eax
call fcn.004246b0
mov ecx, dword [ebp - 0x78]
add esp, 0x48
call fcn.00401785
mov esi, dword [0x470a40]
push edi
test eax, eax
je 0x4075a2
push edi
lea eax, [ebp + 0x15e4]
push eax
push edi
call esi
test eax, eax
je 0x40783b
push edi
push 2
lea eax, [ebp + 0xdc4]
push eax
push edi
call esi
test eax, eax
je 0x40783b
lea eax, [ebp + 0x15e4]
push eax
lea eax, [ebp + 0x17ec]
push eax
call fcn.00424c47
lea eax, [ebp + 0x17ec]
push 0x5c
push eax
call fcn.0042472a
xor ecx, ecx
mov word [eax + 2], cx
lea eax, [ebp + 0x17ec]
push str.All_UsersDesktop
push eax
call fcn.00424c19
add esp, 0x18
jmp 0x4075f5
push 0x19
lea eax, [ebp + 0x17ec]
push eax
push edi
call esi
test eax, eax
je 0x40783b
push edi
push 0x17
lea eax, [ebp + 0x11d4]
push eax
push edi
call esi
test eax, eax
je 0x40783b
push edi
push 0x10
lea eax, [ebp + 0x15e4]
push eax
push edi
call esi
test eax, eax
je 0x40783b
push edi
push 2
lea eax, [ebp + 0xdc4]
push eax
push edi
call esi
test eax, eax
je 0x40783b
mov esi, 0x45afcc
lea eax, [ebp + 0x15e4]
push esi
push eax
call fcn.00424c19
lea eax, [ebp + 0xdc4]
push esi
push eax
call fcn.00424c19
lea eax, [ebp + 0x17ec]
push esi
push eax
call fcn.00424c19
lea eax, [ebp + 0x11d4]
push 0x45af78
push eax
call fcn.00425760
add esp, 0x20
test eax, eax
je 0x407648
lea eax, [ebp + 0x11d4]
push esi
push eax
call fcn.00424c19
pop ecx
pop ecx
push str.startmenu
push dword [ebp - 0x7c]
call fcn.00424b86
pop ecx
pop ecx
test eax, eax
jne 0x4077fc
push ebx
mov word [ebp + 0x9b4], ax
lea eax, [ebp + 0x9b6]
push edi
push eax
call fcn.004246b0
xor eax, eax
push ebx
mov word [ebp + 0x7ac], ax
lea eax, [ebp + 0x7ae]
push edi
push eax
call fcn.004246b0
lea eax, [ebp + 0xdc4]
push eax
lea eax, [ebp + 0x9b4]
push eax
call fcn.00424c47
lea eax, [ebp + 0x11d4]
push 0x45af78
push eax
call fcn.00425760
add esp, 0x28
test eax, eax
je 0x4077c6
lea eax, [ebp + 0x11d4]
push eax
lea eax, [ebp + 0x7ac]
push eax
call fcn.00424c47
pop ecx
pop ecx
mov esi, 0x104
push esi
lea eax, [ebp - 0x74]
push eax
push 1
push edi
push 2
call fcn.00401d57
test eax, eax
jl 0x407792
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x39c]
push eax
call fcn.00424c47
lea eax, [ebp + 0x39c]
push 0x5c
push eax
call fcn.0042472a
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp + 0x39c]
push str.utilityinstall.ini
push eax
call fcn.00424c19
mov eax, dword [ebp - 0x80]
add esp, 0x18
cmp eax, edi
je 0x40772e
cmp word [eax], di
jne 0x407783
lea eax, [ebp + 0x39c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x407792
xor eax, eax
push ebx
mov word [ebp + 0xbbc], ax
lea eax, [ebp + 0xbbe]
push edi
push eax
call fcn.004246b0
add esp, 0xc
lea eax, [ebp + 0x39c]
push eax
push esi
lea eax, [ebp + 0xbbc]
push eax
push 0x45af78
push str.startmenudir
push str.installinfo
call dword [0x4708cc]
lea eax, [ebp + 0xbbc]
push eax
lea eax, [ebp + 0x11d4]
push eax
call fcn.00424c19
pop ecx
pop ecx
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0x11d4]
push eax
call fcn.0040277f
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0x11d4]
push eax
call fcn.004022ed
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0x11d4]
push eax
lea eax, [ebp + 0x7ac]
push eax
call fcn.0040105a
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0xdc4]
push eax
call fcn.0040277f
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0xdc4]
push eax
call fcn.004022ed
mov ecx, dword [ebp - 0x78]
lea eax, [ebp + 0xdc4]
push eax
lea eax, [ebp + 0x9b4]
push eax
call fcn.0040105a
jmp 0x407837
mov esi, dword [ebp - 0x78]
lea eax, [ebp + 0x15e4]
push eax
mov ecx, esi
call fcn.0040277f
lea eax, [ebp + 0x17ec]
push eax
mov ecx, esi
call fcn.0040277f
lea eax, [ebp + 0x15e4]
push eax
mov ecx, esi
call fcn.004013c5
lea eax, [ebp + 0x17ec]
push eax
mov ecx, esi
call fcn.004013c5
xor eax, eax
jmp 0x407847
mov eax, 0x80004005
jmp 0x407847
mov eax, 0x80070057
pop edi
mov ecx, dword [ebp + 0x19f4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004246a0
add ebp, 0x19f8
leave
ret 0xc