Ignored vs Assumed Semantics in BDE

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

0000000000412410 <BloombergLP::bdls::PathUtil::getLeaf(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	%r13	;  2 bytes
M0000000000000007:	pushq	%r12	;  2 bytes
M0000000000000009:	pushq	%rbx	;  1 bytes
M000000000000000a:	pushq	%rax	;  1 bytes
M000000000000000b:	movl	%edx, %r13d	;  3 bytes
M000000000000000e:	movq	%rsi, %r15	;  3 bytes
M0000000000000011:	movq	%rdi, %rdx	;  3 bytes
M0000000000000014:	movq	(%rsi), %r12	;  3 bytes
M0000000000000017:	movq	8(%rsi), %rbx	;  4 bytes
M000000000000001b:	movl	%ebx, %r14d	;  3 bytes
M000000000000001e:	testl	%r13d, %r13d	;  3 bytes
M0000000000000021:	js	0x41251f <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x10f>	;  6 bytes
M0000000000000027:	movl	%ebx, %ebp	;  2 bytes
M0000000000000029:	sarl	$31, %ebp	;  3 bytes
M000000000000002c:	andl	%ebx, %ebp	;  2 bytes
M000000000000002e:	leaq	-1(%r14,%r12), %rax	;  5 bytes
M0000000000000033:	movl	%ebx, %ecx	;  2 bytes
M0000000000000035:	nopw	%cs:(%rax,%rax)	; 10 bytes
M000000000000003f:	nop		;  1 bytes
M0000000000000040:	testl	%ecx, %ecx	;  2 bytes
M0000000000000042:	jle	0x412463 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x53>	;  2 bytes
M0000000000000044:	decl	%ecx	;  2 bytes
M0000000000000046:	cmpb	$47, (%rax)	;  3 bytes
M0000000000000049:	leaq	-1(%rax), %rax	;  4 bytes
M000000000000004d:	je	0x412450 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x40>	;  2 bytes
M000000000000004f:	incl	%ecx	;  2 bytes
M0000000000000051:	jmp	0x412465 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x55>	;  2 bytes
M0000000000000053:	movl	%ebp, %ecx	;  2 bytes
M0000000000000055:	movl	$4294967295, %eax	;  5 bytes
M000000000000005a:	cmpl	%ecx, %r13d	;  3 bytes
M000000000000005d:	jge	0x412510 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x100>	;  6 bytes
M0000000000000063:	movq	%rdx, %r14	;  3 bytes
M0000000000000066:	movq	%rdx, %rdi	;  3 bytes
M0000000000000069:	xorl	%esi, %esi	;  2 bytes
M000000000000006b:	callq	0x41a610 <bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >::privateClear(bool)>	;  5 bytes
M0000000000000070:	movq	(%r15), %r15	;  3 bytes
M0000000000000073:	movl	%ebx, %eax	;  2 bytes
M0000000000000075:	testl	%ebx, %ebx	;  2 bytes
M0000000000000077:	jns	0x412491 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x81>	;  2 bytes
M0000000000000079:	movq	%r15, %rdi	;  3 bytes
M000000000000007c:	callq	0x404a70 <strlen@plt>	;  5 bytes
M0000000000000081:	movl	%eax, %ecx	;  2 bytes
M0000000000000083:	sarl	$31, %ecx	;  3 bytes
M0000000000000086:	andl	%eax, %ecx	;  2 bytes
M0000000000000088:	nopl	(%rax,%rax)	;  8 bytes
M0000000000000090:	testl	%eax, %eax	;  2 bytes
M0000000000000092:	jle	0x4124b1 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0xa1>	;  2 bytes
M0000000000000094:	decl	%eax	;  2 bytes
M0000000000000096:	cmpb	$47, (%r15,%rax)	;  5 bytes
M000000000000009b:	je	0x4124a0 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x90>	;  2 bytes
M000000000000009d:	incl	%eax	;  2 bytes
M000000000000009f:	movl	%eax, %ecx	;  2 bytes
M00000000000000a1:	movslq	%ecx, %rax	;  3 bytes
M00000000000000a4:	movslq	%r13d, %rcx	;  3 bytes
M00000000000000a7:	addq	%r15, %rcx	;  3 bytes
M00000000000000aa:	leaq	-1(%rax,%r15), %rdx	;  5 bytes
M00000000000000af:	nop		;  1 bytes
M00000000000000b0:	movq	%rdx, %rax	;  3 bytes
M00000000000000b3:	cmpq	%rcx, %rdx	;  3 bytes
M00000000000000b6:	jbe	0x4124d1 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0xc1>	;  2 bytes
M00000000000000b8:	leaq	-1(%rax), %rdx	;  4 bytes
M00000000000000bc:	cmpb	$47, (%rax)	;  3 bytes
M00000000000000bf:	jne	0x4124c0 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0xb0>	;  2 bytes
M00000000000000c1:	leaq	1(%rax), %rsi	;  4 bytes
M00000000000000c5:	movq	%r14, %rdi	;  3 bytes
M00000000000000c8:	nopl	(%rax,%rax)	;  8 bytes
M00000000000000d0:	testl	%ebx, %ebx	;  2 bytes
M00000000000000d2:	jle	0x4124f1 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0xe1>	;  2 bytes
M00000000000000d4:	decl	%ebx	;  2 bytes
M00000000000000d6:	cmpb	$47, (%r15,%rbx)	;  5 bytes
M00000000000000db:	je	0x4124e0 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0xd0>	;  2 bytes
M00000000000000dd:	incl	%ebx	;  2 bytes
M00000000000000df:	movl	%ebx, %ebp	;  2 bytes
M00000000000000e1:	cmpb	$47, (%rax)	;  3 bytes
M00000000000000e4:	cmovneq	%rax, %rsi	;  4 bytes
M00000000000000e8:	movslq	%ebp, %rax	;  3 bytes
M00000000000000eb:	addq	%rax, %r15	;  3 bytes
M00000000000000ee:	subq	%rsi, %r15	;  3 bytes
M00000000000000f1:	movl	$4444637, %ecx	;  5 bytes
M00000000000000f6:	movq	%r15, %rdx	;  3 bytes
M00000000000000f9:	callq	0x41a250 <bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >::privateAppend(char const*, unsigned long, char const*)>	;  5 bytes
M00000000000000fe:	xorl	%eax, %eax	;  2 bytes
M0000000000000100:	addq	$8, %rsp	;  4 bytes
M0000000000000104:	popq	%rbx	;  1 bytes
M0000000000000105:	popq	%r12	;  2 bytes
M0000000000000107:	popq	%r13	;  2 bytes
M0000000000000109:	popq	%r14	;  2 bytes
M000000000000010b:	popq	%r15	;  2 bytes
M000000000000010d:	popq	%rbp	;  1 bytes
M000000000000010e:	retq		;  1 bytes
M000000000000010f:	movl	%ebx, %eax	;  2 bytes
M0000000000000111:	testl	%ebx, %ebx	;  2 bytes
M0000000000000113:	js	0x41254b <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x13b>	;  2 bytes
M0000000000000115:	testl	%eax, %eax	;  2 bytes
M0000000000000117:	jle	0x41255d <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x14d>	;  2 bytes
M0000000000000119:	movl	%eax, %eax	;  2 bytes
M000000000000011b:	xorl	%r13d, %r13d	;  3 bytes
M000000000000011e:	nop		;  2 bytes
M0000000000000120:	cmpb	$47, (%r12,%r13)	;  5 bytes
M0000000000000125:	jne	0x412437 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x27>	;  6 bytes
M000000000000012b:	incq	%r13	;  3 bytes
M000000000000012e:	cmpq	%r13, %rax	;  3 bytes
M0000000000000131:	jne	0x412530 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x120>	;  2 bytes
M0000000000000133:	movq	%rax, %r13	;  3 bytes
M0000000000000136:	jmp	0x412437 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x27>	;  5 bytes
M000000000000013b:	movq	%r12, %rdi	;  3 bytes
M000000000000013e:	movq	%rdx, %rbp	;  3 bytes
M0000000000000141:	callq	0x404a70 <strlen@plt>	;  5 bytes
M0000000000000146:	movq	%rbp, %rdx	;  3 bytes
M0000000000000149:	testl	%eax, %eax	;  2 bytes
M000000000000014b:	jg	0x412529 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x119>	;  2 bytes
M000000000000014d:	xorl	%r13d, %r13d	;  3 bytes
M0000000000000150:	jmp	0x412437 <BloombergLP::bdls::PathUtil::getLeaf(bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >*, BloombergLP::bslstl::StringRefImp<char> const&, int)+0x27>	;  5 bytes
M0000000000000155:	movq	%rax, %rdi	;  3 bytes
M0000000000000158:	callq	0x4096c0 <__clang_call_terminate>	;  5 bytes
M000000000000015d:	nopl	(%rax)	;  3 bytes