user: Please show me the C implementation that matches the assembly code listed below:

```asm
<print_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D235(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D200(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D424(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D252(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D261(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D438(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D250(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D318(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D319(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D264(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D292(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D205(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D217(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D208(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D258(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D399(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D413(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D137(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D433(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D175(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D442(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D245(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D348(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D337(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D323(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D294(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D374(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D296(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D168(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D260(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D330(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D190(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D162(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D338(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D45
type_guessed: string
name: disassemble_data
arguments: tag: D235
type_guessed: string
name: disassemble_data
arguments: tag: D200
type_guessed: string
name: disassemble_data
arguments: tag: D424
type_guessed: string
name: disassemble_data
arguments: tag: D252
type_guessed: string
name: disassemble_data
arguments: tag: D261
type_guessed: string
name: disassemble_data
arguments: tag: D438
type_guessed: string
name: disassemble_data
arguments: tag: D250
type_guessed: string
name: disassemble_data
arguments: tag: D318
type_guessed: string
name: disassemble_data
arguments: tag: D319
type_guessed: string
name: disassemble_data
arguments: tag: D264
type_guessed: string
name: disassemble_data
arguments: tag: D292
type_guessed: string
name: disassemble_data
arguments: tag: D31
type_guessed: string
name: disassemble_data
arguments: tag: D58
type_guessed: string
name: disassemble_data
arguments: tag: D205
type_guessed: string
name: disassemble_data
arguments: tag: D217
type_guessed: string
name: disassemble_data
arguments: tag: D208
type_guessed: string
name: disassemble_data
arguments: tag: D258
type_guessed: string
name: disassemble_data
arguments: tag: D399
type_guessed: string
name: disassemble_data
arguments: tag: D413
type_guessed: string
name: disassemble_data
arguments: tag: D137
type_guessed: string
name: disassemble_data
arguments: tag: D433
type_guessed: string
name: disassemble_data
arguments: tag: D254
type_guessed: string
name: disassemble_data
arguments: tag: D76
type_guessed: string
name: disassemble_data
arguments: tag: D53
type_guessed: string
name: disassemble_data
arguments: tag: D111
type_guessed: string
name: disassemble_data
arguments: tag: D175
type_guessed: string
name: disassemble_data
arguments: tag: D442
type_guessed: string
name: disassemble_data
arguments: tag: D245
type_guessed: string
name: disassemble_data
arguments: tag: D341
type_guessed: string
name: disassemble_data
arguments: tag: D348
type_guessed: string
name: disassemble_data
arguments: tag: D337
type_guessed: string
name: disassemble_data
arguments: tag: D323
type_guessed: string
name: disassemble_data
arguments: tag: D294
type_guessed: string
name: disassemble_data
arguments: tag: D374
type_guessed: string
name: disassemble_data
arguments: tag: D296
type_guessed: string
name: disassemble_data
arguments: tag: D168
type_guessed: string
name: disassemble_data
arguments: tag: D260
type_guessed: string
name: disassemble_data
arguments: tag: D99
type_guessed: string
name: disassemble_data
arguments: tag: D330
type_guessed: string
name: disassemble_data
arguments: tag: D190
type_guessed: string
name: disassemble_data
arguments: tag: D134
type_guessed: string
name: disassemble_data
arguments: tag: D162
type_guessed: string
name: disassemble_data
arguments: tag: D61
type_guessed: string
name: disassemble_data
arguments: tag: D338
type_guessed: string

tool: D45: Usage: prismpots MODELFILE [OPTIONS]



tool: D235: Calculate the potential due to a rectangular prism model on


tool: D200: specified observation points using spherical coordinates.



tool: D424: All input and output units are SI!



tool: D252: Coordinate system:


tool: D261:   The coordinate system used for the calculations is:


tool: D438:     x->North, y->East, and z->Up



tool: D250: Input:


tool: D318:   Computation points are passed through standard input (stdin).


tool: D319:   Reads 3 or more values per line and inteprets the first 3 as:


tool: D264:     longitude latitude height 


tool: D292:   longitude and latitude should be in decimal degrees, and


tool: D31:   height in meters.


tool: D58:   Other values in the line are ignored.


tool: D205:   Lines that start with # are ignored as comments.


tool: D217:   Lines should be no longer than 10000 (ten thousand) characters.

tool: D208:   



tool: D258: Output:


tool: D399:   Printed to standard output (stdout) in the form:


tool: D413:     lon lat height ... potential


tool: D137:   ... represents any values that were read from input and


tool: D433:   ignored. In other words, the result is appended to the last


tool: D254:   column of the input. Use this to pipe prism* programs


tool: D76:   together.



tool: D53:   Comments about the provenance of the data are inserted into


tool: D111:   the top of the output



tool: D175: MODELFILE: File containing the prism model


tool: D442:   * Each prism is specified by the values of its dimensions,


tool: D245:     density, and spherical coordinates of the center of its


tool: D341:     top.


tool: D348:   * The file should contain one prism per line


tool: D337:   * If a line starts with # it will be considered a comment and


tool: D323:     will be ignored.


tool: D294:   * Each line should have the following column format:


tool: D374:       DX DY DZ Density lon lat r


tool: D296:     This is the format output by tess2prism.



tool: D168: Options:


tool: D260:   -h           Print instructions.


tool: D99:   --version    Print version and license information.


tool: D330:   -v           Enable verbose printing to stderr.


tool: D190:   -lFILENAME   Print log messages to file FILENAME.


tool: D134: 
Part of the Tesseroids package.


tool: D162: Project site: <http://fatiando.org/software/tesseroids>


tool: D61: Report bugs at: 

tool: D338: <http://code.google.com/p/tesseroids/issues/list>


assistant: ```c
void print_help() {
  printf("Usage: prismpots MODELFILE [OPTIONS]\n\n");
  printf("Calculate the potential due to a rectangular prism model on\n");
  printf("specified observation points using spherical coordinates.\n\n");
  printf("All input and output units are SI!\n\n");
  printf("Coordinate system:\n");
  printf("  The coordinate system used for the calculations is:\n");
  printf("    x->North, y->East, and z->Up\n\n");
  printf("Input:\n");
  printf("  Computation points are passed through standard input (stdin).\n");
  printf("  Reads 3 or more values per line and inteprets the first 3 as:\n");
  printf("    longitude latitude height \n");
  printf("  longitude and latitude should be in decimal degrees, and\n");
  printf("  height in meters.\n");
  printf("  Other values in the line are ignored.\n");
  printf("  Lines that start with # are ignored as comments.\n");
  printf("  Lines should be no longer than 10000 (ten thousand) characters.");
  printf("  \n\n");
  printf("Output:\n");
  printf("  Printed to standard output (stdout) in the form:\n");
  printf("    lon lat height ... potential\n");
  printf("  ... represents any values that were read from input and\n");
  printf("  ignored. In other words, the result is appended to the last\n");
  printf("  column of the input. Use this to pipe prism* programs\n");
  printf("  together.\n\n");
  printf("  Comments about the provenance of the data are inserted into\n");
  printf("  the top of the output\n\n");
  printf("MODELFILE: File containing the prism model\n");
  printf("  * Each prism is specified by the values of its dimensions,\n");
  printf("    density, and spherical coordinates of the center of its\n");
  printf("    top.\n");
  printf("  * The file should contain one prism per line\n");
  printf("  * If a line starts with # it will be considered a comment and\n");
  printf("    will be ignored.\n");
  printf("  * Each line should have the following column format:\n");
  printf("      DX DY DZ Density lon lat r\n");
  printf("    This is the format output by tess2prism.\n\n");
  printf("Options:\n");
  printf("  -h           Print instructions.\n");
  printf("  --version    Print version and license information.\n");
  printf("  -v           Enable verbose printing to stderr.\n");
  printf("  -lFILENAME   Print log messages to file FILENAME.\n");
  printf("\nPart of the Tesseroids package.\n");
  printf("Project site: <http://fatiando.org/software/tesseroids>\n");
  printf("Report bugs at: ");
  printf("<http://code.google.com/p/tesseroids/issues/list>\n");
}
```