// File: /workspace/github_cpp_makefile_star2_O1/ADAPTLab[P]MuDBSCAN/RTree.cpp
// Function: isCorrectRTree(RhdrNd*)
void isCorrectRTree(RHdrNd hdrNdTree)
{
    RLstNd lstNdTemp = hdrNdTree->ptrFirstNd,temp;
    int iCnt = 0,flag;

    while(lstNdTemp != NULL)
    {   
        if(lstNdTemp->tnInfo->ndType == INTNODE)
        {   
            temp=lstNdTemp->ptrChildLst->ptrFirstNd;
            while(temp!=NULL)
            {
            	switch(temp->tnInfo->ndType)
            	{
            		case INTNODE:
            			flag=0;
		                for(iCnt=0;iCnt<DIMENSION;iCnt++)
		                {
		                    if(temp->tnInfo->tdInfo->rgnRect->iBottomLeft[iCnt]<lstNdTemp->tnInfo->tdInfo->rgnRect->iBottomLeft[iCnt])
		                        flag=1;
		                }
		                for(iCnt=0;iCnt<DIMENSION;iCnt++)
		                {
		                    if(temp->tnInfo->tdInfo->rgnRect->iTopRight[iCnt]>lstNdTemp->tnInfo->tdInfo->rgnRect->iTopRight[iCnt])
		                        flag=1;
		                }
		                if(flag==1)
		                {
		                    printf("WRONG!!!\n");
		                    for(iCnt=0;iCnt<DIMENSION;iCnt++)
		                    {
		                        printf("%lf %lf %lf %lf\n",temp->tnInfo->tdInfo->rgnRect->iBottomLeft[iCnt],temp->tnInfo->tdInfo->rgnRect->iTopRight[iCnt],lstNdTemp->tnInfo->tdInfo->rgnRect->iBottomLeft[iCnt],lstNdTemp->tnInfo->tdInfo->rgnRect->iTopRight[iCnt]);
		                    }
		                }
		                temp=temp->ptrNextNd;
            		break;

            		case EXTNODE:
            			return;
            		break;
            	}
                
            }
            isCorrectRTree(lstNdTemp->ptrChildLst);
        }
        lstNdTemp = lstNdTemp->ptrNextNd;
    }
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x8(%rdi), %r15
testq %r15, %r15
je 0x689d
leaq 0x10c08(%rip), %r12     # 0x17364
movl $0x1, %r13d
movq (%r15), %rax
cmpl $0x0, (%rax)
jne 0x6890
movq 0x8(%r15), %rax
movq 0x8(%rax), %rbx
testq %rbx, %rbx
je 0x6887
movq (%rbx), %rdx
movl (%rdx), %eax
testl %eax, %eax
je 0x6792
cmpl $0x1, %eax
jne 0x6776
jmp 0x689d
movslq (%r12), %rax
testq %rax, %rax
jle 0x67d1
movq 0x8(%rdx), %rcx
movq (%rcx), %rcx
movq (%rcx), %rsi
movq (%r15), %rcx
movq 0x8(%rcx), %rcx
movq (%rcx), %rcx
movq (%rcx), %rdi
xorl %r8d, %r8d
xorl %ecx, %ecx
movsd (%rdi,%r8,8), %xmm0
ucomisd (%rsi,%r8,8), %xmm0
cmoval %r13d, %ecx
incq %r8
cmpq %r8, %rax
jne 0x67b7
jmp 0x67d3
xorl %ecx, %ecx
testl %eax, %eax
jle 0x6808
movq 0x8(%rdx), %rdx
movq (%rdx), %rdx
movq 0x8(%rdx), %rdx
movq (%r15), %rsi
movq 0x8(%rsi), %rsi
movq (%rsi), %rsi
movq 0x8(%rsi), %rsi
xorl %edi, %edi
movsd (%rdx,%rdi,8), %xmm0
ucomisd (%rsi,%rdi,8), %xmm0
cmoval %r13d, %ecx
incq %rdi
cmpq %rdi, %rax
jne 0x67f2
cmpl $0x1, %ecx
jne 0x687e
leaq 0xb94d(%rip), %rdi      # 0x12161
callq 0x3430
leaq 0xb930(%rip), %rdi      # 0x12150
cmpl $0x0, (%r12)
jle 0x687e
xorl %r14d, %r14d
movq (%rbx), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movsd (%rcx,%r14,8), %xmm0
movsd (%rax,%r14,8), %xmm1
movq (%r15), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movsd (%rcx,%r14,8), %xmm2
movsd (%rax,%r14,8), %xmm3
movb $0x4, %al
callq 0x3050
leaq 0xb8de(%rip), %rdi      # 0x12150
incq %r14
movslq (%r12), %rax
cmpq %rax, %r14
jl 0x682a
movq 0x10(%rbx), %rbx
jmp 0x6776
movq 0x8(%r15), %rdi
callq 0x673a
movq 0x10(%r15), %r15
testq %r15, %r15
jne 0x6762
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq