Function at 0x401180
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [entry1]
test eax, eax
je 0x4011ae
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], 0
call eax
sub esp, 0xc
mov dword [esp], section..text
call sub.kernel32.dll_SetUnhandledExceptionFilter
sub esp, 4
call fcn.00404560
call fcn.00404550
mov eax, dword [section..data]
test al, 2
je 0x401511
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.0040ad50
sub esp, eax
lea eax, [esp + 0x14]
mov edx, eax
mov dword [ebp - 0x48], eax
mov eax, dword [section..data]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
and eax, 0x40
cmp eax, 1
sbb eax, eax
mov dword [ebp - 0x44], eax
xor eax, eax
and dword [ebp - 0x44], 0xffffc000
add dword [ebp - 0x44], 0x4010
add esi, 1
movzx ebx, byte [esi - 1]
movsx ecx, bl
test ecx, ecx
je 0x401336
cmp bl, 0x3f
je 0x401500
jg 0x4012c0
cmp bl, 0x27
je 0x4014b8
cmp bl, 0x2a
nop
je 0x401500
cmp bl, 0x22
jne 0x401422
mov ebx, eax
sar ebx, 1
je 0x401556
add ebx, edx
nop
lea esi, [esi]
add edx, 1
cmp edx, ebx
mov byte [edx - 1], 0x5c
jne 0x401280
test al, 1
jne 0x4012a5
cmp dword [ebp - 0x3c], 0x27
je 0x4012a5
xor dword [ebp - 0x3c], ecx
mov edx, ebx
xor eax, eax
mov dword [ebp - 0x40], 1
jmp 0x401235
lea edx, [ebx + 1]
xor eax, eax
mov byte [ebx], 0x22
mov dword [ebp - 0x40], 1
jmp 0x401235
cmp bl, 0x5c
je 0x4014b0
cmp bl, 0x7f
je 0x401500
cmp bl, 0x5b
jne 0x401422
mov edi, dword [section..data]
shr edi, 5
xor edi, 1
and edi, 1
test eax, eax
je 0x40150a
add eax, edx
add edx, 1
cmp edx, eax
mov byte [edx - 1], 0x5c
jne 0x4012f4
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4014a1
mov edx, edi
test dl, dl
jne 0x4014a1
cmp ecx, 0x7f
je 0x4014a1
add esi, 1
mov byte [eax], bl
movzx ebx, byte [esi - 1]
lea edx, [eax + 1]
xor eax, eax
movsx ecx, bl
test ecx, ecx
jne 0x401247
test eax, eax
je 0x40155d
add eax, edx
add edx, 1
cmp edx, eax
mov byte [edx - 1], 0x5c
jne 0x401340
cmp dword [ebp - 0x40], 0
jne 0x401356
cmp dword [ebp - 0x48], eax
jae 0x40137a
mov byte [eax], 0
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call fcn.004057f0
mov eax, dword [ebp - 0x24]
mov dword [0x410004], eax
mov eax, dword [ebp - 0x20]
mov dword [section..bss], eax
mov esp, dword [ebp - 0x4c]
mov eax, dword [0x41002c]
test eax, eax
je 0x4013d8
mov ebx, dword [sym.imp.msvcrt.dll__iob]
mov dword [0x40c004], eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll__setmode
mov eax, dword [0x41002c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll__setmode
mov eax, dword [0x41002c]
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 [0x40c004]
mov dword [eax], edx
call fcn.00404780
and esp, 0xfffffff0
call fcn.004049e0
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 [0x410004]
mov dword [esp], eax
call main
mov ebx, eax
call sub.msvcrt.dll__cexit
mov dword [esp], ebx
call sub.kernel32.dll_ExitProcess
test eax, eax
lea edi, [edx + eax]
je 0x40154f
lea esi, [esi]
add edx, 1
cmp edx, edi
mov byte [edx - 1], 0x5c
jne 0x401430
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x401495
mov dword [esp], ecx
call sub.msvcrt.dll_isspace
test eax, eax
je 0x401495
cmp dword [ebp - 0x40], 0
jne 0x40145d
cmp dword [ebp - 0x48], edi
jae 0x401546
lea eax, [ebp - 0x28]
mov byte [edi], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x48]
mov dword [esp], edi
call fcn.004057f0
mov edx, edi
xor eax, eax
or dword [ebp - 0x44], 1
mov dword [ebp - 0x40], 0
jmp 0x401235
lea edx, [edi + 1]
xor eax, eax
mov byte [edi], bl
jmp 0x401235
mov byte [eax], 0x7f
add eax, 1
jmp 0x40131d
add eax, 1
jmp 0x401235
test byte [section..data], 0x10
je 0x401422
mov ebx, eax
sar ebx, 1
je 0x401565
add ebx, edx
add edx, 1
cmp edx, ebx
mov byte [edx - 1], 0x5c
jne 0x4014d1
test al, 1
jne 0x4014ea
cmp dword [ebp - 0x3c], 0x22
jne 0x401295
lea edx, [ebx + 1]
xor eax, eax
mov byte [ebx], 0x27
mov dword [ebp - 0x40], 1
jmp 0x401235
xor edi, edi
test eax, eax
jne 0x4012f2
mov eax, edx
jmp 0x4012ff
and eax, 1
mov dword [ebp - 0x28], 0
lea edx, [ebp - 0x28]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x410000
mov dword [esp], 0x410004
call sub.msvcrt.dll___getmainargs
jmp 0x40138d
mov edx, edi
xor eax, eax
jmp 0x401235
mov edi, edx
jmp 0x40143b
mov ebx, edx
jmp 0x40128b
mov eax, edx
nop
jmp 0x40134b
mov ebx, edx
jmp 0x4014dc