; assembly | /* r2dec pseudo code output */ | /* ball_recordjsonformatter.t/assume @ 0x415ce0 */ | #include | ; (fcn) method.BloombergLP::ball::UserFieldValue_bsl::vector_BloombergLP::ball::UserFieldValue__bsl::allocator_BloombergLP::ball::UserFieldValue___.emplace_back____ () | int64_t method_BloombergLP::ball::UserFieldValue_bsl::vector_BloombergLP::ball::UserFieldValue_bsl::allocator_BloombergLP::ball::UserFieldValue_emplace_back_ (int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_28h; | rdi = arg1; | /* BloombergLP::ball::UserFieldValue& bsl::vector >::emplace_back<>() */ 0x00415ce0 push r15 | 0x00415ce2 push r14 | 0x00415ce4 push r13 | 0x00415ce6 push r12 | 0x00415ce8 push rbx | 0x00415ce9 sub rsp, 0x30 | 0x00415ced mov r13, rdi | r13 = rdi; 0x00415cf0 mov rbx, qword [rdi + 8] | rbx = *((rdi + 8)); 0x00415cf4 mov rsi, qword [rdi + 0x10] | rsi = *((rdi + 0x10)); 0x00415cf8 mov rdi, rbx | rdi = rbx; 0x00415cfb sub rdi, qword [r13] | rdi -= *(r13); 0x00415cff sar rdi, 6 | rdi >>= 6; 0x00415d03 cmp rsi, rdi | | if (rsi > rdi) { 0x00415d06 jbe 0x415d4b | 0x00415d08 mov rax, qword [r13 + 0x18] | rax = *((r13 + 0x18)); 0x00415d0c mov dword [rbx + 0x30], 0 | *((rbx + 0x30)) = 0; 0x00415d13 test rax, rax | | if (rax == 0) { 0x00415d16 jne 0x415d29 | 0x00415d18 mov rax, qword [rip + 0x2d5e01] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00415d1f test rax, rax | | if (rax != 0) { 0x00415d22 jne 0x415d29 | goto label_1; | } 0x00415d24 call 0x4712e0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x00415d29 mov qword [rbx + 0x38], rax | *((rbx + 0x38)) = rax; 0x00415d2d mov rax, qword [r13 + 8] | rax = *((r13 + 8)); 0x00415d31 add rax, 0x40 | rax += 0x40; 0x00415d35 mov qword [r13 + 8], rax | *((r13 + 8)) = rax; | label_0: 0x00415d39 add rax, 0xffffffffffffffc0 | rax += 0xffffffffffffffc0; 0x00415d3d add rsp, 0x30 | 0x00415d41 pop rbx | 0x00415d42 pop r12 | 0x00415d44 pop r13 | 0x00415d46 pop r14 | 0x00415d48 pop r15 | 0x00415d4a ret | return rax; | } 0x00415d4b inc rdi | rdi++; 0x00415d4e movabs rdx, 0x3ffffffffffffff | rdx = 0x3ffffffffffffff; 0x00415d58 call 0x47d400 | rax = bsl::Vector_Util::computeNewCapacity(unsigned long,unsigned long,unsigned long) (rdi, rsi, rdx); 0x00415d5d mov r15, rax | r15 = rax; 0x00415d60 mov rdi, qword [r13 + 0x18] | rdi = *((r13 + 0x18)); 0x00415d64 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00415d67 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x00415d6b mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x00415d74 mov qword [rsp + 0x18], rdi | *((rsp + 0x18)) = rdi; 0x00415d79 mov rsi, rax | rsi = rax; 0x00415d7c shl rsi, 6 | rsi <<= 6; 0x00415d80 mov rax, qword [rdi] | rax = *(rdi); 0x00415d83 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x00415d86 mov r14, rax | r14 = rax; 0x00415d89 mov r12, rax | r12 = rax; 0x00415d8c mov qword [rsp + 8], r14 | *((rsp + 8)) = r14; 0x00415d91 mov qword [rsp], r14 | *(rsp) = r14; 0x00415d95 mov qword [rsp + 0x10], r15 | *((rsp + 0x10)) = r15; 0x00415d9a mov r15, qword [r13 + 8] | r15 = *((r13 + 8)); 0x00415d9e mov rax, qword [r13 + 0x18] | rax = *((r13 + 0x18)); 0x00415da2 sub r15, qword [r13] | r15 -= *(r13); 0x00415da6 mov dword [r14 + r15 + 0x30], 0 | *((r14 + r15 + 0x30)) = 0; 0x00415daf test rax, rax | | if (rax == 0) { 0x00415db2 jne 0x415dc5 | 0x00415db4 mov rax, qword [rip + 0x2d5d65] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00415dbb test rax, rax | | if (rax != 0) { 0x00415dbe jne 0x415dc5 | goto label_2; | } 0x00415dc0 call 0x4712e0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_2: 0x00415dc5 add r14, r15 | r14 += r15; 0x00415dc8 sar r15, 6 | r15 >>= 6; 0x00415dcc shl r15, 6 | r15 <<= 6; 0x00415dd0 mov qword [r12 + r15 + 0x38], rax | *((r12 + r15 + 0x38)) = rax; 0x00415dd5 mov rdi, qword [rsp] | 0x00415dd9 mov r15, qword [r13] | r15 = *(r13); 0x00415ddd mov r12, qword [r13 + 8] | r12 = *((r13 + 8)); 0x00415de1 mov rax, qword [r13 + 0x18] | rax = *((r13 + 0x18)); 0x00415de5 mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x00415dea lea rcx, [rsp + 0x28] | 0x00415def mov rsi, r15 | 0x00415df2 mov rdx, r12 | 0x00415df5 xor r8d, r8d | r8d = 0; 0x00415df8 call 0x415ef0 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (*(rsp), r15, r12, rsp + 0x28); 0x00415dfd cmp r15, r12 | | if (r15 == r12) { 0x00415e00 je 0x415e13 | goto label_3; | } | do { 0x00415e02 mov rdi, r15 | 0x00415e05 call 0x4153b0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (r15, rsi); 0x00415e0a add r15, 0x40 | r15 += 0x40; 0x00415e0e cmp r12, r15 | 0x00415e11 jne 0x415e02 | | } while (r12 != r15); | label_3: 0x00415e13 mov rax, qword [r13] | rax = *(r13); 0x00415e17 mov qword [r13 + 8], rax | *((r13 + 8)) = rax; 0x00415e1b add r14, 0x40 | r14 += 0x40; 0x00415e1f mov qword [rsp + 8], r14 | *((rsp + 8)) = r14; 0x00415e24 mov rsi, rsp | 0x00415e27 mov rdi, r13 | 0x00415e2a call 0x47d430 | bsl::Vector_Util::swap(void*,void*) (r13, rsp); 0x00415e2f mov r14, qword [rsp] | r14 = *(rsp); 0x00415e33 test r14, r14 | | if (r14 == 0) { 0x00415e36 je 0x415e65 | goto label_4; | } 0x00415e38 mov rbx, qword [rsp + 8] | rbx = *((rsp + 8)); 0x00415e3d cmp r14, rbx | | if (r14 == rbx) { 0x00415e40 je 0x415e57 | goto label_5; | } | do { 0x00415e42 mov rdi, r14 | 0x00415e45 call 0x4153b0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (r14, rsi); 0x00415e4a add r14, 0x40 | r14 += 0x40; 0x00415e4e cmp rbx, r14 | 0x00415e51 jne 0x415e42 | | } while (rbx != r14); 0x00415e53 mov r14, qword [rsp] | r14 = *(rsp); | label_5: 0x00415e57 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x00415e5c mov rax, qword [rdi] | rax = *(rdi); 0x00415e5f mov rsi, r14 | rsi = r14; 0x00415e62 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | label_4: 0x00415e65 mov rax, qword [r13 + 8] | rax = *((r13 + 8)); 0x00415e69 jmp 0x415d39 | goto label_0; | }