Function at 0x416080
Capabilities:
Get common file path
Manipulate console buffer
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44c
mov eax, dword [0x43a004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x100
lea eax, [ebp - 0x410]
push eax
push str.PROMPT
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
lea edi, [ebp - 0x410]
mov ecx, 0x43b040
cmove edi, ecx
mov esi, edi
movzx eax, word [edi]
test ax, ax
je 0x41613c
mov ecx, eax
nop dword [eax]
add esi, 2
cmp cx, 0x24
jne 0x4160f3
movzx eax, word [esi]
test ax, ax
je 0x4160f3
push eax
call fcn.004216bb
add esp, 4
add esi, 2
cmp ax, 0x49
je 0x4160ff
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x4160d0
jmp 0x41613c
lea eax, [ebp - 0x438]
push eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
cmp word [ebp - 0x432], 0
jne 0x41613c
push 1
lea eax, [ebp - 0x440]
mov dword [ebp - 0x440], 0xa
push eax
push 0x44a060
call fcn.0041c900
movzx eax, word [edi]
test ax, ax
je 0x416309
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, eax
cmp cx, 0x24
je 0x416161
movzx eax, cx
mov dword [ebp - 0x43c], eax
jmp 0x4161a1
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
je 0x416309
push eax
call fcn.004216bb
movzx eax, ax
add esp, 4
add eax, 0xffffffdc
cmp eax, 0x3b
ja case.0x416190.37
movzx eax, byte [eax + 0x4164c0]
jmp dword [eax*4 + 0x416470]
mov dword [ebp - 0x43c], 0x26
push 1
lea eax, [ebp - 0x43c]
push eax
push 0x44a060
call fcn.0041c900
jmp case.0x416190.37
mov dword [ebp - 0x43c], 0x7c
jmp 0x4161a1
mov dword [ebp - 0x43c], 0x28
jmp 0x4161a1
call fcn.00411600
push eax
push 0x436c10
push 0x44a060
call fcn.0041cbe0
add esp, 0xc
jmp case.0x416190.37
mov dword [ebp - 0x43c], 0x1b
jmp 0x4161a1
mov dword [ebp - 0x43c], 0x29
jmp 0x4161a1
mov dword [ebp - 0x43c], 0x3e
jmp 0x4161a1
push 0x44a068
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 3
push 0x437024
push 0x44a060
call dword [0x44a060]
push 0x44a068
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x416190.37
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
mov dword [ebp - 0x444], 0
lea eax, [ebp - 0x438]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x4162f1
push 0
lea eax, [ebp - 0x444]
push eax
push 0x26c
push dword [0x44a408]
call dword [sym.imp.USER32.dll_LoadStringW]
cmp dword [ebp - 0x444], 0
mov dword [ebp - 0x43c], eax
je 0x4162f1
test eax, eax
je 0x4162f1
xor eax, eax
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x440]
mov esi, dword [ebp - 0x448]
push eax
movsx eax, word [ebp - 0x438]
push esi
push eax
push 0x1f
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
lea eax, [ebp - 0x440]
push eax
movsx eax, word [ebp - 0x438]
push esi
push eax
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
lea eax, [ebp - 0x440]
push eax
push esi
push dword [ebp - 0x43c]
push dword [ebp - 0x444]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x416150
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x43c], 0x3c
jmp 0x4161a1
lea eax, [ebp - 0x210]
push eax
push 0x104
call ebx
movzx eax, word [ebp - 0x210]
mov dword [ebp - 0x43c], eax
jmp 0x4161a1
lea eax, [ebp - 0x210]
push eax
push 0x104
call ebx
lea eax, [ebp - 0x210]
jmp 0x4161d6
mov dword [ebp - 0x43c], 0x3d
jmp 0x4161a1
mov dword [ebp - 0x43c], 0x20
jmp 0x4161a1
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [ebp - 0x412]
mov eax, 0xcccccccd
movzx esi, word [0x44a1b6]
mul ecx
movzx eax, word [0x44a1b4]
shr edx, 3
push edx
push eax
movzx eax, word [ebp - 0x414]
push eax
movzx eax, word [ebp - 0x416]
push esi
push eax
movzx eax, word [ebp - 0x418]
push esi
push eax
push str._2d_c_02d_c_02d_c_02d
push 0x441f18
call fcn.00402b70
add esp, 0x24
push 0x441f18
jmp 0x4161d7
push 0x44a0b4
push dword [0x44a0ac]
push dword [0x44a0a8]
push dword [0x44a0a4]
push 0x43bbf8
push 0x2c2
push 0x44a060
call fcn.0041cd80
add esp, 0x1c
jmp case.0x416190.37
mov dword [ebp - 0x43c], 0xa
jmp 0x4161a1
mov dword [ebp - 0x43c], 0x24
jmp 0x4161a1
xor esi, esi
cmp dword [0x4418a0], esi
jle case.0x416190.37
push 1
lea eax, [ebp - 0x43c]
mov dword [ebp - 0x43c], 0x2b
push eax
push 0x44a060
call fcn.0041c900
inc esi
cmp esi, dword [0x4418a0]
jl 0x416443
jmp case.0x416190.37