{"binding":{"analysis_profile":{"digest":"9c7f6b24be69294e61da046e4583e3856cb9e40433b149c1bf8bb534d2fe03ef","parameters":{"analyzer_preset":"ghidra-default","annotation_policy":"atomic-function-entry-metadata-v1","architecture":"x86_64","available_architectures":["x86_64"],"call_relationship_coverage":"function-body-call-coverage-v5","compiler_spec_id":"auto-default","decompiler_jump_loads":true,"function_body_evidence":"complete-inclusive-ranges-v1","function_boundary_observations":"ghidra-function-boundary-limitations-v3","function_dossier_coverage":"observed-facets-and-call-relationships-v1","function_references":"complete-body-and-entry-reference-manager-v2","import_mode":"ephemeral-source-immutable","instruction_flow_evidence":"decoded-return-pcode-v1","instruction_references":"exact-address-incoming-v1","jump_table_evidence":"typed-case-default-blocks-v1","language_id":"auto-from-header","load_image_observations":"source-mappings-entry-context-v2","loader":"auto-from-header","location_resolution":"explicit-address-exact-entry-symbol-first-v3","no_return_repair":"returning-imports-decoded-return-v2","procedure_file_offset_resolution":"address-first-unique-target-source-mapping-v2","process_launch":"inspected-jvm-launch-support-v1","string_inventory_evidence":"defined-data-coverage-v1","target_format":"elf","target_kind":"executable"},"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"}},"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"}},"entries":[{"execution":{"limitations":["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.","The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.","Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.","Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.","References cover the complete Ghidra function-body AddressSet and exact entry. Dossier incoming edges omit sources owned by that function; procedure_references also retains those internal edges.","The dossier combines Ghidra FunctionManager, Listing, ReferenceManager, BasicBlockModel, and decompiler observations; provider-specific pseudocode and assembly are not cross-provider text invariants.","Resolved reference metadata identifies computed, indirect, external, call, jump, and data edges; unresolved targetless flows remain unknown, and function classifications distinguish thunks and externals.","Synthetic Ghidra entry-point references without actionable memory sources are omitted.","The Java bridge serializes one function request per Program and lets each decompilation run until it completes or the caller cancels.","macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state."],"locations":[],"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"raw_result":{"limitations":[],"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"value":{"assembly":["0x100000: TEST EDI, EDI","0x100002: JZ 0x0010000d","0x100004: SUB ESI, EDI","0x100006: IMUL EAX, ESI, 0x64","0x100009: CDQ","0x10000a: IDIV EDI","0x10000c: RET","0x10000d: XOR EAX, EAX","0x10000f: RET"],"basic_blocks":[{"end":"0x100004","start":"0x100000","successors":["0x100004","0x10000d"]},{"end":"0x10000d","start":"0x100004","successors":[]},{"end":"0x100010","start":"0x10000d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"_elfSectionHeaders:0x90","source_procedure":null,"target_address":"0x100000","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"},{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_2","ordinal":1,"role":"parameter","size_bytes":4,"storage":"ESI:4"},{"confidence":"low","data_type":"ulong","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type ulong.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_3","ordinal":2,"role":"parameter","size_bytes":8,"storage":"RDX:8"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"undefined1[16]","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type undefined1[16].","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":16,"storage":"RDX:8,RAX:8"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100000#4","input_index":1,"use":"0x100002#9"},{"definition":"0x100004#12","input_index":0,"use":"0x100006#22"},{"definition":"0x100006#22","input_index":0,"use":"0x10000a#36"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#37"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#37"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#40"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#40"},{"definition":"0x10000a#37","input_index":0,"use":"0x10000a#74"},{"definition":"0x10000a#40","input_index":0,"use":"0x10000a#83"},{"definition":"0x10000c#94","input_index":1,"use":"0x10000c#45"},{"definition":"0x10000a#83","input_index":0,"use":"0x10000c#94"},{"definition":"0x10000a#74","input_index":1,"use":"0x10000c#94"},{"definition":"0x10000f#95","input_index":1,"use":"0x10000f#58"},{"definition":"0x10000f#106","input_index":0,"use":"0x10000f#95"},{"definition":"0x10000f#108","input_index":0,"use":"0x10000f#106"},{"definition":"0x10000f#109","input_index":1,"use":"0x10000f#106"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x100002#9","value_input":1}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100000","block_membership":"member","id":"0x100000#4","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_NOTEQUAL","output":{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1},"sequence":4},{"address":"0x100002","block_membership":"member","id":"0x100002#9","inputs":[{"constant_hex":null,"kind":"address","location":"0x10000d","size_bytes":1},{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":9},{"address":"0x100004","block_membership":"member","id":"0x100004#12","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},"sequence":12},{"address":"0x100006","block_membership":"member","id":"0x100006#22","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":"64","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":22},{"address":"0x10000a","block_membership":"member","id":"0x10000a#32","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8},"sequence":32},{"address":"0x10000a","block_membership":"member","id":"0x10000a#36","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},"sequence":36},{"address":"0x10000a","block_membership":"member","id":"0x10000a#37","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},"sequence":37},{"address":"0x10000a","block_membership":"member","id":"0x10000a#40","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SREM","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},"sequence":40},{"address":"0x10000a","block_membership":"member","id":"0x10000a#74","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":74},{"address":"0x10000a","block_membership":"member","id":"0x10000a#83","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},"sequence":83},{"address":"0x10000c","block_membership":"member","id":"0x10000c#45","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":45},{"address":"0x10000c","block_membership":"member","id":"0x10000c#94","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":94},{"address":"0x10000f","block_membership":"member","id":"0x10000f#58","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":58},{"address":"0x10000f","block_membership":"member","id":"0x10000f#95","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},{"constant_hex":"40","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LEFT","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":95},{"address":"0x10000f","block_membership":"member","id":"0x10000f#106","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},"sequence":106},{"address":"0x10000f","block_membership":"member","id":"0x10000f#108","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},"sequence":108},{"address":"0x10000f","block_membership":"member","id":"0x10000f#109","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8},"sequence":109}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100000#4"},{"input_index":0,"ordinal":1,"use":"0x100004#12"},{"input_index":1,"ordinal":0,"use":"0x100004#12"},{"input_index":0,"ordinal":0,"use":"0x10000a#32"},{"input_index":0,"ordinal":2,"use":"0x10000f#109"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0},{"data_type":"/int","name":"param_2","ordinal":1},{"data_type":"/ulong","name":"param_3","ordinal":2}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x100002","source_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"},"target_address":"0x10000d","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"percent_change","signature":"undefined percent_change()"},"pseudocode":"\nundefined1 [16] percent_change(int param_1,int param_2,ulong param_3)\n\n{\n long lVar1;\n undefined1 auVar2 [16];\n undefined1 auVar3 [16];\n \n if (param_1 != 0) {\n lVar1 = (long)((param_2 - param_1) * 100);\n auVar3._0_8_ = lVar1 / (long)param_1 & 0xffffffff;\n auVar3._8_8_ = lVar1 % (long)param_1 & 0xffffffff;\n return auVar3;\n }\n auVar2._8_8_ = 0;\n auVar2._0_8_ = param_3;\n return auVar2 << 0x40;\n}\n\n","referenced_names":[{"address":"0x10000d","source_address":"0x100002","value":"LAB_0010000d"}],"referenced_strings":[],"unresolved_calls":[]}},"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"result":{"assembly":["0x100000: TEST EDI, EDI","0x100002: JZ 0x0010000d","0x100004: SUB ESI, EDI","0x100006: IMUL EAX, ESI, 0x64","0x100009: CDQ","0x10000a: IDIV EDI","0x10000c: RET","0x10000d: XOR EAX, EAX","0x10000f: RET"],"basic_blocks":[{"end":"0x100004","start":"0x100000","successors":["0x100004","0x10000d"]},{"end":"0x10000d","start":"0x100004","successors":[]},{"end":"0x100010","start":"0x10000d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"_elfSectionHeaders:0x90","source_procedure":null,"target_address":"0x100000","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"},{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_2","ordinal":1,"role":"parameter","size_bytes":4,"storage":"ESI:4"},{"confidence":"low","data_type":"ulong","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type ulong.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_3","ordinal":2,"role":"parameter","size_bytes":8,"storage":"RDX:8"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"undefined1[16]","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type undefined1[16].","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":16,"storage":"RDX:8,RAX:8"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100000#4","input_index":1,"use":"0x100002#9"},{"definition":"0x100004#12","input_index":0,"use":"0x100006#22"},{"definition":"0x100006#22","input_index":0,"use":"0x10000a#36"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#37"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#37"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#40"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#40"},{"definition":"0x10000a#37","input_index":0,"use":"0x10000a#74"},{"definition":"0x10000a#40","input_index":0,"use":"0x10000a#83"},{"definition":"0x10000c#94","input_index":1,"use":"0x10000c#45"},{"definition":"0x10000a#83","input_index":0,"use":"0x10000c#94"},{"definition":"0x10000a#74","input_index":1,"use":"0x10000c#94"},{"definition":"0x10000f#95","input_index":1,"use":"0x10000f#58"},{"definition":"0x10000f#106","input_index":0,"use":"0x10000f#95"},{"definition":"0x10000f#108","input_index":0,"use":"0x10000f#106"},{"definition":"0x10000f#109","input_index":1,"use":"0x10000f#106"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x100002#9","value_input":1}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100000","block_membership":"member","id":"0x100000#4","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_NOTEQUAL","output":{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1},"sequence":4},{"address":"0x100002","block_membership":"member","id":"0x100002#9","inputs":[{"constant_hex":null,"kind":"address","location":"0x10000d","size_bytes":1},{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":9},{"address":"0x100004","block_membership":"member","id":"0x100004#12","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},"sequence":12},{"address":"0x100006","block_membership":"member","id":"0x100006#22","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":"64","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":22},{"address":"0x10000a","block_membership":"member","id":"0x10000a#32","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8},"sequence":32},{"address":"0x10000a","block_membership":"member","id":"0x10000a#36","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},"sequence":36},{"address":"0x10000a","block_membership":"member","id":"0x10000a#37","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},"sequence":37},{"address":"0x10000a","block_membership":"member","id":"0x10000a#40","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SREM","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},"sequence":40},{"address":"0x10000a","block_membership":"member","id":"0x10000a#74","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":74},{"address":"0x10000a","block_membership":"member","id":"0x10000a#83","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},"sequence":83},{"address":"0x10000c","block_membership":"member","id":"0x10000c#45","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":45},{"address":"0x10000c","block_membership":"member","id":"0x10000c#94","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":94},{"address":"0x10000f","block_membership":"member","id":"0x10000f#58","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":58},{"address":"0x10000f","block_membership":"member","id":"0x10000f#95","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},{"constant_hex":"40","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LEFT","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":95},{"address":"0x10000f","block_membership":"member","id":"0x10000f#106","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},"sequence":106},{"address":"0x10000f","block_membership":"member","id":"0x10000f#108","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},"sequence":108},{"address":"0x10000f","block_membership":"member","id":"0x10000f#109","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8},"sequence":109}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100000#4"},{"input_index":0,"ordinal":1,"use":"0x100004#12"},{"input_index":1,"ordinal":0,"use":"0x100004#12"},{"input_index":0,"ordinal":0,"use":"0x10000a#32"},{"input_index":0,"ordinal":2,"use":"0x10000f#109"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0},{"data_type":"/int","name":"param_2","ordinal":1},{"data_type":"/ulong","name":"param_3","ordinal":2}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x100002","source_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"},"target_address":"0x10000d","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"percent_change","signature":"undefined percent_change()"},"pseudocode":"\nundefined1 [16] percent_change(int param_1,int param_2,ulong param_3)\n\n{\n long lVar1;\n undefined1 auVar2 [16];\n undefined1 auVar3 [16];\n \n if (param_1 != 0) {\n lVar1 = (long)((param_2 - param_1) * 100);\n auVar3._0_8_ = lVar1 / (long)param_1 & 0xffffffff;\n auVar3._8_8_ = lVar1 % (long)param_1 & 0xffffffff;\n return auVar3;\n }\n auVar2._8_8_ = 0;\n auVar2._0_8_ = param_3;\n return auVar2 << 0x40;\n}\n\n","referenced_names":[{"address":"0x10000d","source_address":"0x100002","value":"LAB_0010000d"}],"referenced_strings":[],"unresolved_calls":[]},"subject":{"architecture":"x86_64","format":"elf","path":"/private/tmp/aiefs-re/phases/13-tools-and-protocols/35-evidence-confidence-and-unknowns/code/fixtures/ledger-x86_64-O1.o","sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"}},"operation":"analyze_function","parameters":{"procedure":"percent_change"},"query_id":"query_0f95ef38038d3666a2997e2d620b14fcec14c1fc8ee096491c5059eb29161cde"},{"execution":{"limitations":["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.","The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.","Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.","Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.","References cover the complete Ghidra function-body AddressSet and exact entry. Dossier incoming edges omit sources owned by that function; procedure_references also retains those internal edges.","The dossier combines Ghidra FunctionManager, Listing, ReferenceManager, BasicBlockModel, and decompiler observations; provider-specific pseudocode and assembly are not cross-provider text invariants.","Resolved reference metadata identifies computed, indirect, external, call, jump, and data edges; unresolved targetless flows remain unknown, and function classifications distinguish thunks and externals.","Synthetic Ghidra entry-point references without actionable memory sources are omitted.","The Java bridge serializes one function request per Program and lets each decompilation run until it completes or the caller cancels.","macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state."],"locations":[],"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"raw_result":{"limitations":[],"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"value":{"assembly":["0x100010: MOVSXD RAX, EDI","0x100013: IMUL RAX, RAX, 0x66666667","0x10001a: MOV RCX, RAX","0x10001d: SAR RCX, 0x22","0x100021: SHR RAX, 0x3f","0x100025: ADD ECX, EAX","0x100027: ADD ECX, -0x6","0x10002a: XOR EAX, EAX","0x10002c: CMP ECX, 0x4","0x10002f: JA 0x0010003d","0x100031: MOV EAX, ECX","0x100033: LEA RCX, [0x1000b4]","0x10003a: MOV EAX, dword ptr [RCX + RAX*0x4]","0x10003d: RET"],"basic_blocks":[{"end":"0x100031","start":"0x100010","successors":["0x100031","0x10003d"]},{"end":"0x10003d","start":"0x100031","successors":["0x10003d"]},{"end":"0x10003e","start":"0x10003d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"uint","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type uint.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":4,"storage":"EAX:4"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100010#0","input_index":0,"use":"0x100013#5"},{"definition":"0x100025#202","input_index":0,"use":"0x100025#152"},{"definition":"0x10001d#199","input_index":0,"use":"0x100027#104"},{"definition":"0x100025#152","input_index":0,"use":"0x10002a#114"},{"definition":"0x10002a#154","input_index":1,"use":"0x10002a#114"},{"definition":"0x10002a#210","input_index":0,"use":"0x10002a#154"},{"definition":"0x10003d#206","input_index":0,"use":"0x10002a#207"},{"definition":"0x10002a#211","input_index":0,"use":"0x10002a#210"},{"definition":"0x100013#5","input_index":0,"use":"0x10002a#211"},{"definition":"0x100027#104","input_index":0,"use":"0x10002f#133"},{"definition":"0x10002f#133","input_index":1,"use":"0x10002f#134"},{"definition":"0x100027#104","input_index":0,"use":"0x100031#164"},{"definition":"0x100031#164","input_index":0,"use":"0x10003a#138"},{"definition":"0x10003a#209","input_index":0,"use":"0x10003a#139"},{"definition":"0x10003a#138","input_index":1,"use":"0x10003a#139"},{"definition":"0x10003a#212","input_index":1,"use":"0x10003a#140"},{"definition":"0x10003a#139","input_index":0,"use":"0x10003a#212"},{"definition":"0x10002a#207","input_index":1,"use":"0x10003d#145"},{"definition":"0x10002a#114","input_index":0,"use":"0x10003d#206"},{"definition":"0x10003a#140","input_index":1,"use":"0x10003d#206"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x10002f#134","value_input":1},{"kind":"memory_read","operand_input":1,"operation":"0x10003a#140","value_input":null}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100010","block_membership":"member","id":"0x100010#0","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":0},{"address":"0x100013","block_membership":"member","id":"0x100013#5","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"66666667","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":5},{"address":"0x10001d","block_membership":"member","id":"0x10001d#199","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"a","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},"sequence":199},{"address":"0x100025","block_membership":"member","id":"0x100025#152","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4}],"is_dead":true,"opcode":"INT_2COMP","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":152},{"address":"0x100025","block_membership":"member","id":"0x100025#202","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"1f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SRIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4},"sequence":202},{"address":"0x100027","block_membership":"member","id":"0x100027#104","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},{"constant_hex":"6","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},"sequence":104},{"address":"0x10002a","block_membership":"member","id":"0x10002a#114","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_XOR","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":114},{"address":"0x10002a","block_membership":"member","id":"0x10002a#154","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"SUBPIECE","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":154},{"address":"0x10002a","block_membership":"member","id":"0x10002a#207","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":207},{"address":"0x10002a","block_membership":"member","id":"0x10002a#210","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},{"constant_hex":"3f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_RIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},"sequence":210},{"address":"0x10002a","block_membership":"member","id":"0x10002a#211","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},"sequence":211},{"address":"0x10002f","block_membership":"member","id":"0x10002f#133","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},{"constant_hex":"5","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LESS","output":{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1},"sequence":133},{"address":"0x10002f","block_membership":"member","id":"0x10002f#134","inputs":[{"constant_hex":null,"kind":"address","location":"0x10003d","size_bytes":1},{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":134},{"address":"0x100031","block_membership":"member","id":"0x100031#164","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4}],"is_dead":true,"opcode":"INT_ZEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":164},{"address":"0x10003a","block_membership":"member","id":"0x10003a#138","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},"sequence":138},{"address":"0x10003a","block_membership":"member","id":"0x10003a#139","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},{"constant_hex":"1","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRADD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8},"sequence":139},{"address":"0x10003a","block_membership":"member","id":"0x10003a#140","inputs":[{"constant_hex":"1b1","kind":"constant","location":null,"size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8}],"is_dead":true,"opcode":"LOAD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4},"sequence":140},{"address":"0x10003a","block_membership":"member","id":"0x10003a#209","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":"1000b4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRSUB","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},"sequence":209},{"address":"0x10003a","block_membership":"member","id":"0x10003a#212","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8},"sequence":212},{"address":"0x10003d","block_membership":"member","id":"0x10003d#145","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":145},{"address":"0x10003d","block_membership":"member","id":"0x10003d#206","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4}],"is_dead":true,"opcode":"MULTIEQUAL","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4},"sequence":206}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100010#0"},{"input_index":0,"ordinal":0,"use":"0x10001d#199"},{"input_index":0,"ordinal":0,"use":"0x100025#202"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x10002f","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x10003d","target_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"}},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x100033","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x10003a","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null}],"procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"grade","signature":"undefined grade()"},"pseudocode":"\nuint grade(int param_1)\n\n{\n uint uVar1;\n uint uVar2;\n \n uVar2 = param_1 / 10 - 6;\n uVar1 = -(param_1 >> 0x1f) ^ (uint)((ulong)((long)param_1 * 0x66666667) >> 0x3f);\n if (uVar2 < 5) {\n uVar1 = *(uint *)(&DAT_001000b4 + (ulong)uVar2 * 4);\n }\n return uVar1;\n}\n\n","referenced_names":[{"address":"0x10003d","source_address":"0x10002f","value":"LAB_0010003d"},{"address":"0x1000b4","source_address":"0x100033","value":"DAT_001000b4"},{"address":"0x1000b4","source_address":"0x10003a","value":"DAT_001000b4"}],"referenced_strings":[],"unresolved_calls":[]}},"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"result":{"assembly":["0x100010: MOVSXD RAX, EDI","0x100013: IMUL RAX, RAX, 0x66666667","0x10001a: MOV RCX, RAX","0x10001d: SAR RCX, 0x22","0x100021: SHR RAX, 0x3f","0x100025: ADD ECX, EAX","0x100027: ADD ECX, -0x6","0x10002a: XOR EAX, EAX","0x10002c: CMP ECX, 0x4","0x10002f: JA 0x0010003d","0x100031: MOV EAX, ECX","0x100033: LEA RCX, [0x1000b4]","0x10003a: MOV EAX, dword ptr [RCX + RAX*0x4]","0x10003d: RET"],"basic_blocks":[{"end":"0x100031","start":"0x100010","successors":["0x100031","0x10003d"]},{"end":"0x10003d","start":"0x100031","successors":["0x10003d"]},{"end":"0x10003e","start":"0x10003d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"uint","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type uint.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":4,"storage":"EAX:4"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100010#0","input_index":0,"use":"0x100013#5"},{"definition":"0x100025#202","input_index":0,"use":"0x100025#152"},{"definition":"0x10001d#199","input_index":0,"use":"0x100027#104"},{"definition":"0x100025#152","input_index":0,"use":"0x10002a#114"},{"definition":"0x10002a#154","input_index":1,"use":"0x10002a#114"},{"definition":"0x10002a#210","input_index":0,"use":"0x10002a#154"},{"definition":"0x10003d#206","input_index":0,"use":"0x10002a#207"},{"definition":"0x10002a#211","input_index":0,"use":"0x10002a#210"},{"definition":"0x100013#5","input_index":0,"use":"0x10002a#211"},{"definition":"0x100027#104","input_index":0,"use":"0x10002f#133"},{"definition":"0x10002f#133","input_index":1,"use":"0x10002f#134"},{"definition":"0x100027#104","input_index":0,"use":"0x100031#164"},{"definition":"0x100031#164","input_index":0,"use":"0x10003a#138"},{"definition":"0x10003a#209","input_index":0,"use":"0x10003a#139"},{"definition":"0x10003a#138","input_index":1,"use":"0x10003a#139"},{"definition":"0x10003a#212","input_index":1,"use":"0x10003a#140"},{"definition":"0x10003a#139","input_index":0,"use":"0x10003a#212"},{"definition":"0x10002a#207","input_index":1,"use":"0x10003d#145"},{"definition":"0x10002a#114","input_index":0,"use":"0x10003d#206"},{"definition":"0x10003a#140","input_index":1,"use":"0x10003d#206"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x10002f#134","value_input":1},{"kind":"memory_read","operand_input":1,"operation":"0x10003a#140","value_input":null}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100010","block_membership":"member","id":"0x100010#0","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":0},{"address":"0x100013","block_membership":"member","id":"0x100013#5","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"66666667","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":5},{"address":"0x10001d","block_membership":"member","id":"0x10001d#199","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"a","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},"sequence":199},{"address":"0x100025","block_membership":"member","id":"0x100025#152","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4}],"is_dead":true,"opcode":"INT_2COMP","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":152},{"address":"0x100025","block_membership":"member","id":"0x100025#202","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"1f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SRIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4},"sequence":202},{"address":"0x100027","block_membership":"member","id":"0x100027#104","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},{"constant_hex":"6","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},"sequence":104},{"address":"0x10002a","block_membership":"member","id":"0x10002a#114","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_XOR","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":114},{"address":"0x10002a","block_membership":"member","id":"0x10002a#154","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"SUBPIECE","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":154},{"address":"0x10002a","block_membership":"member","id":"0x10002a#207","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":207},{"address":"0x10002a","block_membership":"member","id":"0x10002a#210","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},{"constant_hex":"3f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_RIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},"sequence":210},{"address":"0x10002a","block_membership":"member","id":"0x10002a#211","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},"sequence":211},{"address":"0x10002f","block_membership":"member","id":"0x10002f#133","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},{"constant_hex":"5","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LESS","output":{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1},"sequence":133},{"address":"0x10002f","block_membership":"member","id":"0x10002f#134","inputs":[{"constant_hex":null,"kind":"address","location":"0x10003d","size_bytes":1},{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":134},{"address":"0x100031","block_membership":"member","id":"0x100031#164","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4}],"is_dead":true,"opcode":"INT_ZEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":164},{"address":"0x10003a","block_membership":"member","id":"0x10003a#138","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},"sequence":138},{"address":"0x10003a","block_membership":"member","id":"0x10003a#139","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},{"constant_hex":"1","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRADD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8},"sequence":139},{"address":"0x10003a","block_membership":"member","id":"0x10003a#140","inputs":[{"constant_hex":"1b1","kind":"constant","location":null,"size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8}],"is_dead":true,"opcode":"LOAD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4},"sequence":140},{"address":"0x10003a","block_membership":"member","id":"0x10003a#209","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":"1000b4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRSUB","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},"sequence":209},{"address":"0x10003a","block_membership":"member","id":"0x10003a#212","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8},"sequence":212},{"address":"0x10003d","block_membership":"member","id":"0x10003d#145","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":145},{"address":"0x10003d","block_membership":"member","id":"0x10003d#206","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4}],"is_dead":true,"opcode":"MULTIEQUAL","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4},"sequence":206}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100010#0"},{"input_index":0,"ordinal":0,"use":"0x10001d#199"},{"input_index":0,"ordinal":0,"use":"0x100025#202"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x10002f","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x10003d","target_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"}},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x100033","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x10003a","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null}],"procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"grade","signature":"undefined grade()"},"pseudocode":"\nuint grade(int param_1)\n\n{\n uint uVar1;\n uint uVar2;\n \n uVar2 = param_1 / 10 - 6;\n uVar1 = -(param_1 >> 0x1f) ^ (uint)((ulong)((long)param_1 * 0x66666667) >> 0x3f);\n if (uVar2 < 5) {\n uVar1 = *(uint *)(&DAT_001000b4 + (ulong)uVar2 * 4);\n }\n return uVar1;\n}\n\n","referenced_names":[{"address":"0x10003d","source_address":"0x10002f","value":"LAB_0010003d"},{"address":"0x1000b4","source_address":"0x100033","value":"DAT_001000b4"},{"address":"0x1000b4","source_address":"0x10003a","value":"DAT_001000b4"}],"referenced_strings":[],"unresolved_calls":[]},"subject":{"architecture":"x86_64","format":"elf","path":"/private/tmp/aiefs-re/phases/13-tools-and-protocols/35-evidence-confidence-and-unknowns/code/fixtures/ledger-x86_64-O1.o","sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"}},"operation":"analyze_function","parameters":{"procedure":"grade"},"query_id":"query_26122aebe9d8abae8de7a5cc962bcdb70ede0d3ba52d28e471a1e1d6d7d83b41"}],"evidence_bundle":{"artifacts":[{"architecture":"x86_64","digest":{"sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"format":"elf"}],"captures":[],"environments":[],"providers":[{"id":"ghidra","name":"Ghidra","version":"12.1.4"}],"records":[{"analysis_profile":{"digest":"9c7f6b24be69294e61da046e4583e3856cb9e40433b149c1bf8bb534d2fe03ef","parameters":{"analyzer_preset":"ghidra-default","annotation_policy":"atomic-function-entry-metadata-v1","architecture":"x86_64","available_architectures":["x86_64"],"call_relationship_coverage":"function-body-call-coverage-v5","compiler_spec_id":"auto-default","decompiler_jump_loads":true,"function_body_evidence":"complete-inclusive-ranges-v1","function_boundary_observations":"ghidra-function-boundary-limitations-v3","function_dossier_coverage":"observed-facets-and-call-relationships-v1","function_references":"complete-body-and-entry-reference-manager-v2","import_mode":"ephemeral-source-immutable","instruction_flow_evidence":"decoded-return-pcode-v1","instruction_references":"exact-address-incoming-v1","jump_table_evidence":"typed-case-default-blocks-v1","language_id":"auto-from-header","load_image_observations":"source-mappings-entry-context-v2","loader":"auto-from-header","location_resolution":"explicit-address-exact-entry-symbol-first-v3","no_return_repair":"returning-imports-decoded-return-v2","procedure_file_offset_resolution":"address-first-unique-target-source-mapping-v2","process_launch":"inspected-jvm-launch-support-v1","string_inventory_evidence":"defined-data-coverage-v1","target_format":"elf","target_kind":"executable"},"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"}},"authority":"shipped-artifact","confidence":"observed","environment":null,"evidence_id":"ev_67b6d3f992eaf49a2e16de084b6ebfdd9884e8c5c7f75e175b7bb20f4f748ce1","evidence_links":[],"limitations":["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.","The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.","Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.","Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.","References cover the complete Ghidra function-body AddressSet and exact entry. Dossier incoming edges omit sources owned by that function; procedure_references also retains those internal edges.","The dossier combines Ghidra FunctionManager, Listing, ReferenceManager, BasicBlockModel, and decompiler observations; provider-specific pseudocode and assembly are not cross-provider text invariants.","Resolved reference metadata identifies computed, indirect, external, call, jump, and data edges; unresolved targetless flows remain unknown, and function classifications distinguish thunks and externals.","Synthetic Ghidra entry-point references without actionable memory sources are omitted.","The Java bridge serializes one function request per Program and lets each decompilation run until it completes or the caller cancels.","macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state."],"locations":[],"normalized_result":{"assembly":["0x100010: MOVSXD RAX, EDI","0x100013: IMUL RAX, RAX, 0x66666667","0x10001a: MOV RCX, RAX","0x10001d: SAR RCX, 0x22","0x100021: SHR RAX, 0x3f","0x100025: ADD ECX, EAX","0x100027: ADD ECX, -0x6","0x10002a: XOR EAX, EAX","0x10002c: CMP ECX, 0x4","0x10002f: JA 0x0010003d","0x100031: MOV EAX, ECX","0x100033: LEA RCX, [0x1000b4]","0x10003a: MOV EAX, dword ptr [RCX + RAX*0x4]","0x10003d: RET"],"basic_blocks":[{"end":"0x100031","start":"0x100010","successors":["0x100031","0x10003d"]},{"end":"0x10003d","start":"0x100031","successors":["0x10003d"]},{"end":"0x10003e","start":"0x10003d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"uint","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type uint.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":4,"storage":"EAX:4"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100010#0","input_index":0,"use":"0x100013#5"},{"definition":"0x100025#202","input_index":0,"use":"0x100025#152"},{"definition":"0x10001d#199","input_index":0,"use":"0x100027#104"},{"definition":"0x100025#152","input_index":0,"use":"0x10002a#114"},{"definition":"0x10002a#154","input_index":1,"use":"0x10002a#114"},{"definition":"0x10002a#210","input_index":0,"use":"0x10002a#154"},{"definition":"0x10003d#206","input_index":0,"use":"0x10002a#207"},{"definition":"0x10002a#211","input_index":0,"use":"0x10002a#210"},{"definition":"0x100013#5","input_index":0,"use":"0x10002a#211"},{"definition":"0x100027#104","input_index":0,"use":"0x10002f#133"},{"definition":"0x10002f#133","input_index":1,"use":"0x10002f#134"},{"definition":"0x100027#104","input_index":0,"use":"0x100031#164"},{"definition":"0x100031#164","input_index":0,"use":"0x10003a#138"},{"definition":"0x10003a#209","input_index":0,"use":"0x10003a#139"},{"definition":"0x10003a#138","input_index":1,"use":"0x10003a#139"},{"definition":"0x10003a#212","input_index":1,"use":"0x10003a#140"},{"definition":"0x10003a#139","input_index":0,"use":"0x10003a#212"},{"definition":"0x10002a#207","input_index":1,"use":"0x10003d#145"},{"definition":"0x10002a#114","input_index":0,"use":"0x10003d#206"},{"definition":"0x10003a#140","input_index":1,"use":"0x10003d#206"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x10002f#134","value_input":1},{"kind":"memory_read","operand_input":1,"operation":"0x10003a#140","value_input":null}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100010","block_membership":"member","id":"0x100010#0","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":0},{"address":"0x100013","block_membership":"member","id":"0x100013#5","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"66666667","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":5},{"address":"0x10001d","block_membership":"member","id":"0x10001d#199","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"a","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},"sequence":199},{"address":"0x100025","block_membership":"member","id":"0x100025#152","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4}],"is_dead":true,"opcode":"INT_2COMP","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":152},{"address":"0x100025","block_membership":"member","id":"0x100025#202","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"1f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SRIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4},"sequence":202},{"address":"0x100027","block_membership":"member","id":"0x100027#104","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},{"constant_hex":"6","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},"sequence":104},{"address":"0x10002a","block_membership":"member","id":"0x10002a#114","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_XOR","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":114},{"address":"0x10002a","block_membership":"member","id":"0x10002a#154","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"SUBPIECE","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":154},{"address":"0x10002a","block_membership":"member","id":"0x10002a#207","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":207},{"address":"0x10002a","block_membership":"member","id":"0x10002a#210","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},{"constant_hex":"3f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_RIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},"sequence":210},{"address":"0x10002a","block_membership":"member","id":"0x10002a#211","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},"sequence":211},{"address":"0x10002f","block_membership":"member","id":"0x10002f#133","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},{"constant_hex":"5","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LESS","output":{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1},"sequence":133},{"address":"0x10002f","block_membership":"member","id":"0x10002f#134","inputs":[{"constant_hex":null,"kind":"address","location":"0x10003d","size_bytes":1},{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":134},{"address":"0x100031","block_membership":"member","id":"0x100031#164","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4}],"is_dead":true,"opcode":"INT_ZEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":164},{"address":"0x10003a","block_membership":"member","id":"0x10003a#138","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},"sequence":138},{"address":"0x10003a","block_membership":"member","id":"0x10003a#139","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},{"constant_hex":"1","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRADD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8},"sequence":139},{"address":"0x10003a","block_membership":"member","id":"0x10003a#140","inputs":[{"constant_hex":"1b1","kind":"constant","location":null,"size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8}],"is_dead":true,"opcode":"LOAD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4},"sequence":140},{"address":"0x10003a","block_membership":"member","id":"0x10003a#209","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":"1000b4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRSUB","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},"sequence":209},{"address":"0x10003a","block_membership":"member","id":"0x10003a#212","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8},"sequence":212},{"address":"0x10003d","block_membership":"member","id":"0x10003d#145","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":145},{"address":"0x10003d","block_membership":"member","id":"0x10003d#206","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4}],"is_dead":true,"opcode":"MULTIEQUAL","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4},"sequence":206}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100010#0"},{"input_index":0,"ordinal":0,"use":"0x10001d#199"},{"input_index":0,"ordinal":0,"use":"0x100025#202"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x10002f","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x10003d","target_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"}},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x100033","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x10003a","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null}],"procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"grade","signature":"undefined grade()"},"pseudocode":"\nuint grade(int param_1)\n\n{\n uint uVar1;\n uint uVar2;\n \n uVar2 = param_1 / 10 - 6;\n uVar1 = -(param_1 >> 0x1f) ^ (uint)((ulong)((long)param_1 * 0x66666667) >> 0x3f);\n if (uVar2 < 5) {\n uVar1 = *(uint *)(&DAT_001000b4 + (ulong)uVar2 * 4);\n }\n return uVar1;\n}\n\n","referenced_names":[{"address":"0x10003d","source_address":"0x10002f","value":"LAB_0010003d"},{"address":"0x1000b4","source_address":"0x100033","value":"DAT_001000b4"},{"address":"0x1000b4","source_address":"0x10003a","value":"DAT_001000b4"}],"referenced_strings":[],"unresolved_calls":[]},"operation":"analyze_function","parameters":{"procedure":"grade"},"predicate_type":"rea.analysis","provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"raw_result":{"limitations":[],"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"value":{"assembly":["0x100010: MOVSXD RAX, EDI","0x100013: IMUL RAX, RAX, 0x66666667","0x10001a: MOV RCX, RAX","0x10001d: SAR RCX, 0x22","0x100021: SHR RAX, 0x3f","0x100025: ADD ECX, EAX","0x100027: ADD ECX, -0x6","0x10002a: XOR EAX, EAX","0x10002c: CMP ECX, 0x4","0x10002f: JA 0x0010003d","0x100031: MOV EAX, ECX","0x100033: LEA RCX, [0x1000b4]","0x10003a: MOV EAX, dword ptr [RCX + RAX*0x4]","0x10003d: RET"],"basic_blocks":[{"end":"0x100031","start":"0x100010","successors":["0x100031","0x10003d"]},{"end":"0x10003d","start":"0x100031","successors":["0x10003d"]},{"end":"0x10003e","start":"0x10003d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"uint","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type uint.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":4,"storage":"EAX:4"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100010#0","input_index":0,"use":"0x100013#5"},{"definition":"0x100025#202","input_index":0,"use":"0x100025#152"},{"definition":"0x10001d#199","input_index":0,"use":"0x100027#104"},{"definition":"0x100025#152","input_index":0,"use":"0x10002a#114"},{"definition":"0x10002a#154","input_index":1,"use":"0x10002a#114"},{"definition":"0x10002a#210","input_index":0,"use":"0x10002a#154"},{"definition":"0x10003d#206","input_index":0,"use":"0x10002a#207"},{"definition":"0x10002a#211","input_index":0,"use":"0x10002a#210"},{"definition":"0x100013#5","input_index":0,"use":"0x10002a#211"},{"definition":"0x100027#104","input_index":0,"use":"0x10002f#133"},{"definition":"0x10002f#133","input_index":1,"use":"0x10002f#134"},{"definition":"0x100027#104","input_index":0,"use":"0x100031#164"},{"definition":"0x100031#164","input_index":0,"use":"0x10003a#138"},{"definition":"0x10003a#209","input_index":0,"use":"0x10003a#139"},{"definition":"0x10003a#138","input_index":1,"use":"0x10003a#139"},{"definition":"0x10003a#212","input_index":1,"use":"0x10003a#140"},{"definition":"0x10003a#139","input_index":0,"use":"0x10003a#212"},{"definition":"0x10002a#207","input_index":1,"use":"0x10003d#145"},{"definition":"0x10002a#114","input_index":0,"use":"0x10003d#206"},{"definition":"0x10003a#140","input_index":1,"use":"0x10003d#206"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x10002f#134","value_input":1},{"kind":"memory_read","operand_input":1,"operation":"0x10003a#140","value_input":null}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100010","block_membership":"member","id":"0x100010#0","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":0},{"address":"0x100013","block_membership":"member","id":"0x100013#5","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"66666667","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":5},{"address":"0x10001d","block_membership":"member","id":"0x10001d#199","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"a","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},"sequence":199},{"address":"0x100025","block_membership":"member","id":"0x100025#152","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4}],"is_dead":true,"opcode":"INT_2COMP","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":152},{"address":"0x100025","block_membership":"member","id":"0x100025#202","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"1f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SRIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000026","size_bytes":4},"sequence":202},{"address":"0x100027","block_membership":"member","id":"0x100027#104","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000022","size_bytes":4},{"constant_hex":"6","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},"sequence":104},{"address":"0x10002a","block_membership":"member","id":"0x10002a#114","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_XOR","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":114},{"address":"0x10002a","block_membership":"member","id":"0x10002a#154","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"SUBPIECE","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":154},{"address":"0x10002a","block_membership":"member","id":"0x10002a#207","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":207},{"address":"0x10002a","block_membership":"member","id":"0x10002a#210","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},{"constant_hex":"3f","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_RIGHT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000043","size_bytes":8},"sequence":210},{"address":"0x10002a","block_membership":"member","id":"0x10002a#211","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000004b","size_bytes":8},"sequence":211},{"address":"0x10002f","block_membership":"member","id":"0x10002f#133","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4},{"constant_hex":"5","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LESS","output":{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1},"sequence":133},{"address":"0x10002f","block_membership":"member","id":"0x10002f#134","inputs":[{"constant_hex":null,"kind":"address","location":"0x10003d","size_bytes":1},{"constant_hex":null,"kind":"unique","location":"unique:0x25400","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":134},{"address":"0x100031","block_membership":"member","id":"0x100031#164","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x8","size_bytes":4}],"is_dead":true,"opcode":"INT_ZEXT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":164},{"address":"0x10003a","block_membership":"member","id":"0x10003a#138","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},{"constant_hex":"4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},"sequence":138},{"address":"0x10003a","block_membership":"member","id":"0x10003a#139","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x9200","size_bytes":8},{"constant_hex":"1","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRADD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8},"sequence":139},{"address":"0x10003a","block_membership":"member","id":"0x10003a#140","inputs":[{"constant_hex":"1b1","kind":"constant","location":null,"size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8}],"is_dead":true,"opcode":"LOAD","output":{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4},"sequence":140},{"address":"0x10003a","block_membership":"member","id":"0x10003a#209","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":"1000b4","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"PTRSUB","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000003b","size_bytes":8},"sequence":209},{"address":"0x10003a","block_membership":"member","id":"0x10003a#212","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x9400","size_bytes":8}],"is_dead":true,"opcode":"CAST","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000053","size_bytes":8},"sequence":212},{"address":"0x10003d","block_membership":"member","id":"0x10003d#145","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":145},{"address":"0x10003d","block_membership":"member","id":"0x10003d#206","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},{"constant_hex":null,"kind":"unique","location":"unique:0x23c00","size_bytes":4}],"is_dead":true,"opcode":"MULTIEQUAL","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000036","size_bytes":4},"sequence":206}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100010#0"},{"input_index":0,"ordinal":0,"use":"0x10001d#199"},{"input_index":0,"ordinal":0,"use":"0x100025#202"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x10002f","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x10003d","target_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"}},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x100033","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null},{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":1,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"0x10003a","source_procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"grade"},"target_address":"0x1000b4","target_procedure":null}],"procedure":{"address":"0x100010","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10003d","start":"0x100010"}],"span_bytes":46,"total_bytes":46},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"grade","signature":"undefined grade()"},"pseudocode":"\nuint grade(int param_1)\n\n{\n uint uVar1;\n uint uVar2;\n \n uVar2 = param_1 / 10 - 6;\n uVar1 = -(param_1 >> 0x1f) ^ (uint)((ulong)((long)param_1 * 0x66666667) >> 0x3f);\n if (uVar2 < 5) {\n uVar1 = *(uint *)(&DAT_001000b4 + (ulong)uVar2 * 4);\n }\n return uVar1;\n}\n\n","referenced_names":[{"address":"0x10003d","source_address":"0x10002f","value":"LAB_0010003d"},{"address":"0x1000b4","source_address":"0x100033","value":"DAT_001000b4"},{"address":"0x1000b4","source_address":"0x10003a","value":"DAT_001000b4"}],"referenced_strings":[],"unresolved_calls":[]}},"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"subject":{"architecture":"x86_64","digest":{"sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"format":"elf","local_path":"/private/tmp/aiefs-re/phases/13-tools-and-protocols/35-evidence-confidence-and-unknowns/code/fixtures/ledger-x86_64-O1.o","name":"ledger-x86_64-O1.o"}},{"analysis_profile":{"digest":"9c7f6b24be69294e61da046e4583e3856cb9e40433b149c1bf8bb534d2fe03ef","parameters":{"analyzer_preset":"ghidra-default","annotation_policy":"atomic-function-entry-metadata-v1","architecture":"x86_64","available_architectures":["x86_64"],"call_relationship_coverage":"function-body-call-coverage-v5","compiler_spec_id":"auto-default","decompiler_jump_loads":true,"function_body_evidence":"complete-inclusive-ranges-v1","function_boundary_observations":"ghidra-function-boundary-limitations-v3","function_dossier_coverage":"observed-facets-and-call-relationships-v1","function_references":"complete-body-and-entry-reference-manager-v2","import_mode":"ephemeral-source-immutable","instruction_flow_evidence":"decoded-return-pcode-v1","instruction_references":"exact-address-incoming-v1","jump_table_evidence":"typed-case-default-blocks-v1","language_id":"auto-from-header","load_image_observations":"source-mappings-entry-context-v2","loader":"auto-from-header","location_resolution":"explicit-address-exact-entry-symbol-first-v3","no_return_repair":"returning-imports-decoded-return-v2","procedure_file_offset_resolution":"address-first-unique-target-source-mapping-v2","process_launch":"inspected-jvm-launch-support-v1","string_inventory_evidence":"defined-data-coverage-v1","target_format":"elf","target_kind":"executable"},"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"}},"authority":"shipped-artifact","confidence":"observed","environment":null,"evidence_id":"ev_e88b10dc0c6400e51bb6f7fdc3eaea8d2c97cc02463f0db3e6afeefc273197cd","evidence_links":[],"limitations":["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.","The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.","Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.","Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.","References cover the complete Ghidra function-body AddressSet and exact entry. Dossier incoming edges omit sources owned by that function; procedure_references also retains those internal edges.","The dossier combines Ghidra FunctionManager, Listing, ReferenceManager, BasicBlockModel, and decompiler observations; provider-specific pseudocode and assembly are not cross-provider text invariants.","Resolved reference metadata identifies computed, indirect, external, call, jump, and data edges; unresolved targetless flows remain unknown, and function classifications distinguish thunks and externals.","Synthetic Ghidra entry-point references without actionable memory sources are omitted.","The Java bridge serializes one function request per Program and lets each decompilation run until it completes or the caller cancels.","macOS sessions require a matching executable Ghidra native decompiler; REA checks for it but does not build native components or change Gatekeeper quarantine state."],"locations":[],"normalized_result":{"assembly":["0x100000: TEST EDI, EDI","0x100002: JZ 0x0010000d","0x100004: SUB ESI, EDI","0x100006: IMUL EAX, ESI, 0x64","0x100009: CDQ","0x10000a: IDIV EDI","0x10000c: RET","0x10000d: XOR EAX, EAX","0x10000f: RET"],"basic_blocks":[{"end":"0x100004","start":"0x100000","successors":["0x100004","0x10000d"]},{"end":"0x10000d","start":"0x100004","successors":[]},{"end":"0x100010","start":"0x10000d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"_elfSectionHeaders:0x90","source_procedure":null,"target_address":"0x100000","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"},{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_2","ordinal":1,"role":"parameter","size_bytes":4,"storage":"ESI:4"},{"confidence":"low","data_type":"ulong","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type ulong.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_3","ordinal":2,"role":"parameter","size_bytes":8,"storage":"RDX:8"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"undefined1[16]","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type undefined1[16].","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":16,"storage":"RDX:8,RAX:8"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100000#4","input_index":1,"use":"0x100002#9"},{"definition":"0x100004#12","input_index":0,"use":"0x100006#22"},{"definition":"0x100006#22","input_index":0,"use":"0x10000a#36"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#37"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#37"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#40"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#40"},{"definition":"0x10000a#37","input_index":0,"use":"0x10000a#74"},{"definition":"0x10000a#40","input_index":0,"use":"0x10000a#83"},{"definition":"0x10000c#94","input_index":1,"use":"0x10000c#45"},{"definition":"0x10000a#83","input_index":0,"use":"0x10000c#94"},{"definition":"0x10000a#74","input_index":1,"use":"0x10000c#94"},{"definition":"0x10000f#95","input_index":1,"use":"0x10000f#58"},{"definition":"0x10000f#106","input_index":0,"use":"0x10000f#95"},{"definition":"0x10000f#108","input_index":0,"use":"0x10000f#106"},{"definition":"0x10000f#109","input_index":1,"use":"0x10000f#106"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x100002#9","value_input":1}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100000","block_membership":"member","id":"0x100000#4","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_NOTEQUAL","output":{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1},"sequence":4},{"address":"0x100002","block_membership":"member","id":"0x100002#9","inputs":[{"constant_hex":null,"kind":"address","location":"0x10000d","size_bytes":1},{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":9},{"address":"0x100004","block_membership":"member","id":"0x100004#12","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},"sequence":12},{"address":"0x100006","block_membership":"member","id":"0x100006#22","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":"64","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":22},{"address":"0x10000a","block_membership":"member","id":"0x10000a#32","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8},"sequence":32},{"address":"0x10000a","block_membership":"member","id":"0x10000a#36","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},"sequence":36},{"address":"0x10000a","block_membership":"member","id":"0x10000a#37","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},"sequence":37},{"address":"0x10000a","block_membership":"member","id":"0x10000a#40","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SREM","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},"sequence":40},{"address":"0x10000a","block_membership":"member","id":"0x10000a#74","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":74},{"address":"0x10000a","block_membership":"member","id":"0x10000a#83","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},"sequence":83},{"address":"0x10000c","block_membership":"member","id":"0x10000c#45","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":45},{"address":"0x10000c","block_membership":"member","id":"0x10000c#94","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":94},{"address":"0x10000f","block_membership":"member","id":"0x10000f#58","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":58},{"address":"0x10000f","block_membership":"member","id":"0x10000f#95","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},{"constant_hex":"40","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LEFT","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":95},{"address":"0x10000f","block_membership":"member","id":"0x10000f#106","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},"sequence":106},{"address":"0x10000f","block_membership":"member","id":"0x10000f#108","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},"sequence":108},{"address":"0x10000f","block_membership":"member","id":"0x10000f#109","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8},"sequence":109}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100000#4"},{"input_index":0,"ordinal":1,"use":"0x100004#12"},{"input_index":1,"ordinal":0,"use":"0x100004#12"},{"input_index":0,"ordinal":0,"use":"0x10000a#32"},{"input_index":0,"ordinal":2,"use":"0x10000f#109"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0},{"data_type":"/int","name":"param_2","ordinal":1},{"data_type":"/ulong","name":"param_3","ordinal":2}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x100002","source_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"},"target_address":"0x10000d","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"percent_change","signature":"undefined percent_change()"},"pseudocode":"\nundefined1 [16] percent_change(int param_1,int param_2,ulong param_3)\n\n{\n long lVar1;\n undefined1 auVar2 [16];\n undefined1 auVar3 [16];\n \n if (param_1 != 0) {\n lVar1 = (long)((param_2 - param_1) * 100);\n auVar3._0_8_ = lVar1 / (long)param_1 & 0xffffffff;\n auVar3._8_8_ = lVar1 % (long)param_1 & 0xffffffff;\n return auVar3;\n }\n auVar2._8_8_ = 0;\n auVar2._0_8_ = param_3;\n return auVar2 << 0x40;\n}\n\n","referenced_names":[{"address":"0x10000d","source_address":"0x100002","value":"LAB_0010000d"}],"referenced_strings":[],"unresolved_calls":[]},"operation":"analyze_function","parameters":{"procedure":"percent_change"},"predicate_type":"rea.analysis","provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"raw_result":{"limitations":[],"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"value":{"assembly":["0x100000: TEST EDI, EDI","0x100002: JZ 0x0010000d","0x100004: SUB ESI, EDI","0x100006: IMUL EAX, ESI, 0x64","0x100009: CDQ","0x10000a: IDIV EDI","0x10000c: RET","0x10000d: XOR EAX, EAX","0x10000f: RET"],"basic_blocks":[{"end":"0x100004","start":"0x100000","successors":["0x100004","0x10000d"]},{"end":"0x10000d","start":"0x100004","successors":[]},{"end":"0x100010","start":"0x10000d","successors":[]}],"callees":[],"callers":[],"comments":[],"facet_availability":{"assembly":{"available":true},"callees":{"available":true},"callers":{"available":true},"cfg":{"available":true},"comments":{"available":true},"pseudocode":{"available":true},"references":{"available":true},"strings_names":{"available":true}},"incoming_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":false,"data":true,"external":false,"flow":false,"indirect":false,"jump":false,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"DATA","write":false},"source_address":"_elfSectionHeaders:0x90","source_procedure":null,"target_address":"0x100000","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"limitations":["Unresolved computed or indirect flows without target addresses are not represented as reference edges.","Thunk and external classifications are Ghidra FunctionManager observations; they do not resolve targetless calls.","Pseudocode and assembly are Ghidra-specific representations, not original source or Hopper-equivalent text.","Synthetic Ghidra entry-point references without actionable memory sources are omitted."],"native_api":{"available":true,"calling_convention":"__stdcall","decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"jump_tables":[],"limitations":["Types and calling conventions are Ghidra decompiler observations, not source declarations.","Register variables, compiler-generated blocks, and pointer arithmetic remain decompiler artifacts.","Pseudocode is neither original source nor guaranteed to compile."],"parameters":[{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_1","ordinal":0,"role":"parameter","size_bytes":4,"storage":"EDI:4"},{"confidence":"low","data_type":"int","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type int.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_2","ordinal":1,"role":"parameter","size_bytes":4,"storage":"ESI:4"},{"confidence":"low","data_type":"ulong","decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type ulong.","kind":"decompiler-type","source":"ghidra-high-function"}],"name":"param_3","ordinal":2,"role":"parameter","size_bytes":8,"storage":"RDX:8"}],"provenance":"ghidra-high-function","pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"return_type":{"confidence":"low","data_type":"undefined1[16]","decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"evidence":[{"detail":"Function signature source is default.","kind":"signature-source","source":"ghidra-function-manager"},{"detail":"HighFunction recovered data type undefined1[16].","kind":"decompiler-type","source":"ghidra-high-function"}],"name":null,"ordinal":null,"role":"return","size_bytes":16,"storage":"RDX:8,RAX:8"},"signature_source":"default"},"native_value_flow":{"available":true,"def_use":[{"definition":"0x100000#4","input_index":1,"use":"0x100002#9"},{"definition":"0x100004#12","input_index":0,"use":"0x100006#22"},{"definition":"0x100006#22","input_index":0,"use":"0x10000a#36"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#37"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#37"},{"definition":"0x10000a#36","input_index":0,"use":"0x10000a#40"},{"definition":"0x10000a#32","input_index":1,"use":"0x10000a#40"},{"definition":"0x10000a#37","input_index":0,"use":"0x10000a#74"},{"definition":"0x10000a#40","input_index":0,"use":"0x10000a#83"},{"definition":"0x10000c#94","input_index":1,"use":"0x10000c#45"},{"definition":"0x10000a#83","input_index":0,"use":"0x10000c#94"},{"definition":"0x10000a#74","input_index":1,"use":"0x10000c#94"},{"definition":"0x10000f#95","input_index":1,"use":"0x10000f#58"},{"definition":"0x10000f#106","input_index":0,"use":"0x10000f#95"},{"definition":"0x10000f#108","input_index":0,"use":"0x10000f#106"},{"definition":"0x10000f#109","input_index":1,"use":"0x10000f#106"}],"effects":[{"kind":"conditional_branch","operand_input":null,"operation":"0x100002#9","value_input":1}],"known_omitted_edges":0,"known_omitted_inputs":0,"limitations":["High p-code is decompiler-derived, not original source or runtime behavior. is_dead preserves the Java AST flag; decoded block members can retain that flag, so block_membership separately reports actual syntax-tree membership.","Def-use links do not cross function boundaries and may omit memory aliasing, call side effects, or unresolved indirect flow.","Memory read/write effects include stack and temporary memory operations; they do not identify persistent state or business meaning.","Operation, input, and def-use limits can truncate large functions; inspect truncation, omitted lower bounds, and known omitted counts before drawing conclusions.","Known omitted-edge counts cover links omitted from retained operations; omitted operations may contain additional uncounted links."],"omitted_operations_lower_bound":0,"operations":[{"address":"0x100000","block_membership":"member","id":"0x100000#4","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4},{"constant_hex":"0","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_NOTEQUAL","output":{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1},"sequence":4},{"address":"0x100002","block_membership":"member","id":"0x100002#9","inputs":[{"constant_hex":null,"kind":"address","location":"0x10000d","size_bytes":1},{"constant_hex":null,"kind":"register","location":"register:0x206","size_bytes":1}],"is_dead":true,"opcode":"CBRANCH","output":null,"sequence":9},{"address":"0x100004","block_membership":"member","id":"0x100004#12","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SUB","output":{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},"sequence":12},{"address":"0x100006","block_membership":"member","id":"0x100006#22","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x30","size_bytes":4},{"constant_hex":"64","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_MULT","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4},"sequence":22},{"address":"0x10000a","block_membership":"member","id":"0x10000a#32","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x38","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8},"sequence":32},{"address":"0x10000a","block_membership":"member","id":"0x10000a#36","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":4}],"is_dead":true,"opcode":"INT_SEXT","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},"sequence":36},{"address":"0x10000a","block_membership":"member","id":"0x10000a#37","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SDIV","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},"sequence":37},{"address":"0x10000a","block_membership":"member","id":"0x10000a#40","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f500","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x8f000","size_bytes":8}],"is_dead":true,"opcode":"INT_SREM","output":{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},"sequence":40},{"address":"0x10000a","block_membership":"member","id":"0x10000a#74","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8f700","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8},"sequence":74},{"address":"0x10000a","block_membership":"member","id":"0x10000a#83","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x8fa00","size_bytes":8},{"constant_hex":"ffffffff","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"INT_AND","output":{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},"sequence":83},{"address":"0x10000c","block_membership":"member","id":"0x10000c#45","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":45},{"address":"0x10000c","block_membership":"member","id":"0x10000c#94","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8},{"constant_hex":null,"kind":"register","location":"register:0x0","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":94},{"address":"0x10000f","block_membership":"member","id":"0x10000f#58","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8},{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16}],"is_dead":true,"opcode":"RETURN","output":null,"sequence":58},{"address":"0x10000f","block_membership":"member","id":"0x10000f#95","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},{"constant_hex":"40","kind":"constant","location":null,"size_bytes":4}],"is_dead":true,"opcode":"INT_LEFT","output":{"constant_hex":null,"kind":"other","location":"VARIABLE:0x0","size_bytes":16},"sequence":95},{"address":"0x10000f","block_membership":"member","id":"0x10000f#106","inputs":[{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8}],"is_dead":true,"opcode":"PIECE","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":16},"sequence":106},{"address":"0x10000f","block_membership":"member","id":"0x10000f#108","inputs":[{"constant_hex":"0","kind":"constant","location":null,"size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x10000024","size_bytes":8},"sequence":108},{"address":"0x10000f","block_membership":"member","id":"0x10000f#109","inputs":[{"constant_hex":null,"kind":"register","location":"register:0x10","size_bytes":8}],"is_dead":true,"opcode":"COPY","output":{"constant_hex":null,"kind":"unique","location":"unique:0x1000001c","size_bytes":8},"sequence":109}],"parameter_uses":[{"input_index":0,"ordinal":0,"use":"0x100000#4"},{"input_index":0,"ordinal":1,"use":"0x100004#12"},{"input_index":1,"ordinal":0,"use":"0x100004#12"},{"input_index":0,"ordinal":0,"use":"0x10000a#32"},{"input_index":0,"ordinal":2,"use":"0x10000f#109"}],"parameters":[{"data_type":"/int","name":"param_1","ordinal":0},{"data_type":"/int","name":"param_2","ordinal":1},{"data_type":"/ulong","name":"param_3","ordinal":2}],"provenance":"ghidra-high-pcode","truncated":false},"outgoing_references":[{"kind":{"available":true,"call":false,"computed":false,"conditional":true,"data":false,"external":false,"flow":true,"indirect":false,"jump":true,"operand_index":0,"primary":true,"provenance":"ghidra-reference-manager","read":false,"terminal":false,"type":"CONDITIONAL_JUMP","write":false},"source_address":"0x100002","source_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"},"target_address":"0x10000d","target_procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"name":"percent_change"}}],"procedure":{"address":"0x100000","body":{"available":true,"contains_entry":true,"non_contiguous":false,"provenance":"ghidra-function-body-address-set","ranges":[{"end":"0x10000f","start":"0x100000"}],"span_bytes":16,"total_bytes":16},"classification":{"external":false,"provenance":"ghidra-function-manager","thunk":false,"thunk_target":null},"locals":[],"name":"percent_change","signature":"undefined percent_change()"},"pseudocode":"\nundefined1 [16] percent_change(int param_1,int param_2,ulong param_3)\n\n{\n long lVar1;\n undefined1 auVar2 [16];\n undefined1 auVar3 [16];\n \n if (param_1 != 0) {\n lVar1 = (long)((param_2 - param_1) * 100);\n auVar3._0_8_ = lVar1 / (long)param_1 & 0xffffffff;\n auVar3._8_8_ = lVar1 % (long)param_1 & 0xffffffff;\n return auVar3;\n }\n auVar2._8_8_ = 0;\n auVar2._0_8_ = param_3;\n return auVar2 << 0x40;\n}\n\n","referenced_names":[{"address":"0x10000d","source_address":"0x100002","value":"LAB_0010000d"}],"referenced_strings":[],"unresolved_calls":[]}},"relationship_coverage":{"diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."],"status":"complete"},"subject":{"architecture":"x86_64","digest":{"sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"format":"elf","local_path":"/private/tmp/aiefs-re/phases/13-tools-and-protocols/35-evidence-confidence-and-unknowns/code/fixtures/ledger-x86_64-O1.o","name":"ledger-x86_64-O1.o"}}],"scenarios":[],"unknowns":[]},"target":{"architecture":"x86_64","format":"elf","kind":"executable","sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"workflow_entries":[]}