code_inference_postprocess
- code_in_refined_block(ea:address, block:address)
Uses:
must_fallthroughUsed by:
+disconnected3,+disconnected5,block_has_non_nop,cfg_edge,fde_instruction_block_offset,mips_stubs_entry,refined_block_last_instructionRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- refined_block(block:address)
Used by:
cfg_edge,fde_block_addresses,function_inference.in_function_initial,function_inference.not_in_function_initial,nop_blockRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- block_information(Block:address, Size:unsigned, StartAddress:address, EndAddress:address)
- refined_block_last_instruction(block:address, EA:address)
- refined_block_control_instruction(block:address, EA:address)
Used by:
cfg_edge,cfg_edge_to_symbol,cfg_edge_to_top
- block_needs_splitting_at(EA:address)
Uses:
base_addr_offset_operand,cinf_ldr_add_pc,code_in_block,code_in_block_candidate,jump_table_candidate_refined,padding_prefix_endRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- code_in_split_block(ea:address, block:address)
Uses:
code_in_block,nextRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- split_block(block:address)
Uses:
blockRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- block_needs_merging(block:address)
Uses:
code_in_block,defined_symbol,dynamic_entry,entry_point,fde_addresses,function_symbol,instruction_has_loop_prefix,loaded_section,must_fallthroughRecursive:
code_in_refined_block,symbol_minus_symbol_candidate,jump_table,moved_label_candidate,discarded_jump_table_entry,moved_label,data_limit,next_data_limit,+disconnected6,block_needs_splitting_at,relative_jump_table_entry,data_object,best_func_symbol,symbolic_expr_attribute,symbol_score,after_address_in_data,string_candidate_refined,inferred_main_function,split_block,next_address_in_data,data_object_conflict,code_pointer_in_data,symbolic_data,address_array,symbol_minus_symbol_from_relocation,symbolic_expr,code_in_split_block,preferred_data_access,inferred_special_symbol,+disconnected2,function_inference.function_entry,+disconnected1,refined_block,data_object_point,got_reference,data_limit_after_access,discarded_data_object,block_needs_merging,labeled_data_candidate,moved_pc_relative_candidate,best_symexpr_symbol,boundary_sym_expr,address_array_aux,string_candidate,symbolic_operand_point,symbolic_operand_attribute,moved_displacement_candidate,data_access_limit,symbol_minus_symbol,labeled_ea,main_function,+disconnected4,resolved_transfer,inferred_symbol_mips,data_object_total_points,symbolic_operand,symbolic_expr_symbol_minus_symbol,inferred_symbol,moved_data_label,subsequent_string_candidate,data_object_candidate,label_conflict,value_reg_address_before
- next_refined_block_in_byte_interval(Block:address, NextBlock:address)
Blocks are either contiguous or separated by data segments This assumes there are no remaining overlapping blocks. This is similar to next_block_in_byte_interval, but this uses the refined block information (i.e., block_information).
Uses:
block_information,data_in_codeUsed by:
function_inference.in_function
- padding(EA:address, Size:unsigned)
Uses:
after_end,block_information,is_padding,next,nop_block
- block_has_non_nop(Block:address)
Uses:
arch.is_nop,code_in_refined_blockUsed by:
nop_block
- nop_block(Block:address)
Uses:
block_has_non_nop,refined_block
- padding_prefix(EA:address, Block:address)
Uses:
arch.is_nop,code_in_block,nextUsed by:
padding_prefix_endRecursive:
padding_prefix
- padding_prefix_end(EA:address, Block:address)
Uses:
arch.is_nop,code_in_block,next,padding_prefixUsed by:
block_needs_splitting_at