// File: /workspace/github_cpp_makefile_star2_O1/mhe[P]raytracerframework_cpp/lodepng.cpp
// Function: LodePNG_decode(LodePNG_Decoder*, unsigned char**, unsigned long*, unsigned char const*, unsigned long)
void LodePNG_decode(LodePNG_Decoder* decoder, unsigned char** out, size_t* outsize, const unsigned char* in, size_t insize)
{
  *out = 0;
  *outsize = 0;
  decodeGeneric(decoder, out, outsize, in, insize);
  if(decoder->error) return;
  if(!decoder->settings.color_convert || LodePNG_InfoColor_equal(&decoder->infoRaw.color, &decoder->infoPng.color))
  {
    /*same color type, no copying or converting of data needed*/
    /*store the infoPng color settings on the infoRaw so that the infoRaw still reflects what colorType
    the raw image has to the end user*/
    if(!decoder->settings.color_convert)
    {
      decoder->error = LodePNG_InfoColor_copy(&decoder->infoRaw.color, &decoder->infoPng.color);
      if(decoder->error) return;
    }
  }
  else
  {
    /*color conversion needed; sort of copy of the data*/
    unsigned char* data = *out;

    /*TODO: check if this works according to the statement in the documentation: "The converter can convert from greyscale input color type, to 8-bit greyscale or greyscale with alpha"*/
    if(!(decoder->infoRaw.color.colorType == 2 || decoder->infoRaw.color.colorType == 6) && !(decoder->infoRaw.color.bitDepth == 8)) { decoder->error = 56; return; }

    *outsize = (decoder->infoPng.width * decoder->infoPng.height * LodePNG_InfoColor_getBpp(&decoder->infoRaw.color) + 7) / 8;
    *out = (unsigned char*)malloc(*outsize);
    if(!(*out))
    {
      decoder->error = 9947;
      *outsize = 0;
    }
    else decoder->error = LodePNG_convert(*out, data, &decoder->infoRaw.color, &decoder->infoPng.color, decoder->infoPng.width, decoder->infoPng.height);
    free(data);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %r13
xorl %eax, %eax
movq %rax, (%rsi)
movq %rax, (%rdx)
movq %rsi, -0xc0(%rbp)
movq %rax, (%rsi)
movq %rdx, -0xb8(%rbp)
movq %rax, (%rdx)
testq %r8, %r8
setne %al
testq %rcx, %rcx
setne %dl
testb %al, %dl
jne 0x1eb08
movl $0x30, 0x120(%r13)
jmp 0x1fde3
movq %r13, %rdi
movq %rcx, %rsi
movq %r8, %rdx
movq %r8, %rbx
movq %rcx, %r14
callq 0x1e843
cmpl $0x0, 0x120(%r13)
jne 0x1fde3
leaq 0x21(%r14), %rdi
leaq 0x90(%r13), %rax
movq %rax, -0xc8(%rbp)
leaq 0xa8(%r13), %rax
movq %rax, -0xd8(%rbp)
leaq 0xf0(%r13), %rax
movq %rax, -0xe8(%rbp)
leaq 0x108(%r13), %rax
movq %rax, -0xe0(%rbp)
xorl %r10d, %r10d
movl $0x1, %eax
movq %rax, -0xa8(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0xd0(%rbp)
movl $0x0, -0x9c(%rbp)
xorl %r12d, %r12d
movq %r13, -0x30(%rbp)
movq %rbx, %r11
movq %r14, %r8
movq %rbx, -0x60(%rbp)
movq %r14, -0x58(%rbp)
testb %r12b, %r12b
jne 0x1fbfa
movq %rdi, %rax
subq %r8, %rax
leaq 0xc(%rax), %rax
setb %cl
cmpq %r11, %rax
seta %dl
orb %cl, %dl
cmpb $0x1, %dl
jne 0x1ebda
movl $0x1e, 0x120(%r13)
jmp 0x1ecd7
movzbl (%rdi), %ebx
shll $0x18, %ebx
js 0x1ecbb
movzbl 0x1(%rdi), %r14d
shll $0x10, %r14d
movzbl 0x2(%rdi), %r15d
shll $0x8, %r15d
movzbl 0x3(%rdi), %edx
leal (%r14,%rbx), %ecx
orl %edx, %ecx
orl %r15d, %ecx
movl %ecx, %r13d
addq %r13, %rax
cmpq %r11, %rax
ja 0x1ecc8
leaq (%rdi,%r13), %rax
addq $0xc, %rax
cmpq %r8, %rax
jb 0x1ecc8
movl %edx, -0x78(%rbp)
movq %rcx, -0x50(%rbp)
movq %r12, -0x40(%rbp)
movq %r10, -0x68(%rbp)
leaq 0x8(%rdi), %rax
movq %rax, -0x70(%rbp)
leaq 0x12f6c(%rip), %rsi     # 0x31baf
movq %rdi, %r12
callq 0x1d1e2
testb %al, %al
movq %r12, -0x48(%rbp)
je 0x1ece9
movq -0x38(%rbp), %r14
leaq (%r14,%r13), %r15
leaq (,%r15,4), %rax
cmpq -0xd0(%rbp), %rax
jbe 0x1ed1b
movq %r15, %r12
leaq (,%r15,8), %r15
movq -0x68(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5500
testq %rax, %rax
movq -0x40(%rbp), %rdx
je 0x1edf8
xorl %ecx, %ecx
movq %rax, %r10
movq %r15, -0xd0(%rbp)
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
movq %r12, %r15
jmp 0x1ee0c
movl $0x3f, 0x120(%r13)
jmp 0x1ecd7
movq -0x30(%rbp), %r13
movl $0x23, 0x120(%r13)
movl $0x3, %eax
testl %eax, %eax
je 0x1eba7
jmp 0x1fbfa
movq %r12, %rdi
leaq 0x12ec1(%rip), %rsi     # 0x31bb4
callq 0x1d1e2
testb %al, %al
je 0x1ed36
movq -0x38(%rbp), %r15
movq -0x30(%rbp), %r13
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq %r12, %rdi
movb $0x1, %r12b
jmp 0x1ee5e
xorl %ecx, %ecx
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r12
jmp 0x1ee0f
movq %r12, %rdi
leaq 0x12e79(%rip), %rsi     # 0x31bb9
callq 0x1d1e2
testb %al, %al
je 0x1eebb
movq -0x30(%rbp), %rax
movq 0x60(%rax), %rdi
testq %rdi, %rdi
je 0x1ed5f
callq 0x5390
movl $0xaaaaaaab, %eax       # imm = 0xAAAAAAAB
imulq %rax, %r13
shrq $0x21, %r13
movq -0x30(%rbp), %rax
movq %r13, 0x68(%rax)
shlq $0x2, %r13
movq %r13, %rdi
movq %rax, %r13
callq 0x5420
movq %rax, 0x60(%r13)
testq %rax, %rax
sete %dl
cmpl $0x3, -0x50(%rbp)
setae %sil
movl $0x26d1, %ecx           # imm = 0x26D1
testb %dl, %sil
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r12
movq -0x38(%rbp), %rbx
movq -0x70(%rbp), %r14
jne 0x1edde
testq %rax, %rax
jne 0x1edc8
movq $0x0, 0x68(%r13)
movq 0x68(%r13), %rdx
movl $0x26, %ecx
cmpq $0x100, %rdx            # imm = 0x100
jbe 0x1ef2f
movl %ecx, 0x120(%r13)
movl $0x3, %eax
xorl %ecx, %ecx
movq %rbx, %r15
testb %cl, %cl
jne 0x1ee5e
jmp 0x1ecdc
movb $0x1, %cl
movq %r14, %r15
movq %rbx, %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
movq %rdx, %r12
testb %cl, %cl
movq -0x70(%rbp), %r9
je 0x1ee2d
movq -0x30(%rbp), %r13
movl $0x26d0, 0x120(%r13) # imm = 0x26D0
movl $0x3, %eax
jmp 0x1ee5a
movl $0x3, %eax
movq %rax, -0xa8(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x50(%rbp)
je 0x1ee56
addq %r10, %r14
xorl %edx, %edx
movb (%r9,%rdx), %sil
movb %sil, (%r14,%rdx)
incq %rdx
cmpq %rdx, %r13
jne 0x1ee46
movq -0x30(%rbp), %r13
testb %cl, %cl
jne 0x1eeb2
movl 0x4(%r13), %eax
orl -0x9c(%rbp), %eax
jne 0x1eea1
movq %r10, %rbx
callq 0x1d277
movq -0x48(%rbp), %rdi
movq -0x58(%rbp), %r8
movq -0x60(%rbp), %r11
movq %rbx, %r10
testl %eax, %eax
je 0x1eea1
movl $0x39, 0x120(%r13)
movl $0x0, -0x9c(%rbp)
movl $0x3, %eax
jmp 0x1eeb2
xorl %eax, %eax
testb %r12b, %r12b
jne 0x1eeb2
movl (%rdi), %ecx
bswapl %ecx
addl $0xc, %ecx
addq %rcx, %rdi
movq %r15, -0x38(%rbp)
jmp 0x1ecdc
movq %r12, %rdi
leaq 0x12cf9(%rip), %rsi     # 0x31bbe
callq 0x1d1e2
testb %al, %al
je 0x1efa0
movq -0x30(%rbp), %rax
movl 0x58(%rax), %eax
testl %eax, %eax
movq %r12, %rdi
je 0x1f064
cmpl $0x2, %eax
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x40(%rbp), %r12
movq -0x38(%rbp), %rcx
je 0x1f01c
cmpl $0x3, %eax
jne 0x1f0bb
movq -0x30(%rbp), %rcx
cmpq %r13, 0x68(%rcx)
jae 0x1f18c
movl $0x27, 0x120(%rcx)
movl $0x3, %eax
movq %rcx, %r13
jmp 0x1ecdc
xorl %eax, %eax
movb $0x1, %cl
testq %rdx, %rdx
je 0x1f0aa
movl $0x2, %edx
movq %rdx, -0xa8(%rbp)
movl $0x2, %edx
xorl %esi, %esi
leal -0x2(%rdx), %edi
leal -0x1(%rdx), %r8d
movb (%r14,%rdi), %dil
movq 0x60(%r13), %r9
movb %dil, (%r9,%rsi,4)
movb (%r14,%r8), %dil
movq 0x60(%r13), %r8
movb %dil, 0x1(%r8,%rsi,4)
movl %edx, %edi
movb (%r14,%rdi), %dil
movq 0x60(%r13), %r8
movb %dil, 0x2(%r8,%rsi,4)
movq 0x60(%r13), %rdi
movb $-0x1, 0x3(%rdi,%rsi,4)
incq %rsi
addl $0x3, %edx
cmpq 0x68(%r13), %rsi
jb 0x1ef4f
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
jmp 0x1edec
movq %r12, %rdi
leaq 0x12c19(%rip), %rsi     # 0x31bc3
callq 0x1d1e2
testb %al, %al
je 0x1f0cf
movq -0x30(%rbp), %r13
movl 0x58(%r13), %eax
cmpq $0x6, %rax
movq %r12, %rdi
ja 0x1f592
leaq 0x12861(%rip), %rcx     # 0x31834
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x40(%rbp), %r12
movq -0x38(%rbp), %rcx
jmpq *%rax
cmpl $0x2, -0x50(%rbp)
jne 0x1f226
movl $0x1, 0x80(%r13)
movzwl 0x8(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x8c(%r13)
jmp 0x1f252
cmpl $0x6, -0x50(%rbp)
jne 0x1f164
movq -0x30(%rbp), %r13
movl $0x1, 0x70(%r13)
movzwl 0x8(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x74(%r13)
movzwl 0xa(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x78(%r13)
movzwl 0xc(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x7c(%r13)
jmp 0x1f260
cmpl $0x2, -0x50(%rbp)
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x40(%rbp), %r12
jne 0x1f178
movq -0x30(%rbp), %r13
movl $0x1, 0x70(%r13)
movzwl 0x8(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x7c(%r13)
movl %eax, 0x78(%r13)
movl %eax, 0x74(%r13)
movq -0x38(%rbp), %r15
jmp 0x1ee5e
movl $0x2, %edx
movq %rdx, -0xa8(%rbp)
jmp 0x1edec
movq -0x30(%rbp), %r13
movl $0x2a, 0x120(%r13)
jmp 0x1ecd7
movq %r12, %rdi
leaq 0x12aef(%rip), %rsi     # 0x31bc8
callq 0x1d1e2
testb %al, %al
je 0x1f1c2
movq -0x30(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x1f31c
cmpl $0x0, 0x120(%rax)
movq -0x40(%rbp), %r12
je 0x1f274
xorl %r13d, %r13d
xorl %r14d, %r14d
movq -0x38(%rbp), %rbx
jmp 0x1f4e6
cmpl $0x6, -0x50(%rbp)
jne 0x1f216
movl $0x1, 0x80(%r13)
movzwl 0x8(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x84(%r13)
movzwl 0xa(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x88(%r13)
movzwl 0xc(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x8c(%r13)
jmp 0x1f260
movq -0x30(%rbp), %r13
movl $0x29, 0x120(%r13)
jmp 0x1ecd7
movq -0x30(%rbp), %r13
movl $0x28, 0x120(%r13)
jmp 0x1ecd7
cmpl $0x0, -0x50(%rbp)
movq -0x38(%rbp), %r9
je 0x1f268
xorl %eax, %eax
movq -0x30(%rbp), %rsi
movq -0x70(%rbp), %rbx
movb (%rbx,%rax), %cl
movq 0x60(%rsi), %rdx
movb %cl, 0x3(%rdx,%rax,4)
incq %rax
cmpq %rax, %r13
jne 0x1f1a4
movq %r9, %r15
movq %rsi, %r13
jmp 0x1ee5e
movq %r12, %rdi
leaq 0x12a01(%rip), %rsi     # 0x31bcd
callq 0x1d1e2
testb %al, %al
je 0x1f2cf
movq -0x30(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x1f31c
xorps %xmm0, %xmm0
movaps %xmm0, -0x90(%rbp)
movq $0x0, -0x80(%rbp)
cmpl $0x0, 0x120(%rax)
movq -0x40(%rbp), %r12
je 0x1f348
xorl %r13d, %r13d
movq -0x38(%rbp), %rbx
jmp 0x1f661
movl $0x2d, 0x120(%r13)
jmp 0x1ecd7
movl $0x2c, 0x120(%r13)
jmp 0x1ecd7
cmpl $0x1, -0x50(%rbp)
jne 0x1f338
movl $0x1, 0x80(%r13)
movq -0x70(%rbp), %rax
movzbl (%rax), %eax
movl %eax, 0x88(%r13)
movl %eax, 0x84(%r13)
movq %rcx, %r15
jmp 0x1ee5e
movq %r9, %r15
movq -0x30(%rbp), %r13
jmp 0x1ee5e
xorl %r8d, %r8d
movq -0x50(%rbp), %rcx
testl %ecx, %ecx
setne %al
movq -0x48(%rbp), %rsi
je 0x1f3f8
movq -0x70(%rbp), %rax
cmpb $0x0, (%rax)
je 0x1f3f6
orl %ebx, %r14d
orl -0x78(%rbp), %r15d
movl %r15d, %r8d
orl %r14d, %r8d
leaq -0x1(%r13), %rcx
xorl %eax, %eax
cmpq %rax, %rcx
je 0x1f3fe
leaq 0x1(%rax), %rdx
cmpb $0x0, 0x9(%rsi,%rax)
movq %rdx, %rax
jne 0x1f2aa
cmpq %r13, %rdx
setb %al
movl %edx, %r8d
jmp 0x1f407
movq %r12, %rdi
leaq 0x128f9(%rip), %rsi     # 0x31bd2
callq 0x1d1e2
testb %al, %al
je 0x1f37b
movq -0x30(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x1f31c
xorps %xmm0, %xmm0
movaps %xmm0, -0x90(%rbp)
movq $0x0, -0x80(%rbp)
cmpl $0x0, 0x120(%rax)
je 0x1f520
xorl %edi, %edi
xorl %r14d, %r14d
xorl %r13d, %r13d
jmp 0x1f860
movq -0x38(%rbp), %r15
movq %rax, %r13
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
jmp 0x1f5a2
movl $0x2b, 0x120(%r13)
jmp 0x1ecd7
movq -0x50(%rbp), %rax
testl %eax, %eax
je 0x1f536
orl %ebx, %r14d
orl -0x78(%rbp), %r15d
orl %r14d, %r15d
xorl %eax, %eax
movq -0x70(%rbp), %rcx
cmpb $0x0, (%rcx,%rax)
je 0x1f5ab
incq %rax
cmpq %rax, %r13
jne 0x1f360
jmp 0x1f5ae
movq -0x48(%rbp), %rdi
leaq 0x12851(%rip), %rsi     # 0x31bd7
callq 0x1d1e2
testb %al, %al
je 0x1f53b
cmpl $0x7, -0x50(%rbp)
jne 0x1f60c
movq -0x30(%rbp), %r13
movb $0x1, 0xd0(%r13)
movq -0x48(%rbp), %rdi
movzwl 0x8(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0xd4(%r13)
movb 0xa(%rdi), %al
movb %al, 0xd8(%r13)
movb 0xb(%rdi), %al
movb %al, 0xd9(%r13)
movb 0xc(%rdi), %al
movb %al, 0xda(%r13)
movb 0xd(%rdi), %al
movb %al, 0xdb(%r13)
movb 0xe(%rdi), %al
movb %al, 0xdc(%r13)
jmp 0x1f592
movb $0x1, %al
movq -0x70(%rbp), %r15
jmp 0x1f40f
incq %rax
cmpq %r13, %rax
setb %al
movq -0x70(%rbp), %r15
movq -0x50(%rbp), %rcx
movl %r8d, %r14d
leaq 0x1(%r14), %rdi
movl $0x4b, %edx
movl %ecx, %ebx
subl %edi, %ebx
jbe 0x1f4d2
movb %al, -0x78(%rbp)
movl %r8d, -0x70(%rbp)
movq %rdi, -0x98(%rbp)
callq 0x5420
testq %rax, %rax
je 0x1f4cd
movq %rax, %r13
movb $0x0, (%rax,%r14)
cmpl $0x0, -0x70(%rbp)
je 0x1f462
xorl %eax, %eax
movb (%r15,%rax), %cl
movb %cl, (%r13,%rax)
incq %rax
cmpq %rax, %r14
jne 0x1f451
cmpb $0x0, -0x78(%rbp)
je 0x1f512
leal 0x1(%rbx), %edi
callq 0x5420
testq %rax, %rax
je 0x1f6ac
movq %rax, %r14
movl %ebx, %eax
movb $0x0, (%r14,%rax)
movq -0x98(%rbp), %rcx
cmpl %ecx, -0x50(%rbp)
je 0x1f4b4
addq -0x98(%rbp), %r15
cmpq $0x1, %rax
adcq $0x0, %rax
xorl %ecx, %ecx
movb (%r15,%rcx), %dl
movb %dl, (%r14,%rcx)
incq %rcx
cmpq %rcx, %rax
jne 0x1f4a4
movq -0xc8(%rbp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x1d84e
movl %eax, %edx
jmp 0x1f6b4
movl $0x26d2, %edx           # imm = 0x26D2
xorl %r13d, %r13d
xorl %r14d, %r14d
movq -0x38(%rbp), %rbx
movq -0x30(%rbp), %rax
movl %edx, 0x120(%rax)
movq %r13, %rdi
callq 0x5390
movq %r14, %rdi
callq 0x5390
movq %rbx, %r15
movq -0x30(%rbp), %r13
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
jmp 0x1ee5e
xorl %r14d, %r14d
movq -0x38(%rbp), %rbx
movl $0x4b, %edx
jmp 0x1f4dc
cmpl $0x5, -0x50(%rbp)
jae 0x1f620
movl $0x4c, -0x78(%rbp)
jmp 0x1f84b
xorl %r15d, %r15d
jmp 0x1f5b2
movq -0x48(%rbp), %rdi
leaq 0x12696(%rip), %rsi     # 0x31bdc
callq 0x1d1e2
testb %al, %al
je 0x1f6bd
cmpl $0x9, -0x50(%rbp)
jne 0x1f6fe
movq -0x30(%rbp), %r13
movl $0x1, 0xe0(%r13)
movq -0x48(%rbp), %rdi
movl 0x8(%rdi), %eax
bswapl %eax
movl %eax, 0xe4(%r13)
movl 0xc(%rdi), %eax
bswapl %eax
movl %eax, 0xe8(%r13)
movb 0x10(%rdi), %al
movb %al, 0xec(%r13)
movq -0x38(%rbp), %r15
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x40(%rbp), %r12
jmp 0x1ee5e
movl %eax, %r15d
movq -0x50(%rbp), %rax
leal 0x2(%r15), %ebx
movl $0x4b, %ecx
cmpl %ebx, %eax
jbe 0x1f64c
movl %r15d, %r14d
leaq 0x1(%r14), %r12
movq %r12, %rdi
callq 0x5420
testq %rax, %rax
je 0x1f647
movq %rax, %r13
movb $0x0, (%rax,%r14)
testl %r15d, %r15d
movq -0x70(%rbp), %rdx
je 0x1f5fa
xorl %eax, %eax
movb (%rdx,%rax), %cl
movb %cl, (%r13,%rax)
incq %rax
cmpq %rax, %r14
jne 0x1f5ea
cmpb $0x0, (%rdx,%r12)
je 0x1f6dc
movl $0x48, %ecx
jmp 0x1f64f
movq -0x30(%rbp), %r13
movl $0x49, 0x120(%r13)
jmp 0x1f70d
orl %ebx, %r14d
orl -0x78(%rbp), %r15d
orl %r14d, %r15d
xorl %eax, %eax
movq -0x70(%rbp), %rcx
cmpb $0x0, (%rcx,%rax)
je 0x1f72b
incq %rax
cmpq %rax, %r13
jne 0x1f62c
jmp 0x1f72e
movl $0x26d4, %ecx           # imm = 0x26D4
xorl %r13d, %r13d
movq -0x40(%rbp), %r12
movq -0x38(%rbp), %rbx
movq -0x30(%rbp), %rax
movl %ecx, 0x120(%rax)
movq %r13, %rdi
callq 0x5390
leaq -0x88(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq -0x90(%rbp), %rdi
callq 0x5390
movq $0x0, -0x90(%rbp)
xorl %eax, %eax
movq -0x30(%rbp), %r13
cmpl $0x0, 0x120(%r13)
setne %cl
jne 0x1f8b0
movq %rbx, %r15
jmp 0x1f4fd
movl $0x26d3, %edx           # imm = 0x26D3
xorl %r14d, %r14d
movq -0x40(%rbp), %r12
jmp 0x1f4d8
movq -0x48(%rbp), %rax
testb $0x20, 0x4(%rax)
jne 0x1f7a1
movq -0x30(%rbp), %r13
movl $0x45, 0x120(%r13)
jmp 0x1f70d
movq -0x50(%rbp), %rax
subl %ebx, %eax
movq %rax, -0x50(%rbp)
jae 0x1f806
movq -0x40(%rbp), %r12
movq -0x38(%rbp), %rbx
movl $0x4b, %ecx
jmp 0x1f657
movq -0x30(%rbp), %r13
movl $0x4a, 0x120(%r13)
movl $0x3, %eax
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r12
jmp 0x1ecdc
movl %eax, %r15d
movl %r15d, %ebx
leaq 0x2(%rbx), %r14
movl $0x4b, -0x78(%rbp)
cmpl -0x50(%rbp), %r14d
jae 0x1f84b
leaq 0x1(%rbx), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5420
movq %rax, -0x98(%rbp)
testq %rax, %rax
je 0x1f844
movq -0x98(%rbp), %rsi
movb $0x0, (%rsi,%rbx)
testl %r15d, %r15d
movq -0x70(%rbp), %rdx
je 0x1f78a
xorl %eax, %eax
movb (%rdx,%rax), %cl
movb %cl, (%rsi,%rax)
incq %rax
cmpq %rax, %rbx
jne 0x1f77c
cmpb $0x0, (%rdx,%r14)
je 0x1f8ea
movl $0x48, -0x78(%rbp)
jmp 0x1fad0
movq -0x30(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x1f8d3
movq -0xa8(%rbp), %rax
decl %eax
movq -0xe8(%rbp), %rcx
leaq (%rcx,%rax,8), %rdi
movq -0xe0(%rbp), %rcx
leaq (%rcx,%rax,8), %rsi
movq -0x48(%rbp), %rdx
callq 0x1d378
movq -0x30(%rbp), %rcx
movl %eax, 0x120(%rcx)
xorl %ecx, %ecx
movl $0x1, -0x9c(%rbp)
testl %eax, %eax
setne %al
je 0x1f8dd
movb %al, %cl
leal (%rcx,%rcx,2), %eax
movq -0x30(%rbp), %r13
jmp 0x1f712
movl %ebx, %eax
movq -0x70(%rbp), %rdx
addq %rax, %rdx
leaq -0x90(%rbp), %rdi
leaq -0x88(%rbp), %rsi
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rbx
movq %rbx, %r8
callq 0x1cd9e
movl %eax, 0x120(%rbx)
testl %eax, %eax
je 0x1fa5a
movq -0x40(%rbp), %r12
jmp 0x1f20d
movl $0x26d5, -0x78(%rbp)    # imm = 0x26D5
xorl %edi, %edi
xorl %r14d, %r14d
xorl %r13d, %r13d
movq -0x30(%rbp), %rax
movl -0x78(%rbp), %ecx
movl %ecx, 0x120(%rax)
movq -0x40(%rbp), %r12
callq 0x5390
movq %r14, %rdi
callq 0x5390
movq %r13, %rdi
callq 0x5390
leaq -0x88(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq -0x90(%rbp), %rdi
callq 0x5390
movq $0x0, -0x90(%rbp)
xorl %eax, %eax
movq -0x30(%rbp), %r13
cmpl $0x0, 0x120(%r13)
setne %cl
je 0x1f8ca
movb %cl, %al
leal (%rax,%rax,2), %eax
movq -0x68(%rbp), %r10
movq -0x60(%rbp), %r11
movq -0x58(%rbp), %r8
movq -0x48(%rbp), %rdi
jmp 0x1ecdc
movq -0x38(%rbp), %r15
jmp 0x1f4fd
movl $0x1, -0x9c(%rbp)
movq -0x38(%rbp), %r15
movq -0x30(%rbp), %r13
jmp 0x1f323
addq $0x3, %rbx
xorl %r12d, %r12d
cmpl -0x50(%rbp), %ebx
jae 0x1f919
movq %r13, %rax
subq %rbx, %rax
movq -0x48(%rbp), %rcx
addq %rbx, %rcx
addq $0x8, %rcx
xorl %r12d, %r12d
cmpb $0x0, (%rcx,%r12)
je 0x1f919
incq %r12
cmpq %r12, %rax
jne 0x1f90a
leal (%r15,%r12), %eax
addl $0x4, %eax
cmpl -0x50(%rbp), %eax
jae 0x1fad0
movq -0x70(%rbp), %rax
movq -0xb0(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xb0(%rbp)
leal 0x1(%r12), %edi
movq %rdi, %r15
callq 0x5420
testq %rax, %rax
je 0x1fac9
movq %rax, %r14
movl %r12d, %eax
movb $0x0, (%r14,%rax)
testl %r12d, %r12d
je 0x1f97c
movq -0x70(%rbp), %rcx
addq %rbx, %rcx
xorl %edx, %edx
movb (%rcx,%rdx), %sil
movb %sil, (%r14,%rdx)
incq %rdx
cmpq %rdx, %rax
jne 0x1f96c
addl %ebx, %r15d
xorl %ebx, %ebx
movq %r15, %r12
cmpl -0x50(%rbp), %r15d
jae 0x1f9a8
subq %r12, %r13
movq -0x48(%rbp), %rax
addq %r12, %rax
addq $0x8, %rax
xorl %ebx, %ebx
cmpb $0x0, (%rax,%rbx)
je 0x1f9a8
incq %rbx
cmpq %rbx, %r13
jne 0x1f99a
leal (%r12,%rbx), %eax
incl %eax
cmpl -0x50(%rbp), %eax
jae 0x1fad3
leal 0x1(%rbx), %edi
movq %rdi, %r15
callq 0x5420
testq %rax, %rax
je 0x1fae2
movq %rax, %r13
movl %ebx, %eax
movb $0x0, (%r13,%rax)
testl %ebx, %ebx
je 0x1f9f4
movq -0x70(%rbp), %rcx
addq %r12, %rcx
xorl %edx, %edx
movb (%rcx,%rdx), %sil
movb %sil, (%r13,%rdx)
incq %rdx
cmpq %rdx, %rax
jne 0x1f9e3
movq %r15, %rax
addl %r12d, %eax
movq -0x50(%rbp), %rbx
subl %eax, %ebx
jb 0x1fad6
movq %rax, %r15
cmpb $0x0, -0xb0(%rbp)
je 0x1faeb
movl %r15d, %eax
movq -0x70(%rbp), %rdx
addq %rax, %rdx
movl %ebx, %ecx
leaq -0x90(%rbp), %rdi
leaq -0x88(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %r8
callq 0x1cd9e
movl %eax, 0x120(%rbx)
testl %eax, %eax
je 0x1fb6e
movq -0x40(%rbp), %r12
movq -0x98(%rbp), %rdi
jmp 0x1f864
movq -0x88(%rbp), %rbx
leaq 0x4(,%rbx,4), %rax
incq %rbx
cmpq -0x80(%rbp), %rax
jbe 0x1fa99
leaq (,%rbx,8), %r15
movq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x5500
testq %rax, %rax
je 0x1faac
movq %r15, -0x80(%rbp)
movq %rax, -0x90(%rbp)
movq %rbx, -0x88(%rbp)
movq -0x90(%rbp), %rax
movb $0x0, -0x1(%rax,%rbx)
movq -0x90(%rbp), %rdx
movq -0xc8(%rbp), %rdi
movq %r13, %rsi
callq 0x1d84e
movl %eax, %ecx
jmp 0x1f64f
movl $0x26d6, -0x78(%rbp)    # imm = 0x26D6
xorl %r14d, %r14d
xorl %r13d, %r13d
movq -0x98(%rbp), %rdi
jmp 0x1f853
movl $0x26d7, -0x78(%rbp)    # imm = 0x26D7
jmp 0x1fad3
leal 0x1(%rbx), %r12d
leaq (,%r12,4), %rax
cmpq -0x80(%rbp), %rax
jbe 0x1fb2d
leaq (,%r12,8), %rsi
movq -0x90(%rbp), %rdi
movq %rsi, -0x78(%rbp)
callq 0x5500
testq %rax, %rax
je 0x1fbee
movq -0x78(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq %rax, -0x90(%rbp)
movq %r12, -0x88(%rbp)
movq -0x90(%rbp), %rax
movl %ebx, %ecx
movb $0x0, (%rax,%rcx)
cmpl %r15d, -0x50(%rbp)
je 0x1fbc0
movl %r15d, %edx
addq %rdx, -0x70(%rbp)
cmpq $0x1, %rcx
adcq $0x0, %rcx
xorl %edx, %edx
movq -0x70(%rbp), %rsi
movb (%rsi,%rdx), %sil
movb %sil, (%rax,%rdx)
incq %rdx
cmpq %rdx, %rcx
jne 0x1fb58
jmp 0x1fbc0
movq -0x88(%rbp), %rbx
leaq 0x4(,%rbx,4), %rax
incq %rbx
cmpq -0x80(%rbp), %rax
jbe 0x1fbad
leaq (,%rbx,8), %r15
movq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x5500
testq %rax, %rax
je 0x1fbc0
movq %r15, -0x80(%rbp)
movq %rax, -0x90(%rbp)
movq %rbx, -0x88(%rbp)
movq -0x90(%rbp), %rax
movb $0x0, -0x1(%rax,%rbx)
movq -0x90(%rbp), %r8
movq -0xd8(%rbp), %rdi
movq -0x98(%rbp), %rbx
movq %rbx, %rsi
movq %r14, %rdx
movq %r13, %rcx
callq 0x1dad5
movq %rbx, %rdi
movl %eax, -0x78(%rbp)
jmp 0x1f853
movl $0x26d8, -0x78(%rbp)    # imm = 0x26D8
jmp 0x1fad6
cmpl $0x0, 0x120(%r13)
jne 0x1fddb
xorps %xmm0, %xmm0
movaps %xmm0, -0x90(%rbp)
movq $0x0, -0x80(%rbp)
movl 0x40(%r13), %ecx
movl 0x44(%r13), %eax
movl 0x58(%r13), %esi
xorl %edx, %edx
movl 0x5c(%r13), %ebx
cmpq $0x6, %rsi
ja 0x1fc3c
leaq 0x11f43(%rip), %rdx     # 0x31b7c
movl (%rdx,%rsi,4), %edx
imull %eax, %ebx
imull %edx, %ebx
addl $0x7, %ebx
imull %ecx, %ebx
shrl $0x3, %ebx
addl %eax, %ebx
leaq (,%rbx,4), %rax
cmpq -0x80(%rbp), %rax
movq %r10, %r12
jbe 0x1fc8e
leaq (,%rbx,8), %r14
movq -0x90(%rbp), %rdi
movq %r14, %rsi
callq 0x5500
testq %rax, %rax
je 0x1fc97
movq %r14, -0x80(%rbp)
movq %rax, -0x90(%rbp)
movq %rbx, -0x88(%rbp)
jmp 0x1fca2
movq %rbx, -0x88(%rbp)
jmp 0x1fca5
movl $0x26d9, 0x120(%r13) # imm = 0x26D9
movq %r12, %r10
movq -0x38(%rbp), %rcx
cmpl $0x0, 0x120(%r13)
jne 0x1fcd3
leaq -0x88(%rbp), %rsi
leaq -0x90(%rbp), %rdi
movq %r10, %rdx
movq %r13, %r8
callq 0x1cd9e
movl %eax, 0x120(%r13)
cmpl $0x0, 0x120(%r13)
jne 0x1fdc2
movl 0x40(%r13), %ebx
movl 0x44(%r13), %eax
movl 0x58(%r13), %esi
xorl %edx, %edx
movl 0x5c(%r13), %ecx
cmpq $0x6, %rsi
ja 0x1fd03
leaq 0x11e7c(%rip), %rdx     # 0x31b7c
movl (%rdx,%rsi,4), %edx
imull %edx, %ecx
imull %eax, %ebx
imull %ecx, %ebx
addl $0x7, %ebx
movl %ebx, %r15d
shrl $0x3, %r15d
cmpl $0x8, %ebx
jae 0x1fd26
xorl %r14d, %r14d
movq %r15, %rdx
xorl %r13d, %r13d
jmp 0x1fd4b
leal (,%r15,8), %edi
callq 0x5420
testq %rax, %rax
je 0x1fd43
movq %rax, %r14
xorl %r13d, %r13d
movq %r15, %rdx
jmp 0x1fd4b
movb $0x1, %r13b
xorl %r14d, %r14d
xorl %edx, %edx
cmpl $0x8, %ebx
setb %al
orb %r13b, %al
jne 0x1fd69
movq %r14, %rdi
xorl %esi, %esi
movq %rdx, %rbx
movq %r15, %rdx
callq 0x5170
movq %rbx, %rdx
testb %r13b, %r13b
movq -0x30(%rbp), %r13
je 0x1fd7d
movl $0x26da, 0x120(%r13) # imm = 0x26DA
cmpl $0x0, 0x120(%r13)
movq -0xb8(%rbp), %rax
jne 0x1fdb5
movq %rdx, %rbx
leaq 0x40(%r13), %rdx
movq -0x90(%rbp), %rsi
movq %r14, %rdi
callq 0x248c0
movq %rbx, %rdx
movl %eax, 0x120(%r13)
movq -0xb8(%rbp), %rax
movq -0xc0(%rbp), %rcx
movq %r14, (%rcx)
movq %rdx, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x88(%rbp)
movq -0x90(%rbp), %rdi
callq 0x5390
movq %r12, %r10
movq %r10, %rdi
callq 0x5390
cmpl $0x0, 0x120(%r13)
jne 0x1fe21
movl 0x8(%r13), %ecx
testl %ecx, %ecx
je 0x1fe0d
movl 0x18(%r13), %eax
cmpl 0x58(%r13), %eax
jne 0x1fe33
movl 0x1c(%r13), %edx
cmpl 0x5c(%r13), %edx
jne 0x1fe33
testl %ecx, %ecx
jne 0x1fe21
leaq 0x18(%r13), %rdi
leaq 0x58(%r13), %rsi
callq 0x1de11
movl %eax, 0x120(%r13)
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq -0xc0(%rbp), %rcx
movq (%rcx), %r14
movl %eax, %ecx
orl $0x4, %ecx
cmpl $0x6, %ecx
jne 0x1feb7
movl 0x1c(%r13), %ecx
movl 0x40(%r13), %r15d
movl 0x44(%r13), %r12d
xorl %edx, %edx
cmpl $0x6, %eax
ja 0x1fe64
leaq 0x11d1b(%rip), %rdx     # 0x31b7c
movl (%rdx,%rax,4), %edx
imull %edx, %ecx
movl %r12d, %edi
imull %r15d, %edi
imull %ecx, %edi
addl $0x7, %edi
shrl $0x3, %edi
movq -0xb8(%rbp), %rbx
movq %rdi, (%rbx)
callq 0x5420
movq -0xc0(%rbp), %rcx
movq %rax, (%rcx)
testq %rax, %rax
je 0x1fece
leaq 0x18(%r13), %rdx
leaq 0x58(%r13), %rcx
movq %rax, %rdi
movq %r14, %rsi
movl %r15d, %r8d
movl %r12d, %r9d
callq 0x1dfc6
movl %eax, 0x120(%r13)
jmp 0x1fee0
cmpl $0x8, 0x1c(%r13)
je 0x1fe47
movl $0x38, 0x120(%r13)
jmp 0x1fe21
movl $0x26db, 0x120(%r13) # imm = 0x26DB
movq $0x0, (%rbx)
movq %r14, %rdi
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x5390