// File: 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
subq $0xb20, %rsp            # imm = 0xB20
movl $0x0, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x3450
movq -0x728(%rbp), %rdi
movl $0x3f800000, -0x24(%rbp) # imm = 0x3F800000
leaq -0x24(%rbp), %rsi
callq 0x3470
jmp 0x12fb
movl $0x40000000, -0x38(%rbp) # imm = 0x40000000
leaq -0x20(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3470
jmp 0x1311
movl $0x40400000, -0x3c(%rbp) # imm = 0x40400000
leaq -0x20(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0x3470
jmp 0x1327
movq 0x8caa(%rip), %rdi      # 0x9fd8
movq 0x8c8b(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x133c
movq 0x8c95(%rip), %rdi      # 0x9fd8
leaq 0x4d17(%rip), %rsi      # 0x6061
callq 0x10e0
movq %rax, -0x730(%rbp)
jmp 0x1358
movq -0x730(%rbp), %rdi
movq 0x8c5a(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x136d
leaq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0x34a0
movl %edx, -0x73c(%rbp)
movq %rax, -0x738(%rbp)
jmp 0x138d
movl -0x73c(%rbp), %eax
movq -0x738(%rbp), %rcx
movq %rcx, -0x68(%rbp)
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rdi
callq 0x34e0
movl %edx, -0x74c(%rbp)
movq %rax, -0x748(%rbp)
jmp 0x13c7
movl -0x74c(%rbp), %eax
movq -0x748(%rbp), %rcx
movq %rcx, -0x88(%rbp)
movl %eax, -0x80(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x78(%rbp)
movl -0x80(%rbp), %eax
movl %eax, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x3520
movb %al, -0x74d(%rbp)
jmp 0x1404
movb -0x74d(%rbp), %al
testb $0x1, %al
jne 0x1410
jmp 0x1488
leaq -0x58(%rbp), %rdi
callq 0x3570
movq %rax, -0x758(%rbp)
jmp 0x1422
movq -0x758(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movss (%rax), %xmm0
movq 0x8b96(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x760(%rbp)
jmp 0x1450
movq -0x760(%rbp), %rdi
leaq 0x4bae(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1465
jmp 0x1467
leaq -0x58(%rbp), %rdi
callq 0x3590
jmp 0x1472
jmp 0x13ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x343c
movq 0x8b49(%rip), %rdi      # 0x9fd8
movq 0x8b2a(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x149d
movq 0x8b34(%rip), %rdi      # 0x9fd8
movq 0x8b15(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x14b2
movq 0x8b1f(%rip), %rdi      # 0x9fd8
leaq 0x4bc3(%rip), %rsi      # 0x6083
callq 0x10e0
movq %rax, -0x768(%rbp)
jmp 0x14ce
movq -0x768(%rbp), %rdi
movq 0x8ae4(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x14e3
leaq -0x20(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x35c0
movl %edx, -0x774(%rbp)
movq %rax, -0x770(%rbp)
jmp 0x1517
movl -0x774(%rbp), %eax
movq -0x770(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movl %eax, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, -0xa8(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x3600
movl %edx, -0x784(%rbp)
movq %rax, -0x780(%rbp)
jmp 0x1566
movl -0x784(%rbp), %eax
movq -0x780(%rbp), %rcx
movq %rcx, -0xe0(%rbp)
movl %eax, -0xd8(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0xd0(%rbp)
movl -0xd8(%rbp), %eax
movl %eax, -0xc8(%rbp)
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3640
movb %al, -0x785(%rbp)
jmp 0x15b5
movb -0x785(%rbp), %al
testb $0x1, %al
jne 0x15c1
jmp 0x162e
leaq -0xb0(%rbp), %rdi
callq 0x3690
movq %rax, -0x790(%rbp)
jmp 0x15d6
movq -0x790(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rax
movss (%rax), %xmm0
movq 0x89e2(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x798(%rbp)
jmp 0x1604
movq -0x798(%rbp), %rdi
leaq 0x49fa(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1619
jmp 0x161b
leaq -0xb0(%rbp), %rdi
callq 0x36b0
jmp 0x1629
jmp 0x159a
movq 0x89a3(%rip), %rdi      # 0x9fd8
movq 0x8984(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1643
movq 0x898e(%rip), %rdi      # 0x9fd8
movq 0x896f(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1658
movq 0x8979(%rip), %rdi      # 0x9fd8
leaq 0x49a8(%rip), %rsi      # 0x600e
callq 0x10e0
movq %rax, -0x7a0(%rbp)
jmp 0x1674
movq -0x7a0(%rbp), %rdi
movq 0x893e(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1689
leaq -0x20(%rbp), %rdi
callq 0x36e0
movl %edx, -0x7ac(%rbp)
movq %rax, -0x7a8(%rbp)
jmp 0x16a1
movl -0x7ac(%rbp), %eax
movq -0x7a8(%rbp), %rcx
movq %rcx, -0x108(%rbp)
movl %eax, -0x100(%rbp)
movq -0x108(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl -0x100(%rbp), %eax
movl %eax, -0xf0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x3770
movl %edx, -0x7bc(%rbp)
movq %rax, -0x7b8(%rbp)
jmp 0x16ed
movl -0x7bc(%rbp), %eax
movq -0x7b8(%rbp), %rcx
movq %rcx, -0x128(%rbp)
movl %eax, -0x120(%rbp)
movl -0x120(%rbp), %eax
movl %eax, -0x110(%rbp)
movq -0x128(%rbp), %rax
movq %rax, -0x118(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3720
movb %al, -0x7bd(%rbp)
jmp 0x173c
movb -0x7bd(%rbp), %al
testb $0x1, %al
jne 0x1748
jmp 0x17a7
leaq -0xf8(%rbp), %rdi
callq 0x37b0
movq %rax, -0x7c8(%rbp)
jmp 0x175d
movq -0x7c8(%rbp), %rax
movss (%rax), %xmm0
movq 0x8869(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x7d0(%rbp)
jmp 0x177d
movq -0x7d0(%rbp), %rdi
leaq 0x4881(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1792
jmp 0x1794
leaq -0xf8(%rbp), %rdi
callq 0x37d0
jmp 0x17a2
jmp 0x16d5
movq 0x882a(%rip), %rdi      # 0x9fd8
movq 0x880b(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x17bc
movq 0x8815(%rip), %rdi      # 0x9fd8
movq 0x87f6(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x17d1
movq 0x8800(%rip), %rdi      # 0x9fd8
leaq 0x489b(%rip), %rsi      # 0x607a
callq 0x10e0
movq %rax, -0x7d8(%rbp)
jmp 0x17ed
movq -0x7d8(%rbp), %rdi
movq 0x87c5(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1802
movq -0x98(%rbp), %rdi
callq 0x3800
movl %edx, -0x7e4(%rbp)
movq %rax, -0x7e0(%rbp)
jmp 0x181d
movl -0x7e4(%rbp), %eax
movq -0x7e0(%rbp), %rcx
movq %rcx, -0x148(%rbp)
movl %eax, -0x140(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x138(%rbp)
movl -0x140(%rbp), %eax
movl %eax, -0x130(%rbp)
movq -0x98(%rbp), %rdi
callq 0x3890
movl %edx, -0x7f4(%rbp)
movq %rax, -0x7f0(%rbp)
jmp 0x186c
movl -0x7f4(%rbp), %eax
movq -0x7f0(%rbp), %rcx
movq %rcx, -0x168(%rbp)
movl %eax, -0x160(%rbp)
movl -0x160(%rbp), %eax
movl %eax, -0x150(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3840
movb %al, -0x7f5(%rbp)
jmp 0x18bb
movb -0x7f5(%rbp), %al
testb $0x1, %al
jne 0x18c7
jmp 0x1926
leaq -0x138(%rbp), %rdi
callq 0x38d0
movq %rax, -0x800(%rbp)
jmp 0x18dc
movq -0x800(%rbp), %rax
movss (%rax), %xmm0
movq 0x86ea(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x808(%rbp)
jmp 0x18fc
movq -0x808(%rbp), %rdi
leaq 0x4702(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1911
jmp 0x1913
leaq -0x138(%rbp), %rdi
callq 0x38f0
jmp 0x1921
jmp 0x1851
movq 0x86ab(%rip), %rdi      # 0x9fd8
movq 0x868c(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x193b
leaq -0x180(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x3920
movq -0x810(%rbp), %rdi
movl $0x3f800000, -0x184(%rbp) # imm = 0x3F800000
leaq -0x184(%rbp), %rsi
callq 0x3470
jmp 0x196d
movl $0x40000000, -0x188(%rbp) # imm = 0x40000000
leaq -0x180(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3470
jmp 0x198c
movl $0x40400000, -0x18c(%rbp) # imm = 0x40400000
leaq -0x180(%rbp), %rdi
leaq -0x18c(%rbp), %rsi
callq 0x3470
jmp 0x19ab
leaq -0x180(%rbp), %rax
movq %rax, -0x198(%rbp)
movq 0x8618(%rip), %rdi      # 0x9fd8
movq 0x85f9(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x19ce
movq 0x8603(%rip), %rdi      # 0x9fd8
leaq 0x4645(%rip), %rsi      # 0x6021
callq 0x10e0
movq %rax, -0x818(%rbp)
jmp 0x19ea
movq -0x818(%rbp), %rdi
movq 0x85c8(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x19ff
leaq -0x180(%rbp), %rdi
callq 0x3940
movl %edx, -0x824(%rbp)
movq %rax, -0x820(%rbp)
jmp 0x1a1a
movl -0x824(%rbp), %eax
movq -0x820(%rbp), %rcx
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1b0(%rbp)
movq -0x1b8(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movl -0x1b0(%rbp), %eax
movl %eax, -0x1a0(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x39d0
movl %edx, -0x834(%rbp)
movq %rax, -0x830(%rbp)
jmp 0x1a69
movl -0x834(%rbp), %eax
movq -0x830(%rbp), %rcx
movq %rcx, -0x1d8(%rbp)
movl %eax, -0x1d0(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, -0x1c0(%rbp)
movq -0x1d8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3980
movb %al, -0x835(%rbp)
jmp 0x1ab8
movb -0x835(%rbp), %al
testb $0x1, %al
jne 0x1ac4
jmp 0x1b42
leaq -0x1a8(%rbp), %rdi
callq 0x3a10
movss %xmm0, -0x83c(%rbp)
jmp 0x1ada
movss -0x83c(%rbp), %xmm0
movss %xmm0, -0x1dc(%rbp)
movss -0x1dc(%rbp), %xmm0
movq 0x84df(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x848(%rbp)
jmp 0x1b07
movq -0x848(%rbp), %rdi
leaq 0x44f7(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1b1c
jmp 0x1b1e
leaq -0x1a8(%rbp), %rdi
callq 0x3a30
jmp 0x1b2c
jmp 0x1a4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x3430
movq 0x848f(%rip), %rdi      # 0x9fd8
movq 0x8470(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1b57
movq 0x847a(%rip), %rdi      # 0x9fd8
movq 0x845b(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1b6c
movq 0x8465(%rip), %rdi      # 0x9fd8
leaq 0x44c0(%rip), %rsi      # 0x603a
callq 0x10e0
movq %rax, -0x850(%rbp)
jmp 0x1b88
movq -0x850(%rbp), %rdi
movq 0x842a(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1b9d
movq -0x198(%rbp), %rdi
callq 0x3a60
movl %edx, -0x85c(%rbp)
movq %rax, -0x858(%rbp)
jmp 0x1bb8
movl -0x85c(%rbp), %eax
movq -0x858(%rbp), %rcx
movq %rcx, -0x200(%rbp)
movl %eax, -0x1f8(%rbp)
movq -0x200(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movl -0x1f8(%rbp), %eax
movl %eax, -0x1e8(%rbp)
movq -0x198(%rbp), %rdi
callq 0x3af0
movl %edx, -0x86c(%rbp)
movq %rax, -0x868(%rbp)
jmp 0x1c07
movl -0x86c(%rbp), %eax
movq -0x868(%rbp), %rcx
movq %rcx, -0x220(%rbp)
movl %eax, -0x218(%rbp)
movl -0x218(%rbp), %eax
movl %eax, -0x208(%rbp)
movq -0x220(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x3aa0
movb %al, -0x86d(%rbp)
jmp 0x1c56
movb -0x86d(%rbp), %al
testb $0x1, %al
jne 0x1c62
jmp 0x1ccf
leaq -0x1f0(%rbp), %rdi
callq 0x3b30
movss %xmm0, -0x874(%rbp)
jmp 0x1c78
movss -0x874(%rbp), %xmm0
movss %xmm0, -0x224(%rbp)
movss -0x224(%rbp), %xmm0
movq 0x8341(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x880(%rbp)
jmp 0x1ca5
movq -0x880(%rbp), %rdi
leaq 0x4359(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1cba
jmp 0x1cbc
leaq -0x1f0(%rbp), %rdi
callq 0x3b50
jmp 0x1cca
jmp 0x1bec
movq 0x8302(%rip), %rdi      # 0x9fd8
movq 0x82e3(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1ce4
movq 0x82ed(%rip), %rdi      # 0x9fd8
movq 0x82ce(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1cf9
movq 0x82d8(%rip), %rdi      # 0x9fd8
leaq 0x434a(%rip), %rsi      # 0x6051
callq 0x10e0
movq %rax, -0x888(%rbp)
jmp 0x1d15
movq -0x888(%rbp), %rdi
movq 0x829d(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1d2a
leaq -0x180(%rbp), %rdi
callq 0x3b80
movl %edx, -0x894(%rbp)
movq %rax, -0x890(%rbp)
jmp 0x1d45
movl -0x894(%rbp), %eax
movq -0x890(%rbp), %rcx
movq %rcx, -0x248(%rbp)
movl %eax, -0x240(%rbp)
movq -0x248(%rbp), %rax
movq %rax, -0x238(%rbp)
movl -0x240(%rbp), %eax
movl %eax, -0x230(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x3c10
movl %edx, -0x8a4(%rbp)
movq %rax, -0x8a0(%rbp)
jmp 0x1d94
movl -0x8a4(%rbp), %eax
movq -0x8a0(%rbp), %rcx
movq %rcx, -0x268(%rbp)
movl %eax, -0x260(%rbp)
movl -0x260(%rbp), %eax
movl %eax, -0x250(%rbp)
movq -0x268(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x238(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x3bc0
movb %al, -0x8a5(%rbp)
jmp 0x1de3
movb -0x8a5(%rbp), %al
testb $0x1, %al
jne 0x1def
jmp 0x1e5c
leaq -0x238(%rbp), %rdi
callq 0x3c50
movss %xmm0, -0x8ac(%rbp)
jmp 0x1e05
movss -0x8ac(%rbp), %xmm0
movss %xmm0, -0x26c(%rbp)
movss -0x26c(%rbp), %xmm0
movq 0x81b4(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x8b8(%rbp)
jmp 0x1e32
movq -0x8b8(%rbp), %rdi
leaq 0x41cc(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1e47
jmp 0x1e49
leaq -0x238(%rbp), %rdi
callq 0x3c70
jmp 0x1e57
jmp 0x1d79
movq 0x8175(%rip), %rdi      # 0x9fd8
movq 0x8156(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1e71
movq 0x8160(%rip), %rdi      # 0x9fd8
movq 0x8141(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1e86
movq 0x814b(%rip), %rdi      # 0x9fd8
leaq 0x41df(%rip), %rsi      # 0x6073
callq 0x10e0
movq %rax, -0x8c0(%rbp)
jmp 0x1ea2
movq -0x8c0(%rbp), %rdi
movq 0x8110(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1eb7
movq -0x198(%rbp), %rdi
callq 0x3ca0
movl %edx, -0x8cc(%rbp)
movq %rax, -0x8c8(%rbp)
jmp 0x1ed2
movl -0x8cc(%rbp), %eax
movq -0x8c8(%rbp), %rcx
movq %rcx, -0x290(%rbp)
movl %eax, -0x288(%rbp)
movq -0x290(%rbp), %rax
movq %rax, -0x280(%rbp)
movl -0x288(%rbp), %eax
movl %eax, -0x278(%rbp)
movq -0x198(%rbp), %rdi
callq 0x3d30
movl %edx, -0x8dc(%rbp)
movq %rax, -0x8d8(%rbp)
jmp 0x1f21
movl -0x8dc(%rbp), %eax
movq -0x8d8(%rbp), %rcx
movq %rcx, -0x2b0(%rbp)
movl %eax, -0x2a8(%rbp)
movl -0x2a8(%rbp), %eax
movl %eax, -0x298(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x2a0(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x3ce0
movb %al, -0x8dd(%rbp)
jmp 0x1f70
movb -0x8dd(%rbp), %al
testb $0x1, %al
jne 0x1f7c
jmp 0x1fe9
leaq -0x280(%rbp), %rdi
callq 0x3d70
movss %xmm0, -0x8e4(%rbp)
jmp 0x1f92
movss -0x8e4(%rbp), %xmm0
movss %xmm0, -0x2b4(%rbp)
movss -0x2b4(%rbp), %xmm0
movq 0x8027(%rip), %rdi      # 0x9fd8
callq 0x1090
movq %rax, -0x8f0(%rbp)
jmp 0x1fbf
movq -0x8f0(%rbp), %rdi
leaq 0x403f(%rip), %rsi      # 0x600c
callq 0x10e0
jmp 0x1fd4
jmp 0x1fd6
leaq -0x280(%rbp), %rdi
callq 0x3d90
jmp 0x1fe4
jmp 0x1f06
movq 0x7fe8(%rip), %rdi      # 0x9fd8
movq 0x7fc9(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x1ffe
movq 0x7fd3(%rip), %rdi      # 0x9fd8
movq 0x7fb4(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2013
leaq -0x20(%rbp), %rdi
callq 0x34e0
movl %edx, -0x8fc(%rbp)
movq %rax, -0x8f8(%rbp)
jmp 0x202b
movl -0x8fc(%rbp), %eax
movq -0x8f8(%rbp), %rcx
movq %rcx, -0x2e8(%rbp)
movl %eax, -0x2e0(%rbp)
movl -0x2e0(%rbp), %eax
movl %eax, -0x2d0(%rbp)
movq -0x2e8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x3dc0
jmp 0x2074
movq -0x98(%rbp), %rdi
callq 0x3600
movl %edx, -0x90c(%rbp)
movq %rax, -0x908(%rbp)
jmp 0x208f
movl -0x90c(%rbp), %eax
movq -0x908(%rbp), %rcx
movq %rcx, -0x308(%rbp)
movl %eax, -0x300(%rbp)
movl -0x300(%rbp), %eax
movl %eax, -0x2f0(%rbp)
movq -0x308(%rbp), %rax
movq %rax, -0x2f8(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3df0
movb %al, -0x90d(%rbp)
jmp 0x20de
movb -0x90d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x21cd
leaq -0x329(%rbp), %rdi
movq %rdi, -0x918(%rbp)
callq 0x1170
movq -0x918(%rbp), %rdx
leaq 0x3f80(%rip), %rsi      # 0x6093
leaq -0x328(%rbp), %rdi
callq 0x1120
jmp 0x2121
movq 0x7eb0(%rip), %rdi      # 0x9fd8
leaq -0x328(%rbp), %rsi
callq 0x10c0
movq %rax, -0x920(%rbp)
jmp 0x213d
movq -0x920(%rbp), %rdi
movq 0x7e75(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2152
leaq -0x328(%rbp), %rdi
callq 0x1080
leaq -0x329(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3f3f(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7e40(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x21bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x1080
leaq -0x329(%rbp), %rdi
callq 0x1110
jmp 0x3430
leaq -0x340(%rbp), %rdi
callq 0x3e20
jmp 0x21db
leaq -0x20(%rbp), %rdi
callq 0x34a0
movl %edx, -0x92c(%rbp)
movq %rax, -0x928(%rbp)
jmp 0x21f3
movl -0x92c(%rbp), %eax
movq -0x928(%rbp), %rcx
movq %rcx, -0x360(%rbp)
movl %eax, -0x358(%rbp)
movl -0x358(%rbp), %eax
movl %eax, -0x348(%rbp)
movq -0x360(%rbp), %rax
movq %rax, -0x350(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x3e30
jmp 0x223c
movq -0x98(%rbp), %rdi
callq 0x3600
movl %edx, -0x93c(%rbp)
movq %rax, -0x938(%rbp)
jmp 0x2257
movl -0x93c(%rbp), %eax
movq -0x938(%rbp), %rcx
movq %rcx, -0x380(%rbp)
movl %eax, -0x378(%rbp)
movl -0x378(%rbp), %eax
movl %eax, -0x368(%rbp)
movq -0x380(%rbp), %rax
movq %rax, -0x370(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x3640
movb %al, -0x93d(%rbp)
jmp 0x22a6
movb -0x93d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2395
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x948(%rbp)
callq 0x1170
movq -0x948(%rbp), %rdx
leaq 0x3de9(%rip), %rsi      # 0x60c4
leaq -0x3a0(%rbp), %rdi
callq 0x1120
jmp 0x22e9
movq 0x7ce8(%rip), %rdi      # 0x9fd8
leaq -0x3a0(%rbp), %rsi
callq 0x10c0
movq %rax, -0x950(%rbp)
jmp 0x2305
movq -0x950(%rbp), %rdi
movq 0x7cad(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x231a
leaq -0x3a0(%rbp), %rdi
callq 0x1080
leaq -0x3a1(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3d77(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7c78(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2384
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x1080
leaq -0x3a1(%rbp), %rdi
callq 0x1110
jmp 0x3430
leaq -0x20(%rbp), %rdi
callq 0x34a0
movl %edx, -0x95c(%rbp)
movq %rax, -0x958(%rbp)
jmp 0x23ad
movl -0x95c(%rbp), %eax
movq -0x958(%rbp), %rcx
movq %rcx, -0x3c8(%rbp)
movl %eax, -0x3c0(%rbp)
movl -0x3c0(%rbp), %eax
movl %eax, -0x3b0(%rbp)
movq -0x3c8(%rbp), %rax
movq %rax, -0x3b8(%rbp)
leaq -0x340(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3e30
jmp 0x23f6
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0x96c(%rbp)
movq %rax, -0x968(%rbp)
jmp 0x2411
movl -0x96c(%rbp), %eax
movq -0x968(%rbp), %rcx
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3e0(%rbp)
movl -0x3e0(%rbp), %eax
movl %eax, -0x3d0(%rbp)
movq -0x3e8(%rbp), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x340(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x3df0
movb %al, -0x96d(%rbp)
jmp 0x2460
movb -0x96d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x254f
leaq -0x409(%rbp), %rdi
movq %rdi, -0x978(%rbp)
callq 0x1170
movq -0x978(%rbp), %rdx
leaq 0x3c59(%rip), %rsi      # 0x60ee
leaq -0x408(%rbp), %rdi
callq 0x1120
jmp 0x24a3
movq 0x7b2e(%rip), %rdi      # 0x9fd8
leaq -0x408(%rbp), %rsi
callq 0x10c0
movq %rax, -0x980(%rbp)
jmp 0x24bf
movq -0x980(%rbp), %rdi
movq 0x7af3(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x24d4
leaq -0x408(%rbp), %rdi
callq 0x1080
leaq -0x409(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3bbd(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7abe(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x253e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x1080
leaq -0x409(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0x98c(%rbp)
movq %rax, -0x988(%rbp)
jmp 0x256a
movl -0x98c(%rbp), %eax
movq -0x988(%rbp), %rcx
movq %rcx, -0x430(%rbp)
movl %eax, -0x428(%rbp)
movl -0x428(%rbp), %eax
movl %eax, -0x418(%rbp)
movq -0x430(%rbp), %rax
movq %rax, -0x420(%rbp)
leaq -0x340(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x3df0
movb %al, -0x98d(%rbp)
jmp 0x25b9
movb -0x98d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x26a8
leaq -0x451(%rbp), %rdi
movq %rdi, -0x998(%rbp)
callq 0x1170
movq -0x998(%rbp), %rdx
leaq 0x3b00(%rip), %rsi      # 0x60ee
leaq -0x450(%rbp), %rdi
callq 0x1120
jmp 0x25fc
movq 0x79d5(%rip), %rdi      # 0x9fd8
leaq -0x450(%rbp), %rsi
callq 0x10c0
movq %rax, -0x9a0(%rbp)
jmp 0x2618
movq -0x9a0(%rbp), %rdi
movq 0x799a(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x262d
leaq -0x450(%rbp), %rdi
callq 0x1080
leaq -0x451(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3a64(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7965(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2697
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x1080
leaq -0x451(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0x9ac(%rbp)
movq %rax, -0x9a8(%rbp)
jmp 0x26c3
movl -0x9ac(%rbp), %eax
movq -0x9a8(%rbp), %rcx
movq %rcx, -0x478(%rbp)
movl %eax, -0x470(%rbp)
movl -0x470(%rbp), %eax
movl %eax, -0x460(%rbp)
movq -0x478(%rbp), %rax
movq %rax, -0x468(%rbp)
leaq -0x340(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x3640
movb %al, -0x9ad(%rbp)
jmp 0x2712
movb -0x9ad(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x280c
leaq -0x499(%rbp), %rdi
movq %rdi, -0x9b8(%rbp)
callq 0x1170
movq -0x9b8(%rbp), %rdx
leaq 0x39c8(%rip), %rsi      # 0x611a
leaq -0x498(%rbp), %rdi
callq 0x1120
jmp 0x2760
movq 0x7871(%rip), %rdi      # 0x9fd8
leaq -0x498(%rbp), %rsi
callq 0x10c0
movq %rax, -0x9c0(%rbp)
jmp 0x277c
movq -0x9c0(%rbp), %rdi
movq 0x7836(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2791
leaq -0x498(%rbp), %rdi
callq 0x1080
leaq -0x499(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3900(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7801(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x27fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x1080
leaq -0x499(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0x9cc(%rbp)
movq %rax, -0x9c8(%rbp)
jmp 0x2827
movl -0x9cc(%rbp), %eax
movq -0x9c8(%rbp), %rcx
movq %rcx, -0x4c0(%rbp)
movl %eax, -0x4b8(%rbp)
movl -0x4b8(%rbp), %eax
movl %eax, -0x4a8(%rbp)
movq -0x4c0(%rbp), %rax
movq %rax, -0x4b0(%rbp)
leaq -0x4b0(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x3df0
movb %al, -0x9cd(%rbp)
jmp 0x2876
movb -0x9cd(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2965
leaq -0x4e1(%rbp), %rdi
movq %rdi, -0x9d8(%rbp)
callq 0x1170
movq -0x9d8(%rbp), %rdx
leaq 0x38a2(%rip), %rsi      # 0x614d
leaq -0x4e0(%rbp), %rdi
callq 0x1120
jmp 0x28b9
movq 0x7718(%rip), %rdi      # 0x9fd8
leaq -0x4e0(%rbp), %rsi
callq 0x10c0
movq %rax, -0x9e0(%rbp)
jmp 0x28d5
movq -0x9e0(%rbp), %rdi
movq 0x76dd(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x28ea
leaq -0x4e0(%rbp), %rdi
callq 0x1080
leaq -0x4e1(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x37a7(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x76a8(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2954
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x1080
leaq -0x4e1(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0x9ec(%rbp)
movq %rax, -0x9e8(%rbp)
jmp 0x2980
movl -0x9ec(%rbp), %eax
movq -0x9e8(%rbp), %rcx
movq %rcx, -0x508(%rbp)
movl %eax, -0x500(%rbp)
movl -0x500(%rbp), %eax
movl %eax, -0x4f0(%rbp)
movq -0x508(%rbp), %rax
movq %rax, -0x4f8(%rbp)
leaq -0x4f8(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x3640
movb %al, -0x9ed(%rbp)
jmp 0x29cf
movb -0x9ed(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2ac9
leaq -0x529(%rbp), %rdi
movq %rdi, -0x9f8(%rbp)
callq 0x1170
movq -0x9f8(%rbp), %rdx
leaq 0x376a(%rip), %rsi      # 0x6179
leaq -0x528(%rbp), %rdi
callq 0x1120
jmp 0x2a1d
movq 0x75b4(%rip), %rdi      # 0x9fd8
leaq -0x528(%rbp), %rsi
callq 0x10c0
movq %rax, -0xa00(%rbp)
jmp 0x2a39
movq -0xa00(%rbp), %rdi
movq 0x7579(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2a4e
leaq -0x528(%rbp), %rdi
callq 0x1080
leaq -0x529(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x3643(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x7544(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2ab8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x528(%rbp), %rdi
callq 0x1080
leaq -0x529(%rbp), %rdi
callq 0x1110
jmp 0x3430
leaq -0x20(%rbp), %rdi
callq 0x34a0
movl %edx, -0xa0c(%rbp)
movq %rax, -0xa08(%rbp)
jmp 0x2ae1
movl -0xa0c(%rbp), %eax
movq -0xa08(%rbp), %rcx
movq %rcx, -0x550(%rbp)
movl %eax, -0x548(%rbp)
movl -0x548(%rbp), %eax
movl %eax, -0x538(%rbp)
movq -0x550(%rbp), %rax
movq %rax, -0x540(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x3570
movq %rax, -0xa18(%rbp)
jmp 0x2b2a
movq -0xa18(%rbp), %rax
movss (%rax), %xmm0
movss 0x34c7(%rip), %xmm1     # 0x6004
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2c31
leaq -0x571(%rbp), %rdi
movq %rdi, -0xa20(%rbp)
callq 0x1170
movq -0xa20(%rbp), %rdx
leaq 0x3635(%rip), %rsi      # 0x61ac
leaq -0x570(%rbp), %rdi
callq 0x1120
jmp 0x2b85
movq 0x744c(%rip), %rdi      # 0x9fd8
leaq -0x570(%rbp), %rsi
callq 0x10c0
movq %rax, -0xa28(%rbp)
jmp 0x2ba1
movq -0xa28(%rbp), %rdi
movq 0x7411(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2bb6
leaq -0x570(%rbp), %rdi
callq 0x1080
leaq -0x571(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x34db(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x73dc(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2c20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x1080
leaq -0x571(%rbp), %rdi
callq 0x1110
jmp 0x3430
leaq -0x20(%rbp), %rdi
callq 0x34a0
movl %edx, -0xa34(%rbp)
movq %rax, -0xa30(%rbp)
jmp 0x2c49
movl -0xa34(%rbp), %eax
movq -0xa30(%rbp), %rcx
movq %rcx, -0x598(%rbp)
movl %eax, -0x590(%rbp)
movl -0x590(%rbp), %eax
movl %eax, -0x580(%rbp)
movq -0x598(%rbp), %rax
movq %rax, -0x588(%rbp)
leaq -0x588(%rbp), %rdi
callq 0x3590
movq %rax, -0xa40(%rbp)
jmp 0x2c92
movq -0xa40(%rbp), %rdi
callq 0x3570
movq %rax, -0xa48(%rbp)
jmp 0x2ca7
movq -0xa48(%rbp), %rax
movss (%rax), %xmm0
movss 0x334e(%rip), %xmm1     # 0x6008
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2dae
leaq -0x5b9(%rbp), %rdi
movq %rdi, -0xa50(%rbp)
callq 0x1170
movq -0xa50(%rbp), %rdx
leaq 0x34e3(%rip), %rsi      # 0x61d7
leaq -0x5b8(%rbp), %rdi
callq 0x1120
jmp 0x2d02
movq 0x72cf(%rip), %rdi      # 0x9fd8
leaq -0x5b8(%rbp), %rsi
callq 0x10c0
movq %rax, -0xa58(%rbp)
jmp 0x2d1e
movq -0xa58(%rbp), %rdi
movq 0x7294(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2d33
leaq -0x5b8(%rbp), %rdi
callq 0x1080
leaq -0x5b9(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x335e(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x725f(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2d9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x1080
leaq -0x5b9(%rbp), %rdi
callq 0x1110
jmp 0x3430
leaq -0x20(%rbp), %rdi
callq 0x34a0
movl %edx, -0xa64(%rbp)
movq %rax, -0xa60(%rbp)
jmp 0x2dc6
movl -0xa64(%rbp), %eax
movq -0xa60(%rbp), %rcx
movq %rcx, -0x5f0(%rbp)
movl %eax, -0x5e8(%rbp)
movl -0x5e8(%rbp), %eax
movl %eax, -0x5d8(%rbp)
movq -0x5f0(%rbp), %rax
movq %rax, -0x5e0(%rbp)
leaq -0x5e0(%rbp), %rdi
xorl %esi, %esi
callq 0x3e60
movl %edx, -0xa74(%rbp)
movq %rax, -0xa70(%rbp)
jmp 0x2e17
movl -0xa74(%rbp), %eax
movq -0xa70(%rbp), %rcx
movq %rcx, -0x600(%rbp)
movl %eax, -0x5f8(%rbp)
movl -0x5f8(%rbp), %eax
movl %eax, -0x5c8(%rbp)
movq -0x600(%rbp), %rax
movq %rax, -0x5d0(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x3570
movq %rax, -0xa80(%rbp)
jmp 0x2e60
movq -0xa80(%rbp), %rax
movss (%rax), %xmm0
movss 0x3191(%rip), %xmm1     # 0x6004
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2f67
leaq -0x621(%rbp), %rdi
movq %rdi, -0xa88(%rbp)
callq 0x1170
movq -0xa88(%rbp), %rdx
leaq 0x3359(%rip), %rsi      # 0x6206
leaq -0x620(%rbp), %rdi
callq 0x1120
jmp 0x2ebb
movq 0x7116(%rip), %rdi      # 0x9fd8
leaq -0x620(%rbp), %rsi
callq 0x10c0
movq %rax, -0xa90(%rbp)
jmp 0x2ed7
movq -0xa90(%rbp), %rdi
movq 0x70db(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x2eec
leaq -0x620(%rbp), %rdi
callq 0x1080
leaq -0x621(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x31a5(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x70a6(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2f56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x1080
leaq -0x621(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0xa9c(%rbp)
movq %rax, -0xa98(%rbp)
jmp 0x2f82
movl -0xa9c(%rbp), %eax
movq -0xa98(%rbp), %rcx
movq %rcx, -0x648(%rbp)
movl %eax, -0x640(%rbp)
movl -0x640(%rbp), %eax
movl %eax, -0x630(%rbp)
movq -0x648(%rbp), %rax
movq %rax, -0x638(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x3690
movq %rax, -0xaa8(%rbp)
jmp 0x2fcb
movq -0xaa8(%rbp), %rax
movss (%rax), %xmm0
movss 0x3026(%rip), %xmm1     # 0x6004
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x30d2
leaq -0x669(%rbp), %rdi
movq %rdi, -0xab0(%rbp)
callq 0x1170
movq -0xab0(%rbp), %rdx
leaq 0x321d(%rip), %rsi      # 0x6235
leaq -0x668(%rbp), %rdi
callq 0x1120
jmp 0x3026
movq 0x6fab(%rip), %rdi      # 0x9fd8
leaq -0x668(%rbp), %rsi
callq 0x10c0
movq %rax, -0xab8(%rbp)
jmp 0x3042
movq -0xab8(%rbp), %rdi
movq 0x6f70(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x3057
leaq -0x668(%rbp), %rdi
callq 0x1080
leaq -0x669(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x303a(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x6f3b(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x30c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x1080
leaq -0x669(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0xac4(%rbp)
movq %rax, -0xac0(%rbp)
jmp 0x30ed
movl -0xac4(%rbp), %eax
movq -0xac0(%rbp), %rcx
movq %rcx, -0x690(%rbp)
movl %eax, -0x688(%rbp)
movl -0x688(%rbp), %eax
movl %eax, -0x678(%rbp)
movq -0x690(%rbp), %rax
movq %rax, -0x680(%rbp)
leaq -0x680(%rbp), %rdi
callq 0x36b0
movq %rax, -0xad0(%rbp)
jmp 0x3136
movq -0xad0(%rbp), %rdi
callq 0x3690
movq %rax, -0xad8(%rbp)
jmp 0x314b
movq -0xad8(%rbp), %rax
movss (%rax), %xmm0
movss 0x2eaa(%rip), %xmm1     # 0x6008
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x3252
leaq -0x6b1(%rbp), %rdi
movq %rdi, -0xae0(%rbp)
callq 0x1170
movq -0xae0(%rbp), %rdx
leaq 0x30c8(%rip), %rsi      # 0x6260
leaq -0x6b0(%rbp), %rdi
callq 0x1120
jmp 0x31a6
movq 0x6e2b(%rip), %rdi      # 0x9fd8
leaq -0x6b0(%rbp), %rsi
callq 0x10c0
movq %rax, -0xae8(%rbp)
jmp 0x31c2
movq -0xae8(%rbp), %rdi
movq 0x6df0(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x31d7
leaq -0x6b0(%rbp), %rdi
callq 0x1080
leaq -0x6b1(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x2eba(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x6dbb(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x3241
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x1080
leaq -0x6b1(%rbp), %rdi
callq 0x1110
jmp 0x3430
movq -0x98(%rbp), %rdi
callq 0x35c0
movl %edx, -0xaf4(%rbp)
movq %rax, -0xaf0(%rbp)
jmp 0x326d
movl -0xaf4(%rbp), %eax
movq -0xaf0(%rbp), %rcx
movq %rcx, -0x6e8(%rbp)
movl %eax, -0x6e0(%rbp)
movl -0x6e0(%rbp), %eax
movl %eax, -0x6d0(%rbp)
movq -0x6e8(%rbp), %rax
movq %rax, -0x6d8(%rbp)
leaq -0x6d8(%rbp), %rdi
xorl %esi, %esi
callq 0x3e90
movl %edx, -0xb04(%rbp)
movq %rax, -0xb00(%rbp)
jmp 0x32be
movl -0xb04(%rbp), %eax
movq -0xb00(%rbp), %rcx
movq %rcx, -0x6f8(%rbp)
movl %eax, -0x6f0(%rbp)
movl -0x6f0(%rbp), %eax
movl %eax, -0x6c0(%rbp)
movq -0x6f8(%rbp), %rax
movq %rax, -0x6c8(%rbp)
leaq -0x6c8(%rbp), %rdi
callq 0x3690
movq %rax, -0xb10(%rbp)
jmp 0x3307
movq -0xb10(%rbp), %rax
movss (%rax), %xmm0
movss 0x2cea(%rip), %xmm1     # 0x6004
ucomiss %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x3408
leaq -0x719(%rbp), %rdi
movq %rdi, -0xb18(%rbp)
callq 0x1170
movq -0xb18(%rbp), %rdx
leaq 0x2f3b(%rip), %rsi      # 0x628f
leaq -0x718(%rbp), %rdi
callq 0x1120
jmp 0x3362
movq 0x6c6f(%rip), %rdi      # 0x9fd8
leaq -0x718(%rbp), %rsi
callq 0x10c0
movq %rax, -0xb20(%rbp)
jmp 0x337e
movq -0xb20(%rbp), %rdi
movq 0x6c34(%rip), %rsi      # 0x9fc0
callq 0x1100
jmp 0x3393
leaq -0x718(%rbp), %rdi
callq 0x1080
leaq -0x719(%rbp), %rdi
callq 0x1110
movl $0x8, %edi
callq 0x1060
movq %rax, %rdi
leaq 0x2cfe(%rip), %rax      # 0x60bd
movq %rax, (%rdi)
movq 0x6bff(%rip), %rsi      # 0x9fc8
xorl %eax, %eax
movl %eax, %edx
callq 0x1150
jmp 0x344e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x33fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x718(%rbp), %rdi
callq 0x1080
leaq -0x719(%rbp), %rdi
callq 0x1110
jmp 0x3430
movl $0x0, -0x4(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x3ec0
leaq -0x20(%rbp), %rdi
callq 0x3ee0
movl -0x4(%rbp), %eax
addq $0xb20, %rsp            # imm = 0xB20
popq %rbp
retq
leaq -0x180(%rbp), %rdi
callq 0x3ec0
leaq -0x20(%rbp), %rdi
callq 0x3ee0
movq -0x30(%rbp), %rdi
callq 0x1160
nop