angr 9.2.180__cp310-abi3-win_amd64.whl → 9.2.182__cp310-abi3-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of angr might be problematic. Click here for more details.

Files changed (139) hide show
  1. angr/__init__.py +1 -1
  2. angr/ailment/expression.py +2 -2
  3. angr/analyses/decompiler/ail_simplifier.py +77 -5
  4. angr/analyses/decompiler/callsite_maker.py +6 -1
  5. angr/analyses/decompiler/clinic.py +22 -10
  6. angr/analyses/decompiler/dephication/graph_vvar_mapping.py +4 -10
  7. angr/analyses/decompiler/ssailification/rewriting.py +82 -10
  8. angr/analyses/decompiler/ssailification/rewriting_engine.py +22 -11
  9. angr/analyses/decompiler/ssailification/ssailification.py +7 -5
  10. angr/analyses/s_reaching_definitions/s_rda_view.py +38 -16
  11. angr/analyses/s_reaching_definitions/s_reaching_definitions.py +59 -6
  12. angr/engines/pcode/behavior.py +6 -2
  13. angr/knowledge_plugins/functions/function_manager.py +1 -1
  14. angr/knowledge_plugins/variables/variable_manager.py +10 -19
  15. angr/procedures/definitions/parse_glibc.py +0 -1
  16. angr/procedures/definitions/parse_win32json.py +12 -3
  17. angr/procedures/definitions/wdk/fltmgr.json +11 -11
  18. angr/procedures/definitions/wdk/fwpuclnt.json +32 -32
  19. angr/procedures/definitions/wdk/gdi32.json +1 -1
  20. angr/procedures/definitions/wdk/ntoskrnl.json +61 -61
  21. angr/procedures/definitions/win32/_types_win32.json +1103 -1102
  22. angr/procedures/definitions/win32/activeds.json +2 -2
  23. angr/procedures/definitions/win32/advapi32.json +47 -47
  24. angr/procedures/definitions/win32/apphelp.json +1 -1
  25. angr/procedures/definitions/win32/avifil32.json +10 -10
  26. angr/procedures/definitions/win32/avrt.json +4 -4
  27. angr/procedures/definitions/win32/bluetoothapis.json +3 -3
  28. angr/procedures/definitions/win32/certpoleng.json +1 -1
  29. angr/procedures/definitions/win32/cfgmgr32.json +43 -43
  30. angr/procedures/definitions/win32/clusapi.json +1 -1
  31. angr/procedures/definitions/win32/comctl32.json +3 -3
  32. angr/procedures/definitions/win32/computenetwork.json +14 -14
  33. angr/procedures/definitions/win32/comsvcs.json +3 -3
  34. angr/procedures/definitions/win32/crypt32.json +5 -5
  35. angr/procedures/definitions/win32/d2d1.json +1 -1
  36. angr/procedures/definitions/win32/d3d12.json +6 -6
  37. angr/procedures/definitions/win32/d3dcompiler_47.json +2 -2
  38. angr/procedures/definitions/win32/dbgeng.json +4 -4
  39. angr/procedures/definitions/win32/dbghelp.json +2 -2
  40. angr/procedures/definitions/win32/dcomp.json +4 -4
  41. angr/procedures/definitions/win32/ddraw.json +6 -6
  42. angr/procedures/definitions/win32/diagnosticdataquery.json +1 -1
  43. angr/procedures/definitions/win32/dinput8.json +1 -1
  44. angr/procedures/definitions/win32/directml.json +2 -2
  45. angr/procedures/definitions/win32/dsound.json +10 -10
  46. angr/procedures/definitions/win32/dsparse.json +2 -2
  47. angr/procedures/definitions/win32/dwmapi.json +1 -1
  48. angr/procedures/definitions/win32/dwrite.json +1 -1
  49. angr/procedures/definitions/win32/dxcompiler.json +2 -2
  50. angr/procedures/definitions/win32/dxcore.json +1 -1
  51. angr/procedures/definitions/win32/dxgi.json +4 -4
  52. angr/procedures/definitions/win32/dxva2.json +1 -1
  53. angr/procedures/definitions/win32/eappprxy.json +3 -3
  54. angr/procedures/definitions/win32/evr.json +4 -4
  55. angr/procedures/definitions/win32/fwpuclnt.json +32 -32
  56. angr/procedures/definitions/win32/gdiplus.json +9 -9
  57. angr/procedures/definitions/win32/hid.json +1 -1
  58. angr/procedures/definitions/win32/hlink.json +7 -7
  59. angr/procedures/definitions/win32/ieframe.json +4 -4
  60. angr/procedures/definitions/win32/imgutil.json +1 -1
  61. angr/procedures/definitions/win32/inkobjcore.json +4 -4
  62. angr/procedures/definitions/win32/iphlpapi.json +8 -8
  63. angr/procedures/definitions/win32/kernel32.json +5 -5
  64. angr/procedures/definitions/win32/ksproxy_ax.json +2 -2
  65. angr/procedures/definitions/win32/ktmw32.json +10 -10
  66. angr/procedures/definitions/win32/mapi32.json +2 -2
  67. angr/procedures/definitions/win32/mf.json +5 -5
  68. angr/procedures/definitions/win32/mfplat.json +33 -33
  69. angr/procedures/definitions/win32/mfsensorgroup.json +2 -2
  70. angr/procedures/definitions/win32/mmdevapi.json +1 -1
  71. angr/procedures/definitions/win32/mqrt.json +2 -2
  72. angr/procedures/definitions/win32/mscoree.json +9 -9
  73. angr/procedures/definitions/win32/msdmo.json +5 -5
  74. angr/procedures/definitions/win32/mswsock.json +8 -8
  75. angr/procedures/definitions/win32/ndfapi.json +1 -1
  76. angr/procedures/definitions/win32/netapi32.json +6 -6
  77. angr/procedures/definitions/win32/netsh.json +1 -1
  78. angr/procedures/definitions/win32/ntdll.json +1 -1
  79. angr/procedures/definitions/win32/ntdsapi.json +14 -14
  80. angr/procedures/definitions/win32/ntlanman.json +3 -3
  81. angr/procedures/definitions/win32/ole32.json +78 -78
  82. angr/procedures/definitions/win32/oleacc.json +6 -6
  83. angr/procedures/definitions/win32/oleaut32.json +15 -15
  84. angr/procedures/definitions/win32/oledlg.json +1 -1
  85. angr/procedures/definitions/win32/p2p.json +11 -11
  86. angr/procedures/definitions/win32/p2pgraph.json +7 -7
  87. angr/procedures/definitions/win32/pdh.json +1 -1
  88. angr/procedures/definitions/win32/powrprof.json +47 -47
  89. angr/procedures/definitions/win32/projectedfslib.json +2 -2
  90. angr/procedures/definitions/win32/propsys.json +25 -25
  91. angr/procedures/definitions/win32/query.json +1 -1
  92. angr/procedures/definitions/win32/resutils.json +1 -1
  93. angr/procedures/definitions/win32/rpcns4.json +5 -5
  94. angr/procedures/definitions/win32/rpcrt4.json +33 -33
  95. angr/procedures/definitions/win32/rtm.json +1 -1
  96. angr/procedures/definitions/win32/sensorsutilsv2.json +4 -4
  97. angr/procedures/definitions/win32/setupapi.json +49 -49
  98. angr/procedures/definitions/win32/shell32.json +34 -34
  99. angr/procedures/definitions/win32/shlwapi.json +7 -7
  100. angr/procedures/definitions/win32/slc.json +25 -25
  101. angr/procedures/definitions/win32/slcext.json +2 -2
  102. angr/procedures/definitions/win32/slwga.json +1 -1
  103. angr/procedures/definitions/win32/tapi32.json +4 -4
  104. angr/procedures/definitions/win32/tdh.json +6 -6
  105. angr/procedures/definitions/win32/traffic.json +6 -6
  106. angr/procedures/definitions/win32/txfw32.json +1 -1
  107. angr/procedures/definitions/win32/uiautomationcore.json +1 -1
  108. angr/procedures/definitions/win32/urlmon.json +6 -6
  109. angr/procedures/definitions/win32/user32.json +1 -1
  110. angr/procedures/definitions/win32/userenv.json +4 -4
  111. angr/procedures/definitions/win32/virtdisk.json +4 -4
  112. angr/procedures/definitions/win32/vmdevicehost.json +1 -1
  113. angr/procedures/definitions/win32/wcmapi.json +2 -2
  114. angr/procedures/definitions/win32/webauthn.json +2 -2
  115. angr/procedures/definitions/win32/winbio.json +2 -2
  116. angr/procedures/definitions/win32/windows_ui_xaml.json +2 -2
  117. angr/procedures/definitions/win32/windowscodecs.json +9 -9
  118. angr/procedures/definitions/win32/winhttp.json +1 -1
  119. angr/procedures/definitions/win32/winhvplatform.json +1 -1
  120. angr/procedures/definitions/win32/winscard.json +12 -12
  121. angr/procedures/definitions/win32/winspool_drv.json +4 -4
  122. angr/procedures/definitions/win32/wintrust.json +9 -9
  123. angr/procedures/definitions/win32/wlanapi.json +27 -27
  124. angr/procedures/definitions/win32/wlanui.json +1 -1
  125. angr/procedures/definitions/win32/wldp.json +4 -4
  126. angr/procedures/definitions/win32/ws2_32.json +34 -34
  127. angr/procedures/definitions/win32/xaudio2_8.json +1 -1
  128. angr/procedures/definitions/win32/xmllite.json +2 -2
  129. angr/procedures/definitions/win32/xolehlp.json +4 -4
  130. angr/project.py +4 -1
  131. angr/rustylib.pyd +0 -0
  132. angr/unicornlib.dll +0 -0
  133. angr/utils/ail.py +107 -1
  134. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/METADATA +5 -5
  135. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/RECORD +139 -139
  136. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/WHEEL +0 -0
  137. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/entry_points.txt +0 -0
  138. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/licenses/LICENSE +0 -0
  139. {angr-9.2.180.dist-info → angr-9.2.182.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,7 @@
21
21
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOW', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['pAddrInfo']}"
22
22
  },
23
23
  "GetAddrInfoExA": {
24
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXA', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXA', 'ot': '_ref'}}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'dwNameSpace', 'lpNspId', 'hints', 'ppResult', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
24
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXA', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXA', 'ot': '_ref'}}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'dwNameSpace', 'lpNspId', 'hints', 'ppResult', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
25
25
  },
26
26
  "GetAddrInfoExCancel": {
27
27
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpHandle']}"
@@ -30,7 +30,7 @@
30
30
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpOverlapped']}"
31
31
  },
32
32
  "GetAddrInfoExW": {
33
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXW', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXW', 'ot': '_ref'}}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'dwNameSpace', 'lpNspId', 'hints', 'ppResult', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpHandle']}"
33
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXW', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOEXW', 'ot': '_ref'}}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'dwNameSpace', 'lpNspId', 'hints', 'ppResult', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpHandle']}"
34
34
  },
35
35
  "GetAddrInfoW": {
36
36
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOW', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'ADDRINFOW', 'ot': '_ref'}}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pNodeName', 'pServiceName', 'pHints', 'ppResult']}"
@@ -51,10 +51,10 @@
51
51
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'HANDLE', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCK_NOTIFY_REGISTRATION', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED_ENTRY', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'signed': false, 'label': 'UInt32'}, 'arg_names': ['completionPort', 'registrationCount', 'registrationInfos', 'timeoutMs', 'completionCount', 'completionPortEntries', 'receivedEntryCount']}"
52
52
  },
53
53
  "SetAddrInfoExA": {
54
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKET_ADDRESS', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'pAddresses', 'dwAddressCount', 'lpBlob', 'dwFlags', 'dwNameSpace', 'lpNspId', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
54
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKET_ADDRESS', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'pAddresses', 'dwAddressCount', 'lpBlob', 'dwFlags', 'dwNameSpace', 'lpNspId', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
55
55
  },
56
56
  "SetAddrInfoExW": {
57
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKET_ADDRESS', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'pAddresses', 'dwAddressCount', 'lpBlob', 'dwFlags', 'dwNameSpace', 'lpNspId', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
57
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKET_ADDRESS', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'TIMEVAL', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'dwBytes', 'lpOverlapped']}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['pName', 'pServiceName', 'pAddresses', 'dwAddressCount', 'lpBlob', 'dwFlags', 'dwNameSpace', 'lpNspId', 'timeout', 'lpOverlapped', 'lpCompletionRoutine', 'lpNameHandle']}"
58
58
  },
59
59
  "WPUCompleteOverlappedRequest": {
60
60
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'SOCKET', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['s', 'lpOverlapped', 'dwError', 'cbTransferred', 'lpErrno']}"
@@ -69,7 +69,7 @@
69
69
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKADDR', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpsaAddress', 'dwAddressLength', 'lpProtocolInfo', 'lpszAddressString', 'lpdwAddressStringLength']}"
70
70
  },
71
71
  "WSAAdvertiseProvider": {
72
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'NSPV2_ROUTINE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['puuidProviderId', 'pNSPv2Routine']}"
72
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'NSPV2_ROUTINE', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['puuidProviderId', 'pNSPv2Routine']}"
73
73
  },
74
74
  "WSAAsyncGetHostByAddr": {
75
75
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'HWND', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'int', 'label': 'Int32'}, {'_t': 'int', 'label': 'Int32'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'int', 'label': 'Int32'}], 'returnty': {'_t': '_ref', 'name': 'HANDLE', 'ot': 'ptr'}, 'arg_names': ['hWnd', 'wMsg', 'addr', 'len', 'type', 'buf', 'buflen']}"
@@ -159,16 +159,16 @@
159
159
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'SOCKET', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSABUF', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'QOS', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}, 'arg_names': ['s', 'lpQOSName', 'lpQOS']}"
160
160
  },
161
161
  "WSAGetServiceClassInfoA": {
162
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSASERVICECLASSINFOA', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpServiceClassId', 'lpdwBufSize', 'lpServiceClassInfo']}"
162
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSASERVICECLASSINFOA', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpServiceClassId', 'lpdwBufSize', 'lpServiceClassInfo']}"
163
163
  },
164
164
  "WSAGetServiceClassInfoW": {
165
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSASERVICECLASSINFOW', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpServiceClassId', 'lpdwBufSize', 'lpServiceClassInfo']}"
165
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSASERVICECLASSINFOW', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpServiceClassId', 'lpdwBufSize', 'lpServiceClassInfo']}"
166
166
  },
167
167
  "WSAGetServiceClassNameByClassIdA": {
168
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId', 'lpszServiceClassName', 'lpdwBufferLength']}"
168
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId', 'lpszServiceClassName', 'lpdwBufferLength']}"
169
169
  },
170
170
  "WSAGetServiceClassNameByClassIdW": {
171
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId', 'lpszServiceClassName', 'lpdwBufferLength']}"
171
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId', 'lpszServiceClassName', 'lpdwBufferLength']}"
172
172
  },
173
173
  "WSAHtonl": {
174
174
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'SOCKET', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['s', 'hostlong', 'lpnetlong']}"
@@ -234,7 +234,7 @@
234
234
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'SOCKET', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSABUF', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKADDR', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'OVERLAPPED', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'bot', 'label': 'Void'}, 'arg_names': ['dwError', 'cbTransferred', 'lpOverlapped', 'dwFlags']}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['s', 'lpBuffers', 'dwBufferCount', 'lpNumberOfBytesRecvd', 'lpFlags', 'lpFrom', 'lpFromlen', 'lpOverlapped', 'lpCompletionRoutine']}"
235
235
  },
236
236
  "WSARemoveServiceClass": {
237
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId']}"
237
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpServiceClassId']}"
238
238
  },
239
239
  "WSAResetEvent": {
240
240
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'HANDLE', 'ot': 'ptr'}], 'returnty': {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}, 'arg_names': ['hEvent']}"
@@ -282,7 +282,7 @@
282
282
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'label': 'Int32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'SOCKADDR', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['AddressString', 'AddressFamily', 'lpProtocolInfo', 'lpAddress', 'lpAddressLength']}"
283
283
  },
284
284
  "WSAUnadvertiseProvider": {
285
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['puuidProviderId']}"
285
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['puuidProviderId']}"
286
286
  },
287
287
  "WSAUnhookBlockingHook": {
288
288
  "proto": "{'_t': 'func', 'args': [], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': []}"
@@ -291,16 +291,16 @@
291
291
  "proto": "{'_t': 'func', 'args': [{'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'HANDLE', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}], 'returnty': {'_t': '_ref', 'name': 'WAIT_EVENT', 'ot': 'int'}, 'arg_names': ['cEvents', 'lphEvents', 'fWaitAll', 'dwTimeout', 'fAlertable']}"
292
292
  },
293
293
  "WSCDeinstallProvider": {
294
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpErrno']}"
294
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpErrno']}"
295
295
  },
296
296
  "WSCDeinstallProvider32": {
297
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpErrno']}"
297
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpErrno']}"
298
298
  },
299
299
  "WSCEnableNSProvider": {
300
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'fEnable']}"
300
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'fEnable']}"
301
301
  },
302
302
  "WSCEnableNSProvider32": {
303
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'fEnable']}"
303
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'fEnable']}"
304
304
  },
305
305
  "WSCEnumNameSpaceProviders32": {
306
306
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSANAMESPACE_INFOW', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpdwBufferLength', 'lpnspBuffer']}"
@@ -318,64 +318,64 @@
318
318
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['Path', 'PathLength', 'Extra', 'ExtraLength', 'pPermittedLspCategories', 'lpErrno']}"
319
319
  },
320
320
  "WSCGetProviderInfo": {
321
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
321
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
322
322
  },
323
323
  "WSCGetProviderInfo32": {
324
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
324
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
325
325
  },
326
326
  "WSCGetProviderPath": {
327
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProviderDllPathLen', 'lpErrno']}"
327
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProviderDllPathLen', 'lpErrno']}"
328
328
  },
329
329
  "WSCGetProviderPath32": {
330
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProviderDllPathLen', 'lpErrno']}"
330
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProviderDllPathLen', 'lpErrno']}"
331
331
  },
332
332
  "WSCInstallNameSpace": {
333
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId']}"
333
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId']}"
334
334
  },
335
335
  "WSCInstallNameSpace32": {
336
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId']}"
336
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId']}"
337
337
  },
338
338
  "WSCInstallNameSpaceEx": {
339
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId', 'lpProviderSpecific']}"
339
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId', 'lpProviderSpecific']}"
340
340
  },
341
341
  "WSCInstallNameSpaceEx32": {
342
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId', 'lpProviderSpecific']}"
342
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'BLOB', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpszIdentifier', 'lpszPathName', 'dwNameSpace', 'dwVersion', 'lpProviderId', 'lpProviderSpecific']}"
343
343
  },
344
344
  "WSCInstallProvider": {
345
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
345
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
346
346
  },
347
347
  "WSCInstallProvider64_32": {
348
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
348
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
349
349
  },
350
350
  "WSCInstallProviderAndChains64_32": {
351
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpszProviderDllPath32', 'lpszLspName', 'dwServiceFlags', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpdwCatalogEntryId', 'lpErrno']}"
351
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpszProviderDllPath32', 'lpszLspName', 'dwServiceFlags', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpdwCatalogEntryId', 'lpErrno']}"
352
352
  },
353
353
  "WSCSetApplicationCategory": {
354
354
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': true, 'label': 'Char'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['Path', 'PathLength', 'Extra', 'ExtraLength', 'PermittedLspCategories', 'pPrevPermLspCat', 'lpErrno']}"
355
355
  },
356
356
  "WSCSetProviderInfo": {
357
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
357
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
358
358
  },
359
359
  "WSCSetProviderInfo32": {
360
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
360
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'WSC_PROVIDER_INFO_TYPE', 'ot': 'int'}, {'_t': 'ptr', 'pts_to': {'_t': 'char', 'signed': false, 'label': 'Byte'}}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt'}, 'label': 'UIntPtr'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'InfoType', 'Info', 'InfoSize', 'Flags', 'lpErrno']}"
361
361
  },
362
362
  "WSCUnInstallNameSpace": {
363
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId']}"
363
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId']}"
364
364
  },
365
365
  "WSCUnInstallNameSpace32": {
366
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId']}"
366
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId']}"
367
367
  },
368
368
  "WSCUpdateProvider": {
369
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
369
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
370
370
  },
371
371
  "WSCUpdateProvider32": {
372
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
372
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'WSAPROTOCOL_INFOW', 'ot': '_ref'}, 'label': 'LPArray'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'int', 'label': 'Int32'}}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'lpszProviderDllPath', 'lpProtocolInfoList', 'dwNumberOfEntries', 'lpErrno']}"
373
373
  },
374
374
  "WSCWriteNameSpaceOrder": {
375
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'dwNumberOfEntries']}"
375
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'dwNumberOfEntries']}"
376
376
  },
377
377
  "WSCWriteNameSpaceOrder32": {
378
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'dwNumberOfEntries']}"
378
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpProviderId', 'dwNumberOfEntries']}"
379
379
  },
380
380
  "WSCWriteProviderOrder": {
381
381
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'int', 'signed': false, 'label': 'UInt32'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': 'int', 'label': 'Int32'}, 'arg_names': ['lpwdCatalogEntryId', 'dwNumberOfEntries']}"
@@ -18,7 +18,7 @@
18
18
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['ppApo']}"
19
19
  },
20
20
  "CreateFX": {
21
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['clsid', 'pEffect', 'pInitDat', 'InitDataByteSize']}"
21
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['clsid', 'pEffect', 'pInitDat', 'InitDataByteSize']}"
22
22
  },
23
23
  "XAudio2CreateWithVersionInfo": {
24
24
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IXAudio2', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['ppXAudio2', 'Flags', 'XAudio2Processor', 'ntddiVersion']}"
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "functions": {
14
14
  "CreateXmlReader": {
15
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['riid', 'ppvObject', 'pMalloc']}"
15
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['riid', 'ppvObject', 'pMalloc']}"
16
16
  },
17
17
  "CreateXmlReaderInputWithEncodingCodePage": {
18
18
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'IUnknown', 'ot': 'bot'}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['pInputStream', 'pMalloc', 'nEncodingCodePage', 'fEncodingHint', 'pwszBaseUri', 'ppInput']}"
@@ -21,7 +21,7 @@
21
21
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'IUnknown', 'ot': 'bot'}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'BOOL', 'ot': 'int'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['pInputStream', 'pMalloc', 'pwszEncodingName', 'fEncodingHint', 'pwszBaseUri', 'ppInput']}"
22
22
  },
23
23
  "CreateXmlWriter": {
24
- "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['riid', 'ppvObject', 'pMalloc']}"
24
+ "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['riid', 'ppvObject', 'pMalloc']}"
25
25
  },
26
26
  "CreateXmlWriterOutputWithEncodingCodePage": {
27
27
  "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'IUnknown', 'ot': 'bot'}, {'_t': '_ref', 'name': 'IMalloc', 'ot': 'bot'}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IUnknown', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['pOutputStream', 'pMalloc', 'nEncodingCodePage', 'ppOutput']}"
@@ -12,16 +12,16 @@
12
12
  },
13
13
  "functions": {
14
14
  "DtcGetTransactionManager": {
15
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'short', 'signed': false, 'label': 'UInt16'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_dwReserved1', 'i_wcbReserved2', 'i_pvReserved2', 'o_ppvObject']}"
15
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'short', 'signed': false, 'label': 'UInt16'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_dwReserved1', 'i_wcbReserved2', 'i_pvReserved2', 'o_ppvObject']}"
16
16
  },
17
17
  "DtcGetTransactionManagerC": {
18
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'short', 'signed': false, 'label': 'UInt16'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_dwReserved1', 'i_wcbReserved2', 'i_pvReserved2', 'o_ppvObject']}"
18
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'short', 'signed': false, 'label': 'UInt16'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_dwReserved1', 'i_wcbReserved2', 'i_pvReserved2', 'o_ppvObject']}"
19
19
  },
20
20
  "DtcGetTransactionManagerExA": {
21
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_grfOptions', 'i_pvConfigParams', 'o_ppvObject']}"
21
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pszHost', 'i_pszTmName', 'i_riid', 'i_grfOptions', 'i_pvConfigParams', 'o_ppvObject']}"
22
22
  },
23
23
  "DtcGetTransactionManagerExW": {
24
- "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Guid'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pwszHost', 'i_pwszTmName', 'i_riid', 'i_grfOptions', 'i_pvConfigParams', 'o_ppvObject']}"
24
+ "proto": "{'_t': 'func', 'args': [{'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': '_ref', 'name': 'PWSTR', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'Guid', 'ot': '_ref'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}}], 'returnty': {'_t': '_ref', 'name': 'HRESULT', 'ot': 'int'}, 'arg_names': ['i_pwszHost', 'i_pwszTmName', 'i_riid', 'i_grfOptions', 'i_pvConfigParams', 'o_ppvObject']}"
25
25
  }
26
26
  }
27
27
  }
angr/project.py CHANGED
@@ -333,7 +333,10 @@ class Project:
333
333
  func = reloc.symbol
334
334
  if func is None:
335
335
  continue
336
- if not func.is_function and func.type != cle.backends.symbol.SymbolType.TYPE_NONE:
336
+ if isinstance(func, cle.backends.macho.symbol.SymbolTableSymbol):
337
+ # in macho we cannot determine if a symbol is a function symbol or not
338
+ pass
339
+ elif not func.is_function and func.type != cle.backends.symbol.SymbolType.TYPE_NONE:
337
340
  continue
338
341
  if func.resolvedby is None:
339
342
  # I don't understand the binary which made me add this case. If you are debugging and see this comment,
angr/rustylib.pyd CHANGED
Binary file
angr/unicornlib.dll CHANGED
Binary file
angr/utils/ail.py CHANGED
@@ -1,10 +1,14 @@
1
1
  from __future__ import annotations
2
+ from typing import TYPE_CHECKING
2
3
 
3
4
  from angr.ailment import AILBlockWalkerBase
4
5
  from angr.ailment.block import Block
5
- from angr.ailment.expression import Expression, VirtualVariable, Phi
6
+ from angr.ailment.expression import Expression, Const, BinaryOp, Convert, VirtualVariable, Phi
6
7
  from angr.ailment.statement import Assignment, Statement, ConditionalJump
7
8
 
9
+ if TYPE_CHECKING:
10
+ from angr.analyses.s_reaching_definitions import SRDAModel
11
+
8
12
 
9
13
  def is_phi_assignment(stmt: Statement) -> bool:
10
14
  return isinstance(stmt, Assignment) and isinstance(stmt.dst, VirtualVariable) and isinstance(stmt.src, Phi)
@@ -68,3 +72,105 @@ def is_head_controlled_loop_block(block: Block) -> bool:
68
72
  if isinstance(last_stmt, ConditionalJump):
69
73
  return False
70
74
  return any(isinstance(stmt, ConditionalJump) for stmt in block.statements[:-1])
75
+
76
+
77
+ def extract_partial_expr(base_expr: Expression, off: int, size: int, ail_manager, byte_width: int = 8) -> Expression:
78
+ bits = size * byte_width
79
+ if off == 0 and bits == base_expr.bits:
80
+ return base_expr
81
+ if off * byte_width >= base_expr.bits:
82
+ raise ValueError("Offset is greater than or equal to expression size")
83
+ if base_expr.bits - off * byte_width < bits:
84
+ raise ValueError("Insufficient expression bits")
85
+
86
+ base_mask = ((1 << bits) - 1) << (off * byte_width)
87
+ base_mask = Const(ail_manager.next_atom(), None, base_mask, base_expr.bits)
88
+ masked_base_expr = BinaryOp(
89
+ ail_manager.next_atom(),
90
+ "And",
91
+ [base_expr, base_mask],
92
+ False,
93
+ bits=base_expr.bits,
94
+ **base_expr.tags,
95
+ )
96
+ if off > 0:
97
+ shift_amount = Const(ail_manager.next_atom(), None, off * byte_width, byte_width)
98
+ shifted_vvar = BinaryOp(
99
+ ail_manager.next_atom(),
100
+ "Shr",
101
+ [
102
+ masked_base_expr,
103
+ shift_amount,
104
+ ],
105
+ bits=masked_base_expr.bits,
106
+ **masked_base_expr.tags,
107
+ )
108
+ else:
109
+ shifted_vvar = masked_base_expr
110
+ truncated_expr = Convert(
111
+ ail_manager.next_atom(),
112
+ shifted_vvar.bits,
113
+ bits,
114
+ False,
115
+ shifted_vvar,
116
+ **shifted_vvar.tags,
117
+ )
118
+ assert truncated_expr.bits == bits
119
+ return truncated_expr
120
+
121
+
122
+ def is_expr_used_as_reg_base_value(stmt: Statement, expr: Expression, srda: SRDAModel) -> bool:
123
+ """
124
+ Determine if the expression `expr` is used as the base value of an assignment of a full register in `stmt`.
125
+
126
+ This method returns True if the following conditions hold:
127
+ - The statement is an assignment to a reg vvar A;
128
+ - The src of the assignment statement is a bitwise-or expression;
129
+ - One of the operands of the src expr is the high bits of `expr`;
130
+ - `expr` is a phi var that relies on reg vvar A.
131
+ """
132
+
133
+ if not isinstance(stmt, Assignment):
134
+ return False
135
+ if not isinstance(stmt.dst, VirtualVariable):
136
+ return False
137
+ if not stmt.dst.was_reg:
138
+ return False
139
+ if not isinstance(expr, VirtualVariable):
140
+ return False
141
+ if not expr.was_reg:
142
+ return False
143
+ if expr.varid not in srda.phivarid_to_varids:
144
+ return False
145
+ if stmt.dst.varid not in srda.phivarid_to_varids[expr.varid]:
146
+ return False
147
+
148
+ if not (isinstance(stmt.src, BinaryOp) and stmt.src.op == "Or"):
149
+ return False
150
+
151
+ for op0 in stmt.src.operands:
152
+ op1 = stmt.src.operands[0] if op0 is stmt.src.operands[1] else stmt.src.operands[1]
153
+ if (
154
+ isinstance(op1, Convert)
155
+ and op1.from_type == Convert.TYPE_INT
156
+ and op1.to_type == Convert.TYPE_INT
157
+ and op1.from_bits < op1.to_bits
158
+ ):
159
+ expected_mask = ((1 << op1.to_bits) - 1) ^ ((1 << op1.from_bits) - 1)
160
+ if isinstance(op0, BinaryOp) and op0.op == "And":
161
+ if (
162
+ isinstance(op0.operands[0], Const)
163
+ and op0.operands[0].value == expected_mask
164
+ and isinstance(op0.operands[1], VirtualVariable)
165
+ and op0.operands[1].varid == expr.varid
166
+ ):
167
+ return True
168
+ if (
169
+ isinstance(op0.operands[1], Const)
170
+ and op0.operands[1].value == expected_mask
171
+ and isinstance(op0.operands[0], VirtualVariable)
172
+ and op0.operands[0].varid == expr.varid
173
+ ):
174
+ return True
175
+
176
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: angr
3
- Version: 9.2.180
3
+ Version: 9.2.182
4
4
  Summary: A multi-architecture binary analysis toolkit, with the ability to perform dynamic symbolic execution and various static analyses on binaries
5
5
  License: BSD-2-Clause
6
6
  Project-URL: Homepage, https://angr.io/
@@ -16,12 +16,12 @@ Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: cxxheaderparser
18
18
  Requires-Dist: GitPython
19
- Requires-Dist: archinfo==9.2.180
19
+ Requires-Dist: archinfo==9.2.182
20
20
  Requires-Dist: cachetools
21
21
  Requires-Dist: capstone==5.0.3
22
22
  Requires-Dist: cffi>=1.14.0
23
- Requires-Dist: claripy==9.2.180
24
- Requires-Dist: cle==9.2.180
23
+ Requires-Dist: claripy==9.2.182
24
+ Requires-Dist: cle==9.2.182
25
25
  Requires-Dist: msgspec
26
26
  Requires-Dist: mulpyplexer
27
27
  Requires-Dist: networkx!=2.8.1,>=2.0
@@ -31,7 +31,7 @@ Requires-Dist: pycparser>=2.18
31
31
  Requires-Dist: pydemumble
32
32
  Requires-Dist: pyformlang
33
33
  Requires-Dist: pypcode<4.0,>=3.2.1
34
- Requires-Dist: pyvex==9.2.180
34
+ Requires-Dist: pyvex==9.2.182
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy