Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [entry1]
test eax, eax
je 0x40102e
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], 0
call eax
sub esp, 0xc
mov dword [esp], 0x401390
call sub.kernel32.dll_SetUnhandledExceptionFilter
sub esp, 4
call fcn.004043d0
call fcn.004044b0
mov eax, dword [section..data]
test al, 2
je 0x401356
call sub.kernel32.dll_GetCommandLineA
or ecx, 0xffffffff
mov dword [ebp - 0x4c], esp
mov esi, eax
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + ecx + 0xf]
and eax, 0xfffffff0
call fcn.00404ad0
sub esp, eax
lea eax, [esp + 0x14]
mov dword [ebp - 0x48], eax
mov eax, dword [section..data]
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x3c], 0
and eax, 0x40
cmp eax, 1
sbb eax, eax
and eax, 0xffffc000
add eax, 0x4010
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x44], 0
movzx edx, byte [esi]
add esi, 1
movsx ecx, dl
test ecx, ecx
je 0x4011d2
cmp dl, 0x3f
je 0x401347
jg 0x401168
cmp dl, 0x27
je 0x401310
cmp dl, 0x2a
nop
je 0x401347
cmp dl, 0x22
je 0x4012c8
test eax, eax
lea edi, [ebx + eax]
je 0x401100
mov byte [ebx], 0x5c
add ebx, 1
cmp ebx, edi
jne 0x4010f6
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4011ba
mov dword [esp], ecx
mov byte [ebp - 0x50], dl
call sub.msvcrt.dll_isspace
movzx edx, byte [ebp - 0x50]
test eax, eax
je 0x4011ba
cmp dword [ebp - 0x44], 0
jne 0x40112f
xor eax, eax
cmp dword [ebp - 0x48], ebx
jae 0x4010b2
lea eax, [ebp - 0x28]
mov byte [ebx], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call fcn.004056c0
mov ebx, dword [ebp - 0x48]
xor eax, eax
or dword [ebp - 0x40], 1
mov dword [ebp - 0x44], 0
jmp 0x4010b2
cmp dl, 0x5c
je 0x4012c0
cmp dl, 0x7f
je 0x401347
cmp dl, 0x5b
jne 0x4010ef
mov edi, dword [section..data]
shr edi, 5
xor edi, 1
and edi, 1
test eax, eax
je 0x4011a2
add eax, ebx
mov byte [ebx], 0x5c
add ebx, 1
cmp ebx, eax
jne 0x401198
mov eax, edi
test al, al
jne 0x4011b4
mov edi, dword [ebp - 0x3c]
test edi, edi
jne 0x4011b4
cmp ecx, 0x7f
jne 0x4011ba
mov byte [ebx], 0x7f
add ebx, 1
mov byte [ebx], dl
movzx edx, byte [esi]
add ebx, 1
xor eax, eax
add esi, 1
movsx ecx, dl
test ecx, ecx
jne 0x4010c3
test eax, eax
je 0x4011e2
add eax, ebx
mov byte [ebx], 0x5c
add ebx, 1
cmp ebx, eax
jne 0x4011d8
cmp dword [ebp - 0x44], 0
jne 0x4011ed
cmp dword [ebp - 0x48], ebx
jae 0x401211
lea eax, [ebp - 0x28]
mov byte [ebx], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call fcn.004056c0
mov eax, dword [ebp - 0x24]
mov dword [0x40a004], eax
mov eax, dword [ebp - 0x20]
mov dword [section..bss], eax
mov esp, dword [ebp - 0x4c]
mov eax, dword [0x40a030]
test eax, eax
je 0x40126f
mov ebx, dword [sym.imp.msvcrt.dll__iob]
mov dword [0x407004], eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll__setmode
mov eax, dword [0x40a030]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll__setmode
mov eax, dword [0x40a030]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x50]
mov dword [esp], eax
call sub.msvcrt.dll__setmode
call sub.msvcrt.dll___p__fmode
mov edx, dword [0x407004]
mov dword [eax], edx
call fcn.00404620
and esp, 0xfffffff0
call fcn.00404890
call sub.msvcrt.dll___p__environ
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [section..bss]
mov dword [esp + 4], eax
mov eax, dword [0x40a004]
mov dword [esp], eax
call main
mov ebx, eax
call sub.msvcrt.dll__cexit
mov dword [esp], ebx
call sub.kernel32.dll_ExitProcess
add eax, 1
jmp 0x4010b2
mov edx, eax
sar edx, 1
je 0x4012da
add edx, ebx
mov byte [ebx], 0x5c
add ebx, 1
cmp ebx, edx
jne 0x4012d0
test al, 1
jne 0x4012f5
cmp dword [ebp - 0x3c], 0x27
je 0x4012f5
xor dword [ebp - 0x3c], ecx
xor eax, eax
mov dword [ebp - 0x44], 1
jmp 0x4010b2
mov byte [ebx], 0x22
xor eax, eax
add ebx, 1
mov dword [ebp - 0x44], 1
jmp 0x4010b2
test byte [section..data], 0x10
je 0x4010ef
mov edx, eax
sar edx, 1
je 0x40132f
add edx, ebx
mov byte [ebx], 0x5c
add ebx, 1
cmp ebx, edx
jne 0x401325
test al, 1
je 0x40134e
mov byte [ebx], 0x27
xor eax, eax
add ebx, 1
mov dword [ebp - 0x44], 1
jmp 0x4010b2
xor edi, edi
jmp 0x401192
cmp dword [ebp - 0x3c], 0x22
jne 0x4012e4
jmp 0x401333
and eax, 1
mov dword [ebp - 0x2c], 0
lea edx, [ebp - 0x2c]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x30]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40a000
mov dword [esp], 0x40a004
call sub.msvcrt.dll___getmainargs
jmp 0x401224