; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/assume @ 0x4c5140 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_unsigned_long_long_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_14h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_22h; | int64_t var_28h; | int64_t var_2eh; | int64_t var_30h; | uint32_t var_40h; | int64_t var_48h; | uint32_t var_54h; | int64_t var_58h; | int64_t var_60h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004c5140 push rbp | 0x004c5141 push r15 | 0x004c5143 push r14 | 0x004c5145 push r13 | 0x004c5147 push r12 | 0x004c5149 push rbx | 0x004c514a sub rsp, 0x68 | 0x004c514e mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c5152 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c5156 cmp byte [rip + 0x253839], 0 | | if (*(obj.verbose) != 0) { 0x004c515d je 0x4c5169 | 0x004c515f mov edi, 0x4f67e9 | 0x004c5164 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c5169 xor eax, eax | eax = 0; 0x004c516b jmp 0x4c519c | goto label_5; | label_2: 0x004c5170 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5175 mov rsi, rbp | rsi = rbp; 0x004c5178 call 0x4e0a90 | voidverify(unsigned long long*,char const*) (); 0x004c517d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5182 mov rsi, rbp | rsi = rbp; 0x004c5185 call 0x4e0cd0 | voidcleanup(unsigned long long*,char const*) (); 0x004c518a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c518f inc rax | rax++; 0x004c5192 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c5196 je 0x4c56d9 | goto label_6; | } | label_5: 0x004c519c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c51a1 lea rbp, [rax*8] | rbp = rax*8; 0x004c51a9 mov r12, qword [rbp + rbp*4 + 0x4f3b08] | r12 = *((rbp + rbp*4 + 0x4f3b08)); 0x004c51b1 mov rdi, r12 | 0x004c51b4 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3b08))); 0x004c51b9 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c51bc jl 0x4c51e7 | 0x004c51be mov edi, 0x4f4c78 | 0x004c51c3 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c51c8 mov esi, 0xfe6 | esi = 0xfe6; 0x004c51cd xor eax, eax | eax = 0; 0x004c51cf call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c51d4 mov eax, dword [rip + 0x2537be] | eax = (anonymous namespace)::testStatus; 0x004c51da cmp eax, 0x64 | | if (eax > 0x64) { 0x004c51dd ja 0x4c51e7 | goto label_7; | } 0x004c51df inc eax | eax++; 0x004c51e1 mov dword [rip + 0x2537b1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_7: 0x004c51e7 mov r13d, dword [rbp + rbp*4 + 0x4f3b00] | r13d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c51ef movsxd r15, dword [rbp + rbp*4 + 0x4f3b10] | r15 = *((rbp + rbp*4 + 0x4f3b10)); 0x004c51f7 mov ebx, dword [rbp + rbp*4 + 0x4f3b14] | ebx = *((rbp + rbp*4 + 0x4f3b14)); 0x004c51fe movsxd r14, dword [rbp + rbp*4 + 0x4f3b18] | r14 = *((rbp + rbp*4 + 0x4f3b18)); 0x004c5206 mov rbp, qword [rbp + rbp*4 + 0x4f3b20] | rbp = *((rbp + rbp*4 + 0x4f3b20)); 0x004c520e cmp byte [rip + 0x25377b], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c5215 je 0x4c5236 | 0x004c5217 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c521b mov edi, 0x4f5ab7 | 0x004c5220 mov esi, r13d | esi = r13d; 0x004c5223 mov rdx, r12 | rdx = r12; 0x004c5226 mov ecx, r15d | ecx = r15d; 0x004c5229 mov r8d, ebx | r8d = ebx; 0x004c522c mov r9d, r14d | r9d = r14d; 0x004c522f xor eax, eax | eax = 0; 0x004c5231 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c5236 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x004c523b mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5240 mov rsi, r12 | rsi = r12; 0x004c5243 call 0x4e09b0 | unsigned long long&gg(unsigned long long*,char const*) (); 0x004c5248 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c524d mov rsi, r12 | rsi = r12; 0x004c5250 call 0x4e0a90 | voidverify(unsigned long long*,char const*) (); 0x004c5255 mov r12d, dword [rip + 0x253748] | r12d = numCopyCtorCalls; 0x004c525c mov eax, dword [rip + 0x25374a] | eax = numCharCtorCalls; 0x004c5262 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c5266 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c526b je 0x4c5350 | goto label_8; | } 0x004c5271 cmp byte [rip + 0x253718], 0 | 0x004c5278 mov ebx, r13d | ebx = r13d; | if (*(obj.veryVerbose) != 0) { 0x004c527b je 0x4c5290 | 0x004c527d cmp dword [rip + 0x2532e4], 0 | | if (*(0x00718568) == 0) { 0x004c5284 je 0x4c5290 | goto label_9; | } 0x004c5286 mov edi, 0x4f425a | 0x004c528b call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_9: 0x004c5290 mov dword [rip + 0x2532ce], 0 | *(0x00718568) = 0; 0x004c529a cmp byte [rip + 0x2536f4], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c52a1 je 0x4c52ad | 0x004c52a3 mov edi, 0x4f4281 | 0x004c52a8 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c52ad mov rax, qword [rip + 0x25356c] | rax = Z; 0x004c52b4 mov qword [rsp + 0x20], 0x4f6858 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c52bd mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c52c2 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c52ca test rax, rax | 0x004c52cd je 0x4c53b9 | | while (rax != 0) { | label_0: 0x004c52d3 lea rsi, [r15*8 + 0x74f520] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c52db mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c52e0 add eax, r15d | eax += r15d; 0x004c52e3 cdqe | rax = (int64_t) eax; 0x004c52e5 lea rdx, [rax*8 + 0x74f520] | rdx = rax*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c52ed sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c52f0 je 0x4c52ff | 0x004c52f2 lea rdi, [r14*8 + 0x74f520] | 0x004c52fa call 0x401930 | memcpy (r14*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c52ff mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c5304 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c5309 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c5310 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c5313 cmp byte [rip + 0x25367b], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c531a je 0x4c5326 | 0x004c531c mov edi, 0x4f43e1 | 0x004c5321 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c5326 cmp byte [rip + 0x253663], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c532d je 0x4c55fb | goto label_10; | } 0x004c5333 mov edi, 0xa | 0x004c5338 call 0x401720 | putchar (0xa); 0x004c533d jmp 0x4c55d1 | goto label_11; | label_8: 0x004c5350 cmp qword [rip + 0x2534c8], 0 | 0x004c5358 mov ebx, r13d | ebx = r13d; | if (*(obj.Z) == 0) { 0x004c535b jne 0x4c536d | 0x004c535d mov rax, qword [rip + 0x28bf54] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c5364 test rax, rax | | if (rax == 0) { 0x004c5367 je 0x4c5473 | goto label_12; | } | } 0x004c536d cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c5373 jb 0x4c55d1 | goto label_11; | } | label_1: 0x004c5379 lea rax, [r15*8 + 0x74f520] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5381 lea rcx, [r14*8 + 0x74f520] | rcx = r14*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5389 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x004c538e lea edx, [rbx + r15] | edx = rbx + r15; 0x004c5392 movsxd r9, edx | r9 = (int64_t) edx; 0x004c5395 shl r9, 3 | r9 <<= 3; 0x004c5399 lea rdi, [r15*8] | rdi = r15*8; 0x004c53a1 mov r10, r9 | r10 = r9; 0x004c53a4 sub r10, rdi | r10 -= rdi; 0x004c53a7 add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c53ab cmp r10, 0x18 | | if (r10 >= 0x18) { 0x004c53af jae 0x4c542d | goto label_13; | } 0x004c53b1 mov ebx, r13d | ebx = r13d; 0x004c53b4 jmp 0x4c55b0 | goto label_14; 0x004c53b9 mov r13d, 1 | r13d = 1; 0x004c53bf mov rax, qword [rip + 0x28bef2] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c53c6 test rax, rax | 0x004c53c9 jne 0x4c52d3 | | } 0x004c53cf call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c53d4 jmp 0x4c52d3 | goto label_0; | label_13: 0x004c542d mov r11, rbp | r11 = rbp; 0x004c5430 lea rsi, [r14*8 + 0x74f520] | rsi = r14*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5438 lea edx, [rbx + r15] | edx = rbx + r15; 0x004c543c movsxd rdx, edx | rdx = (int64_t) edx; 0x004c543f lea rbp, [rdx*8 + 0x74f520] | rbp = rdx*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5447 cmp rsi, rbp | | if (rsi >= rbp) { 0x004c544a jae 0x4c5489 | goto label_15; | } 0x004c544c shl rdx, 3 | rdx <<= 3; 0x004c5450 sub rdx, rdi | rdx -= rdi; 0x004c5453 lea rdx, [rdx + r14*8 + 0x74f520] | rdx = rdx + r14*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c545b lea rsi, [r15*8 + 0x74f520] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5463 cmp rsi, rdx | | if (rsi >= rdx) { 0x004c5466 jae 0x4c5489 | goto label_15; | } 0x004c5468 mov rbp, r11 | 0x004c546b mov ebx, r13d | ebx = r13d; 0x004c546e jmp 0x4c55b0 | goto label_14; | label_12: 0x004c5473 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c5478 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) >= 6) { 0x004c547e jae 0x4c5379 | goto label_1; | } 0x004c5484 jmp 0x4c55d1 | goto label_11; | label_15: 0x004c5489 shr r10, 3 | r10 >>= 3; 0x004c548d inc r10 | r10++; 0x004c5490 mov r8, r10 | r8 = r10; 0x004c5493 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c5497 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c549b mov rbp, rsi | 0x004c549e shr rbp, 2 | rbp >>= 2; 0x004c54a2 inc rbp | rbp++; 0x004c54a5 mov edx, ebp | edx = ebp; 0x004c54a7 and edx, 3 | edx &= 3; 0x004c54aa cmp rsi, 0xc | | if (rsi < 0xc) { 0x004c54ae jae 0x4c54b7 | 0x004c54b0 xor ebx, ebx | ebx = 0; 0x004c54b2 jmp 0x4c5540 | goto label_16; | } 0x004c54b7 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c54bb neg rbp | rbp = -rbp; 0x004c54be mov esi, 0x74f520 | esi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c54c3 xor ebx, ebx | ebx = 0; 0x004c54c5 nop word cs:[rax + rax] | 0x004c54cf nop | | do { 0x004c54d0 movups xmm0, xmmword [rsi + r15*8] | __asm ("movups xmm0, xmmword [rsi + r15*8]"); 0x004c54d5 movups xmm1, xmmword [rsi + r15*8 + 0x10] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x10]"); 0x004c54db movups xmmword [rsi + r14*8], xmm0 | __asm ("movups xmmword [rsi + r14*8], xmm0"); 0x004c54e0 movups xmmword [rsi + r14*8 + 0x10], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x10], xmm1"); 0x004c54e6 movups xmm0, xmmword [rsi + r15*8 + 0x20] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x20]"); 0x004c54ec movups xmm1, xmmword [rsi + r15*8 + 0x30] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x30]"); 0x004c54f2 movups xmmword [rsi + r14*8 + 0x20], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x20], xmm0"); 0x004c54f8 movups xmmword [rsi + r14*8 + 0x30], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x30], xmm1"); 0x004c54fe movups xmm0, xmmword [rsi + r15*8 + 0x40] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x40]"); 0x004c5504 movups xmm1, xmmword [rsi + r15*8 + 0x50] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x50]"); 0x004c550a movups xmmword [rsi + r14*8 + 0x40], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x40], xmm0"); 0x004c5510 movups xmmword [rsi + r14*8 + 0x50], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x50], xmm1"); 0x004c5516 movdqu xmm0, xmmword [rsi + r15*8 + 0x60] | __asm ("movdqu xmm0, xmmword [rsi + r15*8 + 0x60]"); 0x004c551d movdqu xmm1, xmmword [rsi + r15*8 + 0x70] | __asm ("movdqu xmm1, xmmword [rsi + r15*8 + 0x70]"); 0x004c5524 movdqu xmmword [rsi + r14*8 + 0x60], xmm0 | __asm ("movdqu xmmword [rsi + r14*8 + 0x60], xmm0"); 0x004c552b movdqu xmmword [rsi + r14*8 + 0x70], xmm1 | __asm ("movdqu xmmword [rsi + r14*8 + 0x70], xmm1"); 0x004c5532 add rbx, 0x10 | rbx += 0x10; 0x004c5536 sub rsi, 0xffffffffffffff80 | rsi -= 0xffffffffffffff80; 0x004c553a add rbp, 4 | rbp += 4; 0x004c553e jne 0x4c54d0 | | } while (rbp != 0); | label_16: 0x004c5540 test rdx, rdx | | if (rdx == 0) { 0x004c5543 je 0x4c5593 | goto label_17; | } 0x004c5545 shl r14, 3 | r14 <<= 3; 0x004c5549 lea rsi, [rbx*8 + 0x74f520] | rsi = rbx*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5551 neg rdx | rdx = -rdx; 0x004c5554 nop word cs:[rax + rax] | 0x004c555e nop | | do { 0x004c5560 movdqu xmm0, xmmword [rdi + rbx*8 + 0x74f520] | __asm ("movdqu xmm0, xmmword [rdi + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u]"); 0x004c5569 movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f530] | __asm ("movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f530]"); 0x004c5572 movdqu xmmword [r14 + rbx*8 + 0x74f520], xmm0 | __asm ("movdqu xmmword [r14 + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c557c movdqu xmmword [r14 + rbx*8 + 0x74f530], xmm1 | __asm ("movdqu xmmword [r14 + rbx*8 + 0x74f530], xmm1"); 0x004c5586 add rbx, 4 | rbx += 4; 0x004c558a add rsi, 0x20 | rsi += 0x20; 0x004c558e inc rdx | rdx++; 0x004c5591 jne 0x4c5560 | | } while (rdx != 0); | label_17: 0x004c5593 cmp r10, r8 | 0x004c5596 mov rbp, r11 | 0x004c5599 mov ebx, r13d | ebx = r13d; | if (r10 == r8) { 0x004c559c je 0x4c55d1 | goto label_11; | } 0x004c559e lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c55a2 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c55a6 nop word cs:[rax + rax] | | label_14: 0x004c55b0 sub r9, rax | r9 -= rax; 0x004c55b3 lea rdx, [r9 + 0x74f520] | rdx = r9 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c55ba xor esi, esi | esi = 0; 0x004c55bc nop dword [rax] | | do { 0x004c55c0 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c55c4 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c55c8 add rsi, 8 | rsi += 8; 0x004c55cc cmp rdx, rsi | 0x004c55cf jne 0x4c55c0 | | } while (rdx != rsi); | label_11: 0x004c55d1 cmp byte [rip + 0x2533b8], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c55d8 je 0x4c55fb | 0x004c55da mov edx, dword [rip + 0x2533c4] | edx = numCopyCtorCalls; 0x004c55e0 sub edx, r12d | edx -= r12d; 0x004c55e3 mov ecx, dword [rip + 0x2533c3] | ecx = numCharCtorCalls; 0x004c55e9 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c55ed mov edi, 0x4f5c2a | 0x004c55f2 mov esi, ebx | esi = ebx; 0x004c55f4 xor eax, eax | eax = 0; 0x004c55f6 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_10: 0x004c55fb cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c5600 je 0x4c5660 | goto label_18; | } 0x004c5602 cmp r12d, dword [rip + 0x25339b] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c5609 je 0x4c5634 | 0x004c560b mov edi, 0x4f4c78 | 0x004c5610 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c5615 mov esi, 0x1005 | esi = 0x1005; 0x004c561a xor eax, eax | eax = 0; 0x004c561c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5621 mov eax, dword [rip + 0x253371] | eax = (anonymous namespace)::testStatus; 0x004c5627 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c562a ja 0x4c5634 | goto label_19; | } 0x004c562c inc eax | eax++; 0x004c562e mov dword [rip + 0x253364], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c5634 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c5638 cmp eax, dword [rip + 0x25336e] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c563e je 0x4c5170 | goto label_2; | } 0x004c5644 mov edi, 0x4f4c78 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c5649 mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c564e mov esi, 0x1006 | esi = 0x1006; 0x004c5653 jmp 0x4c56b6 | goto label_20; | label_18: 0x004c5660 add r12d, dword [rsp + 0x48] | r12d += *((rsp + 0x48)); 0x004c5665 cmp r12d, dword [rip + 0x253338] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c566c jle 0x4c5697 | 0x004c566e mov edi, 0x4f4c78 | 0x004c5673 mov edx, 0x4f5c78 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c5678 mov esi, 0x1009 | esi = 0x1009; 0x004c567d xor eax, eax | eax = 0; 0x004c567f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5684 mov eax, dword [rip + 0x25330e] | eax = (anonymous namespace)::testStatus; 0x004c568a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c568d ja 0x4c5697 | goto label_21; | } 0x004c568f inc eax | eax++; 0x004c5691 mov dword [rip + 0x253301], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c5697 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c569b cmp eax, dword [rip + 0x25330b] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c56a1 je 0x4c5170 | goto label_2; | } 0x004c56a7 mov edi, 0x4f4c78 | 0x004c56ac mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c56b1 mov esi, 0x100a | esi = 0x100a; | label_20: 0x004c56b6 xor eax, eax | eax = 0; 0x004c56b8 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c56bd mov eax, dword [rip + 0x2532d5] | eax = (anonymous namespace)::testStatus; 0x004c56c3 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c56c6 ja 0x4c5170 | goto label_2; | } 0x004c56cc inc eax | eax++; 0x004c56ce mov dword [rip + 0x2532c4], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c56d4 jmp 0x4c5170 | goto label_2; | label_6: 0x004c56d9 cmp byte [rip + 0x2532b6], 0 | | if (*(obj.verbose) != 0) { 0x004c56e0 je 0x4c56ec | 0x004c56e2 mov edi, 0x4f67d2 | 0x004c56e7 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c56ec xor r12d, r12d | r12d = 0; 0x004c56ef jmp 0x4c5727 | goto label_22; | label_4: 0x004c5700 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5705 mov rsi, rbx | rsi = rbx; 0x004c5708 call 0x4e0a90 | voidverify(unsigned long long*,char const*) (); 0x004c570d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5712 mov rsi, rbx | rsi = rbx; 0x004c5715 call 0x4e0cd0 | voidcleanup(unsigned long long*,char const*) (); 0x004c571a inc r12 | r12++; 0x004c571d cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c5721 je 0x4c5d4d | goto label_23; | } | label_22: 0x004c5727 lea rbx, [r12*8] | rbx = r12*8; 0x004c572f mov rbp, qword [rbx + rbx*4 + 0x4f3b08] | rbp = *((rbx + rbx*4 + 0x4f3b08)); 0x004c5737 mov rdi, rbp | 0x004c573a call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3b08))); 0x004c573f cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c5742 jl 0x4c576d | 0x004c5744 mov edi, 0x4f4c78 | 0x004c5749 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c574e mov esi, 0x1019 | esi = 0x1019; 0x004c5753 xor eax, eax | eax = 0; 0x004c5755 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c575a mov eax, dword [rip + 0x253238] | eax = (anonymous namespace)::testStatus; 0x004c5760 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c5763 ja 0x4c576d | goto label_24; | } 0x004c5765 inc eax | eax++; 0x004c5767 mov dword [rip + 0x25322b], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_24: 0x004c576d mov rdi, rbp | 0x004c5770 call 0x401790 | rax = strlen (rbp); 0x004c5775 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c5779 jb 0x4c57a4 | 0x004c577b mov edi, 0x4f4c78 | 0x004c5780 mov edx, 0x4f5c9c | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c5785 mov esi, 0x101c | esi = 0x101c; 0x004c578a xor eax, eax | eax = 0; 0x004c578c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5791 mov eax, dword [rip + 0x253201] | eax = (anonymous namespace)::testStatus; 0x004c5797 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c579a ja 0x4c57a4 | goto label_25; | } 0x004c579c inc eax | eax++; 0x004c579e mov dword [rip + 0x2531f4], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_25: 0x004c57a4 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c57a9 pxor xmm0, xmm0 | xmm0 = 0; 0x004c57ad movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c57b3 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c57bb mov al, byte [rbp] | al = *(rbp); 0x004c57be test al, al | | if (al == 0) { 0x004c57c0 je 0x4c57e0 | goto label_26; | } 0x004c57c2 xor ecx, ecx | ecx = 0; 0x004c57c4 nop word cs:[rax + rax] | 0x004c57ce nop | | do { 0x004c57d0 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c57d4 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c57d9 inc rcx | rcx++; 0x004c57dc test al, al | 0x004c57de jne 0x4c57d0 | | } while (al != 0); | label_26: 0x004c57e0 mov r14d, dword [rbx + rbx*4 + 0x4f3b00] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c57e8 movsxd r13, dword [rbx + rbx*4 + 0x4f3b10] | r13 = *((rbx + rbx*4 + 0x4f3b10)); 0x004c57f0 movsxd r12, dword [rbx + rbx*4 + 0x4f3b14] | r12 = *((rbx + rbx*4 + 0x4f3b14)); 0x004c57f8 movsxd r15, dword [rbx + rbx*4 + 0x4f3b18] | r15 = *((rbx + rbx*4 + 0x4f3b18)); 0x004c5800 mov rbx, qword [rbx + rbx*4 + 0x4f3b20] | rbx = *((rbx + rbx*4 + 0x4f3b20)); 0x004c5808 cmp byte [rip + 0x253181], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c580f je 0x4c5830 | 0x004c5811 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c5815 mov edi, 0x4f5ab7 | 0x004c581a mov esi, r14d | esi = r14d; 0x004c581d mov rdx, rbp | rdx = rbp; 0x004c5820 mov ecx, r13d | ecx = r13d; 0x004c5823 mov r8d, r12d | r8d = r12d; 0x004c5826 mov r9d, r15d | r9d = r15d; 0x004c5829 xor eax, eax | eax = 0; 0x004c582b call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c5830 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5835 mov rsi, rbp | rsi = rbp; 0x004c5838 call 0x4e09b0 | unsigned long long&gg(unsigned long long*,char const*) (); 0x004c583d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5842 mov rsi, rbp | rsi = rbp; 0x004c5845 call 0x4e0a90 | voidverify(unsigned long long*,char const*) (); 0x004c584a mov eax, dword [rip + 0x253154] | eax = numCopyCtorCalls; 0x004c5850 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c5854 mov eax, dword [rip + 0x253152] | eax = numCharCtorCalls; 0x004c585a mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c585e cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c5863 je 0x4c5930 | goto label_27; | } 0x004c5869 cmp byte [rip + 0x253120], 0 | 0x004c5870 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c5873 je 0x4c5888 | 0x004c5875 cmp dword [rip + 0x252cf0], 0 | | if (*(obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::firstTime) == 0) { 0x004c587c je 0x4c5888 | goto label_28; | } 0x004c587e mov edi, 0x4f425a | 0x004c5883 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_28: 0x004c5888 mov dword [rip + 0x252cda], 0 | *(obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::firstTime) = 0; 0x004c5892 cmp byte [rip + 0x2530fc], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c5899 je 0x4c58a5 | 0x004c589b mov edi, 0x4f4281 | 0x004c58a0 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c58a5 mov rax, qword [rip + 0x252f74] | rax = Z; 0x004c58ac mov qword [rsp + 0x58], 0x4f6858 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c58b5 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c58ba mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c58c2 test rax, rax | 0x004c58c5 je 0x4c59bd | | while (rax != 0) { | label_3: 0x004c58cb cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c58d1 jb 0x4c5ca1 | goto label_29; | } 0x004c58d7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c58dc lea rsi, [r15*8 + 0x74f520] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c58e4 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c58e9 movsxd r9, eax | r9 = (int64_t) eax; 0x004c58ec mov r10, r9 | r10 = r9; 0x004c58ef sub r10, r13 | r10 -= r13; 0x004c58f2 cmp r10, 4 | | if (r10 < 4) { 0x004c58f6 jb 0x4c5c86 | goto label_30; | } 0x004c58fc mov r11, rbx | r11 = rbx; 0x004c58ff mov r8, r10 | r8 = r10; 0x004c5902 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c5906 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c590a mov rbp, rax | 0x004c590d shr rbp, 2 | rbp >>= 2; 0x004c5911 inc rbp | rbp++; 0x004c5914 mov edi, ebp | edi = ebp; 0x004c5916 and edi, 3 | edi &= 3; 0x004c5919 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c591d jae 0x4c5b76 | goto label_31; | } 0x004c5923 xor ebx, ebx | ebx = 0; 0x004c5925 jmp 0x4c5c25 | goto label_32; | label_27: 0x004c5930 cmp qword [rip + 0x252ee8], 0 | 0x004c5938 mov ebp, r14d | 0x004c593b mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c593e jne 0x4c5960 | 0x004c5940 mov rax, qword [rip + 0x28b971] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c5947 test rax, rax | | if (rax != 0) { 0x004c594a jne 0x4c5960 | goto label_33; | } 0x004c594c call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c5951 mov r11, r12 | r11 = r12; 0x004c5954 nop word cs:[rax + rax] | 0x004c595e nop | | } | label_33: 0x004c5960 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c5965 cmp r12, 6 | | if (r12 < 6) { 0x004c5969 jb 0x4c5ce0 | goto label_34; | } 0x004c596f lea rax, [r15*8 + 0x74f520] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5977 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c597c add r11, r13 | r11 += r13; 0x004c597f mov r9, r11 | r9 = r11; 0x004c5982 sub r9, r13 | r9 -= r13; 0x004c5985 cmp r9, 4 | | if (r9 < 4) { 0x004c5989 jb 0x4c5b4a | goto label_35; | } 0x004c598f mov r10, rbx | r10 = rbx; 0x004c5992 mov r8, r9 | r8 = r9; 0x004c5995 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c5999 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c599d mov rdi, rsi | rdi = rsi; 0x004c59a0 shr rdi, 2 | rdi >>= 2; 0x004c59a4 inc rdi | rdi++; 0x004c59a7 mov ebp, edi | 0x004c59a9 and ebp, 3 | ebp &= 3; 0x004c59ac cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c59b0 jae 0x4c5a3d | goto label_36; | } 0x004c59b6 xor ebx, ebx | ebx = 0; 0x004c59b8 jmp 0x4c5ae5 | goto label_37; 0x004c59bd mov eax, 1 | eax = 1; 0x004c59c2 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c59c7 mov rax, qword [rip + 0x28b8ea] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c59ce test rax, rax | 0x004c59d1 jne 0x4c58cb | | } 0x004c59d7 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c59dc jmp 0x4c58cb | goto label_3; | label_36: 0x004c5a3d lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c5a42 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c5a46 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c5a4a neg rdi | rdi = -rdi; 0x004c5a4d xor ebx, ebx | ebx = 0; 0x004c5a4f nop | | do { 0x004c5a50 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c5a57 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c5a5e lea rdx, [r15*8] | rdx = r15*8; 0x004c5a66 movdqu xmmword [rdx + rbx*8 + 0x74f520], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c5a6f movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1"); 0x004c5a78 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c5a7f pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c5a86 movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0"); 0x004c5a8f movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1"); 0x004c5a98 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c5a9f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c5aa6 movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0"); 0x004c5aaf movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1"); 0x004c5ab8 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c5abf pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c5ac5 movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0"); 0x004c5ace movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1"); 0x004c5ad7 add rbx, 0x10 | rbx += 0x10; 0x004c5adb add rdi, 4 | rdi += 4; 0x004c5adf jne 0x4c5a50 | | } while (rdi != 0); | label_37: 0x004c5ae5 test rbp, rbp | | if (rbp == 0) { 0x004c5ae8 je 0x4c5b34 | goto label_38; | } 0x004c5aea add r13, rbx | r13 += rbx; 0x004c5aed lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c5af2 add r13, rdx | r13 += rdx; 0x004c5af5 shl r15, 3 | r15 <<= 3; 0x004c5af9 lea rsi, [r15 + rbx*8 + 0x74f530] | rsi = r15 + rbx*8 + 0x74f530; 0x004c5b01 shl rbp, 2 | rbp <<= 2; 0x004c5b05 xor edi, edi | edi = 0; 0x004c5b07 nop word [rax + rax] | | do { 0x004c5b10 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c5b18 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c5b20 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c5b26 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c5b2b add rdi, 4 | rdi += 4; 0x004c5b2f cmp rbp, rdi | 0x004c5b32 jne 0x4c5b10 | | } while (rbp != rdi); | label_38: 0x004c5b34 cmp r9, r8 | 0x004c5b37 mov rbx, r10 | rbx = r10; 0x004c5b3a mov ebp, r14d | | if (r9 == r8) { 0x004c5b3d je 0x4c5ce0 | goto label_34; | } 0x004c5b43 add rcx, r8 | rcx += r8; 0x004c5b46 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_35: 0x004c5b4a sub r11, rcx | r11 -= rcx; 0x004c5b4d lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c5b52 xor esi, esi | esi = 0; 0x004c5b54 nop word cs:[rax + rax] | 0x004c5b5e nop | | do { 0x004c5b60 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c5b65 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c5b69 inc rsi | rsi++; 0x004c5b6c cmp rdx, rsi | 0x004c5b6f jne 0x4c5b60 | | } while (rdx != rsi); 0x004c5b71 jmp 0x4c5ce0 | goto label_34; | label_31: 0x004c5b76 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c5b7b add rax, r13 | rax += r13; 0x004c5b7e and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c5b82 neg rbp | rbp = -rbp; 0x004c5b85 xor ebx, ebx | ebx = 0; 0x004c5b87 nop word [rax + rax] | | do { 0x004c5b90 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c5b97 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c5b9e lea rdx, [r15*8] | rdx = r15*8; 0x004c5ba6 movdqu xmmword [rdx + rbx*8 + 0x74f520], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c5baf movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1"); 0x004c5bb8 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c5bbf pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c5bc6 movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0"); 0x004c5bcf movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1"); 0x004c5bd8 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c5bdf pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c5be6 movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0"); 0x004c5bef movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1"); 0x004c5bf8 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c5bff pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c5c05 movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0"); 0x004c5c0e movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1"); 0x004c5c17 add rbx, 0x10 | rbx += 0x10; 0x004c5c1b add rbp, 4 | rbp += 4; 0x004c5c1f jne 0x4c5b90 | | } while (rbp != 0); | label_32: 0x004c5c25 test rdi, rdi | | if (rdi == 0) { 0x004c5c28 je 0x4c5c74 | goto label_39; | } 0x004c5c2a add r13, rbx | r13 += rbx; 0x004c5c2d lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c5c32 add r13, rax | r13 += rax; 0x004c5c35 shl r15, 3 | r15 <<= 3; 0x004c5c39 lea rax, [r15 + rbx*8 + 0x74f530] | rax = r15 + rbx*8 + 0x74f530; 0x004c5c41 shl rdi, 2 | rdi <<= 2; 0x004c5c45 xor ebp, ebp | ebp = 0; 0x004c5c47 nop word [rax + rax] | | do { 0x004c5c50 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c5c58 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c5c60 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c5c66 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c5c6b add rbp, 4 | rbp += 4; 0x004c5c6f cmp rdi, rbp | 0x004c5c72 jne 0x4c5c50 | | } while (rdi != rbp); | label_39: 0x004c5c74 cmp r10, r8 | 0x004c5c77 mov rbx, r11 | rbx = r11; 0x004c5c7a mov ebp, r14d | | if (r10 == r8) { 0x004c5c7d je 0x4c5ca1 | goto label_29; | } 0x004c5c7f add rcx, r8 | rcx += r8; 0x004c5c82 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_30: 0x004c5c86 sub r9, rcx | r9 -= rcx; 0x004c5c89 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c5c8e xor edi, edi | edi = 0; | do { 0x004c5c90 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c5c95 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c5c99 inc rdi | rdi++; 0x004c5c9c cmp rax, rdi | 0x004c5c9f jne 0x4c5c90 | | } while (rax != rdi); | label_29: 0x004c5ca1 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c5ca6 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c5cab mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c5cb2 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c5cb5 cmp byte [rip + 0x252cd9], 0 | 0x004c5cbc mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c5cc1 je 0x4c5ccd | 0x004c5cc3 mov edi, 0x4f43e1 | 0x004c5cc8 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c5ccd cmp byte [rip + 0x252cbc], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c5cd4 je 0x4c5d0b | 0x004c5cd6 mov edi, 0xa | 0x004c5cdb call 0x401720 | eax = putchar (0xa); | label_34: 0x004c5ce0 cmp byte [rip + 0x252ca9], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c5ce7 je 0x4c5d0b | goto label_40; | } 0x004c5ce9 mov edx, dword [rip + 0x252cb5] | edx = numCopyCtorCalls; 0x004c5cef sub edx, dword [rsp + 0x14] | edx -= *((rsp + 0x14)); 0x004c5cf3 mov ecx, dword [rip + 0x252cb3] | ecx = numCharCtorCalls; 0x004c5cf9 sub ecx, dword [rsp + 0x48] | ecx -= *((rsp + 0x48)); 0x004c5cfd mov edi, 0x4f5c2a | 0x004c5d02 mov esi, ebp | esi = ebp; 0x004c5d04 xor eax, eax | eax = 0; 0x004c5d06 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_40: 0x004c5d0b mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c5d0f cmp eax, dword [rip + 0x252c8f] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c5d15 je 0x4c5700 | goto label_4; | } 0x004c5d1b mov edi, 0x4f4c78 | 0x004c5d20 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c5d25 mov esi, 0x103f | esi = 0x103f; 0x004c5d2a xor eax, eax | eax = 0; 0x004c5d2c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5d31 mov eax, dword [rip + 0x252c61] | eax = (anonymous namespace)::testStatus; 0x004c5d37 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c5d3a ja 0x4c5700 | goto label_4; | } 0x004c5d40 inc eax | eax++; 0x004c5d42 mov dword [rip + 0x252c50], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c5d48 jmp 0x4c5700 | goto label_4; | label_23: 0x004c5d4d add rsp, 0x68 | 0x004c5d51 pop rbx | 0x004c5d52 pop r12 | 0x004c5d54 pop r13 | 0x004c5d56 pop r14 | 0x004c5d58 pop r15 | 0x004c5d5a pop rbp | 0x004c5d5b ret | return rax; | }