; assembly | /* r2dec pseudo code output */ | /* balber_berdecoder.t/none @ 0x466600 */ | #include | ; (fcn) method.BloombergLP::bdlt::Iso8601Util.generateRaw_char__BloombergLP::bdlt::Date_const__BloombergLP::bdlt::Iso8601UtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::Iso8601Util_generateRaw_char_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::Iso8601UtilConfiguration_const_ (int64_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::Iso8601Util::generateRaw(char*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::Iso8601UtilConfiguration const&) */ 0x00466600 push r14 | 0x00466602 push rbx | 0x00466603 push rax | 0x00466604 mov r14, rsi | r14 = rsi; 0x00466607 mov rbx, rdi | rbx = rdi; 0x0046660a mov edi, dword [rsi] | 0x0046660c call 0x46a6a0 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToYear(int) (*(rsi), rsi); 0x00466611 movsxd rcx, eax | rcx = (int64_t) eax; 0x00466614 imul rax, rcx, 0x66666667 | rax = rcx * 0x66666667; 0x0046661b mov rdx, rax | rdx = rax; 0x0046661e shr rdx, 0x3f | rdx >>= 0x3f; 0x00466622 sar rax, 0x22 | rax >>= 0x22; 0x00466626 add eax, edx | eax += edx; 0x00466628 lea edx, [rax + rax] | edx = rax + rax; 0x0046662b lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0046662e imul rsi, rcx, 0x51eb851f | rsi = rcx * 0x51eb851f; 0x00466635 imul rdi, rcx, 0x10624dd3 | rdi = rcx * 0x10624dd3; 0x0046663c sub ecx, edx | ecx -= edx; 0x0046663e add cl, 0x30 | cl += 0x30; 0x00466641 mov byte [rbx + 3], cl | *((rbx + 3)) = cl; 0x00466644 cdqe | rax = (int64_t) eax; 0x00466646 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0046664d mov rdx, rcx | rdx = rcx; 0x00466650 shr rdx, 0x3f | rdx >>= 0x3f; 0x00466654 shr rcx, 0x22 | rcx >>= 0x22; 0x00466658 add ecx, edx | ecx += edx; 0x0046665a add ecx, ecx | ecx += ecx; 0x0046665c lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0046665f sub eax, ecx | eax -= ecx; 0x00466661 add al, 0x30 | al += 0x30; 0x00466663 mov byte [rbx + 2], al | *((rbx + 2)) = al; 0x00466666 mov rax, rsi | rax = rsi; 0x00466669 shr rax, 0x3f | rax >>= 0x3f; 0x0046666d sar rsi, 0x25 | rsi >>= 0x25; 0x00466671 add esi, eax | esi += eax; 0x00466673 movsxd rax, esi | rax = (int64_t) esi; 0x00466676 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0046667d mov rdx, rcx | rdx = rcx; 0x00466680 shr rdx, 0x3f | rdx >>= 0x3f; 0x00466684 shr rcx, 0x22 | rcx >>= 0x22; 0x00466688 add ecx, edx | ecx += edx; 0x0046668a add ecx, ecx | ecx += ecx; 0x0046668c lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x0046668f sub eax, ecx | eax -= ecx; 0x00466691 add al, 0x30 | al += 0x30; 0x00466693 mov byte [rbx + 1], al | *((rbx + 1)) = al; 0x00466696 mov rax, rdi | rax = rdi; 0x00466699 shr rax, 0x3f | rax >>= 0x3f; 0x0046669d sar rdi, 0x26 | rdi >>= 0x26; 0x004666a1 add edi, eax | edi += eax; 0x004666a3 movsxd rax, edi | rax = (int64_t) edi; 0x004666a6 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x004666ad mov rdx, rcx | rdx = rcx; 0x004666b0 shr rdx, 0x3f | rdx >>= 0x3f; 0x004666b4 shr rcx, 0x22 | rcx >>= 0x22; 0x004666b8 add ecx, edx | ecx += edx; 0x004666ba add ecx, ecx | ecx += ecx; 0x004666bc lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x004666bf sub eax, ecx | eax -= ecx; 0x004666c1 add al, 0x30 | al += 0x30; 0x004666c3 mov byte [rbx], al | *(rbx) = al; 0x004666c5 mov byte [rbx + 4], 0x2d | *((rbx + 4)) = 0x2d; 0x004666c9 mov edi, dword [r14] | 0x004666cc call 0x46a660 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToMonth(int) (*(r14), rsi); 0x004666d1 cdqe | rax = (int64_t) eax; 0x004666d3 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x004666da mov rdx, rcx | rdx = rcx; 0x004666dd shr rdx, 0x3f | rdx >>= 0x3f; 0x004666e1 sar rcx, 0x22 | rcx >>= 0x22; 0x004666e5 add ecx, edx | ecx += edx; 0x004666e7 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x004666ea lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x004666ed sub eax, edx | eax -= edx; 0x004666ef add al, 0x30 | al += 0x30; 0x004666f1 mov byte [rbx + 6], al | *((rbx + 6)) = al; 0x004666f4 movsxd rax, ecx | rax = (int64_t) ecx; 0x004666f7 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x004666fe mov rdx, rcx | rdx = rcx; 0x00466701 shr rdx, 0x3f | rdx >>= 0x3f; 0x00466705 shr rcx, 0x22 | rcx >>= 0x22; 0x00466709 add ecx, edx | ecx += edx; 0x0046670b add ecx, ecx | ecx += ecx; 0x0046670d lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00466710 sub eax, ecx | eax -= ecx; 0x00466712 add al, 0x30 | al += 0x30; 0x00466714 mov byte [rbx + 5], al | *((rbx + 5)) = al; 0x00466717 mov byte [rbx + 7], 0x2d | *((rbx + 7)) = 0x2d; 0x0046671b mov edi, dword [r14] | 0x0046671e call 0x46a620 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToDay(int) (*(r14), rsi); 0x00466723 cdqe | rax = (int64_t) eax; 0x00466725 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x0046672c mov rdx, rcx | rdx = rcx; 0x0046672f shr rdx, 0x3f | rdx >>= 0x3f; 0x00466733 sar rcx, 0x22 | rcx >>= 0x22; 0x00466737 add ecx, edx | ecx += edx; 0x00466739 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x0046673c lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x0046673f sub eax, edx | eax -= edx; 0x00466741 add al, 0x30 | al += 0x30; 0x00466743 mov byte [rbx + 9], al | *((rbx + 9)) = al; 0x00466746 movsxd rax, ecx | rax = (int64_t) ecx; 0x00466749 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00466750 mov rdx, rcx | rdx = rcx; 0x00466753 shr rdx, 0x3f | rdx >>= 0x3f; 0x00466757 shr rcx, 0x22 | rcx >>= 0x22; 0x0046675b add ecx, edx | ecx += edx; 0x0046675d add ecx, ecx | ecx += ecx; 0x0046675f lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00466762 sub eax, ecx | eax -= ecx; 0x00466764 add al, 0x30 | al += 0x30; 0x00466766 mov byte [rbx + 8], al | *((rbx + 8)) = al; 0x00466769 mov eax, 0xa | eax = 0xa; 0x0046676e add rsp, 8 | 0x00466772 pop rbx | 0x00466773 pop r14 | 0x00466775 ret | return rax; | }