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

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

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

  vector<Interval> possible_intervals;

  Note note = song->notes[position];

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2408, %rsp           # imm = 0x2408
movq %r9, %rbp
movl %r8d, %r13d
movl %ecx, 0x5c(%rsp)
movl %edx, 0x58(%rsp)
movl %esi, %r14d
movl %edi, %r15d
movl %esi, %eax
addl %edi, %eax
movl %eax, 0x54(%rsp)
je 0x1e9ce
leaq 0x9bf3bc0(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %r15d, %eax
jbe 0x2265a
movl %r13d, %r12d
movq %r15, 0x40(%rsp)
movl %r15d, %r13d
movq %r14, 0x110(%rsp)
movl %r14d, %r14d
leaq 0x168(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %r15
movq %rbp, %rsi
callq 0x2433e
movslq 0x4c(%rbx), %rax
movslq 0x58(%rsp), %rcx
movslq 0x5c(%rsp), %rdx
imulq $0x42072, %r14, %rsi    # imm = 0x42072
movq %r13, 0x1c0(%rsp)
imulq $0x1081c8, %r13, %rdi   # imm = 0x1081C8
addq 0x2a61e(%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 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x1e98e
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1e9af
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
movl %r12d, %r13d
movq %r15, %rbp
movq 0x40(%rsp), %r15
movq 0x110(%rsp), %r14
jne 0x1ea15
xorl %ebx, %ebx
jmp 0x2265a
leaq 0x2addb(%rip), %rdi     # 0x497b0
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
movl $0x1, %esi
callq 0x51f0
callq 0x5240
movl %eax, %edi
callq 0x5310
leaq 0x9bf3ab1(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %r15d, %eax
jbe 0x2265a
movl %r15d, %eax
movq %rax, 0x1c0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x9bf3a7b(%rip), %rbx   # 0x9c124a8
movq (%rbx), %rax
imulq $0x58, 0x1c0(%rsp), %rsi
addq (%rax), %rsi
leaq 0x168(%rsp), %rdi
callq 0x1aa22
movl %r14d, %eax
orl %r15d, %eax
movzbl %r13b, %eax
movl %eax, 0x10(%rsp)
movq %r14, 0x110(%rsp)
movq %rbp, 0x48(%rsp)
je 0x1ed1d
movq (%rbx), %rdi
callq 0x242c2
decl %eax
cmpl %r15d, %eax
jbe 0x1ed1d
movq (%rbx), %rax
leal (%r15,%r14), %ecx
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x60(%rsp), %rdi
callq 0x1aa22
movq 0x8(%rbp), %rsi
addq $-0x58, %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x1aa22
leaq 0x1d80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1d28(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x280(%rsp), %rdi
leaq 0x1d80(%rsp), %rsi
leaq 0x1d28(%rsp), %rdx
callq 0x1528a
leaq 0x1d60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb11
movq 0x1d60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb32
movq 0x1d40(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1db8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb53
movq 0x1db8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eb74
movq 0x1d98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x280(%rsp), %rdi
callq 0x15be4
movl %eax, %r12d
leaq 0x1cd0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1c78(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1aa22
leaq 0x250(%rsp), %rdi
leaq 0x1cd0(%rsp), %rsi
leaq 0x1c78(%rsp), %rdx
callq 0x1528a
leaq 0x1cb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ebe9
movq 0x1cb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ec0a
movq 0x1c90(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ec2b
movq 0x1d08(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ce8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ec4c
movq 0x1ce8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x148(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x15418
leaq 0x168(%rsp), %rdi
callq 0x1c1fa
movl %r12d, %ebx
xorb $0x1, %bl
testb %al, %al
movb %bl, 0x40(%rsp)
je 0x1fad2
movq %r14, %r15
leaq 0x460(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c38a(%rip), %rsi     # 0x3b020
leaq 0x1c385(%rip), %rdx     # 0x3b022
leaq 0x450(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x450(%rsp), %rsi
movl $0x1, %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 0x1ecf7
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0x21758
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x21758
movq (%rbx), %rdi
callq 0x242c2
decl %eax
cmpl %r15d, %eax
jne 0x1efd0
movq (%rbx), %rax
leal -0x1(%r15), %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x60(%rsp), %rdi
callq 0x1aa22
movq 0x8(%rbp), %rsi
addq $-0x58, %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x1aa22
leaq 0x13e0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1388(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x280(%rsp), %rdi
leaq 0x13e0(%rsp), %rsi
leaq 0x1388(%rsp), %rdx
callq 0x1528a
leaq 0x13c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1edc2
movq 0x13c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x13a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ede3
movq 0x13a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1418(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ee04
movq 0x1418(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x13f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ee25
movq 0x13f8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x280(%rsp), %rdi
callq 0x15be4
movl %eax, %r12d
leaq 0x1330(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x12d8(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1aa22
leaq 0x250(%rsp), %rdi
leaq 0x1330(%rsp), %rsi
leaq 0x12d8(%rsp), %rdx
callq 0x1528a
leaq 0x1310(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ee9a
movq 0x1310(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eebb
movq 0x12f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1368(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eedc
movq 0x1368(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1348(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1eefd
movq 0x1348(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x148(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x15418
leaq 0x168(%rsp), %rdi
callq 0x1c1fa
movl %r12d, %ecx
xorb $0x1, %cl
movb %cl, 0x54(%rsp)
testb %al, %al
movq %r15, 0x40(%rsp)
je 0x1f4fa
leaq 0x380(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c0d7(%rip), %rsi     # 0x3b020
leaq 0x1c0d2(%rip), %rdx     # 0x3b022
leaq 0x370(%rsp), %rdi
callq 0xb5f8
leaq 0xb8(%rsp), %rdi
leaq 0x370(%rsp), %rsi
movl $0x1, %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 0x1efaa
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x220e7
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x220e7
leaq 0x360(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c03d(%rip), %rsi     # 0x3b020
leaq 0x1c038(%rip), %rdx     # 0x3b022
leaq 0x350(%rsp), %rdi
callq 0xb5f8
leaq 0x60(%rsp), %rdi
leaq 0x350(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0xfc0e
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f037
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x350(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f054
movq 0x360(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x340(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bfbc(%rip), %rsi     # 0x3b023
leaq 0x1bfb7(%rip), %rdx     # 0x3b025
leaq 0x330(%rsp), %rdi
callq 0xb5f8
leaq 0x60(%rsp), %rdi
leaq 0x330(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0xfc0e
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1f0bc
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f0d9
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x5360
testb %r13b, %r13b
je 0x1f168
leaq 0x320(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1bf31(%rip), %rsi     # 0x3b026
leaq 0x1bf2c(%rip), %rdx     # 0x3b028
leaq 0x310(%rsp), %rdi
callq 0xb5f8
leaq 0x60(%rsp), %rdi
leaq 0x310(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0xfc0e
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1f14b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f168
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rax
movq %rax, 0x40(%rsp)
cmpq %rax, %r12
je 0x22577
leaq 0x30(%r12), %r13
movq 0x40(%rsp), %rbx
cmpq %rbx, %r13
je 0x1f2ce
movl $0x30, %ebp
leaq 0x78(%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 0x1f2b3
movl (%r13), %eax
movl %eax, 0x60(%rsp)
movq %r14, 0x68(%rsp)
movq 0x8(%r13), %rcx
leaq 0x18(%r13), %rax
cmpq %rcx, %rax
je 0x1f203
movq %rcx, 0x68(%rsp)
movq (%rax), %rcx
movq %rcx, 0x78(%rsp)
jmp 0x1f20a
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %r14, %rbx
leaq 0x8(%r13), %rdi
movq 0x10(%r13), %rcx
movq %rcx, 0x70(%rsp)
movq %rax, 0x8(%r13)
movq $0x0, 0x10(%r13)
movb $0x0, 0x18(%r13)
movzwl 0x2c(%r13), %eax
leaq 0x68(%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 0x60(%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 0x68(%rsp), %rdi
cmpq %rbx, %rdi
movq %rbx, %r14
je 0x1f2a9
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x40(%rsp), %rbx
movq 0x18(%rsp), %r12
addq $0x30, %r13
addq $0x30, %rbp
cmpq %rbx, %r13
jne 0x1f1a2
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rbx
movq %rbx, 0x40(%rsp)
cmpq %rbx, %r12
je 0x22577
leaq 0x1d0(%rsp), %rbx
leaq 0x718(%rsp), %r14
leaq 0x728(%rsp), %r15
movq 0x110(%rsp), %rax
notl %eax
andl $0x1, %eax
movl %eax, 0x18(%rsp)
leaq 0xdb0(%rsp), %rbp
movl (%r12), %eax
movl %eax, 0x1c8(%rsp)
leaq 0x1e0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movq 0x8(%r12), %rsi
movq 0x10(%r12), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb50a
movzwl 0x2c(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r12), %eax
movl %eax, 0x20(%rbx)
movq %rbp, %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
movl 0x1c8(%rsp), %eax
movl %eax, 0x710(%rsp)
movq %r15, 0x718(%rsp)
movq 0x1d0(%rsp), %rsi
movq 0x1d8(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb50a
movzwl 0x24(%rbx), %eax
movw %ax, 0x24(%r14)
movl 0x20(%rbx), %eax
movl %eax, 0x20(%r14)
leaq 0x60(%rsp), %rdi
movq %rbp, %rsi
leaq 0x710(%rsp), %rdx
callq 0x15ab2
movq 0x718(%rsp), %rdi
cmpq %r15, %rdi
je 0x1f3d2
movq 0x728(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xdd8(%rsp), %rdi
leaq 0xde8(%rsp), %rax
cmpq %rax, %rdi
je 0x1f3f7
movq 0xde8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r15, %r13
movq 0xdb8(%rsp), %rdi
leaq 0xdc8(%rsp), %rax
cmpq %rax, %rdi
je 0x1f41f
movq 0xdc8(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x60(%rsp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
movl %ecx, 0x60(%rsp)
movq 0x48(%rsp), %r15
movq %r15, %rdi
leaq 0x60(%rsp), %rsi
callq 0xb118
movl 0x54(%rsp), %edi
movl 0x18(%rsp), %esi
movl 0x58(%rsp), %edx
movl 0x5c(%rsp), %ecx
movl 0x10(%rsp), %r8d
movq %r15, %r9
callq 0x1e8ae
testb %al, %al
jne 0x2068e
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x1f4a2
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
movq %r13, %r15
je 0x1f4c1
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x1f4e6
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r12
cmpq 0x40(%rsp), %r12
jne 0x1f30d
jmp 0x22577
leaq 0x1280(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1228(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x440(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1baec(%rip), %rsi     # 0x3b020
leaq 0x1bae7(%rip), %rdx     # 0x3b022
leaq 0x430(%rsp), %rdi
callq 0xb5f8
leaq 0x830(%rsp), %rdi
leaq 0x430(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
movzbl 0x54(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1280(%rsp), %rcx
leaq 0x1228(%rsp), %r8
leaq 0x830(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x848(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f5b4
movq 0x848(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x430(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f5d1
movq 0x440(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f5f2
movq 0x1260(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1240(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f613
movq 0x1240(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f634
movq 0x12b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f655
movq 0x1298(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b9c7(%rip), %rsi     # 0x3b023
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x1f7c7
leaq 0x11d0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1178(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x420(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1b978(%rip), %rsi     # 0x3b023
leaq 0x1b973(%rip), %rdx     # 0x3b025
leaq 0x410(%rsp), %rdi
callq 0xb5f8
leaq 0x800(%rsp), %rdi
leaq 0x410(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x11d0(%rsp), %rcx
leaq 0x1178(%rsp), %r8
leaq 0x800(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x818(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f726
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x410(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f743
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f764
movq 0x11b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f785
movq 0x1190(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1208(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f7a6
movq 0x1208(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f7c7
movq 0x11e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b858(%rip), %rsi     # 0x3b026
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %r13b
orb %r13b, %al
jne 0x1f944
leaq 0x1120(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x10c8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x400(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1b7ff(%rip), %rsi     # 0x3b026
leaq 0x1b7fa(%rip), %rdx     # 0x3b028
leaq 0x3f0(%rsp), %rdi
callq 0xb5f8
leaq 0x7d0(%rsp), %rdi
leaq 0x3f0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1120(%rsp), %rcx
leaq 0x10c8(%rsp), %r8
leaq 0x7d0(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x7e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f8a3
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x1f8c0
movq 0x400(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1100(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f8e1
movq 0x1100(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f902
movq 0x10e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1158(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f923
movq 0x1158(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f944
movq 0x1138(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r14
cmpq %r14, %rcx
movq %rcx, 0x18(%rsp)
je 0x206fb
movq %rbp, %rax
leaq 0x30(%rcx), %rbp
cmpq %r14, %rbp
je 0x21b0f
movb %r12b, 0x17(%rsp)
movl %r13d, 0x50(%rsp)
leaq 0xc0(%rsp), %rbx
leaq 0xd0(%rsp), %r13
movl $0x30, %r12d
movq %r14, 0x38(%rsp)
callq 0x50e0
cltq
movq %r12, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r15
shlq $0x4, %r15
addq 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x1fa9e
movl (%rbp), %eax
movl %eax, 0xb8(%rsp)
movq %r13, 0xc0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x1f9ff
movq %rcx, 0xc0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x1fa07
movups (%rax), %xmm0
movups %xmm0, (%r13)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xc8(%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 0xb8(%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 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x1fa99
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x38(%rsp), %r14
addq $0x30, %rbp
addq $0x30, %r12
cmpq %r14, %rbp
jne 0x1f991
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %r14
movq 0x48(%rsp), %rbp
movl 0x50(%rsp), %r13d
movb 0x17(%rsp), %r12b
jmp 0x21b12
leaq 0x1b54a(%rip), %rsi     # 0x3b023
leaq 0x148(%rsp), %rdi
callq 0x5100
movzbl %bl, %r14d
testl %eax, %eax
je 0x1fbdf
leaq 0x23b0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x2358(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x700(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b4f7(%rip), %rsi     # 0x3b023
leaq 0x1b4f2(%rip), %rdx     # 0x3b025
leaq 0x6f0(%rsp), %rdi
callq 0xb5f8
leaq 0xc20(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x23b0(%rsp), %rcx
leaq 0x2358(%rsp), %r8
leaq 0xc20(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xc38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fba8
movq 0xc38(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6f0(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fbc5
movq 0x700(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2358(%rsp), %rdi
callq 0xb0e0
leaq 0x23b0(%rsp), %rdi
callq 0xb0e0
leaq 0x1b440(%rip), %rsi     # 0x3b026
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %r13b
orb %r13b, %al
jne 0x1fcf3
leaq 0x2300(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x22a8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x6e0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b3e7(%rip), %rsi     # 0x3b026
leaq 0x1b3e2(%rip), %rdx     # 0x3b028
leaq 0x6d0(%rsp), %rdi
callq 0xb5f8
leaq 0xbf0(%rsp), %rdi
leaq 0x6d0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2300(%rsp), %rcx
leaq 0x22a8(%rsp), %r8
leaq 0xbf0(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xc08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fcbc
movq 0xc08(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6d0(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fcd9
movq 0x6e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x22a8(%rsp), %rdi
callq 0xb0e0
leaq 0x2300(%rsp), %rdi
callq 0xb0e0
leaq 0x1c20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1bc8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x6c0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b2fc(%rip), %rsi     # 0x3b029
leaq 0x1b2f7(%rip), %rdx     # 0x3b02b
leaq 0x6b0(%rsp), %rdi
callq 0xb5f8
leaq 0xbc0(%rsp), %rdi
leaq 0x6b0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1c20(%rsp), %rcx
leaq 0x1bc8(%rsp), %r8
leaq 0xbc0(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xbd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fda9
movq 0xbd8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6b0(%rsp), %rdi
cmpq %r15, %rdi
je 0x1fdc6
movq 0x6c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fde7
movq 0x1c00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1be0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fe08
movq 0x1be0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fe29
movq 0x1c58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1fe4a
movq 0x1c38(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b70(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1b18(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x6a0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b1a8(%rip), %rsi     # 0x3b02c
leaq 0x1b1a3(%rip), %rdx     # 0x3b02e
leaq 0x690(%rsp), %rdi
callq 0xb5f8
leaq 0xb90(%rsp), %rdi
leaq 0x690(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1b70(%rsp), %rcx
leaq 0x1b18(%rsp), %r8
leaq 0xb90(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xba8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ff00
movq 0xba8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x690(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ff1d
movq 0x6a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ff3e
movq 0x1b50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ff5f
movq 0x1b30(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ba8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ff80
movq 0x1ba8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ffa1
movq 0x1b88(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ac0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1a68(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x680(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b054(%rip), %rsi     # 0x3b02f
leaq 0x1b04f(%rip), %rdx     # 0x3b031
leaq 0x670(%rsp), %rdi
callq 0xb5f8
leaq 0xb60(%rsp), %rdi
leaq 0x670(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ac0(%rsp), %rcx
leaq 0x1a68(%rsp), %r8
leaq 0xb60(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xb78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20057
movq 0xb78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x670(%rsp), %rdi
cmpq %r15, %rdi
je 0x20074
movq 0x680(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1aa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20095
movq 0x1aa0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x200b6
movq 0x1a80(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1af8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x200d7
movq 0x1af8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ad8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x200f8
movq 0x1ad8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x19b8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x660(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1af00(%rip), %rsi     # 0x3b032
leaq 0x1aefb(%rip), %rdx     # 0x3b034
leaq 0x650(%rsp), %rdi
callq 0xb5f8
leaq 0xb30(%rsp), %rdi
leaq 0x650(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1a10(%rsp), %rcx
leaq 0x19b8(%rsp), %r8
leaq 0xb30(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xb48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x201ae
movq 0xb48(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x650(%rsp), %rdi
cmpq %r15, %rdi
je 0x201cb
movq 0x660(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x201ec
movq 0x19f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2020d
movq 0x19d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2022e
movq 0x1a48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2024f
movq 0x1a28(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1960(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1908(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x640(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1adac(%rip), %rsi     # 0x3b035
leaq 0x1ada8(%rip), %rdx     # 0x3b038
leaq 0x630(%rsp), %rdi
callq 0xb5f8
leaq 0xb00(%rsp), %rdi
leaq 0x630(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1960(%rsp), %rcx
leaq 0x1908(%rsp), %r8
leaq 0xb00(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xb18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20305
movq 0xb18(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x630(%rsp), %rdi
cmpq %r15, %rdi
je 0x20322
movq 0x640(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1940(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20343
movq 0x1940(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1920(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20364
movq 0x1920(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1998(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20385
movq 0x1998(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1978(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x203a6
movq 0x1978(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18b0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1858(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x620(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ac59(%rip), %rsi     # 0x3b039
leaq 0x1ac55(%rip), %rdx     # 0x3b03c
leaq 0x610(%rsp), %rdi
callq 0xb5f8
leaq 0xad0(%rsp), %rdi
leaq 0x610(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x18b0(%rsp), %rcx
leaq 0x1858(%rsp), %r8
leaq 0xad0(%rsp), %r9
movl $0x1, %edi
movl %r14d, %esi
callq 0x23640
leaq 0xae8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2045c
movq 0xae8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x610(%rsp), %rdi
cmpq %r15, %rdi
je 0x20479
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1890(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2049a
movq 0x1890(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1870(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x204bb
movq 0x1870(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x204dc
movq 0x18e8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %rbp, %rbx
leaq 0x18c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20500
movq 0x18c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %r15
cmpq %r15, %rax
movq %rax, 0x18(%rsp)
je 0x20703
leaq 0x30(%rax), %rbp
cmpq %r15, %rbp
je 0x20706
movb %r12b, 0x17(%rsp)
movl %r13d, 0x50(%rsp)
leaq 0xd0(%rsp), %rbx
movl $0x30, %r13d
movq %r15, 0x38(%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 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x20658
movl (%rbp), %eax
movl %eax, 0xb8(%rsp)
movq %rbx, 0xc0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x205b0
movq %rcx, 0xc0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x205b6
movups (%rax), %xmm0
movups %xmm0, (%rbx)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xc8(%rsp)
movq %rax, 0x8(%rbp)
movq $0x0, 0x10(%rbp)
movb $0x0, 0x18(%rbp)
movzwl 0x2c(%rbp), %eax
leaq 0xc0(%rsp), %r12
movw %ax, 0x24(%r12)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%r12)
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 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
je 0x20658
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r13
movq 0x38(%rsp), %r15
cmpq %r15, %rbp
jne 0x20542
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %r15
movq 0x48(%rsp), %rbx
movl 0x50(%rsp), %r13d
movb 0x17(%rsp), %r12b
jmp 0x20706
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x206b3
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x206cf
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x206f4
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
jmp 0x2260e
movq %rcx, %r14
jmp 0x21b12
movq %rax, %r15
leaq 0x1a916(%rip), %rsi     # 0x3b023
leaq 0x148(%rsp), %rdi
callq 0x5100
movzbl %r12b, %ebp
testl %eax, %eax
je 0x2080f
leaq 0x2250(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x21f8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x600(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a8c3(%rip), %rsi     # 0x3b023
leaq 0x1a8be(%rip), %rdx     # 0x3b025
leaq 0x5f0(%rsp), %rdi
callq 0xb5f8
leaq 0xaa0(%rsp), %rdi
leaq 0x5f0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2250(%rsp), %rcx
leaq 0x21f8(%rsp), %r8
leaq 0xaa0(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0xab8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x207d8
movq 0xab8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x207f5
movq 0x600(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x21f8(%rsp), %rdi
callq 0xb0e0
leaq 0x2250(%rsp), %rdi
callq 0xb0e0
leaq 0x1a810(%rip), %rsi     # 0x3b026
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb %r13b, %al
jne 0x2091b
leaq 0x21a0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x2148(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x5e0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a7bb(%rip), %rsi     # 0x3b026
leaq 0x1a7b6(%rip), %rdx     # 0x3b028
leaq 0x5d0(%rsp), %rdi
callq 0xb5f8
leaq 0xa70(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x21a0(%rsp), %rcx
leaq 0x2148(%rsp), %r8
leaq 0xa70(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0xa88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x208e4
movq 0xa88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x20901
movq 0x5e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2148(%rsp), %rdi
callq 0xb0e0
leaq 0x21a0(%rsp), %rdi
callq 0xb0e0
leaq 0x1800(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x17a8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x5c0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a6d4(%rip), %rsi     # 0x3b029
leaq 0x1a6cf(%rip), %rdx     # 0x3b02b
leaq 0x5b0(%rsp), %rdi
callq 0xb5f8
leaq 0xa40(%rsp), %rdi
leaq 0x5b0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1800(%rsp), %rcx
leaq 0x17a8(%rsp), %r8
leaq 0xa40(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0xa58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x209cd
movq 0xa58(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x209ea
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a0b
movq 0x17e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a2c
movq 0x17c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1838(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a4d
movq 0x1838(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1818(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20a6e
movq 0x1818(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1750(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x16f8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x5a0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a584(%rip), %rsi     # 0x3b02c
leaq 0x1a57f(%rip), %rdx     # 0x3b02e
leaq 0x590(%rsp), %rdi
callq 0xb5f8
leaq 0xa10(%rsp), %rdi
leaq 0x590(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1750(%rsp), %rcx
leaq 0x16f8(%rsp), %r8
leaq 0xa10(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0xa28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b20
movq 0xa28(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x590(%rsp), %rdi
cmpq %r14, %rdi
je 0x20b3d
movq 0x5a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1730(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b5e
movq 0x1730(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1710(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20b7f
movq 0x1710(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1788(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20ba0
movq 0x1788(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1768(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20bc1
movq 0x1768(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16a0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1648(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x580(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a434(%rip), %rsi     # 0x3b02f
leaq 0x1a42f(%rip), %rdx     # 0x3b031
leaq 0x570(%rsp), %rdi
callq 0xb5f8
leaq 0x9e0(%rsp), %rdi
leaq 0x570(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x16a0(%rsp), %rcx
leaq 0x1648(%rsp), %r8
leaq 0x9e0(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x9f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20c73
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x570(%rsp), %rdi
cmpq %r14, %rdi
je 0x20c90
movq 0x580(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1680(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20cb1
movq 0x1680(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1660(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20cd2
movq 0x1660(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20cf3
movq 0x16d8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20d14
movq 0x16b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15f0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1598(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x560(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a2e4(%rip), %rsi     # 0x3b032
leaq 0x1a2df(%rip), %rdx     # 0x3b034
leaq 0x550(%rsp), %rdi
callq 0xb5f8
leaq 0x9b0(%rsp), %rdi
leaq 0x550(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x15f0(%rsp), %rcx
leaq 0x1598(%rsp), %r8
leaq 0x9b0(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x9c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20dc6
movq 0x9c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x550(%rsp), %rdi
cmpq %r14, %rdi
je 0x20de3
movq 0x560(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e04
movq 0x15d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e25
movq 0x15b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1628(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e46
movq 0x1628(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1608(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20e67
movq 0x1608(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1540(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x14e8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x540(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a194(%rip), %rsi     # 0x3b035
leaq 0x1a190(%rip), %rdx     # 0x3b038
leaq 0x530(%rsp), %rdi
callq 0xb5f8
leaq 0x980(%rsp), %rdi
leaq 0x530(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1540(%rsp), %rcx
leaq 0x14e8(%rsp), %r8
leaq 0x980(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x998(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20f19
movq 0x998(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x530(%rsp), %rdi
cmpq %r14, %rdi
je 0x20f36
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1520(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20f57
movq 0x1520(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1500(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20f78
movq 0x1500(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1578(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20f99
movq 0x1578(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1558(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x20fba
movq 0x1558(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1490(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1438(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x520(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a045(%rip), %rsi     # 0x3b039
leaq 0x1a041(%rip), %rdx     # 0x3b03c
leaq 0x510(%rsp), %rdi
callq 0xb5f8
leaq 0x950(%rsp), %rdi
leaq 0x510(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1490(%rsp), %rcx
leaq 0x1438(%rsp), %r8
leaq 0x950(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x968(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2106c
movq 0x968(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x510(%rsp), %rdi
cmpq %r14, %rdi
je 0x21089
movq 0x520(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1470(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x210aa
movq 0x1470(%rsp), %rsi
incq %rsi
callq 0x5360
subq 0x18(%rsp), %r15
leaq 0x1450(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x210d0
movq 0x1450(%rsp), %rsi
incq %rsi
callq 0x5360
sarq $0x4, %r15
leaq 0x14c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x210f5
movq 0x14c8(%rsp), %rsi
incq %rsi
callq 0x5360
movl %ebp, 0x50(%rsp)
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %r15
leaq 0x14a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21128
movq 0x14a8(%rsp), %rsi
incq %rsi
callq 0x5360
movslq %r15d, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %rcx, 0x38(%rsp)
cmpq %rax, %rcx
je 0x21296
movq 0x38(%rsp), %rax
leaq 0x30(%rax), %r14
cmpq 0x18(%rsp), %r14
je 0x21296
leaq 0xc0(%rsp), %rbx
leaq 0xd0(%rsp), %r13
movl $0x30, %r12d
callq 0x50e0
cltq
movq %r12, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %rbp
shlq $0x4, %rbp
addq 0x38(%rsp), %rbp
cmpq %rbp, %r14
je 0x21283
movl (%r14), %eax
movl %eax, 0xb8(%rsp)
movq %r13, 0xc0(%rsp)
movq 0x8(%r14), %rcx
leaq 0x18(%r14), %rax
cmpq %rcx, %rax
je 0x211e8
movq %rcx, 0xc0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x211f0
movups (%rax), %xmm0
movups %xmm0, (%r13)
leaq 0x8(%r14), %rdi
movq 0x10(%r14), %rcx
movq %rcx, 0xc8(%rsp)
movq %rax, 0x8(%r14)
movq $0x0, 0x10(%r14)
movb $0x0, 0x18(%r14)
movzwl 0x2c(%r14), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r14), %eax
movl %eax, 0x20(%rbx)
movl (%rbp), %eax
movl %eax, (%r14)
leaq 0x8(%rbp), %r15
movq %r15, %rsi
callq 0x5420
movl 0x28(%rbp), %eax
movl %eax, 0x28(%r14)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x2c(%r14)
movl 0xb8(%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 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x21283
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r14
addq $0x30, %r12
cmpq 0x18(%rsp), %r14
jne 0x2117a
leaq 0x168(%rsp), %rdi
movl (%rdi), %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq 0x110(%rsp), %r15
imull %r15d, %esi
callq 0xafa8
movq 0x48(%rsp), %rbx
movl 0x50(%rsp), %ebp
testb %al, %al
jne 0x21758
leaq 0x20f0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x2098(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x500(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19db3(%rip), %rsi     # 0x3b0b8
leaq 0x19dae(%rip), %rdx     # 0x3b0ba
leaq 0x4f0(%rsp), %rdi
callq 0xb5f8
leaq 0x920(%rsp), %rdi
leaq 0x4f0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x20f0(%rsp), %rcx
leaq 0x2098(%rsp), %r8
leaq 0x920(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x938(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2137d
movq 0x938(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2139a
movq 0x500(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2098(%rsp), %rdi
callq 0xb0e0
leaq 0x20f0(%rsp), %rdi
callq 0xb0e0
leaq 0x2040(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1fe8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x4e0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19cc4(%rip), %rsi     # 0x3b0b2
leaq 0x19cbf(%rip), %rdx     # 0x3b0b4
leaq 0x4d0(%rsp), %rdi
callq 0xb5f8
leaq 0x8f0(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2040(%rsp), %rcx
leaq 0x1fe8(%rsp), %r8
leaq 0x8f0(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x908(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21466
movq 0x908(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x21483
movq 0x4e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1fe8(%rsp), %rdi
callq 0xb0e0
leaq 0x2040(%rsp), %rdi
callq 0xb0e0
leaq 0x1f90(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1f38(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x4c0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19bde(%rip), %rsi     # 0x3b0b5
leaq 0x19bd9(%rip), %rdx     # 0x3b0b7
leaq 0x4b0(%rsp), %rdi
callq 0xb5f8
leaq 0x8c0(%rsp), %rdi
leaq 0x4b0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1f90(%rsp), %rcx
leaq 0x1f38(%rsp), %r8
leaq 0x8c0(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x8d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2154f
movq 0x8d8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2156c
movq 0x4c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1f38(%rsp), %rdi
callq 0xb0e0
leaq 0x1f90(%rsp), %rdi
callq 0xb0e0
leaq 0x1ee0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1e88(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x4a0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19afb(%rip), %rsi     # 0x3b0bb
leaq 0x19af6(%rip), %rdx     # 0x3b0bd
leaq 0x490(%rsp), %rdi
callq 0xb5f8
leaq 0x890(%rsp), %rdi
leaq 0x490(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ee0(%rsp), %rcx
leaq 0x1e88(%rsp), %r8
leaq 0x890(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x8a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21638
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x490(%rsp), %rdi
cmpq %r14, %rdi
je 0x21655
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e88(%rsp), %rdi
callq 0xb0e0
leaq 0x1ee0(%rsp), %rdi
callq 0xb0e0
leaq 0x1e30(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0x1dd8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x480(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x19a15(%rip), %rsi     # 0x3b0be
leaq 0x19a10(%rip), %rdx     # 0x3b0c0
leaq 0x470(%rsp), %rdi
callq 0xb5f8
leaq 0x860(%rsp), %rdi
leaq 0x470(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1e30(%rsp), %rcx
leaq 0x1dd8(%rsp), %r8
leaq 0x860(%rsp), %r9
xorl %edi, %edi
movl %ebp, %esi
callq 0x23640
leaq 0x878(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21721
movq 0x878(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x470(%rsp), %rdi
cmpq %r14, %rdi
je 0x2173e
movq 0x480(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1dd8(%rsp), %rdi
callq 0xb0e0
leaq 0x1e30(%rsp), %rdi
callq 0xb0e0
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %rbp
cmpq %rbp, %rbx
je 0x22488
leaq 0x120(%rsp), %r14
leaq 0x2e8(%rsp), %r12
movl %r15d, %eax
notl %eax
andl $0x1, %eax
movl %eax, 0x18(%rsp)
movl (%rbx), %eax
movl %eax, 0x118(%rsp)
leaq 0x130(%rsp), %rax
movq %rax, 0x120(%rsp)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb50a
movzwl 0x2c(%rbx), %eax
movw %ax, 0x24(%r14)
movl 0x28(%rbx), %eax
movl %eax, 0x20(%r14)
leaq 0xd58(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
movl 0x118(%rsp), %eax
movl %eax, 0x2e0(%rsp)
leaq 0x2f8(%rsp), %rax
movq %rax, 0x2e8(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xb50a
movzwl 0x24(%r14), %eax
movw %ax, 0x24(%r12)
movl 0x20(%r14), %eax
movl %eax, 0x20(%r12)
leaq 0xb8(%rsp), %rdi
leaq 0xd58(%rsp), %rsi
leaq 0x2e0(%rsp), %rdx
callq 0x15ab2
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x21867
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd80(%rsp), %rdi
leaq 0xd90(%rsp), %rax
cmpq %rax, %rdi
je 0x2188c
movq 0xd90(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd60(%rsp), %rdi
leaq 0xd70(%rsp), %rax
cmpq %rax, %rdi
je 0x218b1
movq 0xd70(%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)
leaq 0xd00(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1aa22
leaq 0xe60(%rsp), %r15
movq %r15, %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x220(%rsp), %rdi
leaq 0xd00(%rsp), %rsi
movq %r15, %rdx
callq 0x1528a
movq 0xe88(%rsp), %rdi
leaq 0xe98(%rsp), %rax
cmpq %rax, %rdi
je 0x21932
movq 0xe98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe68(%rsp), %rdi
leaq 0xe78(%rsp), %rax
cmpq %rax, %rdi
je 0x21957
movq 0xe78(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd28(%rsp), %rdi
leaq 0xd38(%rsp), %rax
cmpq %rax, %rdi
je 0x2197c
movq 0xd38(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd08(%rsp), %rdi
leaq 0xd18(%rsp), %rax
cmpq %rax, %rdi
je 0x219a1
movq 0xd18(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x118(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x250(%rsp), %eax
jne 0x219d1
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x219d1
cmpl $0x6, %eax
je 0x219d1
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x220(%rsp), %rdi
callq 0x15be4
addl 0x58(%rsp), %r13d
xorb 0x40(%rsp), %al
movzbl %al, %eax
movl 0x5c(%rsp), %r15d
subl %eax, %r15d
movl %r15d, %eax
orl %r13d, %eax
js 0x21a4e
movq 0x48(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xb118
movl 0x54(%rsp), %edi
movl 0x18(%rsp), %esi
movl %r13d, %edx
movl %r15d, %ecx
movl 0x10(%rsp), %r8d
movq 0x48(%rsp), %r9
callq 0x1e8ae
movl $0x1, %r15d
testb %al, %al
jne 0x21a54
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
xorl %r15d, %r15d
jmp 0x21a54
movl $0x3, %r15d
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x21a79
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x21a9e
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x21ac3
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0x21ae8
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x3, %r15d
je 0x21af3
testl %r15d, %r15d
jne 0x21b06
addq $0x30, %rbx
cmpq %rbp, %rbx
jne 0x21787
movl $0x2, %r15d
testb $0x1, %r15b
jmp 0x22482
movq %rax, %rbp
leaq 0x1070(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
movq %r14, 0x38(%rsp)
leaq 0x1018(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x3e0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x194cf(%rip), %rsi     # 0x3b020
leaq 0x194ca(%rip), %rdx     # 0x3b022
leaq 0x3d0(%rsp), %rdi
callq 0xb5f8
leaq 0x7a0(%rsp), %rdi
leaq 0x3d0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
movzbl %r12b, %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1070(%rsp), %rcx
leaq 0x1018(%rsp), %r8
leaq 0x7a0(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x7b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21bcd
movq 0x7b8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x21bea
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1050(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x38(%rsp), %r14
je 0x21c10
movq 0x1050(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1030(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21c31
movq 0x1030(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21c52
movq 0x10a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1088(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21c73
movq 0x1088(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x193a9(%rip), %rsi     # 0x3b023
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x21de7
leaq 0xfc0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0xf68(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x3c0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1935a(%rip), %rsi     # 0x3b023
leaq 0x19355(%rip), %rdx     # 0x3b025
leaq 0x3b0(%rsp), %rdi
callq 0xb5f8
leaq 0x770(%rsp), %rdi
leaq 0x3b0(%rsp), %rsi
movl 0x10(%rsp), %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xfc0(%rsp), %rcx
leaq 0xf68(%rsp), %r8
leaq 0x770(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x788(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21d41
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x21d5e
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x38(%rsp), %r14
je 0x21d84
movq 0xfa0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21da5
movq 0xf80(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xff8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21dc6
movq 0xff8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21de7
movq 0xfd8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19238(%rip), %rsi     # 0x3b026
leaq 0x148(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb %r13b, %al
jne 0x21f62
leaq 0xf10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aa22
leaq 0xeb8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x3a0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x191e3(%rip), %rsi     # 0x3b026
leaq 0x191de(%rip), %rdx     # 0x3b028
leaq 0x390(%rsp), %rdi
callq 0xb5f8
leaq 0x740(%rsp), %rdi
leaq 0x390(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %rbp, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xf10(%rsp), %rcx
leaq 0xeb8(%rsp), %r8
leaq 0x740(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x23640
leaq 0x758(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21ebc
movq 0x758(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x390(%rsp), %rdi
cmpq %r14, %rdi
je 0x21ed9
movq 0x3a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xef0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x38(%rsp), %r14
je 0x21eff
movq 0xef0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xed0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21f20
movq 0xed0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21f41
movq 0xf48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x21f62
movq 0xf28(%rsp), %rsi
incq %rsi
callq 0x5360
subq 0x18(%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, 0x38(%rsp)
cmpq %rax, %rcx
je 0x220e7
movq 0x38(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x18(%rsp), %rbp
je 0x220e7
leaq 0xc0(%rsp), %rbx
leaq 0xd0(%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 0x38(%rsp), %r13
cmpq %r13, %rbp
je 0x220d4
movl (%rbp), %eax
movl %eax, 0xb8(%rsp)
movq %r15, 0xc0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x22039
movq %rcx, 0xc0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x22040
movups (%rax), %xmm0
movups %xmm0, (%r15)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xc8(%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 0xb8(%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 0xc0(%rsp), %rdi
cmpq %r15, %rdi
je 0x220d4
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r12
cmpq 0x18(%rsp), %rbp
jne 0x21fcb
movq 0x20(%rsp), %rbp
movq 0x28(%rsp), %r15
cmpq %r15, %rbp
je 0x22488
leaq 0x120(%rsp), %r12
leaq 0x2b8(%rsp), %rbx
movq 0x40(%rsp), %rax
incl %eax
movq %rax, 0x40(%rsp)
movl (%rbp), %eax
movl %eax, 0x118(%rsp)
leaq 0x130(%rsp), %rax
movq %rax, 0x120(%rsp)
movq 0x8(%rbp), %rsi
movq 0x10(%rbp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xb50a
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%r12)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%r12)
leaq 0xca8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
movl 0x118(%rsp), %eax
movl %eax, 0x2b0(%rsp)
leaq 0x2c8(%rsp), %rax
movq %rax, 0x2b8(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xb50a
movzwl 0x24(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x20(%r12), %eax
movl %eax, 0x20(%rbx)
leaq 0xb8(%rsp), %rdi
leaq 0xca8(%rsp), %rsi
leaq 0x2b0(%rsp), %rdx
callq 0x15ab2
movq 0x2b8(%rsp), %rdi
leaq 0x2c8(%rsp), %rax
cmpq %rax, %rdi
je 0x221f7
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xcd0(%rsp), %rdi
leaq 0xce0(%rsp), %rax
cmpq %rax, %rdi
je 0x2221c
movq 0xce0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xcb0(%rsp), %rdi
leaq 0xcc0(%rsp), %rax
cmpq %rax, %rdi
je 0x22241
movq 0xcc0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc50(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x1aa22
leaq 0xe08(%rsp), %r14
movq %r14, %rdi
leaq 0x168(%rsp), %rsi
callq 0x1aa22
leaq 0x220(%rsp), %rdi
leaq 0xc50(%rsp), %rsi
movq %r14, %rdx
callq 0x1528a
movq 0xe30(%rsp), %rdi
leaq 0xe40(%rsp), %rax
cmpq %rax, %rdi
je 0x222ab
movq 0xe40(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe10(%rsp), %rdi
leaq 0xe20(%rsp), %rax
cmpq %rax, %rdi
je 0x222d0
movq 0xe20(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc78(%rsp), %rdi
leaq 0xc88(%rsp), %rax
cmpq %rax, %rdi
je 0x222f5
movq 0xc88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc58(%rsp), %rdi
leaq 0xc68(%rsp), %rax
cmpq %rax, %rdi
je 0x2231a
movq 0xc68(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x118(%rsp), %eax
xorl %r13d, %r13d
cmpl 0x250(%rsp), %eax
jne 0x2234a
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x2234a
cmpl $0x6, %eax
je 0x2234a
xorl %r13d, %r13d
cmpl $0xa, %eax
sete %r13b
negl %r13d
leaq 0x220(%rsp), %rdi
callq 0x15be4
addl 0x58(%rsp), %r13d
xorb 0x54(%rsp), %al
movzbl %al, %eax
movl 0x5c(%rsp), %r14d
subl %eax, %r14d
movl %r14d, %eax
orl %r13d, %eax
js 0x223c6
movq 0x48(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xb118
movq 0x40(%rsp), %rdi
xorl %esi, %esi
movl %r13d, %edx
movl %r14d, %ecx
movl 0x10(%rsp), %r8d
movq 0x48(%rsp), %r9
callq 0x1e8ae
movl $0x1, %r14d
testb %al, %al
jne 0x223cc
movq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
xorl %r14d, %r14d
jmp 0x223cc
movl $0x5, %r14d
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x223f1
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x22416
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x2243b
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0x22460
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x5, %r14d
je 0x2246b
testl %r14d, %r14d
jne 0x2247e
addq $0x30, %rbp
cmpq %r15, %rbp
jne 0x22116
movl $0x4, %r14d
testb $0x3, %r14b
sete %bpl
jmp 0x2248b
movb $0x1, %bpl
leaq 0x158(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x224ac
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x224cd
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x224ee
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x200(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2250f
movq 0x200(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22530
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22551
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2256c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
testb %bpl, %bpl
je 0x2260e
leaq 0x60(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x2433e
movl 0x110(%rsp), %eax
leaq 0x98(%rsp), %rcx
movslq 0x14(%rcx), %rdx
movslq 0x58(%rsp), %rsi
movslq 0x5c(%rsp), %rdi
imulq $0x1081c8, 0x1c0(%rsp), %r8 # imm = 0x1081C8
addq 0x269ba(%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 0x225f1
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2260c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2262f
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22650
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20(%rsp), %rdi
callq 0xb144
movl %ebx, %eax
addq $0x2408, %rsp           # imm = 0x2408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x878(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22697
movq 0x878(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22697
movq %rax, %rbx
movq 0x470(%rsp), %rdi
cmpq %r14, %rdi
je 0x226b9
movq 0x480(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x226b9
movq %rax, %rbx
leaq 0x1dd8(%rsp), %rdi
callq 0xb0e0
jmp 0x226cb
movq %rax, %rbx
leaq 0x1e30(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x8a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22701
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22701
movq %rax, %rbx
movq 0x490(%rsp), %rdi
cmpq %r14, %rdi
je 0x22723
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22723
movq %rax, %rbx
leaq 0x1e88(%rsp), %rdi
callq 0xb0e0
jmp 0x22735
movq %rax, %rbx
leaq 0x1ee0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x8d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2276b
movq 0x8d8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2276b
movq %rax, %rbx
movq 0x4b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2278d
movq 0x4c0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2278d
movq %rax, %rbx
leaq 0x1f38(%rsp), %rdi
callq 0xb0e0
jmp 0x2279f
movq %rax, %rbx
leaq 0x1f90(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x908(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x227d5
movq 0x908(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x227d5
movq %rax, %rbx
movq 0x4d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x227f7
movq 0x4e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x227f7
movq %rax, %rbx
leaq 0x1fe8(%rsp), %rdi
callq 0xb0e0
jmp 0x22809
movq %rax, %rbx
leaq 0x2040(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x938(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2283f
movq 0x938(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2283f
movq %rax, %rbx
movq 0x4f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x22861
movq 0x500(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22861
movq %rax, %rbx
leaq 0x2098(%rsp), %rdi
callq 0xb0e0
jmp 0x22873
movq %rax, %rbx
leaq 0x20f0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xa88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x228a9
movq 0xa88(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x228a9
movq %rax, %rbx
movq 0x5d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x228cb
movq 0x5e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x228cb
movq %rax, %rbx
leaq 0x2148(%rsp), %rdi
callq 0xb0e0
jmp 0x228dd
movq %rax, %rbx
leaq 0x21a0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xc08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22913
movq 0xc08(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22913
movq %rax, %rbx
movq 0x6d0(%rsp), %rdi
cmpq %r15, %rdi
je 0x22935
movq 0x6e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22935
movq %rax, %rbx
leaq 0x22a8(%rsp), %rdi
callq 0xb0e0
jmp 0x22947
movq %rax, %rbx
leaq 0x2300(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x758(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2297d
movq 0x758(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2297d
movq %rax, %rbx
movq 0x390(%rsp), %rdi
cmpq %r14, %rdi
je 0x2299f
movq 0x3a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2299f
movq %rax, %rbx
leaq 0xeb8(%rsp), %rdi
callq 0xb0e0
jmp 0x229b1
movq %rax, %rbx
leaq 0xf10(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x7e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x229e7
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x229e7
movq %rax, %rbx
movq 0x3f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x22a09
movq 0x400(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a09
movq %rax, %rbx
leaq 0x10c8(%rsp), %rdi
callq 0xb0e0
jmp 0x22a1b
movq %rax, %rbx
leaq 0x1120(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xab8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22a51
movq 0xab8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a51
movq %rax, %rbx
movq 0x5f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x22a73
movq 0x600(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22a73
movq %rax, %rbx
leaq 0x21f8(%rsp), %rdi
callq 0xb0e0
jmp 0x22a85
movq %rax, %rbx
leaq 0x2250(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xc38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22abb
movq 0xc38(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22abb
movq %rax, %rbx
movq 0x6f0(%rsp), %rdi
cmpq %r15, %rdi
je 0x22add
movq 0x700(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22add
movq %rax, %rbx
leaq 0x2358(%rsp), %rdi
callq 0xb0e0
jmp 0x22aef
movq %rax, %rbx
leaq 0x23b0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x788(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22b25
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b25
movq %rax, %rbx
movq 0x3b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x22b47
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b47
movq %rax, %rbx
leaq 0xf68(%rsp), %rdi
callq 0xb0e0
jmp 0x22b59
movq %rax, %rbx
leaq 0xfc0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x818(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22b8f
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22b8f
movq %rax, %rbx
movq 0x410(%rsp), %rdi
cmpq %r14, %rdi
je 0x22bb1
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22bb1
movq %rax, %rbx
leaq 0x1178(%rsp), %rdi
callq 0xb0e0
jmp 0x22bc3
movq %rax, %rbx
leaq 0x11d0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x968(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22bf9
movq 0x968(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22bf9
movq %rax, %rbx
movq 0x510(%rsp), %rdi
cmpq %r14, %rdi
je 0x22c1b
movq 0x520(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c1b
movq %rax, %rbx
leaq 0x1438(%rsp), %rdi
callq 0xb0e0
jmp 0x22c2d
movq %rax, %rbx
leaq 0x1490(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x998(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22c63
movq 0x998(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c63
movq %rax, %rbx
movq 0x530(%rsp), %rdi
cmpq %r14, %rdi
je 0x22c85
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22c85
movq %rax, %rbx
leaq 0x14e8(%rsp), %rdi
callq 0xb0e0
jmp 0x22c97
movq %rax, %rbx
leaq 0x1540(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x9c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22ccd
movq 0x9c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22ccd
movq %rax, %rbx
movq 0x550(%rsp), %rdi
cmpq %r14, %rdi
je 0x22cef
movq 0x560(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22cef
movq %rax, %rbx
leaq 0x1598(%rsp), %rdi
callq 0xb0e0
jmp 0x22d01
movq %rax, %rbx
leaq 0x15f0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x9f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22d37
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22d37
movq %rax, %rbx
movq 0x570(%rsp), %rdi
cmpq %r14, %rdi
je 0x22d59
movq 0x580(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22d59
movq %rax, %rbx
leaq 0x1648(%rsp), %rdi
callq 0xb0e0
jmp 0x22d6b
movq %rax, %rbx
leaq 0x16a0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xa28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22da1
movq 0xa28(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22da1
movq %rax, %rbx
movq 0x590(%rsp), %rdi
cmpq %r14, %rdi
je 0x22dc3
movq 0x5a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22dc3
movq %rax, %rbx
leaq 0x16f8(%rsp), %rdi
callq 0xb0e0
jmp 0x22dd5
movq %rax, %rbx
leaq 0x1750(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xa58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e0b
movq 0xa58(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e0b
movq %rax, %rbx
movq 0x5b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x22e2d
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e2d
movq %rax, %rbx
leaq 0x17a8(%rsp), %rdi
callq 0xb0e0
jmp 0x22e3f
movq %rax, %rbx
leaq 0x1800(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xae8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e75
movq 0xae8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e75
movq %rax, %rbx
movq 0x610(%rsp), %rdi
cmpq %r15, %rdi
je 0x22e97
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22e97
movq %rax, %rbx
leaq 0x1858(%rsp), %rdi
callq 0xb0e0
jmp 0x22ea9
movq %rax, %rbx
leaq 0x18b0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xb18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22edf
movq 0xb18(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22edf
movq %rax, %rbx
movq 0x630(%rsp), %rdi
cmpq %r15, %rdi
je 0x22f01
movq 0x640(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f01
movq %rax, %rbx
leaq 0x1908(%rsp), %rdi
callq 0xb0e0
jmp 0x22f13
movq %rax, %rbx
leaq 0x1960(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xb48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22f49
movq 0xb48(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f49
movq %rax, %rbx
movq 0x650(%rsp), %rdi
cmpq %r15, %rdi
je 0x22f6b
movq 0x660(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22f6b
movq %rax, %rbx
leaq 0x19b8(%rsp), %rdi
callq 0xb0e0
jmp 0x22f7d
movq %rax, %rbx
leaq 0x1a10(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xb78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22fb3
movq 0xb78(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22fb3
movq %rax, %rbx
movq 0x670(%rsp), %rdi
cmpq %r15, %rdi
je 0x22fd5
movq 0x680(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x22fd5
movq %rax, %rbx
leaq 0x1a68(%rsp), %rdi
callq 0xb0e0
jmp 0x22fe7
movq %rax, %rbx
leaq 0x1ac0(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xba8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2301d
movq 0xba8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2301d
movq %rax, %rbx
movq 0x690(%rsp), %rdi
cmpq %r15, %rdi
je 0x2303f
movq 0x6a0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2303f
movq %rax, %rbx
leaq 0x1b18(%rsp), %rdi
callq 0xb0e0
jmp 0x23051
movq %rax, %rbx
leaq 0x1b70(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xbd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23087
movq 0xbd8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23087
movq %rax, %rbx
movq 0x6b0(%rsp), %rdi
cmpq %r15, %rdi
je 0x230a9
movq 0x6c0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x230a9
movq %rax, %rbx
leaq 0x1bc8(%rsp), %rdi
callq 0xb0e0
jmp 0x230bb
movq %rax, %rbx
leaq 0x1c20(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x230f1
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x230f1
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0x235a6
movq 0x460(%rsp), %rsi
jmp 0x2359e
jmp 0x234da
movq %rax, %rbx
leaq 0x7b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2313d
movq 0x7b8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2313d
movq %rax, %rbx
movq 0x3d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2315f
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2315f
movq %rax, %rbx
leaq 0x1018(%rsp), %rdi
callq 0xb0e0
jmp 0x23171
movq %rax, %rbx
leaq 0x1070(%rsp), %rdi
jmp 0x23209
movq %rax, %rbx
leaq 0x848(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x231a7
movq 0x848(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x231a7
movq %rax, %rbx
movq 0x430(%rsp), %rdi
cmpq %r14, %rdi
je 0x231c9
movq 0x440(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x231c9
movq %rax, %rbx
leaq 0x1228(%rsp), %rdi
callq 0xb0e0
jmp 0x23201
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23216
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23216
movq %rax, %rbx
leaq 0x1280(%rsp), %rdi
callq 0xb0e0
jmp 0x235a6
movq %rax, %rbx
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x235a6
movq 0x380(%rsp), %rsi
jmp 0x2359e
jmp 0x234da
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x2325d
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x2325d
movq %rax, %rbx
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0x23620
movq 0x320(%rsp), %rsi
jmp 0x234cd
jmp 0x233fd
jmp 0x232dc
movq %rax, %rbx
leaq 0x1c78(%rsp), %rdi
callq 0xb0e0
jmp 0x23297
movq %rax, %rbx
leaq 0x1cd0(%rsp), %rdi
jmp 0x23301
jmp 0x2332e
jmp 0x2332e
movq %rax, %rbx
leaq 0x1d28(%rsp), %rdi
callq 0xb0e0
jmp 0x232c0
movq %rax, %rbx
leaq 0x1d80(%rsp), %rdi
jmp 0x23379
jmp 0x233a3
jmp 0x233cc
jmp 0x233fd
movq %rax, %rbx
jmp 0x235c7
movq %rax, %rbx
leaq 0x12d8(%rsp), %rdi
callq 0xb0e0
jmp 0x232f9
movq %rax, %rbx
leaq 0x1330(%rsp), %rdi
callq 0xb0e0
jmp 0x235e8
jmp 0x2332e
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x23339
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23339
movq %rax, %rbx
jmp 0x235e8
movq %rax, %rbx
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0x23620
movq 0x340(%rsp), %rsi
jmp 0x234cd
movq %rax, %rbx
leaq 0x1388(%rsp), %rdi
callq 0xb0e0
jmp 0x23371
jmp 0x233fd
movq %rax, %rbx
leaq 0x13e0(%rsp), %rdi
callq 0xb0e0
jmp 0x23609
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x233ae
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x233ae
movq %rax, %rbx
jmp 0x23609
movq %rax, %rbx
movq 0x350(%rsp), %rdi
cmpq %r14, %rdi
je 0x23620
movq 0x360(%rsp), %rsi
jmp 0x234cd
movq %rax, %rbx
jmp 0x23616
jmp 0x233fd
jmp 0x233fd
jmp 0x234da
jmp 0x233fd
jmp 0x234da
movq %rax, %rbx
jmp 0x2362d
jmp 0x233fd
jmp 0x234da
jmp 0x234da
movq %rax, %rbx
jmp 0x23425
movq %rax, %rbx
jmp 0x23620
movq %rax, %rbx
movq 0x718(%rsp), %rdi
cmpq %r15, %rdi
je 0x23425
movq 0x728(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xdb0(%rsp), %rdi
jmp 0x234a7
movq %rax, %rbx
jmp 0x234ac
jmp 0x234da
jmp 0x234e2
movq %rax, %rbx
jmp 0x2346b
movq %rax, %rbx
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x2346b
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd58(%rsp), %rdi
jmp 0x2357c
jmp 0x23521
movq %rax, %rbx
jmp 0x23492
movq %rax, %rbx
leaq 0xe60(%rsp), %rdi
callq 0xb0e0
leaq 0xd00(%rsp), %rdi
jmp 0x23543
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xb0e0
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x23620
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x23620
movq %rax, %rbx
jmp 0x235a6
movq %rax, %rbx
jmp 0x23581
movq %rax, %rbx
jmp 0x23517
movq %rax, %rbx
movq 0x2b8(%rsp), %rdi
leaq 0x2c8(%rsp), %rax
cmpq %rax, %rdi
je 0x23517
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xca8(%rsp), %rdi
jmp 0x2357c
movq %rax, %rbx
jmp 0x23574
movq %rax, %rbx
jmp 0x2353b
movq %rax, %rbx
leaq 0xe08(%rsp), %rdi
callq 0xb0e0
leaq 0xc50(%rsp), %rdi
callq 0xb0e0
jmp 0x23574
jmp 0x2354c
movq %rax, %rbx
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x23574
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xb8(%rsp), %rdi
callq 0xb0e0
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0x235a6
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x158(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x235c7
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x235e8
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23609
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c8(%rsp), %rdi
callq 0xb0e0
leaq 0x60(%rsp), %rdi
callq 0xb0e0
leaq 0x168(%rsp), %rdi
callq 0xb0e0
leaq 0x20(%rsp), %rdi
callq 0xb144
movq %rbx, %rdi
callq 0x55e0
nop