// File: /workspace/github_c_makefile_star2_O3/fukunagatsu[P]RIblast/sais.c
// Function: sais_main
static
sais_index_type
sais_main(const void *T, sais_index_type *SA,
          sais_index_type fs, sais_index_type n, sais_index_type k, int cs,
          sais_bool_type isbwt) {
  sais_index_type *C, *B, *D, *RA, *b;
  sais_index_type i, j, m, p, q, t, name, pidx = 0, newfs;
  sais_index_type c0, c1;
  unsigned int flags;

  assert((T != NULL) && (SA != NULL));
  assert((0 <= fs) && (0 < n) && (1 <= k));

  if(k <= MINBUCKETSIZE) {
    if((C = SAIS_MYMALLOC(k, sais_index_type)) == NULL) { return -2; }
    if(k <= fs) {
      B = SA + (n + fs - k);
      flags = 1;
    } else {
      if((B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) { SAIS_MYFREE(C, k, sais_index_type); return -2; }
      flags = 3;
    }
  } else if(k <= fs) {
    C = SA + (n + fs - k);
    if(k <= (fs - k)) {
      B = C - k;
      flags = 0;
    } else if(k <= (MINBUCKETSIZE * 4)) {
      if((B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) { return -2; }
      flags = 2;
    } else {
      B = C;
      flags = 8;
    }
  } else {
    if((C = B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) { return -2; }
    flags = 4 | 8;
  }
  if((n <= SAIS_LMSSORT2_LIMIT) && (2 <= (n / k))) {
    if(flags & 1) { flags |= ((k * 2) <= (fs - k)) ? 32 : 16; }
    else if((flags == 0) && ((k * 2) <= (fs - k * 2))) { flags |= 32; }
  }

  /* stage 1: reduce the problem by at least 1/2
     sort all the LMS-substrings */
  getCounts(T, C, n, k, cs); getBuckets(C, B, k, 1); /* find ends of buckets */
  for(i = 0; i < n; ++i) { SA[i] = 0; }
  b = &t; i = n - 1; j = n; m = 0; c0 = chr(n - 1);
  do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) >= c1));
  for(; 0 <= i;) {
    do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) <= c1));
    if(0 <= i) {
      *b = j; b = SA + --B[c1]; j = i; ++m;
      do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) >= c1));
    }
  }

  if(1 < m) {
    if(flags & (16 | 32)) {
      if(flags & 16) {
        if((D = SAIS_MYMALLOC(k * 2, sais_index_type)) == NULL) {
          if(flags & (1 | 4)) { SAIS_MYFREE(C, k, sais_index_type); }
          if(flags & 2) { SAIS_MYFREE(B, k, sais_index_type); }
          return -2;
        }
      } else {
        D = B - k * 2;
      }
      assert((j + 1) < n);
      ++B[chr(j + 1)];
      for(i = 0, j = 0; i < k; ++i) {
        j += C[i];
        if(B[i] != j) { assert(SA[B[i]] != 0); SA[B[i]] += n; }
        D[i] = D[i + k] = 0;
      }
      LMSsort2(T, SA, C, B, D, n, k, cs);
      name = LMSpostproc2(SA, n, m);
      if(flags & 16) { SAIS_MYFREE(D, k * 2, sais_index_type); }
    } else {
      LMSsort1(T, SA, C, B, n, k, cs);
      name = LMSpostproc1(T, SA, n, m, cs);
    }
  } else if(m == 1) {
    *b = j + 1;
    name = 1;
  } else {
    name = 0;
  }

  /* stage 2: solve the reduced problem
     recurse if names are not yet unique */
  if(name < m) {
    if(flags & 4) { SAIS_MYFREE(C, k, sais_index_type); }
    if(flags & 2) { SAIS_MYFREE(B, k, sais_index_type); }
    newfs = (n + fs) - (m * 2);
    if((flags & (1 | 4 | 8)) == 0) {
      if((k + name) <= newfs) { newfs -= k; }
      else { flags |= 8; }
    }
    assert((n >> 1) <= (newfs + m));
    RA = SA + m + newfs;
    for(i = m + (n >> 1) - 1, j = m - 1; m <= i; --i) {
      if(SA[i] != 0) {
        RA[j--] = SA[i] - 1;
      }
    }
    if(sais_main(RA, SA, newfs, m, name, sizeof(sais_index_type), 0) != 0) {
      if(flags & 1) { SAIS_MYFREE(C, k, sais_index_type); }
      return -2;
    }

    i = n - 1; j = m - 1; c0 = chr(n - 1);
    do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) >= c1));
    for(; 0 <= i;) {
      do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) <= c1));
      if(0 <= i) {
        RA[j--] = i + 1;
        do { c1 = c0; } while((0 <= --i) && ((c0 = chr(i)) >= c1));
      }
    }
    for(i = 0; i < m; ++i) { SA[i] = RA[SA[i]]; }
    if(flags & 4) {
      if((C = B = SAIS_MYMALLOC(k, int)) == NULL) { return -2; }
    }
    if(flags & 2) {
      if((B = SAIS_MYMALLOC(k, int)) == NULL) {
        if(flags & 1) { SAIS_MYFREE(C, k, sais_index_type); }
        return -2;
      }
    }
  }

  /* stage 3: induce the result for the original problem */
  if(flags & 8) { getCounts(T, C, n, k, cs); }
  /* put all left-most S characters into their buckets */
  if(1 < m) {
    getBuckets(C, B, k, 1); /* find ends of buckets */
    i = m - 1, j = n, p = SA[m - 1], c1 = chr(p);
    do {
      q = B[c0 = c1];
      while(q < j) { SA[--j] = 0; }
      do {
        SA[--j] = p;
        if(--i < 0) { break; }
        p = SA[i];
      } while((c1 = chr(p)) == c0);
    } while(0 <= i);
    while(0 < j) { SA[--j] = 0; }
  }
  if(isbwt == 0) { induceSA(T, SA, C, B, n, k, cs); }
  else { pidx = computeBWT(T, SA, C, B, n, k, cs); }
  if(flags & (1 | 4)) { SAIS_MYFREE(C, k, sais_index_type); }
  if(flags & 2) { SAIS_MYFREE(B, k, sais_index_type); }

  return pidx;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
testq %rdi, %rdi
je 0x1baf0
movl %r9d, %r15d
movl %edx, %r9d
testl %edx, %edx
js 0x1bb0f
testl %ecx, %ecx
jle 0x1bb0f
movl %r8d, %ebx
testl %r8d, %r8d
jle 0x1bb0f
movq %rsi, %r14
movq %rdi, %r13
cmpl $0x100, %ebx            # imm = 0x100
movq %rcx, 0x18(%rsp)
movq %r9, 0x58(%rsp)
movq %rbx, 0x60(%rsp)
ja 0x1a260
movq %r13, 0x10(%rsp)
leal (,%rbx,4), %r13d
movq %r13, %rdi
callq 0x3300
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testq %rax, %rax
je 0x1b869
movq %rax, %r12
movq 0x58(%rsp), %r9
cmpl %ebx, %r9d
jae 0x1a2cd
movq %r13, %rdi
callq 0x3300
testq %rax, %rax
je 0x1b69d
xorl %ecx, %ecx
movq 0x10(%rsp), %r13
movl $0x3, %esi
movq %r12, %rbp
movq %rax, %r12
jmp 0x1a288
movl %r9d, %eax
subl %ebx, %eax
jae 0x1a294
movl %ebx, %edi
shlq $0x2, %rdi
callq 0x3300
testq %rax, %rax
je 0x1b864
movq %rax, %r12
movl $0xc, %esi
xorl %ecx, %ecx
movq %rax, %rbp
movq 0x58(%rsp), %r9
movq 0x60(%rsp), %rbx
jmp 0x1a30d
addl %r9d, %ecx
subl %ebx, %ecx
movslq %ecx, %rcx
leaq (%r14,%rcx,4), %rbp
cmpl %ebx, %eax
jge 0x1a2f1
cmpl $0x400, %ebx            # imm = 0x400
ja 0x1a303
leal (,%rbx,4), %edi
callq 0x3300
testq %rax, %rax
je 0x1b864
movq %rax, %r12
movl $0x2, %esi
xorl %ecx, %ecx
jmp 0x1a288
movq 0x18(%rsp), %rax
addl %r9d, %eax
subl %ebx, %eax
cltq
leaq (%r14,%rax,4), %rax
xorl %ecx, %ecx
movq 0x10(%rsp), %r13
movl $0x1, %esi
movq %r12, %rbp
movq %rax, %r12
jmp 0x1a30d
movl %ebx, %eax
shlq $0x2, %rax
movq %rbp, %r12
subq %rax, %r12
xorl %esi, %esi
movb $0x1, %cl
jmp 0x1a30d
movl $0x8, %esi
xorl %ecx, %ecx
movq %rbp, %r12
movq 0x18(%rsp), %rax
cmpl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
ja 0x1a358
xorl %edx, %edx
divl %ebx
cmpl $0x2, %eax
jb 0x1a358
testb $0x1, %sil
jne 0x1a341
testb %cl, %cl
je 0x1a358
leal (%rbx,%rbx), %eax
movl %r9d, %ecx
subl %eax, %ecx
xorl %esi, %esi
cmpl %ecx, %eax
setle %sil
shll $0x5, %esi
jmp 0x1a358
leal (%rbx,%rbx), %eax
movl %r9d, %ecx
subl %ebx, %ecx
xorl %edx, %edx
cmpl %ecx, %eax
setle %dl
shll $0x4, %edx
addl %edx, %esi
addl $0x10, %esi
movq %rsi, 0x40(%rsp)
movl %ebx, %eax
movq %rax, 0x20(%rsp)
leaq (,%rax,4), %rdx
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq %rdx, 0x48(%rsp)
callq 0x3140
movl 0x18(%rsp), %esi
cmpl $0x4, %r15d
jne 0x1a38e
movl (%r13,%rbx,4), %eax
jmp 0x1a394
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %rsi
jne 0x1a381
xorl %eax, %eax
xorl %ecx, %ecx
movq 0x20(%rsp), %rdx
addl (%rbp,%rax,4), %ecx
movl %ecx, (%r12,%rax,4)
incq %rax
cmpq %rax, %rdx
jne 0x1a3ab
movq %rsi, 0x10(%rsp)
leaq (,%rsi,4), %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x3140
movq 0x18(%rsp), %rax
leal -0x1(%rax), %r11d
cmpl $0x4, %r15d
movq 0x40(%rsp), %rbx
jne 0x1a3ed
movl (%r13,%r11,4), %ecx
jmp 0x1a3f3
movzbl (%r13,%r11), %ecx
leaq -0x1(%r11), %rdx
movl %r11d, %eax
movq %r11, 0x28(%rsp)
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r9
testl %eax, %eax
jle 0x1a4ed
movl %edx, %esi
cmpl $0x4, %r15d
jne 0x1a420
movl (%r13,%rsi,4), %esi
jmp 0x1a426
movzbl (%r13,%rsi), %esi
decl %eax
decq %rdx
cmpl %ecx, %esi
movl %esi, %ecx
jge 0x1a409
movq %r12, 0x38(%rsp)
leaq 0x84(%rsp), %rcx
movq $0x0, 0x8(%rsp)
movq 0x18(%rsp), %rdx
movl %edx, %edi
movl %eax, %r8d
decl %eax
movl %eax, %r9d
movl %esi, %edx
movq %r8, %r12
subq $0x1, %r12
jb 0x1a4f6
movl %edx, %esi
movl %r9d, %eax
cmpl $0x4, %r15d
jne 0x1a477
movl (%r13,%r12,4), %edx
jmp 0x1a47d
movzbl -0x1(%r13,%r8), %edx
leal -0x1(%rax), %r9d
movq %r12, %r8
cmpl %esi, %edx
jle 0x1a45b
movl %edi, (%rcx)
movslq %esi, %rcx
movq 0x38(%rsp), %r8
movslq (%r8,%rcx,4), %rsi
leaq -0x1(%rsi), %rdi
movl %edi, (%r8,%rcx,4)
leaq (%r14,%rsi,4), %rcx
addq $-0x4, %rcx
movq 0x8(%rsp), %rsi
incl %esi
movq %rsi, 0x8(%rsp)
movl %eax, %edi
decq %rdi
movq 0x10(%rsp), %r9
testl %eax, %eax
jle 0x1a4fe
movl %edi, %esi
cmpl $0x4, %r15d
jne 0x1a4cf
movl (%r13,%rsi,4), %esi
jmp 0x1a4d5
movzbl (%r13,%rsi), %esi
decl %eax
decq %rdi
cmpl %edx, %esi
movl %esi, %edx
jge 0x1a4bc
movl %r12d, %edi
testl %eax, %eax
jns 0x1a44e
jmp 0x1a4fe
xorl %edi, %edi
xorl %edx, %edx
jmp 0x1af7d
movl %edi, %r12d
movq 0x10(%rsp), %r9
movq 0x8(%rsp), %rdi
cmpl $0x2, %edi
setge %dl
movq %rbp, 0x50(%rsp)
jl 0x1a53b
testb $0x30, %bl
movl %edx, 0x34(%rsp)
je 0x1a562
movq 0x60(%rsp), %rax
leal (%rax,%rax), %edi
shlq $0x2, %rdi
testb $0x10, %bl
jne 0x1a5ed
movq 0x38(%rsp), %rax
subq %rdi, %rax
jmp 0x1a605
xorl %edx, %edx
movl $0x0, %ebp
cmpl $0x1, %edi
jne 0x1af0d
incl %r12d
movl %r12d, (%rcx)
movl $0x1, %edi
xorl %edx, %edx
movl $0x1, %ebp
jmp 0x1af0d
movq 0x38(%rsp), %r12
cmpq %r12, %rbp
jne 0x1a5ad
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1a599
movl (%r13,%rbx,4), %eax
jmp 0x1a59f
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %r9
jne 0x1a58c
xorl %eax, %eax
xorl %ecx, %ecx
movl (%rbp,%rax,4), %edx
addl %ecx, %edx
movl %ecx, (%r12,%rax,4)
incq %rax
movl %edx, %ecx
cmpq %rax, %r10
jne 0x1a5b1
cmpl $0x4, %r15d
jne 0x1aaa6
movl (%r13,%r11,4), %edx
movslq %edx, %rax
movq 0x18(%rsp), %r8
leal -0x2(%r8), %ecx
movslq %r8d, %rsi
movl -0x8(%r13,%rsi,4), %esi
jmp 0x1aac0
callq 0x3300
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
testq %rax, %rax
je 0x1b8ac
movl %r12d, %ecx
leaq 0x1(%rcx), %rdx
movq 0x18(%rsp), %r12
cmpl %r12d, %edx
jge 0x1bb4d
cmpl $0x4, %r15d
movq 0x38(%rsp), %rbx
jne 0x1a62c
movl 0x4(%r13,%rcx,4), %ecx
jmp 0x1a632
movzbl (%r13,%rdx), %ecx
movslq %ecx, %rcx
incl (%rbx,%rcx,4)
leaq (%rax,%r10,4), %rcx
xorl %edx, %edx
xorl %esi, %esi
xorl %edi, %edi
addl (%rbp,%rsi,4), %edi
movslq (%rbx,%rsi,4), %r8
cmpl %edi, %r8d
je 0x1a663
movl (%r14,%r8,4), %r9d
testl %r9d, %r9d
je 0x1ba55
addl %r12d, %r9d
movl %r9d, (%r14,%r8,4)
movl %edx, (%rcx,%rsi,4)
movl %edx, (%rax,%rsi,4)
incq %rsi
cmpq %rsi, %r10
jne 0x1a642
cmpq %rbx, %rbp
je 0x1bb6c
xorl %ecx, %ecx
xorl %edx, %edx
movl (%rbp,%rcx,4), %esi
addl %edx, %esi
movl %edx, (%rbx,%rcx,4)
incq %rcx
movl %esi, %edx
cmpq %rcx, %r10
jne 0x1a67e
cmpl $0x4, %r15d
jne 0x1a6ab
movl (%r13,%r11,4), %edx
movslq %edx, %rsi
leal -0x2(%r12), %ecx
movl (%r13,%rcx,4), %edi
jmp 0x1a6be
movzbl (%r13,%r11), %esi
leal -0x2(%r12), %ecx
movzbl (%r13,%rcx), %edi
movl %esi, %edx
movslq (%rbx,%rsi,4), %rsi
xorl %r8d, %r8d
cmpl %edx, %edi
setl %r8b
addl %r12d, %ecx
negl %r8d
xorl %ecx, %r8d
leaq (%r14,%rsi,4), %rdi
addq $0x4, %rdi
movl %r8d, -0x4(%rdi)
xorl %esi, %esi
xorl %ecx, %ecx
movl (%r14,%rsi,4), %r9d
testl %r9d, %r9d
jle 0x1a71e
xorl %r8d, %r8d
cmpl %r12d, %r9d
movl $0x0, %r11d
cmovgel %r12d, %r11d
setge %r10b
subl %r11d, %r9d
movslq %r9d, %r11
cmpl $0x4, %r15d
jne 0x1a72c
movl (%r13,%r11,4), %r9d
cmpl 0x4(%r13,%r11,4), %r9d
jge 0x1a73d
jmp 0x1b9d9
jns 0x1a7e1
notl %r9d
jmp 0x1a7dd
movzbl (%r13,%r11), %r9d
cmpb 0x1(%r13,%r11), %r9b
jb 0x1b9d9
cmpl %edx, %r9d
je 0x1a75d
subq %r14, %rdi
shrq $0x2, %rdi
movslq %edx, %rdx
movl %edi, (%rbx,%rdx,4)
movslq %r9d, %rdx
movslq (%rbx,%rdx,4), %rdx
leaq (%r14,%rdx,4), %rdi
movl %r9d, %edx
movq %rdi, %rbx
subq %r14, %rbx
sarq $0x2, %rbx
cmpq %rsi, %rbx
jle 0x1b9f8
leaq -0x1(%r11), %r12
cmpl $0x4, %r15d
jne 0x1a781
movl -0x4(%r13,%r11,4), %r11d
jmp 0x1a787
movzbl (%r13,%r12), %r11d
movb %r10b, %r8b
addl %r8d, %ecx
addl %r9d, %r9d
xorl %r8d, %r8d
cmpl %edx, %r11d
setl %r8b
orl %r9d, %r8d
movslq %r8d, %r8
cmpl %ecx, (%rax,%r8,4)
je 0x1a7af
addl 0x18(%rsp), %r12d
movl %ecx, (%rax,%r8,4)
movq 0x20(%rsp), %r10
xorl %r8d, %r8d
cmpl %edx, %r11d
setl %r8b
negl %r8d
xorl %r12d, %r8d
movl %r8d, (%rdi)
addq $0x4, %rdi
xorl %r9d, %r9d
movq 0x38(%rsp), %rbx
movq 0x28(%rsp), %r11
movq 0x18(%rsp), %r12
movl %r9d, (%r14,%rsi,4)
incq %rsi
cmpq %rsi, 0x10(%rsp)
jne 0x1a6e4
movl %r11d, %edx
movl %edx, %esi
movl (%r14,%rsi,4), %edi
testl %edi, %edi
setle %r8b
cmpl %r12d, %edi
setge %r9b
orb %r8b, %r9b
jne 0x1a823
addl %r12d, %edi
leaq (%r14,%rsi,4), %rsi
movl %edi, (%rsi)
movl -0x4(%rsi), %edi
addq $-0x4, %rsi
decl %edx
subl %r12d, %edi
jl 0x1a813
movl %edi, (%rsi)
leal -0x1(%rdx), %esi
testl %edx, %edx
movl %esi, %edx
jg 0x1a7f2
xorl %edx, %edx
xorl %esi, %esi
addl (%rbp,%rdx,4), %esi
movl %esi, (%rbx,%rdx,4)
incq %rdx
cmpq %rdx, %r10
jne 0x1a830
incl %ecx
movslq (%rbx), %rdx
leaq (%r14,%rdx,4), %rdx
xorl %edi, %edi
movq %r11, %rsi
movl (%r14,%rsi,4), %r9d
testl %r9d, %r9d
jle 0x1a887
xorl %r8d, %r8d
cmpl %r12d, %r9d
movl $0x0, %r11d
cmovgel %r12d, %r11d
setge %r10b
subl %r11d, %r9d
movslq %r9d, %r11
cmpl $0x4, %r15d
jne 0x1a891
movl (%r13,%r11,4), %r9d
cmpl 0x4(%r13,%r11,4), %r9d
jle 0x1a8a2
jmp 0x1ba17
movq 0x10(%rsp), %r9
jmp 0x1a94d
movzbl (%r13,%r11), %r9d
cmpb 0x1(%r13,%r11), %r9b
ja 0x1ba17
cmpl %edi, %r9d
je 0x1a8c2
subq %r14, %rdx
shrq $0x2, %rdx
movslq %edi, %rdi
movl %edx, (%rbx,%rdi,4)
movslq %r9d, %rdx
movslq (%rbx,%rdx,4), %rdx
leaq (%r14,%rdx,4), %rdx
movl %r9d, %edi
movq %rdx, %rbx
subq %r14, %rbx
sarq $0x2, %rbx
cmpq %rsi, %rbx
jg 0x1ba36
leaq -0x1(%r11), %r12
cmpl $0x4, %r15d
jne 0x1a8e6
movl -0x4(%r13,%r11,4), %r11d
jmp 0x1a8ec
movzbl (%r13,%r12), %r11d
movb %r10b, %r8b
addl %r8d, %ecx
addl %r9d, %r9d
xorl %r8d, %r8d
cmpl %edi, %r11d
setg %r8b
orl %r9d, %r8d
movslq %r8d, %r8
cmpl %ecx, (%rax,%r8,4)
je 0x1a914
addl 0x18(%rsp), %r12d
movl %ecx, (%rax,%r8,4)
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r9
movl $0xfffffffe, %r8d       # imm = 0xFFFFFFFE
subl %r12d, %r8d
cmpl %edi, %r11d
cmovlel %r12d, %r8d
movl %r8d, -0x4(%rdx)
addq $-0x4, %rdx
movl $0x0, (%r14,%rsi,4)
movq 0x38(%rsp), %rbx
movq 0x28(%rsp), %r11
movq 0x18(%rsp), %r12
leaq -0x1(%rsi), %r8
testq %rsi, %rsi
movq %r8, %rsi
jg 0x1a84d
movq %r9, %rdx
negq %rdx
xorl %ebp, %ebp
movl $0x1, %ecx
movq 0x40(%rsp), %rbx
movl -0x4(%r14,%rcx,4), %esi
testl %esi, %esi
jns 0x1a9b9
notl %esi
xorl %edi, %edi
cmpl %r12d, %esi
setge %dil
addl %edi, %ebp
movl %esi, -0x4(%r14,%rcx,4)
leaq (%rdx,%rcx), %rsi
incq %rsi
incq %rcx
cmpq $0x1, %rsi
jne 0x1a96f
leaq 0xc6242(%rip), %rdi     # 0xe0be3
leaq 0xc60f0(%rip), %rsi     # 0xe0a98
leaq 0xc6212(%rip), %rcx     # 0xe0bc1
movl $0xdc, %edx
callq 0x3170
leaq -0x1(%rcx), %rdx
movq 0x8(%rsp), %rdi
cmpl %edx, %edi
jle 0x1aa21
cmpl %r12d, %ecx
jge 0x1aa02
movl (%r14,%rcx,4), %esi
testl %esi, %esi
jns 0x1a9fa
notl %esi
xorl %edi, %edi
cmpl %r12d, %esi
setge %dil
addl %edi, %ebp
movslq %edx, %rdi
incl %edx
movl %esi, (%r14,%rdi,4)
movq 0x8(%rsp), %rdi
movl $0x0, (%r14,%rcx,4)
cmpl %edi, %edx
je 0x1aa21
incq %rcx
cmpq %rcx, %r9
jne 0x1a9cb
leaq 0xc61e6(%rip), %rdi     # 0xe0bef
leaq 0xc6088(%rip), %rsi     # 0xe0a98
leaq 0xc61aa(%rip), %rcx     # 0xe0bc1
movl $0xe0, %edx
callq 0x3170
movl %edi, %ecx
cmpl %edi, %ebp
jge 0x1aa65
leal 0x1(%rbp), %edx
incq %rcx
movl -0x8(%r14,%rcx,4), %esi
xorl %edi, %edi
cmpl %r12d, %esi
setge %dil
movl $0x0, %r8d
cmovgel %r12d, %r8d
subl %r8d, %esi
subl %edi, %edx
movq 0x8(%rsp), %rdi
sarl %esi
addl %edi, %esi
movslq %esi, %rsi
movl %edx, (%r14,%rsi,4)
decq %rcx
cmpq $0x1, %rcx
ja 0x1aa2d
jmp 0x1aa7c
xorl %edx, %edx
movl (%r14,%rdx,4), %esi
subl %r12d, %esi
jl 0x1aa74
movl %esi, (%r14,%rdx,4)
incq %rdx
cmpq %rdx, %rcx
jne 0x1aa67
testb $0x10, %bl
je 0x1af09
movq %rax, %rdi
callq 0x3290
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
jmp 0x1af09
movzbl (%r13,%r11), %eax
movq 0x18(%rsp), %r8
movslq %r8d, %rcx
movzbl -0x2(%r13,%rcx), %esi
addq $-0x2, %rcx
movl %eax, %edx
movl $0x1, %edi
subl %r8d, %edi
cmpl %edx, %esi
cmovgel %ecx, %edi
movslq (%r12,%rax,4), %rax
leaq (%r14,%rax,4), %rcx
addq $0x4, %rcx
movl %edi, -0x4(%rcx)
xorl %eax, %eax
movslq (%r14,%rax,4), %rsi
testq %rsi, %rsi
jle 0x1aafe
cmpl $0x4, %r15d
jne 0x1ab06
movl (%r13,%rsi,4), %edi
cmpl 0x4(%r13,%rsi,4), %edi
jge 0x1ab17
jmp 0x1ba74
testl %esi, %esi
jns 0x1ab77
notl %esi
jmp 0x1ab73
movzbl (%r13,%rsi), %edi
cmpb 0x1(%r13,%rsi), %dil
jb 0x1ba74
cmpl %edx, %edi
jne 0x1ab1f
movl %edx, %edi
jmp 0x1ab38
subq %r14, %rcx
shrq $0x2, %rcx
movslq %edx, %rdx
movl %ecx, (%r12,%rdx,4)
movslq %edi, %rcx
movslq (%r12,%rcx,4), %rcx
leaq (%r14,%rcx,4), %rcx
movq %rcx, %rdx
subq %r14, %rdx
sarq $0x2, %rdx
cmpq %rax, %rdx
jle 0x1ba93
leal -0x1(%rsi), %edx
cmpl $0x4, %r15d
jne 0x1ab5b
movl (%r13,%rdx,4), %r8d
jmp 0x1ab61
movzbl (%r13,%rdx), %r8d
negl %esi
cmpl %edi, %r8d
cmovgel %edx, %esi
movl %esi, (%rcx)
addq $0x4, %rcx
xorl %esi, %esi
movl %edi, %edx
movl %esi, (%r14,%rax,4)
incq %rax
cmpq %rax, %r9
jne 0x1aade
cmpq %r12, %rbp
jne 0x1abc9
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1abb5
movl (%r13,%rbx,4), %eax
jmp 0x1abbb
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %r9
jne 0x1aba8
xorl %eax, %eax
xorl %ecx, %ecx
addl (%rbp,%rax,4), %ecx
movl %ecx, (%r12,%rax,4)
incq %rax
cmpq %rax, %r10
jne 0x1abcd
movslq (%r12), %rax
leaq (%r14,%rax,4), %rcx
xorl %edi, %edi
movq %r11, %rax
movq 0x40(%rsp), %rbx
movslq (%r14,%rax,4), %rdx
testq %rdx, %rdx
jle 0x1ac87
cmpl $0x4, %r15d
jne 0x1ac13
movl (%r13,%rdx,4), %esi
cmpl 0x4(%r13,%rdx,4), %esi
jle 0x1ac24
jmp 0x1bab2
movzbl (%r13,%rdx), %esi
cmpb 0x1(%r13,%rdx), %sil
ja 0x1bab2
cmpl %edi, %esi
jne 0x1ac2c
movl %edi, %esi
jmp 0x1ac45
subq %r14, %rcx
shrq $0x2, %rcx
movslq %edi, %rdi
movl %ecx, (%r12,%rdi,4)
movslq %esi, %rcx
movslq (%r12,%rcx,4), %rcx
leaq (%r14,%rcx,4), %rcx
movq %rcx, %rdi
subq %r14, %rdi
sarq $0x2, %rdi
cmpq %rax, %rdi
jg 0x1bad1
leal -0x1(%rdx), %edi
cmpl $0x4, %r15d
jne 0x1ac68
movl (%r13,%rdi,4), %r8d
jmp 0x1ac6e
movzbl (%r13,%rdi), %r8d
cmpl %esi, %r8d
notl %edx
cmovlel %edi, %edx
movl %edx, -0x4(%rcx)
addq $-0x4, %rcx
movl $0x0, (%r14,%rax,4)
movl %esi, %edi
leaq -0x1(%rax), %rdx
testq %rax, %rax
movq %rdx, %rax
jg 0x1abef
movq %r9, %rcx
negq %rcx
movl $0x1, %eax
movq 0x18(%rsp), %r12
movq 0x8(%rsp), %rdi
movl -0x4(%r14,%rax,4), %edx
testl %edx, %edx
jns 0x1aceb
notl %edx
movl %edx, -0x4(%r14,%rax,4)
leaq (%rcx,%rax), %rdx
incq %rdx
incq %rax
cmpq $0x1, %rdx
jne 0x1acac
leaq 0xc5f10(%rip), %rdi     # 0xe0be3
leaq 0xc5dbe(%rip), %rsi     # 0xe0a98
leaq 0xc5f54(%rip), %rcx     # 0xe0c35
movl $0x73, %edx
callq 0x3170
leaq -0x1(%rax), %rcx
cmpl %ecx, %edi
jle 0x1ad3e
cmpl %r12d, %eax
jge 0x1ad1f
movl (%r14,%rax,4), %edx
testl %edx, %edx
jns 0x1ad17
notl %edx
movslq %ecx, %rsi
incl %ecx
movl %edx, (%r14,%rsi,4)
movl $0x0, (%r14,%rax,4)
cmpl %edi, %ecx
je 0x1ad3e
incq %rax
cmpq %rax, %r9
jne 0x1acf8
leaq 0xc5ec9(%rip), %rdi     # 0xe0bef
leaq 0xc5d6b(%rip), %rsi     # 0xe0a98
leaq 0xc5f01(%rip), %rcx     # 0xe0c35
movl $0x76, %edx
callq 0x3170
cmpl $0x4, %r15d
jne 0x1ad4b
movl (%r13,%r11,4), %edx
jmp 0x1ad51
movzbl (%r13,%r11), %edx
movq %r11, %rax
testl %eax, %eax
jle 0x1addf
decq %rax
movl %eax, %ecx
cmpl $0x4, %r15d
jne 0x1ad6e
movl (%r13,%rcx,4), %ecx
jmp 0x1ad74
movzbl (%r13,%rcx), %ecx
cmpl %edx, %ecx
movl %ecx, %edx
jge 0x1ad54
movl %r11d, %esi
movl %eax, %edi
movq %rdi, %rax
subq $0x1, %rax
jb 0x1addf
cmpl $0x4, %r15d
jne 0x1ad95
movl (%r13,%rax,4), %edx
jmp 0x1ad9b
movzbl -0x1(%r13,%rdi), %edx
movq %rax, %rdi
cmpl %ecx, %edx
movl %edx, %ecx
jle 0x1ad82
leal 0x1(%rax), %edi
subl %eax, %esi
movl %edi, %ecx
shrl %ecx
addl 0x8(%rsp), %ecx
movl %esi, (%r14,%rcx,4)
movl %eax, %eax
testl %eax, %eax
jle 0x1addf
decq %rax
movl %eax, %ecx
cmpl $0x4, %r15d
jne 0x1adcd
movl (%r13,%rcx,4), %ecx
jmp 0x1add3
movzbl (%r13,%rcx), %ecx
cmpl %edx, %ecx
movl %ecx, %edx
jge 0x1adb7
movl %edi, %esi
testl %eax, %eax
jns 0x1ad7d
movq 0x8(%rsp), %rdi
movl %edi, %eax
movq %rax, 0x70(%rsp)
xorl %ecx, %ecx
xorl %ebp, %ebp
xorl %eax, %eax
movl %r12d, %r8d
movq %r14, 0x68(%rsp)
movl (%r14,%rcx,4), %edx
movl %edx, %esi
sarl %esi
addl %edi, %esi
movslq %esi, %rsi
movl (%r14,%rsi,4), %edi
cmpl %eax, %edi
jne 0x1aee6
leal (%rdi,%r8), %r9d
cmpl %r12d, %r9d
jge 0x1aee6
movl %eax, %r9d
testl %r9d, %r9d
jle 0x1aeb0
movq %rsi, 0x78(%rsp)
movslq %edx, %rax
movslq %r8d, %r10
leaq (%rax,%r13), %r11
leaq (%r10,%r13), %r12
leaq (,%rax,4), %rax
addq %r13, %rax
leaq (,%r10,4), %rbx
addq %r13, %rbx
xorl %r10d, %r10d
movq %r13, %r14
movl %r15d, %esi
cmpl $0x4, %r15d
jne 0x1ae6d
movl (%rax,%r10,4), %r13d
movl (%rbx,%r10,4), %r15d
jmp 0x1ae77
movzbl (%r11,%r10), %r13d
movzbl (%r12,%r10), %r15d
cmpl %r15d, %r13d
jne 0x1aeb5
incq %r10
cmpq %r10, %r9
movl %esi, %r15d
movq %r14, %r13
jne 0x1ae57
movl %r8d, %edx
movl %r9d, %edi
movq 0x68(%rsp), %r14
movq 0x40(%rsp), %rbx
movq 0x28(%rsp), %r11
movq 0x20(%rsp), %r10
movq 0x18(%rsp), %r12
movq 0x78(%rsp), %rsi
jmp 0x1aee8
xorl %r10d, %r10d
jmp 0x1aed4
movl %esi, %r15d
movq %r14, %r13
movq 0x68(%rsp), %r14
movq 0x40(%rsp), %rbx
movq 0x28(%rsp), %r11
movq 0x18(%rsp), %r12
movq 0x78(%rsp), %rsi
cmpl %r9d, %r10d
movq 0x20(%rsp), %r10
jne 0x1aee6
movl %r8d, %edx
movl %r9d, %edi
jmp 0x1aee8
incl %ebp
movl %ebp, (%r14,%rsi,4)
incq %rcx
movl %edi, %eax
movl %edx, %r8d
cmpq 0x70(%rsp), %rcx
movq 0x8(%rsp), %rdi
jne 0x1adf9
movq 0x10(%rsp), %r9
movl 0x34(%rsp), %edx
cmpl %edi, %ebp
jge 0x1af73
movl %edx, 0x34(%rsp)
testb $0x4, %bl
movq 0x38(%rsp), %r12
movq %rdi, 0x8(%rsp)
je 0x1af33
movq 0x50(%rsp), %rdi
callq 0x3290
movq 0x8(%rsp), %rdi
testb $0x2, %bl
je 0x1af45
movq %r12, %rdi
callq 0x3290
movq 0x8(%rsp), %rdi
movq 0x58(%rsp), %rdx
addl 0x18(%rsp), %edx
subl %edi, %edx
subl %edi, %edx
testb $0xd, %bl
jne 0x1b6ac
movq 0x60(%rsp), %rcx
leal (%rcx,%rbp), %eax
cmpl %edx, %eax
jle 0x1b6aa
orl $0x8, %ebx
jmp 0x1b6ac
movq 0x50(%rsp), %rbp
movq 0x38(%rsp), %r12
movq %rbx, 0x40(%rsp)
testb $0x8, %bl
je 0x1afda
xorl %ebx, %ebx
movq %rdi, 0x8(%rsp)
movq %rbp, %rdi
xorl %esi, %esi
movl %edx, 0x34(%rsp)
movq 0x48(%rsp), %rdx
callq 0x3140
movl 0x34(%rsp), %edx
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1afc6
movl (%r13,%rbx,4), %eax
jmp 0x1afcc
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %r9
jne 0x1afb9
testb %dl, %dl
je 0x1b135
xorl %eax, %eax
xorl %ecx, %ecx
addl (%rbp,%rax,4), %ecx
movl %ecx, (%r12,%rax,4)
incq %rax
cmpq %rax, %r10
jne 0x1afe6
movq %r12, 0x38(%rsp)
movq %rbp, 0x50(%rsp)
decl %edi
movl (%r14,%rdi,4), %r12d
movslq %r12d, %rax
cmpl $0x4, %r15d
movq %rdi, 0x8(%rsp)
jne 0x1b01b
movl (%r13,%rax,4), %ebp
jmp 0x1b021
movzbl (%r13,%rax), %ebp
leaq -0x4(%r14), %r8
leaq -0x8(%r14), %rax
movq %rax, 0x70(%rsp)
movq 0x18(%rsp), %rax
movslq %ebp, %rcx
movq 0x38(%rsp), %rdx
movslq (%rdx,%rcx,4), %rbx
cmpl %eax, %ebx
jge 0x1b0a0
movq %r14, 0x68(%rsp)
movq %r13, %r14
movslq %eax, %r13
movl %ebx, %ecx
notl %ecx
addl %eax, %ecx
movq %r13, %rax
subq %rcx, %rax
movq %r8, 0x58(%rsp)
leaq (%r8,%rax,4), %rdi
leaq 0x4(,%rcx,4), %rdx
xorl %esi, %esi
callq 0x3140
decq %r13
cmpq %rbx, %r13
jg 0x1b072
movl %r13d, %eax
movq %r14, %r13
movq 0x68(%rsp), %r14
movq 0x28(%rsp), %r11
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r9
movq 0x8(%rsp), %rsi
movq 0x58(%rsp), %r8
jmp 0x1b0a5
movq 0x8(%rsp), %rsi
leal -0x1(%rax), %ecx
movslq %ecx, %rdx
movl %r12d, (%r14,%rdx,4)
testl %esi, %esi
jle 0x1b108
leal -0x1(%rsi), %edx
cltq
movq 0x70(%rsp), %rsi
leaq (%rsi,%rax,4), %rsi
movl %ecx, %eax
movl (%r14,%rdx,4), %r12d
movslq %r12d, %rdi
cmpl $0x4, %r15d
jne 0x1b0d7
movl (%r13,%rdi,4), %edi
jmp 0x1b0dd
movzbl (%r13,%rdi), %edi
cmpl %ebp, %edi
jne 0x1b0f8
movl %r12d, (%rsi)
leaq -0x1(%rdx), %rdi
decl %eax
addq $-0x4, %rsi
testq %rdx, %rdx
movq %rdi, %rdx
jg 0x1b0c3
jmp 0x1b104
movq %rdx, 0x8(%rsp)
movl %edi, %ebp
jmp 0x1b033
subl 0x8(%rsp), %ecx
testl %ecx, %ecx
movq 0x50(%rsp), %rbp
movq 0x38(%rsp), %r12
jle 0x1b135
movl %ecx, %edx
shlq $0x2, %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x3140
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x0, 0xc0(%rsp)
je 0x1b1cd
cmpq %r12, %rbp
jne 0x1b189
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1b175
movl (%r13,%rbx,4), %eax
jmp 0x1b17b
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %r9
jne 0x1b168
xorl %eax, %eax
xorl %ecx, %ecx
movl (%rbp,%rax,4), %edx
addl %ecx, %edx
movl %ecx, (%r12,%rax,4)
incq %rax
movl %edx, %ecx
cmpq %rax, %r10
jne 0x1b18d
cmpl $0x4, %r15d
jne 0x1b257
movslq (%r13,%r11,4), %rdx
movslq (%r12,%rdx,4), %rax
leaq (%r14,%rax,4), %rax
cmpl $0x1, 0x18(%rsp)
jle 0x1b285
movl -0x8(%r13,%r9,4), %ecx
jmp 0x1b272
cmpq %r12, %rbp
jne 0x1b213
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1b1ff
movl (%r13,%rbx,4), %eax
jmp 0x1b205
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %r9
jne 0x1b1f2
xorl %eax, %eax
xorl %ecx, %ecx
movl (%rbp,%rax,4), %edx
addl %ecx, %edx
movl %ecx, (%r12,%rax,4)
incq %rax
movl %edx, %ecx
cmpq %rax, %r10
jne 0x1b217
cmpl $0x4, %r15d
jne 0x1b48e
movslq (%r13,%r11,4), %rcx
movslq (%r12,%rcx,4), %rax
leaq (%r14,%rax,4), %rax
cmpl $0x1, 0x18(%rsp)
jle 0x1b4bc
movl -0x8(%r13,%r9,4), %edx
jmp 0x1b4a9
movzbl (%r13,%r11), %edx
movslq (%r12,%rdx,4), %rax
leaq (%r14,%rax,4), %rax
cmpl $0x1, 0x18(%rsp)
jle 0x1b285
movzbl -0x2(%r13,%r9), %ecx
movq 0x18(%rsp), %rsi
negl %esi
cmpl %edx, %ecx
movl %r11d, %ecx
cmovll %esi, %ecx
movl %ecx, (%rax)
jmp 0x1b288
movl %r11d, (%rax)
addq $0x4, %rax
xorl %ecx, %ecx
movslq (%r14,%rcx,4), %rsi
testq %rsi, %rsi
jle 0x1b2b2
leal -0x1(%rsi), %r8d
cmpl $0x4, %r15d
jne 0x1b2c0
movl (%r13,%r8,4), %edi
cmpl (%r13,%rsi,4), %edi
jge 0x1b2d1
jmp 0x1b8e1
testl %esi, %esi
je 0x1b2bc
notl %esi
movl %esi, (%r14,%rcx,4)
movl %edx, %edi
jmp 0x1b33e
movzbl (%r13,%r8), %edi
cmpb (%r13,%rsi), %dil
jb 0x1b8e1
movl %edi, %r9d
notl %r9d
movl %r9d, (%r14,%rcx,4)
cmpl %edx, %edi
jne 0x1b2e3
movl %edx, %edi
jmp 0x1b2fc
subq %r14, %rax
shrq $0x2, %rax
movslq %edx, %rdx
movl %eax, (%r12,%rdx,4)
movslq %edi, %rax
movslq (%r12,%rax,4), %rax
leaq (%r14,%rax,4), %rax
movq 0x10(%rsp), %r9
movq %rax, %rdx
subq %r14, %rdx
sarq $0x2, %rdx
cmpq %rcx, %rdx
jle 0x1b900
xorl %edx, %edx
cmpl $0x1, %esi
je 0x1b338
cmpl $0x4, %r15d
jne 0x1b328
movl -0x8(%r13,%rsi,4), %edx
jmp 0x1b32e
movzbl -0x2(%r13,%rsi), %edx
negl %esi
cmpl %edi, %edx
cmovgel %r8d, %esi
movl %esi, %edx
movl %edx, (%rax)
addq $0x4, %rax
incq %rcx
movl %edi, %edx
cmpq %rcx, %r9
jne 0x1b28e
cmpq %r12, %rbp
jne 0x1b392
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1b37e
movl (%r13,%rbx,4), %eax
jmp 0x1b384
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %rcx
jne 0x1b371
xorl %eax, %eax
xorl %ecx, %ecx
addl (%rbp,%rax,4), %ecx
movl %ecx, (%r12,%rax,4)
incq %rax
cmpq %rax, %r10
jne 0x1b396
movq %rbp, %rdi
movslq (%r12), %rax
leaq (%r14,%rax,4), %rax
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorl %esi, %esi
movq 0x40(%rsp), %rbx
movslq (%r14,%r11,4), %rdx
testq %rdx, %rdx
jle 0x1b3e1
leal -0x1(%rdx), %r8d
cmpl $0x4, %r15d
jne 0x1b3f4
movl (%r13,%r8,4), %ecx
cmpl (%r13,%rdx,4), %ecx
jle 0x1b405
jmp 0x1b91f
testl %edx, %edx
je 0x1b472
notl %edx
movl %edx, (%r14,%r11,4)
jmp 0x1b475
movzbl (%r13,%r8), %ecx
cmpb (%r13,%rdx), %cl
ja 0x1b91f
movl %ecx, (%r14,%r11,4)
cmpl %esi, %ecx
jne 0x1b411
movl %esi, %ecx
jmp 0x1b42a
subq %r14, %rax
shrq $0x2, %rax
movslq %esi, %rsi
movl %eax, (%r12,%rsi,4)
movslq %ecx, %rax
movslq (%r12,%rax,4), %rax
leaq (%r14,%rax,4), %rax
movq %rax, %rsi
subq %r14, %rsi
sarq $0x2, %rsi
cmpq %r11, %rsi
jg 0x1b93e
xorl %esi, %esi
cmpl $0x1, %edx
je 0x1b469
cmpl $0x4, %r15d
jne 0x1b458
movl -0x8(%r13,%rdx,4), %edx
movl %r8d, %esi
cmpl %ecx, %edx
jg 0x1b465
jmp 0x1b469
movzbl -0x2(%r13,%rdx), %edx
movl %r8d, %esi
cmpl %edx, %ecx
jge 0x1b469
notl %edx
movl %edx, %esi
movl %esi, -0x4(%rax)
addq $-0x4, %rax
jmp 0x1b477
movl %r11d, %ebp
movl %esi, %ecx
leaq -0x1(%r11), %rdx
movl %ecx, %esi
testq %r11, %r11
movq %rdx, %r11
jg 0x1b3bd
jmp 0x1b68a
movzbl (%r13,%r11), %ecx
movslq (%r12,%rcx,4), %rax
leaq (%r14,%rax,4), %rax
cmpl $0x1, 0x18(%rsp)
jle 0x1b4bc
movzbl -0x2(%r13,%r9), %edx
movq 0x18(%rsp), %rsi
negl %esi
cmpl %ecx, %edx
movl %r11d, %edx
cmovll %esi, %edx
movl %edx, (%rax)
jmp 0x1b4bf
movl %r11d, (%rax)
addq $0x4, %rax
xorl %edx, %edx
movslq (%r14,%rdx,4), %rsi
movl %esi, %edi
notl %edi
movl %edi, (%r14,%rdx,4)
testq %rsi, %rsi
jle 0x1b568
leal -0x1(%rsi), %edi
cmpl $0x4, %r15d
jne 0x1b4f4
movl (%r13,%rdi,4), %r8d
cmpl (%r13,%rsi,4), %r8d
jge 0x1b505
jmp 0x1b95d
movzbl (%r13,%rdi), %r8d
cmpb (%r13,%rsi), %r8b
jb 0x1b95d
cmpl %ecx, %r8d
jne 0x1b50f
movl %ecx, %r8d
jmp 0x1b528
subq %r14, %rax
shrq $0x2, %rax
movslq %ecx, %rcx
movl %eax, (%r12,%rcx,4)
movslq %r8d, %rax
movslq (%r12,%rax,4), %rax
leaq (%r14,%rax,4), %rax
movq %rax, %rcx
subq %r14, %rcx
sarq $0x2, %rcx
cmpq %rdx, %rcx
jle 0x1b97c
xorl %ecx, %ecx
cmpl $0x1, %esi
je 0x1b55f
cmpl $0x4, %r15d
jne 0x1b54f
movl -0x8(%r13,%rsi,4), %ecx
jmp 0x1b555
movzbl -0x2(%r13,%rsi), %ecx
negl %esi
cmpl %r8d, %ecx
cmovgel %edi, %esi
movl %esi, %ecx
movl %ecx, (%rax)
addq $0x4, %rax
movl %r8d, %ecx
incq %rdx
cmpq %rdx, %r9
jne 0x1b4c5
cmpq %r12, %rbp
jne 0x1b5ba
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %esi, %esi
movq 0x48(%rsp), %rdx
callq 0x3140
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %r10
movq 0x28(%rsp), %r11
cmpl $0x4, %r15d
jne 0x1b5a6
movl (%r13,%rbx,4), %eax
jmp 0x1b5ac
movzbl (%r13,%rbx), %eax
cltq
incl (%rbp,%rax,4)
incq %rbx
cmpq %rbx, %rcx
jne 0x1b599
xorl %eax, %eax
xorl %ecx, %ecx
addl (%rbp,%rax,4), %ecx
movl %ecx, (%r12,%rax,4)
incq %rax
cmpq %rax, %r10
jne 0x1b5be
movslq (%r12), %rax
leaq (%r14,%rax,4), %rax
xorl %edi, %edi
movq 0x40(%rsp), %rbx
movslq (%r14,%r11,4), %rcx
testq %rcx, %rcx
jle 0x1b600
leal -0x1(%rcx), %edx
cmpl $0x4, %r15d
jne 0x1b608
movl (%r13,%rdx,4), %esi
cmpl (%r13,%rcx,4), %esi
jle 0x1b619
jmp 0x1b99b
notl %ecx
movl %ecx, (%r14,%r11,4)
jmp 0x1b675
movzbl (%r13,%rdx), %esi
cmpb (%r13,%rcx), %sil
ja 0x1b99b
cmpl %edi, %esi
jne 0x1b621
movl %edi, %esi
jmp 0x1b63a
subq %r14, %rax
shrq $0x2, %rax
movslq %edi, %rdi
movl %eax, (%r12,%rdi,4)
movslq %esi, %rax
movslq (%r12,%rax,4), %rax
leaq (%r14,%rax,4), %rax
movq %rax, %rdi
subq %r14, %rdi
sarq $0x2, %rdi
cmpq %r11, %rdi
jg 0x1b9ba
testl %edx, %edx
je 0x1b668
cmpl $0x4, %r15d
jne 0x1b65e
movl -0x8(%r13,%rcx,4), %edi
jmp 0x1b664
movzbl -0x2(%r13,%rcx), %edi
cmpl %esi, %edi
jle 0x1b66c
negl %ecx
movl %ecx, %edx
movl %edx, -0x4(%rax)
addq $-0x4, %rax
movl %esi, %edi
leaq -0x1(%r11), %rcx
testq %r11, %r11
movq %rcx, %r11
jg 0x1b5dd
movq %rbp, %rdi
xorl %ebp, %ebp
testb $0x5, %bl
je 0x1b694
callq 0x3290
testb $0x2, %bl
je 0x1b869
movq %r12, %rdi
callq 0x3290
jmp 0x1b869
subl %ecx, %edx
movq 0x18(%rsp), %r10
movl %r10d, %ecx
shrl %ecx
movq 0x8(%rsp), %r8
leal (%rdx,%r8), %eax
cmpl %eax, %ecx
jg 0x1bb2e
movslq %r8d, %rax
leaq (%r14,%rax,4), %r9
movslq %edx, %rsi
leaq (%r9,%rsi,4), %rdi
leal -0x1(%r8), %r11d
cmpl $0x2, %r10d
jb 0x1b706
addl 0x8(%rsp), %ecx
movslq %ecx, %rcx
movl %r11d, %r8d
movl -0x4(%r14,%rcx,4), %esi
testl %esi, %esi
je 0x1b6fe
decl %esi
movslq %r8d, %r9
decl %r8d
movl %esi, (%rdi,%r9,4)
decq %rcx
cmpq %rax, %rcx
jg 0x1b6e9
movl %r11d, 0x40(%rsp)
movl $0x0, (%rsp)
movq %r14, %rsi
movq 0x8(%rsp), %rcx
movl %ebp, %r8d
movq %rdi, %rbp
movl $0x4, %r9d
callq 0x1a1ae
testl %eax, %eax
je 0x1b747
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testb $0x1, %bl
je 0x1b869
movq 0x50(%rsp), %rdi
jmp 0x1b6a0
movq %rbp, %r9
cmpl $0x4, %r15d
jne 0x1b75c
movq 0x28(%rsp), %r11
movl (%r13,%r11,4), %edx
jmp 0x1b767
movq 0x28(%rsp), %r11
movzbl (%r13,%r11), %edx
movq 0x50(%rsp), %rbp
leaq -0x1(%r11), %rsi
movl %r11d, %eax
testl %eax, %eax
jle 0x1b80e
movl %esi, %ecx
cmpl $0x4, %r15d
jne 0x1b78a
movl (%r13,%rcx,4), %ecx
jmp 0x1b790
movzbl (%r13,%rcx), %ecx
decl %eax
decq %rsi
cmpl %edx, %ecx
movl %ecx, %edx
jge 0x1b773
movl %eax, %edi
decl %eax
movl %eax, %r8d
movq %rdi, %rsi
subq $0x1, %rsi
jb 0x1b80e
movl %r8d, %eax
cmpl $0x4, %r15d
jne 0x1b7bb
movl (%r13,%rsi,4), %edx
jmp 0x1b7c1
movzbl -0x1(%r13,%rdi), %edx
leal -0x1(%rax), %r8d
movq %rsi, %rdi
cmpl %ecx, %edx
movl %edx, %ecx
jle 0x1b7a5
incl %esi
movl 0x40(%rsp), %edi
movslq %edi, %rcx
decl %edi
movl %edi, 0x40(%rsp)
movl %esi, (%r9,%rcx,4)
movl %eax, %esi
decq %rsi
testl %eax, %eax
jle 0x1b80e
movl %esi, %ecx
cmpl $0x4, %r15d
jne 0x1b7f9
movl (%r13,%rcx,4), %ecx
jmp 0x1b7ff
movzbl (%r13,%rcx), %ecx
decl %eax
decq %rsi
cmpl %edx, %ecx
movl %ecx, %edx
jge 0x1b7e6
testl %eax, %eax
jns 0x1b79b
movq 0x8(%rsp), %rdi
testl %edi, %edi
jle 0x1b82f
movl %edi, %eax
xorl %ecx, %ecx
movslq (%r14,%rcx,4), %rdx
movl (%r9,%rdx,4), %edx
movl %edx, (%r14,%rcx,4)
incq %rcx
cmpq %rcx, %rax
jne 0x1b81b
testb $0x4, %bl
je 0x1b853
movq 0x48(%rsp), %rdi
callq 0x3300
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %r11
movq %rax, %r12
movq %rax, %rbp
testq %rax, %rax
je 0x1b864
testb $0x2, %bl
jne 0x1b87d
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r9
jmp 0x1b8a3
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
movl %ebp, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x48(%rsp), %rdi
callq 0x3300
testq %rax, %rax
je 0x1b8ce
movq %rax, %r12
movq 0x28(%rsp), %r11
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r9
movq 0x8(%rsp), %rdi
movl 0x34(%rsp), %edx
jmp 0x1af7d
testb $0x5, %bl
je 0x1b8b9
movq %rbp, %rdi
callq 0x3290
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testb $0x2, %bl
movq 0x38(%rsp), %rdi
jne 0x1b6a0
jmp 0x1b869
movq %rbp, %rdi
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testb $0x1, %bl
jne 0x1b6a0
jmp 0x1b869
leaq 0xc5294(%rip), %rdi     # 0xe0b7c
leaq 0xc51a9(%rip), %rsi     # 0xe0a98
leaq 0xc53b4(%rip), %rcx     # 0xe0caa
movl $0x130, %edx            # imm = 0x130
callq 0x3170
leaq 0xc528a(%rip), %rdi     # 0xe0b91
leaq 0xc518a(%rip), %rsi     # 0xe0a98
leaq 0xc5395(%rip), %rcx     # 0xe0caa
movl $0x133, %edx            # imm = 0x133
callq 0x3170
leaq 0xc5278(%rip), %rdi     # 0xe0b9e
leaq 0xc516b(%rip), %rsi     # 0xe0a98
leaq 0xc5376(%rip), %rcx     # 0xe0caa
movl $0x13f, %edx            # imm = 0x13F
callq 0x3170
leaq 0xc526e(%rip), %rdi     # 0xe0bb3
leaq 0xc514c(%rip), %rsi     # 0xe0a98
leaq 0xc5357(%rip), %rcx     # 0xe0caa
movl $0x142, %edx            # imm = 0x142
callq 0x3170
leaq 0xc5218(%rip), %rdi     # 0xe0b7c
leaq 0xc512d(%rip), %rsi     # 0xe0a98
leaq 0xc52f8(%rip), %rcx     # 0xe0c6a
movl $0x10b, %edx            # imm = 0x10B
callq 0x3170
leaq 0xc520e(%rip), %rdi     # 0xe0b91
leaq 0xc510e(%rip), %rsi     # 0xe0a98
leaq 0xc52d9(%rip), %rcx     # 0xe0c6a
movl $0x10d, %edx            # imm = 0x10D
callq 0x3170
leaq 0xc51fc(%rip), %rdi     # 0xe0b9e
leaq 0xc50ef(%rip), %rsi     # 0xe0a98
leaq 0xc52ba(%rip), %rcx     # 0xe0c6a
movl $0x117, %edx            # imm = 0x117
callq 0x3170
leaq 0xc51f2(%rip), %rdi     # 0xe0bb3
leaq 0xc50d0(%rip), %rsi     # 0xe0a98
leaq 0xc529b(%rip), %rcx     # 0xe0c6a
movl $0x119, %edx            # imm = 0x119
callq 0x3170
leaq 0xc519c(%rip), %rdi     # 0xe0b7c
leaq 0xc50b1(%rip), %rsi     # 0xe0a98
leaq 0xc5147(%rip), %rcx     # 0xe0b35
movl $0xaa, %edx
callq 0x3170
leaq 0xc5192(%rip), %rdi     # 0xe0b91
leaq 0xc5092(%rip), %rsi     # 0xe0a98
leaq 0xc5128(%rip), %rcx     # 0xe0b35
movl $0xac, %edx
callq 0x3170
leaq 0xc5180(%rip), %rdi     # 0xe0b9e
leaq 0xc5073(%rip), %rsi     # 0xe0a98
leaq 0xc5109(%rip), %rcx     # 0xe0b35
movl $0xc6, %edx
callq 0x3170
leaq 0xc5176(%rip), %rdi     # 0xe0bb3
leaq 0xc5054(%rip), %rsi     # 0xe0a98
leaq 0xc50ea(%rip), %rcx     # 0xe0b35
movl $0xc8, %edx
callq 0x3170
leaq 0xc50ac(%rip), %rdi     # 0xe0b08
leaq 0xc5035(%rip), %rsi     # 0xe0a98
leaq 0xc5035(%rip), %rcx     # 0xe0a9f
movl $0x196, %edx            # imm = 0x196
callq 0x3170
leaq 0xc5101(%rip), %rdi     # 0xe0b7c
leaq 0xc5016(%rip), %rsi     # 0xe0a98
leaq 0xc516c(%rip), %rcx     # 0xe0bf5
movl $0x50, %edx
callq 0x3170
leaq 0xc50f7(%rip), %rdi     # 0xe0b91
leaq 0xc4ff7(%rip), %rsi     # 0xe0a98
leaq 0xc514d(%rip), %rcx     # 0xe0bf5
movl $0x52, %edx
callq 0x3170
leaq 0xc50e5(%rip), %rdi     # 0xe0b9e
leaq 0xc4fd8(%rip), %rsi     # 0xe0a98
leaq 0xc512e(%rip), %rcx     # 0xe0bf5
movl $0x5f, %edx
callq 0x3170
leaq 0xc50db(%rip), %rdi     # 0xe0bb3
leaq 0xc4fb9(%rip), %rsi     # 0xe0a98
leaq 0xc510f(%rip), %rcx     # 0xe0bf5
movl $0x61, %edx
callq 0x3170
leaq 0xc4f85(%rip), %rdi     # 0xe0a7c
leaq 0xc4f9a(%rip), %rsi     # 0xe0a98
leaq 0xc4f9a(%rip), %rcx     # 0xe0a9f
movl $0x158, %edx            # imm = 0x158
callq 0x3170
leaq 0xc4fc5(%rip), %rdi     # 0xe0adb
leaq 0xc4f7b(%rip), %rsi     # 0xe0a98
leaq 0xc4f7b(%rip), %rcx     # 0xe0a9f
movl $0x159, %edx            # imm = 0x159
callq 0x3170
leaq 0xc4fe1(%rip), %rdi     # 0xe0b16
leaq 0xc4f5c(%rip), %rsi     # 0xe0a98
leaq 0xc4f5c(%rip), %rcx     # 0xe0a9f
movl $0x1b1, %edx            # imm = 0x1B1
callq 0x3170
leaq 0xc4fa8(%rip), %rdi     # 0xe0afc
leaq 0xc4f3d(%rip), %rsi     # 0xe0a98
leaq 0xc4f3d(%rip), %rcx     # 0xe0a9f
movl $0x192, %edx            # imm = 0x192
callq 0x3170
leaq 0xc4fbb(%rip), %rdi     # 0xe0b2e
leaq 0xc4f1e(%rip), %rsi     # 0xe0a98
leaq 0xc4fb4(%rip), %rcx     # 0xe0b35
movl $0x9d, %edx
callq 0x3170