user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<rgb_to_rgba_process>:
  endbr64
  xor    %r9d,%r9d
  cmp    $0x1,%edx
  jne    L208
  push   %r14
  mov    %rcx,%rdx
  lea    0x3(%r8),%ecx
  push   %rbp
  push   %rbx
  sub    $0x318,%rsp
  movslq (%rsi),%rax
  test   %r8d,%r8d
  cmovns %r8d,%ecx
  mov    %rax,%rsi
  imul   $0x55555556,%rax,%rax
  sar    $0x1f,%esi
  sar    $0x2,%ecx
  mov    %ecx,%r14d
  shr    $0x20,%rax
  sub    %esi,%eax
  cmp    %ecx,%eax
  jne    L94
  mov    (%rdi),%rdi
  test   %rdi,%rdi
  je     L152
  test   %rdx,%rdx
  je     L152
  cmp    $0x3,%r8d
  jle    L200
  mov    %ecx,%eax
  lea    (%rax,%rax,2),%rsi
  lea    (%rdx,%rax,4),%rax
  add    %rdi,%rsi
  cmp    %rsi,%rdx
  setae  %sil
  cmp    %rax,%rdi
  setae  %al
  or     %al,%sil
  je     L136
  cmp    $0x1f,%r8d
  jle    L136
  cmp    $0x3f,%r8d
  jle    L39
  shr    $0x4,%ecx
  mov    %rdi,%rsi
  mov    %rdx,%rax
  mov    %ecx,%r8d
  sub    $0x1,%r8d
  shl    $0x6,%r8
  lea    0x40(%rdx,%r8,1),%r9
  nopl   0x0(%rax)
L31:
  movdqu (%rsi),%xmm2
  movdqu 0x10(%rsi),%xmm1
  add    $0x40,%rax
  add    $0x30,%rsi
  movdqu -0x10(%rsi),%xmm0
  movd   %xmm2,%r8d
  mov    %r8b,-0x40(%rax)
  movaps %xmm2,0x308(%rsp)
  movzbl 0x309(%rsp),%r8d
  mov    %r8b,-0x3f(%rax)
  movaps %xmm2,0x2f8(%rsp)
  movzbl 0x2fa(%rsp),%r8d
  mov    %r8b,-0x3e(%rax)
  movaps %xmm2,0x2e8(%rsp)
  movzbl 0x2eb(%rsp),%r8d
  mov    %r8b,-0x3c(%rax)
  movaps %xmm2,0x2d8(%rsp)
  movzbl 0x2dc(%rsp),%r8d
  mov    %r8b,-0x3b(%rax)
  movaps %xmm2,0x2c8(%rsp)
  movzbl 0x2cd(%rsp),%r8d
  mov    %r8b,-0x3a(%rax)
  movaps %xmm2,0x2b8(%rsp)
  movzbl 0x2be(%rsp),%r8d
  mov    %r8b,-0x38(%rax)
  movaps %xmm2,0x2a8(%rsp)
  movzbl 0x2af(%rsp),%r8d
  mov    %r8b,-0x37(%rax)
  movaps %xmm2,0x298(%rsp)
  movzbl 0x2a0(%rsp),%r8d
  mov    %r8b,-0x36(%rax)
  movaps %xmm2,0x288(%rsp)
  movzbl 0x291(%rsp),%r8d
  mov    %r8b,-0x34(%rax)
  movaps %xmm2,0x278(%rsp)
  movzbl 0x282(%rsp),%r8d
  mov    %r8b,-0x33(%rax)
  movaps %xmm2,0x268(%rsp)
  movzbl 0x273(%rsp),%r8d
  mov    %r8b,-0x32(%rax)
  movaps %xmm2,0x258(%rsp)
  movzbl 0x264(%rsp),%r8d
  mov    %r8b,-0x30(%rax)
  movaps %xmm2,0x248(%rsp)
  movzbl 0x255(%rsp),%r8d
  mov    %r8b,-0x2f(%rax)
  movaps %xmm2,0x238(%rsp)
  movzbl 0x246(%rsp),%r8d
  mov    %r8b,-0x2e(%rax)
  movaps %xmm2,0x228(%rsp)
  movzbl 0x237(%rsp),%r8d
  mov    %r8b,-0x2c(%rax)
  movd   %xmm1,%r8d
  mov    %r8b,-0x2b(%rax)
  movaps %xmm1,0x218(%rsp)
  movzbl 0x219(%rsp),%r8d
  mov    %r8b,-0x2a(%rax)
  movaps %xmm1,0x208(%rsp)
  movzbl 0x20a(%rsp),%r8d
  mov    %r8b,-0x28(%rax)
  movaps %xmm1,0x1f8(%rsp)
  movzbl 0x1fb(%rsp),%r8d
  mov    %r8b,-0x27(%rax)
  movaps %xmm1,0x1e8(%rsp)
  movzbl 0x1ec(%rsp),%r8d
  mov    %r8b,-0x26(%rax)
  movaps %xmm1,0x1d8(%rsp)
  movzbl 0x1dd(%rsp),%r8d
  mov    %r8b,-0x24(%rax)
  movaps %xmm1,0x1c8(%rsp)
  movzbl 0x1ce(%rsp),%r8d
  mov    %r8b,-0x23(%rax)
  movaps %xmm1,0x1b8(%rsp)
  movzbl 0x1bf(%rsp),%r8d
  mov    %r8b,-0x22(%rax)
  movaps %xmm1,0x1a8(%rsp)
  movzbl 0x1b0(%rsp),%r8d
  mov    %r8b,-0x20(%rax)
  movaps %xmm1,0x198(%rsp)
  movzbl 0x1a1(%rsp),%r8d
  mov    %r8b,-0x1f(%rax)
  movaps %xmm1,0x188(%rsp)
  movzbl 0x192(%rsp),%r8d
  mov    %r8b,-0x1e(%rax)
  movaps %xmm1,0x178(%rsp)
  movzbl 0x183(%rsp),%r8d
  mov    %r8b,-0x1c(%rax)
  movaps %xmm1,0x168(%rsp)
  movzbl 0x174(%rsp),%r8d
  mov    %r8b,-0x1b(%rax)
  movaps %xmm1,0x158(%rsp)
  movzbl 0x165(%rsp),%r8d
  mov    %r8b,-0x1a(%rax)
  movaps %xmm1,0x148(%rsp)
  movzbl 0x156(%rsp),%r8d
  mov    %r8b,-0x18(%rax)
  movaps %xmm1,0x138(%rsp)
  movzbl 0x147(%rsp),%r8d
  mov    %r8b,-0x17(%rax)
  movd   %xmm0,%r8d
  mov    %r8b,-0x16(%rax)
  movaps %xmm0,0x128(%rsp)
  movzbl 0x129(%rsp),%r8d
  mov    %r8b,-0x14(%rax)
  movaps %xmm0,0x118(%rsp)
  movzbl 0x11a(%rsp),%r8d
  mov    %r8b,-0x13(%rax)
  movaps %xmm0,0x108(%rsp)
  movzbl 0x10b(%rsp),%r8d
  mov    %r8b,-0x12(%rax)
  movaps %xmm0,0xf8(%rsp)
  movzbl 0xfc(%rsp),%r8d
  mov    %r8b,-0x10(%rax)
  movaps %xmm0,0xe8(%rsp)
  movzbl 0xed(%rsp),%r8d
  mov    %r8b,-0xf(%rax)
  movaps %xmm0,0xd8(%rsp)
  movzbl 0xde(%rsp),%r8d
  mov    %r8b,-0xe(%rax)
  movaps %xmm0,0xc8(%rsp)
  movzbl 0xcf(%rsp),%r8d
  mov    %r8b,-0xc(%rax)
  movaps %xmm0,0xb8(%rsp)
  movzbl 0xc0(%rsp),%r8d
  mov    %r8b,-0xb(%rax)
  movaps %xmm0,0xa8(%rsp)
  movzbl 0xb1(%rsp),%r8d
  mov    %r8b,-0xa(%rax)
  movaps %xmm0,0x98(%rsp)
  movzbl 0xa2(%rsp),%r8d
  mov    %r8b,-0x8(%rax)
  movaps %xmm0,0x88(%rsp)
  movzbl 0x93(%rsp),%r8d
  mov    %r8b,-0x7(%rax)
  movaps %xmm0,0x78(%rsp)
  movzbl 0x84(%rsp),%r8d
  mov    %r8b,-0x6(%rax)
  movaps %xmm0,0x68(%rsp)
  movzbl 0x75(%rsp),%r8d
  mov    %r8b,-0x4(%rax)
  movaps %xmm0,0x58(%rsp)
  movzbl 0x66(%rsp),%r8d
  mov    %r8b,-0x3(%rax)
  movaps %xmm0,0x48(%rsp)
  movzbl 0x57(%rsp),%r8d
  movb   $0xff,-0x3d(%rax)
  mov    %r8b,-0x2(%rax)
  movb   $0xff,-0x39(%rax)
  movb   $0xff,-0x35(%rax)
  movb   $0xff,-0x31(%rax)
  movb   $0xff,-0x2d(%rax)
  movb   $0xff,-0x29(%rax)
  movb   $0xff,-0x25(%rax)
  movb   $0xff,-0x21(%rax)
  movb   $0xff,-0x1d(%rax)
  movb   $0xff,-0x19(%rax)
  movb   $0xff,-0x15(%rax)
  movb   $0xff,-0x11(%rax)
  movb   $0xff,-0xd(%rax)
  movb   $0xff,-0x9(%rax)
  movb   $0xff,-0x5(%rax)
  movb   $0xff,-0x1(%rax)
  cmp    %r9,%rax
  jne    L31
  mov    %r14d,%eax
  and    $0xfffffff0,%eax
  mov    %eax,%esi
  mov    %eax,%r10d
  lea    (%rsi,%rsi,2),%r9
  lea    (%rdx,%rsi,4),%r8
  add    %rdi,%r9
  cmp    %eax,%r14d
  je     L200
L194:
  mov    %r14d,%ecx
  sub    %eax,%ecx
  lea    -0x1(%rcx),%esi
  mov    %ecx,%r11d
  cmp    $0x6,%esi
  jbe    L22
  lea    (%rax,%rax,2),%rbp
  lea    0x0(,%rax,4),%rsi
  add    %rdi,%rbp
  lea    (%rdx,%rsi,1),%rax
  lea    0x3(%rdx,%rsi,1),%rdi
  mov    0x0(%rbp),%rsi
  mov    0x10(%rbp),%rdx
  mov    0x8(%rbp),%rbx
  mov    %rsi,%rbp
  mov    %rsi,%rcx
  mov    %rsi,0x40(%rsp)
  shr    $0x10,%rbp
  mov    %sil,(%rax)
  mov    %rsi,0x38(%rsp)
  mov    %ch,0x1(%rax)
  shr    $0x38,%rcx
  mov    %rsi,0x30(%rsp)
  mov    %bpl,0x2(%rax)
  mov    %rsi,%rbp
  shr    $0x18,%rbp
  mov    %rsi,0x28(%rsp)
  mov    %bpl,0x4(%rax)
  mov    %rsi,%rbp
  shr    $0x20,%rbp
  mov    %rsi,0x20(%rsp)
  mov    %bpl,0x5(%rax)
  mov    %rsi,%rbp
  shr    $0x28,%rbp
  mov    %rsi,0x18(%rsp)
  mov    %bpl,0x6(%rax)
  mov    %rsi,%rbp
  shr    $0x30,%rbp
  mov    %rsi,0x10(%rsp)
  mov    %bpl,0x8(%rax)
  mov    %rsi,0x8(%rsp)
  mov    %rbx,%rsi
  shr    $0x10,%rsi
  mov    %cl,0x9(%rax)
  mov    %rbx,%rcx
  mov    %rbx,(%rsp)
  shr    $0x38,%rcx
  mov    %bl,0xa(%rax)
  mov    %rbx,-0x8(%rsp)
  mov    %bh,0xc(%rax)
  mov    %rbx,-0x10(%rsp)
  mov    %sil,0xd(%rax)
  mov    %rbx,%rsi
  shr    $0x18,%rsi
  mov    %rbx,-0x18(%rsp)
  mov    %sil,0xe(%rax)
  mov    %rbx,%rsi
  shr    $0x20,%rsi
  mov    %rbx,-0x20(%rsp)
  mov    %sil,0x10(%rax)
  mov    %rbx,%rsi
  shr    $0x28,%rsi
  mov    %rbx,-0x28(%rsp)
  mov    %sil,0x11(%rax)
  mov    %rbx,%rsi
  shr    $0x30,%rsi
  mov    %rbx,-0x30(%rsp)
  mov    %sil,0x12(%rax)
  mov    %rdx,%rsi
  shr    $0x10,%rsi
  mov    %rbx,-0x38(%rsp)
  mov    %rdx,%rbx
  mov    %cl,0x14(%rax)
  shr    $0x38,%rbx
  mov    %rdx,-0x40(%rsp)
  mov    %dl,0x15(%rax)
  mov    %rdx,-0x48(%rsp)
  mov    %dh,0x16(%rax)
  mov    %rdx,-0x50(%rsp)
  mov    %sil,0x18(%rax)
  mov    %rdx,%rsi
  shr    $0x18,%rsi
  mov    %rdx,-0x58(%rsp)
  mov    %sil,0x19(%rax)
  mov    %rdx,%rsi
  shr    $0x20,%rsi
  mov    %rdx,-0x60(%rsp)
  mov    %sil,0x1a(%rax)
  mov    %rdx,%rsi
  shr    $0x28,%rsi
  mov    %rdx,-0x68(%rsp)
  mov    %sil,0x1c(%rax)
  mov    %rdx,%rsi
  shr    $0x30,%rsi
  mov    %rdx,-0x70(%rsp)
  mov    %sil,0x1d(%rax)
  mov    %rdx,-0x78(%rsp)
  mov    %bl,0x1e(%rax)
  mov    %r11d,%eax
  and    $0xfffffff8,%eax
  movb   $0xff,(%rdi)
  mov    %eax,%edx
  movb   $0xff,0x4(%rdi)
  add    %eax,%r10d
  lea    (%rdx,%rdx,2),%rsi
  movb   $0xff,0x8(%rdi)
  lea    (%r8,%rdx,4),%r8
  movb   $0xff,0xc(%rdi)
  add    %rsi,%r9
  movb   $0xff,0x10(%rdi)
  movb   $0xff,0x14(%rdi)
  movb   $0xff,0x18(%rdi)
  movb   $0xff,0x1c(%rdi)
  cmp    %eax,%r11d
  je     L200
L22:
  movzbl (%r9),%eax
  mov    %al,(%r8)
  movzbl 0x1(%r9),%eax
  mov    %al,0x1(%r8)
  movzbl 0x2(%r9),%eax
  movb   $0xff,0x3(%r8)
  mov    %al,0x2(%r8)
  lea    0x1(%r10),%eax
  cmp    %eax,%r14d
  jle    L200
  movzbl 0x3(%r9),%eax
  mov    %al,0x4(%r8)
  movzbl 0x4(%r9),%eax
  mov    %al,0x5(%r8)
  movzbl 0x5(%r9),%eax
  movb   $0xff,0x7(%r8)
  mov    %al,0x6(%r8)
  lea    0x2(%r10),%eax
  cmp    %eax,%r14d
  jle    L200
  movzbl 0x6(%r9),%eax
  mov    %al,0x8(%r8)
  movzbl 0x7(%r9),%eax
  mov    %al,0x9(%r8)
  movzbl 0x8(%r9),%eax
  movb   $0xff,0xb(%r8)
  mov    %al,0xa(%r8)
  lea    0x3(%r10),%eax
  cmp    %eax,%r14d
  jle    L200
  movzbl 0x9(%r9),%eax
  mov    %al,0xc(%r8)
  movzbl 0xa(%r9),%eax
  mov    %al,0xd(%r8)
  movzbl 0xb(%r9),%eax
  movb   $0xff,0xf(%r8)
  mov    %al,0xe(%r8)
  lea    0x4(%r10),%eax
  cmp    %eax,%r14d
  jle    L200
  movzbl 0xc(%r9),%eax
  mov    %al,0x10(%r8)
  movzbl 0xd(%r9),%eax
  mov    %al,0x11(%r8)
  movzbl 0xe(%r9),%eax
  movb   $0xff,0x13(%r8)
  mov    %al,0x12(%r8)
  lea    0x5(%r10),%eax
  cmp    %eax,%r14d
  jle    L200
  movzbl 0xf(%r9),%eax
  add    $0x6,%r10d
  mov    %al,0x14(%r8)
  movzbl 0x10(%r9),%eax
  mov    %al,0x15(%r8)
  movzbl 0x11(%r9),%eax
  movb   $0xff,0x17(%r8)
  mov    %al,0x16(%r8)
  cmp    %r10d,%r14d
  jle    L200
  movzbl 0x12(%r9),%eax
  mov    %al,0x18(%r8)
  movzbl 0x13(%r9),%eax
  mov    %al,0x19(%r8)
  movzbl 0x14(%r9),%eax
  movb   $0xff,0x1b(%r8)
  mov    %al,0x1a(%r8)
L200:
  mov    $0x1,%r9d
L94:
  add    $0x318,%rsp
  mov    %r9d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r14
  ret
  nopl   0x0(%rax)
L208:
  mov    %r9d,%eax
  ret
  nopl   0x0(%rax)
L152:
  xor    %r9d,%r9d
  jmp    L94
  nopl   (%rax)
L136:
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L211:
  movzbl (%rdi),%esi
  add    $0x3,%rdi
  add    $0x4,%rdx
  add    $0x1,%eax
  mov    %sil,-0x4(%rdx)
  movzbl -0x2(%rdi),%esi
  mov    %sil,-0x3(%rdx)
  movzbl -0x1(%rdi),%esi
  mov    %sil,-0x2(%rdx)
  movb   $0xff,-0x1(%rdx)
  cmp    %eax,%r14d
  jg     L211
  jmp    L200
L39:
  mov    %rdx,%r8
  mov    %rdi,%r9
  xor    %eax,%eax
  xor    %r10d,%r10d
  jmp    L194
```

assistant: ```c
int rgb_to_rgba_process(const char **inputs, const int *input_sizes, int input_count, char *output, int output_size, void *user_data __attribute__((unused))) {
  if (input_count != 1)
    return 0;
  if (input_sizes[0] / 3 != output_size / 4)
    return 0;
  const char *input_ptr = inputs[0];
  char *output_ptr = output;
  if (!input_ptr || !output_ptr)
    return 0;
  int i;
  for (i = 0; i < output_size / 4; ++i) {
    *(output_ptr++) = *(input_ptr++);
    *(output_ptr++) = *(input_ptr++);
    *(output_ptr++) = *(input_ptr++);
    *(output_ptr++) = 255;
  }
  return 1;
}
```