// File: /workspace/github_cpp_makefile_star2_O2/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 $0x318, %rsp            # imm = 0x318
movq %rcx, %r13
movq %rdi, %rbx
andq $0x0, (%rsi)
andq $0x0, (%rdx)
testq %r8, %r8
setne %al
testq %rcx, %rcx
setne %cl
testb %al, %cl
jne 0x12fa1
movl $0x30, 0x120(%rbx)
jmp 0x13cb6
movq %r8, %r12
movq %rdx, %r14
movq %rsi, %r15
movq %rbx, %rdi
movq %r13, %rsi
movq %r8, %rdx
callq 0x12d3a
cmpl $0x0, 0x120(%rbx)
jne 0x13cb6
movq %r15, -0xa0(%rbp)
movq %r14, -0xb8(%rbp)
leaq -0x120(%rbp), %rax
andq $0x0, 0x10(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
leaq 0x21(%r13), %r15
leaq 0x58(%rbx), %rax
movq %rax, -0x70(%rbp)
leaq 0x90(%rbx), %rax
movq %rax, -0xb0(%rbp)
leaq 0xa8(%rbx), %rax
movq %rax, -0x130(%rbp)
leaq 0xf0(%rbx), %rax
movq %rax, -0x140(%rbp)
leaq 0x108(%rbx), %rax
movq %rax, -0x138(%rbp)
movq $0x0, -0xc0(%rbp)
pushq $0x1
popq %rax
movq %rax, -0x78(%rbp)
movl $0x0, -0x4c(%rbp)
movq %r12, -0x48(%rbp)
movq %r13, -0x148(%rbp)
movq %r15, %rax
subq %r13, %rax
leaq 0xc(%rax), %rcx
setb %al
movq %rcx, -0xa8(%rbp)
cmpq %r12, %rcx
seta %cl
orb %al, %cl
movb %cl, -0x60(%rbp)
leaq 0x8(%r15), %r13
xorl %r12d, %r12d
testb %r12b, %r12b
jne 0x13b5b
cmpb $0x0, -0x60(%rbp)
jne 0x13c4f
movq %r15, %rdi
callq 0x118c0
testl %eax, %eax
js 0x13c5b
movl %eax, %r14d
movq -0xa8(%rbp), %rax
addq %r14, %rax
cmpq -0x48(%rbp), %rax
ja 0x13c67
movq %r15, %rdi
leaq 0xfb14(%rip), %rsi      # 0x22bcb
callq 0x118e8
testb %al, %al
je 0x13114
movq -0x118(%rbp), %r12
leaq (%r12,%r14), %rsi
leaq -0x120(%rbp), %rdi
callq 0x10bdb
testl %eax, %eax
je 0x13c73
movq -0x120(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
addq %rcx, %r12
xorl %eax, %eax
cmpq %rax, %r14
je 0x13105
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0x130f2
movb $0x1, %r14b
xorl %r12d, %r12d
pushq $0x3
popq %rax
movq %rax, -0x78(%rbp)
jmp 0x1312d
movq %r15, %rdi
leaq 0xfab2(%rip), %rsi      # 0x22bd0
callq 0x118e8
testb %al, %al
je 0x13153
movb $0x1, %r12b
xorl %r14d, %r14d
movl 0x4(%rbx), %eax
orl -0x4c(%rbp), %eax
jne 0x13145
movq %r15, %rdi
callq 0x1197d
testl %eax, %eax
jne 0x13c7f
testb %r14b, %r14b
je 0x13073
jmp 0x13b40
movq %r15, %rdi
leaq 0xfa78(%rip), %rsi      # 0x22bd5
callq 0x118e8
testb %al, %al
je 0x131a4
movq 0x60(%rbx), %rdi
callq 0x4350
movl %r14d, %eax
xorl %edx, %edx
pushq $0x3
popq %rcx
divl %ecx
movl %eax, %r12d
movq %r12, 0x68(%rbx)
leaq (,%r12,4), %rdi
callq 0x43f0
movq %rax, 0x60(%rbx)
testq %rax, %rax
je 0x13202
cmpl $0x303, %r14d           # imm = 0x303
jb 0x13214
jmp 0x13dc3
movq %r15, %rdi
leaq 0xfa2c(%rip), %rsi      # 0x22bda
callq 0x118e8
testb %al, %al
je 0x13270
movq -0x70(%rbp), %rax
movl (%rax), %eax
testl %eax, %eax
je 0x13315
cmpl $0x2, %eax
je 0x132d5
cmpl $0x3, %eax
jne 0x13efb
cmpq %r14, 0x68(%rbx)
jb 0x13f28
xorl %eax, %eax
cmpq %rax, %r14
je 0x1333b
movb (%r13,%rax), %cl
movq 0x60(%rbx), %rdx
movb %cl, 0x3(%rdx,%rax,4)
incq %rax
jmp 0x131e7
cmpl $0x3, %r14d
jae 0x13dd2
andq $0x0, 0x68(%rbx)
xorl %r12d, %r12d
pushq $0x2
popq %rax
xorl %ecx, %ecx
cmpq %r12, %rcx
jae 0x13263
leal -0x2(%rax), %edx
leal -0x1(%rax), %esi
movl %edx, %edx
movb (%r13,%rdx), %dl
movq 0x60(%rbx), %rdi
movb %dl, (%rdi,%rcx,4)
movb (%r13,%rsi), %dl
movq 0x60(%rbx), %rsi
movb %dl, 0x1(%rsi,%rcx,4)
movl %eax, %edx
movb (%r13,%rdx), %dl
movq 0x60(%rbx), %rsi
movb %dl, 0x2(%rsi,%rcx,4)
movq 0x60(%rbx), %rdx
movb $-0x1, 0x3(%rdx,%rcx,4)
incq %rcx
movq 0x68(%rbx), %r12
addl $0x3, %eax
jmp 0x13219
movb $0x1, %r14b
xorl %r12d, %r12d
pushq $0x2
jmp 0x1310d
movq %r15, %rdi
leaq 0xf965(%rip), %rsi      # 0x22bdf
callq 0x118e8
testb %al, %al
je 0x13346
movq -0x70(%rbp), %rax
movl (%rax), %eax
xorl %r12d, %r12d
cmpq $0x6, %rax
ja 0x13430
leaq 0xf593(%rip), %rcx      # 0x22834
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x2, %r14d
jne 0x13f46
movl $0x1, 0x80(%rbx)
movzwl 0x8(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x8c(%rbx)
jmp 0x13421
cmpl $0x6, %r14d
jne 0x13f19
movl $0x1, 0x70(%rbx)
movzwl 0x8(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x74(%rbx)
movzwl 0xa(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x78(%rbx)
movzwl 0xc(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x7c(%rbx)
jmp 0x1333b
cmpl $0x2, %r14d
jne 0x13f0a
movl $0x1, 0x70(%rbx)
movzwl 0x8(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x7c(%rbx)
movl %eax, 0x78(%rbx)
movl %eax, 0x74(%rbx)
movb $0x1, %r14b
xorl %r12d, %r12d
jmp 0x1312d
movq %r15, %rdi
leaq 0xf894(%rip), %rsi      # 0x22be4
callq 0x118e8
testb %al, %al
je 0x133c9
cmpl $0x0, 0xc(%rbx)
je 0x1342d
cmpl $0x0, 0x120(%rbx)
je 0x13438
xorl %edi, %edi
xorl %r12d, %r12d
movb $0x1, %r14b
jmp 0x136a3
cmpl $0x6, %r14d
jne 0x13f37
movl $0x1, 0x80(%rbx)
movzwl 0x8(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x84(%rbx)
movzwl 0xa(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x88(%rbx)
movzwl 0xc(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x8c(%rbx)
jmp 0x1342d
movq %r15, %rdi
leaq 0xf816(%rip), %rsi      # 0x22be9
callq 0x118e8
testb %al, %al
je 0x1344c
cmpl $0x0, 0xc(%rbx)
je 0x1342d
andq $0x0, -0xf0(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x100(%rbp)
cmpl $0x0, 0x120(%rbx)
je 0x134e8
xorl %edi, %edi
jmp 0x136d7
cmpl $0x1, %r14d
jne 0x13f5d
movl $0x1, 0x80(%rbx)
movzbl (%r13), %eax
movl %eax, 0x88(%rbx)
movl %eax, 0x84(%rbx)
xorl %r12d, %r12d
movb $0x1, %r14b
jmp 0x1312d
xorl %eax, %eax
cmpq %rax, %r14
je 0x1349d
cmpb $0x0, (%r13,%rax)
je 0x134a0
incq %rax
jmp 0x1343a
movq %r15, %rdi
leaq 0xf798(%rip), %rsi      # 0x22bee
callq 0x118e8
testb %al, %al
je 0x13504
cmpl $0x0, 0xc(%rbx)
je 0x1342d
andq $0x0, -0xf0(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x100(%rbp)
cmpl $0x0, 0x120(%rbx)
je 0x1362b
xorl %edi, %edi
xorl %r12d, %r12d
movq $0x0, -0x30(%rbp)
movb $0x1, %r14b
jmp 0x137fc
movl %r14d, %eax
movl %eax, %r12d
leaq 0x1(%r12), %rdi
cmpl %edi, %r14d
jbe 0x134e0
movq %rdi, -0x38(%rbp)
callq 0x43f0
testq %rax, %rax
je 0x13614
movb $0x0, (%rax,%r12)
xorl %edx, %edx
movq -0x38(%rbp), %rsi
cmpq %rdx, %r12
je 0x13575
movb (%r13,%rdx), %cl
movb %cl, (%rax,%rdx)
incq %rdx
jmp 0x134ca
pushq $0x4b
popq %rax
jmp 0x13619
xorl %eax, %eax
cmpq %rax, %r14
je 0x135cc
cmpb $0x0, (%r13,%rax)
je 0x135cf
incq %rax
jmp 0x134ea
movq %r15, %rdi
leaq 0xf6e5(%rip), %rsi      # 0x22bf3
callq 0x118e8
testb %al, %al
je 0x1363c
cmpl $0x7, %r14d
jne 0x141e0
movb $0x1, 0xd0(%rbx)
movzwl 0x8(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0xd4(%rbx)
movb 0xa(%r15), %al
movb %al, 0xd8(%rbx)
movb 0xb(%r15), %al
movb %al, 0xd9(%rbx)
movb 0xc(%r15), %al
movb %al, 0xda(%rbx)
movb 0xd(%r15), %al
movb %al, 0xdb(%rbx)
movb 0xe(%r15), %al
movb %al, 0xdc(%rbx)
jmp 0x1333b
movq %rax, -0x30(%rbp)
subl %esi, %r14d
movq %rsi, %r12
leal 0x1(%r14), %edi
callq 0x43f0
testq %rax, %rax
je 0x1368e
movl %r14d, %esi
movb $0x0, (%rax,%rsi)
addq %r13, %r12
xorl %ecx, %ecx
movb $0x1, %r14b
cmpq %rcx, %rsi
je 0x135b1
movb (%r12,%rcx), %dl
movb %dl, (%rax,%rcx)
incq %rcx
jmp 0x135a0
movq -0xb0(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq %rax, %r12
movq %rax, %rdx
callq 0x11f08
jmp 0x13699
movl %r14d, %eax
leal 0x2(%rax), %ecx
cmpl %ecx, %r14d
jbe 0x13623
movl %ecx, -0x38(%rbp)
movl %eax, %r12d
leaq 0x1(%r12), %rdi
movq %rdi, -0x30(%rbp)
callq 0x43f0
testq %rax, %rax
je 0x136ca
movq %rax, %rdi
movb $0x0, (%rax,%r12)
xorl %eax, %eax
cmpq %rax, %r12
je 0x136b5
movb (%r13,%rax), %cl
movb %cl, (%rdi,%rax)
incq %rax
jmp 0x135fe
movl $0x26d2, %eax           # imm = 0x26D2
xorl %edi, %edi
xorl %r12d, %r12d
movb $0x1, %r14b
jmp 0x1369d
pushq $0x4b
popq %rax
jmp 0x136cf
cmpl $0x5, %r14d
jae 0x136df
pushq $0x4c
jmp 0x137e5
movq %r15, %rdi
leaq 0xf5b2(%rip), %rsi      # 0x22bf8
callq 0x118e8
testb %al, %al
je 0x136fb
cmpl $0x9, %r14d
jne 0x141ef
movl $0x1, 0xe0(%rbx)
movl 0x8(%r15), %eax
bswapl %eax
movl %eax, 0xe4(%rbx)
movl 0xc(%r15), %eax
bswapl %eax
movl %eax, 0xe8(%rbx)
movb 0x10(%r15), %al
movb %al, 0xec(%rbx)
jmp 0x1333b
movl $0x26d3, %eax           # imm = 0x26D3
xorl %r12d, %r12d
movb $0x1, %r14b
movq -0x30(%rbp), %rdi
movl %eax, 0x120(%rbx)
callq 0x4350
movq %r12, %rdi
callq 0x4350
jmp 0x1333e
movq -0x30(%rbp), %rax
cmpb $0x0, (%r13,%rax)
je 0x13753
pushq $0x48
popq %rax
jmp 0x136d1
movl $0x26d4, %eax           # imm = 0x26D4
xorl %edi, %edi
movl %eax, 0x120(%rbx)
movb $0x1, %r14b
jmp 0x1380d
xorl %eax, %eax
cmpq %rax, %r14
je 0x13790
cmpb $0x0, (%r13,%rax)
je 0x13793
incq %rax
jmp 0x136e1
testb $0x20, 0x4(%r15)
je 0x141fe
cmpl $0x0, 0x10(%rbx)
je 0x13843
movq -0x78(%rbp), %rax
decl %eax
movq -0x140(%rbp), %rcx
leaq (%rcx,%rax,8), %rdi
movq -0x138(%rbp), %rcx
leaq (%rcx,%rax,8), %rsi
movq %r15, %rdx
callq 0x11ab6
movl %eax, 0x120(%rbx)
testl %eax, %eax
movb $0x1, %r14b
jne 0x13ca1
xorl %r12d, %r12d
pushq $0x1
popq %rax
movl %eax, -0x4c(%rbp)
jmp 0x1312d
movq %rdi, %r12
movl -0x38(%rbp), %eax
subl %eax, %r14d
movl %eax, %edx
addq %r13, %rdx
leaq -0x100(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movq %r14, %rcx
movq %rbx, %r8
callq 0x1163d
movl %eax, 0x120(%rbx)
testl %eax, %eax
je 0x13851
movb $0x1, %r14b
movq %r12, %rdi
jmp 0x1380d
movl %r14d, %eax
movq %rax, -0x98(%rbp)
movl %eax, %r12d
leaq 0x2(%r12), %rcx
movq %rcx, -0x30(%rbp)
cmpl %r14d, %ecx
jae 0x137e3
leaq 0x1(%r12), %rdi
movq %rdi, -0x38(%rbp)
callq 0x43f0
movq %rax, -0x58(%rbp)
testq %rax, %rax
je 0x1387d
movq -0x58(%rbp), %rdx
movb $0x0, (%rdx,%r12)
xorl %eax, %eax
cmpq %rax, %r12
je 0x13830
movb (%r13,%rax), %cl
movb %cl, (%rdx,%rax)
incq %rax
jmp 0x137d1
pushq $0x4b
popq %rax
xorl %edi, %edi
xorl %r12d, %r12d
movq $0x0, -0x30(%rbp)
movb $0x1, %r14b
movl %eax, 0x120(%rbx)
callq 0x4350
movq %r12, %rdi
callq 0x4350
movq -0x30(%rbp), %rdi
callq 0x4350
leaq -0x100(%rbp), %rdi
callq 0x11873
cmpl $0x0, 0x120(%rbx)
je 0x1333e
jmp 0x13ca1
movq -0x30(%rbp), %rax
cmpb $0x0, (%r13,%rax)
je 0x13887
pushq $0x48
jmp 0x13952
xorl %r12d, %r12d
pushq $0x1
popq %rax
movl %eax, -0x4c(%rbp)
jmp 0x13430
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
callq 0x11607
movq -0x100(%rbp), %rdx
movq -0xb0(%rbp), %rdi
movq %r12, %rsi
callq 0x11f08
movq %r12, %rdi
jmp 0x136d1
movl $0x26d5, %eax           # imm = 0x26D5
jmp 0x137e6
movq -0x38(%rbp), %rax
movb (%r13,%rax), %al
movb %al, -0x39(%rbp)
movq -0x98(%rbp), %rcx
leal 0x3(%rcx), %eax
movl %r14d, %esi
subl %ecx, %esi
leal -0x5(%rsi), %edx
movl %edx, -0x80(%rbp)
addl $-0x4, %esi
leaq (%rax,%r13), %r9
leal 0x4(%rcx), %r8d
leal 0x5(%rcx), %edx
xorl %edi, %edi
leaq (%rax,%rdi), %rcx
cmpq %r14, %rcx
jae 0x138d5
cmpb $0x0, (%r9,%rdi)
je 0x138d5
incq %rdi
decq %rsi
incl %r8d
incl %edx
jmp 0x138b8
movq %r9, -0x30(%rbp)
movl %r8d, -0x38(%rbp)
movq %rsi, -0x128(%rbp)
movl %edx, -0x90(%rbp)
movq %rdi, -0x88(%rbp)
leal (%r12,%rdi), %eax
addl $0x4, %eax
cmpl %r14d, %eax
jae 0x13950
movq -0x88(%rbp), %rax
leal 0x1(%rax), %edi
callq 0x43f0
movq %rax, -0x68(%rbp)
testq %rax, %rax
je 0x139a6
movl -0x80(%rbp), %eax
movq -0x88(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x80(%rbp)
movq -0x68(%rbp), %rax
movb $0x0, (%rax,%rcx)
xorl %eax, %eax
cmpq %rax, -0x88(%rbp)
je 0x1396a
movq -0x30(%rbp), %rcx
movb (%rcx,%rax), %cl
movq -0x68(%rbp), %rdx
movb %cl, (%rdx,%rax)
incq %rax
jmp 0x13934
pushq $0x4b
popq %rax
xorl %r12d, %r12d
movq $0x0, -0x30(%rbp)
movb $0x1, %r14b
movq -0x58(%rbp), %rdi
jmp 0x137f6
movl -0x38(%rbp), %r12d
leaq (%r12,%r13), %rax
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rcx
addq %r12, %rcx
cmpq %r14, %rcx
jae 0x139ad
movq -0x38(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x139b2
incq -0x38(%rbp)
movq -0x80(%rbp), %rcx
decl %ecx
movq %rcx, -0x80(%rbp)
incl -0x90(%rbp)
jmp 0x1397a
movl $0x26d6, %eax           # imm = 0x26D6
jmp 0x13953
pushq $-0x1
popq %rax
jmp 0x139b6
movq -0x80(%rbp), %rax
movl %eax, -0x8c(%rbp)
movq -0x98(%rbp), %rax
movq -0x88(%rbp), %rcx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
addl %ecx, %eax
addl $0x5, %eax
cmpl %r14d, %eax
jae 0x13a16
movq -0x38(%rbp), %rax
leal 0x1(%rax), %edi
callq 0x43f0
movq %rax, -0x30(%rbp)
testq %rax, %rax
je 0x13a3e
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
movb $0x0, (%rax,%rcx)
addq %r13, %r12
xorl %eax, %eax
cmpq %rax, -0x38(%rbp)
je 0x13a1b
movb (%r12,%rax), %cl
movq -0x30(%rbp), %rdx
movb %cl, (%rdx,%rax)
incq %rax
jmp 0x13a00
pushq $0x4b
popq %rax
jmp 0x13a43
movq -0x98(%rbp), %rax
movq -0x88(%rbp), %rcx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
addl %ecx, %eax
addl $0x5, %eax
cmpl %r14d, %eax
jbe 0x13a5b
pushq $0x4b
popq %rax
jmp 0x13a4b
movl $0x26d7, %eax           # imm = 0x26D7
movq $0x0, -0x30(%rbp)
movb $0x1, %r14b
movq -0x58(%rbp), %rdi
movq -0x68(%rbp), %r12
jmp 0x137f6
movl -0x80(%rbp), %r14d
cmpb $0x0, -0x39(%rbp)
je 0x13ab2
movq -0x98(%rbp), %rax
addl -0x88(%rbp), %eax
movq -0x38(%rbp), %rcx
leal (%rcx,%rax), %edx
addl $0x5, %edx
addq %r13, %rdx
leaq -0x100(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movq %r14, %rcx
movq %rbx, %r8
callq 0x1163d
movl %eax, 0x120(%rbx)
testl %eax, %eax
je 0x13afb
movb $0x1, %r14b
movq -0x58(%rbp), %rdi
movq -0x68(%rbp), %r12
jmp 0x137fc
movq -0x128(%rbp), %rsi
subl -0x38(%rbp), %esi
leaq -0x100(%rbp), %rdi
callq 0x10bdb
testl %eax, %eax
je 0x13b36
movq -0x100(%rbp), %r8
movb $0x0, (%r8,%r14)
movl -0x8c(%rbp), %eax
movl -0x90(%rbp), %ecx
addq %r13, %rcx
xorl %edx, %edx
cmpq %rdx, %rax
je 0x13b10
movb (%rcx,%rdx), %sil
movb %sil, (%r8,%rdx)
incq %rdx
jmp 0x13ae9
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
callq 0x11607
movq -0x100(%rbp), %r8
movq -0x130(%rbp), %rdi
movq -0x58(%rbp), %r14
movq %r14, %rsi
movq -0x68(%rbp), %rdx
movq %rdx, %r12
movq -0x30(%rbp), %rcx
callq 0x1215b
movq %r14, %rdi
jmp 0x137f3
movl $0x26d8, %eax           # imm = 0x26D8
jmp 0x13a4b
movq %r15, %rdi
callq 0x11a9b
movq %rax, %r15
movq -0x48(%rbp), %r12
movq -0x148(%rbp), %r13
jmp 0x1304d
cmpl $0x0, 0x120(%rbx)
jne 0x13ca1
leaq -0x160(%rbp), %r14
andq $0x0, 0x10(%r14)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movl 0x40(%rbx), %r15d
movl 0x44(%rbx), %r12d
movq -0x70(%rbp), %rdi
callq 0x11cfc
imull %r12d, %eax
leal 0x7(%rax), %esi
imull %r15d, %esi
shrl $0x3, %esi
addl %r12d, %esi
movq %r14, %rdi
callq 0x10bdb
testl %eax, %eax
je 0x13c8b
cmpl $0x0, 0x120(%rbx)
jne 0x13c95
leaq -0x158(%rbp), %rsi
movq -0x118(%rbp), %rcx
leaq -0x160(%rbp), %rdi
movq -0xc0(%rbp), %rdx
movq %rbx, %r8
callq 0x1163d
movl %eax, 0x120(%rbx)
testl %eax, %eax
jne 0x13c95
xorps %xmm0, %xmm0
leaq -0x180(%rbp), %r14
andq $0x0, 0x10(%r14)
movaps %xmm0, (%r14)
movl 0x40(%rbx), %r12d
imull 0x44(%rbx), %r12d
movq -0x70(%rbp), %rdi
callq 0x11cfc
movl %eax, %r15d
imull %r12d, %r15d
addl $0x7, %r15d
shrl $0x3, %r15d
movq %r14, %rdi
movq %r15, %rsi
callq 0x10bdb
testl %eax, %eax
je 0x13ee5
movq -0x180(%rbp), %r14
xorl %eax, %eax
cmpq %rax, %r15
je 0x13de1
movb $0x0, (%r14,%rax)
incq %rax
jmp 0x13c3c
movl $0x1e, 0x120(%rbx)
jmp 0x13ca1
movl $0x3f, 0x120(%rbx)
jmp 0x13ca1
movl $0x23, 0x120(%rbx)
jmp 0x13ca1
movl $0x26d0, 0x120(%rbx)    # imm = 0x26D0
jmp 0x13ca1
movl $0x39, 0x120(%rbx)
jmp 0x13ca1
movl $0x26d9, 0x120(%rbx)    # imm = 0x26D9
leaq -0x160(%rbp), %rdi
callq 0x11873
leaq -0x120(%rbp), %rdi
callq 0x11873
cmpl $0x0, 0x120(%rbx)
je 0x13cc8
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18(%rbx), %r14
cmpl $0x0, 0x8(%rbx)
je 0x13d66
movl 0x18(%rbx), %eax
cmpl 0x58(%rbx), %eax
jne 0x13ce6
movl 0x1c(%rbx), %ecx
cmpl 0x5c(%rbx), %ecx
je 0x13cb6
movq -0xa0(%rbp), %rcx
movq (%rcx), %rdx
orl $0x4, %eax
cmpl $0x6, %eax
jne 0x13d7d
movq %rdx, -0x60(%rbp)
movl 0x40(%rbx), %eax
movl 0x44(%rbx), %r13d
movl %r13d, %r15d
movl %eax, -0x48(%rbp)
imull %eax, %r15d
movq %r14, %rdi
callq 0x11cfc
imull %eax, %r15d
addl $0x7, %r15d
shrl $0x3, %r15d
movq -0xb8(%rbp), %r12
movq %r15, (%r12)
movq %r15, %rdi
callq 0x43f0
movq -0xa0(%rbp), %rcx
movq %rax, (%rcx)
testq %rax, %rax
je 0x13d96
movq %rax, %rdi
movq -0x60(%rbp), %r15
movq %r15, %rsi
movq %r14, %rdx
movq -0x70(%rbp), %rcx
movl -0x48(%rbp), %r8d
movl %r13d, %r9d
callq 0x12573
jmp 0x13da4
movq %r14, %rdi
movq -0x70(%rbp), %rsi
callq 0x1242f
movl %eax, 0x120(%rbx)
jmp 0x13cb6
cmpl $0x8, 0x1c(%rbx)
je 0x13cfc
movl $0x38, 0x120(%rbx)
jmp 0x13cb6
andq $0x0, (%r12)
movl $0x26db, %eax           # imm = 0x26DB
movq -0x60(%rbp), %r15
movl %eax, 0x120(%rbx)
movq %r15, %rdi
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4350
movl $0x26, 0x120(%rbx)
jmp 0x13ca1
movl $0x26d1, 0x120(%rbx)    # imm = 0x26D1
jmp 0x13ca1
cmpl $0x0, 0x120(%rbx)
jne 0x141c0
movq -0x160(%rbp), %r15
movq -0x70(%rbp), %rdi
callq 0x11cfc
testl %eax, %eax
je 0x13f55
movl %eax, %r12d
movl 0x40(%rbx), %eax
movl 0x44(%rbx), %r10d
cmpl $0x0, 0x50(%rbx)
je 0x13f6c
leaq -0x200(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
leaq -0x300(%rbp), %rdx
leaq -0x2c0(%rbp), %rcx
leaq -0x280(%rbp), %r8
movl %eax, -0x60(%rbp)
movl %eax, %r9d
pushq %r12
movq %r10, -0x78(%rbp)
pushq %r10
callq 0x177a6
popq %rax
popq %rcx
xorl %eax, %eax
cmpq $0x1c, %rax
je 0x13fa1
movq -0x2c0(%rbp,%rax,2), %rdi
addq %r15, %rdi
movq -0x300(%rbp,%rax,2), %rsi
addq %r15, %rsi
movl -0x200(%rbp,%rax), %edx
movq %rax, -0x48(%rbp)
movl -0x1e0(%rbp,%rax), %ecx
movq %rdi, -0xa8(%rbp)
movq %rdx, %r13
movl %ecx, -0x4c(%rbp)
movl %r12d, %r8d
callq 0x17487
testl %eax, %eax
jne 0x141ba
cmpl $0x7, %r12d
ja 0x13ed8
movq -0x48(%rbp), %rax
movq -0x280(%rbp,%rax,2), %rdi
addq %r15, %rdi
imull %r12d, %r13d
movl %r13d, %ecx
addl $0x7, %ecx
andl $-0x8, %ecx
movq -0xa8(%rbp), %rsi
movq %r13, %rdx
movl -0x4c(%rbp), %r8d
callq 0x17708
movq -0x48(%rbp), %rax
addq $0x4, %rax
jmp 0x13e54
movl $0x26da, 0x120(%rbx)    # imm = 0x26DA
movq -0x180(%rbp), %r14
jmp 0x141c0
movl $0x2a, 0x120(%rbx)
jmp 0x13ca1
movl $0x28, 0x120(%rbx)
jmp 0x13ca1
movl $0x29, 0x120(%rbx)
jmp 0x13ca1
movl $0x27, 0x120(%rbx)
jmp 0x13ca1
movl $0x2d, 0x120(%rbx)
jmp 0x13ca1
movl $0x2c, 0x120(%rbx)
jmp 0x13ca1
pushq $0x1f
popq %rax
jmp 0x141ba
movl $0x2b, 0x120(%rbx)
jmp 0x13ca1
cmpl $0x7, %r12d
ja 0x13f89
movl %r12d, %ecx
imull %eax, %ecx
leal 0x7(%rcx), %edx
andl $-0x8, %edx
movl %edx, -0x60(%rbp)
cmpl %edx, %ecx
jne 0x14185
movq %r14, %rdi
movq %r15, %rsi
movl %eax, %edx
movl %r10d, %ecx
movl %r12d, %r8d
callq 0x17487
jmp 0x141ba
leaq -0x1c0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x100(%rbp), %rdx
leaq -0x340(%rbp), %rcx
leaq -0x240(%rbp), %r8
movl -0x60(%rbp), %r9d
pushq %r12
pushq -0x78(%rbp)
callq 0x177a6
popq %rax
popq %rcx
cmpl $0x7, %r12d
jbe 0x14099
shrl $0x3, %r12d
xorl %eax, %eax
leaq 0xeb75(%rip), %r13      # 0x22b60
cmpq $0x7, %rax
je 0x141b8
movl -0x1a0(%rbp,%rax,4), %ecx
movl %ecx, -0x48(%rbp)
xorl %r9d, %r9d
cmpl -0x48(%rbp), %r9d
je 0x14091
movl -0x1c0(%rbp,%rax,4), %r10d
movl %r10d, %r11d
imull %r9d, %r11d
xorl %r8d, %r8d
cmpq %r10, %r8
je 0x14089
movl %r11d, %ecx
imulq %r12, %rcx
leaq 0xeacf(%rip), %rdx      # 0x22b00
movl (%rdx,%rax,4), %esi
imull %r8d, %esi
leaq 0xeae1(%rip), %rdx      # 0x22b20
addl (%rdx,%rax,4), %esi
leaq 0xeaf7(%rip), %rdx      # 0x22b40
movl (%rdx,%rax,4), %edx
imull %r9d, %edx
addl (%r13,%rax,4), %edx
imull -0x60(%rbp), %edx
addl %esi, %edx
imulq %r12, %rdx
addq %r14, %rdx
addq -0x240(%rbp,%rax,8), %rcx
addq %r15, %rcx
xorl %esi, %esi
cmpq %rsi, %r12
je 0x14081
movb (%rcx,%rsi), %dil
movb %dil, (%rdx,%rsi)
incq %rsi
jmp 0x1406f
incq %r8
incl %r11d
jmp 0x1401e
incl %r9d
jmp 0x14002
incq %rax
jmp 0x13feb
xorl %eax, %eax
cmpq $0x7, %rax
je 0x141b8
movl -0x1c0(%rbp,%rax,4), %r9d
movl -0x1a0(%rbp,%rax,4), %ecx
movl %ecx, -0x48(%rbp)
xorl %r11d, %r11d
cmpl -0x48(%rbp), %r11d
je 0x1417d
movl %r11d, %r10d
imull %r9d, %r10d
xorl %edx, %edx
cmpq %r9, %rdx
je 0x14175
movq -0x240(%rbp,%rax,8), %rcx
leal (%r10,%rdx), %esi
imull %r12d, %esi
leaq (%rsi,%rcx,8), %rsi
leaq 0xea4f(%rip), %rcx      # 0x22b40
movl (%rcx,%rax,4), %ecx
imull %r11d, %ecx
leaq 0xea61(%rip), %rdi      # 0x22b60
addl (%rdi,%rax,4), %ecx
leaq 0xe9f7(%rip), %rdi      # 0x22b00
movl (%rdi,%rax,4), %edi
imull %edx, %edi
leaq 0xea0a(%rip), %r8       # 0x22b20
addl (%r8,%rax,4), %edi
imull -0x60(%rbp), %ecx
addl %ecx, %edi
imull %r12d, %edi
movl %r12d, %r8d
subl $0x1, %r8d
jb 0x1416d
movq %rsi, %rcx
shrq $0x3, %rcx
movl %esi, %r13d
notb %r13b
movzbl (%r15,%rcx), %ecx
movzbl %r13b, %r13d
andl $0x7, %r13d
btl %r13d, %ecx
jae 0x14165
movl %edi, %ecx
notb %cl
andb $0x7, %cl
movb $0x1, %r13b
shlb %cl, %r13b
movq %rdi, %rcx
shrq $0x3, %rcx
orb %r13b, (%r14,%rcx)
incq %rdi
incq %rsi
jmp 0x14127
incq %rdx
jmp 0x140cd
incl %r11d
jmp 0x140ba
incq %rax
jmp 0x1409b
movq %rcx, %r13
movq %r15, %rdi
movq %r15, %rsi
movl %eax, %edx
movq %r10, -0x78(%rbp)
movl %r10d, %ecx
movl %r12d, %r8d
callq 0x17487
testl %eax, %eax
jne 0x141ba
movl %r13d, %edx
movl -0x60(%rbp), %ecx
movq %r14, %rdi
movq %r15, %rsi
movq -0x78(%rbp), %r8
callq 0x17708
xorl %eax, %eax
movl %eax, 0x120(%rbx)
movq -0xa0(%rbp), %rax
movq %r14, (%rax)
movq -0x178(%rbp), %rax
movq -0xb8(%rbp), %rcx
movq %rax, (%rcx)
jmp 0x13c95
movl $0x49, 0x120(%rbx)
jmp 0x13ca1
movl $0x4a, 0x120(%rbx)
jmp 0x13ca1
movl $0x45, 0x120(%rbx)
jmp 0x13ca1