// File: /workspace/github_cpp_makefile_star2_O2/El-Duder1no[P]geometry/src/main.cpp
// Function: main
int main()
{
    Circle one, two;
    string text, text1;

    cout << "Input format: circle(x y, r)\n";

    cout << "\nEnter the coordinates of the first circle:  ";
    getline(std::cin, text);
    cout << "Enter the coordinates of the second circle: ";
    getline(std::cin, text1);

    bool first = structFill(one, text);
    bool second = structFill(two, text1);
    bool intersec = Intersection(one, two);

    if (first == false or second == false) {
        cout << "\nThe input data is invalid!";

        cout << "\nPress any key to exit\n";
        cin.get();
        return 0;
    }

    cout << "\n1." << text;
    cout << "\n  Area: " << Area(one) << "\n  Perimeter: " << Perimeter(one);
    if (intersec == true) {
        cout << "\nIntersects:\n  2. circle\n";
    } else {
        cout << "\nThe figure doesn't intersect anything\n";
    }

    cout << "\n2." << text1;
    cout << "\n  Area: " << Area(two) << "\n  Perimeter: " << Perimeter(two);
    if (intersec == true) {
        cout << "\nIntersects:\n  1. circle\n";
    } else {
        cout << "\nThe figure doesn't intersect anything\n";
    }

    cout << endl << "Press any key to exit\n";
    cin.get();
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xa8, %rsp
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
movq 0x2ca6(%rip), %rdi      # 0x3fc8
leaq 0xcdb(%rip), %rsi       # 0x2004
callq 0x10c0
movq 0x2c93(%rip), %rdi      # 0x3fc8
leaq 0xce6(%rip), %rsi       # 0x2022
callq 0x10c0
movq 0x2c98(%rip), %rdi      # 0x3fe0
leaq 0x48(%rsp), %rsi
callq 0x1040
movq 0x2c6f(%rip), %r14      # 0x3fc8
leaq 0xcf0(%rip), %rsi       # 0x2050
movq %r14, %rdi
callq 0x10c0
movq 0x2c71(%rip), %rdi      # 0x3fe0
leaq 0x28(%rsp), %rsi
callq 0x1040
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1100
leaq 0x18(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x17ec
movl %eax, %ebp
leaq 0x88(%rsp), %rdi
callq 0x1060
leaq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x1100
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x17ec
movl %eax, %r15d
leaq 0x68(%rsp), %rdi
callq 0x1060
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movss 0x10(%rsp), %xmm3
callq 0x1a64
testb %r15b, %bpl
je 0x1547
movl %eax, %ebx
movq 0x2bc2(%rip), %rdi      # 0x3fc8
leaq 0xca4(%rip), %rsi       # 0x20b1
callq 0x10c0
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x10b0
movq 0x2ba2(%rip), %rdi      # 0x3fc8
leaq 0xc88(%rip), %rsi       # 0x20b5
callq 0x10c0
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x15d8
movq %r14, %rdi
callq 0x1090
leaq 0xc6a(%rip), %rsi       # 0x20bf
movq %rax, %rdi
callq 0x10c0
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x15f4
movq %r14, %rdi
callq 0x1090
leaq 0xc4e(%rip), %rsi       # 0x20ce
leaq 0xc61(%rip), %r14       # 0x20e8
testb %bl, %bl
cmoveq %r14, %rsi
movq 0x2b34(%rip), %rdi      # 0x3fc8
callq 0x10c0
movq 0x2b28(%rip), %rdi      # 0x3fc8
leaq 0xc69(%rip), %rsi       # 0x2110
callq 0x10c0
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x10b0
movq 0x2b08(%rip), %rdi      # 0x3fc8
leaq 0xbee(%rip), %rsi       # 0x20b5
callq 0x10c0
movq %rax, %r15
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x15d8
movq %r15, %rdi
callq 0x1090
leaq 0xbd0(%rip), %rsi       # 0x20bf
movq %rax, %rdi
callq 0x10c0
movq %rax, %r15
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x15f4
movq %r15, %rdi
callq 0x1090
leaq 0xbfa(%rip), %rax       # 0x2114
testb %bl, %bl
cmovneq %rax, %r14
movq 0x2aa1(%rip), %rdi      # 0x3fc8
movq %r14, %rsi
callq 0x10c0
movq 0x2a92(%rip), %rdi      # 0x3fc8
callq 0x1070
movq %rax, %r14
leaq 0xb55(%rip), %rsi       # 0x209a
jmp 0x155d
leaq 0xb2f(%rip), %rsi       # 0x207d
movq %r14, %rdi
callq 0x10c0
leaq 0xb3c(%rip), %rsi       # 0x2099
movq %r14, %rdi
callq 0x10c0
movq 0x2a74(%rip), %rdi      # 0x3fe0
callq 0x10e0
leaq 0x28(%rsp), %rdi
callq 0x1060
leaq 0x48(%rsp), %rdi
callq 0x1060
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0x15ac
jmp 0x15b7
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x1060
jmp 0x15ba
jmp 0x15b7
jmp 0x15b7
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x1060
leaq 0x48(%rsp), %rdi
callq 0x1060
movq %rbx, %rdi
callq 0x1130
nop