; assembly | /* r2dec pseudo code output */ | /* ball_attributecontext.t/none @ 0x409930 */ | #include | ; (fcn) sym.case3ContextThread () | uint64_t case3ContextThread (void) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | int64_t var_50h; | int64_t var_58h; | int64_t var_60h; | int64_t var_68h; | int64_t var_70h; | int64_t var_80h; | int64_t var_88h; | int64_t var_90h; | int64_t var_98h; | int64_t var_a0h; | int64_t var_a8h; | int64_t var_b0h; | int64_t var_b8h; | int64_t var_c0h; | int64_t var_c8h; | int64_t var_d8h; | int64_t var_e0h; | int64_t var_e8h; | int64_t var_f0h; | int64_t var_f8h; | int64_t var_100h; | int64_t var_108h; | int64_t var_110h; | int64_t var_118h; | int64_t var_120h; | int64_t var_128h; | int64_t var_130h; | int64_t var_138h; | int64_t var_140h; | int64_t var_148h; | int64_t var_150h; 0x00409930 push rbp | 0x00409931 push r15 | 0x00409933 push r14 | 0x00409935 push r13 | 0x00409937 push r12 | 0x00409939 push rbx | 0x0040993a sub rsp, 0x158 | 0x00409941 call 0x4125c0 | rax = BloombergLP::ball::AttributeContext::lookupContext() (); 0x00409946 xor edi, edi | edi = 0; 0x00409948 test rax, rax | 0x0040994b setne dil | dil = (rax != 0) ? 1 : 0; 0x0040994f mov esi, 0x449310 | esi = "0 == Obj::lookupContext()"; 0x00409954 mov edx, 0x440 | edx = 0x440; 0x00409959 call 0x405630 | symaSsErT(int (); 0x0040995e call 0x412420 | rax = BloombergLP::ball::AttributeContext::getContext() (); 0x00409963 mov r13, rax | r13 = rax; 0x00409966 xor edi, edi | edi = 0; 0x00409968 test rax, rax | 0x0040996b sete dil | dil = (rax == 0) ? 1 : 0; 0x0040996f mov esi, 0x44932a | esi = 0x44932a; 0x00409974 mov edx, 0x443 | edx = 0x443; 0x00409979 call 0x405630 | symaSsErT(int (); 0x0040997e call 0x4125c0 | rax = BloombergLP::ball::AttributeContext::lookupContext() (); 0x00409983 xor edi, edi | edi = 0; 0x00409985 cmp r13, rax | 0x00409988 setne dil | dil = (r13 != rax) ? 1 : 0; 0x0040998c mov esi, 0x44932d | esi = "mX == Obj::lookupContext()"; 0x00409991 mov edx, 0x444 | edx = 0x444; 0x00409996 call 0x405630 | symaSsErT(int (); 0x0040999b lea rax, [r13 + 0x10] | rax = r13 + 0x10; 0x0040999f mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004099a4 xor edi, edi | edi = 0; 0x004099a6 cmp dword [r13 + 0x10], 0 | 0x004099ab setne dil | dil = (*((r13 + 0x10)) != 0) ? 1 : 0; 0x004099af mov esi, 0x4497c8 | esi = "0 == X.containers().numContainers()"; 0x004099b4 mov edx, 0x448 | edx = 0x448; 0x004099b9 call 0x405630 | symaSsErT(int (); 0x004099be mov ebx, 0x668400 | ebx = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x004099c3 xor ebp, ebp | ebp = 0; 0x004099c5 jmp 0x4099dd | | while (al == 0) { | label_0: 0x004099d0 inc rbp | rbp++; 0x004099d3 add rbx, 0x50 | rbx += 0x50; 0x004099d7 cmp rbp, 9 | | if (rbp == 9) { 0x004099db je 0x409a44 | goto label_4; | } 0x004099dd mov rdi, r13 | 0x004099e0 mov rsi, rbx | 0x004099e3 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, rbx); 0x004099e8 test al, al | 0x004099ea je 0x4099d0 | | } 0x004099ec mov edi, 0x667f48 | 0x004099f1 mov esi, 0x44c0e5 | 0x004099f6 mov edx, 1 | 0x004099fb call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x00409a00 mov esi, 0x448d51 | 0x00409a05 mov edx, 2 | 0x00409a0a mov rdi, rax | 0x00409a0d call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409a12 mov rdi, rax | rdi = rax; 0x00409a15 mov esi, ebp | esi = ebp; 0x00409a17 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409a1c mov esi, 0x44abfd | 0x00409a21 mov edx, 1 | 0x00409a26 mov rdi, rax | 0x00409a29 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x00409a2e mov esi, 0x4497ec | esi = "false == X.hasAttribute(ATTRS[i])"; 0x00409a33 mov edi, 1 | edi = 1; 0x00409a38 mov edx, 0x44b | edx = 0x44b; 0x00409a3d call 0x405630 | symaSsErT(int (); 0x00409a42 jmp 0x4099d0 | goto label_0; | label_4: 0x00409a44 mov qword [rsp + 0x18], 0x448ba0 | *((rsp + 0x18)) = vtable.AttributeSet.0; 0x00409a4d mov rax, qword [rip + 0x25ed2c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00409a54 test rax, rax | | if (rax == 0) { 0x00409a57 jne 0x409a5e | 0x00409a59 call 0x41f6c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00409a5e mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x00409a63 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00409a66 movups xmmword [rsp + 0x28], xmm0 | __asm ("movups xmmword [rsp + 0x28], xmm0"); 0x00409a6b mov dword [rsp + 0x38], 1 | *((rsp + 0x38)) = 1; 0x00409a73 lea r14, [rsp + 0x40] | r14 = rsp + 0x40; 0x00409a78 mov dword [rsp + 0x58], 0 | *((rsp + 0x58)) = 0; 0x00409a80 mov qword [rsp + 0x50], r14 | *((rsp + 0x50)) = r14; 0x00409a85 mov qword [rsp + 0x48], 0 | *((rsp + 0x48)) = 0; 0x00409a8e mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409a96 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409a9e lea rdi, [rsp + 0xb8] | 0x00409aa6 lea rdx, [rsp + 0x18] | 0x00409aab mov rsi, r13 | 0x00409aae call 0x411d90 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0xb8, r13, rsp + 0x18); 0x00409ab3 xor edi, edi | edi = 0; 0x00409ab5 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409aba cmp dword [rax], 1 | 0x00409abd setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x00409ac1 mov esi, 0x44980e | esi = "1 == X.containers().numContainers()"; 0x00409ac6 mov edx, 0x450 | edx = 0x450; 0x00409acb call 0x405630 | symaSsErT(int (); 0x00409ad0 mov ebx, 0x668400 | ebx = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x00409ad5 xor ebp, ebp | ebp = 0; 0x00409ad7 jmp 0x409aed | | while (al == 0) { | label_1: 0x00409ae0 inc rbp | rbp++; 0x00409ae3 add rbx, 0x50 | rbx += 0x50; 0x00409ae7 cmp rbp, 9 | | if (rbp == 9) { 0x00409aeb je 0x409b54 | goto label_5; | } 0x00409aed mov rdi, r13 | 0x00409af0 mov rsi, rbx | 0x00409af3 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, rbx); 0x00409af8 test al, al | 0x00409afa je 0x409ae0 | | } 0x00409afc mov edi, 0x667f48 | 0x00409b01 mov esi, 0x44c0e5 | 0x00409b06 mov edx, 1 | 0x00409b0b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x00409b10 mov esi, 0x448d51 | 0x00409b15 mov edx, 2 | 0x00409b1a mov rdi, rax | 0x00409b1d call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409b22 mov rdi, rax | rdi = rax; 0x00409b25 mov esi, ebp | esi = ebp; 0x00409b27 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409b2c mov esi, 0x44abfd | 0x00409b31 mov edx, 1 | 0x00409b36 mov rdi, rax | 0x00409b39 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x00409b3e mov esi, 0x4497ec | esi = "false == X.hasAttribute(ATTRS[i])"; 0x00409b43 mov edi, 1 | edi = 1; 0x00409b48 mov edx, 0x453 | edx = 0x453; 0x00409b4d call 0x405630 | symaSsErT(int (); 0x00409b52 jmp 0x409ae0 | goto label_1; | label_5: 0x00409b54 mov qword [rsp + 0x60], 0x448ba0 | *((rsp + 0x60)) = vtable.AttributeSet.0; 0x00409b5d mov rax, qword [rip + 0x25ec1c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00409b64 test rax, rax | | if (rax == 0) { 0x00409b67 jne 0x409b6e | 0x00409b69 call 0x41f6c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00409b6e mov qword [rsp + 0x68], rax | *((rsp + 0x68)) = rax; 0x00409b73 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00409b76 movups xmmword [rsp + 0x70], xmm0 | __asm ("movups xmmword [rsp + 0x70], xmm0"); 0x00409b7b mov dword [rsp + 0x80], 1 | *((rsp + 0x80)) = 1; 0x00409b86 lea rax, [rsp + 0x88] | rax = rsp + 0x88; 0x00409b8e mov dword [rsp + 0xa0], 0 | *((rsp + 0xa0)) = 0; 0x00409b99 mov qword [rsp + 0x98], rax | *((rsp + 0x98)) = rax; 0x00409ba1 mov qword [rsp + 0x90], 0 | *((rsp + 0x90)) = 0; 0x00409bad mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409bb5 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409bbd lea rdi, [rsp + 0x10] | 0x00409bc2 lea rdx, [rsp + 0x60] | 0x00409bc7 mov rsi, r13 | 0x00409bca call 0x411d90 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x10, r13, rsp + 0x60); 0x00409bcf xor edi, edi | edi = 0; 0x00409bd1 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409bd6 cmp dword [rax], 2 | 0x00409bd9 setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x00409bdd mov esi, 0x449832 | esi = "2 == X.containers().numContainers()"; 0x00409be2 mov edx, 0x459 | edx = 0x459; 0x00409be7 call 0x405630 | symaSsErT(int (); 0x00409bec mov rax, qword [rsp + 0x10] | rax = *((rsp + 0x10)); 0x00409bf1 mov qword [rsp + 0x150], rax | *((rsp + 0x150)) = rax; 0x00409bf9 mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409c01 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409c09 lea rsi, [rsp + 0x150] | 0x00409c11 mov rdi, r13 | 0x00409c14 call 0x411e00 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r13, rsp + 0x150); 0x00409c19 xor edi, edi | edi = 0; 0x00409c1b mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409c20 cmp dword [rax], 1 | 0x00409c23 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x00409c27 mov esi, 0x44980e | esi = "1 == X.containers().numContainers()"; 0x00409c2c mov edx, 0x45c | edx = 0x45c; 0x00409c31 call 0x405630 | symaSsErT(int (); 0x00409c36 mov qword [rsp + 0x60], 0x448ba0 | *((rsp + 0x60)) = vtable.AttributeSet.0; 0x00409c3f lea rdi, [rsp + 0x68] | 0x00409c44 call 0x40fd00 | bsl::set>::~set() (rsp + 0x68); 0x00409c49 lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; 0x00409c4e call 0x411b90 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x00409c53 mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x00409c5b mov qword [rsp + 0x148], rax | *((rsp + 0x148)) = rax; 0x00409c63 mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409c6b mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409c73 lea rsi, [rsp + 0x148] | 0x00409c7b mov rdi, r13 | 0x00409c7e call 0x411e00 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r13, rsp + 0x148); 0x00409c83 xor edi, edi | edi = 0; 0x00409c85 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409c8a cmp dword [rax], 0 | 0x00409c8d setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x00409c91 mov esi, 0x4497c8 | esi = "0 == X.containers().numContainers()"; 0x00409c96 mov edx, 0x460 | edx = 0x460; 0x00409c9b call 0x405630 | symaSsErT(int (); 0x00409ca0 mov qword [rsp + 0x18], 0x448ba0 | *((rsp + 0x18)) = vtable.AttributeSet.0; 0x00409ca9 lea rdi, [rsp + 0x20] | 0x00409cae call 0x40fd00 | bsl::set>::~set() (rsp + 0x20); 0x00409cb3 lea rdi, [rsp + 0x18] | rdi = rsp + 0x18; 0x00409cb8 call 0x411b90 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x00409cbd mov qword [rsp + 0x18], 0x448ba0 | *((rsp + 0x18)) = vtable.AttributeSet.0; 0x00409cc6 mov rax, qword [rip + 0x25eab3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00409ccd test rax, rax | | if (rax == 0) { 0x00409cd0 jne 0x409cd7 | 0x00409cd2 call 0x41f6c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00409cd7 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x00409cdc xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00409cdf movups xmmword [rsp + 0x28], xmm0 | __asm ("movups xmmword [rsp + 0x28], xmm0"); 0x00409ce4 mov dword [rsp + 0x38], 1 | *((rsp + 0x38)) = 1; 0x00409cec mov dword [rsp + 0x58], 0 | *((rsp + 0x58)) = 0; 0x00409cf4 mov qword [rsp + 0x50], r14 | *((rsp + 0x50)) = r14; 0x00409cf9 mov qword [rsp + 0x48], 0 | *((rsp + 0x48)) = 0; 0x00409d02 mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409d0a mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409d12 lea rdi, [rsp + 0x60] | 0x00409d17 lea rdx, [rsp + 0x18] | 0x00409d1c mov rsi, r13 | 0x00409d1f call 0x411d90 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x60, r13, rsp + 0x18); 0x00409d24 xor edi, edi | edi = 0; 0x00409d26 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409d2b cmp dword [rax], 1 | 0x00409d2e setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x00409d32 mov esi, 0x44980e | esi = "1 == X.containers().numContainers()"; 0x00409d37 mov edx, 0x467 | edx = 0x467; 0x00409d3c call 0x405630 | symaSsErT(int (); 0x00409d41 xor ebx, ebx | ebx = 0; 0x00409d43 lea r12, [rsp + 0xb8] | r12 = rsp + 0xb8; 0x00409d4b lea rbp, [rsp + 0x18] | rbp = rsp + 0x18; 0x00409d50 jmp 0x409d6d | | while (r15 == 9) { 0x00409d60 inc rbx | rbx++; 0x00409d63 cmp rbx, 9 | | if (rbx == 9) { 0x00409d67 je 0x409fa6 | goto label_6; | } 0x00409d6d mov rax, qword [rsp + 0x60] | rax = *((rsp + 0x60)); 0x00409d72 mov qword [rsp + 0x140], rax | *((rsp + 0x140)) = rax; 0x00409d7a mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409d82 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409d8a mov rdi, r13 | 0x00409d8d lea rsi, [rsp + 0x140] | 0x00409d95 call 0x411e00 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r13, rsp + 0x140); 0x00409d9a xor edi, edi | edi = 0; 0x00409d9c mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409da1 cmp dword [rax], 0 | 0x00409da4 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x00409da8 mov esi, 0x4497c8 | esi = "0 == X.containers().numContainers()"; 0x00409dad mov edx, 0x46b | edx = 0x46b; 0x00409db2 call 0x405630 | symaSsErT(int (); 0x00409db7 lea rax, [rbx + rbx*4] | rax = rbx * 5; 0x00409dbb shl rax, 4 | rax <<= 4; 0x00409dbf lea rsi, [rax + 0x668400] | 0x00409dc6 lea rdi, [rsp + 0x20] | 0x00409dcb call 0x40fe00 | bsl::set>::insert(BloombergLP::ball::Attributeconst&) (rsp + 0x20, rax + obj.BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS); 0x00409dd0 mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409dd8 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409de0 mov rdi, r12 | 0x00409de3 mov rsi, r13 | 0x00409de6 mov rdx, rbp | 0x00409de9 call 0x411d90 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (r12, r13, rbp); 0x00409dee mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x00409df6 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x00409dfb xor edi, edi | edi = 0; 0x00409dfd mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00409e02 cmp dword [rax], 1 | 0x00409e05 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x00409e09 mov esi, 0x44980e | esi = "1 == X.containers().numContainers()"; 0x00409e0e mov edx, 0x470 | edx = 0x470; 0x00409e13 call 0x405630 | symaSsErT(int (); 0x00409e18 mov r14d, 0x668400 | r14d = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x00409e1e xor r15d, r15d | r15d = 0; 0x00409e21 jmp 0x409e41 | goto label_7; | label_2: 0x00409e30 inc r15 | r15++; 0x00409e33 add r14, 0x50 | r14 += 0x50; 0x00409e37 cmp r15, 9 | 0x00409e3b je 0x409d60 | | } | label_7: 0x00409e41 mov rdi, r13 | 0x00409e44 mov rsi, r14 | 0x00409e47 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, r14); 0x00409e4c cmp r15, rbx | 0x00409e4f setbe cl | cl = (r15 <= rbx) ? 1 : 0; 0x00409e52 cmp cl, al | | if (cl != al) { 0x00409e54 je 0x409ef1 | 0x00409e5a mov edi, 0x667f48 | 0x00409e5f mov esi, 0x44c0e5 | 0x00409e64 mov edx, 1 | 0x00409e69 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x00409e6e mov esi, 0x448d51 | 0x00409e73 mov edx, 2 | 0x00409e78 mov rdi, rax | 0x00409e7b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409e80 mov rdi, rax | rdi = rax; 0x00409e83 mov esi, ebx | esi = ebx; 0x00409e85 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409e8a mov esi, 0x44acc0 | 0x00409e8f mov edx, 1 | 0x00409e94 mov rdi, rax | 0x00409e97 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44acc0, 1); 0x00409e9c mov esi, 0x44956b | 0x00409ea1 mov edx, 1 | 0x00409ea6 mov rdi, rax | 0x00409ea9 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44956b, 1); 0x00409eae mov esi, 0x448d51 | 0x00409eb3 mov edx, 2 | 0x00409eb8 mov rdi, rax | 0x00409ebb call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409ec0 mov rdi, rax | rdi = rax; 0x00409ec3 mov esi, r15d | esi = r15d; 0x00409ec6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409ecb mov esi, 0x44abfd | 0x00409ed0 mov edx, 1 | 0x00409ed5 mov rdi, rax | 0x00409ed8 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x00409edd mov esi, 0x449856 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x00409ee2 mov edi, 1 | edi = 1; 0x00409ee7 mov edx, 0x475 | edx = 0x475; 0x00409eec call 0x405630 | symaSsErT(int (); | } 0x00409ef1 mov rdi, r13 | 0x00409ef4 mov rsi, r14 | 0x00409ef7 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, r14); 0x00409efc cmp r15, rbx | 0x00409eff setbe cl | cl = (r15 <= rbx) ? 1 : 0; 0x00409f02 cmp cl, al | | if (cl == al) { 0x00409f04 je 0x409e30 | goto label_2; | } 0x00409f0a mov edi, 0x667f48 | 0x00409f0f mov esi, 0x44c0e5 | 0x00409f14 mov edx, 1 | 0x00409f19 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x00409f1e mov esi, 0x448d51 | 0x00409f23 mov edx, 2 | 0x00409f28 mov rdi, rax | 0x00409f2b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409f30 mov rdi, rax | rdi = rax; 0x00409f33 mov esi, ebx | esi = ebx; 0x00409f35 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409f3a mov esi, 0x44acc0 | 0x00409f3f mov edx, 1 | 0x00409f44 mov rdi, rax | 0x00409f47 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44acc0, 1); 0x00409f4c mov esi, 0x44956b | 0x00409f51 mov edx, 1 | 0x00409f56 mov rdi, rax | 0x00409f59 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44956b, 1); 0x00409f5e mov esi, 0x448d51 | 0x00409f63 mov edx, 2 | 0x00409f68 mov rdi, rax | 0x00409f6b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x00409f70 mov rdi, rax | rdi = rax; 0x00409f73 mov esi, r15d | esi = r15d; 0x00409f76 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00409f7b mov esi, 0x44abfd | 0x00409f80 mov edx, 1 | 0x00409f85 mov rdi, rax | 0x00409f88 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x00409f8d mov esi, 0x44987a | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x00409f92 mov edi, 1 | edi = 1; 0x00409f97 mov edx, 0x476 | edx = 0x476; 0x00409f9c call 0x405630 | symaSsErT(int (); 0x00409fa1 jmp 0x409e30 | goto label_2; | label_6: 0x00409fa6 xor ebx, ebx | ebx = 0; 0x00409fa8 lea r14, [rsp + 0x18] | r14 = rsp + 0x18; 0x00409fad lea r12, [rsp + 0xb8] | r12 = rsp + 0xb8; 0x00409fb5 jmp 0x409fcd | | while (r15 == 9) { 0x00409fc0 inc rbx | rbx++; 0x00409fc3 cmp rbx, 9 | | if (rbx == 9) { 0x00409fc7 je 0x40a1f6 | goto label_8; | } 0x00409fcd mov rax, qword [rsp + 0x60] | rax = *((rsp + 0x60)); 0x00409fd2 mov qword [rsp + 0x138], rax | *((rsp + 0x138)) = rax; 0x00409fda mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x00409fe2 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x00409fea mov rdi, r13 | 0x00409fed lea rsi, [rsp + 0x138] | 0x00409ff5 call 0x411e00 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r13, rsp + 0x138); 0x00409ffa xor edi, edi | edi = 0; 0x00409ffc mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0040a001 cmp dword [rax], 0 | 0x0040a004 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040a008 mov esi, 0x4497c8 | esi = "0 == X.containers().numContainers()"; 0x0040a00d mov edx, 0x47c | edx = 0x47c; 0x0040a012 call 0x405630 | symaSsErT(int (); 0x0040a017 lea rax, [rbx + rbx*4] | rax = rbx * 5; 0x0040a01b shl rax, 4 | rax <<= 4; 0x0040a01f lea rsi, [rax + 0x668400] | 0x0040a026 mov rdi, r14 | 0x0040a029 call 0x4057c0 | AttributeSet::remove(BloombergLP::ball::Attributeconst&) (r14, rax + obj.BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS); 0x0040a02e mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x0040a036 mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x0040a03e mov rdi, r12 | 0x0040a041 mov rsi, r13 | 0x0040a044 mov rdx, r14 | 0x0040a047 call 0x411d90 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (r12, r13, r14); 0x0040a04c mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x0040a054 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x0040a059 xor edi, edi | edi = 0; 0x0040a05b mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0040a060 cmp dword [rax], 1 | 0x0040a063 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040a067 mov esi, 0x44980e | esi = "1 == X.containers().numContainers()"; 0x0040a06c mov edx, 0x481 | edx = 0x481; 0x0040a071 call 0x405630 | symaSsErT(int (); 0x0040a076 mov ebp, 0x668400 | 0x0040a07b xor r15d, r15d | r15d = 0; 0x0040a07e jmp 0x40a091 | goto label_9; | label_3: 0x0040a080 inc r15 | r15++; 0x0040a083 add rbp, 0x50 | rbp += 0x50; 0x0040a087 cmp r15, 9 | 0x0040a08b je 0x409fc0 | | } | label_9: 0x0040a091 mov rdi, r13 | 0x0040a094 mov rsi, rbp | 0x0040a097 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, rbp); 0x0040a09c cmp r15, rbx | 0x0040a09f seta cl | cl = (r15 > rbx) ? 1 : 0; 0x0040a0a2 cmp cl, al | | if (cl != al) { 0x0040a0a4 je 0x40a141 | 0x0040a0aa mov edi, 0x667f48 | 0x0040a0af mov esi, 0x44c0e5 | 0x0040a0b4 mov edx, 1 | 0x0040a0b9 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x0040a0be mov esi, 0x448d51 | 0x0040a0c3 mov edx, 2 | 0x0040a0c8 mov rdi, rax | 0x0040a0cb call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x0040a0d0 mov rdi, rax | rdi = rax; 0x0040a0d3 mov esi, ebx | esi = ebx; 0x0040a0d5 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040a0da mov esi, 0x44acc0 | 0x0040a0df mov edx, 1 | 0x0040a0e4 mov rdi, rax | 0x0040a0e7 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44acc0, 1); 0x0040a0ec mov esi, 0x44956b | 0x0040a0f1 mov edx, 1 | 0x0040a0f6 mov rdi, rax | 0x0040a0f9 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44956b, 1); 0x0040a0fe mov esi, 0x448d51 | 0x0040a103 mov edx, 2 | 0x0040a108 mov rdi, rax | 0x0040a10b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x0040a110 mov rdi, rax | rdi = rax; 0x0040a113 mov esi, r15d | esi = r15d; 0x0040a116 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040a11b mov esi, 0x44abfd | 0x0040a120 mov edx, 1 | 0x0040a125 mov rdi, rax | 0x0040a128 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x0040a12d mov esi, 0x449856 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x0040a132 mov edi, 1 | edi = 1; 0x0040a137 mov edx, 0x486 | edx = 0x486; 0x0040a13c call 0x405630 | symaSsErT(int (); | } 0x0040a141 mov rdi, r13 | 0x0040a144 mov rsi, rbp | 0x0040a147 call 0x411e90 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r13, rbp); 0x0040a14c cmp r15, rbx | 0x0040a14f seta cl | cl = (r15 > rbx) ? 1 : 0; 0x0040a152 cmp cl, al | | if (cl == al) { 0x0040a154 je 0x40a080 | goto label_3; | } 0x0040a15a mov edi, 0x667f48 | 0x0040a15f mov esi, 0x44c0e5 | 0x0040a164 mov edx, 1 | 0x0040a169 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44c0e5, 1); 0x0040a16e mov esi, 0x448d51 | 0x0040a173 mov edx, 2 | 0x0040a178 mov rdi, rax | 0x0040a17b call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x0040a180 mov rdi, rax | rdi = rax; 0x0040a183 mov esi, ebx | esi = ebx; 0x0040a185 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040a18a mov esi, 0x44acc0 | 0x0040a18f mov edx, 1 | 0x0040a194 mov rdi, rax | 0x0040a197 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44acc0, 1); 0x0040a19c mov esi, 0x44956b | 0x0040a1a1 mov edx, 1 | 0x0040a1a6 mov rdi, rax | 0x0040a1a9 call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44956b, 1); 0x0040a1ae mov esi, 0x448d51 | 0x0040a1b3 mov edx, 2 | 0x0040a1b8 mov rdi, rax | 0x0040a1bb call 0x4112a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x448d51, 2); 0x0040a1c0 mov rdi, rax | rdi = rax; 0x0040a1c3 mov esi, r15d | esi = r15d; 0x0040a1c6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040a1cb mov esi, 0x44abfd | 0x0040a1d0 mov edx, 1 | 0x0040a1d5 mov rdi, rax | 0x0040a1d8 call 0x4112a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44abfd, 1); 0x0040a1dd mov esi, 0x44987a | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x0040a1e2 mov edi, 1 | edi = 1; 0x0040a1e7 mov edx, 0x487 | edx = 0x487; 0x0040a1ec call 0x405630 | symaSsErT(int (); 0x0040a1f1 jmp 0x40a080 | goto label_3; | label_8: 0x0040a1f6 mov rax, qword [rsp + 0x60] | rax = *((rsp + 0x60)); 0x0040a1fb mov qword [rsp + 0x130], rax | *((rsp + 0x130)) = rax; 0x0040a203 mov qword [r13 + 0x20], 0 | *((r13 + 0x20)) = 0; 0x0040a20b mov qword [r13 + 0x28], 0xffffffffffffffff | *((r13 + 0x28)) = 0xffffffffffffffff; 0x0040a213 lea rsi, [rsp + 0x130] | 0x0040a21b mov rdi, r13 | 0x0040a21e call 0x411e00 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r13, rsp + 0x130); 0x0040a223 xor edi, edi | edi = 0; 0x0040a225 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0040a22a cmp dword [rax], 0 | 0x0040a22d setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040a231 mov esi, 0x4497c8 | esi = "0 == X.containers().numContainers()"; | }