user: Converte this assembly snippet into its equivalent C code:

```asm
<print_mx1>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %edi,%r13d
  mov    %esi,%ebp
  mov    %edx,%ebx
  mov    %ecx,%r12d
  mov    %edi,%esi
  lea    D778(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %r13d,%r14d
  not    %r14d
  mov    %r14d,%eax
  and    $0x3,%eax
  cmp    $0x2,%eax
  je     L341
  mov    %r13d,%esi
  and    $0x3,%esi
  lea    D587(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L197:
  test   $0x4,%r13b
  je     L1145
L551:
  mov    %r14d,%eax
  and    $0x18,%eax
  cmp    $0x10,%eax
  je     L449
  ja     L545
  test   %eax,%eax
  je     L330
  cmp    $0x8,%eax
  jne    L1385
  mov    %r13d,%esi
  and    $0x18,%esi
  lea    D3(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1385
L341:
  mov    %r13d,%esi
  and    $0x3,%esi
  lea    D893(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L197
L1145:
  mov    $0x0,%esi
  lea    D191(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L551
L545:
  cmp    $0x18,%eax
  jne    L1385
  mov    %r13d,%esi
  and    $0x18,%esi
  lea    D162(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1385
L330:
  mov    %r13d,%esi
  and    $0x18,%esi
  lea    D860(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1385:
  test   $0xfc00,%r14d
  jne    L746
L983:
  test   $0x1000000,%r13d
  je     L658
L135:
  test   $0x10000000,%r13d
  je     L379
L965:
  mov    %ebp,%esi
  lea    D761(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %ebp,%eax
  and    $0x7,%eax
  lea    D598(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
L449:
  mov    %r13d,%esi
  and    $0x18,%esi
  lea    D678(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1385
L746:
  mov    %r13d,%esi
  and    $0xfc00,%esi
  lea    D897(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L983
L658:
  lea    D556(%rip),%rdi
  call   <puts@plt>
  jmp    L135
L379:
  lea    D420(%rip),%rdi
  call   <puts@plt>
  jmp    L965
  mov    $0x0,%esi
  lea    D826(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1323:
  test   $0x20,%bpl
  jne    L846
L68:
  test   $0x80,%bpl
  jne    L275
L1157:
  mov    %ebp,%eax
  and    $0x300,%eax
  cmp    $0x200,%eax
  je     L1105
  ja     L418
  test   %eax,%eax
  je     L521
  cmp    $0x100,%eax
  jne    L784
  mov    $0x1,%esi
  lea    D946(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L784
  mov    $0x1,%esi
  lea    D866(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x2,%esi
  lea    D674(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x3,%esi
  lea    D409(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x4,%esi
  lea    D106(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x5,%esi
  lea    D225(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x6,%esi
  lea    D274(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
  mov    $0x7,%esi
  lea    D7(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1323
L846:
  mov    $0x2,%esi
  lea    D91(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L68
L275:
  mov    $0x8,%esi
  lea    D347(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1157
L418:
  cmp    $0x300,%eax
  jne    L784
  mov    $0x3,%esi
  lea    D817(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L784
L521:
  mov    $0x0,%esi
  lea    D351(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L784:
  test   $0x400,%ebp
  jne    L553
L987:
  mov    %ebp,%eax
  and    $0x3000,%eax
  cmp    $0x2000,%eax
  je     L1396
  ja     L1291
  test   %eax,%eax
  je     L1688
  cmp    $0x1000,%eax
  jne    L177
  mov    $0x1,%esi
  lea    D152(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L177
L1105:
  mov    $0x2,%esi
  lea    D54(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L784
L553:
  mov    $0x4,%esi
  lea    D516(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L987
L1291:
  cmp    $0x3000,%eax
  jne    L177
  mov    $0x3,%esi
  lea    D854(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L177
L1688:
  mov    $0x0,%esi
  lea    D320(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L177:
  test   $0x8000,%ebp
  jne    L320
L1139:
  test   $0x4000,%ebp
  jne    L833
L1366:
  test   $0x800000,%ebp
  je     L453
  mov    %ebp,%eax
  and    $0x1f0000,%eax
  cmp    $0xa0000,%eax
  je     L517
  ja     L832
  cmp    $0x50000,%eax
  je     L1580
  jbe    L657
  cmp    $0x80000,%eax
  je     L944
  jbe    L751
  cmp    $0x90000,%eax
  jne    L276
  mov    $0x9,%esi
  lea    D941(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1396:
  mov    $0x2,%esi
  lea    D910(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L177
L320:
  mov    $0x8,%esi
  lea    D693(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1139
L833:
  mov    $0x4,%esi
  lea    D443(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1366
L657:
  cmp    $0x20000,%eax
  je     L597
  jbe    L616
  cmp    $0x30000,%eax
  je     L628
  cmp    $0x40000,%eax
  jne    L276
  mov    $0x4,%esi
  lea    D173(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L616:
  test   %eax,%eax
  je     L1054
  cmp    $0x10000,%eax
  jne    L276
  mov    $0x1,%esi
  lea    D171(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L751:
  cmp    $0x60000,%eax
  je     L277
  cmp    $0x70000,%eax
  jne    L276
  mov    $0x7,%esi
  lea    D642(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L832:
  cmp    $0x100000,%eax
  je     L1201
  jbe    L1220
  cmp    $0x130000,%eax
  je     L1586
  jbe    L1061
  cmp    $0x140000,%eax
  jne    L276
  mov    $0x14,%esi
  lea    D979(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1220:
  cmp    $0xd0000,%eax
  je     L1386
  jbe    L305
  cmp    $0xe0000,%eax
  je     L1200
  cmp    $0xf0000,%eax
  jne    L276
  mov    $0xf,%esi
  lea    D212(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L305:
  cmp    $0xb0000,%eax
  je     L1709
  cmp    $0xc0000,%eax
  jne    L276
  mov    $0xc,%esi
  lea    D83(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1061:
  cmp    $0x110000,%eax
  je     L770
  cmp    $0x120000,%eax
  jne    L276
  mov    $0x12,%esi
  lea    D809(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1054:
  mov    $0x0,%esi
  lea    D955(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L276:
  test   $0x400000,%ebp
  jne    L371
L1037:
  mov    $0x8,%esi
  lea    D663(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L453:
  mov    %ebx,%esi
  lea    D657(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %ebx,%eax
  and    $0x7,%eax
  lea    D289(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
L597:
  mov    $0x2,%esi
  lea    D949(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L628:
  mov    $0x3,%esi
  lea    D158(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1580:
  mov    $0x5,%esi
  lea    D365(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L277:
  mov    $0x6,%esi
  lea    D479(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L944:
  mov    $0x8,%esi
  lea    D964(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L517:
  mov    $0xa,%esi
  lea    D869(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1709:
  mov    $0xb,%esi
  lea    D745(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1386:
  mov    $0xd,%esi
  lea    D27(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1200:
  mov    $0xe,%esi
  lea    D591(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1201:
  mov    $0x10,%esi
  lea    D622(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L770:
  mov    $0x11,%esi
  lea    D545(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L1586:
  mov    $0x13,%esi
  lea    D223(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L276
L371:
  mov    $0x4,%esi
  lea    D88(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1037
  mov    $0x0,%esi
  lea    D639(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L789:
  mov    %ebx,%eax
  and    $0x70,%eax
  cmp    $0x40,%eax
  je     L469
  ja     L1465
  cmp    $0x20,%eax
  je     L1403
  jbe    L888
  cmp    $0x30,%eax
  jne    L774
  mov    $0x3,%esi
  lea    D125(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
  mov    $0x1,%esi
  lea    D456(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x2,%esi
  lea    D214(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x3,%esi
  lea    D445(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x4,%esi
  lea    D192(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x5,%esi
  lea    D21(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x6,%esi
  lea    D903(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
  mov    $0x7,%esi
  lea    D592(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L789
L888:
  test   %eax,%eax
  je     L1216
  cmp    $0x10,%eax
  jne    L774
  mov    $0x1,%esi
  lea    D143(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L1465:
  cmp    $0x60,%eax
  je     L412
  cmp    $0x70,%eax
  jne    L466
  mov    $0x7,%esi
  lea    D614(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L466:
  cmp    $0x50,%eax
  jne    L774
  mov    $0x5,%esi
  lea    D101(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L1216:
  mov    $0x0,%esi
  lea    D461(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L774:
  mov    %ebx,%eax
  and    $0x700,%eax
  cmp    $0x400,%eax
  je     L1052
  ja     L694
  cmp    $0x200,%eax
  je     L235
  jbe    L457
  cmp    $0x300,%eax
  jne    L496
  mov    $0x3,%esi
  lea    D816(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L1403:
  mov    $0x2,%esi
  lea    D121(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L469:
  mov    $0x4,%esi
  lea    D541(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L412:
  mov    $0x6,%esi
  lea    D685(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L774
L457:
  test   %eax,%eax
  je     L547
  cmp    $0x100,%eax
  jne    L496
  mov    $0x1,%esi
  lea    D185(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L694:
  cmp    $0x600,%eax
  je     L1517
  cmp    $0x700,%eax
  jne    L423
  mov    $0x7,%esi
  lea    D133(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L423:
  cmp    $0x500,%eax
  jne    L496
  mov    $0x5,%esi
  lea    D662(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L547:
  mov    $0x0,%esi
  lea    D263(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L496:
  test   $0x80,%bh
  je     L1618
  mov    $0x8,%esi
  lea    D69(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L359:
  mov    %ebx,%eax
  and    $0x70000,%eax
  cmp    $0x40000,%eax
  je     L100
  ja     L1070
  cmp    $0x20000,%eax
  je     L49
  jbe    L72
  cmp    $0x30000,%eax
  jne    L1571
  mov    $0x3,%esi
  lea    D135(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L235:
  mov    $0x2,%esi
  lea    D806(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L1052:
  mov    $0x4,%esi
  lea    D33(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L1517:
  mov    $0x6,%esi
  lea    D559(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L496
L1618:
  lea    D319(%rip),%rdi
  call   <puts@plt>
  jmp    L359
L72:
  test   %eax,%eax
  je     L854
  cmp    $0x10000,%eax
  jne    L1571
  mov    $0x1,%esi
  lea    D750(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L1070:
  cmp    $0x60000,%eax
  je     L1377
  cmp    $0x70000,%eax
  jne    L1041
  mov    $0x7,%esi
  lea    D429(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L1041:
  cmp    $0x50000,%eax
  jne    L1571
  mov    $0x5,%esi
  lea    D277(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L854:
  mov    $0x0,%esi
  lea    D369(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1571:
  mov    %r12d,%esi
  lea    D56(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    %r12d,%eax
  not    %eax
  test   %ax,%ax
  jne    L1700
L1420:
  test   $0x10000000,%r12d
  je     L1582
  mov    $0x1,%esi
  lea    D178(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1658:
  test   $0x20000000,%r12d
  je     L35
  mov    $0x2,%esi
  lea    D398(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L403:
  test   $0x40000000,%r12d
  je     L875
  mov    $0x4,%esi
  lea    D889(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1562:
  test   %r12d,%r12d
  js     L1590
  lea    D423(%rip),%rdi
  call   <puts@plt>
L532:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L49:
  mov    $0x2,%esi
  lea    D644(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L100:
  mov    $0x4,%esi
  lea    D345(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L1377:
  mov    $0x6,%esi
  lea    D196(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1571
L1700:
  movzwl %r12w,%esi
  lea    D118(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L1420
L1582:
  lea    D453(%rip),%rdi
  call   <puts@plt>
  jmp    L1658
L35:
  lea    D453(%rip),%rdi
  call   <puts@plt>
  jmp    L403
L875:
  lea    D453(%rip),%rdi
  call   <puts@plt>
  jmp    L1562
L1590:
  mov    $0x8,%esi
  lea    D1014(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L532
```

tool_calls: name: retrieve_data
arguments: tag: D778
type_guessed: string
name: retrieve_data
arguments: tag: D587
type_guessed: string
name: retrieve_data
arguments: tag: D3
type_guessed: string
name: retrieve_data
arguments: tag: D893
type_guessed: string
name: retrieve_data
arguments: tag: D191
type_guessed: string
name: retrieve_data
arguments: tag: D162
type_guessed: string
name: retrieve_data
arguments: tag: D860
type_guessed: string
name: retrieve_data
arguments: tag: D761
type_guessed: string
name: retrieve_data
arguments: tag: D678
type_guessed: string
name: retrieve_data
arguments: tag: D897
type_guessed: string
name: retrieve_data
arguments: tag: D556
type_guessed: string
name: retrieve_data
arguments: tag: D420
type_guessed: string
name: retrieve_data
arguments: tag: D826
type_guessed: string
name: retrieve_data
arguments: tag: D946
type_guessed: string
name: retrieve_data
arguments: tag: D866
type_guessed: string
name: retrieve_data
arguments: tag: D674
type_guessed: string
name: retrieve_data
arguments: tag: D409
type_guessed: string
name: retrieve_data
arguments: tag: D106
type_guessed: string
name: retrieve_data
arguments: tag: D225
type_guessed: string
name: retrieve_data
arguments: tag: D274
type_guessed: string
name: retrieve_data
arguments: tag: D7
type_guessed: string
name: retrieve_data
arguments: tag: D91
type_guessed: string
name: retrieve_data
arguments: tag: D347
type_guessed: string
name: retrieve_data
arguments: tag: D817
type_guessed: string
name: retrieve_data
arguments: tag: D351
type_guessed: string
name: retrieve_data
arguments: tag: D152
type_guessed: string
name: retrieve_data
arguments: tag: D54
type_guessed: string
name: retrieve_data
arguments: tag: D516
type_guessed: string
name: retrieve_data
arguments: tag: D854
type_guessed: string
name: retrieve_data
arguments: tag: D320
type_guessed: string
name: retrieve_data
arguments: tag: D941
type_guessed: string
name: retrieve_data
arguments: tag: D910
type_guessed: string
name: retrieve_data
arguments: tag: D693
type_guessed: string
name: retrieve_data
arguments: tag: D443
type_guessed: string
name: retrieve_data
arguments: tag: D173
type_guessed: string
name: retrieve_data
arguments: tag: D171
type_guessed: string
name: retrieve_data
arguments: tag: D642
type_guessed: string
name: retrieve_data
arguments: tag: D979
type_guessed: string
name: retrieve_data
arguments: tag: D212
type_guessed: string
name: retrieve_data
arguments: tag: D83
type_guessed: string
name: retrieve_data
arguments: tag: D809
type_guessed: string
name: retrieve_data
arguments: tag: D955
type_guessed: string
name: retrieve_data
arguments: tag: D663
type_guessed: string
name: retrieve_data
arguments: tag: D657
type_guessed: string
name: retrieve_data
arguments: tag: D949
type_guessed: string
name: retrieve_data
arguments: tag: D158
type_guessed: string
name: retrieve_data
arguments: tag: D365
type_guessed: string
name: retrieve_data
arguments: tag: D479
type_guessed: string
name: retrieve_data
arguments: tag: D964
type_guessed: string
name: retrieve_data
arguments: tag: D869
type_guessed: string
name: retrieve_data
arguments: tag: D745
type_guessed: string
name: retrieve_data
arguments: tag: D27
type_guessed: string
name: retrieve_data
arguments: tag: D591
type_guessed: string
name: retrieve_data
arguments: tag: D622
type_guessed: string
name: retrieve_data
arguments: tag: D545
type_guessed: string
name: retrieve_data
arguments: tag: D223
type_guessed: string
name: retrieve_data
arguments: tag: D88
type_guessed: string
name: retrieve_data
arguments: tag: D639
type_guessed: string
name: retrieve_data
arguments: tag: D125
type_guessed: string
name: retrieve_data
arguments: tag: D456
type_guessed: string
name: retrieve_data
arguments: tag: D214
type_guessed: string
name: retrieve_data
arguments: tag: D445
type_guessed: string
name: retrieve_data
arguments: tag: D192
type_guessed: string
name: retrieve_data
arguments: tag: D21
type_guessed: string
name: retrieve_data
arguments: tag: D903
type_guessed: string
name: retrieve_data
arguments: tag: D592
type_guessed: string
name: retrieve_data
arguments: tag: D143
type_guessed: string
name: retrieve_data
arguments: tag: D614
type_guessed: string
name: retrieve_data
arguments: tag: D101
type_guessed: string
name: retrieve_data
arguments: tag: D461
type_guessed: string
name: retrieve_data
arguments: tag: D816
type_guessed: string
name: retrieve_data
arguments: tag: D121
type_guessed: string
name: retrieve_data
arguments: tag: D541
type_guessed: string
name: retrieve_data
arguments: tag: D685
type_guessed: string
name: retrieve_data
arguments: tag: D185
type_guessed: string
name: retrieve_data
arguments: tag: D133
type_guessed: string
name: retrieve_data
arguments: tag: D662
type_guessed: string
name: retrieve_data
arguments: tag: D263
type_guessed: string
name: retrieve_data
arguments: tag: D69
type_guessed: string
name: retrieve_data
arguments: tag: D135
type_guessed: string
name: retrieve_data
arguments: tag: D806
type_guessed: string
name: retrieve_data
arguments: tag: D33
type_guessed: string
name: retrieve_data
arguments: tag: D559
type_guessed: string
name: retrieve_data
arguments: tag: D319
type_guessed: string
name: retrieve_data
arguments: tag: D750
type_guessed: string
name: retrieve_data
arguments: tag: D429
type_guessed: string
name: retrieve_data
arguments: tag: D277
type_guessed: string
name: retrieve_data
arguments: tag: D369
type_guessed: string
name: retrieve_data
arguments: tag: D56
type_guessed: string
name: retrieve_data
arguments: tag: D178
type_guessed: string
name: retrieve_data
arguments: tag: D398
type_guessed: string
name: retrieve_data
arguments: tag: D889
type_guessed: string
name: retrieve_data
arguments: tag: D423
type_guessed: string
name: retrieve_data
arguments: tag: D644
type_guessed: string
name: retrieve_data
arguments: tag: D345
type_guessed: string
name: retrieve_data
arguments: tag: D196
type_guessed: string
name: retrieve_data
arguments: tag: D118
type_guessed: string
name: retrieve_data
arguments: tag: D453
type_guessed: string
name: retrieve_data
arguments: tag: D1014
type_guessed: string

tool: D778:     DEVCFG0 = %08x


tool: D587:                      %u Debugger disabled


tool: D3:                     %02x Use PGC2/PGD2


tool: D893:                      %u Debugger enabled


tool: D191:                      %u JTAG disabled


tool: D162:                     %02x Use PGC4/PGD4


tool: D860:                     %02x Use PGC1/PGD1


tool: D761:     DEVCFG1 = %08x


tool: D678:                     %02x Use PGC3/PGD3


tool: D897:                  %05x Program flash write protect


tool: D556:                        Boot flash write protect

tool: D420:                        Code protect

tool: D826:                      %u Fast RC oscillator


tool: D946:                    %u   Primary oscillator: XT


tool: D866:                      %u Fast RC oscillator with divide-by-N and PLL


tool: D674:                      %u Primary oscillator


tool: D409:                      %u Primary oscillator with PLL


tool: D106:                      %u Secondary oscillator


tool: D225:                      %u Low-power RC oscillator


tool: D274:                      %u Fast RC oscillator with divide-by-16


tool: D7:                      %u Fast RC oscillator with divide-by-N


tool: D91:                     %u  Secondary oscillator enabled


tool: D347:                     %u  Internal-external switch over enabled


tool: D817:                    %u   Primary oscillator: disabled


tool: D351:                    %u   Primary oscillator: External


tool: D152:                   %u    Peripheral bus clock: SYSCLK / 2


tool: D54:                    %u   Primary oscillator: HS


tool: D516:                    %u   CLKO output disabled


tool: D854:                   %u    Peripheral bus clock: SYSCLK / 8


tool: D320:                   %u    Peripheral bus clock: SYSCLK / 1


tool: D941:                 %2x     Watchdog postscale: 1/512


tool: D910:                   %u    Peripheral bus clock: SYSCLK / 4


tool: D693:                   %u    Fail-safe clock monitor enabled


tool: D443:                   %u    Clock switching enabled


tool: D173:                 %2x     Watchdog postscale: 1/16


tool: D171:                 %2x     Watchdog postscale: 1/2


tool: D642:                 %2x     Watchdog postscale: 1/128


tool: D979:                 %2x     Watchdog postscale: 1/1048576


tool: D212:                 %2x     Watchdog postscale: 1/32768


tool: D83:                 %2x     Watchdog postscale: 1/4096


tool: D809:                 %2x     Watchdog postscale: 1/262144


tool: D955:                 %2x     Watchdog postscale: 1/1


tool: D663:                 %u      Watchdog enable


tool: D657:     DEVCFG2 = %08x


tool: D949:                 %2x     Watchdog postscale: 1/4


tool: D158:                 %2x     Watchdog postscale: 1/8


tool: D365:                 %2x     Watchdog postscale: 1/32


tool: D479:                 %2x     Watchdog postscale: 1/64


tool: D964:                 %2x     Watchdog postscale: 1/256


tool: D869:                 %2x     Watchdog postscale: 1/1024


tool: D745:                 %2x     Watchdog postscale: 1/2048


tool: D27:                 %2x     Watchdog postscale: 1/8192


tool: D591:                 %2x     Watchdog postscale: 1/16384


tool: D622:                 %2x     Watchdog postscale: 1/65536


tool: D545:                 %2x     Watchdog postscale: 1/131072


tool: D223:                 %2x     Watchdog postscale: 1/524288


tool: D88:                 %u      Watchdog in non-Window mode


tool: D639:                      %u PLL divider: 1/1


tool: D125:                     %u  PLL multiplier: 18x


tool: D456:                      %u PLL divider: 1/2


tool: D214:                      %u PLL divider: 1/3


tool: D445:                      %u PLL divider: 1/4


tool: D192:                      %u PLL divider: 1/5


tool: D21:                      %u PLL divider: 1/6


tool: D903:                      %u PLL divider: 1/10


tool: D592:                      %u PLL divider: 1/12


tool: D143:                     %u  PLL multiplier: 16x


tool: D614:                     %u  PLL multiplier: 24x


tool: D101:                     %u  PLL multiplier: 20x


tool: D461:                     %u  PLL multiplier: 15x


tool: D816:                    %u   USB PLL divider: 1/4


tool: D121:                     %u  PLL multiplier: 17x


tool: D541:                     %u  PLL multiplier: 19x


tool: D685:                     %u  PLL multiplier: 21x


tool: D185:                    %u   USB PLL divider: 1/2


tool: D133:                    %u   USB PLL divider: 1/12


tool: D662:                    %u   USB PLL divider: 1/6


tool: D263:                    %u   USB PLL divider: 1/1


tool: D69:                   %u    Disable USB PLL


tool: D135:                  %u     PLL postscaler: 1/8


tool: D806:                    %u   USB PLL divider: 1/3


tool: D33:                    %u   USB PLL divider: 1/5


tool: D559:                    %u   USB PLL divider: 1/10


tool: D319:                        Enable USB PLL

tool: D750:                  %u     PLL postscaler: 1/2


tool: D429:                  %u     PLL postscaler: 1/128


tool: D277:                  %u     PLL postscaler: 1/32


tool: D369:                  %u     PLL postscaler: 1/1


tool: D56:     DEVCFG3 = %08x


tool: D178:               %u        Peripheral Module Disable - only 1 reconfig


tool: D398:               %u        Peripheral Pin Select - only 1 reconfig


tool: D889:               %u        USBID pin: controlled by USB


tool: D423:                        VBuson pin: controlled by port

tool: D644:                  %u     PLL postscaler: 1/4


tool: D345:                  %u     PLL postscaler: 1/16


tool: D196:                  %u     PLL postscaler: 1/64


tool: D118:                   %04x User-defined ID


tool: D453:                        USBID pin: controlled by port

tool: D1014:               %u        VBuson pin: controlled by USB


assistant: ```c
void print_mx1(unsigned cfg0, unsigned cfg1, unsigned cfg2, unsigned cfg3, unsigned cfg4, unsigned cfg5, unsigned cfg6, unsigned cfg7, unsigned cfg8, unsigned cfg9, unsigned cfg10, unsigned cfg11, unsigned cfg12, unsigned cfg13, unsigned cfg14, unsigned cfg15, unsigned cfg16, unsigned cfg17) {
  printf("    DEVCFG0 = %08x\n", cfg0);
  if ((~cfg0 & 0x00000003) == 0x00000002)
    printf("                     %u Debugger enabled\n", cfg0 & 0x00000003);
  else
    printf("                     %u Debugger disabled\n", cfg0 & 0x00000003);
  if (~cfg0 & 0x00000004)
    printf("                     %u JTAG disabled\n", cfg0 & 0x00000004);
  switch (~cfg0 & 0x00000018) {
  case 0x00000000:
    printf("                    %02x Use PGC1/PGD1\n", cfg0 & 0x00000018);
    break;
  case 0x00000008:
    printf("                    %02x Use PGC2/PGD2\n", cfg0 & 0x00000018);
    break;
  case 0x00000010:
    printf("                    %02x Use PGC3/PGD3\n", cfg0 & 0x00000018);
    break;
  case 0x00000018:
    printf("                    %02x Use PGC4/PGD4\n", cfg0 & 0x00000018);
    break;
  }
  if (~cfg0 & 0x0000fc00)
    printf("                 %05x Program flash write protect\n", cfg0 & 0x0000fc00);
  if (~cfg0 & 0x01000000)
    printf("                       Boot flash write protect\n");
  if (~cfg0 & 0x10000000)
    printf("                       Code protect\n");
  printf("    DEVCFG1 = %08x\n", cfg1);
  switch (cfg1 & 0x00000007) {
  case 0x00000000:
    printf("                     %u Fast RC oscillator\n", 0x00000000);
    break;
  case 0x00000001:
    printf("                     %u Fast RC oscillator with divide-by-N and PLL\n", 0x00000001);
    break;
  case 0x00000002:
    printf("                     %u Primary oscillator\n", 0x00000002);
    break;
  case 0x00000003:
    printf("                     %u Primary oscillator with PLL\n", 0x00000003);
    break;
  case 0x00000004:
    printf("                     %u Secondary oscillator\n", 0x00000004);
    break;
  case 0x00000005:
    printf("                     %u Low-power RC oscillator\n", 0x00000005);
    break;
  case 0x00000006:
    printf("                     %u Fast RC oscillator with divide-by-16\n", 0x00000006);
    break;
  case 0x00000007:
    printf("                     %u Fast RC oscillator with divide-by-N\n", 0x00000007);
    break;
  default:
    printf("                     %u UNKNOWN\n", cfg1 & 0x00000007);
    break;
  }
  if (cfg1 & 0x00000020)
    printf("                    %u  Secondary oscillator enabled\n", 0x00000020 >> 4);
  if (cfg1 & 0x00000080)
    printf("                    %u  Internal-external switch over enabled\n", 0x00000080 >> 4);
  switch (cfg1 & 0x00000300) {
  case 0x00000000:
    printf("                   %u   Primary oscillator: External\n", 0x00000000 >> 8);
    break;
  case 0x00000100:
    printf("                   %u   Primary oscillator: XT\n", 0x00000100 >> 8);
    break;
  case 0x00000200:
    printf("                   %u   Primary oscillator: HS\n", 0x00000200 >> 8);
    break;
  case 0x00000300:
    printf("                   %u   Primary oscillator: disabled\n", 0x00000300 >> 8);
    break;
  }
  if (cfg1 & 0x00000400)
    printf("                   %u   CLKO output disabled\n", 0x00000400 >> 8);
  switch (cfg1 & 0x00003000) {
  case 0x00000000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 1\n", 0x00000000 >> 12);
    break;
  case 0x00001000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 2\n", 0x00001000 >> 12);
    break;
  case 0x00002000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 4\n", 0x00002000 >> 12);
    break;
  case 0x00003000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 8\n", 0x00003000 >> 12);
    break;
  }
  if (cfg1 & 0x00008000)
    printf("                  %u    Fail-safe clock monitor enabled\n", 0x00008000 >> 12);
  if (cfg1 & 0x00004000)
    printf("                  %u    Clock switching enabled\n", 0x00004000 >> 12);
  if (cfg1 & 0x00800000) {
    switch (cfg1 & 0x001f0000) {
    case 0x00000000:
      printf("                %2x     Watchdog postscale: 1/1\n", 0x00000000 >> 16);
      break;
    case 0x00010000:
      printf("                %2x     Watchdog postscale: 1/2\n", 0x00010000 >> 16);
      break;
    case 0x00020000:
      printf("                %2x     Watchdog postscale: 1/4\n", 0x00020000 >> 16);
      break;
    case 0x00030000:
      printf("                %2x     Watchdog postscale: 1/8\n", 0x00030000 >> 16);
      break;
    case 0x00040000:
      printf("                %2x     Watchdog postscale: 1/16\n", 0x00040000 >> 16);
      break;
    case 0x00050000:
      printf("                %2x     Watchdog postscale: 1/32\n", 0x00050000 >> 16);
      break;
    case 0x00060000:
      printf("                %2x     Watchdog postscale: 1/64\n", 0x00060000 >> 16);
      break;
    case 0x00070000:
      printf("                %2x     Watchdog postscale: 1/128\n", 0x00070000 >> 16);
      break;
    case 0x00080000:
      printf("                %2x     Watchdog postscale: 1/256\n", 0x00080000 >> 16);
      break;
    case 0x00090000:
      printf("                %2x     Watchdog postscale: 1/512\n", 0x00090000 >> 16);
      break;
    case 0x000a0000:
      printf("                %2x     Watchdog postscale: 1/1024\n", 0x000a0000 >> 16);
      break;
    case 0x000b0000:
      printf("                %2x     Watchdog postscale: 1/2048\n", 0x000b0000 >> 16);
      break;
    case 0x000c0000:
      printf("                %2x     Watchdog postscale: 1/4096\n", 0x000c0000 >> 16);
      break;
    case 0x000d0000:
      printf("                %2x     Watchdog postscale: 1/8192\n", 0x000d0000 >> 16);
      break;
    case 0x000e0000:
      printf("                %2x     Watchdog postscale: 1/16384\n", 0x000e0000 >> 16);
      break;
    case 0x000f0000:
      printf("                %2x     Watchdog postscale: 1/32768\n", 0x000f0000 >> 16);
      break;
    case 0x00100000:
      printf("                %2x     Watchdog postscale: 1/65536\n", 0x00100000 >> 16);
      break;
    case 0x00110000:
      printf("                %2x     Watchdog postscale: 1/131072\n", 0x00110000 >> 16);
      break;
    case 0x00120000:
      printf("                %2x     Watchdog postscale: 1/262144\n", 0x00120000 >> 16);
      break;
    case 0x00130000:
      printf("                %2x     Watchdog postscale: 1/524288\n", 0x00130000 >> 16);
      break;
    case 0x00140000:
      printf("                %2x     Watchdog postscale: 1/1048576\n", 0x00140000 >> 16);
      break;
    }
    if (cfg1 & 0x00400000)
      printf("                %u      Watchdog in non-Window mode\n", 0x00400000 >> 20);
    printf("                %u      Watchdog enable\n", 0x00800000 >> 20);
  }
  printf("    DEVCFG2 = %08x\n", cfg2);
  switch (cfg2 & 0x00000007) {
  case 0x00000000:
    printf("                     %u PLL divider: 1/1\n", 0x00000000);
    break;
  case 0x00000001:
    printf("                     %u PLL divider: 1/2\n", 0x00000001);
    break;
  case 0x00000002:
    printf("                     %u PLL divider: 1/3\n", 0x00000002);
    break;
  case 0x00000003:
    printf("                     %u PLL divider: 1/4\n", 0x00000003);
    break;
  case 0x00000004:
    printf("                     %u PLL divider: 1/5\n", 0x00000004);
    break;
  case 0x00000005:
    printf("                     %u PLL divider: 1/6\n", 0x00000005);
    break;
  case 0x00000006:
    printf("                     %u PLL divider: 1/10\n", 0x00000006);
    break;
  case 0x00000007:
    printf("                     %u PLL divider: 1/12\n", 0x00000007);
    break;
  }
  switch (cfg2 & 0x00000070) {
  case 0x00000000:
    printf("                    %u  PLL multiplier: 15x\n", 0x00000000 >> 4);
    break;
  case 0x00000010:
    printf("                    %u  PLL multiplier: 16x\n", 0x00000010 >> 4);
    break;
  case 0x00000020:
    printf("                    %u  PLL multiplier: 17x\n", 0x00000020 >> 4);
    break;
  case 0x00000030:
    printf("                    %u  PLL multiplier: 18x\n", 0x00000030 >> 4);
    break;
  case 0x00000040:
    printf("                    %u  PLL multiplier: 19x\n", 0x00000040 >> 4);
    break;
  case 0x00000050:
    printf("                    %u  PLL multiplier: 20x\n", 0x00000050 >> 4);
    break;
  case 0x00000060:
    printf("                    %u  PLL multiplier: 21x\n", 0x00000060 >> 4);
    break;
  case 0x00000070:
    printf("                    %u  PLL multiplier: 24x\n", 0x00000070 >> 4);
    break;
  }
  switch (cfg2 & 0x00000700) {
  case 0x00000000:
    printf("                   %u   USB PLL divider: 1/1\n", 0x00000000 >> 8);
    break;
  case 0x00000100:
    printf("                   %u   USB PLL divider: 1/2\n", 0x00000100 >> 8);
    break;
  case 0x00000200:
    printf("                   %u   USB PLL divider: 1/3\n", 0x00000200 >> 8);
    break;
  case 0x00000300:
    printf("                   %u   USB PLL divider: 1/4\n", 0x00000300 >> 8);
    break;
  case 0x00000400:
    printf("                   %u   USB PLL divider: 1/5\n", 0x00000400 >> 8);
    break;
  case 0x00000500:
    printf("                   %u   USB PLL divider: 1/6\n", 0x00000500 >> 8);
    break;
  case 0x00000600:
    printf("                   %u   USB PLL divider: 1/10\n", 0x00000600 >> 8);
    break;
  case 0x00000700:
    printf("                   %u   USB PLL divider: 1/12\n", 0x00000700 >> 8);
    break;
  }
  if (cfg2 & 0x00008000)
    printf("                  %u    Disable USB PLL\n", 0x00008000 >> 12);
  else
    printf("                       Enable USB PLL\n");
  switch (cfg2 & 0x00070000) {
  case 0x00000000:
    printf("                 %u     PLL postscaler: 1/1\n", 0x00000000 >> 16);
    break;
  case 0x00010000:
    printf("                 %u     PLL postscaler: 1/2\n", 0x00010000 >> 16);
    break;
  case 0x00020000:
    printf("                 %u     PLL postscaler: 1/4\n", 0x00020000 >> 16);
    break;
  case 0x00030000:
    printf("                 %u     PLL postscaler: 1/8\n", 0x00030000 >> 16);
    break;
  case 0x00040000:
    printf("                 %u     PLL postscaler: 1/16\n", 0x00040000 >> 16);
    break;
  case 0x00050000:
    printf("                 %u     PLL postscaler: 1/32\n", 0x00050000 >> 16);
    break;
  case 0x00060000:
    printf("                 %u     PLL postscaler: 1/64\n", 0x00060000 >> 16);
    break;
  case 0x00070000:
    printf("                 %u     PLL postscaler: 1/128\n", 0x00070000 >> 16);
    break;
  }
  printf("    DEVCFG3 = %08x\n", cfg3);
  if (~cfg3 & 0x0000ffff)
    printf("                  %04x User-defined ID\n", cfg3 & 0x0000ffff);
  if (cfg3 & 0x10000000)
    printf("              %u        Peripheral Module Disable - only 1 reconfig\n", 0x10000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x20000000)
    printf("              %u        Peripheral Pin Select - only 1 reconfig\n", 0x20000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x40000000)
    printf("              %u        USBID pin: controlled by USB\n", 0x40000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x80000000)
    printf("              %u        VBuson pin: controlled by USB\n", 0x80000000 >> 28);
  else
    printf("                       VBuson pin: controlled by port\n");
}
```