// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: show_x72_info(int, int, int)
int show_x72_info(int row,int col, int max_row)
{
int col2;
int color;
int temp;
int last_status_row;

   col2 = col + 40 - 1;
   color = WHITE;
   temp = 0;
   last_status_row = row;

   if(SCREEN_HEIGHT <= TINY_HEIGHT) {
      no_y_margin = 1;
   }
   if(max_row < 999) goto info_table;

   erase_screen();
     
   last_status_row = show_x72_status(row,col+40-1, MOUSE_ROW); 

   if(have_x72_fw) {
      sprintf(out, "FW version:       %.2f  ", x72_fw);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(x72_date[0]) {
      sprintf(out, "Date:             %s  ", x72_date);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_loader) {
      sprintf(out, "Loader version:   %d  ", x72_loader);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(x72_serial[0]) {
      sprintf(out, "Serial number:    %s  ", x72_serial);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_tune) {
      sprintf(out, "Tuning state:     %d  ", x72_tune);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   sprintf(out, "OSC freq:         %.1f Hz  ", x72_osc);
   vidstr(row++,col, WHITE, out);
   if(row >= max_row) goto done;
   if(have_x72_crystal) {
      sprintf(out, "Crystal freq:     %g Hz  ", x72_crystal);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_acmos) {
      sprintf(out, "ACMOS freq:       %g Hz  ", x72_acmos);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_sine) {
      sprintf(out, "Sine freq:        %g Hz  ", x72_sine);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_res_tempofs) {
      sprintf(out, "Res temp offset:  %g   ", x72_res_tempofs);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_lamp_tempofs) {
      sprintf(out, "Lamp temp offset: %g   ", x72_lamp_tempofs);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dds_word) {
      sprintf(out, "User DDS offset:  %g   ", x72_dds_word);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;

      sprintf(out, "                  %g   ", x72_dds_word*1.0E-11);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(user_set_x72_acmos_freq && last_x72_acmos_freq) {
      sprintf(out, "User ACOMS freq:  %g Hz   ", (x72_osc / 2.0) / (double) last_x72_acmos_freq);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   ++row;
   if(row >= max_row) goto done;


   info_table:
   if(row >= last_status_row) last_status_row = row;
   row = last_status_row + 1;

   if(have_x72_dmp17) {
      sprintf(out, "dMP17:          %g   ", x72_dmp17);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dmp5) {
      sprintf(out, "dMP5:           %g   ", x72_dmp5);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_plmp) {
      sprintf(out, "PLmp:           %g   ", x72_plmp);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_pres) {
      sprintf(out, "PRes:           %g   ", x72_pres);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dlvthermc) {
      sprintf(out, "dLVthermc:      %g   ", x72_dlvthermc);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_drvthermc) {
      sprintf(out, "dRVthermc:      %g   ", x72_drvthermc);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dlvolt) {
      sprintf(out, "dLVolt:         %g   ", x72_dlvolt);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dmvoutc) {
      sprintf(out, "dMVoutC:        %g   ", x72_dmvoutc);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dlvoutc) {
      sprintf(out, "dLVoutC:        %g   ", x72_dlvoutc);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_drvoutc) {
      sprintf(out, "dRVoutC:        %g   ", x72_drvoutc);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dmv2demavg) {
      sprintf(out, "dMV2demAvg:     %g   ", x72_dmv2demavg);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_dhtrvolt) {
      sprintf(out, "dHtrVolt:       %g V   ", x72_dhtrvolt);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   temp = round_temp;
   round_temp = 2;
   if(have_x72_dtemplo) {
      sprintf(out, "dTempLo:        %s   ", fmt_temp(x72_dtemplo));
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   round_temp = 3;
   if(have_x72_dtemphi) {
      sprintf(out, "dTempHi:        %s   ", fmt_temp(x72_dtemphi));
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   round_temp = temp;

   if(have_x72_dvoltlo) {
      sprintf(out, "dVoltLo:        %g V   ", x72_dvoltlo);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_dvolthi) {
      sprintf(out, "dVoltHi:        %g V   ", x72_dvolthi);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(max_row >= 999) {    // show zoomed data screen in two columns
      col = col2;
      row = last_status_row+1;
   }

   if(have_x72_creg) {
      sprintf(out, "iFpgaCtl:       0x%04X   ", x72_creg);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_pps) {
      sprintf(out, "1PPS Delta:     %-8d ", x72_pps);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_scont) {
      sprintf(out, "SCont:          %d   ", x72_scont);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_sernum) {
      sprintf(out, "SerNum:         %d   ", x72_sernum);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_lhhrs) {
      sprintf(out, "LHHrs:          %d   ", x72_lhhrs);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_lhticks) {
      sprintf(out, "LHTicks         %d   ", x72_lhticks);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_x72_rhhrs) {
      sprintf(out, "RHHrs:          %d   ", x72_rhhrs);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_rhticks) {
      sprintf(out, "RHTicks         %d   ", x72_rhticks);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   if(have_lifetime) {
      sprintf(out, "PwrHrs:         %d   ", scpi_life);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   if(have_x72_pwrticks) {
      sprintf(out, "PwrTicks        %d   ", x72_pwrticks);
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }

   temp = round_temp;
   round_temp = 2;
   if(have_temperature) {
      sprintf(out, "dCurTemp:       %s   ", fmt_temp(temperature));
      vidstr(row++,col, WHITE, out);
      if(row >= max_row) goto done;
   }
   round_temp = temp;

   done:
   no_y_margin = 0;
   return row;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebx
movl %esi, %r14d
movl %edi, %r15d
leaq 0x14f25a(%rip), %rax    # 0x218804
cmpl $0x1e0, (%rax)          # imm = 0x1E0
jg 0xc95bc
leaq 0x14f2a2(%rip), %rax    # 0x21885b
movb $0x1, (%rax)
leal 0x27(%r14), %r12d
cmpl $0x3e7, %ebx            # imm = 0x3E7
movl %ebx, -0x2c(%rbp)
movl %r12d, -0x34(%rbp)
jge 0xc9f29
movl %r15d, %r12d
cmpl %r12d, %r15d
cmovgl %r15d, %r12d
leal 0x1(%r12), %ecx
leaq 0x1516a7(%rip), %rax    # 0x21ac90
cmpl $0x0, (%rax)
movl %ecx, -0x30(%rbp)
movl %ecx, %r15d
je 0xc9640
leaq 0x15182d(%rip), %rax    # 0x21ae28
movsd (%rax), %xmm0
leaq 0x272c1a(%rip), %rbx    # 0x33c220
leaq 0x66520(%rip), %rsi     # 0x12fb2d
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
addl $0x2, %r12d
movl -0x30(%rbp), %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r12d, %r15d
movl %r12d, %r13d
cmpl %ebx, %r12d
jge 0xca3f4
leaq 0x15164d(%rip), %rax    # 0x21ac94
cmpl $0x0, (%rax)
je 0xc9695
leaq 0x1517dd(%rip), %rax    # 0x21ae30
movsd (%rax), %xmm0
leaq 0x272bc2(%rip), %rbx    # 0x33c220
leaq 0x664de(%rip), %rsi     # 0x12fb43
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x151600(%rip), %rax    # 0x21ac9c
cmpl $0x0, (%rax)
je 0xc96ea
leaq 0x151798(%rip), %rax    # 0x21ae40
movsd (%rax), %xmm0
leaq 0x272b6d(%rip), %rbx    # 0x33c220
leaq 0x6649f(%rip), %rsi     # 0x12fb59
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x1515af(%rip), %rax    # 0x21aca0
cmpl $0x0, (%rax)
je 0xc973f
leaq 0x15174b(%rip), %rax    # 0x21ae48
movsd (%rax), %xmm0
leaq 0x272b18(%rip), %rbx    # 0x33c220
leaq 0x66460(%rip), %rsi     # 0x12fb6f
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x15155e(%rip), %rax    # 0x21aca4
cmpl $0x0, (%rax)
je 0xc9794
leaq 0x1516fe(%rip), %rax    # 0x21ae50
movsd (%rax), %xmm0
leaq 0x272ac3(%rip), %rbx    # 0x33c220
leaq 0x66421(%rip), %rsi     # 0x12fb85
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x15150d(%rip), %rax    # 0x21aca8
cmpl $0x0, (%rax)
je 0xc97e9
leaq 0x1516b1(%rip), %rax    # 0x21ae58
movsd (%rax), %xmm0
leaq 0x272a6e(%rip), %rbx    # 0x33c220
leaq 0x663e2(%rip), %rsi     # 0x12fb9b
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x1514bc(%rip), %rax    # 0x21acac
cmpl $0x0, (%rax)
je 0xc983e
leaq 0x151664(%rip), %rax    # 0x21ae60
movsd (%rax), %xmm0
leaq 0x272a19(%rip), %rbx    # 0x33c220
leaq 0x663a3(%rip), %rsi     # 0x12fbb1
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x15146b(%rip), %rax    # 0x21acb0
cmpl $0x0, (%rax)
je 0xc9893
leaq 0x151617(%rip), %rax    # 0x21ae68
movsd (%rax), %xmm0
leaq 0x2729c4(%rip), %rbx    # 0x33c220
leaq 0x66364(%rip), %rsi     # 0x12fbc7
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x15142a(%rip), %rax    # 0x21acc4
cmpl $0x0, (%rax)
je 0xc98e8
leaq 0x1515ea(%rip), %rax    # 0x21ae90
movsd (%rax), %xmm0
leaq 0x27296f(%rip), %rbx    # 0x33c220
leaq 0x66325(%rip), %rsi     # 0x12fbdd
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x1513d9(%rip), %rax    # 0x21acc8
cmpl $0x0, (%rax)
je 0xc993d
leaq 0x15159d(%rip), %rax    # 0x21ae98
movsd (%rax), %xmm0
leaq 0x27291a(%rip), %rbx    # 0x33c220
leaq 0x662e6(%rip), %rsi     # 0x12fbf3
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x151388(%rip), %rax    # 0x21accc
cmpl $0x0, (%rax)
je 0xc9992
leaq 0x151550(%rip), %rax    # 0x21aea0
movsd (%rax), %xmm0
leaq 0x2728c5(%rip), %rbx    # 0x33c220
leaq 0x662a7(%rip), %rsi     # 0x12fc09
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x1512ff(%rip), %rax    # 0x21ac98
cmpl $0x0, (%rax)
je 0xc99e7
leaq 0x151493(%rip), %rax    # 0x21ae38
movsd (%rax), %xmm0
leaq 0x272870(%rip), %rbx    # 0x33c220
leaq 0x66268(%rip), %rsi     # 0x12fc1f
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x24329a(%rip), %rax    # 0x30cc88
movl (%rax), %r12d
movl $0x2, (%rax)
leaq 0x1512b6(%rip), %rax    # 0x21acb4
cmpl $0x0, (%rax)
je 0xc9a54
leaq 0x151466(%rip), %rax    # 0x21ae70
movsd (%rax), %xmm0
callq 0x132fb
leaq 0x272806(%rip), %rbx    # 0x33c220
leaq 0x66216(%rip), %rsi     # 0x12fc37
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x24322d(%rip), %rax    # 0x30cc88
movl $0x3, (%rax)
leaq 0x151250(%rip), %rax    # 0x21acb8
cmpl $0x0, (%rax)
je 0xc9abe
leaq 0x151404(%rip), %rax    # 0x21ae78
movsd (%rax), %xmm0
callq 0x132fb
leaq 0x27279c(%rip), %rbx    # 0x33c220
leaq 0x661c2(%rip), %rsi     # 0x12fc4d
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x2431c3(%rip), %rax    # 0x30cc88
movl %r12d, (%rax)
leaq 0x1511ed(%rip), %rax    # 0x21acbc
cmpl $0x0, (%rax)
je 0xc9b1d
leaq 0x1513a5(%rip), %rax    # 0x21ae80
movsd (%rax), %xmm0
leaq 0x27273a(%rip), %rbx    # 0x33c220
leaq 0x66176(%rip), %rsi     # 0x12fc63
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x15119c(%rip), %rax    # 0x21acc0
cmpl $0x0, (%rax)
je 0xc9b72
leaq 0x151358(%rip), %rax    # 0x21ae88
movsd (%rax), %xmm0
leaq 0x2726e5(%rip), %rbx    # 0x33c220
leaq 0x66139(%rip), %rsi     # 0x12fc7b
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r13d, %r15d
cmpl %ebx, %r13d
jge 0xca3f4
cmpl $0x3e7, %ebx            # imm = 0x3E7
cmovgel -0x34(%rbp), %r14d
cmovgel -0x30(%rbp), %r15d
leaq 0x1510e7(%rip), %rax    # 0x21ac70
cmpl $0x0, (%rax)
je 0xc9bd3
leaq 0x151243(%rip), %rax    # 0x21add8
movl (%rax), %edx
leaq 0x272682(%rip), %rbx    # 0x33c220
leaq 0x660ee(%rip), %rsi     # 0x12fc93
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x1510f6(%rip), %rax    # 0x21acd0
cmpl $0x0, (%rax)
je 0xc9c24
leaq 0x151216(%rip), %rax    # 0x21adfc
movl (%rax), %edx
leaq 0x272631(%rip), %rbx    # 0x33c220
leaq 0x660b7(%rip), %rsi     # 0x12fcad
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x151049(%rip), %rax    # 0x21ac74
cmpl $0x0, (%rax)
je 0xc9c75
leaq 0x1511a5(%rip), %rax    # 0x21addc
movl (%rax), %edx
leaq 0x2725e0(%rip), %rbx    # 0x33c220
leaq 0x6607c(%rip), %rsi     # 0x12fcc3
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150ffc(%rip), %rax    # 0x21ac78
cmpl $0x0, (%rax)
je 0xc9cc6
leaq 0x151158(%rip), %rax    # 0x21ade0
movl (%rax), %edx
leaq 0x27258f(%rip), %rbx    # 0x33c220
leaq 0x66041(%rip), %rsi     # 0x12fcd9
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150fb3(%rip), %rax    # 0x21ac80
cmpl $0x0, (%rax)
je 0xc9d17
leaq 0x15110f(%rip), %rax    # 0x21ade8
movl (%rax), %edx
leaq 0x27253e(%rip), %rbx    # 0x33c220
leaq 0x66006(%rip), %rsi     # 0x12fcef
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150f66(%rip), %rax    # 0x21ac84
cmpl $0x0, (%rax)
je 0xc9d68
leaq 0x1510c2(%rip), %rax    # 0x21adec
movl (%rax), %edx
leaq 0x2724ed(%rip), %rbx    # 0x33c220
leaq 0x65fcb(%rip), %rsi     # 0x12fd05
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150f19(%rip), %rax    # 0x21ac88
cmpl $0x0, (%rax)
je 0xc9db9
leaq 0x151075(%rip), %rax    # 0x21adf0
movl (%rax), %edx
leaq 0x27249c(%rip), %rbx    # 0x33c220
leaq 0x65f90(%rip), %rsi     # 0x12fd1b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150ecc(%rip), %rax    # 0x21ac8c
cmpl $0x0, (%rax)
je 0xc9e0a
leaq 0x151028(%rip), %rax    # 0x21adf4
movl (%rax), %edx
leaq 0x27244b(%rip), %rbx    # 0x33c220
leaq 0x65f55(%rip), %rsi     # 0x12fd31
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x2434b7(%rip), %rax    # 0x30d2c8
cmpl $0x0, (%rax)
je 0xc9e5b
leaq 0x24363f(%rip), %rax    # 0x30d45c
movl (%rax), %edx
leaq 0x2723fa(%rip), %rbx    # 0x33c220
leaq 0x65f1a(%rip), %rsi     # 0x12fd47
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150e1a(%rip), %rax    # 0x21ac7c
cmpl $0x0, (%rax)
je 0xc9eac
leaq 0x150f76(%rip), %rax    # 0x21ade4
movl (%rax), %edx
leaq 0x2723a9(%rip), %rbx    # 0x33c220
leaq 0x65edf(%rip), %rsi     # 0x12fd5d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x242dd5(%rip), %rax    # 0x30cc88
movl (%rax), %r12d
movl $0x2, (%rax)
leaq 0x243389(%rip), %rax    # 0x30d24c
cmpl $0x0, (%rax)
je 0xc9f17
leaq 0x242b49(%rip), %rax    # 0x30ca18
movsd (%rax), %xmm0
callq 0x132fb
leaq 0x272341(%rip), %rbx    # 0x33c220
leaq 0x65e8d(%rip), %rsi     # 0x12fd73
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x242d6a(%rip), %rax    # 0x30cc88
movl %r12d, (%rax)
movl %r15d, %r13d
jmp 0xca3f4
callq 0xed5e
leaq 0x14e873(%rip), %rax    # 0x2187a8
movl (%rax), %edx
movl %r15d, %edi
movl %r12d, %esi
callq 0xb6b7f
movl %eax, %r12d
leaq 0x150d90(%rip), %rax    # 0x21acdc
cmpl $0x0, (%rax)
je 0xc9f98
leaq 0x150e50(%rip), %rax    # 0x21ada8
movsd (%rax), %xmm0
leaq 0x2722bd(%rip), %rbx    # 0x33c220
leaq 0x65a69(%rip), %rsi     # 0x12f9d3
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150de1(%rip), %rax    # 0x21ad80
cmpb $0x0, (%rax)
je 0xc9fe7
leaq 0x272275(%rip), %rbx    # 0x33c220
leaq 0x65a3a(%rip), %rsi     # 0x12f9ec
leaq 0x150dc7(%rip), %rdx    # 0x21ad80
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150cfa(%rip), %rax    # 0x21ace8
cmpl $0x0, (%rax)
je 0xca038
leaq 0x150d36(%rip), %rax    # 0x21ad30
movl (%rax), %edx
leaq 0x27221d(%rip), %rbx    # 0x33c220
leaq 0x659f9(%rip), %rsi     # 0x12fa03
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150d11(%rip), %rax    # 0x21ad50
cmpb $0x0, (%rax)
je 0xca087
leaq 0x2721d5(%rip), %rbx    # 0x33c220
leaq 0x659c8(%rip), %rsi     # 0x12fa1a
leaq 0x150cf7(%rip), %rdx    # 0x21ad50
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150c72(%rip), %rax    # 0x21ad00
cmpl $0x0, (%rax)
je 0xca0d8
leaq 0x150c9a(%rip), %rax    # 0x21ad34
movl (%rax), %edx
leaq 0x27217d(%rip), %rbx    # 0x33c220
leaq 0x65987(%rip), %rsi     # 0x12fa31
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
movl %r13d, %r15d
cmpl -0x2c(%rbp), %r13d
jge 0xca3f4
leaq 0x150b89(%rip), %rax    # 0x21ac68
movsd (%rax), %xmm0
leaq 0x272136(%rip), %rbx    # 0x33c220
leaq 0x65957(%rip), %rsi     # 0x12fa48
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r15), %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x150bcf(%rip), %rax    # 0x21acf4
cmpl $0x0, (%rax)
je 0xca173
leaq 0x150c8f(%rip), %rax    # 0x21adc0
movsd (%rax), %xmm0
leaq 0x2720e4(%rip), %rbx    # 0x33c220
leaq 0x65921(%rip), %rsi     # 0x12fa64
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
addl $0x2, %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
leaq 0x150b7e(%rip), %rax    # 0x21acf8
cmpl $0x0, (%rax)
je 0xca1c8
leaq 0x150c42(%rip), %rax    # 0x21adc8
movsd (%rax), %xmm0
leaq 0x27208f(%rip), %rbx    # 0x33c220
leaq 0x658e6(%rip), %rsi     # 0x12fa7e
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
leaq 0x150b2d(%rip), %rax    # 0x21acfc
cmpl $0x0, (%rax)
je 0xca21d
leaq 0x150bf5(%rip), %rax    # 0x21add0
movsd (%rax), %xmm0
leaq 0x27203a(%rip), %rbx    # 0x33c220
leaq 0x658ab(%rip), %rsi     # 0x12fa98
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
leaq 0x150ac8(%rip), %rax    # 0x21acec
cmpl $0x0, (%rax)
je 0xca272
leaq 0x150b80(%rip), %rax    # 0x21adb0
movsd (%rax), %xmm0
leaq 0x271fe5(%rip), %rbx    # 0x33c220
leaq 0x65870(%rip), %rsi     # 0x12fab2
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
leaq 0x150a77(%rip), %rax    # 0x21acf0
cmpl $0x0, (%rax)
je 0xca2c7
leaq 0x150b33(%rip), %rax    # 0x21adb8
movsd (%rax), %xmm0
leaq 0x271f90(%rip), %rbx    # 0x33c220
leaq 0x65833(%rip), %rsi     # 0x12faca
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
leaq 0x150a0a(%rip), %rax    # 0x21acd8
cmpl $0x0, (%rax)
je 0xca369
leaq 0x150bca(%rip), %rax    # 0x21aea8
movsd (%rax), %xmm0
leaq 0x271f37(%rip), %rbx    # 0x33c220
leaq 0x657f2(%rip), %rsi     # 0x12fae2
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
cmpl -0x2c(%rbp), %r15d
jge 0xca3f1
leaq 0x150b86(%rip), %rax    # 0x21aea8
movsd (%rax), %xmm0
mulsd 0x54382(%rip), %xmm0    # 0x11e6b0
leaq 0x271eeb(%rip), %rbx    # 0x33c220
leaq 0x657be(%rip), %rsi     # 0x12fafa
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
addl $0x2, %r13d
movl %r15d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
cmpl %ebx, %r13d
jge 0xca3f4
leaq 0x150b48(%rip), %rax    # 0x21aeb8
cmpl $0x0, (%rax)
setne %cl
leaq 0x150b4f(%rip), %rax    # 0x21aecc
movl (%rax), %eax
testl %eax, %eax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xca3e0
leaq 0x1508d6(%rip), %rcx    # 0x21ac68
movsd (%rcx), %xmm0
mulsd 0x3ecca(%rip), %xmm0    # 0x109068
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
leaq 0x271e73(%rip), %rbx    # 0x33c220
leaq 0x6575e(%rip), %rsi     # 0x12fb12
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leal 0x1(%r13), %r15d
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movl -0x2c(%rbp), %ebx
callq 0xe7d0
movl %r15d, %r13d
cmpl %ebx, %r15d
jge 0xca3f4
incl %r13d
movl %r13d, %r15d
cmpl %ebx, %r13d
jl 0xc95d6
jmp 0xca3f4
movl %r15d, %r13d
leaq 0x14e460(%rip), %rax    # 0x21885b
movb $0x0, (%rax)
movl %r13d, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq