; assembly | /* r2dec pseudo code output */ | /* bblb_schedulegenerationutil.t/assume @ 0x40b5e0 */ | #include | ; (fcn) method.BloombergLP::bblb::ScheduleGenerationUtil.generateFromDayInterval_bsl::vector_BloombergLP::bdlt::Date__bsl::allocator_BloombergLP::bdlt::Date_____BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Date_const__int_ () | int64_t method_BloombergLP::bblb::ScheduleGenerationUtil_generateFromDayInterval_bsl::vector_BloombergLP::bdlt::Date_bsl::allocator_BloombergLP::bdlt::Date_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Date_const_int_ (int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, uint32_t arg1) { | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bblb::ScheduleGenerationUtil::generateFromDayInterval(bsl::vector >*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Date const&, int) */ 0x0040b5e0 push rbp | 0x0040b5e1 push r15 | 0x0040b5e3 push r14 | 0x0040b5e5 push r13 | 0x0040b5e7 push r12 | 0x0040b5e9 push rbx | 0x0040b5ea push rax | 0x0040b5eb mov r15d, r8d | r15d = r8d; 0x0040b5ee mov r14, rcx | r14 = rcx; 0x0040b5f1 mov rcx, rdx | rcx = rdx; 0x0040b5f4 mov r12, rdi | r12 = rdi; 0x0040b5f7 mov rax, qword [rdi] | rax = *(rdi); 0x0040b5fa cmp qword [rdi + 8], rax | | if (*((rdi + 8)) != rax) { 0x0040b5fe je 0x40b605 | 0x0040b600 mov qword [r12 + 8], rax | *((r12 + 8)) = rax; | } 0x0040b605 mov esi, dword [rsi] | esi = *(rsi); 0x0040b607 mov edi, dword [r14] | edi = *(r14); 0x0040b60a sub esi, edi | esi -= edi; | if (esi > 0) { 0x0040b60c jle 0x40b61f | 0x0040b60e mov eax, esi | eax = esi; 0x0040b610 xor edx, edx | edx = 0; 0x0040b612 div r15d | eax = edx:eax / r15d; | edx = edx:eax % r15d; 0x0040b615 test edx, edx | | if (edx != 0) { 0x0040b617 je 0x40b61f | 0x0040b619 mov ebp, eax | 0x0040b61b inc ebp | ebp++; 0x0040b61d jmp 0x40b627 | | } | } else { 0x0040b61f mov eax, esi | eax = esi; 0x0040b621 cdq | edx:eax = (int64_t) eax; 0x0040b622 idiv r15d | eax = edx:eax / r15d; | edx = edx:eax % r15d; 0x0040b625 mov ebp, eax | | } 0x0040b627 mov ecx, dword [rcx] | ecx = *(rcx); 0x0040b629 sub ecx, edi | ecx -= edi; 0x0040b62b js 0x40b637 | | while (edx == 0) { 0x0040b62d mov eax, ecx | eax = ecx; 0x0040b62f cdq | edx:eax = (int64_t) eax; 0x0040b630 idiv r15d | eax = edx:eax / r15d; | edx = edx:eax % r15d; 0x0040b633 mov ebx, eax | ebx = eax; 0x0040b635 jmp 0x40b648 | goto label_0; 0x0040b637 mov eax, ecx | eax = ecx; 0x0040b639 neg eax | eax = -eax; 0x0040b63b xor edx, edx | edx = 0; 0x0040b63d div r15d | eax = edx:eax / r15d; | edx = edx:eax % r15d; 0x0040b640 test edx, edx | 0x0040b642 je 0x40b62d | | } 0x0040b644 mov ebx, eax | ebx = eax; 0x0040b646 not ebx | ebx = ~ebx; | label_0: 0x0040b648 mov eax, ebx | eax = ebx; 0x0040b64a sub eax, ebp | eax -= ebp; 0x0040b64c mov esi, eax | esi = eax; 0x0040b64e neg esi | esi = -esi; | if (eax < 0) { 0x0040b650 cmovl esi, eax | esi = eax; | } 0x0040b653 inc esi | esi++; 0x0040b655 mov rdi, r12 | 0x0040b658 call 0x40c170 | bsl::vector>::reserve(unsigned long) (r12, rsi); 0x0040b65d sub ebx, ebp | ebx -= ebp; | if (ebx < 0) { 0x0040b65f jl 0x40b68a | goto label_1; | } 0x0040b661 inc ebx | ebx++; 0x0040b663 imul ebp, r15d | ebp *= r15d; 0x0040b667 mov r13, rsp | r13 = rsp; 0x0040b66a nop word [rax + rax] | | do { 0x0040b670 mov eax, dword [r14] | eax = *(r14); 0x0040b673 add eax, ebp | eax += ebp; 0x0040b675 mov dword [rsp], eax | *(rsp) = eax; 0x0040b678 mov rdi, r12 | 0x0040b67b mov rsi, r13 | 0x0040b67e call 0x40a680 | bsl::vector>::push_back(BloombergLP::bdlt::Date&&) (r12, r13); 0x0040b683 add ebp, r15d | ebp += r15d; 0x0040b686 dec ebx | ebx--; 0x0040b688 jne 0x40b670 | | } while (ebx != 0); | label_1: 0x0040b68a add rsp, 8 | 0x0040b68e pop rbx | 0x0040b68f pop r12 | 0x0040b691 pop r13 | 0x0040b693 pop r14 | 0x0040b695 pop r15 | 0x0040b697 pop rbp | 0x0040b698 ret | return rax; | }