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

```asm
<macro_test>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  lea    D322(%rip),%rdi
  call   <puts@plt>
  mov    $0x4d4,%esi
  lea    D71(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D197(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xffffffff,%esi
  lea    D11(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D183(%rip),%rsi
  lea    D43(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D59(%rip),%rsi
  lea    D203(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D302(%rip),%rsi
  lea    D86(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D45(%rip),%rsi
  lea    D169(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  lea    D143(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D166(%rip),%rbx
  mov    %rbx,%rdi
  call   <puts@plt>
  mov    %rbx,%rdi
  call   <puts@plt>
  lea    D326(%rip),%rdi
  call   <puts@plt>
  mov    %rbx,%rdi
  call   <puts@plt>
  lea    D146(%rip),%rdi
  call   <puts@plt>
  lea    D282(%rip),%rdi
  call   <puts@plt>
  lea    D291(%rip),%rdi
  call   <puts@plt>
  lea    D130(%rip),%rdi
  call   <puts@plt>
  lea    D319(%rip),%rdi
  call   <puts@plt>
  lea    D299(%rip),%rbp
  mov    %rbp,%rdx
  mov    $0xc7,%esi
  lea    D185(%rip),%rbx
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %rbp,%rdx
  mov    $0xc9,%esi
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D164(%rip),%rdx
  mov    $0xcc,%esi
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D36(%rip),%rsi
  lea    D278(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  lea    D314(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D309(%rip),%rdi
  call   <puts@plt>
  mov    $0x2,%esi
  lea    D101(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2,%edx
  mov    $0x1,%esi
  lea    D139(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D208(%rip),%rsi
  lea    D212(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movabs $0x8000000000000000,%rsi
  lea    D104(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2,%esi
  lea    D305(%rip),%rbx
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x8,%esi
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: tag: D322
type: string
name: unpack_data
arguments: tag: D71
type: string
name: unpack_data
arguments: tag: D197
type: string
name: unpack_data
arguments: tag: D11
type: string
name: unpack_data
arguments: tag: D183
type: string
name: unpack_data
arguments: tag: D43
type: string
name: unpack_data
arguments: tag: D59
type: string
name: unpack_data
arguments: tag: D203
type: string
name: unpack_data
arguments: tag: D302
type: string
name: unpack_data
arguments: tag: D86
type: string
name: unpack_data
arguments: tag: D45
type: string
name: unpack_data
arguments: tag: D169
type: string
name: unpack_data
arguments: tag: D143
type: string
name: unpack_data
arguments: tag: D166
type: string
name: unpack_data
arguments: tag: D326
type: string
name: unpack_data
arguments: tag: D146
type: string
name: unpack_data
arguments: tag: D282
type: string
name: unpack_data
arguments: tag: D291
type: string
name: unpack_data
arguments: tag: D130
type: string
name: unpack_data
arguments: tag: D319
type: string
name: unpack_data
arguments: tag: D299
type: string
name: unpack_data
arguments: tag: D185
type: string
name: unpack_data
arguments: tag: D164
type: string
name: unpack_data
arguments: tag: D36
type: string
name: unpack_data
arguments: tag: D278
type: string
name: unpack_data
arguments: tag: D314
type: string
name: unpack_data
arguments: tag: D309
type: string
name: unpack_data
arguments: tag: D101
type: string
name: unpack_data
arguments: tag: D139
type: string
name: unpack_data
arguments: tag: D208
type: string
name: unpack_data
arguments: tag: D212
type: string
name: unpack_data
arguments: tag: D104
type: string
name: unpack_data
arguments: tag: D305
type: string

tool: D322: macro:

tool: D71: N=%d


tool: D197: aaa=%d


tool: D11: min=%d


tool: D183: hello

tool: D43: s1=%s


tool: D59: hello, world

tool: D203: s2=%s


tool: D302: "c"

tool: D86: s3=%s


tool: D45: a1

tool: D169: s4=%s


tool: D143: B3=%d


tool: D166: A defined

tool: D326: B not defined

tool: D146: B1 not defined

tool: D282: test true1

tool: D291: test trueA

tool: D130: test 2

tool: D319: __LINE__ defined

tool: D299: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/meantaipan/KMotionX/refs/heads/master/TCC67/tcctest.c

tool: D185: __LINE__=%d __FILE__=%s


tool: D164: test

tool: D36: macro_test

tool: D278: __func__ = %s


tool: D314: vaarg=%d


tool: D309: vaarg1

tool: D101: vaarg1=%d


tool: D139: vaarg1=%d %d


tool: D208: macro_test

tool: D212: func='%s'


tool: D104: INT64_MIN=%Ld


tool: D305: a=%d


assistant: ```c
void macro_test(void) {
  printf("macro:\n");
  printf("N=%d\n", 1234 + 2);
  printf("aaa=%d\n", 4);
  printf("min=%d\n", ((1) < (((2) < (-1) ? (2) : (-1))) ? (1) : (((2) < (-1) ? (2) : (-1)))));
  printf("s1=%s\n", "hello");
  printf("s2=%s\n", "hello"
                    ", world");
  printf("s3=%s\n", "\"c\"");
  printf("s4=%s\n", "a1");
  printf("B3=%d\n", 1);
  printf("A defined\n");
  printf("A defined\n");
  printf("B not defined\n");
  printf("A defined\n");
  printf("B1 not defined\n");
  printf("test true1\n");
  printf("test trueA\n");
  printf("test 2\n");
  ;
  printf("__LINE__ defined\n");
  printf("__LINE__=%d __FILE__=%s\n", 199, "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/meantaipan/KMotionX/refs/heads/master/TCC67/tcctest.c");
  printf("__LINE__=%d __FILE__=%s\n", 201, "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/meantaipan/KMotionX/refs/heads/master/TCC67/tcctest.c");
  printf("__LINE__=%d __FILE__=%s\n", 204, "test");
  printf("__func__ = %s\n", __func__);
  printf("vaarg=%d\n", 1);
  printf("vaarg1\n");
  printf("vaarg1=%d\n", 2);
  printf("vaarg1=%d %d\n", 1, 2);
  printf("func='%s'\n", __FUNCTION__);
  printf("INT64_MIN=%Ld\n", (-9223372036854775807LL - 1));
  {
    int a;
    a = 1;
    a++;
    printf("a=%d\n", a);
    a <<= 2;
    printf("a=%d\n", a);
  }
}
```