Function at 0x402fe0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x13c
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x100], eax
cmp eax, dword [0x433050]
jne 0x403064
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
cmp eax, dword [0x433040]
jne 0x403064
mov eax, dword [0x433060]
add eax, 1
mov dword [0x433060], eax
cmp eax, 2
jle 0x403084
cmp dword [0x43c608], 0
jle 0x403af6
mov dword [esp + 8], str.Infinite_loop_aborted_in_solve_routine.
mov dword [esp + 4], 0x42ac67
mov eax, dword [0x43cce0]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov edx, 0
jmp 0x403afb
mov ecx, dword [ebp - 0x100]
mov dword [0x433050], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov dword [0x433040], eax
mov dword [0x433060], 0
mov eax, dword [ebp - 0x110]
sub eax, 1
cmp eax, 5
ja 0x403af6
mov ecx, dword [ebp - 0x100]
shl ecx, 4
mov dword [ebp - 0x10c], ecx
mov edi, dword [ebp - 0x118]
add edi, ecx
mov esi, dword [ebp - 0x114]
add esi, 0x10
cmp edi, esi
jbe 0x4030ea
mov edx, 1
cmp dword [esi + 4], 1
jne 0x4030e3
mov eax, dword [esi + 8]
cmp eax, 5
je 0x4030da
cmp eax, 7
jne 0x4030ea
mov dword [ebp - 0x110], edx
jmp 0x4030e3
lea eax, [esi + 0x10]
mov dword [ebp - 0x114], eax
add esi, 0x20
cmp edi, esi
ja 0x4030bf
mov edx, esi
sub edx, dword [ebp - 0x114]
mov dword [ebp - 0x108], edx
sar edx, 4
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0x110], 6
sete byte [ebp - 0x101]
jne 0x40337e
mov ecx, dword [ebp - 0x118]
cmp dword [ebp - 0x114], ecx
jne 0x40337e
lea eax, [ebp - 0x68]
mov dword [esp + 8], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov ecx, dword [ebp + 0xc]
mov dword [esp], ecx
call fcn.00423f24
test eax, eax
je 0x403af6
lea eax, [ebp - 0x78]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x114]
mov dword [esp], edx
call fcn.00423f24
test eax, eax
je 0x403af6
cmp dword [0x43c608], 0
jle 0x403197
mov dword [esp + 8], str.Taking_logarithm_of_both_equation_sides:
mov dword [esp + 4], 0x42ac67
mov eax, dword [0x43cce0]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
call sub.cygwin1.dll___errno
mov dword [eax], 0
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x78]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
call fcn.00424d92
sub esp, 4
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
call fcn.00424d92
sub esp, 4
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
call fcn.00424c69
sub esp, 4
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0
mov eax, dword [ebp + 0xc]
mov dword [eax + 4], 1
mov eax, dword [ecx]
shl eax, 4
mov edx, dword [ebp + 0xc]
mov dword [eax + edx], 0
mov eax, dword [ecx]
shl eax, 4
fld qword [ebp - 0x68]
fstp qword [eax + edx + 8]
mov eax, dword [ecx]
add eax, 1
mov dword [ecx], eax
shl eax, 4
mov dword [eax + edx + 4], 1
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx], 2
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx + 8], 1
mov eax, dword [ecx]
add eax, 1
mov dword [ecx], eax
shl eax, 4
mov dword [eax + edx + 4], 2
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx], 0
mov eax, dword [ecx]
shl eax, 4
fld qword [ebp - 0x60]
fstp qword [eax + edx + 8]
mov eax, dword [ecx]
add eax, 1
mov dword [ecx], eax
shl eax, 4
mov dword [eax + edx + 4], 2
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx], 2
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx + 8], 3
mov eax, dword [ecx]
add eax, 1
mov dword [ecx], eax
shl eax, 4
mov dword [eax + edx + 4], 2
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx], 1
mov eax, dword [ecx]
shl eax, 4
mov dword [eax + edx + 8], 3
add dword [ecx], 1
mov ebx, dword [ebp - 0xfc]
not ebx
mov eax, ebx
mov ecx, dword [ebp + 8]
add eax, dword [ecx]
shl eax, 4
mov dword [esp + 8], eax
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x118]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov edx, dword [ebp + 8]
add dword [edx], ebx
call fcn.00402dc1
mov edx, 1
jmp 0x403afb
cmp dword [ebp - 0x110], 5
jne 0x4033f1
lea eax, [ebp - 0x50]
mov dword [esp + 8], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00423d30
test eax, eax
je 0x4033f1
lea eax, [ebp - 0x58]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0xfc]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x114]
mov dword [esp], ecx
call fcn.00423d30
test eax, eax
je 0x4033f1
fld qword [ebp - 0x50]
fabs
fld qword [ebp - 0x58]
fabs
fxch st(1)
fucompi st(1)
fstp st(0)
jb 0x4033f1
mov dword [esp], str.There_are_no_possible_solutions.
call fcn.004029a3
mov edx, 0
jmp 0x403afb
cmp dword [0x43c608], 0
jle 0x403683
cmp dword [ebp - 0x110], 6
ja case.0x403411.0
mov eax, dword [ebp - 0x110]
jmp dword [eax*4 + 0x42ae04]
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb
mov dword [esp + 4], 1
mov dword [esp], str.Subtracting
call sub.cygwin1.dll_fwrite
jmp 0x403557
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], str.Adding
call sub.cygwin1.dll_fwrite
jmp 0x403557
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x26
mov dword [esp + 4], 1
mov dword [esp], str.Dividing_both_sides_of_the_equation_by
call sub.cygwin1.dll_fwrite
jmp 0x403557
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x29
mov dword [esp + 4], 1
mov dword [esp], str.Multiplying_both_sides_of_the_equation_by
call sub.cygwin1.dll_fwrite
jmp 0x403557
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x32
mov dword [esp + 4], 1
mov dword [esp], str.Raising_both_sides_of_the_equation_to_the_power_of
call sub.cygwin1.dll_fwrite
jmp case.0x403411.0
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.Applying_inverse_modulus_of
call sub.cygwin1.dll_fwrite
jmp 0x403557
cmp byte [ebp - 0x101], 0
je 0x403557
cmp dword [ebp - 0xfc], 1
jne 0x403557
mov edx, dword [ebp - 0x114]
cmp dword [edx], 0
jne 0x403557
fld1
fdiv qword [edx + 8]
fstp qword [esp + 0xc]
mov eax, dword [0x42a024]
mov dword [esp + 8], eax
mov dword [esp + 4], str.__.g:_n
mov eax, dword [0x43cce0]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x403683
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x42ad9f
call sub.cygwin1.dll_fwrite
cmp byte [ebp - 0x101], 0
je 0x4035aa
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], 0x42ada2
call sub.cygwin1.dll_fwrite
mov dword [esp + 8], 0
mov ecx, dword [ebp - 0xfc]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call fcn.00426be2
cmp dword [ebp - 0x110], 2
je 0x403622
cmp dword [ebp - 0x110], 2
jg 0x4035e7
cmp dword [ebp - 0x110], 1
jne 0x40365e
jmp 0x4035fb
cmp dword [ebp - 0x110], 5
je 0x403622
cmp dword [ebp - 0x110], 6
jne 0x40365e
jmp 0x403649
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x23
mov dword [esp + 4], 1
mov dword [esp], str.__from_both_sides_of_the_equation:_n
call sub.cygwin1.dll_fwrite
jmp 0x403683
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x21
mov dword [esp + 4], 1
mov dword [esp], str.__to_both_sides_of_the_equation:_n
call sub.cygwin1.dll_fwrite
jmp 0x403683
mov eax, dword [0x43cce0]
mov dword [esp + 4], eax
mov dword [esp], 0x29
call sub.cygwin1.dll_fputc
mov eax, dword [0x43cce0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], 0x42adee
call sub.cygwin1.dll_fwrite
mov edx, dword [0x42a020]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx + eax + 3]
cmp eax, edx
jg 0x4036af
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx + eax + 5]
cmp edx, eax
jge 0x4036b4
call fcn.004023ee
mov eax, dword [ebp - 0x100]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.00401d34
cmp eax, 1
jg 0x4036ea
cmp dword [ebp - 0x118], edi
jae 0x4036ea
mov eax, dword [ebp - 0x118]
add dword [eax + 4], 1
add eax, 0x10
cmp edi, eax
ja 0x4036df
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ecx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00401d34
cmp eax, 1
jg 0x40371e
mov eax, ebx
shl eax, 4
add eax, dword [ebp + 0xc]
cmp dword [ebp + 0xc], eax
jae 0x40371e
mov edx, dword [ebp + 0xc]
add dword [edx + 4], 1
add edx, 0x10
cmp eax, edx
ja 0x403713
cmp dword [ebp - 0x110], 6
ja case.0x403731.0
mov edx, dword [ebp - 0x110]
jmp dword [edx*4 + 0x42ae20]
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 1
lea esi, [edi + 0x10]
mov dword [esi + 4], 2
mov dword [esi], 1
mov eax, dword [0x433030]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x42adf2
mov dword [esp + 8], str._s_.0d
mov dword [esp + 4], 0x64
lea ebx, [ebp - 0xdc]
mov dword [esp], ebx
call sub.cygwin1.dll_snprintf
mov dword [esp + 4], ebx
lea eax, [edi + 0x18]
mov dword [esp], eax
call fcn.00407f03
test eax, eax
je 0x403af6
mov eax, dword [0x433030]
add eax, 1
mov edx, 0
cmovs eax, edx
mov dword [0x433030], eax
lea eax, [esi + 0x10]
mov dword [eax + 4], 2
mov dword [eax], 2
mov dword [eax + 8], 3
mov ecx, dword [ebp - 0x108]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x114]
mov dword [esp + 4], eax
lea eax, [esi + 0x20]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx + eax + 3]
mov dword [edx], eax
jmp case.0x403731.0
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 6
lea eax, [edi + 0x10]
mov dword [eax + 4], 2
mov dword [eax], 0
fld1
fstp qword [eax + 8]
lea eax, [edi + 0x20]
mov dword [eax + 4], 2
mov dword [eax], 2
mov dword [eax + 8], 4
mov eax, dword [ebp - 0x108]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x114]
mov dword [esp + 4], edx
lea eax, [edi + 0x30]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [ebp - 0xfc]
lea eax, [edx + eax + 3]
mov dword [ecx], eax
jmp case.0x403731.0
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 4
mov ecx, dword [ebp - 0x108]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x114]
mov dword [esp + 4], eax
lea eax, [edi + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx + eax + 1]
mov dword [edx], eax
jmp case.0x403731.0
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 3
mov eax, dword [ebp - 0x108]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x114]
mov dword [esp + 4], edx
lea eax, [edi + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [ebp - 0xfc]
lea eax, [edx + eax + 1]
mov dword [ecx], eax
jmp case.0x403731.0
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 2
mov ecx, dword [ebp - 0x108]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x114]
mov dword [esp + 4], eax
lea eax, [edi + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx + eax + 1]
mov dword [edx], eax
jmp case.0x403731.0
mov dword [edi + 4], 1
mov dword [edi], 2
mov dword [edi + 8], 1
mov eax, dword [ebp - 0x108]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x114]
mov dword [esp + 4], edx
lea eax, [edi + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [ebp - 0xfc]
lea eax, [edx + eax + 1]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
sub eax, dword [ebp - 0x100]
shl eax, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x118]
add eax, dword [ebp - 0x10c]
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shl eax, 4
add eax, dword [ebp + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_memmove
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
sub eax, dword [ebp - 0x100]
mov edx, dword [ebp + 0x10]
add dword [edx], eax
cmp byte [ebp - 0x101], 0
je 0x403ac5
cmp dword [ebp - 0xfc], 1
jne 0x403ac5
mov ecx, dword [ebp - 0x114]
cmp dword [ecx], 0
jne 0x403ac5
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x40]
mov dword [esp + 8], eax
fld qword [ecx + 8]
fstp qword [esp]
call fcn.0042759b
fld qword [ebp - 0x40]
fld dword [0x42b0e8]
fld st(1)
fprem
fnstsw ax
sahf
jp 0x403a26
fstp st(1)
fucomi st(0)
jp 0x403a39
je 0x403a4f
fstp st(0)
jmp 0x403a3b
fstp st(0)
fld dword [0x42b0e8]
fstp qword [esp + 8]
fstp qword [esp]
call sub.cygwin1.dll_fmod
jmp 0x403a51
fstp st(1)
fldz
fxch st(1)
fucompi st(1)
fstp st(0)
jne 0x403ac5
jp 0x403ac5
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
shl eax, 4
mov edx, dword [ebp + 0xc]
add edx, eax
mov eax, dword [ebp + 0xc]
mov ecx, eax
cmp eax, edx
jae 0x403a90
add dword [eax + 4], 1
add eax, 0x10
cmp edx, eax
ja 0x403a73
mov eax, dword [ebp + 0xc]
not eax
lea eax, [edx + eax]
and eax, 0xfffffff0
mov edx, dword [ebp + 0xc]
lea ecx, [edx + eax + 0x10]
mov dword [ecx + 4], 1
mov dword [ecx], 2
mov dword [ecx + 8], 3
lea eax, [ecx + 0x10]
mov dword [eax + 4], 1
mov dword [eax], 1
lea eax, [ecx + 0x18]
mov dword [esp], eax
call fcn.00401bc3
mov ecx, dword [ebp + 0x10]
add dword [ecx], 2
mov eax, dword [ebp - 0x110]
sub eax, 5
mov edx, 1
cmp eax, 1
ja 0x403afb
mov eax, dword [ebp - 0x114]
sub eax, 0x10
sub eax, dword [ebp - 0x118]
sar eax, 4
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov edx, 1
jmp 0x403afb
mov edx, 0
mov eax, edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret