angr 9.2.130__py3-none-manylinux2014_aarch64.whl → 9.2.131__py3-none-manylinux2014_aarch64.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 (35) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/decompiler/clinic.py +283 -4
  3. angr/analyses/decompiler/optimization_passes/__init__.py +0 -3
  4. angr/analyses/decompiler/peephole_optimizations/__init__.py +5 -1
  5. angr/analyses/decompiler/peephole_optimizations/a_mul_const_sub_a.py +34 -0
  6. angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py +3 -1
  7. angr/analyses/decompiler/peephole_optimizations/bswap.py +10 -6
  8. angr/analyses/decompiler/peephole_optimizations/eager_eval.py +100 -19
  9. angr/analyses/decompiler/peephole_optimizations/remove_noop_conversions.py +15 -0
  10. angr/analyses/decompiler/peephole_optimizations/remove_redundant_conversions.py +42 -3
  11. angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts.py +4 -2
  12. angr/analyses/decompiler/peephole_optimizations/rol_ror.py +37 -10
  13. angr/analyses/decompiler/peephole_optimizations/shl_to_mul.py +25 -0
  14. angr/analyses/decompiler/peephole_optimizations/utils.py +18 -0
  15. angr/analyses/decompiler/presets/fast.py +0 -2
  16. angr/analyses/decompiler/presets/full.py +0 -2
  17. angr/analyses/decompiler/ssailification/rewriting_engine.py +2 -2
  18. angr/analyses/decompiler/structured_codegen/c.py +74 -13
  19. angr/analyses/decompiler/structuring/phoenix.py +14 -5
  20. angr/analyses/s_propagator.py +20 -2
  21. angr/analyses/typehoon/simple_solver.py +9 -2
  22. angr/analyses/typehoon/typehoon.py +4 -1
  23. angr/analyses/variable_recovery/engine_ail.py +15 -15
  24. angr/analyses/variable_recovery/engine_base.py +3 -0
  25. angr/engines/light/engine.py +3 -3
  26. angr/engines/vex/claripy/irop.py +13 -2
  27. angr/utils/bits.py +5 -0
  28. angr/utils/formatting.py +4 -1
  29. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/METADATA +6 -6
  30. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/RECORD +34 -32
  31. angr/analyses/decompiler/optimization_passes/multi_simplifier.py +0 -223
  32. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/LICENSE +0 -0
  33. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/WHEEL +0 -0
  34. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/entry_points.txt +0 -0
  35. {angr-9.2.130.dist-info → angr-9.2.131.dist-info}/top_level.txt +0 -0
@@ -1192,8 +1192,10 @@ class PhoenixStructurer(StructurerBase):
1192
1192
  # update node_a
1193
1193
  node_a = next(iter(nn for nn in graph.nodes if nn.addr == target))
1194
1194
  if isinstance(node_a, IncompleteSwitchCaseNode):
1195
- self._unpack_incompleteswitchcasenode(graph, node_a)
1196
- self._unpack_incompleteswitchcasenode(full_graph, node_a)
1195
+ r = self._unpack_incompleteswitchcasenode(graph, node_a)
1196
+ if not r:
1197
+ return False
1198
+ self._unpack_incompleteswitchcasenode(full_graph, node_a) # this shall not fail
1197
1199
  # update node_a
1198
1200
  node_a = next(iter(nn for nn in graph.nodes if nn.addr == target))
1199
1201
 
@@ -1308,7 +1310,9 @@ class PhoenixStructurer(StructurerBase):
1308
1310
  ):
1309
1311
  out_nodes = set()
1310
1312
  for succ in successors:
1311
- out_nodes |= set(full_graph.successors(succ))
1313
+ out_nodes |= {
1314
+ succ for succ in full_graph.successors(succ) if succ is not node and succ not in successors
1315
+ }
1312
1316
  out_nodes = list(out_nodes)
1313
1317
  if len(out_nodes) <= 1:
1314
1318
  new_node = IncompleteSwitchCaseNode(node.addr, node, successors)
@@ -1508,7 +1512,10 @@ class PhoenixStructurer(StructurerBase):
1508
1512
  if node_default is not None:
1509
1513
  all_case_nodes.append(node_default)
1510
1514
  case_node: SequenceNode = next(nn for nn in all_case_nodes if nn.addr == out_src.addr)
1511
- case_node_last_stmt = self.cond_proc.get_last_statement(case_node)
1515
+ try:
1516
+ case_node_last_stmt = self.cond_proc.get_last_statement(case_node)
1517
+ except EmptyBlockNotice:
1518
+ case_node_last_stmt = None
1512
1519
  if not isinstance(case_node_last_stmt, Jump):
1513
1520
  jump_stmt = Jump(
1514
1521
  None, Const(None, None, head.addr, self.project.arch.bits), None, ins_addr=out_src.addr
@@ -2460,7 +2467,7 @@ class PhoenixStructurer(StructurerBase):
2460
2467
  return True, new_seq
2461
2468
 
2462
2469
  @staticmethod
2463
- def _unpack_incompleteswitchcasenode(graph: networkx.DiGraph, incscnode: IncompleteSwitchCaseNode):
2470
+ def _unpack_incompleteswitchcasenode(graph: networkx.DiGraph, incscnode: IncompleteSwitchCaseNode) -> bool:
2464
2471
  preds = list(graph.predecessors(incscnode))
2465
2472
  succs = list(graph.successors(incscnode))
2466
2473
  if len(succs) <= 1:
@@ -2471,6 +2478,8 @@ class PhoenixStructurer(StructurerBase):
2471
2478
  graph.add_edge(incscnode.head, case_node)
2472
2479
  if succs:
2473
2480
  graph.add_edge(case_node, succs[0])
2481
+ return True
2482
+ return False
2474
2483
 
2475
2484
  @staticmethod
2476
2485
  def _count_statements(node: BaseNode | Block) -> int:
@@ -214,16 +214,34 @@ class SPropagatorAnalysis(Analysis):
214
214
 
215
215
  if self._sp_tracker is not None and vvar.category == VirtualVariableCategory.REGISTER:
216
216
  if vvar.oident == self.project.arch.sp_offset:
217
+ sp_bits = (
218
+ (self.project.arch.registers["sp"][1] * self.project.arch.byte_width)
219
+ if "sp" in self.project.arch.registers
220
+ else None
221
+ )
217
222
  for vvar_at_use, useloc in vvar_uselocs[vvar.varid]:
218
223
  sb_offset = self._sp_tracker.offset_before(useloc.ins_addr, self.project.arch.sp_offset)
219
224
  if sb_offset is not None:
220
- replacements[useloc][vvar_at_use] = StackBaseOffset(None, self.project.arch.bits, sb_offset)
225
+ v = StackBaseOffset(None, self.project.arch.bits, sb_offset)
226
+ if sp_bits is not None and vvar.bits < sp_bits:
227
+ # truncation needed
228
+ v = Convert(None, sp_bits, vvar.bits, False, v)
229
+ replacements[useloc][vvar_at_use] = v
221
230
  continue
222
231
  if not self._bp_as_gpr and vvar.oident == self.project.arch.bp_offset:
232
+ bp_bits = (
233
+ (self.project.arch.registers["bp"][1] * self.project.arch.byte_width)
234
+ if "bp" in self.project.arch.registers
235
+ else None
236
+ )
223
237
  for vvar_at_use, useloc in vvar_uselocs[vvar.varid]:
224
238
  sb_offset = self._sp_tracker.offset_before(useloc.ins_addr, self.project.arch.bp_offset)
225
239
  if sb_offset is not None:
226
- replacements[useloc][vvar_at_use] = StackBaseOffset(None, self.project.arch.bits, sb_offset)
240
+ v = StackBaseOffset(None, self.project.arch.bits, sb_offset)
241
+ if bp_bits is not None and vvar.bits < bp_bits:
242
+ # truncation needed
243
+ v = Convert(None, bp_bits, vvar.bits, False, v)
244
+ replacements[useloc][vvar_at_use] = v
227
245
  continue
228
246
 
229
247
  # find all tmp definitions
@@ -190,7 +190,11 @@ class Sketch:
190
190
  for _, dst, data in self.graph.out_edges(node, data=True):
191
191
  if "label" in data and data["label"] == label:
192
192
  succs.append(dst)
193
- assert len(succs) <= 1
193
+ if len(succs) > 1:
194
+ _l.warning(
195
+ "Multiple successors found for node %s with label %s. Picking the first one.", node, label
196
+ )
197
+ succs = succs[:1]
194
198
  if not succs:
195
199
  return None
196
200
  node = succs[0]
@@ -1166,7 +1170,10 @@ class SimpleSolver:
1166
1170
  for labels, succ in path_and_successors:
1167
1171
  last_label = labels[-1] if labels else None
1168
1172
  if isinstance(last_label, HasField):
1169
- candidate_bases[last_label.offset].add(last_label.bits // 8)
1173
+ # TODO: Really determine the maximum possible size of the field when MAX_POINTSTO_BITS is in use
1174
+ candidate_bases[last_label.offset].add(
1175
+ 1 if last_label.bits == MAX_POINTSTO_BITS else (last_label.bits // 8)
1176
+ )
1170
1177
 
1171
1178
  node_to_base = {}
1172
1179
 
@@ -103,8 +103,11 @@ class Typehoon(Analysis):
103
103
  print(f"### {sum(map(len, self._constraints.values()))} constraints")
104
104
  for func_var in self._constraints:
105
105
  print(f"{func_var}:")
106
+ lst = []
106
107
  for constraint in self._constraints[func_var]:
107
- print(" " + constraint.pp_str(typevar_to_var))
108
+ lst.append(" " + constraint.pp_str(typevar_to_var))
109
+ lst = sorted(lst)
110
+ print("\n".join(lst))
108
111
  print("### end of constraints ###")
109
112
 
110
113
  def pp_solution(self) -> None:
@@ -384,7 +384,7 @@ class SimEngineVRAIL(
384
384
  def _ail_handle_Cmp(self, expr): # pylint:disable=useless-return
385
385
  self._expr(expr.operands[0])
386
386
  self._expr(expr.operands[1])
387
- return RichR(self.state.top(1))
387
+ return RichR(self.state.top(expr.bits))
388
388
 
389
389
  _ail_handle_CmpF = _ail_handle_Cmp
390
390
  _ail_handle_CmpEQ = _ail_handle_Cmp
@@ -459,16 +459,17 @@ class SimEngineVRAIL(
459
459
  r0 = self._expr(arg0)
460
460
  r1 = self._expr(arg1)
461
461
 
462
+ result_size = arg0.bits
462
463
  if r0.data.concrete and r1.data.concrete:
463
- # constants
464
- result_size = arg0.bits
465
- return RichR(r0.data * r1.data, typevar=typeconsts.int_type(result_size), type_constraints=None)
466
-
467
- r = self.state.top(expr.bits)
468
- return RichR(
469
- r,
470
- typevar=r0.typevar,
471
- )
464
+ v = r0.data * r1.data
465
+ tv = r0.typevar
466
+ elif r1.data.concrete:
467
+ v = r0.data * r1.data
468
+ tv = typeconsts.int_type(result_size)
469
+ else:
470
+ v = self.state.top(expr.bits)
471
+ tv = typeconsts.int_type(result_size)
472
+ return RichR(v, typevar=tv, type_constraints=None)
472
473
 
473
474
  def _ail_handle_Mull(self, expr):
474
475
  arg0, arg1 = expr.operands
@@ -608,7 +609,6 @@ class SimEngineVRAIL(
608
609
  )
609
610
 
610
611
  shiftamount = r1.data.concrete_value
611
-
612
612
  return RichR(r0.data << shiftamount, typevar=typeconsts.int_type(result_size), type_constraints=None)
613
613
 
614
614
  def _ail_handle_Shr(self, expr):
@@ -676,8 +676,8 @@ class SimEngineVRAIL(
676
676
  r0 = self._expr(arg0)
677
677
  r1 = self._expr(arg1)
678
678
 
679
+ result_size = arg0.bits
679
680
  if r0.data.concrete and r1.data.concrete:
680
- result_size = arg0.bits
681
681
  return RichR(
682
682
  r0.data & r1.data,
683
683
  typevar=typeconsts.int_type(result_size),
@@ -685,7 +685,7 @@ class SimEngineVRAIL(
685
685
  )
686
686
 
687
687
  r = self.state.top(expr.bits)
688
- return RichR(r, typevar=r0.typevar)
688
+ return RichR(r, typevar=typeconsts.int_type(result_size))
689
689
 
690
690
  def _ail_handle_Or(self, expr):
691
691
  arg0, arg1 = expr.operands
@@ -693,8 +693,8 @@ class SimEngineVRAIL(
693
693
  r0 = self._expr(arg0)
694
694
  r1 = self._expr(arg1)
695
695
 
696
+ result_size = arg0.bits
696
697
  if r0.data.concrete and r1.data.concrete:
697
- result_size = arg0.bits
698
698
  return RichR(
699
699
  r0.data | r1.data,
700
700
  typevar=typeconsts.int_type(result_size),
@@ -702,7 +702,7 @@ class SimEngineVRAIL(
702
702
  )
703
703
 
704
704
  r = self.state.top(expr.bits)
705
- return RichR(r, typevar=r0.typevar)
705
+ return RichR(r, typevar=typeconsts.int_type(result_size))
706
706
 
707
707
  def _ail_handle_LogicalAnd(self, expr):
708
708
  arg0, arg1 = expr.operands
@@ -133,6 +133,9 @@ class SimEngineVRBase(SimEngineLight):
133
133
  if abs_offset.op == "__lshift__" and abs_offset.args[1].concrete:
134
134
  offset = abs_offset.args[0]
135
135
  elem_size = 2 ** abs_offset.args[1].concrete_value
136
+ elif abs_offset.op == "__mul__" and abs_offset.args[1].concrete:
137
+ offset = abs_offset.args[0]
138
+ elem_size = abs_offset.args[1].concrete_value
136
139
 
137
140
  if base_addr is not None and offset is not None and elem_size is not None:
138
141
  return base_addr, offset, elem_size
@@ -1273,8 +1273,8 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
1273
1273
  expr_1 = arg1
1274
1274
 
1275
1275
  if isinstance(expr_0, claripy.ast.Bits) and isinstance(expr_1, claripy.ast.Bits):
1276
- expr0_ext = claripy.ZeroExt(expr_0.size(), expr_0)
1277
- expr1_ext = claripy.ZeroExt(expr_1.size(), expr_1)
1276
+ expr0_ext = claripy.ZeroExt(expr.bits - expr_0.size(), expr_0) if expr.bits > expr_0.size() else expr_0
1277
+ expr1_ext = claripy.ZeroExt(expr.bits - expr_1.size(), expr_1) if expr.bits > expr_1.size() else expr_1
1278
1278
  return expr0_ext * expr1_ext
1279
1279
 
1280
1280
  return ailment.Expr.BinaryOp(
@@ -1282,7 +1282,7 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
1282
1282
  "Mull",
1283
1283
  [expr_0, expr_1],
1284
1284
  expr.signed,
1285
- bits=expr.bits * 2,
1285
+ bits=expr.bits,
1286
1286
  floating_point=expr.floating_point,
1287
1287
  rounding_mode=expr.rounding_mode,
1288
1288
  **expr.tags,
@@ -17,6 +17,7 @@ import pyvex
17
17
  import claripy
18
18
 
19
19
  from angr.errors import UnsupportedIROpError, SimOperationError, SimValueError, SimZeroDivisionException
20
+ from angr.state_plugins.sim_action_object import SimActionObject
20
21
 
21
22
 
22
23
  l = logging.getLogger(name=__name__)
@@ -425,8 +426,18 @@ class SimIROp:
425
426
  print(f"... {k}: {v}")
426
427
 
427
428
  def calculate(self, *args):
428
- if not all(isinstance(a, claripy.ast.Base) for a in args):
429
- raise SimOperationError("IROp needs all args as claripy expressions")
429
+ # calculate may recieve SimActionObjects (if AST_DEPS is enabled) or
430
+ # claripy expressions, so we need to unpack the SAOs before passing them
431
+ # to claripy.
432
+ unpacked_args = []
433
+ for arg in args:
434
+ if isinstance(arg, SimActionObject):
435
+ unpacked_args.append(arg.to_claripy())
436
+ elif isinstance(arg, claripy.ast.Base):
437
+ unpacked_args.append(arg)
438
+ else:
439
+ raise SimOperationError(f"Unsupported argument type {type(arg)}")
440
+ args = unpacked_args
430
441
 
431
442
  if not self._float:
432
443
  args = tuple(arg.raw_to_bv() for arg in args)
angr/utils/bits.py CHANGED
@@ -14,3 +14,8 @@ def truncate_bits(value: int, nbits: int) -> int:
14
14
 
15
15
  def ffs(x: int) -> int:
16
16
  return (x & -x).bit_length() - 1
17
+
18
+
19
+ def sign_extend(value: int, bits: int) -> int:
20
+ sign_bit = 1 << (bits - 1)
21
+ return (value & (sign_bit - 1)) - (value & sign_bit)
angr/utils/formatting.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from __future__ import annotations
2
+ import os
2
3
  import sys
3
4
  from collections.abc import Sequence, Callable
4
5
 
@@ -23,7 +24,9 @@ def setup_terminal():
23
24
  colorama.init()
24
25
 
25
26
  global ansi_color_enabled # pylint:disable=global-statement
26
- ansi_color_enabled = isatty
27
+ # https://no-color.org/
28
+ no_color = os.environ.get("NO_COLOR", "")
29
+ ansi_color_enabled = isatty and not no_color
27
30
 
28
31
 
29
32
  def ansi_color(s: str, color: str | None) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.130
3
+ Version: 9.2.131
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
  Home-page: https://github.com/angr/angr
6
6
  License: BSD-2-Clause
@@ -16,13 +16,13 @@ Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: CppHeaderParser
18
18
  Requires-Dist: GitPython
19
- Requires-Dist: ailment==9.2.130
20
- Requires-Dist: archinfo==9.2.130
19
+ Requires-Dist: ailment==9.2.131
20
+ Requires-Dist: archinfo==9.2.131
21
21
  Requires-Dist: cachetools
22
22
  Requires-Dist: capstone==5.0.3
23
23
  Requires-Dist: cffi>=1.14.0
24
- Requires-Dist: claripy==9.2.130
25
- Requires-Dist: cle==9.2.130
24
+ Requires-Dist: claripy==9.2.131
25
+ Requires-Dist: cle==9.2.131
26
26
  Requires-Dist: itanium-demangler
27
27
  Requires-Dist: mulpyplexer
28
28
  Requires-Dist: nampa
@@ -31,7 +31,7 @@ Requires-Dist: protobuf>=5.28.2
31
31
  Requires-Dist: psutil
32
32
  Requires-Dist: pycparser>=2.18
33
33
  Requires-Dist: pyformlang
34
- Requires-Dist: pyvex==9.2.130
34
+ Requires-Dist: pyvex==9.2.131
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy
@@ -1,4 +1,4 @@
1
- angr/__init__.py,sha256=YLYzgmZmPOpGiJzrPC7iulriZ9MaWKOa_5apsQpeWyo,9153
1
+ angr/__init__.py,sha256=TdUYHjLWxyZNZnOF3HqJloE_RRvfXvpmfBdp5aqh0N8,9153
2
2
  angr/__main__.py,sha256=XeawhF6Cco9eWcfMTDWzYYggLB3qjnQ87IIeFOplaHM,2873
3
3
  angr/annocfg.py,sha256=5fiS9TPt5r1_8g_qSfD2XkETlBdm5MTClBIQKqhm040,10624
4
4
  angr/blade.py,sha256=GpbEumxMsb_6qD7TbtfZuW2CMzV7W1iwqYzQWYlXnxM,15394
@@ -55,7 +55,7 @@ angr/analyses/pathfinder.py,sha256=_prNqmRUSuSt2ZCP8qbvNN7pw7mtM8pWr9IL0AO6XL8,1
55
55
  angr/analyses/proximity_graph.py,sha256=-g7pNpbP2HQhKW3w1Eff23K8vAsgWWYoe3wVxRh3Lhk,16066
56
56
  angr/analyses/reassembler.py,sha256=y41XIGWqCVvwFlE3uACEMFLR-vByKkOazC405UPCOpM,98524
57
57
  angr/analyses/s_liveness.py,sha256=TQ_Er-6nQXZZU-tp_LNUXPbZeVCyR_QtVofpPLo8DU4,5239
58
- angr/analyses/s_propagator.py,sha256=7iyYX_MW6ljpd5BPjALIYcFmcjHzOW_BcmZLaO4YPQQ,14634
58
+ angr/analyses/s_propagator.py,sha256=lHtH3bt3CDf2xQCFxAd1_kVu9ukJgr-2zwrih7NwbVo,15608
59
59
  angr/analyses/smc.py,sha256=0fvLPUpjlg6GCjYnfSqanXkGYlthmPwqMYR-ZYBHsbo,5075
60
60
  angr/analyses/soot_class_hierarchy.py,sha256=AtvXMAlz6CVvfbtkPY4ghouH_1mNnPg9s9jFhZwWvEw,8741
61
61
  angr/analyses/stack_pointer_tracker.py,sha256=5NZf4muUFIJX-F605n5LMw8ihA648-FA4Bm5mAcsHBE,31379
@@ -102,7 +102,7 @@ angr/analyses/decompiler/block_io_finder.py,sha256=xMwG8Bi69OGNYVs0U0F4yxM8kEsny
102
102
  angr/analyses/decompiler/block_similarity.py,sha256=ISMoOm-TGJ_1wD2i_4m8IYTletgnP66gReQESJnfvS0,6873
103
103
  angr/analyses/decompiler/block_simplifier.py,sha256=_WYyfFW8bJ_-RkrudJIlDdHh9fc6_aHkuwzW9gylY-k,13922
104
104
  angr/analyses/decompiler/callsite_maker.py,sha256=Gs_FmlmIs5jM-XccL9OMCaj_-L83NlYzkzxsy2HmcfQ,18749
105
- angr/analyses/decompiler/clinic.py,sha256=Psy7ljBDFOqYx_Al8xvDPe3naJi8YsdMryXo8wVlrhM,106999
105
+ angr/analyses/decompiler/clinic.py,sha256=n97E63-kHriPwvSbUBjjBFWjBTGnliLvRRhNzOxwEYg,119900
106
106
  angr/analyses/decompiler/condition_processor.py,sha256=MbpbSk6zXHmMLWjLAHxpYjcLCVL1TuL08KmTBTNpm_4,52839
107
107
  angr/analyses/decompiler/decompilation_cache.py,sha256=ELz1DDVYvrs6IeUX4_L0OZDZICUifSBdJkdJXWrFZAY,1375
108
108
  angr/analyses/decompiler/decompilation_options.py,sha256=QWUGnfQ0FUekGs_I6X-ZKvAvL39VX2hFRcZrlXd72fY,7957
@@ -136,7 +136,7 @@ angr/analyses/decompiler/dephication/graph_rewriting.py,sha256=R0rlwYL0Cnt1UPjdE
136
136
  angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=nsMwppwMXrGC8_RF-neehpaz-7kmEORVhpAbjOdVFWM,13703
137
137
  angr/analyses/decompiler/dephication/rewriting_engine.py,sha256=3KUIxwUmfTZj2Jm1mB98J5vMkHqy4LLPYTrLzZfLbBA,10442
138
138
  angr/analyses/decompiler/dephication/seqnode_dephication.py,sha256=q29kS8lOs_-mxgJMtQvoZdw6l3q2lUDeXcTcGienIrY,4343
139
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=7CvrHdbjvebdxzXYIvLqzKNv41bc19tecWZJBnEwEyo,4965
139
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=69qs4rG8evQvtc_T5pCikZl_6Hvqy26Vx9eLvh1JZIY,4875
140
140
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=uUzQWVkeKL2C9Lq8NZ7UkkZBAXydxOd0F1jxr0Zi__Q,5514
141
141
  angr/analyses/decompiler/optimization_passes/call_stmt_rewriter.py,sha256=G1CEWo62dAMrm-3V4DfEDxT6kwXxuks10bcTtW9C_tA,1320
142
142
  angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=7o6lf-qahXv5H8jLqEASVXHaz-_PGo3r6l7qH5PbDtU,15343
@@ -153,7 +153,6 @@ angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=eeKEko
153
153
  angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=zTplo_VsSfY6WR_F4SIwHFvAySUo3USDntnniD23i-A,13201
154
154
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=1Yto_EBmmB5FkwZzaAO7S0MEvbQNEknFbbq-nUU0Eao,38818
155
155
  angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=papR480h-t_wEWMEdu6UTmc33lPSy_MOmiMgidPGnxc,3115
156
- angr/analyses/decompiler/optimization_passes/multi_simplifier.py,sha256=sIp2YISvafpyFzn8sgGMfohJsARiS3JFX_Y3IUXD_vo,10119
157
156
  angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=ZCGlsTK_3pF2uKdUkLoI2zkQTVvR3w1zt0ZLhy0_BcA,21530
158
157
  angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=tc4FruEl0sFpm1DUu9g8gWlueRm0t9rhfHsdUrVplBo,7932
159
158
  angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py,sha256=GIFiYM_C_ChHrD2D1JGRFlE--PU3FOxTqzOX-lXmJLY,6404
@@ -173,10 +172,11 @@ angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_re
173
172
  angr/analyses/decompiler/optimization_passes/duplication_reverter/errors.py,sha256=dJq1F3jbGBFWi0zIUmDu8bwUAKPt-JyAh5iegY9rYuU,527
174
173
  angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py,sha256=V5NDaCYuzoJl-i74JKKV4t9FihXsnmNbki7_4SxJfwo,4406
175
174
  angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py,sha256=zpqQgJTtg4VyBMonldrcevjzLoVD48jbemMygE-VuhY,5175
176
- angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=wSxhpjnNTXIHCVDH6vU7Vxkz568H0MS5T_p7_Q5iATg,4343
175
+ angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=408dqFhq9U6cf-lS0VIUQGjmVaSJiDPxBSaNDowVS9Q,4454
177
176
  angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=4iCV9lkADp8lvcPk9vjTwyAG8j5HTBVO9NgBuB7bYhA,1636
178
177
  angr/analyses/decompiler/peephole_optimizations/a_mul_const_div_shr_const.py,sha256=I_AznhlOZG_RDBOJrGsOamH2piOX7XgqxMSt5zX8HqQ,1374
179
- angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=Io8dMevnbaEE6MYOll9fJ-iCmgM9hhuALb3HNt2B9mo,1023
178
+ angr/analyses/decompiler/peephole_optimizations/a_mul_const_sub_a.py,sha256=noCM779o2T8spHyQn27Wxc0B6efexlwqsNcH8aqls6c,1153
179
+ angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=UbgDxAjFiKjn7CHcKXmXWVe8VvmtqpWYL8Vc-T8GOxc,1137
180
180
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_div.py,sha256=MifsnlpogQgWKvshbsuXzQxYv95wBLYCflMddf-Rysc,958
181
181
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_div_const_mul_const.py,sha256=q4qOmRuInwXqT3T3tyybVhWAE1dkS4xGVVkl2b0TGgk,2085
182
182
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_sub_n.py,sha256=ZQhLw89LjX-O4Gev5AgWMcdn-QR_wVFLzBO4RI6podY,662
@@ -186,7 +186,7 @@ angr/analyses/decompiler/peephole_optimizations/basepointeroffset_add_n.py,sha25
186
186
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_and_mask.py,sha256=Wl1ULOi_zBbIzhlp_C-peqr2cazl1pezzubz50RV74k,1100
187
187
  angr/analyses/decompiler/peephole_optimizations/bitwise_or_to_logical_or.py,sha256=bozJ8fGjwYHjz4wS4P5S8y_I_h9WMvp1y9VSraWrBFM,1301
188
188
  angr/analyses/decompiler/peephole_optimizations/bool_expr_xor_1.py,sha256=zyitj8lWSd1rfuVe4GDlr-HnqNAqi_uflvbM0J7WpAA,990
189
- angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=UTkF5sYZcC45tXt94BzEvphXein40UF3ft1uqYKRNoE,6138
189
+ angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=70XLV0WLbWFgrYFcSReR6bVgJNoacejSlzR-uzJNEqY,6410
190
190
  angr/analyses/decompiler/peephole_optimizations/cmpord_rewriter.py,sha256=4ERanmpCQq06B6RE-AO_-jgPloyP9Jg5wcUja9iA_gI,2652
191
191
  angr/analyses/decompiler/peephole_optimizations/coalesce_adjacent_shrs.py,sha256=xZ129l0U5hoPXtczxZFUfZL59V7d0u2amQTO4phIpQU,1409
192
192
  angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=h3m9FIxsMpElPE3ecFfa0vnzuxwG5oJLNEqvLuMpMgI,1062
@@ -194,7 +194,7 @@ angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py,sha256=3KT
194
194
  angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=5ThmIgu38Un_N5AltnQtcTnoEnOT45HRu6NehB3rG5M,1713
195
195
  angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=6WooyVqwdlMLixGFR8QE0n6GDEC2AluVo4dIr7vwmqY,2379
196
196
  angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=5LtXTzPwO_Dtru3UYbr6l8YYylxKrAVZ9q6Gjk1C8sI,2105
197
- angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=T2dA5fhkNj-Y4NSVwz4N54jyVolMK6X963eESKqX0Ow,10594
197
+ angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=mQFIR5isnYp2uNZeY1R6QmAOdHzCer_-5orQXuNg0JA,15174
198
198
  angr/analyses/decompiler/peephole_optimizations/extended_byte_and_mask.py,sha256=r39kiAST4tC-iInTuFgnek0KOljBS3AxS2wPvEpEB58,2044
199
199
  angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=40RcqWIMALxfA-LG-DN2N_yK5uW2HWF_x4AquCTMbNU,6245
200
200
  angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py,sha256=wKj38t6sTd6wpbVpbPG7Nxiz9vU5K_TvL4sws04TsDk,4681
@@ -203,27 +203,29 @@ angr/analyses/decompiler/peephole_optimizations/invert_negated_logical_conjuctio
203
203
  angr/analyses/decompiler/peephole_optimizations/one_sub_bool.py,sha256=7R_rVBIbk-tFUYU8LMJI2RCtLJuvUMOhUL1jqE9D4u8,1135
204
204
  angr/analyses/decompiler/peephole_optimizations/remove_cascading_conversions.py,sha256=ut3wAJxwWTW4i4uglNEXrONG5PzNUniBGtUUZ9vmWe4,1815
205
205
  angr/analyses/decompiler/peephole_optimizations/remove_empty_if_body.py,sha256=kWgm8IkSU0Puya7uRFaNbUOOTYkXA5V9UD8S3ai_xZc,1602
206
- angr/analyses/decompiler/peephole_optimizations/remove_noop_conversions.py,sha256=ex6S-SaoIsHum5gTKFqvdx2f2Q46K_LJV-HSDR33-p4,1026
206
+ angr/analyses/decompiler/peephole_optimizations/remove_noop_conversions.py,sha256=ZmcFKbZ7_9j0-7SdfOgZxeGKyZPSg-dUQv4RYXtTHQI,1569
207
207
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_bitmasks.py,sha256=MsoNtMoaMOtKUKkrBEQSOKlhCy4J9l06BlqpuJchT9Y,1670
208
- angr/analyses/decompiler/peephole_optimizations/remove_redundant_conversions.py,sha256=S3rXoVDDPQb1DeH9Qx5SQI0SKQuKFrKwJKtNB8sw3LE,6514
208
+ angr/analyses/decompiler/peephole_optimizations/remove_redundant_conversions.py,sha256=_TOXqaPu4SXkjFLsDjjeOd7SGz8nQXgRXofFvOswqIk,7766
209
209
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_ite_branch.py,sha256=I3BdEwYNCz7vt0BreBhB-m0OD6g0-SxqNFCw5fpE_EM,1128
210
210
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_ite_comparisons.py,sha256=o5KX_HnE8e_bJCSX2mOomheXRk3EUU0mPbja7w0w8Ns,1878
211
211
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_nots.py,sha256=JOsJeo77vGGaEFFXSk2pHub6gleQmWsnvNdZEqv_uBg,538
212
212
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_reinterprets.py,sha256=DqGdwso3CuulthzNNjUseNF2eb8VMQhhritjWSwCViE,1425
213
- angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts.py,sha256=TXCJ2e6F1kL-H6DN80rfd_yTbyQRyNnmuijCDQBLkZA,1658
213
+ angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts.py,sha256=XBE4jziVAhwUDxb3un5yMhngPc-MBGVcwtdm0EczQy4,1776
214
214
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts_around_comparators.py,sha256=MHkgIgOMWaAVqe5q4X-yzIxkPzd2KyTngvhxtXorOi4,1605
215
215
  angr/analyses/decompiler/peephole_optimizations/rewrite_bit_extractions.py,sha256=GRVXdwmu9OeTacxWRX0rGw5N5BUbN0xZxZRqtiL31iQ,3295
216
216
  angr/analyses/decompiler/peephole_optimizations/rewrite_mips_gp_loads.py,sha256=-bENfNstVil2AW-AUsQHr6GTt6TyhISw2jaNpHkheuU,1904
217
- angr/analyses/decompiler/peephole_optimizations/rol_ror.py,sha256=pbKk8NSOgU1pBFLV1_qZNxaEbNpA_TpV92AZhgVfVrg,4229
217
+ angr/analyses/decompiler/peephole_optimizations/rol_ror.py,sha256=b1OTZH0mFSPGtlV-a_Gdila38YaVNm1AJX9qtPuyzBA,5134
218
218
  angr/analyses/decompiler/peephole_optimizations/sar_to_signed_div.py,sha256=yZ_di2u55BiyjTfZatW5pQoqA5g3dbOXaLQv9CxkXhg,5180
219
+ angr/analyses/decompiler/peephole_optimizations/shl_to_mul.py,sha256=ooZ1wDPl5HsiaIpPQ57wgbtSwHfmTHDJ8xey8P6_3-Y,783
219
220
  angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py,sha256=9vj8fE4XpuFrnre0ucd138Zqb0P85IMuueW3h4SKhAQ,1449
220
221
  angr/analyses/decompiler/peephole_optimizations/single_bit_cond_to_boolexpr.py,sha256=1BdUs9d9Ma2PqMYy5VgIvsc30im5ni-By88RWkWbpSY,1872
221
222
  angr/analyses/decompiler/peephole_optimizations/single_bit_xor.py,sha256=tnjWYeKWL63rvLVcicVSD1NbVQJfHtLT85E_PNeYt6s,979
222
223
  angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py,sha256=RRzuc2iGzQPvYaZAmpLKim0pJ_yR3-muGnJQxvpcN8w,4786
224
+ angr/analyses/decompiler/peephole_optimizations/utils.py,sha256=AjnndY2RIRg9R2vzVnEleq_IJgbtBPK3NlfK5vM0UYw,719
223
225
  angr/analyses/decompiler/presets/__init__.py,sha256=FfnTqgY3oINacW7JFPIxx3r9dwpgI0Pu8yygBCN9d68,375
224
226
  angr/analyses/decompiler/presets/basic.py,sha256=KDHlMq_XWonN2-JIYYVIhbI6FbfzXttmkgXFrwi5MiA,803
225
- angr/analyses/decompiler/presets/fast.py,sha256=7C6-7Enha_ZRP-z_1tD3y3tG-FFqFPdp97rCTro0I6o,1535
226
- angr/analyses/decompiler/presets/full.py,sha256=OJU5vmih0QPzoHWfy4Umwek7RHh6TV7fuUTi5VolDTo,1708
227
+ angr/analyses/decompiler/presets/fast.py,sha256=n_XZ676QrNjVjLv8I_E5rB0xXIfGIcvLNOQ3ZjFoZ1Q,1418
228
+ angr/analyses/decompiler/presets/full.py,sha256=N4lfDw2SxuMCizQ_3hBcfKvHsl4MGFXklDJkQjA1yC0,1662
227
229
  angr/analyses/decompiler/presets/preset.py,sha256=sTK5fJfx_Cdx0Gjn7y4bOrDp-2eFPeg1e1d5Eyc9uXk,1256
228
230
  angr/analyses/decompiler/region_simplifiers/__init__.py,sha256=BSD9osrReTEdapOMmyI1kFiN7AmE1EeJGLBV7i0u-Uc,117
229
231
  angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py,sha256=qLs1LxEYHdPrh5c33IdkHJqtjBU7z4Sz6fxOK4Fn0Oc,3816
@@ -239,7 +241,7 @@ angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=
239
241
  angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=CngQ_LSACeEVIjuU6kIW2Y0ZSMJWFBwpL95Yh_7w3O4,3335
240
242
  angr/analyses/decompiler/ssailification/__init__.py,sha256=zcHoI7e2El2RSU_bHTpQRd1XRLHOfFScG6f3cm5y_lQ,108
241
243
  angr/analyses/decompiler/ssailification/rewriting.py,sha256=-3jNGbtTH8-Yznoy0BguKlwoLTh9kqihT1tG0XfXX7E,12328
242
- angr/analyses/decompiler/ssailification/rewriting_engine.py,sha256=K41p7z0O9YOjBokdb8QMJPA964kY5ufgYk4U1It9qNs,27325
244
+ angr/analyses/decompiler/ssailification/rewriting_engine.py,sha256=wqPu6ZPbxxh4D2YX4G6JzYIQv2KMnfg_sjig03gNaUc,27387
243
245
  angr/analyses/decompiler/ssailification/rewriting_state.py,sha256=L7apDXQLPiItuLdQFoQdut5RMUE8MRV1zRc3CsnuH6E,1883
244
246
  angr/analyses/decompiler/ssailification/ssailification.py,sha256=bTMTwS4auYQCnY9cNwqbgdYksFym0Iro5e7qRIDmlME,8711
245
247
  angr/analyses/decompiler/ssailification/traversal.py,sha256=75QzMIAC5RY_RcxMmqUTNeoEgGJwuTnR2KXIc8hnaMI,2981
@@ -247,12 +249,12 @@ angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=eSC6wnsLTvXXI
247
249
  angr/analyses/decompiler/ssailification/traversal_state.py,sha256=_AsCnLiI2HFdM6WrPyAudhc0X4aU_PziznbOgmzpDzQ,1313
248
250
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=unzkTPhZbpjf5J3GWg1iAFkW17aHFHzuByZCMKE4onQ,633
249
251
  angr/analyses/decompiler/structured_codegen/base.py,sha256=9Zfp2d8Oqp6TAgLJyu7v214YDBtdy3Qx8rs801wIsv0,3796
250
- angr/analyses/decompiler/structured_codegen/c.py,sha256=zkS0NwthFXiILkdlRuniPXRKyeKlI6QMHPjaERG8ysQ,138987
252
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=yibIm8YEUha7ZKdpAE_FiS1ogEfmlLViDzLTOKY6738,141013
251
253
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=JZLeovXE-8C-unp2hbejxCG30l-yCx4sWFh7JMF_iRM,570
252
254
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=J6V40RuIyKXN7r6ESftIYfoREgmgFavnUL5m3lyTzlM,7072
253
255
  angr/analyses/decompiler/structuring/__init__.py,sha256=u2SGBezMdqQF_2ixo8wr66vCMedAMY-cSjQyq2m-nR8,711
254
256
  angr/analyses/decompiler/structuring/dream.py,sha256=mPNNsNvNb-LoDcoU_HjUejRytIFY_ZyCAbK4tNq_5lM,48254
255
- angr/analyses/decompiler/structuring/phoenix.py,sha256=4I8Vuhz4uQK7tZVvpP-UwiaE54iPWplGmjbgWzTp1Fc,125144
257
+ angr/analyses/decompiler/structuring/phoenix.py,sha256=Bfv6xkv5uYt6QnF1mTrhRcA2c1Ur8HXiyCCQi_m34LQ,125499
256
258
  angr/analyses/decompiler/structuring/recursive_structurer.py,sha256=wxMiixVpmao1Rpuo3wN-gxkPh2YrgTTW4usgtdjdY9E,7150
257
259
  angr/analyses/decompiler/structuring/sailr.py,sha256=6lM9cK3iU1kQ_eki7v1Z2VxTiX5OwQzIRF_BbEsw67Q,5721
258
260
  angr/analyses/decompiler/structuring/structurer_base.py,sha256=b2fGaDOYy_XdgbOHsKIalJWVTXEt4zDK7w3IO-ZgIjI,43276
@@ -337,10 +339,10 @@ angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=GSt-yp59h4
337
339
  angr/analyses/typehoon/__init__.py,sha256=KjKBUZadAd3grXUy48_qO0L4Me-riSqPGteVDcTL59M,92
338
340
  angr/analyses/typehoon/dfa.py,sha256=E0dNlKxy6A9uniqRJn3Rcwa6c6_NT_VVjtHM8b-j2LE,3503
339
341
  angr/analyses/typehoon/lifter.py,sha256=iLl9F7RZtyth3qEeTvJGyvrKxrmaLn8LxS9DUbkoz4k,2823
340
- angr/analyses/typehoon/simple_solver.py,sha256=MYZwt06msIhQnOhyiHpbZ0fABrWAlKRGFpo13JFzumU,49088
342
+ angr/analyses/typehoon/simple_solver.py,sha256=W8Lkr71H7nWUqKlMfecyHTh1LNVq4vVd_KK7flVuPsI,49503
341
343
  angr/analyses/typehoon/translator.py,sha256=_P_fyR219Tjyen7ccrAesNQgkLMXRtbZyzsW9bi8F3w,9200
342
344
  angr/analyses/typehoon/typeconsts.py,sha256=LLXbaYIdU03GgA8xYsW4eguV6qlIoHhSesqWiAVl5xk,7146
343
- angr/analyses/typehoon/typehoon.py,sha256=YzrzK6iTMCO08l2pk2ov3WAtRZuHB6AYxlFpdtDI5HY,9333
345
+ angr/analyses/typehoon/typehoon.py,sha256=X7K9OT02yzTueXFPaFFoXGSsJOcPwtG1Jwz9mwIiF3w,9423
344
346
  angr/analyses/typehoon/typevars.py,sha256=F7CBFVplF_xy1gsUkUXnxEhBVeceXb-VvnYwntJ6ivU,16198
345
347
  angr/analyses/typehoon/variance.py,sha256=3wYw3of8uoar-MQ7gD6arALiwlJRW990t0BUqMarXIY,193
346
348
  angr/analyses/unpacker/__init__.py,sha256=uwWYeRUgAs_F_ZtIUkzCyca_5nTpc5HwqW0JeRtPN8o,190
@@ -348,8 +350,8 @@ angr/analyses/unpacker/obfuscation_detector.py,sha256=VWMHOO2UbyiGzRYzAq9yrU3WwZ
348
350
  angr/analyses/unpacker/packing_detector.py,sha256=SO6aXR1gZkQ7w17AAv3C1-U2KAc0yL9OIQqjNOtVnuo,5331
349
351
  angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDYKKMJklcOoCO7Ao,208
350
352
  angr/analyses/variable_recovery/annotations.py,sha256=2va7cXnRHYqVqXeVt00QanxfAo3zanL4BkAcC0-Bk20,1438
351
- angr/analyses/variable_recovery/engine_ail.py,sha256=oOlvhYyU9FkAcWcpRE9G_simBdDMrsCEyZRasr9TzlI,28546
352
- angr/analyses/variable_recovery/engine_base.py,sha256=PKPz2OOmEYUNKiiXHZIS1LA3jBG03d-TwfdGaHfKu3Q,50374
353
+ angr/analyses/variable_recovery/engine_ail.py,sha256=dYnTQ8fy1bEXMIUSdUYkXIZtFNid0fhtYgw_fFhVIcg,28676
354
+ angr/analyses/variable_recovery/engine_base.py,sha256=Y5Lc2wMKqoUcj_gbmIZ1lapCuy0x7MtjVEIKTe32vWM,50569
353
355
  angr/analyses/variable_recovery/engine_vex.py,sha256=LmUzvlKIyW0NawOfGoKvOq-AoiTtvREOmNdxL8y1cp4,19600
354
356
  angr/analyses/variable_recovery/irsb_scanner.py,sha256=HlH_Hd6z5i3MTBHRoWq1k4tGudz8PewiM76hYv8d3ZQ,4913
355
357
  angr/analyses/variable_recovery/variable_recovery.py,sha256=pBXY1fb3jR2pDpLMtOjL8rH_tkjyvatObW12gYb-r1g,21742
@@ -398,7 +400,7 @@ angr/engines/syscall.py,sha256=HPAygXTIb8e4_j2DBS4LCCaAz9DNyji5mucfoYck_Dc,2162
398
400
  angr/engines/unicorn.py,sha256=8ggDUXdEQl1EMiY-Tp4CnyzzMK0zZrkGObLvBwPU9uU,24496
399
401
  angr/engines/light/__init__.py,sha256=3arK8vMsnu6TRxa1_sVWBfD7fRDHFL5kBbl9q-ui9Zw,435
400
402
  angr/engines/light/data.py,sha256=W4g-RZcLyhqXMiyrQBhNYaf8a3NIemq4iQpbPsl_Cdg,21243
401
- angr/engines/light/engine.py,sha256=wIpMB3DkdsWsrefTdS9_lkqpbLmywbz9HTij2hmx8b4,46179
403
+ angr/engines/light/engine.py,sha256=71V807opcHDi-wUsZQukvZaN676tKujVsYWwjginFNI,46281
402
404
  angr/engines/pcode/__init__.py,sha256=aoEeroPopUOmSplbB9XMz9ke9LXO6jtFMmI_e8X4i28,195
403
405
  angr/engines/pcode/behavior.py,sha256=UZHWTPyRnWN28i8I6o6YgnsIa4CaN_yP36fyNu45heg,29406
404
406
  angr/engines/pcode/cc.py,sha256=vPT7FA2tmlPUVA2ptHDNVqhAZEuZZaJYajBEIctXH54,3180
@@ -455,7 +457,7 @@ angr/engines/vex/lifter.py,sha256=ZW37S1McKXzOkhP8JRfMwYT7iMxv3wOLhbQOdTW6cp8,16
455
457
  angr/engines/vex/claripy/__init__.py,sha256=4B8H1VOHrrKJMjAXZkZ0r_02issFP_bxDJJMw50yVe4,109
456
458
  angr/engines/vex/claripy/ccall.py,sha256=82w7I1OIIFmnarngCOn39iBwmYv3Xp46Xcz1ATqjn80,81765
457
459
  angr/engines/vex/claripy/datalayer.py,sha256=62OwjpOPxpXBmxkRLde5RYLfI_oCIfdj23GVYP25VUQ,4973
458
- angr/engines/vex/claripy/irop.py,sha256=meEiCdsUhAiAydBl8D6Zp9SrTrIOiGVVUlgu3NNRj7w,45753
460
+ angr/engines/vex/claripy/irop.py,sha256=rCrVpwwZnXzgTYgsXDLahcONCv3UvHnM1yr9jQgaIek,46228
459
461
  angr/engines/vex/heavy/__init__.py,sha256=VLvDao7Drp2stJnRfznKM04IFYi7rjfdRWVJ09nl7Ow,376
460
462
  angr/engines/vex/heavy/actions.py,sha256=n8LDymfj6qHAd6evzoyZmHkSN8MlVjZHfgREATC-bek,8663
461
463
  angr/engines/vex/heavy/concretizers.py,sha256=2xQYLXmugpJWIUjUrMnall2ewX05kTdOYLWjediaf6Q,14433
@@ -1332,14 +1334,14 @@ angr/storage/memory_mixins/regioned_memory/static_find_mixin.py,sha256=tWyiNrMxm
1332
1334
  angr/utils/__init__.py,sha256=knkVHIwNqvlu-QgvPorAscSpyPWogzfZwP5OnYmLbmk,1159
1333
1335
  angr/utils/ail.py,sha256=8_FloZ6cP89D2Nfc_2wCPcuVv7ny-aP-OKS3syCSMLk,1054
1334
1336
  angr/utils/algo.py,sha256=4TaEFE4tU-59KyRVFASqXeoiwH01ZMj5fZd_JVcpdOY,1038
1335
- angr/utils/bits.py,sha256=ut-9JR2Ks3fiC9aGae_UfYZBKHCADuhPHmPwPYPDwwg,357
1337
+ angr/utils/bits.py,sha256=0x3sl_CYlYDWw0vBFJPXIf-SQiedQErhpN-hi_kZLBo,494
1336
1338
  angr/utils/constants.py,sha256=ZnK6Ed-1U_8yaw-7ZaCLSM0-z7bSuKPg715bBrquxKE,257
1337
1339
  angr/utils/cowdict.py,sha256=qx2iO1rrCDTQUGX9dqi9ZAly2Dgm6bCEgdSAQw9MxRM,2159
1338
1340
  angr/utils/dynamic_dictlist.py,sha256=n-HlT1H8yk4KowLTJ6II5ioJr5qn66DW3t4hhesx1Vs,3048
1339
1341
  angr/utils/endness.py,sha256=wBcek3rwRQCYdMVFOV5h5q16Ahgjn2x_zZdPeZQEui0,501
1340
1342
  angr/utils/enums_conv.py,sha256=dQqZwspTq8tR5auBEnbpigk9CLkYqduAFgfBsOXqPms,2129
1341
1343
  angr/utils/env.py,sha256=aO4N2h7DUsUQtTgnC5J_oPHvMxJRur20m5UFSkmy4XU,398
1342
- angr/utils/formatting.py,sha256=6szFjm3RtlD3G_csDmRgEB8JFNGC3GfZC8YdGYa1ZHg,4242
1344
+ angr/utils/formatting.py,sha256=OWzSfAlKcL09cEtcqxszYWHsRO9tih7hvXD2K9kUZc8,4343
1343
1345
  angr/utils/funcid.py,sha256=dSGbKUWpTzy48374lJqHyRefJ6K7B7jRVhYHmpGmD3I,5256
1344
1346
  angr/utils/graph.py,sha256=Sjm1rV1OWInzHVGcyecerNhHRn3eqqQhEjcEhrFLK8M,30489
1345
1347
  angr/utils/lazy_import.py,sha256=7Mx-y-aZFsXX9jNxvEcXT-rO8tL8rknb6D6RbSFOI1M,343
@@ -1353,9 +1355,9 @@ angr/utils/timing.py,sha256=ELuRPzdRSHzOATgtAzTFByMlVr021ypMrsvtpopreLg,1481
1353
1355
  angr/utils/ssa/__init__.py,sha256=Sz9zQVnvtmCbJJYeTG_k2JxcZtgxvIxap-KqzvRnIFQ,8015
1354
1356
  angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
1355
1357
  angr/utils/ssa/vvar_uses_collector.py,sha256=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
1356
- angr-9.2.130.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1357
- angr-9.2.130.dist-info/METADATA,sha256=HreKfogB28SUxqGpV3d6OAJVB8yUY5PlGZXK_dSaaKo,4762
1358
- angr-9.2.130.dist-info/WHEEL,sha256=-NJbNRco0VfEz3luq7ku84EsJsWGgW5ZrO0zAtrzmbo,109
1359
- angr-9.2.130.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1360
- angr-9.2.130.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1361
- angr-9.2.130.dist-info/RECORD,,
1358
+ angr-9.2.131.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1359
+ angr-9.2.131.dist-info/METADATA,sha256=94Mr0AZAHd-M167eUqX6MteJBl2WCn3BTQ-13_II8Do,4762
1360
+ angr-9.2.131.dist-info/WHEEL,sha256=-NJbNRco0VfEz3luq7ku84EsJsWGgW5ZrO0zAtrzmbo,109
1361
+ angr-9.2.131.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1362
+ angr-9.2.131.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1363
+ angr-9.2.131.dist-info/RECORD,,