// File: /workspace/github_cpp_makefile_star2_O1/joao18araujo[P]pierluigi/src/second_species_counterpoint.cpp
// Function: SecondSpeciesCounterpoint::solve(unsigned int, unsigned int, int, int, bool, Song&)
bool SecondSpeciesCounterpoint::solve(unsigned position, unsigned compass_position, int paralels, int same_movements, bool ascendant, Song & counterpoint){
  if(position + compass_position == 0){
    memset(dp, true, sizeof dp);
    srand(clock());
  }

  if(position >= song->size_without_rest()){
    // printf("Total: %d %lu\n", paralels, song->size() - same_movements);
    return true;
  }

  // if(position + compass_position) printf("[%d][%d][%d][%d][%d]\n", position, compass_position, counterpoint.back().midi_number, paralels, same_movements);
  if((position + compass_position) &&!dp[position][compass_position][counterpoint.back().midi_number][paralels][same_movements]) return false;

  vector<Interval> possible_intervals;

  Note note = song->notes[position];

  if((position || compass_position) && (position < song->size_without_rest() - 1)){
    auto previous_note = song->notes[position - 1 + compass_position];
    auto previous_counterpoint_note = counterpoint.notes.back();
    auto melodic_cantus_interval = Interval(previous_note, note);
    bool melodic_ascendant = !melodic_cantus_interval.ascendant(); // XOR with true
    auto previous_interval = Interval(previous_note, previous_counterpoint_note);
    string previous = previous_interval.description();

    if(not note.rest()){
      if(previous != "P8")
        analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);

      if(previous != "P5" && ascendant)
        analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P5", ascendant), &counterpoint);

      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("m3", ascendant), &counterpoint);
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("M3", ascendant), &counterpoint);
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("m6", ascendant), &counterpoint);
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("M6", ascendant), &counterpoint);
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("m10", ascendant), &counterpoint);
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("M10", ascendant), &counterpoint);

      random_shuffle(possible_intervals.begin(), possible_intervals.end());
      int size = possible_intervals.size();

      //intervals with same movement
      if(previous != "P8")
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);
      if(previous != "P5" && ascendant)
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P5", ascendant), &counterpoint);

      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("m3", ascendant), &counterpoint);
      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("M3", ascendant), &counterpoint);
      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("m6", ascendant), &counterpoint);
      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("M6", ascendant), &counterpoint);
      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("m10", ascendant), &counterpoint);
      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("M10", ascendant), &counterpoint);

      random_shuffle(possible_intervals.begin() + size, possible_intervals.end());

      if(!is_thesis(note, (note.duration / 2) * compass_position)){
        //Tempo fraco
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P4", ascendant), &counterpoint);
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("m2", ascendant), &counterpoint);
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("M2", ascendant), &counterpoint);
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("m7", ascendant), &counterpoint);
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("M7", ascendant), &counterpoint);
        // TODO: m9?
      }
    }else{
      possible_intervals.push_back(Interval("P1"));
    }

    // printf("[%u][%u][%d][%d][%d]\n", position - 1 + compass_position, compass_position, song->notes[position - 1 + compass_position].midi_number, paralels, same_movements);

    int par, sm;
    for(auto interval : possible_intervals){
      auto c_note = Interval::interval_to_note(note, interval);
      c_note.duration /= 2;
      Interval melodic_interval(previous_counterpoint_note, note);

      par = paralels - (interval.quantitative == previous_interval.quantitative and (interval.quantitative == 3 || interval.quantitative == 6 || interval.quantitative == 10)); //TODO: criar método retornando qualidade
      sm = same_movements - (melodic_interval.ascendant() != melodic_ascendant);
      if(par < 0 || sm < 0) continue;
      counterpoint.notes.push_back(c_note);
      if(solve(position + compass_position, (compass_position + 1)%2, par, sm, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }

  }else if(position == song->size_without_rest() - 1){
    //Última nota
    auto previous_note = song->notes[position - 1];
    auto previous_counterpoint_note = counterpoint.notes.back();
    auto melodic_cantus_interval = Interval(previous_note, note);
    bool melodic_ascendant = !melodic_cantus_interval.ascendant(); // XOR with true
    auto previous_interval = Interval(previous_note, previous_counterpoint_note);
    string previous = previous_interval.description();

    if(not note.rest()){
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P1", ascendant), &counterpoint);
      if(previous != "P8")
        analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);
      if(previous != "P5" && ascendant)
        analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P5", ascendant), &counterpoint);

      random_shuffle(possible_intervals.begin(), possible_intervals.end());
      int size = possible_intervals.size();

      analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P1", ascendant), &counterpoint);
      if(previous != "P8")
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);
      if(previous != "P5" && ascendant)
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P5", ascendant), &counterpoint);

      random_shuffle(possible_intervals.begin() + size, possible_intervals.end());
    }else{
      possible_intervals.push_back(Interval("P1"));
    }

    int par, sm;
    for(auto interval : possible_intervals){
      auto c_note = Interval::interval_to_note(note, interval);
      Interval melodic_interval(previous_counterpoint_note, note);

      par = paralels - (interval.quantitative == previous_interval.quantitative and (interval.quantitative == 3 || interval.quantitative == 6 || interval.quantitative == 10));
      sm = same_movements -  (melodic_interval.ascendant() != melodic_ascendant);
      if(par < 0 || sm < 0) continue;
      counterpoint.notes.push_back(c_note);
      if(solve(position + 1, 0, par, sm, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }
  }else{
    //Primeira nota
    possible_intervals.push_back(Interval("P1", ascendant));
    possible_intervals.push_back(Interval("P8", ascendant));
    if(ascendant) possible_intervals.push_back(Interval("P5", ascendant));
    random_shuffle(possible_intervals.begin(), possible_intervals.end());

    for(auto interval : possible_intervals){
      auto c_note = Interval::interval_to_note(note, interval);
      c_note.duration /= 2;
      counterpoint.notes.push_back(c_note);
      if(solve(position + compass_position, (compass_position + 1)%2, paralels, same_movements, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }
  }

  dp[position][compass_position][counterpoint.back().midi_number][paralels][same_movements] = false;
  return false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2468, %rsp           # imm = 0x2468
movq %r9, %r13
movl %r8d, %r15d
movl %ecx, 0x60(%rsp)
movl %edx, 0x5c(%rsp)
movl %esi, %r12d
movl %edi, %r14d
movl %esi, %eax
addl %edi, %eax
movl %eax, 0x3c(%rsp)
jne 0x1e907
leaq 0x2aec4(%rip), %rdi     # 0x497b0
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
movl $0x1, %esi
callq 0x51f0
callq 0x5240
movl %eax, %edi
callq 0x5310
leaq 0x9bf3b9a(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x2429a
movb $0x1, %bl
cmpl %r14d, %eax
jbe 0x225a3
movq %r14, 0x40(%rsp)
movl %r14d, %ebp
cmpl $0x0, 0x3c(%rsp)
je 0x1e98e
movl %r15d, %r14d
movl %r12d, %r15d
leaq 0x1de0(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x24316
movslq 0x4c(%rbx), %rax
movslq 0x5c(%rsp), %rcx
movslq 0x60(%rsp), %rdx
imulq $0x1081c8, %rbp, %rsi   # imm = 0x1081C8
addq 0x2a60b(%rip), %rsi     # 0x48f70
imulq $0x42072, %r15, %rdi    # imm = 0x42072
movl %r14d, %r15d
addq %rdi, %rsi
imulq $0xbbd, %rax, %rax      # imm = 0xBBD
addq %rsi, %rax
imulq $0x259, %rcx, %rcx      # imm = 0x259
addq %rax, %rcx
movb (%rdx,%rcx), %bl
xorb $0x1, %bl
jmp 0x1e990
xorl %ebx, %ebx
cmpl $0x0, 0x3c(%rsp)
je 0x1e9d9
leaq 0x1e18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1e9b8
movq 0x1e18(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1df8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1e9d9
movq 0x1df8(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bl, %bl
je 0x1e9e4
xorl %ebx, %ebx
jmp 0x225a3
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x9bf3aac(%rip), %rbx   # 0x9c124a8
movq (%rbx), %rax
imulq $0x58, %rbp, %rsi
addq (%rax), %rsi
leaq 0x170(%rsp), %rdi
callq 0x1a9c6
movl %r12d, %eax
orl 0x40(%rsp), %eax
movzbl %r15b, %eax
movl %eax, 0x14(%rsp)
movq %r13, 0x48(%rsp)
movq %r12, 0x118(%rsp)
movq %rbp, 0x280(%rsp)
je 0x1ecf4
movq (%rbx), %rdi
callq 0x2429a
decl %eax
cmpl 0x40(%rsp), %eax
jbe 0x1ecf4
movq (%rbx), %rax
movq 0x40(%rsp), %rcx
addl %r12d, %ecx
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x1a9c6
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x1a9c6
leaq 0x1d88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1d30(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x288(%rsp), %rdi
leaq 0x1d88(%rsp), %rsi
leaq 0x1d30(%rsp), %rdx
callq 0x15216
leaq 0x1d68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eae9
movq 0x1d68(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb0a
movq 0x1d48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1dc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb2b
movq 0x1dc0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1da0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb4c
movq 0x1da0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x288(%rsp), %rdi
callq 0x15b78
movb %al, 0x38(%rsp)
leaq 0x1cd8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1c80(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1a9c6
leaq 0x250(%rsp), %rdi
leaq 0x1cd8(%rsp), %rsi
leaq 0x1c80(%rsp), %rdx
callq 0x15216
leaq 0x1cb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ebc2
movq 0x1cb8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ebe3
movq 0x1c98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ec04
movq 0x1d10(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1cf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ec25
movq 0x1cf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x1539c
leaq 0x170(%rsp), %rdi
callq 0x1c186
movb 0x38(%rsp), %bl
xorb $0x1, %bl
testb %al, %al
movb %bl, 0x40(%rsp)
je 0x20412
leaq 0x468(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c3b3(%rip), %rsi     # 0x3b020
leaq 0x1c3ae(%rip), %rdx     # 0x3b022
leaq 0x458(%rsp), %rdi
callq 0xb62c
leaq 0xc0(%rsp), %rdi
leaq 0x458(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x20(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xfbea
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ecce
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x22008
movq 0x468(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22008
movq (%rbx), %rdi
callq 0x2429a
decl %eax
movq 0x40(%rsp), %rcx
cmpl %ecx, %eax
jne 0x1efa6
movq (%rbx), %rax
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x1a9c6
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x1a9c6
leaq 0x13e8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1390(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x288(%rsp), %rdi
leaq 0x13e8(%rsp), %rsi
leaq 0x1390(%rsp), %rdx
callq 0x15216
leaq 0x13c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ed9b
movq 0x13c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x13a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1edbc
movq 0x13a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1420(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eddd
movq 0x1420(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1400(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1edfe
movq 0x1400(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x288(%rsp), %rdi
callq 0x15b78
movb %al, 0x38(%rsp)
leaq 0x1338(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x12e0(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1a9c6
leaq 0x250(%rsp), %rdi
leaq 0x1338(%rsp), %rsi
leaq 0x12e0(%rsp), %rdx
callq 0x15216
leaq 0x1318(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ee74
movq 0x1318(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ee95
movq 0x12f8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1370(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eeb6
movq 0x1370(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1350(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eed7
movq 0x1350(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x1539c
leaq 0x170(%rsp), %rdi
callq 0x1c186
movb 0x38(%rsp), %cl
xorb $0x1, %cl
movb %cl, 0x3c(%rsp)
testb %al, %al
je 0x1f4ec
leaq 0x388(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c101(%rip), %rsi     # 0x3b020
leaq 0x1c0fc(%rip), %rdx     # 0x3b022
leaq 0x378(%rsp), %rdi
callq 0xb62c
leaq 0xc0(%rsp), %rdi
leaq 0x378(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x20(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xfbea
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ef80
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x20072
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x20072
leaq 0x368(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c067(%rip), %rsi     # 0x3b020
leaq 0x1c062(%rip), %rdx     # 0x3b022
leaq 0x358(%rsp), %rdi
callq 0xb62c
leaq 0x68(%rsp), %rdi
leaq 0x358(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
leaq 0x20(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0xfbea
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f013
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f030
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x348(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bfe0(%rip), %rsi     # 0x3b023
leaq 0x1bfdb(%rip), %rdx     # 0x3b025
leaq 0x338(%rsp), %rdi
callq 0xb62c
leaq 0x68(%rsp), %rdi
leaq 0x338(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
leaq 0x20(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0xfbea
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x1f09e
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f0bb
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5360
testb %r15b, %r15b
leaq 0x80(%rsp), %r14
je 0x1f160
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bf47(%rip), %rsi     # 0x3b026
leaq 0x1bf42(%rip), %rdx     # 0x3b028
leaq 0x318(%rsp), %rdi
callq 0xb62c
leaq 0x68(%rsp), %rdi
leaq 0x318(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x20(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0xfbea
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x1f13b
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f158
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x80(%rsp), %r14
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rax, 0x40(%rsp)
movq %rcx, 0x18(%rsp)
cmpq %rcx, %rax
je 0x1f2b0
movq 0x40(%rsp), %rax
leaq 0x30(%rax), %r13
cmpq 0x18(%rsp), %r13
je 0x1f2b0
leaq 0x70(%rsp), %rbx
movl $0x30, %ebp
callq 0x50e0
cltq
movq %rbp, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r15
shlq $0x4, %r15
addq 0x40(%rsp), %r15
cmpq %r15, %r13
je 0x1f29d
movl (%r13), %eax
movl %eax, 0x68(%rsp)
movq %r14, 0x70(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x1f201
movq %rcx, 0x70(%rsp)
movq (%rax), %rcx
movq %rcx, 0x80(%rsp)
jmp 0x1f208
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %r14, %r12
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0x78(%rsp)
movq %rax, 0x8(%r13)
movq $0x0, 0x10(%r13)
movb $0x0, 0x18(%r13)
movzwl 0x2c(%r13), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r13), %eax
movl %eax, 0x20(%rbx)
movl (%r15), %eax
movl %eax, (%r13)
leaq 0x8(%r15), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r15), %eax
movl %eax, 0x28(%r13)
movzwl 0x2c(%r15), %eax
movw %ax, 0x2c(%r13)
movl 0x68(%rsp), %eax
movl %eax, (%r15)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r15)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r15)
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
movq %r12, %r14
je 0x1f29d
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r13
addq $0x30, %rbp
cmpq 0x18(%rsp), %r13
jne 0x1f19b
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rax
movq %rax, 0x40(%rsp)
cmpq %rax, %r12
je 0x224ba
leaq 0x1d0(%rsp), %rbx
leaq 0x720(%rsp), %r14
leaq 0x730(%rsp), %r13
movq 0x118(%rsp), %rax
notl %eax
andl $0x1, %eax
movl %eax, 0x18(%rsp)
leaq 0xdb8(%rsp), %rbp
movl (%r12), %eax
movl %eax, 0x1c8(%rsp)
leaq 0x1e0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movq 0x8(%r12), %rsi
movq 0x10(%r12), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb544
movzwl 0x2c(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r12), %eax
movl %eax, 0x20(%rbx)
movq %rbp, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
movl 0x1c8(%rsp), %eax
movl %eax, 0x718(%rsp)
movq %r13, 0x720(%rsp)
movq 0x1d0(%rsp), %rsi
movq 0x1d8(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb544
movzwl 0x24(%rbx), %eax
movw %ax, 0x24(%r14)
movl 0x20(%rbx), %eax
movl %eax, 0x20(%r14)
leaq 0x68(%rsp), %rdi
movq %rbp, %rsi
leaq 0x718(%rsp), %rdx
callq 0x15a46
movq 0x720(%rsp), %rdi
cmpq %r13, %rdi
je 0x1f3be
movq 0x730(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xde0(%rsp), %rdi
leaq 0xdf0(%rsp), %rax
cmpq %rax, %rdi
je 0x1f3e3
movq 0xdf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r13, %r15
movq 0xdc0(%rsp), %rdi
leaq 0xdd0(%rsp), %rax
cmpq %rax, %rdi
je 0x1f40b
movq 0xdd0(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x68(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0x68(%rsp)
movq 0x48(%rsp), %r13
movq %r13, %rdi
leaq 0x68(%rsp), %rsi
callq 0xb14e
movl 0x3c(%rsp), %edi
movl 0x18(%rsp), %esi
movl 0x5c(%rsp), %edx
movl 0x60(%rsp), %ecx
movl 0x14(%rsp), %r8d
movq %r13, %r9
callq 0x1e8b6
testb %al, %al
jne 0x225b7
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x1f48e
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
movq %r15, %r13
je 0x1f4b3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x1f4d8
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r12
cmpq 0x40(%rsp), %r12
jne 0x1f2f9
jmp 0x224ba
leaq 0x1288(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1230(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x448(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bafa(%rip), %rsi     # 0x3b020
leaq 0x1baf5(%rip), %rdx     # 0x3b022
leaq 0x438(%rsp), %rdi
callq 0xb62c
leaq 0x838(%rsp), %rdi
leaq 0x438(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
movzbl 0x3c(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1288(%rsp), %rcx
leaq 0x1230(%rsp), %r8
leaq 0x838(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x850(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f5a6
movq 0x850(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f5c3
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f5e4
movq 0x1268(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1248(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f605
movq 0x1248(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f626
movq 0x12c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f647
movq 0x12a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b9d5(%rip), %rsi     # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x1f7b9
leaq 0x11d8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1180(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x428(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1b986(%rip), %rsi     # 0x3b023
leaq 0x1b981(%rip), %rdx     # 0x3b025
leaq 0x418(%rsp), %rdi
callq 0xb62c
leaq 0x808(%rsp), %rdi
leaq 0x418(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x11d8(%rsp), %rcx
leaq 0x1180(%rsp), %r8
leaq 0x808(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x820(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f718
movq 0x820(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x418(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f735
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f756
movq 0x11b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1198(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f777
movq 0x1198(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f798
movq 0x1210(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f7b9
movq 0x11f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b866(%rip), %rsi     # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %r15b
orb %r15b, %al
jne 0x1f936
leaq 0x1128(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x10d0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x408(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1b80d(%rip), %rsi     # 0x3b026
leaq 0x1b808(%rip), %rdx     # 0x3b028
leaq 0x3f8(%rsp), %rdi
callq 0xb62c
leaq 0x7d8(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1128(%rsp), %rcx
leaq 0x10d0(%rsp), %r8
leaq 0x7d8(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x7f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f895
movq 0x7f0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f8b2
movq 0x408(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f8d3
movq 0x1108(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f8f4
movq 0x10e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f915
movq 0x1160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1140(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f936
movq 0x1140(%rsp), %rsi
incq %rsi
callq 0x5360
movl %r15d, 0x64(%rsp)
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rax, 0x18(%rsp)
movq %rcx, 0x50(%rsp)
cmpq %rcx, %rax
je 0x1fa9d
movq 0x18(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x50(%rsp), %rbp
je 0x1fa9d
leaq 0xc8(%rsp), %rbx
leaq 0xd8(%rsp), %r12
movl $0x30, %r13d
callq 0x50e0
cltq
movq %r13, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r15
shlq $0x4, %r15
addq 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x1fa8a
movl (%rbp), %eax
movl %eax, 0xc0(%rsp)
movq %r12, 0xc8(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x1f9f0
movq %rcx, 0xc8(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd8(%rsp)
jmp 0x1f9f8
movups (%rax), %xmm0
movups %xmm0, (%r12)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd0(%rsp)
movq %rax, 0x8(%rbp)
movq $0x0, 0x10(%rbp)
movb $0x0, 0x18(%rbp)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%rbx)
movl (%r15), %eax
movl %eax, (%rbp)
leaq 0x8(%r15), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r15), %eax
movl %eax, 0x28(%rbp)
movzwl 0x2c(%r15), %eax
movw %ax, 0x2c(%rbp)
movl 0xc0(%rsp), %eax
movl %eax, (%r15)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r15)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r15)
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1fa8a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r13
cmpq 0x50(%rsp), %rbp
jne 0x1f982
movq 0x28(%rsp), %r14
subq 0x20(%rsp), %r14
leaq 0x1078(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
movq 0x48(%rsp), %r12
leaq 0x1020(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x3e8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b53a(%rip), %rsi     # 0x3b020
leaq 0x1b535(%rip), %rdx     # 0x3b022
leaq 0x3d8(%rsp), %rdi
callq 0xb62c
leaq 0x7a8(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r12, (%rsp)
movzbl 0x38(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1078(%rsp), %rcx
leaq 0x1020(%rsp), %r8
leaq 0x7a8(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x7c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fb63
movq 0x7c0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fb80
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1058(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movl 0x64(%rsp), %ebp
je 0x1fba5
movq 0x1058(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1038(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fbc6
movq 0x1038(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fbe7
movq 0x10b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1090(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fc08
movq 0x1090(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b414(%rip), %rsi     # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x1fd7b
leaq 0xfc8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0xf70(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x3c8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b3c5(%rip), %rsi     # 0x3b023
leaq 0x1b3c0(%rip), %rdx     # 0x3b025
leaq 0x3b8(%rsp), %rdi
callq 0xb62c
leaq 0x778(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r12, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xfc8(%rsp), %rcx
leaq 0xf70(%rsp), %r8
leaq 0x778(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x790(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fcd6
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fcf3
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movl 0x64(%rsp), %ebp
je 0x1fd18
movq 0xfa8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fd39
movq 0xf88(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1000(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fd5a
movq 0x1000(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fd7b
movq 0xfe0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b2a4(%rip), %rsi     # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb %bpl, %al
jne 0x1fef1
leaq 0xf18(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0xec0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x3a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b24f(%rip), %rsi     # 0x3b026
leaq 0x1b24a(%rip), %rdx     # 0x3b028
leaq 0x398(%rsp), %rdi
callq 0xb62c
leaq 0x748(%rsp), %rdi
leaq 0x398(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r12, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xf18(%rsp), %rcx
leaq 0xec0(%rsp), %r8
leaq 0x748(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x2360e
leaq 0x760(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fe50
movq 0x760(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x398(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fe6d
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xef8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fe8e
movq 0xef8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xed8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1feaf
movq 0xed8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fed0
movq 0xf50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fef1
movq 0xf30(%rsp), %rsi
incq %rsi
callq 0x5360
sarq $0x4, %r14
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %r14
movslq %r14d, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %rcx, 0x50(%rsp)
cmpq %rax, %rcx
je 0x20072
movq 0x50(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x18(%rsp), %rbp
je 0x20072
leaq 0xc8(%rsp), %rbx
leaq 0xd8(%rsp), %r12
movl $0x30, %r15d
callq 0x50e0
cltq
movq %r15, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r13
shlq $0x4, %r13
addq 0x50(%rsp), %r13
cmpq %r13, %rbp
je 0x2005f
movl (%rbp), %eax
movl %eax, 0xc0(%rsp)
movq %r12, 0xc8(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x1ffc3
movq %rcx, 0xc8(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd8(%rsp)
jmp 0x1ffcb
movups (%rax), %xmm0
movups %xmm0, (%r12)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd0(%rsp)
movq %rax, 0x8(%rbp)
movq $0x0, 0x10(%rbp)
movb $0x0, 0x18(%rbp)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%rbx)
movl (%r13), %eax
movl %eax, (%rbp)
leaq 0x8(%r13), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r13), %eax
movl %eax, 0x28(%rbp)
movzwl 0x2c(%r13), %eax
movw %ax, 0x2c(%rbp)
movl 0xc0(%rsp), %eax
movl %eax, (%r13)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r13)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r13)
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2005f
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r15
cmpq 0x18(%rsp), %rbp
jne 0x1ff55
movq 0x20(%rsp), %rbp
movq 0x28(%rsp), %r15
cmpq %r15, %rbp
je 0x223c5
leaq 0x128(%rsp), %r12
leaq 0x2c0(%rsp), %rbx
movq 0x40(%rsp), %rax
incl %eax
movq %rax, 0x40(%rsp)
movl (%rbp), %eax
movl %eax, 0x120(%rsp)
leaq 0x138(%rsp), %rax
movq %rax, 0x128(%rsp)
movq 0x8(%rbp), %rsi
movq 0x10(%rbp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xb544
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%r12)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%r12)
leaq 0xcb0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
movl 0x120(%rsp), %eax
movl %eax, 0x2b8(%rsp)
leaq 0x2d0(%rsp), %rax
movq %rax, 0x2c0(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb544
movzwl 0x24(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x20(%r12), %eax
movl %eax, 0x20(%rbx)
leaq 0xc0(%rsp), %rdi
leaq 0xcb0(%rsp), %rsi
leaq 0x2b8(%rsp), %rdx
callq 0x15a46
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x20182
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xcd8(%rsp), %rdi
leaq 0xce8(%rsp), %rax
cmpq %rax, %rdi
je 0x201a7
movq 0xce8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xcb8(%rsp), %rdi
leaq 0xcc8(%rsp), %rax
cmpq %rax, %rdi
je 0x201cc
movq 0xcc8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc58(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1a9c6
leaq 0xe10(%rsp), %r14
movq %r14, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x220(%rsp), %rdi
leaq 0xc58(%rsp), %rsi
movq %r14, %rdx
callq 0x15216
movq 0xe38(%rsp), %rdi
leaq 0xe48(%rsp), %rax
cmpq %rax, %rdi
je 0x20236
movq 0xe48(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe18(%rsp), %rdi
leaq 0xe28(%rsp), %rax
cmpq %rax, %rdi
je 0x2025b
movq 0xe28(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc80(%rsp), %rdi
leaq 0xc90(%rsp), %rax
cmpq %rax, %rdi
je 0x20280
movq 0xc90(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc60(%rsp), %rdi
leaq 0xc70(%rsp), %rax
cmpq %rax, %rdi
je 0x202a5
movq 0xc70(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x250(%rsp), %eax
jne 0x202d5
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x202d5
cmpl $0x6, %eax
je 0x202d5
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x220(%rsp), %rdi
callq 0x15b78
addl 0x5c(%rsp), %r13d
xorb 0x3c(%rsp), %al
movzbl %al, %eax
movl 0x60(%rsp), %r14d
subl %eax, %r14d
movl %r14d, %eax
orl %r13d, %eax
js 0x20351
movq 0x48(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xb14e
movq 0x40(%rsp), %rdi
xorl %esi, %esi
movl %r13d, %edx
movl %r14d, %ecx
movl 0x14(%rsp), %r8d
movq 0x48(%rsp), %r9
callq 0x1e8b6
movl $0x1, %r14d
testb %al, %al
jne 0x20357
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
xorl %r14d, %r14d
jmp 0x20357
movl $0x5, %r14d
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x2037c
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x203a1
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x203c6
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x203eb
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x5, %r14d
je 0x203f6
testl %r14d, %r14d
jne 0x20409
addq $0x30, %rbp
cmpq %r15, %rbp
jne 0x200a1
movl $0x4, %r14d
testb $0x3, %r14b
jmp 0x223bf
leaq 0x1ac0a(%rip), %rsi     # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
movzbl %bl, %r14d
testl %eax, %eax
je 0x20525
leaq 0x2410(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
movl %r15d, %ebx
leaq 0x23b8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x708(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1abb4(%rip), %rsi     # 0x3b023
leaq 0x1abaf(%rip), %rdx     # 0x3b025
leaq 0x6f8(%rsp), %rdi
callq 0xb62c
leaq 0xc28(%rsp), %rdi
leaq 0x6f8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2410(%rsp), %rcx
leaq 0x23b8(%rsp), %r8
leaq 0xc28(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xc40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x204eb
movq 0xc40(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x20508
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x23b8(%rsp), %rdi
callq 0xb116
leaq 0x2410(%rsp), %rdi
callq 0xb116
movl %ebx, %r15d
leaq 0x1aafa(%rip), %rsi     # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %r15b
movl %r15d, 0x64(%rsp)
orb %r15b, %al
jne 0x2063e
leaq 0x2360(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x2308(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x6e8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1aa9c(%rip), %rsi     # 0x3b026
leaq 0x1aa97(%rip), %rdx     # 0x3b028
leaq 0x6d8(%rsp), %rdi
callq 0xb62c
leaq 0xbf8(%rsp), %rdi
leaq 0x6d8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2360(%rsp), %rcx
leaq 0x2308(%rsp), %r8
leaq 0xbf8(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xc10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20607
movq 0xc10(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x20624
movq 0x6e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2308(%rsp), %rdi
callq 0xb116
leaq 0x2360(%rsp), %rdi
callq 0xb116
leaq 0x1c28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1bd0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x6c8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a9b1(%rip), %rsi     # 0x3b029
leaq 0x1a9ac(%rip), %rdx     # 0x3b02b
leaq 0x6b8(%rsp), %rdi
callq 0xb62c
leaq 0xbc8(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1c28(%rsp), %rcx
leaq 0x1bd0(%rsp), %r8
leaq 0xbc8(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xbe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x206f4
movq 0xbe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x20711
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20732
movq 0x1c08(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1be8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20753
movq 0x1be8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20774
movq 0x1c60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20795
movq 0x1c40(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b78(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1b20(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x6a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a85d(%rip), %rsi     # 0x3b02c
leaq 0x1a858(%rip), %rdx     # 0x3b02e
leaq 0x698(%rsp), %rdi
callq 0xb62c
leaq 0xb98(%rsp), %rdi
leaq 0x698(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1b78(%rsp), %rcx
leaq 0x1b20(%rsp), %r8
leaq 0xb98(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xbb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2084b
movq 0xbb0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x698(%rsp), %rdi
cmpq %r15, %rdi
je 0x20868
movq 0x6a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20889
movq 0x1b58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x208aa
movq 0x1b38(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1bb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x208cb
movq 0x1bb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x208ec
movq 0x1b90(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ac8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1a70(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x688(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a709(%rip), %rsi     # 0x3b02f
leaq 0x1a704(%rip), %rdx     # 0x3b031
leaq 0x678(%rsp), %rdi
callq 0xb62c
leaq 0xb68(%rsp), %rdi
leaq 0x678(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ac8(%rsp), %rcx
leaq 0x1a70(%rsp), %r8
leaq 0xb68(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xb80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x209a2
movq 0xb80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x678(%rsp), %rdi
cmpq %r15, %rdi
je 0x209bf
movq 0x688(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1aa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x209e0
movq 0x1aa8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a01
movq 0x1a88(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a22
movq 0x1b00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ae0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a43
movq 0x1ae0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a18(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x19c0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x668(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a5b5(%rip), %rsi     # 0x3b032
leaq 0x1a5b0(%rip), %rdx     # 0x3b034
leaq 0x658(%rsp), %rdi
callq 0xb62c
leaq 0xb38(%rsp), %rdi
leaq 0x658(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1a18(%rsp), %rcx
leaq 0x19c0(%rsp), %r8
leaq 0xb38(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xb50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20af9
movq 0xb50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x658(%rsp), %rdi
cmpq %r15, %rdi
je 0x20b16
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b37
movq 0x19f8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b58
movq 0x19d8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b79
movq 0x1a50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b9a
movq 0x1a30(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1968(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1910(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x648(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a461(%rip), %rsi     # 0x3b035
leaq 0x1a45d(%rip), %rdx     # 0x3b038
leaq 0x638(%rsp), %rdi
callq 0xb62c
leaq 0xb08(%rsp), %rdi
leaq 0x638(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1968(%rsp), %rcx
leaq 0x1910(%rsp), %r8
leaq 0xb08(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xb20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20c50
movq 0xb20(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x638(%rsp), %rdi
cmpq %r15, %rdi
je 0x20c6d
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1948(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20c8e
movq 0x1948(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1928(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20caf
movq 0x1928(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20cd0
movq 0x19a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1980(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20cf1
movq 0x1980(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18b8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1860(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x628(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a30e(%rip), %rsi     # 0x3b039
leaq 0x1a30a(%rip), %rdx     # 0x3b03c
leaq 0x618(%rsp), %rdi
callq 0xb62c
leaq 0xad8(%rsp), %rdi
leaq 0x618(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x18b8(%rsp), %rcx
leaq 0x1860(%rsp), %r8
leaq 0xad8(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x2360e
leaq 0xaf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20da7
movq 0xaf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x618(%rsp), %rdi
cmpq %r15, %rdi
je 0x20dc4
movq 0x628(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1898(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20de5
movq 0x1898(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1878(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e06
movq 0x1878(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e27
movq 0x18f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e48
movq 0x18d0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rax, 0x18(%rsp)
movq %rcx, 0x50(%rsp)
cmpq %rcx, %rax
je 0x20faa
movq 0x18(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x50(%rsp), %rbp
je 0x20faa
leaq 0xc8(%rsp), %rbx
leaq 0xd8(%rsp), %r13
movl $0x30, %r12d
callq 0x50e0
cltq
movq %r12, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r15
shlq $0x4, %r15
addq 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x20f97
movl (%rbp), %eax
movl %eax, 0xc0(%rsp)
movq %r13, 0xc8(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x20efd
movq %rcx, 0xc8(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd8(%rsp)
jmp 0x20f05
movups (%rax), %xmm0
movups %xmm0, (%r13)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd0(%rsp)
movq %rax, 0x8(%rbp)
movq $0x0, 0x10(%rbp)
movb $0x0, 0x18(%rbp)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%rbx)
movl (%r15), %eax
movl %eax, (%rbp)
leaq 0x8(%r15), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r15), %eax
movl %eax, 0x28(%rbp)
movzwl 0x2c(%r15), %eax
movw %ax, 0x2c(%rbp)
movl 0xc0(%rsp), %eax
movl %eax, (%r15)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r15)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r15)
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0x20f97
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r12
cmpq 0x50(%rsp), %rbp
jne 0x20e8f
movq 0x28(%rsp), %rbx
subq 0x20(%rsp), %rbx
leaq 0x1a068(%rip), %rsi     # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
movzbl 0x38(%rsp), %ebp
testl %eax, %eax
movq 0x48(%rsp), %r15
je 0x210c3
leaq 0x22b0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x2258(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x608(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a00f(%rip), %rsi     # 0x3b023
leaq 0x1a00a(%rip), %rdx     # 0x3b025
leaq 0x5f8(%rsp), %rdi
callq 0xb62c
leaq 0xaa8(%rsp), %rdi
leaq 0x5f8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x22b0(%rsp), %rcx
leaq 0x2258(%rsp), %r8
leaq 0xaa8(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0xac0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2108c
movq 0xac0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x210a9
movq 0x608(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2258(%rsp), %rdi
callq 0xb116
leaq 0x22b0(%rsp), %rdi
callq 0xb116
leaq 0x19f5c(%rip), %rsi     # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb 0x64(%rsp), %al
jne 0x211d0
leaq 0x2200(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x21a8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x5e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19f06(%rip), %rsi     # 0x3b026
leaq 0x19f01(%rip), %rdx     # 0x3b028
leaq 0x5d8(%rsp), %rdi
callq 0xb62c
leaq 0xa78(%rsp), %rdi
leaq 0x5d8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2200(%rsp), %rcx
leaq 0x21a8(%rsp), %r8
leaq 0xa78(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0xa90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21199
movq 0xa90(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x211b6
movq 0x5e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x21a8(%rsp), %rdi
callq 0xb116
leaq 0x2200(%rsp), %rdi
callq 0xb116
leaq 0x1808(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x17b0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x5c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19e1f(%rip), %rsi     # 0x3b029
leaq 0x19e1a(%rip), %rdx     # 0x3b02b
leaq 0x5b8(%rsp), %rdi
callq 0xb62c
leaq 0xa48(%rsp), %rdi
leaq 0x5b8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1808(%rsp), %rcx
leaq 0x17b0(%rsp), %r8
leaq 0xa48(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0xa60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21282
movq 0xa60(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2129f
movq 0x5c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x212c0
movq 0x17e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x212e1
movq 0x17c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1840(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21302
movq 0x1840(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1820(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21323
movq 0x1820(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1758(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1700(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x5a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19ccf(%rip), %rsi     # 0x3b02c
leaq 0x19cca(%rip), %rdx     # 0x3b02e
leaq 0x598(%rsp), %rdi
callq 0xb62c
leaq 0xa18(%rsp), %rdi
leaq 0x598(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1758(%rsp), %rcx
leaq 0x1700(%rsp), %r8
leaq 0xa18(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0xa30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x213d5
movq 0xa30(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x213f2
movq 0x5a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1738(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21413
movq 0x1738(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1718(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21434
movq 0x1718(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1790(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21455
movq 0x1790(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1770(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21476
movq 0x1770(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16a8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1650(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x588(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19b7f(%rip), %rsi     # 0x3b02f
leaq 0x19b7a(%rip), %rdx     # 0x3b031
leaq 0x578(%rsp), %rdi
callq 0xb62c
leaq 0x9e8(%rsp), %rdi
leaq 0x578(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x16a8(%rsp), %rcx
leaq 0x1650(%rsp), %r8
leaq 0x9e8(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0xa00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21528
movq 0xa00(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x578(%rsp), %rdi
cmpq %r14, %rdi
je 0x21545
movq 0x588(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1688(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21566
movq 0x1688(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1668(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21587
movq 0x1668(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x215a8
movq 0x16e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x215c9
movq 0x16c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15f8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x15a0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x568(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19a2f(%rip), %rsi     # 0x3b032
leaq 0x19a2a(%rip), %rdx     # 0x3b034
leaq 0x558(%rsp), %rdi
callq 0xb62c
leaq 0x9b8(%rsp), %rdi
leaq 0x558(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x15f8(%rsp), %rcx
leaq 0x15a0(%rsp), %r8
leaq 0x9b8(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x9d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2167b
movq 0x9d0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x21698
movq 0x568(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x216b9
movq 0x15d8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x216da
movq 0x15b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1630(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x216fb
movq 0x1630(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1610(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2171c
movq 0x1610(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1548(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x14f0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x548(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x198df(%rip), %rsi     # 0x3b035
leaq 0x198db(%rip), %rdx     # 0x3b038
leaq 0x538(%rsp), %rdi
callq 0xb62c
leaq 0x988(%rsp), %rdi
leaq 0x538(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1548(%rsp), %rcx
leaq 0x14f0(%rsp), %r8
leaq 0x988(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x9a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x217ce
movq 0x9a0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x538(%rsp), %rdi
cmpq %r14, %rdi
je 0x217eb
movq 0x548(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1528(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2180c
movq 0x1528(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1508(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2182d
movq 0x1508(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1580(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2184e
movq 0x1580(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1560(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2186f
movq 0x1560(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1498(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1440(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x528(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19790(%rip), %rsi     # 0x3b039
leaq 0x1978c(%rip), %rdx     # 0x3b03c
leaq 0x518(%rsp), %rdi
callq 0xb62c
leaq 0x958(%rsp), %rdi
leaq 0x518(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1498(%rsp), %rcx
leaq 0x1440(%rsp), %r8
leaq 0x958(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x970(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21921
movq 0x970(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x2193e
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1478(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2195f
movq 0x1478(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1458(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21980
movq 0x1458(%rsp), %rsi
incq %rsi
callq 0x5360
sarq $0x4, %rbx
leaq 0x14d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x219a5
movq 0x14d0(%rsp), %rsi
incq %rsi
callq 0x5360
movl %ebp, 0x38(%rsp)
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rbx
leaq 0x14b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x219d8
movq 0x14b0(%rsp), %rsi
incq %rsi
callq 0x5360
movslq %ebx, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %rcx, 0x50(%rsp)
cmpq %rax, %rcx
je 0x21b46
movq 0x50(%rsp), %rax
leaq 0x30(%rax), %r14
cmpq 0x18(%rsp), %r14
je 0x21b46
leaq 0xc8(%rsp), %rbx
leaq 0xd8(%rsp), %r13
movl $0x30, %r12d
callq 0x50e0
cltq
movq %r12, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %rbp
shlq $0x4, %rbp
addq 0x50(%rsp), %rbp
cmpq %rbp, %r14
je 0x21b33
movl (%r14), %eax
movl %eax, 0xc0(%rsp)
movq %r13, 0xc8(%rsp)
movq 0x8(%r14), %rcx
leaq 0x18(%r14), %rax
cmpq %rcx, %rax
je 0x21a98
movq %rcx, 0xc8(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd8(%rsp)
jmp 0x21aa0
movups (%rax), %xmm0
movups %xmm0, (%r13)
leaq 0x8(%r14), %rdi
movq 0x10(%r14), %rcx
movq %rcx, 0xd0(%rsp)
movq %rax, 0x8(%r14)
movq $0x0, 0x10(%r14)
movb $0x0, 0x18(%r14)
movzwl 0x2c(%r14), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r14), %eax
movl %eax, 0x20(%rbx)
movl (%rbp), %eax
movl %eax, (%r14)
leaq 0x8(%rbp), %r15
movq %r15, %rsi
callq 0x5420
movl 0x28(%rbp), %eax
movl %eax, 0x28(%r14)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x2c(%r14)
movl 0xc0(%rsp), %eax
movl %eax, (%rbp)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%rbp)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%rbp)
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0x21b33
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r14
addq $0x30, %r12
cmpq 0x18(%rsp), %r14
jne 0x21a2a
leaq 0x170(%rsp), %rdi
movl (%rdi), %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq 0x118(%rsp), %r12
imull %r12d, %esi
callq 0xafce
movq 0x48(%rsp), %rbx
movl 0x38(%rsp), %ebp
testb %al, %al
jne 0x22008
leaq 0x2150(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x20f8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x508(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19503(%rip), %rsi     # 0x3b0b8
leaq 0x194fe(%rip), %rdx     # 0x3b0ba
leaq 0x4f8(%rsp), %rdi
callq 0xb62c
leaq 0x928(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2150(%rsp), %rcx
leaq 0x20f8(%rsp), %r8
leaq 0x928(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x940(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21c2d
movq 0x940(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x21c4a
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20f8(%rsp), %rdi
callq 0xb116
leaq 0x2150(%rsp), %rdi
callq 0xb116
leaq 0x20a0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x2048(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x4e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19414(%rip), %rsi     # 0x3b0b2
leaq 0x1940f(%rip), %rdx     # 0x3b0b4
leaq 0x4d8(%rsp), %rdi
callq 0xb62c
leaq 0x8f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x20a0(%rsp), %rcx
leaq 0x2048(%rsp), %r8
leaq 0x8f8(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x910(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21d16
movq 0x910(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x21d33
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2048(%rsp), %rdi
callq 0xb116
leaq 0x20a0(%rsp), %rdi
callq 0xb116
leaq 0x1ff0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1f98(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x4c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1932e(%rip), %rsi     # 0x3b0b5
leaq 0x19329(%rip), %rdx     # 0x3b0b7
leaq 0x4b8(%rsp), %rdi
callq 0xb62c
leaq 0x8c8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ff0(%rsp), %rcx
leaq 0x1f98(%rsp), %r8
leaq 0x8c8(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x8e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21dff
movq 0x8e0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x21e1c
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1f98(%rsp), %rdi
callq 0xb116
leaq 0x1ff0(%rsp), %rdi
callq 0xb116
leaq 0x1f40(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1ee8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x4a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1924b(%rip), %rsi     # 0x3b0bb
leaq 0x19246(%rip), %rdx     # 0x3b0bd
leaq 0x498(%rsp), %rdi
callq 0xb62c
leaq 0x898(%rsp), %rdi
leaq 0x498(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1f40(%rsp), %rcx
leaq 0x1ee8(%rsp), %r8
leaq 0x898(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x8b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21ee8
movq 0x8b0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x21f05
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ee8(%rsp), %rdi
callq 0xb116
leaq 0x1f40(%rsp), %rdi
callq 0xb116
leaq 0x1e90(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1a9c6
leaq 0x1e38(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x488(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19165(%rip), %rsi     # 0x3b0be
leaq 0x19160(%rip), %rdx     # 0x3b0c0
leaq 0x478(%rsp), %rdi
callq 0xb62c
leaq 0x868(%rsp), %rdi
leaq 0x478(%rsp), %rsi
movl 0x14(%rsp), %edx
callq 0x14f5c
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1e90(%rsp), %rcx
leaq 0x1e38(%rsp), %r8
leaq 0x868(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x2360e
leaq 0x880(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21fd1
movq 0x880(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x478(%rsp), %rdi
cmpq %r14, %rdi
je 0x21fee
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e38(%rsp), %rdi
callq 0xb116
leaq 0x1e90(%rsp), %rdi
callq 0xb116
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %rbp
cmpq %rbp, %rbx
je 0x223c5
leaq 0x128(%rsp), %r14
leaq 0x2f0(%rsp), %r12
movq 0x118(%rsp), %rax
notl %eax
andl $0x1, %eax
movl %eax, 0x18(%rsp)
movl (%rbx), %eax
movl %eax, 0x120(%rsp)
leaq 0x138(%rsp), %rax
movq %rax, 0x128(%rsp)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb544
movzwl 0x2c(%rbx), %eax
movw %ax, 0x24(%r14)
movl 0x28(%rbx), %eax
movl %eax, 0x20(%r14)
leaq 0xd60(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
movl 0x120(%rsp), %eax
movl %eax, 0x2e8(%rsp)
leaq 0x300(%rsp), %rax
movq %rax, 0x2f0(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xb544
movzwl 0x24(%r14), %eax
movw %ax, 0x24(%r12)
movl 0x20(%r14), %eax
movl %eax, 0x20(%r12)
leaq 0xc0(%rsp), %rdi
leaq 0xd60(%rsp), %rsi
leaq 0x2e8(%rsp), %rdx
callq 0x15a46
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x2211c
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd88(%rsp), %rdi
leaq 0xd98(%rsp), %rax
cmpq %rax, %rdi
je 0x22141
movq 0xd98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd68(%rsp), %rdi
leaq 0xd78(%rsp), %rax
cmpq %rax, %rdi
je 0x22166
movq 0xd78(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0xc0(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0xc0(%rsp)
leaq 0xd08(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1a9c6
leaq 0xe68(%rsp), %r15
movq %r15, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1a9c6
leaq 0x220(%rsp), %rdi
leaq 0xd08(%rsp), %rsi
movq %r15, %rdx
callq 0x15216
movq 0xe90(%rsp), %rdi
leaq 0xea0(%rsp), %rax
cmpq %rax, %rdi
je 0x221e7
movq 0xea0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe70(%rsp), %rdi
leaq 0xe80(%rsp), %rax
cmpq %rax, %rdi
je 0x2220c
movq 0xe80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd30(%rsp), %rdi
leaq 0xd40(%rsp), %rax
cmpq %rax, %rdi
je 0x22231
movq 0xd40(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd10(%rsp), %rdi
leaq 0xd20(%rsp), %rax
cmpq %rax, %rdi
je 0x22256
movq 0xd20(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x250(%rsp), %eax
jne 0x22286
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x22286
cmpl $0x6, %eax
je 0x22286
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x220(%rsp), %rdi
callq 0x15b78
addl 0x5c(%rsp), %r13d
xorb 0x40(%rsp), %al
movzbl %al, %eax
movl 0x60(%rsp), %r15d
subl %eax, %r15d
movl %r15d, %eax
orl %r13d, %eax
js 0x22303
movq 0x48(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xb14e
movl 0x3c(%rsp), %edi
movl 0x18(%rsp), %esi
movl %r13d, %edx
movl %r15d, %ecx
movl 0x14(%rsp), %r8d
movq 0x48(%rsp), %r9
callq 0x1e8b6
movl $0x1, %r15d
testb %al, %al
jne 0x22309
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
xorl %r15d, %r15d
jmp 0x22309
movl $0x3, %r15d
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x2232e
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x22353
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x22378
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x2239d
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x3, %r15d
je 0x223a8
testl %r15d, %r15d
jne 0x223bb
addq $0x30, %rbx
cmpq %rbp, %rbx
jne 0x2203c
movl $0x2, %r15d
testb $0x1, %r15b
sete %bpl
jmp 0x223c8
movb $0x1, %bpl
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x223e9
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2240a
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2242b
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x200(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2244c
movq 0x200(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2246d
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2248e
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x224af
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
testb %bpl, %bpl
je 0x22557
leaq 0x68(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x24316
movl 0x118(%rsp), %eax
leaq 0xa0(%rsp), %rcx
movslq 0x14(%rcx), %rdx
movslq 0x5c(%rsp), %rsi
movslq 0x60(%rsp), %rdi
imulq $0x1081c8, 0x280(%rsp), %r8 # imm = 0x1081C8
addq 0x26a77(%rip), %r8      # 0x48f70
imulq $0x42072, %rax, %rax    # imm = 0x42072
addq %r8, %rax
imulq $0xbbd, %rdx, %rdx      # imm = 0xBBD
imulq $0x259, %rsi, %rsi      # imm = 0x259
addq %rax, %rsi
addq %rdx, %rsi
movb $0x0, (%rdi,%rsi)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x22534
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22555
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
leaq 0x1a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22578
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22599
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20(%rsp), %rdi
callq 0xb17a
movl %ebx, %eax
addq $0x2468, %rsp           # imm = 0x2468
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x225dc
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x225fe
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x22623
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
jmp 0x22557
movq %rax, %rbx
leaq 0x880(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22653
movq 0x880(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22653
movq %rax, %rbx
movq 0x478(%rsp), %rdi
cmpq %r14, %rdi
je 0x22675
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22675
movq %rax, %rbx
leaq 0x1e38(%rsp), %rdi
callq 0xb116
jmp 0x22687
movq %rax, %rbx
leaq 0x1e90(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x8b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x226bd
movq 0x8b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x226bd
movq %rax, %rbx
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x226df
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x226df
movq %rax, %rbx
leaq 0x1ee8(%rsp), %rdi
callq 0xb116
jmp 0x226f1
movq %rax, %rbx
leaq 0x1f40(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x8e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22727
movq 0x8e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22727
movq %rax, %rbx
movq 0x4b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x22749
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22749
movq %rax, %rbx
leaq 0x1f98(%rsp), %rdi
callq 0xb116
jmp 0x2275b
movq %rax, %rbx
leaq 0x1ff0(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x910(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22791
movq 0x910(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22791
movq %rax, %rbx
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x227b3
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x227b3
movq %rax, %rbx
leaq 0x2048(%rsp), %rdi
callq 0xb116
jmp 0x227c5
movq %rax, %rbx
leaq 0x20a0(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x940(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x227fb
movq 0x940(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x227fb
movq %rax, %rbx
movq 0x4f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2281d
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2281d
movq %rax, %rbx
leaq 0x20f8(%rsp), %rdi
callq 0xb116
jmp 0x2282f
movq %rax, %rbx
leaq 0x2150(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xa90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22865
movq 0xa90(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22865
movq %rax, %rbx
movq 0x5d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x22887
movq 0x5e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22887
movq %rax, %rbx
leaq 0x21a8(%rsp), %rdi
callq 0xb116
jmp 0x22899
movq %rax, %rbx
leaq 0x2200(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xc10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x228cf
movq 0xc10(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x228cf
movq %rax, %rbx
movq 0x6d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x228f1
movq 0x6e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x228f1
movq %rax, %rbx
leaq 0x2308(%rsp), %rdi
callq 0xb116
jmp 0x22903
movq %rax, %rbx
leaq 0x2360(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x760(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22939
movq 0x760(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22939
movq %rax, %rbx
movq 0x398(%rsp), %rdi
cmpq %r15, %rdi
je 0x2295b
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2295b
movq %rax, %rbx
leaq 0xec0(%rsp), %rdi
callq 0xb116
jmp 0x2296d
movq %rax, %rbx
leaq 0xf18(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x7f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x229a3
movq 0x7f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x229a3
movq %rax, %rbx
movq 0x3f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x229c5
movq 0x408(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x229c5
movq %rax, %rbx
leaq 0x10d0(%rsp), %rdi
callq 0xb116
jmp 0x229d7
movq %rax, %rbx
leaq 0x1128(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xac0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22a0d
movq 0xac0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a0d
movq %rax, %rbx
movq 0x5f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x22a2f
movq 0x608(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a2f
movq %rax, %rbx
leaq 0x2258(%rsp), %rdi
callq 0xb116
jmp 0x22a41
movq %rax, %rbx
leaq 0x22b0(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xc40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22a77
movq 0xc40(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a77
movq %rax, %rbx
movq 0x6f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x22a99
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a99
movq %rax, %rbx
leaq 0x23b8(%rsp), %rdi
callq 0xb116
jmp 0x22aab
movq %rax, %rbx
leaq 0x2410(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x790(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22ae1
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22ae1
movq %rax, %rbx
movq 0x3b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x22b03
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b03
movq %rax, %rbx
leaq 0xf70(%rsp), %rdi
callq 0xb116
jmp 0x22b15
movq %rax, %rbx
leaq 0xfc8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x820(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22b4b
movq 0x820(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b4b
movq %rax, %rbx
movq 0x418(%rsp), %rdi
cmpq %r14, %rdi
je 0x22b6d
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b6d
movq %rax, %rbx
leaq 0x1180(%rsp), %rdi
callq 0xb116
jmp 0x22b7f
movq %rax, %rbx
leaq 0x11d8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x970(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22bb5
movq 0x970(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22bb5
movq %rax, %rbx
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x22bd7
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22bd7
movq %rax, %rbx
leaq 0x1440(%rsp), %rdi
callq 0xb116
jmp 0x22be9
movq %rax, %rbx
leaq 0x1498(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x9a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22c1f
movq 0x9a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c1f
movq %rax, %rbx
movq 0x538(%rsp), %rdi
cmpq %r14, %rdi
je 0x22c41
movq 0x548(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c41
movq %rax, %rbx
leaq 0x14f0(%rsp), %rdi
callq 0xb116
jmp 0x22c53
movq %rax, %rbx
leaq 0x1548(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x9d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22c89
movq 0x9d0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c89
movq %rax, %rbx
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x22cab
movq 0x568(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22cab
movq %rax, %rbx
leaq 0x15a0(%rsp), %rdi
callq 0xb116
jmp 0x22cbd
movq %rax, %rbx
leaq 0x15f8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xa00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22cf3
movq 0xa00(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22cf3
movq %rax, %rbx
movq 0x578(%rsp), %rdi
cmpq %r14, %rdi
je 0x22d15
movq 0x588(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22d15
movq %rax, %rbx
leaq 0x1650(%rsp), %rdi
callq 0xb116
jmp 0x22d27
movq %rax, %rbx
leaq 0x16a8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xa30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22d5d
movq 0xa30(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22d5d
movq %rax, %rbx
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x22d7f
movq 0x5a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22d7f
movq %rax, %rbx
leaq 0x1700(%rsp), %rdi
callq 0xb116
jmp 0x22d91
movq %rax, %rbx
leaq 0x1758(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xa60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22dc7
movq 0xa60(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22dc7
movq %rax, %rbx
movq 0x5b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x22de9
movq 0x5c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22de9
movq %rax, %rbx
leaq 0x17b0(%rsp), %rdi
callq 0xb116
jmp 0x22dfb
movq %rax, %rbx
leaq 0x1808(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xaf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e31
movq 0xaf0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e31
movq %rax, %rbx
movq 0x618(%rsp), %rdi
cmpq %r15, %rdi
je 0x22e53
movq 0x628(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e53
movq %rax, %rbx
leaq 0x1860(%rsp), %rdi
callq 0xb116
jmp 0x22e65
movq %rax, %rbx
leaq 0x18b8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xb20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e9b
movq 0xb20(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e9b
movq %rax, %rbx
movq 0x638(%rsp), %rdi
cmpq %r15, %rdi
je 0x22ebd
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22ebd
movq %rax, %rbx
leaq 0x1910(%rsp), %rdi
callq 0xb116
jmp 0x22ecf
movq %rax, %rbx
leaq 0x1968(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xb50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22f05
movq 0xb50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f05
movq %rax, %rbx
movq 0x658(%rsp), %rdi
cmpq %r15, %rdi
je 0x22f27
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f27
movq %rax, %rbx
leaq 0x19c0(%rsp), %rdi
callq 0xb116
jmp 0x22f39
movq %rax, %rbx
leaq 0x1a18(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xb80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22f6f
movq 0xb80(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f6f
movq %rax, %rbx
movq 0x678(%rsp), %rdi
cmpq %r15, %rdi
je 0x22f91
movq 0x688(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f91
movq %rax, %rbx
leaq 0x1a70(%rsp), %rdi
callq 0xb116
jmp 0x22fa3
movq %rax, %rbx
leaq 0x1ac8(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xbb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22fd9
movq 0xbb0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22fd9
movq %rax, %rbx
movq 0x698(%rsp), %rdi
cmpq %r15, %rdi
je 0x22ffb
movq 0x6a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22ffb
movq %rax, %rbx
leaq 0x1b20(%rsp), %rdi
callq 0xb116
jmp 0x2300d
movq %rax, %rbx
leaq 0x1b78(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xbe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23043
movq 0xbe0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23043
movq %rax, %rbx
movq 0x6b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x23065
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23065
movq %rax, %rbx
leaq 0x1bd0(%rsp), %rdi
callq 0xb116
jmp 0x23077
movq %rax, %rbx
leaq 0x1c28(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x230ad
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x230ad
movq %rax, %rbx
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x23574
movq 0x468(%rsp), %rsi
jmp 0x2356c
jmp 0x23467
movq %rax, %rbx
leaq 0x7c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x230f9
movq 0x7c0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x230f9
movq %rax, %rbx
movq 0x3d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2311b
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2311b
movq %rax, %rbx
leaq 0x1020(%rsp), %rdi
callq 0xb116
jmp 0x2312d
movq %rax, %rbx
leaq 0x1078(%rsp), %rdi
jmp 0x231c5
movq %rax, %rbx
leaq 0x850(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23163
movq 0x850(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23163
movq %rax, %rbx
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0x23185
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23185
movq %rax, %rbx
leaq 0x1230(%rsp), %rdi
callq 0xb116
jmp 0x231bd
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x231d2
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x231d2
movq %rax, %rbx
leaq 0x1288(%rsp), %rdi
callq 0xb116
jmp 0x23574
movq %rax, %rbx
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x23574
movq 0x388(%rsp), %rsi
jmp 0x2356c
jmp 0x23467
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x2321f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2321f
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x235ee
movq 0x328(%rsp), %rsi
jmp 0x2350b
jmp 0x233cb
jmp 0x2329e
movq %rax, %rbx
leaq 0x1c80(%rsp), %rdi
callq 0xb116
jmp 0x23259
movq %rax, %rbx
leaq 0x1cd8(%rsp), %rdi
jmp 0x232c3
jmp 0x232f6
jmp 0x232f6
movq %rax, %rbx
leaq 0x1d30(%rsp), %rdi
callq 0xb116
jmp 0x23282
movq %rax, %rbx
leaq 0x1d88(%rsp), %rdi
jmp 0x23341
jmp 0x23371
jmp 0x2339a
jmp 0x233cb
movq %rax, %rbx
jmp 0x23595
movq %rax, %rbx
leaq 0x12e0(%rsp), %rdi
callq 0xb116
jmp 0x232bb
movq %rax, %rbx
leaq 0x1338(%rsp), %rdi
callq 0xb116
jmp 0x235b6
jmp 0x232f6
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x23301
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23301
movq %rax, %rbx
jmp 0x235b6
movq %rax, %rbx
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x235ee
movq 0x348(%rsp), %rsi
jmp 0x2350b
movq %rax, %rbx
leaq 0x1390(%rsp), %rdi
callq 0xb116
jmp 0x23339
jmp 0x233cb
movq %rax, %rbx
leaq 0x13e8(%rsp), %rdi
callq 0xb116
jmp 0x235d7
movq %rax, %rbx
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2337c
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2337c
movq %rax, %rbx
jmp 0x235d7
movq %rax, %rbx
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x235ee
movq 0x368(%rsp), %rsi
jmp 0x2350b
movq %rax, %rbx
jmp 0x235e4
jmp 0x233cb
jmp 0x233cb
jmp 0x23467
jmp 0x233cb
jmp 0x23467
movq %rax, %rbx
jmp 0x235fb
jmp 0x233cb
jmp 0x23467
jmp 0x23467
movq %rax, %rbx
jmp 0x233f3
movq %rax, %rbx
jmp 0x235ee
movq %rax, %rbx
movq 0x720(%rsp), %rdi
cmpq %r13, %rdi
je 0x233f3
movq 0x730(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xdb8(%rsp), %rdi
jmp 0x234e5
movq %rax, %rbx
jmp 0x234ea
jmp 0x23467
jmp 0x2346f
movq %rax, %rbx
jmp 0x23439
movq %rax, %rbx
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x23439
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd60(%rsp), %rdi
jmp 0x2354a
jmp 0x234b1
movq %rax, %rbx
jmp 0x2345d
movq %rax, %rbx
leaq 0xe68(%rsp), %rdi
callq 0xb116
leaq 0xd08(%rsp), %rdi
jmp 0x234d6
movq %rax, %rbx
jmp 0x23574
movq %rax, %rbx
jmp 0x2354f
movq %rax, %rbx
jmp 0x234a4
movq %rax, %rbx
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x234a4
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xcb0(%rsp), %rdi
jmp 0x2354a
movq %rax, %rbx
jmp 0x23542
movq %rax, %rbx
jmp 0x234ce
movq %rax, %rbx
leaq 0xe10(%rsp), %rdi
callq 0xb116
leaq 0xc58(%rsp), %rdi
callq 0xb116
jmp 0x23542
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xb116
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x235ee
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x235ee
jmp 0x2351a
movq %rax, %rbx
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x23542
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc0(%rsp), %rdi
callq 0xb116
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x23574
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23595
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x235b6
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x235d7
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c8(%rsp), %rdi
callq 0xb116
leaq 0x68(%rsp), %rdi
callq 0xb116
leaq 0x170(%rsp), %rdi
callq 0xb116
leaq 0x20(%rsp), %rdi
callq 0xb17a
movq %rbx, %rdi
callq 0x55e0
nop