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

```asm
<rSignifcanceTest>:
  endbr64
  push   %rbp
  mov    %edi,%r8d
  mov    %esi,%ebp
  mov    $0x90,%ecx
  push   %rbx
  lea    D137(%rip),%rsi
  lea    -0x2(%r8),%ebx
  sub    $0x528,%rsp
  movdqa D68(%rip),%xmm1
  mov    %fs:0x28,%rax
  mov    %rax,0x518(%rsp)
  xor    %eax,%eax
  lea    0x90(%rsp),%rdi
  rep movsq %ds:(%rsi),%es:(%rdi)
  movaps %xmm1,(%rsp)
  movdqa D45(%rip),%xmm1
  mov    %r8d,%edi
  movaps %xmm1,0x10(%rsp)
  movdqa D114(%rip),%xmm1
  movaps %xmm1,0x20(%rsp)
  movdqa D169(%rip),%xmm1
  movaps %xmm1,0x30(%rsp)
  movdqa D188(%rip),%xmm1
  movaps %xmm1,0x40(%rsp)
  movdqa D211(%rip),%xmm1
  movaps %xmm1,0x50(%rsp)
  movdqa D214(%rip),%xmm1
  movaps %xmm1,0x60(%rsp)
  movdqa D57(%rip),%xmm1
  movaps %xmm1,0x70(%rsp)
  movdqa D140(%rip),%xmm1
  movaps %xmm1,0x80(%rsp)
  call   <correlationTTest@plt>
  mov    %rsp,%rdx
  lea    0x90(%rsp),%rax
  lea    0x4f0(%rsp),%rcx
  movapd %xmm0,%xmm1
  movsd  D193(%rip),%xmm0
  jmp    L200
L138:
  add    $0x20,%rax
  add    $0x4,%rdx
  cmp    %rax,%rcx
  je     L148
L200:
  cmp    (%rdx),%ebx
  jl     L138
  cmp    0x4(%rdx),%ebx
  jge    L138
  comisd (%rax),%xmm1
  movsd  0x8(%rax),%xmm2
  jb     L81
  comisd %xmm1,%xmm2
  jbe    L81
  movsd  D92(%rip),%xmm0
L81:
  comisd %xmm2,%xmm1
  movsd  0x10(%rax),%xmm3
  jb     L178
  comisd %xmm1,%xmm3
  jbe    L178
  movsd  D91(%rip),%xmm0
L178:
  comisd %xmm3,%xmm1
  movsd  0x18(%rax),%xmm2
  jb     L52
  comisd %xmm1,%xmm2
  jbe    L52
  movsd  D185(%rip),%xmm0
L52:
  comisd %xmm2,%xmm1
  jb     L138
  add    $0x20,%rax
  movsd  D152(%rip),%xmm0
  add    $0x4,%rdx
  cmp    %rax,%rcx
  jne    L200
  nopl   0x0(%rax)
L148:
  cmp    $0xf423f,%ebx
  jg     L122
L143:
  cmp    $0x2,%ebp
  jne    L208
  addsd  %xmm0,%xmm0
L208:
  mov    0x518(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L95
  add    $0x528,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L122:
  movapd D85(%rip),%xmm3
  movapd %xmm1,%xmm2
  movapd D92(%rip),%xmm4
  unpcklpd %xmm0,%xmm0
  unpcklpd %xmm2,%xmm2
  cmplepd %xmm2,%xmm3
  cmpltpd D142(%rip),%xmm2
  pand   %xmm3,%xmm2
  movq   %xmm2,%rax
  movapd %xmm2,%xmm3
  movhlps %xmm2,%xmm6
  cmp    $0x1,%rax
  andnpd %xmm0,%xmm3
  movq   %xmm6,%rax
  sbb    %rdx,%rdx
  andpd  %xmm2,%xmm4
  orpd   %xmm4,%xmm3
  add    $0x1,%rdx
  neg    %rax
  sbb    %rax,%rax
  movapd %xmm3,%xmm5
  unpckhpd %xmm5,%xmm5
  and    $0x2,%eax
  movapd %xmm5,%xmm0
  cmp    %rax,%rdx
  jb     L46
  movapd %xmm3,%xmm0
L46:
  comisd D96(%rip),%xmm1
  movsd  D66(%rip),%xmm2
  jb     L97
  comisd %xmm1,%xmm2
  ja     L89
L97:
  comisd %xmm2,%xmm1
  jb     L143
  movsd  D152(%rip),%xmm0
  jmp    L143
  nopl   0x0(%rax,%rax,1)
L89:
  movsd  D185(%rip),%xmm0
  jmp    L97
L95:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D137
type: f64
name: disassemble_data
arguments: data_label: D68
type: byte[16]
name: disassemble_data
arguments: data_label: D45
type: byte[16]
name: disassemble_data
arguments: data_label: D114
type: byte[16]
name: disassemble_data
arguments: data_label: D169
type: byte[16]
name: disassemble_data
arguments: data_label: D188
type: byte[16]
name: disassemble_data
arguments: data_label: D211
type: byte[16]
name: disassemble_data
arguments: data_label: D214
type: byte[16]
name: disassemble_data
arguments: data_label: D57
type: byte[16]
name: disassemble_data
arguments: data_label: D140
type: byte[16]
name: disassemble_data
arguments: data_label: D193
type: f64
name: disassemble_data
arguments: data_label: D92
type: f64[2]
name: disassemble_data
arguments: data_label: D91
type: f64
name: disassemble_data
arguments: data_label: D185
type: f64
name: disassemble_data
arguments: data_label: D152
type: f64
name: disassemble_data
arguments: data_label: D85
type: f64[2]
name: disassemble_data
arguments: data_label: D142
type: f64[2]
name: disassemble_data
arguments: data_label: D96
type: f64[2]
name: disassemble_data
arguments: data_label: D66
type: f64

tool: D137: 31.82

tool: {"D68": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D45": [0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00]}

tool: {"D114": [0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]}

tool: {"D169": [0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x10,0x00,0x00,0x00]}

tool: {"D188": [0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00]}

tool: {"D211": [0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D214": [0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00]}

tool: {"D57": [0x1d,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3c,0x00,0x00,0x00]}

tool: {"D140": [0x50,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xe8,0x03,0x00,0x00,0x40,0x42,0x0f,0x00]}

tool: D193: 1

tool: {"D92": [0.01,0.005]}

tool: D91: 0.005

tool: D185: 0.001

tool: D152: 0.0005

tool: {"D85": [2.326,2.576]}

tool: {"D142": [2.576,3.09]}

tool: {"D96": [3.09,0.01]}

tool: D66: 3.291

assistant: ```c
double rSignifcanceTest(double r, int N, int tail) {
  double prob = 1.0, t;
  int i, j, df;
  double tDist[36][4] = {{31.82, 63.66, 318.31, 636.62}, {6.965, 9.925, 22.327, 31.599}, {4.541, 5.841, 10.215, 12.924}, {3.747, 4.604, 7.173, 8.610}, {3.365, 4.032, 5.893, 6.869}, {3.143, 3.707, 5.208, 5.959}, {2.998, 3.499, 4.785, 5.408}, {2.896, 3.355, 4.501, 5.041}, {2.821, 3.250, 4.297, 4.781}, {2.764, 3.169, 4.144, 4.587}, {2.718, 3.106, 4.025, 4.437}, {2.681, 3.055, 3.930, 4.318}, {2.650, 3.012, 3.852, 4.221}, {2.624, 2.977, 3.787, 4.140}, {2.602, 2.947, 3.733, 4.073}, {2.583, 2.921, 3.686, 4.015}, {2.567, 2.898, 3.646, 3.965}, {2.552, 2.878, 3.610, 3.922}, {2.539, 2.861, 3.579, 3.883}, {2.528, 2.845, 3.552, 3.850}, {2.518, 2.831, 3.527, 3.819}, {2.508, 2.819, 3.505, 3.792}, {2.500, 2.807, 3.485, 3.768}, {2.492, 2.797, 3.467, 3.745}, {2.485, 2.787, 3.450, 3.725}, {2.479, 2.779, 3.435, 3.707}, {2.473, 2.771, 3.421, 3.690}, {2.467, 2.763, 3.408, 3.674}, {2.462, 2.756, 3.396, 3.659}, {2.457, 2.750, 3.385, 3.646}, {2.423, 2.704, 3.307, 3.551}, {2.390, 2.660, 3.232, 3.460}, {2.374, 2.639, 3.195, 3.416}, {2.364, 2.626, 3.174, 3.390}, {2.330, 2.581, 3.098, 3.300}, {2.326, 2.576, 3.090, 3.291}};
  int dfTable[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 40, 60, 80, 100, 1000, 1e6};
  double p[] = {0.01, 0.005, 0.001, 0.0005};
  df = N - 2;
  t = correlationTTest(r, N);
  for (j = 1; j < 36; j++) {
    if ((df >= dfTable[j - 1]) && (df < dfTable[j])) {
      for (i = 0; i < 4 - 1; i++) {
        if (t >= tDist[j - 1][i] && t < tDist[j - 1][i + 1])
          prob = p[i];
      }
      if (t >= tDist[j - 1][4 - 1])
        prob = p[4 - 1];
    }
  }
  if (df >= dfTable[36 - 1]) {
    for (i = 0; i < 4 - 1; i++) {
      if (t >= tDist[36 - 1][i] && t < tDist[36 - 1][i + 1])
        prob = p[i];
    }
    if (t >= tDist[36 - 1][4 - 1])
      prob = p[4 - 1];
  }
  if (tail == 2)
    prob *= 2.0;
  return prob;
}
```