{"evidence_id":"ev_55c90ab6614ca3b5f587207c0a121a5d945fc6b1b02a4227d16147274a7618db","subject":{"name":"ledger-x86_64-O1.o","digest":{"sha256":"9a4a8082ba5e285a732552981a6935e0c5255725664f380e37c44ebfb04d803f"},"local_path":"/private/tmp/aiefs-re/manuals/reverse-engineering-101/capture/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":"procedure_pseudo_code","parameters":{"procedure":"total"},"raw_result":{"value":"\nint total(long param_1,uint param_2)\n\n{\n int iVar1;\n ulong uVar2;\n \n if (0 < (int)param_2) {\n uVar2 = 0;\n iVar1 = 0;\n do {\n iVar1 = iVar1 + *(int *)(param_1 + uVar2 * 4);\n uVar2 = uVar2 + 1;\n } while (param_2 != uVar2);\n return iVar1;\n }\n return 0;\n}\n\n","limitations":[]},"normalized_result":"\nint total(long param_1,uint param_2)\n\n{\n int iVar1;\n ulong uVar2;\n \n if (0 < (int)param_2) {\n uVar2 = 0;\n iVar1 = 0;\n do {\n iVar1 = iVar1 + *(int *)(param_1 + uVar2 * 4);\n uVar2 = uVar2 + 1;\n } while (param_2 != uVar2);\n return iVar1;\n }\n return 0;\n}\n\n","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.","Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.","External functions and functions without an analyzable body return null; other decompiler failures remain explicit.","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":null,"locations":[],"evidence_links":[]}