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

```asm
<_atan2f>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movss  %xmm0,-0x24(%rbp)
  movss  %xmm1,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  ucomiss -0x28(%rbp),%xmm0
  jp     L147
  pxor   %xmm0,%xmm0
  ucomiss -0x28(%rbp),%xmm0
  jne    L147
  pxor   %xmm0,%xmm0
  ucomiss -0x24(%rbp),%xmm0
  jp     L133
  pxor   %xmm0,%xmm0
  ucomiss -0x24(%rbp),%xmm0
  jne    L133
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x8(%rbp),%xmm0
  jmp    L91
L133:
  movss  D186(%rip),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x24(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L181
  movss  -0x8(%rbp),%xmm0
  jmp    L91
L181:
  pxor   %xmm0,%xmm0
  comiss -0x24(%rbp),%xmm0
  jbe    L147
  movss  -0x8(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x8(%rbp),%xmm0
  jmp    L91
L147:
  movl   $0x0,-0x4(%rbp)
  movss  -0x24(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x28(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  pxor   %xmm0,%xmm0
  comiss -0x10(%rbp),%xmm0
  jbe    L108
  movss  -0x10(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
L108:
  pxor   %xmm0,%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L38
  movss  -0xc(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
L38:
  movss  -0x10(%rbp),%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L155
  movss  -0xc(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movl   $0x2,-0x4(%rbp)
L155:
  movss  -0x10(%rbp),%xmm0
  divss  -0xc(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x18(%rbp),%xmm0
  comiss D89(%rip),%xmm0
  jbe    L52
  movss  -0x18(%rbp),%xmm1
  movss  D59(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  D54(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  D54(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x18(%rbp),%xmm1
  movss  D180(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x10(%rbp),%xmm0
  divss  -0xc(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  addl   $0x1,-0x4(%rbp)
L52:
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  pxor   %xmm0,%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L110
  movss  -0x14(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
L110:
  movss  D155(%rip),%xmm0
  comiss -0x14(%rbp),%xmm0
  jbe    L78
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  jmp    L37
L78:
  movss  -0x18(%rbp),%xmm0
  mulss  %xmm0,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D83(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  D33(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D179(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0xc(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0xc(%rbp),%xmm1
  movss  D106(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x10(%rbp),%xmm0
  divss  -0xc(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x8(%rbp),%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x8(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
L37:
  cmpl   $0x1,-0x4(%rbp)
  jle    L100
  movss  -0x8(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
L100:
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  lea    D170(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  -0x8(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
  pxor   %xmm0,%xmm0
  comiss -0x28(%rbp),%xmm0
  jbe    L68
  movss  D96(%rip),%xmm0
  subss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
L68:
  pxor   %xmm0,%xmm0
  comiss -0x24(%rbp),%xmm0
  jbe    L113
  movss  -0x8(%rbp),%xmm0
  movss  D57(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
L113:
  movss  -0x8(%rbp),%xmm0
L91:
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: label: D186
data_type: f32
name: disassemble_data
arguments: label: D57
data_type: byte[4]
name: disassemble_data
arguments: label: D89
data_type: f32
name: disassemble_data
arguments: label: D59
data_type: f32
name: disassemble_data
arguments: label: D54
data_type: f32
name: disassemble_data
arguments: label: D180
data_type: f32
name: disassemble_data
arguments: label: D155
data_type: byte[4]
name: disassemble_data
arguments: label: D83
data_type: byte[4]
name: disassemble_data
arguments: label: D33
data_type: byte[4]
name: disassemble_data
arguments: label: D179
data_type: byte[4]
name: disassemble_data
arguments: label: D106
data_type: byte[4]
name: disassemble_data
arguments: label: D170
data_type: f32
name: disassemble_data
arguments: label: D96
data_type: f32

tool: D186: 1.5707963267948966

tool: {"D57": [0x00,0x00,0x00,0x80]}

tool: D89: 0.2679491924311227

tool: D59: 0.7320508075688773

tool: D54: 0.5

tool: D180: 1.7320508075688772

tool: {"D155": [0xf3,0x04,0xb5,0x39]}

tool: {"D83": [0xae,0x53,0x38,0xbf]}

tool: {"D33": [0xa8,0x54,0xb8,0x3f]}

tool: {"D179": [0x3c,0x12,0x98,0x40]}

tool: {"D106": [0x7e,0x3f,0x8a,0x40]}

tool: D170: 0

tool: D96: 3.141592653589793

assistant: ```c
float _atan2f(float y, float x) {
  float f, g;
  float num, den;
  float result;
  int n;
  static const float a[4] = {0, (float)(0.52359877559829887307710723054658L), (float)(1.5707963267948966192313216916398L), (float)(1.0471975511965977461542144610932L)};
  if (x == (float)0.0) {
    if (y == (float)0.0) {
      result = 0.0;
      return result;
    }
    result = (float)(1.5707963267948966192313216916398L);
    if (y > (float)0.0) {
      return result;
    }
    if (y < (float)0.0) {
      result = -result;
      return result;
    }
  }
  n = 0;
  num = y;
  den = x;
  if (num < (float)0.0) {
    num = -num;
  }
  if (den < (float)0.0) {
    den = -den;
  }
  if (num > den) {
    f = den;
    den = num;
    num = f;
    n = 2;
  }
  f = ((float)(num) / (float)(den));
  if (f > (float)(0.26794919243112270647255365849413L)) {
    num = ((float)((float)(0.73205080756887729352744634150587L)) * (float)(f));
    num = ((float)(num) - (float)(0.5));
    num = ((float)(num) - (float)(0.5));
    num = ((float)(num) + (float)(f));
    den = ((float)((float)(1.7320508075688772935274463415059L)) + (float)(f));
    f = ((float)(num) / (float)(den));
    n = n + 1;
  }
  g = f;
  if (g < (float)0.0) {
    g = -g;
  }
  if (g < (float)(+3.452669830012e-4F)) {
    result = f;
  } else {
    g = ((float)(f) * (float)(f));
    num = ((float)((-7.20026848898e-1F)) * (float)(g));
    num = ((float)(num) + (float)((-1.44008344874F)));
    num = ((float)(num) * (float)(g));
    den = ((float)(g) + (float)((+4.75222584599F)));
    den = ((float)(den) * (float)(g));
    den = ((float)(den) + (float)((+4.32025038919F)));
    result = ((float)(num) / (float)(den));
    result = ((float)(result) * (float)(f));
    result = ((float)(result) + (float)(f));
  }
  if (n > 1) {
    result = -result;
  }
  result = ((float)(a[n]) + (float)(result));
  if (x < (float)0.0) {
    result = ((float)((float)(3.1415926535897932384626433832795L)) - (float)(result));
  }
  if (y < (float)0.0) {
    result = -result;
  }
  return result;
}
```