// File: /workspace/github_cpp_makefile_star2_O3/joao18araujo[P]pierluigi/src/third_species_counterpoint.cpp
// Function: ThirdSpeciesCounterpoint::solve(unsigned int, unsigned int, int, int, bool, Song&)
bool ThirdSpeciesCounterpoint::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 || compass_position) && (position < song->size_without_rest() - 1)){
    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);
    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 / 4) * 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 /= 4;
      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 == 3), (compass_position + 1)%4, 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)); //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 + 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 /= 4;
      counterpoint.notes.push_back(c_note);
      if(solve(position + (compass_position == 3), (compass_position + 1)%4, 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 $0x2418, %rsp           # imm = 0x2418
movq %r9, %r13
movl %r8d, %r14d
movl %ecx, 0x5c(%rsp)
movl %edx, 0x58(%rsp)
movl %esi, %r15d
movl %edi, %ebp
movl %esi, %eax
addl %edi, %eax
jne 0x34754
leaq 0x1509d(%rip), %rdi     # 0x497b0
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
movl $0x1, %esi
callq 0x51f0
callq 0x5240
movl %eax, %edi
callq 0x5310
leaq 0x9bddd73(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %ebp, %eax
jbe 0x385d5
movl %r14d, 0x18(%rsp)
movl %ebp, %r12d
jmp 0x34821
leaq 0x9bddd4d(%rip), %rax   # 0x9c124a8
movq (%rax), %rdi
callq 0x242c2
movb $0x1, %bl
cmpl %ebp, %eax
jbe 0x385d5
movl %r14d, 0x18(%rsp)
movq %r13, %rsi
movq %r15, %rax
movq %rbp, 0x48(%rsp)
movl %ebp, %r12d
movl %eax, %r14d
leaq 0x170(%rsp), %rbx
movq %rbx, %rdi
callq 0x2433e
movslq 0x4c(%rbx), %rax
movslq 0x58(%rsp), %rcx
movslq 0x5c(%rsp), %rdx
imulq $0x42072, %r14, %rsi    # imm = 0x42072
imulq $0x1081c8, %r12, %rdi   # imm = 0x1081C8
addq 0x147ba(%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 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x347f2
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34813
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bpl, %bpl
movq 0x48(%rsp), %rbp
je 0x35358
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x9bddc6f(%rip), %rbx   # 0x9c124a8
movq (%rbx), %rax
imulq $0x58, %r12, %rsi
addq (%rax), %rsi
leaq 0x170(%rsp), %rdi
callq 0x1aa22
movl %r15d, %eax
orl %ebp, %eax
movzbl 0x18(%rsp), %eax
movl %eax, 0xc(%rsp)
movq %r15, 0x1c8(%rsp)
movq %r13, 0x40(%rsp)
movq %r12, 0x288(%rsp)
je 0x34b33
movq (%rbx), %rdi
callq 0x242c2
decl %eax
cmpl %ebp, %eax
jbe 0x34b33
movq (%rbx), %rax
cmpl $0x1, %r15d
movl %ebp, %ecx
sbbl $-0x1, %ecx
decl %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x70(%rsp), %rdi
callq 0x1aa22
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
leaq 0x1d0(%rsp), %rdi
callq 0x1aa22
movl 0x18(%rsp), %ebx
leaq 0x1d90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1d38(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x290(%rsp), %rdi
leaq 0x1d90(%rsp), %rsi
leaq 0x1d38(%rsp), %rdx
callq 0x1528a
leaq 0x1d70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34928
movq 0x1d70(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34949
movq 0x1d50(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1dc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3496a
movq 0x1dc8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1da8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3498b
movq 0x1da8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x290(%rsp), %rdi
callq 0x15be4
movl %eax, %r12d
leaq 0x1ce0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1c88(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x1aa22
leaq 0x258(%rsp), %rdi
leaq 0x1ce0(%rsp), %rsi
leaq 0x1c88(%rsp), %rdx
callq 0x1528a
leaq 0x1cc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34a00
movq 0x1cc0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ca0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34a21
movq 0x1ca0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34a42
movq 0x1d18(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1cf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34a63
movq 0x1cf8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x15418
leaq 0x170(%rsp), %rdi
callq 0x1c1fa
movl %r12d, %r14d
xorb $0x1, %r14b
testb %al, %al
movb %r14b, 0x60(%rsp)
je 0x35935
leaq 0x410(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x6574(%rip), %rsi      # 0x3b020
leaq 0x656f(%rip), %rdx      # 0x3b022
leaq 0x400(%rsp), %rdi
callq 0xb5f8
leaq 0xc8(%rsp), %rdi
leaq 0x400(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xfc0e
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34b0d
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x400(%rsp), %rdi
cmpq %r14, %rdi
je 0x38038
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38038
movq (%rbx), %rdi
callq 0x242c2
decl %eax
cmpl %ebp, %eax
jne 0x34de9
movq (%rbx), %rax
leal -0x1(%rbp), %ecx
imulq $0x58, %rcx, %rsi
addq (%rax), %rsi
leaq 0x70(%rsp), %rdi
callq 0x1aa22
movl 0x18(%rsp), %r15d
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
leaq 0x1d0(%rsp), %rdi
callq 0x1aa22
leaq 0x13f0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1398(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x290(%rsp), %rdi
leaq 0x13f0(%rsp), %rsi
leaq 0x1398(%rsp), %rdx
callq 0x1528a
leaq 0x13d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34bdb
movq 0x13d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x13b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34bfc
movq 0x13b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1428(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34c1d
movq 0x1428(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1408(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34c3e
movq 0x1408(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x290(%rsp), %rdi
callq 0x15be4
movl %eax, %r12d
leaq 0x1340(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x12e8(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x1aa22
leaq 0x258(%rsp), %rdi
leaq 0x1340(%rsp), %rsi
leaq 0x12e8(%rsp), %rdx
callq 0x1528a
leaq 0x1320(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34cb3
movq 0x1320(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1300(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34cd4
movq 0x1300(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1378(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34cf5
movq 0x1378(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1358(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34d16
movq 0x1358(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x150(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x15418
leaq 0x170(%rsp), %rdi
callq 0x1c1fa
movl %r12d, %ecx
xorb $0x1, %cl
movb %cl, 0x60(%rsp)
testb %al, %al
movq %rbp, 0x48(%rsp)
je 0x3535f
leaq 0x330(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x62be(%rip), %rsi      # 0x3b020
leaq 0x62b9(%rip), %rdx      # 0x3b022
leaq 0x320(%rsp), %rdi
callq 0xb5f8
leaq 0xc8(%rsp), %rdi
leaq 0x320(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xfc0e
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34dc3
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x320(%rsp), %rdi
cmpq %r14, %rdi
je 0x36b4b
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x36b4b
leaq 0x310(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x6224(%rip), %rsi      # 0x3b020
leaq 0x621f(%rip), %rdx      # 0x3b022
leaq 0x300(%rsp), %rdi
callq 0xb5f8
movl 0x18(%rsp), %ebx
leaq 0x70(%rsp), %rdi
leaq 0x300(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xfc0e
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34e5a
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x300(%rsp), %rdi
cmpq %r14, %rdi
je 0x34e77
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x6199(%rip), %rsi      # 0x3b023
leaq 0x6194(%rip), %rdx      # 0x3b025
leaq 0x2e0(%rsp), %rdi
callq 0xb5f8
leaq 0x70(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, %r15
leaq 0x20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xfc0e
movq %rbp, %r13
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x34eeb
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r15, %rbp
movq 0x2e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x34f0b
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x5360
testb %bl, %bl
je 0x34f9f
leaq 0x2d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x6100(%rip), %rsi      # 0x3b026
leaq 0x60fb(%rip), %rdx      # 0x3b028
leaq 0x2c0(%rsp), %rdi
callq 0xb5f8
leaq 0x70(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
leaq 0x20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xfc0e
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x34f82
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x2c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x34f9f
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rax
movq %rax, 0x60(%rsp)
cmpq %rax, %r12
je 0x384ee
leaq 0x30(%r12), %r15
movq 0x60(%rsp), %rbx
cmpq %rbx, %r15
je 0x35120
movq %r13, 0x48(%rsp)
movl $0x30, %ebp
leaq 0x88(%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), %r13
shlq $0x4, %r13
addq %r12, %r13
cmpq %r13, %r15
je 0x350fb
movl (%r15), %eax
movl %eax, 0x70(%rsp)
movq %r14, 0x78(%rsp)
movq 0x8(%r15), %rcx
leaq 0x18(%r15), %rax
cmpq %rcx, %rax
je 0x35044
movq %rcx, 0x78(%rsp)
movq (%rax), %rcx
movq %rcx, 0x88(%rsp)
jmp 0x3504b
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %r14, %rbx
leaq 0x8(%r15), %rdi
movq 0x10(%r15), %rcx
movq %rcx, 0x80(%rsp)
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movzwl 0x2c(%r15), %eax
leaq 0x78(%rsp), %r12
movw %ax, 0x24(%r12)
movl 0x28(%r15), %eax
movl %eax, 0x20(%r12)
movl (%r13), %eax
movl %eax, (%r15)
leaq 0x8(%r13), %r14
movq %r14, %rsi
callq 0x5420
movl 0x28(%r13), %eax
movl %eax, 0x28(%r15)
movzwl 0x2c(%r13), %eax
movw %ax, 0x2c(%r15)
movl 0x70(%rsp), %eax
movl %eax, (%r13)
movq %r14, %rdi
movq %r12, %rsi
callq 0x5420
movzwl 0x24(%r12), %eax
movw %ax, 0x2c(%r13)
movl 0x20(%r12), %eax
movl %eax, 0x28(%r13)
movq 0x78(%rsp), %rdi
cmpq %rbx, %rdi
movq %rbx, %r14
je 0x350f1
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x60(%rsp), %rbx
movq 0x18(%rsp), %r12
addq $0x30, %r15
addq $0x30, %rbp
cmpq %rbx, %r15
jne 0x34fe1
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rbx
movq 0x40(%rsp), %rbp
movq 0x48(%rsp), %r13
movq %rbx, 0x60(%rsp)
cmpq %rbx, %r12
je 0x384ee
leaq 0x1d8(%rsp), %rbx
leaq 0x6c8(%rsp), %r14
xorl %r15d, %r15d
movq 0x1c8(%rsp), %rax
cmpl $0x3, %eax
sete %r15b
addl %r13d, %r15d
incl %eax
andl $0x3, %eax
movl %eax, 0x40(%rsp)
movl (%r12), %eax
movl %eax, 0x1d0(%rsp)
leaq 0x1e8(%rsp), %rax
movq %rax, 0x1d8(%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)
leaq 0xc60(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x6d8(%rsp), %r13
movl 0x1d0(%rsp), %eax
movl %eax, 0x6c0(%rsp)
movq %r13, 0x6c8(%rsp)
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%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 0x70(%rsp), %rdi
leaq 0xc60(%rsp), %rsi
leaq 0x6c0(%rsp), %rdx
callq 0x15ab2
movq 0x6c8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35233
movq 0x6d8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc88(%rsp), %rdi
leaq 0xc98(%rsp), %rax
cmpq %rax, %rdi
je 0x35258
movq 0xc98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xc68(%rsp), %rdi
leaq 0xc78(%rsp), %rax
cmpq %rax, %rdi
je 0x3527d
movq 0xc78(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x70(%rsp), %eax
leal 0x3(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x2, %ecx
movl %ecx, 0x70(%rsp)
movq %rbp, %r13
movq %rbp, %rdi
leaq 0x70(%rsp), %rsi
callq 0xb118
movl %r15d, %edi
movl 0x40(%rsp), %esi
movl 0x58(%rsp), %edx
movl 0x5c(%rsp), %ecx
movl 0xc(%rsp), %r8d
movq %r13, %r9
callq 0x346e2
testb %al, %al
jne 0x36509
movq %rbp, %rdi
movq 0x8(%rbp), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rbp)
callq 0xba60
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x352fd
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x3531f
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x35344
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %r12
cmpq 0x60(%rsp), %r12
jne 0x3515c
jmp 0x384ee
xorl %ebx, %ebx
jmp 0x385d5
leaq 0x1290(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1238(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x3f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5c87(%rip), %rsi      # 0x3b020
leaq 0x5c82(%rip), %rdx      # 0x3b022
leaq 0x3e0(%rsp), %rdi
callq 0xb5f8
leaq 0x840(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
movzbl 0x60(%rsp), %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1290(%rsp), %rcx
leaq 0x1238(%rsp), %r8
leaq 0x840(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x858(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35419
movq 0x858(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x35436
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35457
movq 0x1270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1250(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35478
movq 0x1250(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35499
movq 0x12c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x12a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x354ba
movq 0x12a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x5b62(%rip), %rsi      # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x3562c
leaq 0x11e0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1188(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x3d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5b13(%rip), %rsi      # 0x3b023
leaq 0x5b0e(%rip), %rdx      # 0x3b025
leaq 0x3c0(%rsp), %rdi
callq 0xb5f8
leaq 0x810(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x11e0(%rsp), %rcx
leaq 0x1188(%rsp), %r8
leaq 0x810(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x828(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3558b
movq 0x828(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x355a8
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x355c9
movq 0x11c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x355ea
movq 0x11a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3560b
movq 0x1218(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x11f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3562c
movq 0x11f8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x59f3(%rip), %rsi      # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %r15b
orb %r15b, %al
jne 0x357a9
leaq 0x1130(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x10d8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x3b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x599a(%rip), %rsi      # 0x3b026
leaq 0x5995(%rip), %rdx      # 0x3b028
leaq 0x3a0(%rsp), %rdi
callq 0xb5f8
leaq 0x7e0(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1130(%rsp), %rcx
leaq 0x10d8(%rsp), %r8
leaq 0x7e0(%rsp), %r9
movl $0x1, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x7f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35708
movq 0x7f8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x3a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x35725
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35746
movq 0x1110(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35767
movq 0x10f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1168(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35788
movq 0x1168(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x357a9
movq 0x1148(%rsp), %rsi
incq %rsi
callq 0x5360
movl %r15d, 0x18(%rsp)
movq 0x20(%rsp), %r14
movq 0x28(%rsp), %r15
cmpq %r15, %r14
movq %r14, 0x10(%rsp)
je 0x3657c
leaq 0x30(%r14), %rbp
cmpq %r15, %rbp
je 0x3657f
movq %r15, 0x68(%rsp)
movb %r12b, 0x54(%rsp)
leaq 0xd0(%rsp), %r14
leaq 0xe0(%rsp), %rbx
movl $0x30, %r13d
callq 0x50e0
cltq
movq %r13, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r12
shlq $0x4, %r12
addq 0x10(%rsp), %r12
cmpq %r12, %rbp
je 0x35904
movl (%rbp), %eax
movl %eax, 0xc8(%rsp)
movq %rbx, 0xd0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x35861
movq %rcx, 0xd0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xe0(%rsp)
jmp 0x35867
movups (%rax), %xmm0
movups %xmm0, (%rbx)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd8(%rsp)
movq %rax, 0x8(%rbp)
movq $0x0, 0x10(%rbp)
movb $0x0, 0x18(%rbp)
movzwl 0x2c(%rbp), %eax
movw %ax, 0x24(%r14)
movl 0x28(%rbp), %eax
movl %eax, 0x20(%r14)
movl (%r12), %eax
movl %eax, (%rbp)
leaq 0x8(%r12), %r15
movq %r15, %rsi
callq 0x5420
movl 0x28(%r12), %eax
movl %eax, 0x28(%rbp)
movzwl 0x2c(%r12), %eax
movw %ax, 0x2c(%rbp)
movl 0xc8(%rsp), %eax
movl %eax, (%r12)
movq %r15, %rdi
movq %r14, %rsi
callq 0x5420
movzwl 0x24(%r14), %eax
movw %ax, 0x2c(%r12)
movl 0x20(%r14), %eax
movl %eax, 0x28(%r12)
movq 0xd0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x35904
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r13
cmpq 0x68(%rsp), %rbp
jne 0x357f3
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %r15
movq 0x40(%rsp), %r13
movb 0x54(%rsp), %r12b
jmp 0x3657f
leaq 0x56e7(%rip), %rsi      # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
movzbl %r14b, %ecx
movl %ecx, 0x10(%rsp)
testl %eax, %eax
je 0x35a47
leaq 0x23c0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x2368(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x6b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5690(%rip), %rsi      # 0x3b023
leaq 0x568b(%rip), %rdx      # 0x3b025
leaq 0x6a0(%rsp), %rdi
callq 0xb5f8
leaq 0xc30(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x23c0(%rsp), %rcx
leaq 0x2368(%rsp), %r8
leaq 0xc30(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xc48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35a10
movq 0xc48(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x6a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x35a2d
movq 0x6b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2368(%rsp), %rdi
callq 0xb0e0
leaq 0x23c0(%rsp), %rdi
callq 0xb0e0
leaq 0x55d8(%rip), %rsi      # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
xorb $0x1, %bl
orb %bl, %al
jne 0x35b5a
leaq 0x2310(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x22b8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x690(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5581(%rip), %rsi      # 0x3b026
leaq 0x557c(%rip), %rdx      # 0x3b028
leaq 0x680(%rsp), %rdi
callq 0xb5f8
leaq 0xc00(%rsp), %rdi
leaq 0x680(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2310(%rsp), %rcx
leaq 0x22b8(%rsp), %r8
leaq 0xc00(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xc18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35b23
movq 0xc18(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x680(%rsp), %rdi
cmpq %r14, %rdi
je 0x35b40
movq 0x690(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x22b8(%rsp), %rdi
callq 0xb0e0
leaq 0x2310(%rsp), %rdi
callq 0xb0e0
leaq 0x1c30(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1bd8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x670(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5495(%rip), %rsi      # 0x3b029
leaq 0x5490(%rip), %rdx      # 0x3b02b
leaq 0x660(%rsp), %rdi
callq 0xb5f8
leaq 0xbd0(%rsp), %rdi
leaq 0x660(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1c30(%rsp), %rcx
leaq 0x1bd8(%rsp), %r8
leaq 0xbd0(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xbe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35c11
movq 0xbe8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x660(%rsp), %rdi
cmpq %r14, %rdi
je 0x35c2e
movq 0x670(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35c4f
movq 0x1c10(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1bf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35c70
movq 0x1bf0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35c91
movq 0x1c68(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1c48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35cb2
movq 0x1c48(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b80(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1b28(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x650(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5340(%rip), %rsi      # 0x3b02c
leaq 0x533b(%rip), %rdx      # 0x3b02e
leaq 0x640(%rsp), %rdi
callq 0xb5f8
leaq 0xba0(%rsp), %rdi
leaq 0x640(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1b80(%rsp), %rcx
leaq 0x1b28(%rsp), %r8
leaq 0xba0(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xbb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35d69
movq 0xbb8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x640(%rsp), %rdi
cmpq %r14, %rdi
je 0x35d86
movq 0x650(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35da7
movq 0x1b60(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35dc8
movq 0x1b40(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1bb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35de9
movq 0x1bb8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35e0a
movq 0x1b98(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ad0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1a78(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x630(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x51eb(%rip), %rsi      # 0x3b02f
leaq 0x51e6(%rip), %rdx      # 0x3b031
leaq 0x620(%rsp), %rdi
callq 0xb5f8
leaq 0xb70(%rsp), %rdi
leaq 0x620(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ad0(%rsp), %rcx
leaq 0x1a78(%rsp), %r8
leaq 0xb70(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xb88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35ec1
movq 0xb88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x620(%rsp), %rdi
cmpq %r14, %rdi
je 0x35ede
movq 0x630(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ab0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35eff
movq 0x1ab0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35f20
movq 0x1a90(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1b08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35f41
movq 0x1b08(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ae8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35f62
movq 0x1ae8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x19c8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x610(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5096(%rip), %rsi      # 0x3b032
leaq 0x5091(%rip), %rdx      # 0x3b034
leaq 0x600(%rsp), %rdi
callq 0xb5f8
leaq 0xb40(%rsp), %rdi
leaq 0x600(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1a20(%rsp), %rcx
leaq 0x19c8(%rsp), %r8
leaq 0xb40(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xb58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36019
movq 0xb58(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x600(%rsp), %rdi
cmpq %r14, %rdi
je 0x36036
movq 0x610(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36057
movq 0x1a00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36078
movq 0x19e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36099
movq 0x1a58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1a38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x360ba
movq 0x1a38(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1970(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1918(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x5f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4f41(%rip), %rsi      # 0x3b035
leaq 0x4f3d(%rip), %rdx      # 0x3b038
leaq 0x5e0(%rsp), %rdi
callq 0xb5f8
leaq 0xb10(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1970(%rsp), %rcx
leaq 0x1918(%rsp), %r8
leaq 0xb10(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xb28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36171
movq 0xb28(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x3618e
movq 0x5f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1950(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x361af
movq 0x1950(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1930(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x361d0
movq 0x1930(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x19a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x361f1
movq 0x19a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1988(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36212
movq 0x1988(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18c0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1868(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x5d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4ded(%rip), %rsi      # 0x3b039
leaq 0x4de9(%rip), %rdx      # 0x3b03c
leaq 0x5c0(%rsp), %rdi
callq 0xb5f8
leaq 0xae0(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x18c0(%rsp), %rcx
leaq 0x1868(%rsp), %r8
leaq 0xae0(%rsp), %r9
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x395bc
leaq 0xaf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x362c9
movq 0xaf8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x362e6
movq 0x5d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36307
movq 0x18a0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1880(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36328
movq 0x1880(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x18f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36349
movq 0x18f8(%rsp), %rsi
incq %rsi
callq 0x5360
movb %r12b, 0x54(%rsp)
movl %ebx, 0x18(%rsp)
leaq 0x18d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36373
movq 0x18d8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
cmpq %rax, %rcx
movq %rbp, 0x48(%rsp)
movq %rcx, 0x10(%rsp)
je 0x36fb8
leaq 0x30(%rcx), %r12
cmpq %rax, %r12
movq %rax, 0x68(%rsp)
je 0x36fbd
movq %rax, %r15
leaq 0xd0(%rsp), %rbx
leaq 0xe0(%rsp), %r14
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), %r13
shlq $0x4, %r13
addq 0x10(%rsp), %r13
cmpq %r13, %r12
je 0x364da
movl (%r12), %eax
movl %eax, 0xc8(%rsp)
movq %r14, 0xd0(%rsp)
movq 0x8(%r12), %rcx
leaq 0x18(%r12), %rax
cmpq %rcx, %rax
je 0x3642b
movq %rcx, 0xd0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xe0(%rsp)
jmp 0x36432
movups (%rax), %xmm0
movups %xmm0, (%r14)
leaq 0x8(%r12), %rdi
movq 0x10(%r12), %rcx
movq %rcx, 0xd8(%rsp)
movq %rax, 0x8(%r12)
movq $0x0, 0x10(%r12)
movb $0x0, 0x18(%r12)
movzwl 0x2c(%r12), %eax
movw %ax, 0x24(%rbx)
movl 0x28(%r12), %eax
movl %eax, 0x20(%rbx)
movl (%r13), %eax
movl %eax, (%r12)
leaq 0x8(%r13), %r15
movq %r15, %rsi
callq 0x5420
movl 0x28(%r13), %eax
movl %eax, 0x28(%r12)
movzwl 0x2c(%r13), %eax
movw %ax, 0x2c(%r12)
movl 0xc8(%rsp), %eax
movl %eax, (%r13)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x5420
movzwl 0x24(%rbx), %eax
movw %ax, 0x2c(%r13)
movl 0x20(%rbx), %eax
movl %eax, 0x28(%r13)
movq 0xd0(%rsp), %rdi
cmpq %r14, %rdi
je 0x364d5
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x68(%rsp), %r15
addq $0x30, %r12
addq $0x30, %rbp
cmpq %r15, %r12
jne 0x363ba
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x40(%rsp), %r13
jmp 0x36fbd
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x3652e
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x36550
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x36575
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
jmp 0x38589
movq %r14, %r15
leaq 0x1080(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1028(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x390(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4a67(%rip), %rsi      # 0x3b020
leaq 0x4a62(%rip), %rdx      # 0x3b022
leaq 0x380(%rsp), %rdi
callq 0xb5f8
leaq 0x7b0(%rsp), %rdi
leaq 0x380(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
movzbl %r12b, %ebx
leaq 0x20(%rsp), %rdx
leaq 0x1080(%rsp), %rcx
leaq 0x1028(%rsp), %r8
leaq 0x7b0(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x7c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36635
movq 0x7c8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x380(%rsp), %rdi
cmpq %r14, %rdi
je 0x36652
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1060(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq %r15, %r14
je 0x36676
movq 0x1060(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1040(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36697
movq 0x1040(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x10b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x366b8
movq 0x10b8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1098(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x366d9
movq 0x1098(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x4943(%rip), %rsi      # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
je 0x3684b
leaq 0xfd0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0xf78(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x370(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x48f4(%rip), %rsi      # 0x3b023
leaq 0x48ef(%rip), %rdx      # 0x3b025
leaq 0x360(%rsp), %rdi
callq 0xb5f8
leaq 0x780(%rsp), %rdi
leaq 0x360(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xfd0(%rsp), %rcx
leaq 0xf78(%rsp), %r8
leaq 0x780(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x798(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x367a7
movq 0x798(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x360(%rsp), %rdi
cmpq %r14, %rdi
je 0x367c4
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq %r15, %r14
je 0x367e8
movq 0xfb0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36809
movq 0xf90(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1008(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3682a
movq 0x1008(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xfe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3684b
movq 0xfe8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x47d4(%rip), %rsi      # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb 0x18(%rsp), %al
jne 0x369c5
leaq 0xf20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0xec8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x350(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x477e(%rip), %rsi      # 0x3b026
leaq 0x4779(%rip), %rdx      # 0x3b028
leaq 0x340(%rsp), %rdi
callq 0xb5f8
leaq 0x750(%rsp), %rdi
leaq 0x340(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0xf20(%rsp), %rcx
leaq 0xec8(%rsp), %r8
leaq 0x750(%rsp), %r9
xorl %edi, %edi
movl %ebx, %esi
callq 0x395bc
leaq 0x768(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36921
movq 0x768(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x340(%rsp), %rdi
cmpq %r14, %rdi
je 0x3693e
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf00(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq %r15, %r14
je 0x36962
movq 0xf00(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xee0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36983
movq 0xee0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x369a4
movq 0xf58(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xf38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x369c5
movq 0xf38(%rsp), %rsi
incq %rsi
callq 0x5360
subq 0x10(%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, 0x10(%rsp)
cmpq %rax, %rcx
je 0x36b4b
movq 0x10(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x18(%rsp), %rbp
je 0x36b4b
leaq 0xd0(%rsp), %rbx
leaq 0xe0(%rsp), %r12
movl $0x30, %r15d
callq 0x50e0
cltq
movq %r15, %rcx
sarq $0x4, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
incq %rcx
cqto
idivq %rcx
leaq (%rdx,%rdx,2), %r13
shlq $0x4, %r13
addq 0x10(%rsp), %r13
cmpq %r13, %rbp
je 0x36b38
movl (%rbp), %eax
movl %eax, 0xc8(%rsp)
movq %r12, 0xd0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x36a9c
movq %rcx, 0xd0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xe0(%rsp)
jmp 0x36aa4
movups (%rax), %xmm0
movups %xmm0, (%r12)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd8(%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 0xc8(%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 0xd0(%rsp), %rdi
cmpq %r12, %rdi
je 0x36b38
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r15
cmpq 0x18(%rsp), %rbp
jne 0x36a2e
movq 0x20(%rsp), %rbp
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq %rax, %rbp
je 0x36f03
leaq 0x128(%rsp), %rbx
leaq 0x6f8(%rsp), %r14
leaq 0x708(%rsp), %r12
movq 0x48(%rsp), %rax
incl %eax
movq %rax, 0x48(%rsp)
leaq 0xe18(%rsp), %r15
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)
movq %r15, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
movl 0x120(%rsp), %eax
movl %eax, 0x6f0(%rsp)
movq %r12, 0x6f8(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%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 0xc8(%rsp), %rdi
movq %r15, %rsi
leaq 0x6f0(%rsp), %rdx
callq 0x15ab2
movq 0x6f8(%rsp), %rdi
cmpq %r12, %rdi
leaq 0xdc0(%rsp), %rbx
je 0x36c58
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe40(%rsp), %rdi
leaq 0xe50(%rsp), %rax
cmpq %rax, %rdi
je 0x36c7d
movq 0xe50(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe20(%rsp), %rdi
leaq 0xe30(%rsp), %rax
cmpq %rax, %rdi
je 0x36ca2
movq 0xe30(%rsp), %rsi
incq %rsi
callq 0x5360
movq %rbx, %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x1aa22
leaq 0xd68(%rsp), %r13
movq %r13, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x228(%rsp), %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x1528a
movq 0xd90(%rsp), %rdi
leaq 0xda0(%rsp), %rax
cmpq %rax, %rdi
je 0x36d02
movq 0xda0(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r14, %rbx
movq 0xd70(%rsp), %rdi
leaq 0xd80(%rsp), %rax
cmpq %rax, %rdi
je 0x36d2a
movq 0xd80(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r15, %r14
movq 0xde8(%rsp), %rdi
leaq 0xdf8(%rsp), %rax
cmpq %rax, %rdi
je 0x36d52
movq 0xdf8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r12, %r15
movq 0xdc8(%rsp), %rdi
leaq 0xdd8(%rsp), %rax
cmpq %rax, %rdi
je 0x36d7a
movq 0xdd8(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r12d, %r12d
cmpl 0x258(%rsp), %eax
jne 0x36daa
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x36daa
cmpl $0x6, %eax
je 0x36daa
xorl %r12d, %r12d
cmpl $0xa, %eax
sete %r12b
negl %r12d
leaq 0x228(%rsp), %rdi
callq 0x15be4
addl 0x58(%rsp), %r12d
xorb 0x60(%rsp), %al
movzbl %al, %eax
movl 0x5c(%rsp), %r13d
subl %eax, %r13d
movl %r13d, %eax
orl %r12d, %eax
js 0x36e29
movq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xb118
movq 0x48(%rsp), %rdi
xorl %esi, %esi
movl %r12d, %edx
movl %r13d, %ecx
movl 0xc(%rsp), %r8d
movq 0x40(%rsp), %r9
callq 0x346e2
movl $0x1, %r12d
testb %al, %al
movq 0x40(%rsp), %r13
jne 0x36e34
movq 0x8(%r13), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%r13)
movq %r13, %rdi
callq 0xba60
xorl %r12d, %r12d
jmp 0x36e34
movl $0x5, %r12d
movq 0x40(%rsp), %r13
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x36e59
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x36e7e
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x36ea3
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x36ec8
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x5, %r12d
je 0x36ed3
testl %r12d, %r12d
jne 0x36ef9
addq $0x30, %rbp
cmpq 0x18(%rsp), %rbp
movq %r15, %r12
movq %r14, %r15
movq %rbx, %r14
leaq 0x128(%rsp), %rbx
jne 0x36b8f
movl $0x4, %r12d
testb $0x3, %r12b
sete %r14b
jmp 0x36f0b
movb $0x1, %r14b
movq 0x40(%rsp), %r13
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36f2c
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36f4d
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36f6e
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x208(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36f8f
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36fb0
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5360
movq %r13, %rbp
jmp 0x384a1
movq %rcx, 0x68(%rsp)
leaq 0x405f(%rip), %rsi      # 0x3b023
leaq 0x150(%rsp), %rdi
callq 0x5100
movzbl 0x54(%rsp), %r12d
testl %eax, %eax
movl 0x18(%rsp), %ebx
je 0x370cd
leaq 0x2260(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x2208(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x5b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4006(%rip), %rsi      # 0x3b023
leaq 0x4001(%rip), %rdx      # 0x3b025
leaq 0x5a0(%rsp), %rdi
callq 0xb5f8
leaq 0xab0(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2260(%rsp), %rcx
leaq 0x2208(%rsp), %r8
leaq 0xab0(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0xac8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37096
movq 0xac8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x5a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x370b3
movq 0x5b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2208(%rsp), %rdi
callq 0xb0e0
leaq 0x2260(%rsp), %rdi
callq 0xb0e0
leaq 0x3f52(%rip), %rsi      # 0x3b026
leaq 0x150(%rsp), %rdi
callq 0x5100
testl %eax, %eax
sete %al
orb %bl, %al
jne 0x371d9
leaq 0x21b0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x2158(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x590(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3efe(%rip), %rsi      # 0x3b026
leaq 0x3ef9(%rip), %rdx      # 0x3b028
leaq 0x580(%rsp), %rdi
callq 0xb5f8
leaq 0xa80(%rsp), %rdi
leaq 0x580(%rsp), %rsi
movl $0x1, %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x21b0(%rsp), %rcx
leaq 0x2158(%rsp), %r8
leaq 0xa80(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0xa98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x371a2
movq 0xa98(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x580(%rsp), %rdi
cmpq %r14, %rdi
je 0x371bf
movq 0x590(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2158(%rsp), %rdi
callq 0xb0e0
leaq 0x21b0(%rsp), %rdi
callq 0xb0e0
leaq 0x1810(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x17b8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x570(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3e16(%rip), %rsi      # 0x3b029
leaq 0x3e11(%rip), %rdx      # 0x3b02b
leaq 0x560(%rsp), %rdi
callq 0xb5f8
leaq 0xa50(%rsp), %rdi
leaq 0x560(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1810(%rsp), %rcx
leaq 0x17b8(%rsp), %r8
leaq 0xa50(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0xa68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3728c
movq 0xa68(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x560(%rsp), %rdi
cmpq %r14, %rdi
je 0x372a9
movq 0x570(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x372ca
movq 0x17f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x17d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x372eb
movq 0x17d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1848(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3730c
movq 0x1848(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1828(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3732d
movq 0x1828(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1760(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1708(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x550(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3cc5(%rip), %rsi      # 0x3b02c
leaq 0x3cc0(%rip), %rdx      # 0x3b02e
leaq 0x540(%rsp), %rdi
callq 0xb5f8
leaq 0xa20(%rsp), %rdi
leaq 0x540(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1760(%rsp), %rcx
leaq 0x1708(%rsp), %r8
leaq 0xa20(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0xa38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x373e0
movq 0xa38(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x540(%rsp), %rdi
cmpq %r14, %rdi
je 0x373fd
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1740(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3741e
movq 0x1740(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1720(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3743f
movq 0x1720(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1798(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37460
movq 0x1798(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1778(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37481
movq 0x1778(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16b0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1658(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x530(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3b74(%rip), %rsi      # 0x3b02f
leaq 0x3b6f(%rip), %rdx      # 0x3b031
leaq 0x520(%rsp), %rdi
callq 0xb5f8
leaq 0x9f0(%rsp), %rdi
leaq 0x520(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x16b0(%rsp), %rcx
leaq 0x1658(%rsp), %r8
leaq 0x9f0(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0xa08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37534
movq 0xa08(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x520(%rsp), %rdi
cmpq %r14, %rdi
je 0x37551
movq 0x530(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1690(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37572
movq 0x1690(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1670(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37593
movq 0x1670(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x375b4
movq 0x16e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x16c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x375d5
movq 0x16c8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1600(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x15a8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x510(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3a23(%rip), %rsi      # 0x3b032
leaq 0x3a1e(%rip), %rdx      # 0x3b034
leaq 0x500(%rsp), %rdi
callq 0xb5f8
leaq 0x9c0(%rsp), %rdi
leaq 0x500(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1600(%rsp), %rcx
leaq 0x15a8(%rsp), %r8
leaq 0x9c0(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x9d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37688
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x376a5
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x376c6
movq 0x15e0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x15c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x376e7
movq 0x15c0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1638(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37708
movq 0x1638(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1618(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37729
movq 0x1618(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1550(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x14f8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x4f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x38d2(%rip), %rsi      # 0x3b035
leaq 0x38ce(%rip), %rdx      # 0x3b038
leaq 0x4e0(%rsp), %rdi
callq 0xb5f8
leaq 0x990(%rsp), %rdi
leaq 0x4e0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1550(%rsp), %rcx
leaq 0x14f8(%rsp), %r8
leaq 0x990(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x9a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x377dc
movq 0x9a8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x377f9
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1530(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3781a
movq 0x1530(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1510(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3783b
movq 0x1510(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1588(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3785c
movq 0x1588(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1568(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3787d
movq 0x1568(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x14a0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1448(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x4d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3782(%rip), %rsi      # 0x3b039
leaq 0x377e(%rip), %rdx      # 0x3b03c
leaq 0x4c0(%rsp), %rdi
callq 0xb5f8
leaq 0x960(%rsp), %rdi
leaq 0x4c0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %r13, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x14a0(%rsp), %rcx
leaq 0x1448(%rsp), %r8
leaq 0x960(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x978(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37930
movq 0x978(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x3794d
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1480(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3796e
movq 0x1480(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x10(%rsp), %rax
subq %rax, 0x68(%rsp)
leaq 0x1460(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37999
movq 0x1460(%rsp), %rsi
incq %rsi
callq 0x5360
sarq $0x4, 0x68(%rsp)
leaq 0x14d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x379c0
movq 0x14d8(%rsp), %rsi
incq %rsi
callq 0x5360
movl %r12d, 0x54(%rsp)
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
movq 0x68(%rsp), %rbx
imulq %rax, %rbx
leaq 0x14b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x379f9
movq 0x14b8(%rsp), %rsi
incq %rsi
callq 0x5360
movslq %ebx, %rax
leaq (%rax,%rax,2), %rcx
shlq $0x4, %rcx
addq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
cmpq %rax, %rcx
je 0x37b67
movq 0x10(%rsp), %rax
leaq 0x30(%rax), %rbp
cmpq 0x18(%rsp), %rbp
je 0x37b67
leaq 0xd0(%rsp), %rbx
leaq 0xe0(%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 0x10(%rsp), %r13
cmpq %r13, %rbp
je 0x37b54
movl (%rbp), %eax
movl %eax, 0xc8(%rsp)
movq %r15, 0xd0(%rsp)
movq 0x8(%rbp), %rcx
leaq 0x18(%rbp), %rax
cmpq %rcx, %rax
je 0x37ab9
movq %rcx, 0xd0(%rsp)
movq (%rax), %rcx
movq %rcx, 0xe0(%rsp)
jmp 0x37ac0
movups (%rax), %xmm0
movups %xmm0, (%r15)
leaq 0x8(%rbp), %rdi
movq 0x10(%rbp), %rcx
movq %rcx, 0xd8(%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 0xc8(%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 0xd0(%rsp), %rdi
cmpq %r15, %rdi
je 0x37b54
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
addq $0x30, %rbp
addq $0x30, %r12
cmpq 0x18(%rsp), %rbp
jne 0x37a4b
leaq 0x170(%rsp), %rdi
movl (%rdi), %eax
leal 0x3(%rax), %esi
testl %eax, %eax
cmovnsl %eax, %esi
sarl $0x2, %esi
movq 0x1c8(%rsp), %rax
movq %rax, %r15
imull %eax, %esi
callq 0xafa8
movq 0x40(%rsp), %rbx
movq 0x48(%rsp), %rbp
movl 0x54(%rsp), %r12d
testb %al, %al
jne 0x38038
leaq 0x2100(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x20a8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x4b0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x34d8(%rip), %rsi      # 0x3b0b8
leaq 0x34d3(%rip), %rdx      # 0x3b0ba
leaq 0x4a0(%rsp), %rdi
callq 0xb5f8
leaq 0x930(%rsp), %rdi
leaq 0x4a0(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2100(%rsp), %rcx
leaq 0x20a8(%rsp), %r8
leaq 0x930(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x948(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37c59
movq 0x948(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x37c76
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20a8(%rsp), %rdi
callq 0xb0e0
leaq 0x2100(%rsp), %rdi
callq 0xb0e0
leaq 0x2050(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1ff8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x490(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x33e8(%rip), %rsi      # 0x3b0b2
leaq 0x33e3(%rip), %rdx      # 0x3b0b4
leaq 0x480(%rsp), %rdi
callq 0xb5f8
leaq 0x900(%rsp), %rdi
leaq 0x480(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x2050(%rsp), %rcx
leaq 0x1ff8(%rsp), %r8
leaq 0x900(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x918(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37d43
movq 0x918(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x37d60
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1ff8(%rsp), %rdi
callq 0xb0e0
leaq 0x2050(%rsp), %rdi
callq 0xb0e0
leaq 0x1fa0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1f48(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x470(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3301(%rip), %rsi      # 0x3b0b5
leaq 0x32fc(%rip), %rdx      # 0x3b0b7
leaq 0x460(%rsp), %rdi
callq 0xb5f8
leaq 0x8d0(%rsp), %rdi
leaq 0x460(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1fa0(%rsp), %rcx
leaq 0x1f48(%rsp), %r8
leaq 0x8d0(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x8e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37e2d
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x37e4a
movq 0x470(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1f48(%rsp), %rdi
callq 0xb0e0
leaq 0x1fa0(%rsp), %rdi
callq 0xb0e0
leaq 0x1ef0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1e98(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x450(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x321d(%rip), %rsi      # 0x3b0bb
leaq 0x3218(%rip), %rdx      # 0x3b0bd
leaq 0x440(%rsp), %rdi
callq 0xb5f8
leaq 0x8a0(%rsp), %rdi
leaq 0x440(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1ef0(%rsp), %rcx
leaq 0x1e98(%rsp), %r8
leaq 0x8a0(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x8b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37f17
movq 0x8b8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
je 0x37f34
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e98(%rsp), %rdi
callq 0xb0e0
leaq 0x1ef0(%rsp), %rdi
callq 0xb0e0
leaq 0x1e40(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1aa22
leaq 0x1de8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x430(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3136(%rip), %rsi      # 0x3b0be
leaq 0x3131(%rip), %rdx      # 0x3b0c0
leaq 0x420(%rsp), %rdi
callq 0xb5f8
leaq 0x870(%rsp), %rdi
leaq 0x420(%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0x14fd4
movq %rbx, (%rsp)
leaq 0x20(%rsp), %rdx
leaq 0x1e40(%rsp), %rcx
leaq 0x1de8(%rsp), %r8
leaq 0x870(%rsp), %r9
xorl %edi, %edi
movl %r12d, %esi
callq 0x395bc
leaq 0x888(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38001
movq 0x888(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x420(%rsp), %rdi
cmpq %r14, %rdi
je 0x3801e
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1de8(%rsp), %rdi
callq 0xb0e0
leaq 0x1e40(%rsp), %rdi
callq 0xb0e0
movq %rbp, %rax
movq 0x20(%rsp), %r13
movq 0x28(%rsp), %rbp
cmpq %rbp, %r13
je 0x383f4
leaq 0x128(%rsp), %r14
leaq 0x728(%rsp), %r12
xorl %ecx, %ecx
cmpl $0x3, %r15d
sete %cl
addl %eax, %ecx
movl %ecx, 0x48(%rsp)
leal 0x1(%r15), %eax
andl $0x3, %eax
movl %eax, 0x18(%rsp)
movl (%r13), %eax
movl %eax, 0x120(%rsp)
leaq 0x138(%rsp), %rax
movq %rax, 0x128(%rsp)
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xb50a
movzwl 0x2c(%r13), %eax
movw %ax, 0x24(%r14)
movl 0x28(%r13), %eax
movl %eax, 0x20(%r14)
leaq 0xd10(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x738(%rsp), %r15
movl 0x120(%rsp), %eax
movl %eax, 0x720(%rsp)
movq %r15, 0x728(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%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 0xc8(%rsp), %rdi
leaq 0xd10(%rsp), %rsi
leaq 0x720(%rsp), %rdx
callq 0x15ab2
movq 0x728(%rsp), %rdi
cmpq %r15, %rdi
je 0x38154
movq 0x738(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd38(%rsp), %rdi
leaq 0xd48(%rsp), %rax
cmpq %rax, %rdi
je 0x38179
movq 0xd48(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd18(%rsp), %rdi
leaq 0xd28(%rsp), %rax
cmpq %rax, %rdi
je 0x3819e
movq 0xd28(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0xc8(%rsp), %eax
leal 0x3(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x2, %ecx
movl %ecx, 0xc8(%rsp)
leaq 0xcb8(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x1aa22
leaq 0xe70(%rsp), %rbx
movq %rbx, %rdi
leaq 0x170(%rsp), %rsi
callq 0x1aa22
leaq 0x228(%rsp), %rdi
leaq 0xcb8(%rsp), %rsi
movq %rbx, %rdx
callq 0x1528a
movq 0xe98(%rsp), %rdi
leaq 0xea8(%rsp), %rax
cmpq %rax, %rdi
je 0x38221
movq 0xea8(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xe78(%rsp), %rdi
leaq 0xe88(%rsp), %rax
cmpq %rax, %rdi
je 0x38246
movq 0xe88(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xce0(%rsp), %rdi
leaq 0xcf0(%rsp), %rax
cmpq %rax, %rdi
je 0x3826b
movq 0xcf0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xcc0(%rsp), %rdi
leaq 0xcd0(%rsp), %rax
cmpq %rax, %rdi
je 0x38290
movq 0xcd0(%rsp), %rsi
incq %rsi
callq 0x5360
movl 0x120(%rsp), %eax
xorl %r15d, %r15d
cmpl 0x258(%rsp), %eax
jne 0x382c0
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
cmpl $0x3, %eax
je 0x382c0
cmpl $0x6, %eax
je 0x382c0
xorl %r15d, %r15d
cmpl $0xa, %eax
sete %r15b
negl %r15d
leaq 0x228(%rsp), %rdi
callq 0x15be4
addl 0x58(%rsp), %r15d
xorb 0x60(%rsp), %al
movzbl %al, %eax
movl 0x5c(%rsp), %ebx
subl %eax, %ebx
movl %ebx, %eax
orl %r15d, %eax
js 0x38337
movq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xb118
movl 0x48(%rsp), %edi
movl 0x18(%rsp), %esi
movl %r15d, %edx
movl %ebx, %ecx
movl 0xc(%rsp), %r8d
movq 0x40(%rsp), %r9
callq 0x346e2
movl $0x1, %ebx
testb %al, %al
jne 0x3833c
movq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x58, %rsi
movq %rsi, 0x8(%rdi)
callq 0xba60
xorl %ebx, %ebx
jmp 0x3833c
movl $0x3, %ebx
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x38361
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x38386
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x383ab
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x383d0
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
cmpl $0x3, %ebx
je 0x383d9
testl %ebx, %ebx
jne 0x383eb
addq $0x30, %r13
cmpq %rbp, %r13
jne 0x38078
movl $0x2, %ebx
testb $0x1, %bl
sete %r14b
jmp 0x383f7
movb $0x1, %r14b
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x40(%rsp), %rbp
je 0x3841d
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3843e
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3845f
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x208(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38480
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384a1
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384c2
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x384e3
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
movb $0x1, %bl
testb %r14b, %r14b
je 0x38589
leaq 0x70(%rsp), %rdi
movq %rbp, %rsi
callq 0x2433e
movl 0x1c8(%rsp), %eax
leaq 0xa8(%rsp), %rcx
movslq 0x14(%rcx), %rdx
movslq 0x58(%rsp), %rsi
movslq 0x5c(%rsp), %rdi
imulq $0x1081c8, 0x288(%rsp), %r8 # imm = 0x1081C8
addq 0x10a45(%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 0x38566
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38587
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
xorl %ebx, %ebx
leaq 0x1a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x385aa
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x385cb
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x20(%rsp), %rdi
callq 0xb144
movl %ebx, %eax
addq $0x2418, %rsp           # imm = 0x2418
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x888(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38612
movq 0x888(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38612
movq %rax, %rbx
movq 0x420(%rsp), %rdi
cmpq %r14, %rdi
je 0x38634
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38634
movq %rax, %rbx
leaq 0x1de8(%rsp), %rdi
callq 0xb0e0
jmp 0x38646
movq %rax, %rbx
leaq 0x1e40(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x8b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3867c
movq 0x8b8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3867c
movq %rax, %rbx
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
je 0x3869e
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3869e
movq %rax, %rbx
leaq 0x1e98(%rsp), %rdi
callq 0xb0e0
jmp 0x386b0
movq %rax, %rbx
leaq 0x1ef0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x8e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x386e6
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x386e6
movq %rax, %rbx
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x38708
movq 0x470(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38708
movq %rax, %rbx
leaq 0x1f48(%rsp), %rdi
callq 0xb0e0
jmp 0x3871a
movq %rax, %rbx
leaq 0x1fa0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x918(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38750
movq 0x918(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38750
movq %rax, %rbx
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x38772
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38772
movq %rax, %rbx
leaq 0x1ff8(%rsp), %rdi
callq 0xb0e0
jmp 0x38784
movq %rax, %rbx
leaq 0x2050(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x948(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x387ba
movq 0x948(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x387ba
movq %rax, %rbx
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x387dc
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x387dc
movq %rax, %rbx
leaq 0x20a8(%rsp), %rdi
callq 0xb0e0
jmp 0x387ee
movq %rax, %rbx
leaq 0x2100(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xa98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38824
movq 0xa98(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38824
movq %rax, %rbx
movq 0x580(%rsp), %rdi
cmpq %r14, %rdi
je 0x38846
movq 0x590(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38846
movq %rax, %rbx
leaq 0x2158(%rsp), %rdi
callq 0xb0e0
jmp 0x38858
movq %rax, %rbx
leaq 0x21b0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xc18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3888e
movq 0xc18(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3888e
movq %rax, %rbx
movq 0x680(%rsp), %rdi
cmpq %r14, %rdi
je 0x388b0
movq 0x690(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x388b0
movq %rax, %rbx
leaq 0x22b8(%rsp), %rdi
callq 0xb0e0
jmp 0x388c2
movq %rax, %rbx
leaq 0x2310(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x768(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x388f8
movq 0x768(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x388f8
movq %rax, %rbx
movq 0x340(%rsp), %rdi
cmpq %r14, %rdi
je 0x3891a
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3891a
movq %rax, %rbx
leaq 0xec8(%rsp), %rdi
callq 0xb0e0
jmp 0x3892c
movq %rax, %rbx
leaq 0xf20(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x7f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38962
movq 0x7f8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38962
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38984
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38984
movq %rax, %rbx
leaq 0x10d8(%rsp), %rdi
callq 0xb0e0
jmp 0x38996
movq %rax, %rbx
leaq 0x1130(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xac8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x389cc
movq 0xac8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x389cc
movq %rax, %rbx
movq 0x5a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x389ee
movq 0x5b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x389ee
movq %rax, %rbx
leaq 0x2208(%rsp), %rdi
callq 0xb0e0
jmp 0x38a00
movq %rax, %rbx
leaq 0x2260(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xc48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38a36
movq 0xc48(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38a36
movq %rax, %rbx
movq 0x6a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38a58
movq 0x6b0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38a58
movq %rax, %rbx
leaq 0x2368(%rsp), %rdi
callq 0xb0e0
jmp 0x38a6a
movq %rax, %rbx
leaq 0x23c0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x798(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38aa0
movq 0x798(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38aa0
movq %rax, %rbx
movq 0x360(%rsp), %rdi
cmpq %r14, %rdi
je 0x38ac2
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38ac2
movq %rax, %rbx
leaq 0xf78(%rsp), %rdi
callq 0xb0e0
jmp 0x38ad4
movq %rax, %rbx
leaq 0xfd0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x828(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38b0a
movq 0x828(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38b0a
movq %rax, %rbx
movq 0x3c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38b2c
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38b2c
movq %rax, %rbx
leaq 0x1188(%rsp), %rdi
callq 0xb0e0
jmp 0x38b3e
movq %rax, %rbx
leaq 0x11e0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x978(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38b74
movq 0x978(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38b74
movq %rax, %rbx
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38b96
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38b96
movq %rax, %rbx
leaq 0x1448(%rsp), %rdi
callq 0xb0e0
jmp 0x38ba8
movq %rax, %rbx
leaq 0x14a0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x9a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38bde
movq 0x9a8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38bde
movq %rax, %rbx
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38c00
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38c00
movq %rax, %rbx
leaq 0x14f8(%rsp), %rdi
callq 0xb0e0
jmp 0x38c12
movq %rax, %rbx
leaq 0x1550(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x9d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38c48
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38c48
movq %rax, %rbx
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x38c6a
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38c6a
movq %rax, %rbx
leaq 0x15a8(%rsp), %rdi
callq 0xb0e0
jmp 0x38c7c
movq %rax, %rbx
leaq 0x1600(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xa08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38cb2
movq 0xa08(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38cb2
movq %rax, %rbx
movq 0x520(%rsp), %rdi
cmpq %r14, %rdi
je 0x38cd4
movq 0x530(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38cd4
movq %rax, %rbx
leaq 0x1658(%rsp), %rdi
callq 0xb0e0
jmp 0x38ce6
movq %rax, %rbx
leaq 0x16b0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xa38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38d1c
movq 0xa38(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38d1c
movq %rax, %rbx
movq 0x540(%rsp), %rdi
cmpq %r14, %rdi
je 0x38d3e
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38d3e
movq %rax, %rbx
leaq 0x1708(%rsp), %rdi
callq 0xb0e0
jmp 0x38d50
movq %rax, %rbx
leaq 0x1760(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xa68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38d86
movq 0xa68(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38d86
movq %rax, %rbx
movq 0x560(%rsp), %rdi
cmpq %r14, %rdi
je 0x38da8
movq 0x570(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38da8
movq %rax, %rbx
leaq 0x17b8(%rsp), %rdi
callq 0xb0e0
jmp 0x38dba
movq %rax, %rbx
leaq 0x1810(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xaf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38df0
movq 0xaf8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38df0
movq %rax, %rbx
movq 0x5c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38e12
movq 0x5d0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38e12
movq %rax, %rbx
leaq 0x1868(%rsp), %rdi
callq 0xb0e0
jmp 0x38e24
movq %rax, %rbx
leaq 0x18c0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xb28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38e5a
movq 0xb28(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38e5a
movq %rax, %rbx
movq 0x5e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x38e7c
movq 0x5f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38e7c
movq %rax, %rbx
leaq 0x1918(%rsp), %rdi
callq 0xb0e0
jmp 0x38e8e
movq %rax, %rbx
leaq 0x1970(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xb58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38ec4
movq 0xb58(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38ec4
movq %rax, %rbx
movq 0x600(%rsp), %rdi
cmpq %r14, %rdi
je 0x38ee6
movq 0x610(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38ee6
movq %rax, %rbx
leaq 0x19c8(%rsp), %rdi
callq 0xb0e0
jmp 0x38ef8
movq %rax, %rbx
leaq 0x1a20(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xb88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38f2e
movq 0xb88(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38f2e
movq %rax, %rbx
movq 0x620(%rsp), %rdi
cmpq %r14, %rdi
je 0x38f50
movq 0x630(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38f50
movq %rax, %rbx
leaq 0x1a78(%rsp), %rdi
callq 0xb0e0
jmp 0x38f62
movq %rax, %rbx
leaq 0x1ad0(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xbb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x38f98
movq 0xbb8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38f98
movq %rax, %rbx
movq 0x640(%rsp), %rdi
cmpq %r14, %rdi
je 0x38fba
movq 0x650(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x38fba
movq %rax, %rbx
leaq 0x1b28(%rsp), %rdi
callq 0xb0e0
jmp 0x38fcc
movq %rax, %rbx
leaq 0x1b80(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xbe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39002
movq 0xbe8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x39002
movq %rax, %rbx
movq 0x660(%rsp), %rdi
cmpq %r14, %rdi
je 0x39024
movq 0x670(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x39024
movq %rax, %rbx
leaq 0x1bd8(%rsp), %rdi
callq 0xb0e0
jmp 0x39036
movq %rax, %rbx
leaq 0x1c30(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3906c
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3906c
movq %rax, %rbx
movq 0x400(%rsp), %rdi
cmpq %r14, %rdi
je 0x39523
movq 0x410(%rsp), %rsi
jmp 0x3951b
jmp 0x3945f
movq %rax, %rbx
leaq 0x7c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x390b8
movq 0x7c8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x390b8
movq %rax, %rbx
movq 0x380(%rsp), %rdi
cmpq %r14, %rdi
je 0x390da
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x390da
movq %rax, %rbx
leaq 0x1028(%rsp), %rdi
callq 0xb0e0
jmp 0x390ec
movq %rax, %rbx
leaq 0x1080(%rsp), %rdi
jmp 0x39184
movq %rax, %rbx
leaq 0x858(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39122
movq 0x858(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x39122
movq %rax, %rbx
movq 0x3e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x39144
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x39144
movq %rax, %rbx
leaq 0x1238(%rsp), %rdi
callq 0xb0e0
jmp 0x3917c
movq %rax, %rbx
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39191
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x39191
movq %rax, %rbx
leaq 0x1290(%rsp), %rdi
callq 0xb0e0
jmp 0x39523
movq %rax, %rbx
movq 0x320(%rsp), %rdi
cmpq %r14, %rdi
je 0x39523
movq 0x330(%rsp), %rsi
jmp 0x3951b
jmp 0x3945f
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x391de
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x391de
movq %rax, %rbx
movq 0x2c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x3959d
movq 0x2d0(%rsp), %rsi
jmp 0x39452
jmp 0x3938a
jmp 0x3925d
movq %rax, %rbx
leaq 0x1c88(%rsp), %rdi
callq 0xb0e0
jmp 0x39218
movq %rax, %rbx
leaq 0x1ce0(%rsp), %rdi
jmp 0x39282
jmp 0x392b5
jmp 0x392b5
movq %rax, %rbx
leaq 0x1d38(%rsp), %rdi
callq 0xb0e0
jmp 0x39241
movq %rax, %rbx
leaq 0x1d90(%rsp), %rdi
jmp 0x39300
jmp 0x39330
jmp 0x39359
jmp 0x3938a
movq %rax, %rbx
jmp 0x39544
movq %rax, %rbx
leaq 0x12e8(%rsp), %rdi
callq 0xb0e0
jmp 0x3927a
movq %rax, %rbx
leaq 0x1340(%rsp), %rdi
callq 0xb0e0
jmp 0x39565
jmp 0x392b5
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x392c0
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x392c0
movq %rax, %rbx
jmp 0x39565
movq %rax, %rbx
movq 0x2e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x3959d
movq 0x2f0(%rsp), %rsi
jmp 0x39452
movq %rax, %rbx
leaq 0x1398(%rsp), %rdi
callq 0xb0e0
jmp 0x392f8
jmp 0x3938a
movq %rax, %rbx
leaq 0x13f0(%rsp), %rdi
callq 0xb0e0
jmp 0x39586
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3933b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3933b
movq %rax, %rbx
jmp 0x39586
movq %rax, %rbx
movq 0x300(%rsp), %rdi
cmpq %r14, %rdi
je 0x3959d
movq 0x310(%rsp), %rsi
jmp 0x39452
movq %rax, %rbx
jmp 0x39593
jmp 0x3938a
jmp 0x3938a
jmp 0x3945f
jmp 0x3938a
jmp 0x3945f
movq %rax, %rbx
jmp 0x395aa
jmp 0x3938a
jmp 0x3945f
jmp 0x3945f
movq %rax, %rbx
jmp 0x393b2
movq %rax, %rbx
jmp 0x3959d
movq %rax, %rbx
movq 0x6c8(%rsp), %rdi
cmpq %r13, %rdi
je 0x393b2
movq 0x6d8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc60(%rsp), %rdi
jmp 0x3942c
movq %rax, %rbx
jmp 0x39431
jmp 0x3945f
jmp 0x39467
movq %rax, %rbx
jmp 0x393f0
movq %rax, %rbx
movq 0x728(%rsp), %rdi
cmpq %r15, %rdi
je 0x393f0
movq 0x738(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xd10(%rsp), %rdi
jmp 0x394f9
jmp 0x3949e
movq %rax, %rbx
jmp 0x39417
movq %rax, %rbx
leaq 0xe70(%rsp), %rdi
callq 0xb0e0
leaq 0xcb8(%rsp), %rdi
jmp 0x394c0
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb0e0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x3959d
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5360
jmp 0x3959d
movq %rax, %rbx
jmp 0x39523
movq %rax, %rbx
jmp 0x394fe
movq %rax, %rbx
jmp 0x39494
movq %rax, %rbx
movq 0x6f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x39494
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xe18(%rsp), %rdi
jmp 0x394f9
movq %rax, %rbx
jmp 0x394f1
movq %rax, %rbx
jmp 0x394b8
movq %rax, %rbx
leaq 0xd68(%rsp), %rdi
callq 0xb0e0
leaq 0xdc0(%rsp), %rdi
callq 0xb0e0
jmp 0x394f1
jmp 0x394c9
movq %rax, %rbx
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x394f1
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0xc8(%rsp), %rdi
callq 0xb0e0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x39523
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39544
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x270(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39565
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x2a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39586
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x5360
leaq 0x1d0(%rsp), %rdi
callq 0xb0e0
leaq 0x70(%rsp), %rdi
callq 0xb0e0
leaq 0x170(%rsp), %rdi
callq 0xb0e0
leaq 0x20(%rsp), %rdi
callq 0xb144
movq %rbx, %rdi
callq 0x55e0