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

```asm
<DumpAllCommandSwitchStatement>:
  endbr64
  push   %r15
  lea    D19(%rip),%rdi
  lea    D172(%rip),%r15
  push   %r14
  lea    D5(%rip),%r14
  push   %r13
  lea    D148(%rip),%r13
  push   %r12
  lea    D119(%rip),%r12
  push   %rbp
  lea    D162(%rip),%rbp
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x48,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x38(%rsp)
  xor    %eax,%eax
  call   <bwx_DEBUG@plt>
  lea    D96(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D55(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D109(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D20(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  mov    %rsp,%r12
  call   <prn_lprintf@plt>
L17:
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r15,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r12,%rsi
  mov    %ebx,%edi
  xor    %eax,%eax
  call   <CommandUniqueID@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r14,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D61(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r12,%rsi
  mov    %ebx,%edi
  xor    %eax,%eax
  call   <CommandVector@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  add    $0x1,%ebx
  call   <prn_lprintf@plt>
  lea    D128(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  cmp    $0x8f,%ebx
  jne    L17
  mov    %rbp,%rdi
  xor    %eax,%eax
  lea    D163(%rip),%r12
  call   <prn_lprintf@plt>
  lea    D0(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D41(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D91(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  lea    D121(%rip),%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <prn_lprintf@plt>
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <prn_lprintf@plt>
  xor    %eax,%eax
  lea    D63(%rip),%rdi
  call   <prn_lprintf@plt>
  mov    0x38(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L12
  add    $0x48,%rsp
  mov    %r12,%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10c0 <prn_lprintf@plt>
L12:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D19
type_guessed: string
name: disassemble_data
arguments: data_label: D172
type_guessed: string
name: disassemble_data
arguments: data_label: D5
type_guessed: string
name: disassemble_data
arguments: data_label: D148
type_guessed: string
name: disassemble_data
arguments: data_label: D119
type_guessed: string
name: disassemble_data
arguments: data_label: D162
type_guessed: string
name: disassemble_data
arguments: data_label: D96
type_guessed: string
name: disassemble_data
arguments: data_label: D55
type_guessed: string
name: disassemble_data
arguments: data_label: D109
type_guessed: string
name: disassemble_data
arguments: data_label: D20
type_guessed: string
name: disassemble_data
arguments: data_label: D61
type_guessed: string
name: disassemble_data
arguments: data_label: D128
type_guessed: string
name: disassemble_data
arguments: data_label: D163
type_guessed: string
name: disassemble_data
arguments: data_label: D0
type_guessed: string
name: disassemble_data
arguments: data_label: D41
type_guessed: string
name: disassemble_data
arguments: data_label: D91
type_guessed: string
name: disassemble_data
arguments: data_label: D121
type_guessed: string
name: disassemble_data
arguments: data_label: D63
type_guessed: string

tool: D19: DumpAllCommandSwitchStatement

tool: D172: case 

tool: D5: :


tool: D148: break;


tool: D119: {


tool: D162:    

tool: D96: /* SWITCH */


tool: D55: struct bwb_line *bwb_vector( struct bwb_line *l )


tool: D109: struct bwb_line *r;


tool: D20: switch( l->cmdnum )


tool: D61: r = 

tool: D128: ( l );


tool: D163: }


tool: D0: default:


tool: D41: sprintf( bwb_ebuf, "in bwb_vector(), INTERNAL ERROR: %d not in switch", l->cmdnum );


tool: D91: bwb_error( bwb_ebuf );


tool: D121: r = l;


tool: D63: return r;


assistant: ```c
void DumpAllCommandSwitchStatement(void) {
  int i;
  bwx_DEBUG(__FUNCTION__);
  prn_lprintf("/* SWITCH */\n");
  prn_lprintf("struct bwb_line *bwb_vector( struct bwb_line *l )\n");
  prn_lprintf("{\n");
  prn_lprintf("   ");
  prn_lprintf("struct bwb_line *r;\n");
  prn_lprintf("   ");
  prn_lprintf("switch( l->cmdnum )\n");
  prn_lprintf("   ");
  prn_lprintf("{\n");
  for (i = 0; i < 143; i++) {
    char tbuf[40 + 1];
    prn_lprintf("   ");
    prn_lprintf("case ");
    CommandUniqueID(i, tbuf);
    prn_lprintf(tbuf);
    prn_lprintf(":\n");
    prn_lprintf("   ");
    prn_lprintf("   ");
    prn_lprintf("r = ");
    CommandVector(i, tbuf);
    prn_lprintf(tbuf);
    prn_lprintf("( l );\n");
    prn_lprintf("   ");
    prn_lprintf("   ");
    prn_lprintf("break;\n");
  }
  prn_lprintf("   ");
  prn_lprintf("default:\n");
  prn_lprintf("   ");
  prn_lprintf("   ");
  prn_lprintf("sprintf( bwb_ebuf, \"in bwb_vector(), INTERNAL ERROR: %d not in switch\", l->cmdnum );\n");
  prn_lprintf("   ");
  prn_lprintf("   ");
  prn_lprintf("bwb_error( bwb_ebuf );\n");
  prn_lprintf("   ");
  prn_lprintf("   ");
  prn_lprintf("r = l;\n");
  prn_lprintf("   ");
  prn_lprintf("   ");
  prn_lprintf("break;\n");
  prn_lprintf("   ");
  prn_lprintf("}\n");
  prn_lprintf("   ");
  prn_lprintf("return r;\n");
  prn_lprintf("}\n");
}
```