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

```asm
<vmsarg_mapping>:
  endbr64
  sub    $0x8,%rsp
  movl   $0x1a,(%rdi)
  lea    D101(%rip),%rdi
  mov    0x30(%rsp),%rcx
  mov    0x18(%rsp),%rax
  movl   $0x515,(%rcx)
  lea    D317(%rip),%rcx
  mov    %rcx,0x8(%rsi)
  lea    D142(%rip),%rcx
  movl   $0x1,0x4(%rax)
  mov    %rcx,0x8(%rdx)
  lea    D305(%rip),%rcx
  mov    %rcx,0x10(%rsi)
  lea    D424(%rip),%rcx
  movl   $0x1,0x8(%rax)
  mov    %rdi,0x10(%rdx)
  lea    D263(%rip),%rdi
  mov    %rcx,0x18(%rsi)
  lea    D405(%rip),%rcx
  movl   $0x1,0xc(%rax)
  mov    %rdi,0x18(%rdx)
  lea    D314(%rip),%rdi
  mov    %rcx,0x20(%rsi)
  lea    D500(%rip),%rcx
  movl   $0x1,0x10(%rax)
  mov    %rdi,0x20(%rdx)
  lea    D439(%rip),%rdi
  mov    %rcx,0x28(%rsi)
  lea    D523(%rip),%rcx
  movl   $0x1,0x14(%rax)
  mov    %rdi,0x28(%rdx)
  lea    D178(%rip),%rdi
  mov    %rcx,0x30(%rsi)
  lea    D44(%rip),%rcx
  movl   $0x1,0x18(%rax)
  mov    %rdi,0x30(%rdx)
  lea    D127(%rip),%rdi
  mov    %rcx,0x38(%rsi)
  lea    D56(%rip),%rcx
  movl   $0x1,0x1c(%rax)
  mov    %rdi,0x38(%rdx)
  lea    D360(%rip),%rdi
  mov    %rcx,0x40(%rsi)
  lea    D231(%rip),%rcx
  movl   $0x1,0x20(%rax)
  mov    %rdi,0x40(%rdx)
  lea    D287(%rip),%rdi
  mov    %rcx,0x48(%rsi)
  lea    D394(%rip),%rcx
  movl   $0x1,0x24(%rax)
  mov    %rdi,0x48(%rdx)
  lea    D443(%rip),%rdi
  mov    %rcx,0x50(%rsi)
  lea    D196(%rip),%rcx
  movl   $0x1,0x28(%rax)
  mov    %rdi,0x50(%rdx)
  lea    D264(%rip),%rdi
  mov    %rcx,0x58(%rsi)
  lea    D132(%rip),%rcx
  movl   $0x1,0x2c(%rax)
  mov    %rdi,0x58(%rdx)
  lea    D138(%rip),%rdi
  mov    %rcx,0x60(%rsi)
  lea    D519(%rip),%rcx
  movl   $0x1,0x30(%rax)
  mov    %rdi,0x60(%rdx)
  lea    D241(%rip),%rdi
  mov    %rcx,0x68(%rsi)
  lea    D517(%rip),%rcx
  movl   $0x1,0x34(%rax)
  mov    %rdi,0x68(%rdx)
  lea    D256(%rip),%rdi
  mov    %rcx,0x70(%rsi)
  lea    D96(%rip),%rcx
  movl   $0x1,0x38(%rax)
  mov    %rdi,0x70(%rdx)
  lea    D470(%rip),%rdi
  mov    %rcx,0x78(%rsi)
  lea    D489(%rip),%rcx
  movl   $0x1,0x3c(%rax)
  mov    %rdi,0x78(%rdx)
  lea    D103(%rip),%rdi
  mov    %rcx,0x80(%rsi)
  lea    D147(%rip),%rcx
  movl   $0x1,0x40(%rax)
  mov    %rdi,0x80(%rdx)
  lea    D353(%rip),%rdi
  mov    %rdi,0x88(%rsi)
  movl   $0x1,0x44(%rax)
  mov    %rcx,0x88(%rdx)
  lea    D357(%rip),%rcx
  mov    %rcx,0x90(%rsi)
  lea    D5(%rip),%rcx
  movl   $0x1,0x48(%rax)
  mov    %rcx,0x90(%rdx)
  lea    D53(%rip),%rcx
  mov    %rcx,0x98(%rsi)
  lea    D391(%rip),%rcx
  movl   $0x1,0x4c(%rax)
  mov    %rcx,0x98(%rdx)
  lea    D444(%rip),%rcx
  mov    %rcx,0xa0(%rsi)
  lea    D72(%rip),%rcx
  movl   $0x1,0x50(%rax)
  mov    %rcx,0xa0(%rdx)
  lea    D85(%rip),%rcx
  mov    %rcx,0xa8(%rsi)
  lea    D190(%rip),%rcx
  movl   $0x1,0x54(%rax)
  mov    %rcx,0xa8(%rdx)
  lea    D376(%rip),%rcx
  mov    %rcx,0xb0(%rsi)
  lea    D369(%rip),%rcx
  movl   $0x1,0x58(%rax)
  mov    %rcx,0xb0(%rdx)
  lea    D20(%rip),%rcx
  mov    %rcx,0xb8(%rsi)
  lea    D115(%rip),%rcx
  movl   $0x1,0x5c(%rax)
  mov    %rcx,0xb8(%rdx)
  lea    D78(%rip),%rcx
  mov    %rcx,0xc0(%rsi)
  lea    D296(%rip),%rcx
  movl   $0x1,0x60(%rax)
  mov    %rcx,0xc0(%rdx)
  lea    D488(%rip),%rcx
  mov    %rcx,0xc8(%rsi)
  lea    D193(%rip),%rcx
  movl   $0x1,0x64(%rax)
  mov    %rcx,0xc8(%rdx)
  lea    D407(%rip),%rcx
  mov    %rcx,0xd0(%rsi)
  lea    D107(%rip),%rsi
  movl   $0x1,0x68(%rax)
  lea    D526(%rip),%rax
  mov    %rax,0xd0(%rdx)
  xor    %edx,%edx
  call   <setenv@plt>
  test   %rax,%rax
  sete   %al
  add    $0x8,%rsp
  movzbl %al,%eax
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D101
data_type: string
name: extract_symbolic_data
arguments: data_tag: D317
data_type: string
name: extract_symbolic_data
arguments: data_tag: D142
data_type: string
name: extract_symbolic_data
arguments: data_tag: D305
data_type: string
name: extract_symbolic_data
arguments: data_tag: D424
data_type: string
name: extract_symbolic_data
arguments: data_tag: D263
data_type: string
name: extract_symbolic_data
arguments: data_tag: D405
data_type: string
name: extract_symbolic_data
arguments: data_tag: D314
data_type: string
name: extract_symbolic_data
arguments: data_tag: D500
data_type: string
name: extract_symbolic_data
arguments: data_tag: D439
data_type: string
name: extract_symbolic_data
arguments: data_tag: D523
data_type: string
name: extract_symbolic_data
arguments: data_tag: D178
data_type: string
name: extract_symbolic_data
arguments: data_tag: D44
data_type: string
name: extract_symbolic_data
arguments: data_tag: D127
data_type: string
name: extract_symbolic_data
arguments: data_tag: D56
data_type: string
name: extract_symbolic_data
arguments: data_tag: D360
data_type: string
name: extract_symbolic_data
arguments: data_tag: D231
data_type: string
name: extract_symbolic_data
arguments: data_tag: D287
data_type: string
name: extract_symbolic_data
arguments: data_tag: D394
data_type: string
name: extract_symbolic_data
arguments: data_tag: D443
data_type: string
name: extract_symbolic_data
arguments: data_tag: D196
data_type: string
name: extract_symbolic_data
arguments: data_tag: D264
data_type: string
name: extract_symbolic_data
arguments: data_tag: D132
data_type: string
name: extract_symbolic_data
arguments: data_tag: D138
data_type: string
name: extract_symbolic_data
arguments: data_tag: D519
data_type: string
name: extract_symbolic_data
arguments: data_tag: D241
data_type: string
name: extract_symbolic_data
arguments: data_tag: D517
data_type: string
name: extract_symbolic_data
arguments: data_tag: D256
data_type: string
name: extract_symbolic_data
arguments: data_tag: D96
data_type: string
name: extract_symbolic_data
arguments: data_tag: D470
data_type: string
name: extract_symbolic_data
arguments: data_tag: D489
data_type: string
name: extract_symbolic_data
arguments: data_tag: D103
data_type: string
name: extract_symbolic_data
arguments: data_tag: D147
data_type: string
name: extract_symbolic_data
arguments: data_tag: D353
data_type: string
name: extract_symbolic_data
arguments: data_tag: D357
data_type: string
name: extract_symbolic_data
arguments: data_tag: D5
data_type: string
name: extract_symbolic_data
arguments: data_tag: D53
data_type: string
name: extract_symbolic_data
arguments: data_tag: D391
data_type: string
name: extract_symbolic_data
arguments: data_tag: D444
data_type: string
name: extract_symbolic_data
arguments: data_tag: D72
data_type: string
name: extract_symbolic_data
arguments: data_tag: D85
data_type: string
name: extract_symbolic_data
arguments: data_tag: D190
data_type: string
name: extract_symbolic_data
arguments: data_tag: D376
data_type: string
name: extract_symbolic_data
arguments: data_tag: D369
data_type: string
name: extract_symbolic_data
arguments: data_tag: D20
data_type: string
name: extract_symbolic_data
arguments: data_tag: D115
data_type: string
name: extract_symbolic_data
arguments: data_tag: D78
data_type: string
name: extract_symbolic_data
arguments: data_tag: D296
data_type: string
name: extract_symbolic_data
arguments: data_tag: D488
data_type: string
name: extract_symbolic_data
arguments: data_tag: D193
data_type: string
name: extract_symbolic_data
arguments: data_tag: D407
data_type: string
name: extract_symbolic_data
arguments: data_tag: D107
data_type: string
name: extract_symbolic_data
arguments: data_tag: D526
data_type: string

tool: D101: -P

tool: D317: USERNAME

tool: D142: -U

tool: D305: PASSWORD

tool: D424: SERVER_NAME

tool: D263: -S

tool: D405: TIMEOUT

tool: D314: -t

tool: D500: INPUT

tool: D439: -i

tool: D523: OUTPUT

tool: D178: -o

tool: D44: VERSION

tool: D127: -v

tool: D56: ECHO

tool: D360: -e

tool: D231: FIPS

tool: D287: -F

tool: D394: STATISTICS

tool: D443: -p

tool: D196: NOPROMPT

tool: D264: -n

tool: D132: ENCRYPT

tool: D138: -X

tool: D519: CHAIN_XACT

tool: D241: -Y

tool: D517: DISPCHARSET

tool: D256: -a

tool: D96: TDSPACKETSIZE

tool: D470: -A

tool: D489: TERMINATOR

tool: D103: -c

tool: D147: -E

tool: D353: EDITOR

tool: D357: ROWSINPAGE

tool: D5: -h

tool: D53: HOSTNAME

tool: D391: -H

tool: D444: INTERFACE

tool: D72: -I

tool: D85: CLIENTCHARSET

tool: D190: -J

tool: D376: ERRORLEVEL

tool: D369: -m

tool: D20: LOGINTIME

tool: D115: -l

tool: D78: COLSEPARATOR

tool: D296: -s

tool: D488: WIDTH

tool: D193: -w

tool: D407: LANGUAGE

tool: D107: edit

tool: D526: -z

assistant: ```c
int vmsarg_mapping(int *nvargs, char *vms_arg[], char *unix_arg[], char *unix_narg[], char *vms_key[], char *unix_key[], char *separator[], int flags[], char *pattern[], char **outverb, int *action_flags, char **arg_symbol, char **image_name) {
  *nvargs = 26;
  *action_flags = 1301;
  vms_arg[1] = "USERNAME";
  flags[1] = 1;
  unix_arg[1] = "-U";
  vms_arg[2] = "PASSWORD";
  flags[2] = 1;
  unix_arg[2] = "-P";
  vms_arg[3] = "SERVER_NAME";
  flags[3] = 1;
  unix_arg[3] = "-S";
  vms_arg[4] = "TIMEOUT";
  flags[4] = 1;
  unix_arg[4] = "-t";
  vms_arg[5] = "INPUT";
  flags[5] = 1;
  unix_arg[5] = "-i";
  vms_arg[6] = "OUTPUT";
  flags[6] = 1;
  unix_arg[6] = "-o";
  vms_arg[7] = "VERSION";
  flags[7] = 1;
  unix_arg[7] = "-v";
  vms_arg[8] = "ECHO";
  flags[8] = 1;
  unix_arg[8] = "-e";
  vms_arg[9] = "FIPS";
  flags[9] = 1;
  unix_arg[9] = "-F";
  vms_arg[10] = "STATISTICS";
  flags[10] = 1;
  unix_arg[10] = "-p";
  vms_arg[11] = "NOPROMPT";
  flags[11] = 1;
  unix_arg[11] = "-n";
  vms_arg[12] = "ENCRYPT";
  flags[12] = 1;
  unix_arg[12] = "-X";
  vms_arg[13] = "CHAIN_XACT";
  flags[13] = 1;
  unix_arg[13] = "-Y";
  vms_arg[14] = "DISPCHARSET";
  flags[14] = 1;
  unix_arg[14] = "-a";
  vms_arg[15] = "TDSPACKETSIZE";
  flags[15] = 1;
  unix_arg[15] = "-A";
  vms_arg[16] = "TERMINATOR";
  flags[16] = 1;
  unix_arg[16] = "-c";
  vms_arg[17] = "EDITOR";
  flags[17] = 1;
  unix_arg[17] = "-E";
  vms_arg[18] = "ROWSINPAGE";
  flags[18] = 1;
  unix_arg[18] = "-h";
  vms_arg[19] = "HOSTNAME";
  flags[19] = 1;
  unix_arg[19] = "-H";
  vms_arg[20] = "INTERFACE";
  flags[20] = 1;
  unix_arg[20] = "-I";
  vms_arg[21] = "CLIENTCHARSET";
  flags[21] = 1;
  unix_arg[21] = "-J";
  vms_arg[22] = "ERRORLEVEL";
  flags[22] = 1;
  unix_arg[22] = "-m";
  vms_arg[23] = "LOGINTIME";
  flags[23] = 1;
  unix_arg[23] = "-l";
  vms_arg[24] = "COLSEPARATOR";
  flags[24] = 1;
  unix_arg[24] = "-s";
  vms_arg[25] = "WIDTH";
  flags[25] = 1;
  unix_arg[25] = "-w";
  vms_arg[26] = "LANGUAGE";
  flags[26] = 1;
  unix_arg[26] = "-z";
  if (setenv("EDITOR", "edit", 0) != 0)
    return 0;
  return 1;
}
```