user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<render_lines_2D_WLA>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x58(%rbp)
  mov    %esi,-0x5c(%rbp)
  mov    %edx,-0x60(%rbp)
  mov    %rcx,-0x68(%rbp)
  mov    %r8d,-0x6c(%rbp)
  mov    %r9,-0x78(%rbp)
  movss  D6(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movl   $0x0,-0x34(%rbp)
  jmp    L176
L164:
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x28(%rbp)
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x24(%rbp)
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  sub    -0x24(%rbp),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x20(%rbp),%eax
  sub    -0x28(%rbp),%eax
  mov    %eax,-0x44(%rbp)
  cmpl   $0x0,-0x40(%rbp)
  jns    L738
  negl   -0x40(%rbp)
  movl   $0xffffffff,-0x38(%rbp)
  jmp    L66
L738:
  movl   $0x1,-0x38(%rbp)
L66:
  cmpl   $0x0,-0x44(%rbp)
  jns    L372
  negl   -0x44(%rbp)
  movl   $0xffffffff,-0x3c(%rbp)
  jmp    L343
L372:
  movl   $0x1,-0x3c(%rbp)
L343:
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x44(%rbp),%eax
  cmp    -0x40(%rbp),%eax
  jle    L696
  mov    -0x44(%rbp),%eax
  sub    $0x1,%eax
  sar    $0x2,%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x44(%rbp),%eax
  sub    $0x1,%eax
  and    $0x3,%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x40(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x44(%rbp),%eax
  lea    (%rax,%rax,1),%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  mov    %eax,-0xc(%rbp)
  cmpl   $0x0,-0xc(%rbp)
  jns    L505
  mov    -0x40(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  sub    -0x44(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  movl   $0x0,-0x2c(%rbp)
  jmp    L646
L556:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  jns    L510
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4(%rbp),%eax
  add    %eax,-0x30(%rbp)
  jmp    L145
L510:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L43
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L778
L43:
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L778:
  mov    -0xc(%rbp),%eax
  add    %eax,-0x30(%rbp)
L145:
  addl   $0x1,-0x2c(%rbp)
L646:
  mov    -0x2c(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jl     L556
  cmpl   $0x0,-0x10(%rbp)
  jle    L766
  cmpl   $0x0,-0x30(%rbp)
  jns    L693
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L212
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L212:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L693:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L52
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L248
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L248:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L52:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L689
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L689:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L505:
  mov    -0x40(%rbp),%eax
  sub    -0x44(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%edx
  mov    -0x44(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x30(%rbp)
  movl   $0x0,-0x2c(%rbp)
  jmp    L511
L98:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  jle    L119
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4(%rbp),%eax
  add    %eax,-0x30(%rbp)
  jmp    L584
L119:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L688
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L79
L688:
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L79:
  mov    -0xc(%rbp),%eax
  add    %eax,-0x30(%rbp)
L584:
  addl   $0x1,-0x2c(%rbp)
L511:
  mov    -0x2c(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jl     L98
  cmpl   $0x0,-0x10(%rbp)
  jle    L766
  cmpl   $0x0,-0x30(%rbp)
  jle    L632
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L605
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L605:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L632:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L750
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L819
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L819:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L750:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L77
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L77:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jle    L109
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L109:
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L696:
  mov    -0x40(%rbp),%eax
  sub    $0x1,%eax
  sar    $0x2,%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x40(%rbp),%eax
  sub    $0x1,%eax
  and    $0x3,%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x44(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x40(%rbp),%eax
  lea    (%rax,%rax,1),%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  mov    %eax,-0xc(%rbp)
  cmpl   $0x0,-0xc(%rbp)
  jns    L357
  mov    -0x44(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  sub    -0x40(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  movl   $0x0,-0x2c(%rbp)
  jmp    L447
L252:
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  jns    L823
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4(%rbp),%eax
  add    %eax,-0x30(%rbp)
  jmp    L553
L823:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L419
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L570
L419:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L570:
  mov    -0xc(%rbp),%eax
  add    %eax,-0x30(%rbp)
L553:
  addl   $0x1,-0x2c(%rbp)
L447:
  mov    -0x2c(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jl     L252
  cmpl   $0x0,-0x10(%rbp)
  jle    L766
  cmpl   $0x0,-0x30(%rbp)
  jns    L686
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L821
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L821:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L686:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L14
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L279
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L279:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L14:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L253
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L253:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L357:
  mov    -0x44(%rbp),%eax
  sub    -0x40(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%edx
  mov    -0x40(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x30(%rbp)
  movl   $0x0,-0x2c(%rbp)
  jmp    L550
L327:
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  jle    L298
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4(%rbp),%eax
  add    %eax,-0x30(%rbp)
  jmp    L763
L298:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L386
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L536
L386:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L536:
  mov    -0xc(%rbp),%eax
  add    %eax,-0x30(%rbp)
L763:
  addl   $0x1,-0x2c(%rbp)
L550:
  mov    -0x2c(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jl     L327
  cmpl   $0x0,-0x10(%rbp)
  jle    L766
  cmpl   $0x0,-0x30(%rbp)
  jle    L661
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L340
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L340:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L661:
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jge    L614
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L168
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L168:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L614:
  mov    -0x3c(%rbp),%eax
  add    %eax,-0x28(%rbp)
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  cmpl   $0x1,-0x10(%rbp)
  jle    L800
  mov    -0x38(%rbp),%eax
  add    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L800:
  cmpl   $0x2,-0x10(%rbp)
  jle    L766
  mov    -0x30(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jle    L664
  mov    -0x3c(%rbp),%eax
  sub    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
  jmp    L766
L664:
  mov    -0x38(%rbp),%eax
  sub    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  imul   -0x60(%rbp),%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movss  -0x18(%rbp),%xmm0
  movss  %xmm0,(%rax)
L766:
  addl   $0x1,-0x34(%rbp)
L176:
  mov    -0x34(%rbp),%eax
  cmp    -0x6c(%rbp),%eax
  jl     L164
  nop
  nop
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D6
datatype: byte[4]

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

assistant: ```c
void render_lines_2D_WLA(float *mat, int wy, int wx, int *X1, int nx1, int *Y1, int ny1, int *X2, int nx2, int *Y2, int ny2) {
  int dx, dy, stepx, stepy, n;
  int length, extras, incr2, incr1, c, d, i;
  int x1, y1, x2, y2;
  float val = 1.0f;
  for (n = 0; n < nx1; ++n) {
    x1 = X1[n];
    y1 = Y1[n];
    x2 = X2[n];
    y2 = Y2[n];
    dy = y2 - y1;
    dx = x2 - x1;
    if (dy < 0) {
      dy = -dy;
      stepy = -1;
    } else {
      stepy = 1;
    }
    if (dx < 0) {
      dx = -dx;
      stepx = -1;
    } else {
      stepx = 1;
    }
    mat[y1 * wx + x1] = val;
    mat[y2 * wx + x2] = val;
    if (dx > dy) {
      length = (dx - 1) >> 2;
      extras = (dx - 1) & 3;
      incr2 = (dy << 2) - (dx << 1);
      if (incr2 < 0) {
        c = dy << 1;
        incr1 = c << 1;
        d = incr1 - dx;
        for (i = 0; i < length; i++) {
          x1 = x1 + stepx;
          x2 = x2 - stepx;
          if (d < 0) {
            mat[y1 * wx + x1] = val;
            x1 = x1 + stepx;
            mat[y1 * wx + x1] = val;
            mat[y2 * wx + x2] = val;
            x2 = x2 - stepx;
            mat[y2 * wx + x2] = val;
            d += incr1;
          } else {
            if (d < c) {
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            } else {
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
            }
            d += incr2;
          }
        }
        if (extras > 0) {
          if (d < 0) {
            x1 = x1 + stepx;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
            }
          } else if (d < c) {
            x1 = x1 + stepx;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
            }
          } else {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          }
        }
      } else {
        c = (dy - dx) << 1;
        incr1 = c << 1;
        d = incr1 + dx;
        for (i = 0; i < length; i++) {
          x1 = x1 + stepx;
          x2 = x2 - stepx;
          if (d > 0) {
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            y2 = y2 - stepy;
            mat[y2 * wx + x2] = val;
            x2 = x2 - stepx;
            y2 = y2 - stepy;
            mat[y2 * wx + x2] = val;
            d += incr1;
          } else {
            if (d < c) {
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            } else {
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
            }
            d += incr2;
          }
        }
        if (extras > 0) {
          if (d > 0) {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          } else if (d < c) {
            x1 = x1 + stepx;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
            }
          } else {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              if (d > c) {
                x2 = x2 - stepx;
                y2 = y2 - stepy;
                mat[y2 * wx + x2] = val;
              } else {
                x2 = x2 - stepx;
                mat[y2 * wx + x2] = val;
              }
            }
          }
        }
      }
    } else {
      length = (dy - 1) >> 2;
      extras = (dy - 1) & 3;
      incr2 = (dx << 2) - (dy << 1);
      if (incr2 < 0) {
        c = dx << 1;
        incr1 = c << 1;
        d = incr1 - dy;
        for (i = 0; i < length; i++) {
          y1 = y1 + stepy;
          y2 = y2 - stepy;
          if (d < 0) {
            mat[y1 * wx + x1] = val;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            mat[y2 * wx + x2] = val;
            y2 = y2 - stepy;
            mat[y2 * wx + x2] = val;
            d += incr1;
          } else {
            if (d < c) {
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            } else {
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
            d += incr2;
          }
        }
        if (extras > 0) {
          if (d < 0) {
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          } else if (d < c) {
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          } else {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          }
        }
      } else {
        c = (dx - dy) << 1;
        incr1 = c << 1;
        d = incr1 + dy;
        for (i = 0; i < length; i++) {
          y1 = y1 + stepy;
          y2 = y2 - stepy;
          if (d > 0) {
            x1 = x1 + stepx;
            mat[y1 * wx + x1] = val;
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            x2 = x2 - stepx;
            mat[y2 * wx + x2] = val;
            x2 = x2 - stepx;
            y2 = y2 - stepy;
            mat[y2 * wx + x2] = val;
            d += incr1;
          } else {
            if (d < c) {
              mat[y1 * wx + x1] = val;
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              mat[y2 * wx + x2] = val;
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            } else {
              x1 = x1 + stepx;
              mat[y1 * wx + x1] = val;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
              x2 = x2 - stepx;
              mat[y2 * wx + x2] = val;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
            d += incr2;
          }
        }
        if (extras > 0) {
          if (d > 0) {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              x2 = x2 - stepx;
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          } else if (d < c) {
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              x1 = x1 + stepx;
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              y2 = y2 - stepy;
              mat[y2 * wx + x2] = val;
            }
          } else {
            x1 = x1 + stepx;
            y1 = y1 + stepy;
            mat[y1 * wx + x1] = val;
            if (extras > 1) {
              y1 = y1 + stepy;
              mat[y1 * wx + x1] = val;
            }
            if (extras > 2) {
              if (d > c) {
                x2 = x2 - stepx;
                y2 = y2 - stepy;
                mat[y2 * wx + x2] = val;
              } else {
                y2 = y2 - stepy;
                mat[y2 * wx + x2] = val;
              }
            }
          }
        }
      }
    }
  }
}
```