user: Please show me the C implementation that matches the assembly code listed below:

```asm
<TTWAIN_DumpCapabilities>:
  endbr64
  test   %rdi,%rdi
  je     L762
  push   %rbx
  xor    %eax,%eax
  mov    %rdi,%rbx
  lea    D1137(%rip),%rdi
  call   *%rbx
  mov    $0x1,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1135
  lea    D617(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1135:
  mov    $0x100,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L829
  lea    D126(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L829:
  mov    $0x101,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L319
  lea    D1171(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L319:
  mov    $0x102,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L202
  lea    D1165(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L202:
  mov    $0x103,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L172
  lea    D310(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L172:
  mov    $0x1000,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L947
  lea    D350(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L947:
  mov    $0x1001,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1164
  lea    D1190(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1164:
  mov    $0x1002,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L687
  lea    D70(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L687:
  mov    $0x1003,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L931
  lea    D48(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L931:
  mov    $0x1004,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L897
  lea    D404(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L897:
  mov    $0x1005,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L832
  lea    D807(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L832:
  mov    $0x1006,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L989
  lea    D1002(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L989:
  mov    $0x1007,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L306
  lea    D858(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L306:
  mov    $0x1008,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L631
  lea    D906(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L631:
  mov    $0x1009,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L134
  lea    D542(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L134:
  mov    $0x100a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1039
  lea    D605(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1039:
  mov    $0x100b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1126
  lea    D579(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1126:
  mov    $0x100c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1038
  lea    D409(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1038:
  mov    $0x100d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L507
  lea    D914(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L507:
  mov    $0x100e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L156
  lea    D653(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L156:
  mov    $0x100f,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L606
  lea    D146(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L606:
  mov    $0x1010,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L155
  lea    D238(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L155:
  mov    $0x1011,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L912
  lea    D86(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L912:
  mov    $0x1012,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L480
  lea    D877(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L480:
  mov    $0x1013,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1144
  lea    D355(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1144:
  mov    $0x1014,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1058
  lea    D621(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1058:
  mov    $0x1015,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L50
  lea    D960(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L50:
  mov    $0x1016,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L76
  lea    D740(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L76:
  mov    $0x1017,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L399
  lea    D320(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L399:
  mov    $0x1018,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L415
  lea    D625(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L415:
  mov    $0x1019,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L239
  lea    D335(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L239:
  mov    $0x101a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1123
  lea    D1205(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1123:
  mov    $0x101b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L581
  lea    D54(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L581:
  mov    $0x101c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L116
  lea    D1196(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L116:
  mov    $0x101d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L871
  lea    D841(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L871:
  mov    $0x101e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L235
  lea    D963(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L235:
  mov    $0x101f,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L838
  lea    D1117(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L838:
  mov    $0x1020,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L681
  lea    D805(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L681:
  mov    $0x1021,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L66
  lea    D830(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L66:
  mov    $0x1022,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L970
  lea    D770(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L970:
  mov    $0x1024,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L423
  lea    D124(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L423:
  mov    $0x1026,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L292
  lea    D136(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L292:
  mov    $0x1027,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L980
  lea    D628(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L980:
  mov    $0x1028,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L541
  lea    D96(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L541:
  mov    $0x1029,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L984
  lea    D199(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L984:
  mov    $0x102a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L691
  lea    D1001(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L691:
  mov    $0x102b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1046
  lea    D1090(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1046:
  mov    $0x102c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L429
  lea    D142(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L429:
  mov    $0x102d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L752
  lea    D588(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L752:
  mov    $0x102e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1072
  lea    D669(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1072:
  mov    $0x1030,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L549
  lea    D1169(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L549:
  mov    $0x1032,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L316
  lea    D183(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L316:
  mov    $0x1033,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L404
  lea    D192(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L404:
  mov    $0x1100,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1000
  lea    D164(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1000:
  mov    $0x1101,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L228
  lea    D1175(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L228:
  mov    $0x1103,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L636
  lea    D98(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L636:
  mov    $0x1104,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L105
  lea    D474(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L105:
  mov    $0x1105,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L220
  lea    D899(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L220:
  mov    $0x1106,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L432
  lea    D1081(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L432:
  mov    $0x1107,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L145
  lea    D237(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L145:
  mov    $0x1108,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L966
  lea    D1057(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L966:
  mov    $0x1109,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L857
  lea    D1150(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L857:
  mov    $0x110a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L492
  lea    D453(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L492:
  mov    $0x110c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1037
  lea    D149(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1037:
  mov    $0x110d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L479
  lea    D766(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L479:
  mov    $0x110e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L115
  lea    D387(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L115:
  mov    $0x1110,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L800
  lea    D580(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L800:
  mov    $0x1111,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L139
  lea    D1108(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L139:
  mov    $0x1112,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L949
  lea    D354(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L949:
  mov    $0x1113,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1196
  lea    D367(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1196:
  mov    $0x1114,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L378
  lea    D550(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L378:
  mov    $0x1116,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L703
  lea    D519(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L703:
  mov    $0x1117,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L360
  lea    D752(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L360:
  mov    $0x1118,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L834
  lea    D513(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L834:
  mov    $0x1119,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L263
  lea    D376(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L263:
  mov    $0x111a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L559
  lea    D928(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L559:
  mov    $0x111b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L466
  lea    D389(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L466:
  mov    $0x111c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L194
  lea    D735(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L194:
  mov    $0x111d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L710
  lea    D938(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L710:
  mov    $0x111e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L130
  lea    D790(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L130:
  mov    $0x111f,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L439
  lea    D278(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L439:
  mov    $0x1120,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L443
  lea    D365(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L443:
  mov    $0x1121,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L522
  lea    D243(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L522:
  mov    $0x1122,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L125
  lea    D473(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L125:
  mov    $0x1123,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L933
  lea    D853(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L933:
  mov    $0x1124,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L853
  lea    D689(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L853:
  mov    $0x1125,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L815
  lea    D65(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L815:
  mov    $0x1126,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L604
  lea    D438(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L604:
  mov    $0x1127,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1093
  lea    D38(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1093:
  mov    $0x1128,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L485
  lea    D19(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L485:
  mov    $0x112a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L12
  lea    D919(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L12:
  mov    $0x112b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L325
  lea    D207(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L325:
  mov    $0x112c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L491
  lea    D94(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L491:
  mov    $0x112d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L313
  lea    D991(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L313:
  mov    $0x112e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1191
  lea    D301(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1191:
  mov    $0x112f,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L671
  lea    D341(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L671:
  mov    $0x1130,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L131
  lea    D398(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L131:
  mov    $0x1131,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L163
  lea    D1085(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L163:
  mov    $0x1136,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L891
  lea    D920(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L891:
  mov    $0x1137,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1083
  lea    D1112(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1083:
  mov    $0x1138,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L692
  lea    D918(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L692:
  mov    $0x1139,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1088
  lea    D57(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1088:
  mov    $0x113a,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1175
  lea    D1177(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1175:
  mov    $0x113b,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L90
  lea    D677(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L90:
  mov    $0x113c,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L13
  lea    D72(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L13:
  mov    $0x113d,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L944
  lea    D1098(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L944:
  mov    $0x113e,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L78
  lea    D984(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L78:
  mov    $0x113f,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L784
  lea    D220(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L784:
  mov    $0x1140,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1005
  lea    D254(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1005:
  mov    $0x1141,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L478
  lea    D1086(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L478:
  mov    $0x1142,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L364
  lea    D715(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L364:
  mov    $0x1143,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L749
  lea    D415(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L749:
  mov    $0x1144,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L20
  lea    D1220(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L20:
  mov    $0x1145,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L952
  lea    D27(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L952:
  mov    $0x1146,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L389
  lea    D1185(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L389:
  mov    $0x1147,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1140
  lea    D90(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1140:
  mov    $0x1148,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L546
  lea    D962(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L546:
  mov    $0x1149,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1150
  lea    D463(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1150:
  mov    $0x1150,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L1199
  lea    D1176(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L1199:
  mov    $0x1151,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L416
  lea    D1100(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L416:
  mov    $0x1152,%edi
  call   <TTWAIN_IsCapSupportedTW_INT16@plt>
  test   %rax,%rax
  je     L470
  lea    D837(%rip),%rdi
  xor    %eax,%eax
  call   *%rbx
L470:
  mov    %rbx,%rdx
  lea    D574(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  jmp    *%rdx
  nopl   (%rax)
L762:
  ret
```

tool_calls: name: parse_data
arguments: tag: D1137
type_infered: string
name: parse_data
arguments: tag: D617
type_infered: string
name: parse_data
arguments: tag: D126
type_infered: string
name: parse_data
arguments: tag: D1171
type_infered: string
name: parse_data
arguments: tag: D1165
type_infered: string
name: parse_data
arguments: tag: D310
type_infered: string
name: parse_data
arguments: tag: D350
type_infered: string
name: parse_data
arguments: tag: D1190
type_infered: string
name: parse_data
arguments: tag: D70
type_infered: string
name: parse_data
arguments: tag: D48
type_infered: string
name: parse_data
arguments: tag: D404
type_infered: string
name: parse_data
arguments: tag: D807
type_infered: string
name: parse_data
arguments: tag: D1002
type_infered: string
name: parse_data
arguments: tag: D858
type_infered: string
name: parse_data
arguments: tag: D906
type_infered: string
name: parse_data
arguments: tag: D542
type_infered: string
name: parse_data
arguments: tag: D605
type_infered: string
name: parse_data
arguments: tag: D579
type_infered: string
name: parse_data
arguments: tag: D409
type_infered: string
name: parse_data
arguments: tag: D914
type_infered: string
name: parse_data
arguments: tag: D653
type_infered: string
name: parse_data
arguments: tag: D146
type_infered: string
name: parse_data
arguments: tag: D238
type_infered: string
name: parse_data
arguments: tag: D86
type_infered: string
name: parse_data
arguments: tag: D877
type_infered: string
name: parse_data
arguments: tag: D355
type_infered: string
name: parse_data
arguments: tag: D621
type_infered: string
name: parse_data
arguments: tag: D960
type_infered: string
name: parse_data
arguments: tag: D740
type_infered: string
name: parse_data
arguments: tag: D320
type_infered: string
name: parse_data
arguments: tag: D625
type_infered: string
name: parse_data
arguments: tag: D335
type_infered: string
name: parse_data
arguments: tag: D1205
type_infered: string
name: parse_data
arguments: tag: D54
type_infered: string
name: parse_data
arguments: tag: D1196
type_infered: string
name: parse_data
arguments: tag: D841
type_infered: string
name: parse_data
arguments: tag: D963
type_infered: string
name: parse_data
arguments: tag: D1117
type_infered: string
name: parse_data
arguments: tag: D805
type_infered: string
name: parse_data
arguments: tag: D830
type_infered: string
name: parse_data
arguments: tag: D770
type_infered: string
name: parse_data
arguments: tag: D124
type_infered: string
name: parse_data
arguments: tag: D136
type_infered: string
name: parse_data
arguments: tag: D628
type_infered: string
name: parse_data
arguments: tag: D96
type_infered: string
name: parse_data
arguments: tag: D199
type_infered: string
name: parse_data
arguments: tag: D1001
type_infered: string
name: parse_data
arguments: tag: D1090
type_infered: string
name: parse_data
arguments: tag: D142
type_infered: string
name: parse_data
arguments: tag: D588
type_infered: string
name: parse_data
arguments: tag: D669
type_infered: string
name: parse_data
arguments: tag: D1169
type_infered: string
name: parse_data
arguments: tag: D183
type_infered: string
name: parse_data
arguments: tag: D192
type_infered: string
name: parse_data
arguments: tag: D164
type_infered: string
name: parse_data
arguments: tag: D1175
type_infered: string
name: parse_data
arguments: tag: D98
type_infered: string
name: parse_data
arguments: tag: D474
type_infered: string
name: parse_data
arguments: tag: D899
type_infered: string
name: parse_data
arguments: tag: D1081
type_infered: string
name: parse_data
arguments: tag: D237
type_infered: string
name: parse_data
arguments: tag: D1057
type_infered: string
name: parse_data
arguments: tag: D1150
type_infered: string
name: parse_data
arguments: tag: D453
type_infered: string
name: parse_data
arguments: tag: D149
type_infered: string
name: parse_data
arguments: tag: D766
type_infered: string
name: parse_data
arguments: tag: D387
type_infered: string
name: parse_data
arguments: tag: D580
type_infered: string
name: parse_data
arguments: tag: D1108
type_infered: string
name: parse_data
arguments: tag: D354
type_infered: string
name: parse_data
arguments: tag: D367
type_infered: string
name: parse_data
arguments: tag: D550
type_infered: string
name: parse_data
arguments: tag: D519
type_infered: string
name: parse_data
arguments: tag: D752
type_infered: string
name: parse_data
arguments: tag: D513
type_infered: string
name: parse_data
arguments: tag: D376
type_infered: string
name: parse_data
arguments: tag: D928
type_infered: string
name: parse_data
arguments: tag: D389
type_infered: string
name: parse_data
arguments: tag: D735
type_infered: string
name: parse_data
arguments: tag: D938
type_infered: string
name: parse_data
arguments: tag: D790
type_infered: string
name: parse_data
arguments: tag: D278
type_infered: string
name: parse_data
arguments: tag: D365
type_infered: string
name: parse_data
arguments: tag: D243
type_infered: string
name: parse_data
arguments: tag: D473
type_infered: string
name: parse_data
arguments: tag: D853
type_infered: string
name: parse_data
arguments: tag: D689
type_infered: string
name: parse_data
arguments: tag: D65
type_infered: string
name: parse_data
arguments: tag: D438
type_infered: string
name: parse_data
arguments: tag: D38
type_infered: string
name: parse_data
arguments: tag: D19
type_infered: string
name: parse_data
arguments: tag: D919
type_infered: string
name: parse_data
arguments: tag: D207
type_infered: string
name: parse_data
arguments: tag: D94
type_infered: string
name: parse_data
arguments: tag: D991
type_infered: string
name: parse_data
arguments: tag: D301
type_infered: string
name: parse_data
arguments: tag: D341
type_infered: string
name: parse_data
arguments: tag: D398
type_infered: string
name: parse_data
arguments: tag: D1085
type_infered: string
name: parse_data
arguments: tag: D920
type_infered: string
name: parse_data
arguments: tag: D1112
type_infered: string
name: parse_data
arguments: tag: D918
type_infered: string
name: parse_data
arguments: tag: D57
type_infered: string
name: parse_data
arguments: tag: D1177
type_infered: string
name: parse_data
arguments: tag: D677
type_infered: string
name: parse_data
arguments: tag: D72
type_infered: string
name: parse_data
arguments: tag: D1098
type_infered: string
name: parse_data
arguments: tag: D984
type_infered: string
name: parse_data
arguments: tag: D220
type_infered: string
name: parse_data
arguments: tag: D254
type_infered: string
name: parse_data
arguments: tag: D1086
type_infered: string
name: parse_data
arguments: tag: D715
type_infered: string
name: parse_data
arguments: tag: D415
type_infered: string
name: parse_data
arguments: tag: D1220
type_infered: string
name: parse_data
arguments: tag: D27
type_infered: string
name: parse_data
arguments: tag: D1185
type_infered: string
name: parse_data
arguments: tag: D90
type_infered: string
name: parse_data
arguments: tag: D962
type_infered: string
name: parse_data
arguments: tag: D463
type_infered: string
name: parse_data
arguments: tag: D1176
type_infered: string
name: parse_data
arguments: tag: D1100
type_infered: string
name: parse_data
arguments: tag: D837
type_infered: string
name: parse_data
arguments: tag: D574
type_infered: string

tool: D1137: list of supported (exported) capabilities


tool: D617: CAP_XFERCOUNT

tool: D126: ICAP_COMPRESSION


tool: D1171: ICAP_PIXELTYPE


tool: D1165: ICAP_UNITS


tool: D310: ICAP_XFERMECH


tool: D350: CAP_AUTHOR


tool: D1190: CAP_CAPTION


tool: D70: CAP_FEEDERENABLED


tool: D48: CAP_FEEDERLOADED


tool: D404: CAP_TIMEDATE


tool: D807: CAP_SUPPORTEDCAPS


tool: D1002: CAP_EXTENDEDCAPS


tool: D858: CAP_AUTOFEED


tool: D906: CAP_CLEARPAGE


tool: D542: CAP_FEEDPAGE


tool: D605: CAP_REWINDPAGE


tool: D579: CAP_INDICATORS


tool: D409: CAP_SUPPORTEDCAPSEXT


tool: D914: CAP_PAPERDETECTABLE


tool: D653: CAP_UICONTROLLABLE


tool: D146: CAP_DEVICEONLINE


tool: D238: CAP_AUTOSCAN


tool: D86: CAP_THUMBNAILSENABLED


tool: D877: CAP_DUPLEX


tool: D355: CAP_DUPLEXENABLED


tool: D621: CAP_ENABLEDSUIONLY


tool: D960: CAP_CUSTOMDSDATA


tool: D740: CAP_ENDORSER


tool: D320: CAP_JOBCONTROL


tool: D625: CAP_ALARMS


tool: D335: CAP_ALARMVOLUME


tool: D1205: CAP_AUTOMATICCAPTURE


tool: D54: CAP_TIMEBEFOREFIRSTCAPTURE


tool: D1196: CAP_TIMEBETWEENCAPTURES


tool: D841: CAP_CLEARBUFFERS


tool: D963: CAP_MAXBATCHBUFFERS


tool: D1117: CAP_DEVICETIMEDATE


tool: D805: CAP_POWERSUPPLY


tool: D830: CAP_CAMERAPREVIEWUI


tool: D770: CAP_DEVICEEVENT


tool: D124: CAP_SERIALNUMBER


tool: D136: CAP_PRINTER


tool: D628: CAP_PRINTERENABLED


tool: D96: CAP_PRINTERINDEX


tool: D199: CAP_PRINTERMODE


tool: D1001: CAP_PRINTERSTRING


tool: D1090: CAP_PRINTERSUFFIX


tool: D142: CAP_LANGUAGE


tool: D588: CAP_FEEDERALIGNMENT


tool: D669: CAP_FEEDERORDER


tool: D1169: CAP_REACQUIREALLOWED


tool: D183: CAP_BATTERYMINUTES


tool: D192: CAP_BATTERYPERCENTAGE


tool: D164: ICAP_AUTOBRIGHT


tool: D1175: ICAP_BRIGHTNESS


tool: D98: ICAP_CONTRAST


tool: D474: ICAP_CUSTHALFTONE


tool: D899: ICAP_EXPOSURETIME


tool: D1081: ICAP_FILTER


tool: D237: ICAP_FLASHUSED


tool: D1057: ICAP_GAMMA


tool: D1150: ICAP_HALFTONES


tool: D453: ICAP_HIGHLIGHT


tool: D149: ICAP_IMAGEFILEFORMAT


tool: D766: ICAP_LAMPSTATE


tool: D387: ICAP_LIGHTSOURCE


tool: D580: ICAP_ORIENTATION


tool: D1108: ICAP_PHYSICALWIDTH


tool: D354: ICAP_PHYSICALHEIGHT


tool: D367: ICAP_SHADOW


tool: D550: ICAP_FRAMES


tool: D519: ICAP_XNATIVERESOLUTION


tool: D752: ICAP_YNATIVERESOLUTION


tool: D513: ICAP_XRESOLUTION


tool: D376: ICAP_YRESOLUTION


tool: D928: ICAP_MAXFRAMES


tool: D389: ICAP_TILES


tool: D735: ICAP_BITORDER


tool: D938: ICAP_CCITTKFACTOR


tool: D790: ICAP_LIGHTPATH


tool: D278: ICAP_PIXELFLAVOR


tool: D365: ICAP_PLANARCHUNKY


tool: D243: ICAP_ROTATION


tool: D473: ICAP_SUPPORTEDSIZES


tool: D853: ICAP_THRESHOLD


tool: D689: ICAP_XSCALING


tool: D65: ICAP_YSCALING


tool: D438: ICAP_BITORDERCODES


tool: D38: ICAP_PIXELFLAVORCODES


tool: D19: ICAP_JPEGPIXELTYPE


tool: D919: ICAP_TIMEFILL


tool: D207: ICAP_BITDEPTH


tool: D94: ICAP_BITDEPTHREDUCTION


tool: D991: ICAP_UNDEFINEDIMAGESIZE


tool: D301: ICAP_IMAGEDATASET


tool: D341: ICAP_EXTIMAGEINFO


tool: D398: ICAP_MINIMUMHEIGHT


tool: D1085: ICAP_MINIMUMWIDTH


tool: D920: ICAP_FLIPROTATION


tool: D1112: ICAP_BARCODEDETECTIONENABLED


tool: D918: ICAP_SUPPORTEDBARCODETYPES


tool: D57: ICAP_BARCODEMAXSEARCHPRIORITIES


tool: D1177: ICAP_BARCODESEARCHPRIORITIES


tool: D677: ICAP_BARCODESEARCHMODE


tool: D72: ICAP_BARCODEMAXRETRIES


tool: D1098: ICAP_BARCODETIMEOUT


tool: D984: ICAP_ZOOMFACTOR


tool: D220: ICAP_PATCHCODEDETECTIONENABLED


tool: D254: ICAP_SUPPORTEDPATCHCODETYPES


tool: D1086: ICAP_PATCHCODEMAXSEARCHPRIORITIES


tool: D715: ICAP_PATCHCODESEARCHPRIORITIES


tool: D415: ICAP_PATCHCODESEARCHMODE


tool: D1220: ICAP_PATCHCODEMAXRETRIES


tool: D27: ICAP_PATCHCODETIMEOUT


tool: D1185: ICAP_FLASHUSED2


tool: D90: ICAP_IMAGEFILTER


tool: D962: ICAP_NOISEFILTER


tool: D463: ICAP_OVERSCAN


tool: D1176: ICAP_AUTOMATICBORDERDETECTION


tool: D1100: ICAP_AUTOMATICDESKEW


tool: D837: ICAP_AUTOMATICROTATE


tool: D574: end-of-list


assistant: ```c
void TTWAIN_DumpCapabilities(void (*trace_fun)(const char *fmt, ...)) {
  if (!trace_fun)
    return;
  trace_fun("list of supported (exported) capabilities\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x0001))
    trace_fun("CAP_XFERCOUNT");
  if (TTWAIN_IsCapSupportedTW_INT16(0x0100))
    trace_fun("ICAP_COMPRESSION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x0101))
    trace_fun("ICAP_PIXELTYPE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x0102))
    trace_fun("ICAP_UNITS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x0103))
    trace_fun("ICAP_XFERMECH\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1000))
    trace_fun("CAP_AUTHOR\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1001))
    trace_fun("CAP_CAPTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1002))
    trace_fun("CAP_FEEDERENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1003))
    trace_fun("CAP_FEEDERLOADED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1004))
    trace_fun("CAP_TIMEDATE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1005))
    trace_fun("CAP_SUPPORTEDCAPS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1006))
    trace_fun("CAP_EXTENDEDCAPS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1007))
    trace_fun("CAP_AUTOFEED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1008))
    trace_fun("CAP_CLEARPAGE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1009))
    trace_fun("CAP_FEEDPAGE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100a))
    trace_fun("CAP_REWINDPAGE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100b))
    trace_fun("CAP_INDICATORS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100c))
    trace_fun("CAP_SUPPORTEDCAPSEXT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100d))
    trace_fun("CAP_PAPERDETECTABLE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100e))
    trace_fun("CAP_UICONTROLLABLE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x100f))
    trace_fun("CAP_DEVICEONLINE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1010))
    trace_fun("CAP_AUTOSCAN\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1011))
    trace_fun("CAP_THUMBNAILSENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1012))
    trace_fun("CAP_DUPLEX\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1013))
    trace_fun("CAP_DUPLEXENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1014))
    trace_fun("CAP_ENABLEDSUIONLY\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1015))
    trace_fun("CAP_CUSTOMDSDATA\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1016))
    trace_fun("CAP_ENDORSER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1017))
    trace_fun("CAP_JOBCONTROL\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1018))
    trace_fun("CAP_ALARMS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1019))
    trace_fun("CAP_ALARMVOLUME\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101a))
    trace_fun("CAP_AUTOMATICCAPTURE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101b))
    trace_fun("CAP_TIMEBEFOREFIRSTCAPTURE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101c))
    trace_fun("CAP_TIMEBETWEENCAPTURES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101d))
    trace_fun("CAP_CLEARBUFFERS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101e))
    trace_fun("CAP_MAXBATCHBUFFERS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x101f))
    trace_fun("CAP_DEVICETIMEDATE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1020))
    trace_fun("CAP_POWERSUPPLY\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1021))
    trace_fun("CAP_CAMERAPREVIEWUI\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1022))
    trace_fun("CAP_DEVICEEVENT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1024))
    trace_fun("CAP_SERIALNUMBER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1026))
    trace_fun("CAP_PRINTER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1027))
    trace_fun("CAP_PRINTERENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1028))
    trace_fun("CAP_PRINTERINDEX\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1029))
    trace_fun("CAP_PRINTERMODE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x102a))
    trace_fun("CAP_PRINTERSTRING\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x102b))
    trace_fun("CAP_PRINTERSUFFIX\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x102c))
    trace_fun("CAP_LANGUAGE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x102d))
    trace_fun("CAP_FEEDERALIGNMENT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x102e))
    trace_fun("CAP_FEEDERORDER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1030))
    trace_fun("CAP_REACQUIREALLOWED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1032))
    trace_fun("CAP_BATTERYMINUTES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1033))
    trace_fun("CAP_BATTERYPERCENTAGE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1100))
    trace_fun("ICAP_AUTOBRIGHT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1101))
    trace_fun("ICAP_BRIGHTNESS\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1103))
    trace_fun("ICAP_CONTRAST\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1104))
    trace_fun("ICAP_CUSTHALFTONE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1105))
    trace_fun("ICAP_EXPOSURETIME\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1106))
    trace_fun("ICAP_FILTER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1107))
    trace_fun("ICAP_FLASHUSED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1108))
    trace_fun("ICAP_GAMMA\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1109))
    trace_fun("ICAP_HALFTONES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x110a))
    trace_fun("ICAP_HIGHLIGHT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x110c))
    trace_fun("ICAP_IMAGEFILEFORMAT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x110d))
    trace_fun("ICAP_LAMPSTATE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x110e))
    trace_fun("ICAP_LIGHTSOURCE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1110))
    trace_fun("ICAP_ORIENTATION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1111))
    trace_fun("ICAP_PHYSICALWIDTH\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1112))
    trace_fun("ICAP_PHYSICALHEIGHT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1113))
    trace_fun("ICAP_SHADOW\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1114))
    trace_fun("ICAP_FRAMES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1116))
    trace_fun("ICAP_XNATIVERESOLUTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1117))
    trace_fun("ICAP_YNATIVERESOLUTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1118))
    trace_fun("ICAP_XRESOLUTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1119))
    trace_fun("ICAP_YRESOLUTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111a))
    trace_fun("ICAP_MAXFRAMES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111b))
    trace_fun("ICAP_TILES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111c))
    trace_fun("ICAP_BITORDER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111d))
    trace_fun("ICAP_CCITTKFACTOR\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111e))
    trace_fun("ICAP_LIGHTPATH\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x111f))
    trace_fun("ICAP_PIXELFLAVOR\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1120))
    trace_fun("ICAP_PLANARCHUNKY\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1121))
    trace_fun("ICAP_ROTATION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1122))
    trace_fun("ICAP_SUPPORTEDSIZES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1123))
    trace_fun("ICAP_THRESHOLD\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1124))
    trace_fun("ICAP_XSCALING\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1125))
    trace_fun("ICAP_YSCALING\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1126))
    trace_fun("ICAP_BITORDERCODES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1127))
    trace_fun("ICAP_PIXELFLAVORCODES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1128))
    trace_fun("ICAP_JPEGPIXELTYPE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112a))
    trace_fun("ICAP_TIMEFILL\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112b))
    trace_fun("ICAP_BITDEPTH\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112c))
    trace_fun("ICAP_BITDEPTHREDUCTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112d))
    trace_fun("ICAP_UNDEFINEDIMAGESIZE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112e))
    trace_fun("ICAP_IMAGEDATASET\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x112f))
    trace_fun("ICAP_EXTIMAGEINFO\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1130))
    trace_fun("ICAP_MINIMUMHEIGHT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1131))
    trace_fun("ICAP_MINIMUMWIDTH\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1136))
    trace_fun("ICAP_FLIPROTATION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1137))
    trace_fun("ICAP_BARCODEDETECTIONENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1138))
    trace_fun("ICAP_SUPPORTEDBARCODETYPES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1139))
    trace_fun("ICAP_BARCODEMAXSEARCHPRIORITIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113a))
    trace_fun("ICAP_BARCODESEARCHPRIORITIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113b))
    trace_fun("ICAP_BARCODESEARCHMODE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113c))
    trace_fun("ICAP_BARCODEMAXRETRIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113d))
    trace_fun("ICAP_BARCODETIMEOUT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113e))
    trace_fun("ICAP_ZOOMFACTOR\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x113f))
    trace_fun("ICAP_PATCHCODEDETECTIONENABLED\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1140))
    trace_fun("ICAP_SUPPORTEDPATCHCODETYPES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1141))
    trace_fun("ICAP_PATCHCODEMAXSEARCHPRIORITIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1142))
    trace_fun("ICAP_PATCHCODESEARCHPRIORITIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1143))
    trace_fun("ICAP_PATCHCODESEARCHMODE\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1144))
    trace_fun("ICAP_PATCHCODEMAXRETRIES\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1145))
    trace_fun("ICAP_PATCHCODETIMEOUT\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1146))
    trace_fun("ICAP_FLASHUSED2\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1147))
    trace_fun("ICAP_IMAGEFILTER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1148))
    trace_fun("ICAP_NOISEFILTER\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1149))
    trace_fun("ICAP_OVERSCAN\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1150))
    trace_fun("ICAP_AUTOMATICBORDERDETECTION\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1151))
    trace_fun("ICAP_AUTOMATICDESKEW\n");
  if (TTWAIN_IsCapSupportedTW_INT16(0x1152))
    trace_fun("ICAP_AUTOMATICROTATE\n");
  trace_fun("end-of-list\n");
}
```