// File: /workspace/github_c_makefile_star2_O0/svpv[P]rpmset/./base64unpack-simd.h
// Function: unpack20x6c20
static inline bool unpack20x6c20(const char *s, uint32_t *v, unsigned *e)
{
    V32x4 x;
    if (!unpack24(s, &x)) return false;
    uint32_t d = VEXTR32(x, 3);
    x = VSHUF8(x, V8x16_C(
	    -1, 0, 1, 2, -1, 2,  4,  5,
	    -1, 6, 8, 9, -1, 9, 10, 12));
#if VSHLV32_COST >= 2
    x = VBLEND16(x, VSHL32(x, 4), 0x33);
#else
    x = VSHLV32(x, 4, 0, 4, 0);
#endif
    VSTORE(v, VSHR32(x, 12));
    int32_t b = base64dec4(s + 16);
    if (b < 0) return false;
    v[4] = (d >> 8) | (b & Mask(4)) << 16;
    v[5] = (b >> 4);
    return (void) e, true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1c590
testb $0x1, %al
jne 0xf90d
movb $0x0, 0x3f(%rsp)
jmp 0xfc36
movl 0x1c(%rsp), %eax
movl %eax, 0xc(%rsp)
vmovdqa 0x10(%rsp), %xmm1
movb $-0x1, 0x6f(%rsp)
movb $0x0, 0x6e(%rsp)
movb $0x1, 0x6d(%rsp)
movb $0x2, 0x6c(%rsp)
movb $-0x1, 0x6b(%rsp)
movb $0x2, 0x6a(%rsp)
movb $0x4, 0x69(%rsp)
movb $0x5, 0x68(%rsp)
movb $-0x1, 0x67(%rsp)
movb $0x6, 0x66(%rsp)
movb $0x8, 0x65(%rsp)
movb $0x9, 0x64(%rsp)
movb $-0x1, 0x63(%rsp)
movb $0x9, 0x62(%rsp)
movb $0xa, 0x61(%rsp)
movb $0xc, 0x60(%rsp)
movb 0x60(%rsp), %al
movb %al, 0x6(%rsp)
movb 0x61(%rsp), %r13b
movb 0x62(%rsp), %r12b
movb 0x63(%rsp), %r15b
movb 0x64(%rsp), %r14b
movb 0x65(%rsp), %bpl
movb 0x66(%rsp), %bl
movb 0x67(%rsp), %r11b
movb 0x68(%rsp), %r10b
movb 0x69(%rsp), %r9b
movb 0x6a(%rsp), %r8b
movb 0x6b(%rsp), %dil
movb 0x6c(%rsp), %sil
movb 0x6d(%rsp), %dl
movb 0x6e(%rsp), %cl
movb 0x6f(%rsp), %al
movb %al, 0x7(%rsp)
movb 0x6(%rsp), %al
movb %al, 0xcb(%rsp)
movb 0x7(%rsp), %al
movb %r13b, 0xca(%rsp)
movb %r12b, 0xc9(%rsp)
movb %r15b, 0xc8(%rsp)
movb %r14b, 0xc7(%rsp)
movb %bpl, 0xc6(%rsp)
movb %bl, 0xc5(%rsp)
movb %r11b, 0xc4(%rsp)
movb %r10b, 0xc3(%rsp)
movb %r9b, 0xc2(%rsp)
movb %r8b, 0xc1(%rsp)
movb %dil, 0xc0(%rsp)
movb %sil, 0xbf(%rsp)
movb %dl, 0xbe(%rsp)
movb %cl, 0xbd(%rsp)
movb %al, 0xbc(%rsp)
movzbl 0xbc(%rsp), %eax
vmovd %eax, %xmm0
movzbl 0xbd(%rsp), %eax
vpinsrb $0x1, %eax, %xmm0, %xmm0
movzbl 0xbe(%rsp), %eax
vpinsrb $0x2, %eax, %xmm0, %xmm0
movzbl 0xbf(%rsp), %eax
vpinsrb $0x3, %eax, %xmm0, %xmm0
movzbl 0xc0(%rsp), %eax
vpinsrb $0x4, %eax, %xmm0, %xmm0
movzbl 0xc1(%rsp), %eax
vpinsrb $0x5, %eax, %xmm0, %xmm0
movzbl 0xc2(%rsp), %eax
vpinsrb $0x6, %eax, %xmm0, %xmm0
movzbl 0xc3(%rsp), %eax
vpinsrb $0x7, %eax, %xmm0, %xmm0
movzbl 0xc4(%rsp), %eax
vpinsrb $0x8, %eax, %xmm0, %xmm0
movzbl 0xc5(%rsp), %eax
vpinsrb $0x9, %eax, %xmm0, %xmm0
movzbl 0xc6(%rsp), %eax
vpinsrb $0xa, %eax, %xmm0, %xmm0
movzbl 0xc7(%rsp), %eax
vpinsrb $0xb, %eax, %xmm0, %xmm0
movzbl 0xc8(%rsp), %eax
vpinsrb $0xc, %eax, %xmm0, %xmm0
movzbl 0xc9(%rsp), %eax
vpinsrb $0xd, %eax, %xmm0, %xmm0
movzbl 0xca(%rsp), %eax
vpinsrb $0xe, %eax, %xmm0, %xmm0
movzbl 0xcb(%rsp), %eax
vpinsrb $0xf, %eax, %xmm0, %xmm0
vmovdqa %xmm0, 0xa0(%rsp)
vmovdqa 0xa0(%rsp), %xmm0
vmovdqa %xmm1, 0x50(%rsp)
vmovdqa %xmm0, 0x40(%rsp)
vmovdqa 0x50(%rsp), %xmm0
vmovdqa 0x40(%rsp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0x10(%rsp)
vmovdqa 0x10(%rsp), %xmm1
vmovdqa %xmm1, 0xd0(%rsp)
movl $0x4, 0xcc(%rsp)
vmovdqa 0xd0(%rsp), %xmm0
vmovd 0xcc(%rsp), %xmm2
vpslld %xmm2, %xmm0, %xmm0
vpblendd $0xa, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
vmovdqa %xmm0, 0x10(%rsp)
movq 0x28(%rsp), %rax
vmovdqa 0x10(%rsp), %xmm0
vmovdqa %xmm0, 0x90(%rsp)
movl $0xc, 0x8c(%rsp)
vmovdqa 0x90(%rsp), %xmm0
movl 0x8c(%rsp), %ecx
vmovd %ecx, %xmm1
vpsrld %xmm1, %xmm0, %xmm0
movq %rax, 0x80(%rsp)
vmovdqa %xmm0, 0x70(%rsp)
vmovdqa 0x70(%rsp), %xmm0
movq 0x80(%rsp), %rax
vmovdqu %xmm0, (%rax)
movq 0x30(%rsp), %rdi
addq $0x10, %rdi
callq 0x1ddb0
movl %eax, 0x8(%rsp)
cmpl $0x0, 0x8(%rsp)
jge 0xfc07
movb $0x0, 0x3f(%rsp)
jmp 0xfc36
movl 0xc(%rsp), %ecx
shrl $0x8, %ecx
movl 0x8(%rsp), %eax
andl $0xf, %eax
shll $0x10, %eax
orl %eax, %ecx
movq 0x28(%rsp), %rax
movl %ecx, 0x10(%rax)
movl 0x8(%rsp), %ecx
sarl $0x4, %ecx
movq 0x28(%rsp), %rax
movl %ecx, 0x14(%rax)
movb $0x1, 0x3f(%rsp)
movb 0x3f(%rsp), %al
andb $0x1, %al
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop