Function at 0x47e85c
Capabilities:
Check if file exists
Query environment variable

Disassembly:
push 0x2c
mov eax, 0x5cf475
call fcn.00506dc7
and dword [ebp - 0x38], 0
and dword [ebp - 4], 0
call fcn.0041279d
push eax
lea ecx, [ebp - 0x14]
call fcn.00411d94
mov ebx, 0x5f1b30
mov byte [ebp - 4], 1
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00413f09
push 2
pop eax
push ebx
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], al
call fcn.00413f09
push 0x208
mov byte [ebp - 4], 3
call fcn.00506f2d
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov esi, eax
mov dword [esp], 0x104
push esi
push str.path
call ebx
mov edi, eax
test edi, edi
jne 0x47e8dc
mov ecx, dword [ebp + 8]
push 0x5f1b30
call fcn.00413f09
jmp 0x47ebd2
cmp edi, 0x104
jb 0x47e90d
push esi
call fcn.00506f36
xor ecx, ecx
mov eax, edi
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00506f2d
pop ecx
pop ecx
push edi
mov esi, eax
push esi
push str.path
call ebx
push esi
lea eax, [ebp - 0x1c]
push 0x5f1ce0
push eax
call fcn.00412690
push esi
call fcn.00506f36
add esp, 0x10
lea ecx, [ebp - 0x1c]
xor edi, edi
mov ebx, 0x60e828
push edi
push ebx
call fcn.0042ea61
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0043189c
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.00411f3a
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 3
lea ecx, [ecx - 0x10]
call fcn.00412ac4
push edi
push ebx
lea ecx, [ebp - 0x1c]
call fcn.0042ea61
inc eax
lea ecx, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0043198c
push 1
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x14]
call fcn.00434d0c
mov esi, 0x5f1b04
mov byte [ebp - 4], 6
push esi
mov ecx, eax
call fcn.0042e677
mov ecx, dword [ebp - 0x20]
mov ebx, eax
neg ebx
mov byte [ebp - 4], 5
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00412ac4
add bl, 1
je 0x47e9da
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043910d
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 7
call fcn.00411f3a
mov ecx, dword [ebp - 0x20]
jmp 0x47ea18
push esi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0042dfbd
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043910d
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 9
call fcn.00411f3a
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
mov byte [ebp - 4], 5
call fcn.00412ac4
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
jmp 0x47eb95
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
push eax
call fcn.00412393
mov esi, dword [ebp + 8]
add eax, 0x10
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [esi], eax
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00412ac4
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00412ac4
mov eax, esi
jmp 0x47ec01
push edi
push ebx
lea ecx, [ebp - 0x18]
call fcn.0042ea61
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043189c
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xa
call fcn.00411f3a
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 5
lea ecx, [ecx - 0x10]
call fcn.00412ac4
push edi
push ebx
lea ecx, [ebp - 0x18]
call fcn.0042ea61
inc eax
lea ecx, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043198c
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xb
call fcn.00411f3a
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 5
lea ecx, [ecx - 0x10]
call fcn.00412ac4
push 1
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x14]
call fcn.00434d0c
push 0x5f1b04
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.0042e677
mov ecx, dword [ebp - 0x28]
mov ebx, eax
neg ebx
mov byte [ebp - 4], 5
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00412ac4
add bl, 1
je 0x47eb47
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0043910d
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xd
call fcn.00411f3a
mov ecx, dword [ebp - 0x2c]
jmp 0x47eb89
push 0x5f1b04
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0042dfbd
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0043910d
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xf
call fcn.00411f3a
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
mov byte [ebp - 4], 5
call fcn.00412ac4
push dword [ebp - 0x10]
call esi
test eax, eax
jne 0x47ea2f
push edi
mov ebx, 0x60e828
lea ecx, [ebp - 0x18]
push ebx
call fcn.0042ea61
cmp eax, 0xffffffff
jne 0x47ea82
mov ecx, dword [ebp + 8]
push 0x5f1b30
call fcn.00413f09
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00412ac4
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00412ac4
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00412ac4
mov eax, dword [ebp + 8]
call fcn.00506d90
ret 8