Ignored vs Assumed Semantics in BDE

BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int) - Assumed

0000000000412830 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)>:
M0000000000000000:	pushq	%rbp	;  1 bytes
M0000000000000001:	pushq	%r15	;  2 bytes
M0000000000000003:	pushq	%r14	;  2 bytes
M0000000000000005:	pushq	%r12	;  2 bytes
M0000000000000007:	pushq	%rbx	;  1 bytes
M0000000000000008:	movl	%edx, %ebx	;  2 bytes
M000000000000000a:	movq	%rsi, %r15	;  3 bytes
M000000000000000d:	movq	%rdi, %r14	;  3 bytes
M0000000000000010:	testl	%edx, %edx	;  2 bytes
M0000000000000012:	js	0x412868 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x38>	;  2 bytes
M0000000000000014:	testl	%ebx, %ebx	;  2 bytes
M0000000000000016:	je	0x412894 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x64>	;  2 bytes
M0000000000000018:	xorl	%ebp, %ebp	;  2 bytes
M000000000000001a:	movq	%r14, %rdi	;  3 bytes
M000000000000001d:	xorl	%esi, %esi	;  2 bytes
M000000000000001f:	callq	0x41a610 <bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >::privateClear(bool)>	;  5 bytes
M0000000000000024:	movq	(%r15), %rsi	;  3 bytes
M0000000000000027:	movl	%ebx, %edx	;  2 bytes
M0000000000000029:	movl	$4444637, %ecx	;  5 bytes
M000000000000002e:	movq	%r14, %rdi	;  3 bytes
M0000000000000031:	callq	0x41a250 <bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >::privateAppend(char const*, unsigned long, char const*)>	;  5 bytes
M0000000000000036:	jmp	0x412899 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x69>	;  2 bytes
M0000000000000038:	movq	(%r15), %r12	;  3 bytes
M000000000000003b:	movl	8(%r15), %eax	;  4 bytes
M000000000000003f:	testl	%eax, %eax	;  2 bytes
M0000000000000041:	js	0x4128a4 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x74>	;  2 bytes
M0000000000000043:	testl	%eax, %eax	;  2 bytes
M0000000000000045:	jle	0x4128b0 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x80>	;  2 bytes
M0000000000000047:	movl	%eax, %eax	;  2 bytes
M0000000000000049:	xorl	%ebx, %ebx	;  2 bytes
M000000000000004b:	nopl	(%rax,%rax)	;  5 bytes
M0000000000000050:	cmpb	$47, (%r12,%rbx)	;  5 bytes
M0000000000000055:	jne	0x412844 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x14>	;  2 bytes
M0000000000000057:	incq	%rbx	;  3 bytes
M000000000000005a:	cmpq	%rbx, %rax	;  3 bytes
M000000000000005d:	jne	0x412880 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x50>	;  2 bytes
M000000000000005f:	movq	%rax, %rbx	;  3 bytes
M0000000000000062:	jmp	0x412844 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x14>	;  2 bytes
M0000000000000064:	movl	$4294967295, %ebp	;  5 bytes
M0000000000000069:	movl	%ebp, %eax	;  2 bytes
M000000000000006b:	popq	%rbx	;  1 bytes
M000000000000006c:	popq	%r12	;  2 bytes
M000000000000006e:	popq	%r14	;  2 bytes
M0000000000000070:	popq	%r15	;  2 bytes
M0000000000000072:	popq	%rbp	;  1 bytes
M0000000000000073:	retq		;  1 bytes
M0000000000000074:	movq	%r12, %rdi	;  3 bytes
M0000000000000077:	callq	0x404a70 <strlen@plt>	;  5 bytes
M000000000000007c:	testl	%eax, %eax	;  2 bytes
M000000000000007e:	jg	0x412877 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x47>	;  2 bytes
M0000000000000080:	xorl	%ebx, %ebx	;  2 bytes
M0000000000000082:	jmp	0x412844 <BloombergLP::bdls::PathUtil::getRoot(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x14>	;  2 bytes
M0000000000000084:	movq	%rax, %rdi	;  3 bytes
M0000000000000087:	callq	0x4096c0 <__clang_call_terminate>	;  5 bytes
M000000000000008c:	nopl	(%rax)	;  4 bytes