// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_venus_ext_raw()
void parse_venus_ext_raw()
{
int count;
int i;
int svid;
int prn;

int snr;
double range;
double phase;
float doppler;
int lli;

int flags;
int week;
int tow;
double meas_tow;
int xtow;
int gnss;
int meas;
int freq;
int lti;

   // extended raw measurements
   log_packet_id("venus_ext_raw");

   saw_venus_raw |= 0x10;
   minor_alarms &= (~MINOR_NO_TRACK);

   tsip_byte();  // message version
   tsip_byte();  // iod
   week = tsip_word();  // week
   tow = tsip_dword();  // tow in msecs
   tsip_word();         // measurement period
   tsip_byte();         // measurement indicator
   tsip_byte();         // reserved
   count = tsip_byte();

   meas_tow = tow / 1000.0; // measurement tow
   if(raw_msg_rate == 0) return;
   xtow = (int) (meas_tow*nav_rate);  // raw Hz 

   if(1) {  // this causes time stamp faults in CSRS-PPP  //rnx3
      if(xtow % (int) ((double)raw_msg_rate*nav_rate)) return;

      obs_tow = meas_tow;
      jd_obs = GPS_EPOCH + ((double) week * 7.0) + jtime(0,0,0,meas_tow);
   }
   else {  // Only 1Hz nav rate
      if(((int) meas_tow % raw_msg_rate) != 0) return;  // drop unwanted messages

      obs_tow = meas_tow;
      jd_obs = GPS_EPOCH + ((double) week * 7.0) + jtime(0,0,0,meas_tow);
   }


if(0 && log_file) fprintf(log_file, "\njd_obs:%.9f  count:%d  week:%d\n", jd_obs, count, week);

   for(i=0; i<count; i++) {
      gnss = tsip_byte();
      meas = gnss >> 4;
      gnss &= 0x0F;

      svid = prn = tsip_byte();
      if     (gnss == 5) prn += 200; // Beidou  201..237
      else if(gnss == 3) prn += 300; // Galileo 301..350 (Heather values)
      else if(gnss == 2) prn += 64;  // Glonass 65..96
      else if(gnss == 1) prn += 0;   // SBAS    120..158
      else if(gnss == 0) prn += 0;   // GPS     1..37 (s/b 1..32)
      else prn = 0;

      freq = tsip_byte();
      lti = freq >> 4;   //lock time
      freq &= 0x0F;      //Glonass only

      snr = tsip_byte();
      range = tsip_double();
      phase = tsip_double();
      doppler = tsip_single();
      tsip_byte();   // pseudorange sdev
      tsip_byte();   // carrierphase sdev
      tsip_byte();   // doppler sdev
      flags = tsip_word();
      tsip_word();   // reserved

      if((flags & 0x01) == 0) range = 0.0;
      if((flags & 0x02) == 0) doppler = 0.0F;
      if((flags & 0x04) == 0) phase = 0.0;
      if((flags & 0x08) == 0) lli = 0;
      else                    lli = LOCK_LOST;
if(0 && log_file) fprintf(log_file, "  svid:%d  prn:%d  gnss:%d  meas:%02X  flags:%04X\n", svid, prn, gnss, meas, flags);

      if((prn >= 1) && (prn <= MAX_PRN)) {  // !!!! we need to handle non-C/A code "meas" value
         if(meas == 0) {  // L1 C/A
            sat[prn].range = range;
            sat[prn].doppler = doppler;
            sat[prn].code_phase = phase;
            sat[prn].ca_lli = lli;
            sat[prn].sig_level = (float) snr;

            if(snr != 0)  {
               have_snr |= rinex_gnss(prn);
            }
            if(range != 0.0) {
               have_range |= rinex_gnss(prn);
            }
            if(phase != 0.0)  {
               have_phase |= rinex_gnss(prn);
            }

            if(doppler != 0.0F) {
               if(have_doppler == 0) need_redraw = 2018;
               have_doppler |= rinex_gnss(prn);
            }
         }
         else if(meas == 1) {  // L1
            sat[prn].l1_range = range;
            sat[prn].l1_doppler = doppler;
            sat[prn].l1_code_phase = phase;
            sat[prn].l1_lli = lli;
            sat[prn].l1_sig_level = (float) snr;

            if(snr != 0) {
               have_l1_snr   |= rinex_gnss(prn);
            }
            if(range != 0.0F) {
               have_l1_range |= rinex_gnss(prn);
            }
            if(phase != 0.0F) {
               have_l1_phase |= rinex_gnss(prn);
            }
            if(doppler != 0.0F) {
               have_l1_doppler |= rinex_gnss(prn);
            }
         }
         else if(meas == 2) {  // L2
            sat[prn].l2_range = range;
            sat[prn].l2_doppler = doppler;
            sat[prn].l2_code_phase = phase;
            sat[prn].l2_lli = lli;
            sat[prn].l2_sig_level = (float) snr;

            if(snr != 0) {
               have_l2_snr   |= rinex_gnss(prn);
            }
            if(range != 0.0) {
               have_l2_range |= rinex_gnss(prn);
            }
            if(phase != 0.0 ) {
               have_l2_phase |= rinex_gnss(prn);
            }
            if(doppler != 0.0F) {
               have_l2_doppler |= rinex_gnss(prn);
            }
         }
         else if(meas == 4) {  // L5  E5A B2I  GLONASS L3
            sat[prn].l5_range = range;
            sat[prn].l5_doppler = doppler;
            sat[prn].l5_code_phase = phase;
            sat[prn].l5_lli = lli;
            sat[prn].l5_sig_level = (float) snr;

            if(snr != 0) {
               have_l5_snr   |= rinex_gnss(prn);
            }
            if(range != 0.0) {
               have_l5_range |= rinex_gnss(prn);
            }
            if(phase != 0.0) {
               have_l5_phase |= rinex_gnss(prn);
            }
            if(doppler != 0.0F) {
               have_l5_doppler |= rinex_gnss(prn);
            }
         }
         else if(meas == 5) {  // Galileo E5B
         }
         else if(meas == 6) {  // Galileo E6
         }
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
leaq 0xb8c60(%rip), %rdi     # 0x187dbf
callq 0x7add0
leaq 0x2cde69(%rip), %rax    # 0x39cfd4
movl (%rax), %ecx
orl $0x10, %ecx
leaq 0x2cde5d(%rip), %rax    # 0x39cfd4
movl %ecx, (%rax)
leaq 0x29d238(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
andl $-0x9, %ecx
leaq 0x29d22c(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
callq 0x7a510
callq 0x7a510
callq 0x7a560
movzwl %ax, %eax
movl %eax, -0x38(%rbp)
callq 0x7a680
movl %eax, -0x3c(%rbp)
callq 0x7a560
callq 0x7a510
callq 0x7a510
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x4(%rbp)
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd 0x9fe5e(%rip), %xmm1    # 0x16f030
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
leaq 0x1ab376(%rip), %rax    # 0x27a558
cmpl $0x0, (%rax)
jne 0xcf1ec
jmp 0xcf9b9
movsd -0x48(%rbp), %xmm0
leaq 0x1ab340(%rip), %rax    # 0x27a538
mulsd (%rax), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
leaq 0x1ab34b(%rip), %rcx    # 0x27a558
cvtsi2sdl (%rcx), %xmm0
leaq 0x1ab320(%rip), %rcx    # 0x27a538
mulsd (%rcx), %xmm0
cvttsd2si %xmm0, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xcf22d
jmp 0xcf9b9
movsd -0x48(%rbp), %xmm0
leaq 0x29d51f(%rip), %rax    # 0x36c758
movsd %xmm0, (%rax)
cvtsi2sdl -0x38(%rbp), %xmm0
movsd 0xa243e(%rip), %xmm1    # 0x171688
mulsd %xmm1, %xmm0
movsd 0xa23c2(%rip), %xmm1    # 0x171618
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x48(%rbp), %xmm0
xorl %edx, %edx
movl %edx, %edi
movl %edx, %esi
callq 0x122210
movaps %xmm0, %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm1, %xmm0
leaq 0x29d4ce(%rip), %rax    # 0x36c750
movsd %xmm0, (%rax)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0xcf9b9
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x54(%rbp)
movl -0x50(%rbp), %eax
andl $0xf, %eax
movl %eax, -0x50(%rbp)
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x10(%rbp)
movl %eax, -0xc(%rbp)
cmpl $0x5, -0x50(%rbp)
jne 0xcf2d7
movl -0x10(%rbp), %eax
addl $0xc8, %eax
movl %eax, -0x10(%rbp)
jmp 0xcf32c
cmpl $0x3, -0x50(%rbp)
jne 0xcf2ea
movl -0x10(%rbp), %eax
addl $0x12c, %eax            # imm = 0x12C
movl %eax, -0x10(%rbp)
jmp 0xcf32a
cmpl $0x2, -0x50(%rbp)
jne 0xcf2fb
movl -0x10(%rbp), %eax
addl $0x40, %eax
movl %eax, -0x10(%rbp)
jmp 0xcf328
cmpl $0x1, -0x50(%rbp)
jne 0xcf30c
movl -0x10(%rbp), %eax
addl $0x0, %eax
movl %eax, -0x10(%rbp)
jmp 0xcf326
cmpl $0x0, -0x50(%rbp)
jne 0xcf31d
movl -0x10(%rbp), %eax
addl $0x0, %eax
movl %eax, -0x10(%rbp)
jmp 0xcf324
movl $0x0, -0x10(%rbp)
jmp 0xcf326
jmp 0xcf328
jmp 0xcf32a
jmp 0xcf32c
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
andl $0xf, %eax
movl %eax, -0x58(%rbp)
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x14(%rbp)
callq 0x7a9d0
movsd %xmm0, -0x20(%rbp)
callq 0x7a9d0
movsd %xmm0, -0x28(%rbp)
callq 0x7a860
movss %xmm0, -0x2c(%rbp)
callq 0x7a510
callq 0x7a510
callq 0x7a510
callq 0x7a560
movzwl %ax, %eax
movl %eax, -0x34(%rbp)
callq 0x7a560
movl -0x34(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0xcf3a4
xorps %xmm0, %xmm0
movsd %xmm0, -0x20(%rbp)
movl -0x34(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0xcf3b7
xorps %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
movl -0x34(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0xcf3ca
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
movl -0x34(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0xcf3de
movl $0x0, -0x30(%rbp)
jmp 0xcf3e5
movl $0x80, -0x30(%rbp)
cmpl $0x1, -0x10(%rbp)
jl 0xcf9a9
cmpl $0x3e7, -0x10(%rbp)     # imm = 0x3E7
jg 0xcf9a9
cmpl $0x0, -0x54(%rbp)
jne 0xcf56a
movsd -0x20(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ced7a(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x38(%rax)
movss -0x2c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ced57(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x30(%rax)
movsd -0x28(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ced38(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x28(%rax)
movl -0x30(%rbp), %ecx
movslq -0x10(%rbp), %rdx
leaq 0x1ced1b(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0x68(%rax)
cvtsi2ssl -0x14(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cecfe(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0x20(%rax)
cmpl $0x0, -0x14(%rbp)
je 0xcf4c3
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29d074(%rip), %rax    # 0x36c52c
orl (%rax), %ecx
leaq 0x29d06b(%rip), %rax    # 0x36c52c
movl %ecx, (%rax)
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf4d5
jp 0xcf4d5
jmp 0xcf4f1
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29d042(%rip), %rax    # 0x36c528
orl (%rax), %ecx
leaq 0x29d039(%rip), %rax    # 0x36c528
movl %ecx, (%rax)
movsd -0x28(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf503
jp 0xcf503
jmp 0xcf51f
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29d010(%rip), %rax    # 0x36c524
orl (%rax), %ecx
leaq 0x29d007(%rip), %rax    # 0x36c524
movl %ecx, (%rax)
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xcf530
jp 0xcf530
jmp 0xcf565
leaq 0x29cfe9(%rip), %rax    # 0x36c520
cmpl $0x0, (%rax)
jne 0xcf549
leaq 0x1a84e1(%rip), %rax    # 0x277a24
movl $0x7e2, (%rax)          # imm = 0x7E2
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cfc6(%rip), %rax    # 0x36c520
orl (%rax), %ecx
leaq 0x29cfbd(%rip), %rax    # 0x36c520
movl %ecx, (%rax)
jmp 0xcf9a7
cmpl $0x1, -0x54(%rbp)
jne 0xcf6c8
movsd -0x20(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cec0c(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x88(%rax)
movss -0x2c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cebe6(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x80(%rax)
movsd -0x28(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cebc4(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x78(%rax)
movl -0x30(%rbp), %ecx
movslq -0x10(%rbp), %rdx
leaq 0x1ceba7(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0xa8(%rax)
cvtsi2ssl -0x14(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ceb87(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0x70(%rax)
cmpl $0x0, -0x14(%rbp)
je 0xcf63a
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cf0d(%rip), %rax    # 0x36c53c
orl (%rax), %ecx
leaq 0x29cf04(%rip), %rax    # 0x36c53c
movl %ecx, (%rax)
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf64c
jp 0xcf64c
jmp 0xcf668
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cedb(%rip), %rax    # 0x36c538
orl (%rax), %ecx
leaq 0x29ced2(%rip), %rax    # 0x36c538
movl %ecx, (%rax)
movsd -0x28(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf67a
jp 0xcf67a
jmp 0xcf696
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cea9(%rip), %rax    # 0x36c534
orl (%rax), %ecx
leaq 0x29cea0(%rip), %rax    # 0x36c534
movl %ecx, (%rax)
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xcf6a7
jp 0xcf6a7
jmp 0xcf6c3
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29ce78(%rip), %rax    # 0x36c530
orl (%rax), %ecx
leaq 0x29ce6f(%rip), %rax    # 0x36c530
movl %ecx, (%rax)
jmp 0xcf9a5
cmpl $0x2, -0x54(%rbp)
jne 0xcf82c
movsd -0x20(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ceaae(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xc8(%rax)
movss -0x2c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cea88(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xc0(%rax)
movsd -0x28(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cea66(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xb8(%rax)
movl -0x30(%rbp), %ecx
movslq -0x10(%rbp), %rdx
leaq 0x1cea46(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0xe8(%rax)
cvtsi2ssl -0x14(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1cea26(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0xb0(%rax)
cmpl $0x0, -0x14(%rbp)
je 0xcf79e
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cdb9(%rip), %rax    # 0x36c54c
orl (%rax), %ecx
leaq 0x29cdb0(%rip), %rax    # 0x36c54c
movl %ecx, (%rax)
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf7b0
jp 0xcf7b0
jmp 0xcf7cc
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cd87(%rip), %rax    # 0x36c548
orl (%rax), %ecx
leaq 0x29cd7e(%rip), %rax    # 0x36c548
movl %ecx, (%rax)
movsd -0x28(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf7de
jp 0xcf7de
jmp 0xcf7fa
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cd55(%rip), %rax    # 0x36c544
orl (%rax), %ecx
leaq 0x29cd4c(%rip), %rax    # 0x36c544
movl %ecx, (%rax)
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xcf80b
jp 0xcf80b
jmp 0xcf827
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cd24(%rip), %rax    # 0x36c540
orl (%rax), %ecx
leaq 0x29cd1b(%rip), %rax    # 0x36c540
movl %ecx, (%rax)
jmp 0xcf9a3
cmpl $0x4, -0x54(%rbp)
jne 0xcf98d
movsd -0x20(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ce94a(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x108(%rax)
movss -0x2c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ce924(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x100(%rax)
movsd -0x28(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ce902(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xf8(%rax)
movl -0x30(%rbp), %ecx
movslq -0x10(%rbp), %rdx
leaq 0x1ce8e2(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0x128(%rax)
cvtsi2ssl -0x14(%rbp), %xmm0
movslq -0x10(%rbp), %rcx
leaq 0x1ce8c2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0xf0(%rax)
cmpl $0x0, -0x14(%rbp)
je 0xcf902
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cc65(%rip), %rax    # 0x36c55c
orl (%rax), %ecx
leaq 0x29cc5c(%rip), %rax    # 0x36c55c
movl %ecx, (%rax)
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf914
jp 0xcf914
jmp 0xcf930
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cc33(%rip), %rax    # 0x36c558
orl (%rax), %ecx
leaq 0x29cc2a(%rip), %rax    # 0x36c558
movl %ecx, (%rax)
movsd -0x28(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xcf942
jp 0xcf942
jmp 0xcf95e
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cc01(%rip), %rax    # 0x36c554
orl (%rax), %ecx
leaq 0x29cbf8(%rip), %rax    # 0x36c554
movl %ecx, (%rax)
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xcf96f
jp 0xcf96f
jmp 0xcf98b
movl -0x10(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x29cbd0(%rip), %rax    # 0x36c550
orl (%rax), %ecx
leaq 0x29cbc7(%rip), %rax    # 0x36c550
movl %ecx, (%rax)
jmp 0xcf9a1
cmpl $0x5, -0x54(%rbp)
jne 0xcf995
jmp 0xcf99f
cmpl $0x6, -0x54(%rbp)
jne 0xcf99d
jmp 0xcf99d
jmp 0xcf99f
jmp 0xcf9a1
jmp 0xcf9a3
jmp 0xcf9a5
jmp 0xcf9a7
jmp 0xcf9a9
jmp 0xcf9ab
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0xcf28d
addq $0x70, %rsp
popq %rbp
retq
nop