; assembly | /* r2dec pseudo code output */ | /* balb_filecleanerutil.t/assume @ 0x40c310 */ | #include | ; (fcn) method.BloombergLP::bdlma::SequentialPool.SequentialPool_unsigned_long__BloombergLP::bsls::BlockGrowth::Strategy__BloombergLP::bsls::Alignment::Strategy__BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::bdlma::SequentialPool_SequentialPool_unsigned_long_BloombergLP::bsls::BlockGrowth::Strategy_BloombergLP::bsls::Alignment::Strategy_BloombergLP::bslma::Allocator_ (int64_t arg5, uint32_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlma::SequentialPool::SequentialPool(unsigned long, BloombergLP::bsls::BlockGrowth::Strategy, BloombergLP::bsls::Alignment::Strategy, BloombergLP::bslma::Allocator*) */ 0x0040c310 push r14 | 0x0040c312 push rbx | 0x0040c313 push rax | 0x0040c314 mov r14, rsi | r14 = rsi; 0x0040c317 mov rbx, rdi | rbx = rdi; 0x0040c31a test ecx, ecx | 0x0040c31c mov eax, 0xf | eax = 0xf; | if (ecx == 0) { 0x0040c321 cmove eax, ecx | eax = ecx; | } 0x0040c324 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040c327 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x0040c32a mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0040c332 mov byte [rdi + 0x18], al | *((rdi + 0x18)) = al; 0x0040c335 cmp ecx, 2 | 0x0040c338 mov eax, 1 | eax = 1; 0x0040c33d mov ecx, 0x10 | ecx = 0x10; | if (ecx == 2) { 0x0040c342 cmove ecx, eax | ecx = eax; | } 0x0040c345 mov byte [rdi + 0x19], cl | *((rdi + 0x19)) = cl; 0x0040c348 lea rax, [rdi + 0x20] | rax = rdi + 0x20; 0x0040c34c mov qword [rdi + 0x20], 0 | *((rdi + 0x20)) = 0; 0x0040c354 mov qword [rdi + 0x28], rax | *((rdi + 0x28)) = rax; 0x0040c358 lea rax, [rsi - 1] | rax = rsi - 1; 0x0040c35c mov rcx, rax | rcx = rax; 0x0040c35f or rcx, 1 | rcx |= 1; 0x0040c363 bsr rdi, rcx | __asm ("bsr rdi, rcx"); 0x0040c367 xor edi, 0x3f | edi ^= 0x3f; 0x0040c36a cmp rax, 1 | 0x0040c36e adc edi, 0 | edi += 0; 0x0040c371 mov ecx, edi | ecx = edi; 0x0040c373 neg cl | cl = -cl; 0x0040c375 mov esi, 1 | esi = 1; 0x0040c37a shl rsi, cl | rsi <<= cl; 0x0040c37d test edi, edi | | if (edi == 0) { 0x0040c37f je 0x40c3e8 | goto label_0; | } 0x0040c381 dec rsi | rsi--; 0x0040c384 movabs rax, 0xff00000000000000 | rax = 0xff00000000000000; 0x0040c38e or rax, rsi | rax |= rsi; | do { 0x0040c391 xor ecx, ecx | ecx = 0; 0x0040c393 test edx, edx | 0x0040c395 mov qword [rbx + 0x1f0], rax | *((rbx + 0x1f0)) = rax; | if (edx != 0) { 0x0040c39c cmovne rcx, r14 | rcx = r14; | } 0x0040c3a0 mov qword [rbx + 0x1f8], rax | *((rbx + 0x1f8)) = rax; 0x0040c3a7 movups xmmword [rbx + 0x200], xmm0 | __asm ("movups xmmword [rbx + 0x200], xmm0"); 0x0040c3ae mov qword [rbx + 0x210], rcx | *((rbx + 0x210)) = rcx; 0x0040c3b5 test r8, r8 | | if (r8 == 0) { 0x0040c3b8 jne 0x40c3ce | 0x0040c3ba mov r8, qword [rip + 0x26190f] | r8 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040c3c1 test r8, r8 | | if (r8 != 0) { 0x0040c3c4 jne 0x40c3ce | goto label_1; | } 0x0040c3c6 call 0x4171b0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040c3cb mov r8, rax | r8 = rax; | } | label_1: 0x0040c3ce mov qword [rbx + 0x218], r8 | *((rbx + 0x218)) = r8; 0x0040c3d5 mov rdi, rbx | 0x0040c3d8 mov rsi, r14 | 0x0040c3db call 0x40bf00 | BloombergLP::bdlma::SequentialPool::reserveCapacity(unsigned long) (rbx, r14); 0x0040c3e0 add rsp, 8 | 0x0040c3e4 pop rbx | 0x0040c3e5 pop r14 | 0x0040c3e7 ret | return rax; | label_0: 0x0040c3e8 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x0040c3ef jmp 0x40c391 | | } while (1); | }