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

```asm
<MakeAngularGrid_590>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbp
  movsd  D153(%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  D312(%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  D36(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D384(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D432(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D288(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D260(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D278(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D236(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D283(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D238(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D132(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D200(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D73(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D267(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D381(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D404(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D373(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D407(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D91(%rip),%xmm0
  mov    $0x3,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D131(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D184(%rip),%xmm0
  mov    $0x4,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D14(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D187(%rip),%xmm0
  mov    $0x4,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D84(%rip),%xmm2
  pxor   %xmm1,%xmm1
  movsd  D101(%rip),%xmm0
  mov    $0x4,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D251(%rip),%xmm2
  movsd  D400(%rip),%xmm1
  movsd  D139(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D273(%rip),%xmm2
  movsd  D338(%rip),%xmm1
  movsd  D336(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D121(%rip),%xmm2
  movsd  D105(%rip),%xmm1
  movsd  D430(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D253(%rip),%xmm2
  movsd  D20(%rip),%xmm1
  movsd  D388(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rdi
  shl    $0x5,%rdi
  add    %rbp,%rdi
  movsd  D353(%rip),%xmm2
  movsd  D347(%rip),%xmm1
  movsd  D342(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %eax,%ebx
  movslq %ebx,%rax
  shl    $0x5,%rax
  lea    0x0(%rbp,%rax,1),%rdi
  movsd  D5(%rip),%xmm2
  movsd  D268(%rip),%xmm1
  movsd  D266(%rip),%xmm0
  mov    $0x5,%esi
  call   <SphGenOh@plt>
  add    %ebx,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: data_label: D153
type_guessed: byte[8]
name: parse_data
arguments: data_label: D312
type_guessed: byte[8]
name: parse_data
arguments: data_label: D36
type_guessed: byte[8]
name: parse_data
arguments: data_label: D384
type_guessed: byte[8]
name: parse_data
arguments: data_label: D432
type_guessed: byte[8]
name: parse_data
arguments: data_label: D288
type_guessed: byte[8]
name: parse_data
arguments: data_label: D260
type_guessed: byte[8]
name: parse_data
arguments: data_label: D278
type_guessed: byte[8]
name: parse_data
arguments: data_label: D236
type_guessed: byte[8]
name: parse_data
arguments: data_label: D283
type_guessed: byte[8]
name: parse_data
arguments: data_label: D238
type_guessed: byte[8]
name: parse_data
arguments: data_label: D132
type_guessed: byte[8]
name: parse_data
arguments: data_label: D200
type_guessed: byte[8]
name: parse_data
arguments: data_label: D73
type_guessed: byte[8]
name: parse_data
arguments: data_label: D267
type_guessed: byte[8]
name: parse_data
arguments: data_label: D381
type_guessed: byte[8]
name: parse_data
arguments: data_label: D404
type_guessed: byte[8]
name: parse_data
arguments: data_label: D373
type_guessed: byte[8]
name: parse_data
arguments: data_label: D407
type_guessed: byte[8]
name: parse_data
arguments: data_label: D91
type_guessed: byte[8]
name: parse_data
arguments: data_label: D131
type_guessed: byte[8]
name: parse_data
arguments: data_label: D184
type_guessed: byte[8]
name: parse_data
arguments: data_label: D14
type_guessed: byte[8]
name: parse_data
arguments: data_label: D187
type_guessed: byte[8]
name: parse_data
arguments: data_label: D84
type_guessed: byte[8]
name: parse_data
arguments: data_label: D101
type_guessed: byte[8]
name: parse_data
arguments: data_label: D251
type_guessed: byte[8]
name: parse_data
arguments: data_label: D400
type_guessed: byte[8]
name: parse_data
arguments: data_label: D139
type_guessed: byte[8]
name: parse_data
arguments: data_label: D273
type_guessed: byte[8]
name: parse_data
arguments: data_label: D338
type_guessed: byte[8]
name: parse_data
arguments: data_label: D336
type_guessed: byte[8]
name: parse_data
arguments: data_label: D121
type_guessed: byte[8]
name: parse_data
arguments: data_label: D105
type_guessed: byte[8]
name: parse_data
arguments: data_label: D430
type_guessed: byte[8]
name: parse_data
arguments: data_label: D253
type_guessed: byte[8]
name: parse_data
arguments: data_label: D20
type_guessed: byte[8]
name: parse_data
arguments: data_label: D388
type_guessed: byte[8]
name: parse_data
arguments: data_label: D353
type_guessed: byte[8]
name: parse_data
arguments: data_label: D347
type_guessed: byte[8]
name: parse_data
arguments: data_label: D342
type_guessed: byte[8]
name: parse_data
arguments: data_label: D5
type_guessed: byte[8]
name: parse_data
arguments: data_label: D268
type_guessed: byte[8]
name: parse_data
arguments: data_label: D266
type_guessed: byte[8]

tool: {"D153": [0xe4,0x4b,0x5b,0x79,0xc0,0x48,0x34,0x3f]}

tool: {"D312": [0x4b,0x81,0x6a,0x8e,0x71,0x59,0x5e,0x3f]}

tool: {"D36": [0x52,0x7b,0x29,0xe5,0xdb,0xaa,0x5e,0x3f]}

tool: {"D384": [0x71,0x59,0xe7,0x45,0xf3,0x87,0xe6,0x3f]}

tool: {"D432": [0x5f,0xee,0xe2,0xd0,0x6c,0x74,0x5e,0x3f]}

tool: {"D288": [0xf4,0xe1,0x8f,0x68,0xe7,0xc8,0xe5,0x3f]}

tool: {"D260": [0xf7,0x08,0xec,0xcf,0xf8,0x57,0x5e,0x3f]}

tool: {"D278": [0xbe,0x4a,0xb4,0xf4,0x63,0x64,0xe4,0x3f]}

tool: {"D236": [0x88,0x37,0xbf,0x28,0xb0,0x41,0x5e,0x3f]}

tool: {"D283": [0x80,0x5c,0xe7,0x7c,0x63,0x24,0xe0,0x3f]}

tool: {"D238": [0x70,0xd6,0x37,0x34,0x39,0xcb,0x5d,0x3f]}

tool: {"D132": [0x03,0x58,0xc0,0xa6,0x1a,0xfb,0xda,0x3f]}

tool: {"D200": [0xfb,0x7f,0x0e,0xbf,0x34,0xaa,0x5c,0x3f]}

tool: {"D73": [0x56,0xc1,0x58,0xd2,0x14,0x3c,0xd5,0x3f]}

tool: {"D267": [0x42,0x0a,0xce,0xb5,0x12,0x7f,0x5a,0x3f]}

tool: {"D381": [0x9d,0xe0,0x1b,0x23,0x4e,0x86,0xce,0x3f]}

tool: {"D404": [0x86,0x90,0xc8,0x48,0x02,0xb0,0x56,0x3f]}

tool: {"D373": [0xfa,0xe5,0xa3,0x7b,0xf8,0xac,0xc2,0x3f]}

tool: {"D407": [0xd3,0xe4,0xab,0x26,0xea,0xfe,0x4f,0x3f]}

tool: {"D91": [0xd6,0xd4,0xe1,0x13,0xe2,0x34,0xaf,0x3f]}

tool: {"D131": [0xba,0x7a,0xa0,0xa6,0x7f,0x6d,0x5e,0x3f]}

tool: {"D184": [0xbc,0x30,0xba,0x0b,0xeb,0x92,0xe3,0x3f]}

tool: {"D14": [0xe7,0xe6,0x8b,0x29,0xef,0xef,0x5b,0x3f]}

tool: {"D187": [0x19,0xd2,0xed,0xeb,0xda,0x5f,0xd9,0x3f]}

tool: {"D84": [0xb9,0xc8,0x5e,0xc7,0xf1,0x4d,0x55,0x3f]}

tool: {"D101": [0xc1,0x9e,0x43,0x04,0xc4,0x13,0xc6,0x3f]}

tool: {"D251": [0x4e,0x77,0xd9,0xce,0x8a,0x31,0x5e,0x3f]}

tool: {"D400": [0x70,0xa3,0x11,0xfa,0x59,0x84,0xd6,0x3f]}

tool: {"D139": [0xa2,0xe2,0xbf,0x98,0xed,0xf3,0xe1,0x3f]}

tool: {"D273": [0x89,0xc9,0xd0,0x4a,0xe6,0x88,0x5d,0x3f]}

tool: {"D338": [0xcc,0x78,0xc9,0x42,0xb8,0xdc,0xd0,0x3f]}

tool: {"D336": [0x82,0xb0,0x16,0xba,0xef,0x59,0xde,0x3f]}

tool: {"D121": [0x7e,0xe2,0xa7,0x70,0xc0,0x4e,0x5e,0x3f]}

tool: {"D105": [0xd2,0x70,0xe5,0xc9,0xc4,0x40,0xc7,0x3f]}

tool: {"D430": [0xd6,0x57,0x0b,0x49,0x32,0x26,0xe3,0x3f]}

tool: {"D253": [0x8e,0x89,0x9d,0xf3,0xa2,0x14,0x5c,0x3f]}

tool: {"D20": [0xe3,0x8e,0xdd,0xa8,0xb3,0x06,0xc6,0x3f]}

tool: {"D388": [0x86,0xcb,0x59,0x7f,0x3b,0x43,0xd8,0x3f]}

tool: {"D353": [0x90,0x0d,0x27,0xe4,0x09,0x7b,0x59,0x3f]}

tool: {"D347": [0xb0,0x19,0xf5,0x5e,0x7c,0x06,0xb5,0x3f]}

tool: {"D342": [0xae,0xf9,0xfe,0x01,0x94,0xc8,0xd1,0x3f]}

tool: {"D5": [0xe2,0xce,0x51,0x87,0x23,0x87,0x5d,0x3f]}

tool: {"D268": [0x40,0x1c,0xd1,0x33,0xb8,0x09,0xb7,0x3f]}

tool: {"D266": [0xbc,0x0f,0x15,0xf0,0x7e,0x1b,0xe0,0x3f]}

assistant: ```c
int MakeAngularGrid_590(double (*pOut)[4]) {
  double a = 0, b = 0, v;
  int N = 0;
  v = 0.3095121295306187e-3;
  N += SphGenOh(&pOut[N][0], 0, a, b, v);
  v = 0.1852379698597489e-2;
  N += SphGenOh(&pOut[N][0], 2, a, b, v);
  a = 0.7040954938227469e+0;
  v = 0.1871790639277744e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6807744066455243e+0;
  v = 0.1858812585438317e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6372546939258752e+0;
  v = 0.1852028828296213e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.5044419707800358e+0;
  v = 0.1846715956151242e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.4215761784010967e+0;
  v = 0.1818471778162769e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.3317920736472123e+0;
  v = 0.1749564657281154e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.2384736701421887e+0;
  v = 0.1617210647254411e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.1459036449157763e+0;
  v = 0.1384737234851692e-2;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6095034115507196e-1;
  v = 0.9764331165051050e-3;
  N += SphGenOh(&pOut[N][0], 3, a, b, v);
  a = 0.6116843442009876e+0;
  v = 0.1857161196774078e-2;
  N += SphGenOh(&pOut[N][0], 4, a, b, v);
  a = 0.3964755348199858e+0;
  v = 0.1705153996395864e-2;
  N += SphGenOh(&pOut[N][0], 4, a, b, v);
  a = 0.1724782009907724e+0;
  v = 0.1300321685886048e-2;
  N += SphGenOh(&pOut[N][0], 4, a, b, v);
  a = 0.5610263808622060e+0;
  b = 0.3518280927733519e+0;
  v = 0.1842866472905286e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.4742392842551980e+0;
  b = 0.2634716655937950e+0;
  v = 0.1802658934377451e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.5984126497885380e+0;
  b = 0.1816640840360209e+0;
  v = 0.1849830560443660e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.3791035407695563e+0;
  b = 0.1720795225656878e+0;
  v = 0.1713904507106709e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.2778673190586244e+0;
  b = 0.8213021581932511e-1;
  v = 0.1555213603396808e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  a = 0.5033564271075117e+0;
  b = 0.8999205842074875e-1;
  v = 0.1802239128008525e-2;
  N += SphGenOh(&pOut[N][0], 5, a, b, v);
  return N;
}
```