; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/none @ 0x40d320 */ | #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; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balb::Sequence4::Sequence4(BloombergLP::bslma::Allocator*) */ 0x0040d320 push rbp | 0x0040d321 push r15 | 0x0040d323 push r14 | 0x0040d325 push r13 | 0x0040d327 push r12 | 0x0040d329 push rbx | 0x0040d32a sub rsp, 0x68 | 0x0040d32e mov r14, rsi | r14 = rsi; 0x0040d331 mov rbx, rdi | rbx = rdi; 0x0040d334 mov qword [rdi], 0 | *(rdi) = 0; 0x0040d33b lea r12, [rdi + 8] | r12 = rdi + 8; 0x0040d33f test rsi, rsi | | if (rsi != 0) { 0x0040d342 je 0x40d4b3 | 0x0040d348 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d34b movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x0040d350 mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x0040d359 lea rax, [rbx + 0x20] | rax = rbx + 0x20; 0x0040d35d mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0040d362 mov qword [rbx + 0x20], r14 | *((rbx + 0x20)) = r14; 0x0040d366 lea rax, [rbx + 0x28] | rax = rbx + 0x28; 0x0040d36a mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x0040d36f movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x0040d373 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x0040d37b lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x0040d37f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0040d384 mov qword [rbx + 0x40], r14 | *((rbx + 0x40)) = r14; 0x0040d388 lea rax, [rbx + 0x48] | rax = rbx + 0x48; 0x0040d38c mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x0040d391 movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x0040d395 mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x0040d39d lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x0040d3a1 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x0040d3a6 mov qword [rbx + 0x60], r14 | *((rbx + 0x60)) = r14; 0x0040d3aa lea rax, [rbx + 0x68] | rax = rbx + 0x68; 0x0040d3ae mov qword [rsp], rax | *(rsp) = rax; 0x0040d3b2 movups xmmword [rbx + 0x68], xmm0 | __asm ("movups xmmword [rbx + 0x68], xmm0"); 0x0040d3b6 mov qword [rbx + 0x78], 0 | *((rbx + 0x78)) = 0; 0x0040d3be lea rax, [rbx + 0x80] | rax = rbx + 0x80; 0x0040d3c5 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; 0x0040d3ca mov qword [rbx + 0x80], r14 | *((rbx + 0x80)) = r14; 0x0040d3d1 lea rax, [rbx + 0x88] | rax = rbx + 0x88; 0x0040d3d8 mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x0040d3dd movups xmmword [rbx + 0x88], xmm0 | __asm ("movups xmmword [rbx + 0x88], xmm0"); 0x0040d3e4 mov qword [rbx + 0x98], 0 | *((rbx + 0x98)) = 0; 0x0040d3ef lea rax, [rbx + 0xa0] | rax = rbx + 0xa0; 0x0040d3f6 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0040d3fb mov qword [rbx + 0xa0], r14 | *((rbx + 0xa0)) = r14; 0x0040d402 lea rax, [rbx + 0xa8] | rax = rbx + 0xa8; 0x0040d409 mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x0040d40e movups xmmword [rbx + 0xa8], xmm0 | __asm ("movups xmmword [rbx + 0xa8], xmm0"); 0x0040d415 mov qword [rbx + 0xb8], 0 | *((rbx + 0xb8)) = 0; 0x0040d420 lea rax, [rbx + 0xc0] | rax = rbx + 0xc0; 0x0040d427 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0040d42c mov qword [rbx + 0xc0], r14 | *((rbx + 0xc0)) = r14; 0x0040d433 lea r13, [rbx + 0xc8] | r13 = rbx + 0xc8; 0x0040d43a movups xmmword [rbx + 0xc8], xmm0 | __asm ("movups xmmword [rbx + 0xc8], xmm0"); 0x0040d441 mov qword [rbx + 0xd8], 0 | *((rbx + 0xd8)) = 0; 0x0040d44c lea rax, [rbx + 0xe0] | rax = rbx + 0xe0; 0x0040d453 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040d458 mov qword [rbx + 0xe0], r14 | *((rbx + 0xe0)) = r14; 0x0040d45f lea rbp, [rbx + 0xe8] | rbp = rbx + 0xe8; 0x0040d466 movups xmmword [rbx + 0xe8], xmm0 | __asm ("movups xmmword [rbx + 0xe8], xmm0"); 0x0040d46d mov qword [rbx + 0xf8], 0 | *((rbx + 0xf8)) = 0; 0x0040d478 lea rax, [rbx + 0x100] | rax = rbx + 0x100; 0x0040d47f mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0040d484 mov qword [rbx + 0x100], r14 | *((rbx + 0x100)) = r14; 0x0040d48b movups xmmword [rbx + 0x108], xmm0 | __asm ("movups xmmword [rbx + 0x108], xmm0"); 0x0040d492 mov qword [rbx + 0x118], 0 | *((rbx + 0x118)) = 0; 0x0040d49d mov qword [rbx + 0x120], r14 | *((rbx + 0x120)) = r14; 0x0040d4a4 lea r15, [rbx + 0x108] | r15 = rbx + 0x108; 0x0040d4ab mov rax, r14 | rax = r14; 0x0040d4ae jmp 0x40d6b7 | | } else { 0x0040d4b3 mov rax, qword [rip + 0x271696] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d4ba test rax, rax | | if (rax == 0) { 0x0040d4bd jne 0x40d4c4 | 0x0040d4bf call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d4c4 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d4c7 movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x0040d4cc mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x0040d4d5 lea r15, [rbx + 0x20] | r15 = rbx + 0x20; 0x0040d4d9 mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x0040d4dd mov rax, qword [rip + 0x27166c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d4e4 test rax, rax | 0x0040d4e7 mov qword [rsp + 0x58], r15 | *((rsp + 0x58)) = r15; | if (rax == 0) { 0x0040d4ec jne 0x40d4f3 | 0x0040d4ee call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d4f3 lea rbp, [rbx + 0x28] | rbp = rbx + 0x28; 0x0040d4f7 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d4fa movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x0040d4fe mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x0040d506 lea r13, [rbx + 0x40] | r13 = rbx + 0x40; 0x0040d50a mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x0040d50e mov rax, qword [rip + 0x27163b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d515 test rax, rax | 0x0040d518 mov qword [rsp + 0x60], rbp | *((rsp + 0x60)) = rbp; 0x0040d51d mov qword [rsp + 0x48], r13 | *((rsp + 0x48)) = r13; | if (rax == 0) { 0x0040d522 jne 0x40d529 | 0x0040d524 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d529 lea rcx, [rbx + 0x48] | rcx = rbx + 0x48; 0x0040d52d xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d530 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d533 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x0040d538 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d540 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x0040d544 mov qword [rsp + 0x40], rcx | *((rsp + 0x40)) = rcx; 0x0040d549 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x0040d54d mov rax, qword [rip + 0x2715fc] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d554 test rax, rax | | if (rax == 0) { 0x0040d557 jne 0x40d55e | 0x0040d559 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d55e lea rcx, [rbx + 0x68] | rcx = rbx + 0x68; 0x0040d562 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d565 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d568 mov qword [rsp], rcx | *(rsp) = rcx; 0x0040d56c mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d574 lea rcx, [rbx + 0x80] | rcx = rbx + 0x80; 0x0040d57b mov qword [rsp + 0x30], rcx | *((rsp + 0x30)) = rcx; 0x0040d580 mov qword [rbx + 0x80], rax | *((rbx + 0x80)) = rax; 0x0040d587 mov rax, qword [rip + 0x2715c2] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d58e test rax, rax | | if (rax == 0) { 0x0040d591 jne 0x40d598 | 0x0040d593 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d598 lea rcx, [rbx + 0x88] | rcx = rbx + 0x88; 0x0040d59f xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d5a2 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d5a5 mov qword [rsp + 0x38], rcx | *((rsp + 0x38)) = rcx; 0x0040d5aa mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d5b2 lea rcx, [rbx + 0xa0] | rcx = rbx + 0xa0; 0x0040d5b9 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0040d5be mov qword [rbx + 0xa0], rax | *((rbx + 0xa0)) = rax; 0x0040d5c5 mov rax, qword [rip + 0x271584] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d5cc test rax, rax | | if (rax == 0) { 0x0040d5cf jne 0x40d5d6 | 0x0040d5d1 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d5d6 lea rcx, [rbx + 0xa8] | rcx = rbx + 0xa8; 0x0040d5dd xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d5e0 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x0040d5e3 mov qword [rsp + 0x28], rcx | *((rsp + 0x28)) = rcx; 0x0040d5e8 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x0040d5f0 lea rcx, [rbx + 0xc0] | rcx = rbx + 0xc0; 0x0040d5f7 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0040d5fc mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x0040d603 mov rax, qword [rip + 0x271546] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d60a test rax, rax | | if (rax == 0) { 0x0040d60d jne 0x40d614 | 0x0040d60f call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d614 lea r13, [rbx + 0xc8] | r13 = rbx + 0xc8; 0x0040d61b xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d61e movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x0040d623 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x0040d62b lea rcx, [rbx + 0xe0] | rcx = rbx + 0xe0; 0x0040d632 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0040d637 mov qword [rbx + 0xe0], rax | *((rbx + 0xe0)) = rax; 0x0040d63e mov rax, qword [rip + 0x27150b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d645 test rax, rax | | if (rax == 0) { 0x0040d648 jne 0x40d64f | 0x0040d64a call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d64f lea rbp, [rbx + 0xe8] | rbp = rbx + 0xe8; 0x0040d656 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d659 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x0040d65d mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x0040d665 lea rcx, [rbx + 0x100] | rcx = rbx + 0x100; 0x0040d66c mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0040d671 mov qword [rbx + 0x100], rax | *((rbx + 0x100)) = rax; 0x0040d678 mov rax, qword [rip + 0x2714d1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d67f test rax, rax | | if (rax == 0) { 0x0040d682 jne 0x40d689 | 0x0040d684 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d689 lea r15, [rbx + 0x108] | r15 = rbx + 0x108; 0x0040d690 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040d693 movups xmmword [r15], xmm0 | __asm ("movups xmmword [r15], xmm0"); 0x0040d697 mov qword [r15 + 0x10], 0 | *((r15 + 0x10)) = 0; 0x0040d69f mov qword [rbx + 0x120], rax | *((rbx + 0x120)) = rax; 0x0040d6a6 mov rax, qword [rip + 0x2714a3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d6ad test rax, rax | | if (rax != 0) { 0x0040d6b0 jne 0x40d6b7 | goto label_0; | } 0x0040d6b2 call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x0040d6b7 mov qword [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x0040d6c2 movaps xmm0, xmmword [rip + 0x38957] | xmm0 = .comment; 0x0040d6c9 movups xmmword [rbx + 0x140], xmm0 | __asm ("movups xmmword [rbx + 0x140], xmm0"); 0x0040d6d0 mov qword [rbx + 0x150], rax | *((rbx + 0x150)) = rax; 0x0040d6d7 mov byte [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x0040d6de test r14, r14 | | if (r14 != 0) { 0x0040d6e1 je 0x40d701 | 0x0040d6e3 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x0040d6ea mov qword [rbx + 0x180], r14 | *((rbx + 0x180)) = r14; 0x0040d6f1 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x0040d6f8 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x0040d6ff jmp 0x40d742 | | } else { 0x0040d701 mov rax, qword [rip + 0x271448] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d708 test rax, rax | | if (rax == 0) { 0x0040d70b jne 0x40d712 | 0x0040d70d call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040d712 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x0040d719 mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x0040d720 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x0040d727 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x0040d72e mov r14, qword [rip + 0x27141b] | r14 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040d735 test r14, r14 | | if (r14 != 0) { 0x0040d738 jne 0x40d742 | goto label_1; | } 0x0040d73a call 0x4207c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040d73f mov r14, rax | r14 = rax; | } | label_1: 0x0040d742 mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x0040d749 mov qword [rbx + 0x1d8], r14 | *((rbx + 0x1d8)) = r14; 0x0040d750 mov dword [rbx + 0x1e0], 0 | *((rbx + 0x1e0)) = 0; 0x0040d75a mov byte [rbx + 0x1e4], 0 | *((rbx + 0x1e4)) = 0; 0x0040d761 mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x0040d768 mov byte [rbx + 0x1ec], 0 | *((rbx + 0x1ec)) = 0; 0x0040d76f mov byte [rbx + 0x1f0], 0 | *((rbx + 0x1f0)) = 0; 0x0040d776 mov dword [rbx + 0x1f4], 0 | *((rbx + 0x1f4)) = 0; 0x0040d780 mov byte [rbx + 0x1f8], 0 | *((rbx + 0x1f8)) = 0; 0x0040d787 add rsp, 0x68 | 0x0040d78b pop rbx | 0x0040d78c pop r12 | 0x0040d78e pop r13 | 0x0040d790 pop r14 | 0x0040d792 pop r15 | 0x0040d794 pop rbp | 0x0040d795 ret | return rax; | }