// File: /workspace/github_cpp_makefile_star2_O2/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 $0x48, %rsp
movq %rsi, %rbx
movl %edi, %ebp
movb $0x0, 0xac25(%rip)      # 0x1a1f0
movb $0x1, %al
movb %al, 0xac1e(%rip)       # 0x1a1f1
movb %al, 0xac19(%rip)       # 0x1a1f2
movb %al, 0xac14(%rip)       # 0x1a1f3
xorpd %xmm0, %xmm0
leaq 0x10(%rsp), %rax
movapd %xmm0, (%rax)
andq $0x0, 0x10(%rax)
pushq $0x1
popq %r14
leaq 0x28(%rsp), %r15
leaq 0x5929(%rip), %r13      # 0x14f2a
cmpl %ebp, %r14d
jge 0xf76f
movslq %r14d, %rax
movq (%rbx,%rax,8), %rsi
movq %r15, %rdi
leaq 0xf(%rsp), %rdx
callq 0x2070
movq %r15, %rdi
movq %r13, %rsi
callq 0x10446
testb %al, %al
je 0xf639
movb $0x1, 0xabbc(%rip)      # 0x1a1f0
movb $0x1, %r12b
jmp 0xf66a
movq %r15, %rdi
leaq 0x58ea(%rip), %rsi      # 0x14f2d
callq 0x10446
testb %al, %al
jne 0xf65f
movq %r15, %rdi
leaq 0x58da(%rip), %rsi      # 0x14f30
callq 0x10446
testb %al, %al
je 0xf67f
movq %rbx, %rsi
callq 0xf4ca
xorl %r12d, %r12d
movq %r15, %rdi
callq 0x21c0
incl %r14d
testb %r12b, %r12b
jne 0xf601
jmp 0xf7be
movq %r15, %rdi
leaq 0x58ae(%rip), %rsi      # 0x14f37
callq 0x10446
testb %al, %al
je 0xf6a4
cmpb $0x1, 0xab58(%rip)      # 0x1a1f1
jne 0xf6cc
movb $0x0, 0xab50(%rip)      # 0x1a1f2
jmp 0xf634
movq %r15, %rdi
leaq 0x588c(%rip), %rsi      # 0x14f3a
callq 0x10446
testb %al, %al
je 0xf6d8
cmpb $0x1, 0xab34(%rip)      # 0x1a1f2
jne 0xf6f7
movb $0x0, 0xab2a(%rip)      # 0x1a1f1
jmp 0xf634
movb $0x1, 0xab1e(%rip)      # 0x1a1f1
jmp 0xf634
movq %r15, %rdi
leaq 0x585b(%rip), %rsi      # 0x14f3d
callq 0x10446
testb %al, %al
je 0xf703
movb $0x0, 0xab01(%rip)      # 0x1a1f3
jmp 0xf634
movb $0x1, 0xaaf4(%rip)      # 0x1a1f2
jmp 0xf634
movq %r15, %rdi
leaq 0x5833(%rip), %rsi      # 0x14f40
callq 0x10446
testb %al, %al
je 0xf722
movb $0x1, 0xaa74(%rip)      # 0x1a191
jmp 0xf634
movq %r15, %rdi
leaq 0x5817(%rip), %rsi      # 0x14f43
callq 0x10446
testb %al, %al
je 0xf75a
leal 0x1(%r14), %eax
cmpl %ebp, %eax
jge 0xf75a
movl %eax, %r14d
cltq
movq (%rbx,%rax,8), %rsi
movb $0x1, %r12b
leaq 0xaaa8(%rip), %rdi      # 0x1a1f8
callq 0x22a0
jmp 0xf66a
movb $0x1, %r12b
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x10454
jmp 0xf66a
cmpb $0x0, 0xaa7c(%rip)      # 0x1a1f2
jne 0xf77f
movb $0x0, 0xaa74(%rip)      # 0x1a1f3
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x10149
xorl %ebx, %ebx
xorl %r14d, %r14d
subq %rdi, %rax
sarq $0x5, %rax
cmpq %rax, %r14
jae 0xf7c5
addq %rbx, %rdi
callq 0xf1ba
incq %r14
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
addq $0x20, %rbx
jmp 0xf797
xorl %ebx, %ebx
jmp 0x1016f
cmpb $0x0, 0xaa24(%rip)      # 0x1a1f0
je 0xfdac
movq 0xa7ff(%rip), %rdi      # 0x19fd8
leaq 0x5793(%rip), %rsi      # 0x14f73
callq 0x2130
movq %rax, %rdi
callq 0x2090
movq 0xa7e4(%rip), %rdi      # 0x19fd8
leaq 0x5788(%rip), %rsi      # 0x14f83
callq 0x2130
movq 0x18(%rsp), %rsi
subq 0x10(%rsp), %rsi
sarq $0x5, %rsi
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2090
movq 0xa7b3(%rip), %rdi      # 0x19fd8
leaq 0x5766(%rip), %rsi      # 0x14f92
callq 0x2130
movq 0xa960(%rip), %rsi      # 0x1a198
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2090
movq 0xa789(%rip), %rdi      # 0x19fd8
leaq 0x574b(%rip), %rsi      # 0x14fa1
callq 0x2130
movq 0xa93e(%rip), %rsi      # 0x1a1a0
movq %rax, %rdi
callq 0x20d0
leaq 0x586d(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa91f(%rip), %xmm1     # 0x1a1a0
movsd 0x53c7(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x53cc(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5384(%rip), %xmm0     # 0x14c30
movsd 0xa8e4(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x56dd(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movq 0xa6e7(%rip), %rdi      # 0x19fd8
leaq 0x56c5(%rip), %rsi      # 0x14fbd
callq 0x2130
movq 0xa8a4(%rip), %rsi      # 0x1a1a8
movq %rax, %rdi
callq 0x20d0
leaq 0x57cb(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa885(%rip), %xmm1     # 0x1a1a8
movsd 0x5325(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x532a(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x52e2(%rip), %xmm0     # 0x14c30
movsd 0xa842(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x563b(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa860(%rip), %al       # 0x1a1f2
cmpb $0x1, %al
jne 0xfa42
movq 0xa637(%rip), %rdi      # 0x19fd8
leaq 0x562b(%rip), %rsi      # 0x14fd3
callq 0x2130
movq 0xa824(%rip), %rsi      # 0x1a1d8
movq %rax, %rdi
callq 0x20d0
leaq 0x571b(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa805(%rip), %xmm1     # 0x1a1d8
movsd 0x5275(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x527a(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5232(%rip), %xmm0     # 0x14c30
movsd 0xa792(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x558b(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa7b0(%rip), %al       # 0x1a1f2
testb $0x1, %al
je 0xfaf2
movq 0xa587(%rip), %rdi      # 0x19fd8
leaq 0x5590(%rip), %rsi      # 0x14fe8
callq 0x2130
movq 0xa77c(%rip), %rsi      # 0x1a1e0
movq %rax, %rdi
callq 0x20d0
leaq 0x566b(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa75d(%rip), %xmm1     # 0x1a1e0
movsd 0x51c5(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x51ca(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5182(%rip), %xmm0     # 0x14c30
movsd 0xa6e2(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x54db(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa700(%rip), %al       # 0x1a1f2
testb $0x1, %al
je 0xfb9c
movq 0xa4d7(%rip), %rdi      # 0x19fd8
leaq 0x54f5(%rip), %rsi      # 0x14ffd
callq 0x2130
movq 0xa6d4(%rip), %rsi      # 0x1a1e8
movq %rax, %rdi
callq 0x20d0
leaq 0x55bb(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa6b5(%rip), %xmm1     # 0x1a1e8
movsd 0x5115(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x511a(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x50d2(%rip), %xmm0     # 0x14c30
movsd 0xa632(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x542b(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa64f(%rip), %al       # 0x1a1f1
cmpb $0x1, %al
jne 0xfc52
movq 0xa427(%rip), %rdi      # 0x19fd8
leaq 0x545a(%rip), %rsi      # 0x15012
callq 0x2130
movq 0xa5f4(%rip), %rsi      # 0x1a1b8
movq %rax, %rdi
callq 0x20d0
leaq 0x550b(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa5d5(%rip), %xmm1     # 0x1a1b8
movsd 0x5065(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x506a(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x5022(%rip), %xmm0     # 0x14c30
movsd 0xa582(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x537b(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa59f(%rip), %al       # 0x1a1f1
testb $0x1, %al
je 0xfd02
movq 0xa377(%rip), %rdi      # 0x19fd8
leaq 0x53be(%rip), %rsi      # 0x15026
callq 0x2130
movq 0xa54c(%rip), %rsi      # 0x1a1c0
movq %rax, %rdi
callq 0x20d0
leaq 0x545b(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa52d(%rip), %xmm1     # 0x1a1c0
movsd 0x4fb5(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x4fba(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x4f72(%rip), %xmm0     # 0x14c30
movsd 0xa4d2(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x52cb(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movb 0xa4ef(%rip), %al       # 0x1a1f1
testb $0x1, %al
je 0xfdac
movq 0xa2c7(%rip), %rdi      # 0x19fd8
leaq 0x5322(%rip), %rsi      # 0x1503a
callq 0x2130
movq 0xa4a4(%rip), %rsi      # 0x1a1c8
movq %rax, %rdi
callq 0x20d0
leaq 0x53ab(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa485(%rip), %xmm1     # 0x1a1c8
movsd 0x4f05(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x4f0a(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x4ec2(%rip), %xmm0     # 0x14c30
movsd 0xa422(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
leaq 0x521b(%rip), %rsi      # 0x14fb7
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
cmpb $0x1, 0xa43f(%rip)      # 0x1a1f2
jne 0xffcf
movq 0xa218(%rip), %rdi      # 0x19fd8
leaq 0x5288(%rip), %rsi      # 0x1504f
callq 0x2130
movsd 0xa3fc(%rip), %xmm0     # 0x1a1d0
movq %rax, %rdi
callq 0x2230
leaq 0x527c(%rip), %rsi      # 0x1505f
movq %rax, %rdi
callq 0x2130
movq 0xa3a6(%rip), %rsi      # 0x1a198
movq %rax, %rdi
callq 0x20d0
leaq 0x5264(%rip), %rsi      # 0x15065
movq %rax, %rdi
callq 0x2130
movq 0xa3d8(%rip), %rsi      # 0x1a1e8
movq %rax, %rdi
callq 0x20d0
leaq 0x5253(%rip), %rsi      # 0x15072
movq %rax, %rdi
callq 0x2130
movsd 0xa3a9(%rip), %xmm1     # 0x1a1d8
unpcklps 0x4e1a(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x4e22(%rip), %xmm1     # 0x14c60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x4de6(%rip), %xmm1     # 0x14c38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
divsd 0xa36e(%rip), %xmm0     # 0x1a1d0
movq %rax, %rdi
callq 0x2230
leaq 0x520e(%rip), %rsi      # 0x1507f
movq %rax, %rdi
callq 0x2130
movsd 0xa317(%rip), %xmm1     # 0x1a198
unpcklps 0x4dc8(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x4dd0(%rip), %xmm1     # 0x14c60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x4d94(%rip), %xmm1     # 0x14c38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
divsd 0xa31c(%rip), %xmm0     # 0x1a1d0
movq %rax, %rdi
callq 0x2230
leaq 0x51c4(%rip), %rsi      # 0x15087
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
movq 0xa0fe(%rip), %rdi      # 0x19fd8
leaq 0x51ad(%rip), %rsi      # 0x1508e
callq 0x2130
movq 0xa2f3(%rip), %rsi      # 0x1a1e0
movq %rax, %rdi
callq 0x20d0
leaq 0x51e2(%rip), %rsi      # 0x150de
movq %rax, %rdi
callq 0x2130
movsd 0xa2d4(%rip), %xmm1     # 0x1a1e0
movsd 0x4d3c(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x4d41(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x4cf1(%rip), %xmm0     # 0x14c28
movsd 0xa2a9(%rip), %xmm1     # 0x1a1e8
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 %rax, %rdi
callq 0x2230
leaq 0x5138(%rip), %rsi      # 0x1509d
movq %rax, %rdi
callq 0x2130
movsd 0xa26b(%rip), %xmm1     # 0x1a1e0
movsd 0x4cd3(%rip), %xmm2     # 0x14c50
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x4cd8(%rip), %xmm3     # 0x14c60
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x4c90(%rip), %xmm0     # 0x14c30
movsd 0xa1f0(%rip), %xmm1     # 0x1a198
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 %rax, %rdi
callq 0x2230
movq %rax, %rdi
callq 0x2090
xorl %ebx, %ebx
cmpb $0x1, 0xa219(%rip)      # 0x1a1f1
jne 0x1016f
cmpb $0x1, 0xa20b(%rip)      # 0x1a1f0
jne 0x1000d
movq 0x9fea(%rip), %rdi      # 0x19fd8
leaq 0x50b2(%rip), %rsi      # 0x150a7
callq 0x2130
pushq $0x5
popq %rsi
movq %rax, %rdi
callq 0x2270
movq %rax, %rdi
callq 0x2090
movq 0x9fc4(%rip), %rdi      # 0x19fd8
leaq 0x50a2(%rip), %rsi      # 0x150bd
callq 0x2130
movsd 0xa188(%rip), %xmm0     # 0x1a1b0
divsd 0x4c10(%rip), %xmm0     # 0x14c40
movq %rax, %rdi
callq 0x2230
leaq 0x5020(%rip), %rsi      # 0x1505f
movq %rax, %rdi
callq 0x2130
movq 0xa14a(%rip), %rsi      # 0x1a198
movq %rax, %rdi
callq 0x20d0
leaq 0x5008(%rip), %rsi      # 0x15065
movq %rax, %rdi
callq 0x2130
movq 0xa14c(%rip), %rsi      # 0x1a1b8
movq %rax, %rdi
callq 0x20d0
leaq 0x5052(%rip), %rsi      # 0x150cd
movq %rax, %rdi
callq 0x2130
movsd 0xa135(%rip), %xmm1     # 0x1a1c0
unpcklps 0x4bbe(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x4bc6(%rip), %xmm1     # 0x14c60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x4b8a(%rip), %xmm1     # 0x14c38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movsd 0xa0f2(%rip), %xmm1     # 0x1a1b0
divsd 0x4b7a(%rip), %xmm1     # 0x14c40
divsd %xmm1, %xmm0
movq %rax, %rdi
callq 0x2230
leaq 0x4fa6(%rip), %rsi      # 0x1507f
movq %rax, %rdi
callq 0x2130
movsd 0xa0af(%rip), %xmm1     # 0x1a198
unpcklps 0x4b60(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x4b68(%rip), %xmm1     # 0x14c60
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x4b2c(%rip), %xmm1     # 0x14c38
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movsd 0xa094(%rip), %xmm1     # 0x1a1b0
divsd 0x4b1c(%rip), %xmm1     # 0x14c40
divsd %xmm1, %xmm0
movq %rax, %rdi
callq 0x2230
leaq 0x4f50(%rip), %rsi      # 0x15087
movq %rax, %rdi
callq 0x2130
movq %rax, %rdi
callq 0x2090
jmp 0x1016f
movq 0x9e88(%rip), %rdi      # 0x19fd8
leaq 0x4df6(%rip), %rsi      # 0x14f4d
callq 0x2130
movq %rax, %rdi
callq 0x2090
movq %rbx, %rsi
callq 0xf4ca
pushq $0x1
popq %rbx
leaq 0x10(%rsp), %rdi
callq 0x10480
movl %ebx, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10190
jmp 0x10190
jmp 0x10190
movq %rax, %rbx
jmp 0x101a2
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x21c0
leaq 0x10(%rsp), %rdi
callq 0x10480
movq %rbx, %rdi
callq 0x2280
movq %rax, %rdi
callq 0xe5cc