// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heathmsc.cpp
// Function: write_rinex_header(_IO_FILE*)
void write_rinex_header(FILE *file)
{
char *type;
char fmt[SLEN+1];
char core[SLEN+1];
int mask;
int i;
FILE *old_log;
int old_fmt;

   // write the RINEX .OBS file header info
   if(rinex_header_written) return;
   obs_data_written = 0;
   if(time_flags & TFLAGS_BAD_TIME) return;
   if(jd_obs == 0.0) return;
   if(first_obs) {
      first_obs = 0;
      return;
   }

   mask = gnss_mask;
   if(rcvr_type == ESIP_RCVR) mask = GPS;  // only does GPS raw measurements

   if     (mask == GPS)     type = "G (GPS)";
   else if(mask == GLONASS) type = "R (GLONASS)";
   else if(mask == SBAS)    type = "S (SBAS)";
   else if(mask == GALILEO) type = "E (GALILEO)";
   else if(mask == BEIDOU)  type = "C (BEIDOU)";
   else if(have_gnss_mask)  type = "M (MIXED)";
   else                     type = "M (MIXED)";  // "G (GPS)";
   sprintf(out,"     %4.2f           OBSERVATION DATA    %-20.20s", rinex_fmt, type);
   write_rinex_line(file, out, "RINEX VERSION / TYPE");

   gregorian(1, jd_utc);
   if(rinex_fmt >= 3.00) {
      sprintf(out,          "HEATHER %-9.9s                       %04d%02d%02d %02d%02d%02d UTC", VERSION, g_year,g_month,g_day, g_hours,g_minutes,g_seconds);
   }
   else {
      sprintf(out,          "HEATHER %-9.9s                       %04d%02d%02d %02d:%02d:%02dUTC", VERSION, g_year,g_month,g_day, g_hours,g_minutes,g_seconds);
   }
   write_rinex_line(file, out, "PGM / RUN BY / DATE"); 

   if((marker_name[0] == 0) || strstr(marker_name, DEFAULT_NAME)) {  // create a marker name
      sprintf(fmt, "%s ", unit_file_name);
      if(mask & GPS)     strcat(fmt, "G+");
      if(mask & SBAS)    strcat(fmt, "S+");
      if(mask & GLONASS) strcat(fmt, "R+");
      if(mask & GALILEO) strcat(fmt, "E+");
      if(mask & BEIDOU)  strcat(fmt, "C+");
//    if(mask & QZSS)    strcat(fmt, "J+");
//    if(mask & IRNSS)   strcat(fmt, "I+");
      i = strlen(fmt);
      if(i) {
         if(fmt[i-1] == '+') fmt[i-1] = ' ';
      }
      strupr(fmt);
   }
   else strcpy(fmt, marker_name);

   sprintf(out, "%-20.20s", fmt);
   write_rinex_line(file, out, "MARKER NAME");      

   sprintf(out, "%-20.20s", marker_number);
   write_rinex_line(file, out,  "MARKER NUMBER");      

   sprintf(out, "%-20.20s", marker_type);
   if(rinex_fmt >= 3.00) {
      write_rinex_line(file, out, "MARKER TYPE");      
   }

   write_rinex_line(file, "", "OBSERVER / AGENCY");      

   strcpy(fmt, unit_file_name);
   strupr(fmt);
   if(rcvr_type == ESIP_RCVR) {
      sprintf(out, "ID:%-17.17s%-20.20sVER:%-4.4s", esip_model, fmt, esip_version);
   }
   else if(rcvr_type == NVS_RCVR) {
      sprintf(out, "ID:%-17.17s%-20.20sFW:%-17.17s", nvs_id2, fmt, nvs_id);
   }
   else if(rcvr_type == TSIP_RCVR) {
      sprintf(core, "FW:%2d.%-2d %02d %s %02d", 
         core_major, core_minor,  core_day, months[core_month], core_year);  //!!! docs say 1900
         core[20] = 0;
      if(unit_name[0]) {
         sprintf(out, "%-20.20s%-20.20s%-20.20s", core, fmt, unit_name);
      }
      else {
         sprintf(out, "%-20.20s%-20.20s%-20.20s", core, fmt, "TRIMBLE TSIP");
      }
   }
   else if(rcvr_type == UBX_RCVR) {
      sprintf(out, "HW:%-17.17s%-20.20sFW:%-17.17s", ubx_hw, fmt, ubx_sw);
   }
   else if(rcvr_type == VENUS_RCVR) {
      sprintf(out, "%-20.20s%-20.20s%-20.20s", venus_odm, fmt, venus_rev);
   }
   else if(rcvr_type == Z12_RCVR) {
      sprintf(out, "TYPE:%-15.15s%-20.20sVER:%-4.4s %-4.4s-%-4.4s", z12_type, fmt, z12_chan_opt, z12_nav_ver,z12_chan_ver);
   }
   else {
      sprintf(out, "%-20.20s%-20.20s%-20.20s", "", fmt, "");
   }
   write_rinex_line(file, out, "REC # / TYPE / VERS"); 

   sprintf(out, "%-20.20s%-20.20s", antenna_number, antenna_type);
   write_rinex_line(file, out, "ANT # / TYPE");        
   sprintf(out, "  LAT:%14.9f  LON:%14.9f  ALT:%10.4f", lat*180.0/PI,lon*180.0/PI,alt), 
   write_rinex_line(file, out,  "COMMENT"); 
   lla_to_ecef(lat, lon, alt);
   sprintf(out, "%14.4f%14.4f%14.4f", ecef_x,ecef_y,ecef_z), 
   write_rinex_line(file, out,  "APPROX POSITION XYZ"); 

   sprintf(out, "%14.4f%14.4f%14.4f", antenna_height, antenna_ew, antenna_ns);
   if(rinex_fmt >= 3.0) {
      write_rinex_line(file, out, "ANTENNA:DELTA H/E/N");
   }
   else {
      write_rinex_line(file, out, "ANTENNA: DELTA H/E/N");
   }
   write_rinex_line(file, "     1     1", "WAVELENGTH FACT L1/2");

   if(0 && mixed_obs_list[0]) {  // user specifed observations
      mixed_num_obs = get_obs_types(file, mixed_obs_list, MIXED, &mixed_obs_type[0]);
   }
   else if(1) { // build observation list from data type seen
      if(rinex_fmt >= 3.0) {
         gps_num_obs     = get_obs_types(file, gps_obs_list,     GPS,     &gps_obs_type[0]);
         sbas_num_obs    = get_obs_types(file, sbas_obs_list,    SBAS,    &sbas_obs_type[0]);
         glonass_num_obs = get_obs_types(file, glonass_obs_list, GLONASS, &glonass_obs_type[0]);
         galileo_num_obs = get_obs_types(file, galileo_obs_list, GALILEO, &galileo_obs_type[0]);
         beidou_num_obs  = get_obs_types(file, beidou_obs_list,  BEIDOU,  &beidou_obs_type[0]);
      }
      else {
         mixed_num_obs = get_obs_types(file, mixed_obs_list, MIXED, &mixed_obs_type[0]);
      }
   }
   else if(USE_L2 && (rcvr_type == Z12_RCVR)) {
///   mixed_num_obs = get_obs_types(file, "C1    L1    D1    S1    P1    P2    L2    D2    S2", MIXED, mixed_obs_type);
      mixed_num_obs = get_obs_types(file, "L1    L2    C1    P1    P2    S1    S2", MIXED, &mixed_obs_type[0]);
   }
   else if(have_phase == 0) {  // (rcvr_type == ESIP_RCVR) 
     mixed_num_obs = get_obs_types(file, "C1    D1    S1", MIXED, &mixed_obs_type[0]); // pseudorange, doppler, snr
   }
   else {
      mixed_num_obs = get_obs_types(file, "C1    L1    D1    S1", MIXED, &mixed_obs_type[0]);
   }

   get_obs_time(jd_obs, obs_tow);
   sprintf(out, "%6d%6d%6d%6d%6d%13.7f%s", g_year,g_month,g_day, g_hours,g_minutes,(double)g_seconds+g_frac, "     GPS");
   write_rinex_line(file, out, "TIME OF FIRST OBS");

   if((rinex_fmt >= 3.02) && glonass_num_obs) {  // !!!!! do this properly
      fmt[0] = 0;
      if(1) sprintf(fmt, " C1C %8.3f", 0.0);
      else  sprintf(fmt, "             ");
      strcat(out, fmt);

      if(1) sprintf(fmt, " C1P %8.3f", 0.0);
      else  sprintf(fmt, "             ");
      strcat(out, fmt);

      if(1) sprintf(fmt, " C2C %8.3f", 0.0);
      else  sprintf(fmt, "             ");
      strcat(out, fmt);

      if(1) sprintf(fmt, " C2P %8.3f", 0.0);
      else  sprintf(fmt, "             ");
      strcat(out, fmt);
      write_rinex_line(file, out, "GLONASS COD/PHS/BIS");
   }


   write_rinex_line(file, " ",  "COMMENT"); 

   if(el_mask || amu_mask) {
      sprintf(out, "  Elevation mask: %4.1f    Signal mask: %.1f", el_mask, amu_mask);
      write_rinex_line(file, out,  "COMMENT"); 
   }

   if(have_tc) {
      sprintf(out, "  Time constant: %.3f seconds", time_constant);
      write_rinex_line(file, out,  "COMMENT"); 
   }
   if(have_damp) {
      sprintf(out, "  Damping: %.3f", damping_factor);
      write_rinex_line(file, out,  "COMMENT"); 
   }
   if(have_gain) {
      sprintf(out, "  Osc EFC gain: %.3f Hz/V", osc_gain);
      write_rinex_line(file, out,  "COMMENT"); 
   }
   if(have_initv) {
      sprintf(out, "  Initial EFC voltage : %.3f V", initial_voltage);
      write_rinex_line(file, out,  "COMMENT"); 
   }
   if(use_rinex_cppr) {
      sprintf(out, "  GPS/SBAS/GALILEO L1 pseudorange derived from carrier phase data");
      write_rinex_line(file, out,  "COMMENT"); 
   }

   rinex_header_written = 1;
   obs_data_written = 0;
   if(rinex_file) {
      old_log = log_file;
      old_fmt = log_fmt;

      log_file = rinex_file;
      log_fmt = RINEX;
      write_log_id();

      log_file = old_log;
      log_fmt = old_fmt;
   }

   write_rinex_line(file, "", "END OF HEADER");

   if(rinex_file && (file == rinex_file) && rinex_flush_mode) {
     fflush(file);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
leaq 0x17794e(%rip), %rax    # 0x23e3ec
cmpl $0x0, (%rax)
je 0xc6ab5
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x177938(%rip), %rax    # 0x23e3f4
movl $0x0, (%rax)
leaq 0x2469db(%rip), %rax    # 0x30d4a4
testb $0xc, (%rax)
jne 0xc6aa3
leaq 0x246a9b(%rip), %rax    # 0x30d570
movsd (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc6ae5
jnp 0xc6aa3
leaq 0x246a94(%rip), %rax    # 0x30d580
cmpl $0x0, (%rax)
je 0xc6af9
movl $0x0, (%rax)
jmp 0xc6aa3
movq %rdi, %rbx
leaq 0x151dcd(%rip), %rcx    # 0x2188d0
movl $0x80000000, %eax       # imm = 0x80000000
movl $0x1, %r15d
cmpq %rax, (%rcx)
je 0xc6b1d
leaq 0xaa15a(%rip), %rax     # 0x170c74
movl (%rax), %r15d
leal -0x1(%r15), %eax
cmpl $0x7, %eax
ja 0xc6b3f
leaq 0x643f7(%rip), %rcx     # 0x12af24
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x6caaf(%rip), %rdx     # 0x1335ec
jmp 0xc6b73
cmpl $0x8000, %r15d          # imm = 0x8000
jne 0xc6b51
leaq 0x6cab1(%rip), %rdx     # 0x133600
jmp 0xc6b73
leaq 0x6cac8(%rip), %rdx     # 0x133620
jmp 0xc6b73
leaq 0x6caa8(%rip), %rdx     # 0x133609
jmp 0xc6b73
leaq 0x6caab(%rip), %rdx     # 0x133615
jmp 0xc6b73
leaq 0x6ca81(%rip), %rdx     # 0x1335f4
leaq 0x177a06(%rip), %r12    # 0x23e580
movsd (%r12), %xmm0
leaq 0x275699(%rip), %r14    # 0x33c220
leaq 0x6ca9c(%rip), %rsi     # 0x13362a
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x6cabd(%rip), %rdx     # 0x13365c
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x24697f(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
movl $0x1, %edi
callq 0xd12da
movsd (%r12), %xmm0
ucomisd 0x44e3b(%rip), %xmm0    # 0x10ba08
leaq 0x246ad0(%rip), %rax    # 0x30d6a4
movl (%rax), %ecx
leaq 0x246abf(%rip), %rax    # 0x30d69c
movl (%rax), %r8d
leaq 0x246ab9(%rip), %rax    # 0x30d6a0
movl (%rax), %r9d
leaq 0x246ab7(%rip), %rax    # 0x30d6a8
movl (%rax), %r10d
leaq 0x246ab1(%rip), %rax    # 0x30d6ac
movl (%rax), %r11d
leaq 0x246aab(%rip), %rdx    # 0x30d6b0
leaq 0x6caa8(%rip), %rax     # 0x1336b4
leaq 0x6ca5e(%rip), %rsi     # 0x133671
cmovbq %rax, %rsi
movl (%rdx), %r13d
subq $0x8, %rsp
leaq 0x46f28(%rip), %rdx     # 0x10db4d
movq %r14, %rdi
xorl %eax, %eax
pushq %r13
pushq %r11
pushq %r10
callq 0x9060
addq $0x20, %rsp
leaq 0x6cab8(%rip), %rdx     # 0x1336f8
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x1777fe(%rip), %rax    # 0x23e450
cmpb $0x0, (%rax)
je 0xc6c73
leaq 0x1777f2(%rip), %rdi    # 0x23e450
leaq 0x44183(%rip), %rsi     # 0x10ade8
callq 0x9090
testq %rax, %rax
je 0xc6d7a
leaq 0xaa00e(%rip), %rax     # 0x170c88
movq (%rax), %rdx
leaq 0x61542(%rip), %rsi     # 0x1281c6
leaq -0x130(%rbp), %rdi
xorl %eax, %eax
callq 0x9060
testb $0x1, %r15b
je 0xc6cb6
leaq -0x130(%rbp), %rdi
callq 0x9120
movw $0x2b47, -0x130(%rbp,%rax) # imm = 0x2B47
movb $0x0, -0x12e(%rbp,%rax)
testw %r15w, %r15w
jns 0xc6cda
leaq -0x130(%rbp), %rdi
callq 0x9120
movw $0x2b53, -0x130(%rbp,%rax) # imm = 0x2B53
movb $0x0, -0x12e(%rbp,%rax)
testb $0x2, %r15b
je 0xc6cfe
leaq -0x130(%rbp), %rdi
callq 0x9120
movw $0x2b52, -0x130(%rbp,%rax) # imm = 0x2B52
movb $0x0, -0x12e(%rbp,%rax)
testb $0x4, %r15b
je 0xc6d22
leaq -0x130(%rbp), %rdi
callq 0x9120
movw $0x2b45, -0x130(%rbp,%rax) # imm = 0x2B45
movb $0x0, -0x12e(%rbp,%rax)
testb $0x8, %r15b
je 0xc6d46
leaq -0x130(%rbp), %rdi
callq 0x9120
movw $0x2b43, -0x130(%rbp,%rax) # imm = 0x2B43
movb $0x0, -0x12e(%rbp,%rax)
leaq -0x130(%rbp), %rdi
callq 0x9120
testl %eax, %eax
je 0xc6d6c
decl %eax
cltq
cmpb $0x2b, -0x130(%rbp,%rax)
jne 0xc6d6c
movb $0x20, -0x130(%rbp,%rax)
leaq -0x130(%rbp), %rdi
callq 0x9899
jmp 0xc6d8d
leaq 0x1776cf(%rip), %rsi    # 0x23e450
leaq -0x130(%rbp), %rdi
callq 0x9340
leaq 0x27548c(%rip), %r14    # 0x33c220
leaq 0x6c8b8(%rip), %r15     # 0x133653
leaq -0x130(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x9060
leaq 0x6c965(%rip), %rdx     # 0x13371b
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x1776b8(%rip), %rdx    # 0x23e480
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x9060
leaq 0x6c94b(%rip), %rdx     # 0x133727
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x1776c2(%rip), %rdx    # 0x23e4b0
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x9060
movsd (%r12), %xmm0
ucomisd 0x44bff(%rip), %xmm0    # 0x10ba08
jb 0xc6e21
leaq 0x27540e(%rip), %rsi    # 0x33c220
leaq 0x6c91c(%rip), %rdx     # 0x133735
movq %rbx, %rdi
callq 0xc3f69
leaq 0x6ac6e(%rip), %rsi     # 0x131a96
leaq 0x6c912(%rip), %rdx     # 0x133741
movq %rbx, %rdi
callq 0xc3f69
leaq 0xa9e4a(%rip), %rax     # 0x170c88
movq (%rax), %rsi
leaq -0x130(%rbp), %r14
movq %r14, %rdi
callq 0x9340
movq %r14, %rdi
callq 0x9899
leaq 0x151a71(%rip), %rax    # 0x2188d0
movq (%rax), %rax
cmpq $0x7ff, %rax            # imm = 0x7FF
jg 0xc6eab
cmpq $0x1, %rax
je 0xc6ef9
cmpq $0x4, %rax
je 0xc6fce
cmpq $0x80, %rax
jne 0xc6faa
leaq 0x27538f(%rip), %rdi    # 0x33c220
leaq 0x6c911(%rip), %rsi     # 0x1337a9
leaq 0x276f11(%rip), %rdx    # 0x33ddb0
leaq 0x276f2a(%rip), %r8     # 0x33ddd0
jmp 0xc704c
cmpq $0x800, %rax            # imm = 0x800
je 0xc6f89
movabsq $0x100000000, %rcx      # imm = 0x100000000
cmpq %rcx, %rax
je 0xc6fec
movl $0x80000000, %ecx       # imm = 0x80000000
cmpq %rcx, %rax
jne 0xc6faa
leaq 0x275341(%rip), %rdi    # 0x33c220
leaq 0x6c86d(%rip), %rsi     # 0x133753
leaq 0x276453(%rip), %rdx    # 0x33d340
leaq 0x2763ec(%rip), %r8     # 0x33d2e0
jmp 0xc704c
leaq 0x246aaa(%rip), %rax    # 0x30d9aa
movzbl (%rax), %edx
leaq 0x246aa1(%rip), %rax    # 0x30d9ab
movzbl (%rax), %ecx
leaq 0x246a99(%rip), %rax    # 0x30d9ad
movzbl (%rax), %r8d
leaq 0x246a8d(%rip), %rax    # 0x30d9ac
movzbl (%rax), %eax
leaq 0xa3817(%rip), %rsi     # 0x16a740
movq (%rsi,%rax,8), %r9
leaq 0x246a7a(%rip), %rax    # 0x30d9ae
movzwl (%rax), %r10d
subq $0x8, %rsp
leaq 0x6c84d(%rip), %rsi     # 0x133790
leaq -0x230(%rbp), %r14
movq %r14, %rdi
xorl %eax, %eax
pushq %r10
callq 0x9060
addq $0x10, %rsp
movb $0x0, 0x14(%r14)
leaq 0x2756da(%rip), %rax    # 0x33c640
cmpb $0x0, (%rax)
je 0xc7030
leaq 0x2752aa(%rip), %rdi    # 0x33c220
leaq 0x6c82c(%rip), %rsi     # 0x1337a9
leaq 0x2756bc(%rip), %r8     # 0x33c640
jmp 0xc7045
leaq 0x275290(%rip), %rdi    # 0x33c220
leaq 0x6c7da(%rip), %rsi     # 0x133771
leaq 0x153fd2(%rip), %rdx    # 0x21af70
leaq 0x153f9b(%rip), %r8     # 0x21af40
jmp 0xc704c
leaq 0x27526f(%rip), %rdi    # 0x33c220
leaq 0x6c7f1(%rip), %rsi     # 0x1337a9
leaq 0x6aad7(%rip), %rdx     # 0x131a96
leaq -0x130(%rbp), %rcx
movq %rdx, %r8
jmp 0xc7053
leaq 0x27524b(%rip), %rdi    # 0x33c220
leaq 0x6c7f3(%rip), %rsi     # 0x1337cf
leaq 0x2766fb(%rip), %rdx    # 0x33d6de
leaq 0x2766d6(%rip), %r8     # 0x33d6c0
jmp 0xc704c
subq $0x8, %rsp
leaq 0x276c59(%rip), %r10    # 0x33dc50
leaq 0x275222(%rip), %rdi    # 0x33c220
leaq 0x6c7e9(%rip), %rsi     # 0x1337ee
leaq 0x276b84(%rip), %rdx    # 0x33db90
leaq 0x276bad(%rip), %r8     # 0x33dbc0
leaq 0x276bd6(%rip), %r9     # 0x33dbf0
leaq -0x130(%rbp), %rcx
xorl %eax, %eax
pushq %r10
callq 0x9060
addq $0x10, %rsp
jmp 0xc705a
leaq 0x2751e9(%rip), %rdi    # 0x33c220
leaq 0x6c76b(%rip), %rsi     # 0x1337a9
leaq 0x6c77d(%rip), %r8      # 0x1337c2
leaq -0x230(%rbp), %rdx
leaq -0x130(%rbp), %rcx
xorl %eax, %eax
callq 0x9060
leaq 0x2751bf(%rip), %r14    # 0x33c220
leaq 0x6c7b4(%rip), %rdx     # 0x13381c
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x6c737(%rip), %rsi     # 0x1337b1
leaq 0x17748f(%rip), %rdx    # 0x23e510
leaq 0x177458(%rip), %rcx    # 0x23e4e0
movq %r14, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x6c797(%rip), %rdx     # 0x133830
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x245f25(%rip), %r15    # 0x30cfd0
movsd 0x4477d(%rip), %xmm1    # 0x10b830
movsd (%r15), %xmm0
mulsd %xmm1, %xmm0
movsd 0x44764(%rip), %xmm2    # 0x10b828
leaq 0x245f0d(%rip), %r13    # 0x30cfd8
mulsd (%r13), %xmm1
divsd %xmm2, %xmm0
divsd %xmm2, %xmm1
leaq 0x245f00(%rip), %r12    # 0x30cfe0
movsd (%r12), %xmm2
leaq 0x6c750(%rip), %rsi     # 0x13383d
movq %r14, %rdi
movb $0x3, %al
callq 0x9060
leaq 0x666b2(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
movsd (%r15), %xmm0
movsd (%r13), %xmm1
movsd (%r12), %xmm2
callq 0x5c8c0
leaq 0x245ec2(%rip), %rax    # 0x30cfe8
movsd (%rax), %xmm0
leaq 0x245ebf(%rip), %rax    # 0x30cff0
movsd (%rax), %xmm1
leaq 0x245ebc(%rip), %rax    # 0x30cff8
movsd (%rax), %xmm2
leaq 0x6c71b(%rip), %r15     # 0x133862
movq %r14, %rdi
movq %r15, %rsi
movb $0x3, %al
callq 0x9060
leaq 0x6c71a(%rip), %rdx     # 0x133875
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x1773fb(%rip), %rax    # 0x23e568
movsd (%rax), %xmm0
leaq 0x177400(%rip), %rax    # 0x23e578
movsd (%rax), %xmm1
leaq 0x1773ed(%rip), %rax    # 0x23e570
movsd (%rax), %xmm2
movq %r14, %rdi
movq %r15, %rsi
movb $0x3, %al
callq 0x9060
leaq 0x1773e5(%rip), %r15    # 0x23e580
movsd (%r15), %xmm0
ucomisd 0x44860(%rip), %xmm0    # 0x10ba08
leaq 0x6c6ee(%rip), %rax     # 0x13389d
leaq 0x6c6d3(%rip), %rdx     # 0x133889
cmovbq %rax, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x6c6e6(%rip), %rsi     # 0x1338b2
leaq 0x6c6ec(%rip), %rdx     # 0x1338bf
movq %rbx, %rdi
callq 0xc3f69
movsd (%r15), %xmm0
ucomisd 0x44820(%rip), %xmm0    # 0x10ba08
jae 0xc7210
leaq 0x17739f(%rip), %rsi    # 0x23e590
leaq 0x2b34f8(%rip), %rcx    # 0x37a6f0
movq %rbx, %rdi
movl $0xc00f, %edx           # imm = 0xC00F
callq 0xdc492
movl %eax, 0x2b3555(%rip)    # 0x37a760
jmp 0xc72b5
leaq 0x177479(%rip), %rsi    # 0x23e690
leaq 0x2b3552(%rip), %rcx    # 0x37a770
movq %rbx, %rdi
movl $0x1, %edx
callq 0xdc492
movl %eax, 0x2b35af(%rip)    # 0x37a7e0
leaq 0x177558(%rip), %rsi    # 0x23e790
leaq 0x2b35b1(%rip), %rcx    # 0x37a7f0
movq %rbx, %rdi
movl $0x8000, %edx           # imm = 0x8000
callq 0xdc492
movl %eax, 0x2b360e(%rip)    # 0x37a860
leaq 0x177637(%rip), %rsi    # 0x23e890
leaq 0x2b3610(%rip), %rcx    # 0x37a870
movq %rbx, %rdi
movl $0x2, %edx
callq 0xdc492
movl %eax, 0x2b366d(%rip)    # 0x37a8e0
leaq 0x177716(%rip), %rsi    # 0x23e990
leaq 0x2b366f(%rip), %rcx    # 0x37a8f0
movq %rbx, %rdi
movl $0x4, %edx
callq 0xdc492
movl %eax, 0x2b36cc(%rip)    # 0x37a960
leaq 0x1777f5(%rip), %rsi    # 0x23ea90
leaq 0x2b36ce(%rip), %rcx    # 0x37a970
movq %rbx, %rdi
movl $0x8, %edx
callq 0xdc492
movl %eax, 0x2b372b(%rip)    # 0x37a9e0
leaq 0x2462b4(%rip), %rax    # 0x30d570
movsd (%rax), %xmm0
leaq 0x2462b1(%rip), %rax    # 0x30d578
movsd (%rax), %xmm1
callq 0xde371
leaq 0x2463cd(%rip), %rax    # 0x30d6a4
movl (%rax), %edx
leaq 0x2463bc(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
leaq 0x2463b7(%rip), %rax    # 0x30d6a0
movl (%rax), %r8d
leaq 0x2463b5(%rip), %rax    # 0x30d6a8
movl (%rax), %r9d
leaq 0x2463b3(%rip), %rax    # 0x30d6b0
xorps %xmm0, %xmm0
cvtsi2sdl (%rax), %xmm0
leaq 0x2463a1(%rip), %rax    # 0x30d6ac
movl (%rax), %r10d
leaq 0x2463a3(%rip), %rax    # 0x30d6b8
addsd (%rax), %xmm0
leaq 0x6c5cc(%rip), %r11     # 0x1338ec
leaq 0x274ef9(%rip), %r14    # 0x33c220
leaq 0x6c5a6(%rip), %rsi     # 0x1338d4
movq %r14, %rdi
movb $0x1, %al
pushq %r11
pushq %r10
callq 0x9060
addq $0x10, %rsp
leaq 0x6c5ae(%rip), %rdx     # 0x1338f5
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
movsd (%r15), %xmm0
ucomisd 0x643f1(%rip), %xmm0    # 0x12b750
jb 0xc7416
cmpl $0x0, 0x2b3574(%rip)    # 0x37a8e0
je 0xc7416
leaq -0x130(%rbp), %r14
movb $0x0, (%r14)
leaq 0x6c583(%rip), %rsi     # 0x133907
xorpd %xmm0, %xmm0
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x274e87(%rip), %r15    # 0x33c220
movq %r15, %rdi
movq %r14, %rsi
callq 0x96c0
leaq 0x6c567(%rip), %rsi     # 0x133912
xorpd %xmm0, %xmm0
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
movq %r15, %rdi
movq %r14, %rsi
callq 0x96c0
leaq 0x6c552(%rip), %rsi     # 0x13391d
xorpd %xmm0, %xmm0
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
movq %r15, %rdi
movq %r14, %rsi
callq 0x96c0
leaq 0x6c53d(%rip), %rsi     # 0x133928
xorpd %xmm0, %xmm0
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
movq %r15, %rdi
movq %r14, %rsi
callq 0x96c0
leaq 0x6c528(%rip), %rdx     # 0x133933
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc3f69
leaq 0x5b737(%rip), %rsi     # 0x122b54
leaq 0x6638c(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
callq 0xc3f69
leaq 0x245c81(%rip), %rax    # 0x30d0b4
movss (%rax), %xmm0
xorps %xmm2, %xmm2
ucomiss %xmm2, %xmm0
leaq 0x245c74(%rip), %rax    # 0x30d0b8
movss (%rax), %xmm1
jne 0xc7453
jp 0xc7453
ucomiss %xmm2, %xmm1
jne 0xc7453
jnp 0xc7485
cvtss2sd %xmm0, %xmm0
cvtss2sd %xmm1, %xmm1
leaq 0x274dbe(%rip), %r14    # 0x33c220
leaq 0x6c4de(%rip), %rsi     # 0x133947
movq %r14, %rdi
movb $0x2, %al
callq 0x9060
leaq 0x66336(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x245e64(%rip), %rax    # 0x30d2f0
cmpl $0x0, (%rax)
je 0xc74c6
leaq 0x245c58(%rip), %rax    # 0x30d0f0
movsd (%rax), %xmm0
leaq 0x274d7d(%rip), %r14    # 0x33c220
leaq 0x6c4ca(%rip), %rsi     # 0x133974
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x662f5(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x245e27(%rip), %rax    # 0x30d2f4
cmpl $0x0, (%rax)
je 0xc7507
leaq 0x245c27(%rip), %rax    # 0x30d100
movsd (%rax), %xmm0
leaq 0x274d3c(%rip), %r14    # 0x33c220
leaq 0x6c4a7(%rip), %rsi     # 0x133992
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x662b4(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x245dea(%rip), %rax    # 0x30d2f8
cmpl $0x0, (%rax)
je 0xc7548
leaq 0x245bee(%rip), %rax    # 0x30d108
movsd (%rax), %xmm0
leaq 0x274cfb(%rip), %r14    # 0x33c220
leaq 0x6c476(%rip), %rsi     # 0x1339a2
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x66273(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x245db1(%rip), %rax    # 0x30d300
cmpl $0x0, (%rax)
je 0xc7589
leaq 0x245bf5(%rip), %rax    # 0x30d150
movsd (%rax), %xmm0
leaq 0x274cba(%rip), %r14    # 0x33c220
leaq 0x6c44f(%rip), %rsi     # 0x1339bc
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x66232(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x176ffc(%rip), %rax    # 0x23e58c
cmpl $0x0, (%rax)
je 0xc75c2
leaq 0x274c84(%rip), %r14    # 0x33c220
leaq 0x6c438(%rip), %rsi     # 0x1339db
movl $0x42, %edx
movq %r14, %rdi
callq 0x92b0
leaq 0x661f9(%rip), %rdx     # 0x12d7b0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3f69
leaq 0x176e23(%rip), %rax    # 0x23e3ec
movl $0x1, (%rax)
leaq 0x176e1e(%rip), %rax    # 0x23e3f4
movl $0x0, (%rax)
leaq 0x176d85(%rip), %r14    # 0x23e368
movq (%r14), %rax
testq %rax, %rax
je 0xc761e
leaq 0x176d6e(%rip), %r15    # 0x23e360
movq (%r15), %r12
leaq 0x176e4c(%rip), %r13    # 0x23e448
movl (%r13), %r14d
movq %rax, (%r15)
movl $0x12e, (%r13)          # imm = 0x12E
callq 0xc49cd
movq %r12, (%r15)
movl %r14d, (%r13)
leaq 0x176d4a(%rip), %r14    # 0x23e368
leaq 0x6a471(%rip), %rsi     # 0x131a96
leaq 0x6c3f1(%rip), %rdx     # 0x133a1d
movq %rbx, %rdi
callq 0xc3f69
movq (%r14), %rax
testq %rax, %rax
je 0xc6aa3
cmpq %rbx, %rax
jne 0xc6aa3
leaq 0x176dd4(%rip), %rax    # 0x23e424
cmpl $0x0, (%rax)
je 0xc6aa3
movq %rbx, %rdi
callq 0x9420
jmp 0xc6aa3