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

Disassembly:
push 0x14
mov eax, 0x1004b007
call fcn.10026ad1
mov dword [ebp - 0x14], ecx
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x10]
call fcn.100014de
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.100014de
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], 1
cmp dword [eax + 0x28], 0
jne 0x10002edf
add eax, 0x34
mov ecx, ebx
push eax
call fcn.100015cc
push ebx
mov ecx, 0x10063f2c
call fcn.1000b8a0
jmp 0x1000319f
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.1000276c
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.10004100
pop ecx
test eax, eax
je 0x10002ff8
push edi
lea ecx, [ebp - 0x10]
call fcn.100015cc
lea ecx, [ebp + 0xc]
call fcn.100014de
mov ecx, dword [ebp - 0x14]
xor esi, esi
mov byte [ebp - 4], 2
mov eax, dword [ecx]
cmp dword [eax + 0x18], esi
jne 0x10002f44
lea eax, [ebp - 0x18]
push eax
call fcn.1000bb95
pop ecx
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 3
call fcn.100015cc
jmp 0x10002f87
lea eax, [ecx + 4]
push eax
lea ecx, [ebp + 0xc]
call fcn.100015cc
push esi
push dword [ebp + 0xc]
call fcn.100282ea
test eax, eax
je 0x10002f96
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp - 0x18]
call fcn.100013dd
push 0x24d
push dword [eax]
mov byte [ebp - 4], 4
push esi
push dword [ebp + 0xc]
call fcn.100282ea
push eax
call fcn.10016f97
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.10005120
mov esi, dword [ebp - 0x10]
push esi
push str.downloading__s
call fcn.10017276
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.1000276c
add eax, 0x10
pop ecx
mov dword [edi], eax
call fcn.1000294e
pop ecx
pop ecx
test eax, eax
je 0x10002fd6
push 0
push esi
push eax
call fcn.10016f97
add esp, 0xc
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0xc]
add ecx, 0x14
push eax
push dword [ecx + 8]
call fcn.1001a14c
lea eax, [ebp + 0xc]
mov ecx, ebx
push eax
call fcn.100015cc
jmp 0x1000317c
push ecx
mov esi, esp
mov dword [ebp - 0x20], esi
mov eax, dword [edi]
sub eax, 0x10
push eax
call fcn.1000276c
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.1000415a
pop ecx
push edi
test eax, eax
je 0x1000318d
lea ecx, [ebp - 0x10]
call fcn.100015cc
mov edi, 0x104
mov ecx, ebx
push edi
call fcn.10004f08
push edi
mov ecx, ebx
mov esi, eax
call fcn.10005677
push edi
push esi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0xffffffffffffffff
mov ecx, ebx
call fcn.10005138
push dword [0x10063f1c]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x10003097
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp - 0x20]
call fcn.100013dd
push 0x262
push dword [eax]
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.10016f97
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.10005120
push ebx
lea ecx, [ebp - 0x10]
call fcn.100015cc
mov ecx, ebx
call fcn.10002c25
push edi
mov ecx, ebx
call fcn.10004f08
mov esi, 0x104
mov ecx, ebx
push esi
mov edi, eax
call fcn.10005677
push esi
mov esi, dword [ebp - 0x10]
push esi
push edi
call fcn.100383a1
mov edi, dword [ebp - 0x18]
add esp, 0xc
test eax, eax
jne 0x100030e0
push eax
push dword [edi]
push 2
call fcn.10016f97
add esp, 0xc
push 0xffffffffffffffff
mov ecx, ebx
call fcn.10005138
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10003139
push edi
mov ecx, ebx
call fcn.100015cc
push 0x104
mov ecx, ebx
call fcn.10004f08
push 0x104
mov ecx, ebx
mov edi, eax
call fcn.10005677
push 0
push 0
push edi
call dword [sym.imp.SHELL32.dll_PathResolve]
push 0xffffffffffffffff
mov ecx, ebx
call fcn.10005138
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
jmp 0x100031a2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
cmp dword [eax - 0xc], 0
je 0x100031a2
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x100031a2
push str.D:_source_aprelSibSiblSibInstallerInstall.cpp
lea ecx, [ebp + 0xc]
call fcn.100013dd
push 0x279
push dword [eax]
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.10016f97
add esp, 0xc
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.10005120
jmp 0x100031a2
mov ecx, ebx
call fcn.100015cc
push ebx
mov ecx, 0x10063f2c
call fcn.1000bafd
mov esi, dword [ebp - 0x10]
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x100031bb
push eax
push dword [ebx]
push 2
call fcn.10016f97
add esp, 0xc
lea ecx, [esi - 0x10]
call fcn.10005120
mov eax, ebx
call fcn.10026a9f
ret 8