user: 请从给定的汇编指令推导出C源代码：

```asm
<ne_test_pncm>:
  endbr64
  push   %r15
  xor    %r15d,%r15d
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  mov    %edi,%ebp
  push   %rbx
  sub    $0xc8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xb8(%rsp)
  xor    %eax,%eax
  lea    0x60(%rsp),%r12
  lea    0x10(%rsp),%r14
  mov    %rsp,%r13
L11:
  movdqa D107(%rip),%xmm0
  movdqa D43(%rip),%xmm1
  mov    %r13,%rbx
  movdqa D36(%rip),%xmm2
  movdqa D79(%rip),%xmm3
  movdqa D81(%rip),%xmm4
  movdqa D103(%rip),%xmm5
  movaps %xmm0,(%rsp)
  movdqa D96(%rip),%xmm6
  movdqa D20(%rip),%xmm7
  movaps %xmm1,0x10(%rsp)
  movdqa D55(%rip),%xmm0
  movdqa D57(%rip),%xmm1
  movaps %xmm2,0x60(%rsp)
  movdqa D54(%rip),%xmm2
  movaps %xmm3,0x20(%rsp)
  movaps %xmm4,0x70(%rsp)
  movaps %xmm5,0x30(%rsp)
  movaps %xmm6,0x80(%rsp)
  movaps %xmm7,0x40(%rsp)
  movaps %xmm0,0x90(%rsp)
  movaps %xmm1,0x50(%rsp)
  movaps %xmm2,0xa0(%rsp)
L28:
  mov    (%rbx),%esi
  mov    %r15d,%r8d
  mov    %r12,%rcx
  mov    %r14,%rdx
  mov    %ebp,%edi
  call   <ne_put_node_cmap@plt>
  test   %eax,%eax
  js     L33
  add    $0x4,%rbx
  cmp    %r14,%rbx
  jne    L28
  add    $0x1,%r15d
  cmp    $0xa,%r15d
  jne    L11
  xor    %eax,%eax
L33:
  mov    0xb8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L8
  add    $0xc8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L8:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D107
data_type: byte[16]
name: retrieve_data
arguments: label: D43
data_type: byte[16]
name: retrieve_data
arguments: label: D36
data_type: byte[16]
name: retrieve_data
arguments: label: D79
data_type: byte[16]
name: retrieve_data
arguments: label: D81
data_type: byte[16]
name: retrieve_data
arguments: label: D103
data_type: byte[16]
name: retrieve_data
arguments: label: D96
data_type: byte[16]
name: retrieve_data
arguments: label: D20
data_type: byte[16]
name: retrieve_data
arguments: label: D55
data_type: byte[16]
name: retrieve_data
arguments: label: D57
data_type: byte[16]
name: retrieve_data
arguments: label: D54
data_type: byte[16]

tool: {"D107": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D43": [0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00]}

tool: {"D36": [0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]}

tool: {"D79": [0x0a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x10,0x00,0x00,0x00]}

tool: {"D81": [0x0f,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D103": [0x12,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D96": [0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x24,0x00,0x00,0x00]}

tool: {"D20": [0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x20,0x00,0x00,0x00]}

tool: {"D55": [0x27,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x30,0x00,0x00,0x00]}

tool: {"D57": [0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x28,0x00,0x00,0x00]}

tool: {"D54": [0x33,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3c,0x00,0x00,0x00]}

assistant: ```c
int ne_test_pncm(int fileid) {
  int i, iproc, error;
  int node_map_ids[4], node_ids[20], proc_ids[20];
  for (iproc = 0; iproc < 10; iproc++) {
    for (i = 0; i < 4; i++) {
      node_map_ids[i] = (i + 1);
    }
    for (i = 0; i < 20; i++) {
      node_ids[i] = 2 * (i + 1);
      proc_ids[i] = 3 * (i + 1);
    }
    for (i = 0; i < 4; i++) {
      error = ne_put_node_cmap(fileid, node_map_ids[i], node_ids, proc_ids, iproc);
      if (error < 0)
        return error;
    }
  }
  return 0;
}
```