Function at 0x405680
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], edx
cmp byte [edx], 0
je 0x4056c5
mov esi, dword [0x412350]
test esi, esi
jne 0x4056c5
cmp byte [0x412310], 0
je 0x4056d0
movzx eax, byte [edx]
cmp al, 0x22
je 0x405712
movzx eax, al
mov dword [esp], eax
inc edx
mov dword [ebp - 0x14], edx
call fcn.00405490
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0
jne 0x405694
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [0x412320], 0
je 0x405700
movzx eax, byte [edx]
cmp al, 0xa
je case.0x40570b.10
cmp al, 0x3a
je 0x405975
cmp al, 0x2e
je 0x405984
cmp al, 0x40
jbe 0x405721
movzx eax, al
sub eax, 0x37
jmp 0x4056b1
movzx eax, byte [edx]
sub eax, 0xa
cmp eax, 0x69
ja case.0x40570b.11
jmp dword [eax*4 + 0x40f678]
mov byte [0x412310], 0
movzx eax, byte [edx]
movzx eax, al
jmp 0x4056b1
movzx eax, al
sub eax, 0x30
jmp 0x4056b1
inc edx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405610
mov dword [esp], eax
call fcn.00405540
mov edx, dword [ebp - 0x14]
lea esi, [esi]
lea edi, [edi]
inc edx
jmp 0x40568c
movzx eax, byte [edx]
mov dword [esp], eax
call fcn.00405490
mov edx, dword [ebp - 0x14]
jmp case.0x40570b.10
mov eax, edx
inc edx
mov dword [ebp - 0x14], edx
movzx eax, byte [eax + 1]
cmp eax, 0x69
je 0x405a51
cmp eax, 0x72
jne case.0x40570b.10
call fcn.00404740
mov edx, dword [ebp - 0x14]
jmp case.0x40570b.10
movzx eax, byte [edx]
inc edx
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405490
lea eax, [ebp - 0x14]
mov dword [esp], eax
call fcn.00405610
mov edi, eax
cmp edi, 0x7f
movzx eax, al
jg 0x405990
mov dword [esp], eax
call fcn.00405490
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0x2c
jne 0x4057d7
jmp 0x405a48
movzx eax, byte [edx]
inc edx
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405490
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0x3a
jne 0x4057c5
mov dword [esp], 0x3a
call fcn.00405490
jmp 0x405761
inc edx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405610
mov dword [esp], eax
mov edi, eax
call fcn.00405dd0
mov eax, dword [ebp - 0x14]
lea edx, [eax + 1]
mov dword [ebp - 0x14], edx
cmp byte [eax], 0x2e
je 0x4059cd
lea eax, [edi*8]
sub eax, edi
lea esi, [eax*4]
jmp 0x405867
lea ecx, [ebp - 0x14]
mov dword [esp], ecx
call fcn.00405610
mov ebx, dword [0x412450]
xor ecx, ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + ebx + 0x14]
mov dword [esp], eax
call fcn.00407700
mov dword [esi + ebx + 0x14], eax
mov eax, dword [ebp - 0x14]
lea edx, [eax + 1]
mov dword [ebp - 0x14], edx
cmp byte [eax], 0x2e
je 0x4059cd
movzx eax, byte [edx]
cmp al, 0x2e
je 0x4059c9
cmp al, 0x2a
jne 0x40582a
inc edx
mov dword [ebp - 0x14], edx
lea edx, [ebp - 0x14]
mov dword [esp], edx
call fcn.00405610
mov ebx, dword [0x412450]
mov edx, 1
mov dword [esp + 8], edx
jmp 0x405841
movzx eax, byte [edx]
mov dword [esp], eax
call fcn.00405490
mov byte [0x412320], 1
mov edx, dword [ebp - 0x14]
jmp case.0x40570b.10
movzx eax, byte [edx]
inc edx
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405490
lea eax, [ebp - 0x14]
mov dword [esp], eax
call fcn.00405610
cmp eax, 0xffff
mov ebx, eax
jg 0x405a5e
movzx eax, al
mov dword [esp], eax
call fcn.00405490
movzx eax, bh
mov dword [esp], eax
jmp 0x40575c
mov eax, dword [0x412300]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [0x412450]
mov byte [eax + edx*4], 1
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [0x412304], edx
mov edx, dword [ebp - 0x14]
mov dword [0x412300], eax
jmp case.0x40570b.10
movzx eax, byte [edx]
inc edx
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405490
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
mov dword [esp], eax
jmp 0x40575c
movzx eax, byte [edx]
inc edx
mov dword [ebp - 0x14], edx
mov dword [esp], eax
call fcn.00405490
lea eax, [ebp - 0x14]
mov dword [esp], eax
call fcn.00405610
cmp eax, 0x7f
mov ebx, eax
jg 0x4059ae
mov dword [esp], eax
call fcn.00405490
jmp 0x405761
mov byte [0x412310], 1
inc edx
jmp 0x40568c
mov byte [0x412320], 0
movzx eax, byte [edx]
jmp 0x4056b1
mov dword [esp], 0x2e
jmp 0x4056b4
mov ecx, edi
movzx eax, ch
or eax, 0x80
mov dword [esp], eax
call fcn.00405490
mov eax, edi
and eax, 0xff
jmp 0x4057b0
movzx eax, ah
or eax, 0x80
mov dword [esp], eax
call fcn.00405490
movzx eax, bl
mov dword [esp], eax
jmp 0x40575c
inc edx
mov dword [ebp - 0x14], edx
cmp byte [edx], 0x5b
je 0x405a22
lea eax, [edi*8]
sub eax, edi
lea esi, [eax*4]
jmp 0x405a17
lea ebx, [ebp - 0x14]
mov dword [esp], ebx
call fcn.00405610
mov dword [esp + 4], eax
mov ebx, dword [0x412450]
xor edx, edx
mov dword [esp + 8], edx
mov eax, dword [esi + ebx + 0x18]
mov dword [esp], eax
call fcn.00407700
mov dword [esi + ebx + 0x18], eax
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0x5b
je 0x405a22
cmp byte [edx], 0x2c
jne 0x4059e4
inc edx
mov dword [ebp - 0x14], edx
jmp 0x4059e4
mov ecx, dword [0x412300]
xor esi, esi
inc edx
mov dword [0x412300], edi
mov ebx, dword [0x412304]
mov dword [0x412304], esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x40568c
inc edx
mov dword [ebp - 0x14], edx
jmp 0x4057d7
call fcn.00405450
mov edx, dword [ebp - 0x14]
jmp case.0x40570b.10
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov ecx, 1
mov ebx, 0x11
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov dword [esp], str.Program_too_big._n
call sub.cygwin1.dll_fwrite
mov dword [esp], 1
call sub.cygwin1.dll_exit
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop