// File: joao18araujo[P]pierluigi/src/ly_parser.cpp
// Function: LyParser::add_counterpoint_to_lilypond(Song&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void LyParser::add_counterpoint_to_lilypond(Song & song, string file_path, string output_path){
  std::fstream file(file_path);
  std::ofstream output(output_path);

  string line, s;

  if(!file.is_open()){
    std::cerr << "Error: File not found\n";
    exit(-2);
  }

  string s_scale = "", s_time = "", s_notes = "";
  Note note, prev;
  int score_end_position = 0, layout_end_position = 0, midi_position = 0;

  while(file >> s){
    if(s == "\\layout" || s == "\\layout{") {
      int opened = (s == "\\layout{");
      while(file >> s){
        if(s.find("{") != string::npos){
          opened++;
        } else if(s.find("}") != string::npos){
          opened--;
          if(opened <= 0) break;
        }
      }
      break;
    }
  }

  bool needs_midi_indicator = true;
  while(file >> s){
    if(!layout_end_position) layout_end_position = file.tellg();
    if(s == "\\score" || s == "\\score{") {
      if(!midi_position) midi_position = file.tellg();
      int opened = (s == "\\score{");
      while(file >> s){
        if(s.find("<<") != string::npos){
          opened++;
        } else if(s.find(">>") != string::npos){
          opened--;
          if(opened <= 0){
            score_end_position = file.tellg();
            break;
          }
        }
      }
      break;
    }
  }

  file.clear();
  file.seekg(0);
  while(getline(file, s)){
    if(file.tellg() >= midi_position and s.find("\\midi") < s.find("%")){
      needs_midi_indicator = false;
      break;
    }
  }

  file.clear();
  file.seekg(0);

  bool printed_notes = false;
  bool printed_staff = false;

  while(getline(file, s)){
    if(file.tellg() >= layout_end_position and not printed_notes){
      output << SongReader::song_to_voice_string(song);
      std::cout << SongReader::song_to_voice_string(song) << "\n";
      printed_notes = true;
    }

    if(file.tellg() >= score_end_position and not printed_staff){
      output << SongReader::new_staff_string();
      printed_staff = true;
    }

    output << s << std::endl;

    if(file.tellg() >= midi_position and needs_midi_indicator){
      output << SongReader::midi_indicator();
      needs_midi_indicator = false;
    }
  }

  output.close();
  file.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x860, %rsp            # imm = 0x860
movq %rsi, -0x6f0(%rbp)
movq %rdx, -0x6e8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x8, %edi
movl $0x10, %esi
movl %esi, -0x6dc(%rbp)
callq 0x20d40
movq -0x6f0(%rbp), %rsi
movl %eax, %edx
leaq -0x228(%rbp), %rdi
callq 0x6770
movq -0x6e8(%rbp), %rsi
movl -0x6dc(%rbp), %edx
leaq -0x428(%rbp), %rdi
callq 0x68a0
jmp 0x2008a
leaq -0x458(%rbp), %rdi
callq 0x6650
leaq -0x478(%rbp), %rdi
callq 0x6650
leaq -0x228(%rbp), %rdi
callq 0x67f0
movb %al, -0x6f1(%rbp)
jmp 0x200b6
movb -0x6f1(%rbp), %al
testb $0x1, %al
jne 0x2010f
jmp 0x200c2
movq 0x61f1f(%rip), %rdi     # 0x81fe8
leaq 0x400e9(%rip), %rsi     # 0x601b9
callq 0x6480
jmp 0x200d7
movl $0xfffffffe, %edi       # imm = 0xFFFFFFFE
callq 0x6570
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
jmp 0x20d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
jmp 0x20cf5
leaq -0x499(%rbp), %rdi
movq %rdi, -0x700(%rbp)
callq 0x6830
movq -0x700(%rbp), %rdx
leaq 0x406a2(%rip), %rsi     # 0x607d2
leaq -0x498(%rbp), %rdi
callq 0xfb20
jmp 0x2013e
leaq -0x499(%rbp), %rdi
callq 0x64f0
leaq -0x4c1(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x6830
movq -0x708(%rbp), %rdx
leaq 0x40667(%rip), %rsi     # 0x607d2
leaq -0x4c0(%rbp), %rdi
callq 0xfb20
jmp 0x20179
leaq -0x4c1(%rbp), %rdi
callq 0x64f0
leaq -0x4e9(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x6830
movq -0x710(%rbp), %rdx
leaq 0x4062c(%rip), %rsi     # 0x607d2
leaq -0x4e8(%rbp), %rdi
callq 0xfb20
jmp 0x201b4
leaq -0x4e9(%rbp), %rdi
callq 0x64f0
leaq -0x548(%rbp), %rdi
callq 0x22dc0
jmp 0x201ce
leaq -0x5a0(%rbp), %rdi
callq 0x22dc0
jmp 0x201dc
movl $0x0, -0x5a4(%rbp)
movl $0x0, -0x5a8(%rbp)
movl $0x0, -0x5ac(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x65e0
movq %rax, -0x718(%rbp)
jmp 0x20216
movq -0x718(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x719(%rbp)
jmp 0x20234
movb -0x719(%rbp), %al
testb $0x1, %al
jne 0x20243
jmp 0x20433
leaq 0x40049(%rip), %rsi     # 0x60293
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x71a(%rbp)
jmp 0x2025e
movb -0x71a(%rbp), %al
testb $0x1, %al
jne 0x20294
jmp 0x2026a
leaq 0x4002a(%rip), %rsi     # 0x6029b
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x71b(%rbp)
jmp 0x20285
movb -0x71b(%rbp), %al
testb $0x1, %al
jne 0x20294
jmp 0x2042e
leaq 0x40000(%rip), %rsi     # 0x6029b
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x71c(%rbp)
jmp 0x202af
movb -0x71c(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x5b0(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x65e0
movq %rax, -0x728(%rbp)
jmp 0x202dc
movq -0x728(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x729(%rbp)
jmp 0x202fa
movb -0x729(%rbp), %al
testb $0x1, %al
jne 0x20309
jmp 0x2042c
leaq -0x478(%rbp), %rdi
leaq 0x3ff9a(%rip), %rsi     # 0x602b1
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
cmpq $-0x1, %rax
je 0x203ec
movl -0x5b0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5b0(%rbp)
jmp 0x20427
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x499(%rbp), %rdi
callq 0x64f0
jmp 0x20cf5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x4c1(%rbp), %rdi
callq 0x64f0
jmp 0x20ce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x4e9(%rbp), %rdi
callq 0x64f0
jmp 0x20cdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
jmp 0x20cd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
jmp 0x20cc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
jmp 0x20cb9
leaq -0x478(%rbp), %rdi
leaq 0x3fe5a(%rip), %rsi     # 0x60254
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
cmpq $-0x1, %rax
je 0x20425
movl -0x5b0(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5b0(%rbp)
cmpl $0x0, -0x5b0(%rbp)
jg 0x20423
jmp 0x2042c
jmp 0x20425
jmp 0x20427
jmp 0x202c0
jmp 0x20433
jmp 0x201fa
movb $0x1, -0x5b1(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x65e0
movq %rax, -0x738(%rbp)
jmp 0x20456
movq -0x738(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x739(%rbp)
jmp 0x20474
movb -0x739(%rbp), %al
testb $0x1, %al
jne 0x20483
jmp 0x206e1
cmpl $0x0, -0x5a8(%rbp)
jne 0x204e6
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x750(%rbp)
movq %rax, -0x748(%rbp)
jmp 0x204a8
movq -0x750(%rbp), %rax
movq -0x748(%rbp), %rcx
movq %rcx, -0x5c8(%rbp)
movq %rax, -0x5c0(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x20f40
movq %rax, -0x758(%rbp)
jmp 0x204d9
movq -0x758(%rbp), %rax
movl %eax, -0x5a8(%rbp)
leaq 0x3fdb7(%rip), %rsi     # 0x602a4
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x759(%rbp)
jmp 0x20501
movb -0x759(%rbp), %al
testb $0x1, %al
jne 0x20537
jmp 0x2050d
leaq 0x3fd97(%rip), %rsi     # 0x602ab
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x75a(%rbp)
jmp 0x20528
movb -0x75a(%rbp), %al
testb $0x1, %al
jne 0x20537
jmp 0x206dc
cmpl $0x0, -0x5ac(%rbp)
jne 0x2059a
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x770(%rbp)
movq %rax, -0x768(%rbp)
jmp 0x2055c
movq -0x770(%rbp), %rax
movq -0x768(%rbp), %rcx
movq %rcx, -0x5d8(%rbp)
movq %rax, -0x5d0(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x20f40
movq %rax, -0x778(%rbp)
jmp 0x2058d
movq -0x778(%rbp), %rax
movl %eax, -0x5ac(%rbp)
leaq 0x3fd0a(%rip), %rsi     # 0x602ab
leaq -0x478(%rbp), %rdi
callq 0xfff0
movb %al, -0x779(%rbp)
jmp 0x205b5
movb -0x779(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x5dc(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x65e0
movq %rax, -0x788(%rbp)
jmp 0x205e2
movq -0x788(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x789(%rbp)
jmp 0x20600
movb -0x789(%rbp), %al
testb $0x1, %al
jne 0x2060f
jmp 0x206da
leaq -0x478(%rbp), %rdi
leaq 0x3fc96(%rip), %rsi     # 0x602b3
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
cmpq $-0x1, %rax
je 0x20640
movl -0x5dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5dc(%rbp)
jmp 0x206d5
leaq -0x478(%rbp), %rdi
leaq 0x3fc68(%rip), %rsi     # 0x602b6
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
cmpq $-0x1, %rax
je 0x206d3
movl -0x5dc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5dc(%rbp)
cmpl $0x0, -0x5dc(%rbp)
jg 0x206d1
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x7a0(%rbp)
movq %rax, -0x798(%rbp)
jmp 0x20691
movq -0x7a0(%rbp), %rax
movq -0x798(%rbp), %rcx
movq %rcx, -0x5f0(%rbp)
movq %rax, -0x5e8(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x20f40
movq %rax, -0x7a8(%rbp)
jmp 0x206c2
movq -0x7a8(%rbp), %rax
movl %eax, -0x5a4(%rbp)
jmp 0x206da
jmp 0x206d3
jmp 0x206d5
jmp 0x205c6
jmp 0x206e1
jmp 0x2043a
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0x67b0
jmp 0x206fd
xorl %eax, %eax
movl %eax, %esi
leaq -0x600(%rbp), %rdi
callq 0x20f60
jmp 0x2070f
movq -0x600(%rbp), %rsi
movq -0x5f8(%rbp), %rdx
leaq -0x228(%rbp), %rdi
callq 0x65d0
jmp 0x2072b
jmp 0x2072d
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x60e0
movq %rax, -0x7b0(%rbp)
jmp 0x20749
movq -0x7b0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x7b1(%rbp)
jmp 0x20767
movb -0x7b1(%rbp), %al
testb $0x1, %al
jne 0x20776
jmp 0x20843
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x7c8(%rbp)
movq %rax, -0x7c0(%rbp)
jmp 0x20792
movq -0x7c8(%rbp), %rax
movq -0x7c0(%rbp), %rcx
movq %rcx, -0x610(%rbp)
movq %rax, -0x608(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x20f40
movq %rax, -0x7d0(%rbp)
jmp 0x207c3
movq -0x7d0(%rbp), %rcx
movslq -0x5ac(%rbp), %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x7d1(%rbp)
jl 0x20829
leaq -0x478(%rbp), %rdi
leaq 0x3facd(%rip), %rsi     # 0x602b9
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
movq %rax, -0x7e0(%rbp)
leaq -0x478(%rbp), %rdi
leaq 0x3fab5(%rip), %rsi     # 0x602bf
xorl %eax, %eax
movl %eax, %edx
callq 0x68d0
movq %rax, %rcx
movq -0x7e0(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0x7d1(%rbp)
movb -0x7d1(%rbp), %al
testb $0x1, %al
jne 0x20835
jmp 0x2083e
movb $0x0, -0x5b1(%rbp)
jmp 0x20843
jmp 0x2072d
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0x67b0
jmp 0x2085f
xorl %eax, %eax
movl %eax, %esi
leaq -0x620(%rbp), %rdi
callq 0x20f60
jmp 0x20871
movq -0x620(%rbp), %rsi
movq -0x618(%rbp), %rdx
leaq -0x228(%rbp), %rdi
callq 0x65d0
jmp 0x2088d
movb $0x0, -0x621(%rbp)
movb $0x0, -0x622(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x60e0
movq %rax, -0x7e8(%rbp)
jmp 0x208b7
movq -0x7e8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x65b0
movb %al, -0x7e9(%rbp)
jmp 0x208d5
movb -0x7e9(%rbp), %al
testb $0x1, %al
jne 0x208e4
jmp 0x20c28
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x800(%rbp)
movq %rax, -0x7f8(%rbp)
jmp 0x20900
movq -0x800(%rbp), %rax
movq -0x7f8(%rbp), %rcx
movq %rcx, -0x638(%rbp)
movq %rax, -0x630(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x20f40
movq %rax, -0x808(%rbp)
jmp 0x20931
movq -0x808(%rbp), %rcx
movslq -0x5a8(%rbp), %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x809(%rbp)
jl 0x2095a
movb -0x621(%rbp), %al
xorb $-0x1, %al
movb %al, -0x809(%rbp)
movb -0x809(%rbp), %al
testb $0x1, %al
jne 0x20969
jmp 0x20a3a
movq -0x8(%rbp), %rsi
leaq -0x658(%rbp), %rdi
callq 0x2f450
jmp 0x2097b
leaq -0x428(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x6410
jmp 0x20990
leaq -0x658(%rbp), %rdi
callq 0x62d0
movq -0x8(%rbp), %rsi
leaq -0x678(%rbp), %rdi
callq 0x2f450
jmp 0x209ae
movq 0x615f3(%rip), %rdi     # 0x81fa8
leaq -0x678(%rbp), %rsi
callq 0x6410
movq %rax, -0x818(%rbp)
jmp 0x209ca
movq -0x818(%rbp), %rdi
leaq 0x3feca(%rip), %rsi     # 0x608a2
callq 0x6480
jmp 0x209df
leaq -0x678(%rbp), %rdi
callq 0x62d0
movb $0x1, -0x621(%rbp)
jmp 0x20a3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x62d0
jmp 0x20cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x678(%rbp), %rdi
callq 0x62d0
jmp 0x20cb9
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x828(%rbp)
movq %rax, -0x820(%rbp)
jmp 0x20a56
movq -0x828(%rbp), %rax
movq -0x820(%rbp), %rcx
movq %rcx, -0x688(%rbp)
movq %rax, -0x680(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x20f40
movq %rax, -0x830(%rbp)
jmp 0x20a87
movq -0x830(%rbp), %rcx
movslq -0x5a4(%rbp), %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x831(%rbp)
jl 0x20ab0
movb -0x622(%rbp), %al
xorb $-0x1, %al
movb %al, -0x831(%rbp)
movb -0x831(%rbp), %al
testb $0x1, %al
jne 0x20abc
jmp 0x20b17
leaq -0x6a8(%rbp), %rdi
callq 0x2f980
jmp 0x20aca
leaq -0x428(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0x6410
jmp 0x20adf
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
movb $0x1, -0x622(%rbp)
jmp 0x20b17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x6a8(%rbp), %rdi
callq 0x62d0
jmp 0x20cb9
leaq -0x428(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x6410
movq %rax, -0x840(%rbp)
jmp 0x20b33
movq -0x840(%rbp), %rdi
movq 0x6143f(%rip), %rsi     # 0x81f80
callq 0x64d0
jmp 0x20b48
leaq -0x228(%rbp), %rdi
callq 0x6800
movq %rdx, -0x850(%rbp)
movq %rax, -0x848(%rbp)
jmp 0x20b64
movq -0x850(%rbp), %rax
movq -0x848(%rbp), %rcx
movq %rcx, -0x6b8(%rbp)
movq %rax, -0x6b0(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x20f40
movq %rax, -0x858(%rbp)
jmp 0x20b95
movq -0x858(%rbp), %rcx
movslq -0x5ac(%rbp), %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x859(%rbp)
jl 0x20bbc
movb -0x5b1(%rbp), %al
movb %al, -0x859(%rbp)
movb -0x859(%rbp), %al
testb $0x1, %al
jne 0x20bc8
jmp 0x20c23
leaq -0x6d8(%rbp), %rdi
callq 0x2f9f0
jmp 0x20bd6
leaq -0x428(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
callq 0x6410
jmp 0x20beb
leaq -0x6d8(%rbp), %rdi
callq 0x62d0
movb $0x0, -0x5b1(%rbp)
jmp 0x20c23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x430(%rbp)
movl %eax, -0x434(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0x62d0
jmp 0x20cb9
jmp 0x2089b
leaq -0x428(%rbp), %rdi
callq 0x6680
jmp 0x20c36
leaq -0x228(%rbp), %rdi
callq 0x60a0
jmp 0x20c44
leaq -0x5a0(%rbp), %rdi
callq 0xfd80
leaq -0x548(%rbp), %rdi
callq 0xfd80
leaq -0x4e8(%rbp), %rdi
callq 0x62d0
leaq -0x4c0(%rbp), %rdi
callq 0x62d0
leaq -0x498(%rbp), %rdi
callq 0x62d0
leaq -0x478(%rbp), %rdi
callq 0x62d0
leaq -0x458(%rbp), %rdi
callq 0x62d0
leaq -0x428(%rbp), %rdi
callq 0x66c0
leaq -0x228(%rbp), %rdi
callq 0x6100
addq $0x860, %rsp            # imm = 0x860
popq %rbp
retq
leaq -0x5a0(%rbp), %rdi
callq 0xfd80
leaq -0x548(%rbp), %rdi
callq 0xfd80
leaq -0x4e8(%rbp), %rdi
callq 0x62d0
leaq -0x4c0(%rbp), %rdi
callq 0x62d0
leaq -0x498(%rbp), %rdi
callq 0x62d0
leaq -0x478(%rbp), %rdi
callq 0x62d0
leaq -0x458(%rbp), %rdi
callq 0x62d0
leaq -0x428(%rbp), %rdi
callq 0x66c0
leaq -0x228(%rbp), %rdi
callq 0x6100
movq -0x430(%rbp), %rdi
callq 0x6820
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)