; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/assume @ 0x439a80 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generateRaw_char__BloombergLP::bdlt::Date_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | uint64_t method_BloombergLP::bdlt::FixUtil_generateRaw_char_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (int64_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generateRaw(char*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x00439a80 push r15 | 0x00439a82 push r14 | 0x00439a84 push rbx | 0x00439a85 mov r14, rsi | r14 = rsi; 0x00439a88 mov rbx, rdi | rbx = rdi; 0x00439a8b mov edi, dword [rsi] | 0x00439a8d call 0x43d0a0 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToYear(int) (*(rsi), rsi); 0x00439a92 mov ecx, eax | ecx = eax; 0x00439a94 mov r15d, 0xcccccccd | r15d = 0xcccccccd; 0x00439a9a imul rdx, rcx, 0x51eb851f | rdx = rcx * 0x51eb851f; 0x00439aa1 imul rsi, rcx, 0x10624dd3 | rsi = rcx * 0x10624dd3; 0x00439aa8 imul rcx, r15 | rcx *= r15; 0x00439aac shr rcx, 0x23 | rcx >>= 0x23; 0x00439ab0 lea edi, [rcx + rcx] | edi = rcx + rcx; 0x00439ab3 lea edi, [rdi + rdi*4] | edi = rdi * 5; 0x00439ab6 sub eax, edi | eax -= edi; 0x00439ab8 or al, 0x30 | al |= 0x30; 0x00439aba mov byte [rbx + 3], al | *((rbx + 3)) = al; 0x00439abd mov rax, rcx | rax = rcx; 0x00439ac0 imul rax, r15 | rax *= r15; 0x00439ac4 shr rax, 0x23 | rax >>= 0x23; 0x00439ac8 add eax, eax | eax += eax; 0x00439aca lea eax, [rax + rax*4] | eax = rax * 5; 0x00439acd sub ecx, eax | ecx -= eax; 0x00439acf or cl, 0x30 | cl |= 0x30; 0x00439ad2 mov byte [rbx + 2], cl | *((rbx + 2)) = cl; 0x00439ad5 shr rdx, 0x25 | rdx >>= 0x25; 0x00439ad9 mov rax, rdx | rax = rdx; 0x00439adc imul rax, r15 | rax *= r15; 0x00439ae0 shr rax, 0x23 | rax >>= 0x23; 0x00439ae4 add eax, eax | eax += eax; 0x00439ae6 lea eax, [rax + rax*4] | eax = rax * 5; 0x00439ae9 sub edx, eax | edx -= eax; 0x00439aeb or dl, 0x30 | dl |= 0x30; 0x00439aee mov byte [rbx + 1], dl | *((rbx + 1)) = dl; 0x00439af1 shr rsi, 0x26 | rsi >>= 0x26; 0x00439af5 mov rax, rsi | rax = rsi; 0x00439af8 imul rax, r15 | rax *= r15; 0x00439afc shr rax, 0x23 | rax >>= 0x23; 0x00439b00 add eax, eax | eax += eax; 0x00439b02 lea eax, [rax + rax*4] | eax = rax * 5; 0x00439b05 sub esi, eax | esi -= eax; 0x00439b07 or sil, 0x30 | sil |= 0x30; 0x00439b0b mov byte [rbx], sil | *(rbx) = sil; 0x00439b0e mov edi, dword [r14] | 0x00439b11 call 0x43d060 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToMonth(int) (*(r14), rsi); 0x00439b16 mov ecx, eax | ecx = eax; 0x00439b18 imul rcx, r15 | rcx *= r15; 0x00439b1c shr rcx, 0x23 | rcx >>= 0x23; 0x00439b20 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x00439b23 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439b26 sub eax, edx | eax -= edx; 0x00439b28 or al, 0x30 | al |= 0x30; 0x00439b2a mov byte [rbx + 5], al | *((rbx + 5)) = al; 0x00439b2d mov rax, rcx | rax = rcx; 0x00439b30 imul rax, r15 | rax *= r15; 0x00439b34 shr rax, 0x23 | rax >>= 0x23; 0x00439b38 add eax, eax | eax += eax; 0x00439b3a lea eax, [rax + rax*4] | eax = rax * 5; 0x00439b3d sub ecx, eax | ecx -= eax; 0x00439b3f or cl, 0x30 | cl |= 0x30; 0x00439b42 mov byte [rbx + 4], cl | *((rbx + 4)) = cl; 0x00439b45 mov edi, dword [r14] | 0x00439b48 call 0x43d020 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToDay(int) (*(r14), rsi); 0x00439b4d mov ecx, eax | ecx = eax; 0x00439b4f imul rcx, r15 | rcx *= r15; 0x00439b53 shr rcx, 0x23 | rcx >>= 0x23; 0x00439b57 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x00439b5a lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439b5d sub eax, edx | eax -= edx; 0x00439b5f or al, 0x30 | al |= 0x30; 0x00439b61 mov byte [rbx + 7], al | *((rbx + 7)) = al; 0x00439b64 mov rax, rcx | rax = rcx; 0x00439b67 imul rax, r15 | rax *= r15; 0x00439b6b shr rax, 0x23 | rax >>= 0x23; 0x00439b6f add eax, eax | eax += eax; 0x00439b71 lea eax, [rax + rax*4] | eax = rax * 5; 0x00439b74 sub ecx, eax | ecx -= eax; 0x00439b76 or cl, 0x30 | cl |= 0x30; 0x00439b79 mov byte [rbx + 6], cl | *((rbx + 6)) = cl; 0x00439b7c mov eax, 8 | eax = 8; 0x00439b81 pop rbx | 0x00439b82 pop r14 | 0x00439b84 pop r15 | 0x00439b86 ret | return rax; | }