// File: /workspace/github_cpp_makefile_star2_O1/blackle[P]LZMA-Vizualizer/LzmaSpec.cpp
// Function: main
int main(int argc, char** argv)
{
  int r = parse_args(argc, argv);
  if (r >= 0) return r;

  CInputStream inStream;
  inStream.File = fopen(options.infile.c_str(), "rb");
  if (inStream.File == 0)
    throw "Can't open input file";
  inStream.Init();

  CLzmaDecoder lzmaDecoder;

  Byte header[13];
  int i;
  for (i = 0; i < 13; i++)
    header[i] = inStream.ReadByte();

  lzmaDecoder.DecodeProperties(header);

  UInt64 unpackSize = 0;
  bool unpackSizeDefined = false;
  for (i = 0; i < 8; i++)
  {
    Byte b = header[5 + i];
    if (b != 0xFF)
      unpackSizeDefined = true;
    unpackSize |= (UInt64)b << (8 * i);
  }

  lzmaDecoder.markerIsMandatory = !unpackSizeDefined;

  lzmaDecoder.RangeDec.InStream = &inStream;

  lzmaDecoder.Create();

  int res = lzmaDecoder.Decode(unpackSizeDefined, unpackSize);

  if (res == LZMA_RES_ERROR)
    throw "LZMA decoding error";

  if (lzmaDecoder.RangeDec.Corrupted)
  {
    std::cerr << "Warning: LZMA stream is corrupted" << std::endl;
  }

  double maxPerplexity = *std::max_element(lzmaDecoder.Perplexities.begin(), lzmaDecoder.Perplexities.end());

  if (!options.kkpout.empty()) {
    return output_kkp(lzmaDecoder, maxPerplexity);
  } else if (options.pretty) {
    return output_console(lzmaDecoder, maxPerplexity);
  } else {
    return output_raw(lzmaDecoder, maxPerplexity);
  }

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xfd8, %rsp            # imm = 0xFD8
movq %rsi, %r13
movl %edi, %r14d
movl $0x1, %r15d
movl $0x1, %edi
callq 0x2260
testl %eax, %eax
setne 0x6526(%rip)            # 0x91b8
leaq 0x64df(%rip), %rbx      # 0x9178
movw $0x0, 0x6517(%rip)      # 0x91b9
movq 0x64f7(%rip), %rdx      # 0x91a0
leaq 0x64e8(%rip), %rdi      # 0x9198
leaq 0x3527(%rip), %r12      # 0x61de
xorl %esi, %esi
movq %r12, %rcx
xorl %r8d, %r8d
callq 0x21f0
movq 0x64b5(%rip), %rdx      # 0x9180
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rcx
xorl %r8d, %r8d
callq 0x21f0
cmpl $0x2, %r14d
jge 0x2cf3
movq %r13, %rdi
callq 0x3a3f
movl $0x1, %ebx
jmp 0x3038
leal -0x1(%r14), %eax
movl %eax, -0x40(%rbp)
movb $0x1, -0x2c(%rbp)
movq %r14, -0x38(%rbp)
movslq %r15d, %r12
movq %r13, %r14
movq (%r13,%r12,8), %r13
movq %r13, %rdi
leaq 0x3409(%rip), %rsi      # 0x6120
callq 0x21d0
testl %eax, %eax
je 0x2dd1
movq %r13, %rdi
leaq 0x33f8(%rip), %rsi      # 0x6126
callq 0x21d0
testl %eax, %eax
je 0x2de3
movq %r13, %rdi
leaq 0x33e7(%rip), %rsi      # 0x612c
callq 0x21d0
testl %eax, %eax
je 0x2dda
movq %r13, %rdi
leaq 0x33d7(%rip), %rsi      # 0x6133
callq 0x21d0
testl %eax, %eax
je 0x2dda
movq %r13, %rdi
leaq 0x33cf(%rip), %rsi      # 0x613e
callq 0x21d0
testl %eax, %eax
je 0x2e14
movq %r13, %rdi
leaq 0x33bf(%rip), %rsi      # 0x6145
callq 0x21d0
testl %eax, %eax
je 0x2e2d
movq 0x63e6(%rip), %r12      # 0x9180
testq %r12, %r12
je 0x2e64
movq (%r14), %rbx
testq %rbx, %rbx
je 0x2ec5
movq %rbx, %rdi
callq 0x20a0
movq 0x6232(%rip), %r12      # 0x8ff0
movq %r12, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2180
jmp 0x2ee5
movb $0x0, 0x63e0(%rip)      # 0x91b8
jmp 0x2dea
movb $0x1, 0x63d9(%rip)      # 0x91ba
jmp 0x2dea
movb $0x1, 0x63cf(%rip)      # 0x91b9
movl $0x4, %ebx
movq %r14, %r13
movq -0x38(%rbp), %r14
testb $0x3, %bl
jne 0x301c
incl %r15d
cmpl %r14d, %r15d
setl -0x2c(%rbp)
jl 0x2d02
jmp 0x301c
movq %r14, %r13
movq %r14, %rdi
callq 0x3a3f
movl $0x0, -0x68(%rbp)
movl $0x1, %ebx
jmp 0x2df2
cmpl -0x40(%rbp), %r15d
jne 0x2e8a
movq %r14, %r13
movq (%r14), %rbx
testq %rbx, %rbx
je 0x2fab
movq %rbx, %rdi
callq 0x20a0
movq 0x619f(%rip), %r12      # 0x8ff0
movq %r12, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2180
jmp 0x2fcb
movq %r13, %rdi
callq 0x20a0
xorl %ebx, %ebx
leaq 0x6303(%rip), %rdi      # 0x9178
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
movq %rax, %r8
callq 0x21f0
jmp 0x2def
incl %r15d
movq 0x8(%r14,%r12,8), %r12
movq 0x6307(%rip), %r13      # 0x91a0
movq %r12, %rdi
callq 0x20a0
leaq 0x62f0(%rip), %rdi      # 0x9198
xorl %esi, %esi
movq %r13, %rdx
movq %r14, %r13
movq %r12, %rcx
movq %rax, %r8
callq 0x21f0
movl $0x4, %ebx
jmp 0x2df2
movq 0x6124(%rip), %r12      # 0x8ff0
movq (%r12), %rax
movq -0x18(%rax), %rax
leaq (%r12,%rax), %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x2230
movl $0x2f, %edx
movq %r12, %rdi
leaq 0x3283(%rip), %rsi      # 0x6177
callq 0x2180
movq 0x6278(%rip), %rsi      # 0x9178
movq 0x6279(%rip), %rdx      # 0x9180
movq %r12, %rdi
callq 0x2180
movq %rax, %rbx
movl $0x11, %edx
movq %rax, %rdi
leaq 0x3286(%rip), %rsi      # 0x61a7
callq 0x2180
testq %r13, %r13
je 0x2f43
movq %r13, %rdi
callq 0x20a0
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x2180
jmp 0x2f5c
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %rbx, %rdi
addq %rax, %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x2230
movq %r14, %r13
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x324b(%rip), %rsi      # 0x61b9
callq 0x2180
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movl $0x1, %ebx
movl $0x1, -0x68(%rbp)
jmp 0x2df2
movq 0x603e(%rip), %r12      # 0x8ff0
movq (%r12), %rax
movq -0x18(%rax), %rax
leaq (%r12,%rax), %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x2230
movq -0x38(%rbp), %r14
movl $0x2b, %edx
movq %r12, %rdi
leaq 0x316d(%rip), %rsi      # 0x614b
callq 0x2180
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movl $0x1, %ebx
movl $0x1, -0x68(%rbp)
jmp 0x2df6
testb $0x1, -0x2c(%rbp)
movl -0x68(%rbp), %ebx
jne 0x3038
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpq $0x0, 0x614e(%rip)      # 0x9180
je 0x33e2
testl %ebx, %ebx
jns 0x391c
movq 0x6131(%rip), %rdi      # 0x9178
leaq 0x3052(%rip), %rsi      # 0x60a0
callq 0x2190
movq %rax, -0xe8(%rbp)
testq %rax, %rax
je 0x3930
xorl %r14d, %r14d
leaq -0xe8(%rbp), %rbx
movq %r14, 0x8(%rbx)
movq %r14, -0xfe8(%rbp)
movq %r14, -0xf90(%rbp)
movl $0x0, -0xf88(%rbp)
movq %r14, -0xf80(%rbp)
movq %r14, -0xf60(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, -0xfd0(%rbp)
movups %xmm0, -0xfc0(%rbp)
movups %xmm0, -0xfb0(%rbp)
movups %xmm0, -0xfa4(%rbp)
movq %rbx, %rdi
callq 0x3ade
movb %al, -0xd5(%rbp,%r14)
incq %r14
cmpq $0xd, %r14
jne 0x30b6
leaq -0x1000(%rbp), %rdi
leaq -0xd5(%rbp), %rsi
callq 0x410e
leaq -0xd0(%rbp), %rax
xorl %ecx, %ecx
movl $0x1, %edx
xorl %r15d, %r15d
xorl %r14d, %r14d
movzbl (%rax), %esi
cmpq $0xff, %rsi
movzbl %r15b, %r15d
cmovnel %edx, %r15d
shlq %cl, %rsi
orq %rsi, %r14
incq %rax
addq $0x8, %rcx
cmpq $0x40, %rcx
jne 0x30f6
movl %r15d, %eax
notb %al
andb $0x1, %al
movb %al, -0xf78(%rbp)
movq %rbx, -0xff8(%rbp)
movl -0xf68(%rbp), %ebx
movq %rbx, %rdi
callq 0x2030
movq %rax, -0xfe8(%rbp)
xorl %eax, %eax
movl %eax, -0xfe0(%rbp)
movl %ebx, -0xfdc(%rbp)
movb $0x0, -0xfd8(%rbp)
movl %eax, -0xfd4(%rbp)
movl -0xf6c(%rbp), %ecx
addl -0xf74(%rbp), %ecx
movl $0x300, %edi            # imm = 0x300
shll %cl, %edi
addq %rdi, %rdi
callq 0x2030
leaq -0x1000(%rbp), %rdi
movq %rax, 0xa0(%rdi)
movzbl %r15b, %esi
andl $0x1, %esi
movq %r14, %rdx
callq 0x26ea
testl %eax, %eax
je 0x3955
cmpb $0x1, -0xff0(%rbp)
jne 0x31ee
movq 0x5e41(%rip), %rbx      # 0x8ff0
leaq 0x2f17(%rip), %rsi      # 0x60cd
movl $0x21, %edx
movq %rbx, %rdi
callq 0x2180
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x5e0f(%rip), %rdi      # 0x8ff0
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movq -0xfb8(%rbp), %rdx
movq -0xfb0(%rbp), %rax
cmpq %rax, %rdx
sete %sil
movq %rdx, %rcx
addq $0x4, %rcx
cmpq %rax, %rcx
sete %dil
orb %sil, %dil
je 0x321b
movq %rdx, %rsi
jmp 0x3236
movss (%rcx), %xmm0
ucomiss (%rdx), %xmm0
movq %rcx, %rsi
ja 0x322a
movq %rdx, %rsi
addq $0x4, %rcx
movq %rsi, %rdx
cmpq %rax, %rcx
jne 0x321b
cmpq $0x0, 0x5f62(%rip)      # 0x91a0
je 0x33a3
movq 0x5f4d(%rip), %rdi      # 0x9198
leaq 0x2fdf(%rip), %rsi      # 0x6231
callq 0x2190
testq %rax, %rax
je 0x3415
movq %rax, %rbx
movl -0xfc8(%rbp), %eax
subl -0xfd0(%rbp), %eax
leaq -0x90(%rbp), %r14
movl $0x0, (%r14)
leaq -0xc8(%rbp), %r15
movl %eax, (%r15)
leaq 0x2fa6(%rip), %rdi      # 0x6234
movl $0x1, %esi
movl $0x4, %edx
movq %rbx, %rcx
callq 0x2290
movl $0x4, %esi
movl $0x1, %edx
movq %r15, %rdi
movq %rbx, %rcx
callq 0x2290
movl $0x4, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x2290
movl $0x4, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x2290
movq -0xfd0(%rbp), %rax
cmpq %rax, -0xfc8(%rbp)
je 0x3396
xorl %r12d, %r12d
leaq -0x60(%rbp), %r15
movsbl (%rax,%r12), %edi
movq %rbx, %rsi
callq 0x21a0
movl $0x2, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x2290
movq -0xfb8(%rbp), %rax
movss (%rax,%r12,4), %xmm0
mulss 0x2cdb(%rip), %xmm0     # 0x600c
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movl $0x8, %esi
movl $0x1, %edx
movq %r15, %rdi
movq %rbx, %rcx
callq 0x2290
movl $0x2, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x2290
movl $0x2, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x2290
incq %r12
movq -0xfd0(%rbp), %rax
movq -0xfc8(%rbp), %rcx
subq %rax, %rcx
cmpq %rcx, %r12
jb 0x32fa
movq %rbx, %rdi
callq 0x2150
jmp 0x390e
xorps %xmm0, %xmm0
cvtss2sd (%rsi), %xmm0
movsd %xmm0, -0x68(%rbp)
cmpb $0x1, 0x5e02(%rip)      # 0x91b8
jne 0x341f
leaq -0xa8(%rbp), %rdi
callq 0x44f6
cmpb $0x1, 0x5dee(%rip)      # 0x91b9
jne 0x352a
leaq -0xa8(%rbp), %rdi
callq 0x4538
jmp 0x3536
movq (%r13), %rbx
testq %rbx, %rbx
je 0x34cc
movq %rbx, %rdi
callq 0x20a0
movq 0x5bf2(%rip), %rdi      # 0x8ff0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2180
movq 0x5be0(%rip), %rbx      # 0x8ff0
jmp 0x34ea
movl $0x1, %ebx
jmp 0x3910
movq -0xfc8(%rbp), %rax
cmpq -0xfd0(%rbp), %rax
je 0x3496
xorl %r15d, %r15d
movq 0x5b97(%rip), %rbx      # 0x8fd0
movq -0xfb8(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r15,4), %xmm0
divsd -0x68(%rbp), %xmm0
movq %rbx, %rdi
callq 0x2210
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
incq %r15
movq -0xfc8(%rbp), %rax
subq -0xfd0(%rbp), %rax
cmpq %r15, %rax
ja 0x3439
movq 0x5b33(%rip), %rdi      # 0x8fd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x5b18(%rip), %rdi      # 0x8fd0
callq 0x2040
xorl %ebx, %ebx
movq %rax, %rdi
callq 0x20e0
jmp 0x3910
movq 0x5b1d(%rip), %rbx      # 0x8ff0
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x2230
leaq 0x2ccb(%rip), %rsi      # 0x61bc
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x2180
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
jmp 0x2ce9
leaq -0xa8(%rbp), %rdi
callq 0x463c
movq -0xfc8(%rbp), %rax
cmpq -0xfd0(%rbp), %rax
je 0x38c4
movss 0x2ab6(%rip), %xmm0     # 0x6008
xorps %xmm1, %xmm1
movss %xmm1, -0x38(%rbp)
xorl %r12d, %r12d
leaq -0xa8(%rbp), %r14
movq 0x5a65(%rip), %r15      # 0x8fd0
movss %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x3c(%rbp)
movq %r12, %rax
shlq $0x36, %rax
jne 0x35e5
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
movl $0x40, %edx
callq 0x4718
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r15, %rdi
callq 0x2180
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x35e5
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2170
movq -0xfb8(%rbp), %rax
movq -0xfa0(%rbp), %rdx
movq %r12, %rsi
movl %r12d, %r13d
andl $0x3f, %r13d
movl $0x1, %ebx
movl %r13d, %ecx
shlq %cl, %rbx
shrq $0x6, %rsi
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r12,4), %xmm0
divsd -0x68(%rbp), %xmm0
andq (%rdx,%rsi,8), %rbx
ucomisd 0x29f2(%rip), %xmm0     # 0x6018
jb 0x362e
sqrtsd %xmm0, %xmm0
jmp 0x3633
callq 0x2120
xorps %xmm1, %xmm1
testq %rbx, %rbx
je 0x3643
movss 0x29c5(%rip), %xmm1     # 0x6008
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
cmpb $0x0, 0x5b67(%rip)      # 0x91ba
jne 0x365a
movss -0x2c(%rbp), %xmm1
movss %xmm1, -0x6c(%rbp)
movq -0xfd0(%rbp), %rax
movsbl (%rax,%r12), %ebx
movl %ebx, %edi
callq 0x2280
testl %eax, %eax
movl $0x2e, %eax
cmovel %eax, %ebx
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
movss -0x6c(%rbp), %xmm0
callq 0x48b0
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r15, %rdi
callq 0x2180
movb %bl, -0x90(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x90(%rbp), %rsi
callq 0x2180
movl $0x4, %edx
movq %rax, %rdi
leaq 0x2b87(%rip), %rsi      # 0x624d
callq 0x2180
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x36e4
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2170
movss -0x38(%rbp), %xmm0
movss -0x2c(%rbp), %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x38(%rbp)
movaps %xmm1, %xmm0
maxss -0x3c(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
minss -0x40(%rbp), %xmm1
movss %xmm1, -0x2c(%rbp)
cmpl $0x3f, %r13d
jne 0x3896
movl $0x1, %edx
movq %r15, %rdi
leaq 0x2ab6(%rip), %rsi      # 0x61dd
callq 0x2180
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
movss -0x2c(%rbp), %xmm0
callq 0x48b0
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r15, %rdi
callq 0x2180
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x2a7e(%rip), %rsi      # 0x61dd
callq 0x2180
movss -0x38(%rbp), %xmm0
mulss 0x289f(%rip), %xmm0     # 0x6010
leaq -0x90(%rbp), %rdi
movq %r14, %rsi
callq 0x48b0
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
movq %rbx, %rdi
callq 0x2180
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x2a35(%rip), %rsi      # 0x61dd
callq 0x2180
leaq -0xc8(%rbp), %rdi
movq %r14, %rsi
movss -0x3c(%rbp), %xmm0
callq 0x48b0
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
movq %rbx, %rdi
callq 0x2180
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
leaq 0x29f4(%rip), %rsi      # 0x61dd
callq 0x2180
movl $0x4, %edx
movq %r13, %rdi
leaq 0x2a50(%rip), %rsi      # 0x624d
callq 0x2180
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x384c
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x2170
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3868
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2170
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x3881
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2170
xorps %xmm2, %xmm2
movss 0x277c(%rip), %xmm1     # 0x6008
xorps %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
jmp 0x38a0
movss -0x2c(%rbp), %xmm1
movss -0x3c(%rbp), %xmm2
movq -0xfc8(%rbp), %rax
subq -0xfd0(%rbp), %rax
incq %r12
movss %xmm1, -0x40(%rbp)
movss %xmm2, -0x3c(%rbp)
cmpq %r12, %rax
ja 0x3578
movq 0x5705(%rip), %rdi      # 0x8fd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x56ea(%rip), %rdi      # 0x8fd0
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movq -0xa8(%rbp), %rdi
testq %rdi, %rdi
je 0x390e
movq -0x98(%rbp), %rsi
subq %rdi, %rsi
callq 0x2170
xorl %ebx, %ebx
leaq -0x1000(%rbp), %rdi
callq 0x41c6
movl %ebx, %eax
addq $0xfd8, %rsp            # imm = 0xFD8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x8, %edi
callq 0x20b0
leaq 0x2762(%rip), %rcx      # 0x60a3
movq %rcx, (%rax)
movq 0x5675(%rip), %rsi      # 0x8fc0
movq %rax, %rdi
xorl %edx, %edx
callq 0x2240
movl $0x8, %edi
callq 0x20b0
leaq 0x2753(%rip), %rcx      # 0x60b9
movq %rcx, (%rax)
movq 0x5650(%rip), %rsi      # 0x8fc0
movq %rax, %rdi
xorl %edx, %edx
callq 0x2240
jmp 0x3997
jmp 0x3997
jmp 0x3a28
jmp 0x3a28
jmp 0x3997
jmp 0x3997
jmp 0x39ed
jmp 0x3997
jmp 0x399e
jmp 0x3a28
movq %rax, %rbx
jmp 0x3a09
jmp 0x39ed
movq %rax, %rbx
jmp 0x39cf
jmp 0x3a28
jmp 0x39ed
movq %rax, %rbx
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x39cf
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x2170
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x39f0
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2170
jmp 0x39f0
movq %rax, %rbx
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x3a09
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2170
movq -0xa8(%rbp), %rdi
testq %rdi, %rdi
je 0x3a2b
movq -0x98(%rbp), %rsi
subq %rdi, %rsi
callq 0x2170
jmp 0x3a2b
jmp 0x3a28
movq %rax, %rbx
leaq -0x1000(%rbp), %rdi
callq 0x41c6
movq %rbx, %rdi
callq 0x2270