{"evidence_id":"ev_e88b10dc0c6400e51bb6f7fdc3eaea8d2c97cc02463f0db3e6afeefc273197cd","subject":{"name":"ledger-x86_64-O1.o","digest":{"sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"local_path":"/private/tmp/aiefs-re/phases/13-tools-and-protocols/35-evidence-confidence-and-unknowns/code/fixtures/ledger-x86_64-O1.o","format":"elf","architecture":"x86_64"},"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"analysis_profile":{"provider":{"id":"ghidra","name":"Ghidra","version":"12.1.4"},"parameters":{"target_kind":"executable","target_format":"elf","architecture":"x86_64","available_architectures":["x86_64"],"import_mode":"ephemeral-source-immutable","annotation_policy":"atomic-function-entry-metadata-v1","load_image_observations":"source-mappings-entry-context-v2","function_body_evidence":"complete-inclusive-ranges-v1","function_references":"complete-body-and-entry-reference-manager-v2","call_relationship_coverage":"function-body-call-coverage-v5","function_dossier_coverage":"observed-facets-and-call-relationships-v1","string_inventory_evidence":"defined-data-coverage-v1","location_resolution":"explicit-address-exact-entry-symbol-first-v3","procedure_file_offset_resolution":"address-first-unique-target-source-mapping-v2","instruction_flow_evidence":"decoded-return-pcode-v1","instruction_references":"exact-address-incoming-v1","function_boundary_observations":"ghidra-function-boundary-limitations-v3","no_return_repair":"returning-imports-decoded-return-v2","process_launch":"inspected-jvm-launch-support-v1","jump_table_evidence":"typed-case-default-blocks-v1","decompiler_jump_loads":true,"loader":"auto-from-header","language_id":"auto-from-header","compiler_spec_id":"auto-default","analyzer_preset":"ghidra-default"},"digest":"9c7f6b24be69294e61da046e4583e3856cb9e40433b149c1bf8bb534d2fe03ef"},"predicate_type":"rea.analysis","operation":"analyze_function","parameters":{"procedure":"percent_change"},"raw_result":{"value":{"procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true},"signature":"undefined percent_change()","locals":[]},"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","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"],"comments":[],"callers":[],"callees":[],"incoming_references":[{"source_address":"_elfSectionHeaders:0x90","target_address":"0x100000","source_procedure":null,"target_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"kind":{"available":true,"provenance":"ghidra-reference-manager","type":"DATA","flow":false,"call":false,"jump":false,"data":true,"read":false,"write":false,"indirect":false,"computed":false,"conditional":false,"terminal":false,"primary":true,"operand_index":0,"external":false}}],"outgoing_references":[{"source_address":"0x100002","target_address":"0x10000d","source_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"target_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"kind":{"available":true,"provenance":"ghidra-reference-manager","type":"CONDITIONAL_JUMP","flow":true,"call":false,"jump":true,"data":false,"read":false,"write":false,"indirect":false,"computed":false,"conditional":true,"terminal":false,"primary":true,"operand_index":0,"external":false}}],"referenced_strings":[],"referenced_names":[{"address":"0x10000d","value":"LAB_0010000d","source_address":"0x100002"}],"basic_blocks":[{"start":"0x100000","end":"0x100004","successors":["0x100004","0x10000d"]},{"start":"0x100004","end":"0x10000d","successors":[]},{"start":"0x10000d","end":"0x100010","successors":[]}],"native_api":{"available":true,"provenance":"ghidra-high-function","signature_source":"default","calling_convention":"__stdcall","return_type":{"role":"return","ordinal":null,"name":null,"data_type":"undefined1[16]","size_bytes":16,"storage":"RDX:8,RAX:8","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type undefined1[16]."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage"]},"parameters":[{"role":"parameter","ordinal":0,"name":"param_1","data_type":"int","size_bytes":4,"storage":"EDI:4","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type int."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"]},{"role":"parameter","ordinal":1,"name":"param_2","data_type":"int","size_bytes":4,"storage":"ESI:4","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type int."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"]},{"role":"parameter","ordinal":2,"name":"param_3","data_type":"ulong","size_bytes":8,"storage":"RDX:8","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type ulong."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"]}],"jump_tables":[],"pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"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."]},"native_value_flow":{"available":true,"provenance":"ghidra-high-pcode","operations":[{"id":"0x100000#4","address":"0x100000","sequence":4,"opcode":"INT_NOTEQUAL","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"0"}],"output":{"kind":"register","size_bytes":1,"location":"register:0x206","constant_hex":null}},{"id":"0x100002#9","address":"0x100002","sequence":9,"opcode":"CBRANCH","is_dead":true,"block_membership":"member","inputs":[{"kind":"address","size_bytes":1,"location":"0x10000d","constant_hex":null},{"kind":"register","size_bytes":1,"location":"register:0x206","constant_hex":null}],"output":null},{"id":"0x100004#12","address":"0x100004","sequence":12,"opcode":"INT_SUB","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null},{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null}],"output":{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null}},{"id":"0x100006#22","address":"0x100006","sequence":22,"opcode":"INT_MULT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"64"}],"output":{"kind":"register","size_bytes":4,"location":"register:0x0","constant_hex":null}},{"id":"0x10000a#32","address":"0x10000a","sequence":32,"opcode":"INT_SEXT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}},{"id":"0x10000a#36","address":"0x10000a","sequence":36,"opcode":"INT_SEXT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x0","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null}},{"id":"0x10000a#37","address":"0x10000a","sequence":37,"opcode":"INT_SDIV","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f700","constant_hex":null}},{"id":"0x10000a#40","address":"0x10000a","sequence":40,"opcode":"INT_SREM","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8fa00","constant_hex":null}},{"id":"0x10000a#74","address":"0x10000a","sequence":74,"opcode":"INT_AND","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f700","constant_hex":null},{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"ffffffff"}],"output":{"kind":"register","size_bytes":8,"location":"register:0x0","constant_hex":null}},{"id":"0x10000a#83","address":"0x10000a","sequence":83,"opcode":"INT_AND","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8fa00","constant_hex":null},{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"ffffffff"}],"output":{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null}},{"id":"0x10000c#45","address":"0x10000c","sequence":45,"opcode":"RETURN","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"},{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}],"output":null},{"id":"0x10000c#94","address":"0x10000c","sequence":94,"opcode":"PIECE","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null},{"kind":"register","size_bytes":8,"location":"register:0x0","constant_hex":null}],"output":{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}},{"id":"0x10000f#58","address":"0x10000f","sequence":58,"opcode":"RETURN","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"},{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}],"output":null},{"id":"0x10000f#95","address":"0x10000f","sequence":95,"opcode":"INT_LEFT","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":16,"location":"unique:0x1000001c","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"40"}],"output":{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}},{"id":"0x10000f#106","address":"0x10000f","sequence":106,"opcode":"PIECE","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x10000024","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x1000001c","constant_hex":null}],"output":{"kind":"unique","size_bytes":16,"location":"unique:0x1000001c","constant_hex":null}},{"id":"0x10000f#108","address":"0x10000f","sequence":108,"opcode":"COPY","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x10000024","constant_hex":null}},{"id":"0x10000f#109","address":"0x10000f","sequence":109,"opcode":"COPY","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x1000001c","constant_hex":null}}],"def_use":[{"definition":"0x100000#4","use":"0x100002#9","input_index":1},{"definition":"0x100004#12","use":"0x100006#22","input_index":0},{"definition":"0x100006#22","use":"0x10000a#36","input_index":0},{"definition":"0x10000a#36","use":"0x10000a#37","input_index":0},{"definition":"0x10000a#32","use":"0x10000a#37","input_index":1},{"definition":"0x10000a#36","use":"0x10000a#40","input_index":0},{"definition":"0x10000a#32","use":"0x10000a#40","input_index":1},{"definition":"0x10000a#37","use":"0x10000a#74","input_index":0},{"definition":"0x10000a#40","use":"0x10000a#83","input_index":0},{"definition":"0x10000c#94","use":"0x10000c#45","input_index":1},{"definition":"0x10000a#83","use":"0x10000c#94","input_index":0},{"definition":"0x10000a#74","use":"0x10000c#94","input_index":1},{"definition":"0x10000f#95","use":"0x10000f#58","input_index":1},{"definition":"0x10000f#106","use":"0x10000f#95","input_index":0},{"definition":"0x10000f#108","use":"0x10000f#106","input_index":0},{"definition":"0x10000f#109","use":"0x10000f#106","input_index":1}],"parameters":[{"ordinal":0,"name":"param_1","data_type":"/int"},{"ordinal":1,"name":"param_2","data_type":"/int"},{"ordinal":2,"name":"param_3","data_type":"/ulong"}],"parameter_uses":[{"ordinal":0,"use":"0x100000#4","input_index":0},{"ordinal":1,"use":"0x100004#12","input_index":0},{"ordinal":0,"use":"0x100004#12","input_index":1},{"ordinal":0,"use":"0x10000a#32","input_index":0},{"ordinal":2,"use":"0x10000f#109","input_index":0}],"effects":[{"operation":"0x100002#9","kind":"conditional_branch","operand_input":null,"value_input":1}],"truncated":false,"omitted_operations_lower_bound":0,"known_omitted_inputs":0,"known_omitted_edges":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."]},"facet_availability":{"pseudocode":{"available":true},"comments":{"available":true},"callers":{"available":true},"callees":{"available":true},"references":{"available":true},"strings_names":{"available":true},"cfg":{"available":true},"assembly":{"available":true}},"unresolved_calls":[],"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."]},"limitations":[],"relationship_coverage":{"status":"complete","diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."]}},"normalized_result":{"procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true},"signature":"undefined percent_change()","locals":[]},"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","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"],"comments":[],"callers":[],"callees":[],"incoming_references":[{"source_address":"_elfSectionHeaders:0x90","target_address":"0x100000","source_procedure":null,"target_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"kind":{"available":true,"provenance":"ghidra-reference-manager","type":"DATA","flow":false,"call":false,"jump":false,"data":true,"read":false,"write":false,"indirect":false,"computed":false,"conditional":false,"terminal":false,"primary":true,"operand_index":0,"external":false}}],"outgoing_references":[{"source_address":"0x100002","target_address":"0x10000d","source_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"target_procedure":{"address":"0x100000","name":"percent_change","classification":{"external":false,"thunk":false,"thunk_target":null,"provenance":"ghidra-function-manager"},"body":{"available":true,"provenance":"ghidra-function-body-address-set","ranges":[{"start":"0x100000","end":"0x10000f"}],"total_bytes":16,"span_bytes":16,"non_contiguous":false,"contains_entry":true}},"kind":{"available":true,"provenance":"ghidra-reference-manager","type":"CONDITIONAL_JUMP","flow":true,"call":false,"jump":true,"data":false,"read":false,"write":false,"indirect":false,"computed":false,"conditional":true,"terminal":false,"primary":true,"operand_index":0,"external":false}}],"unresolved_calls":[],"referenced_strings":[],"referenced_names":[{"address":"0x10000d","value":"LAB_0010000d","source_address":"0x100002"}],"basic_blocks":[{"start":"0x100000","end":"0x100004","successors":["0x100004","0x10000d"]},{"start":"0x100004","end":"0x10000d","successors":[]},{"start":"0x10000d","end":"0x100010","successors":[]}],"native_api":{"available":true,"provenance":"ghidra-high-function","signature_source":"default","calling_convention":"__stdcall","return_type":{"ordinal":null,"name":null,"data_type":"undefined1[16]","size_bytes":16,"storage":"RDX:8,RAX:8","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type undefined1[16]."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage"],"role":"return"},"parameters":[{"ordinal":0,"name":"param_1","data_type":"int","size_bytes":4,"storage":"EDI:4","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type int."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"role":"parameter"},{"ordinal":1,"name":"param_2","data_type":"int","size_bytes":4,"storage":"ESI:4","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type int."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"role":"parameter"},{"ordinal":2,"name":"param_3","data_type":"ulong","size_bytes":8,"storage":"RDX:8","confidence":"low","evidence":[{"kind":"signature-source","source":"ghidra-function-manager","detail":"Function signature source is default."},{"kind":"decompiler-type","source":"ghidra-high-function","detail":"HighFunction recovered data type ulong."}],"decompiler_artifacts":["recovered-signature","register-or-stack-storage","compiler-generated-variable"],"role":"parameter"}],"jump_tables":[],"pseudocode":{"classification":"decompiler-generated-non-source","compilable":false},"decompiler_artifacts":["recovered-signature","register-and-stack-variables","compiler-generated-control-flow","pointer-arithmetic","pseudocode"],"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."]},"native_value_flow":{"available":true,"provenance":"ghidra-high-pcode","operations":[{"id":"0x100000#4","address":"0x100000","sequence":4,"opcode":"INT_NOTEQUAL","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"0"}],"output":{"kind":"register","size_bytes":1,"location":"register:0x206","constant_hex":null}},{"id":"0x100002#9","address":"0x100002","sequence":9,"opcode":"CBRANCH","is_dead":true,"block_membership":"member","inputs":[{"kind":"address","size_bytes":1,"location":"0x10000d","constant_hex":null},{"kind":"register","size_bytes":1,"location":"register:0x206","constant_hex":null}],"output":null},{"id":"0x100004#12","address":"0x100004","sequence":12,"opcode":"INT_SUB","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null},{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null}],"output":{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null}},{"id":"0x100006#22","address":"0x100006","sequence":22,"opcode":"INT_MULT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x30","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"64"}],"output":{"kind":"register","size_bytes":4,"location":"register:0x0","constant_hex":null}},{"id":"0x10000a#32","address":"0x10000a","sequence":32,"opcode":"INT_SEXT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x38","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}},{"id":"0x10000a#36","address":"0x10000a","sequence":36,"opcode":"INT_SEXT","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":4,"location":"register:0x0","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null}},{"id":"0x10000a#37","address":"0x10000a","sequence":37,"opcode":"INT_SDIV","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8f700","constant_hex":null}},{"id":"0x10000a#40","address":"0x10000a","sequence":40,"opcode":"INT_SREM","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f500","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x8f000","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x8fa00","constant_hex":null}},{"id":"0x10000a#74","address":"0x10000a","sequence":74,"opcode":"INT_AND","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8f700","constant_hex":null},{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"ffffffff"}],"output":{"kind":"register","size_bytes":8,"location":"register:0x0","constant_hex":null}},{"id":"0x10000a#83","address":"0x10000a","sequence":83,"opcode":"INT_AND","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x8fa00","constant_hex":null},{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"ffffffff"}],"output":{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null}},{"id":"0x10000c#45","address":"0x10000c","sequence":45,"opcode":"RETURN","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"},{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}],"output":null},{"id":"0x10000c#94","address":"0x10000c","sequence":94,"opcode":"PIECE","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null},{"kind":"register","size_bytes":8,"location":"register:0x0","constant_hex":null}],"output":{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}},{"id":"0x10000f#58","address":"0x10000f","sequence":58,"opcode":"RETURN","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"},{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}],"output":null},{"id":"0x10000f#95","address":"0x10000f","sequence":95,"opcode":"INT_LEFT","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":16,"location":"unique:0x1000001c","constant_hex":null},{"kind":"constant","size_bytes":4,"location":null,"constant_hex":"40"}],"output":{"kind":"other","size_bytes":16,"location":"VARIABLE:0x0","constant_hex":null}},{"id":"0x10000f#106","address":"0x10000f","sequence":106,"opcode":"PIECE","is_dead":true,"block_membership":"member","inputs":[{"kind":"unique","size_bytes":8,"location":"unique:0x10000024","constant_hex":null},{"kind":"unique","size_bytes":8,"location":"unique:0x1000001c","constant_hex":null}],"output":{"kind":"unique","size_bytes":16,"location":"unique:0x1000001c","constant_hex":null}},{"id":"0x10000f#108","address":"0x10000f","sequence":108,"opcode":"COPY","is_dead":true,"block_membership":"member","inputs":[{"kind":"constant","size_bytes":8,"location":null,"constant_hex":"0"}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x10000024","constant_hex":null}},{"id":"0x10000f#109","address":"0x10000f","sequence":109,"opcode":"COPY","is_dead":true,"block_membership":"member","inputs":[{"kind":"register","size_bytes":8,"location":"register:0x10","constant_hex":null}],"output":{"kind":"unique","size_bytes":8,"location":"unique:0x1000001c","constant_hex":null}}],"def_use":[{"definition":"0x100000#4","use":"0x100002#9","input_index":1},{"definition":"0x100004#12","use":"0x100006#22","input_index":0},{"definition":"0x100006#22","use":"0x10000a#36","input_index":0},{"definition":"0x10000a#36","use":"0x10000a#37","input_index":0},{"definition":"0x10000a#32","use":"0x10000a#37","input_index":1},{"definition":"0x10000a#36","use":"0x10000a#40","input_index":0},{"definition":"0x10000a#32","use":"0x10000a#40","input_index":1},{"definition":"0x10000a#37","use":"0x10000a#74","input_index":0},{"definition":"0x10000a#40","use":"0x10000a#83","input_index":0},{"definition":"0x10000c#94","use":"0x10000c#45","input_index":1},{"definition":"0x10000a#83","use":"0x10000c#94","input_index":0},{"definition":"0x10000a#74","use":"0x10000c#94","input_index":1},{"definition":"0x10000f#95","use":"0x10000f#58","input_index":1},{"definition":"0x10000f#106","use":"0x10000f#95","input_index":0},{"definition":"0x10000f#108","use":"0x10000f#106","input_index":0},{"definition":"0x10000f#109","use":"0x10000f#106","input_index":1}],"effects":[{"operation":"0x100002#9","kind":"conditional_branch","operand_input":null,"value_input":1}],"parameters":[{"ordinal":0,"name":"param_1","data_type":"/int"},{"ordinal":1,"name":"param_2","data_type":"/int"},{"ordinal":2,"name":"param_3","data_type":"/ulong"}],"parameter_uses":[{"ordinal":0,"use":"0x100000#4","input_index":0},{"ordinal":1,"use":"0x100004#12","input_index":0},{"ordinal":0,"use":"0x100004#12","input_index":1},{"ordinal":0,"use":"0x10000a#32","input_index":0},{"ordinal":2,"use":"0x10000f#109","input_index":0}],"truncated":false,"omitted_operations_lower_bound":0,"known_omitted_inputs":0,"known_omitted_edges":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."]},"facet_availability":{"pseudocode":{"available":true},"assembly":{"available":true},"comments":{"available":true},"callers":{"available":true},"callees":{"available":true},"references":{"available":true},"strings_names":{"available":true},"cfg":{"available":true}},"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."]},"confidence":"observed","authority":"shipped-artifact","environment":null,"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."],"relationship_coverage":{"status":"complete","diagnostics":["Only resolved Ghidra call references are returned; unresolved computed or indirect calls remain unknown, while function classifications distinguish thunks and externals."]},"locations":[],"evidence_links":[]}