// File: FreeSlave[P]vhlt/hlbsp/tjunc.cpp
// Function: CanonicalVector(double*)
static bool     CanonicalVector(vec3_t vec)
{
    if (VectorNormalize(vec))
    {
        if (vec[0] > NORMAL_EPSILON )
        {
            return true;
        }
        else if (vec[0] < -NORMAL_EPSILON )
        {
            VectorSubtract(vec3_origin, vec, vec);
            return true;
        }
        else
        {
            vec[0] = 0;
        }
    
        if (vec[1] > NORMAL_EPSILON )
        {
            return true;
        }
        else if (vec[1] < -NORMAL_EPSILON )
        {
            VectorSubtract(vec3_origin, vec, vec);
            return true;
        }
        else
        {
            vec[1] = 0;
        }

        if (vec[2] > NORMAL_EPSILON )
        {
            return true;
        }
        else if (vec[2] < -NORMAL_EPSILON )
        {
            VectorSubtract(vec3_origin, vec, vec);
            return true;
        }
        else
        {
            vec[2] = 0;
        }
//        hlassert(false);
        return false;
    }
//    hlassert(false);
    return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x11bc0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x31443
jp 0x31443
jmp 0x31648
movq 0x8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x4c14(%rip), %xmm1     # 0x36068
ucomisd %xmm1, %xmm0
jbe 0x31464
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
movsd 0xa987(%rip), %xmm0     # 0x3bdf8
ucomisd (%rax), %xmm0
jbe 0x314de
leaq 0x69d2(%rip), %rax      # 0x37e50
movsd (%rax), %xmm0
movq 0x8(%rsp), %rax
subsd (%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x69b5(%rip), %rax      # 0x37e50
movsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x6995(%rip), %rax      # 0x37e50
movsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x10(%rax)
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x314ec
movq 0x8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd 0x4b6a(%rip), %xmm1     # 0x36068
ucomisd %xmm1, %xmm0
jbe 0x3150e
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
movsd 0xa8dd(%rip), %xmm0     # 0x3bdf8
ucomisd 0x8(%rax), %xmm0
jbe 0x31589
leaq 0x6927(%rip), %rax      # 0x37e50
movsd (%rax), %xmm0
movq 0x8(%rsp), %rax
subsd (%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x690a(%rip), %rax      # 0x37e50
movsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x68ea(%rip), %rax      # 0x37e50
movsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x10(%rax)
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rax)
jmp 0x31598
movq 0x8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd 0x4abe(%rip), %xmm1     # 0x36068
ucomisd %xmm1, %xmm0
jbe 0x315ba
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
movsd 0xa831(%rip), %xmm0     # 0x3bdf8
ucomisd 0x10(%rax), %xmm0
jbe 0x31632
leaq 0x687b(%rip), %rax      # 0x37e50
movsd (%rax), %xmm0
movq 0x8(%rsp), %rax
subsd (%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x685e(%rip), %rax      # 0x37e50
movsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x8(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x683e(%rip), %rax      # 0x37e50
movsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
subsd 0x10(%rax), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x10(%rax)
movb $0x1, 0x17(%rsp)
jmp 0x3164d
movq 0x8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x10(%rax)
jmp 0x31641
movb $0x0, 0x17(%rsp)
jmp 0x3164d
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)