// File: /workspace/github_c_makefile_star2_O2/nkanaev[P]tipsy/src/tigr.c
// Function: tigrLoadImageMem
Tigr* tigrLoadImageMem(const void* data, int length) {
    PNG png;
    png.p = (unsigned char*)data;
    png.end = (unsigned char*)data + length;
    return tigrLoadPng(&png);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movslq %esi, %rax
addq %rdi, %rax
movq %rax, 0x80(%rsp)
movabsq $0xa1a0a0d474e5089, %rax # imm = 0xA1A0A0D474E5089
cmpq %rax, (%rdi)
je 0x4796
xorl %r14d, %r14d
xorl %ebx, %ebx
callq 0x3050
movl $0x16, (%rax)
movq %r14, %rdi
callq 0x3430
testq %rbx, %rbx
je 0x477f
movq %rbx, %rdi
callq 0x5afa
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdi, %r12
addq $0x8, %r12
leaq 0x78(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x73da(%rip), %rsi      # 0xbb86
pushq $0xd
popq %rdx
callq 0x7688
testq %rax, %rax
je 0x475a
movq %rax, %r15
movzbl 0x9(%rax), %edx
xorl %r14d, %r14d
cmpq $0x6, %rdx
ja 0x475d
movzbl 0x8(%r15), %r13d
leaq 0x584b(%rip), %rax      # 0xa020
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
movl %r13d, %ebp
xorl %ebx, %ebx
jmpq *%rcx
leal (%r13,%r13,2), %ebp
jmp 0x47fc
leal (,%r13,2), %ebp
jmp 0x47fc
leal (,%r13,4), %ebp
movq %rdx, 0x70(%rsp)
movq %r15, %rdi
callq 0x76f2
leal 0x1(%rax), %ebx
movq %r15, %rdi
addq $0x4, %rdi
callq 0x76f2
movl %ebx, %edi
movl %eax, %esi
callq 0x3942
testq %rax, %rax
je 0x475a
movq %rax, %rbx
decl (%rax)
cmpl $0x10, %r13d
je 0x484a
cmpb $0x0, 0xa(%r15)
jne 0x484a
cmpb $0x0, 0xb(%r15)
jne 0x484a
cmpb $0x0, 0xc(%r15)
je 0x4852
xorl %r14d, %r14d
jmp 0x475f
xorl %r15d, %r15d
movq $0x0, 0x10(%rsp)
movl %ebp, 0xc(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x731d(%rip), %rsi      # 0xbb8b
xorl %edx, %edx
callq 0x7688
testq %rax, %rax
je 0x48bc
movq %rax, %r13
leaq -0x8(%rax), %rdi
callq 0x76f2
movl %eax, %ebp
leal (%r15,%rbp), %r14d
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x36a0
testq %rax, %rax
je 0x48c8
movslq %r15d, %rdi
movq %rax, 0x10(%rsp)
addq %rax, %rdi
movl %ebp, %edx
movq %r13, %rsi
callq 0x32e0
movl %r14d, %r15d
movl 0xc(%rsp), %ebp
jmp 0x4862
movq %r15, 0x18(%rsp)
movq 0x10(%rsp), %r14
jmp 0x48d4
movq %r15, 0x18(%rsp)
xorl %r14d, %r14d
movl 0xc(%rsp), %ebp
leaq 0x78(%rsp), %r15
movq %r12, (%r15)
leaq 0x72ad(%rip), %rsi      # 0xbb90
movl $0x0, 0x2c(%rsp)
movq %r15, %rdi
xorl %edx, %edx
callq 0x7688
movq %rax, 0x50(%rsp)
movq %r12, (%r15)
leaq 0x7291(%rip), %rsi      # 0xbb95
movq %r15, %rdi
xorl %edx, %edx
callq 0x7688
movq %rax, %r15
testq %rax, %rax
je 0x4923
leaq -0x8(%r15), %rdi
callq 0x76f2
movl %eax, 0x2c(%rsp)
testq %r14, %r14
sete %al
cmpl $0x6, 0x18(%rsp)
setl %cl
orb %al, %cl
jne 0x475f
movzbl (%r14), %eax
movl %eax, %ecx
andl $0xf, %ecx
cmpl $0x8, %ecx
setne %cl
andl $-0x10, %eax
cmpl $0x71, %eax
setae %al
orb %cl, %al
jne 0x475f
testb $0x20, 0x1(%r14)
jne 0x475f
movq 0x18(%rbx), %r12
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0x76f7
cltq
movq %rax, 0x40(%rsp)
leaq (%r12,%rax), %r13
movq %rbx, %rdi
movl %ebp, %esi
callq 0x76f7
movslq %eax, %rsi
subq %rsi, %r13
leaq 0x2(%r14), %rdx
movq 0x18(%rsp), %rcx
addl $-0x6, %ecx
movq %r13, %rdi
movq %rsi, 0x38(%rsp)
callq 0x52f8
testl %eax, %eax
je 0x475f
movq %r15, 0x48(%rsp)
movl (%rbx), %ecx
movq %r12, 0x30(%rsp)
movl 0x4(%rbx), %r12d
movl %ecx, 0x28(%rsp)
imull %ebp, %ecx
pushq $0x8
popq %rsi
movl %ecx, %eax
cltd
idivl %esi
xorl %edx, %edx
testb $0x7, %cl
setne %dl
movq %rax, %rcx
movq %rax, 0x60(%rsp)
addl %edx, %eax
movl %eax, 0x18(%rsp)
movq %rdx, 0x68(%rsp)
movl %ebp, %r15d
shrl $0x3, %r15d
movl %ebp, %eax
andl $0x7, %eax
cmpl $0x1, %eax
movq %r15, 0x58(%rsp)
sbbl $-0x1, %r15d
leal (%rcx,%rdx), %eax
incl %eax
movslq %eax, %rsi
pushq $0x1
popq %rdi
callq 0x3270
movq %rax, %r9
movslq 0x18(%rsp), %rcx
xorl %edx, %edx
testl %r12d, %r12d
cmovlel %edx, %r12d
movl %r12d, 0x24(%rsp)
movq 0x30(%rsp), %r12
movq 0x40(%rsp), %rax
addq %r15, %rax
subq 0x38(%rsp), %rax
addq %rax, %r12
movslq 0x60(%rsp), %rax
movq 0x68(%rsp), %rsi
addq %rsi, %rax
incq %rax
movq %rax, 0x38(%rsp)
movq %r13, %r8
movq %r9, 0x30(%rsp)
movq %r15, 0x10(%rsp)
movq %rcx, 0x18(%rsp)
cmpl 0x24(%rsp), %edx
je 0x4bd4
movq %rdx, 0x40(%rsp)
movzbl (%r8), %eax
cmpq $0x4, %rax
ja 0x475f
leaq 0x55b5(%rip), %rdx      # 0xa03c
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movq %r8, %r9
incq %r9
movq 0x40(%rsp), %rdx
incl %edx
leaq (%r9,%rcx), %r8
addq 0x38(%rsp), %r12
jmp 0x4a63
xorl %eax, %eax
cmpq %rax, %r15
je 0x4abd
movb (%r9,%rax), %dl
addb %dl, 0x1(%r8,%rax)
incq %rax
jmp 0x4aaa
pushq $0x1
popq %r10
movq %r15, %r11
cmpq %rcx, %r11
jge 0x4a90
movq %r12, %r15
movq %r13, %rcx
movzbl (%r8,%r10), %edi
movzbl (%r9,%r11), %esi
movzbl -0x1(%r9,%r10), %eax
leal (%rsi,%rdi), %r12d
subl %eax, %r12d
movl %r12d, %ebp
subl %edi, %ebp
movl %ebp, %edx
negl %edx
cmovsl %ebp, %edx
movl %r12d, %ebp
subl %esi, %ebp
movl %ebp, %r13d
negl %r13d
cmovsl %ebp, %r13d
subl %eax, %r12d
movl %r12d, %ebp
negl %ebp
cmovsl %r12d, %ebp
cmpl %ebp, %r13d
ja 0x4b14
movl %esi, %eax
cmpl %ebp, %edx
cmoval %eax, %edi
cmpl %r13d, %edx
cmoval %eax, %edi
movq %r15, %r12
addb %dil, (%r15,%r10)
incq %r11
incq %r10
movl 0xc(%rsp), %ebp
movq %rcx, %r13
movq 0x10(%rsp), %r15
movq 0x18(%rsp), %rcx
jmp 0x4ac4
xorl %eax, %eax
cmpq %rax, %r15
je 0x4b54
movb (%r9,%rax), %dl
addb %dl, 0x1(%r8,%rax)
incq %rax
jmp 0x4b41
addq %r15, %r9
xorl %eax, %eax
leaq (%r15,%rax), %rdx
cmpq %rcx, %rdx
jge 0x4a90
movb (%r9,%rax), %dl
addb %dl, 0x1(%r12,%rax)
incq %rax
jmp 0x4b59
xorl %eax, %eax
cmpq %rax, %r15
je 0x4b8b
movb (%r9,%rax), %dl
shrb %dl
addb %dl, 0x1(%r8,%rax)
incq %rax
jmp 0x4b76
addq %r15, %r9
xorl %eax, %eax
leaq (%r15,%rax), %rdx
cmpq %rcx, %rdx
jge 0x4a90
movzbl 0x1(%r8,%rax), %edx
movzbl (%r9,%rax), %esi
addl %edx, %esi
shrl %esi
addb %sil, 0x1(%r12,%rax)
incq %rax
jmp 0x4b90
xorl %eax, %eax
leaq (%r15,%rax), %rdx
cmpq %rcx, %rdx
jge 0x4a90
movb 0x1(%r8,%rax), %dl
addb %dl, 0x1(%r12,%rax)
incq %rax
jmp 0x4bb8
movq 0x30(%rsp), %rdi
callq 0x3430
cmpb $0x3, 0x70(%rsp)
jne 0x4c14
cmpq $0x0, 0x50(%rsp)
je 0x475f
movq %r14, 0x10(%rsp)
cmpl $0x1, %ebp
je 0x4d3a
cmpl $0x2, 0xc(%rsp)
jne 0x4d41
pushq $0x3
popq %rax
movl %eax, %edx
jmp 0x4d47
testb $0x7, %bpl
jne 0x475f
movq %r14, 0x10(%rsp)
movq 0x18(%rbx), %rax
movq 0x58(%rsp), %r12
movl %r12d, %ecx
xorl %edx, %edx
movl 0x28(%rsp), %ebp
testl %ebp, %ebp
cmovlel %edx, %ebp
decl %r12d
leaq 0x540c(%rip), %rsi      # 0xa050
movq 0x48(%rsp), %r15
cmpl 0x24(%rsp), %edx
je 0x4e0d
incq %r13
movl %ebp, %edi
subl $0x1, %edi
jb 0x4d33
cmpl $0x3, %r12d
ja 0x4d2b
movslq (%rsi,%r12,4), %r8
addq %rsi, %r8
jmpq *%r8
movzbl (%r13), %r9d
testq %r15, %r15
je 0x4d16
cmpb (%r15), %r9b
jne 0x4d16
movl %r9d, %r10d
shll $0x10, %r10d
movl %r9d, %r8d
shll $0x8, %r8d
jmp 0x4cf7
movzbl (%r13), %r10d
movzbl 0x1(%r13), %r8d
movzbl 0x2(%r13), %r9d
testq %r15, %r15
je 0x4cff
cmpb %r10b, 0x1(%r15)
jne 0x4cff
cmpb %r8b, 0x3(%r15)
jne 0x4cff
cmpb %r9b, 0x5(%r15)
jne 0x4cff
shll $0x10, %r9d
shll $0x8, %r8d
orl %r10d, %r8d
orl %r9d, %r8d
jmp 0x4d24
movl (%r13), %r8d
jmp 0x4d24
movzbl (%r13), %r9d
movzbl 0x1(%r13), %r10d
shll $0x18, %r10d
movl %r9d, %r11d
shll $0x10, %r11d
movl %r9d, %r8d
shll $0x8, %r8d
orl %r11d, %r8d
orl %r10d, %r8d
orl %r9d, %r8d
jmp 0x4d24
shll $0x10, %r9d
shll $0x8, %r8d
orl %r10d, %r8d
addl %r9d, %r8d
addl $0xff000000, %r8d       # imm = 0xFF000000
jmp 0x4d24
imull $0x10101, %r9d, %r8d    # imm = 0x10101
orl $0xff000000, %r8d       # imm = 0xFF000000
movl %r8d, (%rax)
addq $0x4, %rax
addq %rcx, %r13
jmp 0x4c58
incl %edx
jmp 0x4c49
pushq $0x7
popq %rdx
pushq $0x1
jmp 0x4d46
pushq $0x1
popq %rdx
pushq $0xf
popq %rax
movq 0x18(%rbx), %rsi
xorl %r9d, %r9d
movl 0x28(%rsp), %edi
testl %edi, %edi
cmovlel %r9d, %edi
pushq $0x1
popq %r8
movq 0x48(%rsp), %r12
movl 0xc(%rsp), %ecx
cmpl 0x24(%rsp), %r9d
je 0x4e0d
movl %r9d, %r14d
incq %r13
xorl %r9d, %r9d
cmpl %r9d, %edi
je 0x4e02
movzbl (%r13), %r11d
cmpl $0x8, %ecx
jne 0x4d91
movq %r8, %r10
jmp 0x4dac
movl %r9d, %ebp
andl %edx, %ebp
xorl %r10d, %r10d
movl %edx, %ecx
subl %ebp, %ecx
sete %r10b
imull 0xc(%rsp), %ecx
shrl %cl, %r11d
andl %eax, %r11d
movl $0xff000000, %ecx       # imm = 0xFF000000
movl %r11d, %r15d
cmpl 0x2c(%rsp), %r11d
jge 0x4dc3
movzbl (%r12,%r15), %ecx
shll $0x18, %ecx
addq %r10, %r13
leaq (%r15,%r15,2), %r10
movq 0x50(%rsp), %r15
movzbl (%r15,%r10), %r11d
movzbl 0x1(%r15,%r10), %ebp
movzbl 0x2(%r15,%r10), %r10d
shll $0x10, %r10d
orl %ecx, %r10d
shll $0x8, %ebp
orl %r11d, %ebp
orl %r10d, %ebp
movl %ebp, (%rsi)
addq $0x4, %rsi
incl %r9d
movl 0xc(%rsp), %ecx
jmp 0x4d79
movl %r14d, %r9d
incl %r9d
jmp 0x4d65
movq 0x10(%rsp), %rdi
callq 0x3430
jmp 0x4781