; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/assume @ 0x4c7db0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_void__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_void_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) */ 0x004c7db0 push rbp | 0x004c7db1 push r15 | 0x004c7db3 push r14 | 0x004c7db5 push r13 | 0x004c7db7 push r12 | 0x004c7db9 push rbx | 0x004c7dba sub rsp, 0x68 | 0x004c7dbe mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c7dc2 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c7dc6 cmp byte [rip + 0x250bc9], 0 | | if (*(obj.verbose) != 0) { 0x004c7dcd je 0x4c7dd9 | 0x004c7dcf mov edi, 0x4f67e9 | 0x004c7dd4 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c7dd9 xor eax, eax | eax = 0; 0x004c7ddb jmp 0x4c7e0c | goto label_5; | label_2: 0x004c7de0 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7de5 mov rsi, rbp | rsi = rbp; 0x004c7de8 call 0x4e1f60 | voidverify(void**,char const*) (); 0x004c7ded mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7df2 mov rsi, rbp | rsi = rbp; 0x004c7df5 call 0x4e21a0 | voidcleanup(void**,char const*) (); 0x004c7dfa mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c7dff inc rax | rax++; 0x004c7e02 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c7e06 je 0x4c8349 | goto label_6; | } | label_5: 0x004c7e0c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c7e11 lea rbp, [rax*8] | rbp = rax*8; 0x004c7e19 mov r12, qword [rbp + rbp*4 + 0x4f3b08] | r12 = *((rbp + rbp*4 + 0x4f3b08)); 0x004c7e21 mov rdi, r12 | 0x004c7e24 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3b08))); 0x004c7e29 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c7e2c jl 0x4c7e57 | 0x004c7e2e mov edi, 0x4f4c78 | 0x004c7e33 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c7e38 mov esi, 0xfe6 | esi = 0xfe6; 0x004c7e3d xor eax, eax | eax = 0; 0x004c7e3f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c7e44 mov eax, dword [rip + 0x250b4e] | eax = (anonymous namespace)::testStatus; 0x004c7e4a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c7e4d ja 0x4c7e57 | goto label_7; | } 0x004c7e4f inc eax | eax++; 0x004c7e51 mov dword [rip + 0x250b41], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_7: 0x004c7e57 mov r13d, dword [rbp + rbp*4 + 0x4f3b00] | r13d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c7e5f movsxd r15, dword [rbp + rbp*4 + 0x4f3b10] | r15 = *((rbp + rbp*4 + 0x4f3b10)); 0x004c7e67 mov ebx, dword [rbp + rbp*4 + 0x4f3b14] | ebx = *((rbp + rbp*4 + 0x4f3b14)); 0x004c7e6e movsxd r14, dword [rbp + rbp*4 + 0x4f3b18] | r14 = *((rbp + rbp*4 + 0x4f3b18)); 0x004c7e76 mov rbp, qword [rbp + rbp*4 + 0x4f3b20] | rbp = *((rbp + rbp*4 + 0x4f3b20)); 0x004c7e7e cmp byte [rip + 0x250b0b], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c7e85 je 0x4c7ea6 | 0x004c7e87 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c7e8b mov edi, 0x4f5ab7 | 0x004c7e90 mov esi, r13d | esi = r13d; 0x004c7e93 mov rdx, r12 | rdx = r12; 0x004c7e96 mov ecx, r15d | ecx = r15d; 0x004c7e99 mov r8d, ebx | r8d = ebx; 0x004c7e9c mov r9d, r14d | r9d = r14d; 0x004c7e9f xor eax, eax | eax = 0; 0x004c7ea1 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c7ea6 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x004c7eab mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7eb0 mov rsi, r12 | rsi = r12; 0x004c7eb3 call 0x4e1e80 | void*&gg(void**,char const*) (); 0x004c7eb8 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7ebd mov rsi, r12 | rsi = r12; 0x004c7ec0 call 0x4e1f60 | voidverify(void**,char const*) (); 0x004c7ec5 mov r12d, dword [rip + 0x250ad8] | r12d = numCopyCtorCalls; 0x004c7ecc mov eax, dword [rip + 0x250ada] | eax = numCharCtorCalls; 0x004c7ed2 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c7ed6 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c7edb je 0x4c7fc0 | goto label_8; | } 0x004c7ee1 cmp byte [rip + 0x250aa8], 0 | 0x004c7ee8 mov ebx, r13d | ebx = r13d; | if (*(obj.veryVerbose) != 0) { 0x004c7eeb je 0x4c7f00 | 0x004c7eed cmp dword [rip + 0x250694], 0 | | if (*(obj.testCopyConstructWithIterators_void__bool__bool__bool_::firstTime) == 0) { 0x004c7ef4 je 0x4c7f00 | goto label_9; | } 0x004c7ef6 mov edi, 0x4f425a | 0x004c7efb call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_9: 0x004c7f00 mov dword [rip + 0x25067e], 0 | *(obj.testCopyConstructWithIterators_void__bool__bool__bool_::firstTime) = 0; 0x004c7f0a cmp byte [rip + 0x250a84], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c7f11 je 0x4c7f1d | 0x004c7f13 mov edi, 0x4f4281 | 0x004c7f18 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c7f1d mov rax, qword [rip + 0x2508fc] | rax = Z; 0x004c7f24 mov qword [rsp + 0x20], 0x4f6858 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c7f2d mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c7f32 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c7f3a test rax, rax | 0x004c7f3d je 0x4c8029 | | while (rax != 0) { | label_0: 0x004c7f43 lea rsi, [r15*8 + 0x74f760] | rsi = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c7f4b mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c7f50 add eax, r15d | eax += r15d; 0x004c7f53 cdqe | rax = (int64_t) eax; 0x004c7f55 lea rdx, [rax*8 + 0x74f760] | rdx = rax*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c7f5d sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c7f60 je 0x4c7f6f | 0x004c7f62 lea rdi, [r14*8 + 0x74f760] | 0x004c7f6a call 0x401930 | memcpy (r14*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u, rsi, rdx); | } 0x004c7f6f mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c7f74 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c7f79 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c7f80 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c7f83 cmp byte [rip + 0x250a0b], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c7f8a je 0x4c7f96 | 0x004c7f8c mov edi, 0x4f43e1 | 0x004c7f91 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c7f96 cmp byte [rip + 0x2509f3], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c7f9d je 0x4c826b | goto label_10; | } 0x004c7fa3 mov edi, 0xa | 0x004c7fa8 call 0x401720 | putchar (0xa); 0x004c7fad jmp 0x4c8241 | goto label_11; | label_8: 0x004c7fc0 cmp qword [rip + 0x250858], 0 | 0x004c7fc8 mov ebx, r13d | ebx = r13d; | if (*(obj.Z) == 0) { 0x004c7fcb jne 0x4c7fdd | 0x004c7fcd mov rax, qword [rip + 0x2892e4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c7fd4 test rax, rax | | if (rax == 0) { 0x004c7fd7 je 0x4c80e3 | goto label_12; | } | } 0x004c7fdd cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c7fe3 jb 0x4c8241 | goto label_11; | } | label_1: 0x004c7fe9 lea rax, [r15*8 + 0x74f760] | rax = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c7ff1 lea rcx, [r14*8 + 0x74f760] | rcx = r14*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c7ff9 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x004c7ffe lea edx, [rbx + r15] | edx = rbx + r15; 0x004c8002 movsxd r9, edx | r9 = (int64_t) edx; 0x004c8005 shl r9, 3 | r9 <<= 3; 0x004c8009 lea rdi, [r15*8] | rdi = r15*8; 0x004c8011 mov r10, r9 | r10 = r9; 0x004c8014 sub r10, rdi | r10 -= rdi; 0x004c8017 add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c801b cmp r10, 0x18 | | if (r10 >= 0x18) { 0x004c801f jae 0x4c809d | goto label_13; | } 0x004c8021 mov ebx, r13d | ebx = r13d; 0x004c8024 jmp 0x4c8220 | goto label_14; 0x004c8029 mov r13d, 1 | r13d = 1; 0x004c802f mov rax, qword [rip + 0x289282] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c8036 test rax, rax | 0x004c8039 jne 0x4c7f43 | | } 0x004c803f call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c8044 jmp 0x4c7f43 | goto label_0; | label_13: 0x004c809d mov r11, rbp | r11 = rbp; 0x004c80a0 lea rsi, [r14*8 + 0x74f760] | rsi = r14*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c80a8 lea edx, [rbx + r15] | edx = rbx + r15; 0x004c80ac movsxd rdx, edx | rdx = (int64_t) edx; 0x004c80af lea rbp, [rdx*8 + 0x74f760] | rbp = rdx*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c80b7 cmp rsi, rbp | | if (rsi >= rbp) { 0x004c80ba jae 0x4c80f9 | goto label_15; | } 0x004c80bc shl rdx, 3 | rdx <<= 3; 0x004c80c0 sub rdx, rdi | rdx -= rdi; 0x004c80c3 lea rdx, [rdx + r14*8 + 0x74f760] | rdx = rdx + r14*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c80cb lea rsi, [r15*8 + 0x74f760] | rsi = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c80d3 cmp rsi, rdx | | if (rsi >= rdx) { 0x004c80d6 jae 0x4c80f9 | goto label_15; | } 0x004c80d8 mov rbp, r11 | 0x004c80db mov ebx, r13d | ebx = r13d; 0x004c80de jmp 0x4c8220 | goto label_14; | label_12: 0x004c80e3 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c80e8 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) >= 6) { 0x004c80ee jae 0x4c7fe9 | goto label_1; | } 0x004c80f4 jmp 0x4c8241 | goto label_11; | label_15: 0x004c80f9 shr r10, 3 | r10 >>= 3; 0x004c80fd inc r10 | r10++; 0x004c8100 mov r8, r10 | r8 = r10; 0x004c8103 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c8107 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c810b mov rbp, rsi | 0x004c810e shr rbp, 2 | rbp >>= 2; 0x004c8112 inc rbp | rbp++; 0x004c8115 mov edx, ebp | edx = ebp; 0x004c8117 and edx, 3 | edx &= 3; 0x004c811a cmp rsi, 0xc | | if (rsi < 0xc) { 0x004c811e jae 0x4c8127 | 0x004c8120 xor ebx, ebx | ebx = 0; 0x004c8122 jmp 0x4c81b0 | goto label_16; | } 0x004c8127 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c812b neg rbp | rbp = -rbp; 0x004c812e mov esi, 0x74f760 | esi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c8133 xor ebx, ebx | ebx = 0; 0x004c8135 nop word cs:[rax + rax] | 0x004c813f nop | | do { 0x004c8140 movups xmm0, xmmword [rsi + r15*8] | __asm ("movups xmm0, xmmword [rsi + r15*8]"); 0x004c8145 movups xmm1, xmmword [rsi + r15*8 + 0x10] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x10]"); 0x004c814b movups xmmword [rsi + r14*8], xmm0 | __asm ("movups xmmword [rsi + r14*8], xmm0"); 0x004c8150 movups xmmword [rsi + r14*8 + 0x10], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x10], xmm1"); 0x004c8156 movups xmm0, xmmword [rsi + r15*8 + 0x20] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x20]"); 0x004c815c movups xmm1, xmmword [rsi + r15*8 + 0x30] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x30]"); 0x004c8162 movups xmmword [rsi + r14*8 + 0x20], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x20], xmm0"); 0x004c8168 movups xmmword [rsi + r14*8 + 0x30], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x30], xmm1"); 0x004c816e movups xmm0, xmmword [rsi + r15*8 + 0x40] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x40]"); 0x004c8174 movups xmm1, xmmword [rsi + r15*8 + 0x50] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x50]"); 0x004c817a movups xmmword [rsi + r14*8 + 0x40], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x40], xmm0"); 0x004c8180 movups xmmword [rsi + r14*8 + 0x50], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x50], xmm1"); 0x004c8186 movdqu xmm0, xmmword [rsi + r15*8 + 0x60] | __asm ("movdqu xmm0, xmmword [rsi + r15*8 + 0x60]"); 0x004c818d movdqu xmm1, xmmword [rsi + r15*8 + 0x70] | __asm ("movdqu xmm1, xmmword [rsi + r15*8 + 0x70]"); 0x004c8194 movdqu xmmword [rsi + r14*8 + 0x60], xmm0 | __asm ("movdqu xmmword [rsi + r14*8 + 0x60], xmm0"); 0x004c819b movdqu xmmword [rsi + r14*8 + 0x70], xmm1 | __asm ("movdqu xmmword [rsi + r14*8 + 0x70], xmm1"); 0x004c81a2 add rbx, 0x10 | rbx += 0x10; 0x004c81a6 sub rsi, 0xffffffffffffff80 | rsi -= 0xffffffffffffff80; 0x004c81aa add rbp, 4 | rbp += 4; 0x004c81ae jne 0x4c8140 | | } while (rbp != 0); | label_16: 0x004c81b0 test rdx, rdx | | if (rdx == 0) { 0x004c81b3 je 0x4c8203 | goto label_17; | } 0x004c81b5 shl r14, 3 | r14 <<= 3; 0x004c81b9 lea rsi, [rbx*8 + 0x74f760] | rsi = rbx*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c81c1 neg rdx | rdx = -rdx; 0x004c81c4 nop word cs:[rax + rax] | 0x004c81ce nop | | do { 0x004c81d0 movdqu xmm0, xmmword [rdi + rbx*8 + 0x74f760] | __asm ("movdqu xmm0, xmmword [rdi + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u]"); 0x004c81d9 movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f770] | __asm ("movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f770]"); 0x004c81e2 movdqu xmmword [r14 + rbx*8 + 0x74f760], xmm0 | __asm ("movdqu xmmword [r14 + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c81ec movdqu xmmword [r14 + rbx*8 + 0x74f770], xmm1 | __asm ("movdqu xmmword [r14 + rbx*8 + 0x74f770], xmm1"); 0x004c81f6 add rbx, 4 | rbx += 4; 0x004c81fa add rsi, 0x20 | rsi += 0x20; 0x004c81fe inc rdx | rdx++; 0x004c8201 jne 0x4c81d0 | | } while (rdx != 0); | label_17: 0x004c8203 cmp r10, r8 | 0x004c8206 mov rbp, r11 | 0x004c8209 mov ebx, r13d | ebx = r13d; | if (r10 == r8) { 0x004c820c je 0x4c8241 | goto label_11; | } 0x004c820e lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c8212 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c8216 nop word cs:[rax + rax] | | label_14: 0x004c8220 sub r9, rax | r9 -= rax; 0x004c8223 lea rdx, [r9 + 0x74f760] | rdx = r9 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c822a xor esi, esi | esi = 0; 0x004c822c nop dword [rax] | | do { 0x004c8230 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c8234 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c8238 add rsi, 8 | rsi += 8; 0x004c823c cmp rdx, rsi | 0x004c823f jne 0x4c8230 | | } while (rdx != rsi); | label_11: 0x004c8241 cmp byte [rip + 0x250748], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c8248 je 0x4c826b | 0x004c824a mov edx, dword [rip + 0x250754] | edx = numCopyCtorCalls; 0x004c8250 sub edx, r12d | edx -= r12d; 0x004c8253 mov ecx, dword [rip + 0x250753] | ecx = numCharCtorCalls; 0x004c8259 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c825d mov edi, 0x4f5c2a | 0x004c8262 mov esi, ebx | esi = ebx; 0x004c8264 xor eax, eax | eax = 0; 0x004c8266 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_10: 0x004c826b cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c8270 je 0x4c82d0 | goto label_18; | } 0x004c8272 cmp r12d, dword [rip + 0x25072b] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c8279 je 0x4c82a4 | 0x004c827b mov edi, 0x4f4c78 | 0x004c8280 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c8285 mov esi, 0x1005 | esi = 0x1005; 0x004c828a xor eax, eax | eax = 0; 0x004c828c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c8291 mov eax, dword [rip + 0x250701] | eax = (anonymous namespace)::testStatus; 0x004c8297 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c829a ja 0x4c82a4 | goto label_19; | } 0x004c829c inc eax | eax++; 0x004c829e mov dword [rip + 0x2506f4], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c82a4 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c82a8 cmp eax, dword [rip + 0x2506fe] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c82ae je 0x4c7de0 | goto label_2; | } 0x004c82b4 mov edi, 0x4f4c78 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c82b9 mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c82be mov esi, 0x1006 | esi = 0x1006; 0x004c82c3 jmp 0x4c8326 | goto label_20; | label_18: 0x004c82d0 add r12d, dword [rsp + 0x48] | r12d += *((rsp + 0x48)); 0x004c82d5 cmp r12d, dword [rip + 0x2506c8] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c82dc jle 0x4c8307 | 0x004c82de mov edi, 0x4f4c78 | 0x004c82e3 mov edx, 0x4f5c78 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c82e8 mov esi, 0x1009 | esi = 0x1009; 0x004c82ed xor eax, eax | eax = 0; 0x004c82ef call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c82f4 mov eax, dword [rip + 0x25069e] | eax = (anonymous namespace)::testStatus; 0x004c82fa cmp eax, 0x64 | | if (eax > 0x64) { 0x004c82fd ja 0x4c8307 | goto label_21; | } 0x004c82ff inc eax | eax++; 0x004c8301 mov dword [rip + 0x250691], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c8307 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c830b cmp eax, dword [rip + 0x25069b] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c8311 je 0x4c7de0 | goto label_2; | } 0x004c8317 mov edi, 0x4f4c78 | 0x004c831c mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c8321 mov esi, 0x100a | esi = 0x100a; | label_20: 0x004c8326 xor eax, eax | eax = 0; 0x004c8328 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c832d mov eax, dword [rip + 0x250665] | eax = (anonymous namespace)::testStatus; 0x004c8333 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c8336 ja 0x4c7de0 | goto label_2; | } 0x004c833c inc eax | eax++; 0x004c833e mov dword [rip + 0x250654], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c8344 jmp 0x4c7de0 | goto label_2; | label_6: 0x004c8349 cmp byte [rip + 0x250646], 0 | | if (*(obj.verbose) != 0) { 0x004c8350 je 0x4c835c | 0x004c8352 mov edi, 0x4f67d2 | 0x004c8357 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c835c xor r12d, r12d | r12d = 0; 0x004c835f jmp 0x4c8397 | goto label_22; | label_4: 0x004c8370 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c8375 mov rsi, rbx | rsi = rbx; 0x004c8378 call 0x4e1f60 | voidverify(void**,char const*) (); 0x004c837d mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c8382 mov rsi, rbx | rsi = rbx; 0x004c8385 call 0x4e21a0 | voidcleanup(void**,char const*) (); 0x004c838a inc r12 | r12++; 0x004c838d cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c8391 je 0x4c89bd | goto label_23; | } | label_22: 0x004c8397 lea rbx, [r12*8] | rbx = r12*8; 0x004c839f mov rbp, qword [rbx + rbx*4 + 0x4f3b08] | rbp = *((rbx + rbx*4 + 0x4f3b08)); 0x004c83a7 mov rdi, rbp | 0x004c83aa call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3b08))); 0x004c83af cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c83b2 jl 0x4c83dd | 0x004c83b4 mov edi, 0x4f4c78 | 0x004c83b9 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c83be mov esi, 0x1019 | esi = 0x1019; 0x004c83c3 xor eax, eax | eax = 0; 0x004c83c5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c83ca mov eax, dword [rip + 0x2505c8] | eax = (anonymous namespace)::testStatus; 0x004c83d0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c83d3 ja 0x4c83dd | goto label_24; | } 0x004c83d5 inc eax | eax++; 0x004c83d7 mov dword [rip + 0x2505bb], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_24: 0x004c83dd mov rdi, rbp | 0x004c83e0 call 0x401790 | rax = strlen (rbp); 0x004c83e5 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c83e9 jb 0x4c8414 | 0x004c83eb mov edi, 0x4f4c78 | 0x004c83f0 mov edx, 0x4f5c9c | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c83f5 mov esi, 0x101c | esi = 0x101c; 0x004c83fa xor eax, eax | eax = 0; 0x004c83fc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c8401 mov eax, dword [rip + 0x250591] | eax = (anonymous namespace)::testStatus; 0x004c8407 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c840a ja 0x4c8414 | goto label_25; | } 0x004c840c inc eax | eax++; 0x004c840e mov dword [rip + 0x250584], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_25: 0x004c8414 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c8419 pxor xmm0, xmm0 | xmm0 = 0; 0x004c841d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c8423 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c842b mov al, byte [rbp] | al = *(rbp); 0x004c842e test al, al | | if (al == 0) { 0x004c8430 je 0x4c8450 | goto label_26; | } 0x004c8432 xor ecx, ecx | ecx = 0; 0x004c8434 nop word cs:[rax + rax] | 0x004c843e nop | | do { 0x004c8440 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c8444 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c8449 inc rcx | rcx++; 0x004c844c test al, al | 0x004c844e jne 0x4c8440 | | } while (al != 0); | label_26: 0x004c8450 mov r14d, dword [rbx + rbx*4 + 0x4f3b00] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c8458 movsxd r13, dword [rbx + rbx*4 + 0x4f3b10] | r13 = *((rbx + rbx*4 + 0x4f3b10)); 0x004c8460 movsxd r12, dword [rbx + rbx*4 + 0x4f3b14] | r12 = *((rbx + rbx*4 + 0x4f3b14)); 0x004c8468 movsxd r15, dword [rbx + rbx*4 + 0x4f3b18] | r15 = *((rbx + rbx*4 + 0x4f3b18)); 0x004c8470 mov rbx, qword [rbx + rbx*4 + 0x4f3b20] | rbx = *((rbx + rbx*4 + 0x4f3b20)); 0x004c8478 cmp byte [rip + 0x250511], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c847f je 0x4c84a0 | 0x004c8481 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c8485 mov edi, 0x4f5ab7 | 0x004c848a mov esi, r14d | esi = r14d; 0x004c848d mov rdx, rbp | rdx = rbp; 0x004c8490 mov ecx, r13d | ecx = r13d; 0x004c8493 mov r8d, r12d | r8d = r12d; 0x004c8496 mov r9d, r15d | r9d = r15d; 0x004c8499 xor eax, eax | eax = 0; 0x004c849b call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c84a0 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c84a5 mov rsi, rbp | rsi = rbp; 0x004c84a8 call 0x4e1e80 | void*&gg(void**,char const*) (); 0x004c84ad mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c84b2 mov rsi, rbp | rsi = rbp; 0x004c84b5 call 0x4e1f60 | voidverify(void**,char const*) (); 0x004c84ba mov eax, dword [rip + 0x2504e4] | eax = numCopyCtorCalls; 0x004c84c0 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c84c4 mov eax, dword [rip + 0x2504e2] | eax = numCharCtorCalls; 0x004c84ca mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c84ce cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c84d3 je 0x4c85a0 | goto label_27; | } 0x004c84d9 cmp byte [rip + 0x2504b0], 0 | 0x004c84e0 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c84e3 je 0x4c84f8 | 0x004c84e5 cmp dword [rip + 0x2500a0], 0 | | if (*(0x0071858c) == 0) { 0x004c84ec je 0x4c84f8 | goto label_28; | } 0x004c84ee mov edi, 0x4f425a | 0x004c84f3 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_28: 0x004c84f8 mov dword [rip + 0x25008a], 0 | *(0x0071858c) = 0; 0x004c8502 cmp byte [rip + 0x25048c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c8509 je 0x4c8515 | 0x004c850b mov edi, 0x4f4281 | 0x004c8510 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c8515 mov rax, qword [rip + 0x250304] | rax = Z; 0x004c851c mov qword [rsp + 0x58], 0x4f6858 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c8525 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c852a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c8532 test rax, rax | 0x004c8535 je 0x4c862d | | while (rax != 0) { | label_3: 0x004c853b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c8541 jb 0x4c8911 | goto label_29; | } 0x004c8547 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c854c lea rsi, [r15*8 + 0x74f760] | rsi = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8554 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c8559 movsxd r9, eax | r9 = (int64_t) eax; 0x004c855c mov r10, r9 | r10 = r9; 0x004c855f sub r10, r13 | r10 -= r13; 0x004c8562 cmp r10, 4 | | if (r10 < 4) { 0x004c8566 jb 0x4c88f6 | goto label_30; | } 0x004c856c mov r11, rbx | r11 = rbx; 0x004c856f mov r8, r10 | r8 = r10; 0x004c8572 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c8576 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c857a mov rbp, rax | 0x004c857d shr rbp, 2 | rbp >>= 2; 0x004c8581 inc rbp | rbp++; 0x004c8584 mov edi, ebp | edi = ebp; 0x004c8586 and edi, 3 | edi &= 3; 0x004c8589 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c858d jae 0x4c87e6 | goto label_31; | } 0x004c8593 xor ebx, ebx | ebx = 0; 0x004c8595 jmp 0x4c8895 | goto label_32; | label_27: 0x004c85a0 cmp qword [rip + 0x250278], 0 | 0x004c85a8 mov ebp, r14d | 0x004c85ab mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c85ae jne 0x4c85d0 | 0x004c85b0 mov rax, qword [rip + 0x288d01] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c85b7 test rax, rax | | if (rax != 0) { 0x004c85ba jne 0x4c85d0 | goto label_33; | } 0x004c85bc call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c85c1 mov r11, r12 | r11 = r12; 0x004c85c4 nop word cs:[rax + rax] | 0x004c85ce nop | | } | label_33: 0x004c85d0 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c85d5 cmp r12, 6 | | if (r12 < 6) { 0x004c85d9 jb 0x4c8950 | goto label_34; | } 0x004c85df lea rax, [r15*8 + 0x74f760] | rax = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c85e7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c85ec add r11, r13 | r11 += r13; 0x004c85ef mov r9, r11 | r9 = r11; 0x004c85f2 sub r9, r13 | r9 -= r13; 0x004c85f5 cmp r9, 4 | | if (r9 < 4) { 0x004c85f9 jb 0x4c87ba | goto label_35; | } 0x004c85ff mov r10, rbx | r10 = rbx; 0x004c8602 mov r8, r9 | r8 = r9; 0x004c8605 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c8609 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c860d mov rdi, rsi | rdi = rsi; 0x004c8610 shr rdi, 2 | rdi >>= 2; 0x004c8614 inc rdi | rdi++; 0x004c8617 mov ebp, edi | 0x004c8619 and ebp, 3 | ebp &= 3; 0x004c861c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c8620 jae 0x4c86ad | goto label_36; | } 0x004c8626 xor ebx, ebx | ebx = 0; 0x004c8628 jmp 0x4c8755 | goto label_37; 0x004c862d mov eax, 1 | eax = 1; 0x004c8632 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c8637 mov rax, qword [rip + 0x288c7a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c863e test rax, rax | 0x004c8641 jne 0x4c853b | | } 0x004c8647 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c864c jmp 0x4c853b | goto label_3; | label_36: 0x004c86ad lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c86b2 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c86b6 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c86ba neg rdi | rdi = -rdi; 0x004c86bd xor ebx, ebx | ebx = 0; 0x004c86bf nop | | do { 0x004c86c0 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c86c7 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c86ce lea rdx, [r15*8] | rdx = r15*8; 0x004c86d6 movdqu xmmword [rdx + rbx*8 + 0x74f760], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c86df movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1"); 0x004c86e8 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c86ef pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c86f6 movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0"); 0x004c86ff movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1"); 0x004c8708 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c870f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c8716 movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0"); 0x004c871f movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1"); 0x004c8728 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c872f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c8735 movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0"); 0x004c873e movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1"); 0x004c8747 add rbx, 0x10 | rbx += 0x10; 0x004c874b add rdi, 4 | rdi += 4; 0x004c874f jne 0x4c86c0 | | } while (rdi != 0); | label_37: 0x004c8755 test rbp, rbp | | if (rbp == 0) { 0x004c8758 je 0x4c87a4 | goto label_38; | } 0x004c875a add r13, rbx | r13 += rbx; 0x004c875d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c8762 add r13, rdx | r13 += rdx; 0x004c8765 shl r15, 3 | r15 <<= 3; 0x004c8769 lea rsi, [r15 + rbx*8 + 0x74f770] | rsi = r15 + rbx*8 + 0x74f770; 0x004c8771 shl rbp, 2 | rbp <<= 2; 0x004c8775 xor edi, edi | edi = 0; 0x004c8777 nop word [rax + rax] | | do { 0x004c8780 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c8788 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c8790 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c8796 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c879b add rdi, 4 | rdi += 4; 0x004c879f cmp rbp, rdi | 0x004c87a2 jne 0x4c8780 | | } while (rbp != rdi); | label_38: 0x004c87a4 cmp r9, r8 | 0x004c87a7 mov rbx, r10 | rbx = r10; 0x004c87aa mov ebp, r14d | | if (r9 == r8) { 0x004c87ad je 0x4c8950 | goto label_34; | } 0x004c87b3 add rcx, r8 | rcx += r8; 0x004c87b6 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_35: 0x004c87ba sub r11, rcx | r11 -= rcx; 0x004c87bd lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c87c2 xor esi, esi | esi = 0; 0x004c87c4 nop word cs:[rax + rax] | 0x004c87ce nop | | do { 0x004c87d0 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c87d5 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c87d9 inc rsi | rsi++; 0x004c87dc cmp rdx, rsi | 0x004c87df jne 0x4c87d0 | | } while (rdx != rsi); 0x004c87e1 jmp 0x4c8950 | goto label_34; | label_31: 0x004c87e6 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c87eb add rax, r13 | rax += r13; 0x004c87ee and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c87f2 neg rbp | rbp = -rbp; 0x004c87f5 xor ebx, ebx | ebx = 0; 0x004c87f7 nop word [rax + rax] | | do { 0x004c8800 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c8807 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c880e lea rdx, [r15*8] | rdx = r15*8; 0x004c8816 movdqu xmmword [rdx + rbx*8 + 0x74f760], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c881f movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1"); 0x004c8828 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c882f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c8836 movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0"); 0x004c883f movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1"); 0x004c8848 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c884f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c8856 movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0"); 0x004c885f movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1"); 0x004c8868 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c886f pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c8875 movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0"); 0x004c887e movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1"); 0x004c8887 add rbx, 0x10 | rbx += 0x10; 0x004c888b add rbp, 4 | rbp += 4; 0x004c888f jne 0x4c8800 | | } while (rbp != 0); | label_32: 0x004c8895 test rdi, rdi | | if (rdi == 0) { 0x004c8898 je 0x4c88e4 | goto label_39; | } 0x004c889a add r13, rbx | r13 += rbx; 0x004c889d lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c88a2 add r13, rax | r13 += rax; 0x004c88a5 shl r15, 3 | r15 <<= 3; 0x004c88a9 lea rax, [r15 + rbx*8 + 0x74f770] | rax = r15 + rbx*8 + 0x74f770; 0x004c88b1 shl rdi, 2 | rdi <<= 2; 0x004c88b5 xor ebp, ebp | ebp = 0; 0x004c88b7 nop word [rax + rax] | | do { 0x004c88c0 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c88c8 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c88d0 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c88d6 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c88db add rbp, 4 | rbp += 4; 0x004c88df cmp rdi, rbp | 0x004c88e2 jne 0x4c88c0 | | } while (rdi != rbp); | label_39: 0x004c88e4 cmp r10, r8 | 0x004c88e7 mov rbx, r11 | rbx = r11; 0x004c88ea mov ebp, r14d | | if (r10 == r8) { 0x004c88ed je 0x4c8911 | goto label_29; | } 0x004c88ef add rcx, r8 | rcx += r8; 0x004c88f2 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_30: 0x004c88f6 sub r9, rcx | r9 -= rcx; 0x004c88f9 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c88fe xor edi, edi | edi = 0; | do { 0x004c8900 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c8905 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c8909 inc rdi | rdi++; 0x004c890c cmp rax, rdi | 0x004c890f jne 0x4c8900 | | } while (rax != rdi); | label_29: 0x004c8911 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c8916 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c891b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c8922 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c8925 cmp byte [rip + 0x250069], 0 | 0x004c892c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c8931 je 0x4c893d | 0x004c8933 mov edi, 0x4f43e1 | 0x004c8938 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c893d cmp byte [rip + 0x25004c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c8944 je 0x4c897b | 0x004c8946 mov edi, 0xa | 0x004c894b call 0x401720 | eax = putchar (0xa); | label_34: 0x004c8950 cmp byte [rip + 0x250039], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c8957 je 0x4c897b | goto label_40; | } 0x004c8959 mov edx, dword [rip + 0x250045] | edx = numCopyCtorCalls; 0x004c895f sub edx, dword [rsp + 0x14] | edx -= *((rsp + 0x14)); 0x004c8963 mov ecx, dword [rip + 0x250043] | ecx = numCharCtorCalls; 0x004c8969 sub ecx, dword [rsp + 0x48] | ecx -= *((rsp + 0x48)); 0x004c896d mov edi, 0x4f5c2a | 0x004c8972 mov esi, ebp | esi = ebp; 0x004c8974 xor eax, eax | eax = 0; 0x004c8976 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_40: 0x004c897b mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c897f cmp eax, dword [rip + 0x25001f] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c8985 je 0x4c8370 | goto label_4; | } 0x004c898b mov edi, 0x4f4c78 | 0x004c8990 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c8995 mov esi, 0x103f | esi = 0x103f; 0x004c899a xor eax, eax | eax = 0; 0x004c899c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c89a1 mov eax, dword [rip + 0x24fff1] | eax = (anonymous namespace)::testStatus; 0x004c89a7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c89aa ja 0x4c8370 | goto label_4; | } 0x004c89b0 inc eax | eax++; 0x004c89b2 mov dword [rip + 0x24ffe0], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c89b8 jmp 0x4c8370 | goto label_4; | label_23: 0x004c89bd add rsp, 0x68 | 0x004c89c1 pop rbx | 0x004c89c2 pop r12 | 0x004c89c4 pop r13 | 0x004c89c6 pop r14 | 0x004c89c8 pop r15 | 0x004c89ca pop rbp | 0x004c89cb ret | return rax; | }