user: Demonstrate the C code that generates the assembly output below:

```asm
<getPayloadType>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %edi,%ebx
  mov    %rsi,%rbp
  mov    %rdx,%r12
  lea    D772(%rip),%r13
  mov    %r13,%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  mov    %r13,%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  cmp    $0x22,%ebx
  ja     L187
  mov    %ebx,%eax
  lea    D188(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D421(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L62:
  mov    %ebx,%r13d
L380:
  lea    -0x48(%r13),%eax
  cmp    $0x4,%eax
  jbe    L206
  lea    -0x4d(%r13),%eax
  cmp    $0x12,%eax
  ja     L118
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D80(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L176
  lea    D204(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D204(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D262(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D377(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D559(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D559(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D400(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D664(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D247(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D234(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D234(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D561(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D756(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D68(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D212(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D559(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D559(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D76(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D204(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D224(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D205(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D608(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D460(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D128(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D685(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D669(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D378(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
  lea    D416(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D635(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L62
L187:
  mov    %ebx,%r13d
  sub    $0x23,%ebx
  cmp    $0x24,%ebx
  ja     L380
  lea    D720(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D80(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L118:
  sub    $0x60,%r13d
  cmp    $0x1f,%r13d
  ja     L176
  lea    D633(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D80(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L176
L206:
  lea    D204(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  lea    D12(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L176:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D772
type_guessed: string
name: retrieve_data
arguments: tag: D421
type_guessed: string
name: retrieve_data
arguments: tag: D224
type_guessed: string
name: retrieve_data
arguments: tag: D720
type_guessed: string
name: retrieve_data
arguments: tag: D80
type_guessed: string
name: retrieve_data
arguments: tag: D204
type_guessed: string
name: retrieve_data
arguments: tag: D262
type_guessed: string
name: retrieve_data
arguments: tag: D377
type_guessed: string
name: retrieve_data
arguments: tag: D559
type_guessed: string
name: retrieve_data
arguments: tag: D400
type_guessed: string
name: retrieve_data
arguments: tag: D664
type_guessed: string
name: retrieve_data
arguments: tag: D247
type_guessed: string
name: retrieve_data
arguments: tag: D234
type_guessed: string
name: retrieve_data
arguments: tag: D561
type_guessed: string
name: retrieve_data
arguments: tag: D756
type_guessed: string
name: retrieve_data
arguments: tag: D68
type_guessed: string
name: retrieve_data
arguments: tag: D212
type_guessed: string
name: retrieve_data
arguments: tag: D76
type_guessed: string
name: retrieve_data
arguments: tag: D635
type_guessed: string
name: retrieve_data
arguments: tag: D205
type_guessed: string
name: retrieve_data
arguments: tag: D608
type_guessed: string
name: retrieve_data
arguments: tag: D460
type_guessed: string
name: retrieve_data
arguments: tag: D128
type_guessed: string
name: retrieve_data
arguments: tag: D685
type_guessed: string
name: retrieve_data
arguments: tag: D669
type_guessed: string
name: retrieve_data
arguments: tag: D378
type_guessed: string
name: retrieve_data
arguments: tag: D416
type_guessed: string
name: retrieve_data
arguments: tag: D633
type_guessed: string
name: retrieve_data
arguments: tag: D12
type_guessed: string

tool: D772: unknown

tool: D421: PCMU

tool: D224: A

tool: D720: unassigned

tool: D80: ?

tool: D204: reserved

tool: D262: GSM

tool: D377: G723

tool: D559: DVI4

tool: D400: LPC

tool: D664: PCMA

tool: D247: G722

tool: D234: L16

tool: D561: QCELP

tool: D756: CN

tool: D68: MPA

tool: D212: G728

tool: D76: G729

tool: D635: V

tool: D205: DelB

tool: D608: JPEG

tool: D460: nv

tool: D128: H261

tool: D685: MPV

tool: D669: MP2T

tool: D378: AV

tool: D416: H263

tool: D633: dynamic

tool: D12: N/A

assistant: ```c
void getPayloadType(int tp, char *name, char *media_type) {
  strcpy(name, "unknown");
  strcpy(media_type, "unknown");
  switch (tp) {
  case 0:
    strcpy(name, "PCMU");
    strcpy(media_type, "A");
    break;
  case 1:
    strcpy(name, "reserved");
    strcpy(media_type, "A");
    break;
  case 2:
    strcpy(name, "reserved");
    strcpy(media_type, "A");
    break;
  case 3:
    strcpy(name, "GSM");
    strcpy(media_type, "A");
    break;
  case 4:
    strcpy(name, "G723");
    strcpy(media_type, "A");
    break;
  case 5:
    strcpy(name, "DVI4");
    strcpy(media_type, "A");
    break;
  case 6:
    strcpy(name, "DVI4");
    strcpy(media_type, "A");
    break;
  case 7:
    strcpy(name, "LPC");
    strcpy(media_type, "A");
    break;
  case 8:
    strcpy(name, "PCMA");
    strcpy(media_type, "A");
    break;
  case 9:
    strcpy(name, "G722");
    strcpy(media_type, "A");
    break;
  case 10:
    strcpy(name, "L16");
    strcpy(media_type, "A");
    break;
  case 11:
    strcpy(name, "L16");
    strcpy(media_type, "A");
    break;
  case 12:
    strcpy(name, "QCELP");
    strcpy(media_type, "A");
    break;
  case 13:
    strcpy(name, "CN");
    strcpy(media_type, "A");
    break;
  case 14:
    strcpy(name, "MPA");
    strcpy(media_type, "A");
    break;
  case 15:
    strcpy(name, "G728");
    strcpy(media_type, "A");
    break;
  case 16:
    strcpy(name, "DVI4");
    strcpy(media_type, "A");
    break;
  case 17:
    strcpy(name, "DVI4");
    strcpy(media_type, "A");
    break;
  case 18:
    strcpy(name, "G729");
    strcpy(media_type, "A");
    break;
  case 19:
    strcpy(name, "reserved");
    strcpy(media_type, "A");
    break;
  case 20:
    strcpy(name, "unassigned");
    strcpy(media_type, "A");
    break;
  case 21:
    strcpy(name, "unassigned");
    strcpy(media_type, "A");
    break;
  case 22:
    strcpy(name, "unassigned");
    strcpy(media_type, "A");
    break;
  case 23:
    strcpy(name, "unassigned");
    strcpy(media_type, "A");
    break;
  case 24:
    strcpy(name, "unassigned");
    strcpy(media_type, "V");
    break;
  case 25:
    strcpy(name, "DelB");
    strcpy(media_type, "V");
    break;
  case 26:
    strcpy(name, "JPEG");
    strcpy(media_type, "V");
    break;
  case 27:
    strcpy(name, "unassigned");
    strcpy(media_type, "V");
    break;
  case 28:
    strcpy(name, "nv");
    strcpy(media_type, "V");
    break;
  case 29:
    strcpy(name, "unassigned");
    strcpy(media_type, "V");
    break;
  case 30:
    strcpy(name, "unassigned");
    strcpy(media_type, "V");
    break;
  case 31:
    strcpy(name, "H261");
    strcpy(media_type, "V");
    break;
  case 32:
    strcpy(name, "MPV");
    strcpy(media_type, "V");
    break;
  case 33:
    strcpy(name, "MP2T");
    strcpy(media_type, "AV");
    break;
  case 34:
    strcpy(name, "H263");
    strcpy(media_type, "V");
    break;
  }
  if ((tp >= 35) && (tp <= 71)) {
    strcpy(name, "unassigned");
    strcpy(media_type, "?");
  }
  if ((tp >= 72) && (tp <= 76)) {
    strcpy(name, "reserved");
    strcpy(media_type, "N/A");
  }
  if ((tp >= 77) && (tp <= 95)) {
    strcpy(name, "unassigned");
    strcpy(media_type, "?");
  }
  if ((tp >= 96) && (tp <= 127)) {
    strcpy(name, "dynamic");
    strcpy(media_type, "?");
  }
}
```