Function at 0x28cab2450
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 0x28cab2a4d
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 0x28cab256f
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.28cbb7600
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.28cbb7600
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.28cbb7600
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 0x28cab2723
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.28cbb7600
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 0x28cab275b
mov rcx, qword [rbp]
call fcn.28cb4a160
test rax, rax
je 0x28cab2755
lea rcx, [rax + 8]
call fcn.28cab15a0
add rbp, 8
jmp 0x28cab2739
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rbp, qword [rax + 0x48]
cmp qword [rbp + 0x40], 0
je 0x28cab2822
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 0x28cab290d
mov rbp, qword [sym.liblldELF.dll_lld::elf::ElfSym::riscvGlobalPointer]
xor r14d, r14d
cmp byte [r12 + 0x479], 0
mov qword [rbp], r14
jne 0x28cab29fc
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 0x28cab2893
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 0x28cab290d
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 0x28cab290d
cmp byte [rax + 0x16], 1
jne 0x28cab290d
mov qword [rbp], rax
mov ax, word [r12 + 0x4f2]
cmp ax, 0x3e
je 0x28cab2926
cmp ax, 3
jne 0x28cab29fc
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 0x28cab29fc
cmp byte [rax + 0x16], 4
jne 0x28cab29fc
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 0x28cab2a48
mov rcx, qword [rbx + 0x68]
call fcn.28ca8bc90
add rbx, 0xc0
jmp 0x28cab2a31
call fcn.28cb3e050
call fcn.28ca940b0
cmp byte [r12 + 0x560], 0
jne 0x28cab2a7b
call fcn.28ca92e40
cmp byte [r12 + 0x560], 0
je 0x28cab2b5f
call fcn.28cab0630
jmp 0x28cab2b5f
cmp dword [r12 + 0x4bc], 3
je 0x28cab2a5d
cmp byte [r12 + 0x425], 0
jne 0x28cab2a5d
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 0x28cab2a5d
mov rbp, qword [rsi]
mov rdi, qword [rbp + 0x10]
mov eax, dword [rbp + 0x18]
lea r14, [rdi + rax*8]
cmp r14, rdi
je 0x28cab2b56
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 0x28cab2ad8
add rdi, 8
jmp 0x28cab2abc
mov edx, dword [rax + 4]
cmp edx, 9
jne 0x28cab2b13
mov rbx, qword [rax + 0x58]
mov r15, qword [rax + 0x50]
and rbx, 0xfffffffffffffff8
add rbx, r15
cmp rbx, r15
je 0x28cab2ad2
mov edx, dword [r15 + 4]
mov rcx, rbp
shr edx, 8
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_1__false___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28cab2b0d
or byte [rax + 0x18], 4
add r15, 8
jmp 0x28cab2aef
cmp edx, 4
jne 0x28cab2ad2
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 0x28cab2ad2
mov edx, dword [r15 + 4]
mov rcx, rbp
shr edx, 8
call method.lld::elf::ObjFile_llvm::object.ELFType__llvm::endianness_1__false___::getSymbol_unsigned_int__const
cmp byte [rax + 0x14], 0xf
ja 0x28cab2b50
or byte [rax + 0x18], 4
add r15, 0xc
jmp 0x28cab2b32
add rsi, 8
jmp 0x28cab2aa9
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 0x28cab3018
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_1__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 0x28cab2bfe
mov rcx, qword [rbx + 0x90]
test rcx, rcx
jne 0x28cab2c16
jmp 0x28cab2c1f
mov rax, qword [rcx]
call qword [rax + 0x20]
test al, al
je 0x28cab2bf0
mov rcx, qword [rbx + 0x88]
call method.lld::elf::PltSection.addSymbols__
jmp 0x28cab2bf0
cmp dword [rcx + 0xb0], 0
jne 0x28cab2c2e
mov eax, dword [r12 + 0x4d8]
cmp eax, 2
jne 0x28cab2c3f
jmp 0x28cab2c35
call method.lld::elf::IpltSection.addSymbols__
jmp 0x28cab2c1f
call fcn.28cb3e050
jmp 0x28cab3018
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 0x28cab2c35
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 0x28cab2d08
mov rcx, rsi
call fcn.28cb51a60
test al, al
jne 0x28cab2d73
lea rbx, [rsi + 0x10]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28cab2d76
lea rbx, [rsi + 0x20]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28cab2d76
lea rbx, [rsi + 0x30]
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28cab2d76
add rsi, 0x40
dec rdi
jmp 0x28cab2cb2
mov rax, qword [rsp + 0x48]
sub rax, rsi
cmp rax, 0x20
je 0x28cab2d39
cmp rax, 0x30
je 0x28cab2d27
cmp rax, 0x10
jne 0x28cab2d58
mov rbx, rsi
jmp 0x28cab2d4c
mov rcx, rsi
call fcn.28cb51a60
lea rbx, [rsi + 0x10]
test al, al
je 0x28cab2d3c
jmp 0x28cab2d73
mov rbx, rsi
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28cab2d76
add rbx, 0x10
mov rcx, rbx
call fcn.28cb51a60
test al, al
jne 0x28cab2d76
mov rbx, qword [rbp + 0x128]
mov eax, dword [rbp + 0x130]
lea rax, [rbx + rax*8]
mov qword [rsp + 0x88], rax
jmp 0x28cab2d93
mov rbx, rsi
cmp qword [rsp + 0x48], rbx
je 0x28cab2d58
add r13, 8
jmp 0x28cab2c86
mov rsi, qword [rbx]
test byte [rsi + 0x19], 0x40
je 0x28cab2d9f
add rbx, 8
cmp qword [rsp + 0x88], rbx
jne 0x28cab2d86
jmp 0x28cab2d7d
mov al, byte [rsi + 0x16]
cmp al, 4
jne 0x28cab2db2
mov al, byte [rsi + 0x14]
and eax, 0xfffffff0
cmp al, 0x20
je 0x28cab2d8f
jmp 0x28cab2dbb
dec al
jne 0x28cab2d8f
jmp 0x28cab2e8e
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 0x28cab300e
mov rcx, rsi
call method.lld::elf::Symbol.computeBinding___const
test al, al
jne 0x28cab2d8f
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 0x28cab2d8f
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 0x28cab3127
mov rbx, qword [rsi]
test byte [rbx + 0x18], 2
jne 0x28cab307a
add rsi, 8
jmp 0x28cab3062
mov rcx, rbx
call method.lld::elf.includeInSymtab_lld::elf::Symbol_const_
test al, al
je 0x28cab3074
cmp byte [r12 + 0x447], 0
jne 0x28cab30a9
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 0x28cab30c3
mov rcx, rbx
call method.lld::elf::Symbol.includeInDynsym___const
test al, al
je 0x28cab3074
jmp 0x28cab30cd
mov rdx, rbx
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
jmp 0x28cab30b5
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 0x28cab3074
cmp byte [rax + 0x120], 0
je 0x28cab3074
cmp byte [rbx + 0x16], 4
je 0x28cab3074
mov rcx, rbx
call method.lld::elf.addVerneed_lld::elf::Symbol_
jmp 0x28cab3074
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 0x28cab3209
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 0x28cab3197
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 0x28cab317c
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 0x28cab31f5
cmp qword [rbx], 0
je 0x28cab31ef
mov eax, dword [rbx + 0x38]
sub eax, 2
cmp eax, 1
ja 0x28cab31ef
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 0x28cab31ef
mov rcx, qword [rsi + 0x58]
mov rdx, qword [rbx]
call method.lld::elf::SymbolTableBaseSection.addSymbol_lld::elf::Symbol_
add rbx, 0x40
jmp 0x28cab31b3
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 0x28cab3152
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::in]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x28cab3223
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 0x28cab3295
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 0x28cab36b0
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 0x28cab32cf
mov rcx, qword [rbx]
call fcn.28cb4a160
mov rsi, rax
test rax, rax
je 0x28cab32c9
lea rcx, [rax + 8]
call fcn.28ca889c0
mov dword [rsi + 0x3c], eax
add rbx, 8
jmp 0x28cab32a8
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
je 0x28cab32e5
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.processInsertCommands__
jmp 0x28cab33de
mov rsi, qword [rax + 0x30]
mov eax, dword [rax + 0x38]
shl rax, 3
lea rbx, [rsi + rax]
sar rax, 5
test rax, rax
je 0x28cab333b
mov rdx, qword [rsi]
cmp dword [rdx], 1
jne 0x28cab3375
mov rdx, qword [rsi + 8]
cmp dword [rdx], 1
je 0x28cab3314
add rsi, 8
jmp 0x28cab3375
mov rdx, qword [rsi + 0x10]
cmp dword [rdx], 1
je 0x28cab3323
add rsi, 0x10
jmp 0x28cab3375
mov rdx, qword [rsi + 0x18]
cmp dword [rdx], 1
je 0x28cab3332
add rsi, 0x18
jmp 0x28cab3375
add rsi, 0x20
dec rax
jmp 0x28cab32f8
mov rax, rbx
sub rax, rsi
cmp rax, 0x10
je 0x28cab3361
cmp rax, 0x18
je 0x28cab3355
cmp rax, 8
je 0x28cab336d
jmp 0x28cab33c3
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28cab3375
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
jne 0x28cab3375
add rsi, 8
mov rax, qword [rsi]
cmp dword [rax], 1
je 0x28cab33c3
cmp rbx, rsi
je 0x28cab33c3
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.28cbb04a0
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 0x28cab32d8
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustOutputSections__
mov rax, qword [r14]
cmp byte [rax + 0x50], 0
jne 0x28cab33fc
mov rcx, qword [r14]
call method.lld::elf::LinkerScript.adjustSectionsAfterSorting__
jmp 0x28cab3276
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 0x28cab346d
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28cab34b8
mov rcx, qword [rbx + 8]
call fcn.28cb51620
test al, al
je 0x28cab343e
add rbx, 8
jmp 0x28cab34b8
mov rcx, qword [rbx + 0x10]
call fcn.28cb51620
test al, al
je 0x28cab3451
add rbx, 0x10
jmp 0x28cab34b8
mov rcx, qword [rbx + 0x18]
call fcn.28cb51620
test al, al
je 0x28cab3464
add rbx, 0x18
jmp 0x28cab34b8
add rbx, 0x20
dec r8
jmp 0x28cab3416
mov rax, rdi
sub rax, rbx
cmp rax, 0x10
je 0x28cab349a
cmp rax, 0x18
je 0x28cab348a
cmp rax, 8
je 0x28cab34aa
mov rbx, rdi
jmp 0x28cab34b8
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28cab34b8
add rbx, 8
mov rcx, qword [rbx]
call fcn.28cb51620
test al, al
jne 0x28cab34b8
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 0x28cab3521
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28cab3567
mov rcx, qword [rsi + 8]
call fcn.28cb51600
test al, al
je 0x28cab34f2
add rsi, 8
jmp 0x28cab3567
mov rcx, qword [rsi + 0x10]
call fcn.28cb51600
test al, al
je 0x28cab3505
add rsi, 0x10
jmp 0x28cab3567
mov rcx, qword [rsi + 0x18]
call fcn.28cb51600
test al, al
je 0x28cab3518
add rsi, 0x18
jmp 0x28cab3567
add rsi, 0x20
dec r13
jmp 0x28cab34ca
mov rax, rdi
sub rax, rsi
cmp rax, 0x10
je 0x28cab354b
cmp rax, 0x18
je 0x28cab353b
cmp rax, 8
je 0x28cab355b
jmp 0x28cab357a
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28cab3567
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
jne 0x28cab3567
add rsi, 8
mov rcx, qword [rsi]
call fcn.28cb51600
test al, al
je 0x28cab357a
cmp rdi, rsi
je 0x28cab35a3
mov rax, qword [rsi]
cmp dword [rax], 0
jne 0x28cab35a3
add rsi, 8
jmp 0x28cab35a3
mov rsi, rdi
jmp 0x28cab35a3
add r13, 0x20
dec rdx
test rdx, rdx
jle 0x28cab3600
mov r8, qword [r13]
cmp eax, dword [r8 + 0x3c]
je 0x28cab35d0
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 0x28cab33ef
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 0x28cab3586
mov r8, qword [r13 + 8]
cmp eax, dword [r8 + 0x3c]
je 0x28cab35e0
add r13, 8
jmp 0x28cab3595
mov r8, qword [r13 + 0x10]
cmp eax, dword [r8 + 0x3c]
je 0x28cab35f0
add r13, 0x10
jmp 0x28cab3595
mov r8, qword [r13 + 0x18]
cmp eax, dword [r8 + 0x3c]
je 0x28cab357f
add r13, 0x18
jmp 0x28cab3595
mov rdx, rdi
sub rdx, r13
cmp rdx, 0x10
je 0x28cab3631
cmp rdx, 0x18
je 0x28cab3620
cmp rdx, 8
je 0x28cab3642
mov r13, rdi
jmp 0x28cab3595
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28cab3595
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
jne 0x28cab3595
add r13, 8
mov rdx, qword [r13]
cmp eax, dword [rdx + 0x3c]
cmove r13, rdi
jmp 0x28cab3595
mov rcx, qword [rdi]
call fcn.28cb4a160
mov r13, rax
test rax, rax
je 0x28cab36ac
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 0x28cab3657
mov r15, qword [sym.liblldELF.dll_lld::elf::outputSections]
lea rdi, [0x28cb82f60]
lea r13, [0x28cb82f30]
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 0x28cab375c
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 0x28cab3756
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 0x28cab36e4
cmp word [r12 + 0x4f2], 0xa4
jne 0x28cab3836
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 0x28cab3836
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 0x28cab38b5
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 0x28cab40a9
cmp byte [r12 + 0x43a], 0
jne 0x28cab385a
mov rax, qword [rbp + 8]
mov rbx, qword [rbp]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], rbx
je 0x28cab405d
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
lea rcx, [rsp + 0x188]
mov rdx, qword [rax]
cmp dword [rdx + 0x48], 0
je 0x28cab38fa
call method.lld::elf::LinkerScript.createPhdrs__
jmp 0x28cab3fb0
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 0x28cab3956
xor esi, esi
jmp 0x28cab3a45
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x43b], 0
jne 0x28cab394f
cmp r15d, 1
mov r8d, 4
mov edx, 6
lea rbp, [rsp + 0x168]
mov rcx, rbp
jne 0x28cab3996
call fcn.28cbb75b0
mov rcx, rax
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rdx, qword [rax]
jmp 0x28cab39a6
call fcn.28cbb75b0
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 0x28cab3a05
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
mov edx, 3
mov rcx, rbp
call fcn.28cbb75b0
mov rcx, rax
mov rdx, rsi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
cmp r15d, 1
jne 0x28cab394f
mov r8d, dword [rsp + 0x40]
mov edx, 1
mov rcx, rbp
call fcn.28cbb75b0
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 0x28cab3b93
mov r12, qword [rdi]
movzx eax, byte [r12 + 1]
cmp r15d, eax
jne 0x28cab3b8a
mov rcx, r12
call fcn.28ca7f5b0
test al, al
je 0x28cab3b8a
call fcn.28ca88e80
mov ebp, eax
test al, al
je 0x28cab3b7f
test r14, r14
jne 0x28cab3adf
mov rcx, qword [rsp + 0x38]
mov rdx, r12
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28cab3b7a
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 0x28cab3b8a
test r13b, r13b
je 0x28cab3b8a
mov r14, r12
xor r13d, r13d
add rdi, 8
jmp 0x28cab3a8c
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 0x28cab3ce6
mov rdi, qword [rbp]
mov rcx, rdi
call fcn.28ca7f5b0
test al, al
je 0x28cab3cdd
movzx edx, byte [rdi + 1]
mov eax, edx
cmp r15d, edx
je 0x28cab3c2d
cmp r15d, 1
jne 0x28cab3cdd
inc al
jne 0x28cab3cdd
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.28cbb75b0
mov rcx, rax
mov rdx, rdi
jmp 0x28cab3cd8
call method.lld::elf::OutputSection.getPhdrFlags___const
mov ecx, eax
call fcn.28ca85180
mov r12, rax
xor eax, eax
test rsi, rsi
je 0x28cab3c5c
cmp qword [rdi + 0xc8], 0
jne 0x28cab3c5c
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 0x28cab3cb8
mov rdx, qword [rsp + 0x40]
cmp r12, rdx
jne 0x28cab3cb8
mov rdx, qword [rsi + 0x38]
mov rdx, qword [rdx + 0x68]
cmp qword [rdi + 0x68], rdx
jne 0x28cab3cb8
test al, al
jne 0x28cab3c98
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::programHeaders]
mov rax, qword [rax]
cmp qword [rsi + 0x40], rax
jne 0x28cab3cb8
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
jne 0x28cab3cd2
cmp dword [rdi + 4], 8
je 0x28cab3cd2
mov rax, qword [rsi + 0x40]
cmp dword [rax + 4], 8
jne 0x28cab3cd2
mov rcx, qword [rsp + 0x58]
mov r8d, r12d
mov edx, 1
call fcn.28cbb75b0
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 0x28cab3bc5
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 0x28cab3d4a
mov rdx, qword [r9]
movzx eax, byte [rdx + 1]
cmp r15d, eax
jne 0x28cab3d44
test byte [rdx + 0x19], 4
je 0x28cab3d44
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
add r9, 8
jmp 0x28cab3d28
cmp qword [rcx + 0x38], 0
jne 0x28cab3d60
mov rax, qword [rbx + 0x48]
mov rdi, qword [rax + 0x40]
test rdi, rdi
jne 0x28cab3d75
jmp 0x28cab3d9d
lea rax, [rsp + 0x188]
mov rdx, rcx
mov rcx, rax
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28cab3d51
mov rcx, rdi
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 2
call fcn.28cbb75b0
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 0x28cab3db8
mov rdx, qword [rbx + 0x68]
cmp dword [rdx + 0xb0], 0
jne 0x28cab3dcc
jmp 0x28cab3e0f
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x188]
call method.llvm::SmallVectorTemplateBase_lld::elf::PhdrEntry__true_.push_back_lld::elf::PhdrEntry_
jmp 0x28cab3da9
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x28cab3e0f
cmp qword [rdx + 0x40], 0
je 0x28cab3e0f
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x28cab3e0f
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x6474e550
call fcn.28cbb75b0
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 0x28cab3e71
mov rcx, rax
call method.lld::elf::OutputSection.getPhdrFlags___const
mov r8d, eax
lea rcx, [rsp + 0x168]
mov edx, 0x65a3dbe6
call fcn.28cbb75b0
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 0x28cab3eab
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.28cbb75b0
mov qword [rax + 0x10], r12
cmp byte [rdi + 0x4bb], 0
jne 0x28cab3ee8
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 0x28cab3f02
jmp 0x28cab3f25
lea rcx, [rsp + 0x168]
mov r8d, 1
mov edx, 0x65a3dbe7
call fcn.28cbb75b0
jmp 0x28cab3eb4
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 0x6474e553
call fcn.28cbb75b0
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 0x28cab3fb0
mov rdi, qword [rsi]
movzx eax, byte [rdi + 1]
cmp r15d, eax
jne 0x28cab3f92
cmp dword [rdi + 4], 7
jne 0x28cab3f90
test byte [rdi + 0x18], 2
je 0x28cab3f90
test rcx, rcx
je 0x28cab3f6b
cmp qword [rdi + 0xc8], 0
jne 0x28cab3f6b
mov rax, qword [rcx + 0x40]
mov edx, dword [rdi + 0x20]
cmp dword [rax + 0x20], edx
je 0x28cab3f86
lea rcx, [rsp + 0x168]
mov r8d, 4
mov edx, 4
call fcn.28cbb75b0
mov rcx, rax
mov rdx, rdi
call method.lld::elf::PhdrEntry.add_lld::elf::OutputSection_
jmp 0x28cab3f92
xor ecx, ecx
add rsi, 8
jmp 0x28cab3f33
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 0x28cab3ff0
mov r8d, 0x70000001
mov edx, 0x70000001
mov rcx, rbx
call fcn.28cab0420
cmp word [rsi + 0x4f2], 8
jne 0x28cab4033
mov r8d, 0x70000000
mov edx, 0x70000006
mov rcx, rbx
call fcn.28cab0420
mov r8d, 0x70000002
mov edx, 0x7000000d
mov rcx, rbx
call fcn.28cab0420
mov r8d, 0x70000003
mov edx, 0x7000002a
mov rcx, rbx
call fcn.28cab0420
cmp word [rsi + 0x4f2], 0xf3
jne 0x28cab4051
mov r8d, 0x70000003
mov edx, 0x70000003
mov rcx, rbx
call fcn.28cab0420
add rbx, 0xc0
jmp 0x28cab38cd
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 0x28cab385a
mov rdx, qword [rax]
cmp dword [rdx + 0x2c], 7
jne 0x28cab40a3
mov qword [r8], rdx
add rax, 8
jmp 0x28cab408e
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 0x28cab4200
mov rcx, qword [rsi + 0x98]
test rcx, rcx
jne 0x28cab4173
mov rcx, qword [rsi + 0xa0]
test rcx, rcx
jne 0x28cab4192
jmp 0x28cab41a3
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 0x28cab4165
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 0x28cab4150
call fcn.28cb3e050
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rax, qword [rax]
cmp byte [rax + 0x50], 0
je 0x28cab4234
call fcn.28cab1af0
call fcn.28ca716d8
mov rsi, qword [sym.liblldELF.dll_lld::elf::outputSections]
test rax, rax
jne 0x28cab44ce
jmp 0x28cab4419
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rax + 0x447], 0
jne 0x28cab4215
mov r12, qword [rdi + 8]
mov rdi, qword [rdi]
lea r13, [0x28cb83340]
lea r14, [0x28cb83310]
cmp rdi, r12
je 0x28cab4215
mov rsi, qword [rdi + 0x28]
mov eax, dword [rdi + 0x30]
xor r9d, r9d
lea r15, [rsi + rax*8]
cmp rsi, r15
je 0x28cab440d
mov rbp, qword [rsi]
cmp dword [rbp + 0x2c], 1
jne 0x28cab4404
mov r8, qword [rbp + 0x38]
test r8, r8
je 0x28cab4404
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 0x28cab4401
mov rax, qword [sym.liblldELF.dll_lld::elf::config]
lea rdx, [r8 + 0x78]
mov eax, dword [rax + 0x4ec]
cmp eax, 2
je 0x28cab432e
dec eax
jne 0x28cab4324
test r9, r9
je 0x28cab4324
mov eax, dword [r9 + 0x30]
xor eax, dword [rbp + 0x30]
test al, 1
jne 0x28cab432e
cmp dword [r8 + 4], 0x6fff4c06
jne 0x28cab435b
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83250]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83230]
jmp 0x28cab43e5
mov rax, qword [sym.liblldELF.dll_lld::elf::Out::tlsPhdr]
mov rax, qword [rax]
test rax, rax
je 0x28cab43bd
mov rcx, qword [rbp + 0x38]
cmp qword [rax + 0x38], rcx
jne 0x28cab43bd
xor eax, eax
lea rcx, [rsp + 0x248]
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb83290]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb83270]
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 0x28cab43fc
xor eax, eax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rax
lea rax, [0x28cb832e0]
mov qword [rsp + 0x260], rax
lea rax, [0x28cb832c0]
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 0x28cab426c
add rdi, 0xc0
jmp 0x28cab4259
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 0x28cab447c
call fcn.28cab16a0
mov rbx, qword [rsi]
mov eax, dword [rsi + 8]
lea rbp, [rbx + rax*8]
cmp rbp, rbx
je 0x28cab4499
mov rcx, qword [rbx]
add rbx, 8
call method.lld::elf::OutputSection.finalize__
jmp 0x28cab4486
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 0x28cab44ce
cmp byte [rdi + 0x562], 0
jne 0x28cab44ce
cmp byte [rdi + 0x3f1], 0
je 0x28cab44ce
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 0x28cab45d3
cmp rdi, rbx
je 0x28cab45e6
mov rcx, qword [rbx]
add rbx, 8
call method.void_lld::elf::OutputSection::maybeCompress_llvm::object.ELFType__llvm::endianness_1__false_____
jmp 0x28cab45d3
mov rax, qword [sym.liblldELF.dll_lld::elf::script]
mov rcx, qword [rax]
cmp byte [rcx + 0x50], 0
je 0x28cab4609
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 0x28cab462e
lea rcx, [rbx + 0x28]
add rbx, 0xc0
call fcn.28ca8c070
jmp 0x28cab4617
mov rbx, qword [sym.liblldELF.dll_lld::elf::config]
cmp byte [rbx + 0x43a], 0
jne 0x28cab464d
mov rcx, qword [rsp + 0x30]
call fcn.28cab07e0
jmp 0x28cab46d8
mov rbp, qword [rsi]
mov eax, dword [rsi + 8]
or r12, 0xffffffffffffffff
lea r15, [rbp + rax*8]
mov r14, rbp
cmp r15, r14
je 0x28cab4689
mov r13, qword [r14]
mov rcx, r13
call fcn.28cbb76c0
test al, al
je 0x28cab4683
call method.lld::elf::OutputSection.getLMA___const
cmp r12, rax
mov qword [r13 + 0x50], rax
cmova r12, rax
add r14, 8
jmp 0x28cab465f
mov rax, qword [rsp + 0x30]
xor r13d, r13d
mov qword [rax + 8], r13
cmp r15, rbp
je 0x28cab46d8
mov rdx, qword [rbp]
mov rcx, rdx
call fcn.28cbb76c0
test al, al
je 0x28cab46d2
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 0x28cab4695
mov r12, qword [rdi + 8]
mov rbp, qword [rdi]
cmp rbp, r12
je 0x28cab46f5
mov rcx, rbp
add rbp, 0xc0
call fcn.28cab51e0
jmp 0x28cab46df
call method.lld::elf.writeMapAndCref__
cmp byte [rbx + 0x444], 0
je 0x28cab471d
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 0x28cab472b
call fcn.28caafc70
call fcn.28ca716d8
test rax, rax
jne 0x28cab51cc
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 0x28cab48e2
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 0x28cab48a5
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 0x28cab4856
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 0x28cab4a60
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 0x28cab491d
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 0x28cab4a2e
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 0x28cab4a58
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 0x28cab4aba
jmp 0x28cab517b
cmp byte [rbx + 0x43a], 0
jne 0x28cab4cd1
cmp dword [rbx + 0x4ec], 0
je 0x28cab4ad5
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_1__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_1__false____unsigned_char__lld::elf::Partition_
call fcn.28ca7dff0
mov r13, qword [r12]
mov word [r13 + 0x10], ax
call fcn.28ca855e0
mov dword [r13 + 0x18], eax
mov rax, qword [rsp + 0x30]
mov rbp, qword [rax + 0x10]
mov dword [r13 + 0x20], ebp
mov eax, dword [rsi + 8]
mov ebp, ebp
add rbp, qword [r12]
mov rdx, rax
inc rax
cmp rax, 0xfeff
jbe 0x28cab4b43
inc edx
mov dword [rbp + 0x14], edx
jmp 0x28cab4b48
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 0x28cab4b70
mov dword [rbp + 0x18], eax
mov word [r13 + 0x32], 0xffff
jmp 0x28cab4b75
mov word [r13 + 0x32], ax
mov r13, qword [rsi]
mov eax, dword [rsi + 8]
lea r14, [r13 + rax*8]
cmp r13, r14
je 0x28cab4b9b
add rbp, 0x28
mov rcx, qword [r13]
mov rdx, rbp
call method.void_lld::elf::OutputSection::writeHeaderTo_llvm::object.ELFType__llvm::endianness_1__false____llvm::object::ELFType__llvm::endianness_1__false_::Shdr_
add r13, 8
jmp 0x28cab4b80
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 0x28cab4c10
mov rcx, qword [r13]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28cab4bfe
cmp eax, 4
je 0x28cab4bfe
add r13, 8
jmp 0x28cab4be2
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r12]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_1__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28cab4bf8
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 0x28cab4c5a
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28cab4c42
cmp eax, 4
jne 0x28cab4c48
add rsi, 8
jmp 0x28cab4c2d
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r12]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_1__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28cab4c42
mov rcx, rbp
call fcn.28ca71ad0
cmp byte [rbx + 0x3fd], 0
jne 0x28cab4c75
call fcn.28cb3e050
jmp 0x28cab4d35
cmp byte [rbx + 0x4a3], 0
je 0x28cab4c6b
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 0x28cab4c6b
mov rcx, qword [rsi]
mov eax, dword [rcx + 4]
cmp eax, 9
je 0x28cab4caa
cmp eax, 4
je 0x28cab4caa
add rsi, 8
jmp 0x28cab4c8f
mov rdx, qword [r12]
call method.lld::elf::OutputSection.checkDynRelAddends_unsigned_char_const_
jmp 0x28cab4ca4
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 0x28cab4d1b
mov rcx, qword [rsi]
test byte [rcx + 0x18], 2
jne 0x28cab4d09
add rsi, 8
jmp 0x28cab4cf5
mov rdx, qword [rcx + 0x50]
mov r8, rbp
add rdx, qword [r13]
call method.void_lld::elf::OutputSection::writeTo_llvm::object.ELFType__llvm::endianness_1__false____unsigned_char__llvm::parallel::TaskGroup_
jmp 0x28cab4d03
mov rcx, rbp
call fcn.28ca71ad0
jmp 0x28cab4d35
mov rax, qword [sym.liblldELF.dll_lld::elf::mainPart]
mov rax, qword [rax]
mov rax, qword [rax + 0x40]
test rax, rax
je 0x28cab5021
cmp qword [rax + 0x40], 0
je 0x28cab5021
cmp dword [rbx + 0x4e8], 4
jne 0x28cab4dab
mov rbp, qword [rdi + 8]
mov rsi, qword [rdi]
lea rdi, [rsp + 0xa0]
cmp rbp, rsi
je 0x28cab5021
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 0x28cab4d6f
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 0x28cab4edd
jg 0x28cab4f5f
dec ecx
lea rsi, [rsp + 0x248]
lea r9, [rsp + 0xa0]
lea rcx, [rsp + 0x90]
jne 0x28cab4e77
xor r10d, r10d
mov qword [rsp + 0xa0], rdx
mov r8, rsi
lea r11, [0x28cb83e80]
mov qword [rsp + 0x248], r10
mov rdx, r9
mov qword [rsp + 0x250], r10
lea r10, [0x28cb83e60]
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 0x28cab4f55
xor r8d, r8d
mov qword [rsp + 0xa0], rdx
lea r11, [0x28cb83d90]
lea r10, [0x28cb83d60]
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 0x28cab4f55
lea rsi, [0x28cb83e10]
xor ecx, ecx
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x260], rsi
lea rsi, [0x28cb83de0]
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 0x28cab4fdb
lea r12, [rsp + 0x1d0]
mov r8, r13
mov rdx, rbp
mov rcx, r12
call fcn.28ca71c38
cmp dword [rsp + 0x1d0], 0
je 0x28cab4fdb
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 0x28cab5014
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 0x28cab4fea
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 0x28cab5070
jmp 0x28cab517b
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 0x28cab5164
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 0x28cab517b
call method.void_lld::elf::writeARMCmseImportLib_llvm::object.ELFType__llvm::endianness_1__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