user: What is the c source code of the assembly code below:

```asm
<gen_path_pixels>:
  endbr64
  push   %rbp
  mov    $0x131f328,%edi
  lea    D50(%rip),%rbp
  push   %rbx
  mov    $0x100,%ebx
  sub    $0x28,%rsp
  call   <srandom@plt>
  mov    $0xc00,%esi
  lea    D112(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x3000,%esi
  lea    D4(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  cs nopw 0x0(%rax,%rax,1)
L15:
  xor    %eax,%eax
  call   <rand_double@plt>
  xor    %eax,%eax
  movsd  %xmm0,0x18(%rsp)
  call   <rand_double@plt>
  xor    %eax,%eax
  movsd  %xmm0,0x10(%rsp)
  call   <rand_double@plt>
  xor    %eax,%eax
  movsd  %xmm0,0x8(%rsp)
  call   <rand_double@plt>
  movsd  0x18(%rsp),%xmm3
  mov    %rbp,%rdi
  mov    $0x4,%eax
  movsd  0x10(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm1
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L15
  mov    $0x10,%ebx
  nopw   0x0(%rax,%rax,1)
L10:
  mov    D81(%rip),%rax
  pxor   %xmm1,%xmm1
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D81(%rip),%rax
  pxor   %xmm1,%xmm1
  movsd  %xmm0,0x18(%rsp)
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D81(%rip),%rax
  pxor   %xmm1,%xmm1
  movsd  %xmm0,0x10(%rsp)
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D81(%rip),%rax
  pxor   %xmm1,%xmm1
  movsd  %xmm0,0x8(%rsp)
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  movsd  0x8(%rsp),%xmm4
  mov    %rbp,%rdi
  mov    $0x4,%eax
  movsd  0x18(%rsp),%xmm3
  movsd  0x10(%rsp),%xmm2
  movapd %xmm4,%xmm1
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L10
  mov    $0x10,%ebx
  nopw   0x0(%rax,%rax,1)
L8:
  mov    D0(%rip),%rax
  movq   %rax,%xmm1
  mov    D115(%rip),%rax
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D0(%rip),%rax
  movsd  %xmm0,0x18(%rsp)
  movq   %rax,%xmm1
  mov    D115(%rip),%rax
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D0(%rip),%rax
  movsd  %xmm0,0x10(%rsp)
  movq   %rax,%xmm1
  mov    D115(%rip),%rax
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  mov    D0(%rip),%rax
  movsd  %xmm0,0x8(%rsp)
  movq   %rax,%xmm1
  mov    D115(%rip),%rax
  movq   %rax,%xmm0
  call   <rand_range_double@plt>
  movsd  0x8(%rsp),%xmm4
  mov    %rbp,%rdi
  mov    $0x4,%eax
  movsd  0x18(%rsp),%xmm3
  movsd  0x10(%rsp),%xmm2
  movapd %xmm4,%xmm1
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L8
  pxor   %xmm0,%xmm0
  lea    D180(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D177(%rip),%rdi
  call   <puts@plt>
  mov    $0x80,%esi
  lea    D204(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D20(%rip),%rdi
  call   <puts@plt>
  lea    D167(%rip),%rdi
  mov    $0x100,%esi
  xor    %eax,%eax
  call   <printf@plt>
  add    $0x28,%rsp
  lea    D12(%rip),%rdi
  pop    %rbx
  pop    %rbp
  jmp    10a0 <puts@plt>
```

tool_calls: name: disassemble_data
arguments: tag: D50
type_guessed: string
name: disassemble_data
arguments: tag: D112
type_guessed: string
name: disassemble_data
arguments: tag: D4
type_guessed: string
name: disassemble_data
arguments: tag: D81
type_guessed: f32[2]
name: disassemble_data
arguments: tag: D0
type_guessed: f64
name: disassemble_data
arguments: tag: D115
type_guessed: f64
name: disassemble_data
arguments: tag: D180
type_guessed: string
name: disassemble_data
arguments: tag: D177
type_guessed: string
name: disassemble_data
arguments: tag: D204
type_guessed: string
name: disassemble_data
arguments: tag: D20
type_guessed: string
name: disassemble_data
arguments: tag: D167
type_guessed: string
name: disassemble_data
arguments: tag: D12
type_guessed: string

tool: D50: %a, %a, %a, %a,


tool: D112: static const int babl_num_path_test_pixels = %d;



tool: D4: static const double babl_path_test_pixels[%d] = {


tool: {"D81": [0.0,-1.875]}

tool: D0: 2

tool: D115: 1

tool: D180: %a, /* The remaining values default to zero. */ 

tool: D177: };


tool: D204: static const int babl_num_conversion_test_pixels = %d;



tool: D20: static const double *babl_conversion_test_pixels = babl_path_test_pixels;


tool: D167: static const int babl_num_format_test_pixels = %d;



tool: D12: static const double *babl_format_test_pixels = babl_path_test_pixels;


assistant: ```c
void gen_path_pixels(void) {
  int i;
  srandom(20050728);
  printf("static const int babl_num_path_test_pixels = %d;\n\n", 3072);
  printf("static const double babl_path_test_pixels[%d] = {\n", 3072 * 4);
  for (i = 0; i < 256; i++) {
    printf("%a, %a, %a, %a,\n", rand_double(), rand_double(), rand_double(), rand_double());
  }
  for (i = 0; i < 16; i++) {
    printf("%a, %a, %a, %a,\n", rand_range_double(-1.0, 0.0), rand_range_double(-1.0, 0.0), rand_range_double(-1.0, 0.0), rand_range_double(-1.0, 0.0));
  }
  for (i = 0; i < 16; i++) {
    printf("%a, %a, %a, %a,\n", rand_range_double(1.0, 2.0), rand_range_double(1.0, 2.0), rand_range_double(1.0, 2.0), rand_range_double(1.0, 2.0));
  }
  printf("%a, /* The remaining values default to zero. */ ", 0.0);
  printf("};\n\n");
  printf("static const int babl_num_conversion_test_pixels = %d;\n\n", 128);
  printf("static const double *babl_conversion_test_pixels = babl_path_test_pixels;\n\n");
  printf("static const int babl_num_format_test_pixels = %d;\n\n", 256);
  printf("static const double *babl_format_test_pixels = babl_path_test_pixels;\n\n");
}
```