; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/none @ 0x439ba0 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generateRaw_char__BloombergLP::bdlt::Time_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generateRaw_char_BloombergLP::bdlt::Time_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (char * arg3, int64_t arg2, char * arg1) { | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generateRaw(char*, BloombergLP::bdlt::Time const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x00439ba0 push rbp | 0x00439ba1 push r15 | 0x00439ba3 push r14 | 0x00439ba5 push r13 | 0x00439ba7 push r12 | 0x00439ba9 push rbx | 0x00439baa push rax | 0x00439bab mov r15, rdx | r15 = rdx; 0x00439bae mov r14, rsi | r14 = rsi; 0x00439bb1 mov r12, rdi | r12 = rdi; 0x00439bb4 movabs r13, 0xffffffbfffffffff | r13 = 0xffffffbfffffffff; 0x00439bbe movabs rbp, 0x4000000000 | 0x00439bc8 mov rcx, qword [rsi] | rcx = *(rsi); 0x00439bcb cmp rcx, rbp | | if (rcx < rbp) { 0x00439bce jl 0x43a16c | goto label_7; | } 0x00439bd4 and rcx, r13 | rcx &= r13; | label_1: 0x00439bd7 movabs rbx, 0x98b5bf2c03e529c5 | rbx = 0x98b5bf2c03e529c5; 0x00439be1 mov rax, rcx | rax = rcx; 0x00439be4 imul rbx | rdx:rax = rax * rbx; 0x00439be7 mov rax, rdx | rax = rdx; 0x00439bea add rax, rcx | rax += rcx; 0x00439bed mov rcx, rax | rcx = rax; 0x00439bf0 shr rcx, 0x3f | rcx >>= 0x3f; 0x00439bf4 shr rax, 0x1f | rax >>= 0x1f; 0x00439bf8 add eax, ecx | eax += ecx; 0x00439bfa xor edx, edx | edx = 0; 0x00439bfc cmp eax, 0x17 | | if (eax <= 0x17) { 0x00439bff jg 0x439c26 | 0x00439c01 mov rcx, qword [r14] | rcx = *(r14); 0x00439c04 cmp rcx, rbp | | if (rcx < rbp) { 0x00439c07 jl 0x43a1b4 | goto label_8; | } 0x00439c0d and rcx, r13 | rcx &= r13; | label_5: 0x00439c10 mov rax, rcx | rax = rcx; 0x00439c13 imul rbx | rdx:rax = rax * rbx; 0x00439c16 add rdx, rcx | rdx += rcx; 0x00439c19 mov rax, rdx | rax = rdx; 0x00439c1c shr rax, 0x3f | rax >>= 0x3f; 0x00439c20 shr rdx, 0x1f | rdx >>= 0x1f; 0x00439c24 add edx, eax | edx += eax; | } 0x00439c26 movsxd rax, edx | rax = (int64_t) edx; 0x00439c29 imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439c30 mov rdx, rcx | rdx = rcx; 0x00439c33 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439c37 sar rcx, 0x22 | rcx >>= 0x22; 0x00439c3b add ecx, edx | ecx += edx; 0x00439c3d lea edx, [rcx + rcx] | edx = rcx + rcx; 0x00439c40 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439c43 sub eax, edx | eax -= edx; 0x00439c45 add al, 0x30 | al += 0x30; 0x00439c47 mov byte [r12 + 1], al | *((r12 + 1)) = al; 0x00439c4c movsxd rax, ecx | rax = (int64_t) ecx; 0x00439c4f imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439c56 mov rdx, rcx | rdx = rcx; 0x00439c59 shr rdx, 0x3f | rdx >>= 0x3f; 0x00439c5d sar rcx, 0x22 | rcx >>= 0x22; 0x00439c61 add ecx, edx | ecx += edx; 0x00439c63 add ecx, ecx | ecx += ecx; 0x00439c65 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439c68 sub eax, ecx | eax -= ecx; 0x00439c6a add al, 0x30 | al += 0x30; 0x00439c6c mov byte [r12], al | *(r12) = al; 0x00439c70 mov byte [r12 + 2], 0x3a | *((r12 + 2)) = 0x3a; 0x00439c76 mov rsi, qword [r14] | rsi = *(r14); 0x00439c79 cmp rsi, rbp | | if (rsi < rbp) { 0x00439c7c jl 0x43a17c | goto label_9; | } 0x00439c82 and rsi, r13 | rsi &= r13; | label_2: 0x00439c85 movabs rcx, 0x8f2a633943a6d729 | rcx = 0x8f2a633943a6d729; 0x00439c8f mov rax, rsi | rax = rsi; 0x00439c92 imul rcx | rdx:rax = rax * rcx; 0x00439c95 mov rcx, rdx | rcx = rdx; 0x00439c98 add rcx, rsi | rcx += rsi; 0x00439c9b mov rax, rcx | rax = rcx; 0x00439c9e shr rax, 0x3f | rax >>= 0x3f; 0x00439ca2 sar rcx, 0x19 | rcx >>= 0x19; 0x00439ca6 add rcx, rax | rcx += rax; 0x00439ca9 movabs rbx, 0x8888888888888889 | rbx = 0x8888888888888889; 0x00439cb3 mov rax, rcx | rax = rcx; 0x00439cb6 imul rbx | rdx:rax = rax * rbx; 0x00439cb9 add rdx, rcx | rdx += rcx; 0x00439cbc mov rax, rdx | rax = rdx; 0x00439cbf shr rax, 0x3f | rax >>= 0x3f; 0x00439cc3 sar rdx, 5 | rdx >>= 5; 0x00439cc7 add rdx, rax | rdx += rax; 0x00439cca imul rax, rdx, 0x3c | rax = rdx * 0x3c; 0x00439cce sub rcx, rax | rcx -= rax; 0x00439cd1 movsx eax, cl | eax = (int32_t) cl; 0x00439cd4 imul eax, eax, 0x67 | eax *= 0x67; 0x00439cd7 movzx eax, ax | eax = (int32_t) ax; 0x00439cda movsx edx, ax | edx = (int32_t) ax; 0x00439cdd shr eax, 0xf | eax >>= 0xf; 0x00439ce0 shr edx, 0xa | edx >>= 0xa; 0x00439ce3 add dl, al | dl += al; 0x00439ce5 movzx eax, dl | eax = (int32_t) dl; 0x00439ce8 lea edx, [rax + rax] | edx = rax + rax; 0x00439ceb lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439cee sub cl, dl | cl -= dl; 0x00439cf0 add cl, 0x30 | cl += 0x30; 0x00439cf3 mov byte [r12 + 4], cl | *((r12 + 4)) = cl; 0x00439cf8 movsx ecx, al | ecx = (int32_t) al; 0x00439cfb imul ecx, ecx, 0x67 | ecx *= 0x67; 0x00439cfe movzx edx, cx | edx = (int32_t) cx; 0x00439d01 shr ecx, 0xa | ecx >>= 0xa; 0x00439d04 shr edx, 0xf | edx >>= 0xf; 0x00439d07 add dl, cl | dl += cl; 0x00439d09 movzx ecx, dl | ecx = (int32_t) dl; 0x00439d0c add ecx, ecx | ecx += ecx; 0x00439d0e lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439d11 sub al, cl | al -= cl; 0x00439d13 add al, 0x30 | al += 0x30; 0x00439d15 mov byte [r12 + 3], al | *((r12 + 3)) = al; 0x00439d1a mov byte [r12 + 5], 0x3a | *((r12 + 5)) = 0x3a; 0x00439d20 mov r15d, dword [r15] | r15d = *(r15); 0x00439d23 and r15d, 7 | r15d &= 7; 0x00439d27 mov rax, qword [r14] | rax = *(r14); 0x00439d2a test r15d, r15d | | if (r15d != 0) { 0x00439d2d je 0x439e7a | 0x00439d33 cmp rax, rbp | | if (rax < rbp) { 0x00439d36 jl 0x43a18c | goto label_10; | } 0x00439d3c and rax, r13 | rax &= r13; | label_3: 0x00439d3f movabs rcx, 0x431bde82d7b634db | rcx = 0x431bde82d7b634db; 0x00439d49 imul rcx | rdx:rax = rax * rcx; 0x00439d4c mov rcx, rdx | rcx = rdx; 0x00439d4f mov rax, rdx | rax = rdx; 0x00439d52 shr rax, 0x3f | rax >>= 0x3f; 0x00439d56 sar rcx, 0x12 | rcx >>= 0x12; 0x00439d5a add rcx, rax | rcx += rax; 0x00439d5d mov rax, rcx | rax = rcx; 0x00439d60 imul rbx | rdx:rax = rax * rbx; 0x00439d63 add rdx, rcx | rdx += rcx; 0x00439d66 mov rax, rdx | rax = rdx; 0x00439d69 shr rax, 0x3f | rax >>= 0x3f; 0x00439d6d sar rdx, 5 | rdx >>= 5; 0x00439d71 add rdx, rax | rdx += rax; 0x00439d74 imul rax, rdx, 0x3c | rax = rdx * 0x3c; 0x00439d78 sub rcx, rax | rcx -= rax; 0x00439d7b movsx eax, cl | eax = (int32_t) cl; 0x00439d7e imul eax, eax, 0x67 | eax *= 0x67; 0x00439d81 movzx eax, ax | eax = (int32_t) ax; 0x00439d84 mov edx, eax | edx = eax; 0x00439d86 shr edx, 0xf | edx >>= 0xf; 0x00439d89 shr eax, 8 | eax >>= 8; 0x00439d8c sar al, 2 | al >>= 2; 0x00439d8f add al, dl | al += dl; 0x00439d91 movzx eax, al | eax = (int32_t) al; 0x00439d94 lea edx, [rax + rax] | edx = rax + rax; 0x00439d97 lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439d9a sub cl, dl | cl -= dl; 0x00439d9c add cl, 0x30 | cl += 0x30; 0x00439d9f mov byte [r12 + 7], cl | *((r12 + 7)) = cl; 0x00439da4 movsx ecx, al | ecx = (int32_t) al; 0x00439da7 imul ecx, ecx, 0x67 | ecx *= 0x67; 0x00439daa movzx ecx, cx | ecx = (int32_t) cx; 0x00439dad mov edx, ecx | edx = ecx; 0x00439daf shr edx, 0xf | edx >>= 0xf; 0x00439db2 shr ecx, 8 | ecx >>= 8; 0x00439db5 sar cl, 2 | cl >>= 2; 0x00439db8 add cl, dl | cl += dl; 0x00439dba movzx ecx, cl | ecx = (int32_t) cl; 0x00439dbd add ecx, ecx | ecx += ecx; 0x00439dbf lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439dc2 sub al, cl | al -= cl; 0x00439dc4 add al, 0x30 | al += 0x30; 0x00439dc6 mov byte [r12 + 6], al | *((r12 + 6)) = al; 0x00439dcb mov byte [r12 + 8], 0x2e | *((r12 + 8)) = 0x2e; 0x00439dd1 mov rbx, qword [r14] | rbx = *(r14); 0x00439dd4 cmp rbx, rbp | | if (rbx < rbp) { 0x00439dd7 jl 0x43a199 | goto label_11; | } 0x00439ddd and rbx, r13 | rbx &= r13; 0x00439de0 mov rcx, rbx | rcx = rbx; | label_4: 0x00439de3 movabs rdi, 0x20c49ba5e353f7cf | rdi = 0x20c49ba5e353f7cf; 0x00439ded mov rax, rbx | rax = rbx; 0x00439df0 imul rdi | rdx:rax = rax * rdi; 0x00439df3 mov rsi, rdx | rsi = rdx; 0x00439df6 mov rax, rdx | rax = rdx; 0x00439df9 shr rax, 0x3f | rax >>= 0x3f; 0x00439dfd sar rsi, 7 | rsi >>= 7; 0x00439e01 add rsi, rax | rsi += rax; 0x00439e04 mov rax, rsi | rax = rsi; 0x00439e07 imul rdi | rdx:rax = rax * rdi; 0x00439e0a mov rax, rdx | rax = rdx; 0x00439e0d shr rax, 0x3f | rax >>= 0x3f; 0x00439e11 shr rdx, 7 | rdx >>= 7; 0x00439e15 add edx, eax | edx += eax; 0x00439e17 imul eax, edx, 0x3e8 | eax = edx * 0x3e8; 0x00439e1d sub esi, eax | esi -= eax; 0x00439e1f mov rax, rcx | rax = rcx; 0x00439e22 imul rdi | rdx:rax = rax * rdi; 0x00439e25 imul eax, esi, 0x3e8 | eax = esi * 0x3e8; 0x00439e2b mov rsi, rdx | rsi = rdx; 0x00439e2e shr rsi, 0x3f | rsi >>= 0x3f; 0x00439e32 shr rdx, 7 | rdx >>= 7; 0x00439e36 add edx, esi | edx += esi; 0x00439e38 imul edx, edx, 0x3e8 | edx *= 0x3e8; 0x00439e3e sub ecx, edx | ecx -= edx; 0x00439e40 add ecx, eax | ecx += eax; 0x00439e42 cmp r15d, 6 | | if (r15d >= 6) { 0x00439e46 jae 0x439f30 | goto label_12; | } 0x00439e4c movsxd rax, ecx | rax = (int64_t) ecx; 0x00439e4f cmp r15d, 5 | | if (r15d < 5) { 0x00439e53 jae 0x439f1c | 0x00439e59 cmp r15d, 4 | | if (r15d != 4) { 0x00439e5d jne 0x43a11b | goto label_13; | } 0x00439e63 imul rcx, rax, 0x51eb851f | rcx = rax * 0x51eb851f; 0x00439e6a mov rax, rcx | rax = rcx; 0x00439e6d shr rax, 0x3f | rax >>= 0x3f; 0x00439e71 sar rcx, 0x25 | rcx >>= 0x25; 0x00439e75 jmp 0x439f2e | | } else { 0x00439e7a cmp rax, rbp | | if (rax < rbp) { 0x00439e7d jl 0x43a1c4 | goto label_14; | } 0x00439e83 and rax, r13 | rax &= r13; | label_6: 0x00439e86 movabs rcx, 0x431bde82d7b634db | rcx = 0x431bde82d7b634db; 0x00439e90 imul rcx | rdx:rax = rax * rcx; 0x00439e93 mov rcx, rdx | rcx = rdx; 0x00439e96 mov rax, rdx | rax = rdx; 0x00439e99 shr rax, 0x3f | rax >>= 0x3f; 0x00439e9d sar rcx, 0x12 | rcx >>= 0x12; 0x00439ea1 add rcx, rax | rcx += rax; 0x00439ea4 mov rax, rcx | rax = rcx; 0x00439ea7 imul rbx | rdx:rax = rax * rbx; 0x00439eaa add rdx, rcx | rdx += rcx; 0x00439ead mov rax, rdx | rax = rdx; 0x00439eb0 shr rax, 0x3f | rax >>= 0x3f; 0x00439eb4 sar rdx, 5 | rdx >>= 5; 0x00439eb8 add rdx, rax | rdx += rax; 0x00439ebb imul rax, rdx, 0x3c | rax = rdx * 0x3c; 0x00439ebf sub rcx, rax | rcx -= rax; 0x00439ec2 movsx eax, cl | eax = (int32_t) cl; 0x00439ec5 imul eax, eax, 0x67 | eax *= 0x67; 0x00439ec8 movzx eax, ax | eax = (int32_t) ax; 0x00439ecb mov edx, eax | edx = eax; 0x00439ecd shr edx, 0xf | edx >>= 0xf; 0x00439ed0 shr eax, 8 | eax >>= 8; 0x00439ed3 sar al, 2 | al >>= 2; 0x00439ed6 add al, dl | al += dl; 0x00439ed8 movzx eax, al | eax = (int32_t) al; 0x00439edb lea edx, [rax + rax] | edx = rax + rax; 0x00439ede lea edx, [rdx + rdx*4] | edx = rdx * 5; 0x00439ee1 sub cl, dl | cl -= dl; 0x00439ee3 add cl, 0x30 | cl += 0x30; 0x00439ee6 mov byte [r12 + 7], cl | *((r12 + 7)) = cl; 0x00439eeb movsx ecx, al | ecx = (int32_t) al; 0x00439eee imul ecx, ecx, 0x67 | ecx *= 0x67; 0x00439ef1 movzx ecx, cx | ecx = (int32_t) cx; 0x00439ef4 mov edx, ecx | edx = ecx; 0x00439ef6 shr edx, 0xf | edx >>= 0xf; 0x00439ef9 shr ecx, 8 | ecx >>= 8; 0x00439efc sar cl, 2 | cl >>= 2; 0x00439eff add cl, dl | cl += dl; 0x00439f01 movzx ecx, cl | ecx = (int32_t) cl; 0x00439f04 add ecx, ecx | ecx += ecx; 0x00439f06 lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439f09 sub al, cl | al -= cl; 0x00439f0b add al, 0x30 | al += 0x30; 0x00439f0d mov byte [r12 + 6], al | *((r12 + 6)) = al; 0x00439f12 lea rax, [r12 + 8] | rax = r12 + 8; 0x00439f17 jmp 0x43a109 | goto label_15; | } 0x00439f1c imul rcx, rax, 0x66666667 | rcx = rax * 0x66666667; 0x00439f23 mov rax, rcx | rax = rcx; 0x00439f26 shr rax, 0x3f | rax >>= 0x3f; 0x00439f2a sar rcx, 0x22 | rcx >>= 0x22; | } | do { | label_0: 0x00439f2e add ecx, eax | ecx += eax; | label_12: 0x00439f30 lea rax, [r12 + 9] | rax = r12 + 9; 0x00439f35 movsxd rdx, ecx | rdx = (int64_t) ecx; 0x00439f38 imul rsi, rdx, 0x66666667 | rsi = rdx * 0x66666667; 0x00439f3f mov rcx, rsi | rcx = rsi; 0x00439f42 shr rcx, 0x3f | rcx >>= 0x3f; 0x00439f46 sar rsi, 0x22 | rsi >>= 0x22; 0x00439f4a add esi, ecx | esi += ecx; 0x00439f4c lea ecx, [rsi + rsi] | ecx = rsi + rsi; 0x00439f4f lea ecx, [rcx + rcx*4] | ecx = rcx * 5; 0x00439f52 mov edi, edx | edi = edx; 0x00439f54 sub edi, ecx | edi -= ecx; 0x00439f56 add dil, 0x30 | dil += 0x30; 0x00439f5a mov byte [r12 + r15 + 8], dil | *((r12 + r15 + 8)) = dil; 0x00439f5f cmp r15d, 1 | | if (r15d > 1) { 0x00439f63 jbe 0x43a103 | 0x00439f69 lea rcx, [r15 + 9] | rcx = r15 + 9; 0x00439f6d mov rdi, r15 | rdi = r15; 0x00439f70 or rdi, 8 | rdi |= 8; 0x00439f74 movsxd rbp, esi | rbp = (int64_t) esi; 0x00439f77 imul rbp, rbp, 0x66666667 | rbp *= 0x66666667; 0x00439f7e mov rbx, rbp | rbx = rbp; 0x00439f81 shr rbx, 0x3f | rbx >>= 0x3f; 0x00439f85 sar rbp, 0x22 | rbp >>= 0x22; 0x00439f89 add ebp, ebx | ebp += ebx; 0x00439f8b add ebp, ebp | ebp += ebp; 0x00439f8d lea ebp, [rbp + rbp*4] | ebp = rbp + rbp*4; 0x00439f91 sub esi, ebp | esi -= ebp; 0x00439f93 add sil, 0x30 | sil += 0x30; 0x00439f97 mov byte [r12 + rcx - 2], sil | *((r12 + rcx - 2)) = sil; 0x00439f9c cmp edi, 0xb | | if (edi < 0xb) { 0x00439f9f jb 0x43a103 | goto label_16; | } 0x00439fa5 lea rsi, [rcx - 2] | rsi = rcx - 2; 0x00439fa9 imul rdi, rdx, 0x51eb851f | rdi = rdx * 0x51eb851f; 0x00439fb0 mov rbp, rdi | 0x00439fb3 shr rbp, 0x3f | rbp >>= 0x3f; 0x00439fb7 sar rdi, 0x25 | rdi >>= 0x25; 0x00439fbb add edi, ebp | edi += ebp; 0x00439fbd movsxd rdi, edi | rdi = (int64_t) edi; 0x00439fc0 imul rbp, rdi, 0x66666667 | rbp = rdi * 0x66666667; 0x00439fc7 mov rbx, rbp | rbx = rbp; 0x00439fca shr rbx, 0x3f | rbx >>= 0x3f; 0x00439fce sar rbp, 0x22 | rbp >>= 0x22; 0x00439fd2 add ebp, ebx | ebp += ebx; 0x00439fd4 add ebp, ebp | ebp += ebp; 0x00439fd6 lea ebp, [rbp + rbp*4] | ebp = rbp + rbp*4; 0x00439fda sub edi, ebp | edi -= ebp; 0x00439fdc add dil, 0x30 | dil += 0x30; 0x00439fe0 mov byte [r12 + rcx - 3], dil | *((r12 + rcx - 3)) = dil; 0x00439fe5 cmp rsi, 0xb | | if (rsi < 0xb) { 0x00439fe9 jb 0x43a103 | goto label_16; | } 0x00439fef lea rsi, [rcx - 3] | rsi = rcx - 3; 0x00439ff3 imul rdi, rdx, 0x10624dd3 | rdi = rdx * 0x10624dd3; 0x00439ffa mov rbp, rdi | 0x00439ffd shr rbp, 0x3f | rbp >>= 0x3f; 0x0043a001 sar rdi, 0x26 | rdi >>= 0x26; 0x0043a005 add edi, ebp | edi += ebp; 0x0043a007 movsxd rdi, edi | rdi = (int64_t) edi; 0x0043a00a imul rbp, rdi, 0x66666667 | rbp = rdi * 0x66666667; 0x0043a011 mov rbx, rbp | rbx = rbp; 0x0043a014 shr rbx, 0x3f | rbx >>= 0x3f; 0x0043a018 sar rbp, 0x22 | rbp >>= 0x22; 0x0043a01c add ebp, ebx | ebp += ebx; 0x0043a01e add ebp, ebp | ebp += ebp; 0x0043a020 lea ebp, [rbp + rbp*4] | ebp = rbp + rbp*4; 0x0043a024 sub edi, ebp | edi -= ebp; 0x0043a026 add dil, 0x30 | dil += 0x30; 0x0043a02a mov byte [r12 + rcx - 4], dil | *((r12 + rcx - 4)) = dil; 0x0043a02f cmp rsi, 0xb | | if (rsi < 0xb) { 0x0043a033 jb 0x43a103 | goto label_16; | } 0x0043a039 lea rsi, [rcx - 4] | rsi = rcx - 4; 0x0043a03d imul rdi, rdx, 0x68db8bad | rdi = rdx * 0x68db8bad; 0x0043a044 mov rbp, rdi | 0x0043a047 shr rbp, 0x3f | rbp >>= 0x3f; 0x0043a04b sar rdi, 0x2c | rdi >>= 0x2c; 0x0043a04f add edi, ebp | edi += ebp; 0x0043a051 movsxd rdi, edi | rdi = (int64_t) edi; 0x0043a054 imul rbp, rdi, 0x66666667 | rbp = rdi * 0x66666667; 0x0043a05b mov rbx, rbp | rbx = rbp; 0x0043a05e shr rbx, 0x3f | rbx >>= 0x3f; 0x0043a062 sar rbp, 0x22 | rbp >>= 0x22; 0x0043a066 add ebp, ebx | ebp += ebx; 0x0043a068 add ebp, ebp | ebp += ebp; 0x0043a06a lea ebp, [rbp + rbp*4] | ebp = rbp + rbp*4; 0x0043a06e sub edi, ebp | edi -= ebp; 0x0043a070 add dil, 0x30 | dil += 0x30; 0x0043a074 mov byte [r12 + rcx - 5], dil | *((r12 + rcx - 5)) = dil; 0x0043a079 cmp rsi, 0xb | | if (rsi < 0xb) { 0x0043a07d jb 0x43a103 | goto label_16; | } 0x0043a083 lea rsi, [rcx - 5] | rsi = rcx - 5; 0x0043a087 imul rdi, rdx, 0x14f8b589 | rdi = rdx * 0x14f8b589; 0x0043a08e mov rbp, rdi | 0x0043a091 shr rbp, 0x3f | rbp >>= 0x3f; 0x0043a095 sar rdi, 0x2d | rdi >>= 0x2d; 0x0043a099 add edi, ebp | edi += ebp; 0x0043a09b movsxd rdi, edi | rdi = (int64_t) edi; 0x0043a09e imul rbp, rdi, 0x66666667 | rbp = rdi * 0x66666667; 0x0043a0a5 mov rbx, rbp | rbx = rbp; 0x0043a0a8 shr rbx, 0x3f | rbx >>= 0x3f; 0x0043a0ac sar rbp, 0x22 | rbp >>= 0x22; 0x0043a0b0 add ebp, ebx | ebp += ebx; 0x0043a0b2 add ebp, ebp | ebp += ebp; 0x0043a0b4 lea ebp, [rbp + rbp*4] | ebp = rbp + rbp*4; 0x0043a0b8 sub edi, ebp | edi -= ebp; 0x0043a0ba add dil, 0x30 | dil += 0x30; 0x0043a0be mov byte [rcx + r12 - 6], dil | *((rcx + r12 - 6)) = dil; 0x0043a0c3 cmp rsi, 0xb | | if (rsi < 0xb) { 0x0043a0c7 jb 0x43a103 | goto label_16; | } 0x0043a0c9 imul rdx, rdx, 0x431bde83 | rdx *= 0x431bde83; 0x0043a0d0 mov rsi, rdx | rsi = rdx; 0x0043a0d3 shr rsi, 0x3f | rsi >>= 0x3f; 0x0043a0d7 sar rdx, 0x32 | rdx >>= 0x32; 0x0043a0db add edx, esi | edx += esi; 0x0043a0dd movsxd rdx, edx | rdx = (int64_t) edx; 0x0043a0e0 imul rsi, rdx, 0x66666667 | rsi = rdx * 0x66666667; 0x0043a0e7 mov rdi, rsi | rdi = rsi; 0x0043a0ea shr rdi, 0x3f | rdi >>= 0x3f; 0x0043a0ee shr rsi, 0x22 | rsi >>= 0x22; 0x0043a0f2 add esi, edi | esi += edi; 0x0043a0f4 add esi, esi | esi += esi; 0x0043a0f6 lea esi, [rsi + rsi*4] | esi = rsi * 5; 0x0043a0f9 sub edx, esi | edx -= esi; 0x0043a0fb add dl, 0x30 | dl += 0x30; 0x0043a0fe mov byte [rcx + r12 - 7], dl | *((rcx + r12 - 7)) = dl; | } | label_16: 0x0043a103 mov ecx, r15d | ecx = r15d; 0x0043a106 add rax, rcx | rax += rcx; | label_15: 0x0043a109 sub eax, r12d | eax -= r12d; 0x0043a10c add rsp, 8 | 0x0043a110 pop rbx | 0x0043a111 pop r12 | 0x0043a113 pop r13 | 0x0043a115 pop r14 | 0x0043a117 pop r15 | 0x0043a119 pop rbp | 0x0043a11a ret | return rax; | label_13: 0x0043a11b cmp r15d, 2 | | if (r15d > 2) { 0x0043a11f ja 0x43a13e | goto label_17; | } 0x0043a121 cmp r15d, 2 | | if (r15d != 2) { 0x0043a125 jne 0x43a155 | goto label_18; | } 0x0043a127 imul rcx, rax, 0x68db8bad | rcx = rax * 0x68db8bad; 0x0043a12e mov rax, rcx | rax = rcx; 0x0043a131 shr rax, 0x3f | rax >>= 0x3f; 0x0043a135 sar rcx, 0x2c | rcx >>= 0x2c; 0x0043a139 jmp 0x439f2e | | } while (1); | label_17: 0x0043a13e imul rcx, rax, 0x10624dd3 | rcx = rax * 0x10624dd3; 0x0043a145 mov rax, rcx | rax = rcx; 0x0043a148 shr rax, 0x3f | rax >>= 0x3f; 0x0043a14c sar rcx, 0x26 | rcx >>= 0x26; 0x0043a150 jmp 0x439f2e | goto label_0; | label_18: 0x0043a155 imul rcx, rax, 0x14f8b589 | rcx = rax * 0x14f8b589; 0x0043a15c mov rax, rcx | rax = rcx; 0x0043a15f shr rax, 0x3f | rax >>= 0x3f; 0x0043a163 sar rcx, 0x2d | rcx >>= 0x2d; 0x0043a167 jmp 0x439f2e | goto label_0; | label_7: 0x0043a16c mov rdi, r14 | 0x0043a16f call 0x43d5c0 | rax = BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a174 mov rcx, rax | rcx = rax; 0x0043a177 jmp 0x439bd7 | goto label_1; | label_9: 0x0043a17c mov rdi, r14 | 0x0043a17f call 0x43d5c0 | rax = BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a184 mov rsi, rax | rsi = rax; 0x0043a187 jmp 0x439c85 | goto label_2; | label_10: 0x0043a18c mov rdi, r14 | 0x0043a18f call 0x43d5c0 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a194 jmp 0x439d3f | goto label_3; | label_11: 0x0043a199 mov rdi, r14 | 0x0043a19c call 0x43d5c0 | rax = BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a1a1 mov rbx, rax | rbx = rax; 0x0043a1a4 mov rcx, qword [r14] | rcx = *(r14); 0x0043a1a7 cmp rcx, rbp | | if (rcx >= rbp) { 0x0043a1aa jl 0x43a1d1 | 0x0043a1ac and rcx, r13 | rcx &= r13; 0x0043a1af jmp 0x439de3 | goto label_4; | label_8: 0x0043a1b4 mov rdi, r14 | 0x0043a1b7 call 0x43d5c0 | rax = BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a1bc mov rcx, rax | rcx = rax; 0x0043a1bf jmp 0x439c10 | goto label_5; | label_14: 0x0043a1c4 mov rdi, r14 | 0x0043a1c7 call 0x43d5c0 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a1cc jmp 0x439e86 | goto label_6; | } 0x0043a1d1 mov rdi, r14 | 0x0043a1d4 call 0x43d5c0 | rax = BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (r14); 0x0043a1d9 mov rcx, rax | rcx = rax; 0x0043a1dc jmp 0x439de3 | goto label_4; | }