// File: /workspace/github_c_makefile_star2_O3/coapp-packages[P]bzip2/bzip2.c
// Function: main
IntNative main ( IntNative argc, Char *argv[] )
{
   Int32  i, j;
   Char   *tmp;
   Cell   *argList;
   Cell   *aa;
   Bool   decode;

   /*-- Be really really really paranoid :-) --*/
   if (sizeof(Int32) != 4 || sizeof(UInt32) != 4  ||
       sizeof(Int16) != 2 || sizeof(UInt16) != 2  ||
       sizeof(Char)  != 1 || sizeof(UChar)  != 1)
      configError();

   /*-- Initialise --*/
   outputHandleJustInCase  = NULL;
   smallMode               = False;
   keepInputFiles          = False;
   forceOverwrite          = False;
   noisy                   = True;
   verbosity               = 0;
   blockSize100k           = 9;
   testFailsExist          = False;
   unzFailsExist           = False;
   numFileNames            = 0;
   numFilesProcessed       = 0;
   workFactor              = 30;
   deleteOutputOnInterrupt = False;
   exitValue               = 0;
   i = j = 0; /* avoid bogus warning from egcs-1.1.X */

   /*-- Set up signal handlers for mem access errors --*/
   signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
#  if BZ_UNIX
#  ifndef __DJGPP__
   signal (SIGBUS,  mySIGSEGVorSIGBUScatcher);
#  endif
#  endif

   copyFileName ( inName,  (Char*)"(none)" );
   copyFileName ( outName, (Char*)"(none)" );

   copyFileName ( progNameReally, argv[0] );
   progName = &progNameReally[0];
   for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++)
      if (*tmp == PATH_SEP) progName = tmp + 1;


   /*-- Copy flags from env var BZIP2, and 
        expand filename wildcards in arg list.
   --*/
   argList = NULL;
   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP2" );
   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP" );
   for (i = 1; i <= argc-1; i++)
      APPEND_FILESPEC(argList, argv[i]);


   /*-- Find the length of the longest filename --*/
   longestFileName = 7;
   numFileNames    = 0;
   decode          = True;
   for (aa = argList; aa != NULL; aa = aa->link) {
      if (ISFLAG("--")) { decode = False; continue; }
      if (aa->name[0] == '-' && decode) continue;
      numFileNames++;
      if (longestFileName < (Int32)strlen(aa->name) )
         longestFileName = (Int32)strlen(aa->name);
   }


   /*-- Determine source modes; flag handling may change this too. --*/
   if (numFileNames == 0)
      srcMode = SM_I2O; else srcMode = SM_F2F;


   /*-- Determine what to do (compress/uncompress/test/cat). --*/
   /*-- Note that subsequent flag handling may change this. --*/
   opMode = OM_Z;

   if ( (strstr ( progName, "unzip" ) != 0) ||
        (strstr ( progName, "UNZIP" ) != 0) )
      opMode = OM_UNZ;

   if ( (strstr ( progName, "z2cat" ) != 0) ||
        (strstr ( progName, "Z2CAT" ) != 0) ||
        (strstr ( progName, "zcat" ) != 0)  ||
        (strstr ( progName, "ZCAT" ) != 0) )  {
      opMode = OM_UNZ;
      srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O;
   }


   /*-- Look at the flags. --*/
   for (aa = argList; aa != NULL; aa = aa->link) {
      if (ISFLAG("--")) break;
      if (aa->name[0] == '-' && aa->name[1] != '-') {
         for (j = 1; aa->name[j] != '\0'; j++) {
            switch (aa->name[j]) {
               case 'c': srcMode          = SM_F2O; break;
               case 'd': opMode           = OM_UNZ; break;
               case 'z': opMode           = OM_Z; break;
               case 'f': forceOverwrite   = True; break;
               case 't': opMode           = OM_TEST; break;
               case 'k': keepInputFiles   = True; break;
               case 's': smallMode        = True; break;
               case 'q': noisy            = False; break;
               case '1': blockSize100k    = 1; break;
               case '2': blockSize100k    = 2; break;
               case '3': blockSize100k    = 3; break;
               case '4': blockSize100k    = 4; break;
               case '5': blockSize100k    = 5; break;
               case '6': blockSize100k    = 6; break;
               case '7': blockSize100k    = 7; break;
               case '8': blockSize100k    = 8; break;
               case '9': blockSize100k    = 9; break;
               case 'V':
               case 'L': license();            break;
               case 'v': verbosity++; break;
               case 'h': usage ( progName );
                         exit ( 0 );
                         break;
               default:  fprintf ( stderr, "%s: Bad flag `%s'\n",
                                   progName, aa->name );
                         usage ( progName );
                         exit ( 1 );
                         break;
            }
         }
      }
   }
   
   /*-- And again ... --*/
   for (aa = argList; aa != NULL; aa = aa->link) {
      if (ISFLAG("--")) break;
      if (ISFLAG("--stdout"))            srcMode          = SM_F2O;  else
      if (ISFLAG("--decompress"))        opMode           = OM_UNZ;  else
      if (ISFLAG("--compress"))          opMode           = OM_Z;    else
      if (ISFLAG("--force"))             forceOverwrite   = True;    else
      if (ISFLAG("--test"))              opMode           = OM_TEST; else
      if (ISFLAG("--keep"))              keepInputFiles   = True;    else
      if (ISFLAG("--small"))             smallMode        = True;    else
      if (ISFLAG("--quiet"))             noisy            = False;   else
      if (ISFLAG("--version"))           license();                  else
      if (ISFLAG("--license"))           license();                  else
      if (ISFLAG("--exponential"))       workFactor = 1;             else 
      if (ISFLAG("--repetitive-best"))   redundant(aa->name);        else
      if (ISFLAG("--repetitive-fast"))   redundant(aa->name);        else
      if (ISFLAG("--fast"))              blockSize100k = 1;          else
      if (ISFLAG("--best"))              blockSize100k = 9;          else
      if (ISFLAG("--verbose"))           verbosity++;                else
      if (ISFLAG("--help"))              { usage ( progName ); exit ( 0 ); }
         else
         if (strncmp ( aa->name, "--", 2) == 0) {
            fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name );
            usage ( progName );
            exit ( 1 );
         }
   }

   if (verbosity > 4) verbosity = 4;
   if (opMode == OM_Z && smallMode && blockSize100k > 2) 
      blockSize100k = 2;

   if (opMode == OM_TEST && srcMode == SM_F2O) {
      fprintf ( stderr, "%s: -c and -t cannot be used together.\n",
                progName );
      exit ( 1 );
   }

   if (srcMode == SM_F2O && numFileNames == 0)
      srcMode = SM_I2O;

   if (opMode != OM_Z) blockSize100k = 0;

   if (srcMode == SM_F2F) {
      signal (SIGINT,  mySignalCatcher);
      signal (SIGTERM, mySignalCatcher);
#     if BZ_UNIX
      signal (SIGHUP,  mySignalCatcher);
#     endif
   }

   if (opMode == OM_Z) {
     if (srcMode == SM_I2O) {
        compress ( NULL );
     } else {
        decode = True;
        for (aa = argList; aa != NULL; aa = aa->link) {
           if (ISFLAG("--")) { decode = False; continue; }
           if (aa->name[0] == '-' && decode) continue;
           numFilesProcessed++;
           compress ( aa->name );
        }
     }
   } 
   else

   if (opMode == OM_UNZ) {
      unzFailsExist = False;
      if (srcMode == SM_I2O) {
         uncompress ( NULL );
      } else {
         decode = True;
         for (aa = argList; aa != NULL; aa = aa->link) {
            if (ISFLAG("--")) { decode = False; continue; }
            if (aa->name[0] == '-' && decode) continue;
            numFilesProcessed++;
            uncompress ( aa->name );
         }      
      }
      if (unzFailsExist) { 
         setExit(2); 
         exit(exitValue);
      }
   } 

   else {
      testFailsExist = False;
      if (srcMode == SM_I2O) {
         testf ( NULL );
      } else {
         decode = True;
         for (aa = argList; aa != NULL; aa = aa->link) {
	    if (ISFLAG("--")) { decode = False; continue; }
            if (aa->name[0] == '-' && decode) continue;
            numFilesProcessed++;
            testf ( aa->name );
	 }
      }
      if (testFailsExist && noisy) {
         fprintf ( stderr,
           "\n"
           "You can use the `bzip2recover' program to attempt to recover\n"
           "data from undamaged sections of corrupted files.\n\n"
         );
         setExit(2);
         exit(exitValue);
      }
   }

   /* Free the argument list memory to mollify leak detectors 
      (eg) Purify, Checker.  Serves no other useful purpose.
   */
   aa = argList;
   while (aa != NULL) {
      Cell* aa2 = aa->link;
      if (aa->name != NULL) free(aa->name);
      free(aa);
      aa = aa2;
   }

   return exitValue;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movl %edi, %ebp
movq $0x0, 0x15cb9(%rip) # 0x18dc0
xorl %eax, %eax
movb %al, 0x15cb9(%rip)      # 0x18dc8
movb %al, 0x15cb4(%rip)      # 0x18dc9
movb %al, 0x15caf(%rip)      # 0x18dca
movb $0x1, 0x15ca9(%rip)     # 0x18dcb
movl %eax, 0x15ca4(%rip)     # 0x18dcc
movl $0x9, 0x15c9e(%rip)     # 0x18dd0
movb %al, 0x15c9c(%rip)      # 0x18dd4
movb %al, 0x15c97(%rip)      # 0x18dd5
movl %eax, 0x15c94(%rip)     # 0x18dd8
movl %eax, 0x15c92(%rip)     # 0x18ddc
movl $0x1e, 0x15c8c(%rip)    # 0x18de0
movb %al, 0x15c8a(%rip)      # 0x18de4
movl %eax, 0x15c88(%rip)     # 0x18de8
leaq 0x8ba(%rip), %rbx       # 0x3a21
movl $0xb, %edi
movq %rbx, %rsi
callq 0x2170
movl $0x7, %edi
movq %rbx, %rsi
callq 0x2170
leaq 0x15c68(%rip), %rdi     # 0x18df0
leaq 0xef6a(%rip), %rbx      # 0x120f9
movq %rbx, %rsi
callq 0x3a9d
leaq 0x16062(%rip), %rdi     # 0x19200
movq %rbx, %rsi
callq 0x3a9d
movq (%r14), %rsi
leaq 0x16460(%rip), %rbx     # 0x19610
movq %rbx, %rdi
callq 0x3a9d
movq %rbx, 0x16861(%rip)     # 0x19a20
leaq 0x1644b(%rip), %rax     # 0x19611
movzbl -0x1(%rax), %ecx
cmpl $0x2f, %ecx
je 0x31d5
testl %ecx, %ecx
jne 0x31dc
jmp 0x31e1
movq %rax, 0x16844(%rip)     # 0x19a20
incq %rax
jmp 0x31c6
movq %rsp, %rbx
movq $0x0, (%rbx)
leaq 0xef0e(%rip), %rsi      # 0x12100
movq %rbx, %rdi
callq 0x3adf
leaq 0xef05(%rip), %rsi      # 0x12106
movq %rbx, %rdi
callq 0x3adf
movq (%rbx), %r12
cmpl $0x2, %ebp
jl 0x3230
movl %ebp, %ebx
movl $0x1, %r15d
movq (%r14,%r15,8), %rsi
movq %r12, %rdi
callq 0x3bc1
movq %rax, %r12
incq %r15
cmpq %r15, %rbx
jne 0x3219
movq %r12, (%rsp)
movl $0x7, 0x167ea(%rip)     # 0x19a28
movl $0x0, 0x15b90(%rip)     # 0x18dd8
testq %r12, %r12
je 0x32ac
movl $0x7, %ebx
xorl %ebp, %ebp
movb $0x1, %r15b
movq %r12, %r14
movq (%r14), %rdi
cmpb $0x2d, (%rdi)
jne 0x3273
cmpb $0x2d, 0x1(%rdi)
jne 0x326e
cmpb $0x0, 0x2(%rdi)
je 0x328e
testb %r15b, %r15b
jne 0x3291
incl %ebp
movl %ebp, 0x15b5d(%rip)     # 0x18dd8
callq 0x20e0
cmpl %eax, %ebx
jge 0x3291
movl %eax, 0x1679e(%rip)     # 0x19a28
movl %eax, %ebx
jmp 0x3291
xorl %r15d, %r15d
movq 0x8(%r14), %r14
testq %r14, %r14
jne 0x325a
xorl %ebx, %ebx
testl %ebp, %ebp
setne %bl
leal 0x1(,%rbx,2), %eax
incl %ebx
jmp 0x32b6
movl $0x1, %ebx
movl $0x1, %eax
movl %eax, 0x16770(%rip)     # 0x19a2c
movl $0x1, 0x1676a(%rip)     # 0x19a30
movq 0x16753(%rip), %r14     # 0x19a20
leaq 0xee37(%rip), %rsi      # 0x1210b
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
jne 0x32f5
leaq 0xee29(%rip), %rsi      # 0x12111
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
je 0x32ff
movl $0x2, 0x16731(%rip)     # 0x19a30
leaq 0xee11(%rip), %rsi      # 0x12117
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
jne 0x334f
leaq 0xee03(%rip), %rsi      # 0x1211d
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
jne 0x334f
leaq 0xedf5(%rip), %rsi      # 0x12123
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
jne 0x334f
leaq 0xede6(%rip), %rsi      # 0x12128
movq %r14, %rdi
callq 0x2290
testq %rax, %rax
je 0x335f
movl $0x2, 0x166d7(%rip)     # 0x19a30
movl %ebx, 0x166cd(%rip)     # 0x19a2c
testq %r12, %r12
je 0x378e
leaq 0xec95(%rip), %rbx      # 0x12004
leaq 0xecb2(%rip), %rbp      # 0x12028
movq %r12, %r13
movq (%r13), %rdi
cmpb $0x2d, (%rdi)
jne 0x34ff
cmpb $0x2d, 0x1(%rdi)
jne 0x3396
cmpb $0x0, 0x2(%rdi)
je 0x350c
movb 0x1(%rdi), %al
cmpb $0x2d, %al
je 0x34ff
movl $0x2, %r14d
movzbl %al, %eax
cmpl $0x55, %eax
jg 0x33d3
leal -0x31(%rax), %ecx
cmpl $0x8, %ecx
ja 0x34be
movslq (%rbx,%rcx,4), %rax
addq %rbx, %rax
jmpq *%rax
movl $0x1, 0x15a02(%rip)     # 0x18dd0
jmp 0x34b2
leal -0x63(%rax), %ecx
cmpl $0x17, %ecx
ja 0x34c5
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
movl $0x2, 0x16639(%rip)     # 0x19a2c
jmp 0x34b2
movb $0x1, 0x159cb(%rip)     # 0x18dca
jmp 0x34b2
movl $0x1, 0x16622(%rip)     # 0x19a30
jmp 0x34b2
movb $0x1, 0x159af(%rip)     # 0x18dc9
jmp 0x34b2
movl $0x2, 0x16607(%rip)     # 0x19a30
jmp 0x34b2
incl 0x15998(%rip)           # 0x18dcc
jmp 0x34b2
movb $0x0, 0x1598e(%rip)     # 0x18dcb
jmp 0x34b2
movb $0x1, 0x15982(%rip)     # 0x18dc8
jmp 0x34b2
movl $0x3, 0x165de(%rip)     # 0x19a30
jmp 0x34b2
movl $0x5, 0x15972(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x3, 0x15966(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x4, 0x1595a(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x8, 0x1594e(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x2, 0x15942(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x6, 0x15936(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x7, 0x1592a(%rip)     # 0x18dd0
jmp 0x34b2
movl $0x9, 0x1591e(%rip)     # 0x18dd0
movb (%rdi,%r14), %al
incq %r14
jmp 0x33a7
cmpl $0x4c, %eax
je 0x34ce
jmp 0x34f7
cmpl $0x56, %eax
jne 0x39f7
movq 0x14b23(%rip), %rax     # 0x17ff8
movq (%rax), %r15
callq 0x5532
movq %r15, %rdi
leaq 0xf7c4(%rip), %rsi      # 0x12cab
movq %rax, %rdx
xorl %eax, %eax
callq 0x2180
movq (%r13), %rdi
jmp 0x34b2
testl %eax, %eax
jne 0x39f7
movq 0x8(%r13), %r13
testq %r13, %r13
jne 0x3379
testq %r12, %r12
je 0x378e
leaq 0xec24(%rip), %r14      # 0x12140
leaq 0xec26(%rip), %r15      # 0x12149
movq %r12, %rbx
movq (%rbx), %rbp
movb (%rbp), %r13b
cmpb $0x2d, %r13b
jne 0x3543
cmpb $0x2d, 0x1(%rbp)
jne 0x3543
cmpb $0x0, 0x2(%rbp)
je 0x378e
movq %rbp, %rdi
movq %r14, %rsi
callq 0x2160
testl %eax, %eax
je 0x36db
movq %rbp, %rdi
movq %r15, %rsi
callq 0x2160
testl %eax, %eax
je 0x36ea
movq %rbp, %rdi
leaq 0xebe3(%rip), %rsi      # 0x12156
callq 0x2160
testl %eax, %eax
je 0x36f9
movq %rbp, %rdi
leaq 0xebd7(%rip), %rsi      # 0x12161
callq 0x2160
testl %eax, %eax
je 0x3705
movq %rbp, %rdi
leaq 0xebc8(%rip), %rsi      # 0x12169
callq 0x2160
testl %eax, %eax
je 0x370e
movq %rbp, %rdi
leaq 0xebb8(%rip), %rsi      # 0x12170
callq 0x2160
testl %eax, %eax
je 0x371a
movq %rbp, %rdi
leaq 0xeba8(%rip), %rsi      # 0x12177
callq 0x2160
testl %eax, %eax
je 0x3723
movq %rbp, %rdi
leaq 0xeb99(%rip), %rsi      # 0x1217f
callq 0x2160
testl %eax, %eax
je 0x372c
movq %rbp, %rdi
leaq 0xeb8a(%rip), %rsi      # 0x12187
callq 0x2160
testl %eax, %eax
je 0x3761
movq %rbp, %rdi
leaq 0xeb7d(%rip), %rsi      # 0x12191
callq 0x2160
testl %eax, %eax
je 0x3768
movq %rbp, %rdi
leaq 0xeb70(%rip), %rsi      # 0x1219b
callq 0x2160
testl %eax, %eax
je 0x3735
movq %rbp, %rdi
leaq 0xeb67(%rip), %rsi      # 0x121a9
callq 0x2160
testl %eax, %eax
je 0x376f
movq %rbp, %rdi
leaq 0xeb62(%rip), %rsi      # 0x121bb
callq 0x2160
testl %eax, %eax
je 0x3779
movq %rbp, %rdi
leaq 0xeb5d(%rip), %rsi      # 0x121cd
callq 0x2160
testl %eax, %eax
je 0x3741
movq %rbp, %rdi
leaq 0xeb4d(%rip), %rsi      # 0x121d4
callq 0x2160
testl %eax, %eax
je 0x374d
movq %rbp, %rdi
leaq 0xeb3d(%rip), %rsi      # 0x121db
callq 0x2160
testl %eax, %eax
je 0x3759
movq %rbp, %rdi
leaq 0xeb30(%rip), %rsi      # 0x121e5
callq 0x2160
testl %eax, %eax
je 0x39fc
cmpb $0x2d, %r13b
jne 0x3781
cmpb $0x2d, 0x1(%rbp)
jne 0x3781
jmp 0x3a19
movl $0x2, 0x16347(%rip)     # 0x19a2c
jmp 0x3781
movl $0x2, 0x1633c(%rip)     # 0x19a30
jmp 0x3781
movl $0x1, 0x1632d(%rip)     # 0x19a30
jmp 0x3781
movb $0x1, 0x156be(%rip)     # 0x18dca
jmp 0x3781
movl $0x3, 0x16318(%rip)     # 0x19a30
jmp 0x3781
movb $0x1, 0x156a8(%rip)     # 0x18dc9
jmp 0x3781
movb $0x1, 0x1569e(%rip)     # 0x18dc8
jmp 0x3781
movb $0x0, 0x15698(%rip)     # 0x18dcb
jmp 0x3781
movl $0x1, 0x156a1(%rip)     # 0x18de0
jmp 0x3781
movl $0x1, 0x15685(%rip)     # 0x18dd0
jmp 0x3781
movl $0x9, 0x15679(%rip)     # 0x18dd0
jmp 0x3781
incl 0x1566d(%rip)           # 0x18dcc
jmp 0x3781
callq 0x23cb
jmp 0x3781
callq 0x23a6
jmp 0x3781
movq %rbp, %rdi
callq 0x2384
jmp 0x3781
movq %rbp, %rdi
callq 0x2362
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
jne 0x3526
cmpl $0x5, 0x15637(%rip)     # 0x18dcc
jl 0x37a1
movl $0x4, 0x1562b(%rip)     # 0x18dcc
movl 0x16289(%rip), %eax     # 0x19a30
cmpl $0x1, %eax
jne 0x37d6
cmpb $0x0, 0x15615(%rip)     # 0x18dc8
je 0x37d6
cmpl $0x3, 0x15614(%rip)     # 0x18dd0
jl 0x37d6
movl $0x2, 0x15608(%rip)     # 0x18dd0
movl 0x1625e(%rip), %ecx     # 0x19a2c
cmpl $0x2, %ecx
sete %dl
jmp 0x37f6
cmpl $0x3, %eax
sete %sil
movl 0x16249(%rip), %ecx     # 0x19a2c
cmpl $0x2, %ecx
sete %dl
andb %dl, %sil
cmpb $0x1, %sil
je 0x3a0f
testb %dl, %dl
je 0x3812
cmpl $0x0, 0x155d7(%rip)     # 0x18dd8
jne 0x3812
movl $0x1, 0x1621f(%rip)     # 0x19a2c
movl $0x1, %ecx
cmpl $0x1, %eax
je 0x3821
movl $0x0, 0x155af(%rip)     # 0x18dd0
cmpl $0x3, %ecx
jne 0x385a
leaq 0x40e(%rip), %r14       # 0x3c3b
movl $0x2, %edi
movq %r14, %rsi
callq 0x2170
movl $0xf, %edi
movq %r14, %rsi
callq 0x2170
movl $0x1, %edi
movq %r14, %rsi
callq 0x2170
movl 0x161d6(%rip), %eax     # 0x19a30
cmpl $0x2, %eax
je 0x3879
cmpl $0x1, %eax
jne 0x38c0
cmpl $0x1, 0x161c1(%rip)     # 0x19a2c
jne 0x38e0
xorl %edi, %edi
callq 0x3c65
jmp 0x39ba
movb $0x0, 0x15555(%rip)     # 0x18dd5
cmpl $0x1, 0x161a5(%rip)     # 0x19a2c
jne 0x3925
xorl %edi, %edi
callq 0x43a5
cmpb $0x0, 0x1553a(%rip)     # 0x18dd5
je 0x39ba
movl 0x15541(%rip), %edi     # 0x18de8
cmpl $0x1, %edi
jg 0x38bb
movl $0x2, 0x15532(%rip)     # 0x18de8
movl $0x2, %edi
callq 0x2260
movb $0x0, 0x1550d(%rip)     # 0x18dd4
cmpl $0x1, 0x1615e(%rip)     # 0x19a2c
jne 0x396a
xorl %edi, %edi
callq 0x4bb1
jmp 0x39a8
testq %r12, %r12
je 0x39e2
movb $0x1, %bpl
movq %r12, %rbx
movq (%rbx), %rdi
cmpb $0x2d, (%rdi)
jne 0x3908
cmpb $0x2d, 0x1(%rdi)
jne 0x3903
cmpb $0x0, 0x2(%rdi)
je 0x3921
testb %bpl, %bpl
jne 0x3913
incl 0x154ce(%rip)           # 0x18ddc
callq 0x3c65
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
jne 0x38ef
jmp 0x39ba
xorl %ebp, %ebp
jmp 0x3913
testq %r12, %r12
je 0x39e2
movb $0x1, %bpl
movq %r12, %rbx
movq (%rbx), %rdi
cmpb $0x2d, (%rdi)
jne 0x394d
cmpb $0x2d, 0x1(%rdi)
jne 0x3948
cmpb $0x0, 0x2(%rdi)
je 0x3966
testb %bpl, %bpl
jne 0x3958
incl 0x15489(%rip)           # 0x18ddc
callq 0x43a5
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
jne 0x3934
jmp 0x3894
xorl %ebp, %ebp
jmp 0x3958
testq %r12, %r12
je 0x39a8
movb $0x1, %bpl
movq %r12, %rbx
movq (%rbx), %rdi
cmpb $0x2d, (%rdi)
jne 0x398e
cmpb $0x2d, 0x1(%rdi)
jne 0x3989
cmpb $0x0, 0x2(%rdi)
je 0x39a4
testb %bpl, %bpl
jne 0x3999
incl 0x15448(%rip)           # 0x18ddc
callq 0x4bb1
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
jne 0x3975
jmp 0x39a8
xorl %ebp, %ebp
jmp 0x3999
cmpb $0x0, 0x15425(%rip)     # 0x18dd4
je 0x39ba
cmpb $0x0, 0x15413(%rip)     # 0x18dcb
jne 0x3a14
testq %r12, %r12
je 0x39e2
movq (%r12), %rdi
movq 0x8(%r12), %rbx
testq %rdi, %rdi
je 0x39d2
callq 0x2050
movq %r12, %rdi
callq 0x2050
movq %rbx, %r12
testq %rbx, %rbx
jne 0x39bf
movl 0x15400(%rip), %eax     # 0x18de8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x22f4
movq 0x1601d(%rip), %rdi     # 0x19a20
callq 0x22c0
xorl %edi, %edi
callq 0x2260
callq 0x23f0
callq 0x2418
movq %rbp, %rdi
callq 0x232b