; assembly | /* r2dec pseudo code output */ | /* balb_filecleanerutil.t/assume @ 0x40c220 */ | #include | ; (fcn) method.BloombergLP::bdlma::SequentialPool.SequentialPool_unsigned_long__BloombergLP::bsls::Alignment::Strategy__BloombergLP::bslma::Allocator_ () | int64_t method_BloombergLP::bdlma::SequentialPool_SequentialPool_unsigned_long_BloombergLP::bsls::Alignment::Strategy_BloombergLP::bslma::Allocator_ (int64_t arg4, uint32_t arg3, int64_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlma::SequentialPool::SequentialPool(unsigned long, BloombergLP::bsls::Alignment::Strategy, BloombergLP::bslma::Allocator*) */ 0x0040c220 push r14 | 0x0040c222 push rbx | 0x0040c223 push rax | 0x0040c224 mov rax, rcx | rax = rcx; 0x0040c227 mov r14, rsi | r14 = rsi; 0x0040c22a mov rbx, rdi | rbx = rdi; 0x0040c22d test edx, edx | 0x0040c22f mov ecx, 0xf | ecx = 0xf; | if (edx == 0) { 0x0040c234 cmove ecx, edx | ecx = edx; | } 0x0040c237 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040c23a movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x0040c23d mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0040c245 mov byte [rdi + 0x18], cl | *((rdi + 0x18)) = cl; 0x0040c248 cmp edx, 2 | 0x0040c24b mov ecx, 1 | ecx = 1; 0x0040c250 mov edx, 0x10 | edx = 0x10; | if (edx == 2) { 0x0040c255 cmove edx, ecx | edx = ecx; | } 0x0040c258 mov byte [rdi + 0x19], dl | *((rdi + 0x19)) = dl; 0x0040c25b lea rcx, [rdi + 0x20] | rcx = rdi + 0x20; 0x0040c25f mov qword [rdi + 0x20], 0 | *((rdi + 0x20)) = 0; 0x0040c267 mov qword [rdi + 0x28], rcx | *((rdi + 0x28)) = rcx; 0x0040c26b lea rcx, [rsi - 1] | rcx = rsi - 1; 0x0040c26f mov rdx, rcx | rdx = rcx; 0x0040c272 or rdx, 1 | rdx |= 1; 0x0040c276 bsr rsi, rdx | __asm ("bsr rsi, rdx"); 0x0040c27a xor esi, 0x3f | esi ^= 0x3f; 0x0040c27d cmp rcx, 1 | 0x0040c281 adc esi, 0 | esi += 0; 0x0040c284 mov ecx, esi | ecx = esi; 0x0040c286 neg cl | cl = -cl; 0x0040c288 mov edx, 1 | edx = 1; 0x0040c28d shl rdx, cl | rdx <<= cl; 0x0040c290 test esi, esi | | if (esi == 0) { 0x0040c292 je 0x40c2f4 | goto label_0; | } 0x0040c294 dec rdx | rdx--; 0x0040c297 movabs rcx, 0xff00000000000000 | rcx = 0xff00000000000000; 0x0040c2a1 or rcx, rdx | rcx |= rdx; | do { 0x0040c2a4 mov qword [rbx + 0x1f0], rcx | *((rbx + 0x1f0)) = rcx; 0x0040c2ab mov qword [rbx + 0x1f8], rcx | *((rbx + 0x1f8)) = rcx; 0x0040c2b2 movups xmmword [rbx + 0x200], xmm0 | __asm ("movups xmmword [rbx + 0x200], xmm0"); 0x0040c2b9 mov qword [rbx + 0x210], 0 | *((rbx + 0x210)) = 0; 0x0040c2c4 test rax, rax | | if (rax == 0) { 0x0040c2c7 jne 0x40c2da | 0x0040c2c9 mov rax, qword [rip + 0x261a00] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040c2d0 test rax, rax | | if (rax != 0) { 0x0040c2d3 jne 0x40c2da | goto label_1; | } 0x0040c2d5 call 0x4171b0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x0040c2da mov qword [rbx + 0x218], rax | *((rbx + 0x218)) = rax; 0x0040c2e1 mov rdi, rbx | 0x0040c2e4 mov rsi, r14 | 0x0040c2e7 call 0x40bf00 | BloombergLP::bdlma::SequentialPool::reserveCapacity(unsigned long) (rbx, r14); 0x0040c2ec add rsp, 8 | 0x0040c2f0 pop rbx | 0x0040c2f1 pop r14 | 0x0040c2f3 ret | return rax; | label_0: 0x0040c2f4 mov rcx, 0xffffffffffffffff | rcx = 0xffffffffffffffff; 0x0040c2fb jmp 0x40c2a4 | | } while (1); | }