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

```asm
<notation_data>:
  endbr64
  push   %r13
  lea    D24(%rip),%rdi
  xor    %eax,%eax
  push   %r12
  push   %rbp
  call   <printf@plt>
  xor    %eax,%eax
  call   <Getc@plt>
  mov    %eax,%ebp
  test   %eax,%eax
  je     L10
  cmp    $0x80,%eax
  jne    L53
  lea    D1(%rip),%rdi
  xor    %eax,%eax
  mov    $0x1,%ebp
  call   <printf@plt>
L108:
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  jne    L78
L19:
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  jne    L31
L99:
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  jne    L103
L101:
  mov    $0xa,%edi
  call   <putchar@plt>
  xor    %eax,%eax
  call   <Getc@plt>
  shl    $0x8,%eax
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <Getc@plt>
  add    %eax,%r13d
  xor    %eax,%eax
  call   <Getc@plt>
  shl    $0x8,%eax
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <Getc@plt>
  lea    D50(%rip),%rdi
  add    %eax,%r12d
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r13d,%edi
  call   <pdump@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D39(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r12d,%edi
  test   %ebp,%ebp
  je     L45
  call   <pdump@plt>
  pop    %rbp
  mov    $0xa,%edi
  pop    %r12
  pop    %r13
  jmp    1090 <putchar@plt>
  nopl   0x0(%rax)
L45:
  call   <dump@plt>
  pop    %rbp
  mov    $0xa,%edi
  pop    %r12
  pop    %r13
  jmp    1090 <putchar@plt>
  nopl   0x0(%rax)
L10:
  xor    %eax,%eax
  lea    D68(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  je     L19
L78:
  mov    %eax,%esi
  lea    D57(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  je     L99
L31:
  mov    %eax,%esi
  lea    D28(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <Getc@plt>
  test   %eax,%eax
  je     L101
L103:
  mov    %eax,%esi
  lea    D38(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L101
L53:
  mov    %eax,%esi
  lea    D46(%rip),%rdi
  xor    %eax,%eax
  xor    %ebp,%ebp
  call   <printf@plt>
  jmp    L108
```

tool_calls: name: read_data
arguments: tag: D24
type_guessed: string
name: read_data
arguments: tag: D1
type_guessed: string
name: read_data
arguments: tag: D50
type_guessed: string
name: read_data
arguments: tag: D39
type_guessed: string
name: read_data
arguments: tag: D68
type_guessed: string
name: read_data
arguments: tag: D57
type_guessed: string
name: read_data
arguments: tag: D28
type_guessed: string
name: read_data
arguments: tag: D38
type_guessed: string
name: read_data
arguments: tag: D46
type_guessed: string

tool: D24: 		Flag - 

tool: D1: Human-readable

tool: D50: 		Name - 

tool: D39: 		Value - 

tool: D68: Normal

tool: D57: Unknown flag2(%02x)

tool: D28: Unknown flag3(%02x)

tool: D38: Unknown flag4(%02x)

tool: D46: Unknown flag1(%02x)

assistant: ```c
extern void notation_data(int len) {
  int c, nlen, vlen, human = 0;
  printf("\t\tFlag - ");
  c = Getc();
  switch (c) {
  case 0x80:
    printf("Human-readable");
    human = 1;
    break;
  case 0x0:
    printf("Normal");
    break;
  default:
    printf("Unknown flag1(%02x)", c);
    break;
  }
  c = Getc();
  if (c != 0)
    printf("Unknown flag2(%02x)", c);
  c = Getc();
  if (c != 0)
    printf("Unknown flag3(%02x)", c);
  c = Getc();
  if (c != 0)
    printf("Unknown flag4(%02x)", c);
  printf("\n");
  nlen = Getc() * 256;
  nlen += Getc();
  vlen = Getc() * 256;
  vlen += Getc();
  printf("\t\tName - ");
  pdump(nlen);
  printf("\n");
  printf("\t\tValue - ");
  if (human)
    pdump(vlen);
  else
    dump(vlen);
  printf("\n");
}
```