Function at 0x4054c0
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov dword [esp + 0xc], 0xc2008d
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00404030
mov edi, dword [esp + 0x58]
mov ebx, dword [edi]
test ebx, ebx
je 0x40551d
mov edx, edi
mov esi, esi
lea edi, [edi]
mov ecx, dword [edx + 4]
test ch, 0x20
je 0x405514
and ecx, 0xc0000
je 0x40575b
add edx, 0x14
mov ecx, dword [edx]
test ecx, ecx
jne 0x405500
test eax, eax
je 0x40572e
mov eax, dword [esi + eax*4 + 4]
test eax, eax
je 0x405545
mov dword [esp + 8], eax
mov dword [esp + 4], 0xc2008d
mov dword [esp], 0
call fcn.00405240
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], 0xc200ba
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00404030
mov dword [esp], str.FFREPORT
mov ebx, eax
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x4055b1
test ebx, ebx
jne 0x4055b1
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], 0xc200e4
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00404030
test eax, eax
je 0x4055a9
mov dword [0xeea020], 1
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00401ba0
mov eax, dword [0xeea034]
test eax, eax
je 0x40557b
mov dword [esp + 4], str.Command_line:_n
mov dword [esp], eax
xor ebp, ebp
call fcn.004014b0
mov eax, dword [esp + 0x50]
sub eax, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x405659
mov edi, dword [esi + ebp*4]
movzx eax, byte [edi]
test al, al
je 0x40561b
mov edx, edi
lea ecx, [eax - 0x2b]
cmp cl, 0xf
lea ecx, [eax - 0x40]
seta bl
cmp cl, 0x1a
seta cl
test bl, cl
je 0x405611
cmp al, 0x5f
je 0x405611
sub eax, 0x61
cmp al, 0x19
ja 0x405670
add edx, 1
movzx eax, byte [edx]
test al, al
jne 0x4055f0
mov eax, dword [0xeea034]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
xor eax, eax
cmp ebp, dword [esp + 0x2c]
mov edx, dword [0xeea034]
mov dword [esp + 4], edx
setl al
add ebp, 1
sub eax, 1
and eax, 0xffffffea
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fputc
cmp dword [esp + 0x50], ebp
jne 0x4055e4
mov eax, dword [0xeea034]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x40557b
mov eax, dword [0xeea034]
mov dword [esp], 0x22
mov ebx, edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
movzx eax, byte [edi]
test al, al
jne 0x4056b3
jmp 0x4056f0
mov dword [esp + 8], eax
mov eax, dword [0xeea034]
mov dword [esp + 4], str.x_02x
mov dword [esp], eax
call fcn.004014b0
add ebx, 1
movzx eax, byte [ebx]
test al, al
je 0x4056f0
lea edx, [eax - 0x22]
and edx, 0xfd
je 0x405710
lea edx, [eax - 0x5c]
and edx, 0xfb
je 0x405710
lea edx, [eax - 0x20]
cmp dl, 0x5e
ja 0x405690
mov edx, dword [0xeea034]
add ebx, 1
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_fputc
movzx eax, byte [ebx]
test al, al
jne 0x4056b3
lea esi, [esi]
mov eax, dword [0xeea034]
mov dword [esp], 0x22
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
jmp 0x40562c
mov dword [esp + 8], eax
mov eax, dword [0xeea034]
mov dword [esp + 4], 0xc200d9
mov dword [esp], eax
call fcn.004014b0
jmp 0x4056a9
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], 0xc200b8
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00404030
test eax, eax
je 0x405545
jmp 0x405525
mov dword [esp + 0x14], 0x1ef
mov dword [esp + 0x10], str.cmdutils.c
mov dword [esp + 0xc], str.po__flags___0x40000__0x80000_
mov dword [esp + 8], 0xc1f14f
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00891920
call sub.msvcrt.dll_abort
lea esi, [esi]
lea edi, [edi]
xor eax, eax
jmp fcn.00401ba0