; assembly | /* r2dec pseudo code output */ | /* balb_filecleanerutil.t/assume @ 0x40c610 */ | #include | ; (fcn) method.BloombergLP::bdlma::SequentialPool.SequentialPool_unsigned_long__unsigned_long__BloombergLP::bsls::Alignment::Strategy__BloombergLP::bslma::Allocator_ () | int64_t method_BloombergLP::bdlma::SequentialPool_SequentialPool_unsigned_long_unsigned_long_BloombergLP::bsls::Alignment::Strategy_BloombergLP::bslma::Allocator_ (int64_t arg5, uint32_t arg4, uint32_t arg3, int64_t arg2, int64_t arg1) { | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlma::SequentialPool::SequentialPool(unsigned long, unsigned long, BloombergLP::bsls::Alignment::Strategy, BloombergLP::bslma::Allocator*) */ 0x0040c610 push r14 | 0x0040c612 push rbx | 0x0040c613 push rax | 0x0040c614 mov r14, rsi | r14 = rsi; 0x0040c617 mov rbx, rdi | rbx = rdi; 0x0040c61a movabs rax, 0xffffffffffffff | rax = 0xffffffffffffff; 0x0040c624 test ecx, ecx | 0x0040c626 mov esi, 0xf | esi = 0xf; | if (ecx == 0) { 0x0040c62b cmove esi, ecx | esi = ecx; | } 0x0040c62e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040c631 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x0040c634 mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0040c63c mov byte [rdi + 0x18], sil | *((rdi + 0x18)) = sil; 0x0040c640 cmp ecx, 2 | 0x0040c643 mov ecx, 1 | ecx = 1; 0x0040c648 mov esi, 0x10 | esi = 0x10; | if (ecx == 2) { 0x0040c64d cmove esi, ecx | esi = ecx; | } 0x0040c650 mov byte [rdi + 0x19], sil | *((rdi + 0x19)) = sil; 0x0040c654 lea rcx, [rdi + 0x20] | rcx = rdi + 0x20; 0x0040c658 mov qword [rdi + 0x20], 0 | *((rdi + 0x20)) = 0; 0x0040c660 mov qword [rdi + 0x28], rcx | *((rdi + 0x28)) = rcx; 0x0040c664 lea rcx, [r14 - 1] | rcx = r14 - 1; 0x0040c668 mov rsi, rcx | rsi = rcx; 0x0040c66b or rsi, 1 | rsi |= 1; 0x0040c66f bsr rdi, rsi | __asm ("bsr rdi, rsi"); 0x0040c673 xor edi, 0x3f | edi ^= 0x3f; 0x0040c676 cmp rcx, 1 | 0x0040c67a adc edi, 0 | edi += 0; 0x0040c67d mov ecx, edi | ecx = edi; 0x0040c67f neg cl | cl = -cl; 0x0040c681 mov esi, 1 | esi = 1; 0x0040c686 shl rsi, cl | rsi <<= cl; 0x0040c689 test edi, edi | | if (edi != 0) { 0x0040c68b je 0x40c690 | 0x0040c68d add rax, rsi | rax += rsi; | } 0x0040c690 movabs rcx, 0x7ffffffffffffffe | rcx = 0x7ffffffffffffffe; 0x0040c69a and rdx, rcx | rdx &= rcx; 0x0040c69d lea rcx, [rdx + 1] | rcx = rdx + 1; 0x0040c6a1 bsr rsi, rcx | __asm ("bsr rsi, rcx"); 0x0040c6a5 xor esi, 0x3f | esi ^= 0x3f; 0x0040c6a8 cmp rdx, 1 | 0x0040c6ac sbb ecx, ecx | ecx -= ecx; 0x0040c6ae sub ecx, esi | ecx -= esi; 0x0040c6b0 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x0040c6b7 shl rdx, cl | rdx <<= cl; 0x0040c6ba movabs rcx, 0xff00000000000000 | rcx = 0xff00000000000000; 0x0040c6c4 or rcx, rax | rcx |= rax; 0x0040c6c7 or rcx, rdx | rcx |= rdx; 0x0040c6ca mov qword [rbx + 0x1f0], rcx | *((rbx + 0x1f0)) = rcx; 0x0040c6d1 mov qword [rbx + 0x1f8], rcx | *((rbx + 0x1f8)) = rcx; 0x0040c6d8 movups xmmword [rbx + 0x200], xmm0 | __asm ("movups xmmword [rbx + 0x200], xmm0"); 0x0040c6df mov qword [rbx + 0x210], 0 | *((rbx + 0x210)) = 0; 0x0040c6ea test r8, r8 | | if (r8 == 0) { 0x0040c6ed jne 0x40c703 | 0x0040c6ef mov r8, qword [rip + 0x2615da] | r8 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040c6f6 test r8, r8 | | if (r8 != 0) { 0x0040c6f9 jne 0x40c703 | goto label_0; | } 0x0040c6fb call 0x4171b0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040c700 mov r8, rax | r8 = rax; | } | label_0: 0x0040c703 mov qword [rbx + 0x218], r8 | *((rbx + 0x218)) = r8; 0x0040c70a mov rdi, rbx | 0x0040c70d mov rsi, r14 | 0x0040c710 call 0x40bf00 | BloombergLP::bdlma::SequentialPool::reserveCapacity(unsigned long) (rbx, r14); 0x0040c715 add rsp, 8 | 0x0040c719 pop rbx | 0x0040c71a pop r14 | 0x0040c71c ret | return rax; | }