// File: dcarrey[P]hgt-detection/./utils_tree.cpp
// Function: Floyd(double**, double**, double**, int, int)
void Floyd(double ** Adjacence , double ** DIST,double **DIST2,int n,int kt)
{
	int i,j,k1;

	for(i=1;i<=2*n-2-kt;i++)
		for(j=1;j<=2*n-2-kt;j++)
		{
			if(i==j)
				DIST[i][j] = DIST2[i][j] = 0;
			else
				DIST[i][j] = DIST2[i][j] = Adjacence[i][j];
		}

		for(i=1;i<=2*n-2-kt;i++)
			for(j=1;j<=2*n-2-kt;j++)
				for(k1=1;k1<=2*n-2-kt;k1++)
				{
					if((DIST[j][i] + DIST[i][k1]) < DIST[j][k1])
						DIST[j][k1] = DIST2[j][k1] = DIST[j][i] + DIST[i][k1];
				}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl -0x1c(%rbp), %ecx
shll %ecx
subl $0x2, %ecx
subl -0x20(%rbp), %ecx
cmpl %ecx, %eax
jg 0x2afa
movl $0x1, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl -0x1c(%rbp), %ecx
shll %ecx
subl $0x2, %ecx
subl -0x20(%rbp), %ecx
cmpl %ecx, %eax
jg 0x2aea
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x2a9b
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0x2ada
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x2adc
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x2a4b
jmp 0x2aec
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x2a2e
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl -0x1c(%rbp), %ecx
shll %ecx
subl $0x2, %ecx
subl -0x20(%rbp), %ecx
cmpl %ecx, %eax
jg 0x2c1a
movl $0x1, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl -0x1c(%rbp), %ecx
shll %ecx
subl $0x2, %ecx
subl -0x20(%rbp), %ecx
cmpl %ecx, %eax
jg 0x2c0a
movl $0x1, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl -0x1c(%rbp), %ecx
shll %ecx
subl $0x2, %ecx
subl -0x20(%rbp), %ecx
cmpl %ecx, %eax
jg 0x2bfa
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x24(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x2c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm1
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x2c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x2bea
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x24(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x2c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movq -0x18(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x2c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x2c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x2bec
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x2b3b
jmp 0x2bfc
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x2b1e
jmp 0x2c0c
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x2b01
popq %rbp
retq
nopl (%rax)