// File: rishabh-battulwar[P]imageprocessing/./include/colorspace.h
// Function: Rgb2Hsv(double*, double*, double*, double, double, double)
void Rgb2Hsv(num *H, num *S, num *V, num R, num G, num B)
{
	num Max = MAX3(R, G, B);
	num Min = MIN3(R, G, B);
	num C = Max - Min;
	
	
	*V = Max;
	
	if(C > 0)
	{
		if(Max == R)
		{
			*H = (G - B) / C;
			
			if(G < B)
				*H += 6;
		}
		else if(Max == G)
			*H = 2 + (B - R) / C;
		else
			*H = 4 + (R - G) / C;
		
		*H *= 60;
		*S = C / Max;
	}
	else
		*H = *S = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movsd %xmm1, -0x28(%rbp)
movsd %xmm2, -0x30(%rbp)
movsd -0x20(%rbp), %xmm0
ucomisd -0x28(%rbp), %xmm0
jb 0x90a9
movsd -0x20(%rbp), %xmm0
ucomisd -0x30(%rbp), %xmm0
jb 0x9093
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x909d
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x90d5
movsd -0x28(%rbp), %xmm0
ucomisd -0x30(%rbp), %xmm0
jb 0x90c1
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x90cb
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x9121
movsd -0x20(%rbp), %xmm1
movsd -0x30(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x910b
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
jmp 0x9115
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
jmp 0x9151
movsd -0x28(%rbp), %xmm1
movsd -0x30(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x913d
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
jmp 0x9147
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x38(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x48(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9254
movsd -0x38(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
jne 0x91d4
jp 0x91d4
movsd -0x28(%rbp), %xmm0
subsd -0x30(%rbp), %xmm0
divsd -0x48(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x28(%rbp), %xmm1
movsd -0x30(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x91d2
movq -0x8(%rbp), %rax
movsd 0x1307e(%rip), %xmm0    # 0x1c248
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
jmp 0x922c
movsd -0x38(%rbp), %xmm0
ucomisd -0x28(%rbp), %xmm0
jne 0x9207
jp 0x9207
movsd -0x30(%rbp), %xmm1
subsd -0x20(%rbp), %xmm1
divsd -0x48(%rbp), %xmm1
movsd 0x13047(%rip), %xmm0    # 0x1c240
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x922a
movsd -0x20(%rbp), %xmm1
subsd -0x28(%rbp), %xmm1
divsd -0x48(%rbp), %xmm1
movsd 0x1301a(%rip), %xmm0    # 0x1c238
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x922c
movq -0x8(%rbp), %rax
movsd 0x13018(%rip), %xmm0    # 0x1c250
mulsd (%rax), %xmm0
movsd %xmm0, (%rax)
movsd -0x48(%rbp), %xmm0
divsd -0x38(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x926a
movq -0x10(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
popq %rbp
retq
nopl (%rax)