// File: donfreiday[P]gb/./imgui/imgui_draw.cpp
// Function: stb_decompress(unsigned char*, unsigned char*, unsigned int)
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length)
{
    unsigned int olen;
    if (stb__in4(0) != 0x57bC0000) return 0;
    if (stb__in4(4) != 0)          return 0; // error! stream is > 4GB
    olen = stb_decompress_length(i);
    stb__barrier2 = i;
    stb__barrier3 = i+length;
    stb__barrier = output + olen;
    stb__barrier4 = output;
    i += 16;

    stb__dout = output;
    for (;;) {
        unsigned char *old_i = i;
        i = stb_decompress_token(i);
        if (i == old_i) {
            if (*i == 0x05 && i[1] == 0xfa) {
                IM_ASSERT(stb__dout == output + olen);
                if (stb__dout != output + olen) return 0;
                if (stb_adler32(1, output, olen) != (unsigned int) stb__in4(2))
                    return 0;
                return olen;
            } else {
                IM_ASSERT(0); /* NOTREACHED */
                return 0;
            }
        }
        IM_ASSERT(stb__dout <= output + olen);
        if (stb__dout > output + olen)
            return 0;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
shll $0x10, %ecx
movq -0x18(%rbp), %rdx
movzbl 0x2(%rdx), %edx
shll $0x8, %edx
movq -0x18(%rbp), %rsi
movzbl 0x3(%rsi), %esi
addl %esi, %edx
addl %edx, %ecx
addl %ecx, %eax
cmpl $0x57bc0000, %eax       # imm = 0x57BC0000
je 0x43854
movl $0x0, -0x4(%rbp)
jmp 0x43a60
movq -0x18(%rbp), %rax
movzbl 0x4(%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movzbl 0x5(%rcx), %ecx
shll $0x10, %ecx
movq -0x18(%rbp), %rdx
movzbl 0x6(%rdx), %edx
shll $0x8, %edx
movq -0x18(%rbp), %rsi
movzbl 0x7(%rsi), %esi
addl %esi, %edx
addl %edx, %ecx
addl %ecx, %eax
cmpl $0x0, %eax
je 0x43894
movl $0x0, -0x4(%rbp)
jmp 0x43a60
movq -0x18(%rbp), %rdi
callq 0x437c0
movl %eax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq %rax, 0x40515(%rip)     # 0x83dc0
movq -0x18(%rbp), %rax
movl -0x1c(%rbp), %ecx
addq %rcx, %rax
movq %rax, 0x4050c(%rip)     # 0x83dc8
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
addq %rcx, %rax
movq %rax, 0x40503(%rip)     # 0x83dd0
movq -0x10(%rbp), %rax
movq %rax, 0x40500(%rip)     # 0x83dd8
movq -0x18(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, 0x404f1(%rip)     # 0x83de0
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4b770
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x28(%rbp), %rax
jne 0x43a05
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5, %eax
jne 0x439e6
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xfa, %eax
jne 0x439e6
movq 0x404a4(%rip), %rax     # 0x83de0
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0x4394d
jmp 0x4396c
leaq 0x21649(%rip), %rdi     # 0x64f9d
leaq 0x20b9b(%rip), %rsi     # 0x644f6
movl $0x838, %edx            # imm = 0x838
leaq 0x21651(%rip), %rcx     # 0x64fb8
callq 0x7160
movq 0x4046d(%rip), %rax     # 0x83de0
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
addq %rdx, %rcx
cmpq %rcx, %rax
je 0x4398e
movl $0x0, -0x4(%rbp)
jmp 0x43a60
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %edx
movl $0x1, %edi
callq 0x4bb00
movq -0x18(%rbp), %rcx
movzbl 0x2(%rcx), %ecx
shll $0x18, %ecx
movq -0x18(%rbp), %rdx
movzbl 0x3(%rdx), %edx
shll $0x10, %edx
movq -0x18(%rbp), %rsi
movzbl 0x4(%rsi), %esi
shll $0x8, %esi
movq -0x18(%rbp), %rdi
movzbl 0x5(%rdi), %edi
addl %edi, %esi
addl %esi, %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x439de
movl $0x0, -0x4(%rbp)
jmp 0x43a60
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x43a60
leaq 0x18e9e(%rip), %rdi     # 0x5c88b
leaq 0x20b02(%rip), %rsi     # 0x644f6
movl $0x83e, %edx            # imm = 0x83E
leaq 0x215b8(%rip), %rcx     # 0x64fb8
callq 0x7160
movq 0x403d4(%rip), %rax     # 0x83de0
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
addq %rdx, %rcx
cmpq %rcx, %rax
ja 0x43a1d
jmp 0x43a3c
leaq 0x215e0(%rip), %rdi     # 0x65004
leaq 0x20acb(%rip), %rsi     # 0x644f6
movl $0x842, %edx            # imm = 0x842
leaq 0x21581(%rip), %rcx     # 0x64fb8
callq 0x7160
movq 0x4039d(%rip), %rax     # 0x83de0
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x43a5b
movl $0x0, -0x4(%rbp)
jmp 0x43a60
jmp 0x438ef
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)