user: Converte this assembly snippet into its equivalent C code:

```asm
<MakeAngularGrid_350>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbp
  movsd  D50(%rip),%xmm2
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  mov    $0x0,%esi
  call   <SphGenOh@plt>
  mov    %rax,%rbx
  movslq %eax,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D140(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  mov    $0x2,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D48(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D166(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D245(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D40(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D264(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D56(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D152(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D30(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D167(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D32(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D269(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D184(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D119(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D62(%rip),%xmm0
  mov    $0x4,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D101(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D75(%rip),%xmm0
  mov    $0x4,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D104(%rip),%xmm2
  movsd  D232(%rip),%xmm1
  movsd  D8(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D14(%rip),%xmm2
  movsd  D93(%rip),%xmm1
  movsd  D134(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rax
  shl    $0x5,%rax
  lea    0x0(%rbp,%rax,1),%rdi
  movsd  D242(%rip),%xmm2
  movsd  D191(%rip),%xmm1
  movsd  D59(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %ebx,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D50
data_type: byte[8]
name: retrieve_data
arguments: tag: D140
data_type: byte[8]
name: retrieve_data
arguments: tag: D48
data_type: byte[8]
name: retrieve_data
arguments: tag: D166
data_type: byte[8]
name: retrieve_data
arguments: tag: D245
data_type: byte[8]
name: retrieve_data
arguments: tag: D40
data_type: byte[8]
name: retrieve_data
arguments: tag: D264
data_type: byte[8]
name: retrieve_data
arguments: tag: D56
data_type: byte[8]
name: retrieve_data
arguments: tag: D152
data_type: byte[8]
name: retrieve_data
arguments: tag: D30
data_type: byte[8]
name: retrieve_data
arguments: tag: D167
data_type: byte[8]
name: retrieve_data
arguments: tag: D32
data_type: byte[8]
name: retrieve_data
arguments: tag: D269
data_type: byte[8]
name: retrieve_data
arguments: tag: D184
data_type: byte[8]
name: retrieve_data
arguments: tag: D119
data_type: byte[8]
name: retrieve_data
arguments: tag: D62
data_type: byte[8]
name: retrieve_data
arguments: tag: D101
data_type: byte[8]
name: retrieve_data
arguments: tag: D75
data_type: byte[8]
name: retrieve_data
arguments: tag: D104
data_type: byte[8]
name: retrieve_data
arguments: tag: D232
data_type: byte[8]
name: retrieve_data
arguments: tag: D8
data_type: byte[8]
name: retrieve_data
arguments: tag: D14
data_type: byte[8]
name: retrieve_data
arguments: tag: D93
data_type: byte[8]
name: retrieve_data
arguments: tag: D134
data_type: byte[8]
name: retrieve_data
arguments: tag: D242
data_type: byte[8]
name: retrieve_data
arguments: tag: D191
data_type: byte[8]
name: retrieve_data
arguments: tag: D59
data_type: byte[8]

tool: {"D50": [0x21,0x47,0x8c,0xb6,0xb5,0xa1,0x68,0x3f]}

tool: {"D140": [0xd1,0x7d,0xcb,0x4c,0xa1,0xfd,0x68,0x3f]}

tool: {"D48": [0x63,0xf8,0x76,0xcf,0x67,0x8f,0x5a,0x3f]}

tool: {"D166": [0x62,0xfb,0x8c,0x81,0xe5,0x9e,0xe6,0x3f]}

tool: {"D245": [0xf4,0xbc,0x88,0xb2,0x69,0x9f,0x68,0x3f]}

tool: {"D40": [0xfb,0xa5,0xcd,0xa6,0x9b,0xaf,0xde,0x3f]}

tool: {"D264": [0x59,0x41,0x1e,0xe3,0x90,0x80,0x68,0x3f]}

tool: {"D56": [0x62,0x9b,0x1b,0x01,0x24,0xac,0xc8,0x3f]}

tool: {"D152": [0x65,0xac,0x66,0xac,0x10,0x6e,0x68,0x3f]}

tool: {"D30": [0x44,0x1d,0xeb,0x67,0x59,0x2d,0xe6,0x3f]}

tool: {"D167": [0x4e,0x35,0x95,0xac,0x88,0x4b,0x66,0x3f]}

tool: {"D32": [0xb6,0x93,0x81,0x99,0xd7,0x17,0xd7,0x3f]}

tool: {"D269": [0xa1,0x6c,0x70,0x51,0xbd,0xd9,0x68,0x3f]}

tool: {"D184": [0xae,0xd4,0x36,0x53,0x8f,0xcb,0xe4,0x3f]}

tool: {"D119": [0xde,0x3e,0xf7,0x9e,0x20,0xa4,0x68,0x3f]}

tool: {"D62": [0x6b,0xeb,0xd6,0xcc,0xdf,0xbd,0xc8,0x3f]}

tool: {"D101": [0xae,0xbd,0xfc,0xf6,0xea,0x9b,0x67,0x3f]}

tool: {"D75": [0x92,0x52,0xbd,0x1a,0xbb,0x52,0xd8,0x3f]}

tool: {"D104": [0xa7,0xdd,0x2f,0x28,0x20,0x3c,0x68,0x3f]}

tool: {"D232": [0x92,0x43,0x89,0x31,0xf9,0x63,0xe9,0x3f]}

tool: {"D8": [0xbe,0x6e,0x35,0x1e,0xa3,0x8e,0xd2,0x3f]}

tool: {"D14": [0xa6,0x40,0x26,0xd7,0xfe,0xde,0x68,0x3f]}

tool: {"D93": [0x1f,0xd7,0xb2,0xf1,0xa1,0x7f,0xea,0x3f]}

tool: {"D134": [0x81,0xd1,0x66,0xf9,0x95,0xca,0xb8,0x3f]}

tool: {"D242": [0xd2,0x0b,0xd5,0x08,0x87,0x33,0x67,0x3f]}

tool: {"D191": [0x08,0xf5,0xe5,0xc5,0xf5,0x09,0xed,0x3f]}

tool: {"D59": [0x0a,0x7c,0x6b,0x74,0xcc,0x77,0xc7,0x3f]}

assistant: ```c
int MakeAngularGrid_350(double (*pOut)[4]) {
  double a = 0, b = 0, v;
  int N = 0;
  v = 0.3006796749453936e-2;
  N += SphGenOh(&pOut[N][0], 0, a, b, v);
  v = 0.3050627745650771e-2;
  N += SphGenOh(&pOut[N][0], 2, a, b, v);
  a = 0.7068965463912316e+0;
  v = 0.1621104600288991e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.4794682625712025e+0;
  v = 0.3005701484901752e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.1927533154878019e+0;
  v = 0.2990992529653774e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6930357961327123e+0;
  v = 0.2982170644107595e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.3608302115520091e+0;
  v = 0.2721564237310992e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6498486161496169e+0;
  v = 0.3033513795811141e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.1932945013230339e+0;
  v = 0.3007949555218533e-2;
  N += SphGenOh(&pOut[N][0], 4, a, b, v);
  a = 0.3800494919899303e+0;
  v = 0.2881964603055307e-2;
  N += SphGenOh(&pOut[N][0], 4, a, b, v);
  a = 0.2899558825499574e+0;
  b = 0.7934537856582316e+0;
  v = 0.2958357626535696e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.9684121455103957e-1;
  b = 0.8280801506686862e+0;
  v = 0.3036020026407088e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.1833434647041659e+0;
  b = 0.9074658265305127e+0;
  v = 0.2832187403926303e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  return N;
}
```