// File: /workspace/github_cpp_makefile_star2_O1/VinGarcia[P]Simple-Iterator-Template/tests.cpp
// Function: main
int main() {
  myClass c1;
  c1.vec.push_back(1.0);
  c1.vec.push_back(2.0);
  c1.vec.push_back(3.0);

  std::cout << std::endl;
  std::cout << "mutable iterator:" << std::endl;
  for (float& val : c1) {
    std::cout << val << " "; // val1 val2 val3
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "const iterator:" << std::endl;
  const myClass& c2 = c1;
  for (const float& val : c2) {
    std::cout << val << " "; // val1 val2 val3
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "reversed iterator:" << std::endl;
  for (auto it = c1.rbegin(); it != c1.rend(); ++it) {
    std::cout << *it << " "; // val3 val2 val1
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "reversed const iterator:" << std::endl;
  for (auto it = c2.rbegin(); it != c2.rend(); ++it) {
    std::cout << *it << " "; // val3 val2 val1
  }
  std::cout << std::endl;

  myClass_rvalue c1_rvalue;
  c1_rvalue.vec.push_back(1.0);
  c1_rvalue.vec.push_back(2.0);
  c1_rvalue.vec.push_back(3.0);
  const myClass_rvalue& c2_rvalue = c1_rvalue;

  std::cout << std::endl;
  std::cout << "rvalue mutable iterator:" << std::endl;
  for (auto it = c1_rvalue.begin(); it != c1_rvalue.end(); ++it) {
    float val = *it;
    std::cout << val << " "; // val3 val2 val1
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "rvalue const iterator:" << std::endl;
  for (auto it = c2_rvalue.begin(); it != c2_rvalue.end(); ++it) {
    float val = *it;
    std::cout << val << " "; // val3 val2 val1
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "rvalue reversed mutable iterator:" << std::endl;
  for (auto it = c1_rvalue.rbegin(); it != c1_rvalue.rend(); ++it) {
    float val = *it;
    std::cout << val << " "; // val3 val2 val1
  }
  std::cout << std::endl;

  std::cout << std::endl;
  std::cout << "rvalue reversed const iterator:" << std::endl;
  for (auto it = c2_rvalue.rbegin(); it != c2_rvalue.rend(); ++it) {
    float val = *it;
    std::cout << val << " "; // val3 val2 val1
  }
  std::cout << std::endl;
  std::cout << std::endl;

  // Testing copy-constructor and copy-assignment between
  // const_iterators and iterators:
  myClass::const_iterator it1 = c1.end();
  ASSERT(it1 == c2.end());
  myClass::const_iterator it2;
  it1 = c1.begin();
  ASSERT(it1 != c2.end());
  it2 = c1.begin();
  ASSERT(it2 == c2.begin());

  // Testing comparisons between const and normal iterators:
  ASSERT(it2 == c2.begin());
  ASSERT((it2 != c2.begin()) == 0);
  ASSERT(c2.begin() == it2);
  ASSERT((c2.begin() != it2) == 0);

  // Testing operators++ pre and post-fixed:
  ASSERT(*c1.begin() == 1);
  ASSERT(*(++c1.begin()) == 2);
  ASSERT(*(c1.begin()++) == 1);

  // Testing operators++ pre and post-fixed for const classes:
  ASSERT(*c2.begin() == 1);
  ASSERT(*(++c2.begin()) == 2);
  ASSERT(*(c2.begin()++) == 1);

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movq $0x0, -0x50(%rbp)
movl $0x3f800000, -0x80(%rbp) # imm = 0x3F800000
movq -0x58(%rbp), %rsi
testq %rsi, %rsi
je 0x12fc
movl $0x3f800000, (%rsi)     # imm = 0x3F800000
addq $0x4, %rsi
movq %rsi, -0x58(%rbp)
jmp 0x1309
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movl $0x40000000, -0x80(%rbp) # imm = 0x40000000
movq -0x58(%rbp), %rsi
cmpq -0x50(%rbp), %rsi
je 0x132a
movl $0x40000000, (%rsi)     # imm = 0x40000000
addq $0x4, %rsi
movq %rsi, -0x58(%rbp)
jmp 0x1337
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movl $0x40400000, -0x80(%rbp) # imm = 0x40400000
movq -0x58(%rbp), %rsi
cmpq -0x50(%rbp), %rsi
je 0x1358
movl $0x40400000, (%rsi)     # imm = 0x40400000
addq $0x4, %rsi
movq %rsi, -0x58(%rbp)
jmp 0x1365
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movq 0x2c6c(%rip), %rdi      # 0x3fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2c51(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x2c3d(%rip), %rbx      # 0x3fd8
leaq 0xcc3(%rip), %rsi       # 0x2065
movl $0x11, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2c0b(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movabsq $0x3fffffffc, %rcx      # imm = 0x3FFFFFFFC
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
testq %rcx, %rax
je 0x1439
shrq $0x2, %rax
movl %eax, %r13d
xorl %r12d, %r12d
movq 0x2bd3(%rip), %r14      # 0x3fd8
leaq 0xc04(%rip), %r15       # 0x2010
movq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r12,4), %xmm0
movq %r14, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1100
incq %r12
cmpq %r12, %r13
jne 0x140c
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2b81(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2b53(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x2b3f(%rip), %rbx      # 0x3fd8
leaq 0xbe7(%rip), %rsi       # 0x2087
movl $0xf, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2b0d(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
movabsq $0x3fffffffc, %rcx      # imm = 0x3FFFFFFFC
testq %rcx, %rax
je 0x1537
shrq $0x2, %rax
movl %eax, %r13d
xorl %r12d, %r12d
movq 0x2ad5(%rip), %r14      # 0x3fd8
leaq 0xb06(%rip), %r15       # 0x2010
movq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r12,4), %xmm0
movq %r14, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1100
incq %r12
cmpq %r12, %r13
jne 0x150a
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2a83(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2a55(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x2a41(%rip), %rbx      # 0x3fd8
leaq 0xa74(%rip), %rsi       # 0x2012
movl $0x12, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2a0f(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
shrq $0x2, %rax
movslq %eax, %r15
movq 0x29ec(%rip), %rbx      # 0x3fd8
leaq 0xa1d(%rip), %r14       # 0x2010
subq $0x1, %r15
jb 0x1620
movq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r15,4), %xmm0
movq %rbx, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x1100
jmp 0x15f3
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x299a(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x296c(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x2958(%rip), %rbx      # 0x3fd8
leaq 0x9f7(%rip), %rsi       # 0x207e
movl $0x18, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2926(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
shrq $0x2, %rax
movslq %eax, %r15
movq 0x2903(%rip), %rbx      # 0x3fd8
leaq 0x934(%rip), %r14       # 0x2010
subq $0x1, %r15
jb 0x1709
movq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r15,4), %xmm0
movq %rbx, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x1100
jmp 0x16dc
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x28b1(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x3f800000, -0x80(%rbp) # imm = 0x3F800000
movq -0x38(%rbp), %rsi
testq %rsi, %rsi
je 0x1766
movl $0x3f800000, (%rsi)     # imm = 0x3F800000
addq $0x4, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x1773
leaq -0x40(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movl $0x40000000, -0x80(%rbp) # imm = 0x40000000
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
movabsq $0x3fffffffc, %r12      # imm = 0x3FFFFFFFC
je 0x179e
movl $0x40000000, (%rsi)     # imm = 0x40000000
addq $0x4, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x17ab
leaq -0x40(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movl $0x40400000, -0x80(%rbp) # imm = 0x40400000
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x17cc
movl $0x40400000, (%rsi)     # imm = 0x40400000
addq $0x4, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x17d9
leaq -0x40(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1db2
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x27e1(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x27cd(%rip), %rbx      # 0x3fd8
leaq 0x813(%rip), %rsi       # 0x2025
movl $0x18, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x279b(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rax, %rcx
testq %r12, %rcx
je 0x18b1
xorl %r13d, %r13d
movq 0x2771(%rip), %r14      # 0x3fd8
leaq 0x7a2(%rip), %r15       # 0x2010
movss (%rax,%r13,4), %xmm0
addss 0x788(%rip), %xmm0      # 0x2004
cvtss2sd %xmm0, %xmm0
movq %r14, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1100
incq %r13
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rax, %rcx
shrq $0x2, %rcx
movl %ecx, %ecx
cmpq %rcx, %r13
jne 0x186e
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2709(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x26db(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x26c7(%rip), %rbx      # 0x3fd8
leaq 0x726(%rip), %rsi       # 0x203e
movl $0x16, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2695(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rax, %rcx
testq %r12, %rcx
je 0x19b7
xorl %r13d, %r13d
movq 0x266b(%rip), %r14      # 0x3fd8
leaq 0x69c(%rip), %r15       # 0x2010
movss (%rax,%r13,4), %xmm0
addss 0x682(%rip), %xmm0      # 0x2004
cvtss2sd %xmm0, %xmm0
movq %r14, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x1100
incq %r13
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rax, %rcx
shrq $0x2, %rcx
movl %ecx, %ecx
cmpq %rcx, %r13
jne 0x1974
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2603(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x25d5(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x25c1(%rip), %rbx      # 0x3fd8
leaq 0x637(%rip), %rsi       # 0x2055
movl $0x21, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x258f(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x38(%rbp), %rax
subq -0x40(%rbp), %rax
shrq $0x2, %rax
movslq %eax, %r15
movq 0x256c(%rip), %rbx      # 0x3fd8
leaq 0x59d(%rip), %r14       # 0x2010
subq $0x1, %r15
jb 0x1aa9
movq -0x40(%rbp), %rax
movss (%rax,%r15,4), %xmm0
addss 0x579(%rip), %xmm0      # 0x2004
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x1100
jmp 0x1a73
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x2511(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x24e3(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq 0x24cf(%rip), %rbx      # 0x3fd8
leaq 0x567(%rip), %rsi       # 0x2077
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x1100
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x249d(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x38(%rbp), %rax
subq -0x40(%rbp), %rax
shrq $0x2, %rax
movslq %eax, %r15
movq 0x247a(%rip), %rbx      # 0x3fd8
leaq 0x4ab(%rip), %r14       # 0x2010
subq $0x1, %r15
jb 0x1b9b
movq -0x40(%rbp), %rax
movss (%rax,%r15,4), %xmm0
addss 0x487(%rip), %xmm0      # 0x2004
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x1120
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x1100
jmp 0x1b65
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x241f(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq 0x23f1(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1080
movq -0x60(%rbp), %rax
movq -0x58(%rbp), %rcx
subq %rax, %rcx
testq %r12, %rcx
je 0x1c60
movss (%rax), %xmm0
ucomiss 0x3f9(%rip), %xmm0      # 0x2008
jne 0x1c9d
jp 0x1c9d
movss 0x4(%rax), %xmm0
ucomiss 0x3e5(%rip), %xmm0      # 0x200c
jne 0x1cda
jp 0x1cda
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x1c41
callq 0x10d0
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0x1c4f
callq 0x10d0
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x42f(%rip), %rsi       # 0x209e
leaq 0x451(%rip), %rdx       # 0x20c7
leaq -0x80(%rbp), %rdi
callq 0x1eee
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x234a(%rip), %rdi      # 0x3fd8
callq 0x1100
movq %rax, %rdi
callq 0x1050
jmp 0x1d15
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x41c(%rip), %rsi       # 0x20c8
leaq 0x43f(%rip), %rdx       # 0x20f2
leaq -0x80(%rbp), %rdi
callq 0x1eee
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x230d(%rip), %rdi      # 0x3fd8
callq 0x1100
movq %rax, %rdi
callq 0x1050
jmp 0x1d15
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x40a(%rip), %rsi       # 0x20f3
leaq 0x431(%rip), %rdx       # 0x2121
leaq -0x80(%rbp), %rdi
callq 0x1eee
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x22d0(%rip), %rdi      # 0x3fd8
callq 0x1100
movq %rax, %rdi
callq 0x1050
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d23
callq 0x10d0
movl $0x8, %edi
callq 0x1060
leaq 0x363(%rip), %rcx       # 0x2097
movq %rcx, (%rax)
movq 0x228a(%rip), %rsi      # 0x3fc8
movq %rax, %rdi
xorl %edx, %edx
callq 0x1140
jmp 0x1d4e
jmp 0x1d83
jmp 0x1d4e
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d86
callq 0x10d0
jmp 0x1d86
jmp 0x1d83
jmp 0x1d83
jmp 0x1d83
jmp 0x1d98
jmp 0x1d98
jmp 0x1d98
jmp 0x1d83
jmp 0x1d83
jmp 0x1d83
jmp 0x1d98
jmp 0x1d98
jmp 0x1d83
jmp 0x1d83
jmp 0x1d98
jmp 0x1d98
jmp 0x1d83
jmp 0x1d83
movq %rax, %rbx
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x1d9b
callq 0x10d0
jmp 0x1d9b
jmp 0x1d98
movq %rax, %rbx
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0x1da9
callq 0x10d0
movq %rbx, %rdi
callq 0x1150
nop