user: Demonstrate the C code that generates the assembly output below:

```asm
<RandomFunc>:
  endbr64
  sub    $0x498,%rsp
  mov    0x4(%rdi),%ecx
  mov    %rsi,%r8
  mov    %fs:0x28,%rax
  mov    %rax,0x488(%rsp)
  mov    (%rdi),%eax
  add    $0x3686696a,%eax
  xor    $0xce5d000b,%eax
  mov    %eax,0x480(%rsp)
  test   %ecx,%ecx
  je     L121
  lea    -0x1(%rcx),%esi
  cmp    $0xf,%esi
  jbe    L176
  mov    %esi,%edx
  lea    0x482(%rsp),%rax
  shr    $0x4,%edx
  sub    $0x1,%edx
  shl    $0x6,%rdx
  lea    0x4c2(%rsp,%rdx,1),%rdi
  nopl   (%rax)
L193:
  movdqu (%rax),%xmm3
  movdqu 0x10(%rax),%xmm2
  add    $0x40,%rax
  movdqu -0x10(%rax),%xmm0
  movdqu -0x20(%rax),%xmm1
  movaps %xmm3,0x470(%rsp)
  movzbl 0x471(%rsp),%edx
  mov    %dl,-0x40(%rax)
  movaps %xmm3,0x460(%rsp)
  movzbl 0x465(%rsp),%edx
  mov    %dl,-0x3c(%rax)
  movaps %xmm3,0x450(%rsp)
  movzbl 0x459(%rsp),%edx
  mov    %dl,-0x38(%rax)
  movaps %xmm3,0x440(%rsp)
  movzbl 0x44d(%rsp),%edx
  mov    %dl,-0x34(%rax)
  movaps %xmm2,0x430(%rsp)
  movzbl 0x431(%rsp),%edx
  mov    %dl,-0x30(%rax)
  movaps %xmm2,0x420(%rsp)
  movzbl 0x425(%rsp),%edx
  mov    %dl,-0x2c(%rax)
  movaps %xmm2,0x410(%rsp)
  movzbl 0x419(%rsp),%edx
  mov    %dl,-0x28(%rax)
  movaps %xmm2,0x400(%rsp)
  movzbl 0x40d(%rsp),%edx
  mov    %dl,-0x24(%rax)
  movaps %xmm1,0x3f0(%rsp)
  movzbl 0x3f1(%rsp),%edx
  mov    %dl,-0x20(%rax)
  movaps %xmm1,0x3e0(%rsp)
  movzbl 0x3e5(%rsp),%edx
  mov    %dl,-0x1c(%rax)
  movaps %xmm1,0x3d0(%rsp)
  movzbl 0x3d9(%rsp),%edx
  mov    %dl,-0x18(%rax)
  movaps %xmm1,0x3c0(%rsp)
  movzbl 0x3cd(%rsp),%edx
  mov    %dl,-0x14(%rax)
  movaps %xmm0,0x3b0(%rsp)
  movzbl 0x3b1(%rsp),%edx
  mov    %dl,-0x10(%rax)
  movaps %xmm0,0x3a0(%rsp)
  movzbl 0x3a5(%rsp),%edx
  mov    %dl,-0xc(%rax)
  movaps %xmm0,0x390(%rsp)
  movzbl 0x399(%rsp),%edx
  mov    %dl,-0x8(%rax)
  movaps %xmm0,0x380(%rsp)
  movzbl 0x38d(%rsp),%edx
  mov    %dl,-0x4(%rax)
  movd   %xmm3,%edx
  mov    %dl,-0x3f(%rax)
  movaps %xmm3,0x370(%rsp)
  movzbl 0x374(%rsp),%edx
  mov    %dl,-0x3b(%rax)
  movaps %xmm3,0x360(%rsp)
  movzbl 0x368(%rsp),%edx
  mov    %dl,-0x37(%rax)
  movaps %xmm3,0x350(%rsp)
  movzbl 0x35c(%rsp),%edx
  mov    %dl,-0x33(%rax)
  movd   %xmm2,%edx
  mov    %dl,-0x2f(%rax)
  movaps %xmm2,0x340(%rsp)
  movzbl 0x344(%rsp),%edx
  mov    %dl,-0x2b(%rax)
  movaps %xmm2,0x330(%rsp)
  movzbl 0x338(%rsp),%edx
  mov    %dl,-0x27(%rax)
  movaps %xmm2,0x320(%rsp)
  movzbl 0x32c(%rsp),%edx
  mov    %dl,-0x23(%rax)
  movd   %xmm1,%edx
  mov    %dl,-0x1f(%rax)
  movaps %xmm1,0x310(%rsp)
  movzbl 0x314(%rsp),%edx
  mov    %dl,-0x1b(%rax)
  movaps %xmm1,0x300(%rsp)
  movzbl 0x308(%rsp),%edx
  mov    %dl,-0x17(%rax)
  movaps %xmm1,0x2f0(%rsp)
  movzbl 0x2fc(%rsp),%edx
  mov    %dl,-0x13(%rax)
  movd   %xmm0,%edx
  mov    %dl,-0xf(%rax)
  movaps %xmm0,0x2e0(%rsp)
  movzbl 0x2e4(%rsp),%edx
  mov    %dl,-0xb(%rax)
  movaps %xmm0,0x2d0(%rsp)
  movzbl 0x2d8(%rsp),%edx
  mov    %dl,-0x7(%rax)
  movaps %xmm0,0x2c0(%rsp)
  movzbl 0x2cc(%rsp),%edx
  mov    %dl,-0x3(%rax)
  cmp    %rdi,%rax
  jne    L193
  mov    %esi,%eax
  and    $0xfffffff0,%eax
L222:
  mov    %eax,%edi
  lea    0x480(%rsp),%rdx
  rolw   $0x8,0x482(%rsp,%rdi,4)
  lea    0x1(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x2(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x3(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x4(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x5(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x6(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x7(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x8(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0x9(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0xa(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0xb(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0xc(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0xd(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rdi,4)
  lea    0xe(%rax),%edi
  cmp    %edi,%ecx
  jbe    L96
  add    $0xf,%eax
  rolw   $0x8,0x2(%rdx,%rdi,4)
  cmp    %eax,%ecx
  jbe    L96
  rolw   $0x8,0x2(%rdx,%rax,4)
  nopl   0x0(%rax,%rax,1)
L96:
  cmp    $0xe,%esi
  jbe    L43
  mov    %ecx,%esi
  mov    %rdx,%rax
  shr    $0x4,%esi
  sub    $0x1,%esi
  shl    $0x6,%rsi
  lea    0x4c0(%rsp,%rsi,1),%rdi
L84:
  movdqa (%rax),%xmm3
  movdqa 0x10(%rax),%xmm2
  add    $0x40,%rax
  movdqa -0x10(%rax),%xmm0
  movdqa -0x20(%rax),%xmm1
  movaps %xmm3,0x2b0(%rsp)
  movzbl 0x2b1(%rsp),%esi
  mov    %sil,-0x40(%rax)
  movaps %xmm3,0x2a0(%rsp)
  movzbl 0x2a5(%rsp),%esi
  mov    %sil,-0x3c(%rax)
  movaps %xmm3,0x290(%rsp)
  movzbl 0x299(%rsp),%esi
  mov    %sil,-0x38(%rax)
  movaps %xmm3,0x280(%rsp)
  movzbl 0x28d(%rsp),%esi
  mov    %sil,-0x34(%rax)
  movaps %xmm2,0x270(%rsp)
  movzbl 0x271(%rsp),%esi
  mov    %sil,-0x30(%rax)
  movaps %xmm2,0x260(%rsp)
  movzbl 0x265(%rsp),%esi
  mov    %sil,-0x2c(%rax)
  movaps %xmm2,0x250(%rsp)
  movzbl 0x259(%rsp),%esi
  mov    %sil,-0x28(%rax)
  movaps %xmm2,0x240(%rsp)
  movzbl 0x24d(%rsp),%esi
  mov    %sil,-0x24(%rax)
  movaps %xmm1,0x230(%rsp)
  movzbl 0x231(%rsp),%esi
  mov    %sil,-0x20(%rax)
  movaps %xmm1,0x220(%rsp)
  movzbl 0x225(%rsp),%esi
  mov    %sil,-0x1c(%rax)
  movaps %xmm1,0x210(%rsp)
  movzbl 0x219(%rsp),%esi
  mov    %sil,-0x18(%rax)
  movaps %xmm1,0x200(%rsp)
  movzbl 0x20d(%rsp),%esi
  mov    %sil,-0x14(%rax)
  movaps %xmm0,0x1f0(%rsp)
  movzbl 0x1f1(%rsp),%esi
  mov    %sil,-0x10(%rax)
  movaps %xmm0,0x1e0(%rsp)
  movzbl 0x1e5(%rsp),%esi
  mov    %sil,-0xc(%rax)
  movaps %xmm0,0x1d0(%rsp)
  movzbl 0x1d9(%rsp),%esi
  mov    %sil,-0x8(%rax)
  movaps %xmm0,0x1c0(%rsp)
  movzbl 0x1cd(%rsp),%esi
  mov    %sil,-0x4(%rax)
  movaps %xmm3,0x1b0(%rsp)
  movzbl 0x1b2(%rsp),%esi
  mov    %sil,-0x3f(%rax)
  movaps %xmm3,0x1a0(%rsp)
  movzbl 0x1a6(%rsp),%esi
  mov    %sil,-0x3b(%rax)
  movaps %xmm3,0x190(%rsp)
  movzbl 0x19a(%rsp),%esi
  mov    %sil,-0x37(%rax)
  movaps %xmm3,0x180(%rsp)
  movzbl 0x18e(%rsp),%esi
  mov    %sil,-0x33(%rax)
  movaps %xmm2,0x170(%rsp)
  movzbl 0x172(%rsp),%esi
  mov    %sil,-0x2f(%rax)
  movaps %xmm2,0x160(%rsp)
  movzbl 0x166(%rsp),%esi
  mov    %sil,-0x2b(%rax)
  movaps %xmm2,0x150(%rsp)
  movzbl 0x15a(%rsp),%esi
  mov    %sil,-0x27(%rax)
  movaps %xmm2,0x140(%rsp)
  movzbl 0x14e(%rsp),%esi
  mov    %sil,-0x23(%rax)
  movaps %xmm1,0x130(%rsp)
  movzbl 0x132(%rsp),%esi
  mov    %sil,-0x1f(%rax)
  movaps %xmm1,0x120(%rsp)
  movzbl 0x126(%rsp),%esi
  mov    %sil,-0x1b(%rax)
  movaps %xmm1,0x110(%rsp)
  movzbl 0x11a(%rsp),%esi
  mov    %sil,-0x17(%rax)
  movaps %xmm1,0x100(%rsp)
  movzbl 0x10e(%rsp),%esi
  mov    %sil,-0x13(%rax)
  movaps %xmm0,0xf0(%rsp)
  movzbl 0xf2(%rsp),%esi
  mov    %sil,-0xf(%rax)
  movaps %xmm0,0xe0(%rsp)
  movzbl 0xe6(%rsp),%esi
  mov    %sil,-0xb(%rax)
  movaps %xmm0,0xd0(%rsp)
  movzbl 0xda(%rsp),%esi
  mov    %sil,-0x7(%rax)
  movaps %xmm0,0xc0(%rsp)
  movzbl 0xce(%rsp),%esi
  mov    %sil,-0x3(%rax)
  movd   %xmm3,%esi
  mov    %sil,-0x3e(%rax)
  movaps %xmm3,0xb0(%rsp)
  movzbl 0xb4(%rsp),%esi
  mov    %sil,-0x3a(%rax)
  movaps %xmm3,0xa0(%rsp)
  movzbl 0xa8(%rsp),%esi
  mov    %sil,-0x36(%rax)
  movaps %xmm3,0x90(%rsp)
  movzbl 0x9c(%rsp),%esi
  mov    %sil,-0x32(%rax)
  movd   %xmm2,%esi
  mov    %sil,-0x2e(%rax)
  movaps %xmm2,0x80(%rsp)
  movzbl 0x84(%rsp),%esi
  mov    %sil,-0x2a(%rax)
  movaps %xmm2,0x70(%rsp)
  movzbl 0x78(%rsp),%esi
  mov    %sil,-0x26(%rax)
  movaps %xmm2,0x60(%rsp)
  movzbl 0x6c(%rsp),%esi
  mov    %sil,-0x22(%rax)
  movd   %xmm1,%esi
  mov    %sil,-0x1e(%rax)
  movaps %xmm1,0x50(%rsp)
  movzbl 0x54(%rsp),%esi
  mov    %sil,-0x1a(%rax)
  movaps %xmm1,0x40(%rsp)
  movzbl 0x48(%rsp),%esi
  mov    %sil,-0x16(%rax)
  movaps %xmm1,0x30(%rsp)
  movzbl 0x3c(%rsp),%esi
  mov    %sil,-0x12(%rax)
  movd   %xmm0,%esi
  mov    %sil,-0xe(%rax)
  movaps %xmm0,0x20(%rsp)
  movzbl 0x24(%rsp),%esi
  mov    %sil,-0xa(%rax)
  movaps %xmm0,0x10(%rsp)
  movzbl 0x18(%rsp),%esi
  mov    %sil,-0x6(%rax)
  movaps %xmm0,(%rsp)
  movzbl 0xc(%rsp),%esi
  mov    %sil,-0x2(%rax)
  cmp    %rdi,%rax
  jne    L84
  mov    %ecx,%eax
  and    $0xfffffff0,%eax
  test   $0xf,%cl
  je     L89
L12:
  mov    %eax,%esi
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x1(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x2(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x3(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x4(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x5(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x6(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x7(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x8(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0x9(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0xa(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0xb(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0xc(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  lea    0xd(%rax),%esi
  cmp    %esi,%ecx
  jbe    L89
  lea    (%rdx,%rsi,4),%rsi
  add    $0xe,%eax
  movzwl 0x1(%rsi),%edi
  movzbl (%rsi),%r9d
  mov    %di,(%rsi)
  mov    %r9b,0x2(%rsi)
  cmp    %eax,%ecx
  jbe    L89
  lea    (%rdx,%rax,4),%rax
  movzwl 0x1(%rax),%edx
  movzbl (%rax),%ecx
  mov    %dx,(%rax)
  mov    %cl,0x2(%rax)
L89:
  mov    0x480(%rsp),%eax
L121:
  shr    $0x7,%eax
  mov    %eax,(%r8)
  mov    0x488(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L20
  add    $0x498,%rsp
  ret
L43:
  xor    %eax,%eax
  jmp    L12
L176:
  xor    %eax,%eax
  jmp    L222
L20:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void RandomFunc(unsigned int input[1], unsigned int output[1]) {
  unsigned int state[1];
  unsigned int local1;
  char copy11;
  char copy12;
  {
    state[0UL] = (input[0UL] + 914778474UL) ^ 3462201355U;
    local1 = 0UL;
    while (local1 < input[1UL]) {
      copy11 = *((char *)(&state[local1]) + 2);
      *((char *)(&state[local1]) + 2) = *((char *)(&state[local1]) + 3);
      *((char *)(&state[local1]) + 3) = copy11;
      local1++;
    }
    local1 = 0UL;
    while (local1 < input[1UL]) {
      copy12 = *((char *)(&state[local1]) + 1);
      *((char *)(&state[local1]) + 1) = *((char *)(&state[local1]) + 2);
      *((char *)(&state[local1]) + 2) = copy12;
      copy12 = *((char *)(&state[local1]) + 2);
      *((char *)(&state[local1]) + 2) = *((char *)(&state[local1]) + 0);
      *((char *)(&state[local1]) + 0) = copy12;
      local1++;
    }
    output[0UL] = state[0UL] >> 7U;
  }
}
```