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

```asm
<gain_aster>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  cmpl   $0x0,-0x18(%rbp)
  jne    L205
  cmpl   $0x0,-0x14(%rbp)
  jne    L388
  movsd  D85(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L388:
  cmpl   $0x1,-0x14(%rbp)
  jne    L174
  movsd  D353(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L174:
  cmpl   $0x2,-0x14(%rbp)
  jne    L283
  movsd  D31(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L283:
  cmpl   $0x3,-0x14(%rbp)
  jne    L304
  movsd  D31(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L304:
  cmpl   $0x4,-0x14(%rbp)
  jne    L165
  movsd  D281(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L165:
  cmpl   $0x5,-0x14(%rbp)
  jne    L420
  movsd  D324(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L420:
  cmpl   $0x6,-0x14(%rbp)
  jne    L241
  movsd  D245(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L241:
  cmpl   $0x7,-0x14(%rbp)
  jne    L323
  movsd  D127(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L323:
  cmpl   $0x8,-0x14(%rbp)
  jne    L98
  movsd  D358(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L98:
  cmpl   $0x9,-0x14(%rbp)
  jne    L205
  movsd  D354(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L205:
  cmpl   $0x1,-0x18(%rbp)
  jne    L442
  cmpl   $0x0,-0x14(%rbp)
  jne    L160
  movsd  D387(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L160:
  cmpl   $0x1,-0x14(%rbp)
  jne    L369
  movsd  D49(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L369:
  cmpl   $0x2,-0x14(%rbp)
  jne    L169
  movsd  D173(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L169:
  cmpl   $0x3,-0x14(%rbp)
  jne    L357
  movsd  D173(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L357:
  cmpl   $0x4,-0x14(%rbp)
  jne    L383
  movsd  D205(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L383:
  cmpl   $0x5,-0x14(%rbp)
  jne    L166
  movsd  D161(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L166:
  cmpl   $0x6,-0x14(%rbp)
  jne    L182
  movsd  D333(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L182:
  cmpl   $0x7,-0x14(%rbp)
  jne    L156
  movsd  D234(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L156:
  cmpl   $0x8,-0x14(%rbp)
  jne    L289
  movsd  D187(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L289:
  cmpl   $0x9,-0x14(%rbp)
  jne    L276
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L276:
  cmpl   $0xa,-0x14(%rbp)
  jne    L303
  movsd  D186(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L303:
  cmpl   $0xb,-0x14(%rbp)
  jne    L57
  movsd  D341(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L57:
  cmpl   $0xc,-0x14(%rbp)
  jne    L64
  movsd  D374(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L64:
  cmpl   $0xd,-0x14(%rbp)
  jne    L353
  movsd  D274(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L353:
  cmpl   $0xe,-0x14(%rbp)
  jne    L442
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L442:
  cmpl   $0x2,-0x18(%rbp)
  jne    L14
  cmpl   $0x0,-0x14(%rbp)
  jne    L355
  movsd  D167(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L355:
  cmpl   $0x1,-0x14(%rbp)
  jne    L88
  movsd  D357(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L88:
  cmpl   $0x2,-0x14(%rbp)
  jne    L266
  movsd  D311(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L266:
  cmpl   $0x3,-0x14(%rbp)
  jne    L444
  movsd  D311(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L444:
  cmpl   $0x4,-0x14(%rbp)
  jne    L277
  movsd  D51(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L277:
  cmpl   $0x5,-0x14(%rbp)
  jne    L231
  movsd  D225(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L231:
  cmpl   $0x6,-0x14(%rbp)
  jne    L35
  movsd  D156(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L35:
  cmpl   $0x7,-0x14(%rbp)
  jne    L104
  movsd  D290(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L104:
  cmpl   $0x8,-0x14(%rbp)
  jne    L125
  movsd  D346(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L125:
  cmpl   $0x9,-0x14(%rbp)
  jne    L14
  movsd  D170(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L14:
  cmpl   $0x3,-0x18(%rbp)
  jne    L207
  cmpl   $0x4,-0x14(%rbp)
  jne    L401
  movsd  D51(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L401:
  cmpl   $0x5,-0x14(%rbp)
  jne    L269
  movsd  D0(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L269:
  cmpl   $0x6,-0x14(%rbp)
  jne    L6
  movsd  D318(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L6:
  cmpl   $0x7,-0x14(%rbp)
  jne    L151
  movsd  D406(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L151:
  cmpl   $0x8,-0x14(%rbp)
  jne    L443
  movsd  D321(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L443:
  cmpl   $0x9,-0x14(%rbp)
  jne    L207
  movsd  D367(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
L207:
  movsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_label: D85
type_guessed: f64
name: read_data
arguments: data_label: D353
type_guessed: f64
name: read_data
arguments: data_label: D31
type_guessed: f64
name: read_data
arguments: data_label: D281
type_guessed: f64
name: read_data
arguments: data_label: D324
type_guessed: f64
name: read_data
arguments: data_label: D245
type_guessed: f64
name: read_data
arguments: data_label: D127
type_guessed: f64
name: read_data
arguments: data_label: D358
type_guessed: f64
name: read_data
arguments: data_label: D354
type_guessed: f64
name: read_data
arguments: data_label: D387
type_guessed: f64
name: read_data
arguments: data_label: D49
type_guessed: f64
name: read_data
arguments: data_label: D173
type_guessed: f64
name: read_data
arguments: data_label: D205
type_guessed: f64
name: read_data
arguments: data_label: D161
type_guessed: f64
name: read_data
arguments: data_label: D333
type_guessed: f64
name: read_data
arguments: data_label: D234
type_guessed: f64
name: read_data
arguments: data_label: D187
type_guessed: f64
name: read_data
arguments: data_label: D129
type_guessed: f64
name: read_data
arguments: data_label: D186
type_guessed: f64
name: read_data
arguments: data_label: D341
type_guessed: f64
name: read_data
arguments: data_label: D374
type_guessed: f64
name: read_data
arguments: data_label: D274
type_guessed: f64
name: read_data
arguments: data_label: D10
type_guessed: f64
name: read_data
arguments: data_label: D167
type_guessed: f64
name: read_data
arguments: data_label: D357
type_guessed: f64
name: read_data
arguments: data_label: D311
type_guessed: f64
name: read_data
arguments: data_label: D51
type_guessed: f64
name: read_data
arguments: data_label: D225
type_guessed: f64
name: read_data
arguments: data_label: D156
type_guessed: f64
name: read_data
arguments: data_label: D290
type_guessed: f64
name: read_data
arguments: data_label: D346
type_guessed: f64
name: read_data
arguments: data_label: D170
type_guessed: f64
name: read_data
arguments: data_label: D0
type_guessed: f64
name: read_data
arguments: data_label: D318
type_guessed: f64
name: read_data
arguments: data_label: D406
type_guessed: f64
name: read_data
arguments: data_label: D321
type_guessed: f64
name: read_data
arguments: data_label: D367
type_guessed: f64

tool: D85: 0.676

tool: D353: 0.708

tool: D31: 0.423

tool: D281: 0.1087

tool: D324: 0.0348

tool: D245: 0.0313

tool: D127: 0.0299

tool: D358: 0.0209

tool: D354: 0.0159

tool: D387: 1.688

tool: D49: 1.415

tool: D173: 0.862

tool: D205: 0.2174

tool: D161: 0.0696

tool: D333: 0.0625

tool: D234: 0.0597

tool: D187: 0.0417

tool: D129: 0.0318

tool: D186: 0.006822

tool: D341: 0.00678

tool: D374: 0.00659

tool: D274: 0.005693

tool: D10: 0.005225

tool: D167: 2.25

tool: D357: 1.89

tool: D311: 1.15

tool: D51: 0.29

tool: D225: 0.0925

tool: D156: 0.083

tool: D290: 0.0795

tool: D346: 0.0556

tool: D170: 0.0424

tool: D0: 0.409

tool: D318: 0.39

tool: D406: 0.332

tool: D321: 0.245

tool: D367: 0.265

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;
}
```