// File: /workspace/github_c_makefile_star2_O0/simh[P]simtools/crossassemblers/macro7/macro7.c
// Function: pseudoOperators
BOOL pseudoOperators( PSEUDO_T val )
{
  int     count;
  int     delim;
  int     index;
  int     ix;
  WORD32  length;
  int     level;
  int     lexstartsave;
  int     pack;
  int     pos;
  int     radixprev;
  BOOL    status;
  SYM_T  *sym;
  WORD32  value;
  WORD32  word;
  int     width;
  static int mask_tab[19] = { 0000000,
          0000001, 0000003, 0000007, 0000017, 0000037, 0000077,
          0000177, 0000377, 0000777, 0001777, 0003777, 0007777,
          0017777, 0037777, 0077777, 0177777, 0377777, 0777777 };

  status = TRUE;
  switch( (PSEUDO_T) val )
  {
  case DECIMAL:
    radix = 10;
    break;

  case DEFINE:
    count = 0;
    index = 0;
    lexstartsave = lexstart;
    while(( line[lexstart] != '<' ) && ( !isdone( line[lexstart] )) &&
          ( count < MAC_MAX_ARGS ))
    {
      if ( !isalpha( line[lexstart] ) && ( index == 0 ))
      {
        index = lexstart;
      }
      lexemeToName( &mac_arg_name[count++][0], lexstart, lexterm );
      nextLexeme();
    }
    if( count == 0 )                 /* No macro name.                        */
    {
      errorMessage( &no_macro_name, lexstartsave );
      index = 1;
    }
    else if( index )                 /* Bad argument name.                    */
    {
      errorMessage( &bad_dummy_arg, index );
    }
    else if( mac_count >= MAC_TABLE_LENGTH )
    {
      errorMessage( &macro_table_full, lexstartsave );
      index = 1;
    }
    else
    {
      value = mac_count;
      mac_count++;                  /* Value is entry in mac_bodies.         */
      defineSymbol( &mac_arg_name[0][0], value, MACRO, lexstartsave );
    }
    if( isend( line[lexstart] ) || ( line[lexstart] == '/' ))
    {
      readLine();
      nextLexeme();
    }
    if( index )
    {
      conditionFalse();             /* On error skip macro body.             */
    }
    else if( line[lexstart] == '<' )
    {
      /* Invariant: line[cc] is the next unexamined character.                */
      index = lexstart + 1;
      length = 0;
      level = 1;
      while( level > 0 )
      {
        if( end_of_input )
        {
          break;
        }
        if( isend( line[cc] ) || ( line[cc] == '/' ))
        {
          length = copyMacLine( length, index, cc, count - 1 );
          readLine();
          index = 0;
        }
        else
        {
          switch( line[cc] )
          {
          case '>':
            level--;
            cc++;
            break;

          case '<':
            level++;
            cc++;
            break;

          default:
            cc++;
            break;
          } /* end switch                                                     */
        } /* end if                                                           */
      } /* end while                                                          */
      length = copyMacLine( length, index, cc - 1, count - 1 );
      if( length < 0 )
      {
        errorMessage (&macro_too_long, lexstart );
      }
      else if( length == 0 )
      {
        mac_bodies[value] = NULL;
      }
      else
      {
        mac_bodies[value] = (char *) malloc( length + 1 );
        if( mac_bodies[value] )
        {
           strncpy( mac_bodies[value], mac_buffer, length );
           *( mac_bodies[value] + length ) = 0;
        }
        else
        {
           errorMessage( &no_virtual_memory, lexstart );
        }
      }
      nextLexeme();
    }
    else
    {
      errorMessage( &lt_expected, lexstart );
    } /* end if                                                               */
    break;
      
  case EJECT:
    page_lineno = LIST_LINES_PER_PAGE;  /* This will force a page break.      */
    status = FALSE;             /* This will force reading of next line       */
    break;

  case IFDEF:
    if( isalpha( line[lexstart] ))
    {
      sym = evalSymbol();
      nextLexeme();
      if( M_DEFINED_CONDITIONALLY( sym->type ))
      {
        conditionTrue();
      }
      else
      {
        conditionFalse();
      }
    }
    else
    {
      errorLexeme( &label_syntax, lexstart );
    }
    break;

  case IFNDEF:
    if( isalpha( line[lexstart] ))
    {
      sym = evalSymbol();
      nextLexeme();
      if( M_DEFINED_CONDITIONALLY( sym->type ))
      {
        conditionFalse();
      }
      else
      {
        conditionTrue();
      }
    }
    else
    {
      errorLexeme( &label_syntax, lexstart );
    }
    break;

  case IFNZERO:
    if( (getExpr())->val == 0 )
    {
      conditionFalse();
    }
    else
    {
      conditionTrue();
    }
    break;

  case IFZERO:
    if( (getExpr())->val == 0 )
    {
      conditionTrue();
    }
    else
    {
      conditionFalse();
    }
    break;

  case LIST:
    listfile = listsave;
    break;

  case NOLIST:
    listfile = NULL;
    break;

  case OCTAL:
    radix = 8;
    break;

  case START:
    if( !isdone( line[lexstart] ))
    {
      start_addr = (getExpr())->val & 077777;
      nextLexeme();
    }
    printLine( line, 0, start_addr, LINE_VAL );
    status = FALSE;
    break;

  case TEXT:
    delim = line[lexstart];
    pack = 0;
    count = 0;
    index = lexstart + 1;
    while( line[index] != delim && !isend( line[index] ))
    {
      pack = ( pack << 6 ) | ( line[index] & 077 );
      count++;
      if( count > 2 )
      {
        punchOutObject( clc, pack );
        incrementClc();
        count = 0;
        pack = 0;
      }
      index++;
    }

    if( count == 2 )
    {
      punchOutObject( clc, pack << 6 );
    }
    else if (count == 1)
    {
      punchOutObject( clc, pack << 12 );
    }
    else
    {
      punchOutObject( clc, 0 );
    }
    incrementClc();

    if( isend( line[index] ))
    {
      cc = index;
      lexterm = cc;
      errorMessage( &text_string, cc );
    }
    else
    {
      cc = index + 1;
      lexterm = cc;
    }
    nextLexeme();
    break;

  case TITLE:
    delim = line[lexstart];
    ix = lexstart + 1;
    /* Find string delimiter.                                                 */
    do
    {
      if( list_title[ix] == delim && list_title[ix + 1] == delim )
      {
        ix++;
      }
      ix++;
    } while( line[ix] != delim && !isend(line[ix]) );

    if( !isend( line[ix] ) )
    {
      count = 0;
      ix = lexstart + 1;
      do
      {
        if( list_title[ix] == delim && list_title[ix + 1] == delim )
        {
          ix++;
        }
        list_title[count] = line[ix];
        count++;
        ix++;
      } while( line[ix] != delim && !isend(line[ix]) );

      if( strlen( list_title ) > TITLELEN )
      {
        list_title[TITLELEN] = '\0';
      }

      cc = ix + 1;
      lexterm = cc;
      page_lineno = LIST_LINES_PER_PAGE;/* Force top of page for new titles.  */
      list_title_set = TRUE;
    }
    else
    {
      cc = ix;
      lexterm = cc;
      errorMessage( &text_string, cc );
    }

    nextLexeme();
    break;

  case VFD:
    pos = 0;
    word = 0;
    radixprev = radix;
    while( !isdone (line[lexstart] ))
    {
      lexstartsave = lexstart;
      radix = 10;
  	  width = (getExpr())->val;     /* Get field width.                       */ 
      radix = radixprev;
      if( (width <= 0) || ((width + pos) > 18) || (line[lexstart] != ':') )
      {
        errorMessage( &illegal_vfd_value, lexstartsave );
      }
      nextLexBlank();               /* Skip colon.                            */
      value = (getExpr())->val;     /* Get field value.                       */
      if( line[lexterm] == ',' ) cc++;
      nextLexeme();                 /* Advance to next field.                 */
      pos = pos + width;
	  if( pos <= 18 )
	  {
        word = word | ((value & mask_tab[width]) << (18 - pos));
	  }
    }
    punchOutObject( clc, word );
    incrementClc();
    break;

  default:
    break;
  } /* end switch for pseudo-ops                                              */
  return( status );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x4(%rbp)
movb $0x1, -0x2d(%rbp)
movl -0x4(%rbp), %eax
movq %rax, -0x50(%rbp)
subq $0xd, %rax
ja 0x5c6d
movq -0x50(%rbp), %rax
leaq 0x1fbd(%rip), %rcx      # 0x7068
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0xa, 0xff16(%rip)      # 0x14fd4
jmp 0x5c6f
movl $0x0, -0x8(%rbp)
movl $0x0, -0x10(%rbp)
movl 0x10089(%rip), %eax     # 0x15160
movl %eax, -0x20(%rbp)
movslq 0x1007f(%rip), %rcx     # 0x15160
leaq 0xfef8(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x3c, %ecx
movb %al, -0x51(%rbp)
je 0x5170
movslq 0x10063(%rip), %rcx     # 0x15160
leaq 0xfedc(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x2f, %ecx
movb %al, -0x51(%rbp)
je 0x5170
movslq 0x10047(%rip), %rcx     # 0x15160
leaq 0xfec0(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x51(%rbp)
je 0x5170
movslq 0x1002b(%rip), %rcx     # 0x15160
leaq 0xfea4(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, -0x51(%rbp)
je 0x5170
movslq 0x1000f(%rip), %rcx     # 0x15160
leaq 0xfe88(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x9, %ecx
movb %al, -0x51(%rbp)
je 0x5170
cmpl $0x14, -0x8(%rbp)
setl %al
movb %al, -0x51(%rbp)
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x5179
jmp 0x51e9
callq 0x2170
movq (%rax), %rax
movslq 0xffd8(%rip), %rdx      # 0x15160
leaq 0xfe51(%rip), %rcx      # 0x14fe0
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
jne 0x51b3
cmpl $0x0, -0x10(%rbp)
jne 0x51b3
movl 0xffb0(%rip), %eax      # 0x15160
movl %eax, -0x10(%rbp)
movl -0x8(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x8(%rbp)
cltq
leaq 0x10409(%rip), %rdi     # 0x155d0
imulq $0x7, %rax, %rax
addq %rax, %rdi
movl 0xff8c(%rip), %esi      # 0x15160
movl 0xff96(%rip), %edx      # 0x15170
callq 0x4c00
callq 0x41d0
jmp 0x50da
cmpl $0x0, -0x8(%rbp)
jne 0x5207
movl -0x20(%rbp), %esi
leaq 0x5d27(%rip), %rdi      # 0xaf20
callq 0x6200
movl $0x1, -0x10(%rbp)
jmp 0x5275
cmpl $0x0, -0x10(%rbp)
je 0x521e
movl -0x10(%rbp), %esi
leaq 0x5d19(%rip), %rdi      # 0xaf30
callq 0x6200
jmp 0x5273
cmpl $0x400, 0x8184(%rip)    # imm = 0x400
jl 0x5242
movl -0x20(%rbp), %esi
leaq 0x5d2c(%rip), %rdi      # 0xaf60
callq 0x6200
movl $0x1, -0x10(%rbp)
jmp 0x5271
movl 0x8164(%rip), %eax      # 0xd3ac
movl %eax, -0x3c(%rbp)
movl 0x815b(%rip), %eax      # 0xd3ac
addl $0x1, %eax
movl %eax, 0x8152(%rip)      # 0xd3ac
movl -0x3c(%rbp), %esi
movl -0x20(%rbp), %ecx
leaq 0x10369(%rip), %rdi     # 0x155d0
movl $0x101, %edx            # imm = 0x101
callq 0x2ce0
jmp 0x5273
jmp 0x5275
movslq 0xfee4(%rip), %rcx      # 0x15160
leaq 0xfd5d(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x52ba
movslq 0xfecd(%rip), %rcx      # 0x15160
leaq 0xfd46(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x52ba
movslq 0xfeb6(%rip), %rcx      # 0x15160
leaq 0xfd2f(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x2f, %eax
jne 0x52c4
callq 0x3cf0
callq 0x41d0
cmpl $0x0, -0x10(%rbp)
je 0x52d4
callq 0x6bd0
jmp 0x54ee
movslq 0xfe85(%rip), %rcx      # 0x15160
leaq 0xfcfe(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x3c, %eax
jne 0x54da
movl 0xfe6b(%rip), %eax      # 0x15160
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x53fe
cmpb $0x0, 0xfcbe(%rip)      # 0x14fd8
je 0x5321
jmp 0x53fe
movslq 0xfe44(%rip), %rcx      # 0x1516c
leaq 0xfcb1(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x5366
movslq 0xfe2d(%rip), %rcx      # 0x1516c
leaq 0xfc9a(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x5366
movslq 0xfe16(%rip), %rcx      # 0x1516c
leaq 0xfc83(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x2f, %eax
jne 0x538e
movl -0x18(%rbp), %edi
movl -0x10(%rbp), %esi
movl 0xfdfa(%rip), %edx      # 0x1516c
movl -0x8(%rbp), %ecx
subl $0x1, %ecx
callq 0x6900
movl %eax, -0x18(%rbp)
callq 0x3cf0
movl $0x0, -0x10(%rbp)
jmp 0x53f9
movslq 0xfdd7(%rip), %rax      # 0x1516c
leaq 0xfc44(%rip), %rcx      # 0x14fe0
movsbl (%rax,%rcx), %eax
movl %eax, -0x58(%rbp)
subl $0x3c, %eax
je 0x53ce
jmp 0x53aa
movl -0x58(%rbp), %eax
subl $0x3e, %eax
jne 0x53e8
jmp 0x53b4
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movl 0xfda9(%rip), %eax      # 0x1516c
addl $0x1, %eax
movl %eax, 0xfda0(%rip)      # 0x1516c
jmp 0x53f7
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl 0xfd8f(%rip), %eax      # 0x1516c
addl $0x1, %eax
movl %eax, 0xfd86(%rip)      # 0x1516c
jmp 0x53f7
movl 0xfd7e(%rip), %eax      # 0x1516c
addl $0x1, %eax
movl %eax, 0xfd75(%rip)      # 0x1516c
jmp 0x53f9
jmp 0x5309
movl -0x18(%rbp), %edi
movl -0x10(%rbp), %esi
movl 0xfd62(%rip), %edx      # 0x1516c
subl $0x1, %edx
movl -0x8(%rbp), %ecx
subl $0x1, %ecx
callq 0x6900
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jge 0x5438
movl 0xfd39(%rip), %esi      # 0x15160
leaq 0x5b12(%rip), %rdi      # 0xaf40
callq 0x6200
jmp 0x54d3
cmpl $0x0, -0x18(%rbp)
jne 0x5453
movslq -0x3c(%rbp), %rcx
leaq 0x5c57(%rip), %rax      # 0xb0a0
movq $0x0, (%rax,%rcx,8)
jmp 0x54d1
movl -0x18(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdi
callq 0x2110
movq %rax, %rdx
movslq -0x3c(%rbp), %rcx
leaq 0x5c31(%rip), %rax      # 0xb0a0
movq %rdx, (%rax,%rcx,8)
movslq -0x3c(%rbp), %rcx
leaq 0x5c22(%rip), %rax      # 0xb0a0
cmpq $0x0, (%rax,%rcx,8)
je 0x54bd
movslq -0x3c(%rbp), %rcx
leaq 0x5c10(%rip), %rax      # 0xb0a0
movq (%rax,%rcx,8), %rdi
movslq -0x18(%rbp), %rdx
leaq 0x101c1(%rip), %rsi     # 0x15660
callq 0x2040
movslq -0x3c(%rbp), %rcx
leaq 0x5bf1(%rip), %rax      # 0xb0a0
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x54cf
movl 0xfc9d(%rip), %esi      # 0x15160
leaq 0x5a86(%rip), %rdi      # 0xaf50
callq 0x6200
jmp 0x54d1
jmp 0x54d3
callq 0x41d0
jmp 0x54ec
movl 0xfc80(%rip), %esi      # 0x15160
leaq 0x5a19(%rip), %rdi      # 0xaf00
callq 0x6200
jmp 0x54ee
jmp 0x5c6f
movl $0x3c, 0xfad3(%rip)     # 0x14fd0
movb $0x0, -0x2d(%rbp)
jmp 0x5c6f
callq 0x2170
movq (%rax), %rax
movslq 0xfc4b(%rip), %rdx      # 0x15160
leaq 0xfac4(%rip), %rcx      # 0x14fe0
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x557b
callq 0x5000
movq %rax, -0x38(%rbp)
callq 0x41d0
movq -0x38(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x5556
cmpl $0x1, 0x7bdc(%rip)      # 0xd130
je 0x556d
movq -0x38(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
je 0x5574
cmpl $0x2, 0x7bc5(%rip)      # 0xd130
jne 0x5574
callq 0x6cf0
jmp 0x5579
callq 0x6bd0
jmp 0x558d
movl 0xfbdf(%rip), %esi      # 0x15160
leaq 0x5858(%rip), %rdi      # 0xade0
callq 0x4db0
jmp 0x5c6f
callq 0x2170
movq (%rax), %rax
movslq 0xfbbf(%rip), %rdx      # 0x15160
leaq 0xfa38(%rip), %rcx      # 0x14fe0
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x5607
callq 0x5000
movq %rax, -0x38(%rbp)
callq 0x41d0
movq -0x38(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x55e2
cmpl $0x1, 0x7b50(%rip)      # 0xd130
je 0x55f9
movq -0x38(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x1, %eax
je 0x5600
cmpl $0x2, 0x7b39(%rip)      # 0xd130
jne 0x5600
callq 0x6bd0
jmp 0x5605
callq 0x6cf0
jmp 0x5619
movl 0xfb53(%rip), %esi      # 0x15160
leaq 0x57cc(%rip), %rdi      # 0xade0
callq 0x4db0
jmp 0x5c6f
callq 0x4500
cmpl $0x0, 0xc(%rax)
jne 0x5630
callq 0x6bd0
jmp 0x5635
callq 0x6cf0
jmp 0x5c6f
callq 0x4500
cmpl $0x0, 0xc(%rax)
jne 0x564c
callq 0x6cf0
jmp 0x5651
callq 0x6bd0
jmp 0x5c6f
movq 0x7c1b(%rip), %rax      # 0xd278
movq %rax, 0x7c0c(%rip)      # 0xd270
jmp 0x5c6f
movq $0x0, 0x7bfc(%rip) # 0xd270
jmp 0x5c6f
movl $0x8, 0xf951(%rip)      # 0x14fd4
jmp 0x5c6f
movslq 0xfad1(%rip), %rcx      # 0x15160
leaq 0xf94a(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x2f, %eax
je 0x56fc
movslq 0xfaba(%rip), %rcx      # 0x15160
leaq 0xf933(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x56fc
movslq 0xfaa3(%rip), %rcx      # 0x15160
leaq 0xf91c(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x56fc
movslq 0xfa8c(%rip), %rcx      # 0x15160
leaq 0xf905(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x9, %eax
je 0x56fc
callq 0x4500
movl 0xc(%rax), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movl %eax, 0x7cad(%rip)      # 0xd3a4
callq 0x41d0
movl 0x7ca2(%rip), %edx      # 0xd3a4
leaq 0xf8d7(%rip), %rdi      # 0x14fe0
xorl %esi, %esi
movl $0x1, %ecx
callq 0x4870
movb $0x0, -0x2d(%rbp)
jmp 0x5c6f
movslq 0xfa3b(%rip), %rcx      # 0x15160
leaq 0xf8b4(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
movl %eax, -0xc(%rbp)
movl $0x0, -0x24(%rbp)
movl $0x0, -0x8(%rbp)
movl 0xfa19(%rip), %eax      # 0x15160
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movslq -0x10(%rbp), %rcx
leaq 0xf888(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x59(%rbp)
je 0x579f
movslq -0x10(%rbp), %rcx
leaq 0xf86f(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x5a(%rbp)
je 0x5797
movslq -0x10(%rbp), %rcx
leaq 0xf856(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x5a(%rbp)
movb -0x5a(%rbp), %al
xorb $-0x1, %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x57a8
jmp 0x5803
movl -0x24(%rbp), %eax
shll $0x6, %eax
movslq -0x10(%rbp), %rdx
leaq 0xf827(%rip), %rcx      # 0x14fe0
movsbl (%rcx,%rdx), %ecx
andl $0x3f, %ecx
orl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
cmpl $0x2, -0x8(%rbp)
jle 0x57f5
movl 0x7bc6(%rip), %edi      # 0xd3a0
movl -0x24(%rbp), %esi
callq 0x5c80
callq 0x5cc0
movl $0x0, -0x8(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x574d
cmpl $0x2, -0x8(%rbp)
jne 0x581c
movl 0x7b91(%rip), %edi      # 0xd3a0
movl -0x24(%rbp), %esi
shll $0x6, %esi
callq 0x5c80
jmp 0x5844
cmpl $0x1, -0x8(%rbp)
jne 0x5835
movl 0x7b78(%rip), %edi      # 0xd3a0
movl -0x24(%rbp), %esi
shll $0xc, %esi
callq 0x5c80
jmp 0x5842
movl 0x7b65(%rip), %edi      # 0xd3a0
xorl %esi, %esi
callq 0x5c80
jmp 0x5844
callq 0x5cc0
movslq -0x10(%rbp), %rcx
leaq 0xf78c(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x5871
movslq -0x10(%rbp), %rcx
leaq 0xf778(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x589a
movl -0x10(%rbp), %eax
movl %eax, 0xf8f2(%rip)      # 0x1516c
movl 0xf8ec(%rip), %eax      # 0x1516c
movl %eax, 0xf8ea(%rip)      # 0x15170
movl 0xf8e0(%rip), %esi      # 0x1516c
leaq 0x565d(%rip), %rdi      # 0xaef0
callq 0x6200
jmp 0x58b2
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, 0xf8c6(%rip)      # 0x1516c
movl 0xf8c0(%rip), %eax      # 0x1516c
movl %eax, 0xf8be(%rip)      # 0x15170
callq 0x41d0
jmp 0x5c6f
movslq 0xf89d(%rip), %rcx      # 0x15160
leaq 0xf716(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
movl %eax, -0xc(%rbp)
movl 0xf889(%rip), %eax      # 0x15160
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xfa28(%rip), %rax      # 0x15310
movsbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jne 0x5913
movl -0x14(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0xfa0f(%rip), %rax      # 0x15310
movsbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jne 0x5913
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xf6b9(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5b(%rbp)
je 0x596e
movslq -0x14(%rbp), %rcx
leaq 0xf6a0(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x5c(%rbp)
je 0x5966
movslq -0x14(%rbp), %rcx
leaq 0xf687(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x5c(%rbp)
movb -0x5c(%rbp), %al
xorb $-0x1, %al
movb %al, -0x5b(%rbp)
movb -0x5b(%rbp), %al
testb $0x1, %al
jne 0x58dd
movslq -0x14(%rbp), %rcx
leaq 0xf65c(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x5ac1
movslq -0x14(%rbp), %rcx
leaq 0xf644(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x5ac1
movl $0x0, -0x8(%rbp)
movl 0xf7aa(%rip), %eax      # 0x15160
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xf949(%rip), %rax      # 0x15310
movsbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jne 0x59f2
movl -0x14(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0xf930(%rip), %rax      # 0x15310
movsbl (%rax,%rcx), %eax
cmpl -0xc(%rbp), %eax
jne 0x59f2
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xf5e3(%rip), %rax      # 0x14fe0
movb (%rax,%rcx), %dl
movslq -0x8(%rbp), %rcx
leaq 0xf905(%rip), %rax      # 0x15310
movb %dl, (%rax,%rcx)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xf5b5(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5d(%rbp)
je 0x5a72
movslq -0x14(%rbp), %rcx
leaq 0xf59c(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x5e(%rbp)
je 0x5a6a
movslq -0x14(%rbp), %rcx
leaq 0xf583(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x5e(%rbp)
movb -0x5e(%rbp), %al
xorb $-0x1, %al
movb %al, -0x5d(%rbp)
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x59bc
leaq 0xf88c(%rip), %rdi      # 0x15310
callq 0x20a0
cmpq $0x3f, %rax
jbe 0x5a96
movb $0x0, 0xf8b9(%rip)      # 0x1534f
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, 0xf6ca(%rip)      # 0x1516c
movl 0xf6c4(%rip), %eax      # 0x1516c
movl %eax, 0xf6c2(%rip)      # 0x15170
movl $0x3c, 0xf518(%rip)     # 0x14fd0
movb $0x1, 0xf50d(%rip)      # 0x14fcc
jmp 0x5ae8
movl -0x14(%rbp), %eax
movl %eax, 0xf6a2(%rip)      # 0x1516c
movl 0xf69c(%rip), %eax      # 0x1516c
movl %eax, 0xf69a(%rip)      # 0x15170
movl 0xf690(%rip), %esi      # 0x1516c
leaq 0x540d(%rip), %rdi      # 0xaef0
callq 0x6200
callq 0x41d0
jmp 0x5c6f
movl $0x0, -0x28(%rbp)
movl $0x0, -0x40(%rbp)
movl 0xf4ce(%rip), %eax      # 0x14fd4
movl %eax, -0x2c(%rbp)
movslq 0xf650(%rip), %rcx      # 0x15160
leaq 0xf4c9(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x2f, %ecx
movb %al, -0x5f(%rbp)
je 0x5b78
movslq 0xf634(%rip), %rcx      # 0x15160
leaq 0xf4ad(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x5f(%rbp)
je 0x5b78
movslq 0xf618(%rip), %rcx      # 0x15160
leaq 0xf491(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0xa, %ecx
movb %al, -0x5f(%rbp)
je 0x5b78
movslq 0xf5fc(%rip), %rcx      # 0x15160
leaq 0xf475(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x5f(%rbp)
movb -0x5f(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5b86
jmp 0x5c58
movl 0xf5d4(%rip), %eax      # 0x15160
movl %eax, -0x20(%rbp)
movl $0xa, 0xf43b(%rip)      # 0x14fd4
callq 0x4500
movl 0xc(%rax), %eax
movl %eax, -0x44(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, 0xf427(%rip)      # 0x14fd4
cmpl $0x0, -0x44(%rbp)
jle 0x5bd5
movl -0x44(%rbp), %eax
addl -0x28(%rbp), %eax
cmpl $0x12, %eax
jg 0x5bd5
movslq 0xf59b(%rip), %rcx      # 0x15160
leaq 0xf414(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
je 0x5be4
movl -0x20(%rbp), %esi
leaq 0x52f1(%rip), %rdi      # 0xaed0
callq 0x6200
callq 0x4e00
callq 0x4500
movl 0xc(%rax), %eax
movl %eax, -0x3c(%rbp)
movslq 0xf575(%rip), %rcx      # 0x15170
leaq 0xf3de(%rip), %rax      # 0x14fe0
movsbl (%rax,%rcx), %eax
cmpl $0x2c, %eax
jne 0x5c1a
movl 0xf55b(%rip), %eax      # 0x1516c
addl $0x1, %eax
movl %eax, 0xf552(%rip)      # 0x1516c
callq 0x41d0
movl -0x28(%rbp), %eax
addl -0x44(%rbp), %eax
movl %eax, -0x28(%rbp)
cmpl $0x12, -0x28(%rbp)
jg 0x5c53
movl -0x40(%rbp), %eax
movl -0x3c(%rbp), %edx
movslq -0x44(%rbp), %rsi
leaq 0x5361(%rip), %rcx      # 0xafa0
andl (%rcx,%rsi,4), %edx
movl $0x12, %ecx
subl -0x28(%rbp), %ecx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movl %eax, -0x40(%rbp)
jmp 0x5b09
movl 0x7742(%rip), %edi      # 0xd3a0
movl -0x40(%rbp), %esi
callq 0x5c80
callq 0x5cc0
jmp 0x5c6f
jmp 0x5c6f
movb -0x2d(%rbp), %al
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)