Function at 0x404740
Capabilities:
Terminate process

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov dword [0x412370], eax
xor eax, eax
mov dword [0x412374], eax
lea eax, [ebp - 0x10]
mov byte [0x4123b0], 0
mov dword [esp], eax
call fcn.00408970
cmp byte [0x4123d0], 0
jne 0x4048e0
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [0x412370]
mov ebx, dword [0x412450]
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [ebx + eax*4 + 0xc]
cmp dword [0x412374], eax
jge 0x404850
cmp byte [0x4123b0], 0
jne 0x404850
mov dword [esp], 0x412370
call fcn.00404150
mov bl, al
movzx eax, al
sub eax, 0x21
cmp eax, 0x5c
ja case.0x4047cb.34
jmp dword [eax*4 + 0x40f48c]
mov dword [esp], 7
call fcn.004070a0
mov dword [esp], 0x412370
call fcn.00404150
cmp al, 0x22
je 0x40481e
cmp al, 0x5c
je 0x404a57
movzx eax, al
mov dword [esp], eax
call fcn.004070a0
jmp case.0x4047cb.79
movzx eax, al
mov dword [esp], eax
call fcn.004070a0
mov dword [esp], 0x412370
call fcn.00404150
cmp al, 0x22
jne 0x404803
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.cygwin1.dll_fflush
jmp 0x404780
mov dword [esp], str.bad_instruction:_inst_c
movzx eax, bl
mov dword [esp + 4], eax
call fcn.00407ca0
jmp 0x404780
test ecx, ecx
jne 0x40485e
jmp 0x4048b1
mov ebx, dword [0x412450]
mov ecx, eax
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [ebx + eax*4 + 0x18]
mov dword [esp], eax
call fcn.00406b60
mov edx, dword [0x412370]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [0x412450]
mov eax, dword [edx + eax*4 + 0x14]
mov dword [esp], eax
call fcn.00406b60
call fcn.00405e50
call fcn.00405e50
mov dword [0x412374], eax
call fcn.00405e50
mov dword [0x412370], eax
test eax, eax
jne 0x404856
mov ecx, dword [0x4123e0]
test ecx, ecx
je 0x4048cf
nop
lea esi, [esi]
call fcn.00405ed0
mov ecx, dword [0x4123e0]
test ecx, ecx
jne 0x4048c0
cmp byte [0x4123d0], 0
jne 0x404901
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 2
mov eax, 0x404120
mov dword [esp + 4], eax
call sub.cygwin1.dll_signal
xor eax, eax
mov dword [0x4122f0], eax
jmp 0x404780
mov dword [esp], 2
mov edx, 0x401610
mov dword [esp + 4], edx
call sub.cygwin1.dll_signal
mov eax, dword [0x4122f0]
test eax, eax
je 0x4048d8
mov dword [esp], str.Interruption_completed.
call sub.cygwin1.dll_puts
jmp 0x4048d8
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
mov byte [0x412570], al
movzx eax, al
mov dword [esp], eax
call fcn.00404260
jmp 0x404780
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
sete byte [0x412570]
call fcn.00405ed0
mov dword [esp], 0x412370
call fcn.00404150
mov dword [esp], 0x412370
movzx eax, al
mov dword [ebp - 0x14], eax
call fcn.00404150
movzx eax, al
shl eax, 8
add dword [ebp - 0x14], eax
cmp bl, 0x4a
je 0x4049b9
cmp bl, 0x42
je 0x40520e
cmp bl, 0x5a
jne 0x404780
cmp byte [0x412570], 0
jne 0x404780
mov ecx, dword [0x412370]
mov edx, dword [ebp - 0x14]
mov ebx, dword [0x412450]
lea eax, [ecx*8]
mov esi, dword [ebp - 0x14]
sub eax, ecx
mov edi, dword [ebx + eax*4 + 0x10]
mov eax, edx
sar esi, 6
and eax, 0xffffffc0
sub edx, eax
jmp 0x4049ea
mov edi, dword [edi + 0x100]
mov eax, esi
dec esi
test eax, eax
jg 0x4049e4
mov eax, dword [edi + edx*4]
mov dword [0x412374], eax
jmp 0x40478c
mov eax, dword [0x4123f0]
mov esi, fcn.00406ff0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [0x412520]
mov dword [esp + 4], eax
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0040a990
cmp bl, 0x57
je 0x4053ae
mov dword [esp], 4
call fcn.00406210
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.cygwin1.dll_fflush
call fcn.00405ed0
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
cmp al, 0x22
je 0x40481e
movzx eax, al
sub eax, 0x5c
cmp eax, 0x18
ja case.0x4047cb.79
jmp dword [eax*4 + 0x40f600]
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x4052c9
mov dword [esp], eax
call fcn.004066d0
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx ebx, al
cmp ebx, 0x4c
je 0x405361
jg 0x405220
cmp ebx, 0x49
jne 0x404780
mov dword [esp], 0x4041a0
mov eax, dword [0x4125f0]
mov dword [esp + 4], eax
call fcn.004042b0
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x412430]
mov edx, dword [0x4123e0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0040a340
mov eax, dword [0x4123e0]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
jne 0x4053ed
call fcn.00405ed0
call fcn.00405ed0
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00405f50
lea eax, [ebp - 0x10]
mov dword [esp], eax
call fcn.00408970
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x40524d
mov dword [esp], eax
call fcn.004067d0
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x4052aa
mov dword [esp], eax
call fcn.00406210
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
test eax, eax
setle byte [0x412570]
call fcn.00405ed0
movzx eax, byte [0x412570]
jmp 0x404944
mov dword [esp], 0x412370
call fcn.00404150
movzx ebx, al
test bl, bl
js 0x4052e8
lea eax, [ebx*8]
sub eax, ebx
lea esi, [eax*4]
mov eax, dword [0x412450]
cmp byte [esi + eax], 0
jne 0x40519b
mov eax, dword [0x412340]
mov eax, dword [eax + ebx*4]
mov dword [esp], str.Function__s_not_defined.
mov dword [esp + 4], eax
call fcn.00407ca0
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x40528b
mov dword [esp], eax
call fcn.00406990
jmp 0x404780
mov eax, dword [0x412610]
mov dword [esp], eax
call fcn.00405f10
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
je 0x4053bf
mov dword [esp], str.Modulo_by_zero
call fcn.00407ca0
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
test eax, eax
setne byte [0x412570]
jmp 0x404be0
mov dword [esp], 0
call sub.cygwin1.dll_exit
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
lea eax, [ebp - 0x10]
xor esi, esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00409110
jmp 0x404b3d
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x412430]
mov edx, dword [0x4123e0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004098e0
jmp 0x404b3d
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x4123e0]
xor ebx, ebx
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
je 0x40516c
mov byte [0x412570], bl
jmp 0x404be0
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x4123e0]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov edx, dword [ecx]
mov dword [eax], edx
mov dword [ecx], ebx
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
cmp eax, 0xffffffff
sete byte [0x412570]
jmp 0x404be0
mov eax, dword [0x4123e0]
xor edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [0x412630]
mov dword [esp], eax
call fcn.00409000
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x40526c
mov dword [esp], eax
call fcn.00406540
jmp 0x404780
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x405304
mov dword [esp], eax
call fcn.00406890
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
dec eax
jmp 0x404e12
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
test eax, eax
jmp 0x404e12
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x405323
mov dword [esp], eax
call fcn.00406450
jmp 0x404780
mov edx, dword [0x412370]
test edx, edx
je 0x40518a
lea eax, [edx*8]
sub eax, edx
mov edx, dword [0x412450]
mov eax, dword [edx + eax*4 + 0x18]
mov dword [esp], eax
call fcn.00406b60
mov edx, dword [0x412370]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [0x412450]
mov eax, dword [edx + eax*4 + 0x14]
mov dword [esp], eax
call fcn.00406b60
call fcn.00405e50
call fcn.00405e50
mov dword [0x412374], eax
call fcn.00405e50
mov dword [0x412370], eax
mov ecx, eax
jmp 0x404786
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x4123e0]
xor ebx, ebx
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
jne 0x40516c
mov bl, 1
jmp 0x404dae
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b40
not eax
shr eax, 0x1f
mov byte [0x412570], al
jmp 0x404be0
mov eax, dword [0x4123e0]
mov eax, dword [eax]
jmp 0x404c6d
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov eax, dword [0x412430]
mov edx, dword [0x4123e0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00409a50
test eax, eax
je 0x404b3d
mov dword [esp], str.Divide_by_zero
call fcn.00407ca0
jmp 0x404780
mov dword [esp], 2
call fcn.00405f80
test al, al
je 0x404780
mov edx, dword [0x4123e0]
lea eax, [ebp - 0x10]
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00409000
jmp 0x404b3d
mov eax, dword [0x412630]
jmp 0x404c6d
mov dword [esp], 0x412370
call fcn.00404150
movzx eax, al
test al, al
js 0x405342
mov dword [esp], eax
call fcn.00406620
jmp 0x404780
mov edi, dword [0x412370]
test edi, edi
jne 0x405202
mov eax, dword [0x4125f0]
cmp eax, 0xa
je 0x40539d
mov dword [esp + 4], eax
mov dword [esp], 0x404180
call fcn.004042b0
jmp 0x404780
mov dword [esp], 9
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 0xd
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 0x22
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 0x5c
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 0xa
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 0xc
call fcn.004070a0
jmp case.0x4047cb.79
mov dword [esp], 8
call fcn.004070a0
jmp case.0x4047cb.79
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b80
test al, al
jne 0x404dae
mov bl, 1
jmp 0x404dae
mov dword [esp], str.Return_from_main_program.
call fcn.00407ca0
jmp 0x404780
mov dword [esp + 4], ebx
mov dword [esp], 0x412370
call fcn.00406ce0
mov eax, dword [0x412450]
mov esi, dword [esi + eax + 0x18]
jmp 0x4051c3
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00406a50
mov esi, dword [esi + 8]
test esi, esi
jne 0x4051b6
mov eax, dword [0x412370]
mov dword [esp], eax
call fcn.00405ea0
mov eax, dword [0x412374]
mov dword [esp], eax
call fcn.00405ea0
mov eax, dword [0x4125f0]
mov dword [esp], eax
call fcn.00405ea0
mov dword [0x412370], ebx
xor eax, eax
mov ecx, ebx
mov dword [0x412374], eax
jmp 0x404786
mov eax, dword [0x4123c0]
mov eax, dword [eax]
jmp 0x4050d7
cmp byte [0x412570], 0
jne 0x4049b9
jmp 0x404780
cmp ebx, 0x52
je 0x405415
cmp ebx, 0x53
jne 0x404780
mov eax, dword [0x4123e0]
mov edx, dword [eax]
mov edx, dword [edx + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040a530
jmp 0x404780
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404b79
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404e5c
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404c5b
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404b9d
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404a98
mov dword [esp], 0x412370
and ebx, 0x7f
shl ebx, 8
call fcn.00404150
movzx eax, al
add ebx, eax
jmp 0x404c08
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404e80
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x404f0b
mov dword [esp], 0x412370
mov ebx, eax
and ebx, 0x7f
call fcn.00404150
shl ebx, 8
movzx eax, al
lea eax, [ebx + eax]
jmp 0x4050b7
mov ecx, dword [0x4123e0]
mov eax, dword [ecx]
cmp dword [eax + 4], 1
jne 0x405382
mov edx, dword [eax + 8]
test edx, edx
je 0x405382
mov eax, dword [eax + 0x18]
cmp byte [eax], 0
je 0x405444
mov edx, dword [ecx]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 4]
mov dword [esp], ecx
add eax, ebx
mov dword [esp + 4], eax
call fcn.0040a530
jmp 0x404780
mov dword [esp], 0x412370
call fcn.004045a0
jmp 0x404780
mov dword [esp], 0xa
call fcn.00406ff0
jmp 0x404a31
mov eax, dword [0x412430]
mov edx, dword [0x4123e0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0040a0b0
jmp 0x404b3d
mov eax, dword [0x4123e0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00408b60
test al, al
je 0x404b3d
mov dword [esp], str.divide_by_zero
call fcn.00407ca0
jmp 0x404b3d
mov eax, dword [0x412430]
mov dword [esp + 4], eax
mov eax, dword [0x4123e0]
mov dword [esp], eax
call fcn.0040a600
test eax, eax
jne 0x404780
mov dword [esp], str.Square_root_of_a_negative_number
call fcn.00407ca0
jmp 0x404780
mov dword [esp + 4], edx
mov dword [esp], ecx
jmp 0x405393