// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_z12_mpc()
void parse_z12_mpc()
{
int prn;
int az, el;
int snr,l1_snr,l2_snr;
int warn_ca,warn_l1,warn_l2;
double prange;
double phase;
static int last_msg = 0;
double val;

   // binary format message
   log_packet_id("z12_mpc");

if(debug_file && show_debug_info) {
   fprintf(debug_file, "decoding MPC: rptr:%d wptr:%d\n", tsip_rptr, tsip_wptr);
}

in_mpc = 1;
   tsip_rptr = 10;

   tsip_word();      // sequence tag

   if(last_msg == 0) {
      reset_sat_tracking();
   }
   last_msg = tsip_byte();

   prn = tsip_byte();
   if(prn < 0) prn = 0;
   else if(prn > MAX_PRN) prn = 0;
   sat[prn].tracking = 1;

   el = tsip_byte();
   az = tsip_byte() * 2;
   set_sat_azel(prn, (float) az, (float) el);

   tsip_byte();  // channel

   // start of C/A code raw measuement data
   warn_ca = tsip_byte();  // warn flag
   sat[prn].ca_lli = warn_ca;
   tsip_byte();  // good bad flag
   tsip_byte();  // space

   snr = tsip_byte();
   level_type = "dBc";
   sat[prn].sig_level = ((float) snr) / (float) Z12_SNR_SCALE;
   sat[prn].level_msg = 0x12;
   have_snr |= rinex_gnss(prn);
   record_sig_levels(prn);

   tsip_byte();  // spare

   phase = tsip_double();
   sat[prn].code_phase = phase;
   if(phase) {
      have_phase |= rinex_gnss(prn);
   }

   prange = tsip_double();
   prange *= (LIGHTSPEED*1000.0);
if(debug_file && show_debug_info) {
   if((prange > 1.0E9) || (prange < 0.0)) fprintf(debug_file, "range err:%f  jd_obs:%.9f\n", prange, jd_obs);
}
   sat[prn].range = prange;
   if(prange) {
      have_range |= rinex_gnss(prn);
   }

   val = ((double) (int) tsip_dword()) / 10000.0;
   sat[prn].doppler = val;
   if(val) {
      have_doppler |= rinex_gnss(prn);
   }

   tsip_dword();  // smoothing


   // start of L1 code raw measuement data
   warn_l1 = tsip_byte();  // warn flag
   sat[prn].l1_lli = warn_l1 ^ Z_LOSS;
   tsip_byte();  // good bad flag
   tsip_byte();  // space

   l1_snr = tsip_byte();
   have_l1_snr |= rinex_gnss(prn);
   sat[prn].l1_sig_level = ((float) l1_snr) / (float) Z12_SNR_SCALE;
   sat[prn].l1_level_msg |= rinex_gnss(prn);

   tsip_byte();  // spare

   phase = tsip_double();
   sat[prn].l1_code_phase = phase;
   if(phase) {
      have_l1_phase |= rinex_gnss(prn);
   }

   prange = tsip_double();
   prange *= (LIGHTSPEED*1000.0);
if(debug_file && show_debug_info) {
   if((prange > 1.0E9) || (prange < 0.0)) fprintf(debug_file, "range1 err:%f  jd_obs:%.9f\n", prange, jd_obs);
}
   sat[prn].l1_range = prange;
   if(prange) {
      have_l1_range |= rinex_gnss(prn);
   }

   val = ((double) (int) tsip_dword()) / 10000.0;
   sat[prn].l1_doppler = val;
   if(val) {
      have_l1_doppler |= rinex_gnss(prn);
   }

   tsip_dword();  // smoothing


   // start of L2 code raw measuement data
   warn_l2 = tsip_byte();  // warn flag
   sat[prn].l2_lli = warn_l2 ^ Z_LOSS;
   tsip_byte();  // good bad flag
   tsip_byte();  // space

   l2_snr = tsip_byte();
   sat[prn].l2_sig_level = ((float) l2_snr) / (float) Z12_SNR_SCALE;
   sat[prn].l2_level_msg = 0x12;
   have_l2_snr |= rinex_gnss(prn);
if(debug_file && show_debug_info) fprintf(debug_file, "PRN:%d  SNR L1:%f L2:%f\n", prn, sat[prn].l1_sig_level, sat[prn].l2_sig_level);

   tsip_byte();  // spare

   phase = tsip_double();
   sat[prn].l2_code_phase = phase;
   if(phase) {
      have_l2_phase |= rinex_gnss(prn);
   }

   prange = tsip_double();
   prange *= (LIGHTSPEED*1000.0);
if(debug_file && show_debug_info) {
   if((prange > 1.0E9) || (prange < 0.0)) fprintf(debug_file, "range2 err:%f  jd_obs:%.9f\n", prange, jd_obs);
}
   sat[prn].l2_range = prange;
   if(prange) {
      have_l2_range |= rinex_gnss(prn);
   }

   val = ((double) (int) tsip_dword()) / 10000.0;
   sat[prn].l2_doppler = val;
   if(val) {
      have_l2_doppler |= rinex_gnss(prn);
   }

   tsip_dword();  // smoothing

if(debug_file && show_debug_info) {
   fprintf(debug_file, "CA%02d: phase:%-14f range:%-14f  dop:%-14f\n", prn,sat[prn].code_phase, sat[prn].range, sat[prn].doppler);
   fprintf(debug_file, "L1%02d: phase:%-14f range:%-14f  dop:%-14f\n", prn,sat[prn].l1_code_phase, sat[prn].l1_range, sat[prn].l1_doppler);
   fprintf(debug_file, "L2%02d: phase:%-14f range:%-14f  dop:%-14f\n", prn,sat[prn].l2_code_phase, sat[prn].l2_range, sat[prn].l2_doppler);
   fprintf(debug_file, "WARN    CA:%02X  L1:%02X  L2:%02X\n", warn_ca,warn_l1,warn_l2);
   fprintf(debug_file, "az:%d  el:%d  ca_snr:%d  l1_snr:%d  l2_snr:%d\n", az,el,snr,l1_snr,l2_snr);
}

// poll_z12_time(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
leaq 0xcf101(%rip), %rdi     # 0x1862a0
callq 0x7add0
leaq 0x1e63c5(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb71e9
leaq 0x1c08ec(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb71e9
leaq 0x1e63ac(%rip), %rax    # 0x29d570
movq (%rax), %rdi
leaq 0x2e0266(%rip), %rax    # 0x397434
movzwl (%rax), %edx
leaq 0x2e025a(%rip), %rax    # 0x397432
movzwl (%rax), %ecx
leaq 0xcf0c6(%rip), %rsi     # 0x1862a8
movb $0x0, %al
callq 0x9550
movl $0x1, 0x319e09(%rip)    # 0x3d0ffc
leaq 0x2e023a(%rip), %rax    # 0x397434
movw $0xa, (%rax)
callq 0x7a560
cmpl $0x0, 0x319e21(%rip)    # 0x3d102c
jne 0xb7212
callq 0x81c10
callq 0x7a510
movzbl %al, %eax
movl %eax, 0x319e0c(%rip)    # 0x3d102c
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jge 0xb723a
movl $0x0, -0x4(%rbp)
jmp 0xb724c
cmpl $0x3e7, -0x4(%rbp)      # imm = 0x3E7
jle 0xb724a
movl $0x0, -0x4(%rbp)
jmp 0xb724c
movslq -0x4(%rbp), %rcx
leaq 0x1e6f39(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movl $0x1, 0x218(%rax)
callq 0x7a510
movzbl %al, %eax
movl %eax, -0xc(%rbp)
callq 0x7a510
movzbl %al, %eax
shll %eax
movl %eax, -0x8(%rbp)
movl -0x4(%rbp), %edi
cvtsi2ssl -0x8(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
callq 0x7d450
callq 0x7a510
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %ecx
movslq -0x4(%rbp), %rdx
leaq 0x1e6edd(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0x68(%rax)
callq 0x7a510
callq 0x7a510
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x10(%rbp)
leaq 0x1e6dfc(%rip), %rax    # 0x29e0d8
leaq 0xcdc87(%rip), %rcx     # 0x184f6a
movq %rcx, (%rax)
cvtsi2ssl -0x10(%rbp), %xmm0
movss 0xcc071(%rip), %xmm1    # 0x183364
divss %xmm1, %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6e8e(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0x20(%rax)
movslq -0x4(%rbp), %rcx
leaq 0x1e6e74(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movl $0x12, 0x1c(%rax)
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b51ee(%rip), %rax    # 0x36c52c
orl (%rax), %ecx
leaq 0x2b51e5(%rip), %rax    # 0x36c52c
movl %ecx, (%rax)
movl -0x4(%rbp), %edi
callq 0x80340
callq 0x7a510
callq 0x7a9d0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6e20(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x28(%rax)
movsd -0x38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb7391
jp 0xb7391
jmp 0xb73ad
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b5182(%rip), %rax    # 0x36c524
orl (%rax), %ecx
leaq 0x2b5179(%rip), %rax    # 0x36c524
movl %ecx, (%rax)
callq 0x7a9d0
movsd %xmm0, -0x30(%rbp)
movsd 0xba229(%rip), %xmm0    # 0x1715e8
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x1e61a0(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb7429
leaq 0x1c06c7(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb7429
movsd -0x30(%rbp), %xmm0
movsd 0xb7c39(%rip), %xmm1    # 0x16f028
ucomisd %xmm1, %xmm0
ja 0xb73ff
xorps %xmm0, %xmm0
ucomisd -0x30(%rbp), %xmm0
jbe 0xb7427
leaq 0x1e616a(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movsd -0x30(%rbp), %xmm0
leaq 0x2b533b(%rip), %rax    # 0x36c750
movsd (%rax), %xmm1
leaq 0xceea7(%rip), %rsi     # 0x1862c7
movb $0x2, %al
callq 0x9550
jmp 0xb7429
movsd -0x30(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6d57(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x38(%rax)
movsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb745a
jp 0xb745a
jmp 0xb7476
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b50bd(%rip), %rax    # 0x36c528
orl (%rax), %ecx
leaq 0x2b50b4(%rip), %rax    # 0x36c528
movl %ecx, (%rax)
callq 0x7a680
cvtsi2sd %eax, %xmm0
movsd 0xb7c71(%rip), %xmm1    # 0x16f0f8
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6cf0(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x30(%rax)
movsd -0x40(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb74c1
jp 0xb74c1
jmp 0xb74dd
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b504e(%rip), %rax    # 0x36c520
orl (%rax), %ecx
leaq 0x2b5045(%rip), %rax    # 0x36c520
movl %ecx, (%rax)
callq 0x7a680
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %ecx
xorl $0x20, %ecx
movslq -0x4(%rbp), %rdx
leaq 0x1e6c92(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0xa8(%rax)
callq 0x7a510
callq 0x7a510
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x14(%rbp)
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b5008(%rip), %rax    # 0x36c53c
orl (%rax), %ecx
leaq 0x2b4fff(%rip), %rax    # 0x36c53c
movl %ecx, (%rax)
cvtsi2ssl -0x14(%rbp), %xmm0
movss 0xcbe18(%rip), %xmm1    # 0x183364
divss %xmm1, %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6c35(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0x70(%rax)
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
movslq -0x4(%rbp), %rdx
leaq 0x1e6c11(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
orl 0x6c(%rax), %ecx
movl %ecx, 0x6c(%rax)
callq 0x7a510
callq 0x7a9d0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6be2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x78(%rax)
movsd -0x38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb75cf
jp 0xb75cf
jmp 0xb75eb
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4f54(%rip), %rax    # 0x36c534
orl (%rax), %ecx
leaq 0x2b4f4b(%rip), %rax    # 0x36c534
movl %ecx, (%rax)
callq 0x7a9d0
movsd %xmm0, -0x30(%rbp)
movsd 0xb9feb(%rip), %xmm0    # 0x1715e8
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x1e5f62(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb7667
leaq 0x1c0489(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb7667
movsd -0x30(%rbp), %xmm0
movsd 0xb79fb(%rip), %xmm1    # 0x16f028
ucomisd %xmm1, %xmm0
ja 0xb763d
xorps %xmm0, %xmm0
ucomisd -0x30(%rbp), %xmm0
jbe 0xb7665
leaq 0x1e5f2c(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movsd -0x30(%rbp), %xmm0
leaq 0x2b50fd(%rip), %rax    # 0x36c750
movsd (%rax), %xmm1
leaq 0xcec84(%rip), %rsi     # 0x1862e2
movb $0x2, %al
callq 0x9550
jmp 0xb7667
movsd -0x30(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6b19(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x88(%rax)
movsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb769b
jp 0xb769b
jmp 0xb76b7
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4e8c(%rip), %rax    # 0x36c538
orl (%rax), %ecx
leaq 0x2b4e83(%rip), %rax    # 0x36c538
movl %ecx, (%rax)
callq 0x7a680
cvtsi2sd %eax, %xmm0
movsd 0xb7a30(%rip), %xmm1    # 0x16f0f8
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6aaf(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0x80(%rax)
movsd -0x40(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb7705
jp 0xb7705
jmp 0xb7721
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4e1a(%rip), %rax    # 0x36c530
orl (%rax), %ecx
leaq 0x2b4e11(%rip), %rax    # 0x36c530
movl %ecx, (%rax)
callq 0x7a680
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %ecx
xorl $0x20, %ecx
movslq -0x4(%rbp), %rdx
leaq 0x1e6a4e(%rip), %rax    # 0x29e190
imulq $0x348, %rdx, %rdx      # imm = 0x348
addq %rdx, %rax
movl %ecx, 0xe8(%rax)
callq 0x7a510
callq 0x7a510
callq 0x7a510
movzbl %al, %eax
movl %eax, -0x18(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm0
movss 0xcbbf0(%rip), %xmm1    # 0x183364
divss %xmm1, %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6a0d(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss %xmm0, 0xb0(%rax)
movslq -0x4(%rbp), %rcx
leaq 0x1e69f0(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movl $0x12, 0xac(%rax)
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4d87(%rip), %rax    # 0x36c54c
orl (%rax), %ecx
leaq 0x2b4d7e(%rip), %rax    # 0x36c54c
movl %ecx, (%rax)
leaq 0x1e5d99(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb7843
leaq 0x1c02c0(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb7843
leaq 0x1e5d80(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movslq -0x4(%rbp), %rcx
leaq 0x1e698f(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss 0x70(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6971(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss 0xb0(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0xceac2(%rip), %rsi     # 0x1862fe
movb $0x2, %al
callq 0x9550
callq 0x7a510
callq 0x7a9d0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e692e(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xb8(%rax)
movsd -0x38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb7886
jp 0xb7886
jmp 0xb78a2
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4cad(%rip), %rax    # 0x36c544
orl (%rax), %ecx
leaq 0x2b4ca4(%rip), %rax    # 0x36c544
movl %ecx, (%rax)
callq 0x7a9d0
movsd %xmm0, -0x30(%rbp)
movsd 0xb9d34(%rip), %xmm0    # 0x1715e8
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x1e5cab(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb791e
leaq 0x1c01d2(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb791e
movsd -0x30(%rbp), %xmm0
movsd 0xb7744(%rip), %xmm1    # 0x16f028
ucomisd %xmm1, %xmm0
ja 0xb78f4
xorps %xmm0, %xmm0
ucomisd -0x30(%rbp), %xmm0
jbe 0xb791c
leaq 0x1e5c75(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movsd -0x30(%rbp), %xmm0
leaq 0x2b4e46(%rip), %rax    # 0x36c750
movsd (%rax), %xmm1
leaq 0xcea02(%rip), %rsi     # 0x186317
movb $0x2, %al
callq 0x9550
jmp 0xb791e
movsd -0x30(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6862(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xc8(%rax)
movsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb7952
jp 0xb7952
jmp 0xb796e
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4be5(%rip), %rax    # 0x36c548
orl (%rax), %ecx
leaq 0x2b4bdc(%rip), %rax    # 0x36c548
movl %ecx, (%rax)
callq 0x7a680
cvtsi2sd %eax, %xmm0
movsd 0xb7779(%rip), %xmm1    # 0x16f0f8
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e67f8(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd %xmm0, 0xc0(%rax)
movsd -0x40(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb79bc
jp 0xb79bc
jmp 0xb79d8
movl -0x4(%rbp), %edi
callq 0x12d280
movl %eax, %ecx
leaq 0x2b4b73(%rip), %rax    # 0x36c540
orl (%rax), %ecx
leaq 0x2b4b6a(%rip), %rax    # 0x36c540
movl %ecx, (%rax)
callq 0x7a680
leaq 0x1e5b8c(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb7b96
leaq 0x1c00af(%rip), %rax    # 0x277aa4
cmpb $0x0, (%rax)
je 0xb7b96
leaq 0x1e5b6b(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movslq -0x4(%rbp), %rcx
leaq 0x1e677a(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x28(%rax), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6760(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x38(%rax), %xmm1
movslq -0x4(%rbp), %rcx
leaq 0x1e6746(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x30(%rax), %xmm2
leaq 0xce8d3(%rip), %rsi     # 0x186333
movb $0x3, %al
callq 0x9550
leaq 0x1e5b02(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movslq -0x4(%rbp), %rcx
leaq 0x1e6711(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x78(%rax), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e66f7(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x88(%rax), %xmm1
movslq -0x4(%rbp), %rcx
leaq 0x1e66da(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x80(%rax), %xmm2
leaq 0xce890(%rip), %rsi     # 0x18635f
movb $0x3, %al
callq 0x9550
leaq 0x1e5a93(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movslq -0x4(%rbp), %rcx
leaq 0x1e66a2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0xb8(%rax), %xmm0
movslq -0x4(%rbp), %rcx
leaq 0x1e6685(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0xc8(%rax), %xmm1
movslq -0x4(%rbp), %rcx
leaq 0x1e6668(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0xc0(%rax), %xmm2
leaq 0xce84a(%rip), %rsi     # 0x18638b
movb $0x3, %al
callq 0x9550
leaq 0x1e5a21(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x1c(%rbp), %edx
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %r8d
leaq 0xce854(%rip), %rsi     # 0x1863b7
movb $0x0, %al
callq 0x9550
leaq 0x1e59ff(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movl -0x8(%rbp), %edx
movl -0xc(%rbp), %ecx
movl -0x10(%rbp), %r8d
movl -0x14(%rbp), %r9d
movl -0x18(%rbp), %eax
leaq 0xce84e(%rip), %rsi     # 0x1863da
movl %eax, (%rsp)
movb $0x0, %al
callq 0x9550
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)