; assembly | /* r2dec pseudo code output */ | /* bbldc_calendardaycountutil.t/assume @ 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_ (int64_t arg3, int64_t arg2, int64_t arg1) { | 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 mov eax, dword [rdi] | eax = *(rdi); 0x00404a66 mov ecx, dword [rsi] | ecx = *(rsi); 0x00404a68 cmp eax, ecx | | if (eax < ecx) { 0x00404a6a jge 0x404a83 | 0x00404a6c mov edi, dword [rdx] | edi = *(rdx); 0x00404a6e sub eax, edi | eax -= edi; 0x00404a70 movsxd rsi, eax | rsi = (int64_t) eax; 0x00404a73 sub ecx, edi | ecx -= edi; 0x00404a75 cmp ecx, 0xffffffff | | if (ecx == 0xffffffff) { 0x00404a78 jne 0x404aa0 | 0x00404a7a mov rbx, qword [rdx + 0xc8] | rbx = *((rdx + 0xc8)); 0x00404a81 jmp 0x404aa3 | | } else { 0x00404a83 xor ebx, ebx | ebx = 0; 0x00404a85 cmp eax, ecx | | if (eax <= ecx) { 0x00404a87 jle 0x404ad4 | goto label_0; | } 0x00404a89 mov edi, dword [rdx] | edi = *(rdx); 0x00404a8b sub ecx, edi | ecx -= edi; 0x00404a8d movsxd rsi, ecx | rsi = (int64_t) ecx; 0x00404a90 sub eax, edi | eax -= edi; 0x00404a92 cmp eax, 0xffffffff | | if (eax != 0xffffffff) { 0x00404a95 jne 0x404ab9 | goto label_1; | } 0x00404a97 mov r14, qword [rdx + 0xc8] | r14 = *((rdx + 0xc8)); 0x00404a9e jmp 0x404abc | goto label_2; | } 0x00404aa0 movsxd rbx, ecx | rbx = (int64_t) ecx; | } 0x00404aa3 mov rdi, qword [rdx + 0xa8] | 0x00404aaa sub rbx, rsi | rbx -= rsi; 0x00404aad mov rdx, rbx | 0x00404ab0 call 0x409310 | eax = BloombergLP::bdlb::BitStringUtil::num1(unsigned longconst*,unsigned long,unsigned long) (*((rdx + 0xa8)), rsi, rbx); 0x00404ab5 sub ebx, eax | ebx -= eax; 0x00404ab7 jmp 0x404ad4 | goto label_0; | label_1: 0x00404ab9 movsxd r14, eax | r14 = (int64_t) eax; | label_2: 0x00404abc mov rdi, qword [rdx + 0xa8] | 0x00404ac3 sub r14, rsi | r14 -= rsi; 0x00404ac6 mov rdx, r14 | 0x00404ac9 call 0x409310 | rax = BloombergLP::bdlb::BitStringUtil::num1(unsigned longconst*,unsigned long,unsigned long) (*((rdx + 0xa8)), rsi, r14); 0x00404ace mov rbx, rax | rbx = rax; 0x00404ad1 sub ebx, r14d | ebx -= r14d; | label_0: 0x00404ad4 mov eax, ebx | eax = ebx; 0x00404ad6 add rsp, 8 | 0x00404ada pop rbx | 0x00404adb pop r14 | 0x00404add ret | return rax; | }