// File: /workspace/github_cpp_makefile_star2_O3/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 %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
xorl %eax, %eax
movq %rax, -0x8(%r12)
movb %al, (%r12)
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
movq 0x2c66(%rip), %rdi      # 0x4fd0
leaq 0xc93(%rip), %rsi       # 0x3004
movl $0x1d, %edx
callq 0x20e0
movq 0x2c4e(%rip), %rdi      # 0x4fd0
leaq 0xc99(%rip), %rsi       # 0x3022
movl $0x2d, %edx
callq 0x20e0
movq 0x2c46(%rip), %rdi      # 0x4fe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x20b0
movsbl %al, %edx
movq 0x2c2b(%rip), %rbx      # 0x4fe0
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x2180
movq 0x2c07(%rip), %r14      # 0x4fd0
leaq 0xc80(%rip), %rsi       # 0x3050
movl $0x2c, %edx
movq %r14, %rdi
callq 0x20e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x20b0
movsbl %al, %edx
movq 0x2be5(%rip), %rdi      # 0x4fe0
leaq 0x28(%rsp), %rsi
callq 0x2180
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x88(%rsp), %rdi
callq 0x2786
leaq 0x18(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x2ac0
movl %eax, %ebp
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x245c
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x20c0
leaq 0x78(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x2786
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x2ac0
movl %eax, %r15d
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0x24a5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x20c0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movss 0x10(%rsp), %xmm3
callq 0x2e50
testb %r15b, %bpl
je 0x269a
movl %eax, %ebx
movq 0x2afc(%rip), %rdi      # 0x4fd0
leaq 0xbd6(%rip), %rsi       # 0x30b1
movl $0x3, %edx
callq 0x20e0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x2ada(%rip), %rdi      # 0x4fd0
callq 0x20e0
movq 0x2ace(%rip), %rdi      # 0x4fd0
leaq 0xbac(%rip), %rsi       # 0x30b5
movl $0x9, %edx
callq 0x20e0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x281c
cvtss2sd %xmm0, %xmm0
movq 0x2aa1(%rip), %rdi      # 0x4fd0
callq 0x2140
movq %rax, %r14
leaq 0xb81(%rip), %rsi       # 0x30bf
movl $0xe, %edx
movq %rax, %rdi
callq 0x20e0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x2838
cvtss2sd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2140
leaq 0xb5f(%rip), %rsi       # 0x30ce
leaq 0xb72(%rip), %r14       # 0x30e8
testb %bl, %bl
cmoveq %r14, %rsi
movl $0x19, %eax
movl $0x27, %edx
cmovneq %rax, %rdx
movq 0x2a3f(%rip), %rdi      # 0x4fd0
callq 0x20e0
movq 0x2a33(%rip), %rdi      # 0x4fd0
leaq 0xb6c(%rip), %rsi       # 0x3110
movl $0x3, %edx
callq 0x20e0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x2a11(%rip), %rdi      # 0x4fd0
callq 0x20e0
movq 0x2a05(%rip), %rdi      # 0x4fd0
leaq 0xae3(%rip), %rsi       # 0x30b5
movl $0x9, %edx
callq 0x20e0
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x281c
cvtss2sd %xmm0, %xmm0
movq 0x29d8(%rip), %rdi      # 0x4fd0
callq 0x2140
movq %rax, %r15
leaq 0xab8(%rip), %rsi       # 0x30bf
movl $0xe, %edx
movq %rax, %rdi
callq 0x20e0
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x2838
cvtss2sd %xmm0, %xmm0
movq %r15, %rdi
callq 0x2140
leaq 0xadc(%rip), %rax       # 0x3114
testb %bl, %bl
cmovneq %rax, %r14
movl $0x19, %eax
movl $0x27, %edx
cmovneq %rax, %rdx
movq 0x297d(%rip), %rbx      # 0x4fd0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x20e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x20b0
movsbl %al, %esi
movq 0x2954(%rip), %rdi      # 0x4fd0
callq 0x2030
movq %rax, %rdi
callq 0x2070
movq %rax, %r14
movl $0x16, %edx
leaq 0xa02(%rip), %rsi       # 0x309a
jmp 0x26ba
leaq 0x9dc(%rip), %rsi       # 0x307d
movl $0x1b, %edx
movq %r14, %rdi
callq 0x20e0
movl $0x17, %edx
leaq 0x9df(%rip), %rsi       # 0x3099
movq %r14, %rdi
callq 0x20e0
movq 0x2917(%rip), %rdi      # 0x4fe0
callq 0x20f0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x26e5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x20c0
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x26fc
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x20c0
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0x274f
movq 0x78(%rsp), %rsi
jmp 0x273e
jmp 0x274c
movq %rax, %r14
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x274f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x20c0
jmp 0x274f
jmp 0x274c
jmp 0x274c
movq %rax, %r14
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x2766
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x20c0
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x277d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x20c0
movq %r14, %rdi
callq 0x2160
nop