// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: get_obs_types(_IO_FILE*, char*, int, int*)
int get_obs_types(FILE *file, char *s, int system, int *obs_type)
{
int i;
int len;
char obs[5+1];
char *sys;
unsigned ti;
int num_obs;
int max_obs; // max observation types per line

   // parse list of observation types to output and build the RINEX file
   // observation type list

   // !!!!!!!!!! needs changes for RINEX v3 !!!!!!!!!!!!!!

   num_obs = 0;
   if(file == 0) return num_obs;

   if(s == 0) s = "";

   len = strlen(s);
   if(len) ++len;

   ti = 0;
   obs[0] = 0;
   for(i=0; i<len; i++) {  // build obs list from user specified measurments
      if(obs[0] && (s[i] == 0)) goto got_obs;  // null observation type list

      if(isalpha(s[i]) || isdigit(s[i])) {    // build the next obs type string
         if(ti >= (sizeof(obs)-1)) continue;  // obs name is too long, clip it
         obs[ti++] = s[i];
         obs[ti] = 0;
      }
      else if(obs[0]) {  // got the obs type string, parse it
         got_obs:
         strupr(obs);

         // RINEX v2.11
         if     (strstr(obs, "S1")) num_obs = add_obs_type(obs_type, num_obs, S1_OBS);  // signal strength
         else if(strstr(obs, "S2")) num_obs = add_obs_type(obs_type, num_obs, S2_OBS);
         else if(strstr(obs, "S5")) num_obs = add_obs_type(obs_type, num_obs, S5_OBS);
         else if(strstr(obs, "S6")) num_obs = add_obs_type(obs_type, num_obs, S6_OBS);
         else if(strstr(obs, "S7")) num_obs = add_obs_type(obs_type, num_obs, S7_OBS);
         else if(strstr(obs, "S8")) num_obs = add_obs_type(obs_type, num_obs, S8_OBS);
                                                                                     
         else if(strstr(obs, "D1")) num_obs = add_obs_type(obs_type, num_obs, D1_OBS);  // doppler
         else if(strstr(obs, "D2")) num_obs = add_obs_type(obs_type, num_obs, D2_OBS);
         else if(strstr(obs, "D5")) num_obs = add_obs_type(obs_type, num_obs, D5_OBS);
         else if(strstr(obs, "D6")) num_obs = add_obs_type(obs_type, num_obs, D6_OBS);
         else if(strstr(obs, "D7")) num_obs = add_obs_type(obs_type, num_obs, D7_OBS);
         else if(strstr(obs, "D8")) num_obs = add_obs_type(obs_type, num_obs, D8_OBS);
                                                                                     
         else if(strstr(obs, "C1")) num_obs = add_obs_type(obs_type, num_obs, C1_OBS);  // pseudorange
         else if(strstr(obs, "L1")) num_obs = add_obs_type(obs_type, num_obs, L1_OBS);
         else if(strstr(obs, "L2")) num_obs = add_obs_type(obs_type, num_obs, L2_OBS);
         else if(strstr(obs, "L5")) num_obs = add_obs_type(obs_type, num_obs, L5_OBS);
         else if(strstr(obs, "L6")) num_obs = add_obs_type(obs_type, num_obs, L6_OBS);
         else if(strstr(obs, "L7")) num_obs = add_obs_type(obs_type, num_obs, L7_OBS);
         else if(strstr(obs, "L8")) num_obs = add_obs_type(obs_type, num_obs, L8_OBS);
                                                                                     
         else if(strstr(obs, "P1")) num_obs = add_obs_type(obs_type, num_obs, P1_OBS);  // carrier phase
         else if(strstr(obs, "P2")) num_obs = add_obs_type(obs_type, num_obs, P2_OBS);
         else if(strstr(obs, "P5")) num_obs = add_obs_type(obs_type, num_obs, P5_OBS);
         else if(strstr(obs, "P6")) num_obs = add_obs_type(obs_type, num_obs, P6_OBS);
         else if(strstr(obs, "P7")) num_obs = add_obs_type(obs_type, num_obs, P7_OBS);
         else if(strstr(obs, "P8")) num_obs = add_obs_type(obs_type, num_obs, P8_OBS);

         // RINEX v3.03  - !!!!! These need work !!!!!
         else if(strstr(obs, "S1C")) num_obs = add_obs_type(obs_type, num_obs, S1_OBS);  // signal strength
         else if(strstr(obs, "S2C")) num_obs = add_obs_type(obs_type, num_obs, S2_OBS);
         else if(strstr(obs, "S5C")) num_obs = add_obs_type(obs_type, num_obs, S5_OBS);
         else if(strstr(obs, "S6C")) num_obs = add_obs_type(obs_type, num_obs, S6_OBS);
         else if(strstr(obs, "S7C")) num_obs = add_obs_type(obs_type, num_obs, S7_OBS);
         else if(strstr(obs, "S8C")) num_obs = add_obs_type(obs_type, num_obs, S8_OBS);
                                                                                       
         else if(strstr(obs, "D1C")) num_obs = add_obs_type(obs_type, num_obs, D1_OBS);  // doppler
         else if(strstr(obs, "D2C")) num_obs = add_obs_type(obs_type, num_obs, D2_OBS);
         else if(strstr(obs, "D5C")) num_obs = add_obs_type(obs_type, num_obs, D5_OBS);
         else if(strstr(obs, "D6C")) num_obs = add_obs_type(obs_type, num_obs, D6_OBS);
         else if(strstr(obs, "D7C")) num_obs = add_obs_type(obs_type, num_obs, D7_OBS);
         else if(strstr(obs, "D8C")) num_obs = add_obs_type(obs_type, num_obs, D8_OBS);
                                                                                       
         else if(strstr(obs, "C1C")) num_obs = add_obs_type(obs_type, num_obs, C1_OBS);  // pseudorange
         else if(strstr(obs, "C1P")) num_obs = add_obs_type(obs_type, num_obs, L1_OBS);
         else if(strstr(obs, "C2P")) num_obs = add_obs_type(obs_type, num_obs, L2_OBS);
         else if(strstr(obs, "C5P")) num_obs = add_obs_type(obs_type, num_obs, L5_OBS);
         else if(strstr(obs, "C6P")) num_obs = add_obs_type(obs_type, num_obs, L6_OBS);
         else if(strstr(obs, "C7P")) num_obs = add_obs_type(obs_type, num_obs, L7_OBS);
         else if(strstr(obs, "C8P")) num_obs = add_obs_type(obs_type, num_obs, L8_OBS);
                                                                                       
         else if(strstr(obs, "L1C")) num_obs = add_obs_type(obs_type, num_obs, P1_OBS);  // carrier phase
         else if(strstr(obs, "L2C")) num_obs = add_obs_type(obs_type, num_obs, P2_OBS);
         else if(strstr(obs, "L5C")) num_obs = add_obs_type(obs_type, num_obs, P5_OBS);
         else if(strstr(obs, "L6C")) num_obs = add_obs_type(obs_type, num_obs, P6_OBS);
         else if(strstr(obs, "L7C")) num_obs = add_obs_type(obs_type, num_obs, P7_OBS);
         else if(strstr(obs, "L8C")) num_obs = add_obs_type(obs_type, num_obs, P8_OBS);

         else continue;

         ++num_obs;
         ti = 0;
         obs[0] = 0;
         if(num_obs >= MAX_OBS) break;
      }
      else obs[0] = 0;  // skip whitespace

      if(s[i] == 0) break;
   }

   if(num_obs == 0) {  // build obs list from data type seen
      if(have_range & system)       obs_type[num_obs++] = C1_OBS;
      else if((have_phase & system) && use_rinex_cppr) {
         obs_type[num_obs++] = C1_OBS;
      }
      if(have_l1_range & system)    obs_type[num_obs++] = P1_OBS;
      if(have_l2_range & system)    obs_type[num_obs++] = P2_OBS;
      if(have_l5_range & system)    obs_type[num_obs++] = P5_OBS;
      if(have_l6_range & system)    obs_type[num_obs++] = P6_OBS;
      if(have_l7_range & system)    obs_type[num_obs++] = P7_OBS;
      if(have_l8_range & system)    obs_type[num_obs++] = P8_OBS;

      if((have_phase & system) || (have_l1_phase & system)) obs_type[num_obs++] = L1_OBS;
      if(have_l2_phase & system)    obs_type[num_obs++] = L2_OBS;
      if(have_l5_phase & system)    obs_type[num_obs++] = L5_OBS;
      if(have_l6_phase & system)    obs_type[num_obs++] = L6_OBS;
      if(have_l7_phase & system)    obs_type[num_obs++] = L7_OBS;
      if(have_l8_phase & system)    obs_type[num_obs++] = L8_OBS;

      if(rcvr_type == MOTO_RCVR) ;        // doppler value is unusable for RINEX 
      else if(rcvr_type == VENUS_RCVR) ;  // doppler value is unusable for RINEX
      else {
         if((have_doppler & system) || (have_l1_doppler & system)) {
            obs_type[num_obs++] = D1_OBS;
         }
         if(have_l2_doppler & system)  obs_type[num_obs++] = D2_OBS;
         if(have_l5_doppler & system)  obs_type[num_obs++] = D5_OBS;
         if(have_l6_doppler & system)  obs_type[num_obs++] = D6_OBS;
         if(have_l7_doppler & system)  obs_type[num_obs++] = D7_OBS;
         if(have_l8_doppler & system)  obs_type[num_obs++] = D8_OBS;
      }

      if(have_snr & system)         obs_type[num_obs++] = S1_OBS;
      else if(have_l1_snr & system) obs_type[num_obs++] = S1_OBS;
      if(have_l2_snr & system)      obs_type[num_obs++] = S2_OBS;
      if(have_l5_snr & system)      obs_type[num_obs++] = S5_OBS;
      if(have_l6_snr & system)      obs_type[num_obs++] = S6_OBS;
      if(have_l7_snr & system)      obs_type[num_obs++] = S7_OBS;
      if(have_l8_snr & system)      obs_type[num_obs++] = S8_OBS;
   }

   if(rinex_fmt >= 3.0) {
      if     (system & GPS)     sys = "G";
      else if(system & SBAS)    sys = "S";
      else if(system & GLONASS) sys = "R";
      else if(system & GALILEO) sys = "E";
      else if(system & BEIDOU)  sys = "C";
      else                      sys = "?";
      sprintf(out, "%s%5d", sys, num_obs);

      max_obs = 13;
      sys = "SYS / # / OBS TYPES";

      len = 0;
      for(i=0; i<num_obs; i++) {  // build the RINEX file observation list
         // !!!!!!!! THESE ARE TEMPORARY TEST VALUES... NEED TO BE UPDATED TO REAL ONES !!!!!!!!!
         if     (obs_type[i] == S1_OBS) { strcat(out, " S1C"); ++len; }  // sig level
         else if(obs_type[i] == S2_OBS) { strcat(out, " S2C"); ++len; } 
         else if(obs_type[i] == S5_OBS) { strcat(out, " S5C"); ++len; } 
         else if(obs_type[i] == S6_OBS) { strcat(out, " S6C"); ++len; } 
         else if(obs_type[i] == S7_OBS) { strcat(out, " S7C"); ++len; } 
         else if(obs_type[i] == S8_OBS) { strcat(out, " S8C"); ++len; } 

         else if(obs_type[i] == D1_OBS) { strcat(out, " D1C"); ++len; }  // dopple
         else if(obs_type[i] == D2_OBS) { strcat(out, " D2C"); ++len; } 
         else if(obs_type[i] == D5_OBS) { strcat(out, " D5C"); ++len; } 
         else if(obs_type[i] == D6_OBS) { strcat(out, " D6C"); ++len; } 
         else if(obs_type[i] == D7_OBS) { strcat(out, " D7C"); ++len; } 
         else if(obs_type[i] == D8_OBS) { strcat(out, " D8C"); ++len; } 

         else if(obs_type[i] == C1_OBS) { strcat(out, " C1C"); ++len; }  // pseudorange
         else if(obs_type[i] == P1_OBS) { strcat(out, " C1P"); ++len; } 
         else if(obs_type[i] == P2_OBS) { strcat(out, " C2P"); ++len; } 
         else if(obs_type[i] == P5_OBS) { strcat(out, " C5P"); ++len; } 
         else if(obs_type[i] == P6_OBS) { strcat(out, " C6P"); ++len; } 
         else if(obs_type[i] == P7_OBS) { strcat(out, " C7P"); ++len; } 
         else if(obs_type[i] == P8_OBS) { strcat(out, " C8P"); ++len; } 

         else if(obs_type[i] == L1_OBS) { strcat(out, " L1C"); ++len; }  // carrier phase
         else if(obs_type[i] == L2_OBS) { strcat(out, " L2C"); ++len; } 
         else if(obs_type[i] == L5_OBS) { strcat(out, " L5C"); ++len; } 
         else if(obs_type[i] == L6_OBS) { strcat(out, " L6C"); ++len; } 
         else if(obs_type[i] == L7_OBS) { strcat(out, " L7C"); ++len; } 
         else if(obs_type[i] == L8_OBS) { strcat(out, " L8C"); ++len; } 


         if(len >= max_obs) {  // time for continuation line
            write_rinex_line(file, out, sys); 
            strcpy(out,"      ");
            len = 0;
         }
      }

      if(len) {  // flush the last observation list line
         write_rinex_line(file, out, sys); 
      }
   }
   else {
      sprintf(out, "%6d", num_obs);

      max_obs = 9;
      sys = "# / TYPES OF OBSERV";

      len = 0;
      for(i=0; i<num_obs; i++) {  // build the RINEX file observation list
         if     (obs_type[i] == S1_OBS) { strcat(out, "    S1"); ++len; }
         else if(obs_type[i] == S2_OBS) { strcat(out, "    S2"); ++len; } 
         else if(obs_type[i] == S5_OBS) { strcat(out, "    S5"); ++len; } 
         else if(obs_type[i] == S6_OBS) { strcat(out, "    S6"); ++len; } 
         else if(obs_type[i] == S7_OBS) { strcat(out, "    S7"); ++len; } 
         else if(obs_type[i] == S8_OBS) { strcat(out, "    S8"); ++len; } 

         else if(obs_type[i] == D1_OBS) { strcat(out, "    D1"); ++len; } 
         else if(obs_type[i] == D2_OBS) { strcat(out, "    D2"); ++len; } 
         else if(obs_type[i] == D5_OBS) { strcat(out, "    D5"); ++len; } 
         else if(obs_type[i] == D6_OBS) { strcat(out, "    D6"); ++len; } 
         else if(obs_type[i] == D7_OBS) { strcat(out, "    D7"); ++len; } 
         else if(obs_type[i] == D8_OBS) { strcat(out, "    D8"); ++len; } 

         else if(obs_type[i] == C1_OBS) { strcat(out, "    C1"); ++len; } 
         else if(obs_type[i] == P1_OBS) { strcat(out, "    P1"); ++len; } 
         else if(obs_type[i] == P2_OBS) { strcat(out, "    P2"); ++len; } 
         else if(obs_type[i] == P5_OBS) { strcat(out, "    P5"); ++len; } 
         else if(obs_type[i] == P6_OBS) { strcat(out, "    P6"); ++len; } 
         else if(obs_type[i] == P7_OBS) { strcat(out, "    P7"); ++len; } 
         else if(obs_type[i] == P8_OBS) { strcat(out, "    P8"); ++len; } 


         else if(obs_type[i] == L1_OBS) { strcat(out, "    L1"); ++len; } 
         else if(obs_type[i] == L2_OBS) { strcat(out, "    L2"); ++len; } 
         else if(obs_type[i] == L5_OBS) { strcat(out, "    L5"); ++len; } 
         else if(obs_type[i] == L6_OBS) { strcat(out, "    L6"); ++len; } 
         else if(obs_type[i] == L7_OBS) { strcat(out, "    L7"); ++len; } 
         else if(obs_type[i] == L8_OBS) { strcat(out, "    L8"); ++len; } 


         if(len >= max_obs) {  // time for continuation line
            write_rinex_line(file, out, sys); 
            strcpy(out,"      ");
            len = 0;
         }
      }

      if(len) {  // flush the last observation list line
         write_rinex_line(file, out, sys); 
      }
   }

   return num_obs;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rdi, -0x48(%rbp)
testq %rdi, %rdi
je 0xdd0fb
movl %edx, -0x5c(%rbp)
movq %rcx, -0x38(%rbp)
testq %rsi, %rsi
leaq 0x55b27(%rip), %r12     # 0x1319a6
cmovneq %rsi, %r12
movq %r12, %rdi
callq 0x9120
movq %rax, %rbx
movb $0x0, -0x2e(%rbp)
testl %ebx, %ebx
jle 0xdd103
movl %ebx, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, -0x68(%rbp)
xorl %edi, %edi
leaq -0x2e(%rbp), %r13
xorl %r15d, %r15d
movq $0x0, -0x58(%rbp)
movq %rbx, -0x50(%rbp)
movb -0x2e(%rbp), %r14b
testb %r14b, %r14b
je 0xdbeca
cmpb $0x0, (%r12,%rdi)
je 0xdbf3a
movq %r15, %rbx
movq %r12, %r13
movq %rdi, -0x40(%rbp)
movb (%r12,%rdi), %r15b
movsbl %r15b, %r12d
movl %r12d, %edi
callq 0x9640
testl %eax, %eax
setne %al
addl $-0x30, %r12d
cmpl $0xa, %r12d
setb %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0xdbf1f
movq -0x58(%rbp), %rax
cmpl $0x4, %eax
jbe 0xdbf9d
movq %rbx, %r15
movq %r13, %r12
movq -0x50(%rbp), %rbx
movq -0x40(%rbp), %rdi
leaq -0x2e(%rbp), %r13
jmp 0xdc424
testb %r14b, %r14b
movq %rbx, %r15
movq %r13, %r12
movq -0x50(%rbp), %rbx
movq -0x40(%rbp), %rdi
leaq -0x2e(%rbp), %r13
je 0xdc020
movq %rdi, %r14
movq %r13, %rdi
callq 0x9899
movq %r13, %rdi
leaq 0x574ad(%rip), %rsi     # 0x1333fc
callq 0x9090
testq %rax, %rax
je 0xdbfc8
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x1, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x1, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdbf86
jmp 0xdc3f3
movl %eax, %eax
leaq 0x1(%rax), %rcx
movq %rcx, -0x58(%rbp)
movb %r15b, -0x2e(%rbp,%rax)
movb $0x0, -0x2d(%rbp,%rax)
movq %rbx, %r15
movq %r13, %r12
movq -0x50(%rbp), %rbx
movq -0x40(%rbp), %rdi
leaq -0x2e(%rbp), %r13
jmp 0xdc419
movq %r13, %rdi
leaq 0x57431(%rip), %rsi     # 0x133403
callq 0x9090
testq %rax, %rax
je 0xdc029
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x2, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x2, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc009
jmp 0xdc3f3
movb $0x0, -0x2e(%rbp)
jmp 0xdc419
movq %r13, %rdi
leaq 0x573d7(%rip), %rsi     # 0x13340a
callq 0x9090
testq %rax, %rax
je 0xdc081
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x3, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x3, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc06a
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x57386(%rip), %rsi     # 0x133411
callq 0x9090
testq %rax, %rax
je 0xdc0d9
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x4, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x4, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc0c2
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x57335(%rip), %rsi     # 0x133418
callq 0x9090
testq %rax, %rax
je 0xdc131
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x5, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x5, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc11a
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x572e4(%rip), %rsi     # 0x13341f
callq 0x9090
testq %rax, %rax
je 0xdc189
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x6, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x6, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc172
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x57293(%rip), %rsi     # 0x133426
callq 0x9090
testq %rax, %rax
je 0xdc1e1
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x7, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x7, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc1ca
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x57242(%rip), %rsi     # 0x13342d
callq 0x9090
testq %rax, %rax
je 0xdc239
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x8, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x8, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc222
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x571f1(%rip), %rsi     # 0x133434
callq 0x9090
testq %rax, %rax
je 0xdc291
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0xdc2e3
cmpl $0x1a, %r15d
movq %r14, %rdi
jg 0xdc3fc
movl $0x9, %eax
testl %r15d, %r15d
jle 0xdc3f3
movl %r15d, %ecx
xorl %edx, %edx
cmpl $0x9, (%rsi,%rdx,4)
je 0xdc3fc
incq %rdx
cmpq %rdx, %rcx
jne 0xdc27a
jmp 0xdc3f3
movq %r13, %rdi
leaq 0x571a0(%rip), %rsi     # 0x13343b
callq 0x9090
testq %rax, %rax
je 0xdc2eb
cmpq $0x0, -0x38(%rbp)
je 0xdc2e3
cmpl $0x1a, %r15d
jg 0xdc2e3
movl $0xa, %eax
testl %r15d, %r15d
jle 0xdc38c
movq %r15, %rdi
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xa, (%rsi,%rdx,4)
je 0xdc380
incq %rdx
cmpq %rdx, %rcx
jne 0xdc2cc
jmp 0xdc3e9
movq %r14, %rdi
jmp 0xdc3fc
movq %r13, %rdi
leaq 0x5714d(%rip), %rsi     # 0x133442
callq 0x9090
testq %rax, %rax
je 0xdc338
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xb, %eax
movq %r15, %rdi
testl %r15d, %r15d
jle 0xdc3e5
movl %edi, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xb, (%rsi,%rdx,4)
je 0xdc380
incq %rdx
cmpq %rdx, %rcx
jne 0xdc325
jmp 0xdc3e9
movq %r13, %rdi
leaq 0x57107(%rip), %rsi     # 0x133449
callq 0x9090
testq %rax, %rax
je 0xdc395
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xc, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xc, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc370
jmp 0xdc3ec
movq %rdi, %r15
movq %r14, %rdi
leaq -0x2e(%rbp), %r13
jmp 0xdc3fc
movq -0x38(%rbp), %rsi
movq %r14, %rdi
jmp 0xdc3f3
leaq -0x2e(%rbp), %rdi
leaq 0x570b0(%rip), %rsi     # 0x133450
callq 0x9090
testq %rax, %rax
je 0xdc442
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xd, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xd, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc3ce
jmp 0xdd0ea
movq -0x38(%rbp), %rsi
movq %rdi, %r15
movq %r14, %rdi
leaq -0x2e(%rbp), %r13
movslq %r15d, %rcx
movl %eax, (%rsi,%rcx,4)
movl %eax, %r15d
leal 0x1(%r15), %eax
movb $0x0, -0x2e(%rbp)
movq $0x0, -0x58(%rbp)
cmpl $0x19, %r15d
movl %eax, %r15d
jg 0xdd106
cmpb $0x0, (%r12,%rdi)
je 0xdd106
testl %ebx, %ebx
je 0xdd106
leaq 0x1(%rdi), %rax
cmpq -0x68(%rbp), %rdi
movq %rax, %rdi
jb 0xdbeba
jmp 0xdd106
leaq -0x2e(%rbp), %rdi
leaq 0x57034(%rip), %rsi     # 0x133481
callq 0x9090
testq %rax, %rax
je 0xdc49a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x14, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x14, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc47f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56fe3(%rip), %rsi     # 0x133488
callq 0x9090
testq %rax, %rax
je 0xdc4f2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x15, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x15, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc4d7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56f92(%rip), %rsi     # 0x13348f
callq 0x9090
testq %rax, %rax
je 0xdc54a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x16, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x16, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc52f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56f41(%rip), %rsi     # 0x133496
callq 0x9090
testq %rax, %rax
je 0xdc5a2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x17, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x17, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc587
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56ef0(%rip), %rsi     # 0x13349d
callq 0x9090
testq %rax, %rax
je 0xdc5fa
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x18, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x18, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc5df
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56e9f(%rip), %rsi     # 0x1334a4
callq 0x9090
testq %rax, %rax
je 0xdc652
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x19, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x19, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc637
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56dfa(%rip), %rsi     # 0x133457
callq 0x9090
testq %rax, %rax
je 0xdc6aa
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xe, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xe, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc68f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56da9(%rip), %rsi     # 0x13345e
callq 0x9090
testq %rax, %rax
je 0xdc702
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xf, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xf, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc6e7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56d58(%rip), %rsi     # 0x133465
callq 0x9090
testq %rax, %rax
je 0xdc75a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x10, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x10, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc73f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56d07(%rip), %rsi     # 0x13346c
callq 0x9090
testq %rax, %rax
je 0xdc7b2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x11, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x11, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc797
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56cb6(%rip), %rsi     # 0x133473
callq 0x9090
testq %rax, %rax
je 0xdc80a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x12, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x12, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc7ef
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56c65(%rip), %rsi     # 0x13347a
callq 0x9090
testq %rax, %rax
je 0xdc862
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x13, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x13, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc847
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56afb(%rip), %rsi     # 0x133368
callq 0x9090
testq %rax, %rax
je 0xdc8ba
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x1, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x1, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc89f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56aa8(%rip), %rsi     # 0x13336d
callq 0x9090
testq %rax, %rax
je 0xdc912
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x2, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x2, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc8f7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56a55(%rip), %rsi     # 0x133372
callq 0x9090
testq %rax, %rax
je 0xdc96a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x3, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x3, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc94f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56a02(%rip), %rsi     # 0x133377
callq 0x9090
testq %rax, %rax
je 0xdc9c2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x4, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x4, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc9a7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x569af(%rip), %rsi     # 0x13337c
callq 0x9090
testq %rax, %rax
je 0xdca1a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x5, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x5, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdc9ff
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5695c(%rip), %rsi     # 0x133381
callq 0x9090
testq %rax, %rax
je 0xdca72
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x6, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x6, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdca57
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56909(%rip), %rsi     # 0x133386
callq 0x9090
testq %rax, %rax
je 0xdcaca
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x7, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x7, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcaaf
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x568b6(%rip), %rsi     # 0x13338b
callq 0x9090
testq %rax, %rax
je 0xdcb22
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x8, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x8, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcb07
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56863(%rip), %rsi     # 0x133390
callq 0x9090
testq %rax, %rax
je 0xdcb7a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x9, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x9, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcb5f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56810(%rip), %rsi     # 0x133395
callq 0x9090
testq %rax, %rax
je 0xdcbd2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xa, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xa, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcbb7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x567bd(%rip), %rsi     # 0x13339a
callq 0x9090
testq %rax, %rax
je 0xdcc2a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xb, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xb, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcc0f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5676a(%rip), %rsi     # 0x13339f
callq 0x9090
testq %rax, %rax
je 0xdcc82
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xc, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xc, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcc67
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56717(%rip), %rsi     # 0x1333a4
callq 0x9090
testq %rax, %rax
je 0xdccda
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xd, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xd, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdccbf
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x566c4(%rip), %rsi     # 0x1333a9
callq 0x9090
testq %rax, %rax
je 0xdcd32
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x14, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x14, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcd17
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56671(%rip), %rsi     # 0x1333ae
callq 0x9090
testq %rax, %rax
je 0xdcd8a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x15, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x15, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcd6f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5661e(%rip), %rsi     # 0x1333b3
callq 0x9090
testq %rax, %rax
je 0xdcde2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x16, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x16, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcdc7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x565cb(%rip), %rsi     # 0x1333b8
callq 0x9090
testq %rax, %rax
je 0xdce3a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x17, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x17, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdce1f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56578(%rip), %rsi     # 0x1333bd
callq 0x9090
testq %rax, %rax
je 0xdce92
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x18, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x18, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdce77
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56525(%rip), %rsi     # 0x1333c2
callq 0x9090
testq %rax, %rax
je 0xdceea
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x19, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x19, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcecf
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x564d2(%rip), %rsi     # 0x1333c7
callq 0x9090
testq %rax, %rax
je 0xdcf42
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xe, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xe, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcf27
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5647f(%rip), %rsi     # 0x1333cc
callq 0x9090
testq %rax, %rax
je 0xdcf9a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0xf, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0xf, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcf7f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5642c(%rip), %rsi     # 0x1333d1
callq 0x9090
testq %rax, %rax
je 0xdcff2
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x10, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x10, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdcfd7
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x563d9(%rip), %rsi     # 0x1333d6
callq 0x9090
testq %rax, %rax
je 0xdd04a
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x11, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x11, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdd02f
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x56386(%rip), %rsi     # 0x1333db
callq 0x9090
testq %rax, %rax
je 0xdd09b
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x12, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x12, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdd083
jmp 0xdd0ea
leaq -0x2e(%rbp), %rdi
leaq 0x5633a(%rip), %rsi     # 0x1333e0
callq 0x9090
testq %rax, %rax
je 0xdd0f3
cmpq $0x0, -0x38(%rbp)
je 0xdc383
cmpl $0x1a, %r15d
jg 0xdc383
movl $0x13, %eax
testl %r15d, %r15d
jle 0xdd0ea
movl %r15d, %ecx
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpl $0x13, (%rsi,%rdx,4)
je 0xdc383
incq %rdx
cmpq %rdx, %rcx
jne 0xdd0d4
movq -0x38(%rbp), %rsi
jmp 0xdc3ec
movq %r14, %rdi
jmp 0xdbf16
xorl %r15d, %r15d
jmp 0xddaa6
xorl %r15d, %r15d
testl %r15d, %r15d
movq -0x38(%rbp), %rcx
movl -0x5c(%rbp), %edx
jne 0xdd3c8
leaq 0x23022b(%rip), %rax    # 0x30d348
testl %edx, (%rax)
jne 0xdd13b
leaq 0x23021c(%rip), %rax    # 0x30d344
xorl %r15d, %r15d
testl %edx, (%rax)
je 0xdd147
leaq 0x161456(%rip), %rax    # 0x23e58c
cmpl $0x0, (%rax)
je 0xdd147
movl $0xd, (%rcx)
movl $0x1, %r15d
leaq 0x23020a(%rip), %rax    # 0x30d358
testl %edx, (%rax)
je 0xdd15f
movl %r15d, %eax
incl %r15d
movl $0xe, (%rcx,%rax,4)
leaq 0x230202(%rip), %rax    # 0x30d368
testl %edx, (%rax)
je 0xdd177
movl %r15d, %eax
incl %r15d
movl $0xf, (%rcx,%rax,4)
leaq 0x2301fa(%rip), %rax    # 0x30d378
testl %edx, (%rax)
je 0xdd18f
movl %r15d, %eax
incl %r15d
movl $0x10, (%rcx,%rax,4)
leaq 0x2301f2(%rip), %rax    # 0x30d388
testl %edx, (%rax)
je 0xdd1a7
movl %r15d, %eax
incl %r15d
movl $0x11, (%rcx,%rax,4)
leaq 0x2301ea(%rip), %rax    # 0x30d398
testl %edx, (%rax)
je 0xdd1bf
movl %r15d, %eax
incl %r15d
movl $0x12, (%rcx,%rax,4)
leaq 0x2301e2(%rip), %rax    # 0x30d3a8
testl %edx, (%rax)
je 0xdd1d7
movl %r15d, %eax
incl %r15d
movl $0x13, (%rcx,%rax,4)
leaq 0x230166(%rip), %rax    # 0x30d344
testl %edx, (%rax)
jne 0xdd1ed
leaq 0x23016b(%rip), %rax    # 0x30d354
testl %edx, (%rax)
je 0xdd1fa
movl %r15d, %eax
incl %r15d
movl $0x14, (%rcx,%rax,4)
leaq 0x230163(%rip), %rax    # 0x30d364
testl %edx, (%rax)
je 0xdd212
movl %r15d, %eax
incl %r15d
movl $0x15, (%rcx,%rax,4)
leaq 0x23015b(%rip), %rax    # 0x30d374
testl %edx, (%rax)
je 0xdd22a
movl %r15d, %eax
incl %r15d
movl $0x16, (%rcx,%rax,4)
leaq 0x230153(%rip), %rax    # 0x30d384
testl %edx, (%rax)
je 0xdd242
movl %r15d, %eax
incl %r15d
movl $0x17, (%rcx,%rax,4)
leaq 0x23014b(%rip), %rax    # 0x30d394
testl %edx, (%rax)
je 0xdd25a
movl %r15d, %eax
incl %r15d
movl $0x18, (%rcx,%rax,4)
leaq 0x230143(%rip), %rax    # 0x30d3a4
testl %edx, (%rax)
je 0xdd272
movl %r15d, %eax
incl %r15d
movl $0x19, (%rcx,%rax,4)
leaq 0x13b657(%rip), %rax    # 0x2188d0
movq (%rax), %rax
cmpq $0x20, %rax
je 0xdd32d
cmpq $0x80, %rax
je 0xdd32d
leaq 0x2300a7(%rip), %rax    # 0x30d340
testl %edx, (%rax)
jne 0xdd2a8
leaq 0x2300ac(%rip), %rax    # 0x30d350
testl %edx, (%rax)
je 0xdd2b5
movl %r15d, %eax
incl %r15d
movl $0x7, (%rcx,%rax,4)
leaq 0x2300a4(%rip), %rax    # 0x30d360
testl %edx, (%rax)
je 0xdd2cd
movl %r15d, %eax
incl %r15d
movl $0x8, (%rcx,%rax,4)
leaq 0x23009c(%rip), %rax    # 0x30d370
testl %edx, (%rax)
je 0xdd2e5
movl %r15d, %eax
incl %r15d
movl $0x9, (%rcx,%rax,4)
leaq 0x230094(%rip), %rax    # 0x30d380
testl %edx, (%rax)
je 0xdd2fd
movl %r15d, %eax
incl %r15d
movl $0xa, (%rcx,%rax,4)
leaq 0x23008c(%rip), %rax    # 0x30d390
testl %edx, (%rax)
je 0xdd315
movl %r15d, %eax
incl %r15d
movl $0xb, (%rcx,%rax,4)
leaq 0x230084(%rip), %rax    # 0x30d3a0
testl %edx, (%rax)
je 0xdd32d
movl %r15d, %eax
incl %r15d
movl $0xc, (%rcx,%rax,4)
leaq 0x230018(%rip), %rax    # 0x30d34c
testl %edx, (%rax)
jne 0xdd343
leaq 0x23001d(%rip), %rax    # 0x30d35c
testl %edx, (%rax)
je 0xdd350
movl %r15d, %eax
incl %r15d
movl $0x1, (%rcx,%rax,4)
leaq 0x230015(%rip), %rax    # 0x30d36c
testl %edx, (%rax)
je 0xdd368
movl %r15d, %eax
incl %r15d
movl $0x2, (%rcx,%rax,4)
leaq 0x23000d(%rip), %rax    # 0x30d37c
testl %edx, (%rax)
je 0xdd380
movl %r15d, %eax
incl %r15d
movl $0x3, (%rcx,%rax,4)
leaq 0x230005(%rip), %rax    # 0x30d38c
testl %edx, (%rax)
je 0xdd398
movl %r15d, %eax
incl %r15d
movl $0x4, (%rcx,%rax,4)
leaq 0x22fffd(%rip), %rax    # 0x30d39c
testl %edx, (%rax)
je 0xdd3b0
movl %r15d, %eax
incl %r15d
movl $0x5, (%rcx,%rax,4)
leaq 0x22fff5(%rip), %rax    # 0x30d3ac
testl %edx, (%rax)
je 0xdd3c8
movl %r15d, %eax
incl %r15d
movl $0x6, (%rcx,%rax,4)
leaq 0x1611b1(%rip), %rax    # 0x23e580
movsd (%rax), %xmm0
ucomisd 0x2e62d(%rip), %xmm0    # 0x10ba08
jae 0xdd76f
leaq 0x25ee38(%rip), %rbx    # 0x33c220
leaq 0x4a96a(%rip), %rsi     # 0x127d59
xorl %r13d, %r13d
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x9060
testl %r15d, %r15d
jle 0xddaa6
movq %r15, -0x40(%rbp)
movl %r15d, %r12d
leaq 0x4dc76(%rip), %r15     # 0x12b08c
xorl %r14d, %r14d
movq -0x38(%rbp), %rax
movl (%rax,%r14,4), %eax
decl %eax
cmpl $0x18, %eax
ja 0xdd6e0
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x315320, 0x3(%rbx,%rax) # imm = 0x315320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x365020, 0x3(%rbx,%rax) # imm = 0x365020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x325020, 0x3(%rbx,%rax) # imm = 0x325020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x384420, 0x3(%rbx,%rax) # imm = 0x384420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x375320, 0x3(%rbx,%rax) # imm = 0x375320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x314320, 0x3(%rbx,%rax) # imm = 0x314320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x364420, 0x3(%rbx,%rax) # imm = 0x364420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x384c20, 0x3(%rbx,%rax) # imm = 0x384C20
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x355320, 0x3(%rbx,%rax) # imm = 0x355320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x355020, 0x3(%rbx,%rax) # imm = 0x355020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x365320, 0x3(%rbx,%rax) # imm = 0x365320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x324420, 0x3(%rbx,%rax) # imm = 0x324420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x325320, 0x3(%rbx,%rax) # imm = 0x325320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x375020, 0x3(%rbx,%rax) # imm = 0x375020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x324c20, 0x3(%rbx,%rax) # imm = 0x324C20
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x385320, 0x3(%rbx,%rax) # imm = 0x385320
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x354c20, 0x3(%rbx,%rax) # imm = 0x354C20
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x315020, 0x3(%rbx,%rax) # imm = 0x315020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x314420, 0x3(%rbx,%rax) # imm = 0x314420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x385020, 0x3(%rbx,%rax) # imm = 0x385020
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x374420, 0x3(%rbx,%rax) # imm = 0x374420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x354420, 0x3(%rbx,%rax) # imm = 0x354420
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x364c20, 0x3(%rbx,%rax) # imm = 0x364C20
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x314c20, 0x3(%rbx,%rax) # imm = 0x314C20
jmp 0xdd6dd
movq %rbx, %rdi
callq 0x9120
movl $0x20202020, (%rbx,%rax) # imm = 0x20202020
movl $0x374c20, 0x3(%rbx,%rax) # imm = 0x374C20
incl %r13d
cmpl $0x9, %r13d
jl 0xdd740
movq %r12, %r13
movq %r15, %r12
leaq -0x170(%rbp), %r15
movq %r15, %rdi
leaq 0x4ffa6(%rip), %rsi     # 0x12d6a3
movq %rbx, %rdx
leaq 0x55cdd(%rip), %rcx     # 0x1333e4
xorl %eax, %eax
callq 0x9060
movb $0x0, -0x120(%rbp)
movq -0x48(%rbp), %rdi
leaq 0x482d7(%rip), %rsi     # 0x1259f7
movq %r15, %rdx
movq %r12, %r15
movq %r13, %r12
xorl %r13d, %r13d
xorl %eax, %eax
callq 0x9560
movl $0x20202020, (%rbx)     # imm = 0x20202020
movl $0x202020, 0x3(%rbx)    # imm = 0x202020
incq %r14
cmpq %r14, %r12
jne 0xdd419
testl %r13d, %r13d
je 0xddaa2
leaq 0x4ff47(%rip), %rsi     # 0x12d6a3
leaq 0x25eabd(%rip), %rdx    # 0x33c220
leaq 0x55c7a(%rip), %rcx     # 0x1333e4
jmp 0xdda78
testb $0x1, %dl
jne 0xdd79a
testw %dx, %dx
js 0xdd7a3
testb $0x2, %dl
jne 0xdd7ac
testb $0x4, %dl
jne 0xdd7b5
testb $0x8, %dl
leaq 0x46258(%rip), %rax     # 0x1239e5
leaq 0x51895(%rip), %rdx     # 0x12f029
cmoveq %rax, %rdx
jmp 0xdd7bc
leaq 0x48a15(%rip), %rdx     # 0x1261b6
jmp 0xdd7bc
leaq 0x44b9b(%rip), %rdx     # 0x122345
jmp 0xdd7bc
leaq 0x37260(%rip), %rdx     # 0x114a13
jmp 0xdd7bc
leaq 0x49ab9(%rip), %rdx     # 0x127275
leaq 0x25ea5d(%rip), %rbx    # 0x33c220
leaq 0x55b83(%rip), %rsi     # 0x13334d
xorl %r13d, %r13d
movq %rbx, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x9060
testl %r15d, %r15d
jle 0xddaa6
movq %r15, -0x40(%rbp)
movl %r15d, %r12d
leaq 0x4d837(%rip), %r15     # 0x12b028
xorl %r14d, %r14d
movq -0x38(%rbp), %rax
movl (%rax,%r14,4), %eax
decl %eax
cmpl $0x18, %eax
ja 0xdd9f2
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x9120
movl $0x43315320, (%rbx,%rax) # imm = 0x43315320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50364320, (%rbx,%rax) # imm = 0x50364320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50324320, (%rbx,%rax) # imm = 0x50324320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43384420, (%rbx,%rax) # imm = 0x43384420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43375320, (%rbx,%rax) # imm = 0x43375320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43314320, (%rbx,%rax) # imm = 0x43314320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43364420, (%rbx,%rax) # imm = 0x43364420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43384c20, (%rbx,%rax) # imm = 0x43384C20
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43355320, (%rbx,%rax) # imm = 0x43355320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50354320, (%rbx,%rax) # imm = 0x50354320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43365320, (%rbx,%rax) # imm = 0x43365320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43324420, (%rbx,%rax) # imm = 0x43324420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43325320, (%rbx,%rax) # imm = 0x43325320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50374320, (%rbx,%rax) # imm = 0x50374320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43324c20, (%rbx,%rax) # imm = 0x43324C20
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43385320, (%rbx,%rax) # imm = 0x43385320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43354c20, (%rbx,%rax) # imm = 0x43354C20
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50314320, (%rbx,%rax) # imm = 0x50314320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43314420, (%rbx,%rax) # imm = 0x43314420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x50384320, (%rbx,%rax) # imm = 0x50384320
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43374420, (%rbx,%rax) # imm = 0x43374420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43354420, (%rbx,%rax) # imm = 0x43354420
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43364c20, (%rbx,%rax) # imm = 0x43364C20
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43314c20, (%rbx,%rax) # imm = 0x43314C20
jmp 0xdd9ea
movq %rbx, %rdi
callq 0x9120
movl $0x43374c20, (%rbx,%rax) # imm = 0x43374C20
movb $0x0, 0x4(%rbx,%rax)
incl %r13d
cmpl $0xd, %r13d
jl 0xdda52
movq %r12, %r13
movq %r15, %r12
leaq -0x170(%rbp), %r15
movq %r15, %rdi
leaq 0x4fc94(%rip), %rsi     # 0x12d6a3
movq %rbx, %rdx
leaq 0x5593a(%rip), %rcx     # 0x133353
xorl %eax, %eax
callq 0x9060
movb $0x0, -0x120(%rbp)
movq -0x48(%rbp), %rdi
leaq 0x47fc5(%rip), %rsi     # 0x1259f7
movq %r15, %rdx
movq %r12, %r15
movq %r13, %r12
xorl %r13d, %r13d
xorl %eax, %eax
callq 0x9560
movl $0x20202020, (%rbx)     # imm = 0x20202020
movl $0x202020, 0x3(%rbx)    # imm = 0x202020
incq %r14
cmpq %r14, %r12
jne 0xdd7f4
testl %r13d, %r13d
je 0xddaa2
leaq 0x4fc39(%rip), %rsi     # 0x12d6a3
leaq 0x25e7af(%rip), %rdx    # 0x33c220
leaq 0x558db(%rip), %rcx     # 0x133353
leaq -0x170(%rbp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
movb $0x0, 0x50(%rbx)
leaq 0x47f63(%rip), %rsi     # 0x1259f7
movq -0x48(%rbp), %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9560
movq -0x40(%rbp), %r15
movl %r15d, %eax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq