// File: 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
movq %rsp, %rbp
subq $0x2c40, %rsp           # imm = 0x2C40
movb %r8b, %al
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
andb $0x1, %al
movb %al, -0x15(%rbp)
movq %r9, -0x20(%rbp)
movl -0x8(%rbp), %eax
addl -0xc(%rbp), %eax
cmpl $0x0, %eax
jne 0x28d50
leaq 0x59bbb(%rip), %rdi     # 0x828f0
movl $0x1, %esi
movl $0x9bc8cf8, %edx        # imm = 0x9BC8CF8
callq 0x6260
callq 0x6320
movl %eax, %edi
callq 0x6460
movl -0x8(%rbp), %eax
movl %eax, -0x29dc(%rbp)
leaq 0x9c22888(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, %ecx
movl -0x29dc(%rbp), %eax
cmpl %ecx, %eax
jb 0x28d7d
movb $0x1, -0x1(%rbp)
jmp 0x2d152
movl -0x8(%rbp), %ecx
addl -0xc(%rbp), %ecx
movb $0x0, -0x79(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x29dd(%rbp)
je 0x28e01
movl -0x8(%rbp), %eax
movl %eax, %ecx
leaq 0x59b50(%rip), %rax     # 0x828f0
imulq $0x1081c8, %rcx, %rcx   # imm = 0x1081C8
addq %rcx, %rax
movl -0xc(%rbp), %ecx
imulq $0x42072, %rcx, %rcx    # imm = 0x42072
addq %rcx, %rax
movq %rax, -0x29e8(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x2ddf0
movq -0x29e8(%rbp), %rax
movb $0x1, -0x79(%rbp)
movslq -0x2c(%rbp), %rcx
imulq $0xbbd, %rcx, %rcx      # imm = 0xBBD
addq %rcx, %rax
movslq -0x10(%rbp), %rcx
imulq $0x259, %rcx, %rcx      # imm = 0x259
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %al
xorb $-0x1, %al
movb %al, -0x29dd(%rbp)
movb -0x29dd(%rbp), %al
movb %al, -0x29e9(%rbp)
testb $0x1, -0x79(%rbp)
jne 0x28e15
jmp 0x28e1e
leaq -0x78(%rbp), %rdi
callq 0xfd80
movb -0x29e9(%rbp), %al
testb $0x1, %al
jne 0x28e2a
jmp 0x28e33
movb $0x0, -0x1(%rbp)
jmp 0x2d152
leaq -0x98(%rbp), %rdi
callq 0xfcb0
leaq 0x9c227a2(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
movl -0x8(%rbp), %eax
movl %eax, %esi
callq 0xfd10
movq %rax, %rsi
leaq -0xf0(%rbp), %rdi
callq 0x22ce0
jmp 0x28e64
cmpl $0x0, -0x8(%rbp)
jne 0x28e74
cmpl $0x0, -0xc(%rbp)
je 0x2b8b9
movl -0x8(%rbp), %eax
movl %eax, -0x29f4(%rbp)
leaq 0x9c22764(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, -0x29f0(%rbp)
jmp 0x28e94
movl -0x29f4(%rbp), %eax
movl -0x29f0(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jae 0x2b8b9
leaq 0x9c22736(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
movl -0x8(%rbp), %edx
movl -0xc(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal -0x1(%rax,%rcx), %eax
movl %eax, %esi
callq 0xfd10
movq %rax, %rsi
leaq -0x158(%rbp), %rdi
callq 0x22ce0
jmp 0x28edb
movq -0x20(%rbp), %rdi
callq 0x1b790
movq %rax, %rsi
leaq -0x1b0(%rbp), %rdi
callq 0x22ce0
jmp 0x28ef5
leaq -0x238(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x28f0a
leaq -0x290(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x28f1f
leaq -0x1e0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
leaq -0x290(%rbp), %rdx
callq 0x1bf30
jmp 0x28f3b
leaq -0x290(%rbp), %rdi
callq 0xfd80
leaq -0x238(%rbp), %rdi
callq 0xfd80
leaq -0x1e0(%rbp), %rdi
callq 0x1c680
movb %al, -0x29f5(%rbp)
jmp 0x28f67
movb -0x29f5(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x291(%rbp)
leaq -0x320(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x28f8c
leaq -0x378(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x22ce0
jmp 0x28fa1
leaq -0x2c8(%rbp), %rdi
leaq -0x320(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0x1bf30
jmp 0x28fbd
leaq -0x378(%rbp), %rdi
callq 0xfd80
leaq -0x320(%rbp), %rdi
callq 0xfd80
leaq -0x398(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x1c100
jmp 0x28fea
leaq -0xf0(%rbp), %rdi
callq 0x23be0
movb %al, -0x29f6(%rbp)
jmp 0x28ffe
movb -0x29f6(%rbp), %al
testb $0x1, %al
jne 0x2b33d
jmp 0x2900e
leaq 0x36ff2(%rip), %rsi     # 0x60007
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x29f7(%rbp)
jmp 0x29029
movb -0x29f7(%rbp), %al
testb $0x1, %al
jne 0x29038
jmp 0x292ee
movb -0x291(%rbp), %al
movb %al, -0x29f8(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x29059
leaq -0x448(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2906e
leaq -0x499(%rbp), %rdi
movq %rdi, -0x2a00(%rbp)
callq 0x6830
movq -0x2a00(%rbp), %rdx
leaq 0x36f78(%rip), %rsi     # 0x60007
leaq -0x498(%rbp), %rdi
callq 0xfb20
jmp 0x2909d
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x478(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0x1bbe0
jmp 0x290b9
movb -0x29f8(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x3f0(%rbp), %rcx
leaq -0x448(%rbp), %r8
leaq -0x478(%rbp), %r9
callq 0x2d170
jmp 0x290f7
leaq -0x478(%rbp), %rdi
callq 0xfc90
leaq -0x498(%rbp), %rdi
callq 0x62d0
leaq -0x499(%rbp), %rdi
callq 0x64f0
leaq -0x448(%rbp), %rdi
callq 0xfd80
leaq -0x3f0(%rbp), %rdi
callq 0xfd80
jmp 0x292ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2d144
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2d138
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b8a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b89c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x291c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x290(%rbp), %rdi
callq 0xfd80
leaq -0x238(%rbp), %rdi
callq 0xfd80
jmp 0x2b89c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29220
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x378(%rbp), %rdi
callq 0xfd80
leaq -0x320(%rbp), %rdi
callq 0xfd80
jmp 0x2b890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b884
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x292dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x292c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x292b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x478(%rbp), %rdi
callq 0xfc90
leaq -0x498(%rbp), %rdi
callq 0x62d0
leaq -0x499(%rbp), %rdi
callq 0x64f0
leaq -0x448(%rbp), %rdi
callq 0xfd80
leaq -0x3f0(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
leaq 0x36d15(%rip), %rsi     # 0x6000a
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a01(%rbp)
jmp 0x29309
movb -0x2a01(%rbp), %al
testb $0x1, %al
jne 0x29318
jmp 0x294b1
testb $0x1, -0x15(%rbp)
je 0x294b1
movb -0x291(%rbp), %al
movb %al, -0x2a02(%rbp)
leaq -0x4f8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x29343
leaq -0x550(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x29358
leaq -0x5a1(%rbp), %rdi
movq %rdi, -0x2a10(%rbp)
callq 0x6830
movq -0x2a10(%rbp), %rdx
leaq 0x36c91(%rip), %rsi     # 0x6000a
leaq -0x5a0(%rbp), %rdi
callq 0xfb20
jmp 0x29387
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x580(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
callq 0x1bbe0
jmp 0x293a3
movb -0x2a02(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x4f8(%rbp), %rcx
leaq -0x550(%rbp), %r8
leaq -0x580(%rbp), %r9
callq 0x2d170
jmp 0x293e1
leaq -0x580(%rbp), %rdi
callq 0xfc90
leaq -0x5a0(%rbp), %rdi
callq 0x62d0
leaq -0x5a1(%rbp), %rdi
callq 0x64f0
leaq -0x550(%rbp), %rdi
callq 0xfd80
leaq -0x4f8(%rbp), %rdi
callq 0xfd80
jmp 0x294b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x294a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29488
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2947c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x580(%rbp), %rdi
callq 0xfc90
leaq -0x5a0(%rbp), %rdi
callq 0x62d0
leaq -0x5a1(%rbp), %rdi
callq 0x64f0
leaq -0x550(%rbp), %rdi
callq 0xfd80
leaq -0x4f8(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movb -0x291(%rbp), %al
movb %al, -0x2a11(%rbp)
leaq -0x600(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x294d2
leaq -0x658(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x294e7
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x2a20(%rbp)
callq 0x6830
movq -0x2a20(%rbp), %rdx
leaq 0x36b05(%rip), %rsi     # 0x6000d
leaq -0x6a8(%rbp), %rdi
callq 0xfb20
jmp 0x29516
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x688(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0x1bbe0
jmp 0x29532
movb -0x2a11(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x600(%rbp), %rcx
leaq -0x658(%rbp), %r8
leaq -0x688(%rbp), %r9
callq 0x2d170
jmp 0x29570
leaq -0x688(%rbp), %rdi
callq 0xfc90
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
leaq -0x6a9(%rbp), %rdi
callq 0x64f0
leaq -0x658(%rbp), %rdi
callq 0xfd80
leaq -0x600(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
movb %al, -0x2a21(%rbp)
leaq -0x708(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x295cd
leaq -0x760(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x295e2
leaq -0x7b1(%rbp), %rdi
movq %rdi, -0x2a30(%rbp)
callq 0x6830
movq -0x2a30(%rbp), %rdx
leaq 0x36a0d(%rip), %rsi     # 0x60010
leaq -0x7b0(%rbp), %rdi
callq 0xfb20
jmp 0x29611
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x790(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x1bbe0
jmp 0x2962d
movb -0x2a21(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x708(%rbp), %rcx
leaq -0x760(%rbp), %r8
leaq -0x790(%rbp), %r9
callq 0x2d170
jmp 0x2966b
leaq -0x790(%rbp), %rdi
callq 0xfc90
leaq -0x7b0(%rbp), %rdi
callq 0x62d0
leaq -0x7b1(%rbp), %rdi
callq 0x64f0
leaq -0x760(%rbp), %rdi
callq 0xfd80
leaq -0x708(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
movb %al, -0x2a31(%rbp)
leaq -0x810(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x296c8
leaq -0x868(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x296dd
leaq -0x8b9(%rbp), %rdi
movq %rdi, -0x2a40(%rbp)
callq 0x6830
movq -0x2a40(%rbp), %rdx
leaq 0x36915(%rip), %rsi     # 0x60013
leaq -0x8b8(%rbp), %rdi
callq 0xfb20
jmp 0x2970c
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x898(%rbp), %rdi
leaq -0x8b8(%rbp), %rsi
callq 0x1bbe0
jmp 0x29728
movb -0x2a31(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x810(%rbp), %rcx
leaq -0x868(%rbp), %r8
leaq -0x898(%rbp), %r9
callq 0x2d170
jmp 0x29766
leaq -0x898(%rbp), %rdi
callq 0xfc90
leaq -0x8b8(%rbp), %rdi
callq 0x62d0
leaq -0x8b9(%rbp), %rdi
callq 0x64f0
leaq -0x868(%rbp), %rdi
callq 0xfd80
leaq -0x810(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
movb %al, -0x2a41(%rbp)
leaq -0x918(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x297c3
leaq -0x970(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x297d8
leaq -0x9c1(%rbp), %rdi
movq %rdi, -0x2a50(%rbp)
callq 0x6830
movq -0x2a50(%rbp), %rdx
leaq 0x3681d(%rip), %rsi     # 0x60016
leaq -0x9c0(%rbp), %rdi
callq 0xfb20
jmp 0x29807
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x9a0(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x1bbe0
jmp 0x29823
movb -0x2a41(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x918(%rbp), %rcx
leaq -0x970(%rbp), %r8
leaq -0x9a0(%rbp), %r9
callq 0x2d170
jmp 0x29861
leaq -0x9a0(%rbp), %rdi
callq 0xfc90
leaq -0x9c0(%rbp), %rdi
callq 0x62d0
leaq -0x9c1(%rbp), %rdi
callq 0x64f0
leaq -0x970(%rbp), %rdi
callq 0xfd80
leaq -0x918(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
movb %al, -0x2a51(%rbp)
leaq -0xa20(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x298be
leaq -0xa78(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x298d3
leaq -0xac9(%rbp), %rdi
movq %rdi, -0x2a60(%rbp)
callq 0x6830
movq -0x2a60(%rbp), %rdx
leaq 0x36725(%rip), %rsi     # 0x60019
leaq -0xac8(%rbp), %rdi
callq 0xfb20
jmp 0x29902
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xaa8(%rbp), %rdi
leaq -0xac8(%rbp), %rsi
callq 0x1bbe0
jmp 0x2991e
movb -0x2a51(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0xa20(%rbp), %rcx
leaq -0xa78(%rbp), %r8
leaq -0xaa8(%rbp), %r9
callq 0x2d170
jmp 0x2995c
leaq -0xaa8(%rbp), %rdi
callq 0xfc90
leaq -0xac8(%rbp), %rdi
callq 0x62d0
leaq -0xac9(%rbp), %rdi
callq 0x64f0
leaq -0xa78(%rbp), %rdi
callq 0xfd80
leaq -0xa20(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
movb %al, -0x2a61(%rbp)
leaq -0xb28(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x299b9
leaq -0xb80(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x299ce
leaq -0xbd1(%rbp), %rdi
movq %rdi, -0x2a70(%rbp)
callq 0x6830
movq -0x2a70(%rbp), %rdx
leaq 0x3662e(%rip), %rsi     # 0x6001d
leaq -0xbd0(%rbp), %rdi
callq 0xfb20
jmp 0x299fd
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xbb0(%rbp), %rdi
leaq -0xbd0(%rbp), %rsi
callq 0x1bbe0
jmp 0x29a19
movb -0x2a61(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0xb28(%rbp), %rcx
leaq -0xb80(%rbp), %r8
leaq -0xbb0(%rbp), %r9
callq 0x2d170
jmp 0x29a57
leaq -0xbb0(%rbp), %rdi
callq 0xfc90
leaq -0xbd0(%rbp), %rdi
callq 0x62d0
leaq -0xbd1(%rbp), %rdi
callq 0x64f0
leaq -0xb80(%rbp), %rdi
callq 0xfd80
leaq -0xb28(%rbp), %rdi
callq 0xfd80
leaq -0x98(%rbp), %rdi
movq %rdi, -0x2a78(%rbp)
callq 0x12f70
movq -0x2a78(%rbp), %rdi
movq %rax, -0xbe0(%rbp)
callq 0x12de0
movq %rax, -0xbe8(%rbp)
movq -0xbe0(%rbp), %rdi
movq -0xbe8(%rbp), %rsi
callq 0x16750
jmp 0x29ad5
leaq -0x98(%rbp), %rdi
callq 0xfee0
movl %eax, -0xbec(%rbp)
leaq 0x36519(%rip), %rsi     # 0x60007
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a79(%rbp)
jmp 0x29b02
movb -0x2a79(%rbp), %al
testb $0x1, %al
jne 0x29b11
jmp 0x29ff9
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a7a(%rbp)
leaq -0xc48(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x29b34
leaq -0xca0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x29b49
leaq -0xcf1(%rbp), %rdi
movq %rdi, -0x2a88(%rbp)
callq 0x6830
movq -0x2a88(%rbp), %rdx
leaq 0x3649d(%rip), %rsi     # 0x60007
leaq -0xcf0(%rbp), %rdi
callq 0xfb20
jmp 0x29b78
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xcd0(%rbp), %rdi
leaq -0xcf0(%rbp), %rsi
callq 0x1bbe0
jmp 0x29b94
movb -0x2a7a(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0xc48(%rbp), %rcx
leaq -0xca0(%rbp), %r8
leaq -0xcd0(%rbp), %r9
callq 0x2d170
jmp 0x29bcf
leaq -0xcd0(%rbp), %rdi
callq 0xfc90
leaq -0xcf0(%rbp), %rdi
callq 0x62d0
leaq -0xcf1(%rbp), %rdi
callq 0x64f0
leaq -0xca0(%rbp), %rdi
callq 0xfd80
leaq -0xc48(%rbp), %rdi
callq 0xfd80
jmp 0x29ff9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29c8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29c76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29c6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x688(%rbp), %rdi
callq 0xfc90
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
leaq -0x6a9(%rbp), %rdi
callq 0x64f0
leaq -0x658(%rbp), %rdi
callq 0xfd80
leaq -0x600(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29d1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29d05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29cf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x790(%rbp), %rdi
callq 0xfc90
leaq -0x7b0(%rbp), %rdi
callq 0x62d0
leaq -0x7b1(%rbp), %rdi
callq 0x64f0
leaq -0x760(%rbp), %rdi
callq 0xfd80
leaq -0x708(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29dac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29d94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29d88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x898(%rbp), %rdi
callq 0xfc90
leaq -0x8b8(%rbp), %rdi
callq 0x62d0
leaq -0x8b9(%rbp), %rdi
callq 0x64f0
leaq -0x868(%rbp), %rdi
callq 0xfd80
leaq -0x810(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29e3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29e23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29e17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x9a0(%rbp), %rdi
callq 0xfc90
leaq -0x9c0(%rbp), %rdi
callq 0x62d0
leaq -0x9c1(%rbp), %rdi
callq 0x64f0
leaq -0x970(%rbp), %rdi
callq 0xfd80
leaq -0x918(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29eca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29eb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29ea6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xaa8(%rbp), %rdi
callq 0xfc90
leaq -0xac8(%rbp), %rdi
callq 0x62d0
leaq -0xac9(%rbp), %rdi
callq 0x64f0
leaq -0xa78(%rbp), %rdi
callq 0xfd80
leaq -0xa20(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29f59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29f41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29f35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xbb0(%rbp), %rdi
callq 0xfc90
leaq -0xbd0(%rbp), %rdi
callq 0x62d0
leaq -0xbd1(%rbp), %rdi
callq 0x64f0
leaq -0xb80(%rbp), %rdi
callq 0xfd80
leaq -0xb28(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29fe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29fd0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x29fc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xcd0(%rbp), %rdi
callq 0xfc90
leaq -0xcf0(%rbp), %rdi
callq 0x62d0
leaq -0xcf1(%rbp), %rdi
callq 0x64f0
leaq -0xca0(%rbp), %rdi
callq 0xfd80
leaq -0xc48(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
leaq 0x3600a(%rip), %rsi     # 0x6000a
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a89(%rbp)
jmp 0x2a014
movb -0x2a89(%rbp), %al
testb $0x1, %al
jne 0x2a023
jmp 0x2a1bb
testb $0x1, -0x15(%rbp)
je 0x2a1bb
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a8a(%rbp)
leaq -0xd50(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a050
leaq -0xda8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a065
leaq -0xdf9(%rbp), %rdi
movq %rdi, -0x2a98(%rbp)
callq 0x6830
movq -0x2a98(%rbp), %rdx
leaq 0x35f84(%rip), %rsi     # 0x6000a
leaq -0xdf8(%rbp), %rdi
callq 0xfb20
jmp 0x2a094
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xdd8(%rbp), %rdi
leaq -0xdf8(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a0b0
movb -0x2a8a(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0xd50(%rbp), %rcx
leaq -0xda8(%rbp), %r8
leaq -0xdd8(%rbp), %r9
callq 0x2d170
jmp 0x2a0eb
leaq -0xdd8(%rbp), %rdi
callq 0xfc90
leaq -0xdf8(%rbp), %rdi
callq 0x62d0
leaq -0xdf9(%rbp), %rdi
callq 0x64f0
leaq -0xda8(%rbp), %rdi
callq 0xfd80
leaq -0xd50(%rbp), %rdi
callq 0xfd80
jmp 0x2a1bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2a1aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2a192
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2a186
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xdd8(%rbp), %rdi
callq 0xfc90
leaq -0xdf8(%rbp), %rdi
callq 0x62d0
leaq -0xdf9(%rbp), %rdi
callq 0x64f0
leaq -0xda8(%rbp), %rdi
callq 0xfd80
leaq -0xd50(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a99(%rbp)
leaq -0xe58(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a1de
leaq -0xeb0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a1f3
leaq -0xf01(%rbp), %rdi
movq %rdi, -0x2aa8(%rbp)
callq 0x6830
movq -0x2aa8(%rbp), %rdx
leaq 0x35df9(%rip), %rsi     # 0x6000d
leaq -0xf00(%rbp), %rdi
callq 0xfb20
jmp 0x2a222
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xee0(%rbp), %rdi
leaq -0xf00(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a23e
movb -0x2a99(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0xe58(%rbp), %rcx
leaq -0xeb0(%rbp), %r8
leaq -0xee0(%rbp), %r9
callq 0x2d170
jmp 0x2a279
leaq -0xee0(%rbp), %rdi
callq 0xfc90
leaq -0xf00(%rbp), %rdi
callq 0x62d0
leaq -0xf01(%rbp), %rdi
callq 0x64f0
leaq -0xeb0(%rbp), %rdi
callq 0xfd80
leaq -0xe58(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2aa9(%rbp)
leaq -0xf60(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a2d8
leaq -0xfb8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a2ed
leaq -0x1009(%rbp), %rdi
movq %rdi, -0x2ab8(%rbp)
callq 0x6830
movq -0x2ab8(%rbp), %rdx
leaq 0x35d02(%rip), %rsi     # 0x60010
leaq -0x1008(%rbp), %rdi
callq 0xfb20
jmp 0x2a31c
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xfe8(%rbp), %rdi
leaq -0x1008(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a338
movb -0x2aa9(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0xf60(%rbp), %rcx
leaq -0xfb8(%rbp), %r8
leaq -0xfe8(%rbp), %r9
callq 0x2d170
jmp 0x2a373
leaq -0xfe8(%rbp), %rdi
callq 0xfc90
leaq -0x1008(%rbp), %rdi
callq 0x62d0
leaq -0x1009(%rbp), %rdi
callq 0x64f0
leaq -0xfb8(%rbp), %rdi
callq 0xfd80
leaq -0xf60(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2ab9(%rbp)
leaq -0x1068(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a3d2
leaq -0x10c0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a3e7
leaq -0x1111(%rbp), %rdi
movq %rdi, -0x2ac8(%rbp)
callq 0x6830
movq -0x2ac8(%rbp), %rdx
leaq 0x35c0b(%rip), %rsi     # 0x60013
leaq -0x1110(%rbp), %rdi
callq 0xfb20
jmp 0x2a416
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x10f0(%rbp), %rdi
leaq -0x1110(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a432
movb -0x2ab9(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1068(%rbp), %rcx
leaq -0x10c0(%rbp), %r8
leaq -0x10f0(%rbp), %r9
callq 0x2d170
jmp 0x2a46d
leaq -0x10f0(%rbp), %rdi
callq 0xfc90
leaq -0x1110(%rbp), %rdi
callq 0x62d0
leaq -0x1111(%rbp), %rdi
callq 0x64f0
leaq -0x10c0(%rbp), %rdi
callq 0xfd80
leaq -0x1068(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2ac9(%rbp)
leaq -0x1170(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a4cc
leaq -0x11c8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a4e1
leaq -0x1219(%rbp), %rdi
movq %rdi, -0x2ad8(%rbp)
callq 0x6830
movq -0x2ad8(%rbp), %rdx
leaq 0x35b14(%rip), %rsi     # 0x60016
leaq -0x1218(%rbp), %rdi
callq 0xfb20
jmp 0x2a510
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x11f8(%rbp), %rdi
leaq -0x1218(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a52c
movb -0x2ac9(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1170(%rbp), %rcx
leaq -0x11c8(%rbp), %r8
leaq -0x11f8(%rbp), %r9
callq 0x2d170
jmp 0x2a567
leaq -0x11f8(%rbp), %rdi
callq 0xfc90
leaq -0x1218(%rbp), %rdi
callq 0x62d0
leaq -0x1219(%rbp), %rdi
callq 0x64f0
leaq -0x11c8(%rbp), %rdi
callq 0xfd80
leaq -0x1170(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2ad9(%rbp)
leaq -0x1278(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a5c6
leaq -0x12d0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a5db
leaq -0x1321(%rbp), %rdi
movq %rdi, -0x2ae8(%rbp)
callq 0x6830
movq -0x2ae8(%rbp), %rdx
leaq 0x35a1d(%rip), %rsi     # 0x60019
leaq -0x1320(%rbp), %rdi
callq 0xfb20
jmp 0x2a60a
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1300(%rbp), %rdi
leaq -0x1320(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a626
movb -0x2ad9(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1278(%rbp), %rcx
leaq -0x12d0(%rbp), %r8
leaq -0x1300(%rbp), %r9
callq 0x2d170
jmp 0x2a661
leaq -0x1300(%rbp), %rdi
callq 0xfc90
leaq -0x1320(%rbp), %rdi
callq 0x62d0
leaq -0x1321(%rbp), %rdi
callq 0x64f0
leaq -0x12d0(%rbp), %rdi
callq 0xfd80
leaq -0x1278(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2ae9(%rbp)
leaq -0x1380(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a6c0
leaq -0x13d8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a6d5
leaq -0x1429(%rbp), %rdi
movq %rdi, -0x2af8(%rbp)
callq 0x6830
movq -0x2af8(%rbp), %rdx
leaq 0x35927(%rip), %rsi     # 0x6001d
leaq -0x1428(%rbp), %rdi
callq 0xfb20
jmp 0x2a704
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1408(%rbp), %rdi
leaq -0x1428(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a720
movb -0x2ae9(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1380(%rbp), %rcx
leaq -0x13d8(%rbp), %r8
leaq -0x1408(%rbp), %r9
callq 0x2d170
jmp 0x2a75b
leaq -0x1408(%rbp), %rdi
callq 0xfc90
leaq -0x1428(%rbp), %rdi
callq 0x62d0
leaq -0x1429(%rbp), %rdi
callq 0x64f0
leaq -0x13d8(%rbp), %rdi
callq 0xfd80
leaq -0x1380(%rbp), %rdi
callq 0xfd80
leaq -0x98(%rbp), %rdi
movq %rdi, -0x2b00(%rbp)
callq 0x12f70
movq %rax, -0x1440(%rbp)
movslq -0xbec(%rbp), %rsi
leaq -0x1440(%rbp), %rdi
callq 0x16820
movq -0x2b00(%rbp), %rdi
movq %rax, -0x1438(%rbp)
callq 0x12de0
movq %rax, -0x1448(%rbp)
movq -0x1438(%rbp), %rdi
movq -0x1448(%rbp), %rsi
callq 0x16750
jmp 0x2a7f3
movl -0xf0(%rbp), %esi
movl %esi, %eax
shrl $0x1f, %eax
addl %eax, %esi
sarl %esi
movl -0xc(%rbp), %eax
imull %eax, %esi
leaq -0xf0(%rbp), %rdi
callq 0xf990
movb %al, -0x2b01(%rbp)
jmp 0x2a81c
movb -0x2b01(%rbp), %al
testb $0x1, %al
jne 0x2b338
jmp 0x2a82c
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b02(%rbp)
leaq -0x14a0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a84f
leaq -0x14f8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a864
leaq -0x1549(%rbp), %rdi
movq %rdi, -0x2b10(%rbp)
callq 0x6830
movq -0x2b10(%rbp), %rdx
leaq 0x35817(%rip), %rsi     # 0x6009c
leaq -0x1548(%rbp), %rdi
callq 0xfb20
jmp 0x2a893
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1528(%rbp), %rdi
leaq -0x1548(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a8af
movb -0x2b02(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x14a0(%rbp), %rcx
leaq -0x14f8(%rbp), %r8
leaq -0x1528(%rbp), %r9
callq 0x2d170
jmp 0x2a8ea
leaq -0x1528(%rbp), %rdi
callq 0xfc90
leaq -0x1548(%rbp), %rdi
callq 0x62d0
leaq -0x1549(%rbp), %rdi
callq 0x64f0
leaq -0x14f8(%rbp), %rdi
callq 0xfd80
leaq -0x14a0(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b11(%rbp)
leaq -0x15a8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2a949
leaq -0x1600(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2a95e
leaq -0x1651(%rbp), %rdi
movq %rdi, -0x2b20(%rbp)
callq 0x6830
movq -0x2b20(%rbp), %rdx
leaq 0x35717(%rip), %rsi     # 0x60096
leaq -0x1650(%rbp), %rdi
callq 0xfb20
jmp 0x2a98d
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1630(%rbp), %rdi
leaq -0x1650(%rbp), %rsi
callq 0x1bbe0
jmp 0x2a9a9
movb -0x2b11(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x15a8(%rbp), %rcx
leaq -0x1600(%rbp), %r8
leaq -0x1630(%rbp), %r9
callq 0x2d170
jmp 0x2a9e4
leaq -0x1630(%rbp), %rdi
callq 0xfc90
leaq -0x1650(%rbp), %rdi
callq 0x62d0
leaq -0x1651(%rbp), %rdi
callq 0x64f0
leaq -0x1600(%rbp), %rdi
callq 0xfd80
leaq -0x15a8(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b21(%rbp)
leaq -0x16b0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2aa43
leaq -0x1708(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2aa58
leaq -0x1759(%rbp), %rdi
movq %rdi, -0x2b30(%rbp)
callq 0x6830
movq -0x2b30(%rbp), %rdx
leaq 0x35620(%rip), %rsi     # 0x60099
leaq -0x1758(%rbp), %rdi
callq 0xfb20
jmp 0x2aa87
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1738(%rbp), %rdi
leaq -0x1758(%rbp), %rsi
callq 0x1bbe0
jmp 0x2aaa3
movb -0x2b21(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x16b0(%rbp), %rcx
leaq -0x1708(%rbp), %r8
leaq -0x1738(%rbp), %r9
callq 0x2d170
jmp 0x2aade
leaq -0x1738(%rbp), %rdi
callq 0xfc90
leaq -0x1758(%rbp), %rdi
callq 0x62d0
leaq -0x1759(%rbp), %rdi
callq 0x64f0
leaq -0x1708(%rbp), %rdi
callq 0xfd80
leaq -0x16b0(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b31(%rbp)
leaq -0x17b8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2ab3d
leaq -0x1810(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2ab52
leaq -0x1861(%rbp), %rdi
movq %rdi, -0x2b40(%rbp)
callq 0x6830
movq -0x2b40(%rbp), %rdx
leaq 0x3552c(%rip), %rsi     # 0x6009f
leaq -0x1860(%rbp), %rdi
callq 0xfb20
jmp 0x2ab81
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1840(%rbp), %rdi
leaq -0x1860(%rbp), %rsi
callq 0x1bbe0
jmp 0x2ab9d
movb -0x2b31(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x17b8(%rbp), %rcx
leaq -0x1810(%rbp), %r8
leaq -0x1840(%rbp), %r9
callq 0x2d170
jmp 0x2abd8
leaq -0x1840(%rbp), %rdi
callq 0xfc90
leaq -0x1860(%rbp), %rdi
callq 0x62d0
leaq -0x1861(%rbp), %rdi
callq 0x64f0
leaq -0x1810(%rbp), %rdi
callq 0xfd80
leaq -0x17b8(%rbp), %rdi
callq 0xfd80
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b41(%rbp)
leaq -0x18c0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x2ac37
leaq -0x1918(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2ac4c
leaq -0x1969(%rbp), %rdi
movq %rdi, -0x2b50(%rbp)
callq 0x6830
movq -0x2b50(%rbp), %rdx
leaq 0x35435(%rip), %rsi     # 0x600a2
leaq -0x1968(%rbp), %rdi
callq 0xfb20
jmp 0x2ac7b
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1948(%rbp), %rdi
leaq -0x1968(%rbp), %rsi
callq 0x1bbe0
jmp 0x2ac97
movb -0x2b41(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x18c0(%rbp), %rcx
leaq -0x1918(%rbp), %r8
leaq -0x1948(%rbp), %r9
callq 0x2d170
jmp 0x2acd2
leaq -0x1948(%rbp), %rdi
callq 0xfc90
leaq -0x1968(%rbp), %rdi
callq 0x62d0
leaq -0x1969(%rbp), %rdi
callq 0x64f0
leaq -0x1918(%rbp), %rdi
callq 0xfd80
leaq -0x18c0(%rbp), %rdi
callq 0xfd80
jmp 0x2b338
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ad91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ad79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ad6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xee0(%rbp), %rdi
callq 0xfc90
leaq -0xf00(%rbp), %rdi
callq 0x62d0
leaq -0xf01(%rbp), %rdi
callq 0x64f0
leaq -0xeb0(%rbp), %rdi
callq 0xfd80
leaq -0xe58(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ae20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ae08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2adfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xfe8(%rbp), %rdi
callq 0xfc90
leaq -0x1008(%rbp), %rdi
callq 0x62d0
leaq -0x1009(%rbp), %rdi
callq 0x64f0
leaq -0xfb8(%rbp), %rdi
callq 0xfd80
leaq -0xf60(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2aeaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ae97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ae8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x10f0(%rbp), %rdi
callq 0xfc90
leaq -0x1110(%rbp), %rdi
callq 0x62d0
leaq -0x1111(%rbp), %rdi
callq 0x64f0
leaq -0x10c0(%rbp), %rdi
callq 0xfd80
leaq -0x1068(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2af3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2af26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2af1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x11f8(%rbp), %rdi
callq 0xfc90
leaq -0x1218(%rbp), %rdi
callq 0x62d0
leaq -0x1219(%rbp), %rdi
callq 0x64f0
leaq -0x11c8(%rbp), %rdi
callq 0xfd80
leaq -0x1170(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2afcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2afb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2afa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1300(%rbp), %rdi
callq 0xfc90
leaq -0x1320(%rbp), %rdi
callq 0x62d0
leaq -0x1321(%rbp), %rdi
callq 0x64f0
leaq -0x12d0(%rbp), %rdi
callq 0xfd80
leaq -0x1278(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b05c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b038
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1408(%rbp), %rdi
callq 0xfc90
leaq -0x1428(%rbp), %rdi
callq 0x62d0
leaq -0x1429(%rbp), %rdi
callq 0x64f0
leaq -0x13d8(%rbp), %rdi
callq 0xfd80
leaq -0x1380(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b0eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b0d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b0c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1528(%rbp), %rdi
callq 0xfc90
leaq -0x1548(%rbp), %rdi
callq 0x62d0
leaq -0x1549(%rbp), %rdi
callq 0x64f0
leaq -0x14f8(%rbp), %rdi
callq 0xfd80
leaq -0x14a0(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b17a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b162
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1630(%rbp), %rdi
callq 0xfc90
leaq -0x1650(%rbp), %rdi
callq 0x62d0
leaq -0x1651(%rbp), %rdi
callq 0x64f0
leaq -0x1600(%rbp), %rdi
callq 0xfd80
leaq -0x15a8(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b209
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b1f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b1e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1738(%rbp), %rdi
callq 0xfc90
leaq -0x1758(%rbp), %rdi
callq 0x62d0
leaq -0x1759(%rbp), %rdi
callq 0x64f0
leaq -0x1708(%rbp), %rdi
callq 0xfd80
leaq -0x16b0(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b298
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b274
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1840(%rbp), %rdi
callq 0xfc90
leaq -0x1860(%rbp), %rdi
callq 0x62d0
leaq -0x1861(%rbp), %rdi
callq 0x64f0
leaq -0x1810(%rbp), %rdi
callq 0xfd80
leaq -0x17b8(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b30f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b303
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1948(%rbp), %rdi
callq 0xfc90
leaq -0x1968(%rbp), %rdi
callq 0x62d0
leaq -0x1969(%rbp), %rdi
callq 0x64f0
leaq -0x1918(%rbp), %rdi
callq 0xfd80
leaq -0x18c0(%rbp), %rdi
callq 0xfd80
jmp 0x2b878
jmp 0x2b424
leaq -0x19c1(%rbp), %rdi
movq %rdi, -0x2b58(%rbp)
callq 0x6830
movq -0x2b58(%rbp), %rdx
leaq 0x34ca6(%rip), %rsi     # 0x60004
leaq -0x19c0(%rbp), %rdi
callq 0xfb20
jmp 0x2b36c
leaq -0x19a0(%rbp), %rdi
leaq -0x19c0(%rbp), %rsi
movl $0x1, %edx
callq 0x1bbe0
jmp 0x2b386
leaq -0x98(%rbp), %rdi
leaq -0x19a0(%rbp), %rsi
callq 0x16860
jmp 0x2b39b
leaq -0x19a0(%rbp), %rdi
callq 0xfc90
leaq -0x19c0(%rbp), %rdi
callq 0x62d0
leaq -0x19c1(%rbp), %rdi
callq 0x64f0
jmp 0x2b424
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b413
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b407
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x19a0(%rbp), %rdi
callq 0xfc90
leaq -0x19c0(%rbp), %rdi
callq 0x62d0
leaq -0x19c1(%rbp), %rdi
callq 0x64f0
jmp 0x2b878
leaq -0x98(%rbp), %rax
movq %rax, -0x19d8(%rbp)
movq -0x19d8(%rbp), %rdi
callq 0x12f70
movq %rax, -0x19e0(%rbp)
movq -0x19d8(%rbp), %rdi
callq 0x12de0
movq %rax, -0x19e8(%rbp)
leaq -0x19e0(%rbp), %rdi
leaq -0x19e8(%rbp), %rsi
callq 0x16890
testb $0x1, %al
jne 0x2b474
jmp 0x2b81d
leaq -0x19e0(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x1a18(%rbp), %rdi
callq 0xfdb0
jmp 0x2b491
leaq -0x1ac8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2b4a6
leaq -0x1af8(%rbp), %rdi
leaq -0x1a18(%rbp), %rsi
callq 0xfdb0
jmp 0x2b4bb
leaq -0x1a70(%rbp), %rdi
leaq -0x1ac8(%rbp), %rsi
leaq -0x1af8(%rbp), %rdx
callq 0x1c440
jmp 0x2b4d7
leaq -0x1af8(%rbp), %rdi
callq 0xfc90
leaq -0x1ac8(%rbp), %rdi
callq 0xfd80
movl -0x1a70(%rbp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, -0x1a70(%rbp)
leaq -0x1b80(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x22ce0
jmp 0x2b519
leaq -0x1bd8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2b52e
leaq -0x1b28(%rbp), %rdi
leaq -0x1b80(%rbp), %rsi
leaq -0x1bd8(%rbp), %rdx
callq 0x1bf30
jmp 0x2b54a
leaq -0x1bd8(%rbp), %rdi
callq 0xfd80
leaq -0x1b80(%rbp), %rdi
callq 0xfd80
movl -0x10(%rbp), %eax
movl %eax, -0x2b60(%rbp)
movl -0x1a18(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c8(%rbp), %ecx
movb %al, -0x2b59(%rbp)
jne 0x2b5bf
movb $0x1, %al
cmpl $0x3, -0x1a18(%rbp)
movb %al, -0x2b61(%rbp)
je 0x2b5b3
movb $0x1, %al
cmpl $0x6, -0x1a18(%rbp)
movb %al, -0x2b61(%rbp)
je 0x2b5b3
cmpl $0xa, -0x1a18(%rbp)
sete %al
movb %al, -0x2b61(%rbp)
movb -0x2b61(%rbp), %al
movb %al, -0x2b59(%rbp)
movl -0x2b60(%rbp), %eax
movb -0x2b59(%rbp), %cl
movzbl %cl, %ecx
andl $0x1, %ecx
subl %ecx, %eax
movl %eax, -0x19c8(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x2b68(%rbp)
leaq -0x1b28(%rbp), %rdi
callq 0x1c680
movb %al, -0x2b62(%rbp)
jmp 0x2b5f6
movl -0x2b68(%rbp), %eax
movb -0x2b62(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
movb -0x291(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
cmpl %edx, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x19cc(%rbp)
cmpl $0x0, -0x19c8(%rbp)
jl 0x2b63d
cmpl $0x0, -0x19cc(%rbp)
jge 0x2b723
movl $0x3, -0x1bdc(%rbp)
jmp 0x2b797
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b80f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b695
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1af8(%rbp), %rdi
callq 0xfc90
leaq -0x1ac8(%rbp), %rdi
callq 0xfd80
jmp 0x2b80f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2b6ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1bd8(%rbp), %rdi
callq 0xfd80
leaq -0x1b80(%rbp), %rdi
callq 0xfd80
jmp 0x2b803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1b28(%rbp), %rdi
callq 0xfc90
jmp 0x2b803
movq -0x20(%rbp), %rdi
leaq -0x1a70(%rbp), %rsi
callq 0xff80
jmp 0x2b735
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
addl %esi, %edi
incl %esi
andl $0x1, %esi
movl -0x19c8(%rbp), %edx
movl -0x19cc(%rbp), %ecx
movq -0x20(%rbp), %r9
movzbl -0x15(%rbp), %r8d
andl $0x1, %r8d
callq 0x28d00
movb %al, -0x2b69(%rbp)
jmp 0x2b768
movb -0x2b69(%rbp), %al
testb $0x1, %al
jne 0x2b774
jmp 0x2b784
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x2b797
movq -0x20(%rbp), %rdi
callq 0x168f0
movl $0x0, -0x1bdc(%rbp)
leaq -0x1b28(%rbp), %rdi
callq 0xfc90
leaq -0x1a70(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2b7c5
jmp 0x2b7bb
movl $0x0, -0x1bdc(%rbp)
leaq -0x1a18(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
movl %eax, -0x2b70(%rbp)
testl %eax, %eax
je 0x2b7f0
jmp 0x2b7e3
movl -0x2b70(%rbp), %eax
subl $0x3, %eax
je 0x2b7f2
jmp 0x2b827
jmp 0x2b7f2
leaq -0x19e0(%rbp), %rdi
callq 0x16920
jmp 0x2b458
leaq -0x1a70(%rbp), %rdi
callq 0xfd80
leaq -0x1a18(%rbp), %rdi
callq 0xfc90
jmp 0x2b878
movl $0x0, -0x1bdc(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x62d0
leaq -0x2c8(%rbp), %rdi
callq 0xfc90
leaq -0x1e0(%rbp), %rdi
callq 0xfc90
leaq -0x1b0(%rbp), %rdi
callq 0xfd80
leaq -0x158(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2d11e
jmp 0x2b873
jmp 0x2d09c
leaq -0x398(%rbp), %rdi
callq 0x62d0
leaq -0x2c8(%rbp), %rdi
callq 0xfc90
leaq -0x1e0(%rbp), %rdi
callq 0xfc90
leaq -0x1b0(%rbp), %rdi
callq 0xfd80
leaq -0x158(%rbp), %rdi
callq 0xfd80
jmp 0x2d138
movl -0x8(%rbp), %eax
movl %eax, -0x2b78(%rbp)
leaq 0x9c1fd1f(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, -0x2b74(%rbp)
jmp 0x2b8d9
movl -0x2b78(%rbp), %eax
movl -0x2b74(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x2cb62
leaq 0x9c1fcf1(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
movl -0x8(%rbp), %eax
decl %eax
movl %eax, %esi
callq 0xfd10
movq %rax, %rsi
leaq -0x1c38(%rbp), %rdi
callq 0x22ce0
jmp 0x2b917
movq -0x20(%rbp), %rdi
callq 0x1b790
movq %rax, %rsi
leaq -0x1c90(%rbp), %rdi
callq 0x22ce0
jmp 0x2b931
leaq -0x1d18(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2b946
leaq -0x1d70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2b95b
leaq -0x1cc0(%rbp), %rdi
leaq -0x1d18(%rbp), %rsi
leaq -0x1d70(%rbp), %rdx
callq 0x1bf30
jmp 0x2b977
leaq -0x1d70(%rbp), %rdi
callq 0xfd80
leaq -0x1d18(%rbp), %rdi
callq 0xfd80
leaq -0x1cc0(%rbp), %rdi
callq 0x1c680
movb %al, -0x2b79(%rbp)
jmp 0x2b9a3
movb -0x2b79(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x1d71(%rbp)
leaq -0x1e00(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2b9c8
leaq -0x1e58(%rbp), %rdi
leaq -0x1c90(%rbp), %rsi
callq 0x22ce0
jmp 0x2b9dd
leaq -0x1da8(%rbp), %rdi
leaq -0x1e00(%rbp), %rsi
leaq -0x1e58(%rbp), %rdx
callq 0x1bf30
jmp 0x2b9f9
leaq -0x1e58(%rbp), %rdi
callq 0xfd80
leaq -0x1e00(%rbp), %rdi
callq 0xfd80
leaq -0x1e78(%rbp), %rdi
leaq -0x1da8(%rbp), %rsi
callq 0x1c100
jmp 0x2ba26
leaq -0xf0(%rbp), %rdi
callq 0x23be0
movb %al, -0x2b7a(%rbp)
jmp 0x2ba3a
movb -0x2b7a(%rbp), %al
testb $0x1, %al
jne 0x2c601
jmp 0x2ba4a
movb -0x1d71(%rbp), %al
movb %al, -0x2b7b(%rbp)
leaq -0x1ed0(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2ba6b
leaq -0x1f28(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2ba80
leaq -0x1f79(%rbp), %rdi
movq %rdi, -0x2b88(%rbp)
callq 0x6830
movq -0x2b88(%rbp), %rdx
leaq 0x34563(%rip), %rsi     # 0x60004
leaq -0x1f78(%rbp), %rdi
callq 0xfb20
jmp 0x2baaf
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1f58(%rbp), %rdi
leaq -0x1f78(%rbp), %rsi
callq 0x1bbe0
jmp 0x2bacb
movb -0x2b7b(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1ed0(%rbp), %rcx
leaq -0x1f28(%rbp), %r8
leaq -0x1f58(%rbp), %r9
callq 0x2d170
jmp 0x2bb09
leaq -0x1f58(%rbp), %rdi
callq 0xfc90
leaq -0x1f78(%rbp), %rdi
callq 0x62d0
leaq -0x1f79(%rbp), %rdi
callq 0x64f0
leaq -0x1f28(%rbp), %rdi
callq 0xfd80
leaq -0x1ed0(%rbp), %rdi
callq 0xfd80
leaq 0x344bb(%rip), %rsi     # 0x60007
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2b89(%rbp)
jmp 0x2bb60
movb -0x2b89(%rbp), %al
testb $0x1, %al
jne 0x2bb6f
jmp 0x2be86
movb -0x1d71(%rbp), %al
movb %al, -0x2b8a(%rbp)
leaq -0x1fd8(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2bb90
leaq -0x2030(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2bba5
leaq -0x2081(%rbp), %rdi
movq %rdi, -0x2b98(%rbp)
callq 0x6830
movq -0x2b98(%rbp), %rdx
leaq 0x34441(%rip), %rsi     # 0x60007
leaq -0x2080(%rbp), %rdi
callq 0xfb20
jmp 0x2bbd4
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2060(%rbp), %rdi
leaq -0x2080(%rbp), %rsi
callq 0x1bbe0
jmp 0x2bbf0
movb -0x2b8a(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x1fd8(%rbp), %rcx
leaq -0x2030(%rbp), %r8
leaq -0x2060(%rbp), %r9
callq 0x2d170
jmp 0x2bc2e
leaq -0x2060(%rbp), %rdi
callq 0xfc90
leaq -0x2080(%rbp), %rdi
callq 0x62d0
leaq -0x2081(%rbp), %rdi
callq 0x64f0
leaq -0x2030(%rbp), %rdi
callq 0xfd80
leaq -0x1fd8(%rbp), %rdi
callq 0xfd80
jmp 0x2be86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cb51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cb45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2bccf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1d70(%rbp), %rdi
callq 0xfd80
leaq -0x1d18(%rbp), %rdi
callq 0xfd80
jmp 0x2cb45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cb39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2bd29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1e58(%rbp), %rdi
callq 0xfd80
leaq -0x1e00(%rbp), %rdi
callq 0xfd80
jmp 0x2cb39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cb2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cb21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2bde6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2bdce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2bdc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1f58(%rbp), %rdi
callq 0xfc90
leaq -0x1f78(%rbp), %rdi
callq 0x62d0
leaq -0x1f79(%rbp), %rdi
callq 0x64f0
leaq -0x1f28(%rbp), %rdi
callq 0xfd80
leaq -0x1ed0(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2be75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2be5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2be51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2060(%rbp), %rdi
callq 0xfc90
leaq -0x2080(%rbp), %rdi
callq 0x62d0
leaq -0x2081(%rbp), %rdi
callq 0x64f0
leaq -0x2030(%rbp), %rdi
callq 0xfd80
leaq -0x1fd8(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
leaq 0x3417d(%rip), %rsi     # 0x6000a
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2b99(%rbp)
jmp 0x2bea1
movb -0x2b99(%rbp), %al
testb $0x1, %al
jne 0x2beb0
jmp 0x2c049
testb $0x1, -0x15(%rbp)
je 0x2c049
movb -0x1d71(%rbp), %al
movb %al, -0x2b9a(%rbp)
leaq -0x20e0(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2bedb
leaq -0x2138(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2bef0
leaq -0x2189(%rbp), %rdi
movq %rdi, -0x2ba8(%rbp)
callq 0x6830
movq -0x2ba8(%rbp), %rdx
leaq 0x340f9(%rip), %rsi     # 0x6000a
leaq -0x2188(%rbp), %rdi
callq 0xfb20
jmp 0x2bf1f
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2168(%rbp), %rdi
leaq -0x2188(%rbp), %rsi
callq 0x1bbe0
jmp 0x2bf3b
movb -0x2b9a(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
movl $0x1, %edi
leaq -0x98(%rbp), %rdx
leaq -0x20e0(%rbp), %rcx
leaq -0x2138(%rbp), %r8
leaq -0x2168(%rbp), %r9
callq 0x2d170
jmp 0x2bf79
leaq -0x2168(%rbp), %rdi
callq 0xfc90
leaq -0x2188(%rbp), %rdi
callq 0x62d0
leaq -0x2189(%rbp), %rdi
callq 0x64f0
leaq -0x2138(%rbp), %rdi
callq 0xfd80
leaq -0x20e0(%rbp), %rdi
callq 0xfd80
jmp 0x2c049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c038
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c020
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c014
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2168(%rbp), %rdi
callq 0xfc90
leaq -0x2188(%rbp), %rdi
callq 0x62d0
leaq -0x2189(%rbp), %rdi
callq 0x64f0
leaq -0x2138(%rbp), %rdi
callq 0xfd80
leaq -0x20e0(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
leaq -0x98(%rbp), %rdi
movq %rdi, -0x2bb0(%rbp)
callq 0x12f70
movq -0x2bb0(%rbp), %rdi
movq %rax, -0x2198(%rbp)
callq 0x12de0
movq %rax, -0x21a0(%rbp)
movq -0x2198(%rbp), %rdi
movq -0x21a0(%rbp), %rsi
callq 0x16750
jmp 0x2c08b
leaq -0x98(%rbp), %rdi
callq 0xfee0
movl %eax, -0x21a4(%rbp)
movb -0x1d71(%rbp), %al
xorb $0x1, %al
movb %al, -0x2bb1(%rbp)
leaq -0x2200(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2c0c0
leaq -0x2258(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2c0d5
leaq -0x22a9(%rbp), %rdi
movq %rdi, -0x2bc0(%rbp)
callq 0x6830
movq -0x2bc0(%rbp), %rdx
leaq 0x33f0e(%rip), %rsi     # 0x60004
leaq -0x22a8(%rbp), %rdi
callq 0xfb20
jmp 0x2c104
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2288(%rbp), %rdi
leaq -0x22a8(%rbp), %rsi
callq 0x1bbe0
jmp 0x2c120
movb -0x2bb1(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x2200(%rbp), %rcx
leaq -0x2258(%rbp), %r8
leaq -0x2288(%rbp), %r9
callq 0x2d170
jmp 0x2c15b
leaq -0x2288(%rbp), %rdi
callq 0xfc90
leaq -0x22a8(%rbp), %rdi
callq 0x62d0
leaq -0x22a9(%rbp), %rdi
callq 0x64f0
leaq -0x2258(%rbp), %rdi
callq 0xfd80
leaq -0x2200(%rbp), %rdi
callq 0xfd80
leaq 0x33e69(%rip), %rsi     # 0x60007
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2bc1(%rbp)
jmp 0x2c1b2
movb -0x2bc1(%rbp), %al
testb $0x1, %al
jne 0x2c1c1
jmp 0x2c3de
movb -0x1d71(%rbp), %al
xorb $0x1, %al
movb %al, -0x2bc2(%rbp)
leaq -0x2308(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2c1e4
leaq -0x2360(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2c1f9
leaq -0x23b1(%rbp), %rdi
movq %rdi, -0x2bd0(%rbp)
callq 0x6830
movq -0x2bd0(%rbp), %rdx
leaq 0x33ded(%rip), %rsi     # 0x60007
leaq -0x23b0(%rbp), %rdi
callq 0xfb20
jmp 0x2c228
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2390(%rbp), %rdi
leaq -0x23b0(%rbp), %rsi
callq 0x1bbe0
jmp 0x2c244
movb -0x2bc2(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x2308(%rbp), %rcx
leaq -0x2360(%rbp), %r8
leaq -0x2390(%rbp), %r9
callq 0x2d170
jmp 0x2c27f
leaq -0x2390(%rbp), %rdi
callq 0xfc90
leaq -0x23b0(%rbp), %rdi
callq 0x62d0
leaq -0x23b1(%rbp), %rdi
callq 0x64f0
leaq -0x2360(%rbp), %rdi
callq 0xfd80
leaq -0x2308(%rbp), %rdi
callq 0xfd80
jmp 0x2c3de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c33e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c326
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c31a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2288(%rbp), %rdi
callq 0xfc90
leaq -0x22a8(%rbp), %rdi
callq 0x62d0
leaq -0x22a9(%rbp), %rdi
callq 0x64f0
leaq -0x2258(%rbp), %rdi
callq 0xfd80
leaq -0x2200(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c3cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c3b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c3a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2390(%rbp), %rdi
callq 0xfc90
leaq -0x23b0(%rbp), %rdi
callq 0x62d0
leaq -0x23b1(%rbp), %rdi
callq 0x64f0
leaq -0x2360(%rbp), %rdi
callq 0xfd80
leaq -0x2308(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
leaq 0x33c25(%rip), %rsi     # 0x6000a
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2bd1(%rbp)
jmp 0x2c3f9
movb -0x2bd1(%rbp), %al
testb $0x1, %al
jne 0x2c408
jmp 0x2c5a0
testb $0x1, -0x15(%rbp)
je 0x2c5a0
movb -0x1d71(%rbp), %al
xorb $0x1, %al
movb %al, -0x2bd2(%rbp)
leaq -0x2410(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x2c435
leaq -0x2468(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2c44a
leaq -0x24b9(%rbp), %rdi
movq %rdi, -0x2be0(%rbp)
callq 0x6830
movq -0x2be0(%rbp), %rdx
leaq 0x33b9f(%rip), %rsi     # 0x6000a
leaq -0x24b8(%rbp), %rdi
callq 0xfb20
jmp 0x2c479
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2498(%rbp), %rdi
leaq -0x24b8(%rbp), %rsi
callq 0x1bbe0
jmp 0x2c495
movb -0x2bd2(%rbp), %al
movq -0x20(%rbp), %rdx
movq %rsp, %rcx
movq %rdx, (%rcx)
movzbl %al, %esi
andl $0x1, %esi
xorl %edi, %edi
leaq -0x98(%rbp), %rdx
leaq -0x2410(%rbp), %rcx
leaq -0x2468(%rbp), %r8
leaq -0x2498(%rbp), %r9
callq 0x2d170
jmp 0x2c4d0
leaq -0x2498(%rbp), %rdi
callq 0xfc90
leaq -0x24b8(%rbp), %rdi
callq 0x62d0
leaq -0x24b9(%rbp), %rdi
callq 0x64f0
leaq -0x2468(%rbp), %rdi
callq 0xfd80
leaq -0x2410(%rbp), %rdi
callq 0xfd80
jmp 0x2c5a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c58f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c577
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c56b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2498(%rbp), %rdi
callq 0xfc90
leaq -0x24b8(%rbp), %rdi
callq 0x62d0
leaq -0x24b9(%rbp), %rdi
callq 0x64f0
leaq -0x2468(%rbp), %rdi
callq 0xfd80
leaq -0x2410(%rbp), %rdi
callq 0xfd80
jmp 0x2cb21
leaq -0x98(%rbp), %rdi
movq %rdi, -0x2be8(%rbp)
callq 0x12f70
movq %rax, -0x24d0(%rbp)
movslq -0x21a4(%rbp), %rsi
leaq -0x24d0(%rbp), %rdi
callq 0x16820
movq -0x2be8(%rbp), %rdi
movq %rax, -0x24c8(%rbp)
callq 0x12de0
movq %rax, -0x24d8(%rbp)
movq -0x24c8(%rbp), %rdi
movq -0x24d8(%rbp), %rsi
callq 0x16750
jmp 0x2c5fc
jmp 0x2c6e8
leaq -0x2529(%rbp), %rdi
movq %rdi, -0x2bf0(%rbp)
callq 0x6830
movq -0x2bf0(%rbp), %rdx
leaq 0x339e2(%rip), %rsi     # 0x60004
leaq -0x2528(%rbp), %rdi
callq 0xfb20
jmp 0x2c630
leaq -0x2508(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
movl $0x1, %edx
callq 0x1bbe0
jmp 0x2c64a
leaq -0x98(%rbp), %rdi
leaq -0x2508(%rbp), %rsi
callq 0x16860
jmp 0x2c65f
leaq -0x2508(%rbp), %rdi
callq 0xfc90
leaq -0x2528(%rbp), %rdi
callq 0x62d0
leaq -0x2529(%rbp), %rdi
callq 0x64f0
jmp 0x2c6e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c6d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c6cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2508(%rbp), %rdi
callq 0xfc90
leaq -0x2528(%rbp), %rdi
callq 0x62d0
leaq -0x2529(%rbp), %rdi
callq 0x64f0
jmp 0x2cb21
leaq -0x98(%rbp), %rax
movq %rax, -0x2540(%rbp)
movq -0x2540(%rbp), %rdi
callq 0x12f70
movq %rax, -0x2548(%rbp)
movq -0x2540(%rbp), %rdi
callq 0x12de0
movq %rax, -0x2550(%rbp)
leaq -0x2548(%rbp), %rdi
leaq -0x2550(%rbp), %rsi
callq 0x16890
testb $0x1, %al
jne 0x2c738
jmp 0x2cac6
leaq -0x2548(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x2580(%rbp), %rdi
callq 0xfdb0
jmp 0x2c755
leaq -0x2630(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2c76a
leaq -0x2660(%rbp), %rdi
leaq -0x2580(%rbp), %rsi
callq 0xfdb0
jmp 0x2c77f
leaq -0x25d8(%rbp), %rdi
leaq -0x2630(%rbp), %rsi
leaq -0x2660(%rbp), %rdx
callq 0x1c440
jmp 0x2c79b
leaq -0x2660(%rbp), %rdi
callq 0xfc90
leaq -0x2630(%rbp), %rdi
callq 0xfd80
leaq -0x26e8(%rbp), %rdi
leaq -0x1c90(%rbp), %rsi
callq 0x22ce0
jmp 0x2c7c8
leaq -0x2740(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2c7dd
leaq -0x2690(%rbp), %rdi
leaq -0x26e8(%rbp), %rsi
leaq -0x2740(%rbp), %rdx
callq 0x1bf30
jmp 0x2c7f9
leaq -0x2740(%rbp), %rdi
callq 0xfd80
leaq -0x26e8(%rbp), %rdi
callq 0xfd80
movl -0x10(%rbp), %eax
movl %eax, -0x2bf8(%rbp)
movl -0x2580(%rbp), %ecx
xorl %eax, %eax
cmpl -0x1da8(%rbp), %ecx
movb %al, -0x2bf1(%rbp)
jne 0x2c86e
movb $0x1, %al
cmpl $0x3, -0x2580(%rbp)
movb %al, -0x2bf9(%rbp)
je 0x2c862
movb $0x1, %al
cmpl $0x6, -0x2580(%rbp)
movb %al, -0x2bf9(%rbp)
je 0x2c862
cmpl $0xa, -0x2580(%rbp)
sete %al
movb %al, -0x2bf9(%rbp)
movb -0x2bf9(%rbp), %al
movb %al, -0x2bf1(%rbp)
movl -0x2bf8(%rbp), %eax
movb -0x2bf1(%rbp), %cl
movzbl %cl, %ecx
andl $0x1, %ecx
subl %ecx, %eax
movl %eax, -0x2530(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x2c00(%rbp)
leaq -0x2690(%rbp), %rdi
callq 0x1c680
movb %al, -0x2bfa(%rbp)
jmp 0x2c8a5
movl -0x2c00(%rbp), %eax
movb -0x2bfa(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
movb -0x1d71(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
cmpl %edx, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x2534(%rbp)
cmpl $0x0, -0x2530(%rbp)
jl 0x2c8ec
cmpl $0x0, -0x2534(%rbp)
jge 0x2c9d2
movl $0x5, -0x1bdc(%rbp)
jmp 0x2ca40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cab8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c944
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2660(%rbp), %rdi
callq 0xfc90
leaq -0x2630(%rbp), %rdi
callq 0xfd80
jmp 0x2cab8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2caac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2c99e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2740(%rbp), %rdi
callq 0xfd80
leaq -0x26e8(%rbp), %rdi
callq 0xfd80
jmp 0x2caac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2690(%rbp), %rdi
callq 0xfc90
jmp 0x2caac
movq -0x20(%rbp), %rdi
leaq -0x25d8(%rbp), %rsi
callq 0xff80
jmp 0x2c9e4
movl -0x8(%rbp), %edi
incl %edi
movl -0x2530(%rbp), %edx
movl -0x2534(%rbp), %ecx
movq -0x20(%rbp), %r9
movzbl -0x15(%rbp), %r8d
andl $0x1, %r8d
xorl %esi, %esi
callq 0x28d00
movb %al, -0x2c01(%rbp)
jmp 0x2ca11
movb -0x2c01(%rbp), %al
testb $0x1, %al
jne 0x2ca1d
jmp 0x2ca2d
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x2ca40
movq -0x20(%rbp), %rdi
callq 0x168f0
movl $0x0, -0x1bdc(%rbp)
leaq -0x2690(%rbp), %rdi
callq 0xfc90
leaq -0x25d8(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2ca6e
jmp 0x2ca64
movl $0x0, -0x1bdc(%rbp)
leaq -0x2580(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
movl %eax, -0x2c08(%rbp)
testl %eax, %eax
je 0x2ca99
jmp 0x2ca8c
movl -0x2c08(%rbp), %eax
subl $0x5, %eax
je 0x2ca9b
jmp 0x2cad0
jmp 0x2ca9b
leaq -0x2548(%rbp), %rdi
callq 0x16920
jmp 0x2c71c
leaq -0x25d8(%rbp), %rdi
callq 0xfd80
leaq -0x2580(%rbp), %rdi
callq 0xfc90
jmp 0x2cb21
movl $0x0, -0x1bdc(%rbp)
leaq -0x1e78(%rbp), %rdi
callq 0x62d0
leaq -0x1da8(%rbp), %rdi
callq 0xfc90
leaq -0x1cc0(%rbp), %rdi
callq 0xfc90
leaq -0x1c90(%rbp), %rdi
callq 0xfd80
leaq -0x1c38(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2d11e
jmp 0x2cb1c
jmp 0x2d09a
leaq -0x1e78(%rbp), %rdi
callq 0x62d0
leaq -0x1da8(%rbp), %rdi
callq 0xfc90
leaq -0x1cc0(%rbp), %rdi
callq 0xfc90
leaq -0x1c90(%rbp), %rdi
callq 0xfd80
leaq -0x1c38(%rbp), %rdi
callq 0xfd80
jmp 0x2d138
leaq -0x2791(%rbp), %rdi
movq %rdi, -0x2c10(%rbp)
callq 0x6830
movq -0x2c10(%rbp), %rdx
leaq 0x33481(%rip), %rsi     # 0x60004
leaq -0x2790(%rbp), %rdi
callq 0xfb20
jmp 0x2cb91
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2770(%rbp), %rdi
leaq -0x2790(%rbp), %rsi
callq 0x1bbe0
jmp 0x2cbad
leaq -0x98(%rbp), %rdi
leaq -0x2770(%rbp), %rsi
callq 0x16860
jmp 0x2cbc2
leaq -0x2770(%rbp), %rdi
callq 0xfc90
leaq -0x2790(%rbp), %rdi
callq 0x62d0
leaq -0x2791(%rbp), %rdi
callq 0x64f0
leaq -0x27e9(%rbp), %rdi
movq %rdi, -0x2c18(%rbp)
callq 0x6830
movq -0x2c18(%rbp), %rdx
leaq 0x33400(%rip), %rsi     # 0x60007
leaq -0x27e8(%rbp), %rdi
callq 0xfb20
jmp 0x2cc15
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x27c8(%rbp), %rdi
leaq -0x27e8(%rbp), %rsi
callq 0x1bbe0
jmp 0x2cc31
leaq -0x98(%rbp), %rdi
leaq -0x27c8(%rbp), %rsi
callq 0x16860
jmp 0x2cc46
leaq -0x27c8(%rbp), %rdi
callq 0xfc90
leaq -0x27e8(%rbp), %rdi
callq 0x62d0
leaq -0x27e9(%rbp), %rdi
callq 0x64f0
testb $0x1, -0x15(%rbp)
je 0x2ce26
leaq -0x2841(%rbp), %rdi
movq %rdi, -0x2c20(%rbp)
callq 0x6830
movq -0x2c20(%rbp), %rdx
leaq 0x33375(%rip), %rsi     # 0x6000a
leaq -0x2840(%rbp), %rdi
callq 0xfb20
jmp 0x2cca3
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2820(%rbp), %rdi
leaq -0x2840(%rbp), %rsi
callq 0x1bbe0
jmp 0x2ccbf
leaq -0x98(%rbp), %rdi
leaq -0x2820(%rbp), %rsi
callq 0x16860
jmp 0x2ccd4
leaq -0x2820(%rbp), %rdi
callq 0xfc90
leaq -0x2840(%rbp), %rdi
callq 0x62d0
leaq -0x2841(%rbp), %rdi
callq 0x64f0
jmp 0x2ce26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cd4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cd43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2770(%rbp), %rdi
callq 0xfc90
leaq -0x2790(%rbp), %rdi
callq 0x62d0
leaq -0x2791(%rbp), %rdi
callq 0x64f0
jmp 0x2d138
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cdb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cda6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x27c8(%rbp), %rdi
callq 0xfc90
leaq -0x27e8(%rbp), %rdi
callq 0x62d0
leaq -0x27e9(%rbp), %rdi
callq 0x64f0
jmp 0x2d138
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ce15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2ce09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2820(%rbp), %rdi
callq 0xfc90
leaq -0x2840(%rbp), %rdi
callq 0x62d0
leaq -0x2841(%rbp), %rdi
callq 0x64f0
jmp 0x2d138
leaq -0x98(%rbp), %rdi
movq %rdi, -0x2c28(%rbp)
callq 0x12f70
movq -0x2c28(%rbp), %rdi
movq %rax, -0x2850(%rbp)
callq 0x12de0
movq %rax, -0x2858(%rbp)
movq -0x2850(%rbp), %rdi
movq -0x2858(%rbp), %rsi
callq 0x16750
jmp 0x2ce68
leaq -0x98(%rbp), %rax
movq %rax, -0x2860(%rbp)
movq -0x2860(%rbp), %rdi
callq 0x12f70
movq %rax, -0x2868(%rbp)
movq -0x2860(%rbp), %rdi
callq 0x12de0
movq %rax, -0x2870(%rbp)
leaq -0x2868(%rbp), %rdi
leaq -0x2870(%rbp), %rsi
callq 0x16890
testb $0x1, %al
jne 0x2ceb8
jmp 0x2d098
leaq -0x2868(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x28a0(%rbp), %rdi
callq 0xfdb0
jmp 0x2ced5
leaq -0x2950(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x2ceea
leaq -0x2980(%rbp), %rdi
leaq -0x28a0(%rbp), %rsi
callq 0xfdb0
jmp 0x2ceff
leaq -0x28f8(%rbp), %rdi
leaq -0x2950(%rbp), %rsi
leaq -0x2980(%rbp), %rdx
callq 0x1c440
jmp 0x2cf1b
leaq -0x2980(%rbp), %rdi
callq 0xfc90
leaq -0x2950(%rbp), %rdi
callq 0xfd80
movl -0x28f8(%rbp), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, -0x28f8(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x28f8(%rbp), %rsi
callq 0xff80
jmp 0x2cf5a
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
addl %esi, %edi
incl %esi
andl $0x1, %esi
movl -0x10(%rbp), %edx
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %r9
movzbl -0x15(%rbp), %r8d
andl $0x1, %r8d
callq 0x28d00
movb %al, -0x2c29(%rbp)
jmp 0x2cf87
movb -0x2c29(%rbp), %al
testb $0x1, %al
jne 0x2cf96
jmp 0x2d023
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x2d036
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2d087
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x2cff2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2980(%rbp), %rdi
callq 0xfc90
leaq -0x2950(%rbp), %rdi
callq 0xfd80
jmp 0x2d087
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x28f8(%rbp), %rdi
callq 0xfd80
jmp 0x2d087
movq -0x20(%rbp), %rdi
callq 0x168f0
movl $0x0, -0x1bdc(%rbp)
leaq -0x28f8(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2d058
jmp 0x2d04e
movl $0x0, -0x1bdc(%rbp)
leaq -0x28a0(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x2d11e
jmp 0x2d074
jmp 0x2d076
leaq -0x2868(%rbp), %rdi
callq 0x16920
jmp 0x2ce9c
leaq -0x28a0(%rbp), %rdi
callq 0xfc90
jmp 0x2d138
jmp 0x2d09a
jmp 0x2d09c
movl -0x8(%rbp), %eax
imulq $0x1081c8, %rax, %rcx   # imm = 0x1081C8
leaq 0x55843(%rip), %rax     # 0x828f0
addq %rcx, %rax
movl -0xc(%rbp), %ecx
imulq $0x42072, %rcx, %rcx    # imm = 0x42072
addq %rcx, %rax
movq %rax, -0x2c38(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x29d8(%rbp), %rdi
callq 0x2ddf0
jmp 0x2d0d6
movq -0x2c38(%rbp), %rax
movslq -0x298c(%rbp), %rcx
imulq $0xbbd, %rcx, %rcx      # imm = 0xBBD
addq %rcx, %rax
movslq -0x10(%rbp), %rcx
imulq $0x259, %rcx, %rcx      # imm = 0x259
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
movb $0x0, (%rax,%rcx)
leaq -0x29d8(%rbp), %rdi
callq 0xfd80
movb $0x0, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0xfd80
leaq -0x98(%rbp), %rdi
callq 0x10050
jmp 0x2d152
leaq -0xf0(%rbp), %rdi
callq 0xfd80
leaq -0x98(%rbp), %rdi
callq 0x10050
jmp 0x2d160
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x2c40, %rsp           # imm = 0x2C40
popq %rbp
retq
movq -0xf8(%rbp), %rdi
callq 0x6820
nopl (%rax)