Function at 0x4030f6
Capabilities:
Check if file exists
Query environment variable
Set current directory

Disassembly:
push 0x14
mov eax, 0x455b1f
call fcn.0042794e
mov dword [ebp - 0x14], ecx
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x10]
call fcn.004015de
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.004015de
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], 1
cmp dword [eax + 0x28], 0
jne 0x40314d
add eax, 0x34
mov ecx, ebx
push eax
call fcn.004016cc
push ebx
mov ecx, 0x476234
call fcn.0040bb9a
jmp 0x40340d
push ecx
lea edi, [eax + 0x24]
mov esi, esp
mov dword [ebp - 0x20], esi
mov eax, dword [edi]
sub eax, 0x10
mov dword [ebp - 0x18], edi
push eax
call fcn.004029da
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.0040436e
pop ecx
test eax, eax
je 0x403266
push edi
lea ecx, [ebp - 0x10]
call fcn.004016cc
lea ecx, [ebp + 0xc]
call fcn.004015de
mov ecx, dword [ebp - 0x14]
xor esi, esi
mov byte [ebp - 4], 2
mov eax, dword [ecx]
cmp dword [eax + 0x18], esi
jne 0x4031b2
lea eax, [ebp - 0x18]
push eax
call fcn.0040be8f
pop ecx
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 3
call fcn.004016cc
jmp 0x4031f5
lea eax, [ecx + 4]
push eax
lea ecx, [ebp + 0xc]
call fcn.004016cc
push esi
push dword [ebp + 0xc]
call fcn.00429073
test eax, eax
je 0x403204
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp - 0x18]
call fcn.004014dd
push 0x24d
push dword [eax]
mov byte [ebp - 4], 4
push esi
push dword [ebp + 0xc]
call fcn.00429073
push eax
call fcn.004172ac
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0040538e
mov esi, dword [ebp - 0x10]
push esi
push str.downloading__s
call fcn.004182da
pop ecx
pop ecx
lea eax, [ebp + 0xc]
push eax
push ecx
lea eax, [esi - 0x10]
mov edi, esp
push eax
mov dword [ebp - 0x20], edi
call fcn.004029da
add eax, 0x10
pop ecx
mov dword [edi], eax
call fcn.00402bbc
pop ecx
pop ecx
test eax, eax
je 0x403244
push 0
push esi
push eax
call fcn.004172ac
add esp, 0xc
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0xc]
add ecx, 0x14
push eax
push dword [ecx + 8]
call fcn.0041b7de
lea eax, [ebp + 0xc]
mov ecx, ebx
push eax
call fcn.004016cc
jmp 0x4033ea
push ecx
mov esi, esp
mov dword [ebp - 0x20], esi
mov eax, dword [edi]
sub eax, 0x10
push eax
call fcn.004029da
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.004043c8
pop ecx
push edi
test eax, eax
je 0x4033fb
lea ecx, [ebp - 0x10]
call fcn.004016cc
mov edi, 0x104
mov ecx, ebx
push edi
call fcn.00405176
push edi
mov ecx, ebx
mov esi, eax
call fcn.004058e5
push edi
push esi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0xffffffffffffffff
mov ecx, ebx
call fcn.004053a6
push dword [0x476224]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x403305
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp - 0x20]
call fcn.004014dd
push 0x262
push dword [eax]
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004172ac
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.0040538e
push ebx
lea ecx, [ebp - 0x10]
call fcn.004016cc
mov ecx, ebx
call fcn.00402e93
push edi
mov ecx, ebx
call fcn.00405176
mov esi, 0x104
mov ecx, ebx
push esi
mov edi, eax
call fcn.004058e5
push esi
mov esi, dword [ebp - 0x10]
push esi
push edi
call fcn.0043afc1
mov edi, dword [ebp - 0x18]
add esp, 0xc
test eax, eax
jne 0x40334e
push eax
push dword [edi]
push 2
call fcn.004172ac
add esp, 0xc
push 0xffffffffffffffff
mov ecx, ebx
call fcn.004053a6
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4033a7
push edi
mov ecx, ebx
call fcn.004016cc
push 0x104
mov ecx, ebx
call fcn.00405176
push 0x104
mov ecx, ebx
mov edi, eax
call fcn.004058e5
push 0
push 0
push edi
call dword [sym.imp.SHELL32.dll_PathResolve]
push 0xffffffffffffffff
mov ecx, ebx
call fcn.004053a6
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
jmp 0x403410
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
cmp dword [eax - 0xc], 0
je 0x403410
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x403410
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp + 0xc]
call fcn.004014dd
push 0x279
push dword [eax]
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004172ac
add esp, 0xc
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.0040538e
jmp 0x403410
mov ecx, ebx
call fcn.004016cc
push ebx
mov ecx, 0x476234
call fcn.0040bdf7
mov esi, dword [ebp - 0x10]
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403429
push eax
push dword [ebx]
push 2
call fcn.004172ac
add esp, 0xc
lea ecx, [esi - 0x10]
call fcn.0040538e
mov eax, ebx
call fcn.0042791c
ret 8