// File: /workspace/github_cpp_makefile_star2_O3/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 $0x12b8, %rsp           # imm = 0x12B8
movq %r9, %r15
movl %r8d, %ebp
movl %ecx, 0xa4(%rsp)
movl %edx, 0xa0(%rsp)
movl %esi, %r12d
movl %edi, %r14d
movl %esi, %eax
addl %edi, %eax
movl %eax, 0xb4(%rsp)
je 0x10203
leaq 0x9c0236f(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %r14d, %eax
jbe 0x1336a
movl %ebp, 0x18(%rsp)
movq %r14, 0x90(%rsp)
movl %r14d, %r13d
movl %r12d, %r14d
leaq 0x238(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2433e
movslq 0x4c(%rbx), %rax
movslq 0xa0(%rsp), %rcx
movslq 0xa4(%rsp), %rdx
imulq $0x42072, %r14, %rsi    # imm = 0x42072
imulq $0x1081c8, %r13, %rdi   # imm = 0x1081C8
addq 0x38dd6(%rip), %rdi     # 0x48f70
addq %rsi, %rdi
imulq $0xbbd, %rax, %rax      # imm = 0xBBD
addq %rdi, %rax
imulq $0x259, %rcx, %rcx      # imm = 0x259
addq %rax, %rcx
movb (%rdx,%rcx), %bpl
movq 0x28(%rbx), %rdi
leaq 0x270(%rsp), %rax
cmpq %rax, %rdi
je 0x101d6
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x250(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x101f7
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
jne 0x1024e
xorl %ebx, %ebx
jmp 0x1336a
leaq 0x395a6(%rip), %rdi     # 0x497b0
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
movl $0x1, %esi
callq 0x51f0
callq 0x5240
movl %eax, %edi
callq 0x5310
leaq 0x9c0227c(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %r14d, %eax
jbe 0x1336a
movl %ebp, 0x18(%rsp)
movq %r14, 0x90(%rsp)
movl %r14d, %r13d
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x9c02242(%rip), %rbx   # 0x9c124a8
movq (%rbx), %rax
imulq $0x58, %r13, %rsi
addq (%rax), %rsi
leaq 0x238(%rsp), %rdi
callq 0x1aa22
movzbl 0x18(%rsp), %eax
movl %eax, 0x10(%rsp)
cmpl $0x0, 0x90(%rsp)
movq %r15, 0x98(%rsp)
movl %r12d, 0x114(%rsp)
movq %r13, 0x290(%rsp)
je 0x102c8
movq (%rbx), %rdi
callq 0x242c2
testl %r12d, %r12d
je 0x10e01
decl %eax
cmpl 0x90(%rsp), %eax
ja 0x10e01
movq (%rbx), %rdi
callq 0x242c2
testl %r12d, %r12d
je 0x10576
decl %eax
cmpl 0x90(%rsp), %eax
jne 0x10576
movq (%rbx), %rax
movq 0x90(%rsp), %rcx
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x1aa22
movq 0x8(%r15), %rsi
addq $-0x58, %rsi
leaq 0x150(%rsp), %rdi
callq 0x1aa22
leaq 0x1050(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xff8(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x298(%rsp), %rdi
leaq 0x1050(%rsp), %rsi
leaq 0xff8(%rsp), %rdx
callq 0x1528a
leaq 0x1030(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10386
movq 0x1030(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1010(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x103a7
movq 0x1010(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1088(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x103c8
movq 0x1088(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1068(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x103e9
movq 0x1068(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x298(%rsp), %rdi
callq 0x15be4
movb %al, 0x17(%rsp)
leaq 0xfa0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xf48(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1aa22
leaq 0x1a8(%rsp), %rdi
leaq 0xfa0(%rsp), %rsi
leaq 0xf48(%rsp), %rdx
callq 0x1528a
leaq 0xf80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10462
movq 0xf80(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10483
movq 0xf60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x104a4
movq 0xfd8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x104c5
movq 0xfb8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x238(%rsp), %rdi
callq 0x1c1fa
movb 0x17(%rsp), %cl
xorb $0x1, %cl
movb %cl, 0xb4(%rsp)
testb %al, %al
je 0x11156
leaq 0x470(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2ab25(%rip), %rsi     # 0x3b020
leaq 0x2ab20(%rip), %rdx     # 0x3b022
leaq 0x460(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x460(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10550
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x1207c
movq 0x470(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1207c
testl %r12d, %r12d
je 0x118c3
leaq 0x410(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2aa8e(%rip), %rsi     # 0x3b020
leaq 0x2aa89(%rip), %rdx     # 0x3b022
leaq 0x400(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x400(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x105f2
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x400(%rsp), %rdi
cmpq %r14, %rdi
je 0x1060f
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2aa01(%rip), %rsi     # 0x3b023
leaq 0x2a9fc(%rip), %rdx     # 0x3b025
leaq 0x3e0(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x10686
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x106a3
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a973(%rip), %rsi     # 0x3b029
leaq 0x2a96e(%rip), %rdx     # 0x3b02b
leaq 0x3c0(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x1071a
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x10737
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x3b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a8e2(%rip), %rsi     # 0x3b02c
leaq 0x2a8dd(%rip), %rdx     # 0x3b02e
leaq 0x3a0(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x107ae
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x107cb
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x390(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a8dd(%rip), %rsi     # 0x3b0bb
leaq 0x2a8d8(%rip), %rdx     # 0x3b0bd
leaq 0x380(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x380(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x10842
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x380(%rsp), %rdi
cmpq %r14, %rdi
je 0x1085f
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x370(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a84c(%rip), %rsi     # 0x3b0be
leaq 0x2a847(%rip), %rdx     # 0x3b0c0
leaq 0x360(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x360(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x108d6
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x360(%rsp), %rdi
cmpq %r14, %rdi
je 0x108f3
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x350(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a72f(%rip), %rsi     # 0x3b035
leaq 0x2a72b(%rip), %rdx     # 0x3b038
leaq 0x340(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x340(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x1096a
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x340(%rsp), %rdi
cmpq %r14, %rdi
je 0x10987
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x330(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a69f(%rip), %rsi     # 0x3b039
leaq 0x2a69b(%rip), %rdx     # 0x3b03c
leaq 0x320(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x320(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xfc0e
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x109fe
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x320(%rsp), %rdi
cmpq %r14, %rdi
je 0x10a1b
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rax
movq %rax, 0x90(%rsp)
cmpq %rax, %r12
je 0x13275
leaq 0x30(%r12), %r13
movq 0x90(%rsp), %rbx
cmpq %rbx, %r13
je 0x10ba8
movl $0x30, %ebp
leaq 0xd0(%rsp), %r14
movq %r12, 0x18(%rsp)
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 %r12, %r15
cmpq %r15, %r13
je 0x10b8d
movl (%r13), %eax
movl %eax, 0xb8(%rsp)
movq %r14, 0xc0(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x10acb
movq %rcx, 0xc0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x10ad2
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %r14, %rbx
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0xc8(%rsp)
movq %rax, 0x8(%r13)
movq $0x0, 0x10(%r13)
movb $0x0, 0x18(%r13)
movzwl 0x2c(%r13), %eax
leaq 0xc0(%rsp), %r12
movw %ax, 0x24(%r12)
movl 0x28(%r13), %eax
movl %eax, 0x20(%r12)
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 0xb8(%rsp), %eax
movl %eax, (%r15)
movq %r14, %rdi
movq %r12, %rsi
callq 0x5420
movzwl 0x24(%r12), %eax
movw %ax, 0x2c(%r15)
movl 0x20(%r12), %eax
movl %eax, 0x28(%r15)
movq 0xc0(%rsp), %rdi
cmpq %rbx, %rdi
movq %rbx, %r14
je 0x10b80
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x90(%rsp), %rbx
movq 0x18(%rsp), %r12
addq $0x30, %r13
addq $0x30, %rbp
cmpq %rbx, %r13
jne 0x10a5e
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rbx
movq %rbx, 0x90(%rsp)
cmpq %rbx, %r12
je 0x13275
leaq 0x158(%rsp), %rbx
leaq 0x748(%rsp), %rbp
leaq 0x758(%rsp), %r15
movl 0x114(%rsp), %eax
notl %eax
andl $0x1, %eax
movl %eax, 0x18(%rsp)
leaq 0x9c8(%rsp), %r13
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 0xb50a
movzwl 0x2c(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r12), %eax
movl %eax, 0x20(%rbx)
movq %r13, %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
movl 0x150(%rsp), %eax
movl %eax, 0x740(%rsp)
movq %r15, 0x748(%rsp)
movq 0x158(%rsp), %rsi
movq 0x160(%rsp), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0xb50a
movzwl 0x24(%rbx), %eax
movw %ax, 0x24(%rbp)
movl 0x20(%rbx), %eax
movl %eax, 0x20(%rbp)
leaq 0xb8(%rsp), %rdi
movq %r13, %rsi
leaq 0x740(%rsp), %rdx
callq 0x15ab2
movq 0x748(%rsp), %rdi
cmpq %r15, %rdi
je 0x10caf
movq 0x758(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r13, %r14
movq 0x9f0(%rsp), %rdi
leaq 0xa00(%rsp), %rax
cmpq %rax, %rdi
je 0x10cd7
movq 0xa00(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r15, %r13
movq 0x9d0(%rsp), %rdi
leaq 0x9e0(%rsp), %rax
cmpq %rax, %rdi
je 0x10cff
movq 0x9e0(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0xb8(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0xb8(%rsp)
movq 0x98(%rsp), %r15
movq %r15, %rdi
leaq 0xb8(%rsp), %rsi
callq 0xb118
movl 0xb4(%rsp), %edi
movl 0x18(%rsp), %esi
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
movl 0x10(%rsp), %r8d
movq %r15, %r9
callq 0x100f6
testb %al, %al
jne 0x12752
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x10d9a
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
movq %r13, %r15
je 0x10dc2
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
movq %r14, %r13
je 0x10dea
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r12
cmpq 0x90(%rsp), %r12
jne 0x10be9
jmp 0x13275
movq (%rbx), %rax
cmpl $0x1, %r12d
movq 0x90(%rsp), %rcx
sbbl $-0x1, %ecx
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x1aa22
movq 0x8(%r15), %rsi
addq $-0x58, %rsi
leaq 0x150(%rsp), %rdi
callq 0x1aa22
leaq 0x1260(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0x1208(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x1a8(%rsp), %rdi
leaq 0x1260(%rsp), %rsi
leaq 0x1208(%rsp), %rdx
callq 0x1528a
leaq 0x1240(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10ea6
movq 0x1240(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1220(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10ec7
movq 0x1220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10ee8
movq 0x1298(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1278(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f09
movq 0x1278(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a8(%rsp), %rdi
callq 0x15be4
movb %al, 0x90(%rsp)
leaq 0x11b0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0x1158(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1aa22
leaq 0x120(%rsp), %rdi
leaq 0x11b0(%rsp), %rsi
leaq 0x1158(%rsp), %rdx
callq 0x1528a
leaq 0x1190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f85
movq 0x1190(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1170(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10fa6
movq 0x1170(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10fc7
movq 0x11e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10fe8
movq 0x11c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1100(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x10a8(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1aa22
leaq 0x208(%rsp), %rdi
leaq 0x1100(%rsp), %rsi
leaq 0x10a8(%rsp), %rdx
callq 0x1528a
leaq 0x10e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11050
movq 0x10e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11071
movq 0x10c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11092
movq 0x1138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x110b3
movq 0x1118(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x238(%rsp), %rdi
callq 0x1c1fa
testb %al, %al
je 0x1178d
leaq 0x550(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29f45(%rip), %rsi     # 0x3b020
leaq 0x29f40(%rip), %rdx     # 0x3b022
leaq 0x540(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x540(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11130
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x540(%rsp), %rdi
cmpq %r14, %rdi
je 0x12d3a
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x12d3a
leaq 0xef0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xe98(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x530(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29e8d(%rip), %rsi     # 0x3b020
leaq 0x29e88(%rip), %rdx     # 0x3b022
leaq 0x520(%rsp), %rdi
callq 0xb5f8
leaq 0x890(%rsp), %rdi
leaq 0x520(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %r15, (%rsp)
movzbl 0xb4(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0xef0(%rsp), %rcx
leaq 0xe98(%rsp), %r8
leaq 0x890(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x8a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11216
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x520(%rsp), %rdi
cmpq %r14, %rdi
je 0x11233
movq 0x530(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xed0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11254
movq 0xed0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xeb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11275
movq 0xeb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11296
movq 0xf28(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x112b7
movq 0xf08(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29d5c(%rip), %rsi     # 0x3b023
leaq 0x29d57(%rip), %rdx     # 0x3b025
leaq 0x38(%rsp), %rdi
callq 0xb5f8
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1556a
movl %eax, %ebp
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x11308
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x1146a
leaq 0xe40(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xde8(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x510(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29cd5(%rip), %rsi     # 0x3b023
leaq 0x29cd0(%rip), %rdx     # 0x3b025
leaq 0x500(%rsp), %rdi
callq 0xb5f8
leaq 0x860(%rsp), %rdi
leaq 0x500(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xe40(%rsp), %rcx
leaq 0xde8(%rsp), %r8
leaq 0x860(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x878(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x113c9
movq 0x878(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x113e6
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11407
movq 0xe20(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11428
movq 0xe00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11449
movq 0xe78(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1146a
movq 0xe58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, (%rdi)
leaq 0x29ba8(%rip), %rsi     # 0x3b026
leaq 0x29ba3(%rip), %rdx     # 0x3b028
callq 0xb5f8
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1556a
movl %eax, %ebp
andb 0x18(%rsp), %bpl
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x114bf
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11622
leaq 0xd90(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xd38(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x4f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29b21(%rip), %rsi     # 0x3b026
leaq 0x29b1c(%rip), %rdx     # 0x3b028
leaq 0x4e0(%rsp), %rdi
callq 0xb5f8
leaq 0x830(%rsp), %rdi
leaq 0x4e0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xd90(%rsp), %rcx
leaq 0xd38(%rsp), %r8
leaq 0x830(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x848(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11581
movq 0x848(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x1159e
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x115bf
movq 0xd70(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x115e0
movq 0xd50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xdc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11601
movq 0xdc8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xda8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11622
movq 0xda8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %r14
cmpq %r14, %rax
movq %rax, 0xa8(%rsp)
je 0x11a27
leaq 0x30(%rax), %rbp
cmpq %r14, %rbp
je 0x11a2a
leaq 0x40(%rsp), %rbx
leaq 0x50(%rsp), %r12
movl $0x30, %r13d
movq %r14, 0x118(%rsp)
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 0xa8(%rsp), %r15
cmpq %r15, %rbp
je 0x1175d
movl (%rbp), %eax
movl %eax, 0x38(%rsp)
movq %r12, 0x40(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x116c7
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x116cf
movups (%rax), %xmm0
movups %xmm0, (%r12)
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 (%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 0x38(%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 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x11755
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x118(%rsp), %r14
addq $0x30, %rbp
addq $0x30, %r13
cmpq %r14, %rbp
jne 0x11662
movq 0x20(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x28(%rsp), %r14
movq 0x98(%rsp), %r15
jmp 0x11a2a
testl %r12d, %r12d
je 0x12471
movl 0x120(%rsp), %eax
cmpb $0x0, 0x18(%rsp)
je 0x1263d
xorl %ebx, %ebx
cmpl $0x7, %eax
je 0x129c5
cmpl $0x4, %eax
jne 0x12bd6
leaq 0x650(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2985a(%rip), %rsi     # 0x3b029
leaq 0x29855(%rip), %rdx     # 0x3b02b
leaq 0x640(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x640(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x11824
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x640(%rsp), %rdi
cmpq %r14, %rdi
je 0x11841
movq 0x650(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x630(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x297d8(%rip), %rsi     # 0x3b02c
leaq 0x297d3(%rip), %rdx     # 0x3b02e
leaq 0x620(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x620(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x118a5
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x620(%rsp), %rdi
cmpq %r14, %rdi
je 0x12bd6
movq 0x630(%rsp), %rsi
jmp 0x12ac7
leaq 0x450(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a31f(%rip), %rsi     # 0x3bbf5
leaq 0x2a319(%rip), %rdx     # 0x3bbf6
leaq 0x440(%rsp), %rdi
callq 0xb5f8
leaq 0x430(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x29dfd(%rip), %rdx     # 0x3b6fa
leaq 0x420(%rsp), %rdi
movq %rdx, %rsi
callq 0xb5f8
movq (%rbx), %rax
movq (%rax), %rax
movl (%rax), %eax
movl %eax, %r8d
shrl $0x1f, %r8d
addl %eax, %r8d
sarl %r8d
leaq 0xb8(%rsp), %rdi
leaq 0x440(%rsp), %rsi
leaq 0x420(%rsp), %rdx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x1a870
leaq 0xb8(%rsp), %rsi
movq 0x98(%rsp), %rdi
callq 0x14e42
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1197a
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1199b
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x420(%rsp), %rdi
cmpq %r15, %rdi
je 0x119b8
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
movq 0x98(%rsp), %r15
je 0x119dd
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %edi, %edi
movl $0x1, %esi
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
movl 0x10(%rsp), %r8d
movq %r15, %r9
callq 0x100f6
movb $0x1, %bl
testb %al, %al
jne 0x1331e
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
jmp 0x13275
movq %rax, %r14
leaq 0xce0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
movq %r14, 0x118(%rsp)
leaq 0xc88(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x4d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x295b1(%rip), %rsi     # 0x3b020
leaq 0x295ac(%rip), %rdx     # 0x3b022
leaq 0x4c0(%rsp), %rdi
callq 0xb5f8
leaq 0x800(%rsp), %rdi
leaq 0x4c0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %r15, (%rsp)
movzbl 0x17(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0xce0(%rsp), %rcx
leaq 0xc88(%rsp), %r8
leaq 0x800(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x818(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11aec
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x11b09
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xcc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x118(%rsp), %r14
je 0x11b32
movq 0xcc0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xca0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b53
movq 0xca0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b74
movq 0xd18(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xcf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b95
movq 0xcf8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, (%rdi)
leaq 0x2947a(%rip), %rsi     # 0x3b023
leaq 0x29475(%rip), %rdx     # 0x3b025
callq 0xb5f8
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1556a
movl %eax, %ebp
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x11be5
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11d4c
leaq 0xc30(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xbd8(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x4b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x293f8(%rip), %rsi     # 0x3b023
leaq 0x293f3(%rip), %rdx     # 0x3b025
leaq 0x4a0(%rsp), %rdi
callq 0xb5f8
leaq 0x7d0(%rsp), %rdi
leaq 0x4a0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xc30(%rsp), %rcx
leaq 0xbd8(%rsp), %r8
leaq 0x7d0(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x7e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11ca3
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x11cc0
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x118(%rsp), %r14
je 0x11ce9
movq 0xc10(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xbf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11d0a
movq 0xbf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11d2b
movq 0xc68(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11d4c
movq 0xc48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, (%rdi)
leaq 0x292c6(%rip), %rsi     # 0x3b026
leaq 0x292c1(%rip), %rdx     # 0x3b028
callq 0xb5f8
leaq 0x1a8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1556a
movl %eax, %ebp
andb 0x18(%rsp), %bpl
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x11da1
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
je 0x11f09
leaq 0xb80(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1aa22
leaq 0xb28(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x490(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2923f(%rip), %rsi     # 0x3b026
leaq 0x2923a(%rip), %rdx     # 0x3b028
leaq 0x480(%rsp), %rdi
callq 0xb5f8
leaq 0x7a0(%rsp), %rdi
leaq 0x480(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r15, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xb80(%rsp), %rcx
leaq 0xb28(%rsp), %r8
leaq 0x7a0(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x1419e
leaq 0x7b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11e60
movq 0x7b8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x11e7d
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x118(%rsp), %r14
je 0x11ea6
movq 0xb60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11ec7
movq 0xb40(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xbb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11ee8
movq 0xbb8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11f09
movq 0xb98(%rsp), %rsi
incq %rsi
callq 0x5360
subq 0xa8(%rsp), %r14
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, 0xa8(%rsp)
cmpq %rax, %rcx
je 0x1207c
movq 0xa8(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x18(%rsp), %rbp
je 0x1207c
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 0xa8(%rsp), %r13
cmpq %r13, %rbp
je 0x12069
movl (%rbp), %eax
movl %eax, 0x38(%rsp)
movq %r15, 0x40(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x11fda
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x11fe1
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 0x12069
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r12
cmpq 0x18(%rsp), %rbp
jne 0x11f75
movq 0x20(%rsp), %rbp
movq 0x28(%rsp), %r12
cmpq %r12, %rbp
je 0x1242b
leaq 0x128(%rsp), %rbx
leaq 0x2f8(%rsp), %r15
movq 0x90(%rsp), %rax
incl %eax
movq %rax, 0x90(%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 0xb50a
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%rbx)
leaq 0x918(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
movl 0x120(%rsp), %eax
movl %eax, 0x2f0(%rsp)
leaq 0x308(%rsp), %rax
movq %rax, 0x2f8(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xb50a
movzwl 0x24(%rbx), %eax
movw %ax, 0x24(%r15)
movl 0x20(%rbx), %eax
movl %eax, 0x20(%r15)
leaq 0x38(%rsp), %rdi
leaq 0x918(%rsp), %rsi
leaq 0x2f0(%rsp), %rdx
callq 0x15ab2
movq 0x2f8(%rsp), %rdi
leaq 0x308(%rsp), %rax
cmpq %rax, %rdi
je 0x12189
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x940(%rsp), %rdi
leaq 0x950(%rsp), %rax
cmpq %rax, %rdi
je 0x121ae
movq 0x950(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x920(%rsp), %rdi
leaq 0x930(%rsp), %rax
cmpq %rax, %rdi
je 0x121d3
movq 0x930(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x8c0(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1aa22
leaq 0xa20(%rsp), %r14
movq %r14, %rdi
leaq 0x238(%rsp), %rsi
callq 0x1aa22
leaq 0x208(%rsp), %rdi
leaq 0x8c0(%rsp), %rsi
movq %r14, %rdx
callq 0x1528a
movq 0xa48(%rsp), %rdi
leaq 0xa58(%rsp), %rax
cmpq %rax, %rdi
je 0x1223d
movq 0xa58(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xa28(%rsp), %rdi
leaq 0xa38(%rsp), %rax
cmpq %rax, %rdi
je 0x12262
movq 0xa38(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x8e8(%rsp), %rdi
leaq 0x8f8(%rsp), %rax
cmpq %rax, %rdi
je 0x12287
movq 0x8f8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x8c8(%rsp), %rdi
leaq 0x8d8(%rsp), %rax
cmpq %rax, %rdi
je 0x122ac
movq 0x8d8(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x1a8(%rsp), %eax
jne 0x122dc
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x122dc
cmpl $0x6, %eax
je 0x122dc
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x208(%rsp), %rdi
callq 0x15be4
addl 0xa0(%rsp), %r13d
xorb 0xb4(%rsp), %al
movzbl %al, %eax
movl 0xa4(%rsp), %r14d
subl %eax, %r14d
movl %r14d, %eax
orl %r13d, %eax
js 0x1237b
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 0xb118
movq 0x90(%rsp), %rdi
xorl %esi, %esi
movl %r13d, %edx
movl %r14d, %ecx
movl 0x10(%rsp), %r8d
movq 0x98(%rsp), %r9
callq 0x100f6
movl $0x1, %r14d
testb %al, %al
jne 0x12381
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
xorl %r14d, %r14d
jmp 0x12381
movl $0x5, %r14d
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x123a6
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x123c2
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x123de
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x12403
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x5, %r14d
je 0x1240e
testl %r14d, %r14d
jne 0x12421
addq $0x30, %rbp
cmpq %r12, %rbp
jne 0x120b1
movl $0x4, %r14d
testb $0x3, %r14b
sete %r14b
jmp 0x1242e
movb $0x1, %r14b
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1244f
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131e6
movq 0x2b0(%rsp), %rsi
jmp 0x131de
leaq 0x208(%rsp), %rdi
callq 0x155ec
xorl %ebx, %ebx
testb %al, %al
je 0x124aa
leaq 0x20(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0xb22e
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
shrq $0x4, %rax
imull $0xaaaaaaab, %eax, %ebx # imm = 0xAAAAAAAB
cmpb $0x0, 0x18(%rsp)
je 0x127c8
leaq 0x730(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28bf0(%rip), %rsi     # 0x3b0b8
leaq 0x28beb(%rip), %rdx     # 0x3b0ba
leaq 0x720(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x720(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x1251d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x720(%rsp), %rdi
cmpq %r15, %rdi
je 0x1253a
movq 0x730(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x710(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28b6e(%rip), %rsi     # 0x3b0bb
leaq 0x28b69(%rip), %rdx     # 0x3b0bd
leaq 0x700(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x700(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1259e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x700(%rsp), %rdi
cmpq %r15, %rdi
je 0x125bb
movq 0x710(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x6f0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28af0(%rip), %rsi     # 0x3b0be
leaq 0x28aeb(%rip), %rdx     # 0x3b0c0
leaq 0x6e0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1261f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x12bd6
movq 0x6f0(%rsp), %rsi
jmp 0x12ac7
cmpl $0x9, %eax
je 0x12ad4
xorl %ebx, %ebx
cmpl $0x2, %eax
jne 0x12bd6
leaq 0x5d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x289c5(%rip), %rsi     # 0x3b029
leaq 0x289c0(%rip), %rdx     # 0x3b02b
leaq 0x5c0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x126b6
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x126d3
movq 0x5d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x5b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x28946(%rip), %rsi     # 0x3b02c
leaq 0x28941(%rip), %rdx     # 0x3b02e
leaq 0x5a0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12734
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x12bd4
movq 0x5b0(%rsp), %rsi
jmp 0x12bcc
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x12777
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x1279c
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x127c1
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
jmp 0x1331e
leaq 0x6d0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x288d7(%rip), %rsi     # 0x3b0b2
leaq 0x288d2(%rip), %rdx     # 0x3b0b4
leaq 0x6c0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x1282d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x1284a
movq 0x6d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x6b0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28858(%rip), %rsi     # 0x3b0b5
leaq 0x28853(%rip), %rdx     # 0x3b0b7
leaq 0x6a0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x128ab
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x128c8
movq 0x6b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x690(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x287e6(%rip), %rsi     # 0x3b0c1
leaq 0x287e1(%rip), %rdx     # 0x3b0c3
leaq 0x680(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x680(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x12929
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x680(%rsp), %rdi
cmpq %r15, %rdi
je 0x12946
movq 0x690(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x670(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2876b(%rip), %rsi     # 0x3b0c4
leaq 0x28766(%rip), %rdx     # 0x3b0c6
leaq 0x660(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x660(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x129a7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x660(%rsp), %rdi
cmpq %r15, %rdi
je 0x12bd6
movq 0x670(%rsp), %rsi
jmp 0x12ac7
leaq 0x610(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x28657(%rip), %rsi     # 0x3b02f
leaq 0x28652(%rip), %rdx     # 0x3b031
leaq 0x600(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x600(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x12a2d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x600(%rsp), %rdi
cmpq %r14, %rdi
je 0x12a4a
movq 0x610(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x5f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x285d5(%rip), %rsi     # 0x3b032
leaq 0x285d0(%rip), %rdx     # 0x3b034
leaq 0x5e0(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12aae
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x12bd6
movq 0x5f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x12bd6
leaq 0x590(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2854e(%rip), %rsi     # 0x3b035
leaq 0x2854a(%rip), %rdx     # 0x3b038
leaq 0x580(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x580(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x12b39
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x580(%rsp), %rdi
cmpq %r14, %rdi
je 0x12b56
movq 0x590(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x570(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x284d0(%rip), %rsi     # 0x3b039
leaq 0x284cc(%rip), %rdx     # 0x3b03c
leaq 0x560(%rsp), %rdi
callq 0xb5f8
leaq 0x38(%rsp), %rdi
leaq 0x560(%rsp), %rsi
xorl %edx, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xfc0e
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x12bb7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x560(%rsp), %rdi
cmpq %r14, %rdi
je 0x12bd4
movq 0x570(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
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, 0xa8(%rsp)
cmpq %rax, %rcx
je 0x12d3a
movq 0xa8(%rsp), %rax
leaq 0x30(%rax), %r13
cmpq 0x18(%rsp), %r13
je 0x12d3a
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 0xa8(%rsp), %r12
cmpq %r12, %r13
je 0x12d27
movl (%r13), %eax
movl %eax, 0x38(%rsp)
movq %r15, 0x40(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x12c8d
movq %rcx, 0x40(%rsp)
movq (%rax), %rcx
movq %rcx, 0x50(%rsp)
jmp 0x12c94
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 0x12d27
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r13
addq $0x30, %rbp
cmpq 0x18(%rsp), %r13
jne 0x12c27
movq 0x20(%rsp), %r15
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq %rax, %r15
je 0x13180
leaq 0x1e0(%rsp), %r12
leaq 0x778(%rsp), %r14
leaq 0x788(%rsp), %r13
movl 0x114(%rsp), %eax
notl %eax
andl $0x1, %eax
movl %eax, 0xa8(%rsp)
leaq 0xad0(%rsp), %rbx
leaq 0x238(%rsp), %rbp
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 %r12, %rdi
callq 0xb50a
movzwl 0x2c(%r15), %eax
movw %ax, 0x24(%r12)
movl 0x28(%r15), %eax
movl %eax, 0x20(%r12)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x1aa22
movl 0x1d8(%rsp), %eax
movl %eax, 0x770(%rsp)
movq %r13, 0x778(%rsp)
movq 0x1e0(%rsp), %rsi
movq 0x1e8(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb50a
movzwl 0x24(%r12), %eax
movw %ax, 0x24(%r14)
movl 0x20(%r12), %eax
movl %eax, 0x20(%r14)
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
leaq 0x770(%rsp), %rdx
callq 0x15ab2
movq 0x778(%rsp), %rdi
cmpq %r13, %rdi
je 0x12e50
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xaf8(%rsp), %rdi
leaq 0xb08(%rsp), %rax
cmpq %rax, %rdi
je 0x12e75
movq 0xb08(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xad8(%rsp), %rdi
leaq 0xae8(%rsp), %rax
cmpq %rax, %rdi
je 0x12e9a
movq 0xae8(%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)
leaq 0x298(%rsp), %r12
movq %r12, %rdi
movq 0x98(%rsp), %rsi
callq 0x2433e
leaq 0x38(%rsp), %rdi
movq %r12, %rsi
callq 0x1c07e
movb %al, 0x8d(%rsp)
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x12efc
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x12f21
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x970(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x1aa22
leaq 0xa78(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rsi
callq 0x1aa22
leaq 0x298(%rsp), %rdi
leaq 0x970(%rsp), %rsi
movq %r12, %rdx
callq 0x1528a
movq 0xaa0(%rsp), %rdi
leaq 0xab0(%rsp), %rax
cmpq %rax, %rdi
je 0x12f86
movq 0xab0(%rsp), %rsi
incq %rsi
callq 0x5360
movq %rbx, %r12
movq 0xa80(%rsp), %rdi
leaq 0xa90(%rsp), %rax
cmpq %rax, %rdi
je 0x12fae
movq 0xa90(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r14, %rbx
movq 0x998(%rsp), %rdi
leaq 0x9a8(%rsp), %rax
cmpq %rax, %rdi
je 0x12fd6
movq 0x9a8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r13, %r14
movq 0x978(%rsp), %rdi
leaq 0x988(%rsp), %rax
cmpq %rax, %rdi
je 0x12ffe
movq 0x988(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x1d8(%rsp), %eax
xorl %ebp, %ebp
cmpl 0x120(%rsp), %eax
jne 0x1302a
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x1302a
cmpl $0x6, %eax
je 0x1302a
xorl %ebp, %ebp
cmpl $0xa, %eax
sete %bpl
negl %ebp
leaq 0x298(%rsp), %rdi
callq 0x15be4
addl 0xa0(%rsp), %ebp
xorb 0x90(%rsp), %al
xorb $0x1, %al
movzbl %al, %eax
movl 0xa4(%rsp), %r13d
subl %eax, %r13d
movl %r13d, %eax
orl %ebp, %eax
js 0x130b9
movq 0x98(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xb118
movl 0xb4(%rsp), %edi
movl 0xa8(%rsp), %esi
movl %ebp, %edx
movl %r13d, %ecx
movl 0x10(%rsp), %r8d
movq 0x98(%rsp), %r9
callq 0x100f6
movl $0x1, %ebp
testb %al, %al
jne 0x130be
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
xorl %ebp, %ebp
jmp 0x130be
movl $0x3, %ebp
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x130e3
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x130ff
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x1311b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x13140
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x3, %ebp
je 0x13149
testl %ebp, %ebp
jne 0x13176
addq $0x30, %r15
cmpq 0x18(%rsp), %r15
movq %r14, %r13
movq %rbx, %r14
movq %r12, %rbx
leaq 0x1e0(%rsp), %r12
leaq 0x238(%rsp), %rbp
jne 0x12d8d
movl $0x2, %ebp
testb $0x1, %bpl
sete %r14b
jmp 0x13183
movb $0x1, %r14b
leaq 0x220(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131a4
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131c5
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x131e6
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13207
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x168(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13228
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13249
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1326a
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
testb %r14b, %r14b
je 0x1331e
leaq 0xb8(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x2433e
movl 0x114(%rsp), %eax
leaq 0xf0(%rsp), %rcx
movslq 0x14(%rcx), %rdx
movslq 0xa0(%rsp), %rsi
movslq 0xa4(%rsp), %rdi
imulq $0x1081c8, 0x290(%rsp), %r8 # imm = 0x1081C8
addq 0x35cb0(%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 0x132fb
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1331c
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
leaq 0x270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1333f
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x250(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13360
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20(%rsp), %rdi
callq 0xb144
movl %ebx, %eax
addq $0x12b8, %rsp           # imm = 0x12B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x133f1
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x133f1
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x13412
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13412
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x13433
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13433
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x13454
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13454
movq %rax, %rbx
movq 0x560(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x570(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x5e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x5f0(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x5a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x5b0(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x620(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x630(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13f18
jmp 0x13f18
jmp 0x13f18
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13509
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13509
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1352a
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1352a
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1354b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1354b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1356c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1356c
movq %rax, %rbx
movq 0x580(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x590(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x600(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x610(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x5c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x5d0(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x640(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x650(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13f18
jmp 0x13f18
jmp 0x13f18
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x135bd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x135bd
movq %rax, %rbx
movq 0x660(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x670(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1361b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1361b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1363c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1363c
movq %rax, %rbx
movq 0x680(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x690(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x6e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x6f0(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13f18
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x1369f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1369f
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x136c0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x136c0
movq %rax, %rbx
movq 0x6a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x6b0(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x700(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x710(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13f18
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1372b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1372b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1374c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1374c
movq %rax, %rbx
movq 0x6c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x6d0(%rsp), %rsi
jmp 0x14060
movq %rax, %rbx
movq 0x720(%rsp), %rdi
cmpq %r15, %rdi
je 0x14068
movq 0x730(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13f18
movq %rax, %rbx
leaq 0x7b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1379d
movq 0x7b8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1379d
movq %rax, %rbx
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x137bf
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x137bf
movq %rax, %rbx
leaq 0xb28(%rsp), %rdi
callq 0xb0e0
jmp 0x137d1
movq %rax, %rbx
leaq 0xb80(%rsp), %rdi
jmp 0x13ae5
movq %rax, %rbx
leaq 0x7e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13807
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13807
movq %rax, %rbx
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x13829
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13829
movq %rax, %rbx
leaq 0xbd8(%rsp), %rdi
callq 0xb0e0
jmp 0x1383b
movq %rax, %rbx
leaq 0xc30(%rsp), %rdi
jmp 0x13ae5
movq %rax, %rbx
leaq 0x848(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13871
movq 0x848(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13871
movq %rax, %rbx
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x13893
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13893
movq %rax, %rbx
leaq 0xd38(%rsp), %rdi
callq 0xb0e0
jmp 0x138a5
movq %rax, %rbx
leaq 0xd90(%rsp), %rdi
jmp 0x13ae5
movq %rax, %rbx
leaq 0x878(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x138db
movq 0x878(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x138db
movq %rax, %rbx
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x138fd
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x138fd
movq %rax, %rbx
leaq 0xde8(%rsp), %rdi
callq 0xb0e0
jmp 0x1390f
movq %rax, %rbx
leaq 0xe40(%rsp), %rdi
jmp 0x13ae5
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xb0e0
jmp 0x13931
movq %rax, %rbx
movq 0x420(%rsp), %rdi
cmpq %r15, %rdi
je 0x13953
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13953
movq %rax, %rbx
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x450(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13999
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13999
movq %rax, %rbx
movq 0x540(%rsp), %rdi
cmpq %r14, %rdi
je 0x14068
movq 0x550(%rsp), %rsi
jmp 0x14060
jmp 0x13f18
jmp 0x13a3b
jmp 0x13f98
jmp 0x13a3b
jmp 0x13f98
movq %rax, %rbx
leaq 0x818(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x139f3
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x139f3
movq %rax, %rbx
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x13a15
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13a15
movq %rax, %rbx
leaq 0xc88(%rsp), %rdi
callq 0xb0e0
jmp 0x13a27
movq %rax, %rbx
leaq 0xce0(%rsp), %rdi
jmp 0x13ae5
jmp 0x13a3b
jmp 0x13f98
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x14123
movq 0x48(%rsp), %rsi
jmp 0x1411b
jmp 0x13f98
movq %rax, %rbx
leaq 0x8a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13a89
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13a89
movq %rax, %rbx
movq 0x520(%rsp), %rdi
cmpq %r14, %rdi
je 0x13aab
movq 0x530(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13aab
movq %rax, %rbx
leaq 0xe98(%rsp), %rdi
callq 0xb0e0
jmp 0x13add
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13af2
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13af2
movq %rax, %rbx
leaq 0xef0(%rsp), %rdi
callq 0xb0e0
jmp 0x14123
movq %rax, %rbx
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x14123
movq 0x470(%rsp), %rsi
jmp 0x1411b
jmp 0x13f98
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13b42
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13b42
movq %rax, %rbx
movq 0x320(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x330(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13b92
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13b92
movq %rax, %rbx
movq 0x340(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x350(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13be2
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13be2
movq %rax, %rbx
movq 0x360(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x370(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13c32
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13c32
movq %rax, %rbx
movq 0x380(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x390(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13c82
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13c82
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x3b0(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13cd2
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13cd2
movq %rax, %rbx
movq 0x3c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x3d0(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x13d22
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13d22
movq %rax, %rbx
movq 0x3e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x3f0(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13d6e
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x13d6e
movq %rax, %rbx
movq 0x400(%rsp), %rdi
cmpq %r14, %rdi
je 0x1417f
movq 0x410(%rsp), %rsi
jmp 0x13f0b
jmp 0x13ed2
movq %rax, %rbx
leaq 0x10a8(%rsp), %rdi
callq 0xb0e0
jmp 0x13da6
movq %rax, %rbx
leaq 0x1100(%rsp), %rdi
callq 0xb0e0
jmp 0x14089
movq %rax, %rbx
jmp 0x14089
movq %rax, %rbx
leaq 0x1158(%rsp), %rdi
callq 0xb0e0
jmp 0x13dd5
movq %rax, %rbx
leaq 0x11b0(%rsp), %rdi
callq 0xb0e0
jmp 0x140aa
jmp 0x13de9
movq %rax, %rbx
jmp 0x140aa
movq %rax, %rbx
leaq 0x1208(%rsp), %rdi
callq 0xb0e0
jmp 0x13e06
movq %rax, %rbx
leaq 0x1260(%rsp), %rdi
jmp 0x13e6c
jmp 0x13e76
jmp 0x13e7e
jmp 0x13ed2
jmp 0x13f98
movq %rax, %rbx
leaq 0xf48(%rsp), %rdi
callq 0xb0e0
jmp 0x13e33
movq %rax, %rbx
leaq 0xfa0(%rsp), %rdi
callq 0xb0e0
jmp 0x14144
jmp 0x13e47
movq %rax, %rbx
jmp 0x14144
movq %rax, %rbx
leaq 0xff8(%rsp), %rdi
callq 0xb0e0
jmp 0x13e64
movq %rax, %rbx
leaq 0x1050(%rsp), %rdi
callq 0xb0e0
jmp 0x14165
movq %rax, %rbx
jmp 0x14165
movq %rax, %rbx
jmp 0x14172
jmp 0x13ed2
jmp 0x13f18
jmp 0x13ed2
jmp 0x13f98
movq %rax, %rbx
jmp 0x1418c
movq %rax, %rbx
jmp 0x13ec3
jmp 0x13ed2
movq %rax, %rbx
movq 0x748(%rsp), %rdi
cmpq %r15, %rdi
je 0x13ec3
movq 0x758(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x9c8(%rsp), %rdi
jmp 0x13ee5
movq %rax, %rbx
jmp 0x13eea
movq %rax, %rbx
jmp 0x1417f
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xb0e0
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x1417f
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x1417f
movq %rax, %rbx
jmp 0x14068
movq %rax, %rbx
jmp 0x14043
movq %rax, %rbx
jmp 0x13f4d
movq %rax, %rbx
movq 0x778(%rsp), %rdi
cmpq %r13, %rdi
je 0x13f4d
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xad0(%rsp), %rdi
jmp 0x1403e
jmp 0x13f69
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
jmp 0x13f8e
movq %rax, %rbx
jmp 0x14039
movq %rax, %rbx
jmp 0x13f86
movq %rax, %rbx
leaq 0xa78(%rsp), %rdi
callq 0xb0e0
leaq 0x970(%rsp), %rdi
callq 0xb0e0
jmp 0x14039
movq %rax, %rbx
jmp 0x14123
movq %rax, %rbx
jmp 0x140fe
movq %rax, %rbx
jmp 0x13fd5
movq %rax, %rbx
movq 0x2f8(%rsp), %rdi
leaq 0x308(%rsp), %rax
cmpq %rax, %rdi
je 0x13fd5
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x918(%rsp), %rdi
jmp 0x140f9
movq %rax, %rbx
jmp 0x140f4
movq %rax, %rbx
jmp 0x13fff
movq %rax, %rbx
leaq 0xa20(%rsp), %rdi
callq 0xb0e0
leaq 0x8c0(%rsp), %rdi
callq 0xb0e0
jmp 0x140f4
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x14039
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
callq 0xb0e0
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x14068
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x220(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x14089
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x140aa
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x14165
movq 0x1c0(%rsp), %rsi
jmp 0x1415d
movq %rax, %rbx
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x140f4
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x38(%rsp), %rdi
callq 0xb0e0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x14123
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x14144
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x14165
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
callq 0xb0e0
leaq 0xb8(%rsp), %rdi
callq 0xb0e0
leaq 0x238(%rsp), %rdi
callq 0xb0e0
leaq 0x20(%rsp), %rdi
callq 0xb144
movq %rbx, %rdi
callq 0x55e0