// File: /workspace/github_cpp_makefile_star2_O3/Lut99[P]RayTracer/src/lib/LodePNG.cpp
// Function: lodepng_decode(unsigned char**, unsigned int*, unsigned int*, LodePNGState*, unsigned char const*, unsigned long)
unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h,
                        LodePNGState* state,
                        const unsigned char* in, size_t insize) {
  *out = 0;
  decodeGeneric(out, w, h, state, in, insize);
  if(state->error) return state->error;
  if(!state->decoder.color_convert || lodepng_color_mode_equal(&state->info_raw, &state->info_png.color)) {
    /*same color type, no copying or converting of data needed*/
    /*store the info_png color settings on the info_raw so that the info_raw still reflects what colortype
    the raw image has to the end user*/
    if(!state->decoder.color_convert) {
      state->error = lodepng_color_mode_copy(&state->info_raw, &state->info_png.color);
      if(state->error) return state->error;
    }
  } else { /*color conversion needed*/
    unsigned char* data = *out;
    size_t outsize;

    /*TODO: check if this works according to the statement in the documentation: "The converter can convert
    from grayscale input color type, to 8-bit grayscale or grayscale with alpha"*/
    if(!(state->info_raw.colortype == LCT_RGB || state->info_raw.colortype == LCT_RGBA)
       && !(state->info_raw.bitdepth == 8)) {
      return 56; /*unsupported color mode conversion*/
    }

    outsize = lodepng_get_raw_size(*w, *h, &state->info_raw);
    *out = (unsigned char*)lodepng_malloc(outsize);
    if(!(*out)) {
      state->error = 83; /*alloc fail*/
    }
    else state->error = lodepng_convert(*out, data, &state->info_raw,
                                        &state->info_png.color, *w, *h);
    lodepng_free(data);
  }
  return state->error;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x298, %rsp            # imm = 0x298
movq %r8, %rbp
movq %rcx, %r12
movq %rdx, %r14
movq %rsi, %r13
movq %rdi, %r15
xorl %ebx, %ebx
movq %rbx, 0x58(%rsp)
movq %rbx, 0x50(%rsp)
movq %rbx, (%rdi)
movl %ebx, (%rdx)
movl %ebx, (%rsi)
movq %rsi, %rdi
movq %rdx, %rsi
movq %rcx, %rdx
movq %r8, %rcx
movq %r9, 0x10(%rsp)
movq %r9, %r8
callq 0x6a352
movl %eax, 0x1f0(%r12)
testl %eax, %eax
jne 0x6b475
movq 0x10(%rsp), %r10
movq %rbp, 0x28(%rsp)
movl (%r13), %eax
movl (%r14), %ecx
movl 0xc8(%r12), %esi
movq %r12, %r8
movl 0xcc(%r12), %edx
cmpq $0x6, %rsi
movq %r13, %rbp
ja 0x6b3c9
leaq 0x1dad6(%rip), %rdi     # 0x88e9c
movl (%rdi,%rsi,4), %ebx
imull %edx, %ebx
movq %r8, %r13
movl 0x90(%r8), %r9d
movl 0x94(%r8), %r8d
xorl %edi, %edi
cmpq $0x6, %r9
movq %r10, %r12
ja 0x6b3f3
leaq 0x1daad(%rip), %rdi     # 0x88e9c
movl (%rdi,%r9,4), %edi
imull %r8d, %edi
cmpl %edi, %ebx
jbe 0x6b416
xorl %edi, %edi
cmpl $0x6, %esi
movq 0x28(%rsp), %r10
ja 0x6b411
leaq 0x1da8e(%rip), %rdi     # 0x88e9c
movl (%rdi,%rsi,4), %edi
imull %edx, %edi
jmp 0x6b432
xorl %edi, %edi
cmpl $0x6, %r9d
movq 0x28(%rsp), %r10
ja 0x6b42e
leaq 0x1da72(%rip), %rdx     # 0x88e9c
movl (%rdx,%r9,4), %edi
imull %r8d, %edi
movq %rcx, %rdx
imulq %rax, %rdx
shrq $0x3d, %rdx
jne 0x6b465
movl %edi, %edx
movl %eax, %esi
andl $0x7, %esi
imulq %rdx, %rsi
addq $0x7, %rsi
shrq $0x3, %rsi
shrl $0x3, %eax
imulq %rdx, %rax
addq %rsi, %rax
addq $0x5, %rax
mulq %rcx
jno 0x6b487
movl $0x5c, 0x1f0(%r13)
movl $0x5c, %eax
addq $0x298, %rsp            # imm = 0x298
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, 0x68(%rsp)
movq %r15, 0x70(%rsp)
leaq 0xb8(%r13), %rax
movq %rax, 0x30(%rsp)
leaq 0xc8(%r13), %rax
movq %rax, 0x48(%rsp)
leaq 0x90(%r13), %rax
movq %rax, 0x60(%rsp)
leaq 0x21(%r10), %r15
leaq 0x1c0(%r13), %rax
movq %rax, 0x80(%rsp)
leaq 0x1d8(%r13), %rax
movq %rax, 0x78(%rsp)
leaq (%r10,%r12), %rax
movq %rax, 0x88(%rsp)
movl $0x1, %eax
movq %rax, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
xorl %ebx, %ebx
xorl %r14d, %r14d
movq %r13, 0x8(%rsp)
movq %rbp, 0x18(%rsp)
cmpl $0x0, 0x1f0(%r13)
jne 0x6b9c1
movq %r15, %rcx
subq %r10, %rcx
addq $0xc, %rcx
cmpq %r12, %rcx
ja 0x6b981
cmpq %r10, %r15
jb 0x6b981
movzbl (%r15), %eax
shll $0x18, %eax
js 0x6b98f
movzbl 0x1(%r15), %edx
shll $0x10, %edx
movzbl 0x2(%r15), %esi
shll $0x8, %esi
movq %r12, %rdi
movzbl 0x3(%r15), %r12d
orl %edx, %r12d
orl %esi, %r12d
orl %eax, %r12d
addq %r12, %rcx
movl $0x40, %eax
cmpq %rdi, %rcx
ja 0x6b9ba
leaq (%r15,%r12), %rcx
addq $0xc, %rcx
cmpq %r10, %rcx
jb 0x6b9ba
leaq 0x8(%r15), %rbp
movq %r15, %rdi
leaq 0x1eb62(%rip), %rsi     # 0x8a0ec
callq 0x6780c
testb %al, %al
je 0x6b5d6
movq %r14, %r13
addq %r12, %r13
jb 0x6b99d
cmpq %r13, %rbx
jae 0x6b5f9
addq %rbx, %rbx
movq %rbx, %rax
leaq (,%r13,2), %rbx
addq %r13, %rbx
shrq %rbx
cmpq %r13, %rax
cmovbq %r13, %rbx
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x3a730
testq %rax, %rax
jne 0x6b5fe
jmp 0x6b9ab
movq %r15, %rdi
leaq 0x1eb11(%rip), %rsi     # 0x8a0f1
callq 0x6780c
testb %al, %al
movq %rbx, 0x20(%rsp)
je 0x6b688
movb $0x1, %bpl
xorl %ebx, %ebx
jmp 0x6b638
movq 0x40(%rsp), %rax
movq %rbx, 0x20(%rsp)
movb $0x1, %bl
movl $0x3, %ecx
movq %rcx, 0x38(%rsp)
testq %r12, %r12
je 0x6b629
addq %rax, %r14
xorl %ecx, %ecx
movb (%rbp,%rcx), %dl
movb %dl, (%r14,%rcx)
incq %rcx
cmpq %rcx, %r12
jne 0x6b619
xorl %ebp, %ebp
movq %r13, %r14
movq %rax, 0x40(%rsp)
movq 0x8(%rsp), %r13
movq 0x10(%rsp), %r12
cmpl $0x0, 0x20(%r13)
jne 0x6b654
movq %r15, %rdi
callq 0x67877
testl %eax, %eax
jne 0x6b9a4
testb %bl, %bl
je 0x6b66b
movq %r15, %rdi
movq 0x88(%rsp), %rsi
callq 0x679a7
movq %rax, %r15
movq 0x28(%rsp), %r10
movq 0x20(%rsp), %rbx
testb %bpl, %bpl
movq 0x18(%rsp), %rbp
je 0x6b502
jmp 0x6b9c1
movq %r15, %rdi
leaq 0x1d837(%rip), %rsi     # 0x88ec9
callq 0x6780c
testb %al, %al
je 0x6b6c8
movq 0x48(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6a946
movl %eax, 0x1f0(%r13)
testl %eax, %eax
jne 0x6c115
movb $0x1, %bl
movl $0x2, %eax
movq %rax, 0x38(%rsp)
jmp 0x6b721
movq %r15, %rdi
leaq 0x1d7fc(%rip), %rsi     # 0x88ece
callq 0x6780c
testb %al, %al
je 0x6b6ed
movq 0x48(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6aa1e
jmp 0x6b710
movq %r15, %rdi
leaq 0x1d7dc(%rip), %rsi     # 0x88ed3
callq 0x6780c
testb %al, %al
je 0x6b728
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6aadf
movl %eax, 0x1f0(%r13)
testl %eax, %eax
jne 0x6c115
movb $0x1, %bl
xorl %ebp, %ebp
jmp 0x6b638
movq %r15, %rdi
leaq 0x1d7a6(%rip), %rsi     # 0x88ed8
callq 0x6780c
testb %al, %al
je 0x6b756
movb $0x1, %bl
cmpl $0x0, 0x30(%r13)
je 0x6b721
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6ab8b
jmp 0x6b7ba
movq %r15, %rdi
leaq 0x1d77d(%rip), %rsi     # 0x88edd
callq 0x6780c
testb %al, %al
je 0x6b787
movb $0x1, %bl
cmpl $0x0, 0x30(%r13)
je 0x6b721
movq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %r12, %rcx
callq 0x6ac7b
jmp 0x6b7ba
movq %r15, %rdi
leaq 0x1d751(%rip), %rsi     # 0x88ee2
callq 0x6780c
testb %al, %al
je 0x6b7ce
movb $0x1, %bl
cmpl $0x0, 0x30(%r13)
je 0x6b721
movq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %r12, %rcx
callq 0x6adca
movl %eax, 0x1f0(%r13)
testl %eax, %eax
je 0x6b721
jmp 0x6c115
movq %r15, %rdi
leaq 0x1d70f(%rip), %rsi     # 0x88ee7
callq 0x6780c
testb %al, %al
je 0x6b7f6
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6b08f
jmp 0x6b710
movq %r15, %rdi
leaq 0x1d6ec(%rip), %rsi     # 0x88eec
callq 0x6780c
testb %al, %al
je 0x6b835
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6b0e9
movq 0x8(%rsp), %rcx
movl %eax, 0x1f0(%rcx)
testl %eax, %eax
jne 0x6c110
movb $0x1, %bl
xorl %ebp, %ebp
jmp 0x6b633
movq %r15, %rdi
leaq 0x1d6b2(%rip), %rsi     # 0x88ef1
callq 0x6780c
testb %al, %al
je 0x6b882
cmpl $0x4, %r12d
jne 0x6c11f
movq 0x8(%rsp), %rcx
movl $0x1, 0x16c(%rcx)
movl 0x8(%r15), %eax
bswapl %eax
movl %eax, 0x170(%rcx)
movq 0x8(%rsp), %r13
movl $0x0, 0x1f0(%r13)
jmp 0x6b71f
movq %r15, %rdi
leaq 0x1d66a(%rip), %rsi     # 0x88ef6
callq 0x6780c
testb %al, %al
je 0x6b8aa
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x6b120
jmp 0x6b819
movq %r15, %rdi
leaq 0x1d647(%rip), %rsi     # 0x88efb
callq 0x6780c
testb %al, %al
je 0x6b8e2
cmpl $0x1, %r12d
jne 0x6c129
movq 0x8(%rsp), %rcx
movl $0x1, 0x198(%rcx)
movzbl (%rbp), %eax
movl %eax, 0x19c(%rcx)
jmp 0x6b86d
movq %r15, %rdi
leaq 0x1d614(%rip), %rsi     # 0x88f00
callq 0x6780c
testb %al, %al
je 0x6b918
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rbx
movq %rbx, %rsi
movq %rbp, %rdx
movq %r12, %rcx
callq 0x6b18f
movl %eax, 0x1f0(%rbx)
jmp 0x6b824
movq 0x8(%rsp), %rax
cmpl $0x0, 0x24(%rax)
jne 0x6b92e
testb $0x20, 0x4(%r15)
je 0x6c133
movq 0x8(%rsp), %rax
cmpl $0x0, 0x34(%rax)
je 0x6b970
movq 0x38(%rsp), %rax
decl %eax
movq 0x80(%rsp), %rcx
leaq (%rcx,%rax,8), %rdi
movq 0x78(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movq %r15, %rdx
callq 0x67afe
movq 0x8(%rsp), %rcx
movl %eax, 0x1f0(%rcx)
testl %eax, %eax
jne 0x6c110
xorl %ebp, %ebp
movq 0x8(%rsp), %r13
movq 0x10(%rsp), %r12
jmp 0x6b658
cmpl $0x0, 0x28(%r13)
jne 0x6b9c1
movl $0x1e, %eax
jmp 0x6b9ba
cmpl $0x0, 0x28(%r13)
jne 0x6b9c1
movl $0x3f, %eax
jmp 0x6b9ba
movl $0x5f, %eax
jmp 0x6b9b0
movl $0x39, %eax
jmp 0x6b9b5
movl $0x53, %eax
movq 0x8(%rsp), %r13
movq 0x18(%rsp), %rbp
movl %eax, 0x1f0(%r13)
movq 0x48(%rsp), %rax
movl (%rax), %ebx
cmpl $0x3, %ebx
jne 0x6b9e2
cmpq $0x0, 0xd0(%r13)
jne 0x6b9e2
movl $0x6a, 0x1f0(%r13)
cmpl $0x0, 0xc0(%r13)
movq %r13, %r12
movl (%rbp), %r13d
movq 0x68(%rsp), %rax
je 0x6bb14
leal 0x7(%r13), %edi
shrl $0x3, %edi
movl (%rax), %ebp
leal 0x7(%rbp), %r15d
shrl $0x3, %r15d
movl 0xcc(%r12), %r12d
movl %r15d, %esi
movl %ebx, %edx
movl %r12d, %ecx
callq 0x70874
movq %rax, 0x20(%rsp)
movl %ebx, %ecx
leal 0x3(%r13), %ebx
movq %r13, 0x10(%rsp)
cmpl $0x5, %r13d
jb 0x6ba55
movl %ebx, %edi
shrl $0x3, %edi
movl %r15d, %esi
movl %ecx, %r15d
movl %ecx, %edx
movl %r12d, %ecx
callq 0x70874
movl %r15d, %ecx
addq %rax, 0x20(%rsp)
shrl $0x2, %ebx
leal 0x3(%rbp), %r15d
movl %r15d, %esi
shrl $0x3, %esi
movl %ebx, %edi
movl %ecx, %edx
movl %ecx, 0x28(%rsp)
movl %r12d, %ecx
callq 0x70874
movl %r12d, %ecx
movq %rax, %r13
addq 0x20(%rsp), %r13
movq 0x10(%rsp), %rax
leal 0x1(%rax), %ebx
cmpl $0x3, %eax
jb 0x6baa8
movl %ebx, %edi
shrl $0x2, %edi
shrl $0x2, %r15d
movl %r15d, %esi
movl 0x28(%rsp), %edx
movl %ecx, %r15d
callq 0x70874
movl %r15d, %ecx
addq %rax, %r13
shrl %ebx
movq %rbp, 0x20(%rsp)
incl %ebp
movl %ebp, %esi
shrl $0x2, %esi
movl %ebx, %edi
movl 0x28(%rsp), %r12d
movl %r12d, %edx
movl %ecx, %ebx
callq 0x70874
movq %rax, %r15
addq %r13, %r15
movq 0x10(%rsp), %r13
cmpl $0x2, %r13d
jb 0x6baee
movl %r13d, %edi
shrl %edi
shrl %ebp
movl %ebp, %esi
movl %r12d, %edx
movl %ebx, %ecx
callq 0x70874
addq %rax, %r15
movq 0x18(%rsp), %rbp
movl %ebx, %ecx
movq 0x20(%rsp), %rsi
shrl %esi
movl %r13d, %edi
movl %r12d, %edx
callq 0x70874
movq %rax, %rbx
addq %r15, %rbx
movq 0x8(%rsp), %r12
jmp 0x6bb2b
movl (%rax), %esi
movl 0xcc(%r12), %ecx
movl %r13d, %edi
movl %ebx, %edx
callq 0x70874
movq %rax, %rbx
cmpl $0x0, 0x1f0(%r12)
movq %r12, %r15
movq 0x40(%rsp), %r12
jne 0x6bbad
movq %rbx, %rdi
callq 0x3a5b0
movq %rax, 0x58(%rsp)
testq %rax, %rax
je 0x6bb79
movq $0x0, 0x50(%rsp)
movq 0x8(%r15), %rax
leaq 0x58(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %r12, %rdx
movq %r14, %rcx
movq %r15, %r8
testq %rax, %rax
je 0x6bb8f
callq *%rax
jmp 0x6bb94
movl $0x53, 0x1f0(%r15)
movq $0x0, 0x50(%rsp)
jmp 0x6bbad
callq 0x674d9
cmpq %rbx, 0x50(%rsp)
movl $0x5b, %ecx
cmovel %eax, %ecx
testl %eax, %eax
cmovnel %eax, %ecx
movl %ecx, 0x1f0(%r15)
movq %r12, %rdi
callq 0x3a540
cmpl $0x0, 0x1f0(%r15)
jne 0x6bfe5
movl (%rbp), %edi
movq 0x68(%rsp), %rax
movl (%rax), %esi
movl 0xc8(%r15), %r12d
movl 0xcc(%r15), %r13d
movl %edi, 0x20(%rsp)
movq %rsi, %r15
movl %r12d, %edx
movl %r13d, %ecx
callq 0x67ebb
movq %rax, %rbx
movq %rax, %rdi
callq 0x3a5b0
movq 0x70(%rsp), %rdx
movq %rax, (%rdx)
testq %rax, %rax
je 0x6bc42
testq %rbx, %rbx
je 0x6bc4c
xorl %eax, %eax
movq (%rdx), %rcx
movb $0x0, (%rcx,%rax)
incq %rax
cmpq %rax, %rbx
jne 0x6bc0c
movq (%rdx), %r14
movl (%rbp), %eax
movl %eax, 0x20(%rsp)
movq 0x68(%rsp), %rax
movl (%rax), %r10d
movq 0x8(%rsp), %rax
movl 0xc8(%rax), %r12d
movl 0xcc(%rax), %r13d
jmp 0x6bc52
movl $0x53, %eax
jmp 0x6be62
movq %rax, %r14
movq %r15, %r10
xorl %r15d, %r15d
cmpl $0x6, %r12d
ja 0x6bc69
movl %r12d, %eax
leaq 0x1d237(%rip), %rcx     # 0x88e9c
movl (%rcx,%rax,4), %r15d
imull %r13d, %r15d
testl %r15d, %r15d
je 0x6be5d
movq 0x58(%rsp), %r13
movq 0x8(%rsp), %rax
cmpl $0x0, 0xc0(%rax)
je 0x6be6c
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x1d0(%rsp), %rdx
leaq 0x190(%rsp), %rcx
leaq 0x150(%rsp), %r8
movl 0x20(%rsp), %r9d
pushq %r15
movq %r10, 0x30(%rsp)
pushq %r10
callq 0x711af
addq $0x10, %rsp
xorl %ebx, %ebx
movq 0x190(%rsp,%rbx,2), %r12
addq %r13, %r12
movq 0x1d0(%rsp,%rbx,2), %rsi
addq %r13, %rsi
movl 0xf0(%rsp,%rbx), %ebp
movl 0xd0(%rsp,%rbx), %ecx
movq %r12, %rdi
movl %ebp, %edx
movl %ecx, 0x10(%rsp)
movl %r15d, %r8d
callq 0x708af
testl %eax, %eax
jne 0x6bfd4
cmpl $0x7, %r15d
ja 0x6bd38
movq 0x150(%rsp,%rbx,2), %rdi
addq %r13, %rdi
imull %r15d, %ebp
movl %ebp, %ecx
addl $0x7, %ecx
andl $-0x8, %ecx
movq %r12, %rsi
movq %rbp, %rdx
movl 0x10(%rsp), %r8d
callq 0x7110e
addq $0x4, %rbx
cmpq $0x1c, %rbx
jne 0x6bcce
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x250(%rsp), %rdx
leaq 0x210(%rsp), %rcx
leaq 0x110(%rsp), %r8
movl 0x20(%rsp), %r9d
pushq %r15
pushq 0x30(%rsp)
callq 0x711af
addq $0x10, %rsp
cmpl $0x7, %r15d
jbe 0x6beaa
shrl $0x3, %r15d
xorl %eax, %eax
movq %rax, 0x28(%rsp)
movl 0x90(%rsp,%rax,4), %eax
movl %eax, 0x10(%rsp)
testl %eax, %eax
je 0x6be46
movq 0x28(%rsp), %rax
movl 0xb0(%rsp,%rax,4), %r9d
xorl %r10d, %r10d
xorl %r11d, %r11d
testq %r9, %r9
je 0x6be35
movq 0x28(%rsp), %rax
leaq 0x1cec6(%rip), %rcx     # 0x88c90
movl (%rcx,%rax,4), %ebx
imull %r11d, %ebx
leaq 0x1ced8(%rip), %rcx     # 0x88cb0
addl (%rcx,%rax,4), %ebx
leaq 0x1ce6e(%rip), %rcx     # 0x88c50
movl (%rcx,%rax,4), %ebp
imull 0x20(%rsp), %ebx
leaq 0x1ce7f(%rip), %rcx     # 0x88c70
addl (%rcx,%rax,4), %ebx
movq 0x110(%rsp,%rax,8), %r12
addq %r13, %r12
movl %r10d, %ecx
xorl %edx, %edx
movl %ebx, %esi
imulq %r15, %rsi
addq %r14, %rsi
movl %ecx, %edi
imulq %r15, %rdi
addq %r12, %rdi
xorl %r8d, %r8d
movb (%rdi,%r8), %al
movb %al, (%rsi,%r8)
incq %r8
cmpq %r8, %r15
jne 0x6be19
incq %rdx
addl %ebp, %ebx
incl %ecx
cmpq %r9, %rdx
jne 0x6be04
incl %r11d
addl %r9d, %r10d
cmpl 0x10(%rsp), %r11d
jne 0x6bdb9
movq 0x28(%rsp), %rax
incq %rax
cmpq $0x7, %rax
jne 0x6bd8e
jmp 0x6bfd2
movl $0x1f, %eax
movq 0x8(%rsp), %r15
jmp 0x6bfde
cmpl $0x7, %r15d
ja 0x6be88
movl %r15d, %ebx
imull 0x20(%rsp), %ebx
leal 0x7(%rbx), %ebp
andl $-0x8, %ebp
cmpl %ebp, %ebx
jne 0x6c0d9
movq %r14, %rdi
movq %r13, %rsi
movl 0x20(%rsp), %edx
movl %r10d, %ecx
movl %r15d, %r8d
callq 0x708af
testl %eax, %eax
jne 0x6bfd4
jmp 0x6bfd2
xorl %eax, %eax
movq %rax, 0x38(%rsp)
movl 0x90(%rsp,%rax,4), %eax
movl %eax, 0x40(%rsp)
testl %eax, %eax
je 0x6bfc0
movq 0x38(%rsp), %rax
movl 0xb0(%rsp,%rax,4), %eax
movq %rax, 0x10(%rsp)
movl $0x0, 0x28(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x6bfac
movq 0x38(%rsp), %rax
movq 0x110(%rsp,%rax,8), %rbx
shlq $0x3, %rbx
movl 0x28(%rsp), %edx
movl %edx, %r12d
imull 0x10(%rsp), %r12d
leaq 0x1cd82(%rip), %rcx     # 0x88c90
movl (%rcx,%rax,4), %ebp
imull %edx, %ebp
leaq 0x1cd95(%rip), %rcx     # 0x88cb0
addl (%rcx,%rax,4), %ebp
imull 0x20(%rsp), %ebp
leaq 0x1cd26(%rip), %rcx     # 0x88c50
movl (%rcx,%rax,4), %edx
leaq 0x1cd3c(%rip), %rcx     # 0x88c70
addl (%rcx,%rax,4), %ebp
xorl %esi, %esi
movl %edx, %edi
imull %esi, %edi
addl %ebp, %edi
imull %r15d, %edi
leal (%r12,%rsi), %r11d
imull %r15d, %r11d
addq %rbx, %r11
movl %r15d, %r9d
movl %r11d, %eax
notb %al
movl %edi, %ecx
notb %cl
movq %r11, %r8
shrq $0x3, %r8
movzbl (%r13,%r8), %r8d
movzbl %al, %r10d
andl $0x7, %r10d
andb $0x7, %cl
movb $0x1, %al
shlb %cl, %al
btl %r10d, %r8d
jae 0x6bf8a
movq %rdi, %rcx
shrq $0x3, %rcx
orb %al, (%r14,%rcx)
jmp 0x6bf97
notb %al
movq %rdi, %rcx
shrq $0x3, %rcx
andb %al, (%r14,%rcx)
incq %rdi
incq %r11
decl %r9d
jne 0x6bf52
incq %rsi
cmpq 0x10(%rsp), %rsi
jne 0x6bf39
movl 0x28(%rsp), %eax
incl %eax
movl %eax, 0x28(%rsp)
cmpl 0x40(%rsp), %eax
jne 0x6bedd
movq 0x38(%rsp), %rax
incq %rax
cmpq $0x7, %rax
jne 0x6beac
xorl %eax, %eax
movq 0x8(%rsp), %r15
movq 0x18(%rsp), %rbp
movl %eax, 0x1f0(%r15)
movq 0x58(%rsp), %rdi
callq 0x3a540
movl 0x1f0(%r15), %eax
testl %eax, %eax
jne 0x6b475
cmpl $0x0, 0x2c(%r15)
je 0x6c089
movq 0x60(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x692f5
movl %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
jne 0x6b475
movq 0x70(%rsp), %rax
movq (%rax), %r14
movq 0x60(%rsp), %rax
movl (%rax), %edx
movl %edx, %eax
orl $0x4, %eax
cmpl $0x6, %eax
jne 0x6c0a4
movl (%rbp), %ebx
movq 0x68(%rsp), %rax
movl (%rax), %ebp
movl 0x94(%r15), %ecx
movl %ebx, %edi
movl %ebp, %esi
callq 0x67ebb
movq %rax, %rdi
callq 0x3a5b0
movq 0x70(%rsp), %rcx
movq %rax, (%rcx)
testq %rax, %rax
je 0x6c0b9
movq %rax, %rdi
movq %r14, %rsi
movq 0x60(%rsp), %rdx
movq 0x48(%rsp), %rcx
movl %ebx, %r8d
movl %ebp, %r9d
callq 0x6865d
jmp 0x6c0be
movq 0x60(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x67cd4
movl %eax, 0x1f0(%r15)
jmp 0x6b475
movl $0x38, %eax
cmpl $0x8, 0x94(%r15)
jne 0x6b475
jmp 0x6c03d
movl $0x53, %eax
movl %eax, 0x1f0(%r15)
movq %r14, %rdi
callq 0x3a540
movl 0x1f0(%r15), %eax
jmp 0x6b475
movq %r13, %rdi
movq %r13, %rsi
movl 0x20(%rsp), %edx
movl %r10d, %ecx
movl %r15d, %r8d
movq %r10, %r15
callq 0x708af
testl %eax, %eax
jne 0x6bfd4
movl %ebx, %edx
movl %ebp, %ecx
movq %r14, %rdi
movq %r13, %rsi
movl %r15d, %r8d
callq 0x7110e
jmp 0x6bfd2
movq 0x8(%rsp), %r13
movq 0x18(%rsp), %rbp
jmp 0x6b9c1
movl $0x60, %eax
jmp 0x6b9b0
movl $0x62, %eax
jmp 0x6b9b0
movl $0x45, %eax
jmp 0x6b9b0