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

```asm
<gain_aster>:
  endbr64
  test   %esi,%esi
  jne    L150
  movsd  D118(%rip),%xmm0
  cmp    $0x1,%edi
  je     L328
  movsd  D110(%rip),%xmm0
  cmp    $0x2,%edi
  jne    L385
L328:
  ret
  nopw   0x0(%rax,%rax,1)
L150:
  cmp    $0x1,%esi
  jne    L200
  movsd  D132(%rip),%xmm0
  test   %edi,%edi
  je     L328
  movsd  D393(%rip),%xmm0
  cmp    $0x1,%edi
  je     L328
  cmp    $0x2,%edi
  jne    L381
L388:
  movsd  D262(%rip),%xmm0
  ret
L200:
  cmp    $0x2,%esi
  jne    L69
  movsd  D236(%rip),%xmm0
  test   %edi,%edi
  je     L328
  movsd  D134(%rip),%xmm0
  cmp    $0x1,%edi
  je     L328
  cmp    $0x2,%edi
  jne    L113
L360:
  movsd  D136(%rip),%xmm0
  ret
L69:
  cmp    $0x3,%esi
  jne    L58
  movsd  D312(%rip),%xmm0
  cmp    $0x4,%edi
  je     L328
  cmp    $0x5,%edi
  jne    L6
  movsd  D5(%rip),%xmm0
  ret
  nopl   0x0(%rax)
L385:
  cmp    $0x3,%edi
  je     L328
  cmp    $0x4,%edi
  jne    L209
  movsd  D348(%rip),%xmm0
  ret
  nop
L6:
  cmp    $0x6,%edi
  jne    L235
  movsd  D33(%rip),%xmm0
  ret
L209:
  cmp    $0x5,%edi
  jne    L322
  movsd  D282(%rip),%xmm0
  ret
L381:
  cmp    $0x3,%edi
  je     L388
  cmp    $0x4,%edi
  jne    L294
  movsd  D350(%rip),%xmm0
  ret
L113:
  cmp    $0x3,%edi
  je     L360
  cmp    $0x4,%edi
  jne    L364
  movsd  D312(%rip),%xmm0
  ret
L235:
  cmp    $0x7,%edi
  jne    L202
  movsd  D376(%rip),%xmm0
  ret
L202:
  cmp    $0x8,%edi
  jne    L19
  movsd  D139(%rip),%xmm0
  ret
L19:
  cmp    $0x9,%edi
  jne    L328
  movsd  D342(%rip),%xmm0
  ret
L322:
  movsd  D3(%rip),%xmm0
  cmp    $0x6,%edi
  jne    L62
  movsd  D162(%rip),%xmm0
  ret
L62:
  cmp    $0x7,%edi
  jne    L49
  movsd  D197(%rip),%xmm0
  ret
L49:
  cmp    $0x8,%edi
  jne    L164
  movsd  D298(%rip),%xmm0
  ret
L164:
  cmp    $0x9,%edi
  jne    L214
  movsd  D10(%rip),%xmm0
  ret
L58:
  ret
L214:
  ret
L364:
  movsd  D236(%rip),%xmm0
  cmp    $0x5,%edi
  jne    L324
  movsd  D261(%rip),%xmm0
  ret
L324:
  cmp    $0x6,%edi
  jne    L14
  movsd  D321(%rip),%xmm0
  ret
L14:
  cmp    $0x7,%edi
  jne    L2
  movsd  D156(%rip),%xmm0
  ret
L2:
  cmp    $0x8,%edi
  jne    L42
  movsd  D164(%rip),%xmm0
  ret
L42:
  cmp    $0x9,%edi
  jne    L232
  movsd  D47(%rip),%xmm0
  ret
L294:
  movsd  D132(%rip),%xmm0
  cmp    $0x5,%edi
  jne    L88
  movsd  D347(%rip),%xmm0
  ret
L88:
  cmp    $0x6,%edi
  jne    L160
  movsd  D279(%rip),%xmm0
  ret
L160:
  cmp    $0x7,%edi
  jne    L41
  movsd  D266(%rip),%xmm0
  ret
L41:
  cmp    $0x8,%edi
  jne    L155
  movsd  D205(%rip),%xmm0
  ret
L155:
  cmp    $0x9,%edi
  jne    L105
  movsd  D247(%rip),%xmm0
  ret
L105:
  cmp    $0xa,%edi
  jne    L20
  movsd  D84(%rip),%xmm0
  ret
L20:
  cmp    $0xb,%edi
  jne    L437
  movsd  D244(%rip),%xmm0
  ret
L437:
  cmp    $0xc,%edi
  jne    L355
  movsd  D271(%rip),%xmm0
  ret
L355:
  cmp    $0xd,%edi
  jne    L67
  movsd  D191(%rip),%xmm0
  ret
L67:
  cmp    $0xe,%edi
  jne    L365
  movsd  D345(%rip),%xmm0
  ret
L232:
  ret
L365:
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D118
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D110
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D132
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D393
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D262
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D236
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D134
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D136
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D312
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D5
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D348
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D33
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D282
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D350
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D376
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D139
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D342
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D3
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D162
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D197
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D298
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D10
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D261
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D321
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D156
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D164
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D47
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D347
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D279
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D266
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D205
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D247
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D84
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D244
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D271
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D191
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D345
type_guessed: f64

tool: D118: 0.708

tool: D110: 0.423

tool: D132: 1.688

tool: D393: 1.415

tool: D262: 0.862

tool: D236: 2.25

tool: D134: 1.89

tool: D136: 1.15

tool: D312: 0.29

tool: D5: 0.409

tool: D348: 0.1087

tool: D33: 0.39

tool: D282: 0.0348

tool: D350: 0.2174

tool: D376: 0.332

tool: D139: 0.245

tool: D342: 0.265

tool: D3: 0.676

tool: D162: 0.0313

tool: D197: 0.0299

tool: D298: 0.0209

tool: D10: 0.0159

tool: D261: 0.0925

tool: D321: 0.083

tool: D156: 0.0795

tool: D164: 0.0556

tool: D47: 0.0424

tool: D347: 0.0696

tool: D279: 0.0625

tool: D266: 0.0597

tool: D205: 0.0417

tool: D247: 0.0318

tool: D84: 0.006822

tool: D244: 0.00678

tool: D271: 0.00659

tool: D191: 0.005693

tool: D345: 0.005225

assistant: ```c
double gain_aster(int band_number, int gain_code) {
  double result;
  if (gain_code == 0) {
    if (band_number == 0)
      result = 0.676;
    if (band_number == 1)
      result = 0.708;
    if (band_number == 2)
      result = 0.423;
    if (band_number == 3)
      result = 0.423;
    if (band_number == 4)
      result = 0.1087;
    if (band_number == 5)
      result = 0.0348;
    if (band_number == 6)
      result = 0.0313;
    if (band_number == 7)
      result = 0.0299;
    if (band_number == 8)
      result = 0.0209;
    if (band_number == 9)
      result = 0.0159;
  }
  if (gain_code == 1) {
    if (band_number == 0)
      result = 1.688;
    if (band_number == 1)
      result = 1.415;
    if (band_number == 2)
      result = 0.862;
    if (band_number == 3)
      result = 0.862;
    if (band_number == 4)
      result = 0.2174;
    if (band_number == 5)
      result = 0.0696;
    if (band_number == 6)
      result = 0.0625;
    if (band_number == 7)
      result = 0.0597;
    if (band_number == 8)
      result = 0.0417;
    if (band_number == 9)
      result = 0.0318;
    if (band_number == 10)
      result = 0.006822;
    if (band_number == 11)
      result = 0.006780;
    if (band_number == 12)
      result = 0.006590;
    if (band_number == 13)
      result = 0.005693;
    if (band_number == 14)
      result = 0.005225;
  }
  if (gain_code == 2) {
    if (band_number == 0)
      result = 2.25;
    if (band_number == 1)
      result = 1.89;
    if (band_number == 2)
      result = 1.15;
    if (band_number == 3)
      result = 1.15;
    if (band_number == 4)
      result = 0.290;
    if (band_number == 5)
      result = 0.0925;
    if (band_number == 6)
      result = 0.0830;
    if (band_number == 7)
      result = 0.0795;
    if (band_number == 8)
      result = 0.0556;
    if (band_number == 9)
      result = 0.0424;
  }
  if (gain_code == 3) {
    if (band_number == 4)
      result = 0.290;
    if (band_number == 5)
      result = 0.409;
    if (band_number == 6)
      result = 0.390;
    if (band_number == 7)
      result = 0.332;
    if (band_number == 8)
      result = 0.245;
    if (band_number == 9)
      result = 0.265;
  }
  return result;
}
```