Function at 0x14002c4b0
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, 0x118
cmp qword [rsp + 0x198], 0
mov dword [rsp + 0x178], r9d
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
je 0x14008ef55
lea rbp, [rsp + 0xc0]
mov rcx, rbp
call fcn.140031180
mov dword [rsp + 0x98], ebx
test rdi, rdi
je sym.get_location_within_string_cpp_reader__string_concat_db__unsigned_int__cpp_ttype__int__int__int__unsigned_int___clone_cold_
test ebx, ebx
je 0x14002c618
mov rcx, rdi
call sym.cpp_get_options_cpp_reader_
cmp byte [rax + 0x29], 2
je 0x14002c540
lea rbx, str.track_macro_expansion___2
mov rcx, rbp
call method.cpp_substring_ranges.cpp_substring_ranges__
mov rax, rbx
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [0x140111f38]
cmp byte [rax + 0x35], 0
jne 0x14002cb20
lea rax, [rsp + 0x98]
mov dword [rsp + 0x9c], 1
mov qword [rsp + 0xa0], rax
test rsi, rsi
je 0x14002c628
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x9c]
mov edx, ebx
mov rcx, rsi
call method.string_concat_db.get_string_concatenation_unsigned_int__int__unsigned_int_
movsxd r14, dword [rsp + 0x9c]
mov r12, r14
test r14d, r14d
jne 0x14002cc5b
mov eax, dword [rsp + 0x178]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rbp
mov rcx, rdi
mov dword [rsp + 0x28], eax
call sym.cpp_interpret_string_ranges_cpp_reader__cpp_string_const__cpp_string_location_reader__unsigned_long_long__cpp_substring_ranges__cpp_ttype_
mov rbx, rax
nop word cs:[rax + rax]
test rbx, rbx
jne 0x14002c520
mov eax, dword [rsp + 0xc8]
cmp dword [rsp + 0x180], eax
jge 0x14002cb10
cmp dword [rsp + 0x188], eax
jge 0x14002cb30
cmp eax, dword [rsp + 0x190]
jg 0x14002cb40
lea rbx, str.end_idx_out_of_range
jmp 0x14002c520
lea rbx, str.unknown_location
jmp 0x14002c520
mov edx, 0x18
xor ecx, ecx
mov r14d, 1
mov r12d, 1
call sym.xrealloc
mov edx, 0x10
xor ecx, ecx
mov qword [rax], 1
mov rsi, rax
call sym.xrealloc
mov qword [rax], 1
mov r15, rax
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x160], rdi
lea rax, [r13 + r12*4]
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], rax
nop
mov edx, dword [r13]
mov rcx, qword [0x140111f38]
call sym.get_range_from_loc_line_maps__unsigned_int_
mov r8, qword [0x140111f38]
mov r9d, 0x80000000
mov rcx, rax
mov dword [rsp + 0x3c], eax
mov rdx, rax
mov eax, dword [r8 + 0x24]
shr rcx, 0x20
mov dword [rsp + 0x50], ecx
test eax, eax
je 0x14002c6e7
sub eax, 1
cdqe
shl rax, 5
add rax, qword [r8 + 0x18]
mov r9d, dword [rax]
cmp edx, r9d
jb 0x14002ca50
cmp edx, ecx
jne 0x14002cc4a
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x40]
mov r9d, 1
xor r8d, r8d
call sym.expand_location_1_unsigned_int__bool__location_aspect_
mov edx, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
mov r9d, 2
mov rbp, qword [rsp + 0xd0]
mov r12d, dword [rsp + 0xd8]
mov edi, dword [rsp + 0xdc]
call sym.expand_location_1_unsigned_int__bool__location_aspect_
mov ebx, dword [rsp + 0xfc]
cmp rbp, qword [rsp + 0xf0]
jne 0x14002cbb1
cmp r12d, dword [rsp + 0xf8]
jne 0x14002cbc2
cmp edi, ebx
jg 0x14002cbd3
lea rcx, [rsp + 0x80]
mov rdx, rbp
mov r8d, r12d
call sym.location_get_source_line_char_const__int_
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
test rcx, rcx
je 0x14002cbe4
sub ebx, edi
lea r14d, [rbx + 1]
movsxd r9, r14d
test edi, edi
jle 0x14002cbf5
lea eax, [rdi - 1]
movsxd r10, eax
lea r11, [r9 + r10]
cmp rdx, r11
jb 0x14002cc06
cmp eax, edx
jge 0x14008ef85
add eax, r14d
cmp edx, eax
jl 0x14008ef6d
add rcx, r10
mov rdx, r9
call sym.xstrndup
mov ebx, dword [rsi + 4]
mov r9, rax
mov eax, dword [rsi]
lea r10d, [rbx + 1]
and eax, 0x7fffffff
cmp eax, ebx
jne 0x14002c878
cmp byte [rsi + 3], 0
jns 0x14002ca80
mov r11d, 4
mov qword [rsp + 0x68], r9
cmp r10d, r11d
mov dword [rsp + 0x58], r10d
cmovae r11d, r10d
xor ecx, ecx
mov edx, r11d
mov dword [rsp + 0x54], r11d
shl rdx, 4
add rdx, 8
call sym.xrealloc
mov r11d, dword [rsp + 0x54]
mov r10d, dword [rsp + 0x58]
mov rdx, rax
mov r9, qword [rsp + 0x68]
and r11d, 0x7fffffff
test ebx, ebx
mov eax, r11d
mov qword [rdx], rax
je 0x14002c872
lea ecx, [rbx - 1]
mov eax, 8
shl rcx, 4
add rcx, 0x18
nop word [rax + rax]
movdqu xmm0, xmmword [rsi + rax]
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, rcx
jne 0x14002c860
mov dword [rdx + 4], ebx
mov rsi, rdx
shl rbx, 4
mov dword [rsi + 4], r10d
mov edx, dword [rsp + 0x3c]
mov r8d, 1
add rbx, rsi
mov rcx, qword [0x140111f38]
mov qword [rbx + 0x10], r9
lea r9, [rsp + 0xa8]
mov dword [rbx + 8], r14d
call sym.linemap_resolve_location_line_maps__unsigned_int__location_resolution_kind__line_map_ordinary_const_
mov edx, dword [rsp + 0x50]
mov rcx, qword [0x140111f38]
lea r9, [rsp + 0xb0]
mov r8d, 1
call sym.linemap_resolve_location_line_maps__unsigned_int__location_resolution_kind__line_map_ordinary_const_
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x14002cba0
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x14002cba0
mov rcx, qword [rax + 0x10]
cmp rax, rdx
je 0x14002c8fc
cmp qword [rdx + 0x10], rcx
jne 0x14002cc28
cmp rbp, rcx
jne 0x14002cc17
mov rcx, qword [0x140111f38]
mov r9d, edi
mov r8d, r12d
call sym.linemap_position_for_line_and_column_line_maps__line_map_ordinary_const__unsigned_int__unsigned_int_
mov r8, qword [0x140111f38]
lea rcx, [rsp + 0xb8]
mov edx, eax
call method.cpp_string_location_reader.cpp_string_location_reader_unsigned_int__line_maps_
mov ecx, dword [r15]
mov edi, dword [r15 + 4]
and ecx, 0x7fffffff
mov rbx, rdi
lea ebp, [rdi + 1]
cmp ecx, edi
jne 0x14002c9a1
cmp byte [r15 + 3], 0
jns 0x14002cad0
mov r12d, 4
cmp ebp, r12d
cmovae r12d, ebp
xor ecx, ecx
lea edx, [r12 + 1]
and r12d, 0x7fffffff
shl rdx, 3
call sym.xrealloc
mov rcx, rax
mov eax, r12d
mov qword [rcx], rax
xor eax, eax
test edi, edi
je 0x14002c99b
nop word [rax + rax]
mov rdx, qword [r15 + rax*8 + 8]
mov qword [rcx + rax*8 + 8], rdx
add rax, 1
cmp rax, rdi
jne 0x14002c988
mov dword [rcx + 4], ebx
mov r15, rcx
mov rax, qword [rsp + 0xb8]
mov dword [r15 + 4], ebp
add r13, 4
mov qword [r15 + rdi*8 + 8], rax
cmp qword [rsp + 0x60], r13
jne 0x14002c6a0
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x160]
mov rbp, qword [rsp + 0x70]
mov qword [rsp + 0x20], rbp
lea r8, [r15 + 8]
lea rdx, [rsi + 8]
mov r9, r14
mov eax, dword [rsp + 0x178]
mov rcx, rdi
mov dword [rsp + 0x28], eax
call sym.cpp_interpret_string_ranges_cpp_reader__cpp_string_const__cpp_string_location_reader__unsigned_long_long__cpp_substring_ranges__cpp_ttype_
mov rbx, rax
nop dword [rax]
cmp byte [r15 + 3], 0
jns 0x14002cb80
mov dword [r15 + 4], 0
mov eax, dword [rsi + 4]
test eax, eax
je 0x14002ca36
xor edi, edi
mov rax, rdi
add rdi, 1
shl rax, 4
mov rcx, qword [rsi + rax + 0x10]
call sym.free
cmp edi, dword [rsi + 4]
jb 0x14002ca1c
cmp byte [rsi + 3], 0
jns 0x14002cb90
mov dword [rsi + 4], 0
jmp 0x14002c5d0
cmp edx, 0x5fffffff
ja 0x14002cc39
cmp ecx, 0x5fffffff
jbe 0x14002c6f8
mov rbp, qword [rsp + 0x70]
lea rbx, str.range_ends_after_LINE_MAP_MAX_LOCATION_WITH_COLS
jmp 0x14002ca00
mov edx, r10d
mov ecx, ebx
mov qword [rsp + 0x58], r9
call method.vec_prefix.calculate_allocation_1_unsigned_int__unsigned_int_
mov rcx, rsi
mov ebx, dword [rsi + 4]
mov edx, eax
mov dword [rsp + 0x54], edx
shl rdx, 4
add rdx, 8
call sym.xrealloc
mov r10d, dword [rsp + 0x54]
mov r9, qword [rsp + 0x58]
mov dword [rax + 4], ebx
mov rsi, rax
and r10d, 0x7fffffff
mov dword [rax], r10d
lea r10d, [rbx + 1]
jmp 0x14002c878
mov edx, ebp
call method.vec_prefix.calculate_allocation_1_unsigned_int__unsigned_int_
mov ebx, dword [r15 + 4]
mov rcx, r15
mov edi, eax
mov eax, eax
lea rdx, [rax*8 + 8]
and edi, 0x7fffffff
lea ebp, [rbx + 1]
call sym.xrealloc
mov dword [rax], edi
mov r15, rax
mov edi, ebx
mov dword [rax + 4], ebx
jmp 0x14002c9a1
lea rbx, str.caret_idx_out_of_range
jmp 0x14002c520
lea rbx, str.seen_line_directive
jmp 0x14002c520
lea rbx, str.start_idx_out_of_range
jmp 0x14002c520
mov rax, qword [rsp + 0xc0]
movsxd r8, dword [rsp + 0x190]
movsxd rdx, dword [rsp + 0x188]
movsxd rcx, dword [rsp + 0x180]
mov r8d, dword [rax + r8*8 + 4]
mov edx, dword [rax + rdx*8]
mov ecx, dword [rax + rcx*8]
call sym.make_location_unsigned_int__unsigned_int__unsigned_int_
mov rsi, qword [rsp + 0x198]
mov dword [rsi], eax
jmp 0x14002c520
mov rcx, r15
call sym.free
jmp 0x14002ca13
mov rcx, rsi
call sym.free
jmp 0x14002c5d0
mov rbp, qword [rsp + 0x70]
lea rbx, str.failed_to_get_ordinary_maps
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.range_endpoints_are_in_different_files
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.range_endpoints_are_on_different_lines
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.range_endpoints_are_reversed
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.unable_to_read_source_line
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.zero_start_column
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.line_is_not_wide_enough
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.mismatching_file_after_resolving_linemap
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.start_and_finish_are_spelled_in_different_ordinary_maps
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.range_starts_after_LINE_MAP_MAX_LOCATION_WITH_COLS
jmp 0x14002ca00
mov rbp, qword [rsp + 0x70]
lea rbx, str.macro_expansion
jmp 0x14002ca00
mov r15d, r14d
xor ecx, ecx
mov r13d, r14d
mov rdx, r15
and r13d, 0x7fffffff
shl rdx, 4
add rdx, 8
call sym.xrealloc
lea rdx, [r15*8 + 8]
xor ecx, ecx
mov qword [rax], r13
mov rsi, rax
call sym.xrealloc
mov qword [rax], r13
mov r15, rax
test r14d, r14d
jle 0x14002c9d3
jmp 0x14002c660
lea r8, str.get_location_within_string
mov edx, 0x6af
lea rcx, str._usr_src_debug_gcc_cross_canadian_microblazeel_12.2.0_r0_gcc_input.cc
call sym.fancy_abort_char_const__int__char_const_
lea r8, str.subspan
mov edx, 0x63
lea rcx, str._usr_src_debug_gcc_cross_canadian_microblazeel_12.2.0_r0_gcc_input.h
call sym.fancy_abort_char_const__int__char_const_
lea r8, str.subspan
mov edx, 0x61
lea rcx, str._usr_src_debug_gcc_cross_canadian_microblazeel_12.2.0_r0_gcc_input.h
call sym.fancy_abort_char_const__int__char_const_
nop