Ignored vs Assumed Semantics in BDE

BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const - Assumed

0000000000414570 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const>:
M0000000000000000:	pushq	%rbp	;  1 bytes
M0000000000000001:	pushq	%r15	;  2 bytes
M0000000000000003:	pushq	%r14	;  2 bytes
M0000000000000005:	pushq	%rbx	;  1 bytes
M0000000000000006:	subq	$24, %rsp	;  4 bytes
M000000000000000a:	movl	%ecx, %r11d	;  3 bytes
M000000000000000d:	movl	%edx, %r10d	;  3 bytes
M0000000000000010:	movl	(%rdi), %ecx	;  2 bytes
M0000000000000012:	movq	8(%rdi), %r15	;  4 bytes
M0000000000000016:	movabsq	$-7442832613395060283, %rdx	; 10 bytes
M0000000000000020:	movq	%r15, %rax	;  3 bytes
M0000000000000023:	imulq	%rdx	;  3 bytes
M0000000000000026:	movq	%rdx, %r8	;  3 bytes
M0000000000000029:	addq	%r15, %r8	;  3 bytes
M000000000000002c:	movq	%r8, %rbx	;  3 bytes
M000000000000002f:	shrq	$63, %rbx	;  4 bytes
M0000000000000033:	shrq	$31, %r8	;  4 bytes
M0000000000000037:	movabsq	$-8130577079664715991, %rdx	; 10 bytes
M0000000000000041:	movq	%r15, %rax	;  3 bytes
M0000000000000044:	imulq	%rdx	;  3 bytes
M0000000000000047:	movq	%rdx, %r9	;  3 bytes
M000000000000004a:	addl	%ebx, %r8d	;  3 bytes
M000000000000004d:	addq	%r15, %r9	;  3 bytes
M0000000000000050:	movq	%r9, %rax	;  3 bytes
M0000000000000053:	shrq	$63, %rax	;  4 bytes
M0000000000000057:	sarq	$25, %r9	;  4 bytes
M000000000000005b:	addq	%rax, %r9	;  3 bytes
M000000000000005e:	movabsq	$-8608480567731124087, %rbx	; 10 bytes
M0000000000000068:	movq	%r9, %rax	;  3 bytes
M000000000000006b:	imulq	%rbx	;  3 bytes
M000000000000006e:	addq	%r9, %rdx	;  3 bytes
M0000000000000071:	movq	%rdx, %rax	;  3 bytes
M0000000000000074:	shrq	$63, %rax	;  4 bytes
M0000000000000078:	shrq	$5, %rdx	;  4 bytes
M000000000000007c:	addl	%eax, %edx	;  2 bytes
M000000000000007e:	imull	$60, %edx, %ebp	;  3 bytes
M0000000000000081:	movabsq	$4835703278458516699, %rdx	; 10 bytes
M000000000000008b:	movq	%r15, %rax	;  3 bytes
M000000000000008e:	imulq	%rdx	;  3 bytes
M0000000000000091:	movq	%rdx, %r14	;  3 bytes
M0000000000000094:	subl	%ebp, %r9d	;  3 bytes
M0000000000000097:	movq	%rdx, %rax	;  3 bytes
M000000000000009a:	shrq	$63, %rax	;  4 bytes
M000000000000009e:	sarq	$18, %r14	;  4 bytes
M00000000000000a2:	addq	%rax, %r14	;  3 bytes
M00000000000000a5:	movq	%r14, %rax	;  3 bytes
M00000000000000a8:	imulq	%rbx	;  3 bytes
M00000000000000ab:	addq	%r14, %rdx	;  3 bytes
M00000000000000ae:	movq	%rdx, %rax	;  3 bytes
M00000000000000b1:	shrq	$63, %rax	;  4 bytes
M00000000000000b5:	shrq	$5, %rdx	;  4 bytes
M00000000000000b9:	addl	%eax, %edx	;  2 bytes
M00000000000000bb:	imull	$60, %edx, %eax	;  3 bytes
M00000000000000be:	subl	%eax, %r14d	;  3 bytes
M00000000000000c1:	movabsq	$2361183241434822607, %rbp	; 10 bytes
M00000000000000cb:	movq	%r15, %rax	;  3 bytes
M00000000000000ce:	imulq	%rbp	;  3 bytes
M00000000000000d1:	movq	%rdx, %rbx	;  3 bytes
M00000000000000d4:	movq	%rdx, %rax	;  3 bytes
M00000000000000d7:	shrq	$63, %rax	;  4 bytes
M00000000000000db:	sarq	$7, %rbx	;  4 bytes
M00000000000000df:	addq	%rax, %rbx	;  3 bytes
M00000000000000e2:	movq	%rbx, %rax	;  3 bytes
M00000000000000e5:	imulq	%rbp	;  3 bytes
M00000000000000e8:	movq	%rdx, %rax	;  3 bytes
M00000000000000eb:	shrq	$63, %rax	;  4 bytes
M00000000000000ef:	shrq	$7, %rdx	;  4 bytes
M00000000000000f3:	addl	%eax, %edx	;  2 bytes
M00000000000000f5:	imull	$1000, %edx, %eax	;  6 bytes
M00000000000000fb:	imull	$1000, %ebx, %edx	;  6 bytes
M0000000000000101:	subl	%eax, %ebx	;  2 bytes
M0000000000000103:	movl	%r15d, %eax	;  3 bytes
M0000000000000106:	subl	%edx, %eax	;  2 bytes
M0000000000000108:	testl	%ecx, %ecx	;  2 bytes
M000000000000010a:	js	0x4146ee <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x17e>	;  2 bytes
M000000000000010c:	cmpl	$2, %r10d	;  4 bytes
M0000000000000110:	jb	0x41469f <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x12f>	;  2 bytes
M0000000000000112:	shrq	$63, %r15	;  4 bytes
M0000000000000116:	addb	%r15b, %r15b	;  3 bytes
M0000000000000119:	addb	$43, %r15b	;  4 bytes
M000000000000011d:	movb	%r15b, (%rsi)	;  3 bytes
M0000000000000120:	incq	%rsi	;  3 bytes
M0000000000000123:	decl	%r10d	;  3 bytes
M0000000000000126:	cmpl	$0, (%rdi)	;  3 bytes
M0000000000000129:	js	0x414749 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1d9>	;  6 bytes
M000000000000012f:	movl	$1, %ebp	;  5 bytes
M0000000000000134:	cmpq	$0, 8(%rdi)	;  5 bytes
M0000000000000139:	js	0x41474e <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1de>	;  6 bytes
M000000000000013f:	cmpl	$5, %r11d	;  4 bytes
M0000000000000143:	ja	0x414765 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1f5>	;  6 bytes
M0000000000000149:	movl	%r11d, %edx	;  3 bytes
M000000000000014c:	jmpq	*4538576(,%rdx,8)	;  7 bytes
M0000000000000153:	movaps	260662(%rip), %xmm0  # 454100 <BloombergLP::bdlt::(anonymous namespace)::leapDaysThroughMonth+0xa0>	;  7 bytes
M000000000000015a:	movaps	%xmm0, (%rsp)	;  4 bytes
M000000000000015e:	movw	$100, 16(%rsp)	;  7 bytes
M0000000000000165:	movl	%r10d, %eax	;  3 bytes
M0000000000000168:	subq	$8, %rsp	;  4 bytes
M000000000000016c:	leaq	8(%rsp), %rdx	;  5 bytes
M0000000000000171:	movq	%rsi, %rdi	;  3 bytes
M0000000000000174:	movq	%rax, %rsi	;  3 bytes
M0000000000000177:	xorl	%eax, %eax	;  2 bytes
M0000000000000179:	jmp	0x41479f <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x22f>	;  5 bytes
M000000000000017e:	xorl	%ebp, %ebp	;  2 bytes
M0000000000000180:	jmp	0x41474e <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1de>	;  2 bytes
M0000000000000182:	movswl	%bx, %eax	;  3 bytes
M0000000000000185:	imull	$5243, %eax, %ebx	;  6 bytes
M000000000000018b:	movl	%ebx, %eax	;  2 bytes
M000000000000018d:	shrl	$31, %eax	;  3 bytes
M0000000000000190:	sarl	$19, %ebx	;  3 bytes
M0000000000000193:	jmp	0x41476b <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fb>	;  2 bytes
M0000000000000195:	movswl	%bx, %eax	;  3 bytes
M0000000000000198:	imull	$26215, %eax, %ebx	;  6 bytes
M000000000000019e:	movl	%ebx, %eax	;  2 bytes
M00000000000001a0:	shrl	$31, %eax	;  3 bytes
M00000000000001a3:	sarl	$18, %ebx	;  3 bytes
M00000000000001a6:	jmp	0x41476b <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fb>	;  2 bytes
M00000000000001a8:	leal	(%rbx,%rbx,4), %edx	;  3 bytes
M00000000000001ab:	cwtl		;  1 bytes
M00000000000001ac:	imull	$5243, %eax, %eax	;  6 bytes
M00000000000001b2:	movl	%eax, %edi	;  2 bytes
M00000000000001b4:	shrl	$31, %edi	;  3 bytes
M00000000000001b7:	sarl	$19, %eax	;  3 bytes
M00000000000001ba:	addl	%edi, %eax	;  2 bytes
M00000000000001bc:	leal	(%rax,%rdx,2), %ebx	;  3 bytes
M00000000000001bf:	jmp	0x41476d <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fd>	;  2 bytes
M00000000000001c1:	imull	$100, %ebx, %edx	;  3 bytes
M00000000000001c4:	cwtl		;  1 bytes
M00000000000001c5:	imull	$26215, %eax, %ebx	;  6 bytes
M00000000000001cb:	movl	%ebx, %eax	;  2 bytes
M00000000000001cd:	shrl	$31, %eax	;  3 bytes
M00000000000001d0:	sarl	$18, %ebx	;  3 bytes
M00000000000001d3:	addl	%eax, %ebx	;  2 bytes
M00000000000001d5:	addl	%edx, %ebx	;  2 bytes
M00000000000001d7:	jmp	0x41476d <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fd>	;  2 bytes
M00000000000001d9:	movl	$1, %ebp	;  5 bytes
M00000000000001de:	negl	%r8d	;  3 bytes
M00000000000001e1:	negl	%r9d	;  3 bytes
M00000000000001e4:	negl	%r14d	;  3 bytes
M00000000000001e7:	negl	%ebx	;  2 bytes
M00000000000001e9:	negl	%eax	;  2 bytes
M00000000000001eb:	cmpl	$5, %r11d	;  4 bytes
M00000000000001ef:	jbe	0x4146b9 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x149>	;  6 bytes
M00000000000001f5:	imull	$1000, %ebx, %ebx	;  6 bytes
M00000000000001fb:	addl	%eax, %ebx	;  2 bytes
M00000000000001fd:	movabsq	$28244461476537394, %rax	; 10 bytes
M0000000000000207:	movq	%rax, 15(%rsp)	;  5 bytes
M000000000000020c:	movaps	260509(%rip), %xmm0  # 454120 <BloombergLP::bdlt::(anonymous namespace)::leapDaysThroughMonth+0xc0>	;  7 bytes
M0000000000000213:	movaps	%xmm0, (%rsp)	;  4 bytes
M0000000000000217:	orb	$48, %r11b	;  4 bytes
M000000000000021b:	movb	%r11b, 20(%rsp)	;  5 bytes
M0000000000000220:	movl	%r10d, %eax	;  3 bytes
M0000000000000223:	movq	%rsp, %rdx	;  3 bytes
M0000000000000226:	movq	%rsi, %rdi	;  3 bytes
M0000000000000229:	movq	%rax, %rsi	;  3 bytes
M000000000000022c:	xorl	%eax, %eax	;  2 bytes
M000000000000022e:	pushq	%rbx	;  1 bytes
M000000000000022f:	pushq	%r14	;  2 bytes
M0000000000000231:	callq	0x404810 <snprintf@plt>	;  5 bytes
M0000000000000236:	addq	$16, %rsp	;  4 bytes
M000000000000023a:	addl	%ebp, %eax	;  2 bytes
M000000000000023c:	addq	$24, %rsp	;  4 bytes
M0000000000000240:	popq	%rbx	;  1 bytes
M0000000000000241:	popq	%r14	;  2 bytes
M0000000000000243:	popq	%r15	;  2 bytes
M0000000000000245:	popq	%rbp	;  1 bytes
M0000000000000246:	retq		;  1 bytes
M0000000000000247:	nopw	(%rax,%rax)	;  9 bytes