; assembly | /* r2dec pseudo code output */ | /* balm_collector.t/assume @ 0x40be50 */ | #include | ; (fcn) method.BloombergLP::bdlcc::FixedQueueIndexManager.FixedQueueIndexManager_unsigned_long__BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::bdlcc::FixedQueueIndexManager_FixedQueueIndexManager_unsigned_long_BloombergLP::bslma::Allocator_ (int64_t arg3, int64_t arg2, int64_t arg1) { | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlcc::FixedQueueIndexManager::FixedQueueIndexManager(unsigned long, BloombergLP::bslma::Allocator*) */ 0x0040be50 push r15 | 0x0040be52 push r14 | 0x0040be54 push rbx | 0x0040be55 mov rcx, rdx | rcx = rdx; 0x0040be58 mov r14, rsi | r14 = rsi; 0x0040be5b mov rbx, rdi | rbx = rdi; 0x0040be5e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040be61 movups xmmword [rdi + 0x70], xmm0 | __asm ("movups xmmword [rdi + 0x70], xmm0"); 0x0040be65 movups xmmword [rdi + 0x60], xmm0 | __asm ("movups xmmword [rdi + 0x60], xmm0"); 0x0040be69 movups xmmword [rdi + 0x50], xmm0 | __asm ("movups xmmword [rdi + 0x50], xmm0"); 0x0040be6d movups xmmword [rdi + 0x40], xmm0 | __asm ("movups xmmword [rdi + 0x40], xmm0"); 0x0040be71 movups xmmword [rdi + 0x30], xmm0 | __asm ("movups xmmword [rdi + 0x30], xmm0"); 0x0040be75 movups xmmword [rdi + 0x20], xmm0 | __asm ("movups xmmword [rdi + 0x20], xmm0"); 0x0040be79 movups xmmword [rdi + 0x10], xmm0 | __asm ("movups xmmword [rdi + 0x10], xmm0"); 0x0040be7d movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x0040be80 mov qword [rdi + 0x80], rsi | *((rdi + 0x80)) = rsi; 0x0040be87 mov eax, 0x80000000 | eax = 0x80000000; 0x0040be8c xor edx, edx | edx = 0; 0x0040be8e div rsi | rax = rdx:rax / rsi; | rdx = rdx:rax % rsi; 0x0040be91 cmp rax, 0x40000000 | 0x0040be97 mov edx, 0x40000000 | edx = 0x40000000; | if (rax < 0x40000000) { 0x0040be9c cmovb edx, eax | edx = eax; | } 0x0040be9f lea eax, [rdx - 1] | eax = rdx - 1; 0x0040bea2 mov dword [rdi + 0x88], eax | *((rdi + 0x88)) = eax; 0x0040bea8 mov eax, r14d | eax = r14d; 0x0040beab imul eax, edx | eax *= edx; 0x0040beae dec eax | eax--; 0x0040beb0 mov dword [rdi + 0x8c], eax | *((rdi + 0x8c)) = eax; 0x0040beb6 test rcx, rcx | | if (rcx == 0) { 0x0040beb9 jne 0x40becf | 0x0040bebb mov rcx, qword [rip + 0x241e26] | rcx = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040bec2 test rcx, rcx | | if (rcx != 0) { 0x0040bec5 jne 0x40becf | goto label_0; | } 0x0040bec7 call 0x40d620 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040becc mov rcx, rax | rcx = rax; | } | label_0: 0x0040becf mov qword [rbx + 0x98], rcx | *((rbx + 0x98)) = rcx; 0x0040bed6 shl r14, 2 | r14 <<= 2; 0x0040beda mov rax, qword [rcx] | rax = *(rcx); 0x0040bedd mov rdi, rcx | rdi = rcx; 0x0040bee0 mov rsi, r14 | rsi = r14; 0x0040bee3 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0040bee6 mov r15, rax | r15 = rax; 0x0040bee9 mov qword [rbx + 0x90], rax | *((rbx + 0x90)) = rax; 0x0040bef0 cmp qword [rbx + 0x98], 0 | | if (*((rbx + 0x98)) == 0) { 0x0040bef8 jne 0x40bf0b | 0x0040befa mov rax, qword [rip + 0x241de7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040bf01 test rax, rax | | if (rax != 0) { 0x0040bf04 jne 0x40bf0b | goto label_1; | } 0x0040bf06 call 0x40d620 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x0040bf0b mov rdi, r15 | rdi = r15; 0x0040bf0e xor esi, esi | esi = 0; 0x0040bf10 mov rdx, r14 | rdx = r14; 0x0040bf13 pop rbx | 0x0040bf14 pop r14 | 0x0040bf16 pop r15 | 0x0040bf18 jmp 0x403a20 | return memset (); | }