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

```asm
<s_cvt_mat2pmat>:
  endbr64
  push   %r15
  mov    %edx,%eax
  mov    %edi,%ecx
  push   %r14
  neg    %eax
  push   %r13
  and    $0x7,%eax
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x10,%rsp
  cmp    %edi,%eax
  cmovg  %edi,%eax
  mov    %esi,-0x58(%rsp)
  mov    0x48(%rsp),%r12
  mov    %r8,-0x50(%rsp)
  sub    %eax,%ecx
  mov    %r9d,-0x64(%rsp)
  mov    %ecx,-0x8(%rsp)
  test   %eax,%eax
  jle    L438
  test   %esi,%esi
  jle    L10
  movslq -0x64(%rsp),%rbp
  mov    %eax,%r9d
  mov    %esi,%ebx
  mov    %r8,%r15
  and    $0xfffffffc,%r9d
  lea    0x4(%r8),%rcx
  mov    %r12,%rsi
  xor    %edx,%edx
  lea    0x0(,%rbx,8),%r14d
  shl    $0x2,%rbp
  lea    0x1(%r9),%r11d
  mov    $0x6,%r8d
  lea    0x2(%r9),%ebx
  lea    -0x1(%rax),%r13d
  nopl   0x0(%rax)
L302:
  mov    %rsi,%r10
  lea    -0x6(%r8),%edi
  sub    %rcx,%r10
  cmp    $0x8,%r10
  jbe    L137
  cmp    $0x2,%r13d
  jbe    L137
  movups -0x4(%rcx),%xmm1
  movups %xmm1,(%rsi)
  cmp    %eax,%r9d
  je     L96
  lea    (%rdi,%r9,1),%r10d
  movslq %r10d,%r10
  movss  (%r15,%r10,4),%xmm0
  lea    (%rdx,%r9,1),%r10d
  movslq %r10d,%r10
  movss  %xmm0,(%r12,%r10,4)
  cmp    %r11d,%eax
  jle    L96
  lea    (%rdi,%r11,1),%r10d
  movslq %r10d,%r10
  movss  (%r15,%r10,4),%xmm0
  lea    (%rdx,%r11,1),%r10d
  movslq %r10d,%r10
  movss  %xmm0,(%r12,%r10,4)
  cmp    %ebx,%eax
  jle    L96
  add    %ebx,%edi
  movslq %edi,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    (%rdx,%rbx,1),%edi
  movslq %edi,%rdi
  movss  %xmm0,(%r12,%rdi,4)
L96:
  add    $0x8,%edx
  add    $0x20,%rsi
  add    %rbp,%rcx
  add    -0x64(%rsp),%r8d
  cmp    %edx,%r14d
  jne    L302
L10:
  mov    -0x50(%rsp),%rbx
  movslq %eax,%rdx
  lea    (%rbx,%rdx,4),%rbx
  mov    %rbx,-0x50(%rsp)
  mov    0x50(%rsp),%ebx
  lea    -0x8(%rax,%rbx,8),%eax
  cltq
  lea    (%r12,%rax,4),%r12
L438:
  mov    -0x8(%rsp),%eax
  sub    $0x7,%eax
  mov    %eax,-0x2c(%rsp)
  test   %eax,%eax
  jle    L31
  mov    0x50(%rsp),%eax
  mov    -0x58(%rsp),%r11d
  movq   $0x0,-0x70(%rsp)
  mov    -0x50(%rsp),%rcx
  movl   $0x0,-0x54(%rsp)
  shl    $0x3,%eax
  mov    %r12,0x48(%rsp)
  mov    %eax,-0x28(%rsp)
  movslq -0x64(%rsp),%rax
  mov    %rcx,%r14
  mov    %rax,%r15
  lea    0x0(,%rax,4),%rbx
  mov    %rax,-0x10(%rsp)
  lea    0x0(,%r15,8),%r9d
  lea    (%rcx,%rbx,1),%rbp
  movslq %r9d,%r9
  lea    0x0(%rbp,%rbx,1),%rdi
  lea    0x0(,%r9,4),%r13
  lea    -0x8(%r11),%r9d
  shr    $0x3,%r9d
  lea    (%rdi,%rbx,1),%rsi
  lea    0x8(,%r9,8),%r15d
  mov    %r9d,%r10d
  lea    (%rsi,%rbx,1),%rcx
  mov    %r15d,-0x24(%rsp)
  shl    $0x6,%r10
  lea    (%rcx,%rbx,1),%rdx
  lea    0x100(%r12),%r15
  mov    %r15,-0x18(%rsp)
  lea    -0x1(%r11),%r15d
  lea    (%rdx,%rbx,1),%rax
  mov    %r15d,-0x4(%rsp)
  lea    0x20(%r12),%r15
  lea    (%rax,%rbx,1),%r8
  mov    %r13,%r12
  mov    %r10,-0x20(%rsp)
  mov    %r15,(%rsp)
  cs nopw 0x0(%rax,%rax,1)
L59:
  xor    %r13d,%r13d
  cmpl   $0x7,-0x58(%rsp)
  jle    L171
  movslq -0x54(%rsp),%r10
  mov    0x48(%rsp),%r15
  mov    -0x18(%rsp),%r11
  lea    (%r15,%r10,4),%r9
  add    -0x20(%rsp),%r10
  lea    (%r11,%r10,4),%r11
  xor    %r10d,%r10d
  nopl   (%rax)
L141:
  movss  (%r14,%r10,1),%xmm0
  add    $0x100,%r9
  movss  %xmm0,-0x100(%r9)
  movss  0x4(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xfc(%r9)
  movss  0x8(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xf8(%r9)
  movss  0xc(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xf4(%r9)
  movss  0x10(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xf0(%r9)
  movss  0x14(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xec(%r9)
  movss  0x18(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xe8(%r9)
  movss  0x1c(%r14,%r10,1),%xmm0
  movss  %xmm0,-0xe4(%r9)
  movss  0x0(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xe0(%r9)
  movss  0x4(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xdc(%r9)
  movss  0x8(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xd8(%r9)
  movss  0xc(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xd4(%r9)
  movss  0x10(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xd0(%r9)
  movss  0x14(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xcc(%r9)
  movss  0x18(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xc8(%r9)
  movss  0x1c(%rbp,%r10,1),%xmm0
  movss  %xmm0,-0xc4(%r9)
  movss  (%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xc0(%r9)
  movss  0x4(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xbc(%r9)
  movss  0x8(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xb8(%r9)
  movss  0xc(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xb4(%r9)
  movss  0x10(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xb0(%r9)
  movss  0x14(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xac(%r9)
  movss  0x18(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xa8(%r9)
  movss  0x1c(%rdi,%r10,1),%xmm0
  movss  %xmm0,-0xa4(%r9)
  movss  (%rsi,%r10,1),%xmm0
  movss  %xmm0,-0xa0(%r9)
  movss  0x4(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x9c(%r9)
  movss  0x8(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x98(%r9)
  movss  0xc(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x94(%r9)
  movss  0x10(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x90(%r9)
  movss  0x14(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x8c(%r9)
  movss  0x18(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x88(%r9)
  movss  0x1c(%rsi,%r10,1),%xmm0
  movss  %xmm0,-0x84(%r9)
  movss  (%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x80(%r9)
  movss  0x4(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x7c(%r9)
  movss  0x8(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x78(%r9)
  movss  0xc(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x74(%r9)
  movss  0x10(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x70(%r9)
  movss  0x14(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x6c(%r9)
  movss  0x18(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x68(%r9)
  movss  0x1c(%rcx,%r10,1),%xmm0
  movss  %xmm0,-0x64(%r9)
  movss  (%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x60(%r9)
  movss  0x4(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x5c(%r9)
  movss  0x8(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x58(%r9)
  movss  0xc(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x54(%r9)
  movss  0x10(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x50(%r9)
  movss  0x14(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x4c(%r9)
  movss  0x18(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x48(%r9)
  movss  0x1c(%rdx,%r10,1),%xmm0
  movss  %xmm0,-0x44(%r9)
  movss  (%rax,%r10,1),%xmm0
  movss  %xmm0,-0x40(%r9)
  movss  0x4(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x3c(%r9)
  movss  0x8(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x38(%r9)
  movss  0xc(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x34(%r9)
  movss  0x10(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x30(%r9)
  movss  0x14(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x2c(%r9)
  movss  0x18(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x28(%r9)
  movss  0x1c(%rax,%r10,1),%xmm0
  movss  %xmm0,-0x24(%r9)
  movss  (%r8,%r10,1),%xmm0
  movss  %xmm0,-0x20(%r9)
  movss  0x4(%r8,%r10,1),%xmm0
  movss  %xmm0,-0x1c(%r9)
  movss  0x8(%r8,%r10,1),%xmm0
  movss  %xmm0,-0x18(%r9)
  movss  0xc(%r8,%r10,1),%xmm0
  movss  %xmm0,-0x14(%r9)
  movss  0x10(%r8,%r10,1),%xmm0
  movss  %xmm0,-0x10(%r9)
  movss  0x14(%r8,%r10,1),%xmm0
  movss  %xmm0,-0xc(%r9)
  movss  0x18(%r8,%r10,1),%xmm0
  movss  %xmm0,-0x8(%r9)
  movss  0x1c(%r8,%r10,1),%xmm0
  add    %r12,%r10
  movss  %xmm0,-0x4(%r9)
  cmp    %r9,%r11
  jne    L141
  mov    -0x24(%rsp),%r13d
L171:
  cmp    %r13d,-0x58(%rsp)
  jle    L385
  mov    -0x64(%rsp),%r9d
  imul   %r13d,%r9d
  movslq %r9d,%r9
  add    -0x70(%rsp),%r9
  lea    0x0(,%r9,4),%r11
  movslq -0x54(%rsp),%r9
  mov    %r11,-0x60(%rsp)
  mov    -0x58(%rsp),%r11d
  mov    %r9,-0x48(%rsp)
  sub    %r13d,%r11d
  mov    %r11d,%r15d
  mov    %r11d,-0x30(%rsp)
  lea    -0x1(%r15),%r11
  imul   -0x10(%rsp),%r11
  lea    0x1c(,%r11,4),%r10
  shl    $0x2,%r11
  mov    %r10,-0x38(%rsp)
  movslq %r13d,%r10
  mov    %r10,-0x40(%rsp)
  lea    (%r9,%r10,8),%r10
  mov    0x48(%rsp),%r9
  lea    (%r9,%r10,4),%r10
  xor    %r9d,%r9d
  cmpl   $0x0,-0x64(%rsp)
  cmovns %r9,%r11
  mov    -0x40(%rsp),%r9
  add    -0x60(%rsp),%r11
  add    -0x50(%rsp),%r11
  lea    -0x1(%r9,%r15,1),%r15
  mov    -0x48(%rsp),%r9
  lea    0x7(%r9,%r15,8),%r15
  mov    0x48(%rsp),%r9
  lea    (%r9,%r15,4),%r15
  mov    -0x60(%rsp),%r9
  add    -0x50(%rsp),%r9
  cmp    %r15,%r11
  ja     L361
  mov    -0x64(%rsp),%r11d
  test   %r11d,%r11d
  mov    $0x1c,%r11d
  cmovns -0x38(%rsp),%r11
  add    -0x60(%rsp),%r11
  add    -0x50(%rsp),%r11
  cmp    %r11,%r10
  jbe    L216
L361:
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm2
  add    %rbx,%r9
  mov    -0x30(%rsp),%r15d
  movups %xmm2,(%r10)
  movups %xmm0,0x10(%r10)
  cmp    $0x1,%r15d
  jbe    L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm3
  add    %rbx,%r9
  movups %xmm3,0x20(%r10)
  movups %xmm0,0x30(%r10)
  cmp    $0x2,%r15d
  je     L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm4
  add    %rbx,%r9
  movups %xmm4,0x40(%r10)
  movups %xmm0,0x50(%r10)
  cmp    $0x3,%r15d
  je     L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm5
  add    %rbx,%r9
  movups %xmm5,0x60(%r10)
  movups %xmm0,0x70(%r10)
  cmp    $0x4,%r15d
  je     L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm6
  add    %rbx,%r9
  movups %xmm6,0x80(%r10)
  movups %xmm0,0x90(%r10)
  cmp    $0x5,%r15d
  je     L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm7
  add    %rbx,%r9
  movups %xmm7,0xa0(%r10)
  movups %xmm0,0xb0(%r10)
  cmp    $0x6,%r15d
  je     L385
  movups 0x10(%r9),%xmm0
  movups (%r9),%xmm6
  add    %rbx,%r9
  movups %xmm6,0xc0(%r10)
  movups %xmm0,0xd0(%r10)
  cmp    $0x7,%r15d
  je     L385
  movups (%r9),%xmm0
  movups 0x10(%r9),%xmm5
  movups %xmm0,0xe0(%r10)
  movups %xmm5,0xf0(%r10)
L385:
  add    $0x20,%r14
  add    $0x20,%rbp
  add    $0x20,%rdi
  add    $0x20,%rsi
  add    $0x20,%rcx
  add    $0x20,%rdx
  add    $0x20,%rax
  add    $0x20,%r8
  addq   $0x8,-0x70(%rsp)
  mov    -0x28(%rsp),%r11d
  mov    -0x70(%rsp),%r15
  add    %r11d,-0x54(%rsp)
  cmp    %r15d,-0x2c(%rsp)
  jg     L59
  mov    -0x8(%rsp),%eax
  mov    0x48(%rsp),%r12
  sub    $0x8,%eax
  shr    $0x3,%eax
  lea    0x8(,%rax,8),%eax
L165:
  mov    -0x8(%rsp),%ebx
  cmp    %eax,%ebx
  jle    L128
  mov    %ebx,%r15d
  mov    $0x8,%r11d
  mov    -0x58(%rsp),%ebx
  sub    %eax,%r15d
  cmp    %r11d,%r15d
  cmovle %r15d,%r11d
  test   %ebx,%ebx
  jle    L128
  mov    0x50(%rsp),%r10d
  mov    -0x50(%rsp),%r9
  mov    $0xfffffff9,%esi
  lea    0x7(%rax),%r8d
  sub    %eax,%esi
  mov    %r15d,-0x30(%rsp)
  imul   %eax,%r10d
  mov    %esi,%r14d
  mov    %r9,%r15
  movslq %r10d,%rdx
  lea    (%r10,%rbx,8),%ebx
  mov    %ebx,-0x70(%rsp)
  lea    (%r12,%rdx,4),%rdi
  mov    %r11d,%ebx
  movslq -0x64(%rsp),%rdx
  shr    $0x2,%ebx
  mov    %ebx,-0x60(%rsp)
  lea    0x0(,%rdx,4),%r13
  mov    %r11d,%ebx
  lea    0x1(%rax),%edx
  and    $0xfffffffc,%ebx
  movslq %edx,%rdx
  lea    (%r9,%rdx,4),%rcx
  lea    0x1(%rbx),%ebp
  lea    (%rax,%rbx,1),%edx
  mov    %edx,-0x54(%rsp)
  lea    (%rax,%rbp,1),%edx
  mov    %edx,-0x48(%rsp)
  lea    0x2(%rbx),%edx
  mov    %edx,-0x50(%rsp)
  add    %eax,%edx
  lea    -0x1(%r11),%eax
  mov    %eax,-0x58(%rsp)
  mov    %edx,-0x40(%rsp)
  mov    %r10d,%edx
L270:
  mov    %rdi,%r9
  mov    %edx,%eax
  lea    (%r14,%r8,1),%esi
  sub    %rcx,%r9
  sub    %r10d,%eax
  cmp    $0x8,%r9
  jbe    L285
  cmpl   $0x2,-0x58(%rsp)
  jbe    L285
  movups -0x4(%rcx),%xmm7
  cmpl   $0x2,-0x60(%rsp)
  movups %xmm7,(%rdi)
  jne    L116
  movups 0xc(%rcx),%xmm4
  movups %xmm4,0x10(%rdi)
L116:
  cmp    %r11d,%ebx
  je     L299
  mov    -0x54(%rsp),%r9d
  add    %esi,%r9d
  movslq %r9d,%r9
  movss  (%r15,%r9,4),%xmm0
  lea    (%rax,%rbx,1),%r9d
  add    %r10d,%r9d
  movslq %r9d,%r9
  movss  %xmm0,(%r12,%r9,4)
  cmp    %ebp,%r11d
  jle    L299
  mov    -0x48(%rsp),%r9d
  add    %esi,%r9d
  movslq %r9d,%r9
  movss  (%r15,%r9,4),%xmm0
  lea    (%rax,%rbp,1),%r9d
  add    %r10d,%r9d
  movslq %r9d,%r9
  movss  %xmm0,(%r12,%r9,4)
  mov    -0x50(%rsp),%r9d
  cmp    %r9d,%r11d
  jle    L299
  add    -0x40(%rsp),%esi
  add    %r9d,%eax
  movslq %esi,%rsi
  add    %r10d,%eax
  movss  (%r15,%rsi,4),%xmm0
  cltq
  movss  %xmm0,(%r12,%rax,4)
L299:
  add    $0x20,%rdi
  add    %r13,%rcx
  add    -0x64(%rsp),%r8d
  add    $0x8,%edx
  cmp    -0x70(%rsp),%edx
  jne    L270
L128:
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L216:
  mov    -0x4(%rsp),%r11d
  mov    -0x48(%rsp),%r15
  sub    %r13d,%r11d
  add    -0x40(%rsp),%r11
  lea    (%r15,%r11,8),%r11
  mov    (%rsp),%r15
  lea    (%r15,%r11,4),%r11
  cs nopw 0x0(%rax,%rax,1)
L389:
  movss  (%r9),%xmm0
  add    $0x20,%r10
  movss  %xmm0,-0x20(%r10)
  movss  0x4(%r9),%xmm0
  movss  %xmm0,-0x1c(%r10)
  movss  0x8(%r9),%xmm0
  movss  %xmm0,-0x18(%r10)
  movss  0xc(%r9),%xmm0
  movss  %xmm0,-0x14(%r10)
  movss  0x10(%r9),%xmm0
  movss  %xmm0,-0x10(%r10)
  movss  0x14(%r9),%xmm0
  movss  %xmm0,-0xc(%r10)
  movss  0x18(%r9),%xmm0
  movss  %xmm0,-0x8(%r10)
  movss  0x1c(%r9),%xmm0
  add    %rbx,%r9
  movss  %xmm0,-0x4(%r10)
  cmp    %r11,%r10
  jne    L389
  jmp    L385
L137:
  movss  -0x4(%rcx),%xmm0
  movss  %xmm0,(%rsi)
  cmp    $0x1,%eax
  je     L96
  movss  (%rcx),%xmm0
  lea    0x1(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  cmp    $0x2,%eax
  je     L96
  lea    -0x4(%r8),%edi
  movslq %edi,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    0x2(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  cmp    $0x3,%eax
  je     L96
  lea    -0x3(%r8),%edi
  movslq %edi,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    0x3(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  cmp    $0x4,%eax
  je     L96
  lea    -0x2(%r8),%edi
  movslq %edi,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    0x4(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  cmp    $0x5,%eax
  je     L96
  lea    -0x1(%r8),%edi
  movslq %edi,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    0x5(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  cmp    $0x7,%eax
  jne    L96
  movslq %r8d,%rdi
  movss  (%r15,%rdi,4),%xmm0
  lea    0x6(%rdx),%edi
  movss  %xmm0,(%r12,%rdi,4)
  jmp    L96
  nopl   0x0(%rax,%rax,1)
L285:
  movss  -0x4(%rcx),%xmm0
  mov    -0x30(%rsp),%esi
  movslq %edx,%rax
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x1,%esi
  je     L299
  lea    -0x6(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x1(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x2,%esi
  je     L299
  lea    -0x5(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x2(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x3,%esi
  je     L299
  lea    -0x4(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x3(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x4,%esi
  je     L299
  lea    -0x3(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x4(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x5,%esi
  je     L299
  lea    -0x2(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x5(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x6,%esi
  je     L299
  lea    -0x1(%r8),%eax
  cltq
  movss  (%r15,%rax,4),%xmm0
  lea    0x6(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  cmp    $0x7,%esi
  jle    L299
  movslq %r8d,%rax
  movss  (%r15,%rax,4),%xmm0
  lea    0x7(%rdx),%eax
  cltq
  movss  %xmm0,(%r12,%rax,4)
  jmp    L299
L31:
  xor    %eax,%eax
  jmp    L165
```

assistant: ```c
void s_cvt_mat2pmat(int row, int col, int offset, int bs_dummy, float *A, int lda, float *pA, int sda) {
  const int bs = 8;
  int i, ii, j, row0, row1, row2;
  row0 = (bs - offset % bs) % bs;
  if (row0 > row)
    row0 = row;
  row1 = row - row0;
  ii = 0;
  if (row0 > 0) {
    for (j = 0; j < col; j++) {
      for (i = 0; i < row0; i++) {
        pA[i + j * bs + ii * sda] = A[i + ii + j * lda];
      }
    }
    A += row0;
    pA += row0 + bs * (sda - 1);
  }
  ii = 0;
  for (; ii < row1 - 7; ii += bs) {
    j = 0;
    for (; j < col - 7; j += 8) {
      pA[0 + (j + 0) * bs + ii * sda] = A[ii + 0 + (j + 0) * lda];
      pA[1 + (j + 0) * bs + ii * sda] = A[ii + 1 + (j + 0) * lda];
      pA[2 + (j + 0) * bs + ii * sda] = A[ii + 2 + (j + 0) * lda];
      pA[3 + (j + 0) * bs + ii * sda] = A[ii + 3 + (j + 0) * lda];
      pA[4 + (j + 0) * bs + ii * sda] = A[ii + 4 + (j + 0) * lda];
      pA[5 + (j + 0) * bs + ii * sda] = A[ii + 5 + (j + 0) * lda];
      pA[6 + (j + 0) * bs + ii * sda] = A[ii + 6 + (j + 0) * lda];
      pA[7 + (j + 0) * bs + ii * sda] = A[ii + 7 + (j + 0) * lda];
      pA[0 + (j + 1) * bs + ii * sda] = A[ii + 0 + (j + 1) * lda];
      pA[1 + (j + 1) * bs + ii * sda] = A[ii + 1 + (j + 1) * lda];
      pA[2 + (j + 1) * bs + ii * sda] = A[ii + 2 + (j + 1) * lda];
      pA[3 + (j + 1) * bs + ii * sda] = A[ii + 3 + (j + 1) * lda];
      pA[4 + (j + 1) * bs + ii * sda] = A[ii + 4 + (j + 1) * lda];
      pA[5 + (j + 1) * bs + ii * sda] = A[ii + 5 + (j + 1) * lda];
      pA[6 + (j + 1) * bs + ii * sda] = A[ii + 6 + (j + 1) * lda];
      pA[7 + (j + 1) * bs + ii * sda] = A[ii + 7 + (j + 1) * lda];
      pA[0 + (j + 2) * bs + ii * sda] = A[ii + 0 + (j + 2) * lda];
      pA[1 + (j + 2) * bs + ii * sda] = A[ii + 1 + (j + 2) * lda];
      pA[2 + (j + 2) * bs + ii * sda] = A[ii + 2 + (j + 2) * lda];
      pA[3 + (j + 2) * bs + ii * sda] = A[ii + 3 + (j + 2) * lda];
      pA[4 + (j + 2) * bs + ii * sda] = A[ii + 4 + (j + 2) * lda];
      pA[5 + (j + 2) * bs + ii * sda] = A[ii + 5 + (j + 2) * lda];
      pA[6 + (j + 2) * bs + ii * sda] = A[ii + 6 + (j + 2) * lda];
      pA[7 + (j + 2) * bs + ii * sda] = A[ii + 7 + (j + 2) * lda];
      pA[0 + (j + 3) * bs + ii * sda] = A[ii + 0 + (j + 3) * lda];
      pA[1 + (j + 3) * bs + ii * sda] = A[ii + 1 + (j + 3) * lda];
      pA[2 + (j + 3) * bs + ii * sda] = A[ii + 2 + (j + 3) * lda];
      pA[3 + (j + 3) * bs + ii * sda] = A[ii + 3 + (j + 3) * lda];
      pA[4 + (j + 3) * bs + ii * sda] = A[ii + 4 + (j + 3) * lda];
      pA[5 + (j + 3) * bs + ii * sda] = A[ii + 5 + (j + 3) * lda];
      pA[6 + (j + 3) * bs + ii * sda] = A[ii + 6 + (j + 3) * lda];
      pA[7 + (j + 3) * bs + ii * sda] = A[ii + 7 + (j + 3) * lda];
      pA[0 + (j + 4) * bs + ii * sda] = A[ii + 0 + (j + 4) * lda];
      pA[1 + (j + 4) * bs + ii * sda] = A[ii + 1 + (j + 4) * lda];
      pA[2 + (j + 4) * bs + ii * sda] = A[ii + 2 + (j + 4) * lda];
      pA[3 + (j + 4) * bs + ii * sda] = A[ii + 3 + (j + 4) * lda];
      pA[4 + (j + 4) * bs + ii * sda] = A[ii + 4 + (j + 4) * lda];
      pA[5 + (j + 4) * bs + ii * sda] = A[ii + 5 + (j + 4) * lda];
      pA[6 + (j + 4) * bs + ii * sda] = A[ii + 6 + (j + 4) * lda];
      pA[7 + (j + 4) * bs + ii * sda] = A[ii + 7 + (j + 4) * lda];
      pA[0 + (j + 5) * bs + ii * sda] = A[ii + 0 + (j + 5) * lda];
      pA[1 + (j + 5) * bs + ii * sda] = A[ii + 1 + (j + 5) * lda];
      pA[2 + (j + 5) * bs + ii * sda] = A[ii + 2 + (j + 5) * lda];
      pA[3 + (j + 5) * bs + ii * sda] = A[ii + 3 + (j + 5) * lda];
      pA[4 + (j + 5) * bs + ii * sda] = A[ii + 4 + (j + 5) * lda];
      pA[5 + (j + 5) * bs + ii * sda] = A[ii + 5 + (j + 5) * lda];
      pA[6 + (j + 5) * bs + ii * sda] = A[ii + 6 + (j + 5) * lda];
      pA[7 + (j + 5) * bs + ii * sda] = A[ii + 7 + (j + 5) * lda];
      pA[0 + (j + 6) * bs + ii * sda] = A[ii + 0 + (j + 6) * lda];
      pA[1 + (j + 6) * bs + ii * sda] = A[ii + 1 + (j + 6) * lda];
      pA[2 + (j + 6) * bs + ii * sda] = A[ii + 2 + (j + 6) * lda];
      pA[3 + (j + 6) * bs + ii * sda] = A[ii + 3 + (j + 6) * lda];
      pA[4 + (j + 6) * bs + ii * sda] = A[ii + 4 + (j + 6) * lda];
      pA[5 + (j + 6) * bs + ii * sda] = A[ii + 5 + (j + 6) * lda];
      pA[6 + (j + 6) * bs + ii * sda] = A[ii + 6 + (j + 6) * lda];
      pA[7 + (j + 6) * bs + ii * sda] = A[ii + 7 + (j + 6) * lda];
      pA[0 + (j + 7) * bs + ii * sda] = A[ii + 0 + (j + 7) * lda];
      pA[1 + (j + 7) * bs + ii * sda] = A[ii + 1 + (j + 7) * lda];
      pA[2 + (j + 7) * bs + ii * sda] = A[ii + 2 + (j + 7) * lda];
      pA[3 + (j + 7) * bs + ii * sda] = A[ii + 3 + (j + 7) * lda];
      pA[4 + (j + 7) * bs + ii * sda] = A[ii + 4 + (j + 7) * lda];
      pA[5 + (j + 7) * bs + ii * sda] = A[ii + 5 + (j + 7) * lda];
      pA[6 + (j + 7) * bs + ii * sda] = A[ii + 6 + (j + 7) * lda];
      pA[7 + (j + 7) * bs + ii * sda] = A[ii + 7 + (j + 7) * lda];
    }
    for (; j < col; j++) {
      pA[0 + (j + 0) * bs + ii * sda] = A[ii + 0 + (j + 0) * lda];
      pA[1 + (j + 0) * bs + ii * sda] = A[ii + 1 + (j + 0) * lda];
      pA[2 + (j + 0) * bs + ii * sda] = A[ii + 2 + (j + 0) * lda];
      pA[3 + (j + 0) * bs + ii * sda] = A[ii + 3 + (j + 0) * lda];
      pA[4 + (j + 0) * bs + ii * sda] = A[ii + 4 + (j + 0) * lda];
      pA[5 + (j + 0) * bs + ii * sda] = A[ii + 5 + (j + 0) * lda];
      pA[6 + (j + 0) * bs + ii * sda] = A[ii + 6 + (j + 0) * lda];
      pA[7 + (j + 0) * bs + ii * sda] = A[ii + 7 + (j + 0) * lda];
    }
  }
  if (ii < row1) {
    row2 = row1 - ii;
    if (bs < row2)
      row2 = bs;
    for (j = 0; j < col; j++) {
      for (i = 0; i < row2; i++) {
        pA[i + j * bs + ii * sda] = A[i + ii + j * lda];
      }
    }
  }
}
```