; assembly | /* r2dec pseudo code output */ | /* bbldc_basicdaycountutil.t/none @ 0x403810 */ | #include | ; (fcn) method.BloombergLP::bbldc::BasicDayCountUtil.yearsDiff_BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Date_const__BloombergLP::bbldc::DayCountConvention::Enum_ () | int32_t method_BloombergLP::bbldc::BasicDayCountUtil_yearsDiff_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Date_const_BloombergLP::bbldc::DayCountConvention::Enum_ (int64_t arg_8h, int64_t arg_ch, int64_t arg_10h, int64_t arg_14h, int64_t arg_18h, int64_t arg_1ch, int64_t arg4, uint32_t arg3, int64_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bbldc::BasicDayCountUtil::yearsDiff(BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Date const&, BloombergLP::bbldc::DayCountConvention::Enum) */ 0x00403810 push r14 | 0x00403812 push rbx | 0x00403813 push rax | 0x00403814 xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x00403818 cmp edx, 0xc | | if (edx <= 0xc) { 0x0040381b ja 0x4038fe | 0x00403821 mov r14, rsi | r14 = rsi; 0x00403824 mov rbx, rdi | rbx = rdi; 0x00403827 mov eax, edx | eax = edx; | /* switch table (13 cases) at 0x4079e8 */ 0x00403829 jmp qword [rax*8 + 0x4079e8] | 0x00403830 mov rdi, rbx | rdi = rbx; 0x00403833 mov rsi, r14 | rsi = r14; 0x00403836 add rsp, 8 | 0x0040383a pop rbx | 0x0040383b pop r14 | 0x0040383d jmp 0x404180 | void (*0x404180)() (); 0x00403842 mov rdi, rbx | rdi = rbx; 0x00403845 mov rsi, r14 | rsi = r14; 0x00403848 add rsp, 8 | 0x0040384c pop rbx | 0x0040384d pop r14 | 0x0040384f jmp 0x4041a0 | void (*0x4041a0)() (); 0x00403854 mov rdi, rbx | rdi = rbx; 0x00403857 mov rsi, r14 | rsi = r14; 0x0040385a add rsp, 8 | 0x0040385e pop rbx | 0x0040385f pop r14 | 0x00403861 jmp 0x403910 | void (*0x403910)() (); 0x00403866 mov rdi, rbx | rdi = rbx; 0x00403869 mov rsi, r14 | rsi = r14; 0x0040386c add rsp, 8 | 0x00403870 pop rbx | 0x00403871 pop r14 | 0x00403873 jmp 0x403ad0 | void (*0x403ad0)() (); 0x00403878 mov rdi, rbx | rdi = rbx; 0x0040387b mov rsi, r14 | rsi = r14; 0x0040387e add rsp, 8 | 0x00403882 pop rbx | 0x00403883 pop r14 | 0x00403885 jmp 0x403d10 | void (*0x403d10)() (); 0x0040388a mov rdi, rbx | rdi = rbx; 0x0040388d mov rsi, r14 | rsi = r14; 0x00403890 add rsp, 8 | 0x00403894 pop rbx | 0x00403895 pop r14 | 0x00403897 jmp 0x403ee0 | void (*0x403ee0)() (); 0x0040389c mov rdi, rbx | rdi = rbx; 0x0040389f mov rsi, r14 | rsi = r14; 0x004038a2 add rsp, 8 | 0x004038a6 pop rbx | 0x004038a7 pop r14 | 0x004038a9 jmp 0x403fc0 | void (*0x403fc0)() (); 0x004038ae mov edi, 0x270f | 0x004038b3 mov esi, 0xc | 0x004038b8 mov edx, 0x1f | 0x004038bd call 0x4046d0 | eax = BloombergLP::bdlt::PosixDateImpUtil::ymdToSerial(int,int,int) (0x270f, 0xc, 0x1f, rcx); 0x004038c2 mov dword [rsp], eax | *(rsp) = eax; 0x004038c5 mov rdx, rsp | 0x004038c8 mov rdi, rbx | 0x004038cb mov rsi, r14 | 0x004038ce call 0x404090 | eax = BloombergLP::bbldc::TerminatedIsda30360Eom::daysDiff(BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Dateconst&) (rbx, r14, rsp); 0x004038d3 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004038d6 cvtsi2sd xmm0, eax | __asm ("cvtsi2sd xmm0, eax"); 0x004038da divsd xmm0, qword [rip + 0x4176] | __asm ("divsd xmm0, qword [0x00407a58]"); 0x004038e2 jmp 0x4038fe | goto label_0; 0x004038e4 mov rdi, rbx | 0x004038e7 mov rsi, r14 | 0x004038ea call 0x403b60 | eax = BloombergLP::bbldc::BasicNl365::daysDiff(BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Dateconst&) (rbx, r14); 0x004038ef xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004038f2 cvtsi2sd xmm0, eax | __asm ("cvtsi2sd xmm0, eax"); 0x004038f6 divsd xmm0, qword [rip + 0x4152] | __asm ("divsd xmm0, qword [0x00407a50]"); | } | label_0: 0x004038fe add rsp, 8 | 0x00403902 pop rbx | 0x00403903 pop r14 | 0x00403905 ret | return eax; | }