diff --git a/objdiff-core/src/arch/arm.rs b/objdiff-core/src/arch/arm.rs index 9750a68..4e0a015 100644 --- a/objdiff-core/src/arch/arm.rs +++ b/objdiff-core/src/arch/arm.rs @@ -84,18 +84,11 @@ impl ArchArm { .filter_map(|s| DisasmMode::from_symbol(&s)) .collect(); mapping_symbols.sort_unstable_by_key(|x| x.address); - (s.index().0, mapping_symbols) + (s.index().0 - 1, mapping_symbols) }) .collect() } - fn endian(&self) -> unarm::Endian { - match self.endianness { - object::Endianness::Little => unarm::Endian::Little, - object::Endianness::Big => unarm::Endian::Big, - } - } - fn parse_flags(&self, diff_config: &DiffObjConfig) -> unarm::ParseFlags { unarm::ParseFlags { ual: diff_config.arm_unified_syntax, @@ -130,6 +123,31 @@ impl ArchArm { code: &[u8], diff_config: &DiffObjConfig, ) -> Result<(unarm::Ins, unarm::ParsedIns)> { + if ins_ref.opcode == thumb::Opcode::BlH as u16 && ins_ref.size == 4 { + // Special case: combined thumb BL instruction + let parse_flags = self.parse_flags(diff_config); + let first_ins = thumb::Ins { + code: match self.endianness { + object::Endianness::Little => u16::from_le_bytes([code[0], code[1]]), + object::Endianness::Big => u16::from_be_bytes([code[0], code[1]]), + } as u32, + op: thumb::Opcode::BlH, + }; + let second_ins = thumb::Ins::new( + match self.endianness { + object::Endianness::Little => u16::from_le_bytes([code[2], code[3]]), + object::Endianness::Big => u16::from_be_bytes([code[2], code[3]]), + } as u32, + &parse_flags, + ); + let first_parsed = first_ins.parse(&parse_flags); + let second_parsed = second_ins.parse(&parse_flags); + return Ok(( + unarm::Ins::Thumb(first_ins), + first_parsed.combine_thumb_bl(&second_parsed), + )); + } + let code = match (self.endianness, ins_ref.size) { (object::Endianness::Little, 2) => u16::from_le_bytes([code[0], code[1]]) as u32, (object::Endianness::Little, 4) => { @@ -153,11 +171,7 @@ impl ArchArm { } else { let ins = thumb::Ins { code, op: thumb::Opcode::from(ins_ref.opcode as u8) }; let parsed = ins.parse(&self.parse_flags(diff_config)); - if ins.is_half_bl() { - todo!("Combine thumb BL instructions"); - } else { - (unarm::Ins::Thumb(ins), parsed) - } + (unarm::Ins::Thumb(ins), parsed) }; Ok((ins, parsed_ins)) } @@ -185,60 +199,127 @@ impl Arch for ArchArm { let first_mapping_idx = mapping_symbols .binary_search_by_key(&start_addr, |x| x.address) .unwrap_or_else(|idx| idx - 1); - let first_mapping = mapping_symbols[first_mapping_idx].mapping; + let mut mode = mapping_symbols[first_mapping_idx].mapping; - let mut mappings_iter = - mapping_symbols.iter().skip(first_mapping_idx + 1).take_while(|x| x.address < end_addr); + let mut mappings_iter = mapping_symbols + .iter() + .copied() + .skip(first_mapping_idx + 1) + .take_while(|x| x.address < end_addr); let mut next_mapping = mappings_iter.next(); - let ins_count = code.len() / first_mapping.instruction_size(start_addr); + let ins_count = code.len() / mode.instruction_size(start_addr); let mut ops = Vec::::with_capacity(ins_count); - let endian = self.endian(); let parse_flags = self.parse_flags(diff_config); - let mut parser = unarm::Parser::new(first_mapping, start_addr, endian, parse_flags, code); - while let Some((address, ins, _parsed_ins)) = parser.next() { - let size = parser.mode.instruction_size(address); - if let Some(next) = next_mapping { - let next_address = parser.address; - if next_address >= next.address { - // Change mapping - parser.mode = next.mapping; - next_mapping = mappings_iter.next(); - } + let mut address = start_addr; + while address < end_addr { + while let Some(next) = next_mapping.take_if(|x| address >= x.address) { + // Change mapping + mode = next.mapping; + next_mapping = mappings_iter.next(); } - let (opcode, branch_dest) = match ins { - unarm::Ins::Arm(x) => { - let opcode = x.op as u16 | (1 << 15); - let branch_dest = match x.op { + + let mut ins_size = mode.instruction_size(address); + let data = &code[(address - start_addr) as usize..]; + if data.len() < ins_size { + // Push the remainder as data + ops.push(ScannedInstruction { + ins_ref: InstructionRef { + address: address as u64, + size: data.len() as u8, + opcode: u16::MAX, + }, + branch_dest: None, + }); + break; + } + let code = match (self.endianness, ins_size) { + (object::Endianness::Little, 2) => u16::from_le_bytes([data[0], data[1]]) as u32, + (object::Endianness::Little, 4) => { + u32::from_le_bytes([data[0], data[1], data[2], data[3]]) + } + (object::Endianness::Big, 2) => u16::from_be_bytes([data[0], data[1]]) as u32, + (object::Endianness::Big, 4) => { + u32::from_be_bytes([data[0], data[1], data[2], data[3]]) + } + _ => { + // Invalid instruction size + ops.push(ScannedInstruction { + ins_ref: InstructionRef { + address: address as u64, + size: ins_size as u8, + opcode: u16::MAX, + }, + branch_dest: None, + }); + address += ins_size as u32; + continue; + } + }; + + let (opcode, branch_dest) = match mode { + unarm::ParseMode::Arm => { + let ins = arm::Ins::new(code, &parse_flags); + let opcode = ins.op as u16 | (1 << 15); + let branch_dest = match ins.op { arm::Opcode::B | arm::Opcode::Bl => { - address.checked_add_signed(x.field_branch_offset()) + address.checked_add_signed(ins.field_branch_offset()) } - arm::Opcode::BlxI => address.checked_add_signed(x.field_blx_offset()), + arm::Opcode::BlxI => address.checked_add_signed(ins.field_blx_offset()), _ => None, }; (opcode, branch_dest) } - unarm::Ins::Thumb(x) => { - let opcode = x.op as u16; - let branch_dest = match x.op { + unarm::ParseMode::Thumb => { + let ins = thumb::Ins::new(code, &parse_flags); + let opcode = ins.op as u16; + let branch_dest = match ins.op { thumb::Opcode::B | thumb::Opcode::Bl => { - address.checked_add_signed(x.field_branch_offset_8()) + address.checked_add_signed(ins.field_branch_offset_8()) + } + thumb::Opcode::BlH if data.len() >= 4 => { + // Combine BL instructions + let second_ins = thumb::Ins::new( + match self.endianness { + object::Endianness::Little => { + u16::from_le_bytes([data[2], data[3]]) as u32 + } + object::Endianness::Big => { + u16::from_be_bytes([data[2], data[3]]) as u32 + } + }, + &parse_flags, + ); + if let Some(low) = match second_ins.op { + thumb::Opcode::Bl => Some(second_ins.field_low_branch_offset_11()), + thumb::Opcode::BlxI => Some(second_ins.field_low_blx_offset_11()), + _ => None, + } { + ins_size = 4; + address.checked_add_signed( + (ins.field_high_branch_offset_11() + (low as i32)) << 9 >> 9, + ) + } else { + None + } } thumb::Opcode::BLong => { - address.checked_add_signed(x.field_branch_offset_11()) + address.checked_add_signed(ins.field_branch_offset_11()) } _ => None, }; (opcode, branch_dest) } - unarm::Ins::Data => (u16::MAX, None), + unarm::ParseMode::Data => (u16::MAX, None), }; + ops.push(ScannedInstruction { - ins_ref: InstructionRef { address: address as u64, size: size as u8, opcode }, + ins_ref: InstructionRef { address: address as u64, size: ins_size as u8, opcode }, branch_dest: branch_dest.map(|x| x as u64), }); + address += ins_size as u32; } Ok(ops) @@ -391,7 +472,7 @@ fn push_args( let reloc_arg = find_reloc_arg(parsed_ins, relocation); let mut writeback = false; let mut deref = false; - for (i, arg) in parsed_ins.args_iter().enumerate() { + for (i, &arg) in parsed_ins.args_iter().enumerate() { // Emit punctuation before separator if deref { match arg { @@ -463,19 +544,19 @@ fn push_args( | args::Argument::CoOpcode(value) | args::Argument::SatImm(value) => { arg_cb(InstructionPart::basic("#"))?; - arg_cb(InstructionPart::unsigned(*value))?; + arg_cb(InstructionPart::unsigned(value))?; } args::Argument::SImm(value) | args::Argument::OffsetImm(args::OffsetImm { post_indexed: _, value }) => { arg_cb(InstructionPart::basic("#"))?; - arg_cb(InstructionPart::signed(*value))?; + arg_cb(InstructionPart::signed(value))?; } args::Argument::BranchDest(value) => { - arg_cb(InstructionPart::branch_dest(cur_addr.wrapping_add_signed(*value)))?; + arg_cb(InstructionPart::branch_dest(cur_addr.wrapping_add_signed(value)))?; } args::Argument::CoOption(value) => { arg_cb(InstructionPart::basic("{"))?; - arg_cb(InstructionPart::unsigned(*value))?; + arg_cb(InstructionPart::unsigned(value))?; arg_cb(InstructionPart::basic("}"))?; } args::Argument::CoprocNum(value) => { diff --git a/objdiff-core/tests/arch_arm.rs b/objdiff-core/tests/arch_arm.rs index 461e951..b742dec 100644 --- a/objdiff-core/tests/arch_arm.rs +++ b/objdiff-core/tests/arch_arm.rs @@ -15,3 +15,20 @@ fn read_arm() { let output = common::display_diff(&obj, &diff, symbol_idx, &diff_config); insta::assert_snapshot!(output); } + +#[test] +#[cfg(feature = "arm")] +fn read_thumb() { + let diff_config = diff::DiffObjConfig { mips_register_prefix: true, ..Default::default() }; + let obj = obj::read::parse(include_object!("data/arm/thumb.o"), &diff_config).unwrap(); + insta::assert_debug_snapshot!(obj); + let symbol_idx = obj + .symbols + .iter() + .position(|s| s.name == "THUMB_BRANCH_ServerDisplay_UncategorizedMove") + .unwrap(); + let diff = diff::code::no_diff_code(&obj, symbol_idx, &diff_config).unwrap(); + insta::assert_debug_snapshot!(diff.instruction_rows); + let output = common::display_diff(&obj, &diff, symbol_idx, &diff_config); + insta::assert_snapshot!(output); +} diff --git a/objdiff-core/tests/data/arm/thumb.o b/objdiff-core/tests/data/arm/thumb.o new file mode 100644 index 0000000..f8f17d7 Binary files /dev/null and b/objdiff-core/tests/data/arm/thumb.o differ diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap index 843f5e7..eb6020a 100644 --- a/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap @@ -1660,7 +1660,7 @@ expression: diff.instruction_rows InstructionRef { address: 460, size: 4, - opcode: 32771, + opcode: 65535, }, ), kind: None, @@ -1673,7 +1673,7 @@ expression: diff.instruction_rows InstructionRef { address: 464, size: 4, - opcode: 32771, + opcode: 65535, }, ), kind: None, @@ -1693,7 +1693,7 @@ expression: diff.instruction_rows InstructionRef { address: 468, size: 4, - opcode: 32771, + opcode: 65535, }, ), kind: None, diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap index 17f9150..05d05cd 100644 --- a/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap @@ -107,6 +107,6 @@ expression: output [(Address(408), Normal, 5), (Basic(" ~> "), Rotating(16), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] [(Address(412), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 32899), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(38)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] [(Address(416), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldmia", 32793), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Argument(Opaque("!")), Normal, 0), (Basic(", "), Normal, 0), (Basic("{"), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] -[(Address(420), Normal, 5), (Spacing(4), Normal, 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "data_027e103c", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] -[(Address(424), Normal, 5), (Basic(" ~> "), Rotating(8), 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "data_027e1098", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] -[(Address(428), Normal, 5), (Spacing(4), Normal, 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "gPlayerControl", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] +[(Address(420), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Symbol(Symbol { name: "data_027e103c", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Eol, Normal, 0)] +[(Address(424), Normal, 5), (Basic(" ~> "), Rotating(8), 0), (Opcode(".word", 65535), Normal, 10), (Symbol(Symbol { name: "data_027e1098", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Eol, Normal, 0)] +[(Address(428), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Symbol(Symbol { name: "gPlayerControl", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Eol, Normal, 0)] diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm.snap index 5b6fc82..b733dc7 100644 --- a/objdiff-core/tests/snapshots/arch_arm__read_arm.snap +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm.snap @@ -5,7 +5,7 @@ expression: obj Object { arch: ArchArm { disasm_modes: { - 1: [ + 0: [ DisasmMode { address: 0, mapping: Thumb, diff --git a/objdiff-core/tests/snapshots/arch_arm__read_thumb-2.snap b/objdiff-core/tests/snapshots/arch_arm__read_thumb-2.snap new file mode 100644 index 0000000..57e3894 --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_thumb-2.snap @@ -0,0 +1,1480 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: diff.instruction_rows +--- +[ + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 0, + size: 2, + opcode: 56, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 2, + size: 2, + opcode: 74, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 4, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 6, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 8, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 10, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 12, + size: 2, + opcode: 66, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 14, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 18, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 20, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 97, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 22, + size: 2, + opcode: 38, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 24, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 26, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 22, + branch_idx: 1, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 28, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 30, + size: 2, + opcode: 26, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 32, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 44, + branch_idx: 2, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 34, + size: 2, + opcode: 35, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 36, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 38, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 40, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 44, + size: 2, + opcode: 7, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 46, + size: 2, + opcode: 55, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 48, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 12, + ], + branch_idx: 1, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 50, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 52, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 56, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 58, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 97, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 60, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 62, + size: 2, + opcode: 33, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 64, + size: 2, + opcode: 36, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 66, + size: 2, + opcode: 42, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 68, + size: 2, + opcode: 44, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 70, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 97, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 72, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 74, + size: 2, + opcode: 17, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 76, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 78, + size: 2, + opcode: 54, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 80, + size: 2, + opcode: 67, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 82, + size: 2, + opcode: 36, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 84, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 86, + size: 2, + opcode: 7, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 88, + size: 2, + opcode: 54, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 90, + size: 2, + opcode: 67, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 92, + size: 2, + opcode: 55, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 94, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 15, + ], + branch_idx: 2, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 96, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 98, + size: 2, + opcode: 4, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 100, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 104, + size: 2, + opcode: 66, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 106, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 108, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 112, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 114, + size: 2, + opcode: 6, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 116, + size: 2, + opcode: 66, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 118, + size: 2, + opcode: 35, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 120, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 122, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 124, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 126, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 130, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 132, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 3, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 134, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 136, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 140, + size: 2, + opcode: 47, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 142, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 144, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 3, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 146, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 148, + size: 2, + opcode: 33, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 150, + size: 2, + opcode: 36, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 152, + size: 2, + opcode: 42, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 154, + size: 2, + opcode: 44, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 156, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 3, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 158, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 160, + size: 2, + opcode: 17, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 162, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 164, + size: 2, + opcode: 54, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 166, + size: 2, + opcode: 67, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 168, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 60, + 65, + 71, + ], + branch_idx: 3, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 170, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 92, + branch_idx: 4, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 172, + size: 2, + opcode: 35, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 174, + size: 2, + opcode: 25, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 176, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 92, + branch_idx: 4, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 178, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 180, + size: 2, + opcode: 37, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 182, + size: 2, + opcode: 42, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 184, + size: 2, + opcode: 44, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 186, + size: 2, + opcode: 15, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 92, + branch_idx: 4, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 188, + size: 2, + opcode: 32, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 190, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 192, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 194, + size: 2, + opcode: 46, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 196, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 200, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 78, + 81, + 86, + ], + branch_idx: 4, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 202, + size: 2, + opcode: 35, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 204, + size: 2, + opcode: 34, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 206, + size: 2, + opcode: 4, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 208, + size: 4, + opcode: 19, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 212, + size: 2, + opcode: 7, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 9, + 26, + 32, + ], + branch_idx: 0, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 214, + size: 2, + opcode: 55, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 216, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 220, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 224, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 228, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 232, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 236, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 240, + size: 4, + opcode: 65535, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, +] diff --git a/objdiff-core/tests/snapshots/arch_arm__read_thumb-3.snap b/objdiff-core/tests/snapshots/arch_arm__read_thumb-3.snap new file mode 100644 index 0000000..3ee50a8 --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_thumb-3.snap @@ -0,0 +1,110 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: output +--- +[(Line(37), Dim, 5), (Address(0), Normal, 5), (Spacing(4), Normal, 0), (Opcode("push", 56), Normal, 10), (Basic("{"), Normal, 0), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("lr")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Line(37), Dim, 5), (Address(2), Normal, 5), (Spacing(4), Normal, 0), (Opcode("sub", 74), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(16)), Normal, 0), (Eol, Normal, 0)] +[(Line(37), Dim, 5), (Address(4), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(6), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r3")), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(8), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(10), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(12), Normal, 5), (Spacing(4), Normal, 0), (Opcode("str", 66), Normal, 10), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(4)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(14), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "PokeSet_IsRemovedAll", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(18), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Line(39), Dim, 5), (Address(20), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(212), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(22), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrh", 38), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(24), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(164)), Normal, 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(26), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 15), Normal, 10), (BranchDest(48), Normal, 0), (Basic(" ~>"), Rotating(1), 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(28), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(184)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(30), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 26), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(44), Dim, 5), (Address(32), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(94), Normal, 0), (Basic(" ~>"), Rotating(2), 0), (Eol, Normal, 0)] +[(Line(47), Dim, 5), (Address(34), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 35), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(4)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(47), Dim, 5), (Address(36), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Line(47), Dim, 5), (Address(38), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Eol, Normal, 0)] +[(Line(47), Dim, 5), (Address(40), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "ServerDisplay_SkillSwap", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(44), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 7), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(16)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(46), Normal, 5), (Spacing(4), Normal, 0), (Opcode("pop", 55), Normal, 10), (Basic("{"), Normal, 0), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Line(50), Dim, 5), (Address(48), Normal, 5), (Basic(" ~> "), Rotating(1), 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Line(50), Dim, 5), (Address(50), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Eol, Normal, 0)] +[(Line(50), Dim, 5), (Address(52), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "ServerEvent_CreateSubstitute", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(50), Dim, 5), (Address(56), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Line(50), Dim, 5), (Address(58), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 15), Normal, 10), (BranchDest(212), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(60), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(156)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(62), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 33), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(64), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 36), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(66), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsl", 42), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(31)), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(68), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsr", 44), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(31)), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(70), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(212), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(72), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(74), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bic", 17), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(76), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(78), Normal, 5), (Spacing(4), Normal, 0), (Opcode("orr", 54), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(80), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 67), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(82), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 36), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(84), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(2)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(86), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 7), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(16)), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(88), Normal, 5), (Spacing(4), Normal, 0), (Opcode("orr", 54), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Eol, Normal, 0)] +[(Line(52), Dim, 5), (Address(90), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 67), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(92), Normal, 5), (Spacing(4), Normal, 0), (Opcode("pop", 55), Normal, 10), (Basic("{"), Normal, 0), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Line(57), Dim, 5), (Address(94), Normal, 5), (Basic(" ~> "), Rotating(2), 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(128)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(57), Dim, 5), (Address(96), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(128)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(57), Dim, 5), (Address(98), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 4), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(57), Dim, 5), (Address(100), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "HEManager_PushState", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(57), Dim, 5), (Address(104), Normal, 5), (Spacing(4), Normal, 0), (Opcode("str", 66), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(8)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(61), Dim, 5), (Address(106), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Line(61), Dim, 5), (Address(108), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "BattleHandler_Result", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(61), Dim, 5), (Address(112), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(114), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 6), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(12)), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(116), Normal, 5), (Spacing(4), Normal, 0), (Opcode("str", 66), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(118), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 35), Normal, 10), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(4)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(120), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(122), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(124), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(126), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "ServerEvent_UncategorizedMove", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(130), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Line(63), Dim, 5), (Address(132), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 15), Normal, 10), (BranchDest(168), Normal, 0), (Basic(" ~>"), Rotating(3), 0), (Eol, Normal, 0)] +[(Line(65), Dim, 5), (Address(134), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Line(65), Dim, 5), (Address(136), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "BattleHandler_Result", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(65), Dim, 5), (Address(140), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 47), Normal, 10), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(66), Dim, 5), (Address(142), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(2)), Normal, 0), (Eol, Normal, 0)] +[(Line(66), Dim, 5), (Address(144), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(168), Normal, 0), (Basic(" ~>"), Rotating(3), 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(146), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(72)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(148), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 33), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(150), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 36), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(152), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsl", 42), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(31)), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(154), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsr", 44), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(31)), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(156), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(168), Normal, 0), (Basic(" ~>"), Rotating(3), 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(158), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(160), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bic", 17), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(162), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(164), Normal, 5), (Spacing(4), Normal, 0), (Opcode("orr", 54), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r2")), Normal, 0), (Eol, Normal, 0)] +[(Line(68), Dim, 5), (Address(166), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 67), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(5)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(72), Dim, 5), (Address(168), Normal, 5), (Basic(" ~> "), Rotating(3), 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Line(72), Dim, 5), (Address(170), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bhi", 15), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(4), 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(172), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 35), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(12)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(174), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 25), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(176), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 15), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(4), 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(178), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(52)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(180), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 37), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(182), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsl", 42), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(27)), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(184), Normal, 5), (Spacing(4), Normal, 0), (Opcode("lsr", 44), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(31)), Normal, 0), (Eol, Normal, 0)] +[(Line(75), Dim, 5), (Address(186), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 15), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(4), 0), (Eol, Normal, 0)] +[(Line(77), Dim, 5), (Address(188), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(12)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(77), Dim, 5), (Address(190), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(44)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(77), Dim, 5), (Address(192), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(90)), Normal, 0), (Eol, Normal, 0)] +[(Line(77), Dim, 5), (Address(194), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 46), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(71)), Normal, 0), (Eol, Normal, 0)] +[(Line(77), Dim, 5), (Address(196), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "SCQUE_PUT_MsgImpl", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(81), Dim, 5), (Address(200), Normal, 5), (Basic(" ~> "), Rotating(4), 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(20)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(81), Dim, 5), (Address(202), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 35), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(8)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(81), Dim, 5), (Address(204), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 34), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(32)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Line(81), Dim, 5), (Address(206), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 4), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Line(81), Dim, 5), (Address(208), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 19), Normal, 10), (Symbol(Symbol { name: "HEManager_PopState", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-4), Bright, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(212), Normal, 5), (Basic(" ~> "), Rotating(0), 0), (Opcode("add", 7), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(16)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(214), Normal, 5), (Spacing(4), Normal, 0), (Opcode("pop", 55), Normal, 10), (Basic("{"), Normal, 0), (Argument(Opaque("r3")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r7")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(216), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(285)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(220), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(1192)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(224), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(7544)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(228), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(9103)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(232), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(1930)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(236), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(4294901760)), Normal, 0), (Eol, Normal, 0)] +[(Line(86), Dim, 5), (Address(240), Normal, 5), (Spacing(4), Normal, 0), (Opcode(".word", 65535), Normal, 10), (Basic("#"), Normal, 0), (Argument(Unsigned(9129)), Normal, 0), (Eol, Normal, 0)] diff --git a/objdiff-core/tests/snapshots/arch_arm__read_thumb.snap b/objdiff-core/tests/snapshots/arch_arm__read_thumb.snap new file mode 100644 index 0000000..f68b3ff --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_thumb.snap @@ -0,0 +1,3808 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: obj +--- +Object { + arch: ArchArm { + disasm_modes: { + 17: [ + DisasmMode { + address: 0, + mapping: Thumb, + }, + DisasmMode { + address: 216, + mapping: Data, + }, + ], + }, + detected_version: None, + endianness: Little, + }, + endianness: Little, + symbols: [ + Symbol { + name: "$t", + demangled_name: None, + address: 0, + size: 0, + kind: Function, + section: Some( + 17, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 216, + size: 0, + kind: Function, + section: Some( + 17, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "[.debug_info]", + demangled_name: None, + address: 0, + size: 70, + kind: Section, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "[.debug_line]", + demangled_name: None, + address: 0, + size: 91, + kind: Section, + section: Some( + 9, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "[.debug_line]", + demangled_name: None, + address: 0, + size: 0, + kind: Section, + section: Some( + 11, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "[.debug_abbrev]", + demangled_name: None, + address: 0, + size: 211, + kind: Section, + section: Some( + 16, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "[.debug_pubnames]", + demangled_name: None, + address: 0, + size: 18, + kind: Section, + section: Some( + 13, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.102", + demangled_name: None, + address: 82, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.103", + demangled_name: None, + address: 88, + size: 1923, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.104", + demangled_name: None, + address: 2028, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.105", + demangled_name: None, + address: 2034, + size: 666, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.106", + demangled_name: None, + address: 2717, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.107", + demangled_name: None, + address: 2723, + size: 39, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.108", + demangled_name: None, + address: 2819, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.109", + demangled_name: None, + address: 2825, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.110", + demangled_name: None, + address: 2831, + size: 1517, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.111", + demangled_name: None, + address: 4370, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.112", + demangled_name: None, + address: 4376, + size: 1199, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.113", + demangled_name: None, + address: 5672, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.114", + demangled_name: None, + address: 5797, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.115", + demangled_name: None, + address: 5803, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.116", + demangled_name: None, + address: 5820, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.117", + demangled_name: None, + address: 5826, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.118", + demangled_name: None, + address: 5843, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.119", + demangled_name: None, + address: 5849, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.120", + demangled_name: None, + address: 5866, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.121", + demangled_name: None, + address: 5883, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.122", + demangled_name: None, + address: 5889, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.123", + demangled_name: None, + address: 5906, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.124", + demangled_name: None, + address: 5912, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.125", + demangled_name: None, + address: 5918, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.126", + demangled_name: None, + address: 5924, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.127", + demangled_name: None, + address: 5930, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.128", + demangled_name: None, + address: 5936, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.129", + demangled_name: None, + address: 5942, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.130", + demangled_name: None, + address: 5959, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.131", + demangled_name: None, + address: 5976, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.132", + demangled_name: None, + address: 5993, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.133", + demangled_name: None, + address: 6090, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.134", + demangled_name: None, + address: 6107, + size: 289, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.135", + demangled_name: None, + address: 6423, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.136", + demangled_name: None, + address: 6440, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.137", + demangled_name: None, + address: 6457, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.138", + demangled_name: None, + address: 6463, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.139", + demangled_name: None, + address: 6480, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.140", + demangled_name: None, + address: 6486, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.141", + demangled_name: None, + address: 6503, + size: 360, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.142", + demangled_name: None, + address: 6882, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.143", + demangled_name: None, + address: 6888, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.144", + demangled_name: None, + address: 6894, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.145", + demangled_name: None, + address: 6900, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.146", + demangled_name: None, + address: 6917, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.147", + demangled_name: None, + address: 6923, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.148", + demangled_name: None, + address: 6940, + size: 127, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.149", + demangled_name: None, + address: 7081, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.150", + demangled_name: None, + address: 7087, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.151", + demangled_name: None, + address: 7104, + size: 102, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.152", + demangled_name: None, + address: 7222, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.153", + demangled_name: None, + address: 7239, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.154", + demangled_name: None, + address: 7245, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.155", + demangled_name: None, + address: 7262, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.156", + demangled_name: None, + address: 7268, + size: 82, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.157", + demangled_name: None, + address: 7366, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.158", + demangled_name: None, + address: 7383, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.159", + demangled_name: None, + address: 7389, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.160", + demangled_name: None, + address: 7406, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.161", + demangled_name: None, + address: 7412, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.162", + demangled_name: None, + address: 7429, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.163", + demangled_name: None, + address: 7435, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.164", + demangled_name: None, + address: 7452, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.165", + demangled_name: None, + address: 7458, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.166", + demangled_name: None, + address: 7464, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.167", + demangled_name: None, + address: 7470, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.168", + demangled_name: None, + address: 7476, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.169", + demangled_name: None, + address: 7482, + size: 22, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.170", + demangled_name: None, + address: 7517, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.171", + demangled_name: None, + address: 7534, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.172", + demangled_name: None, + address: 7551, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.173", + demangled_name: None, + address: 7568, + size: 204, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.174", + demangled_name: None, + address: 7798, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.175", + demangled_name: None, + address: 7815, + size: 48, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.176", + demangled_name: None, + address: 7880, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.177", + demangled_name: None, + address: 7897, + size: 81, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.178", + demangled_name: None, + address: 7999, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.179", + demangled_name: None, + address: 8005, + size: 39, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.180", + demangled_name: None, + address: 8044, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.181", + demangled_name: None, + address: 8050, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.182", + demangled_name: None, + address: 8056, + size: 39, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.183", + demangled_name: None, + address: 8095, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.184", + demangled_name: None, + address: 8101, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.185", + demangled_name: None, + address: 8107, + size: 9, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.186", + demangled_name: None, + address: 8116, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.187", + demangled_name: None, + address: 8122, + size: 61, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.188", + demangled_name: None, + address: 8231, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.189", + demangled_name: None, + address: 8237, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.190", + demangled_name: None, + address: 8254, + size: 142, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.191", + demangled_name: None, + address: 8412, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.192", + demangled_name: None, + address: 8418, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.193", + demangled_name: None, + address: 8424, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.194", + demangled_name: None, + address: 8430, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.195", + demangled_name: None, + address: 8447, + size: 53, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.196", + demangled_name: None, + address: 8525, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.197", + demangled_name: None, + address: 8531, + size: 45, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.198", + demangled_name: None, + address: 8594, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.199", + demangled_name: None, + address: 8611, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.200", + demangled_name: None, + address: 8628, + size: 120, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.201", + demangled_name: None, + address: 8771, + size: 55, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.202", + demangled_name: None, + address: 8826, + size: 116, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.203", + demangled_name: None, + address: 8942, + size: 195, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.204", + demangled_name: None, + address: 9137, + size: 75, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.205", + demangled_name: None, + address: 9212, + size: 132, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.206", + demangled_name: None, + address: 9344, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.207", + demangled_name: None, + address: 9361, + size: 70, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.208", + demangled_name: None, + address: 9443, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.209", + demangled_name: None, + address: 9460, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.210", + demangled_name: None, + address: 9466, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.211", + demangled_name: None, + address: 9483, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.212", + demangled_name: None, + address: 9489, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.213", + demangled_name: None, + address: 9495, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.214", + demangled_name: None, + address: 9501, + size: 48, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.215", + demangled_name: None, + address: 9563, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.216", + demangled_name: None, + address: 9580, + size: 89, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.217", + demangled_name: None, + address: 9669, + size: 33, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.218", + demangled_name: None, + address: 9716, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.219", + demangled_name: None, + address: 9733, + size: 73, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.220", + demangled_name: None, + address: 9817, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.221", + demangled_name: None, + address: 9834, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.222", + demangled_name: None, + address: 9851, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.223", + demangled_name: None, + address: 9857, + size: 202, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.224", + demangled_name: None, + address: 10078, + size: 234, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.225", + demangled_name: None, + address: 10312, + size: 197, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.226", + demangled_name: None, + address: 10509, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.227", + demangled_name: None, + address: 10515, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.228", + demangled_name: None, + address: 10521, + size: 107, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.229", + demangled_name: None, + address: 10649, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.230", + demangled_name: None, + address: 10666, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.231", + demangled_name: None, + address: 10683, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.232", + demangled_name: None, + address: 10700, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.233", + demangled_name: None, + address: 10717, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.234", + demangled_name: None, + address: 10734, + size: 66, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.235", + demangled_name: None, + address: 10819, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.236", + demangled_name: None, + address: 10836, + size: 25, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.237", + demangled_name: None, + address: 10896, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.238", + demangled_name: None, + address: 10913, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.239", + demangled_name: None, + address: 10930, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.240", + demangled_name: None, + address: 10947, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.241", + demangled_name: None, + address: 10964, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.242", + demangled_name: None, + address: 10981, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.243", + demangled_name: None, + address: 10998, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.244", + demangled_name: None, + address: 11015, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.245", + demangled_name: None, + address: 11032, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.246", + demangled_name: None, + address: 11049, + size: 149, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.247", + demangled_name: None, + address: 11222, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.248", + demangled_name: None, + address: 11228, + size: 83, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.249", + demangled_name: None, + address: 11331, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.250", + demangled_name: None, + address: 11337, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.251", + demangled_name: None, + address: 11343, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.252", + demangled_name: None, + address: 11349, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.253", + demangled_name: None, + address: 11355, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.254", + demangled_name: None, + address: 11372, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.255", + demangled_name: None, + address: 11389, + size: 243, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.256", + demangled_name: None, + address: 11646, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.257", + demangled_name: None, + address: 11663, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.258", + demangled_name: None, + address: 11669, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.259", + demangled_name: None, + address: 11686, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.260", + demangled_name: None, + address: 11703, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.261", + demangled_name: None, + address: 11720, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.262", + demangled_name: None, + address: 11737, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.263", + demangled_name: None, + address: 11743, + size: 355, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.264", + demangled_name: None, + address: 12114, + size: 161, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.265", + demangled_name: None, + address: 12275, + size: 122, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.266", + demangled_name: None, + address: 12397, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.267", + demangled_name: None, + address: 12403, + size: 55, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.268", + demangled_name: None, + address: 12472, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.269", + demangled_name: None, + address: 12489, + size: 75, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.270", + demangled_name: None, + address: 12576, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.271", + demangled_name: None, + address: 12593, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.272", + demangled_name: None, + address: 12610, + size: 145, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.273", + demangled_name: None, + address: 12783, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.274", + demangled_name: None, + address: 12800, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.275", + demangled_name: None, + address: 12817, + size: 65, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.276", + demangled_name: None, + address: 12903, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.277", + demangled_name: None, + address: 12920, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.278", + demangled_name: None, + address: 12937, + size: 33, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.279", + demangled_name: None, + address: 12986, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.280", + demangled_name: None, + address: 13003, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.281", + demangled_name: None, + address: 13020, + size: 174, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.282", + demangled_name: None, + address: 13211, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.283", + demangled_name: None, + address: 13228, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.284", + demangled_name: None, + address: 13245, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.285", + demangled_name: None, + address: 13262, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.286", + demangled_name: None, + address: 13268, + size: 183, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.287", + demangled_name: None, + address: 13468, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.288", + demangled_name: None, + address: 13474, + size: 6, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_line.THUMB_BRANCH_ServerDisplay_UncategorizedMove", + demangled_name: None, + address: 91, + size: 89, + kind: Object, + section: Some( + 9, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "THUMB_BRANCH_ServerDisplay_UncategorizedMove", + demangled_name: None, + address: 0, + size: 244, + kind: Function, + section: Some( + 17, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "PokeSet_IsRemovedAll", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "ServerDisplay_SkillSwap", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "ServerEvent_CreateSubstitute", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "HEManager_PushState", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "BattleHandler_Result", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "ServerEvent_UncategorizedMove", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "SCQUE_PUT_MsgImpl", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "HEManager_PopState", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.void", + demangled_name: None, + address: 70, + size: 12, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.ServerFlow", + demangled_name: None, + address: 2011, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_SERVER", + demangled_name: None, + address: 2700, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.int", + demangled_name: None, + address: 2762, + size: 11, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.bool", + demangled_name: None, + address: 2773, + size: 11, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.fx32", + demangled_name: None, + address: 2784, + size: 11, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.s32", + demangled_name: None, + address: 2795, + size: 10, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.int32_t", + demangled_name: None, + address: 2805, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_MAIN_MODULE", + demangled_name: None, + address: 4348, + size: 22, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BATTLE_SETUP_PARAM", + demangled_name: None, + address: 5575, + size: 25, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.unsigned int", + demangled_name: None, + address: 5600, + size: 20, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.uint32_t", + demangled_name: None, + address: 5620, + size: 15, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.uptr", + demangled_name: None, + address: 5635, + size: 11, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.uintptr_t", + demangled_name: None, + address: 5646, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.u32", + demangled_name: None, + address: 5662, + size: 10, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.unsigned char", + demangled_name: None, + address: 5689, + size: 21, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BtlPokePos", + demangled_name: None, + address: 5710, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.u8", + demangled_name: None, + address: 5727, + size: 9, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.uint8_t", + demangled_name: None, + address: 5736, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.unsigned short", + demangled_name: None, + address: 5750, + size: 22, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.uint16_t", + demangled_name: None, + address: 5772, + size: 15, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.u16", + demangled_name: None, + address: 5787, + size: 10, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.TINYMT32_T", + demangled_name: None, + address: 5999, + size: 74, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.tinymt32_t", + demangled_name: None, + address: 6073, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BATTLE_KENTEI_RESULT", + demangled_name: None, + address: 6396, + size: 27, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.TRAINER_DATA", + demangled_name: None, + address: 6863, + size: 19, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.POKECON", + demangled_name: None, + address: 7067, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_PARTY", + demangled_name: None, + address: 7206, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.PokeParty", + demangled_name: None, + address: 7350, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.Reader", + demangled_name: None, + address: 7504, + size: 13, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.SERVER_NOTIFY_PARAM", + demangled_name: None, + address: 7772, + size: 26, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.EscapeInfo", + demangled_name: None, + address: 7863, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.unk_struct_450", + demangled_name: None, + address: 7978, + size: 21, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.struct_unk478", + demangled_name: None, + address: 8183, + size: 20, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_type.signed char", + demangled_name: None, + address: 8203, + size: 19, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.s8", + demangled_name: None, + address: 8222, + size: 9, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.SVCL_WORK", + demangled_name: None, + address: 8396, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_RESULT_CONTEXT", + demangled_name: None, + address: 8500, + size: 25, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.SVCL_ACTION", + demangled_name: None, + address: 8576, + size: 18, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_ACTION_PARAM", + demangled_name: None, + address: 8748, + size: 23, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.SCQUE", + demangled_name: None, + address: 9431, + size: 12, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.WazaRec", + demangled_name: None, + address: 9549, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.DeadRec", + demangled_name: None, + address: 9702, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.Unit", + demangled_name: None, + address: 9806, + size: 11, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.WAZAEFF_CTRL", + demangled_name: None, + address: 10059, + size: 19, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.WAZA_ROB_PARAM", + demangled_name: None, + address: 10628, + size: 21, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.CLIENTID_REC", + demangled_name: None, + address: 10800, + size: 19, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.ROTATION_HANDLER_WORK_BACKUP", + demangled_name: None, + address: 10861, + size: 35, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.ACTION_ORDER_WORK", + demangled_name: None, + address: 11198, + size: 24, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_POKEPARAM", + demangled_name: None, + address: 11311, + size: 20, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.POKESET", + demangled_name: None, + address: 11632, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.WAZAPARAM", + demangled_name: None, + address: 12098, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.PosPoke", + demangled_name: None, + address: 12458, + size: 14, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.State", + demangled_name: None, + address: 12564, + size: 12, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.BTL_HANDEX_STR_PARAMS", + demangled_name: None, + address: 12755, + size: 28, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.EventWorkStack", + demangled_name: None, + address: 12882, + size: 21, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.HEManager", + demangled_name: None, + address: 12970, + size: 16, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.AffCounter", + demangled_name: None, + address: 13194, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf_typedef.MOVE_PARAM", + demangled_name: None, + address: 13451, + size: 17, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: ".dwarf.THUMB_BRANCH_ServerDisplay_UncategorizedMove", + demangled_name: None, + address: 13480, + size: 243, + kind: Object, + section: Some( + 4, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + ], + sections: [ + Section { + id: ".symtab-0", + name: ".symtab", + address: 0, + size: 4240, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".strtab-0", + name: ".strtab", + address: 0, + size: 4913, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".shstrtab-0", + name: ".shstrtab", + address: 0, + size: 243, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".comment-0", + name: ".comment", + address: 0, + size: 36, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_info-0", + name: ".debug_info", + address: 0, + size: 13724, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rel.debug_info-0", + name: ".rel.debug_info", + address: 0, + size: 7680, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_macinfo-0", + name: ".debug_macinfo", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_loc-0", + name: ".debug_loc", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: " rel.debug_loc-0", + name: " rel.debug_loc", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_line-0", + name: ".debug_line", + address: 0, + size: 180, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rel.debug_line-0", + name: ".rel.debug_line", + address: 0, + size: 12, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_line-1", + name: ".debug_line", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rel.debug_line-1", + name: ".rel.debug_line", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_pubnames-0", + name: ".debug_pubnames", + address: 0, + size: 18, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rel.debug_pubnames-0", + name: ".rel.debug_pubnames", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_aranges-0", + name: ".debug_aranges", + address: 0, + size: 0, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".debug_abbrev-0", + name: ".debug_abbrev", + address: 0, + size: 211, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".text-0", + name: ".text", + address: 0, + size: 244, + kind: Code, + data: SectionData( + 244, + ), + flags: FlagSet(), + relocations: [ + Relocation { + flags: Elf( + 10, + ), + address: 14, + target_symbol: 196, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 40, + target_symbol: 197, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 52, + target_symbol: 198, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 100, + target_symbol: 199, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 108, + target_symbol: 200, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 126, + target_symbol: 201, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 136, + target_symbol: 200, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 196, + target_symbol: 202, + addend: -4, + }, + Relocation { + flags: Elf( + 10, + ), + address: 208, + target_symbol: 203, + addend: -4, + }, + ], + line_info: { + 0: 37, + 6: 39, + 22: 44, + 34: 47, + 44: 86, + 48: 50, + 60: 52, + 86: 86, + 88: 52, + 92: 86, + 94: 57, + 106: 61, + 114: 63, + 134: 65, + 142: 66, + 146: 68, + 168: 72, + 172: 75, + 188: 77, + 200: 81, + 212: 86, + 244: 86, + }, + virtual_address: None, + }, + Section { + id: ".rela.text-0", + name: ".rela.text", + address: 0, + size: 108, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + ], + split_meta: None, + path: None, + timestamp: None, +}