Function at 0x28caa9d40
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 0x28caaa33d
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 0x28caa9e5f
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.28cbb73e0
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.28cbb73e0
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.28cbb73e0
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 0x28caaa013
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.28cbb73e0
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 0x28caaa04b
mov rcx, qword [rbp]
call fcn.28cb4a160
test rax, rax
je 0x28caaa045
lea rcx, [rax + 8]
call fcn.28cab15a0
add rbp, 8
jmp 0x28caaa029
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rbp, qword [rax + 0x48]
cmp qword [rbp + 0x40], 0
je 0x28caaa112
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 0x28caaa1fd
mov rbp, qword [sym.liblldELF.dll_lld::elf::ElfSym::riscvGlobalPointer]
xor r14d, r14d
cmp byte [r12 + 0x479], 0
mov qword [rbp], r14
jne 0x28caaa2ec
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 0x28caaa183
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 0x28caaa1fd
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 0x28caaa1fd
cmp byte [rax + 0x16], 1
jne 0x28caaa1fd
mov qword [rbp], rax
mov ax, word [r12 + 0x4f2]
cmp ax, 0x3e
je 0x28caaa216
cmp ax, 3
jne 0x28caaa2ec
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 0x28caaa2ec
cmp byte [rax + 0x16], 4
jne 0x28caaa2ec
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 0x28caaa338
mov rcx, qword [rbx + 0x68]
call fcn.28ca8bc90
add rbx, 0xc0
jmp 0x28caaa321
call fcn.28cb3e050
call fcn.28ca940b0
cmp byte [r12 + 0x560], 0
jne 0x28caaa36b
call fcn.28ca92e40
cmp byte [r12 + 0x560], 0
je 0x28caaa453
call fcn.28cab0630
jmp 0x28caaa453
cmp dword [r12 + 0x4bc], 3
je 0x28caaa34d
cmp byte [r12 + 0x425], 0
jne 0x28caaa34d
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 0x28caaa34d
mov rbp, qword [rsi]
mov rdi, qword [rbp + 0x10]
mov eax, dword [rbp + 0x18]
lea r14, [rdi + rax*8]
cmp r14, rdi
je 0x28caaa44a
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 0x28caaa3c8
add rdi, 8
jmp 0x28caaa3ac
mov edx, dword [rax + 4]
cmp edx, 9
jne 0x28caaa405
mov rbx, qword [rax + 0x58]
mov r15, qword [rax + 0x50]
and rbx, 0xfffffffffffffff8
add rbx, r15
cmp rbx, r15
je 0x28caaa3c2
mov edx, dword [r15 + 4]
mov rcx, rbp
bswap edx
shr edx, 8
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_0__false___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28caaa3ff
or byte [rax + 0x18], 4
add r15, 8
jmp 0x28caaa3df
cmp edx, 4
jne 0x28caaa3c2
mov r15, qword [rax + 0x50]
mov rax, qword [rax + 0x58]
mov ebx, 0xc
xor edx, edx
div rbx
imul rax, rax, 0xc
lea rbx, [r15 + rax]
cmp rbx, r15
je 0x28caaa3c2
mov edx, dword [r15 + 4]
mov rcx, rbp
bswap edx
shr edx, 8
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_0__false___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28caaa444
or byte [rax + 0x18], 4
add r15, 0xc
jmp 0x28caaa424
add rsi, 8
jmp 0x28caaa399
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 0x28caaa90c
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__false_____
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 0x28caaa4f2
mov rcx, qword [rbx + 0x90]
test rcx, rcx
jne 0x28caaa50a
jmp 0x28caaa513
mov rax, qword [rcx]
call qword [rax + 0x20]
test al, al
je 0x28caaa4e4
mov rcx, qword [rbx + 0x88]
call method.lld::elf::PltSection.addSymbols__
jmp 0x28caaa4e4
cmp dword [rcx + 0xb0], 0
jne 0x28caaa522
mov eax, dword [r12 + 0x4d8]
cmp eax, 2
jne 0x28caaa533
jmp 0x28caaa529
call method.lld::elf::IpltSection.addSymbols__
jmp 0x28caaa513
call fcn.28cb3e050
jmp 0x28caaa90c
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 0x28caaa529
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 0x28caaa5fc
mov rcx, rsi
call fcn.28cb51a60
test al, al
jne 0x28caaa667
lea rbx, [rsi + 0x10]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caaa66a
lea rbx, [rsi + 0x20]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caaa66a
lea rbx, [rsi + 0x30]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caaa66a
add rsi, 0x40
dec rdi
jmp 0x28caaa5a6
mov rax, qword [rsp + 0x48]
sub rax, rsi
cmp rax, 0x20
je 0x28caaa62d
cmp rax, 0x30
je 0x28caaa61b
cmp rax, 0x10
jne 0x28caaa64c
mov rbx, rsi
jmp 0x28caaa640
mov rcx, rsi
call fcn.28cb51a60
lea rbx, [rsi + 0x10]
test al, al
je 0x28caaa630
jmp 0x28caaa667
mov rbx, rsi
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caaa66a
add rbx, 0x10
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28caaa66a
mov rbx, qword [rbp + 0x128]
mov eax, dword [rbp + 0x130]
lea rax, [rbx + rax*8]
mov qword [rsp + 0x88], rax
jmp 0x28caaa687
mov rbx, rsi
cmp qword [rsp + 0x48], rbx
je 0x28caaa64c
add r13, 8
jmp 0x28caaa57a
mov rsi, qword [rbx]
test byte [rsi + 0x19], 0x40
je 0x28caaa693
add rbx, 8
cmp qword [rsp + 0x88], rbx
jne 0x28caaa67a
jmp 0x28caaa671
mov al, byte [rsi + 0x16]
cmp al, 4
jne 0x28caaa6a6
mov al, byte [rsi + 0x14]
and eax, 0xfffffff0
cmp al, 0x20
je 0x28caaa683
jmp 0x28caaa6af
dec al
jne 0x28caaa683
jmp 0x28caaa782
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 0x28caaa902
mov rcx, rsi
call method.lld::elf::Symbol.computeBinding___const
test al, al
jne 0x28caaa683
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 0x28caaa683
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 0x28caaaa1b
mov rbx, qword [rsi]
test byte [rbx + 0x18], 2
jne 0x28caaa96e
add rsi, 8
jmp 0x28caaa956
mov rcx, rbx
call method.lld::elf.includeInSymtab_lld::elf::Symbol_const_
test al, al
je 0x28caaa968
cmp byte [r12 + 0x447], 0
jne 0x28caaa99d
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 0x28caaa9b7
mov rcx, rbx
call method.lld::elf::Symbol.includeInDynsym___const
test al, al
je 0x28caaa968
jmp 0x28caaa9c1
mov rdx, rbx
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
jmp 0x28caaa9a9
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 0x28caaa968
cmp byte [rax + 0x120], 0
je 0x28caaa968
cmp byte [rbx + 0x16], 4
je 0x28caaa968
mov rcx, rbx
call method.lld::elf.addVerneed_lld::elf::Symbol_
jmp 0x28caaa968
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 0x28caaaafd
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 0x28caaaa8b
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 0x28caaaa70
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 0x28caaaae9
cmp qword [rbx], 0
je 0x28caaaae3
mov eax, dword [rbx + 0x38]
sub eax, 2
cmp eax, 1
ja 0x28caaaae3
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 0x28caaaae3
mov rcx, qword [rsi + 0x58]
mov rdx, qword [rbx]
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
add rbx, 0x40
jmp 0x28caaaaa7
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 0x28caaaa46
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::in]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x28caaab17
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 0x28caaab89
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 0x28caaafa4
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 0x28caaabc3
mov rcx, qword [rbx]
call fcn.28cb4a160
mov rsi, rax
test rax, rax
je 0x28caaabbd
lea rcx, [rax + 8]
call fcn.28ca889c0
mov dword [rsi + 0x3c], eax
add rbx, 8
jmp 0x28caaab9c
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
je 0x28caaabd9
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.processInsertCommands__
jmp 0x28caaacd2
mov rsi, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
shl rax, 3
lea rbx, [rsi + rax]
sar rax, 5
test rax, rax
je 0x28caaac2f
mov rdx, qword [rsi]
cmp dword [rdx], 1
jne 0x28caaac69
mov rdx, qword [rsi + 8]
cmp dword [rdx], 1
je 0x28caaac08
add rsi, 8
jmp 0x28caaac69
mov rdx, qword [rsi + 0x10]
cmp dword [rdx], 1
je 0x28caaac17
add rsi, 0x10
jmp 0x28caaac69
mov rdx, qword [rsi + 0x18]
cmp dword [rdx], 1
je 0x28caaac26
add rsi, 0x18
jmp 0x28caaac69
add rsi, 0x20
dec rax
jmp 0x28caaabec
mov rax, rbx
sub rax, rsi
cmp rax, 0x10
je 0x28caaac55
cmp rax, 0x18
je 0x28caaac49
cmp rax, 8
je 0x28caaac61
jmp 0x28caaacb7
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28caaac69
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28caaac69
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
je 0x28caaacb7
cmp rbx, rsi
je 0x28caaacb7
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.28cbb0280
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 0x28caaabcc
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustOutputSections__
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
jne 0x28caaacf0
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustSectionsAfterSorting__
jmp 0x28caaab6a
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 0x28caaad61
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caaadac
mov rcx, qword [rbx + 8]
call fcn.28cb51620
test al, al
je 0x28caaad32
add rbx, 8
jmp 0x28caaadac
mov rcx, qword [rbx + 0x10]
call fcn.28cb51620
test al, al
je 0x28caaad45
add rbx, 0x10
jmp 0x28caaadac
mov rcx, qword [rbx + 0x18]
call fcn.28cb51620
test al, al
je 0x28caaad58
add rbx, 0x18
jmp 0x28caaadac
add rbx, 0x20
dec r8
jmp 0x28caaad0a
mov rax, rdi
sub rax, rbx
cmp rax, 0x10
je 0x28caaad8e
cmp rax, 0x18
je 0x28caaad7e
cmp rax, 8
je 0x28caaad9e
mov rbx, rdi
jmp 0x28caaadac
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caaadac
add rbx, 8
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28caaadac
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 0x28caaae15
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caaae5b
mov rcx, qword [rsi + 8]
call fcn.28cb51600
test al, al
je 0x28caaade6
add rsi, 8
jmp 0x28caaae5b
mov rcx, qword [rsi + 0x10]
call fcn.28cb51600
test al, al
je 0x28caaadf9
add rsi, 0x10
jmp 0x28caaae5b
mov rcx, qword [rsi + 0x18]
call fcn.28cb51600
test al, al
je 0x28caaae0c
add rsi, 0x18
jmp 0x28caaae5b
add rsi, 0x20
dec r13
jmp 0x28caaadbe
mov rax, rdi
sub rax, rsi
cmp rax, 0x10
je 0x28caaae3f
cmp rax, 0x18
je 0x28caaae2f
cmp rax, 8
je 0x28caaae4f
jmp 0x28caaae6e
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caaae5b
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28caaae5b
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
je 0x28caaae6e
cmp rdi, rsi
je 0x28caaae97
mov rax, qword [rsi]
cmp dword [rax], 0
jne 0x28caaae97
add rsi, 8
jmp 0x28caaae97
mov rsi, rdi
jmp 0x28caaae97
add r13, 0x20
dec rdx
test rdx, rdx
jle 0x28caaaef4
mov r8, qword [r13]
cmp eax, dword [r8 + 0x3c]
je 0x28caaaec4
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 0x28caaace3
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 0x28caaae7a
mov r8, qword [r13 + 8]
cmp eax, dword [r8 + 0x3c]
je 0x28caaaed4
add r13, 8
jmp 0x28caaae89
mov r8, qword [r13 + 0x10]
cmp eax, dword [r8 + 0x3c]
je 0x28caaaee4
add r13, 0x10
jmp 0x28caaae89
mov r8, qword [r13 + 0x18]
cmp eax, dword [r8 + 0x3c]
je 0x28caaae73
add r13, 0x18
jmp 0x28caaae89
mov rdx, rdi
sub rdx, r13
cmp rdx, 0x10
je 0x28caaaf25
cmp rdx, 0x18
je 0x28caaaf14
cmp rdx, 8
je 0x28caaaf36
mov r13, rdi
jmp 0x28caaae89
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28caaae89
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28caaae89
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
cmove r13, rdi
jmp 0x28caaae89
mov rcx, qword [rdi]
call fcn.28cb4a160
mov r13, rax
test rax, rax
je 0x28caaafa0
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 0x28caaaf4b
mov r15, qword [sym.liblldELF.dll_lld::elf::outputSections]
lea rdi, [0x28cb82ec0]
lea r13, [0x28cb82e90]
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 0x28caab050
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 0x28caab04a
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 0x28caaafd8
cmp word [r12 + 0x4f2], 0xa4
jne 0x28caab12a
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 0x28caab12a
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], 0x34
je 0x28caab1a9
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 0x28caab99d
cmp byte [r12 + 0x43a], 0
jne 0x28caab14e
mov rax, qword [rbp + 8]
mov rbx, qword [rbp]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], rbx
je 0x28caab951
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
lea rcx, [rsp + 0x188]
mov rdx, qword [rax]
cmp dword [rdx + 0x48], 0
je 0x28caab1ee
call method.lld::elf::LinkerScript.createPhdrs__
jmp 0x28caab8a4
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 0x28caab24a
xor esi, esi
jmp 0x28caab339
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x43b], 0
jne 0x28caab243
cmp r15d, 1
mov r8d, 4
mov edx, 6
lea rbp, [rsp + 0x168]
mov rcx, rbp
jne 0x28caab28a
call fcn.28cbb7390
mov rcx, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rdx, qword [rax]
jmp 0x28caab29a
call fcn.28cbb7390
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 0x28caab2f9
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
mov edx, 3
mov rcx, rbp
call fcn.28cbb7390
mov rcx, rax
mov rdx, rsi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
cmp r15d, 1
jne 0x28caab243
mov r8d, dword [rsp + 0x40]
mov edx, 1
mov rcx, rbp
call fcn.28cbb7390
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 0x28caab487
mov r12, qword [rdi]
movzx eax, byte [r12 + 1]
cmp r15d, eax
jne 0x28caab47e
mov rcx, r12
call fcn.28ca7f5b0
test al, al
je 0x28caab47e
call fcn.28ca88e80
mov ebp, eax
test al, al
je 0x28caab473
test r14, r14
jne 0x28caab3d3
mov rcx, qword [rsp + 0x38]
mov rdx, r12
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28caab46e
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 0x28caab47e
test r13b, r13b
je 0x28caab47e
mov r14, r12
xor r13d, r13d
add rdi, 8
jmp 0x28caab380
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 0x28caab5da
mov rdi, qword [rbp]
mov rcx, rdi
call fcn.28ca7f5b0
test al, al
je 0x28caab5d1
movzx edx, byte [rdi + 1]
mov eax, edx
cmp r15d, edx
je 0x28caab521
cmp r15d, 1
jne 0x28caab5d1
inc al
jne 0x28caab5d1
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.28cbb7390
mov rcx, rax
mov rdx, rdi
jmp 0x28caab5cc
call method.lld::elf::OutputSection.getPhdrFlags___const
mov ecx, eax
call fcn.28ca85180
mov r12, rax
xor eax, eax
test rsi, rsi
je 0x28caab550
cmp qword [rdi + 0xc8], 0
jne 0x28caab550
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 0x28caab5ac
mov rdx, qword [rsp + 0x40]
cmp r12, rdx
jne 0x28caab5ac
mov rdx, qword [rsi + 0x38]
mov rdx, qword [rdx + 0x68]
cmp qword [rdi + 0x68], rdx
jne 0x28caab5ac
test al, al
jne 0x28caab58c
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rax, qword [rax]
cmp qword [rsi + 0x40], rax
jne 0x28caab5ac
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
jne 0x28caab5c6
cmp dword [rdi + 4], 8
je 0x28caab5c6
mov rax, qword [rsi + 0x40]
cmp dword [rax + 4], 8
jne 0x28caab5c6
mov rcx, qword [rsp + 0x58]
mov r8d, r12d
mov edx, 1
call fcn.28cbb7390
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 0x28caab4b9
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 0x28caab63e
mov rdx, qword [r9]
movzx eax, byte [rdx + 1]
cmp r15d, eax
jne 0x28caab638
test byte [rdx + 0x19], 4
je 0x28caab638
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
add r9, 8
jmp 0x28caab61c
cmp qword [rcx + 0x38], 0
jne 0x28caab654
mov rax, qword [rbx + 0x48]
mov rdi, qword [rax + 0x40]
test rdi, rdi
jne 0x28caab669
jmp 0x28caab691
lea rax, [rsp + 0x188]
mov rdx, rcx
mov rcx, rax
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28caab645
mov rcx, rdi
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 2
call fcn.28cbb7390
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 0x28caab6ac
mov rdx, qword [rbx + 0x68]
cmp dword [rdx + 0xb0], 0
jne 0x28caab6c0
jmp 0x28caab703
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x188]
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28caab69d
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x28caab703
cmp qword [rdx + 0x40], 0
je 0x28caab703
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x28caab703
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x6474e550
call fcn.28cbb7390
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 0x28caab765
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x65a3dbe6
call fcn.28cbb7390
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 0x28caab79f
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.28cbb7390
mov qword [rax + 0x10], r12
cmp byte [rdi + 0x4bb], 0
jne 0x28caab7dc
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 0x28caab7f6
jmp 0x28caab819
lea rcx, [rsp + 0x168]
mov r8d, 1
mov edx, 0x65a3dbe7
call fcn.28cbb7390
jmp 0x28caab7a8
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 0x6474e553
call fcn.28cbb7390
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 0x28caab8a4
mov rdi, qword [rsi]
movzx eax, byte [rdi + 1]
cmp r15d, eax
jne 0x28caab886
cmp dword [rdi + 4], 7
jne 0x28caab884
test byte [rdi + 0x18], 2
je 0x28caab884
test rcx, rcx
je 0x28caab85f
cmp qword [rdi + 0xc8], 0
jne 0x28caab85f
mov rax, qword [rcx + 0x40]
mov edx, dword [rdi + 0x20]
cmp dword [rax + 0x20], edx
je 0x28caab87a
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 4
call fcn.28cbb7390
mov rcx, rax
mov rdx, rdi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28caab886
xor ecx, ecx
add rsi, 8
jmp 0x28caab827
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 0x28caab8e4
mov r8d, 0x70000001
mov edx, 0x70000001
mov rcx, rbx
call fcn.28caa9980
cmp word [rsi + 0x4f2], 8
jne 0x28caab927
mov r8d, 0x70000000
mov edx, 0x70000006
mov rcx, rbx
call fcn.28caa9980
mov r8d, 0x70000002
mov edx, 0x7000000d
mov rcx, rbx
call fcn.28caa9980
mov r8d, 0x70000003
mov edx, 0x7000002a
mov rcx, rbx
call fcn.28caa9980
cmp word [rsi + 0x4f2], 0xf3
jne 0x28caab945
mov r8d, 0x70000003
mov edx, 0x70000003
mov rcx, rbx
call fcn.28caa9980
add rbx, 0xc0
jmp 0x28caab1c1
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]
mov r8, rdx
shl r8, 5
mov qword [rcx + 0x48], r8
mov r8, qword [sym.liblldELF.dll_lld::elf::Out::tlsPhdr]
lea rcx, [rax + rdx*8]
cmp rax, rcx
je 0x28caab14e
mov rdx, qword [rax]
cmp dword [rdx + 0x2c], 7
jne 0x28caab997
mov qword [r8], rdx
add rax, 8
jmp 0x28caab982
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 0x28caabaf4
mov rcx, qword [rsi + 0x98]
test rcx, rcx
jne 0x28caaba67
mov rcx, qword [rsi + 0xa0]
test rcx, rcx
jne 0x28caaba86
jmp 0x28caaba97
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 0x28caaba59
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 0x28caaba44
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
je 0x28caabb28
call fcn.28cab1af0
call fcn.28ca716d8
mov rsi, qword [sym.liblldELF.dll_lld::elf::outputSections]
test rax, rax
jne 0x28caabdc2
jmp 0x28caabd0d
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x447], 0
jne 0x28caabb09
mov r12, qword [rdi + 8]
mov rdi, qword [rdi]
lea r13, [0x28cb830e0]
lea r14, [0x28cb830b0]
cmp rdi, r12
je 0x28caabb09
mov rsi, qword [rdi + 0x28]
mov eax, dword [rdi + 0x30]
xor r9d, r9d
lea r15, [rsi + rax*8]
cmp rsi, r15
je 0x28caabd01
mov rbp, qword [rsi]
cmp dword [rbp + 0x2c], 1
jne 0x28caabcf8
mov r8, qword [rbp + 0x38]
test r8, r8
je 0x28caabcf8
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 0x28caabcf5
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
lea rdx, [r8 + 0x78]
mov eax, dword [rax + 0x4ec]
cmp eax, 2
je 0x28caabc22
dec eax
jne 0x28caabc18
test r9, r9
je 0x28caabc18
mov eax, dword [r9 + 0x30]
xor eax, dword [rbp + 0x30]
test al, 1
jne 0x28caabc22
cmp dword [r8 + 4], 0x6fff4c06
jne 0x28caabc4f
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb82ff0]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb82fd0]
jmp 0x28caabcd9
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::tlsPhdr]
mov rax, qword [rax]
test rax, rax
je 0x28caabcb1
mov rcx, qword [rbp + 0x38]
cmp qword [rax + 0x38], rcx
jne 0x28caabcb1
xor eax, eax
lea rcx, [rsp + 0x248]
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83030]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83010]
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 0x28caabcf0
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83080]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83060]
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 0x28caabb60
add rdi, 0xc0
jmp 0x28caabb4d
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 0x28caabd70
call fcn.28cab16a0
mov rbx, qword [rsi]
mov eax, dword [rsi + 8]
lea rbp, [rbx + rax*8]
cmp rbp, rbx
je 0x28caabd8d
mov rcx, qword [rbx]
add rbx, 8
call method.lld::elf::OutputSection.finalize__
jmp 0x28caabd7a
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 0x28caabdc2
cmp byte [rdi + 0x562], 0
jne 0x28caabdc2
cmp byte [rdi + 0x3f1], 0
je 0x28caabdc2
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 0x28caabec7
cmp rdi, rbx
je 0x28caabeda
mov rcx, qword [rbx]
add rbx, 8
call method.void_lld::elf::OutputSection::maybeCompress_llvm::object.ELFType__llvm::endianness_0__false_____
jmp 0x28caabec7
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rcx, qword [rax]
cmp byte [rcx + 0x50], 0
je 0x28caabefd
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 0x28caabf22
lea rcx, [rbx + 0x28]
add rbx, 0xc0
call fcn.28ca8c070
jmp 0x28caabf0b
mov rbx, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rbx + 0x43a], 0
jne 0x28caabf41
mov rcx, qword [rsp + 0x30]
call fcn.28caa9ab0
jmp 0x28caabfcc
mov rbp, qword [rsi]
mov eax, dword [rsi + 8]
or r12, 0xffffffffffffffff
lea r15, [rbp + rax*8]
mov r14, rbp
cmp r15, r14
je 0x28caabf7d
mov r13, qword [r14]
mov rcx, r13
call fcn.28cbb76c0
test al, al
je 0x28caabf77
call method.lld::elf::OutputSection.getLMA___const
cmp r12, rax
mov qword [r13 + 0x50], rax
cmova r12, rax
add r14, 8
jmp 0x28caabf53
mov rax, qword [rsp + 0x30]
xor r13d, r13d
mov qword [rax + 8], r13
cmp r15, rbp
je 0x28caabfcc
mov rdx, qword [rbp]
mov rcx, rdx
call fcn.28cbb76c0
test al, al
je 0x28caabfc6
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 0x28caabf89
mov r12, qword [rdi + 8]
mov rbp, qword [rdi]
cmp rbp, r12
je 0x28caabfe9
mov rcx, rbp
add rbp, 0xc0
call fcn.28cab51e0
jmp 0x28caabfd3
call method.lld::elf.writeMapAndCref__
cmp byte [rbx + 0x444], 0
je 0x28caac011
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 0x28caac01f
call fcn.28caafc70
call fcn.28ca716d8
test rax, rax
jne 0x28caacad0
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 0x28caac1d6
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 0x28caac199
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 0x28caac14a
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 0x28caac354
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 0x28caac211
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 0x28caac322
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 0x28caac34c
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 0x28caac3ae
jmp 0x28caaca7f
cmp byte [rbx + 0x43a], 0
jne 0x28caac5d5
cmp dword [rbx + 0x4ec], 0
je 0x28caac3c9
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__false____unsigned_char__lld::elf::Partition_
mov rax, qword [r12]
mov rdx, qword [rbp]
lea rcx, [rax + 0x34]
call method.void_lld::elf::writePhdrs_llvm::object.ELFType__llvm::endianness_0__false____unsigned_char__lld::elf::Partition_
call fcn.28ca7dff0
mov r13, qword [r12]
xchg al, ah
mov word [r13 + 0x10], ax
call fcn.28ca855e0
bswap eax
mov dword [r13 + 0x18], eax
mov rax, qword [rsp + 0x30]
mov rbp, qword [rax + 0x10]
mov eax, ebp
mov ebp, ebp
bswap eax
mov dword [r13 + 0x20], eax
mov eax, dword [rsi + 8]
add rbp, qword [r12]
mov rdx, rax
inc rax
cmp rax, 0xfeff
jbe 0x28caac441
inc edx
bswap edx
mov dword [rbp + 0x14], edx
jmp 0x28caac448
xchg al, ah
mov word [r13 + 0x30], 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 0x28caac472
bswap eax
mov dword [rbp + 0x18], eax
mov word [r13 + 0x32], 0xffff
jmp 0x28caac479
xchg al, ah
mov word [r13 + 0x32], ax
mov r13, qword [rsi]
mov eax, dword [rsi + 8]
lea r14, [r13 + rax*8]
cmp r13, r14
je 0x28caac49f
add rbp, 0x28
mov rcx, qword [r13]
mov rdx, rbp
call method.void_lld::elf::OutputSection::writeHeaderTo_llvm::object.ELFType__llvm::endianness_0__false____llvm::object::ELFType__llvm::endianness_0__false_::Shdr_
add r13, 8
jmp 0x28caac484
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 0x28caac514
mov rcx, qword [r13]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caac502
cmp eax, 4
je 0x28caac502
add r13, 8
jmp 0x28caac4e6
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__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caac4fc
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 0x28caac55e
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caac546
cmp eax, 4
jne 0x28caac54c
add rsi, 8
jmp 0x28caac531
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__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caac546
mov rcx, rbp
call fcn.28ca71ad0
cmp byte [rbx + 0x3fd], 0
jne 0x28caac579
call fcn.28cb3e050
jmp 0x28caac639
cmp byte [rbx + 0x4a3], 0
je 0x28caac56f
mov rax, qword [sym.liblldELF.dll_lld::elf::outputSections]
mov rsi, qword [rax]
mov eax, dword [rax + 8]
lea rbp, [rsi + rax*8]
cmp rbp, rsi
je 0x28caac56f
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28caac5ae
cmp eax, 4
je 0x28caac5ae
add rsi, 8
jmp 0x28caac593
mov rdx, qword [r12]
call method.lld::elf::OutputSection.checkDynRelAddends_unsigned_char_const_
jmp 0x28caac5a8
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 0x28caac61f
mov rcx, qword [rsi]
test byte [rcx + 0x18], 2
jne 0x28caac60d
add rsi, 8
jmp 0x28caac5f9
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__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28caac607
mov rcx, rbp
call fcn.28ca71ad0
jmp 0x28caac639
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rax, qword [rax + 0x40]
test rax, rax
je 0x28caac925
cmp qword [rax + 0x40], 0
je 0x28caac925
cmp dword [rbx + 0x4e8], 4
jne 0x28caac6af
mov rbp, qword [rdi + 8]
mov rsi, qword [rdi]
lea rdi, [rsp + 0xa0]
cmp rbp, rsi
je 0x28caac925
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 0x28caac673
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 0x28caac7e1
jg 0x28caac863
dec ecx
lea rsi, [rsp + 0x248]
lea r9, [rsp + 0xa0]
lea rcx, [rsp + 0x90]
jne 0x28caac77b
xor r10d, r10d
mov qword [rsp + 0xa0], rdx
mov r8, rsi
lea r11, [0x28cb83c20]
mov qword [rsp + 0x248], r10
mov rdx, r9
mov qword [rsp + 0x250], r10
lea r10, [0x28cb83c00]
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 0x28caac859
xor r8d, r8d
mov qword [rsp + 0xa0], rdx
lea r11, [0x28cb83b30]
lea r10, [0x28cb83b00]
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 0x28caac859
lea rsi, [0x28cb83bb0]
xor ecx, ecx
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x260], rsi
lea rsi, [0x28cb83b80]
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 0x28caac8df
lea r12, [rsp + 0x1d0]
mov r8, r13
mov rdx, rbp
mov rcx, r12
call fcn.28ca71c38
cmp dword [rsp + 0x1d0], 0
je 0x28caac8df
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 0x28caac918
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 0x28caac8ee
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 0x28caac974
jmp 0x28caaca7f
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 0x28caaca68
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 0x28caaca7f
call method.void_lld::elf::writeARMCmseImportLib_llvm::object.ELFType__llvm::endianness_0__false_____
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