; assembly | /* r2dec pseudo code output */ | /* bslstl_hashtablebucketiterator.t/assume @ 0x41a400 */ | #include | ; (fcn) sym._anonymous_namespace_::BucketsWrapper_char_const_::BucketsWrapper_int__int__BloombergLP::bslma::Allocator_ () | int64_t anonymous_namespace_::BucketsWrapper_char_const_::BucketsWrapper_int_int_BloombergLP::bslma::Allocator_ (int64_t arg4, uint32_t arg3, int64_t arg2, uint32_t arg1) { | uint32_t var_4h; | int64_t var_8h; | uint32_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | uint32_t var_30h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* (anonymous namespace)::BucketsWrapper::BucketsWrapper(int, int, BloombergLP::bslma::Allocator*) */ 0x0041a400 push rbp | 0x0041a401 push r15 | 0x0041a403 push r14 | 0x0041a405 push r13 | 0x0041a407 push r12 | 0x0041a409 push rbx | 0x0041a40a sub rsp, 0x38 | 0x0041a40e mov rbx, rcx | rbx = rcx; 0x0041a411 mov ebp, esi | 0x0041a413 mov r15, rdi | r15 = rdi; 0x0041a416 mov dword [rdi], esi | *(rdi) = esi; 0x0041a418 mov qword [rsp + 0x10], rdx | *((rsp + 0x10)) = rdx; 0x0041a41d mov dword [rdi + 4], edx | *((rdi + 4)) = edx; 0x0041a420 mov rax, rcx | rax = rcx; 0x0041a423 test rcx, rcx | | if (rcx == 0) { 0x0041a426 jne 0x41a439 | 0x0041a428 mov rax, qword [rip + 0x2110d9] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041a42f test rax, rax | | if (rax != 0) { 0x0041a432 jne 0x41a439 | goto label_9; | } 0x0041a434 call 0x420f80 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_9: 0x0041a439 mov qword [r15 + 0x10], rax | *((r15 + 0x10)) = rax; 0x0041a43d lea r12, [r15 + 0x18] | r12 = r15 + 0x18; 0x0041a441 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0041a444 movups xmmword [r15 + 0x18], xmm0 | __asm ("movups xmmword [r15 + 0x18], xmm0"); 0x0041a449 mov dword [r15 + 0x28], 1 | *((r15 + 0x28)) = 1; 0x0041a451 mov qword [r15 + 0x30], rbx | *((r15 + 0x30)) = rbx; 0x0041a455 mov esi, ebp | esi = ebp; 0x0041a457 mov qword [rsp + 0x30], rsi | *((rsp + 0x30)) = rsi; 0x0041a45c shl rsi, 4 | rsi <<= 4; 0x0041a460 mov rax, qword [rbx] | rax = *(rbx); 0x0041a463 mov rdi, rbx | rdi = rbx; 0x0041a466 mov qword [rsp + 8], r12 | *((rsp + 8)) = r12; 0x0041a46b call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041a46e mov qword [r15 + 8], rax | *((r15 + 8)) = rax; 0x0041a472 call 0x421000 | BloombergLP::bslma::MallocFreeAllocator::singleton() (); 0x0041a477 xor edi, edi | 0x0041a479 call 0x420f70 | rax = BloombergLP::bsltf::TemplateTestFacility::nullTerminatedStringForIdentifier(int) (0); 0x0041a47e mov r14, rax | r14 = rax; 0x0041a481 mov rdi, qword [r15 + 0x20] | rdi = *((r15 + 0x20)); 0x0041a485 test rdi, rdi | | if (rdi != 0) { 0x0041a488 jne 0x41a591 | goto label_10; | } 0x0041a48e movsxd rax, dword [r15 + 0x28] | rax = *((r15 + 0x28)); 0x0041a492 lea rbx, [rax + rax*2] | rbx = rax * 3; 0x0041a496 lea rsi, [rbx*8 + 0x17] | rsi = rbx*8 + 0x17; 0x0041a49e and rsi, 0xfffffffffffffff0 | rsi &= 0xfffffffffffffff0; 0x0041a4a2 mov rdi, qword [r15 + 0x10] | rdi = *((r15 + 0x10)); 0x0041a4a6 mov rax, qword [rdi] | rax = *(rdi); 0x0041a4a9 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041a4ac mov rcx, rax | rcx = rax; 0x0041a4af mov rax, qword [r12] | rax = *(r12); 0x0041a4b3 mov qword [rcx], rax | *(rcx) = rax; 0x0041a4b6 mov qword [r12], rcx | *(r12) = rcx; 0x0041a4ba lea rdi, [rcx + 8] | rdi = rcx + 8; 0x0041a4be lea rbp, [rcx + rbx*8 - 0x10] | rbp = rcx + rbx*8 - 0x10; 0x0041a4c3 cmp rbp, rdi | | if (rbp <= rdi) { 0x0041a4c6 jbe 0x41a576 | goto label_8; | } 0x0041a4cc lea rsi, [rbx*8 - 0x19] | rsi = rbx*8 - 0x19; 0x0041a4d4 mov rax, rsi | rax = rsi; 0x0041a4d7 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x0041a4e1 mul rdx | rdx:rax = rax * rdx; 0x0041a4e4 shr edx, 4 | edx >>= 4; 0x0041a4e7 inc edx | edx++; 0x0041a4e9 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a4ed je 0x41a943 | goto label_11; | } 0x0041a4f3 add rcx, 0x20 | rcx += 0x20; 0x0041a4f7 neg rdx | rdx = -rdx; 0x0041a4fa nop word [rax + rax] | | do { 0x0041a500 mov qword [rcx - 0x18], rcx | *((rcx - 0x18)) = rcx; 0x0041a504 add rcx, 0x18 | rcx += 0x18; 0x0041a508 inc rdx | rdx++; 0x0041a50b jne 0x41a500 | | } while (rdx != 0); 0x0041a50d add rcx, 0xffffffffffffffe8 | rcx += 0xffffffffffffffe8; 0x0041a511 cmp rsi, 0xa8 | | if (rsi < 0xa8) { 0x0041a518 jb 0x41a576 | goto label_8; | } 0x0041a51a nop word [rax + rax] | | do { | label_7: 0x0041a520 lea rax, [rcx + 0x18] | rax = rcx + 0x18; 0x0041a524 mov qword [rcx], rax | *(rcx) = rax; 0x0041a527 lea rax, [rcx + 0x30] | rax = rcx + 0x30; 0x0041a52b mov qword [rcx + 0x18], rax | *((rcx + 0x18)) = rax; 0x0041a52f lea rax, [rcx + 0x48] | rax = rcx + 0x48; 0x0041a533 mov qword [rcx + 0x30], rax | *((rcx + 0x30)) = rax; 0x0041a537 lea rax, [rcx + 0x60] | rax = rcx + 0x60; 0x0041a53b mov qword [rcx + 0x48], rax | *((rcx + 0x48)) = rax; 0x0041a53f lea rax, [rcx + 0x78] | rax = rcx + 0x78; 0x0041a543 mov qword [rcx + 0x60], rax | *((rcx + 0x60)) = rax; 0x0041a547 lea rax, [rcx + 0x90] | rax = rcx + 0x90; 0x0041a54e mov qword [rcx + 0x78], rax | *((rcx + 0x78)) = rax; 0x0041a552 lea rax, [rcx + 0xa8] | rax = rcx + 0xa8; 0x0041a559 mov qword [rcx + 0x90], rax | *((rcx + 0x90)) = rax; 0x0041a560 lea rax, [rcx + 0xc0] | rax = rcx + 0xc0; 0x0041a567 mov qword [rcx + 0xa8], rax | *((rcx + 0xa8)) = rax; 0x0041a56e mov rcx, rax | rcx = rax; 0x0041a571 cmp rax, rbp | 0x0041a574 jb 0x41a520 | | } while (rax < rbp); | label_8: 0x0041a576 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x0041a57a mov qword [rbp], rax | *(rbp) = rax; 0x0041a57e mov qword [r15 + 0x20], rdi | *((r15 + 0x20)) = rdi; 0x0041a582 mov eax, dword [r15 + 0x28] | eax = *((r15 + 0x28)); 0x0041a586 cmp eax, 0x1f | | if (eax <= 0x1f) { 0x0041a589 jg 0x41a591 | 0x0041a58b add eax, eax | eax += eax; 0x0041a58d mov dword [r15 + 0x28], eax | *((r15 + 0x28)) = eax; | } | label_10: 0x0041a591 mov rax, qword [rdi] | rax = *(rdi); 0x0041a594 mov qword [r15 + 0x20], rax | *((r15 + 0x20)) = rax; 0x0041a598 mov qword [rdi + 0x10], r14 | *((rdi + 0x10)) = r14; 0x0041a59c mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a5a0 mov qword [rax], rdi | *(rax) = rdi; 0x0041a5a3 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a5a7 mov rax, qword [rax] | rax = *(rax); 0x0041a5aa mov qword [rax], 0 | *(rax) = 0; 0x0041a5b1 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a5b5 mov rax, qword [rax] | rax = *(rax); 0x0041a5b8 mov qword [rax + 8], 0 | *((rax + 8)) = 0; 0x0041a5c0 mov rax, qword [rsp + 0x10] | rax = *((rsp + 0x10)); 0x0041a5c5 dec eax | eax--; 0x0041a5c7 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041a5cc mov r12d, 1 | r12d = 1; 0x0041a5d2 xor ebp, ebp | ebp = 0; 0x0041a5d4 jmp 0x41a60b | goto label_12; | label_2: 0x0041a5e0 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a5e4 mov r13, rbp | r13 = rbp; 0x0041a5e7 mov ecx, dword [rsp + 4] | ecx = *((rsp + 4)); 0x0041a5eb mov r12d, ecx | r12d = *((rsp + 4)); 0x0041a5ee mov rbp, qword [rsp + 0x28] | rbp = *((rsp + 0x28)); 0x0041a5f3 mov rcx, qword [rsp + 0x20] | rcx = *((rsp + 0x20)); | label_0: 0x0041a5f8 mov qword [rax + rcx + 8], r13 | *((rax + rcx + 8)) = r13; 0x0041a5fd inc rbp | rbp++; 0x0041a600 cmp rbp, qword [rsp + 0x30] | | if (rbp == *((rsp + 0x30))) { 0x0041a605 je 0x41a934 | goto label_13; | } | label_12: 0x0041a60b test rbp, rbp | | if (rbp == 0) { 0x0041a60e je 0x41a786 | goto label_14; | } 0x0041a614 call 0x421000 | BloombergLP::bslma::MallocFreeAllocator::singleton() (); 0x0041a619 mov edi, r12d | 0x0041a61c call 0x420f70 | rax = BloombergLP::bsltf::TemplateTestFacility::nullTerminatedStringForIdentifier(int) (r12d); 0x0041a621 mov r14, rax | r14 = rax; 0x0041a624 mov rdi, qword [r15 + 0x20] | rdi = *((r15 + 0x20)); 0x0041a628 test rdi, rdi | | if (rdi != 0) { 0x0041a62b jne 0x41a750 | goto label_15; | } 0x0041a631 movsxd rax, dword [r15 + 0x28] | rax = *((r15 + 0x28)); 0x0041a635 lea rbx, [rax + rax*2] | rbx = rax * 3; 0x0041a639 lea rsi, [rbx*8 + 0x17] | rsi = rbx*8 + 0x17; 0x0041a641 and rsi, 0xfffffffffffffff0 | rsi &= 0xfffffffffffffff0; 0x0041a645 mov rdi, qword [r15 + 0x10] | rdi = *((r15 + 0x10)); 0x0041a649 mov rax, qword [rdi] | rax = *(rdi); 0x0041a64c call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041a64f mov rcx, rax | rcx = rax; 0x0041a652 mov r8, rbp | r8 = rbp; 0x0041a655 mov rdx, qword [rsp + 8] | rdx = *((rsp + 8)); 0x0041a65a mov rax, qword [rdx] | rax = *(rdx); 0x0041a65d mov qword [rcx], rax | *(rcx) = rax; 0x0041a660 mov qword [rdx], rcx | *(rdx) = rcx; 0x0041a663 lea rdi, [rcx + 8] | rdi = rcx + 8; 0x0041a667 lea rbp, [rcx + rbx*8 - 0x10] | rbp = rcx + rbx*8 - 0x10; 0x0041a66c cmp rbp, rdi | | if (rbp <= rdi) { 0x0041a66f jbe 0x41a726 | goto label_6; | } 0x0041a675 lea rsi, [rbx*8 - 0x19] | rsi = rbx*8 - 0x19; 0x0041a67d mov rax, rsi | rax = rsi; 0x0041a680 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x0041a68a mul rdx | rdx:rax = rax * rdx; 0x0041a68d shr edx, 4 | edx >>= 4; 0x0041a690 inc edx | edx++; 0x0041a692 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a696 je 0x41a91f | goto label_16; | } 0x0041a69c add rcx, 0x20 | rcx += 0x20; 0x0041a6a0 neg rdx | rdx = -rdx; 0x0041a6a3 nop word cs:[rax + rax] | 0x0041a6ad nop dword [rax] | | do { 0x0041a6b0 mov qword [rcx - 0x18], rcx | *((rcx - 0x18)) = rcx; 0x0041a6b4 add rcx, 0x18 | rcx += 0x18; 0x0041a6b8 inc rdx | rdx++; 0x0041a6bb jne 0x41a6b0 | | } while (rdx != 0); 0x0041a6bd add rcx, 0xffffffffffffffe8 | rcx += 0xffffffffffffffe8; 0x0041a6c1 cmp rsi, 0xa8 | | if (rsi < 0xa8) { 0x0041a6c8 jb 0x41a726 | goto label_6; | } 0x0041a6ca nop word [rax + rax] | | do { | label_5: 0x0041a6d0 lea rax, [rcx + 0x18] | rax = rcx + 0x18; 0x0041a6d4 mov qword [rcx], rax | *(rcx) = rax; 0x0041a6d7 lea rax, [rcx + 0x30] | rax = rcx + 0x30; 0x0041a6db mov qword [rcx + 0x18], rax | *((rcx + 0x18)) = rax; 0x0041a6df lea rax, [rcx + 0x48] | rax = rcx + 0x48; 0x0041a6e3 mov qword [rcx + 0x30], rax | *((rcx + 0x30)) = rax; 0x0041a6e7 lea rax, [rcx + 0x60] | rax = rcx + 0x60; 0x0041a6eb mov qword [rcx + 0x48], rax | *((rcx + 0x48)) = rax; 0x0041a6ef lea rax, [rcx + 0x78] | rax = rcx + 0x78; 0x0041a6f3 mov qword [rcx + 0x60], rax | *((rcx + 0x60)) = rax; 0x0041a6f7 lea rax, [rcx + 0x90] | rax = rcx + 0x90; 0x0041a6fe mov qword [rcx + 0x78], rax | *((rcx + 0x78)) = rax; 0x0041a702 lea rax, [rcx + 0xa8] | rax = rcx + 0xa8; 0x0041a709 mov qword [rcx + 0x90], rax | *((rcx + 0x90)) = rax; 0x0041a710 lea rax, [rcx + 0xc0] | rax = rcx + 0xc0; 0x0041a717 mov qword [rcx + 0xa8], rax | *((rcx + 0xa8)) = rax; 0x0041a71e mov rcx, rax | rcx = rax; 0x0041a721 cmp rax, rbp | 0x0041a724 jb 0x41a6d0 | | } while (rax < rbp); | label_6: 0x0041a726 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x0041a72a mov qword [rbp], rax | *(rbp) = rax; 0x0041a72e mov qword [r15 + 0x20], rdi | *((r15 + 0x20)) = rdi; 0x0041a732 mov eax, dword [r15 + 0x28] | eax = *((r15 + 0x28)); 0x0041a736 cmp eax, 0x1f | 0x0041a739 mov rbp, r8 | | if (eax <= 0x1f) { 0x0041a73c jg 0x41a750 | 0x0041a73e add eax, eax | eax += eax; 0x0041a740 mov dword [r15 + 0x28], eax | *((r15 + 0x28)) = eax; 0x0041a744 nop word cs:[rax + rax] | 0x0041a74e nop | | } | label_15: 0x0041a750 mov rax, qword [rdi] | rax = *(rdi); 0x0041a753 mov qword [r15 + 0x20], rax | *((r15 + 0x20)) = rax; 0x0041a757 mov qword [rdi + 0x10], r14 | *((rdi + 0x10)) = r14; 0x0041a75b mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a75f mov rcx, rbp | rcx = rbp; 0x0041a762 shl rcx, 4 | rcx <<= 4; 0x0041a766 mov qword [rax + rcx], rdi | *((rax + rcx)) = rdi; 0x0041a76a mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a76e mov rdi, qword [rax + rcx] | 0x0041a772 lea ecx, [rbp - 1] | ecx = rbp - 1; 0x0041a775 shl rcx, 4 | rcx <<= 4; 0x0041a779 mov rsi, qword [rax + rcx + 8] | 0x0041a77e call 0x420600 | BloombergLP::bslalg::BidirectionalLinkListUtil::insertLinkAfterTarget(BloombergLP::bslalg::BidirectionalLink*,BloombergLP::bslalg::BidirectionalLink*) (*((rax + rcx)), *((rax + rcx + 8))); 0x0041a783 inc r12d | r12d++; | label_14: 0x0041a786 mov rcx, rbp | rcx = rbp; 0x0041a789 shl rcx, 4 | rcx <<= 4; 0x0041a78d mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0041a791 mov r13, qword [rax + rcx] | r13 = *((rax + rcx)); 0x0041a795 cmp dword [rsp + 0x10], 2 | | if (*((rsp + 0x10)) < 2) { 0x0041a79a jb 0x41a5f8 | goto label_0; | } 0x0041a7a0 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0041a7a5 mov qword [rsp + 0x28], rbp | *((rsp + 0x28)) = rbp; 0x0041a7aa mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0041a7af add eax, r12d | eax += r12d; 0x0041a7b2 mov dword [rsp + 4], eax | *((rsp + 4)) = eax; 0x0041a7b6 nop word cs:[rax + rax] | | label_1: 0x0041a7c0 call 0x421000 | BloombergLP::bslma::MallocFreeAllocator::singleton() (); 0x0041a7c5 mov edi, r12d | 0x0041a7c8 call 0x420f70 | rax = BloombergLP::bsltf::TemplateTestFacility::nullTerminatedStringForIdentifier(int) (r12d); 0x0041a7cd mov rbx, rax | rbx = rax; 0x0041a7d0 mov rbp, qword [r15 + 0x20] | rbp = *((r15 + 0x20)); 0x0041a7d4 test rbp, rbp | | if (rbp != 0) { 0x0041a7d7 jne 0x41a8e0 | goto label_17; | } 0x0041a7dd movsxd rax, dword [r15 + 0x28] | rax = *((r15 + 0x28)); 0x0041a7e1 lea r14, [rax + rax*2] | r14 = rax * 3; 0x0041a7e5 lea rsi, [r14*8 + 0x17] | rsi = r14*8 + 0x17; 0x0041a7ed and rsi, 0xfffffffffffffff0 | rsi &= 0xfffffffffffffff0; 0x0041a7f1 mov rdi, qword [r15 + 0x10] | rdi = *((r15 + 0x10)); 0x0041a7f5 mov rax, qword [rdi] | rax = *(rdi); 0x0041a7f8 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041a7fb mov rcx, rax | rcx = rax; 0x0041a7fe mov rdx, qword [rsp + 8] | rdx = *((rsp + 8)); 0x0041a803 mov rax, qword [rdx] | rax = *(rdx); 0x0041a806 mov qword [rcx], rax | *(rcx) = rax; 0x0041a809 mov qword [rdx], rcx | *(rdx) = rcx; 0x0041a80c lea rbp, [rcx + 8] | rbp = rcx + 8; 0x0041a810 lea rdi, [rcx + r14*8 - 0x10] | rdi = rcx + r14*8 - 0x10; 0x0041a815 cmp rdi, rbp | | if (rdi <= rbp) { 0x0041a818 jbe 0x41a8c6 | goto label_4; | } 0x0041a81e lea rsi, [r14*8 - 0x19] | rsi = r14*8 - 0x19; 0x0041a826 mov rax, rsi | rax = rsi; 0x0041a829 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x0041a833 mul rdx | rdx:rax = rax * rdx; 0x0041a836 shr edx, 4 | edx >>= 4; 0x0041a839 inc edx | edx++; 0x0041a83b and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a83f je 0x41a90d | goto label_18; | } 0x0041a845 add rcx, 0x20 | rcx += 0x20; 0x0041a849 neg rdx | rdx = -rdx; 0x0041a84c nop dword [rax] | | do { 0x0041a850 mov qword [rcx - 0x18], rcx | *((rcx - 0x18)) = rcx; 0x0041a854 add rcx, 0x18 | rcx += 0x18; 0x0041a858 inc rdx | rdx++; 0x0041a85b jne 0x41a850 | | } while (rdx != 0); 0x0041a85d add rcx, 0xffffffffffffffe8 | rcx += 0xffffffffffffffe8; 0x0041a861 cmp rsi, 0xa8 | | if (rsi < 0xa8) { 0x0041a868 jb 0x41a8c6 | goto label_4; | } 0x0041a86a nop word [rax + rax] | | do { | label_3: 0x0041a870 lea rax, [rcx + 0x18] | rax = rcx + 0x18; 0x0041a874 mov qword [rcx], rax | *(rcx) = rax; 0x0041a877 lea rax, [rcx + 0x30] | rax = rcx + 0x30; 0x0041a87b mov qword [rcx + 0x18], rax | *((rcx + 0x18)) = rax; 0x0041a87f lea rax, [rcx + 0x48] | rax = rcx + 0x48; 0x0041a883 mov qword [rcx + 0x30], rax | *((rcx + 0x30)) = rax; 0x0041a887 lea rax, [rcx + 0x60] | rax = rcx + 0x60; 0x0041a88b mov qword [rcx + 0x48], rax | *((rcx + 0x48)) = rax; 0x0041a88f lea rax, [rcx + 0x78] | rax = rcx + 0x78; 0x0041a893 mov qword [rcx + 0x60], rax | *((rcx + 0x60)) = rax; 0x0041a897 lea rax, [rcx + 0x90] | rax = rcx + 0x90; 0x0041a89e mov qword [rcx + 0x78], rax | *((rcx + 0x78)) = rax; 0x0041a8a2 lea rax, [rcx + 0xa8] | rax = rcx + 0xa8; 0x0041a8a9 mov qword [rcx + 0x90], rax | *((rcx + 0x90)) = rax; 0x0041a8b0 lea rax, [rcx + 0xc0] | rax = rcx + 0xc0; 0x0041a8b7 mov qword [rcx + 0xa8], rax | *((rcx + 0xa8)) = rax; 0x0041a8be mov rcx, rax | rcx = rax; 0x0041a8c1 cmp rax, rdi | 0x0041a8c4 jb 0x41a870 | | } while (rax < rdi); | label_4: 0x0041a8c6 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x0041a8ca mov qword [rdi], rax | *(rdi) = rax; 0x0041a8cd mov qword [r15 + 0x20], rbp | *((r15 + 0x20)) = rbp; 0x0041a8d1 mov eax, dword [r15 + 0x28] | eax = *((r15 + 0x28)); 0x0041a8d5 cmp eax, 0x1f | | if (eax <= 0x1f) { 0x0041a8d8 jg 0x41a8e0 | 0x0041a8da add eax, eax | eax += eax; 0x0041a8dc mov dword [r15 + 0x28], eax | *((r15 + 0x28)) = eax; | } | label_17: 0x0041a8e0 mov rax, qword [rbp] | rax = *(rbp); 0x0041a8e4 mov qword [r15 + 0x20], rax | *((r15 + 0x20)) = rax; 0x0041a8e8 mov qword [rbp + 0x10], rbx | *((rbp + 0x10)) = rbx; 0x0041a8ec mov rdi, rbp | 0x0041a8ef mov rsi, r13 | 0x0041a8f2 call 0x420600 | BloombergLP::bslalg::BidirectionalLinkListUtil::insertLinkAfterTarget(BloombergLP::bslalg::BidirectionalLink*,BloombergLP::bslalg::BidirectionalLink*) (rbp, r13); 0x0041a8f7 inc r12d | r12d++; 0x0041a8fa mov r13, rbp | r13 = rbp; 0x0041a8fd cmp r12d, dword [rsp + 4] | | if (r12d != *((rsp + 4))) { 0x0041a902 jne 0x41a7c0 | goto label_1; | } 0x0041a908 jmp 0x41a5e0 | goto label_2; | label_18: 0x0041a90d mov rcx, rbp | rcx = rbp; 0x0041a910 cmp rsi, 0xa8 | | if (rsi >= 0xa8) { 0x0041a917 jae 0x41a870 | goto label_3; | } 0x0041a91d jmp 0x41a8c6 | goto label_4; | label_16: 0x0041a91f mov rcx, rdi | rcx = rdi; 0x0041a922 cmp rsi, 0xa8 | | if (rsi >= 0xa8) { 0x0041a929 jae 0x41a6d0 | goto label_5; | } 0x0041a92f jmp 0x41a726 | goto label_6; | label_13: 0x0041a934 add rsp, 0x38 | 0x0041a938 pop rbx | 0x0041a939 pop r12 | 0x0041a93b pop r13 | 0x0041a93d pop r14 | 0x0041a93f pop r15 | 0x0041a941 pop rbp | 0x0041a942 ret | return rax; | label_11: 0x0041a943 mov rcx, rdi | rcx = rdi; 0x0041a946 cmp rsi, 0xa8 | | if (rsi >= 0xa8) { 0x0041a94d jae 0x41a520 | goto label_7; | } 0x0041a953 jmp 0x41a576 | goto label_8; | }