Function at 0x28caaceb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x298
mov r12, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [r12 + 0x447], 0
mov qword [rsp + 0x30], rcx
jne 0x28caad4ad
lea rbx, [rsp + 0x248]
lea rdx, str..preinit_array
mov rcx, rbx
lea rsi, [rsp + 0xf0]
call fcn.28cb510a0
movups xmm0, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm0
call fcn.28ca7f1e0
lea rdx, str..init_array
mov rcx, rbx
mov r15, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::preinitArray]
mov qword [rax], r15
call fcn.28cb510a0
movups xmm1, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm1
call fcn.28ca7f1e0
mov r14, qword [sym.liblldELF.dll_lld::elf::Out::initArray]
lea rdx, str..fini_array
mov rcx, rbx
mov qword [r14], rax
call fcn.28cb510a0
movups xmm2, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm2
call fcn.28ca7f1e0
mov r13, qword [sym.liblldELF.dll_lld::elf::Out::finiArray]
lea rdx, str..text
mov rcx, rbx
mov qword [r13], rax
call fcn.28cb510a0
movups xmm3, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm3
call fcn.28ca7f1e0
test rax, rax
jne 0x28caacfcf
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::elfHeader]
mov rax, qword [rax]
lea rdi, [rsp + 0x220]
lea rdx, str.__preinit_array_end
mov qword [rsp + 0x1f8], rax
mov rcx, rdi
lea rbp, [rsp + 0x1f8]
call fcn.28cb510a0
lea rdx, str.__preinit_array_start
mov rcx, rbx
call fcn.28cb510a0
mov r9, r15
mov rdx, rsi
mov rcx, rbp
lea rax, [rsp + 0xe0]
movups xmm4, xmmword [rsp + 0x248]
movaps xmm5, xmmword [rsp + 0x220]
mov r8, rax
mov qword [rsp + 0x38], rax
movaps xmmword [rsp + 0xf0], xmm4
movaps xmmword [rsp + 0xe0], xmm5
call fcn.28cbb74f0
mov r9, qword [r14]
lea rdx, str.__init_array_end
mov rcx, rdi
mov qword [rsp + 0x40], r9
call fcn.28cb510a0
lea rdx, str.__init_array_start
mov rcx, rbx
call fcn.28cb510a0
mov r8, qword [rsp + 0x38]
mov rdx, rsi
mov rcx, rbp
movups xmm0, xmmword [rsp + 0x248]
movaps xmm1, xmmword [rsp + 0x220]
mov r9, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
call fcn.28cbb74f0
mov r9, qword [r13]
lea rdx, str.__fini_array_end
mov rcx, rdi
mov qword [rsp + 0x40], r9
call fcn.28cb510a0
lea rdx, str.__fini_array_start
mov rcx, rbx
call fcn.28cb510a0
mov r9, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, rbp
movups xmm2, xmmword [rsp + 0x248]
movaps xmm3, xmmword [rsp + 0x220]
mov r8, qword [rsp + 0x38]
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0xe0], xmm3
call fcn.28cbb74f0
lea rdx, str..ARM.exidx
mov rcx, rbx
call fcn.28cb510a0
movups xmm4, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm4
call fcn.28ca7f1e0
test rax, rax
mov qword [rsp + 0x40], rax
je 0x28caad183
lea rdx, str.__exidx_end
mov rcx, rdi
call fcn.28cb510a0
lea rdx, str.__exidx_start
mov rcx, rbx
call fcn.28cb510a0
mov r9, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, rbp
movups xmm5, xmmword [rsp + 0x248]
movaps xmm0, xmmword [rsp + 0x220]
mov r8, qword [rsp + 0x38]
movaps xmmword [rsp + 0xf0], xmm5
movaps xmmword [rsp + 0xe0], xmm0
call fcn.28cbb74f0
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
mov rbp, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
lea r13, [rbp + rax*8]
cmp r13, rbp
je 0x28caad1bb
mov rcx, qword [rbp]
call fcn.28cb4a160
test rax, rax
je 0x28caad1b5
lea rcx, [rax + 8]
call fcn.28cab15a0
add rbp, 8
jmp 0x28caad199
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rbp, qword [rax + 0x48]
cmp qword [rbp + 0x40], 0
je 0x28caad282
mov rax, qword [sym.liblldELF.dll_lld::elf::ctx]
lea rdx, str._DYNAMIC
mov rcx, rdi
xor r15d, r15d
add rbp, 8
mov r13, qword [rax + 0x180]
call fcn.28cb510a0
mov rax, qword [rsp + 0x220]
mov edx, dword [rsp + 0x260]
mov word [rsp + 0x25c], 0x220
mov rcx, qword [sym.liblldELF.dll_lld::elf::symtab]
mov qword [rsp + 0x248], r13
mov qword [rsp + 0x250], rax
mov rax, qword [rsp + 0x228]
and dx, 0xeff7
mov byte [rsp + 0x25e], 1
mov dword [rsp + 0x258], eax
movzx eax, byte [r12 + 0x420]
mov qword [rsp + 0x270], r15
shl eax, 3
mov qword [rsp + 0x278], r15
and ax, 0x1008
mov qword [rsp + 0x280], rbp
or eax, edx
mov rdx, rbx
mov word [rsp + 0x260], ax
call method.lld::elf::Symbol_lld::elf::SymbolTable::addSymbol_lld::elf.Defined__lld::elf::Defined_const_
or byte [rax + 0x18], 2
call fcn.28cab0550
cmp word [r12 + 0x4f2], 0xf3
jne 0x28caad36d
mov rbp, qword [sym.liblldELF.dll_lld::elf::ElfSym::riscvGlobalPointer]
xor r14d, r14d
cmp byte [r12 + 0x479], 0
mov qword [rbp], r14
jne 0x28caad45c
lea rdx, str..sdata
mov rcx, rbx
call fcn.28cb510a0
movups xmm1, xmmword [rsp + 0x248]
mov edx, 1
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm1
call fcn.28ca7f1e0
mov rdi, rax
test rax, rax
jne 0x28caad2f3
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::elfHeader]
mov rdi, qword [rax]
lea r13, str.__global_pointer_
mov rcx, rbx
mov rdx, r13
call fcn.28cb510a0
xor r9d, r9d
mov rdx, rdi
mov rcx, rsi
movups xmm2, xmmword [rsp + 0x248]
mov r8d, 0x800
movaps xmmword [rsp + 0xf0], xmm2
call fcn.28ca8c740
cmp byte [r12 + 0x446], 0
je 0x28caad36d
mov rdx, r13
mov rcx, rbx
call fcn.28cb510a0
movups xmm3, xmmword [rsp + 0x248]
mov rcx, qword [sym.liblldELF.dll_lld::elf::symtab]
mov rdx, rsi
movaps xmmword [rsp + 0xf0], xmm3
call method.lld::elf::SymbolTable.find_llvm::StringRef_
test rax, rax
je 0x28caad36d
cmp byte [rax + 0x16], 1
jne 0x28caad36d
mov qword [rbp], rax
mov ax, word [r12 + 0x4f2]
cmp ax, 0x3e
je 0x28caad386
cmp ax, 3
jne 0x28caad45c
lea rdx, str._TLS_MODULE_BASE_
mov rcx, rbx
call fcn.28cb510a0
movups xmm4, xmmword [rsp + 0x248]
mov rcx, qword [sym.liblldELF.dll_lld::elf::symtab]
mov rdx, rsi
movaps xmmword [rsp + 0xf0], xmm4
call method.lld::elf::SymbolTable.find_llvm::StringRef_
mov rdi, rax
test rax, rax
je 0x28caad45c
cmp byte [rax + 0x16], 4
jne 0x28caad45c
mov rax, qword [sym.liblldELF.dll_lld::elf::ctx]
xor r13d, r13d
xor r11d, r11d
xor ebp, ebp
movzx edx, byte [r12 + 0x420]
mov rcx, rdi
mov qword [rsp + 0x250], r11
mov rax, qword [rax + 0x180]
mov dword [rsp + 0x258], ebp
shl edx, 3
mov byte [rsp + 0x25e], 1
mov qword [rsp + 0x248], rax
mov eax, dword [rsp + 0x260]
and dx, 0x1008
mov word [rsp + 0x25c], 0x216
and ax, 0xeff7
mov qword [rsp + 0x270], r13
or edx, eax
mov qword [rsp + 0x278], r13
mov word [rsp + 0x260], dx
mov rdx, rbx
mov qword [rsp + 0x280], r13
call method.lld::elf::Symbol.resolve_lld::elf::Defined_const_
mov rax, qword [sym.liblldELF.dll_lld::elf::ElfSym::tlsModuleBase]
mov qword [rax], rdi
mov rcx, rbx
lea rdx, str.Finalize_.eh_frame
call fcn.28cb510a0
movups xmm5, xmmword [rsp + 0x248]
mov rcx, rsi
movaps xmmword [rsp + 0xf0], xmm5
call fcn.28cb3de40
mov rax, qword [sym.liblldELF.dll_lld::elf::partitions]
mov rsi, qword [rax + 8]
mov rbx, qword [rax]
cmp rsi, rbx
je 0x28caad4a8
mov rcx, qword [rbx + 0x68]
call fcn.28ca8bc90
add rbx, 0xc0
jmp 0x28caad491
call fcn.28cb3e050
call fcn.28ca940b0
cmp byte [r12 + 0x560], 0
jne 0x28caad4db
call fcn.28ca92e40
cmp byte [r12 + 0x560], 0
je 0x28caad5df
call fcn.28cab0630
jmp 0x28caad5df
cmp dword [r12 + 0x4bc], 3
je 0x28caad4bd
cmp byte [r12 + 0x425], 0
jne 0x28caad4bd
mov rax, qword [sym.liblldELF.dll_lld::elf::ctx]
mov rsi, qword [rax + 0x88]
mov eax, dword [rax + 0x90]
lea r13, [rsi + rax*8]
cmp r13, rsi
je 0x28caad4bd
mov rbp, qword [rsi]
mov rdi, qword [rbp + 0x10]
mov eax, dword [rbp + 0x18]
lea r14, [rdi + rax*8]
cmp r14, rdi
je 0x28caad5d6
mov rcx, qword [rdi]
call method.auto_llvm::dyn_cast_if_present_lld::elf::InputSection__lld::elf.InputSectionBase__lld::elf::InputSectionBase_
test rax, rax
jne 0x28caad538
add rdi, 8
jmp 0x28caad51c
mov edx, dword [rax + 4]
cmp edx, 9
jne 0x28caad583
mov rbx, qword [rax + 0x58]
mov r15, qword [rax + 0x50]
and rbx, 0xfffffffffffffff0
add rbx, r15
cmp rbx, r15
je 0x28caad532
movzx edx, byte [r12 + 0x568]
mov rcx, r15
call method.llvm::object::Elf_Rel_Impl_llvm::object.ELFType__llvm::endianness_0__true___false_::getRInfo_bool__const
mov rcx, rbp
shr rax, 0x20
mov edx, eax
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_0__true___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28caad57d
or byte [rax + 0x18], 4
add r15, 0x10
jmp 0x28caad54f
cmp edx, 4
jne 0x28caad532
mov r15, qword [rax + 0x50]
mov rax, qword [rax + 0x58]
mov ebx, 0x18
xor edx, edx
div rbx
imul rax, rax, 0x18
lea rbx, [r15 + rax]
cmp rbx, r15
je 0x28caad532
movzx edx, byte [r12 + 0x568]
mov rcx, r15
call method.llvm::object::Elf_Rel_Impl_llvm::object.ELFType__llvm::endianness_0__true___false_::getRInfo_bool__const
mov rcx, rbp
shr rax, 0x20
mov edx, eax
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_0__true___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28caad5d0
or byte [rax + 0x18], 4
add r15, 0x18
jmp 0x28caad5a2
add rsi, 8
jmp 0x28caad509
mov r14, qword [sym.liblldELF.dll_lld::elf::script]
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.processSymbolAssignments__
lea rax, [rsp + 0x248]
cmp byte [r12 + 0x447], 0
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x40], rax
jne 0x28caada98
mov rcx, qword [rsp + 0x38]
lea rdx, str.Scan_relocations
call fcn.28cb510a0
movups xmm0, xmmword [rsp + 0x248]
mov rcx, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm0
call fcn.28cb3de40
mov rcx, qword [sym.liblldELF.dll_lld::elf::ppc64noTocRelax]
call sym.liblldELF.dll_llvm::DenseMapBase_llvm::DenseMap_std::pair_lld::elf::Symbol_const__unsigned_long_long___llvm::detail::DenseSetEmpty__llvm::DenseMapInfo_std::pair_lld::elf::Symbol_const__unsigned_long_long___void___llvm::detail::DenseSetPair_std::pair_lld::elf::Symbol_const__unsigned_long_long_______std::pair_lld::elf::Symbol_const__unsigned_long_long___llvm::detail::DenseSetEmpty__llvm::DenseMapInfo_std::pair_lld::elf::Symbol_const__unsigned_long_long___void___llvm::detail::DenseSetPair_std::pair_lld::elf::Symbol_const__unsigned_long_long_____::clear__
call method.void_lld::elf::scanRelocations_llvm::object.ELFType__llvm::endianness_0__true_____
call method.lld::elf.reportUndefinedSymbols__
call method.lld::elf.postScanRelocations__
mov rbx, qword [sym.liblldELF.dll_lld::elf::in]
mov rcx, qword [rbx + 0x88]
test rcx, rcx
jne 0x28caad67e
mov rcx, qword [rbx + 0x90]
test rcx, rcx
jne 0x28caad696
jmp 0x28caad69f
mov rax, qword [rcx]
call qword [rax + 0x20]
test al, al
je 0x28caad670
mov rcx, qword [rbx + 0x88]
call method.lld::elf::PltSection.addSymbols__
jmp 0x28caad670
cmp dword [rcx + 0xb0], 0
jne 0x28caad6ae
mov eax, dword [r12 + 0x4d8]
cmp eax, 2
jne 0x28caad6bf
jmp 0x28caad6b5
call method.lld::elf::IpltSection.addSymbols__
jmp 0x28caad69f
call fcn.28cb3e050
jmp 0x28caada98
test eax, eax
lea rdx, [fcn.28ca71600]
lea rax, [method.lld::elf.errorOrWarn_llvm::Twine_const_]
cmovne rax, rdx
mov rdx, qword [sym.liblldELF.dll_lld::elf::ctx]
mov r15, rax
mov rax, qword [rdx + 0x98]
mov edx, dword [rdx + 0xa0]
mov r13, rax
lea rdi, [rax + rdx*8]
lea rax, [rsp + 0x148]
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x80], r13
je 0x28caad6b5
mov rbp, qword [r13]
mov edi, dword [rbp + 0x108]
mov rsi, qword [rbp + 0x100]
shl rdi, 4
lea rax, [rsi + rdi]
sar rdi, 6
mov qword [rsp + 0x48], rax
test rdi, rdi
je 0x28caad788
mov rcx, rsi
call fcn.28cb51a60
test al, al
jne 0x28caad7f3
lea rbx, [rsi + 0x10]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caad7f6
lea rbx, [rsi + 0x20]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caad7f6
lea rbx, [rsi + 0x30]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caad7f6
add rsi, 0x40
dec rdi
jmp 0x28caad732
mov rax, qword [rsp + 0x48]
sub rax, rsi
cmp rax, 0x20
je 0x28caad7b9
cmp rax, 0x30
je 0x28caad7a7
cmp rax, 0x10
jne 0x28caad7d8
mov rbx, rsi
jmp 0x28caad7cc
mov rcx, rsi
call fcn.28cb51a60
lea rbx, [rsi + 0x10]
test al, al
je 0x28caad7bc
jmp 0x28caad7f3
mov rbx, rsi
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caad7f6
add rbx, 0x10
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caad7f6
mov rbx, qword [rbp + 0x128]
mov eax, dword [rbp + 0x130]
lea rax, [rbx + rax*8]
mov qword [rsp + 0x88], rax
jmp 0x28caad813
mov rbx, rsi
cmp qword [rsp + 0x48], rbx
je 0x28caad7d8
add r13, 8
jmp 0x28caad706
mov rsi, qword [rbx]
test byte [rsi + 0x19], 0x40
je 0x28caad81f
add rbx, 8
cmp qword [rsp + 0x88], rbx
jne 0x28caad806
jmp 0x28caad7fd
mov al, byte [rsi + 0x16]
cmp al, 4
jne 0x28caad832
mov al, byte [rsi + 0x14]
and eax, 0xfffffff0
cmp al, 0x20
je 0x28caad80f
jmp 0x28caad83b
dec al
jne 0x28caad80f
jmp 0x28caad90e
lea rax, [rsp + 0x1a8]
mov rdx, rbp
mov rcx, rax
mov qword [rsp + 0x48], rax
call method.lld.toString_abi:cxx11__lld::elf::InputFile_const_
lea rax, [rsp + 0x220]
mov rdx, rsi
mov rcx, rax
mov qword [rsp + 0x58], rax
call method.lld.toString_abi:cxx11__lld::elf::Symbol_const_
lea rax, [rsp + 0x1f8]
mov r8, qword [rsp + 0x58]
lea rdx, str.undefined_reference_due_to___no_allow_shlib_undefined:
mov rcx, rax
mov qword [rsp + 0x60], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rsi, [rsp + 0x1d0]
mov rdx, qword [rsp + 0x60]
lea r8, str._n____referenced_by
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rdi, [rsp + 0x188]
mov r8, qword [rsp + 0x48]
mov rdx, rsi
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
mov word [rsp + 0x268], 0x104
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x248], rdi
call r15
mov rcx, rdi
call fcn.28ca71ec0
mov rcx, rsi
call fcn.28ca71ec0
lea rcx, [rsp + 0x1f8]
call fcn.28ca71ec0
lea rcx, [rsp + 0x220]
call fcn.28ca71ec0
mov rcx, qword [rsp + 0x48]
jmp 0x28caada8e
mov rcx, rsi
call method.lld::elf::Symbol.computeBinding___const
test al, al
jne 0x28caad80f
mov rcx, qword [rsp + 0x50]
mov rdx, rbp
call method.lld.toString_abi:cxx11__lld::elf::InputFile_const_
lea rax, [rsp + 0x1a8]
mov rdx, qword [rsi]
mov rcx, rax
mov qword [rsp + 0x78], rax
call method.lld.toString_abi:cxx11__lld::elf::InputFile_const_
lea rax, [rsp + 0x220]
mov rdx, rsi
mov rcx, rax
mov qword [rsp + 0x58], rax
call method.lld.toString_abi:cxx11__lld::elf::Symbol_const_
lea rax, [rsp + 0x1f8]
mov r8, qword [rsp + 0x58]
lea rdx, str.non_exported_symbol_
mov rcx, rax
mov qword [rsp + 0x60], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rsp + 0x1d0]
mov rdx, qword [rsp + 0x60]
lea r8, str._in_
mov rcx, rax
mov qword [rsp + 0x68], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rsp + 0x188]
mov rdx, qword [rsp + 0x68]
lea r8, [rsp + 0x1a8]
mov rcx, rax
mov qword [rsp + 0x70], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rsp + 0x168]
mov rdx, qword [rsp + 0x70]
lea r8, str._is_referenced_by_DSO_
mov rcx, rax
mov qword [rsp + 0x48], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rsi, [rsp + 0x128]
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rdi, [rsp + 0x108]
lea r8, [0x28cbd34c5]
mov rdx, rsi
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
mov word [rsp + 0x268], 0x104
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x248], rdi
call r15
mov rcx, rdi
call fcn.28ca71ec0
mov rcx, rsi
call fcn.28ca71ec0
mov rcx, qword [rsp + 0x48]
call fcn.28ca71ec0
lea rcx, [rsp + 0x188]
call fcn.28ca71ec0
lea rcx, [rsp + 0x1d0]
call fcn.28ca71ec0
lea rcx, [rsp + 0x1f8]
call fcn.28ca71ec0
lea rcx, [rsp + 0x220]
call fcn.28ca71ec0
lea rcx, [rsp + 0x1a8]
call fcn.28ca71ec0
mov rcx, qword [rsp + 0x50]
call fcn.28ca71ec0
jmp 0x28caad80f
mov rcx, qword [rsp + 0x38]
lea rdx, str.Add_symbols_to_symtabs
call fcn.28cb510a0
movups xmm1, xmmword [rsp + 0x248]
mov rcx, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm1
call fcn.28cb3de40
mov rax, qword [sym.liblldELF.dll_lld::elf::symtab]
mov rbp, qword [sym.liblldELF.dll_lld::elf::in]
mov rsi, qword [rax + 0xc8]
mov eax, dword [rax + 0xd0]
lea rdi, [rsi + rax*8]
cmp rdi, rsi
je 0x28caadba7
mov rbx, qword [rsi]
test byte [rbx + 0x18], 2
jne 0x28caadafa
add rsi, 8
jmp 0x28caadae2
mov rcx, rbx
call method.lld::elf.includeInSymtab_lld::elf::Symbol_const_
test al, al
je 0x28caadaf4
cmp byte [r12 + 0x447], 0
jne 0x28caadb29
mov rcx, rbx
call method.lld::elf::Symbol.computeBinding___const
shl eax, 4
mov edx, eax
mov al, byte [rbx + 0x14]
and eax, 0xf
or eax, edx
mov byte [rbx + 0x14], al
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
jne 0x28caadb43
mov rcx, rbx
call method.lld::elf::Symbol.includeInDynsym___const
test al, al
je 0x28caadaf4
jmp 0x28caadb4d
mov rdx, rbx
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
jmp 0x28caadb35
movzx eax, byte [rbx + 0x17]
mov rdx, qword [sym.liblldELF.dll_lld::elf::partitions]
dec eax
cdqe
imul rax, rax, 0xc0
add rax, qword [rdx]
mov rdx, rbx
mov rcx, qword [rax + 0x58]
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
mov rcx, qword [rbx]
call method.auto_llvm::dyn_cast_if_present_lld::elf::SharedFile__lld::elf.InputFile__lld::elf::InputFile_
test rax, rax
je 0x28caadaf4
cmp byte [rax + 0x120], 0
je 0x28caadaf4
cmp byte [rbx + 0x16], 4
je 0x28caadaf4
mov rcx, rbx
call method.lld::elf.addVerneed_lld::elf::Symbol_
jmp 0x28caadaf4
mov rbp, qword [sym.liblldELF.dll_lld::elf::partitions]
lea rdi, [rsp + 0x220]
mov rax, qword [rbp]
mov r13, qword [rbp + 8]
lea rsi, [rax + 0xc0]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x48], rax
cmp r13, rsi
je 0x28caadc89
mov rcx, rdi
call fcn.28cb4e610
mov rax, qword [rsi + 0x58]
mov r15d, dword [rax + 0xb0]
mov rbx, qword [rax + 0xa8]
shl r15, 4
add r15, rbx
cmp r15, rbx
je 0x28caadc17
mov rcx, qword [rsp + 0x48]
mov r8, rbx
mov rdx, rdi
call method.llvm::detail::DenseSetImpl_lld::elf::Symbol__llvm::DenseMap_lld::elf::Symbol__llvm::detail::DenseSetEmpty__llvm::DenseMapInfo_lld::elf::Symbol__void___llvm::detail::DenseSetPair_lld::elf::Symbol_____llvm::DenseMapInfo_lld::elf::Symbol__void___
add rbx, 0x10
jmp 0x28caadbfc
mov rax, qword [rsi + 0x98]
mov r15d, dword [rax + 0xb8]
mov rbx, qword [rax + 0xb0]
shl r15, 6
add r15, rbx
cmp r15, rbx
je 0x28caadc75
cmp qword [rbx], 0
je 0x28caadc6f
mov eax, dword [rbx + 0x38]
sub eax, 2
cmp eax, 1
ja 0x28caadc6f
mov rcx, qword [rsp + 0x38]
mov r8, rbx
mov rdx, rdi
call method.llvm::detail::DenseSetImpl_lld::elf::Symbol__llvm::DenseMap_lld::elf::Symbol__llvm::detail::DenseSetEmpty__llvm::DenseMapInfo_lld::elf::Symbol__void___llvm::detail::DenseSetPair_lld::elf::Symbol_____llvm::DenseMapInfo_lld::elf::Symbol__void___
cmp byte [rsp + 0x258], 0
je 0x28caadc6f
mov rcx, qword [rsi + 0x58]
mov rdx, qword [rbx]
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
add rbx, 0x40
jmp 0x28caadc33
mov rcx, rdi
add rsi, 0xc0
call method.llvm::DenseMap_lld::elf::Symbol__llvm::detail::DenseSetEmpty__llvm::DenseMapInfo_lld::elf::Symbol__void___llvm::detail::DenseSetPair_lld::elf::Symbol___.DenseMap__
jmp 0x28caadbd2
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::in]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x28caadca3
call method.lld::elf::MipsGotSection.build__
call fcn.28ca93a20
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.diagnoseOrphanHandling___const
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.diagnoseMissingSGSectionAddress___const
mov rcx, qword [rsp + 0x38]
lea rdx, str.Sort_sections
call fcn.28cb510a0
movups xmm2, xmmword [rsp + 0x248]
mov rcx, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm2
call fcn.28cb3de40
cmp byte [r12 + 0x447], 0
je 0x28caadd15
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustOutputSections__
call fcn.28cb3e050
mov rax, qword [r14]
mov rbx, qword [sym.liblldELF.dll_lld::elf::outputSections]
mov rdi, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
lea rsi, [rdi + rax*8]
jmp 0x28caae130
call fcn.28cab0a70
mov rax, qword [r14]
mov rbx, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
lea rdi, [rbx + rax*8]
cmp rdi, rbx
je 0x28caadd4f
mov rcx, qword [rbx]
call fcn.28cb4a160
mov rsi, rax
test rax, rax
je 0x28caadd49
lea rcx, [rax + 8]
call fcn.28ca889c0
mov dword [rsi + 0x3c], eax
add rbx, 8
jmp 0x28caadd28
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
je 0x28caadd65
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.processInsertCommands__
jmp 0x28caade5e
mov rsi, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
shl rax, 3
lea rbx, [rsi + rax]
sar rax, 5
test rax, rax
je 0x28caaddbb
mov rdx, qword [rsi]
cmp dword [rdx], 1
jne 0x28caaddf5
mov rdx, qword [rsi + 8]
cmp dword [rdx], 1
je 0x28caadd94
add rsi, 8
jmp 0x28caaddf5
mov rdx, qword [rsi + 0x10]
cmp dword [rdx], 1
je 0x28caadda3
add rsi, 0x10
jmp 0x28caaddf5
mov rdx, qword [rsi + 0x18]
cmp dword [rdx], 1
je 0x28caaddb2
add rsi, 0x18
jmp 0x28caaddf5
add rsi, 0x20
dec rax
jmp 0x28caadd78
mov rax, rbx
sub rax, rsi
cmp rax, 0x10
je 0x28caadde1
cmp rax, 0x18
je 0x28caaddd5
cmp rax, 8
je 0x28caadded
jmp 0x28caade43
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28caaddf5
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28caaddf5
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
je 0x28caade43
cmp rbx, rsi
je 0x28caade43
mov rdx, rbx
mov rcx, qword [rsp + 0x38]
sub rdx, rsi
sar rdx, 3
call fcn.28cb85220
mov rax, qword [rsp + 0x250]
mov rdx, rbx
mov rcx, rsi
mov r9, qword [rsp + 0x258]
mov r8, qword [rsp + 0x248]
mov qword [rsp + 0x20], rax
call fcn.28cbb0390
mov rcx, qword [rsp + 0x38]
mov rbx, rax
call method.std::_Temporary_buffer_lld::elf::SectionCommand__lld::elf::SectionCommand_._Temporary_buffer__
mov rax, qword [r14]
lea r8, [0x28ca89a10]
mov rdx, rbx
mov rcx, qword [rax + 0x30]
call method.void_std::stable_sort_lld::elf.SectionCommand__bool____lld::elf::SectionCommand_const__lld::elf::SectionCommand_const___lld::elf::SectionCommand__lld::elf::SectionCommand__bool____lld::elf::SectionCommand_const__lld::elf::SectionCommand_
jmp 0x28caadd58
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustOutputSections__
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
jne 0x28caade7c
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustSectionsAfterSorting__
jmp 0x28caadcf6
mov r13d, dword [rax + 0x38]
mov rsi, qword [rax + 0x30]
shl r13, 3
mov rbx, rsi
lea rdi, [rsi + r13]
sar r13, 5
mov r8, r13
test r8, r8
je 0x28caadeed
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caadf38
mov rcx, qword [rbx + 8]
call fcn.28cb51620
test al, al
je 0x28caadebe
add rbx, 8
jmp 0x28caadf38
mov rcx, qword [rbx + 0x10]
call fcn.28cb51620
test al, al
je 0x28caaded1
add rbx, 0x10
jmp 0x28caadf38
mov rcx, qword [rbx + 0x18]
call fcn.28cb51620
test al, al
je 0x28caadee4
add rbx, 0x18
jmp 0x28caadf38
add rbx, 0x20
dec r8
jmp 0x28caade96
mov rax, rdi
sub rax, rbx
cmp rax, 0x10
je 0x28caadf1a
cmp rax, 0x18
je 0x28caadf0a
cmp rax, 8
je 0x28caadf2a
mov rbx, rdi
jmp 0x28caadf38
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caadf38
add rbx, 8
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caadf38
add rbx, 8
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
cmove rbx, rdi
lea r8, [0x28ca89a10]
mov rdx, rdi
mov rcx, rbx
call method.void_std::stable_sort_lld::elf.SectionCommand__bool____lld::elf::SectionCommand_const__lld::elf::SectionCommand_const___lld::elf::SectionCommand__lld::elf::SectionCommand__bool____lld::elf::SectionCommand_const__lld::elf::SectionCommand_
test r13, r13
je 0x28caadfa1
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caadfe7
mov rcx, qword [rsi + 8]
call fcn.28cb51600
test al, al
je 0x28caadf72
add rsi, 8
jmp 0x28caadfe7
mov rcx, qword [rsi + 0x10]
call fcn.28cb51600
test al, al
je 0x28caadf85
add rsi, 0x10
jmp 0x28caadfe7
mov rcx, qword [rsi + 0x18]
call fcn.28cb51600
test al, al
je 0x28caadf98
add rsi, 0x18
jmp 0x28caadfe7
add rsi, 0x20
dec r13
jmp 0x28caadf4a
mov rax, rdi
sub rax, rsi
cmp rax, 0x10
je 0x28caadfcb
cmp rax, 0x18
je 0x28caadfbb
cmp rax, 8
je 0x28caadfdb
jmp 0x28caadffa
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caadfe7
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caadfe7
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
je 0x28caadffa
cmp rdi, rsi
je 0x28caae023
mov rax, qword [rsi]
cmp dword [rax], 0
jne 0x28caae023
add rsi, 8
jmp 0x28caae023
mov rsi, rdi
jmp 0x28caae023
add r13, 0x20
dec rdx
test rdx, rdx
jle 0x28caae080
mov r8, qword [r13]
cmp eax, dword [r8 + 0x3c]
je 0x28caae050
mov rdx, rbx
mov r8, r13
mov rbx, r13
call method.lld::elf::SectionCommand_std::_V2::rotate_lld::elf.SectionCommand__lld::elf::SectionCommand__lld::elf::SectionCommand__lld::elf::SectionCommand_
cmp rdi, rbx
je 0x28caade6f
mov rdx, rbx
mov rcx, rsi
lea r13, [rbx + 8]
call fcn.28ca86fa0
mov rdx, rdi
mov rcx, rax
mov rax, qword [rbx]
sub rdx, r13
sar rdx, 5
mov eax, dword [rax + 0x3c]
jmp 0x28caae006
mov r8, qword [r13 + 8]
cmp eax, dword [r8 + 0x3c]
je 0x28caae060
add r13, 8
jmp 0x28caae015
mov r8, qword [r13 + 0x10]
cmp eax, dword [r8 + 0x3c]
je 0x28caae070
add r13, 0x10
jmp 0x28caae015
mov r8, qword [r13 + 0x18]
cmp eax, dword [r8 + 0x3c]
je 0x28caadfff
add r13, 0x18
jmp 0x28caae015
mov rdx, rdi
sub rdx, r13
cmp rdx, 0x10
je 0x28caae0b1
cmp rdx, 0x18
je 0x28caae0a0
cmp rdx, 8
je 0x28caae0c2
mov r13, rdi
jmp 0x28caae015
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28caae015
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28caae015
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
cmove r13, rdi
jmp 0x28caae015
mov rcx, qword [rdi]
call fcn.28cb4a160
mov r13, rax
test rax, rax
je 0x28caae12c
lea r15, [rax + 8]
mov rcx, rbx
mov rdx, r15
call method.llvm::SmallVectorTemplateBase_lld::elf::OutputSection__true_.push_back_lld::elf::OutputSection_
mov eax, dword [rbx + 8]
movups xmm3, xmmword [r13 + 0x10]
mov r8d, 1
mov rdx, qword [rsp + 0x40]
mov dword [r13 + 0x38], eax
mov rax, qword [sym.liblldELF.dll_lld::elf::in]
movaps xmmword [rsp + 0xf0], xmm3
mov rcx, qword [rax + 0xb8]
call method.lld::elf::StringTableSection.addString_llvm::StringRef__bool_
mov dword [r13 + 0x68], eax
add rdi, 8
cmp rsi, rdi
jne 0x28caae0d7
mov r15, qword [sym.liblldELF.dll_lld::elf::outputSections]
lea rdi, [0x28cb82f10]
lea r13, [0x28cb82ee0]
mov r14, qword [r15]
mov eax, dword [r15 + 8]
lea rax, [r14 + rax*8]
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x60]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x50], r14
je 0x28caae1dc
mov rbx, qword [r14]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
movups xmm4, xmmword [rbx + 8]
movaps xmmword [rsp + 0xf0], xmm4
call method.llvm::StringMap_unsigned_long_long__llvm::MallocAllocator_.find_llvm::StringRef_
mov rcx, qword [rsp + 0x48]
mov rsi, rax
call method.llvm::StringMap_unsigned_long_long__llvm::MallocAllocator_.end__
cmp rsi, rax
je 0x28caae1d6
mov rcx, qword [rsp + 0x38]
xor r10d, r10d
lea rdx, [rbx + 0x78]
mov qword [rsp + 0x248], rsi
mov qword [rsp + 0x250], r10
mov qword [rsp + 0x260], rdi
mov qword [rsp + 0x258], r13
call method.std::function_lld::elf.ExprValue____::swap_std::function_lld::elf::ExprValue_____
mov rcx, qword [rsp + 0x38]
call method.std::_Function_base._Function_base__
add r14, 8
jmp 0x28caae164
cmp word [r12 + 0x4f2], 0xa4
jne 0x28caae2b6
mov rdx, qword [r15]
mov eax, dword [r15 + 8]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rax
call method.lld::elf.hexagonNeedsTLSSymbol_llvm::ArrayRef_lld::elf::OutputSection__
test al, al
je 0x28caae2b6
mov rax, qword [sym.liblldELF.dll_lld::elf::ctx]
lea rcx, [rsp + 0x220]
lea rdx, str.__tls_get_addr
mov rbx, qword [rax + 0x180]
call fcn.28cb510a0
mov rax, qword [rsp + 0x220]
mov rdx, qword [rsp + 0x38]
xor r9d, r9d
mov rcx, qword [sym.liblldELF.dll_lld::elf::symtab]
and word [rsp + 0x260], 0xeff7
mov qword [rsp + 0x250], rax
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x248], rbx
mov dword [rsp + 0x258], eax
mov word [rsp + 0x25c], 0x10
mov byte [rsp + 0x25e], 4
mov dword [rsp + 0x270], r9d
mov byte [rsp + 0x274], 0
call method.lld::elf::Symbol_lld::elf::SymbolTable::addSymbol_lld::elf.Undefined__lld::elf::Undefined_const_
or byte [rax + 0x18], 1
mov rdx, rax
mov rax, qword [rbp]
mov rcx, qword [rax + 0x58]
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
cmp byte [r12 + 0x447], 0
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::elfHeader]
mov rax, qword [rax]
mov dword [rax + 0x30], 1
mov qword [rax + 0x48], 0x40
je 0x28caae335
call fcn.28cab1860
lea rax, [rsp + 0x248]
lea rdx, str.Finalize_synthetic_sections
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.28cb510a0
lea rax, [rsp + 0xf0]
movups xmm5, xmmword [rsp + 0x248]
mov rcx, rax
mov qword [rsp + 0x40], rax
movaps xmmword [rsp + 0xf0], xmm5
call fcn.28cb3de40
mov rbx, qword [sym.liblldELF.dll_lld::elf::in]
mov rcx, qword [rbx + 0x10]
call fcn.28ca8bc90
jmp 0x28caaeb26
cmp byte [r12 + 0x43a], 0
jne 0x28caae2da
mov rax, qword [rbp + 8]
mov rbx, qword [rbp]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], rbx
je 0x28caaeadd
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
lea rcx, [rsp + 0x188]
mov rdx, qword [rax]
cmp dword [rdx + 0x48], 0
je 0x28caae37a
call method.lld::elf::LinkerScript.createPhdrs__
jmp 0x28caaea30
xor r8d, r8d
mov qword [rsp + 0x168], rcx
lea rax, [rsp + 0x198]
mov rcx, rbx
mov qword [rsp + 0x188], rax
lea rdi, [rsp + 0x248]
mov qword [rsp + 0x190], r8
call method.lld::elf::Partition.getNumber___const
mov ecx, 4
mov r15d, eax
call fcn.28ca85180
mov qword [rsp + 0x40], rax
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x436], 0
je 0x28caae3d6
xor esi, esi
jmp 0x28caae4c5
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x43b], 0
jne 0x28caae3cf
cmp r15d, 1
mov r8d, 4
mov edx, 6
lea rbp, [rsp + 0x168]
mov rcx, rbp
jne 0x28caae416
call fcn.28cbb74a0
mov rcx, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rdx, qword [rax]
jmp 0x28caae426
call fcn.28cbb74a0
mov rcx, rax
mov rax, qword [rbx + 0x20]
mov rdx, qword [rax + 0x40]
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
lea rdx, str..interp
mov rcx, rdi
call fcn.28cb510a0
movups xmm0, xmmword [rsp + 0x248]
lea rcx, [rsp + 0xf0]
mov edx, r15d
movaps xmmword [rsp + 0xf0], xmm0
call fcn.28ca7f1e0
mov rsi, rax
test rax, rax
je 0x28caae485
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
mov edx, 3
mov rcx, rbp
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rsi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
cmp r15d, 1
jne 0x28caae3cf
mov r8d, dword [rsp + 0x40]
mov edx, 1
mov rcx, rbp
call fcn.28cbb74a0
mov rsi, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::elfHeader]
mov rcx, rsi
mov rdx, qword [rax]
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rdx, qword [rax]
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
lea rdx, [rsp + 0x220]
mov rcx, rdi
mov dword [rsp + 0x220], 4
mov dword [rsp + 0x248], 0x6474e552
call fcn.28cb30460
mov qword [rsp + 0x38], rax
mov rax, qword [sym.liblldELF.dll_lld::elf::outputSections]
xor r13d, r13d
xor r14d, r14d
mov rdi, qword [rax]
mov eax, dword [rax + 8]
lea rax, [rdi + rax*8]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], rdi
je 0x28caae613
mov r12, qword [rdi]
movzx eax, byte [r12 + 1]
cmp r15d, eax
jne 0x28caae60a
mov rcx, r12
call fcn.28ca7f5b0
test al, al
je 0x28caae60a
call fcn.28ca88e80
mov ebp, eax
test al, al
je 0x28caae5ff
test r14, r14
jne 0x28caae55f
mov rcx, qword [rsp + 0x38]
mov rdx, r12
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28caae5fa
lea r13, [rsp + 0x1d0]
lea r8, [rsp + 0x220]
lea rdx, str._sections
mov rcx, r13
lea rax, str.section:
call fcn.28cb463c0
mov rcx, r8
lea rdx, str._is_not_contiguous_with_other_relro
call fcn.28cb463c0
mov qword [rsp + 0x248], rax
mov rax, qword [r12 + 8]
lea rdx, [rsp + 0x248]
mov word [rsp + 0x268], 0x503
mov qword [rsp + 0x258], rax
mov rax, qword [r12 + 0x10]
lea r12, [rsp + 0x1f8]
mov rcx, r12
mov qword [rsp + 0x260], rax
call method.llvm::Twine.concat_llvm::Twine_const__const
lea rcx, [rsp + 0x1a8]
mov r8, r13
mov rdx, r12
mov qword [rsp + 0x58], rcx
call method.llvm::Twine.concat_llvm::Twine_const__const
mov rcx, qword [rsp + 0x58]
call fcn.28ca715f8
mov r13d, ebp
jmp 0x28caae60a
test r13b, r13b
je 0x28caae60a
mov r14, r12
xor r13d, r13d
add rdi, 8
jmp 0x28caae50c
mov rax, qword [rsp + 0x38]
mov r13, qword [sym.liblldELF.dll_lld::elf::outputSections]
mov dword [rax + 0x28], 1
mov rbp, qword [r13]
mov eax, dword [r13 + 8]
lea rax, [rbp + rax*8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x168]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x50], rbp
je 0x28caae766
mov rdi, qword [rbp]
mov rcx, rdi
call fcn.28ca7f5b0
test al, al
je 0x28caae75d
movzx edx, byte [rdi + 1]
mov eax, edx
cmp r15d, edx
je 0x28caae6ad
cmp r15d, 1
jne 0x28caae75d
inc al
jne 0x28caae75d
call method.lld::elf::OutputSection.getPhdrFlags___const
mov ecx, eax
call fcn.28ca85180
lea rcx, [rsp + 0x168]
mov edx, 1
mov r8d, eax
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rdi
jmp 0x28caae758
call method.lld::elf::OutputSection.getPhdrFlags___const
mov ecx, eax
call fcn.28ca85180
mov r12, rax
xor eax, eax
test rsi, rsi
je 0x28caae6dc
cmp qword [rdi + 0xc8], 0
jne 0x28caae6dc
mov rax, qword [rsi + 0x38]
mov rdx, qword [rdi + 0x70]
cmp qword [rax + 0x70], rdx
sete al
test rsi, rsi
sete dl
cmp r14, rdi
sete cl
or dl, cl
jne 0x28caae738
mov rdx, qword [rsp + 0x40]
cmp r12, rdx
jne 0x28caae738
mov rdx, qword [rsi + 0x38]
mov rdx, qword [rdx + 0x68]
cmp qword [rdi + 0x68], rdx
jne 0x28caae738
test al, al
jne 0x28caae718
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rax, qword [rax]
cmp qword [rsi + 0x40], rax
jne 0x28caae738
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
jne 0x28caae752
cmp dword [rdi + 4], 8
je 0x28caae752
mov rax, qword [rsi + 0x40]
cmp dword [rax + 4], 8
jne 0x28caae752
mov rcx, qword [rsp + 0x58]
mov r8d, r12d
mov edx, 1
call fcn.28cbb74a0
mov qword [rsp + 0x40], r12
mov rsi, rax
mov rdx, rdi
mov rcx, rsi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
add rbp, 8
jmp 0x28caae645
lea rsi, [rsp + 0x248]
lea rdx, [rsp + 0x220]
mov dword [rsp + 0x220], 4
mov dword [rsp + 0x248], 7
mov rcx, rsi
call fcn.28cb30460
mov rcx, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::outputSections]
mov r9, qword [rax]
mov eax, dword [rax + 8]
lea r10, [r9 + rax*8]
cmp r10, r9
je 0x28caae7ca
mov rdx, qword [r9]
movzx eax, byte [rdx + 1]
cmp r15d, eax
jne 0x28caae7c4
test byte [rdx + 0x19], 4
je 0x28caae7c4
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
add r9, 8
jmp 0x28caae7a8
cmp qword [rcx + 0x38], 0
jne 0x28caae7e0
mov rax, qword [rbx + 0x48]
mov rdi, qword [rax + 0x40]
test rdi, rdi
jne 0x28caae7f5
jmp 0x28caae81d
lea rax, [rsp + 0x188]
mov rdx, rcx
mov rcx, rax
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28caae7d1
mov rcx, rdi
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 2
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rdi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x38], 0
jne 0x28caae838
mov rdx, qword [rbx + 0x68]
cmp dword [rdx + 0xb0], 0
jne 0x28caae84c
jmp 0x28caae88f
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x188]
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28caae829
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x28caae88f
cmp qword [rdx + 0x40], 0
je 0x28caae88f
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x28caae88f
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x6474e550
call fcn.28cbb74a0
mov rcx, rax
mov rax, qword [rbx + 0x60]
mov rdx, qword [rax + 0x40]
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
lea rdx, str..openbsd.randomdata
mov rcx, rsi
lea rbp, [rsp + 0xf0]
call fcn.28cb510a0
movups xmm1, xmmword [rsp + 0x248]
mov edx, r15d
mov rcx, rbp
movaps xmmword [rsp + 0xf0], xmm1
call fcn.28ca7f1e0
mov rdi, rax
test rax, rax
je 0x28caae8f1
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x65a3dbe6
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rdi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
mov rdi, qword [sym.liblldELF.dll_lld::elf::config]
mov eax, dword [rdi + 0x4c0]
test eax, eax
je 0x28caae92b
dec eax
lea rcx, [rsp + 0x168]
mov edx, 0x6474e551
mov r12, qword [rdi + 0x520]
sete al
movzx eax, al
lea r8d, [rax + 6]
call fcn.28cbb74a0
mov qword [rax + 0x10], r12
cmp byte [rdi + 0x4bb], 0
jne 0x28caae968
mov rcx, rsi
lea rdx, str..note.gnu.property
call fcn.28cb510a0
movups xmm2, xmmword [rsp + 0x248]
mov edx, r15d
mov rcx, rbp
movaps xmmword [rsp + 0xf0], xmm2
call fcn.28ca7f1e0
mov rsi, rax
test rax, rax
jne 0x28caae982
jmp 0x28caae9a5
lea rcx, [rsp + 0x168]
mov r8d, 1
mov edx, 0x65a3dbe7
call fcn.28cbb74a0
jmp 0x28caae934
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 0x6474e553
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rsi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
mov rsi, qword [r13]
mov eax, dword [r13 + 8]
xor ecx, ecx
lea rbp, [rsi + rax*8]
cmp rbp, rsi
je 0x28caaea30
mov rdi, qword [rsi]
movzx eax, byte [rdi + 1]
cmp r15d, eax
jne 0x28caaea12
cmp dword [rdi + 4], 7
jne 0x28caaea10
test byte [rdi + 0x18], 2
je 0x28caaea10
test rcx, rcx
je 0x28caae9eb
cmp qword [rdi + 0xc8], 0
jne 0x28caae9eb
mov rax, qword [rcx + 0x40]
mov edx, dword [rdi + 0x20]
cmp dword [rax + 0x20], edx
je 0x28caaea06
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 4
call fcn.28cbb74a0
mov rcx, rax
mov rdx, rdi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28caaea12
xor ecx, ecx
add rsi, 8
jmp 0x28caae9b3
lea rsi, [rsp + 0x188]
lea rcx, [rbx + 0x28]
mov rdx, rsi
call fcn.28cb340f0
mov rcx, rsi
call method.llvm::SmallVectorImpl_lld::elf::PhdrEntry_.SmallVectorImpl__
mov rsi, qword [sym.liblldELF.dll_lld::elf::config]
cmp word [rsi + 0x4f2], 0x28
jne 0x28caaea70
mov r8d, 0x70000001
mov edx, 0x70000001
mov rcx, rbx
call fcn.28caacaf0
cmp word [rsi + 0x4f2], 8
jne 0x28caaeab3
mov r8d, 0x70000000
mov edx, 0x70000006
mov rcx, rbx
call fcn.28caacaf0
mov r8d, 0x70000002
mov edx, 0x7000000d
mov rcx, rbx
call fcn.28caacaf0
mov r8d, 0x70000003
mov edx, 0x7000002a
mov rcx, rbx
call fcn.28caacaf0
cmp word [rsi + 0x4f2], 0xf3
jne 0x28caaead1
mov r8d, 0x70000003
mov edx, 0x70000003
mov rcx, rbx
call fcn.28caacaf0
add rbx, 0xc0
jmp 0x28caae34d
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rcx, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rax, qword [rax]
mov rcx, qword [rcx]
mov edx, dword [rax + 0x30]
mov rax, qword [rax + 0x28]
imul r8, rdx, 0x38
mov qword [rcx + 0x48], r8
mov r8, qword [sym.liblldELF.dll_lld::elf::Out::tlsPhdr]
lea rcx, [rax + rdx*8]
cmp rax, rcx
je 0x28caae2da
mov rdx, qword [rax]
cmp dword [rdx + 0x2c], 7
jne 0x28caaeb20
mov qword [r8], rdx
add rax, 8
jmp 0x28caaeb0b
mov rcx, qword [rbx + 0x18]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0xd0]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0xb8]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0xc0]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x20]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x58]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x30]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x28]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0xb0]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0xa8]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x88]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x90]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x98]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x80]
call fcn.28ca8bc90
mov rdi, qword [sym.liblldELF.dll_lld::elf::partitions]
mov rbp, qword [rdi + 8]
mov rsi, qword [rdi]
cmp rsi, rbp
je 0x28caaec7d
mov rcx, qword [rsi + 0x98]
test rcx, rcx
jne 0x28caaebf0
mov rcx, qword [rsi + 0xa0]
test rcx, rcx
jne 0x28caaec0f
jmp 0x28caaec20
call method.lld::elf::RelocationBaseSection.mergeRels__
mov rcx, qword [rsi + 0x98]
call method.lld::elf::RelocationBaseSection.partitionRels__
mov rcx, qword [rsi + 0x98]
call fcn.28ca8bc90
jmp 0x28caaebe2
call method.lld::elf::RelrBaseSection.mergeRels__
mov rcx, qword [rsi + 0xa0]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0x58]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0x70]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0x78]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0xa8]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0x60]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0xb8]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0xb0]
call fcn.28ca8bc90
mov rcx, qword [rsi + 0x48]
call fcn.28ca8bc90
add rsi, 0xc0
jmp 0x28caaebcd
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
je 0x28caaecb1
call fcn.28cab1af0
call fcn.28ca716d8
mov rsi, qword [sym.liblldELF.dll_lld::elf::outputSections]
test rax, rax
jne 0x28caaef4b
jmp 0x28caaee96
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x447], 0
jne 0x28caaec92
mov r12, qword [rdi + 8]
mov rdi, qword [rdi]
lea r13, [0x28cb83210]
lea r14, [0x28cb831e0]
cmp rdi, r12
je 0x28caaec92
mov rsi, qword [rdi + 0x28]
mov eax, dword [rdi + 0x30]
xor r9d, r9d
lea r15, [rsi + rax*8]
cmp rsi, r15
je 0x28caaee8a
mov rbp, qword [rsi]
cmp dword [rbp + 0x2c], 1
jne 0x28caaee81
mov r8, qword [rbp + 0x38]
test r8, r8
je 0x28caaee81
xor ecx, ecx
mov eax, dword [r8 + 0x20]
xor edx, edx
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x254], ecx
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x24c], rdx
lea rdx, [r8 + 0x98]
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x248], eax
mov qword [rsp + 0x260], r13
mov qword [rsp + 0x258], r14
call method.std::function_lld::elf.ExprValue____::swap_std::function_lld::elf::ExprValue_____
mov rcx, qword [rsp + 0x38]
call method.std::_Function_base._Function_base__
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
cmp qword [r8 + 0x88], 0
jne 0x28caaee7e
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
lea rdx, [r8 + 0x78]
mov eax, dword [rax + 0x4ec]
cmp eax, 2
je 0x28caaedab
dec eax
jne 0x28caaeda1
test r9, r9
je 0x28caaeda1
mov eax, dword [r9 + 0x30]
xor eax, dword [rbp + 0x30]
test al, 1
jne 0x28caaedab
cmp dword [r8 + 4], 0x6fff4c06
jne 0x28caaedd8
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83120]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83100]
jmp 0x28caaee62
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::tlsPhdr]
mov rax, qword [rax]
test rax, rax
je 0x28caaee3a
mov rcx, qword [rbp + 0x38]
cmp qword [rax + 0x38], rcx
jne 0x28caaee3a
xor eax, eax
lea rcx, [rsp + 0x248]
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83160]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83140]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x258], rax
call method.std::function_lld::elf.ExprValue____::swap_std::function_lld::elf::ExprValue_____
mov rcx, qword [rsp + 0x48]
jmp 0x28caaee79
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb831b0]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83190]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x258], rax
call method.std::function_lld::elf.ExprValue____::swap_std::function_lld::elf::ExprValue_____
mov rcx, qword [rsp + 0x38]
call method.std::_Function_base._Function_base__
mov r9, rbp
add rsi, 8
jmp 0x28caaece9
add rdi, 0xc0
jmp 0x28caaecd6
mov rcx, qword [rsp + 0x38]
lea rdx, str.Finalize_synthetic_sections
call fcn.28cb510a0
movups xmm3, xmmword [rsp + 0x248]
mov rcx, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm3
call fcn.28cb3de40
mov rcx, qword [rbx + 0xc8]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x48]
call fcn.28ca8bc90
mov rcx, qword [rbx + 0x40]
call fcn.28ca8bc90
call fcn.28cb3e050
mov rdi, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rdi + 0x43e], 0
je 0x28caaeef9
call fcn.28cab16a0
mov rbx, qword [rsi]
mov eax, dword [rsi + 8]
lea rbp, [rbx + rax*8]
cmp rbp, rbx
je 0x28caaef16
mov rcx, qword [rbx]
add rbx, 8
call method.lld::elf::OutputSection.finalize__
jmp 0x28caaef03
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rcx, qword [rax]
call method.lld::elf::LinkerScript.checkFinalScriptConditions___const
cmp word [rdi + 0x4f2], 0x28
jne 0x28caaef4b
cmp byte [rdi + 0x562], 0
jne 0x28caaef4b
cmp byte [rdi + 0x3f1], 0
je 0x28caaef4b
call method.lld::elf.addArmInputSectionMappingSymbols__
call method.lld::elf.sortArmMappingSymbols__
call fcn.28cab01c0
mov rbx, qword [rsi]
mov eax, dword [rsi + 8]
lea rdi, [rbx + rax*8]
jmp 0x28caaf050
cmp rdi, rbx
je 0x28caaf063
mov rcx, qword [rbx]
add rbx, 8
call method.void_lld::elf::OutputSection::maybeCompress_llvm::object.ELFType__llvm::endianness_0__true_____
jmp 0x28caaf050
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rcx, qword [rax]
cmp byte [rcx + 0x50], 0
je 0x28caaf086
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rdx, qword [rax]
add rdx, 0x28
call method.lld::elf::LinkerScript.allocateHeaders_llvm::SmallVector_lld::elf::PhdrEntry__0u__
mov rdi, qword [sym.liblldELF.dll_lld::elf::partitions]
mov rbp, qword [rdi + 8]
mov rbx, qword [rdi]
cmp rbp, rbx
je 0x28caaf0ab
lea rcx, [rbx + 0x28]
add rbx, 0xc0
call fcn.28ca8c070
jmp 0x28caaf094
mov rbx, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rbx + 0x43a], 0
jne 0x28caaf0ca
mov rcx, qword [rsp + 0x30]
call fcn.28caacc20
jmp 0x28caaf155
mov rbp, qword [rsi]
mov eax, dword [rsi + 8]
or r12, 0xffffffffffffffff
lea r15, [rbp + rax*8]
mov r14, rbp
cmp r15, r14
je 0x28caaf106
mov r13, qword [r14]
mov rcx, r13
call fcn.28cbb76c0
test al, al
je 0x28caaf100
call method.lld::elf::OutputSection.getLMA___const
cmp r12, rax
mov qword [r13 + 0x50], rax
cmova r12, rax
add r14, 8
jmp 0x28caaf0dc
mov rax, qword [rsp + 0x30]
xor r13d, r13d
mov qword [rax + 8], r13
cmp r15, rbp
je 0x28caaf155
mov rdx, qword [rbp]
mov rcx, rdx
call fcn.28cbb76c0
test al, al
je 0x28caaf14f
mov rax, qword [rdx + 0x50]
sub rax, r12
mov qword [rdx + 0x50], rax
add rax, qword [rdx + 0x48]
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx + 8]
cmp rax, rdx
cmovb rax, rdx
mov rdx, qword [rsp + 0x30]
mov qword [rdx + 8], rax
add rbp, 8
jmp 0x28caaf112
mov r12, qword [rdi + 8]
mov rbp, qword [rdi]
cmp rbp, r12
je 0x28caaf172
mov rcx, rbp
add rbp, 0xc0
call fcn.28cab51e0
jmp 0x28caaf15c
call method.lld::elf.writeMapAndCref__
cmp byte [rbx + 0x444], 0
je 0x28caaf19a
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rbp, qword [rax]
call fcn.28ca71608
mov rdx, rax
mov rcx, rbp
call method.lld::elf::LinkerScript.printMemoryUsage_llvm::raw_ostream_
cmp byte [rbx + 0x3fc], 0
je 0x28caaf1a8
call fcn.28cab5310
call fcn.28ca716d8
test rax, rax
jne 0x28caafc57
mov rcx, qword [rsp + 0x38]
lea rdx, str.Write_output_file
call fcn.28cb510a0
movups xmm4, xmmword [rsp + 0x248]
mov rcx, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm4
call fcn.28cb3de40
cmp byte [rbx + 0x561], 0
mov eax, 0xffffffff
movabs rdx, 0x7fffffffffffffff
cmovne rax, rdx
mov rdx, qword [rsp + 0x30]
cmp rax, qword [rdx + 8]
jae 0x28caaf35f
lea rax, [rsp + 0x1f8]
xor r11d, r11d
mov byte [rsp + 0x208], 0
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x208]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1f8], rax
lea rax, [rsp + 0x248]
mov rcx, rax
mov qword [rsp + 0x200], r11
mov qword [rsp + 0x38], rax
call fcn.28cb407c0
mov rcx, qword [rsp + 0x38]
lea rdx, str.output_file_too_large:
call method.llvm::raw_ostream.operator___char_const_
mov word [rsp + 0x240], 0x10d
mov rbp, rax
mov rax, qword [rsp + 0x30]
mov rdx, rbp
add rax, 8
mov qword [rsp + 0x220], rax
lea rax, [rsp + 0x220]
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.28ca71a70
lea rdx, str._bytes_n
mov rcx, rbp
call method.llvm::raw_ostream.operator___char_const_
mov rcx, rax
lea rdx, str.section_sizes:_n
call method.llvm::raw_ostream.operator___char_const_
mov rbp, qword [rsi]
mov eax, dword [rsi + 8]
lea r14, [rsp + 0xf0]
lea r15, [0x28cbd3a22]
lea r13, [rbp + rax*8]
cmp rbp, r13
je 0x28caaf322
mov r12, qword [rbp]
mov rcx, qword [rsp + 0x38]
mov rdx, r14
movups xmm5, xmmword [r12 + 8]
movaps xmmword [rsp + 0xf0], xmm5
call method.llvm::raw_ostream.operator___llvm::StringRef_
mov rcx, rax
mov edx, 0x20
call method.llvm::raw_ostream.operator___char_
mov rdx, qword [r12 + 0x48]
mov rcx, rax
call fcn.28ca71c88
mov rcx, rax
mov rdx, r15
call method.llvm::raw_ostream.operator___char_const_
add rbp, 8
jmp 0x28caaf2d3
mov rax, qword [rsp + 0x288]
mov rcx, qword [rsp + 0x48]
mov word [rsp + 0x240], 0x104
mov qword [rsp + 0x220], rax
call fcn.28ca715f8
mov rcx, qword [rsp + 0x38]
call method.llvm::raw_string_ostream.raw_string_ostream__
mov rcx, qword [rsp + 0x40]
call fcn.28ca71ec0
jmp 0x28caaf4dd
movups xmm0, xmmword [rbx + 0x168]
lea r12, [rsp + 0xf0]
mov rcx, r12
movaps xmmword [rsp + 0xf0], xmm0
call fcn.28ca716c8
mov r9b, byte [rbx + 0x447]
xor r9d, 1
cmp byte [rbx + 0x435], 0
movzx r9d, r9b
jne 0x28caaf39a
or r9d, 2
movups xmm1, xmmword [rbx + 0x168]
mov rax, qword [rsp + 0x30]
lea rbp, [rsp + 0x168]
mov rdx, r12
mov rcx, rbp
movaps xmmword [rsp + 0xf0], xmm1
mov r8, qword [rax + 8]
call fcn.28ca71be8
test byte [rsp + 0x170], 1
je 0x28caaf4ab
lea r13, [rsp + 0x148]
mov rdx, rbp
lea r12, [rsp + 0x188]
mov rcx, r13
call method.llvm::Expected_std::unique_ptr_llvm::FileOutputBuffer__std::default_delete_llvm::FileOutputBuffer_____.takeError__
mov rdx, r13
mov rcx, r12
call fcn.28ca71ac8
lea r8, [rsp + 0x1d0]
lea rdx, [0x28cbd3a24]
mov word [rsp + 0x240], 0x104
mov rcx, r8
lea rax, str.failed_to_open
mov qword [rsp + 0x220], r12
lea r14, [rsp + 0x1f8]
call fcn.28cb463c0
mov qword [rsp + 0x1a8], rax
mov rax, qword [rbx + 0x168]
lea rdx, [rsp + 0x1a8]
mov rcx, r14
lea r13, [rsp + 0x248]
mov word [rsp + 0x1c8], 0x503
mov qword [rsp + 0x1b8], rax
mov rax, qword [rbx + 0x170]
mov qword [rsp + 0x1c0], rax
call method.llvm::Twine.concat_llvm::Twine_const__const
mov rcx, r13
lea r8, [rsp + 0x220]
mov rdx, r14
call method.llvm::Twine.concat_llvm::Twine_const__const
mov rcx, r13
call fcn.28ca715f8
mov rcx, r12
call fcn.28ca71ec0
mov rcx, qword [rsp + 0x148]
call fcn.28cb460a0
jmp 0x28caaf4d5
mov rax, qword [rsp + 0x30]
mov rdx, rbp
mov rcx, qword [rax]
call fcn.28cb7f700
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax]
mov rdx, qword [sym.liblldELF.dll_lld::elf::Out::bufferStart]
mov qword [rdx], rax
mov rcx, rbp
call method.llvm::Expected_std::unique_ptr_llvm::FileOutputBuffer__std::default_delete_llvm::FileOutputBuffer_____.Expected__
call fcn.28ca716d8
test rax, rax
je 0x28caaf537
jmp 0x28caafc06
cmp byte [rbx + 0x43a], 0
jne 0x28caaf75c
cmp dword [rbx + 0x4ec], 0
je 0x28caaf552
call fcn.28cab00c0
mov rbp, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov r12, qword [sym.liblldELF.dll_lld::elf::Out::bufferStart]
mov rdx, qword [rbp]
mov rcx, qword [r12]
call method.void_lld::elf::writeEhdr_llvm::object.ELFType__llvm::endianness_0__true____unsigned_char__lld::elf::Partition_
mov rax, qword [r12]
mov rdx, qword [rbp]
lea rcx, [rax + 0x40]
call method.void_lld::elf::writePhdrs_llvm::object.ELFType__llvm::endianness_0__true____unsigned_char__lld::elf::Partition_
call fcn.28ca7dff0
mov r13, qword [r12]
xchg al, ah
mov word [r13 + 0x10], ax
call fcn.28ca855e0
bswap rax
mov qword [r13 + 0x18], rax
mov rax, qword [rsp + 0x30]
mov rbp, qword [rax + 0x10]
mov rax, rbp
bswap rax
mov qword [r13 + 0x28], rax
mov eax, dword [rsi + 8]
add rbp, qword [r12]
inc rax
cmp rax, 0xfeff
jbe 0x28caaf5c8
bswap rax
mov qword [rbp + 0x20], rax
jmp 0x28caaf5cf
xchg al, ah
mov word [r13 + 0x3c], ax
mov rax, qword [sym.liblldELF.dll_lld::elf::in]
mov rax, qword [rax + 0xb8]
mov rax, qword [rax + 0x40]
mov eax, dword [rax + 0x30]
cmp eax, 0xfeff
jbe 0x28caaf5f9
bswap eax
mov dword [rbp + 0x28], eax
mov word [r13 + 0x3e], 0xffff
jmp 0x28caaf600
xchg al, ah
mov word [r13 + 0x3e], ax
mov r13, qword [rsi]
mov eax, dword [rsi + 8]
lea r14, [r13 + rax*8]
cmp r13, r14
je 0x28caaf626
add rbp, 0x40
mov rcx, qword [r13]
mov rdx, rbp
call method.void_lld::elf::OutputSection::writeHeaderTo_llvm::object.ELFType__llvm::endianness_0__true____llvm::object::ELFType__llvm::endianness_0__true_::Shdr_
add r13, 8
jmp 0x28caaf60b
lea rbp, [rsp + 0x248]
lea rdx, str.Write_sections
mov rcx, rbp
call fcn.28cb510a0
movups xmm2, xmmword [rsp + 0x248]
lea rcx, [rsp + 0xf0]
movaps xmmword [rsp + 0xf0], xmm2
call fcn.28cb3de40
mov rcx, rbp
call fcn.28ca71ad8
mov r13, qword [rsi]
mov eax, dword [rsi + 8]
lea r14, [r13 + rax*8]
cmp r13, r14
je 0x28caaf69b
mov rcx, qword [r13]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caaf689
cmp eax, 4
je 0x28caaf689
add r13, 8
jmp 0x28caaf66d
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r12]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_0__true____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caaf683
mov rcx, rbp
call fcn.28ca71ad0
mov rcx, rbp
call fcn.28ca71ad8
mov rax, qword [rsi]
mov edx, dword [rsi + 8]
mov rsi, rax
lea r13, [rax + rdx*8]
cmp rsi, r13
je 0x28caaf6e5
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caaf6cd
cmp eax, 4
jne 0x28caaf6d3
add rsi, 8
jmp 0x28caaf6b8
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r12]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_0__true____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caaf6cd
mov rcx, rbp
call fcn.28ca71ad0
cmp byte [rbx + 0x3fd], 0
jne 0x28caaf700
call fcn.28cb3e050
jmp 0x28caaf7c0
cmp byte [rbx + 0x4a3], 0
je 0x28caaf6f6
mov rax, qword [sym.liblldELF.dll_lld::elf::outputSections]
mov rsi, qword [rax]
mov eax, dword [rax + 8]
lea rbp, [rsi + rax*8]
cmp rsi, rbp
je 0x28caaf6f6
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caaf735
cmp eax, 4
je 0x28caaf735
add rsi, 8
jmp 0x28caaf71a
mov rdx, qword [r12]
call method.lld::elf::OutputSection.checkDynRelAddends_unsigned_char_const_
jmp 0x28caaf72f
lea rbp, [rsp + 0x248]
mov rcx, rbp
call fcn.28ca71ad8
mov rax, qword [rsi]
mov edx, dword [rsi + 8]
mov r13, qword [sym.liblldELF.dll_lld::elf::Out::bufferStart]
lea r12, [rax + rdx*8]
mov rsi, rax
cmp rsi, r12
je 0x28caaf7a6
mov rcx, qword [rsi]
test byte [rcx + 0x18], 2
jne 0x28caaf794
add rsi, 8
jmp 0x28caaf780
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r13]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_0__true____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caaf78e
mov rcx, rbp
call fcn.28ca71ad0
jmp 0x28caaf7c0
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rax, qword [rax + 0x40]
test rax, rax
je 0x28caafaac
cmp qword [rax + 0x40], 0
je 0x28caafaac
cmp dword [rbx + 0x4e8], 4
jne 0x28caaf836
mov rbp, qword [rdi + 8]
mov rsi, qword [rdi]
lea rdi, [rsp + 0xa0]
cmp rbp, rsi
je 0x28caafaac
mov rdx, qword [rbx + 0x398]
mov rcx, qword [rsi + 0x40]
mov rax, qword [rbx + 0x3a0]
mov qword [rsp + 0xa0], rdx
mov rdx, rdi
mov qword [rsp + 0xa8], rax
call method.lld::elf::BuildIdSection.writeBuildId_llvm::ArrayRef_unsigned_char__
add rsi, 0xc0
jmp 0x28caaf7fa
mov rcx, qword [rax + 0xa8]
mov qword [rsp + 0x188], rcx
call sub.libstdc_6.dll_operator_new___unsigned_long_long_
mov rdx, qword [sym.liblldELF.dll_lld::elf::Out::bufferStart]
mov rbp, rax
mov qword [rsp + 0x1a8], rax
mov ecx, dword [rbx + 0x4e8]
mov rax, qword [rsp + 0x30]
mov r13, qword [rsp + 0x188]
mov rdx, qword [rdx]
mov rax, qword [rax + 8]
cmp ecx, 3
je 0x28caaf968
jg 0x28caaf9ea
dec ecx
lea rsi, [rsp + 0x248]
lea r9, [rsp + 0xa0]
lea rcx, [rsp + 0x90]
jne 0x28caaf902
xor r10d, r10d
mov qword [rsp + 0xa0], rdx
mov r8, rsi
lea r11, [0x28cb83d50]
mov qword [rsp + 0x248], r10
mov rdx, r9
mov qword [rsp + 0x250], r10
lea r10, [0x28cb83d30]
mov qword [rsp + 0x260], r11
mov qword [rsp + 0x258], r10
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa8], rax
call fcn.28ca7eb70
jmp 0x28caaf9e0
xor r8d, r8d
mov qword [rsp + 0xa0], rdx
lea r11, [0x28cb83c60]
lea r10, [0x28cb83c30]
mov qword [rsp + 0x250], r8
lea r8, [rsp + 0x188]
mov rdx, r9
mov qword [rsp + 0x248], r8
mov r8, rsi
mov qword [rsp + 0x260], r11
mov qword [rsp + 0x258], r10
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa8], rax
call fcn.28ca7eb70
jmp 0x28caaf9e0
lea rsi, [0x28cb83ce0]
xor ecx, ecx
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x260], rsi
lea rsi, [0x28cb83cb0]
mov qword [rsp + 0x250], rcx
lea rcx, [rsp + 0x188]
mov qword [rsp + 0x258], rsi
lea rsi, [rsp + 0x248]
mov qword [rsp + 0x248], rcx
mov r8, rsi
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa8], rax
call fcn.28ca7eb70
mov rcx, rsi
call method.std::_Function_base._Function_base__
jmp 0x28caafa66
lea r12, [rsp + 0x1d0]
mov r8, r13
mov rdx, rbp
mov rcx, r12
call fcn.28ca71c38
cmp dword [rsp + 0x1d0], 0
je 0x28caafa66
lea rsi, [rsp + 0x1f8]
mov rdx, r12
mov rcx, rsi
call method.std::error_code.message_abi:cxx11____const
lea r12, [rsp + 0x220]
mov r8, rsi
lea rdx, str.entropy_source_failure:
mov rcx, r12
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rcx, [rsp + 0x248]
mov qword [rsp + 0x248], r12
mov word [rsp + 0x268], 0x104
call fcn.28ca715f8
mov rcx, r12
call fcn.28ca71ec0
mov rcx, rsi
call fcn.28ca71ec0
mov r12, qword [rdi + 8]
mov rsi, qword [rdi]
lea rdi, [rsp + 0xa0]
cmp r12, rsi
je 0x28caafa9f
mov rcx, qword [rsi + 0x40]
mov rdx, rdi
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xa8], r13
call method.lld::elf::BuildIdSection.writeBuildId_llvm::ArrayRef_unsigned_char__
add rsi, 0xc0
jmp 0x28caafa75
lea rcx, [rsp + 0x1a8]
call method.std::unique_ptr_unsigned_char_____std::default_delete_unsigned_char______.unique_ptr__
call fcn.28ca716d8
test rax, rax
je 0x28caafafb
jmp 0x28caafc06
mov rax, qword [rsp + 0x30]
lea rcx, [rsp + 0x148]
mov rax, qword [rax]
mov rdx, qword [rax]
mov rax, qword [rdx]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x148]
test rax, rax
je 0x28caafbef
lea rdi, [rsp + 0x188]
mov qword [rsp + 0x168], rax
lea rdx, [rsp + 0x168]
xor eax, eax
mov rcx, rdi
mov qword [rsp + 0x148], rax
call fcn.28ca71ac8
lea r8, [rsp + 0x1d0]
lea rdx, [0x28cbd3a5f]
mov word [rsp + 0x240], 0x104
mov rcx, r8
mov qword [rsp + 0x220], rdi
lea rsi, str.failed_to_write_output_
lea rbx, [rsp + 0x248]
call fcn.28cb463c0
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rax, qword [rax]
mov rdx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1a8], rsi
lea rsi, [rsp + 0x1f8]
mov word [rsp + 0x1c8], 0x503
mov rcx, rsi
mov qword [rsp + 0x1b8], rdx
lea rdx, [rsp + 0x1a8]
mov qword [rsp + 0x1c0], rax
call method.llvm::Twine.concat_llvm::Twine_const__const
mov rcx, rbx
lea r8, [rsp + 0x220]
mov rdx, rsi
call method.llvm::Twine.concat_llvm::Twine_const__const
mov rcx, rbx
call fcn.28ca715e8
xor ecx, ecx
call fcn.28cb460a0
cmp qword [rbx + 0x260], 0
je 0x28caafc06
call method.void_lld::elf::writeARMCmseImportLib_llvm::object.ELFType__llvm::endianness_0__true_____
nop
add rsp, 0x298
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.28cb3e050
add rsp, 0x298
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret