; assembly | /* r2dec pseudo code output */ | /* bbldc_calendardaycountutil.t/none @ 0x404a60 */ | #include | ; (fcn) method.BloombergLP::bbldc::CalendarDayCountUtil.daysDiff_BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Calendar_const__BloombergLP::bbldc::DayCountConvention::Enum_ () | uint64_t method_BloombergLP::bbldc::CalendarDayCountUtil_daysDiff_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Calendar_const_BloombergLP::bbldc::DayCountConvention::Enum_ (uint32_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bbldc::CalendarDayCountUtil::daysDiff(BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Calendar const&, BloombergLP::bbldc::DayCountConvention::Enum) */ 0x00404a60 push r14 | 0x00404a62 push rbx | 0x00404a63 push rax | 0x00404a64 xor ebx, ebx | ebx = 0; 0x00404a66 cmp ecx, 0xa | | if (ecx == 0xa) { 0x00404a69 jne 0x404ad7 | 0x00404a6b mov eax, dword [rdi] | eax = *(rdi); 0x00404a6d mov ecx, dword [rsi] | ecx = *(rsi); 0x00404a6f cmp eax, ecx | | if (eax < ecx) { 0x00404a71 jge 0x404a8a | 0x00404a73 mov edi, dword [rdx] | edi = *(rdx); 0x00404a75 sub eax, edi | eax -= edi; 0x00404a77 movsxd rsi, eax | rsi = (int64_t) eax; 0x00404a7a sub ecx, edi | ecx -= edi; 0x00404a7c cmp ecx, 0xffffffff | | if (ecx == 0xffffffff) { 0x00404a7f jne 0x404aa3 | 0x00404a81 mov rbx, qword [rdx + 0xc8] | rbx = *((rdx + 0xc8)); 0x00404a88 jmp 0x404aa6 | | if (ecx <= 0xffffffff) { | } else { 0x00404a8a jle 0x404ad7 | goto label_0; | } 0x00404a8c mov edi, dword [rdx] | edi = *(rdx); 0x00404a8e sub ecx, edi | ecx -= edi; 0x00404a90 movsxd rsi, ecx | rsi = (int64_t) ecx; 0x00404a93 sub eax, edi | eax -= edi; 0x00404a95 cmp eax, 0xffffffff | | if (eax != 0xffffffff) { 0x00404a98 jne 0x404abc | goto label_1; | } 0x00404a9a mov r14, qword [rdx + 0xc8] | r14 = *((rdx + 0xc8)); 0x00404aa1 jmp 0x404abf | goto label_2; | } 0x00404aa3 movsxd rbx, ecx | rbx = (int64_t) ecx; | } 0x00404aa6 mov rdi, qword [rdx + 0xa8] | 0x00404aad sub rbx, rsi | rbx -= rsi; 0x00404ab0 mov rdx, rbx | 0x00404ab3 call 0x4096d0 | eax = BloombergLP::bdlb::BitStringUtil::num1(unsigned longconst*,unsigned long,unsigned long) (*((rdx + 0xa8)), rsi, rbx); 0x00404ab8 sub ebx, eax | ebx -= eax; 0x00404aba jmp 0x404ad7 | goto label_0; | label_1: 0x00404abc movsxd r14, eax | r14 = (int64_t) eax; | label_2: 0x00404abf mov rdi, qword [rdx + 0xa8] | 0x00404ac6 sub r14, rsi | r14 -= rsi; 0x00404ac9 mov rdx, r14 | 0x00404acc call 0x4096d0 | rax = BloombergLP::bdlb::BitStringUtil::num1(unsigned longconst*,unsigned long,unsigned long) (*((rdx + 0xa8)), rsi, r14); 0x00404ad1 mov rbx, rax | rbx = rax; 0x00404ad4 sub ebx, r14d | ebx -= r14d; | } | label_0: 0x00404ad7 mov eax, ebx | eax = ebx; 0x00404ad9 add rsp, 8 | 0x00404add pop rbx | 0x00404ade pop r14 | 0x00404ae0 ret | return rax; | }