0000000000414780 <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, %r9d ; 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, %r10 ; 3 bytes
M000000000000004a: addl %ebx, %r8d ; 3 bytes
M000000000000004d: addq %r15, %r10 ; 3 bytes
M0000000000000050: movq %r10, %rax ; 3 bytes
M0000000000000053: shrq $63, %rax ; 4 bytes
M0000000000000057: sarq $25, %r10 ; 4 bytes
M000000000000005b: addq %rax, %r10 ; 3 bytes
M000000000000005e: movabsq $-8608480567731124087, %rbx ; 10 bytes
M0000000000000068: movq %r10, %rax ; 3 bytes
M000000000000006b: imulq %rbx ; 3 bytes
M000000000000006e: addq %r10, %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, %r10d ; 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 0x414901 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x181> ; 2 bytes
M000000000000010c: cmpl $2, %r9d ; 4 bytes
M0000000000000110: jl 0x4148af <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 %r9d ; 3 bytes
M0000000000000126: cmpl $0, (%rdi) ; 3 bytes
M0000000000000129: js 0x41495c <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1dc> ; 6 bytes
M000000000000012f: movl $1, %ebp ; 5 bytes
M0000000000000134: cmpq $0, 8(%rdi) ; 5 bytes
M0000000000000139: js 0x414961 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1e1> ; 6 bytes
M000000000000013f: cmpl $5, %r11d ; 4 bytes
M0000000000000143: ja 0x414978 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1f8> ; 6 bytes
M0000000000000149: movl %r11d, %edx ; 3 bytes
M000000000000014c: jmpq *4539136(,%rdx,8) ; 7 bytes
M0000000000000153: movaps 260694(%rip), %xmm0 # 454330 <BloombergLP::bdlt::(anonymous namespace)::leapDaysThroughMonth+0xa0> ; 7 bytes
M000000000000015a: movaps %xmm0, (%rsp) ; 4 bytes
M000000000000015e: movw $100, 16(%rsp) ; 7 bytes
M0000000000000165: movslq %r9d, %rax ; 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: movl %r10d, %r9d ; 3 bytes
M000000000000017a: xorl %eax, %eax ; 2 bytes
M000000000000017c: jmp 0x4149b5 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x235> ; 5 bytes
M0000000000000181: xorl %ebp, %ebp ; 2 bytes
M0000000000000183: jmp 0x414961 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1e1> ; 2 bytes
M0000000000000185: movswl %bx, %eax ; 3 bytes
M0000000000000188: imull $5243, %eax, %ebx ; 6 bytes
M000000000000018e: movl %ebx, %eax ; 2 bytes
M0000000000000190: shrl $31, %eax ; 3 bytes
M0000000000000193: sarl $19, %ebx ; 3 bytes
M0000000000000196: jmp 0x41497e <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fe> ; 2 bytes
M0000000000000198: movswl %bx, %eax ; 3 bytes
M000000000000019b: imull $26215, %eax, %ebx ; 6 bytes
M00000000000001a1: movl %ebx, %eax ; 2 bytes
M00000000000001a3: shrl $31, %eax ; 3 bytes
M00000000000001a6: sarl $18, %ebx ; 3 bytes
M00000000000001a9: jmp 0x41497e <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x1fe> ; 2 bytes
M00000000000001ab: leal (%rbx,%rbx,4), %edx ; 3 bytes
M00000000000001ae: cwtl ; 1 bytes
M00000000000001af: imull $5243, %eax, %eax ; 6 bytes
M00000000000001b5: movl %eax, %edi ; 2 bytes
M00000000000001b7: shrl $31, %edi ; 3 bytes
M00000000000001ba: sarl $19, %eax ; 3 bytes
M00000000000001bd: addl %edi, %eax ; 2 bytes
M00000000000001bf: leal (%rax,%rdx,2), %ebx ; 3 bytes
M00000000000001c2: jmp 0x414980 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x200> ; 2 bytes
M00000000000001c4: imull $100, %ebx, %edx ; 3 bytes
M00000000000001c7: cwtl ; 1 bytes
M00000000000001c8: imull $26215, %eax, %ebx ; 6 bytes
M00000000000001ce: movl %ebx, %eax ; 2 bytes
M00000000000001d0: shrl $31, %eax ; 3 bytes
M00000000000001d3: sarl $18, %ebx ; 3 bytes
M00000000000001d6: addl %eax, %ebx ; 2 bytes
M00000000000001d8: addl %edx, %ebx ; 2 bytes
M00000000000001da: jmp 0x414980 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x200> ; 2 bytes
M00000000000001dc: movl $1, %ebp ; 5 bytes
M00000000000001e1: negl %r8d ; 3 bytes
M00000000000001e4: negl %r10d ; 3 bytes
M00000000000001e7: negl %r14d ; 3 bytes
M00000000000001ea: negl %ebx ; 2 bytes
M00000000000001ec: negl %eax ; 2 bytes
M00000000000001ee: cmpl $5, %r11d ; 4 bytes
M00000000000001f2: jbe 0x4148c9 <BloombergLP::bdlt::DatetimeInterval::printToBuffer(char*, int, int) const+0x149> ; 6 bytes
M00000000000001f8: imull $1000, %ebx, %ebx ; 6 bytes
M00000000000001fe: addl %eax, %ebx ; 2 bytes
M0000000000000200: movabsq $28244461476537394, %rax ; 10 bytes
M000000000000020a: movq %rax, 15(%rsp) ; 5 bytes
M000000000000020f: movaps 260538(%rip), %xmm0 # 454350 <BloombergLP::bdlt::(anonymous namespace)::leapDaysThroughMonth+0xc0> ; 7 bytes
M0000000000000216: movaps %xmm0, (%rsp) ; 4 bytes
M000000000000021a: addb $48, %r11b ; 4 bytes
M000000000000021e: movb %r11b, 20(%rsp) ; 5 bytes
M0000000000000223: movslq %r9d, %rax ; 3 bytes
M0000000000000226: movq %rsp, %rdx ; 3 bytes
M0000000000000229: movq %rsi, %rdi ; 3 bytes
M000000000000022c: movq %rax, %rsi ; 3 bytes
M000000000000022f: movl %r10d, %r9d ; 3 bytes
M0000000000000232: xorl %eax, %eax ; 2 bytes
M0000000000000234: pushq %rbx ; 1 bytes
M0000000000000235: pushq %r14 ; 2 bytes
M0000000000000237: callq 0x404810 <snprintf@plt> ; 5 bytes
M000000000000023c: addq $16, %rsp ; 4 bytes
M0000000000000240: addl %ebp, %eax ; 2 bytes
M0000000000000242: addq $24, %rsp ; 4 bytes
M0000000000000246: popq %rbx ; 1 bytes
M0000000000000247: popq %r14 ; 2 bytes
M0000000000000249: popq %r15 ; 2 bytes
M000000000000024b: popq %rbp ; 1 bytes
M000000000000024c: retq ; 1 bytes
M000000000000024d: nopl (%rax) ; 3 bytes