// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: adjust_tz(int)
int adjust_tz(int why)
{
double st;
double jd;
int round_time;
static int last_why;

   // This routine adjusts the receiver time for the time zone and
   // various astronomical time scales. It sets the pri_xxxx variables to
   // the desired local time / astronomical time.
   //
//jd_utc = jdate(1873,12,29) + 0.50;
//jd_gps = jd_utc + jtime(0,0,utc_offset,0.0);


// dst_ofs = 0;
   jd = 0.0;
   round_time = 0;
   have_local_time = 0;

   jd_astro = jd_display = jd_local;
   if(use_gmst || use_lmst || use_merc || use_msd || use_pluto || use_ven || use_bessel) {
      if(use_msd) {
         st = jd_astro = mars_date(jd_tt);
         st = st - (int) st;
         st *= 24.0;
      }
      else if(use_ven || use_merc || use_pluto) {
         st = jd_astro = planet_date(jd_gps+jtime(0,0,0,TSX_TWEAK));
         st = st - (int) st;
         st *= 24.0;
      }
      else if(use_bessel) {
         st = bessel_date(jd_utc);  // bessel_date returns bessel date offset by year 1900
         jd_astro = 1900.0 + st;    // true bessel date

         st = st - (int) st;
         gregorian(0, jd_utc);
         st = jdate(g_year, 1, 1) + (st * 365.242198781);

         st = st - (int) st;
         st *= 24.0;
      }
      else if(use_gmst) st = gmst(jd_utc+jtime(0,0,0,TSX_TWEAK), use_gmst-1);
      else              st = lmst(jd_utc+jtime(0,0,0,TSX_TWEAK), use_lmst-1);

      pri_hours = (int) st;
      st = (st - pri_hours);       // decimal hour
      st *= 60.0;

      pri_minutes = (int) st;
      st = (st - pri_minutes);     // decimal minutes
      st *= 60.0;

      pri_seconds = (int) st;
      st = (st - pri_seconds);     // decimal seconds
      st_secs = st;                // remainder seconds

      pri_frac = st_secs;

      strcpy(tz_string, std_string);
      round_time = 1;
   }
   else {
//pri_year = 2006;  // Astronomical time scale test data from SOFA
//pri_month= 1;
//pri_day= 15;
//pri_hours = 21;
//pri_minutes = 24;
//pri_seconds = 37+14;
//pri_frac = 0.50;
      if(use_tai) {
         jd = tai_time(jd_gps);
         strcpy(tz_string, std_string);
      }
      else if(use_tt) {
         jd = jd_tt;  // TT is 51.184 seconds ahead of GPS
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_ut1) {
         delta_ut1 = (jtime(0, 0, 51+utc_offset, 0.184) - utc_delta_t());
//sprintf(debug_text3, "delta_ut1:%f", delta_ut1*24.0*3600.0);
         jd = jd_utc + delta_ut1;
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_tcg) {
         jd = tcg_time(jd_tt);
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_tdb) {  // accurate to < 50 uS
         jd = tdb_time(jd_tt);
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_tcb) {
         jd = tcb_time(jd_tt);

//jd = jd + (1.550519768e-8*(now - 2443144.5003725)*86400.0 + (-6.55e-5)); // calc TCB
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_hjd) {
         jd = jd_astro = get_hjd(jd_utc+jtime(0,0,0,TSX_TWEAK));
         strcpy(tz_string, std_string);
         round_time = 1;
      }
      else if(use_loran) {
         jd = loran_time(jd_gps);
         strcpy(tz_string, std_string);
         have_local_time = 1;
      }
      else if(use_gps) {
         jd = jd_gps;
         strcpy(tz_string, std_string);
         have_local_time = 2;
      }
      else if(use_utc) {
         jd = jd_utc;
         strcpy(tz_string, std_string);
         have_local_time = 3;
      }
      else if(solar_time) {
         jd = jd_utc + jtime(0,0,0,TSX_TWEAK);  // adjust time for receiver message delays
         jd += (eot(jd_utc) / (24.0*60.0));
         round_time = 1;
      }
      else {
         if(time_flags & TFLAGS_UTC) jd = jd_utc;  // we want UTC based times
         else                        jd = jd_gps;  // displaying GPS based times

         if((leap_time || leap_sixty) && (TSX_TWEAK < 0.0)) ;  // negative TSX_TWEAK would mess up leap second display
         else jd += jtime(0,0,0,TSX_TWEAK);    // adjust time for receiver message delays

         if(!solar_time) jd += time_zone();    // adjust time for the time zone

         have_local_time = 4;
      }


      if(leap_sixty) {  // receiver sent a time of xx:59:60
         gregorian(0, jd - jtime(0,0,1,0.0));   // convert adjusted Julian back to Gregorian
         g_seconds = 60;  // display leapsecond time to xx:59:60
      }
      else {
         gregorian(0, jd);
      }

round_time = 0;  // we no longer do time rounding
      if(round_time) {       // round time up to nearest second;
         jd += jtime(0,0,0, 0.5);
      }

      jd_display = jd;
      pri_day = g_day;         // set local time values to the adjusted time
      pri_month = g_month;
      pri_year = g_year;
      pri_hours = g_hours;        
      pri_minutes = g_minutes;
      pri_seconds = g_seconds;
      pri_frac = g_frac;       // note: usually 1msec fast due to rounding compensation in gregorian(0, )
      if(round_time) {
         pri_frac = g_frac = 0;
      }
   }

   last_why = why;
   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
leaq 0x22baf9(%rip), %r14    # 0x30d64c
movl $0x0, (%r14)
leaq 0x22b9e7(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
leaq 0x22b9e4(%rip), %rbx    # 0x30d550
movsd %xmm0, (%rbx)
leaq 0x22b9e1(%rip), %r15    # 0x30d558
movsd %xmm0, (%r15)
leaq 0x22bd7d(%rip), %rax    # 0x30d900
movzbl (%rax), %edi
leaq 0x22bd74(%rip), %rax    # 0x30d901
movb (%rax), %al
movl %edi, %edx
orb %al, %dl
leaq 0x22bd73(%rip), %rcx    # 0x30d90d
movb (%rcx), %cl
leaq 0x22bd69(%rip), %rsi    # 0x30d90c
movb (%rsi), %sil
movl %ecx, %r8d
orb %sil, %r8b
orb %dl, %r8b
leaq 0x22bd59(%rip), %rdx    # 0x30d90f
movb (%rdx), %dl
leaq 0x22bd4f(%rip), %r9     # 0x30d90e
movb (%r9), %r9b
movl %edx, %r10d
orb %r9b, %r10b
orb %r8b, %r10b
leaq 0x22bd3e(%rip), %r8     # 0x30d910
movb (%r8), %r8b
orb %r8b, %r10b
je 0xe1c2c
testb %sil, %sil
je 0xe1c84
leaq 0x22b956(%rip), %rax    # 0x30d540
movsd (%rax), %xmm2
addsd 0x49e3a(%rip), %xmm2    # 0x12ba30
divsd 0x49e3a(%rip), %xmm2    # 0x12ba38
addsd 0x49e3a(%rip), %xmm2    # 0x12ba40
addsd 0x49e3a(%rip), %xmm2    # 0x12ba48
cvttpd2dq %xmm2, %xmm0
cvtdq2pd %xmm0, %xmm0
movsd %xmm2, (%r15)
subsd %xmm0, %xmm2
mulsd 0x27419(%rip), %xmm2    # 0x109040
jmp 0xe1ff6
leaq 0x22bcd0(%rip), %rax    # 0x30d903
cmpb $0x0, (%rax)
je 0xe1cf0
leaq 0x22b8f5(%rip), %rax    # 0x30d538
leaq 0x22c27e(%rip), %rcx    # 0x30dec8
movsd (%rcx), %xmm0
divsd 0x273e2(%rip), %xmm0    # 0x109038
addsd 0x49e6a(%rip), %xmm0    # 0x12bac8
divsd 0x273aa(%rip), %xmm0    # 0x109010
xorpd %xmm1, %xmm1
addsd %xmm0, %xmm1
divsd 0x273ca(%rip), %xmm1    # 0x109040
addsd (%rax), %xmm1
movsd %xmm1, -0x30(%rbp)
jmp 0xe1d10
orb %cl, %r9b
orb %dl, %r9b
je 0xe1dee
leaq 0x22c231(%rip), %rax    # 0x30dec8
movsd (%rax), %xmm2
divsd 0x27395(%rip), %xmm2    # 0x109038
xorpd %xmm0, %xmm0
addsd %xmm0, %xmm2
divsd 0x2735d(%rip), %xmm2    # 0x109010
leaq 0x22b87e(%rip), %rax    # 0x30d538
addsd %xmm0, %xmm2
movsd 0x2737a(%rip), %xmm0    # 0x109040
divsd %xmm0, %xmm2
addsd (%rax), %xmm2
addsd 0x49d7a(%rip), %xmm2    # 0x12ba50
movsd %xmm2, (%r15)
cvttpd2dq %xmm2, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
jmp 0xe1ff6
leaq 0x22bc0d(%rip), %rax    # 0x30d904
cmpb $0x0, (%rax)
je 0xe1ef7
leaq 0x22b839(%rip), %rax    # 0x30d540
movsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x22bc19(%rip), %rdi    # 0x30d930
leaq 0x22bc02(%rip), %rsi    # 0x30d920
callq 0x9340
leaq 0x22b4fe(%rip), %rax    # 0x30d228
cmpl $0x0, (%rax)
je 0xe1d52
movsd 0x49dd9(%rip), %xmm0    # 0x12bb10
addsd -0x30(%rbp), %xmm0
xorl %edi, %edi
callq 0xd0c46
leaq 0x22b966(%rip), %rax    # 0x30d6b0
movl $0x3c, (%rax)
jmp 0xe1d5e
xorl %edi, %edi
movsd -0x30(%rbp), %xmm0
callq 0xd0c46
movsd -0x30(%rbp), %xmm0
movsd %xmm0, (%rbx)
leaq 0x22b932(%rip), %rax    # 0x30d6a0
movl (%rax), %eax
leaq 0x22b795(%rip), %rcx    # 0x30d50c
movl %eax, (%rcx)
leaq 0x22b91c(%rip), %rax    # 0x30d69c
movl (%rax), %eax
leaq 0x22b787(%rip), %rcx    # 0x30d510
movl %eax, (%rcx)
leaq 0x22b912(%rip), %rax    # 0x30d6a4
movl (%rax), %eax
leaq 0x22b779(%rip), %rcx    # 0x30d514
movl %eax, (%rcx)
leaq 0x22b904(%rip), %rax    # 0x30d6a8
movl (%rax), %eax
leaq 0x22b75b(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
leaq 0x22b8f6(%rip), %rax    # 0x30d6ac
movl (%rax), %eax
leaq 0x22b745(%rip), %rcx    # 0x30d504
movl %eax, (%rcx)
leaq 0x22b8e8(%rip), %rax    # 0x30d6b0
movl (%rax), %eax
leaq 0x22b72f(%rip), %rcx    # 0x30d500
movl %eax, (%rcx)
leaq 0x22b8de(%rip), %rax    # 0x30d6b8
movsd (%rax), %xmm0
leaq 0x22b733(%rip), %rax    # 0x30d518
movsd %xmm0, (%rax)
jmp 0xe207a
leaq 0x22b73b(%rip), %rcx    # 0x30d530
movsd (%rcx), %xmm0
testb %r8b, %r8b
je 0xe1f70
movsd 0x49c4e(%rip), %xmm3    # 0x12ba58
addsd %xmm0, %xmm3
divsd 0x49c4a(%rip), %xmm3    # 0x12ba60
movsd 0x49cfa(%rip), %xmm1    # 0x12bb18
addsd %xmm3, %xmm1
cvttpd2dq %xmm3, %xmm2
movsd %xmm1, (%r15)
cvtdq2pd %xmm2, %xmm1
subsd %xmm1, %xmm3
movapd %xmm3, -0x30(%rbp)
xorl %edi, %edi
callq 0xd0c46
movapd -0x30(%rbp), %xmm2
leaq 0x22b859(%rip), %rax    # 0x30d6a4
movslq (%rax), %rcx
leaq -0x1(%rcx), %rax
movabsq $-0x5c28f5c28f5c28f5, %rsi # imm = 0xA3D70A3D70A3D70B
imulq %rsi
leaq (%rdx,%rcx), %rax
decq %rax
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x6, %rax
addq %rdx, %rax
imulq $-0x64, %rax, %rdx
addq %rdx, %rcx
decq %rcx
imulq $0x23ab1, %rax, %rax    # imm = 0x23AB1
leaq 0x3(%rax), %rdi
testq %rax, %rax
cmovnsq %rax, %rdi
sarq $0x2, %rdi
imulq $0x8ead, %rcx, %rcx     # imm = 0x8EAD
movq %rcx, %rax
imulq %rsi
addq %rcx, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
addq %rax, %rdx
xorps %xmm0, %xmm0
cvtsi2sd %rdi, %xmm0
addsd 0x49846(%rip), %xmm0    # 0x12b708
xorps %xmm1, %xmm1
cvtsi2sd %rdx, %xmm1
addsd %xmm0, %xmm1
addsd 0x49a42(%rip), %xmm1    # 0x12b918
addsd 0x27192(%rip), %xmm1    # 0x109070
mulsd 0x49b7a(%rip), %xmm2    # 0x12ba60
addsd %xmm1, %xmm2
cvttpd2dq %xmm2, %xmm0
cvtdq2pd %xmm0, %xmm0
jmp 0xe1c1b
leaq 0x22ba04(%rip), %rax    # 0x30d902
cmpb $0x0, (%rax)
je 0xe1fb0
leaq 0x22b81a(%rip), %rax    # 0x30d728
movl (%rax), %eax
addl $0x33, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
addsd 0x49766(%rip), %xmm0    # 0x12b688
divsd 0x270e6(%rip), %xmm0    # 0x109010
xorpd %xmm1, %xmm1
addsd %xmm0, %xmm1
divsd 0x27106(%rip), %xmm1    # 0x109040
leaq 0x22b5a7(%rip), %rax    # 0x30d4e8
cmpl $0x0, (%rax)
movapd %xmm1, %xmm0
je 0xe1f55
leaq 0x22b59f(%rip), %rax    # 0x30d4f0
movsd (%rax), %xmm0
subsd %xmm0, %xmm1
leaq 0x22b598(%rip), %rax    # 0x30d4f8
movsd %xmm1, (%rax)
leaq 0x22b5c5(%rip), %rax    # 0x30d530
jmp 0xe1c76
leaq 0x22bf51(%rip), %rcx    # 0x30dec8
movsd (%rcx), %xmm1
divsd 0x270b5(%rip), %xmm1    # 0x109038
xorpd %xmm2, %xmm2
addsd %xmm2, %xmm1
divsd 0x2707d(%rip), %xmm1    # 0x109010
addsd %xmm2, %xmm1
divsd 0x270a1(%rip), %xmm1    # 0x109040
addsd %xmm1, %xmm0
testl %edi, %edi
je 0xe1fe8
decl %edi
callq 0xe177b
jmp 0xe1ff2
leaq 0x22b94e(%rip), %rax    # 0x30d905
cmpb $0x0, (%rax)
je 0xe208a
leaq 0x22b579(%rip), %rax    # 0x30d540
movsd (%rax), %xmm0
movsd 0x49afd(%rip), %xmm1    # 0x12bad0
addsd %xmm0, %xmm1
mulsd 0x49af9(%rip), %xmm1    # 0x12bad8
addsd %xmm0, %xmm1
jmp 0xe1c7a
movzbl %al, %edi
decl %edi
callq 0xe18ea
movapd %xmm0, %xmm2
cvttsd2si %xmm2, %eax
leaq 0x22b507(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
cvttpd2dq %xmm2, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm2
movsd 0x26ff1(%rip), %xmm0    # 0x109008
mulsd %xmm0, %xmm2
cvttsd2si %xmm2, %eax
leaq 0x22b4de(%rip), %rcx    # 0x30d504
cvttpd2dq %xmm2, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
cvttsd2si %xmm2, %edx
movl %eax, (%rcx)
leaq 0x22b4bd(%rip), %rax    # 0x30d500
cvttpd2dq %xmm2, %xmm0
movl %edx, (%rax)
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm2
leaq 0x22b8c0(%rip), %rax    # 0x30d918
movsd %xmm2, (%rax)
leaq 0x22b4b5(%rip), %rax    # 0x30d518
movsd %xmm2, (%rax)
leaq 0x22b8c2(%rip), %rdi    # 0x30d930
leaq 0x22b8ab(%rip), %rsi    # 0x30d920
callq 0x9340
movl $0x1, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x22b875(%rip), %rax    # 0x30d906
cmpb $0x0, (%rax)
je 0xe211e
leaq 0x22b49f(%rip), %rax    # 0x30d540
movsd (%rax), %xmm1
movsd %xmm1, -0x40(%rbp)
movsd 0x4969e(%rip), %xmm0    # 0x12b750
addsd %xmm1, %xmm0
mulsd 0x49a22(%rip), %xmm0    # 0x12bae0
addsd 0x49a22(%rip), %xmm0    # 0x12bae8
mulsd 0x2974a(%rip), %xmm0    # 0x10b818
divsd 0x2974a(%rip), %xmm0    # 0x10b820
movsd %xmm0, -0x38(%rbp)
callq 0x9080
movsd %xmm0, -0x30(%rbp)
movsd -0x38(%rbp), %xmm0
addsd %xmm0, %xmm0
callq 0x9080
mulsd 0x499f5(%rip), %xmm0    # 0x12baf0
movsd -0x30(%rbp), %xmm1
mulsd 0x499f0(%rip), %xmm1    # 0x12baf8
addsd %xmm0, %xmm1
divsd 0x26f04(%rip), %xmm1    # 0x109018
addsd -0x40(%rbp), %xmm1
jmp 0xe1c7a
leaq 0x22b7e2(%rip), %rax    # 0x30d907
cmpb $0x0, (%rax)
je 0xe21ca
leaq 0x22b40b(%rip), %rax    # 0x30d540
movsd (%rax), %xmm1
movsd %xmm1, -0x40(%rbp)
movsd 0x4960a(%rip), %xmm0    # 0x12b750
addsd %xmm1, %xmm0
mulsd 0x4998e(%rip), %xmm0    # 0x12bae0
addsd 0x4998e(%rip), %xmm0    # 0x12bae8
mulsd 0x296b6(%rip), %xmm0    # 0x10b818
divsd 0x296b6(%rip), %xmm0    # 0x10b820
movsd %xmm0, -0x38(%rbp)
callq 0x9080
movsd %xmm0, -0x30(%rbp)
movsd -0x38(%rbp), %xmm0
addsd %xmm0, %xmm0
callq 0x9080
mulsd 0x49961(%rip), %xmm0    # 0x12baf0
movsd -0x30(%rbp), %xmm1
mulsd 0x4995c(%rip), %xmm1    # 0x12baf8
addsd %xmm0, %xmm1
divsd 0x26e70(%rip), %xmm1    # 0x109018
addsd -0x40(%rbp), %xmm1
addsd 0x4991b(%rip), %xmm1    # 0x12bad0
divsd 0x49943(%rip), %xmm1    # 0x12bb00
addsd 0x49943(%rip), %xmm1    # 0x12bb08
jmp 0xe1c7a
leaq 0x22b737(%rip), %rax    # 0x30d908
cmpb $0x0, (%rax)
je 0xe2224
leaq 0x22b353(%rip), %rax    # 0x30d530
leaq 0x22bce4(%rip), %rcx    # 0x30dec8
movsd (%rcx), %xmm0
divsd 0x26e48(%rip), %xmm0    # 0x109038
xorpd %xmm1, %xmm1
addsd %xmm1, %xmm0
divsd 0x26e10(%rip), %xmm0    # 0x109010
addsd %xmm1, %xmm0
divsd 0x26e34(%rip), %xmm0    # 0x109040
addsd (%rax), %xmm0
callq 0xe1670
movsd %xmm0, -0x30(%rbp)
movsd %xmm0, (%r15)
jmp 0xe1d10
leaq 0x22b6de(%rip), %rax    # 0x30d909
cmpb $0x0, (%rax)
je 0xe2292
leaq 0x22b301(%rip), %rax    # 0x30d538
leaq 0x22bc8a(%rip), %rcx    # 0x30dec8
movsd (%rcx), %xmm0
divsd 0x26dee(%rip), %xmm0    # 0x109038
addsd 0x3c506(%rip), %xmm0    # 0x11e758
divsd 0x26db6(%rip), %xmm0    # 0x109010
xorpd %xmm1, %xmm1
addsd %xmm0, %xmm1
divsd 0x26dd6(%rip), %xmm1    # 0x109040
addsd (%rax), %xmm1
movsd %xmm1, -0x30(%rbp)
leaq 0x22b6b6(%rip), %rdi    # 0x30d930
leaq 0x22b69f(%rip), %rsi    # 0x30d920
callq 0x9340
movl $0x1, (%r14)
jmp 0xe1d23
leaq 0x22b671(%rip), %rax    # 0x30d90a
cmpb $0x0, (%rax)
je 0xe22cd
leaq 0x22b293(%rip), %rax    # 0x30d538
movsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x22b67b(%rip), %rdi    # 0x30d930
leaq 0x22b664(%rip), %rsi    # 0x30d920
callq 0x9340
movl $0x2, (%r14)
jmp 0xe1d23
leaq 0x22b637(%rip), %rax    # 0x30d90b
cmpb $0x0, (%rax)
je 0xe2308
leaq 0x22b250(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x22b640(%rip), %rdi    # 0x30d930
leaq 0x22b629(%rip), %rsi    # 0x30d920
callq 0x9340
movl $0x3, (%r14)
jmp 0xe1d23
leaq 0x22b602(%rip), %rax    # 0x30d911
cmpb $0x0, (%rax)
je 0xe2373
leaq 0x22b215(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
leaq 0x22bba2(%rip), %rax    # 0x30dec8
movsd (%rax), %xmm2
divsd 0x26d06(%rip), %xmm2    # 0x109038
xorpd %xmm1, %xmm1
addsd %xmm1, %xmm2
divsd 0x26cce(%rip), %xmm2    # 0x109010
addsd %xmm1, %xmm2
divsd 0x26cf2(%rip), %xmm2    # 0x109040
addsd %xmm0, %xmm2
movsd %xmm2, -0x30(%rbp)
callq 0xe0fbe
divsd 0x26e0c(%rip), %xmm0    # 0x109170
addsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
jmp 0xe1d23
leaq 0x22b12a(%rip), %rax    # 0x30d4a4
testb $0x1, (%rax)
jne 0xe2388
leaq 0x22b1b2(%rip), %rax    # 0x30d538
jmp 0xe238f
leaq 0x22b1a1(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
leaq 0x22b0b6(%rip), %rax    # 0x30d450
cmpb $0x0, (%rax)
jne 0xe23ab
leaq 0x22ae82(%rip), %rax    # 0x30d228
cmpl $0x0, (%rax)
je 0xe23c8
leaq 0x22bb16(%rip), %rax    # 0x30dec8
movsd (%rax), %xmm1
divsd 0x26c7a(%rip), %xmm1    # 0x109038
xorpd %xmm2, %xmm2
ucomisd %xmm1, %xmm2
ja 0xe23fb
leaq 0x22baf9(%rip), %rax    # 0x30dec8
movsd (%rax), %xmm1
divsd 0x26c5d(%rip), %xmm1    # 0x109038
xorpd %xmm2, %xmm2
addsd %xmm2, %xmm1
divsd 0x26c25(%rip), %xmm1    # 0x109010
addsd %xmm2, %xmm1
divsd 0x26c49(%rip), %xmm1    # 0x109040
addsd %xmm1, %xmm0
leaq 0x22b47e(%rip), %rax    # 0x30d880
leaq 0x22b497(%rip), %rcx    # 0x30d8a0
xorps %xmm1, %xmm1
cvtsi2sdl (%rcx), %xmm1
divsd 0x26c28(%rip), %xmm1    # 0x109040
addsd (%rax), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
movl $0x4, (%r14)
jmp 0xe1d23