; assembly | /* r2dec pseudo code output */ | /* ball_attributecontext.t/assume @ 0x40ac00 */ | #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_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | int64_t var_50h; | int64_t var_5ch; | int64_t var_60h; | int64_t var_68h; | int64_t var_70h; | int64_t var_78h; | 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_d0h; | int64_t var_d8h; | 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; | int64_t var_158h; | int64_t var_160h; 0x0040ac00 push rbp | 0x0040ac01 push r15 | 0x0040ac03 push r14 | 0x0040ac05 push r13 | 0x0040ac07 push r12 | 0x0040ac09 push rbx | 0x0040ac0a sub rsp, 0x168 | 0x0040ac11 call 0x414e40 | rax = BloombergLP::ball::AttributeContext::lookupContext() (); 0x0040ac16 xor edi, edi | edi = 0; 0x0040ac18 test rax, rax | 0x0040ac1b setne dil | dil = (rax != 0) ? 1 : 0; 0x0040ac1f mov esi, 0x44b7c2 | esi = "0 == Obj::lookupContext()"; 0x0040ac24 mov edx, 0x440 | edx = 0x440; 0x0040ac29 call 0x405860 | symaSsErT(int (); 0x0040ac2e call 0x414ca0 | rax = BloombergLP::ball::AttributeContext::getContext() (); 0x0040ac33 mov r12, rax | r12 = rax; 0x0040ac36 xor edi, edi | edi = 0; 0x0040ac38 test rax, rax | 0x0040ac3b sete dil | dil = (rax == 0) ? 1 : 0; 0x0040ac3f mov esi, 0x44b7dc | esi = 0x44b7dc; 0x0040ac44 mov edx, 0x443 | edx = 0x443; 0x0040ac49 call 0x405860 | symaSsErT(int (); 0x0040ac4e call 0x414e40 | rax = BloombergLP::ball::AttributeContext::lookupContext() (); 0x0040ac53 xor edi, edi | edi = 0; 0x0040ac55 cmp r12, rax | 0x0040ac58 setne dil | dil = (r12 != rax) ? 1 : 0; 0x0040ac5c mov esi, 0x44b7df | esi = "mX == Obj::lookupContext()"; 0x0040ac61 mov edx, 0x444 | edx = 0x444; 0x0040ac66 call 0x405860 | symaSsErT(int (); 0x0040ac6b lea rax, [r12 + 0x10] | rax = r12 + 0x10; 0x0040ac70 mov qword [rsp], rax | *(rsp) = rax; 0x0040ac74 xor edi, edi | edi = 0; 0x0040ac76 cmp dword [r12 + 0x10], 0 | 0x0040ac7c setne dil | dil = (*((r12 + 0x10)) != 0) ? 1 : 0; 0x0040ac80 mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040ac85 mov edx, 0x448 | edx = 0x448; 0x0040ac8a call 0x405860 | symaSsErT(int (); 0x0040ac8f mov ebx, 0x66a400 | ebx = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040ac94 xor ebp, ebp | ebp = 0; 0x0040ac96 jmp 0x40acad | | while (al == 0) { | label_0: 0x0040aca0 inc rbp | rbp++; 0x0040aca3 add rbx, 0x50 | rbx += 0x50; 0x0040aca7 cmp rbp, 9 | | if (rbp == 9) { 0x0040acab je 0x40ad14 | goto label_10; | } 0x0040acad mov rdi, r12 | 0x0040acb0 mov rsi, rbx | 0x0040acb3 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbx); 0x0040acb8 test al, al | 0x0040acba je 0x40aca0 | | } 0x0040acbc mov edi, 0x669f48 | 0x0040acc1 mov esi, 0x44e5a5 | 0x0040acc6 mov edx, 1 | 0x0040accb call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040acd0 mov esi, 0x44b203 | 0x0040acd5 mov edx, 2 | 0x0040acda mov rdi, rax | 0x0040acdd call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040ace2 mov rdi, rax | rdi = rax; 0x0040ace5 mov esi, ebp | esi = ebp; 0x0040ace7 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040acec mov esi, 0x44d0bd | 0x0040acf1 mov edx, 1 | 0x0040acf6 mov rdi, rax | 0x0040acf9 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040acfe mov esi, 0x44bc9e | esi = "false == X.hasAttribute(ATTRS[i])"; 0x0040ad03 mov edi, 1 | edi = 1; 0x0040ad08 mov edx, 0x44b | edx = 0x44b; 0x0040ad0d call 0x405860 | symaSsErT(int (); 0x0040ad12 jmp 0x40aca0 | goto label_0; | label_10: 0x0040ad14 mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040ad1d mov rax, qword [rip + 0x25fa5c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040ad24 test rax, rax | | if (rax == 0) { 0x0040ad27 jne 0x40ad2e | 0x0040ad29 call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040ad2e mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040ad33 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040ad36 movups xmmword [rsp + 0x18], xmm0 | __asm ("movups xmmword [rsp + 0x18], xmm0"); 0x0040ad3b mov dword [rsp + 0x28], 1 | *((rsp + 0x28)) = 1; 0x0040ad43 lea r14, [rsp + 0x30] | r14 = rsp + 0x30; 0x0040ad48 mov dword [rsp + 0x48], 0 | *((rsp + 0x48)) = 0; 0x0040ad50 mov qword [rsp + 0x40], r14 | *((rsp + 0x40)) = r14; 0x0040ad55 mov qword [rsp + 0x38], 0 | *((rsp + 0x38)) = 0; 0x0040ad5e mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040ad67 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040ad70 lea rdi, [rsp + 0xc8] | 0x0040ad78 lea rdx, [rsp + 8] | 0x0040ad7d mov rsi, r12 | 0x0040ad80 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0xc8, r12, rsp + 8); 0x0040ad85 xor edi, edi | edi = 0; 0x0040ad87 mov rax, qword [rsp] | rax = *(rsp); 0x0040ad8b cmp dword [rax], 1 | 0x0040ad8e setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040ad92 mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040ad97 mov edx, 0x450 | edx = 0x450; 0x0040ad9c call 0x405860 | symaSsErT(int (); 0x0040ada1 mov ebx, 0x66a400 | ebx = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040ada6 xor ebp, ebp | ebp = 0; 0x0040ada8 jmp 0x40adbd | | while (al == 0) { | label_1: 0x0040adb0 inc rbp | rbp++; 0x0040adb3 add rbx, 0x50 | rbx += 0x50; 0x0040adb7 cmp rbp, 9 | | if (rbp == 9) { 0x0040adbb je 0x40ae24 | goto label_11; | } 0x0040adbd mov rdi, r12 | 0x0040adc0 mov rsi, rbx | 0x0040adc3 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbx); 0x0040adc8 test al, al | 0x0040adca je 0x40adb0 | | } 0x0040adcc mov edi, 0x669f48 | 0x0040add1 mov esi, 0x44e5a5 | 0x0040add6 mov edx, 1 | 0x0040addb call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040ade0 mov esi, 0x44b203 | 0x0040ade5 mov edx, 2 | 0x0040adea mov rdi, rax | 0x0040aded call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040adf2 mov rdi, rax | rdi = rax; 0x0040adf5 mov esi, ebp | esi = ebp; 0x0040adf7 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040adfc mov esi, 0x44d0bd | 0x0040ae01 mov edx, 1 | 0x0040ae06 mov rdi, rax | 0x0040ae09 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040ae0e mov esi, 0x44bc9e | esi = "false == X.hasAttribute(ATTRS[i])"; 0x0040ae13 mov edi, 1 | edi = 1; 0x0040ae18 mov edx, 0x453 | edx = 0x453; 0x0040ae1d call 0x405860 | symaSsErT(int (); 0x0040ae22 jmp 0x40adb0 | goto label_1; | label_11: 0x0040ae24 mov qword [rsp + 0x68], 0x44b050 | *((rsp + 0x68)) = vtable.AttributeSet.0; 0x0040ae2d mov rax, qword [rip + 0x25f94c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040ae34 test rax, rax | | if (rax == 0) { 0x0040ae37 jne 0x40ae3e | 0x0040ae39 call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040ae3e mov qword [rsp + 0x70], rax | *((rsp + 0x70)) = rax; 0x0040ae43 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040ae46 movups xmmword [rsp + 0x78], xmm0 | __asm ("movups xmmword [rsp + 0x78], xmm0"); 0x0040ae4b mov dword [rsp + 0x88], 1 | *((rsp + 0x88)) = 1; 0x0040ae56 lea rax, [rsp + 0x90] | rax = rsp + 0x90; 0x0040ae5e mov dword [rsp + 0xa8], 0 | *((rsp + 0xa8)) = 0; 0x0040ae69 mov qword [rsp + 0xa0], rax | *((rsp + 0xa0)) = rax; 0x0040ae71 mov qword [rsp + 0x98], 0 | *((rsp + 0x98)) = 0; 0x0040ae7d mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040ae86 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040ae8f lea rdi, [rsp + 0x50] | 0x0040ae94 lea rdx, [rsp + 0x68] | 0x0040ae99 mov rsi, r12 | 0x0040ae9c call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x50, r12, rsp + 0x68); 0x0040aea1 xor edi, edi | edi = 0; 0x0040aea3 mov rax, qword [rsp] | rax = *(rsp); 0x0040aea7 cmp dword [rax], 2 | 0x0040aeaa setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x0040aeae mov esi, 0x44bce4 | esi = "2 == X.containers().numContainers()"; 0x0040aeb3 mov edx, 0x459 | edx = 0x459; 0x0040aeb8 call 0x405860 | symaSsErT(int (); 0x0040aebd mov rax, qword [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0040aec2 mov qword [rsp + 0x160], rax | *((rsp + 0x160)) = rax; 0x0040aeca mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040aed3 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040aedc lea rsi, [rsp + 0x160] | 0x0040aee4 mov rdi, r12 | 0x0040aee7 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x160); 0x0040aeec xor edi, edi | edi = 0; 0x0040aeee mov rax, qword [rsp] | rax = *(rsp); 0x0040aef2 cmp dword [rax], 1 | 0x0040aef5 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040aef9 mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040aefe mov edx, 0x45c | edx = 0x45c; 0x0040af03 call 0x405860 | symaSsErT(int (); 0x0040af08 mov qword [rsp + 0x68], 0x44b050 | *((rsp + 0x68)) = vtable.AttributeSet.0; 0x0040af11 lea rdi, [rsp + 0x70] | 0x0040af16 call 0x4125d0 | bsl::set>::~set() (rsp + 0x70); 0x0040af1b lea rdi, [rsp + 0x68] | rdi = rsp + 0x68; 0x0040af20 call 0x414410 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040af25 mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0040af2d mov qword [rsp + 0x158], rax | *((rsp + 0x158)) = rax; 0x0040af35 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040af3e mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040af47 lea rsi, [rsp + 0x158] | 0x0040af4f mov rdi, r12 | 0x0040af52 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x158); 0x0040af57 xor edi, edi | edi = 0; 0x0040af59 mov rax, qword [rsp] | rax = *(rsp); 0x0040af5d cmp dword [rax], 0 | 0x0040af60 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040af64 mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040af69 mov edx, 0x460 | edx = 0x460; 0x0040af6e call 0x405860 | symaSsErT(int (); 0x0040af73 mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040af7c lea rdi, [rsp + 0x10] | 0x0040af81 call 0x4125d0 | bsl::set>::~set() (rsp + 0x10); 0x0040af86 lea rdi, [rsp + 8] | rdi = rsp + 8; 0x0040af8b call 0x414410 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040af90 mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040af99 mov rax, qword [rip + 0x25f7e0] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040afa0 test rax, rax | | if (rax == 0) { 0x0040afa3 jne 0x40afaa | 0x0040afa5 call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040afaa mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040afaf xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040afb2 movups xmmword [rsp + 0x18], xmm0 | __asm ("movups xmmword [rsp + 0x18], xmm0"); 0x0040afb7 mov dword [rsp + 0x28], 1 | *((rsp + 0x28)) = 1; 0x0040afbf mov dword [rsp + 0x48], 0 | *((rsp + 0x48)) = 0; 0x0040afc7 mov qword [rsp + 0x40], r14 | *((rsp + 0x40)) = r14; 0x0040afcc mov qword [rsp + 0x38], 0 | *((rsp + 0x38)) = 0; 0x0040afd5 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040afde mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040afe7 lea rdi, [rsp + 0xc8] | 0x0040afef lea rdx, [rsp + 8] | 0x0040aff4 mov rsi, r12 | 0x0040aff7 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0xc8, r12, rsp + 8); 0x0040affc xor edi, edi | edi = 0; 0x0040affe mov rax, qword [rsp] | rax = *(rsp); 0x0040b002 cmp dword [rax], 1 | 0x0040b005 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040b009 mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040b00e mov edx, 0x467 | edx = 0x467; 0x0040b013 call 0x405860 | symaSsErT(int (); 0x0040b018 lea r15, [rsp + 0x10] | r15 = rsp + 0x10; 0x0040b01d xor r14d, r14d | r14d = 0; 0x0040b020 jmp 0x40b03d | goto label_12; | label_2: 0x0040b030 inc r14 | r14++; 0x0040b033 cmp r14, 9 | | if (r14 == 9) { 0x0040b037 je 0x40b4eb | goto label_13; | } | label_12: 0x0040b03d mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0040b045 mov qword [rsp + 0x150], rax | *((rsp + 0x150)) = rax; 0x0040b04d mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b056 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b05f mov rdi, r12 | 0x0040b062 lea rsi, [rsp + 0x150] | 0x0040b06a call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x150); 0x0040b06f xor edi, edi | edi = 0; 0x0040b071 mov rax, qword [rsp] | rax = *(rsp); 0x0040b075 cmp dword [rax], 0 | 0x0040b078 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040b07c mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040b081 mov edx, 0x46b | edx = 0x46b; 0x0040b086 call 0x405860 | symaSsErT(int (); 0x0040b08b lea rax, [r14 + r14*4] | rax = r14 * 5; 0x0040b08f shl rax, 4 | rax <<= 4; 0x0040b093 lea rbp, [rax + 0x66a400] | rbp = rax + obj_BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040b09a mov rax, qword [rsp + 0x38] | rax = *((rsp + 0x38)); 0x0040b09f test rax, rax | | if (rax == 0) { 0x0040b0a2 je 0x40b100 | goto label_14; | } 0x0040b0a4 xor ebx, ebx | ebx = 0; 0x0040b0a6 nop word cs:[rax + rax] | | do { 0x0040b0b0 mov r13, rax | r13 = rax; 0x0040b0b3 lea rdx, [rax + 0x18] | rdx = rax + 0x18; 0x0040b0b7 mov rdi, r15 | 0x0040b0ba mov rsi, rbp | 0x0040b0bd call 0x413df0 | al = AttributeComparator::operator()(BloombergLP::ball::Attributeconst&,BloombergLP::ball::Attributeconst&)const (r15, rbp); 0x0040b0c2 test al, al | | if (al == 0) { 0x0040b0c4 cmove rbx, r13 | rbx = r13; | } 0x0040b0c8 xor al, 1 | al ^= 1; 0x0040b0ca movzx ecx, al | ecx = (int32_t) al; 0x0040b0cd mov rax, qword [r13 + rcx*8 + 8] | rax = *((r13 + rcx*8 + 8)); 0x0040b0d2 test rax, rax | 0x0040b0d5 jne 0x40b0b0 | | } while (rax != 0); 0x0040b0d7 lea eax, [rcx + rcx - 1] | eax = rcx + rcx - 1; 0x0040b0db mov dword [rsp + 0x60], eax | *((rsp + 0x60)) = eax; 0x0040b0df test rbx, rbx | | if (rbx != 0) { 0x0040b0e2 je 0x40b10d | 0x0040b0e4 add rbx, 0x18 | rbx += 0x18; 0x0040b0e8 mov rdi, r15 | 0x0040b0eb mov rsi, rbx | 0x0040b0ee mov rdx, rbp | rdx = rbp; 0x0040b0f1 call 0x413df0 | al = AttributeComparator::operator()(BloombergLP::ball::Attributeconst&,BloombergLP::ball::Attributeconst&)const (r15, rbx); 0x0040b0f6 test al, al | | if (al != 0) { 0x0040b0f8 jne 0x40b10d | goto label_15; | } 0x0040b0fa jmp 0x40b30a | goto label_16; | label_14: 0x0040b100 mov dword [rsp + 0x60], 0xffffffff | *((rsp + 0x60)) = 0xffffffff; 0x0040b108 lea r13, [rsp + 0x30] | r13 = rsp + 0x30; | } | label_15: 0x0040b10d mov r15, qword [rsp + 0x20] | r15 = *((rsp + 0x20)); 0x0040b112 test r15, r15 | | if (r15 != 0) { 0x0040b115 jne 0x40b240 | goto label_17; | } 0x0040b11b movsxd rax, dword [rsp + 0x28] | rax = *((rsp + 0x28)); 0x0040b120 imul rbx, rax, 0x68 | rbx = rax * 0x68; 0x0040b124 lea rsi, [rbx + 0x17] | rsi = rbx + 0x17; 0x0040b128 and rsi, 0xfffffffffffffff0 | rsi &= 0xfffffffffffffff0; 0x0040b12c mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); 0x0040b131 mov rax, qword [rdi] | rax = *(rdi); 0x0040b134 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0040b137 mov rcx, rax | rcx = rax; 0x0040b13a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0040b13f mov qword [rcx], rax | *(rcx) = rax; 0x0040b142 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0040b147 lea r15, [rcx + 8] | r15 = rcx + 8; 0x0040b14b lea rsi, [rcx + rbx - 0x60] | rsi = rcx + rbx - 0x60; 0x0040b150 cmp rsi, r15 | | if (rsi <= r15) { 0x0040b153 jbe 0x40b21e | goto label_5; | } 0x0040b159 add rbx, 0xffffffffffffff97 | rbx += 0xffffffffffffff97; 0x0040b15d mov rax, rbx | rax = rbx; 0x0040b160 movabs rdx, 0x4ec4ec4ec4ec4ec5 | rdx = 0x4ec4ec4ec4ec4ec5; 0x0040b16a mul rdx | rdx:rax = rax * rdx; 0x0040b16d shr edx, 5 | edx >>= 5; 0x0040b170 inc edx | edx++; 0x0040b172 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0040b176 je 0x40b4d6 | goto label_18; | } 0x0040b17c add rcx, 0x70 | rcx += 0x70; 0x0040b180 neg rdx | rdx = -rdx; 0x0040b183 nop word cs:[rax + rax] | 0x0040b18d nop dword [rax] | | do { 0x0040b190 mov qword [rcx - 0x68], rcx | *((rcx - 0x68)) = rcx; 0x0040b194 add rcx, 0x68 | rcx += 0x68; 0x0040b198 inc rdx | rdx++; 0x0040b19b jne 0x40b190 | | } while (rdx != 0); 0x0040b19d add rcx, 0xffffffffffffff98 | rcx += 0xffffffffffffff98; 0x0040b1a1 cmp rbx, 0x2d8 | | if (rbx < 0x2d8) { 0x0040b1a8 jb 0x40b21e | goto label_5; | } 0x0040b1aa nop word [rax + rax] | | do { | label_4: 0x0040b1b0 lea rax, [rcx + 0x68] | rax = rcx + 0x68; 0x0040b1b4 mov qword [rcx], rax | *(rcx) = rax; 0x0040b1b7 lea rax, [rcx + 0xd0] | rax = rcx + 0xd0; 0x0040b1be mov qword [rcx + 0x68], rax | *((rcx + 0x68)) = rax; 0x0040b1c2 lea rax, [rcx + 0x138] | rax = rcx + 0x138; 0x0040b1c9 mov qword [rcx + 0xd0], rax | *((rcx + 0xd0)) = rax; 0x0040b1d0 lea rax, [rcx + 0x1a0] | rax = rcx + 0x1a0; 0x0040b1d7 mov qword [rcx + 0x138], rax | *((rcx + 0x138)) = rax; 0x0040b1de lea rax, [rcx + 0x208] | rax = rcx + 0x208; 0x0040b1e5 mov qword [rcx + 0x1a0], rax | *((rcx + 0x1a0)) = rax; 0x0040b1ec lea rax, [rcx + 0x270] | rax = rcx + 0x270; 0x0040b1f3 mov qword [rcx + 0x208], rax | *((rcx + 0x208)) = rax; 0x0040b1fa lea rax, [rcx + 0x2d8] | rax = rcx + 0x2d8; 0x0040b201 mov qword [rcx + 0x270], rax | *((rcx + 0x270)) = rax; 0x0040b208 lea rax, [rcx + 0x340] | rax = rcx + 0x340; 0x0040b20f mov qword [rcx + 0x2d8], rax | *((rcx + 0x2d8)) = rax; 0x0040b216 mov rcx, rax | rcx = rax; 0x0040b219 cmp rax, rsi | 0x0040b21c jb 0x40b1b0 | | } while (rax < rsi); | label_5: 0x0040b21e mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x0040b223 mov qword [rsi], rax | *(rsi) = rax; 0x0040b226 mov qword [rsp + 0x20], r15 | *((rsp + 0x20)) = r15; 0x0040b22b mov eax, dword [rsp + 0x28] | eax = *((rsp + 0x28)); 0x0040b22f cmp eax, 0x1f | | if (eax <= 0x1f) { 0x0040b232 jg 0x40b240 | 0x0040b234 add eax, eax | eax += eax; 0x0040b236 mov dword [rsp + 0x28], eax | *((rsp + 0x28)) = eax; 0x0040b23a nop word [rax + rax] | | } | label_17: 0x0040b240 mov rax, qword [r15] | rax = *(r15); 0x0040b243 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0040b248 mov rax, qword [rsp + 0x10] | rax = *((rsp + 0x10)); 0x0040b24d test rax, rax | | if (rax == 0) { 0x0040b250 jne 0x40b270 | 0x0040b252 mov rax, qword [rip + 0x25f527] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040b259 test rax, rax | | if (rax != 0) { 0x0040b25c jne 0x40b270 | goto label_19; | } 0x0040b25e call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040b263 nop word cs:[rax + rax] | 0x0040b26d nop dword [rax] | | } | label_19: 0x0040b270 mov rcx, qword [rbp] | rcx = *(rbp); 0x0040b274 mov qword [r15 + 0x18], rcx | *((r15 + 0x18)) = rcx; 0x0040b278 mov rbx, r14 | rbx = r14; 0x0040b27b shl rbx, 4 | rbx <<= 4; 0x0040b27f mov ecx, dword [rbx + rbx*4 + 0x66a438] | ecx = *((rbx + rbx*4 + 0x66a438)); 0x0040b286 mov dword [r15 + 0x50], ecx | *((r15 + 0x50)) = ecx; 0x0040b28a test rax, rax | | if (rax == 0) { 0x0040b28d jne 0x40b2b0 | 0x0040b28f mov rax, qword [rip + 0x25f4ea] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040b296 test rax, rax | | if (rax != 0) { 0x0040b299 jne 0x40b2b0 | goto label_20; | } 0x0040b29b call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040b2a0 mov ecx, dword [r15 + 0x50] | ecx = *((r15 + 0x50)); 0x0040b2a4 nop word cs:[rax + rax] | 0x0040b2ae nop | | } | label_20: 0x0040b2b0 mov qword [r15 + 0x58], rax | *((r15 + 0x58)) = rax; 0x0040b2b4 test ecx, ecx | | if (ecx != 0) { 0x0040b2b6 je 0x40b2d8 | 0x0040b2b8 lea rdi, [rbx + rbx*4 + 0x66a408] | rdi = rbx * 5; 0x0040b2c0 lea rcx, [r15 + 0x20] | rcx = r15 + 0x20; 0x0040b2c4 mov qword [rsp + 0x68], rcx | *((rsp + 0x68)) = rcx; 0x0040b2c9 mov qword [rsp + 0x70], rax | *((rsp + 0x70)) = rax; 0x0040b2ce lea rsi, [rsp + 0x68] | rsi = rsp + 0x68; 0x0040b2d3 call 0x413670 | _ZNK11BloombergLP4bdlb10VariantImpINS_5bslmf8TypeListIJixN3bsl12basic_stringIcNSt3_111char_traitsIcEENS4_9allocatorIcEEEEEEEE5applyINS0_28Variant_CopyConstructVisitorEEENS4_9enable_ifIXeqsr25Variant_ReturnValueHelperIT_EE5valueLi0EEvE4typeERSH_ (); | } 0x0040b2d8 mov eax, dword [rbx + rbx*4 + 0x66a448] | eax = *((rbx + rbx*4 + 0x66a448)); 0x0040b2df mov dword [r15 + 0x60], eax | *((r15 + 0x60)) = eax; 0x0040b2e3 mov eax, dword [rbx + rbx*4 + 0x66a44c] | eax = *((rbx + rbx*4 + 0x66a44c)); 0x0040b2ea mov dword [r15 + 0x64], eax | *((r15 + 0x64)) = eax; 0x0040b2ee mov edx, dword [rsp + 0x60] | 0x0040b2f2 shr edx, 0x1f | edx >>= 0x1f; 0x0040b2f5 lea rdi, [rsp + 0x30] | 0x0040b2fa mov rsi, r13 | 0x0040b2fd mov rcx, r15 | rcx = r15; 0x0040b300 call 0x420490 | BloombergLP::bslalg::RbTreeUtil::insertAt(BloombergLP::bslalg::RbTreeAnchor*,BloombergLP::bslalg::RbTreeNode*,bool,BloombergLP::bslalg::RbTreeNode*) (rsp + 0x30, r13, *((rsp + 0x60))); 0x0040b305 lea r15, [rsp + 0x10] | r15 = rsp + 0x10; | label_16: 0x0040b30a mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b313 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b31c lea rdi, [rsp + 0x68] | 0x0040b321 mov rsi, r12 | 0x0040b324 lea rdx, [rsp + 8] | 0x0040b329 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x68, r12, rsp + 8); 0x0040b32e mov rax, qword [rsp + 0x68] | rax = *((rsp + 0x68)); 0x0040b333 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0040b33b xor edi, edi | edi = 0; 0x0040b33d mov rax, qword [rsp] | rax = *(rsp); 0x0040b341 cmp dword [rax], 1 | 0x0040b344 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040b348 mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040b34d mov edx, 0x470 | edx = 0x470; 0x0040b352 call 0x405860 | symaSsErT(int (); 0x0040b357 mov ebp, 0x66a400 | 0x0040b35c xor ebx, ebx | ebx = 0; 0x0040b35e jmp 0x40b371 | goto label_21; | label_3: 0x0040b360 inc rbx | rbx++; 0x0040b363 add rbp, 0x50 | rbp += 0x50; 0x0040b367 cmp rbx, 9 | | if (rbx == 9) { 0x0040b36b je 0x40b030 | goto label_2; | } | label_21: 0x0040b371 mov rdi, r12 | 0x0040b374 mov rsi, rbp | 0x0040b377 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbp); 0x0040b37c cmp rbx, r14 | 0x0040b37f setbe cl | cl = (rbx <= r14) ? 1 : 0; 0x0040b382 cmp cl, al | | if (cl != al) { 0x0040b384 je 0x40b421 | 0x0040b38a mov edi, 0x669f48 | 0x0040b38f mov esi, 0x44e5a5 | 0x0040b394 mov edx, 1 | 0x0040b399 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040b39e mov esi, 0x44b203 | 0x0040b3a3 mov edx, 2 | 0x0040b3a8 mov rdi, rax | 0x0040b3ab call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b3b0 mov rdi, rax | rdi = rax; 0x0040b3b3 mov esi, r14d | esi = r14d; 0x0040b3b6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b3bb mov esi, 0x44d180 | 0x0040b3c0 mov edx, 1 | 0x0040b3c5 mov rdi, rax | 0x0040b3c8 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040b3cd mov esi, 0x44ba1d | 0x0040b3d2 mov edx, 1 | 0x0040b3d7 mov rdi, rax | 0x0040b3da call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040b3df mov esi, 0x44b203 | 0x0040b3e4 mov edx, 2 | 0x0040b3e9 mov rdi, rax | 0x0040b3ec call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b3f1 mov rdi, rax | rdi = rax; 0x0040b3f4 mov esi, ebx | esi = ebx; 0x0040b3f6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b3fb mov esi, 0x44d0bd | 0x0040b400 mov edx, 1 | 0x0040b405 mov rdi, rax | 0x0040b408 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040b40d mov esi, 0x44bd08 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x0040b412 mov edi, 1 | edi = 1; 0x0040b417 mov edx, 0x475 | edx = 0x475; 0x0040b41c call 0x405860 | symaSsErT(int (); | } 0x0040b421 mov rdi, r12 | 0x0040b424 mov rsi, rbp | 0x0040b427 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbp); 0x0040b42c cmp rbx, r14 | 0x0040b42f setbe cl | cl = (rbx <= r14) ? 1 : 0; 0x0040b432 cmp cl, al | | if (cl == al) { 0x0040b434 je 0x40b360 | goto label_3; | } 0x0040b43a mov edi, 0x669f48 | 0x0040b43f mov esi, 0x44e5a5 | 0x0040b444 mov edx, 1 | 0x0040b449 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040b44e mov esi, 0x44b203 | 0x0040b453 mov edx, 2 | 0x0040b458 mov rdi, rax | 0x0040b45b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b460 mov rdi, rax | rdi = rax; 0x0040b463 mov esi, r14d | esi = r14d; 0x0040b466 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b46b mov esi, 0x44d180 | 0x0040b470 mov edx, 1 | 0x0040b475 mov rdi, rax | 0x0040b478 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040b47d mov esi, 0x44ba1d | 0x0040b482 mov edx, 1 | 0x0040b487 mov rdi, rax | 0x0040b48a call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040b48f mov esi, 0x44b203 | 0x0040b494 mov edx, 2 | 0x0040b499 mov rdi, rax | 0x0040b49c call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b4a1 mov rdi, rax | rdi = rax; 0x0040b4a4 mov esi, ebx | esi = ebx; 0x0040b4a6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b4ab mov esi, 0x44d0bd | 0x0040b4b0 mov edx, 1 | 0x0040b4b5 mov rdi, rax | 0x0040b4b8 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040b4bd mov esi, 0x44bd2c | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x0040b4c2 mov edi, 1 | edi = 1; 0x0040b4c7 mov edx, 0x476 | edx = 0x476; 0x0040b4cc call 0x405860 | symaSsErT(int (); 0x0040b4d1 jmp 0x40b360 | goto label_3; | label_18: 0x0040b4d6 mov rcx, r15 | rcx = r15; 0x0040b4d9 cmp rbx, 0x2d8 | | if (rbx >= 0x2d8) { 0x0040b4e0 jae 0x40b1b0 | goto label_4; | } 0x0040b4e6 jmp 0x40b21e | goto label_5; | label_13: 0x0040b4eb xor ebx, ebx | ebx = 0; 0x0040b4ed lea rbp, [rsp + 8] | rbp = rsp + 8; 0x0040b4f2 jmp 0x40b50d | | while (r13 == 9) { 0x0040b500 inc rbx | rbx++; 0x0040b503 cmp rbx, 9 | | if (rbx == 9) { 0x0040b507 je 0x40b746 | goto label_22; | } 0x0040b50d mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0040b515 mov qword [rsp + 0x148], rax | *((rsp + 0x148)) = rax; 0x0040b51d mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b526 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b52f mov rdi, r12 | 0x0040b532 lea rsi, [rsp + 0x148] | 0x0040b53a call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x148); 0x0040b53f xor edi, edi | edi = 0; 0x0040b541 mov rax, qword [rsp] | rax = *(rsp); 0x0040b545 cmp dword [rax], 0 | 0x0040b548 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040b54c mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040b551 mov edx, 0x47c | edx = 0x47c; 0x0040b556 call 0x405860 | symaSsErT(int (); 0x0040b55b lea rax, [rbx + rbx*4] | rax = rbx * 5; 0x0040b55f shl rax, 4 | rax <<= 4; 0x0040b563 lea rsi, [rax + 0x66a400] | 0x0040b56a mov rdi, rbp | 0x0040b56d call 0x405aa0 | AttributeSet::remove(BloombergLP::ball::Attributeconst&) (rbp, rax + obj.BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS); 0x0040b572 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b57b mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b584 lea rdi, [rsp + 0x68] | 0x0040b589 mov rsi, r12 | 0x0040b58c mov rdx, rbp | 0x0040b58f call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x68, r12, rbp); 0x0040b594 mov rax, qword [rsp + 0x68] | rax = *((rsp + 0x68)); 0x0040b599 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0040b5a1 xor edi, edi | edi = 0; 0x0040b5a3 mov rax, qword [rsp] | rax = *(rsp); 0x0040b5a7 cmp dword [rax], 1 | 0x0040b5aa setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040b5ae mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040b5b3 mov edx, 0x481 | edx = 0x481; 0x0040b5b8 call 0x405860 | symaSsErT(int (); 0x0040b5bd mov r14d, 0x66a400 | r14d = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040b5c3 xor r13d, r13d | r13d = 0; 0x0040b5c6 jmp 0x40b5e1 | goto label_23; | label_6: 0x0040b5d0 inc r13 | r13++; 0x0040b5d3 add r14, 0x50 | r14 += 0x50; 0x0040b5d7 cmp r13, 9 | 0x0040b5db je 0x40b500 | | } | label_23: 0x0040b5e1 mov rdi, r12 | 0x0040b5e4 mov rsi, r14 | 0x0040b5e7 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, r14); 0x0040b5ec cmp r13, rbx | 0x0040b5ef seta cl | cl = (r13 > rbx) ? 1 : 0; 0x0040b5f2 cmp cl, al | | if (cl != al) { 0x0040b5f4 je 0x40b691 | 0x0040b5fa mov edi, 0x669f48 | 0x0040b5ff mov esi, 0x44e5a5 | 0x0040b604 mov edx, 1 | 0x0040b609 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040b60e mov esi, 0x44b203 | 0x0040b613 mov edx, 2 | 0x0040b618 mov rdi, rax | 0x0040b61b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b620 mov rdi, rax | rdi = rax; 0x0040b623 mov esi, ebx | esi = ebx; 0x0040b625 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b62a mov esi, 0x44d180 | 0x0040b62f mov edx, 1 | 0x0040b634 mov rdi, rax | 0x0040b637 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040b63c mov esi, 0x44ba1d | 0x0040b641 mov edx, 1 | 0x0040b646 mov rdi, rax | 0x0040b649 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040b64e mov esi, 0x44b203 | 0x0040b653 mov edx, 2 | 0x0040b658 mov rdi, rax | 0x0040b65b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b660 mov rdi, rax | rdi = rax; 0x0040b663 mov esi, r13d | esi = r13d; 0x0040b666 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b66b mov esi, 0x44d0bd | 0x0040b670 mov edx, 1 | 0x0040b675 mov rdi, rax | 0x0040b678 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040b67d mov esi, 0x44bd08 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x0040b682 mov edi, 1 | edi = 1; 0x0040b687 mov edx, 0x486 | edx = 0x486; 0x0040b68c call 0x405860 | symaSsErT(int (); | } 0x0040b691 mov rdi, r12 | 0x0040b694 mov rsi, r14 | 0x0040b697 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, r14); 0x0040b69c cmp r13, rbx | 0x0040b69f seta cl | cl = (r13 > rbx) ? 1 : 0; 0x0040b6a2 cmp cl, al | | if (cl == al) { 0x0040b6a4 je 0x40b5d0 | goto label_6; | } 0x0040b6aa mov edi, 0x669f48 | 0x0040b6af mov esi, 0x44e5a5 | 0x0040b6b4 mov edx, 1 | 0x0040b6b9 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040b6be mov esi, 0x44b203 | 0x0040b6c3 mov edx, 2 | 0x0040b6c8 mov rdi, rax | 0x0040b6cb call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b6d0 mov rdi, rax | rdi = rax; 0x0040b6d3 mov esi, ebx | esi = ebx; 0x0040b6d5 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b6da mov esi, 0x44d180 | 0x0040b6df mov edx, 1 | 0x0040b6e4 mov rdi, rax | 0x0040b6e7 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040b6ec mov esi, 0x44ba1d | 0x0040b6f1 mov edx, 1 | 0x0040b6f6 mov rdi, rax | 0x0040b6f9 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040b6fe mov esi, 0x44b203 | 0x0040b703 mov edx, 2 | 0x0040b708 mov rdi, rax | 0x0040b70b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040b710 mov rdi, rax | rdi = rax; 0x0040b713 mov esi, r13d | esi = r13d; 0x0040b716 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040b71b mov esi, 0x44d0bd | 0x0040b720 mov edx, 1 | 0x0040b725 mov rdi, rax | 0x0040b728 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040b72d mov esi, 0x44bd2c | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x0040b732 mov edi, 1 | edi = 1; 0x0040b737 mov edx, 0x487 | edx = 0x487; 0x0040b73c call 0x405860 | symaSsErT(int (); 0x0040b741 jmp 0x40b5d0 | goto label_6; | label_22: 0x0040b746 mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0040b74e mov qword [rsp + 0x140], rax | *((rsp + 0x140)) = rax; 0x0040b756 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b75f mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b768 lea rsi, [rsp + 0x140] | 0x0040b770 mov rdi, r12 | 0x0040b773 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x140); 0x0040b778 xor edi, edi | edi = 0; 0x0040b77a mov rax, qword [rsp] | rax = *(rsp); 0x0040b77e cmp dword [rax], 0 | 0x0040b781 setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040b785 mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040b78a mov edx, 0x48c | edx = 0x48c; 0x0040b78f call 0x405860 | symaSsErT(int (); 0x0040b794 mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040b79d mov rdi, r15 | 0x0040b7a0 call 0x4125d0 | bsl::set>::~set() (r15); 0x0040b7a5 lea rdi, [rsp + 8] | rdi = rsp + 8; 0x0040b7aa call 0x414410 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040b7af mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040b7b8 mov rax, qword [rip + 0x25efc1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040b7bf test rax, rax | | if (rax == 0) { 0x0040b7c2 jne 0x40b7c9 | 0x0040b7c4 call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040b7c9 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040b7ce xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040b7d1 movups xmmword [rsp + 0x18], xmm0 | __asm ("movups xmmword [rsp + 0x18], xmm0"); 0x0040b7d6 mov dword [rsp + 0x28], 1 | *((rsp + 0x28)) = 1; 0x0040b7de mov dword [rsp + 0x48], 0 | *((rsp + 0x48)) = 0; 0x0040b7e6 lea rax, [rsp + 0x30] | rax = rsp + 0x30; 0x0040b7eb mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x0040b7f0 mov qword [rsp + 0x38], 0 | *((rsp + 0x38)) = 0; 0x0040b7f9 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b802 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b80b lea rdi, [rsp + 0x50] | 0x0040b810 lea rdx, [rsp + 8] | 0x0040b815 mov rsi, r12 | 0x0040b818 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x50, r12, rsp + 8); 0x0040b81d xor edi, edi | edi = 0; 0x0040b81f mov rax, qword [rsp] | rax = *(rsp); 0x0040b823 cmp dword [rax], 1 | 0x0040b826 setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040b82a mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040b82f mov edx, 0x493 | edx = 0x493; 0x0040b834 call 0x405860 | symaSsErT(int (); 0x0040b839 mov qword [rsp + 0x68], 0x44b050 | *((rsp + 0x68)) = vtable.AttributeSet.0; 0x0040b842 mov rax, qword [rip + 0x25ef37] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040b849 test rax, rax | | if (rax == 0) { 0x0040b84c jne 0x40b853 | 0x0040b84e call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040b853 mov qword [rsp + 0x70], rax | *((rsp + 0x70)) = rax; 0x0040b858 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040b85b movups xmmword [rsp + 0x78], xmm0 | __asm ("movups xmmword [rsp + 0x78], xmm0"); 0x0040b860 mov dword [rsp + 0x88], 1 | *((rsp + 0x88)) = 1; 0x0040b86b mov dword [rsp + 0xa8], 0 | *((rsp + 0xa8)) = 0; 0x0040b876 lea rax, [rsp + 0x90] | rax = rsp + 0x90; 0x0040b87e mov qword [rsp + 0xa0], rax | *((rsp + 0xa0)) = rax; 0x0040b886 mov qword [rsp + 0x98], 0 | *((rsp + 0x98)) = 0; 0x0040b892 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b89b mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b8a4 lea rdi, [rsp + 0xb8] | 0x0040b8ac lea rdx, [rsp + 0x68] | 0x0040b8b1 mov rsi, r12 | 0x0040b8b4 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0xb8, r12, rsp + 0x68); 0x0040b8b9 xor edi, edi | edi = 0; 0x0040b8bb mov rax, qword [rsp] | rax = *(rsp); 0x0040b8bf cmp dword [rax], 2 | 0x0040b8c2 setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x0040b8c6 mov esi, 0x44bce4 | esi = "2 == X.containers().numContainers()"; 0x0040b8cb mov edx, 0x497 | edx = 0x497; 0x0040b8d0 call 0x405860 | symaSsErT(int (); 0x0040b8d5 mov qword [rsp + 0xc8], 0x44b050 | *((rsp + 0xc8)) = vtable.AttributeSet.0; 0x0040b8e1 mov rax, qword [rip + 0x25ee98] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040b8e8 test rax, rax | | if (rax == 0) { 0x0040b8eb jne 0x40b8f2 | 0x0040b8ed call 0x421bc0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040b8f2 mov qword [rsp + 0xd0], rax | *((rsp + 0xd0)) = rax; 0x0040b8fa xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040b8fd movups xmmword [rsp + 0xd8], xmm0 | __asm ("movups xmmword [rsp + 0xd8], xmm0"); 0x0040b905 mov dword [rsp + 0xe8], 1 | *((rsp + 0xe8)) = 1; 0x0040b910 lea rax, [rsp + 0xf0] | rax = rsp + 0xf0; 0x0040b918 mov dword [rsp + 0x108], 0 | *((rsp + 0x108)) = 0; 0x0040b923 mov qword [rsp + 0x100], rax | *((rsp + 0x100)) = rax; 0x0040b92b mov qword [rsp + 0xf8], 0 | *((rsp + 0xf8)) = 0; 0x0040b937 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040b940 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040b949 lea rdi, [rsp + 0xb0] | 0x0040b951 lea rdx, [rsp + 0xc8] | 0x0040b959 mov rsi, r12 | 0x0040b95c call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0xb0, r12, rsp + 0xc8); 0x0040b961 xor edi, edi | edi = 0; 0x0040b963 mov rax, qword [rsp] | rax = *(rsp); 0x0040b967 cmp dword [rax], 3 | 0x0040b96a setne dil | dil = (*(rax) != 3) ? 1 : 0; 0x0040b96e mov esi, 0x44bd59 | esi = "3 == X.containers().numContainers()"; 0x0040b973 mov edx, 0x49b | edx = 0x49b; 0x0040b978 call 0x405860 | symaSsErT(int (); 0x0040b97d xor ebp, ebp | ebp = 0; 0x0040b97f jmp 0x40b99d | goto label_24; | label_7: 0x0040b990 inc rbp | rbp++; 0x0040b993 cmp rbp, 9 | | if (rbp == 9) { 0x0040b997 je 0x40bcd6 | goto label_25; | } | label_24: 0x0040b99d movzx eax, bpl | eax = (int32_t) bpl; 0x0040b9a1 imul eax, eax, 0xab | eax *= 0xab; 0x0040b9a7 shr eax, 9 | eax >>= 9; 0x0040b9aa lea ecx, [rax + rax*2] | ecx = rax * 3; 0x0040b9ad mov eax, ebp | eax = ebp; 0x0040b9af sub al, cl | al -= cl; 0x0040b9b1 cmp al, 1 | | if (al != 1) { 0x0040b9b3 je 0x40b9d0 | 0x0040b9b5 movzx eax, al | eax = (int32_t) al; 0x0040b9b8 test eax, eax | | if (eax == 0) { 0x0040b9ba jne 0x40b9e0 | 0x0040b9bc mov rax, qword [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0040b9c1 lea r13, [rsp + 8] | r13 = rsp + 8; 0x0040b9c6 jmp 0x40b9f0 | | } else { 0x0040b9d0 mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x0040b9d8 lea r13, [rsp + 0x68] | r13 = rsp + 0x68; 0x0040b9dd jmp 0x40b9f0 | | } else { 0x0040b9e0 mov rax, qword [rsp + 0xb0] | rax = *((rsp + 0xb0)); | } 0x0040b9e8 lea r13, [rsp + 0xc8] | r13 = rsp + 0xc8; | } 0x0040b9f0 mov qword [rsp + 0x138], rax | *((rsp + 0x138)) = rax; 0x0040b9f8 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040ba01 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040ba0a mov rdi, r12 | 0x0040ba0d lea rsi, [rsp + 0x138] | 0x0040ba15 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x138); 0x0040ba1a xor edi, edi | edi = 0; 0x0040ba1c mov rax, qword [rsp] | rax = *(rsp); 0x0040ba20 cmp dword [rax], 2 | 0x0040ba23 setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x0040ba27 mov esi, 0x44bce4 | esi = "2 == X.containers().numContainers()"; 0x0040ba2c mov edx, 0x4af | edx = 0x4af; 0x0040ba31 call 0x405860 | symaSsErT(int (); 0x0040ba36 lea rax, [rbp + rbp*4] | rax = rbp + rbp*4; 0x0040ba3b shl rax, 4 | rax <<= 4; 0x0040ba3f lea rbx, [rax + 0x66a400] | rbx = rax + obj_BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040ba46 lea r14, [r13 + 8] | r14 = r13 + 8; 0x0040ba4a lea r15, [r13 + 0x28] | r15 = r13 + 0x28; 0x0040ba4e mov rax, qword [r13 + 0x30] | rax = *((r13 + 0x30)); 0x0040ba52 test rax, rax | 0x0040ba55 mov qword [rsp + 0x60], r15 | *((rsp + 0x60)) = r15; | if (rax == 0) { 0x0040ba5a je 0x40bad0 | goto label_26; | } 0x0040ba5c mov qword [rsp + 0xc0], r13 | *((rsp + 0xc0)) = r13; 0x0040ba64 xor r13d, r13d | r13d = 0; 0x0040ba67 nop word [rax + rax] | | do { 0x0040ba70 mov r15, rax | r15 = rax; 0x0040ba73 lea rdx, [rax + 0x18] | rdx = rax + 0x18; 0x0040ba77 mov rdi, r14 | 0x0040ba7a mov rsi, rbx | 0x0040ba7d call 0x413df0 | al = AttributeComparator::operator()(BloombergLP::ball::Attributeconst&,BloombergLP::ball::Attributeconst&)const (r14, rbx); 0x0040ba82 test al, al | | if (al == 0) { 0x0040ba84 cmove r13, r15 | r13 = r15; | } 0x0040ba88 xor al, 1 | al ^= 1; 0x0040ba8a movzx ecx, al | ecx = (int32_t) al; 0x0040ba8d mov rax, qword [r15 + rcx*8 + 8] | rax = *((r15 + rcx*8 + 8)); 0x0040ba92 test rax, rax | 0x0040ba95 jne 0x40ba70 | | } while (rax != 0); 0x0040ba97 lea eax, [rcx + rcx - 1] | eax = rcx + rcx - 1; 0x0040ba9b mov dword [rsp + 0x5c], eax | *((rsp + 0x5c)) = eax; 0x0040ba9f test r13, r13 | | if (r13 != 0) { 0x0040baa2 je 0x40bae0 | 0x0040baa4 add r13, 0x18 | r13 += 0x18; 0x0040baa8 mov rdi, r14 | 0x0040baab mov rsi, r13 | 0x0040baae mov rdx, rbx | rdx = rbx; 0x0040bab1 call 0x413df0 | al = AttributeComparator::operator()(BloombergLP::ball::Attributeconst&,BloombergLP::ball::Attributeconst&)const (r14, r13); 0x0040bab6 mov r13, qword [rsp + 0xc0] | r13 = *((rsp + 0xc0)); 0x0040babe test al, al | | if (al != 0) { 0x0040bac0 jne 0x40bae8 | goto label_27; | } 0x0040bac2 jmp 0x40bb0a | goto label_28; | label_26: 0x0040bad0 mov dword [rsp + 0x5c], 0xffffffff | *((rsp + 0x5c)) = 0xffffffff; 0x0040bad8 jmp 0x40bae8 | | } else { 0x0040bae0 mov r13, qword [rsp + 0xc0] | r13 = *((rsp + 0xc0)); | } | label_27: 0x0040bae8 mov rdi, r14 | 0x0040baeb mov rsi, rbx | 0x0040baee call 0x413c00 | rax = BloombergLP::bslalg::RbTreeNode*BloombergLP::bslstl::TreeNodePool>::emplaceIntoNewNode(BloombergLP::ball::Attributeconst&) (r14, rbx); 0x0040baf3 mov edx, dword [rsp + 0x5c] | 0x0040baf7 shr edx, 0x1f | edx >>= 0x1f; 0x0040bafa mov rdi, qword [rsp + 0x60] | 0x0040baff mov rsi, r15 | 0x0040bb02 mov rcx, rax | rcx = rax; 0x0040bb05 call 0x420490 | BloombergLP::bslalg::RbTreeUtil::insertAt(BloombergLP::bslalg::RbTreeAnchor*,BloombergLP::bslalg::RbTreeNode*,bool,BloombergLP::bslalg::RbTreeNode*) (*((rsp + 0x60)), r15, *((rsp + 0x5c))); | label_28: 0x0040bb0a mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040bb13 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040bb1c lea rdi, [rsp + 0x130] | 0x0040bb24 mov rsi, r12 | 0x0040bb27 mov rdx, r13 | 0x0040bb2a call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (rsp + 0x130, r12, r13); 0x0040bb2f xor edi, edi | edi = 0; 0x0040bb31 mov rax, qword [rsp] | rax = *(rsp); 0x0040bb35 cmp dword [rax], 3 | 0x0040bb38 setne dil | dil = (*(rax) != 3) ? 1 : 0; 0x0040bb3c mov esi, 0x44bd59 | esi = "3 == X.containers().numContainers()"; 0x0040bb41 mov edx, 0x4b4 | edx = 0x4b4; 0x0040bb46 call 0x405860 | symaSsErT(int (); 0x0040bb4b mov r15d, 0x66a400 | r15d = BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS; 0x0040bb51 xor r13d, r13d | r13d = 0; 0x0040bb54 jmp 0x40bb71 | goto label_29; | label_8: 0x0040bb60 inc r13 | r13++; 0x0040bb63 add r15, 0x50 | r15 += 0x50; 0x0040bb67 cmp r13, 9 | | if (r13 == 9) { 0x0040bb6b je 0x40b990 | goto label_7; | } | label_29: 0x0040bb71 mov rdi, r12 | 0x0040bb74 mov rsi, r15 | 0x0040bb77 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, r15); 0x0040bb7c cmp r13, rbp | 0x0040bb7f setbe cl | cl = (r13 <= rbp) ? 1 : 0; 0x0040bb82 cmp cl, al | | if (cl != al) { 0x0040bb84 je 0x40bc21 | 0x0040bb8a mov edi, 0x669f48 | 0x0040bb8f mov esi, 0x44e5a5 | 0x0040bb94 mov edx, 1 | 0x0040bb99 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040bb9e mov esi, 0x44b203 | 0x0040bba3 mov edx, 2 | 0x0040bba8 mov rdi, rax | 0x0040bbab call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bbb0 mov rdi, rax | rdi = rax; 0x0040bbb3 mov esi, ebp | esi = ebp; 0x0040bbb5 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040bbba mov esi, 0x44d180 | 0x0040bbbf mov edx, 1 | 0x0040bbc4 mov rdi, rax | 0x0040bbc7 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040bbcc mov esi, 0x44ba1d | 0x0040bbd1 mov edx, 1 | 0x0040bbd6 mov rdi, rax | 0x0040bbd9 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040bbde mov esi, 0x44b203 | 0x0040bbe3 mov edx, 2 | 0x0040bbe8 mov rdi, rax | 0x0040bbeb call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bbf0 mov rdi, rax | rdi = rax; 0x0040bbf3 mov esi, r13d | esi = r13d; 0x0040bbf6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040bbfb mov esi, 0x44d0bd | 0x0040bc00 mov edx, 1 | 0x0040bc05 mov rdi, rax | 0x0040bc08 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040bc0d mov esi, 0x44bd08 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x0040bc12 mov edi, 1 | edi = 1; 0x0040bc17 mov edx, 0x4b9 | edx = 0x4b9; 0x0040bc1c call 0x405860 | symaSsErT(int (); | } 0x0040bc21 mov rdi, r12 | 0x0040bc24 mov rsi, r15 | 0x0040bc27 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, r15); 0x0040bc2c cmp r13, rbp | 0x0040bc2f setbe cl | cl = (r13 <= rbp) ? 1 : 0; 0x0040bc32 cmp cl, al | | if (cl == al) { 0x0040bc34 je 0x40bb60 | goto label_8; | } 0x0040bc3a mov edi, 0x669f48 | 0x0040bc3f mov esi, 0x44e5a5 | 0x0040bc44 mov edx, 1 | 0x0040bc49 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040bc4e mov esi, 0x44b203 | 0x0040bc53 mov edx, 2 | 0x0040bc58 mov rdi, rax | 0x0040bc5b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bc60 mov rdi, rax | rdi = rax; 0x0040bc63 mov esi, ebp | esi = ebp; 0x0040bc65 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040bc6a mov esi, 0x44d180 | 0x0040bc6f mov edx, 1 | 0x0040bc74 mov rdi, rax | 0x0040bc77 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040bc7c mov esi, 0x44ba1d | 0x0040bc81 mov edx, 1 | 0x0040bc86 mov rdi, rax | 0x0040bc89 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040bc8e mov esi, 0x44b203 | 0x0040bc93 mov edx, 2 | 0x0040bc98 mov rdi, rax | 0x0040bc9b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bca0 mov rdi, rax | rdi = rax; 0x0040bca3 mov esi, r13d | esi = r13d; 0x0040bca6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040bcab mov esi, 0x44d0bd | 0x0040bcb0 mov edx, 1 | 0x0040bcb5 mov rdi, rax | 0x0040bcb8 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040bcbd mov esi, 0x44bd2c | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x0040bcc2 mov edi, 1 | edi = 1; 0x0040bcc7 mov edx, 0x4ba | edx = 0x4ba; 0x0040bccc call 0x405860 | symaSsErT(int (); 0x0040bcd1 jmp 0x40bb60 | goto label_8; | label_25: 0x0040bcd6 xor r13d, r13d | r13d = 0; 0x0040bcd9 lea r14, [rsp + 0x128] | r14 = rsp + 0x128; 0x0040bce1 lea r15, [rsp + 0x130] | r15 = rsp + 0x130; 0x0040bce9 jmp 0x40bcfd | | while (rbx == 9) { 0x0040bcf0 inc r13 | r13++; 0x0040bcf3 cmp r13, 9 | | if (r13 == 9) { 0x0040bcf7 je 0x40bf66 | goto label_30; | } 0x0040bcfd movzx eax, r13b | eax = (int32_t) r13b; 0x0040bd01 imul eax, eax, 0xab | eax *= 0xab; 0x0040bd07 shr eax, 9 | eax >>= 9; 0x0040bd0a lea ecx, [rax + rax*2] | ecx = rax * 3; 0x0040bd0d mov eax, r13d | eax = r13d; 0x0040bd10 sub al, cl | al -= cl; 0x0040bd12 cmp al, 1 | | if (al != 1) { 0x0040bd14 je 0x40bd30 | 0x0040bd16 movzx eax, al | eax = (int32_t) al; 0x0040bd19 test eax, eax | | if (eax == 0) { 0x0040bd1b jne 0x40bd40 | 0x0040bd1d mov rax, qword [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0040bd22 lea rbx, [rsp + 8] | rbx = rsp + 8; 0x0040bd27 jmp 0x40bd50 | | } else { 0x0040bd30 mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x0040bd38 lea rbx, [rsp + 0x68] | rbx = rsp + 0x68; 0x0040bd3d jmp 0x40bd50 | | } else { 0x0040bd40 mov rax, qword [rsp + 0xb0] | rax = *((rsp + 0xb0)); | } 0x0040bd48 lea rbx, [rsp + 0xc8] | rbx = rsp + 0xc8; | } 0x0040bd50 mov qword [rsp + 0x128], rax | *((rsp + 0x128)) = rax; 0x0040bd58 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040bd61 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040bd6a mov rdi, r12 | 0x0040bd6d mov rsi, r14 | 0x0040bd70 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, r14); 0x0040bd75 xor edi, edi | edi = 0; 0x0040bd77 mov rax, qword [rsp] | rax = *(rsp); 0x0040bd7b cmp dword [rax], 2 | 0x0040bd7e setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x0040bd82 mov esi, 0x44bce4 | esi = "2 == X.containers().numContainers()"; 0x0040bd87 mov edx, 0x4d0 | edx = 0x4d0; 0x0040bd8c call 0x405860 | symaSsErT(int (); 0x0040bd91 lea rax, [r13 + r13*4] | rax = r13 * 5; 0x0040bd96 shl rax, 4 | rax <<= 4; 0x0040bd9a lea rsi, [rax + 0x66a400] | 0x0040bda1 mov rdi, rbx | 0x0040bda4 call 0x405aa0 | AttributeSet::remove(BloombergLP::ball::Attributeconst&) (rbx, rax + obj.BALL_ATTRIBUTECONTEXT_TEST_CASE_3::ATTRS); 0x0040bda9 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040bdb2 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040bdbb mov rdi, r15 | 0x0040bdbe mov rsi, r12 | 0x0040bdc1 mov rdx, rbx | 0x0040bdc4 call 0x414610 | BloombergLP::ball::AttributeContainerList::pushFront(BloombergLP::ball::AttributeContainerconst*) (r15, r12, rbx); 0x0040bdc9 xor edi, edi | edi = 0; 0x0040bdcb mov rax, qword [rsp] | rax = *(rsp); 0x0040bdcf cmp dword [rax], 3 | 0x0040bdd2 setne dil | dil = (*(rax) != 3) ? 1 : 0; 0x0040bdd6 mov esi, 0x44bd59 | esi = "3 == X.containers().numContainers()"; 0x0040bddb mov edx, 0x4d5 | edx = 0x4d5; 0x0040bde0 call 0x405860 | symaSsErT(int (); 0x0040bde5 mov ebp, 0x66a400 | 0x0040bdea xor ebx, ebx | ebx = 0; 0x0040bdec jmp 0x40be01 | goto label_31; | label_9: 0x0040bdf0 inc rbx | rbx++; 0x0040bdf3 add rbp, 0x50 | rbp += 0x50; 0x0040bdf7 cmp rbx, 9 | 0x0040bdfb je 0x40bcf0 | | } | label_31: 0x0040be01 mov rdi, r12 | 0x0040be04 mov rsi, rbp | 0x0040be07 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbp); 0x0040be0c cmp rbx, r13 | 0x0040be0f seta cl | cl = (rbx > r13) ? 1 : 0; 0x0040be12 cmp cl, al | | if (cl != al) { 0x0040be14 je 0x40beb1 | 0x0040be1a mov edi, 0x669f48 | 0x0040be1f mov esi, 0x44e5a5 | 0x0040be24 mov edx, 1 | 0x0040be29 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040be2e mov esi, 0x44b203 | 0x0040be33 mov edx, 2 | 0x0040be38 mov rdi, rax | 0x0040be3b call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040be40 mov rdi, rax | rdi = rax; 0x0040be43 mov esi, r13d | esi = r13d; 0x0040be46 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040be4b mov esi, 0x44d180 | 0x0040be50 mov edx, 1 | 0x0040be55 mov rdi, rax | 0x0040be58 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040be5d mov esi, 0x44ba1d | 0x0040be62 mov edx, 1 | 0x0040be67 mov rdi, rax | 0x0040be6a call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040be6f mov esi, 0x44b203 | 0x0040be74 mov edx, 2 | 0x0040be79 mov rdi, rax | 0x0040be7c call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040be81 mov rdi, rax | rdi = rax; 0x0040be84 mov esi, ebx | esi = ebx; 0x0040be86 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040be8b mov esi, 0x44d0bd | 0x0040be90 mov edx, 1 | 0x0040be95 mov rdi, rax | 0x0040be98 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040be9d mov esi, 0x44bd08 | esi = "hasAttr == X.hasAttribute(ATTRS[j])"; 0x0040bea2 mov edi, 1 | edi = 1; 0x0040bea7 mov edx, 0x4da | edx = 0x4da; 0x0040beac call 0x405860 | symaSsErT(int (); | } 0x0040beb1 mov rdi, r12 | 0x0040beb4 mov rsi, rbp | 0x0040beb7 call 0x414710 | al = BloombergLP::ball::AttributeContainerList::hasValue(BloombergLP::ball::Attributeconst&)const (r12, rbp); 0x0040bebc cmp rbx, r13 | 0x0040bebf seta cl | cl = (rbx > r13) ? 1 : 0; 0x0040bec2 cmp cl, al | | if (cl == al) { 0x0040bec4 je 0x40bdf0 | goto label_9; | } 0x0040beca mov edi, 0x669f48 | 0x0040becf mov esi, 0x44e5a5 | 0x0040bed4 mov edx, 1 | 0x0040bed9 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x44e5a5, 1); 0x0040bede mov esi, 0x44b203 | 0x0040bee3 mov edx, 2 | 0x0040bee8 mov rdi, rax | 0x0040beeb call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bef0 mov rdi, rax | rdi = rax; 0x0040bef3 mov esi, r13d | esi = r13d; 0x0040bef6 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040befb mov esi, 0x44d180 | 0x0040bf00 mov edx, 1 | 0x0040bf05 mov rdi, rax | 0x0040bf08 call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d180, 1); 0x0040bf0d mov esi, 0x44ba1d | 0x0040bf12 mov edx, 1 | 0x0040bf17 mov rdi, rax | 0x0040bf1a call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44ba1d, 1); 0x0040bf1f mov esi, 0x44b203 | 0x0040bf24 mov edx, 2 | 0x0040bf29 mov rdi, rax | 0x0040bf2c call 0x413940 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44b203, 2); 0x0040bf31 mov rdi, rax | rdi = rax; 0x0040bf34 mov esi, ebx | esi = ebx; 0x0040bf36 call 0x4043c0 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0040bf3b mov esi, 0x44d0bd | 0x0040bf40 mov edx, 1 | 0x0040bf45 mov rdi, rax | 0x0040bf48 call 0x413940 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x44d0bd, 1); 0x0040bf4d mov esi, 0x44bd2c | esi = "hasAttr == X.containers().hasValue(ATTRS[j])"; 0x0040bf52 mov edi, 1 | edi = 1; 0x0040bf57 mov edx, 0x4db | edx = 0x4db; 0x0040bf5c call 0x405860 | symaSsErT(int (); 0x0040bf61 jmp 0x40bdf0 | goto label_9; | label_30: 0x0040bf66 mov rax, qword [rsp + 0xb8] | rax = *((rsp + 0xb8)); 0x0040bf6e mov qword [rsp + 0x120], rax | *((rsp + 0x120)) = rax; 0x0040bf76 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040bf7f mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040bf88 lea rsi, [rsp + 0x120] | 0x0040bf90 mov rdi, r12 | 0x0040bf93 call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x120); 0x0040bf98 xor edi, edi | edi = 0; 0x0040bf9a mov rax, qword [rsp] | rax = *(rsp); 0x0040bf9e cmp dword [rax], 2 | 0x0040bfa1 setne dil | dil = (*(rax) != 2) ? 1 : 0; 0x0040bfa5 mov esi, 0x44bce4 | esi = "2 == X.containers().numContainers()"; 0x0040bfaa mov edx, 0x4e0 | edx = 0x4e0; 0x0040bfaf call 0x405860 | symaSsErT(int (); 0x0040bfb4 mov rax, qword [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0040bfb9 mov qword [rsp + 0x118], rax | *((rsp + 0x118)) = rax; 0x0040bfc1 mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040bfca mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040bfd3 lea rsi, [rsp + 0x118] | 0x0040bfdb mov rdi, r12 | 0x0040bfde call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x118); 0x0040bfe3 xor edi, edi | edi = 0; 0x0040bfe5 mov rax, qword [rsp] | rax = *(rsp); 0x0040bfe9 cmp dword [rax], 1 | 0x0040bfec setne dil | dil = (*(rax) != 1) ? 1 : 0; 0x0040bff0 mov esi, 0x44bcc0 | esi = "1 == X.containers().numContainers()"; 0x0040bff5 mov edx, 0x4e3 | edx = 0x4e3; 0x0040bffa call 0x405860 | symaSsErT(int (); 0x0040bfff mov rax, qword [rsp + 0xb0] | rax = *((rsp + 0xb0)); 0x0040c007 mov qword [rsp + 0x110], rax | *((rsp + 0x110)) = rax; 0x0040c00f mov qword [r12 + 0x20], 0 | *((r12 + 0x20)) = 0; 0x0040c018 mov qword [r12 + 0x28], 0xffffffffffffffff | *((r12 + 0x28)) = 0xffffffffffffffff; 0x0040c021 lea rsi, [rsp + 0x110] | 0x0040c029 mov rdi, r12 | 0x0040c02c call 0x414680 | BloombergLP::ball::AttributeContainerList::remove(BloombergLP::ball::AttributeContainerListIteratorconst&) (r12, rsp + 0x110); 0x0040c031 xor edi, edi | edi = 0; 0x0040c033 mov rax, qword [rsp] | rax = *(rsp); 0x0040c037 cmp dword [rax], 0 | 0x0040c03a setne dil | dil = (*(rax) != 0) ? 1 : 0; 0x0040c03e mov esi, 0x44bc7a | esi = "0 == X.containers().numContainers()"; 0x0040c043 mov edx, 0x4e6 | edx = 0x4e6; 0x0040c048 call 0x405860 | symaSsErT(int (); 0x0040c04d mov qword [rsp + 0xc8], 0x44b050 | *((rsp + 0xc8)) = vtable.AttributeSet.0; 0x0040c059 lea rdi, [rsp + 0xd0] | 0x0040c061 call 0x4125d0 | bsl::set>::~set() (rsp + 0xd0); 0x0040c066 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0040c06e call 0x414410 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040c073 mov qword [rsp + 0x68], 0x44b050 | *((rsp + 0x68)) = vtable.AttributeSet.0; 0x0040c07c lea rdi, [rsp + 0x70] | 0x0040c081 call 0x4125d0 | bsl::set>::~set() (rsp + 0x70); 0x0040c086 lea rdi, [rsp + 0x68] | rdi = rsp + 0x68; 0x0040c08b call 0x414410 | BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040c090 mov qword [rsp + 8], 0x44b050 | *((rsp + 8)) = vtable.AttributeSet.0; 0x0040c099 lea rdi, [rsp + 0x10] | 0x0040c09e call 0x4125d0 | bsl::set>::~set() (rsp + 0x10); 0x0040c0a3 lea rdi, [rsp + 8] | rdi = rsp + 8; 0x0040c0a8 call 0x414410 | eax = BloombergLP::ball::AttributeContainer::~AttributeContainer() (); 0x0040c0ad xor eax, eax | eax = 0; 0x0040c0af add rsp, 0x168 | 0x0040c0b6 pop rbx | 0x0040c0b7 pop r12 | 0x0040c0b9 pop r13 | 0x0040c0bb pop r14 | 0x0040c0bd pop r15 | 0x0040c0bf pop rbp | 0x0040c0c0 ret | return rax; | }