user: 请将以下的汇编代码转换成C语言代码:

```asm
<generateHelpMessage>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x368,%rsp
  mov    %rdi,%rbx
  mov    %rsi,%rbp
  mov    %fs:0x28,%rax
  mov    %rax,0x358(%rsp)
  xor    %eax,%eax
  mov    %rsp,%rdi
  lea    D3(%rip),%rsi
  mov    $0x6a,%ecx
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    (%rsi),%eax
  mov    %eax,(%rdi)
  movzwl D8(%rip),%eax
  mov    %ax,0x4(%rdi)
  movzbl D7(%rip),%eax
  mov    %al,0x6(%rdi)
  test   %rbx,%rbx
  je     L20
  test   %rbp,%rbp
  jne    L13
L20:
  mov    0x358(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L3
  add    $0x368,%rsp
  pop    %rbx
  pop    %rbp
  ret
L13:
  lea    -0x1(%rbp),%rdx
  mov    %rsp,%rsi
  mov    %rbx,%rdi
  call   <strncpy@plt>
  movb   $0x0,-0x1(%rbx,%rbp,1)
  jmp    L20
L3:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D3
type: string
name: extract_symbolic_data
arguments: label: D8
type: byte[2]
name: extract_symbolic_data
arguments: label: D7
type: byte

tool: D3:                                                             
============================================================
                                                            
                Roman Numeral Calculator                    
                                                            
           $>romancalc  MMCCDLX    +    XXVII               
                       |_______|   ^   |_____|              
                          |        |      |                 
             numeral ------        |      |                 
                operand [+/-]-------      |                 
                   numeral ----------------                 
                                                            
============================================================
                                                            


tool: {"D8": [0x20,0x0a]}

tool: D7: 0

assistant: ```c
extern void generateHelpMessage(char *helpMessage, const size_t helpMessageSizeInBytes) {
  size_t maxLength = 0;
  const char message[] = "                                                            \n"
                         "============================================================\n"
                         "                                                            \n"
                         "                Roman Numeral Calculator                    \n"
                         "                                                            \n"
                         "           $>romancalc  MMCCDLX    +    XXVII               \n"
                         "                       |_______|   ^   |_____|              \n"
                         "                          |        |      |                 \n"
                         "             numeral ------        |      |                 \n"
                         "                operand [+/-]-------      |                 \n"
                         "                   numeral ----------------                 \n"
                         "                                                            \n"
                         "============================================================\n"
                         "                                                            \n";
  if ((helpMessage != NULL) && (helpMessageSizeInBytes >= (1))) {
    maxLength = helpMessageSizeInBytes - sizeof(char);
    strncpy(helpMessage, message, maxLength);
    helpMessage[maxLength] = '\0';
  }
}
```