user: What would the C source look like for the assembly code provided here?

```asm
<crazy>:
  endbr64
  push   %rbx
  mov    %esi,%ecx
  mov    %edi,%edi
  mov    %rcx,%r10
  mov    %rdi,%r9
  sub    $0x30,%rsp
  movdqa D9(%rip),%xmm0
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  mov    $0xaaaaaaab,%eax
  movl   $0x1,0x20(%rsp)
  imul   %rax,%rcx
  movaps %xmm0,(%rsp)
  movdqa D0(%rip),%xmm0
  imul   %rax,%rdi
  movaps %xmm0,0x10(%rsp)
  shr    $0x21,%rcx
  mov    %rcx,%rdx
  mov    %ecx,%ecx
  shr    $0x21,%rdi
  imul   %rax,%rcx
  shr    $0x21,%rcx
  mov    %rcx,%rsi
  lea    (%rcx,%rcx,2),%r8d
  mov    %edx,%ecx
  sub    %r8d,%ecx
  lea    (%rcx,%rcx,2),%r11d
  mov    %edi,%ecx
  imul   %rax,%rcx
  shr    $0x21,%rcx
  mov    %rcx,%r8
  lea    (%rcx,%rcx,2),%ebx
  mov    %edi,%ecx
  sub    %ebx,%ecx
  lea    (%rdi,%rdi,2),%edi
  add    %r11d,%ecx
  lea    (%rdx,%rdx,2),%r11d
  mov    %r10d,%edx
  sub    %r11d,%edx
  mov    %ecx,%ecx
  lea    (%rdx,%rdx,2),%r10d
  mov    %r9d,%edx
  mov    (%rsp,%rcx,4),%ecx
  sub    %edi,%edx
  add    %r10d,%edx
  lea    (%rcx,%rcx,2),%ecx
  mov    %edx,%edx
  mov    (%rsp,%rdx,4),%edi
  mov    %esi,%edx
  imul   %rax,%rdx
  add    %ecx,%edi
  mov    %r8d,%ecx
  shr    $0x21,%rdx
  lea    (%rdx,%rdx,2),%r9d
  sub    %r9d,%esi
  lea    (%rsi,%rsi,2),%r9d
  mov    %r8d,%esi
  imul   %rax,%rsi
  shr    $0x21,%rsi
  lea    (%rsi,%rsi,2),%r10d
  sub    %r10d,%ecx
  add    %r9d,%ecx
  mov    %ecx,%ecx
  mov    (%rsp,%rcx,4),%ecx
  lea    (%rcx,%rcx,8),%r8d
  mov    %edx,%ecx
  imul   %rax,%rcx
  add    %edi,%r8d
  shr    $0x21,%rcx
  mov    %rcx,%rdi
  lea    (%rcx,%rcx,2),%ecx
  sub    %ecx,%edx
  mov    %esi,%ecx
  imul   %rax,%rcx
  lea    (%rdx,%rdx,2),%r10d
  shr    $0x21,%rcx
  mov    %rcx,%r9
  lea    (%rcx,%rcx,2),%ecx
  sub    %ecx,%esi
  mov    %r9d,%ecx
  lea    (%r10,%rsi,1),%edx
  mov    (%rsp,%rdx,4),%edx
  lea    (%rdx,%rdx,2),%edx
  lea    (%rdx,%rdx,8),%r10d
  mov    %edi,%edx
  add    %r8d,%r10d
  imul   %rax,%rdx
  shr    $0x21,%rdx
  mov    %rdx,%rsi
  lea    (%rdx,%rdx,2),%edx
  sub    %edx,%edi
  mov    %r9d,%edx
  imul   %rax,%rdx
  lea    (%rdi,%rdi,2),%edi
  shr    $0x21,%rdx
  mov    %rdx,%r8
  lea    (%rdx,%rdx,2),%edx
  sub    %edx,%ecx
  lea    (%rdi,%rcx,1),%edx
  mov    %esi,%ecx
  imul   %rax,%rcx
  mov    (%rsp,%rdx,4),%edx
  lea    (%rdx,%rdx,8),%edx
  shr    $0x21,%rcx
  lea    (%rdx,%rdx,8),%r9d
  mov    %r8d,%edx
  lea    (%rcx,%rcx,2),%edi
  add    %r10d,%r9d
  sub    %edi,%esi
  lea    (%rsi,%rsi,2),%r10d
  mov    %r8d,%esi
  imul   %rax,%rsi
  shr    $0x21,%rsi
  mov    %rsi,%rdi
  lea    (%rsi,%rsi,2),%esi
  sub    %esi,%edx
  add    %r10d,%edx
  mov    %edx,%edx
  imul   $0xf3,(%rsp,%rdx,4),%r10d
  mov    %ecx,%edx
  imul   %rax,%rdx
  add    %r9d,%r10d
  shr    $0x21,%rdx
  lea    (%rdx,%rdx,2),%esi
  sub    %esi,%ecx
  mov    %edi,%esi
  imul   %rax,%rsi
  lea    (%rcx,%rcx,2),%r9d
  shr    $0x21,%rsi
  mov    %rsi,%r8
  lea    (%rsi,%rsi,2),%esi
  sub    %esi,%edi
  lea    (%r9,%rdi,1),%ecx
  imul   $0x2d9,(%rsp,%rcx,4),%r9d
  mov    %edx,%ecx
  imul   %rax,%rcx
  add    %r10d,%r9d
  shr    $0x21,%rcx
  lea    (%rcx,%rcx,2),%esi
  sub    %esi,%edx
  mov    %r8d,%esi
  imul   %rax,%rsi
  lea    (%rdx,%rdx,2),%r10d
  mov    %r8d,%edx
  shr    $0x21,%rsi
  mov    %rsi,%rdi
  lea    (%rsi,%rsi,2),%esi
  sub    %esi,%edx
  add    %r10d,%edx
  mov    %edx,%edx
  imul   $0x88b,(%rsp,%rdx,4),%r8d
  mov    %ecx,%edx
  add    %r9d,%r8d
  imul   %rax,%rdx
  shr    $0x21,%rdx
  lea    (%rdx,%rdx,2),%esi
  sub    %esi,%ecx
  mov    %edi,%esi
  imul   %rax,%rsi
  lea    (%rcx,%rcx,2),%r9d
  shr    $0x21,%rsi
  lea    (%rsi,%rsi,2),%r10d
  sub    %r10d,%edi
  lea    (%r9,%rdi,1),%ecx
  imul   $0x19a1,(%rsp,%rcx,4),%edi
  mov    %edx,%ecx
  imul   %rax,%rcx
  add    %r8d,%edi
  shr    $0x21,%rcx
  lea    (%rcx,%rcx,2),%ecx
  sub    %ecx,%edx
  lea    (%rdx,%rdx,2),%ecx
  mov    %esi,%edx
  imul   %rax,%rdx
  mov    %esi,%eax
  shr    $0x21,%rdx
  lea    (%rdx,%rdx,2),%edx
  sub    %edx,%eax
  add    %ecx,%eax
  mov    %eax,%eax
  imul   $0x4ce3,(%rsp,%rax,4),%eax
  add    %edi,%eax
  mov    0x28(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L7
  add    $0x30,%rsp
  pop    %rbx
  ret
L7:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D9
type: byte[16]
name: unpack_data
arguments: label: D0
type: byte[16]

tool: {"D9": [0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

tool: {"D0": [0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

assistant: ```c
unsigned int crazy(unsigned int a, unsigned int d) {
  unsigned int crz[] = {1, 0, 0, 1, 0, 2, 2, 2, 1};
  int position = 0;
  unsigned int output = 0;
  while (position < 10) {
    unsigned int i = a % 3;
    unsigned int j = d % 3;
    unsigned int out = crz[i + 3 * j];
    unsigned int multiple = 1;
    int k;
    for (k = 0; k < position; k++)
      multiple *= 3;
    output += multiple * out;
    a /= 3;
    d /= 3;
    position++;
  }
  return output;
}
```