// File: /workspace/github_cpp_makefile_star2_O3/lvandeve[P]lodepng/lodepng_benchmark.cpp
// Function: main
int main(int argc, char *argv[]) {
  verbose = false;
  do_decode = true;
  do_encode = true;
  decode_encoded = true;

  std::vector<std::string> files;

  for(int i = 1; i < argc; i++) {
    std::string arg = argv[i];
    if(arg == "-v") verbose = true;
    else if(arg == "-h" || arg == "--help") { showHelp(argc, argv); return 0; }
    else if(arg == "-d") do_decode ? (do_encode = false) : (do_decode = true);
    else if(arg == "-e") do_encode ? (do_decode = false) : (do_encode = true);
    else if(arg == "-o") decode_encoded = false;
    else if(arg == "-m") apply_mods = true;
    else if(arg == "--dumpdir" && i + 1 < argc) {
      dumpdir = argv[++i];
    }
    else files.push_back(arg);
  }

  if(!do_encode) decode_encoded = false;

  if(files.empty()) {
    std::cout << "must give .png filenames to benchamrk" << std::endl;
    showHelp(argc, argv);
    return 1;
  }



  for(size_t i = 0; i < files.size(); i++) {
    testFile(files[i]);
  }

  // test images stats
  if(verbose) {
    std::cout << "Final Summary: " << std::endl;
    std::cout << "input images: " << files.size() << std::endl;
    std::cout << "total_pixels: " << total_pixels << std::endl;
    // file size of original PNGs that were given as command line arguments to the tool
    std::cout << "total_png_orig_size: " << total_png_orig_size << " (" << (8.0 * total_png_orig_size / total_pixels) << " bpp)" << std::endl;
    // size of the data inside the original PNGs, dependent on color encoding (bit depth used in the PNG)
    std::cout << "total_raw_orig_size: " << total_raw_orig_size << " (" << (8.0 * total_raw_orig_size / total_pixels) << " bpp)" << std::endl;
    // size of the pixel data given to the benchmark encoder, dependent on color encoding (bit depth used in the image representation in the benchmark tool, probably 32 bits)
    if(do_encode) std::cout << "total_raw_enc_size: " << total_raw_enc_size << " (" << (8.0 * total_raw_enc_size / total_pixels) << " bpp)" << std::endl;
    // file size of PNGs created by the benchmark encoder
    if(do_encode) std::cout << "total_png_out_size: " << total_png_out_size << " (" << (8.0 * total_png_out_size / total_pixels) << " bpp)" << std::endl;
    // size of the data inside the PNGs created by the benchmark encoder, dependent on color encoding (bit depth used in the PNG), may differ from total_raw_orig_size since the encoder may choose to use a different color encoding
    if(do_encode) std::cout << "total_raw_out_size: " << total_raw_out_size << " (" << (8.0 * total_raw_out_size / total_pixels) << " bpp)" << std::endl;
    // size of file size of the PNGs given to the benchmark decoder, this could either be the original ones or the ones encoded by the benchmark encoder depending on user options
    if(do_decode) std::cout << "total_png_in_size: " << total_png_in_size << " (" << (8.0 * total_png_in_size / total_pixels) << " bpp)" << std::endl;
    // size of the data inside the PNGs mentioned at total_png_in_size, dependent on color encoding (bit depth used in the image representation in the benchmark tool, probably 32 bits)
    if(do_decode) std::cout << "total_raw_in_size: " << total_raw_in_size << " (" << (8.0 * total_raw_in_size / total_pixels) << " bpp)" << std::endl;
    // size of the pixel data requested from the benchmark decoder, dependent on color encoding requested (bit depth used in the image representation in the benchmark tool, probably 32 bits)
    if(do_decode) std::cout << "total_raw_dec_size: " << total_raw_dec_size << " (" << (8.0 * total_raw_dec_size / total_pixels) << " bpp)" << std::endl;
  }

  // final encoding stats
  if(do_encode) {
    std::cout << "encoding time: " << total_enc_time << "s on " << total_pixels << " pixels and " << total_raw_out_size << " raw bytes ("
              << ((total_raw_enc_size/1024.0/1024.0)/(total_enc_time)) << " MB/s, " << ((total_pixels/1024.0/1024.0)/(total_enc_time)) << " MP/s)" << std::endl;
    std::cout << "encoded size: " << total_png_out_size << " (" << (100.0 * total_png_out_size / total_raw_out_size) << "%), bpp: "
              << (8.0 * total_png_out_size / total_pixels) << std::endl;
  }

  // final decoding stats
  if(do_decode) {
    if(verbose) std::cout << "decoding iterations: " << NUM_DECODE << std::endl;
    std::cout << "decoding time: " << total_dec_time/NUM_DECODE << "s on " << total_pixels << " pixels and " << total_png_in_size
              << " compressed bytes (" << ((total_raw_in_size/1024.0/1024.0)/(total_dec_time/NUM_DECODE)) << " MB/s, "
              << ((total_pixels/1024.0/1024.0)/(total_dec_time/NUM_DECODE)) << " MP/s)" << std::endl;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbx
movb $0x0, 0xb7fc(%rip)      # 0x1d228
movb $0x1, %al
movb %al, 0xb7f5(%rip)       # 0x1d229
movb %al, 0xb7f0(%rip)       # 0x1d22a
movb %al, 0xb7eb(%rip)       # 0x1d22b
xorpd %xmm0, %xmm0
movapd %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
cmpl $0x2, %edi
jl 0x11c35
movl %edi, %ebp
movl $0x1, %r13d
leaq 0x38(%rsp), %r14
leaq 0x65ba(%rip), %r12      # 0x1802a
movslq %r13d, %rax
movq (%rbx,%rax,8), %rsi
movq %r14, %rdi
leaq 0xf(%rsp), %rdx
callq 0x2090
movq %r14, %rdi
movq %r12, %rsi
callq 0x2060
testl %eax, %eax
je 0x11b90
movq %r14, %rdi
leaq 0x658c(%rip), %rsi      # 0x1802d
callq 0x2060
testl %eax, %eax
je 0x11b83
movq %r14, %rdi
leaq 0x6578(%rip), %rsi      # 0x18030
callq 0x2060
testl %eax, %eax
je 0x11b83
movq %r14, %rdi
leaq 0x6568(%rip), %rsi      # 0x18037
callq 0x2060
testl %eax, %eax
je 0x11bc1
movq %r14, %rdi
leaq 0x6554(%rip), %rsi      # 0x1803a
callq 0x2060
testl %eax, %eax
je 0x11bd3
movq %r14, %rdi
leaq 0x6540(%rip), %rsi      # 0x1803d
callq 0x2060
testl %eax, %eax
je 0x11bee
movq %r14, %rdi
leaq 0x652c(%rip), %rsi      # 0x18040
callq 0x2060
testl %eax, %eax
je 0x11c12
movq %r14, %rdi
leaq 0x6518(%rip), %rsi      # 0x18043
callq 0x2060
testl %eax, %eax
jne 0x11bf7
leal 0x1(%r13), %eax
cmpl %ebp, %eax
jge 0x11bf7
movl %eax, %r13d
cltq
movq (%rbx,%rax,8), %rdi
movq %rdi, 0x28(%rsp)
movq 0xb6df(%rip), %rax      # 0x1d238
movq %rax, 0x30(%rsp)
callq 0x20b0
movb $0x1, %r15b
leaq 0xb6c3(%rip), %rdi      # 0x1d230
xorl %esi, %esi
movq 0x30(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq %rax, %r8
callq 0x2290
jmp 0x11b9a
movq %rbx, %rsi
callq 0x117d8
xorl %r15d, %r15d
jmp 0x11b9a
movb $0x1, 0xb691(%rip)      # 0x1d228
movb $0x1, %r15b
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x11bae
callq 0x2180
testb %r15b, %r15b
je 0x11c1e
incl %r13d
cmpl %ebp, %r13d
jl 0x11a70
jmp 0x11c25
cmpb $0x1, 0xb661(%rip)      # 0x1d229
jne 0x11be5
movb $0x0, 0xb659(%rip)      # 0x1d22a
jmp 0x11b97
cmpb $0x1, 0xb650(%rip)      # 0x1d22a
jne 0x11c09
movb $0x0, 0xb646(%rip)      # 0x1d229
jmp 0x11b97
movb $0x1, 0xb63d(%rip)      # 0x1d229
jmp 0x11b97
movb $0x0, 0xb636(%rip)      # 0x1d22b
jmp 0x11b97
movb $0x1, %r15b
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x12cce
jmp 0x11b9a
movb $0x1, 0xb61a(%rip)      # 0x1d22a
jmp 0x11b97
movb $0x1, 0xb5b0(%rip)      # 0x1d1c9
jmp 0x11b97
xorl %ebp, %ebp
jmp 0x1298f
testb $0x1, 0xb5fe(%rip)      # 0x1d22a
jne 0x11c35
movb $0x0, 0xb5f6(%rip)      # 0x1d22b
movq 0x10(%rsp), %rdi
cmpq 0x18(%rsp), %rdi
je 0x1293c
xorl %ebx, %ebx
xorl %r14d, %r14d
addq %rbx, %rdi
callq 0x113ad
incq %r14
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
subq %rdi, %rax
sarq $0x5, %rax
addq $0x20, %rbx
cmpq %rax, %r14
jb 0x11c4a
cmpb $0x0, 0xb5b2(%rip)      # 0x1d228
je 0x12497
movq 0xb355(%rip), %rbx      # 0x1cfd8
leaq 0x63e9(%rip), %rsi      # 0x18073
movl $0xf, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq 0xb323(%rip), %rdi      # 0x1cfd8
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xb30f(%rip), %rdi      # 0x1cfd8
leaq 0x63b3(%rip), %rsi      # 0x18083
movl $0xe, %edx
callq 0x2200
movq 0x18(%rsp), %rsi
subq 0x10(%rsp), %rsi
sarq $0x5, %rsi
movq 0xb2e9(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xb2b3(%rip), %rdi      # 0x1cfd8
leaq 0x6366(%rip), %rsi      # 0x18092
movl $0xe, %edx
callq 0x2200
movq 0xb493(%rip), %rsi      # 0x1d1d0
movq 0xb294(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xb25e(%rip), %rdi      # 0x1cfd8
leaq 0x6320(%rip), %rsi      # 0x180a1
movl $0x15, %edx
callq 0x2200
movq 0xb446(%rip), %rsi      # 0x1d1d8
movq 0xb23f(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x6436(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xb41b(%rip), %xmm1     # 0x1d1d8
movsd 0x5f8b(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5f90(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5f48(%rip), %xmm0     # 0x17d30
movsd 0xb3e0(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x629e(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xb184(%rip), %rdi      # 0x1cfd8
leaq 0x6262(%rip), %rsi      # 0x180bd
movl $0x15, %edx
callq 0x2200
movq 0xb374(%rip), %rsi      # 0x1d1e0
movq 0xb165(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x635c(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xb349(%rip), %xmm1     # 0x1d1e0
movsd 0x5eb1(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5eb6(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5e6e(%rip), %xmm0     # 0x17d30
movsd 0xb306(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x61c4(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xb2fd(%rip), %al       # 0x1d22a
cmpb $0x1, %al
jne 0x12015
movq 0xb09c(%rip), %rdi      # 0x1cfd8
leaq 0x6190(%rip), %rsi      # 0x180d3
movl $0x14, %edx
callq 0x2200
movq 0xb2bc(%rip), %rsi      # 0x1d210
movq 0xb07d(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x6274(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xb291(%rip), %xmm1     # 0x1d210
movsd 0x5dc9(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5dce(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5d86(%rip), %xmm0     # 0x17d30
movsd 0xb21e(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x60dc(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xb215(%rip), %al       # 0x1d22a
testb $0x1, %al
je 0x120fd
movq 0xafb4(%rip), %rdi      # 0x1cfd8
leaq 0x60bd(%rip), %rsi      # 0x180e8
movl $0x14, %edx
callq 0x2200
movq 0xb1dc(%rip), %rsi      # 0x1d218
movq 0xaf95(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x618c(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xb1b1(%rip), %xmm1     # 0x1d218
movsd 0x5ce1(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5ce6(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5c9e(%rip), %xmm0     # 0x17d30
movsd 0xb136(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5ff4(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xb12d(%rip), %al       # 0x1d22a
testb $0x1, %al
je 0x121df
movq 0xaecc(%rip), %rdi      # 0x1cfd8
leaq 0x5fea(%rip), %rsi      # 0x180fd
movl $0x14, %edx
callq 0x2200
movq 0xb0fc(%rip), %rsi      # 0x1d220
movq 0xaead(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x60a4(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xb0d1(%rip), %xmm1     # 0x1d220
movsd 0x5bf9(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5bfe(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5bb6(%rip), %xmm0     # 0x17d30
movsd 0xb04e(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5f0c(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xb044(%rip), %al       # 0x1d229
cmpb $0x1, %al
jne 0x122cd
movq 0xade4(%rip), %rdi      # 0x1cfd8
leaq 0x5f17(%rip), %rsi      # 0x18112
movl $0x13, %edx
callq 0x2200
movq 0xafe4(%rip), %rsi      # 0x1d1f0
movq 0xadc5(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x5fbc(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xafb9(%rip), %xmm1     # 0x1d1f0
movsd 0x5b11(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5b16(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5ace(%rip), %xmm0     # 0x17d30
movsd 0xaf66(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5e24(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xaf5c(%rip), %al       # 0x1d229
testb $0x1, %al
je 0x123b5
movq 0xacfc(%rip), %rdi      # 0x1cfd8
leaq 0x5e43(%rip), %rsi      # 0x18126
movl $0x13, %edx
callq 0x2200
movq 0xaf04(%rip), %rsi      # 0x1d1f8
movq 0xacdd(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x5ed4(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xaed9(%rip), %xmm1     # 0x1d1f8
movsd 0x5a29(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5a2e(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x59e6(%rip), %xmm0     # 0x17d30
movsd 0xae7e(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5d3c(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movb 0xae74(%rip), %al       # 0x1d229
testb $0x1, %al
je 0x12497
movq 0xac14(%rip), %rdi      # 0x1cfd8
leaq 0x5d6f(%rip), %rsi      # 0x1813a
movl $0x14, %edx
callq 0x2200
movq 0xae24(%rip), %rsi      # 0x1d200
movq 0xabf5(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x5dec(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xadf9(%rip), %xmm1     # 0x1d200
movsd 0x5941(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5946(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x58fe(%rip), %xmm0     # 0x17d30
movsd 0xad96(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5c54(%rip), %rsi      # 0x180b7
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
cmpb $0x1, 0xad8c(%rip)      # 0x1d22a
jne 0x12745
movq 0xab2d(%rip), %rdi      # 0x1cfd8
leaq 0x5c9d(%rip), %rsi      # 0x1814f
movl $0xf, %edx
callq 0x2200
movsd 0xad44(%rip), %xmm0     # 0x1d208
movq 0xab0d(%rip), %rdi      # 0x1cfd8
callq 0x22a0
movq %rax, %rbx
leaq 0x5c85(%rip), %rsi      # 0x1815f
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq 0xace2(%rip), %rsi      # 0x1d1d0
movq %rbx, %rdi
callq 0x2110
movq %rax, %rbx
leaq 0x5c65(%rip), %rsi      # 0x18165
movl $0xc, %edx
movq %rax, %rdi
callq 0x2200
movq 0xad0c(%rip), %rsi      # 0x1d220
movq %rbx, %rdi
callq 0x2110
movq %rax, %rbx
leaq 0x5c4c(%rip), %rsi      # 0x18172
movl $0xc, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xacd5(%rip), %xmm1     # 0x1d210
unpcklps 0x580e(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x5816(%rip), %xmm1     # 0x17d60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x57da(%rip), %xmm1     # 0x17d38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
divsd 0xac9a(%rip), %xmm0     # 0x1d208
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5bff(%rip), %rsi      # 0x1817f
movl $0x7, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xac3b(%rip), %xmm1     # 0x1d1d0
unpcklps 0x57b4(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x57bc(%rip), %xmm1     # 0x17d60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x5780(%rip), %xmm1     # 0x17d38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
divsd 0xac40(%rip), %xmm0     # 0x1d208
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5bad(%rip), %rsi      # 0x18187
movl $0x6, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xa9c3(%rip), %rdi      # 0x1cfd8
leaq 0x5b72(%rip), %rsi      # 0x1818e
movl $0xe, %edx
callq 0x2200
movq 0xabeb(%rip), %rsi      # 0x1d218
movq 0xa9a4(%rip), %rdi      # 0x1cfd8
callq 0x2110
movq %rax, %rbx
leaq 0x5b9b(%rip), %rsi      # 0x181de
movl $0x2, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xabc0(%rip), %xmm1     # 0x1d218
movsd 0x56f0(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x56f5(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x56a5(%rip), %xmm0     # 0x17d28
movsd 0xab95(%rip), %xmm1     # 0x1d220
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5ae9(%rip), %rsi      # 0x1819d
movl $0x9, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xab4f(%rip), %xmm1     # 0x1d218
movsd 0x567f(%rip), %xmm2     # 0x17d50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x5684(%rip), %xmm3     # 0x17d60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x563c(%rip), %xmm0     # 0x17d30
movsd 0xaad4(%rip), %xmm1     # 0x1d1d0
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
xorl %ebp, %ebp
cmpb $0x1, 0xaadb(%rip)      # 0x1d229
jne 0x1298f
cmpb $0x1, 0xaacd(%rip)      # 0x1d228
jne 0x127b0
movq 0xa874(%rip), %rdi      # 0x1cfd8
leaq 0x5a3c(%rip), %rsi      # 0x181a7
movl $0x15, %edx
callq 0x2200
movq 0xa85c(%rip), %rdi      # 0x1cfd8
movl $0x5, %esi
callq 0x22f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movq 0xa821(%rip), %rdi      # 0x1cfd8
leaq 0x59ff(%rip), %rsi      # 0x181bd
movl $0xf, %edx
callq 0x2200
movsd 0xaa18(%rip), %xmm0     # 0x1d1e8
divsd 0x5568(%rip), %xmm0     # 0x17d40
movq 0xa7f9(%rip), %rdi      # 0x1cfd8
callq 0x22a0
movq %rax, %rbx
leaq 0x5971(%rip), %rsi      # 0x1815f
movl $0x5, %edx
movq %rax, %rdi
callq 0x2200
movq 0xa9ce(%rip), %rsi      # 0x1d1d0
movq %rbx, %rdi
callq 0x2110
movq %rax, %rbx
leaq 0x5951(%rip), %rsi      # 0x18165
movl $0xc, %edx
movq %rax, %rdi
callq 0x2200
movq 0xa9c8(%rip), %rsi      # 0x1d1f0
movq %rbx, %rdi
callq 0x2110
movq %rax, %rbx
leaq 0x5993(%rip), %rsi      # 0x181cd
movl $0x13, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xa9a9(%rip), %xmm1     # 0x1d1f8
unpcklps 0x54fa(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x5502(%rip), %xmm1     # 0x17d60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x54c6(%rip), %xmm1     # 0x17d38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movsd 0xa966(%rip), %xmm1     # 0x1d1e8
divsd 0x54b6(%rip), %xmm1     # 0x17d40
divsd %xmm1, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x58df(%rip), %rsi      # 0x1817f
movl $0x7, %edx
movq %rax, %rdi
callq 0x2200
movsd 0xa91b(%rip), %xmm1     # 0x1d1d0
unpcklps 0x5494(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x549c(%rip), %xmm1     # 0x17d60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x5460(%rip), %xmm1     # 0x17d38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movsd 0xa900(%rip), %xmm1     # 0x1d1e8
divsd 0x5450(%rip), %xmm1     # 0x17d40
divsd %xmm1, %xmm0
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
leaq 0x5881(%rip), %rsi      # 0x18187
movl $0x6, %edx
movq %rax, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
jmp 0x1298f
movq 0xa695(%rip), %r14      # 0x1cfd8
leaq 0x5703(%rip), %rsi      # 0x1804d
movl $0x25, %edx
movq %r14, %rdi
callq 0x2200
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq 0xa663(%rip), %rdi      # 0x1cfd8
callq 0x2040
movq %rax, %rdi
callq 0x2120
movl $0x1, %ebp
movq %rbx, %rsi
callq 0x117d8
leaq 0x10(%rsp), %rdi
callq 0x12d0c
movl %ebp, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x129ae
jmp 0x129ae
movq %rax, %rbx
jmp 0x129ca
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x129ca
callq 0x2180
leaq 0x10(%rsp), %rdi
callq 0x12d0c
movq %rbx, %rdi
callq 0x2300
movq %rax, %rdi
callq 0x12a7b