// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_const()
int rpn_const()
{
int i;
double val;

   // perform a calculator command

   // We break the command parser into rpn_const() and rpn_math() in order
   // to get around a compiler if() chain limit.

   i = find_rpn_def(msg_field);
   if(i >= 0) {  // user defined command
      if(rpn_exec_level >= RPN_EXEC_DEPTH) {
         edit_error("DEFINE expansion nested too deep!");
         rpn_break = 1;
         rpn_exec_level = 0;
         return 0;
      }

      rpn_nest();  // save where we are in the current line

      // switch to decoding the DEFINE string
      strcpy(nmea_msg, rpn_defs[i]);
      msg_col = strlen(msg_field)+1;
      return 1;
   }

   // constants
   val = 0.0;
   if     (!strcmp(msg_field,  "lastx"))      { rpn_push(last_x); }
   else if(!strcmp(msg_field,  "last"))       { rpn_push(last_x); }
   else if(!strcmp(msg_field,  "c"))          { rpn_push(LIGHTSPEED*1000.0); }
   else if(!strcmp(msg_field,  "e"))          { rpn_push(E_VALUE); }
   else if(!strcmp(msg_field,  "h"))          { rpn_push(KH); }
   else if(!strcmp(msg_field,  "k"))          { rpn_push(KB); }
   else if(!strcmp(msg_field,  "pi"))         { rpn_push(PI); }
   else if(!strcmp(msg_field,  "\\"))         { rpn_push(PI); }
   else if(!strcmp(msg_field,  "rn"))         { rpn_rn(); }
   else if(!strcmp(msg_field,  "spd"))        { rpn_push(24.0*60.0*60.0); }
   else if(!strcmp(msg_field,  "spw"))        { rpn_push(24.0*60.0*60.0*7.0); }
   else if(!strcmp(msg_field,  "t0"))         { rpn_push(ABS_ZERO); }

   else if(!strcmp(msg_field,  "lat"))        { rpn_push(lat*deg_mode); }
   else if(!strcmp(msg_field,  "lon"))        { rpn_push(lon*deg_mode); }
   else if(!strcmp(msg_field,  "alt"))        { rpn_push(alt); }
   else if(!strcmp(msg_field,  "lla"))        { rpn_push(lat*deg_mode); rpn_push(lon*deg_mode); rpn_push(alt); }
   else if(!strcmp(msg_field,  "dac"))        { rpn_push(dac_voltage); }
   else if(!strcmp(msg_field,  "pps"))        { rpn_push(pps_offset); }
   else if(!strcmp(msg_field,  "osc"))        { rpn_push(osc_offset); }
   else if(!strcmp(msg_field,  "temp"))       { rpn_push(temperature); }

   else if(!strcmp(msg_field,  "amu"))        { rpn_push(amu_mask); }
   else if(!strcmp(msg_field,  "cable"))      { rpn_push(cable_delay*1.0E9); }
   else if(!strcmp(msg_field,  "elmask"))     { rpn_push(el_mask*PI/180.0*deg_mode); }
   else if(!strcmp(msg_field,  "ffom"))       { rpn_push(ffom); }
   else if(!strcmp(msg_field,  "leap"))       { rpn_push(utc_offset); }
   else if(!strcmp(msg_field,  "tfom"))       { rpn_push(tfom); }

   else if(!strcmp(msg_field,  "dop"))        { rpn_push(average_dop()); }
   else if(!strcmp(msg_field,  "edop"))       { rpn_push(edop); }
   else if(!strcmp(msg_field,  "gdop"))       { rpn_push(gdop); }
   else if(!strcmp(msg_field,  "hdop"))       { rpn_push(hdop); }
   else if(!strcmp(msg_field,  "pdop"))       { rpn_push(pdop); }
   else if(!strcmp(msg_field,  "tdop"))       { rpn_push(tdop); }
   else if(!strcmp(msg_field,  "vdop"))       { rpn_push(vdop); }
   else if(!strcmp(msg_field,  "xdop"))       { rpn_push(xdop); }
   else if(!strcmp(msg_field,  "ydop"))       { rpn_push(ydop); }

   else if(!strcmp(msg_field,  "damp"))       { rpn_push(damping_factor); }
   else if(!strcmp(msg_field,  "gain"))       { rpn_push(osc_gain); }
   else if(!strcmp(msg_field,  "initv"))      { rpn_push(initial_voltage); }
   else if(!strcmp(msg_field,  "tc"))         { rpn_push(time_constant); }

   else if(!strncmp(msg_field, "prn", 3))     { rpn_prn(0); }
   else if(!strncmp(msg_field, "az", 2))      { rpn_az(0); }
   else if(!strncmp(msg_field, "el", 2))      { rpn_el(0); }
   else if(!strncmp(msg_field, "sig", 3))     { rpn_sig(0); }
   else if(!strncmp(msg_field, "doppler", 7)) { rpn_doppler(0); }
   else if(!strncmp(msg_field, "range", 5))   { rpn_range(0); }
   else if(!strncmp(msg_field, "phase", 5))   { rpn_phase(0); }

   // time related constants
   else if(!strcmp(msg_field,  "time"))       { rpn_time(); }
   else if(!strcmp(msg_field,  "date"))       { rpn_date(); }
   else if(!strcmp(msg_field,  "local"))      { rpn_push(jd_local); }
   else if(!strcmp(msg_field,  "utc"))        { rpn_push(jd_utc); }
   else if(!strcmp(msg_field,  "gps"))        { rpn_push(jd_gps); }
   else if(!strcmp(msg_field,  "mjd"))        { rpn_push(jd_utc-JD_MJD); }
   else if(!strcmp(msg_field,  "tzjd"))       { rpn_push(time_zone()); }
   else if(!strcmp(msg_field,  "tz"))         { rpn_push(time_zone()*24.0); }
   else if(!strcmp(msg_field,  "tow"))        { rpn_push((double) tow); }
   else if(!strcmp(msg_field,  "week"))       { rpn_push((double) gps_week); }
   else if(!strcmp(msg_field,  "epoch"))      { rpn_push(GPS_EPOCH); }
   else if(!strcmp(msg_field,  "gtime"))      { rpn_push(jd_utc - GPS_EPOCH); }
   else if(!strcmp(msg_field,  "utime"))      { rpn_push(jd_utc - LINUX_EPOCH); }
   else if(!strcmp(msg_field,  "greg"))       { rpn_gregorian(); }
   else if(!strcmp(msg_field,  "gregorian"))  { rpn_gregorian(); }
   else if(!strcmp(msg_field,  "dow"))        { rpn_dow(); }
   else if(!strcmp(msg_field,  "ti"))         { rpn_push(jd_elapsed?((jd_utc-jd_elapsed)*24.0*60.0*60.0+0.00001):0.0); }
   else if(!strcmp(msg_field,  "rise"))       { rpn_push(sunrise_time + time_zone()); }
   else if(!strcmp(msg_field,  "noon"))       { rpn_push(solar_noon + time_zone()); }
   else if(!strcmp(msg_field,  "set"))        { rpn_push(sunset_time + time_zone()); }

   // conditionals
   else if(!strcmp(msg_field, "x=y"))       { if(rpn[0] == rpn[1]) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strcmp(msg_field, "x<y"))       { if(rpn[0] < rpn[1])  skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strcmp(msg_field, "x>y"))       { if(rpn[0] > rpn[1])  skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strcmp(msg_field, "x<>y"))      { if(rpn[0] != rpn[1]) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strcmp(msg_field, "x>=y"))      { if(rpn[0] >= rpn[1]) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strcmp(msg_field, "x<=y"))      { if(rpn[0] <= rpn[1]) skip_next_rpn = (2); else skip_next_rpn = 1; }

   else if(!strncmp(msg_field, "x=", 2))    { val=atof(&msg_field[2]); if(rpn[0] == val) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strncmp(msg_field, "x<", 2))    { val=atof(&msg_field[2]); if(rpn[0] < val)  skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strncmp(msg_field, "x>", 2))    { val=atof(&msg_field[2]); if(rpn[0] > val)  skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strncmp(msg_field, "x<>", 3))   { val=atof(&msg_field[3]); if(rpn[0] != val) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strncmp(msg_field, "x>=", 3))   { val=atof(&msg_field[3]); if(rpn[0] >= val) skip_next_rpn = (2); else skip_next_rpn = 1; }
   else if(!strncmp(msg_field, "x<=", 3))   { val=atof(&msg_field[3]); if(rpn[0] <= val) skip_next_rpn = (2); else skip_next_rpn = 1; }

   else if(!strcmp(msg_field, "break"))     { skip_next_rpn = (-1); }
   else if(!strcmp(msg_field, "dsz"))       { rpn_inc(-1.0); }
   else if(!strcmp(msg_field, "isz"))       { rpn_inc(+1.0); }
   else if(!strcmp(msg_field, "nop"))       { }
   else if(!strcmp(msg_field, "again"))     { // loop back to start of line
      msg_col = 0;      // loop back to start of line
      update_pwm();     // if doing pwm temperature control
      serve_os_queue(); // so keypress check works
      if(KBHIT()) {
         nmea_msg[0] = 0;
         msg_col = 0;
         msg_field[0] = 0;
         rpn_error("Calculator loop interrupted!");
      }
   }

   else return 0;  // unknown command

   return 1;   // command processed
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
leaq 0x3673f1(%rip), %rdi    # 0x39ac20
callq 0x309c0
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x8(%rbp)
jl 0x338b9
cmpl $0xa, 0x3700b0(%rip)    # 0x3a38f4
jl 0x33872
leaq 0x13e912(%rip), %rdi    # 0x17215f
callq 0x30d60
movl $0x1, 0x36e6d4(%rip)    # 0x3a1f30
movl $0x0, 0x37008e(%rip)    # 0x3a38f4
movl $0x0, -0x4(%rbp)
jmp 0x34aae
callq 0x31a00
movslq -0x8(%rbp), %rcx
leaq 0x36e6be(%rip), %rax    # 0x3a1f40
movq (%rax,%rcx,8), %rsi
leaq 0x367183(%rip), %rdi    # 0x39aa10
callq 0x9350
leaq 0x367387(%rip), %rdi    # 0x39ac20
callq 0x9120
addq $0x1, %rax
movl %eax, %ecx
leaq 0x367579(%rip), %rax    # 0x39ae24
movl %ecx, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x34aae
xorps %xmm0, %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x367358(%rip), %rdi    # 0x39ac20
leaq 0x13e8b2(%rip), %rsi    # 0x172181
callq 0x9510
cmpl $0x0, %eax
jne 0x338eb
movsd 0x36e627(%rip), %xmm0   # 0x3a1f08
callq 0x2eba0
jmp 0x34aa7
leaq 0x36732e(%rip), %rdi    # 0x39ac20
leaq 0x13e88e(%rip), %rsi    # 0x172187
callq 0x9510
cmpl $0x0, %eax
jne 0x33915
movsd 0x36e5fd(%rip), %xmm0   # 0x3a1f08
callq 0x2eba0
jmp 0x34aa5
leaq 0x367304(%rip), %rdi    # 0x39ac20
leaq 0x15cce0(%rip), %rsi    # 0x190603
callq 0x9510
cmpl $0x0, %eax
jne 0x3393f
movsd 0x13dcb3(%rip), %xmm0   # 0x1715e8
callq 0x2eba0
jmp 0x34aa3
leaq 0x3672da(%rip), %rdi    # 0x39ac20
leaq 0x141c65(%rip), %rsi    # 0x1755b2
callq 0x9510
cmpl $0x0, %eax
jne 0x33969
movsd 0x13dc91(%rip), %xmm0   # 0x1715f0
callq 0x2eba0
jmp 0x34aa1
leaq 0x3672b0(%rip), %rdi    # 0x39ac20
leaq 0x148616(%rip), %rsi    # 0x17bf8d
callq 0x9510
cmpl $0x0, %eax
jne 0x33993
movsd 0x13dc6f(%rip), %xmm0   # 0x1715f8
callq 0x2eba0
jmp 0x34a9f
leaq 0x367286(%rip), %rdi    # 0x39ac20
leaq 0x150fa7(%rip), %rsi    # 0x184948
callq 0x9510
cmpl $0x0, %eax
jne 0x339bd
movsd 0x13dc4d(%rip), %xmm0   # 0x171600
callq 0x2eba0
jmp 0x34a9d
leaq 0x36725c(%rip), %rdi    # 0x39ac20
leaq 0x14f041(%rip), %rsi    # 0x182a0c
callq 0x9510
cmpl $0x0, %eax
jne 0x339e7
movsd 0x13dbeb(%rip), %xmm0   # 0x1715c8
callq 0x2eba0
jmp 0x34a9b
leaq 0x367232(%rip), %rdi    # 0x39ac20
leaq 0x13c569(%rip), %rsi    # 0x16ff5e
callq 0x9510
cmpl $0x0, %eax
jne 0x33a11
movsd 0x13dbc1(%rip), %xmm0   # 0x1715c8
callq 0x2eba0
jmp 0x34a99
leaq 0x367208(%rip), %rdi    # 0x39ac20
leaq 0x15bb8c(%rip), %rsi    # 0x18f5ab
callq 0x9510
cmpl $0x0, %eax
jne 0x33a33
callq 0x2f420
jmp 0x34a97
leaq 0x3671e6(%rip), %rdi    # 0x39ac20
leaq 0x13e74b(%rip), %rsi    # 0x17218c
callq 0x9510
cmpl $0x0, %eax
jne 0x33a5d
movsd 0x13b5b5(%rip), %xmm0   # 0x16f008
callq 0x2eba0
jmp 0x34a95
leaq 0x3671bc(%rip), %rdi    # 0x39ac20
leaq 0x13e725(%rip), %rsi    # 0x172190
callq 0x9510
cmpl $0x0, %eax
jne 0x33a87
movsd 0x13db8b(%rip), %xmm0   # 0x171608
callq 0x2eba0
jmp 0x34a93
leaq 0x367192(%rip), %rdi    # 0x39ac20
leaq 0x13e6ff(%rip), %rsi    # 0x172194
callq 0x9510
cmpl $0x0, %eax
jne 0x33ab1
movsd 0x13db19(%rip), %xmm0   # 0x1715c0
callq 0x2eba0
jmp 0x34a91
leaq 0x367168(%rip), %rdi    # 0x39ac20
leaq 0x13e6d8(%rip), %rsi    # 0x172197
callq 0x9510
cmpl $0x0, %eax
jne 0x33ae6
leaq 0x3386e0(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
mulsd 0x19556c(%rip), %xmm0   # 0x1c9048
callq 0x2eba0
jmp 0x34a8f
leaq 0x367133(%rip), %rdi    # 0x39ac20
leaq 0x13e6a7(%rip), %rsi    # 0x17219b
callq 0x9510
cmpl $0x0, %eax
jne 0x33b1b
leaq 0x3386b3(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
mulsd 0x195537(%rip), %xmm0   # 0x1c9048
callq 0x2eba0
jmp 0x34a8d
leaq 0x3670fe(%rip), %rdi    # 0x39ac20
leaq 0x143ded(%rip), %rsi    # 0x177916
callq 0x9510
cmpl $0x0, %eax
jne 0x33b48
leaq 0x338686(%rip), %rax    # 0x36c1c0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a8b
leaq 0x3670d1(%rip), %rdi    # 0x39ac20
leaq 0x1641f7(%rip), %rsi    # 0x197d4d
callq 0x9510
cmpl $0x0, %eax
jne 0x33ba5
leaq 0x338649(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
mulsd 0x1954d5(%rip), %xmm0   # 0x1c9048
callq 0x2eba0
leaq 0x338639(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
mulsd 0x1954bd(%rip), %xmm0   # 0x1c9048
callq 0x2eba0
leaq 0x338629(%rip), %rax    # 0x36c1c0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a89
leaq 0x367074(%rip), %rdi    # 0x39ac20
leaq 0x13e5ec(%rip), %rsi    # 0x17219f
callq 0x9510
cmpl $0x0, %eax
jne 0x33bd2
leaq 0x33801c(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a87
leaq 0x367047(%rip), %rdi    # 0x39ac20
leaq 0x1559e4(%rip), %rsi    # 0x1895c4
callq 0x9510
cmpl $0x0, %eax
jne 0x33bff
leaq 0x337da7(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a85
leaq 0x36701a(%rip), %rdi    # 0x39ac20
leaq 0x13df5f(%rip), %rsi    # 0x171b6c
callq 0x9510
cmpl $0x0, %eax
jne 0x33c2c
leaq 0x337d82(%rip), %rax    # 0x36b9a0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a83
leaq 0x366fed(%rip), %rdi    # 0x39ac20
leaq 0x154cf0(%rip), %rsi    # 0x18892a
callq 0x9510
cmpl $0x0, %eax
jne 0x33c59
leaq 0x337fad(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a81
leaq 0x366fc0(%rip), %rdi    # 0x39ac20
leaq 0x13e53c(%rip), %rsi    # 0x1721a3
callq 0x9510
cmpl $0x0, %eax
jne 0x33c8a
leaq 0x338620(%rip), %rax    # 0x36c298
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x2eba0
jmp 0x34a7f
leaq 0x366f8f(%rip), %rdi    # 0x39ac20
leaq 0x1545dc(%rip), %rsi    # 0x188274
callq 0x9510
cmpl $0x0, %eax
jne 0x33cbf
movsd 0x13b37e(%rip), %xmm0   # 0x16f028
leaq 0x3392f7(%rip), %rax    # 0x36cfa8
mulsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a7d
leaq 0x366f5a(%rip), %rdi    # 0x39ac20
leaq 0x153af2(%rip), %rsi    # 0x1877bf
callq 0x9510
cmpl $0x0, %eax
jne 0x33d10
leaq 0x3385b6(%rip), %rax    # 0x36c294
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x13d8da(%rip), %xmm1   # 0x1715c8
mulsd %xmm1, %xmm0
movsd 0x13b37e(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
mulsd 0x195342(%rip), %xmm0   # 0x1c9048
callq 0x2eba0
jmp 0x34a7b
leaq 0x366f09(%rip), %rdi    # 0x39ac20
leaq 0x1547e7(%rip), %rsi    # 0x188505
callq 0x9510
cmpl $0x0, %eax
jne 0x33d3d
leaq 0x338109(%rip), %rax    # 0x36be38
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
jmp 0x34a79
leaq 0x366edc(%rip), %rdi    # 0x39ac20
leaq 0x13e45c(%rip), %rsi    # 0x1721a7
callq 0x9510
cmpl $0x0, %eax
jne 0x33d6a
leaq 0x338bac(%rip), %rax    # 0x36c908
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
jmp 0x34a77
leaq 0x366eaf(%rip), %rdi    # 0x39ac20
leaq 0x13e434(%rip), %rsi    # 0x1721ac
callq 0x9510
cmpl $0x0, %eax
jne 0x33d97
leaq 0x3380a7(%rip), %rax    # 0x36be30
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
jmp 0x34a75
leaq 0x366e82(%rip), %rdi    # 0x39ac20
leaq 0x141a39(%rip), %rsi    # 0x1757de
callq 0x9510
cmpl $0x0, %eax
jne 0x33dbe
callq 0x7b750
callq 0x2eba0
jmp 0x34a73
leaq 0x366e5b(%rip), %rdi    # 0x39ac20
leaq 0x13e3e5(%rip), %rsi    # 0x1721b1
callq 0x9510
cmpl $0x0, %eax
jne 0x33deb
leaq 0x24e91b(%rip), %rax    # 0x2826f8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a71
leaq 0x366e2e(%rip), %rdi    # 0x39ac20
leaq 0x13e3bd(%rip), %rsi    # 0x1721b6
callq 0x9510
cmpl $0x0, %eax
jne 0x33e18
leaq 0x24e8d6(%rip), %rax    # 0x2826e0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a6f
leaq 0x366e01(%rip), %rdi    # 0x39ac20
leaq 0x13e395(%rip), %rsi    # 0x1721bb
callq 0x9510
cmpl $0x0, %eax
jne 0x33e45
leaq 0x24e899(%rip), %rax    # 0x2826d0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a6d
leaq 0x366dd4(%rip), %rdi    # 0x39ac20
leaq 0x13e36d(%rip), %rsi    # 0x1721c0
callq 0x9510
cmpl $0x0, %eax
jne 0x33e72
leaq 0x24e864(%rip), %rax    # 0x2826c8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a6b
leaq 0x366da7(%rip), %rdi    # 0x39ac20
leaq 0x13e345(%rip), %rsi    # 0x1721c5
callq 0x9510
cmpl $0x0, %eax
jne 0x33e9f
leaq 0x24e857(%rip), %rax    # 0x2826e8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a69
leaq 0x366d7a(%rip), %rdi    # 0x39ac20
leaq 0x13e31d(%rip), %rsi    # 0x1721ca
callq 0x9510
cmpl $0x0, %eax
jne 0x33ecc
leaq 0x24e81a(%rip), %rax    # 0x2826d8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a67
leaq 0x366d4d(%rip), %rdi    # 0x39ac20
leaq 0x13e2f5(%rip), %rsi    # 0x1721cf
callq 0x9510
cmpl $0x0, %eax
jne 0x33ef9
leaq 0x24e815(%rip), %rax    # 0x282700
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a65
leaq 0x366d20(%rip), %rdi    # 0x39ac20
leaq 0x13dc99(%rip), %rsi    # 0x171ba0
callq 0x9510
cmpl $0x0, %eax
jne 0x33f26
leaq 0x24e7f0(%rip), %rax    # 0x282708
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a63
leaq 0x366cf3(%rip), %rdi    # 0x39ac20
leaq 0x13e2a0(%rip), %rsi    # 0x1721d4
callq 0x9510
cmpl $0x0, %eax
jne 0x33f53
leaq 0x33839b(%rip), %rax    # 0x36c2e0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a61
leaq 0x366cc6(%rip), %rdi    # 0x39ac20
leaq 0x13e2f9(%rip), %rsi    # 0x17225a
callq 0x9510
cmpl $0x0, %eax
jne 0x33f80
leaq 0x338376(%rip), %rax    # 0x36c2e8
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a5f
leaq 0x366c99(%rip), %rdi    # 0x39ac20
leaq 0x13dc48(%rip), %rsi    # 0x171bd6
callq 0x9510
cmpl $0x0, %eax
jne 0x33fad
leaq 0x338391(%rip), %rax    # 0x36c330
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a5d
leaq 0x366c6c(%rip), %rdi    # 0x39ac20
leaq 0x15440f(%rip), %rsi    # 0x1883ca
callq 0x9510
cmpl $0x0, %eax
jne 0x33fda
leaq 0x338304(%rip), %rax    # 0x36c2d0
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a5b
leaq 0x366c3f(%rip), %rdi    # 0x39ac20
leaq 0x148559(%rip), %rsi    # 0x17c541
movl $0x3, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x34003
xorl %edi, %edi
callq 0x2fc80
jmp 0x34a59
leaq 0x366c16(%rip), %rdi    # 0x39ac20
leaq 0x13e1c8(%rip), %rsi    # 0x1721d9
movl $0x2, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x3402c
xorl %edi, %edi
callq 0x2f490
jmp 0x34a57
leaq 0x366bed(%rip), %rdi    # 0x39ac20
leaq 0x163c84(%rip), %rsi    # 0x197cbe
movl $0x2, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x34055
xorl %edi, %edi
callq 0x2f610
jmp 0x34a55
leaq 0x366bc4(%rip), %rdi    # 0x39ac20
leaq 0x140c16(%rip), %rsi    # 0x174c79
movl $0x3, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x3407e
xorl %edi, %edi
callq 0x2f790
jmp 0x34a53
leaq 0x366b9b(%rip), %rdi    # 0x39ac20
leaq 0x13e150(%rip), %rsi    # 0x1721dc
movl $0x7, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x340a7
xorl %edi, %edi
callq 0x2f8d0
jmp 0x34a51
leaq 0x366b72(%rip), %rdi    # 0x39ac20
leaq 0x144bc3(%rip), %rsi    # 0x178c78
movl $0x5, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x340d0
xorl %edi, %edi
callq 0x2fa00
jmp 0x34a4f
leaq 0x366b49(%rip), %rdi    # 0x39ac20
leaq 0x1401df(%rip), %rsi    # 0x1742bd
movl $0x5, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x340f9
xorl %edi, %edi
callq 0x2fb30
jmp 0x34a4d
leaq 0x366b20(%rip), %rdi    # 0x39ac20
leaq 0x13e6c1(%rip), %rsi    # 0x1727c8
callq 0x9510
cmpl $0x0, %eax
jne 0x3411b
callq 0x302b0
jmp 0x34a4b
leaq 0x366afe(%rip), %rdi    # 0x39ac20
leaq 0x154cdf(%rip), %rsi    # 0x188e08
callq 0x9510
cmpl $0x0, %eax
jne 0x3413d
callq 0x30320
jmp 0x34a49
leaq 0x366adc(%rip), %rdi    # 0x39ac20
leaq 0x13e099(%rip), %rsi    # 0x1721e4
callq 0x9510
cmpl $0x0, %eax
jne 0x3416a
leaq 0x3385cc(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a47
leaq 0x366aaf(%rip), %rdi    # 0x39ac20
leaq 0x154251(%rip), %rsi    # 0x1883c9
callq 0x9510
cmpl $0x0, %eax
jne 0x34197
leaq 0x338587(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a45
leaq 0x366a82(%rip), %rdi    # 0x39ac20
leaq 0x153a21(%rip), %rsi    # 0x187bc6
callq 0x9510
cmpl $0x0, %eax
jne 0x341c4
leaq 0x338562(%rip), %rax    # 0x36c718
movsd (%rax), %xmm0
callq 0x2eba0
jmp 0x34a43
leaq 0x366a55(%rip), %rdi    # 0x39ac20
leaq 0x13e018(%rip), %rsi    # 0x1721ea
callq 0x9510
cmpl $0x0, %eax
jne 0x341fd
leaq 0x33852d(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
movsd 0x13d421(%rip), %xmm1   # 0x171610
subsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a41
leaq 0x366a1c(%rip), %rdi    # 0x39ac20
leaq 0x13dfe3(%rip), %rsi    # 0x1721ee
callq 0x9510
cmpl $0x0, %eax
jne 0x34224
callq 0x133f80
callq 0x2eba0
jmp 0x34a3f
leaq 0x3669f5(%rip), %rdi    # 0x39ac20
leaq 0x1634d6(%rip), %rsi    # 0x197708
callq 0x9510
cmpl $0x0, %eax
jne 0x34257
callq 0x133f80
movsd 0x13adef(%rip), %xmm1   # 0x16f038
mulsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a3d
leaq 0x3669c2(%rip), %rdi    # 0x39ac20
leaq 0x16031d(%rip), %rsi    # 0x194582
callq 0x9510
cmpl $0x0, %eax
jne 0x34287
leaq 0x3386a6(%rip), %rax    # 0x36c91c
movl (%rax), %eax
cvtsi2sd %rax, %xmm0
callq 0x2eba0
jmp 0x34a3b
leaq 0x366992(%rip), %rdi    # 0x39ac20
leaq 0x13df5e(%rip), %rsi    # 0x1721f3
callq 0x9510
cmpl $0x0, %eax
jne 0x342b7
leaq 0x338672(%rip), %rax    # 0x36c918
movzwl (%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x2eba0
jmp 0x34a39
leaq 0x366962(%rip), %rdi    # 0x39ac20
leaq 0x13df33(%rip), %rsi    # 0x1721f8
callq 0x9510
cmpl $0x0, %eax
jne 0x342e1
movsd 0x13d341(%rip), %xmm0   # 0x171618
callq 0x2eba0
jmp 0x34a37
leaq 0x366938(%rip), %rdi    # 0x39ac20
leaq 0x13df0f(%rip), %rsi    # 0x1721fe
callq 0x9510
cmpl $0x0, %eax
jne 0x3431a
leaq 0x338410(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
movsd 0x13d30c(%rip), %xmm1   # 0x171618
subsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a35
leaq 0x3668ff(%rip), %rdi    # 0x39ac20
leaq 0x15d56c(%rip), %rsi    # 0x191894
callq 0x9510
cmpl $0x0, %eax
jne 0x34353
leaq 0x3383d7(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
movsd 0x13acdb(%rip), %xmm1   # 0x16f020
subsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a33
leaq 0x3668c6(%rip), %rdi    # 0x39ac20
leaq 0x13dea3(%rip), %rsi    # 0x172204
callq 0x9510
cmpl $0x0, %eax
jne 0x34375
callq 0x30390
jmp 0x34a31
leaq 0x3668a4(%rip), %rdi    # 0x39ac20
leaq 0x13de86(%rip), %rsi    # 0x172209
callq 0x9510
cmpl $0x0, %eax
jne 0x34397
callq 0x30390
jmp 0x34a2f
leaq 0x366882(%rip), %rdi    # 0x39ac20
leaq 0x13b877(%rip), %rsi    # 0x16fc1c
callq 0x9510
cmpl $0x0, %eax
jne 0x343b9
callq 0x30100
jmp 0x34a2d
leaq 0x366860(%rip), %rdi    # 0x39ac20
leaq 0x13d85c(%rip), %rsi    # 0x171c23
callq 0x9510
cmpl $0x0, %eax
jne 0x3444f
leaq 0x246200(%rip), %rax    # 0x27a5d8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x343e9
jp 0x343e9
jmp 0x34436
leaq 0x338320(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
leaq 0x2461dd(%rip), %rax    # 0x27a5d8
subsd (%rax), %xmm0
movsd 0x13ac31(%rip), %xmm1   # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x13ac05(%rip), %xmm1   # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x13abf9(%rip), %xmm1   # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x13d1f5(%rip), %xmm1   # 0x171620
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x34440
xorps %xmm0, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x34440
movsd -0x18(%rbp), %xmm0
callq 0x2eba0
jmp 0x34a2b
leaq 0x3667ca(%rip), %rdi    # 0x39ac20
leaq 0x13ddb6(%rip), %rsi    # 0x172213
callq 0x9510
cmpl $0x0, %eax
jne 0x34492
leaq 0x33836a(%rip), %rax    # 0x36c7d8
movsd (%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
callq 0x133f80
movaps %xmm0, %xmm1
movsd -0x20(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a29
leaq 0x366787(%rip), %rdi    # 0x39ac20
leaq 0x13dd78(%rip), %rsi    # 0x172218
callq 0x9510
cmpl $0x0, %eax
jne 0x344d5
leaq 0x33838f(%rip), %rax    # 0x36c840
movsd (%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0x133f80
movaps %xmm0, %xmm1
movsd -0x28(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a27
leaq 0x366744(%rip), %rdi    # 0x39ac20
leaq 0x13d774(%rip), %rsi    # 0x171c57
callq 0x9510
cmpl $0x0, %eax
jne 0x34518
leaq 0x338314(%rip), %rax    # 0x36c808
movsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0x133f80
movaps %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x2eba0
jmp 0x34a25
leaq 0x366701(%rip), %rdi    # 0x39ac20
leaq 0x13dcf7(%rip), %rsi    # 0x17221d
callq 0x9510
cmpl $0x0, %eax
jne 0x3455f
movsd 0x36d618(%rip), %xmm0   # 0x3a1b50
ucomisd 0x36d618(%rip), %xmm0   # 0x3a1b58
jne 0x34550
jp 0x34550
movl $0x2, 0x36d9de(%rip)    # 0x3a1f2c
jmp 0x3455a
movl $0x1, 0x36d9d2(%rip)    # 0x3a1f2c
jmp 0x34a23
leaq 0x3666ba(%rip), %rdi    # 0x39ac20
leaq 0x13dcb4(%rip), %rsi    # 0x172221
callq 0x9510
cmpl $0x0, %eax
jne 0x345a8
movsd 0x36d5d1(%rip), %xmm1   # 0x3a1b50
movsd 0x36d5d1(%rip), %xmm0   # 0x3a1b58
ucomisd %xmm1, %xmm0
jbe 0x34599
movl $0x2, 0x36d995(%rip)    # 0x3a1f2c
jmp 0x345a3
movl $0x1, 0x36d989(%rip)    # 0x3a1f2c
jmp 0x34a21
leaq 0x366671(%rip), %rdi    # 0x39ac20
leaq 0x13dc6f(%rip), %rsi    # 0x172225
callq 0x9510
cmpl $0x0, %eax
jne 0x345ed
movsd 0x36d588(%rip), %xmm0   # 0x3a1b50
ucomisd 0x36d588(%rip), %xmm0   # 0x3a1b58
jbe 0x345de
movl $0x2, 0x36d950(%rip)    # 0x3a1f2c
jmp 0x345e8
movl $0x1, 0x36d944(%rip)    # 0x3a1f2c
jmp 0x34a1f
leaq 0x36662c(%rip), %rdi    # 0x39ac20
leaq 0x13dc2e(%rip), %rsi    # 0x172229
callq 0x9510
cmpl $0x0, %eax
jne 0x34636
movsd 0x36d543(%rip), %xmm0   # 0x3a1b50
ucomisd 0x36d543(%rip), %xmm0   # 0x3a1b58
jne 0x3461b
jp 0x3461b
jmp 0x34627
movl $0x2, 0x36d907(%rip)    # 0x3a1f2c
jmp 0x34631
movl $0x1, 0x36d8fb(%rip)    # 0x3a1f2c
jmp 0x34a1d
leaq 0x3665e3(%rip), %rdi    # 0x39ac20
leaq 0x13dbea(%rip), %rsi    # 0x17222e
callq 0x9510
cmpl $0x0, %eax
jne 0x3467b
movsd 0x36d4fa(%rip), %xmm0   # 0x3a1b50
ucomisd 0x36d4fa(%rip), %xmm0   # 0x3a1b58
jb 0x3466c
movl $0x2, 0x36d8c2(%rip)    # 0x3a1f2c
jmp 0x34676
movl $0x1, 0x36d8b6(%rip)    # 0x3a1f2c
jmp 0x34a1b
leaq 0x36659e(%rip), %rdi    # 0x39ac20
leaq 0x13dbaa(%rip), %rsi    # 0x172233
callq 0x9510
cmpl $0x0, %eax
jne 0x346c4
movsd 0x36d4b5(%rip), %xmm1   # 0x3a1b50
movsd 0x36d4b5(%rip), %xmm0   # 0x3a1b58
ucomisd %xmm1, %xmm0
jb 0x346b5
movl $0x2, 0x36d879(%rip)    # 0x3a1f2c
jmp 0x346bf
movl $0x1, 0x36d86d(%rip)    # 0x3a1f2c
jmp 0x34a19
leaq 0x366555(%rip), %rdi    # 0x39ac20
leaq 0x13db66(%rip), %rsi    # 0x172238
movl $0x2, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x34722
leaq 0x366538(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d452(%rip), %xmm0   # 0x3a1b50
ucomisd -0x10(%rbp), %xmm0
jne 0x34713
jp 0x34713
movl $0x2, 0x36d81b(%rip)    # 0x3a1f2c
jmp 0x3471d
movl $0x1, 0x36d80f(%rip)    # 0x3a1f2c
jmp 0x34a17
leaq 0x3664f7(%rip), %rdi    # 0x39ac20
leaq 0x13db0b(%rip), %rsi    # 0x17223b
movl $0x2, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x34782
leaq 0x3664da(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d3f4(%rip), %xmm1   # 0x3a1b50
movsd -0x10(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x34773
movl $0x2, 0x36d7bb(%rip)    # 0x3a1f2c
jmp 0x3477d
movl $0x1, 0x36d7af(%rip)    # 0x3a1f2c
jmp 0x34a15
leaq 0x366497(%rip), %rdi    # 0x39ac20
leaq 0x13daae(%rip), %rsi    # 0x17223e
movl $0x2, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x347de
leaq 0x36647a(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d394(%rip), %xmm0   # 0x3a1b50
ucomisd -0x10(%rbp), %xmm0
jbe 0x347cf
movl $0x2, 0x36d75f(%rip)    # 0x3a1f2c
jmp 0x347d9
movl $0x1, 0x36d753(%rip)    # 0x3a1f2c
jmp 0x34a13
leaq 0x36643b(%rip), %rdi    # 0x39ac20
leaq 0x13da55(%rip), %rsi    # 0x172241
movl $0x3, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x3483e
leaq 0x36641e(%rip), %rdi    # 0x39ac20
addq $0x3, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d338(%rip), %xmm0   # 0x3a1b50
ucomisd -0x10(%rbp), %xmm0
jne 0x34823
jp 0x34823
jmp 0x3482f
movl $0x2, 0x36d6ff(%rip)    # 0x3a1f2c
jmp 0x34839
movl $0x1, 0x36d6f3(%rip)    # 0x3a1f2c
jmp 0x34a11
leaq 0x3663db(%rip), %rdi    # 0x39ac20
leaq 0x13d9f9(%rip), %rsi    # 0x172245
movl $0x3, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x3489a
leaq 0x3663be(%rip), %rdi    # 0x39ac20
addq $0x3, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d2d8(%rip), %xmm0   # 0x3a1b50
ucomisd -0x10(%rbp), %xmm0
jb 0x3488b
movl $0x2, 0x36d6a3(%rip)    # 0x3a1f2c
jmp 0x34895
movl $0x1, 0x36d697(%rip)    # 0x3a1f2c
jmp 0x34a0f
leaq 0x36637f(%rip), %rdi    # 0x39ac20
leaq 0x13d9a1(%rip), %rsi    # 0x172249
movl $0x3, %edx
callq 0x9140
cmpl $0x0, %eax
jne 0x348fa
leaq 0x366362(%rip), %rdi    # 0x39ac20
addq $0x3, %rdi
callq 0x9480
movsd %xmm0, -0x10(%rbp)
movsd 0x36d27c(%rip), %xmm1   # 0x3a1b50
movsd -0x10(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x348eb
movl $0x2, 0x36d643(%rip)    # 0x3a1f2c
jmp 0x348f5
movl $0x1, 0x36d637(%rip)    # 0x3a1f2c
jmp 0x34a0d
leaq 0x36631f(%rip), %rdi    # 0x39ac20
leaq 0x13ca1c(%rip), %rsi    # 0x171324
callq 0x9510
cmpl $0x0, %eax
jne 0x34921
movl $0xffffffff, 0x36d610(%rip) # imm = 0xFFFFFFFF
jmp 0x34a0b
leaq 0x3662f8(%rip), %rdi    # 0x39ac20
leaq 0x13d91e(%rip), %rsi    # 0x17224d
callq 0x9510
cmpl $0x0, %eax
jne 0x3494b
movsd 0x13a7d7(%rip), %xmm0   # 0x16f118
callq 0x2ec10
jmp 0x34a09
leaq 0x3662ce(%rip), %rdi    # 0x39ac20
leaq 0x13d8f8(%rip), %rsi    # 0x172251
callq 0x9510
cmpl $0x0, %eax
jne 0x34975
movsd 0x13a6fd(%rip), %xmm0   # 0x16f068
callq 0x2ec10
jmp 0x34a07
leaq 0x3662a4(%rip), %rdi    # 0x39ac20
leaq 0x13d8d2(%rip), %rsi    # 0x172255
callq 0x9510
cmpl $0x0, %eax
jne 0x3498f
jmp 0x34a05
leaq 0x36628a(%rip), %rdi    # 0x39ac20
leaq 0x13d8bc(%rip), %rsi    # 0x172259
callq 0x9510
cmpl $0x0, %eax
jne 0x349f7
leaq 0x366476(%rip), %rax    # 0x39ae24
movl $0x0, (%rax)
callq 0x11ee60
callq 0x290e0
callq 0xf3d0
cmpl $0x0, %eax
je 0x349f5
leaq 0x366041(%rip), %rax    # 0x39aa10
movb $0x0, (%rax)
leaq 0x36644b(%rip), %rax    # 0x39ae24
movl $0x0, (%rax)
leaq 0x36623a(%rip), %rax    # 0x39ac20
movb $0x0, (%rax)
leaq 0x13d86f(%rip), %rdi    # 0x17225f
callq 0x2e640
jmp 0x34a03
movl $0x0, -0x4(%rbp)
jmp 0x34aae
jmp 0x34a05
jmp 0x34a07
jmp 0x34a09
jmp 0x34a0b
jmp 0x34a0d
jmp 0x34a0f
jmp 0x34a11
jmp 0x34a13
jmp 0x34a15
jmp 0x34a17
jmp 0x34a19
jmp 0x34a1b
jmp 0x34a1d
jmp 0x34a1f
jmp 0x34a21
jmp 0x34a23
jmp 0x34a25
jmp 0x34a27
jmp 0x34a29
jmp 0x34a2b
jmp 0x34a2d
jmp 0x34a2f
jmp 0x34a31
jmp 0x34a33
jmp 0x34a35
jmp 0x34a37
jmp 0x34a39
jmp 0x34a3b
jmp 0x34a3d
jmp 0x34a3f
jmp 0x34a41
jmp 0x34a43
jmp 0x34a45
jmp 0x34a47
jmp 0x34a49
jmp 0x34a4b
jmp 0x34a4d
jmp 0x34a4f
jmp 0x34a51
jmp 0x34a53
jmp 0x34a55
jmp 0x34a57
jmp 0x34a59
jmp 0x34a5b
jmp 0x34a5d
jmp 0x34a5f
jmp 0x34a61
jmp 0x34a63
jmp 0x34a65
jmp 0x34a67
jmp 0x34a69
jmp 0x34a6b
jmp 0x34a6d
jmp 0x34a6f
jmp 0x34a71
jmp 0x34a73
jmp 0x34a75
jmp 0x34a77
jmp 0x34a79
jmp 0x34a7b
jmp 0x34a7d
jmp 0x34a7f
jmp 0x34a81
jmp 0x34a83
jmp 0x34a85
jmp 0x34a87
jmp 0x34a89
jmp 0x34a8b
jmp 0x34a8d
jmp 0x34a8f
jmp 0x34a91
jmp 0x34a93
jmp 0x34a95
jmp 0x34a97
jmp 0x34a99
jmp 0x34a9b
jmp 0x34a9d
jmp 0x34a9f
jmp 0x34aa1
jmp 0x34aa3
jmp 0x34aa5
jmp 0x34aa7
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)