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

Disassembly:
push ebp
lea ebp, [esp - 0x1ce0]
mov eax, 0x1d60
call fcn.00409e10
mov eax, dword [0x411100]
xor eax, ebp
mov dword [ebp + 0x1cdc], eax
mov eax, dword [ebp + 0x1ce8]
push ebx
push esi
push edi
xor ebx, ebx
push 0xfff
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0xcd]
mov edi, ecx
push ebx
push eax
mov dword [ebp - 0x78], edi
mov byte [ebp + 0xcc], bl
call sub.MSVCR100.dll_memset
push 0x7ff
lea eax, [ebp + 0x10cd]
push ebx
push eax
mov byte [ebp + 0x10cc], bl
call sub.MSVCR100.dll_memset
add esp, 0x18
mov esi, 0x800
push esi
lea eax, [ebp + 0x10cc]
push eax
push 0x40c370
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
cmp eax, ebx
je 0x401cab
cmp eax, esi
jae 0x401cab
lea eax, [ebp + 0x10cc]
push eax
lea eax, [ebp + 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x401cc0
push 0x1000
lea eax, [ebp + 0xcc]
push eax
push edi
call fcn.00405d76
add esp, 0xc
lea eax, [ebp + 0xcc]
push 0x40c380
push eax
call dword [sym.imp.MSVCR100.dll__mbsstr]
pop ecx
pop ecx
test eax, eax
jne 0x401e0b
mov esi, 0x103
push esi
lea eax, [ebp + 0x18cd]
push ebx
push eax
mov byte [ebp + 0x18cc], bl
call sub.MSVCR100.dll_memset
push esi
lea eax, [ebp + 0x1ad5]
push ebx
push eax
mov byte [ebp + 0x1ad4], bl
call sub.MSVCR100.dll_memset
add esp, 0x18
push 0x104
lea eax, [ebp + 0x18cc]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [ebp + 0x18cc]
push eax
lea eax, [ebp + 0x1ad4]
push 0x40c394
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x1ad4]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp + 0x19d1]
push ebx
push eax
mov byte [ebp + 0x19d0], bl
call sub.MSVCR100.dll_memset
push esi
lea eax, [ebp + 0x1bd9]
push ebx
push eax
mov byte [ebp + 0x1bd8], bl
call sub.MSVCR100.dll_memset
add esp, 0x18
push 0x104
lea eax, [ebp + 0x19d0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp + 0x19d0]
push 0x5c
push eax
call dword [sym.imp.MSVCR100.dll_strrchr]
pop ecx
pop ecx
cmp eax, ebx
je 0x401da5
mov byte [eax], bl
lea eax, [ebp + 0x19d0]
push eax
lea eax, [ebp + 0x1bd8]
push 0x40c3b8
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x1bd8]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp dword [ebp - 0x7c], 0xffffffff
mov ebx, eax
jne 0x401e23
cmp ebx, 0xffffffff
je 0x401e0b
lea eax, [ebp + 0x1bd8]
push eax
push dword [ebp - 0x78]
mov esi, 0x4111c8
push 0x40c404
push esi
call edi
add esp, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x78]
push eax
mov dword [ebp - 0x78], esi
call fcn.00402a78
mov ecx, dword [ebp + 0x1cdc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00409df2
add ebp, 0x1ce0
leave
ret
mov esi, 0x4111c8
cmp ebx, 0xffffffff
je 0x401e59
lea eax, [ebp + 0x1bd8]
push eax
lea eax, [ebp + 0x1ad4]
push eax
push dword [ebp - 0x78]
push 0x40c3c0
push esi
call edi
mov edi, dword [sym.imp.KERNEL32.dll_FindClose]
add esp, 0x14
push dword [ebp - 0x7c]
call edi
push ebx
call edi
jmp 0x401dfc
lea eax, [ebp + 0x1ad4]
push eax
push dword [ebp - 0x78]
push 0x40c3e4
push esi
call edi
add esp, 0x10
push dword [ebp - 0x7c]
jmp 0x401df6