Ignored vs Assumed Semantics in BDE

detectNOccurrences(int, int const*, int) - Assumed

0000000000401f90 <detectNOccurrences(int, int 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:	subq	$40, %rsp	;  4 bytes
M000000000000000e:	movq	%rsi, 32(%rsp)	;  5 bytes
M0000000000000013:	movl	%edi, 12(%rsp)	;  4 bytes
M0000000000000017:	movl	%edx, %eax	;  2 bytes
M0000000000000019:	shll	$4, %eax	;  3 bytes
M000000000000001c:	movq	%rdx, 16(%rsp)	;  5 bytes
M0000000000000021:	leal	16(%rax,%rdx,8), %ebp	;  4 bytes
M0000000000000025:	movq	2148100(%rip), %rdi  # 60e6c0 <BloombergLP::bslma::Default::s_defaultAllocator>	;  7 bytes
M000000000000002c:	testq	%rdi, %rdi	;  3 bytes
M000000000000002f:	jne	0x401fc9 <detectNOccurrences(int, int const*, int)+0x39>	;  2 bytes
M0000000000000031:	callq	0x408420 <BloombergLP::bslma::Default::determineAndReturnDefaultAllocator()>	;  5 bytes
M0000000000000036:	movq	%rax, %rdi	;  3 bytes
M0000000000000039:	movslq	%ebp, %rbp	;  3 bytes
M000000000000003c:	movq	(%rdi), %rax	;  3 bytes
M000000000000003f:	movq	%rdi, 24(%rsp)	;  5 bytes
M0000000000000044:	movq	%rbp, %rsi	;  3 bytes
M0000000000000047:	callq	*16(%rax)	;  3 bytes
M000000000000004a:	movq	16(%rsp), %rsi	;  5 bytes
M000000000000004f:	movslq	%esi, %r13	;  3 bytes
M0000000000000052:	leaq	(,%r13,8), %rdx	;  8 bytes
M000000000000005a:	movl	%edx, %edi	;  2 bytes
M000000000000005c:	andl	$8, %edi	;  3 bytes
M000000000000005f:	orl	$16, %edi	;  3 bytes
M0000000000000062:	movl	%edi, %ecx	;  2 bytes
M0000000000000064:	negl	%ecx	;  2 bytes
M0000000000000066:	andl	%edi, %ecx	;  2 bytes
M0000000000000068:	movl	%ecx, %edi	;  2 bytes
M000000000000006a:	subl	%eax, %edi	;  2 bytes
M000000000000006c:	decl	%ecx	;  2 bytes
M000000000000006e:	andl	%edi, %ecx	;  2 bytes
M0000000000000070:	movslq	%ecx, %r15	;  3 bytes
M0000000000000073:	leaq	(%r15,%r13,8), %r12	;  4 bytes
M0000000000000077:	cmpq	%rbp, %r12	;  3 bytes
M000000000000007a:	seta	%bl	;  3 bytes
M000000000000007d:	testl	%esi, %esi	;  2 bytes
M000000000000007f:	sete	%cl	;  3 bytes
M0000000000000082:	orb	%bl, %cl	;  2 bytes
M0000000000000084:	jne	0x40210c <detectNOccurrences(int, int const*, int)+0x17c>	;  6 bytes
M000000000000008a:	movq	%rax, %r14	;  3 bytes
M000000000000008d:	addq	%rax, %r15	;  3 bytes
M0000000000000090:	movq	%r15, %rdi	;  3 bytes
M0000000000000093:	xorl	%esi, %esi	;  2 bytes
M0000000000000095:	callq	0x401a50 <memset@plt>	;  5 bytes
M000000000000009a:	movq	32(%rsp), %r8	;  5 bytes
M000000000000009f:	movl	12(%rsp), %ebx	;  4 bytes
M00000000000000a3:	movq	16(%rsp), %r10	;  5 bytes
M00000000000000a8:	movq	%rbp, %r9	;  3 bytes
M00000000000000ab:	movq	%r14, %rsi	;  3 bytes
M00000000000000ae:	jmp	0x402054 <detectNOccurrences(int, int const*, int)+0xc4>	;  2 bytes
M00000000000000b0:	movl	4(%rax), %ecx	;  3 bytes
M00000000000000b3:	incl	%ecx	;  2 bytes
M00000000000000b5:	movl	%ecx, 4(%rax)	;  3 bytes
M00000000000000b8:	leaq	-1(%r14), %r13	;  4 bytes
M00000000000000bc:	cmpl	%ebx, %ecx	;  2 bytes
M00000000000000be:	je	0x4020ec <detectNOccurrences(int, int const*, int)+0x15c>	;  6 bytes
M00000000000000c4:	movq	%r13, %r14	;  3 bytes
M00000000000000c7:	testq	%r13, %r13	;  3 bytes
M00000000000000ca:	jle	0x4020ec <detectNOccurrences(int, int const*, int)+0x15c>	;  6 bytes
M00000000000000d0:	movl	-4(%r8,%r14,4), %ecx	;  5 bytes
M00000000000000d5:	movl	%ecx, %eax	;  2 bytes
M00000000000000d7:	cltd		;  1 bytes
M00000000000000d8:	idivl	%r10d	;  3 bytes
M00000000000000db:	movslq	%edx, %rax	;  3 bytes
M00000000000000de:	movq	(%r15,%rax,8), %rdx	;  4 bytes
M00000000000000e2:	testq	%rdx, %rdx	;  3 bytes
M00000000000000e5:	je	0x4020a0 <detectNOccurrences(int, int const*, int)+0x110>	;  2 bytes
M00000000000000e7:	nopw	(%rax,%rax)	;  9 bytes
M00000000000000f0:	movq	%rdx, %rax	;  3 bytes
M00000000000000f3:	cmpl	%ecx, (%rdx)	;  2 bytes
M00000000000000f5:	je	0x402040 <detectNOccurrences(int, int const*, int)+0xb0>	;  2 bytes
M00000000000000f7:	movq	8(%rax), %rdx	;  4 bytes
M00000000000000fb:	testq	%rdx, %rdx	;  3 bytes
M00000000000000fe:	jne	0x402080 <detectNOccurrences(int, int const*, int)+0xf0>	;  2 bytes
M0000000000000100:	addq	$8, %rax	;  4 bytes
M0000000000000104:	jmp	0x4020a4 <detectNOccurrences(int, int const*, int)+0x114>	;  2 bytes
M0000000000000106:	nopw	%cs:(%rax,%rax)	; 10 bytes
M0000000000000110:	leaq	(%r15,%rax,8), %rax	;  4 bytes
M0000000000000114:	leaq	(%rsi,%r12), %rbp	;  4 bytes
M0000000000000118:	movq	%rbp, %rdx	;  3 bytes
M000000000000011b:	shlq	$32, %rdx	;  4 bytes
M000000000000011f:	negq	%rdx	;  3 bytes
M0000000000000122:	shrq	$32, %rdx	;  4 bytes
M0000000000000126:	andl	$15, %edx	;  3 bytes
M0000000000000129:	leaq	16(%r12,%rdx), %rdi	;  5 bytes
M000000000000012e:	cmpq	%r9, %rdi	;  3 bytes
M0000000000000131:	ja	0x4020e8 <detectNOccurrences(int, int const*, int)+0x158>	;  2 bytes
M0000000000000133:	addq	%rdx, %rbp	;  3 bytes
M0000000000000136:	movq	%rdi, %r12	;  3 bytes
M0000000000000139:	movl	%ecx, (%rbp)	;  3 bytes
M000000000000013c:	movl	$1, 4(%rbp)	;  7 bytes
M0000000000000143:	movq	$0, 8(%rbp)	;  8 bytes
M000000000000014b:	movq	%rbp, (%rax)	;  3 bytes
M000000000000014e:	movl	$1, %ecx	;  5 bytes
M0000000000000153:	jmp	0x402048 <detectNOccurrences(int, int const*, int)+0xb8>	;  5 bytes
M0000000000000158:	xorl	%ebp, %ebp	;  2 bytes
M000000000000015a:	jmp	0x4020c9 <detectNOccurrences(int, int const*, int)+0x139>	;  2 bytes
M000000000000015c:	movq	24(%rsp), %rdi	;  5 bytes
M0000000000000161:	movq	(%rdi), %rax	;  3 bytes
M0000000000000164:	callq	*24(%rax)	;  3 bytes
M0000000000000167:	testq	%r14, %r14	;  3 bytes
M000000000000016a:	setg	%al	;  3 bytes
M000000000000016d:	addq	$40, %rsp	;  4 bytes
M0000000000000171:	popq	%rbx	;  1 bytes
M0000000000000172:	popq	%r12	;  2 bytes
M0000000000000174:	popq	%r13	;  2 bytes
M0000000000000176:	popq	%r14	;  2 bytes
M0000000000000178:	popq	%r15	;  2 bytes
M000000000000017a:	popq	%rbp	;  1 bytes
M000000000000017b:	retq		;  1 bytes
M000000000000017c:	movq	%rax, %r14	;  3 bytes
M000000000000017f:	xorl	%r12d, %r12d	;  3 bytes
M0000000000000182:	xorl	%r15d, %r15d	;  3 bytes
M0000000000000185:	jmp	0x402020 <detectNOccurrences(int, int const*, int)+0x90>	;  5 bytes
M000000000000018a:	movq	%rax, %rdi	;  3 bytes
M000000000000018d:	callq	0x4080f0 <__clang_call_terminate>	;  5 bytes
M0000000000000192:	nopw	%cs:(%rax,%rax)	; 10 bytes
M000000000000019c:	nopl	(%rax)	;  4 bytes