; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/none @ 0x4399c0 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generateRaw_char__BloombergLP::bdlt::Date_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generateRaw_char_BloombergLP::bdlt::Date_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (char * arg2, char * arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generateRaw(char*, BloombergLP::bdlt::Date const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x004399c0 push r14 | 0x004399c2 push rbx | 0x004399c3 push rax | 0x004399c4 mov r14, rsi | r14 = rsi; 0x004399c7 mov rbx, rdi | rbx = rdi; 0x004399ca mov edi, dword [rsi] | 0x004399cc call 0x43d240 | eax = BloombergLP::bdlt::PosixDateImpUtil::serialToYear(int) (*(rsi), rsi); 0x004399d1 movsxd rcx, eax | rcx = (int64_t) eax; 0x004399d4 imul rax, rcx, 0x66666667 | rax = rcx * 0x66666667; 0x004399db mov rdx, rax | rdx = rax; 0x004399de shr rdx, 0x3f | rdx >>= 0x3f; 0x004399e2 sar rax, 0x22 | rax >>= 0x22; 0x004399e6 add eax, edx | eax += edx; 0x004399e8 lea edx, [rax + rax] | edx = rax + rax; 0x004399eb lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x004399ee imul rsi, rcx, 0x51eb851f | rsi = rcx * 0x51eb851f; 0x004399f5 imul rdi, rcx, 0x10624dd3 | rdi = rcx * 0x10624dd3; 0x004399fc sub ecx, edx | ecx -= edx; 0x004399fe add cl, 0x30 | cl += 0x30; 0x00439a01 mov byte [rbx + 3], cl | *((rbx + 3)) = cl; 0x00439a04 cdqe | rax = (int64_t) eax; 0x00439a06 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439a0d mov rdx, rcx | rdx = rcx; 0x00439a10 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439a14 shr rcx, 0x22 | rcx >>= 0x22; 0x00439a18 add ecx, edx | ecx += edx; 0x00439a1a add ecx, ecx | ecx += ecx; 0x00439a1c lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439a1f sub eax, ecx | eax -= ecx; 0x00439a21 add al, 0x30 | al += 0x30; 0x00439a23 mov byte [rbx + 2], al | *((rbx + 2)) = al; 0x00439a26 mov rax, rsi | rax = rsi; 0x00439a29 shr rax, 0x3f | rax >>= 0x3f; 0x00439a2d sar rsi, 0x25 | rsi >>= 0x25; 0x00439a31 add esi, eax | esi += eax; 0x00439a33 movsxd rax, esi | rax = (int64_t) esi; 0x00439a36 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439a3d mov rdx, rcx | rdx = rcx; 0x00439a40 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439a44 shr rcx, 0x22 | rcx >>= 0x22; 0x00439a48 add ecx, edx | ecx += edx; 0x00439a4a add ecx, ecx | ecx += ecx; 0x00439a4c lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439a4f sub eax, ecx | eax -= ecx; 0x00439a51 add al, 0x30 | al += 0x30; 0x00439a53 mov byte [rbx + 1], al | *((rbx + 1)) = al; 0x00439a56 mov rax, rdi | rax = rdi; 0x00439a59 shr rax, 0x3f | rax >>= 0x3f; 0x00439a5d sar rdi, 0x26 | rdi >>= 0x26; 0x00439a61 add edi, eax | edi += eax; 0x00439a63 movsxd rax, edi | rax = (int64_t) edi; 0x00439a66 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439a6d mov rdx, rcx | rdx = rcx; 0x00439a70 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439a74 shr rcx, 0x22 | rcx >>= 0x22; 0x00439a78 add ecx, edx | ecx += edx; 0x00439a7a add ecx, ecx | ecx += ecx; 0x00439a7c lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439a7f sub eax, ecx | eax -= ecx; 0x00439a81 add al, 0x30 | al += 0x30; 0x00439a83 mov byte [rbx], al | *(rbx) = al; 0x00439a85 mov edi, dword [r14] | 0x00439a88 call 0x43d200 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToMonth(int) (*(r14), rsi); 0x00439a8d cdqe | rax = (int64_t) eax; 0x00439a8f imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439a96 mov rdx, rcx | rdx = rcx; 0x00439a99 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439a9d sar rcx, 0x22 | rcx >>= 0x22; 0x00439aa1 add ecx, edx | ecx += edx; 0x00439aa3 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x00439aa6 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439aa9 sub eax, edx | eax -= edx; 0x00439aab add al, 0x30 | al += 0x30; 0x00439aad mov byte [rbx + 5], al | *((rbx + 5)) = al; 0x00439ab0 movsxd rax, ecx | rax = (int64_t) ecx; 0x00439ab3 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439aba mov rdx, rcx | rdx = rcx; 0x00439abd shr rdx, 0x3f | rdx >>= 0x3f; 0x00439ac1 shr rcx, 0x22 | rcx >>= 0x22; 0x00439ac5 add ecx, edx | ecx += edx; 0x00439ac7 add ecx, ecx | ecx += ecx; 0x00439ac9 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439acc sub eax, ecx | eax -= ecx; 0x00439ace add al, 0x30 | al += 0x30; 0x00439ad0 mov byte [rbx + 4], al | *((rbx + 4)) = al; 0x00439ad3 mov edi, dword [r14] | 0x00439ad6 call 0x43d1c0 | rax = BloombergLP::bdlt::PosixDateImpUtil::serialToDay(int) (*(r14), rsi); 0x00439adb cdqe | rax = (int64_t) eax; 0x00439add imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439ae4 mov rdx, rcx | rdx = rcx; 0x00439ae7 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439aeb sar rcx, 0x22 | rcx >>= 0x22; 0x00439aef add ecx, edx | ecx += edx; 0x00439af1 lea edx, [rcx + rcx] | edx = rcx + rcx; 0x00439af4 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439af7 sub eax, edx | eax -= edx; 0x00439af9 add al, 0x30 | al += 0x30; 0x00439afb mov byte [rbx + 7], al | *((rbx + 7)) = al; 0x00439afe movsxd rax, ecx | rax = (int64_t) ecx; 0x00439b01 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439b08 mov rdx, rcx | rdx = rcx; 0x00439b0b shr rdx, 0x3f | rdx >>= 0x3f; 0x00439b0f shr rcx, 0x22 | rcx >>= 0x22; 0x00439b13 add ecx, edx | ecx += edx; 0x00439b15 add ecx, ecx | ecx += ecx; 0x00439b17 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439b1a sub eax, ecx | eax -= ecx; 0x00439b1c add al, 0x30 | al += 0x30; 0x00439b1e mov byte [rbx + 6], al | *((rbx + 6)) = al; 0x00439b21 mov eax, 8 | eax = 8; 0x00439b26 add rsp, 8 | 0x00439b2a pop rbx | 0x00439b2b pop r14 | 0x00439b2d ret | return rax; | }