user: Please show me the C implementation that matches the assembly code listed below:

```asm
<IEC_Scale>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movss  %xmm0,-0x14(%rbp)
  movss  D188(%rip),%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  D176(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L7
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L7:
  movss  D48(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L3
  movss  -0x14(%rbp),%xmm1
  movss  D110(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D157(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L3:
  movss  D193(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L126
  movss  -0x14(%rbp),%xmm1
  movss  D70(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D197(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  D53(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L126:
  movss  D164(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L42
  movss  -0x14(%rbp),%xmm1
  movss  D66(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D250(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  D127(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L42:
  movss  D148(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L9
  movss  -0x14(%rbp),%xmm1
  movss  D28(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D122(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  D149(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L9:
  movss  D59(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L129
  movss  -0x14(%rbp),%xmm1
  movss  D199(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D249(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  D10(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L72
L129:
  movss  D80(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  ja     L19
  movss  -0x14(%rbp),%xmm0
  comiss D187(%rip),%xmm0
  jbe    L72
L19:
  movss  -0x14(%rbp),%xmm1
  movss  D75(%rip),%xmm0
  addss  %xmm0,%xmm1
  movss  D53(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  D52(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
L72:
  movss  -0x4(%rbp),%xmm0
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: label: D188
datatype: byte[4]
name: retrieve_data
arguments: label: D176
datatype: byte[4]
name: retrieve_data
arguments: label: D48
datatype: byte[4]
name: retrieve_data
arguments: label: D110
datatype: byte[4]
name: retrieve_data
arguments: label: D157
datatype: byte[4]
name: retrieve_data
arguments: label: D193
datatype: byte[4]
name: retrieve_data
arguments: label: D70
datatype: byte[4]
name: retrieve_data
arguments: label: D197
datatype: byte[4]
name: retrieve_data
arguments: label: D53
datatype: byte[4]
name: retrieve_data
arguments: label: D164
datatype: byte[4]
name: retrieve_data
arguments: label: D66
datatype: byte[4]
name: retrieve_data
arguments: label: D250
datatype: byte[4]
name: retrieve_data
arguments: label: D127
datatype: byte[4]
name: retrieve_data
arguments: label: D148
datatype: byte[4]
name: retrieve_data
arguments: label: D28
datatype: f32
name: retrieve_data
arguments: label: D122
datatype: byte[4]
name: retrieve_data
arguments: label: D149
datatype: byte[4]
name: retrieve_data
arguments: label: D59
datatype: byte[4]
name: retrieve_data
arguments: label: D199
datatype: byte[4]
name: retrieve_data
arguments: label: D249
datatype: byte[4]
name: retrieve_data
arguments: label: D10
datatype: byte[4]
name: retrieve_data
arguments: label: D80
datatype: byte[4]
name: retrieve_data
arguments: label: D187
datatype: byte[4]
name: retrieve_data
arguments: label: D75
datatype: byte[4]
name: retrieve_data
arguments: label: D52
datatype: byte[4]

tool: {"D188": [0x00,0x00,0x80,0x3f]}

tool: {"D176": [0x00,0x00,0x8c,0xc2]}

tool: {"D48": [0x00,0x00,0x70,0xc2]}

tool: {"D110": [0x00,0x00,0x8c,0x42]}

tool: {"D157": [0x0a,0xd7,0x23,0x3b]}

tool: {"D193": [0x00,0x00,0x48,0xc2]}

tool: {"D70": [0x00,0x00,0x70,0x42]}

tool: {"D197": [0x0a,0xd7,0xa3,0x3b]}

tool: {"D53": [0xcd,0xcc,0xcc,0x3c]}

tool: {"D164": [0x00,0x00,0x20,0xc2]}

tool: {"D66": [0x00,0x00,0x48,0x42]}

tool: {"D250": [0x8f,0xc2,0xf5,0x3b]}

tool: {"D127": [0x9a,0x99,0x99,0x3d]}

tool: {"D148": [0x00,0x00,0xf0,0xc1]}

tool: D28: 40

tool: {"D122": [0x8f,0xc2,0x75,0x3c]}

tool: {"D149": [0x9a,0x99,0x19,0x3e]}

tool: {"D59": [0x00,0x00,0xa0,0xc1]}

tool: {"D199": [0x00,0x00,0xf0,0x41]}

tool: {"D249": [0x0a,0xd7,0xa3,0x3c]}

tool: {"D10": [0x9a,0x99,0x99,0x3e]}

tool: {"D80": [0x6f,0x12,0x83,0xba]}

tool: {"D187": [0x6f,0x12,0x83,0x3a]}

tool: {"D75": [0x00,0x00,0xa0,0x41]}

tool: {"D52": [0x00,0x00,0x00,0x3f]}

assistant: ```c
float IEC_Scale(float dB) {
  float fScale = 1.0f;
  if (dB < -70.0f)
    fScale = 0.0f;
  else if (dB < -60.0f)
    fScale = (dB + 70.0f) * 0.0025f;
  else if (dB < -50.0f)
    fScale = (dB + 60.0f) * 0.005f + 0.025f;
  else if (dB < -40.0)
    fScale = (dB + 50.0f) * 0.0075f + 0.075f;
  else if (dB < -30.0f)
    fScale = (dB + 40.0f) * 0.015f + 0.15f;
  else if (dB < -20.0f)
    fScale = (dB + 30.0f) * 0.02f + 0.3f;
  else if (dB < -0.001f || dB > 0.001f)
    fScale = (dB + 20.0f) * 0.025f + 0.5f;
  return fScale;
}
```