// File: /workspace/github_cpp_makefile_star2_O1/joao18araujo[P]pierluigi/src/fourth_species_counterpoint.cpp
// Function: FourthSpeciesCounterpoint::solve(unsigned int, unsigned int, int, int, bool, Song&)
bool FourthSpeciesCounterpoint::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) && !dp[position][compass_position][counterpoint.back().midi_number][paralels][same_movements]) return false;

  vector<Interval> possible_intervals;

  Note note = song->notes[position];

  if(position and (position < song->size_without_rest() - 1 or compass_position == 0)){
    auto previous_note = song->notes[position - 1 + (compass_position != 0)];
    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);
    auto linked_interval = Interval(note, previous_counterpoint_note);

    int size = 0;
    if(not note.rest()){
      if(compass_position == 0){
        if(linked_interval.is_dissonant()) {
          possible_intervals.push_back(linked_interval);
          size = possible_intervals.size();
        }

        if(ascendant){
          possible_intervals.push_back(Interval("P4", ascendant));
          possible_intervals.push_back(Interval("m7", ascendant));
          possible_intervals.push_back(Interval("M7", ascendant));
        }else{
          possible_intervals.push_back(Interval("m2", ascendant));
          possible_intervals.push_back(Interval("M2", ascendant));
          possible_intervals.push_back(Interval("m9", ascendant));
          possible_intervals.push_back(Interval("M9", ascendant));
        }
      }else{
        if(ascendant){
          if(previous_interval.quantitative == 4){
            possible_intervals.push_back(Interval("m3", ascendant));
            possible_intervals.push_back(Interval("M3", ascendant));
          }else if(previous_interval.quantitative == 7){
            possible_intervals.push_back(Interval("m6", ascendant));
            possible_intervals.push_back(Interval("M6", ascendant));
          }
        }else{
          if(previous_interval.quantitative == 2){
            possible_intervals.push_back(Interval("m3", ascendant));
            possible_intervals.push_back(Interval("M3", ascendant));
          }else if(previous_interval.quantitative == 9){
            possible_intervals.push_back(Interval("m10", ascendant));
            possible_intervals.push_back(Interval("M10", ascendant));
          }
        }
      }

      random_shuffle(possible_intervals.begin() + size, possible_intervals.end());
    }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;
      c_note.linked = (c_note == counterpoint.back());
      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 + compass_position, (compass_position + 1)%2, par, sm, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }
  }else if(position == song->size_without_rest() - 1 && compass_position){
    //Ú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);

    if(not note.rest()){
      analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P1", ascendant), &counterpoint);
      if(previous_interval != "P8")
        analyse_and_add_interval(true, melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);
      if(previous_interval != "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_interval != "P8")
        analyse_and_add_interval(false, !melodic_ascendant, possible_intervals, previous_note, note, Interval("P8", ascendant), &counterpoint);
      if(previous_interval != "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)); //TODO: criar método retornando qualidade
      sm = same_movements -  (melodic_interval.ascendant() != melodic_ascendant);
      if(par < 0 || sm < 0) continue;
      c_note.duration /= 2;
      counterpoint.notes.push_back(c_note);
      if(solve(position + 1, 0, par, sm, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }
  }else{
    //Primeira nota
    if(compass_position == 0){
      counterpoint.notes.push_back(Note("r", "", 0, song->notes[0].duration / 2));
      if(solve(0, 1, paralels, same_movements, ascendant, counterpoint)) return true;
      counterpoint.notes.pop_back();
    }else{
      possible_intervals.push_back(Interval("P1", ascendant));
      possible_intervals.push_back(Interval("P8", ascendant));
      possible_intervals.push_back(Interval("m3", ascendant));
      possible_intervals.push_back(Interval("M3", ascendant));
      possible_intervals.push_back(Interval("m7", ascendant));
      possible_intervals.push_back(Interval("M7", ascendant));
      possible_intervals.push_back(Interval("m10", ascendant));
      possible_intervals.push_back(Interval("M10", 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 $0x1308, %rsp           # imm = 0x1308
movq %r9, %r15
movl %r8d, %r13d
movl %ecx, 0xa4(%rsp)
movl %edx, 0xa0(%rsp)
movl %esi, %r12d
movl %edi, %r14d
movl %esi, %ebp
addl %edi, %ebp
jne 0x10125
leaq 0x396a6(%rip), %rdi     # 0x497b0
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
movl $0x1, %esi
callq 0x51f0
callq 0x5240
movl %eax, %edi
callq 0x5310
leaq 0x9c0237c(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x2429a
movb $0x1, %bl
cmpl %r14d, %eax
jbe 0x132fd
movl %r14d, %edi
testl %ebp, %ebp
movq %rdi, 0x118(%rsp)
je 0x101cd
movl %ebp, 0x34(%rsp)
movl %r13d, %ebp
movq %r14, %r13
movl %r12d, %r14d
leaq 0x12b0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x24316
movslq 0x4c(%rbx), %rax
movslq 0xa0(%rsp), %rcx
movslq 0xa4(%rsp), %rdx
imulq $0x1081c8, 0x118(%rsp), %rsi # imm = 0x1081C8
addq 0x38ddb(%rip), %rsi     # 0x48f70
imulq $0x42072, %r14, %rdi    # imm = 0x42072
movq %r13, %r14
movl %ebp, %r13d
movl 0x34(%rsp), %ebp
addq %rdi, %rsi
movq 0x118(%rsp), %rdi
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 0x101cf
xorl %ebx, %ebx
testl %ebp, %ebp
je 0x1021d
leaq 0x12e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x101f4
movq 0x12e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10215
movq 0x12c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x118(%rsp), %rdi
testb %bl, %bl
je 0x10228
xorl %ebx, %ebx
jmp 0x132fd
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x9c02268(%rip), %rbx   # 0x9c124a8
movq (%rbx), %rax
imulq $0x58, %rdi, %rsi
addq (%rax), %rsi
leaq 0x238(%rsp), %rdi
callq 0x1a9c6
movzbl %r13b, %eax
movl %eax, 0x8(%rsp)
testl %r14d, %r14d
movq %r15, 0x98(%rsp)
movl %r12d, 0x110(%rsp)
je 0x10290
movq (%rbx), %rdi
callq 0x2429a
testl %r12d, %r12d
je 0x10dbe
decl %eax
cmpl %r14d, %eax
ja 0x10dbe
movq (%rbx), %rdi
callq 0x2429a
testl %r12d, %r12d
je 0x10539
decl %eax
cmpl %r14d, %eax
jne 0x10539
movq (%rbx), %rax
leal -0x1(%r14), %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0xa8(%rsp), %rdi
callq 0x1a9c6
movq 0x8(%r15), %rsi
addq $-0x58, %rsi
leaq 0x150(%rsp), %rdi
callq 0x1a9c6
leaq 0x1048(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xff0(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x290(%rsp), %rdi
leaq 0x1048(%rsp), %rsi
leaq 0xff0(%rsp), %rdx
callq 0x15216
leaq 0x1028(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10344
movq 0x1028(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1008(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10365
movq 0x1008(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1080(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10386
movq 0x1080(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1060(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x103a7
movq 0x1060(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x290(%rsp), %rdi
callq 0x15b78
movb %al, 0xf(%rsp)
leaq 0xf98(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xf40(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a9c6
leaq 0x1a8(%rsp), %rdi
leaq 0xf98(%rsp), %rsi
leaq 0xf40(%rsp), %rdx
callq 0x15216
leaq 0xf78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10420
movq 0xf78(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10441
movq 0xf58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10462
movq 0xfd0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10483
movq 0xfb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x238(%rsp), %rdi
callq 0x1c186
movb 0xf(%rsp), %cl
xorb $0x1, %cl
movb %cl, 0x34(%rsp)
testb %al, %al
movq %r14, 0x108(%rsp)
je 0x11111
leaq 0x468(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2ab62(%rip), %rsi     # 0x3b020
leaq 0x2ab5d(%rip), %rdx     # 0x3b022
leaq 0x458(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x458(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10513
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x11d78
movq 0x468(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x11d78
testl %r12d, %r12d
je 0x1225b
leaq 0x408(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2aacb(%rip), %rsi     # 0x3b020
leaq 0x2aac6(%rip), %rdx     # 0x3b022
leaq 0x3f8(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x105b5
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x105d2
movq 0x408(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2aa3e(%rip), %rsi     # 0x3b023
leaq 0x2aa39(%rip), %rdx     # 0x3b025
leaq 0x3d8(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x10649
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x10666
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a9b0(%rip), %rsi     # 0x3b029
leaq 0x2a9ab(%rip), %rdx     # 0x3b02b
leaq 0x3b8(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x106dd
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x106fa
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a91f(%rip), %rsi     # 0x3b02c
leaq 0x2a91a(%rip), %rdx     # 0x3b02e
leaq 0x398(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x10771
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x1078e
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x388(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a91a(%rip), %rsi     # 0x3b0bb
leaq 0x2a915(%rip), %rdx     # 0x3b0bd
leaq 0x378(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x10805
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x10822
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x368(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a889(%rip), %rsi     # 0x3b0be
leaq 0x2a884(%rip), %rdx     # 0x3b0c0
leaq 0x358(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x358(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x10899
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x108b6
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x348(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a76c(%rip), %rsi     # 0x3b035
leaq 0x2a768(%rip), %rdx     # 0x3b038
leaq 0x338(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x338(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x1092d
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x1094a
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a6dc(%rip), %rsi     # 0x3b039
leaq 0x2a6d8(%rip), %rdx     # 0x3b03c
leaq 0x318(%rsp), %rdi
callq 0xb62c
leaq 0xa8(%rsp), %rdi
leaq 0x318(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xfbea
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x109c1
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movl %ebp, 0x34(%rsp)
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x109e2
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rax, 0x108(%rsp)
movq %rcx, 0x90(%rsp)
cmpq %rcx, %rax
leaq 0xc0(%rsp), %r12
je 0x10b5c
movq 0x108(%rsp), %rax
leaq 0x30(%rax), %r13
cmpq 0x90(%rsp), %r13
je 0x10b5c
leaq 0xb0(%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 0x108(%rsp), %r15
cmpq %r15, %r13
je 0x10b46
movl (%r13), %eax
movl %eax, 0xa8(%rsp)
movq %r12, 0xb0(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x10aa6
movq %rcx, 0xb0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xc0(%rsp)
jmp 0x10aae
movups (%rax), %xmm0
movups %xmm0, (%r12)
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0xb8(%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 0xa8(%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 0xb0(%rsp), %rdi
cmpq %r12, %rdi
je 0x10b46
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r13
addq $0x30, %rbp
cmpq 0x90(%rsp), %r13
jne 0x10a34
movq 0x10(%rsp), %r12
movq 0x18(%rsp), %rax
movq %rax, 0x108(%rsp)
cmpq %rax, %r12
je 0x13208
leaq 0x158(%rsp), %rbx
leaq 0x740(%rsp), %r14
leaq 0x750(%rsp), %r13
movl 0x110(%rsp), %eax
notl %eax
andl $0x1, %eax
movl %eax, 0x90(%rsp)
leaq 0x9c0(%rsp), %rbp
movl (%r12), %eax
movl %eax, 0x150(%rsp)
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%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 0x238(%rsp), %rsi
callq 0x1a9c6
movl 0x150(%rsp), %eax
movl %eax, 0x738(%rsp)
movq %r13, 0x740(%rsp)
movq 0x158(%rsp), %rsi
movq 0x160(%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 0xa8(%rsp), %rdi
movq %rbp, %rsi
leaq 0x738(%rsp), %rdx
callq 0x15a46
movq 0x740(%rsp), %rdi
cmpq %r13, %rdi
je 0x10c72
movq 0x750(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x10c97
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r13, %r15
movq 0x9c8(%rsp), %rdi
leaq 0x9d8(%rsp), %rax
cmpq %rax, %rdi
je 0x10cbf
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0xa8(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0xa8(%rsp)
movq 0x98(%rsp), %r13
movq %r13, %rdi
leaq 0xa8(%rsp), %rsi
callq 0xb14e
movl 0x34(%rsp), %edi
movl 0x90(%rsp), %esi
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
movl 0x8(%rsp), %r8d
movq %r13, %r9
callq 0x100d2
testb %al, %al
jne 0x123f9
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x10d5a
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
movq %r15, %r13
je 0x10d82
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x10da7
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r12
cmpq 0x108(%rsp), %r12
jne 0x10baa
jmp 0x13208
movq (%rbx), %rax
cmpl $0x1, %r12d
sbbl $-0x1, %r14d
decl %r14d
imulq $0x58, %r14, %rsi
addq (%rax), %rsi
leaq 0xa8(%rsp), %rdi
callq 0x1a9c6
movq 0x8(%r15), %rsi
addq $-0x58, %rsi
leaq 0x150(%rsp), %rdi
callq 0x1a9c6
leaq 0x1258(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0x1200(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x1a8(%rsp), %rdi
leaq 0x1258(%rsp), %rsi
leaq 0x1200(%rsp), %rdx
callq 0x15216
leaq 0x1238(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e5d
movq 0x1238(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e7e
movq 0x1218(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e9f
movq 0x1290(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10ec0
movq 0x1270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a8(%rsp), %rdi
callq 0x15b78
movb %al, 0x108(%rsp)
leaq 0x11a8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0x1150(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a9c6
leaq 0x120(%rsp), %rdi
leaq 0x11a8(%rsp), %rsi
leaq 0x1150(%rsp), %rdx
callq 0x15216
leaq 0x1188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f3c
movq 0x1188(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1168(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f5d
movq 0x1168(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f7e
movq 0x11e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f9f
movq 0x11c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10f8(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x10a0(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a9c6
leaq 0x208(%rsp), %rdi
leaq 0x10f8(%rsp), %rsi
leaq 0x10a0(%rsp), %rdx
callq 0x15216
leaq 0x10d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11007
movq 0x10d8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11028
movq 0x10b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11049
movq 0x1130(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1106a
movq 0x1110(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x238(%rsp), %rdi
callq 0x1c186
testb %al, %al
movl %ebp, 0x34(%rsp)
je 0x12127
leaq 0x548(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29f8a(%rip), %rsi     # 0x3b020
leaq 0x29f85(%rip), %rdx     # 0x3b022
leaq 0x538(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x538(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x110eb
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x538(%rsp), %rdi
cmpq %r14, %rdi
je 0x12cc9
movq 0x548(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x12cc9
leaq 0xee8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xe90(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x528(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29ed2(%rip), %rsi     # 0x3b020
leaq 0x29ecd(%rip), %rdx     # 0x3b022
leaq 0x518(%rsp), %rdi
callq 0xb62c
leaq 0x888(%rsp), %rdi
leaq 0x518(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
movzbl 0x34(%rsp), %ebx
leaq 0x10(%rsp), %rdx
leaq 0xee8(%rsp), %rcx
leaq 0xe90(%rsp), %r8
leaq 0x888(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x8a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x111ce
movq 0x8a0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x111eb
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xec8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1120c
movq 0xec8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xea8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1122d
movq 0xea8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1124e
movq 0xf20(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1126f
movq 0xf00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x48(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29da4(%rip), %rsi     # 0x3b023
leaq 0x29d9f(%rip), %rdx     # 0x3b025
leaq 0x38(%rsp), %rdi
callq 0xb62c
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x154ee
movl %eax, %ebp
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0x112bb
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11422
leaq 0xe38(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xde0(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x508(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29d22(%rip), %rsi     # 0x3b023
leaq 0x29d1d(%rip), %rdx     # 0x3b025
leaq 0x4f8(%rsp), %rdi
callq 0xb62c
leaq 0x858(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x10(%rsp), %rdx
leaq 0xe38(%rsp), %rcx
leaq 0xde0(%rsp), %r8
leaq 0x858(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x870(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1137c
movq 0x870(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x11399
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x48(%rsp), %r14
je 0x113bf
movq 0xe18(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xdf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x113e0
movq 0xdf8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11401
movq 0xe70(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11422
movq 0xe50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x29bf5(%rip), %rsi     # 0x3b026
leaq 0x29bf0(%rip), %rdx     # 0x3b028
callq 0xb62c
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x154ee
movl %eax, %ebp
andb %r13b, %bpl
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0x1146b
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x115ce
leaq 0xd88(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xd30(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x4e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29b75(%rip), %rsi     # 0x3b026
leaq 0x29b70(%rip), %rdx     # 0x3b028
leaq 0x4d8(%rsp), %rdi
callq 0xb62c
leaq 0x828(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r15, (%rsp)
leaq 0x10(%rsp), %rdx
leaq 0xd88(%rsp), %rcx
leaq 0xd30(%rsp), %r8
leaq 0x828(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x840(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1152d
movq 0x840(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1154a
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1156b
movq 0xd68(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1158c
movq 0xd48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xdc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x115ad
movq 0xdc0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xda0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x115ce
movq 0xda0(%rsp), %rsi
incq %rsi
callq 0x5360
movl %r13d, 0x114(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rax, 0x90(%rsp)
movq %rcx, 0x100(%rsp)
cmpq %rcx, %rax
je 0x1172f
movq 0x90(%rsp), %rax
leaq 0x30(%rax), %r13
cmpq 0x100(%rsp), %r13
je 0x1172f
leaq 0x40(%rsp), %rbx
leaq 0x50(%rsp), %r12
movl $0x30, %r14d
callq 0x50e0
cltq
movq %r14, %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 0x90(%rsp), %rbp
cmpq %rbp, %r13
je 0x11719
movl (%r13), %eax
movl %eax, 0x38(%rsp)
movq %r12, 0x40(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x11689
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x11691
movups (%rax), %xmm0
movups %xmm0, (%r12)
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0x48(%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 (%rbp), %eax
movl %eax, (%r13)
leaq 0x8(%rbp), %r15
movq %r15, %rsi
callq 0x5420
movl 0x28(%rbp), %eax
movl %eax, 0x28(%r13)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x2c(%r13)
movl 0x38(%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 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x11719
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r13
addq $0x30, %r14
cmpq 0x100(%rsp), %r13
jne 0x11623
movq 0x18(%rsp), %r15
subq 0x10(%rsp), %r15
leaq 0xcd8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
movq 0x98(%rsp), %r12
leaq 0xc80(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x4c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x298a2(%rip), %rsi     # 0x3b020
leaq 0x2989d(%rip), %rdx     # 0x3b022
leaq 0x4b8(%rsp), %rdi
callq 0xb62c
leaq 0x7f8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
movl 0x114(%rsp), %r13d
movq %r12, (%rsp)
movzbl 0xf(%rsp), %ebx
leaq 0x10(%rsp), %rdx
leaq 0xcd8(%rsp), %rcx
leaq 0xc80(%rsp), %r8
leaq 0x7f8(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x810(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11803
movq 0x810(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x11820
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xcb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x48(%rsp), %r14
je 0x11846
movq 0xcb8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11867
movq 0xc98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11888
movq 0xd10(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xcf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x118a9
movq 0xcf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2976b(%rip), %rsi     # 0x3b023
leaq 0x29766(%rip), %rdx     # 0x3b025
callq 0xb62c
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x154ee
movl %eax, %ebp
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0x118ef
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11a5b
leaq 0xc28(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xbd0(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x4a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x296ee(%rip), %rsi     # 0x3b023
leaq 0x296e9(%rip), %rdx     # 0x3b025
leaq 0x498(%rsp), %rdi
callq 0xb62c
leaq 0x7c8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
movl 0x8(%rsp), %edx
callq 0x14f5c
movl 0x114(%rsp), %r13d
movq %r12, (%rsp)
leaq 0x10(%rsp), %rdx
leaq 0xc28(%rsp), %rcx
leaq 0xbd0(%rsp), %r8
leaq 0x7c8(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x7e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x119b5
movq 0x7e0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x119d2
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x48(%rsp), %r14
je 0x119f8
movq 0xc08(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xbe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11a19
movq 0xbe8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11a3a
movq 0xc60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11a5b
movq 0xc40(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x295bc(%rip), %rsi     # 0x3b026
leaq 0x295b7(%rip), %rdx     # 0x3b028
callq 0xb62c
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x154ee
movl %eax, %ebp
andb %r13b, %bpl
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0x11aa4
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11c04
leaq 0xb78(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1a9c6
leaq 0xb20(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x488(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2953c(%rip), %rsi     # 0x3b026
leaq 0x29537(%rip), %rdx     # 0x3b028
leaq 0x478(%rsp), %rdi
callq 0xb62c
leaq 0x798(%rsp), %rdi
leaq 0x478(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
movq %r12, (%rsp)
leaq 0x10(%rsp), %rdx
leaq 0xb78(%rsp), %rcx
leaq 0xb20(%rsp), %r8
leaq 0x798(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x14130
leaq 0x7b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b63
movq 0x7b0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x478(%rsp), %rdi
cmpq %r14, %rdi
je 0x11b80
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11ba1
movq 0xb58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11bc2
movq 0xb38(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xbb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11be3
movq 0xbb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11c04
movq 0xb90(%rsp), %rsi
incq %rsi
callq 0x5360
sarq $0x4, %r15
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %r15
movslq %r15d, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rax, 0x90(%rsp)
movq %rcx, 0x100(%rsp)
cmpq %rax, %rcx
je 0x11d78
movq 0x100(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x90(%rsp), %rbp
je 0x11d78
leaq 0x40(%rsp), %rbx
leaq 0x50(%rsp), %r15
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), %r13
shlq $0x4, %r13
addq 0x100(%rsp), %r13
cmpq %r13, %rbp
je 0x11d62
movl (%rbp), %eax
movl %eax, 0x38(%rsp)
movq %r15, 0x40(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x11cd3
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x11cda
movups (%rax), %xmm0
movups %xmm0, (%r15)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0x48(%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 0x38(%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 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x11d62
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r12
cmpq 0x90(%rsp), %rbp
jne 0x11c6e
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x123b3
leaq 0x128(%rsp), %rbx
leaq 0x2f0(%rsp), %r14
movq 0x108(%rsp), %rax
incl %eax
movq %rax, 0x108(%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 %rbx, %rdi
callq 0xb544
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%rbx)
leaq 0x910(%rsp), %rdi
leaq 0x238(%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 %r14, %rdi
callq 0xb544
movzwl 0x24(%rbx), %eax
movw %ax, 0x24(%r14)
movl 0x20(%rbx), %eax
movl %eax, 0x20(%r14)
leaq 0x38(%rsp), %rdi
leaq 0x910(%rsp), %rsi
leaq 0x2e8(%rsp), %rdx
callq 0x15a46
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x11e85
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x938(%rsp), %rdi
leaq 0x948(%rsp), %rax
cmpq %rax, %rdi
je 0x11eaa
movq 0x948(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x918(%rsp), %rdi
leaq 0x928(%rsp), %rax
cmpq %rax, %rdi
je 0x11ecf
movq 0x928(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x8b8(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a9c6
leaq 0xa18(%rsp), %r12
movq %r12, %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
leaq 0x208(%rsp), %rdi
leaq 0x8b8(%rsp), %rsi
movq %r12, %rdx
callq 0x15216
movq 0xa40(%rsp), %rdi
leaq 0xa50(%rsp), %rax
cmpq %rax, %rdi
je 0x11f39
movq 0xa50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xa20(%rsp), %rdi
leaq 0xa30(%rsp), %rax
cmpq %rax, %rdi
je 0x11f5e
movq 0xa30(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x8e0(%rsp), %rdi
leaq 0x8f0(%rsp), %rax
cmpq %rax, %rdi
je 0x11f83
movq 0x8f0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x8c0(%rsp), %rdi
leaq 0x8d0(%rsp), %rax
cmpq %rax, %rdi
je 0x11fa8
movq 0x8d0(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x1a8(%rsp), %eax
jne 0x11fd8
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x11fd8
cmpl $0x6, %eax
je 0x11fd8
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x208(%rsp), %rdi
callq 0x15b78
addl 0xa0(%rsp), %r13d
xorb 0x34(%rsp), %al
movzbl %al, %eax
movl 0xa4(%rsp), %r12d
subl %eax, %r12d
movl %r12d, %eax
orl %r13d, %eax
js 0x12074
movl 0x38(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0x38(%rsp)
movq 0x98(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xb14e
movq 0x108(%rsp), %rdi
xorl %esi, %esi
movl %r13d, %edx
movl %r12d, %ecx
movl 0x8(%rsp), %r8d
movq 0x98(%rsp), %r9
callq 0x100d2
movl $0x1, %r12d
testb %al, %al
movq 0x98(%rsp), %rdi
jne 0x1207a
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
xorl %r12d, %r12d
jmp 0x1207a
movl $0x5, %r12d
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x1209f
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x120bb
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x120d7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x120fc
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x5, %r12d
je 0x12107
testl %r12d, %r12d
jne 0x1211a
addq $0x30, %rbp
cmpq %r15, %rbp
jne 0x11dad
movl $0x4, %r12d
testb $0x3, %r12b
sete %bpl
jmp 0x123b6
testl %r12d, %r12d
je 0x1246f
movl 0x120(%rsp), %eax
testb %r13b, %r13b
je 0x12639
xorl %ebx, %ebx
cmpl $0x7, %eax
je 0x1294b
cmpl $0x4, %eax
jne 0x12b5c
leaq 0x648(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x28ec2(%rip), %rsi     # 0x3b029
leaq 0x28ebd(%rip), %rdx     # 0x3b02b
leaq 0x638(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x638(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x121bc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x638(%rsp), %rdi
cmpq %r14, %rdi
je 0x121d9
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x628(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x28e40(%rip), %rsi     # 0x3b02c
leaq 0x28e3b(%rip), %rdx     # 0x3b02e
leaq 0x618(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x618(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x1223d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x618(%rsp), %rdi
cmpq %r14, %rdi
je 0x12b5c
movq 0x628(%rsp), %rsi
jmp 0x12a4d
leaq 0x448(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29987(%rip), %rsi     # 0x3bbf5
leaq 0x29981(%rip), %rdx     # 0x3bbf6
leaq 0x438(%rsp), %rdi
callq 0xb62c
leaq 0x428(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x29464(%rip), %rdx     # 0x3b6fa
leaq 0x418(%rsp), %rdi
movq %rdx, %rsi
callq 0xb62c
movq (%rbx), %rax
movq (%rax), %rax
movl (%rax), %eax
movl %eax, %r8d
shrl $0x1f, %r8d
addl %eax, %r8d
sarl %r8d
leaq 0xa8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
leaq 0x418(%rsp), %rdx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x1a814
leaq 0xa8(%rsp), %rsi
movq %r15, %rdi
callq 0x14dde
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1230e
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1232f
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x418(%rsp), %rdi
cmpq %r12, %rdi
je 0x1234c
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0x12369
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %edi, %edi
movl $0x1, %esi
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
movl 0x8(%rsp), %r8d
movq %r15, %r9
callq 0x100d2
movb $0x1, %bl
testb %al, %al
jne 0x132b1
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba7e
jmp 0x13208
movb $0x1, %bpl
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x123d7
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13179
movq 0x2a8(%rsp), %rsi
jmp 0x13171
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x1241e
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x12443
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x12468
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
jmp 0x132b1
leaq 0x208(%rsp), %rdi
callq 0x15566
xorl %ebx, %ebx
testb %al, %al
je 0x124a8
leaq 0x10(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0xb262
movq 0x18(%rsp), %rax
subq 0x10(%rsp), %rax
shrq $0x4, %rax
imull $0xaaaaaaab, %eax, %ebx # imm = 0xAAAAAAAB
testb %r13b, %r13b
je 0x1274e
leaq 0x728(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28bf4(%rip), %rsi     # 0x3b0b8
leaq 0x28bef(%rip), %rdx     # 0x3b0ba
leaq 0x718(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x718(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x12519
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x718(%rsp), %rdi
cmpq %r15, %rdi
je 0x12536
movq 0x728(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x708(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28b72(%rip), %rsi     # 0x3b0bb
leaq 0x28b6d(%rip), %rdx     # 0x3b0bd
leaq 0x6f8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x6f8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1259a
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x125b7
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x6e8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28af4(%rip), %rsi     # 0x3b0be
leaq 0x28aef(%rip), %rdx     # 0x3b0c0
leaq 0x6d8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x6d8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1261b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x12b5c
movq 0x6e8(%rsp), %rsi
jmp 0x12a4d
cmpl $0x9, %eax
je 0x12a5a
xorl %ebx, %ebx
cmpl $0x2, %eax
jne 0x12b5c
leaq 0x5c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x289c9(%rip), %rsi     # 0x3b029
leaq 0x289c4(%rip), %rdx     # 0x3b02b
leaq 0x5b8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x5b8(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x126b2
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x126cf
movq 0x5c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x5a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2894a(%rip), %rsi     # 0x3b02c
leaq 0x28945(%rip), %rdx     # 0x3b02e
leaq 0x598(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x598(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12730
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x12b5a
movq 0x5a8(%rsp), %rsi
jmp 0x12b52
leaq 0x6c8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28951(%rip), %rsi     # 0x3b0b2
leaq 0x2894c(%rip), %rdx     # 0x3b0b4
leaq 0x6b8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x127b3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x127d0
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x6a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x288d2(%rip), %rsi     # 0x3b0b5
leaq 0x288cd(%rip), %rdx     # 0x3b0b7
leaq 0x698(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x698(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x12831
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x698(%rsp), %rdi
cmpq %r15, %rdi
je 0x1284e
movq 0x6a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x688(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28860(%rip), %rsi     # 0x3b0c1
leaq 0x2885b(%rip), %rdx     # 0x3b0c3
leaq 0x678(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x678(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x128af
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x678(%rsp), %rdi
cmpq %r15, %rdi
je 0x128cc
movq 0x688(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x668(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x287e5(%rip), %rsi     # 0x3b0c4
leaq 0x287e0(%rip), %rdx     # 0x3b0c6
leaq 0x658(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x658(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1292d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x658(%rsp), %rdi
cmpq %r15, %rdi
je 0x12b5c
movq 0x668(%rsp), %rsi
jmp 0x12a4d
leaq 0x608(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x286d1(%rip), %rsi     # 0x3b02f
leaq 0x286cc(%rip), %rdx     # 0x3b031
leaq 0x5f8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x5f8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x129b3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x129d0
movq 0x608(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x5e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2864f(%rip), %rsi     # 0x3b032
leaq 0x2864a(%rip), %rdx     # 0x3b034
leaq 0x5d8(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x5d8(%rsp), %rsi
movl $0x1, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12a34
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x12b5c
movq 0x5e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x12b5c
leaq 0x588(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x285c8(%rip), %rsi     # 0x3b035
leaq 0x285c4(%rip), %rdx     # 0x3b038
leaq 0x578(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x578(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x12abf
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x578(%rsp), %rdi
cmpq %r14, %rdi
je 0x12adc
movq 0x588(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x568(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2854a(%rip), %rsi     # 0x3b039
leaq 0x28546(%rip), %rdx     # 0x3b03c
leaq 0x558(%rsp), %rdi
callq 0xb62c
leaq 0x38(%rsp), %rdi
leaq 0x558(%rsp), %rsi
xorl %edx, %edx
callq 0x14f5c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfbea
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12b3d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x12b5a
movq 0x568(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
movslq %ebx, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rax, 0x90(%rsp)
movq %rcx, 0x100(%rsp)
cmpq %rax, %rcx
je 0x12cc9
movq 0x100(%rsp), %rax
leaq 0x30(%rax), %r13
cmpq 0x90(%rsp), %r13
je 0x12cc9
leaq 0x40(%rsp), %rbx
leaq 0x50(%rsp), %r15
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), %r12
shlq $0x4, %r12
addq 0x100(%rsp), %r12
cmpq %r12, %r13
je 0x12cb3
movl (%r13), %eax
movl %eax, 0x38(%rsp)
movq %r15, 0x40(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x12c19
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x12c20
movups (%rax), %xmm0
movups %xmm0, (%r15)
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0x48(%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 (%r12), %eax
movl %eax, (%r13)
leaq 0x8(%r12), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r12), %eax
movl %eax, 0x28(%r13)
movzwl 0x2c(%r12), %eax
movw %ax, 0x2c(%r13)
movl 0x38(%rsp), %eax
movl %eax, (%r12)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r12)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r12)
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12cb3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r13
addq $0x30, %rbp
cmpq 0x90(%rsp), %r13
jne 0x12bb3
movq 0x10(%rsp), %r15
movq 0x18(%rsp), %rax
movq %rax, 0x90(%rsp)
cmpq %rax, %r15
je 0x13113
leaq 0x1e0(%rsp), %r14
leaq 0x770(%rsp), %r12
leaq 0x780(%rsp), %rbp
movl 0x110(%rsp), %eax
notl %eax
andl $0x1, %eax
movl %eax, 0x100(%rsp)
leaq 0xac8(%rsp), %rbx
movq 0x98(%rsp), %r13
movl (%r15), %eax
movl %eax, 0x1d8(%rsp)
leaq 0x1f0(%rsp), %rax
movq %rax, 0x1e0(%rsp)
movq 0x8(%r15), %rsi
movq 0x10(%r15), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb544
movzwl 0x2c(%r15), %eax
movw %ax, 0x24(%r14)
movl 0x28(%r15), %eax
movl %eax, 0x20(%r14)
movq %rbx, %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
movl 0x1d8(%rsp), %eax
movl %eax, 0x768(%rsp)
movq %rbp, 0x770(%rsp)
movq 0x1e0(%rsp), %rsi
movq 0x1e8(%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 0x38(%rsp), %rdi
movq %rbx, %rsi
leaq 0x768(%rsp), %rdx
callq 0x15a46
movq 0x770(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x290(%rsp), %r14
je 0x12ded
movq 0x780(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xaf0(%rsp), %rdi
leaq 0xb00(%rsp), %rax
cmpq %rax, %rdi
je 0x12e12
movq 0xb00(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xad0(%rsp), %rdi
leaq 0xae0(%rsp), %rax
cmpq %rax, %rdi
je 0x12e37
movq 0xae0(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x38(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0x38(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x24316
leaq 0x38(%rsp), %rdi
movq %r14, %rsi
callq 0x1c028
movb %al, 0x8d(%rsp)
movq 0x2b8(%rsp), %rdi
leaq 0x2c8(%rsp), %rax
cmpq %rax, %rdi
je 0x12e8c
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x12eb1
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x968(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a9c6
leaq 0xa70(%rsp), %r13
movq %r13, %rdi
leaq 0x238(%rsp), %rsi
callq 0x1a9c6
movq %r14, %rdi
leaq 0x968(%rsp), %rsi
movq %r13, %rdx
callq 0x15216
movq 0xa98(%rsp), %rdi
leaq 0xaa8(%rsp), %rax
cmpq %rax, %rdi
je 0x12f16
movq 0xaa8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %rbx, %r14
movq 0xa78(%rsp), %rdi
leaq 0xa88(%rsp), %rax
cmpq %rax, %rdi
je 0x12f3e
movq 0xa88(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r12, %rbx
movq 0x990(%rsp), %rdi
leaq 0x9a0(%rsp), %rax
cmpq %rax, %rdi
je 0x12f66
movq 0x9a0(%rsp), %rsi
incq %rsi
callq 0x5360
movq %rbp, %r12
movq 0x970(%rsp), %rdi
leaq 0x980(%rsp), %rax
cmpq %rax, %rdi
je 0x12f8e
movq 0x980(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x1d8(%rsp), %eax
xorl %ebp, %ebp
cmpl 0x120(%rsp), %eax
jne 0x12fba
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x12fba
cmpl $0x6, %eax
je 0x12fba
xorl %ebp, %ebp
cmpl $0xa, %eax
sete %bpl
negl %ebp
leaq 0x290(%rsp), %rdi
callq 0x15b78
addl 0xa0(%rsp), %ebp
xorb 0x108(%rsp), %al
xorb $0x1, %al
movzbl %al, %eax
movl 0xa4(%rsp), %r13d
subl %eax, %r13d
movl %r13d, %eax
orl %ebp, %eax
js 0x13049
movq 0x98(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xb14e
movl 0x34(%rsp), %edi
movl 0x100(%rsp), %esi
movl %ebp, %edx
movl %r13d, %ecx
movl 0x8(%rsp), %r8d
movq 0x98(%rsp), %r9
callq 0x100d2
movl $0x1, %ebp
testb %al, %al
movq 0x98(%rsp), %r13
jne 0x13056
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%r13)
movq %r13, %rdi
callq 0xba7e
xorl %ebp, %ebp
jmp 0x13056
movl $0x3, %ebp
movq 0x98(%rsp), %r13
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x1307b
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x13097
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x130b3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x130d8
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x3, %ebp
je 0x130e1
testl %ebp, %ebp
jne 0x13109
addq $0x30, %r15
cmpq 0x90(%rsp), %r15
movq %r12, %rbp
movq %rbx, %r12
movq %r14, %rbx
leaq 0x1e0(%rsp), %r14
jne 0x12d1f
movl $0x2, %ebp
testb $0x1, %bpl
sete %bpl
jmp 0x13116
movb $0x1, %bpl
leaq 0x220(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13137
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13158
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13179
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1319a
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x168(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131bb
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131dc
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131fd
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
testb %bpl, %bpl
je 0x132b1
leaq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x24316
movl 0x110(%rsp), %eax
leaq 0xe0(%rsp), %rcx
movslq 0x14(%rcx), %rdx
movslq 0xa0(%rsp), %rsi
movslq 0xa4(%rsp), %rdi
imulq $0x1081c8, 0x118(%rsp), %r8 # imm = 0x1081C8
addq 0x35d1d(%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 0x1328e
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x132af
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
leaq 0x270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x132d2
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x250(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x132f3
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10(%rsp), %rdi
callq 0xb17a
movl %ebx, %eax
addq $0x1308, %rsp           # imm = 0x1308
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x13384
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13384
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x133a5
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x133a5
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x133c6
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x133c6
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x133e7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x133e7
movq %rax, %rbx
movq 0x558(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x568(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x5d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x5e8(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x598(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x5a8(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x618(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x628(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x13e6b
jmp 0x13e6b
jmp 0x13e6b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1349c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1349c
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x134bd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x134bd
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x134de
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x134de
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x134ff
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x134ff
movq %rax, %rbx
movq 0x578(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x588(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x5f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x608(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x5b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x5c8(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x638(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x648(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x13e6b
jmp 0x13e6b
jmp 0x13e6b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x13550
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13550
movq %rax, %rbx
movq 0x658(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x668(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x135ae
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x135ae
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x135cf
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x135cf
movq %rax, %rbx
movq 0x678(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x688(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x6d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x6e8(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x13e6b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x13632
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13632
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x13653
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13653
movq %rax, %rbx
movq 0x698(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x6a8(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x6f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x708(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x13e6b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x136be
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x136be
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x136df
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x136df
movq %rax, %rbx
movq 0x6b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x6c8(%rsp), %rsi
jmp 0x13ff1
movq %rax, %rbx
movq 0x718(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ff9
movq 0x728(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x13e6b
movq %rax, %rbx
leaq 0x7b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13730
movq 0x7b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13730
movq %rax, %rbx
movq 0x478(%rsp), %rdi
cmpq %r14, %rdi
je 0x13752
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13752
movq %rax, %rbx
leaq 0xb20(%rsp), %rdi
callq 0xb116
jmp 0x13764
movq %rax, %rbx
leaq 0xb78(%rsp), %rdi
jmp 0x13a73
movq %rax, %rbx
leaq 0x7e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1379a
movq 0x7e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1379a
movq %rax, %rbx
movq 0x498(%rsp), %rdi
cmpq %r14, %rdi
je 0x137bc
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x137bc
movq %rax, %rbx
leaq 0xbd0(%rsp), %rdi
callq 0xb116
jmp 0x137ce
movq %rax, %rbx
leaq 0xc28(%rsp), %rdi
jmp 0x13a73
movq %rax, %rbx
leaq 0x840(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13804
movq 0x840(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13804
movq %rax, %rbx
movq 0x4d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x13826
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13826
movq %rax, %rbx
leaq 0xd30(%rsp), %rdi
callq 0xb116
jmp 0x13838
movq %rax, %rbx
leaq 0xd88(%rsp), %rdi
jmp 0x13a73
movq %rax, %rbx
leaq 0x870(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1386e
movq 0x870(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1386e
movq %rax, %rbx
movq 0x4f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x13890
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13890
movq %rax, %rbx
leaq 0xde0(%rsp), %rdi
callq 0xb116
jmp 0x138a2
movq %rax, %rbx
leaq 0xe38(%rsp), %rdi
jmp 0x13a73
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xb116
jmp 0x138c4
movq %rax, %rbx
movq 0x418(%rsp), %rdi
cmpq %r12, %rdi
je 0x138e6
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x138e6
movq %rax, %rbx
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x448(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1392c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1392c
movq %rax, %rbx
movq 0x538(%rsp), %rdi
cmpq %r14, %rdi
je 0x13ff9
movq 0x548(%rsp), %rsi
jmp 0x13ff1
jmp 0x13e6b
jmp 0x139ce
jmp 0x13f29
jmp 0x139ce
jmp 0x13f29
movq %rax, %rbx
leaq 0x810(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13986
movq 0x810(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13986
movq %rax, %rbx
movq 0x4b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x139a8
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x139a8
movq %rax, %rbx
leaq 0xc80(%rsp), %rdi
callq 0xb116
jmp 0x139ba
movq %rax, %rbx
leaq 0xcd8(%rsp), %rdi
jmp 0x13a73
jmp 0x139ce
jmp 0x13f29
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r14, %rdi
je 0x140b4
movq 0x48(%rsp), %rsi
jmp 0x140ac
jmp 0x13f29
movq %rax, %rbx
leaq 0x8a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13a17
movq 0x8a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13a17
movq %rax, %rbx
movq 0x518(%rsp), %rdi
cmpq %r14, %rdi
je 0x13a39
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13a39
movq %rax, %rbx
leaq 0xe90(%rsp), %rdi
callq 0xb116
jmp 0x13a6b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13a80
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13a80
movq %rax, %rbx
leaq 0xee8(%rsp), %rdi
callq 0xb116
jmp 0x140b4
movq %rax, %rbx
movq 0x458(%rsp), %rdi
cmpq %r14, %rdi
je 0x140b4
movq 0x468(%rsp), %rsi
jmp 0x140ac
jmp 0x13f29
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13ad0
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13ad0
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x328(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13b20
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13b20
movq %rax, %rbx
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x348(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13b70
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13b70
movq %rax, %rbx
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x368(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13bc0
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13bc0
movq %rax, %rbx
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x388(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13c10
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13c10
movq %rax, %rbx
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x3a8(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13c60
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13c60
movq %rax, %rbx
movq 0x3b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x3c8(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13cb0
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13cb0
movq %rax, %rbx
movq 0x3d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x3e8(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13cfc
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13cfc
movq %rax, %rbx
movq 0x3f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x14110
movq 0x408(%rsp), %rsi
jmp 0x13f1c
jmp 0x13e2e
movq %rax, %rbx
leaq 0x10a0(%rsp), %rdi
callq 0xb116
jmp 0x13d34
movq %rax, %rbx
leaq 0x10f8(%rsp), %rdi
callq 0xb116
jmp 0x1401a
movq %rax, %rbx
jmp 0x1401a
movq %rax, %rbx
leaq 0x1150(%rsp), %rdi
callq 0xb116
jmp 0x13d63
movq %rax, %rbx
leaq 0x11a8(%rsp), %rdi
callq 0xb116
jmp 0x1403b
jmp 0x13d77
movq %rax, %rbx
jmp 0x1403b
movq %rax, %rbx
leaq 0x1200(%rsp), %rdi
callq 0xb116
jmp 0x13d94
movq %rax, %rbx
leaq 0x1258(%rsp), %rdi
jmp 0x13dfa
jmp 0x13e04
jmp 0x13e0c
jmp 0x13e2e
jmp 0x13f29
movq %rax, %rbx
leaq 0xf40(%rsp), %rdi
callq 0xb116
jmp 0x13dc1
movq %rax, %rbx
leaq 0xf98(%rsp), %rdi
callq 0xb116
jmp 0x140d5
jmp 0x13dd5
movq %rax, %rbx
jmp 0x140d5
movq %rax, %rbx
leaq 0xff0(%rsp), %rdi
callq 0xb116
jmp 0x13df2
movq %rax, %rbx
leaq 0x1048(%rsp), %rdi
callq 0xb116
jmp 0x140f6
movq %rax, %rbx
jmp 0x140f6
movq %rax, %rbx
jmp 0x14103
jmp 0x13e2e
jmp 0x13e6b
jmp 0x13e2e
jmp 0x13f29
movq %rax, %rbx
jmp 0x1411d
jmp 0x13e2e
movq %rax, %rbx
jmp 0x13e56
movq %rax, %rbx
jmp 0x14110
movq %rax, %rbx
movq 0x740(%rsp), %rdi
cmpq %r13, %rdi
je 0x13e56
movq 0x750(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x9c0(%rsp), %rdi
jmp 0x13ef6
movq %rax, %rbx
jmp 0x13efb
movq %rax, %rbx
jmp 0x13ff9
movq %rax, %rbx
jmp 0x13fd4
movq %rax, %rbx
jmp 0x13ea0
movq %rax, %rbx
movq 0x770(%rsp), %rdi
cmpq %rbp, %rdi
je 0x13ea0
movq 0x780(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xac8(%rsp), %rdi
jmp 0x13fcf
jmp 0x13ebc
movq %rax, %rbx
leaq 0x290(%rsp), %rdi
jmp 0x13ee1
movq %rax, %rbx
jmp 0x13fca
movq %rax, %rbx
jmp 0x13ed9
movq %rax, %rbx
leaq 0xa70(%rsp), %rdi
callq 0xb116
leaq 0x968(%rsp), %rdi
callq 0xb116
jmp 0x13fca
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xb116
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x14110
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x14110
movq %rax, %rbx
jmp 0x140b4
movq %rax, %rbx
jmp 0x1408f
movq %rax, %rbx
jmp 0x13f66
movq %rax, %rbx
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x13f66
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x910(%rsp), %rdi
jmp 0x1408a
movq %rax, %rbx
jmp 0x14085
movq %rax, %rbx
jmp 0x13f90
movq %rax, %rbx
leaq 0xa18(%rsp), %rdi
callq 0xb116
leaq 0x8b8(%rsp), %rdi
callq 0xb116
jmp 0x14085
movq %rax, %rbx
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x13fca
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
callq 0xb116
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x13ff9
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x220(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1401a
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1403b
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x140f6
movq 0x1c0(%rsp), %rsi
jmp 0x140ee
movq %rax, %rbx
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x14085
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
callq 0xb116
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x140b4
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x140d5
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x140f6
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
callq 0xb116
leaq 0xa8(%rsp), %rdi
callq 0xb116
leaq 0x238(%rsp), %rdi
callq 0xb116
leaq 0x10(%rsp), %rdi
callq 0xb17a
movq %rbx, %rdi
callq 0x55e0
nop