; assembly | /* r2dec pseudo code output */ | /* balb_filecleanerutil.t/none @ 0x40c2a0 */ | #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*) */ 0x0040c2a0 push r14 | 0x0040c2a2 push rbx | 0x0040c2a3 push rax | 0x0040c2a4 mov r14, rsi | r14 = rsi; 0x0040c2a7 mov rbx, rdi | rbx = rdi; 0x0040c2aa test ecx, ecx | 0x0040c2ac mov eax, 0xf | eax = 0xf; | if (ecx == 0) { 0x0040c2b1 cmove eax, ecx | eax = ecx; | } 0x0040c2b4 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040c2b7 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x0040c2ba mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0040c2c2 mov byte [rdi + 0x18], al | *((rdi + 0x18)) = al; 0x0040c2c5 cmp ecx, 2 | 0x0040c2c8 mov eax, 1 | eax = 1; 0x0040c2cd mov ecx, 0x10 | ecx = 0x10; | if (ecx == 2) { 0x0040c2d2 cmove ecx, eax | ecx = eax; | } 0x0040c2d5 mov byte [rdi + 0x19], cl | *((rdi + 0x19)) = cl; 0x0040c2d8 lea rax, [rdi + 0x20] | rax = rdi + 0x20; 0x0040c2dc mov qword [rdi + 0x20], 0 | *((rdi + 0x20)) = 0; 0x0040c2e4 mov qword [rdi + 0x28], rax | *((rdi + 0x28)) = rax; 0x0040c2e8 lea rax, [rsi - 1] | rax = rsi - 1; 0x0040c2ec mov rcx, rax | rcx = rax; 0x0040c2ef or rcx, 1 | rcx |= 1; 0x0040c2f3 bsr rdi, rcx | __asm ("bsr rdi, rcx"); 0x0040c2f7 xor edi, 0x3f | edi ^= 0x3f; 0x0040c2fa cmp rax, 1 | 0x0040c2fe adc edi, 0 | edi += 0; 0x0040c301 mov ecx, edi | ecx = edi; 0x0040c303 neg cl | cl = -cl; 0x0040c305 mov esi, 1 | esi = 1; 0x0040c30a shl rsi, cl | rsi <<= cl; 0x0040c30d test edi, edi | | if (edi == 0) { 0x0040c30f je 0x40c377 | goto label_0; | } 0x0040c311 dec rsi | rsi--; 0x0040c314 movabs rax, 0xff00000000000000 | rax = 0xff00000000000000; 0x0040c31e or rax, rsi | rax |= rsi; | do { 0x0040c321 xor ecx, ecx | ecx = 0; 0x0040c323 test edx, edx | 0x0040c325 mov qword [rbx + 0x1f0], rax | *((rbx + 0x1f0)) = rax; | if (edx != 0) { 0x0040c32c cmovne rcx, r14 | rcx = r14; | } 0x0040c330 mov qword [rbx + 0x1f8], rax | *((rbx + 0x1f8)) = rax; 0x0040c337 movups xmmword [rbx + 0x200], xmm0 | __asm ("movups xmmword [rbx + 0x200], xmm0"); 0x0040c33e mov qword [rbx + 0x210], rcx | *((rbx + 0x210)) = rcx; 0x0040c345 test r8, r8 | | if (r8 == 0) { 0x0040c348 jne 0x40c35e | 0x0040c34a mov r8, qword [rip + 0x26197f] | r8 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040c351 test r8, r8 | | if (r8 != 0) { 0x0040c354 jne 0x40c35e | goto label_1; | } 0x0040c356 call 0x4173a0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040c35b mov r8, rax | r8 = rax; | } | label_1: 0x0040c35e mov qword [rbx + 0x218], r8 | *((rbx + 0x218)) = r8; 0x0040c365 mov rdi, rbx | rdi = rbx; 0x0040c368 mov rsi, r14 | rsi = r14; 0x0040c36b add rsp, 8 | 0x0040c36f pop rbx | 0x0040c370 pop r14 | 0x0040c372 jmp 0x40bea0 | void (*0x40bea0)() (); | label_0: 0x0040c377 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x0040c37e jmp 0x40c321 | | } while (1); | }