// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_decompress_token
NK_INTERN unsigned char*
nk_decompress_token(unsigned char *i)
{
    #define nk__in2(x)   ((i[x] << 8) + i[(x)+1])
    #define nk__in3(x)   ((i[x] << 16) + nk__in2((x)+1))
    #define nk__in4(x)   ((i[x] << 24) + nk__in3((x)+1))

    if (*i >= 0x20) { /* use fewer if's for cases that expand small */
        if (*i >= 0x80)       nk__match(nk__dout-i[1]-1, (unsigned int)i[0] - 0x80 + 1), i += 2;
        else if (*i >= 0x40)  nk__match(nk__dout-(nk__in2(0) - 0x4000 + 1), (unsigned int)i[2]+1), i += 3;
        else /* *i >= 0x20 */ nk__lit(i+1, (unsigned int)i[0] - 0x20 + 1), i += 1 + (i[0] - 0x20 + 1);
    } else { /* more ifs for cases that expand large, since overhead is amortized */
        if (*i >= 0x18)       nk__match(nk__dout-(unsigned int)(nk__in3(0) - 0x180000 + 1), (unsigned int)i[3]+1), i += 4;
        else if (*i >= 0x10)  nk__match(nk__dout-(unsigned int)(nk__in3(0) - 0x100000 + 1), (unsigned int)nk__in2(3)+1), i += 5;
        else if (*i >= 0x08)  nk__lit(i+2, (unsigned int)nk__in2(0) - 0x0800 + 1), i += 2 + (nk__in2(0) - 0x0800 + 1);
        else if (*i == 0x07)  nk__lit(i+3, (unsigned int)nk__in2(1) + 1), i += 3 + (nk__in2(1) + 1);
        else if (*i == 0x06)  nk__match(nk__dout-(unsigned int)(nk__in3(1)+1), i[4]+1u), i += 5;
        else if (*i == 0x04)  nk__match(nk__dout-(unsigned int)(nk__in3(1)+1), (unsigned int)nk__in2(4)+1u), i += 6;
    }
    return i;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jl 0x849be
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x80, %eax
jl 0x84927
movq 0x41abe(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
movslq %eax, %rcx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
addq $-0x1, %rdi
movq (%rsp), %rax
movzbl (%rax), %esi
subl $0x80, %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x2, %rax
movq %rax, (%rsp)
jmp 0x849b9
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x40, %eax
jl 0x8497f
movq 0x41a6e(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl (%rax), %eax
shll $0x8, %eax
movq (%rsp), %rcx
movzbl 0x1(%rcx), %ecx
addl %ecx, %eax
subl $0x4000, %eax           # imm = 0x4000
addl $0x1, %eax
movslq %eax, %rcx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq (%rsp), %rax
movzbl 0x2(%rax), %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x3, %rax
movq %rax, (%rsp)
jmp 0x849b7
movq (%rsp), %rdi
addq $0x1, %rdi
movq (%rsp), %rax
movzbl (%rax), %esi
subl $0x20, %esi
addl $0x1, %esi
callq 0x84f90
movq (%rsp), %rax
movzbl (%rax), %ecx
subl $0x20, %ecx
addl $0x1, %ecx
addl $0x1, %ecx
movq (%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
jmp 0x849b9
jmp 0x84c40
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x18, %eax
jl 0x84a27
movq 0x419d7(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl (%rax), %eax
shll $0x10, %eax
movq (%rsp), %rcx
movzbl 0x1(%rcx), %ecx
shll $0x8, %ecx
movq (%rsp), %rdx
movzbl 0x2(%rdx), %edx
addl %edx, %ecx
addl %ecx, %eax
subl $0x180000, %eax         # imm = 0x180000
addl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq (%rsp), %rax
movzbl 0x3(%rax), %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x4, %rax
movq %rax, (%rsp)
jmp 0x84c3e
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x10, %eax
jl 0x84a9d
movq 0x4196e(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl (%rax), %eax
shll $0x10, %eax
movq (%rsp), %rcx
movzbl 0x1(%rcx), %ecx
shll $0x8, %ecx
movq (%rsp), %rdx
movzbl 0x2(%rdx), %edx
addl %edx, %ecx
addl %ecx, %eax
subl $0x100000, %eax         # imm = 0x100000
addl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq (%rsp), %rax
movzbl 0x3(%rax), %esi
shll $0x8, %esi
movq (%rsp), %rax
movzbl 0x4(%rax), %eax
addl %eax, %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x5, %rax
movq %rax, (%rsp)
jmp 0x84c3c
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x8, %eax
jl 0x84b06
movq (%rsp), %rdi
addq $0x2, %rdi
movq (%rsp), %rax
movzbl (%rax), %esi
shll $0x8, %esi
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
addl %eax, %esi
subl $0x800, %esi            # imm = 0x800
addl $0x1, %esi
callq 0x84f90
movq (%rsp), %rax
movzbl (%rax), %ecx
shll $0x8, %ecx
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
addl %eax, %ecx
subl $0x800, %ecx            # imm = 0x800
addl $0x1, %ecx
addl $0x2, %ecx
movq (%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
jmp 0x84c3a
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x7, %eax
jne 0x84b65
movq (%rsp), %rdi
addq $0x3, %rdi
movq (%rsp), %rax
movzbl 0x1(%rax), %esi
shll $0x8, %esi
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
addl %eax, %esi
addl $0x1, %esi
callq 0x84f90
movq (%rsp), %rax
movzbl 0x1(%rax), %ecx
shll $0x8, %ecx
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
addl %eax, %ecx
addl $0x1, %ecx
addl $0x3, %ecx
movq (%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
jmp 0x84c38
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x6, %eax
jne 0x84bc7
movq 0x41830(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
shll $0x10, %eax
movq (%rsp), %rcx
movzbl 0x2(%rcx), %ecx
shll $0x8, %ecx
movq (%rsp), %rdx
movzbl 0x3(%rdx), %edx
addl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq (%rsp), %rax
movzbl 0x4(%rax), %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x5, %rax
movq %rax, (%rsp)
jmp 0x84c36
movq (%rsp), %rax
movzbl (%rax), %eax
cmpl $0x4, %eax
jne 0x84c34
movq 0x417ce(%rip), %rdi     # 0xc63a8
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
shll $0x10, %eax
movq (%rsp), %rcx
movzbl 0x2(%rcx), %ecx
shll $0x8, %ecx
movq (%rsp), %rdx
movzbl 0x3(%rdx), %edx
addl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq (%rsp), %rax
movzbl 0x4(%rax), %esi
shll $0x8, %esi
movq (%rsp), %rax
movzbl 0x5(%rax), %eax
addl %eax, %esi
addl $0x1, %esi
callq 0x84ea0
movq (%rsp), %rax
addq $0x6, %rax
movq %rax, (%rsp)
jmp 0x84c36
jmp 0x84c38
jmp 0x84c3a
jmp 0x84c3c
jmp 0x84c3e
jmp 0x84c40
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)