// File: joao18araujo[P]pierluigi/src/counterpoint.cpp
// Function: Counterpoint::generate_first_species_counterpoint(Song&, bool)
vector<Note> Counterpoint::generate_first_species_counterpoint(Song & c_song, bool ascendant){
  song = &c_song;
  vector <Note> counterpoint;
  vector<Interval> consonant_intervals {Interval("P1", ascendant), Interval("P8", ascendant), Interval("P5", ascendant), Interval("m3", ascendant), Interval("M3", ascendant), Interval("m6", ascendant), Interval("M6", ascendant), Interval("m10", ascendant), Interval("M10", ascendant)};
  vector<Interval> perfect_consonant_intervals {Interval("P1", ascendant), Interval("P8", ascendant), Interval("P5", ascendant)};
  vector<Interval> imperfect_consonant_intervals { Interval("m3", ascendant), Interval("M3", ascendant), Interval("m6", ascendant), Interval("M6", ascendant), Interval("m10", ascendant), Interval("M10", ascendant)};

  vector<Interval> possible_intervals;

  srand(clock());

  int count_imperfects = 0;

  Interval current_interval, previous_interval, interval;
  Interval melodic_cantus_interval, melodic_counterpoint_interval;
  Note previous_note;
  Note counterpoint_note;
  Note previous_counterpoint_note;

  int times_not_reversed = 0;
  for(unsigned i = 0; i < song->size(); ++i){
    possible_intervals.clear();
    auto note = song->notes[i];

    melodic_cantus_interval = Interval(previous_note, note);
    bool reverse_movement = true;

    begin:
    bool melodic_ascendant = melodic_cantus_interval.ascendant();
    if(reverse_movement) melodic_ascendant = !melodic_ascendant;

    string previous = previous_interval.description();
    if(i == 0 || i == song->size() - 1){
      interval = Interval("P1", ascendant);
      counterpoint_note = Interval::interval_to_note(note, interval);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("P1", ascendant), nullptr);
    }else if(count_imperfects < 4){
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("m3", ascendant), nullptr);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("M3", ascendant), nullptr);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("m6", ascendant), nullptr);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("M6", ascendant), nullptr);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("m10", ascendant), nullptr);
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("M10", ascendant), nullptr);
    }

    if(previous != "P5" && previous != "P8"){
      analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("P8", ascendant), nullptr);
      if(ascendant)
        analyse_and_add_interval(reverse_movement, melodic_ascendant, possible_intervals, previous_counterpoint_note, note, Interval("P5", ascendant), nullptr);
    }

    if(possible_intervals.empty() && reverse_movement && times_not_reversed++ < 3){
      reverse_movement = false;
      goto begin;
    }

    if(possible_intervals.empty()) return vector<Note>();
    int index = rand() % possible_intervals.size();

    current_interval = possible_intervals[index];
    counterpoint_note = Interval::interval_to_note(note, current_interval);
    if(note.valid) counterpoint.push_back(counterpoint_note);

    string interval_qualitative = current_interval.qualitative;
    if(interval_qualitative == "M" || interval_qualitative == "m")
      count_imperfects++;
    else
      count_imperfects = 0;

    previous_interval = current_interval;
    previous_note = note;
    previous_counterpoint_note = counterpoint_note;
  }

  return counterpoint;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x18d0, %rsp           # imm = 0x18D0
movq %rdi, -0x1620(%rbp)
movb %dl, %al
movq %rdi, %rcx
movq %rcx, -0x1618(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rax
movq %rax, 0x9c3e9e2(%rip)   # 0x9c4b5e8
leaq -0x30(%rbp), %rdi
callq 0xfb00
movb $0x1, -0x382(%rbp)
leaq -0x208(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x231(%rbp), %rdi
movq %rdi, -0x1610(%rbp)
callq 0x6830
movq -0x1610(%rbp), %rdx
leaq 0x533bf(%rip), %rsi     # 0x60004
leaq -0x230(%rbp), %rdi
callq 0xfb20
jmp 0xcc53
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x208(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1bbe0
jmp 0xcc6f
leaq -0x1d8(%rbp), %rax
movq %rax, -0x1630(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x269(%rbp), %rdi
movq %rdi, -0x1628(%rbp)
callq 0x6830
movq -0x1628(%rbp), %rdx
leaq 0x53362(%rip), %rsi     # 0x60007
leaq -0x268(%rbp), %rdi
callq 0xfb20
jmp 0xccb3
movq -0x1630(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x268(%rbp), %rsi
callq 0x1bbe0
jmp 0xcccf
leaq -0x1a8(%rbp), %rax
movq %rax, -0x1640(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x291(%rbp), %rdi
movq %rdi, -0x1638(%rbp)
callq 0x6830
movq -0x1638(%rbp), %rdx
leaq 0x53305(%rip), %rsi     # 0x6000a
leaq -0x290(%rbp), %rdi
callq 0xfb20
jmp 0xcd13
movq -0x1640(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x290(%rbp), %rsi
callq 0x1bbe0
jmp 0xcd2f
leaq -0x178(%rbp), %rax
movq %rax, -0x1650(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x1648(%rbp)
callq 0x6830
movq -0x1648(%rbp), %rdx
leaq 0x532a8(%rip), %rsi     # 0x6000d
leaq -0x2b8(%rbp), %rdi
callq 0xfb20
jmp 0xcd73
movq -0x1650(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x2b8(%rbp), %rsi
callq 0x1bbe0
jmp 0xcd8f
leaq -0x148(%rbp), %rax
movq %rax, -0x1660(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x2e1(%rbp), %rdi
movq %rdi, -0x1658(%rbp)
callq 0x6830
movq -0x1658(%rbp), %rdx
leaq 0x5324b(%rip), %rsi     # 0x60010
leaq -0x2e0(%rbp), %rdi
callq 0xfb20
jmp 0xcdd3
movq -0x1660(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x2e0(%rbp), %rsi
callq 0x1bbe0
jmp 0xcdef
leaq -0x118(%rbp), %rax
movq %rax, -0x1670(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x309(%rbp), %rdi
movq %rdi, -0x1668(%rbp)
callq 0x6830
movq -0x1668(%rbp), %rdx
leaq 0x531ee(%rip), %rsi     # 0x60013
leaq -0x308(%rbp), %rdi
callq 0xfb20
jmp 0xce33
movq -0x1670(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x308(%rbp), %rsi
callq 0x1bbe0
jmp 0xce4f
leaq -0xe8(%rbp), %rax
movq %rax, -0x1680(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x331(%rbp), %rdi
movq %rdi, -0x1678(%rbp)
callq 0x6830
movq -0x1678(%rbp), %rdx
leaq 0x53191(%rip), %rsi     # 0x60016
leaq -0x330(%rbp), %rdi
callq 0xfb20
jmp 0xce93
movq -0x1680(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x330(%rbp), %rsi
callq 0x1bbe0
jmp 0xceaf
leaq -0xb8(%rbp), %rax
movq %rax, -0x1690(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x359(%rbp), %rdi
movq %rdi, -0x1688(%rbp)
callq 0x6830
movq -0x1688(%rbp), %rdx
leaq 0x53134(%rip), %rsi     # 0x60019
leaq -0x358(%rbp), %rdi
callq 0xfb20
jmp 0xcef3
movq -0x1690(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x358(%rbp), %rsi
callq 0x1bbe0
jmp 0xcf0f
leaq -0x88(%rbp), %rax
movq %rax, -0x16a0(%rbp)
movq %rax, -0x210(%rbp)
leaq -0x381(%rbp), %rdi
movq %rdi, -0x1698(%rbp)
callq 0x6830
movq -0x1698(%rbp), %rdx
leaq 0x530d8(%rip), %rsi     # 0x6001d
leaq -0x380(%rbp), %rdi
callq 0xfb20
jmp 0xcf53
movq -0x16a0(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x380(%rbp), %rsi
callq 0x1bbe0
jmp 0xcf6f
movb $0x0, -0x382(%rbp)
leaq -0x208(%rbp), %rax
movq %rax, -0x58(%rbp)
movq $0x9, -0x50(%rbp)
leaq -0x383(%rbp), %rdi
movq %rdi, -0x16a8(%rbp)
callq 0xfbd0
movq -0x16a8(%rbp), %rcx
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x48(%rbp), %rdi
callq 0xfbf0
jmp 0xcfb6
leaq -0x383(%rbp), %rdi
callq 0xfc70
leaq -0x208(%rbp), %rax
movq %rax, -0x16b8(%rbp)
addq $0x1b0, %rax            # imm = 0x1B0
movq %rax, -0x16b0(%rbp)
movq -0x16b0(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x16c0(%rbp)
callq 0xfc90
movq -0x16b8(%rbp), %rcx
movq -0x16c0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x16b0(%rbp)
jne 0xcfdd
leaq -0x380(%rbp), %rdi
callq 0x62d0
leaq -0x381(%rbp), %rdi
callq 0x64f0
leaq -0x358(%rbp), %rdi
callq 0x62d0
leaq -0x359(%rbp), %rdi
callq 0x64f0
leaq -0x330(%rbp), %rdi
callq 0x62d0
leaq -0x331(%rbp), %rdi
callq 0x64f0
leaq -0x308(%rbp), %rdi
callq 0x62d0
leaq -0x309(%rbp), %rdi
callq 0x64f0
leaq -0x2e0(%rbp), %rdi
callq 0x62d0
leaq -0x2e1(%rbp), %rdi
callq 0x64f0
leaq -0x2b8(%rbp), %rdi
callq 0x62d0
leaq -0x2b9(%rbp), %rdi
callq 0x64f0
leaq -0x290(%rbp), %rdi
callq 0x62d0
leaq -0x291(%rbp), %rdi
callq 0x64f0
leaq -0x268(%rbp), %rdi
callq 0x62d0
leaq -0x269(%rbp), %rdi
callq 0x64f0
leaq -0x230(%rbp), %rdi
callq 0x62d0
leaq -0x231(%rbp), %rdi
callq 0x64f0
movb $0x1, -0x4ba(%rbp)
leaq -0x440(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x469(%rbp), %rdi
movq %rdi, -0x16c8(%rbp)
callq 0x6830
movq -0x16c8(%rbp), %rdx
leaq 0x52ee8(%rip), %rsi     # 0x60004
leaq -0x468(%rbp), %rdi
callq 0xfb20
jmp 0xd12a
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x440(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x1bbe0
jmp 0xd146
leaq -0x410(%rbp), %rax
movq %rax, -0x16d8(%rbp)
movq %rax, -0x448(%rbp)
leaq -0x491(%rbp), %rdi
movq %rdi, -0x16d0(%rbp)
callq 0x6830
movq -0x16d0(%rbp), %rdx
leaq 0x52e8b(%rip), %rsi     # 0x60007
leaq -0x490(%rbp), %rdi
callq 0xfb20
jmp 0xd18a
movq -0x16d8(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x490(%rbp), %rsi
callq 0x1bbe0
jmp 0xd1a6
leaq -0x3e0(%rbp), %rax
movq %rax, -0x16e8(%rbp)
movq %rax, -0x448(%rbp)
leaq -0x4b9(%rbp), %rdi
movq %rdi, -0x16e0(%rbp)
callq 0x6830
movq -0x16e0(%rbp), %rdx
leaq 0x52e2e(%rip), %rsi     # 0x6000a
leaq -0x4b8(%rbp), %rdi
callq 0xfb20
jmp 0xd1ea
movq -0x16e8(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x4b8(%rbp), %rsi
callq 0x1bbe0
jmp 0xd206
movb $0x0, -0x4ba(%rbp)
leaq -0x440(%rbp), %rax
movq %rax, -0x3b0(%rbp)
movq $0x3, -0x3a8(%rbp)
leaq -0x4bb(%rbp), %rdi
movq %rdi, -0x16f0(%rbp)
callq 0xfbd0
movq -0x16f0(%rbp), %rcx
movq -0x3b0(%rbp), %rsi
movq -0x3a8(%rbp), %rdx
leaq -0x3a0(%rbp), %rdi
callq 0xfbf0
jmp 0xd25c
leaq -0x4bb(%rbp), %rdi
callq 0xfc70
leaq -0x440(%rbp), %rax
movq %rax, -0x1700(%rbp)
addq $0x90, %rax
movq %rax, -0x16f8(%rbp)
movq -0x16f8(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x1708(%rbp)
callq 0xfc90
movq -0x1700(%rbp), %rcx
movq -0x1708(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x16f8(%rbp)
jne 0xd283
leaq -0x4b8(%rbp), %rdi
callq 0x62d0
leaq -0x4b9(%rbp), %rdi
callq 0x64f0
leaq -0x490(%rbp), %rdi
callq 0x62d0
leaq -0x491(%rbp), %rdi
callq 0x64f0
leaq -0x468(%rbp), %rdi
callq 0x62d0
leaq -0x469(%rbp), %rdi
callq 0x64f0
movb $0x1, -0x6fa(%rbp)
leaq -0x608(%rbp), %rax
movq %rax, -0x610(%rbp)
leaq -0x631(%rbp), %rdi
movq %rdi, -0x1710(%rbp)
callq 0x6830
movq -0x1710(%rbp), %rdx
leaq 0x52cdb(%rip), %rsi     # 0x6000d
leaq -0x630(%rbp), %rdi
callq 0xfb20
jmp 0xd340
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x608(%rbp), %rdi
leaq -0x630(%rbp), %rsi
callq 0x1bbe0
jmp 0xd35c
leaq -0x5d8(%rbp), %rax
movq %rax, -0x1720(%rbp)
movq %rax, -0x610(%rbp)
leaq -0x659(%rbp), %rdi
movq %rdi, -0x1718(%rbp)
callq 0x6830
movq -0x1718(%rbp), %rdx
leaq 0x52c7e(%rip), %rsi     # 0x60010
leaq -0x658(%rbp), %rdi
callq 0xfb20
jmp 0xd3a0
movq -0x1720(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x658(%rbp), %rsi
callq 0x1bbe0
jmp 0xd3bc
leaq -0x5a8(%rbp), %rax
movq %rax, -0x1730(%rbp)
movq %rax, -0x610(%rbp)
leaq -0x681(%rbp), %rdi
movq %rdi, -0x1728(%rbp)
callq 0x6830
movq -0x1728(%rbp), %rdx
leaq 0x52c21(%rip), %rsi     # 0x60013
leaq -0x680(%rbp), %rdi
callq 0xfb20
jmp 0xd400
movq -0x1730(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x680(%rbp), %rsi
callq 0x1bbe0
jmp 0xd41c
leaq -0x578(%rbp), %rax
movq %rax, -0x1740(%rbp)
movq %rax, -0x610(%rbp)
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x1738(%rbp)
callq 0x6830
movq -0x1738(%rbp), %rdx
leaq 0x52bc4(%rip), %rsi     # 0x60016
leaq -0x6a8(%rbp), %rdi
callq 0xfb20
jmp 0xd460
movq -0x1740(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x6a8(%rbp), %rsi
callq 0x1bbe0
jmp 0xd47c
leaq -0x548(%rbp), %rax
movq %rax, -0x1750(%rbp)
movq %rax, -0x610(%rbp)
leaq -0x6d1(%rbp), %rdi
movq %rdi, -0x1748(%rbp)
callq 0x6830
movq -0x1748(%rbp), %rdx
leaq 0x52b67(%rip), %rsi     # 0x60019
leaq -0x6d0(%rbp), %rdi
callq 0xfb20
jmp 0xd4c0
movq -0x1750(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x6d0(%rbp), %rsi
callq 0x1bbe0
jmp 0xd4dc
leaq -0x518(%rbp), %rax
movq %rax, -0x1760(%rbp)
movq %rax, -0x610(%rbp)
leaq -0x6f9(%rbp), %rdi
movq %rdi, -0x1758(%rbp)
callq 0x6830
movq -0x1758(%rbp), %rdx
leaq 0x52b0b(%rip), %rsi     # 0x6001d
leaq -0x6f8(%rbp), %rdi
callq 0xfb20
jmp 0xd520
movq -0x1760(%rbp), %rdi
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x6f8(%rbp), %rsi
callq 0x1bbe0
jmp 0xd53c
movb $0x0, -0x6fa(%rbp)
leaq -0x608(%rbp), %rax
movq %rax, -0x4e8(%rbp)
movq $0x6, -0x4e0(%rbp)
leaq -0x6fb(%rbp), %rdi
movq %rdi, -0x1768(%rbp)
callq 0xfbd0
movq -0x1768(%rbp), %rcx
movq -0x4e8(%rbp), %rsi
movq -0x4e0(%rbp), %rdx
leaq -0x4d8(%rbp), %rdi
callq 0xfbf0
jmp 0xd592
leaq -0x6fb(%rbp), %rdi
callq 0xfc70
leaq -0x608(%rbp), %rax
movq %rax, -0x1778(%rbp)
addq $0x120, %rax            # imm = 0x120
movq %rax, -0x1770(%rbp)
movq -0x1770(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x1780(%rbp)
callq 0xfc90
movq -0x1778(%rbp), %rcx
movq -0x1780(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1770(%rbp)
jne 0xd5b9
leaq -0x6f8(%rbp), %rdi
callq 0x62d0
leaq -0x6f9(%rbp), %rdi
callq 0x64f0
leaq -0x6d0(%rbp), %rdi
callq 0x62d0
leaq -0x6d1(%rbp), %rdi
callq 0x64f0
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
leaq -0x6a9(%rbp), %rdi
callq 0x64f0
leaq -0x680(%rbp), %rdi
callq 0x62d0
leaq -0x681(%rbp), %rdi
callq 0x64f0
leaq -0x658(%rbp), %rdi
callq 0x62d0
leaq -0x659(%rbp), %rdi
callq 0x64f0
leaq -0x630(%rbp), %rdi
callq 0x62d0
leaq -0x631(%rbp), %rdi
callq 0x64f0
leaq -0x718(%rbp), %rdi
callq 0xfcb0
callq 0x6320
movl %eax, %edi
callq 0x6460
movl $0x0, -0x71c(%rbp)
leaq -0x750(%rbp), %rdi
callq 0xfcd0
jmp 0xd6aa
leaq -0x780(%rbp), %rdi
callq 0xfcd0
jmp 0xd6b8
leaq -0x7b0(%rbp), %rdi
callq 0xfcd0
jmp 0xd6c6
leaq -0x7e0(%rbp), %rdi
callq 0xfcd0
jmp 0xd6d4
leaq -0x810(%rbp), %rdi
callq 0xfcd0
jmp 0xd6e2
leaq -0x868(%rbp), %rdi
callq 0x22dc0
jmp 0xd6f0
leaq -0x8c0(%rbp), %rdi
callq 0x22dc0
jmp 0xd6fe
leaq -0x918(%rbp), %rdi
callq 0x22dc0
jmp 0xd70c
movl $0x0, -0x91c(%rbp)
movl $0x0, -0x920(%rbp)
movl -0x920(%rbp), %eax
movl %eax, -0x1788(%rbp)
movq 0x9c3deb5(%rip), %rdi   # 0x9c4b5e8
callq 0x2dd20
movl %eax, -0x1784(%rbp)
jmp 0xd740
movl -0x1788(%rbp), %eax
movl -0x1784(%rbp), %ecx
cmpl %ecx, %eax
jae 0xf511
leaq -0x718(%rbp), %rdi
callq 0xfcf0
movq 0x9c3de81(%rip), %rdi   # 0x9c4b5e8
movl -0x920(%rbp), %eax
movl %eax, %esi
callq 0xfd10
movq %rax, %rsi
leaq -0x978(%rbp), %rdi
callq 0x22ce0
jmp 0xd785
leaq -0xa00(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x22ce0
jmp 0xd79a
leaq -0xa58(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xd7af
leaq -0x9a8(%rbp), %rdi
leaq -0xa00(%rbp), %rsi
leaq -0xa58(%rbp), %rdx
callq 0x1bf30
jmp 0xd7cb
leaq -0x7e0(%rbp), %rdi
leaq -0x9a8(%rbp), %rsi
callq 0xfd30
leaq -0x9a8(%rbp), %rdi
callq 0xfc90
leaq -0xa58(%rbp), %rdi
callq 0xfd80
leaq -0xa00(%rbp), %rdi
callq 0xfd80
movb $0x1, -0xa59(%rbp)
leaq -0x7e0(%rbp), %rdi
callq 0x1c680
movb %al, -0x1789(%rbp)
jmp 0xd81d
movb -0x1789(%rbp), %al
andb $0x1, %al
movb %al, -0xa5a(%rbp)
testb $0x1, -0xa59(%rbp)
je 0xe0b4
movb -0xa5a(%rbp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0xa5a(%rbp)
jmp 0xe0b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdb20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdb14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdb08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdafc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdaf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdad8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdacc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdab4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdaa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xda54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x383(%rbp), %rdi
callq 0xfc70
leaq -0x208(%rbp), %rax
movq %rax, -0x17a0(%rbp)
addq $0x1b0, %rax            # imm = 0x1B0
movq %rax, -0x1798(%rbp)
movq -0x1798(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x17a8(%rbp)
callq 0xfc90
movq -0x17a0(%rbp), %rcx
movq -0x17a8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1798(%rbp)
jne 0xda21
jmp 0xda54
leaq -0x380(%rbp), %rdi
callq 0x62d0
leaq -0x381(%rbp), %rdi
callq 0x64f0
leaq -0x358(%rbp), %rdi
callq 0x62d0
leaq -0x359(%rbp), %rdi
callq 0x64f0
leaq -0x330(%rbp), %rdi
callq 0x62d0
leaq -0x331(%rbp), %rdi
callq 0x64f0
leaq -0x308(%rbp), %rdi
callq 0x62d0
leaq -0x309(%rbp), %rdi
callq 0x64f0
leaq -0x2e0(%rbp), %rdi
callq 0x62d0
leaq -0x2e1(%rbp), %rdi
callq 0x64f0
leaq -0x2b8(%rbp), %rdi
callq 0x62d0
leaq -0x2b9(%rbp), %rdi
callq 0x64f0
leaq -0x290(%rbp), %rdi
callq 0x62d0
leaq -0x291(%rbp), %rdi
callq 0x64f0
leaq -0x268(%rbp), %rdi
callq 0x62d0
leaq -0x269(%rbp), %rdi
callq 0x64f0
leaq -0x230(%rbp), %rdi
callq 0x62d0
leaq -0x231(%rbp), %rdi
callq 0x64f0
testb $0x1, -0x382(%rbp)
jne 0xdb37
jmp 0xdb84
movq -0x210(%rbp), %rax
leaq -0x208(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x17b0(%rbp)
je 0xdb82
movq -0x17b0(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x17b8(%rbp)
callq 0xfc90
movq -0x17b8(%rbp), %rax
leaq -0x208(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x17b0(%rbp)
jne 0xdb51
jmp 0xdb84
jmp 0xf65e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdcb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdcac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdca0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdc94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdc88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdc7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x4bb(%rbp), %rdi
callq 0xfc70
leaq -0x440(%rbp), %rax
movq %rax, -0x17c8(%rbp)
addq $0x90, %rax
movq %rax, -0x17c0(%rbp)
movq -0x17c0(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x17d0(%rbp)
callq 0xfc90
movq -0x17c8(%rbp), %rcx
movq -0x17d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x17c0(%rbp)
jne 0xdc49
jmp 0xdc7c
leaq -0x4b8(%rbp), %rdi
callq 0x62d0
leaq -0x4b9(%rbp), %rdi
callq 0x64f0
leaq -0x490(%rbp), %rdi
callq 0x62d0
leaq -0x491(%rbp), %rdi
callq 0x64f0
leaq -0x468(%rbp), %rdi
callq 0x62d0
leaq -0x469(%rbp), %rdi
callq 0x64f0
testb $0x1, -0x4ba(%rbp)
jne 0xdccf
jmp 0xdd1c
movq -0x448(%rbp), %rax
leaq -0x440(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x17d8(%rbp)
je 0xdd1a
movq -0x17d8(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x17e0(%rbp)
callq 0xfc90
movq -0x17e0(%rbp), %rax
leaq -0x440(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x17d8(%rbp)
jne 0xdce9
jmp 0xdd1c
jmp 0xf655
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdf22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdf16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdf0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdefe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdef2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdee6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdeda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdec2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdeb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xdeaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xde9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x6fb(%rbp), %rdi
callq 0xfc70
leaq -0x608(%rbp), %rax
movq %rax, -0x17f0(%rbp)
addq $0x120, %rax            # imm = 0x120
movq %rax, -0x17e8(%rbp)
movq -0x17e8(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x17f8(%rbp)
callq 0xfc90
movq -0x17f0(%rbp), %rcx
movq -0x17f8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x17e8(%rbp)
jne 0xde6b
jmp 0xde9e
leaq -0x6f8(%rbp), %rdi
callq 0x62d0
leaq -0x6f9(%rbp), %rdi
callq 0x64f0
leaq -0x6d0(%rbp), %rdi
callq 0x62d0
leaq -0x6d1(%rbp), %rdi
callq 0x64f0
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
leaq -0x6a9(%rbp), %rdi
callq 0x64f0
leaq -0x680(%rbp), %rdi
callq 0x62d0
leaq -0x681(%rbp), %rdi
callq 0x64f0
leaq -0x658(%rbp), %rdi
callq 0x62d0
leaq -0x659(%rbp), %rdi
callq 0x64f0
leaq -0x630(%rbp), %rdi
callq 0x62d0
leaq -0x631(%rbp), %rdi
callq 0x64f0
testb $0x1, -0x6fa(%rbp)
jne 0xdf39
jmp 0xdf86
movq -0x610(%rbp), %rax
leaq -0x608(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1800(%rbp)
je 0xdf84
movq -0x1800(%rbp), %rdi
addq $-0x30, %rdi
movq %rdi, -0x1808(%rbp)
callq 0xfc90
movq -0x1808(%rbp), %rax
leaq -0x608(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1800(%rbp)
jne 0xdf53
jmp 0xdf86
jmp 0xf649
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf631
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf625
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf619
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf60d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf601
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf5f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf5e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf5dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf5d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe0a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xa58(%rbp), %rdi
callq 0xfd80
leaq -0xa00(%rbp), %rdi
callq 0xfd80
jmp 0xf500
leaq -0xa80(%rbp), %rdi
leaq -0x780(%rbp), %rsi
callq 0x1c100
jmp 0xe0c9
cmpl $0x0, -0x920(%rbp)
je 0xe109
movl -0x920(%rbp), %eax
movl %eax, -0x1810(%rbp)
movq 0x9c3d503(%rip), %rdi   # 0x9c4b5e8
callq 0x2dd20
movl %eax, -0x180c(%rbp)
jmp 0xe0f2
movl -0x1810(%rbp), %eax
movl -0x180c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0xe470
leaq -0xad1(%rbp), %rdi
movq %rdi, -0x1818(%rbp)
callq 0x6830
movq -0x1818(%rbp), %rdx
leaq 0x51eda(%rip), %rsi     # 0x60004
leaq -0xad0(%rbp), %rdi
callq 0xfb20
jmp 0xe138
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0xab0(%rbp), %rdi
leaq -0xad0(%rbp), %rsi
callq 0x1bbe0
jmp 0xe154
leaq -0x7b0(%rbp), %rdi
leaq -0xab0(%rbp), %rsi
movq %rsi, -0x1820(%rbp)
callq 0xfd30
movq -0x1820(%rbp), %rdi
callq 0xfc90
leaq -0xad0(%rbp), %rdi
callq 0x62d0
leaq -0xad1(%rbp), %rdi
callq 0x64f0
leaq -0xb88(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe1a7
leaq -0xbb8(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0xfdb0
jmp 0xe1bc
leaq -0xb30(%rbp), %rdi
leaq -0xb88(%rbp), %rsi
leaq -0xbb8(%rbp), %rdx
callq 0x1c440
jmp 0xe1d8
leaq -0x8c0(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
callq 0xfe00
jmp 0xe1ed
leaq -0xb30(%rbp), %rdi
callq 0xfd80
leaq -0xbb8(%rbp), %rdi
callq 0xfc90
leaq -0xb88(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1822(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1821(%rbp)
leaq -0xc10(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe23e
leaq -0xc68(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe253
leaq -0xcb9(%rbp), %rdi
movq %rdi, -0x1830(%rbp)
callq 0x6830
movq -0x1830(%rbp), %rdx
leaq 0x51d90(%rip), %rsi     # 0x60004
leaq -0xcb8(%rbp), %rdi
callq 0xfb20
jmp 0xe282
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0xc98(%rbp), %rdi
leaq -0xcb8(%rbp), %rsi
callq 0x1bbe0
jmp 0xe29e
movb -0x1821(%rbp), %al
movb -0x1822(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0xc10(%rbp), %rcx
leaq -0xc68(%rbp), %r8
leaq -0xc98(%rbp), %r9
callq 0xf680
jmp 0xe2e3
leaq -0xc98(%rbp), %rdi
callq 0xfc90
leaq -0xcb8(%rbp), %rdi
callq 0x62d0
leaq -0xcb9(%rbp), %rdi
callq 0x64f0
leaq -0xc68(%rbp), %rdi
callq 0xfd80
leaq -0xc10(%rbp), %rdi
callq 0xfd80
jmp 0xee32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe36d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xad0(%rbp), %rdi
callq 0x62d0
leaq -0xad1(%rbp), %rdi
callq 0x64f0
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe3d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe3c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xb30(%rbp), %rdi
callq 0xfd80
leaq -0xbb8(%rbp), %rdi
callq 0xfc90
leaq -0xb88(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe45f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe447
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xe43b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xc98(%rbp), %rdi
callq 0xfc90
leaq -0xcb8(%rbp), %rdi
callq 0x62d0
leaq -0xcb9(%rbp), %rdi
callq 0x64f0
leaq -0xc68(%rbp), %rdi
callq 0xfd80
leaq -0xc10(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
cmpl $0x4, -0x71c(%rbp)
jge 0xee30
movb -0xa59(%rbp), %al
movb %al, -0x1832(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1831(%rbp)
leaq -0xd18(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe4aa
leaq -0xd70(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe4bf
leaq -0xdc1(%rbp), %rdi
movq %rdi, -0x1840(%rbp)
callq 0x6830
movq -0x1840(%rbp), %rdx
leaq 0x51b2d(%rip), %rsi     # 0x6000d
leaq -0xdc0(%rbp), %rdi
callq 0xfb20
jmp 0xe4ee
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0xda0(%rbp), %rdi
leaq -0xdc0(%rbp), %rsi
callq 0x1bbe0
jmp 0xe50a
movb -0x1831(%rbp), %al
movb -0x1832(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0xd18(%rbp), %rcx
leaq -0xd70(%rbp), %r8
leaq -0xda0(%rbp), %r9
callq 0xf680
jmp 0xe54f
leaq -0xda0(%rbp), %rdi
callq 0xfc90
leaq -0xdc0(%rbp), %rdi
callq 0x62d0
leaq -0xdc1(%rbp), %rdi
callq 0x64f0
leaq -0xd70(%rbp), %rdi
callq 0xfd80
leaq -0xd18(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1842(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1841(%rbp)
leaq -0xe20(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe5b8
leaq -0xe78(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe5cd
leaq -0xec9(%rbp), %rdi
movq %rdi, -0x1850(%rbp)
callq 0x6830
movq -0x1850(%rbp), %rdx
leaq 0x51a22(%rip), %rsi     # 0x60010
leaq -0xec8(%rbp), %rdi
callq 0xfb20
jmp 0xe5fc
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0xea8(%rbp), %rdi
leaq -0xec8(%rbp), %rsi
callq 0x1bbe0
jmp 0xe618
movb -0x1841(%rbp), %al
movb -0x1842(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0xe20(%rbp), %rcx
leaq -0xe78(%rbp), %r8
leaq -0xea8(%rbp), %r9
callq 0xf680
jmp 0xe65d
leaq -0xea8(%rbp), %rdi
callq 0xfc90
leaq -0xec8(%rbp), %rdi
callq 0x62d0
leaq -0xec9(%rbp), %rdi
callq 0x64f0
leaq -0xe78(%rbp), %rdi
callq 0xfd80
leaq -0xe20(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1852(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1851(%rbp)
leaq -0xf28(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe6c6
leaq -0xf80(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe6db
leaq -0xfd1(%rbp), %rdi
movq %rdi, -0x1860(%rbp)
callq 0x6830
movq -0x1860(%rbp), %rdx
leaq 0x51917(%rip), %rsi     # 0x60013
leaq -0xfd0(%rbp), %rdi
callq 0xfb20
jmp 0xe70a
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0xfb0(%rbp), %rdi
leaq -0xfd0(%rbp), %rsi
callq 0x1bbe0
jmp 0xe726
movb -0x1851(%rbp), %al
movb -0x1852(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0xf28(%rbp), %rcx
leaq -0xf80(%rbp), %r8
leaq -0xfb0(%rbp), %r9
callq 0xf680
jmp 0xe76b
leaq -0xfb0(%rbp), %rdi
callq 0xfc90
leaq -0xfd0(%rbp), %rdi
callq 0x62d0
leaq -0xfd1(%rbp), %rdi
callq 0x64f0
leaq -0xf80(%rbp), %rdi
callq 0xfd80
leaq -0xf28(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1862(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1861(%rbp)
leaq -0x1030(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe7d4
leaq -0x1088(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe7e9
leaq -0x10d9(%rbp), %rdi
movq %rdi, -0x1870(%rbp)
callq 0x6830
movq -0x1870(%rbp), %rdx
leaq 0x5180c(%rip), %rsi     # 0x60016
leaq -0x10d8(%rbp), %rdi
callq 0xfb20
jmp 0xe818
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x10b8(%rbp), %rdi
leaq -0x10d8(%rbp), %rsi
callq 0x1bbe0
jmp 0xe834
movb -0x1861(%rbp), %al
movb -0x1862(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0x1030(%rbp), %rcx
leaq -0x1088(%rbp), %r8
leaq -0x10b8(%rbp), %r9
callq 0xf680
jmp 0xe879
leaq -0x10b8(%rbp), %rdi
callq 0xfc90
leaq -0x10d8(%rbp), %rdi
callq 0x62d0
leaq -0x10d9(%rbp), %rdi
callq 0x64f0
leaq -0x1088(%rbp), %rdi
callq 0xfd80
leaq -0x1030(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1872(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1871(%rbp)
leaq -0x1138(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe8e2
leaq -0x1190(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xe8f7
leaq -0x11e1(%rbp), %rdi
movq %rdi, -0x1880(%rbp)
callq 0x6830
movq -0x1880(%rbp), %rdx
leaq 0x51701(%rip), %rsi     # 0x60019
leaq -0x11e0(%rbp), %rdi
callq 0xfb20
jmp 0xe926
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x11c0(%rbp), %rdi
leaq -0x11e0(%rbp), %rsi
callq 0x1bbe0
jmp 0xe942
movb -0x1871(%rbp), %al
movb -0x1872(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0x1138(%rbp), %rcx
leaq -0x1190(%rbp), %r8
leaq -0x11c0(%rbp), %r9
callq 0xf680
jmp 0xe987
leaq -0x11c0(%rbp), %rdi
callq 0xfc90
leaq -0x11e0(%rbp), %rdi
callq 0x62d0
leaq -0x11e1(%rbp), %rdi
callq 0x64f0
leaq -0x1190(%rbp), %rdi
callq 0xfd80
leaq -0x1138(%rbp), %rdi
callq 0xfd80
movb -0xa59(%rbp), %al
movb %al, -0x1882(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1881(%rbp)
leaq -0x1240(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xe9f0
leaq -0x1298(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xea05
leaq -0x12e9(%rbp), %rdi
movq %rdi, -0x1890(%rbp)
callq 0x6830
movq -0x1890(%rbp), %rdx
leaq 0x515f7(%rip), %rsi     # 0x6001d
leaq -0x12e8(%rbp), %rdi
callq 0xfb20
jmp 0xea34
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x12c8(%rbp), %rdi
leaq -0x12e8(%rbp), %rsi
callq 0x1bbe0
jmp 0xea50
movb -0x1881(%rbp), %al
movb -0x1882(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0x1240(%rbp), %rcx
leaq -0x1298(%rbp), %r8
leaq -0x12c8(%rbp), %r9
callq 0xf680
jmp 0xea95
leaq -0x12c8(%rbp), %rdi
callq 0xfc90
leaq -0x12e8(%rbp), %rdi
callq 0x62d0
leaq -0x12e9(%rbp), %rdi
callq 0x64f0
leaq -0x1298(%rbp), %rdi
callq 0xfd80
leaq -0x1240(%rbp), %rdi
callq 0xfd80
jmp 0xee30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xeb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xeb3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xeb30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xda0(%rbp), %rdi
callq 0xfc90
leaq -0xdc0(%rbp), %rdi
callq 0x62d0
leaq -0xdc1(%rbp), %rdi
callq 0x64f0
leaq -0xd70(%rbp), %rdi
callq 0xfd80
leaq -0xd18(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xebe3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xebcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xebbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xea8(%rbp), %rdi
callq 0xfc90
leaq -0xec8(%rbp), %rdi
callq 0x62d0
leaq -0xec9(%rbp), %rdi
callq 0x64f0
leaq -0xe78(%rbp), %rdi
callq 0xfd80
leaq -0xe20(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xec72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xec5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xec4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0xfb0(%rbp), %rdi
callq 0xfc90
leaq -0xfd0(%rbp), %rdi
callq 0x62d0
leaq -0xfd1(%rbp), %rdi
callq 0x64f0
leaq -0xf80(%rbp), %rdi
callq 0xfd80
leaq -0xf28(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xed01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xece9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xecdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x10b8(%rbp), %rdi
callq 0xfc90
leaq -0x10d8(%rbp), %rdi
callq 0x62d0
leaq -0x10d9(%rbp), %rdi
callq 0x64f0
leaq -0x1088(%rbp), %rdi
callq 0xfd80
leaq -0x1030(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xed90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xed78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xed6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x11c0(%rbp), %rdi
callq 0xfc90
leaq -0x11e0(%rbp), %rdi
callq 0x62d0
leaq -0x11e1(%rbp), %rdi
callq 0x64f0
leaq -0x1190(%rbp), %rdi
callq 0xfd80
leaq -0x1138(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xee1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xee07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xedfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x12c8(%rbp), %rdi
callq 0xfc90
leaq -0x12e8(%rbp), %rdi
callq 0x62d0
leaq -0x12e9(%rbp), %rdi
callq 0x64f0
leaq -0x1298(%rbp), %rdi
callq 0xfd80
leaq -0x1240(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
jmp 0xee32
leaq 0x511d1(%rip), %rsi     # 0x6000a
leaq -0xa80(%rbp), %rdi
callq 0xfe70
movb %al, -0x1891(%rbp)
jmp 0xee4d
movb -0x1891(%rbp), %al
testb $0x1, %al
jne 0xee5c
jmp 0xf1d1
leaq 0x511a4(%rip), %rsi     # 0x60007
leaq -0xa80(%rbp), %rdi
callq 0xfe70
movb %al, -0x1892(%rbp)
jmp 0xee77
movb -0x1892(%rbp), %al
testb $0x1, %al
jne 0xee86
jmp 0xf1d1
movb -0xa59(%rbp), %al
movb %al, -0x1894(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x1893(%rbp)
leaq -0x1348(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xeeb3
leaq -0x13a0(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xeec8
leaq -0x13f1(%rbp), %rdi
movq %rdi, -0x18a0(%rbp)
callq 0x6830
movq -0x18a0(%rbp), %rdx
leaq 0x5111e(%rip), %rsi     # 0x60007
leaq -0x13f0(%rbp), %rdi
callq 0xfb20
jmp 0xeef7
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x13d0(%rbp), %rdi
leaq -0x13f0(%rbp), %rsi
callq 0x1bbe0
jmp 0xef13
movb -0x1893(%rbp), %al
movb -0x1894(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0x1348(%rbp), %rcx
leaq -0x13a0(%rbp), %r8
leaq -0x13d0(%rbp), %r9
callq 0xf680
jmp 0xef58
leaq -0x13d0(%rbp), %rdi
callq 0xfc90
leaq -0x13f0(%rbp), %rdi
callq 0x62d0
leaq -0x13f1(%rbp), %rdi
callq 0x64f0
leaq -0x13a0(%rbp), %rdi
callq 0xfd80
leaq -0x1348(%rbp), %rdi
callq 0xfd80
testb $0x1, -0x11(%rbp)
je 0xf1cf
movb -0xa59(%rbp), %al
movb %al, -0x18a2(%rbp)
movb -0xa5a(%rbp), %al
movb %al, -0x18a1(%rbp)
leaq -0x1450(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x22ce0
jmp 0xefcb
leaq -0x14a8(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xefe0
leaq -0x14f9(%rbp), %rdi
movq %rdi, -0x18b0(%rbp)
callq 0x6830
movq -0x18b0(%rbp), %rdx
leaq 0x51009(%rip), %rsi     # 0x6000a
leaq -0x14f8(%rbp), %rdi
callq 0xfb20
jmp 0xf00f
movzbl -0x11(%rbp), %edx
andl $0x1, %edx
leaq -0x14d8(%rbp), %rdi
leaq -0x14f8(%rbp), %rsi
callq 0x1bbe0
jmp 0xf02b
movb -0x18a1(%rbp), %al
movb -0x18a2(%rbp), %cl
movq %rsp, %rdx
movq $0x0, (%rdx)
movzbl %cl, %edi
andl $0x1, %edi
movzbl %al, %esi
andl $0x1, %esi
leaq -0x718(%rbp), %rdx
leaq -0x1450(%rbp), %rcx
leaq -0x14a8(%rbp), %r8
leaq -0x14d8(%rbp), %r9
callq 0xf680
jmp 0xf070
leaq -0x14d8(%rbp), %rdi
callq 0xfc90
leaq -0x14f8(%rbp), %rdi
callq 0x62d0
leaq -0x14f9(%rbp), %rdi
callq 0x64f0
leaq -0x14a8(%rbp), %rdi
callq 0xfd80
leaq -0x1450(%rbp), %rdi
callq 0xfd80
jmp 0xf1cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf12f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf117
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf10b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x13d0(%rbp), %rdi
callq 0xfc90
leaq -0x13f0(%rbp), %rdi
callq 0x62d0
leaq -0x13f1(%rbp), %rdi
callq 0x64f0
leaq -0x13a0(%rbp), %rdi
callq 0xfd80
leaq -0x1348(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf1be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf1a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf19a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x14d8(%rbp), %rdi
callq 0xfc90
leaq -0x14f8(%rbp), %rdi
callq 0x62d0
leaq -0x14f9(%rbp), %rdi
callq 0x64f0
leaq -0x14a8(%rbp), %rdi
callq 0xfd80
leaq -0x1450(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
jmp 0xf1d1
leaq -0x718(%rbp), %rdi
callq 0xfea0
testb $0x1, %al
jne 0xf1e3
jmp 0xf218
testb $0x1, -0xa59(%rbp)
je 0xf218
movl -0x91c(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x91c(%rbp)
cmpl $0x3, %eax
jge 0xf218
movb $0x0, -0xa59(%rbp)
movl $0x5, -0x1500(%rbp)
jmp 0xf4a9
leaq -0x718(%rbp), %rdi
callq 0xfea0
testb $0x1, %al
jne 0xf22a
jmp 0xf258
movq -0x1620(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x6260
movq -0x1620(%rbp), %rdi
callq 0xfb00
movl $0x1, -0x1500(%rbp)
jmp 0xf4a9
callq 0x6130
cltq
movq %rax, -0x18b8(%rbp)
leaq -0x718(%rbp), %rdi
movq %rdi, -0x18c0(%rbp)
callq 0xfee0
movq -0x18c0(%rbp), %rdi
movq %rax, %rcx
movq -0x18b8(%rbp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0x1504(%rbp)
movslq -0x1504(%rbp), %rsi
callq 0xff10
movq %rax, %rsi
leaq -0x750(%rbp), %rdi
callq 0xff30
jmp 0xf2b4
leaq -0x15b8(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x22ce0
jmp 0xf2c9
leaq -0x15e8(%rbp), %rdi
leaq -0x750(%rbp), %rsi
callq 0xfdb0
jmp 0xf2de
leaq -0x1560(%rbp), %rdi
leaq -0x15b8(%rbp), %rsi
leaq -0x15e8(%rbp), %rdx
callq 0x1c440
jmp 0xf2fa
leaq -0x8c0(%rbp), %rdi
leaq -0x1560(%rbp), %rsi
callq 0xfe00
jmp 0xf30f
leaq -0x1560(%rbp), %rdi
callq 0xfd80
leaq -0x15e8(%rbp), %rdi
callq 0xfc90
leaq -0x15b8(%rbp), %rdi
callq 0xfd80
testb $0x1, -0x924(%rbp)
je 0xf3b3
leaq -0x30(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
callq 0xff80
jmp 0xf34e
jmp 0xf3b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf3a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0xf396
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x1560(%rbp), %rdi
callq 0xfd80
leaq -0x15e8(%rbp), %rdi
callq 0xfc90
leaq -0x15b8(%rbp), %rdi
callq 0xfd80
jmp 0xf4f4
leaq -0x748(%rbp), %rsi
leaq -0x1608(%rbp), %rdi
callq 0x61f0
jmp 0xf3c8
leaq 0x51a50(%rip), %rsi     # 0x60e1f
leaq -0x1608(%rbp), %rdi
callq 0xfff0
movb %al, -0x18c1(%rbp)
jmp 0xf3e3
movb -0x18c1(%rbp), %al
testb $0x1, %al
jne 0xf416
jmp 0xf3ef
leaq 0x511bf(%rip), %rsi     # 0x605b5
leaq -0x1608(%rbp), %rdi
callq 0xfff0
movb %al, -0x18c2(%rbp)
jmp 0xf40a
movb -0x18c2(%rbp), %al
testb $0x1, %al
jne 0xf416
jmp 0xf44a
movl -0x71c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x71c(%rbp)
jmp 0xf454
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x1608(%rbp), %rdi
callq 0x62d0
jmp 0xf4f4
movl $0x0, -0x71c(%rbp)
leaq -0x780(%rbp), %rdi
leaq -0x750(%rbp), %rsi
callq 0xff30
jmp 0xf469
leaq -0x868(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0xfe00
jmp 0xf47e
leaq -0x918(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
callq 0xfe00
jmp 0xf493
leaq -0x1608(%rbp), %rdi
callq 0x62d0
movl $0x0, -0x1500(%rbp)
leaq -0xa80(%rbp), %rdi
callq 0x62d0
movl -0x1500(%rbp), %eax
subl $0x5, %eax
je 0xd809
jmp 0xf4c6
leaq -0x978(%rbp), %rdi
callq 0xfd80
movl -0x1500(%rbp), %eax
testl %eax, %eax
jne 0xf52b
jmp 0xf4de
jmp 0xf4e0
movl -0x920(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x920(%rbp)
jmp 0xd720
leaq -0xa80(%rbp), %rdi
callq 0x62d0
leaq -0x978(%rbp), %rdi
callq 0xfd80
jmp 0xf5d1
movq -0x1620(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10020
movl $0x1, -0x1500(%rbp)
leaq -0x918(%rbp), %rdi
callq 0xfd80
leaq -0x8c0(%rbp), %rdi
callq 0xfd80
leaq -0x868(%rbp), %rdi
callq 0xfd80
leaq -0x810(%rbp), %rdi
callq 0xfc90
leaq -0x7e0(%rbp), %rdi
callq 0xfc90
leaq -0x7b0(%rbp), %rdi
callq 0xfc90
leaq -0x780(%rbp), %rdi
callq 0xfc90
leaq -0x750(%rbp), %rdi
callq 0xfc90
leaq -0x718(%rbp), %rdi
callq 0x10050
leaq -0x4d8(%rbp), %rdi
callq 0x10050
leaq -0x3a0(%rbp), %rdi
callq 0x10050
leaq -0x48(%rbp), %rdi
callq 0x10050
leaq -0x30(%rbp), %rdi
callq 0x100b0
movq -0x1618(%rbp), %rax
addq $0x18d0, %rsp           # imm = 0x18D0
popq %rbp
retq
leaq -0x918(%rbp), %rdi
callq 0xfd80
leaq -0x8c0(%rbp), %rdi
callq 0xfd80
leaq -0x868(%rbp), %rdi
callq 0xfd80
leaq -0x810(%rbp), %rdi
callq 0xfc90
leaq -0x7e0(%rbp), %rdi
callq 0xfc90
leaq -0x7b0(%rbp), %rdi
callq 0xfc90
leaq -0x780(%rbp), %rdi
callq 0xfc90
leaq -0x750(%rbp), %rdi
callq 0xfc90
leaq -0x718(%rbp), %rdi
callq 0x10050
leaq -0x4d8(%rbp), %rdi
callq 0x10050
leaq -0x3a0(%rbp), %rdi
callq 0x10050
leaq -0x48(%rbp), %rdi
callq 0x10050
leaq -0x30(%rbp), %rdi
callq 0x100b0
movq -0x240(%rbp), %rdi
callq 0x6820
nopw %cs:(%rax,%rax)