; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4be8b0 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Sequence4.Sequence4_BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::s_baltst::Sequence4_Sequence4_BloombergLP::bslma::Allocator_ (int64_t arg2, int64_t arg1) { | 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_58h; | int64_t var_60h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence4::Sequence4(BloombergLP::bslma::Allocator*) */ 0x004be8b0 push rbp | 0x004be8b1 push r15 | 0x004be8b3 push r14 | 0x004be8b5 push r13 | 0x004be8b7 push r12 | 0x004be8b9 push rbx | 0x004be8ba sub rsp, 0x68 | 0x004be8be mov r14, rsi | r14 = rsi; 0x004be8c1 mov rbx, rdi | rbx = rdi; 0x004be8c4 mov qword [rdi], 0 | *(rdi) = 0; 0x004be8cb lea r12, [rdi + 8] | r12 = rdi + 8; 0x004be8cf test rsi, rsi | | if (rsi != 0) { 0x004be8d2 je 0x4bea43 | 0x004be8d8 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be8db movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x004be8e0 mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x004be8e9 lea rax, [rbx + 0x20] | rax = rbx + 0x20; 0x004be8ed mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x004be8f2 mov qword [rbx + 0x20], r14 | *((rbx + 0x20)) = r14; 0x004be8f6 lea rax, [rbx + 0x28] | rax = rbx + 0x28; 0x004be8fa mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004be8ff movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x004be903 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x004be90b lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x004be90f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004be914 mov qword [rbx + 0x40], r14 | *((rbx + 0x40)) = r14; 0x004be918 lea rax, [rbx + 0x48] | rax = rbx + 0x48; 0x004be91c mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x004be921 movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x004be925 mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x004be92d lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x004be931 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004be936 mov qword [rbx + 0x60], r14 | *((rbx + 0x60)) = r14; 0x004be93a lea rax, [rbx + 0x68] | rax = rbx + 0x68; 0x004be93e mov qword [rsp], rax | *(rsp) = rax; 0x004be942 movups xmmword [rbx + 0x68], xmm0 | __asm ("movups xmmword [rbx + 0x68], xmm0"); 0x004be946 mov qword [rbx + 0x78], 0 | *((rbx + 0x78)) = 0; 0x004be94e lea rax, [rbx + 0x80] | rax = rbx + 0x80; 0x004be955 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; 0x004be95a mov qword [rbx + 0x80], r14 | *((rbx + 0x80)) = r14; 0x004be961 lea rax, [rbx + 0x88] | rax = rbx + 0x88; 0x004be968 mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x004be96d movups xmmword [rbx + 0x88], xmm0 | __asm ("movups xmmword [rbx + 0x88], xmm0"); 0x004be974 mov qword [rbx + 0x98], 0 | *((rbx + 0x98)) = 0; 0x004be97f lea rax, [rbx + 0xa0] | rax = rbx + 0xa0; 0x004be986 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x004be98b mov qword [rbx + 0xa0], r14 | *((rbx + 0xa0)) = r14; 0x004be992 lea rax, [rbx + 0xa8] | rax = rbx + 0xa8; 0x004be999 mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004be99e movups xmmword [rbx + 0xa8], xmm0 | __asm ("movups xmmword [rbx + 0xa8], xmm0"); 0x004be9a5 mov qword [rbx + 0xb8], 0 | *((rbx + 0xb8)) = 0; 0x004be9b0 lea rax, [rbx + 0xc0] | rax = rbx + 0xc0; 0x004be9b7 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004be9bc mov qword [rbx + 0xc0], r14 | *((rbx + 0xc0)) = r14; 0x004be9c3 lea r13, [rbx + 0xc8] | r13 = rbx + 0xc8; 0x004be9ca movups xmmword [rbx + 0xc8], xmm0 | __asm ("movups xmmword [rbx + 0xc8], xmm0"); 0x004be9d1 mov qword [rbx + 0xd8], 0 | *((rbx + 0xd8)) = 0; 0x004be9dc lea rax, [rbx + 0xe0] | rax = rbx + 0xe0; 0x004be9e3 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004be9e8 mov qword [rbx + 0xe0], r14 | *((rbx + 0xe0)) = r14; 0x004be9ef lea rbp, [rbx + 0xe8] | rbp = rbx + 0xe8; 0x004be9f6 movups xmmword [rbx + 0xe8], xmm0 | __asm ("movups xmmword [rbx + 0xe8], xmm0"); 0x004be9fd mov qword [rbx + 0xf8], 0 | *((rbx + 0xf8)) = 0; 0x004bea08 lea rax, [rbx + 0x100] | rax = rbx + 0x100; 0x004bea0f mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bea14 mov qword [rbx + 0x100], r14 | *((rbx + 0x100)) = r14; 0x004bea1b movups xmmword [rbx + 0x108], xmm0 | __asm ("movups xmmword [rbx + 0x108], xmm0"); 0x004bea22 mov qword [rbx + 0x118], 0 | *((rbx + 0x118)) = 0; 0x004bea2d mov qword [rbx + 0x120], r14 | *((rbx + 0x120)) = r14; 0x004bea34 lea r15, [rbx + 0x108] | r15 = rbx + 0x108; 0x004bea3b mov rax, r14 | rax = r14; 0x004bea3e jmp 0x4bec47 | | } else { 0x004bea43 mov rax, qword [rip + 0x40e65e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bea4a test rax, rax | | if (rax == 0) { 0x004bea4d jne 0x4bea54 | 0x004bea4f call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bea54 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bea57 movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x004bea5c mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x004bea65 lea r15, [rbx + 0x20] | r15 = rbx + 0x20; 0x004bea69 mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x004bea6d mov rax, qword [rip + 0x40e634] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bea74 test rax, rax | 0x004bea77 mov qword [rsp + 0x58], r15 | *((rsp + 0x58)) = r15; | if (rax == 0) { 0x004bea7c jne 0x4bea83 | 0x004bea7e call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bea83 lea rbp, [rbx + 0x28] | rbp = rbx + 0x28; 0x004bea87 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bea8a movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x004bea8e mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x004bea96 lea r13, [rbx + 0x40] | r13 = rbx + 0x40; 0x004bea9a mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x004bea9e mov rax, qword [rip + 0x40e603] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beaa5 test rax, rax | 0x004beaa8 mov qword [rsp + 0x60], rbp | *((rsp + 0x60)) = rbp; 0x004beaad mov qword [rsp + 0x48], r13 | *((rsp + 0x48)) = r13; | if (rax == 0) { 0x004beab2 jne 0x4beab9 | 0x004beab4 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beab9 lea rcx, [rbx + 0x48] | rcx = rbx + 0x48; 0x004beabd xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004beac0 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004beac3 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x004beac8 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004bead0 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x004bead4 mov qword [rsp + 0x40], rcx | *((rsp + 0x40)) = rcx; 0x004bead9 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x004beadd mov rax, qword [rip + 0x40e5c4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beae4 test rax, rax | | if (rax == 0) { 0x004beae7 jne 0x4beaee | 0x004beae9 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beaee lea rcx, [rbx + 0x68] | rcx = rbx + 0x68; 0x004beaf2 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004beaf5 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004beaf8 mov qword [rsp], rcx | *(rsp) = rcx; 0x004beafc mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004beb04 lea rcx, [rbx + 0x80] | rcx = rbx + 0x80; 0x004beb0b mov qword [rsp + 0x30], rcx | *((rsp + 0x30)) = rcx; 0x004beb10 mov qword [rbx + 0x80], rax | *((rbx + 0x80)) = rax; 0x004beb17 mov rax, qword [rip + 0x40e58a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beb1e test rax, rax | | if (rax == 0) { 0x004beb21 jne 0x4beb28 | 0x004beb23 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beb28 lea rcx, [rbx + 0x88] | rcx = rbx + 0x88; 0x004beb2f xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004beb32 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004beb35 mov qword [rsp + 0x38], rcx | *((rsp + 0x38)) = rcx; 0x004beb3a mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004beb42 lea rcx, [rbx + 0xa0] | rcx = rbx + 0xa0; 0x004beb49 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x004beb4e mov qword [rbx + 0xa0], rax | *((rbx + 0xa0)) = rax; 0x004beb55 mov rax, qword [rip + 0x40e54c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beb5c test rax, rax | | if (rax == 0) { 0x004beb5f jne 0x4beb66 | 0x004beb61 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beb66 lea rcx, [rbx + 0xa8] | rcx = rbx + 0xa8; 0x004beb6d xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004beb70 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004beb73 mov qword [rsp + 0x28], rcx | *((rsp + 0x28)) = rcx; 0x004beb78 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004beb80 lea rcx, [rbx + 0xc0] | rcx = rbx + 0xc0; 0x004beb87 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x004beb8c mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x004beb93 mov rax, qword [rip + 0x40e50e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beb9a test rax, rax | | if (rax == 0) { 0x004beb9d jne 0x4beba4 | 0x004beb9f call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beba4 lea r13, [rbx + 0xc8] | r13 = rbx + 0xc8; 0x004bebab xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bebae movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004bebb3 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x004bebbb lea rcx, [rbx + 0xe0] | rcx = rbx + 0xe0; 0x004bebc2 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x004bebc7 mov qword [rbx + 0xe0], rax | *((rbx + 0xe0)) = rax; 0x004bebce mov rax, qword [rip + 0x40e4d3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bebd5 test rax, rax | | if (rax == 0) { 0x004bebd8 jne 0x4bebdf | 0x004bebda call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bebdf lea rbp, [rbx + 0xe8] | rbp = rbx + 0xe8; 0x004bebe6 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bebe9 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x004bebed mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x004bebf5 lea rcx, [rbx + 0x100] | rcx = rbx + 0x100; 0x004bebfc mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x004bec01 mov qword [rbx + 0x100], rax | *((rbx + 0x100)) = rax; 0x004bec08 mov rax, qword [rip + 0x40e499] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bec0f test rax, rax | | if (rax == 0) { 0x004bec12 jne 0x4bec19 | 0x004bec14 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bec19 lea r15, [rbx + 0x108] | r15 = rbx + 0x108; 0x004bec20 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bec23 movups xmmword [r15], xmm0 | __asm ("movups xmmword [r15], xmm0"); 0x004bec27 mov qword [r15 + 0x10], 0 | *((r15 + 0x10)) = 0; 0x004bec2f mov qword [rbx + 0x120], rax | *((rbx + 0x120)) = rax; 0x004bec36 mov rax, qword [rip + 0x40e46b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bec3d test rax, rax | | if (rax != 0) { 0x004bec40 jne 0x4bec47 | goto label_0; | } 0x004bec42 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x004bec47 mov qword [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x004bec52 movaps xmm0, xmmword [rip + 0x7e9d7] | xmm0 = .comment; 0x004bec59 movups xmmword [rbx + 0x140], xmm0 | __asm ("movups xmmword [rbx + 0x140], xmm0"); 0x004bec60 mov qword [rbx + 0x150], rax | *((rbx + 0x150)) = rax; 0x004bec67 mov byte [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x004bec6e test r14, r14 | | if (r14 != 0) { 0x004bec71 je 0x4bec91 | 0x004bec73 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004bec7a mov qword [rbx + 0x180], r14 | *((rbx + 0x180)) = r14; 0x004bec81 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004bec88 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004bec8f jmp 0x4becd2 | | } else { 0x004bec91 mov rax, qword [rip + 0x40e410] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bec98 test rax, rax | | if (rax == 0) { 0x004bec9b jne 0x4beca2 | 0x004bec9d call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beca2 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004beca9 mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x004becb0 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004becb7 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004becbe mov r14, qword [rip + 0x40e3e3] | r14 = BloombergLP::bslma::Default::s_defaultAllocator; 0x004becc5 test r14, r14 | | if (r14 != 0) { 0x004becc8 jne 0x4becd2 | goto label_1; | } 0x004becca call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004beccf mov r14, rax | r14 = rax; | } | label_1: 0x004becd2 mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x004becd9 mov qword [rbx + 0x1d8], r14 | *((rbx + 0x1d8)) = r14; 0x004bece0 mov dword [rbx + 0x1e0], 0 | *((rbx + 0x1e0)) = 0; 0x004becea mov byte [rbx + 0x1e4], 0 | *((rbx + 0x1e4)) = 0; 0x004becf1 mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x004becf8 mov byte [rbx + 0x1ec], 0 | *((rbx + 0x1ec)) = 0; 0x004becff mov byte [rbx + 0x1f0], 0 | *((rbx + 0x1f0)) = 0; 0x004bed06 mov dword [rbx + 0x1f4], 0 | *((rbx + 0x1f4)) = 0; 0x004bed10 mov byte [rbx + 0x1f8], 0 | *((rbx + 0x1f8)) = 0; 0x004bed17 add rsp, 0x68 | 0x004bed1b pop rbx | 0x004bed1c pop r12 | 0x004bed1e pop r13 | 0x004bed20 pop r14 | 0x004bed22 pop r15 | 0x004bed24 pop rbp | 0x004bed25 ret | return rax; | }