Function at 0x42f190
Capabilities:
Get common file path
Query environment variable

Disassembly:
sub esp, 0x404
push edi
mov edi, ecx
cmp dword [edi + 4], 0
jne 0x42f1b4
push 0x45a
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
add esp, 0x404
ret
cmp dword [edi + 0x10], 0
je 0x42f1c7
mov eax, 1
pop edi
add esp, 0x404
ret
push ebx
push esi
xor esi, esi
test byte [edi + 0x18], 0x10
je 0x42f483
push 0x1000
call fcn.0043f7e7
mov esi, eax
add esp, 4
test esi, esi
jne 0x42f1fc
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0x404
ret
mov byte [esi], 0
mov eax, dword [edi + 0x14]
test eax, eax
je 0x42f225
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x18
push 0x48a32c
push 0x1000
push esi
call fcn.00443ddb
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x42f277
lea eax, [esp + 0x10]
mov byte [esp + 0x40f], 0
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x18
push 0x400
lea eax, [esp + 0x14]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x42f30e
lea ecx, [esp + 0x10]
mov byte [esp + 0x40f], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42f2a0
sub ecx, edx
lea eax, [esp + ecx + 0xf]
lea ecx, [esp + 0x10]
cmp eax, ecx
jb 0x42f2d4
mov cl, byte [eax]
cmp cl, 0x5c
je 0x42f2d1
cmp cl, 0x2f
je 0x42f2d1
cmp cl, 0x3a
je 0x42f2d1
dec eax
lea ecx, [esp + 0x10]
cmp eax, ecx
jae 0x42f2b5
jmp 0x42f2d4
mov byte [eax], 0
lea ecx, [esp + 0x10]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42f2e0
sub ecx, edx
je 0x42f30e
lea eax, [esp + 0x10]
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x18
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
lea eax, [esp + 0x10]
push 0x400
push eax
push str._NT_SYMBOL_PATH
call ebx
test eax, eax
je 0x42f354
lea eax, [esp + 0x10]
mov byte [esp + 0x40f], 0
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x18
push 0x400
lea eax, [esp + 0x14]
push eax
push str._NT_ALTERNATE_SYMBOL_PATH
call ebx
test eax, eax
je 0x42f394
lea eax, [esp + 0x10]
mov byte [esp + 0x40f], 0
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x18
push 0x400
lea eax, [esp + 0x14]
push eax
push str.SYSTEMROOT
call ebx
test eax, eax
je 0x42f408
lea eax, [esp + 0x10]
mov byte [esp + 0x40f], 0
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
push str._system32
lea eax, [esp + 0x2c]
push 0x400
push eax
call fcn.00443ddb
lea eax, [esp + 0x34]
push eax
push 0x1000
push esi
call fcn.00443ddb
push 0x486610
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x3c
test byte [edi + 0x18], 0x10
je 0x42f483
push 0x400
lea eax, [esp + 0x14]
push eax
push str.SYSTEMDRIVE
call ebx
test eax, eax
je 0x42f470
push str.SRV
push 0x1000
push esi
mov byte [esp + 0x41b], 0
call fcn.00443ddb
lea eax, [esp + 0x1c]
push eax
push 0x1000
push esi
call fcn.00443ddb
push str.websymbols
push 0x1000
push esi
call fcn.00443ddb
push str.http:__msdl.microsoft.com_download_symbols_
push 0x1000
push esi
call fcn.00443ddb
add esp, 0x30
jmp 0x42f483
push str.SRVc:websymbolshttp:__msdl.microsoft.com_download_symbols_
push 0x1000
push esi
call fcn.00443ddb
add esp, 0xc
mov ecx, dword [edi + 4]
push esi
call fcn.0042ebf0
mov ebx, eax
test esi, esi
je 0x42f49b
push esi
call fcn.0043f7e2
add esp, 4
test ebx, ebx
jne 0x42f4c5
mov eax, dword [edi]
mov ecx, edi
push ebx
push ebx
push ebx
push str.Error_while_initializing_dbghelp.dll
call dword [eax + 0x10]
push 0x45a
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
pop ebx
xor eax, eax
pop edi
add esp, 0x404
ret
push dword [edi + 0xc]
mov esi, dword [edi + 8]
mov ebx, dword [edi + 4]
mov ecx, ebx
push esi
call fcn.0042eab0
test eax, eax
je 0x42f4ec
pop esi
mov eax, 1
pop ebx
mov dword [edi + 0x10], eax
pop edi
add esp, 0x404
ret
push esi
mov ecx, ebx
call fcn.0042e8c0
test eax, eax
je 0x42f4ff
mov dword [edi + 0x10], 1
pop esi
pop ebx
pop edi
add esp, 0x404
ret