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

```asm
<showhelp>:
  endbr64
  sub    $0x8,%rsp
  lea    D135(%rip),%rdi
  call   <sayln@plt>
  lea    D26(%rip),%rdi
  call   <sayln@plt>
  lea    D241(%rip),%rdi
  call   <sayln@plt>
  lea    D5(%rip),%rdi
  call   <sayln@plt>
  lea    D98(%rip),%rdi
  call   <sayln@plt>
  lea    D148(%rip),%rdi
  call   <sayln@plt>
  lea    D369(%rip),%rdi
  call   <sayln@plt>
  lea    D116(%rip),%rdi
  call   <sayln@plt>
  lea    D230(%rip),%rdi
  call   <sayln@plt>
  lea    D25(%rip),%rdi
  call   <sayln@plt>
  lea    D339(%rip),%rdi
  call   <sayln@plt>
  lea    D238(%rip),%rdi
  call   <sayln@plt>
  lea    D256(%rip),%rdi
  call   <sayln@plt>
  lea    D160(%rip),%rdi
  call   <sayln@plt>
  lea    D152(%rip),%rdi
  call   <sayln@plt>
  lea    D45(%rip),%rdi
  call   <sayln@plt>
  lea    D231(%rip),%rdi
  call   <sayln@plt>
  lea    D249(%rip),%rdi
  call   <sayln@plt>
  lea    D65(%rip),%rdi
  call   <sayln@plt>
  lea    D426(%rip),%rdi
  call   <sayln@plt>
  lea    D41(%rip),%rdi
  call   <sayln@plt>
  lea    D107(%rip),%rdi
  call   <sayln@plt>
  lea    D58(%rip),%rdi
  call   <sayln@plt>
  lea    D110(%rip),%rdi
  call   <sayln@plt>
  lea    D113(%rip),%rdi
  call   <sayln@plt>
  lea    D215(%rip),%rdi
  call   <sayln@plt>
  lea    D260(%rip),%rdi
  call   <sayln@plt>
  lea    D485(%rip),%rdi
  call   <sayln@plt>
  lea    D4(%rip),%rdi
  call   <sayln@plt>
  lea    D448(%rip),%rdi
  call   <sayln@plt>
  lea    D385(%rip),%rdi
  call   <sayln@plt>
  lea    D162(%rip),%rdi
  call   <sayln@plt>
  lea    D406(%rip),%rdi
  call   <sayln@plt>
  lea    D71(%rip),%rdi
  call   <sayln@plt>
  lea    D2(%rip),%rdi
  call   <sayln@plt>
  lea    D358(%rip),%rdi
  call   <sayln@plt>
  lea    D293(%rip),%rdi
  call   <sayln@plt>
  lea    D344(%rip),%rdi
  call   <sayln@plt>
  lea    D278(%rip),%rdi
  call   <sayln@plt>
  lea    D242(%rip),%rdi
  call   <sayln@plt>
  lea    D468(%rip),%rdi
  call   <sayln@plt>
  lea    D405(%rip),%rdi
  call   <sayln@plt>
  lea    D255(%rip),%rdi
  call   <sayln@plt>
  lea    D233(%rip),%rdi
  call   <sayln@plt>
  lea    D46(%rip),%rdi
  call   <sayln@plt>
  lea    D79(%rip),%rdi
  call   <sayln@plt>
  lea    D104(%rip),%rdi
  call   <sayln@plt>
  lea    D208(%rip),%rdi
  call   <sayln@plt>
  lea    D48(%rip),%rdi
  call   <sayln@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D135
type_infered: string
name: extract_symbolic_data
arguments: data_label: D26
type_infered: string
name: extract_symbolic_data
arguments: data_label: D241
type_infered: string
name: extract_symbolic_data
arguments: data_label: D5
type_infered: string
name: extract_symbolic_data
arguments: data_label: D98
type_infered: string
name: extract_symbolic_data
arguments: data_label: D148
type_infered: string
name: extract_symbolic_data
arguments: data_label: D369
type_infered: string
name: extract_symbolic_data
arguments: data_label: D116
type_infered: string
name: extract_symbolic_data
arguments: data_label: D230
type_infered: string
name: extract_symbolic_data
arguments: data_label: D25
type_infered: string
name: extract_symbolic_data
arguments: data_label: D339
type_infered: string
name: extract_symbolic_data
arguments: data_label: D238
type_infered: string
name: extract_symbolic_data
arguments: data_label: D256
type_infered: string
name: extract_symbolic_data
arguments: data_label: D160
type_infered: string
name: extract_symbolic_data
arguments: data_label: D152
type_infered: string
name: extract_symbolic_data
arguments: data_label: D45
type_infered: string
name: extract_symbolic_data
arguments: data_label: D231
type_infered: string
name: extract_symbolic_data
arguments: data_label: D249
type_infered: string
name: extract_symbolic_data
arguments: data_label: D65
type_infered: string
name: extract_symbolic_data
arguments: data_label: D426
type_infered: string
name: extract_symbolic_data
arguments: data_label: D41
type_infered: string
name: extract_symbolic_data
arguments: data_label: D107
type_infered: string
name: extract_symbolic_data
arguments: data_label: D58
type_infered: string
name: extract_symbolic_data
arguments: data_label: D110
type_infered: string
name: extract_symbolic_data
arguments: data_label: D113
type_infered: string
name: extract_symbolic_data
arguments: data_label: D215
type_infered: string
name: extract_symbolic_data
arguments: data_label: D260
type_infered: string
name: extract_symbolic_data
arguments: data_label: D485
type_infered: string
name: extract_symbolic_data
arguments: data_label: D4
type_infered: string
name: extract_symbolic_data
arguments: data_label: D448
type_infered: string
name: extract_symbolic_data
arguments: data_label: D385
type_infered: string
name: extract_symbolic_data
arguments: data_label: D162
type_infered: string
name: extract_symbolic_data
arguments: data_label: D406
type_infered: string
name: extract_symbolic_data
arguments: data_label: D71
type_infered: string
name: extract_symbolic_data
arguments: data_label: D2
type_infered: string
name: extract_symbolic_data
arguments: data_label: D358
type_infered: string
name: extract_symbolic_data
arguments: data_label: D293
type_infered: string
name: extract_symbolic_data
arguments: data_label: D344
type_infered: string
name: extract_symbolic_data
arguments: data_label: D278
type_infered: string
name: extract_symbolic_data
arguments: data_label: D242
type_infered: string
name: extract_symbolic_data
arguments: data_label: D468
type_infered: string
name: extract_symbolic_data
arguments: data_label: D405
type_infered: string
name: extract_symbolic_data
arguments: data_label: D255
type_infered: string
name: extract_symbolic_data
arguments: data_label: D233
type_infered: string
name: extract_symbolic_data
arguments: data_label: D46
type_infered: string
name: extract_symbolic_data
arguments: data_label: D79
type_infered: string
name: extract_symbolic_data
arguments: data_label: D104
type_infered: string
name: extract_symbolic_data
arguments: data_label: D208
type_infered: string
name: extract_symbolic_data
arguments: data_label: D48
type_infered: string

tool: D135:  ??


tool: D26: Available arguments (use in any order) are:


tool: D241: 	nr		# of repeats to run			ds	  first data set to run

tool: D5: 	cs		cache size(bytes)			s0	  initial container size

tool: D98: 	fb		# of free bursts			g0	  # of buffer segments

tool: D148: 	mk		maximum keys				mb	  maximum bytes

tool: D369: 	or		order of input data			sr	  sampling rate

tool: D116: 	tl		tail length for CPL-bs		tf	  tail factor for CPL-bs

tool: D230: 	wr		output sorted strings		sn    sort variant(s) to run

tool: D25: Arguments are separated by white space and may not contain white space. Each argument must

tool: D339: start with a tag followed by '=' or ', ' and one or more numbers or additional tags.

tool: D238: Tag 'sn' takes a list of sort numbers.  Tag 'vl' takes a second tag, followed by a list

tool: D256: of up to 20 values for the argument specified by the second tag.


tool: D160: Available sorts are:


tool: D152: 	 10	C-bs		Copying burstsort

tool: D45: 	 11	Cf-bs		Same + free bursts set by arg FREEBURSTS

tool: D231: 	 12	Cs-bs		Same + sampling set by arg SAMPLERATE

tool: D249: 	 20	CP-bs		Record burstsort

tool: D65: 	 21	CPf-bs		Same + free bursts set by arg FREEBURSTS

tool: D426: 	 22	CPs-bs		Same + sampling set by arg SAMPLERATE

tool: D41: 	 30	CPL-bs		Paging burstsort

tool: D107: 	 31	CPLf-bs		Same + free bursts set by arg FREEBURSTS

tool: D58: 	 32	CPLs-bs		Same + sampling set by arg SAMPLERATE

tool: D110: Available data sets are:


tool: D113: 	 0	Set 1 of No Duplicates (100, 000 strings)

tool: D215: 	 1	Set 2 of No Duplicates (316, 230 strings)

tool: D260: 	 2	Set 3 of No Duplicates (1, 000, 000 strings)

tool: D485: 	 3	Set 4 of No Duplicates (3, 162, 300 strings)

tool: D4: 	 4	Set 5 of No Duplicates (10, 000, 000 strings)

tool: D448: 	 5	Set 6 of No Duplicates (31, 623, 000 strings)


tool: D385: 	 6	Set 1 of Genome (100, 000 strings)

tool: D162: 	 7	Set 2 of Genome (316, 230 strings)

tool: D406: 	 8	Set 3 of Genome (1, 000, 000 strings)

tool: D71: 	 9	Set 4 of Genome (3, 162, 300 strings)

tool: D2: 	 10 Set 5 of Genome (10, 000, 000 strings)

tool: D358: 	 11 Set 6 of Genome (31, 623, 000 strings)


tool: D293: 	 12	 Set 1 of Random (100, 000 strings)

tool: D344: 	 13	 Set 2 of Random (316, 230 strings)

tool: D278: 	 14	 Set 3 of Random (1, 000, 000 strings)

tool: D242: 	 15	 Set 4 of Random (3, 162, 300 strings)

tool: D468: 	 16	 Set 5 of Random (10, 000, 000 strings)

tool: D405: 	 17	 Set 6 of Random (31, 623, 000 strings)


tool: D255: 	 18	 Set 1 of URL (100, 000 strings)

tool: D233: 	 19	 Set 2 of URL (316, 230 strings)

tool: D46: 	 20	 Set 3 of URL (1, 000, 000 strings)

tool: D79: 	 21	 Set 4 of URL (3, 162, 300 strings)

tool: D104: 	 22	 Set 5 of URL (10, 000, 000 strings)


tool: D208: 	 23	Set 3 of Random Strings, each of length 100 characters


tool: D48: Usage: sn=10, 11, 20 ds=5 nr=1 will run sorts 10, 11 and 20 once on dataset 5.



assistant: ```c
void showhelp() {
  sayln(" ??\n");
  sayln("Available arguments (use in any order) are:\n");
  sayln("	nr		# of repeats to run			ds	  first data set to run");
  sayln("	cs		cache size(bytes)			s0	  initial container size");
  sayln("	fb		# of free bursts			g0	  # of buffer segments");
  sayln("	mk		maximum keys				mb	  maximum bytes");
  sayln("	or		order of input data			sr	  sampling rate");
  sayln("	tl		tail length for CPL-bs		tf	  tail factor for CPL-bs");
  sayln("	wr		output sorted strings		sn    sort variant(s) to run");
  sayln("Arguments are separated by white space and may not contain white space. Each argument must");
  sayln("start with a tag followed by '=' or ', ' and one or more numbers or additional tags.");
  sayln("Tag 'sn' takes a list of sort numbers.  Tag 'vl' takes a second tag, followed by a list");
  sayln("of up to 20 values for the argument specified by the second tag.\n");
  sayln("Available sorts are:\n");
  sayln("	 10	C-bs		Copying burstsort");
  sayln("	 11	Cf-bs		Same + free bursts set by arg FREEBURSTS");
  sayln("	 12	Cs-bs		Same + sampling set by arg SAMPLERATE");
  sayln("	 20	CP-bs		Record burstsort");
  sayln("	 21	CPf-bs		Same + free bursts set by arg FREEBURSTS");
  sayln("	 22	CPs-bs		Same + sampling set by arg SAMPLERATE");
  sayln("	 30	CPL-bs		Paging burstsort");
  sayln("	 31	CPLf-bs		Same + free bursts set by arg FREEBURSTS");
  sayln("	 32	CPLs-bs		Same + sampling set by arg SAMPLERATE");
  sayln("Available data sets are:\n");
  sayln("	 0	Set 1 of No Duplicates (100, 000 strings)");
  sayln("	 1	Set 2 of No Duplicates (316, 230 strings)");
  sayln("	 2	Set 3 of No Duplicates (1, 000, 000 strings)");
  sayln("	 3	Set 4 of No Duplicates (3, 162, 300 strings)");
  sayln("	 4	Set 5 of No Duplicates (10, 000, 000 strings)");
  sayln("	 5	Set 6 of No Duplicates (31, 623, 000 strings)\n");
  sayln("	 6	Set 1 of Genome (100, 000 strings)");
  sayln("	 7	Set 2 of Genome (316, 230 strings)");
  sayln("	 8	Set 3 of Genome (1, 000, 000 strings)");
  sayln("	 9	Set 4 of Genome (3, 162, 300 strings)");
  sayln("	 10 Set 5 of Genome (10, 000, 000 strings)");
  sayln("	 11 Set 6 of Genome (31, 623, 000 strings)\n");
  sayln("	 12	 Set 1 of Random (100, 000 strings)");
  sayln("	 13	 Set 2 of Random (316, 230 strings)");
  sayln("	 14	 Set 3 of Random (1, 000, 000 strings)");
  sayln("	 15	 Set 4 of Random (3, 162, 300 strings)");
  sayln("	 16	 Set 5 of Random (10, 000, 000 strings)");
  sayln("	 17	 Set 6 of Random (31, 623, 000 strings)\n");
  sayln("	 18	 Set 1 of URL (100, 000 strings)");
  sayln("	 19	 Set 2 of URL (316, 230 strings)");
  sayln("	 20	 Set 3 of URL (1, 000, 000 strings)");
  sayln("	 21	 Set 4 of URL (3, 162, 300 strings)");
  sayln("	 22	 Set 5 of URL (10, 000, 000 strings)\n");
  sayln("	 23	Set 3 of Random Strings, each of length 100 characters\n");
  sayln("Usage: sn=10, 11, 20 ds=5 nr=1 will run sorts 10, 11 and 20 once on dataset 5.\n\n");
}
```