; assembly | /* r2dec pseudo code output */ | /* ball_administration.t/assume @ 0x412790 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept_BloombergLP::ball::ManagedAttribute__bsl::allocator_BloombergLP::ball.ManagedAttribute____BloombergLP::ball::ManagedAttribute__BloombergLP::ball::ManagedAttribute__BloombergLP::ball:: () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept_BloombergLP::ball::ManagedAttribute_bsl::allocator_BloombergLP::ball_ManagedAttribute_BloombergLP::ball::ManagedAttribute_BloombergLP::ball::ManagedAttribute_BloombergLP::ball:: (int64_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept >(BloombergLP::ball::ManagedAttribute*, BloombergLP::ball::ManagedAttribute*, BloombergLP::ball::ManagedAttribute*, bsl::allocator, BloombergLP::bslmf::MetaInt<0>*) */ 0x00412790 push rbp | 0x00412791 push r15 | 0x00412793 push r14 | 0x00412795 push r13 | 0x00412797 push r12 | 0x00412799 push rbx | 0x0041279a push rax | 0x0041279b cmp rsi, rdx | | if (rsi == rdx) { 0x0041279e je 0x4127fd | goto label_0; | } 0x004127a0 mov r14, rcx | r14 = rcx; 0x004127a3 mov r15, rdx | r15 = rdx; 0x004127a6 mov r12, rsi | r12 = rsi; 0x004127a9 mov rbx, rdi | rbx = rdi; 0x004127ac sub r15, rsi | r15 -= rsi; 0x004127af xor ebp, ebp | ebp = 0; 0x004127b1 mov r13, rsp | r13 = rsp; 0x004127b4 nop word cs:[rax + rax] | 0x004127be nop | | do { 0x004127c0 mov rax, qword [r14] | rax = *(r14); 0x004127c3 test rax, rax | | if (rax == 0) { 0x004127c6 jne 0x4127e0 | 0x004127c8 mov rax, qword [rip + 0x2851e1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004127cf test rax, rax | | if (rax != 0) { 0x004127d2 jne 0x4127e0 | goto label_1; | } 0x004127d4 call 0x431130 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004127d9 nop dword [rax] | | } | label_1: 0x004127e0 lea rsi, [r12 + rbp] | 0x004127e4 lea rdi, [rbx + rbp] | 0x004127e8 mov qword [rsp], rax | *(rsp) = rax; 0x004127ec mov rdx, r13 | 0x004127ef call 0x412560 | BloombergLP::ball::ManagedAttribute::ManagedAttribute(BloombergLP::ball::ManagedAttributeconst&,bsl::allocatorconst&) (rbx + rbp, r12 + rbp, r13); 0x004127f4 sub rbp, 0xffffffffffffff80 | rbp -= 0xffffffffffffff80; 0x004127f8 cmp r15, rbp | 0x004127fb jne 0x4127c0 | | } while (r15 != rbp); | label_0: 0x004127fd add rsp, 8 | 0x00412801 pop rbx | 0x00412802 pop r12 | 0x00412804 pop r13 | 0x00412806 pop r14 | 0x00412808 pop r15 | 0x0041280a pop rbp | 0x0041280b ret | return rax; | }