user: 请将以下的汇编代码转换成C语言代码：

```asm
<cppFunction>:
  endbr64
  mov    %esi,%r10d
  mov    %rcx,%r9
  mov    %rdx,%rsi
  lea    -0x1(%r10),%ecx
  test   %ecx,%ecx
  jle    L212
  push   %r15
  mov    %r8d,%eax
  xor    %edx,%edx
  push   %r14
  shr    $0x4,%eax
  push   %r13
  mov    %r8d,%r13d
  lea    -0x1(%rax),%r10d
  mov    %r8d,%eax
  push   %r12
  lea    -0x1(%r8),%r12d
  and    $0xf,%r13d
  and    $0xfffffff0,%eax
  push   %rbp
  add    $0x1,%r10
  push   %rbx
  lea    0x1(%r9),%rbx
  shl    $0x4,%r10
  mov    %rbx,-0x20(%rsp)
  mov    %r12d,%ebx
  mov    %rbx,-0x10(%rsp)
  lea    -0x1(%r13),%ebx
  mov    %eax,-0x18(%rsp)
  xor    %eax,%eax
  mov    %ebx,-0x14(%rsp)
  jmp    L165
  nopl   0x0(%rax)
L157:
  lea    0x1(%rax),%ebx
  add    $0x1,%edx
  cltq
  mov    %r11b,(%rsi,%rax,1)
  cmp    %ecx,%edx
  jge    L17
L173:
  mov    %ebx,%eax
L165:
  movslq %edx,%rbx
  movzbl (%rdi,%rbx,1),%r11d
  cmp    $0x4b,%r11b
  jne    L157
  lea    0x1(%rdi,%rbx,1),%rbx
  cmpb   $0x4e,(%rbx)
  jne    L157
  movslq %eax,%r14
  lea    0x2(%rax),%r11d
  lea    (%rsi,%r14,1),%rbp
  movslq %r11d,%r11
  movb   $0x4b,0x0(%rbp)
  movzbl (%rbx),%r15d
  lea    0x1(%rax),%ebx
  add    $0x3,%eax
  movslq %ebx,%rbx
  mov    %r15b,(%rsi,%rbx,1)
  movb   $0x20,(%rsi,%r11,1)
  test   %r8d,%r8d
  jle    L89
  lea    0x3(%rsi,%r14,1),%r11
  mov    %r11,%rbx
  sub    -0x20(%rsp),%rbx
  cmp    $0xe,%rbx
  jbe    L196
  cmp    $0x6,%r12d
  jbe    L196
  cmp    $0xe,%r12d
  jbe    L44
  xor    %ebx,%ebx
  nopl   0x0(%rax)
L236:
  movdqu (%r9,%rbx,1),%xmm1
  movups %xmm1,(%r11,%rbx,1)
  add    $0x10,%rbx
  cmp    %r10,%rbx
  jne    L236
  mov    -0x18(%rsp),%ebx
  lea    (%rax,%rbx,1),%ebp
  cmp    %r8d,%ebx
  je     L172
  cmpl   $0x6,-0x14(%rsp)
  mov    %r13d,%r14d
  mov    %ebx,%r15d
  jbe    L61
L88:
  movq   (%r9,%r15,1),%xmm0
  movq   %xmm0,(%r11,%r15,1)
  mov    %r14d,%r15d
  and    $0xfffffff8,%r15d
  add    %r15d,%ebp
  lea    (%rbx,%r15,1),%r11d
  cmp    %r15d,%r14d
  je     L172
L186:
  movslq %r11d,%rbx
  lea    0x1(%rbp),%r14d
  movzbl (%r9,%rbx,1),%r15d
  movslq %ebp,%rbx
  mov    %r15b,(%rsi,%rbx,1)
  lea    0x1(%r11),%ebx
  cmp    %ebx,%r8d
  jle    L172
  movslq %ebx,%rbx
  movslq %r14d,%r14
  lea    0x2(%rbp),%r15d
  movzbl (%r9,%rbx,1),%ebx
  mov    %bl,(%rsi,%r14,1)
  lea    0x2(%r11),%ebx
  cmp    %ebx,%r8d
  jle    L172
  movslq %ebx,%rbx
  movslq %r15d,%r15
  lea    0x3(%rbp),%r14d
  movzbl (%r9,%rbx,1),%ebx
  mov    %bl,(%rsi,%r15,1)
  lea    0x3(%r11),%ebx
  cmp    %ebx,%r8d
  jle    L172
  movslq %ebx,%rbx
  movslq %r14d,%r14
  lea    0x4(%rbp),%r15d
  movzbl (%r9,%rbx,1),%ebx
  mov    %bl,(%rsi,%r14,1)
  lea    0x4(%r11),%ebx
  cmp    %ebx,%r8d
  jle    L172
  movslq %ebx,%rbx
  movslq %r15d,%r15
  lea    0x5(%rbp),%r14d
  movzbl (%r9,%rbx,1),%ebx
  mov    %bl,(%rsi,%r15,1)
  lea    0x5(%r11),%ebx
  cmp    %ebx,%r8d
  jle    L172
  movslq %ebx,%rbx
  movslq %r14d,%r14
  add    $0x6,%r11d
  add    $0x6,%ebp
  movzbl (%r9,%rbx,1),%ebx
  mov    %bl,(%rsi,%r14,1)
  cmp    %r11d,%r8d
  jle    L172
  movslq %r11d,%r11
  movslq %ebp,%rbp
  movzbl (%r9,%r11,1),%r11d
  mov    %r11b,(%rsi,%rbp,1)
L172:
  add    %r8d,%eax
L89:
  add    $0x2,%edx
  lea    0x1(%rax),%ebx
  cltq
  movslq %edx,%r11
  add    $0x1,%edx
  movzbl (%rdi,%r11,1),%r11d
  mov    %r11b,(%rsi,%rax,1)
  cmp    %ecx,%edx
  jl     L173
L17:
  movslq %ebx,%rbx
  add    %rbx,%rsi
  pop    %rbx
  pop    %rbp
  movb   $0x0,(%rsi)
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L212:
  movb   $0x0,(%rdx)
  ret
L196:
  mov    -0x10(%rsp),%r14
  xor    %r11d,%r11d
  nopl   0x0(%rax)
L5:
  movzbl (%r9,%r11,1),%ebx
  mov    %bl,0x3(%rbp,%r11,1)
  mov    %r11,%rbx
  add    $0x1,%r11
  cmp    %rbx,%r14
  jne    L5
  jmp    L172
L44:
  mov    %r8d,%r14d
  mov    %eax,%ebp
  xor    %r15d,%r15d
  xor    %ebx,%ebx
  jmp    L88
L61:
  mov    %ebx,%r11d
  jmp    L186
```

assistant: ```c
void cppFunction(char *s, int s_size, char *result, char *insert, int insert_size) {
  int size = 0;
  for (int i = 0; i < s_size - 1; ++i) {
    if (s[i] == 'K' && s[i + 1] == 'N') {
      result[size++] = s[i];
      result[size++] = s[i + 1];
      result[size++] = ' ';
      for (int j = 0; j < insert_size; ++j) {
        result[size++] = insert[j];
      }
      i += 2;
    }
    result[size++] = s[i];
  }
  result[size] = '\0';
}
```