user: 这段汇编代码用C语言表示是什么样的？

```asm
<fast_s_large_n>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x140,%rsp
  mov    %rdi,-0xf8(%rbp)
  mov    %rsi,-0x100(%rbp)
  mov    %rdx,-0x108(%rbp)
  mov    %rcx,-0x110(%rbp)
  mov    %r8,-0x118(%rbp)
  mov    %r9,-0x120(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x128(%rbp)
  mov    0x18(%rbp),%rax
  mov    %rax,-0x130(%rbp)
  mov    0x20(%rbp),%rax
  mov    %rax,-0x138(%rbp)
  mov    0x28(%rbp),%rax
  mov    %rax,-0x140(%rbp)
  mov    0x30(%rbp),%rax
  mov    %rax,-0x148(%rbp)
  mov    0x38(%rbp),%rax
  mov    %rax,-0x150(%rbp)
  mov    0x40(%rbp),%rax
  mov    %rax,-0x158(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x28(%rbp)
  xor    %eax,%eax
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0x110(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0x120(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xe0(%rbp)
  mov    -0x128(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xdc(%rbp)
  mov    -0x130(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xf0(%rbp)
  mov    -0x138(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0xd8(%rbp)
  mov    -0x140(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0x148(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xe8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0xa0(%rbp)
  mov    -0xe8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x98(%rbp)
  mov    -0xe8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x90(%rbp)
  mov    -0xe8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x88(%rbp)
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x80(%rbp)
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x78(%rbp)
  mov    $0x0,%ebx
  jmp    L187
L11:
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x80(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  mov    -0xe4(%rbp),%eax
  add    $0x1,%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x78(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  add    $0x1,%ebx
L187:
  cmp    -0xe4(%rbp),%ebx
  jl     L11
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x70(%rbp)
  mov    -0xd8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x68(%rbp)
  mov    $0x0,%ebx
  jmp    L223
L392:
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x68(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  add    $0x1,%ebx
L223:
  cmp    -0xd8(%rbp),%ebx
  jl     L392
  mov    -0xd8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x60(%rbp)
  mov    -0xd8(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%r13d
  movslq %r13d,%rax
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x58(%rbp)
  movslq %r13d,%rax
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x50(%rbp)
  mov    $0x0,%ebx
  jmp    L239
L146:
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x58(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  add    $0x1,%ebx
L239:
  cmp    %r13d,%ebx
  jl     L146
  mov    -0xe8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x48(%rbp)
  mov    $0x0,%ebx
  jmp    L22
L81:
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x48(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  add    $0x1,%ebx
L22:
  cmp    -0xe8(%rbp),%ebx
  jl     L81
  mov    -0xf0(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%r13d
  movslq %r13d,%rax
  shl    $0x2,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x40(%rbp)
  movslq %r13d,%rax
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x38(%rbp)
  movslq %r13d,%rax
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x30(%rbp)
  mov    $0x0,%ebx
  jmp    L286
L78:
  mov    -0xe4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  movslq %ebx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x38(%rbp),%rdx
  lea    (%rcx,%rdx,1),%r12
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,(%r12)
  add    $0x1,%ebx
L286:
  cmp    %r13d,%ebx
  jl     L78
  mov    $0x0,%ebx
  jmp    L222
L379:
  mov    $0x0,%r12d
  jmp    L244
L299:
  mov    %r12d,%eax
  imul   -0xe8(%rbp),%eax
  add    %ebx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rax,%rdx
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rcx
  mov    -0x48(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%rcx
  movslq %r12d,%rax
  shl    $0x3,%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%r12d
L244:
  cmp    -0xe4(%rbp),%r12d
  jl     L299
  add    $0x1,%ebx
L222:
  cmp    -0xe8(%rbp),%ebx
  jl     L379
  mov    $0x25,%edi
  mov    $0x0,%eax
  call   <srand@plt>
  mov    -0xe8(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x40(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  mov    %r13d,%edi
  call   <sample_n_outof_N@plt>
  mov    $0x0,%ebx
  jmp    L417
L140:
  mov    $0x0,%r12d
  jmp    L406
L171:
  movslq %ebx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  movslq %r12d,%rax
  shl    $0x3,%rax
  add    %rax,%rdx
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rcx
  mov    -0x38(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%rcx
  movslq %r12d,%rax
  shl    $0x3,%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%r12d
L406:
  cmp    -0xe4(%rbp),%r12d
  jl     L171
  movslq %ebx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x100(%rbp),%rax
  add    %rax,%rdx
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rcx
  mov    -0x30(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%ebx
L417:
  cmp    %r13d,%ebx
  jl     L140
  mov    $0x0,%ebx
  jmp    L101
L195:
  mov    %ebx,%eax
  imul   -0xd8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  lea    (%rdx,%rax,1),%r8
  mov    %ebx,%eax
  imul   -0xd8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0xf0(%rbp),%eax
  imul   %ebx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  lea    (%rdx,%rax,1),%rsi
  mov    -0xf0(%rbp),%eax
  imul   %ebx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    -0x120(%rbp),%r9
  mov    -0x118(%rbp),%r10
  mov    -0x110(%rbp),%rdx
  lea    -0xf0(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  push   %rcx
  push   -0x148(%rbp)
  push   -0x140(%rbp)
  push   -0x138(%rbp)
  mov    %r10,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  call   <fast_s_with_memory@plt>
  add    $0x30,%rsp
  add    $0x1,%ebx
L101:
  cmp    -0xdc(%rbp),%ebx
  jl     L195
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movl   $0x0,-0xd4(%rbp)
  mov    -0xd4(%rbp),%eax
  mov    %eax,-0xec(%rbp)
  mov    $0x0,%ebx
  jmp    L112
L334:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%ebx
L112:
  cmp    -0xd8(%rbp),%ebx
  jl     L334
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0xe4(%rbp),%edx
  mov    -0xd8(%rbp),%ecx
  mov    -0x68(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   <reset_mat@plt>
  mov    -0xf0(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%r13d
  mov    $0x0,%ebx
  jmp    L250
L98:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  lea    (%rdx,%rax,1),%r9
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdi
  movsd  -0xa8(%rbp),%xmm0
  mov    -0xb0(%rbp),%rcx
  mov    -0xa0(%rbp),%r11
  mov    -0xe4(%rbp),%r10d
  mov    -0x98(%rbp),%rdx
  mov    -0x30(%rbp),%rsi
  mov    -0x38(%rbp),%rax
  lea    -0xd0(%rbp),%r8
  push   %r8
  push   -0x70(%rbp)
  push   %r9
  mov    -0xd4(%rbp),%r8d
  push   %r8
  mov    -0xe0(%rbp),%r8d
  push   %r8
  push   %rdi
  push   -0x78(%rbp)
  push   -0x80(%rbp)
  push   -0x88(%rbp)
  push   -0x90(%rbp)
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %r11,%r9
  mov    %r10d,%r8d
  mov    %r13d,%ecx
  mov    %rax,%rdi
  call   <refine_fast_s@plt>
  add    $0x50,%rsp
  movsd  -0xa8(%rbp),%xmm0
  mov    -0xe4(%rbp),%edx
  mov    -0xb8(%rbp),%rcx
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  mov    %r13d,%esi
  movq   %rcx,%xmm0
  mov    %rax,%rdi
  call   <loss_rho@plt>
  movsd  -0xb0(%rbp),%xmm1
  comisd %xmm0,%xmm1
  jbe    L129
  movsd  -0xd0(%rbp),%xmm1
  mov    -0xe4(%rbp),%edx
  movsd  -0xa8(%rbp),%xmm0
  mov    -0xb0(%rbp),%rcx
  mov    -0xa0(%rbp),%rax
  mov    %r13d,%esi
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %rax,%rdi
  call   <find_scale@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0xec(%rbp),%r14d
  movslq %r14d,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    $0x0,%r12d
  jmp    L158
L86:
  movslq %r12d,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  movslq %r14d,%rax
  lea    0x0(,%rax,8),%rcx
  mov    -0x68(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%rcx
  movslq %r12d,%rax
  shl    $0x3,%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%r12d
L158:
  cmp    -0xe4(%rbp),%r12d
  jl     L86
  mov    -0xd8(%rbp),%edx
  mov    -0x60(%rbp),%rax
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <find_max@plt>
  mov    %eax,-0xec(%rbp)
  mov    -0xec(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
L129:
  add    $0x1,%ebx
L250:
  mov    -0xd8(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  cmp    %eax,%ebx
  jl     L98
  movsd  D10(%rip),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movl   $0x1,-0xd4(%rbp)
  mov    $0x0,%ebx
  jmp    L139
L403:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  lea    (%rdx,%rax,1),%r10
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%r8
  movsd  -0xa8(%rbp),%xmm0
  mov    -0xb0(%rbp),%rdi
  mov    -0xa0(%rbp),%r12
  mov    -0xe4(%rbp),%r11d
  mov    -0xe8(%rbp),%ecx
  mov    -0x98(%rbp),%rdx
  mov    -0x100(%rbp),%rsi
  mov    -0x48(%rbp),%rax
  lea    -0xc8(%rbp),%r9
  push   %r9
  push   -0x70(%rbp)
  push   %r10
  mov    -0xd4(%rbp),%r9d
  push   %r9
  mov    -0xe0(%rbp),%r9d
  push   %r9
  push   %r8
  push   -0x78(%rbp)
  push   -0x80(%rbp)
  push   -0x88(%rbp)
  push   -0x90(%rbp)
  movapd %xmm0,%xmm1
  movq   %rdi,%xmm0
  mov    %r12,%r9
  mov    %r11d,%r8d
  mov    %rax,%rdi
  call   <refine_fast_s@plt>
  add    $0x50,%rsp
  movsd  -0xc8(%rbp),%xmm1
  movsd  -0xc0(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L147
  movsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x158(%rbp),%rax
  movsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    $0x0,%r12d
  jmp    L376
L165:
  movslq %r12d,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  movslq %r12d,%rax
  lea    0x0(,%rax,8),%rcx
  mov    -0x150(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x1,%r12d
L376:
  cmp    -0xe4(%rbp),%r12d
  jl     L165
L147:
  add    $0x1,%ebx
L139:
  cmp    -0xd8(%rbp),%ebx
  jl     L403
  mov    $0x0,%ebx
  jmp    L156
L256:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  add    $0x1,%ebx
L156:
  cmp    -0xe8(%rbp),%ebx
  jl     L256
  mov    -0x48(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x50(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0xd8(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%r13d
  mov    $0x0,%ebx
  jmp    L229
L428:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  add    $0x1,%ebx
L229:
  cmp    %r13d,%ebx
  jl     L428
  mov    -0x58(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x40(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x30(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0xf0(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%r13d
  mov    $0x0,%ebx
  jmp    L106
L209:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  add    $0x1,%ebx
L106:
  cmp    %r13d,%ebx
  jl     L209
  mov    -0x38(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x90(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x88(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    $0x0,%ebx
  jmp    L0
L374:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  add    $0x1,%ebx
L0:
  cmp    -0xe4(%rbp),%ebx
  jl     L374
  mov    -0x80(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x78(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x98(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    $0x0,%ebx
  jmp    L122
L248:
  movslq %ebx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  add    $0x1,%ebx
L122:
  cmp    -0xd8(%rbp),%ebx
  jl     L248
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x60(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0xa0(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x70(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  nop
  mov    -0x28(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L3
  call   <__stack_chk_fail@plt>
L3:
  lea    -0x20(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D10
type: byte[8]

tool: {"D10": [0x40,0x8c,0xb5,0x78,0x1d,0xaf,0x15,0x44]}

assistant: ```c
void fast_s_large_n(double *X, double *y, int *nn, int *pp, int *NN, int *K, int *ggroups, int *nn_group, int *bbest_r, double *bb, double *rrhoc, double *bbeta, double *sscale) {
  void reset_mat(double **a, int n, int m);
  double loss_rho(double *r, double scale, int n, int p, double rhoc);
  double find_scale(double *r, double b, double rhoc, double initial_scale, int n, int p);
  void fast_s_with_memory(double **x, double *y, int *nn, int *pp, int *NN, int *K, int *bbest_r, double *bb, double *rrhoc, double **best_betas, double *best_scales);
  void sample_n_outof_N(int n, int N, int *x);
  void refine_fast_s(double **x, double *y, double *weights, int n, int p, double *res, double *tmp, double *tmp2, double **tmp_mat, double **tmp_mat2, double *beta_cand, int kk, int conv, double b, double rhoc, double *is, double *beta_ref, double *scale);
  int find_max(double *a, int n);
  register int i, j, k, k2;
  int n = *nn, p = *pp, kk = *K, *indices;
  int groups = *ggroups, n_group = *nn_group, best_r = *bbest_r;
  double **best_betas, *best_scales;
  double **final_best_betas, *final_best_scales;
  double **x, **xsamp, *ysamp, *res, sc, *beta_ref;
  double *tmp, *tmp2, **tmp_mat, **tmp_mat2, *weights;
  double best_sc, worst_sc, b = *bb, rhoc = *rrhoc, aux;
  int pos_worst_scale, conv;
  res = (double *)malloc(n * sizeof(double));
  weights = (double *)malloc(n * sizeof(double));
  tmp = (double *)malloc(n * sizeof(double));
  tmp2 = (double *)malloc(n * sizeof(double));
  tmp_mat = (double **)malloc(p * sizeof(double *));
  tmp_mat2 = (double **)malloc(p * sizeof(double *));
  for (i = 0; i < p; i++) {
    tmp_mat[i] = (double *)malloc(p * sizeof(double));
    tmp_mat2[i] = (double *)malloc((p + 1) * sizeof(double));
  };
  beta_ref = (double *)malloc(p * sizeof(double));
  final_best_betas = (double **)malloc(best_r * sizeof(double *));
  for (i = 0; i < best_r; i++)
    final_best_betas[i] = (double *)malloc(p * sizeof(double));
  final_best_scales = (double *)malloc(best_r * sizeof(double));
  k = best_r * groups;
  best_betas = (double **)malloc(k * sizeof(double *));
  best_scales = (double *)malloc(k * sizeof(double));
  for (i = 0; i < k; i++)
    best_betas[i] = (double *)malloc(p * sizeof(double));
  x = (double **)malloc(n * sizeof(double *));
  for (i = 0; i < n; i++)
    x[i] = (double *)malloc(p * sizeof(double));
  k = n_group * groups;
  indices = (int *)malloc(k * sizeof(int));
  xsamp = (double **)malloc(k * sizeof(double *));
  ysamp = (double *)malloc(k * sizeof(double));
  for (i = 0; i < k; i++)
    xsamp[i] = (double *)malloc(p * sizeof(double));
  for (i = 0; i < n; i++)
    for (j = 0; j < p; j++)
      x[i][j] = X[j * n + i];
  srand((long)37);
  sample_n_outof_N(k, n - 1, indices);
  for (i = 0; i < k; i++) {
    for (j = 0; j < p; j++)
      xsamp[i][j] = x[indices[i]][j];
    ysamp[i] = y[indices[i]];
  };
  for (i = 0; i < groups; i++) {
    fast_s_with_memory(xsamp + i * n_group, ysamp + i * n_group, &n_group, pp, NN, K, bbest_r, bb, rrhoc, best_betas + i * best_r, best_scales + i * best_r);
  };
  best_sc = 1e+20;
  pos_worst_scale = conv = 0;
  for (i = 0; i < best_r; i++)
    final_best_scales[i] = 1e+20;
  worst_sc = 1e+20;
  reset_mat(final_best_betas, best_r, p);
  k = n_group * groups;
  for (i = 0; i < (best_r * groups); i++) {
    refine_fast_s(xsamp, ysamp, weights, k, p, res, tmp, tmp2, tmp_mat, tmp_mat2, best_betas[i], kk, conv, b, rhoc, best_scales + i, beta_ref, &sc);
    if (loss_rho(res, worst_sc, k, p, rhoc) < b) {
      sc = find_scale(res, b, rhoc, sc, k, p);
      k2 = pos_worst_scale;
      final_best_scales[k2] = sc;
      for (j = 0; j < p; j++)
        final_best_betas[k2][j] = beta_ref[j];
      pos_worst_scale = find_max(final_best_scales, best_r);
      worst_sc = final_best_scales[pos_worst_scale];
    };
  };
  best_sc = 1e+20;
  conv = 1;
  for (i = 0; i < best_r; i++) {
    refine_fast_s(x, y, weights, n, p, res, tmp, tmp2, tmp_mat, tmp_mat2, final_best_betas[i], kk, conv, b, rhoc, final_best_scales + i, beta_ref, &aux);
    if (aux < best_sc) {
      *sscale = best_sc = aux;
      for (j = 0; j < p; j++)
        bbeta[j] = beta_ref[j];
    };
  };
  for (i = 0; i < n; i++)
    free(x[i]);
  free(x);
  free(best_scales);
  k = best_r * groups;
  for (i = 0; i < k; i++)
    free(best_betas[i]);
  free(best_betas);
  free(indices);
  free(ysamp);
  k = n_group * groups;
  for (i = 0; i < k; i++)
    free(xsamp[i]);
  free(xsamp);
  free(tmp);
  free(tmp2);
  for (i = 0; i < p; i++) {
    free(tmp_mat[i]);
    free(tmp_mat2[i]);
  };
  free(tmp_mat);
  free(tmp_mat2);
  free(weights);
  for (i = 0; i < best_r; i++)
    free(final_best_betas[i]);
  free(final_best_betas);
  free(final_best_scales);
  free(res);
  free(beta_ref);
}
```