From eaba2391e0b75bc86fa381c333b2e841765a6c33 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Tue, 18 Mar 2025 21:25:59 -0600 Subject: [PATCH] arm: Fix thumb & data decoding, add tests --- objdiff-core/src/arch/arm.rs | 173 +- objdiff-core/tests/arch_arm.rs | 17 + objdiff-core/tests/data/arm/thumb.o | Bin 0 -> 32576 bytes .../tests/snapshots/arch_arm__read_arm-2.snap | 6 +- .../tests/snapshots/arch_arm__read_arm-3.snap | 6 +- .../tests/snapshots/arch_arm__read_arm.snap | 2 +- .../snapshots/arch_arm__read_thumb-2.snap | 1480 +++++++ .../snapshots/arch_arm__read_thumb-3.snap | 110 + .../tests/snapshots/arch_arm__read_thumb.snap | 3808 +++++++++++++++++ 9 files changed, 5549 insertions(+), 53 deletions(-) create mode 100644 objdiff-core/tests/data/arm/thumb.o create mode 100644 objdiff-core/tests/snapshots/arch_arm__read_thumb-2.snap create mode 100644 objdiff-core/tests/snapshots/arch_arm__read_thumb-3.snap create mode 100644 objdiff-core/tests/snapshots/arch_arm__read_thumb.snap 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 0000000000000000000000000000000000000000..f8f17d738449dc4c30ef0c4024c5c3dea557a300 GIT binary patch literal 32576 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%0DxPaoQI5W32C$S_m9}>!`MGyrQ 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 "), 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, +}