// File: jkingan[P]ladyheather/heathgps.cpp
// Function: calc_cie(double, double, double)
void calc_cie(DATA_SIZE red_uw, DATA_SIZE green_uw,  DATA_SIZE blue_uw)
{
   if(tcs_color) {  // TCS3414
      cie_x = ((DATA_SIZE) -0.14282*red_uw) + ((DATA_SIZE) 1.54924*green_uw) + ((DATA_SIZE) -0.95641*blue_uw); // TCS3414
      cie_y = ((DATA_SIZE) -0.32466*red_uw) + ((DATA_SIZE) 1.57837*green_uw) + ((DATA_SIZE) -0.73191*blue_uw);
      cie_z = ((DATA_SIZE) -0.68202*red_uw) + ((DATA_SIZE) 0.77073*green_uw) + ((DATA_SIZE) +0.56332*blue_uw);
   }
   else {           // TCS3210
      cie_x = ((DATA_SIZE) 0.4287*red_uw) + ((DATA_SIZE) 0.4489*green_uw)  + ((DATA_SIZE) 0.0493*blue_uw);
      cie_y = ((DATA_SIZE) 0.1450*red_uw) + ((DATA_SIZE) 0.9623*green_uw)  + ((DATA_SIZE) -0.1167*blue_uw);
      cie_z = ((DATA_SIZE) 0.0539*red_uw) + ((DATA_SIZE) -0.4059*green_uw) + ((DATA_SIZE) 1.4191*blue_uw);
   }
   cie_sum = cie_x + cie_y + cie_z;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movsd %xmm2, -0x18(%rbp)
leaq 0x2c35bf(%rip), %rax    # 0x36c149
cmpb $0x0, (%rax)
je 0xa8c55
movsd -0x8(%rbp), %xmm1
movsd 0xda180(%rip), %xmm0    # 0x182d20
mulsd -0x10(%rbp), %xmm0
movsd 0xda16b(%rip), %xmm2    # 0x182d18
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xda14e(%rip), %xmm2    # 0x182d10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x3273be(%rip)   # 0x3cff90
movsd -0x8(%rbp), %xmm1
movsd 0xda129(%rip), %xmm0    # 0x182d08
mulsd -0x10(%rbp), %xmm0
movsd 0xda114(%rip), %xmm2    # 0x182d00
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xda0f7(%rip), %xmm2    # 0x182cf8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x327387(%rip)   # 0x3cff98
movsd -0x8(%rbp), %xmm1
movsd 0xda0d2(%rip), %xmm0    # 0x182cf0
mulsd -0x10(%rbp), %xmm0
movsd 0xda0bd(%rip), %xmm2    # 0x182ce8
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xda0a0(%rip), %xmm2    # 0x182ce0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x327350(%rip)   # 0x3cffa0
jmp 0xa8d12
movsd -0x8(%rbp), %xmm1
movsd 0xda076(%rip), %xmm0    # 0x182cd8
mulsd -0x10(%rbp), %xmm0
movsd 0xda061(%rip), %xmm2    # 0x182cd0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xda044(%rip), %xmm2    # 0x182cc8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x3272fc(%rip)   # 0x3cff90
movsd -0x8(%rbp), %xmm1
movsd 0xda01f(%rip), %xmm0    # 0x182cc0
mulsd -0x10(%rbp), %xmm0
movsd 0xda00a(%rip), %xmm2    # 0x182cb8
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xd9fed(%rip), %xmm2    # 0x182cb0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x3272c5(%rip)   # 0x3cff98
movsd -0x8(%rbp), %xmm1
movsd 0xd9fc8(%rip), %xmm0    # 0x182ca8
mulsd -0x10(%rbp), %xmm0
movsd 0xd9fb3(%rip), %xmm2    # 0x182ca0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
movsd 0xd9f96(%rip), %xmm2    # 0x182c98
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x32728e(%rip)   # 0x3cffa0
movsd 0x327276(%rip), %xmm0   # 0x3cff90
addsd 0x327276(%rip), %xmm0   # 0x3cff98
addsd 0x327276(%rip), %xmm0   # 0x3cffa0
movsd %xmm0, 0x327276(%rip)   # 0x3cffa8
popq %rbp
retq
nopw %cs:(%rax,%rax)