; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/none @ 0x43b3d0 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generate_bsl::basic_string_char__std::__1::char_traits_char___bsl::allocator_char_____BloombergLP::bdlt::Date_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generate_bsl::basic_string_char_std::_1::char_traits_char_bsl::allocator_char_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (int64_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generate(bsl::basic_string, bsl::allocator >*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x0043b3d0 push r15 | 0x0043b3d2 push r14 | 0x0043b3d4 push rbx | 0x0043b3d5 mov r15, rsi | r15 = rsi; 0x0043b3d8 mov r14, rdi | r14 = rdi; 0x0043b3db mov esi, 8 | 0x0043b3e0 xor edx, edx | 0x0043b3e2 call 0x443820 | bsl::basic_string,bsl::allocator>::privateResizeRaw(unsigned long,char) (rdi, 8, 0); 0x0043b3e7 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) == 0x17) { 0x0043b3ec jne 0x43b3f3 | 0x0043b3ee mov rbx, r14 | rbx = r14; 0x0043b3f1 jmp 0x43b3f6 | | } else { 0x0043b3f3 mov rbx, qword [r14] | rbx = *(r14); | } 0x0043b3f6 mov edi, dword [r15] | 0x0043b3f9 call 0x43d240 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToYear(int) (*(r15), rsi); 0x0043b3fe movsxd rcx, eax | rcx = (int64_t) eax; 0x0043b401 imul rax, rcx, 0x66666667 | rax = rcx * 0x66666667; 0x0043b408 mov rdx, rax | rdx = rax; 0x0043b40b shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b40f sar rax, 0x22 | rax >>= 0x22; 0x0043b413 add eax, edx | eax += edx; 0x0043b415 lea edx, [rax + rax] | edx = rax + rax; 0x0043b418 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b41b imul rsi, rcx, 0x51eb851f | rsi = rcx * 0x51eb851f; 0x0043b422 imul rdi, rcx, 0x10624dd3 | rdi = rcx * 0x10624dd3; 0x0043b429 sub ecx, edx | ecx -= edx; 0x0043b42b add cl, 0x30 | cl += 0x30; 0x0043b42e mov byte [rbx + 3], cl | *((rbx + 3)) = cl; 0x0043b431 cdqe | rax = (int64_t) eax; 0x0043b433 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b43a mov rdx, rcx | rdx = rcx; 0x0043b43d shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b441 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b445 add ecx, edx | ecx += edx; 0x0043b447 add ecx, ecx | ecx += ecx; 0x0043b449 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b44c sub eax, ecx | eax -= ecx; 0x0043b44e add al, 0x30 | al += 0x30; 0x0043b450 mov byte [rbx + 2], al | *((rbx + 2)) = al; 0x0043b453 mov rax, rsi | rax = rsi; 0x0043b456 shr rax, 0x3f | rax >>= 0x3f; 0x0043b45a sar rsi, 0x25 | rsi >>= 0x25; 0x0043b45e add esi, eax | esi += eax; 0x0043b460 movsxd rax, esi | rax = (int64_t) esi; 0x0043b463 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b46a mov rdx, rcx | rdx = rcx; 0x0043b46d shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b471 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b475 add ecx, edx | ecx += edx; 0x0043b477 add ecx, ecx | ecx += ecx; 0x0043b479 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b47c sub eax, ecx | eax -= ecx; 0x0043b47e add al, 0x30 | al += 0x30; 0x0043b480 mov byte [rbx + 1], al | *((rbx + 1)) = al; 0x0043b483 mov rax, rdi | rax = rdi; 0x0043b486 shr rax, 0x3f | rax >>= 0x3f; 0x0043b48a sar rdi, 0x26 | rdi >>= 0x26; 0x0043b48e add edi, eax | edi += eax; 0x0043b490 movsxd rax, edi | rax = (int64_t) edi; 0x0043b493 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b49a mov rdx, rcx | rdx = rcx; 0x0043b49d shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b4a1 shr rcx, 0x22 | rcx >>= 0x22; 0x0043b4a5 add ecx, edx | ecx += edx; 0x0043b4a7 add ecx, ecx | ecx += ecx; 0x0043b4a9 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b4ac sub eax, ecx | eax -= ecx; 0x0043b4ae add al, 0x30 | al += 0x30; 0x0043b4b0 mov byte [rbx], al | *(rbx) = al; 0x0043b4b2 mov edi, dword [r15] | 0x0043b4b5 call 0x43d200 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToMonth(int) (*(r15), rsi); 0x0043b4ba cdqe | rax = (int64_t) eax; 0x0043b4bc imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b4c3 mov rdx, rcx | rdx = rcx; 0x0043b4c6 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b4ca sar rcx, 0x22 | rcx >>= 0x22; 0x0043b4ce add ecx, edx | ecx += edx; 0x0043b4d0 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x0043b4d3 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b4d6 sub eax, edx | eax -= edx; 0x0043b4d8 add al, 0x30 | al += 0x30; 0x0043b4da mov byte [rbx + 5], al | *((rbx + 5)) = al; 0x0043b4dd movsxd rax, ecx | rax = (int64_t) ecx; 0x0043b4e0 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b4e7 mov rdx, rcx | rdx = rcx; 0x0043b4ea shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b4ee shr rcx, 0x22 | rcx >>= 0x22; 0x0043b4f2 add ecx, edx | ecx += edx; 0x0043b4f4 add ecx, ecx | ecx += ecx; 0x0043b4f6 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b4f9 sub eax, ecx | eax -= ecx; 0x0043b4fb add al, 0x30 | al += 0x30; 0x0043b4fd mov byte [rbx + 4], al | *((rbx + 4)) = al; 0x0043b500 mov edi, dword [r15] | 0x0043b503 call 0x43d1c0 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToDay(int) (*(r15), rsi); 0x0043b508 cdqe | rax = (int64_t) eax; 0x0043b50a imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b511 mov rdx, rcx | rdx = rcx; 0x0043b514 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b518 sar rcx, 0x22 | rcx >>= 0x22; 0x0043b51c add ecx, edx | ecx += edx; 0x0043b51e lea edx, [rcx + rcx] | edx = rcx + rcx; 0x0043b521 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0043b524 sub eax, edx | eax -= edx; 0x0043b526 add al, 0x30 | al += 0x30; 0x0043b528 mov byte [rbx + 7], al | *((rbx + 7)) = al; 0x0043b52b movsxd rax, ecx | rax = (int64_t) ecx; 0x0043b52e imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0043b535 mov rdx, rcx | rdx = rcx; 0x0043b538 shr rdx, 0x3f | rdx >>= 0x3f; 0x0043b53c shr rcx, 0x22 | rcx >>= 0x22; 0x0043b540 add ecx, edx | ecx += edx; 0x0043b542 add ecx, ecx | ecx += ecx; 0x0043b544 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0043b547 sub eax, ecx | eax -= ecx; 0x0043b549 add al, 0x30 | al += 0x30; 0x0043b54b mov byte [rbx + 6], al | *((rbx + 6)) = al; 0x0043b54e mov esi, 8 | 0x0043b553 mov rdi, r14 | 0x0043b556 xor edx, edx | 0x0043b558 call 0x443820 | bsl::basic_string,bsl::allocator>::privateResizeRaw(unsigned long,char) (r14, 8, 0); 0x0043b55d mov eax, 8 | eax = 8; 0x0043b562 pop rbx | 0x0043b563 pop r14 | 0x0043b565 pop r15 | 0x0043b567 ret | return rax; | }