; assembly | /* r2dec pseudo code output */ | /* ball_attributecollectorregistry.t/assume @ 0x4057a0 */ | #include | ; (fcn) method.u.collectingVisitor_bsl::vector_BloombergLP::ball::ManagedAttribute__bsl::allocator_BloombergLP::ball::ManagedAttribute_____BloombergLP::ball::Attribute_const_ () | int64_t method_u_collectingVisitor_bsl::vector_BloombergLP::ball::ManagedAttribute_bsl::allocator_BloombergLP::ball::ManagedAttribute_BloombergLP::ball::Attribute_const_ (int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | uint32_t var_30h; | int64_t var_38h; | int64_t var_48h; | int64_t var_60h; | uint32_t var_68h; | int64_t var_70h; | int64_t var_78h; | rsi = arg2; | rdi = arg1; | /* u::collectingVisitor(bsl::vector >*, BloombergLP::ball::Attribute const&) */ 0x004057a0 push r15 | 0x004057a2 push r14 | 0x004057a4 push rbx | 0x004057a5 sub rsp, 0x90 | 0x004057ac mov r15, rsi | r15 = rsi; 0x004057af mov r14, rdi | r14 = rdi; 0x004057b2 mov rax, qword [rip + 0x247227] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004057b9 test rax, rax | | if (rax == 0) { 0x004057bc jne 0x4057c3 | 0x004057be call 0x40cb30 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004057c3 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004057c8 lea rbx, [rsp + 0x10] | rbx = rsp + 0x10; 0x004057cd lea rdx, [rsp + 8] | 0x004057d2 mov rdi, rbx | 0x004057d5 mov rsi, r15 | 0x004057d8 call 0x4095e0 | BloombergLP::ball::ManagedAttribute::ManagedAttribute(BloombergLP::ball::Attributeconst&,bsl::allocatorconst&) (rbx, r15, rsp + 8); 0x004057dd mov rdi, r14 | 0x004057e0 mov rsi, rbx | 0x004057e3 call 0x409270 | bsl::vector>::push_back(BloombergLP::ball::ManagedAttribute&&) (r14, rbx); 0x004057e8 mov eax, dword [rsp + 0x78] | eax = *((rsp + 0x78)); 0x004057ec test eax, eax | | if (eax != 0) { 0x004057ee je 0x40581e | 0x004057f0 cmp eax, 3 | | if (eax == 3) { 0x004057f3 jne 0x405816 | 0x004057f5 cmp qword [rsp + 0x68], 0x17 | | if (*((rsp + 0x68)) != 0x17) { 0x004057fb je 0x40580d | 0x004057fd mov rsi, qword [rsp + 0x48] | rsi = *((rsp + 0x48)); 0x00405802 mov rdi, qword [rsp + 0x70] | rdi = *((rsp + 0x70)); 0x00405807 mov rax, qword [rdi] | rax = *(rdi); 0x0040580a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040580d mov qword [rsp + 0x60], 0xffffffffffffffff | *((rsp + 0x60)) = 0xffffffffffffffff; | } 0x00405816 mov dword [rsp + 0x78], 0 | *((rsp + 0x78)) = 0; | } 0x0040581e cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00405824 je 0x405836 | 0x00405826 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0040582b mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00405830 mov rax, qword [rdi] | rax = *(rdi); 0x00405833 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00405836 add rsp, 0x90 | 0x0040583d pop rbx | 0x0040583e pop r14 | 0x00405840 pop r15 | 0x00405842 ret | return rax; | }