user: What is the c source code of the assembly code below:

```asm
<triRender>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %rcx,-0x20(%rbp)
  mov    %r8,-0x28(%rbp)
  mov    %r9,-0x30(%rbp)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L138
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L138
  mov    -0x30(%rbp),%r8
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x10(%rbp),%rsi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   0x10(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L138:
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L92
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L92
  mov    -0x30(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x8(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    -0x10(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x28(%rbp)
  mov    0x10(%rbp),%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L92:
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L201
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L201
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rsi
  mov    -0x18(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x30(%rbp)
  mov    %rdi,%r9
  mov    0x10(%rbp),%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L201:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L27
  ucomisd %xmm1,%xmm0
  jne    L27
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L133
  ucomisd %xmm1,%xmm0
  je     L27
L133:
  mov    -0x30(%rbp),%r8
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x10(%rbp),%rsi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   0x10(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L27:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L227
  ucomisd %xmm1,%xmm0
  jne    L227
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L26
  ucomisd %xmm1,%xmm0
  je     L227
L26:
  mov    -0x30(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x8(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    -0x10(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x28(%rbp)
  mov    0x10(%rbp),%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L227:
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L84
  ucomisd %xmm1,%xmm0
  jne    L84
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L56
  ucomisd %xmm1,%xmm0
  je     L84
L56:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rsi
  mov    -0x18(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x30(%rbp)
  mov    %rdi,%r9
  mov    0x10(%rbp),%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  jmp    L105
L84:
  mov    -0x30(%rbp),%r8
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x10(%rbp),%rsi
  mov    -0x8(%rbp),%rax
  sub    $0x8,%rsp
  push   0x10(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  call   <triRenderALeft@plt>
  add    $0x10,%rsp
  nop
L105:
  nop
  leave
  ret
```

assistant: ```c
void triRender(double a[2], double b[2], double c[2], double rgb[3], double alpha[2], double beta[2], double gamma[2]) {
  if (a[0] < b[0] && a[0] < c[0]) {
    triRenderALeft(a, b, c, rgb, alpha, beta, gamma);
  } else if (b[0] < a[0] && b[0] < c[0]) {
    triRenderALeft(b, c, a, rgb, beta, gamma, alpha);
  } else if (c[0] < a[0] && c[0] < b[0]) {
    triRenderALeft(c, a, b, rgb, gamma, alpha, beta);
  } else if (a[0] == c[0] && b[0] != c[0]) {
    triRenderALeft(a, b, c, rgb, alpha, beta, gamma);
  } else if (a[0] == b[0] && a[0] != c[0]) {
    triRenderALeft(b, c, a, rgb, beta, gamma, alpha);
  } else if (b[0] == c[0] && a[0] != b[0]) {
    triRenderALeft(c, a, b, rgb, gamma, alpha, beta);
  } else {
    triRenderALeft(a, b, c, rgb, alpha, beta, gamma);
  }
}
```