// File: /workspace/github_cpp_makefile_star2_O3/twekkel[P]mzpq/libzpaq.cpp
// Function: libzpaq::compressBlock(libzpaq::StringBuffer*, libzpaq::Writer*, char const*, char const*, char const*, bool)
void compressBlock(StringBuffer* in, Writer* out, const char* method_,
                   const char* filename, const char* comment, bool dosha1) {
  assert(in);
  assert(out);
  assert(method_);
  assert(method_[0]);
  std::string method=method_;
  const unsigned n=in->size();  // input size
  const int arg0=MAX(lg(n+4095)-20, 0);  // block size
  assert((1u<<(arg0+20))>=n+4096);

  // Get type from method "LB,R,t" where L is level 0..5, B is block
  // size 0..11, R is redundancy 0..255, t = 0..3 = binary, text, exe, both.
  unsigned type=0;
  if (isdigit(method[0])) {
    int commas=0, arg[4]={0};
    for (int i=1; i<int(method.size()) && commas<4; ++i) {
      if (method[i]==',' || method[i]=='.') ++commas;
      else if (isdigit(method[i])) arg[commas]=arg[commas]*10+method[i]-'0';
    }
    if (commas==0) type=512;
    else type=arg[1]*4+arg[2];
  }

  // Get hash of input
  libzpaq::SHA1 sha1;
  const char* sha1ptr=0;
#ifdef DEBUG
  if (true) {
#else
  if (dosha1) {
#endif
    sha1.write(in->c_str(), n);
    sha1ptr=sha1.result();
  }

  // Expand default methods
  if (isdigit(method[0])) {
    const int level=method[0]-'0';
    assert(level>=0 && level<=9);

    // build models
    const int doe8=(type&2)*2;
    method="x"+itos(arg0);
    std::string htsz=","+itos(19+arg0+(arg0<=6));  // lz77 hash table size
    std::string sasz=","+itos(21+arg0);            // lz77 suffix array size

    // store uncompressed
    if (level==0)
      method="0"+itos(arg0)+",0";

    // LZ77, no model. Store if hard to compress
    else if (level==1) {
      if (type<40) method+=",0";
      else {
        method+=","+itos(1+doe8)+",";
        if      (type<80)  method+="4,0,1,15";
        else if (type<128) method+="4,0,2,16";
        else if (type<256) method+="4,0,2"+htsz;
        else if (type<960) method+="5,0,3"+htsz;
        else               method+="6,0,3"+htsz;
      }
    }

    // LZ77 with longer search
    else if (level==2) {
      if (type<32) method+=",0";
      else {
        method+=","+itos(1+doe8)+",";
        if (type<64) method+="4,0,3"+htsz;
        else method+="4,0,7"+sasz+",1";
      }
    }

    // LZ77 with CM depending on redundancy
    else if (level==3) {
      if (type<20)  // store if not compressible
        method+=",0";
      else if (type<48)  // fast LZ77 if barely compressible
        method+=","+itos(1+doe8)+",4,0,3"+htsz;
      else if (type>=640 || (type&1))  // BWT if text or highly compressible
        method+=","+itos(3+doe8)+"ci1";
      else  // LZ77 with O0-1 compression of up to 12 literals
        method+=","+itos(2+doe8)+",12,0,7"+sasz+",1c0,0,511i2";
    }

    // LZ77+CM, fast CM, or BWT depending on type
    else if (level==4) {
      if (type<12)
        method+=",0";
      else if (type<24)
        method+=","+itos(1+doe8)+",4,0,3"+htsz;
      else if (type<48)
        method+=","+itos(2+doe8)+",5,0,7"+sasz+"1c0,0,511";
      else if (type<900) {
        method+=","+itos(doe8)+"ci1,1,1,1,2a";
        if (type&1) method+="w";
        method+="m";
      }
      else
        method+=","+itos(3+doe8)+"ci1";
    }

    // Slow CM with lots of models
    else {  // 5..9

      // Model text files
      method+=","+itos(doe8);
      if (type&1) method+="w2c0,1010,255i1";
      else method+="w1i1";
      method+="c256ci1,1,1,1,1,1,2a";

      // Analyze the data
      const int NR=1<<12;
      int pt[256]={0};  // position of last occurrence
      int r[NR]={0};    // count repetition gaps of length r
      const unsigned char* p=in->data();
      if (level>0) {
        for (unsigned i=0; i<n; ++i) {
          const int k=i-pt[p[i]];
          if (k>0 && k<NR) ++r[k];
          pt[p[i]]=i;
        }
      }

      // Add periodic models
      int n1=n-r[1]-r[2]-r[3];
      for (int i=0; i<2; ++i) {
        int period=0;
        double score=0;
        int t=0;
        for (int j=5; j<NR && t<n1; ++j) {
          const double s=r[j]/(256.0+n1-t);
          if (s>score) score=s, period=j;
          t+=r[j];
        }
        if (period>4 && score>0.1) {
          method+="c0,0,"+itos(999+period)+",255i1";
          if (period<=255)
            method+="c0,"+itos(period)+"i1";
          n1-=r[period];
          r[period]=0;
        }
        else
          break;
      }
      method+="c0,2,0,255i1c0,3,0,0,255i1c0,4,0,0,0,255i1mm16ts19t0";
    }
  }

  // Compress
  std::string config;
  int args[9]={0};
  config=makeConfig(method.c_str(), args);
  assert(n<=(0x100000u<<args[0])-4096);
  libzpaq::Compressor co;
  co.setOutput(out);
#ifdef DEBUG
  co.setVerify(true);
#endif
  StringBuffer pcomp_cmd;
  co.writeTag();
  co.startBlock(config.c_str(), args, &pcomp_cmd);
  std::string cs=itos(n);
  if (comment) cs=cs+" "+comment;
  co.startSegment(filename, cs.c_str());
  if (args[1]>=1 && args[1]<=7 && args[1]!=4) {  // LZ77 or BWT
    LZBuffer lz(*in, args);
    co.setInput(&lz);
    co.compress();
  }
  else {  // compress with e8e9 or no preprocessing
    if (args[1]>=4 && args[1]<=7)
      e8e9(in->data(), in->size());
    co.setInput(in);
    co.compress();
  }
#ifdef DEBUG  // verify pre-post processing are inverses
  int64_t outsize;
  const char* sha1result=co.endSegmentChecksum(&outsize, dosha1);
  assert(sha1result);
  assert(sha1ptr);
  if (memcmp(sha1result, sha1ptr, 20)!=0)
    error("Pre/post-processor test failed");
#else
  co.endSegment(sha1ptr);
#endif
  co.endBlock();
}

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f488, %rsp          # imm = 0x1F488
movl %r9d, %ebp
movq %r8, 0x118(%rsp)
movq %rcx, 0x108(%rsp)
movq %rsi, 0x110(%rsp)
movq %rdi, %rbx
leaq 0x60(%rsp), %r14
leaq 0x4220(%rsp), %rax
movq %r14, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0x4d04
movq %rbx, 0x80(%rsp)
movq 0x20(%rbx), %r13
movl %r13d, %eax
movq %rax, 0x88(%rsp)
leal 0xfff(%r13), %eax
movl %eax, %ecx
shrl $0x10, %ecx
xorl %edx, %edx
cmpl $0x10000, %eax          # imm = 0x10000
setae %dl
cmovbl %eax, %ecx
shll $0x4, %edx
leal 0x8(%rdx), %eax
movl %ecx, %esi
shrl $0x8, %esi
cmpl $0x100, %ecx            # imm = 0x100
cmovbl %ecx, %esi
cmovbl %edx, %eax
leal 0x4(%rax), %ecx
movl %esi, %edx
shrl $0x4, %edx
cmpl $0x10, %esi
cmovbl %esi, %edx
cmovbl %eax, %ecx
leaq 0x2a0fc(%rip), %rax     # 0x38d0b
movsbl (%rdx,%rax), %eax
leal (%rcx,%rax), %edx
xorl %r15d, %r15d
cmpl $0x15, %edx
leal -0x14(%rcx,%rax), %r12d
cmovll %r15d, %r12d
movq (%r14), %rsi
movsbl (%rsi), %ebx
leal -0x30(%rbx), %eax
cmpl $0x9, %eax
ja 0xeccb
xorps %xmm0, %xmm0
movaps %xmm0, 0x4220(%rsp)
movq 0x68(%rsp), %rcx
movl $0x200, %r15d           # imm = 0x200
cmpl $0x2, %ecx
jl 0xeccb
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
xorl %edx, %edx
movl $0x2, %edi
movzbl -0x1(%rsi,%rdi), %r8d
movl %r8d, %r9d
orl $0x2, %r9d
cmpl $0x2e, %r9d
jne 0xec83
incl %edx
cmpq %rcx, %rdi
jae 0xecae
incq %rdi
cmpl $0x4, %edx
jl 0xec5f
jmp 0xecae
movsbl %r8b, %r8d
addl $-0x30, %r8d
cmpl $0x9, %r8d
ja 0xec74
movslq %edx, %r9
movl 0x4220(%rsp,%r9,4), %r10d
leal (%r10,%r10,4), %r10d
leal (%r8,%r10,2), %r8d
movl %r8d, 0x4220(%rsp,%r9,4)
jmp 0xec74
movl 0x4224(%rsp), %ecx
shll $0x2, %ecx
addl 0x4228(%rsp), %ecx
testl %edx, %edx
movl $0x200, %r15d           # imm = 0x200
cmovnel %ecx, %r15d
movq $0x0, 0x120(%rsp)
movapd 0x265a1(%rip), %xmm0    # 0x35280
movupd %xmm0, 0x128(%rsp)
movl $0xc3d2e1f0, 0x138(%rsp) # imm = 0xC3D2E1F0
xorpd %xmm0, %xmm0
movupd %xmm0, 0x13c(%rsp)
movupd %xmm0, 0x14c(%rsp)
movupd %xmm0, 0x15c(%rsp)
movupd %xmm0, 0x16c(%rsp)
testb %bpl, %bpl
je 0xed63
movq 0x80(%rsp), %rax
movq 0x10(%rax), %rsi
leaq 0x120(%rsp), %r14
movq %r14, %rdi
movq 0x88(%rsp), %rdx
callq 0x50ce
movq %r14, %rdi
callq 0x4fdc
movq %rax, 0xf8(%rsp)
movq 0x60(%rsp), %rsi
movsbl (%rsi), %ebx
movl %ebx, %eax
addl $-0x30, %eax
jmp 0xed6f
movq $0x0, 0xf8(%rsp)
cmpl $0x9, %eax
ja 0x103c0
movslq %r12d, %r14
leaq 0x190(%rsp), %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x28ce3
movq %r14, 0x100(%rsp)
leaq 0x2ab4c(%rip), %rcx     # 0x398eb
leaq 0x190(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x4230(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r15, %rbp
je 0xede9
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xedf2
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x4220(%rsp), %r15
movq %rdx, 0x8(%r15)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rdi
movq %r15, %rsi
callq 0x4220
movq (%r15), %rdi
cmpq %r14, %rdi
je 0xee36
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xee57
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
xorl %eax, %eax
cmpl $0x7, %r12d
setl %al
leal 0x13(%r12,%rax), %eax
movslq %eax, %rsi
leaq 0x4220(%rsp), %rdi
movl $0x1, %edx
callq 0x28ce3
movq %rbp, %r15
leaq 0x2d698(%rip), %rcx     # 0x3c51c
leaq 0x4220(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0xa0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xeecb
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
jmp 0xeed3
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rdi
leaq 0x4230(%rsp), %rax
cmpq %rax, %rdi
je 0xef13
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
addl $0x15, %r12d
movslq %r12d, %rsi
leaq 0x4220(%rsp), %rdi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d5e9(%rip), %rcx     # 0x3c51c
leaq 0x4220(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0xe0(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xef7b
movq %rdx, 0xd0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xe0(%rsp)
jmp 0xef85
movupd (%rcx), %xmm0
movupd %xmm0, (%r12)
addl %r15d, %r15d
movq 0x8(%rax), %rdx
movq %rdx, 0xd8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rdi
leaq 0x4230(%rsp), %rax
cmpq %rax, %rdi
je 0xefc8
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
andl $0x4, %r15d
movzbl %bl, %eax
addl $-0x30, %eax
cmpl $0x4, %eax
ja 0xf1fa
leaq 0x27002(%rip), %rcx     # 0x35fe4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rsp, %rdi
movq 0x100(%rsp), %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d47a(%rip), %rcx     # 0x3c481
movq %rsp, %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
movq %rbx, 0x190(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf2e0
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0xf2e8
movq %rbp, %rax
cmpl $0xc, %eax
jb 0xf1e1
cmpl $0x17, %eax
ja 0xf84d
orl $0x1, %r15d
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d48e(%rip), %rcx     # 0x3c51c
leaq 0x20(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x1a0(%rsp), %r14
leaq 0x4230(%rsp), %r15
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfd84
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xfd8c
cmpl $0x20, %ebp
jb 0xf1e1
orl $0x1, %r15d
movq %rsp, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d419(%rip), %rcx     # 0x3c51c
movq %rsp, %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
movq %rbx, 0x190(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf962
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0xf96a
cmpl $0x14, %ebp
jb 0xf1e1
cmpl $0x2f, %ebp
ja 0xf8d0
orl $0x1, %r15d
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d395(%rip), %rcx     # 0x3c51c
leaq 0x20(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x1a0(%rsp), %r14
leaq 0x4230(%rsp), %r15
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfdde
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xfde6
cmpl $0x28, %ebp
jae 0xf270
leaq 0x2d298(%rip), %r14     # 0x3c480
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x4350
jmp 0x10379
movl %r15d, %esi
leaq 0x190(%rsp), %rdi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d306(%rip), %rcx     # 0x3c51c
leaq 0x190(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
leaq 0x1a0(%rsp), %r14
callq 0x41c0
leaq 0x4230(%rsp), %r15
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf346
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xf34f
orl $0x1, %r15d
movq %rsp, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2d291(%rip), %rcx     # 0x3c51c
movq %rsp, %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x41c0
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
movq %rbx, 0x190(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf9c1
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0xf9c9
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2d172(%rip), %rsi     # 0x3c480
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf7c7
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xf7d0
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0xf3a1
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %r14, %rdi
je 0xf3be
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
testb $0x1, %bpl
leaq 0x2d135(%rip), %rax     # 0x3c4fe
leaq 0x2d11e(%rip), %rsi     # 0x3c4ee
cmoveq %rax, %rsi
leaq 0x60(%rsp), %rdi
callq 0x4350
leaq 0x2d11e(%rip), %rsi     # 0x3c503
leaq 0x60(%rsp), %rdi
callq 0x4350
leaq 0x190(%rsp), %rdi
xorl %ebp, %ebp
movl $0x400, %edx            # imm = 0x400
xorl %esi, %esi
callq 0x40e0
leaq 0x4220(%rsp), %rdi
movl $0x4000, %edx           # imm = 0x4000
xorl %esi, %esi
callq 0x40e0
cmpb $0x31, %bl
setl %al
testl %r13d, %r13d
sete %cl
orb %al, %cl
jne 0xf48a
movq 0x80(%rsp), %rax
movq 0x10(%rax), %rax
xorl %ecx, %ecx
movq 0x88(%rsp), %r8
movzbl (%rax,%rcx), %edx
movl 0x190(%rsp,%rdx,4), %esi
movl %esi, %edi
notl %edi
addl %ecx, %edi
cmpl $0xffe, %edi            # imm = 0xFFE
ja 0xf466
negl %esi
addq %rcx, %rsi
movl %esi, %esi
incl 0x4220(%rsp,%rsi,4)
movl %ecx, 0x190(%rsp,%rdx,4)
incq %rcx
cmpq %rcx, %r8
jne 0xf43f
movl 0x4224(%rsp), %ebp
addl 0x4228(%rsp), %ebp
addl 0x422c(%rsp), %ebp
subl %ebp, %r13d
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %r15
movb $0x1, %r12b
leaq 0x40(%rsp), %rbp
testl %r13d, %r13d
jle 0xf7a9
leal 0x100(%r13), %eax
cvtsi2sd %rax, %xmm1
xorpd %xmm0, %xmm0
xorl %eax, %eax
movl $0x5, %ecx
xorl %r14d, %r14d
movapd %xmm0, %xmm2
movl 0x4220(%rsp,%rcx,4), %edx
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
movl %r14d, %esi
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movapd %xmm1, %xmm4
subsd %xmm3, %xmm4
divsd %xmm4, %xmm0
ucomisd %xmm2, %xmm0
movl %ecx, %r14d
cmovbel %esi, %r14d
maxsd %xmm2, %xmm0
cmpq $0xffe, %rcx            # imm = 0xFFE
ja 0xf50c
addl %edx, %eax
incq %rcx
cmpl %r13d, %eax
jl 0xf4c2
cmpl $0x5, %r14d
jl 0xf7a9
ucomisd 0x265e2(%rip), %xmm0    # 0x35b00
jbe 0xf7a9
leal 0x3e7(%r14), %esi
movq %rbp, %rdi
movl $0x1, %edx
callq 0x28ce3
movl $0x5, %r8d
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x2cfcc(%rip), %rcx     # 0x3c518
callq 0x41c0
movq %rbx, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf574
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xf57c
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x2cf57(%rip), %rsi     # 0x3c4f7
callq 0x4350
movq %r15, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf5c6
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xf5cf
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf610
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x20(%rsp), %rdi
cmpq %rbx, %rdi
je 0xf627
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
movq %rbp, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xf646
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
movl %r14d, %ebp
cmpl $0x100, %r14d           # imm = 0x100
jae 0xf77e
movq %rbx, %r14
movq %rbx, %rdi
movq %rbp, %rsi
movl $0x1, %edx
callq 0x28ce3
movl $0x3, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x2cea1(%rip), %rcx     # 0x3c51e
callq 0x41c0
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf6aa
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xf6b2
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x2ce2a(%rip), %rsi     # 0x3c500
callq 0x4350
movq %r15, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf6fc
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xf705
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf746
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf762
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xf77e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
subl 0x4220(%rsp,%rbp,4), %r13d
movl $0x0, 0x4220(%rsp,%rbp,4)
testb $0x1, %r12b
movl $0x0, %r12d
movq %rbx, %rbp
leaq 0x30(%rsp), %rbx
jne 0xf49f
leaq 0x2cd72(%rip), %rsi     # 0x3c522
leaq 0x60(%rsp), %rdi
leaq 0xe0(%rsp), %r12
callq 0x4350
jmp 0x10379
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x4220(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x4220
movq (%r14), %rdi
cmpq %r15, %rdi
je 0xf814
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0xf831
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10379
movq 0x10(%rsp), %rsi
jmp 0x10371
cmpl $0x2f, %eax
ja 0xfc32
orl $0x2, %r15d
leaq 0x40(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2cca9(%rip), %rsi     # 0x3c51c
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x33e46
leaq 0x1a0(%rsp), %r14
leaq 0x4230(%rsp), %r15
leaq 0x2cc37(%rip), %rsi     # 0x3c4d0
leaq 0x20(%rsp), %rdi
callq 0x4350
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10136
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x1013e
cmpl $0x280, %ebp            # imm = 0x280
setb %al
testb $0x1, %bpl
sete %cl
testb %cl, %al
je 0xfcbb
orl $0x2, %r15d
leaq 0x40(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2cc17(%rip), %rsi     # 0x3c51c
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x33e46
leaq 0x1a0(%rsp), %r14
leaq 0x4230(%rsp), %r15
leaq 0x2cb90(%rip), %rsi     # 0x3c4bb
leaq 0x20(%rsp), %rdi
callq 0x4350
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x101b4
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x101bc
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2cb8c(%rip), %rsi     # 0x3c51c
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfa27
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xfa30
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2cb2d(%rip), %rsi     # 0x3c51c
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfb76
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xfb7f
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0xfa82
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0xfa9f
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfaba
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
cmpl $0x3f, %ebp
ja 0xfb13
leaq 0x2c9eb(%rip), %rsi     # 0x3c4b1
leaq 0x4220(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x33eb6
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10379
movq 0x4230(%rsp), %rsi
jmp 0x10371
leaq 0x2c98d(%rip), %rsi     # 0x3c4a7
leaq 0x190(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x33eb6
leaq 0x2c977(%rip), %rsi     # 0x3c4ad
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfff4
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xfffd
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0xfbd1
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0xfbee
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfc09
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
cmpl $0x50, %ebp
jae 0xfc1a
leaq 0x2c86e(%rip), %r14     # 0x3c483
jmp 0xf1e8
cmpl $0x80, %ebp
jae 0xfd3d
leaq 0x2c85f(%rip), %r14     # 0x3c48c
jmp 0xf1e8
cmpl $0x383, %eax            # imm = 0x383
ja 0x1006d
movl %r15d, %esi
movq %rsp, %rdi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2c8c8(%rip), %rsi     # 0x3c51c
leaq 0x190(%rsp), %rdi
movq %rsp, %rdx
callq 0x33e46
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
leaq 0x2c866(%rip), %rsi     # 0x3c4e1
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x107a8
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0x107b1
orl $0x3, %r15d
movq %rsp, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2c846(%rip), %rsi     # 0x3c51c
leaq 0x190(%rsp), %rdi
movq %rsp, %rdx
callq 0x33e46
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
leaq 0x2c7ba(%rip), %rsi     # 0x3c4b7
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10232
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0x1023b
cmpl $0xff, %ebp
ja 0x100ef
leaq 0x2c745(%rip), %rsi     # 0x3c495
leaq 0x4220(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x33eb6
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0xfaf5
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2c703(%rip), %rsi     # 0x3c4b0
callq 0x4350
movq %r14, 0x190(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfe38
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0xfe41
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2c6a9(%rip), %rsi     # 0x3c4b0
callq 0x4350
movq %r14, 0x190(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfea1
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0xfeaa
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
callq 0x4080
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xff0a
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xff13
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
callq 0x4080
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xff4a
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0xff53
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0xff88
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0xffa5
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %r14, %rdi
je 0xffc2
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xffd8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10379
movq 0x30(%rsp), %rsi
jmp 0x10371
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x1004f
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10379
movq 0x1a0(%rsp), %rsi
jmp 0x10371
orl $0x3, %r15d
movq %rsp, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x28ce3
leaq 0x2c494(%rip), %rsi     # 0x3c51c
leaq 0x190(%rsp), %rdi
movq %rsp, %rdx
callq 0x33e46
leaq 0x1a0(%rsp), %rbx
leaq 0x4230(%rsp), %r15
leaq 0x2c408(%rip), %rsi     # 0x3c4b7
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10862
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0x1086b
cmpl $0x3bf, %ebp            # imm = 0x3BF
ja 0x1076d
leaq 0x2c399(%rip), %rsi     # 0x3c49b
leaq 0x4220(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x33eb6
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0xfaf5
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x190(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x33daa
leaq 0x2c363(%rip), %rsi     # 0x3c4d7
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10275
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0x1027e
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x190(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x33daa
leaq 0x2c2d1(%rip), %rsi     # 0x3c4c3
leaq 0x190(%rsp), %rdi
callq 0x4350
movq %r15, 0x4220(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x102b5
movq %rdx, 0x4220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4230(%rsp)
jmp 0x102be
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0x108a0
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0x102f3
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10310
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %r14, %rdi
je 0x1032d
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x10343
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1035e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10379
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0xd0(%rsp), %rdi
cmpq %r12, %rdi
je 0x10396
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x103bb
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x60(%rsp), %rsi
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
xorpd %xmm0, %xmm0
leaq 0xd0(%rsp), %rdx
movapd %xmm0, 0x10(%rdx)
movapd %xmm0, (%rdx)
movl $0x0, 0x20(%rdx)
leaq 0x4220(%rsp), %rdi
callq 0x2a235
movq %rsp, %rdi
leaq 0x4220(%rsp), %r14
movq %r14, %rsi
callq 0x4220
movq (%r14), %rdi
leaq 0x4230(%rsp), %rax
cmpq %rax, %rdi
je 0x10431
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x4220(%rsp), %rdi
callq 0x33f3e
movq 0x118(%rsp), %r14
leaq 0x4220(%rsp), %rdi
movq 0x110(%rsp), %rax
movq %rax, 0x180(%rdi)
leaq 0x3089c(%rip), %rbx     # 0x40d00
movq %rbx, 0x90(%rsp)
leaq 0x308cd(%rip), %r12     # 0x40d40
movq %r12, 0x98(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xa0(%rsp)
movupd %xmm0, 0xb0(%rsp)
movq $-0x1, 0xc0(%rsp)
movq $0x80, 0xc8(%rsp)
callq 0xe1d2
leaq 0x98(%rsp), %rcx
movq (%rsp), %rsi
leaq 0x4220(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0xe3d2
leaq 0x20(%rsp), %rdi
movq 0x88(%rsp), %rsi
movl $0x1, %edx
callq 0x28ce3
testq %r14, %r14
je 0x105c1
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0x4dfe
leaq 0x2be78(%rip), %rsi     # 0x3c38e
leaq 0x40(%rsp), %rdi
callq 0x4350
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x4350
leaq 0x1a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1055d
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0x10566
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x4220
movq (%r14), %rdi
cmpq %rbp, %rdi
je 0x105aa
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x105c1
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x20(%rsp), %rdx
leaq 0x4220(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0xe490
movl 0xd4(%rsp), %eax
leal -0x1(%rax), %ecx
cmpl $0x7, %ecx
setae %cl
cmpl $0x4, %eax
sete %dl
orb %cl, %dl
jne 0x1064a
leaq 0x190(%rsp), %r14
leaq 0xd0(%rsp), %rdx
movq %r14, %rdi
movq 0x80(%rsp), %rsi
xorl %ecx, %ecx
callq 0x29af2
leaq 0x4220(%rsp), %rdi
movq %r14, 0x1b1d0(%rdi)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe648
leaq 0x305a1(%rip), %rax     # 0x40bd8
leaq 0x198(%rsp), %rdi
movq %rax, -0x8(%rdi)
callq 0x33ae4
jmp 0x10687
andl $-0x4, %eax
cmpl $0x4, %eax
jne 0x10666
movq 0x80(%rsp), %rax
movq 0x10(%rax), %rdi
movl 0x20(%rax), %esi
callq 0x28e87
leaq 0x4220(%rsp), %rdi
movq 0x80(%rsp), %rax
movq %rax, 0x1b1d0(%rdi)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe648
leaq 0x4220(%rsp), %rdi
movq 0xf8(%rsp), %rsi
callq 0xe77c
movq 0x43a0(%rsp), %rdi
movq (%rdi), %rax
movl $0xff, %esi
callq *(%rax)
movl $0x0, 0x1f47c(%rsp)
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x106d4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
movq %rbx, 0x90(%rsp)
movq %r12, 0x98(%rsp)
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x106f6
callq 0x4200
leaq 0x1f3d8(%rsp), %rdi
callq 0x33778
leaq 0x43b0(%rsp), %rdi
callq 0xb1dc
leaq 0x42e0(%rsp), %rdi
callq 0x9d58
leaq 0x4220(%rsp), %rdi
callq 0x9d58
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x10740
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1075b
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4180
addq $0x1f488, %rsp          # imm = 0x1F488
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2bd2d(%rip), %rsi     # 0x3c4a1
leaq 0x4220(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x33eb6
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
jmp 0xfaf5
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10803
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10820
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1083b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x28f65(%rip), %r14     # 0x397a7
testb $0x1, %bpl
je 0xf1e8
leaq 0x294c0(%rip), %rsi     # 0x39d13
leaq 0x60(%rsp), %rdi
callq 0x4350
jmp 0xf1e8
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x4228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4220(%rsp), %rsi
movq 0x4228(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x4080
movq 0x4220(%rsp), %rdi
jmp 0xf7ff
jmp 0x109bd
jmp 0x109bd
jmp 0x10c5d
jmp 0x10c5d
jmp 0x109bd
jmp 0x10c5d
jmp 0x10a82
jmp 0x10a82
jmp 0x10aa6
jmp 0x10aa6
jmp 0x10b43
jmp 0x10b43
jmp 0x10c5d
jmp 0x10c5d
jmp 0x108f5
movq %rax, %r14
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x1091c
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x1091c
jmp 0x10919
movq %rax, %r14
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x1094d
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x1094d
jmp 0x10a82
jmp 0x1094a
movq %rax, %r14
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x1096f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x1096f
jmp 0x10aa6
jmp 0x1096c
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10996
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10996
jmp 0x10b43
jmp 0x10993
movq %rax, %r14
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x10cab
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10ad6
jmp 0x10b1a
movq %rax, %r14
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10cbd
movq 0x4230(%rsp), %rsi
jmp 0x10cb5
jmp 0x109e0
movq %rax, %r14
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10a11
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10a11
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10a0e
movq %rax, %r14
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x10a3d
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10a3d
jmp 0x10a3a
movq %rax, %r14
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x10a5a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10a5a
jmp 0x10a57
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10cbd
movq 0x30(%rsp), %rsi
jmp 0x10cb5
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10a82
movq %rax, %r14
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10aa9
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10aa9
jmp 0x10aa6
movq %rax, %r14
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
jne 0x10b08
jmp 0x10b46
jmp 0x10b43
jmp 0x10b43
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10c5d
movq %rax, %r14
movq 0x4220(%rsp), %rdi
cmpq %r15, %rdi
je 0x10b1d
movq 0x4230(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10b1d
movq %rax, %r14
movq 0x190(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10b46
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10b46
movq %rax, %r14
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x10cbd
movq 0x1a0(%rsp), %rsi
jmp 0x10cb5
movq %rax, %r14
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10cbd
movq 0x10(%rsp), %rsi
jmp 0x10cb5
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10c5d
jmp 0x10c62
jmp 0x10c7d
jmp 0x10c9e
jmp 0x10c5d
movq %rax, %r14
leaq 0x30049(%rip), %rax     # 0x40bd8
leaq 0x198(%rsp), %rdi
movq %rax, -0x8(%rdi)
callq 0x33ae4
jmp 0x10d12
jmp 0x10d0f
movq %rax, %r14
movq 0x4220(%rsp), %rdi
leaq 0x4230(%rsp), %rax
cmpq %rax, %rdi
je 0x10ce2
movq 0x4230(%rsp), %rsi
jmp 0x10cda
movq %rax, %r14
jmp 0x10ce2
movq %rax, %r14
movq 0x4220(%rsp), %rdi
leaq 0x4230(%rsp), %rax
cmpq %rax, %rdi
je 0x10d72
movq 0x4230(%rsp), %rsi
jmp 0x10d6a
jmp 0x10c2b
movq %rax, %r14
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d72
movq 0x1a0(%rsp), %rsi
jmp 0x10d6a
movq %rax, %r14
jmp 0x10d72
jmp 0x10c35
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x10d12
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10d12
jmp 0x10d0f
movq %rax, %r14
jmp 0x10cbd
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x10c80
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10c80
movq %rax, %r14
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10ca1
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
jmp 0x10ca1
movq %rax, %r14
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x10cbd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x10ce2
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x4180
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x10d72
movq 0xa0(%rsp), %rsi
jmp 0x10d6a
jmp 0x10d0a
jmp 0x10d05
movq %rax, %r14
jmp 0x10d5c
movq %rax, %r14
jmp 0x10d2d
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d2d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4180
movq %rbx, 0x90(%rsp)
movq %r12, 0x98(%rsp)
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x10d4f
callq 0x4200
leaq 0x4220(%rsp), %rdi
callq 0x33ff4
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x10d72
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4180
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d8d
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4180
movq %r14, %rdi
callq 0x4310
nop