// File: 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
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 0x5a240
leaq 0x286cb(%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 0x9bf1398(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, %ecx
movl -0x29dc(%rbp), %eax
cmpl %ecx, %eax
jb 0x5a26d
movb $0x1, -0x1(%rbp)
jmp 0x5e664
movl -0x8(%rbp), %ecx
addl -0xc(%rbp), %ecx
movb $0x0, -0x79(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x29dd(%rbp)
je 0x5a2f1
movl -0x8(%rbp), %eax
movl %eax, %ecx
leaq 0x28660(%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 0x5a305
jmp 0x5a30e
leaq -0x78(%rbp), %rdi
callq 0xfd80
movb -0x29e9(%rbp), %al
testb $0x1, %al
jne 0x5a31a
jmp 0x5a323
movb $0x0, -0x1(%rbp)
jmp 0x5e664
leaq -0x98(%rbp), %rdi
callq 0xfcb0
leaq 0x9bf12b2(%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 0x5a354
cmpl $0x0, -0x8(%rbp)
jne 0x5a364
cmpl $0x0, -0xc(%rbp)
je 0x5cdbc
movl -0x8(%rbp), %eax
movl %eax, -0x29f4(%rbp)
leaq 0x9bf1274(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, -0x29f0(%rbp)
jmp 0x5a384
movl -0x29f4(%rbp), %eax
movl -0x29f0(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jae 0x5cdbc
leaq 0x9bf1246(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
movl -0x8(%rbp), %eax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
sbbl $-0x1, %eax
decl %eax
movl %eax, %esi
callq 0xfd10
movq %rax, %rsi
leaq -0x158(%rbp), %rdi
callq 0x22ce0
jmp 0x5a3cb
movq -0x20(%rbp), %rdi
callq 0x1b790
movq %rax, %rsi
leaq -0x1b0(%rbp), %rdi
callq 0x22ce0
jmp 0x5a3e5
leaq -0x238(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5a3fa
leaq -0x290(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5a40f
leaq -0x1e0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
leaq -0x290(%rbp), %rdx
callq 0x1bf30
jmp 0x5a42b
leaq -0x290(%rbp), %rdi
callq 0xfd80
leaq -0x238(%rbp), %rdi
callq 0xfd80
leaq -0x1e0(%rbp), %rdi
callq 0x1c680
movb %al, -0x29f5(%rbp)
jmp 0x5a457
movb -0x29f5(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x291(%rbp)
leaq -0x320(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5a47c
leaq -0x378(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x22ce0
jmp 0x5a491
leaq -0x2c8(%rbp), %rdi
leaq -0x320(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0x1bf30
jmp 0x5a4ad
leaq -0x378(%rbp), %rdi
callq 0xfd80
leaq -0x320(%rbp), %rdi
callq 0xfd80
leaq -0x398(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x1c100
jmp 0x5a4da
leaq -0xf0(%rbp), %rdi
callq 0x23be0
movb %al, -0x29f6(%rbp)
jmp 0x5a4ee
movb -0x29f6(%rbp), %al
testb $0x1, %al
jne 0x5c831
jmp 0x5a4fe
leaq 0x5b02(%rip), %rsi      # 0x60007
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x29f7(%rbp)
jmp 0x5a519
movb -0x29f7(%rbp), %al
testb $0x1, %al
jne 0x5a528
jmp 0x5a7de
movb -0x291(%rbp), %al
movb %al, -0x29f8(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5a549
leaq -0x448(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5a55e
leaq -0x499(%rbp), %rdi
movq %rdi, -0x2a00(%rbp)
callq 0x6830
movq -0x2a00(%rbp), %rdx
leaq 0x5a88(%rip), %rsi      # 0x60007
leaq -0x498(%rbp), %rdi
callq 0xfb20
jmp 0x5a58d
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x478(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0x1bbe0
jmp 0x5a5a9
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 0x5e680
jmp 0x5a5e7
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 0x5a7de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e64a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cdab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a6b6
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 0x5cd9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a710
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 0x5cd93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a7cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a7b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a7a9
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 0x5cd7b
leaq 0x5825(%rip), %rsi      # 0x6000a
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a01(%rbp)
jmp 0x5a7f9
movb -0x2a01(%rbp), %al
testb $0x1, %al
jne 0x5a808
jmp 0x5a9a1
testb $0x1, -0x15(%rbp)
je 0x5a9a1
movb -0x291(%rbp), %al
movb %al, -0x2a02(%rbp)
leaq -0x4f8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5a833
leaq -0x550(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5a848
leaq -0x5a1(%rbp), %rdi
movq %rdi, -0x2a10(%rbp)
callq 0x6830
movq -0x2a10(%rbp), %rdx
leaq 0x57a1(%rip), %rsi      # 0x6000a
leaq -0x5a0(%rbp), %rdi
callq 0xfb20
jmp 0x5a877
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x580(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5a893
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 0x5e680
jmp 0x5a8d1
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 0x5a9a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5a96c
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 0x5cd7b
movb -0x291(%rbp), %al
movb %al, -0x2a11(%rbp)
leaq -0x600(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5a9c2
leaq -0x658(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5a9d7
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x2a20(%rbp)
callq 0x6830
movq -0x2a20(%rbp), %rdx
leaq 0x5615(%rip), %rsi      # 0x6000d
leaq -0x6a8(%rbp), %rdi
callq 0xfb20
jmp 0x5aa06
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x688(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5aa22
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 0x5e680
jmp 0x5aa60
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 0x5aabd
leaq -0x760(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5aad2
leaq -0x7b1(%rbp), %rdi
movq %rdi, -0x2a30(%rbp)
callq 0x6830
movq -0x2a30(%rbp), %rdx
leaq 0x551d(%rip), %rsi      # 0x60010
leaq -0x7b0(%rbp), %rdi
callq 0xfb20
jmp 0x5ab01
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x790(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5ab1d
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 0x5e680
jmp 0x5ab5b
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 0x5abb8
leaq -0x868(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5abcd
leaq -0x8b9(%rbp), %rdi
movq %rdi, -0x2a40(%rbp)
callq 0x6830
movq -0x2a40(%rbp), %rdx
leaq 0x5425(%rip), %rsi      # 0x60013
leaq -0x8b8(%rbp), %rdi
callq 0xfb20
jmp 0x5abfc
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x898(%rbp), %rdi
leaq -0x8b8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5ac18
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 0x5e680
jmp 0x5ac56
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 0x5acb3
leaq -0x970(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5acc8
leaq -0x9c1(%rbp), %rdi
movq %rdi, -0x2a50(%rbp)
callq 0x6830
movq -0x2a50(%rbp), %rdx
leaq 0x532d(%rip), %rsi      # 0x60016
leaq -0x9c0(%rbp), %rdi
callq 0xfb20
jmp 0x5acf7
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x9a0(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5ad13
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 0x5e680
jmp 0x5ad51
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 0x5adae
leaq -0xa78(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5adc3
leaq -0xac9(%rbp), %rdi
movq %rdi, -0x2a60(%rbp)
callq 0x6830
movq -0x2a60(%rbp), %rdx
leaq 0x5235(%rip), %rsi      # 0x60019
leaq -0xac8(%rbp), %rdi
callq 0xfb20
jmp 0x5adf2
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xaa8(%rbp), %rdi
leaq -0xac8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5ae0e
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 0x5e680
jmp 0x5ae4c
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 0x5aea9
leaq -0xb80(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5aebe
leaq -0xbd1(%rbp), %rdi
movq %rdi, -0x2a70(%rbp)
callq 0x6830
movq -0x2a70(%rbp), %rdx
leaq 0x513e(%rip), %rsi      # 0x6001d
leaq -0xbd0(%rbp), %rdi
callq 0xfb20
jmp 0x5aeed
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xbb0(%rbp), %rdi
leaq -0xbd0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5af09
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 0x5e680
jmp 0x5af47
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 0x5afc5
leaq -0x98(%rbp), %rdi
callq 0xfee0
movl %eax, -0xbec(%rbp)
leaq 0x5029(%rip), %rsi      # 0x60007
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a79(%rbp)
jmp 0x5aff2
movb -0x2a79(%rbp), %al
testb $0x1, %al
jne 0x5b001
jmp 0x5b4e9
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a7a(%rbp)
leaq -0xc48(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5b024
leaq -0xca0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b039
leaq -0xcf1(%rbp), %rdi
movq %rdi, -0x2a88(%rbp)
callq 0x6830
movq -0x2a88(%rbp), %rdx
leaq 0x4fad(%rip), %rsi      # 0x60007
leaq -0xcf0(%rbp), %rdi
callq 0xfb20
jmp 0x5b068
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xcd0(%rbp), %rdi
leaq -0xcf0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5b084
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 0x5e680
jmp 0x5b0bf
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 0x5b4e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b17e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b166
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b15a
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b20d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b1f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b1e9
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b29c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b284
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b278
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b32b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b313
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b307
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b3ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b3a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b396
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b449
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b431
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b425
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b4d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b4c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b4b4
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 0x5cd7b
leaq 0x4b1a(%rip), %rsi      # 0x6000a
leaq -0x398(%rbp), %rdi
callq 0xfe70
movb %al, -0x2a89(%rbp)
jmp 0x5b504
movb -0x2a89(%rbp), %al
testb $0x1, %al
jne 0x5b513
jmp 0x5b6ab
testb $0x1, -0x15(%rbp)
je 0x5b6ab
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a8a(%rbp)
leaq -0xd50(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5b540
leaq -0xda8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b555
leaq -0xdf9(%rbp), %rdi
movq %rdi, -0x2a98(%rbp)
callq 0x6830
movq -0x2a98(%rbp), %rdx
leaq 0x4a94(%rip), %rsi      # 0x6000a
leaq -0xdf8(%rbp), %rdi
callq 0xfb20
jmp 0x5b584
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xdd8(%rbp), %rdi
leaq -0xdf8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5b5a0
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 0x5e680
jmp 0x5b5db
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 0x5b6ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b69a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b682
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5b676
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 0x5cd7b
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2a99(%rbp)
leaq -0xe58(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5b6ce
leaq -0xeb0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b6e3
leaq -0xf01(%rbp), %rdi
movq %rdi, -0x2aa8(%rbp)
callq 0x6830
movq -0x2aa8(%rbp), %rdx
leaq 0x4909(%rip), %rsi      # 0x6000d
leaq -0xf00(%rbp), %rdi
callq 0xfb20
jmp 0x5b712
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xee0(%rbp), %rdi
leaq -0xf00(%rbp), %rsi
callq 0x1bbe0
jmp 0x5b72e
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 0x5e680
jmp 0x5b769
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 0x5b7c8
leaq -0xfb8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b7dd
leaq -0x1009(%rbp), %rdi
movq %rdi, -0x2ab8(%rbp)
callq 0x6830
movq -0x2ab8(%rbp), %rdx
leaq 0x4812(%rip), %rsi      # 0x60010
leaq -0x1008(%rbp), %rdi
callq 0xfb20
jmp 0x5b80c
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0xfe8(%rbp), %rdi
leaq -0x1008(%rbp), %rsi
callq 0x1bbe0
jmp 0x5b828
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 0x5e680
jmp 0x5b863
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 0x5b8c2
leaq -0x10c0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b8d7
leaq -0x1111(%rbp), %rdi
movq %rdi, -0x2ac8(%rbp)
callq 0x6830
movq -0x2ac8(%rbp), %rdx
leaq 0x471b(%rip), %rsi      # 0x60013
leaq -0x1110(%rbp), %rdi
callq 0xfb20
jmp 0x5b906
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x10f0(%rbp), %rdi
leaq -0x1110(%rbp), %rsi
callq 0x1bbe0
jmp 0x5b922
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 0x5e680
jmp 0x5b95d
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 0x5b9bc
leaq -0x11c8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5b9d1
leaq -0x1219(%rbp), %rdi
movq %rdi, -0x2ad8(%rbp)
callq 0x6830
movq -0x2ad8(%rbp), %rdx
leaq 0x4624(%rip), %rsi      # 0x60016
leaq -0x1218(%rbp), %rdi
callq 0xfb20
jmp 0x5ba00
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x11f8(%rbp), %rdi
leaq -0x1218(%rbp), %rsi
callq 0x1bbe0
jmp 0x5ba1c
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 0x5e680
jmp 0x5ba57
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 0x5bab6
leaq -0x12d0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5bacb
leaq -0x1321(%rbp), %rdi
movq %rdi, -0x2ae8(%rbp)
callq 0x6830
movq -0x2ae8(%rbp), %rdx
leaq 0x452d(%rip), %rsi      # 0x60019
leaq -0x1320(%rbp), %rdi
callq 0xfb20
jmp 0x5bafa
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1300(%rbp), %rdi
leaq -0x1320(%rbp), %rsi
callq 0x1bbe0
jmp 0x5bb16
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 0x5e680
jmp 0x5bb51
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 0x5bbb0
leaq -0x13d8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5bbc5
leaq -0x1429(%rbp), %rdi
movq %rdi, -0x2af8(%rbp)
callq 0x6830
movq -0x2af8(%rbp), %rdx
leaq 0x4437(%rip), %rsi      # 0x6001d
leaq -0x1428(%rbp), %rdi
callq 0xfb20
jmp 0x5bbf4
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1408(%rbp), %rdi
leaq -0x1428(%rbp), %rsi
callq 0x1bbe0
jmp 0x5bc10
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 0x5e680
jmp 0x5bc4b
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 0x5bce3
movl -0xf0(%rbp), %esi
movl %esi, %eax
addl $0x3, %eax
testl %esi, %esi
cmovsl %eax, %esi
sarl $0x2, %esi
movl -0xc(%rbp), %eax
imull %eax, %esi
leaq -0xf0(%rbp), %rdi
callq 0xf990
movb %al, -0x2b01(%rbp)
jmp 0x5bd10
movb -0x2b01(%rbp), %al
testb $0x1, %al
jne 0x5c82c
jmp 0x5bd20
movb -0x291(%rbp), %al
xorb $0x1, %al
movb %al, -0x2b02(%rbp)
leaq -0x14a0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x22ce0
jmp 0x5bd43
leaq -0x14f8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5bd58
leaq -0x1549(%rbp), %rdi
movq %rdi, -0x2b10(%rbp)
callq 0x6830
movq -0x2b10(%rbp), %rdx
leaq 0x4323(%rip), %rsi      # 0x6009c
leaq -0x1548(%rbp), %rdi
callq 0xfb20
jmp 0x5bd87
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1528(%rbp), %rdi
leaq -0x1548(%rbp), %rsi
callq 0x1bbe0
jmp 0x5bda3
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 0x5e680
jmp 0x5bdde
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 0x5be3d
leaq -0x1600(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5be52
leaq -0x1651(%rbp), %rdi
movq %rdi, -0x2b20(%rbp)
callq 0x6830
movq -0x2b20(%rbp), %rdx
leaq 0x4223(%rip), %rsi      # 0x60096
leaq -0x1650(%rbp), %rdi
callq 0xfb20
jmp 0x5be81
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1630(%rbp), %rdi
leaq -0x1650(%rbp), %rsi
callq 0x1bbe0
jmp 0x5be9d
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 0x5e680
jmp 0x5bed8
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 0x5bf37
leaq -0x1708(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5bf4c
leaq -0x1759(%rbp), %rdi
movq %rdi, -0x2b30(%rbp)
callq 0x6830
movq -0x2b30(%rbp), %rdx
leaq 0x412c(%rip), %rsi      # 0x60099
leaq -0x1758(%rbp), %rdi
callq 0xfb20
jmp 0x5bf7b
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1738(%rbp), %rdi
leaq -0x1758(%rbp), %rsi
callq 0x1bbe0
jmp 0x5bf97
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 0x5e680
jmp 0x5bfd2
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 0x5c031
leaq -0x1810(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5c046
leaq -0x1861(%rbp), %rdi
movq %rdi, -0x2b40(%rbp)
callq 0x6830
movq -0x2b40(%rbp), %rdx
leaq 0x4038(%rip), %rsi      # 0x6009f
leaq -0x1860(%rbp), %rdi
callq 0xfb20
jmp 0x5c075
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1840(%rbp), %rdi
leaq -0x1860(%rbp), %rsi
callq 0x1bbe0
jmp 0x5c091
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 0x5e680
jmp 0x5c0cc
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 0x5c12b
leaq -0x1918(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5c140
leaq -0x1969(%rbp), %rdi
movq %rdi, -0x2b50(%rbp)
callq 0x6830
movq -0x2b50(%rbp), %rdx
leaq 0x3f41(%rip), %rsi      # 0x600a2
leaq -0x1968(%rbp), %rdi
callq 0xfb20
jmp 0x5c16f
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1948(%rbp), %rdi
leaq -0x1968(%rbp), %rsi
callq 0x1bbe0
jmp 0x5c18b
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 0x5e680
jmp 0x5c1c6
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 0x5c82c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c285
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c26d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c261
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c314
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c2fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c2f0
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c3a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c38b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c37f
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c432
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c41a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c40e
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c4c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c4a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c49d
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c550
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c538
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c52c
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c5df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c5c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c5bb
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c66e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c64a
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c6fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c6e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c6d9
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c78c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c774
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c768
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 0x5cd7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c81b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c7f7
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 0x5cd7b
jmp 0x5c918
leaq -0x19c1(%rbp), %rdi
movq %rdi, -0x2b58(%rbp)
callq 0x6830
movq -0x2b58(%rbp), %rdx
leaq 0x37b2(%rip), %rsi      # 0x60004
leaq -0x19c0(%rbp), %rdi
callq 0xfb20
jmp 0x5c860
leaq -0x19a0(%rbp), %rdi
leaq -0x19c0(%rbp), %rsi
movl $0x1, %edx
callq 0x1bbe0
jmp 0x5c87a
leaq -0x98(%rbp), %rdi
leaq -0x19a0(%rbp), %rsi
callq 0x16860
jmp 0x5c88f
leaq -0x19a0(%rbp), %rdi
callq 0xfc90
leaq -0x19c0(%rbp), %rdi
callq 0x62d0
leaq -0x19c1(%rbp), %rdi
callq 0x64f0
jmp 0x5c918
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c907
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5c8fb
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 0x5cd7b
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 0x5c968
jmp 0x5cd20
leaq -0x19e0(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x1a18(%rbp), %rdi
callq 0xfdb0
jmp 0x5c985
leaq -0x1ac8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5c99a
leaq -0x1af8(%rbp), %rdi
leaq -0x1a18(%rbp), %rsi
callq 0xfdb0
jmp 0x5c9af
leaq -0x1a70(%rbp), %rdi
leaq -0x1ac8(%rbp), %rsi
leaq -0x1af8(%rbp), %rdx
callq 0x1c440
jmp 0x5c9cb
leaq -0x1af8(%rbp), %rdi
callq 0xfc90
leaq -0x1ac8(%rbp), %rdi
callq 0xfd80
movl -0x1a70(%rbp), %eax
movl %eax, %ecx
addl $0x3, %ecx
testl %eax, %eax
cmovsl %ecx, %eax
sarl $0x2, %eax
movl %eax, -0x1a70(%rbp)
leaq -0x1b80(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x22ce0
jmp 0x5ca11
leaq -0x1bd8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5ca26
leaq -0x1b28(%rbp), %rdi
leaq -0x1b80(%rbp), %rsi
leaq -0x1bd8(%rbp), %rdx
callq 0x1bf30
jmp 0x5ca42
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 0x5cab7
movb $0x1, %al
cmpl $0x3, -0x1a18(%rbp)
movb %al, -0x2b61(%rbp)
je 0x5caab
movb $0x1, %al
cmpl $0x6, -0x1a18(%rbp)
movb %al, -0x2b61(%rbp)
je 0x5caab
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 0x5caee
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 0x5cb35
cmpl $0x0, -0x19cc(%rbp)
jge 0x5cc1b
movl $0x3, -0x1bdc(%rbp)
jmp 0x5cc9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cb8d
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 0x5cd12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cd06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5cbe7
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 0x5cd06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x1b28(%rbp), %rdi
callq 0xfc90
jmp 0x5cd06
movq -0x20(%rbp), %rdi
leaq -0x1a70(%rbp), %rsi
callq 0xff80
jmp 0x5cc2d
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movl %esi, %eax
subl $0x3, %eax
sete %al
movzbl %al, %eax
addl %eax, %edi
incl %esi
andl $0x3, %esi
movl -0x19c8(%rbp), %edx
movl -0x19cc(%rbp), %ecx
movq -0x20(%rbp), %r9
movzbl -0x15(%rbp), %r8d
andl $0x1, %r8d
callq 0x5a1f0
movb %al, -0x2b69(%rbp)
jmp 0x5cc6b
movb -0x2b69(%rbp), %al
testb $0x1, %al
jne 0x5cc77
jmp 0x5cc87
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x5cc9a
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 0x5ccc8
jmp 0x5ccbe
movl $0x0, -0x1bdc(%rbp)
leaq -0x1a18(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
movl %eax, -0x2b70(%rbp)
testl %eax, %eax
je 0x5ccf3
jmp 0x5cce6
movl -0x2b70(%rbp), %eax
subl $0x3, %eax
je 0x5ccf5
jmp 0x5cd2a
jmp 0x5ccf5
leaq -0x19e0(%rbp), %rdi
callq 0x16920
jmp 0x5c94c
leaq -0x1a70(%rbp), %rdi
callq 0xfd80
leaq -0x1a18(%rbp), %rdi
callq 0xfc90
jmp 0x5cd7b
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 0x5e630
jmp 0x5cd76
jmp 0x5e5ae
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 0x5e64a
movl -0x8(%rbp), %eax
movl %eax, -0x2b78(%rbp)
leaq 0x9bee81c(%rip), %rax   # 0x9c4b5e8
movq (%rax), %rdi
callq 0x2dd40
movl %eax, -0x2b74(%rbp)
jmp 0x5cddc
movl -0x2b78(%rbp), %eax
movl -0x2b74(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5e065
leaq 0x9bee7ee(%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 0x5ce1a
movq -0x20(%rbp), %rdi
callq 0x1b790
movq %rax, %rsi
leaq -0x1c90(%rbp), %rdi
callq 0x22ce0
jmp 0x5ce34
leaq -0x1d18(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5ce49
leaq -0x1d70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5ce5e
leaq -0x1cc0(%rbp), %rdi
leaq -0x1d18(%rbp), %rsi
leaq -0x1d70(%rbp), %rdx
callq 0x1bf30
jmp 0x5ce7a
leaq -0x1d70(%rbp), %rdi
callq 0xfd80
leaq -0x1d18(%rbp), %rdi
callq 0xfd80
leaq -0x1cc0(%rbp), %rdi
callq 0x1c680
movb %al, -0x2b79(%rbp)
jmp 0x5cea6
movb -0x2b79(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x1d71(%rbp)
leaq -0x1e00(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5cecb
leaq -0x1e58(%rbp), %rdi
leaq -0x1c90(%rbp), %rsi
callq 0x22ce0
jmp 0x5cee0
leaq -0x1da8(%rbp), %rdi
leaq -0x1e00(%rbp), %rsi
leaq -0x1e58(%rbp), %rdx
callq 0x1bf30
jmp 0x5cefc
leaq -0x1e58(%rbp), %rdi
callq 0xfd80
leaq -0x1e00(%rbp), %rdi
callq 0xfd80
leaq -0x1e78(%rbp), %rdi
leaq -0x1da8(%rbp), %rsi
callq 0x1c100
jmp 0x5cf29
leaq -0xf0(%rbp), %rdi
callq 0x23be0
movb %al, -0x2b7a(%rbp)
jmp 0x5cf3d
movb -0x2b7a(%rbp), %al
testb $0x1, %al
jne 0x5db04
jmp 0x5cf4d
movb -0x1d71(%rbp), %al
movb %al, -0x2b7b(%rbp)
leaq -0x1ed0(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5cf6e
leaq -0x1f28(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5cf83
leaq -0x1f79(%rbp), %rdi
movq %rdi, -0x2b88(%rbp)
callq 0x6830
movq -0x2b88(%rbp), %rdx
leaq 0x3060(%rip), %rsi      # 0x60004
leaq -0x1f78(%rbp), %rdi
callq 0xfb20
jmp 0x5cfb2
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x1f58(%rbp), %rdi
leaq -0x1f78(%rbp), %rsi
callq 0x1bbe0
jmp 0x5cfce
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 0x5e680
jmp 0x5d00c
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 0x2fb8(%rip), %rsi      # 0x60007
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2b89(%rbp)
jmp 0x5d063
movb -0x2b89(%rbp), %al
testb $0x1, %al
jne 0x5d072
jmp 0x5d389
movb -0x1d71(%rbp), %al
movb %al, -0x2b8a(%rbp)
leaq -0x1fd8(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5d093
leaq -0x2030(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5d0a8
leaq -0x2081(%rbp), %rdi
movq %rdi, -0x2b98(%rbp)
callq 0x6830
movq -0x2b98(%rbp), %rdx
leaq 0x2f3e(%rip), %rsi      # 0x60007
leaq -0x2080(%rbp), %rdi
callq 0xfb20
jmp 0x5d0d7
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2060(%rbp), %rdi
leaq -0x2080(%rbp), %rsi
callq 0x1bbe0
jmp 0x5d0f3
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 0x5e680
jmp 0x5d131
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 0x5d389
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e048
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d1d2
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 0x5e048
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e03c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d22c
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 0x5e03c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e030
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d2e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d2d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d2c5
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 0x5e024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d360
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d354
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 0x5e024
leaq 0x2c7a(%rip), %rsi      # 0x6000a
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2b99(%rbp)
jmp 0x5d3a4
movb -0x2b99(%rbp), %al
testb $0x1, %al
jne 0x5d3b3
jmp 0x5d54c
testb $0x1, -0x15(%rbp)
je 0x5d54c
movb -0x1d71(%rbp), %al
movb %al, -0x2b9a(%rbp)
leaq -0x20e0(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5d3de
leaq -0x2138(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5d3f3
leaq -0x2189(%rbp), %rdi
movq %rdi, -0x2ba8(%rbp)
callq 0x6830
movq -0x2ba8(%rbp), %rdx
leaq 0x2bf6(%rip), %rsi      # 0x6000a
leaq -0x2188(%rbp), %rdi
callq 0xfb20
jmp 0x5d422
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2168(%rbp), %rdi
leaq -0x2188(%rbp), %rsi
callq 0x1bbe0
jmp 0x5d43e
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 0x5e680
jmp 0x5d47c
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 0x5d54c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d53b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d523
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d517
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 0x5e024
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 0x5d58e
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 0x5d5c3
leaq -0x2258(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5d5d8
leaq -0x22a9(%rbp), %rdi
movq %rdi, -0x2bc0(%rbp)
callq 0x6830
movq -0x2bc0(%rbp), %rdx
leaq 0x2a0b(%rip), %rsi      # 0x60004
leaq -0x22a8(%rbp), %rdi
callq 0xfb20
jmp 0x5d607
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2288(%rbp), %rdi
leaq -0x22a8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5d623
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 0x5e680
jmp 0x5d65e
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 0x2966(%rip), %rsi      # 0x60007
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2bc1(%rbp)
jmp 0x5d6b5
movb -0x2bc1(%rbp), %al
testb $0x1, %al
jne 0x5d6c4
jmp 0x5d8e1
movb -0x1d71(%rbp), %al
xorb $0x1, %al
movb %al, -0x2bc2(%rbp)
leaq -0x2308(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5d6e7
leaq -0x2360(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5d6fc
leaq -0x23b1(%rbp), %rdi
movq %rdi, -0x2bd0(%rbp)
callq 0x6830
movq -0x2bd0(%rbp), %rdx
leaq 0x28ea(%rip), %rsi      # 0x60007
leaq -0x23b0(%rbp), %rdi
callq 0xfb20
jmp 0x5d72b
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2390(%rbp), %rdi
leaq -0x23b0(%rbp), %rsi
callq 0x1bbe0
jmp 0x5d747
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 0x5e680
jmp 0x5d782
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 0x5d8e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d841
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d81d
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 0x5e024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d8d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d8b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5d8ac
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 0x5e024
leaq 0x2722(%rip), %rsi      # 0x6000a
leaq -0x1e78(%rbp), %rdi
callq 0xfe70
movb %al, -0x2bd1(%rbp)
jmp 0x5d8fc
movb -0x2bd1(%rbp), %al
testb $0x1, %al
jne 0x5d90b
jmp 0x5daa3
testb $0x1, -0x15(%rbp)
je 0x5daa3
movb -0x1d71(%rbp), %al
xorb $0x1, %al
movb %al, -0x2bd2(%rbp)
leaq -0x2410(%rbp), %rdi
leaq -0x1c38(%rbp), %rsi
callq 0x22ce0
jmp 0x5d938
leaq -0x2468(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5d94d
leaq -0x24b9(%rbp), %rdi
movq %rdi, -0x2be0(%rbp)
callq 0x6830
movq -0x2be0(%rbp), %rdx
leaq 0x269c(%rip), %rsi      # 0x6000a
leaq -0x24b8(%rbp), %rdi
callq 0xfb20
jmp 0x5d97c
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2498(%rbp), %rdi
leaq -0x24b8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5d998
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 0x5e680
jmp 0x5d9d3
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 0x5daa3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5da92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5da7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5da6e
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 0x5e024
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 0x5daff
jmp 0x5dbeb
leaq -0x2529(%rbp), %rdi
movq %rdi, -0x2bf0(%rbp)
callq 0x6830
movq -0x2bf0(%rbp), %rdx
leaq 0x24df(%rip), %rsi      # 0x60004
leaq -0x2528(%rbp), %rdi
callq 0xfb20
jmp 0x5db33
leaq -0x2508(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
movl $0x1, %edx
callq 0x1bbe0
jmp 0x5db4d
leaq -0x98(%rbp), %rdi
leaq -0x2508(%rbp), %rsi
callq 0x16860
jmp 0x5db62
leaq -0x2508(%rbp), %rdi
callq 0xfc90
leaq -0x2528(%rbp), %rdi
callq 0x62d0
leaq -0x2529(%rbp), %rdi
callq 0x64f0
jmp 0x5dbeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5dbda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5dbce
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 0x5e024
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 0x5dc3b
jmp 0x5dfc9
leaq -0x2548(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x2580(%rbp), %rdi
callq 0xfdb0
jmp 0x5dc58
leaq -0x2630(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5dc6d
leaq -0x2660(%rbp), %rdi
leaq -0x2580(%rbp), %rsi
callq 0xfdb0
jmp 0x5dc82
leaq -0x25d8(%rbp), %rdi
leaq -0x2630(%rbp), %rsi
leaq -0x2660(%rbp), %rdx
callq 0x1c440
jmp 0x5dc9e
leaq -0x2660(%rbp), %rdi
callq 0xfc90
leaq -0x2630(%rbp), %rdi
callq 0xfd80
leaq -0x26e8(%rbp), %rdi
leaq -0x1c90(%rbp), %rsi
callq 0x22ce0
jmp 0x5dccb
leaq -0x2740(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5dce0
leaq -0x2690(%rbp), %rdi
leaq -0x26e8(%rbp), %rsi
leaq -0x2740(%rbp), %rdx
callq 0x1bf30
jmp 0x5dcfc
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 0x5dd71
movb $0x1, %al
cmpl $0x3, -0x2580(%rbp)
movb %al, -0x2bf9(%rbp)
je 0x5dd65
movb $0x1, %al
cmpl $0x6, -0x2580(%rbp)
movb %al, -0x2bf9(%rbp)
je 0x5dd65
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 0x5dda8
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 0x5ddef
cmpl $0x0, -0x2534(%rbp)
jge 0x5ded5
movl $0x5, -0x1bdc(%rbp)
jmp 0x5df43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5dfbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5de47
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 0x5dfbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5dfaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5dea1
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 0x5dfaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x2690(%rbp), %rdi
callq 0xfc90
jmp 0x5dfaf
movq -0x20(%rbp), %rdi
leaq -0x25d8(%rbp), %rsi
callq 0xff80
jmp 0x5dee7
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 0x5a1f0
movb %al, -0x2c01(%rbp)
jmp 0x5df14
movb -0x2c01(%rbp), %al
testb $0x1, %al
jne 0x5df20
jmp 0x5df30
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x5df43
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 0x5df71
jmp 0x5df67
movl $0x0, -0x1bdc(%rbp)
leaq -0x2580(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
movl %eax, -0x2c08(%rbp)
testl %eax, %eax
je 0x5df9c
jmp 0x5df8f
movl -0x2c08(%rbp), %eax
subl $0x5, %eax
je 0x5df9e
jmp 0x5dfd3
jmp 0x5df9e
leaq -0x2548(%rbp), %rdi
callq 0x16920
jmp 0x5dc1f
leaq -0x25d8(%rbp), %rdi
callq 0xfd80
leaq -0x2580(%rbp), %rdi
callq 0xfc90
jmp 0x5e024
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 0x5e630
jmp 0x5e01f
jmp 0x5e5ac
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 0x5e64a
leaq -0x2791(%rbp), %rdi
movq %rdi, -0x2c10(%rbp)
callq 0x6830
movq -0x2c10(%rbp), %rdx
leaq 0x1f7e(%rip), %rsi      # 0x60004
leaq -0x2790(%rbp), %rdi
callq 0xfb20
jmp 0x5e094
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2770(%rbp), %rdi
leaq -0x2790(%rbp), %rsi
callq 0x1bbe0
jmp 0x5e0b0
leaq -0x98(%rbp), %rdi
leaq -0x2770(%rbp), %rsi
callq 0x16860
jmp 0x5e0c5
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 0x1efd(%rip), %rsi      # 0x60007
leaq -0x27e8(%rbp), %rdi
callq 0xfb20
jmp 0x5e118
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x27c8(%rbp), %rdi
leaq -0x27e8(%rbp), %rsi
callq 0x1bbe0
jmp 0x5e134
leaq -0x98(%rbp), %rdi
leaq -0x27c8(%rbp), %rsi
callq 0x16860
jmp 0x5e149
leaq -0x27c8(%rbp), %rdi
callq 0xfc90
leaq -0x27e8(%rbp), %rdi
callq 0x62d0
leaq -0x27e9(%rbp), %rdi
callq 0x64f0
testb $0x1, -0x15(%rbp)
je 0x5e329
leaq -0x2841(%rbp), %rdi
movq %rdi, -0x2c20(%rbp)
callq 0x6830
movq -0x2c20(%rbp), %rdx
leaq 0x1e72(%rip), %rsi      # 0x6000a
leaq -0x2840(%rbp), %rdi
callq 0xfb20
jmp 0x5e1a6
movzbl -0x15(%rbp), %edx
andl $0x1, %edx
leaq -0x2820(%rbp), %rdi
leaq -0x2840(%rbp), %rsi
callq 0x1bbe0
jmp 0x5e1c2
leaq -0x98(%rbp), %rdi
leaq -0x2820(%rbp), %rsi
callq 0x16860
jmp 0x5e1d7
leaq -0x2820(%rbp), %rdi
callq 0xfc90
leaq -0x2840(%rbp), %rdi
callq 0x62d0
leaq -0x2841(%rbp), %rdi
callq 0x64f0
jmp 0x5e329
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e252
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e246
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 0x5e64a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e2b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e2a9
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 0x5e64a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e318
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e30c
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 0x5e64a
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 0x5e36b
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 0x5e3bb
jmp 0x5e5aa
leaq -0x2868(%rbp), %rdi
callq 0x168d0
movq %rax, %rsi
leaq -0x28a0(%rbp), %rdi
callq 0xfdb0
jmp 0x5e3d8
leaq -0x2950(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22ce0
jmp 0x5e3ed
leaq -0x2980(%rbp), %rdi
leaq -0x28a0(%rbp), %rsi
callq 0xfdb0
jmp 0x5e402
leaq -0x28f8(%rbp), %rdi
leaq -0x2950(%rbp), %rsi
leaq -0x2980(%rbp), %rdx
callq 0x1c440
jmp 0x5e41e
leaq -0x2980(%rbp), %rdi
callq 0xfc90
leaq -0x2950(%rbp), %rdi
callq 0xfd80
movl -0x28f8(%rbp), %eax
movl %eax, %ecx
addl $0x3, %ecx
testl %eax, %eax
cmovsl %ecx, %eax
sarl $0x2, %eax
movl %eax, -0x28f8(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x28f8(%rbp), %rsi
callq 0xff80
jmp 0x5e461
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movl %esi, %eax
subl $0x3, %eax
sete %al
movzbl %al, %eax
addl %eax, %edi
incl %esi
andl $0x3, %esi
movl -0x10(%rbp), %edx
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %r9
movzbl -0x15(%rbp), %r8d
andl $0x1, %r8d
callq 0x5a1f0
movb %al, -0x2c29(%rbp)
jmp 0x5e499
movb -0x2c29(%rbp), %al
testb $0x1, %al
jne 0x5e4a8
jmp 0x5e535
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1bdc(%rbp)
jmp 0x5e548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x5e504
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 0x5e599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x28f8(%rbp), %rdi
callq 0xfd80
jmp 0x5e599
movq -0x20(%rbp), %rdi
callq 0x168f0
movl $0x0, -0x1bdc(%rbp)
leaq -0x28f8(%rbp), %rdi
callq 0xfd80
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x5e56a
jmp 0x5e560
movl $0x0, -0x1bdc(%rbp)
leaq -0x28a0(%rbp), %rdi
callq 0xfc90
movl -0x1bdc(%rbp), %eax
testl %eax, %eax
jne 0x5e630
jmp 0x5e586
jmp 0x5e588
leaq -0x2868(%rbp), %rdi
callq 0x16920
jmp 0x5e39f
leaq -0x28a0(%rbp), %rdi
callq 0xfc90
jmp 0x5e64a
jmp 0x5e5ac
jmp 0x5e5ae
movl -0x8(%rbp), %eax
imulq $0x1081c8, %rax, %rcx   # imm = 0x1081C8
leaq 0x24331(%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 0x5e5e8
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 0x5e664
leaq -0xf0(%rbp), %rdi
callq 0xfd80
leaq -0x98(%rbp), %rdi
callq 0x10050
jmp 0x5e672
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x2c40, %rsp           # imm = 0x2C40
popq %rbp
retq
movq -0xf8(%rbp), %rdi
callq 0x6820
nop