; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x40d3a0 */ | #include | ; (fcn) method.BloombergLP::balb::Sequence4.Sequence4_BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::balb::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; | int64_t var_68h; | int64_t var_70h; | int64_t var_78h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balb::Sequence4::Sequence4(BloombergLP::bslma::Allocator*) */ 0x0040d3a0 push rbp | 0x0040d3a1 push r15 | 0x0040d3a3 push r14 | 0x0040d3a5 push r13 | 0x0040d3a7 push r12 | 0x0040d3a9 push rbx | 0x0040d3aa sub rsp, 0x88 | 0x0040d3b1 mov r14, rsi | r14 = rsi; 0x0040d3b4 mov rbx, rdi | rbx = rdi; 0x0040d3b7 mov qword [rdi], 0 | *(rdi) = 0; 0x0040d3be lea rbp, [rdi + 8] | rbp = rdi + 8; 0x0040d3c2 test rsi, rsi | 0x0040d3c5 mov qword [rsp + 0x78], rbp | *((rsp + 0x78)) = rbp; | if (rsi != 0) { 0x0040d3ca je 0x40d541 | 0x0040d3d0 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d3d3 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x0040d3d7 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x0040d3df lea rbp, [rbx + 0x20] | rbp = rbx + 0x20; 0x0040d3e3 mov qword [rbx + 0x20], r14 | *((rbx + 0x20)) = r14; 0x0040d3e7 lea rax, [rbx + 0x28] | rax = rbx + 0x28; 0x0040d3eb mov qword [rsp + 0x70], rax | *((rsp + 0x70)) = rax; 0x0040d3f0 movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x0040d3f4 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x0040d3fc lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x0040d400 mov qword [rsp + 0x68], rax | *((rsp + 0x68)) = rax; 0x0040d405 mov qword [rbx + 0x40], r14 | *((rbx + 0x40)) = r14; 0x0040d409 lea rax, [rbx + 0x48] | rax = rbx + 0x48; 0x0040d40d mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x0040d412 movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x0040d416 mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x0040d41e lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x0040d422 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0040d427 mov qword [rbx + 0x60], r14 | *((rbx + 0x60)) = r14; 0x0040d42b lea rax, [rbx + 0x68] | rax = rbx + 0x68; 0x0040d42f mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0040d434 movups xmmword [rbx + 0x68], xmm0 | __asm ("movups xmmword [rbx + 0x68], xmm0"); 0x0040d438 mov qword [rbx + 0x78], 0 | *((rbx + 0x78)) = 0; 0x0040d440 lea rax, [rbx + 0x80] | rax = rbx + 0x80; 0x0040d447 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0040d44c mov qword [rbx + 0x80], r14 | *((rbx + 0x80)) = r14; 0x0040d453 lea rax, [rbx + 0x88] | rax = rbx + 0x88; 0x0040d45a mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x0040d45f movups xmmword [rbx + 0x88], xmm0 | __asm ("movups xmmword [rbx + 0x88], xmm0"); 0x0040d466 mov qword [rbx + 0x98], 0 | *((rbx + 0x98)) = 0; 0x0040d471 lea rax, [rbx + 0xa0] | rax = rbx + 0xa0; 0x0040d478 mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x0040d47d mov qword [rbx + 0xa0], r14 | *((rbx + 0xa0)) = r14; 0x0040d484 lea rax, [rbx + 0xa8] | rax = rbx + 0xa8; 0x0040d48b mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x0040d490 movups xmmword [rbx + 0xa8], xmm0 | __asm ("movups xmmword [rbx + 0xa8], xmm0"); 0x0040d497 mov qword [rbx + 0xb8], 0 | *((rbx + 0xb8)) = 0; 0x0040d4a2 lea rax, [rbx + 0xc0] | rax = rbx + 0xc0; 0x0040d4a9 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; 0x0040d4ae mov qword [rbx + 0xc0], r14 | *((rbx + 0xc0)) = r14; 0x0040d4b5 lea rax, [rbx + 0xc8] | rax = rbx + 0xc8; 0x0040d4bc mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040d4c1 movups xmmword [rbx + 0xc8], xmm0 | __asm ("movups xmmword [rbx + 0xc8], xmm0"); 0x0040d4c8 mov qword [rbx + 0xd8], 0 | *((rbx + 0xd8)) = 0; 0x0040d4d3 lea rax, [rbx + 0xe0] | rax = rbx + 0xe0; 0x0040d4da mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x0040d4df mov qword [rbx + 0xe0], r14 | *((rbx + 0xe0)) = r14; 0x0040d4e6 lea r13, [rbx + 0xe8] | r13 = rbx + 0xe8; 0x0040d4ed movups xmmword [rbx + 0xe8], xmm0 | __asm ("movups xmmword [rbx + 0xe8], xmm0"); 0x0040d4f4 mov qword [rbx + 0xf8], 0 | *((rbx + 0xf8)) = 0; 0x0040d4ff lea rax, [rbx + 0x100] | rax = rbx + 0x100; 0x0040d506 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0040d50b mov qword [rbx + 0x100], r14 | *((rbx + 0x100)) = r14; 0x0040d512 movups xmmword [rbx + 0x108], xmm0 | __asm ("movups xmmword [rbx + 0x108], xmm0"); 0x0040d519 mov qword [rbx + 0x118], 0 | *((rbx + 0x118)) = 0; 0x0040d524 mov qword [rbx + 0x120], r14 | *((rbx + 0x120)) = r14; 0x0040d52b lea r12, [rbx + 0x108] | r12 = rbx + 0x108; 0x0040d532 lea r15, [rbx + 0x120] | r15 = rbx + 0x120; 0x0040d539 mov rax, r14 | rax = r14; 0x0040d53c jmp 0x40d758 | | } else { 0x0040d541 mov rax, qword [rip + 0x272608] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d548 test rax, rax | | if (rax == 0) { 0x0040d54b jne 0x40d552 | 0x0040d54d call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d552 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d555 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x0040d559 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x0040d561 lea rcx, [rbx + 0x20] | rcx = rbx + 0x20; 0x0040d565 mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0040d56a mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x0040d56e mov rax, qword [rip + 0x2725db] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d575 test rax, rax | | if (rax == 0) { 0x0040d578 jne 0x40d57f | 0x0040d57a call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d57f lea r15, [rbx + 0x28] | r15 = rbx + 0x28; 0x0040d583 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d586 movups xmmword [r15], xmm0 | __asm ("movups xmmword [r15], xmm0"); 0x0040d58a mov qword [r15 + 0x10], 0 | *((r15 + 0x10)) = 0; 0x0040d592 lea r12, [rbx + 0x40] | r12 = rbx + 0x40; 0x0040d596 mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x0040d59a mov rax, qword [rip + 0x2725af] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d5a1 test rax, rax | 0x0040d5a4 mov qword [rsp + 0x70], r15 | *((rsp + 0x70)) = r15; 0x0040d5a9 mov qword [rsp + 0x68], r12 | *((rsp + 0x68)) = r12; | if (rax == 0) { 0x0040d5ae jne 0x40d5b5 | 0x0040d5b0 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d5b5 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x0040d5b9 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d5bc movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x0040d5c1 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x0040d5c9 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x0040d5cd mov qword [rsp + 0x58], rcx | *((rsp + 0x58)) = rcx; 0x0040d5d2 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x0040d5d6 mov rax, qword [rip + 0x272573] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d5dd test rax, rax | 0x0040d5e0 mov qword [rsp + 0x60], r13 | *((rsp + 0x60)) = r13; | if (rax == 0) { 0x0040d5e5 jne 0x40d5ec | 0x0040d5e7 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d5ec lea rcx, [rbx + 0x68] | rcx = rbx + 0x68; 0x0040d5f0 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d5f3 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d5f6 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0040d5fb mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d603 lea rcx, [rbx + 0x80] | rcx = rbx + 0x80; 0x0040d60a mov qword [rsp + 0x48], rcx | *((rsp + 0x48)) = rcx; 0x0040d60f mov qword [rbx + 0x80], rax | *((rbx + 0x80)) = rax; 0x0040d616 mov rax, qword [rip + 0x272533] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d61d test rax, rax | | if (rax == 0) { 0x0040d620 jne 0x40d627 | 0x0040d622 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d627 lea rcx, [rbx + 0x88] | rcx = rbx + 0x88; 0x0040d62e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d631 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d634 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x0040d639 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d641 lea rcx, [rbx + 0xa0] | rcx = rbx + 0xa0; 0x0040d648 mov qword [rsp + 0x38], rcx | *((rsp + 0x38)) = rcx; 0x0040d64d mov qword [rbx + 0xa0], rax | *((rbx + 0xa0)) = rax; 0x0040d654 mov rax, qword [rip + 0x2724f5] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d65b test rax, rax | | if (rax == 0) { 0x0040d65e jne 0x40d665 | 0x0040d660 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d665 lea rcx, [rbx + 0xa8] | rcx = rbx + 0xa8; 0x0040d66c xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d66f movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d672 mov qword [rsp + 0x40], rcx | *((rsp + 0x40)) = rcx; 0x0040d677 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d67f lea rcx, [rbx + 0xc0] | rcx = rbx + 0xc0; 0x0040d686 mov qword [rsp + 0x30], rcx | *((rsp + 0x30)) = rcx; 0x0040d68b mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x0040d692 mov rax, qword [rip + 0x2724b7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d699 test rax, rax | | if (rax == 0) { 0x0040d69c jne 0x40d6a3 | 0x0040d69e call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d6a3 lea rcx, [rbx + 0xc8] | rcx = rbx + 0xc8; 0x0040d6aa xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d6ad movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d6b0 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0040d6b5 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d6bd lea rcx, [rbx + 0xe0] | rcx = rbx + 0xe0; 0x0040d6c4 mov qword [rsp + 0x28], rcx | *((rsp + 0x28)) = rcx; 0x0040d6c9 mov qword [rbx + 0xe0], rax | *((rbx + 0xe0)) = rax; 0x0040d6d0 mov rax, qword [rip + 0x272479] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d6d7 test rax, rax | | if (rax == 0) { 0x0040d6da jne 0x40d6e1 | 0x0040d6dc call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d6e1 lea r13, [rbx + 0xe8] | r13 = rbx + 0xe8; 0x0040d6e8 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d6eb movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x0040d6f0 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x0040d6f8 lea rcx, [rbx + 0x100] | rcx = rbx + 0x100; 0x0040d6ff mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0040d704 mov qword [rbx + 0x100], rax | *((rbx + 0x100)) = rax; 0x0040d70b mov rax, qword [rip + 0x27243e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d712 test rax, rax | | if (rax == 0) { 0x0040d715 jne 0x40d71c | 0x0040d717 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d71c lea r12, [rbx + 0x108] | r12 = rbx + 0x108; 0x0040d723 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d726 movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x0040d72b mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x0040d734 lea r15, [rbx + 0x120] | r15 = rbx + 0x120; 0x0040d73b mov qword [rbx + 0x120], rax | *((rbx + 0x120)) = rax; 0x0040d742 mov rax, qword [rip + 0x272407] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d749 test rax, rax | 0x0040d74c mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); | if (rax != 0) { 0x0040d751 jne 0x40d758 | goto label_0; | } 0x0040d753 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x0040d758 mov qword [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x0040d763 movaps xmm0, xmmword [rip + 0x38796] | xmm0 = .comment; 0x0040d76a movups xmmword [rbx + 0x140], xmm0 | __asm ("movups xmmword [rbx + 0x140], xmm0"); 0x0040d771 mov qword [rbx + 0x150], rax | *((rbx + 0x150)) = rax; 0x0040d778 mov byte [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x0040d77f test r14, r14 | | if (r14 != 0) { 0x0040d782 je 0x40d7a2 | 0x0040d784 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x0040d78b mov qword [rbx + 0x180], r14 | *((rbx + 0x180)) = r14; 0x0040d792 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x0040d799 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x0040d7a0 jmp 0x40d7e3 | | } else { 0x0040d7a2 mov rax, qword [rip + 0x2723a7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d7a9 test rax, rax | | if (rax == 0) { 0x0040d7ac jne 0x40d7b3 | 0x0040d7ae call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d7b3 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x0040d7ba mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x0040d7c1 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x0040d7c8 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x0040d7cf mov r14, qword [rip + 0x27237a] | r14 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d7d6 test r14, r14 | | if (r14 != 0) { 0x0040d7d9 jne 0x40d7e3 | goto label_1; | } 0x0040d7db call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040d7e0 mov r14, rax | r14 = rax; | } | label_1: 0x0040d7e3 mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x0040d7ea mov qword [rbx + 0x1d8], r14 | *((rbx + 0x1d8)) = r14; 0x0040d7f1 mov dword [rbx + 0x1e0], 0 | *((rbx + 0x1e0)) = 0; 0x0040d7fb mov byte [rbx + 0x1e4], 0 | *((rbx + 0x1e4)) = 0; 0x0040d802 mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x0040d809 mov byte [rbx + 0x1ec], 0 | *((rbx + 0x1ec)) = 0; 0x0040d810 mov byte [rbx + 0x1f0], 0 | *((rbx + 0x1f0)) = 0; 0x0040d817 mov dword [rbx + 0x1f4], 0 | *((rbx + 0x1f4)) = 0; 0x0040d821 mov byte [rbx + 0x1f8], 0 | *((rbx + 0x1f8)) = 0; 0x0040d828 add rsp, 0x88 | 0x0040d82f pop rbx | 0x0040d830 pop r12 | 0x0040d832 pop r13 | 0x0040d834 pop r14 | 0x0040d836 pop r15 | 0x0040d838 pop rbp | 0x0040d839 ret | return rax; | }