; assembly | /* r2dec pseudo code output */ | /* ball_recordjsonformatter.t/none @ 0x414970 */ | #include | ; (fcn) method.BloombergLP::ball::Record.Record_BloombergLP::ball::RecordAttributes_const__BloombergLP::ball::UserFields_const__BloombergLP::bslma::Allocator_ () | int64_t method_BloombergLP::ball::Record_Record_BloombergLP::ball::RecordAttributes_const_BloombergLP::ball::UserFields_const_BloombergLP::bslma::Allocator_ (int64_t arg4, int64_t arg3, int64_t arg2, char * arg1) { | int64_t var_8h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::ball::Record::Record(BloombergLP::ball::RecordAttributes const&, BloombergLP::ball::UserFields const&, BloombergLP::bslma::Allocator*) */ 0x00414970 push r15 | 0x00414972 push r14 | 0x00414974 push r13 | 0x00414976 push r12 | 0x00414978 push rbx | 0x00414979 sub rsp, 0x10 | 0x0041497d mov r14, rcx | r14 = rcx; 0x00414980 mov r12, rdx | r12 = rdx; 0x00414983 mov r13, rsi | r13 = rsi; 0x00414986 mov rbx, rdi | rbx = rdi; 0x00414989 mov qword [rdi], 0x49b688 | *(rdi) = vtable.BloombergLP::ball::CountingAllocator.0; 0x00414990 mov qword [rdi + 8], 0 | *((rdi + 8)) = 0; 0x00414998 mov rax, rcx | rax = rcx; 0x0041499b test rcx, rcx | | if (rcx == 0) { 0x0041499e jne 0x4149b1 | 0x004149a0 mov rax, qword [rip + 0x2d9179] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004149a7 test rax, rax | | if (rax != 0) { 0x004149aa jne 0x4149b1 | goto label_0; | } 0x004149ac call 0x472d60 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x004149b1 mov qword [rbx + 0x10], rax | *((rbx + 0x10)) = rax; 0x004149b5 lea r15, [rbx + 0x18] | r15 = rbx + 0x18; 0x004149b9 mov rdi, r15 | 0x004149bc mov rsi, r13 | 0x004149bf mov rdx, rbx | 0x004149c2 call 0x418820 | BloombergLP::ball::RecordAttributes::RecordAttributes(BloombergLP::ball::RecordAttributesconst&,BloombergLP::bslma::Allocator*) (r15, r13, rbx); 0x004149c7 lea r13, [rbx + 0xe8] | r13 = rbx + 0xe8; 0x004149ce mov qword [rsp + 8], rbx | *((rsp + 8)) = rbx; 0x004149d3 lea rdx, [rsp + 8] | 0x004149d8 mov rdi, r13 | 0x004149db mov rsi, r12 | 0x004149de call 0x4157e0 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r13, r12, rsp + 8); 0x004149e3 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004149e6 movups xmmword [rbx + 0x108], xmm0 | __asm ("movups xmmword [rbx + 0x108], xmm0"); 0x004149ed mov qword [rbx + 0x118], 0 | *((rbx + 0x118)) = 0; 0x004149f8 mov qword [rbx + 0x120], rbx | *((rbx + 0x120)) = rbx; 0x004149ff test r14, r14 | | if (r14 == 0) { 0x00414a02 jne 0x414a1f | 0x00414a04 mov r14, qword [rip + 0x2d9115] | r14 = BloombergLP::bslma::Default::s_defaultAllocator; 0x00414a0b test r14, r14 | | if (r14 != 0) { 0x00414a0e jne 0x414a1f | goto label_1; | } 0x00414a10 lea r12, [rbx + 0x108] | r12 = rbx + 0x108; 0x00414a17 call 0x472d60 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x00414a1c mov r14, rax | r14 = rax; | } | label_1: 0x00414a1f mov qword [rbx + 0x128], r14 | *((rbx + 0x128)) = r14; 0x00414a26 add rsp, 0x10 | 0x00414a2a pop rbx | 0x00414a2b pop r12 | 0x00414a2d pop r13 | 0x00414a2f pop r14 | 0x00414a31 pop r15 | 0x00414a33 ret | return rax; | }