// File: Proudc[P]CTSS/src/ContinuousQuery/Base.cpp
// Function: handleNewPath(Graph*, TraversingPath*, TraversingPath*, int)
void handleNewPath(Graph* myGraph, TraversingPath* oldPath, TraversingPath* newPath, const int newVertexID)
{
	printf("Start processing new Traversingpath...\n");
	(*newPath) = (*oldPath);
	const Vertex finalVertex = myGraph->vertexsVector[oldPath->finalVertexID];
	const Vertex newVertex   = myGraph->vertexsVector[newVertexID];
	newPath->edges.push_back(findEdge(myGraph, newVertex, finalVertex).edgeID);
	newPath->finalVertexID = newVertexID;
	newPath->distToRefer   = std::max(newPath->distToRefer, newVertex.distToRefer);
	if (newPath->minPos < newVertex.minPos)
	{
		newPath->minPos = newVertex.minPos;
	}
	newPath->maxPos = newVertex.maxPos;
	printf("Processing the new Traversingpath is complete!!!\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
leaq 0x11048(%rip), %rdi     # 0x19489
xorl %eax, %eax
callq 0x2040
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x9120
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x10(%rbp), %rax
movslq 0x8(%rax), %rax
imulq $0x70, %rax, %rax
addq %rax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x8f20
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movslq -0x1c(%rbp), %rax
imulq $0x70, %rax, %rax
addq %rax, %rsi
leaq -0x100(%rbp), %rdi
callq 0x8f20
jmp 0x8499
movq -0x18(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x220(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq -0x1a0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x8f20
jmp 0x84c8
leaq -0x210(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x8f20
jmp 0x84dd
movq -0x218(%rbp), %rsi
leaq -0x130(%rbp), %rdi
movq %rdi, -0x228(%rbp)
leaq -0x1a0(%rbp), %rdx
leaq -0x210(%rbp), %rcx
callq 0x8340
movq -0x220(%rbp), %rdi
movq -0x228(%rbp), %rsi
callq 0x9170
jmp 0x851a
leaq -0x210(%rbp), %rdi
callq 0x90a0
leaq -0x1a0(%rbp), %rdi
callq 0x90a0
movl -0x1c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
leaq -0xd8(%rbp), %rsi
callq 0x9020
movq %rax, -0x230(%rbp)
jmp 0x8559
movq -0x230(%rbp), %rax
movsd (%rax), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x10(%rax)
movq -0x18(%rbp), %rax
movl (%rax), %eax
cmpl -0xfc(%rbp), %eax
jge 0x85f4
movl -0xfc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
jmp 0x85f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x863e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x8632
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x85e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x90a0
leaq -0x1a0(%rbp), %rdi
callq 0x90a0
jmp 0x8632
movl -0xf8(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
leaq 0x10ea9(%rip), %rdi     # 0x194b1
xorl %eax, %eax
callq 0x2040
jmp 0x8611
leaq -0x100(%rbp), %rdi
callq 0x90a0
leaq -0x90(%rbp), %rdi
callq 0x90a0
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
leaq -0x100(%rbp), %rdi
callq 0x90a0
leaq -0x90(%rbp), %rdi
callq 0x90a0
movq -0x108(%rbp), %rdi
callq 0x2240
nopw %cs:(%rax,%rax)