user: 下面的汇编指令对应的C源代码是什么:

```asm
<btk_help_vanity>:
  endbr64
  push   %rbp
  lea    D253(%rip),%rdi
  lea    D195(%rip),%rbp
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D309(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D243(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D130(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D156(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D229(%rip),%rdi
  call   <printf@plt>
  lea    D81(%rip),%rdi
  call   <printf@plt>
  lea    D142(%rip),%rdi
  call   <printf@plt>
  lea    D306(%rip),%rdi
  call   <printf@plt>
  lea    D6(%rip),%rdi
  call   <printf@plt>
  lea    D268(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D147(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D265(%rip),%rdi
  call   <printf@plt>
  lea    D339(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D134(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D216(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D245(%rip),%rdi
  call   <printf@plt>
  lea    D58(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D233(%rip),%rdi
  call   <printf@plt>
  lea    D205(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D160(%rip),%rdi
  call   <printf@plt>
  lea    D318(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D256(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  call   <printf@plt>
  lea    D223(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D321(%rip),%rdi
  call   <printf@plt>
  lea    D292(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D279(%rip),%rdi
  call   <printf@plt>
  lea    D165(%rip),%rdi
  call   <printf@plt>
  lea    D16(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D231(%rip),%rdi
  call   <printf@plt>
  lea    D258(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  pop    %rbp
  jmp    1050 <printf@plt>
```

tool_calls: name: read_data
arguments: tag: D253
type: string
name: read_data
arguments: tag: D195
type: string
name: read_data
arguments: tag: D309
type: string
name: read_data
arguments: tag: D243
type: string
name: read_data
arguments: tag: D130
type: string
name: read_data
arguments: tag: D156
type: string
name: read_data
arguments: tag: D229
type: string
name: read_data
arguments: tag: D81
type: string
name: read_data
arguments: tag: D142
type: string
name: read_data
arguments: tag: D306
type: string
name: read_data
arguments: tag: D6
type: string
name: read_data
arguments: tag: D268
type: string
name: read_data
arguments: tag: D147
type: string
name: read_data
arguments: tag: D85
type: string
name: read_data
arguments: tag: D265
type: string
name: read_data
arguments: tag: D339
type: string
name: read_data
arguments: tag: D134
type: string
name: read_data
arguments: tag: D216
type: string
name: read_data
arguments: tag: D245
type: string
name: read_data
arguments: tag: D58
type: string
name: read_data
arguments: tag: D233
type: string
name: read_data
arguments: tag: D205
type: string
name: read_data
arguments: tag: D160
type: string
name: read_data
arguments: tag: D318
type: string
name: read_data
arguments: tag: D256
type: string
name: read_data
arguments: tag: D48
type: string
name: read_data
arguments: tag: D223
type: string
name: read_data
arguments: tag: D321
type: string
name: read_data
arguments: tag: D292
type: string
name: read_data
arguments: tag: D279
type: string
name: read_data
arguments: tag: D165
type: string
name: read_data
arguments: tag: D16
type: string
name: read_data
arguments: tag: D231
type: string
name: read_data
arguments: tag: D258
type: string

tool: D253: COMMAND


tool: D195: 


tool: D309:    vanity - generate a vanity address.


tool: D243: SYNOPSIS


tool: D130:    btk vanity [OPTIONS]


tool: D156: DESCRIPTION


tool: D229:    The vanity command will read an input string from standard input and


tool: D81:    continuously generate bitcoin addresses until it finds one whose initial


tool: D142:    non-static characters match the input string provided. Note that the vanity


tool: D306:    command attempts to match your input string after any static character


tool: D6:    components of the address. Only include the vanity characters in your input


tool: D268:    string. Do not include preceding static characters.


tool: D147:    If no options are specified, the vanity command will search for a


tool: D85:    traditional compressed bitcoin address. Options exist for uncompressed,


tool: D265:    bech32, and testnet addresses. If the -i option is specified, the vanity


tool: D339:    command will perform a case insensitive match


tool: D134:    See OPTIONS for more info.


tool: D216: OPTIONS


tool: D245:    -A


tool: D58:       Match a traditional bitcoin (A)ddress. (default)


tool: D233:    -B


tool: D205:       Match a (B)ech32 address.


tool: D160:    -C


tool: D318:       Match a (C)ompressed address. (default)


tool: D256:    -U


tool: D48:       Match an (U)ncompressed address. Note that this option is not allowed for


tool: D223:       bech32 addresses.


tool: D321:    -T


tool: D292:       Generate a TESTNET address.


tool: D279:    -i


tool: D165:       Perform a case (i)nsensitive match. Note that this option is not useful


tool: D16:       for bech32 addresses as all characters are lowercase.


tool: D231: See https://github.com/bartobri/bitcoin-toolkit for examples.


tool: D258: See 'btk help' to read about other commands.


assistant: ```c
void btk_help_vanity(void) {
  printf("COMMAND\n");
  printf("\n");
  printf("   vanity - generate a vanity address.\n");
  printf("\n");
  printf("SYNOPSIS\n");
  printf("\n");
  printf("   btk vanity [OPTIONS]\n");
  printf("\n");
  printf("DESCRIPTION\n");
  printf("\n");
  printf("   The vanity command will read an input string from standard input and\n");
  printf("   continuously generate bitcoin addresses until it finds one whose initial\n");
  printf("   non-static characters match the input string provided. Note that the vanity\n");
  printf("   command attempts to match your input string after any static character\n");
  printf("   components of the address. Only include the vanity characters in your input\n");
  printf("   string. Do not include preceding static characters.\n");
  printf("\n");
  printf("   If no options are specified, the vanity command will search for a\n");
  printf("   traditional compressed bitcoin address. Options exist for uncompressed,\n");
  printf("   bech32, and testnet addresses. If the -i option is specified, the vanity\n");
  printf("   command will perform a case insensitive match\n");
  printf("\n");
  printf("   See OPTIONS for more info.\n");
  printf("\n");
  printf("OPTIONS\n");
  printf("\n");
  printf("   -A\n");
  printf("      Match a traditional bitcoin (A)ddress. (default)\n");
  printf("\n");
  printf("   -B\n");
  printf("      Match a (B)ech32 address.\n");
  printf("\n");
  printf("   -C\n");
  printf("      Match a (C)ompressed address. (default)\n");
  printf("\n");
  printf("   -U\n");
  printf("      Match an (U)ncompressed address. Note that this option is not allowed for\n");
  printf("      bech32 addresses.\n");
  printf("\n");
  printf("   -T\n");
  printf("      Generate a TESTNET address.\n");
  printf("\n");
  printf("   -i\n");
  printf("      Perform a case (i)nsensitive match. Note that this option is not useful\n");
  printf("      for bech32 addresses as all characters are lowercase.\n");
  printf("\n");
  printf("See https://github.com/bartobri/bitcoin-toolkit for examples.\n");
  printf("See 'btk help' to read about other commands.\n");
  printf("\n");
}
```