// File: /workspace/github_cpp_makefile_star2_O1/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 0x2c56(%rip), %rdi      # 0x4fd0
leaq 0xc83(%rip), %rsi       # 0x3004
movl $0x1d, %edx
callq 0x20f0
movq 0x2c3e(%rip), %rdi      # 0x4fd0
leaq 0xc89(%rip), %rsi       # 0x3022
movl $0x2d, %edx
callq 0x20f0
movq 0x2c36(%rip), %rdi      # 0x4fe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x20c0
movsbl %al, %edx
movq 0x2c1b(%rip), %rbx      # 0x4fe0
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x2190
movq 0x2bf7(%rip), %r14      # 0x4fd0
leaq 0xc70(%rip), %rsi       # 0x3050
movl $0x2c, %edx
movq %r14, %rdi
callq 0x20f0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x20c0
movsbl %al, %edx
movq 0x2bd5(%rip), %rdi      # 0x4fe0
leaq 0x28(%rsp), %rsi
callq 0x2190
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x88(%rsp), %rdi
callq 0x2796
leaq 0x18(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x2acc
movl %eax, %ebp
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x246c
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x20d0
leaq 0x78(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x2796
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x2acc
movl %eax, %r15d
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0x24b5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x20d0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movss 0x10(%rsp), %xmm3
callq 0x2e74
testb %r15b, %bpl
je 0x26aa
movl %eax, %ebx
movq 0x2aec(%rip), %rdi      # 0x4fd0
leaq 0xbc6(%rip), %rsi       # 0x30b1
movl $0x3, %edx
callq 0x20f0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x2aca(%rip), %rdi      # 0x4fd0
callq 0x20f0
movq 0x2abe(%rip), %rdi      # 0x4fd0
leaq 0xb9c(%rip), %rsi       # 0x30b5
movl $0x9, %edx
callq 0x20f0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x2828
cvtss2sd %xmm0, %xmm0
movq 0x2a91(%rip), %rdi      # 0x4fd0
callq 0x2150
movq %rax, %r14
leaq 0xb71(%rip), %rsi       # 0x30bf
movl $0xe, %edx
movq %rax, %rdi
callq 0x20f0
movsd 0x18(%rsp), %xmm0
movss 0x20(%rsp), %xmm1
callq 0x2844
cvtss2sd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2150
leaq 0xb4f(%rip), %rsi       # 0x30ce
leaq 0xb62(%rip), %r14       # 0x30e8
testb %bl, %bl
cmoveq %r14, %rsi
movl $0x19, %eax
movl $0x27, %edx
cmovneq %rax, %rdx
movq 0x2a2f(%rip), %rdi      # 0x4fd0
callq 0x20f0
movq 0x2a23(%rip), %rdi      # 0x4fd0
leaq 0xb5c(%rip), %rsi       # 0x3110
movl $0x3, %edx
callq 0x20f0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x2a01(%rip), %rdi      # 0x4fd0
callq 0x20f0
movq 0x29f5(%rip), %rdi      # 0x4fd0
leaq 0xad3(%rip), %rsi       # 0x30b5
movl $0x9, %edx
callq 0x20f0
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x2828
cvtss2sd %xmm0, %xmm0
movq 0x29c8(%rip), %rdi      # 0x4fd0
callq 0x2150
movq %rax, %r15
leaq 0xaa8(%rip), %rsi       # 0x30bf
movl $0xe, %edx
movq %rax, %rdi
callq 0x20f0
movsd 0x8(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
callq 0x2844
cvtss2sd %xmm0, %xmm0
movq %r15, %rdi
callq 0x2150
leaq 0xacc(%rip), %rax       # 0x3114
testb %bl, %bl
cmovneq %rax, %r14
movl $0x19, %eax
movl $0x27, %edx
cmovneq %rax, %rdx
movq 0x296d(%rip), %rbx      # 0x4fd0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x20f0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x20c0
movsbl %al, %esi
movq 0x2944(%rip), %rdi      # 0x4fd0
callq 0x2030
movq %rax, %rdi
callq 0x2070
movq %rax, %r14
movl $0x16, %edx
leaq 0x9f2(%rip), %rsi       # 0x309a
jmp 0x26ca
leaq 0x9cc(%rip), %rsi       # 0x307d
movl $0x1b, %edx
movq %r14, %rdi
callq 0x20f0
movl $0x17, %edx
leaq 0x9cf(%rip), %rsi       # 0x3099
movq %r14, %rdi
callq 0x20f0
movq 0x2907(%rip), %rdi      # 0x4fe0
callq 0x2100
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x26f5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x270c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x20d0
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 0x275f
movq 0x78(%rsp), %rsi
jmp 0x274e
jmp 0x275c
movq %rax, %r14
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x275f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x20d0
jmp 0x275f
jmp 0x275c
jmp 0x275c
movq %rax, %r14
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x2776
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x278d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x20d0
movq %r14, %rdi
callq 0x2170
nop