; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/none @ 0x43b7a0 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generate_std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char_____BloombergLP::bdlt::Date_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generate_std::_1::basic_string_char_std::_1::char_traits_char_std::_1::allocator_char_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (int64_t arg2, int32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generate(std::__1::basic_string, std::__1::allocator >*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x0043b7a0 push r15 | 0x0043b7a2 push r14 | 0x0043b7a4 push rbx | 0x0043b7a5 mov r15, rsi | r15 = rsi; 0x0043b7a8 mov r14, rdi | r14 = rdi; 0x0043b7ab mov esi, 8 | esi = 8; 0x0043b7b0 xor edx, edx | edx = 0; 0x0043b7b2 call 0x4045a0 | std::_1::basic_string,std::_1::allocator>::resize(unsigned long,char) (); 0x0043b7b7 test byte [r14], 1 | | if ((*(r14) & 1) == 0) { 0x0043b7bb jne 0x43b7c3 | 0x0043b7bd lea rbx, [r14 + 1] | rbx = r14 + 1; 0x0043b7c1 jmp 0x43b7c7 | | } else { 0x0043b7c3 mov rbx, qword [r14 + 0x10] | rbx = *((r14 + 0x10)); | } 0x0043b7c7 mov edi, dword [r15] | 0x0043b7ca call 0x43d240 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToYear(int) (*(r15), rsi); 0x0043b7cf movsxd rcx, eax | rcx = (int64_t) eax; 0x0043b7d2 imul rax, rcx, 0x66666667 | rax = rcx * 0x66666667; 0x0043b7d9 mov rdx, rax | rdx = rax; 0x0043b7dc shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b7e0 sar rax, 0x22 | rax >>= 0x22; 0x0043b7e4 add eax, edx | eax += edx; 0x0043b7e6 lea edx, [rax + rax] | edx = rax + rax; 0x0043b7e9 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b7ec imul rsi, rcx, 0x51eb851f | rsi = rcx * 0x51eb851f; 0x0043b7f3 imul rdi, rcx, 0x10624dd3 | rdi = rcx * 0x10624dd3; 0x0043b7fa sub ecx, edx | ecx -= edx; 0x0043b7fc add cl, 0x30 | cl += 0x30; 0x0043b7ff mov byte [rbx + 3], cl | *((rbx + 3)) = cl; 0x0043b802 cdqe | rax = (int64_t) eax; 0x0043b804 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b80b mov rdx, rcx | rdx = rcx; 0x0043b80e shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b812 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b816 add ecx, edx | ecx += edx; 0x0043b818 add ecx, ecx | ecx += ecx; 0x0043b81a lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b81d sub eax, ecx | eax -= ecx; 0x0043b81f add al, 0x30 | al += 0x30; 0x0043b821 mov byte [rbx + 2], al | *((rbx + 2)) = al; 0x0043b824 mov rax, rsi | rax = rsi; 0x0043b827 shr rax, 0x3f | rax >>= 0x3f; 0x0043b82b sar rsi, 0x25 | rsi >>= 0x25; 0x0043b82f add esi, eax | esi += eax; 0x0043b831 movsxd rax, esi | rax = (int64_t) esi; 0x0043b834 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b83b mov rdx, rcx | rdx = rcx; 0x0043b83e shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b842 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b846 add ecx, edx | ecx += edx; 0x0043b848 add ecx, ecx | ecx += ecx; 0x0043b84a lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b84d sub eax, ecx | eax -= ecx; 0x0043b84f add al, 0x30 | al += 0x30; 0x0043b851 mov byte [rbx + 1], al | *((rbx + 1)) = al; 0x0043b854 mov rax, rdi | rax = rdi; 0x0043b857 shr rax, 0x3f | rax >>= 0x3f; 0x0043b85b sar rdi, 0x26 | rdi >>= 0x26; 0x0043b85f add edi, eax | edi += eax; 0x0043b861 movsxd rax, edi | rax = (int64_t) edi; 0x0043b864 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b86b mov rdx, rcx | rdx = rcx; 0x0043b86e shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b872 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b876 add ecx, edx | ecx += edx; 0x0043b878 add ecx, ecx | ecx += ecx; 0x0043b87a lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b87d sub eax, ecx | eax -= ecx; 0x0043b87f add al, 0x30 | al += 0x30; 0x0043b881 mov byte [rbx], al | *(rbx) = al; 0x0043b883 mov edi, dword [r15] | 0x0043b886 call 0x43d200 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToMonth(int) (*(r15), rsi); 0x0043b88b cdqe | rax = (int64_t) eax; 0x0043b88d imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b894 mov rdx, rcx | rdx = rcx; 0x0043b897 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b89b sar rcx, 0x22 | rcx >>= 0x22; 0x0043b89f add ecx, edx | ecx += edx; 0x0043b8a1 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x0043b8a4 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b8a7 sub eax, edx | eax -= edx; 0x0043b8a9 add al, 0x30 | al += 0x30; 0x0043b8ab mov byte [rbx + 5], al | *((rbx + 5)) = al; 0x0043b8ae movsxd rax, ecx | rax = (int64_t) ecx; 0x0043b8b1 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b8b8 mov rdx, rcx | rdx = rcx; 0x0043b8bb shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b8bf shr rcx, 0x22 | rcx >>= 0x22; 0x0043b8c3 add ecx, edx | ecx += edx; 0x0043b8c5 add ecx, ecx | ecx += ecx; 0x0043b8c7 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b8ca sub eax, ecx | eax -= ecx; 0x0043b8cc add al, 0x30 | al += 0x30; 0x0043b8ce mov byte [rbx + 4], al | *((rbx + 4)) = al; 0x0043b8d1 mov edi, dword [r15] | 0x0043b8d4 call 0x43d1c0 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToDay(int) (*(r15), rsi); 0x0043b8d9 cdqe | rax = (int64_t) eax; 0x0043b8db imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b8e2 mov rdx, rcx | rdx = rcx; 0x0043b8e5 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b8e9 sar rcx, 0x22 | rcx >>= 0x22; 0x0043b8ed add ecx, edx | ecx += edx; 0x0043b8ef lea edx, [rcx + rcx] | edx = rcx + rcx; 0x0043b8f2 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b8f5 sub eax, edx | eax -= edx; 0x0043b8f7 add al, 0x30 | al += 0x30; 0x0043b8f9 mov byte [rbx + 7], al | *((rbx + 7)) = al; 0x0043b8fc movsxd rax, ecx | rax = (int64_t) ecx; 0x0043b8ff imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b906 mov rdx, rcx | rdx = rcx; 0x0043b909 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b90d shr rcx, 0x22 | rcx >>= 0x22; 0x0043b911 add ecx, edx | ecx += edx; 0x0043b913 add ecx, ecx | ecx += ecx; 0x0043b915 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b918 sub eax, ecx | eax -= ecx; 0x0043b91a add al, 0x30 | al += 0x30; 0x0043b91c mov byte [rbx + 6], al | *((rbx + 6)) = al; 0x0043b91f mov esi, 8 | esi = 8; 0x0043b924 mov rdi, r14 | rdi = r14; 0x0043b927 xor edx, edx | edx = 0; 0x0043b929 call 0x4045a0 | std::_1::basic_string,std::_1::allocator>::resize(unsigned long,char) (); 0x0043b92e mov eax, 8 | eax = 8; 0x0043b933 pop rbx | 0x0043b934 pop r14 | 0x0043b936 pop r15 | 0x0043b938 ret | return rax; | }