user: What would the C source look like for the assembly code provided here?

```asm
<attach_mkap_conn_filter>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x88,%rsp
  mov    %edi,0x4(%rsp)
  mov    %esi,0x8(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x78(%rsp)
  xor    %eax,%eax
  mov    D50(%rip),%r14
  mov    (%r14),%edi
  mov    D166(%rip),%rax
  or     (%rax),%edi
  mov    D122(%rip),%r13
  or     0x0(%r13),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0xc(%rsp)
  mov    (%r14),%edi
  mov    D166(%rip),%rax
  or     (%rax),%edi
  or     0x0(%r13),%edi
  mov    $0xe,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x20(%rsp)
  mov    D270(%rip),%rbp
  mov    0x0(%rbp),%edi
  mov    D259(%rip),%rax
  or     (%rax),%edi
  mov    D324(%rip),%r15
  or     (%r15),%edi
  mov    $0xc,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x24(%rsp)
  mov    D193(%rip),%r12
  mov    (%r12),%edi
  mov    D261(%rip),%rax
  or     (%rax),%edi
  mov    D88(%rip),%rbx
  or     (%rbx),%edi
  mov    $0x2,%ecx
  mov    $0x0,%edx
  mov    $0x8100,%esi
  call   <BPF_JUMP@plt>
  mov    %eax,0x28(%rsp)
  mov    (%r14),%edi
  mov    D166(%rip),%rax
  or     (%rax),%edi
  or     0x0(%r13),%edi
  mov    $0x12,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x2c(%rsp)
  mov    0x0(%rbp),%edi
  mov    D259(%rip),%rax
  or     (%rax),%edi
  or     (%r15),%edi
  mov    $0x10,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x30(%rsp)
  mov    (%r12),%edi
  mov    D261(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0xc,%ecx
  mov    $0x0,%edx
  mov    D145(%rip),%rax
  mov    (%rax),%esi
  call   <BPF_JUMP@plt>
  mov    %eax,0x34(%rsp)
  mov    D31(%rip),%r15
  mov    0x0(%rbp),%edi
  or     (%r15),%edi
  mov    D288(%rip),%r13
  or     0x0(%r13),%edi
  mov    $0x9,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x38(%rsp)
  mov    (%r12),%edi
  mov    D261(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0xa,%ecx
  mov    $0x0,%edx
  mov    D314(%rip),%rax
  mov    (%rax),%esi
  call   <BPF_JUMP@plt>
  mov    %eax,0x3c(%rsp)
  mov    0x0(%rbp),%edi
  or     (%r15),%edi
  or     0x0(%r13),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x40(%rsp)
  mov    D304(%rip),%r15
  mov    (%r15),%edi
  mov    D208(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0xf,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x44(%rsp)
  mov    (%r15),%edi
  mov    D179(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0x4,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x48(%rsp)
  mov    (%r15),%edi
  mov    D134(%rip),%rax
  or     (%rax),%edi
  mov    D126(%rip),%rax
  or     (%rax),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x4c(%rsp)
  mov    $0x0,%esi
  mov    D7(%rip),%rax
  mov    (%rax),%edi
  call   <BPF_STMT@plt>
  mov    %eax,0x50(%rsp)
  mov    (%r14),%edi
  mov    D166(%rip),%rax
  or     (%rax),%edi
  mov    D97(%rip),%rax
  or     (%rax),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x54(%rsp)
  mov    0x0(%rbp),%edi
  mov    D259(%rip),%rax
  or     (%rax),%edi
  or     0x0(%r13),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x58(%rsp)
  mov    (%r12),%edi
  mov    D261(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0x0,%ecx
  mov    $0x3,%edx
  mov    $0xd431,%esi
  call   <BPF_JUMP@plt>
  mov    %eax,0x5c(%rsp)
  mov    0x0(%rbp),%edi
  mov    D259(%rip),%rax
  or     (%rax),%edi
  or     0x0(%r13),%edi
  mov    $0x2,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x60(%rsp)
  mov    (%r12),%edi
  mov    D261(%rip),%rax
  or     (%rax),%edi
  or     (%rbx),%edi
  mov    $0x0,%ecx
  mov    $0x1,%edx
  mov    $0xd431,%esi
  call   <BPF_JUMP@plt>
  mov    %eax,0x64(%rsp)
  mov    D232(%rip),%rbp
  mov    0x0(%rbp),%edi
  or     (%rbx),%edi
  mov    $0xffffff,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x68(%rsp)
  mov    0x0(%rbp),%edi
  or     (%rbx),%edi
  mov    $0x0,%esi
  call   <BPF_STMT@plt>
  mov    %eax,0x6c(%rsp)
  lea    0x10(%rsp),%rdi
  mov    $0x10,%edx
  mov    $0x0,%esi
  call   <memset@plt>
  movl   $0x14,0x10(%rsp)
  lea    0x20(%rsp),%rax
  mov    %rax,0x18(%rsp)
  cmpl   $0xc,0x8(%rsp)
  je     L16
L1:
  lea    0x10(%rsp),%rcx
  mov    $0x10,%r8d
  mov    D240(%rip),%rax
  mov    (%rax),%edx
  mov    D14(%rip),%rax
  mov    (%rax),%esi
  mov    0x4(%rsp),%edi
  call   <setsockopt@plt>
  mov    0x78(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L15
  add    $0x88,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L16:
  mov    0xc(%rsp),%eax
  mov    %eax,0x34(%rsp)
  movl   $0xf,0x10(%rsp)
  lea    0x34(%rsp),%rax
  mov    %rax,0x18(%rsp)
  jmp    L1
L15:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
int attach_mkap_conn_filter(int sock, unsigned int linktype) {
  struct sock_filter raw_ip_patch = BPF_STMT(BPF_LDX | BPF_W | BPF_IMM, 0);
  struct sock_filter filter_instr[] = {
      BPF_STMT(BPF_LDX | BPF_W | BPF_IMM, 14), BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 12), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 0x8100, 0, 2), BPF_STMT(BPF_LDX | BPF_W | BPF_IMM, 18), BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 16), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ETH_P_IP, 0, 12), BPF_STMT(BPF_LD | BPF_B | BPF_IND, 9), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_TCP, 0, 10), BPF_STMT(BPF_LD | BPF_B | BPF_IND, 0), BPF_STMT(BPF_ALU | BPF_AND | BPF_K, 0x0F), BPF_STMT(BPF_ALU | BPF_MUL | BPF_K, 4), BPF_STMT(BPF_ALU | BPF_ADD | BPF_X, 0), BPF_STMT(BPF_ST, 0), BPF_STMT(BPF_LDX | BPF_W | BPF_MEM, 0), BPF_STMT(BPF_LD | BPF_H | BPF_IND, 0), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 54321, 3, 0), BPF_STMT(BPF_LD | BPF_H | BPF_IND, 2), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 54321, 1, 0), BPF_STMT(BPF_RET | BPF_K, 0x00FFFFFF), BPF_STMT(BPF_RET | BPF_K, 0),
  };
  struct sock_fprog filter_prog;
  memset(&filter_prog, 0, sizeof(filter_prog));
  filter_prog.len = sizeof(filter_instr) / sizeof(filter_instr[0]);
  filter_prog.filter = filter_instr;
  if (linktype == 12) {
    filter_instr[5] = raw_ip_patch;
    filter_prog.len -= 5;
    filter_prog.filter = &filter_instr[5];
  }
  return setsockopt(sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter_prog, sizeof(filter_prog));
}
```